359 Commits

Author SHA1 Message Date
Pax1601
c3b4c4ae36 Multiple bugfixes 2023-07-31 08:08:20 +02:00
Pax1601
fd7f4b9772 Multiple bug fixes and optimizations 2023-07-28 17:43:31 +02:00
Pax1601
bac2c430ef Merge pull request #342 from Pax1601/340-dont-install-development-node-modules
Added package command to prune dev modules
2023-07-27 19:22:35 +02:00
Pax1601
3f1c9942c3 Merge pull request #341 from Pax1601/333-missiles-and-bombs-are-not-being-exported
333 missiles and bombs are not being exported
2023-07-27 19:22:08 +02:00
Pax1601
80ed675cbc Completed transition to weapons handler 2023-07-27 19:21:34 +02:00
Pax1601
6d434e48a1 Added missing files 2023-07-27 17:16:21 +02:00
Pax1601
7961870ac4 Added package command to prune dev modules 2023-07-27 17:15:57 +02:00
Pax1601
0150ae9df1 Splitted weapons and units managers 2023-07-27 16:27:59 +02:00
Pax1601
875f3ebe68 Added handler to detect units and weapons creation 2023-07-26 22:39:26 +02:00
Pax1601
3fac8a5663 Fixed missing isAlive value 2023-07-26 10:58:39 +02:00
Pax1601
3c11e1c2a1 Front end tweaks 2023-07-25 17:54:26 +02:00
Pax1601
81871b596b Completed backend for advanced RTS functions 2023-07-23 22:30:25 +02:00
Pax1601
8ffd5ef972 Started to add advanced RTS options to backend 2023-07-21 19:51:23 +02:00
Pax1601
4ae72b7c0b Front end tweaks
Added visibility options and server log panel
2023-07-21 17:33:24 +02:00
Pax1601
5613394a2c Completed RTS front end 2023-07-20 17:49:41 +02:00
Pax1601
2e113b468a Merge branch 'performance-optimization' into 326-add-advanced-rts-options 2023-07-20 11:02:26 +02:00
Pax1601
018e37cd2a Minor graphic tweaks 2023-07-20 10:59:48 +02:00
Pax1601
1d5f24dc1a Added check on repeated commands on scheduler 2023-07-19 20:56:19 +02:00
Pax1601
cbb8920de7 Styled the server load panel 2023-07-19 17:41:05 +02:00
Pax1601
7eb6cadc4e Merge remote-tracking branch 'origin/performance-optimization' into 326-add-advanced-rts-options 2023-07-19 17:03:35 +02:00
Pax1601
a4db569fbd Performance optimizations for large unit counts 2023-07-18 21:56:56 +02:00
Pax1601
e9a3ecb9eb Started to implement RTS advanced options 2023-07-13 17:52:05 +02:00
Pax1601
785647ad24 Merge branch 'pr/325' 2023-07-13 11:28:43 +02:00
WoodyXP
72cd4de55f Added the correct name for every naval unit 2023-07-12 19:08:24 +02:00
WoodyXP
e882123692 Removed naval units mods 2023-07-12 17:08:08 +02:00
Pax1601
a949a9bf22 Tweaks and implemented workaround to MIST bug 2023-07-12 17:01:03 +02:00
WoodyXP
75c897eb5b Change function to filter by era due to change of value type 2023-07-12 16:41:55 +02:00
WoodyXP
b48f74f879 Added coalition to naval units 2023-07-12 16:31:46 +02:00
WoodyXP
c6eeeac7c1 Added coaltion to helicopter units 2023-07-12 15:50:14 +02:00
WoodyXP
9c1edd2a86 Added coalition to groundunits and fixed some eras and reformatted aircraft db 2023-07-12 15:43:13 +02:00
WoodyXP
133c447d5d Added coalition to aircraftdatabase.ts and switched era list to string 2023-07-12 14:57:15 +02:00
Pax1601
b78cd27e4e Merge pull request #323 from Pax1601/319-add-basic-rts-functions
319 add basic rts functions
2023-07-11 18:56:57 +02:00
Pax1601
5d29c82244 Commented not implemented functions 2023-07-11 18:56:37 +02:00
Pax1601
f379f6b998 Tweaks to IADS creation and menus 2023-07-11 17:30:05 +02:00
Pax1601
439111f7a0 Merge branch 'main' into 319-add-basic-rts-functions 2023-07-11 14:34:59 +02:00
Pax1601
55372d5a5b Merge pull request #322 from WoodyXP/321-Adding-Era-To-Helicopter-DB
Added era to all helicopter units
2023-07-11 14:30:09 +02:00
Pax1601
13e3b93e93 More tweaks on frontend 2023-07-10 16:58:54 +02:00
WoodyXP
7a6929e34b Added era to all helicopter units 2023-07-10 14:07:12 +02:00
Pax1601
a0763a6450 Minor tweaks and fixes 2023-07-09 18:48:21 +02:00
Pax1601
2d4202979f Merge branch '312-add-ability-to-draw-areas-and-fill-with-iads' into 319-add-basic-rts-functions 2023-07-07 17:27:20 +02:00
Pax1601
327d5c74d9 Add basic visibility functions and ability to spawn multiple units in group 2023-07-07 17:26:41 +02:00
Pax1601
3bad83a02f Merge pull request #316 from WoodyXP/313-fix-getByRange-function
Changed the function that it gets all the units with a specified range
2023-07-06 13:10:17 +02:00
Pax1601
eee97294df Merge branch 'main' into 313-fix-getByRange-function 2023-07-06 13:10:10 +02:00
Pax1601
56427d84ad Merge pull request #317 from WoodyXP/131-add-navalunitdb
131 add navalunitdb
2023-07-06 13:08:48 +02:00
Pax1601
fc1983d554 Merge pull request #318 from Pax1601/312-add-ability-to-draw-areas-and-fill-with-iads
312 add ability to draw areas and fill with iads
2023-07-06 13:00:14 +02:00
Pax1601
30568e54f7 Converted demo data creation to binary data 2023-07-06 12:59:08 +02:00
Pax1601
1af98cc54f Tweaks and optimizations of front end 2023-07-05 20:14:48 +02:00
Stefan Arsic
fb3a628ad0 Update unitPayloads.lua 2023-07-05 18:55:47 +02:00
Stefan Arsic
79b0eeae9e Update unitPayloads.lua 2023-07-05 18:49:53 +02:00
WoodyXP
3b2757a022 Added all ship to the naval database and made a function to filter by ship type 2023-07-05 18:47:02 +02:00
WoodyXP
fa9f1e05ea Updated the navalunitdb and added new type range into unit types 2023-07-04 17:36:23 +02:00
WoodyXP
fff0c8244e Merge branch 'main' into 131-add-navalunitdb 2023-07-04 16:32:54 +02:00
Stefan Arsic
5777632114 Create navalunitdatabase.ts 2023-07-04 14:04:08 +02:00
WoodyXP
d013337c5e Changed the function that it gets all the units with a specified range 2023-07-03 19:06:40 +02:00
Pax1601
ec91376da2 More fixes in binary data transmission 2023-07-02 22:13:53 +02:00
Pax1601
807cdfeb5b Added code to update ammo and contacts 2023-07-01 12:31:30 +02:00
Pax1601
9f6da4845a Merge pull request #315 from WoodyXP/313-add-sam-information-V2
Added Era and Range to Sams and Ground Units V2
2023-06-29 17:16:45 +02:00
Pax1601
211cf48681 More fixes on binary data transmission 2023-06-29 08:10:14 +02:00
Pax1601
4d9dd364b6 Converted data transfer to binary key-value method 2023-06-26 18:53:04 +02:00
Stefan Arsic
52dfcebc14 Update groundunitsdatabase.ts 2023-06-26 14:14:53 +02:00
Stefan Arsic
2bce51fca6 Update groundunitsdatabase.ts 2023-06-26 14:14:21 +02:00
Stefan Arsic
3a2048f3ec Updated Era 2023-06-26 14:12:57 +02:00
Stefan Arsic
63e602afb1 Fixed some more era types 2023-06-26 09:24:02 +02:00
Stefan Arsic
7a71065b76 Fixed Typo and Era type 2023-06-26 09:21:11 +02:00
Pax1601
1989219579 Fixed update error and added update trigger 2023-06-25 19:04:12 +02:00
Pax1601
dd2e858db4 More work on client conversion to binary data 2023-06-23 17:32:38 +02:00
Pax1601
916752301a Started transition to binary data on client side 2023-06-22 22:17:00 +02:00
Pax1601
1d62b4c115 Transition to json to binary data transfers 2023-06-22 17:28:40 +02:00
WoodyXP
258f1136e2 Added Era and Range to Sams and Ground Units V2 2023-06-22 16:10:48 +02:00
Pax1601
9d0e2239e4 Added new method for handling data 2023-06-21 20:05:41 +02:00
WoodyXP
5555c44c4e Merging pax main 2023-06-21 18:26:12 +02:00
WoodyXP
f80a91ca1e Fixing Merge conflict 2023-06-21 18:20:01 +02:00
Pax1601
61d6d9f16c Added better temporary markers and more map functions 2023-06-20 17:36:21 +02:00
Pax1601
635c487c2b Added area editing functions 2023-06-19 17:14:53 +02:00
Pax1601
f9f02c3eb0 Added more functions to edit Coalition Areas 2023-06-18 19:55:01 +02:00
Pax1601
ad3b1cb167 Added basic ability to draw poligons 2023-06-16 17:32:09 +02:00
Pax1601
ca7c52ff67 Fixed error in mouse coordinates
Will need refining
2023-06-13 17:58:43 +02:00
Pax1601
feae9a4806 Minor bugfixes 2023-06-13 17:42:18 +02:00
Pax1601
6c24533393 Merge branch '153-add-ability-to-take-control-of-existing-units-from-me' 2023-06-13 17:07:21 +02:00
Pax1601
4f2debeb4f Added ability to take control of units
And bugfixes
2023-06-13 17:03:04 +02:00
Pax1601
27b56deb45 Merge pull request #302 from Pax1601/Advanced-spawn-and-control-options
Advanced spawn and control options
2023-06-12 10:00:29 +02:00
Pax1601
1d4ecf5316 Completed advanced controls also for units 2023-06-11 18:21:12 +02:00
Pax1601
fd00cffa15 Added backend for advanced commands 2023-06-06 17:27:11 +02:00
Pax1601
ab3a017b55 Minor change in distance representation 2023-06-06 14:53:46 +02:00
Pax1601
f84ff1c7b2 Merge branch 'Minor-bugfixes' into Advanced-spawn-and-control-options 2023-06-06 12:52:02 +02:00
Pax1601
1d20a3b017 Common unit functions moved to unit class 2023-06-06 12:50:18 +02:00
Pax1601
dca3438db0 Added backend for altitude type, onOff, follow roads and explosion 2023-06-05 21:22:22 +02:00
Pax1601
6c52f4de59 Added front end for area attacks 2023-06-05 17:30:37 +02:00
Pax1601
d508263f9e Minor fixes and mouse measuring restyle 2023-06-05 16:21:49 +02:00
Pax1601
ec0b179e32 Fixed confirmation menu for human deletion 2023-06-01 17:33:18 +02:00
Pax1601
0bc2fc592f Merge branch 'main' into Advanced-spawn-and-control-options 2023-06-01 17:30:38 +02:00
Pax1601
601cf35556 Merge branch 'main' into Advanced-spawn-and-control-options 2023-06-01 17:25:01 +02:00
Pax1601
156c730352 Merge pull request #300 from Pax1601/61-allow-for-spawning-of-pre-made-ground-unit-groups
Added more templates for sam sites
2023-06-01 17:22:19 +02:00
Pax1601
83f87f1e16 Added more templates for sam sites 2023-06-01 17:22:01 +02:00
Pax1601
1dd4014e61 Completed frontend controls 2023-06-01 17:18:14 +02:00
Pax1601
ed2a9d9155 Merge pull request #299 from Pax1601/bobprofisker-patch-1
Add files via upload
2023-06-01 15:58:48 +02:00
bobprofisker
bf006e725a Add files via upload
I haven't checked this works verbatim on my PC, worked on the server but bundled both files together as one for ease and didn't check it didn't error, can't see why it would though pretty simple and correct for our server will let the olympus parrots speak.
2023-05-30 21:45:03 +01:00
Pax1601
4087dbde21 Minor optimizations 2023-05-29 17:09:06 +02:00
Pax1601
982ff838a6 Merge pull request #298 from Pax1601/296-create-airbases-api
296 create airbases api
2023-05-29 15:20:17 +02:00
PeekabooSteam
8d2583264e Merge branch 'main' into 296-create-airbases-api 2023-05-29 13:44:14 +01:00
Pax1601
2db035457c Merge pull request #281 from Pax1601/164-add-confirmation-message-when-deleting-a-player
Added (crude) confirm function
2023-05-29 14:38:00 +02:00
Pax1601
7989ec2ca5 Merge pull request #297 from Pax1601/To-add-airfield-JSON-files-2023_05_24
To add airfield json files 2023 05 24
2023-05-29 14:36:10 +02:00
Pax1601
9d4f55a157 Merge pull request #294 from Pax1601/293-replace-missing-atc-images
Icons now back
2023-05-29 14:35:45 +02:00
PeekabooSteam
a56db1bdfe Merge branch 'main' into 296-create-airbases-api 2023-05-29 12:10:10 +01:00
PeekabooSteam
64ff5ce539 Airbases API added 2023-05-29 12:08:21 +01:00
Pax1601
45bb49cfe1 Added switch toggle 2023-05-27 10:06:34 +02:00
PeekabooSteam
669ec358ac Icons now back 2023-05-25 21:17:17 +01:00
PeekabooSteam
3ff182e200 Merge pull request #280 from Pax1601/278-put-real-mission-times-into-atc
278 put real mission times into atc
2023-05-24 23:33:44 +01:00
PeekabooSteam
4b709ce33b Conflict resolution 2023-05-24 23:32:53 +01:00
PeekabooSteam
a5a2a803c6 Fixed casing. 2023-05-24 23:13:47 +01:00
PeekabooSteam
e6d642994c Improved check for humans 2023-05-24 21:55:09 +01:00
PeekabooSteam
4e9eab2cce Warning now only shows when humans are in the selection. 2023-05-24 21:38:35 +01:00
Stefan Arsic
e4e9e44eea Create persiangulf.json 2023-05-24 18:34:03 +02:00
Pax1601
9586910f03 Added AGL/ASL switch 2023-05-24 17:37:41 +02:00
Shredmetal
f26dfa5011 Update caucasus.json to match airfield names with game files 2023-05-24 22:24:50 +08:00
Shredmetal
f9aae2bccf Add Nevada airfield data 2023-05-24 22:19:16 +08:00
Shredmetal
bdff79c725 Merge pull request #291 from Pax1601/main
Minor fixes (merging from main)
2023-05-24 22:18:14 +08:00
Pax1601
ec872e181d Minor fixes 2023-05-24 15:15:44 +02:00
Shredmetal
1c86002ca5 Merge pull request #290 from Pax1601/main
Merge main commits into airfield JSON addition branch
2023-05-24 18:35:18 +08:00
Shredmetal
3ee6c57d33 Added Marianas, fixed ICAO for Akrotiri 2023-05-24 18:32:55 +08:00
Pax1601
5f2f2a83dd Merge pull request #279 from Pax1601/coalitionChecker
Add files via upload
2023-05-24 11:09:21 +02:00
Pax1601
1b0a0825e6 Merge pull request #288 from Pax1601/273-add-ability-for-units-to-retain-relative-position
273 add ability for units to retain relative position
2023-05-24 11:08:27 +02:00
Pax1601
3009a73a66 Completed transition to injected svgs 2023-05-24 11:07:41 +02:00
Pax1601
e7ce9ac76d More svg injection, removing stringed html from code 2023-05-24 08:21:04 +02:00
Stefan Arsic
80a4ea1ab9 Create caucasus.json 2023-05-23 20:33:08 +02:00
Shredmetal
5dd9ed42b0 Added syria airfield data 2023-05-24 01:33:33 +08:00
Shredmetal
5c5fa928e7 Delete client/src/airfield_data directory 2023-05-24 01:32:23 +08:00
Shredmetal
2597fb659f Rename syria_airfields.json to syriaAirfields.json 2023-05-24 01:31:54 +08:00
Shredmetal
d4d28d39ae Add files via upload
JSON file containing information on all airfields on the Syria map
2023-05-24 00:26:12 +08:00
Pax1601
a2664dc676 Refactoring of files and more svg tidy up 2023-05-22 17:39:33 +02:00
Pax1601
32cb147a02 More restyling with svg images 2023-05-22 08:22:50 +02:00
PeekabooSteam
05a8085e06 ATC now 'live'; added visual improvemnts. 2023-05-20 22:17:04 +01:00
bobprofisker
0392c43835 Add files via upload
Wasn't sure if you were serious about wanting the code for how to get all the coalitions out of the mission file, this is how you do it and how you can get a string for what it actually is if that is needed.
2023-05-20 22:16:41 +01:00
Pax1601
a6583cc317 Added resources router 2023-05-19 21:20:33 +02:00
Pax1601
bf88c9b951 Implemented group destination spacing 2023-05-19 14:38:28 +02:00
Pax1601
9cc0058e32 Minor graphic tweaks 2023-05-19 09:17:11 +02:00
Pax1601
9eb295d9a1 Added auto selection of units in group 2023-05-18 17:48:03 +02:00
Pax1601
10d250e3a5 Added basic template spawning 2023-05-18 09:09:20 +02:00
PeekabooSteam
2b155c4ed3 ATC clocks now synched to mission time 2023-05-17 19:36:12 +01:00
PeekabooSteam
4a93c1eead Added (crude) confirm function 2023-05-17 16:59:36 +01:00
Pax1601
0b490e4ce2 Merge pull request #277 from Pax1601/264-add-avanced-unit-control-options
264 add avanced unit control options
2023-05-17 16:17:33 +02:00
Pax1601
03a8c93e9e Added advanced unit controls
Radio, ECM, countermeasures and prohibits
2023-05-17 16:17:17 +02:00
Pax1601
84cca6b9d1 Merge pull request #276 from Pax1601/Update-UnitDataBase-and-AircraftDatabase-(DO-NOT-MERGE-WITHOUT-TESTING)
Update unit data base and aircraft database (do not merge without testing)
2023-05-17 12:07:52 +02:00
Pax1601
0f353641ed Merge branch 'main' into Update-UnitDataBase-and-AircraftDatabase-(DO-NOT-MERGE-WITHOUT-TESTING) 2023-05-17 12:07:37 +02:00
Pax1601
16c37a3445 Merge pull request #275 from Pax1601/271-add-unit-hotgroups
271 add unit hotgroups
2023-05-17 11:43:34 +02:00
Pax1601
25d411b1be Completed hotgroups
Single hotgroup per unit
2023-05-17 11:43:14 +02:00
Pax1601
493c75b6e7 Added hotgroups ui and basic functions
User interaction still TBD
2023-05-15 17:37:20 +02:00
Pax1601
1ca2c66b45 Merge pull request #270 from Pax1601/v0.2.2-fixes
Fixed #261 and #262
2023-05-15 15:09:23 +02:00
Pax1601
772c065a73 Fixed #261 and #262 2023-05-15 15:08:56 +02:00
Pax1601
71ef292763 Added frontend controls for emissions and countermeasures 2023-05-11 17:24:56 +02:00
Pax1601
98a6053a85 v0.2.1 release 2023-05-10 17:07:26 +02:00
Pax1601
7d3debfa7a Merge pull request #259 from Pax1601/221-dont-allow-to-give-tasks-to-human-players
Removed options to command human units
2023-05-10 16:54:52 +02:00
Pax1601
847234633a Removed options to command human units 2023-05-10 16:54:36 +02:00
Pax1601
47d9ff2e10 Merge pull request #258 from Pax1601/236-clean-up-server-from-dead-units
Optimized transmission of data of dead units
2023-05-10 16:14:15 +02:00
Pax1601
e69294b98c Optimized transmission of data of dead units
Dead units only transmit basedata. Empty fields and empty units are removed from update packages.
2023-05-10 16:13:55 +02:00
Pax1601
cf3cdcbd44 Merge pull request #257 from Pax1601/210-fix-ordinance-indicators-below-unit-markers
Ordnance markers are now painted correctly
2023-05-10 11:50:44 +02:00
Pax1601
7545e848d6 Ordnance markers are now painted correctly 2023-05-10 11:50:26 +02:00
Pax1601
d146a47e71 Merge pull request #255 from Pax1601/38-user-authentication-missing
38 user authentication missing
2023-05-10 08:59:21 +02:00
Pax1601
91f8996fba Implemented basic authentication
Also fixed Tankers and AWACS which now operate as expected
2023-05-10 08:59:02 +02:00
Pax1601
57b74bd1b1 Added frontend code for authentication 2023-05-09 15:41:04 +02:00
Pax1601
865be6283c Merge branch 'main' of https://github.com/Pax1601/DCSOlympus 2023-05-05 17:12:16 +02:00
Pax1601
e0636b53f0 Added tristate coalition switch 2023-05-05 17:11:28 +02:00
Pax1601
987c8ee41c Merge pull request #254 from Pax1601/216-increase-ui-reactivity
Removed 200ms delay and small UI fixes
2023-05-04 17:34:08 +02:00
Pax1601
e54a70ffa8 Removed 200ms delay and small UI fixes 2023-05-04 17:32:55 +02:00
Pax1601
fcf1e2d94a Merge pull request #253 from Pax1601/186-style-dropdown-scrollbars
Partially styled, fixed custom fonts
2023-05-04 16:03:47 +02:00
Pax1601
35648b67f5 Partially styled, fixed custom fonts 2023-05-04 16:03:28 +02:00
Pax1601
f0dc581261 Merge pull request #252 from Pax1601/217-dropdowns-dont-close-when-clicking-outside-of-them
Dropdowns now close when clicking outside of them
2023-05-04 09:54:43 +02:00
Pax1601
7ecfc5afef Dropdowns now close when clicking outside of them 2023-05-04 09:54:26 +02:00
Pax1601
e3b88d4e35 Merge pull request #251 from Pax1601/220-add-temporary-marker-for-units-spawning
Added temporary spawn marker
2023-05-03 19:15:21 +02:00
Pax1601
669ee510d3 Added temporary spawn marker 2023-05-03 19:15:00 +02:00
Pax1601
b8edc500c4 Merge pull request #250 from Pax1601/241-ground-units-can-not-be-copy-pasted
Ground units can now be copy-pasted
2023-05-03 10:08:37 +02:00
Pax1601
dc57028a3c Ground units can now be copy-pasted 2023-05-03 10:07:38 +02:00
Pax1601
9eb01654c6 Merge pull request #249 from Pax1601/213-request-spawn-on-airfield
Takeoff task changed to TakeoffParkingHot
2023-05-03 09:22:21 +02:00
Pax1601
8539314984 Takeoff task changed to TakeoffParkingHot 2023-05-03 09:22:00 +02:00
Pax1601
cb24a19d17 Small fixes to map panning 2023-05-02 15:50:55 +02:00
Pax1601
bd7700efce Merge pull request #248 from Pax1601/245-map-cant-be-panned-with-arrows-if-unit-is-selected
Multiple map panning fixes and improvements
2023-05-02 14:30:59 +02:00
Pax1601
a23bdd4b33 Multiple map panning fixes and improvements 2023-05-01 21:51:46 +02:00
Pax1601
7427c7059c Fixed error due to missing declarations 2023-05-01 11:12:21 +02:00
Shredmetal
d32923ffe8 Added AircraftDatabase with era
DO NOT MERGE WITHOUT TESTING. This will break olympus as of the date of upload.
2023-05-01 17:05:16 +08:00
Pax1601
89a71ef04e Merge pull request #243 from Pax1601/209-update-follow-functionality-for-ordering-units
209 update follow functionality for ordering units
2023-05-01 10:37:59 +02:00
Pax1601
640f764354 Implemented as described in issue 2023-05-01 10:37:40 +02:00
Shredmetal
2dad717a42 Updated GroundUnitsDatabase
This will cause the current build to crash as it does not recognise the "effective_target" key: value pair. Do not merge into main until this has been addressed.
2023-05-01 15:54:36 +08:00
Pax1601
ee08d9d48e Started work on better follow functionality
And other minor fixes
2023-04-28 17:32:28 +02:00
Pax1601
bf365270ae Merge pull request #230 from Pax1601/218-add-humandcs-controlledolympus-controller-icon
218 add humandcs controlledolympus controller icon
2023-04-28 15:43:22 +02:00
Pax1601
6ec2235114 Fixed units jumping back 2023-04-27 16:06:08 +02:00
Pax1601
8f7071510b Merge pull request #225 from Shredmetal/Add-loadouts-to-aircraftdatabase-and-unipayloads-22/4
Add files via upload
2023-04-27 12:27:48 +02:00
Shredmetal
1f72612255 Add files via upload
fixed issues with the tomcat loadouts in use - ISSUE WILL RESURFACE IF NEW LOADOUTS ADDED. Remember to change the unitPayloads lua together with the AircraftDatabase
2023-04-27 02:45:04 +08:00
Shredmetal
94c5765bc6 Add files via upload
fixed references to aircraftdatabase
2023-04-27 02:43:08 +08:00
Pax1601
04c7fc3741 Added human and DCS controlled icons 2023-04-26 17:42:17 +02:00
Pax1601
40bcd46677 Added minimap and scale 2023-04-26 16:49:01 +02:00
Shredmetal
ab736adabe Add files via upload
Helicopterdatabase
2023-04-26 05:19:55 +08:00
Pax1601
f4fd516d92 Merge pull request #214 from Shredmetal/Add-loadouts-to-aircraftdatabase-and-unipayloads-22/4
Changed aircraftdatabase.ts and unitpayloads.lua
2023-04-24 19:23:03 +02:00
Shredmetal
4c3cfc608b Add files via upload
Added MiG-21Bis Fox-1 only loadout
2023-04-24 18:54:47 +08:00
Shredmetal
6ae23509a6 Add files via upload
added MiG-21Bis loadout, fox 1 only
2023-04-24 18:53:49 +08:00
Shredmetal
20077417af Add files via upload
replacing deleted unitpaylods
2023-04-22 23:47:41 +08:00
Shredmetal
673e00c0e8 Delete unitPayloads.lua
Delete to reuploaded amended unitpayloads
2023-04-22 23:36:36 +08:00
Shredmetal
197159fc2a Add files via upload
Updated aircraftdatabase.ts
2023-04-22 23:33:06 +08:00
Shredmetal
1ca0029407 Delete aircraftdatabase.ts
Delete to reupload amended file
2023-04-22 23:31:07 +08:00
Pax1601
b72d92ffd7 Fixed installer 2023-04-22 10:07:21 +02:00
Pax1601
e04e4b2dec Merge pull request #203 from Pax1601/146-add-in-game-clock-time-to-data-stream
Implemented
2023-04-21 19:10:31 +02:00
Pax1601
35709987e7 Implemented
Added date, start time, elapsed time, current time
2023-04-21 19:10:03 +02:00
Pax1601
bcc6b5b5c3 Merge pull request #202 from Pax1601/200-multiple-errors-referring-to-script
Issue fixed by updating MIST and checking method existance
2023-04-21 19:00:51 +02:00
Pax1601
a047a04d09 Issue fixed by updating MIST and checking method existance 2023-04-21 19:00:29 +02:00
Pax1601
f6d16944c2 Added loadouts 2023-04-21 18:10:09 +02:00
Pax1601
ee361f12f2 Merge pull request #201 from Pax1601/194-atc-tower-assign-altitude
Adding missing files.
2023-04-20 20:20:59 +02:00
PeekabooSteam
14cdec9615 Adding missing files. 2023-04-20 19:14:19 +01:00
Pax1601
5cff54bfde Merge branch 'main' of https://github.com/Pax1601/DCSOlympus 2023-04-20 17:28:49 +02:00
Pax1601
a9e18e42d3 Added missing planes 2023-04-20 17:28:46 +02:00
Pax1601
6ce9b2ddea Merge pull request #199 from Pax1601/feature-atc-tower
Feature atc tower
2023-04-20 15:50:50 +02:00
PeekabooSteam
06f10cd399 Merge pull request #198 from Pax1601/194-atc-tower-assign-altitude
Added assigned speeds, alts, select unit.
2023-04-20 14:23:57 +01:00
PeekabooSteam
3124a0f6b5 Added assigned speeds, alts, select unit. 2023-04-20 14:22:16 +01:00
dpassoni
090973a3d1 Updated version 2023-04-20 12:36:43 +02:00
Pax1601
992b1d40c9 Merge pull request #196 from Pax1601/73-add-tankers-and-awacs-spawning
73 add tankers and awacs spawning
2023-04-20 12:18:57 +02:00
Pax1601
41be6402cd Merge branch 'main' into 73-add-tankers-and-awacs-spawning 2023-04-19 16:35:37 +02:00
Pax1601
c3c84b2115 Follow, tankers and AWACS completed 2023-04-19 16:30:14 +02:00
Pax1601
f24c57cc18 Follow feature completed 2023-04-19 10:19:56 +02:00
Pax1601
cfd98e74ea Added states and more work on custom formations 2023-04-18 11:01:31 +02:00
Pax1601
be69aeb69e Custom formations 2023-04-17 18:01:23 +02:00
PeekabooSteam
79f616cf8d Merge pull request #195 from Pax1601/193-atc-tower-manually-sort-strips
Flights now sortable.
2023-04-16 23:42:04 +01:00
PeekabooSteam
d77735581a Flights now sortable. 2023-04-16 23:34:00 +01:00
Pax1601
77d39c17b8 More work on follow and tanking (added combo tasks) 2023-04-16 20:24:33 +02:00
PeekabooSteam
3eefe441b4 Merge pull request #192 from Pax1601/188-atc-tower-add-plane-to-strip-board-via-click
Can add flights by click.
2023-04-16 13:15:56 +01:00
PeekabooSteam
e84fa7caaa Can add flights by click. 2023-04-16 12:58:14 +01:00
PeekabooSteam
a3d919bad9 Merge pull request #190 from Pax1601/187-atc-tower-list-planes-being-monitored
Flights now listed by board.
2023-04-14 23:13:46 +01:00
PeekabooSteam
8707982769 Flights now listed by board. 2023-04-14 23:11:55 +01:00
Pax1601
39698c66a3 More work on follow and tanking 2023-04-14 17:30:10 +02:00
Pax1601
b56f1ca547 Fixed checkbox and frequency 2023-04-14 07:59:24 +02:00
Pax1601
4a90193426 Added functions to set TACAN and radio frequencies 2023-04-13 08:09:15 +02:00
Pax1601
7eee469bed More work on advanced settings dialog 2023-04-12 17:21:36 +02:00
Pax1601
316261e01e Started to implement advanced settings 2023-04-11 20:30:59 +02:00
Pax1601
df2aef498f Updated version numbers 2023-04-11 20:30:19 +02:00
Pax1601
f4bb484c7d Merge pull request #179 from Pax1601/atc-mission-board
Atc mission board
2023-04-11 15:23:09 +02:00
Pax1601
f4ddbbd1af Merge pull request #184 from Pax1601/180-unit-loadout-overflows-unitinfopanel
String management for loadout items.
2023-04-11 15:22:04 +02:00
Pax1601
c3233ad999 Merge pull request #185 from Pax1601/181-dropdowns-can-overflow-to-window-page
Dropdowns limited to 382px.  Ground unit types are automatically sorted
2023-04-11 15:21:22 +02:00
Pax1601
1f51d69126 Added basic tanker and AWACS enroute tasks
Tanker not working propertly yet, frequency setting still needed
2023-04-11 15:20:17 +02:00
PeekabooSteam
14ae0d083f Dropdowns limited to 382px. Ground unit types are automatically sorted 2023-04-09 15:22:27 +01:00
PeekabooSteam
8d951410e5 String management for loadout items. 2023-04-09 10:49:40 +01:00
PeekabooSteam
7605dd26ff Resolved conflicts 2023-04-09 09:54:21 +01:00
Pax1601
1b093782c3 Merge pull request #182 from Pax1601/176-minus-keystroke-zooms-out-and-brings-up-unit-list
Removed callback at "minus" keypress
2023-04-09 10:12:41 +02:00
Pax1601
2947d55bc5 Merge pull request #183 from Pax1601/163-f-15c-instant-action-cc-bomber-intercept-crashes-olympus
Added check on existance of mist structures
2023-04-09 10:12:29 +02:00
Pax1601
103fcde426 Removed callback at "minus" keypress 2023-04-09 10:11:51 +02:00
Pax1601
3193eb0021 Added check on existance of mist structures 2023-04-09 10:08:49 +02:00
Pax1601
0456bbef52 Minor bugfix on demo data 2023-04-09 09:48:49 +02:00
Pax1601
c54c7d2d78 Merge pull request #174 from Pax1601/147-speed-and-altitude-controls-jumping-back
Sliders no longer jump after update.
2023-04-08 15:16:07 +02:00
Pax1601
9c834e4072 Merge pull request #170 from Pax1601/149-loadout-numbers-overflowing
Aligned numbers within pills.
2023-04-08 15:04:51 +02:00
Pax1601
b10522498b Merge pull request #171 from Pax1601/111-measurebox-shows-000-when-measuring-north-should-read-360
111 measurebox shows 000 when measuring north should read 360
2023-04-08 15:01:44 +02:00
Pax1601
fd23fd3034 Merge pull request #172 from Pax1601/148-missing-scrollbar-for-units-buttons
Added scrollable to selected units' list; bit of tidying up.
2023-04-08 15:00:06 +02:00
Pax1601
3aa6d27ed3 Merge pull request #177 from Pax1601/175-keystrokes-in-input-fields-are-triggering-shortcuts
keyEventWasInInput() function added.
2023-04-08 14:55:36 +02:00
Pax1601
b98c392f79 Merge pull request #178 from Pax1601/121-spawn-context-menu-and-airbase-menu-overflow-window
Clipping is now less bad.
2023-04-08 14:54:15 +02:00
PeekabooSteam
071942b632 Slightly nicer PoC. 2023-04-04 23:38:08 +01:00
PeekabooSteam
5dda45ad22 Clipping is now less bad. 2023-04-04 19:16:00 +01:00
PeekabooSteam
6ffcb76f03 keyEventWasInInput() function added. 2023-04-04 15:51:11 +01:00
PeekabooSteam
6993650ff8 Sliders no longer jump after update. 2023-04-04 15:04:45 +01:00
PeekabooSteam
6b22c1ef63 Added scrollable to selected units' list; bit of tidying up. 2023-03-31 21:06:46 +01:00
PeekabooSteam
ee6fadfb36 Merge branch '111-measurebox-shows-000-when-measuring-north-should-read-360' of https://github.com/Pax1601/DCSOlympus into 111-measurebox-shows-000-when-measuring-north-should-read-360 2023-03-31 20:31:45 +01:00
PeekabooSteam
2f5b9d1f94 360 now shows for bullseyes. 2023-03-31 20:31:36 +01:00
PeekabooSteam
b9f32a5b82 Aligned numbers within pills. 2023-03-31 20:27:04 +01:00
PeekabooSteam
6f64bd1622 ATC Ground board PoC. 2023-03-29 21:15:33 +01:00
Pax1601
ff20eec472 Merge pull request #169 from Pax1601/71-add-counters-to-data-to-avoid-units-jumping-back
Added check on message time
2023-03-29 09:19:53 +02:00
Pax1601
9c9d53f3fb Added check on message time 2023-03-29 09:19:35 +02:00
Pax1601
b4e34bf9e4 Merge pull request #168 from Pax1601/155-pasting-units-generates-many-units-if-ctrl+v-is-held-down
Maximum paste rate set to once every 250ms
2023-03-29 09:00:16 +02:00
Pax1601
73a539bf94 Removed log 2023-03-29 09:00:04 +02:00
Pax1601
ac44c208a8 Maximum paste rate set to once every 250ms 2023-03-29 08:59:32 +02:00
Pax1601
04618cb247 Merge pull request #167 from Pax1601/166-ground-unit-type-not-selected
Fixed
2023-03-29 08:54:20 +02:00
Pax1601
3bdba116e8 Fixed 2023-03-29 08:54:03 +02:00
Pax1601
ea94d8ac24 Merge branch 'main' of https://github.com/Pax1601/DCSOlympus 2023-03-29 08:51:08 +02:00
Pax1601
ab51a76075 Client modified to work on any address 2023-03-29 08:51:05 +02:00
Pax1601
cae9b16d97 Merge pull request #157 from Pax1601/156-delete-lua-function-can-cause-player-desync-in-multiplayer
updated Olympus.delete to avoid player desync
2023-03-28 14:27:28 +02:00
Wirts Legs
ee6537de7c updated Olympus.delete to avoid player desync 2023-03-27 19:16:50 -04:00
Pax1601
efae7c23ff Merge pull request #152 from Pax1601/151-spawn-menu-not-working-in-firefox
PointerEvent changed to MouseEvent.
2023-03-27 09:19:50 +02:00
PeekabooSteam
df79f6577b PointerEvent changed to MouseEvent. 2023-03-26 20:10:25 +01:00
PeekabooSteam
14147168f9 ATC stuff. 2023-03-26 20:00:23 +01:00
Pax1601
b1d14932da Merge pull request #145 from Pax1601/bobprofisker-patch-2
Add files via upload
2023-03-26 18:36:33 +02:00
Pax1601
6c049af18a Merge pull request #144 from Pax1601/bobprofisker-patch-1
Add files via upload
2023-03-26 18:36:15 +02:00
Pax1601
6a1bb18a3f Installer fixes 2023-03-26 18:30:21 +02:00
Pax1601
ebb410a192 Merge pull request #143 from Pax1601/76-add-configuration-file-for-server-properties
Added configuration file to set address and port
2023-03-26 18:05:53 +02:00
Pax1601
911a81169b Minor bugfixes 2023-03-26 18:04:17 +02:00
Pax1601
658efe3daf Added icon 2023-03-26 16:50:52 +02:00
PeekabooSteam
da008c220d Added beginnings of new ATC framework. 2023-03-26 15:39:21 +01:00
Pax1601
99ce8469bd Merge branch 'main' into 76-add-configuration-file-for-server-properties 2023-03-26 15:57:47 +02:00
PeekabooSteam
d86a250575 Remove old ATC code. 2023-03-26 11:00:20 +01:00
Pax1601
d19b277184 Fixed flag in installer 2023-03-26 11:29:45 +02:00
Pax1601
40a36846d2 Merge pull request #142 from Pax1601/98-roe-and-reaction-icons-not-correct-or-in-correct-order
Updated RoE and threat icons.
2023-03-26 11:08:31 +02:00
Pax1601
51a78cbaf2 Removed unnecessary logs 2023-03-26 11:06:10 +02:00
Pax1601
25d0f031d5 Added configuration file to set address and port 2023-03-26 11:04:17 +02:00
PeekabooSteam
b332b2a75b Added a more dynamic way of passing data to the UI. 2023-03-26 09:42:48 +01:00
bobprofisker
d8237d1e9a Add files via upload
bunch of different basic scripts for lots of basic, and not so basic functionality in dcs
2023-03-25 22:06:07 +00:00
bobprofisker
8ad25a32c0 Add files via upload
Cool effects, WP, secondary explosions, normal explosions and smoke etc nuff said
2023-03-25 22:04:07 +00:00
PeekabooSteam
eb97588ffa Updated RoE and threat icons. 2023-03-25 16:57:55 +00:00
Pax1601
0f2d9feba5 Merge pull request #141 from Pax1601/ArtificialDogma-patch-1
Multiple icon additions and changes
2023-03-25 10:02:11 +01:00
Dogma
0fa3f36351 Multiple icon additions and changes
Made multiple additions and changes to icons.
Note: made all menu icons 35x35 px (except the new bomb icon, which is a unit icon - these are still 50x50 px) to ensure correct alignment and sizing. 
ROE and Threat changed as per the discussion in discord based on the following final list:

ROE:
Attack all
Attack target only
Defend
Hold

Reaction:
Manoeuvre and countermeasures
Countermeasures only
None

Changes include:
- Added new bomb icon (blue, red, neutral).
- Updated ROE icons (roe_stop, roe_defend, roe_target, roe_attack)
- Updated threat icons (threat_nothing, threat_cms, threat_defend)
- Updated formation icons (form_admin, form_abreast, form_echelon, form_trail)
- Updated action icons (actions_cancel, actions_rtb, actions_gas, actions_180)
- Added misc icons, including settings, gas, plane, map, visible and brush.
2023-03-25 14:36:11 +11:00
Pax1601
4e6f8c4805 Merge pull request #140 from Pax1601/96-bomb-marker-missing
Added bomb marker
2023-03-24 20:17:33 +01:00
Pax1601
8ec2678e66 Added bomb marker 2023-03-24 17:35:11 +01:00
Pax1601
a6eaacea11 Fixed error in spawn menu 2023-03-24 17:06:50 +01:00
Pax1601
d549898428 Merge pull request #134 from Pax1601/130-sliders-do-not-disappear-if-multiple-unit-types-are-selected
Sliders hidden when required
2023-03-24 16:54:37 +01:00
Pax1601
191021befe Merge branch 'main' into 130-sliders-do-not-disappear-if-multiple-unit-types-are-selected 2023-03-24 16:54:25 +01:00
Pax1601
4c46db12fb Merge pull request #139 from Pax1601/128-dead-units-dont-disappear
Multiple fixes
2023-03-24 16:53:08 +01:00
Pax1601
a5ee5b0ad5 Multiple fixes
Refactored classes
Fixed visibility of dead units
Changed visibility handling
Refactored unitDatabase class
2023-03-24 16:18:25 +01:00
Pax1601
eaacbb417c Sliders hidden when required 2023-03-24 10:41:11 +01:00
Pax1601
1e8c9ed401 Merge pull request #133 from Pax1601/102-smoke-spawn-menu-doesnt-work
102 smoke spawn menu doesnt work
2023-03-24 09:23:09 +01:00
Pax1601
f3b872f89c Menu spawn fixed 2023-03-24 09:22:20 +01:00
Pax1601
13d49e6b5f Menu now closes when clicking 2023-03-24 09:13:35 +01:00
Pax1601
61dd9924bf Merge pull request #132 from Pax1601/86-unit-control-panel-unit-button-style-to-be-revised-and-fixed
Ground units' name no longer repeats, unit name now dynamic.
2023-03-23 14:08:12 +01:00
PeekabooSteam
ab01003ae6 Ground units' name no longer repeats, unit name now dynamic. 2023-03-23 10:02:03 +00:00
Pax1601
c519777f5e Merge pull request #129 from Pax1601/86-unit-control-panel-unit-button-style-to-be-revised-and-fixed
Tweaked ammo, set red accent colour.
2023-03-23 10:34:43 +01:00
PeekabooSteam
735e257900 Tweaked ammo, set red accent colour. 2023-03-23 09:01:15 +00:00
Pax1601
c30c88ad61 Merge pull request #126 from Pax1601/86-unit-control-panel-unit-button-style-to-be-revised-and-fixed
86 unit control panel unit button style to be revised and fixed
2023-03-23 09:02:11 +01:00
PeekabooSteam
49ded7f039 First commit for unit info panel. 2023-03-22 23:45:17 +00:00
PeekabooSteam
1f2887c75a Added a colour scheme for red. 2023-03-22 20:20:21 +00:00
PeekabooSteam
3b5ea9c050 Added border radius to it's even nicer. 2023-03-22 19:11:49 +00:00
PeekabooSteam
bd9eb4b827 Made the unit list in selection panel look nicer. 2023-03-22 19:09:25 +00:00
Pax1601
eeace17da9 Merge pull request #124 from Pax1601/111-measurebox-shows-000-when-measuring-north-should-read-360
000 is now 360 in the measurebox and the panel.
2023-03-22 18:22:07 +01:00
PeekabooSteam
fd8f5aa959 000 is now 360 in the measurebox and the panel. 2023-03-22 17:20:32 +00:00
Pax1601
c8d809c3e7 Fixed error in Olympus Command
And added some minor optimization
2023-03-22 17:50:45 +01:00
Pax1601
01852518b7 Merge pull request #119 from Pax1601/91-spawn-from-airbase-not-working
Added spawn from airbase code
2023-03-22 17:18:04 +01:00
Pax1601
4b1a4e03f3 Merge pull request #120 from Pax1601/92-land-here-command-not-working
Added call to land here button
2023-03-22 17:17:56 +01:00
Pax1601
4959df98f6 Merge pull request #123 from Pax1601/83-target-speed-and-altitude-sliders-have-bad-minimum-and-maximum-values
Sliders now have better max and min values
2023-03-22 17:17:48 +01:00
Pax1601
43dcb097ed Moved OlympusMission inside OlympusCommand 2023-03-22 17:16:31 +01:00
Pax1601
f1344b600c Sliders now have better max and min values
And they also have fixed increments
2023-03-22 09:11:12 +01:00
Pax1601
b980431aed Merge pull request #122 from Pax1601/95-waypoints-not-cleared-upon-reaching
Added functions for activePath manipulation
2023-03-22 08:40:57 +01:00
Pax1601
73d037a79a Added functions for activePath manipulation 2023-03-21 22:01:36 +01:00
Pax1601
b3c1cbdba5 Added call to land here button 2023-03-21 21:39:55 +01:00
Pax1601
2212162239 Added spawn from airbase code
The spawn from airbase code has been added. A couple of fixes to the UnitDataTable.
2023-03-21 21:22:29 +01:00
Pax1601
3833102216 Merge pull request #118 from Pax1601/90-incorrect-task-pill
Fixed task pill
2023-03-21 17:06:11 +01:00
Pax1601
b24f706582 Fixed task pill 2023-03-21 17:05:36 +01:00
Pax1601
2d47b93445 Merge pull request #117 from Pax1601/tony-scripts-merge-me
Add files via upload
2023-03-21 16:44:50 +01:00
Pax1601
09057c5d39 Merge pull request #113 from Pax1601/82-target-speed-and-altitude-sliders-dont-show-mixed-values-when-needed
82 target speed and altitude sliders dont show mixed values when needed
2023-03-21 14:40:21 +01:00
Pax1601
bdf520723b Merge pull request #114 from Pax1601/89-delete-unit-button-in-unit-control-button-not-working
Delete button connected
2023-03-21 14:40:11 +01:00
Pax1601
7a2d7ce526 Merge pull request #115 from Pax1601/79-automatic-theater-selection-only-works-for-syria
Added data for other theaters
2023-03-21 14:39:47 +01:00
bobprofisker
839bf68f6e Add files via upload
just the code in game to create an IR laser and then obliterate the thing a bit later, can also work for us self marking or actually creating an actual laser that can guide bombs with codes set https://wiki.hoggitworld.com/view/DCS_Class_Spot for more info. You can't see laser in NVGs, just IR marker, you can only guide weapons on laser.
2023-03-21 12:48:26 +00:00
dpassoni
7f77adf6c7 Added data for other theaters 2023-03-21 13:06:21 +01:00
dpassoni
f0e5d83e73 Delete button connected 2023-03-21 11:03:36 +01:00
dpassoni
ca3ce60ac7 Fixed 2023-03-21 10:45:27 +01:00
dpassoni
79d8ca260a ROE and reaction to threat buttons are now updated to reflect the state of the selected units 2023-03-21 10:32:11 +01:00
Pax1601
e8a476e1c7 Merge pull request #110 from Pax1601/80-hidden-units-are-still-selectable
80 hidden units are still selectable
2023-03-20 21:37:16 +01:00
Pax1601
298856f318 Hidden units are no longer selectable 2023-03-20 21:36:22 +01:00
Pax1601
5e525a2e5c Merge pull request #109 from Pax1601/94-missiles-icon-not-rotating
Missiles now point in the right direction.
2023-03-20 21:07:47 +01:00
PeekabooSteam
22c6d06a6f Merge branch 'main' into 94-missiles-icon-not-rotating 2023-03-20 18:47:52 +00:00
PeekabooSteam
bf396edd2b Missiles now point in the right direction. 2023-03-20 18:39:29 +00:00
Pax1601
5a3a14f546 Merge pull request #107 from Pax1601/84-unit-markers-show-heading-instead-of-speed
Changed heading for speed
2023-03-20 19:18:46 +01:00
Pax1601
9f5ddf8f79 Merge pull request #108 from Pax1601/75-at-mouse-coordinates-not-shown-in-panel
75 at mouse coordinates not shown in panel
2023-03-20 19:18:09 +01:00
Pax1601
7d25c26324 Merge pull request #78 from Pax1601/unit-list
Unit list
2023-03-20 19:17:11 +01:00
dpassoni
218a8dc3f0 Added demo mission data 2023-03-20 17:44:14 +01:00
PeekabooSteam
dd7d54603f Mouse co-ordinates work; N/S and E/W are not negative. 2023-03-20 16:25:24 +00:00
PeekabooSteam
5033cccda0 Selected unit measurement now works. 2023-03-20 14:20:42 +00:00
PeekabooSteam
314fd2a565 Changed heading for speed 2023-03-20 13:19:49 +00:00
PeekabooSteam
764064fc0d Aligned getting and naming convention. 2023-03-20 11:57:01 +00:00
PeekabooSteam
fa03e9dbd8 Merge branch 'main' of https://github.com/Pax1601/DCSOlympus into unit-list 2023-03-20 11:54:53 +00:00
Pax1601
d87139b619 Merge pull request #93 from Pax1601/81-demo-loadout-data-still-present
Fixed issue
2023-03-19 19:32:48 +01:00
Pax1601
eaddb72857 Fixed scripts versions 2023-03-19 19:29:59 +01:00
Pax1601
7f0d3e0379 Fixed issue 2023-03-19 19:29:37 +01:00
Pax1601
3c0db70bfe Fixed wrong airbases.css 2023-03-16 19:28:29 +01:00
PeekabooSteam
2a8ab0f8cf Unit list v0.0.0.0.1 done. 2023-03-16 16:01:49 +00:00
PeekabooSteam
7f237bf8b8 Merge branch 'main' of https://github.com/Pax1601/DCSOlympus into unit-list 2023-03-16 15:31:07 +00:00
PeekabooSteam
d9234f9c5f Merge branch 'v0.1.0' of https://github.com/Pax1601/DCSOlympus into unit-list 2023-03-16 15:07:16 +00:00
PeekabooSteam
4c6d445c4a Unit list. 2023-03-16 15:06:42 +00:00
WoodyXP
880ce3919d Added emtpy Loadouts for all aircraft 2023-02-14 15:27:35 +01:00
WoodyXP
b489659ddd Merge branch 'main' of https://github.com/WoodyXP/DCSOlympus 2023-02-14 01:39:40 +01:00
WoodyXP
f8344b1662 Added CLSID to payloadNames.js, Updated the payLoadConverter.py so the CLSID can be added, Added 1 custom Loadout in unitPayloads.lue 2023-02-14 01:36:36 +01:00
425 changed files with 50808 additions and 12624 deletions

View File

@@ -1,7 +0,0 @@
RTB
tanker
scenario dropdown
explosion
wrong name for ground units
improve map zIndex
human symbol if user

View File

@@ -2,10 +2,14 @@ var express = require('express');
var path = require('path'); var path = require('path');
var cookieParser = require('cookie-parser'); var cookieParser = require('cookie-parser');
var logger = require('morgan'); var logger = require('morgan');
var fs = require('fs');
var indexRouter = require('./routes/index'); var atcRouter = require('./routes/api/atc');
var uikitRouter = require('./routes/uikit'); var airbasesRouter = require('./routes/api/airbases');
var usersRouter = require('./routes/users'); var indexRouter = require('./routes/index');
var uikitRouter = require('./routes/uikit');
var usersRouter = require('./routes/users');
var resourcesRouter = require('./routes/resources');
var app = express(); var app = express();
@@ -16,20 +20,23 @@ app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public'))); app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter); app.use('/', indexRouter);
app.use('/api/atc', atcRouter);
app.use('/api/airbases', airbasesRouter);
app.use('/users', usersRouter); app.use('/users', usersRouter);
app.use('/uikit', uikitRouter); app.use('/uikit', uikitRouter);
app.use('/resources', resourcesRouter);
app.set('view engine', 'ejs'); app.set('view engine', 'ejs');
let rawdata = fs.readFileSync('../olympus.json');
let config = JSON.parse(rawdata);
if (config["server"] != undefined)
app.get('/config', (req, res) => res.send(config["server"]));
module.exports = app; module.exports = app;
const DemoDataGenerator = require('./demo.js'); const DemoDataGenerator = require('./demo.js');
var demoDataGenerator = new DemoDataGenerator(app);
var demoDataGenerator = new DemoDataGenerator(10);
app.get('/demo/units', (req, res) => demoDataGenerator.units(req, res));
app.get('/demo/logs', (req, res) => demoDataGenerator.logs(req, res));
app.get('/demo/bullseyes', (req, res) => demoDataGenerator.bullseyes(req, res));
app.get('/demo/airbases', (req, res) => demoDataGenerator.airbases(req, res));

3
client/copy.bat Normal file
View File

@@ -0,0 +1,3 @@
copy .\\node_modules\\leaflet\\dist\\leaflet.css .\\public\\stylesheets\\leaflet\\leaflet.css
copy .\\node_modules\\leaflet.nauticscale\\dist\\leaflet.nauticscale.js .\\public\\javascripts\\leaflet.nauticscale.js
copy .\\node_modules\\leaflet-path-drag\\dist\\L.Path.Drag.js .\\public\\javascripts\\L.Path.Drag.js

View File

@@ -1,2 +1,2 @@
start cmd /k "npm run start" start cmd /k "npm run start"
start cmd /k "watchify .\src\index.ts --debug -p [ tsify --noImplicitAny ] -o .\public\javascripts\bundle.js" start cmd /k "watchify .\src\index.ts --debug -o .\public\javascripts\bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ]

View File

@@ -1,536 +1,343 @@
var basicAuth = require('express-basic-auth')
var enc = new TextEncoder();
const DEMO_UNIT_DATA = { const DEMO_UNIT_DATA = {
["1"]:{ ["1"]:{ category: "Aircraft", alive: true, human: false, controlled: true, coalition: 2, country: 0, name: "KC-135", unitName: "Cool guy 1-1 who also has a very long name", groupName: "Cool group 1", state: 3, task: "Being cool!",
baseData: { hasTask: true, position: { lat: 37, lng: -116, alt: 1000 }, speed: 200, heading: 45, isTanker: true, isAWACS: false, onOff: true, followRoads: false, fuel: 50,
AI: true, desiredSpeed: 300, desiredSpeedType: 1, desiredAltitude: 1000, desiredAltitudeType: 1, leaderID: 0,
name: "F-5E", formationOffset: { x: 0, y: 0, z: 0 },
unitName: "Olympus 1-1", targetID: 2,
groupName: "Group 1", targetPosition: { lat: 0, lng: 0, alt: 0 },
alive: true, ROE: 2,
category: "Aircraft", reactionToThreat: 1,
}, emissionsCountermeasures: 1,
flightData: { TACAN: { isOn: false, XY: 'Y', callsign: 'TKR', channel: 40 },
latitude: 37.20, radio: { frequency: 124000000, callsign: 1, callsignNumber: 1 },
longitude: -115.8, generalSettings: { prohibitAA: false, prohibitAfterburner: false, prohibitAG: false, prohibitAirWpn: false, prohibitJettison: false },
altitude: 2000, ammo: [{ quantity: 2, name: "A cool missile\0Ciao", guidance: 0, category: 0, missileCategory: 0 } ],
heading: 0.5, contacts: [{ID: 2, detectionMethod: 1}, {ID: 3, detectionMethod: 4}],
speed: 300 activePath: [{lat: 38, lng: -115, alt: 0}, {lat: 38, lng: -114, alt: 0}]
},
missionData: {
fuel: 50,
flags: {human: false},
ammo: [],
targets: [],
hasTask: true,
coalition: "blue"
},
formationData: {
formation: "Echelon",
isLeader: false,
isWingman: false,
leaderID: null,
wingmen: [],
wingmenIDs: []
},
taskData: {
currentTask: "Example task",
activePath: undefined,
targetSpeed: 400,
targetAltitude: 3000
},
optionsData: {
ROE: "None",
reactionToThreat: "None",
}
}, },
["2"]:{ ["2"]:{ category: "Aircraft", alive: true, human: false, controlled: false, coalition: 1, country: 0, name: "FA-18C_hornet", unitName: "Cool guy 1-2", groupName: "Cool group 2", state: 1, task: "Being cool",
baseData: { hasTask: false, position: { lat: 36.9, lng: -116, alt: 1000 }, speed: 200, heading: 315 * Math.PI / 180, isTanker: false, isAWACS: false, onOff: true, followRoads: false, fuel: 50,
AI: true, desiredSpeed: 300, desiredSpeedType: 1, desiredAltitude: 1000, desiredAltitudeType: 1, leaderID: 0,
name: "F-5E", formationOffset: { x: 0, y: 0, z: 0 },
unitName: "Olympus 1-2", targetID: 0,
groupName: "Group 1", targetPosition: { lat: 0, lng: 0, alt: 0 },
alive: true, ROE: 2,
category: "Aircraft", reactionToThreat: 1,
}, emissionsCountermeasures: 1,
flightData: { TACAN: { isOn: false, XY: 'Y', callsign: 'TKR', channel: 40 },
latitude: 37.2, radio: { frequency: 124000000, callsign: 1, callsignNumber: 1 },
longitude: -115.75, generalSettings: { prohibitAA: false, prohibitAfterburner: false, prohibitAG: false, prohibitAirWpn: false, prohibitJettison: false },
altitude: 2000, ammo: [{ quantity: 2, name: "A cool missile", guidance: 0, category: 0, missileCategory: 0 } ],
heading: 0.5, contacts: [{ID: 1, detectionMethod: 16}],
speed: 300 activePath: [ ]
}, }, ["3"]:{ category: "Helicopter", alive: true, human: false, controlled: false, coalition: 1, country: 0, name: "AH-64D_BLK_II", unitName: "Cool guy 1-4", groupName: "Cool group 3", state: 1, task: "Being cool",
missionData: { hasTask: false, position: { lat: 37.1, lng: -116.1, alt: 1000 }, speed: 200, heading: 315 * Math.PI / 180, isTanker: false, isAWACS: false, onOff: true, followRoads: false, fuel: 50,
fuel: 0.5, desiredSpeed: 300, desiredSpeedType: 1, desiredAltitude: 1000, desiredAltitudeType: 1, leaderID: 0,
flags: {human: false}, formationOffset: { x: 0, y: 0, z: 0 },
ammo: [], targetID: 0,
targets: [], targetPosition: { lat: 0, lng: 0, alt: 0 },
hasTask: true, ROE: 2,
coalition: "red" reactionToThreat: 1,
}, emissionsCountermeasures: 1,
formationData: { TACAN: { isOn: false, XY: 'Y', callsign: 'TKR', channel: 40 },
formation: "Echelon", radio: { frequency: 124000000, callsign: 1, callsignNumber: 1 },
isLeader: false, generalSettings: { prohibitAA: false, prohibitAfterburner: false, prohibitAG: false, prohibitAirWpn: false, prohibitJettison: false },
isWingman: false, ammo: [{ quantity: 2, name: "A cool missile", guidance: 0, category: 0, missileCategory: 0 } ],
leaderID: null, contacts: [{ID: 1, detectionMethod: 16}],
wingmen: [], activePath: [ ]
wingmenIDs: [] }, ["4"]:{ category: "GroundUnit", alive: true, human: false, controlled: true, coalition: 1, country: 0, name: "Gepard", unitName: "Cool guy 2-1", groupName: "Cool group 4", state: 1, task: "Being cool",
}, hasTask: false, position: { lat: 37.2, lng: -116.1, alt: 1000 }, speed: 200, heading: 315 * Math.PI / 180, isTanker: false, isAWACS: false, onOff: true, followRoads: false, fuel: 50,
taskData: { desiredSpeed: 300, desiredSpeedType: 1, desiredAltitude: 1000, desiredAltitudeType: 1, leaderID: 0,
currentTask: "Example task", formationOffset: { x: 0, y: 0, z: 0 },
activePath: undefined, targetID: 0,
targetSpeed: 400, targetPosition: { lat: 0, lng: 0, alt: 0 },
targetAltitude: 3000 ROE: 2,
}, reactionToThreat: 1,
optionsData: { emissionsCountermeasures: 1,
ROE: "None", TACAN: { isOn: false, XY: 'Y', callsign: 'TKR', channel: 40 },
reactionToThreat: "None", radio: { frequency: 124000000, callsign: 1, callsignNumber: 1 },
} generalSettings: { prohibitAA: false, prohibitAfterburner: false, prohibitAG: false, prohibitAirWpn: false, prohibitJettison: false },
}, ammo: [{ quantity: 2, name: "A cool missile\0Ciao", guidance: 0, category: 0, missileCategory: 0 } ],
["3"]:{ contacts: [{ID: 1001, detectionMethod: 16}],
baseData: { activePath: [ ],
AI: true, isLeader: true
name: "2S6 Tunguska", }, ["5"]:{ category: "GroundUnit", alive: true, human: false, controlled: true, coalition: 1, country: 0, name: "Gepard", unitName: "Cool guy 2-2", groupName: "Cool group 4", state: 1, task: "Being cool",
unitName: "Olympus 1-3", hasTask: false, position: { lat: 37.21, lng: -116.1, alt: 1000 }, speed: 200, heading: 315 * Math.PI / 180, isTanker: false, isAWACS: false, onOff: true, followRoads: false, fuel: 50,
groupName: "Group 1", desiredSpeed: 300, desiredSpeedType: 1, desiredAltitude: 1000, desiredAltitudeType: 1, leaderID: 0,
alive: true, formationOffset: { x: 0, y: 0, z: 0 },
category: "GroundUnit", targetID: 0,
}, targetPosition: { lat: 0, lng: 0, alt: 0 },
flightData: { ROE: 2,
latitude: 37.175, reactionToThreat: 1,
longitude: -115.8, emissionsCountermeasures: 1,
altitude: 2000, TACAN: { isOn: false, XY: 'Y', callsign: 'TKR', channel: 40 },
heading: 0.5, radio: { frequency: 124000000, callsign: 1, callsignNumber: 1 },
speed: 300 generalSettings: { prohibitAA: false, prohibitAfterburner: false, prohibitAG: false, prohibitAirWpn: false, prohibitJettison: false },
}, ammo: [{ quantity: 2, name: "A cool missile", guidance: 0, category: 0, missileCategory: 0 } ],
missionData: { contacts: [],
fuel: 0.5, activePath: [ ],
flags: {human: false}, isLeader: false
ammo: [],
targets: [],
hasTask: true,
coalition: "blue"
},
formationData: {
formation: "Echelon",
isLeader: false,
isWingman: false,
leaderID: null,
wingmen: [],
wingmenIDs: []
},
taskData: {
currentTask: "Example task",
activePath: undefined,
targetSpeed: 400,
targetAltitude: 3000
},
optionsData: {
ROE: "None",
reactionToThreat: "None",
}
},
["4"]:{
baseData: {
AI: true,
name: "2S6 Tunguska",
unitName: "Olympus 1-4",
groupName: "Group 1",
alive: true,
category: "GroundUnit",
},
flightData: {
latitude: 37.175,
longitude: -115.75,
altitude: 2000,
heading: 0.5,
speed: 300
},
missionData: {
fuel: 0.5,
flags: {human: false},
ammo: [],
targets: [],
hasTask: true,
coalition: "red"
},
formationData: {
formation: "Echelon",
isLeader: false,
isWingman: false,
leaderID: null,
wingmen: [],
wingmenIDs: []
},
taskData: {
currentTask: "Example task",
activePath: undefined,
targetSpeed: 400,
targetAltitude: 3000
},
optionsData: {
ROE: "None",
reactionToThreat: "None",
}
},
["5"]:{
baseData: {
AI: true,
name: "M-60",
unitName: "Olympus 1-3",
groupName: "Group 1",
alive: true,
category: "GroundUnit",
},
flightData: {
latitude: 37.15,
longitude: -115.8,
altitude: 2000,
heading: 0.5,
speed: 300
},
missionData: {
fuel: 0.5,
flags: {human: false},
ammo: [],
targets: [],
hasTask: true,
coalition: "blue"
},
formationData: {
formation: "Echelon",
isLeader: false,
isWingman: false,
leaderID: null,
wingmen: [],
wingmenIDs: []
},
taskData: {
currentTask: "Example task",
activePath: undefined,
targetSpeed: 400,
targetAltitude: 3000
},
optionsData: {
ROE: "None",
reactionToThreat: "None",
}
},
["6"]:{
baseData: {
AI: true,
name: "M-60",
unitName: "Olympus 1-4",
groupName: "Group 1",
alive: true,
category: "GroundUnit",
},
flightData: {
latitude: 37.15,
longitude: -115.75,
altitude: 2000,
heading: 0.5,
speed: 300
},
missionData: {
fuel: 0.5,
flags: {human: false},
ammo: [],
targets: [],
hasTask: true,
coalition: "red"
},
formationData: {
formation: "Echelon",
isLeader: false,
isWingman: false,
leaderID: null,
wingmen: [],
wingmenIDs: []
},
taskData: {
currentTask: "Example task",
activePath: undefined,
targetSpeed: 400,
targetAltitude: 3000
},
optionsData: {
ROE: "None",
reactionToThreat: "None",
}
},
["7"]:{
baseData: {
AI: true,
name: "CVN-75",
unitName: "Olympus 1-7",
groupName: "Group 1",
alive: true,
category: "NavyUnit",
},
flightData: {
latitude: 37.125,
longitude: -115.8,
altitude: 2000,
heading: 0.5,
speed: 300
},
missionData: {
fuel: 0.5,
flags: {human: false},
ammo: [],
targets: [],
hasTask: true,
coalition: "blue"
},
formationData: {
formation: "Echelon",
isLeader: false,
isWingman: false,
leaderID: null,
wingmen: [],
wingmenIDs: []
},
taskData: {
currentTask: "Example task",
activePath: undefined,
targetSpeed: 400,
targetAltitude: 3000
},
optionsData: {
ROE: "None",
reactionToThreat: "None",
}
},
["8"]:{
baseData: {
AI: true,
name: "CVN-75",
unitName: "Olympus 1-8",
groupName: "Group 1",
alive: true,
category: "NavyUnit",
},
flightData: {
latitude: 37.125,
longitude: -115.75,
altitude: 2000,
heading: 0.5,
speed: 300
},
missionData: {
fuel: 0.5,
flags: {human: false},
ammo: [],
targets: [],
hasTask: true,
coalition: "red"
},
formationData: {
formation: "Echelon",
isLeader: false,
isWingman: false,
leaderID: null,
wingmen: [],
wingmenIDs: []
},
taskData: {
currentTask: "Example task",
activePath: undefined,
targetSpeed: 400,
targetAltitude: 3000
},
optionsData: {
ROE: "None",
reactionToThreat: "None",
}
},
["9"]:{
baseData: {
AI: true,
name: "CVN-75",
unitName: "Olympus 1-9",
groupName: "Group 1",
alive: false,
category: "Aircraft",
},
flightData: {
latitude: 37.10,
longitude: -115.75,
altitude: 2000,
heading: 0.5,
speed: 300
},
missionData: {
fuel: 0.5,
flags: {human: false},
ammo: [],
targets: [],
hasTask: true,
coalition: "red"
},
formationData: {
formation: "Echelon",
isLeader: false,
isWingman: false,
leaderID: null,
wingmen: [],
wingmenIDs: []
},
taskData: {
currentTask: "Example task",
activePath: undefined,
targetSpeed: 400,
targetAltitude: 3000
},
optionsData: {
ROE: "None",
reactionToThreat: "None",
}
},
["10"]:{
baseData: {
AI: true,
name: "CVN-75",
unitName: "Olympus 1-10",
groupName: "Group 1",
alive: false,
category: "Aircraft",
},
flightData: {
latitude: 37.10,
longitude: -115.8,
altitude: 2000,
heading: 0.5,
speed: 300
},
missionData: {
fuel: 0.5,
flags: {human: false},
ammo: [],
targets: [],
hasTask: true,
coalition: "blue"
},
formationData: {
formation: "Echelon",
isLeader: false,
isWingman: false,
leaderID: null,
wingmen: [],
wingmenIDs: []
},
taskData: {
currentTask: "Example task",
activePath: undefined,
targetSpeed: 400,
targetAltitude: 3000
},
optionsData: {
ROE: "None",
reactionToThreat: "None",
}
},
["11"]:{
baseData: {
AI: true,
name: "CVN-75",
unitName: "Olympus 1-11",
groupName: "Group 1",
alive: false,
category: "Missile",
},
flightData: {
latitude: 37.075,
longitude: -115.8,
altitude: 2000,
heading: 0.5,
speed: 300
},
missionData: {
fuel: 0.5,
flags: {human: false},
ammo: [],
targets: [],
hasTask: true,
coalition: "blue"
},
formationData: {
formation: "Echelon",
isLeader: false,
isWingman: false,
leaderID: null,
wingmen: [],
wingmenIDs: []
},
taskData: {
currentTask: "Example task",
activePath: undefined,
targetSpeed: 400,
targetAltitude: 3000
},
optionsData: {
ROE: "None",
reactionToThreat: "None",
}
},
["12"]:{
baseData: {
AI: true,
name: "CVN-75",
unitName: "Olympus 1-12",
groupName: "Group 1",
alive: false,
category: "Missile",
},
flightData: {
latitude: 37.075,
longitude: -115.75,
altitude: 2000,
heading: 0.5,
speed: 300
},
missionData: {
fuel: 0.5,
flags: {human: false},
ammo: [],
targets: [],
hasTask: true,
coalition: "red"
},
formationData: {
formation: "Echelon",
isLeader: false,
isWingman: false,
leaderID: null,
wingmen: [],
wingmenIDs: []
},
taskData: {
currentTask: "Example task",
activePath: undefined,
targetSpeed: 400,
targetAltitude: 3000
},
optionsData: {
ROE: "None",
reactionToThreat: "None",
}
} }
} }
const DEMO_WEAPONS_DATA = {
["1001"]:{ category: "Missile", alive: true, coalition: 2, name: "", position: { lat: 37.1, lng: -116, alt: 1000 }, speed: 200, heading: 45 * Math.PI / 180 },
}
class DemoDataGenerator { class DemoDataGenerator {
constructor(unitsNumber) constructor(app)
{ {
this.demoUnits = this.generateRandomUnitsDemoData(unitsNumber); app.get('/demo/units', (req, res) => this.units(req, res));
app.get('/demo/weapons', (req, res) => this.weapons(req, res));
app.get('/demo/logs', (req, res) => this.logs(req, res));
app.get('/demo/bullseyes', (req, res) => this.bullseyes(req, res));
app.get('/demo/airbases', (req, res) => this.airbases(req, res));
app.get('/demo/mission', (req, res) => this.mission(req, res));
app.use('/demo', basicAuth({
users: {
'admin': 'socks',
'blue': 'bluesocks',
'red': 'redsocks'
},
}))
this.startTime = Date.now();
} }
units(req, res){ units(req, res){
var ret = this.demoUnits; var array = new Uint8Array();
res.send(JSON.stringify(ret)); var time = Date.now();
array = this.concat(array, this.uint64ToByteArray(BigInt(time)));
for (let idx in DEMO_UNIT_DATA) {
const unit = DEMO_UNIT_DATA[idx];
array = this.concat(array, this.uint32ToByteArray(idx));
array = this.appendString(array, unit.category, 1);
array = this.appendUint8(array, unit.alive, 2);
array = this.appendUint8(array, unit.human, 3);
array = this.appendUint8(array, unit.controlled, 4);
array = this.appendUint16(array, unit.coalition, 5);
array = this.appendUint8(array, unit.country, 6);
array = this.appendString(array, unit.name, 7);
array = this.appendString(array, unit.unitName, 8);
array = this.appendString(array, unit.groupName, 9);
array = this.appendUint8(array, unit.state, 10);
array = this.appendString(array, unit.task, 11);
array = this.appendUint8(array, unit.hasTask, 12);
array = this.appendCoordinates(array, unit.position, 13);
array = this.appendDouble(array, unit.speed, 14);
array = this.appendDouble(array, unit.heading, 15);
array = this.appendUint8(array, unit.isTanker, 16);
array = this.appendUint8(array, unit.isAWACS, 17);
array = this.appendUint8(array, unit.onOff, 18);
array = this.appendUint8(array, unit.followRoads, 19);
array = this.appendUint16(array, unit.fuel, 20);
array = this.appendDouble(array, unit.desiredSpeed, 21);
array = this.appendUint8(array, unit.desiredSpeedType, 22);
array = this.appendDouble(array, unit.desiredAltitude, 23);
array = this.appendUint8(array, unit.desiredAltitudeType, 24);
array = this.appendUint32(array, unit.leaderID, 25);
array = this.appendOffset(array, unit.formationOffset, 26);
array = this.appendUint32(array, unit.targetID, 27);
array = this.appendCoordinates(array, unit.targetPosition, 28);
array = this.appendUint8(array, unit.ROE, 29);
array = this.appendUint8(array, unit.reactionToThreat, 30);
array = this.appendUint8(array, unit.emissionsCountermeasures, 31);
array = this.appendTACAN(array, unit.TACAN, 32);
array = this.appendRadio(array, unit.radio, 33);
array = this.appendRadio(array, unit.generalSettings, 34);
array = this.appendAmmo(array, unit.ammo, 35);
array = this.appendContacts(array, unit.contacts, 36);
array = this.appendActivePath(array, unit.activePath, 37);
array = this.appendUint8(array, unit.isLeader, 38);
array = this.concat(array, this.uint8ToByteArray(255));
}
res.end(Buffer.from(array, 'binary'));
}; };
weapons(req, res){
var array = new Uint8Array();
var time = Date.now();
array = this.concat(array, this.uint64ToByteArray(BigInt(time)));
for (let idx in DEMO_WEAPONS_DATA) {
const weapon = DEMO_WEAPONS_DATA[idx];
array = this.concat(array, this.uint32ToByteArray(idx));
array = this.appendString(array, weapon.category, 1);
array = this.appendUint8(array, weapon.alive, 2);
array = this.appendUint16(array, weapon.coalition, 5);
array = this.appendString(array, weapon.name, 7);
array = this.appendCoordinates(array, weapon.position, 13);
array = this.appendDouble(array, weapon.speed, 14);
array = this.appendDouble(array, weapon.heading, 15);
array = this.concat(array, this.uint8ToByteArray(255));
}
res.end(Buffer.from(array, 'binary'));
};
concat(array1, array2) {
var mergedArray = new Uint8Array(array1.length + array2.length);
mergedArray.set(array1);
mergedArray.set(array2, array1.length);
return mergedArray;
}
uint8ToByteArray(number) {
var buffer = new ArrayBuffer(1);
var longNum = new Uint8Array(buffer);
longNum[0] = number;
return Array.from(new Uint8Array(buffer));
}
uint16ToByteArray(number) {
var buffer = new ArrayBuffer(2);
var longNum = new Uint16Array(buffer);
longNum[0] = number;
return Array.from(new Uint8Array(buffer));
}
uint32ToByteArray(number) {
var buffer = new ArrayBuffer(4);
var longNum = new Uint32Array(buffer);
longNum[0] = number;
return Array.from(new Uint8Array(buffer));
}
uint64ToByteArray(number) {
var buffer = new ArrayBuffer(8);
var longNum = new BigUint64Array(buffer);
longNum[0] = number;
return Array.from(new Uint8Array(buffer));
}
doubleToByteArray(number) {
var buffer = new ArrayBuffer(8);
var longNum = new Float64Array(buffer);
longNum[0] = number;
return Array.from(new Uint8Array(buffer));
}
appendUint8(array, number, datumIndex) {
array = this.concat(array, this.uint8ToByteArray(datumIndex));
array = this.concat(array, this.uint8ToByteArray(number));
return array;
}
appendUint16(array, number, datumIndex) {
array = this.concat(array, this.uint8ToByteArray(datumIndex));
array = this.concat(array, this.uint16ToByteArray(number));
return array;
}
appendUint32(array, number, datumIndex) {
array = this.concat(array, this.uint8ToByteArray(datumIndex));
array = this.concat(array, this.uint32ToByteArray(number));
return array;
}
appendDouble(array, number, datumIndex) {
array = this.concat(array, this.uint8ToByteArray(datumIndex));
array = this.concat(array, this.doubleToByteArray(number));
return array;
}
appendCoordinates(array, coordinates, datumIndex) {
array = this.concat(array, this.uint8ToByteArray(datumIndex));
array = this.concat(array, this.doubleToByteArray(coordinates.lat));
array = this.concat(array, this.doubleToByteArray(coordinates.lng));
array = this.concat(array, this.doubleToByteArray(coordinates.alt));
return array;
}
appendOffset(array, offset, datumIndex) {
array = this.concat(array, this.uint8ToByteArray(datumIndex));
array = this.concat(array, this.doubleToByteArray(offset.x));
array = this.concat(array, this.doubleToByteArray(offset.y));
array = this.concat(array, this.doubleToByteArray(offset.z));
return array;
}
appendString(array, string, datumIndex) {
array = this.concat(array, this.uint8ToByteArray(datumIndex));
array = this.concat(array, this.uint16ToByteArray(string.length));
array = this.concat(array, enc.encode(string));
return array;
}
padString(string, length) {
while (string.length < length)
string += " ";
return string.substring(0, length);
}
appendTACAN(array, TACAN, datumIndex) {
array = this.concat(array, this.uint8ToByteArray(datumIndex));
array = this.concat(array, this.uint8ToByteArray(TACAN.isOn));
array = this.concat(array, this.uint8ToByteArray(TACAN.channel));
array = this.concat(array, enc.encode(TACAN.XY));
array = this.concat(array, enc.encode(this.padString(TACAN.callsign, 4)));
return array;
}
appendRadio(array, radio, datumIndex) {
array = this.concat(array, this.uint8ToByteArray(datumIndex));
array = this.concat(array, this.uint32ToByteArray(radio.frequency));
array = this.concat(array, this.uint8ToByteArray(radio.callsign));
array = this.concat(array, this.uint8ToByteArray(radio.callsignNumber));
return array;
}
appendGeneralSettings(array, generalSettings, datumIndex) {
array = this.concat(array, this.uint8ToByteArray(datumIndex));
array = this.concat(array, this.uint8ToByteArray(generalSettings.prohibitAA));
array = this.concat(array, this.uint8ToByteArray(generalSettings.prohibitAfterburner));
array = this.concat(array, this.uint8ToByteArray(generalSettings.prohibitAG));
array = this.concat(array, this.uint8ToByteArray(generalSettings.prohibitAirWpn));
array = this.concat(array, this.uint8ToByteArray(generalSettings.prohibitJettison));
return array;
}
appendAmmo(array, ammo, datumIndex) {
array = this.concat(array, this.uint8ToByteArray(datumIndex));
array = this.concat(array, this.uint16ToByteArray(ammo.length));
ammo.forEach((element) => {
array = this.concat(array, this.uint16ToByteArray(element.quantity));
array = this.concat(array, enc.encode(this.padString(element.name, 33)));
array = this.concat(array, this.uint8ToByteArray(element.guidance));
array = this.concat(array, this.uint8ToByteArray(element.category));
array = this.concat(array, this.uint8ToByteArray(element.missileCategory));
})
return array;
}
appendContacts(array, contacts, datumIndex) {
array = this.concat(array, this.uint8ToByteArray(datumIndex));
array = this.concat(array, this.uint16ToByteArray(contacts.length));
contacts.forEach((element) => {
array = this.concat(array, this.uint32ToByteArray(element.ID));
array = this.concat(array, this.uint8ToByteArray(element.detectionMethod));
})
return array;
}
appendActivePath(array, activePath, datumIndex) {
array = this.concat(array, this.uint8ToByteArray(datumIndex));
array = this.concat(array, this.uint16ToByteArray(activePath.length));
activePath.forEach((element) => {
array = this.concat(array, this.doubleToByteArray(element.lat));
array = this.concat(array, this.doubleToByteArray(element.lng));
array = this.concat(array, this.doubleToByteArray(element.alt));
})
return array;
}
logs(req, res){ logs(req, res){
var ret = {logs: {}}; var ret = {logs: {"1": "I'm a log!", "2": "I'm a different log!"}};
ret.time = Date.now();
ret.frameRate = 60;
ret.load = 0;
res.send(JSON.stringify(ret)); res.send(JSON.stringify(ret));
}; };
@@ -555,6 +362,7 @@ class DemoDataGenerator {
coalition: "blue" coalition: "blue"
} }
}}; }};
ret.time = Date.now();
res.send(JSON.stringify(ret)); res.send(JSON.stringify(ret));
}; };
@@ -562,24 +370,64 @@ class DemoDataGenerator {
var ret = {bullseyes: { var ret = {bullseyes: {
"0": { "0": {
latitude: 37.25, latitude: 37.25,
longitude: -115.8 longitude: -115.8,
coalition: "neutral"
}, },
"1": { "1": {
latitude: 37.25, latitude: 37.25,
longitude: -115.75 longitude: -115.75,
coalition: "red"
}, },
"2": { "2": {
latitude: 37.25, latitude: 37.25,
longitude: -115.7 longitude: -115.7,
coalition: "blue"
} }
}}; }};
ret.time = Date.now();
res.send(JSON.stringify(ret)); res.send(JSON.stringify(ret));
}; };
generateRandomUnitsDemoData(unitsNumber) mission(req, res){
{ var ret = {mission: {theatre: "Nevada"}};
return {"units": DEMO_UNIT_DATA}; ret.time = Date.now();
ret.mission.dateAndTime = {
time: Date.now(),
date: "",
elapsedTime: (Date.now() - this.startTime) / 1000,
startTime: 0
}
ret.mission.commandModeOptions = {
restrictSpawns: false,
restrictToCoalition: true,
setupTime: 0,
spawnPoints: {
red: 1000,
blue: 400
},
eras: ["WW2", "Early Cold War", "Late Cold War", "Modern"]
}
var auth = req.get("Authorization");
if (auth) {
var username = atob(auth.replace("Basic ", "")).split(":")[0];
switch (username) {
case "admin":
ret.mission.commandModeOptions.commandMode = "Game master";
break
case "blue":
ret.mission.commandModeOptions.commandMode = "Blue commander";
break;
case "red":
ret.mission.commandModeOptions.commandMode = "Red commander";
break;
}
}
res.send(JSON.stringify(ret));
} }
} }
module.exports = DemoDataGenerator; module.exports = DemoDataGenerator;

7954
client/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -2,30 +2,43 @@
"name": "DCSOlympus", "name": "DCSOlympus",
"node-main": "./bin/www", "node-main": "./bin/www",
"main": "http://localhost:3000", "main": "http://localhost:3000",
"version": "0.0.0", "version": "v0.4.1-alpha",
"private": true, "private": true,
"scripts": { "scripts": {
"copy": "copy .\\node_modules\\leaflet\\dist\\leaflet.css .\\public\\stylesheets\\leaflet.css", "copy": "copy.bat",
"start": "npm run copy & concurrently --kill-others \"npm run watch\" \"nodemon ./bin/www\"", "start": "npm run copy & concurrently --kill-others \"npm run watch\" \"nodemon ./bin/www\"",
"watch": "watchify .\\src\\index.ts --debug -p [ tsify --noImplicitAny ] -o .\\public\\javascripts\\bundle.js" "watch": "watchify .\\src\\index.ts --debug -o .\\public\\javascripts\\bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ]"
}, },
"dependencies": { "dependencies": {
"@types/geojson": "^7946.0.10",
"@types/leaflet": "^1.9.0",
"cookie-parser": "~1.4.4", "cookie-parser": "~1.4.4",
"debug": "~2.6.9", "debug": "~2.6.9",
"ejs": "^3.1.8", "ejs": "^3.1.8",
"express": "~4.16.1", "express": "~4.16.1",
"leaflet": "^1.9.3",
"milsymbol": "^2.0.0",
"morgan": "~1.9.1", "morgan": "~1.9.1",
"save": "^2.9.0" "save": "^2.9.0",
"express-basic-auth": "^1.2.1"
}, },
"devDependencies": { "devDependencies": {
"@babel/preset-env": "^7.21.4",
"@tanem/svg-injector": "^10.1.55",
"@turf/turf": "^6.5.0",
"@types/formatcoords": "^1.1.0",
"@types/geojson": "^7946.0.10",
"@types/gtag.js": "^0.0.12", "@types/gtag.js": "^0.0.12",
"@types/leaflet": "^1.9.0",
"@types/node": "^18.16.1",
"@types/sortablejs": "^1.15.0", "@types/sortablejs": "^1.15.0",
"@types/svg-injector": "^0.0.29",
"babelify": "^10.0.0",
"browserify": "^17.0.0", "browserify": "^17.0.0",
"concurrently": "^7.6.0", "concurrently": "^7.6.0",
"cp": "^0.2.0",
"esmify": "^2.1.1",
"formatcoords": "^1.1.3",
"leaflet": "^1.9.3",
"leaflet-control-mini-map": "^0.4.0",
"leaflet-path-drag": "*",
"leaflet.nauticscale": "^1.1.0",
"nodemon": "^2.0.20", "nodemon": "^2.0.20",
"sortablejs": "^1.15.0", "sortablejs": "^1.15.0",
"tsify": "^5.0.4", "tsify": "^5.0.4",

2
client/prepare.bat Normal file
View File

@@ -0,0 +1,2 @@
copy .\\node_modules\\leaflet\\dist\\leaflet.css .\\public\\stylesheets\\leaflet\\leaflet.css
copy .\\node_modules\\leaflet.nauticscale\\dist\\leaflet.nauticscale.js .\\public\\javascripts\\leaflet.nauticscale.js

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

View File

@@ -1,3 +0,0 @@
<svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4766 9.25718L11.3099 8.44468C11.4401 8.31772 11.6667 8.40659 11.6667 8.58941V12.2812C11.6667 12.9541 11.1068 13.5 10.4167 13.5H1.25C0.559896 13.5 0 12.9541 0 12.2812V3.3437C0 2.67085 0.559896 2.12495 1.25 2.12495H8.3724C8.55729 2.12495 8.65104 2.34331 8.52083 2.4728L7.6875 3.2853C7.64844 3.32339 7.59635 3.3437 7.53906 3.3437H1.25V12.2812H10.4167V9.39937C10.4167 9.34605 10.4375 9.29526 10.4766 9.25718ZM14.5547 4.13335L7.71615 10.8009L5.36198 11.0548C4.67969 11.1285 4.09896 10.5673 4.17448 9.89702L4.4349 7.60171L11.2734 0.934131C11.8698 0.352686 12.8333 0.352686 13.4271 0.934131L14.5521 2.03101C15.1484 2.61245 15.1484 3.55444 14.5547 4.13335ZM11.9818 4.91792L10.4688 3.44272L5.63021 8.16284L5.4401 9.82085L7.14063 9.6355L11.9818 4.91792ZM13.6693 2.89429L12.5443 1.79741C12.4375 1.69331 12.263 1.69331 12.1589 1.79741L11.3542 2.58198L12.8672 4.05718L13.6719 3.27261C13.776 3.16597 13.776 2.99839 13.6693 2.89429Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -1,21 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="96.000000pt" height="96.000000pt" viewBox="0 0 96.000000 96.000000"
preserveAspectRatio="xMidYMid meet">
<g transform="translate(0.000000,96.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M411 846 c-77 -78 -70 -86 69 -86 139 0 146 8 69 86 -29 30 -60 54
-69 54 -9 0 -40 -24 -69 -54z"/>
<path d="M132 668 c-16 -16 -15 -43 2 -57 9 -8 110 -11 351 -9 309 3 339 4
349 21 8 12 8 22 0 35 -10 16 -40 17 -350 20 -256 2 -343 -1 -352 -10z"/>
<path d="M132 508 c-16 -16 -15 -43 2 -57 9 -8 110 -11 351 -9 309 3 339 4
349 21 8 12 8 22 0 35 -10 16 -40 17 -350 20 -256 2 -343 -1 -352 -10z"/>
<path d="M132 348 c-16 -16 -15 -43 2 -57 9 -8 110 -11 351 -9 309 3 339 4
349 21 8 12 8 22 0 35 -10 16 -40 17 -350 20 -256 2 -343 -1 -352 -10z"/>
<path d="M363 184 c-7 -18 92 -124 117 -124 25 0 124 106 117 124 -9 24 -225
24 -234 0z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M211.8 339.8C200.9 350.7 183.1 350.7 172.2 339.8L108.2 275.8C97.27 264.9 97.27 247.1 108.2 236.2C119.1 225.3 136.9 225.3 147.8 236.2L192 280.4L300.2 172.2C311.1 161.3 328.9 161.3 339.8 172.2C350.7 183.1 350.7 200.9 339.8 211.8L211.8 339.8zM0 96C0 60.65 28.65 32 64 32H384C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H384C392.8 432 400 424.8 400 416V96C400 87.16 392.8 80 384 80H64C55.16 80 48 87.16 48 96z"/></svg>

Before

Width:  |  Height:  |  Size: 733 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 288 512"><!-- Font Awesome Pro 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) --><path d="M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z"/></svg>

Before

Width:  |  Height:  |  Size: 549 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,38 @@
L.Control.ScaleNautic = L.Control.Scale.extend({
options: {
nautic: false
},
_addScales: function(options, className, container) {
L.Control.Scale.prototype._addScales.call(this, options, className, container);
L.setOptions(options);
if (this.options.nautic) {
this._nScale = L.DomUtil.create('div', className, container);
}
},
_updateScales: function (maxMeters) {
L.Control.Scale.prototype._updateScales.call(this, maxMeters);
if (this.options.nautic && maxMeters) {
this._updateNautic(maxMeters);
}
},
_updateNautic: function (maxMeters) {
var scale = this._nScale,
maxNauticalMiles = maxMeters / 1852, nauticalMiles;
if(maxMeters >= 1852) {
nauticalMiles = L.Control.Scale.prototype._getRoundNum.call(this, maxNauticalMiles);
} else {
nauticalMiles = maxNauticalMiles > 0.1 ? Math.round(maxNauticalMiles * 10) / 10 : Math.round(maxNauticalMiles * 100) / 100;
}
scale.style.width = Math.round(this.options.maxWidth * (nauticalMiles / maxNauticalMiles)) - 10 + 'px';
scale.innerHTML = nauticalMiles + ' nm';
}
});
L.control.scalenautic = function (options) {
return new L.Control.ScaleNautic(options);
};

View File

@@ -130,7 +130,7 @@
padding: 10px; padding: 10px;
position: absolute; position: absolute;
width: fit-content; width: fit-content;
z-index: 1000; z-index: 9999;
} }
.aic-enabled #aic-teleprompt { .aic-enabled #aic-teleprompt {

View File

@@ -1,44 +0,0 @@
:root {
--airbase-marker-height: 63px;
--airbase-marker-width: 63px;
}
[data-object|="airbase"] {
align-items: center;
cursor: pointer;
display: flex;
justify-content: center;
position: relative;
}
[data-hide-airbase] #map-container [data-object|="airbase"] {
display: none;
}
/******************************
Marker
******************************/
[data-object|="airbase"] .airbase {
background-color: transparent;
background-repeat: no-repeat;
background-size: cover;
position: absolute;
transform-origin: center;
z-index: 3;
}
/* Airbase */
[data-object|="airbase"] .airbase-marker {
background-image: var(--airbase-marker-neutral-url);
height: var(--airbase-marker-height);
width: var(--airbase-marker-width);
}
[data-object|="airbase"][data-coalition="red"] .airbase-marker {
background-image: var(--airbase-marker-red-url);
}
[data-object|="airbase"][data-coalition="blue"] .airbase-marker {
background-image: var(--airbase-marker-blue-url);
}

View File

@@ -1,211 +0,0 @@
/*** Control panel ***/
#atc-control-panel {
align-self: flex-end;
background: white;
border-radius: 10px;
display:flex;
margin: 0 0 50px 100px;
padding:5px;
position: absolute;
z-index: 9999;
}
.atc-tool {
align-self: center;
border-radius: 10px;
display:none;
justify-self: center;
padding: 10px;
position: absolute;
z-index: 9999;
}
.atc-enabled .atc-tool {
display:flex;
}
#atc-flight-list {
flex-direction: column;
}
#atc-flight-list table {
color:white;
}
#atc-flight-list table td {
padding:0 10px;
text-align: center;
}
#atc-flight-list table td:first-of-type {
text-align: left;
}
#atc-flight-list table tr[data-status='checkedIn'] td {
background-color:goldenrod;
}
#atc-flight-list table tr[data-status='readyToTaxi'] td {
background-color:darkgreen;
}
#atc-flight-list table button {
background-color: #666;
border:1px solid white;
color:white;
font-weight: bold;
margin:2px 0;
}
.atc-strip-board {
align-self: center;
display:flex;
justify-self: center;
position: absolute;
z-index: 9999 ;
}
.atc-strip-board-header {
display:none;
}
.atc-strip-board-strips {
display:flex;
flex-direction: column;
}
.atc-strip-board-strip {
display:flex;
flex-direction: row;
}
/*
.atc-strip-board-header {
background:black;
color:white;
display:none;
justify-content: right;
}
.atc-strip-board {
display:flex;
flex-direction: column;
row-gap: 5px;
}
.atc-strip-board-strips {
display:flex;
flex-direction: column;
padding:10px;
row-gap: 5px;
}
.atc-strip-board-strips > div {
align-items: center;
color:white;
column-gap: 2px;
display: flex;
flex-direction: row;
padding: 5px;
}
.atc-strip-board-header > div, .atc-strip-board-strips > div > div {
text-align: center;
width: 75px;
}
.atc-strip-board-header > .name {
width:150px;
}
.atc-strip-board-header > div, .atc-strip-board-strips > div > div {
text-align: center;
width: 75px;
}
.atc-strip-board-strips > div > .name {
text-align: left;
width:150px;
}
.atc-strip-board-strips > div {
align-items: center;
column-gap: 5px;
display: flex;
flex-direction: row;
font-size:12px;
font-weight: 600;
padding: 5px;
row-gap: 5px;
}
/*
.atc-strip-board-header, .atc-strip-board-strips > div {
align-items: center;
background:#FFF3;
color:white;
column-gap: 5px;
display: flex;
flex-direction: row;
font-size:12px;
font-weight: 600;
padding: 5px;
row-gap: 5px;
}
.atc-strip-board-header {
background:black;
color:white;
display:none;
justify-content: right;
}
.atc-strip-board-strips > div {
border-bottom:1px solid black;
}
.atc-strip-board-header > div, .atc-strip-board-strips > div > div {
text-align: center;
width: 75px;
}
.atc-strip-board-header > .name {
width:150px;
}
.atc-strip-board-strips > div > .handle {
background: black;
border-radius: 50%;
cursor:grab;
height:10px;
width:10px;
}
.atc-strip-board-strips > div > .name {
text-align: left;
width:150px;
}
.atc-strip-board-strips > div > .warning {
background:red;
color: white;
font-weight: bold;
}
.atc-strip-board-strips > div > .link-warning {
border: 1px solid red;
color: red;
font-weight: bold;
}
*/

View File

@@ -0,0 +1,205 @@
.ol-strip-board .ol-dialog-header {
align-items: center;
display:flex;
justify-content: space-between;
}
.ol-strip-board-strips {
display:flex;
flex-direction: column;
row-gap: 4px;
}
.ol-strip-board-strip {
align-items: center;
border-radius: var( --border-radius-sm );
column-gap: 4px;
display:flex;
flex-flow: row nowrap;
row-gap:4px;
}
.ol-strip-board-strip[data-flight-status="checkedin"] {
background-color: #ffffff2A;
}
.ol-strip-board-strip[data-flight-status="readytotaxi"] {
background-color: #ffff0063;
}
.ol-strip-board-strip[data-flight-status="clearedtotaxi"] {
background-color: #00ff0030;
}
.ol-strip-board-strip[data-flight-status="halted"] {
background-color: #FF000040;
}
.ol-strip-board-strip[data-flight-status="terminated"] {
background-color: black;
}
.ol-strip-board-headers {
column-gap: 4px;
display:flex;
flex-flow:row nowrap;
text-align: center;
}
.ol-strip-board-headers > *, .ol-strip-board-strip > [data-point] {
padding: 4px;
text-overflow: ellipsis;
white-space: nowrap;
width:80px;
}
.ol-strip-board-strip input[type="text"] {
appearance: none;
background-color: transparent;
border:1px solid #ffffff30;
border-radius: var( --border-radius-sm );
color:white;
font-size:12px;
font-weight:normal;
outline:none;
padding: 4px 0;
text-align: center;
width:100%;
}
.ol-strip-board-strip[data-time-warning="level-1"] [data-point="timeToGo"] {
border:1px solid #cc0000;
}
.ol-strip-board-headers :nth-child(1) {
width:12px;
}
.ol-strip-board-headers :nth-child(2),
.ol-strip-board-strip :nth-child(2),
[data-board-type="ground"] .ol-strip-board-headers :nth-child(3),
[data-board-type="ground"] .ol-strip-board-strip :nth-child(3) {
width:130px;
}
[data-board-type="ground"] .ol-strip-board-strip :nth-child(5) {
text-align: center;
}
.ol-strip-board-headers :last-child,
.ol-strip-board-strip :last-child {
width:20px;
}
[data-board-type="tower"] .ol-strip-board-strip > * {
text-align: center;
}
[data-board-type="tower"] .ol-strip-board-strip a {
color:white;
}
[data-board-type="tower"] .ol-strip-board-strip > :nth-child(2) {
text-align: left;
}
[data-board-type="tower"] .ol-strip-board-strip :nth-child(3) input,
[data-board-type="tower"] .ol-strip-board-strip :nth-child(5) input {
width:30px;
}
[data-board-type="tower"] .ol-strip-board-strip :nth-child(3) {
font-size:10px;
}
[data-altitude-assigned] [data-point="assignedAltitude"] input,
[data-speed-assigned] [data-point="assignedSpeed"] input {
background-color:#ffffffbb;
color: black;
font-weight: var( --font-weight-bolder );
}
[data-warning-altitude] [data-point="altitude"],
[data-warning-speed] [data-point="speed"] {
background:#cc0000;
border-radius: var( --border-radius-sm );
}
.ol-strip-board-strip > [data-point="name"] {
text-overflow: ellipsis;
overflow:hidden;
}
.ol-strip-board-strip .ol-select-value {
opacity: .85;
}
.ol-strip-board-add-flight {
display:flex;
flex-flow: row nowrap;
position:relative;
}
.ol-strip-board-add-flight > * {
border:none;
outline: none;
padding:4px 8px;
}
.add-flight-by-click img {
filter:invert();
height: 12px;
}
.ol-strip-board-add-flight input {
border-radius: var( --border-radius-sm );
}
.ol-strip-board-add-flight .ol-auto-suggest {
background:white;
border-radius: var(--border-radius-sm );
color:black;
display:none;
flex-direction: column;
left:0;
margin:0;
position:absolute;
translate:0 -100%;
top:0;
}
.ol-strip-board-add-flight .ol-auto-suggest[data-has-suggestions] {
display:flex;
row-gap: 4px;
}
.ol-strip-board-add-flight .ol-auto-suggest[data-has-suggestions] a {
cursor: pointer;
}
[data-board-type="ground"] {
bottom:20px;
}
[data-board-type="tower"] {
right:10px;
top:10px;
}
[data-board-type="tower"] .ol-auto-suggest {
top:30px;
translate:0;
}

View File

@@ -0,0 +1,27 @@
#unit-list {
display:flex;
flex-direction: column;
font-size:13px;
height: 250px;
width:fit-content;
}
#unit-list > div {
display:flex;
flex-direction: row;
flex-wrap: nowrap;
}
#unit-list > div > div {
text-overflow: ellipsis;
white-space: nowrap;
width:100px;
}
#unit-list > div:first-of-type {
text-align: center;
}
#unit-list > div > div:nth-of-type( 4 ) {
text-align: center;
}

View File

@@ -1,225 +0,0 @@
#map-contextmenu {
display: flex;
flex-direction: column;
height: fit-content;
position: absolute;
row-gap: 5px;
width: 230px;
z-index: 1000;
}
#aircraft-spawn-menu {
height: fit-content;
}
#ground-unit-spawn-menu {
height: fit-content;
}
#active-coalition-label {
position: absolute;
top: -28px;
border-radius: 999px;
width: fit-content;
height: fit-content;
padding: 3px 10px;
padding-bottom: 3px;
font-weight: 600;
color: var(--nav-text);
font-size: 12px;
}
#context-menu-switch {
margin-right: 10px;
}
#map-contextmenu>div:nth-child(2){
align-items: center;
display: flex;
flex-direction: row;
justify-content: space-between;
padding-right: 0px;
}
#map-contextmenu>ul{
max-height: 200px;
overflow-x: hidden;
overflow-y: auto;
}
#map-contextmenu .ol-panel {
width: 100%;
border-radius: var(--border-radius-sm);
}
#map-contextmenu ul {
margin: 0px;
}
#map-contextmenu>div:nth-child(n+3){
align-items: center;
display: flex;
flex-direction: column;
justify-content: space-between;
row-gap: 5px;
}
#map-contextmenu .ol-select-container{
width: 100%;
flex:0 0 auto;
align-self: stretch;
}
#aircraft-spawn-menu .ol-select.is-open .ol-select-options {
max-height: 300px;
}
#aircraft-spawn-menu>button,
#ground-unit-spawn-menu>button {
width: 100%;
text-align: center;
}
#aircraft-spawn-button {
background-image: var( --spawn-aircraft-url );
background-size: 48px;
}
#ground-unit-spawn-button {
background-image: var( --spawn-ground-url );
background-size: 48px;
}
#smoke-spawn-button {
background-image: var( --spawn-smoke-url );
background-size: 48px;
}
.unit-spawn-button {
border-radius: 0px;
border: none;
height: 48px;
margin-bottom: -10px;
margin-top: -10px;
width: 48px;
}
.unit-spawn-button:last-of-type {
border-top-right-radius: var(--border-radius-sm);
border-bottom-right-radius: var(--border-radius-sm);
}
[data-active-coalition="blue"].toggle-fill,
[data-active-coalition="blue"].unit-spawn-button:hover,
[data-active-coalition="blue"].unit-spawn-button.is-open,
[data-active-coalition="blue"]#active-coalition-label,
[data-active-coalition="blue"].deploy-unit-button,
[data-active-coalition="blue"]#spawn-airbase-aircraft-button
{
background-color: var(--primary-blue)
}
[data-active-coalition="red"].toggle-fill,
[data-active-coalition="red"].unit-spawn-button:hover,
[data-active-coalition="red"].unit-spawn-button.is-open,
[data-active-coalition="red"]#active-coalition-label,
[data-active-coalition="red"].deploy-unit-button,
[data-active-coalition="red"]#spawn-airbase-aircraft-button
{
background-color: var(--primary-red)
}
[data-active-coalition="blue"].deploy-unit-button:disabled {
background-color: transparent;
border: 1px solid var(--primary-blue);
cursor: default;
}
[data-active-coalition="red"].deploy-unit-button:disabled {
background-color: transparent;
border: 1px solid var(--primary-red);
cursor: default;
}
[data-active-coalition="blue"]#active-coalition-label::after {
content: "Create blue unit";
}
[data-active-coalition="red"]#active-coalition-label::after {
content: "Create red unit";
}
#loadout-preview {
display: flex;
flex-direction: row;
align-content: space-between;
align-items: center;
width: 100%;
column-gap: 20px;
}
#loadout-list {
display: flex;
flex-direction: column;
align-content: center;
height: 100%;
}
#unit-image {
width: 100px;
filter: invert(100%);
margin-top: 10px;
margin-bottom: 10px;
}
#smoke-spawn-menu {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
}
#smoke-spawn-menu>button {
width: 100%;
text-align: left;
display: flex;
flex-wrap: wrap;
align-items: center;
column-gap: 10px;
}
#smoke-spawn-menu>button::before {
display: block;
width: 10px;
height: 10px;
border-radius: 999px;
content: "";
}
[data-smoke-color="red"]::before{ background-color: red; }
[data-smoke-color="white"]::before{ background-color: white; }
[data-smoke-color="blue"]::before{ background-color: blue; }
[data-smoke-color="green"]::before{ background-color: green; }
[data-smoke-color="orange"]::before{ background-color: orange; }
/* Unit context menu */
#unit-contextmenu {
display: flex;
flex-direction: column;
height: fit-content;
position: absolute;
row-gap: 5px;
width: 150px;
z-index: 1000;
}
/* Airbase context menu */
#airbase-contextmenu {
display: flex;
flex-direction: column;
height: fit-content;
position: absolute;
row-gap: 5px;
width: 180px;
z-index: 1000;
}

View File

@@ -1,209 +0,0 @@
/* Page style */
#map-container {
height: 100%;
min-width: 820px;
width: 100%;
}
#primary-toolbar {
position: absolute;
left: 10px;
top: 10px;
z-index: 1000;
}
#olympus-toolbar-summary {
background-image: url( "/images/icon-round.png" );
background-position: 25px 20px;
background-repeat: no-repeat;
background-size:36px 36px;
display: flex;
flex-direction: column;
text-indent: 44px;
}
dl.ol-data-grid {
align-items: center;
display:flex;
flex-direction: row;
flex-wrap: wrap;
margin:0;
row-gap: 4px;
}
dl.ol-data-grid dt {
width:60%;
}
dl.ol-data-grid dd {
width:40%;
}
dl.ol-data-grid dt.icon {
text-indent: 10px;
}
dl.ol-data-grid dt.icon::before {
content: url( /images/icons/speed.svg );
display:inline-block;
filter:invert(100%);
width: 20px;
translate:-20px 2px;
}
dl.ol-data-grid dt.icon-speed::before {
content: url( /images/icons/speed.svg );
}
dl.ol-data-grid dt.icon-altitude::before {
content: url( /images/icons/altitude.svg );
}
dl.ol-data-grid dd {
display: flex;
justify-content: flex-end;
margin-left: auto;
}
.br-info[data-bearing][data-distance][data-distance-units]::after {
content: attr( data-bearing ) '\00B0 / ' attr( data-distance ) attr( data-distance-units );
}
.coordinates::after {
content: attr( data-dd ) "\00b0 " attr( data-mm ) "'" attr( data-ss ) "." attr( data-sss ) '"' attr( data-label );
}
.ol-button-box {
column-gap: 6px;
display:flex;
flex-direction: row;
flex-wrap: wrap;
margin:5px 0;
row-gap: 5px;
}
.ol-button-box button {
background-repeat: no-repeat;;
border:1px solid var( --accent-light-blue );
color: var( --accent-light-blue );
}
.ol-dialog {
align-self: center;
background-color: var( --background-slate-blue );
color:white;
justify-self: center;
position: absolute;
z-index:1000;
}
.ol-panel.ol-dialog {
padding:25px;
}
.ol-dialog-close {
cursor: pointer;
font-size:16px;
font-weight: var( --font-weight-bolder );
position: absolute;
right: 25px;
top: 25px;
}
.ol-dialog-close::before {
content: "\d7";
}
.ol-dialog-header {
border-bottom:1px solid var( --background-grey );
padding-bottom:10px;
}
.ol-dialog-footer {
border-top:1px solid var( --background-grey );
padding-top:15px;
}
.ol-checkbox label {
align-items: center;
cursor: pointer;
display: flex;
flex-wrap: nowrap;
white-space: nowrap;
}
.ol-checkbox input[type="checkbox"] {
appearance:none;
background-color: transparent;
border:none;
margin:0;
}
.ol-checkbox input[type="checkbox"]::before {
align-self:center;
background-image: url( "/images/icons/square-check-solid.svg" );
background-repeat: no-repeat;
content: "";
filter: invert( 100% );
display:flex;
height:16px;
margin-right:10px;
width:16px;
}
.ol-checkbox input[type="checkbox"]:checked::before {
background-image: url( "/images/icons/square-regular.svg" );
}
[class|="ol-button"] {
align-items: center;
background-repeat: no-repeat;
display:flex;
font-weight: normal;
padding:8px 10px;
white-space: nowrap;
}
[class|="ol-button"]::before {
margin-right:8px;
}
.ol-button-close {
background: transparent;
border:1px solid white;
}
.ol-button-close::before {
content: "\d7";
}
.ol-button-settings {
background-color: var( --background-slate-blue );
}
.ol-button-settings::before {
background-image: url( "/images/icons/gears-solid.svg" );
background-position:0 50%;
background-size:24px 24px;
content: "";
display:flex;
filter: invert( 100% );
height: 24px;
width: 24px;
}

View File

@@ -0,0 +1,117 @@
/* Page style */
#map-container {
height: 100%;
min-width: 820px;
width: 100%;
}
#toolbar-container {
align-items: center;
display: flex;
left: 10px;
position: absolute;
top: 10px;
z-index: 9999;
column-gap: 10px;
}
#primary-toolbar {
align-items: center;
display: flex;
}
#command-mode-toolbar {
align-items: center;
display: flex;
}
#app-icon>.ol-select-options {
width: fit-content;
}
#toolbar-summary {
background-image: url("/images/icon-round.png");
background-position: 20px 22px;
background-repeat: no-repeat;
background-size: 45px 45px;
display: flex;
flex-direction: column;
padding: 20px;
text-indent: 60px;
}
#toolbar-summary {
white-space: nowrap;
}
#connection-status-panel {
bottom: 20px;
font-size: 12px;
position: absolute;
right: 10px;
width: 180px;
z-index: 9999;
}
#server-status-panel {
bottom: 20px;
font-size: 12px;
position: absolute;
right: 200px;
width: 300px;
z-index: 9999;
}
#mouse-info-panel {
bottom: 60px;
display: flex;
flex-direction: column;
height: fit-content;
position: absolute;
right: 10px;
row-gap: 10px;
width: 180px;
z-index: 9999;
}
#unit-control-panel {
height: fit-content;
left: 10px;
position: absolute;
top: 80px;
width: 320px;
z-index: 9999;
}
#unit-info-panel {
bottom: 20px;
font-size: 12px;
left: 10px;
position: absolute;
width: fit-content;
z-index: 9999;
padding: 24px 30px;
}
#info-popup {
position: absolute;
width: fit-content;
height: fit-content;
top: 100px;
left: 50%;
translate: -50% 0%;
z-index: 9999;
display: flex;
align-items: center;
}
#log-panel {
position: absolute;
right: 0px;
top: 220px;
width: 310px;
height: fit-content;
z-index: 9990;
overflow: hidden;
padding: 10px;
}

View File

@@ -0,0 +1,20 @@
.airbase-icon {
align-items: center;
cursor: pointer;
display: flex;
justify-content: center;
position: relative;
}
.airbase-icon[data-coalition="red"] svg * {
stroke: var(--unit-background-red);
}
.airbase-icon[data-coalition="blue"] svg * {
stroke: var(--unit-background-blue);
}
.airbase-icon[data-coalition="neutral"] svg * {
stroke: var(--unit-background-neutral);
}

View File

@@ -0,0 +1,22 @@
.bullseye-icon {
align-items: center;
cursor: pointer;
display: flex;
justify-content: center;
position: relative;
}
.bullseye-icon[data-coalition="red"] svg * {
stroke: var(--unit-background-red);
fill: var(--unit-background-red);
}
.bullseye-icon[data-coalition="blue"] svg * {
stroke: var(--unit-background-blue);
fill: var(--unit-background-blue);
}
.bullseye-icon[data-coalition="neutral"] svg * {
stroke: var(--unit-background-neutral);
fill: var(--unit-background-neutral);
}

View File

@@ -0,0 +1,318 @@
/*** Unit marker elements ***/
[data-object|="unit"] {
align-items: center;
cursor: pointer;
display: flex;
height: 100%;
justify-content: center;
position: relative;
width: 100%;
}
.unit-vvi {
align-self: center;
background: var(--secondary-gunmetal-grey);
display: flex;
justify-self: center;
padding-bottom: calc((var(--unit-width) / 2) + var(--unit-stroke-width));
position: absolute;
transform-origin: bottom;
translate: 0 -50%;
width: var(--unit-vvi-width);
}
.unit-hotgroup {
align-content: center;
background-color: var(--background-steel);
border-radius: var(--border-radius-xs);
display: none;
height: 15px;
justify-content: center;
position: absolute;
transform: rotate(-45deg);
translate: 0 -200%;
width: 15px;
}
.unit-hotgroup-id {
background-color: transparent;
color: white;
font-size: 9px;
font-weight: bolder;
transform: rotate(45deg);
translate: -1px 1px;
}
.unit-icon {
height: var(--unit-height);
position: absolute;
transform-origin: center;
width: var(--unit-width);
}
[data-is-selected] .unit-icon::before {
background-color: var(--unit-spotlight-fill);
border-radius: 50%;
content: "";
height: 100%;
position: absolute;
width: 100%;
z-index: -1;
}
/*** Basic colours ***/
[data-coalition="blue"] .unit-icon svg>*:first-child {
fill: var(--unit-background-blue);
}
[data-coalition="red"] .unit-icon svg>*:first-child {
fill: var(--unit-background-red);
}
[data-coalition="neutral"] .unit-icon svg>*:first-child {
fill: var(--unit-background-neutral);
}
[data-is-selected] .unit-icon svg>*:first-child {
fill: white;
}
[data-is-highlighted] .unit-icon svg>*:first-child {
stroke: white;
}
/*** Cursors ***/
[data-is-dead],
[data-object|="unit-missile"],
[data-object|="unit-bomb"] {
cursor: default;
}
/*** Labels ***/
[data-object|="unit"] .unit-short-label {
color: var(--secondary-gunmetal-grey);
font-size: var(--unit-font-size);
font-weight: var(--unit-font-weight);
line-height: normal;
position: absolute;
}
/*** Fuel indicator ***/
[data-object|="unit"] .unit-fuel {
background: white;
border: var(--unit-fuel-border-width) solid var(--secondary-dark-steel);
border-radius: var(--border-radius-sm);
display: none;
height: var(--unit-fuel-height);
position: absolute;
translate: var(--unit-fuel-x) var(--unit-fuel-y);
width: var(--unit-fuel-width);
}
[data-object|="unit"] .unit-fuel-level {
background-color: var(--secondary-light-grey);
height: 100%;
width: 100%;
}
/*** Ammo indicator ***/
[data-object|="unit"] .unit-ammo {
column-gap: var(--unit-ammo-spacing);
display: none;
height: fit-content;
position: absolute;
translate: var(--unit-ammo-x) var(--unit-ammo-y);
width: fit-content;
}
[data-object|="unit"] .unit-ammo>* {
background-color: white;
border: var(--unit-ammo-border-width) solid var(--secondary-dark-steel);
border-radius: 50%;
padding: var(--unit-ammo-radius);
}
/*** Unit summary ***/
[data-object|="unit"] .unit-summary {
color: white;
column-gap: 6px;
display: flex;
flex-wrap: wrap;
font-size: 11px;
font-weight: bold;
justify-content: right;
line-height: 12px;
pointer-events: none;
position: absolute;
row-gap: 1px;
text-shadow:
-1px -1px 0 #000,
1px -1px 0 #000,
-1px 1px 0 #000,
1px 1px 0 #000;
right: 100%;
width: fit-content;
}
[data-hide-labels] [data-object|="unit"] .unit-summary {
display: none;
}
[data-object|="unit"] .unit-summary>* {
padding: 1px;
}
[data-object|="unit"] .unit-summary .unit-callsign {
color: white;
overflow: hidden;
text-align: right;
transform-origin: right;
white-space: nowrap;
width: 80px;
}
[data-object|="unit"]:hover .unit-summary .unit-callsign{
direction: rtl;
overflow: visible;
}
/*** Common ***/
[data-object|="unit"]:hover .unit-ammo,
[data-object|="unit"]:hover .unit-fuel {
display: flex;
}
@keyframes pulse {
50% {
opacity: 0;
}
}
[data-object|="unit"][data-has-low-fuel] .unit-fuel {
animation: pulse 1.5s linear infinite;
}
[data-object|="unit"][data-is-in-hotgroup] .unit-hotgroup,
[data-object|="unit"][data-is-selected] .unit-ammo,
[data-object|="unit"][data-is-selected] .unit-fuel,
[data-object|="unit"][data-is-selected] .unit-selected-spotlight {
display: flex;
}
[data-object|="unit"][data-has-fox-1] .unit-ammo>div:nth-child(1),
[data-object|="unit"][data-has-fox-2] .unit-ammo>div:nth-child(2),
[data-object|="unit"][data-has-fox-3] .unit-ammo>div:nth-child(3),
[data-object|="unit"][data-has-other-ammo] .unit-ammo>div:nth-child(4) {
background-color: var(--secondary-gunmetal-grey);
}
[data-object|="unit"][data-coalition="blue"][data-is-selected] .unit-short-label {
color: var(--secondary-blue-text);
}
[data-object|="unit"][data-coalition="blue"] .unit-fuel-level,
[data-object|="unit"][data-coalition="blue"][data-has-fox-1] .unit-ammo>div:nth-child(1),
[data-object|="unit"][data-coalition="blue"][data-has-fox-2] .unit-ammo>div:nth-child(2),
[data-object|="unit"][data-coalition="blue"][data-has-fox-3] .unit-ammo>div:nth-child(3),
[data-object|="unit"][data-coalition="blue"][data-has-other-ammo] .unit-ammo>div:nth-child(4) {
background-color: var(--primary-blue);
}
[data-object|="unit"][data-coalition="blue"] .unit-vvi {
background-color: var(--secondary-blue-outline);
}
[data-object|="unit"][data-coalition="red"][data-is-selected] .unit-short-label {
color: var(--secondary-red-text);
}
[data-object|="unit"][data-coalition="red"] .unit-fuel-level,
[data-object|="unit"][data-coalition="red"][data-has-fox-1] .unit-ammo>div:nth-child(1),
[data-object|="unit"][data-coalition="red"][data-has-fox-2] .unit-ammo>div:nth-child(2),
[data-object|="unit"][data-coalition="red"][data-has-fox-3] .unit-ammo>div:nth-child(3),
[data-object|="unit"][data-coalition="red"][data-has-other-ammo] .unit-ammo>div:nth-child(4) {
background-color: var(--primary-red);
}
[data-object|="unit"][data-coalition="blue"] .unit-vvi {
background-color: var(--secondary-red-outline);
}
/*** Unit state ***/
[data-object|="unit"] .unit-state {
background-repeat: no-repeat;
height: 20px;
position: absolute;
width: 20px;
left: 0px;
top: 0px;
}
[data-object|="unit"][data-state="rtb"] .unit-state {
background-image: url("/resources/theme/images/states/rtb.svg");
}
[data-object|="unit"][data-state="land"] .unit-state {
background-image: url("/resources/theme/images/states/rtb.svg");
}
[data-object|="unit"][data-state="idle"] .unit-state {
background-image: url("/resources/theme/images/states/idle.svg");
}
[data-object*="groundunit"][data-state="idle"] .unit-state {
background-image: url(""); /* To avoid clutter, dont show the idle state for non flying units */
}
[data-object|="unit"][data-state="attack"] .unit-state,
[data-object|="unit"][data-state="bombing point"] .unit-state,
[data-object|="unit"][data-state="carpet bombing"] .unit-state,
[data-object|="unit"][data-state="firing at area"] .unit-state {
background-image: url("/resources/theme/images/states/attack.svg");
}
[data-object|="unit"][data-state="follow"] .unit-state {
background-image: url("/resources/theme/images/states/follow.svg");
}
[data-object|="unit"][data-state="refuel"] .unit-state {
background-image: url("/resources/theme/images/states/refuel.svg");
}
[data-object|="unit"][data-state="human"] .unit-state {
background-image: url("/resources/theme/images/states/human.svg");
}
[data-object|="unit"][data-state="dcs"] .unit-state {
background-image: url("/resources/theme/images/states/dcs.svg");
}
[data-object|="unit"][data-state="no-task"] .unit-state {
background-image: url("/resources/theme/images/states/no-task.svg");
}
/*** Dead unit ***/
[data-object|="unit"][data-is-dead] .unit-selected-spotlight,
[data-object|="unit"][data-is-dead] .unit-short-label,
[data-object|="unit"][data-is-dead] .unit-vvi,
[data-object|="unit"][data-is-dead] .unit-hotgroup,
[data-object|="unit"][data-is-dead] .unit-hotgroup-id,
[data-object|="unit"][data-is-dead] .unit-state,
[data-object|="unit"][data-is-dead] .unit-fuel,
[data-object|="unit"][data-is-dead] .unit-ammo,
[data-object|="unit"][data-is-dead]:hover .unit-fuel,
[data-object|="unit"][data-is-dead]:hover .unit-ammo {
display: none;
}
[data-object|="unit"][data-is-dead] .unit-summary>* {
display: none;
}
[data-object|="unit"][data-is-dead] .unit-summary .unit-callsign {
display: block;
}
.ol-temporary-marker {
opacity: 0.5;
}

View File

@@ -1,83 +0,0 @@
#mouse-info-panel {
bottom: 60px;
display:flex;
flex-direction: column;
height: fit-content;
position: absolute;
right: 10px;
row-gap: 10px;
width: 160px;
z-index: 1000;
}
#mouse-info-panel > * {
background-color: var( --background-grey );
border-radius: var( --border-radius-sm );
padding:6px;
}
#mouse-info-panel dl {
margin-bottom:4px;
row-gap: 8px;
}
#mouse-info-panel dt {
height:20px;
width:40%;
}
#mouse-info-panel dt::after {
align-items: center;
background-color: white;
border-radius: var( --border-radius-sm );
color: var( --background-steel );
display:flex;
font-size:15.6px;
font-weight: bolder;
height:16px;
justify-content: center;
line-height: 16px;
padding:4px;
text-transform: uppercase;
width:16px;
}
#mouse-info-panel dt#ref-measure-position::after {
background-image: url( "/images/icons/ruler.svg" );
background-position: 50% 50%;
background-repeat: no-repeat;
background-size:16px 16px;
content: " ";
}
#mouse-info-panel dt[data-label]::after {
content: attr( data-label );
}
#mouse-info-panel dt[data-coalition="blue"]::after {
background-color: var( --primary-blue );
}
#mouse-info-panel dt[data-coalition="red"]::after {
background-color: var( --primary-red );
}
#mouse-info-panel dt[data-tooltip]:hover::before {
background-color: var( --background-grey );
border-radius: 5px;
content: attr( data-tooltip );
display:flex;
flex-wrap: nowrap;
padding: 5px;
position: absolute;
translate: calc( -100% - 15px ) 0;
white-space: nowrap;
}
#mouse-info-panel dd {
width:60%;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,446 @@
#map-contextmenu {
display: flex;
flex-direction: column;
height: fit-content;
position: absolute;
row-gap: 5px;
width: 300px;
z-index: 9999;
}
#map-contextmenu>div:nth-child(2) {
align-items: center;
display: flex;
flex-direction: row;
justify-content: space-between;
padding-right: 0px;
}
#map-contextmenu>div:nth-child(3) {
align-items: center;
display: flex;
flex-direction: row;
justify-content: space-between;
padding-right: 0px;
}
#map-contextmenu>div:nth-child(n+4) {
align-items: center;
display: flex;
flex-direction: column;
justify-content: space-between;
row-gap: 5px;
}
#aircraft-spawn-menu,
#helicopter-spawn-menu,
#groundunit-spawn-menu,
#navyunit-spawn-menu {
height: fit-content;
}
#active-coalition-label {
border-radius: 999px;
color: var(--nav-text);
font-size: 12px;
font-weight: 600;
height: fit-content;
padding: 3px 10px;
padding-bottom: 3px;
position: absolute;
top: -28px;
width: fit-content;
}
#coalition-switch {
margin-right: 10px;
height: 25px;
width: 50px;
}
#aircraft-spawn-menu .ol-select.is-open .ol-select-options,
#helicopter-spawn-menu .ol-select.is-open .ol-select-options {
max-height: 300px;
}
.deploy-unit-button {
margin-top: 5px;
text-align: center;
width: 100%;
}
.deploy-unit-button[data-points]:not([data-points='']):not([data-points='0']):not([data-points='Infinity'])::after {
content: " (" attr(data-points) " points)";
}
.upper-bar svg>* {
fill: white;
}
.upper-bar svg {
width: 22px;
margin: 0px 5px;
}
.upper-bar button:nth-child(2) {
margin-left: auto;
}
[data-coalition="blue"]#active-coalition-label,
[data-coalition="blue"].deploy-unit-button,
[data-coalition="blue"]#spawn-airbase-aircraft-button,
[data-coalition="blue"].create-iads-button {
background-color: var(--primary-blue)
}
[data-coalition="red"]#active-coalition-label,
[data-coalition="red"].deploy-unit-button,
[data-coalition="red"]#spawn-airbase-aircraft-button,
[data-coalition="red"].create-iads-button {
background-color: var(--primary-red)
}
[data-coalition="neutral"]#active-coalition-label,
[data-coalition="neutral"].deploy-unit-button,
[data-coalition="neutral"]#spawn-airbase-aircraft-button,
[data-coalition="neutral"].create-iads-button {
background-color: var(--primary-neutral)
}
[data-coalition="blue"].deploy-unit-button:disabled {
background-color: transparent;
border: 1px solid var(--primary-blue);
cursor: default;
}
[data-coalition="red"].deploy-unit-button:disabled {
background-color: transparent;
border: 1px solid var(--primary-red);
cursor: default;
}
[data-coalition="neutral"].deploy-unit-button:disabled {
background-color: transparent;
border: 1px solid var(--primary-neutral);
cursor: default;
}
[data-coalition="blue"]#active-coalition-label::after {
content: "Create blue unit";
}
[data-coalition="red"]#active-coalition-label::after {
content: "Create red unit";
}
[data-coalition="neutral"]#active-coalition-label::after {
content: "Create neutral unit";
}
#aircraft-loadout-preview,
#helicopter-loadout-preview {
align-content: space-between;
align-items: center;
column-gap: 20px;
display: flex;
flex-direction: row;
width: 100%;
}
#aircaft-loadout-list,
#helicopter-loadout-list {
align-content: center;
display: flex;
flex-direction: column;
height: 100%;
}
#aircraft-unit-image,
#helicopter-unit-image {
filter: invert(100%);
height: 100px;
margin-bottom: 10px;
margin-top: 10px;
width: 100px;
}
#smoke-spawn-menu {
align-items: center;
display: flex;
flex-direction: column;
text-align: center;
}
#explosion-menu>button,
#smoke-spawn-menu>button {
align-items: center;
column-gap: 10px;
display: flex;
flex-wrap: wrap;
text-align: left;
width: 100%;
}
#smoke-spawn-menu>button::before {
border-radius: 999px;
content: "";
display: block;
height: 10px;
width: 10px;
}
[data-smoke-color="red"]::before {
background-color: red;
}
[data-smoke-color="white"]::before {
background-color: white;
}
[data-smoke-color="blue"]::before {
background-color: blue;
}
[data-smoke-color="green"]::before {
background-color: green;
}
[data-smoke-color="orange"]::before {
background-color: orange;
}
.ol-context-menu .ol-slider-value {
color: var(--accent-light-blue);
cursor: pointer;
font-size: 14px;
font-weight: bold;
}
.ol-context-menu .ol-slider-container {
padding: 0px 10px;
}
.contextmenu-options-container {
display: flex;
align-items: center;
justify-content: space-between;
padding-left: 10px;
}
.contextmenu-options-container>*:nth-child(2) {
width: 120px;
}
/* Unit context menu */
#unit-contextmenu {
display: flex;
flex-direction: column;
height: fit-content;
padding: 15px;
position: absolute;
row-gap: 5px;
width: fit-content;
z-index: 9999;
}
#unit-contextmenu button {
border: 1px solid var(--background-offwhite);
border-radius: var(--border-radius-sm);
font-weight: normal;
padding: 12px;
}
#unit-contextmenu div {
align-content: center;
display: flex;
flex-direction: row;
}
#unit-contextmenu div:before {
display: inline-block;
filter: invert(100%);
height: 16px;
margin-right: 15px;
width: 16px;
}
#center-map::before {
content: url("/resources/theme/images/icons/arrows-to-eye-solid.svg");
}
#refuel::before {
content: url("/resources/theme/images/icons/fuel.svg");
}
#attack::before {
content: url("/resources/theme/images/icons/sword.svg");
}
#bomb::before {
content: url("/resources/theme/images/icons/crosshairs-solid.svg");
}
#carpet-bomb::before {
content: url("/resources/theme/images/icons/explosion-solid.svg");
}
#fire-at-area::before {
content: url("/resources/theme/images/icons/crosshairs-solid.svg");
}
#follow::before {
content: url("/resources/theme/images/icons/follow.svg");
}
#trail::before {
content: url("/resources/theme/images/icons/trail.svg");
}
#echelon-lh::before {
content: url("/resources/theme/images/icons/echelon-lh.svg");
}
#echelon-rh::before {
content: url("/resources/theme/images/icons/echelon-rh.svg");
}
#line-abreast-rh::before,
#line-abreast-lh::before {
content: url("/resources/theme/images/icons/line-abreast.svg");
}
#front::before {
content: url("/resources/theme/images/icons/front.svg");
}
#diamond::before {
content: url("/resources/theme/images/icons/diamond.svg");
}
#custom::before {
content: url("/resources/theme/images/icons/custom.svg");
}
#custom-formation-dialog {
width: 250px;
}
#custom-formation-dialog>.ol-dialog-content {
align-items: center;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
margin-bottom: 10px;
margin-top: 10px;
row-gap: 10px;
}
#custom-formation-dialog>.ol-dialog-content>.ol-group {
justify-content: space-between;
width: 100%;
}
#reference-system {
content: url("/images/reference-system.svg");
display: inline-block;
filter: invert(100%);
position: absolute;
transform: translate(-50%, -50%);
width: 50px;
}
.formation-position-clock {
height: 100px;
margin: 15px;
position: relative;
width: 100px;
}
.formation-position-clock>.clock-hand {
align-items: center;
display: flex;
height: 20px;
justify-content: center;
position: absolute;
transform: translate(-50%, -50%);
width: 20px;
}
/* Airbase context menu */
#airbase-contextmenu {
display: flex;
flex-direction: column;
height: fit-content;
position: absolute;
row-gap: 5px;
width: 180px;
z-index: 9999;
}
/* Coalition area context menu */
#coalition-area-contextmenu {
display: flex;
flex-direction: column;
height: fit-content;
position: absolute;
row-gap: 5px;
width: 300px;
z-index: 9999;
}
#coalition-area-switch {
margin-right: 10px;
height: 25px;
width: 50px;
}
#coalition-area-contextmenu .ol-checkbox {
align-self: flex-start;
}
#coalition-units-checkbox {
padding: 10px 10px;
}
#iads-menu .ol-select-options>* {
padding-top: 8px;
padding-bottom: 8px;
}
#iads-menu .ol-select-options>*:first-child {
padding-top: 15px;
}
#iads-menu .ol-select-options>*:last-child {
padding-bottom: 15px;
}
#iads-menu .ol-select {
width: 100%;
}
#iads-menu {
row-gap: 10px;
}
#coalition-area-contextmenu>div:nth-child(2) {
align-items: center;
display: flex;
flex-direction: row;
justify-content: space-between;
padding-right: 0px;
}
#coalition-area-contextmenu>div:nth-child(n+3) {
align-items: center;
display: flex;
flex-direction: column;
justify-content: space-between;
row-gap: 5px;
}
.create-iads-button {
margin-top: 5px;
text-align: center;
width: 100%;
}

View File

@@ -0,0 +1,13 @@
.ol-popup > div {
padding-left: 15px;
padding-right: 15px;
}
.visible {
opacity: 1;
}
.invisible {
opacity: 0;
transition: opacity 2s linear;
}

View File

@@ -1,12 +1,3 @@
#connection-status-panel {
bottom: 20px;
font-size:12px;
position: absolute;
right: 10px;
width: 160px;
z-index: 1000;
}
#connection-status-panel dt::before { #connection-status-panel dt::before {
content: "No connection"; content: "No connection";
} }
@@ -15,15 +6,14 @@
border-radius: 50%; border-radius: 50%;
background: red; background: red;
content: " "; content: " ";
height:12px; height: 12px;
width:12px; width: 12px;
} }
#connection-status-panel[data-is-connected] dt::before { #connection-status-panel[data-is-connected] dt::before {
content: "Connected"; content: "Connected";
} }
#connection-status-panel[data-is-connected] dd::after { #connection-status-panel[data-is-connected] dd::after {
background:var( --accent-green ); background: var(--accent-green);
} }

View File

@@ -0,0 +1,28 @@
#log-panel>div:first-child {
width: 100%;
height: 38px;
display: flex;
justify-content: space-between;
align-items: center;
cursor: pointer;
}
#log-panel svg {
pointer-events: none;
}
#log-panel>div:nth-child(2) {
display: none;
margin-top: 5px;
width: 100%;
height: calc(100% - 40px);
background-color: #00000055;
}
#log-panel.open {
height: 505px;
}
#log-panel.open>div:nth-child(2) {
display: block;
}

View File

@@ -0,0 +1,109 @@
#mouse-info-panel>* {
background-color: var(--background-grey);
border-radius: var(--border-radius-sm);
padding: 6px;
}
#mouse-info-panel dl {
margin-bottom: 4px;
row-gap: 5px;
}
#mouse-info-panel dt {
height: fit-content;
width: 30%;
}
#mouse-info-panel dt::after {
align-items: center;
background-color: white;
border-radius: var(--border-radius-sm);
color: var(--background-steel);
display: flex;
font-size: 15.6px;
font-weight: bolder;
height: 16px;
justify-content: center;
line-height: 16px;
padding: 4px;
text-transform: uppercase;
width: 16px;
}
#mouse-info-panel #measuring-tool dt {
height: 24px;
width: 24px;
background-color: var(--background-offwhite);
border-radius: var(--border-radius-sm);
}
#mouse-info-panel #measuring-tool svg {
padding: 3px;
height: 100%;
width: 100%;
}
#mouse-info-panel #measuring-tool dt svg>* {
fill: black;
stroke: black;
}
#mouse-info-panel dt[data-label]::after {
content: attr(data-label);
}
#mouse-info-panel dt[data-coalition="blue"]::after {
background-color: var(--primary-blue);
}
#mouse-info-panel dt[data-coalition="red"]::after {
background-color: var(--primary-red);
}
#mouse-info-panel dt[data-tooltip]:hover::before {
background-color: var(--background-grey);
border-radius: 5px;
content: attr(data-tooltip);
display: flex;
flex-wrap: nowrap;
padding: 5px;
position: absolute;
translate: calc(-100% - 15px) 0;
white-space: nowrap;
}
#mouse-info-panel dd {
width: 70%;
}
.br-info::after {
content: attr(data-bearing) '\00B0 / ' attr(data-distance) " " attr(data-distance-units);
font-weight: bold;
font-size: 13px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: var(--background-offwhite);
}
.br-info[data-coalition="blue"]::after {
color: var(--primary-blue)
}
.br-info[data-coalition="red"]::after {
color: var(--primary-red)
}
.br-info[data-message]::after {
content: attr(data-message);
}
.coordinates::after {
content: attr(data-value);
font-weight: bold;
font-size: 13px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: var(--background-offwhite);
}

View File

@@ -0,0 +1,43 @@
#server-status-panel {
display: flex;
flex-direction: row;
justify-content: space-between;
column-gap: 10px;
}
#server-status-panel .ol-data-grid {
width: 100%;
}
#server-status-panel .ol-data-grid:first-of-type {
border-right: 1px solid gray;
padding-right: 10px;
}
#server-status-panel dd {
font-weight: bold;
}
.fps-low {
color: red;
}
.fps-medium {
color: orange;
}
.fps-high {
color: lightgreen;
}
.load-low {
color: lightgreen;
}
.load-medium {
color: orange;
}
.load-high {
color: red;
}

View File

@@ -0,0 +1,226 @@
body.feature-forceShowUnitControlPanel #unit-control-panel {
display: block !important;
}
#unit-control-panel {
display: flex;
flex-direction: column;
row-gap: 10px;
}
#unit-control-panel h3 {
margin-bottom: 8px;
}
#unit-control-panel #selected-units-container {
align-items: left;
border-radius: var(--border-radius-md);
display: flex;
flex-direction: column;
max-height: 215px;
overflow-x: hidden;
overflow-y: auto;
row-gap: 4px;
}
#unit-control-panel #selected-units-container button {
align-items: center;
border-radius: var(--border-radius-md);
display: flex;
font-size: 11px;
height: 32px;
justify-content: space-between;
margin-right: 5px;
position: relative;
width: calc(100% - 5px);
}
#unit-control-panel #selected-units-container button::after {
border-radius: 999px;
color: var(--secondary-semitransparent-white);
content: attr(data-label);
font-size: 10px;
padding: 4px 6px;
white-space: nowrap;
width: fit-content;
}
#unit-control-panel #selected-units-container button:hover::after {
max-width: 100%;
text-overflow: unset;
}
#unit-control-panel #selected-units-container button::before {
border-radius: var(--border-radius-sm);
content: attr(data-callsign);
display: block;
overflow: hidden;
padding: 4px;
padding-left: 0;
text-align: left;
text-overflow: ellipsis;
white-space: nowrap;
width: fit-content;
}
#unit-control-panel h4 {
margin-bottom: 8px;
}
#advanced-settings-dialog {
width: 400px;
}
#advanced-settings-dialog>.ol-dialog-content {
display: flex;
flex-direction: column;
flex-wrap: nowrap;
margin-bottom: 10px;
margin-top: 10px;
row-gap: 10px;
}
#advanced-settings-dialog>.ol-dialog-content>div {
display: flex;
flex-direction: column;
flex-wrap: nowrap;
row-gap: 10px;
}
#advanced-settings-dialog>.ol-dialog-content>div>.ol-group {
justify-content: space-between;
}
#advanced-settings-dialog h4 {
white-space: nowrap;
}
#advanced-settings-dialog hr {
margin-bottom: 10px;
margin-top: 15px;
}
#general-settings-grid {
display: grid;
grid-template-columns: 1fr 1fr;
row-gap: 10px;
}
#general-settings-grid>div {
width: 49%;
}
#flight-data .ol-slider {
margin: 20px 0px;
}
.ol-slider-container dd {
column-gap: 5px;
}
#flight-data .ol-switch {
height: 20px;
width: 50px;
}
#flight-data .ol-switch-fill {
background-color: var(--accent-light-blue);
}
#flight-data .ol-switch-fill::after {
background-color: white;
}
#altitude-type-switch[data-value="true"]>.ol-switch-fill::before {
content: "AGL";
}
#altitude-type-switch[data-value="false"]>.ol-switch-fill::before {
content: "ASL";
}
#speed-type-switch[data-value="true"]>.ol-switch-fill::before {
content: "GS";
}
#speed-type-switch[data-value="false"]>.ol-switch-fill::before {
content: "CAS";
}
#unit-control-panel .ol-slider-value {
color: var(--accent-light-blue);
cursor: pointer;
font-size: 14px;
font-weight: bold;
}
#unit-control-panel .switch-control {
align-items: center;
display: grid;
grid-template-columns: 1.35fr 0.65fr;
}
#unit-control-panel .switch-control>*:nth-child(2) {
justify-self: end;
}
#unit-control-panel .switch-control>*:nth-child(3) {
color: var(--secondary-semitransparent-white);
}
#unit-control-panel .switch-control h4 {
margin: 0px;
}
#unit-control-panel .switch-control .ol-switch {
height: 25px;
width: 60px;
}
#unit-control-panel .switch-control .ol-switch-fill {
background-color: var(--accent-light-blue);
}
#unit-control-panel .switch-control .ol-switch-fill::after {
background-color: white;
}
#unit-control-panel .switch-control .ol-switch[data-value="true"]>.ol-switch-fill::before {
content: "YES";
}
#unit-control-panel .switch-control .ol-switch[data-value="false"]>.ol-switch-fill::before {
content: "NO";
}
#advanced-settings-div {
column-gap: 5px;
display: flex;
}
#advanced-settings-div>*:nth-child(2) {
margin-left: auto;
}
#advanced-settings-div button {
height: 40px;
}
/* Element visibility control */
#unit-control-panel:not([data-show-categories-tooltip]) #categories-tooltip,
#unit-control-panel:not([data-show-speed-slider]) #speed-slider,
#unit-control-panel:not([data-show-altitude-slider]) #altitude-slider,
#unit-control-panel:not([data-show-roe]) #roe,
#unit-control-panel:not([data-show-threat]) #threat,
#unit-control-panel:not([data-show-emissions-countermeasures]) #emissions-countermeasures,
#unit-control-panel:not([data-show-on-off]) #ai-on-off,
#unit-control-panel:not([data-show-follow-roads]) #follow-roads,
#unit-control-panel:not([data-show-advanced-settings-button]) #advanced-settings-button,
#advanced-settings-dialog:not([data-show-settings]) #general-settings,
#advanced-settings-dialog:not([data-show-tasking]) #tasking,
#advanced-settings-dialog:not([data-show-tanker]) #tanker-checkbox,
#advanced-settings-dialog:not([data-show-AWACS]) #AWACS-checkbox,
#advanced-settings-dialog:not([data-show-TACAN]) #TACAN-options,
#advanced-settings-dialog:not([data-show-radio]) #radio-options {
display: none;
}

View File

@@ -0,0 +1,124 @@
#unit-info-panel>* {
position: relative;
min-height: 100px;
bottom: 0px;
}
#general {
display: flex;
flex-direction: column;
justify-content: space-between;
row-gap: 4px;
position: relative;
}
#unit-label {
font-weight: bold;
}
#unit-control {
color: var(--secondary-lighter-grey);
font-weight: bold;
}
#unit-name {
margin-bottom: 4px;
padding: 0px 0;
}
#current-task {
border-radius: var(--border-radius-md);
margin-top: auto;
padding: 6px 16px;
}
#current-task::after {
content: attr(data-current-task);
display: block;
}
#loadout {
display: flex;
overflow: visible;
width: 100%;
min-width: 125px;
}
#loadout-container {
display: flex;
flex-direction: column;
justify-content: space-between;
}
#loadout-silhouette {
filter: invert(100%);
height: 100px;
margin-right: 25px;
width: 100px;
}
#loadout-items {
align-self: center;
display: flex;
flex-flow: column nowrap;
row-gap: 8px;
}
#loadout-items>* {
align-items: center;
column-gap: 8px;
display: flex;
white-space: nowrap;
}
#loadout-items>*::before {
align-items: center;
background-color: var(--secondary-light-grey);
border-radius: 999px;
content: attr(data-qty);
display: flex;
font-size: 11px;
font-weight: bold;
padding: 4px 6px;
}
#loadout-items>*::after {
content: attr(data-item);
max-width: 125px;
overflow: hidden;
position: relative;
text-overflow: ellipsis;
width: 100%;
}
#fuel-percentage {
align-items: center;
display: flex;
margin-top: auto;
}
#fuel-percentage::before {
content: url("/resources/theme/images/icons/fuel.svg");
display: inline-block;
filter: invert(100%);
height: 16px;
margin-right: 6px;
width: 16px;
}
#fuel-percentage::after {
content: attr(data-percentage) "%";
}
#fuel-display {
background-color: var(--background-grey);
border-radius: var(--border-radius-md);
height: 6px;
margin-top: 4px;
overflow: hidden;
}
#fuel-display #fuel-bar {
border-radius: var(--border-radius-md);
height: 100%;
}

View File

@@ -1,46 +0,0 @@
body.feature-forceShowUnitControlPanel #unit-control-panel {
display:block !important;
}
#unit-control-panel {
height: fit-content;
left: 10px;
position: absolute;
top: 80px;
width: 250px;
z-index: 1000;
}
#unit-control-panel #selected-units-container {
align-items: center;
border-radius: var( --border-radius-md );
display:flex;
flex-direction: column;
row-gap: 4px;
}
#unit-control-panel #selected-units-container button {
font-size: 12px;
padding:8px 0;
position: relative;
width:90%;
}
#unit-control-panel #selected-units-container button::before {
background-color: var( --accent-light-blue );
border-radius: var( --border-radius-sm );
content: attr( data-short-label );
padding:4px;
position: absolute;
translate:-40px -4px;
}
#unit-control-panel #selected-units-container button::after {
content: attr( data-callsign );
}
#unit-control-panel h4 {
margin-bottom:8px;
margin-top:20px;
}

View File

@@ -1,60 +0,0 @@
#unit-info-panel {
bottom: 20px;
font-size:12px;
position: absolute;
left: 10px;
width: fit-content;
z-index: 1000;
}
#unit-info-panel #unit-name {
line-height: 18px;
margin-bottom:10px;
}
#unit-info-panel #current-task {
border-radius: var( --border-radius-lg );
margin-top:15px;
}
#unit-info-panel #current-task::after {
content: attr( data-current-task );
display:block;
}
#unit-info-panel #loadout-data {
max-width: 250px;
}
#unit-info-panel #loadout-data .ol-data-grid {
margin: 6px 0;
}
#unit-info-panel #loadout-data .ol-data-grid dt:first-child {
text-indent: 5px;
}
#unit-info-panel #loadout-data .ol-data-grid dt:first-child::before {
content: url( /images/icons/fuel.svg );
display:inline-block;
filter:invert(100%);
height:16px;
text-indent:5px;
translate:-10px 5%;
width:16px;
}
#unit-info-panel #loadout-fuel-level::after {
content: attr( data-fuel-level ) "%";
}
#unit-info-panel #loadout-container .loadout-item {
background-color: black;
}
#unit-info-panel #loadout-container .loadout-item::before {
content: attr( data-loadout-item ) ' \d7 ' attr( data-loadout-qty );
}

View File

@@ -1,590 +0,0 @@
:root {
/* Generic marker settings */
--unit-centre-x: calc( var( --unit-width ) / 2 );
--unit-centre-y: calc( var( --unit-height ) / 2 );
--unit-hotgroup-height: 10px;
--unit-hotgroup-width: var( --unit-hotgroup-height );
/* Air units' marker settings */
--unit-air-label-x: calc( var( --unit-centre-x ) - ( var( --unit-air-width ) / 2 ) + ( var( --unit-stroke-width ) / 2 ) );
--unit-air-label-y: calc( var( --unit-centre-y ) - ( var( --unit-air-height ) / 2 ) + ( var( --unit-stroke-width ) / 2 ) );
}
[data-object|="unit"] {
align-items: center;
cursor:pointer;
display:flex;
justify-content: center;
position:relative;
}
[data-hide-aircraft] #map-container [data-object|="unit-air"],
[data-hide-ground] #map-container [data-object|="unit-ground-mi"],
[data-hide-sam] #map-container [data-object|="unit-ground-sam"],
[data-hide-threat] #map-container .unit-threat,
[data-hide-naval] #map-container [data-object|="unit-naval"],
[data-hide-blue] #map-container [data-object|="unit"][data-coalition="blue"],
[data-hide-red] #map-container [data-object|="unit"][data-coalition="red"],
[data-hide-neutral] #map-container [data-object|="unit"][data-coalition="neutral"] {
display:none;
}
[data-object|="unit"] .unit-selected-spotlight {
background-color: var( --unit-spotlight-fill );
border-radius: 50%;
display:none;
padding: var( --unit-spotlight-radius );
position: absolute;
z-index:1;
}
[data-object|="unit"] .unit-vvi {
align-self: center;
background:var( --secondary-gunmetal-grey );
display:flex;
justify-self: center;
transform-origin: bottom;
translate:0 -50%;
padding-bottom: calc( ( var( --unit-air-width ) / 2 ) + var( --unit-stroke-width ) );
position:absolute;
width: var( --unit-air-vvi-width );
z-index: 3;
}
[data-object|="unit"] .unit-hotgroup {
align-content: center;
background-color: black;
border-radius: var( --border-radius-xs );
display:none;
height: var( --unit-hotgroup-height );
justify-content: center;
position:absolute;
transform: rotate( -45deg );
translate:0 -275%;
width: var( --unit-hotgroup-width );
z-index: 5;
}
[data-object|="unit"] .unit-hotgroup-id {
background-color: transparent;
color:white;
font-size: 9px;
font-weight: bolder;
transform:rotate( 45deg );
}
[data-object|="unit"] .unit-marker-border {
border-radius: var( --border-radius-sm );
display:none;
height: calc( var( --unit-air-height ) + ( var( --unit-label-border-width ) * 2 ) );
position:absolute;
width: calc( var( --unit-air-width ) + ( var( --unit-label-border-width ) * 2 ) );
z-index:2;
}
/******************************
Marker
******************************/
[data-object|="unit"] .unit-marker {
background-color: transparent;
background-repeat: no-repeat;
background-size: cover;
position:absolute;
transform-origin: center;
z-index:3;
}
/* Air */
[data-object|="unit-air"] .unit-marker {
background-image: var( --unit-air-marker-neutral-url );
height: var( --unit-air-marker-height );
width: var( --unit-air-marker-width );
}
[data-object|="unit-air"]:hover .unit-marker {
background-image: var( --unit-air-marker-neutral-hover-url );
}
[data-object|="unit-air"][data-is-selected] .unit-marker {
background-image: var( --unit-air-marker-neutral-selected-url );
}
[data-object|="unit-air"][data-coalition="blue"] .unit-marker {
background-image: var( --unit-air-marker-blue-url );
}
[data-object|="unit-air"][data-coalition="blue"]:hover .unit-marker {
background-image: var( --unit-air-marker-blue-hover-url );
}
[data-object|="unit-air"][data-coalition="blue"][data-is-selected] .unit-marker {
background-image: var( --unit-air-marker-blue-selected-url );
}
[data-object|="unit-air"][data-coalition="red"] .unit-marker {
background-image: var( --unit-air-marker-red-url );
}
[data-object|="unit-air"][data-coalition="red"]:hover .unit-marker {
background-image: var( --unit-air-marker-red-hover-url );
}
[data-object|="unit-air"][data-coalition="red"][data-is-selected] .unit-marker {
background-image: var( --unit-air-marker-red-selected-url );
}
/* Ground vehicles (not SAMs) */
[data-object|="unit-ground-mi"] .unit-marker {
background-image: var( --unit-ground-mi-marker-neutral-url );
height: var( --unit-ground-mi-marker-height );
width: var( --unit-ground-mi-marker-width );
}
[data-object|="unit-ground-mi"]:hover .unit-marker {
background-image: var( --unit-ground-mi-marker-neutral-hover-url );
}
[data-object|="unit-ground-mi"][data-is-selected] .unit-marker {
background-image: var( --unit-ground-mi-marker-neutral-selected-url );
}
[data-object|="unit-ground-mi"][data-coalition="blue"] .unit-marker {
background-image: var( --unit-ground-mi-marker-blue-url );
}
[data-object|="unit-ground-mi"][data-coalition="blue"]:hover .unit-marker {
background-image: var( --unit-ground-mi-marker-blue-hover-url );
}
[data-object|="unit-ground-mi"][data-coalition="blue"][data-is-selected] .unit-marker {
background-image: var( --unit-ground-mi-marker-blue-selected-url );
}
[data-object|="unit-ground-mi"][data-coalition="red"] .unit-marker {
background-image: var( --unit-ground-mi-marker-red-url );
}
[data-object|="unit-ground-mi"][data-coalition="red"]:hover .unit-marker {
background-image: var( --unit-ground-mi-marker-red-hover-url );
}
[data-object|="unit-ground-mi"][data-coalition="red"][data-is-selected] .unit-marker {
background-image: var( --unit-ground-mi-marker-red-selected-url );
}
/* SAMs */
[data-object|="unit-ground-sam"] .unit-selected-spotlight {
translate:0 2px;
}
[data-object|="unit-ground-sam"] .unit-marker {
background-image: var( --unit-ground-sam-marker-neutral-url );
height: var( --unit-sam-marker-height );
width: var( --unit-sam-marker-width );
}
[data-object|="unit-ground-sam"]:hover .unit-marker {
background-image: var( --unit-ground-sam-marker-neutral-hover-url );
}
[data-object|="unit-ground-sam"][data-is-selected] .unit-marker {
background-image: var( --unit-ground-sam-marker-neutral-selected-url );
}
[data-object|="unit-ground-sam"][data-coalition="blue"] .unit-marker {
background-image: var( --unit-ground-sam-marker-blue-url );
}
[data-object|="unit-ground-sam"][data-coalition="blue"]:hover .unit-marker {
background-image: var( --unit-ground-sam-marker-blue-hover-url );
}
[data-object|="unit-ground-sam"][data-coalition="blue"][data-is-selected] .unit-marker {
background-image: var( --unit-ground-sam-marker-blue-selected-url );
}
[data-object|="unit-ground-sam"][data-coalition="red"] .unit-marker {
background-image: var( --unit-ground-sam-marker-red-url );
}
[data-object|="unit-ground-sam"][data-coalition="red"]:hover .unit-marker {
background-image: var( --unit-ground-sam-marker-red-hover-url );
}
[data-object|="unit-ground-sam"][data-coalition="red"][data-is-selected] .unit-marker {
background-image: var( --unit-ground-sam-marker-red-selected-url );
}
/* Naval */
[data-object|="unit-naval"] .unit-selected-spotlight {
translate:0 -2px;
}
[data-object|="unit-naval"] .unit-marker {
background-image: var( --unit-naval-marker-neutral-url );
height: var( --unit-naval-marker-height );
width: var( --unit-naval-marker-width );
}
[data-object|="unit-naval"]:hover .unit-marker {
background-image: var( --unit-naval-marker-neutral-hover-url );
}
[data-object|="unit-naval"][data-is-selected] .unit-marker {
background-image: var( --unit-naval-marker-neutral-selected-url );
}
[data-object|="unit-naval"][data-coalition="blue"] .unit-marker {
background-image: var( --unit-naval-marker-blue-url );
}
[data-object|="unit-naval"][data-coalition="blue"]:hover .unit-marker {
background-image: var( --unit-naval-marker-blue-hover-url );
}
[data-object|="unit-naval"][data-coalition="blue"][data-is-selected] .unit-marker {
background-image: var( --unit-naval-marker-blue-selected-url );
}
[data-object|="unit-naval"][data-coalition="red"] .unit-marker {
background-image: var( --unit-naval-marker-red-url );
}
[data-object|="unit-naval"][data-coalition="red"]:hover .unit-marker {
background-image: var( --unit-naval-marker-red-hover-url );
}
[data-object|="unit-naval"][data-coalition="red"][data-is-selected] .unit-marker {
background-image: var( --unit-naval-marker-red-selected-url );
}
/* Building */
[data-object|="unit-building"] .unit-marker {
background-image: var( --unit-building-marker-neutral-url );
height: var( --unit-building-marker-height );
width: var( --unit-building-marker-width );
}
[data-object|="unit-building"][data-coalition="blue"] .unit-marker {
background-image: var( --unit-building-marker-blue-url );
}
[data-object|="unit-building"][data-coalition="red"] .unit-marker {
background-image: var( --unit-building-marker-red-url );
}
/* Weapons */
[data-object|="unit-weapon"] {
cursor: default;
}
[data-object|="unit-weapon-missile"] .unit-marker {
background-image: var( --unit-weapons-missile-marker-neutral-url );
height: var( --unit-weapons-missile-marker-height );
width: var( --unit-weapons-missile-marker-width );
}
[data-object|="unit-weapon-missile"][data-coalition="blue"] .unit-marker {
background-image: var( --unit-weapons-missile-marker-blue-url );
}
[data-object|="unit-weapon-missile"][data-coalition="red"] .unit-marker {
background-image: var( --unit-weapons-missile-marker-red-url );
}
/********************************************
* Labels
********************************************/
[data-object|="unit"] .unit-short-label {
color: var( --secondary-gunmetal-grey );
font-size: var(--unit-font-size);
font-weight: var(--unit-font-weight);
line-height: normal;
position: absolute;
z-index:10;
}
[data-object|="unit-ground-mi"] .unit-short-label {
translate: -1px 0;
}
[data-object|="unit-ground-sam"] .unit-short-label {
translate:0 50%;
}
[data-object|="unit-naval"] .unit-short-label {
translate:0 -50%;
}
[data-object|="unit"] .unit-fuel {
background:white;
border: var( --unit-air-fuel-border-width ) solid var( --secondary-dark-steel );
border-radius: var( --border-radius-sm );
display:none;
height: var( --unit-air-fuel-height );
position: absolute;
translate:var( --unit-air-fuel-x ) var( --unit-air-fuel-y );
width: var( --unit-air-fuel-width );
z-index: 5;
}
[data-object|="unit"] .unit-fuel-level {
background-color: var( --secondary-light-grey );
height:100%;
width:100%;
}
[data-object|="unit"] .unit-ammo {
column-gap: var( --unit-air-ammo-spacing );
display:none;
height:fit-content;
position:absolute;
translate:var( --unit-air-ammo-x ) var( --unit-air-ammo-y );
width:fit-content;
}
[data-object|="unit"] .unit-ammo > * {
background-color: white;
border: var( --unit-air-ammo-border-width ) solid var( --secondary-dark-steel );
border-radius: 50%;
padding: var( --unit-air-ammo-radius );
}
[data-object|="unit"] .unit-summary {
column-gap: 6px;
color:white;
display:flex;
flex-wrap: wrap;
font-size:11px;
font-weight: bold;
justify-content: right;
line-height: 12px;
position:absolute;
row-gap: 1px;
text-shadow:
-1px -1px 0 #000,
1px -1px 0 #000,
-1px 1px 0 #000,
1px 1px 0 #000;
translate: -60px 0;
width:fit-content;
z-index:20;
}
[data-hide-labels] [data-object|="unit"] .unit-summary {
display:none;
}
[data-object|="unit"] .unit-summary > * {
padding:1px;
}
[data-object|="unit"] .unit-summary .unit-callsign {
color:white;
overflow: hidden;
text-align: right;
transform-origin: right;
white-space: nowrap;
width: 80px;
}
[data-object|="unit"] .unit-summary .unit-callsign:hover {
direction: rtl;
overflow:visible;
}
[data-object|="unit"][data-pilot|="ai"]:hover .unit-ammo,
[data-object|="unit"][data-pilot|="ai"]:hover .unit-fuel {
display:flex;
}
[data-object|="unit"][data-is-in-hotgroup] .unit-hotgroup,
[data-object|="unit"][data-pilot|="ai"][data-is-selected] .unit-ammo,
[data-object|="unit"][data-pilot|="ai"][data-is-selected] .unit-fuel,
[data-object|="unit"][data-is-selected] .unit-selected-spotlight {
display:flex;
}
[data-object|="unit"][data-has-fox-1] .unit-ammo-fox-1,
[data-object|="unit"][data-has-fox-2] .unit-ammo-fox-2,
[data-object|="unit"][data-has-fox-3] .unit-ammo-fox-3,
[data-object|="unit"][data-has-other-ammo] .unit-ammo-other {
background-color: var( --secondary-gunmetal-grey );
}
[data-object|="unit"][data-coalition="blue"][data-is-selected] .unit-short-label {
color: var( --secondary-blue-text );
}
[data-object|="unit"][data-coalition="blue"] .unit-fuel-level,
[data-object|="unit"][data-coalition="blue"][data-has-fox-1] .unit-ammo-fox-1,
[data-object|="unit"][data-coalition="blue"][data-has-fox-2] .unit-ammo-fox-2,
[data-object|="unit"][data-coalition="blue"][data-has-fox-3] .unit-ammo-fox-3,
[data-object|="unit"][data-coalition="blue"][data-has-other-ammo] .unit-ammo-other {
background-color: var( --primary-blue );
}
[data-object|="unit"][data-coalition="blue"] .unit-vvi {
background-color: var( --secondary-blue-outline );
}
[data-object|="unit"][data-coalition="red"][data-is-selected] .unit-short-label {
color: var( --secondary-red-text );
}
[data-object|="unit"][data-coalition="red"] .unit-fuel-level,
[data-object|="unit"][data-coalition="red"][data-has-fox-1] .unit-ammo-fox-1,
[data-object|="unit"][data-coalition="red"][data-has-fox-2] .unit-ammo-fox-2,
[data-object|="unit"][data-coalition="red"][data-has-fox-3] .unit-ammo-fox-3,
[data-object|="unit"][data-coalition="red"][data-has-other-ammo] .unit-ammo-other {
background-color: var( --primary-red );
}
[data-object|="unit"][data-coalition="blue"] .unit-vvi {
background-color: var( --secondary-red-outline );
}
@keyframes pulse {
50% {
opacity: 0;
}
}
[data-object|="unit"][data-pilot|="ai"][data-has-low-fuel] .unit-fuel {
animation: pulse 1.5s linear infinite;
}
[data-object|="unit"] .unit-status {
background-repeat: no-repeat;
position:absolute;
height:var( --unit-air-status-rtb-height );
width:var( --unit-air-status-rtb-width );
z-index: 10;
}
[data-object|="unit"][data-status="rtb"] .unit-status {
background-image: var( --unit-air-status-rtb-neutral-url );
height:var( --unit-air-status-rtb-height );
width:var( --unit-air-status-rtb-width );
}
[data-object|="unit"][data-status="rtb"][data-coalition="blue"] .unit-status {
background-image: var( --unit-air-status-rtb-blue-url );
}
[data-object|="unit"][data-status="rtb"][data-coalition="red"] .unit-status {
background-image: var( --unit-air-status-rtb-red-url );
}
[data-object|="unit"][data-status="hold"] .unit-status {
background-image: var( --unit-air-status-hold-neutral-url );
height:var( --unit-air-status-hold-height );
width:var( --unit-air-status-hold-width );
}
[data-object|="unit"][data-status="hold"][data-coalition="blue"] .unit-status {
background-image: var( --unit-air-status-hold-blue-url );
}
[data-object|="unit"][data-status="hold"][data-coalition="red"] .unit-status {
background-image: var( --unit-air-status-hold-red-url );
}
/*** DEAD ***/
[data-object|="unit-air"][ data-is-dead ] {
cursor: default;
}
[data-object|="unit-air"][ data-is-dead ] .unit-marker {
background-image: var( --unit-air-marker-neutral-dead-url );
background-position: 50% 50%;
background-size: auto 32px;
}
[data-object|="unit-air"][ data-is-dead ][data-coalition="blue"] .unit-marker {
background-image: var( --unit-air-marker-blue-dead-url );
}
[data-object|="unit-air"][ data-is-dead ][data-coalition="red"] .unit-marker {
background-image: var( --unit-air-marker-red-dead-url );
}
[data-object|="unit-air"][ data-is-dead ] .unit-selected-spotlight,
[data-object|="unit-air"][ data-is-dead ] .unit-short-label,
[data-object|="unit-air"][ data-is-dead ] .unit-vvi,
[data-object|="unit-air"][ data-is-dead ] .unit-hotgroup,
[data-object|="unit-air"][ data-is-dead ] .unit-hotgroup-id,
[data-object|="unit-air"][ data-is-dead ] .unit-status,
[data-object|="unit-air"][ data-is-dead ] .unit-fuel,
[data-object|="unit-air"][ data-is-dead ] .unit-ammo,
[data-object|="unit-air"][ data-is-dead ]:hover .unit-fuel,
[data-object|="unit-air"][ data-is-dead ]:hover .unit-ammo {
display:none !important;
}
[data-object|="unit-air"][ data-is-dead ] .unit-summary > * {
display:none;
}
[data-object|="unit-air"][ data-is-dead ] .unit-summary .unit-callsign {
display:block;
}

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="15"
height="15"
viewBox="0 0 15 15"
fill="none"
version="1.1"
id="svg4"
sodipodi:docname="designated.svg"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
width="30px"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="5.9428571"
inkscape:cx="-29.026442"
inkscape:cy="16.237981"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
d="m 7.5000002,0 c 0.498,0 0.9375,0.4395 0.9375,0.9375 V 1.2598 C 11.1621,1.6699 13.3301,3.8379002 13.7402,6.5625002 h 0.3223 c 0.498,0 0.9375,0.4395 0.9375,0.9375 0,0.5273 -0.4395,0.9375 -0.9375,0.9375 H 13.7402 C 13.3301,11.1914 11.1621,13.3594 8.4375002,13.7695 v 0.293 c 0,0.5273 -0.4395,0.9375 -0.9375,0.9375 -0.5273,0 -0.9375,-0.4102 -0.9375,-0.9375 v -0.293 C 3.8086002,13.3594 1.6406,11.1914 1.2305,8.4375002 h -0.293 c -0.5273,0 -0.9375,-0.4102 -0.9375,-0.9375 0,-0.498 0.4102,-0.9375 0.9375,-0.9375 h 0.293 C 1.6406,3.8379002 3.8086002,1.6699 6.5625002,1.2598 V 0.9375 c 0,-0.498 0.4102,-0.9375 0.9375,-0.9375 z m -4.3652,8.4375002 c 0.3515,1.7284998 1.6992,3.0761998 3.4277,3.4276998 V 11.25 c 0,-0.498 0.4102,-0.9375 0.9375,-0.9375 0.498,0 0.9375,0.4395 0.9375,0.9375 v 0.6152 C 10.1367,11.5137 11.4844,10.166 11.8359,8.4375002 H 11.25 c -0.5273,0 -0.9375,-0.4102 -0.9375,-0.9375 0,-0.498 0.4102,-0.9375 0.9375,-0.9375 h 0.5859 c -0.3515,-1.6992 -1.6992,-3.0469 -3.3983998,-3.3984 v 0.5859 c 0,0.5273 -0.4395,0.9375 -0.9375,0.9375 -0.5273,0 -0.9375,-0.4102 -0.9375,-0.9375 v -0.5859 c -1.7285,0.3515 -3.0762,1.6992 -3.4277,3.3984 h 0.6152 c 0.498,0 0.9375,0.4395 0.9375,0.9375 0,0.5273 -0.4395,0.9375 -0.9375,0.9375 z m 4.3652,0 c -0.5273,0 -0.9375,-0.4102 -0.9375,-0.9375 0,-0.498 0.4102,-0.9375 0.9375,-0.9375 0.498,0 0.9375,0.4395 0.9375,0.9375 0,0.5273 -0.4395,0.9375 -0.9375,0.9375 z"
fill="#5ca7ff"
id="path2" />
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="14.063629"
height="14.9414"
viewBox="0 0 14.063629 14.9414"
fill="none"
version="1.1"
id="svg4"
sodipodi:docname="return.svg"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="23.771429"
inkscape:cx="3.218149"
inkscape:cy="7.1304087"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
d="m 7.0324294,0 c 0.1172,0 0.2637,0.0293 0.3809,0.0879 l 5.5077996,2.3437 c 0.6445,0.293 1.1425,0.9082 1.1425,1.67 -0.0292,2.9296 -1.2304,8.2324 -6.2694996,10.664 -0.498,0.2344 -1.0547,0.2344 -1.5527,0 -5.0391,-2.4316 -6.24020004,-7.7344 -6.24020004,-10.664 -0.0293,-0.7618 0.4687,-1.377 1.11320004,-1.67 l 5.5078,-2.3437 C 6.7394294,0.0293 6.8859294,0 7.0324294,0 Z m 0,1.9629 V 13.0371 C 11.075429,11.0742 12.159429,6.7676 12.188629,4.1602 Z"
fill="#5ca7ff"
id="path2" />
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="13.126647"
height="15.015483"
viewBox="0 0 13.126647 15.015483"
fill="none"
version="1.1"
id="svg4"
sodipodi:docname="free.svg"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="43.789474"
inkscape:cx="4.5330529"
inkscape:cy="6.7710337"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
d="m 10.796771,3.75 c 0,1.31836 -0.7618,2.46094 -1.8750496,3.13476 v 0.61525 c 0,0.5273 -0.43945,0.9375 -0.9375,0.9375 h -2.8125 c -0.52734,0 -0.9375,-0.4102 -0.9375,-0.9375 V 6.88476 c -1.14258,-0.67382 -1.875,-1.8164 -1.875,-3.13476 0,-2.05078 1.875,-3.75 4.21875,-3.75 2.31445,0 4.2187996,1.69922 4.2187996,3.75 z M 4.9373514,5.15625 c 0.49804,0 0.9375,-0.41016 0.9375,-0.9375 0,-0.49805 -0.43946,-0.9375 -0.9375,-0.9375 -0.52735,0 -0.9375,0.43945 -0.9375,0.9375 0,0.52734 0.41015,0.9375 0.9375,0.9375 z m 4.21872,-0.9375 c 0,-0.49805 -0.43943,-0.9375 -0.93748,-0.9375 -0.52734,0 -0.9375,0.43945 -0.9375,0.9375 0,0.52734 0.41016,0.9375 0.9375,0.9375 0.49805,0 0.93748,-0.41016 0.93748,-0.9375 z M 0.10336144,8.02731 c 0.23438,-0.4687 0.79102,-0.6445 1.25976996,-0.4101 l 5.21484,2.6074 5.1854996,-2.6074 c 0.4688,-0.2344 1.0254,-0.0586 1.2598,0.4101 0.2344,0.4688 0.0586,1.0254 -0.4101,1.2598 l -3.9551196,1.9629 3.9551196,1.9922 c 0.4687,0.2344 0.6445,0.791 0.4101,1.2597 -0.2344,0.4688 -0.791,0.6446 -1.2598,0.4102 l -5.1854996,-2.6074 -5.21484,2.6074 c -0.46874996,0.2344 -1.02538996,0.0586 -1.25976996,-0.4102 -0.234374,-0.4687 -0.058593,-1.0253 0.41016,-1.2597 L 4.4685914,11.25001 0.51352144,9.28711 c -0.468753,-0.2344 -0.644534,-0.791 -0.41016,-1.2598 z"
fill="#5ca7ff"
id="path2" />
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="9.3896503"
height="9.3896503"
viewBox="0 0 9.3896503 9.3896503"
fill="none"
version="1.1"
id="svg4"
sodipodi:docname="hold.svg"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="23.771429"
inkscape:cx="1.1989183"
inkscape:cy="4.311899"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
d="m 9.103975,1.603975 c 0.3809,-0.3515 0.3809,-0.9668 0,-1.3183 -0.3515,-0.3809 -0.9668,-0.3809 -1.3183,0 l -3.0762,3.0761 -3.1055,-3.0761 c -0.3515,-0.3809 -0.9668,-0.3809 -1.3183,0 -0.3809,0.3515 -0.3809,0.9668 0,1.3183 l 3.0761,3.0762 -3.0761,3.1055 c -0.3809,0.3515 -0.3809,0.9668 0,1.3183 0.3515,0.3809 0.9668,0.3809 1.3183,0 l 3.1055,-3.0761 3.0762,3.0761 c 0.3515,0.3809 0.9668,0.3809 1.3183,0 0.3809,-0.3515 0.3809,-0.9668 0,-1.3183 l -3.0761,-3.1055 z"
fill="#5ca7ff"
id="path2" />
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 32 32"
version="1.1"
id="svg4"
sodipodi:docname="back.svg"
width="32"
height="32"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="13.078125"
inkscape:cx="19.918757"
inkscape:cy="17.663082"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->
<path
d="M 29.911273,24.547406 H 2.1935652 c -0.9582092,0 -1.73235714,0.774146 -1.73235714,1.732357 0,0.958208 0.77414794,1.732356 1.73235714,1.732356 H 29.911273 c 0.958209,0 1.732357,-0.774148 1.732357,-1.732356 0,-0.958211 -0.774148,-1.732357 -1.732357,-1.732357 z m -7.215201,-9.890675 c -0.676702,-0.676702 -1.775666,-0.676702 -2.452368,0 l -2.235822,2.241238 V 5.4914811 c 0,-0.9582093 -0.774146,-1.7323555 -1.732357,-1.7323555 -0.958211,0 -1.732355,0.7741462 -1.732355,1.7323555 V 16.897969 l -2.241238,-2.241238 c -0.676702,-0.676702 -1.775666,-0.676702 -2.4523675,0 -0.6767003,0.676702 -0.6767003,1.775666 0,2.452368 l 5.1970695,5.197069 c 0.676701,0.676702 1.775668,0.676702 2.452368,0 l 5.19707,-5.197069 c 0.676703,-0.676702 0.676703,-1.775666 0,-2.452368 z"
id="path2"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.0541362"
sodipodi:nodetypes="ssssssssccssscssccccs" />
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 32 32"
version="1.1"
id="svg1940"
sodipodi:docname="delete.svg"
width="32"
height="32"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1944" />
<sodipodi:namedview
id="namedview1942"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="13.078125"
inkscape:cx="27.870968"
inkscape:cy="20.415771"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg1940" />
<!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->
<path
d="m 13.120438,4.047182 -1.120204,1.6744053 h 8.548913 L 19.428943,4.047182 C 19.340506,3.9174745 19.193112,3.8349334 19.033925,3.8349334 h -5.524364 c -0.159185,0 -0.306581,0.076645 -0.39502,0.2122486 z m 8.666825,-1.5682824 2.163757,3.2426877 h 0.813623 2.829981 0.471664 c 0.784142,0 1.414993,0.6308515 1.414993,1.4149933 0,0.7841418 -0.630851,1.4149912 -1.414993,1.4149912 H 27.594624 V 26.474805 c 0,2.605944 -2.110695,4.716638 -4.716639,4.716638 H 9.6713954 c -2.6059417,0 -4.7166402,-2.110694 -4.7166402,-4.716638 V 8.5515718 H 4.4830908 c -0.7841402,0 -1.4149907,-0.6308494 -1.4149907,-1.4149912 0,-0.7841418 0.6308505,-1.4149933 1.4149907,-1.4149933 H 4.9547552 7.7847397 8.5983591 L 10.762118,2.4730039 C 11.375281,1.559155 12.407047,1.0049496 13.509561,1.0049496 h 5.524364 c 1.102514,0 2.13428,0.5542053 2.747441,1.4680543 z M 7.7847397,8.5515718 V 26.474805 c 0,1.043557 0.8430989,1.886656 1.8866557,1.886656 H 22.877985 c 1.043557,0 1.886658,-0.843099 1.886658,-1.886656 V 8.5515718 Z m 4.7166383,3.7733162 v 12.263261 c 0,0.51883 -0.424497,0.943327 -0.943327,0.943327 -0.51883,0 -0.943327,-0.424497 -0.943327,-0.943327 V 12.324888 c 0,-0.518832 0.424497,-0.943328 0.943327,-0.943328 0.51883,0 0.943327,0.424496 0.943327,0.943328 z m 4.71664,0 v 12.263261 c 0,0.51883 -0.424499,0.943327 -0.943327,0.943327 -0.518832,0 -0.943328,-0.424497 -0.943328,-0.943327 V 12.324888 c 0,-0.518832 0.424496,-0.943328 0.943328,-0.943328 0.518828,0 0.943327,0.424496 0.943327,0.943328 z m 4.71664,0 v 12.263261 c 0,0.51883 -0.424498,0.943327 -0.943328,0.943327 -0.518829,0 -0.943327,-0.424497 -0.943327,-0.943327 V 12.324888 c 0,-0.518832 0.424498,-0.943328 0.943327,-0.943328 0.51883,0 0.943328,0.424496 0.943328,0.943328 z"
id="path1938"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.0589579;stroke-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z"/></svg>

After

Width:  |  Height:  |  Size: 508 B

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="15"
height="15"
viewBox="0 0 15 15"
fill="none"
version="1.1"
id="svg4"
sodipodi:docname="designated.svg"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
width="30px"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="5.9428571"
inkscape:cx="-29.026442"
inkscape:cy="16.237981"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
d="m 7.5000002,0 c 0.498,0 0.9375,0.4395 0.9375,0.9375 V 1.2598 C 11.1621,1.6699 13.3301,3.8379002 13.7402,6.5625002 h 0.3223 c 0.498,0 0.9375,0.4395 0.9375,0.9375 0,0.5273 -0.4395,0.9375 -0.9375,0.9375 H 13.7402 C 13.3301,11.1914 11.1621,13.3594 8.4375002,13.7695 v 0.293 c 0,0.5273 -0.4395,0.9375 -0.9375,0.9375 -0.5273,0 -0.9375,-0.4102 -0.9375,-0.9375 v -0.293 C 3.8086002,13.3594 1.6406,11.1914 1.2305,8.4375002 h -0.293 c -0.5273,0 -0.9375,-0.4102 -0.9375,-0.9375 0,-0.498 0.4102,-0.9375 0.9375,-0.9375 h 0.293 C 1.6406,3.8379002 3.8086002,1.6699 6.5625002,1.2598 V 0.9375 c 0,-0.498 0.4102,-0.9375 0.9375,-0.9375 z m -4.3652,8.4375002 c 0.3515,1.7284998 1.6992,3.0761998 3.4277,3.4276998 V 11.25 c 0,-0.498 0.4102,-0.9375 0.9375,-0.9375 0.498,0 0.9375,0.4395 0.9375,0.9375 v 0.6152 C 10.1367,11.5137 11.4844,10.166 11.8359,8.4375002 H 11.25 c -0.5273,0 -0.9375,-0.4102 -0.9375,-0.9375 0,-0.498 0.4102,-0.9375 0.9375,-0.9375 h 0.5859 c -0.3515,-1.6992 -1.6992,-3.0469 -3.3983998,-3.3984 v 0.5859 c 0,0.5273 -0.4395,0.9375 -0.9375,0.9375 -0.5273,0 -0.9375,-0.4102 -0.9375,-0.9375 v -0.5859 c -1.7285,0.3515 -3.0762,1.6992 -3.4277,3.3984 h 0.6152 c 0.498,0 0.9375,0.4395 0.9375,0.9375 0,0.5273 -0.4395,0.9375 -0.9375,0.9375 z m 4.3652,0 c -0.5273,0 -0.9375,-0.4102 -0.9375,-0.9375 0,-0.498 0.4102,-0.9375 0.9375,-0.9375 0.498,0 0.9375,0.4395 0.9375,0.9375 0,0.5273 -0.4395,0.9375 -0.9375,0.9375 z"
fill="#5ca7ff"
id="path2" />
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="13.126647"
height="15.015483"
viewBox="0 0 13.126647 15.015483"
fill="none"
version="1.1"
id="svg4"
sodipodi:docname="free.svg"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="43.789474"
inkscape:cx="4.5330529"
inkscape:cy="6.7710337"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
d="m 10.796771,3.75 c 0,1.31836 -0.7618,2.46094 -1.8750496,3.13476 v 0.61525 c 0,0.5273 -0.43945,0.9375 -0.9375,0.9375 h -2.8125 c -0.52734,0 -0.9375,-0.4102 -0.9375,-0.9375 V 6.88476 c -1.14258,-0.67382 -1.875,-1.8164 -1.875,-3.13476 0,-2.05078 1.875,-3.75 4.21875,-3.75 2.31445,0 4.2187996,1.69922 4.2187996,3.75 z M 4.9373514,5.15625 c 0.49804,0 0.9375,-0.41016 0.9375,-0.9375 0,-0.49805 -0.43946,-0.9375 -0.9375,-0.9375 -0.52735,0 -0.9375,0.43945 -0.9375,0.9375 0,0.52734 0.41015,0.9375 0.9375,0.9375 z m 4.21872,-0.9375 c 0,-0.49805 -0.43943,-0.9375 -0.93748,-0.9375 -0.52734,0 -0.9375,0.43945 -0.9375,0.9375 0,0.52734 0.41016,0.9375 0.9375,0.9375 0.49805,0 0.93748,-0.41016 0.93748,-0.9375 z M 0.10336144,8.02731 c 0.23438,-0.4687 0.79102,-0.6445 1.25976996,-0.4101 l 5.21484,2.6074 5.1854996,-2.6074 c 0.4688,-0.2344 1.0254,-0.0586 1.2598,0.4101 0.2344,0.4688 0.0586,1.0254 -0.4101,1.2598 l -3.9551196,1.9629 3.9551196,1.9922 c 0.4687,0.2344 0.6445,0.791 0.4101,1.2597 -0.2344,0.4688 -0.791,0.6446 -1.2598,0.4102 l -5.1854996,-2.6074 -5.21484,2.6074 c -0.46874996,0.2344 -1.02538996,0.0586 -1.25976996,-0.4102 -0.234374,-0.4687 -0.058593,-1.0253 0.41016,-1.2597 L 4.4685914,11.25001 0.51352144,9.28711 c -0.468753,-0.2344 -0.644534,-0.791 -0.41016,-1.2598 z"
fill="#5ca7ff"
id="path2" />
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="9.3896503"
height="9.3896503"
viewBox="0 0 9.3896503 9.3896503"
fill="none"
version="1.1"
id="svg4"
sodipodi:docname="hold.svg"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="23.771429"
inkscape:cx="1.1989183"
inkscape:cy="4.311899"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
d="m 9.103975,1.603975 c 0.3809,-0.3515 0.3809,-0.9668 0,-1.3183 -0.3515,-0.3809 -0.9668,-0.3809 -1.3183,0 l -3.0762,3.0761 -3.1055,-3.0761 c -0.3515,-0.3809 -0.9668,-0.3809 -1.3183,0 -0.3809,0.3515 -0.3809,0.9668 0,1.3183 l 3.0761,3.0762 -3.0761,3.1055 c -0.3809,0.3515 -0.3809,0.9668 0,1.3183 0.3515,0.3809 0.9668,0.3809 1.3183,0 l 3.1055,-3.0761 3.0762,3.0761 c 0.3515,0.3809 0.9668,0.3809 1.3183,0 0.3809,-0.3515 0.3809,-0.9668 0,-1.3183 l -3.0761,-3.1055 z"
fill="#5ca7ff"
id="path2" />
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="14.063629"
height="14.9414"
viewBox="0 0 14.063629 14.9414"
fill="none"
version="1.1"
id="svg4"
sodipodi:docname="return.svg"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="23.771429"
inkscape:cx="3.218149"
inkscape:cy="7.1304087"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
d="m 7.0324294,0 c 0.1172,0 0.2637,0.0293 0.3809,0.0879 l 5.5077996,2.3437 c 0.6445,0.293 1.1425,0.9082 1.1425,1.67 -0.0292,2.9296 -1.2304,8.2324 -6.2694996,10.664 -0.498,0.2344 -1.0547,0.2344 -1.5527,0 -5.0391,-2.4316 -6.24020004,-7.7344 -6.24020004,-10.664 -0.0293,-0.7618 0.4687,-1.377 1.11320004,-1.67 l 5.5078,-2.3437 C 6.7394294,0.0293 6.8859294,0 7.0324294,0 Z m 0,1.9629 V 13.0371 C 11.075429,11.0742 12.159429,6.7676 12.188629,4.1602 Z"
fill="#5ca7ff"
id="path2" />
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="32"
height="32"
viewBox="0 0 32 32"
version="1.1"
id="svg8"
sodipodi:docname="aircraft.svg"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata14">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs12" />
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1017"
id="namedview10"
showgrid="false"
inkscape:zoom="18.782524"
inkscape:cx="26.114701"
inkscape:cy="15.493125"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg8"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<path
d="m 25.924821,12.489287 c 1.68985,0 4.671853,1.44138 4.671853,3.180851 0,1.789275 -2.982003,3.180853 -4.671853,3.180853 h -5.81496 l -4.970125,8.747341 c -0.298273,0.496938 -0.845015,0.795212 -1.391577,0.795212 h -2.783336 c -0.546743,0 -0.944259,-0.496941 -0.795213,-0.994063 l 2.435441,-8.54849 H 7.5355007 L 5.348676,21.733567 C 5.1995608,21.932416 5.0007624,22.031842 4.7522572,22.031842 H 2.6648175 c -0.3976052,0 -0.6958054,-0.298275 -0.6958054,-0.695789 0,-0.04981 0,-0.09943 0,-0.149048 l 1.590426,-5.516867 -1.590426,-5.467065 c 0,-0.04981 0,-0.09943 0,-0.198849 0,-0.3478937 0.2982002,-0.6957888 0.6958054,-0.6957888 h 2.0874397 c 0.2485052,0 0.4473003,0.1490479 0.5964188,0.3478951 L 7.5355007,12.489287 H 12.605051 L 10.16961,3.9904523 C 10.020569,3.4934397 10.41808,2.9467331 10.964823,2.9467331 h 2.783336 c 0.546562,0 1.093304,0.3479124 1.391577,0.8449069 l 4.970125,8.697647 z"
fill="#202831"
id="path4"
style="fill-opacity:1;stroke-width:1.81764" />
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 32 31.999584"
version="1.1"
id="svg4"
sodipodi:docname="explosion.svg"
width="32"
height="31.999584"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="13.078125"
inkscape:cx="18.389486"
inkscape:cy="12.157706"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->
<path
d="m 26.759564,2.1225723 c 0.340688,-0.6068538 1.042401,-0.822372 1.611908,-0.4820802 0.569507,0.3402919 0.80341,1.1059486 0.538997,1.7581747 L 21.939094,20.685494 c 0.111864,0.130442 0.218653,0.266561 0.320348,0.402678 l 4.942507,-3.102328 c 0.533912,-0.334619 1.200033,-0.175817 1.571229,0.362979 0.371196,0.538795 0.320348,1.304451 -0.111863,1.786531 l -4.423848,4.934232 h -3.635691 c -0.671205,-2.11548 -2.476338,-3.629779 -4.601819,-3.629779 -2.125482,0 -3.9357,1.514299 -4.601818,3.629779 H 7.345485 L 3.506398,22.109048 C 3.013164,21.729056 2.840278,20.997429 3.104692,20.390574 3.369106,19.783721 3.989462,19.488801 4.564053,19.687305 L 9.50656,21.411449 C 9.659102,21.190258 9.8167362,20.974741 9.9845364,20.770566 L 6.816656,14.883519 c -0.310177,-0.572827 -0.198311,-1.310126 0.25933,-1.741162 0.457639,-0.431036 1.128844,-0.425365 1.581397,0.0055 l 5.20692,4.985277 c 0.07626,-0.02268 0.152542,-0.04537 0.22882,-0.06239 l 0.691544,-8.093192 c 0.06101,-0.6975963 0.584761,-1.2307211 1.215286,-1.2307211 0.630526,0 1.154267,0.5331248 1.215285,1.2307211 l 0.686461,8.047904 z M 4.609817,26.890147 v 0 H 27.39009 v 0 h 1.627161 c 0.900024,0 1.627164,0.81103 1.627164,1.814891 0,1.003862 -0.72714,1.814889 -1.627164,1.814889 H 2.982655 c -0.900024,0 -1.627163,-0.811027 -1.627163,-1.814889 0,-1.003861 0.727139,-1.814891 1.627163,-1.814891 z M 15.999953,1.4816894 c 0.676288,0 1.220371,0.6068538 1.220371,1.3611673 v 2.7223348 c 0,0.7543135 -0.544083,1.3611677 -1.220371,1.3611677 -0.676289,0 -1.220372,-0.6068542 -1.220372,-1.3611677 V 2.8428567 c 0,-0.7543135 0.544083,-1.3611673 1.220372,-1.3611673 z"
fill="#ffffff"
stroke="#ffffff"
id="path2"
style="fill-opacity:1;stroke-width:0.0537019" />
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="32"
height="32"
viewBox="0 0 32 32"
version="1.1"
id="svg8"
sodipodi:docname="helicopter.svg"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata14">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs12" />
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1017"
id="namedview10"
showgrid="false"
inkscape:zoom="13.28125"
inkscape:cx="11.858824"
inkscape:cy="13.101176"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg8"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<path
d="m 6.3544349,4.6930773 c 0,-0.8721964 0.7046585,-1.5768552 1.5768567,-1.5768552 H 26.853493 c 0.872197,0 1.576856,0.7046588 1.576856,1.5768552 0,0.8721978 -0.704659,1.5768478 -1.576856,1.5768478 h -7.884254 v 3.1537018 h 1.576855 c 4.356045,0 7.884255,3.5282031 7.884255,7.8842541 v 3.153697 c 0,0.872195 -0.704659,1.576855 -1.576856,1.576855 h -7.884254 -3.153695 c -0.990466,0 -1.926715,-0.468129 -2.522966,-1.26148 L 9.7742292,16.085817 c -0.1724691,-0.2316 -0.4089908,-0.408991 -0.67509,-0.517398 l -6.72625,-2.690505 C 1.90476,12.690662 1.5499693,12.286593 1.4267781,11.793826 L 0.29342123,7.25053 C 0.16529133,6.7528385 0.54472759,6.2699251 1.0572018,6.2699251 h 1.3551113 c 0.49769,0 0.9658193,0.2315996 1.2614793,0.6307441 L 5.5660161,9.4236269 H 15.815544 V 6.2699251 H 7.9312916 c -0.8721982,0 -1.5768567,-0.70465 -1.5768567,-1.5768478 z M 18.969239,18.884729 h 6.307407 v -1.576848 c 0,-2.611659 -2.118892,-4.73055 -4.730552,-4.73055 h -1.576855 z m 12.151606,5.19375 c 0.615961,0.615957 0.615961,1.616279 0,2.232229 l -0.192176,0.192183 c -1.182641,1.182634 -2.789057,1.84787 -4.459529,1.84787 h -13.8073 c -0.872195,0 -1.576855,-0.704658 -1.576855,-1.576847 0,-0.872197 0.70466,-1.576855 1.576855,-1.576855 h 13.8073 c 0.837698,0 1.640911,-0.330154 2.232231,-0.921474 l 0.192176,-0.192177 c 0.615959,-0.615959 1.61627,-0.615959 2.232229,0 z"
id="path1174"
style="fill-opacity:1;stroke-width:0.0492765" />
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="32"
height="32"
viewBox="0 0 32 32"
version="1.1"
id="svg8"
sodipodi:docname="unit.svg"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata14">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs12" />
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1017"
id="namedview10"
showgrid="false"
inkscape:zoom="9.391262"
inkscape:cx="25.715394"
inkscape:cy="24.171405"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg8"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<rect
id="rect894"
width="5.696785"
height="22.699497"
x="13.203763"
y="4.5254831"
ry="1.6436043" />
<rect
id="rect894-7"
width="5.696785"
height="22.699497"
x="12.751214"
y="-27.588247"
ry="1.6436043"
transform="rotate(90)" />
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="32"
height="32"
viewBox="0 0 32 32"
version="1.1"
id="svg8"
sodipodi:docname="navyunit.svg"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata14">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs12" />
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1017"
id="namedview10"
showgrid="false"
inkscape:zoom="18.782524"
inkscape:cx="35.857801"
inkscape:cy="16.398222"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg8"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<path
d="m 11.24439,3.5672501 c 0,-0.9200678 0.743331,-1.6634002 1.663401,-1.6634002 h 6.653596 c 0.920068,0 1.663398,0.7433324 1.663398,1.6634002 v 1.6633976 h 2.495098 c 1.377503,0 2.495102,1.1175989 2.495102,2.4951006 v 6.6535967 l 2.307964,0.769323 c 1.200768,0.400255 1.533447,1.949294 0.597785,2.801785 l -5.250104,4.813463 c -0.842097,0.488625 -1.803748,0.784917 -2.645845,0.784917 -1.018831,0 -2.120833,-0.400253 -3.077288,-1.055219 -1.148785,-0.805708 -2.682232,-0.805708 -3.831017,0 -0.88888,0.613379 -1.975286,1.055219 -3.077289,1.055219 -0.842094,0 -1.8037459,-0.296292 -2.6458445,-0.784917 L 3.3432428,17.950453 C 2.4075824,17.092766 2.7402625,15.548923 3.9410271,15.148668 L 6.25419,14.379345 V 7.7257483 c 0,-1.3775017 1.1175986,-2.4951006 2.4951017,-2.4951006 H 11.24439 Z M 9.5809881,13.272145 15.184569,11.406021 c 0.680952,-0.228708 1.419085,-0.228708 2.105238,0 l 5.59838,1.866124 V 8.5574463 H 9.5809881 Z m 7.6152529,10.562584 c 1.169577,0.805711 2.599061,1.356711 4.028544,1.356711 1.398295,0 2.879759,-0.561396 4.023347,-1.356711 v 0 c 0.618575,-0.44184 1.460674,-0.405453 2.037665,0.08836 0.748531,0.618578 1.689389,1.091607 2.630247,1.309929 0.894079,0.207933 1.45028,1.102 1.242353,1.996079 -0.207931,0.894078 -1.102001,1.450276 -1.99608,1.242351 -1.273537,-0.296292 -2.333955,-0.857691 -3.025306,-1.299534 -1.507454,0.81091 -3.196843,1.346319 -4.912226,1.346319 -1.6582,0 -3.150063,-0.514616 -4.17929,-0.982449 -0.301493,-0.140338 -0.576991,-0.275498 -0.810906,-0.400255 -0.233924,0.12477 -0.50422,0.265105 -0.810908,0.400255 -1.02923,0.467833 -2.521091,0.982449 -4.179291,0.982449 -1.7153815,0 -3.404772,-0.535409 -4.9122277,-1.341118 C 5.6356148,27.613758 4.5803957,28.180351 3.306857,28.476646 2.4127783,28.684579 1.5186998,28.128372 1.3107769,27.234294 1.1028445,26.340218 1.6590517,25.44614 2.5531281,25.238215 3.4939891,25.019896 4.4348476,24.546866 5.1833783,23.928289 5.7603695,23.439666 6.6024647,23.403277 7.2210429,23.83993 v 0 c 1.1487833,0.790114 2.6250524,1.35151 4.0233471,1.35151 1.429485,0 2.858967,-0.550998 4.028544,-1.356711 0.576995,-0.410651 1.346314,-0.410651 1.923307,3e-6 z"
id="path6267"
style="fill-opacity:1;stroke-width:0.0519812" />
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="32"
height="32"
viewBox="0 0 32 32"
version="1.1"
id="svg15"
sodipodi:docname="smoke.svg"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata19">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1017"
id="namedview17"
showgrid="false"
inkscape:zoom="18.782524"
inkscape:cx="15.572987"
inkscape:cy="14.481547"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg15"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<path
style="fill-opacity:1;stroke:none;stroke-width:0.0484484;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 2.1124942,10.397531 c 0,3.896829 3.0916459,7.058413 6.902283,7.058413 h 5.9100798 c 1.083274,0.975432 2.502076,1.568533 4.059882,1.568533 1.557807,0 2.976608,-0.593101 4.059884,-1.568533 h 1.308559 c 2.967023,0 5.36844,-2.455741 5.36844,-5.489878 0,-3.0341379 -2.401417,-5.4898771 -5.36844,-5.4898771 -0.512881,0 -1.006585,0.073539 -1.476324,0.2107723 -1.025756,-1.9900807 -3.072474,-3.3478452 -5.42596,-3.3478452 -1.5626,0 -2.990989,0.5980041 -4.079057,1.5832415 C 12.183116,3.9322186 10.668447,3.339116 9.0147772,3.339116 c -3.8106371,0 -6.902283,3.1615822 -6.902283,7.058415 z M 30.105081,21.377284 H 13.999759 c -0.637501,0 -1.150382,0.52448 -1.150382,1.176402 0,0.651921 0.512881,1.176402 1.150382,1.176402 h 16.105322 c 0.637505,0 1.150382,-0.524481 1.150382,-1.176402 0,-0.651922 -0.512877,-1.176402 -1.150382,-1.176402 z m -3.067679,4.705608 h -5.36844 c -0.637503,0 -1.150383,0.52448 -1.150383,1.176405 0,0.651921 0.51288,1.176399 1.150383,1.176399 h 5.36844 c 0.637501,0 1.15038,-0.524478 1.15038,-1.176399 0,-0.651925 -0.512879,-1.176405 -1.15038,-1.176405 z m -9.203043,0 H 1.7290339 c -0.6375035,0 -1.15038115,0.52448 -1.15038115,1.176405 0,0.651921 0.51287765,1.176399 1.15038115,1.176399 H 17.834359 c 0.637503,0 1.15038,-0.524478 1.15038,-1.176399 0,-0.651925 -0.512877,-1.176405 -1.15038,-1.176405 z m -6.518823,-3.529206 c 0,-0.651922 -0.512876,-1.176402 -1.150379,-1.176402 H 5.180174 c -0.6375013,0 -1.1503785,0.52448 -1.1503785,1.176402 0,0.651921 0.5128772,1.176402 1.1503785,1.176402 h 4.984983 c 0.637503,0 1.150379,-0.524481 1.150379,-1.176402 z"
id="path2-7" />
<defs
id="defs13">
<clipPath
id="clip0_277_1705">
<rect
width="19"
height="19"
fill="white"
transform="translate(6.5 6.5)"
id="rect10" />
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="23.317165"
height="17.896727"
viewBox="0 0 23.317165 17.896727"
fill="none"
version="1.1"
id="svg12"
sodipodi:docname="evade.svg"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs16" />
<sodipodi:namedview
id="namedview14"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="23.771429"
inkscape:cx="11.757812"
inkscape:cy="9.4020433"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg12" />
<path
d="m 0.02182384,14.515426 c -0.0453,0.1119 -0.01864,0.2398 0.06662,0.325 0.08526,0.0853 0.21314,0.1119 0.32505,0.0666 l 1.95830996,-0.7833 c 0.15188,-0.0613 0.2891,-0.1505 0.405,-0.2664 l 1.02578,-1.0258 3.03735,0.7993 -0.2504,0.2504 c -0.1772,0.1772 -0.1772,0.4623 0,0.6395 0.1772,0.1772 0.4623,0.1772 0.6394,0 l 0.7461,-0.746 0.4263,-0.4263 0.3197,-0.3198 c 0.1772,-0.1771 0.1772,-0.4622 0,-0.6394 -0.1772,-0.1772 -0.4623,-0.1772 -0.6395,0 l -0.1065,0.1066 -1.9184,-1.9184 0.4356,-0.4356 1.4628,0.0959 c 0.0866,0.0066 0.1718,-0.0253 0.2331,-0.0866 l 0.2132,-0.2130999 c 0.1172,-0.1173 0.1172,-0.3091 0,-0.4263 l -1.2789,-1.2789 -0.8526,0.8526 c -0.1173,0.1172 -0.3091,0.1172 -0.4263,0 -0.1173,-0.1173 -0.1173,-0.3091 0,-0.4263 l 0.8526,-0.8526 -1.2789,-1.2789 c -0.1173,-0.1173 -0.3091,-0.1173 -0.4263,0 l -0.2132,0.2131 c -0.0613,0.0613 -0.0933,0.1465 -0.0866,0.2331 l 0.0959,1.4628 -0.4356,0.4356 -1.91834,-1.9183 0.10657,-0.1066 c 0.17717,-0.1772 0.17717,-0.4623 0,-0.6395 -0.17717,-0.1771 -0.46228,-0.1771 -0.63945,0 l -0.31972,0.3198 -0.4263,0.4263 -0.74602996,0.746 c -0.17717,0.1772 -0.17717,0.4623 0,0.6394 0.17717,0.1772 0.46228,0.1772 0.63944996,0 l 0.25041,-0.2504 0.79936,3.0373999 -1.02578,1.0258 c -0.11590996,0.1159 -0.20516996,0.2531 -0.26644996,0.405 z"
fill="#5ca7ff"
id="path2" />
<path
d="m 9.0916338,5.3111261 c 2.5638002,-2.3307 8.3905002,-6.43275 11.1873002,-4.19528 3.4961,2.79688 4.1953,9.0895799 -2.7968,16.7808799"
stroke="#5ca7ff"
stroke-linecap="round"
stroke-dasharray="2, 2"
id="path4"
style="fill:none" />
<path
d="m 14.783034,12.805026 -0.1001,0.8985 0.9106,-0.2539 0.0806,0.6152 -0.8301,0.0586 0.5444,0.7251 -0.5542,0.2954 -0.3808,-0.7642 -0.3345,0.7593 -0.5762,-0.2905 0.5396,-0.7251 -0.8252,-0.0635 0.0952,-0.6103 0.8911,0.2539 -0.1001,-0.8985 z"
fill="#5ca7ff"
id="path6" />
<path
d="m 13.384534,7.2113261 -0.1001,0.8984 0.9107,-0.2539 0.0805,0.6152 -0.83,0.0586 0.5444,0.7251 -0.5542,0.2954 -0.3809,-0.7641 -0.3344,0.7593 -0.5762,-0.2906 0.5395,-0.7251 -0.8252,-0.0634 0.0953,-0.6104 0.8911,0.2539 -0.1001,-0.8984 z"
fill="#5ca7ff"
id="path8" />
<path
d="m 18.977834,7.2113261 -0.1001,0.8984 0.9106,-0.2539 0.0806,0.6152 -0.8301,0.0586 0.5445,0.7251 -0.5542,0.2954 -0.3809,-0.7641 -0.3345,0.7593 -0.5761,-0.2906 0.5395,-0.7251 -0.8252,-0.0634 0.0952,-0.6104 0.8911,0.2539 -0.1001,-0.8984 z"
fill="#5ca7ff"
id="path10" />
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="23.317165"
height="17.896727"
viewBox="0 0 23.317165 17.896727"
fill="none"
version="1.1"
id="svg12"
sodipodi:docname="manoeuvre.svg"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs16" />
<sodipodi:namedview
id="namedview14"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="23.771429"
inkscape:cx="11.757812"
inkscape:cy="9.4020431"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg12" />
<path
d="m 0.02182384,14.515426 c -0.0453,0.1119 -0.01864,0.2398 0.06662,0.325 0.08526,0.0853 0.21314,0.1119 0.32505,0.0666 l 1.95830996,-0.7833 c 0.15188,-0.0613 0.2891,-0.1505 0.405,-0.2664 l 1.02578,-1.0258 3.03735,0.7993 -0.2504,0.2504 c -0.1772,0.1772 -0.1772,0.4623 0,0.6395 0.1772,0.1772 0.4623,0.1772 0.6394,0 l 0.7461,-0.746 0.4263,-0.4263 0.3197,-0.3198 c 0.1772,-0.1771 0.1772,-0.4622 0,-0.6394 -0.1772,-0.1772 -0.4623,-0.1772 -0.6395,0 l -0.1065,0.1066 -1.9184,-1.9184 0.4356,-0.4356 1.4628,0.0959 c 0.0866,0.0066 0.1718,-0.0253 0.2331,-0.0866 l 0.2132,-0.2130999 c 0.1172,-0.1173 0.1172,-0.3091 0,-0.4263 l -1.2789,-1.2789 -0.8526,0.8526 c -0.1173,0.1172 -0.3091,0.1172 -0.4263,0 -0.1173,-0.1173 -0.1173,-0.3091 0,-0.4263 l 0.8526,-0.8526 -1.2789,-1.2789 c -0.1173,-0.1173 -0.3091,-0.1173 -0.4263,0 l -0.2132,0.2131 c -0.0613,0.0613 -0.0933,0.1465 -0.0866,0.2331 l 0.0959,1.4628 -0.4356,0.4356 -1.91834,-1.9183 0.10657,-0.1066 c 0.17717,-0.1772 0.17717,-0.4623 0,-0.6395 -0.17717,-0.1771 -0.46228,-0.1771 -0.63945,0 l -0.31972,0.3198 -0.4263,0.4263 -0.74602996,0.746 c -0.17717,0.1772 -0.17717,0.4623 0,0.6394 0.17717,0.1772 0.46228,0.1772 0.63944996,0 l 0.25041,-0.2504 0.79936,3.0373999 -1.02578,1.0258 c -0.11590996,0.1159 -0.20516996,0.2531 -0.26644996,0.405 z"
fill="#5ca7ff"
id="path2" />
<path
d="m 9.0916338,5.3111261 c 2.5638002,-2.3307 8.3905002,-6.43275 11.1873002,-4.19528 3.4961,2.79688 4.1953,9.0895799 -2.7968,16.7808799"
stroke="#5ca7ff"
stroke-linecap="round"
stroke-dasharray="2, 2"
id="path4"
style="fill:none" />
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="9.3896503"
height="9.3896503"
viewBox="0 0 9.3896503 9.3896503"
fill="none"
version="1.1"
id="svg4"
sodipodi:docname="none.svg"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="23.771429"
inkscape:cx="4.984976"
inkscape:cy="4.311899"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
d="m 9.103975,1.603975 c 0.3809,-0.3515 0.3809,-0.9668 0,-1.3183 -0.3515,-0.3809 -0.9668,-0.3809 -1.3183,0 l -3.0762,3.0761 -3.1055,-3.0761 c -0.3515,-0.3809 -0.9668,-0.3809 -1.3183,0 -0.3809,0.3515 -0.3809,0.9668 0,1.3183 l 3.0761,3.0762 -3.0761,3.1055 c -0.3809,0.3515 -0.3809,0.9668 0,1.3183 0.3515,0.3809 0.9668,0.3809 1.3183,0 l 3.1055,-3.0761 3.0762,3.0761 c 0.3515,0.3809 0.9668,0.3809 1.3183,0 0.3809,-0.3515 0.3809,-0.9668 0,-1.3183 l -3.0761,-3.1055 z"
fill="#5ca7ff"
id="path2" />
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="23.2749"
height="12.9971"
viewBox="0 0 23.2749 12.9971"
fill="none"
version="1.1"
id="svg14"
sodipodi:docname="passive.svg"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs18" />
<sodipodi:namedview
id="namedview16"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="23.771429"
inkscape:cx="11.631611"
inkscape:cy="6.7518029"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg14" />
<path
d="M 0.1977,6.4546 C 0.07745,6.5055 0,6.6237 0,6.7542 0,6.8846 0.07745,7.0028 0.1977,7.0538 l 2.09719,0.8987 c 0.16304,0.0694 0.33629,0.106 0.51361,0.106 h 1.5693 l 1.712,2.9349 H 5.7067 c -0.2711,0 -0.4892,0.2181 -0.4892,0.4891 0,0.2711 0.2181,0.4892 0.4892,0.4892 H 6.848 7.5002 7.9893 c 0.2711,0 0.4892,-0.2181 0.4892,-0.4892 0,-0.271 -0.2181,-0.4891 -0.4892,-0.4891 H 7.8263 V 8.0585 h 0.6664 l 1.0456,1.1923 c 0.0611,0.0713 0.1508,0.1121 0.2445,0.1121 h 0.3261 c 0.1794,0 0.3261,-0.1467 0.3261,-0.3261 V 7.0802 H 9.1306 c -0.1793,0 -0.326,-0.1467 -0.326,-0.326 0,-0.1794 0.1467,-0.3261 0.326,-0.3261 H 10.435 V 4.4715 c 0,-0.1794 -0.1467,-0.3261 -0.3261,-0.3261 H 9.7828 c -0.0937,0 -0.1834,0.0407 -0.2445,0.112 L 8.4927,5.4498 H 7.8263 V 2.5149 h 0.163 c 0.2711,0 0.4892,-0.2181 0.4892,-0.4891 0,-0.2711 -0.2181,-0.4892 -0.4892,-0.4892 H 7.5002 6.848 5.7067 c -0.2711,0 -0.4892,0.2181 -0.4892,0.4892 0,0.271 0.2181,0.4891 0.4892,0.4891 H 6.0898 L 4.3778,5.4498 H 2.8085 c -0.17732,0 -0.35057,0.0367 -0.51361,0.106 z"
fill="#5ca7ff"
id="path2" />
<path
d="M 12.8398,6.5498 H 23.2749"
stroke="#5ca7ff"
stroke-dasharray="2, 2"
id="path4" />
<path
d="m 16.4116,9 -0.1,0.8984 0.9106,-0.2539 0.0806,0.6152 -0.8301,0.0586 0.5444,0.7251 -0.5542,0.2955 L 16.0821,10.5747 15.7476,11.334 15.1714,11.0434 15.711,10.3183 14.8858,10.2549 14.981,9.6445 15.8721,9.8984 15.772,9 Z"
fill="#5ca7ff"
id="path6" />
<path
d="m 21.4116,10.6582 -0.1,0.8984 0.9106,-0.2539 0.0806,0.6153 -0.8301,0.0585 0.5444,0.7251 -0.5542,0.2955 -0.3808,-0.7642 -0.3345,0.7593 -0.5762,-0.2906 0.5396,-0.7251 -0.8252,-0.0634 0.0952,-0.6104 0.8911,0.2539 -0.1001,-0.8984 z"
fill="#5ca7ff"
id="path8" />
<path
d="m 21.4116,0 -0.1,0.8984 0.9106,-0.2539 0.0806,0.6152 -0.8301,0.0586 0.5444,0.7251 L 21.4629,2.3389 21.0821,1.5747 20.7476,2.334 20.1714,2.0434 20.711,1.3183 19.8858,1.2549 19.981,0.6445 20.8721,0.8984 20.772,0 Z"
fill="#5ca7ff"
id="path10" />
<path
d="m 16.4116,1.6582 -0.1,0.8984 0.9106,-0.2539 0.0806,0.6153 -0.8301,0.0585 0.5444,0.7251 L 16.4629,3.9971 16.0821,3.2329 15.7476,3.9922 15.1714,3.7016 15.711,2.9765 14.8858,2.9131 14.981,2.3027 15.8721,2.5566 15.772,1.6582 Z"
fill="#5ca7ff"
id="path12" />
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M96 151.4V360.6c9.7 5.6 17.8 13.7 23.4 23.4H328.6c0-.1 .1-.2 .1-.3l-4.5-7.9-32-56 0 0c-1.4 .1-2.8 .1-4.2 .1c-35.3 0-64-28.7-64-64s28.7-64 64-64c1.4 0 2.8 0 4.2 .1l0 0 32-56 4.5-7.9-.1-.3H119.4c-5.6 9.7-13.7 17.8-23.4 23.4zM384.3 352c35.2 .2 63.7 28.7 63.7 64c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V151.4C12.9 140.4 0 119.7 0 96C0 60.7 28.7 32 64 32c23.7 0 44.4 12.9 55.4 32H328.6c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 35.3-28.5 63.8-63.7 64l-4.5 7.9-32 56-2.3 4c4.2 8.5 6.5 18 6.5 28.1s-2.3 19.6-6.5 28.1l2.3 4 32 56 4.5 7.9z"/></svg>

After

Width:  |  Height:  |  Size: 872 B

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 512 512"
version="1.1"
id="svg4"
sodipodi:docname="ground.svg"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="1.1559539"
inkscape:cx="432.97576"
inkscape:cy="301.91516"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->
<path
d="m 130.61192,122.94993 c 4.83398,-2.4171 10.52734,-2.4171 15.36132,0 l 85.9375,42.97085 c 8.48633,4.24336 11.92383,14.55637 7.68066,23.04312 -3.00781,6.01593 -9.07714,9.5073 -15.36132,9.5073 v 42.97085 c 0,9.50729 -7.68066,17.18833 -17.1875,17.18833 h -2.63184 l 17.1875,103.13004 266.68729,0 c 9.50683,0 17.1875,7.68105 17.1875,17.18835 0,9.5073 -7.68067,17.18833 -17.1875,17.18833 l -280.97441,0 H 206.72031 69.86485 69.27404 17.98008 c -9.50683,0 -17.1875,-7.68103 -17.1875,-17.18833 0,-9.5073 7.68067,-17.18835 17.1875,-17.18835 h 37.00684 l 17.1875,-103.13004 h -2.63184 c -9.50684,0 -17.1875,-7.68104 -17.1875,-17.18833 V 198.4712 c -6.28418,0 -12.35351,-3.49137 -15.36132,-9.5073 -4.24317,-8.48675 -0.80567,-18.79976 7.68066,-23.04312 z m 39.10155,238.81049 -31.42089,-26.21222 -31.4209,26.21222 z m -62.68066,-103.13004 -2.52441,15.20096 33.78418,28.19961 33.78418,-28.19961 -2.52441,-15.20096 z m -7.46582,44.68969 -6.01561,35.98808 24.59961,-20.51857 z m 58.86718,15.46951 24.59961,20.46487 -6.01561,-35.98809 z M 95.32383,189.87702 c -4.72656,0 -8.59374,3.86738 -8.59374,8.59418 0,4.72679 3.86718,8.59417 8.59374,8.59417 h 85.9375 c 4.72656,0 8.59374,-3.86738 8.59374,-8.59417 0,-4.7268 -3.86718,-8.59418 -8.59374,-8.59418 z"
id="path2"
style="stroke-width:0.537122"
sodipodi:nodetypes="cccscssccsssccccsssccsscsccccccccccccccccccccsssssss" />
<path
d="m 398.88439,290.60444 -56.18308,-59.35032 c -4.82498,-5.06298 -11.50756,-7.93072 -18.4952,-7.84559 l -20.1384,0.17717 c -4.88076,0.0647 -7.83178,5.39609 -5.3158,9.5508 l 35.56198,58.63664 -43.41565,0.78856 -16.07612,-19.15941 c -2.39827,-2.87404 -5.9964,-4.54245 -9.73595,-4.48875 l -14.13363,0.13667 c -4.09068,0.0573 -7.05613,3.89607 -6.017,7.85435 l 11.10611,42.68377 c 0.92991,3.55548 3.36429,6.5345 6.64574,8.13577 l 48.58659,23.70886 c 1.76422,0.86089 3.69975,1.28114 5.63108,1.26246 l 119.77611,-1.14062 c 20.41896,-0.21499 40.00846,-8.13034 54.85055,-22.163 7.69088,-7.25597 5.74152,-20.00247 -3.78528,-24.65128 l -20.25324,-9.883 c -7.12743,-3.47798 -15.01076,-5.22788 -22.94599,-5.08091 z"
id="path1903"
sodipodi:nodetypes="ccccccccccccsscccsscc"
style="stroke-width:0.392612" />
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z"/></svg>

After

Width:  |  Height:  |  Size: 508 B

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 512 512"
version="1.1"
id="svg4"
sodipodi:docname="tower.svg"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="0.40869141"
inkscape:cx="532.18638"
inkscape:cy="298.51374"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->
<path
d="m 130.61192,122.94993 c 4.83398,-2.4171 10.52734,-2.4171 15.36132,0 l 85.9375,42.97085 c 8.48633,4.24336 11.92383,14.55637 7.68066,23.04312 -3.00781,6.01593 -9.07714,9.5073 -15.36132,9.5073 v 42.97085 c 0,9.50729 -7.68066,17.18833 -17.1875,17.18833 h -2.63184 l 17.1875,103.13004 266.68729,0 c 9.50683,0 17.1875,7.68105 17.1875,17.18835 0,9.5073 -7.68067,17.18833 -17.1875,17.18833 l -280.97441,0 H 206.72031 69.86485 69.27404 17.98008 c -9.50683,0 -17.1875,-7.68103 -17.1875,-17.18833 0,-9.5073 7.68067,-17.18835 17.1875,-17.18835 h 37.00684 l 17.1875,-103.13004 h -2.63184 c -9.50684,0 -17.1875,-7.68104 -17.1875,-17.18833 V 198.4712 c -6.28418,0 -12.35351,-3.49137 -15.36132,-9.5073 -4.24317,-8.48675 -0.80567,-18.79976 7.68066,-23.04312 z m 39.10155,238.81049 -31.42089,-26.21222 -31.4209,26.21222 z m -62.68066,-103.13004 -2.52441,15.20096 33.78418,28.19961 33.78418,-28.19961 -2.52441,-15.20096 z m -7.46582,44.68969 -6.01561,35.98808 24.59961,-20.51857 z m 58.86718,15.46951 24.59961,20.46487 -6.01561,-35.98809 z M 95.32383,189.87702 c -4.72656,0 -8.59374,3.86738 -8.59374,8.59418 0,4.72679 3.86718,8.59417 8.59374,8.59417 h 85.9375 c 4.72656,0 8.59374,-3.86738 8.59374,-8.59417 0,-4.7268 -3.86718,-8.59418 -8.59374,-8.59418 z"
id="path2"
style="stroke-width:0.537122"
sodipodi:nodetypes="cccscssccsssccccsssccsscsccccccccccccccccccccsssssss" />
<path
d="m 387.14987,87.347348 -58.62532,-21.98825 c -5.0233,-1.86494 -10.58805,-1.59423 -15.37072,0.81215 l -13.80658,6.88825 c -3.33884,1.68446 -3.57948,6.34681 -0.45119,8.36215 l 44.18707,28.425312 -29.6285,15.13009 -17.50638,-7.79064 c -2.61694,-1.17311 -5.65498,-1.11295 -8.21176,0.18048 l -9.68566,4.84283 c -2.79741,1.41374 -3.5494,5.05338 -1.50398,7.42968 l 21.98825,25.65798 c 1.83486,2.13566 4.51196,3.36892 7.30937,3.36892 h 41.41973 c 1.50399,0 2.97789,-0.36095 4.3014,-1.02271 l 82.08748,-41.0287 c 13.98706,-7.00856 24.81575,-19.040442 30.32033,-33.689252 2.85757,-7.58008 -2.76733,-15.7016 -10.88885,-15.7016 h -17.26574 c -6.0761,0 -12.09204,1.44382 -17.50638,4.21116 z"
id="path1903"
sodipodi:nodetypes="ccccccccccccsscccsscc"
style="stroke-width:0.300797" />
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="21.327999"
height="21.327999"
fill="none"
version="1.1"
viewBox="0 0 21.327999 21.327999"
id="svg7226"
sodipodi:docname="airbase.svg"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs7230" />
<sodipodi:namedview
id="namedview7228"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="26.15625"
inkscape:cx="10.666667"
inkscape:cy="10.666667"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg7226" />
<metadata
id="metadata7218">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<path
d="m 10.664,18.4362 c 4.2922,0 7.7717,-3.4796 7.7717,-7.7717 0,-4.2921 -3.4796,-7.7717 -7.7717,-7.7717 -4.2921,0 -7.7717,3.4796 -7.7717,7.7717 0,4.2921 3.4796,7.7717 7.7717,7.7717 z m 0,2.8918 c 5.8893,0 10.664,-4.7742 10.664,-10.664 C 21.328,4.7742 16.5538,0 10.664,0 4.7742,0 0,4.7742 0,10.664 0,16.5538 4.7742,21.328 10.664,21.328 Z"
clip-rule="evenodd"
fill="#ffffff"
fill-rule="evenodd"
stroke-width="0"
style="fill:#000000"
id="path7220" />
<line
x1="7.796"
x2="13.187"
y1="6.8541994"
y2="14.231199"
stroke="#247BE2"
stroke-linecap="square"
style="fill:none;stroke:#000000"
id="line7222" />
<line
x1="14.397999"
x2="7.8680005"
y1="11.885201"
y2="11.450199"
stroke="#247BE2"
stroke-linecap="square"
style="fill:none;stroke:#000000"
id="line7224" />
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="15.75"
height="14"
viewBox="0 0 15.75 14"
fill="none"
version="1.1"
id="svg7234"
sodipodi:docname="aircraft.svg"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs7238" />
<sodipodi:namedview
id="namedview7236"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="26.15625"
inkscape:cx="7.8757467"
inkscape:cy="7.2640382"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg7234" />
<path
stroke-width="0"
d="m 13.1797,5.25 c 0.9297,0 2.5703,0.793 2.5703,1.75 0,0.9844 -1.6406,1.75 -2.5703,1.75 H 9.9805 L 7.2461,13.5625 C 7.082,13.8359 6.7812,14 6.4805,14 H 4.9492 C 4.6484,14 4.4297,13.7266 4.5117,13.4531 L 5.8516,8.75 H 3.0625 L 1.85938,10.3359 C 1.77734,10.4453 1.66797,10.5 1.53125,10.5 H 0.38281 C 0.16406,10.5 0,10.3359 0,10.1172 0,10.0898 0,10.0625 0,10.0352 L 0.875,7 0,3.9922 C 0,3.9648 0,3.9375 0,3.8828 0,3.6914 0.16406,3.5 0.38281,3.5 h 1.14844 c 0.13672,0 0.24609,0.082 0.32813,0.1914 L 3.0625,5.25 H 5.8516 L 4.5117,0.57422 C 4.4297,0.30078 4.6484,0 4.9492,0 H 6.4805 C 6.7812,0 7.082,0.19141 7.2461,0.46484 L 9.9805,5.25 Z"
fill="#202831"
id="path7232" />
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
id="svg6"
version="1.1"
fill="none"
viewBox="0 0 12.952619 10.362093"
height="10.362093"
width="12.952619"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata10">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs10" />
<path
stroke-width="0"
fill="black"
id="path3711"
d="m 6.4763089,0 c 0.358221,0 0.6476303,0.2894099 0.6476303,0.6476303 v 1.2952618 h 2.428616 c 0.8054918,0 1.4571708,0.6516785 1.4571708,1.4571695 v 5.5048619 c 0,0.805491 -0.651679,1.4571685 -1.4571708,1.4571685 H 3.4000627 c -0.8054909,0 -1.4571694,-0.6516775 -1.4571694,-1.4571685 V 3.4000616 c 0,-0.805491 0.6516785,-1.4571695 1.4571694,-1.4571695 H 5.8286776 V 0.6476303 C 5.8286776,0.2894099 6.1180887,0 6.4763089,0 Z M 4.2096006,7.7715699 c -0.1780979,0 -0.3238152,0.145716 -0.3238152,0.3238146 0,0.178099 0.1457173,0.323817 0.3238152,0.323817 h 0.6476303 c 0.1780991,0 0.3238164,-0.145718 0.3238164,-0.323817 0,-0.1780986 -0.1457173,-0.3238146 -0.3238164,-0.3238146 z m 1.9428933,0 c -0.178099,0 -0.3238163,0.145716 -0.3238163,0.3238146 0,0.178099 0.1457173,0.323817 0.3238163,0.323817 h 0.64763 c 0.178099,0 0.3238153,-0.145718 0.3238153,-0.323817 0,-0.1780986 -0.1457163,-0.3238146 -0.3238153,-0.3238146 z m 1.9428923,0 c -0.178098,0 -0.323815,0.145716 -0.323815,0.3238146 0,0.178099 0.145717,0.323817 0.323815,0.323817 h 0.647631 c 0.178098,0 0.323816,-0.145718 0.323816,-0.323817 0,-0.1780986 -0.145718,-0.3238146 -0.323816,-0.3238146 z M 5.3429549,5.1810458 a 0.8095391,0.8095391 0 1 0 -1.6190782,0 0.8095391,0.8095391 0 1 0 1.6190782,0 z m 3.0762473,0.809538 a 0.80953865,0.80953865 0 1 0 0,-1.6190771 0.80953865,0.80953865 0 1 0 0,1.6190771 z M 0.9714467,4.5334156 h 0.323815 V 8.4192015 H 0.9714467 C 0.4351272,8.4192015 0,7.9840739 0,7.4477529 V 5.504861 C 0,4.9685428 0.4351272,4.5334156 0.9714467,4.5334156 Z m 11.0097253,0 c 0.536319,0 0.971446,0.4351272 0.971446,0.9714454 v 1.9428919 c 0,0.536321 -0.435127,0.9714486 -0.971446,0.9714486 H 11.657355 V 4.5334156 Z" />
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.8 KiB

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="human.svg"
id="svg6"
version="1.1"
fill="none"
viewBox="0 0 12.14064 10.677204"
height="10.677204"
width="12.14064">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs10" />
<sodipodi:namedview
fit-margin-bottom="0"
fit-margin-right="0"
fit-margin-left="0"
fit-margin-top="0"
inkscape:document-rotation="0"
inkscape:current-layer="svg6"
inkscape:window-maximized="1"
inkscape:window-y="-8"
inkscape:window-x="1912"
inkscape:window-height="1017"
inkscape:window-width="1920"
inkscape:cy="3.5052403"
inkscape:cx="-1.3921341"
inkscape:zoom="27.733334"
showgrid="false"
inkscape:pagecheckerboard="0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="namedview8" />
<path
sodipodi:nodetypes="ccccccc"
id="path1359"
d="M 1.2277422,10.677204 C 0.50620893,10.667383 0.04230013,10.430984 0.00390353,9.8358148 -0.07761857,7.3028212 1.1300144,6.7967364 2.4770775,6.2662917 l 6.6154506,-0.012246 c 2.4502799,0.2890709 3.0477749,1.846629 3.0477749,3.4797821 0.0127,0.3604432 -0.331282,0.9019572 -1.478805,0.9433762 z"
stroke-width="0"
style="stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
fill="black" />
<path
fill="black"
id="path916"
stroke-width="0"
d="m 5.9808108,5.7908995 c 1.6415273,0 2.9733343,-1.2969197 2.9733343,-2.8954494 C 8.9541451,1.2969203 7.6223381,0 5.9808108,0 4.3392825,0 3.0074758,1.2969203 3.0074758,2.8954501 c 0,1.5985297 1.3318067,2.8954494 2.973335,2.8954494 z M 8.6237741,6.4343342 H 7.4860601 C 7.0276691,6.6394281 6.5176619,6.7560505 5.9808108,6.7560505 5.4439597,6.7560505 4.9360143,6.6394281 4.475561,6.4343342 H 3.3378464 c -1.4598251,0 -2.64296517,1.152148 -2.64296517,2.5737386 v 0.321716 c 0,0.532843 0.44393577,0.9651492 0.99111197,0.9651492 h 8.5896338 c 0.547177,0 0.991112,-0.4323062 0.991112,-0.9651492 v -0.321716 c 0,-1.4215906 -1.18314,-2.5737386 -2.6429649,-2.5737386 z" />
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="15.767666"
height="14.022505"
viewBox="0 0 15.767666 14.022505"
fill="none"
version="1.1"
id="svg7279"
sodipodi:docname="navyunit.svg"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs7283" />
<sodipodi:namedview
id="namedview7281"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="26.15625"
inkscape:cx="7.9139785"
inkscape:cy="7.2640382"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg7279" />
<path
stroke-width="0"
d="m 5.2724978,0.875 c 0,-0.46484 0.3828,-0.875 0.875,-0.875 h 3.5 C 10.112298,0 10.522498,0.41016 10.522498,0.875 V 1.75 h 1.3125 c 0.7109,0 1.3125,0.6016 1.3125,1.3125 v 3.5 l 1.2031,0.4102 c 0.6289,0.2187 0.793,1.039 0.3008,1.4765 l -2.7617,2.543 c -0.4375,0.2461 -0.9297,0.4101 -1.3672,0.4101 -0.5469002,0 -1.1211002,-0.2187 -1.6406002,-0.5468 -0.6016,-0.4375 -1.3946,-0.4375 -1.9961,0 -0.4649,0.3007 -1.0391,0.5468 -1.6406,0.5468 -0.4375,0 -0.9297,-0.164 -1.3672,-0.4101 l -2.76175,-2.543 C 0.62405778,8.0117 0.78811778,7.1914 1.4170278,6.9727 l 1.23047,-0.4102 v -3.5 c 0,-0.7109 0.5742,-1.3125 1.3125,-1.3125 h 1.3125 z m -0.875,5.1133 2.9258,-0.9844 c 0.3554,-0.1094 0.7656,-0.1094 1.1211,0 L 11.397498,5.9883 V 3.5 H 4.3974978 Z m 3.9922,5.5508 c 0.6289,0.4375 1.3672,0.7109 2.1328002,0.7109 0.7109,0 1.5039,-0.2734 2.1055,-0.7109 0.3281,-0.2188 0.7656,-0.1914 1.0664,0.0547 0.4101,0.3281 0.9023,0.5742 1.3945,0.6835 0.4648,0.1094 0.7656,0.5743 0.6563,1.0665 -0.1094,0.4648 -0.6016,0.7656 -1.0665,0.6562 -0.6562,-0.1641 -1.2304,-0.4648 -1.5859,-0.6836 -0.793,0.4102 -1.668,0.6836 -2.5703,0.6836 -0.8750002,0 -1.6680002,-0.2461 -2.2148002,-0.4922 -0.1641,-0.082 -0.3008,-0.164 -0.4102,-0.2187 -0.1367,0.0547 -0.2734,0.1367 -0.4375,0.2187 -0.5469,0.2461 -1.3398,0.4922 -2.1875,0.4922 -0.9023,0 -1.8047,-0.2734 -2.5977,-0.6836 -0.3554,0.2188 -0.92964,0.5195 -1.58589,0.6836 -0.46485002,0.1094 -0.95703002,-0.1914 -1.06641002,-0.6562 -0.10938,-0.4649 0.19141,-0.9571 0.65625,-1.0665 0.49219002,-0.1093 1.01172002,-0.3554 1.39455002,-0.6835 0.3008,-0.2461 0.7383,-0.2735 1.0664,-0.0547 0.6016,0.4375 1.3945,0.7109 2.1328,0.7109 0.7383,0 1.5039,-0.2734 2.1055,-0.7109 0.3007,-0.2188 0.7109,-0.2188 1.0117,0 z"
fill="#181e25"
id="path7277" />
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -1,3 +0,0 @@
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.74842 41L25 9.97231L43.2516 41H6.74842Z" fill="#3BB9FF" stroke="#082E44" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 207 B

View File

@@ -1,4 +0,0 @@
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M45.7733 41.3423L25.9481 7.63951C25.5228 6.91648 24.4772 6.91646 24.0519 7.63951L4.22671 41.3423C3.79536 42.0756 4.32409 43 5.17484 43H44.8252C45.6759 43 46.2046 42.0756 45.7733 41.3423Z" fill="#3BB9FF" stroke="white" stroke-width="2"/>
<path d="M6.74842 41L25 9.97231L43.2516 41H6.74842Z" fill="#3BB9FF" stroke="#082E44" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 453 B

View File

@@ -1,4 +0,0 @@
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M45.7733 41.3423L25.9481 7.63951C25.5228 6.91648 24.4772 6.91646 24.0519 7.63951L4.22671 41.3423C3.79536 42.0756 4.32409 43 5.17484 43H44.8252C45.6759 43 46.2046 42.0756 45.7733 41.3423Z" fill="#3BB9FF" stroke="white" stroke-width="2"/>
<path d="M6.74842 41L25 9.97231L43.2516 41H6.74842Z" fill="white" stroke="#082E44" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 451 B

View File

@@ -1,3 +0,0 @@
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.74842 41L25 9.97231L43.2516 41H6.74842Z" fill="#CFD9E8" stroke="#2F2F2F" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 207 B

View File

@@ -1,4 +0,0 @@
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M45.7733 41.3423L25.9481 7.63951C25.5228 6.91648 24.4772 6.91646 24.0519 7.63951L4.22671 41.3423C3.79536 42.0756 4.32409 43 5.17484 43H44.8252C45.6759 43 46.2046 42.0756 45.7733 41.3423Z" fill="#CFD9E8" stroke="white" stroke-width="2"/>
<path d="M6.74842 41L25 9.97231L43.2516 41H6.74842Z" fill="#CFD9E8" stroke="#2F2F2F" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 453 B

View File

@@ -1,4 +0,0 @@
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M45.7733 41.3423L25.9481 7.63951C25.5228 6.91648 24.4772 6.91646 24.0519 7.63951L4.22671 41.3423C3.79536 42.0756 4.32409 43 5.17484 43H44.8252C45.6759 43 46.2046 42.0756 45.7733 41.3423Z" fill="#CFD9E8" stroke="white" stroke-width="2"/>
<path d="M6.74842 41L25 9.97231L43.2516 41H6.74842Z" fill="white" stroke="#2F2F2F" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 451 B

View File

@@ -1,3 +0,0 @@
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.74842 41L25 9.97231L43.2516 41H6.74842Z" fill="#FF5858" stroke="#262222" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 207 B

View File

@@ -1,4 +0,0 @@
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M45.7733 41.3423L25.9481 7.63951C25.5228 6.91648 24.4772 6.91646 24.0519 7.63951L4.22671 41.3423C3.79536 42.0756 4.32409 43 5.17484 43H44.8252C45.6759 43 46.2046 42.0756 45.7733 41.3423Z" fill="#FF5858" stroke="white" stroke-width="2"/>
<path d="M6.74842 41L25 9.97231L43.2516 41H6.74842Z" fill="#FF5858" stroke="#262222" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 453 B

View File

@@ -1,4 +0,0 @@
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M45.7733 41.3423L25.9481 7.63951C25.5228 6.91648 24.4772 6.91646 24.0519 7.63951L4.22671 41.3423C3.79536 42.0756 4.32409 43 5.17484 43H44.8252C45.6759 43 46.2046 42.0756 45.7733 41.3423Z" fill="#FF5858" stroke="white" stroke-width="2"/>
<path d="M6.74842 41L25 9.97231L43.2516 41H6.74842Z" fill="white" stroke="#262222" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 451 B

View File

@@ -1,10 +0,0 @@
<svg width="63" height="63" viewBox="0 0 63 63" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M31.4998 46.9756C40.0468 46.9756 46.9756 40.0468 46.9756 31.4998C46.9756 22.9528 40.0468 16.024 31.4998 16.024C22.9528 16.024 16.024 22.9528 16.024 31.4998C16.024 40.0468 22.9528 46.9756 31.4998 46.9756ZM31.4998 52.734C43.2271 52.734 52.734 43.2271 52.734 31.4998C52.734 19.7725 43.2271 10.2656 31.4998 10.2656C19.7725 10.2656 10.2656 19.7725 10.2656 31.4998C10.2656 43.2271 19.7725 52.734 31.4998 52.734Z" fill="white"/>
<path d="M35.3291 61L37.3291 61L37.3291 59L37.3291 49.2532L37.3291 47.2532L35.3291 47.2532L27.6709 47.2532L25.6709 47.2532L25.6709 49.2532L25.6709 59L25.6709 61L27.6709 61L35.3291 61Z" fill="#247BE2" stroke="white" stroke-width="4"/>
<path d="M47.2529 35.3291V37.3291H49.2529H58.9998H60.9998V35.3291V27.6709V25.6709L58.9998 25.6709H49.2529H47.2529V27.6709V35.3291Z" fill="#247BE2" stroke="white" stroke-width="4"/>
<path d="M35.3291 15.7471L37.3291 15.7471L37.3291 13.7471L37.3291 4.00023L37.3291 2.00023L35.3291 2.00023L27.6709 2.00023L25.6709 2.00023L25.6709 4.00023L25.6709 13.7471L25.6709 15.7471L27.6709 15.7471L35.3291 15.7471Z" fill="#247BE2" stroke="white" stroke-width="4"/>
<path d="M2 35.3291V37.3291H4H13.7468H15.7468V35.3291L15.7468 27.6709V25.6709L13.7468 25.6709H4H2V27.6709L2 35.3291Z" fill="#247BE2" stroke="white" stroke-width="4"/>
<circle cx="31.5001" cy="31.5001" r="15.4494" fill="white" stroke="#247BE2" stroke-width="6"/>
<line x1="25.7895" y1="23.9132" x2="36.5242" y2="38.6028" stroke="#247BE2" stroke-width="2" stroke-linecap="square"/>
<line x1="38.9357" y1="33.9313" x2="25.9313" y2="33.0643" stroke="#247BE2" stroke-width="2" stroke-linecap="square"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1,10 +0,0 @@
<svg width="63" height="63" viewBox="0 0 63 63" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M31.4998 46.9756C40.0468 46.9756 46.9756 40.0468 46.9756 31.4998C46.9756 22.9528 40.0468 16.024 31.4998 16.024C22.9528 16.024 16.024 22.9528 16.024 31.4998C16.024 40.0468 22.9528 46.9756 31.4998 46.9756ZM31.4998 52.734C43.2271 52.734 52.734 43.2271 52.734 31.4998C52.734 19.7725 43.2271 10.2656 31.4998 10.2656C19.7725 10.2656 10.2656 19.7725 10.2656 31.4998C10.2656 43.2271 19.7725 52.734 31.4998 52.734Z" fill="white"/>
<path d="M35.3291 61L37.3291 61L37.3291 59L37.3291 49.2532L37.3291 47.2532L35.3291 47.2532L27.6709 47.2532L25.6709 47.2532L25.6709 49.2532L25.6709 59L25.6709 61L27.6709 61L35.3291 61Z" fill="#CFD9E8" stroke="white" stroke-width="4"/>
<path d="M47.2529 35.3291V37.3291H49.2529H58.9998H60.9998V35.3291V27.6709V25.6709L58.9998 25.6709H49.2529H47.2529V27.6709V35.3291Z" fill="#CFD9E8" stroke="white" stroke-width="4"/>
<path d="M35.3291 15.7471L37.3291 15.7471L37.3291 13.7471L37.3291 4.00023L37.3291 2.00023L35.3291 2.00023L27.6709 2.00023L25.6709 2.00023L25.6709 4.00023L25.6709 13.7471L25.6709 15.7471L27.6709 15.7471L35.3291 15.7471Z" fill="#CFD9E8" stroke="white" stroke-width="4"/>
<path d="M2 35.3291V37.3291H4H13.7468H15.7468V35.3291L15.7468 27.6709V25.6709L13.7468 25.6709H4H2V27.6709L2 35.3291Z" fill="#CFD9E8" stroke="white" stroke-width="4"/>
<circle cx="31.5001" cy="31.5001" r="15.4494" fill="white" stroke="#CFD9E8" stroke-width="6"/>
<line x1="25.7895" y1="23.9132" x2="36.5242" y2="38.6028" stroke="#CFD9E8" stroke-width="2" stroke-linecap="square"/>
<line x1="38.9357" y1="33.9313" x2="25.9313" y2="33.0643" stroke="#CFD9E8" stroke-width="2" stroke-linecap="square"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1,10 +0,0 @@
<svg width="63" height="63" viewBox="0 0 63 63" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M31.4998 46.9756C40.0468 46.9756 46.9756 40.0468 46.9756 31.4998C46.9756 22.9528 40.0468 16.024 31.4998 16.024C22.9528 16.024 16.024 22.9528 16.024 31.4998C16.024 40.0468 22.9528 46.9756 31.4998 46.9756ZM31.4998 52.734C43.2271 52.734 52.734 43.2271 52.734 31.4998C52.734 19.7725 43.2271 10.2656 31.4998 10.2656C19.7725 10.2656 10.2656 19.7725 10.2656 31.4998C10.2656 43.2271 19.7725 52.734 31.4998 52.734Z" fill="white"/>
<path d="M35.3291 61L37.3291 61L37.3291 59L37.3291 49.2532L37.3291 47.2532L35.3291 47.2532L27.6709 47.2532L25.6709 47.2532L25.6709 49.2532L25.6709 59L25.6709 61L27.6709 61L35.3291 61Z" fill="#ff5858" stroke="white" stroke-width="4"/>
<path d="M47.2529 35.3291V37.3291H49.2529H58.9998H60.9998V35.3291V27.6709V25.6709L58.9998 25.6709H49.2529H47.2529V27.6709V35.3291Z" fill="#ff5858" stroke="white" stroke-width="4"/>
<path d="M35.3291 15.7471L37.3291 15.7471L37.3291 13.7471L37.3291 4.00023L37.3291 2.00023L35.3291 2.00023L27.6709 2.00023L25.6709 2.00023L25.6709 4.00023L25.6709 13.7471L25.6709 15.7471L27.6709 15.7471L35.3291 15.7471Z" fill="#ff5858" stroke="white" stroke-width="4"/>
<path d="M2 35.3291V37.3291H4H13.7468H15.7468V35.3291L15.7468 27.6709V25.6709L13.7468 25.6709H4H2V27.6709L2 35.3291Z" fill="#ff5858" stroke="white" stroke-width="4"/>
<circle cx="31.5001" cy="31.5001" r="15.4494" fill="white" stroke="#ff5858" stroke-width="6"/>
<line x1="25.7895" y1="23.9132" x2="36.5242" y2="38.6028" stroke="#ff5858" stroke-width="2" stroke-linecap="square"/>
<line x1="38.9357" y1="33.9313" x2="25.9313" y2="33.0643" stroke="#ff5858" stroke-width="2" stroke-linecap="square"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

Some files were not shown because too many files have changed in this diff Show More