## 目标 - 新增一个“生效属性配置文件”,集中声明超休闲塔防要启用的属性键,供系统与 UI 快速判断哪些属性参与计算与展示。 ## 文件位置 - `assets/script/game/common/config/TDEnabledAttrs.ts` ## 内容结构 - 引用 `HeroAttrs.ts` 的 `Attrs` 枚举。 - 导出两类集合: - 核心启用集合 `TD_ENABLED_ATTRS`(ReadonlySet) - 轻度可选集合 `TD_OPTIONAL_ATTRS`(ReadonlySet) - 额外导出 `TD_ATTR_GROUPS`(用于 UI 分组展示,非必需)。 ## 初始启用键(核心) - 塔/英雄输出:`AP`、`AS`、`DIS`、`PIERCE` - 爽点:`CRITICAL`、`CRITICAL_DMG` - 敌人生存:`HP_MAX`、`DEF` ## 轻度可选键(后续可开关) - 控制:`SLOW_CHANCE`(或改为 `STUN_CHANCE`) - 经济:`GOLD_GAIN` - 精英修正:`DMG_RED` ## 计划代码(示例) ```ts // assets/script/game/common/config/TDEnabledAttrs.ts import { Attrs } from "./HeroAttrs"; export const TD_ENABLED_ATTRS: ReadonlySet = new Set([ Attrs.AP, Attrs.AS, Attrs.DIS, Attrs.PUNCTURE, Attrs.CRITICAL, Attrs.CRITICAL_DMG, Attrs.HP_MAX, Attrs.DEF, ]); export const TD_OPTIONAL_ATTRS: ReadonlySet = new Set([ Attrs.SLOW_CHANCE, Attrs.GOLD_GAIN, Attrs.DMG_RED, ]); export const TD_ATTR_GROUPS = { towerCore: [Attrs.AP, Attrs.AS, Attrs.DIS, Attrs.PUNCTURE], towerBonus: [Attrs.CRITICAL, Attrs.CRITICAL_DMG], enemyCore: [Attrs.HP_MAX, Attrs.DEF], optional: [Attrs.SLOW_CHANCE, Attrs.GOLD_GAIN, Attrs.DMG_RED], } as const; ``` ## 接入点(不改动逻辑,只引用) - 计算系统:在重算或结算处通过 `TD_ENABLED_ATTRS.has(attr)` 判断展示/参与计算(不改变已有正确计算路径,只做筛选)。 - UI:面板按 `TD_ATTR_GROUPS` 渲染;未启用键默认隐藏。 ## 验证 - 在测试环境加载 1 个塔与 2 类敌人,确认仅启用键被展示和参与战斗,TTK/DPS 表现符合预期。 ## 等待下一步 - 若确认上述文件结构与键集合,开始创建文件并接入引用;如需改用 `AREA_OF_EFFECT` 替代 `PIERCE` 或改为 `STUN_CHANCE`,我会在提交前同步调整。