diff --git a/assets/resources/game/skill/anm/atk/atk01.anim b/assets/resources/game/skill/anm/atk/atk01.anim index 442c5471..a124253c 100644 --- a/assets/resources/game/skill/anm/atk/atk01.anim +++ b/assets/resources/game/skill/anm/atk/atk01.anim @@ -9,9 +9,9 @@ "_native": "", "sample": 20, "speed": 1, - "wrapMode": 1, + "wrapMode": 2, "enableTrsBlending": false, - "_duration": 0.25, + "_duration": 0.1, "_hash": 500763545, "_tracks": [ { @@ -22,18 +22,7 @@ } ], "_exoticAnimation": null, - "_events": [ - { - "frame": 0.15, - "func": "", - "params": [] - }, - { - "frame": 0.15, - "func": "atk", - "params": [] - } - ], + "_events": [], "_embeddedPlayers": [], "_additiveSettings": { "__id__": 18 @@ -132,8 +121,8 @@ "__type__": "cc.RealCurve", "_times": [ 0, - 0.15, - 0.25 + 0.05000000074505806, + 0.10000000149011612 ], "_values": [ { @@ -146,9 +135,7 @@ "leftTangent": 0, "leftTangentWeight": 1, "easingMethod": 0, - "__editorExtras__": { - "tangentMode": 0 - } + "__editorExtras__": null }, { "__type__": "cc.RealKeyframeValue", @@ -160,9 +147,7 @@ "leftTangent": 0, "leftTangentWeight": 1, "easingMethod": 0, - "__editorExtras__": { - "tangentMode": 0 - } + "__editorExtras__": null }, { "__type__": "cc.RealKeyframeValue", @@ -174,9 +159,7 @@ "leftTangent": 0, "leftTangentWeight": 1, "easingMethod": 0, - "__editorExtras__": { - "tangentMode": 0 - } + "__editorExtras__": null } ], "preExtrapolation": 1, @@ -192,8 +175,8 @@ "__type__": "cc.RealCurve", "_times": [ 0, - 0.15, - 0.25 + 0.05000000074505806, + 0.10000000149011612 ], "_values": [ { @@ -206,9 +189,7 @@ "leftTangent": 0, "leftTangentWeight": 1, "easingMethod": 0, - "__editorExtras__": { - "tangentMode": 0 - } + "__editorExtras__": null }, { "__type__": "cc.RealKeyframeValue", @@ -220,9 +201,7 @@ "leftTangent": 0, "leftTangentWeight": 1, "easingMethod": 0, - "__editorExtras__": { - "tangentMode": 0 - } + "__editorExtras__": null }, { "__type__": "cc.RealKeyframeValue", @@ -234,9 +213,7 @@ "leftTangent": 0, "leftTangentWeight": 1, "easingMethod": 0, - "__editorExtras__": { - "tangentMode": 0 - } + "__editorExtras__": null } ], "preExtrapolation": 1, @@ -252,8 +229,8 @@ "__type__": "cc.RealCurve", "_times": [ 0, - 0.15, - 0.25 + 0.05000000074505806, + 0.10000000149011612 ], "_values": [ { @@ -266,9 +243,7 @@ "leftTangent": 0, "leftTangentWeight": 1, "easingMethod": 0, - "__editorExtras__": { - "tangentMode": 0 - } + "__editorExtras__": null }, { "__type__": "cc.RealKeyframeValue", @@ -280,9 +255,7 @@ "leftTangent": 0, "leftTangentWeight": 1, "easingMethod": 0, - "__editorExtras__": { - "tangentMode": 0 - } + "__editorExtras__": null }, { "__type__": "cc.RealKeyframeValue", @@ -294,9 +267,7 @@ "leftTangent": 0, "leftTangentWeight": 1, "easingMethod": 0, - "__editorExtras__": { - "tangentMode": 0 - } + "__editorExtras__": null } ], "preExtrapolation": 1, diff --git a/assets/resources/game/skill/atk/atk_s1.prefab b/assets/resources/game/skill/atk/atk_s1.prefab index e8e9d6e5..3787230b 100644 --- a/assets/resources/game/skill/atk/atk_s1.prefab +++ b/assets/resources/game/skill/atk/atk_s1.prefab @@ -38,13 +38,10 @@ }, { "__id__": 22 - }, - { - "__id__": 24 } ], "_prefab": { - "__id__": 26 + "__id__": 24 }, "_lpos": { "__type__": "cc.Vec3", @@ -237,7 +234,7 @@ }, "_lpos": { "__type__": "cc.Vec3", - "x": 40, + "x": 0, "y": -50, "z": 0 }, @@ -278,7 +275,7 @@ }, "_contentSize": { "__type__": "cc.Size", - "width": 80, + "width": 30, "height": 100 }, "_anchorPoint": { @@ -300,7 +297,7 @@ "node": { "__id__": 8 }, - "_enabled": false, + "_enabled": true, "__prefab": { "__id__": 12 }, @@ -400,12 +397,12 @@ }, "_contentSize": { "__type__": "cc.Size", - "width": 80, + "width": 30, "height": 100 }, "_anchorPoint": { "__type__": "cc.Vec2", - "x": 0, + "x": 0.5, "y": 0.5 }, "_id": "" @@ -414,35 +411,6 @@ "__type__": "cc.CompPrefabInfo", "fileId": "63NP9yq3hEUKD/OZZZ5t7x" }, - { - "__type__": "cc.Animation", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 1 - }, - "_enabled": true, - "__prefab": { - "__id__": 19 - }, - "playOnLoad": true, - "_clips": [ - { - "__uuid__": "45017156-064b-43f2-a24e-176b6ce17ad8", - "__expectedType__": "cc.AnimationClip" - } - ], - "_defaultClip": { - "__uuid__": "45017156-064b-43f2-a24e-176b6ce17ad8", - "__expectedType__": "cc.AnimationClip" - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "c2RDvksalG2acL3tyGCY0t" - }, { "__type__": "57aabs7TE1J5obTAZczc+64", "_name": "", @@ -453,7 +421,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 21 + "__id__": 19 }, "atk_x": 0, "atk_y": 0, @@ -474,7 +442,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 23 + "__id__": 21 }, "enabledContactListener": true, "bullet": false, @@ -508,7 +476,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 25 + "__id__": 23 }, "tag": 0, "_group": 1, @@ -518,12 +486,12 @@ "_restitution": 0, "_offset": { "__type__": "cc.Vec2", - "x": 50, + "x": 0, "y": 0 }, "_size": { "__type__": "cc.Size", - "width": 150, + "width": 30, "height": 100 }, "_id": "" diff --git a/assets/script/game/common/config/SkillSet.ts b/assets/script/game/common/config/SkillSet.ts index 4faa0921..23f839ce 100644 --- a/assets/script/game/common/config/SkillSet.ts +++ b/assets/script/game/common/config/SkillSet.ts @@ -193,7 +193,7 @@ export const SkillSet: Record = { 6001: { uuid:6001,name:"空挥",sp_name:"atk_s1",icon:"1026",TGroup:TGroup.Enemy,TType:TType.Frontline,readyAnm:"",endAnm:"",act:"atk",DTType:DTType.single, ap:100,hit_count:1,hitcd:0.2,speed:720,with:0, - ready:0,EAnm:0,DAnm:9001,RType:RType.fixed,EType:EType.animationEnd, + ready:0,EAnm:0,DAnm:9001,RType:RType.linear,EType:EType.collision, buffs:[],debuffs:[],info:"对前方目标造成100%攻击的伤害", }, 6002: { diff --git a/assets/script/game/hero/MoveComp.ts b/assets/script/game/hero/MoveComp.ts index 27f4fd4e..4670da78 100644 --- a/assets/script/game/hero/MoveComp.ts +++ b/assets/script/game/hero/MoveComp.ts @@ -3,7 +3,7 @@ import { HeroViewComp } from "./HeroViewComp"; import { HeroAttrsComp } from "./HeroAttrsComp"; import { smc } from "../common/SingletonModuleComp"; import { FacSet } from "../common/config/GameSet"; -import { HType, resolveFormationTargetX } from "../common/config/heroSet"; +import { HeroDisVal, HType, resolveFormationTargetX } from "../common/config/heroSet"; import { Node } from "cc"; @ecs.register('MoveComp') @@ -36,7 +36,8 @@ interface MoveFacConfig { @ecs.register('MoveSystem') export class MoveSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate { - private readonly meleeAttackRange = 52; + private readonly meleeAttackRange = HeroDisVal[HType.Melee]; + private readonly meleeMinEnemyDistanceX = 80; private readonly allySpacingX = 40; private readonly allyOverlapSpacingX = 14; private readonly displacementReleaseX = 10; @@ -172,38 +173,39 @@ export class MoveSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate const enemyX = enemy.node.position.x; const dist = Math.abs(currentX - enemyX); const maxRange = this.meleeAttackRange; + const minRange = Math.min(this.meleeMinEnemyDistanceX, maxRange); move.direction = enemyX > currentX ? 1 : -1; - move.targetX = enemyX - move.direction * maxRange; + move.targetX = enemyX - move.direction * minRange; - if (dist <= maxRange) { + if (dist <= minRange) { view.status_change("idle"); model.is_atking = true; + } else if (dist <= maxRange) { + const speed = model.speed / 3; + this.moveEntity(view, move.direction, speed, move.targetX); + model.is_atking = true; } else { const speed = model.speed / 3; - this.moveEntity(view, move.direction, speed, move.targetX); + this.moveEntity(view, move.direction, speed); model.is_atking = true; } } private processMidLogic(e: ecs.Entity, move: MoveComp, view: HeroViewComp, model: HeroAttrsComp, enemy: HeroViewComp) { - this.processRangedFormationCombat(move, view, model, enemy, 120, 360); + this.processRangedFormationCombat(move, view, model); } private processLongLogic(e: ecs.Entity, move: MoveComp, view: HeroViewComp, model: HeroAttrsComp, enemy: HeroViewComp) { - this.processRangedFormationCombat(move, view, model, enemy, 360, 720); + this.processRangedFormationCombat(move, view, model); } - private processRangedFormationCombat(move: MoveComp, view: HeroViewComp, model: HeroAttrsComp, enemy: HeroViewComp, defaultMin: number, defaultMax: number) { + private processRangedFormationCombat(move: MoveComp, view: HeroViewComp, model: HeroAttrsComp) { const currentX = view.node.position.x; - const enemyX = enemy.node.position.x; const targetX = this.getFixedFormationX(model); move.targetX = targetX; - const [minRange, maxRange] = this.resolveCombatRange(model, defaultMin, defaultMax); - const dist = Math.abs(currentX - enemyX); const needMoveToFormation = Math.abs(currentX - targetX) > 5; - const shouldKeepDistance = dist < minRange; - if (needMoveToFormation || shouldKeepDistance) { + if (needMoveToFormation) { const dir = targetX > currentX ? 1 : -1; move.direction = dir; const speed = model.speed / 3;