3.0 KiB
3.0 KiB
修复乌拉能量喂食系统需求文档
介绍
乌拉堕落帝国模组中的能量喂食系统存在严重问题。当乌拉族进入关机状态需要能量补充时,自定义的 WULA_IngestEnergy JobDriver 出现了任务循环、物品转移错误和错误执行者等问题。本文档定义了修复这些问题的需求。
需求
需求 1:修复任务重复创建问题
用户故事: 作为玩家,我希望当乌拉族需要能量补充时,只有一个殖民者执行喂食任务,而不是多个殖民者同时尝试执行相同任务。
验收标准
- 当乌拉族进入关机状态时,系统应该只创建一个
WULA_IngestEnergy任务 - 当一个殖民者已经预留了能量核心时,其他殖民者不应该创建相同的任务
- 当任务失败时,系统应该正确清理预留状态,允许其他殖民者重新尝试
- 系统不应该在单个tick内创建多个相同的任务
需求 2:修复物品转移逻辑
用户故事: 作为玩家,我希望殖民者能够正确地拾取和转移能量核心,而不会出现"物品不存在"的错误。
验收标准
- 当殖民者执行
WULA_IngestEnergy任务时,应该能够成功拾取目标能量核心 - 当能量核心被其他殖民者拾取或消耗时,当前任务应该正确失败并清理状态
- 当能量核心不存在或无法访问时,任务应该立即失败而不是进入循环
- 物品转移应该使用正确的 Toil 方法,确保物品状态一致性
需求 3:确保正确的任务执行者和目标
用户故事: 作为玩家,我希望殖民者将能量核心喂给需要能量的乌拉族,而不是自己消耗能量核心。
验收标准
- 当执行
WULA_IngestEnergy任务时,殖民者应该将能量核心给予目标乌拉族 - 能量应该补充到目标乌拉族的
Need_WulaEnergy中,而不是执行者的需求 - 只有目标乌拉族应该从关机状态中恢复,执行者不应该受到影响
- 任务完成后,能量核心应该被正确消耗,目标乌拉族应该获得能量
需求 4:改进任务验证和错误处理
用户故事: 作为玩家,我希望当能量喂食任务遇到问题时,系统能够优雅地处理错误,而不是进入无限循环。
验收标准
- 当目标乌拉族不再需要能量时,任务应该自动取消
- 当能量核心不可用时,任务应该失败并提供适当的错误信息
- 当执行者无法到达目标时,任务应该超时失败
- 系统应该记录详细的调试信息以便问题诊断
需求 5:优化 WorkGiver 逻辑
用户故事: 作为玩家,我希望系统能够智能地分配能量喂食任务,避免资源冲突和重复工作。
验收标准
- WorkGiver 应该检查目标能量核心是否已被其他任务预留
- WorkGiver 应该验证执行者能够到达目标乌拉族和能量核心
- WorkGiver 应该优先选择距离最近的可用能量核心
- WorkGiver 应该正确处理囚犯和殖民者的不同喂食逻辑