refactor(战斗): 重构英雄阵型位置计算逻辑
- 将阵型位置计算提取到公共配置模块,定义 FormationPointX 映射 - 新增 resolveRangeTypeByHeroType 函数根据英雄类型解析默认攻击范围 - 新增 resolveFormationTargetX 函数统一计算英雄阵型目标X坐标 - 在 Hero 和 MoveSystem 中复用新的阵型计算函数,消除重复逻辑 - 优化远程英雄战斗逻辑,使其能根据阵型位置和攻击范围动态调整站位
This commit is contained in:
@@ -5,7 +5,7 @@ import { smc } from "../common/SingletonModuleComp";
|
||||
import { HeroAttrsComp } from "./HeroAttrsComp";
|
||||
import { HeroViewComp } from "./HeroViewComp";
|
||||
import { BoxSet, FacSet, FightSet, IndexSet } from "../common/config/GameSet";
|
||||
import { HeroInfo, HeroPos, HType } from "../common/config/heroSet";
|
||||
import { HeroInfo, HeroPos, resolveFormationTargetX } from "../common/config/heroSet";
|
||||
import { GameEvent } from "../common/config/GameEvent";
|
||||
import { Attrs} from "../common/config/HeroAttrs";
|
||||
import { MoveComp } from "./MoveComp";
|
||||
@@ -95,14 +95,8 @@ export class Hero extends ecs.Entity {
|
||||
oops.message.dispatchEvent(GameEvent.MasterCalled,{uuid:uuid})
|
||||
const move = this.get(MoveComp);
|
||||
move.direction = 1; // 向右移动
|
||||
move.targetX = 0; // 右边界'
|
||||
move.targetX = resolveFormationTargetX(model.fac, model.type, model.rangeType);
|
||||
move.baseY = pos.y;
|
||||
if(HeroInfo[uuid].type==HType.remote){
|
||||
move.targetX = -100; // 右边界'
|
||||
}
|
||||
if(HeroInfo[uuid].type==HType.mage){
|
||||
move.targetX = -200; // 右边界'
|
||||
}
|
||||
smc.vmdata.mission_data.hero_num++
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user