Commit Graph
43 Commits
Author SHA1 Message Date
basil 88ed35e757 重构清理敌人类 2026-09-15 11:07:01 +08:00
basil 421f8bf619 整理武器配置和重构 2026-09-15 10:13:58 +08:00
basil 17ee268416 清理各个 Component 里的判断以及调用规范 2026-09-14 18:35:02 +08:00
basil 5fbeec2476 清理目录 2026-09-14 17:32:56 +08:00
basil 9c54905f85 整理 ShopUseCase 的相关脚本 2026-09-14 17:30:04 +08:00
basil b628a8537c 迁移剩下的 UI 到 Serialization 方式 2026-09-14 17:19:31 +08:00
basil 091a29db63 引入 UISerializationRoot 和 Item
- 完成 MenuForm 和 SelectRoleForm 的迁移
2026-09-13 22:18:29 +08:00
basil e2fdb660ab 清理无用素材 2026-09-13 20:46:16 +08:00
basil 7dc529a840 调整部分数据表配置,优化 SpriteCache 功能 2026-09-13 20:36:21 +08:00
basil de53890de6 迁移数据表到 Luban,移除 JsonNet、EnumUtility 2026-09-13 14:08:14 +08:00
basil 4003b3aaba 阶段性打包 2026-09-12 21:49:10 +08:00
basil 4250e48e22 修复 GameStateBattle -> GameStateShop/LevelUp 时的敌人异常残留问题
用一个 _isStopped 布尔门替代 id 追踪:

- OnReset 开头置 _isStopped = true
- OnInit 置 _isStopped = false
- OnShowEntitySuccess:只要 _isStopped 为真且是 Enemy 组,立即 HideEntity
- SpawnEnemyAsync await 恢复后也补一道 _isStopped 检查(若 await 拿到了 enemy 且已停战,直接 hide 不注册)——双保险

为什么这样对:停战窗口(Shop/LevelUp)期间本就不该有任何敌人,所以"停战期间出生的敌人一律 hide"在语义上完全正确,且不受 await 同步抽空、id 复用、加载时序任何影响。
2026-06-26 13:53:36 +08:00
basil c111170bb0 清理项目目录并进行一次打包验证 2026-06-25 20:47:15 +08:00
basil cc8982b131 推进计时器逻辑的集中管理
- 将敌人的攻击计时任务放到基类中进行创建
- 将 EnemySpawnScheduler 敌人生成调度器的刷怪计时任务迁移到 TimerComponent
2026-06-23 20:42:24 +08:00
basil 846e4d6f44 将 Weapon 攻击冷却计时器 由 Weapon 内部维护迁移到 TimerModule 维护 2026-06-18 23:23:29 +08:00
basil 25f36d38c9 将 Enemy 攻击冷却计时器 由 Enemy 内部维护迁移到 TimerModule 维护 2026-06-18 23:09:44 +08:00
basil 0dc5889417 导入 TimerModule 计时器模块 2026-06-18 22:50:46 +08:00
basil fbc7e66491 Delete ObjectBase.meta 2026-06-18 22:39:32 +08:00
basil 000984c676 refactor(EnemyManager): 性能优化与并发安全修复
- EnemyRegistry: 移除List冗余存储, Register/Remove从O(n)→O(1)
- 增加PruneInvalidEntries显式清理接口, 消除TryGet副作用
- Remove增加不存在告警, 防重复减成负数
- 增加CTS取消飞行中的异步生成, 关卡切换时取消+重建
- ClearEnemies先快照再遍历, 防Hide回调修改集合抛异常
- entityId去掉取模复用, 直接自增保证唯一
- Enemy EntityGroup调优: Capacity→10000, ReleaseInterval→30, ExpireTime→120
2026-06-18 17:06:10 +08:00
basil 49c300a10e Update EnemyManagerComponent.cs 2026-06-18 15:59:06 +08:00
basil 38849f5019 从 EnemyManager 里拆分出敌人的生成 2026-06-18 15:40:00 +08:00
basil 921193f469 从 EnemyManager 里拆分出敌人的注册/管理/查询功能 2026-06-18 15:33:36 +08:00
basil b6a13b18fc 从 EnemyManager 中拆分刷怪位置策略接口 2026-06-18 15:25:04 +08:00
basil 43f81c8926 将 ShopController 构建 Context 的功能迁移到 partial class 里,并调整了部分构建逻辑 2026-06-17 11:57:46 +08:00
basil 44f6729c1a 重构:调整目录结构和文件所属目录 2026-06-17 10:07:23 +08:00
basil 5c3b87ab3f 重构:统一 UI 模块目录结构规范
- 事件命名规范化:RefreshEventArgs → LevelUpRefreshEventArgs
- LevelUp 子组件目录调整:LevelUpRewardItem + LevelUpRewardItemContext 移动到 LevelUp/
- Shop 子组件目录调整:DisplayItem/DisplayListArea/GoodsItem/ShopGoodsItem 及其 Context/RawData 全部移动到 Shop/
- 删除冗余文件:LevelUpRewardItemRawData(从未被使用)
- 新增 ObjectPool 目录结构
- 更新 LevelUpController 和 LevelUpForm 中的事件引用
2026-06-17 09:50:47 +08:00
basil c30b256d7a 重构:修复 Shop 与 ItemTooltip 跨模块事件边界问题
- 将 _tooltipLocked 状态从 ItemTooltipController 移到 ShopController 维护
- DisplayItem 只发 Shop 模块 UI 事件(Hover/Lock/Hide)
- ItemTooltipForm 取消按钮发 ItemTooltip 模块事件自关闭
- ShopController 通过 UIRouter 跨模块控制 ItemTooltipForm
- 移除 DisplayItemHideEventArgs 的 Force 字段,分离两种关闭场景
2026-06-17 09:37:44 +08:00
basil 2590f31250 将原来遗漏的脚本文件夹改名为正确的 DisplayItemInfo -> ItemTooltip 2026-06-16 22:59:08 +08:00
basil e5630f0896 扩充道具系统并统一图标命名规范
- 为 20 个道具赋予中文名称(铁护腕、狂战士药剂等)
- 移除数据表 IconAssetName 列,改为按 `类型_{id}_icon`
  的命名约定自动推导图标路径
- 清理旧图标资源(Almighty_Icon、172 系列)
- 同步更新各数据表 Excel 源文件
2026-06-16 17:09:20 +08:00
basil a2cd3ab7e7 扩充道具系统并统一图标命名规范
- 为 20 个道具赋予中文名称(铁护腕、狂战士药剂等)
- 移除数据表 IconAssetName 列,改为按 `类型_{id}_icon`
  的命名约定自动推导图标路径
- 清理旧图标资源(Almighty_Icon、172 系列)
- 同步更新各数据表 Excel 源文件
2026-06-10 17:26:59 +08:00
basil b79d482453 规范 UI 开发,ui-five-layer-architecture skill 2026-04-09 09:59:50 +08:00
basil 0a78c0bd94 引入 claude code 和 初始化 codex 2026-04-08 17:00:24 +08:00
basil a649d9fad2 update CodeX-TODO.md 2026-04-02 09:35:09 +08:00
basil 0a281a5b1f update P2-Job-System-+-Burst-落地.md 2026-04-02 08:32:37 +08:00
basil 0d7df18324 优化 WeaponLance 的攻击逻辑 2026-03-20 09:55:52 +08:00
basil 8d21d53c4d 添加武器长枪 + bug fix
- WeaponLance:Entity/Goods/Weapon 表,状态机
- Battle -> Shop/LevelUp:隐藏子弹
2026-03-19 17:53:24 +08:00
basil c5d113b35f 调整 convert.py 转换逻辑 + 规划后续开发 2026-03-17 13:21:49 +08:00
basil 59f1d02a18 测试修复安卓打包 2026-03-17 11:28:33 +08:00
basil 224db4cd5c 保留 Tick 作为唯一入口,但让 SimulationWorld 只做 orchestration
- Tick 仍然是唯一仿真入口。SimulationWorld 顶层现在只保留全局开关、bridge 服务和生命周期入口,原来散落在类上的大部分跨域状态已经从 SimulationWorld 收口到新的 SimulationWorld.RuntimeModules。
- 新的 runtime modules 把状态按域分成了 SimulationStateStore、JobDataRuntimeState、CollisionPipelineRuntimeState、TargetSelectionRuntimeState,并通过同名代理把现有 partial 的调用面基本保持不变。
- CollisionPipeline 和 target-selection 的配置也一起下沉到了运行时模块。为了避免现有反射型测试立刻失效,保留了 _collisionQueryInputs 和 _areaCollisionRequests 这两个顶层兼容字段。
2026-03-17 10:05:07 +08:00
basil 736a2a65bd 拆分 SimulationWorld.JobDataChannel
- 生命周期在 SimulationWorld.JobDataLifecycle
- 数据转换和输入输出缓冲准备在 SimulationWorld.JobDataConversion
- collision transient/runtime stats 在 SimulationWorld.CollisionTransient
- enemy separation temporal state 在 SimulationWorld.EnemySeparationTemporal
- output commit 在 SimulationWorld.JobOutputCommit
- SimulationWorld 的 partial 布局注释也同步到了 SimulationWorld
2026-03-17 09:32:08 +08:00
basil 2d822c02e6 拆分 CollisionPipeline
- 请求缓冲在 SimulationWorld.CollisionRequests
- broad-phase / Job 调度在 SimulationWorld.CollisionBroadPhase
- 主线程 resolve 在 SimulationWorld.CollisionResolve
- hit presentation dispatch 和实体/impact 解析在 SimulationWorld.CollisionPresentation
2026-03-17 09:21:11 +08:00
basil aa081bcc3c remove open spec skills 2026-03-17 08:58:56 +08:00
basil f809af4e15 调整 UI 防御性编程 2026-03-17 08:34:38 +08:00