hanabi: rebuild the presentation as a 2D board #15
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "hanabi/2d-board"
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?
No objects. No cards spawned, no hand zones for layout, nothing positioned. The board is
ui/Global.xml, one tree every player sees, and the only difference between viewers is whose hand shows backs.That difference is the whole game, and on a UI it is an attribute rather than a discovery. Each slot holds two overlapping images: the face, visible to every seat except the holder, and the back, visible only to the holder.
visibilityis evaluated per player, so one tree renders differently for each viewer. The object build needed a spike to establishsetHiddenFromcould do this; here it is stated directly.Everything the object build spent iterations on is gone: hand radius, slot spacing, seat arc, mat scale, zone clearance, table meshes, whether a hand zone would adopt a card and reorder it. Those concepts no longer exist.
rules.ttsluauntouched — the point of keeping TTS out of it. All 945 assertions still mean what they meant.ui/Global.xmlis generated bytools/make_ui.py. Fifty card images before fireworks and buttons, each with an id the Lua addresses by name; ninety hand-maintained ids is how XML and script quietly stop agreeing. The generator also refuses to emit--inside a comment, which silently kills the whole UI while the Lua loads fine — it did exactly that on the first generated file, and the lint gate caught it.Card faces are 31 Custom UI Assets, since XML
<Image>cannot offset into a spritesheet. Thirty-one fetches at load instead of one: the unavoidable price.Harness rewritten — it asserted object behaviour that no longer exists. It now checks the thing that matters most directly: for every card in every hand, the face is not visible to its holder and the back is visible to nobody else. 300 seeded games, zero failures.
Known limitation: hand rows are in fixed positions rather than always-yours-at-the-bottom, because "me" differs per viewer and there is one tree.