generated from nhcarrigan/template
d1d1f70c75
- Fix strict-boolean-expressions in 7 route files (runtime body validation) - Fix no-unnecessary-condition in profile.ts and offlineProgress.ts (defensive null checks) - Extend v8 ignore next-N counts in game.ts to reach 100% coverage - Add CI requirements to CLAUDE.md (lint + build + test must pass before commit) - Add manual verification checklist (verify.md) - Remove progress.md
72 lines
1.8 KiB
TypeScript
72 lines
1.8 KiB
TypeScript
/**
|
|
* @file Game data definitions.
|
|
* @copyright nhcarrigan
|
|
* @license Naomi's Public License
|
|
* @author Naomi Carrigan
|
|
*/
|
|
import type { DailyChallengeType } from "@elysium/types";
|
|
|
|
interface DailyChallengeTemplate {
|
|
type: DailyChallengeType;
|
|
label: string;
|
|
target: number;
|
|
rewardCrystals: number;
|
|
}
|
|
|
|
export const dailyChallengeTemplates: Array<DailyChallengeTemplate> = [
|
|
// Clicks — always requires active play
|
|
{ label: "Click 500 times", rewardCrystals: 50, target: 500, type: "clicks" },
|
|
{
|
|
label: "Click 1,000 times",
|
|
rewardCrystals: 100,
|
|
target: 1000,
|
|
type: "clicks",
|
|
},
|
|
{
|
|
label: "Click 5,000 times",
|
|
rewardCrystals: 300,
|
|
target: 5000,
|
|
type: "clicks",
|
|
},
|
|
// Boss defeats — requires active combat
|
|
{
|
|
label: "Defeat 1 boss",
|
|
rewardCrystals: 75,
|
|
target: 1,
|
|
type: "bossesDefeated",
|
|
},
|
|
{
|
|
label: "Defeat 3 bosses",
|
|
rewardCrystals: 200,
|
|
target: 3,
|
|
type: "bossesDefeated",
|
|
},
|
|
{
|
|
label: "Defeat 5 bosses",
|
|
rewardCrystals: 400,
|
|
target: 5,
|
|
type: "bossesDefeated",
|
|
},
|
|
// Quest completions — requires starting quests
|
|
{
|
|
label: "Complete 3 quests",
|
|
rewardCrystals: 100,
|
|
target: 3,
|
|
type: "questsCompleted",
|
|
},
|
|
{
|
|
label: "Complete 5 quests",
|
|
rewardCrystals: 200,
|
|
target: 5,
|
|
type: "questsCompleted",
|
|
},
|
|
{
|
|
label: "Complete 10 quests",
|
|
rewardCrystals: 400,
|
|
target: 10,
|
|
type: "questsCompleted",
|
|
},
|
|
// Prestige — the big one
|
|
{ label: "Prestige once", rewardCrystals: 750, target: 1, type: "prestige" },
|
|
];
|