feat: v1 prototype — core game systems #30

Merged
naomi merged 84 commits from feat/prototype into main 2026-03-08 15:53:39 -07:00
Showing only changes of commit 2aa6362ad6 - Show all commits
+18 -1
View File
@@ -1,4 +1,4 @@
import type { GameState, Player, PrestigeData } from "@elysium/types";
import type { ApotheosisData, GameState, Player, PrestigeData, TranscendenceData } from "@elysium/types";
import { DEFAULT_ACHIEVEMENTS } from "./achievements.js";
import { DEFAULT_ADVENTURERS } from "./adventurers.js";
import { DEFAULT_BOSSES } from "./bosses.js";
@@ -14,6 +14,21 @@ export const INITIAL_PRESTIGE: PrestigeData = {
purchasedUpgradeIds: [],
};
export const INITIAL_TRANSCENDENCE: TranscendenceData = {
count: 0,
echoes: 0,
purchasedUpgradeIds: [],
echoIncomeMultiplier: 1,
echoCombatMultiplier: 1,
echoPrestigeThresholdMultiplier: 1,
echoPrestigeRunestoneMultiplier: 1,
echoMetaMultiplier: 1,
};
export const INITIAL_APOTHEOSIS: ApotheosisData = {
count: 0,
};
export const INITIAL_GAME_STATE = (player: Player, characterName: string): GameState => ({
player: {
...player,
@@ -37,4 +52,6 @@ export const INITIAL_GAME_STATE = (player: Player, characterName: string): GameS
zones: structuredClone(DEFAULT_ZONES),
baseClickPower: 1,
lastTickAt: Date.now(),
transcendence: { ...INITIAL_TRANSCENDENCE },
apotheosis: { ...INITIAL_APOTHEOSIS },
});