Card Sharp's x3 needs the same hand twice in ONE round -- it checks played_this_round > 1 (card.lua:4465) and that counter resets each round (state_events.lua:252). Burglar's +3 hands makes the replay routine, so it gets the famous pair plus a hands_up want, same shape as Burglar + Acrobat. The old verdict rejecting the Obelisk clash stands; the audit entry now records both decisions. Troubadour and Merry Andy join the cautions: their buried costs (one fewer hand every round, one hand size) are the same shape as Stuntman's existing warning. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
5.1 KiB
Synergy database audit
Generated by lua audit.lua --write. Do not edit by hand.
test.lua is the gate (it fails on what is broken). This is the map: it reports
what is merely suspicious, and records what we already decided so the analysis
does not get redone from scratch every session.
Totals
| Jokers in the database | 150 |
| Famous pairs | 37 |
| Clashes | 24 |
| Cautions | 17 |
| Themes | 31 |
| Jokers in no famous pair | 101 |
Jokers the advisor is silent about
These give nothing but engine roles (Mult/Chips/xMult) and want nothing, so they score at most the generic +1 against any joker in the game. That is a legitimate answer for some of them -- but it should be a decision, not an accident.
| count | |
|---|---|
| Silent, reviewed, staying that way | 24 |
| Silent, but a lead worth chasing | 0 |
| Silent and never looked at | 0 |
Leads worth chasing
Unverified. Check each against the Lovely dump before acting on it -- a wrong synergy is worse than a missing one.
Reviewed, and deliberately silent
j_baseball— xMult per Uncommon joker owned. A rarity tag would have exactly one payoff, and every giver would be "is uncommon" -- noise, not synergy.j_cavendish— the reward for Gros Michel dying, not a partnerj_ceremonial— RESOLVED: it destroys the joker to its right at blind select (card.lua:2945), skipping Eternals. JCA.dagger_victim now names the joker about to die, in the tooltip, while there is still time to reorder.j_chicot— disables the boss blind; no joker interactionj_credit_card— lets you go negative; a money buffer, not a comboj_diet_cola— sell for a Double Tag; tags are outside our modelj_glass— wants GLASS cards, and no vanilla joker creates them. Same trap as Steel Joker: enhance_gen is too coarse a tag to use here.j_gros_michel— self-destructs; the trap is a CAUTIONj_half— +Mult on small hands; no joker caresj_ice_cream— decays; the trap is a CAUTIONj_joker— plain +Mult; interacts with nothingj_loyalty_card— xMult every 6 hands; no joker interactionj_luchador— sell to disable a boss; no joker interactionj_misprint— random +Mult; interacts with nothingj_mr_bones— death insurance; no joker interactionj_obelisk— The trap is real but it is a CAUTION ("resets on your most played hand"), not a set of pairwise clashes. See j_card_sharp.j_popcorn— decays; the trap is a CAUTIONj_red_card— +Mult per skipped booster; no joker interactionj_ride_the_bus— scales on face-free hands; the traps are CLASHESj_ring_master— Showman allows duplicates in the shop pool. We have no tag for pool effects, and one joker does not justify inventing one.j_steel_joker— wants STEEL cards. The only enhance_gen givers make Gold (Midas) and Stone (Marble), so tagging it enhance_gen would invent a synergy that does not exist. No vanilla joker creates Steel cards. Leave it alone.j_stuntman— big chips, -2 hand size; the trap is a CAUTIONj_supernova— REJECTED as an Obelisk clash for the same reason as j_card_sharpj_throwback— xMult per skipped blind; no joker interaction
Tag health
A tag with one member can never fire (it takes two jokers to make a synergy). A tag with two is fragile: drop either joker and the theme dies.
| tag | givers | wanters | jokers | theme? |
|---|---|---|---|---|
card_gen |
3 | 2 | 5 | yes |
clubs |
3 | 4 | 4 | yes |
copy_target |
10 | 3 | 13 | yes |
diamonds |
2 | 2 | 2 | yes |
discards_up |
2 | 9 | 11 | yes |
enhance_gen |
2 | 2 | 4 | yes |
faces |
1 | 9 | 10 | yes |
flush |
5 | 4 | 6 | yes |
four_kind |
2 | 1 | 2 | yes |
gold_gen |
1 | 1 | 2 | yes |
hand_size |
3 | 4 | 7 | yes |
hands_up |
1 | 2 | 3 | yes |
hearts |
2 | 2 | 2 | yes |
joker_gen |
1 | 3 | 4 | yes |
money |
15 | 3 | 17 | yes |
pair |
3 | 3 | 3 | yes |
planet |
3 | 3 | 3 | yes |
probability |
1 | 7 | 8 | yes |
retrig_faces |
1 | 10 | 11 | yes |
retrig_held |
1 | 4 | 5 | yes |
retrig_low |
1 | 11 | 12 | yes |
retrig_scoring |
4 | 17 | 21 | yes |
sell_value |
2 | 2 | 4 | yes |
spades |
2 | 3 | 3 | yes |
spectral_gen |
2 | 2 | 2 | yes |
stone_gen |
1 | 1 | 2 | yes |
straight |
7 | 6 | 8 | yes |
suit_flex |
1 | 12 | 13 | yes |
tarot_gen |
6 | 2 | 7 | yes |
three_kind |
4 | 3 | 4 | yes |
two_pair |
3 | 3 | 3 | yes |
Load-bearing jokers
The jokers that appear in the most scoring relationships. If one of these is mis-tagged, the error is spread across the whole database.
| joker | partners scoring >= 2 |
|---|---|
j_dusk |
17 |
j_hanging_chad |
17 |
j_selzer |
17 |
j_smeared |
17 |
j_splash |
17 |
j_to_the_moon |
16 |
j_bootstraps |
15 |
j_bull |
15 |
j_four_fingers |
12 |
j_seance |
12 |
j_sock_and_buskin |
12 |
j_blueprint |
11 |
Jokers with no partner scoring >= 2 anywhere in the game: 24