diff --git a/src/core/execution/RetreatExecution.ts b/src/core/execution/RetreatExecution.ts index fd341765d..bfb865aa0 100644 --- a/src/core/execution/RetreatExecution.ts +++ b/src/core/execution/RetreatExecution.ts @@ -1,13 +1,13 @@ import { Execution, Game, Player, PlayerID } from "../game/Game"; -const cancelDelay = 2; +const cancelDelay = 20; export class RetreatExecution implements Execution { private active = true; private retreatOrdered = false; private player: Player; - private executionDateInSecs = new Date().getTime() / 1000 + cancelDelay; - + private startTick: number; + private mg: Game; constructor( private playerID: PlayerID, private attackID: string, @@ -18,19 +18,19 @@ export class RetreatExecution implements Execution { console.warn(`RetreatExecution: player ${this.player.id()} not found`); return; } + this.mg = mg; this.player = mg.player(this.playerID); + this.startTick = mg.ticks(); } tick(ticks: number): void { - const nowInSecs = new Date().getTime() / 1000; - if (!this.retreatOrdered) { this.player.orderRetreat(this.attackID); this.retreatOrdered = true; } - if (nowInSecs >= this.executionDateInSecs) { + if (this.mg.ticks() >= this.startTick + cancelDelay) { this.player.executeRetreat(this.attackID); this.active = false; }