geometry-tower-defense/docs/TODO.md

92 lines
14 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.

# GeometryTD 可执行 Todo List
> 来源:`docs/GameDesign.md`
> 目标:先做出可完整游玩的 MVP再逐步补齐深度与打磨。
## 执行规则
1. 按里程碑顺序执行,不跨阶段提前开发。
2. 每项任务必须同时满足“交付物路径”和“验收标准”才可打勾。
3. 数据驱动优先:数值、掉落、商店、事件都优先落到 `DataTables`
## M1 当前口径2026-03-11
- 当前仓库已经具备 `ProcedureMain + NodeMapForm + CombatNode + EventNode + ShopNode` 的主流程 Run 闭环,可以从主菜单进入游戏,完成固定 10 节点流程,并在 Boss 结算后进入正式结束态并回到主菜单。
- `NodeMapForm` 已满足 MVP 所需的节点流程界面M1 主功能侧已完成收口,后续重点转入测试补强与旧文档清理。
- `P0-10` 的“三组件完整合法参战”主链已完成:当前参战分配、战斗入口最终校验、失败原因与拦截提示都已接入统一合法性判断入口,现阶段不再把它视为 M1 功能缺口。
- `P0-11` 已完成收口当前品质计算、Tag 生成、塔级 Tag 汇总、首发 7 个 Tag 的战斗效果、以及 `Tag.txt + RarityTagBudget.txt + TagConfig.txt` 三表驱动链路都已落地,代码默认值、运行时消费链与文档口径现已统一。
- `P0-12` 的“最小耐久闭环”主链已落地:当前已实现战斗后按参战塔真实扣减耐久、`0` 耐久失效并拦截参战/战斗入口、仓库详情损坏提示,以及节点结束后自动将损坏塔移出参战区并弹窗说明。
## 里程碑 M1P0- 最小可玩闭环
| 状态 | ID | 任务 | 交付物路径 | 验收标准 |
|-----|-------|-------------------------------------|----------------------------------------------------------------------------------------|--------------------------------------------------------------------------|
| [x] | P0-01 | 冻结 MVP 范围(只保留:战斗节点/事件节点/商店节点/节点后组装) | `docs/MVP-Scope.md` | 明确“做/不做”清单,团队评审通过 |
| [x] | P0-02 | 补齐数据表:组件、敌人、波次、节点、事件、商店商品 | `Assets/GameMain/DataTables/*.txt` | 游戏启动可无报错加载全部新增表 |
| [x] | P0-03 | 新增/完善 DataRow 解析类 | `Assets/GameMain/Scripts/DataTable/*.cs` | 每个新增表都有对应 DR 类并成功解析 |
| [x] | P0-04 | 建立单局 Run 状态模型(金币、生命、库存、当前节点) | `Assets/GameMain/Scripts/Procedure/` | 已有 `RunState` / 推进模型 / 固定序列 / EditMode 测试,并已接入 `ProcedureMain` 主流程闭环 |
| [x] | P0-05 | 实现 10 节点地图生成(最后节点固定 Boss | `Assets/GameMain/Scripts/Procedure/`<br>`Assets/GameMain/Scripts/UI/Game/` | 已有固定 10 节点序列、当前节点限制、Boss 终点链路与节点流程入口MVP 不额外要求节点地图选择 UI 或表现层打磨 |
| [x] | P0-06 | 实现节点选择与跳转流程(战斗/事件/商店) | `Assets/GameMain/Scripts/Procedure/` | 战斗 / 事件 / 商店已统一接入节点进入、完成、异常回流Boss 完成后会进入正式结束态并返回主菜单 |
| [x] | P0-07 | 战斗节点基础玩法:放置塔、出怪、基地扣血、胜负判定 | `Assets/GameMain/Scripts/Entity/`<br>`Assets/GameMain/Scripts/Scene/` | 可完整打一场并得到胜利/失败结果 |
| [x] | P0-08 | 胜利波次与结算规则100/80/50/<50 | `Assets/GameMain/Scripts/Procedure/` | 结算奖励与惩罚严格匹配设计文档 |
| [x] | P0-09 | 敌人掉落与关卡奖励组件/金币 | `Assets/GameMain/Scripts/Entity/` | 战斗结束能发放掉落并写入库存 |
| [x] | P0-10 | 节点后组装枪口/轴承/底座三组件约束 | `Assets/GameMain/Scripts/Entity/`<br>`Assets/GameMain/Scripts/UI/Templates/GameScene/` | 已完成“三组件完整合法参战”的统一校验链、战斗入口最终拦截与失败原因反馈;不再作为当前 M1 功能缺口 |
| [x] | P0-11 | 品质 / Tag 规则统一入口(白绿蓝紫红) | `Assets/GameMain/Scripts/Definition/`<br>`Assets/GameMain/Scripts/Entity/` | 已完成品质统一、Tag 生成/汇总/展示、首发 7 个 Tag 的战斗生效,以及三表方案的正式收口与文档同步 |
| [x] | P0-12 | 组件耐久最小闭环 | `Assets/GameMain/Scripts/Procedure/`<br>`Assets/GameMain/Scripts/CustomComponent/PlayerInventory/`<br>`Assets/GameMain/Scripts/UI/` | 已实现战斗后真实扣减、`0` 耐久失效拦截、仓库损坏提示与节点结束后的自动移出参战区;自动销毁/维修系统保留到后续阶段 |
## 里程碑 M2P1- 核心深度
| 状态 | ID | 任务 | 交付物路径 | 验收标准 |
|-----|-------|-------------------------------|-------------------------------------------------------------------------------------------|--------------------|
| [ ] | P1-01 | 事件节点系统(选项、概率、奖励/惩罚执行器) | `Assets/GameMain/Scripts/Procedure/`<br>`Assets/GameMain/Scripts/UI/Templates/GameScene/` | 可配置并执行至少 10 个事件 |
| [ ] | P1-02 | 落地设计中的 3 个示例事件(赌马/组件交换/耐久换金币) | `Assets/GameMain/DataTables/*.txt` | 三个事件可在局内完整触发与结算 |
| [ ] | P1-03 | 商店节点:购买/出售组件 | `Assets/GameMain/Scripts/UI/Templates/GameScene/` | 买卖后库存与金币实时正确更新 |
| [ ] | P1-04 | 商店定价规则:买价、半价回收、卖塔+10%、耐久折价 | `Assets/GameMain/Scripts/Utility/`<br>`Assets/GameMain/Scripts/Entity/` | 各种交易结果符合公式 |
| [ ] | P1-05 | 道具系统(影响初始金币、掉金倍率等) | `Assets/GameMain/Scripts/Entity/`<br>`Assets/GameMain/DataTables/*.txt` | 至少 5 个道具可叠加生效 |
| [ ] | P1-06 | 战斗后“继续挑战”机制(高强度高爆率) | `Assets/GameMain/Scripts/Procedure/` | 选择继续后敌人强度明显提升且爆率提升 |
| [ ] | P1-07 | 火山主题规则(高温、岩浆格、抗火敌人) | `Assets/GameMain/Scripts/Scene/`<br>`Assets/GameMain/Scripts/Entity/` | 岩浆效果可视且会改变战斗结果 |
| [ ] | P1-08 | 山地主题规则(高度、悬崖、位移致死) | `Assets/GameMain/Scripts/Scene/`<br>`Assets/GameMain/Scripts/Entity/` | 高低地形影响攻防与移速,悬崖击退生效 |
| [ ] | P1-09 | 主题地图掉落偏好(按主题偏置组件) | `Assets/GameMain/DataTables/*.txt`<br>`Assets/GameMain/Scripts/Entity/` | 不同主题统计掉落分布显著不同 |
| [ ] | P1-10 | 大关完成后可选下一主题地图 | `Assets/GameMain/Scripts/Procedure/`<br>`Assets/GameMain/Scripts/UI/Templates/GameScene/` | 通关后至少可在 2 个主题间选择 |
## 里程碑 M3P2- 打磨与上线准备
| 状态 | ID | 任务 | 交付物路径 | 验收标准 |
|-----|-------|---------------------------|----------------------------------------------------------------------------|------------------|
| [ ] | P2-01 | HUD 完整信息(波次、基地血量、金币、节点进度) | `Assets/GameMain/Scripts/UI/Templates/GameScene/View/` | 关键信息在战斗中可实时观测 |
| [ ] | P2-02 | 3 选 1 奖励 UI 与结果回放 | `Assets/GameMain/Scripts/UI/Templates/GameScene/` | 奖励选择流程无阻塞,结果可追溯 |
| [ ] | P2-03 | 组装/拆解交互优化(预览属性变化) | `Assets/GameMain/Scripts/UI/Templates/GameScene/` | 改装前后差异可视化展示 |
| [ ] | P2-04 | 存档与读档(局外货币、库存、解锁进度) | `Assets/GameMain/Scripts/Utility/`<br>`Assets/GameMain/Scripts/Procedure/` | 重启游戏后进度一致恢复 |
| [ ] | P2-05 | 平衡性首轮调参(敌人曲线、经济曲线、掉落曲线) | `Assets/GameMain/DataTables/*.txt` | 3 局平均时长与胜率落在预期区间 |
| [~] | P2-06 | 最低限度自动化测试(公式与关键流程) | `Assets/Tests/` 下的 `EditMode`/`PlayMode` 测试 | 已有 `Assets/Tests/EditMode` 覆盖 `RunState`、`NodeCompleteEventArgs`、`ProcedureMain` 关键服务,以及 `CombatSettlement`、损坏塔清理、品质、Tag、耐久等关键规则更广的流程编排回归与 PlayMode 覆盖仍待补齐 |
| [ ] | P2-07 | 性能与稳定性检查(长局、内存、异常日志) | `docs/PerformanceReport.md` | 连续游玩 30 分钟无阻断性问题 |
## 本周建议开工顺序
1. 先补 `S6` 侧的主链路 / 规则回归测试,把当前 M1 口径固化下来
2. 再继续同步 `MVP-Scope.md`、`GameDesign.md` 等仍保留旧范围描述的文档,避免后续继续按旧耐久 / Tag 口径推进
3. 最后再决定是否把更多 Tag 元数据配置化、维修系统等长期设计拆成新的增强阶段
## 设计优化 Backlog新增
| 状态 | ID | 优先级 | 任务 | 交付物路径 | 验收标准 |
|-----|------|-----|------------------------------|------------------------------------------------------------------------------------------------------------------|------------------------------|
| [ ] | D-01 | P0 | 新手前 15 分钟分阶段解锁复杂度(组装/节点/商店) | `docs/NewPlayerFlow.md`<br>`Assets/GameMain/Scripts/Procedure/`<br>`Assets/GameMain/Scripts/UI/` | 新玩家首局可在 15 分钟内完成完整流程且无关键机制卡死 |
| [ ] | D-02 | P0 | 路径阻挡合法性校验(永远保留至少一条可行路径) | `Assets/GameMain/Scripts/Scene/`<br>`Assets/GameMain/Scripts/Entity/` | 任意放置行为都不会导致敌人无路可走 |
| [ ] | D-03 | P1 | “胜利后继续”风险收益曲线重做(危险快速上升+保底收益) | `Assets/GameMain/DataTables/*.txt`<br>`Assets/GameMain/Scripts/Procedure/` | 连续继续挑战时,敌人强度阶梯上升且每波都有可感知保底收益 |
| [ ] | D-04 | P1 | 耐久惩罚去滚雪球(改为维修成本或临时失效) | `Assets/GameMain/Scripts/Entity/`<br>`Assets/GameMain/Scripts/Procedure/`<br>`Assets/GameMain/DataTables/*.txt` | 低血量通关后不会直接导致下一节点战力崩溃 |
| [ ] | D-05 | P1 | 品质槽位断层平滑(降低白/绿到蓝的跳变) | `Assets/GameMain/Scripts/Definition/`<br>`Assets/GameMain/Scripts/Entity/`<br>`Assets/GameMain/DataTables/*.txt` | 品质提升曲线更连续,玩家不会因单级品质差出现极端强度断层 |
| [ ] | D-06 | P1 | 事件池按期望值分层(高风险/低风险/功能型) | `docs/EventDesign.md`<br>`Assets/GameMain/DataTables/*.txt` | 三类事件都可稳定出现,且选择差异明显 |
| [ ] | D-07 | P1 | 主题地图反制机制(每主题至少 2 个可用对策) | `Assets/GameMain/Scripts/Entity/`<br>`Assets/GameMain/Scripts/Scene/`<br>`Assets/GameMain/DataTables/*.txt` | 火山与山地都存在明确反制构筑UI 有可读提示 |
| [ ] | D-08 | P0 | 先定义数值预算(经济/敌强/掉落)再调参 | `docs/NumericBudget.md`<br>`Assets/GameMain/DataTables/*.txt` | 关键曲线有目标区间3 局测试结果可与目标对比复盘 |
## 小目标
1. CombatNodeComponent战斗节点的逻辑补全
- 完整塔防流程:初始硬币,敌人掉落硬币数量、基地生命与失败设计
- 敌人随机掉落局外资源(金币、组件)
- 无限波次下敌人血量、资源爆率的增加
- 基地血量满足一定条件的额外奖励
2. ShopNodeComponent商店节点的逻辑补全
3. RepoForm仓库的逻辑补全
- 组装防御塔逻辑的落实