deploy: 5c934ce8fb
parent
c513c9c41a
commit
04fb651880
33
fx_core.js
33
fx_core.js
|
@ -1,5 +1,6 @@
|
|||
const fx_version = '0.6.1.8'; // FX Client Version
|
||||
const fx_update = 'Mar 5'; // FX Client Last Updated
|
||||
const dictionary = {"gIsSingleplayer":"j1","gIsTeamGame":"ha","playerId":"eu","playerNames":"k5","playerBalances":"ev","playerTerritories":"fP","uiOffset":"nf"};
|
||||
const fx_version = '0.6.1.9'; // FX Client Version
|
||||
const fx_update = 'Mar 7'; // FX Client Last Updated
|
||||
|
||||
if (localStorage.getItem("fx_winCount") == undefined || localStorage.getItem("fx_winCount") == null) {
|
||||
var wins_counter = 0;
|
||||
|
@ -8,6 +9,13 @@ if (localStorage.getItem("fx_winCount") == undefined || localStorage.getItem("fx
|
|||
var wins_counter = localStorage.getItem("fx_winCount");
|
||||
}
|
||||
|
||||
const getVar = varName => window[dictionary[varName]];
|
||||
|
||||
// https://stackoverflow.com/a/6234804
|
||||
function escapeHtml(unsafe) {
|
||||
return unsafe.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
||||
}
|
||||
|
||||
function KeybindsInput(containerElement) {
|
||||
this.container = containerElement;
|
||||
this.keys = [ "key", "type", "value" ];
|
||||
|
@ -216,7 +224,7 @@ WindowManager.add({
|
|||
beforeOpen: function() {}
|
||||
});
|
||||
document.getElementById("canvasA").addEventListener("mousedown", WindowManager.closeAll);
|
||||
document.getElementById("canvasA").addEventListener("touchstart", WindowManager.closeAll);
|
||||
document.getElementById("canvasA").addEventListener("touchstart", WindowManager.closeAll, { passive: true });
|
||||
document.addEventListener("keydown", event => { if (event.key === "Escape") WindowManager.closeAll(); });
|
||||
var settingsGearIcon = document.createElement('img');
|
||||
settingsGearIcon.setAttribute('src', 'assets/geari_white.png');
|
||||
|
@ -224,12 +232,18 @@ settingsGearIcon.setAttribute('src', 'assets/geari_white.png');
|
|||
const playerList = new (function () {
|
||||
const playersIcon = document.createElement('img');
|
||||
playersIcon.setAttribute('src', 'assets/players_icon.png');
|
||||
document.getElementById("playerlist_content").addEventListener("click", event => {
|
||||
const playerId = event.target.closest("tr[data-player-id]")?.getAttribute("data-player-id");
|
||||
if (!playerId) return;
|
||||
if (getVar("gIsTeamGame")) WindowManager.closeWindow("playerList"), displayDonationsHistory(playerId);
|
||||
});
|
||||
this.display = function displayPlayerList(playerNames) {
|
||||
let listContent = "";
|
||||
for (let i = 0; i < playerNames.length; i++) {
|
||||
listContent += `<span class="color-light-gray">${i}.</span> ${playerNames[i]}<br>`
|
||||
listContent += `<tr data-player-id="${i}"><td><span class="color-light-gray">${i}.</span> ${escapeHtml(playerNames[i])}</td></tr>`
|
||||
}
|
||||
document.getElementById("playerlist_text").innerHTML = listContent;
|
||||
document.getElementById("playerlist_content").innerHTML = listContent;
|
||||
document.getElementById("playerlist_content").setAttribute("class", getVar("gIsTeamGame") ? "clickable" : "");
|
||||
WindowManager.openWindow("playerList");
|
||||
}
|
||||
this.hoveringOverButton = false;
|
||||
|
@ -260,19 +274,18 @@ var donationsTracker = new (function(){
|
|||
};
|
||||
this.reset = function() { for (var i = 0; i < 512; i++) this.donationHistory[i] = []; };
|
||||
});
|
||||
// usage from inside: displayDonationsHistory(Y, gE);
|
||||
function displayDonationsHistory(playerID, playerNames, isSingleplayer) {
|
||||
function displayDonationsHistory(playerID, playerNames = getVar("playerNames"), isSingleplayer = getVar("gIsSingleplayer")) {
|
||||
var history = donationsTracker.getRecipientHistoryOf(playerID);
|
||||
console.log("History for " + playerNames[playerID] + ":");
|
||||
console.log(history);
|
||||
document.querySelector("#donationhistory h1").innerHTML = "Donation history for " + playerNames[playerID];
|
||||
document.querySelector("#donationhistory h1").innerHTML = "Donation history for " + escapeHtml(playerNames[playerID]);
|
||||
var historyText = "";
|
||||
history.reverse();
|
||||
if (history.length > 0) history.forEach(function(historyItem, index) {
|
||||
historyText += `<span class="color-light-gray">${(history.length - index)}.</span> `;
|
||||
if (playerID === historyItem[1])
|
||||
historyText += `Received <span class="color-green">${historyItem[2]}</span> resources from ${playerNames[historyItem[0]]}<br>`;
|
||||
else historyText += `Sent <span class="color-red">${historyItem[2]}</span> resources to ${playerNames[historyItem[1]]}<br>`;
|
||||
historyText += `Received <span class="color-green">${historyItem[2]}</span> resources from ${escapeHtml(playerNames[historyItem[0]])}<br>`;
|
||||
else historyText += `Sent <span class="color-red">${historyItem[2]}</span> resources to ${escapeHtml(playerNames[historyItem[1]])}<br>`;
|
||||
});
|
||||
else historyText = "Nothing to display";
|
||||
document.querySelector("#donationhistory p#donationhistory_text").innerHTML = historyText;
|
||||
|
|
10
index.html
10
index.html
|
@ -34,7 +34,7 @@
|
|||
<meta itemprop="image" content="https://mohsenemx.github.io/FXclient/assets/logo.png">
|
||||
|
||||
<!-- FX Client CSS -->
|
||||
<link rel="stylesheet" href="main.css?1709672989258">
|
||||
<link rel="stylesheet" href="main.css?1709819801843">
|
||||
<!-- Game CSS -->
|
||||
<style>
|
||||
html,
|
||||
|
@ -108,15 +108,15 @@
|
|||
</div>
|
||||
<div class="window scrollable selectable" id="playerlist" style="display: none;">
|
||||
<h1>Player List</h1>
|
||||
<p id="playerlist_text"></p>
|
||||
<table><tbody id="playerlist_content"></tbody></table>
|
||||
</div>
|
||||
<div class="window scrollable selectable" id="donationhistory" style="display:none">
|
||||
<h1>Donation history for </h1>
|
||||
<p id="donationhistory_note">Note: donations from bots are not shown here</p>
|
||||
<p id="donationhistory_text"></p>
|
||||
</div>
|
||||
<script src="variables.js?1709672989258"></script>
|
||||
<script src="fx_core.js?1709672989258"></script>
|
||||
<script src="game.js?1709672989258"></script>
|
||||
<script src="variables.js?1709819801843"></script>
|
||||
<script src="fx_core.js?1709819801843"></script>
|
||||
<script src="game.js?1709819801843"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
11
main.css
11
main.css
|
@ -79,6 +79,17 @@ button:hover {
|
|||
border-radius : 8px;
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
#playerlist_content.clickable td { cursor: pointer; }
|
||||
#playerlist_content.clickable td:hover { background-color: #00ff0040; }
|
||||
|
||||
table {
|
||||
border-spacing: 0px;
|
||||
}
|
||||
|
||||
input#userna,
|
||||
input#inputfilebtn {
|
||||
transition: 0.2s
|
||||
|
|
Loading…
Reference in New Issue