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 @@
-
-
-
+