9623bdeede
Bug #1 (QS wrong watermark): extracted card_face_asset_path() pure helper so the (Rank, Suit) → filename mapping is tested in isolation. 6 new unit tests confirm all 52 keys are unique and each suit resolves to its correct letter. QS.png has the wrong artwork baked in (confirmed via MD5); QS_BUG.md documents the required asset replacement. Bug #2/#3 (red square / invisible black suit on Android): add_android_corner_label used TextFont { ..default() } which gives Bevy's built-in font — that font lacks U+2660–U+2666, so suit glyphs rendered as a colored missing-glyph rectangle. Threaded Option<&Handle<Font>> from sync_cards_startup/on_change → sync_cards → spawn/update_card_entity → add_android_corner_label, which now passes FiraMono explicitly. Non-Android builds silence the unused param with let _ = font_handle. Bug #4 (waste pile): static analysis found no z or fan-offset bug; two new tests (waste_pile_cards_have_strictly_increasing_z, _draw_one_cards_have_distinct_z) pin the invariant for future changes. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
755 B
755 B
QS.png — Asset Content Bug
Status: Needs manual fix — replace QS.png with correct artwork.
Symptom: The Queen of Spades card renders with a diamond watermark baked into the PNG artwork, while the top-left Android overlay correctly shows "Q♠".
Diagnosis:
- The code-side mapping (
card_face_asset_path(Rank::Queen, Suit::Spades)) correctly returns"cards/faces/classic/QS.png"— confirmed by unit test. QS.pngandQD.pnghave distinct MD5 hashes, so they are not the same file. The bug is in the pixel content ofQS.pngitself.
Fix: Replace QS.png with a correctly-drawn Queen of Spades image (spade
watermark, not diamond). The image should be 120×168 px to match every other
card face in this directory.