feat: initial elysium idle game prototype

Sets up the full monorepo with pnpm workspaces. Includes shared types
package, Hono API with Discord OAuth/JWT auth, Prisma v6 + MongoDB
Atlas, and React + Vite frontend with game loop, five tabs, and
Discord-linked save/load.
This commit is contained in:
2026-03-06 11:26:19 -08:00
committed by Naomi Carrigan
parent c69e155de3
commit a3daed1683
64 changed files with 9011 additions and 0 deletions
+64
View File
@@ -0,0 +1,64 @@
import type { Boss } from "@elysium/types";
export const DEFAULT_BOSSES: Boss[] = [
{
id: "troll_king",
name: "The Troll King",
description:
"Gruk the Immovable has terrorised the trade roads for decades. Merchants will pay handsomely for his head.",
status: "available",
maxHp: 1_000,
currentHp: 1_000,
damagePerSecond: 5,
goldReward: 10_000,
essenceReward: 25,
crystalReward: 0,
upgradeRewards: ["click_2"],
prestigeRequirement: 0,
},
{
id: "lich_queen",
name: "The Lich Queen",
description:
"Seraphina the Undying commands legions of undead from her bone throne. Her defeat will echo through history.",
status: "locked",
maxHp: 10_000,
currentHp: 10_000,
damagePerSecond: 20,
goldReward: 100_000,
essenceReward: 200,
crystalReward: 10,
upgradeRewards: ["global_2"],
prestigeRequirement: 0,
},
{
id: "elder_dragon",
name: "Elder Dragon Vaeltharox",
description:
"The eldest dragon in existence, older than the kingdom itself. Even his breath can level mountains.",
status: "locked",
maxHp: 100_000,
currentHp: 100_000,
damagePerSecond: 75,
goldReward: 1_000_000,
essenceReward: 1_000,
crystalReward: 50,
upgradeRewards: ["click_3"],
prestigeRequirement: 1,
},
{
id: "void_titan",
name: "The Void Titan",
description:
"A creature from beyond the veil of reality, drawn by the power your guild has accumulated. It must not be allowed to exist.",
status: "locked",
maxHp: 1_000_000,
currentHp: 1_000_000,
damagePerSecond: 250,
goldReward: 10_000_000,
essenceReward: 5_000,
crystalReward: 200,
upgradeRewards: [],
prestigeRequirement: 3,
},
];