Warn about perishable scalers and rental money jokers at buy time

Per-instance sticker cautions, unlike the per-joker CAUTIONS table: the
same joker is a fine buy without the sticker. Perishable debuffs a joker
for good after 5 rounds (Card:calculate_perishable, card.lua:2652), so a
perishable Ride the Bus or Hologram is investment about to be wiped --
the new SCALERS set in synergies.lua lists the jokers whose stored gains
die that way, excluding computed (Bull) and round-scoped (Hit the Road)
values and Egg, whose sell value survives a debuff. Rental charges
every round (card.lua:2647), which can eat a money joker's whole payout.

The scaler-key integrity test caught j_canio for j_caino on the first
run -- the misspelled vanilla keys strike again.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
funman300
2026-07-15 19:44:32 -07:00
parent f88b034970
commit 048ab40f85
3 changed files with 69 additions and 0 deletions
+19
View File
@@ -354,6 +354,21 @@ local CAUTIONS = {
j_gros_michel = '1 in 6 to self-destruct each round',
}
-- Jokers whose stored ability values grow across rounds (Ride the Bus's Mult,
-- Hologram's xMult...). A PERISHABLE copy of one of these is a trap the card
-- text hides: perishable debuffs the joker for good after 5 rounds
-- (Card:calculate_perishable, card.lua:2652 -> set_debuff), so every round
-- spent growing it is investment about to be wiped. Computed jokers (Bull
-- reads your money, Abstract counts jokers) are excluded -- they lose nothing
-- stored -- as are round-scoped ones (Hit the Road resets each round) and
-- Egg, whose sell value survives a debuff.
local SCALERS = {
'j_ride_the_bus', 'j_green_joker', 'j_obelisk', 'j_hologram',
'j_constellation', 'j_campfire', 'j_vampire', 'j_lucky_cat', 'j_caino',
'j_yorick', 'j_glass', 'j_flash', 'j_red_card', 'j_madness', 'j_trousers',
'j_wee', 'j_square', 'j_runner', 'j_ceremonial', 'j_castle',
}
-- How to phrase a tag link in the tooltip, from the partner's perspective:
-- `give` when the partner provides the tag, `want` when the partner consumes
-- it, `both` for cluster tags where the pair simply shares the theme.
@@ -471,5 +486,9 @@ for _, entry in pairs(J) do
entry.gives, entry.wants = g, w
end
local SCALER_SET = {}
for _, k in ipairs(SCALERS) do SCALER_SET[k] = true end
return { jokers = J, pairs = PAIRS, clashes = CLASHES, cautions = CAUTIONS,
scalers = SCALER_SET,
tag_text = TAG_TEXT, tag_order = TAG_ORDER, theme_info = THEME_INFO }