generated from nhcarrigan/template
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
2827ddef72
|
|||
|
34f2b250f3
|
@@ -149,7 +149,7 @@ export const defaultAchievements: Array<Achievement> = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
condition: { amount: 18, type: "bossesDefeated" },
|
condition: { amount: 18, type: "bossesDefeated" },
|
||||||
description: "Defeat all 18 bosses across the first six zones.",
|
description: "Defeat the 18 bosses of the mortal realms.",
|
||||||
icon: "🌟",
|
icon: "🌟",
|
||||||
id: "devourer_slayer",
|
id: "devourer_slayer",
|
||||||
name: "World Saver",
|
name: "World Saver",
|
||||||
@@ -269,6 +269,33 @@ export const defaultAchievements: Array<Achievement> = [
|
|||||||
reward: { crystals: 50_000 },
|
reward: { crystals: 50_000 },
|
||||||
unlockedAt: null,
|
unlockedAt: null,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
condition: { amount: 1e30, type: "totalGoldEarned" },
|
||||||
|
description: "Earn 1 nonillion gold in total.",
|
||||||
|
icon: "🌌",
|
||||||
|
id: "cosmic_wealthy",
|
||||||
|
name: "Cosmic Wealthy",
|
||||||
|
reward: { crystals: 100_000 },
|
||||||
|
unlockedAt: null,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
condition: { amount: 1e60, type: "totalGoldEarned" },
|
||||||
|
description: "Earn a vigintillion gold in total.",
|
||||||
|
icon: "♾️",
|
||||||
|
id: "infinite_hoarder",
|
||||||
|
name: "Infinite Hoarder",
|
||||||
|
reward: { crystals: 250_000 },
|
||||||
|
unlockedAt: null,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
condition: { amount: 1e90, type: "totalGoldEarned" },
|
||||||
|
description: "Earn a trigintillion gold in total.",
|
||||||
|
icon: "🔮",
|
||||||
|
id: "omniversal_tycoon",
|
||||||
|
name: "Omniversal Tycoon",
|
||||||
|
reward: { crystals: 1_000_000 },
|
||||||
|
unlockedAt: null,
|
||||||
|
},
|
||||||
// Higher quest milestones
|
// Higher quest milestones
|
||||||
{
|
{
|
||||||
condition: { amount: 30, type: "questsCompleted" },
|
condition: { amount: 30, type: "questsCompleted" },
|
||||||
@@ -289,8 +316,8 @@ export const defaultAchievements: Array<Achievement> = [
|
|||||||
unlockedAt: null,
|
unlockedAt: null,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
condition: { amount: 95, type: "questsCompleted" },
|
condition: { amount: 122, type: "questsCompleted" },
|
||||||
description: "Complete all 95 quests across the known multiverse.",
|
description: "Complete all 122 quests across the known multiverse.",
|
||||||
icon: "🌌",
|
icon: "🌌",
|
||||||
id: "quest_eternal",
|
id: "quest_eternal",
|
||||||
name: "Quest Eternal",
|
name: "Quest Eternal",
|
||||||
@@ -363,4 +390,40 @@ export const defaultAchievements: Array<Achievement> = [
|
|||||||
reward: { crystals: 25_000 },
|
reward: { crystals: 25_000 },
|
||||||
unlockedAt: null,
|
unlockedAt: null,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
condition: { amount: 50, type: "prestigeCount" },
|
||||||
|
description: "Prestige 50 times.",
|
||||||
|
icon: "✨",
|
||||||
|
id: "prestige_transcendent",
|
||||||
|
name: "Transcendent",
|
||||||
|
reward: { crystals: 10_000 },
|
||||||
|
unlockedAt: null,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
condition: { amount: 100, type: "prestigeCount" },
|
||||||
|
description: "Prestige 100 times.",
|
||||||
|
icon: "💎",
|
||||||
|
id: "prestige_eternal",
|
||||||
|
name: "Eternal Looper",
|
||||||
|
reward: { crystals: 25_000 },
|
||||||
|
unlockedAt: null,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
condition: { amount: 150, type: "prestigeCount" },
|
||||||
|
description: "Prestige 150 times.",
|
||||||
|
icon: "🌟",
|
||||||
|
id: "prestige_immortal",
|
||||||
|
name: "Immortal Cycler",
|
||||||
|
reward: { crystals: 50_000 },
|
||||||
|
unlockedAt: null,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
condition: { amount: 200, type: "prestigeCount" },
|
||||||
|
description: "Prestige 200 times.",
|
||||||
|
icon: "👑",
|
||||||
|
id: "prestige_absolute",
|
||||||
|
name: "Absolute Champion",
|
||||||
|
reward: { crystals: 100_000 },
|
||||||
|
unlockedAt: null,
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -476,8 +476,8 @@ export const computeProjectedRunestones = (state: GameState): number => {
|
|||||||
? 1.5
|
? 1.5
|
||||||
: 1;
|
: 1;
|
||||||
const runestoneMult = gain1Mult * gain2Mult;
|
const runestoneMult = gain1Mult * gain2Mult;
|
||||||
/* eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- optional chained game state field */
|
const echoMult: number
|
||||||
const echoMult: number = state.transcendence?.echoPrestigeRunestoneMultiplier ?? 1;
|
= state.transcendence?.echoPrestigeRunestoneMultiplier ?? 1;
|
||||||
return Math.floor(base * runestoneMult * echoMult);
|
return Math.floor(base * runestoneMult * echoMult);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user