Fix four tag gaps and a contradiction found by the full-database audit
Cross-checked all 150 jokers' tags against JOKER_EFFECTS.md and the dump: - Drop the Vampire + Marble clash: Vampire gains xMult from any non-base scoring card (card.lua:3907), Stones included, so Marble feeds it -- the same shape as the Midas Mask pair. The data even scored the duo as a combo while warning against it. Stone-build harm stays covered by the Vampire + Stone Joker line. - Delayed Gratification wants discards_up: it pays per unused discard, same shape as Banner. - The Idol wants suit_flex: it checks is_suit (card.lua:3530), so Smeared doubles its eligible cards, like Ancient Joker. - 8 Ball wants retrig_scoring: the 1-in-4 rolls per scored 8 in the individual pass (card.lua:3507), so retriggers re-roll it. - Reword the suit give phrasings: nothing vanilla turns cards into a suit, so 'turns cards into Spades' was a lie whenever Blackboard sat across from a one-sided giver like Wrathful or Arrowhead. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -12,7 +12,7 @@ does not get redone from scratch every session.
|
|||||||
|---|---|
|
|---|---|
|
||||||
| Jokers in the database | 150 |
|
| Jokers in the database | 150 |
|
||||||
| Famous pairs | 36 |
|
| Famous pairs | 36 |
|
||||||
| Clashes | 25 |
|
| Clashes | 24 |
|
||||||
| Cautions | 15 |
|
| Cautions | 15 |
|
||||||
| Themes | 31 |
|
| Themes | 31 |
|
||||||
| Jokers in no famous pair | 102 |
|
| 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 |
|
| `clubs` | 3 | 4 | 4 | yes |
|
||||||
| `copy_target` | 10 | 3 | 13 | yes |
|
| `copy_target` | 10 | 3 | 13 | yes |
|
||||||
| `diamonds` | 2 | 2 | **2** | yes |
|
| `diamonds` | 2 | 2 | **2** | yes |
|
||||||
| `discards_up` | 2 | 8 | 10 | yes |
|
| `discards_up` | 2 | 9 | 11 | yes |
|
||||||
| `enhance_gen` | 2 | 2 | 4 | yes |
|
| `enhance_gen` | 2 | 2 | 4 | yes |
|
||||||
| `faces` | 1 | 9 | 10 | yes |
|
| `faces` | 1 | 9 | 10 | yes |
|
||||||
| `flush` | 5 | 4 | 6 | 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_faces` | 1 | 10 | 11 | yes |
|
||||||
| `retrig_held` | 1 | 4 | 5 | yes |
|
| `retrig_held` | 1 | 4 | 5 | yes |
|
||||||
| `retrig_low` | 1 | 11 | 12 | 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 |
|
| `sell_value` | 2 | 2 | 4 | yes |
|
||||||
| `spades` | 2 | 3 | 3 | yes |
|
| `spades` | 2 | 3 | 3 | yes |
|
||||||
| `spectral_gen` | 2 | 2 | **2** | yes |
|
| `spectral_gen` | 2 | 2 | **2** | yes |
|
||||||
| `stone_gen` | 1 | 1 | **2** | yes |
|
| `stone_gen` | 1 | 1 | **2** | yes |
|
||||||
| `straight` | 7 | 6 | 8 | yes |
|
| `straight` | 7 | 6 | 8 | yes |
|
||||||
| `suit_flex` | 1 | 11 | 12 | yes |
|
| `suit_flex` | 1 | 12 | 13 | yes |
|
||||||
| `tarot_gen` | 6 | 2 | 7 | yes |
|
| `tarot_gen` | 6 | 2 | 7 | yes |
|
||||||
| `three_kind` | 4 | 3 | 4 | yes |
|
| `three_kind` | 4 | 3 | 4 | yes |
|
||||||
| `two_pair` | 3 | 3 | 3 | 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 |
|
| joker | partners scoring >= 2 |
|
||||||
|---|---|
|
|---|---|
|
||||||
| `j_dusk` | 16 |
|
| `j_dusk` | 17 |
|
||||||
| `j_hanging_chad` | 16 |
|
| `j_hanging_chad` | 17 |
|
||||||
| `j_selzer` | 16 |
|
| `j_selzer` | 17 |
|
||||||
| `j_smeared` | 16 |
|
| `j_smeared` | 17 |
|
||||||
| `j_splash` | 16 |
|
| `j_splash` | 17 |
|
||||||
| `j_to_the_moon` | 16 |
|
| `j_to_the_moon` | 16 |
|
||||||
| `j_bootstraps` | 15 |
|
| `j_bootstraps` | 15 |
|
||||||
| `j_bull` | 15 |
|
| `j_bull` | 15 |
|
||||||
|
|||||||
+15
-8
@@ -54,7 +54,7 @@ j('j_half', {'mult'})
|
|||||||
j('j_credit_card', {})
|
j('j_credit_card', {})
|
||||||
j('j_banner', {'chips'}, {'discards_up'})
|
j('j_banner', {'chips'}, {'discards_up'})
|
||||||
j('j_mystic_summit', {'mult'})
|
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_misprint', {'mult'})
|
||||||
j('j_raised_fist', {'mult'}, {'retrig_held','hand_size'})
|
j('j_raised_fist', {'mult'}, {'retrig_held','hand_size'})
|
||||||
j('j_chaos', {})
|
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
|
-- 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.
|
-- anything that hands you spare Jokers feeds it. Riff-Raff is +6 Mult on its own.
|
||||||
j('j_abstract', {'mult'}, {'joker_gen'})
|
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_gros_michel', {'mult'})
|
||||||
j('j_even_steven', {'mult'}, {'retrig_scoring','retrig_low'})
|
j('j_even_steven', {'mult'}, {'retrig_scoring','retrig_low'})
|
||||||
j('j_odd_todd', {'chips'}, {'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_flower_pot', {'xmult'}, {'suit_flex'})
|
||||||
j('j_merry_andy', {'discards_up'})
|
j('j_merry_andy', {'discards_up'})
|
||||||
j('j_oops', {'probability'})
|
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_seeing_double', {'xmult','clubs'}, {'clubs','suit_flex'})
|
||||||
j('j_matador', {'money'})
|
j('j_matador', {'money'})
|
||||||
j('j_hit_the_road', {'xmult'}, {'discards_up'})
|
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_glass', 'strips Glass before it shatters'},
|
||||||
{'j_vampire', 'j_drivers_license', 'strips the 16 enhanced cards'},
|
{'j_vampire', 'j_drivers_license', 'strips the 16 enhanced cards'},
|
||||||
{'j_vampire', 'j_stone', 'eats the Stone cards it counts'},
|
{'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.
|
-- Joker Stencil's xMult is the count of EMPTY joker slots.
|
||||||
{'j_stencil', 'j_riff_raff', 'fills the slots Stencil needs'},
|
{'j_stencil', 'j_riff_raff', 'fills the slots Stencil needs'},
|
||||||
@@ -389,14 +393,17 @@ local TAG_TEXT = {
|
|||||||
give = 'makes Straights easier', want = 'rewards Straights'},
|
give = 'makes Straights easier', want = 'rewards Straights'},
|
||||||
flush = {both = 'both reward Flushes',
|
flush = {both = 'both reward Flushes',
|
||||||
give = 'makes Flushes easier', want = 'rewards 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',
|
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',
|
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',
|
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',
|
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;
|
-- Order in which tags are considered when picking the one reason to show;
|
||||||
|
|||||||
Reference in New Issue
Block a user