diff --git a/src/client/graphics/layers/EventsDisplay.ts b/src/client/graphics/layers/EventsDisplay.ts index d2e857a86..4d5fefa5f 100644 --- a/src/client/graphics/layers/EventsDisplay.ts +++ b/src/client/graphics/layers/EventsDisplay.ts @@ -241,7 +241,7 @@ export class EventsDisplay extends LitElement implements Layer { private checkForAllianceExpirations() { const myPlayer = this.game.myPlayer(); - if (!myPlayer) return; + if (!myPlayer?.isAlive()) return; for (const alliance of myPlayer.alliances()) { if ( @@ -262,6 +262,7 @@ export class EventsDisplay extends LitElement implements Layer { this.alliancesCheckedAt.set(alliance.id, this.game.ticks()); const other = this.game.player(alliance.other) as PlayerView; + if (!other.isAlive()) continue; this.addEvent({ description: translateText("events_display.about_to_expire", { diff --git a/src/core/execution/alliance/AllianceExtensionExecution.ts b/src/core/execution/alliance/AllianceExtensionExecution.ts index e43693f89..e0cb14d4d 100644 --- a/src/core/execution/alliance/AllianceExtensionExecution.ts +++ b/src/core/execution/alliance/AllianceExtensionExecution.ts @@ -20,6 +20,14 @@ export class AllianceExtensionExecution implements Execution { return; } const to = mg.player(this.toID); + + if (!this.from.isAlive() || !to.isAlive()) { + console.info( + `[AllianceExtensionExecution] Player ${this.from.id()} or ${this.toID} is not alive`, + ); + return; + } + const alliance = this.from.allianceWith(to); if (!alliance) { console.warn( @@ -35,12 +43,12 @@ export class AllianceExtensionExecution implements Execution { alliance.extend(); mg.displayMessage( - "alliance.renewed", + "events_display.alliance_renewed", MessageType.ALLIANCE_ACCEPTED, this.from.id(), ); mg.displayMessage( - "alliance.renewed", + "events_display.alliance_renewed", MessageType.ALLIANCE_ACCEPTED, this.toID, );