ogamejs
Version:
## Introduction
61 lines (52 loc) • 1.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
function getPositionFactor(pos) {
var factor = {
1: 1.3,
2: 1.225,
3: 1.15
};
return factor[Number.parseInt(pos, 10)] ? factor[Number.parseInt(pos, 10)] : 1;
}
function getMineProduction(baseProduction, targetLevel, pos, universeSpeed) {
var positionFactor = getPositionFactor(pos);
var levelFactor = Math.pow(1.1, targetLevel);
return Math.floor(baseProduction * targetLevel * levelFactor * universeSpeed * positionFactor);
}
function getEnergyCost(baseEnergyCost, targetLevel) {
var level = targetLevel;
var levelFactor = Math.pow(1.1, level);
return Math.floor(baseEnergyCost * level * levelFactor);
}
function getMetalCost(baseMetalCost, targetLevel) {
var level = targetLevel - 1;
return Math.floor(baseMetalCost * Math.pow(1.6, level));
}
function getCrystalCost(baseCrystalCost, targetLevel) {
var level = targetLevel - 1;
return Math.floor(baseCrystalCost * Math.pow(1.6, level));
}
/**
*
* Return information about the crystal mine given a specific level
* @param {object} mine The crystal mine base information
* @param {number} targetLevel the crystal mine target level
* @param {number} pos pos 1/2/3 have a 15/10/5%
* @param {number} universeSpeed production factor is increased for some universe
* @returns {Object} informations about the crystal mine at this specific level
*/
function getCrystalMine(mine, targetLevel, pos) {
var universeSpeed = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
return {
crystal: getCrystalCost(mine.crystal, targetLevel),
deuterium: 0,
energy: getEnergyCost(mine.energy, targetLevel),
metal: getMetalCost(mine.metal, targetLevel),
production: getMineProduction(mine.production, targetLevel, pos, universeSpeed)
};
}
var _default = getCrystalMine;
exports["default"] = _default;