From 121f9b6ec3ba3e7145a63041da9a5452465bc0b6 Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Sun, 15 Oct 2023 11:51:49 +0100 Subject: [PATCH 1/8] Tweaked string functions --- client/plugins/databasemanager/src/utils.ts | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/client/plugins/databasemanager/src/utils.ts b/client/plugins/databasemanager/src/utils.ts index 3d28d11a..a13f0e9f 100644 --- a/client/plugins/databasemanager/src/utils.ts +++ b/client/plugins/databasemanager/src/utils.ts @@ -264,24 +264,10 @@ export function addLoadoutsScroll(div: HTMLElement, loadouts: LoadoutBlueprint[] * @returns The string */ export function arrayToString(array: string[]) { - var value = "["; - var firstRole = true; - array.forEach((role: string) => { - value += firstRole? "": ", "; - firstRole = false; - value += role; - }) - value += "]"; - return value; + return "[" + array.join( ", " ) + "]"; } export function stringToArray(input: string) { - input = input.replace("[", "").replace("]", ""); - var values = input.split(","); - var result: string[] = []; - values.forEach((value: string) => { - result.push(value.trim()); - }) - return result; + return input.match( /([\w])+/g ); } \ No newline at end of file From 2b1272c70d3711c76f3c46f2e8ef441fc61c0a83 Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Sun, 15 Oct 2023 11:53:12 +0100 Subject: [PATCH 2/8] Removed needless [] --- client/plugins/databasemanager/src/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/plugins/databasemanager/src/utils.ts b/client/plugins/databasemanager/src/utils.ts index a13f0e9f..19cec041 100644 --- a/client/plugins/databasemanager/src/utils.ts +++ b/client/plugins/databasemanager/src/utils.ts @@ -269,5 +269,5 @@ export function arrayToString(array: string[]) { export function stringToArray(input: string) { - return input.match( /([\w])+/g ); + return input.match( /(\w)+/g ); } \ No newline at end of file From 8e545346e6be716f9d01fc01caf27a58ba51fbb4 Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Mon, 16 Oct 2023 09:13:44 +0100 Subject: [PATCH 3/8] Exploratory tweaks --- client/src/contextmenus/mapcontextmenu.ts | 6 +++--- client/src/controls/unitspawnmenu.ts | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/client/src/contextmenus/mapcontextmenu.ts b/client/src/contextmenus/mapcontextmenu.ts index 23f512cf..34ce3a80 100644 --- a/client/src/contextmenus/mapcontextmenu.ts +++ b/client/src/contextmenus/mapcontextmenu.ts @@ -65,9 +65,9 @@ export class MapContextMenu extends ContextMenu { } }); - document.addEventListener("commandModeOptionsChanged", (e: any) => { - //this.#refreshOptions(); - }); + // document.addEventListener("commandModeOptionsChanged", (e: any) => { + // //this.#refreshOptions(); + // }); this.#aircraftSpawnMenu.getContainer().addEventListener("resize", () => this.clip()); this.#helicopterSpawnMenu.getContainer().addEventListener("resize", () => this.clip()); diff --git a/client/src/controls/unitspawnmenu.ts b/client/src/controls/unitspawnmenu.ts index f7d53d9d..37787c1f 100644 --- a/client/src/controls/unitspawnmenu.ts +++ b/client/src/controls/unitspawnmenu.ts @@ -290,6 +290,10 @@ export class UnitSpawnMenu { var acquisitionRange = this.#unitDatabase.getByName(this.spawnOptions.name)?.acquisitionRange ?? 0; var engagementRange = this.#unitDatabase.getByName(this.spawnOptions.name)?.engagementRange ?? 0; + if ( engagementRange === 0 && acquisitionRange === 0 ) { + return; + } + this.#acquisitionCircle.setRadius(acquisitionRange); this.#engagementCircle.setRadius(engagementRange); this.#acquisitionCircle.setLatLng(this.spawnOptions.latlng); From 1691b0b30c4bf950c5826cfd90543b3faf666288 Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Wed, 18 Oct 2023 12:13:51 +0100 Subject: [PATCH 4/8] Range rings only showing when necessary --- client/src/contextmenus/mapcontextmenu.ts | 6 ++++-- client/src/controls/unitspawnmenu.ts | 14 +++++++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/client/src/contextmenus/mapcontextmenu.ts b/client/src/contextmenus/mapcontextmenu.ts index 34ce3a80..f7924fcd 100644 --- a/client/src/contextmenus/mapcontextmenu.ts +++ b/client/src/contextmenus/mapcontextmenu.ts @@ -18,6 +18,7 @@ export class MapContextMenu extends ContextMenu { #groundUnitSpawnMenu: GroundUnitSpawnMenu; #navyUnitSpawnMenu: NavyUnitSpawnMenu; #coalitionArea: CoalitionArea | null = null; + #selectedUnitCategory: string = ""; /** * @@ -39,9 +40,10 @@ export class MapContextMenu extends ContextMenu { /* Event listeners */ document.addEventListener("mapContextMenuShow", (e: any) => { - if (this.getVisibleSubMenu() !== e.detail.type) + if (this.getVisibleSubMenu() !== e.detail.type) { this.#showSubMenu(e.detail.type); - else + this.#selectedUnitCategory = e.detail.type; + } else this.#hideSubMenus(e.detail.type); }); diff --git a/client/src/controls/unitspawnmenu.ts b/client/src/controls/unitspawnmenu.ts index 37787c1f..0115add5 100644 --- a/client/src/controls/unitspawnmenu.ts +++ b/client/src/controls/unitspawnmenu.ts @@ -50,6 +50,7 @@ export class UnitSpawnMenu { /* Range circle previews */ #engagementCircle: Circle; #acquisitionCircle: Circle; + protected showRangeCircles: boolean = false; constructor(ID: string, unitDatabase: UnitDatabase, orderByRole: boolean) { this.#container = document.getElementById(ID) as HTMLElement; @@ -244,6 +245,10 @@ export class UnitSpawnMenu { return this.#container; } + getVisible() { + return !this.getContainer().classList.contains( "hide" ); + } + reset() { this.#deployUnitButtonEl.disabled = true; this.#unitRoleTypeDropdown.reset(); @@ -286,11 +291,15 @@ export class UnitSpawnMenu { showCirclesPreviews() { this.clearCirclesPreviews(); + + if ( !this.showRangeCircles || this.spawnOptions.name === "" || !this.getVisible() ) { + return; + } var acquisitionRange = this.#unitDatabase.getByName(this.spawnOptions.name)?.acquisitionRange ?? 0; var engagementRange = this.#unitDatabase.getByName(this.spawnOptions.name)?.engagementRange ?? 0; - if ( engagementRange === 0 && acquisitionRange === 0 ) { + if ( acquisitionRange === 0 && engagementRange === 0 ) { return; } @@ -576,6 +585,9 @@ export class HelicopterSpawnMenu extends UnitSpawnMenu { } export class GroundUnitSpawnMenu extends UnitSpawnMenu { + + protected showRangeCircles: boolean = true; + /** * * @param ID - the ID of the HTML element which will contain the context menu From 005ffc55ce285b077737b8126887e18439e575f7 Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Wed, 18 Oct 2023 12:15:59 +0100 Subject: [PATCH 5/8] var => let --- client/src/controls/unitspawnmenu.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/src/controls/unitspawnmenu.ts b/client/src/controls/unitspawnmenu.ts index 0115add5..8ea87707 100644 --- a/client/src/controls/unitspawnmenu.ts +++ b/client/src/controls/unitspawnmenu.ts @@ -296,8 +296,8 @@ export class UnitSpawnMenu { return; } - var acquisitionRange = this.#unitDatabase.getByName(this.spawnOptions.name)?.acquisitionRange ?? 0; - var engagementRange = this.#unitDatabase.getByName(this.spawnOptions.name)?.engagementRange ?? 0; + let acquisitionRange = this.#unitDatabase.getByName(this.spawnOptions.name)?.acquisitionRange ?? 0; + let engagementRange = this.#unitDatabase.getByName(this.spawnOptions.name)?.engagementRange ?? 0; if ( acquisitionRange === 0 && engagementRange === 0 ) { return; From 67079e1c0b511dabd5c91c184cffa9125c591c96 Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Wed, 18 Oct 2023 13:20:54 +0100 Subject: [PATCH 6/8] Munitions constrained to a scrollable --- client/public/stylesheets/panels/unitinfo.css | 16 ++++++++-------- client/views/panels/unitinfo.ejs | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/client/public/stylesheets/panels/unitinfo.css b/client/public/stylesheets/panels/unitinfo.css index 49dae06e..9ef7b10b 100644 --- a/client/public/stylesheets/panels/unitinfo.css +++ b/client/public/stylesheets/panels/unitinfo.css @@ -97,14 +97,14 @@ } #loadout-items { - margin-right: 20px; align-self: center; - display: flex; - flex-flow: column; - row-gap: 8px; column-gap: 8px; - max-height: 90px; - flex-wrap: wrap; + display: flex; + flex-flow: column nowrap; + margin-right: 20px; + max-height: 110px; + padding-right:20px; + row-gap: 6px; } #loadout-items>* { @@ -122,7 +122,7 @@ display: flex; font-size: 11px; font-weight: bold; - padding: 4px 6px; + padding: 3px 4px; } #loadout-items>*::after { @@ -137,7 +137,7 @@ #fuel-percentage { align-items: center; display: flex; - margin-top: auto; + margin-top: 8px; } #fuel-percentage::before { diff --git a/client/views/panels/unitinfo.ejs b/client/views/panels/unitinfo.ejs index c1aeada6..25e35ed1 100644 --- a/client/views/panels/unitinfo.ejs +++ b/client/views/panels/unitinfo.ejs @@ -13,7 +13,7 @@
-
+
From 44deef4a5a6cfc8baf2217c70de9e0337abd40eb Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Wed, 18 Oct 2023 13:23:25 +0100 Subject: [PATCH 7/8] Tweaked spacing --- client/public/stylesheets/panels/unitinfo.css | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/client/public/stylesheets/panels/unitinfo.css b/client/public/stylesheets/panels/unitinfo.css index 9ef7b10b..0fe84177 100644 --- a/client/public/stylesheets/panels/unitinfo.css +++ b/client/public/stylesheets/panels/unitinfo.css @@ -101,9 +101,8 @@ column-gap: 8px; display: flex; flex-flow: column nowrap; - margin-right: 20px; max-height: 110px; - padding-right:20px; + padding-right:40px; row-gap: 6px; } From 94684fff9f805aa5474c31da3df333d421142a63 Mon Sep 17 00:00:00 2001 From: PeekabooSteam Date: Wed, 18 Oct 2023 13:54:33 +0100 Subject: [PATCH 8/8] More spacing tweaking --- client/public/stylesheets/panels/unitinfo.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/public/stylesheets/panels/unitinfo.css b/client/public/stylesheets/panels/unitinfo.css index 0fe84177..50c90faf 100644 --- a/client/public/stylesheets/panels/unitinfo.css +++ b/client/public/stylesheets/panels/unitinfo.css @@ -101,7 +101,7 @@ column-gap: 8px; display: flex; flex-flow: column nowrap; - max-height: 110px; + max-height: 108px; padding-right:40px; row-gap: 6px; }