mirror of
https://github.com/wassname/cardsforscience.git
synced 2026-06-27 19:46:48 +08:00
74 lines
1.8 KiB
JavaScript
74 lines
1.8 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 abs = Math.abs(number);
|
|
if (abs >= Math.pow(10, 12)) {
|
|
number = (number / Math.pow(10, 12)).toFixed(1) + "T";
|
|
} else if (abs >= Math.pow(10, 9)) {
|
|
number = (number / Math.pow(10, 9)).toFixed(1) + "B";
|
|
} else if (abs >= Math.pow(10, 6)) {
|
|
number = (number / Math.pow(10, 6)).toFixed(1) + "M";
|
|
} else if (abs >= Math.pow(10, 3)) {
|
|
number = (number / Math.pow(10, 3)).toFixed(1) + "k";
|
|
} else {
|
|
number = number.toFixed(0);
|
|
}
|
|
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(', ');
|
|
}
|
|
|
|
return {
|
|
loadFile: loadFile,
|
|
formatNumberPostfix: formatNumberPostfix,
|
|
formatTime: formatTime,
|
|
version: '0.4',
|
|
analytics: ''
|
|
};
|
|
})();
|