mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-06-25 08:24:36 +00:00
Incoming nuke event filter (#2092)
## Description: I have found most attack information to not be very useful, particularly during the late game when MIRVs are flying and cities and ports are being gained/lost by the hundreds. However, even in these circumstances I would still like to see incoming nuke messages. Attacks filtered out, incoming atom bomb message still appears: <img width="425" height="166" alt="Screenshot 2025-09-24 at 12 13 07 AM" src="https://github.com/user-attachments/assets/242f4552-4509-487a-8ac2-bdd7f9cd1d40" /> ## Please complete the following: - [x] I have added screenshots for all UI updates - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file - [ ] I have added relevant tests to the test directory - [ ] I confirm I have thoroughly tested these changes and take full responsibility for any bugs introduced ## Please put your Discord username so you can be contacted if a bug or regression is found: JohnnyBravo13
This commit is contained in:
@@ -5,6 +5,7 @@ import { unsafeHTML, UnsafeHTMLDirective } from "lit/directives/unsafe-html.js";
|
||||
import allianceIcon from "../../../../resources/images/AllianceIconWhite.svg";
|
||||
import chatIcon from "../../../../resources/images/ChatIconWhite.svg";
|
||||
import donateGoldIcon from "../../../../resources/images/DonateGoldIconWhite.svg";
|
||||
import nukeIcon from "../../../../resources/images/NukeIconWhite.svg";
|
||||
import swordIcon from "../../../../resources/images/SwordIconWhite.svg";
|
||||
import { EventBus } from "../../../core/EventBus";
|
||||
import {
|
||||
@@ -91,6 +92,7 @@ export class EventsDisplay extends LitElement implements Layer {
|
||||
private goldAmountTimeoutId: ReturnType<typeof setTimeout> | null = null;
|
||||
@state() private eventsFilters: Map<MessageCategory, boolean> = new Map([
|
||||
[MessageCategory.ATTACK, false],
|
||||
[MessageCategory.NUKE, false],
|
||||
[MessageCategory.TRADE, false],
|
||||
[MessageCategory.ALLIANCE, false],
|
||||
[MessageCategory.CHAT, false],
|
||||
@@ -947,6 +949,20 @@ export class EventsDisplay extends LitElement implements Layer {
|
||||
this.toggleEventFilter(MessageCategory.ATTACK),
|
||||
className: "cursor-pointer pointer-events-auto",
|
||||
})}
|
||||
${this.renderButton({
|
||||
content: html`<img
|
||||
src="${nukeIcon}"
|
||||
class="w-5 h-5"
|
||||
style="filter: ${this.eventsFilters.get(
|
||||
MessageCategory.NUKE,
|
||||
)
|
||||
? "grayscale(1) opacity(0.5)"
|
||||
: "none"}"
|
||||
/>`,
|
||||
onClick: () =>
|
||||
this.toggleEventFilter(MessageCategory.NUKE),
|
||||
className: "cursor-pointer pointer-events-auto",
|
||||
})}
|
||||
${this.renderButton({
|
||||
content: html`<img
|
||||
src="${donateGoldIcon}"
|
||||
|
||||
@@ -789,6 +789,7 @@ export enum MessageType {
|
||||
// Message categories used for filtering events in the EventsDisplay
|
||||
export enum MessageCategory {
|
||||
ATTACK = "ATTACK",
|
||||
NUKE = "NUKE",
|
||||
ALLIANCE = "ALLIANCE",
|
||||
TRADE = "TRADE",
|
||||
CHAT = "CHAT",
|
||||
@@ -800,9 +801,9 @@ export const MESSAGE_TYPE_CATEGORIES: Record<MessageType, MessageCategory> = {
|
||||
[MessageType.ATTACK_CANCELLED]: MessageCategory.ATTACK,
|
||||
[MessageType.ATTACK_REQUEST]: MessageCategory.ATTACK,
|
||||
[MessageType.CONQUERED_PLAYER]: MessageCategory.ATTACK,
|
||||
[MessageType.MIRV_INBOUND]: MessageCategory.ATTACK,
|
||||
[MessageType.NUKE_INBOUND]: MessageCategory.ATTACK,
|
||||
[MessageType.HYDROGEN_BOMB_INBOUND]: MessageCategory.ATTACK,
|
||||
[MessageType.MIRV_INBOUND]: MessageCategory.NUKE,
|
||||
[MessageType.NUKE_INBOUND]: MessageCategory.NUKE,
|
||||
[MessageType.HYDROGEN_BOMB_INBOUND]: MessageCategory.NUKE,
|
||||
[MessageType.NAVAL_INVASION_INBOUND]: MessageCategory.ATTACK,
|
||||
[MessageType.SAM_MISS]: MessageCategory.ATTACK,
|
||||
[MessageType.SAM_HIT]: MessageCategory.ATTACK,
|
||||
|
||||
Reference in New Issue
Block a user