generated from nhcarrigan/template
feat: content expansion, prestige shop, and offline earnings improvements
- Expand content to 18 zones, 72 bosses, 95 quests, 32 adventurer tiers - Add prestige shop with 24 runestone upgrades across 5 categories - Add PrestigeUpgrade type, data files, API routes, and frontend panel - Fix offline earnings to include equipment and runestone multipliers - Add offline essence calculation alongside offline gold - Update OfflineModal to display both gold and essence earned - Add IDEAS.md for tracking planned features
This commit is contained in:
@@ -10,6 +10,8 @@ export type {
|
||||
AuthResponse,
|
||||
BossChallengeRequest,
|
||||
BossChallengeResponse,
|
||||
BuyPrestigeUpgradeRequest,
|
||||
BuyPrestigeUpgradeResponse,
|
||||
LoadResponse,
|
||||
PrestigeRequest,
|
||||
PrestigeResponse,
|
||||
@@ -29,6 +31,10 @@ export type {
|
||||
export type { GameState } from "./interfaces/GameState.js";
|
||||
export type { Player } from "./interfaces/Player.js";
|
||||
export type { PrestigeData } from "./interfaces/Prestige.js";
|
||||
export type {
|
||||
PrestigeUpgrade,
|
||||
PrestigeUpgradeCategory,
|
||||
} from "./interfaces/PrestigeUpgrade.js";
|
||||
export type {
|
||||
Quest,
|
||||
QuestReward,
|
||||
|
||||
@@ -24,6 +24,8 @@ export interface LoadResponse {
|
||||
state: GameState;
|
||||
/** Offline gold earned since last save (server-calculated) */
|
||||
offlineGold: number;
|
||||
/** Offline essence earned since last save (server-calculated) */
|
||||
offlineEssence: number;
|
||||
/** Seconds the player was offline (capped at 8 hours) */
|
||||
offlineSeconds: number;
|
||||
/** HMAC-SHA256 signature of the loaded state — store and include in next save request */
|
||||
@@ -72,6 +74,19 @@ export interface PrestigeResponse {
|
||||
newPrestigeCount: number;
|
||||
}
|
||||
|
||||
export interface BuyPrestigeUpgradeRequest {
|
||||
upgradeId: string;
|
||||
}
|
||||
|
||||
export interface BuyPrestigeUpgradeResponse {
|
||||
runestonesRemaining: number;
|
||||
purchasedUpgradeIds: string[];
|
||||
runestonesIncomeMultiplier: number;
|
||||
runestonesClickMultiplier: number;
|
||||
runestonesEssenceMultiplier: number;
|
||||
runestonesCrystalMultiplier: number;
|
||||
}
|
||||
|
||||
export interface PublicProfileResponse {
|
||||
characterName: string;
|
||||
username: string;
|
||||
|
||||
@@ -9,4 +9,12 @@ export interface PrestigeData {
|
||||
purchasedUpgradeIds: string[];
|
||||
/** Unix timestamp of last prestige */
|
||||
lastPrestigedAt?: number;
|
||||
/** Pre-computed multiplier from "income" runestone upgrades */
|
||||
runestonesIncomeMultiplier?: number;
|
||||
/** Pre-computed multiplier from "click" runestone upgrades */
|
||||
runestonesClickMultiplier?: number;
|
||||
/** Pre-computed multiplier from "essence" runestone upgrades */
|
||||
runestonesEssenceMultiplier?: number;
|
||||
/** Pre-computed multiplier from "crystals" runestone upgrades */
|
||||
runestonesCrystalMultiplier?: number;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
export type PrestigeUpgradeCategory =
|
||||
| "income"
|
||||
| "click"
|
||||
| "essence"
|
||||
| "crystals"
|
||||
| "runestones";
|
||||
|
||||
export interface PrestigeUpgrade {
|
||||
id: string;
|
||||
name: string;
|
||||
description: string;
|
||||
category: PrestigeUpgradeCategory;
|
||||
runestonesCost: number;
|
||||
/** Multiplier applied when this upgrade is purchased */
|
||||
multiplier: number;
|
||||
}
|
||||
@@ -23,4 +23,6 @@ export interface Quest {
|
||||
prerequisiteIds: string[];
|
||||
/** Zone this quest belongs to */
|
||||
zoneId: string;
|
||||
/** Minimum party combat power required to start this quest */
|
||||
combatPowerRequired?: number;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user