diff --git a/assets/script/game/common/config/BuffSet.ts b/assets/script/game/common/config/BuffSet.ts index 0c3a40a4..ef5f33c9 100644 --- a/assets/script/game/common/config/BuffSet.ts +++ b/assets/script/game/common/config/BuffSet.ts @@ -29,6 +29,33 @@ export interface BuffTickEffect { scale_by_ap_pct: number; // 按施法者 ap 缩放百分比,0=不吃加成 } +/** + * debuff 图标节点名枚举。 + * 取值即 prefab 节点名:top.prefab 的 top/debuff 容器 与 tooltip.prefab 的 loss_life/hp/debuff 容器 + * 下存在同名子节点(两处共用一套图标)。 + * 注意:LightningDamag 为 prefab 原始拼写(少个 e),勿"修正"。 + */ +export enum DebuffIcon { + AttackDebuff = "AttackDebuff", // 攻击类 debuff + IceDamage = "IceDamage", // 冰系伤害 + FireDamage = "FireDamage", // 火系伤害(灼烧) + LightningDamag = "LightningDamag", // 雷系伤害 + Penetration = "Penetration", // 穿透 + Stun = "Stun", // 击晕 + Poison = "Poison", // 中毒 +} + +/** + * buffId → debuff 图标映射。 + * 仅伤害类/控制类 debuff 需要图标;未映射的 buff 不显示。 + * 新增 debuff 时:1) BuffList 加配置 2) 此处加一行映射。 + */ +export const DEBUFF_ICON_MAP: Record = { + 7002: DebuffIcon.FireDamage, // 灼烧 + 7003: DebuffIcon.IceDamage, // 冰冻 + 7004: DebuffIcon.Stun, // 击晕 +}; + /** Buff 静态定义 */ export interface BuffConfig { id: number; diff --git a/assets/script/game/hero/HeroAtkSystem.ts b/assets/script/game/hero/HeroAtkSystem.ts index 01db23fa..ef9d4ecd 100644 --- a/assets/script/game/hero/HeroAtkSystem.ts +++ b/assets/script/game/hero/HeroAtkSystem.ts @@ -19,7 +19,7 @@ import { getMonsterGoldDrop } from "../map/RogueConfig"; import { MissionEconomy } from "../map/MissionEconomy"; import { MoveComp } from "./MoveComp"; import { buffManager, BuffApplyOverrides } from "./BuffManager"; -import { DEBUFF_ICON_MAP } from "./HeroTopBarComp"; +import { DEBUFF_ICON_MAP } from "../common/config/BuffSet"; /** 最终伤害数据接口 * 用于封装一次攻击计算的所有结果数据 diff --git a/assets/script/game/hero/HeroTopBarComp.ts b/assets/script/game/hero/HeroTopBarComp.ts index 5d867fdf..f36968cf 100644 --- a/assets/script/game/hero/HeroTopBarComp.ts +++ b/assets/script/game/hero/HeroTopBarComp.ts @@ -3,7 +3,7 @@ import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ec import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp"; import { HeroAttrsComp } from "./HeroAttrsComp"; import { BuffComp } from "./BuffComp"; -import { BuffList, BuffCategory } from "../common/config/BuffSet"; +import { BuffList, BuffCategory, DEBUFF_ICON_MAP } from "../common/config/BuffSet"; import { FacSet, FightSet } from "../common/config/GameSet"; const { ccclass, property } = _decorator; @@ -20,15 +20,6 @@ const { ccclass, property } = _decorator; * 数据流:HeroViewComp 将 HeroAttrsComp 引用传入,本组件通过 model 读取属性。 * 注意:英雄根节点下的 "shielded" 是护盾特效动画节点,由 HeroViewComp 管理,不在本组件职责内。 */ -/** - * buffId → debuff 图标节点名映射(节点名为 top.prefab / tooltip.prefab debuff 容器下的子节点名,两处同名)。 - * 仅伤害类 debuff 需要图标;未映射的 buff 不显示。 - * 导出供 HeroTopBarComp(头顶 debuff 栏)与 HeroAtkSystem(DoT 飘字图标)共用。 - */ -export const DEBUFF_ICON_MAP: Record = { - 7002: "FireDamage", // 灼烧 -}; - @ccclass('HeroTopBarComp') @ecs.register('HeroTopBar', false) export class HeroTopBarComp extends CCComp {