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;