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