feat: initial prototype — core game systems (#30)
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m1s
CI / Lint, Build & Test (push) Successful in 1m6s

## Summary

This PR represents the full v1 prototype, implementing the core game systems for Elysium.

- Full idle/clicker RPG loop: resource collection, crafting, boss fights, exploration, and quests
- Adventurer hiring with batch size selector and progressive tier cost scaling
- Prestige, transcendence, and apotheosis systems with auto-prestige support
- Character sheet, titles, leaderboards, companion system, and daily login bonuses
- Auto-quest and auto-boss toggles
- Discord webhook notifications on prestige/transcendence/apotheosis
- Discord role awarded on apotheosis
- Responsive design and overarching story/lore system
- In-game sound effects and browser notifications for key events
- Support link button in the resource bar
- Full test coverage (100% on `apps/api` and `packages/types`)
- CI pipeline: lint → build → test

## Closes

Closes #1
Closes #2
Closes #3
Closes #4
Closes #5
Closes #6
Closes #7
Closes #8
Closes #9
Closes #10
Closes #11
Closes #12
Closes #13
Closes #14
Closes #16
Closes #19
Closes #20
Closes #21
Closes #22
Closes #23
Closes #24
Closes #25
Closes #26
Closes #27
Closes #29

 This issue was created with help from Hikari~ 🌸

Co-authored-by: Naomi Carrigan <commits@nhcarrigan.com>
Reviewed-on: #30
Co-authored-by: Hikari <hikari@nhcarrigan.com>
Co-committed-by: Hikari <hikari@nhcarrigan.com>
This commit was merged in pull request #30.
This commit is contained in:
2026-03-08 15:53:39 -07:00
committed by Naomi Carrigan
parent c69e155de3
commit 29c817230d
172 changed files with 50706 additions and 0 deletions
+771
View File
@@ -0,0 +1,771 @@
/**
* @file Game data definitions.
* @copyright nhcarrigan
* @license Naomi's Public License
* @author Naomi Carrigan
*/
/* eslint-disable max-lines -- Data file */
/* eslint-disable stylistic/max-len -- Data content */
import type { Equipment } from "@elysium/types";
export const defaultEquipment: Array<Equipment> = [
// ── Weapons ───────────────────────────────────────────────────────────────
{
bonus: { combatMultiplier: 1.1 },
description: "A battered blade, but still sharp enough to draw blood.",
equipped: true,
id: "rusty_sword",
name: "Rusty Sword",
owned: true,
rarity: "common",
type: "weapon",
},
{
bonus: { combatMultiplier: 1.25 },
description: "A sturdy weapon issued to veterans of the guild.",
equipped: false,
id: "iron_sword",
name: "Iron Sword",
owned: false,
rarity: "rare",
setId: "iron_vanguard",
type: "weapon",
},
{
bonus: { combatMultiplier: 1.5 },
description:
"A sword imbued with ancient magic that makes every strike count.",
equipped: false,
id: "enchanted_blade",
name: "Enchanted Blade",
owned: false,
rarity: "epic",
type: "weapon",
},
{
bonus: { combatMultiplier: 1.65 },
cost: { crystals: 0, essence: 500, gold: 0 },
description:
"Forged in the Shadow Marshes from condensed darkness. It strikes before it is seen.",
equipped: false,
id: "shadow_dagger",
name: "Shadow Dagger",
owned: false,
rarity: "epic",
setId: "shadow_infiltrator",
type: "weapon",
},
{
bonus: { combatMultiplier: 1.7 },
description:
"A spear tipped with a shard of the Primordial Forge's eternal fire.",
equipped: false,
id: "flame_lance",
name: "Flame Lance",
owned: false,
rarity: "epic",
setId: "volcanic_forger",
type: "weapon",
},
{
bonus: { combatMultiplier: 2 },
description: "A legendary blade that severs even the strongest bonds.",
equipped: false,
id: "vorpal_sword",
name: "Vorpal Sword",
owned: false,
rarity: "legendary",
type: "weapon",
},
{
bonus: { combatMultiplier: 2.5 },
cost: { crystals: 300, essence: 0, gold: 0 },
description:
"A scythe that harvests not flesh but essence itself. Every swing drains the will to resist.",
equipped: false,
id: "soul_reaper",
name: "Soul Reaper",
owned: false,
rarity: "legendary",
type: "weapon",
},
{
bonus: { combatMultiplier: 3 },
description:
"Forged from the heart of a dying star by the Cosmic Horror itself. Its edge exists in three realities simultaneously.",
equipped: false,
id: "celestial_blade",
name: "Celestial Blade",
owned: false,
rarity: "legendary",
type: "weapon",
},
{
bonus: { combatMultiplier: 2.75 },
cost: { crystals: 500, essence: 2000, gold: 0 },
description:
"A blade made of compressed nothingness. It does not cut — it simply unmakes.",
equipped: false,
id: "void_edge",
name: "Void Edge",
owned: false,
rarity: "legendary",
type: "weapon",
},
// ── Armour ────────────────────────────────────────────────────────────────
{
bonus: { goldMultiplier: 1.1 },
description:
"Simple protection that keeps your adventurers moving efficiently.",
equipped: true,
id: "leather_armour",
name: "Leather Armour",
owned: true,
rarity: "common",
type: "armour",
},
{
bonus: { goldMultiplier: 1.25 },
description: "Interlocked rings that guard against most mundane threats.",
equipped: false,
id: "chainmail",
name: "Chainmail",
owned: false,
rarity: "rare",
setId: "iron_vanguard",
type: "armour",
},
{
bonus: { goldMultiplier: 1.35 },
description:
"Cured hide from a Forest Giant, worked into armour that radiates primal authority.",
equipped: false,
id: "hide_armour",
name: "Giant's Hide Armour",
owned: false,
rarity: "rare",
type: "armour",
},
{
bonus: { goldMultiplier: 1.5 },
description: "Full plate protection that inspires confidence — and gold.",
equipped: false,
id: "plate_armour",
name: "Plate Armour",
owned: false,
rarity: "epic",
type: "armour",
},
{
bonus: { goldMultiplier: 1.75 },
cost: { crystals: 0, essence: 400, gold: 0 },
description:
"A cloak woven from the fabric of the Shadow Marshes itself. Wealth flows to those hidden from sight.",
equipped: false,
id: "void_shroud",
name: "Void Shroud",
owned: false,
rarity: "epic",
setId: "shadow_infiltrator",
type: "armour",
},
{
bonus: { combatMultiplier: 1.15, goldMultiplier: 1.65 },
description:
"Armour quenched in magma that hardened into something neither metal nor stone. Burns with inner heat.",
equipped: false,
id: "volcanic_plate",
name: "Volcanic Plate",
owned: false,
rarity: "epic",
setId: "volcanic_forger",
type: "armour",
},
{
bonus: { goldMultiplier: 2 },
description: "Armour forged from the scales of a defeated elder dragon.",
equipped: false,
id: "dragon_scale",
name: "Dragon Scale Armour",
owned: false,
rarity: "legendary",
type: "armour",
},
{
bonus: { goldMultiplier: 2.5 },
cost: { crystals: 250, essence: 0, gold: 0 },
description:
"A shield-armour hybrid blessed by the celestials. Its bearer becomes a fortress.",
equipped: false,
id: "titan_aegis",
name: "Titan's Aegis",
owned: false,
rarity: "legendary",
type: "armour",
},
{
bonus: { goldMultiplier: 2.25 },
description:
"Woven from threads of pure starlight harvested by the Astral Wraith. Income flows like cosmic energy.",
equipped: false,
id: "astral_robe",
name: "Astral Robe",
owned: false,
rarity: "legendary",
type: "armour",
},
// ── Trinkets ──────────────────────────────────────────────────────────────
{
bonus: { clickMultiplier: 1.1 },
description: "A coin that always lands on the side you need.",
equipped: true,
id: "lucky_coin",
name: "Lucky Coin",
owned: true,
rarity: "common",
type: "trinket",
},
{
bonus: { clickMultiplier: 1.25 },
description: "A crystal lens that sharpens magical precision.",
equipped: false,
id: "mages_focus",
name: "Mage's Focus",
owned: false,
rarity: "rare",
setId: "iron_vanguard",
type: "trinket",
},
{
bonus: { clickMultiplier: 1.3 },
description:
"A rune carved from bone-ice by the Bone Colossus. It amplifies strikes with cold precision.",
equipped: false,
id: "frost_rune",
name: "Frost Rune",
owned: false,
rarity: "rare",
type: "trinket",
},
{
bonus: { clickMultiplier: 1.5 },
description: "An orb humming with concentrated arcane energy.",
equipped: false,
id: "arcane_orb",
name: "Arcane Orb",
owned: false,
rarity: "epic",
type: "trinket",
},
{
bonus: { clickMultiplier: 1.45, goldMultiplier: 1.15 },
description:
"An amulet carved from ancient runestones found in the plague ruins. Its inscriptions hum with forgotten power.",
equipped: false,
id: "runestone_amulet",
name: "Runestone Amulet",
owned: false,
rarity: "epic",
type: "trinket",
},
{
bonus: { clickMultiplier: 1.55, goldMultiplier: 1.1 },
description:
"A fragment of the Mud Kraken's crystallised essence. Focuses raw power into devastating strikes.",
equipped: false,
id: "crystal_shard",
name: "Crystal Shard",
owned: false,
rarity: "epic",
setId: "volcanic_forger",
type: "trinket",
},
{
bonus: { clickMultiplier: 1.6 },
cost: { crystals: 0, essence: 350, gold: 0 },
description:
"A compass that points not north but toward the greatest concentration of power — wherever that may be.",
equipped: false,
id: "void_compass",
name: "Void Compass",
owned: false,
rarity: "epic",
setId: "shadow_infiltrator",
type: "trinket",
},
{
bonus: { clickMultiplier: 2, goldMultiplier: 1.2 },
description:
"A perfectly formed crystal harvested from the Ice Queen's throne room. Cold enough to burn.",
equipped: false,
id: "frost_crystal",
name: "Frost Crystal",
owned: false,
rarity: "legendary",
type: "trinket",
},
{
bonus: { clickMultiplier: 2, goldMultiplier: 1.25 },
description:
"The legendary stone that grants mastery over gold and combat alike.",
equipped: false,
id: "philosophers_stone",
name: "Philosopher's Stone",
owned: false,
rarity: "legendary",
type: "trinket",
},
{
bonus: { clickMultiplier: 2.25, goldMultiplier: 1.15 },
description:
"A flame that has never been extinguished, sealed in crystal by the Phoenix Lord. It burns with the power of rebirth.",
equipped: false,
id: "eternal_flame",
name: "Eternal Flame",
owned: false,
rarity: "legendary",
type: "trinket",
},
{
bonus: {
clickMultiplier: 2.5,
combatMultiplier: 1.25,
goldMultiplier: 1.3,
},
description:
"A gem that contains a universe within it. Those who hold it become more than mortal.",
equipped: false,
id: "infinity_gem",
name: "Infinity Gem",
owned: false,
rarity: "legendary",
type: "trinket",
},
// ── Celestial Reaches ─────────────────────────────────────────────────────
{
bonus: { combatMultiplier: 3.5 },
description:
"A weapon forged from a fallen seraph's primary feather — impossibly sharp, burning with divine light.",
equipped: false,
id: "seraph_wing",
name: "Seraph's Wing",
owned: false,
rarity: "legendary",
setId: "celestial_guardian",
type: "weapon",
},
{
bonus: { clickMultiplier: 2.75, goldMultiplier: 1.3 },
description:
"Torn from the Fallen Archangel. It radiates with grief and power in equal measure.",
equipped: false,
id: "angels_halo",
name: "Angel's Halo",
owned: false,
rarity: "legendary",
setId: "celestial_guardian",
type: "trinket",
},
{
bonus: { goldMultiplier: 2.75 },
description:
"Forged in heavenly smithies from light compressed so hard it became solid. Your gold flows like sunbeams.",
equipped: false,
id: "celestial_armour",
name: "Celestial Armour",
owned: false,
rarity: "legendary",
setId: "celestial_guardian",
type: "armour",
},
{
bonus: { combatMultiplier: 4 },
description:
"The First Light's own blade — a weapon of pure divine will given form. It does not cut. It declares.",
equipped: false,
id: "divine_edge",
name: "The Divine Edge",
owned: false,
rarity: "legendary",
type: "weapon",
},
{
bonus: { goldMultiplier: 3 },
description:
"The outermost garment of the celestial realm, woven from captured starlight and divine intention.",
equipped: false,
id: "heaven_mantle",
name: "Heaven's Mantle",
owned: false,
rarity: "legendary",
type: "armour",
},
// ── Abyssal Trench ────────────────────────────────────────────────────────
{
bonus: { combatMultiplier: 4.5 },
description:
"Crystallised from the Depth Leviathan's venom — a weapon that strikes through armour as if it were water.",
equipped: false,
id: "depth_blade",
name: "The Depth Blade",
owned: false,
rarity: "legendary",
setId: "abyssal_predator",
type: "weapon",
},
{
bonus: { clickMultiplier: 3, goldMultiplier: 1.35 },
description:
"The Elder Kraken's eye, preserved in brine from the deepest trench. It sees through all deception.",
equipped: false,
id: "leviathan_eye",
name: "The Leviathan's Eye",
owned: false,
rarity: "legendary",
setId: "abyssal_predator",
type: "trinket",
},
{
bonus: { goldMultiplier: 3.25 },
description:
"Armour forged under conditions that would crush a city. Nothing that wears it can be broken by ordinary force.",
equipped: false,
id: "pressure_plate",
name: "Pressure Plate",
owned: false,
rarity: "legendary",
setId: "abyssal_predator",
type: "armour",
},
{
bonus: { combatMultiplier: 5 },
description:
"The Elder Abomination's own appendage, reshaped by your artificers into something that passes for a weapon.",
equipped: false,
id: "abyssal_edge",
name: "The Abyssal Edge",
owned: false,
rarity: "legendary",
type: "weapon",
},
{
bonus: { goldMultiplier: 3.5 },
description:
"Woven from the darkness at the very bottom of everything. Gold flows to those who wear the dark.",
equipped: false,
id: "abyss_shroud",
name: "The Abyss Shroud",
owned: false,
rarity: "legendary",
type: "armour",
},
// ── Infernal Court ────────────────────────────────────────────────────────
{
bonus: { goldMultiplier: 3.75 },
description:
"The Demon Prince's own hide, worked into armour that whispers the strategies of ten thousand campaigns.",
equipped: false,
id: "demon_hide",
name: "Demon Hide Armour",
owned: false,
rarity: "legendary",
setId: "infernal_conqueror",
type: "armour",
},
{
bonus: { combatMultiplier: 5.5 },
description:
"A fragment of the Hellfire Titan's core — constantly burning with a heat that ignores armour.",
equipped: false,
id: "hellfire_edge",
name: "The Hellfire Edge",
owned: false,
rarity: "legendary",
setId: "infernal_conqueror",
type: "weapon",
},
{
bonus: { clickMultiplier: 3.25, goldMultiplier: 1.4 },
description:
"Crystallised from the Lord of Sin's tears — which had never been shed before. The rarest thing in the infernal court.",
equipped: false,
id: "soul_gem",
name: "The Soul Gem",
owned: false,
rarity: "legendary",
setId: "infernal_conqueror",
type: "trinket",
},
{
bonus: { combatMultiplier: 6 },
description:
"Forged from what The Fallen once was — something good, hardened into a weapon of absolute purpose.",
equipped: false,
id: "infernal_edge",
name: "The Infernal Edge",
owned: false,
rarity: "legendary",
type: "weapon",
},
{
bonus: { goldMultiplier: 4 },
description:
"Armour assembled from The Fallen's regrets. Every piece of it remembers what righteousness felt like.",
equipped: false,
id: "sinslayer_aegis",
name: "The Sinslayer Aegis",
owned: false,
rarity: "legendary",
type: "armour",
},
// ── Crystalline Spire ─────────────────────────────────────────────────────
{
bonus: { combatMultiplier: 6.5 },
description:
"A sword that refracts into thousands of simultaneous strikes. Defenders cannot guard against every angle.",
equipped: false,
id: "prism_blade",
name: "The Prism Blade",
owned: false,
rarity: "legendary",
setId: "crystal_domain",
type: "weapon",
},
{
bonus: { goldMultiplier: 4.5 },
description:
"Armour that intersects with adjacent realities — attacks pass through versions of you that chose differently.",
equipped: false,
id: "faceted_armour",
name: "The Faceted Armour",
owned: false,
rarity: "legendary",
setId: "crystal_domain",
type: "armour",
},
{
bonus: { clickMultiplier: 3.5, goldMultiplier: 1.5 },
description:
"A lens from the Diamond Colossus's own perception — through it, your guild sees every moment simultaneously.",
equipped: false,
id: "prism_eye",
name: "The Prism Eye",
owned: false,
rarity: "legendary",
setId: "crystal_domain",
type: "trinket",
},
{
bonus: { combatMultiplier: 7 },
description:
"The Crystal Sovereign's own instrument of computation — repurposed for something it calculated was inevitable.",
equipped: false,
id: "crystal_sovereign_blade",
name: "The Sovereign's Blade",
owned: false,
rarity: "legendary",
type: "weapon",
},
{
bonus: { goldMultiplier: 5 },
description:
"Armour compressed from crystallised possibilities — the optimal defensive configuration across all timelines.",
equipped: false,
id: "diamond_plate",
name: "Diamond Plate",
owned: false,
rarity: "legendary",
type: "armour",
},
// ── Void Sanctum ──────────────────────────────────────────────────────────
{
bonus: { combatMultiplier: 8 },
description:
"A weapon of pure absence — it does not strike, it simply removes the thing it is aimed at from existence.",
equipped: false,
id: "void_annihilator",
name: "The Void Annihilator",
owned: false,
rarity: "legendary",
setId: "void_emperor",
type: "weapon",
},
{
bonus: { goldMultiplier: 5.5 },
description:
"Woven from the Eternal Shade itself — armour that exists in every moment simultaneously, impossible to find.",
equipped: false,
id: "eternal_shroud",
name: "The Eternal Shroud",
owned: false,
rarity: "legendary",
setId: "void_emperor",
type: "armour",
},
{
bonus: { clickMultiplier: 4, goldMultiplier: 1.6 },
description:
"Crystallised from the Void Progenitor's core — the original absence, given form. It makes the impossible routine.",
equipped: false,
id: "void_heart_gem",
name: "The Void Heart Gem",
owned: false,
rarity: "legendary",
setId: "void_emperor",
type: "trinket",
},
{
bonus: { combatMultiplier: 9 },
description:
"The Void Emperor's own sceptre of authority, seized in the moment of its defeat. It commands even nothingness.",
equipped: false,
id: "sanctum_breaker",
name: "The Sanctum Breaker",
owned: false,
rarity: "legendary",
type: "weapon",
},
{
bonus: { goldMultiplier: 6 },
description:
"The armour the Void Emperor wore for all of existence — now worn by something that dared to challenge all of existence.",
equipped: false,
id: "void_emperor_plate",
name: "Void Emperor's Plate",
owned: false,
rarity: "legendary",
type: "armour",
},
// ── Eternal Throne ────────────────────────────────────────────────────────
{
bonus: { goldMultiplier: 7 },
description:
"The Throne Warden's own defensive shell — protection that has never been breached across all of time.",
equipped: false,
id: "eternal_armour",
name: "Eternal Armour",
owned: false,
rarity: "legendary",
setId: "eternal_throne",
type: "armour",
},
{
bonus: { combatMultiplier: 10 },
description:
"The Eternal Knight's sword — a weapon that has served the throne since the concept of service was invented.",
equipped: false,
id: "throne_blade",
name: "The Throne Blade",
owned: false,
rarity: "legendary",
setId: "eternal_throne",
type: "weapon",
},
{
bonus: { combatMultiplier: 12 },
description:
"The Apex's own instrument — not a weapon in any sense your guild understands, but it functions as one now.",
equipped: false,
id: "apex_sword",
name: "The Apex Sword",
owned: false,
rarity: "legendary",
type: "weapon",
},
{
bonus: { goldMultiplier: 8 },
description:
"Armour assembled from the Eternal Throne itself — the absolute seat of power, now serving those who claimed it.",
equipped: false,
id: "apex_plate",
name: "The Apex Plate",
owned: false,
rarity: "legendary",
type: "armour",
},
{
bonus: { clickMultiplier: 5, combatMultiplier: 1.5, goldMultiplier: 2 },
description:
"The source of the Apex's power — the thing that makes the Eternal Throne eternal. It is yours now. All of it.",
equipped: false,
id: "eternity_stone",
name: "The Eternity Stone",
owned: false,
rarity: "legendary",
setId: "eternal_throne",
type: "trinket",
},
// ── Purchasable endgame sinks ─────────────────────────────────────────────
{
bonus: { clickMultiplier: 2.5 },
cost: { crystals: 0, essence: 20_000_000, gold: 0 },
description:
"A lens of compressed celestial light that sharpens every strike with divine precision.",
equipped: false,
id: "celestial_focus",
name: "Celestial Focus",
owned: false,
rarity: "legendary",
type: "trinket",
},
{
bonus: { goldMultiplier: 3 },
cost: { crystals: 0, essence: 50_000_000, gold: 0 },
description:
"A book written in the language of the deep — reading it aligns your guild's operations with abyssal efficiency.",
equipped: false,
id: "abyssal_tome",
name: "Abyssal Tome",
owned: false,
rarity: "legendary",
type: "armour",
},
{
bonus: { combatMultiplier: 4 },
cost: { crystals: 0, essence: 100_000_000, gold: 0 },
description:
"A weapon that channels void energy — the absence of resistance makes every strike devastating.",
equipped: false,
id: "void_conduit",
name: "Void Conduit",
owned: false,
rarity: "legendary",
type: "weapon",
},
{
bonus: { clickMultiplier: 3.5, goldMultiplier: 1.5 },
cost: { crystals: 5_000_000, essence: 0, gold: 0 },
description:
"A gem forged in the heart of the Infernal Court — it burns with productivity and righteous fury in equal measure.",
equipped: false,
id: "infernal_gem",
name: "Infernal Gem",
owned: false,
rarity: "legendary",
type: "trinket",
},
{
bonus: { goldMultiplier: 4 },
cost: { crystals: 20_000_000, essence: 0, gold: 0 },
description:
"Armour structured around a crystalline lattice of optimal income calculations. Every gold piece finds you faster.",
equipped: false,
id: "crystal_matrix",
name: "Crystal Matrix",
owned: false,
rarity: "legendary",
type: "armour",
},
{
bonus: { clickMultiplier: 5, combatMultiplier: 1.5, 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.",
equipped: false,
id: "eternal_prism",
name: "The Eternal Prism",
owned: false,
rarity: "legendary",
type: "trinket",
},
];