SepComet
|
185ea43323
|
S7-01 + S7-02
|
2026-03-12 10:46:11 +08:00 |
SepComet
|
09ebe6e3f3
|
S6 回归与文档收尾
|
2026-03-11 21:19:53 +08:00 |
SepComet
|
9c5871b518
|
S5-04
|
2026-03-11 16:48:26 +08:00 |
SepComet
|
113decb414
|
S5-01 + S5-02 + S5-03
|
2026-03-11 15:36:18 +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
|
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
|
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
|
2b86582ff7
|
固定 10 节点大关的生成层,但还没有接入主流程
- 新增了 FixedRunNodeSequenceBuilder.cs,现在 Plain 主题会固定生成 1战 2事 3战 4店 5战 6事 7战 8店 9事 10Boss。普通战斗节点的 LinkedLevelId 固定映射为 1 -> 2 -> 3 -> 1,第 10 个 Boss 节点固定绑定 Level 4。
- RunStateFactory.cs 增加了 CreateFixedRun(...),可以直接创建带 10 节点固定序列的 RunState。RunModel.cs 也补了几个只读查询:NodeCount、GetNodeBySequenceIndex(...)、IsBossNode(...),方便后面接真实流程。
|
2026-03-07 21:52:39 +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 |
SepComet
|
eb818e6295
|
- 添加 CombatFailedState 执行路径
- CombatInfoForm 测试异常方法
|
2026-03-07 18:45:25 +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
|
c576224991
|
CombatNodeComponent 战斗节点功能补全
- 失败逻辑补全:添加基地血量,当血量归0时强制结束关卡
- `CombatInfoForm` 刷新逻辑补全:通过订阅 `CombatCoinChanged/Process/BaseHpChangedEventArgs` 来更新 UI,同时可以避免一点小变动刷新整个 UI
- `CombatSelectForm` 逻辑优化:订阅 `CombatCoinChanged` 来实时更新当前 Coin 是否满足操作条件
|
2026-03-02 12:06:36 +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
|
9504c1ca18
|
添加节点测试 UI 和商店节点(占位)
- TestMenuForm:节点测试 UI
- ShopNodeComponent:商店节点组件,只有 OnInit() 和 StartShop() 两个空方法
|
2026-02-28 16:28:37 +08:00 |
SepComet
|
dd9cedef5f
|
添加 CombatNodeComponent 及相关类
- CombatNodeComponent:节点组件,负责提取并开始关卡
- CombatScheduler:关卡调度器,负责关卡的生命周期调度
- MapEntity:地图实体,提供地图相关的数据
- Spawner:出生点,负责标记地图上的敌人出生点坐标
- House:基地,负责标记地图上的敌人目标点坐标
|
2026-02-28 15:44:22 +08:00 |
SepComet
|
d9c118ace3
|
补充相关 UI
- 事件 UI:EventForm
- 选项:OptionItem
- 仓库 UI:RepoForm
- 组装槽:CombineSlotItem
- 组件列表槽:RepoItem
|
2026-02-26 23:29:32 +08:00 |
SepComet
|
11e4c1c1f2
|
P0-02 补齐数据表:组件、敌人、波次、节点、事件、商店商品
- 组件:
- 底座:Assets\GameMain\DataTables\BaseComp.txt
- 轴承:Assets\GameMain\DataTables\BearingComp.txt
- 枪口:Assets\GameMain\DataTables\MuzzleComp.txt
- 敌人:Assets\GameMain\DataTables\Enemy.txt
- 波次:
- 关卡:Assets\GameMain\DataTables\Level.txt
- 关卡阶段(波次):Assets\GameMain\DataTables\LevelPhase.txt
- 波次条目(波次出怪规则):Assets\GameMain\DataTables\LevelSpawnEntry.txt
- 事件:Assets\GameMain\DataTables\Event.txt
- 商店:Assets\GameMain\DataTables\ShopPrice.txt
|
2026-02-26 21:36:29 +08:00 |
SepComet
|
4daefa17d5
|
init
|
2026-02-26 13:21:43 +08:00 |