generated from nhcarrigan/template
balance: comprehensive game balance pass (#103-#123) (#124)
## Summary Comprehensive balance pass addressing 20 tickets (#103–#122) plus one audit-discovered fix (#123), ensuring no player soft-locks and aligning all content counts with achievements and progression milestones. ### Changes - **Equipment** (#103–#111): Differentiated all stat pairs so every piece has a unique bonus combination; added missing stats to `eternal_flame` and increased `eternal_prism` multiplier to justify cost tier - **Recipes** (#112–#115): Added 4 cross-zone crafting recipes requiring materials from multiple zones to incentivise exploration breadth - **Achievements** (#116–#118): Aligned `fully_equipped` (40→65), `quest_eternal` (72→95), and `boss_eternal` (60→72) thresholds with actual content counts; updated `devourer_slayer` description - **Quest CP scaling** (#120–#122): Verified and corrected combat power requirements across all zones to follow consistent 4×/4× progression pattern - **Zone file ordering** (#123): Swapped Frozen Peaks and Shadow Marshes quest sections so file order matches the actual unlock chain (no gameplay change) ### Tickets Closed Closes #103 Closes #104 Closes #105 Closes #106 Closes #107 Closes #108 Closes #109 Closes #110 Closes #111 Closes #112 Closes #113 Closes #114 Closes #115 Closes #116 Closes #117 Closes #118 Closes #120 Closes #121 Closes #122 Closes #123 ✨ This PR was created with help from Hikari~ 🌸 Reviewed-on: #124 Co-authored-by: Hikari <hikari@nhcarrigan.com> Co-committed-by: Hikari <hikari@nhcarrigan.com>
This commit was merged in pull request #124.
This commit is contained in:
@@ -149,7 +149,7 @@ export const defaultAchievements: Array<Achievement> = [
|
||||
},
|
||||
{
|
||||
condition: { amount: 18, type: "bossesDefeated" },
|
||||
description: "Defeat all 18 bosses, including the Devourer of Worlds.",
|
||||
description: "Defeat all 18 bosses across the first six zones.",
|
||||
icon: "🌟",
|
||||
id: "devourer_slayer",
|
||||
name: "World Saver",
|
||||
@@ -223,8 +223,8 @@ export const defaultAchievements: Array<Achievement> = [
|
||||
unlockedAt: null,
|
||||
},
|
||||
{
|
||||
condition: { amount: 40, type: "equipmentOwned" },
|
||||
description: "Own 40 pieces of equipment.",
|
||||
condition: { amount: 65, type: "equipmentOwned" },
|
||||
description: "Own all 65 pieces of equipment.",
|
||||
icon: "🛡️",
|
||||
id: "fully_equipped",
|
||||
name: "Fully Equipped",
|
||||
@@ -289,8 +289,8 @@ export const defaultAchievements: Array<Achievement> = [
|
||||
unlockedAt: null,
|
||||
},
|
||||
{
|
||||
condition: { amount: 72, type: "questsCompleted" },
|
||||
description: "Complete all 72 quests across the known multiverse.",
|
||||
condition: { amount: 95, type: "questsCompleted" },
|
||||
description: "Complete all 95 quests across the known multiverse.",
|
||||
icon: "🌌",
|
||||
id: "quest_eternal",
|
||||
name: "Quest Eternal",
|
||||
@@ -317,8 +317,8 @@ export const defaultAchievements: Array<Achievement> = [
|
||||
unlockedAt: null,
|
||||
},
|
||||
{
|
||||
condition: { amount: 60, type: "bossesDefeated" },
|
||||
description: "Defeat all 60 bosses across every plane of existence.",
|
||||
condition: { amount: 72, type: "bossesDefeated" },
|
||||
description: "Defeat all 72 bosses across every plane of existence.",
|
||||
icon: "💀",
|
||||
id: "boss_eternal",
|
||||
name: "Eternal Vanquisher",
|
||||
|
||||
@@ -129,36 +129,36 @@ export const defaultAdventurers: Array<Adventurer> = [
|
||||
unlocked: false,
|
||||
},
|
||||
{
|
||||
baseCost: 28_000_000_000,
|
||||
baseCost: 2_600_000_000,
|
||||
class: "mage",
|
||||
combatPower: 45_000,
|
||||
combatPower: 13_000,
|
||||
count: 0,
|
||||
essencePerSecond: 15,
|
||||
goldPerSecond: 14_000,
|
||||
essencePerSecond: 6,
|
||||
goldPerSecond: 4500,
|
||||
id: "arcane_scholar",
|
||||
level: 11,
|
||||
name: "Arcane Scholar",
|
||||
unlocked: false,
|
||||
},
|
||||
{
|
||||
baseCost: 45_000_000_000,
|
||||
baseCost: 11_000_000_000,
|
||||
class: "rogue",
|
||||
combatPower: 55_000,
|
||||
combatPower: 28_000,
|
||||
count: 0,
|
||||
essencePerSecond: 20,
|
||||
goldPerSecond: 18_000,
|
||||
essencePerSecond: 11,
|
||||
goldPerSecond: 9500,
|
||||
id: "shadow_assassin",
|
||||
level: 12,
|
||||
name: "Shadow Assassin",
|
||||
unlocked: false,
|
||||
},
|
||||
{
|
||||
baseCost: 70_000_000_000,
|
||||
baseCost: 47_000_000_000,
|
||||
class: "paladin",
|
||||
combatPower: 80_000,
|
||||
combatPower: 60_000,
|
||||
count: 0,
|
||||
essencePerSecond: 22,
|
||||
goldPerSecond: 22_000,
|
||||
essencePerSecond: 20,
|
||||
goldPerSecond: 20_000,
|
||||
id: "dark_templar",
|
||||
level: 13,
|
||||
name: "Dark Templar",
|
||||
|
||||
+44
-44
@@ -121,17 +121,17 @@ export const defaultBosses: Array<Boss> = [
|
||||
},
|
||||
// ── Shadow Marshes ────────────────────────────────────────────────────────
|
||||
{
|
||||
bountyRunestones: 5,
|
||||
crystalReward: 30,
|
||||
currentHp: 80_000,
|
||||
damagePerSecond: 80,
|
||||
bountyRunestones: 20,
|
||||
crystalReward: 700,
|
||||
currentHp: 6_000_000,
|
||||
damagePerSecond: 1200,
|
||||
description:
|
||||
"She has hexed villages for three centuries from her hut on the black water. Her curse-weaving is second to none — but so is the bounty on her head.",
|
||||
equipmentRewards: [],
|
||||
essenceReward: 800,
|
||||
goldReward: 800_000,
|
||||
essenceReward: 30_000,
|
||||
goldReward: 80_000_000,
|
||||
id: "swamp_witch",
|
||||
maxHp: 80_000,
|
||||
maxHp: 6_000_000,
|
||||
name: "Morgantha the Swamp Witch",
|
||||
prestigeRequirement: 0,
|
||||
status: "locked",
|
||||
@@ -139,17 +139,17 @@ export const defaultBosses: Array<Boss> = [
|
||||
zoneId: "shadow_marshes",
|
||||
},
|
||||
{
|
||||
bountyRunestones: 8,
|
||||
crystalReward: 80,
|
||||
currentHp: 300_000,
|
||||
damagePerSecond: 180,
|
||||
bountyRunestones: 25,
|
||||
crystalReward: 1500,
|
||||
currentHp: 12_000_000,
|
||||
damagePerSecond: 2400,
|
||||
description:
|
||||
"A bloated, rotting horror that spreads pestilence wherever it walks. Entire kingdoms have fallen to the disease it carries. Yours will not.",
|
||||
equipmentRewards: [ "runestone_amulet" ],
|
||||
essenceReward: 2000,
|
||||
goldReward: 3_000_000,
|
||||
essenceReward: 60_000,
|
||||
goldReward: 180_000_000,
|
||||
id: "plague_lord",
|
||||
maxHp: 300_000,
|
||||
maxHp: 12_000_000,
|
||||
name: "The Plague Lord",
|
||||
prestigeRequirement: 0,
|
||||
status: "locked",
|
||||
@@ -157,17 +157,17 @@ export const defaultBosses: Array<Boss> = [
|
||||
zoneId: "shadow_marshes",
|
||||
},
|
||||
{
|
||||
bountyRunestones: 10,
|
||||
crystalReward: 150,
|
||||
currentHp: 800_000,
|
||||
damagePerSecond: 350,
|
||||
bountyRunestones: 30,
|
||||
crystalReward: 3000,
|
||||
currentHp: 20_000_000,
|
||||
damagePerSecond: 4000,
|
||||
description:
|
||||
"An eldritch leviathan that lurks in the deepest part of the marshes, older than the gods themselves. Its tentacles have dragged ships — and armies — into the mire.",
|
||||
equipmentRewards: [ "crystal_shard" ],
|
||||
essenceReward: 4000,
|
||||
goldReward: 8_000_000,
|
||||
essenceReward: 100_000,
|
||||
goldReward: 350_000_000,
|
||||
id: "mud_kraken",
|
||||
maxHp: 800_000,
|
||||
maxHp: 20_000_000,
|
||||
name: "The Mud Kraken",
|
||||
prestigeRequirement: 0,
|
||||
status: "locked",
|
||||
@@ -231,17 +231,17 @@ export const defaultBosses: Array<Boss> = [
|
||||
},
|
||||
// ── Volcanic Depths ───────────────────────────────────────────────────────
|
||||
{
|
||||
bountyRunestones: 12,
|
||||
crystalReward: 150,
|
||||
currentHp: 1_000_000,
|
||||
damagePerSecond: 400,
|
||||
bountyRunestones: 32,
|
||||
crystalReward: 4000,
|
||||
currentHp: 25_000_000,
|
||||
damagePerSecond: 5000,
|
||||
description:
|
||||
"Born from the first volcanic eruption the world ever knew. It exists purely to consume, and your guild looks like the finest kindling it has seen in millennia.",
|
||||
equipmentRewards: [ "flame_lance" ],
|
||||
essenceReward: 6000,
|
||||
goldReward: 10_000_000,
|
||||
essenceReward: 150_000,
|
||||
goldReward: 500_000_000,
|
||||
id: "fire_elemental",
|
||||
maxHp: 1_000_000,
|
||||
maxHp: 25_000_000,
|
||||
name: "The Ancient Fire Elemental",
|
||||
prestigeRequirement: 0,
|
||||
status: "locked",
|
||||
@@ -249,17 +249,17 @@ export const defaultBosses: Array<Boss> = [
|
||||
zoneId: "volcanic_depths",
|
||||
},
|
||||
{
|
||||
bountyRunestones: 18,
|
||||
crystalReward: 400,
|
||||
currentHp: 4_000_000,
|
||||
damagePerSecond: 1000,
|
||||
bountyRunestones: 40,
|
||||
crystalReward: 8000,
|
||||
currentHp: 60_000_000,
|
||||
damagePerSecond: 12_000,
|
||||
description:
|
||||
"Half-giant, half-living volcano, this colossus was created by the fire elementals to guard their greatest forge. Every strike from its fists sends shockwaves through the earth.",
|
||||
equipmentRewards: [ "volcanic_plate" ],
|
||||
essenceReward: 15_000,
|
||||
goldReward: 40_000_000,
|
||||
essenceReward: 300_000,
|
||||
goldReward: 1_000_000_000,
|
||||
id: "magma_titan",
|
||||
maxHp: 4_000_000,
|
||||
maxHp: 60_000_000,
|
||||
name: "The Magma Titan",
|
||||
prestigeRequirement: 0,
|
||||
status: "locked",
|
||||
@@ -267,17 +267,17 @@ export const defaultBosses: Array<Boss> = [
|
||||
zoneId: "volcanic_depths",
|
||||
},
|
||||
{
|
||||
bountyRunestones: 25,
|
||||
crystalReward: 800,
|
||||
currentHp: 12_000_000,
|
||||
damagePerSecond: 2500,
|
||||
bountyRunestones: 50,
|
||||
crystalReward: 15_000,
|
||||
currentHp: 150_000_000,
|
||||
damagePerSecond: 30_000,
|
||||
description:
|
||||
"The apex predator of the volcanic chain — a being of pure flame that has died and reborn itself more times than recorded history. This time, it will not rise again.",
|
||||
equipmentRewards: [ "eternal_flame" ],
|
||||
essenceReward: 40_000,
|
||||
goldReward: 120_000_000,
|
||||
essenceReward: 600_000,
|
||||
goldReward: 2_000_000_000,
|
||||
id: "phoenix_lord",
|
||||
maxHp: 12_000_000,
|
||||
maxHp: 150_000_000,
|
||||
name: "The Phoenix Lord",
|
||||
prestigeRequirement: 0,
|
||||
status: "locked",
|
||||
@@ -1120,7 +1120,7 @@ export const defaultBosses: Array<Boss> = [
|
||||
name: "The Storm Colossus",
|
||||
prestigeRequirement: 51,
|
||||
status: "locked",
|
||||
upgradeRewards: [ "cosmos_knight_1" ],
|
||||
upgradeRewards: [],
|
||||
zoneId: "cosmic_maelstrom",
|
||||
},
|
||||
{
|
||||
@@ -1318,7 +1318,7 @@ export const defaultBosses: Array<Boss> = [
|
||||
id: "the_absolute_one",
|
||||
maxHp: 2e145,
|
||||
name: "The Absolute One",
|
||||
prestigeRequirement: 90,
|
||||
prestigeRequirement: 88,
|
||||
status: "locked",
|
||||
upgradeRewards: [],
|
||||
zoneId: "the_absolute",
|
||||
|
||||
@@ -316,7 +316,7 @@ export const defaultEquipment: Array<Equipment> = [
|
||||
type: "trinket",
|
||||
},
|
||||
{
|
||||
bonus: { clickMultiplier: 2.25, goldMultiplier: 1.25 },
|
||||
bonus: { clickMultiplier: 2.25, combatMultiplier: 1.1, goldMultiplier: 1.25 },
|
||||
description:
|
||||
"A flame that has never been extinguished, sealed in crystal by the Phoenix Lord. It burns with the power of rebirth.",
|
||||
equipped: false,
|
||||
@@ -757,7 +757,7 @@ export const defaultEquipment: Array<Equipment> = [
|
||||
type: "armour",
|
||||
},
|
||||
{
|
||||
bonus: { clickMultiplier: 5, combatMultiplier: 1.5, goldMultiplier: 2 },
|
||||
bonus: { clickMultiplier: 5, combatMultiplier: 1.75, goldMultiplier: 2 },
|
||||
cost: { crystals: 100_000_000, essence: 0, gold: 0 },
|
||||
description:
|
||||
"An artifact from beyond all known planes — it refracts power through all dimensions simultaneously.",
|
||||
|
||||
@@ -92,18 +92,18 @@ export const defaultPrestigeUpgrades: Array<PrestigeUpgrade> = [
|
||||
{
|
||||
category: "income",
|
||||
description:
|
||||
"The oldest runes, carved before memory began, yield their secrets at last. All production ×500.",
|
||||
"The oldest runes, carved before memory began, yield their secrets at last. All production ×200.",
|
||||
id: "income_10",
|
||||
multiplier: 500,
|
||||
multiplier: 200,
|
||||
name: "Eternal Rune I",
|
||||
runestonesCost: 30_000,
|
||||
},
|
||||
{
|
||||
category: "income",
|
||||
description:
|
||||
"Eternal runes resonate with the heartbeat of creation itself. All production ×1,000.",
|
||||
"Eternal runes resonate with the heartbeat of creation itself. All production ×500.",
|
||||
id: "income_11",
|
||||
multiplier: 1000,
|
||||
multiplier: 500,
|
||||
name: "Eternal Rune II",
|
||||
runestonesCost: 80_000,
|
||||
},
|
||||
|
||||
+124
-53
@@ -33,6 +33,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
rewards: [
|
||||
{ amount: 2000, type: "gold" },
|
||||
{ amount: 5, type: "essence" },
|
||||
{ targetId: "peasant_1", type: "upgrade" },
|
||||
{ targetId: "apprentice", type: "adventurer" },
|
||||
],
|
||||
status: "locked",
|
||||
@@ -64,7 +65,6 @@ export const defaultQuests: Array<Quest> = [
|
||||
prerequisiteIds: [ "haunted_mine" ],
|
||||
rewards: [
|
||||
{ amount: 50, type: "essence" },
|
||||
{ targetId: "click_2", type: "upgrade" },
|
||||
{ targetId: "acolyte", type: "adventurer" },
|
||||
],
|
||||
status: "locked",
|
||||
@@ -82,7 +82,8 @@ export const defaultQuests: Array<Quest> = [
|
||||
rewards: [
|
||||
{ amount: 15_000, type: "gold" },
|
||||
{ amount: 20, type: "essence" },
|
||||
{ targetId: "cleric_1", type: "upgrade" },
|
||||
{ targetId: "militia_1", type: "upgrade" },
|
||||
{ targetId: "acolyte_1", type: "upgrade" },
|
||||
{ targetId: "ranger", type: "adventurer" },
|
||||
],
|
||||
status: "locked",
|
||||
@@ -116,7 +117,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
rewards: [
|
||||
{ amount: 300, type: "essence" },
|
||||
{ amount: 30, type: "crystals" },
|
||||
{ targetId: "mage_1", type: "upgrade" },
|
||||
{ targetId: "apprentice_1", type: "upgrade" },
|
||||
{ targetId: "archmage", type: "adventurer" },
|
||||
],
|
||||
status: "locked",
|
||||
@@ -139,6 +140,54 @@ export const defaultQuests: Array<Quest> = [
|
||||
status: "locked",
|
||||
zoneId: "shattered_ruins",
|
||||
},
|
||||
// ── Frozen Peaks ──────────────────────────────────────────────────────────
|
||||
{
|
||||
combatPowerRequired: 100_000,
|
||||
description:
|
||||
"A tundra at the edge of the world, home to creatures that have never seen the sun. Rumours speak of artefacts buried in the permafrost.",
|
||||
durationSeconds: 2 * 60 * 60,
|
||||
id: "frozen_wastes",
|
||||
name: "The Frozen Wastes",
|
||||
prerequisiteIds: [],
|
||||
rewards: [
|
||||
{ amount: 5_000_000, type: "gold" },
|
||||
{ amount: 100, type: "crystals" },
|
||||
{ targetId: "global_3", type: "upgrade" },
|
||||
],
|
||||
status: "locked",
|
||||
zoneId: "frozen_peaks",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 400_000,
|
||||
description:
|
||||
"A labyrinthine network of crystal caverns that descend for miles. The cold here is a presence, not just a temperature.",
|
||||
durationSeconds: 3 * 60 * 60,
|
||||
id: "ice_caves",
|
||||
name: "The Ice Caves",
|
||||
prerequisiteIds: [ "frozen_wastes" ],
|
||||
rewards: [
|
||||
{ amount: 5000, type: "essence" },
|
||||
{ amount: 200, type: "crystals" },
|
||||
{ targetId: "arcane_scholar", type: "adventurer" },
|
||||
],
|
||||
status: "locked",
|
||||
zoneId: "frozen_peaks",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1_500_000,
|
||||
description:
|
||||
"A fortress suspended in a permanent blizzard, built by a mage who wanted to be left alone — and succeeded for three hundred years.",
|
||||
durationSeconds: 5 * 60 * 60,
|
||||
id: "storm_citadel",
|
||||
name: "The Storm Citadel",
|
||||
prerequisiteIds: [ "ice_caves" ],
|
||||
rewards: [
|
||||
{ amount: 30_000_000, type: "gold" },
|
||||
{ amount: 10_000, type: "essence" },
|
||||
],
|
||||
status: "locked",
|
||||
zoneId: "frozen_peaks",
|
||||
},
|
||||
// ── Shadow Marshes ────────────────────────────────────────────────────────
|
||||
{
|
||||
combatPowerRequired: 5_000_000,
|
||||
@@ -150,7 +199,6 @@ export const defaultQuests: Array<Quest> = [
|
||||
prerequisiteIds: [],
|
||||
rewards: [
|
||||
{ amount: 150, type: "essence" },
|
||||
{ targetId: "militia_1", type: "upgrade" },
|
||||
],
|
||||
status: "locked",
|
||||
zoneId: "shadow_marshes",
|
||||
@@ -205,55 +253,6 @@ export const defaultQuests: Array<Quest> = [
|
||||
status: "locked",
|
||||
zoneId: "shadow_marshes",
|
||||
},
|
||||
// ── Frozen Peaks ──────────────────────────────────────────────────────────
|
||||
{
|
||||
combatPowerRequired: 100_000,
|
||||
description:
|
||||
"A tundra at the edge of the world, home to creatures that have never seen the sun. Rumours speak of artefacts buried in the permafrost.",
|
||||
durationSeconds: 2 * 60 * 60,
|
||||
id: "frozen_wastes",
|
||||
name: "The Frozen Wastes",
|
||||
prerequisiteIds: [],
|
||||
rewards: [
|
||||
{ amount: 5_000_000, type: "gold" },
|
||||
{ amount: 100, type: "crystals" },
|
||||
{ targetId: "global_3", type: "upgrade" },
|
||||
],
|
||||
status: "locked",
|
||||
zoneId: "frozen_peaks",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 400_000,
|
||||
description:
|
||||
"A labyrinthine network of crystal caverns that descend for miles. The cold here is a presence, not just a temperature.",
|
||||
durationSeconds: 3 * 60 * 60,
|
||||
id: "ice_caves",
|
||||
name: "The Ice Caves",
|
||||
prerequisiteIds: [ "frozen_wastes" ],
|
||||
rewards: [
|
||||
{ amount: 5000, type: "essence" },
|
||||
{ amount: 200, type: "crystals" },
|
||||
{ targetId: "arcane_scholar", type: "adventurer" },
|
||||
],
|
||||
status: "locked",
|
||||
zoneId: "frozen_peaks",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1_500_000,
|
||||
description:
|
||||
"A fortress suspended in a permanent blizzard, built by a mage who wanted to be left alone — and succeeded for three hundred years.",
|
||||
durationSeconds: 5 * 60 * 60,
|
||||
id: "storm_citadel",
|
||||
name: "The Storm Citadel",
|
||||
prerequisiteIds: [ "ice_caves" ],
|
||||
rewards: [
|
||||
{ amount: 30_000_000, type: "gold" },
|
||||
{ amount: 10_000, type: "essence" },
|
||||
{ targetId: "peasant_1", type: "upgrade" },
|
||||
],
|
||||
status: "locked",
|
||||
zoneId: "frozen_peaks",
|
||||
},
|
||||
// ── Volcanic Depths ───────────────────────────────────────────────────────
|
||||
{
|
||||
combatPowerRequired: 1_200_000_000,
|
||||
@@ -386,6 +385,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
},
|
||||
// ── Celestial Reaches ─────────────────────────────────────────────────────
|
||||
{
|
||||
combatPowerRequired: 7.2e13,
|
||||
description:
|
||||
"The threshold between the astral and the divine. Just passing through it changes those who do so in ways they will only understand later.",
|
||||
durationSeconds: Math.round(1.5 * 60 * 60),
|
||||
@@ -401,6 +401,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "celestial_reaches",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 3e14,
|
||||
description:
|
||||
"A gathering of celestial voices whose harmony shapes reality. To witness it is to understand, briefly, what the universe was meant to be.",
|
||||
durationSeconds: 3 * 60 * 60,
|
||||
@@ -415,6 +416,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "celestial_reaches",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.2e15,
|
||||
description:
|
||||
"Every event that has ever occurred is recorded here. Your guild's entire history is contained in a single volume, filed under 'Unlikely'.",
|
||||
durationSeconds: 5 * 60 * 60,
|
||||
@@ -430,6 +432,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "celestial_reaches",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 4.8e15,
|
||||
description:
|
||||
"A fortress built in the space between thoughts — larger inside than any physical structure could be. The celestial host uses it as a staging ground for interventions in mortal affairs.",
|
||||
durationSeconds: 8 * 60 * 60,
|
||||
@@ -445,6 +448,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "celestial_reaches",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.8e16,
|
||||
description:
|
||||
"The celestial host subjects your guild to trials that test not strength but character. Fortunately, your guild has both. Less fortunately, the trials are also designed to be impossible.",
|
||||
durationSeconds: 12 * 60 * 60,
|
||||
@@ -461,6 +465,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "celestial_reaches",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 7.2e16,
|
||||
description:
|
||||
"The deepest record in the divine realm — not just of what has happened, but of what is possible. Your guild leaves a mark here that will not be erased when the universe ends.",
|
||||
durationSeconds: 20 * 60 * 60,
|
||||
@@ -477,6 +482,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
},
|
||||
// ── Abyssal Trench ────────────────────────────────────────────────────────
|
||||
{
|
||||
combatPowerRequired: 3e17,
|
||||
description:
|
||||
"The entry point to the trench — where light surrenders completely and the pressure begins its long, patient work of reminding you of your smallness.",
|
||||
durationSeconds: 2 * 60 * 60,
|
||||
@@ -492,6 +498,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "abyssal_trench",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.2e18,
|
||||
description:
|
||||
"The remains of a civilisation that lived at the bottom of the world for millennia, lighting their world with their own bodies. They are gone. Their light remains, eerie and cold.",
|
||||
durationSeconds: 4 * 60 * 60,
|
||||
@@ -507,6 +514,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "abyssal_trench",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 4.8e18,
|
||||
description:
|
||||
"Caverns carved by forces that would shatter your strongest armour as casually as paper. Your guild navigates them through a combination of skill, preparation, and — honestly — luck.",
|
||||
durationSeconds: 7 * 60 * 60,
|
||||
@@ -522,6 +530,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "abyssal_trench",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.8e19,
|
||||
description:
|
||||
"Where the great serpents of the deep come to die — bones larger than cities, slowly being consumed by things that feed on the dead of things that were never truly alive.",
|
||||
durationSeconds: 12 * 60 * 60,
|
||||
@@ -537,6 +546,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "abyssal_trench",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 7.2e19,
|
||||
description:
|
||||
"A throne carved from something that predates stone, found at a depth where the trench opens into something that should not exist below it. Something sat here once. Something may sit here again.",
|
||||
durationSeconds: 18 * 60 * 60,
|
||||
@@ -553,6 +563,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "abyssal_trench",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 3e20,
|
||||
description:
|
||||
"The record carved into the walls of the deepest part of the trench by whatever has lived there since time began. Your guild adds its chapter. It is the first written in a language anyone above has ever understood.",
|
||||
durationSeconds: 30 * 60 * 60,
|
||||
@@ -569,6 +580,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
},
|
||||
// ── Infernal Court ────────────────────────────────────────────────────────
|
||||
{
|
||||
combatPowerRequired: 1.2e21,
|
||||
description:
|
||||
"The outer reaches of the infernal court — a landscape of sulphur and old fire where lesser demons make their homes and forget what they are waiting for.",
|
||||
durationSeconds: 3 * 60 * 60,
|
||||
@@ -584,6 +596,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "infernal_court",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 4.8e21,
|
||||
description:
|
||||
"The repository of every soul the infernal court has ever collected, stretching downward without apparent limit. The voices here are beyond counting. Some of them are recognisable.",
|
||||
durationSeconds: 6 * 60 * 60,
|
||||
@@ -599,6 +612,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "infernal_court",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.8e22,
|
||||
description:
|
||||
"The actual seat of demon governance — where the lords convene to settle their endless disputes. Your guild attends the session uninvited. The lords are not pleased. They are, however, briefly unified.",
|
||||
durationSeconds: 10 * 60 * 60,
|
||||
@@ -614,6 +628,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "infernal_court",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 7.2e22,
|
||||
description:
|
||||
"Each circle of the infernal court is its own ecosystem of suffering, and your guild passes through all nine. By the seventh, it has stopped being surprising. By the ninth, it has become almost comfortable.",
|
||||
durationSeconds: 16 * 60 * 60,
|
||||
@@ -629,6 +644,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "infernal_court",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 3e23,
|
||||
description:
|
||||
"The forge where the demon lords create their weapons — each one an atrocity given material form. Your guild has come to learn its secrets, or failing that, to destroy it.",
|
||||
durationSeconds: 24 * 60 * 60,
|
||||
@@ -645,6 +661,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "infernal_court",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.2e24,
|
||||
description:
|
||||
"The complete record of every deal, pact, and contract the infernal court has ever made. Your guild finds its own name in there, in a clause you definitely did not agree to. You cross it out.",
|
||||
durationSeconds: 40 * 60 * 60,
|
||||
@@ -661,6 +678,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
},
|
||||
// ── Crystalline Spire ─────────────────────────────────────────────────────
|
||||
{
|
||||
combatPowerRequired: 4.8e24,
|
||||
description:
|
||||
"The entrance to the spire — a door made of possibilities that splits your guild into every version of itself simultaneously. Only the best version makes it through. You are that version.",
|
||||
durationSeconds: 4 * 60 * 60,
|
||||
@@ -676,6 +694,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "crystalline_spire",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.8e25,
|
||||
description:
|
||||
"A maze of mirrors that reflects not your appearance but your choices — every path shows what would have happened if you had chosen differently. Several of those paths look significantly better.",
|
||||
durationSeconds: 8 * 60 * 60,
|
||||
@@ -691,6 +710,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "crystalline_spire",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 7.2e25,
|
||||
description:
|
||||
"A space where geometry has opinions — where right angles are suggestions and parallel lines eventually converge into something that has no name in any language your guild speaks.",
|
||||
durationSeconds: 14 * 60 * 60,
|
||||
@@ -706,6 +726,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "crystalline_spire",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 3e26,
|
||||
description:
|
||||
"The repository of crystallised knowledge — everything the spire has calculated, preserved in structures of compressed carbon that contain more information than your guild's entire written history.",
|
||||
durationSeconds: 20 * 60 * 60,
|
||||
@@ -721,6 +742,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "crystalline_spire",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.2e27,
|
||||
description:
|
||||
"The approach to the Sovereign's chamber — a corridor of living crystal that evaluates your guild as you walk through it and reconfigures itself in real time to create the optimal challenge for exactly what your guild is.",
|
||||
durationSeconds: 32 * 60 * 60,
|
||||
@@ -737,6 +759,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "crystalline_spire",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 4.8e27,
|
||||
description:
|
||||
"The innermost sanctum of the spire — where the Sovereign keeps its most precious calculations, its predictions for the last moments of this universe, sealed in crystal that has never been touched by anything other than thought.",
|
||||
durationSeconds: 50 * 60 * 60,
|
||||
@@ -753,6 +776,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
},
|
||||
// ── Void Sanctum ──────────────────────────────────────────────────────────
|
||||
{
|
||||
combatPowerRequired: 1.8e28,
|
||||
description:
|
||||
"The boundary between existing and not — a membrane so thin that your guild can feel their own existence becoming uncertain as they cross it. On the other side: the sanctum.",
|
||||
durationSeconds: 6 * 60 * 60,
|
||||
@@ -768,6 +792,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "void_sanctum",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 7.2e28,
|
||||
description:
|
||||
"Darkness here is not the absence of light but a substance in its own right — thick, pressured, aware. It has been dark here since before the concept of light existed elsewhere.",
|
||||
durationSeconds: 12 * 60 * 60,
|
||||
@@ -783,6 +808,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "void_sanctum",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 3e29,
|
||||
description:
|
||||
"The lower reaches of the void sanctum, where the Emperor's power saturates every particle. Your guild walks through a space that doesn't want them to exist — and continues existing anyway.",
|
||||
durationSeconds: 20 * 60 * 60,
|
||||
@@ -798,6 +824,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "void_sanctum",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.2e30,
|
||||
description:
|
||||
"Where the void Emperor tests its power — a space where things are regularly unmade as a display of authority. Your guild's refusal to be unmade is, to the Emperor, nothing short of astonishing.",
|
||||
durationSeconds: 30 * 60 * 60,
|
||||
@@ -813,6 +840,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "void_sanctum",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 4.8e30,
|
||||
description:
|
||||
"The final corridor before the void Emperor — a space that exists only because the Emperor allows it to. Every step forward is an argument your guild makes for their right to exist. So far, it's working.",
|
||||
durationSeconds: 48 * 60 * 60,
|
||||
@@ -829,6 +857,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "void_sanctum",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.8e31,
|
||||
description:
|
||||
"The absolute centre of the void sanctum — the point from which all absence radiates. Your guild stands here and, remarkably, continues to be. That alone is a victory no one before them has achieved.",
|
||||
durationSeconds: 72 * 60 * 60,
|
||||
@@ -845,6 +874,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
},
|
||||
// ── Eternal Throne ────────────────────────────────────────────────────────
|
||||
{
|
||||
combatPowerRequired: 7.2e31,
|
||||
description:
|
||||
"The waiting room for the absolute seat of power. No one has ever been made to wait here, because no one has ever arrived before. Your guild has arrived. The door is very large.",
|
||||
durationSeconds: 8 * 60 * 60,
|
||||
@@ -860,6 +890,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "eternal_throne",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 3e32,
|
||||
description:
|
||||
"A series of trials designed not to test your guild but to exhaust them — to ensure that only something with genuine, inexhaustible will can reach the throne. Your guild has passed. The throne takes note.",
|
||||
durationSeconds: 16 * 60 * 60,
|
||||
@@ -875,6 +906,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "eternal_throne",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.2e33,
|
||||
description:
|
||||
"The final proving ground — a set of challenges that have been accumulating since the throne was first occupied, waiting for a challenger worthy enough to face them. Your guild is facing them. Barely.",
|
||||
durationSeconds: 28 * 60 * 60,
|
||||
@@ -890,6 +922,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "eternal_throne",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 4.8e33,
|
||||
description:
|
||||
"The great hall through which every power in every universe has passed in supplication. No one has walked it as an equal before. Your guild walks it as a challenger. The difference is felt by everything that has ever knelt here.",
|
||||
durationSeconds: 40 * 60 * 60,
|
||||
@@ -906,6 +939,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "eternal_throne",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.8e34,
|
||||
description:
|
||||
"The last staircase. Every step a moment of history being made. At the top: the throne, and the one who sits upon it, who has watched your guild climb and finds themselves, for the first time in all of existence, uncertain.",
|
||||
durationSeconds: 60 * 60 * 60,
|
||||
@@ -921,6 +955,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "eternal_throne",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 7.2e34,
|
||||
description:
|
||||
"The throne is yours. Not just this one — all the power that flows from it, into every plane and reality it has shaped across all of time. Your guild has not merely won. It has become the thing that wins, permanently, for the rest of forever.",
|
||||
durationSeconds: 96 * 60 * 60,
|
||||
@@ -937,6 +972,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
},
|
||||
// ── Primordial Chaos ──────────────────────────────────────────────────────
|
||||
{
|
||||
combatPowerRequired: 3e35,
|
||||
description:
|
||||
"Your guild steps beyond the throne into something that has no rules — a place where the very concept of place is contested. Every step forward is an act of defiance against the universe's first draft of itself.",
|
||||
durationSeconds: 10 * 60 * 60,
|
||||
@@ -952,6 +988,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "primordial_chaos",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.2e36,
|
||||
description:
|
||||
"Rivers of raw creation flow through the primordial chaos — not water but pure potential, capable of transforming anything they touch into anything else entirely.",
|
||||
durationSeconds: 18 * 60 * 60,
|
||||
@@ -967,6 +1004,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "primordial_chaos",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 4.8e36,
|
||||
description:
|
||||
"A region of the chaos where the argument between existence and non-existence has not yet produced a winner — where matter and anti-matter coexist in violent, constant negotiation.",
|
||||
durationSeconds: 30 * 60 * 60,
|
||||
@@ -983,6 +1021,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "primordial_chaos",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.8e37,
|
||||
description:
|
||||
"Every possibility that has never occurred is stored here — in vaults that have no walls, containing things that have no form. Your guild navigates them by deciding what they want to find, and finding it.",
|
||||
durationSeconds: 45 * 60 * 60,
|
||||
@@ -998,6 +1037,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "primordial_chaos",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 7.2e37,
|
||||
description:
|
||||
"The origin point of everything — not a place but the idea of the first place, preserved in the chaos as a monument to the moment reality decided to exist.",
|
||||
durationSeconds: 65 * 60 * 60,
|
||||
@@ -1014,6 +1054,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "primordial_chaos",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 3e38,
|
||||
description:
|
||||
"The record of everything that almost was — every universe that the chaos produced and discarded before settling on this one. Your guild reads it and understands, for the first time, how unlikely they are.",
|
||||
durationSeconds: 90 * 60 * 60,
|
||||
@@ -1030,6 +1071,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
},
|
||||
// ── Infinite Expanse ──────────────────────────────────────────────────────
|
||||
{
|
||||
combatPowerRequired: 1.2e39,
|
||||
description:
|
||||
"The edge of the knowable — not because nothing lies beyond, but because the Expanse has no edges and every horizon is also a centre. Your guild walks toward a destination that keeps receding at the exact speed they approach it.",
|
||||
durationSeconds: 12 * 60 * 60,
|
||||
@@ -1045,6 +1087,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "infinite_expanse",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 4.8e39,
|
||||
description:
|
||||
"An ocean with no shores, no depth, no surface — a body of liquid possibility that extends infinitely in all directions, including inward. Your guild sails it without a ship and arrives exactly when they decide to.",
|
||||
durationSeconds: 22 * 60 * 60,
|
||||
@@ -1060,6 +1103,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "infinite_expanse",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.8e40,
|
||||
description:
|
||||
"Civilisations that attempted the Expanse before your guild and ran out of universe. Their ruins drift without reference points, enormous and silent, a reminder that infinity has claimed predecessors.",
|
||||
durationSeconds: 36 * 60 * 60,
|
||||
@@ -1076,6 +1120,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "infinite_expanse",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 7.2e40,
|
||||
description:
|
||||
"A library with no walls, cataloguing everything that exists across all of infinite space. The catalogue itself is infinite. The librarian is very tired.",
|
||||
durationSeconds: 55 * 60 * 60,
|
||||
@@ -1092,6 +1137,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "infinite_expanse",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 3e41,
|
||||
description:
|
||||
"A region where the Expanse loops back on itself — where every direction is simultaneously every other direction, and travel requires your guild to stop thinking about it too hard.",
|
||||
durationSeconds: 80 * 60 * 60,
|
||||
@@ -1107,6 +1153,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "infinite_expanse",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.2e42,
|
||||
description:
|
||||
"The complete record of all infinite things — compressed, impossibly, into a document your guild can almost read. What they can read changes everything they thought they understood about the word 'everything'.",
|
||||
durationSeconds: 110 * 60 * 60,
|
||||
@@ -1123,6 +1170,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
},
|
||||
// ── Reality Forge ─────────────────────────────────────────────────────────
|
||||
{
|
||||
combatPowerRequired: 4.8e42,
|
||||
description:
|
||||
"The door to the Reality Forge has been open since the moment reality started — left ajar because the workers never thought anyone else would find it. Your guild finds it.",
|
||||
durationSeconds: 14 * 60 * 60,
|
||||
@@ -1138,6 +1186,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "reality_forge",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.8e43,
|
||||
description:
|
||||
"The Forge keeps the blueprints for every universe it has ever built — and the rejected designs for the ones it hasn't. Some of those rejected blueprints are disturbingly appealing.",
|
||||
durationSeconds: 25 * 60 * 60,
|
||||
@@ -1153,6 +1202,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "reality_forge",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 7.2e43,
|
||||
description:
|
||||
"The active floor of the Forge — where new realities are being assembled right now, and your guild must navigate between workbenches containing half-finished universes without knocking anything over.",
|
||||
durationSeconds: 40 * 60 * 60,
|
||||
@@ -1169,6 +1219,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "reality_forge",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 3e44,
|
||||
description:
|
||||
"The mechanism that produces the laws of physics — an engine running since the first moment, churning out constants and rules that every universe obeys without knowing why. Your guild sees the source code.",
|
||||
durationSeconds: 60 * 60 * 60,
|
||||
@@ -1185,6 +1236,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "reality_forge",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.2e45,
|
||||
description:
|
||||
"The power source of the Reality Forge — not a furnace but a contained singularity, burning with the same energy that ignited the first universe. Your guild siphons from it. The Forge barely notices.",
|
||||
durationSeconds: 85 * 60 * 60,
|
||||
@@ -1200,6 +1252,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "reality_forge",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 4.8e45,
|
||||
description:
|
||||
"The record of every reality the Forge has produced — every universe that exists or ever existed, with notes on what worked and what didn't. Your guild's universe has several notes. Most are surprising.",
|
||||
durationSeconds: 120 * 60 * 60,
|
||||
@@ -1216,6 +1269,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
},
|
||||
// ── Cosmic Maelstrom ──────────────────────────────────────────────────────
|
||||
{
|
||||
combatPowerRequired: 1.8e46,
|
||||
description:
|
||||
"The outermost reach of the Cosmic Maelstrom — where everything moves at a speed that makes stars look stationary. Your guild anchors itself in the relative calm of its periphery and begins to push inward.",
|
||||
durationSeconds: 16 * 60 * 60,
|
||||
@@ -1231,6 +1285,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "cosmic_maelstrom",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 7.2e46,
|
||||
description:
|
||||
"The point where every cosmic force intersects — where gravity and electromagnetism and every other fundamental force meet and argue. The argument is conducted at energies that reshape matter.",
|
||||
durationSeconds: 28 * 60 * 60,
|
||||
@@ -1246,6 +1301,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "cosmic_maelstrom",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 3e47,
|
||||
description:
|
||||
"A region where cosmic storms have been brewing since the beginning of time, compounding on themselves into intensities that no physical object should be able to survive. Your guild survives.",
|
||||
durationSeconds: 45 * 60 * 60,
|
||||
@@ -1262,6 +1318,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "cosmic_maelstrom",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.2e48,
|
||||
description:
|
||||
"Regions of space where creation and destruction happen simultaneously at rates that would erase continents. Your guild navigates the moments between creation and erasure with precision that surprises even themselves.",
|
||||
durationSeconds: 65 * 60 * 60,
|
||||
@@ -1278,6 +1335,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "cosmic_maelstrom",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 4.8e48,
|
||||
description:
|
||||
"The centre of the Cosmic Maelstrom — the point toward which every force converges and from which everything radiates. Being here is being at the exact centre of all physical law. It is very loud.",
|
||||
durationSeconds: 90 * 60 * 60,
|
||||
@@ -1293,6 +1351,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "cosmic_maelstrom",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.8e49,
|
||||
description:
|
||||
"The record kept in the eye of the storm — the one place calm enough to write, where every force is in perfect balance. Your guild adds their chapter in the moments before the balance shifts again.",
|
||||
durationSeconds: 130 * 60 * 60,
|
||||
@@ -1309,6 +1368,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
},
|
||||
// ── Primeval Sanctum ──────────────────────────────────────────────────────
|
||||
{
|
||||
combatPowerRequired: 7.2e49,
|
||||
description:
|
||||
"The entrance to the oldest place — a threshold that does not open because it was never closed. It merely requires you to be old enough, deep enough, powerful enough to perceive it.",
|
||||
durationSeconds: 18 * 60 * 60,
|
||||
@@ -1324,6 +1384,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "primeval_sanctum",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 3e50,
|
||||
description:
|
||||
"The sanctum stores every moment that has ever occurred — not as records but as living impressions, still occurring in perpetual replay. Your guild walks through history as it happens, over and over.",
|
||||
durationSeconds: 32 * 60 * 60,
|
||||
@@ -1339,6 +1400,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "primeval_sanctum",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.2e51,
|
||||
description:
|
||||
"The halls where everything began — not the physical beginning, but the idea of beginning itself, preserved here as the sanctum's most sacred artefact. To walk these halls is to understand why anything started.",
|
||||
durationSeconds: 50 * 60 * 60,
|
||||
@@ -1355,6 +1417,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "primeval_sanctum",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 4.8e51,
|
||||
description:
|
||||
"The chamber where the first photon was produced — still illuminated by that original light, unchanged for all of time. The warmth here is the warmth of the universe's childhood.",
|
||||
durationSeconds: 72 * 60 * 60,
|
||||
@@ -1371,6 +1434,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "primeval_sanctum",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.8e52,
|
||||
description:
|
||||
"A region of the sanctum that predates the concept of sequence — where cause does not reliably precede effect, and your guild must navigate by intention rather than direction.",
|
||||
durationSeconds: 100 * 60 * 60,
|
||||
@@ -1386,6 +1450,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "primeval_sanctum",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 7.2e52,
|
||||
description:
|
||||
"The complete record of all primeval things — every first moment of every concept that has ever existed, bound together in something that predates writing, reading, and the idea of records. Your guild understands it anyway.",
|
||||
durationSeconds: 144 * 60 * 60,
|
||||
@@ -1402,6 +1467,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
},
|
||||
// ── The Absolute ──────────────────────────────────────────────────────────
|
||||
{
|
||||
combatPowerRequired: 3e53,
|
||||
description:
|
||||
"The beginning of the end of everything. Your guild crosses it and feels, for the first time, that they have gone somewhere genuinely, ontologically final.",
|
||||
durationSeconds: 20 * 60 * 60,
|
||||
@@ -1417,6 +1483,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "the_absolute",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.2e54,
|
||||
description:
|
||||
"Not empty — nothing. A region where even the concept of region is a courtesy your guild extends to the space by thinking about it. The moment they stop thinking, it stops being a space.",
|
||||
durationSeconds: 36 * 60 * 60,
|
||||
@@ -1432,6 +1499,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "the_absolute",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 4.8e54,
|
||||
description:
|
||||
"A region that exists by virtue of containing the contradiction of existence and non-existence simultaneously — a place that is also not a place, navigable only by those who have stopped needing either to be true.",
|
||||
durationSeconds: 56 * 60 * 60,
|
||||
@@ -1448,6 +1516,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "the_absolute",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 1.8e55,
|
||||
description:
|
||||
"Everything that has ever ended is stored here — every life, every civilisation, every universe, every concept that has run its course. The collection is comprehensive. Your guild is not in it yet.",
|
||||
durationSeconds: 80 * 60 * 60,
|
||||
@@ -1463,6 +1532,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "the_absolute",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 7.2e55,
|
||||
description:
|
||||
"The last path before the last thing. Every step here is a step that has never been taken before and will never be taken again. The Absolute awaits at the end of it, and it is aware of your guild.",
|
||||
durationSeconds: 120 * 60 * 60,
|
||||
@@ -1479,6 +1549,7 @@ export const defaultQuests: Array<Quest> = [
|
||||
zoneId: "the_absolute",
|
||||
},
|
||||
{
|
||||
combatPowerRequired: 3e56,
|
||||
description:
|
||||
"This is it. Not the throne — not power — not victory. Just the knowledge, confirmed and total, that your guild reached the end of everything and was not ended. That is, in every measurable way, enough.",
|
||||
durationSeconds: 168 * 60 * 60,
|
||||
|
||||
@@ -451,6 +451,62 @@ export const defaultRecipes: Array<CraftingRecipe> = [
|
||||
zoneId: "primeval_sanctum",
|
||||
},
|
||||
|
||||
// ── Cross-zone recipes ─────────────────────────────────────────────────────
|
||||
{
|
||||
bonus: { type: "gold_income", value: 1.28 },
|
||||
description:
|
||||
"Verdant sap from the oldest trees, refined in ember crystal heat and bound by legendary ore from the volcanic forges. The resulting tincture fuses the forest's patient growth with fire's relentless drive — gold accumulates with unusual enthusiasm.",
|
||||
id: "verdant_pyre_seal",
|
||||
name: "Verdant Pyre Seal",
|
||||
requiredMaterials: [
|
||||
{ materialId: "verdant_sap", quantity: 8 },
|
||||
{ materialId: "ember_crystal", quantity: 6 },
|
||||
{ materialId: "legendary_ore", quantity: 2 },
|
||||
],
|
||||
zoneId: "volcanic_depths",
|
||||
},
|
||||
{
|
||||
bonus: { type: "click_power", value: 1.22 },
|
||||
description:
|
||||
"A void shard frozen into glacial ice and then submerged in shadow essence — the cold of nothing meeting the dark of everything. The resulting weave sharpens strikes with an emptiness that the shadows themselves cannot resist.",
|
||||
id: "voidfrost_weave",
|
||||
name: "Voidfrost Weave",
|
||||
requiredMaterials: [
|
||||
{ materialId: "glacial_ice", quantity: 8 },
|
||||
{ materialId: "void_shard", quantity: 3 },
|
||||
{ materialId: "shadow_essence", quantity: 5 },
|
||||
],
|
||||
zoneId: "shadow_marshes",
|
||||
},
|
||||
{
|
||||
bonus: { type: "essence_income", value: 1.28 },
|
||||
description:
|
||||
"A choir shard from the celestial reaches lowered into the crushing dark of the abyssal trench and set alongside an ancient tooth. The celestial harmonic does not stop in the deep — it deepens. Essence flows toward it from every direction simultaneously.",
|
||||
id: "choir_of_the_deep",
|
||||
name: "Choir of the Deep",
|
||||
requiredMaterials: [
|
||||
{ materialId: "celestial_dust", quantity: 8 },
|
||||
{ materialId: "choir_shard", quantity: 2 },
|
||||
{ materialId: "ancient_tooth", quantity: 2 },
|
||||
{ materialId: "pressure_gem", quantity: 5 },
|
||||
],
|
||||
zoneId: "abyssal_trench",
|
||||
},
|
||||
{
|
||||
bonus: { type: "combat_power", value: 1.4 },
|
||||
description:
|
||||
"An eternity splinter from the eternal throne, set at the boundary between everything and nothing with an omega crystal and bound by boundary shards. Where eternity meets the absolute, something is forged that has never existed and will never exist again. Your party fights as if they know this.",
|
||||
id: "eternal_omega",
|
||||
name: "Eternal Omega",
|
||||
requiredMaterials: [
|
||||
{ materialId: "crown_fragment", quantity: 6 },
|
||||
{ materialId: "eternity_splinter", quantity: 2 },
|
||||
{ materialId: "boundary_shard", quantity: 4 },
|
||||
{ materialId: "omega_crystal", quantity: 2 },
|
||||
],
|
||||
zoneId: "the_absolute",
|
||||
},
|
||||
|
||||
// Zone 18: the_absolute
|
||||
{
|
||||
bonus: { type: "gold_income", value: 1.3 },
|
||||
|
||||
@@ -127,7 +127,7 @@ export const defaultTranscendenceUpgrades: Array<TranscendenceUpgrade> = [
|
||||
// ── Echo meta multipliers ───────────────────────────────────────────────────
|
||||
{
|
||||
category: "echo_meta",
|
||||
cost: 10,
|
||||
cost: 50,
|
||||
description:
|
||||
"Your transcendence resonates deeper, amplifying future echo yields by 25%.",
|
||||
id: "echo_meta_1",
|
||||
@@ -136,7 +136,7 @@ export const defaultTranscendenceUpgrades: Array<TranscendenceUpgrade> = [
|
||||
},
|
||||
{
|
||||
category: "echo_meta",
|
||||
cost: 25,
|
||||
cost: 150,
|
||||
description:
|
||||
"Each loop of existence makes the next more powerful — future echo yields +50%.",
|
||||
id: "echo_meta_2",
|
||||
@@ -145,7 +145,7 @@ export const defaultTranscendenceUpgrades: Array<TranscendenceUpgrade> = [
|
||||
},
|
||||
{
|
||||
category: "echo_meta",
|
||||
cost: 50,
|
||||
cost: 400,
|
||||
description:
|
||||
"You have mastered the infinite spiral of transcendence, doubling all future echo yields.",
|
||||
id: "echo_meta_3",
|
||||
|
||||
@@ -209,7 +209,7 @@ export const defaultUpgrades: Array<Upgrade> = [
|
||||
costEssence: 2,
|
||||
costGold: 5000,
|
||||
description: "Ancient books of magic double mage output.",
|
||||
id: "mage_1",
|
||||
id: "apprentice_1",
|
||||
multiplier: 2,
|
||||
name: "Arcane Tomes",
|
||||
purchased: false,
|
||||
@@ -222,7 +222,7 @@ export const defaultUpgrades: Array<Upgrade> = [
|
||||
costEssence: 3,
|
||||
costGold: 8000,
|
||||
description: "Sacred ceremonies double the output of your clerics.",
|
||||
id: "cleric_1",
|
||||
id: "acolyte_1",
|
||||
multiplier: 2,
|
||||
name: "Holy Rites",
|
||||
purchased: false,
|
||||
@@ -297,23 +297,10 @@ export const defaultUpgrades: Array<Upgrade> = [
|
||||
target: "adventurer",
|
||||
unlocked: false,
|
||||
},
|
||||
{
|
||||
adventurerId: "shadow_assassin",
|
||||
costCrystals: 0,
|
||||
costEssence: 175,
|
||||
costGold: 0,
|
||||
description: "Mastery of the shadow arts doubles assassin effectiveness.",
|
||||
id: "shadow_assassin_1",
|
||||
multiplier: 2,
|
||||
name: "Shadow Arts",
|
||||
purchased: false,
|
||||
target: "adventurer",
|
||||
unlocked: false,
|
||||
},
|
||||
{
|
||||
adventurerId: "arcane_scholar",
|
||||
costCrystals: 0,
|
||||
costEssence: 150,
|
||||
costEssence: 1000,
|
||||
costGold: 0,
|
||||
description: "Access to forbidden libraries doubles scholar output.",
|
||||
id: "arcane_scholar_1",
|
||||
@@ -323,10 +310,23 @@ export const defaultUpgrades: Array<Upgrade> = [
|
||||
target: "adventurer",
|
||||
unlocked: false,
|
||||
},
|
||||
{
|
||||
adventurerId: "shadow_assassin",
|
||||
costCrystals: 0,
|
||||
costEssence: 5000,
|
||||
costGold: 0,
|
||||
description: "Mastery of the shadow arts doubles assassin effectiveness.",
|
||||
id: "shadow_assassin_1",
|
||||
multiplier: 2,
|
||||
name: "Shadow Arts",
|
||||
purchased: false,
|
||||
target: "adventurer",
|
||||
unlocked: false,
|
||||
},
|
||||
{
|
||||
adventurerId: "dark_templar",
|
||||
costCrystals: 0,
|
||||
costEssence: 200,
|
||||
costEssence: 25_000,
|
||||
costGold: 0,
|
||||
description:
|
||||
"A sworn oath to the darkness of the marshes doubles templar output.",
|
||||
@@ -340,7 +340,7 @@ export const defaultUpgrades: Array<Upgrade> = [
|
||||
{
|
||||
adventurerId: "void_walker",
|
||||
costCrystals: 0,
|
||||
costEssence: 300,
|
||||
costEssence: 100_000,
|
||||
costGold: 0,
|
||||
description:
|
||||
"Walking through the void itself doubles the output of your void walkers.",
|
||||
@@ -354,7 +354,7 @@ export const defaultUpgrades: Array<Upgrade> = [
|
||||
{
|
||||
adventurerId: "celestial_guard",
|
||||
costCrystals: 0,
|
||||
costEssence: 750,
|
||||
costEssence: 500_000,
|
||||
costGold: 0,
|
||||
description:
|
||||
"A blessing from the celestials themselves doubles guard output.",
|
||||
@@ -368,7 +368,7 @@ export const defaultUpgrades: Array<Upgrade> = [
|
||||
{
|
||||
adventurerId: "divine_champion",
|
||||
costCrystals: 0,
|
||||
costEssence: 2000,
|
||||
costEssence: 2_000_000,
|
||||
costGold: 0,
|
||||
description: "An unbreakable oath to the divine doubles champion output.",
|
||||
id: "divine_champion_1",
|
||||
|
||||
@@ -2752,8 +2752,8 @@ export const CODEX_ENTRIES: Array<CodexEntry> = [
|
||||
{
|
||||
content:
|
||||
"The ancient books of magic acquired for the guild's mages contained techniques that their trainers had either not known or had chosen not to teach. The omission, in most cases, appeared to be deliberate — the techniques worked but produced results that the academies found uncomfortable to endorse. Your guild finds them extremely comfortable to have, and the mage output doubled from the application of knowledge that had been sitting in books waiting for someone to act on it.",
|
||||
id: "upgrade_mage_1",
|
||||
sourceId: "mage_1",
|
||||
id: "upgrade_apprentice_1",
|
||||
sourceId: "apprentice_1",
|
||||
sourceType: "upgrade",
|
||||
title: "Arcane Tomes: The Written Knowledge",
|
||||
zoneId: "guild_library",
|
||||
@@ -2761,8 +2761,8 @@ export const CODEX_ENTRIES: Array<CodexEntry> = [
|
||||
{
|
||||
content:
|
||||
"The sacred ceremonies that your clerics now perform before and during operations were developed by your head cleric over six months of experimentation that their deity appears to have sanctioned, based on the results. The rites formalise the relationship between divine power and operational output into a repeatable process. Doubled cleric output is the result of making the exceptional ordinary through the discipline of ceremony.",
|
||||
id: "upgrade_cleric_1",
|
||||
sourceId: "cleric_1",
|
||||
id: "upgrade_acolyte_1",
|
||||
sourceId: "acolyte_1",
|
||||
sourceType: "upgrade",
|
||||
title: "Holy Rites: The Sacred Routine",
|
||||
zoneId: "guild_library",
|
||||
|
||||
Reference in New Issue
Block a user