From 9b85651ad8fdd06978fdbdc7d345d0bafd6f925f Mon Sep 17 00:00:00 2001 From: NewHappyRabbit <31893343+NewHappyRabbit@users.noreply.github.com> Date: Sat, 1 Mar 2025 14:11:33 +0200 Subject: [PATCH] Fixed dark mode class being added in different places (body and html elements). Fixed flag "None" (xx.svg) being able to be set and used ingame. All menu modals will now close if you click outside of them. Fixed info icon in instructions. Added an icon to show the number of new events that happened while the events panel is hidden. Removed opacity from the svg icons files and added it to the player-icons div, making them have the same opacity and being more visible. --- resources/images/AllianceIcon.svg | 16 ++++++------- resources/images/CrownIcon.svg | 4 ++-- resources/images/InfoIcon.svg | 19 ++------------- resources/images/TraitorIcon.svg | 2 +- src/client/FlagInput.ts | 17 ++++++++------ src/client/HelpModal.ts | 10 +++++++- src/client/HostLobbyModal.ts | 5 ++++ src/client/JoinPrivateLobbyModal.ts | 5 ++++ src/client/Main.ts | 4 ++-- src/client/SinglePlayerModal.ts | 5 ++++ src/client/components/ModalOverlay.ts | 26 +++++++++++++++++++++ src/client/graphics/layers/EventsDisplay.ts | 22 +++++++++++++++-- src/client/graphics/layers/NameLayer.ts | 1 + src/client/index.html | 2 +- src/core/game/UserSettings.ts | 6 ++++- 15 files changed, 102 insertions(+), 42 deletions(-) create mode 100644 src/client/components/ModalOverlay.ts diff --git a/resources/images/AllianceIcon.svg b/resources/images/AllianceIcon.svg index dc89b412b..6920f6422 100644 --- a/resources/images/AllianceIcon.svg +++ b/resources/images/AllianceIcon.svg @@ -1,12 +1,12 @@ - - - - - - - - + + + + + + + + diff --git a/resources/images/CrownIcon.svg b/resources/images/CrownIcon.svg index 1d1f5b4c0..fb60f892f 100644 --- a/resources/images/CrownIcon.svg +++ b/resources/images/CrownIcon.svg @@ -1,6 +1,6 @@ - - + + diff --git a/resources/images/InfoIcon.svg b/resources/images/InfoIcon.svg index e69ee3c0f..ff1e8337e 100644 --- a/resources/images/InfoIcon.svg +++ b/resources/images/InfoIcon.svg @@ -1,6 +1,6 @@ - Created by Kevin White - from the Noun Project + - + diff --git a/src/client/FlagInput.ts b/src/client/FlagInput.ts index b733cf6ca..0bdcb0b7e 100644 --- a/src/client/FlagInput.ts +++ b/src/client/FlagInput.ts @@ -1,8 +1,7 @@ import { LitElement, html, css } from "lit"; import { customElement, property, state } from "lit/decorators.js"; import Countries from "./data/countries.json"; -import { UserSettings } from "../core/game/UserSettings"; - +import { ModalOverlay } from "./components/ModalOverlay"; const flagKey: string = "flag"; @customElement("flag-input") @@ -10,7 +9,6 @@ export class FlagInput extends LitElement { @state() private flag: string = ""; @state() private search: string = ""; @state() private showModal: boolean = false; - private userSettings: UserSettings = new UserSettings(); static styles = css` @media (max-width: 768px) { @@ -29,11 +27,10 @@ export class FlagInput extends LitElement { } private setFlag(flag: string) { - if (flag == "") { - this.flag = ""; - } else { - this.flag = flag; + if (flag == "xx") { + flag = ""; } + this.flag = flag; this.showModal = false; this.storeFlag(flag); } @@ -80,6 +77,12 @@ export class FlagInput extends LitElement { render() { return html` +
(this.showModal = false)} + >
@@ -423,9 +435,15 @@ export class EventsDisplay extends LitElement implements Layer { class="text-white cursor-pointer pointer-events-auto ${this._hidden ? "" : "hidden"}" - @click=${() => (this._hidden = false)} + @click=${this.toggleHidden} > Events + ${this.newEvents}
diff --git a/src/core/game/UserSettings.ts b/src/core/game/UserSettings.ts index 6feb6db59..ea0d6a6f5 100644 --- a/src/core/game/UserSettings.ts +++ b/src/core/game/UserSettings.ts @@ -10,7 +10,6 @@ export class UserSettings { set(key: string, value: boolean) { localStorage.setItem(key, value ? "true" : "false"); - document.body.classList.toggle("dark"); } emojis() { @@ -27,5 +26,10 @@ export class UserSettings { toggleDarkMode() { this.set("settings.darkMode", !this.darkMode()); + if (this.darkMode()) { + document.documentElement.classList.add("dark"); + } else { + document.documentElement.classList.remove("dark"); + } } }