Basic Statistics for the next match

Upgrade from Star players script

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           Basic Statistics for the next match
// @version        3.7
// @description	   Upgrade from Star players script
// @author         Spieler17
// @description    You can immediately find out the result of the league match in the viewing mode of the match, as well as the starting lineups in the stars.
// @include	   https://trophymanager.com/matches/*
// @namespace https://greasyfork.org/users/32455
// @grant       function
// ==/UserScript==

var funShowStars;

function isOKForShow() {
	var loading = document.getElementsByClassName("loading")[0];
	var shown = document.getElementById("mystarbox");
	if (loading != null)
		return false;
	if (shown != null)
		return false;
	return true;
}

function countStars(str) {
	var num1 = str.lastIndexOf("_") + 1;
	var num2 = str.lastIndexOf("\"");
	return parseInt(str.substring(num1, num2));
}

function getStars(starnum) {

	var num = Math.round(starnum * 100 / 55);

	if (num < 10)
		return "<img src=\"/pics/half_star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"> (";
	if (num < 20)
		return "<img src=\"/pics/star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"> (";
	if (num < 30)
		return "<img src=\"/pics/star.png\"><img src=\"/pics/half_star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"> (";
	if (num < 40)
		return "<img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"> (";
	if (num < 50)
		return "<img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/half_star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"> (";
	if (num < 61)
		return "<img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/dark_star.png\"><img src=\"/pics/dark_star.png\"> (";
	if (num < 72)
		return "<img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/half_star.png\"><img src=\"/pics/dark_star.png\"> (";
	if (num < 84)
		return "<img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/dark_star.png\"> (";
	if (num < 93.5)
		return "<img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/half_star.png\"> (";

	return "<img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/star.png\"><img src=\"/pics/star.png\"> (";
}

function GetPlayerData(playerID) {
	$.ajaxSetup({
		async: false
	});
	var player;
	$.post("/ajax/tooltip.ajax.php", {
		"player_id": playerID
	}, function (responseText) {
		var data = JSON.parse(responseText);
		player = {
			id: data.player.player_id,
			position: data.player.fp,
			ASI: Number(data.player.skill_index.split(',').join('')),
			xp: Number(data.player.routine.split(',').join('')),
			age: Number(data.player.age),
			month: Number(data.player.months),
			wage: Number(data.player.wage.replace("<span class='coin'>", "").replace("<\/span>", "").split(',').join(''))
		};
	});
	return player;
}

let BP = {
	/**
	 * @param {number} asi
	 * @param {number} age
	 * @param {number} month
	 * @param {number} position
	 * @returns {number} calculated BP
	 */
	compute: function (asi, age, month, position) {
		let pow = Math.pow;
		if (position === "GK") {
			return Math.round((asi * 500 * pow((300 / (age * 12 + month)), 2.5)) * 0.75);
		} else {
			return Math.round(asi * 500 * pow((300 / (age * 12 + month)), 2.5));
		}
	}
};

function ShowInfo() {
	if (isOKForShow() == true) {
		var divs = document.getElementsByClassName("player_field")[0].getElementsByTagName("div");
		var i = 0;
		var homeStar = 0;
		var homeXP = 0;
		var homeAge = 0;
		var homeASI = 0;
		var homeWage = 0;
		var homeBP = 0;

		var awayStar = 0;
		var awayXP = 0;
		var awayAge = 0;
		var awayASI = 0;
		var awayWage = 0;
		var awayBP = 0;

		for (; i <= 10; i++) {
			homeStar += countStars(divs[i * 2].innerHTML);
			let playerID = divs[i * 2].attributes[1].value;
			let player = GetPlayerData(playerID);
			homeXP += player.xp;
			homeAge += player.age * 12 + player.month;
			homeASI += player.ASI;
			homeWage += player.wage;
			homeBP += BP.compute(player.ASI, player.age, player.month, player.position);
		}
		for (; i <= 21; i++) {
			awayStar += countStars(divs[i * 2].innerHTML);
			let playerID = divs[i * 2].attributes[1].value;
			let player = GetPlayerData(playerID);
			awayXP += player.xp;
			awayAge += player.age * 12 + player.month;
			awayASI += player.ASI;
			awayWage += player.wage;
			awayBP += BP.compute(player.ASI, player.age, player.month, player.position);
		}
		homeStar = homeStar / 2;
		homeStar = homeStar.toFixed(1);
		awayStar = awayStar / 2;
		awayStar = awayStar.toFixed(1);

		var newdiv = document.createElement("div");

		newdiv.innerHTML =
			"<br><div id=\"mystarbox\" class=\"home color\" style=\"background-color:rgb(127,127,127)\"><b style=\"color: gold;\">" + getStars(homeStar) + homeStar + "/55)</b></div><div class=\"away color\"  style=\"background-color:rgb(10,5,76)\"><b style=\"color: gold;\">" + getStars(awayStar) + awayStar + "/55)</b></div>" +

			"<br><div id=\"myxp\" class=\"home color\" style=\"background-color:rgb(127,127,127)\"><b style=\"color: gold;\">" + "XP:" + (homeXP / 11).toFixed(1) + " Age:" + (homeAge / 11 / 12).toFixed(1) + " ASI:" + (homeASI / 11).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ".") + "</b></div><div class=\"away color\"  style=\"background-color:rgb(10,5,76)\"><b style=\"color: gold;\">" + "XP:" + (awayXP / 11).toFixed(1) + " Age:" + (awayAge / 11 / 12).toFixed(1) + " ASI:" + (awayASI / 11).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ".") + "</b></div>" +

			"<br><div id=\"myxp\" class=\"home color\" style=\"background-color:rgb(127,127,127)\"><b style=\"color: gold;\">" + "BP:" + (homeBP / 11 / 1000).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " Wage:" + (homeWage / 11 / 1000).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ".") + "</b></div><div class=\"away color\"  style=\"background-color:rgb(10,5,76)\"><b style=\"color: gold;\">" + "BP:" + (awayBP / 11 / 1000).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ".") + " Wage:" + (awayWage / 11 / 1000).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ".") + "</b></div>"

			document.getElementsByClassName("nameplate")[0].appendChild(newdiv);
	}
}

if (location.href.indexOf("matches") != -1) {
	setTimeout(ShowInfo, 5000);
}