GLB Player Value

Puts the real player value on the player page

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Greasemonkey lub Violentmonkey.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana będzie instalacja rozszerzenia Tampermonkey lub Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, musisz zainstalować rozszerzenie menedżera skryptów użytkownika.

(Mam już menedżera skryptów użytkownika, pozwól mi to zainstalować!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Musisz zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

(Mam już menedżera stylów użytkownika, pozwól mi to zainstalować!)

// ==UserScript==
// @name           GLB Player Value
// @namespace      GLB
// @description   Puts the real player value on the player page
// @include        http://glb.warriorgeneral.com/game/player.pl?player_id=*
// @include        https://glb.warriorgeneral.com/game/player.pl?player_id=*
// @require       https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js
// @version 0.0.1.20190324174004
// ==/UserScript==

var _Total
var _MyStyle

var _Caps = {
	'87.6':0,
	'85.58':0,
	'83.25':0,
	'80.53':0,
	'77.28':0,
	'73.24':0,
	'67.97':0,
	'60.51':0,
	'48.06':0,
	'10.00':0
};
var _PercentBonus = ['Break tackle chance','Fake chance','Hold block chance','Pass distance','Pass quality','Catch ball chance', //offensive
	'Break block chance','Make tackle chance','Force fumble chance','Avoid fake chance','Deflect ball chance','Interception chance']; //defensive
var _PlayerAtts = {
	'Strength':0,
	'Speed':0,
	'Agility':0,
	'Jumping':0,
	'Stamina':0,
	'Vision':0,
	'Confidence':0,
	'Blocking':0,
	'Tackling':0,
	'Throwing':0,
	'Catching':0,
	'Carrying':0,
	'Kicking':0,
	'Punting':0
};

var _saTableValue = {
	'0':  [0,0],
	'1':  [1,2],
	'2':  [2,4],
	'3':  [4,7],
	'4':  [6,10],
	'5':  [9,14],
	'6':  [12,18],
	'7':  [16,23],
	'8':  [20,28],
	'9':  [25,34],
	'10': [30,40]
};
var _vpValue = 0;
var _pctValue = 0;
var _saValue = 0;
var _statValue = 0;

/*
 percent points = (sum %'s) * 3
 vet points = # VA's / 10
 sa points = 	if SA > 10 then
					if SA last in tree then
						40 + (SA # - 10) * 6
					else
						30 + (SA # - 10) * 5
					end if
				else
					value of _saTableValue (if last in tree use idx 1 else 0)
				end if

 stat points =
	(
		for each cap level (starting at the end):
		if value > cap then
			Math.floor(value - sum of previous cap values - the cap)
		else
			0
		end if
	)
	then sum each cap and multiply by the cap # (indexed at 1), then sum all of that

 total points = sum of above points
*/

function setAttStats(){
	var startArea;
	if($('#normalStats').length > 0){
		startArea = $('#normalStats');
	}else{
		startArea = $('DIV#player_stats TABLE.player_stats_table');
	}

	$('DIV.stat_head_tall',startArea).each(function(){
		var att = $(this).text().replace(/\:/gi,'');
		if(!_PlayerAtts[att] && _PlayerAtts[att] != 0){
			alert('cannot find attribute: ' + att);
		}
		var theVal = $(this).next().text();
		if(theVal.indexOf('(') > 0){
			theVal = theVal.substring(0,theVal.indexOf('(') - 1);
		}
		_PlayerAtts[att] = Number(theVal);
	});

	//console.log(_PlayerAtts);

	computeStatValue();
};

function computeStatValue(){
	for(var att in _PlayerAtts){
		for(var cap in _Caps){
			var toUse = (cap == '10.00' ? 0 : Number(cap));
			if(_PlayerAtts[att] > toUse){
				if(toUse == 0){
					var theVal = _PlayerAtts[att] - toUse;
				}else{
					var theVal = Math.floor(_PlayerAtts[att] - toUse);
				}
				_Caps[cap] += theVal;
				_PlayerAtts[att] -= theVal;
				// if(toUse == 80.53){
					// console.log(att + ' - ' + theVal);
				// }
			}
		}
	}
	//console.log(_Caps);
	var cnt = 10;
	for(var cap in _Caps){
		_statValue += (_Caps[cap] * cnt);
		cnt -= 1;
	}
	//console.log('stat value: ' + _statValue);
};

function countVPs(){
	var vpCount = 0;
	$('DIV#vet_skills_box DIV.skill_level').each(function(){
		vpCount += parseInt($(this).text(),10);
	});
	_vpValue = vpCount / 10;
	//console.log('vp value: ' + _vpValue);
};

function addPercents(){
	var pctCount = 0;
	$('DIV.medium_head:contains("Current Bonuses/Penalties")').next('TABLE').find('TR').each(function(){
		var item = $(this).find('TD:eq(0)').text();
		for(var i=0;i<_PercentBonus.length;i++){
			if(_PercentBonus[i] == item){
				var cnt = $(this).find('TD:eq(1)').text();
				pctCount += Number(cnt.replace(/\%/gi,''));
				break;
			}
		}
	});
	_pctValue = pctCount * 3;
	//console.log('percent value: ' + _pctValue);
};

function grabSAs(){
	var elms = $('DIV#skill_trees_content DIV.subhead');
	$('DIV#skill_trees_content DIV.subhead').each(function(){
		var cnt = 0;
		var elm = this;
		while($(elm).next().hasClass('skill_button')){
			elm = $(elm).next();
			cnt += 1;
			var num = parseInt($(elm).find('DIV.skill_level').text(),10);
			if(cnt == 5){
				if(num > 10){
					_saValue += (40 + (num - 10) * 6);
				}else{
					_saValue += _saTableValue[num + ''][1];
				}
			}else{
				if(num > 10){
					_saValue += (30 + (num - 10) * 5);
				}else{
					_saValue += _saTableValue[num + ''][0];
				}
			}
		}
	});
	//console.log('sa value: ' + _saValue);
};

function roundNumber(num){
	return Math.round(num * 100)/100;
};

function drawPlayerValues(){
	var tbl = $('#player_current_stats_table');

	// add header
	$(tbl).find('TR:eq(0) TD:eq(0)').after('<td class="current_stats_head">Value</td>');

	// add data
    _Total = _statValue + _saValue + _vpValue + _pctValue
 	if(_Total > 2000){
		_MyStyle = "font-weight:bold;font-size:8pt;color:blue;"

	}
	var theData = '<span onmouseover="set_tip(\'Attribute Value\',0,1,1,1);" onmouseout="unset_tip();">' + roundNumber(_statValue) + '</span>' +
		' | <span onmouseover="set_tip(\'SA Value\',0,1,1,1);" onmouseout="unset_tip();">' + roundNumber(_saValue) + '</span>' +
		' | <span onmouseover="set_tip(\'Vet Points Value\',0,1,1,1);" onmouseout="unset_tip();">' + roundNumber(_vpValue) + '</span>' +
		' | <span onmouseover="set_tip(\'Percents Value\',0,1,1,1);" onmouseout="unset_tip();">' + roundNumber(_pctValue) + '</span>' +
		'<br /><span onmouseover="set_tip(\'Total Player Value\',0,1,1,1);" onmouseout="unset_tip();" style="font-weight:bold;font-size:8pt;color:green;">' + roundNumber(_Total) + '</span>';
	$(tbl).find('TR:eq(1) TD:eq(0)').after('<td class="current_stats_value" style="font-size:7pt;padding-bottom:0px;">' + theData + '</td>');

	//expand fame cell
	var cell = $(tbl).find('TR:eq(2) TD:eq(1)');
	$(cell).attr('colSpan',$(cell).attr('colSpan') + 1);
};

setAttStats();
countVPs();
addPercents();
grabSAs();
drawPlayerValues();