diff --git a/assets/script/game/map/MissionCardComp.ts b/assets/script/game/map/MissionCardComp.ts index c2073014..2efedb37 100644 --- a/assets/script/game/map/MissionCardComp.ts +++ b/assets/script/game/map/MissionCardComp.ts @@ -441,12 +441,21 @@ export class MissionCardComp extends CCComp { } // 首次完成技能选取后 关闭guide2,打开guide3 + // 之前这里有个逻辑漏洞:玩家如果在弹出 guide2 之前就已经因为手快点掉了 guide2, + // smc.finish_guides 里就会有 2。 + // 但其实这里的本意是:只要发生了选取技能,并且 guide3 还没弹过,就弹 guide3。 + // 如果我们把它包在 `if (!smc.finish_guides.includes(2))` 里, + // 当玩家点击 guide2 把它关掉时(finish_guides 存入了 2), + // 再点技能卡触发这个方法,外层 if 就会进不去,guide3 就永远弹不出来了! + + // 修复:独立判断 guide2 的关闭 和 guide3 的开启 if (!smc.finish_guides.includes(2)) { smc.finish_guides.push(2); oops.gui.remove(UIID.Guide2); - if (!smc.finish_guides.includes(3)) { - oops.gui.open(UIID.Guide3); - } + } + + if (!smc.finish_guides.includes(3)) { + oops.gui.open(UIID.Guide3); } } @@ -500,9 +509,10 @@ export class MissionCardComp extends CCComp { if (!smc.finish_guides.includes(3)) { smc.finish_guides.push(3); oops.gui.remove(UIID.Guide3); - if (!smc.finish_guides.includes(4)) { - oops.gui.open(UIID.Guide4); - } + } + + if (!smc.finish_guides.includes(4)) { + oops.gui.open(UIID.Guide4); } }