Files
pixelheros/.trae/documents/超休闲塔防属性精简与落地方案.md
walkpan 5e9494e4f8 refactor(战斗系统): 简化属性系统并移除魔法相关属性
移除魔法攻击(MAP)、魔法防御(MDEF)、元素抗性等冗余属性
将伤害减免统一由DEF属性处理,重命名CRITICAL_RESIST为CRITICAL_RES
更新相关技能、天赋和怪物配置以适应新的属性系统
删除未使用的职业成长系数配置和基础属性映射逻辑
2026-01-01 22:08:26 +08:00

62 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 目标
- 新增一个“生效属性配置文件”,集中声明超休闲塔防要启用的属性键,供系统与 UI 快速判断哪些属性参与计算与展示。
## 文件位置
- `assets/script/game/common/config/TDEnabledAttrs.ts`
## 内容结构
- 引用 `HeroAttrs.ts``Attrs` 枚举。
- 导出两类集合:
- 核心启用集合 `TD_ENABLED_ATTRS`ReadonlySet<Attrs>
- 轻度可选集合 `TD_OPTIONAL_ATTRS`ReadonlySet<Attrs>
- 额外导出 `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<Attrs> = new Set<Attrs>([
Attrs.AP,
Attrs.AS,
Attrs.DIS,
Attrs.PUNCTURE,
Attrs.CRITICAL,
Attrs.CRITICAL_DMG,
Attrs.HP_MAX,
Attrs.DEF,
]);
export const TD_OPTIONAL_ATTRS: ReadonlySet<Attrs> = new Set<Attrs>([
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`,我会在提交前同步调整。