feat: vampire zones, quests, and achievements panels

Implements the three read-only vampire expansion display panels:
- VampireZonesPanel: zone grid with lock state, boss/quest unlock requirements
- VampireQuestsPanel: zone-filtered quest list with duration, rewards, progress badge
- VampireAchievementsPanel: achievement cards with progress bars and ichor/soul shard rewards
Wires all three into GameLayout, replacing the corresponding tab placeholders.
This commit is contained in:
2026-04-16 10:15:03 -07:00
committed by Naomi Carrigan
parent d9d1228172
commit 3e34701d32
4 changed files with 675 additions and 9 deletions
+6 -9
View File
@@ -53,6 +53,9 @@ import { StoryPanel } from "./storyPanel.js";
import { StoryToast } from "./storyToast.js";
import { TranscendencePanel } from "./transcendencePanel.js";
import { UpgradePanel } from "./upgradePanel.js";
import { VampireAchievementsPanel } from "./vampireAchievementsPanel.js";
import { VampireQuestsPanel } from "./vampireQuestsPanel.js";
import { VampireZonesPanel } from "./vampireZonesPanel.js";
type Mode = "mortal" | "goddess" | "vampire";
@@ -479,9 +482,7 @@ const GameLayout = (): JSX.Element => {
&& <GoddessAchievementsPanel />}
{activeMode === "vampire"
&& activeVampireTab === "vampire-zones"
&& <div className="vampire-placeholder">
<p>{"🗺️ Vampire Zones coming soon..."}</p>
</div>
&& <VampireZonesPanel />
}
{activeMode === "vampire"
&& activeVampireTab === "vampire-bosses"
@@ -491,9 +492,7 @@ const GameLayout = (): JSX.Element => {
}
{activeMode === "vampire"
&& activeVampireTab === "vampire-quests"
&& <div className="vampire-placeholder">
<p>{"📜 Vampire Quests coming soon..."}</p>
</div>
&& <VampireQuestsPanel />
}
{activeMode === "vampire"
&& activeVampireTab === "thralls"
@@ -539,9 +538,7 @@ const GameLayout = (): JSX.Element => {
}
{activeMode === "vampire"
&& activeVampireTab === "vampire-achievements"
&& <div className="vampire-placeholder">
<p>{"🏆 Vampire Achievements coming soon..."}</p>
</div>
&& <VampireAchievementsPanel />
}
</div>
</main>