3.4 KiB
梦三战斗生命周期
资源所有权与退出顺序
梦三每场战斗拥有自己的会话、角色及相关资源。正常结算先停止玩法根事件并排空子事件,再提交结果,完成整角色技能和装备登记的释放,最后销毁角色及界面资源并返回地图或结局。释放失败保留已提交结果,不重复奖励,不盲目重放部分执行过的回调。
整角色退出的登记清点包括角色技能、隐藏技能、不可见技能、临时技能、附加技能、装备技能及已初始化的触发登记。释放仅针对当前退场角色,使用引擎的角色级卸载能力,保留其他角色的共享登记;不能以清空公共 lib.hook、删除 lib.skill 定义或修改全局 Player 原型实现。装备卸载要求的回调及子事件必须在角色节点销毁前完成。
Scenario: 装备登记完整释放
Acceptance: A1
装备八卦等技能只通过装备触发接口登记、没有出现在 player.skills 时,整角色退出仍移除该角色的相应 initedSkills 和触发条目。重复多场独立战斗退出后,不累积旧角色登记。
Scenario: 卸载回调完成与失败传播
Acceptance: A2
存在原生装备卸载回调时,退出流程执行并等待其子事件后才能销毁角色。回调失败时记录失败并向外层传播,不能报为成功;同一退出操作重试不会重新调用已执行的释放回调。
受保护技能和共享登记
fixed 和 superCharlotte 是需要识别的兼容标记,不删除定义上的标记。纯元数据标记可保留在退场对象上;具有触发器、mod、onremove 或标记资源回调等活动行为的技能在整角色退出时需要释放。局内移除单技能继续遵守保护边界。一个角色退出不应撤销仍由其他角色持有的共享全局技能。
Scenario: 保留既有兼容边界
Acceptance: A3
纯元数据 chaofeng_common 类标记不会阻止退出;活动受保护技能被释放且标记定义不变。局内单技能保护有效,其他角色持有的共享全局登记在退场角色卸载后仍有效。
战斗准备的异常边界
战斗准备使用梦三自己的内容边界捕获异常,保存原始错误并通知外部战斗协调者;不能仅依赖引擎对 root.start() 的拒绝。协调者结束等待后进入现有战斗异常提示及保留存档退出路径,停止继续开战。错误消息与原始栈、会话和准备阶段上下文通过现有梦三诊断系统记录。
Scenario: 引擎忽略异常仍结束等待
Acceptance: A4
准备抛错,在 ignore_error 开启或关闭时均将原始错误送达外部协调者、结束等待、走战斗异常退出路径;不开始后续战斗或奖励结算。正常内容边界不将成功准备误判为异常。
Scenario: 诊断与存档不变性
Acceptance: A5
准备失败留下可定位的梦三诊断错误记录;失败前已保存的征程仍有效,不写入新胜负结果或奖励。正常准备和正常结算仍按原先事务提交和奖励去重行为运行。
验证边界
Scenario: 可重复回归与独立验证
Acceptance: A6
关键装备登记和事件吞错回归使用本地原生引擎实现或可验证的原生接口接入,在项目中可重复执行。相关受保护技能、结算和诊断检查通过,由独立只读验证者核查六项验收。验证记录明确指出仅有源码和自动化回归证据,没有 PC/安卓整局实机证明。