From 9207585f5ba2a7a2c826f36e891c25ee2ea6a483 Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Thu, 28 Dec 2023 17:45:21 +0000 Subject: [PATCH] Set ordering of eras in command mode settings --- client/src/constants/constants.ts | 17 +++++++++++++++++ client/src/mission/missionmanager.ts | 14 ++++++++------ 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/client/src/constants/constants.ts b/client/src/constants/constants.ts index a9552b16..de8cfb55 100644 --- a/client/src/constants/constants.ts +++ b/client/src/constants/constants.ts @@ -26,6 +26,23 @@ export const ROEs: string[] = ["free", "designated", "", "return", "hold"]; export const reactionsToThreat: string[] = ["none", "manoeuvre", "passive", "evade"]; export const emissionsCountermeasures: string[] = ["silent", "attack", "defend", "free"]; +export const ERAS = [{ + "name": "Early Cold War", + "chronologicalOrder": 2 +}, { + "name": "Late Cold War", + "chronologicalOrder": 4 +}, { + "name": "Mid Cold War", + "chronologicalOrder": 3 +}, { + "name": "Modern", + "chronologicalOrder": 5 +}, { + "name": "WW2", + "chronologicalOrder": 1 +}]; + export const ROEDescriptions: string[] = [ "Free (Attack anyone)", "Designated (Attack the designated target only) \nWARNING: Ground and Navy units don't respect this ROE, it will be equivalent to weapons FREE.", diff --git a/client/src/mission/missionmanager.ts b/client/src/mission/missionmanager.ts index 139f35ae..b0c56ee4 100644 --- a/client/src/mission/missionmanager.ts +++ b/client/src/mission/missionmanager.ts @@ -2,7 +2,7 @@ import { LatLng } from "leaflet"; import { getApp } from ".."; import { Airbase } from "./airbase"; import { Bullseye } from "./bullseye"; -import { BLUE_COMMANDER, GAME_MASTER, NONE, RED_COMMANDER } from "../constants/constants"; +import { BLUE_COMMANDER, ERAS, GAME_MASTER, NONE, RED_COMMANDER } from "../constants/constants"; import { Dropdown } from "../controls/dropdown"; import { groundUnitDatabase } from "../unit/databases/groundunitdatabase"; import { createCheckboxOption, getCheckboxOptions } from "../other/utils"; @@ -212,11 +212,13 @@ export class MissionManager { showCommandModeDialog() { /* Create the checkboxes to select the unit eras */ - var eras = aircraftDatabase.getEras().concat(helicopterDatabase.getEras()).concat(groundUnitDatabase.getEras()).concat(navyUnitDatabase.getEras()); - eras = eras.filter((item: string, index: number) => eras.indexOf(item) === index).sort(); - this.#commandModeErasDropdown.setOptionsElements(eras.map((era: string) => { - return createCheckboxOption(era, `Enable ${era} units spawns`, this.getCommandModeOptions().eras.includes(era)); - })); + this.#commandModeErasDropdown.setOptionsElements( + ERAS.sort((eraA, eraB) => { + return ( eraA.chronologicalOrder > eraB.chronologicalOrder ) ? 1 : -1; + }).map((era) => { + return createCheckboxOption(era.name, `Enable ${era} units spawns`, this.getCommandModeOptions().eras.includes(era.name)); + }) + ); this.#commandModeDialog.classList.remove("hide");