Disable nukes option (#237)

This makes it possible to disable all nukes as well as missile silos
from the game in privat lobbies and singleplayer games
This commit is contained in:
Readixyee
2025-03-21 21:52:36 +01:00
committed by GitHub
parent c4614fe0ba
commit e02361c2f4
12 changed files with 94 additions and 7 deletions
+19
View File
@@ -16,6 +16,7 @@ export class SinglePlayerModal extends LitElement {
@state() private selectedMap: GameMapType = GameMapType.World;
@state() private selectedDifficulty: Difficulty = Difficulty.Medium;
@state() private disableNPCs: boolean = false;
@state() private disableNukes: boolean = false;
@state() private bots: number = 400;
@state() private infiniteGold: boolean = false;
@state() private infiniteTroops: boolean = false;
@@ -411,6 +412,20 @@ export class SinglePlayerModal extends LitElement {
/>
<div class="option-card-title">Infinite troops</div>
</label>
<label
for="disable-nukes"
class="option-card ${this.disableNukes ? "selected" : ""}"
>
<div class="checkbox-icon"></div>
<input
type="checkbox"
id="disable-nukes"
@change=${this.handleDisableNukesChange}
.checked=${this.disableNukes}
/>
<div class="option-card-title">Disable Nukes</div>
</label>
</div>
</div>
</div>
@@ -464,6 +479,9 @@ export class SinglePlayerModal extends LitElement {
private handleDisableNPCsChange(e: Event) {
this.disableNPCs = Boolean((e.target as HTMLInputElement).checked);
}
private handleDisableNukesChange(e: Event) {
this.disableNukes = Boolean((e.target as HTMLInputElement).checked);
}
private getRandomMap(): GameMapType {
const maps = Object.values(GameMapType);
@@ -490,6 +508,7 @@ export class SinglePlayerModal extends LitElement {
gameType: GameType.Singleplayer,
difficulty: this.selectedDifficulty,
disableNPCs: this.disableNPCs,
disableNukes: this.disableNukes,
bots: this.bots,
infiniteGold: this.infiniteGold,
infiniteTroops: this.infiniteTroops,