refactor: 简化攻击距离与职业类型系统

- 移除 SkillRange 枚举和 SkillDisVal 常量,统一使用 HType 表示攻击距离
- 删除 heroInfo 中的 rangeType 字段,直接使用 type 字段
- 更新英雄配置,将职业类型简化为近战、中程、远程三类
- 移除怪物属性中的 mp 和 def 字段,简化属性计算
- 更新移动和技能距离计算逻辑,直接使用 HType 判断
This commit is contained in:
panw
2026-03-16 15:54:49 +08:00
parent 11e6f49479
commit 95edd6fd6d
6 changed files with 54 additions and 136 deletions

View File

@@ -4,7 +4,6 @@ import { HeroAttrsComp } from "./HeroAttrsComp";
import { smc } from "../common/SingletonModuleComp";
import { FacSet } from "../common/config/GameSet";
import { HType, resolveFormationTargetX } from "../common/config/heroSet";
import { SkillRange } from "../common/config/SkillSet";
import { Node } from "cc";
@ecs.register('MoveComp')
@@ -94,25 +93,15 @@ export class MoveSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
}
private processCombatLogic(e: ecs.Entity, move: MoveComp, view: HeroViewComp, model: HeroAttrsComp, enemy: HeroViewComp) {
let rangeType = model.rangeType;
if (rangeType === undefined) {
if (model.type === HType.warrior || model.type === HType.assassin) {
rangeType = SkillRange.Melee;
} else if (model.type === HType.remote) {
rangeType = SkillRange.Long;
} else {
rangeType = SkillRange.Mid;
}
}
const rangeType = model.type as HType.Melee | HType.Mid | HType.Long;
switch (rangeType) {
case SkillRange.Melee:
case HType.Melee:
this.processMeleeLogic(e, move, view, model, enemy);
break;
case SkillRange.Mid:
case HType.Mid:
this.processMidLogic(e, move, view, model, enemy);
break;
case SkillRange.Long:
case HType.Long:
this.processLongLogic(e, move, view, model, enemy);
break;
default:
@@ -206,7 +195,7 @@ export class MoveSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
}
private getFixedFormationX(model: HeroAttrsComp): number {
return resolveFormationTargetX(model.fac, model.type, model.rangeType);
return resolveFormationTargetX(model.fac, model.type as HType);
}
private moveEntity(view: HeroViewComp, direction: number, speed: number, stopAtX?: number) {
@@ -269,18 +258,9 @@ export class MoveSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
}
private getCombatPriority(model: HeroAttrsComp): number {
let rangeType = model.rangeType;
if (rangeType === undefined || rangeType === null) {
if (model.type === HType.warrior || model.type === HType.assassin) {
rangeType = SkillRange.Melee;
} else if (model.type === HType.remote) {
rangeType = SkillRange.Long;
} else {
rangeType = SkillRange.Mid;
}
}
if (rangeType === SkillRange.Melee) return 3;
if (rangeType === SkillRange.Mid) return 2;
const rangeType = model.type as HType.Melee | HType.Mid | HType.Long;
if (rangeType === HType.Melee) return 3;
if (rangeType === HType.Mid) return 2;
return 1;
}