diff --git a/TODO.md b/TODO.md index 0c504e0..71ce5e2 100644 --- a/TODO.md +++ b/TODO.md @@ -1,28 +1,33 @@ # GeometryTD 三层拆分迁移 TODO -最后更新:2026-04-30 +最后更新:2026-05-09 > **2026-04-30 第一波完成**:Definition/Enum + Event > **2026-04-30 第二波完成**:Vector3/Mathf 替换,AttackPayload/HitContext 迁移 > **2026-05-01 第三波完成**:IDataRow 实现、TagRow/RarityTagBudgetRow、TagGenerationRuleRegistry 重构 +> **2026-05-09 状态校准**:同步仓库实况,补记已落地的 DataStruct / UI/Base / Entity / BinaryReaderExtension,并修正 TagRuntimeUtility 路径与各小节计数 ## 概述 | 指标 | 数量 | 状态 | |------|------|------| | 总文件数 | 457 | - | -| L0 (Domain) 可直接迁移 | ~180 | **第一波 62 个 + 第二波 5 个 + 第三波 6 个** | -| L1 (Infrastructure) 需重构 | ~80 | - | -| L2 (Presentation) Unity 依赖 | ~197 | - | +| L0 (Domain) 可直接迁移 | ~180 | **当前已落地 100+ 项(以本文件勾选和波次记录为准)** | +| L1 (Infrastructure) 需重构 | ~80 | **项目已建,承接内容仍少** | +| L2 (Presentation) Unity 依赖 | ~197 | **项目骨架已建,UI 五层迁移待展开** | ## 项目骨架 ``` src/ -├── GeometryTD.Domain/ # L0 - 纯净 C# -│ └── DataTable/ # IDataRow 实现(TagRow, RarityTagBudgetRow) -├── GeometryTD.Infrastructure/ # L1 - Unity 胶水层(待实现) -│ └── DataTable/ # DR* : DataRowBase 包装类 +├── GeometryTD.Domain/ # L0 - 纯净 C#(当前迁移主战场) +│ ├── DataTable/ # IDataRow 实现 + 纯 C# BinaryReaderExtension +│ ├── Definition/ +│ ├── Event/ +│ └── UI/Base/ # IUIFormController / IUIUseCase / UIContext +├── GeometryTD.Infrastructure/ # L1 - Unity 胶水层(当前仅少量承接) +│ └── Entity/ +├── GeometryTD.Presentation/ # L2 - 表现层项目骨架(待承接 UI 迁移) └── Geometry-Tower-Defense-Base.sln ``` @@ -64,18 +69,18 @@ src/ > ⚠️ 注:原 TODO 统计 25 个 Enum 文件,实际源文件 23 个。第一波新增 4 个枚举从其他层迁移:CombatSelectActionType(UI层)、RunNodeType/RunNodeStatus/RunNodeCompletionStatus(Procedure层) -### Definition/DataStruct(8 个文件) +### Definition/DataStruct(10 个文件) - [x] `Definition/DataStruct/AttackPayload.cs` ⚠️ **已迁移** - Vector3 → System.Numerics.Vector3 - [x] `Definition/DataStruct/HitContext.cs` ⚠️ **已迁移** - Vector3 → System.Numerics.Vector3,TargetStatusRuntime 已恢复 - [ ] `Definition/DataStruct/BackpackInventoryData.cs` -- [ ] `Definition/DataStruct/BuildInfo.cs` +- [x] `Definition/DataStruct/BuildInfo.cs` ✅ **已迁移** - 纯数据对象 - [ ] `Definition/DataStruct/EventItem.cs` - [ ] `Definition/DataStruct/EventOption.cs` -- [ ] `Definition/DataStruct/ImpactData.cs` -- [ ] `Definition/DataStruct/TowerCompItemData.cs` +- [x] `Definition/DataStruct/ImpactData.cs` ✅ **已迁移** - 纯结构体 +- [x] `Definition/DataStruct/TowerCompItemData.cs` ✅ **已迁移** - 背包组件实例模型 - [ ] `Definition/DataStruct/TowerStatsData.cs` -- [ ] `Definition/DataStruct/VersionInfo.cs` +- [x] `Definition/DataStruct/VersionInfo.cs` ✅ **已迁移** - 纯数据对象 ### Definition/ 其他 @@ -126,14 +131,14 @@ src/ ### UI/Base(3 个文件) -- [ ] `UI/Base/IUIFormController.cs` -- [ ] `UI/Base/IUIUseCase.cs` -- [ ] `UI/Base/UIContext.cs` +- [x] `UI/Base/IUIFormController.cs` ✅ **已迁移** - 纯接口 +- [x] `UI/Base/IUIUseCase.cs` ✅ **已迁移** - 纯接口 +- [x] `UI/Base/UIContext.cs` ✅ **已迁移** - 纯上下文基类 -### Definition/Tag(37 个文件) +### Definition/Tag(35 个文件) - [x] `Definition/Tag/Aggregation/TagRuntimeData.cs` ⚠️ **已迁移** - 无 Unity 依赖 -- [x] `Definition/Tag/Aggregation/TagRuntimeUtility.cs` ⚠️ **已新建** - CloneTagRuntimes 方法 +- [x] `Definition/DataStruct/TagRuntimeUtility.cs` ⚠️ **已新建** - CloneTagRuntimes 方法(实际落位已调整到 DataStruct) - [ ] `Definition/Tag/Aggregation/TowerTagAggregationService.cs` - [x] `Definition/Tag/Combat/EnemyStatusTagRegistry.cs` ⚠️ **已迁移** - 简化版(含 FireTagEffect、IceTagEffect 注册) - [ ] `Definition/Tag/Combat/Handlers/AttackShapeTagEffectHandler.cs` @@ -168,7 +173,7 @@ src/ - [x] `Definition/Tag/Metadata/TagDefinition.cs` ⚠️ **已迁移** - 无 Unity 依赖 - [x] `Definition/Tag/Metadata/TagDefinitionRegistry.cs` ⚠️ **已迁移** - 简化版(移除 DR* 依赖) -### Definition/Event(6 个文件) +### Definition/Event(11 个文件) - [ ] `Definition/Event/EventEffect/AddGoldEffect.cs` - [ ] `Definition/Event/EventEffect/AddRandomCompsEffect.cs` @@ -182,7 +187,7 @@ src/ - [ ] `Definition/Event/EventRequirement/HasRelicRequirement.cs` - [ ] `Definition/Event/EventRequirement/TowerCountAtLeastRequirement.cs` -### Factory(6 个文件) +### Factory(5 个文件) - [ ] `Factory/EventEffectFactory.cs` - [ ] `Factory/EventRequirementFactory.cs` @@ -190,7 +195,7 @@ src/ - [ ] `Factory/PhaseEndConditionFactory.cs` - [ ] `Factory/RunStateFactory.cs` -### Network(12 个文件) +### Network(11 个文件) - [ ] `Network/CSPacketBase.cs` - [ ] `Network/CSPacketHeader.cs` @@ -303,7 +308,7 @@ src/ ### Entity -- [ ] `Entity/EntityLogic/EnemyTagStatusRuntime.cs` +- [x] `Entity/EntityLogic/EnemyTagStatusRuntime.cs` ✅ **已迁移** - Domain 内已存在纯 C# 版本(Infrastructure 仍保留过渡副本) ### Utility @@ -340,7 +345,7 @@ src/ ### 策略 3:DataTable 保持 L1 -所有 DR* 类继承 `UnityGameFramework.Runtime.DataRowBase`,留在 L1: +多数 DR* 类继承 `UnityGameFramework.Runtime.DataRowBase`,留在 L1;`BinaryReaderExtension` 当前已在 Domain 提供纯 C# 版本: - [ ] `DataTable/DREnemy.cs` - [ ] `DataTable/DRLevel.cs` @@ -362,7 +367,7 @@ src/ - [ ] `DataTable/DRUIForm.cs` - [ ] `DataTable/DRUISound.cs` - [ ] `DataTable/DataTableExtension.cs`(含 Vector3/Color 解析) -- [ ] `DataTable/BinaryReaderExtension.cs` +- [x] `DataTable/BinaryReaderExtension.cs` ✅ **已迁移到 Domain** - 使用纯 C# `Color` / `Color32` / `Rect` struct 替代 Unity 类型 ### 策略 4:Tilemap 接口抽象 @@ -401,7 +406,7 @@ src/ - [ ] `Base/GameEntry.Builtin.cs` - [ ] `Base/GameEntry.Custom.cs` -### Components(8 个文件) +### Components(7 个文件) - [ ] `Components/BasicBaseComp.cs` - [ ] `Components/BasicBearingComp.cs` @@ -411,7 +416,7 @@ src/ - [ ] `Components/ShooterMuzzleComp.cs` - [ ] `Components/TowerController.cs` -### CustomComponent/*Component(10 个文件) +### CustomComponent/*Component(11 个文件) - [ ] `CustomComponent/BuiltinDataComponent.cs` - [ ] `CustomComponent/CombatNode/CombatNodeComponent.cs` @@ -508,7 +513,7 @@ src/ - [ ] `UI/Templates/MenuScene/Controller/SelectRoleFormController.cs` - [ ] `UI/Templates/MenuScene/Controller/StartMenuFormController.cs` -### Procedure(13 个文件) +### Procedure(14 个文件) - [ ] `Procedure/Base/ProcedureBase.cs` - [ ] `Procedure/Base/ProcedureChangeScene.cs` @@ -525,7 +530,7 @@ src/ - [ ] `Procedure/ProcedureMenu.cs` - [ ] `Procedure/ProcedureTest.cs` -### Scene(5 个文件) +### Scene(4 个文件) - [ ] `Scene/HideByBoundary.cs` - [ ] `Scene/Map/House.cs`