2021-02-03 11:33:01 -06:00
|
|
|
export default class Layer {
|
|
|
|
constructor(data) {
|
|
|
|
this.name = data.Name;
|
2021-02-26 01:17:34 -06:00
|
|
|
this.classname = data.levelName;
|
2021-02-03 11:33:01 -06:00
|
|
|
this.map = {
|
|
|
|
name: data.mapName
|
|
|
|
};
|
|
|
|
this.gamemode = data.gamemode;
|
|
|
|
this.gamemodeType = data.type;
|
|
|
|
this.version = data.layerVersion;
|
|
|
|
this.size = data.mapSize;
|
|
|
|
this.sizeType = data.mapSizeType;
|
|
|
|
this.numberOfCapturePoints = parseInt(data.capturePoints);
|
|
|
|
this.lighting = {
|
|
|
|
name: data.lighting,
|
|
|
|
classname: data.lightingLevel
|
|
|
|
};
|
2021-03-16 14:52:24 -05:00
|
|
|
this.teams = [];
|
|
|
|
for (const t of ['team1', 'team2']) {
|
|
|
|
this.teams.push({
|
|
|
|
faction: data[t].faction,
|
|
|
|
name: data[t].teamSetupName,
|
|
|
|
tickets: data[t].tickets,
|
|
|
|
commander: data[t].commander,
|
|
|
|
vehicles: (data[t].vehicles || []).map((vehicle) => ({
|
2021-02-03 11:33:01 -06:00
|
|
|
name: vehicle.type,
|
|
|
|
classname: vehicle.rawType,
|
|
|
|
count: vehicle.count,
|
|
|
|
spawnDelay: vehicle.delay,
|
|
|
|
respawnDelay: vehicle.respawnTime
|
2021-03-30 13:43:24 -05:00
|
|
|
})),
|
|
|
|
numberOfTanks: data[t].vehicles.filter((v) => {
|
2021-03-16 14:52:24 -05:00
|
|
|
return v.icon.match(/tank/);
|
2021-03-30 13:43:24 -05:00
|
|
|
}).length,
|
|
|
|
numberOfHelicopters: data[t].vehicles.filter((v) => {
|
2021-03-16 14:52:24 -05:00
|
|
|
return v.icon.match(/helo/);
|
|
|
|
}).length
|
2021-03-30 13:43:24 -05:00
|
|
|
});
|
2021-03-16 14:52:24 -05:00
|
|
|
}
|
2021-02-03 11:33:01 -06:00
|
|
|
}
|
|
|
|
}
|