Commit Graph

35 Commits

Author SHA1 Message Date
SepComet 3840f8e65a S7-03 + S7-04 + S7-05 2026-03-12 11:24:38 +08:00
SepComet d34af661b9 update docs 2026-03-12 09:36:24 +08:00
SepComet 09ebe6e3f3 S6 回归与文档收尾 2026-03-11 21:19:53 +08:00
SepComet ac1c91c1b4 update docs 2026-03-11 17:49:45 +08:00
SepComet 8c8f786013 S5 finish 2026-03-11 17:24:15 +08:00
SepComet c019f9f527 S4 收尾 2026-03-11 15:02:44 +08:00
SepComet 515fe95441 S4-07 process 3
- 组件 Tag 数量预算不再写死在 ResolveTagBudget(...) 里,而是走 RarityTagBudget.txt -> DRRarityTagBudget -> RarityTagBudgetRuleRegistry -> InventoryTagRuleService 这条表驱动链。
- TagBudget.txt:1 新增了按品质的 MinCount/MaxCount,预算缓存和加载入口分别在 RarityTagBudgetRuleRegistry.cs:7 和 ProcedurePreload.cs:18。
- 生成逻辑已经接到新规则,InventoryTagRuleService.cs:10 现在会先按 Tag.txt 过滤/加权,再按 RarityTagBudget 决定抽几个 Tag。
2026-03-11 13:16:33 +08:00
SepComet b1b68ebde5 S4-07 process 2
当前 `Tag.txt -> DRTag -> TagGenerationRuleRegistry` 已形成组件 Tag 生成规则闭环:
- `InventoryTagRuleService` 不再主要依赖内部 `MinRarity` 硬编码,而是统一消费 `DRTag` 提供的 `MinRarity + Weight`
- `ShopFormUseCase`、`EnemyDropResolver`、`InventorySeedUtility` 也已切回这一统一入口。
- 现阶段的职责边界明确为:`Tag.txt` 负责基础字典与生成规则,`TagConfig.txt` 负责触发阶段、描述与效果参数。
2026-03-11 11:20:16 +08:00
SepComet 9de2e50262 S4-07 process 1 2026-03-11 10:18:14 +08:00
SepComet 52f9e212b9 Start Tag System 2026-03-10 13:11:30 +08:00
SepComet 34ef001ef3 - S4-03 | 先固化 Tag 系统设计与首发范围
- S4-04 | 实现组件实例 Tag 的统一生成入口
- S4-05 | 实现组塔后的 Tag 汇总与展示入口
2026-03-09 21:06:43 +08:00
SepComet 73b7adedb8 - S4-01 先确定 M1 需要的品质 / Tag
- S4-02 把品质计算整理成单一入口 规则边界
- S4-03 先固化 Tag 系统设计与首发范围
2026-03-09 20:34:22 +08:00
SepComet af20eeecfa 阶段 S3 - 收口出战合法性 2026-03-09 19:47:46 +08:00
SepComet 88641f17b0 S3-01 + S3-02 2026-03-09 17:50:49 +08:00
SepComet 793a87c171 补全 S1 测试
- 调整 CombatNode 正常结束与异常的变量语义,现在是 DidCombatWin 与 Exception
- 补充测试样例
- 完成 S1 目标
2026-03-08 21:10:03 +08:00
SepComet 1023239880 迁移测试文件,建立主程序集 2026-03-08 18:08:13 +08:00
SepComet 548bc77ba6 规范类命名 2026-03-08 17:00:21 +08:00
SepComet 47ed27bebb 补充事件参数 + 完善 UI 设计
- 事件节点在 EventNodeComponent.cs 的 StartEvent/EndEvent 会携带 runId/nodeId/nodeType/sequenceIndex
- 商店节点在 ShopNodeComponent.cs 也会带同一套字段
- 战斗节点通过 CombatNodeComponent.cs 把上下文传进 CombatScheduler,再由 CombatRunningPhaseState.cs 发 NodeEnterEventArgs、由   CombatSchedulerFlowCoordinator.cs 发 NodeCompleteEventArgs
- NodeCompleteEventArgs.cs 现在新增了 SequenceIndex
- 各种 UI 的覆盖问题
2026-03-08 11:51:00 +08:00
SepComet 5c6f9bf3a4 RunNode 接入游戏主流程
- NodeMapForm:节点地图
    - NodeItem:节点入口
2026-03-08 11:27:51 +08:00
SepComet 5afcaafff7 实现单局 Run 模型的基础落地
- 核心改动在 RunModel.cs、RunStateFactory.cs 和 RunStateAdvanceService.cs。现在项目里有了 RunNodeType / RunNodeStatus / RunNodeSeed / RunNodeState / RunState,并支持用预置节点序列创建 Run,以及在节点完成后推进、更新局内库存快照、标记通关或失败。

- 库存边界也补上了。PlayerInventoryComponent.cs 新增了 ReplaceInventorySnapshot(...),底层通过 PlayerInventoryStateStore.cs 重建工作副本,避免后续把 Run 真值硬塞回 PlayerInventory 内部状态。

- 节点事件载体已经扩展为可承载 Run 上下文,同时保留原来的无参 Create() 以兼容现有调用点。相关改动在 NodeEnterEventArgs.cs 和 NodeCompleteEventArgs.cs。

- 我还补了纯模型编辑器测试,覆盖 Run 创建、节点推进、失败标记和事件快照克隆,文件在 RunStateTests.cs。
2026-03-07 21:45:13 +08:00
basil 703fd6f540 Refine combat settlement exit flow 2026-03-07 20:09:50 +08:00
SepComet 3ad7d04b47 MapData + Event 解耦已完成一轮收口
- `MapData` 已收口为纯初始化快照,不再承载 coin 写接口委托
- 已新增 `MapEntityLoadContext`
  - 用于把 `MapData` 快照与 coin 命令通道拆开传给地图加载
- `CombatLoadingState` 现在会组装:
  - `MapData`
  - `MapEntityLoadContext`
- `CombatLoadSession` / `EntityExtension.ShowMap(...)` 已切到 `MapEntityLoadContext`
- `MapEntity` 当前通过:
  - `MapEntityLoadContext` 获取初始快照与 coin 命令通道
  - `CombatCoinChangedEventArgs` 同步后续 coin 变化
- 已新增 `MapCombatRuntimeBridge`
  - 收口地图侧 coin 当前值、命令调用与事件订阅
- `MapEntity` 不再自己维护 `_currentCoin` 和 coin 事件订阅样板
2026-03-07 20:00:39 +08:00
SepComet b38088c3ea refactor 7:
- 拆分 CombatScheduler,将公用方法与字段拆分为:
    - FlowCoordinator
    - RuntimeContext
- 地图侧现在收口为“MapData 初始快照 + CombatCoinChangedEventArgs 同步 + 独立命令桥接”
2026-03-07 19:42:17 +08:00
SepComet 01750e1b83 Archive 2026-03-07 11:57:44 +08:00
SepComet 34446ae42a Update CombatNodeArchitecture.md 2026-03-06 21:02:40 +08:00
SepComet 1e5803f4c5 补全防御塔组装与介绍描述功能
- RepoForm.CombineArea:防御塔组装,直接继承所有组件的属性
- ItemDescUtility:根据属性构建不同的 ItemDescForm 的文本
2026-03-04 18:17:10 +08:00
SepComet e12d2e73b2 补全 UI 设计
- `ItemDescForm` 道具详细信息面板,目前还未添加 DescText 内容的赋值
- `RepoForm` 道具入槽逻辑调整,为了适应 `ItemDescForm` 的点击打开逻辑,点击道具自动匹配槽位改成拖动道具到相应槽位
- 添加了一系列图片素材
2026-03-04 12:47:20 +08:00
SepComet daba9cbdf9 仓库组件 + 防御塔升级
- `PlayerInventoryComponent`:玩家库存组件,收集金币/组件/防御塔等道具
- 补全防御塔的升级逻辑,最高 5 级
2026-03-02 19:50:12 +08:00
SepComet 5ba94828a8 补全 `CombatNode` 逻辑 + 重构 `EnemyManager`
- 添加了关卡内的难度系数与掉落
    - 难度系数:每循环一轮波次敌人血量翻倍
    - 道具掉落:按照掉落概率曲线根据波次计算当前爆率,并从新增的道具池里选择道具
    - `CombatResourceManager`:统一维护关卡内资源状态(硬币/金币/道具掉落)
- 重构 `EnemyManager`:
    - `EnemyManager`:编排子服务,不承载具体业务细节
    - `EnemySpawnDirector`:管理刷怪时序
    - `SpawnerResolver`:管理出生点与路径
    - `EnemyLifecycleTracker`:追踪敌人生命周期
    - `EnemyConfigService`:管理敌人配置与倍率
2026-03-02 17:23:34 +08:00
SepComet 5c7501d4fb 拆分 MapEntity 职责
- TowerSelectionPresenter:选中态 + 攻击范围展示
- CombatSelectInputService:点击事件逻辑(位置计算、点击对象识别、组装 CombatSelectFormUserData)
- TowerPlacementService:建造/升级/销毁与塔映射管理
- MapTopologyService:维护地图拓扑结构与寻路缓存
2026-03-02 11:04:33 +08:00
SepComet 564817d752 CombatNode 相关逻辑补充
- CombatFinishForm:战斗节点的结算页面(杀死的敌人、获得的金币、获得的道具)
- CombatSelectForm:战斗节点建造防御塔的选择 UI 以及对防御塔进行操作的 UI(只实现了建造逻辑,在 MapEntity 里做射线检测)
- 构建了基本的防御塔三组件(ShooterMuzzleComp/BasicBearingComp/BasicBaseComp)和防御塔主控(DefenseTowerController)以及相应的实体类(DefenseTowerEntity)
2026-03-01 23:11:52 +08:00
SepComet 26dc1a5600 - 调整优化了 CombatNodeComponent 相关实体的生命周期管理
- 总结了一份 CombatNodeComponent 文档 CombatNodeArchitecture.md
2026-02-28 20:20:02 +08:00
SepComet dfd37778b6 - 添加 MainForm
- 添加 ResolutionAdapterComponent 进行屏幕分辨率适配
2026-02-28 18:39:20 +08:00
SepComet bb0a4edfb7 P0-01:冻结 MVP 范围
docs/MVP-Scope.md
2026-02-26 13:56:30 +08:00
SepComet 4daefa17d5 init 2026-02-26 13:21:43 +08:00