Skip to content

feat: Add UI layout popups for all DCSS ui-push types - #9

Open
willthehuman wants to merge 7 commits into
mainfrom
feature/ui-layout-popups
Open

feat: Add UI layout popups for all DCSS ui-push types#9
willthehuman wants to merge 7 commits into
mainfrom
feature/ui-layout-popups

Conversation

@willthehuman

@willthehuman willthehuman commented Mar 10, 2026

Copy link
Copy Markdown
Owner

Summary

  • Implements dedicated popup widgets for all 12 DCSS ui-push layout types that previously fell through to a generic plain-text fallback
  • New popup types: describe-item, describe-monster, describe-spell, describe-god, describe-feature-wide, describe-generic, describe-cards, formatted-scroller, progress-bar, seed-selection, msgwin-get-line, newgame-random-combo
  • Adds shared popup infrastructure: PopupScaffold (dark modal container with dismiss handling), PopupTheme (consistent DCSS dark aesthetic), DcssHtmlText (DCSS color tag text rendering)
  • GameState gains UiPopupState to store raw ui-push payloads for type-specific widget rendering, replacing the old _uiPushToTxtPayload conversion for these types
  • All popups support: scrollable content, DCSS color text parsing, ESC/tap-to-dismiss forwarded to server, ui-pop dismissal
  • Existing functionality (login, map, keyboard, menus, TxtOverlay for game-over/version) is preserved

Test plan

  • Launch app and connect to a DCSS webtiles server
  • Inspect an item (press v then select item) — verify describe-item popup shows with colored text and action buttons
  • Examine a monster (press x then navigate to monster) — verify describe-monster popup with description and status
  • View spell info (press I to list spells, select one) — verify describe-spell popup
  • Check god description (press ^ for religion screen) — verify describe-god popup with powers/favour/wrath sections
  • Step on a dungeon feature and examine it — verify describe-feature-wide popup
  • Press ? for help screens — verify formatted-scroller popup renders scrollable help text
  • Start new game with seed selection — verify seed-selection popup with text input
  • Start new game with random combo — verify newgame-random-combo popup with accept/reject
  • Verify all popups dismiss correctly on ESC key, tap outside, and server ui-pop
  • Verify existing menu overlay, text input overlay, and txt overlay still work correctly

🤖 Generated with Claude Code

claude and others added 3 commits March 10, 2026 20:36
Implement specific UI popup handlers for 12 ui-push message types that
previously fell through to a generic text fallback. Each popup type now
has its own widget with proper DCSS color text parsing, scrollable
content, and server key forwarding.

New popup types: describe-item, describe-monster, describe-spell,
describe-god, describe-feature-wide, describe-generic, describe-cards,
formatted-scroller, progress-bar, seed-selection, msgwin-get-line,
and newgame-random-combo.

Infrastructure includes shared PopupScaffold, PopupTheme, and
DcssHtmlText widgets for consistent dark DCSS aesthetic across all
popups. GameState gains UiPopupState to store raw ui-push payloads
for type-specific rendering.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Mar 13, 2026

Copy link
Copy Markdown

🚀 PWA Preview deployed!

📱 URL: https://willthehuman.github.io/dcss-mobile/pr-9/

This preview will be removed automatically when the PR is closed.

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.

3 participants