mirror of
https://github.com/IvarK/AntimatterDimensionsSourceCode.git
synced 2024-11-22 20:22:51 +00:00
Merge branch 'master' into doomed-achievs-and-reality-study
This commit is contained in:
commit
e43e98bfa1
@ -47,7 +47,7 @@ Vue.component("ra-tab", {
|
||||
scalingUpgradeVisible: () => Math.clampMax(Math.floor(Ra.pets.v.level / 5), 4) > 0,
|
||||
scalingUpgradeText: level => {
|
||||
const triadCount = Math.clampMax(Math.floor(level / 5), 4);
|
||||
return `You have unlocked ${quantifyInt("Triad Study", triadCount)}.`;
|
||||
return `You have unlocked ${formatInt(triadCount)}/${formatInt(4)} Triad Studies.`;
|
||||
},
|
||||
}
|
||||
],
|
||||
|
@ -86,6 +86,9 @@ Vue.component("header-challenge-display", {
|
||||
return this.activeChallengeNames.some(str => str.match(/Eternity Challenge (4|12)/gu));
|
||||
},
|
||||
challengeDisplay() {
|
||||
if (this.inPelle && this.activeChallengeNames.length > 0) {
|
||||
return `a Doomed Reality + ${this.activeChallengeNames.join(" + ")}. Good luck.`;
|
||||
}
|
||||
if (this.inPelle) return "a Doomed Reality. Good luck.";
|
||||
if (this.activeChallengeNames.length === 0) {
|
||||
return "the Antimatter Universe (no active challenges)";
|
||||
|
@ -155,7 +155,6 @@ Vue.component("equipped-glyphs", {
|
||||
<!-- the drop zone is a bit larger than the glyph itself. -->
|
||||
<div
|
||||
class="l-equipped-glyphs__dropzone"
|
||||
v-on="dragEvents(idx)"
|
||||
/>
|
||||
<GlyphComponent
|
||||
v-if="glyph"
|
||||
|
@ -124,7 +124,7 @@ export const V_UNLOCKS = {
|
||||
},
|
||||
ND_POW: {
|
||||
id: 2,
|
||||
reward: "Antimatter Dimension power based on Space Theorems.",
|
||||
reward: "Antimatter Dimension power based on total Space Theorems.",
|
||||
get description() { return `Have ${formatInt(5)} V-Achievements`; },
|
||||
effect: () => 1 + Math.sqrt(V.spaceTheorems) / 100,
|
||||
format: x => formatPow(x, 3, 3),
|
||||
|
@ -783,7 +783,7 @@ export const RA_UNLOCKS = {
|
||||
id: 23,
|
||||
description: "Get V to level 5",
|
||||
reward: () => `All Memory Chunks produce more Memories based on total Celestial levels,
|
||||
and unlock a Triad Study every ${formatInt(5)} levels.
|
||||
and unlock a Triad Study every ${formatInt(5)} levels (to a maximum of ${formatInt(4)} Triad Studies).
|
||||
Triad Studies are located at the bottom of the Time Studies page`,
|
||||
pet: Ra.pets.v,
|
||||
level: 5,
|
||||
|
@ -225,7 +225,10 @@ export const Glyphs = {
|
||||
sameSpecialTypeIndex = this.active.findIndex(x => x && x.type === glyph.type);
|
||||
}
|
||||
if (this.active[targetSlot] === null) {
|
||||
if (sameSpecialTypeIndex >= 0) return;
|
||||
if (sameSpecialTypeIndex >= 0) {
|
||||
Modal.message.show(`You may only have one ${glyph.type.capitalize()} Glyph equipped`);
|
||||
return;
|
||||
}
|
||||
this.removeFromInventory(glyph);
|
||||
this.saveUndo(targetSlot);
|
||||
player.reality.glyphs.active.push(glyph);
|
||||
@ -239,7 +242,7 @@ export const Glyphs = {
|
||||
} else {
|
||||
// We can only replace effarig/reality glyph
|
||||
if (sameSpecialTypeIndex >= 0 && sameSpecialTypeIndex !== targetSlot) {
|
||||
Modal.message.show(`You may only have one ${glyph.type} glyph equipped`);
|
||||
Modal.message.show(`You may only have one ${glyph.type.capitalize()} Glyph equipped`);
|
||||
return;
|
||||
}
|
||||
if (!player.options.confirmations.glyphReplace) {
|
||||
@ -260,7 +263,7 @@ export const Glyphs = {
|
||||
this.addToInventory(glyph, freeIndex);
|
||||
}
|
||||
if (player.reality.glyphs.active.length) {
|
||||
Modal.message.show("Some of your glyphs could not be unequipped due to lack of inventory space.");
|
||||
Modal.message.show("Some of your Glyphs could not be unequipped due to lack of inventory space.");
|
||||
}
|
||||
this.updateRealityGlyphEffects();
|
||||
this.updateMaxGlyphCount();
|
||||
|
@ -148,6 +148,26 @@ export const GlyphGenerator = {
|
||||
};
|
||||
},
|
||||
|
||||
// These Glyphs are given on entering Doomed to prevent the player
|
||||
// from having none of each basic glyphs which are requied to beat pelle
|
||||
doomedGlyph(type) {
|
||||
const effectList = Object.values(GameDatabase.reality.glyphEffects).filter(e => e.id.startsWith(type));
|
||||
effectList.push(GameDatabase.reality.glyphEffects.timespeed);
|
||||
let bitmask = 0;
|
||||
// eslint-disable-next-line no-bitwise
|
||||
for (const effect of effectList) bitmask |= 1 << effect.bitmaskIndex;
|
||||
const glyphLevel = Math.max(player.records.bestReality.glyphLevel, 5000);
|
||||
return {
|
||||
id: undefined,
|
||||
idx: null,
|
||||
type,
|
||||
strength: 3.5,
|
||||
level: glyphLevel,
|
||||
rawLevel: glyphLevel,
|
||||
effects: bitmask,
|
||||
};
|
||||
},
|
||||
|
||||
companionGlyph(eternityPoints) {
|
||||
// Store the pre-Reality EP value in the glyph's rarity
|
||||
const str = rarityToStrength(eternityPoints.log10() / 1e6);
|
||||
|
@ -31,7 +31,7 @@ export const GlyphSacrificeHandler = {
|
||||
else Modal.glyphDelete.show({ idx: glyph.idx });
|
||||
},
|
||||
glyphSacrificeGain(glyph) {
|
||||
if (!this.canSacrifice) return 0;
|
||||
if (!this.canSacrifice || Pelle.isDoomed) return 0;
|
||||
if (glyph.type === "reality") return 0.01 * glyph.level * Achievement(171).effectOrDefault(1);
|
||||
const pre10kFactor = Math.pow(Math.clampMax(glyph.level, 10000) + 10, 2.5);
|
||||
const post10kFactor = 1 + Math.clampMin(glyph.level - 10000, 0) / 100;
|
||||
@ -40,6 +40,7 @@ export const GlyphSacrificeHandler = {
|
||||
Teresa.runRewardMultiplier * Achievement(171).effectOrDefault(1), power);
|
||||
},
|
||||
sacrificeGlyph(glyph, force = false) {
|
||||
if (Pelle.isDoomed) return;
|
||||
// This also needs to be here because this method is called directly from drag-and-drop sacrificing
|
||||
if (this.handleSpecialGlyphTypes(glyph)) return;
|
||||
const toGain = this.glyphSacrificeGain(glyph);
|
||||
@ -117,6 +118,7 @@ export const GlyphSacrificeHandler = {
|
||||
|
||||
},
|
||||
refineGlyph(glyph) {
|
||||
if (Pelle.isDoomed) return;
|
||||
const resource = this.glyphAlchemyResource(glyph);
|
||||
// This technically completely trashes the glyph for no rewards if not unlocked, but this will only happen ever
|
||||
// if the player specificially tries to do so (in which case they're made aware that it's useless) or if the
|
||||
|
@ -32,7 +32,7 @@ GameDatabase.celestials.pelle = (function() {
|
||||
}),
|
||||
glyphLevels: rebuyable({
|
||||
id: "glyphLevels",
|
||||
description: `Increase the glyph level allowed in Pelle`,
|
||||
description: `Increase the Glyph level allowed in Pelle`,
|
||||
_cost: x => Decimal.pow(30, x).times(Decimal.pow(1e3, x - 25).max(1)).times(1e15),
|
||||
_effect: x => Math.floor(((3 * (x + 1)) - 2) ** 1.6),
|
||||
_formatEffect: x => `${format(Math.floor(((3 * (x + 1)) - 2) ** 1.6), 2)} ➜ ` +
|
||||
@ -41,7 +41,7 @@ GameDatabase.celestials.pelle = (function() {
|
||||
}),
|
||||
infConversion: rebuyable({
|
||||
id: "infConversion",
|
||||
description: `Increase infinity power conversion rate`,
|
||||
description: `Increase Infinity Power conversion rate`,
|
||||
_cost: x => Decimal.pow(40, x).times(Decimal.pow(1e3, x - 20).max(1)).times(1e18),
|
||||
_effect: x => (x * 3.5) ** 0.37,
|
||||
_formatEffect: x => `+${format((x * 3.5) ** 0.37, 2, 2)} ➜ ` +
|
||||
@ -50,7 +50,7 @@ GameDatabase.celestials.pelle = (function() {
|
||||
}),
|
||||
galaxyPower: rebuyable({
|
||||
id: "galaxyPower",
|
||||
description: `Multiply galaxy power`,
|
||||
description: `Multiply Galaxy power`,
|
||||
_cost: x => Decimal.pow(1000, x).times(Decimal.pow(1e3, x - 10).max(1)).times(1e30),
|
||||
_effect: x => 1 + x / 50,
|
||||
_formatEffect: x => `${formatX(1 + x / 50, 2, 2)} ➜ ` +
|
||||
@ -139,7 +139,7 @@ GameDatabase.celestials.pelle = (function() {
|
||||
},
|
||||
timeStudiesNoReset: {
|
||||
id: 14,
|
||||
description: "Time studies and Theorems do not reset on Armageddon",
|
||||
description: "Time Studies and Theorems do not reset on Armageddon",
|
||||
cost: 1e21,
|
||||
formatCost: c => format(c, 2),
|
||||
},
|
||||
@ -169,7 +169,7 @@ GameDatabase.celestials.pelle = (function() {
|
||||
},
|
||||
dimBoostResetsNothing: {
|
||||
id: 19,
|
||||
description: "Dimension boosts no longer reset anything",
|
||||
description: "Dimension Boosts no longer reset anything",
|
||||
cost: 1e50,
|
||||
formatCost: c => format(c, 2),
|
||||
},
|
||||
@ -235,11 +235,11 @@ GameDatabase.celestials.pelle = (function() {
|
||||
milestones: [
|
||||
{
|
||||
requirement: 0.04,
|
||||
description: "You can equip a single basic glyph with decreased level and rarity"
|
||||
description: "You can equip a single basic Glyph with decreased level and rarity"
|
||||
},
|
||||
{
|
||||
requirement: 0.06,
|
||||
description: "Make replicanti unlock and its upgrades 1e130x cheaper, and it's uncapped"
|
||||
description: "Make Replicanti unlock and its upgrades 1e130x cheaper, and it's uncapped"
|
||||
},
|
||||
{
|
||||
requirement: 0.4,
|
||||
@ -254,8 +254,8 @@ GameDatabase.celestials.pelle = (function() {
|
||||
key: "pestilence",
|
||||
name: "Pestilence",
|
||||
spendable: true,
|
||||
description: "When active, spends 3% of your replicanti per second to increase Pestilence.",
|
||||
effectDescription: x => `You gain replicanti ${formatX(x, 2, 2)} faster`,
|
||||
description: "When active, spends 3% of your Replicanti per second to increase Pestilence.",
|
||||
effectDescription: x => `You gain Replicanti ${formatX(x, 2, 2)} faster`,
|
||||
strike: () => PelleStrikes.powerGalaxies,
|
||||
// 0 - 1
|
||||
percentage: totalFill => totalFill.plus(1).log10() * 0.05 / 100,
|
||||
@ -276,7 +276,7 @@ GameDatabase.celestials.pelle = (function() {
|
||||
},
|
||||
{
|
||||
requirement: 0.6,
|
||||
description: "When replicanti amount exceeds 1e1300, your galaxies are 10% more effective"
|
||||
description: "When Replicanti amount exceeds 1e1300, your Galaxies are 10% more effective"
|
||||
},
|
||||
{
|
||||
requirement: 1,
|
||||
@ -315,7 +315,7 @@ GameDatabase.celestials.pelle = (function() {
|
||||
}
|
||||
}),
|
||||
milestones: [
|
||||
// It's just a tad under 20% because 20% takes a crapton of time
|
||||
// It's just a tad under 10% because 10% takes a crapton of time
|
||||
{
|
||||
requirement: 0.0999,
|
||||
description: "Pestilence effect is always maxed and milestones always active"
|
||||
@ -323,7 +323,7 @@ GameDatabase.celestials.pelle = (function() {
|
||||
{
|
||||
requirement: 0.15,
|
||||
description: () => {
|
||||
const base = "Gain a bonus based on glyph equipped:";
|
||||
const base = "Gain a bonus based on Glyph equipped:";
|
||||
|
||||
switch (Pelle.activeGlyphType) {
|
||||
case "infinity": return `${base} IP multiplier based on IP`;
|
||||
@ -333,7 +333,7 @@ GameDatabase.celestials.pelle = (function() {
|
||||
case "power": return `${base} Galaxies are 2% stronger`;
|
||||
case "companion": return `${base} You feel 34% better`;
|
||||
|
||||
default: return `${base} no glyph equipped!`;
|
||||
default: return `${base} no Glyph equipped!`;
|
||||
}
|
||||
},
|
||||
effect: () => {
|
||||
@ -393,7 +393,7 @@ GameDatabase.celestials.pelle = (function() {
|
||||
key: "death",
|
||||
name: "Death",
|
||||
description: "When active, spends 3% of your Dilated Time per second to increase Death.",
|
||||
effectDescription: x => `All dimensions are raised to ${formatPow(x, 2, 3)}`,
|
||||
effectDescription: x => `All Dimensions are raised to ${formatPow(x, 2, 3)}`,
|
||||
strike: () => PelleStrikes.dilation,
|
||||
percentage: totalFill => totalFill.plus(1).log10() / 100,
|
||||
percentageToFill: percentage => Decimal.pow10(percentage * 100).minus(1),
|
||||
@ -402,11 +402,11 @@ GameDatabase.celestials.pelle = (function() {
|
||||
milestones: [
|
||||
{
|
||||
requirement: 0.15,
|
||||
description: "Time Dimensions 5-8 are much cheaper, unlock more dilation upgrades"
|
||||
description: "Time Dimensions 5-8 are much cheaper, unlock more Dilation upgrades"
|
||||
},
|
||||
{
|
||||
requirement: 0.25,
|
||||
description: "Raise tachyon particle effect to Dilated Time gain to ^1.4",
|
||||
description: "Raise Tachyon Particle effect to Dilated Time gain to ^1.4",
|
||||
},
|
||||
{
|
||||
requirement: 0.5,
|
||||
@ -423,7 +423,7 @@ GameDatabase.celestials.pelle = (function() {
|
||||
galaxyGeneratorUpgrades: {
|
||||
additive: rebuyable({
|
||||
id: "galaxyGeneratorAdditive",
|
||||
description: `Increase base galaxy generation by 2`,
|
||||
description: `Increase base Galaxy generation by 2`,
|
||||
_cost: x => Decimal.pow(3, x),
|
||||
_effect: x => x * 2,
|
||||
_formatEffect: x => `${format(x * 2, 2, 2)}/s`,
|
||||
@ -440,7 +440,7 @@ GameDatabase.celestials.pelle = (function() {
|
||||
}),
|
||||
multiplicative: rebuyable({
|
||||
id: "galaxyGeneratorMultiplicative",
|
||||
description: `Multiply galaxy generation`,
|
||||
description: `Multiply Galaxy generation`,
|
||||
_cost: x => Decimal.pow(10, x),
|
||||
_effect: x => Decimal.pow(2.5, x),
|
||||
_formatEffect: x => `${formatX(Decimal.pow(2.5, x), 2, 1)} ➜ ${formatX(Decimal.pow(2.5, x + 1), 2, 1)}`,
|
||||
@ -457,7 +457,7 @@ GameDatabase.celestials.pelle = (function() {
|
||||
}),
|
||||
antimatterMult: rebuyable({
|
||||
id: "galaxyGeneratorAntimatterMult",
|
||||
description: `Multiply galaxy generation`,
|
||||
description: `Multiply Galaxy generation`,
|
||||
_cost: x => Decimal.pow("1e100000000", 10 ** x),
|
||||
_effect: x => Decimal.pow(2, x),
|
||||
_formatEffect: x => `${formatX(Decimal.pow(2, x), 2)} ➜ ${formatX(Decimal.pow(2, x + 1), 2)}`,
|
||||
@ -466,7 +466,7 @@ GameDatabase.celestials.pelle = (function() {
|
||||
}),
|
||||
IPMult: rebuyable({
|
||||
id: "galaxyGeneratorIPMult",
|
||||
description: `Multiply galaxy generation`,
|
||||
description: `Multiply Galaxy generation`,
|
||||
_cost: x => Decimal.pow("1e2000000", 100 ** x),
|
||||
_effect: x => Decimal.pow(2, x),
|
||||
_formatEffect: x => `${formatX(Decimal.pow(2, x), 2)} ➜ ${formatX(Decimal.pow(2, x + 1), 2)}`,
|
||||
@ -475,7 +475,7 @@ GameDatabase.celestials.pelle = (function() {
|
||||
}),
|
||||
EPMult: rebuyable({
|
||||
id: "galaxyGeneratorEPMult",
|
||||
description: `Multiply galaxy generation`,
|
||||
description: `Multiply Galaxy generation`,
|
||||
_cost: x => Decimal.pow("1e10000", 1000 ** x),
|
||||
_effect: x => Decimal.pow(2, x),
|
||||
_formatEffect: x => `${formatX(Decimal.pow(2, x), 2)} ➜ ${formatX(Decimal.pow(2, x + 1), 2)}`,
|
||||
|
@ -126,7 +126,7 @@ GameDatabase.reality.upgrades = (function() {
|
||||
name: "Existentially Prolong",
|
||||
id: 10,
|
||||
cost: 15,
|
||||
requirement: () => `Complete your first Eternity with at least ${format(DC.E450)} Infinity Points`,
|
||||
requirement: () => `Complete your first Eternity with at least ${formatPostBreak(DC.E450)} Infinity Points`,
|
||||
hasFailed: () => !player.requirementChecks.reality.noEternities,
|
||||
checkRequirement: () => Currency.infinityPoints.exponent >= 450 &&
|
||||
player.requirementChecks.reality.noEternities,
|
||||
|
@ -52,7 +52,7 @@ GameDatabase.speedrunMilestones = [
|
||||
{
|
||||
id: 7,
|
||||
key: "upgrade5e11IP",
|
||||
name: "5e11 IP Upgrade",
|
||||
get name() { return `${format(5e11)} IP Upgrade`; },
|
||||
description: () => `Purchase the ${formatPercents(0.5)} stronger Galaxies upgrade`,
|
||||
checkRequirement: () => true,
|
||||
// This is checked within BreakInfinityUpgrade.onPurchased
|
||||
|
@ -8997,7 +8997,14 @@ input.o-automator-block-input {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.s-base--metro .c-hide-modal-tab-button {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.c-hide-modal-tab-button {
|
||||
color: var(--color-text);
|
||||
background-color: var(--color-base);
|
||||
font: Typewriter, serif;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
@ -9005,10 +9012,19 @@ input.o-automator-block-input {
|
||||
height: 4rem;
|
||||
width: 12rem;
|
||||
margin: 0.2rem;
|
||||
border-color: black !important;
|
||||
box-shadow: none !important;
|
||||
border: 0.1rem solid black;
|
||||
border-radius: 0.4rem;
|
||||
box-shadow: none;
|
||||
white-space: normal;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
transition-duration: 0.2s;
|
||||
padding: 0.3rem 1rem;
|
||||
}
|
||||
|
||||
.c-hide-modal-tab-button:hover {
|
||||
color: var(--color-text-inverted);
|
||||
background-color: var(--color-good);
|
||||
}
|
||||
|
||||
.c-hide-modal-button--active {
|
||||
@ -9020,7 +9036,7 @@ input.o-automator-block-input {
|
||||
}
|
||||
|
||||
.c-hide-modal-button--always-visible {
|
||||
background-color: var(--color-disabled) !important;
|
||||
background-color: var(--color-disabled);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
@ -9030,46 +9046,46 @@ input.o-automator-block-input {
|
||||
|
||||
.c-hide-modal-tab-button--infinity {
|
||||
color: var(--color-infinity);
|
||||
background: var(--color-prestige--accent) !important;
|
||||
border-color: var(--color-infinity) !important;
|
||||
background: var(--color-prestige--accent);
|
||||
border-color: var(--color-infinity);
|
||||
}
|
||||
|
||||
.c-hide-modal-tab-button--infinity:hover {
|
||||
color: var(--color-prestige--accent);
|
||||
background: var(--color-infinity) !important;
|
||||
background: var(--color-infinity);
|
||||
}
|
||||
|
||||
.c-hide-modal-tab-button--eternity {
|
||||
color: var(--color-eternity);
|
||||
background: var(--color-prestige--accent) !important;
|
||||
border-color: var(--color-eternity) !important;
|
||||
background: var(--color-prestige--accent);
|
||||
border-color: var(--color-eternity)
|
||||
}
|
||||
|
||||
.c-hide-modal-tab-button--eternity:hover {
|
||||
color: var(--color-prestige--accent);
|
||||
background: var(--color-eternity) !important;
|
||||
background: var(--color-eternity);
|
||||
}
|
||||
|
||||
.c-hide-modal-tab-button--reality {
|
||||
color: var(--color-reality);
|
||||
background: var(--color-prestige--accent) !important;
|
||||
border-color: var(--color-reality) !important;
|
||||
background: var(--color-prestige--accent);
|
||||
border-color: var(--color-reality);
|
||||
}
|
||||
|
||||
.c-hide-modal-tab-button--reality:hover {
|
||||
color: var(--color-prestige--accent);
|
||||
background: var(--color-reality) !important;
|
||||
background: var(--color-reality);
|
||||
}
|
||||
|
||||
.c-hide-modal-tab-button--celestials {
|
||||
color: var(--color-celestials);
|
||||
background: var(--color-prestige--accent) !important;
|
||||
border-color: var(--color-celestials) !important;
|
||||
background: var(--color-prestige--accent);
|
||||
border-color: var(--color-celestials);
|
||||
}
|
||||
|
||||
.c-hide-modal-tab-button--celestials:hover {
|
||||
color: var(--color-prestige--accent);
|
||||
background: var(--color-celestials) !important;
|
||||
background: var(--color-celestials);
|
||||
}
|
||||
|
||||
/* Prevent any themes overriding font awesome */
|
||||
|
@ -38,4 +38,4 @@
|
||||
|
||||
.o-celestial-nav__legend-text {
|
||||
fill: transparent !important;
|
||||
}
|
||||
}
|
@ -23,7 +23,6 @@ export default {
|
||||
},
|
||||
classObject() {
|
||||
return {
|
||||
"o-primary-btn": true,
|
||||
"c-hide-modal-tab-button": true,
|
||||
"c-hide-modal-button--active": !this.hidden,
|
||||
"c-hide-modal-button--inactive": this.hidden,
|
||||
|
@ -30,7 +30,6 @@ export default {
|
||||
},
|
||||
classObjectButton() {
|
||||
return {
|
||||
"o-primary-btn": true,
|
||||
"c-hide-modal-tab-button": true,
|
||||
"c-hide-modal-button--active": !this.hidden,
|
||||
"c-hide-modal-button--inactive": this.hidden,
|
||||
|
@ -85,7 +85,7 @@ export default {
|
||||
property="glyph"
|
||||
/>
|
||||
<div v-if="isOverCap">
|
||||
Autobuyer will trigger at the glyph level cap of {{ formatInt(levelCap) }}.
|
||||
Autobuyer will trigger at the Glyph level cap of {{ formatInt(levelCap) }}.
|
||||
</div>
|
||||
</template>
|
||||
</AutobuyerBox>
|
||||
|
@ -66,7 +66,6 @@ export default {
|
||||
Glyphs.refreshActive();
|
||||
player.celestials.pelle.doomed = true;
|
||||
Pelle.armageddon(false);
|
||||
Glyphs.unequipAll();
|
||||
respecTimeStudies(true);
|
||||
Currency.infinityPoints.reset();
|
||||
player.infMult = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user