feat(ui): Rogue mode JSON-UI screens, assets and lang keys #17
No reviewers
Labels
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
pokebedrock/pokebedrock-res!17
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/rogue-ui"
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
Resource-pack half of the Rogue (PokeRogue-style) experience. Pairs with
pokebedrock-behPR #738 (feature/rogue-experience).Screens (
ui/pokemon/rogue.json, namespacerogue)Routed from
ui/server_form.jsonby ActionForm title flags, same technique as the PC screen:§g§u§1§g§u§2§g§u§3§g§u§4N/10 Start.ROGUEwordmark, vertical menu, party preview.All dynamic data arrives via
#form_textand marker-prefixed#form_button_text(c<S><CC>:,hero:,tab<a|i>:,slot<N>:,random:,clear:,prev:/next:,start:,menu:,card<R>:,go:,exfil:,recipe<y|n>:,back:); sprites/icons via#form_button_texture. Nolocalize: truelabels.Assets (
textures/ui/rogue/)31 pixel-art PNGs (+ nineslice sidecars): panels, buttons, grid cells/overlays, party slots, rarity cards,
pokeball_empty,logo.Lang
rogue.*block appended totexts/en_US.lang(101 keys) and synced to all other langs withnpm run syncLangFiles.Not verified
No in-game render yet — needs a client with this pack + beh PR #738 to confirm bindings (
$label_expr/$enabled_expras wholesource_property_name, grid item template,\nin the Start label, hover tooltips).Bound labels whose text starts with a digit never rendered, and string `+` turned out to be numeric ('§e' + '9/10' -> 9). Replace every parsed number with static labels toggled by marker comparison: slot rows show the species cost (1..10) at the right edge, the cost chip draws "<n> / 10" from eleven fixed labels and is a plain panel rather than a button. Drop the cell cost badge (the black corner box) — cost is now on the sidebar, tooltip and info panel. Locked cells use a light wash with a small corner padlock instead of a full-size icon. Menu-style Back/Leave/menu rows are 100% wide so the blacksmith Back is centred, and the spacer between Back and Clear in the party bar is gone. Co-authored-by: Cursor <cursoragent@cursor.com>Review (head
a039bb2)Resource-pack half of Rogue looks coherent vs
main: screens +server_formflags§g§u§1–4,_ui_defsregistration,textures/ui/rogue/*, androgue.*lang (136 keys, synced across all 7 locales). Merge-from-main only absorbed already-on-mainassets — PR delta vs main is Rogue-scoped (no dirty safari/emoji/gymleader leakage in the merge-base diff).CI (tip): green —
CI / build-and-testsuccess;Model Preview / model-previewsuccess.Findings
rogue.cellvisibility is%.1s = 'c', so party chrome markersclear:/cost:also match the 9×6 grid template. Harmless only if beh#738 always places the 54 cell buttons in the first grid indices; otherwise Clear/Cost steal cell slots (Clear → locked wash viacl). Tighten visibility to validc<S>states (or a longer unique prefix) and/or document the BEH ordering contract next to the marker table.textures/ui/rogue/cost_badge.pngandpokeball_empty.pngare added but unreferenced (cost_chipusesbuttonas chip chrome). Drop or wire them up.localize: true” / “101 keys”; tip actually useslocalize: truefor static labels (correct) and en_US has 136rogue.*keys. Author’s “not verified in-game” still stands — needs client + beh#738.Non-blocking notes
$flag_rogue_*.startvsstart:,savevssave:) is intentional and matches recent polish commits.Verdict: COMMENT — solid structure + green CI; harden cell marker (or prove BEH index ordering) before calling this client-ready.
@ -0,0 +393,4 @@{"binding_name": "#null","binding_type": "view","source_property_name": "((%.1s * #form_button_text) = 'c')",Marker collision: visibility is only
%.1s = 'c', but the sameform_buttonscollection also carries party chrome prefixedclear:andcost:(and would match any futurec…marker).On this screen the 9×6
grid_item_template: rogue.cellbinds the first 54 collection indices. If beh#738 does not put exactly the species/empty/locked cells in those slots first, Clear shows up as a locked cell (cl) and Cost as a normal enabled cell (co).Prefer gating visibility on the known state alphabet (
e|l|s|f|b|…/ whatever BEH emits for a normal cell), or use a longer unique prefix (e.g.c:) so chrome markers cannot collide. Please confirm the button order contract with beh#738 either way.First review on head
a039bb2a(merge of main intofeature/rogue-ui). Companion beh#738 (feature/rogue-experience).CI on this tip: green —
ci.ymlrun #317 success +model-preview.yml#318 success.Wire-up / scope: Clean.
_ui_defs.jsonregistersui/pokemon/rogue.json;server_form.jsonadds$flag_rogue_{lobby,party,after,smith}(§g§u§1..§4) with PC-style title routing and long_form exclusion. Diff is Rogue-only (screens +textures/ui/rogue/*+rogue.*lang sync) — no dirty churn.Protocol vs beh#738: Marker lengths and filters match
rogueUi.ts(c<S><CC>:,tab<K><A>:,slot<N><CC>:,start:/start-,save:/save-,recipey|n:,card<R>:,m1:..m6:, etc.). 9×6 grid →rogue.cell, factories cover lobby/party/after/smith controls. PNG set matches hardcoded refs;pokeball_emptyis BEH-dynamic (EMPTY_SLOT_ICON) — fine. Nineslices present on stretch panels/buttons/cards; no junk files.Not APPROVED: Author correctly flags unverified in-game (
$label_expr/$enabled_expras wholesource_property_name, grid template, Start\n/hover tips). Structurally looks right against beh, but JSON-UI needs a client pass with beh#738 before merge confidence. Do not merge res ahead of beh#738.Nits (inlines): orphaned
cost_badge.pngvs PR “cost badge” claim;tab.pngmissing nineslice sidecar while active/hover have one. Lang: en_US has 136rogue.*keys (PR text says 101 / diff +138) — quality looks fine; other locales are syncLangFiles copies.Key count drift (nit). Block starts here with solid naming (
rogue.<screen>.…/rogue.tip.…/ items/materials). Count is 136 keys (diff +138 lines); PR body still says 101 — update the summary. No empty/dupe keys spotted; syncLangFiles locales not nitted.@ -0,0 +368,4 @@}]},"cell@common.button": {Orphan asset / missing cell cost badge. PR summary says the 9×6 grid shows a cost badge;
textures/ui/rogue/cost_badge.pngis in the pack but never referenced from this file. Cells only expose cost via hover tip text (%.5sstrip ofc<S><CC>:…). Either wire a small overlay (digit or badge texture) on non-empty cells, or dropcost_badge.pngand tighten the PR wording so “cost badge” isn’t implied on the grid.@ -0,0 +1140,4 @@"controls": [{"click@rogue.chrome": {"$default_texture": "textures/ui/rogue/tab",Nineslice gap. Default/locked tab chrome uses
textures/ui/rogue/tab, but onlytab_active.json/tab_hover.jsonship nineslice sidecars — notab.json. Active/hover will nine-slice; idle tab may stretch differently. Add a matching sidecar (or confirm the art is meant to stretch without one).Routing looks correct (informational). Same pattern as
pc@pc.main: flag strip for#visible/#enabled, and the four rogue flags are included in the defaultlong_formexclusion expr. Matches behROGUE_UI_*(§g§u§1§f…§4§f) as long as substring remove of§g§u§Nstill applies (same as existing PC flags).Review (head
4f529606)Delta vs prior COMMENT#2948 (
a039bb2): only.github/workflows/model-preview.yml—smell-of-curry/mc-model-preview@latest→ pinned Forgejopokebedrock/mc-model-preview@b10a8ffc(full URL + commit). Action commit +action.ymlexist on Forgejo; pin is correct vs@lateston GitHub.CI (tip):
CI / build-and-testsuccess;Model Preview / model-previewstill running/pending at review time (expected after the uses retarget).Still open from #2948 (UI untouched this tip — not re-inlined):
%.1s = 'c'vsclear:/cost:collision unless beh#738 pins the 54 cells first.cost_badge.png/pokeball_empty.png.Open type=issues: empty — no Fixes/Could Fix.
Do not merge res independently of beh#738.
Verdict: COMMENT — CI pin LGTM; prior client-readiness items unchanged.
Review (head
4f529606)Delta vs prior tip
a039bb2a: one commit — pins Model Preview to the Forgejo actionpokebedrock/mc-model-preview@b10a8ffc…instead ofsmell-of-curry/mc-model-preview@latest. Matches currentmain; no Rogue UI/asset/lang drift in this push.CI (tip): pending —
CI / build-and-testandModel Preview / model-previewstill waiting/queued at review time (runs 2316/2317). Prior tip was green; expect the same once runners catch up.Still open from COMMENT#2948 (unchanged Rogue surface)
rogue.cellvisibility still((%.1s * #form_button_text) = 'c'), soclear:/cost:can collide unless beh#738 pins the 54 grid cells first (existing inline onui/pokemon/rogue.json).textures/ui/rogue/cost_badge.pngandpokeball_empty.pngstill present and unreferenced.rogue.*keys and useslocalize: truefor static labels.Non-blocking
Verdict: COMMENT — workflow pin is fine; Rogue findings unchanged; wait for tip CI before treating as client-ready.
Follow-up on COMMENT 2952/2953/2960 (head
4f529606hasn't changed). This isn't a new review.New conflict: against res main
b4a8343a, all 7texts/*.langfiles conflict on an end-of-file append (main's keys aftermessage.rewards.grantError, and this branch's## Rogueblock). A union keeps both blocks with no duplicate keys. Use the same order in every lang. The BEH pair #738 is on hold, so there's no rush.View command line instructions
Manual merge helper
Use this merge commit message when completing the merge manually.
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.