diff --git a/AUDIT.md b/AUDIT.md index 254bc5b..2fa1a3c 100644 --- a/AUDIT.md +++ b/AUDIT.md @@ -12,7 +12,7 @@ does not get redone from scratch every session. |---|---| | Jokers in the database | 150 | | Famous pairs | 36 | -| Clashes | 25 | +| Clashes | 24 | | Cautions | 15 | | Themes | 31 | | Jokers in no famous pair | 102 | @@ -74,7 +74,7 @@ A tag with two is fragile: drop either joker and the theme dies. | `clubs` | 3 | 4 | 4 | yes | | `copy_target` | 10 | 3 | 13 | yes | | `diamonds` | 2 | 2 | **2** | yes | -| `discards_up` | 2 | 8 | 10 | yes | +| `discards_up` | 2 | 9 | 11 | yes | | `enhance_gen` | 2 | 2 | 4 | yes | | `faces` | 1 | 9 | 10 | yes | | `flush` | 5 | 4 | 6 | yes | @@ -91,13 +91,13 @@ A tag with two is fragile: drop either joker and the theme dies. | `retrig_faces` | 1 | 10 | 11 | yes | | `retrig_held` | 1 | 4 | 5 | yes | | `retrig_low` | 1 | 11 | 12 | yes | -| `retrig_scoring` | 4 | 16 | 20 | 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 | 11 | 12 | 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 | @@ -109,11 +109,11 @@ 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_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 | diff --git a/synergies.lua b/synergies.lua index 619c909..62de858 100644 --- a/synergies.lua +++ b/synergies.lua @@ -54,7 +54,7 @@ j('j_half', {'mult'}) j('j_credit_card', {}) j('j_banner', {'chips'}, {'discards_up'}) j('j_mystic_summit', {'mult'}) -j('j_8_ball', {'tarot_gen'}, {'probability'}) +j('j_8_ball', {'tarot_gen'}, {'probability','retrig_scoring'}) j('j_misprint', {'mult'}) j('j_raised_fist', {'mult'}, {'retrig_held','hand_size'}) j('j_chaos', {}) @@ -62,7 +62,7 @@ j('j_scary_face', {'chips'}, {'faces','retrig_scoring', -- Abstract Joker's Mult is the joker count (`#G.jokers.cards`, card.lua:4119), so -- anything that hands you spare Jokers feeds it. Riff-Raff is +6 Mult on its own. j('j_abstract', {'mult'}, {'joker_gen'}) -j('j_delayed_grat', {'money'}) +j('j_delayed_grat', {'money'}, {'discards_up'}) j('j_gros_michel', {'mult'}) j('j_even_steven', {'mult'}, {'retrig_scoring','retrig_low'}) j('j_odd_todd', {'chips'}, {'retrig_scoring','retrig_low'}) @@ -171,7 +171,7 @@ j('j_ring_master', {}) j('j_flower_pot', {'xmult'}, {'suit_flex'}) j('j_merry_andy', {'discards_up'}) j('j_oops', {'probability'}) -j('j_idol', {'xmult','copy_target'}, {'retrig_scoring','retrig_low','retrig_faces'}) +j('j_idol', {'xmult','copy_target'}, {'retrig_scoring','retrig_low','retrig_faces','suit_flex'}) j('j_seeing_double', {'xmult','clubs'}, {'clubs','suit_flex'}) j('j_matador', {'money'}) j('j_hit_the_road', {'xmult'}, {'discards_up'}) @@ -295,7 +295,11 @@ local CLASHES = { {'j_vampire', 'j_glass', 'strips Glass before it shatters'}, {'j_vampire', 'j_drivers_license', 'strips the 16 enhanced cards'}, {'j_vampire', 'j_stone', 'eats the Stone cards it counts'}, - {'j_vampire', 'j_marble', 'eats the Stones Marble adds'}, + -- j_vampire + j_marble is NOT here on purpose: Vampire gains xMult from any + -- non-base scoring card (card.lua:3907), Stones included, so Marble is a + -- renewable supply for it -- the same shape as the Midas Mask pair. The + -- harm only appears via a third joker (Stone Joker), which carries its own + -- clash line; third-party harm is not a clash (see the Card Sharp verdict). -- Joker Stencil's xMult is the count of EMPTY joker slots. {'j_stencil', 'j_riff_raff', 'fills the slots Stencil needs'}, @@ -389,14 +393,17 @@ local TAG_TEXT = { give = 'makes Straights easier', want = 'rewards Straights'}, flush = {both = 'both reward Flushes', give = 'makes Flushes easier', want = 'rewards Flushes'}, + -- No vanilla joker converts cards to a suit; every suit "giver" is a payoff + -- in the same cluster. The give phrasing must stay true for those (it shows + -- when the wanter is one-sided, e.g. Blackboard vs Wrathful/Arrowhead). hearts = {both = 'both love Hearts', - give = 'turns cards into Hearts', want = 'rewards Hearts'}, + give = 'also builds around Hearts', want = 'rewards Hearts'}, diamonds = {both = 'both love Diamonds', - give = 'turns cards into Diamonds', want = 'rewards Diamonds'}, + give = 'also builds around Diamonds', want = 'rewards Diamonds'}, spades = {both = 'both love Spades', - give = 'turns cards into Spades', want = 'rewards Spades'}, + give = 'also builds around Spades', want = 'rewards Spades'}, clubs = {both = 'both love Clubs', - give = 'turns cards into Clubs', want = 'rewards Clubs'}, + give = 'also builds around Clubs', want = 'rewards Clubs'}, } -- Order in which tags are considered when picking the one reason to show;