feat: major content expansion with essence and crystal sinks

- 6 zones (up from 3): Shadow Marshes, Volcanic Depths, Astral Void
- 18 bosses (up from 4): 3 per zone with zone-based sequential unlock
- 24 quests (up from 9): 3-4 per zone, reorganised by zone
- 15 adventurer tiers (up from 10): Shadow Assassin through Divine Champion
- 28 equipment pieces (up from 12): boss drops + purchasable with essence/crystals
- 24 upgrades (up from 13): crystal-cost upgrades + new adventurer upgrades
- 22 achievements (up from 14): new milestones for bosses, quests, gold, armies
- Purchasable equipment system: buy items directly with essence or crystals
- Crystal-cost upgrades: spend crystals on global and click power boosts
- Zone-based boss progression: defeating a zone's last boss unlocks the next zone
This commit is contained in:
2026-03-06 14:36:41 -08:00
committed by Naomi Carrigan
parent 653c36c886
commit 772d733e86
15 changed files with 1202 additions and 81 deletions
+179 -3
View File
@@ -1,7 +1,7 @@
import type { Equipment } from "@elysium/types";
export const DEFAULT_EQUIPMENT: Equipment[] = [
// Weapons — drop from bosses; common starts owned
// ── Weapons ───────────────────────────────────────────────────────────────
{
id: "rusty_sword",
name: "Rusty Sword",
@@ -32,6 +32,27 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
owned: false,
equipped: false,
},
{
id: "shadow_dagger",
name: "Shadow Dagger",
description: "Forged in the Shadow Marshes from condensed darkness. It strikes before it is seen.",
type: "weapon",
rarity: "epic",
bonus: { combatMultiplier: 1.65 },
owned: false,
equipped: false,
cost: { gold: 0, essence: 500, crystals: 0 },
},
{
id: "flame_lance",
name: "Flame Lance",
description: "A spear tipped with a shard of the Primordial Forge's eternal fire.",
type: "weapon",
rarity: "epic",
bonus: { combatMultiplier: 1.7 },
owned: false,
equipped: false,
},
{
id: "vorpal_sword",
name: "Vorpal Sword",
@@ -42,7 +63,39 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
owned: false,
equipped: false,
},
// Armour — drop from bosses; common starts owned
{
id: "soul_reaper",
name: "Soul Reaper",
description: "A scythe that harvests not flesh but essence itself. Every swing drains the will to resist.",
type: "weapon",
rarity: "legendary",
bonus: { combatMultiplier: 2.5 },
owned: false,
equipped: false,
cost: { gold: 0, essence: 0, crystals: 300 },
},
{
id: "celestial_blade",
name: "Celestial Blade",
description: "Forged from the heart of a dying star by the Cosmic Horror itself. Its edge exists in three realities simultaneously.",
type: "weapon",
rarity: "legendary",
bonus: { combatMultiplier: 3.0 },
owned: false,
equipped: false,
},
{
id: "void_edge",
name: "Void Edge",
description: "A blade made of compressed nothingness. It does not cut — it simply unmakes.",
type: "weapon",
rarity: "legendary",
bonus: { combatMultiplier: 2.75 },
owned: false,
equipped: false,
cost: { gold: 0, essence: 2_000, crystals: 500 },
},
// ── Armour ────────────────────────────────────────────────────────────────
{
id: "leather_armour",
name: "Leather Armour",
@@ -63,6 +116,16 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
owned: false,
equipped: false,
},
{
id: "hide_armour",
name: "Giant's Hide Armour",
description: "Cured hide from a Forest Giant, worked into armour that radiates primal authority.",
type: "armour",
rarity: "rare",
bonus: { goldMultiplier: 1.35 },
owned: false,
equipped: false,
},
{
id: "plate_armour",
name: "Plate Armour",
@@ -73,6 +136,27 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
owned: false,
equipped: false,
},
{
id: "void_shroud",
name: "Void Shroud",
description: "A cloak woven from the fabric of the Shadow Marshes itself. Wealth flows to those hidden from sight.",
type: "armour",
rarity: "epic",
bonus: { goldMultiplier: 1.75 },
owned: false,
equipped: false,
cost: { gold: 0, essence: 400, crystals: 0 },
},
{
id: "volcanic_plate",
name: "Volcanic Plate",
description: "Armour quenched in magma that hardened into something neither metal nor stone. Burns with inner heat.",
type: "armour",
rarity: "epic",
bonus: { goldMultiplier: 1.65, combatMultiplier: 1.15 },
owned: false,
equipped: false,
},
{
id: "dragon_scale",
name: "Dragon Scale Armour",
@@ -83,7 +167,28 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
owned: false,
equipped: false,
},
// Trinkets — drop from bosses; common starts owned
{
id: "titan_aegis",
name: "Titan's Aegis",
description: "A shield-armour hybrid blessed by the celestials. Its bearer becomes a fortress.",
type: "armour",
rarity: "legendary",
bonus: { goldMultiplier: 2.5 },
owned: false,
equipped: false,
cost: { gold: 0, essence: 0, crystals: 250 },
},
{
id: "astral_robe",
name: "Astral Robe",
description: "Woven from threads of pure starlight harvested by the Astral Wraith. Income flows like cosmic energy.",
type: "armour",
rarity: "legendary",
bonus: { goldMultiplier: 2.25 },
owned: false,
equipped: false,
},
// ── Trinkets ──────────────────────────────────────────────────────────────
{
id: "lucky_coin",
name: "Lucky Coin",
@@ -104,6 +209,16 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
owned: false,
equipped: false,
},
{
id: "frost_rune",
name: "Frost Rune",
description: "A rune carved from bone-ice by the Bone Colossus. It amplifies strikes with cold precision.",
type: "trinket",
rarity: "rare",
bonus: { clickMultiplier: 1.3 },
owned: false,
equipped: false,
},
{
id: "arcane_orb",
name: "Arcane Orb",
@@ -114,6 +229,47 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
owned: false,
equipped: false,
},
{
id: "runestone_amulet",
name: "Runestone Amulet",
description: "An amulet carved from ancient runestones found in the plague ruins. Its inscriptions hum with forgotten power.",
type: "trinket",
rarity: "epic",
bonus: { clickMultiplier: 1.45, goldMultiplier: 1.15 },
owned: false,
equipped: false,
},
{
id: "crystal_shard",
name: "Crystal Shard",
description: "A fragment of the Mud Kraken's crystallised essence. Focuses raw power into devastating strikes.",
type: "trinket",
rarity: "epic",
bonus: { clickMultiplier: 1.55, goldMultiplier: 1.1 },
owned: false,
equipped: false,
},
{
id: "void_compass",
name: "Void Compass",
description: "A compass that points not north but toward the greatest concentration of power — wherever that may be.",
type: "trinket",
rarity: "epic",
bonus: { clickMultiplier: 1.6 },
owned: false,
equipped: false,
cost: { gold: 0, essence: 350, crystals: 0 },
},
{
id: "frost_crystal",
name: "Frost Crystal",
description: "A perfectly formed crystal harvested from the Ice Queen's throne room. Cold enough to burn.",
type: "trinket",
rarity: "legendary",
bonus: { clickMultiplier: 2.0, goldMultiplier: 1.2 },
owned: false,
equipped: false,
},
{
id: "philosophers_stone",
name: "Philosopher's Stone",
@@ -124,4 +280,24 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
owned: false,
equipped: false,
},
{
id: "eternal_flame",
name: "Eternal Flame",
description: "A flame that has never been extinguished, sealed in crystal by the Phoenix Lord. It burns with the power of rebirth.",
type: "trinket",
rarity: "legendary",
bonus: { clickMultiplier: 2.25, goldMultiplier: 1.15 },
owned: false,
equipped: false,
},
{
id: "infinity_gem",
name: "Infinity Gem",
description: "A gem that contains a universe within it. Those who hold it become more than mortal.",
type: "trinket",
rarity: "legendary",
bonus: { clickMultiplier: 2.5, goldMultiplier: 1.3, combatMultiplier: 1.25 },
owned: false,
equipped: false,
},
];