generated from nhcarrigan/template
feat: align expansion tab layouts with base game and add backlog TODO
- Add all shared tabs (daily, companions, character, about, debug) to both vampire and goddess mode tab bars and panel renderers - Add placeholder vampire-story and vampire-codex panels with TODO comments pending expansion story/codex content - Reorder both expansion tab arrays to mirror base game tab order - Add TODO.md tracking expansion content backlog and known issues (#254–#259)
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
# Elysium — Project TODO
|
||||
|
||||
Backlog items that need content or implementation before the expansion branch can be fully shipped.
|
||||
|
||||
---
|
||||
|
||||
## Expansion Content
|
||||
|
||||
- [ ] **Daily challenges for Vampire Mode** — design and add vampire-specific daily challenge sets; hook into the existing daily challenge system
|
||||
- [ ] **Daily challenges for Goddess Mode** — design and add goddess-specific daily challenge sets; hook into the existing daily challenge system
|
||||
- [ ] **Companions for Vampire Mode** — design vampire-flavoured companions and add to companion data/panel
|
||||
- [ ] **Companions for Goddess Mode** — design goddess-flavoured companions and add to companion data/panel
|
||||
- [ ] **Story content for Vampire Mode** — write story chapters for the vampire expansion; create a `VampireStoryPanel` to replace the mortal placeholder on the Vampire Story tab
|
||||
- [ ] **Story content for Goddess Mode** — write story chapters for the goddess expansion; create a `GoddessStoryPanel` to replace the mortal placeholder on the Goddess Story tab
|
||||
- [ ] **Codex entries for Vampire Mode** — write vampire-specific codex entries; create a `VampireCodexPanel` to replace the mortal placeholder on the Vampire Codex tab
|
||||
- [ ] **Codex entries for Goddess Mode** — write goddess-specific codex entries; create a `GoddessCodexPanel` to replace the mortal placeholder on the Goddess Codex tab
|
||||
|
||||
---
|
||||
|
||||
## Known Issues (Open)
|
||||
|
||||
See git.nhcarrigan.com/nhcarrigan/elysium/issues for the full list.
|
||||
Notable open items:
|
||||
|
||||
- #254 — Runestone per-prestige display does not match actual gain
|
||||
- #255 — Achievements not triggering on milestone completion
|
||||
- #256 — Exploration failure UX (consecutive failures, no feedback/pity)
|
||||
- #257 — Quest completion not required for transcendence (design review)
|
||||
- #258 — Crystal income post-transcendence feels insufficient
|
||||
- #259 — Manual save can hang when triggered in rapid succession
|
||||
@@ -90,29 +90,43 @@ type Tab =
|
||||
|
||||
type GoddessTab =
|
||||
| "goddess-zones"
|
||||
| "goddess-bosses"
|
||||
| "goddess-quests"
|
||||
| "disciples"
|
||||
| "goddess-equipment"
|
||||
| "goddess-upgrades"
|
||||
| "goddess-quests"
|
||||
| "goddess-bosses"
|
||||
| "goddess-equipment"
|
||||
| "goddess-exploration"
|
||||
| "goddess-crafting"
|
||||
| "daily"
|
||||
| "consecration"
|
||||
| "enlightenment"
|
||||
| "goddess-crafting"
|
||||
| "goddess-exploration"
|
||||
| "goddess-achievements";
|
||||
| "companions"
|
||||
| "character"
|
||||
| "goddess-achievements"
|
||||
| "goddess-story"
|
||||
| "goddess-codex"
|
||||
| "about"
|
||||
| "debug";
|
||||
|
||||
type VampireTab =
|
||||
| "vampire-zones"
|
||||
| "vampire-bosses"
|
||||
| "vampire-quests"
|
||||
| "thralls"
|
||||
| "vampire-equipment"
|
||||
| "vampire-upgrades"
|
||||
| "vampire-quests"
|
||||
| "vampire-bosses"
|
||||
| "vampire-equipment"
|
||||
| "vampire-exploration"
|
||||
| "vampire-crafting"
|
||||
| "daily"
|
||||
| "siring"
|
||||
| "vampire-awakening"
|
||||
| "vampire-crafting"
|
||||
| "vampire-exploration"
|
||||
| "vampire-achievements";
|
||||
| "companions"
|
||||
| "character"
|
||||
| "vampire-achievements"
|
||||
| "vampire-story"
|
||||
| "vampire-codex"
|
||||
| "about"
|
||||
| "debug";
|
||||
|
||||
const baseTabs: Array<{ id: Tab; label: string }> = [
|
||||
{ id: "adventurers", label: "⚔️ Adventurers" },
|
||||
@@ -138,30 +152,44 @@ const baseTabs: Array<{ id: Tab; label: string }> = [
|
||||
|
||||
const vampireTabs: Array<{ id: VampireTab; label: string }> = [
|
||||
{ id: "vampire-zones", label: "🗺️ Zones" },
|
||||
{ id: "vampire-bosses", label: "🩸 Bosses" },
|
||||
{ id: "vampire-quests", label: "📜 Quests" },
|
||||
{ id: "thralls", label: "🧟 Thralls" },
|
||||
{ id: "vampire-equipment", label: "🦇 Equipment" },
|
||||
{ id: "vampire-upgrades", label: "⚔️ Upgrades" },
|
||||
{ id: "vampire-quests", label: "📜 Quests" },
|
||||
{ id: "vampire-bosses", label: "🩸 Bosses" },
|
||||
{ id: "vampire-equipment", label: "🦇 Equipment" },
|
||||
{ id: "vampire-exploration", label: "🌑 Exploration" },
|
||||
{ id: "vampire-crafting", label: "⚗️ Crafting" },
|
||||
{ id: "daily", label: "📅 Daily" },
|
||||
{ id: "siring", label: "🩸 Siring" },
|
||||
{ id: "vampire-awakening", label: "💀 Awakening" },
|
||||
{ id: "vampire-crafting", label: "⚗️ Crafting" },
|
||||
{ id: "vampire-exploration", label: "🌑 Exploration" },
|
||||
{ id: "companions", label: "👥 Companions" },
|
||||
{ id: "character", label: "📋 Character" },
|
||||
{ id: "vampire-achievements", label: "🏆 Achievements" },
|
||||
{ id: "vampire-story", label: "📖 Story" },
|
||||
{ id: "vampire-codex", label: "🗺️ Codex" },
|
||||
{ id: "about", label: "ℹ️ About" },
|
||||
{ id: "debug", label: "🔧 Debug" },
|
||||
];
|
||||
|
||||
const goddessTabs: Array<{ id: GoddessTab; label: string }> = [
|
||||
{ id: "goddess-zones", label: "🌟 Zones" },
|
||||
{ id: "goddess-bosses", label: "👁️ Bosses" },
|
||||
{ id: "goddess-quests", label: "📿 Quests" },
|
||||
{ id: "disciples", label: "🙏 Disciples" },
|
||||
{ id: "goddess-equipment", label: "🔮 Equipment" },
|
||||
{ id: "goddess-upgrades", label: "✨ Upgrades" },
|
||||
{ id: "goddess-quests", label: "📿 Quests" },
|
||||
{ id: "goddess-bosses", label: "👁️ Bosses" },
|
||||
{ id: "goddess-equipment", label: "🔮 Equipment" },
|
||||
{ id: "goddess-exploration", label: "🌌 Exploration" },
|
||||
{ id: "goddess-crafting", label: "⚗️ Crafting" },
|
||||
{ id: "daily", label: "📅 Daily" },
|
||||
{ id: "consecration", label: "🕯️ Consecration" },
|
||||
{ id: "enlightenment", label: "💫 Enlightenment" },
|
||||
{ id: "goddess-crafting", label: "⚗️ Crafting" },
|
||||
{ id: "goddess-exploration", label: "🌌 Exploration" },
|
||||
{ id: "companions", label: "👥 Companions" },
|
||||
{ id: "character", label: "📋 Character" },
|
||||
{ id: "goddess-achievements", label: "🏆 Achievements" },
|
||||
{ id: "goddess-story", label: "📖 Story" },
|
||||
{ id: "goddess-codex", label: "🗺️ Codex" },
|
||||
{ id: "about", label: "ℹ️ About" },
|
||||
{ id: "debug", label: "🔧 Debug" },
|
||||
];
|
||||
|
||||
const modes: Array<Mode> = [ "mortal", "goddess", "vampire" ];
|
||||
@@ -488,6 +516,24 @@ const GameLayout = (): JSX.Element => {
|
||||
{activeMode === "goddess"
|
||||
&& activeGoddessTab === "goddess-achievements"
|
||||
&& <GoddessAchievementsPanel />}
|
||||
{activeMode === "goddess" && activeGoddessTab === "daily"
|
||||
&& <DailyChallengePanel />}
|
||||
{activeMode === "goddess" && activeGoddessTab === "companions"
|
||||
&& <CompanionPanel />}
|
||||
{activeMode === "goddess" && activeGoddessTab === "character"
|
||||
&& <CharacterSheetPanel />}
|
||||
{/* eslint-disable-next-line no-warning-comments -- Placeholder until expansion content is written */}
|
||||
{/* TODO: replace with GoddessStoryPanel once story content is written */}
|
||||
{activeMode === "goddess" && activeGoddessTab === "goddess-story"
|
||||
&& <StoryPanel />}
|
||||
{/* eslint-disable-next-line no-warning-comments -- Placeholder until expansion content is written */}
|
||||
{/* TODO: replace with GoddessCodexPanel once codex entries are written */}
|
||||
{activeMode === "goddess" && activeGoddessTab === "goddess-codex"
|
||||
&& <CodexPanel />}
|
||||
{activeMode === "goddess" && activeGoddessTab === "about"
|
||||
&& <AboutPanel />}
|
||||
{activeMode === "goddess" && activeGoddessTab === "debug"
|
||||
&& <DebugPanel />}
|
||||
{activeMode === "vampire"
|
||||
&& activeVampireTab === "vampire-zones"
|
||||
&& <VampireZonesPanel />
|
||||
@@ -532,6 +578,24 @@ const GameLayout = (): JSX.Element => {
|
||||
&& activeVampireTab === "vampire-achievements"
|
||||
&& <VampireAchievementsPanel />
|
||||
}
|
||||
{activeMode === "vampire" && activeVampireTab === "daily"
|
||||
&& <DailyChallengePanel />}
|
||||
{activeMode === "vampire" && activeVampireTab === "companions"
|
||||
&& <CompanionPanel />}
|
||||
{activeMode === "vampire" && activeVampireTab === "character"
|
||||
&& <CharacterSheetPanel />}
|
||||
{/* eslint-disable-next-line no-warning-comments -- Placeholder until expansion content is written */}
|
||||
{/* TODO: replace with VampireStoryPanel once story content is written */}
|
||||
{activeMode === "vampire" && activeVampireTab === "vampire-story"
|
||||
&& <StoryPanel />}
|
||||
{/* eslint-disable-next-line no-warning-comments -- Placeholder until expansion content is written */}
|
||||
{/* TODO: replace with VampireCodexPanel once codex entries are written */}
|
||||
{activeMode === "vampire" && activeVampireTab === "vampire-codex"
|
||||
&& <CodexPanel />}
|
||||
{activeMode === "vampire" && activeVampireTab === "about"
|
||||
&& <AboutPanel />}
|
||||
{activeMode === "vampire" && activeVampireTab === "debug"
|
||||
&& <DebugPanel />}
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user