From 9abd571f43b8bacb33b18020c9b573740d172967 Mon Sep 17 00:00:00 2001 From: lanterngamescn Date: Thu, 25 Jun 2026 23:49:47 +0800 Subject: [PATCH] =?UTF-8?q?M5:=20=E6=98=BE=E5=BC=8F=E5=8C=96=E5=AF=BC?= =?UTF-8?q?=E8=88=AA=E6=8B=93=E6=89=91=E7=BA=A6=E6=9D=9F=EF=BC=88=E6=97=A0?= =?UTF-8?q?=E5=AD=90=E6=B8=B8=E6=88=8F=E2=86=92=E5=AD=90=E6=B8=B8=E6=88=8F?= =?UTF-8?q?=EF=BC=8C=E9=A1=BB=E7=BB=8F=E5=A4=A7=E5=8E=85=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 确认当前实现已符合用户拓扑:大厅常驻不销毁、子游戏临时销毁、仅 大厅↔子游戏、 子游戏换子游戏须 backgameData 回大厅再 SwitchOverGameData 进新子游戏。 - switchGame 守卫拆分:已在子游戏中(subgameUrl!='')时忽略 SwitchOverGameData 并告警日志 (此前静默忽略);注释说明拓扑约束与正确流程。无功能变更,仅可观测性。 Co-Authored-By: Claude Opus 4.8 (1M context) --- entry/src/main/ets/pages/BridgeGameContainer.ets | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/entry/src/main/ets/pages/BridgeGameContainer.ets b/entry/src/main/ets/pages/BridgeGameContainer.ets index 87a637d..d59bdbc 100644 --- a/entry/src/main/ets/pages/BridgeGameContainer.ets +++ b/entry/src/main/ets/pages/BridgeGameContainer.ets @@ -114,7 +114,13 @@ export struct BridgeGameContainer { /** 路径 A:大厅 → 子游戏(大厅去激活并保活,创建子游戏 Web)。 */ private switchGame(p?: EventPayload): void { - if (p === undefined || this.subgameUrl !== '') { + if (p === undefined) { + return; + } + // 拓扑约束:仅 大厅↔子游戏,无 子游戏→子游戏。已在子游戏中时忽略—— + // 游戏逻辑须先 backgameData 回大厅、再由大厅发 SwitchOverGameData 进新子游戏。 + if (this.subgameUrl !== '') { + Logger.tag('BridgeGameContainer').w('SwitchOverGameData ignored: already in subgame (route via lobby)'); return; } const d = p as SwitchGamePayload;