Add war playerCount + stats
parent
9070964adb
commit
dad3cbe067
|
@ -24,6 +24,18 @@ const WarSchema = new Schema({
|
||||||
set: v => Math.round(v),
|
set: v => Math.round(v),
|
||||||
required: true
|
required: true
|
||||||
},
|
},
|
||||||
|
playersBlufor: {
|
||||||
|
type: Number,
|
||||||
|
get: v => Math.round(v),
|
||||||
|
set: v => Math.round(v),
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
playersOpfor: {
|
||||||
|
type: Number,
|
||||||
|
get: v => Math.round(v),
|
||||||
|
set: v => Math.round(v),
|
||||||
|
required: true
|
||||||
|
},
|
||||||
bestPlayerId: {
|
bestPlayerId: {
|
||||||
type: mongoose.Schema.Types.ObjectId,
|
type: mongoose.Schema.Types.ObjectId,
|
||||||
ref: 'Player',
|
ref: 'Player',
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
h3 {
|
h3 {
|
||||||
width: 920px;
|
width: 920px;
|
||||||
margin-bottom: 50px;
|
margin-left: 25%;
|
||||||
margin-left: 25%
|
}
|
||||||
|
|
||||||
|
.chart-container {
|
||||||
|
width: 1200px;
|
||||||
|
margin-left: 25%;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
<h3>Statistik</h3>
|
<h3>Punkte</h3>
|
||||||
|
|
||||||
<div style="width: 1200px; margin-left: 25%">
|
<div class="chart-container">
|
||||||
|
|
||||||
<ngx-charts-line-chart
|
<ngx-charts-line-chart
|
||||||
[view]="[1050, 400]"
|
[view]="[1050, 400]"
|
||||||
[scheme]="colorScheme"
|
[scheme]="colorScheme"
|
||||||
[results]="chartData"
|
[results]="playerData"
|
||||||
[gradient]="false"
|
[gradient]="false"
|
||||||
[xAxis]="true"
|
[xAxis]="true"
|
||||||
[yAxis]="true"
|
[yAxis]="true"
|
||||||
|
@ -20,3 +20,26 @@
|
||||||
</ngx-charts-line-chart>
|
</ngx-charts-line-chart>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<h3 style="margin-top: 370px;">Spielerzahlen</h3>
|
||||||
|
|
||||||
|
<div class="chart-container">
|
||||||
|
|
||||||
|
<ngx-charts-line-chart
|
||||||
|
[view]="[1050, 350]"
|
||||||
|
[scheme]="colorScheme"
|
||||||
|
[results]="pointData"
|
||||||
|
[gradient]="false"
|
||||||
|
[xAxis]="true"
|
||||||
|
[yAxis]="true"
|
||||||
|
[legend]="true"
|
||||||
|
[legendTitle]="''"
|
||||||
|
[showXAxisLabel]="true"
|
||||||
|
[showYAxisLabel]="true"
|
||||||
|
[xAxisLabel]="'Schlachtdatum'"
|
||||||
|
[yAxisLabel]="'Anzahl Spieler'"
|
||||||
|
[autoScale]="true"
|
||||||
|
(select)="onSelect($event)">
|
||||||
|
</ngx-charts-line-chart>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
|
@ -10,10 +10,11 @@ import {WarService} from "../services/war-service/war.service";
|
||||||
})
|
})
|
||||||
export class StatisticComponent {
|
export class StatisticComponent {
|
||||||
|
|
||||||
chartData: any[] = [];
|
pointData: any[] = [];
|
||||||
|
playerData: any[] = [];
|
||||||
|
|
||||||
colorScheme = {
|
colorScheme = {
|
||||||
domain: ['#0000FF', '#B22222', '#595DC7', '#B25D62']
|
domain: ['#0000FF', '#B22222']
|
||||||
};
|
};
|
||||||
|
|
||||||
constructor(private appComponent: AppComponent,
|
constructor(private appComponent: AppComponent,
|
||||||
|
@ -31,7 +32,7 @@ export class StatisticComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
initChart(wars: any[]) {
|
initChart(wars: any[]) {
|
||||||
let updateObj = [
|
let pointsObj = [
|
||||||
{
|
{
|
||||||
"name": "NATO",
|
"name": "NATO",
|
||||||
"series": []
|
"series": []
|
||||||
|
@ -39,43 +40,49 @@ export class StatisticComponent {
|
||||||
{
|
{
|
||||||
"name": "CSAT",
|
"name": "CSAT",
|
||||||
"series": []
|
"series": []
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Anz. Spieler NATO",
|
|
||||||
"series": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Anz. Spieler CSAT",
|
|
||||||
"series": []
|
|
||||||
}];
|
}];
|
||||||
|
let playersObj = [
|
||||||
|
{
|
||||||
|
"name": "NATO",
|
||||||
|
"series": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "CSAT",
|
||||||
|
"series": []
|
||||||
|
}
|
||||||
|
];
|
||||||
for (let i = wars.length - 1; i >= 0; i--) {
|
for (let i = wars.length - 1; i >= 0; i--) {
|
||||||
let isoDate = wars[i].date.slice(0, 10);
|
const isoDate = wars[i].date.slice(0, 10);
|
||||||
let dayDate = parseInt(isoDate.slice(8, 10)) + 1;
|
const dayDate = parseInt(isoDate.slice(8, 10)) + 1;
|
||||||
let warDateString = (dayDate < 10 ? "0" + dayDate : dayDate) + '.'
|
const warDateString = (dayDate < 10 ? "0" + dayDate : dayDate) + '.'
|
||||||
+ isoDate.slice(5, 7) + '.' + isoDate.slice(0, 4);
|
+ isoDate.slice(5, 7) + '.' + isoDate.slice(0, 4);
|
||||||
let bluforData = {
|
|
||||||
|
const bluforData = {
|
||||||
name: warDateString,
|
name: warDateString,
|
||||||
value: wars[i].ptBlufor
|
value: wars[i].ptBlufor
|
||||||
};
|
};
|
||||||
updateObj[0].series.push(bluforData);
|
const opforData = {
|
||||||
let opforData = {
|
|
||||||
name: warDateString,
|
name: warDateString,
|
||||||
value: wars[i].ptOpfor
|
value: wars[i].ptOpfor
|
||||||
};
|
};
|
||||||
updateObj[1].series.push(opforData);
|
const bluforPlayers = {
|
||||||
let bluforPlayers = {
|
|
||||||
name: warDateString,
|
name: warDateString,
|
||||||
value: 13
|
value: wars[i].playersBlufor
|
||||||
};
|
};
|
||||||
updateObj[2].series.push(bluforPlayers);
|
const opforPlayers = {
|
||||||
let opforPlayers = {
|
|
||||||
name: warDateString,
|
name: warDateString,
|
||||||
value: 13
|
value: wars[i].playersOpfor
|
||||||
};
|
};
|
||||||
updateObj[3].series.push(opforPlayers);
|
|
||||||
|
playersObj[0].series.push(bluforData);
|
||||||
|
playersObj[1].series.push(opforData);
|
||||||
|
pointsObj[0].series.push(bluforPlayers);
|
||||||
|
pointsObj[1].series.push(opforPlayers);
|
||||||
}
|
}
|
||||||
this.chartData = updateObj;
|
|
||||||
Object.assign(this, this.chartData)
|
this.pointData = pointsObj;
|
||||||
|
this.playerData = playersObj;
|
||||||
|
Object.assign(this, [this.playerData, this.pointData])
|
||||||
}
|
}
|
||||||
|
|
||||||
onSelect(event) {
|
onSelect(event) {
|
||||||
|
|
Loading…
Reference in New Issue