fix(victoryComp): 修复小节胜利退出不保存进度的问题
调整小节胜利时的退出按钮逻辑,手动推进并保存关卡进度,避免玩家退出后进度丢失,同时不触发自动进入下一场战斗的流程。
This commit is contained in:
@@ -842,15 +842,26 @@ export class VictoryComp extends CCComp {
|
||||
|
||||
/**
|
||||
* 确认按钮点击(代码绑定,btns/btn):
|
||||
* - 小节胜利(section)→ 派发 NextSection 推进下一节(修复:之前直接 MissionEnd 导致关卡未推进)
|
||||
* - 小节胜利(section)→ 推进存档到下一节并保存 → 派发 MissionEnd → 关闭结算弹窗
|
||||
* - 末关通关(final) → 清理数据 → 派发 MissionEnd → 关闭结算弹窗
|
||||
* - 失败(defeat) → 清理数据 → 派发 MissionEnd → 关闭结算弹窗
|
||||
*
|
||||
* Why: 小节胜利点"退出"既要保存进度(避免下次重玩卡在原节),
|
||||
* 又不能像"下一节"按钮那样直接开战(玩家已选退出,不再继续本局战斗)。
|
||||
*/
|
||||
victory_end() {
|
||||
if (this.settleType === "section") {
|
||||
// 小节胜利:与"下一节"按钮行为一致,避免胜利后点退出直接结束关卡
|
||||
oops.message.dispatchEvent(GameEvent.NextSection);
|
||||
return;
|
||||
// 小节胜利:手动推进 section 到下一节并保存存档,避免点退出后进度丢失。
|
||||
// 注:MissionComp 的 NextSection 会进入战斗流程,这里不走该事件以避免自动开战。
|
||||
const cur = (smc.data.stage_progress ?? { chapter: 1, stage: 1, section: 1 }) as { chapter: number; stage: number; section: number };
|
||||
// 当前节已胜利,写入下一节作为待挑战存档;若已是末节(section=10),则不做 section 推进
|
||||
if (cur.section < 10) {
|
||||
smc.updateStageProgress({
|
||||
chapter: cur.chapter,
|
||||
stage: cur.stage,
|
||||
section: cur.section + 1,
|
||||
});
|
||||
}
|
||||
}
|
||||
this.clear_data()
|
||||
oops.message.dispatchEvent(GameEvent.MissionEnd)
|
||||
|
||||
Reference in New Issue
Block a user