Chase the audit's leads: verify, implement, or reject

Every lead in AUDIT.md, traced to the running source and then settled.

Ceremonial Dagger DESTROYS the joker to its right at blind select
(card.lua:2945) and skips Eternals. The card says so; what it cannot say
is WHICH of your jokers is about to die. JCA.dagger_victim names it in
the tooltip -- "WILL DESTROY Baron at the next blind" -- while there is
still time to reorder, and stays quiet when the neighbour is Eternal.

Four jokers that scored 0 against all 150 now have partners, all verified
in card.lua rather than recalled:
* Burglar + Ramen: Ramen decays per discarded card and is DESTROYED at x1
  (SMODS.destroy_cards). Burglar zeroes discards, so it never decays and
  never dies. Same for Burglar + Green Joker, which is only punished by
  discarding.
* Trading Card + Erosion: Erosion pays per card MISSING from the deck,
  and Trading Card permanently destroys the card it discards.
* Chaos the Clown + Flash Card: a free reroll every shop, and a joker
  that grows per reroll. Both were inert.

Erosion is the mirror of card_gen, so it now clashes with every joker
that permanently adds a card: DNA, Marble, Certificate.

Rejected, with the reasoning recorded so nobody "fixes" it later:
Card Sharp and Supernova reward replaying a hand and Obelisk punishes it,
but neither destroys the other's precondition -- the player's hand choice
does. That is an opposed incentive, not an opposed effect. The clash list
only earns trust while every entry is mechanical.

The audit's own silent-check was wrong: it flagged Square Joker, which
has been paired with Four Fingers all along, and I duplicated that pair
before the suite caught it. Silence now means no tags AND no famous pair.

711 pass locally, 10 in-game.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
funman300
2026-07-14 12:36:01 -07:00
parent 96a00d0d0c
commit 8ce5619273
5 changed files with 158 additions and 64 deletions
+25
View File
@@ -239,6 +239,25 @@ local PAIRS = {
-- two red + two black cards fill the pot. It is a top-tier combo, and this
-- mod used to warn against it.
{'j_smeared', 'j_flower_pot', 'any 2 red + 2 black fill it'},
-- Burglar zeroes discards_left for the whole run (card.lua:2905). That is a
-- disaster for nine jokers (see CLASHES) but a gift to the two that are
-- PUNISHED by discarding -- same shape as the Burglar + Mystic Summit pair.
-- Ramen is the sharper one: it decays x0.01 per discarded card and is
-- DESTROYED when it reaches x1 (SMODS.destroy_cards, card.lua:3175). No
-- discards means it never decays and never dies.
{'j_burglar', 'j_ramen', 'no discards, no decay'},
{'j_burglar', 'j_green_joker', 'no discards, only gains'},
-- Erosion pays per card MISSING from the deck (starting_deck_size -
-- #G.playing_cards, card.lua:4318), and Trading Card permanently destroys the
-- card it discards (remove = true, card.lua:3214). Thinning the deck is
-- exactly what Erosion is paid for.
{'j_trading', 'j_erosion', 'destroyed cards feed Erosion'},
-- Flash Card gains Mult per shop reroll; Chaos the Clown hands you a free one
-- every shop. Both jokers were inert in this database until now.
{'j_chaos', 'j_flash', 'free rerolls grow Flash Card'},
}
-- Known traps: pairs that actively hurt each other. Warning-only — they
@@ -280,6 +299,12 @@ local CLASHES = {
-- Splash makes every played card score, so a face card that used to be a
-- harmless kicker now lands in the scoring hand and resets the counter.
{'j_splash', 'j_ride_the_bus', 'any played face card resets it'},
-- Erosion is the mirror image of card_gen: it pays per card MISSING from the
-- deck, so every joker that permanently ADDS one shrinks its Mult for good.
{'j_erosion', 'j_dna', 'added cards shrink its Mult'},
{'j_erosion', 'j_marble', 'each Stone shrinks its Mult'},
{'j_erosion', 'j_certificate', 'added cards shrink its Mult'},
}
-- Per-joker cautions for the buy-area tooltip: the joker is fine on its