generated from nhcarrigan/template
e780dc5f6c
Zones now unlock in strict linear order. Each zone requires both the final boss AND the final quest of the previous zone to be completed: Verdant Vale → Shattered Ruins (forest_giant + ancient_ruins) Shattered Ruins → Frozen Peaks (elder_dragon + dragon_lair) Frozen Peaks → Shadow Marshes (void_titan + storm_citadel) Shadow Marshes → Volcanic Depths (mud_kraken + plague_ruins) Volcanic Depths → Astral Void (phoenix_lord + the_forge) - Zone type gains `unlockQuestId` field alongside `unlockBossId` - boss.ts checks both conditions before unlocking zone on boss defeat - tick.ts checks both conditions and unlocks zones + first boss on quest completion if the boss condition is already met - GameContext optimistic update also respects dual-condition logic - BossPanel zone-gate hints now show both "⚔️ Defeat: X & 📜 Complete: Y" - game.ts backfill syncs unlockQuestId and re-verifies zone status using both conditions, reverting incorrectly-unlocked saves
65 lines
2.3 KiB
TypeScript
65 lines
2.3 KiB
TypeScript
import type { Zone } from "@elysium/types";
|
|
|
|
export const DEFAULT_ZONES: Zone[] = [
|
|
{
|
|
id: "verdant_vale",
|
|
name: "The Verdant Vale",
|
|
description:
|
|
"Rolling green hills and ancient forests stretch to the horizon. This is where your guild takes its first steps — trade roads in need of clearing, goblin camps to rout, and an undead queen stirring in the north.",
|
|
emoji: "🌿",
|
|
status: "unlocked",
|
|
unlockBossId: null,
|
|
unlockQuestId: null,
|
|
},
|
|
{
|
|
id: "shattered_ruins",
|
|
name: "The Shattered Ruins",
|
|
description:
|
|
"The remnants of a civilisation long lost to war and dragonfire. Crumbling towers and cursed lakes hide treasures — and an elder dragon who claims these lands as his own.",
|
|
emoji: "🏛️",
|
|
status: "locked",
|
|
unlockBossId: "forest_giant",
|
|
unlockQuestId: "ancient_ruins",
|
|
},
|
|
{
|
|
id: "frozen_peaks",
|
|
name: "The Frozen Peaks",
|
|
description:
|
|
"At the edge of the world, where the sun barely rises and the cold is a living thing, a tear in reality has drawn something ancient and terrible. Only the mightiest guilds dare tread here.",
|
|
emoji: "❄️",
|
|
status: "locked",
|
|
unlockBossId: "elder_dragon",
|
|
unlockQuestId: "dragon_lair",
|
|
},
|
|
{
|
|
id: "shadow_marshes",
|
|
name: "The Shadow Marshes",
|
|
description:
|
|
"A vast, fog-choked wetland where the sun never fully rises. Dark magic seeps from the earth itself, and things far older than the kingdom lurk beneath the murky waters.",
|
|
emoji: "🌑",
|
|
status: "locked",
|
|
unlockBossId: "void_titan",
|
|
unlockQuestId: "storm_citadel",
|
|
},
|
|
{
|
|
id: "volcanic_depths",
|
|
name: "The Volcanic Depths",
|
|
description:
|
|
"A chain of active volcanoes whose caverns plunge deep into the earth's molten heart. Legendary forges burn here, tended by fire elementals who serve no master — yet.",
|
|
emoji: "🌋",
|
|
status: "locked",
|
|
unlockBossId: "mud_kraken",
|
|
unlockQuestId: "plague_ruins",
|
|
},
|
|
{
|
|
id: "astral_void",
|
|
name: "The Astral Void",
|
|
description:
|
|
"Beyond the veil of the mortal world lies a realm of pure possibility and absolute terror. Stars are born and die here in moments, and the beings that call this place home have never known mortality.",
|
|
emoji: "🌌",
|
|
status: "locked",
|
|
unlockBossId: "phoenix_lord",
|
|
unlockQuestId: "the_forge",
|
|
},
|
|
];
|