refactor: 简化攻击距离与职业类型系统
- 移除 SkillRange 枚举和 SkillDisVal 常量,统一使用 HType 表示攻击距离 - 删除 heroInfo 中的 rangeType 字段,直接使用 type 字段 - 更新英雄配置,将职业类型简化为近战、中程、远程三类 - 移除怪物属性中的 mp 和 def 字段,简化属性计算 - 更新移动和技能距离计算逻辑,直接使用 HType 判断
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user