From b3c68f72ba1688867d7ba2f24aa851dd981eae15 Mon Sep 17 00:00:00 2001 From: HardiReady Date: Sun, 10 Feb 2019 18:22:47 +0100 Subject: [PATCH] Optimize scoreboard SVGs; Add new transport stats to scoreboard (CC-33) --- static/src/app/app.component.ts | 2 + static/src/app/models/model-interfaces.ts | 2 + .../campaign-player-detail.component.ts | 2 +- .../campaign/highscore/highscore.component.ts | 2 +- .../war/scoreboard/scoreboard.component.css | 5 +- .../war/scoreboard/scoreboard.component.ts | 6 + static/src/app/utils/player-utils.ts | 20 ++- static/src/assets/i18n/statistics/de.json | 2 + static/src/assets/i18n/statistics/en.json | 2 + .../icon/stats/scoreboard/driver-distance.svg | 1 + .../icon/stats/scoreboard/travel-distance.svg | 1 + .../icon/stats/scoreboard/vehicle-air.svg | 134 +----------------- .../icon/stats/scoreboard/vehicle-heavy.svg | 42 +----- .../icon/stats/scoreboard/vehicle-light.svg | 54 +------ 14 files changed, 50 insertions(+), 225 deletions(-) create mode 100644 static/src/assets/icon/stats/scoreboard/driver-distance.svg create mode 100644 static/src/assets/icon/stats/scoreboard/travel-distance.svg diff --git a/static/src/app/app.component.ts b/static/src/app/app.component.ts index 0d9e62c..8884e07 100644 --- a/static/src/app/app.component.ts +++ b/static/src/app/app.component.ts @@ -65,6 +65,8 @@ export class AppComponent implements OnInit { 'vehicleAir': 'stats/scoreboard/vehicle-air', 'vehicleHeavy': 'stats/scoreboard/vehicle-heavy', 'vehicleLight': 'stats/scoreboard/vehicle-light', + 'travelDistance': 'stats/scoreboard/travel-distance', + 'driverDistance': 'stats/scoreboard/driver-distance', // --------LOCALE--------- 'flag-de': 'locale/de', 'flag-en': 'locale/en', diff --git a/static/src/app/models/model-interfaces.ts b/static/src/app/models/model-interfaces.ts index 4bb6b4b..60a7538 100644 --- a/static/src/app/models/model-interfaces.ts +++ b/static/src/app/models/model-interfaces.ts @@ -36,6 +36,8 @@ export interface Player { respawn?: number; flagTouch?: number; performance?: string; + travelDistance?: number; + driverDistance?: number; } export interface CampaignPlayer { diff --git a/static/src/app/statistic/campaign/campaign-player-detail/campaign-player-detail.component.ts b/static/src/app/statistic/campaign/campaign-player-detail/campaign-player-detail.component.ts index e0e1a6a..df27c68 100644 --- a/static/src/app/statistic/campaign/campaign-player-detail/campaign-player-detail.component.ts +++ b/static/src/app/statistic/campaign/campaign-player-detail/campaign-player-detail.component.ts @@ -53,7 +53,7 @@ export class CampaignPlayerDetailComponent implements OnInit { respawnDeathRatio = 0; maxRespawnDeathRatio = 1; - playerAttributeNameMap = PlayerUtils.attributeDisplayNames.slice(2, PlayerUtils.attributeDisplayNames.length); + playerAttributeNameMap = PlayerUtils.tmpAttributeDisplayNames.slice(2, PlayerUtils.tmpAttributeDisplayNames.length); constructor(private playerService: PlayerService, private translate: TranslateService) { diff --git a/static/src/app/statistic/campaign/highscore/highscore.component.ts b/static/src/app/statistic/campaign/highscore/highscore.component.ts index 144380b..dd3d208 100644 --- a/static/src/app/statistic/campaign/highscore/highscore.component.ts +++ b/static/src/app/statistic/campaign/highscore/highscore.component.ts @@ -24,7 +24,7 @@ export class StatisticHighScoreComponent implements OnInit { playersStored = {}; - playerAttributeDisplayNames = PlayerUtils.attributeDisplayNames.slice(2, PlayerUtils.attributeDisplayNames.length); + playerAttributeDisplayNames = PlayerUtils.tmpAttributeDisplayNames.slice(2, PlayerUtils.tmpAttributeDisplayNames.length); readonly fraction = Fraction; diff --git a/static/src/app/statistic/war/scoreboard/scoreboard.component.css b/static/src/app/statistic/war/scoreboard/scoreboard.component.css index af48369..7866a87 100644 --- a/static/src/app/statistic/war/scoreboard/scoreboard.component.css +++ b/static/src/app/statistic/war/scoreboard/scoreboard.component.css @@ -27,8 +27,9 @@ } .mat-column-kill, .mat-column-friendlyFire, .mat-column-revive, .mat-column-flagTouch, .mat-column-vehicleLight, -.mat-column-vehicleHeavy, .mat-column-vehicleAir, .mat-column-death, .mat-column-respawn, .mat-column-interact { - flex: 0 0 75px; +.mat-column-vehicleHeavy, .mat-column-vehicleAir, .mat-column-travelDistance, .mat-column-pilotDistance, +.mat-column-death, .mat-column-respawn, .mat-column-interact { + flex: 0 0 62px; } :host /deep/ .mat-table .mat-icon { diff --git a/static/src/app/statistic/war/scoreboard/scoreboard.component.ts b/static/src/app/statistic/war/scoreboard/scoreboard.component.ts index c5b2f96..e26843d 100644 --- a/static/src/app/statistic/war/scoreboard/scoreboard.component.ts +++ b/static/src/app/statistic/war/scoreboard/scoreboard.component.ts @@ -52,6 +52,12 @@ export class ScoreboardComponent implements OnChanges { ngOnChanges(changes: SimpleChanges) { if (changes.war) { + this.war.players.forEach(player => { + // meters to kilometer or fill with null, since optional + player.travelDistance = player.travelDistance ? Math.round(player.travelDistance /1000) : 0; + player.driverDistance = player.driverDistance ? Math.round(player.driverDistance /1000) : 0; + }); + this.rows = changes.war.currentValue.players; this.currentSort.active = 'kill'; this.sortScoreboardData(this.currentSort); diff --git a/static/src/app/utils/player-utils.ts b/static/src/app/utils/player-utils.ts index 984617d..7e551b7 100644 --- a/static/src/app/utils/player-utils.ts +++ b/static/src/app/utils/player-utils.ts @@ -1,5 +1,21 @@ export class PlayerUtils { + //TODO: drop this tmp collection, excluding player transport stats from campaign detail page and highscore page, + // adding valid procesing there + public static readonly tmpAttributeDisplayNames = [ + {prop: 'name', head: 'stats.scoreboard.header.player'}, + {prop: 'fraction', head: 'stats.scoreboard.header.fraction'}, + {prop: 'kill', head: 'stats.scoreboard.header.kill'}, + {prop: 'friendlyFire', head: 'stats.scoreboard.header.friendly.fire'}, + {prop: 'revive', head: 'stats.scoreboard.header.revive'}, + {prop: 'flagTouch', head: 'stats.scoreboard.header.capture'}, + {prop: 'vehicleLight', head: 'stats.scoreboard.header.vehicle.light'}, + {prop: 'vehicleHeavy', head: 'stats.scoreboard.header.vehicle.heavy'}, + {prop: 'vehicleAir', head: 'stats.scoreboard.header.vehicle.air'}, + {prop: 'death', head: 'stats.scoreboard.header.death'}, + {prop: 'respawn', head: 'stats.scoreboard.header.respawn'}, + ]; + public static readonly attributeDisplayNames = [ {prop: 'name', head: 'stats.scoreboard.header.player'}, {prop: 'fraction', head: 'stats.scoreboard.header.fraction'}, @@ -10,8 +26,10 @@ export class PlayerUtils { {prop: 'vehicleLight', head: 'stats.scoreboard.header.vehicle.light'}, {prop: 'vehicleHeavy', head: 'stats.scoreboard.header.vehicle.heavy'}, {prop: 'vehicleAir', head: 'stats.scoreboard.header.vehicle.air'}, + {prop: 'travelDistance', head: 'stats.scoreboard.header.travel.distance'}, + {prop: 'driverDistance', head: 'stats.scoreboard.header.driver.distance'}, {prop: 'death', head: 'stats.scoreboard.header.death'}, - {prop: 'respawn', head: 'stats.scoreboard.header.respawn'} + {prop: 'respawn', head: 'stats.scoreboard.header.respawn'}, ]; public static isSteamUUID(input: string): boolean { diff --git a/static/src/assets/i18n/statistics/de.json b/static/src/assets/i18n/statistics/de.json index 6105f77..7fc9d38 100644 --- a/static/src/assets/i18n/statistics/de.json +++ b/static/src/assets/i18n/statistics/de.json @@ -65,6 +65,8 @@ "stats.scoreboard.header.vehicle.air": "Fahrzeug (Luft)", "stats.scoreboard.header.death": "Tode", "stats.scoreboard.header.respawn": "Respawn", + "stats.scoreboard.header.travel.distance": "Passagier Flugdistanz (km)", + "stats.scoreboard.header.driver.distance": "Pilot Flugdistanz (km)", "stats.scoreboard.button.detail": "Kampagnenstatistik für {{name}}", "stats.highscore.filter.placholder": "Spielername (mehrere mit '&' trennen)", diff --git a/static/src/assets/i18n/statistics/en.json b/static/src/assets/i18n/statistics/en.json index 67bb20b..ea69fb9 100644 --- a/static/src/assets/i18n/statistics/en.json +++ b/static/src/assets/i18n/statistics/en.json @@ -72,6 +72,8 @@ "stats.scoreboard.header.vehicle.air": "Vehicle (Air)", "stats.scoreboard.header.death": "Death", "stats.scoreboard.header.respawn": "Respawn", + "stats.scoreboard.header.travel.distance": "Passenger Travel Distance (km)", + "stats.scoreboard.header.driver.distance": "Pilot Travel Distance (km)", "stats.scoreboard.button.detail": "Campaign statistics for {{name}}", "stats.highscore.filter.placholder": "Player Name (separate multiple using '&')", diff --git a/static/src/assets/icon/stats/scoreboard/driver-distance.svg b/static/src/assets/icon/stats/scoreboard/driver-distance.svg new file mode 100644 index 0000000..8549788 --- /dev/null +++ b/static/src/assets/icon/stats/scoreboard/driver-distance.svg @@ -0,0 +1 @@ + diff --git a/static/src/assets/icon/stats/scoreboard/travel-distance.svg b/static/src/assets/icon/stats/scoreboard/travel-distance.svg new file mode 100644 index 0000000..998be08 --- /dev/null +++ b/static/src/assets/icon/stats/scoreboard/travel-distance.svg @@ -0,0 +1 @@ + diff --git a/static/src/assets/icon/stats/scoreboard/vehicle-air.svg b/static/src/assets/icon/stats/scoreboard/vehicle-air.svg index a405315..fff99a0 100644 --- a/static/src/assets/icon/stats/scoreboard/vehicle-air.svg +++ b/static/src/assets/icon/stats/scoreboard/vehicle-air.svg @@ -1,130 +1,4 @@ - - - - - - - - - - + + + + diff --git a/static/src/assets/icon/stats/scoreboard/vehicle-heavy.svg b/static/src/assets/icon/stats/scoreboard/vehicle-heavy.svg index 965c887..cb198e7 100644 --- a/static/src/assets/icon/stats/scoreboard/vehicle-heavy.svg +++ b/static/src/assets/icon/stats/scoreboard/vehicle-heavy.svg @@ -1,39 +1,3 @@ - - - - - - - + + + diff --git a/static/src/assets/icon/stats/scoreboard/vehicle-light.svg b/static/src/assets/icon/stats/scoreboard/vehicle-light.svg index 52c5a1b..4fa984e 100644 --- a/static/src/assets/icon/stats/scoreboard/vehicle-light.svg +++ b/static/src/assets/icon/stats/scoreboard/vehicle-light.svg @@ -1,51 +1,3 @@ - - - - - + + +