Business Card claimed a synergy with Hack, but Hack only retriggers 2s-5s and Business Card only pays on faces. The single retrig_scoring tag lumped every retriggerer with every retrigger payoff. retrig_scoring now means rank-agnostic (Dusk, Seltzer, Hanging Chad, Splash). Hack gives retrig_low; Sock and Buskin gives retrig_faces. Payoffs want only the scopes their ranks can reach: low-rank payoffs (Even Steven, Odd Todd, Walkie Talkie, Fibonacci, Wee) add retrig_low, face payoffs (Scary Face, Business, Photograph, Triboulet) add retrig_faces, rank-agnostic ones (Hiker, the suit gems, The Idol) add both. Scholar keeps only retrig_scoring - no retriggerer targets Aces. This also kills Hack+Scholar, Hack+Scary Face, Hack+Photograph, Hack+Triboulet, and Sock and Buskin vs every low-rank payoff. Both new tags are full themes (catalog page, label, teaching line) so Hack and Sock and Buskin stay visible in the Engine tab. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
5.4 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 | 36 |
| Clashes | 25 |
| Cautions | 15 |
| Themes | 31 |
| Jokers in no famous pair | 102 |
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 | 25 |
| 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_card_sharp— REJECTED as a clash with Obelisk. Card Sharp rewards replaying a hand and Obelisk punishes replaying your MOST played hand -- but neither destroys the other precondition; the player's hand choice does. That is an opposed incentive, not an opposed effect. Flagging it would dilute the clash signal, which only earns trust while every entry is mechanical.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 | 8 | 10 | 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 | 1 | 2 | yes |
hearts |
2 | 2 | 2 | yes |
joker_gen |
1 | 3 | 4 | yes |
money |
15 | 3 | 17 | yes |
pair |
4 | 3 | 4 | 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 | 16 | 20 | 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 | 11 | 12 | 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 |
16 |
j_hanging_chad |
16 |
j_selzer |
16 |
j_smeared |
16 |
j_splash |
16 |
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: 25