Optional display of missing upgrades to stats
This commit is contained in:
89
src/Disp.js
89
src/Disp.js
@@ -1020,6 +1020,7 @@ CM.Disp.CheckGoldenCookie = function() {
|
||||
for (var i in CM.Disp.GCTimers) {
|
||||
if (typeof CM.Disp.goldenShimmersByID[i] == "undefined") {
|
||||
CM.Disp.GCTimers[i].parentNode.removeChild(CM.Disp.GCTimers[i]);
|
||||
// TODO remove delete here
|
||||
delete CM.Disp.GCTimers[i];
|
||||
}
|
||||
}
|
||||
@@ -1436,6 +1437,7 @@ CM.Disp.AddMenuPref = function(title) {
|
||||
frag.appendChild(header('Statistics', 'Statistics'));
|
||||
if (CM.Config.MenuPref.Statistics) {
|
||||
frag.appendChild(listing('Stats'));
|
||||
frag.appendChild(listing('MissingUpgrades'));
|
||||
frag.appendChild(listing('UpStats'));
|
||||
frag.appendChild(listing('TimeFormat'));
|
||||
frag.appendChild(listing('SayTime'));
|
||||
@@ -1909,6 +1911,83 @@ CM.Disp.AddMenuStats = function(title) {
|
||||
l('menu').insertBefore(stats, l('menu').childNodes[2]);
|
||||
}
|
||||
|
||||
CM.Disp.AddMissingUpgrades = function() {
|
||||
if (CM.Cache.UpgradesOwned != Game.UpgradesOwned) {
|
||||
CM.Cache.CalcMissingUpgrades();
|
||||
CM.Cache.MissingUpgradesString = null;
|
||||
CM.Cache.MissingCookiesString = null;
|
||||
}
|
||||
|
||||
// Sort the lists of missing cookies & upgrades
|
||||
var sortMap = function(a,b) {
|
||||
if (a.order > b.order) return 1;
|
||||
else if (a.order < b.order) return -1;
|
||||
else return 0;
|
||||
}
|
||||
CM.Cache.MissingUpgrades.sort(sortMap);
|
||||
CM.Cache.MissingCookies.sort(sortMap);;
|
||||
|
||||
// Find Upgrades-section of stats menu
|
||||
var upgradesMenu = null;
|
||||
for (var i = 0; i < l("menu").getElementsByClassName("subsection").length && upgradesMenu == null; i++)
|
||||
{
|
||||
if (l("menu").getElementsByClassName("subsection")[i].getElementsByClassName("title")[0].textContent === "Upgrades")
|
||||
{
|
||||
upgradesMenu = l("menu").getElementsByClassName("subsection")[i];
|
||||
}
|
||||
}
|
||||
|
||||
// This function creates div element from given object. It also adds tooltip for it.
|
||||
var createUpgradeElement = function (me) {
|
||||
return '<div class="crate upgrade disabled noFrame" ' +
|
||||
Game.getTooltip(
|
||||
'<div style="padding:8px 4px;min-width:350px;">' +
|
||||
'<div class="icon" style="float:left;margin-left:-8px;margin-top:-8px;' + (me.icon[2] ? 'background-image:url(' + me.icon[2] + ');' : '') + 'background-position:' + (-me.icon[0] * 48) + 'px ' + (-me.icon[1] * 48) + 'px;"></div>' +
|
||||
'<div style="float:right;"><span class="price">' + Beautify(Math.round(me.getPrice())) + '</span></div>' +
|
||||
'<div class="name">' + me.name + '</div>' +
|
||||
'<div class="line"></div><div class="description">' + me.desc + '</div></div>',
|
||||
'top',
|
||||
true) +
|
||||
' style="background-position:' + (-me.icon[0] * 48) + 'px ' + (-me.icon[1] * 48) + 'px;"></div>';
|
||||
};
|
||||
|
||||
// This function creates section of given elements and adds this elements to it.
|
||||
var createElementBox = function (elements) {
|
||||
var div = document.createElement('div');
|
||||
div.className = 'listing crateBox';
|
||||
elements.forEach(function (element) {
|
||||
div.innerHTML += createUpgradeElement(element);
|
||||
});
|
||||
return div;
|
||||
};
|
||||
|
||||
// This function creates header element with given text.
|
||||
var createHeader = function (text) {
|
||||
var div = document.createElement('div');
|
||||
div.className = 'listing';
|
||||
var b = document.createElement('b');
|
||||
b.textContent = text;
|
||||
div.appendChild(b);
|
||||
return div;
|
||||
};
|
||||
|
||||
if (CM.Cache.MissingUpgrades.length > 0) {
|
||||
upgradesMenu.appendChild(createHeader("Missing Upgrades"));
|
||||
if (CM.Cache.MissingUpgradesString == null) {
|
||||
CM.Cache.MissingUpgradesString = createElementBox(CM.Cache.MissingUpgrades);
|
||||
}
|
||||
upgradesMenu.appendChild(CM.Cache.MissingUpgradesString);
|
||||
}
|
||||
|
||||
if (CM.Cache.MissingCookies.length > 0) {
|
||||
upgradesMenu.appendChild(createHeader("Missing Cookies"));
|
||||
if (CM.Cache.MissingCookiesString == null) {
|
||||
CM.Cache.MissingCookiesString = createElementBox(CM.Cache.MissingCookies);
|
||||
}
|
||||
upgradesMenu.appendChild(CM.Cache.MissingCookiesString);
|
||||
}
|
||||
}
|
||||
|
||||
CM.Disp.AddMenu = function() {
|
||||
var title = function() {
|
||||
var div = document.createElement('div');
|
||||
@@ -1920,8 +1999,14 @@ CM.Disp.AddMenu = function() {
|
||||
if (Game.onMenu == 'prefs') {
|
||||
CM.Disp.AddMenuPref(title);
|
||||
}
|
||||
else if (CM.Config.Stats == 1 && Game.onMenu == 'stats') {
|
||||
CM.Disp.AddMenuStats(title);
|
||||
else if (Game.onMenu == 'stats') {
|
||||
if (CM.Config.Stats) {
|
||||
CM.Disp.AddMenuStats(title);
|
||||
}
|
||||
|
||||
if (CM.Config.MissingUpgrades) {
|
||||
CM.Disp.AddMissingUpgrades();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user