generated from nhcarrigan/template
feat: add daily challenges system
Three PST-midnight-resetting challenges generated deterministically per day from click, boss, quest, and prestige types. Progress tracked server-side for bosses and prestige, client-side for clicks and quests. Crystal rewards awarded on completion and preserved through prestige resets.
This commit is contained in:
@@ -22,6 +22,11 @@ export type {
|
||||
UpdateProfileResponse,
|
||||
} from "./interfaces/Api.js";
|
||||
export type { Boss, BossStatus } from "./interfaces/Boss.js";
|
||||
export type {
|
||||
DailyChallenge,
|
||||
DailyChallengeState,
|
||||
DailyChallengeType,
|
||||
} from "./interfaces/DailyChallenge.js";
|
||||
export type {
|
||||
Equipment,
|
||||
EquipmentBonus,
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
export type DailyChallengeType = "clicks" | "bossesDefeated" | "questsCompleted" | "prestige";
|
||||
|
||||
export interface DailyChallenge {
|
||||
id: string;
|
||||
type: DailyChallengeType;
|
||||
label: string;
|
||||
target: number;
|
||||
progress: number;
|
||||
completed: boolean;
|
||||
rewardCrystals: number;
|
||||
}
|
||||
|
||||
export interface DailyChallengeState {
|
||||
/** ISO date string (e.g. "2026-03-06") used to detect when to reset */
|
||||
date: string;
|
||||
challenges: DailyChallenge[];
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
import type { Achievement } from "./Achievement.js";
|
||||
import type { Adventurer } from "./Adventurer.js";
|
||||
import type { Boss } from "./Boss.js";
|
||||
import type { DailyChallengeState } from "./DailyChallenge.js";
|
||||
import type { Equipment } from "./Equipment.js";
|
||||
import type { Player } from "./Player.js";
|
||||
import type { PrestigeData } from "./Prestige.js";
|
||||
@@ -24,4 +25,6 @@ export interface GameState {
|
||||
baseClickPower: number;
|
||||
/** Unix timestamp of the last client-side tick */
|
||||
lastTickAt: number;
|
||||
/** Daily challenge progress — optional for backwards compatibility with old saves */
|
||||
dailyChallenges?: DailyChallengeState;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user