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
|
380f901c1a
|
refactor 8:
- CombatScheduler 不再反向访问 GameEntry.CombatNode。现在由 CombatNodeComponent.cs:322 在初始化时把完成回调传进 scheduler,运行时回调保存在 CombatSchedulerRuntimeContext.cs:27,完成时由 CombatSchedulerFlowCoordinator.cs:245 触发;主题解析也只看当前战斗上下文,不再回退查 facade,见 CombatSchedulerFlowCoordinator.cs:161。同时把 MapEntity 的 coin 回调改成直接连到资源真值来源 CombatLoadingState.cs:56,并把 ICombatSchedulerHost 上那两个资源转发接口删掉,见 ICombatSchedulerHost.cs:5。
- 地图加载入口也收紧了。CombatLoadSession 现在要求必须有 MapEntityLoadContext.InitialMapData,不再走隐式兜底,见 CombatLoadSession.cs:227。EntityExtension 删除了 ShowMap(MapData) 旧重载,当前只保留 ShowMap(MapEntityLoadContext),见 EntityExtension.cs:52;MapEntity 也不再接受裸 MapData 的遗留分支,见 MapEntity.cs:263。
|
2026-03-07 21:01:03 +08:00 |
SepComet
|
3badbe9212
|
文件迁移
|
2026-03-07 18:26:28 +08:00 |
SepComet
|
853886797c
|
refactor 2: 迁移局内资源真值
- CombatInRunResourceManager 现在持有并管理:
- CurrentCoin
- CurrentBaseHp
- MaxBaseHp
- GainedCoin / GainedGold
- 本局 BuildTowerStats 快照
- 奖励背包快照
- CombatInRunResourceManager.cs:38
- CombatInRunResourceManager.cs:46
- CombatInRunResourceManager.cs:89
- CombatInRunResourceManager.cs:156
- CombatScheduler 变成资源访问入口,不再通过 CombatNodeComponent 持有 coin/baseHp/build stats 真值。
- 启动时先初始化局内资源。
- 对外提供 CurrentCoin / CurrentGold / CurrentBaseHp / CurrentBuildTowerCount
- 提供 TryConsumeCoin / AddCoin / TryGetBuildTowerStats
- CombatNodeComponent 已退回 facade:
- 不再保存 _currentCoin / _currentGold / _currentBaseHp / _currentBuildTowerStats
- 只做只读转发和启动/结束协调
- 资源变化事件现在由资源管理器发布,并补上了 delta 字段:
额外修正
- Reset() 现在会清掉奖励背包里的 ParticipantTowerInstanceIds,避免跨局残留。
- TryConsumeCoin(0) 保持原先返回 true 的语义。
|
2026-03-07 11:41:47 +08:00 |
SepComet
|
0ff04f02f4
|
拆分 CombatScheduler 状态机到独立文件
|
2026-03-07 11:21:07 +08:00 |
SepComet
|
8a478982f8
|
补充参战防御塔进入战斗逻辑
- 将 Inventory 中参战的防御塔数据传递到 CombatSelectForm 中
- 为防御塔的图标展示添加 TowerRepoItem 与 TowerIconArea 适配防御塔的三层 Image
|
2026-03-05 13:44:49 +08:00 |
SepComet
|
c576224991
|
CombatNodeComponent 战斗节点功能补全
- 失败逻辑补全:添加基地血量,当血量归0时强制结束关卡
- `CombatInfoForm` 刷新逻辑补全:通过订阅 `CombatCoinChanged/Process/BaseHpChangedEventArgs` 来更新 UI,同时可以避免一点小变动刷新整个 UI
- `CombatSelectForm` 逻辑优化:订阅 `CombatCoinChanged` 来实时更新当前 Coin 是否满足操作条件
|
2026-03-02 12:06:36 +08:00 |
SepComet
|
564817d752
|
CombatNode 相关逻辑补充
- CombatFinishForm:战斗节点的结算页面(杀死的敌人、获得的金币、获得的道具)
- CombatSelectForm:战斗节点建造防御塔的选择 UI 以及对防御塔进行操作的 UI(只实现了建造逻辑,在 MapEntity 里做射线检测)
- 构建了基本的防御塔三组件(ShooterMuzzleComp/BasicBearingComp/BasicBaseComp)和防御塔主控(DefenseTowerController)以及相应的实体类(DefenseTowerEntity)
|
2026-03-01 23:11:52 +08:00 |
SepComet
|
92cca14503
|
refactor & fix
- 将 `CombatScheduler` 的职责分散到 3 个类中
- `PhaseLoopRuntime`:负责关卡各波次的调度
- `CombatLoadSession`:负责地图与 UI 等资源的加载
- `CombatEventBridge`:负责相关事件的处理
- 统一了战斗的命名为 `Combat`
- 调整了各个地图的坐标,使其位于摄像头中心
- 新增了 CombatInfoForm 展示战斗内的信息
- 补充了循环执行 LevelPhase,手动结束战斗的逻辑
|
2026-03-01 13:15:53 +08:00 |
SepComet
|
26dc1a5600
|
- 调整优化了 CombatNodeComponent 相关实体的生命周期管理
- 总结了一份 CombatNodeComponent 文档 CombatNodeArchitecture.md
|
2026-02-28 20:20:02 +08:00 |
SepComet
|
dd9cedef5f
|
添加 CombatNodeComponent 及相关类
- CombatNodeComponent:节点组件,负责提取并开始关卡
- CombatScheduler:关卡调度器,负责关卡的生命周期调度
- MapEntity:地图实体,提供地图相关的数据
- Spawner:出生点,负责标记地图上的敌人出生点坐标
- House:基地,负责标记地图上的敌人目标点坐标
|
2026-02-28 15:44:22 +08:00 |