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

2.1 KiB
Raw Permalink Blame History

目标

  • 新增一个“生效属性配置文件”,集中声明超休闲塔防要启用的属性键,供系统与 UI 快速判断哪些属性参与计算与展示。

文件位置

  • assets/script/game/common/config/TDEnabledAttrs.ts

内容结构

  • 引用 HeroAttrs.tsAttrs 枚举。
  • 导出两类集合:
    • 核心启用集合 TD_ENABLED_ATTRSReadonlySet
    • 轻度可选集合 TD_OPTIONAL_ATTRSReadonlySet
  • 额外导出 TD_ATTR_GROUPS(用于 UI 分组展示,非必需)。

初始启用键(核心)

  • 塔/英雄输出:APASDISPIERCE
  • 爽点:CRITICALCRITICAL_DMG
  • 敌人生存:HP_MAXDEF

轻度可选键(后续可开关)

  • 控制:SLOW_CHANCE(或改为 STUN_CHANCE
  • 经济:GOLD_GAIN
  • 精英修正:DMG_RED

计划代码(示例)

// 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,我会在提交前同步调整。