65b423c77d
test / test (push) Successful in 15s
The pixel-measured wrap passed the headless suite (which stubs text_width) but failed three assertions under the real engine in the smoke harness: - "Looking for:"/"Offers:" hints and the two-tone combo rows render at scale 0.3 but the width budget -- and every other row -- is measured at 0.32, so a row that fit at 0.3 slipped over the budget once measured at 0.32 and clipped. Render those rows small as before, but bound their wrap at the 0.32 reference: a 0.3 row is narrower still, so it can only wrap early, never clip. - wrap_measured word-split multi-word joker names, so a fusion's result read as "Fusion ready: Diamond" / "Bard ($12)" -- two jokers, not one. atomic() fuses a name or multi-word label into one unbreakable wrap token (spaces -> a \1 sentinel, restored for measurement and output); applied to every joker name and tag label that flows through a wrapped row. Smoke: 20/20 against the real Card:generate_UIBox_ability_table pipeline and the real Fusion Jokers recipe table. Headless: 947 pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3.5 KiB
3.5 KiB
Changelog
Unreleased
Changed
- The synergy catalog now opens from the pause menu (Escape > Combos, under Settings) instead of a button in the run HUD, which keeps the play screen clear. Same overlay, same tabs; Mods > Combo Advisor is unchanged.
Fixed
- The Combo Advisor hover tooltip no longer runs off the edge of the screen: every advice row is measured against the real font and wrapped to the card's gutter, and a wrapped line never splits a joker name ("Diamond Bard" stays whole rather than breaking across two rows).
Fusion Jokers integration
- When 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).