Frame suit and hand jokers with this run's actual deck and levels

Buy-area tooltips on suit-tagged jokers now show the deck ratio
('Your deck: 18 of 52 cards are Hearts', from card.base.suit -- the
field vanilla scores by) and hand-cluster jokers show the hand's level
when it has been built past 1. Pure context: the pairwise score never
reads the deck, the lines are capped at two, and iteration order is
fixed so the tooltip is stable across hovers.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
funman300
2026-07-14 13:47:27 -07:00
parent 445171dc0b
commit f73507f5c6
2 changed files with 66 additions and 0 deletions
+18
View File
@@ -415,6 +415,24 @@ per[2].ability = {perishable = true, perish_tally = 0}
eq(JCA.weakest_link(), per[2],
'but a perished joker is the cut at any score - it will never work again')
--------------------------------------------------------------------------------
section('Engine: deck context counts base suits')
--------------------------------------------------------------------------------
-- Counts card.base.suit, the field vanilla scores by (card.lua:145). The
-- score never reads these numbers; they only frame the tooltip.
G.playing_cards = {
{base = {suit = 'Hearts'}}, {base = {suit = 'Hearts'}},
{base = {suit = 'Spades'}}, {base = {suit = 'Clubs'}},
}
local n, deck_total = JCA.deck_suit_count('Hearts')
eq(n, 2, 'counts the cards of the asked suit')
eq(deck_total, 4, 'and the whole deck for the ratio')
eq(JCA.deck_suit_count('Diamonds'), 0, 'a missing suit counts as zero')
G.playing_cards = nil
n, deck_total = JCA.deck_suit_count('Hearts')
eq(deck_total, 0, 'no deck (menus, tests) reads as an empty deck')
--------------------------------------------------------------------------------
section('Engine: boss-blind cautions know who the boss silences')
--------------------------------------------------------------------------------