From f8bba13f285fcef5df637ced6a884b56f416202e Mon Sep 17 00:00:00 2001 From: funman300 Date: Tue, 14 Jul 2026 11:00:04 -0700 Subject: [PATCH] Materialize catalog cards so pages animate on build Card rows in the Combos/theme tabs emplaced their cards without ever calling Card:start_materialize, so cards popped in with no animation when a tab opened or a page was switched. Every vanilla collection page materializes as it emplaces (create_UIBox_your_collection_jokers). Each card now materializes on emplace; begin_page() lets only the first card of a page build play the sound, matching vanilla's i>1 or j>1 silence flag. Co-Authored-By: Claude Opus 4.8 (1M context) --- main.lua | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/main.lua b/main.lua index c6aa108..2da6f39 100644 --- a/main.lua +++ b/main.lua @@ -714,6 +714,14 @@ local function reveal_params() end end +-- Cards must be materialized as they are emplaced, the way every vanilla +-- collection page does it -- otherwise they pop in with no animation when a +-- tab or a page is built. Only the first card of a page build plays the +-- whoosh; the rest are silent (vanilla's `i>1 or j>1` flag). Each tab def +-- calls begin_page() so the counter tracks one page, not one row. +local page_cards = 0 +local function begin_page() page_cards = 0 end + -- `face_down` renders the cards back-up (used for unfielded famous pairs); -- face-down cards also show no hover tooltip, keeping the mystery. local function card_row_node(keys, scale, face_down) @@ -732,6 +740,8 @@ local function card_row_node(keys, scale, face_down) card.facing = 'back' card.sprite_facing = 'back' end + card:start_materialize(nil, page_cards > 0) + page_cards = page_cards + 1 area:emplace(card) end end @@ -819,6 +829,7 @@ end -- One theme per page; the pager is labelled with theme names. local function theme_tab_def(group, page_no) + begin_page() page_no = math.min(page_no or 1, #group.themes) local theme = group.themes[page_no] local sources, payoffs, both = theme_members(theme.tag) @@ -886,6 +897,7 @@ end local PAIRS_PER_PAGE = 6 local sorted_pairs local function combos_tab_def(page_no) + begin_page() if not sorted_pairs or JCA._pairs_dirty then JCA._pairs_dirty = false sorted_pairs = {}