function secondsToTime(secs)
{
var h = Math.floor(secs / (60 * 60));
var divisor_for_minutes = secs % (60 * 60);
var m = Math.floor(divisor_for_minutes / 60);
var divisor_for_seconds = divisor_for_minutes % 60;
var s = Math.ceil(divisor_for_seconds);
return h + "h " + m + "m " + s + "s";
}
function printResources(r) {
let enough = true;
let html = "";
html += `Requires:`;
if (r.Metal <= user.Resources.Metal) {
html += ` Metal: ` + r.Metal + ``;
} else {
enough = false;
html += ` Metal: ` + r.Metal + ``;
}
if (r.Crystal <= user.Resources.Crystal) {
html += ` Crystal: ` + r.Crystal + ``;
} else {
enough = false;
html += ` Crystal: ` + r.Crystal + ``;
}
if (r.Deuterium <= user.Resources.Deuterium) {
html += ` Deuterium: ` + r.Deuterium + ``;
} else {
enough = false;
html += ` Deuterium: ` + r.Deuterium + ``;
}
if (r.Energy <= user.Resources.Energy) {
html += ` Energy: ` + r.Energy + ``;
} else {
enough = false;
html += ` Energy: ` + r.Energy + ``;
}
return {html, enough};
}
function printPlanet(planet) {
let r = {};
document.getElementById("planetname").innerHTML = planet.Name;
if (planet.CurrentBuild.Title !== "") {
document.getElementById("currentBuild").innerHTML = `
Currently building: ` + planet.CurrentBuild.Title + `
Finishes at: ` + planet.CurrentBuild.Ends + `
`
} else {
document.getElementById("currentBuild").innerHTML = "";
}
// metalmine
if (planet.Buildings.metalmine == undefined) {
document.getElementById("btnBuildMetalMine").innerHTML = `
Build building
`;
r = metalmineCost(1);
t = constructionTime(r, 1);
resrourcesHtml = printResources(r);
document.getElementById("metalmineResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
} else {
document.getElementById("metalmineLevel").innerHTML = "(Level " + planet.Buildings.metalmine + ")";
document.getElementById("btnBuildMetalMine").innerHTML = `Build level ` + (+ (planet.Buildings.metalmine) + + (1)) + `
`;
r = metalmineCost((+ (planet.Buildings.metalmine) + + (1)));
t = constructionTime(r, (+ (planet.Buildings.metalmine) + + (1)));
resrourcesHtml = printResources(r);
document.getElementById("metalmineResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
}
if (!resrourcesHtml.enough) {
document.getElementById("btnBuildMetalMine").innerHTML = `not enough resources`;
}
if (planet.CurrentBuild.Title !== "") {
document.getElementById("btnBuildMetalMine").innerHTML = `building`;
}
// crystalmine
if (planet.Buildings.crystalmine == undefined) {
document.getElementById("btnBuildCrystalMine").innerHTML = `Build building
`;
r = crystalmineCost(1);
t = constructionTime(r, 1);
resrourcesHtml = printResources(r);
document.getElementById("crystalmineResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
} else {
document.getElementById("crystalmineLevel").innerHTML = "(Level " + planet.Buildings.crystalmine + ")";
document.getElementById("btnBuildCrystalMine").innerHTML = `Build level ` + (+ (planet.Buildings.crystalmine) + + (1)) + `
`;
r = crystalmineCost((+ (planet.Buildings.crystalmine) + + (1)));
t = constructionTime(r, (+ (planet.Buildings.crystalmine) + + (1)));
resrourcesHtml = printResources(r);
document.getElementById("crystalmineResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
}
if (!resrourcesHtml.enough) {
document.getElementById("btnBuildCrystalMine").innerHTML = `not enough resources`;
}
if (planet.CurrentBuild.Title !== "") {
document.getElementById("btnBuildCrystalMine").innerHTML = `building`;
}
// deuteriummine{
if (planet.Buildings.deuteriummine == undefined) {
document.getElementById("btnBuildDeuteriumMine").innerHTML = `Build building
`;
r = deuteriummineCost(1);
t = constructionTime(r, 1);
resrourcesHtml = printResources(r);
document.getElementById("deuteriummineResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
} else {
document.getElementById("deuteriummineLevel").innerHTML = "(Level " + planet.Buildings.deuteriummine + ")";
document.getElementById("btnBuildDeuteriumMine").innerHTML = `Build level ` + (+ (planet.Buildings.deuteriummine) + + (1)) + `
`;
r = deuteriummineCost((+ (planet.Buildings.deuteriummine) + + (1)));
t = constructionTime(r, (+ (planet.Buildings.deuteriummine) + + (1)));
resrourcesHtml = printResources(r);
document.getElementById("deuteriummineResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
}
if (!resrourcesHtml.enough) {
document.getElementById("btnBuildDeuteriumMine").innerHTML = `not enough resources`;
}
if (planet.CurrentBuild.Title !== "") {
document.getElementById("btnBuildDeuteriumMine").innerHTML = `building`;
}
// energymine
if (planet.Buildings.energymine == undefined) {
document.getElementById("btnBuildEnergyMine").innerHTML = `Build building
`;
r = energymineCost(1);
t = constructionTime(r, 1);
resrourcesHtml = printResources(r);
document.getElementById("energymineResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
} else {
document.getElementById("energymineLevel").innerHTML = "(Level " + planet.Buildings.energymine + ")";
document.getElementById("btnBuildEnergyMine").innerHTML = `Build level ` + (+ (planet.Buildings.energymine) + + (1)) + `
`;
r = energymineCost((+ (planet.Buildings.energymine) + + (1)));
t = constructionTime(r, (+ (planet.Buildings.energymine) + + (1)));
resrourcesHtml = printResources(r);
document.getElementById("energymineResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
}
if (!resrourcesHtml.enough) {
document.getElementById("btnBuildEnergyMine").innerHTML = `not enough resources`;
}
if (planet.CurrentBuild.Title !== "") {
document.getElementById("btnBuildEnergyMine").innerHTML = `building`;
}
// fusionreactor
if (planet.Buildings.fusionreactor == undefined) {
document.getElementById("btnBuildFusionReactor").innerHTML = `Build building
`;
r = fusionreactorCost(1);
t = constructionTime(r, 1);
resrourcesHtml = printResources(r);
document.getElementById("fusionreactorResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
} else {
document.getElementById("fusionreactorLevel").innerHTML = "(Level " + planet.Buildings.fusionreactor + ")";
document.getElementById("btnBuildFusionReactor").innerHTML = `Build level ` + (+ (planet.Buildings.fusionreactor) + + (1)) + `
`;
r = fusionreactorCost((+ (planet.Buildings.fusionreactor) + + (1)));
t = constructionTime(r, (+ (planet.Buildings.fusionreactor) + + (1)));
resrourcesHtml = printResources(r);
document.getElementById("fusionreactorResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
}
if (!resrourcesHtml.enough) {
document.getElementById("btnBuildFusionReactor").innerHTML = `not enough resources`;
}
if (planet.CurrentBuild.Title !== "") {
document.getElementById("btnBuildFusionReactor").innerHTML = `building`;
}
// roboticsfactory
if (planet.Buildings.roboticsfactory == undefined) {
document.getElementById("btnBuildRoboticsFactory").innerHTML = `Build building
`;
r = roboticsfactoryCost(1);
t = constructionTime(r, 1);
resrourcesHtml = printResources(r);
document.getElementById("roboticsfactoryResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
} else {
document.getElementById("roboticsfactoryLevel").innerHTML = "(Level " + planet.Buildings.roboticsfactory + ")";
document.getElementById("btnBuildRoboticsFactory").innerHTML = `Build level ` + (+ (planet.Buildings.roboticsfactory) + + (1)) + `
`;
r = roboticsfactoryCost((+ (planet.Buildings.roboticsfactory) + + (1)));
t = constructionTime(r, (+ (planet.Buildings.roboticsfactory) + + (1)));
resrourcesHtml = printResources(r);
document.getElementById("roboticsfactoryResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
}
if (!resrourcesHtml.enough) {
document.getElementById("btnBuildRoboticsFactory").innerHTML = `not enough resources`;
}
if (planet.CurrentBuild.Title !== "") {
document.getElementById("btnBuildRoboticsFactory").innerHTML = `building`;
}
// shipyard
if (planet.Buildings.shipyard == undefined) {
document.getElementById("btnBuildShipyard").innerHTML = `Build building
`;
r = shipyardCost(1);
t = constructionTime(r, 1);
resrourcesHtml = printResources(r);
document.getElementById("shipyardResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
} else {
document.getElementById("shipyardLevel").innerHTML = "(Level " + planet.Buildings.shipyard + ")";
document.getElementById("btnBuildShipyard").innerHTML = `Build level ` + (+ (planet.Buildings.shipyard) + + (1)) + `
`;
r = shipyardCost((+ (planet.Buildings.shipyard) + + (1)));
t = constructionTime(r, (+ (planet.Buildings.shipyard) + + (1)));
resrourcesHtml = printResources(r);
document.getElementById("shipyardResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
}
if (!resrourcesHtml.enough) {
document.getElementById("btnBuildShipyard").innerHTML = `not enough resources`;
}
if (planet.CurrentBuild.Title !== "") {
document.getElementById("btnBuildShipyard").innerHTML = `building`;
}
// metalstorage
if (planet.Buildings.metalstorage == undefined) {
document.getElementById("btnBuildMetalStorage").innerHTML = `Build building
`;
r = metalstorageCost(1);
t = constructionTime(r, 1);
resrourcesHtml = printResources(r);
document.getElementById("metalstorageResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
} else {
document.getElementById("metalstorageLevel").innerHTML = "(Level " + planet.Buildings.metalstorage + ")";
document.getElementById("btnBuildMetalStorage").innerHTML = `Build level ` + (+ (planet.Buildings.metalstorage) + + (1)) + `
`;
r = metalstorageCost((+ (planet.Buildings.metalstorage) + + (1)));
t = constructionTime(r, (+ (planet.Buildings.metalstorage) + + (1)));
resrourcesHtml = printResources(r);
document.getElementById("metalstorageResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
}
if (!resrourcesHtml.enough) {
document.getElementById("btnBuildMetalStorage").innerHTML = `not enough resources`;
}
if (planet.CurrentBuild.Title !== "") {
document.getElementById("btnBuildMetalStorage").innerHTML = `building`;
}
// crystalstorage
if (planet.Buildings.crystalstorage == undefined) {
document.getElementById("btnBuildCrystalStorage").innerHTML = `Build building
`;
r = crystalstorageCost(1);
t = constructionTime(r, 1);
resrourcesHtml = printResources(r);
document.getElementById("crystalstorageResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
} else {
document.getElementById("crystalstorageLevel").innerHTML = "(Level " + planet.Buildings.crystalstorage + ")";
document.getElementById("btnBuildCrystalStorage").innerHTML = `Build level ` + (+ (planet.Buildings.crystalstorage) + + (1)) + `
`;
r = crystalstorageCost((+ (planet.Buildings.crystalstorage) + + (1)));
t = constructionTime(r, (+ (planet.Buildings.crystalstorage) + + (1)));
resrourcesHtml = printResources(r);
document.getElementById("crystalstorageResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
}
if (!resrourcesHtml.enough) {
document.getElementById("btnBuildCrystalStorage").innerHTML = `not enough resources`;
}
if (planet.CurrentBuild.Title !== "") {
document.getElementById("btnBuildCrystalStorage").innerHTML = `building`;
}
// deuteriumstorage
if (planet.Buildings.deuteriumstorage == undefined) {
document.getElementById("btnBuildDeuteriumStorage").innerHTML = `Build building
`;
r = deuteriumstorageCost(1);
t = constructionTime(r, 1);
resrourcesHtml = printResources(r);
document.getElementById("deuteriumstorageResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
} else {
document.getElementById("deuteriumstorageLevel").innerHTML = "(Level " + planet.Buildings.deuteriumstorage + ")";
document.getElementById("btnBuildDeuteriumStorage").innerHTML = `Build level ` + (+ (planet.Buildings.deuteriumstorage) + + (1)) + `
`;
r = deuteriumstorageCost((+ (planet.Buildings.deuteriumstorage) + + (1)));
t = constructionTime(r, (+ (planet.Buildings.deuteriumstorage) + + (1)));
resrourcesHtml = printResources(r);
document.getElementById("deuteriumstorageResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
}
if (!resrourcesHtml.enough) {
document.getElementById("btnBuildDeuteriumStorage").innerHTML = `not enough resources`;
}
if (planet.CurrentBuild.Title !== "") {
document.getElementById("btnBuildDeuteriumStorage").innerHTML = `building`;
}
// ressearchlab
if (planet.Buildings.ressearchlab == undefined) {
document.getElementById("btnBuildRessearchLab").innerHTML = `Build building
`;
r = ressearchlabCost(1);
t = constructionTime(r, 1);
resrourcesHtml = printResources(r);
document.getElementById("ressearchlabResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
} else {
document.getElementById("ressearchlabLevel").innerHTML = "(Level " + planet.Buildings.ressearchlab + ")";
document.getElementById("btnBuildRessearchLab").innerHTML = `Build level ` + (+ (planet.Buildings.ressearchlab) + + (1)) + `
`;
r = ressearchlabCost((+ (planet.Buildings.ressearchlab) + + (1)));
t = constructionTime(r, (+ (planet.Buildings.ressearchlab) + + (1)));
resrourcesHtml = printResources(r);
document.getElementById("ressearchlabResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
}
if (!resrourcesHtml.enough) {
document.getElementById("btnBuildRessearchLab").innerHTML = `not enough resources`;
}
if (planet.CurrentBuild.Title !== "") {
document.getElementById("btnBuildRessearchLab").innerHTML = `building`;
}
// alliancedepot
if (planet.Buildings.alliancedepot == undefined) {
document.getElementById("btnBuildAllianceDepot").innerHTML = `Build building
`;
r = alliancedepotCost(1);
t = constructionTime(r, 1);
resrourcesHtml = printResources(r);
document.getElementById("alliancedepotResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
} else {
document.getElementById("alliancedepotLevel").innerHTML = "(Level " + planet.Buildings.alliancedepot + ")";
document.getElementById("btnBuildAllianceDepot").innerHTML = `Build level ` + (+ (planet.Buildings.alliancedepot) + + (1)) + `
`;
r = alliancedepotCost((+ (planet.Buildings.alliancedepot) + + (1)));
t = constructionTime(r, (+ (planet.Buildings.alliancedepot) + + (1)));
resrourcesHtml = printResources(r);
document.getElementById("alliancedepotResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
}
if (!resrourcesHtml.enough) {
document.getElementById("btnBuildAllianceDepot").innerHTML = `not enough resources`;
}
if (planet.CurrentBuild.Title !== "") {
document.getElementById("btnBuildAllianceDepot").innerHTML = `building`;
}
// missilesilo
if (planet.Buildings.missilesilo == undefined) {
document.getElementById("btnBuildMissileSilo").innerHTML = `Build building
`;
r = missilesiloCost(1);
t = constructionTime(r, 1);
resrourcesHtml = printResources(r);
document.getElementById("missilesiloResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
} else {
document.getElementById("missilesiloLevel").innerHTML = "(Level " + planet.Buildings.missilesilo + ")";
document.getElementById("btnBuildMissileSilo").innerHTML = `Build level ` + (+ (planet.Buildings.missilesilo) + + (1)) + `
`;
r = missilesiloCost((+ (planet.Buildings.missilesilo) + + (1)));
t = constructionTime(r, (+ (planet.Buildings.missilesilo) + + (1)));
resrourcesHtml = printResources(r);
document.getElementById("missilesiloResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
}
if (!resrourcesHtml.enough) {
document.getElementById("btnBuildMissileSilo").innerHTML = `not enough resources`;
}
if (planet.CurrentBuild.Title !== "") {
document.getElementById("btnBuildMissileSilo").innerHTML = `building`;
}
// spacedock
if (planet.Buildings.spacedock == undefined) {
document.getElementById("btnBuildSpacedock").innerHTML = `Build building
`;
r = spacedockCost(1);
t = constructionTime(r, 1);
resrourcesHtml = printResources(r);
document.getElementById("spacedockResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
} else {
document.getElementById("spacedockLevel").innerHTML = "(Level " + planet.Buildings.spacedock + ")";
document.getElementById("btnBuildSpacedock").innerHTML = `Build level ` + (+ (planet.Buildings.spacedock) + + (1)) + `
`;
r = spacedockCost((+ (planet.Buildings.spacedock) + + (1)));
t = constructionTime(r, (+ (planet.Buildings.spacedock) + + (1)));
resrourcesHtml = printResources(r);
document.getElementById("spacedockResources").innerHTML = resrourcesHtml.html + `
Construction time: ` + secondsToTime(t);
}
if (!resrourcesHtml.enough) {
document.getElementById("btnBuildSpacedock").innerHTML = `not enough resources`;
}
if (planet.CurrentBuild.Title !== "") {
document.getElementById("btnBuildSpacedock").innerHTML = `building`;
}
}
let planetid = localStorage.getItem("mainplanet");
let planet = {};
// get user data
function getPlanet() {
axios.get(url + "/planets/" + planetid, config).then(function(res) {
console.log("buildings", res.data);
planet = res.data.planet;
printPlanet(planet);
}).catch(function(error) {
console.log(error);
});
}
getPlanet();
setInterval(getPlanet, 5000);
function buildBuilding(building) {
console.log("build " + building);
const data = {
planetid: planetid,
building: building
}
axios.post(url + "/buildings", data, config).then(function(res) {
console.log("buildings", res.data);
planet = res.data.planet;
printPlanet(planet);
}).catch(function(error) {
console.log(error);
});
}