diff --git a/src/core/game/GameUpdates.ts b/src/core/game/GameUpdates.ts index 54fae1b1e..f117e210a 100644 --- a/src/core/game/GameUpdates.ts +++ b/src/core/game/GameUpdates.ts @@ -169,6 +169,7 @@ export interface PlayerUpdate { alliances: AllianceView[]; hasSpawned: boolean; betrayals?: bigint; + lastDeleteUnitTick: Tick; } export interface AllianceView { diff --git a/src/core/game/GameView.ts b/src/core/game/GameView.ts index c15887a86..d6ed3730d 100644 --- a/src/core/game/GameView.ts +++ b/src/core/game/GameView.ts @@ -426,8 +426,15 @@ export class PlayerView { return this.data.isDisconnected; } + lastDeleteUnitTick(): Tick { + return this.data.lastDeleteUnitTick; + } + canDeleteUnit(): boolean { - return true; + return ( + this.game.ticks() + 1 - this.lastDeleteUnitTick() >= + this.game.config().deleteUnitCooldown() + ); } } diff --git a/src/core/game/PlayerImpl.ts b/src/core/game/PlayerImpl.ts index d2287d886..d9ba8ba7c 100644 --- a/src/core/game/PlayerImpl.ts +++ b/src/core/game/PlayerImpl.ts @@ -174,6 +174,7 @@ export class PlayerImpl implements Player { ), hasSpawned: this.hasSpawned(), betrayals: stats?.betrayals, + lastDeleteUnitTick: this.lastDeleteUnitTick, }; }