rename normal dims to antimatter dims, and standardize wording used to refer to them

This commit is contained in:
Omsi 2020-05-27 00:01:15 -07:00
parent 36e7c1e4c1
commit 174321cc7c
78 changed files with 447 additions and 438 deletions

View File

@ -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>

View File

@ -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">

View File

@ -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>

View File

@ -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

View File

@ -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>`,
});

View File

@ -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"
>

View File

@ -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"

View File

@ -1,6 +1,6 @@
"use strict";
Vue.component("normal-dim-tab-progress-bar", {
Vue.component("antimatter-dim-tab-progress-bar", {
data() {
return {
fill: 0,

View File

@ -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>`
});

View File

@ -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">

View File

@ -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`;

View File

@ -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";

View File

@ -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";

View File

@ -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>`
});

View File

@ -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) {

View File

@ -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;

View File

@ -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

View File

@ -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>`
});

View File

@ -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>`
});

View File

@ -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

View File

@ -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.`;

View File

@ -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: {

View File

@ -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.`;

View File

@ -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"
},

View File

@ -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,

View File

@ -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:

View File

@ -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" },
{

View File

@ -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, {

View File

@ -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);

View File

@ -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();
};

View File

@ -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),

View File

@ -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];

View File

@ -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();
}
}

View File

@ -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,

View File

@ -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;
}

View File

@ -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);

View File

@ -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) {

View File

@ -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);
}
}
};

View File

@ -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);

View File

@ -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);

View File

@ -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();

View File

@ -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);

View File

@ -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)),

View File

@ -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
}))
},

View File

@ -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);

View File

@ -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);

View File

@ -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."

View File

@ -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,

View File

@ -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: {

View File

@ -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,

View File

@ -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
}
]

View File

@ -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: {

View File

@ -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"),

View File

@ -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"
}

View File

@ -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)
},

View File

@ -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,

View File

@ -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()))
}

View File

@ -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)
},
];
}());

View File

@ -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

View File

@ -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({

View File

@ -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: {

View File

@ -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 Hevis 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 Slabdrills 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 Slabdrills 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 Slabdrills 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 Slabdrills words echoed in their heads.",
get unlocked() { return PlayerProgress.eternityUnlocked(); }
},
{

View File

@ -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",
]
},

View File

@ -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,

View File

@ -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)),
}
};

View File

@ -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"
},
{

View File

@ -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;
}
],

View File

@ -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);

View File

@ -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) {

View File

@ -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++;
}
}

View File

@ -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;

View File

@ -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)
}
];

View File

@ -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();
}

View File

@ -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
}

View File

@ -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;

View File

@ -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*/

View File

@ -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;
}

View File

@ -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>