Files
OpenFrontIO/src/core/game/AllianceRequestImpl.ts
T
2025-03-31 13:09:27 -07:00

41 lines
915 B
TypeScript

import { AllianceRequest, Player, Tick } from "./Game";
import { GameImpl } from "./GameImpl";
import { AllianceRequestUpdate, GameUpdateType } from "./GameUpdates";
export class AllianceRequestImpl implements AllianceRequest {
constructor(
private requestor_: Player,
private recipient_: Player,
private tickCreated: number,
private game: GameImpl,
) {}
requestor(): Player {
return this.requestor_;
}
recipient(): Player {
return this.recipient_;
}
createdAt(): Tick {
return this.tickCreated;
}
accept(): void {
this.game.acceptAllianceRequest(this);
}
reject(): void {
this.game.rejectAllianceRequest(this);
}
toUpdate(): AllianceRequestUpdate {
return {
type: GameUpdateType.AllianceRequest,
requestorID: this.requestor_.smallID(),
recipientID: this.recipient_.smallID(),
createdAt: this.tickCreated,
};
}
}