diff --git a/src/Buy.ts b/src/Buy.ts index d8d86c37b..6d975738b 100644 --- a/src/Buy.ts +++ b/src/Buy.ts @@ -16,7 +16,7 @@ export const getReductionValue = () => { let reduction = 1 reduction += Math.min(1e15, (G.rune4level * G.effectiveLevelMult) / 160) reduction += (player.researches[56] + player.researches[57] + player.researches[58] + player.researches[59] + player.researches[60]) / 200 - reduction += CalcECC('transcend', player.challengecompletions[4]) / 200 + reduction += CalcECC('transcend', 4) / 200 reduction += Math.min(99999.9, (3 * (player.antUpgrades[7-1]! + G.bonusant7)) / 100) return reduction } @@ -29,15 +29,15 @@ const getCostAccelerator = (buyingTo: number): Decimal => { cost = cost.times(Decimal.pow(4 / G.costDivisor, buyingTo)) - if (buyingTo > (125 + 5 * CalcECC('transcend', player.challengecompletions[4]))) { - const num = buyingTo - 125 - 5 * CalcECC('transcend', player.challengecompletions[4]) + if (buyingTo > (125 + 5 * CalcECC('transcend', 4))) { + const num = buyingTo - 125 - 5 * CalcECC('transcend', 4) const factorialBit = new Decimal(num).factorial() const multBit = Decimal.pow(4, num) cost = cost.times(multBit.times(factorialBit)) } - if (buyingTo > (2000 + 5 * CalcECC('transcend', player.challengecompletions[4]))) { - const sumNum = buyingTo - 2000 - 5 * CalcECC('transcend', player.challengecompletions[4]) + if (buyingTo > (2000 + 5 * CalcECC('transcend', 4))) { + const sumNum = buyingTo - 2000 - 5 * CalcECC('transcend', 4) const sumBit = sumNum * (sumNum + 1) / 2 cost = cost.times(Decimal.pow(2, sumBit)) } @@ -174,15 +174,15 @@ const getCostMultiplier = (buyingTo: number): Decimal => { let cost = new Decimal(originalCost) cost = cost.times(Decimal.pow(10, buyingTo / G.costDivisor)) - if (buyingTo > (75 + 2 * CalcECC('transcend', player.challengecompletions[4]))) { - const num = buyingTo - 75 - 2 * CalcECC('transcend', player.challengecompletions[4]) + if (buyingTo > (75 + 2 * CalcECC('transcend', 4))) { + const num = buyingTo - 75 - 2 * CalcECC('transcend', 4) const factorialBit = new Decimal(num).factorial() const powBit = Decimal.pow(10, num) cost = cost.times(factorialBit.times(powBit)) } - if (buyingTo > (2000 + 2 * CalcECC('transcend', player.challengecompletions[4]))) { - const sumNum = buyingTo - 2000 - 2 * CalcECC('transcend', player.challengecompletions[4]) + if (buyingTo > (2000 + 2 * CalcECC('transcend', 4))) { + const sumNum = buyingTo - 2000 - 2 * CalcECC('transcend', 4) const sumBit = sumNum * (sumNum + 1) / 2 cost = cost.times(Decimal.pow(2, sumBit)) } @@ -586,7 +586,7 @@ export const buyProducer = (pos: FirstToFifth, type: keyof typeof buyProducerTyp let r = 1 r += (G.rune4level * G.effectiveLevelMult) / 160 r += (player.researches[56] + player.researches[57] + player.researches[58] + player.researches[59] + player.researches[60]) / 200 - r += CalcECC('transcend', player.challengecompletions[4]) / 200 + r += CalcECC('transcend', 4) / 200 r += (3 * (G.bonusant7 + player.antUpgrades[7-1]!)) / 100 const posCostType = `${pos}Cost${type}` as const diff --git a/src/Calculate.ts b/src/Calculate.ts index e7725b292..026a14262 100644 --- a/src/Calculate.ts +++ b/src/Calculate.ts @@ -54,7 +54,7 @@ export const calculateTotalAcceleratorBoost = () => { b += player.researches[93] * Math.floor(1 / 20 * (G.rune1level + G.rune2level + G.rune3level + G.rune4level + G.rune5level)) b += Math.floor((0.01 + G.rune1level) * G.effectiveLevelMult / 20) - b *= (1 + 1 / 5 * player.researches[3] * (1 + 1 / 2 * CalcECC('ascension', player.challengecompletions[14]))) + b *= (1 + 1 / 5 * player.researches[3] * (1 + 1 / 2 * CalcECC('ascension', 14))) b *= (1 + 1 / 20 * player.researches[16] + 1 / 20 * player.researches[17]) b *= (1 + 1 / 20 * player.researches[88]) b *= calculateSigmoidExponential(20, (player.antUpgrades[4-1]! + G.bonusant4) / 1000 * 20 / 19) @@ -80,7 +80,7 @@ export const calculateAcceleratorMultiplier = () => { G.acceleratorMultiplier *= (1 + player.achievements[60] / 100) G.acceleratorMultiplier *= (1 + player.achievements[61] / 100) G.acceleratorMultiplier *= (1 + player.achievements[62] / 100) - G.acceleratorMultiplier *= (1 + 1 / 5 * player.researches[1] * (1 + 1 / 2 * CalcECC('ascension', player.challengecompletions[14]))) + G.acceleratorMultiplier *= (1 + 1 / 5 * player.researches[1] * (1 + 1 / 2 * CalcECC('ascension', 14))) G.acceleratorMultiplier *= (1 + 1 / 20 * player.researches[6] + 1 / 25 * player.researches[7] + 1 / 40 * player.researches[8] + 3 / 200 * player.researches[9] + 1 / 200 * player.researches[10]) G.acceleratorMultiplier *= (1 + 1 / 20 * player.researches[86]) G.acceleratorMultiplier *= (1 + 1 / 100 * player.researches[126]) @@ -172,19 +172,19 @@ export function calculateRuneExpGiven(runeIndex: number, all = false, runeLevel // Rune multiplier that gets applied to specific runes const runeExpMultiplier = [ productContents([ - 1 + (player.researches[78] / 50), 1 + (player.researches[111] / 100), 1 + (CalcECC('reincarnation', player.challengecompletions[7]) / 10), droughtEffect + 1 + (player.researches[78] / 50), 1 + (player.researches[111] / 100), 1 + (CalcECC('reincarnation', 7) / 10), droughtEffect ]), productContents([ - 1 + (player.researches[80] / 50), 1 + (player.researches[112] / 100), 1 + (CalcECC('reincarnation', player.challengecompletions[7]) / 10), droughtEffect + 1 + (player.researches[80] / 50), 1 + (player.researches[112] / 100), 1 + (CalcECC('reincarnation', 7) / 10), droughtEffect ]), productContents([ - 1 + (player.researches[79] / 50), 1 + (player.researches[113] / 100), 1 + (CalcECC('reincarnation', player.challengecompletions[8]) / 5), droughtEffect + 1 + (player.researches[79] / 50), 1 + (player.researches[113] / 100), 1 + (CalcECC('reincarnation', 8) / 5), droughtEffect ]), productContents([ - 1 + (player.researches[77] / 50), 1 + (player.researches[114] / 100), 1 + (CalcECC('reincarnation', player.challengecompletions[6]) / 10), droughtEffect + 1 + (player.researches[77] / 50), 1 + (player.researches[114] / 100), 1 + (CalcECC('reincarnation', 6) / 10), droughtEffect ]), productContents([ - 1 + (player.researches[83] / 20), 1 + (player.researches[115] / 100), 1 + (CalcECC('reincarnation', player.challengecompletions[9]) / 5), droughtEffect + 1 + (player.researches[83] / 20), 1 + (player.researches[115] / 100), 1 + (CalcECC('reincarnation', 9) / 5), droughtEffect ]), productContents([1]), productContents([1]) @@ -235,8 +235,8 @@ export const calculateMaxRunes = (i: number) => { let max = 1000 const increaseAll = 20 * (player.cubeUpgrades[16] + player.cubeUpgrades[37]) - + 3 * player.constantUpgrades[7] + 80 * CalcECC('ascension', player.challengecompletions[11]) - + 200 * CalcECC('ascension', player.challengecompletions[14]) + + 3 * player.constantUpgrades[7] + 80 * CalcECC('ascension', 11) + + 200 * CalcECC('ascension', 14) + Math.floor(0.04 * player.researches[200] + 0.04 * player.cubeUpgrades[50]) const increaseMaxLevel = [ null, @@ -306,7 +306,7 @@ export function calculateOfferings(input: resetNames, calcMult = true, statistic b += 0.2 * player.researches[24] b += 1 / 200 * G.rune5level * G.effectiveLevelMult * (1 + player.researches[85] / 200) b *= (1 + Math.pow(Decimal.log(player.transcendShards.add(1), 10), 1 / 2) / 5) - b *= (1 + CalcECC('reincarnation', player.challengecompletions[8]) / 25) + b *= (1 + CalcECC('reincarnation', 8) / 25) b *= Math.min(Math.pow(player.transcendcounter / 10, 2), 1) if (player.transcendCount >= 5) { b *= Math.max(1, player.transcendcounter / 10) @@ -329,7 +329,7 @@ export function calculateOfferings(input: resetNames, calcMult = true, statistic c += 0.2 * player.researches[24] c += 1 / 200 * G.rune5level * G.effectiveLevelMult * (1 + player.researches[85] / 200) c *= (1 + Math.pow(Decimal.log(player.prestigeShards.add(1), 10), 1 / 2) / 5) - c *= (1 + CalcECC('reincarnation', player.challengecompletions[6]) / 50) + c *= (1 + CalcECC('reincarnation', 6) / 50) c *= Math.min(Math.pow(player.prestigecounter / 10, 2), 1) if (player.prestigeCount >= 5) { c *= Math.max(1, player.prestigecounter / 10) @@ -350,7 +350,7 @@ export function calculateOfferings(input: resetNames, calcMult = true, statistic G.cubeBonusMultiplier[3], // Brutus 1 + 0.02 * player.constantUpgrades[3], // Constant Upgrade 3 1 + 0.0003 * player.talismanLevels[3-1] * player.researches[149] + 0.0004 * player.talismanLevels[3-1] * player.researches[179], // Research 6x24,8x4 - 1 + 0.12 * CalcECC('ascension', player.challengecompletions[12]), // Challenge 12 + 1 + 0.12 * CalcECC('ascension', 12), // Challenge 12 1 + 0.01 / 100 * player.researches[200], // Research 8x25 1 + Math.min(1, player.ascensionCount / 1e6) * player.achievements[187], // Ascension Count Achievement 1 + .6 * player.achievements[250] + 1 * player.achievements[251], // Sun&Moon Achievements @@ -440,7 +440,7 @@ export const calculateObtainium = () => { G.obtainiumGain *= (1 + 0.04 * player.constantUpgrades[4]) G.obtainiumGain *= (1 + 0.1 * player.cubeUpgrades[47]) G.obtainiumGain *= (1 + 0.1 * player.cubeUpgrades[3]) - G.obtainiumGain *= (1 + 0.5 * CalcECC('ascension', player.challengecompletions[12])) + G.obtainiumGain *= (1 + 0.5 * CalcECC('ascension', 12)) G.obtainiumGain *= (1 + calculateCorruptionPoints() / 400 * G.effectiveRuneSpiritPower[4]) G.obtainiumGain *= (1 + 0.03 * Math.log(player.uncommonFragments + 1) / Math.log(4) * player.researches[144]) G.obtainiumGain *= (1 + 0.02 / 100 * player.cubeUpgrades[50]) @@ -699,9 +699,9 @@ export const calculateAnts = () => { let bonusLevels = 0 bonusLevels += 2 * (player.talismanRarity[6-1] - 1) - bonusLevels += CalcECC('reincarnation', player.challengecompletions[9]) + bonusLevels += CalcECC('reincarnation', 9) bonusLevels += 2 * player.constantUpgrades[6] - bonusLevels += 12 * CalcECC('ascension', player.challengecompletions[11]) + bonusLevels += 12 * CalcECC('ascension', 11) bonusLevels += Math.floor(1 / 200 * player.researches[200]) bonusLevels *= G.challenge15Rewards.bonusAntLevel let c11 = 0 @@ -762,7 +762,7 @@ export const calculateAntSacrificeELO = () => { G.antELO += 25 * player.researches[108] G.antELO += 25 * player.researches[109] G.antELO += 40 * player.researches[123] - G.antELO += 100 * CalcECC('reincarnation', player.challengecompletions[10]) + G.antELO += 100 * CalcECC('reincarnation', 10) G.antELO += 75 * player.upgrades[80] G.antELO = 1 / 10 * Math.floor(10 * G.antELO) @@ -797,7 +797,7 @@ const calculateAntSacrificeMultipliers = () => { G.upgradeMultiplier *= 1.25 } G.upgradeMultiplier *= (1 + 20 / 3 * G.effectiveRuneBlessingPower[3]) - G.upgradeMultiplier *= (1 + 1 / 50 * CalcECC('reincarnation', player.challengecompletions[10])) + G.upgradeMultiplier *= (1 + 1 / 50 * CalcECC('reincarnation', 10)) G.upgradeMultiplier *= (1 + 1 / 50 * player.researches[122]) G.upgradeMultiplier *= (1 + 3 / 100 * player.researches[133]) G.upgradeMultiplier *= (1 + 2 / 100 * player.researches[163]) diff --git a/src/Challenges.ts b/src/Challenges.ts index 6ab4565ea..429dc458e 100644 --- a/src/Challenges.ts +++ b/src/Challenges.ts @@ -106,7 +106,7 @@ export const challengeDisplay = (i: number, changefocus = true) => { if (player.challengecompletions[i] >= 100) { DOMCacheGetOrSet('completionSoftcap').innerHTML = i18next.t('challenges.perCompletionBonus', { x: 100, - y: format(CalcECC('transcend', player.challengecompletions[i]), 2, true) + y: format(CalcECC('transcend', i), 2, true) }) } else { DOMCacheGetOrSet('completionSoftcap').textContent = i18next.t('challenges.perCompletionBonusEmpty') @@ -119,7 +119,7 @@ export const challengeDisplay = (i: number, changefocus = true) => { if (player.challengecompletions[i] >= 25 && changefocus) { DOMCacheGetOrSet('completionSoftcap').innerHTML = i18next.t('challenges.perCompletionBonus', { x: 25, - y: format(CalcECC('reincarnation', player.challengecompletions[i]), 2, true) + y: format(CalcECC('reincarnation', i), 2, true) }) } else { DOMCacheGetOrSet('completionSoftcap').textContent = i18next.t('challenges.perCompletionBonusEmpty') @@ -129,7 +129,7 @@ export const challengeDisplay = (i: number, changefocus = true) => { if (player.challengecompletions[i] >= 10) { DOMCacheGetOrSet('completionSoftcap').innerHTML = i18next.t('challenges.perCompletionBonus', { x: 10, - y: format(CalcECC('ascension', player.challengecompletions[i]), 2, true) + y: format(CalcECC('ascension', i), 2, true) }) } else { DOMCacheGetOrSet('completionSoftcap').textContent = i18next.t('challenges.perCompletionBonusEmpty') @@ -161,82 +161,82 @@ export const challengeDisplay = (i: number, changefocus = true) => { switch (i) { case 1: { - current1 = current2 = format(10 * CalcECC('transcend', player.challengecompletions[1])) - current3 = format(0.04 * CalcECC('transcend', player.challengecompletions[1]), 2, true) + current1 = current2 = format(10 * CalcECC('transcend', 1)) + current3 = format(0.04 * CalcECC('transcend', 1), 2, true) break } case 2: { - current1 = current2 = format(5 * CalcECC('transcend', player.challengecompletions[2])) + current1 = current2 = format(5 * CalcECC('transcend', 2)) break } case 3: { current1 = format(0.04 * player.challengecompletions[3], 2, true) - current2 = format(0.5 * CalcECC('transcend', player.challengecompletions[3]), 2, true) - current3 = format(0.01 * CalcECC('transcend', player.challengecompletions[3]), 2, true) + current2 = format(0.5 * CalcECC('transcend', 3), 2, true) + current3 = format(0.01 * CalcECC('transcend', 3), 2, true) break } case 4: { - current1 = format(5 * CalcECC('transcend', player.challengecompletions[4])) - current2 = format(2 * CalcECC('transcend', player.challengecompletions[4])) - current3 = format(0.5 * CalcECC('transcend', player.challengecompletions[4]), 2, true) + current1 = format(5 * CalcECC('transcend', 4)) + current2 = format(2 * CalcECC('transcend', 4)) + current3 = format(0.5 * CalcECC('transcend', 4), 2, true) break } case 5: { - current1 = format(0.5 + CalcECC('transcend', player.challengecompletions[5]) / 100, 2, true) - current2 = format(Math.pow(10, CalcECC('transcend', player.challengecompletions[5]))) + current1 = format(0.5 + CalcECC('transcend', 5) / 100, 2, true) + current2 = format(Math.pow(10, CalcECC('transcend', 5))) break } case 6: { - current1 = format(Math.pow(0.965, CalcECC('reincarnation', player.challengecompletions[6])), 3, true) - current2 = format(10 * CalcECC('reincarnation', player.challengecompletions[6])) - current3 = format(2 * CalcECC('reincarnation', player.challengecompletions[6])) + current1 = format(Math.pow(0.965, CalcECC('reincarnation', 6)), 3, true) + current2 = format(10 * CalcECC('reincarnation', 6)) + current3 = format(2 * CalcECC('reincarnation', 6)) break } case 7: { - current1 = format(1 + 0.04 * CalcECC('reincarnation', player.challengecompletions[7]), 2, true) - current2 = current3 = format(10 * CalcECC('reincarnation', player.challengecompletions[7])) + current1 = format(1 + 0.04 * CalcECC('reincarnation', 7), 2, true) + current2 = current3 = format(10 * CalcECC('reincarnation', 7)) break } case 8: { - current1 = format(0.25 * CalcECC('reincarnation', player.challengecompletions[8]), 2, true) - current2 = format(20 * CalcECC('reincarnation', player.challengecompletions[8]), 2, true) - current3 = format(4 * CalcECC('reincarnation', player.challengecompletions[8]), 2, true) + current1 = format(0.25 * CalcECC('reincarnation', 8), 2, true) + current2 = format(20 * CalcECC('reincarnation', 8), 2, true) + current3 = format(4 * CalcECC('reincarnation', 8), 2, true) break } case 9: { - current1 = format(CalcECC('reincarnation', player.challengecompletions[9])) - current2 = format(Math.pow(1.1, CalcECC('reincarnation', player.challengecompletions[9])), 2, true) - current3 = format(20 * CalcECC('reincarnation', player.challengecompletions[9]), 2, true) + current1 = format(CalcECC('reincarnation', 9)) + current2 = format(Math.pow(1.1, CalcECC('reincarnation', 9)), 2, true) + current3 = format(20 * CalcECC('reincarnation', 9), 2, true) break } case 10: { - current1 = format(100 * CalcECC('reincarnation', player.challengecompletions[10])) - current2 = format(2 * CalcECC('reincarnation', player.challengecompletions[10])) - current3 = format(10 * CalcECC('reincarnation', player.challengecompletions[10]), 2, true) + current1 = format(100 * CalcECC('reincarnation', 10)) + current2 = format(2 * CalcECC('reincarnation', 10)) + current3 = format(10 * CalcECC('reincarnation', 10), 2, true) break } case 11: { - current1 = format(12 * CalcECC('ascension', player.challengecompletions[11])) - current2 = format(Decimal.pow(1e5, CalcECC('ascension', player.challengecompletions[11]))) - current3 = format(80 * CalcECC('ascension', player.challengecompletions[11])) + current1 = format(12 * CalcECC('ascension', 11)) + current2 = format(Decimal.pow(1e5, CalcECC('ascension', 11))) + current3 = format(80 * CalcECC('ascension', 11)) break } case 12: { - current1 = format(50 * CalcECC('ascension', player.challengecompletions[12])) - current2 = format(12 * CalcECC('ascension', player.challengecompletions[12])) - current3 = format(CalcECC('ascension', player.challengecompletions[12])) + current1 = format(50 * CalcECC('ascension', 12)) + current2 = format(12 * CalcECC('ascension', 12)) + current3 = format(CalcECC('ascension', 12)) break } case 13: { - current1 = format(100 - 100 * Math.pow(0.966, CalcECC('ascension', player.challengecompletions[13])), 3, true) - current2 = format(6 * CalcECC('ascension', player.challengecompletions[13])) - current3 = format(3 * CalcECC('ascension', player.challengecompletions[13])) + current1 = format(100 - 100 * Math.pow(0.966, CalcECC('ascension', 13)), 3, true) + current2 = format(6 * CalcECC('ascension', 13)) + current3 = format(3 * CalcECC('ascension', 13)) break } case 14: { - current1 = format(50 * CalcECC('ascension', player.challengecompletions[14])) + current1 = format(50 * CalcECC('ascension', 14)) current2 = format(1 * player.challengecompletions[14]) - current3 = format(200 * CalcECC('ascension', player.challengecompletions[14])) + current3 = format(200 * CalcECC('ascension', 14)) break } } @@ -478,8 +478,10 @@ export const calculateChallengeRequirementMultiplier = ( /** * Works to mitigate the difficulty of calculating challenge reward multipliers when considering softcapping */ -export const CalcECC = (type: 'transcend' | 'reincarnation' | 'ascension', completions: number) => { // ECC stands for "Effective Challenge Completions" +export const CalcECC = (type: 'transcend' | 'reincarnation' | 'ascension', index: number) => { // ECC stands for "Effective Challenge Completions" let effective = 0 + const completions = player.challengecompletions[index] + switch (type) { case 'transcend': effective += Math.min(100, completions) diff --git a/src/CubeExperimental.ts b/src/CubeExperimental.ts index aec8f2a26..759e790fd 100644 --- a/src/CubeExperimental.ts +++ b/src/CubeExperimental.ts @@ -209,7 +209,7 @@ export class WowCubes extends Cube { // If you're opening more than 20 cubes, it will consume all cubes until remainder mod 20, giving expected values. for (const key of keys) { - player.cubeBlessings[key] += blessings[key].weight * toSpendDiv20 * (1 + Math.floor(CalcECC('ascension', player.challengecompletions[12]))) + player.cubeBlessings[key] += blessings[key].weight * toSpendDiv20 * (1 + Math.floor(CalcECC('ascension', 12))) } // Then, the remaining cubes will be opened, simulating the probability [RNG Element] @@ -217,7 +217,7 @@ export class WowCubes extends Cube { const num = 100 * Math.random() for (const key of keys) { if (blessings[key].pdf(num)) { - player.cubeBlessings[key] += (1 + Math.floor(CalcECC('ascension', player.challengecompletions[12]))) + player.cubeBlessings[key] += (1 + Math.floor(CalcECC('ascension', 12))) } } } diff --git a/src/Synergism.ts b/src/Synergism.ts index cf39eb3ac..f2e3dd003 100644 --- a/src/Synergism.ts +++ b/src/Synergism.ts @@ -2215,7 +2215,7 @@ export const updateAllTick = (): void => { a += 2 } - a += 5 * CalcECC('transcend', player.challengecompletions[2]) + a += 5 * CalcECC('transcend', 2) G.freeUpgradeAccelerator = a a += G.totalAcceleratorBoost * (4 + 2 * player.researches[18] + 2 * player.researches[19] + 3 * player.researches[20] + G.cubeBonusMultiplier[1]) if (player.unlocks.prestige) { @@ -2251,10 +2251,10 @@ export const updateAllTick = (): void => { G.acceleratorPower = Math.pow( 1.1 + G.tuSevenMulti * (G.totalAcceleratorBoost / 100) - * (1 + CalcECC('transcend', player.challengecompletions[2]) / 20), - 1 + 0.04 * CalcECC('reincarnation', player.challengecompletions[7]) + * (1 + CalcECC('transcend', 2) / 20), + 1 + 0.04 * CalcECC('reincarnation', 7) ) - G.acceleratorPower += 1 / 200 * Math.floor(CalcECC('transcend', player.challengecompletions[2]) / 2) * 100 / 100 + G.acceleratorPower += 1 / 200 * Math.floor(CalcECC('transcend', 2) / 2) * 100 / 100 for (let i = 1; i <= 5; i++) { if (player.achievements[7 * i - 4] > 0) { G.acceleratorPower += 0.0005 * i @@ -2272,12 +2272,7 @@ export const updateAllTick = (): void => { G.acceleratorPower = 1 } if (player.currentChallenge.transcension === 3) { - G.acceleratorPower = - 1.05 + - 2 * G.tuSevenMulti * - (G.totalAcceleratorBoost / 300) * - (1 + CalcECC('transcend', player.challengecompletions[2]) / 20 - ) + G.acceleratorPower = 1.05 + 2 * G.tuSevenMulti * (G.totalAcceleratorBoost / 300) * (1 + CalcECC('transcend', 2) / 20) } } G.acceleratorPower = Math.min(1e300, G.acceleratorPower) @@ -2390,7 +2385,7 @@ export const updateAllMultiplier = (): void => { a *= (1 + player.achievements[59] / 100) a *= Math.pow(1.01, player.upgrades[21] + player.upgrades[22] + player.upgrades[23] + player.upgrades[24] + player.upgrades[25]) a *= (1 + 0.03 * player.upgrades[34] + 0.02 * player.upgrades[35]) - a *= (1 + 1 / 5 * player.researches[2] * (1 + 1 / 2 * CalcECC('ascension', player.challengecompletions[14]))) + a *= (1 + 1 / 5 * player.researches[2] * (1 + 1 / 2 * CalcECC('ascension', 14))) a *= (1 + 1 / 20 * player.researches[11] + 1 / 25 * player.researches[12] + 1 / 40 * player.researches[13] + 3 / 200 * player.researches[14] + 1 / 200 * player.researches[15]) a *= (1 + G.rune2level / 400 * G.effectiveLevelMult) a *= (1 + 1 / 20 * player.researches[87]) @@ -2433,10 +2428,10 @@ export const updateAllMultiplier = (): void => { b *= (1 + player.researches[89] / 5) b *= (1 + 10 * G.effectiveRuneBlessingPower[2]) - c += Math.floor((0.1 * b * CalcECC('transcend', player.challengecompletions[1]))) - c += (CalcECC('transcend', player.challengecompletions[1]) * 10) + c += Math.floor(0.1 * b * CalcECC('transcend', 1)) + c += (CalcECC('transcend', 1) * 10) G.freeMultiplierBoost = c - G.totalMultiplierBoost = Math.pow(Math.floor(b) + c, 1 + CalcECC('reincarnation', player.challengecompletions[7]) * 0.04) + G.totalMultiplierBoost = Math.pow(Math.floor(b) + c, 1 + CalcECC('reincarnation', 7) * 0.04) let c7 = 1 if (player.challengecompletions[7] > 0.5) { @@ -2471,7 +2466,7 @@ export const multipliers = (): void => { let c = new Decimal(1) let crystalExponent = 1 / 3 crystalExponent += Math.min(10 + 0.05 * player.researches[129] * Math.log(player.commonFragments + 1) / Math.log(4) + 20 * calculateCorruptionPoints() / 400 * G.effectiveRuneSpiritPower[3], 0.05 * player.crystalUpgrades[3]) - crystalExponent += 0.04 * CalcECC('transcend', player.challengecompletions[3]) + crystalExponent += 0.04 * CalcECC('transcend', 3) crystalExponent += 0.08 * player.researches[28] crystalExponent += 0.08 * player.researches[29] crystalExponent += 0.04 * player.researches[30] @@ -2493,8 +2488,7 @@ export const multipliers = (): void => { 1 / 40 * player.researches[37] + 1 / 40 * player.researches[38]) + (c7 + 0.2) * 0.25 / 1.2 * - CalcECC('reincarnation', player.challengecompletions[8] - ) + CalcECC('reincarnation', 8) G.buildingPower = Math.pow(G.buildingPower, 1 + player.cubeUpgrades[12] * 0.09) G.buildingPower = Math.pow(G.buildingPower, 1 + player.cubeUpgrades[36] * 0.05) @@ -2641,8 +2635,8 @@ export const multipliers = (): void => { G.globalCrystalMultiplier = G.globalCrystalMultiplier.times(Decimal.min(Decimal.pow(10, 100 + 5 * player.crystalUpgrades[1]), Decimal.pow(Decimal.log(player.coins.add(1), 10), player.crystalUpgrades[1] / 3))) G.globalCrystalMultiplier = G.globalCrystalMultiplier.times(Decimal.pow(1 + Math.min(0.12 + 0.88 * player.upgrades[122] + 0.001 * player.researches[129] * Math.log(player.commonFragments + 1) / Math.log(4), 0.001 * player.crystalUpgrades[2]), player.firstOwnedDiamonds + player.secondOwnedDiamonds + player.thirdOwnedDiamonds + player.fourthOwnedDiamonds + player.fifthOwnedDiamonds)) G.globalCrystalMultiplier = G.globalCrystalMultiplier.times(Decimal.pow(1.01, (player.challengecompletions[1] + player.challengecompletions[2] + player.challengecompletions[3] + player.challengecompletions[4] + player.challengecompletions[5]) * player.crystalUpgrades[4])) - G.globalCrystalMultiplier = G.globalCrystalMultiplier.times(Decimal.pow(10, CalcECC('transcend', player.challengecompletions[5]))) - G.globalCrystalMultiplier = G.globalCrystalMultiplier.times(Decimal.pow(1e4, player.researches[5] * (1 + 1 / 2 * CalcECC('ascension', player.challengecompletions[14])))) + G.globalCrystalMultiplier = G.globalCrystalMultiplier.times(Decimal.pow(10, CalcECC('transcend', 5))) + G.globalCrystalMultiplier = G.globalCrystalMultiplier.times(Decimal.pow(1e4, player.researches[5] * (1 + 1 / 2 * CalcECC('ascension', 14)))) G.globalCrystalMultiplier = G.globalCrystalMultiplier.times(Decimal.pow(2.5, player.researches[26])) G.globalCrystalMultiplier = G.globalCrystalMultiplier.times(Decimal.pow(2.5, player.researches[27])) @@ -2672,7 +2666,7 @@ export const multipliers = (): void => { G.grandmasterMultiplier = new Decimal(1) G.totalMythosOwned = player.firstOwnedMythos + player.secondOwnedMythos + player.thirdOwnedMythos + player.fourthOwnedMythos + player.fifthOwnedMythos - G.mythosBuildingPower = 1 + (CalcECC('transcend', player.challengecompletions[3]) / 200) + G.mythosBuildingPower = 1 + (CalcECC('transcend', 3) / 200) G.challengeThreeMultiplier = Decimal.pow(G.mythosBuildingPower, G.totalMythosOwned) G.grandmasterMultiplier = G.grandmasterMultiplier.times(G.challengeThreeMultiplier) @@ -2892,7 +2886,7 @@ export const updateAntMultipliers = (): void => { G.globalAntMult = G.globalAntMult.times(antSacrificePointsToMultiplier(player.antSacrificePoints)) G.globalAntMult = G.globalAntMult.times(Decimal.pow(Math.max(1, player.researchPoints), G.effectiveRuneBlessingPower[5])) G.globalAntMult = G.globalAntMult.times(Decimal.pow(1 + G.runeSum / 100, G.talisman6Power)) - G.globalAntMult = G.globalAntMult.times(Decimal.pow(1.1, CalcECC('reincarnation', player.challengecompletions[9]))) + G.globalAntMult = G.globalAntMult.times(Decimal.pow(1.1, CalcECC('reincarnation', 9))) G.globalAntMult = G.globalAntMult.times(G.cubeBonusMultiplier[6]) if (player.achievements[169] === 1) { G.globalAntMult = G.globalAntMult.times(Decimal.log(player.antPoints.add(10), 10)) @@ -2907,7 +2901,7 @@ export const updateAntMultipliers = (): void => { G.globalAntMult = G.globalAntMult.times(1.60) } G.globalAntMult = G.globalAntMult.times(Decimal.pow(1 + 0.1 * Decimal.log(player.ascendShards.add(1), 10), player.constantUpgrades[5])) - G.globalAntMult = G.globalAntMult.times(Decimal.pow(1e5, CalcECC('ascension', player.challengecompletions[11]))) + G.globalAntMult = G.globalAntMult.times(Decimal.pow(1e5, CalcECC('ascension', 11))) if (player.researches[147] > 0) { G.globalAntMult = G.globalAntMult.times(Decimal.log(player.antPoints.add(10), 10)) } @@ -2996,7 +2990,7 @@ export const createAnts = (dt: number): void => { } export const resetCurrency = (): void => { - let prestigePow = 0.5 + CalcECC('transcend', player.challengecompletions[5]) / 100 + let prestigePow = 0.5 + CalcECC('transcend', 5) / 100 let transcendPow = 0.03 // Calculates the conversion exponent for resets (Challenges 5 and 10 reduce the exponent accordingly). @@ -3680,7 +3674,7 @@ export const updateAll = (): void => { } G.effectiveLevelMult = 1 - G.effectiveLevelMult *= (1 + player.researches[4] / 10 * (1 + 1 / 2 * CalcECC('ascension', player.challengecompletions[14]))) //Research 1x4 + G.effectiveLevelMult *= (1 + player.researches[4] / 10 * (1 + 1 / 2 * CalcECC('ascension', 14))) //Research 1x4 G.effectiveLevelMult *= (1 + player.researches[21] / 100) //Research 2x6 G.effectiveLevelMult *= (1 + player.researches[90] / 100) //Research 4x15 G.effectiveLevelMult *= (1 + player.researches[131] / 200) //Research 6x6 diff --git a/src/Talismans.ts b/src/Talismans.ts index af9daa081..1d90776b0 100644 --- a/src/Talismans.ts +++ b/src/Talismans.ts @@ -48,7 +48,7 @@ const num = ['One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven'] as const export const calculateMaxTalismanLevel = (i: number) => { let maxLevel = 30 * player.talismanRarity[i] - maxLevel += 6 * CalcECC('ascension', player.challengecompletions[13]) + maxLevel += 6 * CalcECC('ascension', 13) maxLevel += Math.floor(player.researches[200] / 400) if (player.cubeUpgrades[67] > 0 && i === 3) { diff --git a/src/Tax.ts b/src/Tax.ts index cbb7ab27b..1e11de896 100644 --- a/src/Tax.ts +++ b/src/Tax.ts @@ -63,7 +63,7 @@ export const calculatetax = () => { exponent *= exp exponent *= (1 - 1 / 20 * player.researches[51] - 1 / 40 * player.researches[52] - 1 / 80 * player.researches[53] - 1 / 160 * player.researches[54] - 1 / 320 * player.researches[55]) exponent *= (1 - 0.05 / 1800 * (player.achievements[45] + player.achievements[46] + 2 * player.achievements[47]) * Math.min(player.prestigecounter, 1800)) - exponent *= Math.pow(0.965, CalcECC('reincarnation', player.challengecompletions[6])) + exponent *= Math.pow(0.965, CalcECC('reincarnation', 6)) exponent *= (0.001 + .999 * (Math.pow(6, -(G.rune2level * G.effectiveLevelMult) / 1000))) exponent *= (0.01 + .99 * (Math.pow(4, Math.min(0, (400 - G.rune4level) / 1100)))) exponent *= (1 - 0.04 * player.achievements[82] - 0.04 * player.achievements[89] - 0.04 * player.achievements[96] - 0.04 * player.achievements[103] - 0.04 * player.achievements[110] - 0.0566 * player.achievements[117] - 0.0566 * player.achievements[124] - 0.0566 * player.achievements[131]) @@ -72,7 +72,7 @@ export const calculatetax = () => { exponent *= 1 / Math.pow((1 + Decimal.log(player.ascendShards.add(1), 10)), 1 + .2 / 60 * player.challengecompletions[10] * player.upgrades[125] + 0.1 * player.platonicUpgrades[5] + 0.2 * player.platonicUpgrades[10] + (G.platonicBonusMultiplier[5]-1)) exponent *= (1 - 0.10 * (player.talismanRarity[1-1] - 1)) exponent *= Math.pow(0.98, 3 / 5 * Math.log(1 + player.rareFragments) / Math.log(10) * player.researches[159]) - exponent *= Math.pow(0.966, CalcECC('ascension', player.challengecompletions[13])) + exponent *= Math.pow(0.966, CalcECC('ascension', 13)) exponent *= (1 - 0.666 * player.researches[200] / 100000) exponent *= (1 - 0.666 * player.cubeUpgrades[50] / 100000) exponent *= G.challenge15Rewards.taxes diff --git a/src/UpdateVisuals.ts b/src/UpdateVisuals.ts index 209a1960c..8742bf152 100644 --- a/src/UpdateVisuals.ts +++ b/src/UpdateVisuals.ts @@ -84,7 +84,7 @@ export const visualUpdateBuildings = () => { }) DOMCacheGetOrSet('buildtext16').textContent = i18next.t('buildings.acceleratorBoost', { - amount: format(G.tuSevenMulti * (1 + player.researches[16] / 50) * (1 + CalcECC('transcend', player.challengecompletions[2]) / 100), 2) + amount: format(G.tuSevenMulti * (1 + player.researches[16] / 50) * (1 + CalcECC('transcend', 2) / 100), 2) }) DOMCacheGetOrSet('buyaccelerator').textContent = i18next.t('buildings.costCoins', { coins: format(player.acceleratorCost) })