NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @version 2.1.2
// @name OGame 5: Imperium Optimise
// @autor Sergio Flores Genis (MrGenis)
// @collaborator Chewbaka69
// @date 2019-02-14
// @namespace Ogame
// @description Generates summary of resources on planets, moons and flights. And Optimise for Ogame UI+++UI and AntiGame
// @include *.ogame.gameforge.*/game/*
// @icon https://i.imgur.com/UVCIYlt.png
// @grant unsafeWindow
// @require https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js
// @updateURL https://openuserjs.org/meta/Chewbaka69/OGame_Imperio.meta.js
// @downloadURL https://openuserjs.org/install/Chewbaka69/OGame_Imperio.user.js
// @license MIT
// ==/UserScript==
var __VERSION__ = '2.1.2';
var UPDATE = '2020-05-15';
/**
* changelog : 2.1.0 (2019-02-14)
* Fix error and update require
*
* changelog : 2.0.5 (2017-06-16)
* Optimise for other plugin
*
* changelog : 2.0.1 (2016-06-14)
* New code for new format
*
* changelog : 1.1.9.6 (2016-02-11)
* Fix for the style of the moons recusos table.
* Add the column to see the number of large cargo ships to move resources.
*
* changelog : 1.1.9.5bis (2016-02-08)
* Page detection was resolved to include in OGAME
*
* changelog : 1.1.9.5 (2016-01-26)
* Correction of the size of icons on planets and moons.
*
* changelog : 1.1.9.4 (2016-01-19)
* Now the planets are ordered based on the coordinates
*
* changelog : 1.1.9.3 (2015-09-23)
* Fixed error recognition "Tampermonkey" (Chrome)
* Correction to detect flights not target own planets.
*/
function initUi(e, t) {
ui.inline.costructionAssistant(), ui.inline.shortcodes(e),
function(e) {
function r(e) {
n.classList.contains("selected") ? (t.hide(), n.classList.remove("selected")) : (t.show(), n.classList.add("selected"))
}
var n = utils.createElement("a", {
href: "javascript:void(0);",
"class": "menubutton"
});
n.innerHTML = '<span class="textLabel">Imperium</span>';
var i = utils.createElement("ul", {
id: "menuTableImperium",
"class": "leftmenu"
}, utils.createElement("li", null, utils.createElement("span", {
"class": "menu_icon"
}, utils.createElement("div", {
"class": "menuImage ogi2"
})), n)),
s = utils.createElement("div", {
style: "float:left"
}, i);
e.parentElement.insertBefore(s, e.nextSibling), n.onclick = function(e) {
r(e), e.preventDefault()
}
}(document.getElementById("menuTable"));
var r = new ui.clazz.ResourcesProduction(e),
n = new ui.clazz.ResourcesProductionDetails(e),
i = new ui.clazz.ResourcesStellars(e),
s = utils.createElement("div", {
"class": "credit"
}, utils.format("Ogame: Imperium - {0} ", __VERSION__), utils.createElement("span", null, "by MrGenis"));
t.container.appendChild(s), t.container.appendChild(r.table), t.container.appendChild(n.table), t.container.appendChild(i.container), document.head.appendChild(ui.css.style())
}
var utils;
! function(e) {
function t(e, t, r) {
return void 0 === r && (r = 0), e.indexOf(t, r) === r
}
function r(e, t) {
var r = new RegExp("(\\d+\\.\\d{" + t + "})(\\d)"),
n = e.toString().match(r);
return n ? parseFloat(n[1]) : parseFloat(e.toString())
}
function n(e) {
return e && c(e) ? (e.jquery || (e = jQuery(e)), "" != e.attr("title") ? e.attr("title") : e.data("tipped_restore_title")) : ""
}
function i(e, t, r) {
void 0 === t && (t = "innerHTML"), void 0 === r && (r = null);
var n = document.querySelector(e);
if (!n) return null;
for (var i = t.split("."), s = 0; s < i.length - 1; s++) {
if (!n[i[s]]) return null;
n = n[i[s]]
}
return a(n[i[s]], r)
}
function s(e) {
return e ? parseInt(e.replace(/[^\d\-]/g, "")) : null
}
function a(e, t, r) {
if (void 0 === t && (t = null), void 0 === r && (r = 0), !e) return null;
if (e = e.toString(), null == t) return s(e);
var n = e.match(t);
return n ? s(n[r]) : null
}
function o(e, t) {
void 0 === t && (t = {});
for (var r = [], n = 2; n < arguments.length; n++) r[n - 2] = arguments[n];
var i = document.createElement(e);
for (var s in t) i.setAttribute(s, t[s]);
1 == r.length && Array.isArray(r[0]) && (r = r[0]);
for (var a = 0; a < r.length; a++) {
var o = r[a];
c(o) || (o = document.createTextNode(o)), i.appendChild(o)
}
return i
}
function l() {
for (var e = [], t = 0; t < arguments.length; t++) e[t - 0] = arguments[t];
var r = o("div");
return 1 == e.length && Array.isArray(e[0]) && (e = e[0]), e.forEach(function(e) {
c(e) || (e = document.createTextNode(e)), r.appendChild(e)
}), r.innerHTML
}
function u(e) {
return e && "[object Function]" == f.toString.call(e)
}
function c(e) {
return "object" == typeof Node ? e instanceof Node : e && "object" == typeof e && "number" == typeof e.nodeType && "string" == typeof e.nodeName
}
function d(e) {
return "object" == typeof HTMLElement ? e instanceof HTMLElement : e && "object" == typeof e && null !== e && 1 === e.nodeType && "string" == typeof e.nodeName
}
function p(e, t, r) {
if (void 0 !== t && null !== t) {
for (var n = Object.keys(t), i = 0; i < n.length; i++) e[n[i]] = t[n[i]];
return r ? e : void 0
}
}
function h(e, t, r, n, i) {
void 0 === r && (r = !1), void 0 === n && (n = !1), void 0 === i && (i = !1), Object.defineProperty(e, t, {
enumerable: r,
writable: n,
configurable: i
})
}
function m(t, r, n, i) {
void 0 === r && (r = "_blank"), void 0 === n && (n = {}), void 0 === i && (i = !0);
for (var s = "", a = Object.keys(n), o = 0; o < a.length; o++) {
var l = a[o],
u = n[l];
s += e.format("{0}={1},", l, u)
}
return e._window.open(t, r, s, i)
}
var f = {};
e.gmEnable = "function" == typeof GM_getResourceURL, e._window = "undefined" != typeof unsafeWindow ? unsafeWindow : window, e.startWith = t, e.trunc = r, e.getTitle = n, e.getIntByQuery = i, e.parseInteger = s, e.parseIntRx = a, e.createElement = o, e.node2HTMLText = l, e.isFunction = u, e.isNode = c, e.isElement = d, e.joinMaps = p, e.define = h, e.winOpen = m
}(utils || (utils = {}));
var utils;
! function(e) {
function t(e, t, r) {
if (void 0 === t && (t = null), void 0 === r && (r = null), !isFinite(this)) return "NaN";
var n = this;
if ("o" == e) n = parseInt(this).toString(8);
else if ("x" == e) n = parseInt(this).toString(16).toLowerCase();
else if ("X" == e) n = parseInt(this).toString(16).toUpperCase();
else if ("d" == e || !e) {
var i = new RegExp("(\\-)?(\\d+)(?:\\.(\\d+))?"),
a = this.toString().match(i),
o = a[1] || "",
l = parseInt(a[2]),
u = parseInt(a[3]);
if (null != r && r >= 0 && !isNaN(u) && (0 == r ? u = NaN : (u = u.toString().substring(0, r), u += Array(r - u.length + 1).join("0"))), t) {
if (t.indexOf(",") > -1 && l.toString().length > 3) {
for (var c = "", d = l.toString().split(""), p = 1; d.length > 0; p++) c = d.pop() + c, 3 == p && (p = 0, c = s.strformat.cThousand + c);
l = c
}
t.indexOf("+") > -1 ? this > 0 && (o = "+") : t.indexOf("#") > -1 && this > 0 && (o = " ")
}
n = o + l + (isNaN(u) ? "" : s.strformat.cDecimal + u)
}
return n
}
function r(e, r) {
var n = /{(\d+)(\$(\-)?('.)?(\d*)(s|n)([^\s\/]+)?(\/[\.\w]*)?)?}/gm;
return e.replace(n, function(e, n, i) {
for (var s = [], a = 3; a < arguments.length; a++) s[a - 3] = arguments[a];
if (void 0 === r[n]) return e;
if (void 0 === i) return r[n].toString();
s.pop();
var o = r[n],
l = {
isleft: "-" == s[0],
fillchar: (s[1] || " ").charAt(1),
filln: parseInt(s[2]) || 0,
conversion: (s[3] || "s").toLowerCase(),
conversion_data: s[4],
from_objet: s[5] || !1
};
try {
var u = Array(l.filln + 1).join(l.fillchar);
if (l.from_objet)
for (var c = l.from_objet.substring(1).split("."); c.length > 0;) o = o[c.shift()];
if ("n" == l.conversion)
if (l.conversion_data) {
var d = l.conversion_data.match(/(d|o|x|X)?([\+#,)]+)?(?:\.(\d+))?/);
d.shift(), o = t.apply(o, d)
} else o = o.toString();
else o = o.toString();
var p = o.length;
return u = u.substring(p), l.isleft ? o += u : o = u + o, o
} catch (h) {
console.error("format(): ", e, ", val: ", r[n], " \nparams: ", l, " \n", h)
}
return e
})
}
function n(e) {
for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
return r(e, t)
}
var i = 1000.1.toLocaleString(),
s = {
strformat: {
cThousand: unsafeWindow.LocalizationStrings.thousandSeperator,
cDecimal: i.charAt(i.length - 2)
}
};
e.format = n
}(utils || (utils = {}));
var utils;
! function(e) {
function t(e, t, r, n) {
if (void 0 === n && (n = null), !e.__observable__[t]) {
var s = e[t];
delete e[t] && (e.__observable__[t] = i(e, t, s))
}
return e.__observable__[t].listeners.push(r), e.__observable__[t].root.push(n), e.__observable__[t].listeners.length
}
function r(e, t, r) {
if (!e.__observable__[t]) return !1;
for (var n = e.__observable__[t], i = 0; i < n.listeners.length; i++)
if (n.listeners[i] === r) {
var s = delete n.listeners[i],
a = delete n.root[i];
return s && a
}
return !1
}
function n(t, r, n, i) {
var s = r.value;
if (s !== n)
for (var a = 0; a < r.listeners.length; a++) {
var o = r.root[a] || i;
setTimeout(function(t, r, i) {
try {
r.call(i, t, s, n)
} catch (a) {
var o = e.tracing(a);
console.error("ERROR! => Observable#callback", ".\n callback: ", r, ".\n root: ", i, ".\n property: ", t, ".\n values: old: ", s, " -> new: ", n, ".\n", o.toString())
}
}, 1, t, r.listeners[a], o), r.value = n
}
}
function i(e, t, r) {
var i = {
value: r,
listeners: [],
root: []
};
return Object.defineProperty(e, t, {
enumerable: !0,
configurable: !0,
get: function() {
return i.value
},
set: function(e) {
n(t, i, e, this)
}
}), i
}
function s(n, i) {
if (!n.__observable__) {
var s = {};
n.__observable__ = s, n.observableHash = i || (new Date).getTime().toString(), n.observablesOn = !0, n.listen = function(e, r, n) {
return void 0 === n && (n = null), t(this, e, r, n)
}, n.remove = function(e, t) {
return r(this, e, t)
}, e.define(n, "observablesOn", !1, !0, !1), e.define(n, "observableHash", !1), e.define(n, "__observable__"), e.define(n, "listen"), e.define(n, "remove")
}
return n
}
e.observable = s
}(utils || (utils = {}));
var utils;
! function(e) {
function t(e) {
return new r(e)
}
var r = function() {
function t(e) {
this.trace = [];
try {
this.message = e.message;
var t = e.stack.split("\n");
for (var r in t) {
if (r == t.length - 1) break;
var n = t[r].split("@"),
i = n[0];
0 == i.length && (i = "root");
var s = n[1];
s = s.match(/([\d]+:[\d]+)$/g)[0], this.trace.push({
fnc: i,
line: s
})
}
} catch (a) {
console.error("ErrorTracing : ", e.message, e.stack.split("\n"), "\n.", a)
}
}
return t.prototype.toString = function() {
for (var t = "Message: " + this.message + "\n", r = 0; r < this.trace.length; r++) t += e.format("{0$-10s} # {1}\n", this.trace[r].line, this.trace[r].fnc);
return t
}, t
}();
e.tracing = t
}(utils || (utils = {}));
var __extends = this && this.__extends || function(e, t) {
function r() {
this.constructor = e
}
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]);
e.prototype = null === t ? Object.create(t) : (r.prototype = t.prototype, new r)
},
utils;
! function(e) {
function t(e) {
return void 0 === e && (e = 0), new a(e)
}
function r(e) {
return void 0 === e && (e = 0), new o(e)
}
function n(t, r) {
return void 0 === t && (t = 0), void 0 === r && (r = null), e.observable(new l(t), r)
}
function i(t, r) {
return void 0 === t && (t = 0), void 0 === r && (r = null), e.observable(new u(t), r)
}
function s(t, r) {
return void 0 === t && (t = 0), void 0 === r && (r = null), e.observable(new c(t), r)
}
var a = function() {
function e(e) {
void 0 === e && (e = 0), this.metal = e, this.crystal = e, this.deuterium = e
}
return e
}(),
o = function() {
function e(e) {
void 0 === e && (e = 0), this.metal = e, this.crystal = e, this.deuterium = e, this.energy = e
}
return e
}(),
l = function(e) {
function t() {
e.apply(this, arguments)
}
return __extends(t, e), t.prototype.reset = function() {
this.metal = 0, this.crystal = 0, this.deuterium = 0
}, t
}(a),
u = function(e) {
function t() {
e.apply(this, arguments)
}
return __extends(t, e), t.prototype.reset = function() {
this.metal = 0, this.crystal = 0, this.deuterium = 0, this.energy = 0
}, t
}(o),
c = function() {
function e(e) {
void 0 === e && (e = 0), this.metal = e, this.crystal = e, this.deuterium = e, this.energy_using = e, this.energy_generate = e, this.energy = e
}
return e.prototype.reset = function() {
this.metal = 0, this.crystal = 0, this.deuterium = 0, this.energy_using = 0, this.energy_generate = 0, this.energy = 0
}, e
}();
e.resources3 = t, e.resources4 = r, e.resources3Observable = n, e.resources4Observable = i, e.resourcesProduction = s
}(utils || (utils = {}));
var utils;
! function(e) {
var t;
! function(e) {
function t(e, t) {
if ("function" != typeof t) throw new TypeError("callback must be a function");
for (var r, n = Object(e), i = n.length >>> 0, s = arguments[1], a = 0; i > a; a++)
if (r = n[a], t.call(s, r, a, n)) return r;
return null
}
e.find = t
}(t = e.array || (e.array = {}))
}(utils || (utils = {}));
var game;
! function(e) {
var t;
! function(t) {
function r(e) {
var t = document.getElementsByName("ogame-" + e).item(0);
return t.getAttribute("content")
}
t.keys = {
AccountOverviewImage: "OverviewImage",
AccountFlightSound: "FlightSound",
AccountResearchers: "researchers",
StellarTechnologies: "technologies",
StellarProduction: "production",
ServerLocalization: "ServerLocalization"
}, Object.freeze(e.db.keys), utils.define(e.db, "keys", !0);
var n = function() {
function e(e) {
this.mask = "", this.mask = "OGI_" + e, utils.define(this, "mask")
}
return e.prototype.get = function(e, t) {
void 0 === t && (t = 0);
var r = localStorage.getItem(this.mask + e) || t;
return JSON.parse(r)
}, e.prototype.set = function(e, t) {
var r = JSON.stringify(t);
localStorage.setItem(this.mask + e, r)
}, e.prototype.has = function(e) {
return null != this.get(e, null)
}, e.prototype.remove = function(e) {
localStorage.removeItem(this.mask + e)
}, e.prototype.getMapKey = function(e, t, r) {
void 0 === r && (r = null);
var n = this.get(e, "{}");
return n[t] || r
}, e.prototype.setMapKey = function(e, t, r) {
var n = this.get(e, "{}");
n[t] = r, this.set(e, n)
}, e.prototype.hasMapKey = function(e, t) {
return null != this.getMapKey(e, t, null)
}, e.prototype.removeMapKey = function(e, t) {
var r = this.get(e, "{}");
delete r[t], this.set(e, r)
}, e
}(),
i = function(e) {
function t() {
var t = r("universe"),
n = r("player-id");
t = t.split(".", 1)[0].replace("-", "") + "_", t += n + "_", e.call(this, t.toUpperCase())
}
return __extends(t, e), t
}(n),
s = function(e) {
function t() {
var t = r("universe");
t = t.split(".", 1)[0].replace("-", "") + "_", e.call(this, t.toUpperCase())
}
return __extends(t, e), t
}(n);
t.universe = new s, t.player = new i, utils.define(e.db, "universe"), utils.define(e.db, "player")
}(t = e.db || (e.db = {}))
}(game || (game = {}));
var game;
! function(e) {
var t;
! function(e) {
function t(e) {
return 5e3 * utils.trunc(2.5 * Math.pow(Math.E, 20 * e / 33), 0)
}
e.storageResource = t;
var r;
! function(e) {
function t(e, t) {
return Math.ceil(t * e * 10 * Math.pow(1.1, e))
}
function r(e, t) {
return Math.ceil(10 * t * e * Math.pow(1.1, e))
}
function n(e, t) {
return Math.floor(20 * t * e * Math.pow(1.1, e))
}
function i(e, t, r) {
return Math.floor(t * r * (20 * e * Math.pow(1.1, e)))
}
function s(e, t, r, n) {
return Math.floor(t * r * (30 * e * Math.pow(1.05 + .01 * n, e)))
}
function a(e, t, r, n) {
var i = Math.floor(e * t * r * Math.floor((n + 140) / 6));
return 0 > i ? 0 : i
}
e.metal = t, e.crystal = r, e.deuterium = n, e.solar = i, e.fusion = s, e.satellite = a
}(r = e.energy || (e.energy = {}))
}(t = e.fn || (e.fn = {}))
}(game || (game = {}));
var game;
! function(e) {
var t;
! function(t) {
function r(e, t) {
void 0 === t && (t = !1);
var r = [];
e.replace(/[\[\]]/g, "").split(":").forEach(function(e) {
r.push(parseInt(e))
});
var n = new a;
return n.galaxy = r[0], n.system = r[1], n.planet = r[2], n.ismoon = t, Object.seal(n), n
}
function n() {
var e = utils.resourcesProduction(0);
e.metal = utils.getIntByQuery("#resources_metal"), e.crystal = utils.getIntByQuery("#resources_crystal"), e.deuterium = utils.getIntByQuery("#resources_deuterium"), e.energy = utils.getIntByQuery("#resources_energy");
var t = utils.getTitle(document.getElementById("energy_box")).split(/td/g);
return e.energy_generate = utils.parseInteger(t[3]), e.energy_generate = utils.parseInteger(t[5]), e
}
function i(e) {
var t = document.getElementsByName("ogame-" + e).item(0);
return t.getAttribute("content")
}
function s() {
if (!e.isCurrentPage("resources,station,shipyard,defense,research,fleet1")) return null;
var t = {};
try {
if (e.isCurrentPage("fleet1")) {
for (var r = 0; r < e.ships.IDs.length; r++) t[e.ships.IDs[r]] = 0;
var n = document.getElementById("shipsChosen");
if (n)
for (var i = n.querySelectorAll("li[id^=button]"), r = 0; r < i.length; r++) {
var s = i.item(r),
a = utils.parseInteger(s.id),
o = utils.parseInteger(s.querySelector(".level").innerText);
t[a] = o
}
} else
for (var i = document.getElementById("buttonz").querySelectorAll("[id^=details]"), r = 0; r < i.length; r++) {
var l = i.item(r),
a = utils.parseInteger(l.getAttribute("ref")),
o = utils.parseInteger(l.querySelector(".level").innerText);
t[a] = o
}
} catch (u) {
t = null;
var c = utils.tracing(u);
console.error("ERROR! game.tools.fn#readTechs: ", c.toString())
}
return t
}
var a = function() {
function e() {
this.ismoon = !1
}
return e.prototype.toString = function() {
return utils.format("[{0}:{1}:{2}]", this.galaxy, this.system, this.planet)
}, Object.defineProperty(e.prototype, "inarray", {
get: function() {
return [this.galaxy, this.system, this.planet]
},
enumerable: !0,
configurable: !0
}), e.prototype.compareTo = function(e) {
var t = this.galaxy - e.galaxy;
return 0 === t && (t = this.system - e.system), 0 === t && (t = this.planet - e.planet), 0 === t && (t = this.ismoon ? 1 : -1), t
}, e.prototype.equalsTo = function(e) {
return this.galaxy == e.galaxy && this.system == e.system && this.planet == e.planet && this.ismoon == e.ismoon
}, e
}();
t.parseCoords = r, t.currentResources = n, t.meta = i, t.readTechs = s, t.ResearchersID = [113, 120, 121, 114, 122, 115, 117, 118, 106, 108, 124, 123, 199, 109, 110, 111],
function(e) {
e[e.METAL = 0] = "METAL", e[e.CRYSTAL = 1] = "CRYSTAL", e[e.DEUTERIUM = 2] = "DEUTERIUM"
}(t.Resources3Enum || (t.Resources3Enum = {}));
t.Resources3Enum;
! function(e) {
e[e.METAL = 0] = "METAL", e[e.CRYSTAL = 1] = "CRYSTAL", e[e.DEUTERIUM = 2] = "DEUTERIUM", e[e.ENERGY = 3] = "ENERGY"
}(t.Resources4Enum || (t.Resources4Enum = {}));
t.Resources4Enum;
! function() {
utils.define(e.utilities, "ResearchersID", !0), utils.define(e.utilities, "Resources3Enum", !0), utils.define(e.utilities, "Resources4Enum", !0), Object.freeze(e.utilities.ResearchersID), Object.freeze(e.utilities.Resources3Enum), Object.freeze(e.utilities.Resources4Enum)
}()
}(t = e.utilities || (e.utilities = {}))
}(game || (game = {}));
var game;
! function(e) {
e.lang = {};
var t = function() {
function t() {
this.current = e.utilities.meta("language"), e.lang[this.current] || (this.current = "en")
}
return t.prototype.t = function(t) {
var r = e.lang[this.current],
n = t;
if (r) try {
var i = [t];
for (n = r[i.shift()]; i.length > 0;) n = n[i.shift()]
} catch (s) {
var a = utils.tracing(s);
console.error("Imperium (Lang): ", a.toString()), n = t
}
return n || (n = t), n
}, t
}();
e.language = new t
}(game || (game = {}));
var game;
! function(e) {
var t;
! function(t) {
function r() {
var e;
if (u.has(a)) {
var t = jQuery.Deferred();
t.resolve(u.get(a)), e = t.promise()
} else e = jQuery.ajax({
method: "get",
url: "/api/localization.xml",
cache: !0,
dataType: "json",
global: !1,
dataFilter: function(e) {
var t = {
techs: {},
missions: {}
};
try {
for (var r = jQuery.parseXML(e), n = r.firstChild, i = n.childNodes, s = i.item(0), o = i.item(1), l = 0; l < s.childElementCount; l++) {
var c = s.children.item(l);
t.techs[c.id] = c.innerHTML
}
for (var l = 0; l < o.childElementCount; l++) {
var c = o.children.item(l);
t.missions[c.id] = c.innerHTML
}
u.set(a, t)
} catch (d) {
var p = utils.tracing(d);
console.error("ERROR! (game.localization) promise => ", p.toString())
}
return JSON.stringify(t)
}
});
return e.done(function(e) {
o = e.techs, l = e.missions
}), e
}
function n(e) {
return void 0 === e && (e = !1), e && (u.remove(a), o = null, l = null), r()
}
function i(e) {
return o[e] ? o[e] : "TH" + e
}
function s(e) {
return l[e] ? l[e] : "M" + e
}
var a = e.db.keys.ServerLocalization,
o = {},
l = {},
u = e.db.universe;
t.load = n, t.technology = i, t.mision = s, t.firstPromise = n()
}(t = e.localization || (e.localization = {}))
}(game || (game = {}));
var game;
! function(e) {
var t;
! function(t) {
function r() {
return jQuery.ajax({
cache: !1,
dataType: "json",
global: !1,
method: "post",
url: "/game/index.php?page=traderOverview",
data: {
ajax: 1,
show: "importexport"
},
dataFilter: function(e) {
for (var t = e.match(/<script\b[^>]*>([\s\S]*?)<\/script>/gm), r = t[0].match(/planetResources=({[\s\S]*?});/gm), n = JSON.parse(r[0].slice(16, -1)), i = {}, s = Object.keys(n), a = 0; a < s.length; a++) {
var o = s[a];
i[o] = n[o].input
}
return JSON.stringify(i)
}
})
}
function n() {
return r()
}
function i() {
var e = jQuery.Deferred(function() {
return jQuery.ajax({
cache: !1,
dataType: "json",
global: !1,
method: "get",
url: "/game/index.php?page=fetchResources",
dataFilter: function(e) {
var t = null;
try {
var r = JSON.parse(e),
n = utils.resourcesProduction(0);
n.metal = r.metal.resources.production, n.crystal = r.crystal.resources.production, n.deuterium = r.deuterium.resources.production, n.energy = r.energy.resources.actual;
var i = r.energy.tooltip.replace(/\n/, "").split(/<\s*tr/);
return n.energy_generate = utils.parseInteger(i[2]), n.energy_using = utils.parseInteger(i[3]), JSON.stringify(n)
} catch (s) {
utils.tracing(s);
console.error("ERROR! game.resources.production: ", s.toString())
}
return t
}
}).done(function(t) {
e.resolve(t)
})
});
return e.promise()
}
function s() {
return i()
}
function a() {
var t = jQuery.Deferred(function() {
jQuery.ajax({
method: "get",
global: !1,
dataType: "json",
url: "/game/index.php?page=fetchTechs&ajax=1"
}).done(function(r) {
var n = {};
e.utilities.ResearchersID.forEach(function(e) {
n[e] = r[e], delete r[e]
}), t.resolve(r, n)
})
});
return t.promise()
}
function o() {
return a()
}
t.resources = n, t.production = s, t.technologies = o
}(t = e.request || (e.request = {}))
}(game || (game = {}));
var game;
! function(e) {
var t;
! function(t) {
function r(e, t, r) {
void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === r && (r = 0);
var n = utils.resources3(0);
return n.metal = e, n.crystal = t, n.deuterium = r, Object.freeze(n), n
}
function n(e) {
var t = u[e];
return void 0 === t ? null : t
}
function i(t) {
var r = utils.array.find(e.ships.IDs, function(e) {
return t == u[e].name
});
return null == r ? null : u[r]
}
t.IDs = [204, 205, 206, 207, 215, 211, 213, 214, 202, 203, 208, 209, 210, 212],
function(e) {
e[e.Military = 1] = "Military", e[e.Civil = 2] = "Civil"
}(t.Type || (t.Type = {}));
t.Type;
! function(e) {
e[e.Attack = 1] = "Attack", e[e.ACSAttack = 2] = "ACSAttack", e[e.Transport = 3] = "Transport", e[e.Deployment = 4] = "Deployment", e[e.ACSDefend = 5] = "ACSDefend", e[e.Espionage = 6] = "Espionage", e[e.Colonisation = 7] = "Colonisation", e[e.Recycle = 8] = "Recycle", e[e.MoonDestruction = 9] = "MoonDestruction", e[e.Expedition = 15] = "Expedition"
}(t.MissionType || (t.MissionType = {}));
t.MissionType;
! function() {
utils.define(e.ships, "IDs", !0), utils.define(e.ships, "Type", !0), utils.define(e.ships, "MissionType", !0), Object.freeze(e.ships.IDs), Object.freeze(e.ships.Type), Object.freeze(e.ships.MissionType)
}();
var s = {
204: r(3e3, 1e3),
205: r(6e3, 4e3),
206: r(2e4, 7e3, 2e3),
207: r(45e3, 15e3),
215: r(3e4, 4e4, 15e3),
211: r(5e4, 25e3, 15e3),
213: r(6e4, 5e4, 15e3),
214: r(5e6, 4e6, 1e6),
202: r(2e3, 2e3),
203: r(6e3, 6e3),
208: r(1e4, 2e4, 1e4),
209: r(1e4, 6e3, 2e3),
210: r(0, 1e3),
212: r(0, 2e3, 500)
},
a = {
204: 50,
205: 100,
206: 800,
207: 1500,
215: 750,
211: 500,
213: 2e3,
214: 1e6,
202: 5e3,
203: 25e3,
208: 7500,
209: 2e4,
210: 0,
212: 0
},
o = {
204: 20,
205: 75,
206: 300,
207: 500,
215: 250,
211: 1e3,
213: 1e3,
214: 1,
202: 20,
203: 50,
208: 1e3,
209: 300,
210: 1,
212: 0
},
l = {
204: 12500,
205: 1e4,
206: 15e3,
207: 1e4,
215: 1e4,
211: 5e3,
213: 5e3,
214: 100,
202: 1e4,
203: 7500,
208: 2500,
209: 2e3,
210: 1e8,
212: 0
},
u = {},
c = function() {
function e(e, t) {
this.id = e, this.name = t, utils.define(this, "id", !0)
}
return Object.defineProperty(e.prototype, "cargo", {
get: function() {
return a[this.id]
},
enumerable: !0,
configurable: !0
}), Object.defineProperty(e.prototype, "cost", {
get: function() {
return s[this.id]
},
enumerable: !0,
configurable: !0
}), Object.defineProperty(e.prototype, "intake", {
get: function() {
return o[this.id]
},
enumerable: !0,
configurable: !0
}), e.prototype.speed = function(e, t, r) {
var n = l[this.id];
return 202 == this.id ? n + n * (t >= 5 ? .2 * t : .1 * e) : 211 == this.id ? n + n * (r >= 8 ? .3 * r : .2 * t) : 209 == this.id ? n + n * (r >= 15 ? .3 * r : t >= 17 ? .2 * t : .1 * e) : [210, 203, 204].indexOf(this.id) > -1 ? n + .1 * n * e : [206, 205, 208].indexOf(this.id) > -1 ? n + .2 * n * t : [207, 215, 213, 214].indexOf(this.id) > -1 ? n + .3 * n * t : n
}, e
}();
jQuery.when(e.localization.firstPromise).then(function(t) {
e.ships.IDs.forEach(function(e) {
u[e] = new c(e, t.techs[e])
})
}), t.getById = n, t.getByName = i
}(t = e.ships || (e.ships = {}))
}(game || (game = {}));
var game;
! function(e) {
function t(e) {
var t = document.querySelector("meta[name=ogame-" + e + "]");
return t ? t.getAttribute("content") : null
}
function r(e) {
for (var t = e.split(","), r = !1, n = 0; n < t.length && !r; n++) r = t[n].trim() == unsafeWindow.currentPage;
return r
}
e.ajax = jQuery.when(e.localization.firstPromise), e.meta = t, e.playerID = parseInt(t("player-id")), e.currentPlanetID = parseInt(t("planet-id")), e.currentPlanetType = t("planet-type"), e.isCurrentPage = r,
function() {
utils.define(e, "playerID", !0), utils.define(e, "currentPlanetID", !0), utils.define(e, "currentPlanetType", !0)
}()
}(game || (game = {}));
var account;
! function(e) {
var t;
! function(e) {
function t(e, t) {
void 0 === t && (t = !1), t && game.db.player.remove(e.id);
var r = game.utilities.readTechs(),
n = e.id,
i = game.db.player.has(n),
s = null,
a = null;
game.isCurrentPage("research") && (s = r, r = null);
var o = !1,
l = null,
u = null;
return i ? (a = r, game.isCurrentPage("resources") ? o = e.tech(1) !== a[1] || e.tech(2) !== a[2] || e.tech(3) !== a[3] || e.tech(4) !== a[4] || e.tech(12) !== a[12] || e.tech(212) !== a[212] : game.isCurrentPage("shipyard") && (o = e.tech(212) !== a[212]), l = jQuery.Deferred(function(e) {
return e.resolve(a, s)
}).promise()) : (o = !0, l = game.request.technologies()), u = !o && game.db.player.hasMapKey(n, game.db.keys.StellarProduction) ? jQuery.Deferred(function(e) {
return e.resolve(null)
}).promise() : game.request.production(), jQuery.when(l, u).always(function(t, r) {
//console.info("account.inline.updateStellar#always: ", e.name, " \n", "@ stella :", null !== t[0], " \n", "@ researchers :", null !== t[1], " \n", "@ production :", null !== r)
})
}! function(e) {
if (game.isCurrentPage("resourceSettings")) {
var t = document.getElementsByTagName("form")[0];
t.addEventListener("submit", function() {
game.db.player.removeMapKey(e, game.db.keys.StellarProduction)
})
}
}(game.currentPlanetID), e.updateStellar = t
}(t = e.inline || (e.inline = {}))
}(account || (account = {}));
var account;
! function(e) {
function t(e) {
var t = game.db.player.get(e.id, !1);
t && (utils.joinMaps(e.production, t.production || {}), utils.joinMaps(e.technologies, t.technologies || {}), e.storage.metal = game.fn.storageResource(e.tech(22, NaN)), e.storage.crystal = game.fn.storageResource(e.tech(23, NaN)), e.storage.deuterium = game.fn.storageResource(e.tech(24, NaN)))
}
function r(e) {
var t = {};
t[game.db.keys.StellarTechnologies] = e.technologies, t[game.db.keys.StellarProduction] = e.production, game.db.player.set(e.id, t)
}
function n(e) {
var t = game.request.resources();
t.done(function(t) {
for (var r = 0; r < e.all.length; r++) {
var n = e.all[r].id;
utils.joinMaps(e.all[r].resources, t[n])
}
})
}
var i = function() {
function e(e) {
this.id = NaN, this.name = "", this.coords = null, this.isMoon = !1, this.moonID = null, this.tempMin = null, this.technologies = {}, this.id = e, utils.define(this, "id", !0), this.storage = utils.resources3Observable(NaN, this.id + "/Storage"), this.resources = utils.resources3Observable(0, this.id + "/Resources"), this.production = utils.resourcesProduction(NaN, this.id + "/Production")
}
return e.prototype.tech = function(e, t) {
return void 0 === t && (t = 0), "undefined" == typeof this.technologies[e] ? t : this.technologies[e]
}, e.prototype.init = function() {
t(this)
}, e.prototype.save = function() {
r(this)
}, e
}();
e.Stellar = i;
var s = function() {
function e() {
this._stellars = [], this.resources = utils.resources3Observable(0, "StellarResources"), this.resourcesInPlanets = utils.resources3Observable(0, "StellarResourcesPlanets"), this.resourcesInMoons = utils.resources3Observable(0, "StellarResourcesMoons"), this.production = utils.resources4Observable(0, "Production");
var t = function(e, t, r) {
isNaN(t) && (t = 0), isNaN(r) && (r = 0), this[e] += r - t
};
this.resourcesInPlanets.listen("metal", t, this.resources), this.resourcesInPlanets.listen("crystal", t, this.resources), this.resourcesInPlanets.listen("deuterium", t, this.resources), this.resourcesInMoons.listen("metal", t, this.resources), this.resourcesInMoons.listen("crystal", t, this.resources), this.resourcesInMoons.listen("deuterium", t, this.resources);
for (var r = document.getElementById("planetList"), n = r.getElementsByClassName("planetlink"), s = 0; s < n.length; s++) {
var a = n.item(s),
o = utils.getTitle(a).split(/<br/gi),
l = a.querySelector(".planet-koords").textContent,
u = utils.parseIntRx(a.href, /cp=(\d+)$/gi),
c = new i(u);
if (c.name = a.querySelector(".planet-name").textContent, c.coords = game.utilities.parseCoords(l, !1), c.image = a.querySelector("img").src, c.tempMin = utils.parseIntRx(o[2], /(-?\d+)/g, 0), c.resources.listen("metal", t, this.resourcesInPlanets), c.resources.listen("crystal", t, this.resourcesInPlanets), c.resources.listen("deuterium", t, this.resourcesInPlanets), c.production.listen("metal", t, this.production), c.production.listen("crystal", t, this.production), c.production.listen("deuterium", t, this.production), c.production.listen("energy", t, this.production), c.init(), this._stellars.push(c), a = a.parentNode.querySelector(".moonlink")) {
o = utils.getTitle(a).split(/<br/gi);
var d = utils.parseIntRx(a.href, /cp=(\d+)$/gi),
p = new i(d);
p.isMoon = !0, p.name = o[0].match(/(.*) \[/gi)[0].slice(3, -1).trim(), p.coords = game.utilities.parseCoords(l, !0), p.image = a.querySelector("img").src, c.moonID = p.id, p.resources.listen("metal", t, this.resourcesInMoons), p.resources.listen("crystal", t, this.resourcesInMoons), p.resources.listen("deuterium", t, this.resourcesInMoons), p.init(), this._stellars.push(p)
}
}
e.sort(this._stellars), this.loadResources()
}
return Object.defineProperty(e.prototype, "planets", {
get: function() {
var e = [];
for (var t in this._stellars) this._stellars[t].isMoon || e.push(this._stellars[t]);
return e
},
enumerable: !0,
configurable: !0
}), Object.defineProperty(e.prototype, "moons", {
get: function() {
var e = [];
for (var t in this._stellars) this._stellars[t].isMoon && e.push(this._stellars[t]);
return e
},
enumerable: !0,
configurable: !0
}), Object.defineProperty(e.prototype, "all", {
get: function() {
return this._stellars
},
enumerable: !0,
configurable: !0
}), Object.defineProperty(e.prototype, "length", {
get: function() {
return this._stellars.length
},
enumerable: !0,
configurable: !0
}), e.prototype.byId = function(e) {
var t = null;
for (var r in this._stellars)
if (this._stellars[r].id === e) {
t = this._stellars[r];
break
}
return t
}, e.prototype.byCoords = function(e, t) {
void 0 === t && (t = !1);
var r = game.utilities.parseCoords(e, t),
n = t ? this.moons : this.planets,
i = null;
for (var s in n)
if (n[s].coords.equalsTo(r)) {
i = n[s];
break
}
return i
}, e.prototype.loadResources = function() {
n(this)
}, e.sort = function(e, t) {
return void 0 === t && (t = !1), e.sort(function(e, r) {
if (t) {
var n = e.name.toLocaleLowerCase(),
i = r.name.toLocaleLowerCase();
return n.localeCompare(i)
}
return e.coords.compareTo(r.coords)
}), e
}, e
}();
e.StellarCollection = s
}(account || (account = {}));
var account;
! function(e) {
var t = game.db.keys.AccountFlightSound,
r = game.db.player,
n = function() {
function e(e) {
this.resources = utils.resources3(0), this.ships = {}, this.originMoon = !1, this.destMoon = !1, this.id = utils.parseIntRx(e.id, /(\d+)/g), this.mission = parseInt(e.dataset.missionType), this.timeArrival = parseInt(e.dataset.arrivalTime), this.endTime = new Date(1e3 * this.timeArrival), this.isDeploy = this.mission == game.ships.MissionType.Deployment, this.isReturn = "true" == e.dataset.returnFlight;
var t = e.querySelector("td[class*='icon_movement'] > span"),
r = utils.getTitle(t);
this.analyzeDetails(r);
var n = e.querySelector(".missionFleet > img");
this.icon = n.src;
var i = e.querySelector(".coordsOrigin > a").textContent.trim();
this.originMoon = null !== e.querySelector(".originFleet .moon"), this.originCoords = game.utilities.parseCoords(i, this.originMoon);
var s = e.querySelector(".destCoords > a").textContent;
this.destMoon = null !== e.querySelector(".destFleet .moon"), this.destCoords = game.utilities.parseCoords(s, this.destMoon)
}
return e.prototype.analyzeDetails = function(e) {
var t = e.replace(/[\n]/g, "").split("<th");
if (t[1]) {
for (var r = t[1].split("<td"), n = 1; n < r.length - 2; n += 2) {
var i = r[n].trim().slice(1, -6),
s = game.ships.getByName(i).id,
a = utils.parseInteger(r[n + 1]);
this.ships[s] = a
}
t[2] && (r = t[2].split("<td"), this.resources.metal = utils.parseInteger(r[2]), this.resources.crystal = utils.parseInteger(r[4]), this.resources.deuterium = utils.parseInteger(r[6]))
}
}, e
}(),
i = function() {
function e() {
var e = this;
this._flight = [], this.resources = utils.resources3Observable(0);
var t = document.getElementById("eventboxContent");
t.addEventListener("DOMNodeInserted", function(t) {
if (t && t.target) {
var r = t.target;
"eventListWrap" === r.id && setTimeout(function() {
return e.loadFlights()
}, 0)
}
}, !1);
var r = document.getElementById("eventContent");
r && setTimeout(function() {
return e.loadFlights()
}, 0)
}
return Object.defineProperty(e.prototype, "all", {
get: function() {
return this._flight
},
enumerable: !0,
configurable: !0
}), e.prototype.loadFlights = function() {
this.resources.reset();
for (var e = document.getElementById("eventContent"), i = e.getElementsByClassName("eventFleet"), s = [], a = [], o = 0; o < i.length; o++) try {
var l = i.item(o),
u = new n(l);
this._flight.push(u), s.push(u.id + ""), a.push(u.id + 1), u.mission == game.ships.MissionType.Expedition && a.push(u.id + 2), -1 == a.indexOf(u.id) && (this.resources.metal += u.resources.metal, this.resources.crystal += u.resources.crystal, this.resources.deuterium += u.resources.deuterium)
} catch (c) {
var d = utils.tracing(c);
console.error("Imperium ERROR!! account.FlightCollection : ", d.toString())
}
var p = Object.keys(r.get(t, "{}"));
p.forEach(function(e) {
-1 == s.indexOf(e) && r.removeMapKey(t, e)
})
}, e
}();
e.FlightCollection = i
}(account || (account = {}));
var Stellar = account.Stellar,
GameAccount = function() {
function e() {
this.researchers = {}, this.resources = utils.resources3Observable(0), this.stellars = new account.StellarCollection, this.fligths = new account.FlightCollection, this.researchers = game.db.player.get(game.db.keys.AccountResearchers, "{}");
var e = function(e, t, r) {
t = t || 0, r = r || 0, this[e] += r - t
};
this.stellars.resources.listen("metal", e, this.resources), this.stellars.resources.listen("crystal", e, this.resources), this.stellars.resources.listen("deuterium", e, this.resources), this.fligths.resources.listen("metal", e, this.resources), this.fligths.resources.listen("crystal", e, this.resources), this.fligths.resources.listen("deuterium", e, this.resources), this.startCurrentStellar()
}
return Object.defineProperty(e.prototype, "currentStellar", {
get: function() {
return this.stellars.byId(game.currentPlanetID)
},
enumerable: !0,
configurable: !0
}), e.prototype.startCurrentStellar = function(e) {
var t = this;
void 0 === e && (e = !1);
var r = account.inline.updateStellar(this.currentStellar, e);
return r.done(function(e, r) {
null !== e[1] && (utils.joinMaps(t.researchers, e[1]), game.db.player.set(game.db.keys.AccountResearchers, e[1])), null !== e[0] && utils.joinMaps(t.currentStellar.technologies, e[0]), null !== r && utils.joinMaps(t.currentStellar.production, r), t.currentStellar.save(), t.currentStellar.init()
}), r
}, e
}(),
ui;
! function(e) {
var t = "ogi_implements",
r = function() {
function e() {
this._container = {}, this._keyframes = {}, document.body.classList.add(t), ["https://gist.githubusercontent.com/SergioFloresG/1ce6e2427cf5db4dbd7a416706eab876/raw/6f28353ca5f16f47f1620c745627961050d6ee15/ogimperium.flat.css", "https://gist.githubusercontent.com/SergioFloresG/1ce6e2427cf5db4dbd7a416706eab876/raw/6f28353ca5f16f47f1620c745627961050d6ee15/ogimperium.technology-x40.css"].forEach(function(e, t) {
jQuery.get(e, function(e) {
var r = utils.createElement("style", {
media: "screen",
type: "text/css",
rel: "stylesheet",
name: utils.format("ogi.css-ref{0$'02n}", t)
});
r.innerHTML = e, document.head.appendChild(r)
})
})
}
return e.prototype.add = function(e, t) {
return this._container[e] = t, this
}, e.prototype.addGroup = function() {
for (var e = [], t = 0; t < arguments.length; t++) e[t - 0] = arguments[t];
for (var r = 0; r < e.length; r++)
for (var n in e[r]) this.add(n, e[r][n]);
return this
}, e.prototype.keyframe = function(e, t) {
return this._keyframes[e] = t, this
}, e.prototype.style = function() {
var e = document.createElement("style");
e.type = "text/css", e.setAttribute("name", "ogi.css-injection");
for (var r = Object.keys(this._container); r.length > 0;) {
for (var n = r.shift(), i = this._container[n], s = n.split(","), a = 0; a < s.length; a++) s[a] = utils.format(".{0} {1}", t, s[a]);
var o = document.createTextNode(s.join(",\n") + "{\n");
for (var l in i) o.appendData(" " + l + ": " + i[l] + ";\n");
o.appendData("}\n"), e.appendChild(o)
}
for (var u = Object.keys(this._keyframes); u.length > 0;) {
for (var c = u.shift(), d = this._keyframes[c], o = document.createTextNode(utils.format("{0}{\n", c)), p = Object.keys(d); p.length > 0;) {
var h = p.shift(),
m = d[h];
o.appendData(utils.format(" {0} {\n", h));
for (var f = Object.keys(m); f.length > 0;) {
var g = f.shift(),
b = m[g];
o.appendData(utils.format(" {0}: {1};\n", g, b))
}
o.appendData(" }\n")
}
o.appendData("}\n"), e.appendChild(o)
}
return e
}, e
}();
e.css = new r, e.css.addGroup({
"#planet h2 a": {
width: "auto !important"
},
".credit": {
"text-align": "center",
"font-size": "0.9em"
},
".credit > span": {
color: "#fd8a1c !important"
}
}, {
".ogicon": {
display: "inline-block"
},
".alert-default": {
"background-color": "#59595a",
color: "#eaecf6",
border: "1px solid #e3e6f3"
},
".alert-success": {
"background-color": "#3c763d",
color: "#dff0d8",
border: "1px solid #d6e9c6"
},
".alert-info": {
"background-color": "#31708f",
color: "#d9edf7",
border: "1px solid #bce8f1"
},
".alert-warning": {
"background-color": "#8a6d3b",
color: "#fcf8e3",
border: "1px solid #faebcc"
},
".alert-danger": {
"background-color": "#a94442",
color: "#f2dede",
border: "1px solid #ebccd1"
},
".align-left": {
"text-align": "left"
},
".align-center": {
"text-align": "center"
},
".align-right": {
"text-align": "right"
},
".bold": {
"font-weight": "600"
},
".bold-hard": {
"font-weight": "800"
},
".float-right": {
"float": "right"
},
".float-left": {
"float": "left"
},
".metal": {
color: "#c6556c"
},
".crystal": {
color: "deepskyblue"
},
".deuterium": {
color: "cornflowerblue"
},
".color-blood": {
color: "#8A0707"
},
".title": {
color: "yellow"
},
".blur": {
"-webkit-filter": "blur(4px)",
"-moz-filter": "blur(4px)",
"-ms-filter": "blur(4px)",
"-o-filter": "blur(4px)",
filter: "blur(4px)"
},
".technology": {
"border-color": "rgba(47,79,79,1)",
"border-radius": "5px",
"-moz-border-radius": "5px",
"-webkit-border-radius": "5px",
"border-style": "solid",
"border-width": "1px",
position: "relative",
margin: "2px",
cursor: "default",
"font-size": "8px"
},
".technology span": {
display: "block",
position: "absolute",
left: "0",
width: "40px",
bottom: "0",
"text-align": "center",
"background-color": "rgba(47,79,79,0.75)",
"font-weight": "bold",
"border-radius": "0 0 4px 4px",
"-moz-border-radius": "0 0 4px 4px",
"-webkit-border-radius": "0 0 4px 4px"
},
"table.ogi th": {
"font-size": "1.2em",
"font-weight": "bold",
"text-align": "right"
},
".ul-vertical": {},
".ul-vertical > li": {
"float": "left",
display: "block",
width: "100%"
}
}, {
".resource16": {
background: 'url("https://i.imgur.com/fY04Uqv.png") no-repeat',
display: "block",
width: "24px",
height: "16px",
margin: "0 5px 0 !important"
},
".resource16.metal": {
"background-position": "0 0"
},
".resource16.crystal": {
"background-position": "-24px 0"
},
".resource16.deuterium": {
"background-position": "-48px 0"
},
".resource16.energy": {
"background-position": "-72px 0"
},
".resource16.mo": {
"background-position": "-96px 0"
}
}, {
".animation-rotate360": {
"-webkit-animation": "spin 2s linear infinite",
"-moz-animation": "spin 2s linear infinite",
animation: "spin 2s linear infinite"
}
}), e.css.keyframe("@-webkit-keyframes spin", {
"100% ": {
"-webkit-transform": "rotate(360deg)"
}
}), e.css.keyframe("@keyframes spin", {
"100% ": {
"-webkit-transform": "rotate(360deg)",
transform: "rotate(360deg)"
}
}), e.css.keyframe("@-moz-keyframes spin", {
"100% ": {
"-moz-transform": "rotate(360deg)"
}
})
}(ui || (ui = {})), ui.css.addGroup({
"#menuTableImperium": {
margin: "5px 0"
},
"#menuTableImperium > li": {
"float": "none"
},
"#menuTableImperium .menuImage.ogi2": {
background: "url(https://i.imgur.com/142a5YN.png) no-repeat"
}
}, {
".current-stellar img.icon-planet": {
"border-radius": "15px",
"box-shadow": "0 0 6px 1px #ff9600, 0 0 3px 4px #ff9600 inset"
},
".current-stellar img.icon-moon": {
"border-radius": "8px",
"box-shadow": "0 0 6px 1px #ff9600, 0 0 3px 4px #ff9600 inset"
},
".current-stellar .koords-stellar, .current-stellar .name-stellar": {
"text-shadow": "0 0 3px rgb(153,204,0)",
color: "silver !important"
}
}, {
"#ogimperium-view": {
"float": "left",
position: "relative",
width: "670px",
overflow: "visible",
display: "none"
},
"#ogimperium-view .panel": {
"background-color": "#0d1014",
border: "1px solid #2b3848",
"border-top-width": "4px",
padding: "6px",
margin: "10px 6px 20px"
},
"#ogimperium-view table td, #ogimperium-view table th": {
padding: "4px"
},
"#ogimperium-view table tr.summary td, #ogimperium-view table tr.summary th": {
"border-top": "1px dotted #848484"
},
"#ogimperium-view table td.label": {
color: "grey",
"text-align": "left"
},
"#ogimperium-view table tr:hover > td, #ogimperium-view table tr.hover > td": {
"background-color": "#23282d"
}
}, {
".resources00-icon, .resources01-icon, .resources02-icon, .defence-icon, .station-icon,.shipyard-icon ": {
width: "30px !important",
height: "30px !important"
},
".resources00-icon": {
"background-repeat": "no-repeat",
"background-image": " url('https://i.imgur.com/2Klisqo.png')"
},
".resources01-icon": {
"background-repeat": "no-repeat",
"background-image": " url('https://i.imgur.com/Ij3fpwv.png')"
},
".resources02-icon": {
"background-repeat": "no-repeat",
"background-image": " url('https://i.imgur.com/7Mavk31.jpg')"
},
".station-icon ": {
"background-repeat": "no-repeat",
"background-image": " url('https://i.imgur.com/kbgzBaR.png')"
},
".research-icon": {
"background-repeat": "no-repeat",
"background-image": " url('https://i.imgur.com/RBgBQKX.png')",
width: "50px",
height: "50px"
},
".shipyard-icon": {
"background-repeat": "no-repeat",
"background-image": " url('https://i.imgur.com/OB38ylT.png')"
},
".defence-icon": {
"background-repeat": "no-repeat",
"background-image": "url('https://i.imgur.com/k5dUBS9.png')"
},
".menu-icon32": {
background: " url('https://i.imgur.com/WuayUF0.png') no-repeat",
width: "24px",
height: "24px",
display: "inline-block"
},
".menu-icon32[ref=construction]": {
"background-position": " 0 0"
},
".menu-icon32[ref=production]": {
"background-position": " -24px 0"
},
".research-icon[ref=106]": {
"background-position": " 0 0"
},
".research-icon[ref=108]": {
"background-position": " -50px 0"
},
".research-icon[ref=109]": {
"background-position": " -100px 0"
},
".research-icon[ref=110]": {
"background-position": " -150px 0"
},
".research-icon[ref=111]": {
"background-position": " -200px 0"
},
".research-icon[ref=113]": {
"background-position": " -250px 0"
},
".research-icon[ref=114]": {
"background-position": " -300px 0"
},
".research-icon[ref=115]": {
"background-position": " -350px 0"
},
".research-icon[ref=117]": {
"background-position": " -400px 0"
},
".research-icon[ref=118]": {
"background-position": " -450px 0"
},
".research-icon[ref=120]": {
"background-position": " -500px 0"
},
".research-icon[ref=121]": {
"background-position": " -550px 0"
},
".research-icon[ref=122]": {
"background-position": " -600px 0"
},
".research-icon[ref=123]": {
"background-position": " -650px 0"
},
".research-icon[ref=199]": {
"background-position": " -700px 0"
},
".research-icon[ref=124]": {
"background-position": " -750px 0"
},
".resources01-icon[ref=12]": {
"background-position": " 0px 0 "
},
".resources01-icon[ref=1]": {
"background-position": " -30px 0 "
},
".resources01-icon[ref=4]": {
"background-position": " -60px 0 "
},
".resources01-icon[ref=3]": {
"background-position": " -90px 0 "
},
".resources01-icon[ref=2]": {
"background-position": " -120px 0 "
},
".resources01-icon[ref=212]": {
"background-position": " -150px 0 "
},
".resources02-icon[ref=22]": {
"background-position": " 0 0 "
},
".resources02-icon[ref=23]": {
"background-position": " -30px 0 "
},
".resources02-icon[ref=24]": {
"background-position": " -60px 0 "
},
".resources02-icon[ref=25]": {
"background-position": " -90px 0 "
},
".resources02-icon[ref=26]": {
"background-position": " -120px 0 "
},
".resources02-icon[ref=27]": {
"background-position": " -150px 0 "
},
".station-icon[ref=14]": {
"background-position": " 0 0 "
},
".station-icon[ref=31]": {
"background-position": " -30px 0 "
},
".station-icon[ref=34]": {
"background-position": " -60px 0 "
},
".station-icon[ref=21]": {
"background-position": " -90px 0 "
},
".station-icon[ref=15]": {
"background-position": " -120px 0 "
},
".station-icon[ref=33]": {
"background-position": " -150px 0 "
},
".station-icon[ref=44]": {
"background-position": " -180px 0 "
},
".station-icon[ref=41]": {
"background-position": " -210px 0 "
},
".station-icon[ref=42]": {
"background-position": " -240px 0 "
},
".station-icon[ref=43]": {
"background-position": " -270px 0 "
}
}, {
".techtree_link": {
height: "auto",
"min-width": 0
},
".techtree_link .label": {
display: "none"
},
".costs_wrap": {
"float": "none",
position: "absolute"
},
".costs_wrap .costs_info": {
height: "auto"
},
".production_info": {
position: "absolute",
height: "90px",
"max-width": "290px",
"min-width": "265px",
top: "110px"
},
".demolish_link": {
top: "162px"
},
".demolish_link .label": {
display: "none",
left: 0,
position: "absolute",
right: 0,
top: "2px"
},
".production_info .time": {
display: "inline-block",
"float": "right",
"text-align": "right"
},
".enter": {
width: "auto",
height: "auto",
top: "144px",
right: "10px"
},
".enter .amount": {
margin: "0 0 2px 3px",
display: "flex"
},
"#costs": {
width: "235px",
color: "white"
},
/*"#costs > li": {
"float": "none",
width: "235px",
height: "17px",
display: "inline-block",
"text-align": "right",
padding: 0,
"margin-bottom": "3px"
},
"#costs > li .cost": {
width: "100px",
"float": "left"
},*/
"#costs > li .need": {
width: "100px",
"float": "left"
}
}, {
"#header_text a.ogireset-data": {
right: "16px",
top: "6px",
position: "absolute"
}
}, {
".uibar_container, .uibar_filllevel": {
"background-image": "url(//gf3.geo.gfsrv.net/cdn52/fbe2638880f7c292a43439c0f328ad.png)",
"background-repeat": "repeat-x"
},
".uibar_container": {
"background-position": "0 -24px",
"box-shadow": "0 0 3px #000",
width: "auto",
height: "2px"
},
".uibar_filllevel": {
"box-shadow": "0 0 3px #000",
"float": "left",
height: "100%"
},
".uibar_fillunder": {
"background-position": "0 -16px"
},
".uibar_fillmiddle": {
"background-position": "0 -8px"
},
".uibar_fillover": {
"background-position": "0 0"
}
}, {
".uitechnology": {}
}, {
"#resources-summary": {},
"#resources-summary .resourceIcon": {
"float": "right"
}
}, {
"#resources-planets table img.icon-planet": {
display: "inline-block",
"float": "left",
"margin-right": "8px",
width: "30px"
},
"#resources-planets table img.icon-moon": {
display: "inline-block",
"float": "left",
margin: "0 8px 14px 8px",
width: "16px"
},
"#resources-planets table .label > b": {
display: "flex"
},
"#resources-planets table .label .ships": {
"float": "right"
},
"#resources-planets table .label .koords-stellar": {
"font-size": "0.8em"
},
"#resources-planets table em.em-storage": {
"font-size": "0.75em",
color: "dimgray"
},
"#resources-planets .btn-details": {
background: 'url("//gf2.geo.gfsrv.net/cdn71/fc7a8ede3499a0b19ea17613ff0cb1.gif") no-repeat left top',
height: "18px",
width: "20px",
display: "block"
},
"#resources-planets .btn-details.open": {
"background-position": "0 -18px"
}
}, {
".production-details span.tech-lvl": {
"font-size": "0.75em",
color: "dimgray"
},
".production-details span.tech-lvl::before": {
content: '"["'
},
".production-details span.tech-lvl::after": {
content: '"]"'
}
}, {
".details-stellar": {
"background-color": "#22313B",
"background-repeat": "no-repeat",
margin: "0",
padding: "0",
height: "300px",
"font-size": "0.8em"
},
".details-stellar.no-data": {
height: "auto",
"text-align": "center"
},
".details-stellar .ul-production": {
width: "200px"
}
});
var ui;
! function(e) {
var t;
! function(e) {
function t(e) {
utils.isNode(e) ? this.appendChild(e) : this.innerHTML = e.toString()
}! function(e) {
e[e.HEAD = 0] = "HEAD", e[e.BODY = 1] = "BODY", e[e.FOOT = 2] = "FOOT"
}(e.UiTableIn || (e.UiTableIn = {}));
var r = e.UiTableIn,
n = function() {
function e() {
this.table = utils.createElement("table", {
width: "100%",
"class": "ogi"
}), this.thead = this.table.createTHead(), this.tbody = this.table.createTBody(), this.tfoot = this.table.createTFoot()
}
return e.prototype.addRowIn = function(e, n) {
var i = null;
if (r.HEAD == e) i = this.thead;
else if (r.BODY == e) i = this.tbody;
else {
if (r.FOOT != e) throw new ReferenceError("Need a valid inkey (head, body or foot)");
i = this.tfoot
}
var s = i.insertRow();
return n.forEach(function(e) {
var r = utils.joinMaps({
type: "td",
attributes: {},
fnRender: t
}, e, !0);
Array.isArray(r.data) || (r.data = [r.data]);
var n = utils.createElement(r.type, r.attributes);
r.fnRender.apply(n, r.data), s.appendChild(n)
}), s
}, e.prototype.addRow = function(e, t, r) {
for (var n = [], i = 3; i < arguments.length; i++) n[i - 3] = arguments[i];
var s = this.tbody.insertRow();
return e.forEach(function(e, r) {
var n = s.insertCell();
if (t && t[r]) {
var i = t[r];
if (i)
for (var a in i) n.setAttribute(a, i[a])
}
utils.isNode(e) ? n.appendChild(e) : utils.isFunction(e) ? e.apply(n) : n.innerHTML = e
}), r && (n.unshift(s.childNodes), r.apply(e, n)), s
}, e.prototype.addRows = function() {
for (var e = [], t = 0; t < arguments.length; t++) e[t - 0] = arguments[t];
for (var r = 0; r < e.length; r++) {
var n = n[r],
i = Array.prototype.concat.call([n.items, n.cellsAttrs, n.callback], n.args);
this.addRow.apply(this, i)
}
return this
}, e
}();
e.UiTable = n
}(t = e.clazz || (e.clazz = {}))
}(ui || (ui = {}));
var ui;
! function(e) {
var t;
! function(e) {
function t(e, t) {
return new i(t, e.tech(t))
}
var r = utils.createElement,
n = "uitechnology technology tooltipRight tooltipHTML",
i = function() {
function e(e, t) {
this.box = r("div", {
"class": n
}), this._level = 0, this.spanlvl = r("span"), this.box.setAttribute("ref", e.toString()), this.box.appendChild(this.spanlvl), this.level = t, this.box.setAttribute("title", utils.format('{0}|<p align="center">{1$nd,}</p>', game.localization.technology(e), t))
}
return Object.defineProperty(e.prototype, "level", {
get: function() {
return this._level
},
set: function(e) {
this._level = e, this.spanlvl.innerHTML = unsafeWindow.gfNumberGetHumanReadable (e, 3), 0 >= e ? (this.spanlvl.style.display = "none", this.box.classList.add("off")) : (this.spanlvl.style.display = "block", this.box.classList.remove("off"))
},
enumerable: !0,
configurable: !0
}), e
}();
e.makeIcon = t
}(t = e.clazz || (e.clazz = {}))
}(ui || (ui = {}));
var ui;
! function(e) {
var t;
! function(e) {
var t = utils.createElement,
r = function() {
function e(e, r) {
void 0 === e && (e = 0), void 0 === r && (r = 1), this._container = t("div", {
"class": "uibar_container",
"data-amount": "0",
"data-capacity": "1"
}), this._fill = t("div", {
"class": "uibar_filllevel"
}), this._container.appendChild(this._fill), this.amount = e, this.capacity = r
}
return e.prototype.paint = function() {
var e = this.amount / this.capacity * 100;
e >= 100 && (e = 100), this._fill.style.width = e + "%", this._fill.classList.remove("uibar_fillunder", "uibar_fillmiddle", "uibar_fillover"), e >= 90 && 100 > e ? this._fill.classList.add("uibar_fillmiddle") : e >= 100 ? this._fill.classList.add("uibar_fillover") : this._fill.classList.add("uibar_fillunder")
}, Object.defineProperty(e.prototype, "amount", {
get: function() {
return parseInt(this._container.dataset.amount)
},
set: function(e) {
this._container.dataset.amount = "" + e, this.paint()
},
enumerable: !0,
configurable: !0
}), Object.defineProperty(e.prototype, "capacity", {
get: function() {
return parseInt(this._container.dataset.capacity)
},
set: function(e) {
this._container.dataset.capacity = "" + e, this.paint()
},
enumerable: !0,
configurable: !0
}), Object.defineProperty(e.prototype, "container", {
get: function() {
return this._container
},
enumerable: !0,
configurable: !0
}), e
}();
e.UiBar = r
}(t = e.clazz || (e.clazz = {}))
}(ui || (ui = {}));
var ui;
! function(e) {
var t;
! function(t) {
var r = utils.createElement,
n = function() {
function t(e) {
this._stellar = e, this.container = utils.createElement("div", {
"class": "details-stellar"
});
var t = game.db.player.getMapKey(game.db.keys.AccountOverviewImage, e.id);
if (t && (this.container.style.backgroundImage = utils.format("url({0})", t)), Object.keys(this._stellar.technologies).length) {
var n = this.makeUlResources();
this.container.appendChild(n)
} else this.container.appendChild(utils.createElement("p", null, game.language.t("Visit the body to read their information"))), this.container.classList.add("no-data");
this.container.appendChild(r("br", {
"class": "clearfloat"
}))
}
return t.prototype.makeUlResources = function() {
var t = r("ul", {
"class": "ul-vertical ul-production"
});
return this._stellar.isMoon || this.buildLiProduction(t), t.appendChild(r("li", null, e.clazz.makeIcon(this._stellar, 22).box)), t.appendChild(r("li", null, e.clazz.makeIcon(this._stellar, 23).box)), t.appendChild(r("li", null, e.clazz.makeIcon(this._stellar, 24).box)), t.appendChild(r("li", null, e.clazz.makeIcon(this._stellar, 4).box)), t.appendChild(r("li", null, e.clazz.makeIcon(this._stellar, 12).box)), t.appendChild(r("li", null, e.clazz.makeIcon(this._stellar, 212).box)), t
}, t.prototype.buildLiProduction = function(t) {
var n = this,
i = function(t, i) {
var s = e.clazz.makeIcon(n._stellar, 1),
a = Math.round(3600 * n._stellar.production[i]),
o = r("div", {
"class": "undermark bold"
}, utils.format("+{0$n}", unsafeWindow.number_format(a))),
l = (n._stellar.storage[i] - n._stellar.resources[i]) / n._stellar.production[i],
u = new Date(startServerTime + Math.ceil(1e3 * l) + timeDiff),
c = r("div", null, u.toISOString());
return s.box.classList.add("float-right"), r("li", null, s.box, o, c)
};
t.appendChild(i(1, "metal")), t.appendChild(i(2, "crystal")), t.appendChild(i(3, "deuterium"))
}, t
}();
t.DetailsStellar = n
}(t = e.clazz || (e.clazz = {}))
}(ui || (ui = {}));
var ui;
! function(e) {
var t;
! function(e) {
var t = utils.createElement,
r = function() {
function r(e) {
this.metal_hour = t("span", {
"class": "undermark hour"
}), this.crystal_hour = t("span", {
"class": "undermark hour"
}), this.deuterium_hour = t("span", {
"class": "undermark hour"
}), this.metal_total = t("span", {
"class": "metal total"
}), this.crystal_total = t("span", {
"class": "crystal total"
}), this.deuterium_total = t("span", {
"class": "deuterium total"
}), this.metal_planet = t("span"), this.crystal_planet = t("span"), this.deuterium_planet = t("span"), this.metal_moon = t("span"), this.crystal_moon = t("span"), this.deuterium_moon = t("span"), this.metal_flying = t("span"), this.crystal_flying = t("span"), this.deuterium_flying = t("span"), this.energy_total = t("span", {
"class": "energy total"
}), this.main = null, this.account = e
}
return r.prototype.row = function(e, r, n) {
for (var i = [], s = 3; s < arguments.length; s++) i[s - 3] = arguments[s];
for (var a = t("tr"), o = [], l = 0; l < e.length; l++) {
var u = jQuery("<td/>", r[l]);
u.append(e[l]), a.appendChild(u.get(0)), o.push(u.get(0))
}
return i.unshift(o), n.apply(e, i), a
}, r.prototype.makeTable = function() {
var r = this;
this.main = t("div", {
"class": "panel",
id: "resources-summary"
});
var n = new e.UiTable,
i = n.table;
this.main.appendChild(i);
var s = this;
n.addRowIn(e.UiTableIn.HEAD, [{
type: "th",
data: " "
}, {
type: "th",
attributes: {
width: 120
},
data: t("div", {
"class": "resourceIcon metal"
})
}, {
type: "th",
attributes: {
width: 120
},
data: t("div", {
"class": "resourceIcon crystal"
})
}, {
type: "th",
attributes: {
width: 120
},
data: t("div", {
"class": "resourceIcon deuterium"
})
}, {
type: "th",
attributes: {
width: 1
},
data: ""
}]);
var a = n.addRow([game.language.t("Production /h"), this.metal_hour, this.crystal_hour, this.deuterium_hour, ""], [{
"class": "label bold-hard"
}, {
"class": "bold"
}, {
"class": "bold"
}, {
"class": "bold"
}, {
"class": "bold"
}], function(e, t) {
var r = this;
t.listen("metal", function(e, t, n) {
r[1].innerHTML = "+ " + unsafeWindow.number_format(Math.round(3600 * n))
}), t.listen("crystal", function(e, t, n) {
r[2].innerHTML = "+ " + unsafeWindow.number_format(Math.round(3600 * n))
}), t.listen("deuterium", function(e, t, n) {
r[3].innerHTML = "+ " + unsafeWindow.number_format(Math.round(3600 * n))
})
}, this.account.stellars.production);
a.className = "align-right alt", a = n.addRow(["Σ " + game.language.t("Total"), this.metal_total, this.crystal_total, this.deuterium_total, ""], [{
"class": "label bold-hard"
}, {
"class": "bold"
}, {
"class": "bold"
}, {
"class": "bold"
}, {
"class": "bold"
}], function(e, t) {
var r = this;
t.listen("metal", function(e, t, n) {
r[1].innerHTML = unsafeWindow.number_format(n)
}), t.listen("crystal", function(e, t, n) {
r[2].innerHTML = unsafeWindow.number_format(n)
}), t.listen("deuterium", function(e, t, n) {
r[3].innerHTML = unsafeWindow.number_format(n)
})
}, this.account.resources), a.className = "align-right",
function() {
var e = function(e, t) {
for (var r = s.account.stellars.planets, n = !1, i = 0, a = 0; a < r.length; a++) {
var o = r[a].storage[e];
isNaN(o) ? n = !0 : i += o
}
var l = utils.createElement("i", {
style: "font-size:0.75em;color:dimgray;"
}, utils.format("/ {0}{1} ", n ? "~" : "", unsafeWindow.number_format(i)));
this.appendChild(t), this.appendChild(utils.createElement("br")), this.appendChild(l)
};
a = n.addRow([game.language.t("Planets"), function() {
e.apply(this, ["metal", s.metal_planet])
}, function() {
e.apply(this, ["crystal", s.crystal_planet])
}, function() {
e.apply(this, ["deuterium", s.deuterium_planet])
}, ""], [{
"class": "label"
}], function(e, t) {
t.listen("metal", function(e, t, r) {
s.metal_planet.innerHTML = unsafeWindow.number_format(r)
}), t.listen("crystal", function(e, t, r) {
s.crystal_planet.innerHTML = unsafeWindow.number_format(r)
}), t.listen("deuterium", function(e, t, r) {
s.deuterium_planet.innerHTML = unsafeWindow.number_format(r)
})
}, r.account.stellars.resourcesInPlanets), a.className = "summary align-right alt"
}(), a = n.addRow([game.language.t("Moons"), this.metal_moon, this.crystal_moon, this.deuterium_moon, ""], [{
"class": "label"
}], function(e, t) {
var r = this;
t.listen("metal", function(e, t, n) {
r[1].innerHTML = unsafeWindow.number_format(n)
}), t.listen("crystal", function(e, t, n) {
r[2].innerHTML = unsafeWindow.number_format(n)
}), t.listen("deuterium", function(e, t, n) {
r[3].innerHTML = unsafeWindow.number_format(n)
})
}, this.account.stellars.resourcesInMoons), a.className = "align-right", a = n.addRow([game.language.t("Flights"), this.metal_flying, this.crystal_flying, this.deuterium_flying, ""], [{
"class": "label"
}], function(e, t) {
var r = this;
t.listen("metal", function(e, t, n) {
r[1].innerHTML = unsafeWindow.number_format(n)
}), t.listen("crystal", function(e, t, n) {
r[2].innerHTML = unsafeWindow.number_format(n)
}), t.listen("deuterium", function(e, t, n) {
r[3].innerHTML = unsafeWindow.number_format(n)
})
}, this.account.fligths.resources), a.className = "align-right alt"
}, Object.defineProperty(r.prototype, "table", {
get: function() {
return this.main || this.makeTable(), this.main
},
enumerable: !0,
configurable: !0
}), r
}();
e.ResourcesProduction = r
}(t = e.clazz || (e.clazz = {}))
}(ui || (ui = {}));
var ui;
! function(e) {
var t;
! function(e) {
function t(e, t) {
var r = utils.createElement("span");
r.innerHTML = unsafeWindow.number_format(Math.round(3600 * e.production[t])), e.production.listen(t, function(e, t, n) {
r.innerHTML = unsafeWindow.number_format(Math.round(3600 * n))
}), this.appendChild(r)
}
var r = function() {
function r(e) {
this.main = null, this.account = e
}
return Object.defineProperty(r.prototype, "table", {
get: function() {
if (!this.main) {
var e = this.makeTable();
this.main = utils.createElement("div", {
"class": "panel production-details"
}, e)
}
return this.main
},
enumerable: !0,
configurable: !0
}), r.prototype.makeTable = function() {
var r = new e.UiTable;
r.addRowIn(e.UiTableIn.HEAD, [{
type: "th",
data: " "
}, {
type: "th",
data: game.language.t("METAL"),
attributes: {
colspan: 2,
width: 120
}
}, {
type: "th",
data: game.language.t("CRYSTAL"),
attributes: {
colspan: 2,
width: 120
}
}, {
type: "th",
data: game.language.t("DEUTERIUM"),
attributes: {
colspan: 2,
width: 120
}
}, {
type: "th",
attributes: {
width: 1
},
data: ""
}]);
var n = !0,
i = utils.resources3Observable(0);
this.account.stellars.planets.forEach(function(s) {
i.metal += s.production.metal, i.crystal += s.production.crystal, i.deuterium += s.production.deuterium;
var a = r.addRowIn(e.UiTableIn.BODY, [{
data: s.name,
attributes: {
"class": "label name-stellar bold"
}
}, {
data: [s, "metal"],
fnRender: t,
attributes: {
width: 90
}
}, {
data: utils.createElement("span", {
"class": "tech-lvl"
}, s.tech(1)),
attributes: {
width: 20
}
}, {
data: [s, "crystal"],
fnRender: t,
attributes: {
width: 90
}
}, {
data: utils.createElement("span", {
"class": "tech-lvl"
}, s.tech(2)),
attributes: {
width: 20
}
}, {
data: [s, "deuterium"],
fnRender: t,
attributes: {
width: 90
}
}, {
data: utils.createElement("span", {
"class": "tech-lvl"
}, s.tech(3)),
attributes: {
width: 20
}
}, {
data: ""
}]);
a.classList.add("align-right"), n && a.classList.add("alt"), s.id == game.currentPlanetID && a.classList.add("current-stellar"), n = !n
});
var s = function(e, t, r) {
var n = utils.createElement("span", {
"class": "undermark"
});
n.innerHTML = unsafeWindow.number_format(Math.round(e[t] * r)), e.listen(t, function(e, t, i) {
n.innerHTML = unsafeWindow.number_format(Math.round(i * r))
}), this.appendChild(n)
};
return [{
time: 3600,
text: "Production per hour:"
}, {
time: 86400,
text: "Daily production:"
}, {
time: 604800,
text: "Weekly production:"
}].forEach(function(t) {
r.addRowIn(e.UiTableIn.FOOT, [{
data: game.language.t(t.text),
attributes: {
"class": "label"
}
}, {
data: [i, "metal", t.time],
fnRender: s
}, {
data: ""
}, {
data: [i, "crystal", t.time],
fnRender: s
}, {
data: ""
}, {
data: [i, "deuterium", t.time],
fnRender: s
}, {
data: "",
attributes: {
colspan: 2
}
}]).classList.add("align-right")
}), r.tfoot.firstElementChild.classList.add("summary"), r.table
}, r
}();
e.ResourcesProductionDetails = r
}(t = e.clazz || (e.clazz = {}))
}(ui || (ui = {}));
var ui;
! function(e) {
var t;
! function(t) {
var r = utils.createElement,
n = function() {
function n(e) {
this._container = null, this._account = e
}
return Object.defineProperty(n.prototype, "container", {
get: function() {
return this._container || this.initContainer(), this._container
},
enumerable: !0,
configurable: !0
}), n.prototype.initContainer = function() {
var e = this;
this._container = r("div", {
id: "resources-planets",
"class": "panel"
});
var n = new t.UiTable;
this._container.appendChild(n.table), n.addRow([" ", game.language.t("METAL"), game.language.t("CRYSTAL"), game.language.t("DEUTERIUM"), " "], [null, {
width: "120"
}, {
width: "120"
}, {
width: "120"
}, {
width: "1"
}]);
var i = !0;
this._account.stellars.planets.forEach(function(t, r) {
var s = e.makeRowPlanet(n, t);
if (s.classList.add("align-right"), i && s.classList.add("alt"), game.currentPlanetID == t.id && s.classList.add("current-stellar"), t.moonID) {
var a = e._account.stellars.byId(t.moonID);
s = e.makeRowMoon(n, a), s.classList.add("align-right"), i && s.classList.add("alt"), game.currentPlanetID == a.id && s.classList.add("current-stellar")
}
i = !i
}), unsafeWindow.initTooltips(this.container), jQuery(this.container).on("click", ".btn-details", function(e) {
var t = e.target,
r = t.href,
n = utils.format("stellar-{0}-details", utils.parseInteger(r)),
i = document.getElementById(n);
console.info("show details", t, i), t.classList.contains("open") ? (i.style.display = "none", t.classList.remove("open"), changeTooltip(t, game.language.t("more details"))) : (i.style.display = "table-row", t.classList.add("open"), changeTooltip(t, game.language.t("less details")))
})
}, n.prototype.makeRowPlanet = function(e, n) {
var i = r("img", {
"class": "icon-planet",
src: n.image
}),
s = r("span", {
"class": "koords-stellar"
}),
a = r("b", {
"class": "name-stellar"
});
r("a", {
"class": "btn-details tooltipRight",
href: "javascript:void(" + n.id + ");",
title: game.language.t("more details")
});
s.innerHTML = n.coords.toString(), a.innerHTML = n.name;
var o = {
metal: r("b"),
crystal: r("b"),
deuterium: r("b")
},
l = {
metal: r("em", {
"class": "em-storage"
}),
crystal: r("em", {
"class": "em-storage"
}),
deuterium: r("em", {
"class": "em-storage"
})
},
u = {
metal: new t.UiBar,
crystal: new t.UiBar,
deuterium: new t.UiBar
},
c = function(e, t, r) {
var n = parseInt(l[e].dataset.max),
i = r / n * 100;
o[e].innerHTML = unsafeWindow.number_format(r), o[e].classList.remove("overmark", "middlemark"), l[e].classList.remove("overmark", "middlemark"), i >= 90 && 100 > i ? (o[e].classList.add("middlemark"), l[e].classList.add("middlemark")) : i >= 100 && (o[e].classList.add("overmark"), l[e].classList.add("overmark")), u[e].amount = r
},
d = function(e) {
var t = r("div"),
i = n.storage[e];
return isNaN(i) ? (u[e].capacity = -1, l[e].dataset.max = "-1", l[e].innerHTML = " /~") : (u[e].capacity = i, l[e].dataset.max = "" + i, l[e].innerHTML = " /" + unsafeWindow.gfNumberGetHumanReadable (i, 3)), t.appendChild(o[e]), t.appendChild(l[e]), t.appendChild(u[e].container), t
};
return n.resources.listen("metal", c), n.resources.listen("crystal", c), n.resources.listen("deuterium", c), e.addRow([function() {
this.appendChild(i), this.appendChild(a), this.appendChild(s)
}, d("metal"), d("crystal"), d("deuterium")], [{
"class": "label"
}])
}, n.prototype.makeRowMoon = function(e, t) {
var n = r("img", {
"class": "icon-moon",
src: t.image
}),
i = r("b", {
"class": "name-stellar"
});
r("a", {
"class": "btn-details tooltipRight",
href: "javascript:void(" + t.id + ");",
title: game.language.t("more details")
});
i.innerHTML = t.name;
var s = {
metal: r("span"),
crystal: r("span"),
deuterium: r("span")
},
a = function(e, t, r) {
s[e].innerHTML = unsafeWindow.number_format(r)
};
return t.resources.listen("metal", a), t.resources.listen("crystal", a), t.resources.listen("deuterium", a), e.addRow([utils.node2HTMLText(n, i), s.metal, s.crystal, s.deuterium], [{
"class": "label"
}])
}, n.prototype.makeRowDetails = function(t, r) {
var n = new e.clazz.DetailsStellar(r),
i = t.addRow([n.container], [{
colspan: "6",
style: "padding:0"
}]);
return i.id = utils.format("stellar-{0}-details", r.id), i.style.display = "none", i
}, n
}();
t.ResourcesStellars = n
}(t = e.clazz || (e.clazz = {}))
}(ui || (ui = {}));
var ui;
! function(e) {
var t;
! function(e) {
function t(e) {
! function(e, t) {
if (e) {
var r = t.style.backgroundImage.match(/(http.*[\.jpg|\.png|\.gif])/g)[0],
n = game.db.player.get(game.db.keys.AccountOverviewImage, "{}");
n[game.currentPlanetID] || (n[game.currentPlanetID] = r, game.db.player.set(game.db.keys.AccountOverviewImage, n))
}
}(game.isCurrentPage("overview"), document.getElementById("planet")),
function(t) {
if (t) {
var r = utils.createElement("span", {
"class": "flat24 sign-sync"
}),
n = utils.createElement("a", {
"class": "ogireset-data tooltipLeft",
href: "javascript:void(0);",
title: game.language.t("Refresh data stored of this planet/moon")
}, r);
t.insertBefore(n, t.firstChild), unsafeWindow.initTooltips(n);
var i = !1;
n.onclick = function(t) {
i || (i = !0, r.classList.add("animation-rotate360"), setTimeout(function() {
var t = e.startCurrentStellar(!0);
t.fail(function() {
r.classList.add("sign-error"), fadeBox(game.language.t("Failed to refresh data of the planet/moon."), !0)
}).done(function() {
r.classList.add("sign-check"), fadeBox(game.language.t("Data of the planet/moon updated successfully."), !1)
}).always(function() {
r.classList.remove("animation-rotate360", "sign-sync"), setTimeout(function() {
r.classList.remove("sign-check", "sign-error"), r.classList.add("sign-sync"), i = !1
}, 4e3)
})
}, 1500))
}
}
}(document.getElementById("header_text")),
function() {
setInterval(function() {
jQuery.ajax({
url: "/game/index.php?page=fetchEventbox&ajax=1",
global: !1,
dataType: "text"
}).done(reloadEventbox)
}, 3e4)
}()
}
e.shortcodes = t
}(t = e.inline || (e.inline = {}))
}(ui || (ui = {}));
var ui;
! function(e) {
var t;
! function(t) {
function r(e, t, r) {
var n = this.need_nodes[e];
n.innerHTML = unsafeWindow.number_format(r), n.classList.remove("undermark", "overmark", "middlemark", "bold"), 0 > r ? n.classList.add("overmark", "bold") : n.classList.add("undermark");
var i = this.cost_nodes[e];
if (i) {
var s = this.count * this.cost_base[e];
i.innerHTML = unsafeWindow.number_format(s), i.classList.remove("overmark"), 0 > r && i.classList.add("overmark")
}
}
function n() {
var e = document.getElementById("planet");
e && (l || (e.addEventListener("DOMNodeInserted", function(e) {
setTimeout(function() {
try {
if (!r || !r.target) return;
if ("content" !== r.target.id) return;
var e = r.target,
t = utils.getIntByQuery("[name-type]", "value");
o.show(e, t)
} catch (r) {
var n = utils.tracing(r);
console.error("Error => Buildings.run()#timeout @ ", n.toString())
}
}, 0)
}, !1), l = !0))
}
var i = game.utilities.currentResources,
s = utils.format,
a = function() {
function t() {
this.need_nodes = {}, this.need_nodes.metal = utils.createElement("div", {
"class": "need metal"
}), this.need_nodes.crystal = utils.createElement("div", {
"class": "need crystal"
}), this.need_nodes.deuterium = utils.createElement("div", {
"class": "need deuterium"
}), this.need_nodes.energy = utils.createElement("div", {
"class": "need energy"
}), this.bold_maxbuild = utils.createElement("b"), this.cost_base = utils.resources4(0), this.cost_diff = utils.resources4Observable(0), this.cost_diff.listen("metal", r, this), this.cost_diff.listen("crystal", r, this), this.cost_diff.listen("deuterium", r, this), this.cost_diff.listen("energy", r, this), this.cost_n = utils.createElement("i", {
style: "color: white;"
})
}
return t.prototype.updateCost = function() {
var e = i();
this.cost_n.innerHTML = s(" ( x{0} )", unsafeWindow.number_format(this.count)), this.cost_diff.metal = e.metal - this.cost_base.metal * this.count, this.cost_diff.crystal = e.crystal - this.cost_base.crystal * this.count, this.cost_diff.deuterium = e.deuterium - this.cost_base.deuterium * this.count, this.cost_diff.energy = e.energy - this.cost_base.energy * this.count;
var t = Math.min.apply(null, [Math.abs(e.metal / this.cost_base.metal), Math.abs(e.crystal / this.cost_base.crystal), Math.abs(e.deuterium / this.cost_base.deuterium), Math.abs(e.energy_generate / this.cost_base.energy)]);
this.bold_maxbuild.innerHTML = unsafeWindow.number_format(Math.floor(t))
}, t.prototype.show = function(t, r) {
var n = this;
this.container = t, this.id = r, this.count = 1, this.cost_base.metal = this.cost_base.crystal = 0, this.cost_base.deuterium = this.cost_base.energy = 0, this.cost_nodes = {}, this.input_number = document.getElementById("number");
for (var i = t.querySelectorAll("#costs > li"), s = new e.clazz.UiTable, a = 0; a < i.length; a++) {
var o = i.item(a),
l = o.querySelector(".resourceIcon"),
u = o.querySelector(".cost"),
c = null;
l.classList.add("resource16"), removeTooltip(o);
var d = utils.getTitle(o);
o.classList.remove("tooltip"), o.removeAttribute("title");
var p = utils.parseInteger(d);
unsafeWindow.initTooltips(o), l.classList.contains("metal") ? (c = this.need_nodes.metal, this.cost_nodes.metal = u, this.cost_base.metal = p) : l.classList.contains("crystal") ? (c = this.need_nodes.crystal, this.cost_nodes.crystal = u, this.cost_base.crystal = p) : l.classList.contains("deuterium") ? (c = this.need_nodes.deuterium, this.cost_nodes.deuterium = u, this.cost_base.deuterium = p) : l.classList.contains("energy") && (c = this.need_nodes.energy, this.cost_nodes.energy = u, this.cost_base.energy = p,
o.removeChild(o.querySelector("br"))), c && (c.innerHTML = "0", o.appendChild(c), s.addRow(d.split(" "), [{
"class": "align-right"
}, {
"class": "align-left",
style: "padding-left: 5px"
}]))
}
var h = t.querySelector("#costs");
if (h.classList.add("tooltipLeft"), changeTooltip(h, utils.node2HTMLText(s.table)), t.querySelector(".costs_info").appendChild(this.cost_n), this.input_number) {
var m = this.input_number.parentElement.querySelector(".amount");
m.textContent = "max: ", m.appendChild(this.bold_maxbuild), jQuery(this.input_number).on("keyup", function(e) {
var t = utils.parseInteger(n.input_number.value);
n.count = t || 1, n.updateCost()
}).on("focus", function(e) {
n.count = 1, n.updateCost()
}), this.input_number.setAttribute("autocomplete", "off"), this.count = utils.parseInteger(this.input_number.value) || 1
}
this.updateCost()
}, t
}(),
o = new a,
l = !1;
t.costructionAssistant = n
}(t = e.inline || (e.inline = {}))
}(ui || (ui = {}));
var GameUi = function() {
function e(e) {
this.isrun = !1, this._account = e, utils.define(this, "_account"), utils.define(this, "isrun", !1, !0, !0), this.container = utils.createElement("div", {
id: "ogimperium-view"
})
}
return e.prototype.show = function(e) {
void 0 === e && (e = null), document.getElementById("inhalt").style.display = "none", this.container.style.display = "block", e && e.preventDefault()
}, e.prototype.hide = function(e) {
void 0 === e && (e = null), document.getElementById("inhalt").style.display = "block", this.container.style.display = "none", e && e.preventDefault()
}, e.prototype.run = function() {
if (!this.isrun) {
initUi(this._account, this);
var e = document.getElementById("contentWrapper");
e.insertBefore(this.container, e.firstChild), this.isrun = !0, utils.define(this, "isrun")
}
}, e
}();
void 0 == unsafeWindow.currentPage && (unsafeWindow.currentPage = document.location.href.match(/page=(\w+)/gi)[0]);
game.ajax.then(function() {
return setTimeout(function() {
utils._window.imperium = __VERSION__;
try {
var e = new GameAccount,
t = new GameUi(e);
t.run()
} catch (r) {
var n = utils.tracing(r);
console.error("ERROR! (Imperium " + __VERSION__ + " ): ", n.toString())
}
}, 10)
});