# 爆炸射线武器测试说明 ## 已实现的功能 ### 1. 核心功能 - ✅ 继承自原版 Verb_ShootBeam 的所有功能 - ✅ 可配置的爆炸触发间隔 - ✅ 可配置的爆炸伤害、范围、类型 - ✅ 可配置的音效和特效 - ✅ 可配置的爆炸后效果(生成物品、气体等) ### 2. 配置选项 - `enableExplosion`: 爆炸开关 - `explosionShotInterval`: 爆炸间隔(每x发触发一次) - `explosionRadius`: 爆炸半径 - `explosionDamageDef`: 爆炸伤害类型 - `explosionDamage`: 爆炸伤害值 - `explosionSound`: 爆炸音效 - `chanceToStartFire`: 点燃概率 - `postExplosionSpawnThingDef`: 爆炸后生成物品 ### 3. 示例武器 已创建三个示例武器: 1. **CLa-15"蓝爆"轻型**: 每发都爆炸,火焰伤害 2. **CLa-16"蓝爆"重型**: 每3发爆炸,炸弹伤害+燃料污渍 3. **CLa-17"蓝毒"**: 每2发爆炸,毒气伤害+毒气云 ## 测试步骤 ### 1. 编译测试 ```bash dotnet build "Source\WulaFallenEmpire\WulaFallenEmpire.csproj" ``` ✅ 编译成功 ### 2. 游戏内测试准备 1. 启动RimWorld 2. 启用开发者模式 (Options -> Dev mode) 3. 加载包含此模组的存档或创建新游戏 4. 按 `~` 键打开开发者控制台 ### 3. 生成测试武器 使用以下命令生成测试武器: ``` Thing.Spawn WULA_RW_Fractal_AR 1 Thing.Spawn WULA_LightExplosiveBeam 1 Thing.Spawn WULA_HeavyExplosiveBeam 1 Thing.Spawn WULA_ToxicExplosiveBeam 1 ``` ### 4. 功能验证清单 #### 基础射线功能 - [ ] 射线正常发射和显示 - [ ] 射线宽度和颜色正确 - [ ] 射线伤害正常造成 - [ ] 音效和视觉效果正常 #### 爆炸功能 - [ ] 爆炸按配置间隔触发 - [ ] 爆炸位置在射线命中点 - [ ] 爆炸半径和伤害正确 - [ ] 爆炸音效正常播放 - [ ] 爆炸视觉效果正常 #### 特殊效果 - [ ] 点燃效果正常工作 - [ ] 爆炸后生成物品(燃料污渍等) - [ ] 毒气云正常生成和扩散 - [ ] 护甲穿透计算正确 ### 5. 性能测试 - [ ] 连续射击时帧率稳定 - [ ] 多个单位同时使用时无卡顿 - [ ] 内存使用正常,无内存泄漏 ### 6. 平衡性测试 - [ ] 武器伤害与成本匹配 - [ ] 爆炸威力不会过于强大 - [ ] AI正确使用武器 - [ ] 友伤风险合理 ## 测试场景 ### 场景1:单目标测试 1. 生成一个敌对的人形目标 2. 装备测试武器 3. 射击并观察: - 射线效果 - 爆炸触发时机 - 伤害数值 - 特殊效果 ### 场景2:群体目标测试 1. 生成多个敌对目标(5-10个) 2. 测试爆炸范围伤害 3. 观察连锁效果(点燃、毒气扩散等) ### 场景3:建筑物测试 1. 建造一些墙壁和家具 2. 测试爆炸对建筑物的影响 3. 验证射线穿透和爆炸破坏 ### 场景4:友军测试 1. 在友军附近使用武器 2. 验证友伤机制 3. 测试AI的使用策略 ## 常见问题排查 ### 问题1:爆炸不触发 - 检查 `enableExplosion` 是否为 true - 检查 `explosionShotInterval` 设置 - 确认射击确实命中目标 ### 问题2:爆炸位置错误 - 检查射线的 `InterpolatedPosition` 计算 - 确认目标位置在地图范围内 ### 问题3:音效不播放 - 检查 `explosionSound` 定义是否正确 - 确认音效文件存在 ### 问题4:特效不显示 - 检查 `explosionEffecter` 定义 - 确认特效资源文件存在 ## 调试工具 ### 开发者命令 ``` # 生成特定武器 Thing.Spawn [武器DefName] [数量] # 生成敌对目标 Pawn.Spawn Raider 5 # 治疗所有伤害 Heal.All # 清除所有火焰 Fire.Clear ``` ### 日志监控 监控游戏日志文件中的错误信息: - `Player.log` (Windows) - 搜索 "WulaFallenEmpire" 相关错误 ## 报告问题 如果发现问题,请记录: 1. 具体的复现步骤 2. 预期行为 vs 实际行为 3. 相关的日志错误信息 4. 游戏版本和模组版本 5. 其他加载的模组列表