Files
OpenFrontIO/src/core/execution/alliance/AllianceRequestReplyExecution.ts
T
2025-02-01 12:05:11 -08:00

49 lines
1.5 KiB
TypeScript

import { consolex } from "../../Consolex";
import { AllianceRequest, Execution, Game, Player, PlayerID } from "../../game/Game";
export class AllianceRequestReplyExecution implements Execution {
private active = true
private mg: Game = null
private requestor: Player;
private recipient: Player
constructor(private requestorID: PlayerID, private recipientID: PlayerID, private accept: boolean) { }
init(mg: Game, ticks: number): void {
this.mg = mg
this.requestor = mg.player(this.requestorID)
this.recipient = mg.player(this.recipientID)
}
tick(ticks: number): void {
if (this.requestor.isAlliedWith(this.recipient)) {
consolex.warn('already allied')
} else {
const request = this.requestor.outgoingAllianceRequests().find(ar => ar.recipient() == this.recipient)
if (request == null) {
consolex.warn('no alliance request found')
} else {
if (this.accept) {
request.accept()
this.requestor.updateRelation(this.recipient, 100)
this.recipient.updateRelation(this.requestor, 100)
} else {
request.reject()
}
}
}
this.active = false
}
owner(): Player {
return null
}
isActive(): boolean {
return this.active
}
activeDuringSpawnPhase(): boolean {
return false
}
}