-
+
@@ -3506,7 +3506,6 @@
Artists
0
0
0
-
0
TOTAL OCTERACT MULTIPLIER: 0
diff --git a/src/Ants.ts b/src/Ants.ts
index 3b025319f..6bfb36f94 100644
--- a/src/Ants.ts
+++ b/src/Ants.ts
@@ -133,7 +133,7 @@ export const updateAntDescription = (i: number) => {
}
const getAntCost = (originalCost: Decimal, buyTo: number, index: number) => {
- ;--buyTo
+ buyTo--
// Determine how much the cost is for buyTo
const cost = originalCost
@@ -144,7 +144,7 @@ const getAntCost = (originalCost: Decimal, buyTo: number, index: number) => {
}
const getAntUpgradeCost = (originalCost: Decimal, buyTo: number, index: number) => {
- ;--buyTo
+ buyTo--
const cost = originalCost.times(Decimal.pow(G.antUpgradeCostIncreases[index - 1], buyTo))
return cost
diff --git a/src/Buy.ts b/src/Buy.ts
index bbf754656..2bfbb65ca 100644
--- a/src/Buy.ts
+++ b/src/Buy.ts
@@ -23,7 +23,7 @@ export const getReductionValue = () => {
}
const getCostAccelerator = (buyingTo: number): Decimal => {
- ;--buyingTo
+ buyingTo--
const originalCost = 500
let cost = new Decimal(originalCost)
@@ -169,7 +169,7 @@ export const buyAccelerator = (autobuyer?: boolean) => {
}
const getCostMultiplier = (buyingTo: number): Decimal => {
- ;--buyingTo
+ buyingTo--
const originalCost = 1e4
let cost = new Decimal(originalCost)
@@ -378,7 +378,7 @@ const getCostInternal = (
r: number
): Decimal => {
// It's 0 indexed by mistake so you have to subtract 1 somewhere.
- ;--buyingTo
+ buyingTo--
const buymax = Math.pow(10, 15)
// Accounts for the multiplies by 1.25^num buyingTo times
const cost = new Decimal(originalCost)
@@ -392,7 +392,7 @@ const getCostInternal = (
let fr = Math.floor(r * 1000)
if (buyingTo >= r * 1000) {
// This code is such a mess at this point, just know that this is equivalent to what it was before
- ;++fastFactMultBuyTo
+ fastFactMultBuyTo++
cost.exponent -= factorialByExponent(fr)
cost.exponent += (-3 + Math.log10(1 + (num / 2))) * (buyingTo - fr)
}
@@ -400,7 +400,7 @@ const getCostInternal = (
fr = Math.floor(r * 5000)
if (buyingTo >= r * 5000) {
// This code is such a mess at this point, just know that this is equivalent to what it was before
- ;++fastFactMultBuyTo
+ fastFactMultBuyTo++
cost.exponent -= factorialByExponent(fr)
cost.exponent += ((known_log10s[10 + num * 10] + 1) * (buyingTo - fr - 1)) + 1
}
@@ -432,7 +432,7 @@ const getCostInternal = (
if ((player.currentChallenge.transcension === 4) && (type === 'Coin' || type === 'Diamonds')) {
// you would not fucking believe how long it took me to figure this out
// (100*costofcurrent + 10000)^n = (((100+buyingTo)!/100!)*100^buyingTo)^n
- ;++fastFactMultBuyTo100
+ fastFactMultBuyTo100++
if (buyingTo >= (1000 - (10 * player.challengecompletions[4]))) {
// and I changed this to be a summation of all the previous buys 1.25 to the sum from 1 to buyingTo
mlog10125 += buyingTo * (buyingTo + 1) / 2
@@ -441,7 +441,7 @@ const getCostInternal = (
if ((player.currentChallenge.reincarnation === 10) && (type === 'Coin' || type === 'Diamonds')) {
// you would not fucking believe how long it took me to figure this out
// (100*costofcurrent + 10000)^n = (((100+buyingTo)!/100!)*100^buyingTo)^n
- ;++fastFactMultBuyTo100
+ fastFactMultBuyTo100++
if (buyingTo >= (r * 25000)) {
// and I changed this to be a summation of all the previous buys 1.25 to the sum from 1 to buyingTo
mlog10125 += buyingTo * (buyingTo + 1) / 2
@@ -887,7 +887,7 @@ const getAcceleratorBoostCost = (level = 1): Decimal => {
}
const getParticleCost = (originalCost: DecimalSource, buyTo: number): Decimal => {
- ;--buyTo
+ buyTo--
originalCost = new Decimal(originalCost)
let cost = originalCost.times(Decimal.pow(2, buyTo))
@@ -972,7 +972,7 @@ export const buyParticleBuilding = (
if (!autobuyer) {
if (player.particlebuyamount + buyStart < buyTo) {
- buyTo = buyStart + player.particlebuyamount + smallestInc(player[key] + player.particlebuyamount)
+ buyTo = buyStart + player.particlebuyamount - 1 + smallestInc(player[key] + player.particlebuyamount)
}
}
diff --git a/src/Calculate.ts b/src/Calculate.ts
index 700077ac7..7284c486f 100644
--- a/src/Calculate.ts
+++ b/src/Calculate.ts
@@ -1350,6 +1350,17 @@ export const calculateOffline = async (forceTime = 0) => {
disableHotkeys()
G.timeWarp = true
+ const offlineDialog = player.offlinetick > 0
+
+ if (player.offlinetick === 0) {
+ const startTime = Date.now()
+ player.offlinetick = startTime
+ player.prestigecounter = startTime
+ player.transcendcounter = startTime
+ player.reincarnationcounter = startTime
+ player.ascensionCounter = startTime
+ player.singularityCounter = startTime
+ }
// Variable Declarations i guess
const maximumTimer = 86400 * 3
@@ -1373,10 +1384,6 @@ export const calculateOffline = async (forceTime = 0) => {
toggleTalismanBuy(player.buyTalismanShardPercent)
updateTalismanInventory()
- const offlineDialog = player.offlinetick > 0
-
- player.offlinetick = player.offlinetick < 1.5e12 ? Date.now() : player.offlinetick
-
G.timeMultiplier = calculateTimeAcceleration().mult
calculateObtainium()
const obtainiumGain = calculateAutomaticObtainium()
diff --git a/src/Challenges.ts b/src/Challenges.ts
index 0f306e5ca..3d8ec3268 100644
--- a/src/Challenges.ts
+++ b/src/Challenges.ts
@@ -166,6 +166,7 @@ export const challengeDisplay = (i: number, changefocus = true) => {
}
case 2: {
current1 = current2 = format(5 * CalcECC('transcend', player.challengecompletions[2]))
+ current3 = format(0.25 * CalcECC('transcend', player.challengecompletions[2]), 2, true)
break
}
case 3: {
@@ -414,7 +415,7 @@ export const calculateChallengeRequirementMultiplier = (
switch (type) {
case 'transcend':
requirementMultiplier *= G.challenge15Rewards.transcendChallengeReduction
- ;(completions >= 75)
+ completions >= 75
? requirementMultiplier *= Math.pow(1 + completions, 12) / Math.pow(75, 8)
: requirementMultiplier *= Math.pow(1 + completions, 2)
@@ -485,7 +486,7 @@ export const calculateChallengeRequirementMultiplier = (
return requirementMultiplier
case 'ascension':
if (special !== 15) {
- ;(completions >= 10)
+ completions >= 10
? requirementMultiplier *= 2 * (1 + completions) - 10
: requirementMultiplier *= 1 + completions
} else {
diff --git a/src/Hepteracts.ts b/src/Hepteracts.ts
index 01a3cbcfd..8b3ba71c2 100644
--- a/src/Hepteracts.ts
+++ b/src/Hepteracts.ts
@@ -232,7 +232,7 @@ export class HepteractCraft {
if ((player[item] as number) < 0) {
;(player[item] as number) = 0
} else if (player[item] instanceof Cube) {
- ;(player[item] as Cube).sub(
+
player[item].sub(
amountToCraft * craftCostMulti * this.OTHER_CONVERSIONS[item]!
)
} else if (item === 'worlds') {
diff --git a/src/Hotkeys.ts b/src/Hotkeys.ts
index d7219c2b3..02d33b0b6 100644
--- a/src/Hotkeys.ts
+++ b/src/Hotkeys.ts
@@ -94,7 +94,11 @@ const eventHotkeys = (event: KeyboardEvent): void => {
keyPrefix += 'ALT+'
}
- const key = keyPrefix + event.key.toUpperCase()
+ let actual = ''
+ if (event.key !== 'Control' && event.key !== 'Shift' && event.key !== 'Alt') {
+ actual = event.key.toUpperCase()
+ }
+ const key = keyPrefix + actual
// Disable the TAB key as it may allow unexpected operations
if (key === 'TAB') {
@@ -115,7 +119,7 @@ const eventHotkeys = (event: KeyboardEvent): void => {
event.preventDefault()
}
- if (G.currentTab === Tabs.Settings && player.subtabNumber === 6) {
+ if (G.currentTab === Tabs.Settings && G.currentSubTab === 7) {
DOMCacheGetOrSet('lastHotkey').textContent = key
DOMCacheGetOrSet('lastHotkeyName').textContent = hotkeyName
}
@@ -259,7 +263,7 @@ export const pressedKeys = new Set()
document.addEventListener('keydown', (event) => {
eventHotkeys(event)
- pressedKeys.add(event.code)
+ pressedKeys.add(event.key)
})
-document.addEventListener('keyup', (event) => pressedKeys.delete(event.code))
+document.addEventListener('keyup', (event) => pressedKeys.delete(event.key))
diff --git a/src/ImportExport.ts b/src/ImportExport.ts
index 27b8bd7ff..3ac521e5e 100644
--- a/src/ImportExport.ts
+++ b/src/ImportExport.ts
@@ -85,7 +85,7 @@ const getRealTime = (type = 'default', use12 = false) => {
export const updateSaveString = (input: HTMLInputElement) => {
const value = input.value.slice(0, 100)
player.saveString = value === '' ? blankSave.saveString : cleanString(value)
- ;(DOMCacheGetOrSet('saveStringInput') as HTMLInputElement).value = player.saveString
+ getElementById('saveStringInput').value = player.saveString
}
export const getVer = () => /[\d?=.]+/.exec(version)?.[0] ?? version
@@ -1152,10 +1152,11 @@ const dailyCodeFormatFreeLevelMessage = (
upgradeKey: string,
freeLevelAmount: number
): string => {
+ const accuracy = Number.isInteger(freeLevelAmount) ? 0 : 2
const upgradeNiceName = upgradeKey in singularityData
? i18next.t(`singularity.data.${upgradeKey}.name`)
: i18next.t(`octeract.data.${upgradeKey}.name`)
- return `\n+${format(freeLevelAmount, 0, true)} extra levels of '${upgradeNiceName}'`
+ return `\n+${format(freeLevelAmount, accuracy, true)} extra levels of '${upgradeNiceName}'`
}
const dailyCodeReward = () => {
diff --git a/src/Plugins/Dashboard.ts b/src/Plugins/Dashboard.ts
index 68aba3404..c5477986a 100644
--- a/src/Plugins/Dashboard.ts
+++ b/src/Plugins/Dashboard.ts
@@ -209,14 +209,14 @@ const renderDashboardFast = () => {
const openDashboard = () => {
// compute blessings total amounts
- const n = player.subtabNumber
+ const n = G.currentSubTab
G.currentTab = Tabs.WowCubes
- ;[0, 1, 2, 3].forEach((i) => {
- player.subtabNumber = i
+ for (const i of [0, 1, 2, 3]) {
+ G.currentSubTab = i
visualUpdateCubes()
- })
+ }
G.currentTab = Tabs.Settings
- player.subtabNumber = n
+ G.currentSubTab = n
// render and display dashboard
renderDashboardFast()
renderDashboardSlow()
diff --git a/src/Reset.ts b/src/Reset.ts
index ef0115c2a..f8498bdb9 100644
--- a/src/Reset.ts
+++ b/src/Reset.ts
@@ -83,7 +83,7 @@ export const resetdetails = (input: resetNames) => {
resetObtainiumText.textContent = ''
}
- ;(input === 'ascensionChallenge' || input === 'ascension' || input === 'singularity')
+ input === 'ascensionChallenge' || input === 'ascension' || input === 'singularity'
? offeringImage.style.display = offeringText.style.display = 'none'
: offeringImage.style.display = offeringText.style.display = 'block'
@@ -211,41 +211,41 @@ export const resetdetails = (input: resetNames) => {
export const updateAutoReset = (i: number) => {
let value = null
if (i === 1) {
- value = Number.parseFloat((DOMCacheGetOrSet('prestigeamount') as HTMLInputElement).value) || 0
+ value = Number.parseFloat(getElementById('prestigeamount').value) || 0
player.prestigeamount = Math.max(value, 0)
} else if (i === 2) {
- value = Number.parseFloat((DOMCacheGetOrSet('transcendamount') as HTMLInputElement).value) || 0
+ value = Number.parseFloat(getElementById('transcendamount').value) || 0
player.transcendamount = Math.max(value, 0)
} else if (i === 3) {
- value = Number.parseFloat((DOMCacheGetOrSet('reincarnationamount') as HTMLInputElement).value) || 0
+ value = Number.parseFloat(getElementById('reincarnationamount').value) || 0
player.reincarnationamount = Math.max(value, 0)
} else if (i === 4) {
- value = Math.floor(Number.parseFloat((DOMCacheGetOrSet('ascensionAmount') as HTMLInputElement).value)) || 1
+ value = Math.floor(Number.parseFloat(getElementById('ascensionAmount').value)) || 1
player.autoAscendThreshold = Math.max(value, 1)
} else if (i === 5) {
- value = Number.parseFloat((DOMCacheGetOrSet('autoAntSacrificeAmount') as HTMLInputElement).value) || 0
+ value = Number.parseFloat(getElementById('autoAntSacrificeAmount').value) || 0
player.autoAntSacTimer = Math.max(value, 0)
}
}
export const updateTesseractAutoBuyAmount = () => {
- const value = Math.floor(Number.parseFloat((DOMCacheGetOrSet('tesseractAmount') as HTMLInputElement).value)) || 0
+ const value = Math.floor(Number.parseFloat(getElementById('tesseractAmount').value)) || 0
player.tesseractAutoBuyerAmount = Math.max(value, 0)
}
export const updateAutoCubesOpens = (i: number) => {
let value = null
if (i === 1) {
- value = Number((DOMCacheGetOrSet('cubeOpensInput') as HTMLInputElement).value) || 0
+ value = Number(getElementById('cubeOpensInput').value) || 0
player.openCubes = Math.max(Math.min(value, 100), 0)
} else if (i === 2) {
- value = Number((DOMCacheGetOrSet('tesseractsOpensInput') as HTMLInputElement).value) || 0
+ value = Number(getElementById('tesseractsOpensInput').value) || 0
player.openTesseracts = Math.max(Math.min(value, 100), 0)
} else if (i === 3) {
- value = Number((DOMCacheGetOrSet('hypercubesOpensInput') as HTMLInputElement).value) || 0
+ value = Number(getElementById('hypercubesOpensInput').value) || 0
player.openHypercubes = Math.max(Math.min(value, 100), 0)
} else if (i === 4) {
- value = Number((DOMCacheGetOrSet('platonicCubeOpensInput') as HTMLInputElement).value) || 0
+ value = Number(getElementById('platonicCubeOpensInput').value) || 0
player.openPlatonicsCubes = Math.max(Math.min(value, 100), 0)
}
}
@@ -1235,7 +1235,6 @@ export const singularity = async (setSingNumber = -1): Promise => {
hold.saveString = player.saveString
hold.corruptionLoadouts = player.corruptionLoadouts
hold.corruptionLoadoutNames = player.corruptionLoadoutNames
- hold.corruptionShowStats = player.corruptionShowStats
hold.toggles = player.toggles
hold.retrychallenges = player.retrychallenges
hold.resettoggle1 = player.resettoggle1
diff --git a/src/Synergism.ts b/src/Synergism.ts
index 7b06d47ef..84567e1a3 100644
--- a/src/Synergism.ts
+++ b/src/Synergism.ts
@@ -14,7 +14,7 @@ import {
highestChallengeRewards,
runChallengeSweep
} from './Challenges'
-import { btoa, cleanString, isDecimal, sortWithIndices, sumContents } from './Utility'
+import { btoa, cleanString, getElementById, isDecimal, sortWithIndices, sumContents } from './Utility'
import { blankGlobals, Globals as G } from './Variables'
import {
@@ -120,7 +120,6 @@ import {
htmlInserts,
Notification,
revealStuff,
- showCorruptionStatsLoadouts,
updateAchievementBG,
updateChallengeDisplay,
updateChallengeLevel
@@ -530,8 +529,6 @@ export const player: Player = {
generators: true,
reincarnate: true
},
- tabnumber: 1,
- subtabNumber: 0,
// create a Map with keys defaulting to false
codes: new Map(Array.from({ length: 48 }, (_, i) => [i + 1, false])),
@@ -881,7 +878,6 @@ export const player: Player = {
'Loadout 7',
'Loadout 8'
],
- corruptionShowStats: true,
constantUpgrades: [null, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
history: { ants: [], ascend: [], reset: [], singularity: [] },
@@ -2100,7 +2096,7 @@ const loadSynergy = async () => {
? 'Synergism-$VERSION$-$TIME$.txt'
: 'Synergism-$VERSION$-$TIME$-$SING$.txt'
}
- ;(DOMCacheGetOrSet('saveStringInput') as HTMLInputElement).value = cleanString(player.saveString)
+ getElementById('saveStringInput').value = cleanString(player.saveString)
for (let j = 1; j < 126; j++) {
upgradeupdate(j, true)
@@ -2117,97 +2113,31 @@ const loadSynergy = async () => {
updatePlatonicUpgradeBG(j)
}
- const q = [
- 'coin',
- 'crystal',
- 'mythos',
- 'particle',
- 'offering',
- 'tesseract'
- ] as const
- if (
- player.coinbuyamount !== 1
- && player.coinbuyamount !== 10
- && player.coinbuyamount !== 100
- && player.coinbuyamount !== 1000
- ) {
- player.coinbuyamount = 1
- }
- if (
- player.crystalbuyamount !== 1
- && player.crystalbuyamount !== 10
- && player.crystalbuyamount !== 100
- && player.crystalbuyamount !== 1000
- ) {
- player.crystalbuyamount = 1
- }
- if (
- player.mythosbuyamount !== 1
- && player.mythosbuyamount !== 10
- && player.mythosbuyamount !== 100
- && player.mythosbuyamount !== 1000
- ) {
- player.mythosbuyamount = 1
- }
- if (
- player.particlebuyamount !== 1
- && player.particlebuyamount !== 10
- && player.particlebuyamount !== 100
- && player.particlebuyamount !== 1000
- ) {
- player.particlebuyamount = 1
- }
- if (
- player.offeringbuyamount !== 1
- && player.offeringbuyamount !== 10
- && player.offeringbuyamount !== 100
- && player.offeringbuyamount !== 1000
- ) {
- player.offeringbuyamount = 1
- }
- if (
- player.tesseractbuyamount !== 1
- && player.tesseractbuyamount !== 10
- && player.tesseractbuyamount !== 100
- && player.tesseractbuyamount !== 1000
- ) {
- player.tesseractbuyamount = 1
- }
- for (let j = 0; j <= 5; j++) {
- for (let k = 0; k < 4; k++) {
- let d = ''
- if (k === 0) {
- d = 'one'
- }
- if (k === 1) {
- d = 'ten'
- }
- if (k === 2) {
- d = 'hundred'
- }
- if (k === 3) {
- d = 'thousand'
- }
- const e = `${q[j]}${d}`
- DOMCacheGetOrSet(e).style.backgroundColor = ''
+ const buyamount = [1, 10, 100, 1000, 10000, 100000]
+ for (const itm of ['coin', 'crystal', 'mythos', 'particle', 'offering', 'tesseract'] as const) {
+ if (!buyamount.includes(player[`${itm}buyamount`])) {
+ player[`${itm}buyamount` as const] = 1
+ }
+ for (const amt of ['one', 'ten', 'hundred', 'thousand', '10k', '100k'] as const) {
+ DOMCacheGetOrSet(itm + amt).style.backgroundColor = ''
}
let c = ''
- const curBuyAmount = player[`${q[j]}buyamount` as const]
+ const curBuyAmount = player[`${itm}buyamount`]
if (curBuyAmount === 1) {
c = 'one'
- }
- if (curBuyAmount === 10) {
+ } else if (curBuyAmount === 10) {
c = 'ten'
- }
- if (curBuyAmount === 100) {
+ } else if (curBuyAmount === 100) {
c = 'hundred'
- }
- if (curBuyAmount === 1000) {
+ } else if (curBuyAmount === 1000) {
c = 'thousand'
+ } else if (curBuyAmount === 10000) {
+ c = '10k'
+ } else if (curBuyAmount === 100000) {
+ c = '100k'
}
- const b = `${q[j]}${c}`
- DOMCacheGetOrSet(b).style.backgroundColor = 'green'
+ DOMCacheGetOrSet(itm + c).style.backgroundColor = 'green'
}
const testArray = []
@@ -2242,7 +2172,6 @@ const loadSynergy = async () => {
for (let i = 0; i < corrs; i++) {
corruptionLoadoutTableUpdate(i)
}
- showCorruptionStatsLoadouts()
updateCorruptionLoadoutNames()
DOMCacheGetOrSet('researchrunebonus').textContent = i18next.t(
@@ -2280,13 +2209,11 @@ const loadSynergy = async () => {
const omit = /e\+/
let inputd = player.autoChallengeTimer.start
let inpute = Number(
- (DOMCacheGetOrSet('startAutoChallengeTimerInput') as HTMLInputElement)
- .value
+ getElementById('startAutoChallengeTimerInput').value
)
if (inpute !== inputd || isNaN(inpute + inputd)) {
- ;(
- DOMCacheGetOrSet('startAutoChallengeTimerInput') as HTMLInputElement
- ).value = `${player.autoChallengeTimer.start || blankSave.autoChallengeTimer.start}`.replace(omit, 'e')
+ getElementById('startAutoChallengeTimerInput')
+ .value = `${player.autoChallengeTimer.start || blankSave.autoChallengeTimer.start}`.replace(omit, 'e')
updateAutoChallenge(1)
}
@@ -2299,13 +2226,11 @@ const loadSynergy = async () => {
inputd = player.autoChallengeTimer.exit
inpute = Number(
- (DOMCacheGetOrSet('exitAutoChallengeTimerInput') as HTMLInputElement)
- .value
+ getElementById('exitAutoChallengeTimerInput').value
)
if (inpute !== inputd || isNaN(inpute + inputd)) {
- ;(
- DOMCacheGetOrSet('exitAutoChallengeTimerInput') as HTMLInputElement
- ).value = `${player.autoChallengeTimer.exit || blankSave.autoChallengeTimer.exit}`.replace(omit, 'e')
+ getElementById('exitAutoChallengeTimerInput')
+ .value = `${player.autoChallengeTimer.exit || blankSave.autoChallengeTimer.exit}`.replace(omit, 'e')
updateAutoChallenge(2)
}
@@ -2318,13 +2243,11 @@ const loadSynergy = async () => {
inputd = player.autoChallengeTimer.enter
inpute = Number(
- (DOMCacheGetOrSet('enterAutoChallengeTimerInput') as HTMLInputElement)
- .value
+ getElementById('enterAutoChallengeTimerInput').value
)
if (inpute !== inputd || isNaN(inpute + inputd)) {
- ;(
- DOMCacheGetOrSet('enterAutoChallengeTimerInput') as HTMLInputElement
- ).value = `${player.autoChallengeTimer.enter || blankSave.autoChallengeTimer.enter}`.replace(omit, 'e')
+ getElementById('enterAutoChallengeTimerInput')
+ .value = `${player.autoChallengeTimer.enter || blankSave.autoChallengeTimer.enter}`.replace(omit, 'e')
updateAutoChallenge(3)
}
@@ -2337,115 +2260,98 @@ const loadSynergy = async () => {
inputd = player.prestigeamount
inpute = Number(
- (DOMCacheGetOrSet('prestigeamount') as HTMLInputElement).value
+ getElementById('prestigeamount').value
)
if (inpute !== inputd || isNaN(inpute + inputd)) {
- ;(DOMCacheGetOrSet('prestigeamount') as HTMLInputElement).value = `${
- player.prestigeamount || blankSave.prestigeamount
- }`.replace(omit, 'e')
+ getElementById('prestigeamount').value = `${player.prestigeamount || blankSave.prestigeamount}`
+ .replace(omit, 'e')
updateAutoReset(1)
}
inputd = player.transcendamount
inpute = Number(
- (DOMCacheGetOrSet('transcendamount') as HTMLInputElement).value
+ getElementById('transcendamount').value
)
if (inpute !== inputd || isNaN(inpute + inputd)) {
- ;(DOMCacheGetOrSet('transcendamount') as HTMLInputElement).value = `${
+ getElementById('transcendamount').value = `${
player.transcendamount || blankSave.transcendamount
}`.replace(omit, 'e')
updateAutoReset(2)
}
inputd = player.reincarnationamount
inpute = Number(
- (DOMCacheGetOrSet('reincarnationamount') as HTMLInputElement).value
+ getElementById('reincarnationamount').value
)
if (inpute !== inputd || isNaN(inpute + inputd)) {
- ;(DOMCacheGetOrSet('reincarnationamount') as HTMLInputElement).value = `${
+ getElementById('reincarnationamount').value = `${
player.reincarnationamount || blankSave.reincarnationamount
}`.replace(omit, 'e')
updateAutoReset(3)
}
inputd = player.autoAscendThreshold
inpute = Number(
- (DOMCacheGetOrSet('ascensionAmount') as HTMLInputElement).value
+ getElementById('ascensionAmount').value
)
if (inpute !== inputd || isNaN(inpute + inputd)) {
- ;(DOMCacheGetOrSet('ascensionAmount') as HTMLInputElement).value = `${
+ getElementById('ascensionAmount').value = `${
player.autoAscendThreshold || blankSave.autoAscendThreshold
}`.replace(omit, 'e')
updateAutoReset(4)
}
inputd = player.autoAntSacTimer
inpute = Number(
- (DOMCacheGetOrSet('autoAntSacrificeAmount') as HTMLInputElement).value
+ getElementById('autoAntSacrificeAmount').value
)
if (inpute !== inputd || isNaN(inpute + inputd)) {
- ;(DOMCacheGetOrSet('autoAntSacrificeAmount') as HTMLInputElement).value = `${
+ getElementById('autoAntSacrificeAmount').value = `${
player.autoAntSacTimer || blankSave.autoAntSacTimer
- }`.replace(
- omit,
- 'e'
- )
+ }`.replace(omit, 'e')
updateAutoReset(5)
}
inputd = player.tesseractAutoBuyerAmount
inpute = Number(
- (DOMCacheGetOrSet('tesseractAmount') as HTMLInputElement).value
+ getElementById('tesseractAmount').value
)
if (inpute !== inputd || isNaN(inpute + inputd)) {
- ;(DOMCacheGetOrSet('tesseractAmount') as HTMLInputElement).value = `${
+ getElementById('tesseractAmount').value = `${
player.tesseractAutoBuyerAmount || blankSave.tesseractAutoBuyerAmount
}`.replace(omit, 'e')
updateTesseractAutoBuyAmount()
}
inputd = player.openCubes
- inpute = Number(
- (DOMCacheGetOrSet('cubeOpensInput') as HTMLInputElement).value
- )
+ inpute = Number(getElementById('cubeOpensInput').value)
if (inpute !== inputd || isNaN(inpute + inputd)) {
- ;(DOMCacheGetOrSet('cubeOpensInput') as HTMLInputElement).value = `${player.openCubes || blankSave.openCubes}`
+ getElementById('cubeOpensInput').value = `${player.openCubes || blankSave.openCubes}`
.replace(omit, 'e')
updateAutoCubesOpens(1)
}
inputd = player.openTesseracts
- inpute = Number(
- (DOMCacheGetOrSet('tesseractsOpensInput') as HTMLInputElement).value
- )
+ inpute = Number(getElementById('tesseractsOpensInput').value)
if (inpute !== inputd || isNaN(inpute + inputd)) {
- ;(DOMCacheGetOrSet('tesseractsOpensInput') as HTMLInputElement).value = `${
+ getElementById('tesseractsOpensInput').value = `${
player.openTesseracts || blankSave.openTesseracts
}`.replace(omit, 'e')
updateAutoCubesOpens(2)
}
inputd = player.openHypercubes
- inpute = Number(
- (DOMCacheGetOrSet('hypercubesOpensInput') as HTMLInputElement).value
- )
+ inpute = Number(getElementById('hypercubesOpensInput').value)
if (inpute !== inputd || isNaN(inpute + inputd)) {
- ;(DOMCacheGetOrSet('hypercubesOpensInput') as HTMLInputElement).value = `${
+ getElementById('hypercubesOpensInput').value = `${
player.openHypercubes || blankSave.openHypercubes
}`.replace(omit, 'e')
updateAutoCubesOpens(3)
}
inputd = player.openPlatonicsCubes
- inpute = Number(
- (DOMCacheGetOrSet('platonicCubeOpensInput') as HTMLInputElement).value
- )
+ inpute = Number(getElementById('platonicCubeOpensInput').value)
if (inpute !== inputd || isNaN(inpute + inputd)) {
- ;(DOMCacheGetOrSet('platonicCubeOpensInput') as HTMLInputElement).value = `${
+ getElementById('platonicCubeOpensInput').value = `${
player.openPlatonicsCubes || blankSave.openPlatonicsCubes
- }`.replace(
- omit,
- 'e'
- )
+ }`.replace(omit, 'e')
updateAutoCubesOpens(4)
}
inputd = player.runeBlessingBuyAmount
- inpute = Number(
- (DOMCacheGetOrSet('buyRuneBlessingInput') as HTMLInputElement).value
- )
+ inpute = Number(getElementById('buyRuneBlessingInput').value)
if (inpute !== inputd || isNaN(inpute + inputd)) {
- ;(DOMCacheGetOrSet('buyRuneBlessingInput') as HTMLInputElement).value = `${
+ getElementById('buyRuneBlessingInput').value = `${
player.runeBlessingBuyAmount || blankSave.runeBlessingBuyAmount
}`.replace(omit, 'e')
updateRuneBlessingBuyAmount(1)
@@ -2460,10 +2366,10 @@ const loadSynergy = async () => {
inputd = player.runeSpiritBuyAmount
inpute = Number(
- (DOMCacheGetOrSet('buyRuneSpiritInput') as HTMLInputElement).value
+ getElementById('buyRuneSpiritInput').value
)
if (inpute !== inputd || isNaN(inpute + inputd)) {
- ;(DOMCacheGetOrSet('buyRuneSpiritInput') as HTMLInputElement).value = `${
+ getElementById('buyRuneSpiritInput').value = `${
player.runeSpiritBuyAmount || blankSave.runeSpiritBuyAmount
}`.replace(omit, 'e')
updateRuneBlessingBuyAmount(2)
@@ -2934,7 +2840,7 @@ const padEvery = (str: string, places = 3) => {
newStr += dec + strParts[1]
} // see https://www.npmjs.com/package/flatstr
- ;(newStr as unknown as number) | 0
+ newStr | 0
return newStr
}
@@ -3001,7 +2907,7 @@ export const format = (
// This prevents numbers from jittering between two different powers by rounding errors
if (mantissa > 9.9999999) {
mantissa = 1
- ;++power
+ power++
}
if (mantissa < 1 && mantissa > 0.9999999) {
@@ -6123,7 +6029,7 @@ export const synergismHotkeys = (event: KeyboardEvent, key: string): void => {
if (G.currentTab === Tabs.Buildings && G.buildingSubTab === 'diamond') {
buyCrystalUpgrades(1)
}
- if (G.currentTab === Tabs.Challenges && player.reincarnationCount > 0) {
+ if (G.currentTab === Tabs.Challenges && player.achievements[50] === 1) {
toggleChallenges(6)
challengeDisplay(6)
}
@@ -6308,7 +6214,7 @@ export const reloadShit = async (reset = false) => {
}
}
- const saveType = DOMCacheGetOrSet('saveType') as HTMLInputElement
+ const saveType = getElementById('saveType')
saveType.checked = localStorage.getItem('copyToClipboard') !== null
}
diff --git a/src/Tabs.ts b/src/Tabs.ts
index fb88814b1..c2a430497 100644
--- a/src/Tabs.ts
+++ b/src/Tabs.ts
@@ -435,7 +435,7 @@ class $Tab extends HTMLButtonElement {
}
this.addEventListener('click', () => {
- if (this.#removeable && pressedKeys.has('ControlLeft') && pressedKeys.has('KeyX')) {
+ if (this.#removeable && pressedKeys.has('Control') && (pressedKeys.has('X') || pressedKeys.has('x'))) {
// When clicking on a tab while holding CTRL + X
if (G.currentTab !== this.#type) {
tabRow.removeChild(this)
@@ -443,7 +443,6 @@ class $Tab extends HTMLButtonElement {
}
} else {
changeTab(this.#type)
- changeTabColor()
}
})
}
@@ -593,8 +592,8 @@ export const changeTab = (tabs: Tabs, step?: number) => {
}
G.currentTab = tabRow.getCurrentTab().getType()
- player.tabnumber = 0
+ changeTabColor()
revealStuff()
hideStuff()
;(document.activeElement as HTMLElement | null)?.blur()
@@ -604,15 +603,10 @@ export const changeTab = (tabs: Tabs, step?: number) => {
for (let i = 0; i < subTabList.length; i++) {
const id = subTabList[i].buttonID
if (id) {
- const button = DOMCacheGetOrSet(id)
+ const color = DOMCacheGetOrSet(id).style.backgroundColor
- if (button.style.backgroundColor === 'crimson') { // handles every tab except settings and corruptions
- player.subtabNumber = i
- break
- }
- // what in the shit is this?!
- if (player.tabnumber === 9 && button.style.borderColor === 'dodgerblue') { // handle corruption tab
- player.subtabNumber = i
+ if (color === 'crimson' || color === 'mediumblue') { // handles every tab except settings
+ G.currentSubTab = i
break
}
}
@@ -622,7 +616,7 @@ export const changeTab = (tabs: Tabs, step?: number) => {
const btns = document.querySelectorAll('[id^="switchSettingSubTab"]')
for (let i = 0; i < btns.length; i++) {
if (btns[i].classList.contains('buttonActive')) {
- player.subtabNumber = i
+ G.currentSubTab = i
break
}
}
@@ -644,22 +638,22 @@ export const changeSubTab = (tabs: Tabs, { page, step }: SubTabSwitchOptions) =>
}
if (page !== undefined) {
- player.subtabNumber = limitRange(page, 0, subTabs.subTabList.length - 1)
+ G.currentSubTab = limitRange(page, 0, subTabs.subTabList.length - 1)
} else {
- player.subtabNumber = limitRange(player.subtabNumber + step, 0, subTabs.subTabList.length - 1)
+ G.currentSubTab = limitRange(G.currentSubTab + step, 0, subTabs.subTabList.length - 1)
}
- let subTabList = subTabs.subTabList[player.subtabNumber]
+ let subTabList = subTabs.subTabList[G.currentSubTab]
while (!subTabList.unlocked) {
assert(page === undefined)
- player.subtabNumber = limitRange(player.subtabNumber + step, 0, subTabs.subTabList.length - 1)
- subTabList = subTabs.subTabList[player.subtabNumber]
+ G.currentSubTab = limitRange(G.currentSubTab + step, 0, subTabs.subTabList.length - 1)
+ subTabList = subTabs.subTabList[G.currentSubTab]
}
if (subTabList.unlocked) {
subTabs.tabSwitcher?.()(subTabList.subTabID)
- if (tab.getType() === Tabs.Singularity && page === 3) {
+ if (tab.getType() === Tabs.Singularity && subTabList.subTabID === '4') {
player.visitedAmbrosiaSubtab = true
G.ambrosiaCurrStats.ambrosiaGenerationSpeed = calculateAmbrosiaGenerationSpeed().value
}
diff --git a/src/Toggles.ts b/src/Toggles.ts
index 8194e4d26..ad64773e2 100644
--- a/src/Toggles.ts
+++ b/src/Toggles.ts
@@ -11,6 +11,7 @@ import { subTabsInMainTab, Tabs } from './Tabs'
import type { BuildingSubtab, Player } from './types/Synergism'
import { Alert, Prompt, showCorruptionStatsLoadouts, updateChallengeDisplay } from './UpdateHTML'
import { visualUpdateAmbrosia, visualUpdateCubes, visualUpdateOcteracts } from './UpdateVisuals'
+import { getElementById } from './Utility'
import { Globals as G } from './Variables'
export const toggleSettings = (toggle: HTMLElement) => {
@@ -374,7 +375,7 @@ export const toggleBuildingScreen = (input: string) => {
}
DOMCacheGetOrSet(screen[G.buildingSubTab].screen).style.display = 'flex'
DOMCacheGetOrSet(screen[G.buildingSubTab].button).style.backgroundColor = 'crimson'
- player.subtabNumber = screen[G.buildingSubTab].subtabNumber
+ G.currentSubTab = screen[G.buildingSubTab].subtabNumber
}
export const toggleRuneScreen = (indexStr: string) => {
@@ -395,7 +396,7 @@ export const toggleRuneScreen = (indexStr: string) => {
b.style.display = 'none'
}
}
- player.subtabNumber = index - 1
+ G.currentSubTab = index - 1
}
export const toggleChallengesScreen = (indexStr: string) => {
@@ -412,7 +413,7 @@ export const toggleChallengesScreen = (indexStr: string) => {
b.style.display = 'none'
}
}
- player.subtabNumber = index - 1
+ G.currentSubTab = index - 1
}
export const toggleautofortify = () => {
@@ -476,13 +477,13 @@ export const toggleSingularityScreen = (indexStr: string) => {
}
}
- player.subtabNumber = index - 1
+ G.currentSubTab = index - 1
- if (player.subtabNumber === 2) {
+ if (G.currentSubTab === 2) {
visualUpdateOcteracts()
}
- if (player.subtabNumber === 3) {
+ if (G.currentSubTab === 3) {
visualUpdateAmbrosia()
}
}
@@ -511,7 +512,7 @@ interface ChadContributor {
export const setActiveSettingScreen = async (subtab: string) => {
const clickedButton =
- DOMCacheGetOrSet('settings').getElementsByClassName('subtabSwitcher')[0].children[player.subtabNumber]
+ DOMCacheGetOrSet('settings').getElementsByClassName('subtabSwitcher')[0].children[G.currentSubTab]
const subtabEl = DOMCacheGetOrSet(subtab)
if (subtabEl.classList.contains('subtabActive')) {
return
@@ -711,7 +712,7 @@ export const toggleCubeSubTab = (indexStr: string) => {
}
if (cubeTab.style.display === 'none' && j === i) {
cubeTab.style.display = 'flex'
- player.subtabNumber = j - 1
+ G.currentSubTab = j - 1
}
DOMCacheGetOrSet(`switchCubeSubTab${j}`).style.backgroundColor = i === j ? 'crimson' : ''
}
@@ -722,7 +723,7 @@ export const toggleCubeSubTab = (indexStr: string) => {
export const updateAutoChallenge = (i: number) => {
switch (i) {
case 1: {
- const t = Number.parseFloat((DOMCacheGetOrSet('startAutoChallengeTimerInput') as HTMLInputElement).value) || 0
+ const t = Number.parseFloat(getElementById('startAutoChallengeTimerInput').value) || 0
player.autoChallengeTimer.start = Math.max(t, 0)
DOMCacheGetOrSet('startTimerValue').innerHTML = i18next.t('challenges.timeStartSweep', {
time: format(player.autoChallengeTimer.start, 2, true)
@@ -730,7 +731,7 @@ export const updateAutoChallenge = (i: number) => {
return
}
case 2: {
- const u = Number.parseFloat((DOMCacheGetOrSet('exitAutoChallengeTimerInput') as HTMLInputElement).value) || 0
+ const u = Number.parseFloat(getElementById('exitAutoChallengeTimerInput').value) || 0
player.autoChallengeTimer.exit = Math.max(u, 0)
DOMCacheGetOrSet('exitTimerValue').innerHTML = i18next.t('challenges.timeExitChallenge', {
@@ -740,7 +741,7 @@ export const updateAutoChallenge = (i: number) => {
return
}
case 3: {
- const v = Number.parseFloat((DOMCacheGetOrSet('enterAutoChallengeTimerInput') as HTMLInputElement).value) || 0
+ const v = Number.parseFloat(getElementById('enterAutoChallengeTimerInput').value) || 0
player.autoChallengeTimer.enter = Math.max(v, 0)
DOMCacheGetOrSet('enterTimerValue').innerHTML = i18next.t('challenges.timeEnterChallenge', {
@@ -887,7 +888,7 @@ export const toggleautoopensCubes = (i: number) => {
export const updateRuneBlessingBuyAmount = (i: number) => {
switch (i) {
case 1: {
- const t = Math.floor(Number.parseFloat((DOMCacheGetOrSet('buyRuneBlessingInput') as HTMLInputElement).value)) || 1
+ const t = Math.floor(Number.parseFloat(getElementById('buyRuneBlessingInput').value)) || 1
player.runeBlessingBuyAmount = Math.max(t, 1)
DOMCacheGetOrSet('buyRuneBlessingToggle').innerHTML = i18next.t('runes.blessings.buyUpTo', {
amount: format(player.runeBlessingBuyAmount)
@@ -895,7 +896,7 @@ export const updateRuneBlessingBuyAmount = (i: number) => {
return
}
case 2: {
- const u = Math.floor(Number.parseFloat((DOMCacheGetOrSet('buyRuneSpiritInput') as HTMLInputElement).value)) || 1
+ const u = Math.floor(Number.parseFloat(getElementById('buyRuneSpiritInput').value)) || 1
player.runeSpiritBuyAmount = Math.max(u, 1)
DOMCacheGetOrSet('buyRuneSpiritToggleValue').innerHTML = i18next.t('runes.spirits.buyUpTo', {
amount: format(player.runeSpiritBuyAmount)
@@ -949,8 +950,7 @@ export const toggleCorruptionLevel = (index: number, value: number) => {
}
export const toggleCorruptionLoadoutsStats = (statsStr: string) => {
- const stats = statsStr === 'true'
- player.corruptionShowStats = stats
+ G.currentSubTab = statsStr === 'true' ? 0 : 1
showCorruptionStatsLoadouts()
}
@@ -1013,16 +1013,16 @@ export const toggleBlueberryLoadoutmode = () => {
export const confirmReply = (confirm = true) => {
if (DOMCacheGetOrSet('alertWrapper').style.display === 'block') {
- ;(DOMCacheGetOrSet('ok_alert') as HTMLButtonElement).click()
+ getElementById('ok_alert').click()
}
if (
DOMCacheGetOrSet('confirmWrapper').style.display === 'block'
|| DOMCacheGetOrSet('promptWrapper').style.display === 'block'
) {
if (confirm) {
- ;(DOMCacheGetOrSet('ok_confirm') as HTMLButtonElement).click()
+ getElementById('ok_confirm').click()
} else {
- ;(DOMCacheGetOrSet('cancel_confirm') as HTMLButtonElement).click()
+ getElementById('cancel_confirm').click()
}
}
}
diff --git a/src/UpdateHTML.ts b/src/UpdateHTML.ts
index e87eb01b5..43cc296ce 100644
--- a/src/UpdateHTML.ts
+++ b/src/UpdateHTML.ts
@@ -371,7 +371,7 @@ export const revealStuff = () => {
: DOMCacheGetOrSet('toggleautoenhance').style.display = 'none'
for (let z = 1; z <= 5; z++) {
- ;(player.researches[190] > 0) // 8x15 Research [Auto Tesseracts]
+ player.researches[190] > 0 // 8x15 Research [Auto Tesseracts]
? DOMCacheGetOrSet(`tesseractAutoToggle${z}`).style.display = 'block'
: DOMCacheGetOrSet(`tesseractAutoToggle${z}`).style.display = 'none'
}
@@ -387,7 +387,7 @@ export const revealStuff = () => {
player.researches[190] > 0 // 8x15 Research [Auto Tesseracts]
? DOMCacheGetOrSet('autotessbuyeramount').style.display = 'block'
: DOMCacheGetOrSet('autotessbuyeramount').style.display = 'none'
- ;(player.antUpgrades[11]! > 0 || player.ascensionCount > 0) // Ant Talisman Unlock, Mortuus
+ player.antUpgrades[11]! > 0 || player.ascensionCount > 0 // Ant Talisman Unlock, Mortuus
? DOMCacheGetOrSet('talisman6area').style.display = 'flex'
: DOMCacheGetOrSet('talisman6area').style.display = 'none'
@@ -457,12 +457,12 @@ export const revealStuff = () => {
DOMCacheGetOrSet('platonicCubeOpensInput').style.display = 'none'
}
- ;(player.highestSingularityCount >= 50 && player.singularityCount < player.highestSingularityCount)
- || player.highestSingularityCount >= 150 // Auto Cube Upgrades
+ player.highestSingularityCount >= 50 && player.singularityCount < player.highestSingularityCount
+ || player.highestSingularityCount >= 150 // Auto Cube Upgrades
? DOMCacheGetOrSet('toggleAutoCubeUpgrades').style.display = 'block'
: DOMCacheGetOrSet('toggleAutoCubeUpgrades').style.display = 'none'
- ;(player.highestSingularityCount >= 100 && player.singularityCount < player.highestSingularityCount)
- || player.highestSingularityCount >= 200 // Auto Platonic Upgrades
+ player.highestSingularityCount >= 100 && player.singularityCount < player.highestSingularityCount
+ || player.highestSingularityCount >= 200 // Auto Platonic Upgrades
? DOMCacheGetOrSet('toggleAutoPlatonicUpgrades').style.display = 'block'
: DOMCacheGetOrSet('toggleAutoPlatonicUpgrades').style.display = 'none'
@@ -807,28 +807,28 @@ export const buttoncolorchange = () => {
const f = DOMCacheGetOrSet('buyaccelerator')
const g = DOMCacheGetOrSet('buymultiplier')
const h = DOMCacheGetOrSet('buyacceleratorboost')
- ;((!player.toggles[1] || player.upgrades[81] === 0) && player.coins.gte(player.firstCostCoin))
+ player.coins.gte(player.firstCostCoin) && (!player.toggles[1] || player.upgrades[81] === 0)
? a.classList.add('buildingPurchaseBtnAvailable')
: a.classList.remove('buildingPurchaseBtnAvailable')
- ;((!player.toggles[2] || player.upgrades[82] === 0) && player.coins.gte(player.secondCostCoin))
+ player.coins.gte(player.secondCostCoin) && (!player.toggles[2] || player.upgrades[82] === 0)
? b.classList.add('buildingPurchaseBtnAvailable')
: b.classList.remove('buildingPurchaseBtnAvailable')
- ;((!player.toggles[3] || player.upgrades[83] === 0) && player.coins.gte(player.thirdCostCoin))
+ player.coins.gte(player.thirdCostCoin) && (!player.toggles[3] || player.upgrades[83] === 0)
? c.classList.add('buildingPurchaseBtnAvailable')
: c.classList.remove('buildingPurchaseBtnAvailable')
- ;((!player.toggles[4] || player.upgrades[84] === 0) && player.coins.gte(player.fourthCostCoin))
+ player.coins.gte(player.fourthCostCoin) && (!player.toggles[4] || player.upgrades[84] === 0)
? d.classList.add('buildingPurchaseBtnAvailable')
: d.classList.remove('buildingPurchaseBtnAvailable')
- ;((!player.toggles[5] || player.upgrades[85] === 0) && player.coins.gte(player.fifthCostCoin))
+ player.coins.gte(player.fifthCostCoin) && (!player.toggles[5] || player.upgrades[85] === 0)
? e.classList.add('buildingPurchaseBtnAvailable')
: e.classList.remove('buildingPurchaseBtnAvailable')
- ;((!player.toggles[6] || player.upgrades[86] === 0) && player.coins.gte(player.acceleratorCost))
+ player.coins.gte(player.acceleratorCost) && (!player.toggles[6] || player.upgrades[86] === 0)
? f.classList.add('buildingPurchaseBtnAvailable')
: f.classList.remove('buildingPurchaseBtnAvailable')
- ;((!player.toggles[7] || player.upgrades[87] === 0) && player.coins.gte(player.multiplierCost))
+ player.coins.gte(player.multiplierCost) && (!player.toggles[7] || player.upgrades[87] === 0)
? g.classList.add('buildingPurchaseBtnAvailable')
: g.classList.remove('buildingPurchaseBtnAvailable')
- ;((!player.toggles[8] || player.upgrades[88] === 0) && player.prestigePoints.gte(player.acceleratorBoostCost))
+ player.prestigePoints.gte(player.acceleratorBoostCost) && (!player.toggles[8] || player.upgrades[88] === 0)
? h.classList.add('buildingPurchaseBtnAvailable')
: h.classList.remove('buildingPurchaseBtnAvailable')
}
@@ -844,19 +844,19 @@ export const buttoncolorchange = () => {
const h = DOMCacheGetOrSet('buycrystalupgrade3')
const i = DOMCacheGetOrSet('buycrystalupgrade4')
const j = DOMCacheGetOrSet('buycrystalupgrade5')
- ;((!player.toggles[10] || player.achievements[78] === 0) && player.prestigePoints.gte(player.firstCostDiamonds))
+ player.prestigePoints.gte(player.firstCostDiamonds) && (!player.toggles[10] || player.achievements[78] === 0)
? a.classList.add('buildingPurchaseBtnAvailable')
: a.classList.remove('buildingPurchaseBtnAvailable')
- ;((!player.toggles[11] || player.achievements[85] === 0) && player.prestigePoints.gte(player.secondCostDiamonds))
+ player.prestigePoints.gte(player.secondCostDiamonds) && (!player.toggles[11] || player.achievements[85] === 0)
? b.classList.add('buildingPurchaseBtnAvailable')
: b.classList.remove('buildingPurchaseBtnAvailable')
- ;((!player.toggles[12] || player.achievements[92] === 0) && player.prestigePoints.gte(player.thirdCostDiamonds))
+ player.prestigePoints.gte(player.thirdCostDiamonds) && (!player.toggles[12] || player.achievements[92] === 0)
? c.classList.add('buildingPurchaseBtnAvailable')
: c.classList.remove('buildingPurchaseBtnAvailable')
- ;((!player.toggles[13] || player.achievements[99] === 0) && player.prestigePoints.gte(player.fourthCostDiamonds))
+ player.prestigePoints.gte(player.fourthCostDiamonds) && (!player.toggles[13] || player.achievements[99] === 0)
? d.classList.add('buildingPurchaseBtnAvailable')
: d.classList.remove('buildingPurchaseBtnAvailable')
- ;((!player.toggles[14] || player.achievements[106] === 0) && player.prestigePoints.gte(player.fifthCostDiamonds))
+ player.prestigePoints.gte(player.fifthCostDiamonds) && (!player.toggles[14] || player.achievements[106] === 0)
? e.classList.add('buildingPurchaseBtnAvailable')
: e.classList.remove('buildingPurchaseBtnAvailable')
let k = 0
@@ -940,8 +940,8 @@ export const buttoncolorchange = () => {
const g = DOMCacheGetOrSet('buyTalismanItem7')
const arr = [a, b, c, d, e, f, g]
for (let i = 0; i < arr.length; i++) {
- ;(player.researchPoints > G.talismanResourceObtainiumCosts[i]
- && player.runeshards > G.talismanResourceOfferingCosts[i])
+ player.researchPoints > G.talismanResourceObtainiumCosts[i]
+ && player.runeshards > G.talismanResourceOfferingCosts[i]
? arr[i].classList.add('talisminBtnAvailable')
: arr[i].classList.remove('talisminBtnAvailable')
}
@@ -952,16 +952,18 @@ export const buttoncolorchange = () => {
for (let i = 1; i <= 5; i++) {
const toggle = player.toggles[i + 15]
const mythos = player[`${G.ordinals[i - 1 as ZeroToFour]}CostMythos` as const]
- ;(!toggle || !player.upgrades[93 + i]) && player.transcendPoints.gte(mythos)
+ player.transcendPoints.gte(mythos) && (!toggle || !player.upgrades[93 + i])
? DOMCacheGetOrSet(`buymythos${i}`).classList.add('buildingPurchaseBtnAvailable')
: DOMCacheGetOrSet(`buymythos${i}`).classList.remove('buildingPurchaseBtnAvailable')
}
}
if (G.currentTab === Tabs.Buildings && G.buildingSubTab === 'particle') {
+ const unlocked = player.cubeUpgrades[7]
for (let i = 1; i <= 5; i++) {
+ const toggle = player.toggles[i + 21]
const costParticles = player[`${G.ordinals[i - 1 as ZeroToFour]}CostParticles` as const]
- player.reincarnationPoints.gte(costParticles)
+ player.reincarnationPoints.gte(costParticles) && (!toggle || !unlocked)
? DOMCacheGetOrSet(`buyparticles${i}`).classList.add('buildingPurchaseBtnAvailable')
: DOMCacheGetOrSet(`buyparticles${i}`).classList.remove('buildingPurchaseBtnAvailable')
}
@@ -980,7 +982,7 @@ export const buttoncolorchange = () => {
DOMCacheGetOrSet(`buyConstantUpgrade${i}`).classList.add('constUpgradeAuto')
} else {
DOMCacheGetOrSet(`buyConstantUpgrade${i}`).classList.remove('constUpgradeAuto')
- ;(player.ascendShards.gte(Decimal.pow(10, player.constantUpgrades[i]!).times(G.constUpgradeCosts[i]!)))
+ player.ascendShards.gte(Decimal.pow(10, player.constantUpgrades[i]!).times(G.constUpgradeCosts[i]!))
? DOMCacheGetOrSet(`buyConstantUpgrade${i}`).classList.add('constUpgradeAvailable')
: DOMCacheGetOrSet(`buyConstantUpgrade${i}`).classList.remove('constUpgradeAvailable')
}
@@ -992,7 +994,7 @@ export const buttoncolorchange = () => {
DOMCacheGetOrSet(`buyConstantUpgrade${i}`).classList.add('constUpgradeAuto')
} else {
DOMCacheGetOrSet(`buyConstantUpgrade${i}`).classList.remove('constUpgradeAuto')
- ;(player.ascendShards.gte(Decimal.pow(10, player.constantUpgrades[i]!).times(G.constUpgradeCosts[i]!)))
+ player.ascendShards.gte(Decimal.pow(10, player.constantUpgrades[i]!).times(G.constUpgradeCosts[i]!))
? DOMCacheGetOrSet(`buyConstantUpgrade${i}`).classList.add('constUpgradeAvailable')
: DOMCacheGetOrSet(`buyConstantUpgrade${i}`).classList.remove('constUpgradeAvailable')
}
@@ -1000,7 +1002,7 @@ export const buttoncolorchange = () => {
}
if (G.currentTab === Tabs.AntHill) {
- ;(player.reincarnationPoints.gte(player.firstCostAnts))
+ player.reincarnationPoints.gte(player.firstCostAnts)
? DOMCacheGetOrSet('anttier1').classList.add('antTierBtnAvailable')
: DOMCacheGetOrSet('anttier1').classList.remove('antTierBtnAvailable')
for (let i = 2; i <= 8; i++) {
@@ -1080,16 +1082,16 @@ export const updateAchievementBG = () => {
}
export const showCorruptionStatsLoadouts = () => {
- if (player.corruptionShowStats) {
+ if (G.currentSubTab === 0) {
DOMCacheGetOrSet('corruptionStats').style.display = 'flex'
DOMCacheGetOrSet('corruptionLoadouts').style.display = 'none'
- DOMCacheGetOrSet('corrStatsBtn').style.borderColor = 'dodgerblue'
- DOMCacheGetOrSet('corrLoadoutsBtn').style.borderColor = 'white'
+ DOMCacheGetOrSet('corrStatsBtn').style.backgroundColor = 'mediumblue'
+ DOMCacheGetOrSet('corrLoadoutsBtn').style.backgroundColor = ''
} else {
DOMCacheGetOrSet('corruptionStats').style.display = 'none'
DOMCacheGetOrSet('corruptionLoadouts').style.display = 'flex'
- DOMCacheGetOrSet('corrStatsBtn').style.borderColor = 'white'
- DOMCacheGetOrSet('corrLoadoutsBtn').style.borderColor = 'dodgerblue'
+ DOMCacheGetOrSet('corrStatsBtn').style.backgroundColor = ''
+ DOMCacheGetOrSet('corrLoadoutsBtn').style.backgroundColor = 'mediumblue'
}
}
diff --git a/src/UpdateVisuals.ts b/src/UpdateVisuals.ts
index 4ca4f2784..789bf27cf 100644
--- a/src/UpdateVisuals.ts
+++ b/src/UpdateVisuals.ts
@@ -926,7 +926,7 @@ export const visualUpdateCubes = () => {
// TODO: this code is fucking terrible holy shit. Also pretty sure there's a bug.
let accuracy: [null | number, ...number[]]
- switch (player.subtabNumber) {
+ switch (G.currentSubTab) {
case 0: {
if (player.autoOpenCubes) {
DOMCacheGetOrSet('openCubes').textContent = i18next.t(
@@ -1329,7 +1329,7 @@ export const visualUpdateSettings = () => {
return
}
- if (player.subtabNumber === 0) {
+ if (G.currentSubTab === 0) {
DOMCacheGetOrSet('saveString').textContent = i18next.t(
'settings.currently',
{
@@ -1407,7 +1407,7 @@ export const visualUpdateSettings = () => {
}
)
}
- if (player.subtabNumber === 3) {
+ if (G.currentSubTab === 3) {
loadStatisticsUpdate()
}
}
@@ -1416,7 +1416,7 @@ export const visualUpdateSingularity = () => {
if (G.currentTab !== Tabs.Singularity) {
return
}
- if (player.subtabNumber === 0) {
+ if (G.currentSubTab === 0) {
DOMCacheGetOrSet('goldenQuarkamount').textContent = i18next.t(
'singularity.goldenQuarkAmount',
{
@@ -1457,7 +1457,7 @@ export const visualUpdateSingularity = () => {
}
}
}
- if (player.subtabNumber === 2) {
+ if (G.currentSubTab === 2) {
const keys = Object.keys(
player.octeractUpgrades
) as (keyof Player['octeractUpgrades'])[]
diff --git a/src/Variables.ts b/src/Variables.ts
index 492822538..60ff9a7b8 100644
--- a/src/Variables.ts
+++ b/src/Variables.ts
@@ -204,6 +204,7 @@ export const Globals: GlobalVariables = {
uFifteenMulti: new Decimal(1),
tuSevenMulti: 1,
currentTab: Tabs.Buildings,
+ currentSubTab: 0,
researchfiller1: 'Hover over the grid to get details about researches!',
researchfiller2: 'Level: ',
diff --git a/src/saves/PlayerSchema.ts b/src/saves/PlayerSchema.ts
index bedbef91b..b4afb9f27 100644
--- a/src/saves/PlayerSchema.ts
+++ b/src/saves/PlayerSchema.ts
@@ -359,8 +359,6 @@ export const playerSchema = z.object({
tesseractbuyamount: z.number().default(() => blankSave.tesseractbuyamount),
shoptoggles: z.record(z.string(), z.boolean()),
- tabnumber: z.number(),
- subtabNumber: z.number().default(() => blankSave.subtabNumber),
codes: z.array(z.tuple([z.number(), z.boolean()])).transform((tuple) => new Map(tuple)).default(() =>
deepClone([...blankSave.codes])
@@ -513,7 +511,6 @@ export const playerSchema = z.object({
corruptionLoadoutNames: z.string().array().default(() => blankSave.corruptionLoadoutNames.slice()).default(
() => [...blankSave.corruptionLoadoutNames]
),
- corruptionShowStats: z.boolean().default(() => blankSave.corruptionShowStats),
constantUpgrades: arrayStartingWithNull(z.number()).default((): [
null,
diff --git a/src/types/Synergism.d.ts b/src/types/Synergism.d.ts
index cd3e52817..2f8172144 100644
--- a/src/types/Synergism.d.ts
+++ b/src/types/Synergism.d.ts
@@ -318,8 +318,6 @@ export interface Player {
generators: boolean
reincarnate: boolean
}
- tabnumber: number
- subtabNumber: number
// create a Map with keys defaulting to boolean
codes: Map
@@ -535,7 +533,6 @@ export interface Player {
usedCorruptions: number[]
corruptionLoadouts: Record
corruptionLoadoutNames: string[]
- corruptionShowStats: boolean
constantUpgrades: ArrayStartingWithNull
history: Record
@@ -753,6 +750,7 @@ export interface GlobalVariables {
uFifteenMulti: Decimal
tuSevenMulti: number
currentTab: Tabs
+ currentSubTab: number
researchfiller1: string
researchfiller2: string
diff --git a/translations/da.json b/translations/da.json
index aa36b6151..67a7db792 100644
--- a/translations/da.json
+++ b/translations/da.json
@@ -2686,10 +2686,10 @@
"power": {
"1": "Speed Rune Bonus: +{{bonus}} Accelerators, +{{percent}}% Accelerators, +{{boost}} Accelerator Boosts.",
"2": "Duplication Rune Bonus: +{{mult1}} Multipliers, +{{mult2}}% Multipliers, -{{tax}}% Tax Growth.",
- "3": "Prism Rune Bonus: All Crystal Producer production multiplied by {{mult}}, gain +{{gain}}' free crystal levels.",
- "4": "Thrift Rune Bonus: Delay all producer cost increases by {{delay}}%. Offering recycle chance: +{{chance}}%. -{{tax}}% Tax Growth",
- "5": "S. Intellect Rune Bonus: Obtainium gain x{{gain}}. Ant Speed: x{{speed}}. Base Offerings: +{{offerings}}",
- "6": "IA Rune Bonus: Quark Gain +{{percent1}}%, Ascensions give +{{percent2}}% more of all cube types.",
+ "3": "Prism Rune Bonus: All Crystal Producer production multiplied by {{mult}}, gain +{{gain}} free crystal levels.",
+ "4": "Thrift Rune Bonus: Delay all producer cost increases by {{delay}}%, Offering recycle chance: +{{chance}}%, -{{tax}}% Tax Growth.",
+ "5": "Superior Intellect Rune Bonus: Obtainium gain x{{gain}}, Ant Speed: x{{speed}}, Base Offerings: +{{offerings}}.",
+ "6": "Infinite Ascent Rune Bonus: Quark Gain +{{percent1}}%, Ascensions give +{{percent2}}% more of all cube types.",
"7": "You cannot grasp the true form of Ant God's treasure."
},
"talismans": {
@@ -2942,7 +2942,7 @@
"hypercubeQuarksToday": "Quarks gained from Hypercubes: <>",
"hypercubeQuarksOpenRequirement": "Open {{amount}} Hypercubes for next quark.",
"hypercubeQuarksOpenToday": "Hypercubes opened today: <>",
- "platonicCubeQuarksToday": "Platonic Cubes gained from Cubes: <>",
+ "platonicCubeQuarksToday": "Quarks gained from Platonic Cubes: <>",
"platonicCubeQuarksOpenRequirement": "Open {{amount}} Platonic Cubes for next quark.",
"platonicCubeQuarksOpenToday": "Platonic Cubes opened today: <>"
},
diff --git a/translations/de.json b/translations/de.json
index 38ef90a37..0b71e8087 100644
--- a/translations/de.json
+++ b/translations/de.json
@@ -2889,10 +2889,10 @@
"power": {
"1": "Speed Rune Bonus: +{{bonus}} Accelerators, +{{percent}}% Accelerators, +{{boost}} Accelerator Boosts.",
"2": "Duplication Rune Bonus: +{{mult1}} Multipliers, +{{mult2}}% Multipliers, -{{tax}}% Tax Growth.",
- "3": "Prism Rune Bonus: All Crystal Producer production multiplied by {{mult}}, gain +{{gain}}' free crystal levels.",
- "4": "Thrift Rune Bonus: Delay all producer cost increases by {{delay}}%. Offering recycle chance: +{{chance}}%. -{{tax}}% Tax Growth",
- "5": "S. Intellect Rune Bonus: Obtainium gain x{{gain}}. Ant Speed: x{{speed}}. Base Offerings: +{{offerings}}",
- "6": "IA Rune Bonus: Quark Gain +{{percent1}}%, Ascensions give +{{percent2}}% more of all cube types.",
+ "3": "Prism Rune Bonus: All Crystal Producer production multiplied by {{mult}}, gain +{{gain}} free crystal levels.",
+ "4": "Thrift Rune Bonus: Delay all producer cost increases by {{delay}}%, Offering recycle chance: +{{chance}}%, -{{tax}}% Tax Growth.",
+ "5": "Superior Intellect Rune Bonus: Obtainium gain x{{gain}}, Ant Speed: x{{speed}}, Base Offerings: +{{offerings}}.",
+ "6": "Infinite Ascent Rune Bonus: Quark Gain +{{percent1}}%, Ascensions give +{{percent2}}% more of all cube types.",
"7": "You cannot grasp the true form of Ant God's treasure."
},
"talismans": {
@@ -3163,7 +3163,7 @@
"hypercubeQuarksToday": "Quarks gained from Hypercubes: <>",
"hypercubeQuarksOpenRequirement": "Open {{amount}} Hypercubes for next quark.",
"hypercubeQuarksOpenToday": "Hypercubes opened today: <>",
- "platonicCubeQuarksToday": "Platonic Cubes gained from Cubes: <>",
+ "platonicCubeQuarksToday": "Quarks gained from Platonic Cubes: <>",
"platonicCubeQuarksOpenRequirement": "Open {{amount}} Platonic Cubes for next quark.",
"platonicCubeQuarksOpenToday": "Platonic Cubes opened today: <>"
},
diff --git a/translations/en.json b/translations/en.json
index db26ae5a2..aab259d8e 100644
--- a/translations/en.json
+++ b/translations/en.json
@@ -2925,10 +2925,10 @@
"power": {
"1": "Speed Rune Bonus: +{{bonus}} Accelerators, +{{percent}}% Accelerators, +{{boost}} Accelerator Boosts.",
"2": "Duplication Rune Bonus: +{{mult1}} Multipliers, +{{mult2}}% Multipliers, -{{tax}}% Tax Growth.",
- "3": "Prism Rune Bonus: All Crystal Producer production multiplied by {{mult}}, gain +{{gain}}' free crystal levels.",
- "4": "Thrift Rune Bonus: Delay all producer cost increases by {{delay}}%. Offering recycle chance: +{{chance}}%. -{{tax}}% Tax Growth",
- "5": "S. Intellect Rune Bonus: Obtainium gain x{{gain}}. Ant Speed: x{{speed}}. Base Offerings: +{{offerings}}",
- "6": "IA Rune Bonus: Quark Gain +{{percent1}}%, Ascensions give +{{percent2}}% more of all cube types.",
+ "3": "Prism Rune Bonus: All Crystal Producer production multiplied by {{mult}}, gain +{{gain}} free crystal levels.",
+ "4": "Thrift Rune Bonus: Delay all producer cost increases by {{delay}}%, Offering recycle chance: +{{chance}}%, -{{tax}}% Tax Growth.",
+ "5": "Superior Intellect Rune Bonus: Obtainium gain x{{gain}}, Ant Speed: x{{speed}}, Base Offerings: +{{offerings}}.",
+ "6": "Infinite Ascent Rune Bonus: Quark Gain +{{percent1}}%, Ascensions give +{{percent2}}% more of all cube types.",
"7": "You cannot grasp the true form of Ant God's treasure."
},
"talismans": {
@@ -3199,7 +3199,7 @@
"hypercubeQuarksToday": "Quarks gained from Hypercubes: <>",
"hypercubeQuarksOpenRequirement": "Open {{amount}} Hypercubes for next quark.",
"hypercubeQuarksOpenToday": "Hypercubes opened today: <>",
- "platonicCubeQuarksToday": "Platonic Cubes gained from Cubes: <>",
+ "platonicCubeQuarksToday": "Quarks gained from Platonic Cubes: <>",
"platonicCubeQuarksOpenRequirement": "Open {{amount}} Platonic Cubes for next quark.",
"platonicCubeQuarksOpenToday": "Platonic Cubes opened today: <>"
},
diff --git a/translations/es.json b/translations/es.json
index 2c045e46b..05fbb83d7 100644
--- a/translations/es.json
+++ b/translations/es.json
@@ -2889,10 +2889,10 @@
"power": {
"1": "Bonus de Runa de Velocidad: +{{bonus}} Aceleradores, +{{percent}}% Aceleradores, +{{boost}} Potenciadores de Acelerador.",
"2": "Bonus de Runa de Duplicación: +{{mult1}} Multiplicadores, +{{mult2}}% Multiplicadores, -{{tax}}% Crecimiento de Impuestos.",
- "3": "Bonificación de Runa Prismática: Toda la producción del Productor de Cristal multiplicada por {{mult}}, gana +{{gain}}' niveles de cristal gratuitos.",
- "4": "Bonus de Runa de Ahorro: Retrasa el incremento de coste de productores un {{delay}}%. Posibilidad de Reciclaje de Ofrendas: +{{chance}}%. -{{tax}}% Crecimiento de impuestos",
- "5": "Bonus de Runa Intelecto Superior: Obtención de Obtainium x{{gain}}. Velocidad: x{{speed}}. Ofrendas base: +{{offerings}}",
- "6": "Bonificación de Runa AI: Ganancia Quarks +{{percent1}}%, las Ascensiones dan +{{percent2}}% más de todos los tipos de cubos.",
+ "3": "Bonificación de Runa Prismática: Toda la producción del Productor de Cristal multiplicada por {{mult}}, gana +{{gain}} niveles de cristal gratuitos.",
+ "4": "Bonus de Runa de Ahorro: Retrasa el incremento de coste de productores un {{delay}}%, Posibilidad de Reciclaje de Ofrendas: +{{chance}}%, -{{tax}}% Crecimiento de impuestos.",
+ "5": "Bonus de Runa Intelecto Superior: Obtención de Obtainium x{{gain}}, Velocidad: x{{speed}}, Ofrendas base: +{{offerings}}.",
+ "6": "Bonificación de Runa Ascenso Infinito: Ganancia Quarks +{{percent1}}%, las Ascensiones dan +{{percent2}}% más de todos los tipos de cubos.",
"7": "No puedes comprender la verdadera forma del tesoro de Dios Hormiga."
},
"talismans": {
diff --git a/translations/fr.json b/translations/fr.json
index 543d21457..5a341ef08 100644
--- a/translations/fr.json
+++ b/translations/fr.json
@@ -2890,9 +2890,9 @@
"1": "Bonus de la Rune de Célérité : +{{bonus}} Accélérateurs, +{{percent}}% d'Accélérateurs, +{{boost}} Renforts d'Accélérateur.",
"2": "Bonus de la Rune de Duplication : +{{mult1}} Multiplicateurs, +{{mult2}}% de Multiplicateurs, -{{tax}}% de croissance des impôts.",
"3": "Bonus de la Rune du Prisme : efficacité de tous les producteurs de Cristaux multipliée par {{mult}}, +{{gain}} niveaux d'améliorations de Cristal gratuits.",
- "4": "Bonus de la Rune de l'Épargne : retarde l'augmentation des coûts des bâtiments de {{delay}}%. +{{chance}}% de chances de recyclage des Offrandes. -{{tax}}% de croissance des impôts.",
- "5": "Bonus de la Rune d'Intelligence S. : x{{gain}} Obtainium, x{{speed}} vitesse de Fourmi, +{{offerings}} Offrandes de base.",
- "6": "Bonus de la Rune d'A.I. : +{{percent1}}% de Quarks, +{{percent2}}% de Cubes de tous les types lors des Ascensions.",
+ "4": "Bonus de la Rune de l'Épargne : retarde l'augmentation des coûts des bâtiments de {{delay}}%, +{{chance}}% de chances de recyclage des Offrandes, -{{tax}}% de croissance des impôts.",
+ "5": "Bonus de la Rune d'Intelligence Supérieure : x{{gain}} Obtainium, x{{speed}} vitesse de Fourmi, +{{offerings}} Offrandes de base.",
+ "6": "Bonus de la Rune d'Ascension Infinie : +{{percent1}}% de Quarks, +{{percent2}}% de Cubes de tous les types lors des Ascensions.",
"7": "Vous ne pouvez pas comprendre la vraie forme du trésor du Dieu Fourmi."
},
"talismans": {
diff --git a/translations/kaa.json b/translations/kaa.json
index 81667fce8..8098c2ab7 100644
--- a/translations/kaa.json
+++ b/translations/kaa.json
@@ -2686,10 +2686,10 @@
"power": {
"1": "Speed Rune Bonus: +{{bonus}} Accelerators, +{{percent}}% Accelerators, +{{boost}} Accelerator Boosts.",
"2": "Duplication Rune Bonus: +{{mult1}} Multipliers, +{{mult2}}% Multipliers, -{{tax}}% Tax Growth.",
- "3": "Prism Rune Bonus: All Crystal Producer production multiplied by {{mult}}, gain +{{gain}}' free crystal levels.",
- "4": "Thrift Rune Bonus: Delay all producer cost increases by {{delay}}%. Offering recycle chance: +{{chance}}%. -{{tax}}% Tax Growth",
- "5": "S. Intellect Rune Bonus: Obtainium gain x{{gain}}. Ant Speed: x{{speed}}. Base Offerings: +{{offerings}}",
- "6": "IA Rune Bonus: Quark Gain +{{percent1}}%, Ascensions give +{{percent2}}% more of all cube types.",
+ "3": "Prism Rune Bonus: All Crystal Producer production multiplied by {{mult}}, gain +{{gain}} free crystal levels.",
+ "4": "Thrift Rune Bonus: Delay all producer cost increases by {{delay}}%, Offering recycle chance: +{{chance}}%, -{{tax}}% Tax Growth.",
+ "5": "Superior Intellect Rune Bonus: Obtainium gain x{{gain}}, Ant Speed: x{{speed}}, Base Offerings: +{{offerings}}.",
+ "6": "Infinite Ascent Rune Bonus: Quark Gain +{{percent1}}%, Ascensions give +{{percent2}}% more of all cube types.",
"7": "You cannot grasp the true form of Ant God's treasure."
},
"talismans": {
@@ -2942,7 +2942,7 @@
"hypercubeQuarksToday": "Quarks gained from Hypercubes: <>",
"hypercubeQuarksOpenRequirement": "Open {{amount}} Hypercubes for next quark.",
"hypercubeQuarksOpenToday": "Hypercubes opened today: <>",
- "platonicCubeQuarksToday": "Platonic Cubes gained from Cubes: <>",
+ "platonicCubeQuarksToday": "Quarks gained from Platonic Cubes: <>",
"platonicCubeQuarksOpenRequirement": "Open {{amount}} Platonic Cubes for next quark.",
"platonicCubeQuarksOpenToday": "Platonic Cubes opened today: <>"
},
diff --git a/translations/nl.json b/translations/nl.json
index bfdc445cb..e29d4387a 100644
--- a/translations/nl.json
+++ b/translations/nl.json
@@ -2890,9 +2890,9 @@
"1": "Speed Rune Bonus: +{{bonus}} Accelerators, +{{percent}}% Accelerators, +{{boost}} Accelerator Boosts.",
"2": "Duplication Rune Bonus: +{{mult1}} Multipliers, +{{mult2}}% Multipliers, -{{tax}}% Tax Growth.",
"3": "Prism Rune Bonus: All Crystal Producer production multiplied by {{mult}}, gain +{{gain}} free crystal levels.",
- "4": "Thrift Rune Bonus: Delay all producer cost increases by {{delay}}%. Offering recycle chance: +{{chance}}%. -{{tax}}% Tax Growth",
- "5": "S. Intellect Rune Bonus: Obtainium gain x{{gain}}. Ant Speed: x{{speed}}. Base Offerings: +{{offerings}}",
- "6": "IA Rune Bonus: Quark Gain +{{percent1}}%, Ascensions give +{{percent2}}% more of all cube types.",
+ "4": "Thrift Rune Bonus: Delay all producer cost increases by {{delay}}%, Offering recycle chance: +{{chance}}%, -{{tax}}% Tax Growth.",
+ "5": "Superior Intellect Rune Bonus: Obtainium gain x{{gain}}, Ant Speed: x{{speed}}, Base Offerings: +{{offerings}}.",
+ "6": "Infinite Ascent Rune Bonus: Quark Gain +{{percent1}}%, Ascensions give +{{percent2}}% more of all cube types.",
"7": "You cannot grasp the true form of Ant God's treasure."
},
"talismans": {
diff --git a/translations/pl.json b/translations/pl.json
index b43004580..3605216fc 100644
--- a/translations/pl.json
+++ b/translations/pl.json
@@ -2889,10 +2889,10 @@
"power": {
"1": "Speed Rune Bonus: +{{bonus}} Accelerators, +{{percent}}% Accelerators, +{{boost}} Accelerator Boosts.",
"2": "Duplication Rune Bonus: +{{mult1}} Multipliers, +{{mult2}}% Multipliers, -{{tax}}% Tax Growth.",
- "3": "Prism Rune Bonus: All Crystal Producer production multiplied by {{mult}}, gain +{{gain}}' free crystal levels.",
- "4": "Thrift Rune Bonus: Delay all producer cost increases by {{delay}}%. Offering recycle chance: +{{chance}}%. -{{tax}}% Tax Growth",
- "5": "S. Intellect Rune Bonus: Obtainium gain x{{gain}}. Ant Speed: x{{speed}}. Base Offerings: +{{offerings}}",
- "6": "IA Rune Bonus: Quark Gain +{{percent1}}%, Ascensions give +{{percent2}}% more of all cube types.",
+ "3": "Prism Rune Bonus: All Crystal Producer production multiplied by {{mult}}, gain +{{gain}} free crystal levels.",
+ "4": "Thrift Rune Bonus: Delay all producer cost increases by {{delay}}%, Offering recycle chance: +{{chance}}%, -{{tax}}% Tax Growth.",
+ "5": "Superior Intellect Rune Bonus: Obtainium gain x{{gain}}, Ant Speed: x{{speed}}, Base Offerings: +{{offerings}}.",
+ "6": "Infinite Ascent Rune Bonus: Quark Gain +{{percent1}}%, Ascensions give +{{percent2}}% more of all cube types.",
"7": "You cannot grasp the true form of Ant God's treasure."
},
"talismans": {
@@ -3163,7 +3163,7 @@
"hypercubeQuarksToday": "Quarks gained from Hypercubes: <>",
"hypercubeQuarksOpenRequirement": "Open {{amount}} Hypercubes for next quark.",
"hypercubeQuarksOpenToday": "Hypercubes opened today: <>",
- "platonicCubeQuarksToday": "Platonic Cubes gained from Cubes: <>",
+ "platonicCubeQuarksToday": "Quarks gained from Platonic Cubes: <>",
"platonicCubeQuarksOpenRequirement": "Open {{amount}} Platonic Cubes for next quark.",
"platonicCubeQuarksOpenToday": "Platonic Cubes opened today: <>"
},
diff --git a/translations/pt.json b/translations/pt.json
index 8cb1841cd..2238fe523 100644
--- a/translations/pt.json
+++ b/translations/pt.json
@@ -2685,10 +2685,10 @@
"power": {
"1": "Speed Rune Bonus: +{{bonus}} Accelerators, +{{percent}}% Accelerators, +{{boost}} Accelerator Boosts.",
"2": "Duplication Rune Bonus: +{{mult1}} Multipliers, +{{mult2}}% Multipliers, -{{tax}}% Tax Growth.",
- "3": "Prism Rune Bonus: All Crystal Producer production multiplied by {{mult}}, gain +{{gain}}' free crystal levels.",
- "4": "Thrift Rune Bonus: Delay all producer cost increases by {{delay}}%. Offering recycle chance: +{{chance}}%. -{{tax}}% Tax Growth",
- "5": "S. Intellect Rune Bonus: Obtainium gain x{{gain}}. Ant Speed: x{{speed}}. Base Offerings: +{{offerings}}",
- "6": "IA Rune Bonus: Quark Gain +{{percent1}}%, Ascensions give +{{percent2}}% more of all cube types.",
+ "3": "Prism Rune Bonus: All Crystal Producer production multiplied by {{mult}}, gain +{{gain}} free crystal levels.",
+ "4": "Thrift Rune Bonus: Delay all producer cost increases by {{delay}}%, Offering recycle chance: +{{chance}}%, -{{tax}}% Tax Growth.",
+ "5": "Superior Intellect Rune Bonus: Obtainium gain x{{gain}}, Ant Speed: x{{speed}}, Base Offerings: +{{offerings}}.",
+ "6": "Infinite Ascent Rune Bonus: Quark Gain +{{percent1}}%, Ascensions give +{{percent2}}% more of all cube types.",
"7": "You cannot grasp the true form of Ant God's treasure."
},
"talismans": {
@@ -2941,7 +2941,7 @@
"hypercubeQuarksToday": "Quarks gained from Hypercubes: <>",
"hypercubeQuarksOpenRequirement": "Open {{amount}} Hypercubes for next quark.",
"hypercubeQuarksOpenToday": "Hypercubes opened today: <>",
- "platonicCubeQuarksToday": "Platonic Cubes gained from Cubes: <>",
+ "platonicCubeQuarksToday": "Quarks gained from Platonic Cubes: <>",
"platonicCubeQuarksOpenRequirement": "Open {{amount}} Platonic Cubes for next quark.",
"platonicCubeQuarksOpenToday": "Platonic Cubes opened today: <>"
},
diff --git a/translations/ru.json b/translations/ru.json
index 08e23893b..e623d5051 100644
--- a/translations/ru.json
+++ b/translations/ru.json
@@ -2890,9 +2890,9 @@
"1": "Бонус Руны Скорости: +{{bonus}} Ускорителей, +{{percent}}% Ускорителей, +{{boost}} Усилителей Ускорителя.",
"2": "Бонус Руны Дубликации: +{{mult1}} Множителей, +{{mult2}}% Множителей, -{{tax}}% Прирост налогов.",
"3": "Бонус Руны Призмы: Все Производители Кристаллов производят в {{mult}} раз больше, получите +{{gain}} бесплатных уровней улучшений Кристаллов.",
- "4": "Бонус Руны Экономии: Откладывает рост стоимости всех производителей на {{delay}}%. Шанс переработки Подношений: +{{chance}}%. Рост налогов: -{{tax}}%",
- "5": "Бонус Руны П. Интеллекта: Получение Обтаниума x{{gain}}. Скорость Муравьёв: x{{speed}}. Базовые Подношения: +{{offerings}}",
- "6": "Бонус Руны БВ: Получение Кварков +{{percent1}}%, Вознесения дают +{{percent2}}% больше всех типов кубов.",
+ "4": "Бонус Руны Экономии: Откладывает рост стоимости всех производителей на {{delay}}%, Шанс переработки Подношений: +{{chance}}%, Рост налогов: -{{tax}}%.",
+ "5": "Бонус Руны Высший Разум: Получение Обтаниума x{{gain}}, Скорость Муравьёв: x{{speed}}, Базовые Подношения: +{{offerings}}.",
+ "6": "Бонус Руны Бесконечное Восхождение: Получение Кварков +{{percent1}}%, Вознесения дают +{{percent2}}% больше всех типов кубов.",
"7": "Вы не можете понять истинную форму сокровища Муравьиного Бога."
},
"talismans": {
diff --git a/translations/source.json b/translations/source.json
index bd87a0733..ec1597b6c 100644
--- a/translations/source.json
+++ b/translations/source.json
@@ -2925,10 +2925,10 @@
"power": {
"1": "Speed Rune Bonus: +{{bonus}} Accelerators, +{{percent}}% Accelerators, +{{boost}} Accelerator Boosts.",
"2": "Duplication Rune Bonus: +{{mult1}} Multipliers, +{{mult2}}% Multipliers, -{{tax}}% Tax Growth.",
- "3": "Prism Rune Bonus: All Crystal Producer production multiplied by {{mult}}, gain +{{gain}}' free crystal levels.",
- "4": "Thrift Rune Bonus: Delay all producer cost increases by {{delay}}%. Offering recycle chance: +{{chance}}%. -{{tax}}% Tax Growth",
- "5": "S. Intellect Rune Bonus: Obtainium gain x{{gain}}. Ant Speed: x{{speed}}. Base Offerings: +{{offerings}}",
- "6": "IA Rune Bonus: Quark Gain +{{percent1}}%, Ascensions give +{{percent2}}% more of all cube types.",
+ "3": "Prism Rune Bonus: All Crystal Producer production multiplied by {{mult}}, gain +{{gain}} free crystal levels.",
+ "4": "Thrift Rune Bonus: Delay all producer cost increases by {{delay}}%, Offering recycle chance: +{{chance}}%, -{{tax}}% Tax Growth.",
+ "5": "Superior Intellect Rune Bonus: Obtainium gain x{{gain}}, Ant Speed: x{{speed}}, Base Offerings: +{{offerings}}.",
+ "6": "Infinite Ascent Rune Bonus: Quark Gain +{{percent1}}%, Ascensions give +{{percent2}}% more of all cube types.",
"7": "You cannot grasp the true form of Ant God's treasure."
},
"talismans": {
@@ -3199,7 +3199,7 @@
"hypercubeQuarksToday": "Quarks gained from Hypercubes: <>",
"hypercubeQuarksOpenRequirement": "Open {{amount}} Hypercubes for next quark.",
"hypercubeQuarksOpenToday": "Hypercubes opened today: <>",
- "platonicCubeQuarksToday": "Platonic Cubes gained from Cubes: <>",
+ "platonicCubeQuarksToday": "Quarks gained from Platonic Cubes: <>",
"platonicCubeQuarksOpenRequirement": "Open {{amount}} Platonic Cubes for next quark.",
"platonicCubeQuarksOpenToday": "Platonic Cubes opened today: <>"
},