fix(hero): 调整近战英雄攻击距离并简化移动逻辑

将 HeroDisVal 中近战英雄的攻击距离从 150 调整为 360,以改善战斗体验。
移除 `processMeleeLogic` 中的独立逻辑,改为复用 `processRangedFormationCombat` 方法,统一移动与攻击行为,提升代码可维护性。
This commit is contained in:
panw
2026-03-30 15:29:26 +08:00
parent a3a19b1960
commit e1298bfe96
2 changed files with 2 additions and 23 deletions

View File

@@ -26,7 +26,7 @@ export const FormationPointX = {
} as const;
export const HeroDisVal: Record<HType.Melee | HType.Mid | HType.Long, number> = {
[HType.Melee]: 150,
[HType.Melee]: 360,
[HType.Mid]: 400,
[HType.Long]: 720,
}

View File

@@ -200,28 +200,7 @@ export class MoveSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
}
private processMeleeLogic(e: ecs.Entity, move: MoveComp, view: HeroViewComp, model: HeroAttrsComp, enemy: HeroViewComp) {
const currentX = view.node.position.x;
const enemyX = enemy.node.position.x;
const dist = Math.abs(currentX - enemyX);
const maxRange = this.meleeAttackRange;
const minRange = Math.min(this.meleeMinEnemyDistanceX, maxRange);
/** 近战目标点 = 敌人位置 - 朝向 * minRange确保能贴近但不穿模 */
move.direction = enemyX > currentX ? 1 : -1;
move.targetX = enemyX - move.direction * minRange;
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);
model.is_atking = true;
}
this.processRangedFormationCombat(move, view, model);
}
private processMidLogic(e: ecs.Entity, move: MoveComp, view: HeroViewComp, model: HeroAttrsComp, enemy: HeroViewComp) {