RunNode 接入游戏主流程
- NodeMapForm:节点地图
- NodeItem:节点入口
This commit is contained in:
+158
-113
@@ -1,39 +1,37 @@
|
||||
# CodeX TODO
|
||||
|
||||
最后更新:2026-03-07
|
||||
最后更新:2026-03-08
|
||||
|
||||
## 当前目标
|
||||
|
||||
按 `docs/TODO.md` 的 M1 现状推进最小可玩闭环。当前代码已经具备:
|
||||
- 基础战斗节点玩法
|
||||
- 事件节点基础占位
|
||||
- 仓库/组装 UI 骨架
|
||||
- 局内掉落与战斗结算的一部分
|
||||
按 `docs/TODO.md` 的 M1 目标推进最小可玩闭环,并以“能从开始游戏一路推进到 Boss 结算”为准检查当前实现。
|
||||
|
||||
但离“可从开始游戏一路完成一个大关”的 M1 验收还有明显缺口。后续重点是:
|
||||
- 补真正的单局 Run 流程,而不是继续依赖 `TestMenuForm` 手动点节点。
|
||||
- 把 10 节点固定大关、节点推进、Boss 终点串成闭环。
|
||||
- 把组装、品质、Tag、耐久从“有数据结构/有 UI”补成“实际影响战斗结果”的规则闭环。
|
||||
- 补商店节点真实实现,否则 M1 主流程无法跑通。
|
||||
和上一版相比,仓库已经把 Run 相关基础件进一步接到了 `ProcedureMain`,因此这份清单不再把重点放在“有没有 Run 模型”,而是聚焦下面这几个真实阻塞项:
|
||||
|
||||
## 已完成
|
||||
- 已有 `ProcedureMain + TestMenuForm` 的临时 Run 推进闭环,但还没有正式节点地图 / 节点面板。
|
||||
- 固定 10 节点顺序已经开始驱动战斗 / 事件 / 商店入口,但节点事件上下文仍然是空载版本。
|
||||
- 出战入口已有“至少有参战塔”的最小校验,但还没收口成严格的最终合法性约束。
|
||||
- 品质 / Tag / 耐久仍然停留在部分实现状态,尚未和 M1 范围完全对齐。
|
||||
|
||||
## 当前已完成
|
||||
|
||||
### 1. 战斗主链路已经能独立跑通一场
|
||||
- `CombatNodeComponent` 能加载关卡、阶段和出怪表,并启动 `CombatScheduler`。
|
||||
- `CombatScheduler` 已经具备加载地图、推进 phase、结算与返回的基础流程。
|
||||
- 战斗内已有基地血量、建塔花费、敌人到家扣血、胜负结束等基础逻辑。
|
||||
|
||||
- `CombatNodeComponent` 能加载关卡、阶段、出怪表并启动 `CombatScheduler`。
|
||||
- `CombatScheduler` 已具备加载地图、推进 phase、结算、失败返回等基础流程。
|
||||
- 战斗内已有基地血量、建塔消耗、敌人到家扣血、胜负结束等基础规则。
|
||||
|
||||
关键文件:
|
||||
- `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs`
|
||||
- `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/CombatScheduler.cs`
|
||||
- `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/CombatStates/`
|
||||
- `Assets/GameMain/Scripts/Entity/EntityLogic/MapEntity.cs`
|
||||
- `Assets/GameMain/Scripts/Scene/Map/`
|
||||
|
||||
### 2. 战斗结算、掉落与奖励选择已有基础实现
|
||||
- 战斗内敌人被击败后,已能发放 coin / gold / 组件掉落。
|
||||
- `CombatInRunResourceManager` 已维护本场奖励背包快照。
|
||||
- 结算链已经包含奖励计算、奖励选择 UI、FinishForm 返回等基础骨架。
|
||||
|
||||
- 敌人被击败后已能发放 coin / gold / 组件掉落。
|
||||
- `CombatInRunResourceManager` 维护局内资源与奖励背包快照。
|
||||
- 结算链已包含奖励计算、奖励选择 UI、FinishForm 返回等基础骨架。
|
||||
|
||||
关键文件:
|
||||
- `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/CombatInRunResourceManager.cs`
|
||||
@@ -41,11 +39,12 @@
|
||||
- `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/CombatSettlementFlowService.cs`
|
||||
- `Assets/GameMain/Scripts/UI/Combat/`
|
||||
|
||||
### 3. 背包与组装基础能力已经存在
|
||||
- `PlayerInventoryComponent` 已有库存快照、金币读写、参战塔名单、组装塔入口。
|
||||
### 3. 背包、参战区与组装基础能力已经存在
|
||||
|
||||
- `PlayerInventoryComponent` 已支持库存快照、金币读写、参战塔名单、组装塔入口。
|
||||
- `RepoForm` 已能展示组件、塔、参战区和组装区。
|
||||
- `CombineArea` 已有三槽约束,只有枪口/轴承/底座齐备时才会发起组合请求。
|
||||
- `PlayerInventoryTowerAssemblyService` 已能基于三组件生成 `TowerItemData` 与 `TowerStatsData`。
|
||||
- `CombineArea` 已有三槽约束,只有枪口 / 轴承 / 底座齐备时才会发起组合请求。
|
||||
- `PlayerInventoryTowerAssemblyService` 已能基于三组件生成 `TowerItemData` 和 `TowerStatsData`。
|
||||
|
||||
关键文件:
|
||||
- `Assets/GameMain/Scripts/CustomComponent/PlayerInventory/PlayerInventoryComponent.cs`
|
||||
@@ -54,70 +53,110 @@
|
||||
- `Assets/GameMain/Scripts/UI/Game/View/CombineArea.cs`
|
||||
- `Assets/GameMain/Scripts/UI/Game/Controller/RepoFormController.cs`
|
||||
|
||||
### 4. 事件节点有基础占位实现
|
||||
- `EventNodeComponent` 已能读取 `Event.txt`,解析事件选项并随机打开一个事件。
|
||||
- 事件完成后会发出 `NodeCompleteEventArgs` 返回上层流程。
|
||||
### 4. 事件节点已有可进入、可结算的基础实现
|
||||
|
||||
- `EventNodeComponent` 能读取 `Event.txt`,解析事件选项并随机打开事件。
|
||||
- `EventForm` 的打开 / 关闭现已统一走 `UIRouter`,不再混用私有 controller。
|
||||
- 事件完成后会关闭 UI 并发出 `NodeCompleteEventArgs`。
|
||||
|
||||
关键文件:
|
||||
- `Assets/GameMain/Scripts/CustomComponent/EventNodeComponent.cs`
|
||||
- `Assets/GameMain/Scripts/UI/Game/UseCase/EventFormUseCase.cs`
|
||||
- `Assets/GameMain/Scripts/UI/Game/Controller/EventFormController.cs`
|
||||
|
||||
## 还没完成
|
||||
### 5. Run 模型和 10 节点固定序列已经落地到代码与测试
|
||||
|
||||
### 1. M1 真正的 Run 流程还不存在
|
||||
- 当前入口仍是 `ProcedureMenu` 里打开 `MainForm + TestMenuForm`。
|
||||
- 玩家目前是手动点击 `战斗 / 事件 / 商店` 按钮进入节点,不是通过单局大关顺序推进。
|
||||
- 代码里没有明确的“当前节点 / 节点列表 / 节点索引 / 大关完成”运行时模型。
|
||||
- `docs/TODO.md` 的 `P0-04 / P0-05 / P0-06` 从验收标准看都还没有完整落地。
|
||||
|
||||
直接证据:
|
||||
- `ProcedureMenu` 进入后直接打开测试菜单。
|
||||
- `TestMenuFormController` 直接转发到 `StartCombat / StartEvent / StartShop`。
|
||||
- 已有 `RunNodeType / RunNodeStatus / RunState / RunNodeState` 等运行时模型。
|
||||
- 已有 `RunStateFactory` 和 `RunStateAdvanceService` 处理节点创建、推进、失败和完成。
|
||||
- 已有 `FixedRunNodeSequenceBuilder`,Plain 主题下固定生成 10 节点,并且第 10 节点是 `BossCombat`。
|
||||
- 已有 Editor 测试覆盖 `RunState` 创建、节点推进、Boss 节点和固定 10 节点序列。
|
||||
|
||||
关键文件:
|
||||
- `Assets/GameMain/Scripts/Procedure/ProcedureMenu.cs`
|
||||
- `Assets/GameMain/Scripts/UI/Menu/Controller/TestMenuFormController.cs`
|
||||
- `Assets/GameMain/Scripts/Procedure/RunModel.cs`
|
||||
- `Assets/GameMain/Scripts/Procedure/RunStateFactory.cs`
|
||||
- `Assets/GameMain/Scripts/Procedure/RunStateAdvanceService.cs`
|
||||
- `Assets/GameMain/Scripts/Procedure/FixedRunNodeSequenceBuilder.cs`
|
||||
- `Assets/GameMain/Tests/Editor/RunStateTests.cs`
|
||||
|
||||
### 2. 10 节点地图生成与 Boss 终点未实现
|
||||
- 当前没有发现“固定 10 节点”或“第 10 节点固定 Boss”的节点生成器。
|
||||
- `CombatNodeComponent.StartCombat()` 仍是从当前主题关卡池里随机抽一个 `DRLevel` 开战。
|
||||
- 现有 Boss 相关逻辑只存在于战斗内部的 `EntryType.Boss / BossDead`,不是大关节点层面的第 10 节点约束。
|
||||
### 6. 商店节点已经有最小可用实现
|
||||
|
||||
关键文件:
|
||||
- `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs`
|
||||
- `Assets/GameMain/Scripts/CustomComponent/CombatNode/EnemyManager/EnemySpawnDirector.cs`
|
||||
- `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/PhaseEndConditions/BossDeadPhaseEndCondition.cs`
|
||||
|
||||
### 3. 商店节点基本未实现,当前是主流程硬缺口
|
||||
- `ShopNodeComponent.StartShop()` 仍然是空方法。
|
||||
- 旧版 `ShopFormUseCase / ShopFormController / ShopForm` 基本都是整文件注释状态,不能视为可用实现。
|
||||
- 因此 `战斗 -> 事件 -> 商店 -> 组装 -> 下一节点` 这条 M1 主链路实际上卡在商店节点。
|
||||
- `ShopNodeComponent.StartShop()` 已不再是空方法。
|
||||
- 新版 `ShopFormUseCase` 已能随机生成 4 个组件商品。
|
||||
- 已支持购买、扣金、把组件写回 `PlayerInventory`、退出商店。
|
||||
|
||||
关键文件:
|
||||
- `Assets/GameMain/Scripts/CustomComponent/ShopNodeComponent.cs`
|
||||
- `Assets/GameMain/Scripts/UI/Templates/GameScene/UseCase/ShopFormUseCase.cs`
|
||||
- `Assets/GameMain/Scripts/UI/Templates/GameScene/Controller/ShopFormController.cs`
|
||||
- `Assets/GameMain/Scripts/UI/Templates/GameScene/View/ShopForm.cs`
|
||||
- `Assets/GameMain/Scripts/UI/Shop/UseCase/ShopFormUseCase.cs`
|
||||
- `Assets/GameMain/Scripts/UI/Shop/Controller/ShopFormController.cs`
|
||||
- `Assets/GameMain/Scripts/UI/Shop/View/ShopForm.cs`
|
||||
|
||||
### 4. 三组件约束只做到了“组装时”,还没做到“出战时”
|
||||
- `CombineArea` 已经要求枪口/轴承/底座三槽都填满才能发起组装。
|
||||
- 但战斗入口并没有校验“玩家是否拥有可参战的完整塔”。
|
||||
- 当前可以在没有任何参战塔时直接调用 `StartCombat()`,不符合 `P0-10` 的“未满足三组件时禁止出战”。
|
||||
## 当前未完成
|
||||
|
||||
### 1. Run 主流程已经形成临时闭环,但还不是正式节点 UI
|
||||
|
||||
- `ProcedureMain` 进入后会创建 Run,并打开 `MainForm + TestMenuForm`。
|
||||
- `TestMenuForm` 已不再同时提供三种节点入口,而是通过 `TestMenuFormContext.CurrentNodeType` 只显示当前节点对应的唯一按钮。
|
||||
- 点击按钮后由 `ProcedureMain` 根据当前 `RunState.CurrentNode` 决定是否允许进入战斗 / 事件 / 商店。
|
||||
- 节点完成或战斗失败后,`ProcedureMain` 会推进 `RunState`,再重新打开 Hub UI。
|
||||
- 因此当前已经能从开始游戏后按固定顺序推进一局的临时版本。
|
||||
|
||||
当前缺口:
|
||||
- UI 仍是测试面板,不是正式节点地图或正式节点信息面板。
|
||||
- `TestMenuFormContext` 目前只传 `CurrentNodeType`,还没有显示节点序号、总数、Boss 标记等关键信息。
|
||||
- Run 完成后的正式结算 / 收尾表现仍未建立。
|
||||
|
||||
关键文件:
|
||||
- `Assets/GameMain/Scripts/Procedure/ProcedureMain.cs`
|
||||
- `Assets/GameMain/Scripts/UI/Menu/View/TestMenuForm.cs`
|
||||
- `Assets/GameMain/Scripts/UI/Menu/Controller/TestMenuFormController.cs`
|
||||
|
||||
### 2. 固定 10 节点序列已开始驱动真实流程,但上下文仍不完整
|
||||
|
||||
- `FixedRunNodeSequenceBuilder` 已定义固定顺序和 Boss 终点。
|
||||
- `ProcedureMain` 已开始用当前 `RunNodeState.LinkedLevelId` 驱动战斗入口。
|
||||
- `EventNodeComponent` 和 `ShopNodeComponent` 已能进入并完成当前节点。
|
||||
- `EventNodeComponent` 的 UI 生命周期也已统一走 `UIRouter`。
|
||||
- 但 `NodeEnter / NodeComplete` 仍是默认空载事件,没有附带当前 Run 节点信息。
|
||||
- 因此“固定 10 节点序列”已经在驱动流程,但还没有形成可观测、可追踪的正式节点上下文系统。
|
||||
|
||||
关键文件:
|
||||
- `Assets/GameMain/Scripts/Procedure/FixedRunNodeSequenceBuilder.cs`
|
||||
- `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs`
|
||||
- `Assets/GameMain/Scripts/CustomComponent/EventNodeComponent.cs`
|
||||
- `Assets/GameMain/Scripts/CustomComponent/ShopNodeComponent.cs`
|
||||
- `Assets/GameMain/Scripts/Event/Game/NodeEnterEventArgs.cs`
|
||||
- `Assets/GameMain/Scripts/Event/Game/NodeCompleteEventArgs.cs`
|
||||
|
||||
### 3. 商店节点已纳入临时 Run 推进闭环,但回流目标仍是测试 Hub
|
||||
|
||||
- 现在可以单独打开商店、随机生成组件、购买并退出。
|
||||
- 商店结束后已能通过 `ProcedureMain` 推进当前 `RunState`。
|
||||
- 但退出后仍是回到 `MainForm + TestMenuForm`,而不是真实节点地图或正式节点选择界面。
|
||||
|
||||
关键文件:
|
||||
- `Assets/GameMain/Scripts/CustomComponent/ShopNodeComponent.cs`
|
||||
- `Assets/GameMain/Scripts/UI/Shop/UseCase/ShopFormUseCase.cs`
|
||||
- `Assets/GameMain/Scripts/Procedure/ProcedureMain.cs`
|
||||
|
||||
### 4. 出战入口已有最小校验,但离最终验收还差一层
|
||||
|
||||
- `CombineArea` 已限制三槽必须齐备才能组塔。
|
||||
- `ProcedureMain` 已经补上“没有参战塔时禁止进入战斗节点”的最小校验。
|
||||
- 但这个校验目前仍是“有参战塔即可开战”,还不是“完整三组件合法塔”意义上的最终验收版本。
|
||||
- 这意味着当前还不满足 `P0-10` 里“未满足三组件时禁止出战”的验收要求。
|
||||
|
||||
关键文件:
|
||||
- `Assets/GameMain/Scripts/UI/Game/View/CombineArea.cs`
|
||||
- `Assets/GameMain/Scripts/Procedure/ProcedureMain.cs`
|
||||
- `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs`
|
||||
- `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/CombatScheduler.cs`
|
||||
|
||||
### 5. 品质/槽位/Tag 规则只做了最浅一层
|
||||
- 塔品质目前只按三组件平均品质四舍五入得到。
|
||||
- `TowerItemData` 里没有“配件槽位数量”之类的落地字段,槽位规则没有真正实现。
|
||||
- Tag 当前不是按品质概率、数量、等级生成,而是:
|
||||
- 掉落时直接复制 `PossibleTag`
|
||||
- 组塔时直接把三组件 Tag 做并集
|
||||
- `DRTag` 虽然存在,但没有看到被用于实际掉落/组装规则计算。
|
||||
- `RarityType` 仍包含 `Red`,而 `docs/MVP-Scope.md.md` 里写的是 M1 不做红色,这里也还没统一。
|
||||
### 5. 品质 / 槽位 / Tag 规则仍只做了浅层版本
|
||||
|
||||
- 塔品质仍主要按三组件品质聚合得到。
|
||||
- `TowerItemData` 中没有真正落地“配件槽位数量”之类的核心字段。
|
||||
- Tag 仍主要来自组件自身配置或简单并集,未看到完整概率、数量、等级规则落地。
|
||||
- `DRTag` 已存在,但尚未形成明确的掉落 / 组装计算主链路。
|
||||
- `RarityType` 仍保留 `Red`,与部分 M1 文档描述未完全对齐。
|
||||
|
||||
关键文件:
|
||||
- `Assets/GameMain/Scripts/CustomComponent/PlayerInventory/PlayerInventoryTowerAssemblyService.cs`
|
||||
@@ -126,12 +165,13 @@
|
||||
- `Assets/GameMain/Scripts/Definition/DataStruct/TowerItemData.cs`
|
||||
- `Assets/GameMain/Scripts/Definition/Enum/RarityType.cs`
|
||||
|
||||
### 6. 耐久只停留在展示和扣数值,没有真正生效
|
||||
- 当前组件耐久会显示在仓库描述和 UI 颜色上。
|
||||
- 低血通关后会调用 `ReduceAllTowerEndurance(...)` 扣耐久。
|
||||
- 但塔的真实战斗属性是组装时固化到 `TowerStatsData` 的,不会随着耐久变化动态衰减。
|
||||
- 组件耐久归 0 后没有销毁、移除库存、拆塔或失效处理。
|
||||
- 所以 `P0-12` 的“耐久影响属性,归零后物品移除”目前未完成。
|
||||
### 6. 耐久仍停留在“展示 + 部分扣减”,没有形成真实生效闭环
|
||||
|
||||
- 当前组件耐久会显示在描述与 UI 上。
|
||||
- 低血通关后已存在扣耐久逻辑。
|
||||
- 但塔战斗属性是在组装时固化到 `TowerStatsData`,没有根据耐久实时衰减。
|
||||
- 组件耐久归 0 后也没有稳定的销毁 / 拆塔 / 失效闭环。
|
||||
- 因此 `P0-12` 的完整验收还没有达成。
|
||||
|
||||
关键文件:
|
||||
- `Assets/GameMain/Scripts/Utility/ItemDescUtility.cs`
|
||||
@@ -139,71 +179,76 @@
|
||||
- `Assets/GameMain/Scripts/Definition/DataStruct/TowerItemData.cs`
|
||||
- `Assets/GameMain/Scripts/Definition/DataStruct/TowerCompItemData.cs`
|
||||
|
||||
### 7. M1 文档与当前实现还有几处范围不一致
|
||||
- `docs/MVP-Scope.md.md` 写的是固定 10 节点与固定顺序,但当前代码没有对应系统。
|
||||
- 文档写的是商店节点可购买/出售组件,但当前商店未实现。
|
||||
- 文档写的是 M1 不做耐久系统,但 `docs/TODO.md` 又把耐久列在 M1 的 `P0-12`;当前代码只做了半套,需要先统一目标再继续推进。
|
||||
- 文档写的是 M1 不做红色品质,但数据与枚举仍保留 `Red`。
|
||||
## 当前与 `docs/TODO.md` 的对照判断
|
||||
|
||||
关键文件:
|
||||
- `docs/TODO.md`
|
||||
- `docs/MVP-Scope.md.md`
|
||||
- `docs/GameDesign.md`
|
||||
结合静态代码检查,当前更接近下面这个状态:
|
||||
|
||||
- `P0-04`:基础模型已完成,并已接入 `ProcedureMain` 的临时 Run 闭环。
|
||||
- `P0-05`:固定 10 节点序列已由 builder + `ProcedureMain` 开始驱动实际流程,但缺完整事件上下文与正式节点 UI。
|
||||
- `P0-06`:节点进入、完成、失败后回 Hub 的临时闭环已存在,但“正式地图/节点界面 + 正式结算”仍未完成。
|
||||
- `P0-10`:未完成。
|
||||
- `P0-11`:未完成。
|
||||
- `P0-12`:未完成。
|
||||
|
||||
换句话说,仓库已经不再是“还没有 Run 模型 / 10 节点 / 商店最小实现”的状态;真正的缺口是“这些能力已经接成临时可跑版本,但还没收口成正式 M1 主流程表现层与上下文系统”。
|
||||
|
||||
## 推荐的后续执行顺序
|
||||
|
||||
1. 先补单局 Run 模型
|
||||
- 明确 `当前节点索引 / 节点列表 / 当前主题 / 大关完成状态`
|
||||
- 把 `ProcedureMenu + TestMenuForm` 临时入口替换成真实节点推进入口
|
||||
1. 先把临时 Hub 升级成正式节点面板
|
||||
- 保留 `ProcedureMain` 持有 Run 的做法
|
||||
- 不再把 `TestMenuForm` 当测试菜单,而是改成正式节点信息面板或节点地图
|
||||
- 至少补上当前节点序号、总节点数、节点名称、Boss 标记
|
||||
|
||||
2. 再补 10 节点固定大关
|
||||
- 先做最小版本:固定顺序 10 节点
|
||||
- 最后一个节点固定 Boss 战斗
|
||||
- 节点完成后推进到下一节点
|
||||
2. 再把节点事件改成带上下文的真实推进
|
||||
- `NodeEnterEventArgs` 和 `NodeCompleteEventArgs` 传递 `runId / nodeId / nodeType / sequenceIndex`
|
||||
- 节点完成后由流程层调用 `RunStateAdvanceService`
|
||||
- 节点失败时明确是否停局、重试或返回菜单
|
||||
|
||||
3. 立刻补商店节点最小实现
|
||||
- 先只做 3 个随机组件、购买、返回
|
||||
- 不提前做复杂定价与出售扩展
|
||||
3. 然后继续收口战斗关卡选择
|
||||
- 普通战斗和 Boss 战斗继续统一由当前 `RunNodeState.LinkedLevelId` 驱动
|
||||
- 去掉遗留的随机选关兜底路径,避免偏离 Run 顺序
|
||||
|
||||
4. 收口组装到出战闭环
|
||||
- 没有完整塔时禁止开始战斗
|
||||
- 只有参战塔列表合法时才允许进入战斗节点
|
||||
4. 再补出战合法性校验
|
||||
- 没有完整参战塔时禁止进入战斗节点
|
||||
- 在 UI 和流程层都给出明确反馈
|
||||
|
||||
5. 最后补品质/Tag/耐久规则
|
||||
- 先把 M1 真实要做的规则重新对齐
|
||||
- 再决定是否保留红色品质、耐久和槽位到本阶段
|
||||
5. 最后再处理品质 / Tag / 耐久与文档对齐
|
||||
- 先确认 M1 是否真的保留红色品质和完整耐久
|
||||
- 再决定是补全实现,还是先缩范围并同步文档
|
||||
|
||||
## 当前做变更时要记住的约束
|
||||
|
||||
- 不要继续把 `TestMenuForm` 当作正式节点流程。
|
||||
- 优先补“流程闭环”,不要先做 M2 的深度系统。
|
||||
- 商店、节点推进、出战校验属于当前阻塞项,优先级高于数值打磨。
|
||||
- 如果 M1 最终决定不做完整耐久/红色品质,要先同步更新文档,再改代码目标。
|
||||
- 若继续保留 `PlayerInventory` 作为局内外共用库存入口,需要避免把单局 Run 状态也硬塞进去。
|
||||
- 不要再把 `TestMenuForm` 维持成“测试菜单”语义。
|
||||
- 优先补“临时闭环 -> 正式节点 UI / 正式上下文”的收口,不要继续只加单点功能。
|
||||
- 商店已经接入 Run,下一步重点不是继续扩商店,而是把 Hub/UI 做正式。
|
||||
- 若 M1 最终不做完整耐久 / 红色品质,要先同步文档再改代码目标。
|
||||
- `PlayerInventory` 可以继续作为库存入口,但不要把整局 Run 状态直接混进库存对象里。
|
||||
|
||||
## 当前关键入口文件速查
|
||||
|
||||
- 流程入口:
|
||||
- `Assets/GameMain/Scripts/Procedure/ProcedureMenu.cs`
|
||||
- 临时节点菜单:
|
||||
- `Assets/GameMain/Scripts/Procedure/ProcedureMain.cs`
|
||||
- Run 模型:
|
||||
- `Assets/GameMain/Scripts/Procedure/RunModel.cs`
|
||||
- `Assets/GameMain/Scripts/Procedure/RunStateFactory.cs`
|
||||
- `Assets/GameMain/Scripts/Procedure/RunStateAdvanceService.cs`
|
||||
- `Assets/GameMain/Scripts/Procedure/FixedRunNodeSequenceBuilder.cs`
|
||||
- 临时 Hub / 节点入口:
|
||||
- `Assets/GameMain/Scripts/UI/Menu/Controller/TestMenuFormController.cs`
|
||||
- 战斗节点 facade:
|
||||
- `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs`
|
||||
- 战斗状态机:
|
||||
- `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/CombatScheduler.cs`
|
||||
- 事件节点:
|
||||
- `Assets/GameMain/Scripts/CustomComponent/EventNodeComponent.cs`
|
||||
- 商店节点:
|
||||
- `Assets/GameMain/Scripts/CustomComponent/ShopNodeComponent.cs`
|
||||
- 商店 UI:
|
||||
- `Assets/GameMain/Scripts/UI/Shop/`
|
||||
- 背包与组装:
|
||||
- `Assets/GameMain/Scripts/CustomComponent/PlayerInventory/`
|
||||
- 仓库 UI:
|
||||
- `Assets/GameMain/Scripts/UI/Game/`
|
||||
- 战斗 UI:
|
||||
- `Assets/GameMain/Scripts/UI/Combat/`
|
||||
|
||||
## 备注
|
||||
|
||||
- 这份清单按“当前仓库真实实现状态”整理,不沿用旧版 `CodeX-TODO.md` 的 CombatNode 收口主题。
|
||||
- 当前判断主要基于代码静态检查,没有跑 Unity Editor / PlayMode。
|
||||
- 如果下一步要继续推进,最值得先做的是:`RunState + 10 节点流程 + ShopNode 最小可用版`。
|
||||
- 这份清单基于 2026-03-08 的静态代码检查更新。
|
||||
- 本次已修正上一版中“Run 模型不存在”“10 节点未实现”“商店节点基本未实现”等过期判断。
|
||||
- 当前最值得优先推进的是:`ProcedureMain 继续收口 Run 流程 -> 节点事件带上下文 -> 战斗按节点关卡进入 -> 出战校验`。
|
||||
|
||||
+7
-7
@@ -16,9 +16,9 @@
|
||||
| [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/` | 进入/退出节点时状态可持续传递 |
|
||||
| [ ] | P0-05 | 实现 10 节点地图生成(最后节点固定 Boss) | `Assets/GameMain/Scripts/Scene/` | 每局都生成 10 节点且第 10 节点为 Boss |
|
||||
| [x] | P0-06 | 实现节点选择与跳转流程(战斗/事件/商店) | `Assets/GameMain/Scripts/Procedure/` | 节点完成后可返回地图并进入下个节点 |
|
||||
| [~] | P0-04 | 建立单局 Run 状态模型(金币、生命、库存、当前节点) | `Assets/GameMain/Scripts/Procedure/` | 已有 `RunState` / 推进模型 / 测试,并已接入 `ProcedureMain` 的临时 Run 闭环,但还不是正式节点 UI |
|
||||
| [~] | P0-05 | 实现 10 节点地图生成(最后节点固定 Boss) | `Assets/GameMain/Scripts/Procedure/`<br>`Assets/GameMain/Scripts/Scene/` | 已有固定 10 节点序列 builder 与测试,且已开始驱动真实流程,但节点事件上下文与正式节点面板仍未完成 |
|
||||
| [~] | P0-06 | 实现节点选择与跳转流程(战斗/事件/商店) | `Assets/GameMain/Scripts/Procedure/` | `ProcedureMain + TestMenuForm` 的临时闭环已可推进战斗/事件/商店,但仍缺正式节点地图/节点面板与正式结算收尾 |
|
||||
| [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/` | 战斗结束能发放掉落并写入库存 |
|
||||
@@ -55,9 +55,9 @@
|
||||
|
||||
## 本周建议开工顺序
|
||||
|
||||
1. `P0-01` ~ `P0-04`(先把范围与数据基础打稳)
|
||||
2. `P0-05` ~ `P0-09`(打通节点到战斗再到结算)
|
||||
3. `P0-10` ~ `P0-12`(完成组装与耐久闭环)
|
||||
1. 先把 `P0-04` ~ `P0-06` 从“临时闭环”收口成正式节点面板 / 节点地图,并补齐节点事件上下文
|
||||
2. 完成 `P0-10`(把“至少有参战塔”提升为“满足完整合法参战条件才能出战”)
|
||||
3. 再处理 `P0-11` ~ `P0-12`(品质 / Tag / 耐久是否纳入 M1 需先统一范围)
|
||||
|
||||
## 设计优化 Backlog(新增)
|
||||
|
||||
@@ -80,4 +80,4 @@
|
||||
- 基地血量满足一定条件的额外奖励
|
||||
2. ShopNodeComponent:商店节点的逻辑补全
|
||||
3. RepoForm:仓库的逻辑补全
|
||||
- 组装防御塔逻辑的落实
|
||||
- 组装防御塔逻辑的落实
|
||||
|
||||
Reference in New Issue
Block a user