mirror of
https://github.com/IvarK/AntimatterDimensionsSourceCode.git
synced 2024-11-24 21:21:59 +00:00
Add exit challenge confirmation
This commit is contained in:
parent
55a6135f5f
commit
77a7f9fe71
@ -2347,18 +2347,6 @@ br {
|
|||||||
|
|
||||||
/* #endregion c-game-header__antimatter */
|
/* #endregion c-game-header__antimatter */
|
||||||
|
|
||||||
.l-game-header__challenge-text {
|
|
||||||
display: flex;
|
|
||||||
height: 2rem;
|
|
||||||
top: 50%;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
font-size: 1.2rem;
|
|
||||||
font-weight: bold;
|
|
||||||
color: var(--color-text);
|
|
||||||
margin: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.l-game-header__buttons-line {
|
.l-game-header__buttons-line {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
<script>
|
|
||||||
import ModalWrapperChoice from "@/components/modals/ModalWrapperChoice";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: "ExitCelestialModal",
|
|
||||||
components: {
|
|
||||||
ModalWrapperChoice
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
isRestarting: false
|
|
||||||
};
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
update() {
|
|
||||||
this.isRestarting = player.options.retryCelestial;
|
|
||||||
},
|
|
||||||
handleYesClick() {
|
|
||||||
beginProcessReality(getRealityProps(true));
|
|
||||||
EventHub.ui.offAll(this);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<ModalWrapperChoice
|
|
||||||
option="resetCelestial"
|
|
||||||
@confirm="handleYesClick"
|
|
||||||
>
|
|
||||||
<template #header>
|
|
||||||
You are about to {{ isRestarting ? "restart" : "exit" }} a Celestial Reality
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<div class="c-modal-message__text">
|
|
||||||
<span v-if="isRestarting">
|
|
||||||
Restarting a Celestial's Reality will reset your Reality and
|
|
||||||
immediately enter you into this Celestial again, without the benefits of completing the Celestial.
|
|
||||||
</span>
|
|
||||||
<span v-else>
|
|
||||||
Exiting a Celestial's Reality early will reset your Reality and
|
|
||||||
exit the Celestial without the benefits of completing the Celestial.
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<template #confirm-text>
|
|
||||||
{{ isRestarting ? "Restart" : "Exit" }}
|
|
||||||
</template>
|
|
||||||
</ModalWrapperChoice>
|
|
||||||
</template>
|
|
68
src/components/modals/prestige/ExitChallengeModal.vue
Normal file
68
src/components/modals/prestige/ExitChallengeModal.vue
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
<script>
|
||||||
|
import ModalWrapperChoice from "@/components/modals/ModalWrapperChoice";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "ExitChallengeModal",
|
||||||
|
components: {
|
||||||
|
ModalWrapperChoice
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
challengeName: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
normalName: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
hasHigherLayers: {
|
||||||
|
type: Boolean,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
exitFn: {
|
||||||
|
type: Function,
|
||||||
|
required: true,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
isCelestial() {
|
||||||
|
return this.challengeName.match("Reality");
|
||||||
|
},
|
||||||
|
isRestarting() {
|
||||||
|
return this.isCelestial ? player.options.retryCelestial : player.options.retryChallenge;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleYesClick() {
|
||||||
|
this.exitFn();
|
||||||
|
EventHub.ui.offAll(this);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<ModalWrapperChoice
|
||||||
|
option="exitChallenge"
|
||||||
|
@confirm="handleYesClick"
|
||||||
|
>
|
||||||
|
<template #header>
|
||||||
|
You are about to {{ isRestarting ? "restart" : "exit" }} {{ challengeName }}
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<div class="c-modal-message__text">
|
||||||
|
<span v-if="isRestarting">
|
||||||
|
You will immediately re-enter {{ challengeName }} again after confirming this modal.
|
||||||
|
</span>
|
||||||
|
<span v-else>
|
||||||
|
This will place you back into a regular {{ normalName }} without any restrictions.
|
||||||
|
</span>
|
||||||
|
<span v-if="hasHigherLayers">
|
||||||
|
However, other effects coming from higher-layer restrictions will still continue to apply.
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<template #confirm-text>
|
||||||
|
{{ isRestarting ? "Restart" : "Exit" }}
|
||||||
|
</template>
|
||||||
|
</ModalWrapperChoice>
|
||||||
|
</template>
|
@ -112,17 +112,35 @@ export default {
|
|||||||
this.resetCelestial = player.options.retryCelestial;
|
this.resetCelestial = player.options.retryCelestial;
|
||||||
this.inPelle = Pelle.isDoomed;
|
this.inPelle = Pelle.isDoomed;
|
||||||
},
|
},
|
||||||
// Process exit requests from the inside out; exit any Challenges first, then dilation, then Celestial Reality
|
// Process exit requests from the inside out; Challenges first, then dilation, then Celestial Reality. If the
|
||||||
|
// relevant option is toggled, we pass a bunch of information over to a modal - otherwise we immediately exit
|
||||||
exitButtonClicked() {
|
exitButtonClicked() {
|
||||||
const current = Player.anyChallenge;
|
let names, clickFn;
|
||||||
if (Player.isInAnyChallenge) {
|
if (Player.isInAnyChallenge) {
|
||||||
current.exit();
|
// Regex replacement is used to remove the "(X/Y)" which appears after ECs. The ternary statement is there
|
||||||
|
// because this path gets called for NCs, ICs, and ECs
|
||||||
|
const toExit = this.activeChallengeNames[this.activeChallengeNames.length - 1].replace(/\W+\(.*\)/u, "");
|
||||||
|
names = { chall: toExit, normal: toExit.match("Eternity") ? "Eternity" : "Infinity" };
|
||||||
|
clickFn = () => Player.anyChallenge.exit();
|
||||||
} else if (player.dilation.active) {
|
} else if (player.dilation.active) {
|
||||||
startDilatedEternityRequest();
|
names = { chall: "Time Dilation", normal: "Eternity" };
|
||||||
} else if (player.options.confirmations.resetCelestial) {
|
clickFn = () => startDilatedEternityRequest();
|
||||||
Modal.exitCelestialReality.show();
|
|
||||||
} else {
|
} else {
|
||||||
beginProcessReality(getRealityProps(true));
|
names = { chall: this.activeChallengeNames[0], normal: "Reality" };
|
||||||
|
clickFn = () => beginProcessReality(getRealityProps(true));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (player.options.confirmations.exitChallenge) {
|
||||||
|
Modal.exitChallenge.show(
|
||||||
|
{
|
||||||
|
challengeName: names.chall,
|
||||||
|
normalName: names.normal,
|
||||||
|
hasHigherLayers: this.inPelle || this.activeChallengeNames.length > 1,
|
||||||
|
exitFn: clickFn
|
||||||
|
}
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
clickFn();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// Bring the player to the tab related to the innermost challenge
|
// Bring the player to the tab related to the innermost challenge
|
||||||
@ -186,6 +204,18 @@ export default {
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
.l-game-header__challenge-text {
|
||||||
|
display: flex;
|
||||||
|
height: 2rem;
|
||||||
|
top: 50%;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
font-weight: bold;
|
||||||
|
color: var(--color-text);
|
||||||
|
margin: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
.l-challenge-display {
|
.l-challenge-display {
|
||||||
padding: 0.5rem;
|
padding: 0.5rem;
|
||||||
cursor: default;
|
cursor: default;
|
||||||
|
@ -16,7 +16,7 @@ import DimensionBoostModal from "@/components/modals/prestige/DimensionBoostModa
|
|||||||
import EnterCelestialsModal from "@/components/modals/prestige/EnterCelestialsModal";
|
import EnterCelestialsModal from "@/components/modals/prestige/EnterCelestialsModal";
|
||||||
import EnterDilationModal from "@/components/modals/prestige/EnterDilationModal";
|
import EnterDilationModal from "@/components/modals/prestige/EnterDilationModal";
|
||||||
import EternityModal from "@/components/modals/prestige/EternityModal";
|
import EternityModal from "@/components/modals/prestige/EternityModal";
|
||||||
import ExitCelestialModal from "@/components/modals/prestige/ExitCelestialModal";
|
import ExitChallengeModal from "@/components/modals/prestige/ExitChallengeModal";
|
||||||
import ExitDilationModal from "@/components/modals/prestige/ExitDilationModal";
|
import ExitDilationModal from "@/components/modals/prestige/ExitDilationModal";
|
||||||
import HardResetModal from "@/components/modals/prestige/HardResetModal";
|
import HardResetModal from "@/components/modals/prestige/HardResetModal";
|
||||||
import ModifySeedModal from "@/components/modals/ModifySeedModal";
|
import ModifySeedModal from "@/components/modals/ModifySeedModal";
|
||||||
@ -198,13 +198,13 @@ Modal.dimensionBoost = new Modal(DimensionBoostModal, 1, GAME_EVENT.DIMBOOST_AFT
|
|||||||
|
|
||||||
Modal.antimatterGalaxy = new Modal(AntimatterGalaxyModal, 1, GAME_EVENT.GALAXY_RESET_AFTER);
|
Modal.antimatterGalaxy = new Modal(AntimatterGalaxyModal, 1, GAME_EVENT.GALAXY_RESET_AFTER);
|
||||||
Modal.bigCrunch = new Modal(BigCrunchModal, 1, GAME_EVENT.BIG_CRUNCH_AFTER);
|
Modal.bigCrunch = new Modal(BigCrunchModal, 1, GAME_EVENT.BIG_CRUNCH_AFTER);
|
||||||
|
Modal.exitChallenge = new Modal(ExitChallengeModal, 1, GAME_EVENT.REALITY_RESET_AFTER);
|
||||||
Modal.replicantiGalaxy = new Modal(ReplicantiGalaxyModal, 1, GAME_EVENT.ETERNITY_RESET_AFTER);
|
Modal.replicantiGalaxy = new Modal(ReplicantiGalaxyModal, 1, GAME_EVENT.ETERNITY_RESET_AFTER);
|
||||||
Modal.eternity = new Modal(EternityModal, 1, GAME_EVENT.ETERNITY_RESET_AFTER);
|
Modal.eternity = new Modal(EternityModal, 1, GAME_EVENT.ETERNITY_RESET_AFTER);
|
||||||
Modal.enterDilation = new Modal(EnterDilationModal, 1, GAME_EVENT.REALITY_RESET_AFTER);
|
Modal.enterDilation = new Modal(EnterDilationModal, 1, GAME_EVENT.REALITY_RESET_AFTER);
|
||||||
Modal.exitDilation = new Modal(ExitDilationModal, 1, GAME_EVENT.REALITY_RESET_AFTER);
|
Modal.exitDilation = new Modal(ExitDilationModal, 1, GAME_EVENT.REALITY_RESET_AFTER);
|
||||||
Modal.reality = new Modal(RealityModal, 1, GAME_EVENT.REALITY_RESET_AFTER);
|
Modal.reality = new Modal(RealityModal, 1, GAME_EVENT.REALITY_RESET_AFTER);
|
||||||
Modal.resetReality = new Modal(ResetRealityModal, 1, GAME_EVENT.REALITY_RESET_AFTER);
|
Modal.resetReality = new Modal(ResetRealityModal, 1, GAME_EVENT.REALITY_RESET_AFTER);
|
||||||
Modal.exitCelestialReality = new Modal(ExitCelestialModal, 1, GAME_EVENT.REALITY_RESET_AFTER);
|
|
||||||
Modal.celestials = new Modal(EnterCelestialsModal, 1);
|
Modal.celestials = new Modal(EnterCelestialsModal, 1);
|
||||||
Modal.hardReset = new Modal(HardResetModal, 1);
|
Modal.hardReset = new Modal(HardResetModal, 1);
|
||||||
Modal.enterSpeedrun = new Modal(SpeedrunModeModal);
|
Modal.enterSpeedrun = new Modal(SpeedrunModeModal);
|
||||||
|
@ -819,6 +819,7 @@ window.player = {
|
|||||||
armageddon: true,
|
armageddon: true,
|
||||||
sacrifice: true,
|
sacrifice: true,
|
||||||
challenges: true,
|
challenges: true,
|
||||||
|
exitChallenge: true,
|
||||||
eternity: true,
|
eternity: true,
|
||||||
dilation: true,
|
dilation: true,
|
||||||
resetReality: true,
|
resetReality: true,
|
||||||
|
@ -21,6 +21,10 @@ GameDatabase.confirmationTypes = [
|
|||||||
name: "Challenges",
|
name: "Challenges",
|
||||||
option: "challenges",
|
option: "challenges",
|
||||||
isUnlocked: () => PlayerProgress.infinityUnlocked(),
|
isUnlocked: () => PlayerProgress.infinityUnlocked(),
|
||||||
|
}, {
|
||||||
|
name: "Exit Challenges",
|
||||||
|
option: "exitChallenge",
|
||||||
|
isUnlocked: () => PlayerProgress.infinityUnlocked(),
|
||||||
}, {
|
}, {
|
||||||
name: "Replicanti Galaxy",
|
name: "Replicanti Galaxy",
|
||||||
option: "replicantiGalaxy",
|
option: "replicantiGalaxy",
|
||||||
|
Loading…
Reference in New Issue
Block a user