diff --git a/src/client/graphics/layers/EventsDisplay.ts b/src/client/graphics/layers/EventsDisplay.ts index 55a37e677..ede2f7422 100644 --- a/src/client/graphics/layers/EventsDisplay.ts +++ b/src/client/graphics/layers/EventsDisplay.ts @@ -263,23 +263,31 @@ export class EventsDisplay extends LitElement implements Layer { onBrokeAllianceEvent(update: BrokeAllianceUpdate) { const myPlayer = this.game.playerByClientID(this.clientID); if (!myPlayer) return; - + const betrayed = this.game.playerBySmallID(update.betrayedID) as PlayerView; const traitor = this.game.playerBySmallID(update.traitorID) as PlayerView; - + if (!betrayed.isTraitor() && traitor === myPlayer) { const malusPercent = Math.round( (1 - this.game.config().traitorDefenseDebuff()) * 100, ); + const traitorDurationRaw = this.game.config().traitorDuration / 10; + const traitorDurationSeconds = Math.floor(traitorDurationRaw); + + const durationText = traitorDurationSeconds === 1 + ? '1 second' + : `${traitorDurationSeconds} seconds`; + this.addEvent({ - description: + description: `You broke your alliance with ${betrayed.name()}, making you a TRAITOR ` + - `(${malusPercent}% defense debuff for 30 seconds)`, + `(${malusPercent}% defense debuff for ${durationText})`, type: MessageType.ERROR, highlight: true, createdAt: this.game.ticks(), focusID: update.betrayedID, }); + } else if (betrayed === myPlayer) { this.addEvent({ description: `${traitor.name()} broke their alliance with you`, @@ -290,6 +298,9 @@ export class EventsDisplay extends LitElement implements Layer { }); } } + + + onAllianceExpiredEvent(update: AllianceExpiredUpdate) { const myPlayer = this.game.playerByClientID(this.clientID);