feat: add debug panel with force-unlocks and hard-reset tools
CI / Lint, Build & Test (pull_request) Failing after 1m34s
Security Scan and Upload / Security & DefectDojo Upload (pull_request) Successful in 1m36s

Adds a new Debug tab to the game UI exposing two admin self-service
tools: Force Unlocks (non-destructive scan and correction of any
earned-but-locked zones, quests, bosses, and exploration areas) and
Hard Reset (full progress wipe back to a fresh save, preserving
lifetime stats). Both are guarded by a confirmation modal.

Also styles the action buttons and confirmation modal danger variant,
and adds the ForceUnlocksResponse type to the shared types package.
This commit is contained in:
2026-03-18 10:49:19 -07:00
committed by Naomi Carrigan
parent a20cf3ef87
commit 00c38144e3
10 changed files with 869 additions and 1 deletions
+1
View File
@@ -60,6 +60,7 @@ export type {
ExploreCollectResponse,
ExploreStartRequest,
ExploreStartResponse,
ForceUnlocksResponse,
GiteaRelease,
LeaderboardCategory,
LeaderboardEntry,
+34
View File
@@ -398,6 +398,39 @@ interface CraftRecipeResponse {
craftedCombatMultiplier: number;
}
interface ForceUnlocksResponse {
/**
* The corrected game state after applying all missing unlocks.
*/
state: GameState;
/**
* Number of zones that were unlocked by this operation.
*/
zonesUnlocked: number;
/**
* Number of quests that were made available by this operation.
*/
questsUnlocked: number;
/**
* Number of bosses that were made available by this operation.
*/
bossesUnlocked: number;
/**
* Number of exploration areas that were made available by this operation.
*/
explorationUnlocked: number;
/**
* HMAC-SHA256 signature of the corrected state for anti-cheat chain continuity.
*/
signature?: string;
}
export type {
AboutResponse,
ApiError,
@@ -417,6 +450,7 @@ export type {
ExploreCollectResponse,
ExploreStartRequest,
ExploreStartResponse,
ForceUnlocksResponse,
GiteaRelease,
LeaderboardCategory,
LeaderboardEntry,