From 8f8bf5c3d7253802aea7a94f2f341e360516146f Mon Sep 17 00:00:00 2001 From: evanpelle Date: Thu, 23 Jan 2025 11:15:51 -0800 Subject: [PATCH] Combine AllianceRequest & MutableAllianceRequest --- src/core/game/AllianceRequestImpl.ts | 4 ++-- src/core/game/Game.ts | 13 ++++--------- src/core/game/GameImpl.ts | 4 ++-- src/core/game/PlayerImpl.ts | 8 ++++---- 4 files changed, 12 insertions(+), 17 deletions(-) diff --git a/src/core/game/AllianceRequestImpl.ts b/src/core/game/AllianceRequestImpl.ts index 51a4b8cac..fab5b11d6 100644 --- a/src/core/game/AllianceRequestImpl.ts +++ b/src/core/game/AllianceRequestImpl.ts @@ -1,8 +1,8 @@ -import { AllianceRequestUpdate, GameUpdateType, MutableAllianceRequest, Player, Tick } from "./Game"; +import { AllianceRequestUpdate, GameUpdateType, AllianceRequest, Player, Tick } from "./Game"; import { GameImpl } from "./GameImpl"; -export class AllianceRequestImpl implements MutableAllianceRequest { +export class AllianceRequestImpl implements AllianceRequest { constructor(private requestor_: Player, private recipient_: Player, private tickCreated: number, private game: GameImpl) { } diff --git a/src/core/game/Game.ts b/src/core/game/Game.ts index e54d50a5e..a30533028 100644 --- a/src/core/game/Game.ts +++ b/src/core/game/Game.ts @@ -134,16 +134,11 @@ export interface Execution extends ExecutionView { } export interface AllianceRequest { - requestor(): Player - recipient(): Player - createdAt(): Tick -} - -export interface MutableAllianceRequest extends AllianceRequest { accept(): void reject(): void requestor(): Player recipient(): Player + createdAt(): Tick } export interface Alliance { @@ -264,15 +259,15 @@ export interface Player { decayRelations(): void // Alliances - incomingAllianceRequests(): MutableAllianceRequest[] - outgoingAllianceRequests(): MutableAllianceRequest[] + incomingAllianceRequests(): AllianceRequest[] + outgoingAllianceRequests(): AllianceRequest[] alliances(): MutableAlliance[] allies(): Player[] isAlliedWith(other: Player): boolean allianceWith(other: Player): MutableAlliance | null recentOrPendingAllianceRequestWith(other: Player): boolean breakAlliance(alliance: Alliance): void - createAllianceRequest(recipient: Player): MutableAllianceRequest + createAllianceRequest(recipient: Player): AllianceRequest // Targeting canTarget(other: Player): boolean diff --git a/src/core/game/GameImpl.ts b/src/core/game/GameImpl.ts index 5dc9a706d..2a192c14b 100644 --- a/src/core/game/GameImpl.ts +++ b/src/core/game/GameImpl.ts @@ -1,5 +1,5 @@ import { Config } from "../configuration/Config"; -import { Cell, Execution, Game, PlayerID, PlayerInfo, Player, TerraNullius, Unit, MutableAllianceRequest, Alliance, Nation, UnitType, UnitInfo, DefenseBonus, GameUpdate, GameUpdateType, AllPlayers, GameUpdates, TerrainType, EmojiMessage } from "./Game"; +import { Cell, Execution, Game, PlayerID, PlayerInfo, Player, TerraNullius, Unit, AllianceRequest, Alliance, Nation, UnitType, UnitInfo, DefenseBonus, GameUpdate, GameUpdateType, AllPlayers, GameUpdates, TerrainType, EmojiMessage } from "./Game"; import { NationMap } from "./TerrainMapLoader"; import { PlayerImpl } from "./PlayerImpl"; import { TerraNulliusImpl } from "./TerraNulliusImpl"; @@ -120,7 +120,7 @@ export class GameImpl implements Game { return this.nations_ } - createAllianceRequest(requestor: Player, recipient: Player): MutableAllianceRequest { + createAllianceRequest(requestor: Player, recipient: Player): AllianceRequest { if (requestor.isAlliedWith(recipient)) { consolex.log('cannot request alliance, already allied') return diff --git a/src/core/game/PlayerImpl.ts b/src/core/game/PlayerImpl.ts index 406160dfc..a96fb03a1 100644 --- a/src/core/game/PlayerImpl.ts +++ b/src/core/game/PlayerImpl.ts @@ -1,4 +1,4 @@ -import { Player, PlayerInfo, PlayerID, PlayerType, TerraNullius, Cell, Execution, AllianceRequest, MutableAllianceRequest, MutableAlliance, Alliance, Tick, AllPlayers, Gold, UnitType, Unit, Relation, PlayerUpdate, GameUpdateType, EmojiMessage } from "./Game"; +import { Player, PlayerInfo, PlayerID, PlayerType, TerraNullius, Cell, Execution, AllianceRequest, MutableAlliance, Alliance, Tick, AllPlayers, Gold, UnitType, Unit, Relation, PlayerUpdate, GameUpdateType, EmojiMessage } from "./Game"; import { ClientID } from "../Schemas"; import { assertNever, closestOceanShoreFromPlayer, distSortUnit, simpleHash, sourceDstOceanShore, within } from "../Util"; import { CellString, GameImpl } from "./GameImpl"; @@ -168,11 +168,11 @@ export class PlayerImpl implements Player { return this.mg.executions().filter(exec => exec.owner().id() == this.id()); } - incomingAllianceRequests(): MutableAllianceRequest[] { + incomingAllianceRequests(): AllianceRequest[] { return this.mg.allianceRequests.filter(ar => ar.recipient() == this) } - outgoingAllianceRequests(): MutableAllianceRequest[] { + outgoingAllianceRequests(): AllianceRequest[] { return this.mg.allianceRequests.filter(ar => ar.requestor() == this) } @@ -227,7 +227,7 @@ export class PlayerImpl implements Player { return this.isTraitor_ } - createAllianceRequest(recipient: Player): MutableAllianceRequest { + createAllianceRequest(recipient: Player): AllianceRequest { if (this.isAlliedWith(recipient)) { throw new Error(`cannot create alliance request, already allies`) }