diff --git a/public/stylesheets/styles.css b/public/stylesheets/styles.css
index c6ba76067..4cc5760a4 100644
--- a/public/stylesheets/styles.css
+++ b/public/stylesheets/styles.css
@@ -4655,6 +4655,7 @@ properly on certain themes. */
.l-replicanti-tab {
display: flex;
flex-direction: column;
+ color: var(--color-text);
/* To prevent button jitter */
width: 100%;
diff --git a/src/components/tabs/replicanti/ReplicantiTab.vue b/src/components/tabs/replicanti/ReplicantiTab.vue
index 89fdf2e29..7e1a35f52 100644
--- a/src/components/tabs/replicanti/ReplicantiTab.vue
+++ b/src/components/tabs/replicanti/ReplicantiTab.vue
@@ -39,6 +39,7 @@ export default {
unlockCost: new Decimal(),
scrambledText: "",
maxReplicanti: new Decimal(),
+ estimateToMax: 0,
};
},
computed: {
@@ -115,6 +116,11 @@ export default {
return `${boostList.slice(0, -1).join(",
")},
and ${boostList[boostList.length - 1]}.`;
},
hasMaxText: () => PlayerProgress.realityUnlocked() && !Pelle.isDoomed,
+ toMaxTooltip() {
+ return this.estimateToMax.lt(0.01)
+ ? "Currently increasing"
+ : TimeSpan.fromSeconds(this.estimateToMax.toNumber()).toStringShort();
+ }
},
methods: {
update() {
@@ -153,9 +159,20 @@ export default {
this.canSeeGalaxyButton =
Replicanti.galaxies.max >= 1 || PlayerProgress.eternityUnlocked();
this.maxReplicanti.copyFrom(player.records.thisReality.maxReplicanti);
+ this.estimateToMax = this.calculateEstimate();
},
vacuumText() {
return wordShift.wordCycle(PelleRifts.vacuum.name);
+ },
+ // This is copied out of a short segment of ReplicantiGainText with comments and unneeded variables stripped
+ calculateEstimate() {
+ const updateRateMs = player.options.updateRate;
+ const logGainFactorPerTick = Decimal.divide(getGameSpeedupForDisplay() * updateRateMs *
+ (Math.log(player.replicanti.chance + 1)), getReplicantiInterval());
+ const postScale = Math.log10(ReplicantiGrowth.scaleFactor) / ReplicantiGrowth.scaleLog10;
+ const nextMilestone = this.maxReplicanti;
+ const coeff = Decimal.divide(updateRateMs / 1000, exp1m(logGainFactorPerTick.times(postScale)));
+ return coeff.times(nextMilestone.divide(this.amount).pow(postScale).minus(1));
}
},
};
@@ -196,7 +213,10 @@ export default {
class="c-replicanti-description"
>
Your maximum Replicanti reached this Reality is
- {{ format(maxReplicanti, 2) }}.
+ {{ format(maxReplicanti, 2) }}.