3.7 KiB
Limbo, Refuge and Oblivion piles
Continuumatrice adds three persistent public card piles per player alongside the existing Deck, Hand, Graveyard, Exile, Sideboard, Table and Stack zones.
| Display name | Stable wire-zone name | Visibility | Interactions |
|---|---|---|---|
| Limbo | limbo |
Public | Drop cards, move selected cards, view contents |
| Refuge | refuge |
Public | Drop cards, move selected cards, view contents |
| Oblivion | oblivion |
Public | Drop cards, move selected cards, view contents |
These use existing PileZoneLogic, PileZone, server Server_CardZone and string-based protocol zone names. The piles do not enforce gameplay rules (e.g., what gets sent to Limbo or whether Oblivion is permanent). Nothing automatically sends cards to them; users move cards through drag/drop or the card Move to menu.
The three new piles appear in a second, compact column, aligned with the existing deck, graveyard and exile piles. The table and hand shift to allow the extra column without overlap. Double-click a new pile to open the standard zone viewer; right-click for a View menu. The card count and the pile name/icon are shown even when the pile is nonempty.
Icons and asset overrides
The fork bundles original fallback SVG icons:
cockatrice/resources/piles/limbo.svgcockatrice/resources/piles/refuge.svgcockatrice/resources/piles/oblivion.svg
They are registered in cockatrice/cockatrice.qrc; you do not need to manually copy them to run the built client.
To assign your own art without recompiling, put a matching asset in the currently selected Continuumatrice theme:
~/.local/share/Continuumatrice/themes/<YourTheme>/piles/
limbo.svg
refuge.svg
oblivion.svg
The theme can use .png, .jpg, .jpeg or .svg, and the existing theme manager also supports scheme-specific file variants such as limbo-dark.svg. The theme's asset takes precedence; the bundled SVG is a fallback. Reload/change the theme to refresh the icons. The icons are cosmetic; all card data remains in the database and the runtime zone state.
Multiplayer compatibility
The new piles are created in both client-side PlayerLogic and server-side Server_Player::setupZones. They therefore work with the fork's local game and a Continuumatrice-built server. An unmodified upstream Cockatrice server does not create these zones and may reject card moves to limbo, refuge or oblivion. Use a matched client/server build for multiplayer.
No new protobuf messages are needed; the existing Command_MoveCard uses zone-name strings. Older upstream clients do not have dedicated icons/menus for these piles.
Manual verification (after rebuild)
- Launch a local game with two players and confirm all three new piles appear on each side.
- Confirm the new icons and labels are distinct and the board does not overlap the old piles, stack, hand or table.
- Move one card from the hand/table to each pile using Move to, and then by dragging.
- Double-click or right-click each pile to view its card list, then move a card back to the table or hand.
- Check the pile counters and name badges are legible when cards are present.
- Rejoin/reconnect a game (and try a replay) to ensure pile contents are reconstructed from server zones.
- Test both mirrored player orientations and the horizontal-hand setting at different window sizes.
- Override an icon with an asset in the selected theme and reload the theme.
- If using a remote server, ensure that server also has this fork's zone definitions.
Build locally with cmake --build build --target cockatrice --parallel 16. This change has not been compiled or visually run in this environment; the compilation and runtime checks above are essential before merging.