Files
elysium/apps/api/src/data/equipment.ts
T
hikari 078ae50e69 feat: add equipment set bonuses and boss bounty runestones
- Define EquipmentSet type + computeSetBonuses utility in packages/types
- Add setId field to Equipment type and assign sets to 27 equipment items
- Create 9 named equipment sets (Iron Vanguard → Eternal Throne) with 2pc/3pc bonuses
- Apply set combat multiplier in boss route
- Apply set gold/click multipliers in tick engine and click handler
- Include set bonuses in anti-cheat delta validation
- Show active set bonus strip + set badge per card in EquipmentPanel
- Add boss first-kill bounty runestones (scaling 1–10 per boss tier)
- Update AboutPanel and IDEAS.md
2026-03-06 23:56:45 -08:00

704 lines
23 KiB
TypeScript

import type { Equipment } from "@elysium/types";
export const DEFAULT_EQUIPMENT: Equipment[] = [
// ── Weapons ───────────────────────────────────────────────────────────────
{
id: "rusty_sword",
name: "Rusty Sword",
description: "A battered blade, but still sharp enough to draw blood.",
type: "weapon",
rarity: "common",
bonus: { combatMultiplier: 1.1 },
owned: true,
equipped: true,
},
{
id: "iron_sword",
name: "Iron Sword",
description: "A sturdy weapon issued to veterans of the guild.",
type: "weapon",
rarity: "rare",
bonus: { combatMultiplier: 1.25 },
owned: false,
equipped: false,
setId: "iron_vanguard",
},
{
id: "enchanted_blade",
name: "Enchanted Blade",
description: "A sword imbued with ancient magic that makes every strike count.",
type: "weapon",
rarity: "epic",
bonus: { combatMultiplier: 1.5 },
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 },
setId: "shadow_infiltrator",
},
{
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,
setId: "volcanic_forger",
},
{
id: "vorpal_sword",
name: "Vorpal Sword",
description: "A legendary blade that severs even the strongest bonds.",
type: "weapon",
rarity: "legendary",
bonus: { combatMultiplier: 2.0 },
owned: false,
equipped: false,
},
{
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",
description: "Simple protection that keeps your adventurers moving efficiently.",
type: "armour",
rarity: "common",
bonus: { goldMultiplier: 1.1 },
owned: true,
equipped: true,
},
{
id: "chainmail",
name: "Chainmail",
description: "Interlocked rings that guard against most mundane threats.",
type: "armour",
rarity: "rare",
bonus: { goldMultiplier: 1.25 },
owned: false,
equipped: false,
setId: "iron_vanguard",
},
{
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",
description: "Full plate protection that inspires confidence — and gold.",
type: "armour",
rarity: "epic",
bonus: { goldMultiplier: 1.5 },
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 },
setId: "shadow_infiltrator",
},
{
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,
setId: "volcanic_forger",
},
{
id: "dragon_scale",
name: "Dragon Scale Armour",
description: "Armour forged from the scales of a defeated elder dragon.",
type: "armour",
rarity: "legendary",
bonus: { goldMultiplier: 2.0 },
owned: false,
equipped: false,
},
{
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",
description: "A coin that always lands on the side you need.",
type: "trinket",
rarity: "common",
bonus: { clickMultiplier: 1.1 },
owned: true,
equipped: true,
},
{
id: "mages_focus",
name: "Mage's Focus",
description: "A crystal lens that sharpens magical precision.",
type: "trinket",
rarity: "rare",
bonus: { clickMultiplier: 1.25 },
owned: false,
equipped: false,
setId: "iron_vanguard",
},
{
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",
description: "An orb humming with concentrated arcane energy.",
type: "trinket",
rarity: "epic",
bonus: { clickMultiplier: 1.5 },
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,
setId: "volcanic_forger",
},
{
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 },
setId: "shadow_infiltrator",
},
{
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",
description: "The legendary stone that grants mastery over gold and combat alike.",
type: "trinket",
rarity: "legendary",
bonus: { clickMultiplier: 2.0, goldMultiplier: 1.25 },
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,
},
// ── Celestial Reaches ─────────────────────────────────────────────────────
{
id: "seraph_wing",
name: "Seraph's Wing",
description: "A weapon forged from a fallen seraph's primary feather — impossibly sharp, burning with divine light.",
type: "weapon",
rarity: "legendary",
bonus: { combatMultiplier: 3.5 },
owned: false,
equipped: false,
setId: "celestial_guardian",
},
{
id: "angels_halo",
name: "Angel's Halo",
description: "Torn from the Fallen Archangel. It radiates with grief and power in equal measure.",
type: "trinket",
rarity: "legendary",
bonus: { clickMultiplier: 2.75, goldMultiplier: 1.3 },
owned: false,
equipped: false,
setId: "celestial_guardian",
},
{
id: "celestial_armour",
name: "Celestial Armour",
description: "Forged in heavenly smithies from light compressed so hard it became solid. Your gold flows like sunbeams.",
type: "armour",
rarity: "legendary",
bonus: { goldMultiplier: 2.75 },
owned: false,
equipped: false,
setId: "celestial_guardian",
},
{
id: "divine_edge",
name: "The Divine Edge",
description: "The First Light's own blade — a weapon of pure divine will given form. It does not cut. It declares.",
type: "weapon",
rarity: "legendary",
bonus: { combatMultiplier: 4.0 },
owned: false,
equipped: false,
},
{
id: "heaven_mantle",
name: "Heaven's Mantle",
description: "The outermost garment of the celestial realm, woven from captured starlight and divine intention.",
type: "armour",
rarity: "legendary",
bonus: { goldMultiplier: 3.0 },
owned: false,
equipped: false,
},
// ── Abyssal Trench ────────────────────────────────────────────────────────
{
id: "depth_blade",
name: "The Depth Blade",
description: "Crystallised from the Depth Leviathan's venom — a weapon that strikes through armour as if it were water.",
type: "weapon",
rarity: "legendary",
bonus: { combatMultiplier: 4.5 },
owned: false,
equipped: false,
setId: "abyssal_predator",
},
{
id: "leviathan_eye",
name: "The Leviathan's Eye",
description: "The Elder Kraken's eye, preserved in brine from the deepest trench. It sees through all deception.",
type: "trinket",
rarity: "legendary",
bonus: { clickMultiplier: 3.0, goldMultiplier: 1.35 },
owned: false,
equipped: false,
setId: "abyssal_predator",
},
{
id: "pressure_plate",
name: "Pressure Plate",
description: "Armour forged under conditions that would crush a city. Nothing that wears it can be broken by ordinary force.",
type: "armour",
rarity: "legendary",
bonus: { goldMultiplier: 3.25 },
owned: false,
equipped: false,
setId: "abyssal_predator",
},
{
id: "abyssal_edge",
name: "The Abyssal Edge",
description: "The Elder Abomination's own appendage, reshaped by your artificers into something that passes for a weapon.",
type: "weapon",
rarity: "legendary",
bonus: { combatMultiplier: 5.0 },
owned: false,
equipped: false,
},
{
id: "abyss_shroud",
name: "The Abyss Shroud",
description: "Woven from the darkness at the very bottom of everything. Gold flows to those who wear the dark.",
type: "armour",
rarity: "legendary",
bonus: { goldMultiplier: 3.5 },
owned: false,
equipped: false,
},
// ── Infernal Court ────────────────────────────────────────────────────────
{
id: "demon_hide",
name: "Demon Hide Armour",
description: "The Demon Prince's own hide, worked into armour that whispers the strategies of ten thousand campaigns.",
type: "armour",
rarity: "legendary",
bonus: { goldMultiplier: 3.75 },
owned: false,
equipped: false,
setId: "infernal_conqueror",
},
{
id: "hellfire_edge",
name: "The Hellfire Edge",
description: "A fragment of the Hellfire Titan's core — constantly burning with a heat that ignores armour.",
type: "weapon",
rarity: "legendary",
bonus: { combatMultiplier: 5.5 },
owned: false,
equipped: false,
setId: "infernal_conqueror",
},
{
id: "soul_gem",
name: "The Soul Gem",
description: "Crystallised from the Lord of Sin's tears — which had never been shed before. The rarest thing in the infernal court.",
type: "trinket",
rarity: "legendary",
bonus: { clickMultiplier: 3.25, goldMultiplier: 1.4 },
owned: false,
equipped: false,
setId: "infernal_conqueror",
},
{
id: "infernal_edge",
name: "The Infernal Edge",
description: "Forged from what The Fallen once was — something good, hardened into a weapon of absolute purpose.",
type: "weapon",
rarity: "legendary",
bonus: { combatMultiplier: 6.0 },
owned: false,
equipped: false,
},
{
id: "sinslayer_aegis",
name: "The Sinslayer Aegis",
description: "Armour assembled from The Fallen's regrets. Every piece of it remembers what righteousness felt like.",
type: "armour",
rarity: "legendary",
bonus: { goldMultiplier: 4.0 },
owned: false,
equipped: false,
},
// ── Crystalline Spire ─────────────────────────────────────────────────────
{
id: "prism_blade",
name: "The Prism Blade",
description: "A sword that refracts into thousands of simultaneous strikes. Defenders cannot guard against every angle.",
type: "weapon",
rarity: "legendary",
bonus: { combatMultiplier: 6.5 },
owned: false,
equipped: false,
setId: "crystal_domain",
},
{
id: "faceted_armour",
name: "The Faceted Armour",
description: "Armour that intersects with adjacent realities — attacks pass through versions of you that chose differently.",
type: "armour",
rarity: "legendary",
bonus: { goldMultiplier: 4.5 },
owned: false,
equipped: false,
setId: "crystal_domain",
},
{
id: "prism_eye",
name: "The Prism Eye",
description: "A lens from the Diamond Colossus's own perception — through it, your guild sees every moment simultaneously.",
type: "trinket",
rarity: "legendary",
bonus: { clickMultiplier: 3.5, goldMultiplier: 1.5 },
owned: false,
equipped: false,
setId: "crystal_domain",
},
{
id: "crystal_sovereign_blade",
name: "The Sovereign's Blade",
description: "The Crystal Sovereign's own instrument of computation — repurposed for something it calculated was inevitable.",
type: "weapon",
rarity: "legendary",
bonus: { combatMultiplier: 7.0 },
owned: false,
equipped: false,
},
{
id: "diamond_plate",
name: "Diamond Plate",
description: "Armour compressed from crystallised possibilities — the optimal defensive configuration across all timelines.",
type: "armour",
rarity: "legendary",
bonus: { goldMultiplier: 5.0 },
owned: false,
equipped: false,
},
// ── Void Sanctum ──────────────────────────────────────────────────────────
{
id: "void_annihilator",
name: "The Void Annihilator",
description: "A weapon of pure absence — it does not strike, it simply removes the thing it is aimed at from existence.",
type: "weapon",
rarity: "legendary",
bonus: { combatMultiplier: 8.0 },
owned: false,
equipped: false,
setId: "void_emperor",
},
{
id: "eternal_shroud",
name: "The Eternal Shroud",
description: "Woven from the Eternal Shade itself — armour that exists in every moment simultaneously, impossible to find.",
type: "armour",
rarity: "legendary",
bonus: { goldMultiplier: 5.5 },
owned: false,
equipped: false,
setId: "void_emperor",
},
{
id: "void_heart_gem",
name: "The Void Heart Gem",
description: "Crystallised from the Void Progenitor's core — the original absence, given form. It makes the impossible routine.",
type: "trinket",
rarity: "legendary",
bonus: { clickMultiplier: 4.0, goldMultiplier: 1.6 },
owned: false,
equipped: false,
setId: "void_emperor",
},
{
id: "sanctum_breaker",
name: "The Sanctum Breaker",
description: "The Void Emperor's own sceptre of authority, seized in the moment of its defeat. It commands even nothingness.",
type: "weapon",
rarity: "legendary",
bonus: { combatMultiplier: 9.0 },
owned: false,
equipped: false,
},
{
id: "void_emperor_plate",
name: "Void Emperor's Plate",
description: "The armour the Void Emperor wore for all of existence — now worn by something that dared to challenge all of existence.",
type: "armour",
rarity: "legendary",
bonus: { goldMultiplier: 6.0 },
owned: false,
equipped: false,
},
// ── Eternal Throne ────────────────────────────────────────────────────────
{
id: "eternal_armour",
name: "Eternal Armour",
description: "The Throne Warden's own defensive shell — protection that has never been breached across all of time.",
type: "armour",
rarity: "legendary",
bonus: { goldMultiplier: 7.0 },
owned: false,
equipped: false,
setId: "eternal_throne",
},
{
id: "throne_blade",
name: "The Throne Blade",
description: "The Eternal Knight's sword — a weapon that has served the throne since the concept of service was invented.",
type: "weapon",
rarity: "legendary",
bonus: { combatMultiplier: 10.0 },
owned: false,
equipped: false,
setId: "eternal_throne",
},
{
id: "apex_sword",
name: "The Apex Sword",
description: "The Apex's own instrument — not a weapon in any sense your guild understands, but it functions as one now.",
type: "weapon",
rarity: "legendary",
bonus: { combatMultiplier: 12.0 },
owned: false,
equipped: false,
},
{
id: "apex_plate",
name: "The Apex Plate",
description: "Armour assembled from the Eternal Throne itself — the absolute seat of power, now serving those who claimed it.",
type: "armour",
rarity: "legendary",
bonus: { goldMultiplier: 8.0 },
owned: false,
equipped: false,
},
{
id: "eternity_stone",
name: "The Eternity Stone",
description: "The source of the Apex's power — the thing that makes the Eternal Throne eternal. It is yours now. All of it.",
type: "trinket",
rarity: "legendary",
bonus: { clickMultiplier: 5.0, goldMultiplier: 2.0, combatMultiplier: 1.5 },
owned: false,
equipped: false,
setId: "eternal_throne",
},
// ── Purchasable endgame sinks ─────────────────────────────────────────────
{
id: "celestial_focus",
name: "Celestial Focus",
description: "A lens of compressed celestial light that sharpens every strike with divine precision.",
type: "trinket",
rarity: "legendary",
bonus: { clickMultiplier: 2.5 },
owned: false,
equipped: false,
cost: { gold: 0, essence: 20_000_000, crystals: 0 },
},
{
id: "abyssal_tome",
name: "Abyssal Tome",
description: "A book written in the language of the deep — reading it aligns your guild's operations with abyssal efficiency.",
type: "armour",
rarity: "legendary",
bonus: { goldMultiplier: 3.0 },
owned: false,
equipped: false,
cost: { gold: 0, essence: 50_000_000, crystals: 0 },
},
{
id: "void_conduit",
name: "Void Conduit",
description: "A weapon that channels void energy — the absence of resistance makes every strike devastating.",
type: "weapon",
rarity: "legendary",
bonus: { combatMultiplier: 4.0 },
owned: false,
equipped: false,
cost: { gold: 0, essence: 100_000_000, crystals: 0 },
},
{
id: "infernal_gem",
name: "Infernal Gem",
description: "A gem forged in the heart of the Infernal Court — it burns with productivity and righteous fury in equal measure.",
type: "trinket",
rarity: "legendary",
bonus: { clickMultiplier: 3.5, goldMultiplier: 1.5 },
owned: false,
equipped: false,
cost: { gold: 0, essence: 0, crystals: 5_000_000 },
},
{
id: "crystal_matrix",
name: "Crystal Matrix",
description: "Armour structured around a crystalline lattice of optimal income calculations. Every gold piece finds you faster.",
type: "armour",
rarity: "legendary",
bonus: { goldMultiplier: 4.0 },
owned: false,
equipped: false,
cost: { gold: 0, essence: 0, crystals: 20_000_000 },
},
{
id: "eternal_prism",
name: "The Eternal Prism",
description: "An artifact from beyond all known planes — it refracts power through all dimensions simultaneously.",
type: "trinket",
rarity: "legendary",
bonus: { clickMultiplier: 5.0, goldMultiplier: 2.0, combatMultiplier: 1.5 },
owned: false,
equipped: false,
cost: { gold: 0, essence: 0, crystals: 100_000_000 },
},
];