Files
CookieMonster/src/Sim/ReplacedGameFunctions/SimGetTieredCpsMult.js
2022-06-19 20:57:42 +02:00

52 lines
1.6 KiB
JavaScript

import { SimObjects } from '../VariablesAndData';
import SimHas from './SimHas';
/**
* This functions creates functions similarly to Game.GetTieredCpsMult but checks Sim Data instead of Game Data
*/
export default function SimGetTieredCpsMult(me) {
let mult = 1;
Object.keys(me.tieredUpgrades).forEach((i) => {
if (!Game.Tiers[me.tieredUpgrades[i].tier].special && SimHas(me.tieredUpgrades[i].name)) {
let tierMult = 2;
// unshackled multipliers
if (
Game.ascensionMode !== 1 &&
SimHas(me.unshackleUpgrade) &&
SimHas(Game.Tiers[me.tieredUpgrades[i].tier].unshackleUpgrade)
)
tierMult += me.id === 1 ? 0.5 : (20 - me.id) * 0.1;
mult *= tierMult;
}
});
Object.keys(me.synergies).forEach((i) => {
if (SimHas(me.synergies[i].name)) {
const syn = me.synergies[i];
if (syn.buildingTie1.name === me.name) mult *= 1 + 0.05 * syn.buildingTie2.amount;
else if (syn.buildingTie2.name === me.name) mult *= 1 + 0.001 * syn.buildingTie1.amount;
}
});
if (me.fortune && SimHas(me.fortune.name)) mult *= 1.07;
if (me.grandma && SimHas(me.grandma.name))
mult *= 1 + SimObjects.Grandma.amount * 0.01 * (1 / (me.id - 1));
if (typeof me.tieredUpgrades.misfortune === 'object') {
if (me.vanilla === 1 && SimHas(me.tieredUpgrades.misfortune.name)) {
switch (Game.elderWrath) {
default:
mult *= 1;
break;
case 1:
mult *= 1.02;
break;
case 2:
mult *= 1.04;
break;
case 3:
mult *= 1.06;
break;
}
}
}
return mult;
}