geometry-tower-defense-base/TODO.md

25 KiB
Raw Blame History

GeometryTD 三层拆分迁移 TODO

最后更新2026-04-30

2026-04-30 第一波完成Definition/Enum + Event

概述

指标 数量 状态
总文件数 457 -
L0 (Domain) 可直接迁移 ~180 第一波已完成 62 个文件
L1 (Infrastructure) 需重构 ~80 -
L2 (Presentation) Unity 依赖 ~197 -

项目骨架

src/
├── GeometryTD.Domain/           # L0 - 纯净 C#
├── GeometryTD.Infrastructure/    # L1 - Unity 胶水层
├── GeometryTD.Presentation/     # L2 - Unity 表现层
└── Geometry-Tower-Defense-Base.sln

阶段一L0 直接迁移(无需修改)

以下文件可直接复制到 GeometryTD.Domain/,无任何修改。

Definition/Enum27 个文件)

  • Definition/Enum/AttackMethodType.cs
  • Definition/Enum/AttackPropertyType.cs
  • Definition/Enum/CampType.cs
  • Definition/Enum/CombatSelectActionType.cs ⚠️ 已修改 - 从 UI/Combat/Context/ 迁移
  • Definition/Enum/EntryType.cs
  • Definition/Enum/EventEffectType.cs
  • Definition/Enum/EventRequirementType.cs
  • Definition/Enum/InventoryTagSourceType.cs
  • Definition/Enum/LevelThemeType.cs
  • Definition/Enum/LevelVictoryType.cs
  • Definition/Enum/PhaseEndType.cs
  • Definition/Enum/ProcedureMainCombatEntryBlockReason.cs
  • Definition/Enum/ProcedureMainFlowPhase.cs
  • Definition/Enum/ProcedureMainRunAdvanceResult.cs
  • Definition/Enum/ProcedureMainRunCompletionResult.cs
  • Definition/Enum/RarityType.cs
  • Definition/Enum/RelationType.cs
  • Definition/Enum/RepoItemClickActionType.cs
  • Definition/Enum/RunNodeCompletionStatus.cs ⚠️ 已修改 - 从 Procedure/ProcedureMain/RunModel.cs 迁移枚举
  • Definition/Enum/RunNodeStatus.cs ⚠️ 已修改 - 从 Procedure/ProcedureMain/RunModel.cs 迁移枚举
  • Definition/Enum/RunNodeType.cs ⚠️ 已修改 - 从 Procedure/ProcedureMain/RunModel.cs 迁移枚举
  • Definition/Enum/SceneType.cs
  • Definition/Enum/TagCategory.cs
  • Definition/Enum/TagTriggerPhase.cs
  • Definition/Enum/TagType.cs
  • Definition/Enum/TowerCompSlotType.cs
  • Definition/Enum/UIFormType.cs

⚠️ 注:原 TODO 统计 25 个 Enum 文件,实际源文件 23 个。第一波新增 4 个枚举从其他层迁移CombatSelectActionType(UI层)、RunNodeType/RunNodeStatus/RunNodeCompletionStatus(Procedure层)

Definition/DataStruct8 个文件)

  • Definition/DataStruct/BackpackInventoryData.cs
  • Definition/DataStruct/BuildInfo.cs
  • Definition/DataStruct/EventItem.cs
  • Definition/DataStruct/EventOption.cs
  • Definition/DataStruct/ImpactData.cs
  • Definition/DataStruct/TowerCompItemData.cs
  • Definition/DataStruct/TowerStatsData.cs
  • Definition/DataStruct/VersionInfo.cs

Definition/ 其他

  • Definition/CombatParticipantTowerValidation.cs
  • Definition/CombatParticipantTowerValidationText.cs
  • Definition/InventoryRarityRuleService.cs
  • Definition/ParticipantTowerAssignResult.cs

Event35 个文件)

  • Event/Combat/CombatBaseHpChangedEventArgs.cs
  • Event/Combat/CombatCoinChangedEventArgs.cs
  • Event/Combat/CombatDebugFailEventArgs.cs
  • Event/Combat/CombatEndEventArgs.cs
  • Event/Combat/CombatEnemyHpRateChangedEventArgs.cs
  • Event/Combat/CombatFinishReturnEventArgs.cs
  • Event/Combat/CombatPauseEventArgs.cs
  • Event/Combat/CombatProcessEventArgs.cs
  • Event/Combat/CombatSelectItemClickEventArgs.cs ⚠️ 已修改 - 依赖迁移的枚举
  • Event/EventForm/EventOptionItemSelectedEventArgs.cs
  • Event/Game/NodeCompleteEventArgs.cs ⚠️ 已修改 - 依赖迁移的枚举和数据结构
  • Event/Game/NodeEnterEventArgs.cs ⚠️ 已修改 - 依赖迁移的枚举
  • Event/Game/NodeMapNodeClickEventArgs.cs
  • Event/Game/NodeMapNodeEnterRequestedEventArgs.cs ⚠️ 已修改 - 依赖迁移的枚举
  • Event/Game/TestMenuNodeClickEventArgs.cs
  • Event/General/RewardSelectGiveUpEventArgs.cs
  • Event/General/RewardSelectItemSelectedEventArgs.cs
  • Event/General/RewardSelectRefreshEventArgs.cs
  • Event/MainForm/RepoButtonClickedEventArgs.cs
  • Event/MainForm/ReturnButtonClickedEventArgs.cs
  • Event/Menu/MenuExitRequestedEventArgs.cs
  • Event/Menu/MenuSettingsRequestedEventArgs.cs
  • Event/Menu/MenuStartRequestedEventArgs.cs
  • Event/RepoForm/CombineSlotClickedEventArgs.cs
  • Event/RepoForm/RepoCombineRequestedEventArgs.cs
  • Event/RepoForm/RepoFormReturnEventArgs.cs
  • Event/RepoForm/RepoItemClickedEventArgs.cs ⚠️ 已修改 - UnityEngine.Vector2System.Numerics.Vector2
  • Event/RepoForm/RepoItemDragEndedEventArgs.cs
  • Event/RepoForm/RepoParticipantAssignRequestedEventArgs.cs
  • Event/RepoForm/RepoSellCancelRequestedEventArgs.cs
  • Event/RepoForm/RepoSellConfirmRequestedEventArgs.cs
  • Event/RepoForm/RepoSellModeToggleRequestedEventArgs.cs
  • Event/Shop/ShopExitRequestedEventArgs.cs
  • Event/Shop/ShopInventoryRequestedEventArgs.cs
  • Event/Shop/ShopPurchaseRequestedEventArgs.cs

⚠️ 注:以下 5 个 Event 文件在初始迁移后因跨层依赖被移除后经修复枚举迁移、Vector2替换后重新加入CombatSelectItemClickEventArgs、NodeCompleteEventArgs、NodeEnterEventArgs、NodeMapNodeEnterRequestedEventArgs、RepoItemClickedEventArgs

UI/Base3 个文件)

  • UI/Base/IUIFormController.cs
  • UI/Base/IUIUseCase.cs
  • UI/Base/UIContext.cs

Definition/Tag37 个文件)

  • Definition/Tag/Aggregation/TagRuntimeData.cs
  • Definition/Tag/Aggregation/TowerTagAggregationService.cs
  • Definition/Tag/Combat/EnemyStatusTagRegistry.cs
  • Definition/Tag/Combat/Handlers/AttackShapeTagEffectHandler.cs
  • Definition/Tag/Combat/Handlers/NumericTagEffectHandler.cs
  • Definition/Tag/Combat/States/EnemyStatusTagStateBase.cs
  • Definition/Tag/Combat/States/FireTagState.cs
  • Definition/Tag/Combat/States/IceTagState.cs
  • Definition/Tag/Combat/StatusEffects/EnemyStatusTagEffectBase.cs
  • Definition/Tag/Combat/StatusEffects/FireTagEffect.cs
  • Definition/Tag/Combat/StatusEffects/IEnemyStatusTagEffect.cs
  • Definition/Tag/Combat/StatusEffects/IceTagEffect.cs
  • Definition/Tag/Combat/TagEffectResolver.cs
  • Definition/Tag/Generation/ComponentTagGenerationService.cs
  • Definition/Tag/Generation/InventoryTagRandomContext.cs
  • Definition/Tag/Generation/RarityTagBudgetRule.cs
  • Definition/Tag/Generation/RarityTagBudgetRuleRegistry.cs
  • Definition/Tag/Generation/TagGenerationRule.cs
  • Definition/Tag/Generation/TagGenerationRuleRegistry.cs
  • Definition/Tag/Metadata/Config/AbsoluteZeroTagConfig.cs
  • Definition/Tag/Metadata/Config/BurnSpreadTagConfig.cs
  • Definition/Tag/Metadata/Config/CritTagConfig.cs
  • Definition/Tag/Metadata/Config/ExecutionTagConfig.cs
  • Definition/Tag/Metadata/Config/FireTagConfig.cs
  • Definition/Tag/Metadata/Config/FreezeMaskTagConfig.cs
  • Definition/Tag/Metadata/Config/IceTagConfig.cs
  • Definition/Tag/Metadata/Config/IgniteBurstTagConfig.cs
  • Definition/Tag/Metadata/Config/InfernoTagConfig.cs
  • Definition/Tag/Metadata/Config/OverpenetrateTagConfig.cs
  • Definition/Tag/Metadata/Config/PierceTagConfig.cs
  • Definition/Tag/Metadata/Config/ShatterTagConfig.cs
  • Definition/Tag/Metadata/Config/TagConfigBase.cs
  • Definition/Tag/Metadata/TagDefinition.cs

Definition/Event6 个文件)

  • Definition/Event/EventEffect/AddGoldEffect.cs
  • Definition/Event/EventEffect/AddRandomCompsEffect.cs
  • Definition/Event/EventEffect/DamageRandomTowerEnduranceEffect.cs
  • Definition/Event/EventEffect/EventEffectBase.cs
  • Definition/Event/EventEffect/RemoveRandomCompEffect.cs
  • Definition/Event/EventOptionExecutor.cs
  • Definition/Event/EventRequirement/CompCountAtLeastRequirement.cs
  • Definition/Event/EventRequirement/EventRequirementBase.cs
  • Definition/Event/EventRequirement/GoldAtLeastRequirement.cs
  • Definition/Event/EventRequirement/HasRelicRequirement.cs
  • Definition/Event/EventRequirement/TowerCountAtLeastRequirement.cs

Factory6 个文件)

  • Factory/EventEffectFactory.cs
  • Factory/EventRequirementFactory.cs
  • Factory/OutGameDropItemBuilder.cs
  • Factory/PhaseEndConditionFactory.cs
  • Factory/RunStateFactory.cs

Network12 个文件)

  • Network/CSPacketBase.cs
  • Network/CSPacketHeader.cs
  • Network/Packet/CSHeartBeat.cs
  • Network/Packet/SCHeartBeat.cs
  • Network/PacketBase.cs
  • Network/PacketHandler/SCHeartBeatHandler.cs
  • Network/PacketHandlerBase.cs
  • Network/PacketHeaderBase.cs
  • Network/PacketType.cs
  • Network/SCPacketBase.cs
  • Network/SCPacketHeader.cs

UI/Context / RawData大量文件

  • UI/DialogParams.cs
  • UI/Game/Context/CombineAreaContext.cs
  • UI/Game/Context/CompAreaContext.cs
  • UI/Game/Context/EventFormContext.cs
  • UI/Game/Context/EventOptionItemContext.cs
  • UI/Game/Context/MainFormContext.cs
  • UI/Game/Context/NodeItemContext.cs
  • UI/Game/Context/NodeMapFormContext.cs
  • UI/Game/Context/ParticipantAreaContext.cs
  • UI/Game/Context/RepoFormContext.cs
  • UI/Game/Context/RepoFormState.cs
  • UI/Game/Context/RepoItemClickActionType.cs
  • UI/Game/Context/RepoItemContext.cs
  • UI/Game/Context/SellAreaContext.cs
  • UI/Game/Context/TowerRepoItemContext.cs
  • UI/Game/RawData/EventFormRawData.cs
  • UI/Game/RawData/NodeMapFormRawData.cs
  • UI/Game/RawData/RepoFormRawData.cs
  • UI/Game/RepoParticipantAssignDialogUtility.cs
  • UI/Game/View/IRepoDragItemView.cs
  • UI/General/Context/DialogFormContext.cs
  • UI/General/Context/RewardItemContext.cs
  • UI/General/Context/RewardSelectFormContext.cs
  • UI/General/Context/TagItemContext.cs
  • UI/General/RawData/DialogFormRawData.cs
  • UI/General/RawData/ItemDescFormRawData.cs
  • UI/General/RawData/RewardSelectFormRawData.cs
  • UI/General/RawData/RewardSelectItemRawData.cs
  • UI/General/RawData/RewardSelectItemRawDataBuilder.cs
  • UI/Menu/Context/MenuFormContext.cs
  • UI/Menu/Context/TestMenuFormContext.cs
  • UI/Menu/RawData/MenuFormRawData.cs
  • UI/Shop/Context/GoodsItemContext.cs
  • UI/Shop/Context/ShopFormContext.cs
  • UI/Shop/RawData/GoodsItemRawData.cs
  • UI/Shop/RawData/ShopFormRawData.cs
  • UI/Templates/GameScene/Context/DisplayItemContext.cs
  • UI/Templates/GameScene/Context/DisplayListAreaContext.cs
  • UI/Templates/GameScene/Context/GoodsItemContext.cs
  • UI/Templates/GameScene/Context/HudFormContext.cs
  • UI/Templates/GameScene/Context/LevelUpFormContext.cs
  • UI/Templates/GameScene/Context/LevelUpRewardItemContext.cs
  • UI/Templates/GameScene/Context/ShopFormContext.cs
  • UI/Templates/GameScene/RawData/LevelUpFormRawData.cs
  • UI/Templates/GameScene/RawData/ShopFormRawData.cs
  • UI/Templates/MenuScene/Context/RoleItemContext.cs
  • UI/Templates/MenuScene/Context/RolePropertyAreaContext.cs
  • UI/Templates/MenuScene/Context/SelectRoleFormContext.cs
  • UI/Templates/MenuScene/Context/StartMenuFormContext.cs
  • UI/Templates/MenuScene/RawData/SelectRoleFormRawData.cs
  • UI/Templates/MenuScene/RawData/StartMenuFormRawData.cs
  • UI/Combat/Context/CombatFinishFormContext.cs
  • UI/Combat/Context/CombatInfoFormContext.cs
  • UI/Combat/Context/CombatSelectActionType.cs
  • UI/Combat/RawData/CombatFinishFormRawData.cs
  • UI/Combat/RawData/CombatInfoFormRawData.cs
  • UI/Combat/RawData/CombatSelectClickObjectType.cs
  • UI/Combat/RawData/CombatSelectDisplayMode.cs

CustomComponent 纯 C# 文件

  • Components/IDamageReceiver.cs
  • CustomComponent/CombatNode/CombatScheduler/CombatSettlementContext.cs
  • CustomComponent/CombatNode/CombatScheduler/EnemyDrop/EnemyDropContext.cs
  • CustomComponent/CombatNode/CombatScheduler/EnemyDrop/EnemyDropResult.cs
  • CustomComponent/CombatNode/CombatScheduler/ICombatSchedulerPort.cs
  • CustomComponent/CombatNode/CombatScheduler/PhaseEndConditions/IPhaseEndCondition.cs
  • CustomComponent/CombatNode/CombatScheduler/PhaseEndConditions/NonePhaseEndCondition.cs
  • CustomComponent/CombatNode/CombatScheduler/PhaseEndConditions/PhaseEndConditionContext.cs
  • CustomComponent/CombatNode/CombatScheduler/PhaseEndConditions/TimeElapsedPhaseEndCondition.cs
  • CustomComponent/CombatNode/CombatSettlementCalculator.cs
  • CustomComponent/CombatNode/CombatSettlementCommitter.cs
  • CustomComponent/CombatNode/EnemyManager/EnemyLifecycleTracker.cs
  • CustomComponent/InventoryGeneration/DropPoolRoller.cs
  • CustomComponent/InventoryGeneration/InventoryGenerationRandomContext.cs
  • CustomComponent/InventoryGeneration/RewardCandidateBuilder.cs
  • CustomComponent/PlayerInventory/PlayerInventoryStateStore.cs
  • CustomComponent/PlayerInventory/PlayerInventoryTowerRosterService.cs
  • CustomComponent/PlayerInventory/PlayerInventoryTradeService.cs

Scene/Pathfinding

  • Scene/Pathfinding/IMapPathfinder.cs

Procedure 纯 C#

  • Procedure/ProcedureMain/FixedRunNodeSequenceBuilder.cs
  • Procedure/ProcedureMain/ProcedureMainCombatEntryValidationResult.cs
  • Procedure/ProcedureMain/ProcedureMainCombatEntryValidationService.cs
  • Procedure/ProcedureMain/ProcedureMainNodeEventGuardService.cs
  • Procedure/ProcedureMain/ProcedureMainParticipantTowerCleanupService.cs
  • Procedure/ProcedureMain/ProcedureMainRunCompletionService.cs
  • Procedure/ProcedureMain/ProcedureMainRunFlowService.cs
  • Procedure/ProcedureMain/RunStateAdvanceService.cs

Entity

  • Entity/EntityLogic/EnemyTagStatusRuntime.cs

Utility

  • Utility/EnumUtility.cs
  • Utility/InventoryCloneUtility.cs
  • Utility/InventoryParticipantUtility.cs
  • Utility/InventorySeedUtility.cs
  • Utility/ItemDescUtility.cs
  • Utility/ShopPriceRuleService.cs
  • Utility/WebUtility.cs

阶段二L1 重构迁移(需修改后迁移)

策略 1Vector3 替换

UnityEngine.Vector3 替换为 System.Numerics.Vector3

文件 修改内容
Definition/DataStruct/AttackPayload.cs Vector3 OriginPositionSystem.Numerics.Vector3
Definition/DataStruct/HitContext.cs Vector3System.Numerics.Vector3
Entity/EntityLogic/CombatSelectInputService.cs Vector2System.Numerics.Vector2

策略 2GameEntry 静态调用替换为注入服务

文件 修改内容
Definition/Tag/Metadata/TagDefinitionRegistry.cs GameEntry.DataTable → 注入 IDataTableService
Definition/Tag/Presentation/TagDisplayUtility.cs GameEntry.DataTable → 注入 IDataTableService
Utility/AssetUtility.cs GameEntry.* → 注入服务
Utility/JsonNetUtility.cs GameFramework.Utility.Json → 注入

策略 3DataTable 保持 L1

所有 DR* 类继承 UnityGameFramework.Runtime.DataRowBase,留在 L1

  • DataTable/DREnemy.cs
  • DataTable/DRLevel.cs
  • DataTable/DRLevelPhase.cs
  • DataTable/DRLevelSpawnEntry.cs
  • DataTable/DREvent.cs
  • DataTable/DREntity.cs
  • DataTable/DRBaseComp.cs
  • DataTable/DRBearingComp.cs
  • DataTable/DRMusic.cs
  • DataTable/DRMuzzleComp.cs
  • DataTable/DROutGameDropPool.cs
  • DataTable/DRRarityTagBudget.cs
  • DataTable/DRScene.cs
  • DataTable/DRShopPrice.cs
  • DataTable/DRSound.cs
  • DataTable/DRTag.cs
  • DataTable/DRTagConfig.cs
  • DataTable/DRUIForm.cs
  • DataTable/DRUISound.cs
  • DataTable/DataTableExtension.cs(含 Vector3/Color 解析)
  • DataTable/BinaryReaderExtension.cs

策略 4Tilemap 接口抽象

文件 修改内容
Scene/Map/MapTopologyService.cs TilemapITilemap 接口
Scene/Map/TowerPlacementService.cs TilemapITilemap 接口
Scene/Map/TowerSelectionPresenter.cs Vector3System.Numerics.Vector3
Scene/Map/MapCombatRuntimeBridge.cs Unity 类型 → 接口
Scene/Pathfinding/GridMapPathfinder.cs Vector3Int → 自定义 struct

策略 5Constant.Layer 修复

  • Definition/Constant/Constant.Layer.csLayerMask.NameToLayer → int 常量

策略 6Color 替换

  • Entity/EntityLogic/CombatSelectUseCaseConfigurator.csUnityEngine.Color → 纯 C# struct
  • Procedure/ProcedureMain/RunState.csUnityEngine.Color → 纯 C# struct
  • Utility/IconColorGenerator.csUnityEngine.Color → 纯 C# struct
  • Utility/TowerIconComposeUtility.csUnityEngine.Color/Sprite → 接口

策略 7TagEffectResolver

  • Definition/Tag/Combat/TagEffectResolver.csMathfSystem.Math

阶段三L2 保持 Unity

以下文件属于 L2直接保留在 Unity 项目中,无需修改:

Base3 个文件)

  • Base/GameEntry.cs
  • Base/GameEntry.Builtin.cs
  • Base/GameEntry.Custom.cs

Components8 个文件)

  • Components/BasicBaseComp.cs
  • Components/BasicBearingComp.cs
  • Components/InputComponent.cs
  • Components/MovementComponent.cs
  • Components/ShooterBullet.cs
  • Components/ShooterMuzzleComp.cs
  • Components/TowerController.cs

CustomComponent/*Component10 个文件)

  • CustomComponent/BuiltinDataComponent.cs
  • CustomComponent/CombatNode/CombatNodeComponent.cs
  • CustomComponent/EventNodeComponent.cs
  • CustomComponent/HPBar/HPBarComponent.cs
  • CustomComponent/InventoryGeneration/InventoryGenerationComponent.cs
  • CustomComponent/PlayerInventory/PlayerInventoryComponent.cs
  • CustomComponent/ResolutionAdapterComponent.cs
  • CustomComponent/ShopNodeComponent.cs
  • CustomComponent/SpriteCacheComponent.cs
  • CustomComponent/TagRegistry/TagRegistryComponent.cs
  • CustomComponent/UIRouterComponent.cs

Entity/EntityLogic7 个文件)

  • Entity/EntityLogic/EntityBase.cs
  • Entity/EntityLogic/EnemyEntity.cs
  • Entity/EntityLogic/TowerEntity.cs
  • Entity/EntityLogic/BulletEntity.cs
  • Entity/EntityLogic/Player.cs
  • Entity/EntityLogic/MapEntity.cs
  • Entity/EntityLogic/CombatSelectUseCaseConfigurator.cs

UI/View大量文件

所有继承 UGuiForm 的 View 类:

  • UI/Combat/View/CombatFinishForm.cs
  • UI/Combat/View/CombatInfoForm.cs
  • UI/Combat/View/CombatSelectBuildArea.cs
  • UI/Combat/View/CombatSelectForm.cs
  • UI/Combat/View/CombatSelectFuncArea.cs
  • UI/Combat/View/TowerSelectItem.cs
  • UI/Game/View/CombineArea.cs
  • UI/Game/View/CombineSlotItem.cs
  • UI/Game/View/CompArea.cs
  • UI/Game/View/EventForm.cs
  • UI/Game/View/EventOptionItem.cs
  • UI/Game/View/MainForm.cs
  • UI/Game/View/NodeItem.cs
  • UI/Game/View/NodeMapForm.cs
  • UI/Game/View/ParticipantArea.cs
  • UI/Game/View/RepoForm.cs
  • UI/Game/View/RepoItem.cs
  • UI/Game/View/SellArea.cs
  • UI/Game/View/TowerRepoItem.cs
  • UI/General/View/DialogForm.cs
  • UI/General/View/IconArea.cs
  • UI/General/View/ItemDescForm.cs
  • UI/General/View/RewardItem.cs
  • UI/General/View/RewardSelectForm.cs
  • UI/General/View/TagItem.cs
  • UI/General/View/TowerIconArea.cs
  • UI/Menu/View/MenuForm.cs
  • UI/Menu/View/TestMenuForm.cs
  • UI/Shop/View/GoodsItem.cs
  • UI/Shop/View/ShopForm.cs
  • UI/Templates/GameScene/View/DisplayItem.cs
  • UI/Templates/GameScene/View/DisplayItemInfoForm.cs
  • UI/Templates/GameScene/View/DisplayItemObject.cs
  • UI/Templates/GameScene/View/DisplayListArea.cs
  • UI/Templates/GameScene/View/HudForm.cs
  • UI/Templates/GameScene/View/LevelUpForm.cs
  • UI/Templates/GameScene/View/LevelUpRewardItem.cs
  • UI/Templates/GameScene/View/ShopForm.cs
  • UI/Templates/MenuScene/View/RoleItem.cs
  • UI/Templates/MenuScene/View/RolePropertyArea.cs
  • UI/Templates/MenuScene/View/SelectRoleForm.cs
  • UI/Templates/MenuScene/View/SettingForm.cs
  • UI/Templates/MenuScene/View/StartMenuForm.cs
  • UI/HPBarItem.cs
  • UI/CommonButton.cs
  • UI/UpdateResourceForm.cs

UI/Controller多个文件

  • UI/Combat/Controller/CombatFinishFormController.cs
  • UI/Combat/Controller/CombatInfoFormController.cs
  • UI/Combat/Controller/CombatSelectFormController.cs
  • UI/Game/Controller/EventFormController.cs
  • UI/Game/Controller/MainFormController.cs
  • UI/Game/Controller/NodeMapFormController.cs
  • UI/Game/Controller/RepoFormController.cs
  • UI/General/Controller/DialogFormController.cs
  • UI/General/Controller/ItemDescFormController.cs
  • UI/General/Controller/RewardSelectFormController.cs
  • UI/Menu/Controller/MenuFormController.cs
  • UI/Menu/Controller/TestMenuFormController.cs
  • UI/Shop/Controller/ShopFormController.cs
  • UI/Templates/GameScene/Controller/DisplayItemInfoFormController.cs
  • UI/Templates/GameScene/Controller/HudFormController.cs
  • UI/Templates/GameScene/Controller/LevelUpFormController.cs
  • UI/Templates/GameScene/Controller/ShopFormController.cs
  • UI/Templates/MenuScene/Controller/SelectRoleFormController.cs
  • UI/Templates/MenuScene/Controller/StartMenuFormController.cs

Procedure13 个文件)

  • Procedure/Base/ProcedureBase.cs
  • Procedure/Base/ProcedureChangeScene.cs
  • Procedure/Base/ProcedureCheckResources.cs
  • Procedure/Base/ProcedureCheckVersion.cs
  • Procedure/Base/ProcedureInitResources.cs
  • Procedure/Base/ProcedureLaunch.cs
  • Procedure/Base/ProcedurePreload.cs
  • Procedure/Base/ProcedureSplash.cs
  • Procedure/Base/ProcedureUpdateResources.cs
  • Procedure/Base/ProcedureUpdateVersion.cs
  • Procedure/Base/ProcedureVerifyResources.cs
  • Procedure/ProcedureMain/ProcedureMain.cs
  • Procedure/ProcedureMenu.cs
  • Procedure/ProcedureTest.cs

Scene5 个文件)

  • Scene/HideByBoundary.cs
  • Scene/Map/House.cs
  • Scene/Map/MapDataRefs.cs
  • Scene/Map/Spawner.cs

PoolObjectBase3 个文件)

  • PoolObjectBase/HPBarItemObject.cs
  • PoolObjectBase/RepoItemObject.cs
  • PoolObjectBase/TowerRepoItemObject.cs

Network

  • Network/NetworkChannelHelper.cs

Editor3 个文件)

  • Editor/GameFrameworkConfigs.cs
  • Editor/GeometryTDBuildEventHandler.cs
  • Editor/SceneSwitchLeft.cs

关键依赖链

L0 迁移阻塞链:
├── TagDefinitionRegistry (L1 重构) ──→ DR* (L1) ──→ DataTableExtension (L1)
├── AttackPayload (L1 重构) ──→ TagEffectResolver (L1 重构)
└── MapTopologyService (L1 重构) ──→ EntityData (L2)

重构优先级

  1. 第一波Definition/Enum + Event 已完成
  2. 第二波DataTable 整体移入 L1
  3. 第三波Vector3 → System.Numerics.Vector3 替换
  4. 第四波GameEntry 静态调用 → 接口注入
  5. 第五波Tilemap 接口抽象
  6. 第六波:剩余 L1 文件迁移

第一波修改记录2026-04-30

进度统计

类别 源文件数 已迁移 完成率
Definition/Enum 23 27* 100%+
Event 35 35 100%
小计 58 62 ~34% of L0

*注Enum 源文件23个第一波新增4个枚举从其他层迁移故总计27个。L0总约180个文件。

新增文件

文件 说明
Definition/Enum/CombatSelectActionType.cs UI/Combat/Context/ 迁移
Definition/Enum/RunNodeType.cs Procedure/ProcedureMain/RunModel.cs 迁移枚举
Definition/Enum/RunNodeStatus.cs Procedure/ProcedureMain/RunModel.cs 迁移枚举
Definition/Enum/RunNodeCompletionStatus.cs Procedure/ProcedureMain/RunModel.cs 迁移枚举
Definition/DataStruct/RunItemState.cs 新建,简化版
Definition/DataStruct/RunNodeCompletionSnapshot.cs 新建,简化版(移除了对 Unity 类型的依赖)

修改文件

文件 修改内容
Event/RepoForm/RepoItemClickedEventArgs.cs UnityEngine.Vector2System.Numerics.Vector2
Event/Combat/CombatSelectItemClickEventArgs.cs using GeometryTD.UI → 迁移的枚举
Event/Game/NodeCompleteEventArgs.cs 依赖迁移的枚举和数据结构
Event/Game/NodeEnterEventArgs.cs using GeometryTD.Procedure → 迁移的枚举
Event/Game/NodeMapNodeEnterRequestedEventArgs.cs using GeometryTD.Procedure → 迁移的枚举

命名空间统一

所有新增/修改的 Enum 文件使用 GeometryTD.Definition 命名空间(与原有文件保持一致)


验收标准

  • L0 独立构建成功(dotnet build GeometryTD.Domain
  • L1 引用 L0 无循环依赖
  • L2 引用 L1 无循环依赖
  • 三层整体构建成功(dotnet build Geometry-Tower-Defense-Base.sln
  • 原有游戏流程(战斗/商店/组装)在 Unity 中正常运行