Files
pixelheros/.trae/documents/超休闲塔防属性精简与落地方案.md
walkpan 8eedc2b4dd feat(塔防): 添加属性配置和等级成长系统
添加塔防生效属性配置文件 TDEnabledAttrs.ts,集中管理游戏属性
实现塔防等级成长系统 TDLevelOptions.ts,包含1-20级强化配置
调整数值平衡,除AP/HP_MAX外所有属性强度减半
2025-12-25 20:55:49 +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.PIERCE,
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.PIERCE],
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`,我会在提交前同步调整。