Show what the fleet is carrying separately from banked resources #15

Closed
opened 2026-08-11 13:36:41 +00:00 by metaheavens · 1 comment
Owner

Part 2 of #12. Depends on the fleet-cargo ticket.

ResourceCounter.gd currently shows GameState.rocks and nothing else. Once ore is carried before it is banked, the player needs to see both numbers and understand that one of them is at risk until it is delivered.

Scope

  • Show carried vs banked in the top-left counter, visually distinct.
  • Make "not yet banked" legible at a glance rather than just being a second number.

Acceptance

  • Both values visible and correctly updating.
  • Reads clearly at the phone's font sizes (check with a real render via tests/screenshot.sh, not just a headless test - headless draws no pixels).
Part 2 of #12. Depends on the fleet-cargo ticket. `ResourceCounter.gd` currently shows `GameState.rocks` and nothing else. Once ore is carried before it is banked, the player needs to see both numbers and understand that one of them is at risk until it is delivered. **Scope** - Show carried vs banked in the top-left counter, visually distinct. - Make "not yet banked" legible at a glance rather than just being a second number. **Acceptance** - Both values visible and correctly updating. - Reads clearly at the phone's font sizes (check with a real render via `tests/screenshot.sh`, not just a headless test - headless draws no pixels).
Author
Owner

Done in d1b82f4.

A second readout under the banked total, showing what the fleet is carrying. Three things separate it from the banked figure, because colour alone is a weak signal on a phone in a game that is mostly teal:

  • Amber, not ore-teal - the same amber already used for ore in transit (the extractor derrick from #9, the hauler route).
  • Smaller, and underneath the banked figure, so it reads as subordinate: this is the number that is not yours yet.
  • Only present while actually carrying, so an empty hold is not a permanent 0 parked next to the real total.

It reads GameState directly, for the same reason ResourceCounter does - it stays correct across the space <-> planet-surface scene swap without anyone pushing updates into it.

Test

tests/test_cargo_readout.gd checks that the banked readout keeps showing the BANK rather than the total (the obvious wrong implementation is to just add them together), that the cargo readout appears only while carrying, that delivering moves the number from one to the other, and that the two are genuinely distinguishable - different colour AND different position, so "the same number twice" cannot pass.

Looked at it

Rendered at the real phone resolution via tests/_cargo_readout_preview.tscn + tests/screenshot.sh: teal 128 banked, amber 34 carried beneath it. Legible as two separate quantities at a glance. Headless draws no pixels, so no headless test could have told me that.

Full suite: 42/42.

Next: #16.

Done in d1b82f4. A second readout under the banked total, showing what the fleet is carrying. Three things separate it from the banked figure, because colour alone is a weak signal on a phone in a game that is mostly teal: - **Amber, not ore-teal** - the same amber already used for ore in transit (the extractor derrick from #9, the hauler route). - **Smaller, and underneath** the banked figure, so it reads as subordinate: this is the number that is not yours yet. - **Only present while actually carrying**, so an empty hold is not a permanent `0` parked next to the real total. It reads `GameState` directly, for the same reason `ResourceCounter` does - it stays correct across the space <-> planet-surface scene swap without anyone pushing updates into it. ## Test `tests/test_cargo_readout.gd` checks that the banked readout keeps showing the BANK rather than the total (the obvious wrong implementation is to just add them together), that the cargo readout appears only while carrying, that delivering moves the number from one to the other, and that the two are genuinely distinguishable - different colour AND different position, so "the same number twice" cannot pass. ## Looked at it Rendered at the real phone resolution via `tests/_cargo_readout_preview.tscn` + `tests/screenshot.sh`: teal `128` banked, amber `34` carried beneath it. Legible as two separate quantities at a glance. Headless draws no pixels, so no headless test could have told me that. Full suite: **42/42**. Next: #16.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
metaheavens/spaceship#15
No description provided.