MediaWiki:Common.js/killCalc.js

/* Kill XP calculator for Template:Infobox Monster new */ $('.infobox-monster').each(function{	var $infobox = $(this);	var $row = $(' ');	var $input = $('');	var cbXPeach = 0, hpXPeach = 0, eqXPeach = 0, slayXPeach = 0;	function resetCalc{		function getXP(c){			return parseFloat($infobox.find('.'+c).text.replace(/,/g,''));		}		cbXPeach = getXP('mob-cb-xp');		hpXPeach = getXP('mob-hp-xp');		slayXPeach = getXP('mob-slay-xp');		eqXPeach = cbXPeach * 0.02;		$input.val(1);	}	function updateCalc{		function setXP(c, v) {			$infobox.find('.'+c).text(v);		}		function twodp(v){			return v.toLocaleString({useGrouping:true, maximumFractionDigits:2});		}		var val = parseInt($input.val, 10);		if (Number.isNaN(val)) {			return;		}		setXP('mob-cb-xp', twodp(cbXPeach * val));		setXP('mob-hp-xp', twodp(hpXPeach * val));		setXP('mob-slay-xp', twodp(slayXPeach * val));		setXP('mob-eq-xp', twodp(eqXPeach * 3 * val) + ' / ' + twodp(eqXPeach * 2 * val) + ' / ' + twodp(eqXPeach * val)); }	$infobox.parent.find('.infobox-buttons').on('switchinfoboxComplete', resetCalc); $input.on('change keyup mouseup', updateCalc); $row .append($(' ')			.attr('colspan', 2)			.text('Kill calculator')			) .append($(' ')			.attr('colspan', 2)			.append($input)			) .insertAfter($infobox.find('.combat-info-header').parent); resetCalc; });