mirror of
https://github.com/IvarK/AntimatterDimensionsSourceCode.git
synced 2024-09-20 11:01:45 +00:00
rename normal dims to antimatter dims, and standardize wording used to refer to them
This commit is contained in:
parent
36e7c1e4c1
commit
174321cc7c
14
index.html
14
index.html
|
@ -188,12 +188,12 @@
|
|||
<script type="text/javascript" src="javascripts/components/old-ui/old-ui-subtab-button.js"></script>
|
||||
<script type="text/javascript" src="javascripts/components/old-ui/old-ui.js"></script>
|
||||
|
||||
<script type="text/javascript" src="javascripts/components/dimensions/normal/normal-dim-tab-header.js"></script>
|
||||
<script type="text/javascript" src="javascripts/components/dimensions/normal/normal-dim-row.js"></script>
|
||||
<script type="text/javascript" src="javascripts/components/dimensions/normal/normal-dim-shift-row.js"></script>
|
||||
<script type="text/javascript" src="javascripts/components/dimensions/normal/normal-dim-galaxy-row.js"></script>
|
||||
<script type="text/javascript" src="javascripts/components/dimensions/normal/normal-dim-tab-progress-bar.js"></script>
|
||||
<script type="text/javascript" src="javascripts/components/dimensions/normal/normal-dim-tab.js"></script>
|
||||
<script type="text/javascript" src="javascripts/components/dimensions/antimatter/antimatter-dim-tab-header.js"></script>
|
||||
<script type="text/javascript" src="javascripts/components/dimensions/antimatter/antimatter-dim-row.js"></script>
|
||||
<script type="text/javascript" src="javascripts/components/dimensions/antimatter/antimatter-dim-shift-row.js"></script>
|
||||
<script type="text/javascript" src="javascripts/components/dimensions/antimatter/antimatter-dim-galaxy-row.js"></script>
|
||||
<script type="text/javascript" src="javascripts/components/dimensions/antimatter/antimatter-dim-tab-progress-bar.js"></script>
|
||||
<script type="text/javascript" src="javascripts/components/dimensions/antimatter/antimatter-dim-tab.js"></script>
|
||||
<script type="text/javascript" src="javascripts/components/dimensions/infinity/infinity-dim-row.js"></script>
|
||||
<script type="text/javascript" src="javascripts/components/dimensions/infinity/infinity-dim-tab.js"></script>
|
||||
<script type="text/javascript" src="javascripts/components/dimensions/time/time-dim-row.js"></script>
|
||||
|
@ -414,7 +414,7 @@
|
|||
<script type="text/javascript" src="javascripts/core/time.js"></script>
|
||||
<script type="text/javascript" src="javascripts/core/tickspeed.js"></script>
|
||||
<script type="text/javascript" src="javascripts/core/dimensions/dimension.js"></script>
|
||||
<script type="text/javascript" src="javascripts/core/dimensions/normal-dimension.js"></script>
|
||||
<script type="text/javascript" src="javascripts/core/dimensions/antimatter-dimension.js"></script>
|
||||
<script type="text/javascript" src="javascripts/core/dimensions/infinity-dimension.js"></script>
|
||||
<script type="text/javascript" src="javascripts/core/dimensions/time-dimension.js"></script>
|
||||
<script type="text/javascript" src="javascripts/core/dimboost.js"></script>
|
||||
|
|
|
@ -51,7 +51,7 @@ Vue.component("normal-achievements-tab", {
|
|||
/>
|
||||
</div>
|
||||
<div class="c-achievements-tab__header">
|
||||
Current achievement multiplier on each Dimension: {{ formatX(achievementPower, 2, 3) }}
|
||||
Current achievement multiplier on all Antimatter Dimensions: {{ formatX(achievementPower, 2, 3) }}
|
||||
<span @click="swapImages()" style="cursor: pointer">{{ swapImagesButton }}</span>
|
||||
</div>
|
||||
<div v-if="achCountdown > 0" class="c-achievements-tab__header">
|
||||
|
|
|
@ -285,8 +285,8 @@ Vue.component("enslaved-tab", {
|
|||
:style="glitchStyle(x)"/>
|
||||
</div>
|
||||
<p>Glyph levels will be boosted to a minimum of {{ formatInt(5000) }}</p>
|
||||
<p>Infinity, Time, and 8th Dimension purchases are limited to {{ formatInt(1) }} each</p>
|
||||
<p>Normal Dimension multipliers are always Dilated (the glyph effect still only
|
||||
<p>Infinity, Time, and 8th Antimatter Dimension purchases are limited to {{ formatInt(1) }} each</p>
|
||||
<p>Antimatter Dimension multipliers are always Dilated (the glyph effect still only
|
||||
applies in actual Dilation)</p>
|
||||
<p>Time study 192 (uncapped Replicanti) is locked</p>
|
||||
<p>The Black Hole is disabled</p>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
"use strict";
|
||||
|
||||
Vue.component("normal-dim-galaxy-row", {
|
||||
Vue.component("antimatter-dim-galaxy-row", {
|
||||
data() {
|
||||
return {
|
||||
type: GALAXY_TYPE.NORMAL,
|
||||
|
@ -20,7 +20,7 @@ Vue.component("normal-dim-galaxy-row", {
|
|||
},
|
||||
computed: {
|
||||
dimName() {
|
||||
return NormalDimension(this.requirement.tier).displayName;
|
||||
return AntimatterDimension(this.requirement.tier).displayName;
|
||||
},
|
||||
buttonText() {
|
||||
return this.lockText === null
|
||||
|
@ -82,7 +82,7 @@ Vue.component("normal-dim-galaxy-row", {
|
|||
},
|
||||
},
|
||||
template:
|
||||
`<div class="c-normal-dim-row">
|
||||
`<div class="c-antimatter-dim-row">
|
||||
<div class="c-dim-row__label c-dim-row__label--growable" style="height: 6rem;">
|
||||
{{typeName}} ({{sumText}}):
|
||||
requires {{formatInt(requirement.amount)}} {{dimName}} Dimensions
|
|
@ -1,6 +1,6 @@
|
|||
"use strict";
|
||||
|
||||
Vue.component("normal-dim-row", {
|
||||
Vue.component("antimatter-dim-row", {
|
||||
props: {
|
||||
floatingText: Array,
|
||||
tier: Number
|
||||
|
@ -23,7 +23,7 @@ Vue.component("normal-dim-row", {
|
|||
},
|
||||
computed: {
|
||||
name() {
|
||||
return NormalDimension(this.tier).shortDisplayName;
|
||||
return AntimatterDimension(this.tier).shortDisplayName;
|
||||
},
|
||||
amountDisplay() {
|
||||
return this.tier < 8 ? format(this.amount, 2, 0) : formatInt(this.amount);
|
||||
|
@ -45,12 +45,12 @@ Vue.component("normal-dim-row", {
|
|||
methods: {
|
||||
update() {
|
||||
const tier = this.tier;
|
||||
const isUnlocked = NormalDimension(tier).isAvailableForPurchase;
|
||||
const isUnlocked = AntimatterDimension(tier).isAvailableForPurchase;
|
||||
this.isUnlocked = isUnlocked;
|
||||
if (!isUnlocked) return;
|
||||
const dimension = NormalDimension(tier);
|
||||
const dimension = AntimatterDimension(tier);
|
||||
this.isCapped = tier === 8 && Enslaved.isRunning && dimension.bought >= 1;
|
||||
this.multiplier.copyFrom(NormalDimension(tier).multiplier);
|
||||
this.multiplier.copyFrom(AntimatterDimension(tier).multiplier);
|
||||
this.amount.copyFrom(dimension.totalAmount);
|
||||
this.boughtBefore10 = dimension.boughtBefore10;
|
||||
this.singleCost.copyFrom(dimension.cost);
|
||||
|
@ -93,7 +93,7 @@ Vue.component("normal-dim-row", {
|
|||
}
|
||||
},
|
||||
template:
|
||||
`<div v-show="isUnlocked" class="c-normal-dim-row">
|
||||
`<div v-show="isUnlocked" class="c-antimatter-dim-row">
|
||||
<div class="c-dim-row__label c-dim-row__name">
|
||||
{{name}} Antimatter Dimension {{formatX(multiplier, 1, 1)}}
|
||||
</div>
|
||||
|
@ -104,7 +104,7 @@ Vue.component("normal-dim-row", {
|
|||
<primary-button
|
||||
v-if="!isContinuumActive"
|
||||
:enabled="isAffordable && !isCapped"
|
||||
class="o-primary-btn--buy-nd o-primary-btn--buy-single-nd l-dim-row__button"
|
||||
class="o-primary-btn--buy-ad o-primary-btn--buy-single-ad l-dim-row__button"
|
||||
:class="tutorialClass()"
|
||||
:ach-tooltip="cappedTooltip"
|
||||
@click="buySingle">
|
||||
|
@ -115,7 +115,7 @@ Vue.component("normal-dim-row", {
|
|||
</primary-button>
|
||||
<primary-button
|
||||
:enabled="(isAffordableUntil10 || isContinuumActive) && !isCapped"
|
||||
class="o-primary-btn--buy-nd o-primary-btn--buy-10-nd l-dim-row__button"
|
||||
class="o-primary-btn--buy-ad o-primary-btn--buy-10-ad l-dim-row__button"
|
||||
:ach-tooltip="cappedTooltip"
|
||||
@click="buyUntil10">
|
||||
<span v-if="isCapped">Capped</span>
|
||||
|
@ -128,7 +128,7 @@ Vue.component("normal-dim-row", {
|
|||
<div
|
||||
v-for="text in floatingText"
|
||||
:key="text.key"
|
||||
class='c-normal-dim-row__floating-text'
|
||||
class='c-antimatter-dim-row__floating-text'
|
||||
>{{text.text}}</div>
|
||||
</div>`,
|
||||
});
|
|
@ -1,6 +1,6 @@
|
|||
"use strict";
|
||||
|
||||
Vue.component("normal-dim-shift-row", {
|
||||
Vue.component("antimatter-dim-shift-row", {
|
||||
data() {
|
||||
return {
|
||||
requirement: {
|
||||
|
@ -19,7 +19,7 @@ Vue.component("normal-dim-shift-row", {
|
|||
return this.isShift ? "Shift" : "Boost";
|
||||
},
|
||||
dimName() {
|
||||
return NormalDimension(this.requirement.tier).displayName;
|
||||
return AntimatterDimension(this.requirement.tier).displayName;
|
||||
},
|
||||
buttonText() {
|
||||
return this.lockText === null
|
||||
|
@ -58,7 +58,7 @@ Vue.component("normal-dim-shift-row", {
|
|||
}
|
||||
},
|
||||
template:
|
||||
`<div class="c-normal-dim-row">
|
||||
`<div class="c-antimatter-dim-row">
|
||||
<div
|
||||
class="c-dim-row__label c-dim-row__label--growable"
|
||||
>
|
|
@ -1,6 +1,6 @@
|
|||
"use strict";
|
||||
|
||||
Vue.component("normal-dim-tab-header", {
|
||||
Vue.component("antimatter-dim-tab-header", {
|
||||
data() {
|
||||
return {
|
||||
isSacrificeUnlocked: false,
|
||||
|
@ -12,7 +12,7 @@ Vue.component("normal-dim-tab-header", {
|
|||
},
|
||||
computed: {
|
||||
sacrificeTooltip() {
|
||||
return `Boosts 8th Dimension by ${formatX(this.sacrificeBoost, 2, 2)}`;
|
||||
return `Boosts 8th Antimatter Dimension by ${formatX(this.sacrificeBoost, 2, 2)}`;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
|
@ -33,7 +33,7 @@ Vue.component("normal-dim-tab-header", {
|
|||
}
|
||||
},
|
||||
template:
|
||||
`<div class="l-normal-dim-tab__header">
|
||||
`<div class="l-antimatter-dim-tab__header">
|
||||
<primary-button
|
||||
v-show="isSacrificeUnlocked"
|
||||
v-tooltip="sacrificeTooltip"
|
|
@ -1,6 +1,6 @@
|
|||
"use strict";
|
||||
|
||||
Vue.component("normal-dim-tab-progress-bar", {
|
||||
Vue.component("antimatter-dim-tab-progress-bar", {
|
||||
data() {
|
||||
return {
|
||||
fill: 0,
|
|
@ -1,6 +1,6 @@
|
|||
"use strict";
|
||||
|
||||
Vue.component("normal-dim-tab", {
|
||||
Vue.component("antimatter-dim-tab", {
|
||||
data() {
|
||||
return {
|
||||
isChallengePowerVisible: false,
|
||||
|
@ -38,19 +38,19 @@ Vue.component("normal-dim-tab", {
|
|||
}
|
||||
},
|
||||
template:
|
||||
`<div class="l-old-ui-normal-dim-tab">
|
||||
`<div class="l-old-ui-antimatter-dim-tab">
|
||||
<span v-if="isSacrificeUnlocked">Sacrifice multiplier: {{ formatX(currentSacrifice, 2, 2) }}</span>
|
||||
<normal-dim-tab-header />
|
||||
<antimatter-dim-tab-header />
|
||||
<span v-if="isChallengePowerVisible">{{challengePower}}</span>
|
||||
<div class="l-dimensions-container">
|
||||
<normal-dim-row
|
||||
<antimatter-dim-row
|
||||
v-for="tier in 8"
|
||||
:key="tier"
|
||||
:tier="tier"
|
||||
:floatingText="$viewModel.tabs.dimensions.normal.floatingText[tier]"
|
||||
:floatingText="$viewModel.tabs.dimensions.antimatter.floatingText[tier]"
|
||||
/>
|
||||
<normal-dim-shift-row />
|
||||
<normal-dim-galaxy-row />
|
||||
<antimatter-dim-shift-row />
|
||||
<antimatter-dim-galaxy-row />
|
||||
</div>
|
||||
<primary-button
|
||||
v-if="isQuickResetAvailable"
|
||||
|
@ -58,6 +58,6 @@ Vue.component("normal-dim-tab", {
|
|||
@click="quickReset"
|
||||
>Lose a reset, returning to the start of the reset</primary-button>
|
||||
<div style="flex: 1 0" />
|
||||
<normal-dim-tab-progress-bar class="l-normal-dim-tab__progress_bar" />
|
||||
<antimatter-dim-tab-progress-bar class="l-antimatter-dim-tab__progress_bar" />
|
||||
</div>`
|
||||
});
|
|
@ -66,7 +66,7 @@ Vue.component("ec-time-study", {
|
|||
Requirement:
|
||||
<br v-if="needsFirstLinebreak">
|
||||
<span v-if="id === 12">Use only the Time Dimension path</span>
|
||||
<span v-else-if="id === 11">Use only the Normal Dimension path</span>
|
||||
<span v-else-if="id === 11">Use only the Antimatter Dimension path</span>
|
||||
<span v-else>
|
||||
{{formatValue(requirement.current)}}/{{formatValue(requirement.total)}}
|
||||
<br v-if="needsSecondLinebreak">
|
||||
|
|
|
@ -15,7 +15,7 @@ Vue.component("normal-time-study", {
|
|||
hintText() {
|
||||
const id = this.study.id;
|
||||
switch (this.setup.path) {
|
||||
case TIME_STUDY_PATH.NORMAL_DIM: return `${id} Normal Dims`;
|
||||
case TIME_STUDY_PATH.ANTIMATTER_DIM: return `${id} Antimatter Dims`;
|
||||
case TIME_STUDY_PATH.INFINITY_DIM: return `${id} Infinity Dims`;
|
||||
case TIME_STUDY_PATH.TIME_DIM: return `${id} Time Dims`;
|
||||
case TIME_STUDY_PATH.ACTIVE: return `${id} Active`;
|
||||
|
|
|
@ -22,7 +22,7 @@ Vue.component("time-study-connection", {
|
|||
const to = connection.to;
|
||||
function pathClassOf(study) {
|
||||
switch (study.path) {
|
||||
case TIME_STUDY_PATH.NORMAL_DIM: return "o-time-study-connection--normal-dim";
|
||||
case TIME_STUDY_PATH.ANTIMATTER_DIM: return "o-time-study-connection--antimatter-dim";
|
||||
case TIME_STUDY_PATH.INFINITY_DIM: return "o-time-study-connection--infinity-dim";
|
||||
case TIME_STUDY_PATH.TIME_DIM: return "o-time-study-connection--time-dim";
|
||||
case TIME_STUDY_PATH.ACTIVE: return "o-time-study-connection--active";
|
||||
|
|
|
@ -44,7 +44,7 @@ Vue.component("time-study", {
|
|||
switch (this.study.type) {
|
||||
case TimeStudyType.NORMAL:
|
||||
switch (this.setup.path) {
|
||||
case TIME_STUDY_PATH.NORMAL_DIM: return "o-time-study-normal-dim";
|
||||
case TIME_STUDY_PATH.ANTIMATTER_DIM: return "o-time-study-antimatter-dim";
|
||||
case TIME_STUDY_PATH.INFINITY_DIM: return "o-time-study-infinity-dim";
|
||||
case TIME_STUDY_PATH.TIME_DIM: return "o-time-study-time-dim";
|
||||
case TIME_STUDY_PATH.ACTIVE: return "o-time-study-active";
|
||||
|
|
|
@ -21,9 +21,9 @@ Vue.component("autobuyers-tab", {
|
|||
<tickspeed-autobuyer-box v-if="!hasContinuum" />
|
||||
<sacrifice-autobuyer-box />
|
||||
<template v-if="hasContinuum">
|
||||
Continuum makes Normal Dimension and tickspeed autobuyers obsolete, as you now automatically have a
|
||||
Continuum makes Antimatter Dimension and tickspeed autobuyers obsolete, as you now automatically have a
|
||||
<br>
|
||||
certain amount of simulated Normal Dimension and tickspeed purchases based on your antimatter.
|
||||
certain amount of simulated Antimatter Dimension and tickspeed purchases based on your antimatter.
|
||||
</template>
|
||||
</div>`
|
||||
});
|
||||
|
|
|
@ -71,7 +71,7 @@ Vue.component("dimension-autobuyer-box", {
|
|||
return Autobuyer.dimension(this.tier);
|
||||
},
|
||||
name() {
|
||||
return `${NormalDimension(this.tier).displayName} Dimension Autobuyer`;
|
||||
return `${AntimatterDimension(this.tier).displayName} Dimension Autobuyer`;
|
||||
},
|
||||
modeDisplay() {
|
||||
switch (this.mode) {
|
||||
|
|
|
@ -34,7 +34,7 @@ Vue.component("modal-import-tree", {
|
|||
}
|
||||
}
|
||||
switch (study.path) {
|
||||
case TIME_STUDY_PATH.NORMAL_DIM: firstSplitPaths.add("Normal Dims");
|
||||
case TIME_STUDY_PATH.ANTIMATTER_DIM: firstSplitPaths.add("Antimatter Dims");
|
||||
break;
|
||||
case TIME_STUDY_PATH.INFINITY_DIM: firstSplitPaths.add("Infinity Dims");
|
||||
break;
|
||||
|
|
|
@ -19,7 +19,7 @@ Vue.component("new-dim-shift-row", {
|
|||
return this.isShift ? "Shift" : "Boost";
|
||||
},
|
||||
dimName() {
|
||||
return NormalDimension(this.requirement.tier).shortDisplayName;
|
||||
return AntimatterDimension(this.requirement.tier).shortDisplayName;
|
||||
},
|
||||
buttonText() {
|
||||
return this.lockText === null
|
||||
|
|
|
@ -24,7 +24,7 @@ Vue.component("new-dimension-row", {
|
|||
},
|
||||
computed: {
|
||||
name() {
|
||||
return NormalDimension(this.tier).shortDisplayName;
|
||||
return AntimatterDimension(this.tier).shortDisplayName;
|
||||
},
|
||||
costDisplay() {
|
||||
return this.buyUntil10 ? format(this.until10Cost) : format(this.singleCost);
|
||||
|
@ -49,13 +49,13 @@ Vue.component("new-dimension-row", {
|
|||
methods: {
|
||||
update() {
|
||||
const tier = this.tier;
|
||||
const isUnlocked = NormalDimension(tier).isAvailableForPurchase;
|
||||
const isUnlocked = AntimatterDimension(tier).isAvailableForPurchase;
|
||||
this.isUnlocked = isUnlocked;
|
||||
if (!isUnlocked) return;
|
||||
const buyUntil10 = player.buyUntil10;
|
||||
const dimension = NormalDimension(tier);
|
||||
const dimension = AntimatterDimension(tier);
|
||||
this.isCapped = tier === 8 && Enslaved.isRunning && dimension.bought >= 10;
|
||||
this.multiplier.copyFrom(NormalDimension(tier).multiplier);
|
||||
this.multiplier.copyFrom(AntimatterDimension(tier).multiplier);
|
||||
this.amount.copyFrom(dimension.totalAmount);
|
||||
this.boughtBefore10 = dimension.boughtBefore10;
|
||||
this.howManyCanBuy = buyUntil10 ? dimension.howManyCanBuy : Math.min(dimension.howManyCanBuy, 1);
|
||||
|
@ -98,9 +98,9 @@ Vue.component("new-dimension-row", {
|
|||
}
|
||||
},
|
||||
template:
|
||||
`<div v-show="isUnlocked" class="c-normal-dim-row">
|
||||
`<div v-show="isUnlocked" class="c-antimatter-dim-row">
|
||||
<div class="c-dim-row__label c-dim-row__name">
|
||||
{{name}} Antimatter D <span class="c-normal-dim-row__multiplier">{{formatX(multiplier, 1, 1)}}</span>
|
||||
{{name}} Antimatter D <span class="c-antimatter-dim-row__multiplier">{{formatX(multiplier, 1, 1)}}</span>
|
||||
</div>
|
||||
<div class="c-dim-row__label c-dim-row__label--growable">
|
||||
{{amountDisplay}}
|
||||
|
@ -131,7 +131,7 @@ Vue.component("new-dimension-row", {
|
|||
<div
|
||||
v-for="text in floatingText"
|
||||
:key="text.key"
|
||||
class='c-normal-dim-row__floating-text'
|
||||
class='c-antimatter-dim-row__floating-text'
|
||||
>{{text.text}}</div>
|
||||
</div>`
|
||||
});
|
||||
|
|
|
@ -15,7 +15,7 @@ Vue.component("new-dimensions-tab", {
|
|||
},
|
||||
computed: {
|
||||
sacrificeTooltip() {
|
||||
return `Boosts 8th Dimension by ${formatX(this.sacrificeBoost, 2, 2)}`;
|
||||
return `Boosts 8th Antimatter Dimension by ${formatX(this.sacrificeBoost, 2, 2)}`;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
|
@ -49,8 +49,7 @@ Vue.component("new-dimensions-tab", {
|
|||
},
|
||||
},
|
||||
template:
|
||||
`<div class="l-normal-dim-tab">
|
||||
|
||||
`<div class="l-antimatter-dim-tab">
|
||||
<div class="modes-container">
|
||||
<button class="o-primary-btn" @click="toggleUntil10" style="width: 100px; height: 30px; padding: 0;">
|
||||
{{ getUntil10Display() }}
|
||||
|
@ -84,6 +83,6 @@ Vue.component("new-dimensions-tab", {
|
|||
>Lose a reset, returning to the start of the reset</primary-button>
|
||||
<new-galaxy-row/>
|
||||
</div>
|
||||
<normal-dim-tab-progress-bar/>
|
||||
<antimatter-dim-tab-progress-bar/>
|
||||
</div>`
|
||||
});
|
||||
|
|
|
@ -20,7 +20,7 @@ Vue.component("new-galaxy-row", {
|
|||
},
|
||||
computed: {
|
||||
dimName() {
|
||||
return NormalDimension(this.requirement.tier).shortDisplayName;
|
||||
return AntimatterDimension(this.requirement.tier).shortDisplayName;
|
||||
},
|
||||
buttonText() {
|
||||
return this.lockText === null
|
||||
|
|
|
@ -22,7 +22,7 @@ Vue.component("new-tickspeed-row", {
|
|||
};
|
||||
},
|
||||
multiplierDisplay() {
|
||||
if (InfinityChallenge(3).isRunning) return `Multiply all Normal Dimensions by
|
||||
if (InfinityChallenge(3).isRunning) return `Multiply all Antimatter Dimensions by
|
||||
${formatX(1.05 + this.galaxyCount * 0.005, 3, 3)}`;
|
||||
const tickmult = this.mult;
|
||||
return `${formatX(tickmult.reciprocal(), 2, 3)} faster / upgrade.`;
|
||||
|
|
|
@ -24,7 +24,7 @@ Vue.component("new-inf-dimensions-tab", {
|
|||
return formatX(this.sacrificeBoost, 2, 2);
|
||||
},
|
||||
sacrificeTooltip() {
|
||||
return `Boosts 8th Dimension by ${this.sacrificeBoostDisplay}`;
|
||||
return `Boosts 8th Antimatter Dimension by ${this.sacrificeBoostDisplay}`;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
|
|
|
@ -22,7 +22,7 @@ Vue.component("game-header-tickspeed-row", {
|
|||
};
|
||||
},
|
||||
multiplierDisplay() {
|
||||
if (InfinityChallenge(3).isRunning) return `Multiply all Normal Dimensions by
|
||||
if (InfinityChallenge(3).isRunning) return `Multiply all Antimatter Dimensions by
|
||||
${formatX(1.05 + this.galaxyCount * 0.005, 3, 3)}`;
|
||||
const tickmult = this.mult;
|
||||
return `${formatX(tickmult.reciprocal(), 2, 3)} faster / upgrade.`;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// Primary is lifted from the study tree (mostly),
|
||||
// secondary is primary -15% l in hsl, apart from reality which is -10%
|
||||
const perkColors = {
|
||||
[PERK_FAMILY.NORMAL]: {
|
||||
[PERK_FAMILY.ANTIMATTER]: {
|
||||
primary: "#22aa48",
|
||||
secondary: "#156a2d"
|
||||
},
|
||||
|
|
|
@ -12,7 +12,7 @@ let ui = {
|
|||
},
|
||||
tabs: {
|
||||
dimensions: {
|
||||
normal: {
|
||||
antimatter: {
|
||||
floatingText: Array.from({ length: 9 }, () => [])
|
||||
},
|
||||
},
|
||||
|
@ -41,7 +41,7 @@ let ui = {
|
|||
draggingUIID: -1,
|
||||
currentContextMenu: null,
|
||||
tab: "dimensions",
|
||||
subtab: "normal",
|
||||
subtab: "antimatter",
|
||||
newUI: false,
|
||||
news: false,
|
||||
initialized: false,
|
||||
|
|
|
@ -69,7 +69,7 @@ class DimensionAutobuyerState extends IntervaledAutobuyerState {
|
|||
|
||||
tick() {
|
||||
const tier = this._tier;
|
||||
if (!NormalDimension(tier).isAvailableForPurchase) return;
|
||||
if (!AntimatterDimension(tier).isAvailableForPurchase) return;
|
||||
super.tick();
|
||||
switch (this.mode) {
|
||||
case AUTOBUYER_MODE.BUY_SINGLE:
|
||||
|
|
|
@ -84,7 +84,7 @@
|
|||
studiesList: [
|
||||
commentRule,
|
||||
{ sol: true, next: "start" },
|
||||
{ regex: /normal(?=[\s,]|$)|infinity(?=[\s,]|$)|time(?=[\s,]|$)/ui, token: "variable-2" },
|
||||
{ regex: /antimatter(?=[\s,]|$)|infinity(?=[\s,]|$)|time(?=[\s,]|$)/ui, token: "variable-2" },
|
||||
{ regex: /active(?=[\s,]|$)|passive(?=[\s,]|$)|idle(?=[\s,]|$)/ui, token: "variable-2" },
|
||||
{ regex: /[a-zA-Z_][a-zA-Z_0-9]*/u, token: "variable", next: "commandDone" },
|
||||
{ regex: /[1-9][0-9]+/ui, token: "number" },
|
||||
|
@ -128,7 +128,7 @@
|
|||
{ regex: /nowait(\s|$)/ui, token: "property" },
|
||||
{ regex: /on(\s|$)|off(\s|$)|dilation(\s|$)|load(\s|$)|respec(\s|$)/ui, token: "variable-2" },
|
||||
{ regex: /preset(\s|$)|eternity(\s|$)|reality(\s|$)|use(\s|$)/ui, token: "variable-2" },
|
||||
{ regex: /normal(\s|$|(?=,))|infinity(\s|$|(?=,))|time(\s|$|(?=,))/ui, token: "variable-2" },
|
||||
{ regex: /antimatter(\s|$|(?=,))|infinity(\s|$|(?=,))|time(\s|$|(?=,))/ui, token: "variable-2" },
|
||||
{ regex: /x[\t ]+last(\s|$)/ui, token: "variable-2" },
|
||||
{ regex: /completions(\s|$)|ec(1[0-2]|[1-9]) completions(\s|$)/ui, token: "variable-2" },
|
||||
{
|
||||
|
|
|
@ -183,7 +183,7 @@ const AutomatorLexer = (() => {
|
|||
createInCategory(StudyPath, "Idle", /idle/i, { $studyPath: TIME_STUDY_PATH.IDLE });
|
||||
createInCategory(StudyPath, "Passive", /passive/i, { $studyPath: TIME_STUDY_PATH.PASSIVE });
|
||||
createInCategory(StudyPath, "Active", /active/i, { $studyPath: TIME_STUDY_PATH.ACTIVE });
|
||||
createInCategory(StudyPath, "Normal", /normal/i, { $studyPath: TIME_STUDY_PATH.NORMAL_DIM });
|
||||
createInCategory(StudyPath, "Antimatter", /antimatter/i, { $studyPath: TIME_STUDY_PATH.ANTIMATTER_DIM });
|
||||
createInCategory(StudyPath, "Time", /time/i, { $studyPath: TIME_STUDY_PATH.TIME_DIM });
|
||||
|
||||
createInCategory(TimeUnit, "Milliseconds", /ms/i, {
|
||||
|
|
|
@ -47,7 +47,7 @@ function bigCrunchReset() {
|
|||
handleChallengeCompletion();
|
||||
|
||||
if (earlyGame || (challenge && !player.options.retryChallenge)) {
|
||||
Tab.dimensions.normal.show();
|
||||
Tab.dimensions.antimatter.show();
|
||||
}
|
||||
const infinityPoints = gainedInfinityPoints();
|
||||
player.infinityPoints = player.infinityPoints.plus(infinityPoints);
|
||||
|
|
|
@ -82,14 +82,14 @@ const GameCache = {
|
|||
|
||||
buyablePerks: new Lazy(() => Perks.all.filter(p => p.canBeBought)),
|
||||
|
||||
normalDimensionCommonMultiplier: new Lazy(() => {
|
||||
antimatterDimensionCommonMultiplier: new Lazy(() => {
|
||||
// The effect is defined in normal_dimensions.js because that's where the non-cached
|
||||
// code originally lived.
|
||||
return normalDimensionCommonMultiplier();
|
||||
return antimatterDimensionCommonMultiplier();
|
||||
}),
|
||||
|
||||
// 0 will cause a crash if invoked; this way the tier can be used as an index
|
||||
normalDimensionFinalMultipliers: Array.range(0, 9)
|
||||
antimatterDimensionFinalMultipliers: Array.range(0, 9)
|
||||
.map(tier => new Lazy(() => getDimensionFinalMultiplierUncached(tier))),
|
||||
|
||||
infinityDimensionCommonMultiplier: new Lazy(() => {
|
||||
|
@ -113,6 +113,6 @@ EventHub.logic.on(GAME_EVENT.GLYPHS_CHANGED, () => {
|
|||
GameCache.glyphEffects.invalidate();
|
||||
}, GameCache.glyphEffects);
|
||||
|
||||
GameCache.normalDimensionFinalMultipliers.invalidate = function() {
|
||||
GameCache.antimatterDimensionFinalMultipliers.invalidate = function() {
|
||||
for (const x of this) x.invalidate();
|
||||
};
|
||||
|
|
|
@ -120,7 +120,7 @@ const V_UNLOCKS = {
|
|||
},
|
||||
ND_POW: {
|
||||
id: 2,
|
||||
reward: "Normal dimension power based on Space Theorems.",
|
||||
reward: "Antimatter Dimension power based on Space Theorems.",
|
||||
description: "Have 5 V-achievements",
|
||||
effect: () => 1 + Math.sqrt(V.spaceTheorems) / 100,
|
||||
format: x => formatPow(x, 3, 3),
|
||||
|
|
|
@ -156,7 +156,7 @@ MatterDimensionState.list = Array.range(1, 4).map(tier => new MatterDimensionSta
|
|||
|
||||
/**
|
||||
* @param {number} tier
|
||||
* @return {NormalDimensionState}
|
||||
* @return {AntimatterDimensionState}
|
||||
*/
|
||||
function MatterDimension(tier) {
|
||||
return MatterDimensionState.list[tier - 1];
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
function startChallenge() {
|
||||
secondSoftReset(true);
|
||||
if (!Enslaved.isRunning) Tab.dimensions.normal.show();
|
||||
if (!Enslaved.isRunning) Tab.dimensions.antimatter.show();
|
||||
}
|
||||
|
||||
function askChallengeConfirmation(goal) {
|
||||
|
@ -26,7 +26,7 @@ function tryUnlockInfinityChallenges() {
|
|||
|
||||
function updateNormalAndInfinityChallenges(diff) {
|
||||
if (NormalChallenge(11).isRunning || InfinityChallenge(6).isRunning) {
|
||||
if (NormalDimension(2).amount.neq(0)) {
|
||||
if (AntimatterDimension(2).amount.neq(0)) {
|
||||
if (player.matter.eq(0)) player.matter = new Decimal(1);
|
||||
player.matter = player.matter
|
||||
.times(Decimal.pow((1.03 + DimBoost.totalBoosts / 200 + player.galaxies / 100), diff / 100));
|
||||
|
@ -48,7 +48,7 @@ function updateNormalAndInfinityChallenges(diff) {
|
|||
|
||||
if (InfinityChallenge(2).isRunning) {
|
||||
if (player.ic2Count >= 8) {
|
||||
if (NormalDimension(8).amount.gt(0)) {
|
||||
if (AntimatterDimension(8).amount.gt(0)) {
|
||||
sacrificeReset();
|
||||
}
|
||||
player.ic2Count = 0;
|
||||
|
@ -119,7 +119,7 @@ class NormalChallengeState extends GameMechanicState {
|
|||
exit() {
|
||||
player.challenge.normal.current = 0;
|
||||
secondSoftReset(true);
|
||||
if (!Enslaved.isRunning) Tab.dimensions.normal.show();
|
||||
if (!Enslaved.isRunning) Tab.dimensions.antimatter.show();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -236,7 +236,7 @@ class InfinityChallengeState extends GameMechanicState {
|
|||
exit() {
|
||||
player.challenge.infinity.current = 0;
|
||||
secondSoftReset(true);
|
||||
if (!Enslaved.isRunning) Tab.dimensions.normal.show();
|
||||
if (!Enslaved.isRunning) Tab.dimensions.antimatter.show();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -93,7 +93,7 @@ const AUTO_GLYPH_REJECT = {
|
|||
|
||||
const TIME_STUDY_PATH = {
|
||||
NONE: 0,
|
||||
NORMAL_DIM: 1,
|
||||
ANTIMATTER_DIM: 1,
|
||||
INFINITY_DIM: 2,
|
||||
TIME_DIM: 3,
|
||||
ACTIVE: 4,
|
||||
|
|
|
@ -190,9 +190,9 @@ Currency.antimatter = new class extends DecimalCurrency {
|
|||
}
|
||||
|
||||
get productionPerSecond() {
|
||||
let production = NormalDimension(1).productionPerRealSecond;
|
||||
let production = AntimatterDimension(1).productionPerRealSecond;
|
||||
if (NormalChallenge(12).isRunning) {
|
||||
production = production.plus(NormalDimension(2).productionPerRealSecond);
|
||||
production = production.plus(AntimatterDimension(2).productionPerRealSecond);
|
||||
}
|
||||
return production;
|
||||
}
|
||||
|
|
|
@ -280,11 +280,11 @@ dev.printResourceTotals = function() {
|
|||
console.log(`Galaxies: ${aGalaxy}+${rGalaxy}+${dGalaxy} (${aGalaxy + rGalaxy + dGalaxy})`);
|
||||
console.log(`Tick reduction: e${-Math.round(getTickSpeedMultiplier().log10())}`);
|
||||
|
||||
let NDmults = new Decimal(1);
|
||||
let ADmults = new Decimal(1);
|
||||
for (let i = 1; i <= 8; i++) {
|
||||
NDmults = NDmults.times(NormalDimension(i).multiplier);
|
||||
ADmults = ADmults.times(AntimatterDimension(i).multiplier);
|
||||
}
|
||||
console.log(`ND mults: e${NDmults.log10().toPrecision(3)}`);
|
||||
console.log(`AD mults: e${ADmults.log10().toPrecision(3)}`);
|
||||
let IDmults = new Decimal(1);
|
||||
for (let i = 1; i <= 8; i++) {
|
||||
IDmults = IDmults.times(InfinityDimension(i).multiplier);
|
||||
|
|
|
@ -7,7 +7,7 @@ class DimBoostRequirement {
|
|||
}
|
||||
|
||||
get isSatisfied() {
|
||||
const dimension = NormalDimension(this.tier);
|
||||
const dimension = AntimatterDimension(this.tier);
|
||||
return dimension.totalAmount.gte(this.amount);
|
||||
}
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ class DimBoost {
|
|||
|
||||
static get lockText() {
|
||||
if (NormalChallenge(8).isRunning && DimBoost.purchasedBoosts >= this.challenge8MaxBoosts) {
|
||||
return "Locked (8th Dimension Autobuyer Challenge)";
|
||||
return "Locked (8th Antimatter Dimension Autobuyer Challenge)";
|
||||
}
|
||||
if (Ra.isRunning) return "Locked (Ra's reality)";
|
||||
return null;
|
||||
|
@ -124,7 +124,7 @@ function softReset(bulk, forcedNDReset = false, forcedAMReset = false) {
|
|||
player.dimensionBoosts = Math.max(0, player.dimensionBoosts + bulk);
|
||||
resetChallengeStuff();
|
||||
if (forcedNDReset || !Perk.dimboostNonReset.isBought) {
|
||||
NormalDimensions.reset();
|
||||
AntimatterDimensions.reset();
|
||||
player.sacrificed = new Decimal(0);
|
||||
resetTickspeed();
|
||||
}
|
||||
|
@ -178,7 +178,7 @@ function maxBuyDimBoosts() {
|
|||
// Linearly extrapolate dimboost costs. req1 = a * 1 + b, req2 = a * 2 + b
|
||||
// so a = req2 - req1, b = req1 - a = 2 req1 - req2, num = (dims - b) / a
|
||||
const increase = req2.amount - req1.amount;
|
||||
const dim = NormalDimension(req1.tier);
|
||||
const dim = AntimatterDimension(req1.tier);
|
||||
let maxBoosts = Math.min(Number.MAX_VALUE,
|
||||
1 + Math.floor((dim.totalAmount.toNumber() - req1.amount) / increase));
|
||||
if (DimBoost.bulkRequirement(maxBoosts).isSatisfied) {
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
"use strict";
|
||||
|
||||
// Multiplier applied to all normal dimensions, regardless of tier. This is cached using a Lazy
|
||||
// Multiplier applied to all Antimatter Dimensions, regardless of tier. This is cached using a Lazy
|
||||
// and invalidated every update.
|
||||
function normalDimensionCommonMultiplier() {
|
||||
function antimatterDimensionCommonMultiplier() {
|
||||
let multiplier = new Decimal(1);
|
||||
|
||||
multiplier = multiplier.times(Achievements.power);
|
||||
|
@ -50,7 +50,7 @@ function normalDimensionCommonMultiplier() {
|
|||
}
|
||||
|
||||
function getDimensionFinalMultiplierUncached(tier) {
|
||||
if (tier < 1 || tier > 8) throw new Error(`Invalid Normal Dimension tier ${tier}`);
|
||||
if (tier < 1 || tier > 8) throw new Error(`Invalid Antimatter Dimension tier ${tier}`);
|
||||
if (NormalChallenge(10).isRunning && tier > 6) return new Decimal(1);
|
||||
if (EternityChallenge(11).isRunning) {
|
||||
return player.infinityPower.pow(
|
||||
|
@ -86,20 +86,20 @@ function getDimensionFinalMultiplierUncached(tier) {
|
|||
}
|
||||
|
||||
function applyNDMultipliers(mult, tier) {
|
||||
let multiplier = mult.times(GameCache.normalDimensionCommonMultiplier.value);
|
||||
let multiplier = mult.times(GameCache.antimatterDimensionCommonMultiplier.value);
|
||||
|
||||
let buy10Value;
|
||||
if (Laitela.continuumActive) {
|
||||
buy10Value = NormalDimension(tier).continuumValue;
|
||||
buy10Value = AntimatterDimension(tier).continuumValue;
|
||||
} else {
|
||||
buy10Value = Math.floor(NormalDimension(tier).bought / 10);
|
||||
buy10Value = Math.floor(AntimatterDimension(tier).bought / 10);
|
||||
}
|
||||
|
||||
multiplier = multiplier.times(Decimal.pow(NormalDimensions.buyTenMultiplier, buy10Value));
|
||||
multiplier = multiplier.times(Decimal.pow(AntimatterDimensions.buyTenMultiplier, buy10Value));
|
||||
multiplier = multiplier.times(DimBoost.multiplierToNDTier(tier));
|
||||
|
||||
let infinitiedMult = new Decimal(1).timesEffectsOf(
|
||||
NormalDimension(tier).infinityUpgrade,
|
||||
AntimatterDimension(tier).infinityUpgrade,
|
||||
BreakInfinityUpgrade.infinitiedMult
|
||||
);
|
||||
infinitiedMult = infinitiedMult.pow(TimeStudy(31).effectOrDefault(1));
|
||||
|
@ -154,7 +154,7 @@ function applyNDPowers(mult, tier) {
|
|||
|
||||
multiplier = multiplier
|
||||
.powEffectsOf(
|
||||
NormalDimension(tier).infinityUpgrade.chargedEffect,
|
||||
AntimatterDimension(tier).infinityUpgrade.chargedEffect,
|
||||
InfinityUpgrade.totalTimeMult.chargedEffect,
|
||||
InfinityUpgrade.thisInfinityTimeMult.chargedEffect,
|
||||
AlchemyResource.power
|
||||
|
@ -175,7 +175,7 @@ function onBuyDimension(tier) {
|
|||
|
||||
if (NormalChallenge(2).isRunning) player.chall2Pow = 0;
|
||||
if (NormalChallenge(4).isRunning || InfinityChallenge(1).isRunning) {
|
||||
NormalDimensions.resetAmountUpToTier(tier - 1);
|
||||
AntimatterDimensions.resetAmountUpToTier(tier - 1);
|
||||
}
|
||||
|
||||
player.postC4Tier = tier;
|
||||
|
@ -188,18 +188,18 @@ function onBuyDimension(tier) {
|
|||
|
||||
function floatText(tier, text) {
|
||||
if (!player.options.animations.floatingText) return;
|
||||
const floatingText = ui.view.tabs.dimensions.normal.floatingText[tier];
|
||||
const floatingText = ui.view.tabs.dimensions.antimatter.floatingText[tier];
|
||||
floatingText.push({ text, key: UIID.next() });
|
||||
setTimeout(() => floatingText.shift(), 1000);
|
||||
}
|
||||
|
||||
function buyOneDimension(tier) {
|
||||
const dimension = NormalDimension(tier);
|
||||
const dimension = AntimatterDimension(tier);
|
||||
if (Laitela.continuumActive || !dimension.isAvailableForPurchase || !dimension.isAffordable) return false;
|
||||
|
||||
const cost = dimension.cost;
|
||||
|
||||
if (tier === 8 && Enslaved.isRunning && NormalDimension(8).bought >= 1) return false;
|
||||
if (tier === 8 && Enslaved.isRunning && AntimatterDimension(8).bought >= 1) return false;
|
||||
|
||||
dimension.currencyAmount = dimension.currencyAmount.minus(cost);
|
||||
|
||||
|
@ -211,7 +211,7 @@ function buyOneDimension(tier) {
|
|||
dimension.bought++;
|
||||
|
||||
if (dimension.boughtBefore10 === 0) {
|
||||
floatText(tier, formatX(NormalDimensions.buyTenMultiplier, 2, 1));
|
||||
floatText(tier, formatX(AntimatterDimensions.buyTenMultiplier, 2, 1));
|
||||
}
|
||||
|
||||
if (tier === 1) {
|
||||
|
@ -224,7 +224,7 @@ function buyOneDimension(tier) {
|
|||
}
|
||||
|
||||
function buyManyDimension(tier) {
|
||||
const dimension = NormalDimension(tier);
|
||||
const dimension = AntimatterDimension(tier);
|
||||
if (Laitela.continuumActive || !dimension.isAvailableForPurchase || !dimension.isAffordableUntil10) return false;
|
||||
const cost = dimension.costUntil10;
|
||||
|
||||
|
@ -235,19 +235,19 @@ function buyManyDimension(tier) {
|
|||
dimension.amount = dimension.amount.plus(dimension.remainingUntil10);
|
||||
dimension.bought += dimension.remainingUntil10;
|
||||
|
||||
floatText(tier, format(NormalDimensions.buyTenMultiplier, 2, 1));
|
||||
floatText(tier, format(AntimatterDimensions.buyTenMultiplier, 2, 1));
|
||||
onBuyDimension(tier);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function buyAsManyAsYouCanBuy(tier) {
|
||||
const dimension = NormalDimension(tier);
|
||||
const dimension = AntimatterDimension(tier);
|
||||
if (Laitela.continuumActive || !dimension.isAvailableForPurchase || !dimension.isAffordable) return false;
|
||||
const howMany = dimension.howManyCanBuy;
|
||||
const cost = dimension.cost.times(howMany);
|
||||
|
||||
if (tier === 8 && Enslaved.isRunning && NormalDimension(8).bought >= 1) return buyOneDimension(8);
|
||||
if (tier === 8 && Enslaved.isRunning && AntimatterDimension(8).bought >= 1) return buyOneDimension(8);
|
||||
|
||||
dimension.currencyAmount = dimension.currencyAmount.minus(cost);
|
||||
dimension.challengeCostBump();
|
||||
|
@ -255,7 +255,7 @@ function buyAsManyAsYouCanBuy(tier) {
|
|||
dimension.bought += howMany;
|
||||
|
||||
if (dimension.boughtBefore10 === 0) {
|
||||
floatText(tier, format(NormalDimensions.buyTenMultiplier, 2, 1));
|
||||
floatText(tier, format(AntimatterDimensions.buyTenMultiplier, 2, 1));
|
||||
}
|
||||
|
||||
onBuyDimension(tier);
|
||||
|
@ -266,7 +266,7 @@ function buyAsManyAsYouCanBuy(tier) {
|
|||
// This function doesn't do cost checking as challenges generally modify costs, it just buys and updates dimensions
|
||||
function buyUntilTen(tier) {
|
||||
if (Laitela.continuumActive) return;
|
||||
const dimension = NormalDimension(tier);
|
||||
const dimension = AntimatterDimension(tier);
|
||||
dimension.challengeCostBump();
|
||||
dimension.amount = Decimal.round(dimension.amount.plus(dimension.remainingUntil10));
|
||||
dimension.bought += dimension.remainingUntil10;
|
||||
|
@ -288,7 +288,7 @@ function maxAll() {
|
|||
}
|
||||
|
||||
function buyMaxDimension(tier, bulk = Infinity, auto = false) {
|
||||
const dimension = NormalDimension(tier);
|
||||
const dimension = AntimatterDimension(tier);
|
||||
if (Laitela.continuumActive || !dimension.isAvailableForPurchase || !dimension.isAffordableUntil10) return;
|
||||
const cost = dimension.costUntil10;
|
||||
let bulkLeft = bulk;
|
||||
|
@ -300,7 +300,7 @@ function buyMaxDimension(tier, bulk = Infinity, auto = false) {
|
|||
return;
|
||||
}
|
||||
|
||||
const multBefore = Decimal.pow(NormalDimensions.buyTenMultiplier, dimension.bought / 10);
|
||||
const multBefore = Decimal.pow(AntimatterDimensions.buyTenMultiplier, dimension.bought / 10);
|
||||
|
||||
// Buy any remaining until 10 before attempting to bulk-buy
|
||||
if (Currency.antimatter.purchase(cost)) {
|
||||
|
@ -330,7 +330,7 @@ function buyMaxDimension(tier, bulk = Infinity, auto = false) {
|
|||
dimension.amount = dimension.amount.plus(10 * buying).round();
|
||||
dimension.bought += 10 * buying;
|
||||
dimension.currencyAmount = dimension.currencyAmount.minus(Decimal.pow10(maxBought.logPrice));
|
||||
const multAfter = Decimal.pow(NormalDimensions.buyTenMultiplier, dimension.bought / 10);
|
||||
const multAfter = Decimal.pow(AntimatterDimensions.buyTenMultiplier, dimension.bought / 10);
|
||||
if (multBefore.neq(multAfter) && auto === false) {
|
||||
floatText(tier, format(multAfter.dividedBy(multBefore), 2, 1));
|
||||
}
|
||||
|
@ -341,9 +341,9 @@ function canAfford(cost) {
|
|||
return (player.break || cost.lt(Decimal.NUMBER_MAX_VALUE)) && Currency.antimatter.gte(cost);
|
||||
}
|
||||
|
||||
class NormalDimensionState extends DimensionState {
|
||||
class AntimatterDimensionState extends DimensionState {
|
||||
constructor(tier) {
|
||||
super(() => player.dimensions.normal, tier);
|
||||
super(() => player.dimensions.antimatter, tier);
|
||||
const BASE_COSTS = [null, 10, 100, 1e4, 1e6, 1e9, 1e13, 1e18, 1e24];
|
||||
this._baseCost = BASE_COSTS[tier];
|
||||
const BASE_COST_MULTIPLIERS = [null, 1e3, 1e4, 1e5, 1e6, 1e8, 1e10, 1e12, 1e15];
|
||||
|
@ -440,9 +440,9 @@ class NormalDimensionState extends DimensionState {
|
|||
if (tier === 7 && EternityChallenge(7).isRunning) {
|
||||
toGain = InfinityDimension(1).productionPerSecond.times(10);
|
||||
} else if (NormalChallenge(12).isRunning) {
|
||||
toGain = NormalDimension(tier + 2).productionPerSecond;
|
||||
toGain = AntimatterDimension(tier + 2).productionPerSecond;
|
||||
} else {
|
||||
toGain = NormalDimension(tier + 1).productionPerSecond;
|
||||
toGain = AntimatterDimension(tier + 1).productionPerSecond;
|
||||
}
|
||||
return toGain.times(10).dividedBy(this.amount.max(1)).times(getGameSpeedupForDisplay());
|
||||
}
|
||||
|
@ -452,7 +452,7 @@ class NormalDimensionState extends DimensionState {
|
|||
*/
|
||||
get currencyAmount() {
|
||||
return this.tier >= 3 && NormalChallenge(6).isRunning
|
||||
? NormalDimension(this.tier - 2).amount
|
||||
? AntimatterDimension(this.tier - 2).amount
|
||||
: Currency.antimatter.value;
|
||||
}
|
||||
|
||||
|
@ -461,7 +461,7 @@ class NormalDimensionState extends DimensionState {
|
|||
*/
|
||||
set currencyAmount(value) {
|
||||
return this.tier >= 3 && NormalChallenge(6).isRunning
|
||||
? NormalDimension(this.tier - 2).amount = value
|
||||
? AntimatterDimension(this.tier - 2).amount = value
|
||||
: Currency.antimatter.value = value;
|
||||
}
|
||||
|
||||
|
@ -521,8 +521,8 @@ class NormalDimensionState extends DimensionState {
|
|||
if (this.tier > DimBoost.totalBoosts + 4) return false;
|
||||
const hasPrevTier = this.tier === 1 ||
|
||||
(Laitela.continuumActive
|
||||
? NormalDimension(this.tier - 1).continuumValue >= 1
|
||||
: NormalDimension(this.tier - 1).amount.neq(0));
|
||||
? AntimatterDimension(this.tier - 1).continuumValue >= 1
|
||||
: AntimatterDimension(this.tier - 1).amount.neq(0));
|
||||
if (!EternityMilestone.unlockAllND.isReached && !hasPrevTier) return false;
|
||||
return this.tier < 7 || !NormalChallenge(10).isRunning;
|
||||
}
|
||||
|
@ -543,7 +543,7 @@ class NormalDimensionState extends DimensionState {
|
|||
}
|
||||
|
||||
multiplySameCosts() {
|
||||
for (const dimension of NormalDimensions.all.filter(dim => dim.tier !== this.tier)) {
|
||||
for (const dimension of AntimatterDimensions.all.filter(dim => dim.tier !== this.tier)) {
|
||||
if (dimension.cost.e === this.cost.e) {
|
||||
dimension.costBumps++;
|
||||
}
|
||||
|
@ -552,7 +552,7 @@ class NormalDimensionState extends DimensionState {
|
|||
}
|
||||
|
||||
multiplyIC5Costs() {
|
||||
for (const dimension of NormalDimensions.all.filter(dim => dim.tier !== this.tier)) {
|
||||
for (const dimension of AntimatterDimensions.all.filter(dim => dim.tier !== this.tier)) {
|
||||
if (this.tier <= 4 && dimension.cost.e <= this.cost.e) {
|
||||
dimension.costBumps++;
|
||||
} else if (this.tier >= 5 && dimension.cost.e >= this.cost.e) {
|
||||
|
@ -562,7 +562,7 @@ class NormalDimensionState extends DimensionState {
|
|||
}
|
||||
|
||||
get multiplier() {
|
||||
return GameCache.normalDimensionFinalMultipliers[this.tier].value;
|
||||
return GameCache.antimatterDimensionFinalMultipliers[this.tier].value;
|
||||
}
|
||||
|
||||
get cappedProductionInNormalChallenges() {
|
||||
|
@ -602,25 +602,25 @@ class NormalDimensionState extends DimensionState {
|
|||
/**
|
||||
* @function
|
||||
* @param {number} tier
|
||||
* @return {NormalDimensionState}
|
||||
* @return {AntimatterDimensionState}
|
||||
*/
|
||||
const NormalDimension = NormalDimensionState.createAccessor();
|
||||
const AntimatterDimension = AntimatterDimensionState.createAccessor();
|
||||
|
||||
const NormalDimensions = {
|
||||
const AntimatterDimensions = {
|
||||
/**
|
||||
* @type {NormalDimensionState[]}
|
||||
* @type {AntimatterDimensionState[]}
|
||||
*/
|
||||
all: NormalDimension.index.compact(),
|
||||
all: AntimatterDimension.index.compact(),
|
||||
|
||||
reset() {
|
||||
for (const dimension of NormalDimensions.all) {
|
||||
for (const dimension of AntimatterDimensions.all) {
|
||||
dimension.reset();
|
||||
}
|
||||
GameCache.dimensionMultDecrease.invalidate();
|
||||
},
|
||||
|
||||
resetAmountUpToTier(maxTier) {
|
||||
for (const dimension of NormalDimensions.all.slice(0, maxTier)) {
|
||||
for (const dimension of AntimatterDimensions.all.slice(0, maxTier)) {
|
||||
dimension.resetAmount();
|
||||
}
|
||||
},
|
||||
|
@ -656,14 +656,14 @@ const NormalDimensions = {
|
|||
nextTierOffset++;
|
||||
}
|
||||
for (let tier = maxTierProduced; tier >= 1; --tier) {
|
||||
NormalDimension(tier + nextTierOffset).produceDimensions(NormalDimension(tier), diff / 10);
|
||||
AntimatterDimension(tier + nextTierOffset).produceDimensions(AntimatterDimension(tier), diff / 10);
|
||||
}
|
||||
if (NormalDimension(1).amount.gt(0)) {
|
||||
if (AntimatterDimension(1).amount.gt(0)) {
|
||||
player.noFirstDimensions = false;
|
||||
}
|
||||
NormalDimension(1).produceCurrency(Currency.antimatter, diff);
|
||||
AntimatterDimension(1).produceCurrency(Currency.antimatter, diff);
|
||||
if (NormalChallenge(12).isRunning) {
|
||||
NormalDimension(2).produceCurrency(Currency.antimatter, diff);
|
||||
AntimatterDimension(2).produceCurrency(Currency.antimatter, diff);
|
||||
}
|
||||
}
|
||||
};
|
|
@ -331,7 +331,7 @@ const InfinityDimensions = {
|
|||
|
||||
if (EternityChallenge(7).isRunning) {
|
||||
if (!NormalChallenge(10).isRunning) {
|
||||
InfinityDimension(1).produceDimensions(NormalDimension(7), diff);
|
||||
InfinityDimension(1).produceDimensions(AntimatterDimension(7), diff);
|
||||
}
|
||||
} else {
|
||||
InfinityDimension(1).produceCurrency(Currency.infinityPower, diff);
|
||||
|
|
|
@ -92,7 +92,7 @@ function eternity(force, auto, specialConditions = {}) {
|
|||
InfinityDimensions.fullReset();
|
||||
Replicanti.reset();
|
||||
resetChallengeStuff();
|
||||
NormalDimensions.reset();
|
||||
AntimatterDimensions.reset();
|
||||
|
||||
if (!specialConditions.enteringEC && player.respec) {
|
||||
respecTimeStudies(auto);
|
||||
|
|
|
@ -7,7 +7,7 @@ function startEternityChallenge() {
|
|||
InfinityDimensions.fullReset();
|
||||
Replicanti.reset();
|
||||
resetChallengeStuff();
|
||||
NormalDimensions.reset();
|
||||
AntimatterDimensions.reset();
|
||||
player.replicanti.galaxies = 0;
|
||||
player.infinityPoints = Player.startingIP;
|
||||
InfinityDimensions.resetAmount();
|
||||
|
|
|
@ -13,7 +13,7 @@ class GalaxyRequirement {
|
|||
}
|
||||
|
||||
get isSatisfied() {
|
||||
const dimension = NormalDimension(this.tier);
|
||||
const dimension = AntimatterDimension(this.tier);
|
||||
return dimension.totalAmount.gte(this.amount);
|
||||
}
|
||||
}
|
||||
|
@ -125,7 +125,7 @@ class Galaxy {
|
|||
if (this.canBeBought) return null;
|
||||
if (EternityChallenge(6).isRunning) return "Locked (Eternity Challenge 6)";
|
||||
if (InfinityChallenge(7).isRunning) return "Locked (Infinity Challenge 7)";
|
||||
if (NormalChallenge(8).isRunning) return "Locked (8th Dimension Autobuyer Challenge)";
|
||||
if (NormalChallenge(8).isRunning) return "Locked (8th Antimatter Dimension Autobuyer Challenge)";
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -175,7 +175,7 @@ function maxBuyGalaxies(limit = Number.MAX_VALUE) {
|
|||
// Check for ability to buy one galaxy (which is pretty efficient)
|
||||
const req = Galaxy.requirement;
|
||||
if (!req.isSatisfied) return false;
|
||||
const dim = NormalDimension(req.tier);
|
||||
const dim = AntimatterDimension(req.tier);
|
||||
const newGalaxies = Math.clampMax(
|
||||
Galaxy.buyableGalaxies(Math.round(dim.totalAmount.toNumber())),
|
||||
limit);
|
||||
|
|
|
@ -309,9 +309,9 @@ GameDatabase.reality.glyphEffects = [
|
|||
bitmaskIndex: 7,
|
||||
isGenerated: true,
|
||||
glyphTypes: ["dilation"],
|
||||
singleDesc: "Normal Dimension power +{value} while Dilated",
|
||||
totalDesc: "Normal Dimension multipliers ^{value} while Dilated",
|
||||
genericDesc: "Normal Dimensions ^x while Dilated",
|
||||
singleDesc: "Antimatter Dimension power +{value} while Dilated",
|
||||
totalDesc: "Antimatter Dimension multipliers ^{value} while Dilated",
|
||||
genericDesc: "Antimatter Dimensions ^x while Dilated",
|
||||
effect: (level, strength) => 1.1 + Math.pow(level, 0.7) * Math.pow(strength, 0.7) / 25,
|
||||
formatEffect: x => format(x, 2, 2),
|
||||
formatSingleEffect: x => format(x - 1, 2, 2),
|
||||
|
@ -465,14 +465,14 @@ GameDatabase.reality.glyphEffects = [
|
|||
isGenerated: true,
|
||||
glyphTypes: ["power"],
|
||||
singleDesc: () => (GlyphAlteration.isAdded("power")
|
||||
? "Normal Dimension power +{value}\n[and Antimatter Galaxy cost ×]{value2}"
|
||||
: "Normal Dimension power +{value}"),
|
||||
? "Antimatter Dimension power +{value}\n[and Antimatter Galaxy cost ×]{value2}"
|
||||
: "Antimatter Dimension power +{value}"),
|
||||
totalDesc: () => (GlyphAlteration.isAdded("power")
|
||||
? "ND multipliers ^{value} and galaxy cost x{value2}"
|
||||
: "Normal Dimension multipliers ^{value}"),
|
||||
? "AD multipliers ^{value} and galaxy cost x{value2}"
|
||||
: "Antimatter Dimension multipliers ^{value}"),
|
||||
genericDesc: () => (GlyphAlteration.isAdded("power")
|
||||
? "ND multipliers ^x and galaxy cost multiplier"
|
||||
: "Normal Dimension multipliers ^x"),
|
||||
? "AD multipliers ^x and galaxy cost multiplier"
|
||||
: "Antimatter Dimension multipliers ^x"),
|
||||
effect: (level, strength) => 1.015 + Math.pow(level, 0.2) * Math.pow(strength, 0.4) / 75,
|
||||
formatEffect: x => format(x, 3, 3),
|
||||
formatSingleEffect: x => format(x - 1, 3, 3),
|
||||
|
@ -486,7 +486,7 @@ GameDatabase.reality.glyphEffects = [
|
|||
bitmaskIndex: 17,
|
||||
isGenerated: true,
|
||||
glyphTypes: ["power"],
|
||||
singleDesc: "Normal Dimension multipliers ×{value}",
|
||||
singleDesc: "Antimatter Dimension multipliers ×{value}",
|
||||
effect: (level, strength) => (GlyphAlteration.isEmpowered("power")
|
||||
? Decimal.pow(11111, level * 220)
|
||||
: Decimal.pow(level * strength * 10, level * strength * 10)),
|
||||
|
|
|
@ -10,24 +10,21 @@ let player = {
|
|||
thisInfinityMaxAM: new Decimal(0),
|
||||
thisEternityMaxAM: new Decimal(0),
|
||||
dimensions: {
|
||||
normal: Array.range(0, 8).map(() => ({
|
||||
antimatter: Array.range(0, 8).map(() => ({
|
||||
bought: 0,
|
||||
costBumps: 0,
|
||||
amount: new Decimal(0),
|
||||
power: new Decimal(1)
|
||||
amount: new Decimal(0)
|
||||
})),
|
||||
infinity: Array.range(0, 8).map(tier => ({
|
||||
isUnlocked: false,
|
||||
bought: 0,
|
||||
amount: new Decimal(0),
|
||||
power: new Decimal(1),
|
||||
cost: new Decimal([1e8, 1e9, 1e10, 1e20, 1e140, 1e200, 1e250, 1e280][tier]),
|
||||
baseAmount: 0
|
||||
})),
|
||||
time: Array.range(0, 8).map(tier => ({
|
||||
cost: new Decimal([1, 5, 100, 1000, "1e2350", "1e2650", "1e3000", "1e3350"][tier]),
|
||||
amount: new Decimal(0),
|
||||
power: new Decimal(1),
|
||||
bought: 0
|
||||
}))
|
||||
},
|
||||
|
|
|
@ -431,7 +431,7 @@ function finishProcessReality(realityProps) {
|
|||
InfinityDimensions.fullReset();
|
||||
fullResetTimeDimensions();
|
||||
resetChallengeStuff();
|
||||
NormalDimensions.reset();
|
||||
AntimatterDimensions.reset();
|
||||
secondSoftReset();
|
||||
player.celestials.ra.peakGamespeed = 1;
|
||||
|
||||
|
@ -450,7 +450,7 @@ function finishProcessReality(realityProps) {
|
|||
player.infinityPoints = Player.startingIP;
|
||||
|
||||
if (RealityUpgrade(10).isBought) applyRUPG10();
|
||||
else Tab.dimensions.normal.show();
|
||||
else Tab.dimensions.antimatter.show();
|
||||
|
||||
Lazy.invalidateAll();
|
||||
EventHub.dispatch(GAME_EVENT.REALITY_RESET_AFTER);
|
||||
|
|
|
@ -9,19 +9,19 @@ class Sacrifice {
|
|||
|
||||
static get canSacrifice() {
|
||||
return DimBoost.totalBoosts > 4 && !EternityChallenge(3).isRunning && this.nextBoost.gt(1) &&
|
||||
NormalDimension(8).totalAmount.gt(0);
|
||||
AntimatterDimension(8).totalAmount.gt(0);
|
||||
}
|
||||
|
||||
static get disabledCondition() {
|
||||
if (EternityChallenge(3).isRunning) return "Eternity Challenge 3";
|
||||
if (DimBoost.totalBoosts <= DimBoost.maxShiftTier - 4) return "Requires a boost";
|
||||
if (NormalDimension(8).totalAmount.eq(0)) return "No 8th dimensions";
|
||||
if (AntimatterDimension(8).totalAmount.eq(0)) return "No 8th Dimensions";
|
||||
if (this.nextBoost.lte(1)) return `${formatX(1)} multiplier`;
|
||||
return "";
|
||||
}
|
||||
|
||||
static get nextBoost() {
|
||||
const nd1Amount = NormalDimension(1).amount;
|
||||
const nd1Amount = AntimatterDimension(1).amount;
|
||||
const sacrificed = player.sacrificed.clampMin(1);
|
||||
if (nd1Amount.eq(0)) return new Decimal(1);
|
||||
if (InfinityChallenge(2).isCompleted) {
|
||||
|
@ -90,15 +90,15 @@ function sacrificeReset(auto) {
|
|||
const nextBoost = Sacrifice.nextBoost;
|
||||
if (!auto) floatText(8, formatX(nextBoost, 2, 1));
|
||||
player.chall8TotalSacrifice = player.chall8TotalSacrifice.times(nextBoost);
|
||||
player.sacrificed = player.sacrificed.plus(NormalDimension(1).amount);
|
||||
player.sacrificed = player.sacrificed.plus(AntimatterDimension(1).amount);
|
||||
const isAch118Unlocked = Achievement(118).isUnlocked;
|
||||
if (NormalChallenge(8).isRunning) {
|
||||
if (!isAch118Unlocked) {
|
||||
NormalDimensions.reset();
|
||||
AntimatterDimensions.reset();
|
||||
}
|
||||
Currency.antimatter.reset();
|
||||
} else if (!isAch118Unlocked) {
|
||||
NormalDimensions.resetAmountUpToTier(NormalChallenge(12).isRunning ? 6 : 7);
|
||||
AntimatterDimensions.resetAmountUpToTier(NormalChallenge(12).isRunning ? 6 : 7);
|
||||
}
|
||||
player.noSacrifices = false;
|
||||
EventHub.dispatch(GAME_EVENT.SACRIFICE_RESET_AFTER);
|
||||
|
|
|
@ -4,53 +4,53 @@ GameDatabase.achievements.normal = [
|
|||
{
|
||||
id: 11,
|
||||
name: "You gotta start somewhere",
|
||||
tooltip: "Buy a 1st Dimension.",
|
||||
tooltip: "Buy a 1st Antimatter Dimension.",
|
||||
checkEvent: GAME_EVENT.ACHIEVEMENT_EVENT_OTHER,
|
||||
},
|
||||
{
|
||||
id: 12,
|
||||
name: "100 antimatter is a lot",
|
||||
tooltip: "Buy a 2nd Dimension.",
|
||||
tooltip: "Buy a 2nd Antimatter Dimension.",
|
||||
checkEvent: GAME_EVENT.ACHIEVEMENT_EVENT_OTHER,
|
||||
},
|
||||
{
|
||||
id: 13,
|
||||
name: "Half life 3 CONFIRMED",
|
||||
tooltip: "Buy a 3rd Dimension.",
|
||||
tooltip: "Buy a 3rd Antimatter Dimension.",
|
||||
checkEvent: GAME_EVENT.ACHIEVEMENT_EVENT_OTHER,
|
||||
},
|
||||
{
|
||||
id: 14,
|
||||
name: "L4D: Left 4 Dimensions",
|
||||
tooltip: "Buy a 4th Dimension.",
|
||||
tooltip: "Buy a 4th Antimatter Dimension.",
|
||||
checkEvent: GAME_EVENT.ACHIEVEMENT_EVENT_OTHER,
|
||||
},
|
||||
{
|
||||
id: 15,
|
||||
name: "5 Dimension Antimatter Punch",
|
||||
tooltip: "Buy a 5th Dimension.",
|
||||
tooltip: "Buy a 5th Antimatter Dimension.",
|
||||
checkEvent: GAME_EVENT.ACHIEVEMENT_EVENT_OTHER,
|
||||
},
|
||||
{
|
||||
id: 16,
|
||||
name: "We couldn't afford 9",
|
||||
tooltip: () => (Enslaved.isRunning
|
||||
? "Buy a 6th Dimension (they never amount to anything)"
|
||||
: "Buy a 6th Dimension."),
|
||||
? "Buy a 6th Antimatter Dimension (they never amount to anything)"
|
||||
: "Buy a 6th Antimatter Dimension."),
|
||||
checkEvent: GAME_EVENT.ACHIEVEMENT_EVENT_OTHER,
|
||||
},
|
||||
{
|
||||
id: 17,
|
||||
name: "Not a luck related achievement",
|
||||
tooltip: "Buy a 7th Dimension.",
|
||||
tooltip: "Buy a 7th Antimatter Dimension.",
|
||||
checkEvent: GAME_EVENT.ACHIEVEMENT_EVENT_OTHER,
|
||||
},
|
||||
{
|
||||
id: 18,
|
||||
name: "90 degrees to infinity",
|
||||
tooltip: () => (Enslaved.isRunning
|
||||
? "Buy an 8th Dimension (don't get used to it)"
|
||||
: "Buy an 8th Dimension."),
|
||||
? "Buy an 8th Antimatter Dimension (don't get used to it)"
|
||||
: "Buy an 8th Antimatter Dimension."),
|
||||
checkEvent: GAME_EVENT.ACHIEVEMENT_EVENT_OTHER,
|
||||
},
|
||||
{
|
||||
|
@ -72,9 +72,9 @@ GameDatabase.achievements.normal = [
|
|||
{
|
||||
id: 23,
|
||||
name: "The 9th Dimension is a lie",
|
||||
tooltip: () => `Have exactly ${formatInt(99)} 8th Dimensions.`,
|
||||
checkRequirement: () => NormalDimension(8).amount.eq(99),
|
||||
reward: () => `8th Dimensions are ${formatPercents(0.1)} stronger.`,
|
||||
tooltip: () => `Have exactly ${formatInt(99)} 8th Antimatter Dimensions.`,
|
||||
checkRequirement: () => AntimatterDimension(8).amount.eq(99),
|
||||
reward: () => `8th Antimatter Dimensions are ${formatPercents(0.1)} stronger.`,
|
||||
effect: 1.1
|
||||
},
|
||||
{
|
||||
|
@ -108,19 +108,19 @@ GameDatabase.achievements.normal = [
|
|||
{
|
||||
id: 28,
|
||||
name: "There's no point in doing that...",
|
||||
tooltip: () => `Buy a single 1st Dimension when you have over ${format(1e150)} of them.`,
|
||||
checkRequirement: () => NormalDimension(1).amount.exponent >= 150,
|
||||
tooltip: () => `Buy a single 1st Antimatter Dimension when you have over ${format(1e150)} of them.`,
|
||||
checkRequirement: () => AntimatterDimension(1).amount.exponent >= 150,
|
||||
checkEvent: GAME_EVENT.ACHIEVEMENT_EVENT_OTHER,
|
||||
reward: () => `1st Dimensions are ${formatPercents(0.1)} stronger.`,
|
||||
reward: () => `1st Antimatter Dimensions are ${formatPercents(0.1)} stronger.`,
|
||||
effect: 1.1
|
||||
},
|
||||
{
|
||||
id: 31,
|
||||
name: "I forgot to nerf that",
|
||||
tooltip: () => `Get any Dimension multiplier over ${format(1e31)}.`,
|
||||
checkRequirement: () => NormalDimensions.all.find(x => x.multiplier.exponent >= 31) !== undefined,
|
||||
tooltip: () => `Get any Antimatter Dimension multiplier over ${format(1e31)}.`,
|
||||
checkRequirement: () => AntimatterDimensions.all.find(x => x.multiplier.exponent >= 31) !== undefined,
|
||||
checkEvent: GAME_EVENT.GAME_TICK_AFTER,
|
||||
reward: () => `1st Dimensions are ${formatPercents(0.05)} stronger.`,
|
||||
reward: () => `1st Antimatter Dimensions are ${formatPercents(0.05)} stronger.`,
|
||||
effect: 1.05
|
||||
},
|
||||
{
|
||||
|
@ -142,8 +142,8 @@ GameDatabase.achievements.normal = [
|
|||
{
|
||||
id: 34,
|
||||
name: "You didn't need it anyway",
|
||||
tooltip: "Go Infinite without having any 8th Dimensions.",
|
||||
checkRequirement: () => NormalDimension(8).amount.eq(0),
|
||||
tooltip: "Go Infinite without having any 8th Antimatter Dimensions.",
|
||||
checkRequirement: () => AntimatterDimension(8).amount.eq(0),
|
||||
checkEvent: GAME_EVENT.BIG_CRUNCH_BEFORE,
|
||||
reward: () => `Dimensions 1-7 are ${formatPercents(0.02)} stronger.`,
|
||||
effect: 1.02
|
||||
|
@ -202,7 +202,7 @@ GameDatabase.achievements.normal = [
|
|||
tooltip: "Get to Infinity without Dimension shifts, boosts or Antimatter Galaxies in a challenge.",
|
||||
checkRequirement: () => player.galaxies === 0 && DimBoost.purchasedBoosts === 0 && NormalChallenge.isRunning,
|
||||
checkEvent: GAME_EVENT.BIG_CRUNCH_BEFORE,
|
||||
reward: () => `Dimensions 1-4 are ${formatPercents(0.25)} stronger.`,
|
||||
reward: () => `Antimatter Dimensions 1-4 are ${formatPercents(0.25)} stronger.`,
|
||||
effect: 1.25
|
||||
},
|
||||
{
|
||||
|
@ -220,14 +220,14 @@ GameDatabase.achievements.normal = [
|
|||
tooltip: () => `Get more than ${format(1e29)} ticks per second.`,
|
||||
checkRequirement: () => Tickspeed.current.exponent <= -26,
|
||||
checkEvent: GAME_EVENT.GAME_TICK_AFTER,
|
||||
reward: () => `Reduces starting tick interval by ${formatPercents(0.02)}.`,
|
||||
reward: () => `Multiply starting tickspeed by ${formatX(1.02, 0, 2)}.`,
|
||||
effect: 0.98
|
||||
},
|
||||
{
|
||||
id: 46,
|
||||
name: "Multidimensional",
|
||||
tooltip: () => `Reach ${format(1e12)} of all Dimensions except the 8th.`,
|
||||
checkRequirement: () => NormalDimension(7).amount.exponent >= 12,
|
||||
tooltip: () => `Reach ${format(1e12)} of all Antimatter Dimensions except the 8th.`,
|
||||
checkRequirement: () => AntimatterDimension(7).amount.exponent >= 12,
|
||||
checkEvent: GAME_EVENT.GAME_TICK_AFTER
|
||||
},
|
||||
{
|
||||
|
@ -291,17 +291,17 @@ GameDatabase.achievements.normal = [
|
|||
{
|
||||
id: 56,
|
||||
name: "Many Deaths",
|
||||
tooltip: () => `Complete the Second Dimension Autobuyer challenge in ${formatInt(3)} minutes or less.`,
|
||||
tooltip: () => `Complete the 2nd Antimatter Dimension Autobuyer challenge in ${formatInt(3)} minutes or less.`,
|
||||
checkRequirement: () => NormalChallenge(2).isRunning && Time.thisInfinityRealTime.totalMinutes <= 3,
|
||||
checkEvent: GAME_EVENT.BIG_CRUNCH_BEFORE,
|
||||
reward: () => `All Dimensions are stronger in the first ${formatInt(3)} minutes of Infinities.`,
|
||||
reward: () => `All Antimatter Dimensions are stronger in the first ${formatInt(3)} minutes of Infinities.`,
|
||||
effect: () => 6 / (Time.thisInfinity.totalMinutes + 3),
|
||||
effectCondition: () => Time.thisInfinity.totalMinutes < 3
|
||||
},
|
||||
{
|
||||
id: 57,
|
||||
name: "Gift from the Gods",
|
||||
tooltip: () => `Complete the Eighth Dimension Autobuyer challenge in ${formatInt(3)} minutes or less.`,
|
||||
tooltip: () => `Complete the 8th Antimatter Dimension Autobuyer challenge in ${formatInt(3)} minutes or less.`,
|
||||
checkRequirement: () => NormalChallenge(8).isRunning && Time.thisInfinityRealTime.totalMinutes <= 3,
|
||||
checkEvent: GAME_EVENT.BIG_CRUNCH_BEFORE,
|
||||
reward: "Dimensional sacrifices are a lot stronger.",
|
||||
|
@ -313,13 +313,13 @@ GameDatabase.achievements.normal = [
|
|||
tooltip: () => `Complete the Tickspeed Autobuyer challenge in ${formatInt(3)} minutes or less.`,
|
||||
checkRequirement: () => NormalChallenge(9).isRunning && Time.thisInfinityRealTime.totalMinutes <= 3,
|
||||
checkEvent: GAME_EVENT.BIG_CRUNCH_BEFORE,
|
||||
reward: () => `Boost per buying ${formatInt(10)} Dimensions +${formatPercents(0.01)}.`,
|
||||
reward: () => `Boost per buying ${formatInt(10)} Antimatter Dimensions +${formatPercents(0.01)}.`,
|
||||
effect: 1.01
|
||||
},
|
||||
{
|
||||
id: 61,
|
||||
name: "Bulked Up",
|
||||
tooltip: () => `Get all of your Dimension Autobuyer bulk amounts to ${formatInt(512)} or higher.`,
|
||||
tooltip: () => `Get all of your Antimatter Dimension Autobuyer bulk amounts to ${formatInt(512)} or higher.`,
|
||||
checkRequirement: () => Autobuyers.dimensions.countWhere(a => !a.isUnlocked || a.bulk < 512) === 0,
|
||||
checkEvent: [GAME_EVENT.REALITY_RESET_AFTER, GAME_EVENT.REALITY_UPGRADE_TEN_BOUGHT],
|
||||
reward: "Dimension Autobuyer bulks are unlimited."
|
||||
|
@ -351,7 +351,7 @@ GameDatabase.achievements.normal = [
|
|||
tooltip: () => `Get the sum of all of your challenge times under ${formatInt(3)} minutes.`,
|
||||
checkRequirement: () => Time.challengeSum.totalMinutes < 3,
|
||||
checkEvent: [GAME_EVENT.BIG_CRUNCH_AFTER, GAME_EVENT.REALITY_RESET_AFTER],
|
||||
reward: () => `All Dimensions are stronger in the first ${formatInt(3)} minutes of infinities,
|
||||
reward: () => `All Antimatter Dimensions are stronger in the first ${formatInt(3)} minutes of Infinities,
|
||||
but only in challenges.`,
|
||||
effect: () => Math.max(4 / (Time.thisInfinity.totalMinutes + 1), 1),
|
||||
effectCondition: () => (NormalChallenge.isRunning || InfinityChallenge.isRunning) &&
|
||||
|
@ -363,7 +363,7 @@ GameDatabase.achievements.normal = [
|
|||
tooltip: () => `Get more than ${format(1e58, 0, 0)} ticks per second.`,
|
||||
checkRequirement: () => Tickspeed.current.exponent <= -55,
|
||||
checkEvent: GAME_EVENT.GAME_TICK_AFTER,
|
||||
reward: () => `Reduces starting tick interval by ${formatPercents(0.02)}.`,
|
||||
reward: () => `Multiply starting tickspeed by ${formatX(1.02, 0, 2)}.`,
|
||||
effect: 0.98
|
||||
},
|
||||
{
|
||||
|
@ -376,34 +376,34 @@ GameDatabase.achievements.normal = [
|
|||
{
|
||||
id: 68,
|
||||
name: "You did this again just for the achievement right?",
|
||||
tooltip: () => `Complete the Third Dimension Autobuyer challenge in ${formatInt(10)} seconds or less.`,
|
||||
tooltip: () => `Complete the 3rd Antimatter Dimension Autobuyer challenge in ${formatInt(10)} seconds or less.`,
|
||||
checkRequirement: () => NormalChallenge(3).isRunning && Time.thisInfinityRealTime.totalSeconds <= 10,
|
||||
checkEvent: GAME_EVENT.BIG_CRUNCH_BEFORE,
|
||||
reward: () => `1st Dimensions are ${formatPercents(0.5)} stronger.`,
|
||||
reward: () => `1st Antimatter Dimensions are ${formatPercents(0.5)} stronger.`,
|
||||
effect: 1.5
|
||||
},
|
||||
{
|
||||
id: 71,
|
||||
name: "ERROR 909: Dimension not found",
|
||||
tooltip: "Get to Infinity with only a single 1st Dimension without Dimension Boosts/Shifts " +
|
||||
"or Antimatter Galaxies, while in the Second Dimension Autobuyer Challenge.",
|
||||
tooltip: "Get to Infinity with only a single 1st Antimatter Dimension without Dimension Boosts/Shifts " +
|
||||
"or Antimatter Galaxies, while in the 2nd Antimatter Dimension Autobuyer Challenge.",
|
||||
checkRequirement: () =>
|
||||
NormalChallenge(2).isRunning &&
|
||||
NormalDimension(1).amount.eq(1) &&
|
||||
AntimatterDimension(1).amount.eq(1) &&
|
||||
DimBoost.purchasedBoosts === 0 &&
|
||||
player.galaxies === 0,
|
||||
checkEvent: GAME_EVENT.BIG_CRUNCH_BEFORE,
|
||||
reward: () => `1st Dimensions are ${formatInt(3)} times stronger.`,
|
||||
reward: () => `1st Antimatter Dimensions are ${formatInt(3)} times stronger.`,
|
||||
effect: 3
|
||||
},
|
||||
{
|
||||
id: 72,
|
||||
name: "Can't hold all these infinities",
|
||||
tooltip: () => `Get all Dimension multipliers over ${format(1e308)}.`,
|
||||
tooltip: () => `Get all Antimatter Dimension multipliers over ${format(1e308)}.`,
|
||||
checkRequirement: () => Array.range(1, 8)
|
||||
.every(tier => NormalDimension(tier).multiplier.exponent >= 308),
|
||||
.every(tier => AntimatterDimension(tier).multiplier.exponent >= 308),
|
||||
checkEvent: GAME_EVENT.GAME_TICK_AFTER,
|
||||
reward: () => `All Dimensions are ${formatPercents(0.1)} stronger.`,
|
||||
reward: () => `All Antimatter Dimensions are ${formatPercents(0.1)} stronger.`,
|
||||
effect: 1.1
|
||||
},
|
||||
{
|
||||
|
@ -412,7 +412,7 @@ GameDatabase.achievements.normal = [
|
|||
tooltip: () => `Get ${formatPostBreak("9.9999e9999", 4, 0)} antimatter.`,
|
||||
checkRequirement: () => Currency.antimatter.gte("9.9999e9999"),
|
||||
checkEvent: GAME_EVENT.GAME_TICK_AFTER,
|
||||
reward: "Dimensions are stronger the more unspent antimatter you have.",
|
||||
reward: "Antimatter Dimensions are stronger the more unspent antimatter you have.",
|
||||
effect: () => Currency.antimatter.value.pow(0.00002).plus(1)
|
||||
},
|
||||
{
|
||||
|
@ -421,7 +421,7 @@ GameDatabase.achievements.normal = [
|
|||
tooltip: () => `Get the sum of all best challenge times under ${formatInt(5)} seconds.`,
|
||||
checkRequirement: () => Time.challengeSum.totalSeconds < 5,
|
||||
checkEvent: [GAME_EVENT.BIG_CRUNCH_AFTER, GAME_EVENT.REALITY_RESET_AFTER],
|
||||
reward: () => `All Dimensions are ${formatPercents(0.4)} stronger, but only in challenges.`,
|
||||
reward: () => `All Antimatter Dimensions are ${formatPercents(0.4)} stronger, but only in challenges.`,
|
||||
effect: 1.4,
|
||||
effectCondition: () => NormalChallenge.isRunning || InfinityChallenge.isRunning
|
||||
},
|
||||
|
@ -440,23 +440,25 @@ GameDatabase.achievements.normal = [
|
|||
tooltip: () => `Play for ${formatInt(8)} days.`,
|
||||
checkRequirement: () => Time.totalTimePlayed.totalDays >= 8,
|
||||
checkEvent: GAME_EVENT.GAME_TICK_AFTER,
|
||||
reward: "Extremely small multiplier to Dimensions based on time played.",
|
||||
reward: "Extremely small multiplier to Antimatter Dimensions based on time played.",
|
||||
effect: () => Math.pow(Time.totalTimePlayed.totalDays / 2, 0.05)
|
||||
},
|
||||
{
|
||||
id: 77,
|
||||
name: "How the antitables have turned..",
|
||||
tooltip: "Get the 8th Dimension multiplier to be highest, 7th Dimension multiplier second highest, etc.",
|
||||
tooltip:
|
||||
"Get the 8th Antimatter Dimension multiplier to be highest, 7th Antimatter Dimension multiplier " +
|
||||
" second highest, etc.",
|
||||
checkRequirement: () => {
|
||||
const multipliers = Array.range(1, 8).map(tier => NormalDimension(tier).multiplier);
|
||||
const multipliers = Array.range(1, 8).map(tier => AntimatterDimension(tier).multiplier);
|
||||
for (let i = 0; i < multipliers.length - 1; i++) {
|
||||
if (multipliers[i].gte(multipliers[i + 1])) return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
checkEvent: GAME_EVENT.GAME_TICK_AFTER,
|
||||
reward: () => "Each Dimension gains a boost proportional to tier " +
|
||||
`(8th Dimension gets ${formatPercents(0.08)}, 7th gets ${formatPercents(0.07)}, etc.)`,
|
||||
reward: () => "Each Antimatter Dimension gains a boost proportional to tier " +
|
||||
`(8th gets ${formatPercents(0.08)}, 7th gets ${formatPercents(0.07)}, etc.)`,
|
||||
},
|
||||
{
|
||||
id: 78,
|
||||
|
@ -464,8 +466,8 @@ GameDatabase.achievements.normal = [
|
|||
tooltip: () => `Get to Infinity in under ${formatInt(200)} milliseconds.`,
|
||||
checkRequirement: () => Time.thisInfinityRealTime.totalMilliseconds <= 200,
|
||||
checkEvent: GAME_EVENT.BIG_CRUNCH_BEFORE,
|
||||
reward: () => `Start with ${format(2e25, 0, 0)} antimatter ` +
|
||||
`and all Dimensions are stronger in the first ${formatInt(300)}ms of Infinities.`,
|
||||
reward: () => `Start with ${format(2e25, 0, 0)} antimatter and all ` +
|
||||
`Antimatter Dimensions are stronger in the first ${formatInt(300)}ms of Infinities.`,
|
||||
effects: {
|
||||
dimensionMult: {
|
||||
effect: () => 330 / (Time.thisInfinity.totalMilliseconds + 30),
|
||||
|
@ -503,7 +505,7 @@ GameDatabase.achievements.normal = [
|
|||
tooltip: () => `Reach ${formatPostBreak("1e35000", 0, 0)} antimatter.`,
|
||||
checkRequirement: () => Currency.antimatter.exponent >= 35000,
|
||||
checkEvent: GAME_EVENT.GAME_TICK_AFTER,
|
||||
reward: "Dimensions are stronger the more unspent antimatter you have.",
|
||||
reward: "Antimatter Dimensions are stronger the more unspent antimatter you have.",
|
||||
effect: () => Currency.antimatter.value.pow(0.00002).plus(1)
|
||||
},
|
||||
{
|
||||
|
@ -518,8 +520,8 @@ GameDatabase.achievements.normal = [
|
|||
{
|
||||
id: 86,
|
||||
name: "Do you even bend time bro?",
|
||||
tooltip: () => `Reach -${formatPercents(0.999, 1)} tickspeed per upgrade.`,
|
||||
checkRequirement: () => getTickSpeedMultiplier().lt(0.001),
|
||||
tooltip: () => `Reach ${formatX(999.9, 0, 1)} ticks/second per tickspeed upgrade.`,
|
||||
checkRequirement: () => Tickspeed.multiplier.recip().gte(999.9),
|
||||
checkEvent: GAME_EVENT.GAME_TICK_AFTER,
|
||||
reward: () => `Galaxies are ${formatPercents(0.01)} stronger.`,
|
||||
effect: 1.01
|
||||
|
@ -550,7 +552,7 @@ GameDatabase.achievements.normal = [
|
|||
tooltip: () => `Big Crunch for ${format(1e200, 0, 0)} IP in ${formatInt(2)} seconds or less.`,
|
||||
checkRequirement: () => gainedInfinityPoints().exponent >= 200 && Time.thisInfinityRealTime.totalSeconds <= 2,
|
||||
checkEvent: GAME_EVENT.BIG_CRUNCH_BEFORE,
|
||||
reward: () => `All Dimensions are significantly stronger in the
|
||||
reward: () => `All Antimatter Dimensions are significantly stronger in the
|
||||
first ${formatInt(5)} seconds of Infinities.`,
|
||||
effect: () => Math.max((5 - Time.thisInfinity.totalSeconds) * 60, 1),
|
||||
effectCondition: () => Time.thisInfinity.totalSeconds < 5
|
||||
|
@ -561,7 +563,7 @@ GameDatabase.achievements.normal = [
|
|||
tooltip: () => `Big Crunch for ${format(1e250, 0, 0)} IP in ${formatInt(20)} seconds or less.`,
|
||||
checkRequirement: () => gainedInfinityPoints().exponent >= 250 && Time.thisInfinityRealTime.totalSeconds <= 20,
|
||||
checkEvent: GAME_EVENT.BIG_CRUNCH_BEFORE,
|
||||
reward: () => `All Dimensions are significantly stronger in the
|
||||
reward: () => `All Antimatter Dimensions are significantly stronger in the
|
||||
first ${formatInt(60)} seconds of Infinities.`,
|
||||
effect: () => Math.max((1 - Time.thisInfinity.totalMinutes) * 100, 1),
|
||||
effectCondition: () => Time.thisInfinity.totalMinutes < 1
|
||||
|
@ -621,7 +623,7 @@ GameDatabase.achievements.normal = [
|
|||
tooltip: () => `Bulk buy ${formatInt(750)} Dimension Boosts at once.`,
|
||||
checkRequirement: ([bulk]) => bulk >= 750,
|
||||
checkEvent: GAME_EVENT.DIMBOOST_AFTER,
|
||||
reward: () => `Dimension Boosts are ${formatPercents(0.01)} stronger (to Normal Dimensions).`,
|
||||
reward: () => `Dimension Boosts are ${formatPercents(0.01)} stronger (to Antimatter Dimensions).`,
|
||||
effect: 1.01
|
||||
},
|
||||
{
|
||||
|
@ -742,7 +744,7 @@ GameDatabase.achievements.normal = [
|
|||
{
|
||||
id: 117,
|
||||
name: "8 nobody got time for that",
|
||||
tooltip: "Eternity without buying Dimensions 1-7.",
|
||||
tooltip: "Eternity without buying Antimatter Dimensions 1-7.",
|
||||
checkRequirement: () => player.onlyEighthDimensions,
|
||||
checkEvent: GAME_EVENT.ETERNITY_RESET_BEFORE
|
||||
},
|
||||
|
@ -752,7 +754,7 @@ GameDatabase.achievements.normal = [
|
|||
tooltip: () => `Get a total sacrifice multiplier of ${formatPostBreak("1e9000", 0, 0)}.`,
|
||||
checkRequirement: () => Sacrifice.totalBoost.exponent >= 9000,
|
||||
checkEvent: GAME_EVENT.SACRIFICE_RESET_AFTER,
|
||||
reward: "Sacrifice doesn't reset your Dimensions.",
|
||||
reward: "Sacrifice doesn't reset your Antimatter Dimensions.",
|
||||
},
|
||||
{
|
||||
id: 121,
|
||||
|
@ -764,7 +766,7 @@ GameDatabase.achievements.normal = [
|
|||
{
|
||||
id: 122,
|
||||
name: "You're already dead.",
|
||||
tooltip: "Eternity without buying Dimensions 2-8.",
|
||||
tooltip: "Eternity without buying Antimatter Dimensions 2-8.",
|
||||
checkRequirement: () => player.onlyFirstDimensions,
|
||||
checkEvent: GAME_EVENT.ETERNITY_RESET_BEFORE
|
||||
},
|
||||
|
@ -786,7 +788,7 @@ GameDatabase.achievements.normal = [
|
|||
id: 125,
|
||||
name: "Like feasting on a behind",
|
||||
tooltip: () => `Reach ${format(1e90, 0, 0)} IP without having any Infinities ` +
|
||||
"or buying any 1st Dimensions in your current Eternity.",
|
||||
"or buying any 1st Antimatter Dimensions in your current Eternity.",
|
||||
checkRequirement: () => player.infinityPoints.exponent >= 90 &&
|
||||
player.noFirstDimensions && player.infinitied.eq(0),
|
||||
checkEvent: GAME_EVENT.GAME_TICK_AFTER,
|
||||
|
@ -905,7 +907,7 @@ GameDatabase.achievements.normal = [
|
|||
checkRequirement: () => true,
|
||||
checkEvent: GAME_EVENT.REALITY_RESET_BEFORE,
|
||||
reward: () => `${formatX(4)} IP gain, and boost from
|
||||
buying ${formatInt(10)} Dimensions +${format(0.1, 0, 1)}.`,
|
||||
buying ${formatInt(10)} Antimatter Dimensions +${format(0.1, 0, 1)}.`,
|
||||
effects: {
|
||||
ipGain: 4,
|
||||
buyTenMult: 0.1
|
||||
|
@ -980,7 +982,7 @@ GameDatabase.achievements.normal = [
|
|||
id: 151,
|
||||
name: "You really didn't need it anyway",
|
||||
tooltip: () => `Get ${formatInt(800)} Antimatter Galaxies without
|
||||
buying 8th Dimensions in your current Infinity.`,
|
||||
buying 8th Antimatter Dimensions in your current Infinity.`,
|
||||
checkRequirement: () => player.galaxies >= 800 && player.noEighthDimensions,
|
||||
checkEvent: GAME_EVENT.GALAXY_RESET_AFTER,
|
||||
reward: "Unlock V, the Celestial of Achievements."
|
||||
|
|
|
@ -12,7 +12,7 @@ GameDatabase.celestials.alchemy = {
|
|||
uiOrder: 1,
|
||||
isUnlocked: () => Ra.pets.effarig.level >= 2,
|
||||
lockText: "Effarig Level 2",
|
||||
formatEffect: value => `Normal Dimensions ${formatPow(value, 4, 4)}`
|
||||
formatEffect: value => `Antimatter Dimension multipliers ${formatPow(value, 4, 4)}`
|
||||
},
|
||||
[ALCHEMY_RESOURCE.INFINITY]: {
|
||||
name: "Infinity",
|
||||
|
@ -23,7 +23,7 @@ GameDatabase.celestials.alchemy = {
|
|||
uiOrder: 2,
|
||||
isUnlocked: () => Ra.pets.effarig.level >= 3,
|
||||
lockText: "Effarig Level 3",
|
||||
formatEffect: value => `Infinity Dimensions ${formatPow(value, 4, 4)}`
|
||||
formatEffect: value => `Infinity Dimension multipliers ${formatPow(value, 4, 4)}`
|
||||
},
|
||||
[ALCHEMY_RESOURCE.TIME]: {
|
||||
name: "Time",
|
||||
|
@ -34,7 +34,7 @@ GameDatabase.celestials.alchemy = {
|
|||
uiOrder: 3,
|
||||
isUnlocked: () => Ra.pets.effarig.level >= 4,
|
||||
lockText: "Effarig Level 4",
|
||||
formatEffect: value => `Time Dimensions ${formatPow(value, 4, 4)}`
|
||||
formatEffect: value => `Time Dimension multipliers ${formatPow(value, 4, 4)}`
|
||||
},
|
||||
[ALCHEMY_RESOURCE.REPLICATION]: {
|
||||
name: "Replication",
|
||||
|
@ -133,7 +133,7 @@ GameDatabase.celestials.alchemy = {
|
|||
uiOrder: 5,
|
||||
isUnlocked: () => Ra.pets.effarig.level >= 11,
|
||||
lockText: "Effarig Level 11",
|
||||
formatEffect: value => `${formatPow(1.05, 2, 2)} for normal dimension multipliers above ${format(value)}`,
|
||||
formatEffect: value => `${formatPow(1.05, 2, 2)} for Antimatter Dimension multipliers above ${format(value)}`,
|
||||
reagents: [
|
||||
{
|
||||
resource: ALCHEMY_RESOURCE.POWER,
|
||||
|
@ -292,7 +292,7 @@ GameDatabase.celestials.alchemy = {
|
|||
uiOrder: 2,
|
||||
isUnlocked: () => Ra.pets.effarig.level >= 17,
|
||||
lockText: "Effarig Level 17",
|
||||
formatEffect: value => `Multiply normal dimensions by RM${formatPow(value, 2, 2)}`,
|
||||
formatEffect: value => `Multiply Antimatter Dimensions by RM${formatPow(value, 2, 2)}`,
|
||||
reagents: [
|
||||
{
|
||||
resource: ALCHEMY_RESOURCE.DIMENSIONALITY,
|
||||
|
|
|
@ -33,8 +33,8 @@ GameDatabase.celestials.enslaved = {
|
|||
},
|
||||
c10: {
|
||||
id: 4,
|
||||
progress: "Gained some Antimatter Galaxies using 6th dimensions",
|
||||
hint: "Is there a way to get Antimatter Galaxies without 8th Dimensions?",
|
||||
progress: "Gained some Antimatter Galaxies using 6th Antimatter Dimensions",
|
||||
hint: "Is there a way to get Antimatter Galaxies without 8th Antimatter Dimensions?",
|
||||
condition: "Used Challenge 10 to get more than one Antimatter Galaxy",
|
||||
},
|
||||
secretStudy: {
|
||||
|
|
|
@ -514,13 +514,13 @@ GameDatabase.celestials.navigation = (function() {
|
|||
if (complete >= 1) return [
|
||||
"V's achievement",
|
||||
`Reach ${formatInt(goal)} Antimatter Galaxies without buying`,
|
||||
"8th Dimensions in your current Infinity"
|
||||
"8th Antimatter Dimensions in your current Infinity"
|
||||
];
|
||||
const galaxies = player.noEighthDimensions ? player.galaxies : 0;
|
||||
return [
|
||||
"V's achievement",
|
||||
`Reach ${formatInt(galaxies)} / ${formatInt(goal)} Antimatter Galaxies without buying`,
|
||||
"8th Dimensions in your current Infinity"
|
||||
"8th Antimatter Dimensions in your current Infinity"
|
||||
];
|
||||
},
|
||||
angle: -135,
|
||||
|
|
|
@ -176,9 +176,8 @@ GameDatabase.celestials.v = {
|
|||
id: 4,
|
||||
STCost: 12,
|
||||
requirement: [227, 228, 234],
|
||||
description: "Sacrifice boosts all normal dimensions.",
|
||||
description: "Sacrifice applies to all Antimatter Dimensions",
|
||||
effect: () => Sacrifice.totalBoost,
|
||||
formatEffect: value => formatX(value, 2, 1),
|
||||
unlocked: () => Ra.pets.v.level >= 20
|
||||
}
|
||||
]
|
||||
|
|
|
@ -79,7 +79,7 @@ GameDatabase.challenges.eternity = [
|
|||
goal: new Decimal("1e850"),
|
||||
goalIncrease: new Decimal("1e250"),
|
||||
reward: {
|
||||
description: "Reduce Normal Dimension cost multiplier growth",
|
||||
description: "Reduce Antimatter Dimension cost multiplier growth",
|
||||
effect: completions => completions * 0.2,
|
||||
formatEffect: value => {
|
||||
const base = Math.round(Player.dimensionMultDecrease + Effects.sum(EternityChallenge(6).reward));
|
||||
|
@ -91,7 +91,7 @@ GameDatabase.challenges.eternity = [
|
|||
{
|
||||
id: 7,
|
||||
description: "1st Time Dimension produces 8th Infinity Dimension, and 1st Infinity Dimension " +
|
||||
"produces 7th Dimensions. Tickspeed affects all dimensions normally.",
|
||||
"produces 7th Dimensions. Tickspeed affects all Dimensions normally.",
|
||||
goal: new Decimal("1e2000"),
|
||||
goalIncrease: new Decimal("1e530"),
|
||||
reward: {
|
||||
|
@ -132,7 +132,7 @@ GameDatabase.challenges.eternity = [
|
|||
id: 10,
|
||||
description: () => {
|
||||
let description = `Time Dimensions and Infinity Dimensions are disabled. You gain an immense boost from
|
||||
Infinitied stat to normal dimensions (infinitied^${formatInt(950)}).`;
|
||||
Infinitied stat to Antimatter Dimensions (infinitied^${formatInt(950)}).`;
|
||||
EternityChallenge(10).applyEffect(v => description += ` Currently: ${formatX(v, 2, 1)}`);
|
||||
return description;
|
||||
},
|
||||
|
@ -151,7 +151,7 @@ GameDatabase.challenges.eternity = [
|
|||
{
|
||||
id: 11,
|
||||
description: "All dimension multipliers and powers are disabled except for the multipliers from " +
|
||||
"Infinity Power and Dimension Boosts (to normal dimensions).",
|
||||
"Infinity Power and Dimension Boosts (to Antimatter Dimensions).",
|
||||
goal: new Decimal("1e500"),
|
||||
goalIncrease: new Decimal("1e200"),
|
||||
reward: {
|
||||
|
|
|
@ -15,7 +15,7 @@ GameDatabase.challenges.infinity = [
|
|||
},
|
||||
{
|
||||
id: 2,
|
||||
description: () => `Automatically sacrifice every ${formatInt(8)} ticks once you have an 8th Dimension.`,
|
||||
description: () => `Automatically sacrifice every ${formatInt(8)} ticks once you have an 8th Antimatter Dimension.`,
|
||||
goal: new Decimal("1e10500"),
|
||||
isQuickResettable: false,
|
||||
reward: {
|
||||
|
@ -26,13 +26,13 @@ GameDatabase.challenges.infinity = [
|
|||
{
|
||||
id: 3,
|
||||
description: "Tickspeed interval decrease is always 0%. For every tickspeed purchase, you instead get a static " +
|
||||
"multiplier on all normal dimensions which increases with Antimatter Galaxies.",
|
||||
"multiplier on all Antimatter Dimensions which increases with Antimatter Galaxies.",
|
||||
goal: new Decimal("1e5000"),
|
||||
isQuickResettable: false,
|
||||
effect: () => Decimal.pow(1.05 + (player.galaxies * 0.005), player.totalTickBought),
|
||||
formatEffect: value => formatX(value, 2, 2),
|
||||
reward: {
|
||||
description: "Static multiplier on each tickspeed purchase based on Antimatter Galaxies",
|
||||
description: "Antimatter Dimension multiplier based on Antimatter Galaxies and tickspeed purchases",
|
||||
effect: () => Decimal.pow(1.05 + (player.galaxies * 0.005), player.totalTickBought),
|
||||
formatEffect: value => formatX(value, 2, 2),
|
||||
},
|
||||
|
@ -40,22 +40,24 @@ GameDatabase.challenges.infinity = [
|
|||
},
|
||||
{
|
||||
id: 4,
|
||||
description: () => `Only the latest bought dimension's production is normal, all other dimensions produce less
|
||||
(${formatPow(0.25, 2, 2)}).`,
|
||||
description:
|
||||
() => `Only the latest bought Antimatter Dimension's production is normal, all other Antimatter Dimensions
|
||||
produce less (${formatPow(0.25, 2, 2)}).`,
|
||||
goal: new Decimal("1e13000"),
|
||||
isQuickResettable: true,
|
||||
effect: 0.25,
|
||||
reward: {
|
||||
description: () => `All normal dimension multipliers become multiplier${formatPow(1.05, 2, 2)}`,
|
||||
description: () => `All Antimatter Dimension multipliers become multiplier${formatPow(1.05, 2, 2)}`,
|
||||
effect: 1.05
|
||||
},
|
||||
unlockAM: new Decimal("1e14000"),
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
description: "When buying dimensions 1-4, dimensions with costs smaller or equal increase in cost. " +
|
||||
"When buying dimensions 5-8, dimensions with costs larger or equal increase in cost. " +
|
||||
"When buying tickspeed, dimensions with the same cost increase.",
|
||||
description:
|
||||
"When buying Antimatter Dimensions 1-4, Antimatter Dimensions with costs smaller or equal increase in cost. " +
|
||||
"When buying Antimatter Dimensions 5-8, Antimatter Dimensions with costs larger or equal increase in cost. " +
|
||||
"When buying tickspeed, Antimatter Dimensions with the same cost increase.",
|
||||
goal: new Decimal("1e16500"),
|
||||
isQuickResettable: true,
|
||||
reward: {
|
||||
|
@ -67,8 +69,8 @@ GameDatabase.challenges.infinity = [
|
|||
},
|
||||
{
|
||||
id: 6,
|
||||
description: () => `Once you have at least ${formatInt(1)} 2nd Dimension, exponentially rising matter
|
||||
divides the multiplier on all of your dimensions.`,
|
||||
description: () => `Once you have at least ${formatInt(1)} 2nd Antimatter Dimension, exponentially rising matter
|
||||
divides the multiplier on all of your Antimatter Dimensions.`,
|
||||
goal: new Decimal("2e22222"),
|
||||
isQuickResettable: true,
|
||||
effect: () => player.matter.clampMin(1),
|
||||
|
@ -101,8 +103,9 @@ GameDatabase.challenges.infinity = [
|
|||
effect: () => Decimal.pow(0.8446303389034288,
|
||||
Math.max(0, player.thisInfinityTime - player.thisInfinityLastBuyTime)),
|
||||
reward: {
|
||||
description: "You get a multiplier to Dimensions 2-7 based on 1st and 8th Dimension multipliers.",
|
||||
effect: () => NormalDimension(1).multiplier.times(NormalDimension(8).multiplier).pow(0.02),
|
||||
description:
|
||||
"You get a multiplier to Antimatter Dimensions 2-7 based on 1st and 8th Antimatter Dimension multipliers.",
|
||||
effect: () => AntimatterDimension(1).multiplier.times(AntimatterDimension(8).multiplier).pow(0.02),
|
||||
formatEffect: value => formatX(value, 2, 2)
|
||||
},
|
||||
unlockAM: new Decimal("1e28000"),
|
||||
|
|
|
@ -6,84 +6,87 @@ GameDatabase.challenges.normal = [
|
|||
legacyId: 1,
|
||||
isQuickResettable: false,
|
||||
description: "Reach Infinity for the first time.",
|
||||
name: "First Dimension Autobuyer",
|
||||
reward: "Upgradeable First Dimension Autobuyer interval"
|
||||
name: "1st Antimatter Dimension Autobuyer",
|
||||
reward: "Upgradeable 1st Antimatter Dimension Autobuyer"
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
legacyId: 2,
|
||||
isQuickResettable: false,
|
||||
description: () => `Buying anything halts your production, gradually coming back over ${formatInt(3)} minutes.`,
|
||||
name: "Second Dimension Autobuyer",
|
||||
reward: "Upgradeable Second Dimension Autobuyer interval"
|
||||
description:
|
||||
() => "Buying Antimatter Dimensions or tickspeed halts your production, " +
|
||||
`gradually coming back over ${formatInt(3)} minutes.`,
|
||||
name: "2nd Antimatter Dimension Autobuyer",
|
||||
reward: "Upgradeable 2nd Antimatter Dimension Autobuyer"
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
legacyId: 3,
|
||||
isQuickResettable: false,
|
||||
description: "The 1st Dimension is heavily weakened but gets " +
|
||||
description: "The 1st Antimatter Dimension is heavily weakened, but gets " +
|
||||
"an exponentially increasing bonus that resets on reset.",
|
||||
name: "Third Dimension Autobuyer",
|
||||
reward: "Upgradeable Third Dimension Autobuyer interval"
|
||||
name: "3rd Antimatter Dimension",
|
||||
reward: "Upgradeable 3rd Antimatter Dimension Autobuyer"
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
legacyId: 8,
|
||||
isQuickResettable: false,
|
||||
description: "Buying a dimension automatically erases all lower tier dimensions, " +
|
||||
description: "Buying an Antimatter Dimension automatically erases all lower tier Antimatter Dimensions, " +
|
||||
"like a sacrifice without the boost.",
|
||||
name: "Fourth Dimension Autobuyer",
|
||||
reward: "Upgradeable Fourth Dimension Autobuyer interval"
|
||||
name: "4th Antimatter Dimension Autobuyer",
|
||||
reward: "Upgradeable 4th Antimatter Dimension Autobuyer"
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
legacyId: 6,
|
||||
isQuickResettable: false,
|
||||
description: () => `Tickspeed starts at ${formatX(1.080, 0, 3)}.`,
|
||||
name: "Fifth Dimension Autobuyer",
|
||||
reward: "Upgradeable Fifth Dimension Autobuyer interval"
|
||||
name: "5th Antimatter Dimension Autobuyer",
|
||||
reward: "Upgradeable 5th Antimatter Dimension Autobuyer"
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
legacyId: 10,
|
||||
isQuickResettable: false,
|
||||
description: () => `Each dimension costs the dimension ${formatInt(2)} before it, ` +
|
||||
"instead of antimatter. Dimension prices are modified.",
|
||||
name: "Sixth Dimension Autobuyer",
|
||||
reward: "Upgradeable Sixth Dimension Autobuyer interval"
|
||||
description: () => `Each Antimatter Dimension costs the dimension ${formatInt(2)} dimensions below it, ` +
|
||||
"instead of antimatter. Antimatter Dimension prices are modified.",
|
||||
name: "6th Antimatter Dimension Autobuyer",
|
||||
reward: "Upgradeable 6th Antimatter Dimension Autobuyer"
|
||||
},
|
||||
{
|
||||
id: 7,
|
||||
legacyId: 9,
|
||||
isQuickResettable: false,
|
||||
description: () => `The multiplier from buying ${formatInt(10)} dimensions is reduced to ${formatX(1)}, ` +
|
||||
`but is increased by ${formatX(0.2, 1, 1)} per Dimension Shift/Boost, up to a maximum of ${formatX(2)}.`,
|
||||
name: "Seventh Dimension Autobuyer",
|
||||
reward: "Upgradeable Seventh Dimension Autobuyer interval"
|
||||
description: () => `The multiplier from buying ${formatInt(10)} Antimatter Dimensions is reduced ` +
|
||||
`to ${formatX(1)}, but is increased by ${formatX(0.2, 1, 1)} per Dimension Shift/Boost, ` +
|
||||
`up to a maximum of ${formatX(2)}.`,
|
||||
name: "7th Antimatter Dimension Autobuyer",
|
||||
reward: "Upgradeable 7th Antimatter Dimension Autobuyer"
|
||||
},
|
||||
{
|
||||
id: 8,
|
||||
legacyId: 11,
|
||||
isQuickResettable: false,
|
||||
description: "Dimension Boosts and galaxies are useless, " +
|
||||
"sacrifice is immensely stronger but resets everything except tickspeed.",
|
||||
name: "Eighth Dimension Autobuyer",
|
||||
reward: "Upgradeable Eighth Dimension Autobuyer interval"
|
||||
description: "Dimension Boosts and galaxies are useless, but " +
|
||||
"sacrifice is immensely stronger and resets everything except tickspeed.",
|
||||
name: "8th Antimatter Dimension Autobuyer",
|
||||
reward: "Upgradeable 8th Antimatter Dimension Autobuyer"
|
||||
},
|
||||
{
|
||||
id: 9,
|
||||
legacyId: 5,
|
||||
isQuickResettable: true,
|
||||
description: () => `Whenever you buy ${formatInt(10)} of a dimension or tickspeed, ` +
|
||||
description: () => `Whenever you buy tickspeed, or ${formatInt(10)} of an Antimatter Dimension, ` +
|
||||
"everything else of equal cost will increase to its next cost step.",
|
||||
name: "Tickspeed Autobuyer",
|
||||
reward: "Upgradeable Tickspeed Autobuyer interval"
|
||||
reward: "Upgradeable Tickspeed Autobuyer"
|
||||
},
|
||||
{
|
||||
id: 10,
|
||||
legacyId: 4,
|
||||
isQuickResettable: false,
|
||||
description: () => `There are only ${formatInt(6)} dimensions, with Dimension Boost ` +
|
||||
description: () => `There are only ${formatInt(6)} Antimatter Dimensions, with Dimension Boost ` +
|
||||
"and Antimatter Galaxy costs modified.",
|
||||
name: "Automated Dimension Boosts",
|
||||
reward: "Automated Dimension Boosts"
|
||||
|
@ -92,8 +95,8 @@ GameDatabase.challenges.normal = [
|
|||
id: 11,
|
||||
legacyId: 12,
|
||||
isQuickResettable: true,
|
||||
description: () => `There's normal matter which rises once you have at least ${formatInt(1)} 2nd Dimension. ` +
|
||||
"If it exceeds your antimatter, it will Dimension Boost without giving the bonus.",
|
||||
description: () => `There's normal matter which rises once you have at least ${formatInt(1)} 2nd Antimatter ` +
|
||||
"Dimension. If it exceeds your antimatter, it will Dimension Boost without giving the bonus.",
|
||||
name: "Automated Antimatter Galaxies",
|
||||
reward: "Automated Antimatter Galaxies"
|
||||
},
|
||||
|
@ -101,8 +104,9 @@ GameDatabase.challenges.normal = [
|
|||
id: 12,
|
||||
legacyId: 7,
|
||||
isQuickResettable: false,
|
||||
description: () => `Each dimension produces the dimension ${formatInt(2)} below it (1st Dimensions still ` +
|
||||
"produce antimatter). Dimensions 2, 4, and 6 are made stronger to compensate.",
|
||||
description: () => `Each Antimatter Dimension produces the dimension ${formatInt(2)} dimensions below it (1st ` +
|
||||
"Antimatter Dimensions still produce antimatter). The 2nd, 4th, and 6th Antimatter Dimensions " +
|
||||
"are made stronger to compensate.",
|
||||
name: "Automated Big Crunches",
|
||||
reward: "Automated Big Crunches"
|
||||
}
|
||||
|
|
|
@ -95,7 +95,7 @@ GameDatabase.eternity.dilation = (function() {
|
|||
ndMultDT: {
|
||||
id: 6,
|
||||
cost: 5e7,
|
||||
description: "Normal Dimension multiplier based on Dilated Time, unaffected by Time Dilation.",
|
||||
description: "Antimatter Dimension multiplier based on Dilated Time, unaffected by Time Dilation.",
|
||||
effect: () => player.dilation.dilatedTime.pow(308).clampMin(1),
|
||||
formatEffect: value => formatX(value, 2, 1)
|
||||
},
|
||||
|
|
|
@ -83,7 +83,7 @@ GameDatabase.eternity.milestones = {
|
|||
},
|
||||
unlockAllND: {
|
||||
eternities: 30,
|
||||
reward: "Start with all Normal Dimensions available for purchase"
|
||||
reward: "Start with all Antimatter Dimensions available for purchase"
|
||||
},
|
||||
autobuyerReplicantiChance: {
|
||||
eternities: 40,
|
||||
|
|
|
@ -25,8 +25,8 @@ GameDatabase.eternity.timeStudies.ec = [
|
|||
id: 3,
|
||||
cost: 40,
|
||||
requirement: {
|
||||
resource: "8th Dimensions",
|
||||
current: () => NormalDimension(8).amount,
|
||||
resource: "8th Antimatter Dimensions",
|
||||
current: () => AntimatterDimension(8).amount,
|
||||
required: completions => new Decimal(17300 + completions * 1250),
|
||||
formatValue: value => formatInt(Math.floor(value.toNumber()))
|
||||
}
|
||||
|
|
|
@ -115,7 +115,7 @@ GameDatabase.eternity.timeStudies.normal = (function() {
|
|||
if (TimeStudy(201).isBought) return rowCount < 2;
|
||||
return rowCount === 0;
|
||||
},
|
||||
description: "Sacrifice affects all other Normal Dimensions with reduced effect",
|
||||
description: "Sacrifice affects all other Antimatter Dimensions with reduced effect",
|
||||
effect: () => Sacrifice.totalBoost.pow(0.25).clampMin(1),
|
||||
cap: new Decimal("1e210000"),
|
||||
formatEffect: value => formatX(value, 2, 1)
|
||||
|
@ -182,7 +182,7 @@ GameDatabase.eternity.timeStudies.normal = (function() {
|
|||
id: 91,
|
||||
cost: 4,
|
||||
requirement: 81,
|
||||
description: "Normal Dimension multiplier based on time spent in this Eternity",
|
||||
description: "Antimatter Dimension multiplier based on time spent in this Eternity",
|
||||
effect: () => Decimal.pow10(Math.min(Time.thisEternity.totalMinutes, 20) * 15),
|
||||
cap: new Decimal("1e300"),
|
||||
formatEffect: value => formatX(value, 2, 1)
|
||||
|
@ -208,7 +208,7 @@ GameDatabase.eternity.timeStudies.normal = (function() {
|
|||
id: 101,
|
||||
cost: 4,
|
||||
requirement: 91,
|
||||
description: "Normal Dimension multiplier equal to Replicanti amount",
|
||||
description: "Antimatter Dimension multiplier equal to Replicanti amount",
|
||||
effect: () => Decimal.max(player.replicanti.amount, 1),
|
||||
formatEffect: value => formatX(value, 2, 1)
|
||||
},
|
||||
|
@ -362,7 +362,7 @@ GameDatabase.eternity.timeStudies.normal = (function() {
|
|||
id: 161,
|
||||
cost: 7,
|
||||
requirement: 151,
|
||||
description: () => `${formatX("1e616", 0, 0)} multiplier on all Normal Dimensions`,
|
||||
description: () => `${formatX("1e616", 0, 0)} multiplier on all Antimatter Dimensions`,
|
||||
effect: () => new Decimal("1e616")
|
||||
},
|
||||
{
|
||||
|
@ -409,7 +409,7 @@ GameDatabase.eternity.timeStudies.normal = (function() {
|
|||
id: 193,
|
||||
cost: 300,
|
||||
requirement: () => TimeStudy(181).isBought && EternityChallenge(10).completions > 0,
|
||||
description: "Normal Dimension boost based on Eternities",
|
||||
description: "Antimatter Dimension multiplier based on Eternities",
|
||||
// This effect is a bit wonky because 1.0285^eternities doesn't even fit in break_infinity once you have a bit
|
||||
// past e308 eternities, and once this threshold is passed the formula actually just returns zero. Rewriting it
|
||||
// to have an explicit conditional makes sure that this doesn't happen; in practice the cap hits just past 1e6.
|
||||
|
@ -453,7 +453,7 @@ GameDatabase.eternity.timeStudies.normal = (function() {
|
|||
id: 214,
|
||||
cost: 120,
|
||||
requirement: 193,
|
||||
description: "Sacrifice boosts the 8th Dimension even more",
|
||||
description: "Sacrifice boosts the 8th Antimatter Dimension even more",
|
||||
effect: () => {
|
||||
const totalBoost = Sacrifice.totalBoost;
|
||||
const firstPart = totalBoost.pow(7.6).clampMaxExponent(44000);
|
||||
|
@ -581,9 +581,8 @@ GameDatabase.eternity.timeStudies.normal = (function() {
|
|||
STCost: 5,
|
||||
requirement: () => (TimeStudy(227).isBought || TimeStudy(228).isBought) && !TimeStudy(233).isBought,
|
||||
requirementV: () => (TimeStudy(227).isBought || TimeStudy(228).isBought) && TimeStudy(233).isBought,
|
||||
description: "Sacrifice boosts First Dimension",
|
||||
description: "Sacrifice applies to 1st Antimatter Dimension",
|
||||
effect: () => Sacrifice.totalBoost,
|
||||
formatEffect: value => formatX(value, 0, 0)
|
||||
},
|
||||
];
|
||||
}());
|
||||
|
|
|
@ -55,11 +55,11 @@ first Dimension until it can't anymore, then second, and so on.
|
|||
<br>
|
||||
<br>
|
||||
<b>Dimension base prices:</b> ${Array.range(1, 8)
|
||||
.map(tier => format(NormalDimension(tier)._baseCost, 2, 2))
|
||||
.map(tier => format(AntimatterDimension(tier)._baseCost, 2, 2))
|
||||
.join(", ")}
|
||||
<br>
|
||||
<b>Base per ${formatInt(10)} bought dimension price increases:</b> ${Array.range(1, 8)
|
||||
.map(tier => format(NormalDimension(tier)._baseCostMultiplier, 2, 2))
|
||||
.map(tier => format(AntimatterDimension(tier)._baseCostMultiplier, 2, 2))
|
||||
.join(", ")}
|
||||
<br>
|
||||
<br>
|
||||
|
@ -68,8 +68,8 @@ first Dimension until it can't anymore, then second, and so on.
|
|||
${formatInt(1)} instead of ${formatInt(10)}), <b>M</b> for Max all
|
||||
`,
|
||||
isUnlocked: () => true,
|
||||
tags: ["dims", "normal", "antimatter", "nd"],
|
||||
tab: "dimensions/normal"
|
||||
tags: ["dims", "normal", "antimatter", "ad"],
|
||||
tab: "dimensions/antimatter"
|
||||
}, {
|
||||
name: "Tickspeed",
|
||||
info: () => `
|
||||
|
@ -95,7 +95,7 @@ in the Options tab.
|
|||
`,
|
||||
isUnlocked: () => Tickspeed.isUnlocked,
|
||||
tags: ["dimension", "earlygame", "time"],
|
||||
tab: "dimensions/normal"
|
||||
tab: "dimensions/antimatter"
|
||||
}, {
|
||||
name: "Dimension Shift/Boost",
|
||||
info: () => `
|
||||
|
@ -118,7 +118,7 @@ the Second Dimension ${formatX(4)}, the Third Dimension ${formatX(2)}, and all o
|
|||
`,
|
||||
isUnlocked: () => true,
|
||||
tags: ["dimboost", "dimshift", "reset", "earlygame"],
|
||||
tab: "dimensions/normal"
|
||||
tab: "dimensions/antimatter"
|
||||
}, {
|
||||
name: "Antimatter Galaxies",
|
||||
info: () => `
|
||||
|
@ -145,7 +145,7 @@ ${formatPercents(0.002, 1)} per Galaxy, on top of Distant scaling.
|
|||
`,
|
||||
isUnlocked: () => true,
|
||||
tags: ["8th", "reset", "earlygame"],
|
||||
tab: "dimensions/normal"
|
||||
tab: "dimensions/antimatter"
|
||||
}, {
|
||||
name: "Dimensional Sacrifice",
|
||||
info: () => `
|
||||
|
@ -167,7 +167,7 @@ ${formatX(8)} then ${formatX(5)}; in both cases you will end up with a total sac
|
|||
`,
|
||||
isUnlocked: () => Sacrifice.isVisible,
|
||||
tags: ["8th", "reset", "earlygame", "gods", "earlygame"],
|
||||
tab: "dimensions/normal"
|
||||
tab: "dimensions/antimatter"
|
||||
}, {
|
||||
name: "Achievements",
|
||||
// This one could use some work!
|
||||
|
@ -176,7 +176,7 @@ Each achievement has conditions that must be met before they are earned.
|
|||
Some are very simple, and some are significantly trickier.
|
||||
<br>
|
||||
<br>
|
||||
You will recieve a ${formatX(1.03, 2, 2)} multiplier to all normal Dimensions for each completed achievement, as well
|
||||
You will recieve a ${formatX(1.03, 2, 2)} multiplier to all Antimatter Dimensions for each completed achievement, as well
|
||||
as an additional ${formatX(1.25, 2, 2)} for each fully completed row. In addition, many achievements have their own
|
||||
rewards.
|
||||
`,
|
||||
|
@ -321,7 +321,7 @@ Infinity Points. They give a permanent multiplier per purchase, similar to the o
|
|||
applied depends on which Infinity Dimension you purchase. <!-- Sorry Garnet :/ -->
|
||||
<br>
|
||||
<br>
|
||||
<b>Infinity Dimension Production:</b> Just like Normal Dimensions, each Infinity Dimension produces the
|
||||
<b>Infinity Dimension Production:</b> Just like Antimatter Dimensions, each Infinity Dimension produces the
|
||||
next highest Infinity Dimension.
|
||||
<br>
|
||||
<br>
|
||||
|
@ -347,7 +347,7 @@ of Infinity Dimensions doesn't carry between crunches, all the multipliers you g
|
|||
<br>
|
||||
<br>
|
||||
Instead of antimatter, the First Infinity Dimension produces Infinity Power, which translates to a multiplier applied
|
||||
to all Normal Dimensions. This multiplier is equal to (power<sup>${formatInt(7)}</sup>). Infinity Dimensions are not
|
||||
to all Antimatter Dimensions. This multiplier is equal to (power<sup>${formatInt(7)}</sup>). Infinity Dimensions are not
|
||||
affected by tickspeed upgrades.
|
||||
`,
|
||||
isUnlocked: () => Autobuyer.bigCrunch.hasMaxedInterval || PlayerProgress.eternityUnlocked(),
|
||||
|
@ -555,7 +555,7 @@ having to complete the secondary requirement again.
|
|||
info: () => `
|
||||
Time Dilation is unlocked when you purchase the ${formatInt(5000)} TT time study after
|
||||
beating both EC11 and EC12 five times, and after acquiring a total of ${formatInt(13000)} TT.
|
||||
Dilating time will start a modified Eternity, called Time Dilation, in which all of your Normal/Infinity/Time
|
||||
Dilating time will start a modified Eternity, called Time Dilation, in which all of your Antimatter/Infinity/Time
|
||||
Dimension multipliers’ <i>exponents</i> and the tickspeed multipliers’ <i>exponent</i> will raised to the power of
|
||||
${format(0.75, 2, 2)}, significantly reducing them.
|
||||
<br>
|
||||
|
@ -946,7 +946,7 @@ V is a special Celestial in the sense that she is not unlocked by another Celest
|
|||
but is instead unlocked by completing a certain achievement.
|
||||
She is unlocked by completing achievement ID 151 (row ${formatInt(15)}, column ${formatInt(1)},
|
||||
"You really didn't need it anyway"), which requires you to get ${formatInt(800)} Antimatter Galaxies
|
||||
without buying 8th Dimensions in your current Infinity.
|
||||
without buying 8th Antimatter Dimensions in your current Infinity.
|
||||
<br>
|
||||
<br>
|
||||
After being unlocked from the achievement, you are met with another set of requirements to fully unlock V.
|
||||
|
@ -1087,10 +1087,10 @@ Lai'tela is the sixth Celestial, unlocked by getting ${formatInt(RA_UNLOCKS.RA_L
|
|||
total Ra levels.
|
||||
<br>
|
||||
<br>
|
||||
When you unlock Lai'tela, your normal dimensions and tickspeed switch to a new mode of production called Continuum,
|
||||
When you unlock Lai'tela, your Antimatter Dimensions and tickspeed switch to a new mode of production called Continuum,
|
||||
which gives the same effect as previously but allows for buying fractions of dimensions or tickspeed upgrades.
|
||||
Additionally, these fractional purchases are given for free without spending your antimatter. This makes your
|
||||
autobuyers for Normal Dimensions obsolete, which is noted on the autobuyers page.
|
||||
autobuyers for Antimatter Dimensions obsolete, which is noted on the autobuyers page.
|
||||
<br>
|
||||
<br>
|
||||
Lai'tela gives a new currency called Dark Matter, which gives a multiplier to purchases of dimensions and tickspeed
|
||||
|
|
|
@ -22,14 +22,14 @@ GameDatabase.infinity.breakUpgrades = (function() {
|
|||
totalAMMult: {
|
||||
id: "totalMult",
|
||||
cost: 1e4,
|
||||
description: "Normal Dimensions gain a multiplier based on total antimatter produced",
|
||||
description: "Antimatter Dimensions gain a multiplier based on total antimatter produced",
|
||||
effect: () => Math.pow(player.totalAntimatter.exponent + 1, 0.5),
|
||||
formatEffect: value => formatX(value, 2, 2)
|
||||
},
|
||||
currentAMMult: {
|
||||
id: "currentMult",
|
||||
cost: 5e4,
|
||||
description: "Normal Dimensions gain a multiplier based on current antimatter",
|
||||
description: "Antimatter Dimensions gain a multiplier based on current antimatter",
|
||||
effect: () => Math.pow(Currency.antimatter.exponent + 1, 0.5),
|
||||
formatEffect: value => formatX(value, 2, 2)
|
||||
},
|
||||
|
@ -42,21 +42,21 @@ GameDatabase.infinity.breakUpgrades = (function() {
|
|||
infinitiedMult: {
|
||||
id: "infinitiedMult",
|
||||
cost: 1e5,
|
||||
description: "Normal Dimensions gain a multiplier based on Infinitied stat",
|
||||
description: "Antimatter Dimensions gain a multiplier based on Infinitied stat",
|
||||
effect: () => 1 + Player.totalInfinitied.pLog10() * 10,
|
||||
formatEffect: value => formatX(value, 2, 2)
|
||||
},
|
||||
achievementMult: {
|
||||
id: "achievementMult",
|
||||
cost: 1e6,
|
||||
description: "Normal Dimensions gain a multiplier based on achievements completed",
|
||||
description: "Antimatter Dimensions gain a multiplier based on achievements completed",
|
||||
effect: () => Math.max(Math.pow((Achievements.effectiveCount - 30), 3) / 40, 1),
|
||||
formatEffect: value => formatX(value, 2, 2)
|
||||
},
|
||||
slowestChallengeMult: {
|
||||
id: "challengeMult",
|
||||
cost: 1e7,
|
||||
description: "Normal Dimensions gain a multiplier based on slowest challenge run",
|
||||
description: "Antimatter Dimensions gain a multiplier based on slowest challenge run",
|
||||
effect: () => Decimal.max(50 / Time.worstChallenge.totalMinutes, 1),
|
||||
formatEffect: value => formatX(value, 2, 2)
|
||||
},
|
||||
|
@ -95,7 +95,7 @@ GameDatabase.infinity.breakUpgrades = (function() {
|
|||
initialCost: 1e7,
|
||||
costIncrease: 5e3,
|
||||
maxUpgrades: 7,
|
||||
description: "Reduce post-infinity Normal Dimension cost multiplier scaling",
|
||||
description: "Reduce post-infinity Antimatter Dimension cost multiplier scaling",
|
||||
title: false,
|
||||
}),
|
||||
ipGen: rebuyable({
|
||||
|
|
|
@ -8,11 +8,11 @@ GameDatabase.infinity.upgrades = (function() {
|
|||
totalTimeMult: {
|
||||
id: "timeMult",
|
||||
cost: 1,
|
||||
description: "Normal Dimensions gain a multiplier based on time played",
|
||||
description: "Antimatter Dimensions gain a multiplier based on time played",
|
||||
effect: () => Math.pow(Time.totalTimePlayed.totalMinutes / 2, 0.15),
|
||||
formatEffect: value => formatX(value, 2, 2),
|
||||
charged: {
|
||||
description: "Normal Dimensions gain a power effect based on time played and Teresa level",
|
||||
description: "Antimatter Dimensions gain a power effect based on time played and Teresa level",
|
||||
effect: () => 1 +
|
||||
Math.log10(Math.log10(Time.totalTimePlayed.totalMilliseconds)) *
|
||||
Math.pow(Ra.pets.teresa.level, 0.5) / 150,
|
||||
|
@ -22,11 +22,11 @@ GameDatabase.infinity.upgrades = (function() {
|
|||
dim18mult: {
|
||||
id: "18Mult",
|
||||
cost: 1,
|
||||
description: "First and Eighth Dimensions gain a multiplier based on Infinitied stat",
|
||||
description: "1st and 8th Antimatter Dimensions gain a multiplier based on Infinitied stat",
|
||||
effect: () => dimInfinityMult(),
|
||||
formatEffect: value => formatX(value, 1, 1),
|
||||
charged: {
|
||||
description: "First and Eighth Dimensions gain a power effect based on Infinitied stat and Teresa level",
|
||||
description: "1st and 8th Antimatter Dimensions gain a power effect based on Infinitied stat and Teresa level",
|
||||
effect: () => 1 + Math.log10(Math.max(1, player.infinitied.pLog10())) *
|
||||
Math.sqrt(Ra.pets.teresa.level) / 150,
|
||||
formatEffect: value => formatPow(value, 4, 4)
|
||||
|
@ -35,11 +35,11 @@ GameDatabase.infinity.upgrades = (function() {
|
|||
dim27mult: {
|
||||
id: "27Mult",
|
||||
cost: 1,
|
||||
description: "Second and Seventh Dimensions gain a multiplier based on Infinitied stat",
|
||||
description: "2nd and 7th Antimatter Dimensions gain a multiplier based on Infinitied stat",
|
||||
effect: () => dimInfinityMult(),
|
||||
formatEffect: value => formatX(value, 1, 1),
|
||||
charged: {
|
||||
description: "Second and Seventh Dimensions gain a power effect based on Infinitied stat and Teresa level",
|
||||
description: "2nd and 7th Antimatter Dimensions gain a power effect based on Infinitied stat and Teresa level",
|
||||
effect: () => 1 + Math.log10(Math.max(1, player.infinitied.pLog10())) *
|
||||
Math.sqrt(Ra.pets.teresa.level) / 150,
|
||||
formatEffect: value => formatPow(value, 4, 4)
|
||||
|
@ -48,11 +48,11 @@ GameDatabase.infinity.upgrades = (function() {
|
|||
dim36mult: {
|
||||
id: "36Mult",
|
||||
cost: 1,
|
||||
description: "Third and Sixth Dimensions gain a multiplier based on Infinitied stat",
|
||||
description: "3rd and 6th Antimatter Dimensions gain a multiplier based on Infinitied stat",
|
||||
effect: () => dimInfinityMult(),
|
||||
formatEffect: value => formatX(value, 1, 1),
|
||||
charged: {
|
||||
description: "Third and Sixth Dimensions gain a power effect based on Infinitied stat and Teresa level",
|
||||
description: "3rd and 6th Antimatter Dimensions gain a power effect based on Infinitied stat and Teresa level",
|
||||
effect: () => 1 + Math.log10(Math.max(1, player.infinitied.pLog10())) *
|
||||
Math.sqrt(Ra.pets.teresa.level) / 150,
|
||||
formatEffect: value => formatPow(value, 4, 4)
|
||||
|
@ -61,11 +61,11 @@ GameDatabase.infinity.upgrades = (function() {
|
|||
dim45mult: {
|
||||
id: "45Mult",
|
||||
cost: 1,
|
||||
description: "Fourth and Fifth Dimensions gain a multiplier based on Infinitied stat",
|
||||
description: "4th and 5th Antimatter Dimensions gain a multiplier based on Infinitied stat",
|
||||
effect: () => dimInfinityMult(),
|
||||
formatEffect: value => formatX(value, 1, 1),
|
||||
charged: {
|
||||
description: "Fourth and Fifth Dimensions gain a power effect based on Infinitied stat and Teresa level",
|
||||
description: "4th and 5th Antimatter Dimensions gain a power effect based on Infinitied stat and Teresa level",
|
||||
effect: () => 1 + Math.log10(Math.max(1, player.infinitied.pLog10())) *
|
||||
Math.sqrt(Ra.pets.teresa.level) / 150,
|
||||
formatEffect: value => formatPow(value, 4, 4)
|
||||
|
@ -109,11 +109,12 @@ GameDatabase.infinity.upgrades = (function() {
|
|||
thisInfinityTimeMult: {
|
||||
id: "timeMult2",
|
||||
cost: 3,
|
||||
description: "Normal Dimensions gain a multiplier based on time spent in current Infinity",
|
||||
description: "Antimatter Dimensions gain a multiplier based on time spent in current Infinity",
|
||||
effect: () => Decimal.max(Math.pow(Time.thisInfinity.totalMinutes / 4, 0.25), 1),
|
||||
formatEffect: value => formatX(value, 2, 2),
|
||||
charged: {
|
||||
description: "Normal Dimensions gain a power effect based on time spent in current Infinity and Teresa level",
|
||||
description:
|
||||
"Antimatter Dimensions gain a power effect based on time spent in current Infinity and Teresa level",
|
||||
effect: () => 1 +
|
||||
Math.log10(Math.log10(Time.thisInfinity.totalMilliseconds + 100)) *
|
||||
Math.sqrt(Ra.pets.teresa.level) / 150,
|
||||
|
@ -123,11 +124,11 @@ GameDatabase.infinity.upgrades = (function() {
|
|||
unspentIPMult: {
|
||||
id: "unspentBonus",
|
||||
cost: 5,
|
||||
description: "Multiplier to 1st Dimension based on unspent Infinity Points",
|
||||
description: "Multiplier to 1st Antimatter Dimension based on unspent Infinity Points",
|
||||
effect: () => player.infinityPoints.dividedBy(2).pow(1.5).plus(1),
|
||||
formatEffect: value => formatX(value, 2, 2),
|
||||
charged: {
|
||||
description: "Multiplier to 1st Dimension based on unspent Infinity Points, powered by Teresa level",
|
||||
description: "Multiplier to 1st Antimatter Dimension based on unspent Infinity Points, powered by Teresa level",
|
||||
effect: () => player.infinityPoints.dividedBy(2).pow(Math.sqrt(Ra.pets.teresa.level) * 1.5).plus(1),
|
||||
formatEffect: value => formatX(value, 2, 2)
|
||||
}
|
||||
|
@ -169,25 +170,27 @@ GameDatabase.infinity.upgrades = (function() {
|
|||
skipReset1: {
|
||||
id: "skipReset1",
|
||||
cost: 20,
|
||||
description: "You start with the 5th Dimension unlocked",
|
||||
description: "You start with 1 Dimension Shift, automatically unlocking the 5th Antimatter Dimension",
|
||||
bannedFromCharging: true
|
||||
},
|
||||
skipReset2: {
|
||||
id: "skipReset2",
|
||||
cost: 40,
|
||||
description: "You start with the 6th Dimension unlocked",
|
||||
description: "You start with 2 Dimension Shifts, automatically unlocking the 6th Antimatter Dimension",
|
||||
bannedFromCharging: true
|
||||
},
|
||||
skipReset3: {
|
||||
id: "skipReset3",
|
||||
cost: 80,
|
||||
description: "You start with the 7th Dimension unlocked",
|
||||
description: "You start with 3 Dimension Shifts, automatically unlocking the 7th Antimatter Dimension",
|
||||
bannedFromCharging: true
|
||||
},
|
||||
skipResetGalaxy: {
|
||||
id: "skipResetGalaxy",
|
||||
cost: 300,
|
||||
description: "You start with the 8th Dimension unlocked, and an Antimatter Galaxy",
|
||||
description:
|
||||
"You start with 4 Dimension Shifts, automatically unlocking the 8th Antimatter Dimension; " +
|
||||
"and you start with an Antimatter galaxy",
|
||||
bannedFromCharging: true
|
||||
},
|
||||
ipOffline: {
|
||||
|
|
|
@ -1597,7 +1597,7 @@ GameDatabase.news = [
|
|||
id: "a283",
|
||||
text:
|
||||
"A strange phenomenon occurs when you attempt to shift to a higher dimension when you are in the 8th " +
|
||||
"Dimension. There is no higher dimension, so the universe ejects you back into the 8th Dimension with " +
|
||||
"dimension. There is no higher dimension, so the universe ejects you back into the 8th dimension with " +
|
||||
"an incredible velocity. This technique, known as a Dimension Boost, is used by starship pilots and " +
|
||||
"antimatter enthusiasts everywhere."
|
||||
},
|
||||
|
@ -1770,17 +1770,17 @@ GameDatabase.news = [
|
|||
{
|
||||
id: "l3",
|
||||
text: "What do you mean, more than two dimensions??? We're on a screen, clearly there are only 2 dimensions.",
|
||||
get unlocked() { return NormalDimension(3).amount.gt(0) || DimBoost.totalBoosts > 0; }
|
||||
get unlocked() { return AntimatterDimension(3).amount.gt(0) || DimBoost.totalBoosts > 0; }
|
||||
},
|
||||
{
|
||||
id: "l4",
|
||||
text: "How much is Infinity? -literally everyone at least once",
|
||||
get unlocked() { return NormalDimension(8).amount.eq(190) || player.infinitied.gt(0); }
|
||||
get unlocked() { return AntimatterDimension(8).amount.eq(190) || player.infinitied.gt(0); }
|
||||
},
|
||||
{
|
||||
id: "l5",
|
||||
text: "Eh, the Fourth Dimension is alright...",
|
||||
get unlocked() { return NormalDimension(4).amount.gt(0) && NormalDimension(5).amount.eq(0); }
|
||||
get unlocked() { return AntimatterDimension(4).amount.gt(0) && AntimatterDimension(5).amount.eq(0); }
|
||||
},
|
||||
{
|
||||
id: "l6",
|
||||
|
@ -2149,17 +2149,17 @@ GameDatabase.news = [
|
|||
"The Holy trinity of Hevipelle, Antimatter, Infinity Points, and Eternity Points. These 3 resources let us " +
|
||||
"access Hevi’s gift, Time Theorems. And with these Time Theorems, we reach out to Hevi, and call, “Hevi, bless " +
|
||||
"us on this fine day!” And Hevi does. He give us the blessing of Time Studies. These Time Studies were " +
|
||||
"blessings so powerful, Hevi restricted their power. He said, “ I will give you a choice of three paths” and " +
|
||||
"then humanity chose. The short, cheap route of Normal Dimensions, giving instant gratification, the powerful " +
|
||||
"choice of Infinity Dimensions, which were a fast, middle ground path, or Time Dimension, the long wait, and " +
|
||||
"struggle, of humanity. Then, as humanity chose, a crack broke the earth. A serpent snaked out and sneered to " +
|
||||
"humanity, “I will offer the powerful choice of a ninth dimension! I am Slabdrill, lord of all Unhevi. " +
|
||||
"Humanity rose and said “ Begone Slabdrill! We want none of your foul Heresy!” And Hevi rose as well, and " +
|
||||
"smote Slabdrill with his godlike power. As Slabdrill’s corpse fell into the earth, he cried “ this will not " +
|
||||
"be the last of me! Hevi will betr-“ and he fell in the Abyss of matter. Hevi gifted humanity with Eternity " +
|
||||
"upgrades, which boosted infinity dimensions and time dimensions. And Hevi gave humanity his greatest gift. " +
|
||||
"EP multipliers. He said, these will multiply all EP gained by 5, but their cost will increase 25 times. Use " +
|
||||
"them wisely. And Humanity journeyed off with their new power, as Slabdrill’s words echoed in their heads.",
|
||||
"blessings so powerful, Hevi restricted their power. He said, “I will give you a choice of three paths” and " +
|
||||
"then humanity chose. The short, cheap route of Antimatter Dimensions, giving instant gratification, the " +
|
||||
"powerful choice of Infinity Dimensions, which were a fast, middle ground path, or Time Dimension, the long " +
|
||||
"wait, and struggle, of humanity. Then, as humanity chose, a crack broke the earth. A serpent snaked out and " +
|
||||
"sneered to humanity, “I will offer the powerful choice of a ninth dimension! I am Slabdrill, lord of all " +
|
||||
"Unhevi. Humanity rose and said “ Begone Slabdrill! We want none of your foul Heresy!” And Hevi rose as well, " +
|
||||
"and smote Slabdrill with his godlike power. As Slabdrill’s corpse fell into the earth, he cried “ this will " +
|
||||
"not be the last of me! Hevi will betr-“ and he fell in the Abyss of matter. Hevi gifted humanity with " +
|
||||
"Eternity upgrades, which boosted infinity dimensions and time dimensions. And Hevi gave humanity his greatest " +
|
||||
"gift. EP multipliers. He said, these will multiply all EP gained by 5, but their cost will increase 25 times. " +
|
||||
"Use them wisely. And Humanity journeyed off with their new power, as Slabdrill’s words echoed in their heads.",
|
||||
get unlocked() { return PlayerProgress.eternityUnlocked(); }
|
||||
},
|
||||
{
|
||||
|
|
|
@ -275,12 +275,12 @@ GameDatabase.reality.automator = {
|
|||
waiting for them to become available/affordable if necessary.<br>
|
||||
The study list can consist of study numbers, separated by spaces or commas, ranges of
|
||||
studies (for example, <i>11-62</i>) and the following aliases:<br>
|
||||
<blockquote><b>normal, infinity, time, active, passive, idle</b></blockquote>
|
||||
<blockquote><b>antimatter, infinity, time, active, passive, idle</b></blockquote>
|
||||
A variable name may be used in place of study list, see <b>define</b>
|
||||
The string produced by "export" in the Time Study tab can be used with this command.`,
|
||||
examples: [
|
||||
"studies nowait 11,21,31",
|
||||
"studies 11-62, normal, 111, idle",
|
||||
"studies 11-62, antimatter, 111, idle",
|
||||
"studies nowait ec6Studies",
|
||||
]
|
||||
},
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
"use strict";
|
||||
|
||||
const PERK_FAMILY = {
|
||||
NORMAL: "NORMAL",
|
||||
ANTIMATTER: "ANTIMATTER",
|
||||
INFINITY: "INFINITY",
|
||||
ETERNITY: "ETERNITY",
|
||||
DILATION: "DILATION",
|
||||
|
@ -21,7 +21,7 @@ GameDatabase.reality.perks = {
|
|||
startAM1: {
|
||||
id: 10,
|
||||
label: "SAM1",
|
||||
family: PERK_FAMILY.NORMAL,
|
||||
family: PERK_FAMILY.ANTIMATTER,
|
||||
description: "Start every reset with 1e15 antimatter.",
|
||||
bumpCurrency: () => Currency.antimatter.bumpTo(1e15),
|
||||
effect: 1e15
|
||||
|
@ -29,7 +29,7 @@ GameDatabase.reality.perks = {
|
|||
startAM2: {
|
||||
id: 11,
|
||||
label: "SAM2",
|
||||
family: PERK_FAMILY.NORMAL,
|
||||
family: PERK_FAMILY.ANTIMATTER,
|
||||
description: "Start every reset with 1e130 antimatter.",
|
||||
bumpCurrency: () => Currency.antimatter.bumpTo(1e130),
|
||||
effect: 1e130
|
||||
|
@ -84,8 +84,8 @@ GameDatabase.reality.perks = {
|
|||
dimboostNonReset: {
|
||||
id: 30,
|
||||
label: "DBNR",
|
||||
family: PERK_FAMILY.NORMAL,
|
||||
description: "Dimboosts no longer reset normal dimensions, tickspeed, or sacrifice."
|
||||
family: PERK_FAMILY.ANTIMATTER,
|
||||
description: "Dimboosts no longer reset Antimatter Dimensions, tickspeed, or sacrifice."
|
||||
},
|
||||
studyPassive1: {
|
||||
id: 31,
|
||||
|
|
|
@ -4,7 +4,7 @@ GameDatabase.shopPurchases = {
|
|||
dimPurchases: {
|
||||
key: "dimPurchases",
|
||||
cost: 30,
|
||||
description: "Double all your normal dimension multipliers (dimensions 1-8). Forever.",
|
||||
description: "Double all your Antimatter Dimension multipliers (dimensions 1-8). Forever.",
|
||||
multiplier: purchases => Math.pow(2, purchases)
|
||||
},
|
||||
IPPurchases: {
|
||||
|
@ -22,7 +22,7 @@ GameDatabase.shopPurchases = {
|
|||
allDimPurchases: {
|
||||
key: "allDimPurchases",
|
||||
cost: 60,
|
||||
description: "Double ALL the dimension multipliers (Normal, Infinity, Time) (multiplicative until 32x). Forever. ",
|
||||
description: "Double ALL Dimension multipliers (Antimatter, Infinity, Time) (multiplicative until 32x). Forever. ",
|
||||
multiplier: purchases => (purchases > 4 ? 32 * (purchases - 4) : Math.pow(2, purchases)),
|
||||
}
|
||||
};
|
|
@ -6,10 +6,10 @@ GameDatabase.tabs = [
|
|||
name: "Dimensions",
|
||||
subtabs: [
|
||||
{
|
||||
key: "normal",
|
||||
key: "antimatter",
|
||||
name: "Dimensions",
|
||||
symbol: "Ω",
|
||||
component: "normal-dim-tab",
|
||||
component: "antimatter-dim-tab",
|
||||
newUIComponent: "new-dimensions-tab"
|
||||
},
|
||||
{
|
||||
|
|
|
@ -488,7 +488,17 @@ GameStorage.devMigrations = {
|
|||
player.celestials.teresa.perkShop[4] = tempMusic;
|
||||
},
|
||||
GameStorage.migrations.convertAchievementsToBits,
|
||||
GameStorage.migrations.removePower,
|
||||
player => {
|
||||
for (const dimension of player.dimensions.antimatter) {
|
||||
delete dimension.power;
|
||||
}
|
||||
for (const dimension of player.dimensions.infinity) {
|
||||
delete dimension.power;
|
||||
}
|
||||
for (const dimension of player.dimensions.time) {
|
||||
delete dimension.power;
|
||||
}
|
||||
},
|
||||
player => {
|
||||
const cursedMask = 15;
|
||||
const allGlyphs = player.reality.glyphs.active.concat(player.reality.glyphs.inventory);
|
||||
|
@ -700,6 +710,15 @@ GameStorage.devMigrations = {
|
|||
for (const glyph of allGlyphs) {
|
||||
glyph.strength = Math.ceil(glyph.strength * 400) / 400;
|
||||
}
|
||||
},
|
||||
player => {
|
||||
for (let i = 0; i < player.dimensions.normal.length; i++) {
|
||||
const dimension = player.dimensions.normal[i];
|
||||
player.dimensions.antimatter[i].bought = dimension.bought;
|
||||
player.dimensions.antimatter[i].costBumps = dimension.costBumps;
|
||||
player.dimensions.antimatter[i].amount = new Decimal(dimension.amount);
|
||||
}
|
||||
delete player.dimensions.normal;
|
||||
}
|
||||
],
|
||||
|
||||
|
|
|
@ -69,9 +69,9 @@ GameStorage.migrations = {
|
|||
}
|
||||
},
|
||||
12.1: player => {
|
||||
for (const achievement of player.achievements) {
|
||||
if (achievement.includes("s") && achievement.length <= 3) {
|
||||
player.achievements.delete("s36");
|
||||
for (const achievements of player.achievements) {
|
||||
if (achievements.includes("s") && achievements.length <= 3) {
|
||||
player.achievements.splice(player.achievements.indexOf("r36"), 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -134,7 +134,6 @@ GameStorage.migrations = {
|
|||
GameStorage.migrations.removeDimensionCosts(player);
|
||||
GameStorage.migrations.changeC8Handling(player);
|
||||
GameStorage.migrations.convertAchievementsToBits(player);
|
||||
GameStorage.migrations.removePower(player);
|
||||
GameStorage.migrations.setNoInfinitiesOrEternitiesThisReality(player);
|
||||
GameStorage.migrations.setTutorialState(player);
|
||||
GameStorage.migrations.migrateLastTenRuns(player);
|
||||
|
@ -445,7 +444,7 @@ GameStorage.migrations = {
|
|||
},
|
||||
|
||||
removeDimensionCosts(player) {
|
||||
for (const dimension of player.dimensions.normal) {
|
||||
for (const dimension of player.dimensions.antimatter) {
|
||||
delete dimension.cost;
|
||||
delete dimension.costMultiplier;
|
||||
}
|
||||
|
@ -478,11 +477,10 @@ GameStorage.migrations = {
|
|||
bought: `${name}Bought`,
|
||||
pow: `${name}Pow`
|
||||
};
|
||||
const dimension = player.dimensions.normal[tier - 1];
|
||||
const dimension = player.dimensions.antimatter[tier - 1];
|
||||
dimension.cost = new Decimal(player[oldProps.cost]);
|
||||
dimension.amount = new Decimal(player[oldProps.amount]);
|
||||
dimension.bought = player[oldProps.bought];
|
||||
dimension.power = new Decimal(player[oldProps.pow]);
|
||||
if (player.costmultipliers) {
|
||||
dimension.costMultiplier = new Decimal(player.costMultipliers[tier - 1]);
|
||||
}
|
||||
|
@ -500,7 +498,6 @@ GameStorage.migrations = {
|
|||
const old = player[oldName];
|
||||
dimension.cost = new Decimal(old.cost);
|
||||
dimension.amount = new Decimal(old.amount);
|
||||
dimension.power = new Decimal(old.power);
|
||||
dimension.bought = old.bought;
|
||||
dimension.baseAmount = old.baseAmount;
|
||||
dimension.isUnlocked = player.infDimensionsUnlocked[tier - 1];
|
||||
|
@ -517,7 +514,6 @@ GameStorage.migrations = {
|
|||
if (old !== undefined) {
|
||||
dimension.cost = new Decimal(old.cost);
|
||||
dimension.amount = new Decimal(old.amount);
|
||||
dimension.power = new Decimal(old.power);
|
||||
dimension.bought = old.bought;
|
||||
delete player[oldName];
|
||||
}
|
||||
|
@ -681,18 +677,6 @@ GameStorage.migrations = {
|
|||
convertAchievementArray(player.secretAchievementBits, player.secretAchievements);
|
||||
delete player.secretAchievements;
|
||||
},
|
||||
|
||||
removePower(player) {
|
||||
for (const dimension of player.dimensions.normal) {
|
||||
delete dimension.power;
|
||||
}
|
||||
for (const dimension of player.dimensions.infinity) {
|
||||
delete dimension.power;
|
||||
}
|
||||
for (const dimension of player.dimensions.time) {
|
||||
delete dimension.power;
|
||||
}
|
||||
},
|
||||
|
||||
setNoInfinitiesOrEternitiesThisReality(player) {
|
||||
player.noInfinitiesThisReality = player.infinitied.eq(0) && player.eternities.eq(0);
|
||||
|
|
|
@ -46,7 +46,7 @@ const GameStorage = {
|
|||
// Save current slot to make sure no changes are lost
|
||||
this.save(true);
|
||||
this.loadPlayerObject(this.saves[slot]);
|
||||
Tab.dimensions.normal.show();
|
||||
Tab.dimensions.antimatter.show();
|
||||
GameUI.notify.info("Game loaded");
|
||||
},
|
||||
|
||||
|
@ -96,7 +96,7 @@ const GameStorage = {
|
|||
hardReset() {
|
||||
this.loadPlayerObject(Player.defaultStart);
|
||||
this.save();
|
||||
Tab.dimensions.normal.show();
|
||||
Tab.dimensions.antimatter.show();
|
||||
},
|
||||
|
||||
loadPlayerObject(playerObject, overrideLastUpdate = undefined) {
|
||||
|
|
|
@ -123,7 +123,7 @@ function resetTickspeed() {
|
|||
const Tickspeed = {
|
||||
|
||||
get isUnlocked() {
|
||||
return NormalDimension(2).amount.gt(0) || player.eternities.gte(30);
|
||||
return AntimatterDimension(2).amount.gt(0) || player.eternities.gte(30);
|
||||
},
|
||||
|
||||
get isAvailableForPurchase() {
|
||||
|
@ -182,7 +182,7 @@ const Tickspeed = {
|
|||
},
|
||||
|
||||
multiplySameCosts() {
|
||||
for (const dimension of NormalDimensions.all) {
|
||||
for (const dimension of AntimatterDimensions.all) {
|
||||
if (dimension.cost.e === this.cost.e) dimension.costBumps++;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
const NormalTimeStudies = {};
|
||||
|
||||
NormalTimeStudies.pathList = [
|
||||
{ path: TIME_STUDY_PATH.NORMAL_DIM, studies: [71, 81, 91, 101] },
|
||||
{ path: TIME_STUDY_PATH.ANTIMATTER_DIM, studies: [71, 81, 91, 101] },
|
||||
{ path: TIME_STUDY_PATH.INFINITY_DIM, studies: [72, 82, 92, 102] },
|
||||
{ path: TIME_STUDY_PATH.TIME_DIM, studies: [73, 83, 93, 103] },
|
||||
{ path: TIME_STUDY_PATH.ACTIVE, studies: [121, 131, 141] },
|
||||
|
@ -147,7 +147,7 @@ function unlockDilation(quiet) {
|
|||
|
||||
function getSelectedDimensionStudyPaths() {
|
||||
const paths = [];
|
||||
if (TimeStudy(71).isBought) paths.push(TIME_STUDY_PATH.NORMAL_DIM);
|
||||
if (TimeStudy(71).isBought) paths.push(TIME_STUDY_PATH.ANTIMATTER_DIM);
|
||||
if (TimeStudy(72).isBought) paths.push(TIME_STUDY_PATH.INFINITY_DIM);
|
||||
if (TimeStudy(73).isBought) paths.push(TIME_STUDY_PATH.TIME_DIM);
|
||||
return paths;
|
||||
|
|
|
@ -21,11 +21,11 @@ const tutorialStates = [
|
|||
},
|
||||
{
|
||||
id: TUTORIAL_STATE.DIMSHIFT,
|
||||
condition: () => NormalDimension(4).amount.gte(20)
|
||||
condition: () => AntimatterDimension(4).amount.gte(20)
|
||||
},
|
||||
{
|
||||
id: TUTORIAL_STATE.GALAXY,
|
||||
condition: () => NormalDimension(8).amount.gte(80)
|
||||
condition: () => AntimatterDimension(8).amount.gte(80)
|
||||
}
|
||||
];
|
||||
|
||||
|
|
|
@ -423,8 +423,8 @@ function gameLoop(diff, options = {}) {
|
|||
|
||||
// We do these after autobuyers, since it's possible something there might
|
||||
// change a multiplier.
|
||||
GameCache.normalDimensionCommonMultiplier.invalidate();
|
||||
GameCache.normalDimensionFinalMultipliers.invalidate();
|
||||
GameCache.antimatterDimensionCommonMultiplier.invalidate();
|
||||
GameCache.antimatterDimensionFinalMultipliers.invalidate();
|
||||
GameCache.infinityDimensionCommonMultiplier.invalidate();
|
||||
GameCache.timeDimensionCommonMultiplier.invalidate();
|
||||
GameCache.totalIPMult.invalidate();
|
||||
|
@ -541,7 +541,7 @@ function gameLoop(diff, options = {}) {
|
|||
|
||||
TimeDimensions.tick(diff);
|
||||
InfinityDimensions.tick(diff);
|
||||
NormalDimensions.tick(diff);
|
||||
AntimatterDimensions.tick(diff);
|
||||
|
||||
const gain = Math.clampMin(FreeTickspeed.fromShards(player.timeShards).newAmount - player.totalTickGained, 0);
|
||||
player.totalTickGained += gain;
|
||||
|
@ -962,7 +962,7 @@ function setHoldingR(x) {
|
|||
function init() {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log("🌌 Antimatter Dimensions: Reality Update 🌌");
|
||||
Tab.dimensions.normal.show();
|
||||
Tab.dimensions.antimatter.show();
|
||||
GameStorage.load();
|
||||
kong.init();
|
||||
}
|
||||
|
|
|
@ -214,13 +214,13 @@ body.t-normal {
|
|||
position: relative;
|
||||
}
|
||||
|
||||
.tab-container > .l-normal-dim-tab {
|
||||
.tab-container > .l-antimatter-dim-tab {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.l-normal-dim-tab {
|
||||
.l-antimatter-dim-tab {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
|
@ -566,7 +566,7 @@ body.t-normal {
|
|||
font-size: 2rem;
|
||||
}
|
||||
|
||||
.c-normal-dim-row,
|
||||
.c-antimatter-dim-row,
|
||||
.c-infinity-dim-row,
|
||||
.c-time-dim-row {
|
||||
color: var(--color-text);
|
||||
|
@ -576,17 +576,17 @@ body.t-normal {
|
|||
border-radius: 0.5rem;
|
||||
}
|
||||
|
||||
.c-normal-dim-row:nth-child(even) {
|
||||
.c-antimatter-dim-row:nth-child(even) {
|
||||
background-color: rgba(223, 80, 80, 0.3);
|
||||
}
|
||||
|
||||
.t-metro .c-normal-dim-row:nth-child(even),
|
||||
.t-inverted-metro .c-normal-dim-row:nth-child(even),
|
||||
.t-s8 .c-normal-dim-row:nth-child(even) {
|
||||
.t-metro .c-antimatter-dim-row:nth-child(even),
|
||||
.t-inverted-metro .c-antimatter-dim-row:nth-child(even),
|
||||
.t-s8 .c-antimatter-dim-row:nth-child(even) {
|
||||
background-color: rgba(33, 150, 243, 0.3);
|
||||
}
|
||||
|
||||
.c-normal-dim-row__multiplier {
|
||||
.c-antimatter-dim-row__multiplier {
|
||||
font-size: 1.4rem
|
||||
}
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@
|
|||
z-index: 1;
|
||||
}
|
||||
|
||||
.l-old-ui-normal-dim-tab {
|
||||
.l-old-ui-antimatter-dim-tab {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
|
|
@ -1179,15 +1179,15 @@ screen and (max-width: 480px) {
|
|||
margin-right: 0.8rem;
|
||||
}
|
||||
|
||||
.o-primary-btn--buy-nd {
|
||||
.o-primary-btn--buy-ad {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.o-primary-btn--buy-single-nd {
|
||||
.o-primary-btn--buy-single-ad {
|
||||
width: 13.5rem;
|
||||
}
|
||||
|
||||
.o-primary-btn--buy-10-nd {
|
||||
.o-primary-btn--buy-10-ad {
|
||||
width: 21rem;
|
||||
}
|
||||
|
||||
|
@ -1982,23 +1982,23 @@ screen and (max-width: 480px) {
|
|||
|
||||
/*#endregion Dimensions*/
|
||||
|
||||
/*#region Normal Dimensions*/
|
||||
/*#region Antimatter Dimensions*/
|
||||
|
||||
/*#region l-normal-dim-tab*/
|
||||
/*#region l-antimatter-dim-tab*/
|
||||
|
||||
.l-normal-dim-tab > * {
|
||||
.l-antimatter-dim-tab > * {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.l-normal-dim-tab__progress_bar {
|
||||
.l-antimatter-dim-tab__progress_bar {
|
||||
margin: 1rem 0;
|
||||
}
|
||||
|
||||
/*#endregion l-normal-dim-tab*/
|
||||
/*#endregion l-antimatter-dim-tab*/
|
||||
|
||||
/*#region l-normal-dim-tab-header*/
|
||||
/*#region l-antimatter-dim-tab-header*/
|
||||
|
||||
.l-normal-dim-tab__header {
|
||||
.l-antimatter-dim-tab__header {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
|
@ -2006,11 +2006,11 @@ screen and (max-width: 480px) {
|
|||
padding-top: 0.5rem;
|
||||
}
|
||||
|
||||
/*#endregion l-normal-dim-tab-header*/
|
||||
/*#endregion l-antimatter-dim-tab-header*/
|
||||
|
||||
/*#region c-normal-dim-row*/
|
||||
/*#region c-antimatter-dim-row*/
|
||||
|
||||
.c-normal-dim-row {
|
||||
.c-antimatter-dim-row {
|
||||
/* relative because floating text is 'position: absolute' */
|
||||
position: relative;
|
||||
display: flex;
|
||||
|
@ -2020,7 +2020,7 @@ screen and (max-width: 480px) {
|
|||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.c-normal-dim-row__floating-text {
|
||||
.c-antimatter-dim-row__floating-text {
|
||||
position: absolute;
|
||||
bottom: 2rem;
|
||||
left: 15rem;
|
||||
|
@ -2095,7 +2095,7 @@ screen and (max-width: 480px) {
|
|||
|
||||
/*#endregion c-progress-bar*/
|
||||
|
||||
/*#endregion Normal Dimensions*/
|
||||
/*#endregion Antimatter Dimensions*/
|
||||
|
||||
/*#region Infinity Dimensions*/
|
||||
|
||||
|
|
|
@ -113,12 +113,12 @@
|
|||
border-color: black;
|
||||
}
|
||||
|
||||
.o-time-study-normal-dim--available {
|
||||
.o-time-study-antimatter-dim--available {
|
||||
color: #22aa48;
|
||||
border-color: #198036;
|
||||
}
|
||||
|
||||
.o-time-study-normal-dim--available:hover {
|
||||
.o-time-study-antimatter-dim--available:hover {
|
||||
color: #eeeeee;
|
||||
background-color: #22aa48;
|
||||
}
|
||||
|
@ -252,7 +252,7 @@
|
|||
border-color: var(--color-bad);
|
||||
}
|
||||
|
||||
.o-time-study-normal-dim--unavailable {
|
||||
.o-time-study-antimatter-dim--unavailable {
|
||||
background-color: #94a89a;
|
||||
}
|
||||
|
||||
|
@ -306,7 +306,7 @@
|
|||
background-color: var(--color-eternity);
|
||||
}
|
||||
|
||||
.o-time-study-normal-dim--bought {
|
||||
.o-time-study-antimatter-dim--bought {
|
||||
color: black;
|
||||
border-color: black;
|
||||
background-color: #22aa48;
|
||||
|
@ -378,8 +378,8 @@
|
|||
border-color: black;
|
||||
}
|
||||
|
||||
.t-dark .o-time-study-normal-dim--bought,
|
||||
.t-s6 .o-time-study-normal-dim--bought {
|
||||
.t-dark .o-time-study-antimatter-dim--bought,
|
||||
.t-s6 .o-time-study-antimatter-dim--bought {
|
||||
border-color: #198036;
|
||||
}
|
||||
|
||||
|
@ -439,7 +439,7 @@
|
|||
transition: stroke 0.3s;
|
||||
}
|
||||
|
||||
.o-time-study-connection--normal-dim {
|
||||
.o-time-study-connection--antimatter-dim {
|
||||
stroke: #37533f;
|
||||
}
|
||||
|
||||
|
@ -481,7 +481,7 @@
|
|||
stroke: #bbbbbb;
|
||||
}
|
||||
|
||||
.o-time-study-connection--bought.o-time-study-connection--normal-dim {
|
||||
.o-time-study-connection--bought.o-time-study-connection--antimatter-dim {
|
||||
stroke: #22aa48;
|
||||
}
|
||||
|
||||
|
|
|
@ -318,22 +318,22 @@
|
|||
<br>
|
||||
Cost: 308 Time Theorems
|
||||
</button>
|
||||
<button class="o-time-study o-time-study--normal-dim">
|
||||
Available Normal Dimension Study
|
||||
<button class="o-time-study o-time-study--antimatter-dim">
|
||||
Available Antimatter Dimension Study
|
||||
<br>
|
||||
Currently: 1e308
|
||||
<br>
|
||||
Cost: 308 Time Theorems
|
||||
</button>
|
||||
<button class="o-time-study o-time-study--normal-dim o-time-study--bought">
|
||||
Bought Normal Dimension Study
|
||||
<button class="o-time-study o-time-study--antimatter-dim o-time-study--bought">
|
||||
Bought Antimatter Dimension Study
|
||||
<br>
|
||||
Currently: 1e308
|
||||
<br>
|
||||
Cost: 308 Time Theorems
|
||||
</button>
|
||||
<button class="o-time-study o-time-study--normal-dim o-time-study--unavailable">
|
||||
Unavailable Normal Dimension Study
|
||||
<button class="o-time-study o-time-study--antimatter-dim o-time-study--unavailable">
|
||||
Unavailable Antimatter Dimension Study
|
||||
<br>
|
||||
Currently: 1e308
|
||||
<br>
|
||||
|
@ -549,12 +549,12 @@
|
|||
<line x1="0" y1="10" x2="100" y2="10" class="o-time-study-connection o-time-study-connection--bought"></line>
|
||||
</svg>
|
||||
|
||||
<span>Normal Dim</span>
|
||||
<span>Antimatter Dim</span>
|
||||
<svg class="c-time-study-connection-svg">
|
||||
<line x1="0" y1="10" x2="100" y2="10" class="o-time-study-connection o-time-study-connection--normal-dim"></line>
|
||||
<line x1="0" y1="10" x2="100" y2="10" class="o-time-study-connection o-time-study-connection--antimatter-dim"></line>
|
||||
</svg>
|
||||
<svg class="c-time-study-connection-svg">
|
||||
<line x1="0" y1="10" x2="100" y2="10" class="o-time-study-connection o-time-study-connection--bought o-time-study-connection--normal-dim"></line>
|
||||
<line x1="0" y1="10" x2="100" y2="10" class="o-time-study-connection o-time-study-connection--bought o-time-study-connection--antimatter-dim"></line>
|
||||
</svg>
|
||||
|
||||
<span>Infinity Dim</span>
|
||||
|
|
Loading…
Reference in New Issue
Block a user