SquadJS/squad-server/layers/layer.js

45 lines
1.4 KiB
JavaScript
Raw Normal View History

2021-02-03 11:33:01 -06:00
export default class Layer {
constructor(data) {
this.name = data.Name;
this.classname = data.levelName;
this.layerid = data.rawName;
2023-04-26 07:34:05 -05:00
const mod = /^(?<name>[A-Z0-9]+)_.*/g.exec(data.rawName)?.groups;
this.modName = mod ? mod.name : 'Vanilla';
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
};
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
})),
numberOfTanks: (data[t].vehicles || []).filter((v) => {
return v.icon.match(/_tank/);
}).length,
numberOfHelicopters: (data[t].vehicles || []).filter((v) => {
return v.icon.match(/helo/);
}).length
});
}
2021-02-03 11:33:01 -06:00
}
}