opt-cc/static/src/app/statistic/campaign-player-detail/campaign-player-detail.comp...

74 lines
1.9 KiB
TypeScript

import {Component} from "@angular/core";
import {ActivatedRoute} from "@angular/router";
import {CampaignPlayer} from "../../models/model-interfaces";
import {PlayerService} from "../../services/player-service/player.service";
import {ChartUtils} from "../../utils/chart-utils";
@Component({
selector: 'campaign-player-detail',
templateUrl: './campaign-player-detail.component.html',
styleUrls: ['./campaign-player-detail.component.css']
})
export class CampaignPlayerDetailComponent {
campaignPlayer: CampaignPlayer = {campaign: {}, players: []};
killData: any[] = [];
colorScheme = {
domain: ['#00ce12']
};
showRefLines = true;
showRefLabels = true;
refLines = [];
gradient = false;
xAxis = true;
yAxis = true;
legend = false;
legendTitle = '';
showXAxisLabel = true;
showYAxisLabel = true;
autoscale = false;
timeline = false;
roundDomains = true;
constructor(private route: ActivatedRoute,
private playerService: PlayerService) {
}
ngOnInit() {
this.route.params
.map(params => [params['id'], params['playerName']])
.flatMap(id => this.playerService.getCampaignPlayer(id[0], id[1]))
.subscribe(campaignPlayer => {
this.campaignPlayer = campaignPlayer;
this.assignKillData();
});
}
private assignKillData() {
let killObj = {
"name": "Kills",
"series": []
};
let total = 0;
for (let i = 0; i < this.campaignPlayer.players.length; i++) {
const warDateString = ChartUtils.getShortDateString(this.campaignPlayer.players[i].warId.date);
const warKills = this.campaignPlayer.players[i].kill;
killObj.series.push({
name: warDateString,
value: warKills
});
total += warKills;
}
this.killData = [killObj];
Object.assign(this, this.killData);
this.refLines.push({value: total / this.campaignPlayer.players.length, name: 'Durchschnitt'});
}
}