refactor(hero&monster): 统一使用dis字段获取攻击距离
移除HeroDisVal映射表,改为直接从实体组件读取配置的dis属性作为攻击距离,同时补全所有英雄和怪物配置中的dis字段
This commit is contained in:
@@ -111,6 +111,7 @@ export class Hero extends ecs.Entity {
|
||||
model.pool_lv = pool_lv;
|
||||
model.type = hero.type;
|
||||
model.fac = FacSet.HERO;
|
||||
model.dis = hero.dis;
|
||||
|
||||
// 复制触发技能配置
|
||||
model.call = hero.call;
|
||||
|
||||
@@ -254,8 +254,7 @@ export class HeroAttrsComp extends ecs.Comp {
|
||||
* @param skillsComp 技能组件
|
||||
*/
|
||||
public updateSkillDistanceCache(): void {
|
||||
const rangeType = this.type as HType.Melee | HType.Mid | HType.Long;
|
||||
const maxRange = HeroDisVal[rangeType];
|
||||
const maxRange = this.dis;
|
||||
let minRange = 0;
|
||||
this.maxSkillDistance = maxRange;
|
||||
this.minSkillDistance = minRange;
|
||||
|
||||
@@ -167,6 +167,7 @@ export class Monster extends ecs.Entity {
|
||||
model.speed = hero.speed;
|
||||
model.type = hero.type;
|
||||
model.fac = FacSet.MON;
|
||||
model.dis = hero.dis;
|
||||
|
||||
// 复制触发技能配置
|
||||
model.call = hero.call;
|
||||
|
||||
@@ -123,8 +123,7 @@ export class MonMoveSystem extends ecs.ComblockSystem implements ecs.ISystemUpda
|
||||
|
||||
private isEnemyInAttackRange(model: HeroAttrsComp, selfX: number, enemyX: number): boolean {
|
||||
const dist = Math.abs(selfX - enemyX);
|
||||
const rangeType = model.type as HType.Melee | HType.Mid | HType.Long;
|
||||
const attackRange = HeroDisVal[rangeType];
|
||||
const attackRange = model.dis;
|
||||
return dist <= attackRange;
|
||||
}
|
||||
|
||||
|
||||
@@ -180,8 +180,7 @@ export class MoveSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
|
||||
|
||||
private isEnemyInAttackRange(model: HeroAttrsComp, selfX: number, enemyX: number): boolean {
|
||||
const dist = Math.abs(selfX - enemyX);
|
||||
const rangeType = model.type as HType.Melee | HType.Mid | HType.Long;
|
||||
const attackRange = HeroDisVal[rangeType];
|
||||
const attackRange = model.dis;
|
||||
return dist <= attackRange;
|
||||
}
|
||||
|
||||
|
||||
@@ -670,12 +670,11 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
|
||||
return frontEnemy.node.position.clone();
|
||||
}
|
||||
|
||||
/** 计算英雄最大施法距离(优先缓存,其次按职业类型) */
|
||||
/** 计算英雄最大施法距离(优先缓存,其次按英雄配置的基础距离) */
|
||||
private resolveMaxCastRange(heroAttrs: HeroAttrsComp, type: HType): number {
|
||||
const cached = heroAttrs.getCachedMaxSkillDistance();
|
||||
if (cached > 0) return cached;
|
||||
const rangeType = type as HType.Melee | HType.Mid | HType.Long;
|
||||
return HeroDisVal[rangeType];
|
||||
return heroAttrs.dis;
|
||||
}
|
||||
|
||||
/** 生成沿目标方向的施法目标坐标 */
|
||||
|
||||
Reference in New Issue
Block a user