# PVE/关卡战斗 ## 分类 - 项目功能 ## 目的 记录 PVE 关卡进入、战斗流程、胜负结算、波次和奖励逻辑。 ## 已知线索 - 逻辑路径:`Assets/Game/GameHFScripte/GameFunction/Logic/GameScenes/` - 地图路径:`Assets/Game/GameHFScripte/GameFunction/Logic/MapManager/` - 伤害路径:`Assets/Game/GameHFScripte/GameFunction/Logic/DamageManager/` - 地图资源:`Assets/Game/GameHFResource/CN/Map/` - 网络消息线索:`BattleLevelEnter`、`BattleLevelExit`、`BattleLevelWin`、`BattleLevelFail` - 配置线索:`XLSX_SRC/CN/Wave.xlsx` ## 已确认内容 当前 PVE/关卡战斗处于“有核心框架和协议线索,但主流程接入不完整或待确认”的状态。 已确认的子系统: - `HFWaveManager`:从 `HFFunCatalogue.NDB.ds_WaveD0D9AA20TableData.ReadTableList()` 读取波次配置。 - `WaveInfo`:根据 `WaveTime`、`WaveID`、`WaveHpInc`、`GateFirst` 生成波次信息。 - `CreateMonsterInfo`:解析 `start_end_delay_monsterId_count` 格式的发怪配置。 - `HFMapManager.CreateMap(levelid, finish)`:当前会先 `ClearMap()`,再通过 `HFFunCatalogue.Asset.LoadAsset(1501, ...)` 加载地图 prefab。 - `HFDamageManager`:存在伤害计算、掉落、死亡事件、HUD 飘字逻辑,但大部分实现当前被注释。 - 网络协议和事件已生成:`BattleLevelEnter`、`BattleLevelExit`、`BattleLevelWin`、`BattleLevelFail`。 `HFWaveManager` 当前有 Editor GUI 调试入口: ```text OnRunGUI -> 按钮“游戏开始” -> InitCampWaveInfo(Red/Blue) -> TryCreateMonster ``` `OnRunFixedUpdate` 每秒尝试发怪: ```text OnRunFixedUpdate -> TryCreateMonster -> CampWaveInfo.TryCreateMonster -> WaveInfo.TryCreateMonster -> CreateMonsterInfo.TryCreateMonster ``` ## 梳理任务 - [ ] 找到 PVE 入口:从主界面、地图或 GM 进入关卡的调用点。 - [ ] 梳理关卡状态:进入、战斗中、胜利、失败、退出。 - [x] 梳理波次配置和怪物/实体生成关系。 - [x] 梳理伤害计算和实体框架之间的关系。 - [ ] 梳理结算奖励如何进入背包和奖励展示。 - [x] 梳理 PVE 相关网络消息和事件。 ## 待确认 - 是否有明确的 PVE manager。 - 战斗是纯本地模拟、服务器校验,还是服务器主导。 - `GameScenes`、`MapManager`、`LineManager` 在 PVE 中的边界。 - `HFMapManager.CreateMap` 的 `levelid` 当前未用于读表,资源 id 固定为 `1501`,是否临时逻辑待确认。 - `HFWaveManager` 是否只通过 Editor GUI 调试启动,还是存在运行时入口待确认。 - `HFDamageManager` 大量逻辑被注释,当前战斗伤害是否启用待确认。 ## 相关框架 - [实体框架](../../../modules/frameworks/实体系统/README.md) - [场景框架](../../../modules/frameworks/场景系统.md) - [网络框架](../../../modules/frameworks/网络系统.md) - [事件框架](../../../modules/frameworks/事件系统/README.md) - [数据/配置框架](../../../modules/frameworks/数据配置框架.md) --- ## 文档关联 > 当本文档发生变更时,应同步检查以下关联文档,避免信息不一致。 | 文档 | 关联原因 | |---|---| | [modules/模块索引.md](../../../modules/模块索引.md) | 模块索引是项目知识总入口 | | [modules/frameworks/数据配置框架.md](../../../modules/frameworks/数据配置框架.md) | 数据/配置框架 | | [modules/frameworks/实体系统/README.md](../../../modules/frameworks/实体系统/README.md) | 实体框架 | | [modules/frameworks/事件系统/README.md](../../../modules/frameworks/事件系统/README.md) | 事件框架 | | [modules/frameworks/网络系统.md](../../../modules/frameworks/网络系统.md) | 网络框架 | | [modules/frameworks/场景系统.md](../../../modules/frameworks/场景系统.md) | 场景框架 | | [rules/10-架构说明.md](../../../rules/10-架构说明.md) | 架构说明定义总体分层和依赖方向 | | [rules/30-模块登记规则.md](../../../rules/30-模块登记规则.md) | 模块登记规则定义分类和状态口径 | | TODO:补充依赖的框架/模块文档 | 如 UI、网络、事件、配置等框架 |