From 04c7fc3741608787cf12203eb32dac99e31ae65a Mon Sep 17 00:00:00 2001 From: Pax1601 Date: Wed, 26 Apr 2023 17:42:17 +0200 Subject: [PATCH] Added human and DCS controlled icons --- client/demo.js | 6 +- client/public/stylesheets/units.css | 8 +++ .../themes/olympus/images/state_dcs.svg | 71 +++++++++++++++++++ .../themes/olympus/images/state_human.svg | 51 +++++++++++++ client/public/themes/olympus/olympus.css | 2 + client/src/missionhandler/missionhandler.ts | 2 +- client/src/units/unit.ts | 7 +- 7 files changed, 142 insertions(+), 5 deletions(-) create mode 100644 client/public/themes/olympus/images/state_dcs.svg create mode 100644 client/public/themes/olympus/images/state_human.svg diff --git a/client/demo.js b/client/demo.js index 7e47f863..c30f7f7b 100644 --- a/client/demo.js +++ b/client/demo.js @@ -18,7 +18,7 @@ const DEMO_UNIT_DATA = { }, missionData: { fuel: 50, - flags: {human: false}, + flags: {human: true}, ammo: [ { count: 4, @@ -67,8 +67,8 @@ const DEMO_UNIT_DATA = { }, ["2"]:{ baseData: { - AI: true, - name: "F-5E", + AI: false, + name: "KC-135", unitName: "Olympus 1-2", groupName: "Group 1", alive: true, diff --git a/client/public/stylesheets/units.css b/client/public/stylesheets/units.css index f64543a6..0685381f 100644 --- a/client/public/stylesheets/units.css +++ b/client/public/stylesheets/units.css @@ -538,6 +538,14 @@ background-image: var( --unit-aircraft-state-refuel ); } +[data-object|="unit"][data-state="human"] .unit-state { + background-image: var( --unit-aircraft-state-human ); +} + +[data-object|="unit"][data-state="dcs"] .unit-state { + background-image: var( --unit-aircraft-state-dcs ); +} + /*** DEAD ***/ [data-object|="unit-aircraft"][ data-is-dead ] { cursor: default; diff --git a/client/public/themes/olympus/images/state_dcs.svg b/client/public/themes/olympus/images/state_dcs.svg new file mode 100644 index 00000000..1652fc61 --- /dev/null +++ b/client/public/themes/olympus/images/state_dcs.svg @@ -0,0 +1,71 @@ + + + + + + + + + + diff --git a/client/public/themes/olympus/images/state_human.svg b/client/public/themes/olympus/images/state_human.svg new file mode 100644 index 00000000..dd64fcc8 --- /dev/null +++ b/client/public/themes/olympus/images/state_human.svg @@ -0,0 +1,51 @@ + + + + + + + + diff --git a/client/public/themes/olympus/olympus.css b/client/public/themes/olympus/olympus.css index 497ef3b7..5f128e79 100644 --- a/client/public/themes/olympus/olympus.css +++ b/client/public/themes/olympus/olympus.css @@ -132,6 +132,8 @@ --unit-aircraft-state-attack: url( "/themes/olympus/images/state_attack.svg" ); --unit-aircraft-state-follow: url( "/themes/olympus/images/state_follow.svg" ); --unit-aircraft-state-refuel: url( "/themes/olympus/images/state_refuel.svg" ); + --unit-aircraft-state-human: url( "/themes/olympus/images/state_human.svg" ); + --unit-aircraft-state-dcs: url( "/themes/olympus/images/state_dcs.svg" ); /*** Ground ***/ --unit-groundunit-marker-height: 50px; diff --git a/client/src/missionhandler/missionhandler.ts b/client/src/missionhandler/missionhandler.ts index 60792654..66233f0a 100644 --- a/client/src/missionhandler/missionhandler.ts +++ b/client/src/missionhandler/missionhandler.ts @@ -1,5 +1,5 @@ import { Marker, LatLng, Icon } from "leaflet"; -import { getInfoPopup, getMap, getUnitsManager } from ".."; +import { getInfoPopup, getMap } from ".."; import { Airbase } from "./airbase"; var bullseyeIcons = [ diff --git a/client/src/units/unit.ts b/client/src/units/unit.ts index ed1c32d0..cceae231 100644 --- a/client/src/units/unit.ts +++ b/client/src/units/unit.ts @@ -546,7 +546,12 @@ export class Unit extends Marker { element.querySelector(".unit")?.toggleAttribute("data-is-dead", !this.getBaseData().alive); - element.querySelector(".unit")?.setAttribute("data-state", this.getTaskData().currentState.toLowerCase()); + if (this.getMissionData().flags.human) // Unit is human + element.querySelector(".unit")?.setAttribute("data-state", "human"); + else if (!this.getBaseData().AI) // Unit is under DCS control (no Olympus) + element.querySelector(".unit")?.setAttribute("data-state", "dcs"); + else // Unit is under Olympus control + element.querySelector(".unit")?.setAttribute("data-state", this.getTaskData().currentState.toLowerCase()); var unitHeadingDiv = element.querySelector(".unit-heading"); if (unitHeadingDiv != null)