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); + }); });