Skip to content

Commit

Permalink
April 16: Exalt 5! (Kinda)
Browse files Browse the repository at this point in the history
  • Loading branch information
Pseudonian committed Apr 16, 2024
1 parent 4e5ba27 commit 25006d2
Show file tree
Hide file tree
Showing 22 changed files with 239 additions and 66 deletions.
Binary file added Pictures/Default/ExaltChalNoAmbrosiaUpgrades.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Pictures/Default/ShopAmbrosiaAccelerator.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Pictures/Default/ShopAmbrosiaWarp.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Pictures/Default/ShopEXUltra.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Pictures/Legacy/ExaltChalNoAmbrosiaUpgrades.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Pictures/Legacy/ShopAmbrosiaAccelerator.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Pictures/Legacy/ShopEXUltra.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
25 changes: 22 additions & 3 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@
<div class="prestigeunlock statDisplay" id="offeringDisplay">1</div>
</div>
<div class="currencyContainer">
<img class="img quark" src="Pictures/Default/Unsmith.png" alt="Quark" title="Quark" loading="lazy">
<img class="img quark" src="Pictures/Default/Quark.png" alt="Quark" title="Quark" loading="lazy">
<div class="statDisplay" id="quarkDisplay">1</div>
</div>
<div class="currencyContainer">
Expand Down Expand Up @@ -3115,7 +3115,8 @@ <h1>Artists</h1>
<p id="statOff30" class="statPortion">Cube Upgrade Cx4: <span id="sOff30" class="statNumber">0</span></p>
<p id="statOff31" class="statPortion">Offering Electrolosis [OC]: <span id="sOff31" class="statNumber">0</span></p>
<p id="statOff32" class="statPortion">RNG-Based Offering Multiplier: <span id="sOff32" class="statNumber">0</span></p>
<p id="statOff33" class="statPortion">Event: <span id="sOff33" class="statNumber">0</span></p>
<p id="statOff33" class="statPortion">Shop EX ULTIMATE: <span id="sOff33" class="statNumber">0</span></p>
<p id="statOff34" class="statPortion">Event: <span id="sOff34" class="statNumber">0</span></p>
<p id="statOffT" class="statPortion statTotal" style="color: gold">TOTAL OFFERING MULTIPLIER: <span id="sOffT" class="statNumber statTotal">0</span></p>
</div>
<div id="globalSpeedMultiplierStats" class="statContainer" style="display: none;">
Expand Down Expand Up @@ -3249,6 +3250,7 @@ <h1>Artists</h1>
<p id="statGCM30" class="statPortion">-<span id="sGCM30" class="statNumber">-</span></p>
<p id="statGCM31" class="statPortion">-<span id="sGCM31" class="statNumber">-</span></p>
<p id="statGCM32" class="statPortion">-<span id="sGCM32" class="statNumber">-</span></p>
<p id="statGCM33" class="statPortion">-<span id="sGCM33" class="statNumber">-</span></p>
<p id="statGCMT" class="statPortion statTotal" style="color: orange">TOTAL GLOBAL CUBE MULTIPLIER: <span
id="sGCMT" class="statNumber statTotal">0</span></p>
</div>
Expand Down Expand Up @@ -3399,6 +3401,8 @@ <h1>Artists</h1>
<p id="statOcM31" class="statPortion singularity"> <span id="sOcM31" class="statNumber">0</span></p>
<p id="statOcM32" class="statPortion singularity"> <span id="sOcM32" class="statNumber">0</span></p>
<p id="statOcM33" class="statPortion singularity"> <span id="sOcM33" class="statNumber">0</span></p>
<p id="statOcM34" class="statPortion singularity"> <span id="sOcM34" class="statNumber">0</span></p>
<p id="statOcM35" class="statPortion singularity"> <span id="sOcM35" class="statNumber">0</span></p>
<p id="statOcMT" class="statPortion statTotal" style="color: orange">TOTAL OCTERACT MULTIPLIER: <span
id="sOcMT" class="statNumber statTotal">0</span></p>
</div>
Expand Down Expand Up @@ -3460,6 +3464,7 @@ <h1>Artists</h1>
<p id="statALuckM10" class="statPortion">a<span id="sALuckM10" class="statNumber">0</span></p>
<p id="statALuckM11" class="statPortion">a<span id="sALuckM11" class="statNumber">0</span></p>
<p id="statALuckM12" class="statPortion">a<span id="sALuckM12" class="statNumber">0</span></p>
<p id="statALuckM13" class="statPortion">a<span id="sALuckM13" class="statNumber">0</span></p>
<p id="statALuckMult" class="statPortion">Multipliers (Additive)<span id="sALuckMult" class="statNumber">0</span></p>
<p id="statALuckMT" class="statPortion statTotal" style="color: orange">TOTAL AMBROSIA LUCK:
<span id="sALuckMT" class="statNumber statTotal">0</span></p>
Expand All @@ -3476,6 +3481,7 @@ <h1>Artists</h1>
<p id="statAGenM7" class="statPortion">a<span id="sAGenM7" class="statNumber">0</span></p>
<p id="statAGenM8" class="statPortion">a<span id="sAGenM8" class="statNumber">0</span></p>
<p id="statAGenM9" class="statPortion">a<span id="sAGenM9" class="statNumber">0</span></p>
<p id="statAGenM10" class="statPortion">a<span id="sAGenM10" class="statNumber">0</span></p>
<p id="statAGenMT" class="statPortion statTotal" style="color: orange">BLUEBERRY TIME /S:
<span id="sAGenMT" class="statNumber statTotal">0</span></p>
</div>
Expand Down Expand Up @@ -3570,7 +3576,7 @@ <h1>Artists</h1>
</div>
</div>
<div id="quarksDisplay">
<img src="Pictures/Default/Unsmith.png" width="32" height="32" loading="lazy">
<img src="Pictures/Default/Quark.png" width="32" height="32" loading="lazy">
<p id="quarkamount"></p>
</div>
</div>
Expand Down Expand Up @@ -3922,6 +3928,16 @@ <h1>Artists</h1>
<p id="shopCashGrabUltraLevel"></p>
<button class="permshopbutton" id="shopCashGrabUltraButton" style="border: 2px solid gold"></button>
</div>
<div class="exalt5Unlock" id="shopAmbrosiaAcceleratorHide">
<img id="shopAmbrosiaAccelerator" alt="An Ambrosia Accelerator" src="Pictures/Default/ShopAmbrosiaAccelerator.png" loading="lazy">
<p id="shopAmbrosiaAcceleratorLevel"></p>
<button class="permshopbutton" id="shopAmbrosiaAcceleratorButton" style="border: 2px solid pink"></button>
</div>
<div class="exalt5X20Unlock" id="shopEXUltraHide">
<img id="shopEXUltra" alt="The ULTIMATE EX" src="Pictures/Default/ShopEXUltra.png" loading="lazy">
<p id="shopEXUltraLevel"></p>
<button class="permshopbutton" id="shopEXUltraButton" style="border: 2px solid gold"></button>
</div>
</div>
<div id="shopButtons">
<button id="resetShopUpgrades" style="border: 2px solid orangered; color: white" i18n="shop.resetPermShop"></button>
Expand Down Expand Up @@ -4349,6 +4365,9 @@ <h1>Artists</h1>
<div id="noOcteractsDiv" class="rainbowBorder">
<img id="noOcteracts" src="Pictures/Default/ExaltChalNoOcteracts.png">
</div>
<div id="noAmbrosiaUpgradesDiv" class="rainbowBorder">
<img id="noAmbrosiaUpgrades" src="Pictures/Default/ExaltChalNoAmbrosiaUpgrades.png">
</div>
</div>
<div id="singularityChallengeDetails">
<p id="singularityChallengesMultiline"></p>
Expand Down
8 changes: 6 additions & 2 deletions src/BlueberryUpgrades.ts
Original file line number Diff line number Diff line change
Expand Up @@ -283,15 +283,17 @@ export class BlueberryUpgrade extends DynamicUpgrade {
}

public get rewardDesc (): string {
const effectiveLevel = (player.singularityChallenges.noAmbrosiaUpgrades.enabled) ? 0: this.level
if ('desc' in this.rewards(0)) {
return String(this.rewards(this.level).desc)
return String(this.rewards(effectiveLevel).desc)
} else {
return 'Contact Platonic or Khafra if you see this (should never occur!)'
}
}

public get bonus () {
return this.rewards(this.level)
const effectiveLevel = (player.singularityChallenges.noAmbrosiaUpgrades.enabled) ? 0: this.level
return this.rewards(effectiveLevel)
}
}

Expand Down Expand Up @@ -743,6 +745,7 @@ export const resetBlueberryTree = async (giveAlert = true) => {
for (const upgrade of Object.keys(player.blueberryUpgrades)) {
const k = upgrade as keyof Player['blueberryUpgrades']
player.blueberryUpgrades[k].refund()
player.blueberryUpgrades[k].updateCaches()
}
if (giveAlert) return Alert(i18next.t('ambrosia.refund'))
}
Expand Down Expand Up @@ -871,6 +874,7 @@ export const createBlueberryTree = async (modules: BlueberryOpt) => {
player.ambrosia -= tempCost
player.blueberryUpgrades[k].ambrosiaInvested = tempCost
player.blueberryUpgrades[k].level = val
player.blueberryUpgrades[k].updateCaches()
}
}
void Alert(i18next.t('ambrosia.importTree.success'))
Expand Down
55 changes: 42 additions & 13 deletions src/Calculate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ const CASH_GRAB_ULTRA_QUARK = 0.12
const CASH_GRAB_ULTRA_CUBE = 0.8
const CASH_GRAB_ULTRA_BLUEBERRY = 0.2

const EX_ULTRA_OFFERING = 0.125
const EX_ULTRA_OBTAINIUM = 0.125
const EX_ULTRA_CUBES = 0.125

export const calculateTotalCoinOwned = () => {
G.totalCoinOwned = player.firstOwnedCoin
+ player.secondOwnedCoin
Expand Down Expand Up @@ -492,6 +496,7 @@ export function calculateOfferings (
1 + player.cubeUpgrades[54] / 100, // Cube upgrade 6x4 (Cx4)
+player.octeractUpgrades.octeractOfferings1.getEffect().bonus, // Offering Electrolosis OC Upgrade
1 + 0.001 * +player.blueberryUpgrades.ambrosiaOffering1.bonus.offeringMult, // Ambrosia!!
calculateEXUltraOfferingBonus(), // EX Ultra Shop Upgrade
1 + calculateEventBuff(BuffType.Offering) // Event
]

Expand Down Expand Up @@ -669,6 +674,8 @@ export const calculateObtainium = () => {
G.obtainiumGain *= 1
+ 0.001 * +player.blueberryUpgrades.ambrosiaObtainium1.bonus.obtainiumMult

G.obtainiumGain *= calculateEXUltraObtainiumBonus()

if (!isFinite(G.obtainiumGain)) {
G.obtainiumGain = 1e300
}
Expand Down Expand Up @@ -1764,8 +1771,10 @@ export const calculateAllCubeMultiplier = () => {
// Module - Hyperflux
+player.blueberryUpgrades.ambrosiaHyperflux.bonus.hyperFlux,
// Cash Grab Ultra
+calculateCashGrabCubeBonus()
// Total Global Cube Multipliers: 31
+calculateCashGrabCubeBonus(),
// EX Ultra
+calculateEXUltraCubeBonus(),
// Total Global Cube Multipliers: 32
]

const extraMult = G.isEvent && G.eventClicked ? 1.05 : 1
Expand Down Expand Up @@ -2102,7 +2111,9 @@ export const getOcteractValueMultipliers = () => {
// Module- Cubes 2
+player.blueberryUpgrades.ambrosiaCubes2.bonus.cubes,
// Cash Grab ULTRA
+calculateCashGrabCubeBonus()
+calculateCashGrabCubeBonus(),
// EX ULTRA
+calculateEXUltraCubeBonus(),
]
}

Expand Down Expand Up @@ -3176,32 +3187,34 @@ export const calculateSingularityMilestoneBlueberries = () => {
}

export const calculateAmbrosiaCubeMult = () => {
const effectiveAmbrosia = (player.singularityChallenges.noAmbrosiaUpgrades.enabled) ? 0 : player.lifetimeAmbrosia
let multiplier = 1
multiplier += Math.min(1.5, Math.floor(player.lifetimeAmbrosia / 66) / 100)
if (player.lifetimeAmbrosia >= 10000) {
multiplier += Math.min(1.5, Math.floor(effectiveAmbrosia / 66) / 100)
if (effectiveAmbrosia >= 10000) {
multiplier += Math.min(
1.5,
Math.floor(player.lifetimeAmbrosia / 666) / 100
Math.floor(effectiveAmbrosia / 666) / 100
)
}
if (player.lifetimeAmbrosia >= 100000) {
multiplier += Math.floor(player.lifetimeAmbrosia / 6666) / 100
if (effectiveAmbrosia >= 100000) {
multiplier += Math.floor(effectiveAmbrosia / 6666) / 100
}

return multiplier
}

export const calculateAmbrosiaQuarkMult = () => {
const effectiveAmbrosia = (player.singularityChallenges.noAmbrosiaUpgrades.enabled) ? 0 : player.lifetimeAmbrosia
let multiplier = 1
multiplier += Math.min(0.3, Math.floor(player.lifetimeAmbrosia / 1666) / 100)
if (player.lifetimeAmbrosia >= 50000) {
multiplier += Math.min(0.3, Math.floor(effectiveAmbrosia / 1666) / 100)
if (effectiveAmbrosia >= 50000) {
multiplier += Math.min(
0.3,
Math.floor(player.lifetimeAmbrosia / 16666) / 100
Math.floor(effectiveAmbrosia / 16666) / 100
)
}
if (player.lifetimeAmbrosia >= 500000) {
multiplier += Math.floor(player.lifetimeAmbrosia / 166666) / 100
if (effectiveAmbrosia >= 500000) {
multiplier += Math.floor(effectiveAmbrosia / 166666) / 100
}

return multiplier
Expand All @@ -3223,6 +3236,22 @@ export const calculateCashGrabQuarkBonus = () => {
return calculateCashGrabBonus(CASH_GRAB_ULTRA_QUARK)
}

export const calculateEXUltraBonus = (extra: number) => {
return 1 + extra * Math.min(player.shopUpgrades.shopEXUltra, Math.floor(player.lifetimeAmbrosia / 1000) / 125)
}

export const calculateEXUltraOfferingBonus = () => {
return calculateEXUltraBonus(EX_ULTRA_OFFERING)
}

export const calculateEXUltraObtainiumBonus = () => {
return calculateEXUltraBonus(EX_ULTRA_OBTAINIUM)
}

export const calculateEXUltraCubeBonus = () => {
return calculateEXUltraBonus(EX_ULTRA_CUBES)
}

export const calculateDilatedFiveLeafBonus = () => {
const singThresholds = [100, 200, 250, 260, 266]
for (let i = 0; i < singThresholds.length; i++) {
Expand Down
12 changes: 12 additions & 0 deletions src/CheckVariables.ts
Original file line number Diff line number Diff line change
Expand Up @@ -790,6 +790,10 @@ export const checkVariablesOnLoad = (data: PlayerSave) => {
limitedAscensions: new SingularityChallenge(
singularityChallengeData.limitedAscensions,
'limitedAscensions'
),
noAmbrosiaUpgrades: new SingularityChallenge(
singularityChallengeData.noAmbrosiaUpgrades,
'noAmbrosiaUpgrades'
)
}

Expand Down Expand Up @@ -1042,6 +1046,8 @@ export const checkVariablesOnLoad = (data: PlayerSave) => {
shopAmbrosiaLuck3: 0,
shopAmbrosiaLuck4: 0,
shopCashGrabUltra: 0,
shopAmbrosiaAccelerator: 0,
shopEXUltra: 0,
}

player.worlds.add(
Expand Down Expand Up @@ -1660,4 +1666,10 @@ export const checkVariablesOnLoad = (data: PlayerSave) => {
player.ultimatePixels = 0
player.ultimateProgress = 0
}

if (player.shopUpgrades.shopAmbrosiaAccelerator === undefined) {
player.shopUpgrades.shopCashGrabUltra = 0
player.shopUpgrades.shopAmbrosiaAccelerator = 0
player.shopUpgrades.shopEXUltra = 0
}
}
2 changes: 1 addition & 1 deletion src/Config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export const version = '3.0.0 pt 4.11: April 2: Unsmith III'
export const version = '3.0.0 pt 5: April 16: Rise of the Ambrosium'

/**
* PSEUDO DO NOT CHANGE THIS LINE
Expand Down
4 changes: 2 additions & 2 deletions src/Event.ts
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ export const eventCheck = async () => {
if (G.isEvent !== updateIsEventCheck) {
revealStuff()
player.caches.ambrosiaGeneration.updateVal('Event')
player.caches.ambrosiaLuck.updateVal('Event')
player.caches.ambrosiaLuckAdditiveMult.updateVal('Event')
}
}

Expand Down Expand Up @@ -218,7 +218,7 @@ const eventBuffName = [
'Obtainium',
'Eight Dimensional Hypercubes',
'Blueberry Time Generation',
'Ambrosia Luck (Additive)',
'Ambrosia Luck (Additive Mult)',
'One Mind Quark Bonus'
]

Expand Down
21 changes: 11 additions & 10 deletions src/Helper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -196,20 +196,21 @@ export const addTimers = (input: TimerInput, time = 0) => {
player.blueberryTime += Math.floor(G.ambrosiaTimer) * player.caches.ambrosiaGeneration.totalVal
G.ambrosiaTimer %= 1

const timeToAmbrosia = calculateRequiredBlueberryTime()
let timeToAmbrosia = calculateRequiredBlueberryTime()

if (player.blueberryTime >= timeToAmbrosia) {
while (player.blueberryTime >= timeToAmbrosia) {
const RNG = Math.random()
const ambrosiaMult = Math.floor(ambrosiaLuck / 100) + 1
const ambrosiaMult = Math.floor(ambrosiaLuck / 100)
const luckMult = RNG < ambrosiaLuck / 100 - Math.floor(ambrosiaLuck / 100) ? 1 : 0
const timeMult = Math.min(
100,
Math.floor(player.blueberryTime / timeToAmbrosia)
)
const bonusAmbrosia = (player.singularityChallenges.noAmbrosiaUpgrades.rewards.bonusAmbrosia) ? 1: 0
const ambrosiaToGain = (ambrosiaMult + luckMult) + bonusAmbrosia

player.ambrosia += 1 * (ambrosiaMult + luckMult) * timeMult
player.lifetimeAmbrosia += 1 * (ambrosiaMult + luckMult) * timeMult
player.blueberryTime -= timeToAmbrosia * timeMult
player.ambrosia += ambrosiaToGain
player.lifetimeAmbrosia += ambrosiaToGain
player.blueberryTime -= timeToAmbrosia

G.ambrosiaTimer += ambrosiaToGain * 0.2 * player.shopUpgrades.shopAmbrosiaAccelerator
timeToAmbrosia = calculateRequiredBlueberryTime()
}

visualUpdateAmbrosia()
Expand Down
Loading

0 comments on commit 25006d2

Please sign in to comment.