diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..cc309a64
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/nbproject/private/
+nbproject/project.properties
+
+nbproject/project.xml
diff --git a/index.html b/index.html
index 24d2b45b..beb22117 100644
--- a/index.html
+++ b/index.html
@@ -431,6 +431,7 @@
+
diff --git a/main.js b/main.js
index c79e1a71..188a7e1e 100644
--- a/main.js
+++ b/main.js
@@ -23,7 +23,7 @@
"use strict";
function toggleSave(updateOnly) {
- var elem = document.getElementById("toggleBtn");
+ var elem = gameElements.getElementById("toggleBtn");
if (updateOnly) game.global.autoSave = (game.global.autoSave) ? false : true;
if (game.global.autoSave) {
game.global.autoSave = false;
@@ -77,6 +77,7 @@ function save(exportThis) {
message("Game Saved!", "Notices");
}
else {
+ console.log(saveString, localStorage.getItem('trimpSave1'));
message("For some reason, your game is not saving. Make sure you export and back up your save!", "Notices");
}
}
@@ -87,7 +88,7 @@ function save(exportThis) {
function load(saveString, autoLoad) {
var savegame;
if (saveString) {
- savegame = JSON.parse(LZString.decompressFromBase64(document.getElementById("importBox").value));
+ savegame = JSON.parse(LZString.decompressFromBase64(gameElements.getElementById("importBox").value));
tooltip('hide');
} else if (localStorage.getItem("trimpSave1") !== null) {
savegame = JSON.parse(LZString.decompressFromBase64(localStorage.getItem("trimpSave1")));
@@ -97,7 +98,7 @@ function load(saveString, autoLoad) {
if (game.global.killSavesBelow > savegame.global.version) {
message("I'm so terribly sorry, but your previous save game (version " + savegame.global.version + ") does not work in the new version. This game is still in early alpha, and a lot is still changing! Thank you for helping test!", "Notices");
message("Since you already had a save, and since the game is still alpha, I unlocked a little cheat button for you. It will make you twice as efficient, allowing you to get through the beginning a little faster.", "Notices");
- document.getElementById("cheatTd").style.display = "block";
+ gameElements.getElementById("cheatTd").style.display = "block";
return;
} else savegame.global.version = game.global.version;
if (typeof savegame.global !== 'undefined') {
@@ -148,27 +149,27 @@ function load(saveString, autoLoad) {
}
}
- if (game.buildings.Gym.locked === 0) document.getElementById("blockDiv").style.visibility = "visible";
+ if (game.buildings.Gym.locked === 0) gameElements.getElementById("blockDiv").style.visibility = "visible";
if (game.global.gridArray.length > 0) {
- document.getElementById("battleContainer").style.visibility = "visible";
+ gameElements.getElementById("battleContainer").style.visibility = "visible";
fadeIn("EquipmentFilter", 10);
fadeIn("equipmentTitleDiv", 10);
drawGrid();
- document.getElementById('metal').style.visibility = "visible";
+ gameElements.getElementById('metal').style.visibility = "visible";
for (var x = 0; x <= game.global.lastClearedCell; x++) {
- document.getElementById("cell" + x).style.backgroundColor = "green";
+ gameElements.getElementById("cell" + x).style.backgroundColor = "green";
}
- if (game.global.battleClock > 0) document.getElementById("battleTimer").style.visibility = "visible";
+ if (game.global.battleClock > 0) gameElements.getElementById("battleTimer").style.visibility = "visible";
}
if (game.global.mapGridArray.length > 0) {
drawGrid(true);
for (var y = 0; y <= game.global.lastClearedMapCell; y++) {
- document.getElementById("mapCell" + y).style.backgroundColor = "green";
+ gameElements.getElementById("mapCell" + y).style.backgroundColor = "green";
}
} else if (game.global.mapGridArray.length === 0 && game.global.mapsActive) game.global.mapsActive = false;
if (game.resources.trimps.owned > 0 || game.buildings.Trap.owned > 0) game.buildings.Trap.first();
if (game.global.autoBattle) {
- document.getElementById("pauseFight").style.visibility = "visible";
+ gameElements.getElementById("pauseFight").style.visibility = "visible";
pauseFight(true);
}
for (var itemC in game.global.mapsOwnedArray) {
@@ -184,13 +185,13 @@ function load(saveString, autoLoad) {
filterTabs(tabBool, true);
}
}
- document.getElementById("worldNumber").innerHTML = game.global.world;
+ gameElements.getElementById("worldNumber").innerHTML = game.global.world;
mapsSwitch(true);
checkTriggers(true);
setGather(game.global.playerGathering);
numTab(1);
if (game.global.autoCraftModifier > 0)
- document.getElementById("foremenCount").innerHTML = (game.global.autoCraftModifier * 2) + " Foremen";
+ gameElements.getElementById("foremenCount").innerHTML = (game.global.autoCraftModifier * 2) + " Foremen";
if (game.global.fighting) startFight();
toggleSave(true);
}
@@ -233,7 +234,7 @@ function addResCheckMax(what, number) {
function fireMode(noChange) {
if (!noChange) game.global.firing = !game.global.firing;
- var elem = document.getElementById("fireBtn");
+ var elem = gameElements.getElementById("fireBtn");
if (game.global.firing) {
elem.style.background = "rgba(255,0,0,0.5)";
elem.innerHTML = "Firing";
@@ -251,12 +252,12 @@ function setGather(what) {
var colorOff = "rgba(0,0,0,1)";
if (typeof toGather === 'undefined' && what != "buildings") return;
if (game.global.playerGathering !== "") {
- document.getElementById(game.global.playerGathering + "CollectBtn").innerHTML = setGatherTextAs(game.global.playerGathering, false);
- document.getElementById(game.global.playerGathering + "CollectBtn").style.background = colorOff;
+ gameElements.getElementById(game.global.playerGathering + "CollectBtn").innerHTML = setGatherTextAs(game.global.playerGathering, false);
+ gameElements.getElementById(game.global.playerGathering + "CollectBtn").style.background = colorOff;
}
game.global.playerGathering = what;
- document.getElementById(what + "CollectBtn").innerHTML = setGatherTextAs(what, true);
- document.getElementById(what + "CollectBtn").style.background = colorOn;
+ gameElements.getElementById(what + "CollectBtn").innerHTML = setGatherTextAs(what, true);
+ gameElements.getElementById(what + "CollectBtn").style.background = colorOn;
}
function setGatherTextAs(what, on) {
@@ -429,7 +430,7 @@ function cancelQueueItem(what) {
if (index === 0) {
game.global.crafting = "";
game.global.timeLeftOnCraft = 0;
- document.getElementById("buildingsBar").style.width = "0%";
+ gameElements.getElementById("buildingsBar").style.width = "0%";
}
}
@@ -457,8 +458,8 @@ function startQueue(what) {
}
function craftBuildings(makeUp) {
- var buildingsBar = document.getElementById("buildingsBar");
- var speedElem = document.getElementById("buildSpeed");
+ var buildingsBar = gameElements.getElementById("buildingsBar");
+ var speedElem = gameElements.getElementById("buildSpeed");
if (game.global.crafting === "" && game.global.buildingsQueue.length > 0) {
setNewCraftItem();
}
@@ -482,7 +483,7 @@ function craftBuildings(makeUp) {
game.global.buildingsQueue.splice(0, 1);
if (game.global.buildingsQueue.length <= 0) {
game.global.crafting = "";
- document.getElementById("noQueue").style.display = "block";
+ gameElements.getElementById("noQueue").style.display = "block";
return;
}
var nextCraft = game.global.buildingsQueue[0].split('.')[0];
@@ -495,8 +496,8 @@ function buildBuilding(what) {
var toIncrease;
building.owned++;
if (building.owned == 1 && typeof building.first !== 'undefined') building.first();
- if (document.getElementById(what + "Owned") === null) return;
- document.getElementById(what + "Owned").innerHTML = building.owned;
+ if (gameElements.getElementById(what + "Owned") === null) return;
+ gameElements.getElementById(what + "Owned").innerHTML = building.owned;
if (typeof building.increase === 'undefined') return;
var buildingSplit = building.increase.what.split('.');
if (buildingSplit[0] == "global") toIncrease = game.global;
@@ -512,7 +513,7 @@ function setNewCraftItem() {
var queueItem = game.global.buildingsQueue[0].split('.')[0];
game.global.crafting = queueItem;
game.global.timeLeftOnCraft = game.buildings[queueItem].craftTime;
- document.getElementById("buildingsBar").style.width = "0%";
+ gameElements.getElementById("buildingsBar").style.width = "0%";
}
function calculatePercentageBuildingCost(what, resourceToCheck, costModifier){
@@ -533,8 +534,8 @@ function trapThings() {
if (trimps.owned < trimps.max && trap.owned >= 1)
game.global.timeLeftOnTrap = trimps.speed;
else {
- document.getElementById("trappingBar").style.width = "0%";
- document.getElementById("TrapOwned").innerHTML = trap.owned;
+ gameElements.getElementById("trappingBar").style.width = "0%";
+ gameElements.getElementById("TrapOwned").innerHTML = trap.owned;
return;
}
}
@@ -543,9 +544,9 @@ function trapThings() {
trap.owned--;
trimps.owned++;
game.global.timeLeftOnTrap = -1;
- document.getElementById("TrapOwned").innerHTML = trap.owned;
+ gameElements.getElementById("TrapOwned").innerHTML = trap.owned;
}
- document.getElementById("trappingBar").style.width = (100 - ((game.global.timeLeftOnTrap / trimps.speed) * 100)) + "%";
+ gameElements.getElementById("trappingBar").style.width = (100 - ((game.global.timeLeftOnTrap / trimps.speed) * 100)) + "%";
}
function buyJob(what) {
@@ -626,13 +627,13 @@ function buyUpgrade(what) {
upgrade.done++;
var dif = upgrade.allowed - upgrade.done;
if (dif > 1) {
- document.getElementById(what + "Owned").innerHTML = upgrade.done + "( +" + dif + ")";
+ gameElements.getElementById(what + "Owned").innerHTML = upgrade.done + "( +" + dif + ")";
return;
} else if (dif == 1) {
- document.getElementById(what + "Owned").innerHTML = upgrade.done;
+ gameElements.getElementById(what + "Owned").innerHTML = upgrade.done;
return;
}
- document.getElementById("upgradesHere").removeChild(document.getElementById(what));
+ gameElements.getElementById("upgradesHere").removeChild(gameElements.getElementById(what));
tooltip("hide");
}
@@ -669,7 +670,7 @@ function prestigeEquipment(what) {
}
equipment.level = 0;
equipment.prestige++;
- if (document.getElementById(what + "Numeral") !== null) document.getElementById(what + "Numeral").innerHTML = romanNumeral(equipment.prestige);
+ if (gameElements.getElementById(what + "Numeral") !== null) gameElements.getElementById(what + "Numeral").innerHTML = romanNumeral(equipment.prestige);
}
function createMap() {
@@ -866,7 +867,7 @@ function findHomeForSpecial(special, item, array, max){
}
function drawGrid(maps) { //maps t or f. This function overwrites the current grid, be carefulz
- var grid = (maps) ? document.getElementById("mapGrid") : document.getElementById("grid");
+ var grid = (maps) ? gameElements.getElementById("mapGrid") : gameElements.getElementById("grid");
grid.innerHTML = "";
var cols = (maps) ? (game.global.mapGridArray.length / 10) : 10;
var counter = 0;
@@ -896,10 +897,10 @@ function pauseFight(setup) {
if (setup) game.global.pauseFight = (game.global.pauseFight) ? false : true;
if (game.global.pauseFight) {
game.global.pauseFight = false;
- document.getElementById("pauseFight").innerHTML = "Pause";
+ gameElements.getElementById("pauseFight").innerHTML = "Pause";
} else {
game.global.pauseFight = true;
- document.getElementById("pauseFight").innerHTML = "AutoBattle";
+ gameElements.getElementById("pauseFight").innerHTML = "AutoBattle";
}
}
@@ -908,16 +909,16 @@ function recycleMap() {
var map = getMapIndex(game.global.lookingAtMap);
if (map === null) return;
game.global.mapsOwnedArray.splice(map, 1);
- document.getElementById("mapsHere").removeChild(document.getElementById(game.global.lookingAtMap));
+ gameElements.getElementById("mapsHere").removeChild(gameElements.getElementById(game.global.lookingAtMap));
game.global.lookingAtMap = "";
game.global.currentMapId = "";
game.global.mapsOwned--;
game.global.lastClearedMapCell = -1;
game.resources.fragments.owned++;
- document.getElementById("selectedMapName").innerHTML = "Select a Map!";
- document.getElementById("selectedMapStats").innerHTML = "";
- document.getElementById("selectMapBtn").style.visibility = "hidden";
- document.getElementById("recycleMapBtn").style.visibility = "hidden";
+ gameElements.getElementById("selectedMapName").innerHTML = "Select a Map!";
+ gameElements.getElementById("selectedMapStats").innerHTML = "";
+ gameElements.getElementById("selectMapBtn").style.visibility = "hidden";
+ gameElements.getElementById("recycleMapBtn").style.visibility = "hidden";
}
@@ -952,36 +953,36 @@ function mapsSwitch(updateOnly) {
} else game.global.preMapsActive = true;
}
if (game.global.preMapsActive) {
- document.getElementById("grid").style.display = "none";
- document.getElementById("preMaps").style.display = "block";
- document.getElementById("mapGrid").style.display = "none";
- document.getElementById("mapsBtn").innerHTML = "World";
+ gameElements.getElementById("grid").style.display = "none";
+ gameElements.getElementById("preMaps").style.display = "block";
+ gameElements.getElementById("mapGrid").style.display = "none";
+ gameElements.getElementById("mapsBtn").innerHTML = "World";
if (game.global.currentMapId === "") {
- document.getElementById("selectMapBtn").style.visibility = "hidden";
- document.getElementById("recycleMapBtn").style.visibility = "hidden";
- document.getElementById("selectedMapName").innerHTML = "Select a Map!";
- document.getElementById("selectedMapStats").innerHTML = "";
+ gameElements.getElementById("selectMapBtn").style.visibility = "hidden";
+ gameElements.getElementById("recycleMapBtn").style.visibility = "hidden";
+ gameElements.getElementById("selectedMapName").innerHTML = "Select a Map!";
+ gameElements.getElementById("selectedMapStats").innerHTML = "";
} else {
selectMap(game.global.currentMapId, true);
- document.getElementById("selectMapBtn").innerHTML = "Continue";
- document.getElementById("selectMapBtn").style.visibility = "visible";
- document.getElementById("recycleMapBtn").style.visibility = "visible";
+ gameElements.getElementById("selectMapBtn").innerHTML = "Continue";
+ gameElements.getElementById("selectMapBtn").style.visibility = "visible";
+ gameElements.getElementById("recycleMapBtn").style.visibility = "visible";
}
} else if (game.global.mapsActive) {
var currentMapObj = getCurrentMapObject();
- document.getElementById("grid").style.display = "none";
- document.getElementById("preMaps").style.display = "none";
- document.getElementById("mapGrid").style.display = "table";
- document.getElementById("mapsBtn").innerHTML = "World";
- document.getElementById("worldNumber").innerHTML = "Lv: " + currentMapObj.level;
- document.getElementById("worldName").innerHTML = currentMapObj.name;
+ gameElements.getElementById("grid").style.display = "none";
+ gameElements.getElementById("preMaps").style.display = "none";
+ gameElements.getElementById("mapGrid").style.display = "table";
+ gameElements.getElementById("mapsBtn").innerHTML = "World";
+ gameElements.getElementById("worldNumber").innerHTML = "Lv: " + currentMapObj.level;
+ gameElements.getElementById("worldName").innerHTML = currentMapObj.name;
} else {
- document.getElementById("grid").style.display = "table";
- document.getElementById("preMaps").style.display = "none";
- document.getElementById("mapGrid").style.display = "none";
- document.getElementById("mapsBtn").innerHTML = "Maps";
- document.getElementById("worldNumber").innerHTML = game.global.world;
- document.getElementById("worldName").innerHTML = "World";
+ gameElements.getElementById("grid").style.display = "table";
+ gameElements.getElementById("preMaps").style.display = "none";
+ gameElements.getElementById("mapGrid").style.display = "none";
+ gameElements.getElementById("mapsBtn").innerHTML = "Maps";
+ gameElements.getElementById("worldNumber").innerHTML = game.global.world;
+ gameElements.getElementById("worldName").innerHTML = "World";
}
}
@@ -992,14 +993,14 @@ function selectMap(mapId, force) {
}
var map = getMapIndex(mapId);
map = game.global.mapsOwnedArray[map];
- document.getElementById("selectedMapName").innerHTML = map.name;
- document.getElementById("selectedMapStats").innerHTML = "Size: " + Math.floor(map.size) + ". Difficulty: " + Math.floor(map.difficulty * 100) + "%. Loot Bonus: " + Math.floor(map.loot * 100) + "%.
There are " + addSpecials(true, true, map) + " items to be earned from level " + map.level + "+ maps.";
- if (typeof game.global.mapsOwnedArray[getMapIndex(game.global.lookingAtMap)] !== 'undefined') document.getElementById(game.global.lookingAtMap).style.border = "1px solid white";
- document.getElementById(mapId).style.border = "1px solid red";
+ gameElements.getElementById("selectedMapName").innerHTML = map.name;
+ gameElements.getElementById("selectedMapStats").innerHTML = "Size: " + Math.floor(map.size) + ". Difficulty: " + Math.floor(map.difficulty * 100) + "%. Loot Bonus: " + Math.floor(map.loot * 100) + "%.
There are " + addSpecials(true, true, map) + " items to be earned from level " + map.level + "+ maps.";
+ if (typeof game.global.mapsOwnedArray[getMapIndex(game.global.lookingAtMap)] !== 'undefined') gameElements.getElementById(game.global.lookingAtMap).style.border = "1px solid white";
+ gameElements.getElementById(mapId).style.border = "1px solid red";
game.global.lookingAtMap = mapId;
- document.getElementById("selectMapBtn").innerHTML = "Run Map";
- document.getElementById("selectMapBtn").style.visibility = "visible";
- document.getElementById("recycleMapBtn").style.visibility = "visible";
+ gameElements.getElementById("selectMapBtn").innerHTML = "Run Map";
+ gameElements.getElementById("selectMapBtn").style.visibility = "visible";
+ gameElements.getElementById("recycleMapBtn").style.visibility = "visible";
}
function runMap() {
@@ -1063,18 +1064,18 @@ function battle(force) {
function startFight() {
game.global.battleCounter = 0;
- document.getElementById("badGuyCol").style.visibility = "visible";
+ gameElements.getElementById("badGuyCol").style.visibility = "visible";
var cellNum;
var cell;
var cellElem;
if (game.global.mapsActive) {
cellNum = game.global.lastClearedMapCell + 1;
cell = game.global.mapGridArray[cellNum];
- cellElem = document.getElementById("mapCell" + cellNum);
+ cellElem = gameElements.getElementById("mapCell" + cellNum);
} else {
cellNum = game.global.lastClearedCell + 1;
cell = game.global.gridArray[cellNum];
- cellElem = document.getElementById("cell" + cellNum);
+ cellElem = gameElements.getElementById("cell" + cellNum);
}
cellElem.style.backgroundColor = "yellow";
if (cell.maxHealth == -1) {
@@ -1086,10 +1087,10 @@ function startFight() {
cell.health *= difficulty;
}
cell.maxHealth = cell.health;
- document.getElementById("badGuyBar").style.width = "100%";
- document.getElementById("badGuyName").innerHTML = cell.name;
- document.getElementById("badGuyBar").style.backgroundColor = "blue";
- document.getElementById("badGuyAttack").innerHTML = calculateDamage(cell.attack, true);
+ gameElements.getElementById("badGuyBar").style.width = "100%";
+ gameElements.getElementById("badGuyName").innerHTML = cell.name;
+ gameElements.getElementById("badGuyBar").style.backgroundColor = "blue";
+ gameElements.getElementById("badGuyAttack").innerHTML = calculateDamage(cell.attack, true);
}
if (game.global.soldierHealth === 0) {
var trimpsFighting = game.resources.trimps.maxSoldiers;
@@ -1097,18 +1098,18 @@ function startFight() {
game.global.soldierHealth = game.global.soldierHealthMax;
game.global.soldierCurrentAttack = (game.global.attack * trimpsFighting);
game.global.soldierCurrentBlock = Math.floor((game.global.block * (game.jobs.Trainer.owned * (game.jobs.Trainer.modifier / 100)) + game.global.block) * trimpsFighting);
- document.getElementById("trimpsFighting").innerHTML = prettify(trimpsFighting, 0);
- document.getElementById("goodGuyBar").style.width = "100%";
- document.getElementById("goodGuyBlock").innerHTML = prettify(game.global.soldierCurrentBlock);
- document.getElementById("goodGuyAttack").innerHTML = calculateDamage(game.global.soldierCurrentAttack, true);
+ gameElements.getElementById("trimpsFighting").innerHTML = prettify(trimpsFighting, 0);
+ gameElements.getElementById("goodGuyBar").style.width = "100%";
+ gameElements.getElementById("goodGuyBlock").innerHTML = prettify(game.global.soldierCurrentBlock);
+ gameElements.getElementById("goodGuyAttack").innerHTML = calculateDamage(game.global.soldierCurrentAttack, true);
}
game.global.fighting = true;
game.global.lastFightUpdate = new Date();
- document.getElementById("goodGuyHealth").innerHTML = prettify(game.global.soldierHealth, 0);
- document.getElementById("goodGuyHealthMax").innerHTML = prettify(game.global.soldierHealthMax, 0);
- document.getElementById("goodGuyBar").style.backgroundColor = "blue";
- document.getElementById("badGuyHealth").innerHTML = prettify(cell.health, 0);
- document.getElementById("badGuyHealthMax").innerHTML = prettify(cell.maxHealth, 0);
+ gameElements.getElementById("goodGuyHealth").innerHTML = prettify(game.global.soldierHealth, 0);
+ gameElements.getElementById("goodGuyHealthMax").innerHTML = prettify(game.global.soldierHealthMax, 0);
+ gameElements.getElementById("goodGuyBar").style.backgroundColor = "blue";
+ gameElements.getElementById("badGuyHealth").innerHTML = prettify(cell.health, 0);
+ gameElements.getElementById("badGuyHealthMax").innerHTML = prettify(cell.maxHealth, 0);
}
@@ -1125,10 +1126,10 @@ function calculateDamage(number, buildString) { //number = base attack
function nextWorld() {
game.global.world++;
//ga('send', 'event', 'Next World', 'World: ' + game.global.world);
- document.getElementById("worldNumber").innerHTML = game.global.world;
+ gameElements.getElementById("worldNumber").innerHTML = game.global.world;
game.global.lastClearedCell = -1;
game.global.gridArray = [];
- document.getElementById("grid").innerHTML = "";
+ gameElements.getElementById("grid").innerHTML = "";
buildGrid();
drawGrid();
}
@@ -1147,11 +1148,11 @@ function fight(makeUp) {
if (game.global.mapsActive) {
cellNum = game.global.lastClearedMapCell + 1;
cell = game.global.mapGridArray[cellNum];
- cellElem = document.getElementById("mapCell" + cellNum);
+ cellElem = gameElements.getElementById("mapCell" + cellNum);
} else {
cellNum = game.global.lastClearedCell + 1;
cell = game.global.gridArray[cellNum];
- cellElem = document.getElementById("cell" + cellNum);
+ cellElem = gameElements.getElementById("cell" + cellNum);
}
if (cell.health <= 0) {
message("You killed a " + cell.name + "!", "Combat");
@@ -1160,7 +1161,7 @@ function fight(makeUp) {
if (game.global.mapsActive) game.global.lastClearedMapCell = cellNum;
else game.global.lastClearedCell = cellNum;
game.global.fighting = false;
- document.getElementById("badGuyCol").style.visibility = "hidden";
+ gameElements.getElementById("badGuyCol").style.visibility = "hidden";
var unlock;
if (game.global.mapsActive) unlock = game.mapUnlocks[cell.special];
else unlock = game.worldUnlocks[cell.special];
@@ -1204,11 +1205,11 @@ function fight(makeUp) {
}
game.global.lastFightUpdate = new Date();
if (makeUp) return;
- document.getElementById("badGuyHealth").innerHTML = prettify(cell.health, 0);
+ gameElements.getElementById("badGuyHealth").innerHTML = prettify(cell.health, 0);
updateGoodBar();
var percent = ((cell.health / cell.maxHealth) * 100);
- document.getElementById("badGuyBar").style.width = percent + "%";
- document.getElementById("badGuyBar").style.backgroundColor = getBarColor(percent);
+ gameElements.getElementById("badGuyBar").style.width = percent + "%";
+ gameElements.getElementById("badGuyBar").style.backgroundColor = getBarColor(percent);
/* if (game.jobs.Medic.owned >= 1) setTimeout(heal, 500); */
}
@@ -1221,10 +1222,10 @@ function fight(makeUp) {
} */
function updateGoodBar() {
- document.getElementById("goodGuyHealth").innerHTML = prettify(game.global.soldierHealth, 0);
+ gameElements.getElementById("goodGuyHealth").innerHTML = prettify(game.global.soldierHealth, 0);
var percent = ((game.global.soldierHealth / game.global.soldierHealthMax) * 100);
- document.getElementById("goodGuyBar").style.width = percent + "%";
- document.getElementById("goodGuyBar").style.backgroundColor = getBarColor(percent);
+ gameElements.getElementById("goodGuyBar").style.width = percent + "%";
+ gameElements.getElementById("goodGuyBar").style.backgroundColor = getBarColor(percent);
}
function buyEquipment(what) {
@@ -1257,7 +1258,7 @@ function affordOneTier(what, whereFrom, take) {
function fadeIn(elem, speed) {
var opacity = 0;
- elem = document.getElementById(elem);
+ elem = gameElements.getElementById(elem);
elem.style.opacity = 0;
if (elem.style.display == "none") elem.style.display = "block";
if (elem.style.visibility == "hidden") elem.style.visibility = "visible";
@@ -1275,7 +1276,7 @@ function fadeIn(elem, speed) {
function cheatALittle() {
if (game.global.playerModifier <= 2) {
game.global.playerModifier = 2;
- document.getElementById("cheatTd").style.display = "none";
+ gameElements.getElementById("cheatTd").style.display = "none";
message("Your player modifier has been boosted to 200%!", "Notices");
return;
}
@@ -1319,4 +1320,4 @@ setTimeout(gameTimeout(), (1000 / game.settings.speed));
load();
-document.getElementById("versionNumber").innerHTML = game.global.version;
\ No newline at end of file
+gameElements.getElementById("versionNumber").innerHTML = game.global.version;
\ No newline at end of file
diff --git a/primitiveDomCache.js b/primitiveDomCache.js
new file mode 100644
index 00000000..32d057d3
--- /dev/null
+++ b/primitiveDomCache.js
@@ -0,0 +1,72 @@
+/* Trimps
+ Copyright (C) 2015 Zach Hood
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program (if you are reading this on the original
+ author's website, you can find a copy at
+ ). If not, see
+ . */
+// primitive element caching
+// While I recommend using jQuery for this kind of thing, this should improve performance a little.
+
+var gameElements = {
+ nodes : {},
+ observer:new MutationObserver(
+ function(mutations)
+ {
+ mutations.forEach(
+ function(mutation)
+ {
+ for(var i in mutation.removedNodes)
+ {
+ var node = mutation.removedNodes[i];
+ if(node.id && gameElements.nodes[node.id])
+ {
+ delete(gameElements.nodes[node.id]);
+ }
+ }
+ }
+ );
+ }
+ ),
+ observerOptions:{subtree:false, childList:true},
+ getElementById:function(id)
+ {
+ if(!id)
+ {
+ return null;
+ }
+ if(this.nodes[id])
+ {
+ return this.nodes[id];
+ }
+ console.log('searching for element' +id);
+ var elem = document.getElementById(id);
+
+ if(elem === null)
+ {
+ console.log('Element '+id+' not found');
+ return null;
+ }
+
+ console.log('returning element');
+ this.observer.observe(elem.parentNode, this.observerOptions);
+
+ this.nodes[id] = elem;
+ return elem;
+ },
+ removeElement:function(id)
+ {
+
+ }
+};
\ No newline at end of file
diff --git a/updates.js b/updates.js
index 4d27aabf..b50a0a65 100644
--- a/updates.js
+++ b/updates.js
@@ -20,13 +20,13 @@
function tooltip(what, isItIn, event) {
if (game.global.lockTooltip) return;
- var elem = document.getElementById("tooltipDiv");
+ var elem = gameElements.getElementById("tooltipDiv");
if (what == "hide"){
elem.style.display = "none";
return;
}
- if (document.getElementById(what + "Alert") !== null) document.getElementById(what + "Alert").innerHTML = "";
- if (document.getElementById(isItIn + "Alert") !== null) document.getElementById(isItIn + "Alert").innerHTML = "";
+ if (gameElements.getElementById(what + "Alert") !== null) gameElements.getElementById(what + "Alert").innerHTML = "";
+ if (gameElements.getElementById(isItIn + "Alert") !== null) gameElements.getElementById(isItIn + "Alert").innerHTML = "";
if (event != "update"){
var cordx = 0;
var cordy = 0;
@@ -166,9 +166,9 @@ function tooltip(what, isItIn, event) {
else
tooltipText = tipSplit[0] + prettify(toTip[tipSplit[1]]) + tipSplit[2];
}
- document.getElementById("tipTitle").innerHTML = what;
- document.getElementById("tipText").innerHTML = tooltipText;
- document.getElementById("tipCost").innerHTML = costText;
+ gameElements.getElementById("tipTitle").innerHTML = what;
+ gameElements.getElementById("tipText").innerHTML = tooltipText;
+ gameElements.getElementById("tipCost").innerHTML = costText;
elem.style.display = "block";
}
@@ -177,81 +177,38 @@ function unlockTooltip(){
}
function prettify(number) {
+ var numberTmp = number;
number = Math.round(number * 1000000) / 1000000;
- var base = 0;
- while (number >= 1000){
- number /= 1000;
- base++;
+
+ // this is the mathematical way of changing base
+ // and so it's a little more efficient than looping
+ if(number === 0)
+ {
+ return prettifySub(0);
}
- if (base === 0) return prettifySub(number);
+ var base = Math.floor(Math.log(number)/Math.log(1000));
+
+ if (base <= 0) return prettifySub(number);
+ number /= Math.pow(1000, base);
+
+ var suffices = [
+ 'K', 'M', 'B', 'T', 'Qa', 'Qi', 'Sx', 'Sp', 'Oc', 'No', 'Dc', 'Ud',
+ 'Dd', 'Td', 'Qad', 'Qid', 'Sxd', 'Spd', 'Od', 'Nd', 'V'
+ ];
var suffix;
- switch (base) {
- case 1:
- suffix = "K";
- break;
- case 2:
- suffix = "M";
- break;
- case 3:
- suffix = "B";
- break;
- case 4:
- suffix = "T";
- break;
- case 5:
- suffix = "Qa";
- break;
- case 6:
- suffix = "Qi";
- break;
- case 7:
- suffix = "Sx";
- break;
- case 8:
- suffix = "Sp";
- break;
- case 9:
- suffix = "Oc";
- break;
- case 10:
- suffix = "No";
- break;
- case 11:
- suffix = "Dc";
- break;
- case 12:
- suffix = "Ud";
- break;
- case 13:
- suffix = "Dd";
- break;
- case 14:
- suffix = "Td";
- break;
- case 15:
- suffix = "Qad";
- break;
- case 16:
- suffix = "Qid";
- break;
- case 17:
- suffix = "Sxd";
- break;
- case 18:
- suffix = "Spd";
- break;
- case 19:
- suffix = "Od";
- break;
- case 20:
- suffix = "Nd";
- break;
- case 21:
- suffix = "V";
- break;
+ if (base <= suffices.length && base > 0)
+ {
+ suffix = suffices[base-1];
+ }
+ else
+ {
+ // I strongly recommend using scientific notation instead of ++
+ // if the base is 22, 23, or 24 you'll end up with the same indicator
+ // being shown which will confuse late game players.
+ return parseFloat(numberTmp).toExponential(3);
}
- if (base > 21) suffix = "++";
+
return prettifySub(number) + suffix;
}
@@ -306,37 +263,37 @@ function prettifySub(number){
}
function resetGame() {
- document.getElementById("wood").style.visibility = "hidden";
- document.getElementById("metal").style.visibility = "hidden";
- document.getElementById("trimps").style.visibility = "hidden";
- document.getElementById("gems").style.visibility = "hidden";
- document.getElementById("buyCol").style.visibility = "hidden";
- document.getElementById("unempHide").style.visibility = "hidden";
- document.getElementById("empHide").style.visibility = "hidden";
- document.getElementById("upgradesTitleSpan").innerHTML = "Upgrades (research first)";
- document.getElementById("science").style.visibility = "hidden";
- document.getElementById("battleContainer").style.visibility = "hidden";
- document.getElementById("pauseFight").style.visibility = "hidden";
- document.getElementById("blockDiv").style.visibility = "hidden";
- document.getElementById("badGuyCol").style.visibility = "hidden";
- document.getElementById("jobsHere").innerHTML = "";
- document.getElementById("foremenCount").innerHTML = "";
- document.getElementById("JobsFilter").style.visibility = "hidden";
- document.getElementById("UpgradesFilter").style.visibility = "hidden";
- document.getElementById("EquipmentFilter").style.visibility = "hidden";
- document.getElementById("upgradesHere").innerHTML = "";
- document.getElementById("mapsBtn").style.visibility = "hidden";
- document.getElementById("grid").style.display = "block";
- document.getElementById("preMaps").style.display = "none";
- document.getElementById("mapGrid").style.display = "none";
- document.getElementById("buildingsHere").innerHTML = "";
- document.getElementById("grid").innerHTML = "";
- document.getElementById("equipmentHere").innerHTML = "";
- document.getElementById("buildingsQueue").innerHTML = "Nothing in queue...";
- document.getElementById("log").innerHTML = "";
- document.getElementById("worldNumber").innerHTML = "1";
- document.getElementById("mapsHere").innerHTML = "";
- document.getElementById("sciencePs").innerHTML = "+0/sec";
+ gameElements.getElementById("wood").style.visibility = "hidden";
+ gameElements.getElementById("metal").style.visibility = "hidden";
+ gameElements.getElementById("trimps").style.visibility = "hidden";
+ gameElements.getElementById("gems").style.visibility = "hidden";
+ gameElements.getElementById("buyCol").style.visibility = "hidden";
+ gameElements.getElementById("unempHide").style.visibility = "hidden";
+ gameElements.getElementById("empHide").style.visibility = "hidden";
+ gameElements.getElementById("upgradesTitleSpan").innerHTML = "Upgrades (research first)";
+ gameElements.getElementById("science").style.visibility = "hidden";
+ gameElements.getElementById("battleContainer").style.visibility = "hidden";
+ gameElements.getElementById("pauseFight").style.visibility = "hidden";
+ gameElements.getElementById("blockDiv").style.visibility = "hidden";
+ gameElements.getElementById("badGuyCol").style.visibility = "hidden";
+ gameElements.getElementById("jobsHere").innerHTML = "";
+ gameElements.getElementById("foremenCount").innerHTML = "";
+ gameElements.getElementById("JobsFilter").style.visibility = "hidden";
+ gameElements.getElementById("UpgradesFilter").style.visibility = "hidden";
+ gameElements.getElementById("EquipmentFilter").style.visibility = "hidden";
+ gameElements.getElementById("upgradesHere").innerHTML = "";
+ gameElements.getElementById("mapsBtn").style.visibility = "hidden";
+ gameElements.getElementById("grid").style.display = "block";
+ gameElements.getElementById("preMaps").style.display = "none";
+ gameElements.getElementById("mapGrid").style.display = "none";
+ gameElements.getElementById("buildingsHere").innerHTML = "";
+ gameElements.getElementById("grid").innerHTML = "";
+ gameElements.getElementById("equipmentHere").innerHTML = "";
+ gameElements.getElementById("buildingsQueue").innerHTML = "Nothing in queue...";
+ gameElements.getElementById("log").innerHTML = "";
+ gameElements.getElementById("worldNumber").innerHTML = "1";
+ gameElements.getElementById("mapsHere").innerHTML = "";
+ gameElements.getElementById("sciencePs").innerHTML = "+0/sec";
game = null;
game = newGame();
@@ -348,15 +305,15 @@ function resetGame() {
}
function message(messageString, type) {
- var log = document.getElementById("log");
+ var log = gameElements.getElementById("log");
var displayType = (game.global.messages[type]) ? "block" : "none";
if (type == "Story") messageString = "" + messageString;
if (type == "Combat") messageString = "" + messageString;
var addId = "";
if (messageString == "Game Saved!") {
addId = " id='saveGame'";
- if (document.getElementById('saveGame') !== null){
- log.removeChild(document.getElementById('saveGame'));
+ if (gameElements.getElementById('saveGame') !== null){
+ log.removeChild(gameElements.getElementById('saveGame'));
}
}
if (type == "Notices") messageString = "" + messageString;
@@ -382,7 +339,7 @@ function trimMessages(what){
}
function filterMessage(what, updateOnly){ //send true for updateOnly
- var log = document.getElementById("log");
+ var log = gameElements.getElementById("log");
var displayed = game.global.messages[what];
if (!updateOnly){
displayed = (displayed) ? false : true;
@@ -390,7 +347,7 @@ function filterMessage(what, updateOnly){ //send true for updateOnly
}
var toChange = document.getElementsByClassName(what + "Message");
var btnText = (displayed) ? what : what + " off";
- var btnElem = document.getElementById(what + "Filter");
+ var btnElem = gameElements.getElementById(what + "Filter");
btnElem.innerHTML = btnText;
btnElem.className = "";
btnElem.className = getTabClass(displayed);
@@ -410,11 +367,11 @@ function filterTabs (what, updateOnly) {
game.global.buyTabs[what] = displayed;
}
var btnText = (displayed) ? what : what + " off";
- var btnElem = document.getElementById(what + "Filter");
- document.getElementById(what + "Text").innerHTML = btnText;
+ var btnElem = gameElements.getElementById(what + "Filter");
+ gameElements.getElementById(what + "Text").innerHTML = btnText;
btnElem.className = "";
btnElem.className = getTabClass(displayed);
- document.getElementById(what + "Container").style.display = (displayed) ? "block" : "none";
+ gameElements.getElementById(what + "Container").style.display = (displayed) ? "block" : "none";
}
@@ -428,7 +385,7 @@ function numTab (what) {
else
game.global.numTab = what;
for (var x = 1; x <= 4; x++){
- document.getElementById("tab" + x).style.background = (what == x) ? "rgba(0,0,0,0.5)" : "rgba(255,255,255,0.25)";
+ gameElements.getElementById("tab" + x).style.background = (what == x) ? "rgba(0,0,0,0.5)" : "rgba(255,255,255,0.25)";
var num;
switch (x){
case 1:
@@ -450,7 +407,7 @@ function numTab (what) {
}
/* function shrink(what) { //fired by player when clicking shrink on main menu item
- var toShrink = document.getElementById(what + "Here");
+ var toShrink = gameElements.getElementById(what + "Here");
var alreadyShown = game.global.menu[what];
toShrink.style.display = (alreadyShown) ? "none" : "block";
game.global.menu[what] = (alreadyShown) ? false : true;
@@ -465,7 +422,7 @@ function updateSideSize() { //resizes main menu items
var percent = Math.floor(72 / count);
for (menuItem in game.global.menu) {
if (game.global.menu[menuItem]) {
- document.getElementById(menuItem + "Here").style.height = percent + "%";
+ gameElements.getElementById(menuItem + "Here").style.height = percent + "%";
}
}
} */
@@ -473,15 +430,15 @@ function updateSideSize() { //resizes main menu items
//
//Buildings Specific
function removeQueueItem(what) {
- var elem = document.getElementById("buildingsQueue");
- elem.removeChild(document.getElementById(what + "QueueItem"));
- if (game.global.buildingsQueue.length === 0) document.getElementById("noQueue").style.display = "block";
+ var elem = gameElements.getElementById("buildingsQueue");
+ elem.removeChild(gameElements.getElementById(what + "QueueItem"));
+ if (game.global.buildingsQueue.length === 0) gameElements.getElementById("noQueue").style.display = "block";
}
function addQueueItem(what) {
- var elem = document.getElementById("buildingsQueue");
- document.getElementById("noQueue").style.display = "none";
+ var elem = gameElements.getElementById("buildingsQueue");
+ gameElements.getElementById("noQueue").style.display = "none";
name = what.split('.')[0];
elem.innerHTML += '' + name + '
';
}
@@ -493,10 +450,10 @@ function updateLabels() { //Tried just updating as something changes, but seems
//Resources (food, wood, metal, trimps, science). All but science have max and a bar. Per second will be handled in separate function, and called from job loop.
for (var item in game.resources){
toUpdate = game.resources[item];
- document.getElementById(item + "Owned").innerHTML = prettify(Math.floor(toUpdate.owned), true);
+ gameElements.getElementById(item + "Owned").innerHTML = prettify(Math.floor(toUpdate.owned), true);
if (toUpdate.max == -1) continue;
- document.getElementById(item + "Max").innerHTML = prettify(toUpdate.max);
- var bar = document.getElementById(item + "Bar");
+ gameElements.getElementById(item + "Max").innerHTML = prettify(toUpdate.max);
+ var bar = gameElements.getElementById(item + "Bar");
var percentToMax = ((toUpdate.owned / toUpdate.max) * 100);
bar.style.backgroundColor = getBarColor(100 - percentToMax);
bar.style.width = percentToMax + "%";
@@ -506,15 +463,15 @@ function updateLabels() { //Tried just updating as something changes, but seems
for (var itemA in game.buildings){
toUpdate = game.buildings[itemA];
if (toUpdate.locked == 1) continue;
- var elem = document.getElementById(itemA + "Owned");
+ var elem = gameElements.getElementById(itemA + "Owned");
if (elem === null){
unlockBuilding(itemA);
- elem = document.getElementById(itemA + "Owned");
+ elem = gameElements.getElementById(itemA + "Owned");
}
elem.innerHTML = toUpdate.owned;
if (itemA == "Trap") {
- document.getElementById("trimpTrapText").innerHTML = toUpdate.owned;
- document.getElementById("trimpTrapText2").innerHTML = toUpdate.owned;
+ gameElements.getElementById("trimpTrapText").innerHTML = toUpdate.owned;
+ gameElements.getElementById("trimpTrapText2").innerHTML = toUpdate.owned;
}
}
//Jobs, check PS here and stuff. Trimps per second is handled by breed() function
@@ -526,8 +483,8 @@ function updateLabels() { //Tried just updating as something changes, but seems
updatePs(toUpdate);
continue;
}
- if (document.getElementById(itemB) === null) unlockJob(itemB);
- document.getElementById(itemB + "Owned").innerHTML = toUpdate.owned;
+ if (gameElements.getElementById(itemB) === null) unlockJob(itemB);
+ gameElements.getElementById(itemB + "Owned").innerHTML = toUpdate.owned;
var perSec = (toUpdate.owned * toUpdate.modifier);
updatePs(toUpdate);
}
@@ -535,14 +492,14 @@ function updateLabels() { //Tried just updating as something changes, but seems
for (var itemC in game.upgrades){
toUpdate = game.upgrades[itemC];
if (toUpdate.locked == 1) continue;
- if (document.getElementById(itemC) === null) unlockUpgrade(itemC, true);
+ if (gameElements.getElementById(itemC) === null) unlockUpgrade(itemC, true);
}
//Equipment
for (var itemD in game.equipment){
toUpdate = game.equipment[itemD];
if (toUpdate.locked == 1) continue;
- if (document.getElementById(itemD) === null) unlockEquipment(itemD);
- document.getElementById(itemD + "Owned").innerHTML = toUpdate.level;
+ if (gameElements.getElementById(itemD) === null) unlockEquipment(itemD);
+ gameElements.getElementById(itemD + "Owned").innerHTML = toUpdate.level;
}
}
@@ -552,13 +509,13 @@ function updatePs(jobObj, trimps){ //trimps is true/false, send PS as first if t
var elem;
if (trimps) {
psText = jobObj.toFixed(3);
- elem = document.getElementById("trimpsPs");
+ elem = gameElements.getElementById("trimpsPs");
}
else{
var increase = jobObj.increase;
psText = (jobObj.owned * jobObj.modifier);
if (game.global.playerGathering == increase) psText += game.global.playerModifier;
- elem = document.getElementById(increase + "Ps");
+ elem = gameElements.getElementById(increase + "Ps");
if (game.resources[increase].owned >= game.resources[increase].max && game.resources[increase].max != -1) psText = 0;
psText = psText.toFixed(1);
}
@@ -574,38 +531,38 @@ function updatePs(jobObj, trimps){ //trimps is true/false, send PS as first if t
function updateSideTrimps(){
var trimps = game.resources.trimps;
- document.getElementById("trimpsEmployed").innerHTML = prettify(trimps.employed);
+ gameElements.getElementById("trimpsEmployed").innerHTML = prettify(trimps.employed);
var breedCount = (trimps.owned - trimps.employed > 2) ? prettify(Math.floor(trimps.owned - trimps.employed)) : 0;
- document.getElementById("trimpsUnemployed").innerHTML = breedCount;
- document.getElementById("maxEmployed").innerHTML = prettify(Math.ceil(trimps.max / 2));
+ gameElements.getElementById("trimpsUnemployed").innerHTML = breedCount;
+ gameElements.getElementById("maxEmployed").innerHTML = prettify(Math.ceil(trimps.max / 2));
var free = (Math.ceil(trimps.max / 2) - trimps.employed);
free = (free > Math.floor(trimps.owned)) ? Math.floor(trimps.owned - trimps.employed) : free;
- document.getElementById("jobsTitleUnemployed").innerHTML = prettify(free) + " free";
+ gameElements.getElementById("jobsTitleUnemployed").innerHTML = prettify(free) + " free";
}
function unlockBuilding(what) {
var locked = game.buildings[what].locked;
game.buildings[what].locked = 0;
if (game.global.spreadSheetMode) return;
- document.getElementById("buildingsHere").innerHTML += '' + what + '
0
';
+ gameElements.getElementById("buildingsHere").innerHTML += '' + what + '
0
';
if (locked == 1){
- document.getElementById("buildingsAlert").innerHTML = "!";
- document.getElementById(what + "Alert").innerHTML = "!";
+ gameElements.getElementById("buildingsAlert").innerHTML = "!";
+ gameElements.getElementById(what + "Alert").innerHTML = "!";
}
}
function unlockJob(what) {
- document.getElementById("jobsHere").innerHTML += '' + what + '
0
';
+ gameElements.getElementById("jobsHere").innerHTML += '' + what + '
0
';
if (game.jobs[what].locked == 1){
- document.getElementById("jobsAlert").innerHTML = "!";
- document.getElementById(what + "Alert").innerHTML = "!";
+ gameElements.getElementById("jobsAlert").innerHTML = "!";
+ gameElements.getElementById(what + "Alert").innerHTML = "!";
}
game.jobs[what].locked = 0;
}
function unlockMap(what) { //what here is the array index
var item = game.global.mapsOwnedArray[what];
- var elem = document.getElementById("mapsHere");
+ var elem = gameElements.getElementById("mapsHere");
elem.innerHTML = '' + item.name + '
Level ' + item.level + '
' + elem.innerHTML;
//onmouseover="tooltip(\'' + item.id + '\',\'maps\',event)" onmouseout="tooltip(\'hide\')"
}
@@ -622,12 +579,12 @@ function unlockUpgrade(what, displayOnly) {
if (!displayOnly) {
upgrade.allowed++;
}
- if (document.getElementById(what + "Owned") === null)
- document.getElementById("upgradesHere").innerHTML += '' + what + '
' + done + '
';
- if (dif > 1) document.getElementById(what + "Owned").innerHTML = upgrade.done + "(+" + dif + ")";
+ if (gameElements.getElementById(what + "Owned") === null)
+ gameElements.getElementById("upgradesHere").innerHTML += '' + what + '
' + done + '
';
+ if (dif > 1) gameElements.getElementById(what + "Owned").innerHTML = upgrade.done + "(+" + dif + ")";
if (!displayOnly){
- document.getElementById("upgradesAlert").innerHTML = "!";
- document.getElementById(what + "Alert").innerHTML = "!";
+ gameElements.getElementById("upgradesAlert").innerHTML = "!";
+ gameElements.getElementById(what + "Alert").innerHTML = "!";
}
}
@@ -686,12 +643,12 @@ function checkButtons(what) {
function updateButtonColor(what, canAfford, isJob) {
var color = (canAfford) ? "black" : "grey";
if (isJob && game.global.firing === true) color = (game.jobs[what].owned >= 1) ? "red" : "grey";
- document.getElementById(what).style.backgroundColor = color;
+ gameElements.getElementById(what).style.backgroundColor = color;
}
function unlockEquipment(what) {
var equipment = game.equipment[what];
- var elem = document.getElementById("equipmentHere");
+ var elem = gameElements.getElementById("equipmentHere");
equipment.locked = 0;
var numeral = "";
if (equipment.prestige > 1){