diff --git a/client/TODO.txt b/client/TODO.txt index 5b8b49aa..d4f06408 100644 --- a/client/TODO.txt +++ b/client/TODO.txt @@ -4,4 +4,4 @@ scenario dropdown explosion wrong name for ground units improve map zIndex -human symbol if user \ No newline at end of file +human symbol if user diff --git a/client/public/images/units/a-10.png b/client/public/images/units/a-10.png new file mode 100644 index 00000000..643dd5aa Binary files /dev/null and b/client/public/images/units/a-10.png differ diff --git a/client/public/images/units/a-20.png b/client/public/images/units/a-20.png new file mode 100644 index 00000000..4981c90b Binary files /dev/null and b/client/public/images/units/a-20.png differ diff --git a/client/public/images/units/a-29.png b/client/public/images/units/a-29.png new file mode 100644 index 00000000..91ad25f0 Binary files /dev/null and b/client/public/images/units/a-29.png differ diff --git a/client/public/images/units/a-4.png b/client/public/images/units/a-4.png new file mode 100644 index 00000000..499cc11e Binary files /dev/null and b/client/public/images/units/a-4.png differ diff --git a/client/public/images/units/a-400.png b/client/public/images/units/a-400.png new file mode 100644 index 00000000..e76ab232 Binary files /dev/null and b/client/public/images/units/a-400.png differ diff --git a/client/public/images/units/a-50.png b/client/public/images/units/a-50.png new file mode 100644 index 00000000..f08e39a0 Binary files /dev/null and b/client/public/images/units/a-50.png differ diff --git a/client/public/images/units/a-6.png b/client/public/images/units/a-6.png new file mode 100644 index 00000000..d5007ccd Binary files /dev/null and b/client/public/images/units/a-6.png differ diff --git a/client/public/images/units/ah-1.png b/client/public/images/units/ah-1.png new file mode 100644 index 00000000..5da53ddd Binary files /dev/null and b/client/public/images/units/ah-1.png differ diff --git a/client/public/images/units/ah-64.png b/client/public/images/units/ah-64.png new file mode 100644 index 00000000..fa1c98b5 Binary files /dev/null and b/client/public/images/units/ah-64.png differ diff --git a/client/public/images/units/aircraft.png b/client/public/images/units/airUnit.png similarity index 100% rename from client/public/images/units/aircraft.png rename to client/public/images/units/airUnit.png diff --git a/client/public/images/units/airliner2engine.png b/client/public/images/units/airliner2engine.png new file mode 100644 index 00000000..3c8bd4de Binary files /dev/null and b/client/public/images/units/airliner2engine.png differ diff --git a/client/public/images/units/an-26.png b/client/public/images/units/an-26.png new file mode 100644 index 00000000..8b4bd491 Binary files /dev/null and b/client/public/images/units/an-26.png differ diff --git a/client/public/images/units/av8bna.png b/client/public/images/units/av8bna.png new file mode 100644 index 00000000..0bb13672 Binary files /dev/null and b/client/public/images/units/av8bna.png differ diff --git a/client/public/images/units/b-1.png b/client/public/images/units/b-1.png new file mode 100644 index 00000000..05329ddf Binary files /dev/null and b/client/public/images/units/b-1.png differ diff --git a/client/public/images/units/b-17.png b/client/public/images/units/b-17.png new file mode 100644 index 00000000..400dfbc5 Binary files /dev/null and b/client/public/images/units/b-17.png differ diff --git a/client/public/images/units/b-2.png b/client/public/images/units/b-2.png new file mode 100644 index 00000000..3b85f3af Binary files /dev/null and b/client/public/images/units/b-2.png differ diff --git a/client/public/images/units/b-52.png b/client/public/images/units/b-52.png new file mode 100644 index 00000000..34d8840b Binary files /dev/null and b/client/public/images/units/b-52.png differ diff --git a/client/public/images/units/b707.png b/client/public/images/units/b707.png new file mode 100644 index 00000000..3771fc63 Binary files /dev/null and b/client/public/images/units/b707.png differ diff --git a/client/public/images/units/bf109.png b/client/public/images/units/bf109.png new file mode 100644 index 00000000..40da1dfd Binary files /dev/null and b/client/public/images/units/bf109.png differ diff --git a/client/public/images/units/c-101.png b/client/public/images/units/c-101.png new file mode 100644 index 00000000..8b5468b8 Binary files /dev/null and b/client/public/images/units/c-101.png differ diff --git a/client/public/images/units/c-130.png b/client/public/images/units/c-130.png new file mode 100644 index 00000000..f69cb0c2 Binary files /dev/null and b/client/public/images/units/c-130.png differ diff --git a/client/public/images/units/c-17.png b/client/public/images/units/c-17.png new file mode 100644 index 00000000..c2b8855c Binary files /dev/null and b/client/public/images/units/c-17.png differ diff --git a/client/public/images/units/c-5.png b/client/public/images/units/c-5.png new file mode 100644 index 00000000..e2823289 Binary files /dev/null and b/client/public/images/units/c-5.png differ diff --git a/client/public/images/units/ch-47.png b/client/public/images/units/ch-47.png new file mode 100644 index 00000000..16f178ca Binary files /dev/null and b/client/public/images/units/ch-47.png differ diff --git a/client/public/images/units/ch-53.png b/client/public/images/units/ch-53.png new file mode 100644 index 00000000..e67f108c Binary files /dev/null and b/client/public/images/units/ch-53.png differ diff --git a/client/public/images/units/christeneagleii.png b/client/public/images/units/christeneagleii.png new file mode 100644 index 00000000..b1874dd2 Binary files /dev/null and b/client/public/images/units/christeneagleii.png differ diff --git a/client/public/images/units/e-2.png b/client/public/images/units/e-2.png new file mode 100644 index 00000000..fc178272 Binary files /dev/null and b/client/public/images/units/e-2.png differ diff --git a/client/public/images/units/e-3.png b/client/public/images/units/e-3.png new file mode 100644 index 00000000..bcce5b6c Binary files /dev/null and b/client/public/images/units/e-3.png differ diff --git a/client/public/images/units/eurofighter.png b/client/public/images/units/eurofighter.png new file mode 100644 index 00000000..cf39e7f8 Binary files /dev/null and b/client/public/images/units/eurofighter.png differ diff --git a/client/public/images/units/f-111.png b/client/public/images/units/f-111.png new file mode 100644 index 00000000..ae06b171 Binary files /dev/null and b/client/public/images/units/f-111.png differ diff --git a/client/public/images/units/f-117.png b/client/public/images/units/f-117.png new file mode 100644 index 00000000..2f099b28 Binary files /dev/null and b/client/public/images/units/f-117.png differ diff --git a/client/public/images/units/f-14.png b/client/public/images/units/f-14.png new file mode 100644 index 00000000..662def75 Binary files /dev/null and b/client/public/images/units/f-14.png differ diff --git a/client/public/images/units/f-15.png b/client/public/images/units/f-15.png new file mode 100644 index 00000000..a3b56c6c Binary files /dev/null and b/client/public/images/units/f-15.png differ diff --git a/client/public/images/units/f-16.png b/client/public/images/units/f-16.png new file mode 100644 index 00000000..3adbba10 Binary files /dev/null and b/client/public/images/units/f-16.png differ diff --git a/client/public/images/units/f-18.png b/client/public/images/units/f-18.png new file mode 100644 index 00000000..b1f28359 Binary files /dev/null and b/client/public/images/units/f-18.png differ diff --git a/client/public/images/units/f-22.png b/client/public/images/units/f-22.png new file mode 100644 index 00000000..af909ad4 Binary files /dev/null and b/client/public/images/units/f-22.png differ diff --git a/client/public/images/units/f-35.png b/client/public/images/units/f-35.png new file mode 100644 index 00000000..6c9d0909 Binary files /dev/null and b/client/public/images/units/f-35.png differ diff --git a/client/public/images/units/f-4.png b/client/public/images/units/f-4.png new file mode 100644 index 00000000..21cfc750 Binary files /dev/null and b/client/public/images/units/f-4.png differ diff --git a/client/public/images/units/f-5.png b/client/public/images/units/f-5.png new file mode 100644 index 00000000..ef276090 Binary files /dev/null and b/client/public/images/units/f-5.png differ diff --git a/client/public/images/units/f-86.png b/client/public/images/units/f-86.png new file mode 100644 index 00000000..198a968a Binary files /dev/null and b/client/public/images/units/f-86.png differ diff --git a/client/public/images/units/fw190.png b/client/public/images/units/fw190.png new file mode 100644 index 00000000..0020b176 Binary files /dev/null and b/client/public/images/units/fw190.png differ diff --git a/client/public/images/units/general1.png b/client/public/images/units/general1.png new file mode 100644 index 00000000..bf8bf272 Binary files /dev/null and b/client/public/images/units/general1.png differ diff --git a/client/public/images/units/gripen.png b/client/public/images/units/gripen.png new file mode 100644 index 00000000..bd58818e Binary files /dev/null and b/client/public/images/units/gripen.png differ diff --git a/client/public/images/units/ground.png b/client/public/images/units/groundUnit.png similarity index 100% rename from client/public/images/units/ground.png rename to client/public/images/units/groundUnit.png diff --git a/client/public/images/units/h-6.png b/client/public/images/units/h-6.png new file mode 100644 index 00000000..d73b5e3a Binary files /dev/null and b/client/public/images/units/h-6.png differ diff --git a/client/public/images/units/hawk.png b/client/public/images/units/hawk.png new file mode 100644 index 00000000..c1fdd943 Binary files /dev/null and b/client/public/images/units/hawk.png differ diff --git a/client/public/images/units/helicopter1.png b/client/public/images/units/helicopter1.png new file mode 100644 index 00000000..316d3ad9 Binary files /dev/null and b/client/public/images/units/helicopter1.png differ diff --git a/client/public/images/units/i-16.png b/client/public/images/units/i-16.png new file mode 100644 index 00000000..53335809 Binary files /dev/null and b/client/public/images/units/i-16.png differ diff --git a/client/public/images/units/il-76.png b/client/public/images/units/il-76.png new file mode 100644 index 00000000..bcb145a2 Binary files /dev/null and b/client/public/images/units/il-76.png differ diff --git a/client/public/images/units/j-10.png b/client/public/images/units/j-10.png new file mode 100644 index 00000000..1521dbb7 Binary files /dev/null and b/client/public/images/units/j-10.png differ diff --git a/client/public/images/units/j-20.png b/client/public/images/units/j-20.png new file mode 100644 index 00000000..df0b9498 Binary files /dev/null and b/client/public/images/units/j-20.png differ diff --git a/client/public/images/units/j-7.png b/client/public/images/units/j-7.png new file mode 100644 index 00000000..bbf8040a Binary files /dev/null and b/client/public/images/units/j-7.png differ diff --git a/client/public/images/units/jf-17.png b/client/public/images/units/jf-17.png new file mode 100644 index 00000000..3e2e6fab Binary files /dev/null and b/client/public/images/units/jf-17.png differ diff --git a/client/public/images/units/ju-88.png b/client/public/images/units/ju-88.png new file mode 100644 index 00000000..287ca2ce Binary files /dev/null and b/client/public/images/units/ju-88.png differ diff --git a/client/public/images/units/ka-27.png b/client/public/images/units/ka-27.png new file mode 100644 index 00000000..d0ad1c12 Binary files /dev/null and b/client/public/images/units/ka-27.png differ diff --git a/client/public/images/units/ka-50.png b/client/public/images/units/ka-50.png new file mode 100644 index 00000000..a75983e9 Binary files /dev/null and b/client/public/images/units/ka-50.png differ diff --git a/client/public/images/units/kc-10.png b/client/public/images/units/kc-10.png new file mode 100644 index 00000000..7d9e4db9 Binary files /dev/null and b/client/public/images/units/kc-10.png differ diff --git a/client/public/images/units/kc-135.png b/client/public/images/units/kc-135.png new file mode 100644 index 00000000..bbf5ff5b Binary files /dev/null and b/client/public/images/units/kc-135.png differ diff --git a/client/public/images/units/l-159.png b/client/public/images/units/l-159.png new file mode 100644 index 00000000..ba6461f9 Binary files /dev/null and b/client/public/images/units/l-159.png differ diff --git a/client/public/images/units/l-39.png b/client/public/images/units/l-39.png new file mode 100644 index 00000000..c2ef1d07 Binary files /dev/null and b/client/public/images/units/l-39.png differ diff --git a/client/public/images/units/listNames.py b/client/public/images/units/listNames.py new file mode 100644 index 00000000..8f23620a --- /dev/null +++ b/client/public/images/units/listNames.py @@ -0,0 +1,5 @@ +from os import listdir +from os.path import isfile, join +onlyfiles = [f for f in listdir(".") if isfile(join(".", f))] + +print(onlyfiles) \ No newline at end of file diff --git a/client/public/images/units/m2000.png b/client/public/images/units/m2000.png new file mode 100644 index 00000000..8a9ffd48 Binary files /dev/null and b/client/public/images/units/m2000.png differ diff --git a/client/public/images/units/mi-24.png b/client/public/images/units/mi-24.png new file mode 100644 index 00000000..9a148550 Binary files /dev/null and b/client/public/images/units/mi-24.png differ diff --git a/client/public/images/units/mi-26.png b/client/public/images/units/mi-26.png new file mode 100644 index 00000000..b59c9b8d Binary files /dev/null and b/client/public/images/units/mi-26.png differ diff --git a/client/public/images/units/mi-28.png b/client/public/images/units/mi-28.png new file mode 100644 index 00000000..9e5db2ca Binary files /dev/null and b/client/public/images/units/mi-28.png differ diff --git a/client/public/images/units/mi-8.png b/client/public/images/units/mi-8.png new file mode 100644 index 00000000..f42706e7 Binary files /dev/null and b/client/public/images/units/mi-8.png differ diff --git a/client/public/images/units/mig-15.png b/client/public/images/units/mig-15.png new file mode 100644 index 00000000..b97ef8c9 Binary files /dev/null and b/client/public/images/units/mig-15.png differ diff --git a/client/public/images/units/mig-19.png b/client/public/images/units/mig-19.png new file mode 100644 index 00000000..046e6a0f Binary files /dev/null and b/client/public/images/units/mig-19.png differ diff --git a/client/public/images/units/mig-21.png b/client/public/images/units/mig-21.png new file mode 100644 index 00000000..12056218 Binary files /dev/null and b/client/public/images/units/mig-21.png differ diff --git a/client/public/images/units/mig-23.png b/client/public/images/units/mig-23.png new file mode 100644 index 00000000..6fabd9c3 Binary files /dev/null and b/client/public/images/units/mig-23.png differ diff --git a/client/public/images/units/mig-25.png b/client/public/images/units/mig-25.png new file mode 100644 index 00000000..cf8c46ca Binary files /dev/null and b/client/public/images/units/mig-25.png differ diff --git a/client/public/images/units/mig-29.png b/client/public/images/units/mig-29.png new file mode 100644 index 00000000..634cbcc7 Binary files /dev/null and b/client/public/images/units/mig-29.png differ diff --git a/client/public/images/units/mosquito.png b/client/public/images/units/mosquito.png new file mode 100644 index 00000000..5d1ed6d0 Binary files /dev/null and b/client/public/images/units/mosquito.png differ diff --git a/client/public/images/units/multiengine.png b/client/public/images/units/multiengine.png new file mode 100644 index 00000000..34eab23a Binary files /dev/null and b/client/public/images/units/multiengine.png differ diff --git a/client/public/images/units/navyUnit.png b/client/public/images/units/navyUnit.png new file mode 100644 index 00000000..8c6ef4ad Binary files /dev/null and b/client/public/images/units/navyUnit.png differ diff --git a/client/public/images/units/oh-58.png b/client/public/images/units/oh-58.png new file mode 100644 index 00000000..50af43c7 Binary files /dev/null and b/client/public/images/units/oh-58.png differ diff --git a/client/public/images/units/p-47.png b/client/public/images/units/p-47.png new file mode 100644 index 00000000..1b5ae7d4 Binary files /dev/null and b/client/public/images/units/p-47.png differ diff --git a/client/public/images/units/p-51.png b/client/public/images/units/p-51.png new file mode 100644 index 00000000..4c7f4986 Binary files /dev/null and b/client/public/images/units/p-51.png differ diff --git a/client/public/images/units/rafale.png b/client/public/images/units/rafale.png new file mode 100644 index 00000000..367190f4 Binary files /dev/null and b/client/public/images/units/rafale.png differ diff --git a/client/public/images/units/rq-1.png b/client/public/images/units/rq-1.png new file mode 100644 index 00000000..6f45ed10 Binary files /dev/null and b/client/public/images/units/rq-1.png differ diff --git a/client/public/images/units/rq-4.png b/client/public/images/units/rq-4.png new file mode 100644 index 00000000..210862ab Binary files /dev/null and b/client/public/images/units/rq-4.png differ diff --git a/client/public/images/units/s-3.png b/client/public/images/units/s-3.png new file mode 100644 index 00000000..7a6feb8d Binary files /dev/null and b/client/public/images/units/s-3.png differ diff --git a/client/public/images/units/sa-342.png b/client/public/images/units/sa-342.png new file mode 100644 index 00000000..f258c184 Binary files /dev/null and b/client/public/images/units/sa-342.png differ diff --git a/client/public/images/units/spitfire.png b/client/public/images/units/spitfire.png new file mode 100644 index 00000000..70e9e082 Binary files /dev/null and b/client/public/images/units/spitfire.png differ diff --git a/client/public/images/units/su-17.png b/client/public/images/units/su-17.png new file mode 100644 index 00000000..2c27b28b Binary files /dev/null and b/client/public/images/units/su-17.png differ diff --git a/client/public/images/units/su-24.png b/client/public/images/units/su-24.png new file mode 100644 index 00000000..134650ec Binary files /dev/null and b/client/public/images/units/su-24.png differ diff --git a/client/public/images/units/su-25.png b/client/public/images/units/su-25.png new file mode 100644 index 00000000..a45fa129 Binary files /dev/null and b/client/public/images/units/su-25.png differ diff --git a/client/public/images/units/su-27.png b/client/public/images/units/su-27.png new file mode 100644 index 00000000..81a2ede8 Binary files /dev/null and b/client/public/images/units/su-27.png differ diff --git a/client/public/images/units/su-34.png b/client/public/images/units/su-34.png new file mode 100644 index 00000000..44bdc779 Binary files /dev/null and b/client/public/images/units/su-34.png differ diff --git a/client/public/images/units/su-57.png b/client/public/images/units/su-57.png new file mode 100644 index 00000000..02dc88a0 Binary files /dev/null and b/client/public/images/units/su-57.png differ diff --git a/client/public/images/units/tornado.png b/client/public/images/units/tornado.png new file mode 100644 index 00000000..54ded406 Binary files /dev/null and b/client/public/images/units/tornado.png differ diff --git a/client/public/images/units/tu-160.png b/client/public/images/units/tu-160.png new file mode 100644 index 00000000..d0292504 Binary files /dev/null and b/client/public/images/units/tu-160.png differ diff --git a/client/public/images/units/tu-22.png b/client/public/images/units/tu-22.png new file mode 100644 index 00000000..61e15edd Binary files /dev/null and b/client/public/images/units/tu-22.png differ diff --git a/client/public/images/units/tu-95.png b/client/public/images/units/tu-95.png new file mode 100644 index 00000000..7ce802b4 Binary files /dev/null and b/client/public/images/units/tu-95.png differ diff --git a/client/public/images/units/u-28.png b/client/public/images/units/u-28.png new file mode 100644 index 00000000..e31aedb7 Binary files /dev/null and b/client/public/images/units/u-28.png differ diff --git a/client/public/images/units/uh-1.png b/client/public/images/units/uh-1.png new file mode 100644 index 00000000..163cac89 Binary files /dev/null and b/client/public/images/units/uh-1.png differ diff --git a/client/public/images/units/uh-60.png b/client/public/images/units/uh-60.png new file mode 100644 index 00000000..7d436c8a Binary files /dev/null and b/client/public/images/units/uh-60.png differ diff --git a/client/public/images/units/unit.png b/client/public/images/units/unit.png new file mode 100644 index 00000000..8c6ef4ad Binary files /dev/null and b/client/public/images/units/unit.png differ diff --git a/client/public/images/units/viggen.png b/client/public/images/units/viggen.png new file mode 100644 index 00000000..47708c3f Binary files /dev/null and b/client/public/images/units/viggen.png differ diff --git a/client/public/images/units/yak-40.png b/client/public/images/units/yak-40.png new file mode 100644 index 00000000..b562fe59 Binary files /dev/null and b/client/public/images/units/yak-40.png differ diff --git a/client/public/images/units/yak-52.png b/client/public/images/units/yak-52.png new file mode 100644 index 00000000..5728f6e8 Binary files /dev/null and b/client/public/images/units/yak-52.png differ diff --git a/client/public/stylesheets/airbasemarker.css b/client/public/stylesheets/airbasemarker.css index e102e3aa..eedff840 100644 --- a/client/public/stylesheets/airbasemarker.css +++ b/client/public/stylesheets/airbasemarker.css @@ -1,4 +1,4 @@ -.airbasemarker-container { +.airbase-marker-container { height: 60px; width: 60px; left: -30px; @@ -7,7 +7,7 @@ position: absolute; } -.airbasemarker-icon { +.airbase-marker-image { height: 60px; width: 60px; left: 0px; @@ -15,17 +15,22 @@ display: block; position: absolute; filter: drop-shadow(1px 1px 0 white) drop-shadow(1px -1px 0 white) drop-shadow(-1px 1px 0 white) drop-shadow(-1px -1px 0 white); + opacity: 0.8; } -.airbasemarker-icon-blue { - filter: invert(69%) sepia(84%) saturate(264%) hue-rotate(162deg) brightness(100%) contrast(102%) drop-shadow(0px 1px 0 #000A) drop-shadow(1px 0px 0 #000A) drop-shadow(-1px 0px 0 #000A) drop-shadow(0px -1px 0 #000A); +.blue.airbase-marker-image { + filter: invert(40%) sepia(94%) saturate(2477%) hue-rotate(197deg) brightness(92%) contrast(91%) drop-shadow(1px 1px #FFFA) drop-shadow(1px -1px #FFFA) drop-shadow(-1px 1px 0px #FFFA) drop-shadow(-1px -1px #FFFA); } -.airbasemarker-icon-red { - filter: invert(68%) sepia(85%) saturate(2385%) hue-rotate(313deg) brightness(108%) contrast(102%) drop-shadow(0px 1px 0 #000A) drop-shadow(1px 0px 0 #000A) drop-shadow(-1px 0px 0 #000A) drop-shadow(0px -1px 0 #000A); +.red.airbase-marker-image { + filter:invert(32%) sepia(91%) saturate(5128%) hue-rotate(349deg) brightness(97%) contrast(97%) drop-shadow(1px 1px #FFFA) drop-shadow(1px -1px #FFFA) drop-shadow(-1px 1px 0px #FFFA) drop-shadow(-1px -1px #FFFA); } -.airbasemarker-name { +.neutral.airbase-marker-image { + filter: invert(71%) sepia(12%) saturate(9%) hue-rotate(319deg) brightness(92%) contrast(96%) drop-shadow(1px 1px #000A) drop-shadow(1px -1px #000A) drop-shadow(-1px 1px 0px #000A) drop-shadow(-1px -1px #000A); +} + +.airbase-marker-name { bottom: -20px; position: absolute; text-align: center; diff --git a/client/public/stylesheets/layout.css b/client/public/stylesheets/layout.css index 6ed5313d..92fb41e8 100644 --- a/client/public/stylesheets/layout.css +++ b/client/public/stylesheets/layout.css @@ -78,7 +78,7 @@ body { position: absolute; height: 30px; width: 160px; - bottom: 10px; + bottom: 20px; right: 10px; z-index: 1000; } @@ -87,11 +87,20 @@ body { position: absolute; height: fit-content; width: 160px; - bottom: 50px; + bottom: 60px; right: 10px; z-index: 1000; } +#log-panel { + position: absolute; + height: 200px; + width: 400px; + top: 60px; + left: 10px; + z-index: 1000; +} + @media only screen and (max-width: 1000px) { #unit-control-buttons { top: 50px; diff --git a/client/public/stylesheets/logpanel.css b/client/public/stylesheets/logpanel.css new file mode 100644 index 00000000..209a60b9 --- /dev/null +++ b/client/public/stylesheets/logpanel.css @@ -0,0 +1,23 @@ +#log-panel { + overflow-y: scroll; + padding: 10px; + display: flex; + flex-direction: column; + row-gap: 2px; +} + +.ol-log-element { + font-size: 12px; + color: white; + text-shadow: 1px 1px 0px black, 1px -1px 0px black, -1px 1px 0px black, -1px -1px 0px black; + font-weight: 600; + width: 100%; +} + +#log-panel { + -ms-overflow-style: none; /* Internet Explorer 10+ */ + scrollbar-width: none; /* Firefox */ +} +#log-panel::-webkit-scrollbar { + display: none; /* Safari and Chrome */ +} \ No newline at end of file diff --git a/client/public/stylesheets/mouseinfopanel.css b/client/public/stylesheets/mouseinfopanel.css index 3bf331ad..80e5c09a 100644 --- a/client/public/stylesheets/mouseinfopanel.css +++ b/client/public/stylesheets/mouseinfopanel.css @@ -5,7 +5,7 @@ row-gap: 5px; } -#mouse-info-panel .rectangular-container{ +#mouse-info-panel .ol-rectangular-container{ width: 100%; font-weight: 600; font-size: 12px; diff --git a/client/public/stylesheets/panels.css b/client/public/stylesheets/panels.css index 74153621..e754028e 100644 --- a/client/public/stylesheets/panels.css +++ b/client/public/stylesheets/panels.css @@ -2,7 +2,13 @@ .ol-panel { background-color: var(--background-color-dark); font-size: 12px; - transition: bottom 0.2s; border-radius: 15px; box-shadow: 0px 2px 5px #000A; } + +.ol-panel-transparent { + background-color: transparent; + font-size: 12px; + box-shadow: 0px 0px 0px transparent; + border-radius: 0px; +} diff --git a/client/public/stylesheets/selectionscroll.css b/client/public/stylesheets/selectionscroll.css index b2913d86..2073d2de 100644 --- a/client/public/stylesheets/selectionscroll.css +++ b/client/public/stylesheets/selectionscroll.css @@ -5,7 +5,6 @@ width: 220px; height: fit-content; z-index: 2000; - max-height: 400px; padding: 8px; display: flex; flex-direction: column; @@ -35,6 +34,7 @@ overflow-y: auto; height: 100%; width: 100%; + max-height: 400px; } .ol-selection-scroll::-webkit-scrollbar { diff --git a/client/public/stylesheets/style.css b/client/public/stylesheets/style.css index 3a3a32c2..5b7d1539 100644 --- a/client/public/stylesheets/style.css +++ b/client/public/stylesheets/style.css @@ -14,6 +14,7 @@ @import url("visibilitycontrolpanel.css"); @import url("unitinfopanel.css"); @import url("mouseinfopanel.css"); +@import url("logpanel.css"); @import url( "aic.css" ); @import url( "atc.css" ); @@ -48,7 +49,7 @@ html { cursor:crosshair; } -.rectangular-container { +.ol-rectangular-container { padding: 0.5em; background-color: gray; border-radius: 5px; @@ -59,7 +60,7 @@ html { font-size: 12px; } -.rectangular-container-dark { +.ol-rectangular-container-dark { padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.2em; @@ -73,7 +74,7 @@ html { font-size: 12px; } -.rounded-container { +.ol-rounded-container { position: relative; padding: 0.5em; width: fit-content; @@ -85,21 +86,21 @@ html { background-color: gray; } -.rounded-container.blue { +.ol-rounded-container.blue { background-color: var(--blue-coalition-color); border: 1px solid var(--blue-coalition-color); } -.rounded-container.red { +.ol-rounded-container.red { background-color: var(--red-coalition-color); border: 1px solid var(--red-coalition-color); } -.rounded-container.neutral { +.ol-rounded-container.neutral { background-color: var(--neutral-coalition-color); } -.rounded-container-small { +.ol-rounded-container-small { padding: 0.2em; width: fit-content; height: fit-content; @@ -113,7 +114,7 @@ html { padding-right: 5px; } -.rectangular-button { +.ol-rectangular-button { position: relative; padding: 0.5em; width: fit-content; @@ -131,48 +132,48 @@ html { column-gap: 5px; } -.rectangular-button.blue { +.ol-rectangular-button.blue { border: 1px solid var(--blue-coalition-color); color: var(--blue-coalition-color); } -.rectangular-button.red { +.ol-rectangular-button.red { border: 1px solid var(--red-coalition-color); color: var(--red-coalition-color); } -.rectangular-button.white { +.ol-rectangular-button.white { border: 1px solid white; color: white; } -.rectangular-button.white>img { +.ol-rectangular-button.white>img { filter: invert(100%); } -.rectangular-button>img { +.ol-rectangular-button>img { display: inline-block; height: 18px; width: 18px; } -.rectangular-button.red { +.ol-rectangular-button.red { border: 1px solid var(--red-coalition-color); } -.vl { +.ol-vl { border-left: 1px solid #555; width: 1px !important; display: inline-block; } -.hl { +.ol-hl { border-top: 1px solid #555; height: 1px !important; display: inline-block; } -.measure-box { +.ol-measure-box { position: absolute; padding-left: 0.5em; padding-right: 0.5em; diff --git a/client/public/stylesheets/unitcontrolpanel.css b/client/public/stylesheets/unitcontrolpanel.css index fc7c0eac..57f257cf 100644 --- a/client/public/stylesheets/unitcontrolpanel.css +++ b/client/public/stylesheets/unitcontrolpanel.css @@ -65,17 +65,17 @@ height: 100%; } -#selected-units-container .rounded-container { +#selected-units-container .ol-rounded-container { width: calc(100% - 25px); cursor: pointer; margin-left: 25px; } -#selected-units-container .rounded-container.not-selected { +#selected-units-container .ol-rounded-container.not-selected { background-color: transparent; } -#selected-units-container .rounded-container .rounded-container-small { +#selected-units-container .ol-rounded-container .ol-rounded-container-small { display: inline-block; position: absolute; left: 5px; @@ -98,7 +98,7 @@ filter: invert(93%) sepia(97%) saturate(1174%) hue-rotate(291deg) brightness(105%) contrast(97%); } -#unit-control-panel #title-label { +#unit-control-panel .ol-title-label { color: white; font-size: 14px; width: 100%; diff --git a/client/public/stylesheets/unitinfopanel.css b/client/public/stylesheets/unitinfopanel.css index ca311143..dc478257 100644 --- a/client/public/stylesheets/unitinfopanel.css +++ b/client/public/stylesheets/unitinfopanel.css @@ -15,7 +15,7 @@ width: 100%; } -#unit-info-panel>.vl { +#unit-info-panel>.ol-vl { margin-left: 30px; margin-right: 30px; } diff --git a/client/public/stylesheets/unitmarker.css b/client/public/stylesheets/unitmarker.css index babbb02b..5513f3e3 100644 --- a/client/public/stylesheets/unitmarker.css +++ b/client/public/stylesheets/unitmarker.css @@ -1,8 +1,8 @@ -.unit-marker-container { +.ol-unit-marker-container { height: 60px; width: 60px; - left: -30px; - top: -30px; + left: 0px; + top: 0px; border: 0px black solid; position: absolute; padding: 0; @@ -10,7 +10,7 @@ border-collapse: collapse; } -.unit-marker-icon { +.ol-unit-marker-icon { height: 60px; width: 60px; left: 0px; @@ -21,7 +21,24 @@ align-items: center; } -.unit-marker-selected { +.ol-unit-marker-image { + height: 60px; + width: 60px; +} + +.blue.ol-unit-marker-image { + filter: invert(40%) sepia(94%) saturate(2477%) hue-rotate(197deg) brightness(92%) contrast(91%) drop-shadow(1px 1px #0005) drop-shadow(1px -1px #0005) drop-shadow(-1px 1px 0px #0005) drop-shadow(-1px -1px #0005); +} + +.red.ol-unit-marker-image { + filter:invert(32%) sepia(91%) saturate(5128%) hue-rotate(349deg) brightness(97%) contrast(97%) drop-shadow(1px 1px #0005) drop-shadow(1px -1px #0005) drop-shadow(-1px 1px 0px #0005) drop-shadow(-1px -1px #0005); +} + +.neutral.ol-unit-marker-image { + filter: invert(71%) sepia(12%) saturate(9%) hue-rotate(319deg) brightness(92%) contrast(96%) drop-shadow(1px 1px #0005) drop-shadow(1px -1px #0005) drop-shadow(-1px 1px 0px #0005) drop-shadow(-1px -1px #0005); +} + +.ol-unit-marker-selected { width: 100%; height: 100%; border-radius: 50%; @@ -42,44 +59,43 @@ opacity: 0.2; } -.blue.unit-marker-selected { +.blue.ol-unit-marker-selected { background-color: var(--blue-coalition-color); } -.red.unit-marker-selected { +.red.ol-unit-marker-selected { background-color: var(--red-coalition-color); } - -.unit-marker-hovered { +.ol-unit-marker-hovered { filter: brightness(130%); } -.unit-marker-dead { +.ol-unit-marker-dead { filter: brightness(50%); } -.unit-marker-unitName { +.ol-unit-marker-unitName { top: -20px; position: absolute; text-align: center; - font: 800 16px Arial; - white-space: nowrap; - -webkit-text-fill-color: white; - -webkit-text-stroke: 1px; -} - -.unit-marker-name { - bottom: -20px; - position: absolute; - text-align: center; font: 800 14px Arial; white-space: nowrap; -webkit-text-fill-color: white; -webkit-text-stroke: 1px; } -.unit-marker-altitude { +.ol-unit-marker-name { + bottom: -12px; + position: absolute; + text-align: center; + font: 800 12px Arial; + white-space: nowrap; + -webkit-text-fill-color: white; + -webkit-text-stroke: 1px; +} + +.ol-unit-marker-altitude { width: 100%; left: 0px; top: 0px; @@ -91,7 +107,7 @@ -webkit-text-stroke: 1px; } -.unit-marker-speed { +.ol-unit-marker-speed { width: 100%; left: 0px; top: 0px; @@ -103,6 +119,6 @@ -webkit-text-stroke: 1px; } -.unit-marker-container-table-dead .unit-marker-name { +.ol-unit-marker-container-table-dead .ol-unit-marker-name { opacity: 0; } \ No newline at end of file diff --git a/client/public/stylesheets/visibilitycontrolpanel.css b/client/public/stylesheets/visibilitycontrolpanel.css index 5e637c0a..d2e77fae 100644 --- a/client/public/stylesheets/visibilitycontrolpanel.css +++ b/client/public/stylesheets/visibilitycontrolpanel.css @@ -10,7 +10,7 @@ font-weight: 600; } -#visibility-control-panel .vl { +#visibility-control-panel .ol-vl { height: 60%; } diff --git a/client/src/controls/dropdown.ts b/client/src/controls/dropdown.ts index aded3cd6..f4dd66a1 100644 --- a/client/src/controls/dropdown.ts +++ b/client/src/controls/dropdown.ts @@ -28,7 +28,6 @@ export class Dropdown { this.#content.style.left = this.#container.offsetLeft + "px"; this.#content.style.top = this.#container.offsetTop + this.#container.offsetHeight + "px"; - console.log(this.#container); document.body.appendChild(this.#content); var height = 2; diff --git a/client/src/controls/selectionscroll.ts b/client/src/controls/selectionscroll.ts index e4322e73..40f638d2 100644 --- a/client/src/controls/selectionscroll.ts +++ b/client/src/controls/selectionscroll.ts @@ -62,7 +62,6 @@ export class SelectionScroll { else this.#container.style.left = window.innerWidth - this.#container.offsetWidth + "px"; - console.log(y - 20 + this.#container.offsetHeight) if (y - 20 + this.#container.offsetHeight < window.innerHeight) this.#container.style.top = y - 20 + "px"; else diff --git a/client/src/dcs/dcs.ts b/client/src/dcs/dcs.ts index c9ae53f7..393bc198 100644 --- a/client/src/dcs/dcs.ts +++ b/client/src/dcs/dcs.ts @@ -41,7 +41,7 @@ export function spawnSmoke(color: string, latlng: L.LatLng) { xhr.setRequestHeader("Content-Type", "application/json"); xhr.onreadystatechange = () => { if (xhr.readyState === 4) { - console.log("Added " + color + " smoke at " + ConvertDDToDMS(latlng.lat, false) + " " + ConvertDDToDMS(latlng.lng, true)); + //console.log("Added " + color + " smoke at " + ConvertDDToDMS(latlng.lat, false) + " " + ConvertDDToDMS(latlng.lng, true)); } }; @@ -57,7 +57,7 @@ export function spawnGroundUnit(type: string, latlng: L.LatLng, coalition: strin xhr.setRequestHeader("Content-Type", "application/json"); xhr.onreadystatechange = () => { if (xhr.readyState === 4) { - console.log("Added " + coalition + " " + type + " at " + ConvertDDToDMS(latlng.lat, false) + " " + ConvertDDToDMS(latlng.lng, true)); + //console.log("Added " + coalition + " " + type + " at " + ConvertDDToDMS(latlng.lat, false) + " " + ConvertDDToDMS(latlng.lng, true)); } }; @@ -73,7 +73,7 @@ export function spawnAircraft(type: string, latlng: L.LatLng, coalition: string, xhr.setRequestHeader("Content-Type", "application/json"); xhr.onreadystatechange = () => { if (xhr.readyState === 4) { - console.log("Added " + coalition + " " + type + " at " + ConvertDDToDMS(latlng.lat, false) + " " + ConvertDDToDMS(latlng.lng, true)); + //console.log("Added " + coalition + " " + type + " at " + ConvertDDToDMS(latlng.lat, false) + " " + ConvertDDToDMS(latlng.lng, true)); } }; diff --git a/client/src/index.ts b/client/src/index.ts index 708986e7..67a1d00b 100644 --- a/client/src/index.ts +++ b/client/src/index.ts @@ -6,7 +6,6 @@ import { UnitInfoPanel } from "./panels/unitinfopanel"; import { SelectionScroll } from "./controls/selectionscroll"; import { Dropdown } from "./controls/dropdown"; import { ConnectionStatusPanel } from "./panels/connectionstatuspanel"; -import { Button } from "./controls/button"; import { MissionData } from "./missiondata/missiondata"; import { UnitControlPanel } from "./panels/unitcontrolpanel"; import { MouseInfoPanel } from "./panels/mouseInfoPanel"; @@ -16,6 +15,8 @@ import { AIC } from "./aic/AIC"; import { VisibilityControlPanel } from "./panels/visibilitycontrolpanel"; import { ATC } from "./atc/ATC"; import { FeatureSwitches } from "./FeatureSwitches"; +import { LogPanel } from "./panels/logpanel"; +import { Button } from "./controls/button"; /* TODO: should this be a class? */ var map: Map; @@ -30,8 +31,8 @@ var connectionStatusPanel: ConnectionStatusPanel; var unitControlPanel: UnitControlPanel; var mouseInfoPanel: MouseInfoPanel; var visibilityControlPanel: VisibilityControlPanel; +var logPanel: LogPanel; -var scenarioDropdown: Dropdown; var mapSourceDropdown: Dropdown; var slowButton: Button; @@ -62,17 +63,19 @@ function setup() { /* Initialize */ map = new Map('map-container'); unitsManager = new UnitsManager(); + missionData = new MissionData(); selectionWheel = new SelectionWheel("selection-wheel"); selectionScroll = new SelectionScroll("selection-scroll"); unitInfoPanel = new UnitInfoPanel("unit-info-panel"); unitControlPanel = new UnitControlPanel("unit-control-panel"); - scenarioDropdown = new Dropdown("scenario-dropdown", ["Caucasus", "Marianas", "Nevada", "South Atlantic", "Syria", "The Channel"], () => { }); + //scenarioDropdown = new Dropdown("scenario-dropdown", ["Caucasus", "Marianas", "Nevada", "South Atlantic", "Syria", "The Channel"], () => { }); mapSourceDropdown = new Dropdown("map-source-dropdown", map.getLayers(), (option: string) => map.setLayer(option)); connectionStatusPanel = new ConnectionStatusPanel("connection-status-panel"); mouseInfoPanel = new MouseInfoPanel("mouse-info-panel"); visibilityControlPanel = new VisibilityControlPanel("visibility-control-panel"); + logPanel = new LogPanel("log-panel"); missionData = new MissionData(); @@ -132,6 +135,7 @@ function setup() { } + mapSourceDropdown = new Dropdown("map-source-dropdown", map.getLayers(), (option: string) => map.setLayer(option)); /* Default values */ activeCoalition = "blue"; @@ -153,6 +157,7 @@ export function update(data: JSON) { console.log( data ); unitsManager.update(data); missionData.update(data); + logPanel.update(data); } export function getMap() { diff --git a/client/src/map/map.ts b/client/src/map/map.ts index 2d561432..91a0aa24 100644 --- a/client/src/map/map.ts +++ b/client/src/map/map.ts @@ -2,7 +2,7 @@ import * as L from "leaflet" import { getSelectionWheel, getSelectionScroll, getUnitsManager, getActiveCoalition, getMouseInfoPanel } from ".."; import { spawnAircraft, spawnGroundUnit, spawnSmoke } from "../dcs/dcs"; import { bearing, distance, zeroAppend } from "../other/utils"; -import { aircraftDatabase, getAircraftLabelsByRole, getLoadoutsByName, getLoadoutNamesByRole } from "../units/aircraftDatabase"; +import { aircraftDatabase, getAircraftLabelsByRole, getLoadoutsByName, getLoadoutNamesByRole, getAircraftNameByLabel } from "../units/aircraftDatabase"; import { unitTypes } from "../units/unitTypes"; import { BoxSelect } from "./boxselect"; @@ -46,7 +46,7 @@ export class Map extends L.Map { this.#measureIcon = new L.Icon({ iconUrl: 'images/pin.png', iconAnchor: [16, 32]}); this.#measureMarker = new L.Marker([0, 0], {icon: this.#measureIcon, interactive: false}); this.#measureLineDiv = document.createElement("div"); - this.#measureLineDiv.classList.add("measure-box"); + this.#measureLineDiv.classList.add("ol-measure-box"); this.#measureLineDiv.style.display = 'none'; document.body.appendChild(this.#measureLineDiv); @@ -120,12 +120,6 @@ export class Map extends L.Map { else if (this.#state === "MOVE_UNIT") { L.DomUtil.addClass(this.getContainer(),'crosshair-cursor-enabled'); } - else if (this.#state === "ATTACK") { - - } - else if (this.#state === "FORMATION") { - - } } getState() { @@ -330,10 +324,12 @@ export class Map extends L.Map { this.hideSelectionWheel(); this.hideSelectionScroll(); var options = getAircraftLabelsByRole(role); - this.showSelectionScroll(e, "Select aircraft", options, (unitType: string) => { + this.showSelectionScroll(e, "Select aircraft", options, (label: string) => { this.hideSelectionWheel(); this.hideSelectionScroll(); - this.#unitSelectPayload(e, unitType, role); + var name = getAircraftNameByLabel(label); + if (name != null) + this.#unitSelectPayload(e, name, role); }, true); } diff --git a/client/src/missiondata/airbasemarker.ts b/client/src/missiondata/airbasemarker.ts index 3f934418..36bd867a 100644 --- a/client/src/missiondata/airbasemarker.ts +++ b/client/src/missiondata/airbasemarker.ts @@ -19,11 +19,11 @@ export class AirbaseMarker extends L.Marker this.#name = options.name; var icon = new L.DivIcon({ - html: `
|
- ${options.name}
+ ${options.name}
|
|
-
- ${this.#unitName}
-
-
- ${this.#name}
+
+ ${this.#unitName}
+
+
+ ${this.#name}
|