From 585cf8fdb8482278f55fbdb3a60af4fb1408922f Mon Sep 17 00:00:00 2001 From: DevelopingTom Date: Sun, 20 Jul 2025 10:13:36 +0200 Subject: [PATCH] Fix dead players sending alliance requests (#1508) ## Description: Prevent unholly alliances with the undead. ## Please complete the following: - [x] I have added screenshots for all UI updates - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file - [x] I have added relevant tests to the test directory - [x] I confirm I have thoroughly tested these changes and take full responsibility for any bugs introduced - [x] I have read and accepted the CLA aggreement (only required once). ## Please put your Discord username so you can be contacted if a bug or regression is found: IngloriousTom --- src/core/game/PlayerImpl.ts | 2 +- tests/AllianceExtensionExecution.test.ts | 1 + tests/PlayerImpl.test.ts | 9 +++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/core/game/PlayerImpl.ts b/src/core/game/PlayerImpl.ts index 20222e5a3..2b891c59e 100644 --- a/src/core/game/PlayerImpl.ts +++ b/src/core/game/PlayerImpl.ts @@ -398,7 +398,7 @@ export class PlayerImpl implements Player { if (other === this) { return false; } - if (this.isFriendly(other)) { + if (this.isFriendly(other) || !this.isAlive()) { return false; } diff --git a/tests/AllianceExtensionExecution.test.ts b/tests/AllianceExtensionExecution.test.ts index 39289c0fe..98bd93af1 100644 --- a/tests/AllianceExtensionExecution.test.ts +++ b/tests/AllianceExtensionExecution.test.ts @@ -32,6 +32,7 @@ describe("AllianceExtensionExecution", () => { }); test("Successfully extends existing alliance", () => { + jest.spyOn(player1, "canSendAllianceRequest").mockReturnValue(true); game.addExecution(new AllianceRequestExecution(player1, player2.id())); game.executeNextTick(); game.executeNextTick(); diff --git a/tests/PlayerImpl.test.ts b/tests/PlayerImpl.test.ts index 24b02e735..7f47a1cd2 100644 --- a/tests/PlayerImpl.test.ts +++ b/tests/PlayerImpl.test.ts @@ -98,4 +98,13 @@ describe("PlayerImpl", () => { expect(ports.length).toBe(3); }); + + test("Can't send alliance requests when dead", () => { + // conquer other + const otherTiles = other.tiles(); + for (const tile of otherTiles) { + player.conquer(tile); + } + expect(other.canSendAllianceRequest(player)).toBe(false); + }); });