From 462d9f02585e212d436b81e98ba850c0de4fafe7 Mon Sep 17 00:00:00 2001 From: internet-addict-xyz <168826172+internet-addict-xyz@users.noreply.github.com> Date: Tue, 3 Feb 2026 18:17:13 +0100 Subject: [PATCH 1/2] Fix event display: add per-category cap --- src/client/graphics/layers/EventsDisplay.ts | 30 ++++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/src/client/graphics/layers/EventsDisplay.ts b/src/client/graphics/layers/EventsDisplay.ts index db68fe987a..3ed245a073 100644 --- a/src/client/graphics/layers/EventsDisplay.ts +++ b/src/client/graphics/layers/EventsDisplay.ts @@ -245,10 +245,6 @@ export class EventsDisplay extends LitElement implements Layer { return shouldKeep; }); - if (remainingEvents.length > 30) { - remainingEvents = remainingEvents.slice(-30); - } - if (this.events.length !== remainingEvents.length) { this.events = remainingEvents; this.requestUpdate(); @@ -343,10 +339,30 @@ export class EventsDisplay extends LitElement implements Layer { } private addEvent(event: GameEvent) { - this.events = [...this.events, event]; - if (this._hidden === true) { - this.newEvents++; + const category = getMessageCategory(event.type); + const next = [...this.events, event]; + + // Count how many we have in this category + let count = 0; + for (const e of next) { + if (getMessageCategory(e.type) === category) { + count++; + } } + + // If cap is exeeded > Remove the oldest event of this category + if (count > 30) { + const idx = next.findIndex( + (e) => getMessageCategory(e.type) === category, + ); + if (idx !== -1) { + next.splice(idx, 1); + } + } + + this.events = next; + + if (this._hidden) this.newEvents++; this.requestUpdate(); } From 8f6d9c3d41915b51eb24d3067ba9445fe36b6d1e Mon Sep 17 00:00:00 2001 From: internet-addict-xyz <168826172+internet-addict-xyz@users.noreply.github.com> Date: Tue, 3 Feb 2026 18:15:23 +0100 Subject: [PATCH 2/2] Fix events display: use const for remainingEvents --- src/client/graphics/layers/EventsDisplay.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/graphics/layers/EventsDisplay.ts b/src/client/graphics/layers/EventsDisplay.ts index 3ed245a073..e2b7d0091a 100644 --- a/src/client/graphics/layers/EventsDisplay.ts +++ b/src/client/graphics/layers/EventsDisplay.ts @@ -235,7 +235,7 @@ export class EventsDisplay extends LitElement implements Layer { } } - let remainingEvents = this.events.filter((event) => { + const remainingEvents = this.events.filter((event) => { const shouldKeep = this.game.ticks() - event.createdAt < (event.duration ?? 600) && !event.shouldDelete?.(this.game);