89 lines
2.2 KiB
JavaScript
89 lines
2.2 KiB
JavaScript
/** @module Helpers
|
|
* Define some useful helpers that are used throughout the game.
|
|
*/
|
|
var Helpers = (function () {
|
|
'use strict';
|
|
/** Load a file (usually JSON).
|
|
*/
|
|
var loadFile = function (filename) {
|
|
var res;
|
|
$.ajax({
|
|
async: false,
|
|
url : filename,
|
|
success : function(data) {
|
|
res = data;
|
|
}
|
|
});
|
|
return res;
|
|
};
|
|
|
|
/** Format a number with proper postfix.
|
|
*/
|
|
var formatNumberPostfix = function (number) {
|
|
if (typeof number !== "number") {
|
|
return 0;
|
|
}
|
|
|
|
var prefixes = [
|
|
{ magnitude: 1e24, label: 'Y' },
|
|
{ magnitude: 1e21, label: 'Z' },
|
|
{ magnitude: 1e18, label: 'E' },
|
|
{ magnitude: 1e15, label: 'P' },
|
|
{ magnitude: 1e12, label: 'T' },
|
|
{ magnitude: 1e9, label: 'B' },
|
|
{ magnitude: 1e6, label: 'M' },
|
|
{ magnitude: 1e3, label: 'k' }
|
|
];
|
|
|
|
var abs = Math.abs(number);
|
|
for (var i = 0; i < prefixes.length; i++) {
|
|
if (abs >= prefixes[i].magnitude) {
|
|
return (number / prefixes[i].magnitude).toFixed(1) + prefixes[i].label;
|
|
}
|
|
}
|
|
return number;
|
|
}
|
|
|
|
var formatTime = function (msec) {
|
|
var totals = Math.ceil(msec / 1000);
|
|
var days = Math.floor(totals / (24 * 60 * 60));
|
|
var hours = Math.floor((totals % (24 * 60 * 60)) / (60 * 60));
|
|
var totalmin = (totals % (24 * 60 * 60)) % (60 * 60);
|
|
var mins = Math.floor(totalmin / 60);
|
|
var secs = totalmin % 60;
|
|
|
|
var str = [];
|
|
if (days > 0) {
|
|
str.push(days + ' day' + (days % 100 == 1 ? '' : 's'));
|
|
}
|
|
if (hours > 0) {
|
|
str.push(hours + ' h');
|
|
}
|
|
if (mins > 0) {
|
|
str.push(mins + ' min');
|
|
}
|
|
if (secs > 0) {
|
|
str.push(secs + ' s');
|
|
}
|
|
|
|
return str.join(', ');
|
|
};
|
|
|
|
var saveVersion = '1.0';
|
|
var validateSaveVersion = function () {
|
|
var ver = ObjectStorage.load('saveVersion');
|
|
if (typeof ver === 'undefined' || ver != saveVersion) {
|
|
ObjectStorage.clear();
|
|
ObjectStorage.save('saveVersion', saveVersion);
|
|
}
|
|
};
|
|
|
|
return {
|
|
loadFile: loadFile,
|
|
formatNumberPostfix: formatNumberPostfix,
|
|
formatTime: formatTime,
|
|
validateSaveVersion: validateSaveVersion,
|
|
analytics: ''
|
|
};
|
|
})();
|