M008: Visual Asset Integration — wire spell, sigil, and condition icons into game UI #13
Labels
No labels
blocked:lint-failed
blocked:needs-decision
blocked:no-changes
bug
feature-request
in-progress
milestone
ops-task
quickfix
security/high
test-coverage
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/chainbound#13
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
The game engine, data, and UI components exist for spells, sigils, conditions, and traps — but none of them render actual graphics. Spells show as plain text in the SpellHorizon and resolution overlay. Sigils are bare CSS circles with two-letter abbreviations. Conditions are colored text badges. We have 29 placeholder assets ready in
public/— they just aren't wired anywhere.What's Missing
1. SpellDefinition needs
iconSrcsrc/engine/types.ts— addreadonly iconSrc?: stringtoSpellDefinitionsrc/data/spells.ts— addiconSrc: "/spell-<id>.png"to each spell definition (the placeholder PNGs are already inpublic/)2. SigilEntry needs
iconSrcsrc/data/symbols.ts— addreadonly iconSrc?: stringtoSigilEntry/sigil-{seal,mask,current,snare,glint}.png(placeholders exist)3. Render spell icons in SpellHorizon
src/components/SpellHorizon.tsx— currently shows spell name as text. Add the icon image beside the name usingspell.iconSrc.4. Render spell icons in resolution overlay
src/pages/CasualDuel.tsx,RankedMatch.tsx,OnlineMatch.tsx,Campaign.tsx5. Wire sigil icons in ChainPane
renderSlotfunctions (6 files: CasualDuel, RankedMatch, OnlineMatch, Campaign, Tutorial, ReplayViewer)6. Wire condition icons in ConditionMarker
src/components/ConditionMarker.tsx— already has an optionaliconSrcprop, but nothing ever passes it.7. Spell art in SpellHorizon detail popup
src/components/SpellHorizon.tsx— when a spell is expanded/hovered, show the spell art as a card image.Slice Plan
S01 — Data Layer: Add iconSrc to types + data files
iconSrctoSpellDefinition(types.ts) andSigilEntry(symbols.ts)spells.tsandsymbols.tsS02 — Render Layer: Wire spell icons into UI
S03 — Sigil & Trap Icons
renderSlot: use sigil icon instead of CSS circle when availablePlaceholder Assets Available
All generated as PNGs in
public/:spell-{id}.png(1264x848)sigil-{id}.png(256x256)condition-{id}.png(128x128)Each has a large white monogram, thematic gradient background, "PH" watermark, and "PLACEHOLDER" stamp.
Pre-existing lint errors (29 across 12 files) have been fixed in
47dfc01. All ESLint and TypeScript checks now pass clean. Unblocking.Fixed: