From 8f9084b8f28c735052631213dd6c3dafba358011 Mon Sep 17 00:00:00 2001 From: devRaGonSa Date: Thu, 11 Jun 2026 09:02:17 +0200 Subject: [PATCH] Fix weapon icon mapping and local SVG assets --- ...fix-weapon-icon-assets-and-rcon-mapping.md | 125 ++++++++++ docs/WEAPON_ICON_MAPPING_AUDIT.md | 236 ++++++++++++++++++ frontend/assets/css/historico.css | 42 ++++ .../img/weapons/black/60l_supply_black.svg | 18 ++ .../img/weapons/black/60l_transport_black.svg | 5 + .../weapons/black/at_mine_gs_mk_v_black.svg | 6 + .../assets/img/weapons/black/ba10_black.svg | 4 + .../img/weapons/black/bazooka_black.svg | 8 +- .../black/bedford_oyd_supply_black.svg | 7 + .../black/bedford_oyd_transport_black.svg | 9 + .../weapons/black/bishop_sp_25pdr_black.svg | 4 + .../img/weapons/black/bombing_run_black.svg | 20 ++ .../black/boys_anti_tank_rifle_black.svg | 4 + .../img/weapons/black/bren_gun_black.svg | 7 +- .../img/weapons/black/browing_m1919_black.svg | 3 - .../weapons/black/browning_m1919_black.svg | 7 + .../black/canadian_sten_mk_ii_black.svg | 13 + .../black/churchill_mk_iii_avre_black.svg | 5 + .../weapons/black/churchill_mk_iii_black.svg | 4 + .../weapons/black/churchill_mk_vii_black.svg | 4 + .../img/weapons/black/colt_1911_black.svg | 9 +- .../img/weapons/black/cromwell_black.svg | 4 + .../weapons/black/crusader_mk_iii_black.svg | 4 + .../assets/img/weapons/black/dp27_black.svg | 3 - .../weapons/black/enfield_no2_mk_i_black.svg | 4 + .../img/weapons/black/feldspaten_black.svg | 7 + .../assets/img/weapons/black/fg42_black.svg | 4 + .../img/weapons/black/fg42_x4_black.svg | 4 + .../img/weapons/black/firefly_black.svg | 4 + .../weapons/black/flammenwefer41_black.svg | 3 - .../weapons/black/flammenwerfer41_black.svg | 7 + .../img/weapons/black/flare_gun_black.svg | 4 + .../black/fn_inglis_no2_mk_i_black.svg | 5 + .../assets/img/weapons/black/gewehr_black.svg | 7 +- .../black/gmc_cckw_353_supply_black.svg | 5 + .../black/gmc_cckw_363_supply_black.svg | 4 + .../black/gmc_cckw_363_transport_black.svg | 4 + .../img/weapons/black/half_track_black.svg | 5 + .../assets/img/weapons/black/is_1_black.svg | 5 + .../assets/img/weapons/black/jeep_black.svg | 6 + .../img/weapons/black/jeep_willys_black.svg | 5 + .../assets/img/weapons/black/kar98k_black.svg | 7 +- .../img/weapons/black/kar98k_x8_black.svg | 7 +- .../img/weapons/black/kubelwagen_black.svg | 5 + .../assets/img/weapons/black/kv2_black.svg | 6 + .../img/weapons/black/lanchester_black.svg | 4 + .../lee_enfield_jungle_carbine_black.svg | 4 + .../weapons/black/lee_enfield_n4_black.svg | 7 +- .../black/lee_enfield_pattern_1914_black.svg | 4 + .../lee_enfield_pattern_1914_sniper_black.svg | 4 + .../img/weapons/black/lewis_gun_black.svg | 6 + .../img/weapons/black/luger_p08_black.svg | 8 +- .../weapons/black/m1903_springfield_black.svg | 7 +- .../black/m1903_springfield_sniper_black.svg | 4 + .../img/weapons/black/m1918a2_bar_black.svg | 4 + .../weapons/black/m1_57mm_cannon_black.svg | 5 + .../img/weapons/black/m1_carabine_black.svg | 3 - .../img/weapons/black/m1_carbine_black.svg | 4 + .../img/weapons/black/m1_garand_black.svg | 7 +- .../img/weapons/black/m1a1_at_mine_black.svg | 7 + .../black/m24_stielhandgranate_black.svg | 5 + .../img/weapons/black/m2_ap_mine_black.svg | 7 + .../weapons/black/m2_flamethrower_black.svg | 9 +- .../img/weapons/black/m3_grease_gun_black.svg | 8 +- .../img/weapons/black/m3_half_track_black.svg | 5 + .../img/weapons/black/m3_knife_black.svg | 20 ++ .../black/m43_stielhandgranate_black.svg | 5 + .../img/weapons/black/m4a3_105mm_black.svg | 4 + .../img/weapons/black/m8_greyhound_black.svg | 38 +++ .../assets/img/weapons/black/m97_black.svg | 7 +- .../assets/img/weapons/black/mg34_black.svg | 7 +- .../assets/img/weapons/black/mg42_black.svg | 7 +- .../img/weapons/black/mills_bomb_black.svg | 5 + .../img/weapons/black/mk2_grenade_black.svg | 29 +++ .../weapons/black/mosin_nagant_1891_black.svg | 4 + .../weapons/black/mosin_nagant_9130_black.svg | 4 + .../weapons/black/mosin_nagant_m38_black.svg | 4 + .../black/mosing_nagant_1891_black.svg | 3 - .../black/mosing_nagant_9130_black.svg | 3 - .../weapons/black/mosing_nagant_m38_black.svg | 3 - .../assets/img/weapons/black/mp40_black.svg | 12 +- .../img/weapons/black/mpl50_spade_black.svg | 4 + .../img/weapons/black/nagant_m1895_black.svg | 7 +- .../img/weapons/black/no82_grenade_black.svg | 4 + .../weapons/black/opel_blitz_supply_black.svg | 8 + .../black/opel_blitz_transport_black.svg | 5 + .../img/weapons/black/pak_40_75mm_black.svg | 5 + .../weapons/black/panzer_iii_ausf_n_black.svg | 43 ++++ .../img/weapons/black/panzerchreck_black.svg | 3 - .../img/weapons/black/panzerschreck_black.svg | 4 + .../assets/img/weapons/black/piat_black.svg | 11 +- .../img/weapons/black/pomz_ap_mine_black.svg | 4 + .../assets/img/weapons/black/ppsh41_black.svg | 17 +- .../img/weapons/black/ppsh_41w_drum_black.svg | 8 +- .../weapons/black/precision_strike_black.svg | 35 +++ .../assets/img/weapons/black/ptrs41_black.svg | 10 +- .../img/weapons/black/qf_6_pounder_black.svg | 6 + .../img/weapons/black/rg42_grenade_black.svg | 9 + .../weapons/black/rifle_no4_mk_i_black.svg | 4 + .../black/rifle_no4_mk_i_sniper_black.svg | 4 + .../weapons/black/rifle_no5_mk_i_black.svg | 4 + .../assets/img/weapons/black/s_mine_black.svg | 6 + .../weapons/black/satchel_charge_black.svg | 4 + .../black/scoped_mosin_nagant_9130_black.svg | 11 +- .../img/weapons/black/scoped_svt40_black.svg | 9 +- .../weapons/black/sdkfz_121_luchs_black.svg | 4 + .../black/sdkfz_161_panzer_iv_black.svg | 6 + .../weapons/black/sdkfz_171_panther_black.svg | 5 + .../weapons/black/sdkfz_181_tiger_1_black.svg | 5 + .../weapons/black/sdkfz_234_puma_black.svg | 6 + .../black/sdkfz_251_half_track_black.svg | 19 ++ .../weapons/black/sherman_m4a3_75w_black.svg | 4 + .../weapons/black/sherman_m4a3e2_76_black.svg | 5 + .../weapons/black/sherman_m4a3e2_black.svg | 4 + .../weapons/black/smle_no1_mk_iii_black.svg | 4 + .../img/weapons/black/sten_gun_black.svg | 4 + .../weapons/black/sten_gun_mk_ii_black.svg | 4 + .../img/weapons/black/sten_mk_v_black.svg | 3 - .../assets/img/weapons/black/stg44_black.svg | 8 +- .../img/weapons/black/strafing_run_black.svg | 17 ++ .../img/weapons/black/stuart_m5a1_black.svg | 4 + .../weapons/black/sturmpanzer_iv_black.svg | 5 + .../assets/img/weapons/black/svt40_black.svg | 7 +- .../assets/img/weapons/black/t34_76_black.svg | 4 + .../assets/img/weapons/black/t70_black.svg | 4 + .../img/weapons/black/tellermine_43_black.svg | 9 + .../img/weapons/black/tetrarch_black.svg | 6 + .../img/weapons/black/thompson_black.svg | 7 +- .../img/weapons/black/tm35_at_mine_black.svg | 4 + .../img/weapons/black/tokarev_tt33_black.svg | 7 +- .../img/weapons/black/walther_p38_black.svg | 9 +- .../weapons/black/webley_revolver_black.svg | 7 +- .../weapons/black/zis2_57mm_cannon_black.svg | 4 + .../img/weapons/black/zis5_supply_black.svg | 4 + .../weapons/black/zis5_transport_black.svg | 13 + .../assets/js/current-match-weapon-icons.js | 7 +- frontend/assets/js/historico-partida.js | 51 +++- frontend/assets/js/partida-actual.js | 209 +--------------- frontend/historico-partida.html | 1 + scripts/validate-weapon-icon-mapping.js | 81 ++++++ 140 files changed, 1367 insertions(+), 325 deletions(-) create mode 100644 ai/tasks/done/TASK-232-audit-and-fix-weapon-icon-assets-and-rcon-mapping.md create mode 100644 docs/WEAPON_ICON_MAPPING_AUDIT.md create mode 100644 frontend/assets/img/weapons/black/60l_supply_black.svg create mode 100644 frontend/assets/img/weapons/black/60l_transport_black.svg create mode 100644 frontend/assets/img/weapons/black/at_mine_gs_mk_v_black.svg create mode 100644 frontend/assets/img/weapons/black/ba10_black.svg create mode 100644 frontend/assets/img/weapons/black/bedford_oyd_supply_black.svg create mode 100644 frontend/assets/img/weapons/black/bedford_oyd_transport_black.svg create mode 100644 frontend/assets/img/weapons/black/bishop_sp_25pdr_black.svg create mode 100644 frontend/assets/img/weapons/black/bombing_run_black.svg create mode 100644 frontend/assets/img/weapons/black/boys_anti_tank_rifle_black.svg delete mode 100644 frontend/assets/img/weapons/black/browing_m1919_black.svg create mode 100644 frontend/assets/img/weapons/black/browning_m1919_black.svg create mode 100644 frontend/assets/img/weapons/black/canadian_sten_mk_ii_black.svg create mode 100644 frontend/assets/img/weapons/black/churchill_mk_iii_avre_black.svg create mode 100644 frontend/assets/img/weapons/black/churchill_mk_iii_black.svg create mode 100644 frontend/assets/img/weapons/black/churchill_mk_vii_black.svg create mode 100644 frontend/assets/img/weapons/black/cromwell_black.svg create mode 100644 frontend/assets/img/weapons/black/crusader_mk_iii_black.svg delete mode 100644 frontend/assets/img/weapons/black/dp27_black.svg create mode 100644 frontend/assets/img/weapons/black/enfield_no2_mk_i_black.svg create mode 100644 frontend/assets/img/weapons/black/feldspaten_black.svg create mode 100644 frontend/assets/img/weapons/black/fg42_black.svg create mode 100644 frontend/assets/img/weapons/black/fg42_x4_black.svg create mode 100644 frontend/assets/img/weapons/black/firefly_black.svg delete mode 100644 frontend/assets/img/weapons/black/flammenwefer41_black.svg create mode 100644 frontend/assets/img/weapons/black/flammenwerfer41_black.svg create mode 100644 frontend/assets/img/weapons/black/flare_gun_black.svg create mode 100644 frontend/assets/img/weapons/black/fn_inglis_no2_mk_i_black.svg create mode 100644 frontend/assets/img/weapons/black/gmc_cckw_353_supply_black.svg create mode 100644 frontend/assets/img/weapons/black/gmc_cckw_363_supply_black.svg create mode 100644 frontend/assets/img/weapons/black/gmc_cckw_363_transport_black.svg create mode 100644 frontend/assets/img/weapons/black/half_track_black.svg create mode 100644 frontend/assets/img/weapons/black/is_1_black.svg create mode 100644 frontend/assets/img/weapons/black/jeep_black.svg create mode 100644 frontend/assets/img/weapons/black/jeep_willys_black.svg create mode 100644 frontend/assets/img/weapons/black/kubelwagen_black.svg create mode 100644 frontend/assets/img/weapons/black/kv2_black.svg create mode 100644 frontend/assets/img/weapons/black/lanchester_black.svg create mode 100644 frontend/assets/img/weapons/black/lee_enfield_jungle_carbine_black.svg create mode 100644 frontend/assets/img/weapons/black/lee_enfield_pattern_1914_black.svg create mode 100644 frontend/assets/img/weapons/black/lee_enfield_pattern_1914_sniper_black.svg create mode 100644 frontend/assets/img/weapons/black/lewis_gun_black.svg create mode 100644 frontend/assets/img/weapons/black/m1903_springfield_sniper_black.svg create mode 100644 frontend/assets/img/weapons/black/m1918a2_bar_black.svg create mode 100644 frontend/assets/img/weapons/black/m1_57mm_cannon_black.svg delete mode 100644 frontend/assets/img/weapons/black/m1_carabine_black.svg create mode 100644 frontend/assets/img/weapons/black/m1_carbine_black.svg create mode 100644 frontend/assets/img/weapons/black/m1a1_at_mine_black.svg create mode 100644 frontend/assets/img/weapons/black/m24_stielhandgranate_black.svg create mode 100644 frontend/assets/img/weapons/black/m2_ap_mine_black.svg create mode 100644 frontend/assets/img/weapons/black/m3_half_track_black.svg create mode 100644 frontend/assets/img/weapons/black/m3_knife_black.svg create mode 100644 frontend/assets/img/weapons/black/m43_stielhandgranate_black.svg create mode 100644 frontend/assets/img/weapons/black/m4a3_105mm_black.svg create mode 100644 frontend/assets/img/weapons/black/m8_greyhound_black.svg create mode 100644 frontend/assets/img/weapons/black/mills_bomb_black.svg create mode 100644 frontend/assets/img/weapons/black/mk2_grenade_black.svg create mode 100644 frontend/assets/img/weapons/black/mosin_nagant_1891_black.svg create mode 100644 frontend/assets/img/weapons/black/mosin_nagant_9130_black.svg create mode 100644 frontend/assets/img/weapons/black/mosin_nagant_m38_black.svg delete mode 100644 frontend/assets/img/weapons/black/mosing_nagant_1891_black.svg delete mode 100644 frontend/assets/img/weapons/black/mosing_nagant_9130_black.svg delete mode 100644 frontend/assets/img/weapons/black/mosing_nagant_m38_black.svg create mode 100644 frontend/assets/img/weapons/black/mpl50_spade_black.svg create mode 100644 frontend/assets/img/weapons/black/no82_grenade_black.svg create mode 100644 frontend/assets/img/weapons/black/opel_blitz_supply_black.svg create mode 100644 frontend/assets/img/weapons/black/opel_blitz_transport_black.svg create mode 100644 frontend/assets/img/weapons/black/pak_40_75mm_black.svg create mode 100644 frontend/assets/img/weapons/black/panzer_iii_ausf_n_black.svg delete mode 100644 frontend/assets/img/weapons/black/panzerchreck_black.svg create mode 100644 frontend/assets/img/weapons/black/panzerschreck_black.svg create mode 100644 frontend/assets/img/weapons/black/pomz_ap_mine_black.svg create mode 100644 frontend/assets/img/weapons/black/precision_strike_black.svg create mode 100644 frontend/assets/img/weapons/black/qf_6_pounder_black.svg create mode 100644 frontend/assets/img/weapons/black/rg42_grenade_black.svg create mode 100644 frontend/assets/img/weapons/black/rifle_no4_mk_i_black.svg create mode 100644 frontend/assets/img/weapons/black/rifle_no4_mk_i_sniper_black.svg create mode 100644 frontend/assets/img/weapons/black/rifle_no5_mk_i_black.svg create mode 100644 frontend/assets/img/weapons/black/s_mine_black.svg create mode 100644 frontend/assets/img/weapons/black/satchel_charge_black.svg create mode 100644 frontend/assets/img/weapons/black/sdkfz_121_luchs_black.svg create mode 100644 frontend/assets/img/weapons/black/sdkfz_161_panzer_iv_black.svg create mode 100644 frontend/assets/img/weapons/black/sdkfz_171_panther_black.svg create mode 100644 frontend/assets/img/weapons/black/sdkfz_181_tiger_1_black.svg create mode 100644 frontend/assets/img/weapons/black/sdkfz_234_puma_black.svg create mode 100644 frontend/assets/img/weapons/black/sdkfz_251_half_track_black.svg create mode 100644 frontend/assets/img/weapons/black/sherman_m4a3_75w_black.svg create mode 100644 frontend/assets/img/weapons/black/sherman_m4a3e2_76_black.svg create mode 100644 frontend/assets/img/weapons/black/sherman_m4a3e2_black.svg create mode 100644 frontend/assets/img/weapons/black/smle_no1_mk_iii_black.svg create mode 100644 frontend/assets/img/weapons/black/sten_gun_black.svg create mode 100644 frontend/assets/img/weapons/black/sten_gun_mk_ii_black.svg delete mode 100644 frontend/assets/img/weapons/black/sten_mk_v_black.svg create mode 100644 frontend/assets/img/weapons/black/strafing_run_black.svg create mode 100644 frontend/assets/img/weapons/black/stuart_m5a1_black.svg create mode 100644 frontend/assets/img/weapons/black/sturmpanzer_iv_black.svg create mode 100644 frontend/assets/img/weapons/black/t34_76_black.svg create mode 100644 frontend/assets/img/weapons/black/t70_black.svg create mode 100644 frontend/assets/img/weapons/black/tellermine_43_black.svg create mode 100644 frontend/assets/img/weapons/black/tetrarch_black.svg create mode 100644 frontend/assets/img/weapons/black/tm35_at_mine_black.svg create mode 100644 frontend/assets/img/weapons/black/zis2_57mm_cannon_black.svg create mode 100644 frontend/assets/img/weapons/black/zis5_supply_black.svg create mode 100644 frontend/assets/img/weapons/black/zis5_transport_black.svg create mode 100644 scripts/validate-weapon-icon-mapping.js diff --git a/ai/tasks/done/TASK-232-audit-and-fix-weapon-icon-assets-and-rcon-mapping.md b/ai/tasks/done/TASK-232-audit-and-fix-weapon-icon-assets-and-rcon-mapping.md new file mode 100644 index 0000000..33cdd9d --- /dev/null +++ b/ai/tasks/done/TASK-232-audit-and-fix-weapon-icon-assets-and-rcon-mapping.md @@ -0,0 +1,125 @@ +--- +id: TASK-232 +title: Audit and fix weapon icon assets and RCON mapping +status: done +type: frontend +team: Frontend Senior +supporting_teams: [] +roadmap_item: foundation +priority: high +--- + +# TASK-232 - Audit and fix weapon icon assets and RCON mapping + +## Goal + +Use the current local SVG files from `frontend/assets/img/weapons/black/` for weapon icons shown in current match and historical weapon views, avoid broken/legacy asset references, and document covered and pending RCON names. + +## Context + +The local `black/` weapon icon folder changed substantially: new SVGs were added and several old typo filenames were deleted or renamed. The frontend needed to keep using the local black SVG set and avoid legacy bad-quality or missing paths. + +## Files Read First + +- `ai/architecture-index.md` +- `ai/repo-context.md` +- `ai/orchestrator/frontend-senior.md` +- `frontend/assets/js/current-match-weapon-icons.js` +- `frontend/assets/js/partida-actual.js` +- `frontend/assets/js/historico-partida.js` +- `frontend/partida-actual.html` +- `frontend/historico-partida.html` + +## Expected Files Modified + +- `frontend/assets/js/current-match-weapon-icons.js` +- `frontend/assets/js/partida-actual.js` +- `frontend/assets/js/historico-partida.js` +- `frontend/historico-partida.html` +- `frontend/assets/css/historico.css` +- `scripts/validate-weapon-icon-mapping.js` +- `docs/WEAPON_ICON_MAPPING_AUDIT.md` +- this task file + +## Changes + +1. Removed the operational `weapons/white/` fallback map from `partida-actual.js`. +2. Kept current match kill feed resolution on the shared `black/` runtime resolver. +3. Added aliases for `FG42 x4` variants and `MP 40`. +4. Removed legacy typo alias strings from runtime JS: `flammenwefer41`, `m1 carabine`, `panzerchreck`. +5. Loaded `current-match-weapon-icons.js` in `historico-partida.html`. +6. Rendered local black weapon icons in historical player detail sections for `top_weapons` and `death_by`. +7. Added CSS for historical weapon icon rows. +8. Added `scripts/validate-weapon-icon-mapping.js` to validate declared SVGs, mapped SVGs and forbidden legacy terms. +9. Created `docs/WEAPON_ICON_MAPPING_AUDIT.md`. + +## Asset Inventory + +- Current local SVG count in `frontend/assets/img/weapons/black/`: 123. +- Modified tracked SVGs: 29 existing files. +- Deleted tracked typo/obsolete SVGs: 9 files. +- New/untracked local SVGs: 94 files. +- Duplicate by hash: `lee_enfield_jungle_carbine_black.svg` and `rifle_no5_mk_i_black.svg`. + +Corrected local filenames now used include: + +- `browning_m1919_black.svg` +- `m1_carbine_black.svg` +- `panzerschreck_black.svg` +- `flammenwerfer41_black.svg` +- `mosin_nagant_1891_black.svg` +- `mosin_nagant_9130_black.svg` +- `mosin_nagant_m38_black.svg` + +## RCON/API Names Reviewed + +Production endpoints sampled: + +- `/api/current-match/kills` for `comunidad-hispana-01` +- `/api/current-match/kills` for `comunidad-hispana-02` +- `/api/current-match/players` for `comunidad-hispana-01` +- `/api/current-match/players` for `comunidad-hispana-02` +- `/api/historical/matches/detail?server=comunidad-hispana-01&match=1781023156:1781028555:purpleheartlanewarfare` + +The endpoints responded but did not expose weapon names in the sampled payloads at audit time. Coverage is therefore based on the repository RCON universe already implemented in `CURRENT_MATCH_RCON_WEAPON_ICON_ENTRIES`. + +Representative covered names include `GEWEHR 43`, `KARABINER 98K`, `KARABINER 98K x8`, `FG42`, `FG42 x4`, `M1 GARAND`, `M1 CARBINE`, `BROWNING M1919`, `STG44`, `MP40`, `MG42`, `BAZOOKA`, `PANZERSCHRECK`, `PIAT`, `BOMBING RUN`, `STRAFING RUN`, `SATCHEL`, `PRECISION STRIKE`, `UNKNOWN`, common mines, grenades, trucks, jeeps, half-tracks, tanks and mounted cannons. + +## Pending Without Dedicated Icon + +These names are covered by controlled fallback mappings but still lack dedicated icons: + +- `UNKNOWN` +- `MOLOTOV` +- `No.77` +- `Daimler` +- `GAZ-67` +- `DP-27` +- `FairbairnSykes` +- `122MM HOWITZER [M1938 (M-30)]` +- `150MM HOWITZER [sFH 18]` +- `155MM HOWITZER [M114]` + +## Validation + +Passed: + +```powershell +node --check frontend/assets/js/current-match-weapon-icons.js +node --check frontend/assets/js/partida-actual.js +node --check frontend/assets/js/historico-partida.js +node scripts/validate-weapon-icon-mapping.js +``` + +Also reviewed: + +```powershell +git status --short --untracked-files=all +git diff --name-only +``` + +## Outcome + +The current match kill feed and historical match detail weapon lists now use the shared local black SVG resolver. No runtime mapping points to missing SVGs. The old white-path fallback and legacy typo asset filenames are no longer used by frontend JS. + +No backend, RCON configuration, server ports, `27001`, Elo/MMR, Comunidad Hispana #03, clan assets, `tmp/`, `black - copia/`, `black.zip` or `ai/system-metrics.md` were touched by this task. diff --git a/docs/WEAPON_ICON_MAPPING_AUDIT.md b/docs/WEAPON_ICON_MAPPING_AUDIT.md new file mode 100644 index 0000000..b755184 --- /dev/null +++ b/docs/WEAPON_ICON_MAPPING_AUDIT.md @@ -0,0 +1,236 @@ +# Weapon Icon Mapping Audit + +## Summary + +The frontend weapon icon source of truth is now `frontend/assets/js/current-match-weapon-icons.js`, backed only by local SVG files from `frontend/assets/img/weapons/black/`. + +The audit focused on avoiding broken image loads, replacing legacy typo filenames, and reusing the same black SVG resolver in the current match kill feed and historical match detail weapon lists. + +## Asset Path + +- Runtime path: `./assets/img/weapons/black/` +- Filesystem path: `frontend/assets/img/weapons/black/` +- Fallback behavior: if the shared resolver is not available, views render a text fallback instead of loading an old asset path. +- Unknown fallback: `UNKNOWN -> precision_strike_black.svg` + +## Local SVG Files Included + +The current local set contains 123 SVG files: + +- `60l_supply_black.svg` +- `60l_transport_black.svg` +- `at_mine_gs_mk_v_black.svg` +- `ba10_black.svg` +- `bazooka_black.svg` +- `bedford_oyd_supply_black.svg` +- `bedford_oyd_transport_black.svg` +- `bishop_sp_25pdr_black.svg` +- `bombing_run_black.svg` +- `boys_anti_tank_rifle_black.svg` +- `bren_gun_black.svg` +- `browning_m1919_black.svg` +- `canadian_sten_mk_ii_black.svg` +- `churchill_mk_iii_avre_black.svg` +- `churchill_mk_iii_black.svg` +- `churchill_mk_vii_black.svg` +- `colt_1911_black.svg` +- `cromwell_black.svg` +- `crusader_mk_iii_black.svg` +- `enfield_no2_mk_i_black.svg` +- `feldspaten_black.svg` +- `fg42_black.svg` +- `fg42_x4_black.svg` +- `firefly_black.svg` +- `flammenwerfer41_black.svg` +- `flare_gun_black.svg` +- `fn_inglis_no2_mk_i_black.svg` +- `gewehr_black.svg` +- `gmc_cckw_353_supply_black.svg` +- `gmc_cckw_363_supply_black.svg` +- `gmc_cckw_363_transport_black.svg` +- `half_track_black.svg` +- `is_1_black.svg` +- `jeep_black.svg` +- `jeep_willys_black.svg` +- `kar98k_black.svg` +- `kar98k_x8_black.svg` +- `kubelwagen_black.svg` +- `kv2_black.svg` +- `lanchester_black.svg` +- `lee_enfield_jungle_carbine_black.svg` +- `lee_enfield_n4_black.svg` +- `lee_enfield_pattern_1914_black.svg` +- `lee_enfield_pattern_1914_sniper_black.svg` +- `lewis_gun_black.svg` +- `luger_p08_black.svg` +- `m1903_springfield_black.svg` +- `m1903_springfield_sniper_black.svg` +- `m1918a2_bar_black.svg` +- `m1_57mm_cannon_black.svg` +- `m1_carbine_black.svg` +- `m1_garand_black.svg` +- `m1a1_at_mine_black.svg` +- `m24_stielhandgranate_black.svg` +- `m2_ap_mine_black.svg` +- `m2_flamethrower_black.svg` +- `m3_grease_gun_black.svg` +- `m3_half_track_black.svg` +- `m3_knife_black.svg` +- `m43_stielhandgranate_black.svg` +- `m4a3_105mm_black.svg` +- `m8_greyhound_black.svg` +- `m97_black.svg` +- `mg34_black.svg` +- `mg42_black.svg` +- `mills_bomb_black.svg` +- `mk2_grenade_black.svg` +- `mosin_nagant_1891_black.svg` +- `mosin_nagant_9130_black.svg` +- `mosin_nagant_m38_black.svg` +- `mp40_black.svg` +- `mpl50_spade_black.svg` +- `nagant_m1895_black.svg` +- `no82_grenade_black.svg` +- `opel_blitz_supply_black.svg` +- `opel_blitz_transport_black.svg` +- `pak_40_75mm_black.svg` +- `panzer_iii_ausf_n_black.svg` +- `panzerschreck_black.svg` +- `piat_black.svg` +- `pomz_ap_mine_black.svg` +- `ppsh41_black.svg` +- `ppsh_41w_drum_black.svg` +- `precision_strike_black.svg` +- `ptrs41_black.svg` +- `qf_6_pounder_black.svg` +- `rg42_grenade_black.svg` +- `rifle_no4_mk_i_black.svg` +- `rifle_no4_mk_i_sniper_black.svg` +- `rifle_no5_mk_i_black.svg` +- `s_mine_black.svg` +- `satchel_charge_black.svg` +- `scoped_mosin_nagant_9130_black.svg` +- `scoped_svt40_black.svg` +- `sdkfz_121_luchs_black.svg` +- `sdkfz_161_panzer_iv_black.svg` +- `sdkfz_171_panther_black.svg` +- `sdkfz_181_tiger_1_black.svg` +- `sdkfz_234_puma_black.svg` +- `sdkfz_251_half_track_black.svg` +- `sherman_m4a3_75w_black.svg` +- `sherman_m4a3e2_76_black.svg` +- `sherman_m4a3e2_black.svg` +- `smle_no1_mk_iii_black.svg` +- `sten_gun_black.svg` +- `sten_gun_mk_ii_black.svg` +- `stg44_black.svg` +- `strafing_run_black.svg` +- `stuart_m5a1_black.svg` +- `sturmpanzer_iv_black.svg` +- `svt40_black.svg` +- `t34_76_black.svg` +- `t70_black.svg` +- `tellermine_43_black.svg` +- `tetrarch_black.svg` +- `thompson_black.svg` +- `tm35_at_mine_black.svg` +- `tokarev_tt33_black.svg` +- `walther_p38_black.svg` +- `webley_revolver_black.svg` +- `zis2_57mm_cannon_black.svg` +- `zis5_supply_black.svg` +- `zis5_transport_black.svg` + +## Inventory Findings + +- Tracked SVGs modified in `black/`: 29 existing SVGs. +- Tracked SVGs deleted in `black/`: `browing_m1919_black.svg`, `dp27_black.svg`, `flammenwefer41_black.svg`, `m1_carabine_black.svg`, `mosing_nagant_1891_black.svg`, `mosing_nagant_9130_black.svg`, `mosing_nagant_m38_black.svg`, `panzerchreck_black.svg`, `sten_mk_v_black.svg`. +- New/untracked SVGs in `black/`: 94 files, including corrected names and expanded vehicle, mine, commander, British, Canadian, Soviet and US assets. +- Duplicate by hash: `lee_enfield_jungle_carbine_black.svg` and `rifle_no5_mk_i_black.svg`. +- Suspicious legacy typo names are intentionally not used by runtime JS: `browing`, `mosing`, `panzerchreck`, `flammenwefer`, `m1_carabine`. + +## Mapping Corrections + +- `browing_m1919_black.svg` is replaced by `browning_m1919_black.svg`. +- `m1_carabine_black.svg` is replaced by `m1_carbine_black.svg`. +- `panzerchreck_black.svg` is replaced by `panzerschreck_black.svg`. +- `flammenwefer41_black.svg` is replaced by `flammenwerfer41_black.svg`. +- `mosing_nagant_*_black.svg` files are replaced by `mosin_nagant_*_black.svg`. +- `sten_mk_v_black.svg` is replaced by the available `sten_gun_black.svg` shared fallback. +- `dp27_black.svg` no longer exists; `DP-27` currently maps to `lewis_gun_black.svg` as the closest local top-feed LMG silhouette. +- The old `weapons/white/` fallback in `partida-actual.js` was removed from the operational path. +- `historico-partida.html` now loads the shared weapon resolver before `historico-partida.js`. +- `historico-partida.js` now renders local black icons for historical `top_weapons` and `death_by` lists when names resolve. + +## RCON Names Covered + +The runtime covers the 220 explicit RCON/AdminLog names in `CURRENT_MATCH_RCON_WEAPON_ICON_ENTRIES`, including: + +- Infantry examples: `GEWEHR 43`, `KARABINER 98K`, `KARABINER 98K x8`, `FG42`, `FG42 x4`, `M1 GARAND`, `M1 CARBINE`, `BROWNING M1919`, `STG44`, `MP40`, `MG34`, `MG42`, `BAZOOKA`, `PANZERSCHRECK`, `PIAT`, `PTRS-41`, `M1918A2 BAR`, `M3 GREASE GUN`, `M97 TRENCH GUN`, `M1A1 THOMPSON`, `M1928A1 THOMPSON`. +- Soviet examples: `MOSIN NAGANT 1891`, `MOSIN NAGANT 91/30`, `MOSIN NAGANT M38`, `SCOPED MOSIN NAGANT 91/30`, `SCOPED SVT40`, `SVT40`, `PPSH 41`, `PPSH 41 W/DRUM`, `TOKAREV TT33`, `NAGANT M1895`. +- British/Canadian examples: `Bren Gun`, `Boys Anti-tank Rifle`, `Sten Gun`, `Sten Gun Mk.II`, `Sten Gun Mk.V`, `Canadian Sten Mk.II`, `Lanchester`, `SMLE No.1 Mk III`, `Rifle No.4 Mk I`, `Rifle No.4 Mk I Sniper`, `Rifle No.5 Mk I`, `PIAT`, `Mills Bomb`, `No.82 Grenade`. +- Vehicles and mounted weapons: `Sd.Kfz.121 Luchs`, `Sd.Kfz.161 Panzer IV`, `Sd.Kfz.171 Panther`, `Sd.Kfz.181 Tiger 1`, `Sd.Kfz.234 Puma`, `Sd.Kfz 251 Half-track`, `Sherman M4A3(75)W`, `Sherman M4A3E2`, `Sherman M4A3E2(76)`, `Stuart M5A1`, `M3 Stuart Honey`, `M8 Greyhound`, `T34/76`, `T70`, `IS-1`, `KV-2`, `BA-10`, `Churchill Mk.III`, `Churchill Mk.VII`, `Cromwell`, `Firefly`, `Tetrarch`. +- Commander, explosives and mines: `BOMBING RUN`, `STRAFING RUN`, `PRECISION STRIKE`, `SATCHEL`, `SATCHEL CHARGE`, `M1A1 AT MINE`, `M2 AP MINE`, `TELLERMINE 43`, `S-MINE`, `POMZ AP MINE`, `TM-35 AT MINE`, `A.T. Mine G.S. Mk V`. +- Logistics vehicles: `GMC CCKW 353 (Supply)`, `GMC CCKW 363 (Supply)`, `GMC CCKW 363 (Transport)`, `Opel Blitz (Supply)`, `Opel Blitz (Transport)`, `ZIS-5 (Supply)`, `ZIS-5 (Transport)`, `Bedford OYD (Supply)`, `Bedford OYD (Transport)`, `Jeep`, `Jeep Willys`, `Kubelwagen`, `60L (Supply)`, `60L (Transport)`. +- Unknown: `UNKNOWN`. + +The full exact list remains in `frontend/assets/js/current-match-weapon-icons.js` and is validated by `scripts/validate-weapon-icon-mapping.js`. + +## Pending Names Without Dedicated Icon + +These are covered by controlled fallbacks but should get dedicated SVGs later if visual accuracy matters: + +- `UNKNOWN` +- `MOLOTOV` +- `No.77` +- `Daimler` +- `GAZ-67` +- `DP-27` +- `FairbairnSykes` +- `122MM HOWITZER [M1938 (M-30)]` +- `150MM HOWITZER [sFH 18]` +- `155MM HOWITZER [M114]` +- Generic towed artillery entries that currently reuse closest field-gun or vehicle silhouettes. + +## Alias Decisions + +- Important aliases remain explicit for common normalized names such as `g43`, `kar98k`, `kar98k x8`, `mp 40`, `m1 garand`, `m1 carbine`, `m1919`, `fg42 scoped`, `fg42 sniper`, `ppsh drum`, `scoped svt40`, `sniper mosin`, `m1a1 thompson`, `m1928 thompson`. +- Legacy typo filenames are not used as asset references. +- Runtime normalization is case-insensitive and strips accents, punctuation, hyphens, brackets and repeated separators into a stable lookup key. +- Vehicle-mounted weapons map to the specific platform icon when a platform SVG exists. +- Shared fallbacks are documented instead of guessed through broad substring matching. + +## Production/API Sampling + +Commands executed against production: + +```powershell +Invoke-RestMethod "https://comunidadhll.devzamode.es/api/current-match/kills?server=comunidad-hispana-01&limit=100" +Invoke-RestMethod "https://comunidadhll.devzamode.es/api/current-match/kills?server=comunidad-hispana-02&limit=100" +Invoke-RestMethod "https://comunidadhll.devzamode.es/api/current-match/players?server=comunidad-hispana-01" +Invoke-RestMethod "https://comunidadhll.devzamode.es/api/current-match/players?server=comunidad-hispana-02" +Invoke-RestMethod "https://comunidadhll.devzamode.es/api/historical/matches/detail?server=comunidad-hispana-01&match=1781023156:1781028555:purpleheartlanewarfare" +``` + +The endpoints responded, but at the time of this audit they did not expose weapon names in the sampled payloads. The implemented coverage therefore relies on the repository RCON weapon universe from the previous mapping work plus current frontend usage. + +## Validation Commands + +```powershell +node --check frontend/assets/js/current-match-weapon-icons.js +node --check frontend/assets/js/partida-actual.js +node --check frontend/assets/js/historico-partida.js +node scripts/validate-weapon-icon-mapping.js +git status --short --untracked-files=all +git diff --name-only +``` + +## Scope Confirmation + +- No backend file was modified for weapon icons. +- No RCON host, port, server config, `27001`, Elo/MMR or Comunidad Hispana #03 setting was changed. +- No clan asset was modified by this task. +- No asset outside `frontend/assets/img/weapons/black/` was modified for weapon icons. +- `frontend/assets/img/weapons/black - copia/` and `frontend/assets/img/weapons/black.zip` were not included. +- `tmp/` was not included. +- `ai/system-metrics.md` was not touched by this task; it remains a pre-existing local modification. diff --git a/frontend/assets/css/historico.css b/frontend/assets/css/historico.css index 36fc605..2f0c2d1 100644 --- a/frontend/assets/css/historico.css +++ b/frontend/assets/css/historico.css @@ -638,6 +638,48 @@ display: none; } +.historical-weapon-stat-list { + display: grid; + gap: 8px; +} + +.historical-weapon-stat-list li { + grid-template-columns: 78px minmax(0, 1fr) auto; + align-items: center; + gap: 10px; +} + +.historical-weapon-stat-list__icon-frame { + display: grid; + place-items: center; + width: 72px; + min-height: 28px; + padding: 3px 6px; + border: 1px solid rgba(81, 76, 62, 0.22); + border-radius: 6px; + background: linear-gradient(180deg, rgba(247, 242, 229, 0.96), rgba(226, 218, 198, 0.94)); +} + +.historical-weapon-stat-list__icon { + width: 100%; + height: 22px; + object-fit: contain; +} + +.historical-weapon-stat-list__fallback { + display: grid; + width: 100%; + height: 22px; + place-items: center; + color: rgba(49, 43, 31, 0.86); + font-size: 0.78rem; + font-weight: 800; +} + +.historical-weapon-stat-list__fallback[hidden] { + display: none; +} + .historical-table-shell { overflow-x: auto; } diff --git a/frontend/assets/img/weapons/black/60l_supply_black.svg b/frontend/assets/img/weapons/black/60l_supply_black.svg new file mode 100644 index 0000000..f7f9434 --- /dev/null +++ b/frontend/assets/img/weapons/black/60l_supply_black.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/60l_transport_black.svg b/frontend/assets/img/weapons/black/60l_transport_black.svg new file mode 100644 index 0000000..bf399de --- /dev/null +++ b/frontend/assets/img/weapons/black/60l_transport_black.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/at_mine_gs_mk_v_black.svg b/frontend/assets/img/weapons/black/at_mine_gs_mk_v_black.svg new file mode 100644 index 0000000..181269d --- /dev/null +++ b/frontend/assets/img/weapons/black/at_mine_gs_mk_v_black.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/ba10_black.svg b/frontend/assets/img/weapons/black/ba10_black.svg new file mode 100644 index 0000000..a028fdf --- /dev/null +++ b/frontend/assets/img/weapons/black/ba10_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/bazooka_black.svg b/frontend/assets/img/weapons/black/bazooka_black.svg index d8711de..6777d66 100644 --- a/frontend/assets/img/weapons/black/bazooka_black.svg +++ b/frontend/assets/img/weapons/black/bazooka_black.svg @@ -1,3 +1,5 @@ - - - + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/bedford_oyd_supply_black.svg b/frontend/assets/img/weapons/black/bedford_oyd_supply_black.svg new file mode 100644 index 0000000..bf8b37b --- /dev/null +++ b/frontend/assets/img/weapons/black/bedford_oyd_supply_black.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/bedford_oyd_transport_black.svg b/frontend/assets/img/weapons/black/bedford_oyd_transport_black.svg new file mode 100644 index 0000000..60c810b --- /dev/null +++ b/frontend/assets/img/weapons/black/bedford_oyd_transport_black.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/bishop_sp_25pdr_black.svg b/frontend/assets/img/weapons/black/bishop_sp_25pdr_black.svg new file mode 100644 index 0000000..1ea1922 --- /dev/null +++ b/frontend/assets/img/weapons/black/bishop_sp_25pdr_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/bombing_run_black.svg b/frontend/assets/img/weapons/black/bombing_run_black.svg new file mode 100644 index 0000000..c03d358 --- /dev/null +++ b/frontend/assets/img/weapons/black/bombing_run_black.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/boys_anti_tank_rifle_black.svg b/frontend/assets/img/weapons/black/boys_anti_tank_rifle_black.svg new file mode 100644 index 0000000..c4a13df --- /dev/null +++ b/frontend/assets/img/weapons/black/boys_anti_tank_rifle_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/bren_gun_black.svg b/frontend/assets/img/weapons/black/bren_gun_black.svg index 83f3cc0..8279ad5 100644 --- a/frontend/assets/img/weapons/black/bren_gun_black.svg +++ b/frontend/assets/img/weapons/black/bren_gun_black.svg @@ -1,3 +1,4 @@ - - - + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/browing_m1919_black.svg b/frontend/assets/img/weapons/black/browing_m1919_black.svg deleted file mode 100644 index 3b70295..0000000 --- a/frontend/assets/img/weapons/black/browing_m1919_black.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/assets/img/weapons/black/browning_m1919_black.svg b/frontend/assets/img/weapons/black/browning_m1919_black.svg new file mode 100644 index 0000000..f52c6ca --- /dev/null +++ b/frontend/assets/img/weapons/black/browning_m1919_black.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/canadian_sten_mk_ii_black.svg b/frontend/assets/img/weapons/black/canadian_sten_mk_ii_black.svg new file mode 100644 index 0000000..127be12 --- /dev/null +++ b/frontend/assets/img/weapons/black/canadian_sten_mk_ii_black.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/churchill_mk_iii_avre_black.svg b/frontend/assets/img/weapons/black/churchill_mk_iii_avre_black.svg new file mode 100644 index 0000000..3e89ca0 --- /dev/null +++ b/frontend/assets/img/weapons/black/churchill_mk_iii_avre_black.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/churchill_mk_iii_black.svg b/frontend/assets/img/weapons/black/churchill_mk_iii_black.svg new file mode 100644 index 0000000..06ebe32 --- /dev/null +++ b/frontend/assets/img/weapons/black/churchill_mk_iii_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/churchill_mk_vii_black.svg b/frontend/assets/img/weapons/black/churchill_mk_vii_black.svg new file mode 100644 index 0000000..af1d325 --- /dev/null +++ b/frontend/assets/img/weapons/black/churchill_mk_vii_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/colt_1911_black.svg b/frontend/assets/img/weapons/black/colt_1911_black.svg index 78e032c..439c697 100644 --- a/frontend/assets/img/weapons/black/colt_1911_black.svg +++ b/frontend/assets/img/weapons/black/colt_1911_black.svg @@ -1,3 +1,6 @@ - - - + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/cromwell_black.svg b/frontend/assets/img/weapons/black/cromwell_black.svg new file mode 100644 index 0000000..63e73ed --- /dev/null +++ b/frontend/assets/img/weapons/black/cromwell_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/crusader_mk_iii_black.svg b/frontend/assets/img/weapons/black/crusader_mk_iii_black.svg new file mode 100644 index 0000000..82bacd4 --- /dev/null +++ b/frontend/assets/img/weapons/black/crusader_mk_iii_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/dp27_black.svg b/frontend/assets/img/weapons/black/dp27_black.svg deleted file mode 100644 index b98d87b..0000000 --- a/frontend/assets/img/weapons/black/dp27_black.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/assets/img/weapons/black/enfield_no2_mk_i_black.svg b/frontend/assets/img/weapons/black/enfield_no2_mk_i_black.svg new file mode 100644 index 0000000..cac1288 --- /dev/null +++ b/frontend/assets/img/weapons/black/enfield_no2_mk_i_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/feldspaten_black.svg b/frontend/assets/img/weapons/black/feldspaten_black.svg new file mode 100644 index 0000000..3d5a32b --- /dev/null +++ b/frontend/assets/img/weapons/black/feldspaten_black.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/fg42_black.svg b/frontend/assets/img/weapons/black/fg42_black.svg new file mode 100644 index 0000000..19bbebd --- /dev/null +++ b/frontend/assets/img/weapons/black/fg42_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/fg42_x4_black.svg b/frontend/assets/img/weapons/black/fg42_x4_black.svg new file mode 100644 index 0000000..389d6ed --- /dev/null +++ b/frontend/assets/img/weapons/black/fg42_x4_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/firefly_black.svg b/frontend/assets/img/weapons/black/firefly_black.svg new file mode 100644 index 0000000..4adaa94 --- /dev/null +++ b/frontend/assets/img/weapons/black/firefly_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/flammenwefer41_black.svg b/frontend/assets/img/weapons/black/flammenwefer41_black.svg deleted file mode 100644 index c797876..0000000 --- a/frontend/assets/img/weapons/black/flammenwefer41_black.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/assets/img/weapons/black/flammenwerfer41_black.svg b/frontend/assets/img/weapons/black/flammenwerfer41_black.svg new file mode 100644 index 0000000..0305052 --- /dev/null +++ b/frontend/assets/img/weapons/black/flammenwerfer41_black.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/flare_gun_black.svg b/frontend/assets/img/weapons/black/flare_gun_black.svg new file mode 100644 index 0000000..088e5c5 --- /dev/null +++ b/frontend/assets/img/weapons/black/flare_gun_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/fn_inglis_no2_mk_i_black.svg b/frontend/assets/img/weapons/black/fn_inglis_no2_mk_i_black.svg new file mode 100644 index 0000000..011eb74 --- /dev/null +++ b/frontend/assets/img/weapons/black/fn_inglis_no2_mk_i_black.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/gewehr_black.svg b/frontend/assets/img/weapons/black/gewehr_black.svg index f49e4dd..1b0d755 100644 --- a/frontend/assets/img/weapons/black/gewehr_black.svg +++ b/frontend/assets/img/weapons/black/gewehr_black.svg @@ -1,3 +1,4 @@ - - - + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/gmc_cckw_353_supply_black.svg b/frontend/assets/img/weapons/black/gmc_cckw_353_supply_black.svg new file mode 100644 index 0000000..da952a4 --- /dev/null +++ b/frontend/assets/img/weapons/black/gmc_cckw_353_supply_black.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/gmc_cckw_363_supply_black.svg b/frontend/assets/img/weapons/black/gmc_cckw_363_supply_black.svg new file mode 100644 index 0000000..8c5e240 --- /dev/null +++ b/frontend/assets/img/weapons/black/gmc_cckw_363_supply_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/gmc_cckw_363_transport_black.svg b/frontend/assets/img/weapons/black/gmc_cckw_363_transport_black.svg new file mode 100644 index 0000000..b045733 --- /dev/null +++ b/frontend/assets/img/weapons/black/gmc_cckw_363_transport_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/half_track_black.svg b/frontend/assets/img/weapons/black/half_track_black.svg new file mode 100644 index 0000000..e90166f --- /dev/null +++ b/frontend/assets/img/weapons/black/half_track_black.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/is_1_black.svg b/frontend/assets/img/weapons/black/is_1_black.svg new file mode 100644 index 0000000..2c9f9fb --- /dev/null +++ b/frontend/assets/img/weapons/black/is_1_black.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/jeep_black.svg b/frontend/assets/img/weapons/black/jeep_black.svg new file mode 100644 index 0000000..00e5f6f --- /dev/null +++ b/frontend/assets/img/weapons/black/jeep_black.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/jeep_willys_black.svg b/frontend/assets/img/weapons/black/jeep_willys_black.svg new file mode 100644 index 0000000..804bd9f --- /dev/null +++ b/frontend/assets/img/weapons/black/jeep_willys_black.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/kar98k_black.svg b/frontend/assets/img/weapons/black/kar98k_black.svg index daf387c..86c520b 100644 --- a/frontend/assets/img/weapons/black/kar98k_black.svg +++ b/frontend/assets/img/weapons/black/kar98k_black.svg @@ -1,3 +1,4 @@ - - - + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/kar98k_x8_black.svg b/frontend/assets/img/weapons/black/kar98k_x8_black.svg index 5becf00..ca04e67 100644 --- a/frontend/assets/img/weapons/black/kar98k_x8_black.svg +++ b/frontend/assets/img/weapons/black/kar98k_x8_black.svg @@ -1,3 +1,4 @@ - - - + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/kubelwagen_black.svg b/frontend/assets/img/weapons/black/kubelwagen_black.svg new file mode 100644 index 0000000..0ef66d2 --- /dev/null +++ b/frontend/assets/img/weapons/black/kubelwagen_black.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/kv2_black.svg b/frontend/assets/img/weapons/black/kv2_black.svg new file mode 100644 index 0000000..7e7724d --- /dev/null +++ b/frontend/assets/img/weapons/black/kv2_black.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/lanchester_black.svg b/frontend/assets/img/weapons/black/lanchester_black.svg new file mode 100644 index 0000000..055e6d0 --- /dev/null +++ b/frontend/assets/img/weapons/black/lanchester_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/lee_enfield_jungle_carbine_black.svg b/frontend/assets/img/weapons/black/lee_enfield_jungle_carbine_black.svg new file mode 100644 index 0000000..265c93b --- /dev/null +++ b/frontend/assets/img/weapons/black/lee_enfield_jungle_carbine_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/lee_enfield_n4_black.svg b/frontend/assets/img/weapons/black/lee_enfield_n4_black.svg index 805e28e..c6923a6 100644 --- a/frontend/assets/img/weapons/black/lee_enfield_n4_black.svg +++ b/frontend/assets/img/weapons/black/lee_enfield_n4_black.svg @@ -1,3 +1,4 @@ - - - + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/lee_enfield_pattern_1914_black.svg b/frontend/assets/img/weapons/black/lee_enfield_pattern_1914_black.svg new file mode 100644 index 0000000..a96c42e --- /dev/null +++ b/frontend/assets/img/weapons/black/lee_enfield_pattern_1914_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/lee_enfield_pattern_1914_sniper_black.svg b/frontend/assets/img/weapons/black/lee_enfield_pattern_1914_sniper_black.svg new file mode 100644 index 0000000..787b911 --- /dev/null +++ b/frontend/assets/img/weapons/black/lee_enfield_pattern_1914_sniper_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/lewis_gun_black.svg b/frontend/assets/img/weapons/black/lewis_gun_black.svg new file mode 100644 index 0000000..ef50f5b --- /dev/null +++ b/frontend/assets/img/weapons/black/lewis_gun_black.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/luger_p08_black.svg b/frontend/assets/img/weapons/black/luger_p08_black.svg index 274abdf..b1c7c4a 100644 --- a/frontend/assets/img/weapons/black/luger_p08_black.svg +++ b/frontend/assets/img/weapons/black/luger_p08_black.svg @@ -1,3 +1,5 @@ - - - + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/m1903_springfield_black.svg b/frontend/assets/img/weapons/black/m1903_springfield_black.svg index 69bdbc6..c0a33dd 100644 --- a/frontend/assets/img/weapons/black/m1903_springfield_black.svg +++ b/frontend/assets/img/weapons/black/m1903_springfield_black.svg @@ -1,3 +1,4 @@ - - - + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/m1903_springfield_sniper_black.svg b/frontend/assets/img/weapons/black/m1903_springfield_sniper_black.svg new file mode 100644 index 0000000..0afcdc5 --- /dev/null +++ b/frontend/assets/img/weapons/black/m1903_springfield_sniper_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/m1918a2_bar_black.svg b/frontend/assets/img/weapons/black/m1918a2_bar_black.svg new file mode 100644 index 0000000..5a8d120 --- /dev/null +++ b/frontend/assets/img/weapons/black/m1918a2_bar_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/m1_57mm_cannon_black.svg b/frontend/assets/img/weapons/black/m1_57mm_cannon_black.svg new file mode 100644 index 0000000..1d85b47 --- /dev/null +++ b/frontend/assets/img/weapons/black/m1_57mm_cannon_black.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/m1_carabine_black.svg b/frontend/assets/img/weapons/black/m1_carabine_black.svg deleted file mode 100644 index e8cb265..0000000 --- a/frontend/assets/img/weapons/black/m1_carabine_black.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/assets/img/weapons/black/m1_carbine_black.svg b/frontend/assets/img/weapons/black/m1_carbine_black.svg new file mode 100644 index 0000000..714fdec --- /dev/null +++ b/frontend/assets/img/weapons/black/m1_carbine_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/m1_garand_black.svg b/frontend/assets/img/weapons/black/m1_garand_black.svg index 198d463..4974400 100644 --- a/frontend/assets/img/weapons/black/m1_garand_black.svg +++ b/frontend/assets/img/weapons/black/m1_garand_black.svg @@ -1,3 +1,4 @@ - - - + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/m1a1_at_mine_black.svg b/frontend/assets/img/weapons/black/m1a1_at_mine_black.svg new file mode 100644 index 0000000..2c50646 --- /dev/null +++ b/frontend/assets/img/weapons/black/m1a1_at_mine_black.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/m24_stielhandgranate_black.svg b/frontend/assets/img/weapons/black/m24_stielhandgranate_black.svg new file mode 100644 index 0000000..516af92 --- /dev/null +++ b/frontend/assets/img/weapons/black/m24_stielhandgranate_black.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/m2_ap_mine_black.svg b/frontend/assets/img/weapons/black/m2_ap_mine_black.svg new file mode 100644 index 0000000..c5fe9ae --- /dev/null +++ b/frontend/assets/img/weapons/black/m2_ap_mine_black.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/m2_flamethrower_black.svg b/frontend/assets/img/weapons/black/m2_flamethrower_black.svg index 13b196f..e549a3e 100644 --- a/frontend/assets/img/weapons/black/m2_flamethrower_black.svg +++ b/frontend/assets/img/weapons/black/m2_flamethrower_black.svg @@ -1,3 +1,6 @@ - - - + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/m3_grease_gun_black.svg b/frontend/assets/img/weapons/black/m3_grease_gun_black.svg index ed95d47..ecece53 100644 --- a/frontend/assets/img/weapons/black/m3_grease_gun_black.svg +++ b/frontend/assets/img/weapons/black/m3_grease_gun_black.svg @@ -1,3 +1,5 @@ - - - + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/m3_half_track_black.svg b/frontend/assets/img/weapons/black/m3_half_track_black.svg new file mode 100644 index 0000000..b6c48a7 --- /dev/null +++ b/frontend/assets/img/weapons/black/m3_half_track_black.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/m3_knife_black.svg b/frontend/assets/img/weapons/black/m3_knife_black.svg new file mode 100644 index 0000000..b031909 --- /dev/null +++ b/frontend/assets/img/weapons/black/m3_knife_black.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/m43_stielhandgranate_black.svg b/frontend/assets/img/weapons/black/m43_stielhandgranate_black.svg new file mode 100644 index 0000000..634caf8 --- /dev/null +++ b/frontend/assets/img/weapons/black/m43_stielhandgranate_black.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/m4a3_105mm_black.svg b/frontend/assets/img/weapons/black/m4a3_105mm_black.svg new file mode 100644 index 0000000..f61a5b4 --- /dev/null +++ b/frontend/assets/img/weapons/black/m4a3_105mm_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/m8_greyhound_black.svg b/frontend/assets/img/weapons/black/m8_greyhound_black.svg new file mode 100644 index 0000000..9d61bec --- /dev/null +++ b/frontend/assets/img/weapons/black/m8_greyhound_black.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/m97_black.svg b/frontend/assets/img/weapons/black/m97_black.svg index 36e1370..1fed7be 100644 --- a/frontend/assets/img/weapons/black/m97_black.svg +++ b/frontend/assets/img/weapons/black/m97_black.svg @@ -1,3 +1,4 @@ - - - + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/mg34_black.svg b/frontend/assets/img/weapons/black/mg34_black.svg index 73623ca..d37f502 100644 --- a/frontend/assets/img/weapons/black/mg34_black.svg +++ b/frontend/assets/img/weapons/black/mg34_black.svg @@ -1,3 +1,4 @@ - - - + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/mg42_black.svg b/frontend/assets/img/weapons/black/mg42_black.svg index 572d28e..d1567b9 100644 --- a/frontend/assets/img/weapons/black/mg42_black.svg +++ b/frontend/assets/img/weapons/black/mg42_black.svg @@ -1,3 +1,4 @@ - - - + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/mills_bomb_black.svg b/frontend/assets/img/weapons/black/mills_bomb_black.svg new file mode 100644 index 0000000..270fa55 --- /dev/null +++ b/frontend/assets/img/weapons/black/mills_bomb_black.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/mk2_grenade_black.svg b/frontend/assets/img/weapons/black/mk2_grenade_black.svg new file mode 100644 index 0000000..8049739 --- /dev/null +++ b/frontend/assets/img/weapons/black/mk2_grenade_black.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/mosin_nagant_1891_black.svg b/frontend/assets/img/weapons/black/mosin_nagant_1891_black.svg new file mode 100644 index 0000000..d8f4ea5 --- /dev/null +++ b/frontend/assets/img/weapons/black/mosin_nagant_1891_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/mosin_nagant_9130_black.svg b/frontend/assets/img/weapons/black/mosin_nagant_9130_black.svg new file mode 100644 index 0000000..f7326f6 --- /dev/null +++ b/frontend/assets/img/weapons/black/mosin_nagant_9130_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/mosin_nagant_m38_black.svg b/frontend/assets/img/weapons/black/mosin_nagant_m38_black.svg new file mode 100644 index 0000000..4c593d9 --- /dev/null +++ b/frontend/assets/img/weapons/black/mosin_nagant_m38_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/mosing_nagant_1891_black.svg b/frontend/assets/img/weapons/black/mosing_nagant_1891_black.svg deleted file mode 100644 index 9a43a30..0000000 --- a/frontend/assets/img/weapons/black/mosing_nagant_1891_black.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/assets/img/weapons/black/mosing_nagant_9130_black.svg b/frontend/assets/img/weapons/black/mosing_nagant_9130_black.svg deleted file mode 100644 index 0f4cb80..0000000 --- a/frontend/assets/img/weapons/black/mosing_nagant_9130_black.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/assets/img/weapons/black/mosing_nagant_m38_black.svg b/frontend/assets/img/weapons/black/mosing_nagant_m38_black.svg deleted file mode 100644 index 28752e1..0000000 --- a/frontend/assets/img/weapons/black/mosing_nagant_m38_black.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/assets/img/weapons/black/mp40_black.svg b/frontend/assets/img/weapons/black/mp40_black.svg index 1dc44c5..e8c35e0 100644 --- a/frontend/assets/img/weapons/black/mp40_black.svg +++ b/frontend/assets/img/weapons/black/mp40_black.svg @@ -1,3 +1,9 @@ - - - + + + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/mpl50_spade_black.svg b/frontend/assets/img/weapons/black/mpl50_spade_black.svg new file mode 100644 index 0000000..0439d10 --- /dev/null +++ b/frontend/assets/img/weapons/black/mpl50_spade_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/nagant_m1895_black.svg b/frontend/assets/img/weapons/black/nagant_m1895_black.svg index 90b609d..7192529 100644 --- a/frontend/assets/img/weapons/black/nagant_m1895_black.svg +++ b/frontend/assets/img/weapons/black/nagant_m1895_black.svg @@ -1,3 +1,4 @@ - - - + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/no82_grenade_black.svg b/frontend/assets/img/weapons/black/no82_grenade_black.svg new file mode 100644 index 0000000..21bbac0 --- /dev/null +++ b/frontend/assets/img/weapons/black/no82_grenade_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/opel_blitz_supply_black.svg b/frontend/assets/img/weapons/black/opel_blitz_supply_black.svg new file mode 100644 index 0000000..e2f5a73 --- /dev/null +++ b/frontend/assets/img/weapons/black/opel_blitz_supply_black.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/opel_blitz_transport_black.svg b/frontend/assets/img/weapons/black/opel_blitz_transport_black.svg new file mode 100644 index 0000000..f08186a --- /dev/null +++ b/frontend/assets/img/weapons/black/opel_blitz_transport_black.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/pak_40_75mm_black.svg b/frontend/assets/img/weapons/black/pak_40_75mm_black.svg new file mode 100644 index 0000000..9cc287e --- /dev/null +++ b/frontend/assets/img/weapons/black/pak_40_75mm_black.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/panzer_iii_ausf_n_black.svg b/frontend/assets/img/weapons/black/panzer_iii_ausf_n_black.svg new file mode 100644 index 0000000..90a5ae2 --- /dev/null +++ b/frontend/assets/img/weapons/black/panzer_iii_ausf_n_black.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/panzerchreck_black.svg b/frontend/assets/img/weapons/black/panzerchreck_black.svg deleted file mode 100644 index 76a0074..0000000 --- a/frontend/assets/img/weapons/black/panzerchreck_black.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/assets/img/weapons/black/panzerschreck_black.svg b/frontend/assets/img/weapons/black/panzerschreck_black.svg new file mode 100644 index 0000000..7e5715f --- /dev/null +++ b/frontend/assets/img/weapons/black/panzerschreck_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/piat_black.svg b/frontend/assets/img/weapons/black/piat_black.svg index cb2cd98..4781319 100644 --- a/frontend/assets/img/weapons/black/piat_black.svg +++ b/frontend/assets/img/weapons/black/piat_black.svg @@ -1,3 +1,8 @@ - - - + + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/pomz_ap_mine_black.svg b/frontend/assets/img/weapons/black/pomz_ap_mine_black.svg new file mode 100644 index 0000000..d5b836e --- /dev/null +++ b/frontend/assets/img/weapons/black/pomz_ap_mine_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/ppsh41_black.svg b/frontend/assets/img/weapons/black/ppsh41_black.svg index b83dbd0..587780e 100644 --- a/frontend/assets/img/weapons/black/ppsh41_black.svg +++ b/frontend/assets/img/weapons/black/ppsh41_black.svg @@ -1,3 +1,14 @@ - - - + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/ppsh_41w_drum_black.svg b/frontend/assets/img/weapons/black/ppsh_41w_drum_black.svg index e3c4e30..3ca1f5c 100644 --- a/frontend/assets/img/weapons/black/ppsh_41w_drum_black.svg +++ b/frontend/assets/img/weapons/black/ppsh_41w_drum_black.svg @@ -1,3 +1,5 @@ - - - + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/precision_strike_black.svg b/frontend/assets/img/weapons/black/precision_strike_black.svg new file mode 100644 index 0000000..864bbba --- /dev/null +++ b/frontend/assets/img/weapons/black/precision_strike_black.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/ptrs41_black.svg b/frontend/assets/img/weapons/black/ptrs41_black.svg index b6cf077..4bdc8f3 100644 --- a/frontend/assets/img/weapons/black/ptrs41_black.svg +++ b/frontend/assets/img/weapons/black/ptrs41_black.svg @@ -1,3 +1,7 @@ - - - + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/qf_6_pounder_black.svg b/frontend/assets/img/weapons/black/qf_6_pounder_black.svg new file mode 100644 index 0000000..b7ba60c --- /dev/null +++ b/frontend/assets/img/weapons/black/qf_6_pounder_black.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/rg42_grenade_black.svg b/frontend/assets/img/weapons/black/rg42_grenade_black.svg new file mode 100644 index 0000000..772c9e1 --- /dev/null +++ b/frontend/assets/img/weapons/black/rg42_grenade_black.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/rifle_no4_mk_i_black.svg b/frontend/assets/img/weapons/black/rifle_no4_mk_i_black.svg new file mode 100644 index 0000000..6736816 --- /dev/null +++ b/frontend/assets/img/weapons/black/rifle_no4_mk_i_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/rifle_no4_mk_i_sniper_black.svg b/frontend/assets/img/weapons/black/rifle_no4_mk_i_sniper_black.svg new file mode 100644 index 0000000..04547ec --- /dev/null +++ b/frontend/assets/img/weapons/black/rifle_no4_mk_i_sniper_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/rifle_no5_mk_i_black.svg b/frontend/assets/img/weapons/black/rifle_no5_mk_i_black.svg new file mode 100644 index 0000000..265c93b --- /dev/null +++ b/frontend/assets/img/weapons/black/rifle_no5_mk_i_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/s_mine_black.svg b/frontend/assets/img/weapons/black/s_mine_black.svg new file mode 100644 index 0000000..6619429 --- /dev/null +++ b/frontend/assets/img/weapons/black/s_mine_black.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/satchel_charge_black.svg b/frontend/assets/img/weapons/black/satchel_charge_black.svg new file mode 100644 index 0000000..3a000e8 --- /dev/null +++ b/frontend/assets/img/weapons/black/satchel_charge_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/scoped_mosin_nagant_9130_black.svg b/frontend/assets/img/weapons/black/scoped_mosin_nagant_9130_black.svg index fbb9b02..4d0474d 100644 --- a/frontend/assets/img/weapons/black/scoped_mosin_nagant_9130_black.svg +++ b/frontend/assets/img/weapons/black/scoped_mosin_nagant_9130_black.svg @@ -1,3 +1,8 @@ - - - + + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/scoped_svt40_black.svg b/frontend/assets/img/weapons/black/scoped_svt40_black.svg index 2a48ea9..ae55bb7 100644 --- a/frontend/assets/img/weapons/black/scoped_svt40_black.svg +++ b/frontend/assets/img/weapons/black/scoped_svt40_black.svg @@ -1,3 +1,6 @@ - - - + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/sdkfz_121_luchs_black.svg b/frontend/assets/img/weapons/black/sdkfz_121_luchs_black.svg new file mode 100644 index 0000000..b8f3822 --- /dev/null +++ b/frontend/assets/img/weapons/black/sdkfz_121_luchs_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/sdkfz_161_panzer_iv_black.svg b/frontend/assets/img/weapons/black/sdkfz_161_panzer_iv_black.svg new file mode 100644 index 0000000..34bd180 --- /dev/null +++ b/frontend/assets/img/weapons/black/sdkfz_161_panzer_iv_black.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/sdkfz_171_panther_black.svg b/frontend/assets/img/weapons/black/sdkfz_171_panther_black.svg new file mode 100644 index 0000000..5a7e231 --- /dev/null +++ b/frontend/assets/img/weapons/black/sdkfz_171_panther_black.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/sdkfz_181_tiger_1_black.svg b/frontend/assets/img/weapons/black/sdkfz_181_tiger_1_black.svg new file mode 100644 index 0000000..43c25ef --- /dev/null +++ b/frontend/assets/img/weapons/black/sdkfz_181_tiger_1_black.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/sdkfz_234_puma_black.svg b/frontend/assets/img/weapons/black/sdkfz_234_puma_black.svg new file mode 100644 index 0000000..e4f9e82 --- /dev/null +++ b/frontend/assets/img/weapons/black/sdkfz_234_puma_black.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/sdkfz_251_half_track_black.svg b/frontend/assets/img/weapons/black/sdkfz_251_half_track_black.svg new file mode 100644 index 0000000..f101ecd --- /dev/null +++ b/frontend/assets/img/weapons/black/sdkfz_251_half_track_black.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/sherman_m4a3_75w_black.svg b/frontend/assets/img/weapons/black/sherman_m4a3_75w_black.svg new file mode 100644 index 0000000..9ee3911 --- /dev/null +++ b/frontend/assets/img/weapons/black/sherman_m4a3_75w_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/sherman_m4a3e2_76_black.svg b/frontend/assets/img/weapons/black/sherman_m4a3e2_76_black.svg new file mode 100644 index 0000000..07842ff --- /dev/null +++ b/frontend/assets/img/weapons/black/sherman_m4a3e2_76_black.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/sherman_m4a3e2_black.svg b/frontend/assets/img/weapons/black/sherman_m4a3e2_black.svg new file mode 100644 index 0000000..31d77f6 --- /dev/null +++ b/frontend/assets/img/weapons/black/sherman_m4a3e2_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/smle_no1_mk_iii_black.svg b/frontend/assets/img/weapons/black/smle_no1_mk_iii_black.svg new file mode 100644 index 0000000..cf8ca1f --- /dev/null +++ b/frontend/assets/img/weapons/black/smle_no1_mk_iii_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/sten_gun_black.svg b/frontend/assets/img/weapons/black/sten_gun_black.svg new file mode 100644 index 0000000..114d2d5 --- /dev/null +++ b/frontend/assets/img/weapons/black/sten_gun_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/sten_gun_mk_ii_black.svg b/frontend/assets/img/weapons/black/sten_gun_mk_ii_black.svg new file mode 100644 index 0000000..50b97e0 --- /dev/null +++ b/frontend/assets/img/weapons/black/sten_gun_mk_ii_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/sten_mk_v_black.svg b/frontend/assets/img/weapons/black/sten_mk_v_black.svg deleted file mode 100644 index 0bf6fde..0000000 --- a/frontend/assets/img/weapons/black/sten_mk_v_black.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/assets/img/weapons/black/stg44_black.svg b/frontend/assets/img/weapons/black/stg44_black.svg index acf00fc..331f034 100644 --- a/frontend/assets/img/weapons/black/stg44_black.svg +++ b/frontend/assets/img/weapons/black/stg44_black.svg @@ -1,3 +1,5 @@ - - - + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/strafing_run_black.svg b/frontend/assets/img/weapons/black/strafing_run_black.svg new file mode 100644 index 0000000..211e7b4 --- /dev/null +++ b/frontend/assets/img/weapons/black/strafing_run_black.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/stuart_m5a1_black.svg b/frontend/assets/img/weapons/black/stuart_m5a1_black.svg new file mode 100644 index 0000000..d530f93 --- /dev/null +++ b/frontend/assets/img/weapons/black/stuart_m5a1_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/sturmpanzer_iv_black.svg b/frontend/assets/img/weapons/black/sturmpanzer_iv_black.svg new file mode 100644 index 0000000..2cb331b --- /dev/null +++ b/frontend/assets/img/weapons/black/sturmpanzer_iv_black.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/svt40_black.svg b/frontend/assets/img/weapons/black/svt40_black.svg index 74feee4..4b8c04e 100644 --- a/frontend/assets/img/weapons/black/svt40_black.svg +++ b/frontend/assets/img/weapons/black/svt40_black.svg @@ -1,3 +1,4 @@ - - - + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/t34_76_black.svg b/frontend/assets/img/weapons/black/t34_76_black.svg new file mode 100644 index 0000000..adb2641 --- /dev/null +++ b/frontend/assets/img/weapons/black/t34_76_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/t70_black.svg b/frontend/assets/img/weapons/black/t70_black.svg new file mode 100644 index 0000000..f4ada9f --- /dev/null +++ b/frontend/assets/img/weapons/black/t70_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/tellermine_43_black.svg b/frontend/assets/img/weapons/black/tellermine_43_black.svg new file mode 100644 index 0000000..6e849e8 --- /dev/null +++ b/frontend/assets/img/weapons/black/tellermine_43_black.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/tetrarch_black.svg b/frontend/assets/img/weapons/black/tetrarch_black.svg new file mode 100644 index 0000000..ddb38d0 --- /dev/null +++ b/frontend/assets/img/weapons/black/tetrarch_black.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/thompson_black.svg b/frontend/assets/img/weapons/black/thompson_black.svg index c2082e2..5604402 100644 --- a/frontend/assets/img/weapons/black/thompson_black.svg +++ b/frontend/assets/img/weapons/black/thompson_black.svg @@ -1,3 +1,4 @@ - - - + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/tm35_at_mine_black.svg b/frontend/assets/img/weapons/black/tm35_at_mine_black.svg new file mode 100644 index 0000000..0cf8880 --- /dev/null +++ b/frontend/assets/img/weapons/black/tm35_at_mine_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/tokarev_tt33_black.svg b/frontend/assets/img/weapons/black/tokarev_tt33_black.svg index 39885cc..47e8d39 100644 --- a/frontend/assets/img/weapons/black/tokarev_tt33_black.svg +++ b/frontend/assets/img/weapons/black/tokarev_tt33_black.svg @@ -1,3 +1,4 @@ - - - + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/walther_p38_black.svg b/frontend/assets/img/weapons/black/walther_p38_black.svg index 4c04457..9aac340 100644 --- a/frontend/assets/img/weapons/black/walther_p38_black.svg +++ b/frontend/assets/img/weapons/black/walther_p38_black.svg @@ -1,3 +1,6 @@ - - - + + + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/webley_revolver_black.svg b/frontend/assets/img/weapons/black/webley_revolver_black.svg index 3fd7b99..a9e0809 100644 --- a/frontend/assets/img/weapons/black/webley_revolver_black.svg +++ b/frontend/assets/img/weapons/black/webley_revolver_black.svg @@ -1,3 +1,4 @@ - - - + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/zis2_57mm_cannon_black.svg b/frontend/assets/img/weapons/black/zis2_57mm_cannon_black.svg new file mode 100644 index 0000000..fff57ca --- /dev/null +++ b/frontend/assets/img/weapons/black/zis2_57mm_cannon_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/zis5_supply_black.svg b/frontend/assets/img/weapons/black/zis5_supply_black.svg new file mode 100644 index 0000000..c4c65fd --- /dev/null +++ b/frontend/assets/img/weapons/black/zis5_supply_black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/assets/img/weapons/black/zis5_transport_black.svg b/frontend/assets/img/weapons/black/zis5_transport_black.svg new file mode 100644 index 0000000..c004955 --- /dev/null +++ b/frontend/assets/img/weapons/black/zis5_transport_black.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/assets/js/current-match-weapon-icons.js b/frontend/assets/js/current-match-weapon-icons.js index 6387d2c..153ddcf 100644 --- a/frontend/assets/js/current-match-weapon-icons.js +++ b/frontend/assets/js/current-match-weapon-icons.js @@ -374,11 +374,13 @@ const CURRENT_MATCH_EXTRA_WEAPON_ALIASES = Object.freeze({ "dp 27 lmg": "DP-27", "flammenwerfer 41": "FLAMMENWERFER 41", flammenwerfer: "FLAMMENWERFER 41", - flammenwefer41: "FLAMMENWERFER 41", "german flamethrower": "FLAMMENWERFER 41", "gewehr 43": "GEWEHR 43", gewehr43: "GEWEHR 43", g43: "GEWEHR 43", + fg42x4: "FG42 x4", + "fg42 scoped": "FG42 x4", + "fg42 sniper": "FG42 x4", kar98k: "KARABINER 98K", "kar 98k": "KARABINER 98K", kar98: "KARABINER 98K", @@ -401,7 +403,6 @@ const CURRENT_MATCH_EXTRA_WEAPON_ALIASES = Object.freeze({ "us sniper springfield": "M1903 SPRINGFIELD", "scoped springfield": "M1903 SPRINGFIELD", "m1 carbine": "M1 CARBINE", - "m1 carabine": "M1 CARBINE", "m1 garand": "M1 GARAND", garand: "M1 GARAND", "m2 flamethrower": "M2 FLAMETHROWER", @@ -429,10 +430,10 @@ const CURRENT_MATCH_EXTRA_WEAPON_ALIASES = Object.freeze({ "mosin nagant m38": "MOSIN NAGANT M38", "mosin m38": "MOSIN NAGANT M38", m38: "MOSIN NAGANT M38", + "mp 40": "MP40", "nagant m1895": "NAGANT M1895", "nagant revolver": "NAGANT M1895", panzerschreck: "PANZERSCHRECK", - panzerchreck: "PANZERSCHRECK", raketenpanzerbuchse: "PANZERSCHRECK", piat: "PIAT", "ppsh 41": "PPSH 41", diff --git a/frontend/assets/js/historico-partida.js b/frontend/assets/js/historico-partida.js index 23f8258..54f549e 100644 --- a/frontend/assets/js/historico-partida.js +++ b/frontend/assets/js/historico-partida.js @@ -622,12 +622,18 @@ function renderNamedCountSection(title, items) { return `
${escapeHtml(title)}
-
    +
      ${items .map((stat) => { const name = stat.name || stat.label || "Sin nombre"; const count = stat.count ?? stat.total ?? 0; - return `
    1. ${escapeHtml(name)}${escapeHtml(formatNumber(count))}
    2. `; + return ` +
    3. + ${renderHistoricalWeaponIcon(name)} + ${escapeHtml(name)} + ${escapeHtml(formatNumber(count))} +
    4. + `; }) .join("")}
    @@ -635,6 +641,47 @@ function renderNamedCountSection(title, items) { `; } +function renderHistoricalWeaponIcon(name) { + const weapon = resolveHistoricalWeapon(name); + if (!weapon.icon) { + return ` + + `; + } + return ` + + `; +} + +function resolveHistoricalWeapon(value) { + const runtimeWeaponIcons = globalThis.HLL_VIETNAM_CURRENT_MATCH_WEAPON_ICONS; + if (runtimeWeaponIcons?.lookup) { + const runtimeKey = runtimeWeaponIcons.normalize(value); + return runtimeWeaponIcons.lookup[runtimeKey] || { + label: String(value || runtimeWeaponIcons.unknown.label), + icon: runtimeWeaponIcons.unknown.icon, + }; + } + return { + label: String(value || "Arma desconocida"), + icon: "", + }; +} + function renderDirectMatchupsSection(matchups) { if (!matchups.length) { return ` diff --git a/frontend/assets/js/partida-actual.js b/frontend/assets/js/partida-actual.js index 13a1072..91f35bd 100644 --- a/frontend/assets/js/partida-actual.js +++ b/frontend/assets/js/partida-actual.js @@ -10,208 +10,6 @@ const CURRENT_MATCH_SCOREBOARDS = Object.freeze({ "comunidad-hispana-02": "https://scoreboard.comunidadhll.es:5443", }); const CURRENT_MATCH_KILL_FEED_LIMIT = 18; -const CURRENT_MATCH_WHITE_WEAPON_ICON_PATH = "./assets/img/weapons/white/"; -const CURRENT_MATCH_WHITE_WEAPON_ICON_FILES = Object.freeze([ - "bazooka_white.svg", - "bren_gun_white.svg", - "browing_m1919_white.svg", - "colt_1911_white.svg", - "dp27_white.svg", - "flammenwefer41_white.svg", - "gewehr_white.svg", - "kar98k_white.svg", - "kar98k_x8_white.svg", - "lee_enfield_n4_white.svg", - "luger_p08_white.svg", - "m1903_springfield_white.svg", - "m1_carabine_white.svg", - "m1_garand_white.svg", - "m2_flamethrower_white.svg", - "m3_grease_gun_white.svg", - "m97_white.svg", - "mg34_white.svg", - "mg42_white.svg", - "mosing_nagant_1891_white.svg", - "mosing_nagant_9130_white.svg", - "mosing_nagant_m38_white.svg", - "mp40_white.svg", - "nagant_m1895_white.svg", - "panzerchreck_white.svg", - "piat_white.svg", - "ppsh41_white.svg", - "ppsh_41w_drum_white.svg", - "ptrs41_white.svg", - "scoped_mosin_nagant_9130_white.svg", - "scoped_svt40_white.svg", - "sten_mk_v_white.svg", - "stg44_white.svg", - "svt40_white.svg", - "thompson_white.svg", - "tokarev_tt33_white.svg", - "walther_p38_white.svg", - "webley_revolver_white.svg", -]); -const CURRENT_MATCH_WEAPONS = Object.freeze({ - bazooka: currentMatchWeapon("Bazooka", "bazooka_white.svg"), - "m1 bazooka": currentMatchWeapon("M1 Bazooka", "bazooka_white.svg"), - "us bazooka": currentMatchWeapon("M1 Bazooka", "bazooka_white.svg"), - bren: currentMatchWeapon("Bren Gun", "bren_gun_white.svg"), - "bren gun": currentMatchWeapon("Bren Gun", "bren_gun_white.svg"), - m1919: currentMatchWeapon("Browning M1919", "browing_m1919_white.svg"), - "m1919 browning": currentMatchWeapon("Browning M1919", "browing_m1919_white.svg"), - "browning m1919": currentMatchWeapon("Browning M1919", "browing_m1919_white.svg"), - browning: currentMatchWeapon("Browning M1919", "browing_m1919_white.svg"), - "us tank machine gun": currentMatchWeapon("Browning M1919", "browing_m1919_white.svg"), - "us coaxial mg": currentMatchWeapon("Browning M1919", "browing_m1919_white.svg"), - "us vehicle mg": currentMatchWeapon("Browning M1919", "browing_m1919_white.svg"), - "coaxial m1919": currentMatchWeapon("Browning M1919", "browing_m1919_white.svg"), - "m1919 coaxial": currentMatchWeapon("Browning M1919", "browing_m1919_white.svg"), - colt: currentMatchWeapon("Colt 1911", "colt_1911_white.svg"), - "colt 1911": currentMatchWeapon("Colt 1911", "colt_1911_white.svg"), - "colt m1911": currentMatchWeapon("Colt 1911", "colt_1911_white.svg"), - m1911: currentMatchWeapon("Colt 1911", "colt_1911_white.svg"), - "m1911 pistol": currentMatchWeapon("Colt 1911", "colt_1911_white.svg"), - dp27: currentMatchWeapon("DP-27", "dp27_white.svg"), - "dp 27": currentMatchWeapon("DP-27", "dp27_white.svg"), - "dp 27 lmg": currentMatchWeapon("DP-27", "dp27_white.svg"), - "flammenwerfer 41": currentMatchWeapon("Flammenwerfer 41", "flammenwefer41_white.svg"), - flammenwerfer: currentMatchWeapon("Flammenwerfer 41", "flammenwefer41_white.svg"), - flammenwefer41: currentMatchWeapon("Flammenwerfer 41", "flammenwefer41_white.svg"), - "german flamethrower": currentMatchWeapon("Flammenwerfer 41", "flammenwefer41_white.svg"), - "gewehr 43": currentMatchWeapon("Gewehr 43", "gewehr_white.svg"), - gewehr43: currentMatchWeapon("Gewehr 43", "gewehr_white.svg"), - g43: currentMatchWeapon("Gewehr 43", "gewehr_white.svg"), - kar98k: currentMatchWeapon("KARABINER 98K", "kar98k_white.svg"), - "kar 98k": currentMatchWeapon("KARABINER 98K", "kar98k_white.svg"), - kar98: currentMatchWeapon("KARABINER 98K", "kar98k_white.svg"), - k98: currentMatchWeapon("KARABINER 98K", "kar98k_white.svg"), - "k98k": currentMatchWeapon("KARABINER 98K", "kar98k_white.svg"), - "scoped kar98k": currentMatchWeapon("Scoped Kar98k", "kar98k_x8_white.svg"), - "kar98k x8": currentMatchWeapon("Scoped Kar98k", "kar98k_x8_white.svg"), - "kar 98k x8": currentMatchWeapon("Scoped Kar98k", "kar98k_x8_white.svg"), - "german sniper kar98k": currentMatchWeapon("Scoped Kar98k", "kar98k_x8_white.svg"), - "sniper kar98k": currentMatchWeapon("Scoped Kar98k", "kar98k_x8_white.svg"), - "lee enfield no 4": currentMatchWeapon("Lee-Enfield No.4", "lee_enfield_n4_white.svg"), - "lee enfield no4": currentMatchWeapon("Lee-Enfield No.4", "lee_enfield_n4_white.svg"), - "lee enfield": currentMatchWeapon("Lee-Enfield No.4", "lee_enfield_n4_white.svg"), - enfield: currentMatchWeapon("Lee-Enfield No.4", "lee_enfield_n4_white.svg"), - luger: currentMatchWeapon("Luger P08", "luger_p08_white.svg"), - p08: currentMatchWeapon("Luger P08", "luger_p08_white.svg"), - "luger p08": currentMatchWeapon("Luger P08", "luger_p08_white.svg"), - "m1903 springfield": currentMatchWeapon("M1903 Springfield", "m1903_springfield_white.svg"), - springfield: currentMatchWeapon("M1903 Springfield", "m1903_springfield_white.svg"), - "us sniper springfield": currentMatchWeapon("M1903 Springfield", "m1903_springfield_white.svg"), - "scoped springfield": currentMatchWeapon("M1903 Springfield", "m1903_springfield_white.svg"), - "m1 carbine": currentMatchWeapon("M1 Carbine", "m1_carabine_white.svg"), - "m1 carabine": currentMatchWeapon("M1 Carbine", "m1_carabine_white.svg"), - "m1 garand": currentMatchWeapon("M1 Garand", "m1_garand_white.svg"), - garand: currentMatchWeapon("M1 Garand", "m1_garand_white.svg"), - "m2 flamethrower": currentMatchWeapon("M2 Flamethrower", "m2_flamethrower_white.svg"), - "us flamethrower": currentMatchWeapon("M2 Flamethrower", "m2_flamethrower_white.svg"), - "m3 grease gun": currentMatchWeapon("M3 Grease Gun", "m3_grease_gun_white.svg"), - "grease gun": currentMatchWeapon("M3 Grease Gun", "m3_grease_gun_white.svg"), - m97: currentMatchWeapon("Winchester M97", "m97_white.svg"), - "winchester m97": currentMatchWeapon("Winchester M97", "m97_white.svg"), - "trench gun": currentMatchWeapon("Winchester M97", "m97_white.svg"), - shotgun: currentMatchWeapon("Winchester M97", "m97_white.svg"), - mg34: currentMatchWeapon("MG34", "mg34_white.svg"), - "mg 34": currentMatchWeapon("MG34", "mg34_white.svg"), - "german tank machine gun": currentMatchWeapon("MG34", "mg34_white.svg"), - "german coaxial mg": currentMatchWeapon("MG34", "mg34_white.svg"), - "german vehicle mg": currentMatchWeapon("MG34", "mg34_white.svg"), - "coaxial mg34": currentMatchWeapon("MG34", "mg34_white.svg"), - "mg34 coaxial": currentMatchWeapon("MG34", "mg34_white.svg"), - mg42: currentMatchWeapon("MG42", "mg42_white.svg"), - "mg 42": currentMatchWeapon("MG42", "mg42_white.svg"), - "mosin nagant 1891": currentMatchWeapon("Mosin Nagant 1891", "mosing_nagant_1891_white.svg"), - "mosin 1891": currentMatchWeapon("Mosin Nagant 1891", "mosing_nagant_1891_white.svg"), - "mosin nagant 91 30": currentMatchWeapon("Mosin Nagant 91/30", "mosing_nagant_9130_white.svg"), - "mosin 9130": currentMatchWeapon("Mosin Nagant 91/30", "mosing_nagant_9130_white.svg"), - "mosin nagant 9130": currentMatchWeapon("Mosin Nagant 91/30", "mosing_nagant_9130_white.svg"), - "mosin nagant m38": currentMatchWeapon("Mosin Nagant M38", "mosing_nagant_m38_white.svg"), - "mosin m38": currentMatchWeapon("Mosin Nagant M38", "mosing_nagant_m38_white.svg"), - m38: currentMatchWeapon("Mosin Nagant M38", "mosing_nagant_m38_white.svg"), - mp40: currentMatchWeapon("MP40", "mp40_white.svg"), - "mp 40": currentMatchWeapon("MP40", "mp40_white.svg"), - "nagant m1895": currentMatchWeapon("Nagant M1895", "nagant_m1895_white.svg"), - "nagant revolver": currentMatchWeapon("Nagant M1895", "nagant_m1895_white.svg"), - panzerschreck: currentMatchWeapon("Panzerschreck", "panzerchreck_white.svg"), - panzerchreck: currentMatchWeapon("Panzerschreck", "panzerchreck_white.svg"), - raketenpanzerbuchse: currentMatchWeapon("Panzerschreck", "panzerchreck_white.svg"), - piat: currentMatchWeapon("PIAT", "piat_white.svg"), - "ppsh 41": currentMatchWeapon("PPSh-41", "ppsh41_white.svg"), - ppsh41: currentMatchWeapon("PPSh-41", "ppsh41_white.svg"), - ppsh: currentMatchWeapon("PPSh-41", "ppsh41_white.svg"), - "ppsh 41 drum": currentMatchWeapon("PPSh-41 Drum", "ppsh_41w_drum_white.svg"), - "ppsh 41 w drum": currentMatchWeapon("PPSh-41 Drum", "ppsh_41w_drum_white.svg"), - "ppsh drum": currentMatchWeapon("PPSh-41 Drum", "ppsh_41w_drum_white.svg"), - "ppsh41 drum": currentMatchWeapon("PPSh-41 Drum", "ppsh_41w_drum_white.svg"), - "ptrs 41": currentMatchWeapon("PTRS-41", "ptrs41_white.svg"), - ptrs41: currentMatchWeapon("PTRS-41", "ptrs41_white.svg"), - ptrs: currentMatchWeapon("PTRS-41", "ptrs41_white.svg"), - "scoped mosin nagant 91 30": currentMatchWeapon("Scoped Mosin Nagant 91/30", "scoped_mosin_nagant_9130_white.svg"), - "scoped mosin nagant 9130": currentMatchWeapon("Scoped Mosin Nagant 91/30", "scoped_mosin_nagant_9130_white.svg"), - "soviet sniper mosin": currentMatchWeapon("Scoped Mosin Nagant 91/30", "scoped_mosin_nagant_9130_white.svg"), - "sniper mosin": currentMatchWeapon("Scoped Mosin Nagant 91/30", "scoped_mosin_nagant_9130_white.svg"), - "scoped svt 40": currentMatchWeapon("Scoped SVT-40", "scoped_svt40_white.svg"), - "scoped svt40": currentMatchWeapon("Scoped SVT-40", "scoped_svt40_white.svg"), - "svt40 scoped": currentMatchWeapon("Scoped SVT-40", "scoped_svt40_white.svg"), - "sten mk v": currentMatchWeapon("Sten Mk V", "sten_mk_v_white.svg"), - sten: currentMatchWeapon("Sten Mk V", "sten_mk_v_white.svg"), - stg44: currentMatchWeapon("StG 44", "stg44_white.svg"), - "stg 44": currentMatchWeapon("StG 44", "stg44_white.svg"), - "sturmgewehr 44": currentMatchWeapon("StG 44", "stg44_white.svg"), - "svt 40": currentMatchWeapon("SVT-40", "svt40_white.svg"), - svt40: currentMatchWeapon("SVT-40", "svt40_white.svg"), - "m1a1 thompson": currentMatchWeapon("M1A1 Thompson", "thompson_white.svg"), - m1a1: currentMatchWeapon("M1A1 Thompson", "thompson_white.svg"), - "m1928 thompson": currentMatchWeapon("M1928 Thompson", "thompson_white.svg"), - thompson: currentMatchWeapon("Thompson", "thompson_white.svg"), - "tokarev tt 33": currentMatchWeapon("Tokarev TT-33", "tokarev_tt33_white.svg"), - "tokarev tt33": currentMatchWeapon("Tokarev TT-33", "tokarev_tt33_white.svg"), - tt33: currentMatchWeapon("Tokarev TT-33", "tokarev_tt33_white.svg"), - "walther p38": currentMatchWeapon("Walther P38", "walther_p38_white.svg"), - p38: currentMatchWeapon("Walther P38", "walther_p38_white.svg"), - webley: currentMatchWeapon("Webley Revolver", "webley_revolver_white.svg"), - "webley revolver": currentMatchWeapon("Webley Revolver", "webley_revolver_white.svg"), - unknown: { label: "Arma desconocida", icon: "" }, -}); - -validateCurrentMatchWeaponMapping(); - -function currentMatchWeapon(label, fileName) { - return { - label, - icon: `${CURRENT_MATCH_WHITE_WEAPON_ICON_PATH}${fileName}`, - }; -} - -function validateCurrentMatchWeaponMapping() { - const expectedIcons = new Set(CURRENT_MATCH_WHITE_WEAPON_ICON_FILES); - const mappedIcons = new Set(); - const invalidIcons = []; - Object.entries(CURRENT_MATCH_WEAPONS).forEach(([alias, weapon]) => { - if (!weapon.icon) { - return; - } - if (!weapon.icon.startsWith(CURRENT_MATCH_WHITE_WEAPON_ICON_PATH)) { - invalidIcons.push(`${alias}: ${weapon.icon}`); - return; - } - const fileName = weapon.icon.slice(CURRENT_MATCH_WHITE_WEAPON_ICON_PATH.length); - mappedIcons.add(fileName); - if (!expectedIcons.has(fileName)) { - invalidIcons.push(`${alias}: ${weapon.icon}`); - } - }); - const unmappedIcons = [...expectedIcons].filter((fileName) => !mappedIcons.has(fileName)); - if (unmappedIcons.length > 0 || invalidIcons.length > 0) { - console.warn("Current match weapon icon mapping needs review.", { - unmappedIcons, - invalidIcons, - }); - } -} document.addEventListener("DOMContentLoaded", () => { const params = new URLSearchParams(window.location.search); @@ -534,10 +332,9 @@ function resolveKillFeedWeapon(value) { icon: runtimeWeaponIcons.unknown.icon, }; } - const key = normalizeLookupText(value); - return CURRENT_MATCH_WEAPONS[key] || { - label: String(value || CURRENT_MATCH_WEAPONS.unknown.label), - icon: CURRENT_MATCH_WEAPONS.unknown.icon, + return { + label: String(value || "Arma desconocida"), + icon: "", }; } diff --git a/frontend/historico-partida.html b/frontend/historico-partida.html index 3ad3f3d..1d18ab9 100644 --- a/frontend/historico-partida.html +++ b/frontend/historico-partida.html @@ -160,6 +160,7 @@ + diff --git a/scripts/validate-weapon-icon-mapping.js b/scripts/validate-weapon-icon-mapping.js new file mode 100644 index 0000000..5db1be7 --- /dev/null +++ b/scripts/validate-weapon-icon-mapping.js @@ -0,0 +1,81 @@ +const fs = require("fs"); +const path = require("path"); +const vm = require("vm"); + +const repoRoot = path.resolve(__dirname, ".."); +const mappingPath = path.join( + repoRoot, + "frontend", + "assets", + "js", + "current-match-weapon-icons.js", +); +const assetDir = path.join( + repoRoot, + "frontend", + "assets", + "img", + "weapons", + "black", +); + +const source = fs.readFileSync(mappingPath, "utf8"); +const context = { + console: { + warn() {}, + }, +}; +vm.createContext(context); +vm.runInContext(source, context, { filename: mappingPath }); + +const runtime = context.HLL_VIETNAM_CURRENT_MATCH_WEAPON_ICONS; +if (!runtime) { + throw new Error("Weapon icon runtime was not exposed on globalThis."); +} + +const actualFiles = new Set( + fs.readdirSync(assetDir).filter((fileName) => fileName.endsWith(".svg")), +); +const declaredFiles = new Set(runtime.files); +const forbiddenLegacyTerms = [ + "browing", + "mosing", + "panzerchreck", + "flammenwefer", + "m1_carabine", +]; + +const errors = []; +runtime.files.forEach((fileName) => { + if (!actualFiles.has(fileName)) { + errors.push(`Declared SVG does not exist: ${fileName}`); + } +}); +actualFiles.forEach((fileName) => { + if (!declaredFiles.has(fileName)) { + errors.push(`Local SVG is not declared in runtime list: ${fileName}`); + } +}); +runtime.entries.forEach(([weapon, iconFile]) => { + if (!actualFiles.has(iconFile)) { + errors.push(`Mapping points to missing SVG: ${weapon} -> ${iconFile}`); + } +}); +forbiddenLegacyTerms.forEach((term) => { + if (source.includes(term)) { + errors.push(`Legacy typo term remains in runtime JS: ${term}`); + } +}); + +if (runtime.unknown?.icon && !runtime.unknown.icon.endsWith("precision_strike_black.svg")) { + errors.push(`Unexpected fallback icon: ${runtime.unknown.icon}`); +} + +if (errors.length > 0) { + errors.forEach((error) => console.error(error)); + process.exit(1); +} + +console.log( + `Weapon icon mapping OK: ${runtime.entries.length} RCON names, ${runtime.files.length} SVG files.`, +);