parse vehicle class from log
parent
910df3d267
commit
b927d48b86
|
@ -4,6 +4,13 @@ const playerArrayContains = require('./util').playerArrayContains;
|
||||||
|
|
||||||
const WHITESPACE = ' ';
|
const WHITESPACE = ' ';
|
||||||
|
|
||||||
|
const VehicleClasses = Object.freeze({
|
||||||
|
LIGHT: "Leicht",
|
||||||
|
HEAVY: "Leicht",
|
||||||
|
AIR: "Flug",
|
||||||
|
UNKNOWN: "Unbekannt"
|
||||||
|
});
|
||||||
|
|
||||||
const parseWarLog = (lineArray, war) => {
|
const parseWarLog = (lineArray, war) => {
|
||||||
const NAME_TOO_LONG_ERROR = 'Error: ENAMETOOLONG: name too long, open \'';
|
const NAME_TOO_LONG_ERROR = 'Error: ENAMETOOLONG: name too long, open \'';
|
||||||
|
|
||||||
|
@ -21,7 +28,7 @@ const parseWarLog = (lineArray, war) => {
|
||||||
players: [],
|
players: [],
|
||||||
};
|
};
|
||||||
|
|
||||||
const vehicleBlacklist = [
|
const VEHICLE_BLACKLIST = [
|
||||||
'Prowler (Unbewaffnet)', 'Prowler (Bewaffnet)', 'Hunter',
|
'Prowler (Unbewaffnet)', 'Prowler (Bewaffnet)', 'Hunter',
|
||||||
'HEMTT Transporter', 'HEMTT Transporter (abgedeckt)', 'HEMTT SanitÀtsfahrzeug',
|
'HEMTT Transporter', 'HEMTT Transporter (abgedeckt)', 'HEMTT SanitÀtsfahrzeug',
|
||||||
'Remote Designator [NATO]', 'UGV Stomper',
|
'Remote Designator [NATO]', 'UGV Stomper',
|
||||||
|
@ -193,7 +200,7 @@ const parseWarLog = (lineArray, war) => {
|
||||||
stats.players[i]['respawn'] = stats.respawn.filter((res) => res.player === playerName).length;
|
stats.players[i]['respawn'] = stats.respawn.filter((res) => res.player === playerName).length;
|
||||||
stats.players[i]['kill'] = stats.kills.filter((kill) => kill.shooter === playerName && !kill.friendlyFire).length;
|
stats.players[i]['kill'] = stats.kills.filter((kill) => kill.shooter === playerName && !kill.friendlyFire).length;
|
||||||
stats.players[i]['vehicle'] = stats.vehicles.filter(
|
stats.players[i]['vehicle'] = stats.vehicles.filter(
|
||||||
(vehicle) => vehicle.shooter === playerName && vehicleBlacklist.indexOf(vehicle.target) < 0).length;
|
(vehicle) => vehicle.shooter === playerName && VEHICLE_BLACKLIST.indexOf(vehicle.target) < 0).length;
|
||||||
stats.players[i]['friendlyFire'] = stats.kills.filter(
|
stats.players[i]['friendlyFire'] = stats.kills.filter(
|
||||||
(kill) => kill.shooter === playerName && kill.friendlyFire).length;
|
(kill) => kill.shooter === playerName && kill.friendlyFire).length;
|
||||||
stats.players[i]['death'] = stats.kills.filter((kill) => kill.target === playerName).length;
|
stats.players[i]['death'] = stats.kills.filter((kill) => kill.target === playerName).length;
|
||||||
|
@ -250,19 +257,23 @@ const getPlayerAndFractionFromString = (nameAndFractionString) => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const getVehicleAndFractionFromString = (nameAndFractionString) => {
|
const getVehicleAndFractionFromString = (nameClassFractionString) => {
|
||||||
const nameArray = nameAndFractionString.trim().split(WHITESPACE);
|
const nameArray = nameClassFractionString.trim().split(WHITESPACE);
|
||||||
const fractionPart = nameArray[nameArray.length - 1];
|
|
||||||
|
|
||||||
// escape it is some parachute fraction identifier
|
const vehicleFraction = nameArray[nameArray.length - 1];
|
||||||
if (fractionPart === 'OPF_F' || fractionPart === 'BLU_F') {
|
nameArray.pop();
|
||||||
|
const vehicleClass = nameArray[nameArray.length - 1].replace('(', '').replace(')', '');
|
||||||
|
nameArray.pop();
|
||||||
|
const vehicleName = nameArray.join(WHITESPACE);
|
||||||
|
|
||||||
|
// nno counting here - is some basic fraction equipment identifier (i.e. parachute)
|
||||||
|
if (vehicleFraction === 'OPF_F' || vehicleFraction === 'BLU_F' || vehicleClass === VehicleClasses.UNKNOWN) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const fraction = fractionPart === '(OPT_NATO)' || fractionPart === '(OPT_NATO_T)' ? 'BLUFOR' : 'OPFOR';
|
const fraction = vehicleFraction === '(OPT_NATO)' || vehicleFraction === '(OPT_NATO_T)' ? 'BLUFOR' : 'OPFOR';
|
||||||
const name = nameAndFractionString.substring(0, nameAndFractionString.indexOf(fractionPart) - 1);
|
|
||||||
|
|
||||||
return {name: name, fraction: fraction};
|
return {name: vehicleName, fraction: fraction, class: vehicleClass};
|
||||||
};
|
};
|
||||||
|
|
||||||
const transformMoneyString = (budgetString) => {
|
const transformMoneyString = (budgetString) => {
|
||||||
|
|
Loading…
Reference in New Issue