Skip to content

Instantly share code, notes, and snippets.

@pavelmaca
Last active August 29, 2015 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pavelmaca/acfa92a98e37a34e4dc7 to your computer and use it in GitHub Desktop.
Save pavelmaca/acfa92a98e37a34e4dc7 to your computer and use it in GitHub Desktop.
XVM snippet from WN8 calculation
private function calcWn8(data:Object):Number
{
var vehicle:VehicleData = VehicleInfo.get(data.typeCompDescr);
//{expFrag: 0.98, expDamage: 1682.00, expSpot: 1.61, expDef: 0.74, expWinRate: 50.40};
var exp:Object = Config.config.wn8.getExpectedValues(vehicle.vid);
//Logger.addObject(exp);
if (!exp) {
Logger.add("No expected WN8 values for vid: " + vehicle.vid);
return 0;
}
var rDAMAGE:Number = int(parseInt(data.damageDealt)) / exp.expDamage;
var rSPOT:Number = int(parseInt(data.spotted)) / exp.expSpot;
var rFRAG:Number = int(parseInt(data.kills)) / exp.expFrag;
var rDEF:Number = int(parseInt(data.droppedCapturePoints)) / exp.expDef;
// Always use expected value for single battle.
// expected / expected = 1
var rWIN:Number = 1;
/* DEBUG LOG
var log:String = "rDAMAGE:" + rDAMAGE + "; rSPOT:" + rSPOT + "; rFRAG:" + rFRAG + "; rDEF:" + rDEF + "; rWIN:" + rWIN;// + "; winrate:" + winrate;
Logger.add('wn8log: ' + log);
*/
var rWINc:Number = Math.max(0, (rWIN - 0.71) / (1 - 0.71));
var rDAMAGEc:Number = Math.max(0, (rDAMAGE-0.22) / (1 - 0.22));
var rFRAGc:Number = Math.min(rDAMAGEc + 0.2, Math.max(0, (rFRAG - 0.12) / (1 - 0.12)));
var rSPOTc:Number = Math.min(rDAMAGEc + 0.1, Math.max(0, (rSPOT - 0.38) / (1 - 0.38)));
var rDEFc:Number = Math.min(rDAMAGEc + 0.1, Math.max(0, (rDEF-0.10) / (1-0.10)));
return Math.round(980 * rDAMAGEc + 210 * rDAMAGEc * rFRAGc + 155 * rFRAGc * rSPOTc + 75 * rDEFc * rFRAGc + 145 * Math.min(1.8, rWINc)) || 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment