From a997b3ba21f8d2a2cf51d8155285c7486de87fda Mon Sep 17 00:00:00 2001 From: HardiReady Date: Sun, 19 Aug 2018 22:35:40 +0200 Subject: [PATCH] * Use SVG icons for highscore and scoreboard table header (CC-52) * Fix fraction stats vehicle chart for legacy wars (CC-51) --- package.json | 2 +- static/src/app/app.component.ts | 25 ++- .../highscore/highscore.component.css | 25 ++- .../highscore/highscore.component.html | 6 +- .../fraction-stats.component.ts | 64 +++--- .../war/scoreboard/scoreboard.component.css | 21 +- .../war/scoreboard/scoreboard.component.html | 6 +- .../war/war-list/war-list.component.ts | 2 +- static/src/app/style/list-entry.css | 2 +- .../users/user-list/user-item.component.css | 1 - .../users/user-list/user-item.component.html | 5 +- static/src/assets/icon/{stats => }/award.svg | 0 static/src/assets/icon/stats/flagTouch.svg | 196 ----------------- static/src/assets/icon/stats/friendlyFire.svg | 198 ----------------- static/src/assets/icon/stats/kill.svg | 200 ------------------ static/src/assets/icon/stats/revive.svg | 198 ----------------- .../assets/icon/stats/scoreboard/death.svg | 18 ++ .../icon/stats/scoreboard/flagTouch.svg | 10 + .../icon/stats/scoreboard/friendlyFire.svg | 13 ++ .../src/assets/icon/stats/scoreboard/kill.svg | 180 ++++++++++++++++ .../icon/stats/{ => scoreboard}/respawn.svg | 146 ++++++------- .../assets/icon/stats/scoreboard/revive.svg | 10 + .../scoreboard}/round-assessment-24px.svg | 0 .../icon/stats/scoreboard/vehicleAir.svg | 130 ++++++++++++ .../icon/stats/scoreboard/vehicleHeavy.svg | 39 ++++ .../icon/stats/scoreboard/vehicleLight.svg | 51 +++++ static/src/assets/scoreboard/death.png | Bin 659 -> 0 bytes static/src/assets/scoreboard/flagTouch.png | Bin 3509 -> 0 bytes static/src/assets/scoreboard/friendlyFire.png | Bin 3764 -> 0 bytes static/src/assets/scoreboard/kill.png | Bin 3665 -> 0 bytes static/src/assets/scoreboard/respawn.png | Bin 678 -> 0 bytes static/src/assets/scoreboard/revive.png | Bin 3645 -> 0 bytes static/src/assets/scoreboard/vehicleAir.png | Bin 716 -> 0 bytes static/src/assets/scoreboard/vehicleHeavy.png | Bin 567 -> 0 bytes static/src/assets/scoreboard/vehicleLight.png | Bin 498 -> 0 bytes 35 files changed, 614 insertions(+), 934 deletions(-) rename static/src/assets/icon/{stats => }/award.svg (100%) delete mode 100644 static/src/assets/icon/stats/flagTouch.svg delete mode 100644 static/src/assets/icon/stats/friendlyFire.svg delete mode 100644 static/src/assets/icon/stats/kill.svg delete mode 100644 static/src/assets/icon/stats/revive.svg create mode 100644 static/src/assets/icon/stats/scoreboard/death.svg create mode 100644 static/src/assets/icon/stats/scoreboard/flagTouch.svg create mode 100644 static/src/assets/icon/stats/scoreboard/friendlyFire.svg create mode 100644 static/src/assets/icon/stats/scoreboard/kill.svg rename static/src/assets/icon/stats/{ => scoreboard}/respawn.svg (53%) create mode 100644 static/src/assets/icon/stats/scoreboard/revive.svg rename static/src/assets/icon/{ => stats/scoreboard}/round-assessment-24px.svg (100%) create mode 100644 static/src/assets/icon/stats/scoreboard/vehicleAir.svg create mode 100644 static/src/assets/icon/stats/scoreboard/vehicleHeavy.svg create mode 100644 static/src/assets/icon/stats/scoreboard/vehicleLight.svg delete mode 100644 static/src/assets/scoreboard/death.png delete mode 100644 static/src/assets/scoreboard/flagTouch.png delete mode 100644 static/src/assets/scoreboard/friendlyFire.png delete mode 100644 static/src/assets/scoreboard/kill.png delete mode 100644 static/src/assets/scoreboard/respawn.png delete mode 100644 static/src/assets/scoreboard/revive.png delete mode 100644 static/src/assets/scoreboard/vehicleAir.png delete mode 100644 static/src/assets/scoreboard/vehicleHeavy.png delete mode 100644 static/src/assets/scoreboard/vehicleLight.png diff --git a/package.json b/package.json index 82d6916..212fa65 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "opt-cc", - "version": "1.8.0", + "version": "1.8.1", "author": "Florian Hartwich ", "private": true, "scripts": { diff --git a/static/src/app/app.component.ts b/static/src/app/app.component.ts index aefd2a0..b104fc2 100644 --- a/static/src/app/app.component.ts +++ b/static/src/app/app.component.ts @@ -31,23 +31,28 @@ export class AppComponent implements OnInit { svgIcons = { 'add': 'outline-add_box-24px', 'add-user': 'twotone-person_add-24px', - 'edit': 'baseline-edit-24px', - 'delete': 'baseline-delete-24px', - 'stats-detail': 'round-assessment-24px', + 'arrow-up': 'baseline-arrow_upward-24px', 'chevron-left': 'baseline-chevron_left-24px', 'chevron-right': 'baseline-chevron_right-24px', - 'arrow-up': 'baseline-arrow_upward-24px', + 'delete': 'baseline-delete-24px', + 'edit': 'baseline-edit-24px', 'more-vert': 'baseline-more_vert-24px', // --------STATISTICS--------- 'award': 'stats/award', 'battle': 'stats/battle', - 'flagTouch': 'stats/flagTouch', - 'friendlyFire': 'stats/friendlyFire', 'highscore': 'stats/highscore', - 'kill': 'stats/kill', - 'respawn': 'stats/respawn', - 'revive': 'stats/respawn', 'stats-chart': 'stats/statsChart', + // --SCOREBOARD-- + 'death': 'stats/scoreboard/death', + 'flagTouch': 'stats/scoreboard/flagTouch', + 'friendlyFire': 'stats/scoreboard/friendlyFire', + 'kill': 'stats/scoreboard/kill', + 'respawn': 'stats/scoreboard/respawn', + 'revive': 'stats/scoreboard/revive', + 'stats-detail': 'stats/scoreboard/round-assessment-24px', + 'vehicleAir': 'stats/scoreboard/vehicleAir', + 'vehicleHeavy': 'stats/scoreboard/vehicleHeavy', + 'vehicleLight': 'stats/scoreboard/vehicleLight', }; version = 'v'.concat(require('./../../../package.json').version); @@ -87,7 +92,7 @@ export class AppComponent implements OnInit { initMaterialSvgIcons() { Object.keys(this.svgIcons).forEach(key => { const fileUri = '../assets/icon/'.concat(this.svgIcons[key]) - .concat('.svg'); + .concat('.svg'); this.iconRegistry.addSvgIcon(key, this.sanitizer.bypassSecurityTrustResourceUrl(fileUri)); }); } diff --git a/static/src/app/statistic/campaign/highscore/highscore.component.css b/static/src/app/statistic/campaign/highscore/highscore.component.css index 2f8a387..29d9027 100644 --- a/static/src/app/statistic/campaign/highscore/highscore.component.css +++ b/static/src/app/statistic/campaign/highscore/highscore.component.css @@ -26,11 +26,6 @@ h2 { width: 100%; } -table.mat-table img { - filter: invert(60%); - margin-left: -15px; -} - :host /deep/ table.mat-table > thead { position: absolute; width: 320px; @@ -46,6 +41,26 @@ table.mat-table img { text-indent: 14px; } +.mat-column-vehicleLight mat-icon.mat-icon { + width: 28px; + margin-bottom: 5px; +} + +.mat-column-vehicleHeavy mat-icon.mat-icon { + width: 33px; + margin-top: 5px; +} + +.mat-column-vehicleAir mat-icon.mat-icon { + width: 35px; + margin-bottom: 5px; +} + +:host /deep/ .mat-table .mat-icon { + color: #666666; + margin-left: -32px; +} + /* Table Scrollbar BEGIN */ .highscore-table-container::-webkit-scrollbar { diff --git a/static/src/app/statistic/campaign/highscore/highscore.component.html b/static/src/app/statistic/campaign/highscore/highscore.component.html index 5b0b146..41b3c5e 100644 --- a/static/src/app/statistic/campaign/highscore/highscore.component.html +++ b/static/src/app/statistic/campaign/highscore/highscore.component.html @@ -35,9 +35,9 @@ - {{attributeMap.head}} + + {{element[attributeMap.prop]}} diff --git a/static/src/app/statistic/war/fraction-stats/fraction-stats.component.ts b/static/src/app/statistic/war/fraction-stats/fraction-stats.component.ts index 47566cc..20755c4 100644 --- a/static/src/app/statistic/war/fraction-stats/fraction-stats.component.ts +++ b/static/src/app/statistic/war/fraction-stats/fraction-stats.component.ts @@ -21,7 +21,7 @@ export class FractionStatsComponent implements OnInit, OnChanges { @Input() logData: any; startDateObj: Date; - + load initialized: any; public activeChartSelect: string; @@ -274,40 +274,46 @@ export class FractionStatsComponent implements OnInit, OnChanges { const vehicleEntryDate = new Date(vehicleEntry.time); if (vehicleEntry.fraction === 'BLUFOR') { vehicleKillCountBlufor++; - switch (vehicleEntry.vehicleClass) { - case 'LIGHT': - vehicleLightCountBlufor++; - break; - case 'HEAVY': - vehicleHeavyCountBlufor++; - break; - case 'AIR': - vehicleAirCountBlufor++; - break; + if (vehicleEntry.vehicleClass) { + switch (vehicleEntry.vehicleClass) { + case 'LIGHT': + vehicleLightCountBlufor++; + break; + case 'HEAVY': + vehicleHeavyCountBlufor++; + break; + case 'AIR': + vehicleAirCountBlufor++; + break; + } } } else { vehicleKillCountOpfor++; - switch (vehicleEntry.vehicleClass) { - case 'LIGHT': - vehicleLightCountOpfor++; - break; - case 'HEAVY': - vehicleHeavyCountOpfor++; - break; - case 'AIR': - vehicleAirCountOpfor++; - break; + if (vehicleEntry.vehicleClass) { + switch (vehicleEntry.vehicleClass) { + case 'LIGHT': + vehicleLightCountOpfor++; + break; + case 'HEAVY': + vehicleHeavyCountOpfor++; + break; + case 'AIR': + vehicleAirCountOpfor++; + break; + } } } if (this.isTwoMinutesAhead(vehicleEntryDate, this.tmpVehicleData) || index === this.logData.vehicle.length - 1) { this.tmpVehicleData[0].series.push(ChartUtils.getSeriesEntry(vehicleEntryDate, vehicleKillCountBlufor)); this.tmpVehicleData[1].series.push(ChartUtils.getSeriesEntry(vehicleEntryDate, vehicleKillCountOpfor)); - this.tmpVehicleData[2].series.push(ChartUtils.getSeriesEntry(vehicleEntryDate, vehicleLightCountBlufor)); - this.tmpVehicleData[3].series.push(ChartUtils.getSeriesEntry(vehicleEntryDate, vehicleLightCountOpfor)); - this.tmpVehicleData[4].series.push(ChartUtils.getSeriesEntry(vehicleEntryDate, vehicleHeavyCountBlufor)); - this.tmpVehicleData[5].series.push(ChartUtils.getSeriesEntry(vehicleEntryDate, vehicleHeavyCountOpfor)); - this.tmpVehicleData[6].series.push(ChartUtils.getSeriesEntry(vehicleEntryDate, vehicleAirCountBlufor)); - this.tmpVehicleData[7].series.push(ChartUtils.getSeriesEntry(vehicleEntryDate, vehicleAirCountOpfor)); + if (vehicleEntry.vehicleClass) { + this.tmpVehicleData[2].series.push(ChartUtils.getSeriesEntry(vehicleEntryDate, vehicleLightCountBlufor)); + this.tmpVehicleData[3].series.push(ChartUtils.getSeriesEntry(vehicleEntryDate, vehicleLightCountOpfor)); + this.tmpVehicleData[4].series.push(ChartUtils.getSeriesEntry(vehicleEntryDate, vehicleHeavyCountBlufor)); + this.tmpVehicleData[5].series.push(ChartUtils.getSeriesEntry(vehicleEntryDate, vehicleHeavyCountOpfor)); + this.tmpVehicleData[6].series.push(ChartUtils.getSeriesEntry(vehicleEntryDate, vehicleAirCountBlufor)); + this.tmpVehicleData[7].series.push(ChartUtils.getSeriesEntry(vehicleEntryDate, vehicleAirCountOpfor)); + } } } this.addFinalTimeData(this.tmpVehicleData); @@ -396,7 +402,9 @@ export class FractionStatsComponent implements OnInit, OnChanges { this.tmpBudgetData[1].series.push(ChartUtils.getSeriesEntry(endDate, this.war.endBudgetOpfor)); } else { for (let j = 0; j < tmpCollection.length; j++) { - if (tmpCollection[j].series[tmpCollection[j].series.length - 1].name < endDate) { + // mayBe check is needed for logs that are simply not existent in older wars, i.e. vehicleKills + const maybeLast = tmpCollection[j].series[tmpCollection[j].series.length - 1]; + if (maybeLast && maybeLast.name < endDate) { tmpCollection[j].series.push( ChartUtils.getSeriesEntry(endDate, tmpCollection[j].series[tmpCollection[j].series.length - 1].value) ); diff --git a/static/src/app/statistic/war/scoreboard/scoreboard.component.css b/static/src/app/statistic/war/scoreboard/scoreboard.component.css index f6b1ccf..a2a28db 100644 --- a/static/src/app/statistic/war/scoreboard/scoreboard.component.css +++ b/static/src/app/statistic/war/scoreboard/scoreboard.component.css @@ -24,10 +24,6 @@ margin-top: -5px; } -table.mat-table img { - filter: invert(60%); -} - :host /deep/ table.mat-table > tbody { margin-top: 60px; display: block; @@ -47,12 +43,25 @@ table.mat-table img { text-indent: 9px; } +.mat-column-vehicleLight mat-icon.mat-icon { + width: 28px; + margin-bottom: 5px; +} + +.mat-column-vehicleHeavy mat-icon.mat-icon { + width: 33px; + margin-top: 5px; +} + +.mat-column-vehicleAir mat-icon.mat-icon { + width: 35px; + margin-bottom: 5px; +} + td.mat-cell:last-child, td.mat-footer-cell:last-child, th.mat-header-cell:last-child { padding-right: 0; } -/* MAT ICON BUTTON */ - :host /deep/ .mat-table .mat-icon { color: #666666; } diff --git a/static/src/app/statistic/war/scoreboard/scoreboard.component.html b/static/src/app/statistic/war/scoreboard/scoreboard.component.html index c5b0e10..9fc1427 100644 --- a/static/src/app/statistic/war/scoreboard/scoreboard.component.html +++ b/static/src/app/statistic/war/scoreboard/scoreboard.component.html @@ -21,9 +21,9 @@ - {{column.head}} + + {{element[column.prop]}} diff --git a/static/src/app/statistic/war/war-list/war-list.component.ts b/static/src/app/statistic/war/war-list/war-list.component.ts index a9f288d..84bed46 100644 --- a/static/src/app/statistic/war/war-list/war-list.component.ts +++ b/static/src/app/statistic/war/war-list/war-list.component.ts @@ -1,4 +1,4 @@ -import {AfterViewInit, Component, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core'; +import {Component, Input, OnChanges, SimpleChanges} from '@angular/core'; import {ActivatedRoute, Router} from '@angular/router'; import {Campaign, War} from '../../../models/model-interfaces'; import {WarService} from '../../../services/logs/war.service'; diff --git a/static/src/app/style/list-entry.css b/static/src/app/style/list-entry.css index 86a734a..dfb9485 100644 --- a/static/src/app/style/list-entry.css +++ b/static/src/app/style/list-entry.css @@ -12,7 +12,7 @@ div.list-entry:hover, a.list-entry:hover { } :host/deep/.list-entry mat-icon > svg { - color: #222222; + color: #666666; } .decoration-list-preview, .squad-list-preview { diff --git a/static/src/app/users/user-list/user-item.component.css b/static/src/app/users/user-list/user-item.component.css index 2769f96..458e2b3 100644 --- a/static/src/app/users/user-list/user-item.component.css +++ b/static/src/app/users/user-list/user-item.component.css @@ -1,5 +1,4 @@ .icon-award { - background: url(../../../assets/award.png); width: 27px; height: 42px; display: block; diff --git a/static/src/app/users/user-list/user-item.component.html b/static/src/app/users/user-list/user-item.component.html index 3e74387..9436a2c 100644 --- a/static/src/app/users/user-list/user-item.component.html +++ b/static/src/app/users/user-list/user-item.component.html @@ -13,9 +13,8 @@
- - + +
diff --git a/static/src/assets/icon/stats/award.svg b/static/src/assets/icon/award.svg similarity index 100% rename from static/src/assets/icon/stats/award.svg rename to static/src/assets/icon/award.svg diff --git a/static/src/assets/icon/stats/flagTouch.svg b/static/src/assets/icon/stats/flagTouch.svg deleted file mode 100644 index e73e0b2..0000000 --- a/static/src/assets/icon/stats/flagTouch.svg +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - - - - - - - - - - F - - F - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/static/src/assets/icon/stats/friendlyFire.svg b/static/src/assets/icon/stats/friendlyFire.svg deleted file mode 100644 index 0a9d201..0000000 --- a/static/src/assets/icon/stats/friendlyFire.svg +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - - - - - F - - F - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/static/src/assets/icon/stats/kill.svg b/static/src/assets/icon/stats/kill.svg deleted file mode 100644 index 44c90ff..0000000 --- a/static/src/assets/icon/stats/kill.svg +++ /dev/null @@ -1,200 +0,0 @@ - - - - - - - - - - - - - - - - - - - - F - - F - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/static/src/assets/icon/stats/revive.svg b/static/src/assets/icon/stats/revive.svg deleted file mode 100644 index e29fba7..0000000 --- a/static/src/assets/icon/stats/revive.svg +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - - - - - F - - F - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/static/src/assets/icon/stats/scoreboard/death.svg b/static/src/assets/icon/stats/scoreboard/death.svg new file mode 100644 index 0000000..02d7993 --- /dev/null +++ b/static/src/assets/icon/stats/scoreboard/death.svg @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/static/src/assets/icon/stats/scoreboard/flagTouch.svg b/static/src/assets/icon/stats/scoreboard/flagTouch.svg new file mode 100644 index 0000000..bef8ada --- /dev/null +++ b/static/src/assets/icon/stats/scoreboard/flagTouch.svg @@ -0,0 +1,10 @@ + + + + + diff --git a/static/src/assets/icon/stats/scoreboard/friendlyFire.svg b/static/src/assets/icon/stats/scoreboard/friendlyFire.svg new file mode 100644 index 0000000..ae71c2f --- /dev/null +++ b/static/src/assets/icon/stats/scoreboard/friendlyFire.svg @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/static/src/assets/icon/stats/scoreboard/kill.svg b/static/src/assets/icon/stats/scoreboard/kill.svg new file mode 100644 index 0000000..af9346d --- /dev/null +++ b/static/src/assets/icon/stats/scoreboard/kill.svg @@ -0,0 +1,180 @@ + + + + + + + + F + + F + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/src/assets/icon/stats/respawn.svg b/static/src/assets/icon/stats/scoreboard/respawn.svg similarity index 53% rename from static/src/assets/icon/stats/respawn.svg rename to static/src/assets/icon/stats/scoreboard/respawn.svg index cb50c5e..82fea66 100644 --- a/static/src/assets/icon/stats/respawn.svg +++ b/static/src/assets/icon/stats/scoreboard/respawn.svg @@ -1,38 +1,38 @@ - - + - - - - + + - - F - - F + + F + + F - + @@ -43,32 +43,28 @@ S164-162.4,48.8-162.4z M48.8,216.1c-93.9,0-170-76.1-170-170s76.1-170,170-170s170,76.1,170,170S142.7,216.1,48.8,216.1z"/> - - - - - - - + + + @@ -82,49 +78,41 @@ L140,153c1.6,4.3,5.5,7.4,10.1,7.9C154.8,161.1,159.1,158.7,161.2,154.7z"/> - - - - - + + - - - - - - - - - + + + + + - - - - - - - - - + + + + + - - + - - - - - - - - - - - - - - - - - + + + + diff --git a/static/src/assets/icon/stats/scoreboard/revive.svg b/static/src/assets/icon/stats/scoreboard/revive.svg new file mode 100644 index 0000000..1dae119 --- /dev/null +++ b/static/src/assets/icon/stats/scoreboard/revive.svg @@ -0,0 +1,10 @@ + + + + + diff --git a/static/src/assets/icon/round-assessment-24px.svg b/static/src/assets/icon/stats/scoreboard/round-assessment-24px.svg similarity index 100% rename from static/src/assets/icon/round-assessment-24px.svg rename to static/src/assets/icon/stats/scoreboard/round-assessment-24px.svg diff --git a/static/src/assets/icon/stats/scoreboard/vehicleAir.svg b/static/src/assets/icon/stats/scoreboard/vehicleAir.svg new file mode 100644 index 0000000..a405315 --- /dev/null +++ b/static/src/assets/icon/stats/scoreboard/vehicleAir.svg @@ -0,0 +1,130 @@ + + + + + + + + + + diff --git a/static/src/assets/icon/stats/scoreboard/vehicleHeavy.svg b/static/src/assets/icon/stats/scoreboard/vehicleHeavy.svg new file mode 100644 index 0000000..965c887 --- /dev/null +++ b/static/src/assets/icon/stats/scoreboard/vehicleHeavy.svg @@ -0,0 +1,39 @@ + + + + + + + diff --git a/static/src/assets/icon/stats/scoreboard/vehicleLight.svg b/static/src/assets/icon/stats/scoreboard/vehicleLight.svg new file mode 100644 index 0000000..52c5a1b --- /dev/null +++ b/static/src/assets/icon/stats/scoreboard/vehicleLight.svg @@ -0,0 +1,51 @@ + + + + + diff --git a/static/src/assets/scoreboard/death.png b/static/src/assets/scoreboard/death.png deleted file mode 100644 index 8b5e5bb61e51adfbb883779b5f6b8f089880c379..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 659 zcmV;E0&M+>P)Dq}HU?s|X(eQf)UOIk*dVerakFl&aeNyeG4h2O|SY~IX!BSX-E!+qTIopaAU_ndRz z4U*_5Mf92eEeC3~+7K`WJO)aD%q7oF8PhpQ>XdIuT2(r&8rzZGR6x004w4omRn$3E zBrRAsp97K>m7NyT?1z*xyaIgAnP&yyOV%V@?m?n2=c$4_J#e6{jkF_Z0wJdZYPZp} z2!tL)AmllMQeqcbcAm76$$>SGdx^QXKzsr=wv1ysYk4~1jHJ42`lY0~dcA&C(xjw~ zM7?iFnzU@rSXp-_Pb0b^X#wCp+7`q~GTG*1R!e*4ej>zpgQuas;0o%3r`< zp-@QX!VgzT>-(_l9Ab`iY$Nj#tT>caN%tg8G#ZVfq-ja-kMXo+6UJ7pyOJjYXFZ++ z9s%1?6b%4lz%X#z@>js~D2igB0gPHFX(Ll3x(MvFkzevyZi5*CzGW@LUEra=8$R=v z$Lqj=c|B44O=Gd{Zk`CVXcTw=6oH$-b)W)lSw0S&2i^g1fDisd+V15a(Gw@tGf4+0 z-2DfZ$=HtU4tCL6zdOXk?ry_Q##R^n={XtO*+tRCyI=(P3cLWSuJfX0o4}AW|1NMj zC3%min+WUxPl5ZuN9VwRWf#17(U_gnhyaqtLkOE~s;4RGS_on5RNe(PywnD=)Xn1E tRzZu;NSZz2Hk`GrD|_Mph?;1ElMg302r;d#O&$C~MJ;xc)WlF@I+&E1Oea=Qqj5qT`u4uSRHA8{ zn>lXxz2EzP{NC^Xe~+~V`Ew_vK9Gta$OLC@b`ktVwQus>@UK!^`z3770 zK#S(iK{H8)u|A3*nVYt5Je+r|;J)U=({j3BD^33FLU3kbf$wbBdgtPGsJq?K@|M%F z)pKuPPyN?v8v@gx{^Xg2nRC1Bms9EzyW1KazZ`$pvwdIg=wlvySGUvCyJL0X>Z|Vd z>JK*U`TX>`$=+=V4f)&NsBW)9(q^tWKBaFUxuMt9dC7EQsGdsSm6w=N-Z>3Cye9Si z!)My=CX@d3>MP6Ae%#QO|1q65e|Fo8L(>XU zSy`bV$1eve>H!sEz@{JQJgi4W!KPnGy9ig%0V>7ZS{W4A=9lob%Xvo7XFY+=3bD|D zAE+D}^7{e`8?x!cc3JqW4dZ$=3{jWc^pOp9y9!W;Bmpcuc@gq)EEttT!BNeFgQWs z6oo+qrmPI8TnGy&88HjlK;dOEsESem)hu!zsYU7kC`_fFA@@1!BoK7P91W#o@O!>-WdeikedmBZ}sBOSDq5G6?V@ zph#6R4|1xZ$BbBDidqClsJVmX5FTF~tdvwqsg%YbAwGQ*6{_eR!=W~F6BLBRF`(K^ z92#UDGT>B6E|DZ(Ogja!*ieT9&0Hu31gS=OR7*Pw2icqoYSYzw6CB90N zl(s%nU4q0z8}Yqh86I$?QSe|SCD0gUG%=XfED)I2W90>tnPMoKj#-;8i?F~s-)O5^ zR06apcsMg4EEddT1Rjh4Ff@JB_*Q1&ySQrLOiPNgkriVtugKkaGzN*NekqCcqQu~Pl%5Dc3nO_hP;bu^J zRMQn3jDgQp%`N;!ZT$z&uAS_t7JA;RG>CjMtf2* zSP^~liD|L;=)JV6*e1Uza*87Y=yM-|Eb^m$;k$ z(c8J~{=zBUm;2UE-qN7E=i&05U2_`kb-F@(68_w0#=qRS_fXTuSCdz*D?i?Iv}ex6 z@ed@M?HOx!6+J!4xXE#!ly2AAjhd z4-Oq_Ja27c>W(=MboWx1k|(WrD68jl;iu=?TIXGPvu^3Uy)DGd!HP;Mn%P zo7H>L4L>9T}hulwr8`!!c~A%jUXS0}kYx={Z2*9%`-lJ^xi{p96?^BZ<$432wy z#c$s0_amA4Cr>|ByZNuiD|y8XG2JAN_zde`v! cYTY*p{rLI&SG~wx*ZwPT=HzGZnNz;%-`xMn&;S4c diff --git a/static/src/assets/scoreboard/friendlyFire.png b/static/src/assets/scoreboard/friendlyFire.png deleted file mode 100644 index e69f7c5db07ae7f86864994e38806d938644f1ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3764 zcmcgv2~-nj9uGtisRvjst{2n5BDPMB$vG1uV1gJh$PpDh7Uv2~Nis1rKtL=j}rcZzp6)373 zD-tEXzGhWR#{TRfi(5vdwKYtOxX|Gmlap;fwQsq3=29rX$yl?+Y+OSOc5bcuIclYI z)U2;x3>}lcFZHK>^Tll&UoyVjKWy3g>u;S$M;-}jBu>AzC}+{N{HC%KuW$XX{Y;E) zZKyYE?K@>nrJ|@Yb3Yq)zAM6e+R}VQ_4%DDBz8lFIBrh!2>RJqBagKl-x#jwbLj2* z7orAvH)fqxM@>oDSa)YccBK2hDC6Lb`B8=5Gn^rIIojIaT^KTX)a(-PjGBQb3%acB zo9Ke$R}xa=SM_~kluG-l)1~h(3LdcGjmy zq>MAf6r_3@q*YUg>1%%=zHt3vU>9C#rJA*_ogq){O#9o6SFS#jG_Xq4`uUV!uH_{k z0FmtHnpD7vMAA6n4)MH`TqY7lzQkDb`FzV{jAR{BT!^pK<8T4ANR*W9ap7bM%|irT z#5fI-uI3gA#83vwbhSlpaT)1iW>Te_&a2F_l9eSSN=cH(LrESC2yoCm4tX4QCx>|q z5}#ZQybHrJ3FL$DB?gHLBgHx#K{Uswl>v(azC9AnSu0$$ESKikQa4Gb zl>v=$-G*^|F8v@hPp}-ogNt3oEYEVqY%f6wPCpb1p0V|!P?&iLN_&`Ipu$WL>cWg} z8s}NJm1XVS+{x~?4Kf;`#OaKaV#~R)g4+Q&ZNholAOSSe!EzOhpjL$%Qz$Tn=6N}S z$>n~i1rU?MdAuiB4e(Y(fgu`9{VDA zc-%?SW|KhzOqDVWg=sXDR;iNXFrt;)V4PCnFhLPIm?8*7NoWu`f@-_hn^>|`pp>xQ zUtJVS0vW+vU@El^wP^_ztRrzbtg)#yuny5FU>mMRR5mSQQ>%z>X;a(`C~(}~Q>tJU z1td}guA${xElenB0+!Q24xv)oU__->&;)^MZEA%CdZ5?H+F7@Sr9jM;J;%+Uf4f;5 zV+RxdvVYLWC6K@g44462!i6d{NPtk^V7@?Td#Qg=DfeA6h42Uf3LXb|FhAAFfMg&N zNZ=LbvosI1IAD=RtyZc7Hek8KL6|m5fbdIKa({Ku^k} z=LX*F4CE_b3@80gkOGToN)i}m9zlgC3%Xxyc`*&b^&9;5!#LK)m*Z|awFtzxI|aQ| zkE}P-IlSz*4M$K!g94ty1d0N#=~Qx9r^XT3hEgg-ZIe?98U*uS4foX=C`?3+snG7i z{QZUpB$LIsvxo*8l}z&QyFybWrA3t}Op%}xf&DnF(xz0Fs2t*e%&_y zr>>B!vy684pp*-D<6x_$-JC&UbF&Tzce(5g>8mVRnUf0aV8Nn=courlqIwM(MZ1|E z`R}PEXae+K)c07nJz2;6Kc`4093cGVFZ*?8@PC{9ahxb*#r!p zmBV$GN!FYpU)+DXX2~LW-15zxC0{0-H8rnWdTd&ngINA*S=#E=sitMFn2(C1P1&YC zseQt}-DIi#XzBNhrI`nAoR-#x$2-El3bSvyzb>VA{b+N2{7~_|n)M6UU#l5DxG~gxJu#bT z*mW`Is5X>O*q4P=Y!lDwQ|Voi(oDv@KXg~IfgL|KusA zUuR!i|4Wsvv1utO;k%eml3TB|4Sr7?KA^*FIur?&48L0B9lzgGa`Cf1D+?~j=2&L+ zYx=&jV<%qvGV#}y-=v*K-iRLgTwKODUK=G;}$HQ&svI`+ZMrVmwVW=Bmz{0&TT zA}ed++{{Z;p+VR6leHE1LS60KOU3&eMmhJKc;Dtdtx3N$_CUtjxPLUR7}RD>+{owa zA!gghmSLs+?`*!Y>d1TRWB+pb-A}hQTBTJ-ewHnaj;7B|xE&d$8=3db3zeVBH&pLv zSi9?z{?AF__J~_E9foVsx6gU|?cWuxo-(p}P3vnR{c{#LXIJTm{>1IfTd*f&yl4Ou zap=Xi>Ed;vM?~#p#7S|?*p_ESg_2EmYrWpX<36@#w9f8$lWY&US>3hLAu4WKRL?6< ziKkbaH?`|rORm=bY3RHUn)gJ1A38cLVS#Am7~5Xsy6TfHHuW#ETO}W^PHwaoc4i)a dKAQ{OzRfaIRlUYBTliCCPRlZFoiJzNKLHO^FdqN_ diff --git a/static/src/assets/scoreboard/kill.png b/static/src/assets/scoreboard/kill.png deleted file mode 100644 index 478172716bd91960234f1ef369bc2d1d3f03b98a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3665 zcmcIn32+nF8D7fg(S{J*_Ay&QDK$A{9Z9bW4GG27IE@o!lS(`f6+MB1nRcHo8TnJt z2?RyyCnCs%hIOwr7yh|q=(6Tfd51U8PQG^4Gk$uB>+GSIEx-IVYTsd6yUSu)=lH3x zyY8!u)xwx(FD;Ud&p(uVD`jEg;cfM%m(u#J4Bve{OpQK~@TTM3>r1CEy<^`IINh-O z@5jy$cQ(pG#f@77JF1Y3@e4i}5x$umI%jRVp+53;9hv!7VPaNU(LPXcfNnG?i<74 zb9aESDL>gb$uPV$H@I0*H*3V?-&}XJdPWYq$<*4oCY|TKgn{qn?VG#g_OR?hbx6yR zY4`8U%sC1pnc^uZ^&yBNOS%(+TXO;kl3LH(?0&m-D$R;+1tY~*5p;VX8bPvif*yvg z1b);3%6Y*czuD9*M|sX5pQEwjR*wl(@CCJAFtfJU#@1G{6erJl8qE&UP=Fiw88qm2 z2|hY#kVoXw@Ld{K%FzhKUulp>6Kc1XpeE4^P>n*1v4omLb(Dh8;uNW#gpxR+Q{p-$ zp~7&2#`Zs=TgKHMA6mFosw?bP?HIrFozd7vD!CLayteGX2uT;a!4aRhO04>vJo1ZAZSAS z6i(7O9)(&VF*(N1^ag7n-bNBMsioDb2f!l7J8K>Zb3 zv_v4kPIGqY32$crYYSb*I$0-&Aq*kqC9aQVM(x{nEbzu_cBYAKR}Y@sLubL!PNrq?he=AlTuSEOrxXp7(=Pmm_w=}mI6*Sqvo6}8P8$w96Ypb z{9j#RMIivZy(r~jybRoGf!Ak{JH4VCWjr1i&qgXs84$SG4i+z3)GwkvEvnCualp&> z%71SyaTCxVQQsrk_IMq$54L@~v;SBrQc4GiX!$F@-5H|a=4c$Bkunq6nCXZ0fXC$@ z+^K2U{Nvlf4{O{}{o?<+0Z5#QINs|d)jb4{XVPo@TnInnCrco}D)qv1<8y%w;PRL!8Jxurco^VZ5_=V~=Us?O*_2;XvT)cRBe-Uza z;%oDdf0L8(=}uhNbz?1wf;nY#7Q0)+<4$Jrwo?bT9F}#h-NIYujIGLhQ%2CqliDV2 z%3c)uyv3Lnn0kBipboibO#6VlR3Kql=(U#e)~DyLYrzJ%(mq|Vutv6CNPLn$xC5kY zlzp83Nnmj}-)NLwQiYXQ%}q&ks9$36lNBk0j}{!jyDCTJ57CzoX->TVi76M+*`I%b~~wf!|(RpI-U9#RgL4bP9Wm^m$s}AHJeUNzuwF@{Hrmi=+5qqNx!0+ zp06ug*1A!a(26-PcZ_FO|8=AFj|UQx1p7y}$*mpx_hv2Lx~jo^s^)sm%9?)bpB(%C zl!Ozr?TZKBc{^e9O2?F<>hQR?k>`st^l3XcbnRA7TW(Z#e2iRa`0YizEWe;g*D~qk ztfj_(4?WiZ?kfLGVNgbU>a&S2G~Q3-4IO{0$TPMilwGjwOUp(S)IO$c^cUCK-wIvc z)xjnww@>+M@4JPSU(Vlga%BCOBJ{LyRfbPr6C6E4-f?iHdfvbb4RgB&YNu}R9J#Lc i+JQ3%WqXHwk$!fk{!feT<1(dxES9`t^X@5SFa8HM=mCEK diff --git a/static/src/assets/scoreboard/respawn.png b/static/src/assets/scoreboard/respawn.png deleted file mode 100644 index 40c8020545590c8c8cee954bdfd635a48784f7d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 678 zcmV;X0$KfuP)Lq)C7Rdl6oY4GsZlR&Fzr1PtsmV zJ0%sJ=}^+7q(_p*B~2J(=F&tr3;YCL135dE2QC3K_}M)00yvn4z$eF10ayz>Tx6m5 zz4(5m-~`Z-fGq+gU@Aspv|6p^dGfh#c* z7kmlqN=RcJ7zWM&w}GKXeu5w<0B3>7`uG71_z>9OQDmbF1?u7Nu7kUov~_Vnmq)eV z0P;<2N6o?ZxbsO-%uAY%o$r^Du1h*4X@3}o!*;x}&=~VU(lux3kPquV;3%*q2!a(r zyVZiU%DLUiz>{Usd|Su>wMJX;KNinPnzh{yF9JX}urfm)1z)yn99eyrQ3l$a8u;v! z0qnOISd{^XJx=>^BLcrAO*s9N84wt8+G9Q`JMN@x5-2Vq{ezCLufTd=Iez5;F9U@X zi+9@q7VIL><_kU&li%}AE?xx29sCTiwb=+tj)Mre2W<1e9R{Xj0Su$(76H9I)Ef&fA2`>%daZumR2iUlzF;e_2vVHU;d?M8={h>I1F>gt0y1rwS7m@8%f`dF;VO3)v`wR56mg4bjt0yUH||9 M07*qoM6N<$f-FZSn*aa+ diff --git a/static/src/assets/scoreboard/revive.png b/static/src/assets/scoreboard/revive.png deleted file mode 100644 index e8b826f2658c7d0f2613a6456faa75c1af261ad0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3645 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 K^Y+PQ3;zRpDFfF4 diff --git a/static/src/assets/scoreboard/vehicleAir.png b/static/src/assets/scoreboard/vehicleAir.png deleted file mode 100644 index b3c409755f288b5c7d807f54e8a9c6e0993866a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 716 zcmV;-0yF)IP)kdg00002VoOIv0RM-N z%)bBt0)S_p~pJ(Th9QH$31pT4`izNJ;47NgrSV z*VO-EdUlf*hguf=J~sM**B#DvaD>X3^`QrIlIcv~erN&%7Z^edSHtD5QziW9E~X24 zmD}e_UFR?WXM57yw%XxM;#J$O(KtNO>AI2!9;o%auw9(;cd6gCl&*E$j4Si zPhW$peHH;fW3yMS^{`1WVSl1_QpUg{52{~mu_MF1(zLO6)%u8y)q5Q{-x~M$qf5a= z00;TVCB1CVT_{2|mv~JZ%SrN`PKqdDM0l4ynEne83#lj{imb8}tg^;&j&hB+Oyu6y ykY2X_>r>V(HVdLLYVnS(Z2x~PB%xOX4$%!G6fPn;TEEEK>Rg0*FU}dFNimi>H z{sKE8rH#FfKOkMIAYzeND2kFsf?yDX8178&ZokJOdm2pQnS=w2ePG#b=9~AMnRgZ{ zDk>`eH`==A*iISS*~J-=^c3(ASQTb7m>0eaU-F3Nc0ub(00R--gogsg1#1zDy^t@(2Xq2Ht1H3_U>10p;A<_Sai9!t=^$`EgS)^bV7Abkz(@u^3WyAj z7qF0nLMMYpM5JF8*sN?#2M1t6m<%`_a2c2c#(+A|1eSnz!t;PR;b6cFFe)?yhPJyj z&?-M3=MneI3-s>MM~y;93LQ^+QazjWj=JCmZFfPT)7`V}CE!nmP0b4(OB*6u?u{k& zbt;Q{kvyWYrHr)*+Ipgo$#KI8jkMDcc62!DZTmo>Pdhriqq<^~szPt5AJnwZ zyr0x(Ej_wr758#Mp@##`0LOs3keBVbSUO@l;NA|Uej_{pUgZ(XU2At&_`Vs_D0lmH zbx~bbSJZj+N?-q)t7WU&zu!Yi#|xc&Ukakdg00002VoOIv0RM-N z%)bBt0jo(wK~zY`-Ic#f)NvTcU!U*y$h*2sL$p(rh#&`TD#9s*2-<4x4~Phd7Kf&2 zZfHqpa%gC1u^}8XaA>e1sAz}~8>E^dql@tFtGpWSI{aGad0%zu89$%rdGUFEyq^#3 zy}1jB{YEgEMwyL7elCeRr_! z-V1m`O?>6F`OTiWW~K2u52(^h!Sh^3V&-_l5m)HrOZd4(5hVaF(t-4m&brJu26)I* z-h|iw9bS97C!Fx3bE^Jw-GAHFR0=g(0G#9k<9y{*i$V=;02nji7-N(uGEM>Lsk;@n zrsM#;!URJcYO}u)2=-exo4s@dA_A)!MS7ZB5RveMwTxS1#C;K6yx=`aCP0b)9D`gU zpMBXxJfoLN#^{(h3RNm>Po($gVVL7wYn;4gwWhY)8=AA^ly_WCHEhv$&f49W+67e; z3-uxPm@9SHHID*#HU&77(o685k9_XMx^@IS=}qr@*U^TcmKx!YTW$?E9ST@-!DT-= oZ?TObF@>?q!-ie?oBnJ24O1FEc4|^c6aWAK07*qoM6N<$f