diff --git a/resources/lang/en.json b/resources/lang/en.json index 2ae02389d..279ae5205 100644 --- a/resources/lang/en.json +++ b/resources/lang/en.json @@ -466,6 +466,8 @@ "attack_ratio_desc": "What percentage of your troops to send in an attack (1–100%)", "territory_patterns_label": "🏳️ Territory Skins", "territory_patterns_desc": "Choose whether to display territory skin designs in game", + "territory_border_mode_label": "Territory Borders", + "territory_border_mode_desc": "Select border rendering style (visual only)", "performance_overlay_label": "Performance Overlay", "performance_overlay_desc": "Toggle the performance overlay. When enabled, the performance overlay will be displayed. Press shift-D during game to toggle.", "easter_writing_speed_label": "Writing Speed Multiplier", diff --git a/src/client/UserSettingModal.ts b/src/client/UserSettingModal.ts index 70f4251f8..0ada4565d 100644 --- a/src/client/UserSettingModal.ts +++ b/src/client/UserSettingModal.ts @@ -5,6 +5,7 @@ import { UserSettings } from "../core/game/UserSettings"; import "./components/baseComponents/setting/SettingKeybind"; import { SettingKeybind } from "./components/baseComponents/setting/SettingKeybind"; import "./components/baseComponents/setting/SettingNumber"; +import "./components/baseComponents/setting/SettingSelect"; import "./components/baseComponents/setting/SettingSlider"; import "./components/baseComponents/setting/SettingToggle"; import { BaseModal } from "./components/BaseModal"; @@ -370,6 +371,16 @@ export class UserSettingModal extends BaseModal { console.log("🏳️ Territory Patterns:", enabled ? "ON" : "OFF"); } + private changeTerritoryBorderMode(e: CustomEvent<{ value: string }>) { + const value = e.detail?.value; + if (typeof value !== "string") return; + + const mode = parseInt(value, 10); + if (!Number.isFinite(mode)) return; + + this.userSettings.setInt("settings.territoryBorderMode", mode); + } + private togglePerformanceOverlay(e: CustomEvent<{ checked: boolean }>) { const enabled = e.detail?.checked; if (typeof enabled !== "boolean") return; @@ -794,6 +805,21 @@ export class UserSettingModal extends BaseModal { this.toggleDarkMode(e)} > + + +
+
+ ${this.label} +
+
+ ${this.description} +
+
+ + + + `; + } +} diff --git a/src/client/graphics/layers/SettingsModal.ts b/src/client/graphics/layers/SettingsModal.ts index 92d8f1fe4..ee29599b9 100644 --- a/src/client/graphics/layers/SettingsModal.ts +++ b/src/client/graphics/layers/SettingsModal.ts @@ -141,6 +141,17 @@ export class SettingsModal extends LitElement implements Layer { this.requestUpdate(); } + private onTerritoryBorderModeChange(event: Event) { + const value = (event.target as HTMLSelectElement).value; + const mode = Number.parseInt(value, 10); + if (!Number.isFinite(mode)) + throw new Error(`Invalid border mode: ${value}`); + + this.userSettings.setInt("settings.territoryBorderMode", mode); + this.eventBus.emit(new RefreshGraphicsEvent()); + this.requestUpdate(); + } + private onToggleRandomNameModeButtonClick() { this.userSettings.toggleRandomName(); this.requestUpdate(); @@ -286,6 +297,34 @@ export class SettingsModal extends LitElement implements Layer { +
+ territoryBorderMode +
+
+ ${translateText("user_setting.territory_border_mode_label")} +
+
+ ${translateText("user_setting.territory_border_mode_desc")} +
+
+ +
+