add setting

This commit is contained in:
Aotumuri
2025-06-01 08:35:44 +09:00
parent b55241a295
commit 618c43113b
5 changed files with 44 additions and 1 deletions
+2
View File
@@ -245,6 +245,8 @@
"attack_ratio_desc": "What percentage of your troops to send in an attack (1100%)", "attack_ratio_desc": "What percentage of your troops to send in an attack (1100%)",
"troop_ratio_label": "🪖🛠️ Troops and Workers Ratio", "troop_ratio_label": "🪖🛠️ Troops and Workers Ratio",
"troop_ratio_desc": "Adjust the balance between troops (for combat) and workers (for gold production) (1100%)", "troop_ratio_desc": "Adjust the balance between troops (for combat) and workers (for gold production) (1100%)",
"territory_patterns_label": "🏳️ Territory Patterns",
"territory_patterns_desc": "Choose whether to display territory pattern designs in game",
"easter_writing_speed_label": "Writing Speed Multiplier", "easter_writing_speed_label": "Writing Speed Multiplier",
"easter_writing_speed_desc": "Adjust how fast you pretend to code (x1x100)", "easter_writing_speed_desc": "Adjust how fast you pretend to code (x1x100)",
"easter_bug_count_label": "Bug Count", "easter_bug_count_label": "Bug Count",
+18
View File
@@ -150,6 +150,15 @@ export class UserSettingModal extends LitElement {
} }
} }
private toggleTerritoryPatterns(e: CustomEvent<{ checked: boolean }>) {
const enabled = e.detail?.checked;
if (typeof enabled !== "boolean") return;
this.userSettings.set("settings.territoryPatterns", enabled);
console.log("🏳️ Territory Patterns:", enabled ? "ON" : "OFF");
}
private handleKeybindChange( private handleKeybindChange(
e: CustomEvent<{ action: string; value: string }>, e: CustomEvent<{ action: string; value: string }>,
) { ) {
@@ -262,6 +271,15 @@ export class UserSettingModal extends LitElement {
@change=${this.toggleAnonymousNames} @change=${this.toggleAnonymousNames}
></setting-toggle> ></setting-toggle>
<!-- 🏳️ Territory Patterns -->
<setting-toggle
label="${translateText("user_setting.territory_patterns_label")}"
description="${translateText("user_setting.territory_patterns_desc")}"
id="territory-patterns-toggle"
.checked=${this.userSettings.territoryPatterns()}
@change=${this.toggleTerritoryPatterns}
></setting-toggle>
<!-- ⚔️ Attack Ratio --> <!-- ⚔️ Attack Ratio -->
<setting-slider <setting-slider
label="${translateText("user_setting.attack_ratio_label")}" label="${translateText("user_setting.attack_ratio_label")}"
+12
View File
@@ -124,6 +124,12 @@ export class OptionsMenu extends LitElement implements Layer {
this.userSettings.toggleLeftClickOpenMenu(); this.userSettings.toggleLeftClickOpenMenu();
} }
private onToggleTerritoryPatterns() {
this.userSettings.toggleTerritoryPatterns();
this.requestUpdate();
this.eventBus.emit(new RefreshGraphicsEvent());
}
init() { init() {
console.log("init called from OptionsMenu"); console.log("init called from OptionsMenu");
this.showPauseButton = this.showPauseButton =
@@ -207,6 +213,12 @@ export class OptionsMenu extends LitElement implements Layer {
title: "Toggle Special effects", title: "Toggle Special effects",
children: "💥: " + (this.userSettings.fxLayer() ? "On" : "Off"), children: "💥: " + (this.userSettings.fxLayer() ? "On" : "Off"),
})} })}
${button({
onClick: this.onToggleTerritoryPatterns,
title: "Territory Patterns",
children:
"🏳️: " + (this.userSettings.territoryPatterns() ? "On" : "Off"),
})}
${button({ ${button({
onClick: this.onToggleDarkModeButtonClick, onClick: this.onToggleDarkModeButtonClick,
title: "Dark Mode", title: "Dark Mode",
+4 -1
View File
@@ -6,12 +6,15 @@ import { Cell, PlayerType, UnitType } from "../../../core/game/Game";
import { euclDistFN, TileRef } from "../../../core/game/GameMap"; import { euclDistFN, TileRef } from "../../../core/game/GameMap";
import { GameUpdateType } from "../../../core/game/GameUpdates"; import { GameUpdateType } from "../../../core/game/GameUpdates";
import { GameView, PlayerView } from "../../../core/game/GameView"; import { GameView, PlayerView } from "../../../core/game/GameView";
import { UserSettings } from "../../../core/game/UserSettings";
import { PseudoRandom } from "../../../core/PseudoRandom"; import { PseudoRandom } from "../../../core/PseudoRandom";
import { AlternateViewEvent, DragEvent } from "../../InputHandler"; import { AlternateViewEvent, DragEvent } from "../../InputHandler";
import { PatternDecoder } from "../../TerritoryPatterns"; import { PatternDecoder } from "../../TerritoryPatterns";
import { TransformHandler } from "../TransformHandler"; import { TransformHandler } from "../TransformHandler";
import { Layer } from "./Layer"; import { Layer } from "./Layer";
const userSettings: UserSettings = new UserSettings();
export class TerritoryLayer implements Layer { export class TerritoryLayer implements Layer {
private canvas: HTMLCanvasElement; private canvas: HTMLCanvasElement;
private context: CanvasRenderingContext2D; private context: CanvasRenderingContext2D;
@@ -287,7 +290,7 @@ export class TerritoryLayer implements Layer {
} }
} else { } else {
const patternName = owner.pattern(); const patternName = owner.pattern();
if (!patternName) { if (!patternName || !userSettings.territoryPatterns()) {
this.paintTile(tile, this.theme.territoryColor(owner), 150); this.paintTile(tile, this.theme.territoryColor(owner), 150);
} else { } else {
const x = this.game.x(tile); const x = this.game.x(tile);
+8
View File
@@ -33,6 +33,10 @@ export class UserSettings {
return this.get("settings.leftClickOpensMenu", false); return this.get("settings.leftClickOpensMenu", false);
} }
territoryPatterns() {
return this.get("settings.territoryPatterns", true);
}
focusLocked() { focusLocked() {
return false; return false;
// TODO: renable when performance issues are fixed. // TODO: renable when performance issues are fixed.
@@ -59,6 +63,10 @@ export class UserSettings {
this.set("settings.specialEffects", !this.fxLayer()); this.set("settings.specialEffects", !this.fxLayer());
} }
toggleTerritoryPatterns() {
this.set("settings.territoryPatterns", !this.territoryPatterns());
}
toggleDarkMode() { toggleDarkMode() {
this.set("settings.darkMode", !this.darkMode()); this.set("settings.darkMode", !this.darkMode());
if (this.darkMode()) { if (this.darkMode()) {