SepComet
|
aa44170d56
|
InventoryGenerationComponent + TagRegistryComponent 收口
|
2026-03-13 11:06:14 +08:00 |
|
SepComet
|
0c92fd9886
|
调整 OutGameDropPool 表定义 + 添加部分组件定义
|
2026-03-13 10:08:12 +08:00 |
|
SepComet
|
26aaa945a9
|
G3 finish
|
2026-03-13 09:46:59 +08:00 |
|
SepComet
|
53b6b261dd
|
InventoryGenerationComponent G2
|
2026-03-12 17:34:00 +08:00 |
|
SepComet
|
f67888a8da
|
拆分 UIController 组装 Context 职责 + 描述文本滚动展示
|
2026-03-12 16:45:20 +08:00 |
|
SepComet
|
4962b98714
|
重构
- 统一 ItemDescForm/RewardItem/GoodsItem 的描述格式
- 减少组件属性的 Clone 数量,目前只在合并仓库、组装防御塔时才进行复制
- 删除先前留下的冗余 fallback 代码
|
2026-03-12 15:58:14 +08:00 |
|
SepComet
|
9e59865368
|
G1-04
|
2026-03-12 13:33:35 +08:00 |
|
SepComet
|
99ed963faa
|
G1-01 + G1-02
|
2026-03-12 13:20:02 +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
|
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
|
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
|
2d09b01c55
|
fix
- TowerSelectItem 显示问题
- CombatSelectForm 不同分辨率的适配
|
2026-03-09 19:59:11 +08:00 |
|
SepComet
|
af20eeecfa
|
阶段 S3 - 收口出战合法性
|
2026-03-09 19:47:46 +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
|
c81bf97903
|
调整项目目录
|
2026-03-08 09:29:09 +08:00 |
|
SepComet
|
01750e1b83
|
Archive
|
2026-03-07 11:57:44 +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
|
1d7c5b80d9
|
refactor 1: 新增/重命名类定义
- 将资源服务类型从 CombatResourceManager 重命名为 CombatInRunResourceManager,并同步更新现有引用。
- CombatScheduler.cs:28
- CombatInRunResourceManager.cs:11
- CombatFinishFormState.cs:22
- 新增掉落解析骨架:
- EnemyDropResolveContext.cs:6
- EnemyDropResolveResult.cs:3
- EnemyDropResolver.cs:7
- 新增 phase end condition 骨架:
- IPhaseEndCondition.cs:5
- PhaseEndConditionContext.cs:5
- PhaseEndConditionFactory.cs:5
- 以及 4 个实现类:
- NonePhaseEndCondition
- TimeElapsedPhaseEndCondition
- EnemiesClearedPhaseEndCondition
- BossDeadPhaseEndCondition
|
2026-03-07 11:30:44 +08:00 |
|
SepComet
|
0ff04f02f4
|
拆分 CombatScheduler 状态机到独立文件
|
2026-03-07 11:21:07 +08:00 |
|
SepComet
|
34446ae42a
|
Update CombatNodeArchitecture.md
|
2026-03-06 21:02:40 +08:00 |
|
SepComet
|
8a478982f8
|
补充参战防御塔进入战斗逻辑
- 将 Inventory 中参战的防御塔数据传递到 CombatSelectForm 中
- 为防御塔的图标展示添加 TowerRepoItem 与 TowerIconArea 适配防御塔的三层 Image
|
2026-03-05 13:44:49 +08:00 |
|
SepComet
|
9db9aeabcd
|
重构
- 重构 `RepoItem`,统一点击事件
- 重构 `PlayerInventoryComponent`:
- `PlayerInventoryStateStore`:状态与库存写模型
- `PlayerInventoryTowerAssemblyService`:炮塔组装域
- `PlayerInventoryTowerRosterService`:编队/耐久域
- `InventoryParticipantUtility`/`InventoryCloneUtility`/`InventorySeedUtility`:通用工具类
|
2026-03-04 22:04:51 +08:00 |
|
SepComet
|
a62309e8c1
|
添加参战防御塔功能(UI)
|
2026-03-04 20:36:05 +08:00 |
|
SepComet
|
298345fa17
|
为 RepoItem 添加背景耐久变色
|
2026-03-04 19:17:13 +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
|
3e52a4df55
|
添加“奖励 3 选 1”UI
- RewardSelectForm:其中包括 3 个可选的 RewardItem ,刷新和放弃按钮
- 应用战斗节点基地生命产生的额外事件
|
2026-03-02 21:42:27 +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
|
344191a91c
|
修复旋转问题 + 防御塔范围可视化
- BasicBearingComp 和 ShooterBullet 的旋转由之前的 3D 方式调整为只旋转 Z 轴
- DefenseTowerController 通过 LineRenderer 添加了攻击范围可视化
|
2026-03-02 10:15:13 +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
|
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
|
bee7ae381e
|
add TestBoss.prefab
|
2026-02-28 16:02:02 +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
|
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 |
|