mirror of
https://github.com/wassname/cardsforscience.git
synced 2026-06-27 17:29:55 +08:00
106 lines
2.7 KiB
JavaScript
106 lines
2.7 KiB
JavaScript
/** @module Helpers
|
|
* Define some useful helpers that are used throughout the game.
|
|
*/
|
|
var ObjectStorage = require("js/storage");
|
|
var Helpers = (function (ObjectStorage) {
|
|
'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: ''
|
|
};
|
|
})(ObjectStorage);
|
|
module.exports=Helpers;
|