From 0729c8d18a5290c3ac3304e9f2e9899592d1f7a1 Mon Sep 17 00:00:00 2001 From: NewHappyRabbit Date: Fri, 21 Feb 2025 14:38:13 +0200 Subject: [PATCH] Fix: Mobile users cant spawn --- src/client/graphics/layers/RadialMenu.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/client/graphics/layers/RadialMenu.ts b/src/client/graphics/layers/RadialMenu.ts index 9d963703b..625b5f1d1 100644 --- a/src/client/graphics/layers/RadialMenu.ts +++ b/src/client/graphics/layers/RadialMenu.ts @@ -54,6 +54,7 @@ enum Slot { export class RadialMenu implements Layer { private clickedCell: Cell | null = null; + private lastClosed: number = 0; private menuElement: d3.Selection; private isVisible: boolean = false; @@ -277,6 +278,7 @@ export class RadialMenu implements Layer { } private onContextMenu(event: ContextMenuEvent) { + if (this.lastClosed + 200 > new Date().getTime()) return; if (this.buildMenu.isVisible) { this.buildMenu.hideMenu(); return; @@ -284,6 +286,8 @@ export class RadialMenu implements Layer { if (this.isVisible) { this.hideRadialMenu(); return; + } else { + this.showRadialMenu(event.x, event.y); } this.enableCenterButton(false); for (const item of this.menuItems.values()) { @@ -314,13 +318,12 @@ export class RadialMenu implements Layer { consolex.warn("my player not found"); return; } - if (!myPlayer.isAlive()) { - return; + if (myPlayer && !myPlayer.isAlive() && !this.g.inSpawnPhase()) { + return this.hideRadialMenu(); } myPlayer.actions(tile).then((actions) => { this.handlePlayerActions(myPlayer, actions, tile); }); - this.showRadialMenu(event.x, event.y); } private handlePlayerActions( @@ -381,6 +384,7 @@ export class RadialMenu implements Layer { this.menuElement.style("display", "none"); this.isVisible = false; this.playerInfoOverlay.hide(); + this.lastClosed = new Date().getTime(); } private handleCenterButtonClick() {