refactor: 重构复活机制,将复活逻辑整合到dead触发组
1. 新增SkillOverrides的revive_hp和revive_count配置项,替代原独立复活字段 2. 移除所有revive相关的旧配置、解析函数和UI展示逻辑 3. 调整战斗逻辑,从dead触发组的overrides中读取复活配置 4. 更新文档说明,统一复活机制的配置方式 5. 清理冗余的导入和类型定义
This commit is contained in:
@@ -3,7 +3,7 @@ import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/O
|
||||
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
||||
import { smc } from "../common/SingletonModuleComp";
|
||||
import { BoxSet, FacSet, FightSet, IndexSet } from "../common/config/GameSet";
|
||||
import { HeroInfo, resolveTriggerByLv, resolveReviveByLv, resolveSkillOverrides, HeroDisVal, getHeroQualityCoef, HERO_LV12_SPECIAL_ATTR } from "../common/config/heroSet";
|
||||
import { HeroInfo, resolveTriggerByLv, resolveSkillOverrides, HeroDisVal, getHeroQualityCoef, HERO_LV12_SPECIAL_ATTR } from "../common/config/heroSet";
|
||||
import { HeroAttrsComp } from "./HeroAttrsComp";
|
||||
import { HeroViewComp } from "./HeroViewComp";
|
||||
import { MoveComp } from "./MoveComp";
|
||||
@@ -199,7 +199,6 @@ export class Monster extends ecs.Entity {
|
||||
model.fstart = hero.fstart;
|
||||
model.atking = hero.atking;
|
||||
model.atked = hero.atked;
|
||||
model.revive = hero.revive;
|
||||
|
||||
// 标记是否 Boss,非 Boss 默认记作杂兵
|
||||
model.is_boss = is_boss
|
||||
@@ -236,16 +235,15 @@ export class Monster extends ecs.Entity {
|
||||
if (testSkills.dead !== undefined) model.dead = testSkills.dead;
|
||||
if (testSkills.fstart !== undefined) model.fstart = testSkills.fstart;
|
||||
if (testSkills.call !== undefined) model.call = testSkills.call;
|
||||
if (testSkills.revive !== undefined) model.revive = testSkills.revive;
|
||||
}
|
||||
|
||||
// 按怪物等级 resolve 触发技能/复活到运行时缓存(怪物无 lv 成长,恒用 mon_lv)
|
||||
// 按怪物等级 resolve 触发技能到运行时缓存(怪物无 lv 成长,恒用 mon_lv)
|
||||
model.runtime_call = resolveTriggerByLv(model.call, mon_lv);
|
||||
model.runtime_dead = resolveTriggerByLv(model.dead, mon_lv);
|
||||
model.runtime_fstart = resolveTriggerByLv(model.fstart, mon_lv);
|
||||
model.runtime_atking = resolveTriggerByLv(model.atking, mon_lv);
|
||||
model.runtime_atked = resolveTriggerByLv(model.atked, mon_lv);
|
||||
model.runtime_revive = resolveReviveByLv(model.revive, mon_lv);
|
||||
// 复活已纳入 dead 触发组,无需单独解析 revive
|
||||
|
||||
// 缓存技能射程等派生数据,减少战斗帧内重复计算
|
||||
model.updateSkillDistanceCache();
|
||||
|
||||
Reference in New Issue
Block a user