Skip to content

feat(rpg-demo): combat depth, pixel-art migration, UI polish - #2

Merged
dudusotero merged 1 commit into
mainfrom
feat/rpg-pixel-art
May 13, 2026
Merged

feat(rpg-demo): combat depth, pixel-art migration, UI polish#2
dudusotero merged 1 commit into
mainfrom
feat/rpg-pixel-art

Conversation

@dudusotero

@dudusotero dudusotero commented May 13, 2026

Copy link
Copy Markdown
Owner

Summary

Three large-and-related strands of work for the RPG demo plus two design-system fixes that shipped along the way.

Combat depth (rpg-demo)

  • Status effects — poison, burn, stun, shield wired through the battle loop with on-hit chances, DoT ticking, stun-skip, and shield absorbs. Goblins poison, skeletons stun, Fireball ignites, Aegis Pendant grants a battle-start shield.
  • Equipment — 3 slots (weapon / armor / trinket), 10 pieces, derived stats layered on top of the hero's base. Merchant gets a Gear tab; Inventory gets a real Equipment tab with equip / unequip + Stash.
  • Boss phases — Pixel Dragon telegraphs Fire Breath and enrages at 50% HP (+ATK / +SPD / higher crit rate, more frequent telegraphs).

Pixel-art migration (7 stages, complete)

Every emoji glyph is replaced with hand-authored PNG sprites rendered through a new <Sprite> component. 31 sprites across enemies, heroes, NPCs, map tokens, items, equipment, statuses. Generator script (scripts/generate-sprites.py) and design doc (SPRITES.md) included so future sprites are one ASCII grid away.

@pixelore/react fixes (patch — changeset included)

  • Tabs: fixed sub-pixel divider artifact on the active tab. Dividers now come from a 2px gap + parent black background instead of per-trigger border-r-2, so they always pixel-snap.
  • Dialog: caps height to viewport with internal scroll; close button stays pinned. Fixes content overflowing off the top/bottom of mobile viewports.

Other rpg-demo fixes

  • DamageNumbers no longer clipped by Card overflow — moved to a sibling layer that shares the Card's footprint without inheriting its clipping.
  • Desktop scroll: removed the lg-only body overflow lock that was hiding sidebar content on shorter viewports.
  • Save schema bumped to v2 (old saves ignored).
  • Root README + rpg-demo README refreshed; hero screenshot added.

Test plan

  • `pnpm -r typecheck` clean across 4 packages
  • `pnpm -r lint` clean
  • `pnpm -r build` clean
  • Walked title → map → battle → inventory at 375 / 768 / 1280 / 1440 viewports
  • Verified status chip tooltips, equipment derived stats, boss telegraph + phase change in-browser
  • Confirmed damage numbers float above Card top edge (no clipping)
  • Confirmed Tabs divider snaps to 2px on all sizes; Dialog scrolls with pinned X
  • One full playthrough vs. the dragon on each class before merge

@vercel

vercel Bot commented May 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
pixelore Ready Ready Preview, Comment May 13, 2026 4:56pm
pixelore-rpg Ready Ready Preview, Comment May 13, 2026 4:56pm

Major changes:

- **Status effects** (poison, burn, stun, shield) wired through the battle
  loop with on-hit chances, DoT ticking, stun-skip, and shield absorbs.
  Goblins poison on hit, skeletons stun, Fireball ignites, Aegis Pendant
  grants a Shield at battle start.

- **Equipment** — 3 slots (weapon / armor / trinket), 10 pieces, derived
  stats layered over the hero's base. Merchant gets a Gear tab; Inventory
  gets a real Equipment tab with equip / unequip + Stash.

- **Boss phases** — Pixel Dragon now telegraphs Fire Breath and enrages
  at 50% HP (+ATK / +SPD / higher crit rate, more frequent telegraphs).

- **Pixel-art migration** (7 stages): every emoji glyph replaced with
  hand-authored PNG sprites rendered through a new <Sprite> component.
  31 sprites covering enemies, heroes, NPCs, tokens, items, equipment,
  and statuses. Generator script + SPRITES.md design doc included.

UI fixes (also in @pixelore/react):

- Tabs: fix sub-pixel divider artifact on the active tab — dividers now
  come from a 2px gap + parent black background instead of per-trigger
  border-r-2, so they always pixel-snap.
- Dialog: cap height to viewport with internal scroll; close button stays
  pinned. Fixes content overflowing off the top/bottom of mobile viewports.

Other:

- DamageNumbers no longer clipped by Card overflow — moved to a sibling
  layer that shares the Card's footprint without inheriting its clipping.
- Desktop scroll: removed the lg-only body overflow lock that was hiding
  sidebar content on shorter viewports.
- Save schema bumped to v2 (old saves ignored).
- Updated rpg-demo README + root README; added a hero screenshot.
@dudusotero
dudusotero force-pushed the feat/rpg-pixel-art branch from 44a19b0 to 34f4c72 Compare May 13, 2026 16:56
@dudusotero
dudusotero merged commit 66cd17c into main May 13, 2026
4 checks passed
@dudusotero
dudusotero deleted the feat/rpg-pixel-art branch May 13, 2026 16:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant