* Bump dev to 2.031.6 * Added prettier (#661) * Added prettier * Added prettier * Added prettier
81 lines
2.7 KiB
JavaScript
81 lines
2.7 KiB
JavaScript
/* eslint-disable no-unused-vars */
|
|
/** Functions related to the Dragon */
|
|
|
|
import { Beautify } from '../../Disp/BeautifyAndFormatting/BeautifyFormatting';
|
|
import CopyData from '../../Sim/SimulationData/CopyData';
|
|
import { SimDoSims, SimObjects } from '../../Sim/VariablesAndData';
|
|
import {
|
|
CacheCostDragonUpgrade,
|
|
CacheDragonAura,
|
|
CacheDragonAura2,
|
|
CacheLastDragonLevel,
|
|
} from '../VariablesAndData';
|
|
|
|
/**
|
|
* This functions caches the current cost of upgrading the dragon level so it can be displayed in the tooltip
|
|
*/
|
|
export default function CacheDragonCost() {
|
|
if (CacheLastDragonLevel !== Game.dragonLevel || SimDoSims) {
|
|
if (
|
|
Game.dragonLevel < 25 &&
|
|
Game.dragonLevels[Game.dragonLevel].buy.toString().includes('sacrifice')
|
|
) {
|
|
let target = Game.dragonLevels[Game.dragonLevel].buy
|
|
.toString()
|
|
.match(/Objects\[(.*)\]/)[1];
|
|
const amount = Game.dragonLevels[Game.dragonLevel].buy
|
|
.toString()
|
|
.match(/sacrifice\((.*?)\)/)[1];
|
|
if (target !== 'i') {
|
|
target = target.replaceAll("'", '');
|
|
if (Game.Objects[target].amount < amount) {
|
|
CacheCostDragonUpgrade = 'Not enough buildings to sell';
|
|
} else {
|
|
let cost = 0;
|
|
CopyData();
|
|
for (let i = 0; i < amount; i++) {
|
|
let price =
|
|
SimObjects[target].basePrice *
|
|
Game.priceIncrease **
|
|
Math.max(
|
|
0,
|
|
SimObjects[target].amount - 1 - SimObjects[target].free,
|
|
);
|
|
price = Game.modifyBuildingPrice(SimObjects[target], price);
|
|
price = Math.ceil(price);
|
|
cost += price;
|
|
SimObjects[target].amount--;
|
|
}
|
|
CacheCostDragonUpgrade = `Cost to rebuy: ${cost}`;
|
|
}
|
|
} else {
|
|
let cost = 0;
|
|
CopyData();
|
|
for (const j of Object.keys(Game.Objects)) {
|
|
target = j;
|
|
if (Game.Objects[target].amount < amount) {
|
|
CacheCostDragonUpgrade = 'Not enough buildings to sell';
|
|
break;
|
|
} else {
|
|
for (let i = 0; i < amount; i++) {
|
|
let price =
|
|
SimObjects[target].basePrice *
|
|
Game.priceIncrease **
|
|
Math.max(
|
|
0,
|
|
SimObjects[target].amount - 1 - SimObjects[target].free,
|
|
);
|
|
price = Game.modifyBuildingPrice(SimObjects[target], price);
|
|
price = Math.ceil(price);
|
|
cost += price;
|
|
SimObjects[target].amount--;
|
|
}
|
|
}
|
|
CacheCostDragonUpgrade = `Cost to rebuy: ${Beautify(cost)}`;
|
|
}
|
|
}
|
|
}
|
|
CacheLastDragonLevel = Game.dragonLevel;
|
|
}
|
|
}
|