refactor: 重构复活机制,将复活逻辑整合到dead触发组

1.  新增SkillOverrides的revive_hp和revive_count配置项,替代原独立复活字段
2.  移除所有revive相关的旧配置、解析函数和UI展示逻辑
3.  调整战斗逻辑,从dead触发组的overrides中读取复活配置
4.  更新文档说明,统一复活机制的配置方式
5.  清理冗余的导入和类型定义
This commit is contained in:
panFD
2026-09-03 22:28:38 +08:00
parent 87f771edd1
commit b0038e74c8
12 changed files with 120 additions and 131 deletions

View File

@@ -22,7 +22,7 @@ import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ec
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
import { oops } from "db://oops-framework/core/Oops";
import { mLogger } from "../common/Logger";
import { HeroInfo, HeroList, SkillTriggerType, LvFieldEntry, LvReviveEntry, LvTriggerEntry, TriggerGrouped, getHeroDisplayStats } from "../common/config/heroSet";
import { HeroInfo, HeroList, SkillTriggerType, LvFieldEntry, LvTriggerEntry, TriggerGrouped, getHeroDisplayStats } from "../common/config/heroSet";
import { buildHeroSkillDesc } from "../common/HeroSkillText";
import { GameEvent } from "../common/config/GameEvent";
import { HERO_UPGRADE_NEED_FRAGMENTS, RARITY_BG_COLORS } from "../common/config/GameSet";
@@ -493,7 +493,6 @@ export class HerosListComp extends CCComp {
SkillTriggerType.Field,
SkillTriggerType.Atking,
SkillTriggerType.Atked,
SkillTriggerType.Revive,
]
/**
@@ -527,8 +526,6 @@ export class HerosListComp extends CCComp {
for (const type of HerosListComp.PANEL_TRIGGER_TYPES) {
if (type === SkillTriggerType.Field) {
this.addFieldIcons(hero[SkillTriggerType.Field], lv)
} else if (type === SkillTriggerType.Revive) {
this.addReviveIcon(hero[SkillTriggerType.Revive], lv)
} else {
this.addTriggerIcons(hero[type] as TriggerGrouped | undefined, lv, type)
}
@@ -584,15 +581,9 @@ export class HerosListComp extends CCComp {
}
}
/** 复活技能:未激活取最低档预览,激活取 ≤lv 最大档 */
private addReviveIcon(revive: LvReviveEntry[] | undefined, lv: number) {
if (!revive?.length) return
const sorted = [...revive].sort((a, b) => a.lv - b.lv)
let active: LvReviveEntry | undefined
for (const e of sorted) { if (e.lv <= lv) active = e }
const pick = active ?? sorted[0]
// 复活档位无 s_lv 概念,技能等级恒为 1(等级标签展示技能等级而非解锁的英雄等级)
this.addSkillIcon(pick.s_uuid, 1, !active, false, SkillTriggerType.Revive)
/** 复活技能已纳入 dead 触发组,通过 dead 配置展示(revive_hp / revive_count) */
private addReviveIcon(_revive: unknown, _lv: number) {
// 复活已纳入 dead 触发组,不再单独处理
}
// ======================== 英雄动画 ========================