Clarify TS31 interactions with other mechanics

This commit is contained in:
SpectralFlame 2023-07-13 05:39:53 -05:00 committed by cyip92
parent 24e9a2f6ce
commit 93c01f76eb
6 changed files with 44 additions and 11 deletions

View File

@ -34,7 +34,7 @@ export default {
},
computed: {
isBasedOnInfinities() {
return /(18|27|36|45)Mult/u.test(this.upgrade.id);
return /(18|27|36|45)Mult/u.test(this.upgrade.id) || this.upgrade.id === "infinitiedMult";
},
shiftDown() {
return ui.view.shiftDown;
@ -89,7 +89,7 @@ export default {
this.isDisabled = upgrade.config.isDisabled && upgrade.config.isDisabled(upgrade.config.effect());
this.isUseless = Pelle.uselessInfinityUpgrades.includes(upgrade.id) && Pelle.isDoomed;
this.hasTS31 = TimeStudy(31).canBeApplied;
if (!this.isDisabled && this.isImprovedByTS31) this.ts31Effect = upgrade.config.effect().pow(4);
if (!this.isDisabled && this.isImprovedByTS31) this.ts31Effect = Decimal.pow(upgrade.config.effect(), 4);
if (upgrade.id !== "challengeMult") return;
this.showWorstChallenge = upgrade.effectValue !== upgrade.cap &&
player.challenge.normal.bestTimes.sum() < Number.MAX_VALUE;

View File

@ -30,6 +30,7 @@ export default {
multIP: new Decimal(),
hasRaisedCap: false,
replicantiCap: new Decimal(),
capMultText: "",
distantRG: 0,
remoteRG: 0,
effarigInfinityBonusRG: 0,
@ -151,6 +152,12 @@ export default {
this.isUncapped = PelleRifts.vacuum.milestones[1].canBeApplied;
this.hasRaisedCap = EffarigUnlock.infinity.isUnlocked && !this.isUncapped;
this.replicantiCap.copyFrom(replicantiCap());
if (this.hasRaisedCap) {
const mult = this.replicantiCap.div(Decimal.NUMBER_MAX_VALUE);
this.capMultText = TimeStudy(31).canBeApplied
? `Base: ${formatX(mult.pow(1 / TimeStudy(31).effectValue), 2)}; after TS31: ${formatX(mult, 2)}`
: formatX(mult, 2);
}
this.distantRG = ReplicantiUpgrade.galaxies.distantRGStart;
this.remoteRG = ReplicantiUpgrade.galaxies.remoteRGStart;
this.effarigInfinityBonusRG = Effarig.bonusRG;
@ -193,14 +200,23 @@ export default {
Cost: {{ format(unlockCost) }} IP
</PrimaryButton>
<template v-else>
<div v-if="isDoomed">
<div
v-if="isDoomed"
class="modified-cap"
>
Your Replicanti cap has been removed due to the second {{ scrambledText }} milestone.
</div>
<div v-else-if="hasRaisedCap">
Your Replicanti cap without Time Study 192 has been raised to {{ format(replicantiCap, 2) }}
and is giving you {{ quantifyInt("extra Replicanti Galaxy", effarigInfinityBonusRG) }}
<div
v-else-if="hasRaisedCap"
class="modified-cap"
>
Completion of Effarig's Infinity is giving you the following rewards:
<br>
due to the reward from Effarig's Infinity. (Next Replicanti Galaxy at {{ format(nextEffarigRGThreshold, 2) }})
Your Replicanti cap without TS192 is now {{ format(replicantiCap, 2) }}
({{ capMultText }})
<br>
{{ quantifyInt("extra Replicanti Galaxy", effarigInfinityBonusRG) }}
(Next Replicanti Galaxy at {{ format(nextEffarigRGThreshold, 2) }} cap)
</div>
<p class="c-replicanti-description">
You have
@ -248,4 +264,9 @@ export default {
text-shadow: 0 0 0.2rem var(--color-reality-dark);
cursor: default;
}
.modified-cap {
margin: -0.8rem 0 0.8rem;
font-weight: bold;
}
</style>

View File

@ -814,7 +814,13 @@ export const normalAchievements = [
reward: "Multiplier to Infinity Points based on Infinities.",
effect: () => Decimal.pow(Currency.infinitiesTotal.value.clampMin(1), LOG10_2 / 4).powEffectOf(TimeStudy(31)),
cap: () => Effarig.eternityCap,
formatEffect: value => `${formatX(value, 2, 2)}`
formatEffect: value => {
// Since TS31 is already accounted for in the effect prop, we need to "undo" it to display the base value here
const mult = formatX(value, 2, 2);
return TimeStudy(31).canBeApplied
? `${formatX(value.pow(1 / TimeStudy(31).effectValue), 2, 1)} (After TS31: ${mult})`
: mult;
}
},
{
id: 117,

View File

@ -41,7 +41,7 @@ export const effarigUnlocks = {
id: 4,
label: "Infinity",
get description() {
return ` Infinities raise the Replicanti cap
return ` Replicanti cap is multiplied by a value based on Infinities
Infinities increase your max Replicanti Galaxies
Base Infinity Point gain is capped at ${format(DC.E200)} in Effarig's Reality
Each type of Infinity Point multiplier is capped at ${format(DC.E50)} in Effarig's Reality`;

View File

@ -160,7 +160,13 @@ export const eternityChallenges = [
const mult = Currency.infinitiesTotal.value.times(2.783e-6).pow(0.4 + 0.1 * completions).clampMin(1);
return mult.powEffectOf(TimeStudy(31));
},
formatEffect: value => formatX(value, 2, 1)
formatEffect: value => {
// Since TS31 is already accounted for in the effect prop, we need to "undo" it to display the base value here
const mult = formatX(value, 2, 1);
return TimeStudy(31).canBeApplied
? `${formatX(value.pow(1 / TimeStudy(31).effectValue), 2, 1)} (After TS31: ${mult})`
: mult;
}
}
},
{

View File

@ -78,7 +78,7 @@ export const normalTimeStudies = [
cost: 3,
requirement: [21],
reqType: TS_REQUIREMENT_TYPE.AT_LEAST_ONE,
description: () => `Powers up bonuses that are based on your Infinities (Bonuses${formatPow(4)})`,
description: () => `Powers up multipliers that are based on your Infinities (Bonuses${formatPow(4)})`,
effect: 4
},
{