diff --git a/assets/resources/game/heros/hero/hk1/dead.anim b/assets/resources/game/heros/hero/hk1/dead.anim index b6a55236..d120150d 100644 --- a/assets/resources/game/heros/hero/hk1/dead.anim +++ b/assets/resources/game/heros/hero/hk1/dead.anim @@ -9,7 +9,7 @@ "_native": "", "sample": 15, "speed": 1, - "wrapMode": 2, + "wrapMode": 1, "enableTrsBlending": false, "_duration": 1.0666666666666667, "_hash": 500763545, diff --git a/assets/resources/game/skill/anm/m_ball_water_1.anim b/assets/resources/game/skill/anm/m_ball_water_1.anim new file mode 100644 index 00000000..108c0372 --- /dev/null +++ b/assets/resources/game/skill/anm/m_ball_water_1.anim @@ -0,0 +1,100 @@ +[ + { + "__type__": "cc.AnimationClip", + "_name": "m_ball_blue1", + "_objFlags": 0, + "__editorExtras__": { + "embeddedPlayerGroups": [] + }, + "_native": "", + "sample": 15, + "speed": 1, + "wrapMode": 2, + "enableTrsBlending": false, + "_duration": 0.26666666666666666, + "_hash": 500763545, + "_tracks": [ + { + "__id__": 1 + } + ], + "_exoticAnimation": null, + "_events": [], + "_embeddedPlayers": [], + "_additiveSettings": { + "__id__": 7 + }, + "_auxiliaryCurveEntries": [] + }, + { + "__type__": "cc.animation.ObjectTrack", + "_binding": { + "__type__": "cc.animation.TrackBinding", + "path": { + "__id__": 2 + }, + "proxy": null + }, + "_channel": { + "__id__": 5 + } + }, + { + "__type__": "cc.animation.TrackPath", + "_paths": [ + { + "__id__": 3 + }, + { + "__id__": 4 + }, + "spriteFrame" + ] + }, + { + "__type__": "cc.animation.HierarchyPath", + "path": "Node" + }, + { + "__type__": "cc.animation.ComponentPath", + "component": "cc.Sprite" + }, + { + "__type__": "cc.animation.Channel", + "_curve": { + "__id__": 6 + } + }, + { + "__type__": "cc.ObjectCurve", + "_times": [ + 0, + 0.06666666666666667, + 0.13333333333333333, + 0.2 + ], + "_values": [ + { + "__uuid__": "3d46f945-3f07-477e-a95a-b49557d552c6@59cfc", + "__expectedType__": "cc.SpriteFrame" + }, + { + "__uuid__": "3d46f945-3f07-477e-a95a-b49557d552c6@b5811", + "__expectedType__": "cc.SpriteFrame" + }, + { + "__uuid__": "3d46f945-3f07-477e-a95a-b49557d552c6@bb70c", + "__expectedType__": "cc.SpriteFrame" + }, + { + "__uuid__": "3d46f945-3f07-477e-a95a-b49557d552c6@b6fe2", + "__expectedType__": "cc.SpriteFrame" + } + ] + }, + { + "__type__": "cc.AnimationClipAdditiveSettings", + "enabled": false, + "refClip": null + } +] \ No newline at end of file diff --git a/assets/resources/game/skill/anm/m_ball_water_1.anim.meta b/assets/resources/game/skill/anm/m_ball_water_1.anim.meta new file mode 100644 index 00000000..30f2695c --- /dev/null +++ b/assets/resources/game/skill/anm/m_ball_water_1.anim.meta @@ -0,0 +1,13 @@ +{ + "ver": "2.0.3", + "importer": "animation-clip", + "imported": true, + "uuid": "ca8450cc-65f1-4d89-8e95-7f4f316e0972", + "files": [ + ".cconb" + ], + "subMetas": {}, + "userData": { + "name": "m_ball_water_1" + } +} diff --git a/assets/resources/game/skill/atk/b_arrow_1.prefab b/assets/resources/game/skill/atk/b_arrow_1.prefab new file mode 100644 index 00000000..9364ed14 --- /dev/null +++ b/assets/resources/game/skill/atk/b_arrow_1.prefab @@ -0,0 +1,401 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "b_arrow_1", + "_objFlags": 0, + "__editorExtras__": {}, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "persistent": false + }, + { + "__type__": "cc.Node", + "_name": "b_arrow_1", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": null, + "_children": [ + { + "__id__": 2 + } + ], + "_active": true, + "_components": [ + { + "__id__": 8 + }, + { + "__id__": 10 + }, + { + "__id__": 12 + }, + { + "__id__": 14 + }, + { + "__id__": 16 + }, + { + "__id__": 18 + } + ], + "_prefab": { + "__id__": 20 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Node", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + }, + { + "__id__": 5 + } + ], + "_prefab": { + "__id__": 7 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 2 + }, + "_enabled": true, + "__prefab": { + "__id__": 4 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.2, + "y": 0.2 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "93pNmvtQlLSqtTgIepyEmA" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 2 + }, + "_enabled": true, + "__prefab": { + "__id__": 6 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 170 + }, + "_spriteFrame": null, + "_type": 0, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": { + "__uuid__": "2423272e-e63b-4736-b15b-30b40cf98a23", + "__expectedType__": "cc.SpriteAtlas" + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "12eKc8gltBz50frJCS5+ww" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "3arqAMBz1MvoXBzeDaL5M/", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 9 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 240, + "height": 100 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "63NP9yq3hEUKD/OZZZ5t7x" + }, + { + "__type__": "cc.Animation", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 11 + }, + "playOnLoad": true, + "_clips": [ + null + ], + "_defaultClip": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "c2RDvksalG2acL3tyGCY0t" + }, + { + "__type__": "57aabs7TE1J5obTAZczc+64", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 13 + }, + "atk_x": 0, + "atk_y": 0, + "runType": 2, + "endType": 0, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "60LInmZXxDtKu79AshRG9j" + }, + { + "__type__": "f680dkagx9PmbfqtF463/Ua", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 15 + }, + "speed": 600, + "controlPointSide": 1, + "controlPointOffset": 0.5, + "controlPointRandomness": 0.3, + "autoRotate": false, + "showTrajectory": false, + "trajectoryColor": { + "__type__": "cc.Color", + "r": 0, + "g": 255, + "b": 0, + "a": 255 + }, + "trajectoryWidth": 3, + "easing": "linear", + "rotationSmoothness": 0.6, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "65YLwe9t9EXo5kI3HQEGhs" + }, + { + "__type__": "cc.RigidBody2D", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 17 + }, + "enabledContactListener": false, + "bullet": false, + "awakeOnLoad": true, + "_group": 1, + "_type": 2, + "_allowSleep": true, + "_gravityScale": 1, + "_linearDamping": 0, + "_angularDamping": 0, + "_linearVelocity": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_angularVelocity": 0, + "_fixedRotation": false, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "e1yBA625RLwLhzo6bLYW7j" + }, + { + "__type__": "cc.BoxCollider2D", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 19 + }, + "tag": 0, + "_group": 1, + "_density": 1, + "_sensor": false, + "_friction": 0.2, + "_restitution": 0, + "_offset": { + "__type__": "cc.Vec2", + "x": 43.5, + "y": 48.5 + }, + "_size": { + "__type__": "cc.Size", + "width": 87, + "height": 97 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "43ZDJfXX9AX73gyytKQZWm" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "c46/YsCPVOJYA4mWEpNYRx", + "instance": null, + "targetOverrides": null + } +] \ No newline at end of file diff --git a/assets/resources/game/skill/atk/b_arrow_1.prefab.meta b/assets/resources/game/skill/atk/b_arrow_1.prefab.meta new file mode 100644 index 00000000..a28ff92f --- /dev/null +++ b/assets/resources/game/skill/atk/b_arrow_1.prefab.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.50", + "importer": "prefab", + "imported": true, + "uuid": "22fb2e9f-b1e2-4fe7-8562-550a456e093c", + "files": [ + ".json" + ], + "subMetas": {}, + "userData": { + "syncNodeName": "b_arrow_1" + } +} diff --git a/assets/resources/game/skill/atk/m_water_ball_1.prefab b/assets/resources/game/skill/atk/m_water_ball_1.prefab new file mode 100644 index 00000000..dd653096 --- /dev/null +++ b/assets/resources/game/skill/atk/m_water_ball_1.prefab @@ -0,0 +1,410 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "m_water_ball_1", + "_objFlags": 0, + "__editorExtras__": {}, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "persistent": false + }, + { + "__type__": "cc.Node", + "_name": "m_water_ball_1", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": null, + "_children": [ + { + "__id__": 2 + } + ], + "_active": true, + "_components": [ + { + "__id__": 8 + }, + { + "__id__": 10 + }, + { + "__id__": 12 + }, + { + "__id__": 14 + }, + { + "__id__": 16 + }, + { + "__id__": 18 + } + ], + "_prefab": { + "__id__": 20 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Node", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + }, + { + "__id__": 5 + } + ], + "_prefab": { + "__id__": 7 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": -1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 2 + }, + "_enabled": true, + "__prefab": { + "__id__": 4 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "93pNmvtQlLSqtTgIepyEmA" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 2 + }, + "_enabled": true, + "__prefab": { + "__id__": 6 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "3d46f945-3f07-477e-a95a-b49557d552c6@59cfc", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 0, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": { + "__uuid__": "3d46f945-3f07-477e-a95a-b49557d552c6", + "__expectedType__": "cc.SpriteAtlas" + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "12eKc8gltBz50frJCS5+ww" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "3arqAMBz1MvoXBzeDaL5M/", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 9 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 50, + "height": 50 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "63NP9yq3hEUKD/OZZZ5t7x" + }, + { + "__type__": "cc.Animation", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 11 + }, + "playOnLoad": true, + "_clips": [ + { + "__uuid__": "ca8450cc-65f1-4d89-8e95-7f4f316e0972", + "__expectedType__": "cc.AnimationClip" + } + ], + "_defaultClip": { + "__uuid__": "ca8450cc-65f1-4d89-8e95-7f4f316e0972", + "__expectedType__": "cc.AnimationClip" + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "c2RDvksalG2acL3tyGCY0t" + }, + { + "__type__": "57aabs7TE1J5obTAZczc+64", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 13 + }, + "atk_x": 0, + "atk_y": 0, + "runType": 2, + "endType": 0, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "60LInmZXxDtKu79AshRG9j" + }, + { + "__type__": "f680dkagx9PmbfqtF463/Ua", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 15 + }, + "speed": 600, + "controlPointSide": 1, + "controlPointOffset": 0.5, + "controlPointRandomness": 0.3, + "autoRotate": false, + "showTrajectory": false, + "trajectoryColor": { + "__type__": "cc.Color", + "r": 0, + "g": 255, + "b": 0, + "a": 255 + }, + "trajectoryWidth": 3, + "easing": "linear", + "rotationSmoothness": 0.6, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "65YLwe9t9EXo5kI3HQEGhs" + }, + { + "__type__": "cc.RigidBody2D", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 17 + }, + "enabledContactListener": false, + "bullet": false, + "awakeOnLoad": true, + "_group": 1, + "_type": 2, + "_allowSleep": true, + "_gravityScale": 1, + "_linearDamping": 0, + "_angularDamping": 0, + "_linearVelocity": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_angularVelocity": 0, + "_fixedRotation": false, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "e1yBA625RLwLhzo6bLYW7j" + }, + { + "__type__": "cc.BoxCollider2D", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 19 + }, + "tag": 0, + "_group": 1, + "_density": 1, + "_sensor": false, + "_friction": 0.2, + "_restitution": 0, + "_offset": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_size": { + "__type__": "cc.Size", + "width": 50, + "height": 50 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "43ZDJfXX9AX73gyytKQZWm" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "c46/YsCPVOJYA4mWEpNYRx", + "instance": null, + "targetOverrides": null + } +] \ No newline at end of file diff --git a/assets/resources/game/skill/atk/m_water_ball_1.prefab.meta b/assets/resources/game/skill/atk/m_water_ball_1.prefab.meta new file mode 100644 index 00000000..dfc7cbb4 --- /dev/null +++ b/assets/resources/game/skill/atk/m_water_ball_1.prefab.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.50", + "importer": "prefab", + "imported": true, + "uuid": "29baebb3-8352-40c2-bab7-75d712b934eb", + "files": [ + ".json" + ], + "subMetas": {}, + "userData": { + "syncNodeName": "m_water_ball_1" + } +} diff --git a/assets/script/game/common/config/SkillSet.ts b/assets/script/game/common/config/SkillSet.ts index 8d588dd9..b632c29d 100644 --- a/assets/script/game/common/config/SkillSet.ts +++ b/assets/script/game/common/config/SkillSet.ts @@ -160,7 +160,7 @@ export const SkillSet: Record = { buffs:[],neAttrs:[],info:"向最前方敌人扔出石斧,造成100%攻击的伤害", }, 6005: { - uuid:6005,name:"火球术",sp_name:"atk_fire1",AtkedName:AtkedName.atked,path:"3039",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,DType:DType.MAGE, + uuid:6005,name:"水球",sp_name:"m_water_ball_1",AtkedName:AtkedName.atked,path:"3039",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,DType:DType.MAGE, ap:100,cd:5,t_num:1,hit_num:1,hit:2,hitcd:0.3,speed:720,cost:20,with:90,ready:8001,endAnm:9001,RType:RType.linear, buffs:[],neAttrs:[],info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧", }, diff --git a/assets/script/game/common/config/heroSet.ts b/assets/script/game/common/config/heroSet.ts index 40e5c494..f9895c66 100644 --- a/assets/script/game/common/config/heroSet.ts +++ b/assets/script/game/common/config/heroSet.ts @@ -99,7 +99,7 @@ export const HeroInfo: Record = { // 刘邦 - 领导型战士(善于用人,知人善任) 5001:{uuid:5001,name:"刘邦",path:"hk1", fac:FacSet.HERO, kind:1, - type:HType.warrior,lv:1,hp:125,mp:85,map:10,def:9,mdef:0,ap:15,dis:100,speed:120,skills:[6001], + type:HType.warrior,lv:1,hp:1000,mp:85,map:10,def:9,mdef:0,ap:15,dis:100,speed:120,skills:[6001], buff:[],tal:[7101,7201,7301],info:"楚汉争霸领袖,领导统御型战士"}, // 荆轲 - 刺客(敏捷型,高速度和暴击率) @@ -178,11 +178,11 @@ export const HeroInfo: Record = { // 4. 远程骚扰型 5210:{uuid:5210,name:"骷髅弓手",path:"mo1", fac:FacSet.MON, kind:1, - type:HType.remote,lv:1,hp:60,mp:100,map:8,def:4,mdef:0,ap:12,dis:450,speed:110,skills:[6002], + type:HType.remote,lv:1,hp:60,mp:100,map:8,def:4,mdef:0,ap:12,dis:450,speed:110,skills:[6005], buff:[],tal:[],info:"远程骚扰型:保持距离发射箭矢,逼迫玩家走位"}, 5211:{uuid:5211,name:"法师骷髅",path:"mo1", fac:FacSet.MON, kind:1, - type:HType.mage,lv:1,hp:55,mp:100,map:25,def:4,mdef:5,ap:10,dis:400,speed:105,skills:[6002], + type:HType.mage,lv:1,hp:55,mp:100,map:25,def:4,mdef:5,ap:10,dis:400,speed:105,skills:[6005], buff:[],tal:[],info:"远程骚扰型:保持距离释放法术弹幕,逼迫玩家走位"}, // 5. 特殊机制型 @@ -198,19 +198,19 @@ export const HeroInfo: Record = { // 5. 特殊机制扩展 // 召唤师:持续召唤小怪(后续可在技能系统中实现 SType.zhaohuan) 5214:{uuid:5214,name:"死灵法师(召唤师)",path:"mo1", fac:FacSet.MON, kind:1, - type:HType.mage,lv:1,hp:90,mp:160,map:22,def:4,mdef:6,ap:8,dis:380,speed:100,skills:[6002], + type:HType.mage,lv:1,hp:90,mp:160,map:22,def:4,mdef:6,ap:8,dis:380,speed:100,skills:[6005], buff:[],tal:[],info:"特殊机制:持续召唤小怪,需优先击杀"}, // 治疗者:为周围怪物回血(此处以提升治疗效果和生命回复为基础被动) // Attrs.HEAL_EFFECT=5 (RATIO=1),Attrs.HP_REGEN=3 (VALUE=0) 5215:{uuid:5215,name:"祭司(治疗者)",path:"mo1", fac:FacSet.MON, kind:1, - type:HType.support,lv:1,hp:100,mp:160,map:18,def:5,mdef:8,ap:6,dis:350,speed:105,skills:[6002], + type:HType.support,lv:1,hp:100,mp:160,map:18,def:5,mdef:8,ap:6,dis:350,speed:105,skills:[6005], buff:[],tal:[],info:"特殊机制:为周围怪物提供治疗增益与持续回复"}, // 光环怪:为周围怪物提供增益(此处以Buff效果提升与移动速度提升为基础被动) // Attrs.BUFF_UP=60 (RATIO=1),Attrs.SPEED=63 (RATIO=1) 5216:{uuid:5216,name:"光环幽灵(光环怪)",path:"mo1", fac:FacSet.MON, kind:1, - type:HType.support,lv:1,hp:85,mp:140,map:15,def:4,mdef:7,ap:7,dis:350,speed:110,skills:[6002], + type:HType.support,lv:1,hp:85,mp:140,map:15,def:4,mdef:7,ap:7,dis:350,speed:110,skills:[6005], buff:[],tal:[],info:"特殊机制:为周围怪物提供增益光环,加速与增益效果强化"}, }; \ No newline at end of file diff --git a/assets/script/game/hero/EBusComp.ts b/assets/script/game/hero/EBusComp.ts deleted file mode 100644 index 758fff81..00000000 --- a/assets/script/game/hero/EBusComp.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { _decorator, EventTarget } from 'cc'; -import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp"; -import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; -const { ccclass } = _decorator; - -/** 事件总线组件 - 简化版,仅提供基本的发布订阅功能 */ -@ecs.register('EBusComp', false) -export class EBusComp extends CCComp { - - /** 内部事件目标 */ - private _eventTarget: EventTarget; - - /** 获取事件目标 */ - private get eventTarget(): EventTarget { - if (!this._eventTarget) { - this._eventTarget = new EventTarget(); - } - return this._eventTarget; - } - - start() { - // 组件启动时的初始化逻辑 - } - - /** - * 发布事件 - * @param event 事件名称 - * @param data 事件数据 - */ - public emit(event: string, data?: any): void { - this.eventTarget.emit(event, data); - } - - /** - * 订阅事件 - * @param event 事件名称 - * @param callback 回调函数 - * @param target 回调函数的this指向 - */ - public on(event: string, listener: (...args: any[]) => void, object?: any): void { - this.eventTarget.on(event, listener, object); - } - - /** - * 取消订阅事件 - * @param event 事件名称 - * @param callback 回调函数 - * @param target 回调函数的this指向 - */ - public off(event?: string, callback?: (data?: any) => void, target?: any): void { - if (arguments.length === 0) { - // 无参调用:清理本节点所有监听 - this.eventTarget.targetOff(this); - } else if (arguments.length === 1) { - // 仅提供 event:清理该事件名下所有回调 - this.eventTarget.targetOff(event); - } else { - // 完整参数:精确移除指定回调 - this.eventTarget.off(event!, callback!, target); - } - } - - - /** - * 订阅一次性事件 - * @param event 事件名称 - * @param callback 回调函数 - * @param target 回调函数的this指向 - */ - public once(event: string, callback: (data?: any) => void, target?: any): void { - this.eventTarget.once(event, callback, target); - } - - /** - * 取消所有事件监听 - */ - public targetOff(target: any): void { - this.eventTarget.targetOff(target); - } - - reset() { - // 清理所有事件监听 - if (this._eventTarget) { - this._eventTarget.targetOff(this); - } - - // 组件删除时触发自定义释放逻辑 - this.node.destroy(); - } -} \ No newline at end of file diff --git a/assets/script/game/hero/EBusComp.ts.meta b/assets/script/game/hero/EBusComp.ts.meta deleted file mode 100644 index 125589db..00000000 --- a/assets/script/game/hero/EBusComp.ts.meta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "ver": "4.0.24", - "importer": "typescript", - "imported": true, - "uuid": "b44b7a75-de7d-4aa1-ad20-78e6690926c0", - "files": [], - "subMetas": {}, - "userData": {} -} diff --git a/assets/script/game/hero/HeroAnmComp.ts b/assets/script/game/hero/HeroAnmComp.ts index 84039552..2c033942 100644 --- a/assets/script/game/hero/HeroAnmComp.ts +++ b/assets/script/game/hero/HeroAnmComp.ts @@ -47,4 +47,8 @@ export default class HeroAnmComp extends Component{ if(this.anmcon.getState("buff").isPlaying) return this.anmcon.play("buff") } + dead(){ + if(this.anmcon.getState("dead").isPlaying) return + this.anmcon.play("dead") + } } \ No newline at end of file diff --git a/assets/script/game/hero/HeroAttrsComp.ts b/assets/script/game/hero/HeroAttrsComp.ts index 0132b994..9b97bfa6 100644 --- a/assets/script/game/hero/HeroAttrsComp.ts +++ b/assets/script/game/hero/HeroAttrsComp.ts @@ -454,8 +454,8 @@ export class HeroAttrSystem extends ecs.ComblockSystem model.updateTemporaryBuffsDebuffs(this.dt); // 2. HP/MP 自然回复(业务规则) - model.mp += HeroUpSet.MP * this.dt; - model.hp += HeroUpSet.HP * this.dt; + model.mp += HeroUpSet.MP * this.dt/60; + model.hp += HeroUpSet.HP * this.dt/60; // 3. 限制属性值在合理范围内 if (model.mp > model.Attrs[Attrs.MP_MAX]) { diff --git a/assets/script/game/hero/HeroSpine.ts b/assets/script/game/hero/HeroSpine.ts index d1f728d1..b25876f2 100644 --- a/assets/script/game/hero/HeroSpine.ts +++ b/assets/script/game/hero/HeroSpine.ts @@ -66,6 +66,10 @@ export class HeroSpine extends Component { break } } + dead(){ + // console.log("do dead"); + this.anm.dead() + } do_buff(){ this.anm.buff() } diff --git a/assets/script/game/hero/HeroViewComp.ts b/assets/script/game/hero/HeroViewComp.ts index 928a3e32..7eac3c46 100644 --- a/assets/script/game/hero/HeroViewComp.ts +++ b/assets/script/game/hero/HeroViewComp.ts @@ -10,7 +10,6 @@ import { GameEvent } from "../common/config/GameEvent"; import { TooltipTypes } from "../common/config/Mission"; import { Attrs, } from "../common/config/HeroAttrs"; import { HeroAttrsComp } from "./HeroAttrsComp"; -import { EBusComp } from "./EBusComp"; import { Tooltip } from "../skill/Tooltip"; import { timedCom } from "../skill/timedCom"; @@ -93,7 +92,7 @@ export class HeroViewComp extends CCComp { // 添加安全检查,防止在实体销毁过程中访问null的model if (!this.model) return; - + if(this.model.is_dead) return; // ✅ View 层职责:处理表现相关的逻辑 this.processDamageQueue(); // 伤害数字显示队列 @@ -158,17 +157,7 @@ export class HeroViewComp extends CCComp { node.setPosition(pos); } - /** 死亡特效 */ - private dead() { - var path = "game/skill/buff/dead"; - var prefab: Prefab = oops.res.get(path, Prefab)!; - var node = instantiate(prefab); - node.parent = this.node.parent; - node.setScale(node.scale.x * 0.5, node.scale.y * 0.5); - let pos = v3(this.node.position.x, this.node.position.y + 30, this.node.position.z); - node.setPosition(pos); - } - + /** 受击特效 */ private in_atked(anm: string = "atked", scale: number = 1) { var path = "game/skill/end/" + anm; @@ -270,7 +259,7 @@ export class HeroViewComp extends CCComp { this.model.is_count_dead = true; // 防止重复触发,必须存在防止重复调用 // 播放死亡特效 - this.dead(); + this.as.dead(); // 根据阵营触发不同事件 if(this.model.fac === FacSet.MON){ @@ -325,14 +314,7 @@ export class HeroViewComp extends CCComp { // 预留:反击、护盾触发等 } - to_grave(){ - tween(this.node).to(0.5, { position:v3(-900,this.node.position.y+300,0)},{ - onComplete: (target?: object) => { - this.node.setPosition(-900,this.node.position.y-300,0) - } - }).start() - } - + /** 调试日志(已禁用) */ to_console(value:any, value2:any=null, value3:any=null){ diff --git a/assets/script/game/map/MissionComp.ts b/assets/script/game/map/MissionComp.ts index 0949e46e..3238f97a 100644 --- a/assets/script/game/map/MissionComp.ts +++ b/assets/script/game/map/MissionComp.ts @@ -60,11 +60,11 @@ export class MissionComp extends CCComp { do_hero_dead(event:any,data:any){ // console.log("[MissionComp] do_hero_dead",event,data) - smc.vmdata.mission_data.hero_num-- - if(smc.vmdata.mission_data.hero_num<=0) { - oops.message.dispatchEvent(GameEvent.FightEnd,{victory:false}) - oops.gui.open(UIID.Victory,{victory:false,rewards:this.rewards,game_data:this.game_data}) - } + // smc.vmdata.mission_data.hero_num-- + // if(smc.vmdata.mission_data.hero_num<=0) { + // oops.message.dispatchEvent(GameEvent.FightEnd,{victory:false}) + // oops.gui.open(UIID.Victory,{victory:false,rewards:this.rewards,game_data:this.game_data}) + // } } do_ad(){ if(this.ad_back()){ diff --git a/assets/script/game/skill/SMoveComp.ts b/assets/script/game/skill/SMoveComp.ts index fe1dd734..004f8b2d 100644 --- a/assets/script/game/skill/SMoveComp.ts +++ b/assets/script/game/skill/SMoveComp.ts @@ -3,6 +3,8 @@ import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ec import { BezierMove } from "../BezierMove/BezierMove"; import { RType, SkillSet } from "../common/config/SkillSet"; import { BoxSet } from "../common/config/BoxSet"; +import { ECSEntity } from "db://oops-framework/libs/ecs/ECSEntity"; +import { SkillView } from "./SkillView"; /** * 技能移动数据组件 * 存储技能实体的移动相关数据 @@ -48,17 +50,19 @@ export class SMoveDataComp extends ecs.Comp { } } -// /** 业务层业务逻辑处理对象 */ -// export class SMoveSystem extends ecs.ComblockSystem implements ecs.IEntityEnterSystem { -// filter(): ecs.IMatcher { -// return ecs.allOf(SMoveDataComp); -// } -// entityEnter(e: ecs.Entity): void { -// // 注:自定义业务逻辑 -// let s_uuid=e.get(SMoveDataComp).s_uuid -// let SConf=SkillSet[s_uuid] +/** 业务层业务逻辑处理对象 */ +export class SMoveSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate { + filter(): ecs.IMatcher { + return ecs.allOf(SMoveDataComp,SkillView); + } + entityEnter(e: ecs.Entity): void { + // 注:自定义业务逻辑 + let s_uuid=e.get(SMoveDataComp).s_uuid + let SConf=SkillSet[s_uuid] -// e.remove(SMoveDataComp); -// } + } + update(entity: ECSEntity): void { + + } -// } \ No newline at end of file +} \ No newline at end of file diff --git a/assets/script/game/skill/Skill.ts b/assets/script/game/skill/Skill.ts index ec10aa43..60d35950 100644 --- a/assets/script/game/skill/Skill.ts +++ b/assets/script/game/skill/Skill.ts @@ -56,6 +56,7 @@ export class Skill extends ecs.Entity { // 初始视图 const SView = node.getComponent(SkillView); + console.log("load skill SView",SView) // 只设置必要的运行时属性,配置信息通过 SkillSet[uuid] 访问 // 核心标识 SView.s_uuid= s_uuid diff --git a/assets/script/game/skill/SkillView.ts b/assets/script/game/skill/SkillView.ts index 2247b088..f753913b 100644 --- a/assets/script/game/skill/SkillView.ts +++ b/assets/script/game/skill/SkillView.ts @@ -66,8 +66,10 @@ export class SkillView extends CCComp { } onBeginContact (seCol: Collider2D, oCol: Collider2D) { // console.log(this.scale+"碰撞开始 ",seCol,oCol); - if(seCol.node.position.x-oCol.node.position.x > 100 ) return + if(this.endType!=EType.collision) return let target = oCol.getComponent(HeroViewComp) + let model=target.ent.get(HeroAttrsComp) + if(model.is_dead) return if(oCol.group!=this.group){ if(target == null) return; if (!this.SConf) return; @@ -139,8 +141,9 @@ export class SkillView extends CCComp { // 收集范围内所有敌方目标 enemys.some(e => { const view = e.get(HeroViewComp); + const model=e.get(HeroAttrsComp) const distance = Math.abs(this.node.position.x - view.node.position.x); - if(distance <= dis) { + if(distance <= dis&&!model.is_dead) { IRTargets.push(view); }