319f79bc5d
Hovering a joker that is a fusion component now names the fusion it feeds,
its cost with discounts applied, and what is still missing. In the shop the
card is counted as if already bought, so it answers the buy-side question
("Buy to fuse into Diamond Bard ($12 to fuse)") instead of restating what
you already own.
The line worth having is the last one. Fusing CONSUMES its components --
fuse_card calls ingredient:remove() -- so every combo those jokers held with
the rest of the board dies with them, and the FUSE button cannot tell you
that. "Fusing drops combos with: Smeared" is computed from the surviving
board, and a component being spent is not counted as a loss.
Three things about their code shaped this:
* Card:get_card_fusion() would have answered most of it, but it drives its
price flicker with math.randomseed(love.timer.getTime() * 8). An advisor
reseeding Lua's RNG on every hover has no business doing that, so this
reads FusionJokers.fusions directly and mirrors their discount arithmetic
(flat then percentage, per-result and universal, floored, min $1).
* Recipes take repeated components -- their own debug fusion needs 3x Joker
-- so components are counted by quantity, not presence.
* Affordability is judged only on plain numbers: Fusion Jokers uses to_big,
and Talisman turns G.GAME.dollars into an object. Guessing wrong about
someone's money is worse than staying quiet, so the money line just
does not appear.
Ownership is board membership, not card.area, matching copy_source and
dagger_victim -- the area pointer answers differently for the same card
depending on who built it.
Verified against the shipped recipe table: all 15 resolve at the right cost,
and all 30 components are jokers the database already knows. Not installed
means silence, like every other integration.
918 tests pass on 5.4 and LuaJIT (31 new), and 18/18 in the real game.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
61 lines
3.0 KiB
Markdown
61 lines
3.0 KiB
Markdown
# Changelog
|
||
|
||
## Unreleased
|
||
|
||
### Fusion Jokers integration
|
||
- When [Fusion Jokers](https://github.com/wingedcatgirl/Fusion-Jokers) is
|
||
installed, hovering any joker that is a fusion component names the fusion it
|
||
feeds, the discounted cost, and what is still missing ("Fuses into Diamond
|
||
Bard ($12) — still needs Rough Gem"). In the shop it answers the buy-side
|
||
question instead: "Buy to fuse into Diamond Bard ($12 to fuse)".
|
||
- Fusing **consumes** its components, so a ready fusion also reports the combos
|
||
that die with them ("Fusing drops combos with: Smeared"). No other mod can
|
||
answer that — it is the reason the integration exists rather than just
|
||
restating the recipe.
|
||
- Costs mirror Fusion Jokers' own discount arithmetic, and components are
|
||
counted by quantity, so a recipe needing 3× Joker asks for three.
|
||
- Not installed means silence, like every other integration.
|
||
|
||
## 1.1.0 — 2026-07-15
|
||
|
||
### New advice surfaces
|
||
- **Consumable advice**: shop Planet/Tarot/Spectral cards and their booster
|
||
packs name the owned jokers they feed; Standard Packs warn when they would
|
||
shrink Erosion's Mult. Silent unless an owned joker cares.
|
||
- **Sticker cautions**, per card instance: perishable on a scaling joker
|
||
("gains die in 5 rounds") and rental on a money joker ("rent may eat its
|
||
payout").
|
||
|
||
### Database fixes (full audit against the real game code)
|
||
- DNA is no longer called a Pair enabler — its trigger (first hand of round,
|
||
exactly 1 card) makes that advice meaningless. Its trips/quads enabling and
|
||
Hologram pairing stay.
|
||
- Removed the Vampire + Marble clash: Marble feeds Vampire (a Stone card is
|
||
fuel, same shape as the Midas Mask pair). Stone-build harm remains covered
|
||
by Vampire + Stone Joker.
|
||
- New wants: Delayed Gratification (extra discards raise its payout), The
|
||
Idol (Smeared doubles its eligible cards), 8 Ball (retriggers re-roll it),
|
||
Card Sharp (extra hands make replays routine), Perkeo (Spectral and Planet
|
||
supply are duplication targets, not just Tarot).
|
||
- New famous pair: Burglar + Card Sharp. New cautions: Troubadour (plays one
|
||
fewer hand each round) and Merry Andy (costs 1 hand size).
|
||
- Suit tooltip phrasing no longer claims a payoff joker "turns cards into"
|
||
its suit.
|
||
|
||
### Tooling
|
||
- `JOKER_EFFECTS.md`: all 150 vanilla joker effects, keyed by real center
|
||
keys, for auditing tags without paraphrasing from memory.
|
||
- The audit now records verdicts for two-member ("fragile") themes and fails
|
||
on an unreviewed or stale one, same as silent jokers.
|
||
- CI workflow (Gitea Actions): syntax check, the suite on Lua 5.4 and LuaJIT,
|
||
audit freshness.
|
||
|
||
## 1.0.0
|
||
|
||
Initial release: synergy scoring and shop recommendations, hover tooltips
|
||
with reasons, famous pairs, clash/caution warnings, sell advisor, copy
|
||
advisor (Blueprint/Brainstorm chains), boss-blind cautions, build gaps,
|
||
combo/theme discovery with catalog tabs and progress, post-run recap,
|
||
learning mode, JokerDisplay and Too Many Jokers integrations, public API
|
||
for other mods (`JCA.register`, `register_pair`, `register_clash`).
|