From a8c33c0689843c2192bb7ab88555cf261c0b824d Mon Sep 17 00:00:00 2001 From: AlexanderAndersonAmenAmen <104784206+AlexanderAndersonAmenAmen@users.noreply.github.com> Date: Sun, 26 Jul 2026 01:34:45 +0300 Subject: [PATCH 1/6] Blind Raiser Experimental ruleset added --- CHANGELOG.md | 9 + localization/en-us.lua | 27 + localization/ru.lua | 25 + localization/vi.lua | 25 + lovely/blind_raiser.toml | 138 +++ .../experimental_blind_raiser.lua | 179 ++++ ui/game/blind_choice.lua | 31 +- ui/game/blind_raiser.lua | 910 ++++++++++++++++++ ui/game/zz_blind_raiser_score.lua | 19 + .../play_button/ruleset_selection.lua | 1 + 10 files changed, 1362 insertions(+), 2 deletions(-) create mode 100644 lovely/blind_raiser.toml create mode 100644 rulesets/experimental/experimental_blind_raiser.lua create mode 100644 ui/game/blind_raiser.lua create mode 100644 ui/game/zz_blind_raiser_score.lua diff --git a/CHANGELOG.md b/CHANGELOG.md index 17b6fa5dc..12dc15e20 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## Blind Raiser Experimental Ruleset + +- Added **Experimental (Blind Raiser)** to the Experimental ruleset tab. +- Uses the full **Standard Ranked** ruleset configuration. +- Adds **Upgrade Blind** to every Stake: claim the current Small/Big Blind's Skip Tag and replace that slot with a random non-Showdown Boss Blind without skipping it. +- Blind Raiser boss rolls use separate bookkeeping so choosing an upgrade does not alter future normal Boss rolls in Multiplayer. +- Escalating score requirement: the Nth Blind upgraded this run uses the physical slot's regular score multiplied by **2^N**. +- Ruleset-only Tag reworks are listed under **Reworks → Other**: Investment scales with upgraded Blinds, Negative targets the next base-edition Common shop Joker, and Rare creates a free Rare Joker that empties your money when bought (and cannot roll in Ante 1). + ## Ranked Update 0.4.0 ### Standard Ranked diff --git a/localization/en-us.lua b/localization/en-us.lua index 79934cdcc..861446994 100644 --- a/localization/en-us.lua +++ b/localization/en-us.lua @@ -1,6 +1,30 @@ return { descriptions = { Tag = { + tag_mp_investment_blind_raiser = { + name = "Investment Tag", + text = { + "Gives {C:money}$#1#{} per upgraded", + "{C:attention}Blind{} this run", + "{C:inactive}(Will give {C:money}$#2#{C:inactive})" + }, + }, + tag_mp_negative_blind_raiser = { + name = "Negative Tag", + text = { + "Next base edition", + "shop {C:blue}Common Joker{}", + "becomes {C:dark_edition}Negative" + }, + }, + tag_mp_rare_blind_raiser = { + name = "Rare Tag", + text = { + "Shop has a free {C:red}Rare", + "{C:red}Joker{} that sets money", + "to {C:money}$0{} when bought" + }, + }, tag_mp_gambling_sandbox = { name = "Gambling Tag", text = { @@ -1329,6 +1353,7 @@ return { }, k_bl_life = "Life", k_bl_or = "or", + mp_upgrade_blind = "Upgrade Blind", k_bl_death = "Death", k_bl_mostchips = "Most chips wins", k_current_seed = "Current seed: ", @@ -1357,6 +1382,8 @@ return { k_experimental_description = "Standard's bleeding edge.\n\nHeavier balance changes being trialed\nfor a future Standard ruleset.\n\n(See bans and reworks tabs for details)", k_experimental_legacy = "Experimental (Classic)", k_experimental_legacy_description = "An opinionated take on Legacy Ranked.\n\nGlass nerfed, Hanging Chad reworked, Justice banned,\nLet's Go Gambling.", + k_experimental_blind_raiser = "Experimental (Blind Raiser)", + k_experimental_blind_raiser_description = "Standard Ranked with Blind Raiser.\n\nUpgrade the current Small or Big Blind into a random\nnon-Showdown Boss Blind and receive its Skip Tag reward.\nThe Nth upgrade uses the regular Blind score x 2^N.\nThe feature is available on every Stake.", k_badlatro = "Badlatro", k_badlatro_description = "A weekly ruleset designed by @dr_monty_the_snek on the discord server\nthat has been added to the mod permanently.\n\nThis ruleset bans 48 jokers, consumables, tags, etc.", k_attrition = "Attrition", diff --git a/localization/ru.lua b/localization/ru.lua index e74a65daa..87b49efdc 100644 --- a/localization/ru.lua +++ b/localization/ru.lua @@ -2,6 +2,28 @@ return { descriptions = { Tag = { + tag_mp_investment_blind_raiser = { + name = "Инвестиционный тег", + text = { + "Даёт {C:money}$#1#{} за каждый улучшенный", + "{C:attention}блайнд{} в этом забеге", + "{C:inactive}(Даст {C:money}$#2#{C:inactive})", + }, + }, + tag_mp_negative_blind_raiser = { + name = "Негативный тег", + text = { + "Следующий обычный джокер", + "базового издания в магазине станет {C:dark_edition}Негативным", + }, + }, + tag_mp_rare_blind_raiser = { + name = "Редкий тег", + text = { + "В магазине есть бесплатный {C:red}Редкий Джокер{}", + "при покупке деньги становятся {C:money}$0{}", + }, + }, tag_mp_gambling_sandbox = { name = "Азартный тег", text = { @@ -1312,6 +1334,7 @@ return { }, k_bl_life = "Жизнь", k_bl_or = "или", + mp_upgrade_blind = "Улучшить блайнд", k_bl_death = "Смерть", k_bl_mostchips = "Больше фишек — победа", k_current_seed = "Текущий сид: ", @@ -1338,6 +1361,8 @@ return { k_experimental_description = "Передовой край Стандартного.\n\nБолее серьёзные изменения баланса, тестируемые\nдля будущего Стандартного набора правил.\nОжидайте изменений между версиями.\n\n(Смотрите вкладки с банами и изменениями)", k_experimental_legacy = "Экспериментальный (Классический)", k_experimental_legacy_description = "Субъективный взгляд на Устаревший рейтинг.\n\nСтекло ослаблено, Ещё разок переработан, Правосудие запрещено,\nВращайте барабан.", + k_experimental_blind_raiser = "Экспериментальный (Blind Raiser)", + k_experimental_blind_raiser_description = "Стандартный рейтинг с Blind Raiser.\n\nУлучшите текущий малый или большой блайнд до случайного\nнефинального босс-блайнда и получите награду его тега пропуска.\nN-е улучшение использует обычный счёт блайнда x 2^N.\nФункция доступна на любой ставке.", k_badlatro = "Плохлатро", k_badlatro_description = "Еженедельный набор правил от @dr_monty_the_snek с discord-сервера,\nдобавленный в мод на постоянной основе.\n\nЭтот набор правил запрещает 48 джокеров, расходников, тегов и т.д.", k_attrition = "Истощение", diff --git a/localization/vi.lua b/localization/vi.lua index 6fa7362b2..4b5da177e 100644 --- a/localization/vi.lua +++ b/localization/vi.lua @@ -4,6 +4,28 @@ return { descriptions = { Tag = { + tag_mp_investment_blind_raiser = { + name = "Nhãn Đầu Tư", + text = { + "Nhận {C:money}$#1#{} cho mỗi", + "{C:attention}Blind{} đã nâng cấp trong lượt chơi", + "{C:inactive}(Sẽ nhận {C:money}$#2#{C:inactive})", + }, + }, + tag_mp_negative_blind_raiser = { + name = "Nhãn Âm Bản", + text = { + "Joker Phổ Biến bản chuẩn tiếp theo trong shop", + "trở thành {C:dark_edition}Âm Bản", + }, + }, + tag_mp_rare_blind_raiser = { + name = "Nhãn Hiếm", + text = { + "Shop có một {C:red}Joker Hiếm{} miễn phí", + "đặt tiền về {C:money}$0{} khi mua", + }, + }, tag_mp_sandbox_rare = { name = "Nhãn Con Bạc", text = { @@ -962,6 +984,7 @@ return { }, k_bl_life = "Sống", k_bl_or = "hoặc", + mp_upgrade_blind = "Nâng Cấp Blind", k_bl_death = "Chết", k_bl_mostchips = "Nhiều điểm hơn sẽ chiến thắng", k_current_seed = "Giống hiện tại: ", @@ -988,6 +1011,8 @@ return { k_experimental_description = "Đây là điều lệ thử nghiệm Tiêu Chuẩn.\n\nCác bản cân bằng sẽ liên tục được thử nghiệm tại đây\ntrước khi đưa vào điều lệ Tiêu Chuẩn.\n\n(xem mục bị cấm và làm lại để biết thêm thông tin)", k_experimental_legacy = "Thử Nghiệm (Cổ Điển)", k_experimental_legacy_description = "Đây là điều lệ mang ý kiến cá nhân với Xếp Hạng Truyền Thống.\n\nGiảm sức mạnh Lá Kính, làm lại Phiếu Đục Lỗ, cấm Công Lý,\nCờ bạc là bác thằng đần.", + k_experimental_blind_raiser = "Thử Nghiệm (Blind Raiser)", + k_experimental_blind_raiser_description = "Xếp Hạng Tiêu Chuẩn với Blind Raiser.\n\nNâng cấp Blind Nhỏ hoặc Blind Lớn hiện tại thành một Boss Blind\nkhông phải Hạ Màn ngẫu nhiên và nhận phần thưởng Nhãn Bỏ Qua.\nLần nâng cấp thứ N dùng điểm Blind thường x 2^N.\nTính năng có ở mọi Mức Cược.", k_badlatro = "Badlatro", k_badlatro_description = "Một thể thức tuần được thiết kế bởi @dr_monty_the_snek trong máy chủ đã được thêm vĩnh viễn vào mod.\n\nThể thức này cấm 48 joker, lá tiêu thụ, nhãn bỏ qua, v.v...", k_attrition = "Hao Mòn", diff --git a/lovely/blind_raiser.toml b/lovely/blind_raiser.toml new file mode 100644 index 000000000..401d8fed5 --- /dev/null +++ b/lovely/blind_raiser.toml @@ -0,0 +1,138 @@ +[manifest] +version = "1.0.0" +dump_lua = true +priority = 2147483600 + +# A Boss Blind definition can occupy a Small/Big slot through Blind Raiser. +# While this ruleset is active, round progression follows the physical slot +# being played rather than the Blind definition's intrinsic Boss type. + +[[patches]] +[patches.pattern] +target = "functions/state_events.lua" +pattern = "if G.GAME.blind:get_type() == 'Boss' then" +position = "at" +match_indent = true +times = 1 +payload = "if MP.BLIND_RAISER.slot_matches('Boss', G.GAME.blind:get_type() == 'Boss') then" + +# A second vanilla Boss branch advances the Ante after cashout. The generic +# patch above intentionally changes the first occurrence only, so explicitly +# gate the progression branch by the physical slot as well. Without this, an +# upgraded Ante 1 Small Blind advances the internal Ante to 2 and makes an +# upgraded Big Blind use 1200 x 2^2 = 4800 instead of 450 x 2^2 = 1800. +[[patches]] +[patches.pattern] +target = "functions/state_events.lua" +pattern = ''' + if G.GAME.blind:get_type() == 'Boss' then + G.GAME.voucher_restock = nil +''' +position = "at" +match_indent = true +times = 1 +payload = ''' + if MP.BLIND_RAISER.slot_matches('Boss', G.GAME.blind:get_type() == 'Boss') then + G.GAME.voucher_restock = nil +''' + +# Do not count a Boss definition occupying a Small/Big slot as a completed +# natural Boss Blind for the vanilla boss-streak statistic. +[[patches]] +[patches.pattern] +target = "functions/state_events.lua" +pattern = "if G.GAME.blind:get_type() == 'Boss' and not G.GAME.seeded and not G.GAME.challenge then" +position = "at" +match_indent = true +times = 1 +payload = "if MP.BLIND_RAISER.slot_matches('Boss', G.GAME.blind:get_type() == 'Boss') and not G.GAME.seeded and not G.GAME.challenge then" + +[[patches]] +[patches.pattern] +target = "functions/state_events.lua" +pattern = "if G.GAME.round_resets.ante == G.GAME.win_ante and G.GAME.blind:get_type() == 'Boss' then" +position = "at" +match_indent = true +times = 1 +payload = "if G.GAME.round_resets.ante == G.GAME.win_ante and MP.BLIND_RAISER.slot_matches('Boss', G.GAME.blind:get_type() == 'Boss') then" + +[[patches]] +[patches.pattern] +target = "functions/state_events.lua" +pattern = "if G.GAME.round_resets.blind == G.P_BLINDS.bl_small then" +position = "at" +match_indent = true +times = 1 +payload = "if MP.BLIND_RAISER.slot_matches('Small', G.GAME.round_resets.blind == G.P_BLINDS.bl_small) then" + +[[patches]] +[patches.pattern] +target = "functions/state_events.lua" +pattern = "elseif G.GAME.round_resets.blind == G.P_BLINDS.bl_big then" +position = "at" +match_indent = true +times = 1 +payload = "elseif MP.BLIND_RAISER.slot_matches('Big', G.GAME.round_resets.blind == G.P_BLINDS.bl_big) then" + +# Vanilla updates the current tag/Skip UI by child index. Synchronize the +# extra Upgrade row immediately after that block has completed. +[[patches]] +[patches.pattern] +target = "functions/button_callbacks.lua" +pattern = ''' + if _top_button then + _top_button.config.colour = G.C.UI.BACKGROUND_INACTIVE + _top_button.config.button = nil + _top_button.config.hover = false + _top_button.children[1].config.colour = G.C.UI.TEXT_INACTIVE + end +end +''' +position = "after" +match_indent = true +times = 1 +payload = ''' +if MP and MP.BLIND_RAISER and MP.BLIND_RAISER.sync_tag_ui then + MP.BLIND_RAISER.sync_tag_ui(e) +end +''' + +# Prevent vanilla from re-enabling Skip for a slot that was upgraded. +[[patches]] +[patches.pattern] +target = "functions/button_callbacks.lua" +pattern = "G.GAME.round_resets.blind_states[e.config.id] == 'Defeated' then" +position = "before" +match_indent = true +times = 1 +payload = "(MP.BLIND_RAISER and MP.BLIND_RAISER.skip_is_locked(e.config.id)) or" + +# UI disabling is not sufficient against stale controller focus or a queued +# click. Reject Skip at the callback itself after the current slot is upgraded. +[[patches]] +[patches.pattern] +target = "functions/button_callbacks.lua" +pattern = "G.FUNCS.skip_blind = function(e)" +position = "after" +match_indent = true +times = 1 +payload = ''' +if MP and MP.BLIND_RAISER and MP.BLIND_RAISER.skip_is_locked(G.GAME.blind_on_deck) then + return +end +''' + +# The Nth upgraded Blind uses the physical slot's normal score requirement +# multiplied by 2^N, rather than the replacement Boss Blind's multiplier. +[[patches]] +[patches.pattern] +target = "blind.lua" +pattern = "self.chips = get_blind_amount(G.GAME.round_resets.ante)*self.mult*G.GAME.starting_params.ante_scaling" +position = "after" +match_indent = true +times = 1 +payload = ''' +if MP and MP.BLIND_RAISER and MP.BLIND_RAISER.score_for_blind then + self.chips = MP.BLIND_RAISER.score_for_blind(blind, G.GAME.blind_on_deck, self.chips, G.GAME.round_resets.blind_ante or G.GAME.round_resets.ante) +end +''' diff --git a/rulesets/experimental/experimental_blind_raiser.lua b/rulesets/experimental/experimental_blind_raiser.lua new file mode 100644 index 000000000..e50f21e45 --- /dev/null +++ b/rulesets/experimental/experimental_blind_raiser.lua @@ -0,0 +1,179 @@ +local BLIND_RAISER_LAYER = "experimental_blind_raiser" +local BLIND_RAISER_RULESET = "ruleset_mp_experimental_blind_raiser" + +local function blind_raiser_ruleset_active() + if not MP then return false end + if MP.get_active_ruleset then + return MP.get_active_ruleset() == BLIND_RAISER_RULESET + end + return MP.LOBBY + and MP.LOBBY.config + and MP.LOBBY.config.ruleset == BLIND_RAISER_RULESET +end + +local function blind_raiser_upgrade_count() + return G and G.GAME and math.max(0, tonumber(G.GAME.mp_blind_raiser_upgrade_count) or 0) or 0 +end + +local function investment_payout(tag_or_center) + local config = tag_or_center and tag_or_center.config or {} + local per_upgrade = tonumber(config.dollars_per_upgrade) or 5 + return per_upgrade * blind_raiser_upgrade_count(), per_upgrade +end + +local function is_common_joker(card) + local center = card and card.config and card.config.center + local rarity = center and center.rarity + return rarity == 1 or rarity == "Common" or rarity == "common" +end + +local function is_base_edition_shop_common_joker(card) + return card + and card.ability + and card.ability.set == "Joker" + and is_common_joker(card) + and not card.edition + and not card.temp_edition +end + +local function apply_investment_tag(tag, context) + if not (context and context.type == "immediate") then return nil end + + local dollars = investment_payout(tag) + tag:yep("+", G.C.GOLD, function() + if dollars ~= 0 then ease_dollars(dollars) end + return true + end) + tag.triggered = true + return true +end + +local function apply_negative_tag(tag, context) + if not (context and context.type == "store_joker_modify") then return nil end + if not is_base_edition_shop_common_joker(context.card) then + -- Deliberately do not call vanilla here. The Tag must remain available + -- until a base-edition Common shop Joker is encountered. + return nil + end + + local card = context.card + local lock = "mp_blind_raiser_negative_" .. tostring(tag.ID) + G.CONTROLLER.locks[lock] = true + card.temp_edition = true + tag:yep("+", G.C.DARK_EDITION, function() + card.temp_edition = nil + card:set_edition({ negative = true }, true) + G.CONTROLLER.locks[lock] = nil + return true + end) + tag.triggered = true + return true +end + +local function create_rare_shop_joker(tag, context) + if not (context and context.type == "store_joker_create" and context.area) then return nil end + + local rares_owned = { 0 } + for _, joker in ipairs((G.jokers and G.jokers.cards) or {}) do + local center = joker.config and joker.config.center + if center and center.rarity == 3 and not rares_owned[center.key] then + rares_owned[1] = rares_owned[1] + 1 + rares_owned[center.key] = true + end + end + + local rare_pool = G.P_JOKER_RARITY_POOLS and G.P_JOKER_RARITY_POOLS[3] + if not rare_pool or #rare_pool <= rares_owned[1] then + tag:nope() + tag.triggered = true + return nil + end + + local card = create_card("Joker", context.area, nil, 1, nil, nil, nil, "rta") + create_shop_card_ui(card, "Joker", context.area) + card.states.visible = false + tag:yep("+", G.C.RED, function() + card.ability.couponed = true + card.ability.mp_blind_raiser_zero_money_on_buy = true + card:set_cost() + card:start_materialize() + return true + end) + tag.triggered = true + return card +end + +MP.Ruleset({ + key = BLIND_RAISER_LAYER, + layers = { "standard", "ranked", "pvp_timer" }, + forced_gamemode = "gamemode_mp_attrition", + reworked_tags = { + "tag_investment", + "tag_negative", + "tag_rare", + }, +}):inject() + +MP.ReworkCenter("tag_investment", { + layers = BLIND_RAISER_LAYER, + center_table = "P_TAGS", + loc_key = "tag_mp_investment_blind_raiser", + config = { + type = "immediate", + dollars_per_upgrade = 5, + }, + loc_vars = function(self, info_queue, tag) + local payout, per_upgrade = investment_payout(tag or self) + return { vars = { per_upgrade, payout } } + end, + apply = function(self, tag, context) + return apply_investment_tag(tag, context) + end, +}) + +MP.ReworkCenter("tag_negative", { + layers = BLIND_RAISER_LAYER, + center_table = "P_TAGS", + loc_key = "tag_mp_negative_blind_raiser", + apply = function(self, tag, context) + return apply_negative_tag(tag, context) + end, +}) + +MP.ReworkCenter("tag_rare", { + layers = BLIND_RAISER_LAYER, + center_table = "P_TAGS", + loc_key = "tag_mp_rare_blind_raiser", + min_ante = 2, + apply = function(self, tag, context) + return create_rare_shop_joker(tag, context) + end, +}) + +-- Steamodded dispatches Tag logic through SMODS.Tags[self.key]. Vanilla Tags +-- are not guaranteed to be registered there. Point the dispatch table at the +-- live vanilla prototypes so ReworkCenter's active ruleset properties are used. +for _, key in ipairs({ "tag_investment", "tag_negative", "tag_rare" }) do + if G.P_TAGS and G.P_TAGS[key] then SMODS.Tags[key] = G.P_TAGS[key] end +end + +-- A direct wrapper is retained as the authoritative ruleset gate. It also +-- prevents vanilla Negative Tag logic from consuming itself on a non-Common +-- Joker when our Common-only condition is not satisfied. +if Tag and type(Tag.apply_to_run) == "function" and not MP._blind_raiser_tag_wrapper_installed then + MP._blind_raiser_tag_wrapper_installed = true + local tag_apply_to_run_ref = Tag.apply_to_run + + function Tag:apply_to_run(context) + if blind_raiser_ruleset_active() and not self.triggered and context then + if self.key == "tag_investment" and context.type == "immediate" then + return apply_investment_tag(self, context) + elseif self.key == "tag_negative" and context.type == "store_joker_modify" then + return apply_negative_tag(self, context) + elseif self.key == "tag_rare" and context.type == "store_joker_create" then + return create_rare_shop_joker(self, context) + end + end + return tag_apply_to_run_ref(self, context) + end +end diff --git a/ui/game/blind_choice.lua b/ui/game/blind_choice.lua index 0bc7459e0..72f04917c 100644 --- a/ui/game/blind_choice.lua +++ b/ui/game/blind_choice.lua @@ -1,7 +1,15 @@ local create_UIBox_blind_choice_ref = create_UIBox_blind_choice ---@diagnostic disable-next-line: lowercase-global function create_UIBox_blind_choice(type, run_info) - if MP.is_mp_or_ghost() then + -- Blind Raiser can be played through Multiplayer or the local Practice + -- ruleset runner. Practice has no lobby code, so MP.is_mp_or_ghost() is + -- false even though the Blind Raiser ruleset is active. In that case the + -- old code delegated to vanilla's UI and displayed the replacement Boss + -- multiplier instead of the stored physical-slot score x 2^N. + local blind_raiser_ui = MP.BLIND_RAISER + and MP.BLIND_RAISER.is_active + and MP.BLIND_RAISER.is_active() + if MP.is_mp_or_ghost() or blind_raiser_ui then if not G.GAME.blind_on_deck then G.GAME.blind_on_deck = "Small" end if not run_info then G.GAME.round_resets.blind_states[G.GAME.blind_on_deck] = "Select" end @@ -139,10 +147,21 @@ function create_UIBox_blind_choice(type, run_info) if MP.GHOST.is_active() then loc_name = MP.GHOST.get_nemesis_name() else - loc_name = MP.LOBBY.is_host and MP.LOBBY.guest.username or MP.LOBBY.host.username + -- Blind-select can be rebuilt during round-end events before a + -- lobby username is available (for example immediately after an + -- Investment Tag payout). Never pass nil to DynaText. + local lobby = MP.LOBBY or {} + local opponent = lobby.is_host and lobby.guest or lobby.host + loc_name = opponent and opponent.username end + loc_name = loc_name + or localize({ type = "name_text", key = "bl_mp_nemesis", set = "Blind" }) + or localize("k_nemesis_timer") + or "Nemesis" else loc_name = localize({ type = "name_text", key = blind_choice.config.key, set = "Blind" }) + or blind_choice.config.name + or "Blind" end local blind_col = get_blind_main_colour(type) @@ -152,6 +171,14 @@ function create_UIBox_blind_choice(type, run_info) * blind_choice.config.mult * G.GAME.starting_params.ante_scaling + if MP.BLIND_RAISER and MP.BLIND_RAISER.preview_score_for_slot then + -- Use the stored score for this physical Small/Big slot. The replacement + -- Boss multiplier is only a fallback for non-upgraded Blinds. + blind_amt = MP.BLIND_RAISER.preview_score_for_slot(type, blind_amt) + elseif MP.BLIND_RAISER and MP.BLIND_RAISER.score_for_slot then + blind_amt = MP.BLIND_RAISER.score_for_slot(type, blind_amt, G.GAME.round_resets.blind_ante) + end + if G.GAME.round_resets.blind_choices[type] == "bl_mp_nemesis" or G.GAME.round_resets.pvp_blind_choices[type] then diff --git a/ui/game/blind_raiser.lua b/ui/game/blind_raiser.lua new file mode 100644 index 000000000..b5adfb9dc --- /dev/null +++ b/ui/game/blind_raiser.lua @@ -0,0 +1,910 @@ +------------------------------------------------------------------- +-- EXPERIMENTAL (BLIND RAISER) +-- +-- Ports the Blind Raiser feature from Handsome Devils into a +-- Multiplayer ruleset. While the ruleset is active, the current +-- Small or Big Blind may be upgraded into a random non-Showdown +-- Boss Blind. The displayed Skip Tag is granted immediately, but +-- the Blind slot itself is not skipped. +-- +-- This implementation deliberately keeps its boss-use bookkeeping +-- separate from vanilla's G.GAME.bosses_used. A player choosing to +-- upgrade a Blind therefore does not alter future normal Boss rolls, +-- preserving Multiplayer's shared-seed behaviour between opponents +-- who make different Blind Raiser choices. +------------------------------------------------------------------- + +MP.BLIND_RAISER = MP.BLIND_RAISER or {} +local BR = MP.BLIND_RAISER + +local RULESET_KEY = "ruleset_mp_experimental_blind_raiser" + +local function blind_raiser_active() + return MP + and MP.get_active_ruleset + and MP.get_active_ruleset() == RULESET_KEY +end + +BR.is_active = blind_raiser_active + +-- Lovely progression patches use the physical Blind slot while Blind Raiser +-- is active, but preserve vanilla's original condition in every other ruleset. +function BR.slot_matches(slot, vanilla_result) + if blind_raiser_active() then + return G and G.GAME and G.GAME.blind_on_deck == slot + end + return vanilla_result +end + +local function current_ante() + return G + and G.GAME + and G.GAME.round_resets + and G.GAME.round_resets.ante + or 0 +end + +-- blind_ante is the Ante attached to the physical Blind-select row. It is the +-- authoritative value for Blind Raiser records because a replacement Boss +-- definition must never make a Small/Big slot inherit Boss Ante progression. +local function current_slot_ante() + local round_resets = G and G.GAME and G.GAME.round_resets + return tonumber(round_resets and round_resets.blind_ante) + or tonumber(round_resets and round_resets.ante) + or 0 +end + +local function upgrade_key(blind_choice) + return tostring(current_slot_ante()) .. ":" .. tostring(blind_choice) +end + +local function upgraded_blinds() + if not (G and G.GAME) then return {} end + G.GAME.mp_blind_raiser_upgraded = G.GAME.mp_blind_raiser_upgraded or {} + return G.GAME.mp_blind_raiser_upgraded +end + +local function replacement_records() + if not (G and G.GAME) then return {} end + G.GAME.mp_blind_raiser_replacements = G.GAME.mp_blind_raiser_replacements or {} + return G.GAME.mp_blind_raiser_replacements +end + +local function raiser_bosses_used() + if not (G and G.GAME) then return {} end + G.GAME.mp_blind_raiser_bosses_used = G.GAME.mp_blind_raiser_bosses_used or {} + return G.GAME.mp_blind_raiser_bosses_used +end + +local function normalize_blind_choice(blind_choice) + if type(blind_choice) ~= "string" then return nil end + local normalized = blind_choice:lower() + if normalized == "small" then return "Small" end + if normalized == "big" then return "Big" end + if normalized == "boss" then return "Boss" end + return nil +end + +local function record_key(ante, blind_choice) + return tostring(ante) .. ":" .. tostring(blind_choice) +end + +local function blind_key_from_definition(blind) + if type(blind) ~= "table" then return nil end + return blind.key + or (blind.config and blind.config.key) + or (blind.config and blind.config.blind and blind.config.blind.key) +end + +local function current_choice_key(blind_choice) + return G + and G.GAME + and G.GAME.round_resets + and G.GAME.round_resets.blind_choices + and G.GAME.round_resets.blind_choices[blind_choice] + or nil +end + +local function replacement_record(blind_choice, ante, expected_boss) + blind_choice = normalize_blind_choice(blind_choice) + if blind_choice ~= "Small" and blind_choice ~= "Big" then return nil end + + local records = replacement_records() + local candidate_antes = {} + local seen_antes = {} + local function add_ante(value) + value = tonumber(value) + if value and not seen_antes[value] then + seen_antes[value] = true + candidate_antes[#candidate_antes + 1] = value + end + end + + add_ante(ante) + add_ante(G and G.GAME and G.GAME.round_resets and G.GAME.round_resets.blind_ante) + add_ante(current_ante()) + + local selected_boss = expected_boss or current_choice_key(blind_choice) + for _, candidate_ante in ipairs(candidate_antes) do + local record = records[record_key(candidate_ante, blind_choice)] + -- The physical slot + Ante is the primary identity. Do not reject its + -- record merely because blind_choices is between animation states; doing + -- so falls back to the replacement Boss multiplier in the select preview. + if type(record) == "table" then return record end + end + + -- Save migration and timing fallback: during select/start transitions, + -- round_resets.ante, blind_ante and blind_on_deck can briefly disagree. + -- Match the replacement Boss itself so the correct per-upgrade exponent is + -- still used rather than falling back to the Boss Blind's normal multiplier. + local best_record = nil + local best_ante = -math.huge + for key, record in pairs(records) do + if type(record) == "table" then + local key_ante, key_choice = key:match("^(-?%d+):([%a_]+)$") + local record_choice = normalize_blind_choice(record.blind_choice or key_choice) + local record_ante = tonumber(record.ante) or tonumber(key_ante) + if record_choice == blind_choice + and (not selected_boss or not record.boss or record.boss == selected_boss) + and record_ante + and record_ante >= best_ante + then + best_record = record + best_ante = record_ante + end + end + end + return best_record +end + +function BR.regular_score_for_slot(blind_choice, ante) + blind_choice = normalize_blind_choice(blind_choice) + if blind_choice ~= "Small" and blind_choice ~= "Big" then return nil end + if not (G and G.GAME and G.P_BLINDS and type(get_blind_amount) == "function") then return nil end + + local base_blind = G.P_BLINDS["bl_" .. blind_choice:lower()] + if not (base_blind and base_blind.mult) then return nil end + + local score_ante = tonumber(ante) or current_slot_ante() + local ante_scaling = G.GAME.starting_params and G.GAME.starting_params.ante_scaling or 1 + return get_blind_amount(score_ante) * base_blind.mult * ante_scaling +end + +local function upgrade_index_for(blind_choice, ante, expected_boss) + local record = replacement_record(blind_choice, ante, expected_boss) + if type(record) ~= "table" then return nil, nil end + + local index = tonumber(record.upgrade_index) + if not index or index < 1 then + -- Migration for saves created before escalating score requirements were + -- added. Prefer the stored run-wide count, then fall back to the first + -- upgrade so old saves remain playable. + index = tonumber(G.GAME.mp_blind_raiser_upgrade_count) or 1 + record.upgrade_index = math.max(1, index) + end + return math.max(1, index), record +end + +local function score_from_record(blind_choice, ante, record, upgrade_index) + local base_score = tonumber(record and record.base_score) + if not base_score then + base_score = BR.regular_score_for_slot( + blind_choice, + (record and tonumber(record.ante)) or ante + ) + if record and base_score then record.base_score = base_score end + end + if not base_score then return nil end + + local multiplier = 2 ^ upgrade_index + if record then + record.score_multiplier = multiplier + record.score_chips = base_score * multiplier + end + return base_score * multiplier +end + +function BR.score_for_slot(blind_choice, vanilla_amount, ante, expected_boss) + if not blind_raiser_active() then return vanilla_amount end + blind_choice = normalize_blind_choice(blind_choice) + if blind_choice ~= "Small" and blind_choice ~= "Big" then return vanilla_amount end + + local upgrade_index, record = upgrade_index_for(blind_choice, ante, expected_boss) + if not upgrade_index then return vanilla_amount end + return score_from_record(blind_choice, ante, record, upgrade_index) or vanilla_amount +end + +-- Blind-select UI must use the score saved for the physical slot, never the +-- replacement Boss definition's mult. This direct path deliberately ignores +-- the transient blind_choices value while the old UIBox is being replaced. +function BR.preview_score_for_slot(blind_choice, vanilla_amount) + if not blind_raiser_active() then return vanilla_amount end + blind_choice = normalize_blind_choice(blind_choice) + if blind_choice ~= "Small" and blind_choice ~= "Big" then return vanilla_amount end + + local record = replacement_record(blind_choice, current_slot_ante()) + if type(record) ~= "table" then return vanilla_amount end + local index = math.max(1, tonumber(record.upgrade_index) or 1) + return score_from_record(blind_choice, record.ante or current_slot_ante(), record, index) or vanilla_amount +end + +function BR.score_for_blind(blind, preferred_choice, vanilla_amount, ante) + if not blind_raiser_active() then return vanilla_amount end + local blind_key = blind_key_from_definition(blind) + local blind_choice = normalize_blind_choice(preferred_choice) + + -- The replacement Boss key is the strongest identity while Blind:set_blind + -- is running because blind_on_deck can briefly point at the next slot. If + -- both rows somehow share the same Boss, retain the preferred physical slot. + local matching_choices = {} + if blind_key then + for _, candidate in ipairs({ "Small", "Big" }) do + if current_choice_key(candidate) == blind_key + and replacement_record(candidate, ante, blind_key) + then + matching_choices[#matching_choices + 1] = candidate + end + end + end + if #matching_choices == 1 then + blind_choice = matching_choices[1] + elseif not (blind_choice and replacement_record(blind_choice, ante)) and #matching_choices > 0 then + blind_choice = matching_choices[1] + end + + return BR.score_for_slot(blind_choice, vanilla_amount, ante, blind_key) +end + +local function parse_upgrade_key(key) + if type(key) ~= "string" then return nil, nil end + local ante, blind_choice = key:match("^(-?%d+):([%a_]+)$") + return tonumber(ante), blind_choice +end + +local function blind_state(blind_choice) + return G + and G.GAME + and G.GAME.round_resets + and G.GAME.round_resets.blind_states + and G.GAME.round_resets.blind_states[blind_choice] +end + +local function blind_is_finished(blind_choice) + local state = blind_state(blind_choice) + return state == "Defeated" or state == "Skipped" +end + +local function blind_was_upgraded(blind_choice) + return upgraded_blinds()[upgrade_key(blind_choice)] == true +end + +local function blind_is_current(blind_choice) + if not blind_raiser_active() or blind_is_finished(blind_choice) then return false end + + -- Steamodded beta-1620a advances the selectable slot by changing its + -- state to Select. blind_on_deck can lag during the Skip animation. + local state = blind_state(blind_choice) + if state == "Select" then return true end + + -- Defensive fallback for modded Blind-select screens that initialize the + -- state table after constructing the UI. + return state == nil + and G + and G.GAME + and G.GAME.blind_on_deck == blind_choice +end + +local function can_upgrade(blind_choice) + return (blind_choice == "Small" or blind_choice == "Big") + and blind_is_current(blind_choice) + and not blind_was_upgraded(blind_choice) +end + +------------------------------------------------------------------- +-- Deterministic non-Showdown Boss selection +------------------------------------------------------------------- + +local function blind_is_in_pool(blind) + if type(blind.in_pool) ~= "function" then return true end + local ok, result = pcall(blind.in_pool, blind) + return ok and result ~= false +end + +local function boss_is_valid(key) + local blind = key and G.P_BLINDS and G.P_BLINDS[key] + if key == "bl_mp_nemesis" then return false end + if not (blind and blind.boss) then return false end + if blind.boss.showdown then return false end + if G.GAME.banned_keys and G.GAME.banned_keys[key] then return false end + return true +end + +local function choose_with_vanilla_boss_picker() + if type(get_new_boss) ~= "function" then return nil end + + -- Let vanilla/SMODS decide ante eligibility and compatibility-pool rules, + -- but evaluate the roll against a temporary usage table. This retains the + -- exact normal Boss-selection semantics without allowing an optional Blind + -- Raiser choice to alter future shared-seed Boss rolls. + local original_uses = G.GAME.bosses_used + local working_uses = {} + for key, uses in pairs(original_uses or {}) do + working_uses[key] = uses + end + for key, uses in pairs(raiser_bosses_used()) do + working_uses[key] = (working_uses[key] or 0) + uses + end + G.GAME.bosses_used = working_uses + + -- get_new_boss advances the keyed pseudorandom stream it uses. Isolate that + -- state too, otherwise one player pressing Upgrade Blind would change later + -- normal Boss rolls while an opponent who did not upgrade keeps the original + -- stream. The temporary table may be freely mutated by vanilla or SMODS. + local original_pseudorandom = G.GAME.pseudorandom + local working_pseudorandom = {} + for key, value in pairs(original_pseudorandom or {}) do + if type(value) == "table" then + local nested = {} + for nested_key, nested_value in pairs(value) do + nested[nested_key] = nested_value + end + working_pseudorandom[key] = nested + else + working_pseudorandom[key] = value + end + end + G.GAME.pseudorandom = working_pseudorandom + + -- On a Showdown Ante, vanilla would intentionally return a final Boss. + -- Temporarily move win_ante beyond the current Ante so an upgraded Small + -- or Big slot always receives an ordinary, non-Showdown Boss. + local original_win_ante = G.GAME.win_ante + if type(original_win_ante) == "number" then + G.GAME.win_ante = math.max(original_win_ante + 1, current_ante() + 1) + end + + local ok, boss = pcall(get_new_boss) + G.GAME.win_ante = original_win_ante + G.GAME.bosses_used = original_uses + G.GAME.pseudorandom = original_pseudorandom + + if not ok then + if sendWarnMessage then + sendWarnMessage("Blind Raiser Boss selection failed: " .. tostring(boss), "MULTIPLAYER") + end + return nil + end + return boss_is_valid(boss) and boss or nil +end + +local function choose_fallback_boss(blind_choice) + local candidates = {} + for key, blind in pairs(G.P_BLINDS or {}) do + if boss_is_valid(key) and blind_is_in_pool(blind) then + candidates[#candidates + 1] = key + end + end + table.sort(candidates) + if #candidates == 0 then return nil end + + local base_uses = G.GAME.bosses_used or {} + local extra_uses = raiser_bosses_used() + local minimum_uses = nil + for _, key in ipairs(candidates) do + local uses = (base_uses[key] or 0) + (extra_uses[key] or 0) + if minimum_uses == nil or uses < minimum_uses then minimum_uses = uses end + end + + local filtered = {} + for _, key in ipairs(candidates) do + local uses = (base_uses[key] or 0) + (extra_uses[key] or 0) + if uses == minimum_uses then filtered[#filtered + 1] = key end + end + + return pseudorandom_element( + filtered, + pseudoseed("mp_blind_raiser_" .. tostring(current_ante()) .. "_" .. tostring(blind_choice)) + ) +end + +function BR.choose_boss(blind_choice) + if not (G and G.GAME and G.P_BLINDS) then return nil end + return choose_with_vanilla_boss_picker() or choose_fallback_boss(blind_choice) +end + +------------------------------------------------------------------- +-- Ante transition cleanup +------------------------------------------------------------------- + +function BR.restore_stale_slots() + if not blind_raiser_active() then return end + if not (G and G.GAME and G.GAME.round_resets and G.GAME.round_resets.blind_choices) then return end + + local ante = current_ante() + local choices = G.GAME.round_resets.blind_choices + local upgrades = upgraded_blinds() + local records = replacement_records() + + local stale_record_keys = {} + for key, record in pairs(records) do + local key_ante, key_choice = parse_upgrade_key(key) + local blind_choice = type(record) == "table" and record.blind_choice or key_choice + local record_ante = type(record) == "table" and tonumber(record.ante) or key_ante + + if record_ante and record_ante ~= ante + and (blind_choice == "Small" or blind_choice == "Big") + then + if type(record) == "table" and choices[blind_choice] == record.boss then + choices[blind_choice] = record.original or ("bl_" .. blind_choice:lower()) + end + stale_record_keys[#stale_record_keys + 1] = key + end + end + for _, key in ipairs(stale_record_keys) do + records[key] = nil + end + + -- Migration/failsafe for saves from a partially applied build: a stale + -- per-Ante lock on a Boss-filled Small/Big slot restores the vanilla slot. + for key, was_upgraded in pairs(upgrades) do + local key_ante, blind_choice = parse_upgrade_key(key) + if was_upgraded and key_ante and key_ante ~= ante + and (blind_choice == "Small" or blind_choice == "Big") + then + local choice = choices[blind_choice] + local blind = choice and G.P_BLINDS and G.P_BLINDS[choice] + if blind and blind.boss then + choices[blind_choice] = "bl_" .. blind_choice:lower() + end + end + end + + local stale_upgrade_keys = {} + for key in pairs(upgrades) do + local key_ante = parse_upgrade_key(key) + if key_ante and key_ante ~= ante then stale_upgrade_keys[#stale_upgrade_keys + 1] = key end + end + for _, key in ipairs(stale_upgrade_keys) do + upgrades[key] = nil + end +end + +function BR.skip_is_locked(blind_choice) + return blind_raiser_active() + and blind_choice ~= nil + and blind_was_upgraded(blind_choice) +end + +-- This wrapper is loaded before ui/game/round.lua. Multiplayer's later +-- reset_blinds wrapper therefore calls through this cleanup before applying +-- its gamemode-specific Blind replacements. +if type(reset_blinds) == "function" then + local reset_blinds_ref = reset_blinds + function reset_blinds(...) + BR.restore_stale_slots() + return reset_blinds_ref(...) + end +end + +if type(create_UIBox_blind_select) == "function" then + local create_UIBox_blind_select_ref = create_UIBox_blind_select + function create_UIBox_blind_select(...) + BR.restore_stale_slots() + return create_UIBox_blind_select_ref(...) + end +end + +------------------------------------------------------------------- +-- Blind tag UI +------------------------------------------------------------------- + +local function set_runtime_button(button, active, callback) + if not (button and button.config) then return end + + button.config.button = active and callback or nil + button.config.hover = active + button.config.colour = active and G.C.RED or G.C.UI.BACKGROUND_INACTIVE + + -- UIElement:set_values only enables collision/click states when a button + -- exists during construction. Future Blind actions are initially inactive, + -- so synchronize those runtime states as the current slot advances. + if button.states then + if button.states.collide then button.states.collide.can = active end + if button.states.click then button.states.click.can = active end + if button.states.hover then button.states.hover.can = active end + end + + local label = button.children and button.children[1] + if label and label.config then + label.config.colour = active and G.C.UI.TEXT_LIGHT or G.C.UI.TEXT_INACTIVE + end +end + +local function ui_root_candidates(e, blind_choice) + local roots = {} + + if e and e.UIBox then roots[#roots + 1] = e.UIBox end + + local blind_option = G + and G.blind_select_opts + and blind_choice + and G.blind_select_opts[blind_choice:lower()] + + if blind_option then + roots[#roots + 1] = blind_option + if blind_option.parent then + roots[#roots + 1] = blind_option.parent + if blind_option.parent.config and blind_option.parent.config.object then + roots[#roots + 1] = blind_option.parent.config.object + end + end + end + + return roots +end + +local function get_runtime_element(e, blind_choice, id) + for _, root in ipairs(ui_root_candidates(e, blind_choice)) do + if root and root.get_UIE_by_ID then + local element = root:get_UIE_by_ID(id) + if element then return element end + end + end + return nil +end + +function BR.sync_tag_ui(e) + if not (blind_raiser_active() and e and e.config) then return end + + local blind_choice = e.config.id + if not blind_choice then return end + + local upgraded = blind_was_upgraded(blind_choice) + local current = blind_is_current(blind_choice) + + local upgrade_button = get_runtime_element( + e, + blind_choice, + "mp_blind_raiser_upgrade_button_" .. blind_choice + ) + set_runtime_button( + upgrade_button, + current and not upgraded, + "mp_blind_raiser_upgrade" + ) + + local skip_button = get_runtime_element( + e, + blind_choice, + "mp_blind_raiser_skip_button_" .. blind_choice + ) + set_runtime_button(skip_button, current and not upgraded, "skip_blind") +end + +G.FUNCS.mp_blind_raiser_update_skip_button = function(e) + if not (e and e.config) then return end + + local blind_choice = e.config.mp_blind_raiser_choice + local active = blind_choice + and blind_is_current(blind_choice) + and not blind_was_upgraded(blind_choice) + set_runtime_button(e, active, "skip_blind") + if G.FUNCS.hover_tag_proxy then G.FUNCS.hover_tag_proxy(e) end +end + +G.FUNCS.mp_blind_raiser_update_upgrade_button = function(e) + if not (e and e.config) then return end + + local blind_choice = e.config.mp_blind_raiser_choice + set_runtime_button(e, blind_choice and can_upgrade(blind_choice), "mp_blind_raiser_upgrade") + if G.FUNCS.hover_tag_proxy then G.FUNCS.hover_tag_proxy(e) end +end + +local create_UIBox_blind_tag_ref = create_UIBox_blind_tag + +function create_UIBox_blind_tag(blind_choice, run_info) + if run_info or not blind_raiser_active() then + return create_UIBox_blind_tag_ref(blind_choice, run_info) + end + + G.GAME.round_resets.blind_tags = G.GAME.round_resets.blind_tags or {} + local tag_key = G.GAME.round_resets.blind_tags[blind_choice] + if not tag_key then return create_UIBox_blind_tag_ref(blind_choice, run_info) end + + local reward_tag = Tag(tag_key, nil, blind_choice) + local tag_ui, tag_sprite = reward_tag:generate_UI() + + if tag_sprite and tag_sprite.states and tag_sprite.states.collide then + tag_sprite.states.collide.can = false + end + + local upgrade_active = can_upgrade(blind_choice) + local skip_active = blind_is_current(blind_choice) and not blind_was_upgraded(blind_choice) + + -- Preserve the vanilla/BlindRaiser child order. beta-1620a's Blind-select + -- callback accesses the tag description and Skip button by fixed index. + return { + n = G.UIT.R, + config = { + id = "tag_container", + ref_table = reward_tag, + align = "tm", + }, + nodes = { + { + n = G.UIT.R, + config = { align = "tm", minh = 0.65 }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("k_or"), + scale = 0.55, + colour = G.C.WHITE, + shadow = true, + }, + }, + }, + }, + { + n = G.UIT.C, + config = { + id = "tag_" .. blind_choice, + align = "cm", + r = 0.1, + padding = 0.1, + minw = 2.2, + can_collide = true, + ref_table = tag_sprite, + }, + nodes = { + { + n = G.UIT.R, + config = { + id = "tag_desc", + align = "cm", + minh = 1, + }, + nodes = { tag_ui }, + }, + { + n = G.UIT.R, + config = { + id = "mp_blind_raiser_skip_button_" .. blind_choice, + align = "cm", + colour = skip_active and G.C.RED or G.C.UI.BACKGROUND_INACTIVE, + minh = 0.6, + minw = 2, + maxw = 2, + padding = 0.07, + r = 0.1, + shadow = true, + hover = skip_active, + one_press = true, + button = skip_active and "skip_blind" or nil, + func = "mp_blind_raiser_update_skip_button", + insta_func = true, + ref_table = reward_tag, + mp_blind_raiser_choice = blind_choice, + }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("b_skip_blind"), + scale = 0.4, + colour = skip_active and G.C.UI.TEXT_LIGHT or G.C.UI.TEXT_INACTIVE, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { + id = "mp_blind_raiser_upgrade_button_" .. blind_choice, + align = "cm", + colour = upgrade_active and G.C.RED or G.C.UI.BACKGROUND_INACTIVE, + minh = 0.6, + minw = 2, + maxw = 2, + padding = 0.07, + r = 0.1, + shadow = true, + hover = upgrade_active, + one_press = true, + button = upgrade_active and "mp_blind_raiser_upgrade" or nil, + func = "mp_blind_raiser_update_upgrade_button", + insta_func = true, + ref_table = reward_tag, + mp_blind_raiser_choice = blind_choice, + }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("mp_upgrade_blind"), + scale = 0.4, + colour = upgrade_active and G.C.UI.TEXT_LIGHT + or G.C.UI.TEXT_INACTIVE, + }, + }, + }, + }, + }, + }, + }, + } +end + +------------------------------------------------------------------- +-- Upgrade action +------------------------------------------------------------------- + +G.FUNCS.mp_blind_raiser_upgrade = function(e) + if not (e and e.config and G and G.GAME) then return end + + local blind_choice = e.config.mp_blind_raiser_choice + if not blind_choice or not can_upgrade(blind_choice) then return end + + local reward_tag = e.config.ref_table + local blind_option = G.blind_select_opts and G.blind_select_opts[blind_choice:lower()] + local parent = blind_option and blind_option.parent + if not (reward_tag and reward_tag.key) then return end + if not (blind_option and parent) then return end + + local boss = BR.choose_boss(blind_choice) + if not (boss and G.P_BLINDS and G.P_BLINDS[boss]) then return end + + local upgrade_ante = current_slot_ante() + local current_upgrade_key = record_key(upgrade_ante, blind_choice) + local upgrade_index = (tonumber(G.GAME.mp_blind_raiser_upgrade_count) or 0) + 1 + local base_score = BR.regular_score_for_slot(blind_choice, upgrade_ante) + replacement_records()[current_upgrade_key] = { + ante = upgrade_ante, + blind_choice = blind_choice, + original = G.GAME.round_resets.blind_choices[blind_choice], + boss = boss, + upgrade_index = upgrade_index, + base_score = base_score, + score_multiplier = 2 ^ upgrade_index, + score_chips = base_score and (base_score * (2 ^ upgrade_index)) or nil, + } + + stop_use() + + upgraded_blinds()[current_upgrade_key] = true + G.GAME.mp_blind_raiser_upgrade_count = upgrade_index + local uses = raiser_bosses_used() + uses[boss] = (uses[boss] or 0) + 1 + + -- Disable both actions before any animation/event begins. A Lovely guard + -- also rejects stale controller input inside vanilla's Skip callback. + set_runtime_button(e, false, "mp_blind_raiser_upgrade") + local skip_button = get_runtime_element( + e, + blind_choice, + "mp_blind_raiser_skip_button_" .. blind_choice + ) + set_runtime_button(skip_button, false, "skip_blind") + + local preexisting_tags = {} + for _, tag in ipairs(G.GAME.tags or {}) do + preexisting_tags[tag] = true + end + + add_tag(reward_tag) + + local granted_tags = {} + for _, tag in ipairs(G.GAME.tags or {}) do + if not preexisting_tags[tag] then granted_tags[#granted_tags + 1] = tag end + end + + G.E_MANAGER:add_event(Event({ + trigger = "immediate", + func = function() + play_sound("other1") + + if blind_option and blind_option.set_role and blind_option.alignment then + blind_option:set_role({ xy_bond = "Weak" }) + blind_option.alignment.offset.y = 20 + end + + return true + end, + })) + + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.3, + func = function() + local current_option = G.blind_select_opts + and G.blind_select_opts[blind_choice:lower()] + local current_parent = current_option and current_option.parent + + if not (current_option and current_parent) then + save_run() + return true + end + + G.GAME.round_resets.blind_choices[blind_choice] = boss + + current_option:remove() + G.blind_select_opts[blind_choice:lower()] = UIBox({ + T = { current_parent.T.x, 0, 0, 0 }, + definition = { + n = G.UIT.ROOT, + config = { align = "cm", colour = G.C.CLEAR }, + nodes = { + UIBox_dyn_container( + { create_UIBox_blind_choice(blind_choice) }, + false, + get_blind_main_colour(boss), + mix_colours(G.C.BLACK, get_blind_main_colour(boss), 0.8) + ), + }, + }, + config = { + align = "bmi", + offset = { x = 0, y = G.ROOM.T.y + 9 }, + major = current_parent, + xy_bond = "Weak", + }, + }) + + local new_option = G.blind_select_opts[blind_choice:lower()] + current_parent.config.object = new_option + current_parent.config.object:recalculate() + new_option.parent = current_parent + new_option.alignment.offset.y = 0 + + BR.sync_tag_ui({ + config = { id = blind_choice }, + UIBox = new_option, + }) + + if SMODS and SMODS.calculate_context then + SMODS.calculate_context({ + mp_blind_raiser_upgrade = true, + blind_type = blind_choice, + blind_key = boss, + }) + end + + for _, tag in ipairs(granted_tags) do + tag:apply_to_run({ type = "immediate" }) + end + for _, tag in ipairs(granted_tags) do + if tag:apply_to_run({ type = "new_blind_choice" }) then break end + end + + save_run() + return true + end, + })) +end + +------------------------------------------------------------------- +-- Rare Tag purchase penalty +------------------------------------------------------------------- + +if G.FUNCS and type(G.FUNCS.buy_from_shop) == "function" then + local buy_from_shop_ref = G.FUNCS.buy_from_shop + function G.FUNCS.buy_from_shop(e) + local card = e and e.config and e.config.ref_table + local zero_money = blind_raiser_active() + and card + and card.ability + and card.ability.mp_blind_raiser_zero_money_on_buy + + local ret = buy_from_shop_ref(e) + + if zero_money then + if card.ability then card.ability.mp_blind_raiser_zero_money_on_buy = nil end + local dollars = G and G.GAME and tonumber(G.GAME.dollars) or 0 + if dollars ~= 0 then ease_dollars(-dollars, true) end + end + + return ret + end +end + diff --git a/ui/game/zz_blind_raiser_score.lua b/ui/game/zz_blind_raiser_score.lua new file mode 100644 index 000000000..638ece1ad --- /dev/null +++ b/ui/game/zz_blind_raiser_score.lua @@ -0,0 +1,19 @@ +-- Loaded last in ui/game so the Blind Raiser score override is applied after +-- Multiplayer's other Blind:set_blind wrappers have finished. +if Blind and type(Blind.set_blind) == "function" then + local blind_set_blind_ref = Blind.set_blind + function Blind:set_blind(blind, reset, silent) + local ret = blind_set_blind_ref(self, blind, reset, silent) + if MP.BLIND_RAISER and MP.BLIND_RAISER.score_for_blind then + local score_ante = G.GAME.round_resets.blind_ante or G.GAME.round_resets.ante + self.chips = MP.BLIND_RAISER.score_for_blind( + blind or (self.config and self.config.blind), + G.GAME.blind_on_deck, + self.chips, + score_ante + ) + self.chip_text = number_format(self.chips) + end + return ret + end +end diff --git a/ui/main_menu/play_button/ruleset_selection.lua b/ui/main_menu/play_button/ruleset_selection.lua index 8003ab35b..171b436d1 100644 --- a/ui/main_menu/play_button/ruleset_selection.lua +++ b/ui/main_menu/play_button/ruleset_selection.lua @@ -51,6 +51,7 @@ local rulesets_tabs = { buttons = { { button_id = "experimental_ruleset_button", button_localize_key = "k_experimental_standard" }, { button_id = "experimental_legacy_ruleset_button", button_localize_key = "k_experimental_legacy" }, + { button_id = "experimental_blind_raiser_ruleset_button", button_localize_key = "k_experimental_blind_raiser" }, }, }, }, From 97f30d168709be80a5b29fbfbae12b1b7c15bbcf Mon Sep 17 00:00:00 2001 From: AlexanderAndersonAmenAmen <104784206+AlexanderAndersonAmenAmen@users.noreply.github.com> Date: Mon, 27 Jul 2026 11:25:35 +0300 Subject: [PATCH 2/6] QoL feature added: you can now track num of upgrades made during a run + preview score requirement increase. --- localization/en-us.lua | 3 +++ localization/ru.lua | 3 +++ localization/vi.lua | 3 +++ ui/game/blind_raiser.lua | 55 ++++++++++++++++++++++++++++++++++++++-- 4 files changed, 62 insertions(+), 2 deletions(-) diff --git a/localization/en-us.lua b/localization/en-us.lua index 861446994..c4ff6c36a 100644 --- a/localization/en-us.lua +++ b/localization/en-us.lua @@ -1354,6 +1354,9 @@ return { k_bl_life = "Life", k_bl_or = "or", mp_upgrade_blind = "Upgrade Blind", + mp_blind_raiser_tooltip_title = "Blind Raiser", + mp_blind_raiser_tooltip_upgrades = "Blind upgrades this game: #1#", + mp_blind_raiser_tooltip_score = "Score if upgraded: #1#", k_bl_death = "Death", k_bl_mostchips = "Most chips wins", k_current_seed = "Current seed: ", diff --git a/localization/ru.lua b/localization/ru.lua index 87b49efdc..833bbcea9 100644 --- a/localization/ru.lua +++ b/localization/ru.lua @@ -1335,6 +1335,9 @@ return { k_bl_life = "Жизнь", k_bl_or = "или", mp_upgrade_blind = "Улучшить блайнд", + mp_blind_raiser_tooltip_title = "Повышение блайндов", + mp_blind_raiser_tooltip_upgrades = "Улучшений блайндов за игру: #1#", + mp_blind_raiser_tooltip_score = "Счёт после улучшения: #1#", k_bl_death = "Смерть", k_bl_mostchips = "Больше фишек — победа", k_current_seed = "Текущий сид: ", diff --git a/localization/vi.lua b/localization/vi.lua index 4b5da177e..058817975 100644 --- a/localization/vi.lua +++ b/localization/vi.lua @@ -985,6 +985,9 @@ return { k_bl_life = "Sống", k_bl_or = "hoặc", mp_upgrade_blind = "Nâng Cấp Blind", + mp_blind_raiser_tooltip_title = "Nâng Cấp Blind", + mp_blind_raiser_tooltip_upgrades = "Số Blind đã nâng cấp: #1#", + mp_blind_raiser_tooltip_score = "Điểm sau khi nâng cấp: #1#", k_bl_death = "Chết", k_bl_mostchips = "Nhiều điểm hơn sẽ chiến thắng", k_current_seed = "Giống hiện tại: ", diff --git a/ui/game/blind_raiser.lua b/ui/game/blind_raiser.lua index b5adfb9dc..da7afa175 100644 --- a/ui/game/blind_raiser.lua +++ b/ui/game/blind_raiser.lua @@ -170,6 +170,54 @@ function BR.regular_score_for_slot(blind_choice, ante) return get_blind_amount(score_ante) * base_blind.mult * ante_scaling end +function BR.upgrade_count() + return G and G.GAME + and math.max(0, tonumber(G.GAME.mp_blind_raiser_upgrade_count) or 0) + or 0 +end + +function BR.next_upgrade_score_for_slot(blind_choice, ante) + if not blind_raiser_active() then return nil end + blind_choice = normalize_blind_choice(blind_choice) + if blind_choice ~= "Small" and blind_choice ~= "Big" then return nil end + + local base_score = BR.regular_score_for_slot(blind_choice, ante or current_slot_ante()) + if not base_score then return nil end + return base_score * (2 ^ (BR.upgrade_count() + 1)) +end + +local function dictionary_text(key, vars, fallback) + local text = localize(key) + if type(text) == "table" then text = text[1] end + if type(text) ~= "string" or text == "" or text == key then text = fallback end + for i, value in ipairs(vars or {}) do + text = text:gsub("#" .. tostring(i) .. "#", tostring(value)) + end + return text +end + +function BR.upgrade_button_tooltip(blind_choice) + local upgrade_count = BR.upgrade_count() + local next_score = BR.next_upgrade_score_for_slot(blind_choice, current_slot_ante()) + local formatted_score = next_score and number_format(next_score) or "?" + + return { + title = dictionary_text("mp_blind_raiser_tooltip_title", nil, "Blind Raiser"), + text = { + dictionary_text( + "mp_blind_raiser_tooltip_upgrades", + { upgrade_count }, + "Blind upgrades this game: " .. tostring(upgrade_count) + ), + dictionary_text( + "mp_blind_raiser_tooltip_score", + { formatted_score }, + "Score if upgraded: " .. tostring(formatted_score) + ), + }, + } +end + local function upgrade_index_for(blind_choice, ante, expected_boss) local record = replacement_record(blind_choice, ante, expected_boss) if type(record) ~= "table" then return nil, nil end @@ -597,7 +645,9 @@ G.FUNCS.mp_blind_raiser_update_upgrade_button = function(e) local blind_choice = e.config.mp_blind_raiser_choice set_runtime_button(e, blind_choice and can_upgrade(blind_choice), "mp_blind_raiser_upgrade") - if G.FUNCS.hover_tag_proxy then G.FUNCS.hover_tag_proxy(e) end + -- Keep the tooltip live so an untouched Big Blind button immediately reflects + -- an upgrade made to the Small Blind without rebuilding the whole screen. + e.config.tooltip = BR.upgrade_button_tooltip(blind_choice) end local create_UIBox_blind_tag_ref = create_UIBox_blind_tag @@ -710,13 +760,14 @@ function create_UIBox_blind_tag(blind_choice, run_info) padding = 0.07, r = 0.1, shadow = true, - hover = upgrade_active, + hover = true, one_press = true, button = upgrade_active and "mp_blind_raiser_upgrade" or nil, func = "mp_blind_raiser_update_upgrade_button", insta_func = true, ref_table = reward_tag, mp_blind_raiser_choice = blind_choice, + tooltip = BR.upgrade_button_tooltip(blind_choice), }, nodes = { { From 3c597b9a58037e8ad8f2635086800430f050e52b Mon Sep 17 00:00:00 2001 From: AlexanderAndersonAmenAmen <104784206+AlexanderAndersonAmenAmen@users.noreply.github.com> Date: Tue, 28 Jul 2026 00:26:47 +0300 Subject: [PATCH 3/6] Chicot, Luchador and Matador are removed from the ruleset's bans --- assets/1x/alt_mp_stakes.png | Bin 4248 -> 0 bytes assets/1x/alt_stickers.png | Bin 1554 -> 0 bytes assets/1x/b_heidelberg.png | Bin 1207 -> 0 bytes assets/1x/blind_col.png | Bin 105336 -> 0 bytes assets/1x/c_asteroid.png | Bin 7052 -> 0 bytes assets/1x/c_asteroid_ru.png | Bin 25245 -> 0 bytes assets/1x/c_ouija_2.png | Bin 1399 -> 0 bytes assets/1x/deck_stickers.png | Bin 26626 -> 0 bytes assets/1x/decks.png | Bin 26999 -> 0 bytes assets/1x/ec_jokers_sandbox.png | Bin 198298 -> 0 bytes assets/1x/ec_other_sandbox.png | Bin 105377 -> 0 bytes assets/1x/j_ERROR_sandbox.png | Bin 816 -> 0 bytes assets/1x/j_baseball_sandbox.png | Bin 10868 -> 0 bytes assets/1x/j_bloodstone_sandbox.png | Bin 7034 -> 0 bytes assets/1x/j_castle_sandbox.png | Bin 10214 -> 0 bytes assets/1x/j_cloud_9_sandbox.png | Bin 8693 -> 0 bytes assets/1x/j_conjoined_joker.png | Bin 2922 -> 0 bytes assets/1x/j_constellation_sandbox.png | Bin 10737 -> 0 bytes assets/1x/j_copycat.png | Bin 6721 -> 0 bytes assets/1x/j_defensive_joker.png | Bin 1968 -> 0 bytes assets/1x/j_faceless_sandbox.png | Bin 6419 -> 0 bytes assets/1x/j_hit_the_road_sandbox.png | Bin 11985 -> 0 bytes assets/1x/j_idol_sandbox_bw.png | Bin 2721 -> 0 bytes assets/1x/j_idol_sandbox_color.png | Bin 5167 -> 0 bytes assets/1x/j_juggler_sandbox.png | Bin 8537 -> 0 bytes assets/1x/j_lets_go_gambling.png | Bin 3613 -> 0 bytes assets/1x/j_loyalty_card_sandbox.png | Bin 9949 -> 0 bytes assets/1x/j_lucky_cat_sandbox.png | Bin 12501 -> 0 bytes assets/1x/j_magnet.png | Bin 4795 -> 0 bytes assets/1x/j_mail_sandbox.png | Bin 9128 -> 0 bytes assets/1x/j_misprint_sandbox.png | Bin 4488 -> 0 bytes assets/1x/j_order_sandbox.png | Bin 8611 -> 0 bytes assets/1x/j_pacifist.png | Bin 1985 -> 0 bytes assets/1x/j_penny_pincher.png | Bin 2295 -> 0 bytes assets/1x/j_photograph_sandbox.png | Bin 10140 -> 0 bytes assets/1x/j_pizza.png | Bin 3398 -> 0 bytes assets/1x/j_ride_the_bus_sandbox.png | Bin 1744 -> 0 bytes assets/1x/j_runner_sandbox.png | Bin 6764 -> 0 bytes assets/1x/j_satellite_sandbox.png | Bin 7153 -> 0 bytes assets/1x/j_skip_off.png | Bin 1796 -> 0 bytes assets/1x/j_speedrun.png | Bin 615 -> 0 bytes assets/1x/j_square_sandbox.png | Bin 4232 -> 0 bytes assets/1x/j_steel_joker_sandbox.png | Bin 6042 -> 0 bytes assets/1x/j_taxes.png | Bin 7041 -> 0 bytes assets/1x/j_throwback_sandbox.png | Bin 9785 -> 0 bytes assets/1x/j_vampire_sandbox.png | Bin 7104 -> 0 bytes assets/1x/modicon.png | Bin 470 -> 0 bytes assets/1x/player_blind_row.png | Bin 1570 -> 0 bytes assets/1x/release_jokers.png | Bin 589298 -> 0 bytes assets/1x/stakes-chips.png | Bin 2030 -> 0 bytes assets/1x/standard_giga.png | Bin 3984 -> 0 bytes assets/1x/sticker_balanced.png | Bin 4493 -> 0 bytes assets/1x/sticker_nemesis.png | Bin 562 -> 0 bytes assets/1x/stickers.png | Bin 4384 -> 0 bytes assets/1x/tag_gambling_sandbox.png | Bin 1793 -> 0 bytes assets/2x/alt_mp_stakes.png | Bin 22030 -> 0 bytes assets/2x/alt_stickers.png | Bin 3468 -> 0 bytes assets/2x/b_heidelberg.png | Bin 2503 -> 0 bytes assets/2x/blind_col.png | Bin 192261 -> 0 bytes assets/2x/c_asteroid.png | Bin 8218 -> 0 bytes assets/2x/c_asteroid_ru.png | Bin 7712 -> 0 bytes assets/2x/c_ouija_2.png | Bin 2939 -> 0 bytes compatibility/Preview/CorePreview.lua | 272 ----- compatibility/Preview/EngineSimulate.lua | 519 ---------- compatibility/Preview/InitPreview.lua | 132 --- compatibility/Preview/InitSimulate.lua | 36 - compatibility/Preview/InterfacePreview.lua | 194 ---- compatibility/Preview/Jokers/Multiplayer.lua | 61 -- compatibility/Preview/Jokers/_Vanilla.lua | 949 ----------------- compatibility/Preview/UtilsPreview.lua | 39 - compatibility/Preview/UtilsSimulate.lua | 242 ----- objects/blinds/nemesis.lua | 35 - objects/boosters/standard_giga.lua | 46 - objects/challenges/all_must_go.lua | 10 - objects/challenges/bacon.lua | 57 -- objects/challenges/balancing_act.lua | 16 - objects/challenges/chore_list.lua | 32 - objects/challenges/divination.lua | 9 - objects/challenges/eeeee.lua | 12 - objects/challenges/high_hand.lua | 18 - objects/challenges/in_the_red.lua | 20 - objects/challenges/legendaries.lua | 32 - objects/challenges/lets_go_gambling.lua | 44 - objects/challenges/misprint_deck.lua | 15 - objects/challenges/oops_all_jokers.lua | 53 - objects/challenges/planet_tycoon.lua | 21 - objects/challenges/polymorph_spam.lua | 29 - objects/challenges/psychosis.lua | 9 - objects/challenges/salvaged_sibyl.lua | 81 -- objects/challenges/scratch.lua | 18 - objects/challenges/shared_pockets.lua | 20 - objects/challenges/skip_off.lua | 10 - objects/challenges/speed.lua | 10 - objects/challenges/twin_towers.lua | 10 - objects/challenges/vantablack.lua | 19 - objects/consumables/asteroid.lua | 57 -- objects/consumables/judgement.lua | 74 -- objects/consumables/ouija.lua | 100 -- objects/consumables/sandbox/ectoplasm.lua | 51 - objects/consumables/wraith.lua | 31 - objects/decks/00_violet.lua | 29 - objects/decks/01_indigo.lua | 108 -- objects/decks/02_orange.lua | 44 - objects/decks/09_white.lua | 43 - objects/decks/AA_oracle.lua | 31 - objects/decks/BB_gradient.lua | 154 --- objects/decks/CC_heidelberg.lua | 27 - objects/decks/EC_echo_deck.lua | 57 -- objects/decks/ZZ_cocktail.lua | 670 ------------ objects/decks/_decks.lua | 42 - objects/editions/phantom.lua | 43 - objects/enhancements/mp_glass.lua | 9 - objects/jokers/conjoined_joker.lua | 65 -- objects/jokers/defensive_joker.lua | 54 - .../jokers/experimental/baron_uncommon.lua | 35 - objects/jokers/experimental/idol_rare.lua | 36 - objects/jokers/experimental/mime_rare.lua | 20 - objects/jokers/experimental/todo_list.lua | 47 - objects/jokers/lets_go_gambling.lua | 82 -- objects/jokers/pacifist.lua | 37 - objects/jokers/penny_pincher.lua | 40 - objects/jokers/pizza.lua | 55 - objects/jokers/sandbox/baseball.lua | 38 - objects/jokers/sandbox/bloodstone.lua | 39 - objects/jokers/sandbox/castle.lua | 54 - objects/jokers/sandbox/cloud_9.lua | 63 -- objects/jokers/sandbox/constellation.lua | 52 - objects/jokers/sandbox/error.lua | 122 --- .../jokers/sandbox/extra-credit/_ec_atlas.lua | 11 - .../jokers/sandbox/extra-credit/_ec_utils.lua | 107 -- objects/jokers/sandbox/extra-credit/alloy.lua | 36 - .../jokers/sandbox/extra-credit/ambrosia.lua | 93 -- objects/jokers/sandbox/extra-credit/bobby.lua | 62 -- .../sandbox/extra-credit/candynecklace.lua | 71 -- .../sandbox/extra-credit/chainlightning.lua | 64 -- .../jokers/sandbox/extra-credit/clowncar.lua | 44 - .../sandbox/extra-credit/clowncollege.lua | 61 -- .../sandbox/extra-credit/couponsheet.lua | 77 -- .../sandbox/extra-credit/doublerainbow.lua | 53 - .../jokers/sandbox/extra-credit/espresso.lua | 98 -- .../jokers/sandbox/extra-credit/farmer.lua | 50 - .../jokers/sandbox/extra-credit/forklift.lua | 43 - .../jokers/sandbox/extra-credit/gofish.lua | 51 - .../jokers/sandbox/extra-credit/hoarder.lua | 31 - .../jokers/sandbox/extra-credit/jokalisa.lua | 68 -- .../sandbox/extra-credit/jokeroftheyear.lua | 43 - .../jokers/sandbox/extra-credit/lucky7.lua | 70 -- .../jokers/sandbox/extra-credit/montehaul.lua | 65 -- .../sandbox/extra-credit/pocketaces.lua | 43 - .../sandbox/extra-credit/pyromancer.lua | 46 - .../sandbox/extra-credit/shipoftheseus.lua | 84 -- .../jokers/sandbox/extra-credit/starfruit.lua | 80 -- .../sandbox/extra-credit/trafficlight.lua | 62 -- .../jokers/sandbox/extra-credit/tuxedo.lua | 54 - .../jokers/sandbox/extra-credit/warlock.lua | 82 -- .../jokers/sandbox/extra-credit/werewolf.lua | 61 -- objects/jokers/sandbox/faceless.lua | 54 - objects/jokers/sandbox/golden_ticket.lua | 46 - objects/jokers/sandbox/hit_the_road.lua | 45 - objects/jokers/sandbox/idol.lua | 225 ---- objects/jokers/sandbox/juggler.lua | 65 -- objects/jokers/sandbox/loyalty_card.lua | 72 -- objects/jokers/sandbox/lucky_cat.lua | 49 - objects/jokers/sandbox/magnet_sandbox.lua | 107 -- objects/jokers/sandbox/mail.lua | 59 -- objects/jokers/sandbox/misprint.lua | 37 - objects/jokers/sandbox/order.lua | 49 - objects/jokers/sandbox/photograph.lua | 40 - objects/jokers/sandbox/ride_the_bus.lua | 70 -- objects/jokers/sandbox/runner.lua | 41 - objects/jokers/sandbox/satellite.lua | 49 - objects/jokers/sandbox/square.lua | 40 - objects/jokers/sandbox/steel_joker.lua | 36 - objects/jokers/sandbox/throwback.lua | 92 -- objects/jokers/sandbox/vampire.lua | 73 -- objects/jokers/skip_off.lua | 63 -- objects/jokers/speedrun.lua | 65 -- objects/jokers/standard/bloodstone.lua | 65 -- objects/jokers/standard/hanging_chad.lua | 36 - objects/jokers/standard/ice_cream.lua | 26 - objects/jokers/standard/seltzer.lua | 64 -- objects/jokers/standard/ticket.lua | 71 -- objects/jokers/standard/turtle_bean.lua | 43 - objects/jokers/taxes.lua | 61 -- rulesets/_rulesets.lua | 10 +- .../experimental_blind_raiser.lua | 5 + ui/_common/background_grouping.lua | 21 - ui/_common/disableable_button.lua | 17 - ui/_common/disableable_option_cycle.lua | 12 - ui/_common/disableable_toggle.lua | 12 - ui/_common/spacer.lua | 19 - ui/game/blind_chip_sprite.lua | 26 - ui/game/blind_choice.lua | 535 ---------- ui/game/blind_hud.lua | 231 ----- ui/game/blind_raiser.lua | 961 ------------------ ui/game/confirmation.lua | 39 - ui/game/enemy_location.lua | 284 ------ ui/game/functions.lua | 535 ---------- ui/game/game_end.lua | 545 ---------- ui/game/game_state.lua | 657 ------------ ui/game/lobby_info.lua | 312 ------ ui/game/round.lua | 90 -- ui/game/ruleset_info_menu.lua | 166 --- ui/game/timer.lua | 536 ---------- ui/game/zz_blind_raiser_score.lua | 19 - ui/lobby/_lobby_options/advanced_tab.lua | 207 ---- ui/lobby/_lobby_options/gameplay_tab.lua | 24 - ui/lobby/_lobby_options/main_options.lua | 118 --- ui/lobby/_lobby_options/modifiers_tab.lua | 103 -- ui/lobby/_lobby_options/options_tab.lua | 93 -- ui/lobby/deck_stake_button.lua | 45 - ui/lobby/leave_button.lua | 13 - ui/lobby/lobby.lua | 643 ------------ ui/lobby/lobby_code_buttons.lua | 28 - ui/lobby/players_display.lua | 40 - ui/lobby/start_ready_button.lua | 159 --- ui/lobby/version_mismatch_warning.lua | 121 --- ui/main_menu/dev_warning.lua | 74 -- ui/main_menu/main_menu.lua | 110 -- .../play_button/_modifiers_overlay.lua | 90 -- ui/main_menu/play_button/_mutators_wall.lua | 562 ---------- .../play_button/_practice_options_overlay.lua | 83 -- .../play_button/custom_ruleset_editor.lua | 308 ------ .../play_button/gamemode_selection.lua | 199 ---- .../play_button/ghost_replay_picker.lua | 739 -------------- .../play_button/join_lobby_button.lua | 42 - ui/main_menu/play_button/play_button.lua | 84 -- .../play_button/play_button_callbacks.lua | 158 --- .../play_button/ruleset_selection.lua | 724 ------------- ui/main_menu/play_button/weekly_interrupt.lua | 50 - ui/main_menu/title_card.lua | 133 --- ui/main_menu/version_display.lua | 33 - ui/smods_menu/config_tab.lua | 161 --- ui/smods_menu/credits_tab.lua | 60 -- ui/smods_menu/customization_tab.lua | 216 ---- ui/smods_menu/smods_menu.lua | 42 - 236 files changed, 12 insertions(+), 19414 deletions(-) delete mode 100644 assets/1x/alt_mp_stakes.png delete mode 100644 assets/1x/alt_stickers.png delete mode 100644 assets/1x/b_heidelberg.png delete mode 100644 assets/1x/blind_col.png delete mode 100644 assets/1x/c_asteroid.png delete mode 100644 assets/1x/c_asteroid_ru.png delete mode 100644 assets/1x/c_ouija_2.png delete mode 100644 assets/1x/deck_stickers.png delete mode 100644 assets/1x/decks.png delete mode 100644 assets/1x/ec_jokers_sandbox.png delete mode 100644 assets/1x/ec_other_sandbox.png delete mode 100644 assets/1x/j_ERROR_sandbox.png delete mode 100644 assets/1x/j_baseball_sandbox.png delete mode 100644 assets/1x/j_bloodstone_sandbox.png delete mode 100644 assets/1x/j_castle_sandbox.png delete mode 100644 assets/1x/j_cloud_9_sandbox.png delete mode 100644 assets/1x/j_conjoined_joker.png delete mode 100644 assets/1x/j_constellation_sandbox.png delete mode 100644 assets/1x/j_copycat.png delete mode 100644 assets/1x/j_defensive_joker.png delete mode 100644 assets/1x/j_faceless_sandbox.png delete mode 100644 assets/1x/j_hit_the_road_sandbox.png delete mode 100644 assets/1x/j_idol_sandbox_bw.png delete mode 100644 assets/1x/j_idol_sandbox_color.png delete mode 100644 assets/1x/j_juggler_sandbox.png delete mode 100644 assets/1x/j_lets_go_gambling.png delete mode 100644 assets/1x/j_loyalty_card_sandbox.png delete mode 100644 assets/1x/j_lucky_cat_sandbox.png delete mode 100644 assets/1x/j_magnet.png delete mode 100644 assets/1x/j_mail_sandbox.png delete mode 100644 assets/1x/j_misprint_sandbox.png delete mode 100644 assets/1x/j_order_sandbox.png delete mode 100644 assets/1x/j_pacifist.png delete mode 100644 assets/1x/j_penny_pincher.png delete mode 100644 assets/1x/j_photograph_sandbox.png delete mode 100644 assets/1x/j_pizza.png delete mode 100644 assets/1x/j_ride_the_bus_sandbox.png delete mode 100644 assets/1x/j_runner_sandbox.png delete mode 100644 assets/1x/j_satellite_sandbox.png delete mode 100644 assets/1x/j_skip_off.png delete mode 100644 assets/1x/j_speedrun.png delete mode 100644 assets/1x/j_square_sandbox.png delete mode 100644 assets/1x/j_steel_joker_sandbox.png delete mode 100644 assets/1x/j_taxes.png delete mode 100644 assets/1x/j_throwback_sandbox.png delete mode 100644 assets/1x/j_vampire_sandbox.png delete mode 100644 assets/1x/modicon.png delete mode 100644 assets/1x/player_blind_row.png delete mode 100644 assets/1x/release_jokers.png delete mode 100644 assets/1x/stakes-chips.png delete mode 100644 assets/1x/standard_giga.png delete mode 100644 assets/1x/sticker_balanced.png delete mode 100644 assets/1x/sticker_nemesis.png delete mode 100644 assets/1x/stickers.png delete mode 100644 assets/1x/tag_gambling_sandbox.png delete mode 100644 assets/2x/alt_mp_stakes.png delete mode 100644 assets/2x/alt_stickers.png delete mode 100644 assets/2x/b_heidelberg.png delete mode 100644 assets/2x/blind_col.png delete mode 100644 assets/2x/c_asteroid.png delete mode 100644 assets/2x/c_asteroid_ru.png delete mode 100644 assets/2x/c_ouija_2.png delete mode 100644 compatibility/Preview/CorePreview.lua delete mode 100644 compatibility/Preview/EngineSimulate.lua delete mode 100644 compatibility/Preview/InitPreview.lua delete mode 100644 compatibility/Preview/InitSimulate.lua delete mode 100644 compatibility/Preview/InterfacePreview.lua delete mode 100644 compatibility/Preview/Jokers/Multiplayer.lua delete mode 100644 compatibility/Preview/Jokers/_Vanilla.lua delete mode 100644 compatibility/Preview/UtilsPreview.lua delete mode 100644 compatibility/Preview/UtilsSimulate.lua delete mode 100644 objects/blinds/nemesis.lua delete mode 100644 objects/boosters/standard_giga.lua delete mode 100644 objects/challenges/all_must_go.lua delete mode 100644 objects/challenges/bacon.lua delete mode 100644 objects/challenges/balancing_act.lua delete mode 100644 objects/challenges/chore_list.lua delete mode 100644 objects/challenges/divination.lua delete mode 100644 objects/challenges/eeeee.lua delete mode 100644 objects/challenges/high_hand.lua delete mode 100644 objects/challenges/in_the_red.lua delete mode 100644 objects/challenges/legendaries.lua delete mode 100644 objects/challenges/lets_go_gambling.lua delete mode 100644 objects/challenges/misprint_deck.lua delete mode 100644 objects/challenges/oops_all_jokers.lua delete mode 100644 objects/challenges/planet_tycoon.lua delete mode 100644 objects/challenges/polymorph_spam.lua delete mode 100644 objects/challenges/psychosis.lua delete mode 100644 objects/challenges/salvaged_sibyl.lua delete mode 100644 objects/challenges/scratch.lua delete mode 100644 objects/challenges/shared_pockets.lua delete mode 100644 objects/challenges/skip_off.lua delete mode 100644 objects/challenges/speed.lua delete mode 100644 objects/challenges/twin_towers.lua delete mode 100644 objects/challenges/vantablack.lua delete mode 100644 objects/consumables/asteroid.lua delete mode 100644 objects/consumables/judgement.lua delete mode 100644 objects/consumables/ouija.lua delete mode 100644 objects/consumables/sandbox/ectoplasm.lua delete mode 100644 objects/consumables/wraith.lua delete mode 100644 objects/decks/00_violet.lua delete mode 100644 objects/decks/01_indigo.lua delete mode 100644 objects/decks/02_orange.lua delete mode 100644 objects/decks/09_white.lua delete mode 100644 objects/decks/AA_oracle.lua delete mode 100644 objects/decks/BB_gradient.lua delete mode 100644 objects/decks/CC_heidelberg.lua delete mode 100644 objects/decks/EC_echo_deck.lua delete mode 100644 objects/decks/ZZ_cocktail.lua delete mode 100644 objects/decks/_decks.lua delete mode 100644 objects/editions/phantom.lua delete mode 100644 objects/enhancements/mp_glass.lua delete mode 100644 objects/jokers/conjoined_joker.lua delete mode 100644 objects/jokers/defensive_joker.lua delete mode 100644 objects/jokers/experimental/baron_uncommon.lua delete mode 100644 objects/jokers/experimental/idol_rare.lua delete mode 100644 objects/jokers/experimental/mime_rare.lua delete mode 100644 objects/jokers/experimental/todo_list.lua delete mode 100644 objects/jokers/lets_go_gambling.lua delete mode 100644 objects/jokers/pacifist.lua delete mode 100644 objects/jokers/penny_pincher.lua delete mode 100644 objects/jokers/pizza.lua delete mode 100644 objects/jokers/sandbox/baseball.lua delete mode 100644 objects/jokers/sandbox/bloodstone.lua delete mode 100644 objects/jokers/sandbox/castle.lua delete mode 100644 objects/jokers/sandbox/cloud_9.lua delete mode 100644 objects/jokers/sandbox/constellation.lua delete mode 100644 objects/jokers/sandbox/error.lua delete mode 100644 objects/jokers/sandbox/extra-credit/_ec_atlas.lua delete mode 100644 objects/jokers/sandbox/extra-credit/_ec_utils.lua delete mode 100644 objects/jokers/sandbox/extra-credit/alloy.lua delete mode 100644 objects/jokers/sandbox/extra-credit/ambrosia.lua delete mode 100644 objects/jokers/sandbox/extra-credit/bobby.lua delete mode 100644 objects/jokers/sandbox/extra-credit/candynecklace.lua delete mode 100644 objects/jokers/sandbox/extra-credit/chainlightning.lua delete mode 100644 objects/jokers/sandbox/extra-credit/clowncar.lua delete mode 100644 objects/jokers/sandbox/extra-credit/clowncollege.lua delete mode 100644 objects/jokers/sandbox/extra-credit/couponsheet.lua delete mode 100644 objects/jokers/sandbox/extra-credit/doublerainbow.lua delete mode 100644 objects/jokers/sandbox/extra-credit/espresso.lua delete mode 100644 objects/jokers/sandbox/extra-credit/farmer.lua delete mode 100644 objects/jokers/sandbox/extra-credit/forklift.lua delete mode 100644 objects/jokers/sandbox/extra-credit/gofish.lua delete mode 100644 objects/jokers/sandbox/extra-credit/hoarder.lua delete mode 100644 objects/jokers/sandbox/extra-credit/jokalisa.lua delete mode 100644 objects/jokers/sandbox/extra-credit/jokeroftheyear.lua delete mode 100644 objects/jokers/sandbox/extra-credit/lucky7.lua delete mode 100644 objects/jokers/sandbox/extra-credit/montehaul.lua delete mode 100644 objects/jokers/sandbox/extra-credit/pocketaces.lua delete mode 100644 objects/jokers/sandbox/extra-credit/pyromancer.lua delete mode 100644 objects/jokers/sandbox/extra-credit/shipoftheseus.lua delete mode 100644 objects/jokers/sandbox/extra-credit/starfruit.lua delete mode 100644 objects/jokers/sandbox/extra-credit/trafficlight.lua delete mode 100644 objects/jokers/sandbox/extra-credit/tuxedo.lua delete mode 100644 objects/jokers/sandbox/extra-credit/warlock.lua delete mode 100644 objects/jokers/sandbox/extra-credit/werewolf.lua delete mode 100644 objects/jokers/sandbox/faceless.lua delete mode 100644 objects/jokers/sandbox/golden_ticket.lua delete mode 100644 objects/jokers/sandbox/hit_the_road.lua delete mode 100644 objects/jokers/sandbox/idol.lua delete mode 100644 objects/jokers/sandbox/juggler.lua delete mode 100644 objects/jokers/sandbox/loyalty_card.lua delete mode 100644 objects/jokers/sandbox/lucky_cat.lua delete mode 100644 objects/jokers/sandbox/magnet_sandbox.lua delete mode 100644 objects/jokers/sandbox/mail.lua delete mode 100644 objects/jokers/sandbox/misprint.lua delete mode 100644 objects/jokers/sandbox/order.lua delete mode 100644 objects/jokers/sandbox/photograph.lua delete mode 100644 objects/jokers/sandbox/ride_the_bus.lua delete mode 100644 objects/jokers/sandbox/runner.lua delete mode 100644 objects/jokers/sandbox/satellite.lua delete mode 100644 objects/jokers/sandbox/square.lua delete mode 100644 objects/jokers/sandbox/steel_joker.lua delete mode 100644 objects/jokers/sandbox/throwback.lua delete mode 100644 objects/jokers/sandbox/vampire.lua delete mode 100644 objects/jokers/skip_off.lua delete mode 100644 objects/jokers/speedrun.lua delete mode 100644 objects/jokers/standard/bloodstone.lua delete mode 100644 objects/jokers/standard/hanging_chad.lua delete mode 100644 objects/jokers/standard/ice_cream.lua delete mode 100644 objects/jokers/standard/seltzer.lua delete mode 100644 objects/jokers/standard/ticket.lua delete mode 100644 objects/jokers/standard/turtle_bean.lua delete mode 100644 objects/jokers/taxes.lua delete mode 100644 ui/_common/background_grouping.lua delete mode 100644 ui/_common/disableable_button.lua delete mode 100644 ui/_common/disableable_option_cycle.lua delete mode 100644 ui/_common/disableable_toggle.lua delete mode 100644 ui/_common/spacer.lua delete mode 100644 ui/game/blind_chip_sprite.lua delete mode 100644 ui/game/blind_choice.lua delete mode 100644 ui/game/blind_hud.lua delete mode 100644 ui/game/blind_raiser.lua delete mode 100644 ui/game/confirmation.lua delete mode 100644 ui/game/enemy_location.lua delete mode 100644 ui/game/functions.lua delete mode 100644 ui/game/game_end.lua delete mode 100644 ui/game/game_state.lua delete mode 100644 ui/game/lobby_info.lua delete mode 100644 ui/game/round.lua delete mode 100644 ui/game/ruleset_info_menu.lua delete mode 100644 ui/game/timer.lua delete mode 100644 ui/game/zz_blind_raiser_score.lua delete mode 100644 ui/lobby/_lobby_options/advanced_tab.lua delete mode 100644 ui/lobby/_lobby_options/gameplay_tab.lua delete mode 100644 ui/lobby/_lobby_options/main_options.lua delete mode 100644 ui/lobby/_lobby_options/modifiers_tab.lua delete mode 100644 ui/lobby/_lobby_options/options_tab.lua delete mode 100644 ui/lobby/deck_stake_button.lua delete mode 100644 ui/lobby/leave_button.lua delete mode 100644 ui/lobby/lobby.lua delete mode 100644 ui/lobby/lobby_code_buttons.lua delete mode 100644 ui/lobby/players_display.lua delete mode 100644 ui/lobby/start_ready_button.lua delete mode 100644 ui/lobby/version_mismatch_warning.lua delete mode 100644 ui/main_menu/dev_warning.lua delete mode 100644 ui/main_menu/main_menu.lua delete mode 100644 ui/main_menu/play_button/_modifiers_overlay.lua delete mode 100644 ui/main_menu/play_button/_mutators_wall.lua delete mode 100644 ui/main_menu/play_button/_practice_options_overlay.lua delete mode 100644 ui/main_menu/play_button/custom_ruleset_editor.lua delete mode 100644 ui/main_menu/play_button/gamemode_selection.lua delete mode 100644 ui/main_menu/play_button/ghost_replay_picker.lua delete mode 100644 ui/main_menu/play_button/join_lobby_button.lua delete mode 100644 ui/main_menu/play_button/play_button.lua delete mode 100644 ui/main_menu/play_button/play_button_callbacks.lua delete mode 100644 ui/main_menu/play_button/ruleset_selection.lua delete mode 100644 ui/main_menu/play_button/weekly_interrupt.lua delete mode 100644 ui/main_menu/title_card.lua delete mode 100644 ui/main_menu/version_display.lua delete mode 100644 ui/smods_menu/config_tab.lua delete mode 100644 ui/smods_menu/credits_tab.lua delete mode 100644 ui/smods_menu/customization_tab.lua delete mode 100644 ui/smods_menu/smods_menu.lua diff --git a/assets/1x/alt_mp_stakes.png b/assets/1x/alt_mp_stakes.png deleted file mode 100644 index ab8f9700337c68459b3c0efe26e87b9ebe738619..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4248 zcmZ9Qc{tSVzsJ8b)*+02XE2s1LMBNJrVu0Kd9r3FjD447BAF7#E|cuL?B+D1lznSt z$xbCpWz7;HoYC|A&N4?LhNchI=o4mu_t2Kv5AA<*8f1PSHrAn8;=y{f;HN_PDImdLSgZ37pO&)kfnJkO~9AW*N;avl!Xl4xyuIu>lgsZua8p zfbJy-2QZv~Bz@>*8Y<%7TNtmga>ZcZA~{g2BZaOvl|9>vAGyaJV|m`LAHJQDfpu|} zCv%HCzLVAz=9DQ=c-45>dtIoK0>}9b^(Z_FpTRM`j{zR}RH%o3IB!u-`-%a>PSOM|5~BfgBOvfR z>L=Q&OSn{{CsfS>Gle9t6&gOkp;ak=IkCvP9$mlSAQq1ud#svJ0rGfWIl=3afk21TQ~ost;JT-3)fsh z?I$M;H~zL+d-ht4wJlRh3rmqq;*RufYHC_P#JDpJu<)ypd!&Gl%(cf!PzEvj6xiFP z{{Bq*c@|NP88`pAw%AtEJpCEjdI-QSLHZ)mp@q8-XRIZ89(`{OIii0OFl9{&zvENw zm{j^014ee}DQPf?4ZktMqOgof=X){&zI?(yg6ZGB>#s zq%H5^wnT~}g=k>xu(tU^CNvr?rZ>zzMb#Q1ct+@49o^*Wdpm&(?C|eQp43nx=>Myd zdPcYld{4l6sv#HquynAY*ZMt;0&ciL-gP-ZhE>F~kvs*!$(JBcpTGE{G6S8hg=jDj z7PZ&4tpUwfz<{W;jp(;v{DKnA!7t>4NFUojlbp4G2Kh(Jz$SF!r3UQ~Zye^n%UN0Y zU()&sQ|Q>cA9NC?3}TCx;pNFe&czk@08f4QA{&eH(}Yn1SaP^QsY`oGvQxa$2&^sa z)NheZS=w1{FO=^czbl90wEB3CX*CtItFcv!GuTqm&m_9ETa{xRNXTZmEg`_oJQB~D zRdiT&WxI*$H|eWXd?ZA&O7%a!Qce^6`S90~tp zoi(&{4f1HL)^M?GaOhSEZG1s-m3jNpLT~CV$}lkaq5KvN;g9lq?<2uIgPxnbkYWJ- zM-t6lO+S?mHu*hh2#@5(hKqY=__e^QzPBQ!Tp>^`$8|%p((_b#wCfy*!_tY{68di8 z9O%p0rGX;3`ODvj19(JW`QQJ#yI*MUmjP@F`Ma85D)?Wg6TMGLF~X|K`@0UOZ$1lf zQ)6bs5AMh|zPfpO{CmaV>$e}y&plQVQ(J5EWzP={+pYS{ms*98bcmz`MhKyDpAAYY zEwm_9vnDF`x;OOx&R#iC#bNk;kIA6uO2s!zWDVAWjnxKQr-`VD17Dvf`hOE_md35e zyR~-oODhZB2dxOVDoR;+BA(j%+jz$^(tzNEltD&09_JjD<;o$aNJ@#*nX;b@4+SjJ z9|&8eR@Dy({2bNd+*cu_DCUhJ@~O z;8J@$+e0fuQ`lO2J}Xtb3@lCsm&ACzyk?7q zQ$uGq8i->rcXPhy33}CW5vuMMq5qTUG{w{xBqKm+9-p4FlIM7A5S+md#=CBOKHp00 z4erH+snbqx@om|Y#pV?Va>tLXzo}yFte$IY7+!Mv?d;#F*@9rl^tbpq0!b?@;Obx9 z<5JO{lf3&EX7QVu=q^pfl}FItc)pNnSRYg3iWnfni?V3-ouoCE$JIyA*F*BGq0V&O z&YVaR>;_mj@hOwI?UdY6-wMPGCR?*{FK)(D7FQj)*caZ-Ju5EiWOb6TwClKGsFJZU zyRg0A85m6IyJr1uabBRJqT=B}Vrq$Kg}j2gD%nr-@U_LqD`6uO)1!w{k()r=CDKxY z$`V7u5OUQ!##Z@t(l=p^_&>E}cNO8dE)wiZThQ+^JMMF%o7kPpErV?z!mGD9ck+Uv72|WcuTO+d z9xK%Jp5zw~356v^bbD~1_`c?>^FCEPY9>62*t=o&v&eR*I!wcFo?P8SZ`!@j5WCmB z_HIvNj}k$$gH(Xgw{WMd8okJ6p9Y4{0;5>@;~qyQZA z)KA50BpFD*qIV4{#;Sb=u7#|dd>>^SQiFa2I(o(yytt)Z|MRwH=*zMY7C`*EU#D(7 zufjmhQIew4Qfp?&?_ZGnQ!~SwmL45!zDJM2b_$ed$*K2hp~^oGG8Cy@wu#IaeK=6; z8K`sbcW7`!u;Uy>N>8I%AhpjsNCdOHJhn^Up!2Cklabu7sKF$v1p3lWL%rRPiD=BO z>jjo9#*~0q1RkpQ=~bRsz%2j*2xkboxa4TcV)Ym%xB8tgTwQPN_VZRb$AlOI!H9y_ z7sUGk%YA?YB(6?`5ge6HYXb!6-Cm?m;S^WrdZ_?#F(e&#{^7Zl*oZqVju8^=x?|I9 zAG1H(bQ{spTIdOu!Uha}yvLnZ6u9(oK8)z%p9^HFm>EG#r2$T43KLF#vF!RMKHLvF zpr{JkTOLIx{wWtlj0B;k($g!nO#@Rt=v6>#bf5`*G6_tZmOu>OqgJB2k&3$lcS?0- z!Sxrh2gFRd--R1pR8B9Z%dg$5Bo~K$2cq3r?$@BTi()X}@08RWsA~pan@jMzo9m51 z#Cf|tdHIL(?U$?_!-Pk8oJ9RH6m4|5c6ZWs{96Xam{Df+IS_V?c5jdrs`gPx1vq(r zR0(^^_gO06odf?v^(t_(q?8|}c37{$(?z;;-&*ubmif3v(^n12W@TBEPYN0o`&s?O z{-5G&L>uL*i+gT_$@J+n=Y3pXmyRzrEjxjz*p6OP;Us_w<5%Cf*B!UjRXZ{#MzomG zFZ#_w>@;?k>6K5&m0&`d;CMwU9h?`*NE{i8+ELlHY7;d}4G!l^x8JpSZ~T?o_X3p1>Ot@~ zcgyIt$_*5ET2>?oZ1-4{ySN$W-;zG=vLoKMsPm$`Nxqm9%b<5RjN4MF|CGm<|Kah= zixtTOZ8Y$mc*2(QWdkaAna4g0lxwR?kLqQFLE$?im4jOvPoGI5)w^dbNF=41s4~=p zZx!vO*LGGDFG=RY7lB*!7rAtcNDPG(b4f5h}Lt)SzP$q z^4XFX6?0p+-&XLD>yC9Rypkfn?ZJG^k3N(1Ykm3il;7jH$FR02AO)@e>%zaFWEFW; zhHX5{Pvd^niA-orx$x*Q7yT)5$;Vs1)c$b!k_8>sj{impD8>Ea-i-9S=9`TX0v4nm z_(~=(@o2x|stfP&z*ED4<*)+Rl9Q@cpkDjI8FgD=kP68O{`gZ$))Lz-Qfc+T(z7}8 zmZ>mbV(jR~sj3`qi3U<$>~IsE%W;(l$>|AiBJCn;4{W?-x$ZMEEX1=`TSX=OOG9!~ zx93L%VZ1`J>Rg-+MIQ z_GTdqpgn!@FuGnput)Ue&k_g+7mBA~e|^^u&3 z!G(jq`~o1*I(rv-V<+_ve_VXPU_x7?-(N6|Ow|6h+VjQCr)YCcrEs61 rOsYer8B7H>YrLlWudaNB{N~l_INs2F$dXBYaRBtM8KJ7R?V|r14T$1S diff --git a/assets/1x/alt_stickers.png b/assets/1x/alt_stickers.png deleted file mode 100644 index 78e02379975bfdeb258a7b34d4a217c14bf88702..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1554 zcmc(f`#aMM9LHyfxrF5s>2XQJMy@Hjq-7bV+4h|#GLa5Zk|%bK>jaBYP?yjro>DQR7VPf5=4U zcVr3$Z-S`>$m5Zr^{N@r@3P^T23cjO@*^hm?aP7^-;n-&S^5hJU#H$PN|%!d5-W|P z7n)-irhmmQq6*~lc{aX( zq=WD{+5g^hqXV3QfpJ<_P0AILNTJIppV@9~6j*7{x*qysav|?jR%92w1=uadgZHp) z%L6ODb&l#SZ+sFT&5DHSgjn)VHuuV%XJ092Ve*nUDIa3y1dEG}BlV@jcMbifyv|1D zLaOP)j9=ErmJ*<&y_&U6=iVqj)Q;tx4FMP8`MPkgNjt#&_L=xWbwo_P^<$KrgO|jv zup7!>8c&Lt@pfA|mD~8*%!XP3#BP}F>IsriGn6I6KJGgYKu@V2FWqmApm&ETKwSey z+a_NPs3D#*Q=oX<)eTJWJz!_&dGpfjM87(AFb#fJ(OBeKtQlHH=Q+>X1xhelt9XlT zGc(0%K?;VqG;hc;Wl^l7`hCM*TP1~(f2*cp?NcZ2ocqhs{52>SlKwLbh_}Qj` zbhjE;iv%~_U^6?oaTr$5x1QNa9JY+S9n~lhFN|o^jm)F#k9T0qif7Xi#U3s#KjzB* zywjaQa!S>1*5Wo`N|YtGN%0%~Rh;M)SKS&$;Pv|b;m^kMFXUEOY6zQA)s~=KaT-8} zSY*_VB^9lIdA3>pq^z}dHK_JF5#s;U5l@6&W&$vpmHfpf9X^uh)iu#qz%!;2kZTyp z1SLKuPfHw{LX-)7Y>p?ITw(&Qc1_N>s>A6q;W(Lq#(#>@OdzJ=&MqY`JXrY~Q$m)%JXnb)7Bo6?r&>8V22?<+9aU;f44ZIB@{n|XS_)^rZu?i( zmKuxq+3Q7GU8-W5BH&bI2M?a*ZEb$Y=o9(&k53FmMUY!+uZzym)Q0Qw-a_kUE=uW4 zP`r{9DA~~{-rmBVMQ)s2$zO357id88+L+?Gv`hK$V^CcrS&F(gQQZd&M$-+mThz{q ziv(y<0!pcK+Sa8x)>)6wF^%5dp1G0IEX%!?+c5poN6P%Uvd)R}t^|IywcoI3GDZT1}4-AbCOe3Dz}^ z(&KTkFXex};~7?q2{EDvFRkc(p#cOtLX%u?gNi#Z2mx5s;H#P#-QrkA;*`)fz=%$g z4%K*vZB*ck%nI73=M&e8BOup-7C$a25C?Y}jEzX#9oI*0D68|2;Q3_ADpx=e<3Z2Q z93n6d!)OMz*uK*-7_=xdGkfkGgk~p#Ws|m;2|3^0P+&=vR_6!r4$8F!F(K?Nc9cZg zGWUz-*mQanI=^WAkt_Bd-AKfWB8(yTt-u72xtO?|yaP>u|E*UpyLy2n(Yc&(7D@71 zQ=w$J{B(sEPOzz(#u?h^foSYEY+vL;O$v;@d8U%LRv0?0v{V(D6~LBj?5hPvvu~SE h(2P?5=X6`9yMND3d$zoV^wonrQ77GNkilu7zX1zi$qE1f diff --git a/assets/1x/b_heidelberg.png b/assets/1x/b_heidelberg.png deleted file mode 100644 index d3b7c6e70fa82ee5de70323726bf8bcdf6e05434..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1207 zcmV;o1W5adP)Px#1ZP1_K>z@;j|==^1poj55>QN3MgRZ*h`zAK-`(8o=A6C60000Lj@{k>000Jb zQchF<|NsC00JFcOzW@LL32;bRa{vGi!2kdb!2!6DYwZ941RP03K~z{rt=a3A+b{?O z;I-_&|10+}z%XFh+0#Zp(pZ--NS1KY{rU5q@`IQEE8)!Qe<;S4iPx2N z(qgs8ah~fuvlS2AP&l!Nggm}Bx2niEWqhYO;FA1h&|gC=z_(7NYbXmC4p$EM}sNPdn|3(G)i zw!e3*Ihjz37>vD#qwBM0rqVaFIdh#WdS#S|k+ON795hBa_I5H*8nbhvmAm)OAZEMK zeu>zolbv6}fpTZovF3i}>R=cF6yKDr^eKYbIZw0l8FBIvOfom;1Ebe*biC)?>5r)z zrVJ4>Ge7@^;f#do@i1S#GgKCO;vTBg)81!>!Hm4|%0z835q5lpI2O(m!^crFIr-e* z<;1LZ4BjZik4r|@dBGc#0PRb6NNjwd4y2O@nB z#+_%T_F-+Fba3TsJQ&%3aozGyGIVl@@3ZQQ)4v}^EgyAMCX?X^BaSlRI2NT1v`b~= z_i5BlhN({m_O-(P)b(i$x^0nb#pty7*~&;b=+pLLpH+nOiSa(uiKG+Z+?*#yolQ7CsGPa4ncAi!;moA& z0n4q*42c>!7f<1k>36&_l2@NrM;X}@_^w)AnxkLn@@5tD7>-q_(|(cM8FPw>yq{gf z>C8x+QsvWPINpU$KJzM^!Q?j-yv%S$o=5i>!}o0PbLHXiapqlS-eA2u3PslOn&I5P z&v&LdHjGSryl#Hy`s+hDYuWz>W$q_rFa4axh%K|uh5uB#IcU~%!2!Ejf#D@5mV;{l zWdBS$jlmDd;Z#5~A4V`cX6NLuChOnV$AihwXwD8oKpxY~8=GMGfER`V<=n6j6o)Xkg%&zLWVACTi}h@bAL@`S&iH!)p#Lo2{5#0k{=V~-@)zhn VDU%J6`z`5z78DsJ3Wyd0MGguIDyaa;K?y=3IU^v^B1jNP0-{K!$VkpP zh-8UH&J;P{Rqk(}-n+X`-+gcQKHcMtZ}3YTgQ~gKob!F3_X#2DkCm>HTqnW7!MXZC zS^g;w4qhh?&J|`NLf|(ID_}Vs92T4h@-iB(2J1Cm-A=Yz^v=&Fexy4oc8Wi3Ccf?8 z9ZuFBNk%k#i_GK&m*_B&MmAk~$<=19r>7Ck!arxEO8th7#B1fIv4wkxE_b^eCcN*iw*ae5aSm)rjoQrh60?yNxbc8*WO~4O&%rkxP=+dI8 zmELRU^5?k{sR&%b>g80PI)8)D(#jqgXyRJ(o3GO9=-~GttlJc6)5HWbQ>2I zjN3_qnl+b!8gvYS!)EC-Yd;qw7dLZ<(&W^@)1X&V6FZ zVEPdGE%Ybf77g9n^()e4fy;4})V-DywBYqF#VJ;^{@ETQzN6Vl=R5$Hl4O)jQI)Q?^OKV!#tClB4 zkuBkP@IC0fa2k$S*Rsz|nt{bt)KYbh*$9xD+z$@#b@0n5_!y3;+-^aV!s>%c(+Soy z-to?4JQtnigMC(B?7SKBSkTA){2*tSU;9N3Pf-b15>Yl|-*O*5RE3+{aZJ10lIgP!v%%?jI1a2hMQJ()n*H** zy$oPDw;-EnwBk`aw9G~x9r?>Vk40(u(?i~ND(Hvr>}`Ps@SO>PG=16*GM1;uA^|vU zI;E6olds~VFKar9>TE0VAQbTw{P#U_p7PG!N|hsVdBs%7+`l_~9>-Q1eYB7TmkmBe z@*{Y7i*-L)fj^?Dd}hses;AA3Kds%4a1bT$DAw-j2{4Yhh=hJNlDZyb4&mjxEvXPh zdx4r0m?c8ys2_y0zm~T9^87eu;ZFU)rVSCSUg^%nTd#VU5yV!?E07{b_7q7?z;p++G#^CHI1}sFzmclQ!lR$oY^W!A?Q=2AjP};?Na*2;URMh5 z(w_@TZhV~aPzpHP#lJhtiBc|+XG>@?=2Fin`=H7(C|XfB zPSauFvrSSLJ6fqEM!i<^#*52ap6yr}EaF`Cj@cSA7yq8AY|tYuiBV~5J|iVsgmG z*rWH?Q6?<)v)ZO?_{|k1)qWJ)xIUGm(k=8nZOUP*j~pYYlzu*yNi|Ol(GcruZK3H% zN-ge@XHe4QP;!%+4n#l^D|NY)dO*M({(Y#@9>9~cNy1ktxh5Sy=%5V*u;kPYz}|Hw?ZJA zQPt5AL(bRp4%p633tZg=W2BB>*KKA_A2r@Ueegcl_a89q?p(zj`JBvoY4gEWHeW%cXaIg8TA>=2@X0#ipBEoi@kdR=@Y!tkDh^H(j`Y z0dL^T2<0;S@MV?|Q+bYpM&mK12<0i7pd@|GfW^F)eOAAZJr+Fj+d{x04eHr@v2Q+f zg%JG)@vRwW^koGcn>lnX(%Akw!6weOgJ?QXKH`(;?Nx#U#YKfI|OZS1T%WQ^MF_9h4O z`(rO57y(dI>tU;K?%jA*j*)_E5O@P?ALS$_r6FmSg)B-r?uPSigPcp~cXPuAst~hD z*evlZ8JdioH1*!yfm6p6T3NSYE$v5O3q=2+n|^**ljejVs*IFSJ3&DiJ+p<|mU$I; zaOF!t3Ger#*lD6)+l~)H3r5XI2u~}5V?xo$rx z5RRD0Qa4x-l-RUH8^Pu)VgemXrLx_VwAP0b2^o*T$r+D*lXWdrmv1u(ykm#+xbvfi|0+iuhZ9r8Rv%n8UR znOR!C{bIen`XHsnIM16EaT~HX!4K{ZF(B0o8?({p0}tDExkvB2>%> zK!!^@HY;>qaxbX)32g`8rv!?e>(gC9v4p=HZ%!XGm0;;c5#OfZ1dH|jt==w zy{sAYP)3WjN#&w`;1wA@P}#}U?~gTL7egTx*km}@flr##cQI$TH6XK?+&fh*$ouQp z*2MS6DB4R4d*w97Qa#r^c89tCFu5tJP@bQ6)C~g1<`4wPDDm6wH7mvTl!mCh_9omk zeIi_;0=5)U{~tIiXMechTcO9{(A3WA;CGI zG+{ZYLVA$PWai{;oc40o=(PCCox@uN*E(y&H{B$9N84Vow$AO4frkS!RBpc3Ot{z> z`yoXA;EJz7^>Zgp^(bWmq@|5tMBa-a;P_U%VjE)lO2Px<38fM?B~h0_M6uhnd;9I| zkM5%f&A`FsPqIX8cd`sQlP*3q)%VM2BR|r~;XYP&+9hLYh&$IRICgzq1FoGa^9dv4DZXr*E}M>N6H9cVx@^ z7PuFrB{m|yO0v22RZp`=A2tIg{;(C;PL^{<;ni34H9@ffD2=VNa&E1J03P3uIin%> z9^S1t4l@OsTzc$T-$9$;OB4akXH#ceVMNtMe>tYFvz%}KWxTj|&lFQPm$SiHWcnT- zjN$af)E0GT^vx9s%y|uAhOlz|0GA}Nq>|}+yYtT=;2G8%R;zwbmahkz{fHLBw}B4p zkB_eX0Z{%xD-t$@EHRLSBV5V9LobiX$VeA1_r+^5-eY&qPey9D`zTUh&)>sS>bib} z1BrtC-gy!3U$7qn0F!uuC%pcx1>W0RAJ@H(a=hF2&uipG?2j5q(GD&k;8xane*-`| z>9z}TXwZW8%VNs~y;=cNF;dXG zWt+pk2KXCNG`hM|AlM>*&Lt?n1(qanBWlNA0Y%rYv?vBI8hWFSJ}Q$sC`#nnH8_q7_;#&>nsm0mpvJ!6 z>9ca&2t0m}GOx|kJV}WrYw`~sfwGSy{O!o6wpj4&}D{dgM1TORgY>i5n z7RE@7260A5^uA6}K5$r}Kd&^bAa6=Jj#I#Bd(VmABhY9(yE=UtHF8*En$0HKbsEr8 zMTi?|%UZ=55U@Mu+@#R)WrnZ7Gez3*`8Ed_e7JqZa=nA>BZh>&4 zonAgrdKcuvdZ)5~hPrkxMK&hufpS56)lPMp%6S~#VpegKbG4=_Nu8a!bXnJf7G0YS zUEva2E^vnB``sD(@8mG+ny*ESM>BvP6@MNia%8Y^9F{(77W;olF-Mz^gQ~4%Kfw5qfMImMLeHpW&INS89 zf#Ewjli+}`SNF2Q!!EpZUv&04aT=tgPDr~Fkg2Kaq30ecx^KuuaFaTFU5GeFnqOMZ z6s{lBAsmSpQpV&K?zY@ytw#tIkhG0c@=iBYl;i^4HdPCFw5ijgN{t^t?%U)1 z9BVmqRo7BalHiUOY|GM=SoCQL57eDlI$nffso*Mk%~tJ(J|A;<#LKyr4j@ zmMe>7J{?@QJysi|)#E;E*okXc7}gLILd$jwNcyy--?dVqh2xKmzZMQ={h$CYA)OmZ zI*4%^Q3G5vu6(_@_q$7^ugI-tw<-9@NWay@Q*+8cfOla5ByVnJ)#Q?f=k2zI#Y zY87JEXfkUQu3NHY{&nh#qKQFIkmzy7A?nRq-t0}%g>1QlU^B_@xeP@1M?)XlafAf; z?SRTwZzynAeJ8L}=tsIc&7^5FRjEe5<(LJVW-kh{BQLzPWFta_twK+xBA^|2Y0`Ev zLMhO9C;pcEZCT1NS&*hYh6>8V_WQk=Z+yTgbxG@Tn#NGh1h)vcntO)L@fXLtC{jzU zUvpj^qp90!dDJ{eDyQ$}K6UhIda+dSMFXep3sH#YE7Gv_2XToZI_Mwl(KW6gAAy%W z95B+COImpFyD&5oVU9lCgS}Kf5fWiIv zuDgBTcmF~VG9~0!-fH8mH2nu}$AmP4I(kJ;#q3MSuqX2P8qn(Fo@QAlcN+>v>DN8= zG$RO-kaO(vAbkDS|F%3E{MBfKYu*KVJ}Ovgs2pt(6+5>9~WTIH>YEL=U)c`$KSoSJusDm9c_VN%@l^YO@_?KI{7!d z?VdL@qeaOlUlrcp@?cAFS;<&Ka3)-QVY;%AgUX#!J&S~L(2)XY&tSHEcyv48_laQD zwGLi;9a+)AKwXa1K)Fz}lkdPKmt3}bC*v&%IFI=E9h36=j%f?@d&s(|>;q?w)}EiB zWpg7Szu%UtoPVGiu^N%BoL?3YK3BN@GqGO2rc>fohOAp`-F8LlJOATI^i#Udp^L0l zgl>_xCHc^0C(ueZ+nC-UJZyAmM=o`GB2HJ}nUdz>3vrC5_nIUTPfKw*li0gs9`NvI ziDC+|O`um>uR=Yq>JjuY)4IPzYCc`m-rnrs+-u{@w_YE`O&_i@L5^*~HJ$o*+Hwro zkjJ#%^YPq99YMNj+f>)fR23YMrRojxeEjU zSW<46KX~GHyEps#DzTE?lqIgR8#4a+E>FdY4IFw`c8t1Vmf_zmo?PQ*s8vxpUG9=>#(U8-6DccVRlcpOG~b*?A5_hLO*8A| zr)rYo762%*yBO`c4_eN$)SBr<1>wt9QsPmn@A`HUY6JI7d#JPpK_pe%&{3bWJ{K`` z9CQM7MTI=p+w|XQ?OF{hxDUHsAErl?^?iw_TZfCcubwr^4mLI%SQ5Y3d}eSf#>3^; zu4__J#DHvg3z`v{ORN;HzL+h1K2e-$$`MV3Q{(!5HTx4=6bZO*6c3^|Kn^U(b>|Au zorXAEU2iIjc%gu_+WdmH*sa}VcWP3{*I*sp97^`U@0o(DsBD8Bm-3T*o159`cwJw>s?Ah`k@*0TYJ4<^~2g z;)-l?9%A!vQ^$5{xx&PnIHKA`GbCq!)F5(dB*6&n#~c>OG^hWVvCtV0?O8fMpEE&pHQ`L(;tPIa|?Sb?>K3tn1nj$`als@)$eUQ02ffJ1Otlj~dwEr1R{%Nx7p|GFgbTsOi(ne=>UE zE~wSma8yw&Q18LiUQGV5TM=nAF3rkqZ5TUNK8*~;LFC%vPK8lCyQw!MmaJc5ikW%v zX;?_ISbU~ECx9W|w!qWEpSIWNYu*O15z`d>%;wz+DO7-A4nQQVFZ`(6yH|Jk2lrxk z77H1@rcS&&cqnDvwD&jEi|W6kUMT(kq+b4{UjC$B{_mw;LY4%s|5Xd{KZ%C9T&MRu zQnB-lt$dKmxFpKprLLtF-*$NfGORkKncmN--x0nwlTpeA^mS}S#6agDp>{x3%H&%2 znrj;7hH1XGKJ4#dFttV7u_sH7KmlQ5x0foK_U_(veF-RgUtb6 zJC27c`ks_vnQ<%SwKca{#wt3AyWA#x@~_Im({;%)uz>J|yZe!5CjHC_;>hRE|Q1q>YeS@}!d z_W*~XmpP9`tg`9{KC%Fv>cBdd+xGR+XUMu{g4~M-@QXt2a{$WBe0tp-I&amtmvsT~ z239KVH_5vm*AT1z%;`qo<%!WgCXF~9gMOe86EIKH--yU&{z~iNw5TrWvk#pa{nAg> zmWO#RNe=L1tc2+#SJq2PskV0tkAj(va#}l95l3jPb&`Du*?Uk6C-BT^=PWa6;Y) zhnjJYW#`+`sg=EHx00cYqUvGx&0rD$cEvw~f+2q$PqlI9-(Z*qJ5!-6zbEaU4@_Gk zqMV}nrPg{*QH?$4wKZ!T1+A=s7C&FjmLl6j0hH?s|voDKiLFMxQ%r{v%$Dn>clzKGDSk~K z?H!5DuRBr)9kz}Yl{#IU{|kPxlD>k>Q*Nn{Kwkm2c{`U7wmY?C4~96O1#8V`Exx+{ z>h6{v1>+AlfCm!-m=WrZ#8nI)lg7pa3wc0Nc(RsZS(*faW0=P;rm_>(wAEr5J^ zos=>rd#zs)WNGGn6+D(@01NW6p}D$VLTdqRI+hf+lwpQ;^h&VuCV&6ST&+Lw%UANy z=3+XG$6Ro0#Zp5}c3$^#L>4#PP>Qyb@9pyRRKUIa)*)|r>`NZd19E{Q75-eL76nzC zt~Y>>f+b$5oh}2?8FW8h%%vSau2O1Gs1vLXX$nx}+z|McVU_xg4yCt&+`=VA4`>0Z zVGTF5nUO+~R(e4RUM%k2N3&IL40`=nCI+!?f}i9H{NX~3(0YbB=bYShrxfor>bAL% zD;+ui!@g#r_lMsDP3>m4-aK3WZj4g(EA=+_#y1l}(mZAGda zA`p(ayjt@UPfdw;^1{1cxhYPJ>x$<_^Ja9!8oc-rUH~yNrcc-GNXeMIfTv_A$_PBN zFedC7vsNG-Rl1>Fuk_uj5$>rR)gAkUI@#c2?_@)JNiV{qks-{!3hgI=8%^S zuEuP3>D-4Ok+UB(r1bcgdAgS z3HI>H3j^4g)#C+kEc`S@V`6QJR~CxZ+@YSqV`Dy`I;WIt_s1D3WOEfzd>YE@Ll3RE zqBBD9pR1izd*VEW{c3A_w;hGB84GS@t?bg3LH5hUYDKc!-*!<#k{TAzl|PrQq&6{lpDP7kaxkf zRE^w2$$8JrTb?&kfwj}t8I=}&r&PaVB)eYvW=xJz0^_w8WmkXCzs9{!NFZ9~&J=0g zwDSC&u9~1*7{}C-{oCVI$6ALcR$yv54t>Y(GUobwTZ6LCyz_Z?FlWCA8+nafO~$X& z+X?@$hPX?>3)gm2)BO2PrSOBy`^tlX!h6`w%u{|#kr)>l=B5c9eyej#-kNEC6)S^S ztcNkjdFiCDgkvcO(x8!7tZ+lxk<6o?OWiyj)E>iX`czrEFCId2fw?ZyfCtGfxMxQI z+SQ*OrC!@hDK(px|ZQt-9a+M zS2k0K2PP}VdIKfDX?&(RbTB1rhlE80F-e`8WVmO+7WE=T9vDQaep0j*N>Kh{ZSPac z9bI!VL+j03^g6R25KrVxpiH>y9@hhhfcv+~PK04`szfkW*uFTisy|I7;8c z$$?(&{>}CWWWR?yg%bj~W-ehDbDCj!LG^ro{fUV+N3$VntuiA606}3gIf0Ye_88Et zWeM|^pDeDe4Bg+W)NXsG!a+kv3Nrnf?j?v7)KKqQ!E!qwHSx6ic2||)H?^5iN*rrr z<}K2`O$Dv;gu#fHZooJl|H7fjFH}$i8AUggxXjFs%*uQN>$*$x%^~hx7#Ydsw^HPkQF z=IimyQR^*(HgnR`@85$?q{^w=J6!;(C47wa$7jf@JC>p z8jME+JntQeF{Pi*Gv~bto~QF2|DyzCFt7XixA!o%dow96AY%%!Bu%B>P~bD!%4o7; z(`@qh$(9GNXI?N~0ZKOJ)^D}dlfL^2b!Kdp-kC@3B;;;ym*Wn}7Rf-yfZ+I7q5qEV zdD|HODG5@UW9@)gjmVP0(q8ANx+rAo>uxS(XK`7T)!gkc|JpvZ!*k~Raqp~`y4mJ!0{FUK?(z`zL1tG!$^a!b?mvstLNXh z9eSyFl@_W?gI&=_$-guqr1-J2-BA}PS&oACa$b2rc;<+NN9k`QFb@F&LVa6e#unqT zZ}LW(=Up zW@!yS-{i8pcra!<$N;|05EL#c5c)MhuGVbmN$PaY&-{8BiXWN^sPZqxbVWJnAXr^F zf2sZ#WOny}^L)c_4ozz|=?L&x~>#uFROY|enbRUVi2Hx`so85z5>D0C90IT?4H33RGA z1@}pWE3@S_IkwWIIDnIGf!pJ$GjwDC%dJigG3yD!k`)QcWvvR+GEmZ>Tn@dVeZ`xD z4O*0N{&qIu^f7$<66@#wSSe~zlgOM-7b#Yi5E-(bfiX(b6#YqqoT~1_i^PBhzb|Uq z=LP+&K7;!E=WmtjE%W4Ed#e>;FG#NT!kuDy_$?yC@q);nF4POlJTn1a5C5RAu#u!8YQ%K;Tr>H&7=<9@ceu6xxE^rz}Z(;k? zvbhMTa@rCbv>p0Flj2Bo!12OTWV6pdxRf*Zk|R1nO46;L;xw7I?G-^=C-J6f$l8sx zq@G0-%NPIlWj=c7Np=UoMjEbHV24}0y7jQ}3Ov}jCQa`gAX3N=k6zxxd>yf?yFcv^ zIGjVRV$G(?>@x)FNUt`e>Tt)foR)hqyXxmj<-#211ZXyL5V>U$#b*lfwFj*OL<=_R zMEV6dJGC@DxBW8II860*pJ2@(9MM>z!mepI%(fQ_7Zt z5&LYvG>p53D`_`rck3x{h#~SLXF$c)DD_vAa1KFsYnmAI4!r?g-|2HY!YcCJo7(6| z36G&)stgCqz<8A8AOoRuP-KEP_{>pfR*-j-8aY!zV%`T82JKml$8NzNY2aW`8=%ySJ&4TnS*)J4=G<3~`g-~~FK7VSUS2f<{CNhp+4PC4Jm_?vRJxCt z*Uv-ZmzM5Q8sIk33=UVgzK=3E?MHXKd7gSn#$+~j$q421s8s+1aLw{Sz4DRJLn3?q z?wrP=yUm?0w*~mEu^%l2I@l>(Z=!x=*$njSdeCZT(vFkt3W1idFiWimaihiFbD`2h zvd>P8G&u%c_MRdn+|qn_p&yn=+TwJ+9_DhcA?uBe4Tb!~nha6I-6>Ut95I}?h9<~k z$F%L<;37B9avFSVi|}(4@05=Xbq5`T|`W$txDb0aL%$TPV~# zg~_XsQ>x9>Yg2?bC7rLAw#diAD~IkGsuc{U_0`-@(Pc|0)PXW&&~12N+qtL@+PlV& zE|zO@XWXr!owAjyk& z-Gi4UD90At=u1R(ABzE=7hoRi5Oc`>7}X=cTx;>!OiAFY$=miV5;flRrGr<%K8qi5fl0^SyWvsMTZ4R58xqdu!xq6C=Kl)is zi*sM{e##M`YU4fDvHdz=CHOb78IgTN+K1aMVxlZ#bm6ZPnYt;ykuCiZ9q&zM>e;gTn=46Jr#6O*+P zpr3}|77oU7Ztqka2lHe%cRx8W4lxrGrdB$bNudX2yGgm*N91(r*8m=u#Fkkv!}4~s z96jZRzNOEvCA>}?D~y&G09HnFi@cE;>dxg*o=y5Sz=4y|qD_N|OT2G=seV8hdkM`y z`#o3BNO2PO>5z9gf4CDx3&xNQ@NY48Gm#S8Cfrm4trjIh*x&Bl}o*z#Z}nW_$f{^?D@_4|1S3 zFdb1!c@~lTxIr(diF?_1Z8aVYLmj_2tX6M@m`!Cy2={ufc&GJ)@f_h`(Ays;-C{H@_ThS|9fMLUFJbN(wIxyhn!mj9!$6q{l z^n^TtAK1^$0q0AUoi@PVK$pSAY?b38lGy-!tsJKo4sAj`v%{m==h>}zN3x)K(TMiG zOTH+FQ~@CSX-0P2%NB!VF^xV$Npfh}Eyrd=j;D4+Q-zU!uwND)E>P~ScuMfW(m|uy z2$Z}2H8tWO&yMU2Se^E_=YIaopL0UZ>>gS2n`pODczN6DSyiesX(nWBv}+&d9kOIy z>zi_(zq1H1aqltRfaNAN#J^~*(|P4?-B}cTB}p*GtBsAFrfW>B7#CHDuap9yCR=f= z21;v4rVUcy9s*s|K8iB5TGO@G>$2hLdd(Ln83mrKir3Ma>EFP8n$*dJmyt3L2M@2( zQ-gM8>Lwc-l9o#gOF#6qwlo@_m*sN9eUt>Bm6HTzHVB`#%VP$PhpjG`sXK>QzO-Ph z{7As`Z^w?XQ#L%F-@_5txcp+`Zqq&boGSiZl|FxuCkCsuW)7Mm*~(LLKFWaoq#N(! zabfmOji-*A6ivrRim*0XsBo0cyRce+dpdIXgR<SY(ImZai&NV7P_M?&lZ`P%%)b>|Am6l+p!}Iy7uwO_rQ_+Y~18E(0Qh`EZIl+ z3z{GJ0ieWCiJvi&2qOjUa886ufGIlzDSdrEf;8?{;3bd9X>OHV^5p_B{^hVMe1Wz{9d7%p(z2L*`@#^Fabl5_A zFh__S2w8T15)bo&$TG6O1=*?rXLm{?o__h0m6|Xbr7LT3%rF%AcLK6I zWt~;;6VQ9zbm;(P0%ac}oM~6w$B3<)CcXd!HueAwhre@er=(SyS*`dXs-G(E(hJKBRZ?&Dxo^)w(Y9MV#>Zzm2Y=S#tQVBll}bv49xj>FUhnlmrn3;Zq~ zx;jjG%xuWgGpy#*?N`cgLb|m9Y^G=VhlGqBMOtS<0Xfga4TQk(nbH*e*n}()LzD`9>Dg83aV@C;$IMwOSu~BZ*F46T2>DJfV8b7 z@0Y{br!yYggIv$95pzDv*-u69lafN@#;NQ}4EFnvfd@qnzW>d0C(*~csnyVDMC!#w z-+V50cfBzwApH7m8_HmdoCV?mx*nUIMb53|O0+SI8C)K1UD&!njxsNINuDoGNCpJc zs}X~07_gxM`mn{=OH_zI!JTu`bA%A%auLGoBZ;{~9ADA$CsX1@xG7+7B5M3ADJU-t z$mHh6g2N$v(WTNb;l7U0Ji37EZE6=8m!{9mr+BBMZ^yF1O<2JvrSw3Ha;*bX^;wF; zXYVitDv|hx+$zDX-LpcrviyGeNbU{jVm2W6BK2AS44h+1{1hf&7+vn=%68m-1bDmN z`M1nvf3JK}8_PDmKmXIy z|EH(_Pf!1!o_@}l|9(&ZK5y-8rncv=uV#PiiGiFPL%yF5)NK#_jhZaI{>p!anv6Eh z%^KmQ{K=v?frQGl8!)aJi%9Bv!A1QVfX10e2*-IGbp^(J5AsAI_Jdd_j4z5$NpY?n zKu&YgqFYK7n+T_bobmyGk78)`)*4-cjT7muqvIq;RJpU#U-i zQ_E>KMm?XSY5hZXli5wfgX&M<@8NqZgJDc>w6$#z|Om1HOM`-ulr>)%z{rI4q zGD9<4da``su*gX$7^r8Y05Nxa+yJOd8f8}IC`;LtB8RLO7i1qO(ieyf~Vi{K$6PZv>j6) zdv%-hk&u(Ksj{CA3HP&wl_sJJLQVfpSl06KFX#rHEvGqsqI`|E@D;+eY>faK=z){r@rcSA_0p*I~Tp zG7vUA=Knix#$ZzMO!_RVIik}ap`{5|gSzj+NTpHF{uj16ko?D~nV46%3dpi(g(a2< z{)L#Cqx>6U<_kc~pj|FBBFKfe91j+~;IoU~(^F2-c}MsBL0!*XvAt7aAqe(=OeA^^J^=@J}VEv#HR`KIy*13+py2u2jUNB8{;=U~hUmEVUjBTaTaZe!a4G}I6^Q87WqYESx=%tiGs-m{1qZig zF4k_xZ_ML*pZ@XnISMJJVSv^7535WQ&B9sjH9&nvWP1WM`qMpaAc2J-_aGm`Tg%d{uA62q*wwZ&qF1{;eI2&cUOLDR9hM7Gnv3AE*zfJkh(eFhN%Hnv);T-1s5YDu2KRNDL7tc2F8+WHp0_|S@LkP!b zap`hkQmuANQhQl=dXrVY+VvrHxkab9Q3j29P~hSJp9VPb=d)53|K!lJWIOM{e=5M4 zK8wFx{R7|_o+2PM*wC`N-Fz3rKLO640OwDD^C!Uh9{_Ns54h`2GDqq*OW~?@-uVs7 zf)?gZZf73ThaxU^ry|ohV8QozFkNdrtbsrk=p5R1%^*)E{0_w}F&po>)l?f^0dQjB z+#pJ|PVO`>$iF2qN#{0sZT__{lE5HIDBYg}NflL10;Kx^EQA`^!9kPi@&p_AZfp+I{!+O{xR{wL*Z`ZxBIHj zDPw(p8Rl3KX#3aSe4mo!n%PBk$oxs{96K*`o-ti-O5}qGIDi%S%qH?y>wSo2`8qEY zP%KYyORy#xCp8$)?zVEdr}h@h-s~G+%?@eeBR_#fbUC?ISe+^iJ2%Ym6cfD!pGnSC zl%)Aa92|gwM(F-FtM`!!(*?%lSeIv26*>_6l-P18}W0(l<6+p%|VgXN}S ztogphTu?J>kq#8-a7gM(Ti?16gu4%90?}hl)Y%CFKiQ7?z)v{_rvajNwM6qPqo~Hr zi$}j@tp{YkVUz%w28oc;Nf#F0Oy^SqVFCSO777lfmhKup0F_wEX?86Ln{mOls=0`` zLED*g7T9)f1MUt2#{)?-2TGa|gP}F|UuUJ%xr6O(o-GHXwT|1P zqA1x>49y)9K}FE(IpY%P@dE-bL=#1^iGx$H?A2{{{z=_zOG*XsNGP?{B#!sMCDc0j=W0CDS67E zE7@2Bl}KBW{PcDD5J*P@T;iGiBN8cr{u?nHJ&i?FopCw_x7vBkTst7p@pr~RiyDdh zkQ*Cji+?ct)&59D!p+Ede>~!J`Tsa)^NiZ7#OrQNiBaFUjMfr8-A6j|GAR}5*QuC? zX}`XsQ`*qsUg2~me9V3I#*d&?0m9m`E7K|bOjyEZv+oq+Jftb3z(xyADI$OYhz0;_ z+jGP~=S{tEeKg1xG7t(L`t_)-XVGhowJFPL)p&vi5CD|gr?fQi`fE(^f8c!w#4#|7 z&zR<=%!@ds*^~#{f1ovgAZd`9??y?g=EUL%)20HwB z9e9q*9j8D{PO5c*#L_;8hpe|Cc%ZqVv4R_UGZo0Pi+}m>!jr2`Ub5rl^twcHc7e z&5_>`6*1oLP4XnRyU)&>k*?Ee)t-X^2mgPCD+9iNSFG>9S_t3d?|lFGSl|EjImBz_ zH$`)Nxlm39#FicY$FXH$QYQiceu3@x{AcmYS)-t+P4&L1;n+VEx_q(TRz17vwRPgh z>zH77NXcdZc>eZGuoMu&Z8A}+tGNO1<3->_#Rsyz(F)k3Kw&YJI336SqAR<(MR;vm zSB&*j5O~0CYsQ96MBA|e64B^7bXgz?OJ*%vq_XeOT~jCD?`ba9VEBoj-2wv78q*9t zW-+0$dJ4Gh?{x zXv9PicXUKJkb^V~)#1ypO1!b4cMEW#nu(n>b*Wu^M zLD)OPe!xDnNrSERd=KZEu61fTJ?5t0_#oj*o#mw3w@wbl@UXU;Pw=LW83l@rzO?oL z_P~oLER1f<*lMeUP2lpV+)JF^NggpC6`4jUd-s5*im~to;<=OhCqDyRJbz{`|Czb` zXXf(1$IoOktv3Hv3-Et5f4S~p5Ox4SnK{GGzqQXypQc@|ZLWFG)Bl-Y_Gfe6Q`*nr=CH95q|2hGngwk}!m5|)J5n#?L zvsEt-Y*rXTIPjzer}C?KvXnpLwTYC~w`rANMa~8i*i7Gaef-nH4R+nAjE~<}D#ohq zB+VE!A4%E(&U|?kU2iee)jZPbJHhKrq5S#*Q;=uw(0k7>0x=tOROH3!e8gF~;t5p4 zB6`8pQ@Jld$hhag_eOQtZZ&JAQtX)W%2T$DhcE#X2}w7p9FDcu8?j5(DQ0TzTY>B! zp*jqQ%~T8T0fa03s3Wy+KK_pYfW5#0_~CLcr^EG=+V$R&2 zB>&3$e;4ch_c-%q{yXnKH`e<OWPAx6XT>XYc*nr+{8V zRiF5TWVUA!r2p$||1!XgfQa_m@Lo?bzghVN?aGf?%_`BYmFQ(}D0-CqV_UJyX%a55 zjd8w;0i>0b&nqK%K=|KXfGg5gUgf%^yHoitGv7s?5RTkOIQd|dQ9Biq6{i2UMwuD+ z+e?xmiwKp!Lutb}pg?#NENozh14&?A`3&A`U z<^Hsqp=?gq(#9#?077?yN+Yhefw%4c24KO7a2#L{FV+9(0BHq*|C{>#^P2BFRO`EB zn0P&$*Iz@oh1f%e@I#`=zBQ8eUKba5^~va_99~$b`W359<%p|SC@cElz<-gW!r|#w z00*T987%SjAY-aU&D=RRrGOZ5x2u@K&r)TM?vaQUK1?UtmUgOS2;Z8#xowFOUMupCX z-o>d}H`i~cq127h&mTd;%QDF)K_$myTmfu68;8k~RX%q2L5yP{4oiZ~;~DWNRR)E= z)}k$*P?jq7STU#S=)~B1vZRTnvZRKPxx9}lt~3Fk1*7URM1ZvCZH1Smo+Yg97Td zCQ%A)n57*85M-`O)JPW7C^bkPiE>_>n)yh|)zM*ou^jsu>-#MD8Ve(GJGn6ew@mbi zTCgeah!^mnT!X;Q%DQ7Q+4_|}fcTcgs`?t3`$w(lYJF#i=o2nZ==J+CzijtUjRu7t zj!P8bTgvc=ZS-mlEQ8+Tk6KT@&c?jR50%#~kJm+hhT zs;#Ne$F_M^X-F0;VyAcelI;ETVp_I*#PCTR$l$K3uL=8WsR@60oGhmFQ{V9+36+-b0M3vHcOYY%!(cqe8PL^j*Ysm@vzw9bM)iDd7m@pTx1I)|ui zspgJ-@hq2iVW0EqHqz6`(*7W5;*KH2mKGW3&)kDNr|7(R%`_;0E#ErBvLaDC>sFGB z9ca_x(aW{smf{>hVe$lwR}s^-FVUSY>eX94R-j6wo8CntFY%$u*^@A|shpuFRm`!I zXOxSQCT&N2it6z_WWe&(aeocA*?cqJFgBC^5=Vx(4I2>op8&6+ODodxhOYuXJMB^_ z#7iAi=kFOPF+r2P0ebl~1cYcXzqdSlx!n|_i&^2A=u@3O^#o6a>tu*0!qaxdZYk-P&(G7ReP>eAhLH*P~;! z9mjk*-s_0<>TXiz=Y14Dtf$l|cbO3yIrCG9`6m?>lO4x;7Uv5aIb))1SQfdKxS0 zT=tEbtrz58ZTJ@%Lo(KqmP+JEtqO=XG1qG49)M?K9}cdxQdo{#i~Nm7+doR1 zaE5h#HbHuk!-}3-8G@VXhf*%I5j){naTXO2wsF=9#1gmtCq*{gF}+%taxEIb@&OzCgt=3`EdF;?y(fPe! zfMqXIA1?3kxj1mY>T_DV75F88M|bhN2=nIcMiUBkA-Lrt)-NV9cbq?($kuq4>`Ae} z;2=!l0YsQwp|JK|R=(>v?brP#?*g954CB%*Htf3GB3wraRWk-9KM~_Dx z<3I_D1{qk@-P6VRnG;#}{RarkM+71)lZ2i0@$DCY!)pZvz<0C*mLd?2;mNwE@Kw8a z+)E_Q6d@$EOz>d;No5$vF>7@EMMOs6=kmf5Q6|OwemURMqQ+pu@Z;F!mncvg^RI|q z{@H!`v-|Sjsrxb%Jr(-1`|@Y^<)81q7o?ww4u+G#)cC13AsM#;SLD|1B6&;ukZVaNN| z-WtYqJkV^#<*fE4zJ*gErNHSmRRa~m1hVQpP4IF;8_l7KGNL@78eDxsH@9To!Xnc0 z9oR;{m_kQ)xYhoykrU7<%ZQEJh|qhs`}ySxYMD=nPxMo~ z(G-_~C7Gw18JJ9rR%3@~XmJrt1@5HzPxX6Y5qg}O!nF$yaMN+x0_{oU3NDg7s&c3hgE$#uQ5g~eE!=dtl!$jub%7`&G`^%&V&4>!u{6Qq(fJO6 zgkKXEpgE7-%YLJLMS@pube0Sd(^Sr5=p6xuzP8GfK^4 zyL{Cs3K{0QPedmV}1Vj4@91<&iwUWgS!a z6aseJSr?^8b(cdRloiJHmY`ihnTgj^W~u|&?G3ucgM$*5byK(47|}&j_^!fQq6M>y zS$DGhQ(Xx!e=D`Ca=y`_iP8-GdS^T)#rO>UvQSaohs-upuXOmM5NWh;O#Oy?jIURA zt#C^>jHyGL?>gBtkv#w#dV25(677~5TeW$fR%NF(u*`=MmMz}T8`6e_jI*C|iS7c( z;Cy=U$#$C29EU9n4mQbww!TOw9>?yl5xJI5cz<$E^znjT0pohs@)r2xpUIQ}vwTa* z>`1Ebd$gA7_|$IcIUm)k)w%+{E5n9wdqp=L^K^S>#BSlKZ+n~~Y)!Nz0fk}9aUx0< z4}wXtA(R{GR+;B=*J(j85mTdkug%L%m;;odcTul>B?T3*h#~R33bt(7wGSO}%Hho0 znMoxKiiMveMb$tF2rW_xqM$uHf=@VIT9eD%Gbi$-`6Hv1TA!+%Zu@GC8Fqf^6%L?C z-`OgO4rjs=qP>F4EO6J$ki)0$LhgzwgaF#`4v_Nkf(~=n;^eoJpPecRG@P9 zlLSL2X#iMB#oc&5pwAN~*E@P>3fz|m)$C{${TaF`nM@S^b{qh7OftgT`sVnZGu`}k zcBq&bYco}K_>#b(!?B9Jc0u!8Eq9MnV?=N z4B^MWx1Ny89tCILD)V3n+G-pIS`EdQhIw3^OqkYc<@Hh%Mb`GUzexxqx$B}*XPy)7 znQQMqrO^8FOl6~brYNT=(XcempYI9?p9H1$*LhX2vJ!22STMhcT1l7DrtW1X6hsu? z4w_W5%pI~ZL9)6lNv_`!RT+F-Fc7pEiX5LqDjvpLqHDPhGLrV@f1|{B9Ce~b+(w{B ztv^Hm|AWwf^$1RgEDfj>w(I~4>0}(}xF1)~7#C5a4nwt*Va0Q{<_mrn*VPhGB4KT1 zo1I%F;c^~bgiqI%)m1E6++`r7LB60C5Agkd9s1`;e);D^|2-#<#omr%v3H{8#yeu0 zx0RV74zs=lk}-b@{BMCpud1fF6kHASy#FEa-=gFAt)rpZwF!QiV9L}(X$zLsm%-~d zznjsB)yVG~0<*v*`l%>`39b?=Uj$^Q=boW{_0k~e&nK@E8Z>@+>;;#)-PaiuTOr8b zc-tz6EoRMSN-oatBzLTs%W}qiNMW-npxtGw+@d=fHQqlM65rrTPWa@0V!s~*1za=s z5BskSO~;7wuqSNz=B=n18tMxOnegABupe!T04XVRKhS$yn=UxJGoj2y(ul?vTbDI| z_{984++8E5kor8<@DxoHX)8YDqsWcG2c@@kzeWfL)oL7wkLv>TpC&Ap3`tQ$k>6jU z2Fo0Y-eOuQSKI5S;Y=X(qfxKE}=q@=O6rN`vhc3qZb&7s&p1tL6O2bHiqtL$grO#Ol6{c zZp$a-`bz$Zx5ACB*-qqI3-o+kV(p`^7hIMoKHg#XP3~s=7F0|2au~;X&n*-vByj)M0({{lgp(nq;$psi>!!;?H8xUMWLV7=|_VYuh|bKZh>V9pA6AE&`82rE>Ez zwDV^X=FcL`e@+qRQN71uE2_0{mTV%6(Ufmn-5aw8u=Rj9uI6blc9ne75{JqJD$2~`;2Ya_kn3cUqgV+?Z z;&FudoqJ@44{DEAe%Ap8;l70^`vt^Yd{}tof*D{e_clEa{}Csdxmd5<8}E@C%YK4< z{to~{4-`oD#BG30j$Nj0?Vaq2^kkxh?&S$r?c8s7l?ob>8h-DAq}^ zEEQi+4tU2$!V+3J?`?Q*7y(Moon9OaiVz8B_dr#k0`QoC?QWRLV59os8(AHfiAO%x z{FhEqK|!Ub`93#9$OZm!dgOkv>6L7h!i^*369E3TgcN9@l`fp&otVJ%7YCt(fg zzEqS#L)G#N%2GS#t>il;I{)V;sBba<=0!H4|FT6ki46bWifmf{`9(JOE_rlPqNh}~ zkKjqK>Ngi=E`W>TaR=u&yvn07p~`&+?8c1$Qe?yPry`rhe%=Q;nxGxisZy1xYvr^1 z!kF$F3oAviH-g>waVS_-1Xj^lu<1i7;Q^d&I-=Rv3g7+tJ7f^fRap&})X-A38N zQbfz2##bv4nudAZoNq^GY`zF2ig}3sOBdOE3$2uRy3yoHqa4mhIAoC{xZ=VP=P;MD z0B4Rnd{29FDkCp*SPuOH#za8?J}qGI?CD$0_PodS@jQS7sEPA+`D!pF`2tA)UKwbO zOemVamhucAl63~Nm->{50qplR`g+}=pO*1Z2lbnigP@5Mmr$@VQzm;`E_6OLT_(H8 zCwM$(@$0K931o|~MT)pnRORYlA*SKe{+gJUexpiWlLiZl`ad*4aUBm(f&XCx)X3h< zA^b1$(rTX2hLQPcL%!E>daeJ3I!^J^H*S2wVWZLVYG0sd$BrYvAq7#L5F3QYfv5*` z7F?fe(=)4e7FEirJ;oBh@lIS05FHSGrLB=;0=hUi2ng;H;0-4I6;xVWM$4vUM|4P- z48w`d@ul>Pr-2e|R^_?`u4a-#7)U}r8Mu=(xA5f<4gQvrcCY(uZ4oPIpn5VU9OSKf z>O+wxx9SDZFeGAM)uL6UEHcU6JTrIrjkP@U5)}$#ObW z33eDlT558KGY-3z8SYpU2jRqh8=ak26-bSx=GBv67dQUcLl{WrF4G4XNIs^z>N@B} z5(S`*N#@aX!8E4Gcg{1FBDpP0N?2dD>gCJth# zgT0yI?Yp%zklp81oq1s2C_O2Cyw^!dd^`&9%iwQ%C;PSK^_s%rSlQie_fH77g{=dm z1h3UjHNnLCDuyqq6hQ;VtT*OU(Gz%6s*m$Qx~SsH@pO|gIVlJE65^S%mG1J#8qT{T z+xh2cbPnD@M}7z?;EoDC3?dTSc;IpHXQ0n(5gxDpHWRIU^tcK3FF~K7yXhmPKg2}) z#`{+Vpwz!80J*MN9>q%klg(@~zcI7zTtAxnLl0-Q3EKNERus2Kqt3qX!v648<*=7i zZZ-N3y-ze15f71y*X)`J8PN#Q;1N++eI0iOodR{zk{lg`XRUU4FL9+AXf3`n2;;1l zFFw%v2a-6ce?5s)@PkR5aLIq;B#!(4xh5O94rl{;&pZBs8Q?Uu%X|&pl(k~UA0+W+ zFv%{ei@_ydn~iS|x04>t$w9{h{($KYm&#OkZo7RBZ9Q{RQPc%th*nHyOLU%bNyv&$c={ zSyyX!(1|JWhMBaPgOJw?)XEq##AR0>bSKJe?|G~4WYx8cw1laxkT3GCfdN~3JT|w> zd{b?oxH5h*CqWc{stx9BLWJbyItAK+cm%=rboTW{)~m-yW35G5PWTY#UXUth5gm5^ zNpVYy?QuU=QEI%0(v~dx0d|%+k#s^pb9&Q~`EC9cB2{(a^NcpF0%w>UC=3a{7qpGU z+~;K4GIn!VJT|petdM*V(5G(KL>HE65<`xIMOb-(jQV23yD89YO0?5je~PU_Q9w#V z$?}a$AnZ*v{vOAm+}jp){ws+x)983}7B~rc%^$n~HDE(4(6Ud$+HcHYt1a3^)yjgnob)bwWwzMSE2m>&lXVN}6d_*miVTjT3a@872f-Ucr8*Q(*%Z&Ra)X0mt zjH8ex0gldk{_F}|G|x(w2D;|uS9XV3AYLC^ev|Fsb{po zz4K!27X7MLz)Mi9;3y8Og?ZQ3%sjulDVkv7tC(2WtxV>p4%u|0i&fR2@TzXoq zY)tY6w&PL-e|!sUrIrLRy5;CC^lH5zddmGj1dvw3^?#_;CJa+*^WZ7!m^*L9q@uU#f z-6#mhWsAt2U>73^=ucqr5v7?~;R+)BGEW<-oS=qlJwGyQGz#}jaeIyF`pd{W<&mqo zW{mcAvF->?W!ihRZ|3~CIhR4pyG^dd^XY#RclWaD`_5lD;1pVZpX4Zp3x!p6j(0%wMb-DKXAi5x}Fxn`0}{v+4hJCJ_(3_Cc1DgvnrR|hcO=(Ec?lA zj7t-Ky3)L!7#u?WsRwHXz|0eea={#p;CvhgFOFR~NN^aavYCG!t{6R^aI{^=7NLl% zXhSZvCe?fjW(E%i$#V>z>!Q1snJ23~crU8$Qf=Ssh3=^ws_#bo3NKkVBKpg``|H|+ zp!Xva>+uYrpZ0-^nv^*~x}vgISLxIl*uYy%8e^MgCo5_5c*qEfd0ZTE8q69~A9h-E z6hns2B>e{B?CG^{4B*ZcjYPA*fj-;o>#AKk+Cm(KG-9X%#co5CKhR&pb+DAg+rOVS zvbndg?-F1=s}yY%f#Hlv?!Pk9_RR}SQ?Av{`skSgGTo*6-{R_N@+{TV!3SEDOvD*9XfHGgB2 zQFU8e8T=tH+j1O{>LrxQ%=Sw=oJOrE;tA`q(1i2gd!t{KkJH!KRYat~1f>=Ok1;$) zP0Q~3^_JrMpqa4A+OhTVKNpQg{Tnn|3ESjX$~*CFs+%Mi(;lR`t=HlLUT zcR10}NbV;Qf{YK2U&9)UVu@CWt^xExdLNY8+xwU+r4ik6K2m2 zQ<1kyx}!A$Ix_iVaIexzNSTyYb*kQNDAC%{ZvbZU9^h@+D1MjMOt2= z`%|}q+K1D>20FIPyr@ag#LL9nEVrwCCzHkGE?^o>JYHcS8{g8BNs)HJZ`!d=$5CB) z#X+5FR-nwqMP(aay*^C2#O1!w2EG2qz%z0RoqE2NnI*EYrxR?EA`?xJ&#xY< zR+tE!vnmjxIo^&I9dAda2NiV2YSY`6=_5;@rb$vG<}XSnE=Ls6NeMBG%xmjBzoqZ* z6J&8cEjZ}VP2*8ZhaIzaV$$FZN8Gata+(w4ccq+{ZiTWE*t;F_+P*M40!aVGT?#np z!A|VIHN{_liM|Sc6@lM4K+HZ;T~d$Ze5F|PADDQHAg_te@o9Q4bTeS@ksw#%a_g)EqFZ0;HGjV+hkCMl$K zth8Yn(Lm;N#7=Ha8Z%sw1|^&;Pb#;pWH_9WPyQm#*>;&)h?Y7g>X7F+hjYGU(*$f{ z{>HqL>HNhG`S67L`E7qHx-rw?P`Ymu^E|4@V~L~EADcMUT)zmU>5FM_Z?2nfjwU+b z=@CIhuuFSI-w5Y_(Ru&9inHy4sr}(Rriv36vlkTlz88G?u!#KYB7Oc|+0f@H&i)H z%lr&=y&k51Ho!T`>6?`AI-AEBT#N>9gTC<{M`XqUUH3$RKB66xK7*jcgAAS*94}F> z$Y|69y_j`3l)O9>iukcbmxDrQv5HLNGwCSnA814S(_QB`juSa)wC~u$k$ee-{ts!z zHg}QcAEtQhl#D`(7*0)(l)WD=jMH6pZ}_KkfK2 znUMV0&cdzGsgpTh)W$^~RxUjplW_+aLNT{YbuJSVMh65-g@ye z25MsUc?)SzV2MlEfMCt|1?p_VxnP3v$|*CoVkb?naX_4F^nR>}(-E7COj70B+@Cr) z0mKH^<*UV5VMtTJEiUMN!;O`BfJPe!5aci+ZfE3NzSRrPR`Q#e{>`{v8fE*_#NYoL zzIc&}Uo>EEIlf@aa@yFSF+)niob^|;VU$Yo>|7j3;xmP3&GXQTrFf@{GzYhuo{6K4 z2^*q16WSdi+$tR^GH(#q8cYP}X9_Cn4m>ymfPRKOFgv;`@XMsq7cw#bj3HEbvNsb$2ny1vyANSDMzW6p3 z;&D%sc)HTvMS?=%9R}hoC6caC=9BkUCY*6(d`yEgZ|v^Q5t zyh5_#Ime_?VW?iRFwaJnL)C9fXpr0|l3lqNapQj@#rW|6et^gLjQbosj^|+SYp=&w z4E;>N>idObm*lwhHO=J0v9N>fF-Ka+^9T(LS4pvp2Lm2^y;>t9ve$6@pyk|Gh={-! zOq#E>8o<~FR4fGC72TuwUH%;W?4yI|9q~9EKY6yJuB1H#4gcYDv7HsZBNJq` zqIJVEao59~ksv9(QPV+?<4c>bGqzQt&42FUeaLFYz*C;aAFNBa}|jsx3cz`{QP9%ep5ilB_; zX{lY6KtlpN_4XCV8A_20FD#m8$j&P{ ztStFxSVId+n$~ajUi>7K_tt5vKDkg89hJMf+*hb#?wkczVh*p+)KAh%_n3`C@`z-a zTEoI%c|bjZDSp}qH8WZdr{}?JGR#4^vj0(%MRQ0T-(8e7VPbbFIXMt- zS9S7+l_@`jF-NjDa|^wn=k9kh76W+Jo8Y)+NcyGREi+8K%~ALR5%ukNBZH#3-P^S|qLdSUrQE^7HMWc{S@M*nyuc{3IiTg)kpByDxmD zcWNwsiBf$K*E^$);Vpa>TsFQu!xkMFw87|uRen2TL3TT>2RoRi&9>ru%<2=LmriAD zRIr9S#fW~SQw^W99Jr}i!PYwesg5Y%mVT}k__WB~pFBUef={*eMizu;{Fs$^AErsJ ztHa*Pysre&!tTcz^1P;LRh=&}(oyFk^>MOKiz@BBe#mAFu!~7nJOs|M(bqO@fs>{k zn`wtYXfu^yP5Cl zaW$b_FoLA8u9!p_x@9BR<9j0(&+Hx6(T}>FhMiU#nBbUVhyy8tfgQ7>7syZ%i(TQbA``;QGOlO$(-w%_ z*pD(@Tg4OYODB34hpNr=XX?KfY37DbA6!Z1=rirO{s%8WKzRG{G{fe75@P-Z{CKza z&!Kx1oR587^{oYiw@-r6Xk7_yq;{!s*+=0w;!0JO8!s4UM*b`e?P%8FpfMB^z=7`9 z9GU$9L0}s1D7tyra<^o}^-nNoVPQ;4>^sc)k!I=C&dpurfkhxBAzCq&mjb6H%??Z<+~%PkPQlY?Q@8m_*F}KKSkWV|5VfLKOx@g~MD8(coRwP^}N| z9{P4^5Q|R!-aK z?9Pm!ul|OGc62bT?aiGwh!HqZqZt|D zhG0B_zy7N%w2he#KZ0l470>CuZ7g40^hz;daLD**b?1_5xSqXSw_e^xn>!(d(;EyI z5~8@^45|{HS7+Ubkz?vboQJAc({~ULttVE;k6k<)CKF9#&#j$t1S>PrsRqcCA=;AC>?&LKj51vz*aZ_O0 zxZ-9jk_}oi3%p;uDo1y}3IL4wI{h)Qre#O>T%Z{y=bo30!K7GZ(~LhV22JK$$%M&y zIDm*>mr8>1S4FQBKFnH9b#&{@86kUU?RWOLgw8Lr|F-hd6${c( zcUyS(Ure}zYg;z^;JZQey0q~-n+nBk+Mr-L4wIR-Q%yC55GQM(Aun-bTrtXcv>xU2 z%;T{-W76&)vYup_bLM~G=*U&umaw*6(AHP~qxcf+9Bu+v%g~X5wBa4t6X4mr>89OEf&7Mam6fq?gu3Ml#SKr}^K6mkGSTB)ou)yQI?x)fdgm%;}&U{(v5? zB*{bYXu3AN0ky6-bs)#|M3jS0b+kz$kMGJJVU0S>khwoS`?`1>VbRkj)0-4wB%kO! zQywl{05{p4AlgKdMh$IH*XZvfX9$hLo5)O0PPE#bcBAl&oN?^uLp*&V@^*Tvks4y_ z2EZ?>kKb_@IQzK39mTs`ZYWf)d{z>7{a)rgHf>{gRH@{ULe) z3fXA55;43P{SP|E{0^rT_{>~;EO#e=jD8j)HeN_1c4#1G?R#ZoiB7yODAmVXJ9vr% za_vge_MGK)&_nayBU$VU3yuhXwgN~pwS!VjT3e24;U^gH-%Y9*%6QC>6(@rM6A06U zt$9o4Q8Y6-XI5gq^iSfjQd}MEYN~K8+=0NXge4oy}kYK`__c37}l*Wj(^$e>4Gh zuBvxoK}46sOL^|R>1s{Vt~{7`Z6()0+~LRy;C4bQLz#ls-6fe8n!OiCmYqi7g@-wN zO#x+c1&D^+0nzq#%7=RcG}4Tb`8VmUkl1zm^4DrlhKPm*!yijxNMKmtJzEK2_92<#u#mzWaFK zjc)M=d%DU@T@IV~;lfVI9_+B#8T`g*wNz9l^Fm0Ko}SKCFM(Q}yfbZyA9I)@nJ;$_ z5=Ql_T0X@JSwd&jFJ4RE#MoDQPO+-QZ%aH^JrNhM5WO>resi5H zKth%&TpePJ&1V|a{C9Ai-Ojhf!8hCKoK3XPf?^*dTky93eDkKfK8D8M=Qm`p$6Thl zNr})f6FF&o#%K83Vm*<9D-YqvkYTwx(uLtumqhGA+D0Nuy|nwfjsl`5xdSPfsKF4I zqXwf&p;&UkxM;#+RX6nR9?l{&N1dO*z&&pMg$RRs#})Qd*bsL<7M>e`CPxDv-_@9) zb4sqs*1-j7!xE_Ta0yQGP4%KUnW%g-E#a`XU4cP4A8@0wjzlra=Y5ixEq4uOl}|Yw zRX@1O79RTfCg`6z84@T{Aqn~WIL_MqfaK(~M4(}Hn?~akUeaI07F+)$uroSOq zqA?lXUShoP=cCf78!8nU3{FN`F|gV4VHVEt2grK+j)bkm9dLJL-&HeD?KI{3BDNiv z8Y;d!vR7k*aQ(8N6Z0DtX0yX>cC7L!d*)a6u{TvGe`_BTb=ht^zt{tED8nn{&7lz| zqfq}mj`RP*?9zE&ZWu*}^5Ko;h1hl;3o+T_cl5GGGyaPXv%mD)=|wnXD#Jna$LE*N zwEvRxixw;Yo6ri3b?n~XZ5^wj*U6ht>sV1X1+ov`TslL)W|w+UU-#Orq>;gBjVlkN zm8TyGtt-1Ph@57t&o8DGc)rU9>3J)hPb9ExGOoM$G4J8WPh1{`DuOcvMkBdRO?B4x z?Pi`Fi&bH)AO$r@hy(2T%66aE8Z)#RLUzgBCu0Ua_6+p!ylPp81Q{tXNf$3ON0Y;B zT|CdHTKnC2a@Wuu1fmM}eCw)Rh2?Jq4?migK=@|WoBh#0wkPBq_Yn}r&qenGM@VRU zvC2O1E@hv(${DRnpfp;--PS+^HuC2cj}1kQLAD8ZbrauIs&$*k>97$sEQO(_(n&$E z43oF+c{7yW&~aL+sOx`aeEECLV>#fBt#e@Y1KEAzqwHb3a859fQI+DP^u7`$z@siQ zV_&zrafwp=1hy%iV*e<wc znMkeh;g0N}NtZ0ab|$T%ox2`zl9dc3bt2l_TG)N9S3+FqLV35ZYWU|m3gh_kjm?s_ zXeqz=%z*HI@{zDp&+JqOiLbF04g+uKrL>`lqlS`9<*FnQh(&@x4&k^cItgxO;~y zjmT${fJu>^CR^POZq#3-)m|7SX*}8E{CHUNSw;Fv6sybs(~~EkMzl- zNDm|1&;?)VMhDII&n;z+|zB68t?F_D~CY9+~ot<--3WuQuZa2!1@95R4t7JNSs_~n362KGf1>pV003bxj3brQNf0l_OHx1iC{^*Ew^3cLCoyUmW z7BT)Zk-zRQtJ^=yZ5~doSWEgWSKDAGG*ih!N_unJ^?hBe? z&3~KetZjwKAsI4I0|LUDnM4B-MYG05Xxxlpy$XT&^9h2A&5Y|m)UD|@Gzb z4^>@NWv&C^4g*#Y?(n8sT|BY9R+t)! z%Z5g_@Am5T@s8xl9QyW_8(@fNVyNLt+y6bJv(oQ?bf)|FLOOrrf@;`qtGrXGdm!p} ze)*fAuE^_|tbI;NQ|7hSd-*=ZC|b>NB^Bes8{M#Ljf{sit>aFWtu;4#_2{NdA>k&7 zm#@y$(t%x^Ott$pkWE&R({&CcWJep-Kdd2vs3tE`OHX?a%ayH*v_AGs8S2Nhi9RYi zcf0@|aNolRC%rvUavQk>XN#jU-sN@Mq=GH(0g_!6)SfAX^cItrZP`sDt<9A#@dxhN z>}%`jZ>MV5bshBwE>K$Xe0c(O7FN$$*hotD=GYg*@iXcu_6MgEs*R4V_%enI9OR@7 z>v^WOOW5$v2;|R0FHKj8F1LzublOURGRZvO+9$;?G7*6b_g&|0jH3(#L>5@HPb+a= zdq<=q$>S!?Mcx=exmWzu+bP@1EWpmWLnCkbG=yTCoGg|X&HSor@dJUZxO(_~0v(Tupe+Jv z^LT3MmBnO->3UtT&y>OgXD;peNv2cB2YH`4rAl6zq{mu%ea|i3=o_=2K53&@>sTjV zF93`*NA9w@=NE(2dzx}eaZ#FX8(W*Ew0qw&CIH{yOpvelRnyLj7_g$I3UK0s_DqHj zx8i3PKT83ZJHmd(@U6u>{fkv&ss;==btMJmAYg>$QQCK-o|3ImCTRYytpbVk*ZVh< zj9vvO3A8rUlQqXD<$sc(0xorFC$VuRFyXYfHad=9n{9@=exA#0oAzyRS0R4=i8l>0tA^x#=Xi~io0%{eKL ztLz!A6CP_gVwnD86w$Da{pTtU+lgjBSb>=I zGa4m<$-F5hQ}CBu%p zP=W8qce!KnR>*!FjH)c#EXHD^6&e@SzAKIi#_;6EC-Bl-BoMNiY{s4VQiM?$^pt6B z(QD~3{s!*8(A{@M*@Z=gZSV7h8}<9inme;x0*r78hv+WWfA~hvJ%2l~UN6g?9!O4` zgPf4I0Br)zpnfwg4oHt>D}YBiZ1UJ;SgBp$$Pblcf+kpIZHHb-);g!J!GWMitAgvr zK8Ios(bqL#QIiu&IVbq4N?6h(H+_(&a#Og3a_XJ-O%~NCVA>Pe^s56~1CG~mL>U)G zTK}DzYIGbw2|3%oa7xX;zS4?+9ksum9br~qNe#LGNNR~fd%-^*wmJU7!RHM=-?>Ot zy&^{~FM~d=(L~uz37ulJqc~67veZ2&RD7x0N@9v>7swK$U#4&!*3^-oWb8< z2~%eonpmEs9KKb$-D0DykjFZSsv!X`q+pkE|MlBowuyT`*307n4 z;48t%g{9hklR25ATj*#hK$#^O|MfJR{rL0nb5?!hR3P?^3l8EN=#st@3Ye)YXZ`A8 zO7?M5W}TD3X<#ZuC*J`tKOlip>@6lK(;)g11(GsMcLYOSJrLDtXF(C_Z47T=>H4as z*jzQ3U{)!)x-3{pfX%G+!CH)7GNg=56!+J2%n2OSrxQNwZlTc6-dMk)lP%U&_7C#(wiU{-X45)#4C_-lGmya z`}8j#P}*rjkj|;kBcm33yCcZnaaF3Q7j@X;M|ap>cGUA{YBn2+55c04;L#rC-h@8S zXM>5oYve7H9P0X=HycUY@*D6Wnj}7Or|L7{-4PaW{DZQCJ@IliOpGAcao5V%+S1Mf zp?=+}O&J)zC=dH?15*FRQ^G=?Zo=mKs}k#B7}(JTyr6nz2b&aEcF80%(oLtEv=jOxkRY=&_8*sKUf#A{)!gB9(d%KclY%UOpjdsE zc32yE7ji<4B|MIZv{hw<$E|`bQHmjMw<`kgAZJ7!zNliA89yo-RZ>CH(r5 zxZT<-1@RKYwx|yQ#!$b)H@J%_&)G*)9`cQGh`yDXZn+d7&*kBKu${5Nsrm@XmRrD5 zGr6Yf_JX5jpFAv+l_<}nY{sjxd#`q$k#(7;v*JRd={~Gg$9C?CB?J(pPx)4D;S;Y2 zb)F@I?Md)7yd(F;T!9!cZtfQ%1yL=TZVKs3b}Quc@iW31qPQk{sZOY6CUQcyi*{p8bq9-mxmnSBqcA8*CW)c%Gz8Qg1n%UQPfJOt0En{r- zMX0Y0f)^2a^Vy5{cLB4tQLT`8LO)fg?=i9kKtM{dp{Q0riUg$c2lBPZ4tigqVnQ{d zS*Hbe*)WaUXzQ;W^mT5H(Xgl}bxuV-!cS}dm8*Gx53!ny1lvngbR#P+_|*}gp&YVMq^3OBFZdjpv~Z_fSghD< z6`v|Gwy2^0Rq*D3ADsfl;vU*$_G0T{N0nax2In}~Vu|GYwU`Hj%kYH0HhD-Py-I~Q z{P8guK2RVhbRPr_t|gEF6qni9>HsIxLdN*V^GSR0>dfl;9eV-n*vbTV=e(7}(?fI53@#f6WJk}`U%7N(V0Tne!gz?C#TPPG_!EK%+~-$%3CE%AthrSyj~~>FEiUO-wUa8M(8F50QpXov@tlrBBgP_Z)eKTZ)x-1C6k6uA(z<% zr>j(>k77DO6!sP#u0R0BDy$2&AM}k{wCL0+H_hE5j%6lxw#lay6JBcu2Zl2*iEO3| z&Fjs+$6qPPl#QoUMqEXZ8h)avc}LR#!y5fD-C&J^6{FPQlT!NHpZxfCQ&4$N7qZ4K z5lp4u0x1uXvP`PeRy*CXO((8i;j{#gZV`J)m-O%YxniS?hx#QGl`J8e=D?RY$zC9Dtbtc8(7*3Wiw zu28p86V?z17?$ecO%(2h=4)<~W32W|WQoM>-0h<|t4;=FNQD`7`bZOVyY4zY3Ou)@ z#;K3OT7?G;Ps((yqSSq^5gyW6X$>e=NxQgUI=pFjh{arU2|Y@o9swt3!gl%7|8*n% z|Ngp6RT`_)A5@vomc>@wtRU0RX`BzwwNk6(T)5pc(%Jeot48l}PMatX=)|rl91#2H zW6kIPIJaEmHFl$~9=|)rsppA*yn51pyI_XBasHq_-J%tZ2}4B2IOE1?DZgP0M}3Bp zg0ED*r?F_JsVf&$Ww=8kZ@LzfhL>Z~oOrWxG2Zu<3dou}Ge*wovioOJ7?MzTE@Ht3 z3bVlt#j~<+3{=Za;evayOq0a+Jtyw=^b7N6q%DU{uw%4tb*(+ignHD%406*>bu( zh8OBshIMeh!+hG9+t?x7UZUVb%xt-UuD7UvwMMzzEW(=@KAW2gQgW^+^lOxQQLhO)ns>ehBq0TBcYO_~HEO^^->gcg(*1O<`aMNsJw zP^1?DLy;1s2nxK2NRi%q?dLmr3TFV~+9M z&s`pZ^LE!PHn#{5Q7CIyFy9?TFH=4AQ$hXXRF1$-5+82J%p42@bo6f0cB16-$6VR)-znsP4cANykBeW2oX zjw4~%{+A?7)%kPp7W0iz*m=<3jiqTM0GL4ifgR44UlMH)28%LD{hk#v0H$cKw{$?rNU&tlI3c(FYnt^M&2n8id)%S@bOb+un|4oSwqOhLid0yY(9!~1=>5ec~co^h6Q(mqnKP=(U2NO7 zn)e3bFDmPQR&4~CPo{?Fv__jBeQ>6*!7l1}l#dZ~wf?_k^Un&>1bP0)DVeR7&Bh7h zn%ySS5O~SW7fq;Cj;h!D;?-HRc2ANmHxt zM!tT`pT7p1+dp{D_e7_a+|$e6z^eQ{lU7{HdYjH+_Wt$stKE~%^S2iP_wf$<4KZJq z6y%q``a6~E1f#d|Q6S2*m6eUUb40uluON>AnFzAbY$b73xc0!^R#>iE5PVVR0Apgc zs&8%3X~W&=#2X`xflgG!>S|B-tm8fU*ujLKk~j}y$$rvN5pCbCooJ~4xLll9{Qi4O zbA#z=NfxJ`H&Q^OlmwkxFMQl4kL^7iv^obppn>aOnz2^CBv86HBL@Iq1mbi5=I31g zAB$5)582Hmba$#$yCxA{PYC}TfN`I8=~pt@S_qes&SYQhr~mm*P7V@8`!|)C-xctXZ zWmWkLzrFrYurPTs7OiDf(}W&2zXSHsbS5A%Dwb=%;NQFbSE}Na25~SW$ei!vbJS+X z^#NznMP)NX-;`F!f$mq%!}~^DV|=X8X9{{$4?$iTTh{Xu3c>@uUSOiD1Te$=-PmMM zHUc)=s{NiNteBbs;2SsWS)kG+Ti8l8+q`|A;4dH+B|758R1v}AAZuVqj3k{m;+@H- zM03wmO|CvV#jg}8g)svI6#v2O|M`_0NExH``tV?$qSaV%=jur+;HTSvPtYO?_0nSB z2xY@+RbLz*@#_4mv`lm3q%?NNMKJS%)sIFnDF#ajk!%OiR#mu0Uf_Q{DaKS8Hz}qh zc+Il-8{*%SF@K3I`!9|D9Q;NsUe~{LtLy(w3*aSBi!B&!{lA*D?0pJ5&uo3#v9r2* z)+Y83BrQ*Qombx9^Xg-qa{ebh|MTHzCRZ4fungz2+uk>xM?byF+a`zXkLN@l$nVe;|S)<{u!0#yM*wX6V!u$Vhep$_d z3c~we?D_vJR=wBj^Fl>2_u+SJ&Dq2c`;}V_rp4)5E%hUZO2-kw7f@NYc#|RI8e9eg z;t7UDX4vU_e+&vq7fMdIef6i0waxW-=10>7rYNric$}=@Yd-%p4`l7Y5&+Gxw(w)) zU~i-PukmFvM}hnHIM09D)c(w$BV)i@Sb#2h6j!`)uekbGHLE`^@r_S1TI*iW&97^r z^9H%0zC2C(?47a!O~%=upRtO^!+Ul=cXtw9Uug977$=4?w8n&5KqD)&K-4mmrX`^` zK9SR_`LazB9nu&oMEMT0xmglX8Hc*TQ_mk3Y=I+^Y7_b(NuRk0%dlrGX1$Y(hh7{2XW@ zdiP2)S3@6u@yotmpdX=NE?-DAZ821F2{uh|_5}UBDL)36$IZ$@J%U`Qhkvz7=Y;+S zHVfj$&fmXI>yu}=9-=N08BJN2_GszfB+F)=F@`4g>@fHAZMcKsEr0`lv~11X-B9n` zvG?pBi(Ce-86<4$?7x9E>XiXQ60Dq%YWO@;a=PpTf(5Pj|IRnF#W5C)%U%wk@bQT! z(iAPjPZ*NZz9`J&^A?`d;$1Q)e6Ow-(F0r|Xe~Xz+Tm=MTW1Z@<if zf2NoHGwEgjI?w<4(8i(f?=dkZo=Zz)Nlx=(_{h#{pdW#O{dFGK7aWO(V}AJ6dHh>s9l=bIGK0P{m6L9Pp3P}*@`2;1Lca7(U;PV3&QQr{_x)>m?O?4Yf7C!#@K(H=9!CT9v z1mEg*7=3Ixuq_58C`NnXVlhXjn}Yii)3->j-$G4LC4Ds6dB%#d2$B~LX}tf3qODMz z(idw7?_v;Bel|_x#gp$8?#MpqPI!DDqzhs(@Mmi;7^MdhO#+;fHo%=Oek*KpL~i3- zNIkfxZz15qB)Hn{k^SzQ=8f@ZnZF7-o7D=*M%VHB_I&tIeJ~TG)^c|U4B6CuGBI`` zwN({3a?*u)N{<#-R|X_@%5_>n1_CuLDUn(KCr<&%-5Y{b+g6CIc35>RjiLP&BI}!2&=Af@ zahc~If&_sLI1KC6bgv|iI3YHCtI4t-CiPWDQ2`4QDp(`K>(nXRf7_a@Tcc$3Fa6+V zNb$dbA6H#1oNgTg5cQXhviuhoxpZ9$I`qynz(gz@B zE$KfqGPL1f4%!V6iW2v=W5>QbCJdv*dSPdFJ@f19V0mtbs>h@rHVTqp@1JR=2Brs& z4v{?aF~lbt@yzlMVIRI956Zn!ALwr^;S2+==ozUHKb=b%B?f{z*XBr|($00Q`qJ&s zf69*7QO*eRbVT}eRJ>y_l`ah6n)x2=JZ&)o%++ik#`jchb`L3JN@OphvJ!CWt=@P0 zg~|npA!FCB)q8vXC&q9v4lw|w231F_04k<0>g4dgR}ipV?Shmm6Z(Xg;a&QyY02Gg z1YqC@;Y=GZWbToZ$w8+!6r>LcfuX@fvzFdc>p)Vrc#4zU;)X-v@*@z`L}v3G)0q`|$1OSRJZ9qhp3Z`cf2m;yYA0TjeE{jXRU7Bw6Tv-j({UbB-#Pm)5Iml) zVeolav#~|s_IHjLAKwIedfE<|gJ_e(GMf)xo_nPpo&S4X*~x79NnraVvi5ZSpVXC^ zob;ftiF)m?8V~(r;AQEZ%;8M6%#PfDk+!_peZ>1u%gSUn50h#$gg2t?@4Z*X@a9uM zPDe?>?CoH4SEC=WNSPydHE804yF|s`#&5xL9{$SiS{GTp6jsj70tACF$(x|IY4Uka zloy_63rkc&2m`yY-rVE-vY&Q#QTC}yB@Ph_9>1(jj{l{yvZS-ge`8(@ynd#M;s(c@ z!p=5#JvZKGDt*TyO!IT@UNAQZw7bkQ<57}O5SkF`M??y@LRIrd@yw>M#ylsw1V3Sj zqU#sp-}|257V|i5%qu5Oo~Slps(|j9?IX~*0V`fdYMrLtP-sFj>?v@;T+g@JA+GYEv8fB0LoPQ}}hcB4TOM}J6W(QBx$U%8~C;Xyo2?K)KlXop>3jg|o;Dc)+4 z3h_Hv_$3T}eY-gp!?TI1^|0t2F^JZuR6B$|Dsx)(+4V^*{Z)E3Bf3cd`JGC3{FP0R zhF;tNzSdk1H2i>6AY|#3pOnA|?HctJrIc80Wp{(j9T+)T2#$UH0UW&6m!jKF@0|9 z^ZYT`Xn~wJm{mUB48K>aA5HeQ;Qw)6}``#7La$GZSQKZCKT=l?WnQ1t z?fnK)uy#%cjgkI6=zaW_d;0hndX9^5{za`BUB)L1lJv1LBDk-9PjFl&03dZA!&W~P z2(8e2*8-b8YcExhIW0QwPUz?pVa)xZ=`$-ecK6eIo)hgSOUw&O zS^Fe=aR-!O)D!C4@QSEgmS>=es`IcaEWq&@w7L*I8As;_?kNKkxUd%wBi_;fR!Nwa z8tJzGqCIW?N^3ywtB0Q~Cg#4?NS*Z7FDFHeI=`u+6i+!k0l+2or`mSA--r6XzFc<7 z4NHqry1`2eX-QW&Hg^8`;4%B+fQRlo88-o*vdL>T+H z2lf&!VrJn90gXvIl#MS_tXEnAs;)xl8Do3n(E=|cof^B7SC=TYDd@*S7fu7;0eg&u z0BkO(FI~n(+xu))L00GU)P}8Mc&iO$xiaK4;%* zR5eXYl-@cv9+#J@7Ho=6iwz||vNb+_O>6k$jrMl^Qb}H0qIr2-pa{P->qto2NRw|3 zCnx!iw;e}B^hV~jr>n5PX#tds8HP9@61k=KLgqE?^Cz61S95v+Svwpllw;hTOMTgWG$uV*HwUbt%&$Dgd)T;C&~d>E)P@!BdYhPds~ z!&n9O$~kxjz2UvA{SHO?*Y($tcWJdBLRFUatQcE0@1xy}wm(XCC0PFwAJTW8{EoY3c5?O6~+08I#cBW4*(*6o&JYlyw^hr1Qimlp~7xzxyx>xb82;z^%8dk_|| zUA?q<0S=7e`Gdn(gVQ}aZ4+2#zjA*$!Fl-tL>_@l_1WAHzT<09ag5CvCo79#1N;&i zEpY9___kvLt*mQSc1b+^Z8J+!Yne?c`m1d%SFzCr!|%MZj6?_|^n>VCEM_v14L09+ z3DFX+o7HFH+-lfmwX}wlMuc#7!+x=vX8OKL+YN}N91ka~BSYUY1H#nlK6G{dx-(2HHeZHZDXhYiV z-9P>VT$dnERhD&5!P>M+KZ+8NP1Cxmk~w;`L!t*QE4Lwm@9nr`mB(KxyFUF#_%bmFQ+6UzE9#}n2XFvm(Z&rMO( z*RR;tYPW?ksMBWTw4RC$Nqa3P^J1XaSSGW-q>hDj#Y(}kD6NntKYI>c?e&7Uc=C&C z=C|^>HiJXkA_~orrDeDy!?rfO>Yi&mVy8?Xh+x?EY2{DR+A~b*5AmAx9ft6?k-Gdw zg}3i8JI``)(uJvvLgWx_Xq}gNTb!B3!ePxcUW>66p4r*i(KeY;OV?xAFdr*l=H?gG znT`<@!3Q`mF1kgw&Tcx__Q31VC(h(V@O*bu10jQJbmZv$F=grYy<5&7DzxEJSF{Vl zBb5>*r`*1-BLYdG*J|MXsX|or%H2)b56A zL*t)3Z96$s#jLI*r^%@PU~^)N%^9t^W9-brX{1t#hl^B6ojO(fWZAGJvC2$Ow0Ukt zBJoq#LOOYU(gG+$`3M2(v%Aqda_n92t;Sn(x*eprmC5q1Fg!j0WjxTM3O`!(B)-$` zH0;cmIqeqG|LFuQKM(JIJJYX4`t)wn4W1}@*<1R5JWmRDvGGmOX17kZcQqs-TD!Wp zII~RrRE@Xvs=0`{e0vi7ho5O1(P0l>#|_C*qIJJL$~1=~6))@s(_JHS>3$?p`74Rz zMNgv{#ajC*&&cWnu}f&$_;Tlv^q2B#(4*O&SN@JPRt)Ls4QpG&_^lC=g3h%osSd;@ z71>-3cfr7LeENr-cr=%E?k?@|@!`kO-FXAgX|64rd(A$pM7M(>$IfUCE(>_^OwxPb zRr?jWr752TP2wZx8CF@pp1n=#{{>C3w{+QJ=Vs~E4o|i55ErN!Opa8DIb3CW^9Hoq zUpTV^YoEl%O%PuU4OOyi7pln9>4 zv1$zQ>Mesdj;j1m3GheG?L>!M5A2RrZPs_`Wh!L-QM?Jm;A(m~H)6Tl_w+Ru%F{W; zsjwO|Z4aPQZ#8Dy7TzI9_m$(Ra>LsN$`j3xPZg4RVf0|Ujf8c(cxct2SRNHphXNAU zj57Q=9((qK2E8+;Nd`W$-epuKagVZHWAPNh>Z%O&l*jhNtrW14a34y8x`Cg6a3^OC zNS?uhv?3mo{?Vm%()2+^v}q>9EUfbl9qyTKnVAv1$NjjO1+!6P^;upiHnyXb0_)hp z#B8g zuBjL6Q+oDe&tPKX*jn@m(@A zV~$#gtlr1eC|#SLt&7{bW*lKT#It2k2i#{z$qR$4p&AJcgHg0=U+<1vdeJ;cA{#Q- zdiK*~RWmNFqm=c2vC^RKMYQMr0J$1ui1}&tCz;#c*z=nxc~J$XDB;3R4}aNm5Ic~m zCx&|amCDgj^rZeCSbr3kSS7*sV|xs`%^$bGI_84}Hfz6fayrxwF(*gscD;fge<{Wr ziFsQiTO75&zA@;ih0g@9)G- zP$J8f+fXZe9kDifZ*GlRTDgOVq^tf1gE-?FNNaOiDpz7hmhUW`57drB8lw(rSr5Ol zg})+6e|@;E=7Bo)*h$pK=yx2yZa#+K{V^tMqY_BGl)8RZwB$B~j26}3yla(g$cC_L z!Vdeggt=UzA$%DY;_bxyT&1YbPG;!6JhC=*s)1C+_K`|cK3MjdE~7f^DNiI`LV1GB zH(8#HtQy1&88r8ORJ!EtjD1XZ%tzA-Aq|V69#5efl9VmK{eg#2h*ADcmt#jqaE7r)rU~!M*&b+TkBV{cx&e!)sUZhID-7liI%v2Bjn^ zEtY-$6yXsO{!!@*IB#E&+dg=zz4jUn|me&lTttiz{SNO(zC8qg$ zLiSDvS&MIMt*USPQyhg!qcV94wg1qE#>}yty|&%@G__zFv4I!vCI!NRfp#@a*@)TZ>VIUjN6$r z!`GgCe-7vW%l`2MvTjximgWPMCJg{;;GdjHzq@@c%V|!lewGoLl^=T)WPLG{CVrI2 zTA{$B#f}Eu9&%#fM<6xiuom>vwQH=v4gzJ~qosb&aguu5H|`Og_T{G!l-F(1@gq7@ z7v-Q6hdNifjqiL9WovzEIGdL6L)9tT3v92AlG9BgeVFthlIv!(6`Tl+$(kvvcyA-wC65Uw!@?79Py}^4KYq#U;EWTwQ zZr<2vgNeQlSRx$Vigf>M5j;92t;ZgZZq4eds0uR zH({(ZB8HUFLH&-}*J72}*<@lN)Oca~n2(*u;;P{9Z7;VHl|C*W`L+HGPiA!mYnCl? zsZO0OlAJBfSaw9>%UQ2P#9*XQ6vb>?$kVXSO}605Z+3|ckq4G(MSX3Fn;uui7}Uhb zlCdvJwpeQUtW5G=tBgIgMmX4#hy1!X2(EGN2a+ARRdgE_(Y?~{cM__NZ*&M=1irb7 z7M7tO5g#MVNT`AoaF?PrXm z_K$}_WuAFE*YJA71{Qip zRz27-UX}4VY9+?=O4vuGl67hf1-~iOud$IX^uaIJa#hk~sX=Wp%dKTLqT9@{WUO(Z z#3X8z|3c0)+T>7zB(|^zj3kFj_T8Y=FeQM^A$bQ^1S;nQ#OuYM*L>Fk$J3ZykHiL& zl_71XeLp#p_dJ&R;%>?_gKD8Iu+ivBfzrm2w05`UQX2lETW_(Foo^#`CWn!Q0`?KS zNGaxgpQ@u+)nN6u+?8nfBWiZ=jKth=+pGnQ@sbsZkkgS0DQ28?s)VAQ&!J7EC3t=` zaV7Z(l)pnI{$$NFBbK*)+jqIm#@~=EXrH}CnOp;I)VW7|QP#&PR#VSu+}FP)?;RCy zu!Y%?FwK?~dkoct&o!VZFFDc>gA>YAueV=Ce;k^@%f^onAo8-@5WZCqGx2!`#MWoAB03 z3XEQUFgb5~v;sBJJbH^%yvG}xqj&8(xg;v;9ce3vEt&-&#IF*=2h>^u46U;yGTSN> zHG_kL%A#5wP86LOrLKvJAzl6HymdVNk3XsLouu2%P%f1w7SL%quSzt*$KmR{?Du@3 zA?U_q+f-0cSu`12e(&rtQdO=XKEMIu~jtRh;yT^eV@KX*M zSD!qI?Y2437ZL7hh4zy}GL*V7RhnerGfg$ou*^~h$oUuCppG9nEM-Z zIG+PqIf2>!2V)ZSX6jflEA(my4T}$6G4!FS1I-J&sUNHnu6X8wbNVMLlKe`nVK45& zz-=^s8hSQcIvcu0w=>Vrpr)|XzBPi)dtKcR`5{qz$HEQ%*gMfjG09OSd3?XAIO3kDtndAtE~Evilh>=0XI6UJ>IXIq^kiV|+~=&-fcRl;=6US`P!E7oSo z@jj@L?hZ8eiU1BGh2HrBAd-}1@0MIhZYmZk*kCM!6`9IEYDkkQ3CP)AzbeZf3>q}d zbp=-;46$j_`wILJVvEDrBQrDMezV41OLeZ0!YHbcD-wy1nXR*$dTH)LV+mAo=VBxn zp4?-?%GkR_0M^;O`1Z$~Vg0)nsFQ>6>MV_?iQH4cf&;92W|Yu9AsWabGhgKHe(+h( zN&9(P6XnR&mk&F>@o!U-EYu8?XFQu|63PK^V`P(vlLIy{M<2N6vxh2L2Qn+C7Enr; zz^~I9Onm>oV89nC4Sgamv%}YsH)5I}kXKVBI{Cfu6VNA48KF%^E zM-FJVSc>Y9JP{2fOIV;n)>;X-K5e9ff_IkO9!WZiyr$EJtgvo)#A{yt_3td)@4&cYbPa z28taZC@%b*+zUa7cOOitkTRHWsCx=5;8uxaaIM5;=F#|$EN?Y#kf_EZ8?nTSSsTg7 zQMS6D+A$g7!B{Nxhpdf40l%ijT5)uLq*B)d==^a}_bOq88wxfl<{wVgni#4Jjjw#f z(*~7D{{r9*blR>9RsU-6z*ZpHkS7xFdK$KsLKfPX833h|ndntr{rYxiEQ$x4U+JOS zJ5tI$z?wLFO}{MVWu3tvbnD023RVwhhf)?Vv+OXr&uZ#C%f3?#=WUfcAsm}ksO@aL zK1IO1YX^;AN{=_7dgHkR8mWZG<8Y~C3&0;~ys(%N;QK`dsn4hBz@Va_g7KC^9$ik? zW|h=Lf0r3!ea3nYCS}8?$?O zi+^ulFFC`cG}^_}v&i=`(Oaea?sHTR6pu#HOlri=?x!3tBA%av7S`IK;OsI-)bTfF zD?1G`4u81lqE=(RNK<^bgW;n=(0XZWhK{z{ji5Q>V*=AaT!w@EI&J)}Hp(bO&Hei$ z4m~r0UFsoXO`hAu!xmwZ?ZtP~||y68}~z ze->3oeAMU|M5Hjc=JFeO#dhws#A=^-Mr2rLS(BP%YQiG-DcC;Huj+#6(%96gY3{T% zy;SpHtsQQZcl^Y`8OZ`s!50~#)u3v}GA-wZ$vgJL#vANKoOigEn%qq45jVW%K}Q1K zGHfa4R%Fza%PE-$if?`fMJ@}<l(P~uJ^sc_RNE``SM5gyLmI|v>nBe5hVNA$kR|?3Z!9ZJHz!>j)hS0wj6b~T(a^= zUX&jFbabO4C6I0C5le0~ggRp(>oz||Nzsd+=>|R&lytHCP9LKn)R@&-X$<`PE>ZXZ zOilp{)~q5saL6mN!xTXevf$R>xB65q(=gIA zhg^2TiFWj|3oABra$W}gHIE5nOOgjYrbn4+C*Ea&YivmkR|=c8w4A-31cDR~8M7}| zV2yYp4O(7?%H=RJ{rDtajI`MY8aPg`{^0o-kD`*kaXW!gnJ>X<*2yQ^GDmN32^=lv z@-*+PuhPCfeVmb%Gj*Onbv!o^e%c_{l&=O#^XwpSx*I;mQ5;=2j@ycv3}7A$j)FhM5s0II%e((&d?y z@o2sra;o&yk^5IDUApOI0~?>aS?s0`Tzmtn=8Pb`qP{2&EUM_RO-nN%t{m4kax=dj z_M@Si3(~)MI^H0y8LM9Xoo}2mgzc!x7ISmmE}2j!=jIUn<FO`~4F4S0v0#IK!gu;=1q%h2O>M&qCF96J^%&vk%yftor2Kh{^@& zOHP;3kK2OGJs%Tox}CPB8tjSSs-hA#dD$|56d8ov=Ei7L*t#&P}cK+hh$3sz_dnIt2 z%Dbyoupsk~KRBn*$^|DTsuca<@wU4yP2{0+W?K$BlW(poFN zg&ti6U`nNsbg znPKZINBd(Sc-}(oInNV=R&w{#WnHW42ML;SPOX?y?3e{hI&F6^YF>B|0N!`lNY7=I z2^CS^Scmg~t=B1=N~)8G`pPY429A8gif5KSQfp1>s{GK{BBnRs70mtlcuq~T+8i3f zbMj5#<*~kj0ndo$&F;Irpi}Z{)!59^x3PrC0+p#o{B4&#ym@BbD;ecOez?vIad@)d zQ1YbYHa|0Dqcqwra{c+5=u7Yuu4S3SI51MLYIa9u+%7MSUVql?Xzi;EWqf0Lg6lEk zbN}9K;7UWOm%pil5nC16+bT%`?&VeeIuR>I9H6Ow6|}t4Y1%1zrW?Pu>@PHS9&=!9 z4mWWu3VUQVD*qKlOhYnHyYWkD$`0%^fxseKkQnG#NHnXoUvUFA?{_wfe%_KFMTc9N zvNxW?L`dhVGLsV=cD^4|_(U${t?O&n@6u){9D?O{c$PlVplw+!xZ~!3JR9i$tmsZR z0tRRlK*bHpPGQTgLcj#F?~T2b9f`VjH`}b*0wZNmpNSeH$g#-;Q4gHKCJhJ<)tQ~x zlX<*`pQ+CgQ-2aR|KB5QN>+RW|E2}_KbgFdIXPI_EwSC(+Sv~K-*PuUYi%EvHCHrUl`xRd64iw0atGJ?a3Ww(a_8ECvEb;A(^-ybR zG8LQckt^l%^d|K6-QU2+v5+vWxR40Ht!w?5k0|QfL7p2v6iz#k|4%XbfQ{7oaJsu7baa zKz@c3^rbSZOt=uk05#Y3y6ICbKUL?2?YASG&GjPiA|4GWlG2;EEPs!`+v(1K zp#93x>old7k=D5>-JDjpaylITh#RzD+O!^6!ocp)x_RRpPdML7*ym>vrPH zcB_q887Y+-!W^;lNjk|XPPp+|)5`jGiAAr(1}QB$`hrWVn0MbbbhA%;%a5bEyy-f2 z2TO!AAyS*GGd%AJ1H^spgw&A8b2cA2)NN4zHf|^aP&`)#C}hDN?9zoi-VDHTVvn$N z260BL-KO>La$005Mm^lyZwcs6oR<^nIL#YSzLI&hcJNapsoHyChQh9PXP(+RINQNK zVPEa6uG0{TooEP}rueAuy&QZJiTe>g@M!PYd9zqt7f7{)n4dMKx^63saVowkNo?w% zWPNJXcYQr5zMdrvzT#x~;~oJH_7Mwt33`=9e>~+Z_WWb$WxG@wUE5`d8U^bV{s#0= z+o5d^)5pld3l8zKvpOc2p^SY%W!Le6XKH1;cx`k?F`D4Dngj7A*E`-y0eS*&n(XQQ zwYx~~ ze#&ng`Qxz^vq}Lt1n3|kP>*|Ai^$J6c@9)SBN4MCs5q?90O~tVBFoPAY*TKmBfq$| zHe+k6-sA>Uem{OS>1FVIY6&5$Hwz|@yBU5?xa)9%;0DF3iQVMvyqe8}{DCWCRj5#{ zjpK1TbT;eIFuH|B%WlT(GBlBy@s_W+)!|c~DCaB|TIqVl-12^|?L) zS1#Fn_+2jTbPG6J3nd&ZbvS9WlYY@LI*nhSFbE|ey^^hz$T~$5_QB3=za-NZm9_DR z9;d^wnnxoQrc-O?{YU@r@eHgI6sGG+8ELbMr;R|_KVle93ToJRS$vsiWQg(fK zsl~V5Z_vyc-%q(TL8@rJu`!>gLJ<72XIC~~YZs0u4+zZ;L$Oa_(AX$S@cg7$nhsDe zX3;sz?dP!_P9+8D3I$b{BzK+X-gAfPVQf&#%NWpHZGNLoHbBz<=%rEK;~BPtJJ!Kh ze}0Y+A<`Gz`TXe2gpCXh?gw5y|CE>*#2(+w;O=csjjfrPh@~o4t87m)hS+3yi7W$S z&Z^?Z4_--Ser9?VVo|PA#z<D7{2ljf6*W&k826jIx#SF=(D{tJUJ+Op2uB+9orT)6h&If#6 zY;?R0NdGyE*!g^XTKNkK{kv;rk6~-&4)PP1&;#~EvLliM_nphRcIQ7AXJ~0{L`{gQ zCdJD^KbX~;W`S*>$K*%C3mm%D3UL08xb9!=!N_!jiY9%h36HfnhP+y>;QMi}DJwIM zF`z?N!H(J8j~aj7xEl%R(>D<7`S3S#3BuM^-uGH`+#&rz}%s_R7>qbuq~8hj6J z65YEiCu?%t+`(2_}seJv8!`blB5 z>BWU_GA^@({mR^p&m?GFc+A)+evx543P@N(Mz1WF-uwQg&stnD;>v?Er-STC0XS8M z(@YN=g;r^^>Uu-*pe!+~o_|iMQQ~w|43X4YVwc;jP;=8Go%(tr`GOJ+>8*$afi=pp zA0`u@9;dIfWnx#E?tvIr+l*q*WotDCHTTO;SF4Jpxv~j~QHBxEs5I7>%09o6!Kqy! zDSkMlkYD84rrvwx^2}aX1f4(v5f3FNhhAPkR0&mL)(FG|`APZUxxzxA#e$(t8D};; z$!p-1d{L>u9%=j3pwwoErbC=bld9d>uqO>6pI16)mfll3pTa(<;#@Jo3|Xh^-E+_` z@0=1r>RMy6_BEnx@4SeE0rm;Uq5=NJ1aeY0_AGd7E{5;!+q8*wtaCG>YJDcAt#p`K z6~fqy)Uoajt1^*LcDI?_-*bww{^V_NcD`{oIW_Ua-<^gmWeGC4jnqVN!PrL4(l=6m&-}gaF2%L> zkYla;ryuR6OE-2!W6qj9VMa!t%?m+-><}#8Sh6RSm}SNv?7vDrJ&205?e*8S^I^S- zx29y-J74|OIOM%_Xy82Glh#?>bv)_SrM+yLoGeAoTbDe>_hpmL-E)SmAz7i|1SX*r z?ye#^Ff=gtM93Oi$A$m$p7a|)&!N*~3S{*VkJV(hplLgXFZ^F-gFcRgFQCN;5K9ku zf7dX`(*Ajj*A=?t3!X$G&Ci_mnd7$UA)zhm6t&5(Lt`xNc zAyD<|=#A2MZ`0%T-Nhf%v*I8WP-cse24X33ZWYEpI|kEV)_K z@CD6-ZIo3nQGn#>w=dUUq`qoIe9{`-D?D=Yyy6c(;bv%EsLNze#|bXJ7W_qUaodj+ zrv8%gY&L-kj+|^&AABu$wz0kfU9ahVs&j;E9N#lyI!wB}!tm2>a5ZAnn=NkS(ujB|)U(ZTIV8 zMd*(JzcW!Rmrl&*4jK0RW>3l%V?$u9WoK&yeq8L(etme+Dx9uxQL{~GHFxIj6$nE~cGt)YjleV%yj(%+c z=&R4Wl-a5;=&ou;C{ou?7EIIGly7>m{w??k0t>wekNo?f#P2bA0z?R3Ubt=ZD`H3-V1d4P zS2EMNM~OOEF{e^ZlAsNzcs?(_NJfZy-h<|m*E_9ci@n(cghlQ-dZWWl`*zCC#e$k1 z*lD%cOKojM6ZW7aIAoXwX2c>7`cZ;jpCuOnOvhuSe`lXv*Y~<@bXe1MDp=CPUh`fe z37WP&)tQv%kLr}#*0-d2x=?J@#F)MsS6#x{xGr=MV)Y`Kww-USKjf7NAighgQUa4r z3~8HJi(4HZy(j72+C?qRfW4J8F&1Ji2sM zxIF`PZ-m`$2X_slQt`XBk;30MTq&ep&^)k)-&RO7&?z9`S*JDz=drK}FUhiZ~|us3`W~;1_n% zPN}{EKXU0BMI?hnGkf+fJ;<6 z_%|-``scrKiH<|xyY)nYOwvIY^LB`1igl<9W1sz(Wpj;ax79a5BRq8y;UE6#Va&Ae zKLn!(4>KQLjhE=Q4Y_{|XFfBnRlbDDvUTqO;AY;Gd^qn3layNAesz!>@}hLf&EW?@ zjfEK*>y2KVySg1p)(F{To3Bo0m!5rF3xi{|WWzeYFtt(N#d^Td$qCMKXFZj&I|fI# zma~rZr`jR&sk2~xm;c;*S?gNEc>HD4p!`|C^G)~;!IldN6f2z?|J&1hVAu?e?`?jF-8nq(=_@-N}S z&1rjAW?Uu<`Sq&z8P3Oe4{6J4+*HIiNW;24Hh>MX$RYvoh-kS$myTk_Q&XYG1^Gp1 za9+6JWyAPzqk0TY2bL{M_e~?S^T&Z^aw7gX5-5ER7_Tf3r4~~(`+#2gbA^EFwq`k7V!84&Mz)bu1K{#dlLoks!Iq!)!cXhZ4Tc z)rPqc>L?)ZJUqrisWKDL)%rNZetFmMRP5;e>7g2;DlRCAx5OvuFV)`}(O-OM{K zwM==BH>S?sM$CaVv<+9lU-WsHgb1a|3-h0_dc}Z@qoS>!q%DN5RY=eks{Y#d2J2bToo%RRj{g_4y>(jPip=m|D zld1n!OOsMT%Uc`;p(dB}HOwcJyv4x{RWvAkd>_vy7%ujih^@9q;=ui^l2yDbge^fc zVjL3_0gFBbtAckwSQ*jG=MCL_&G_Hc(x1!BB_i*O*pl;+pdT92+ ziH^JBf7Q}fuh9djh35~#WaFOLuil~Xi+|E|Wa%?bz1IP~Jkam71(TVn9)DnD#qD2z zlMW0%oZGlR_YGm*!Y>7ya!2Hh7h7-ewdHzGO?c+`Sc%*h!RYjP@-Sb|BFI-FJj6|VcXwUZ*$eYUt*B> z5n#G*8LF^k&puW&%BI5WK|fo2*UY0W6Bpwwu9oNx)NlSQZ(5K^{nj`5a&jY8v^FfB zU7i4JUKzdzkWrML#`FF~V%Y%@@omfwBkBCTAC_`P?KCw{2La?Y!;>L_ToH0Yf%G+71y@QZw2poNXL{KsQKU`y(2j z&Gei;(Y(sz+=u4Kp(Oe zMCT^9s!TN(sa4MIdNZ@kRlG;lL8Du9o&;l=<+5pkWyv0lY>Vp|e7Ug5M<~fM_s}ARP$Bzup|1RiKTlx3 zD(op@bPX{?e}-4#6og9KmQ5 z^Ev~MR}A;)avU^_TzCpm<%#s4R&{`#{saaumOTS6eB`94cpTTp@?i~olJLNCJ?;qD zc2GZ9`hSa4xb`}fC80s}SXt}-qB(8mJVHNbv1IxJA!hJNGi|dGXzSZD;53!f{zkki z`FOq_XMlP5scnqkrD7}@{v1c1j-`sfPkHBqEV&G4P=^D$8EaE^!k{GON4!%HIlkPB zN5`tD9mwe!IW-A09EEEwzPO@TK}PA=YZni1@sz`MEy@;!jpENYG2=284^BMFI2#G& zo8{b*KMU9EDglm|+eK7j#TTEqDD$1SNuM`YTkhQ2DkT4#m>$nA5qDyLuHvb3mC`b& z$b&~{?a(nS>HOC)Xm7&H3?P|y+=s0}AT?}IRae;M%ycZ}jQ}%oKCILxkylwh3s!TM zY3J<^hi_6c?m7~WC_x%u1UwHKFI;3I zC#d@heU?cKFZNfn)6g)Vjn-lfmc=^2EoflG4+&3MKCC*UCs4 z-O57|v&nnR#h2d&r@%!Q_eSO<$!F!hN>M94DQh}s*U*a%iE7c7aa&~vv25Xw*y?5F zoLRKr)C8KTT|)(=;CI1vPAswj=Ay?It#DZ8gXUlHLc9OO{wN#=9}wQ z8Sg$JsybIROTM5>%oh6UB-o@Qb8Cyy?jp>0QM5?Om!0xvoq&P3`|C-mM&+(wt*?4^QS; zk=}q(OMS0g-@eq0jFV6r>Hn>-`!rteh^KvZ@k00meOamKL;Q2V`|fh-K>^7YH3WZ| zeh<4@_=Z-T&x;roX0#_`?z21dfts}_T#)RgAJ@tCw_cSSWl8MmNWS^E`ufSlncw<4 z{ybFfSYH#D<#|aBYKaUWl9It6J5`M3NZ1_dYMYSN86$^iayGB?zIupzzkUGEq1e4m z$qOX*tV-;S#hMYB=T#VLh%ToqE%KFdhedv_j2U5hY~g}UdWH$M}0 z041lum3S_lH0t=S!oZ%ebJbxecHU%9p3nU|Y5xarL}Wkf8OQTO2H7$r3^cw6G1EOI zo0BnoHv*^n2wHcvY-E_d(sQL=*kPM#PafST<9PHUIA}Nwv{@dFu2yrQBbSml-jnYG zL9qQ6F0(m2nZyw>Eob}DYEzryY5R-spGL^kZ(Y;mp~d*oga+~Z5e_P9Ckcu_=eC(d z{!gbv6SY`n{H1t-6=h#n?(lZ$JH;b3GAw($)hu{p-{Qj%cE8d(^{gh6l+NVL^hc!Cf>ByRztn^`lqE@;g)+Lbmu8Wj#S)V=qc~#o2*L z-kWp5jp#Vot}e9>N6fVq7#w||n=&j*G220Qcb1BGnTK+}jIL3)L0r)Tb%}x85$m4o zZjg4Apll zj@*Oj6H(`(oqGJ1PX89RQ(TuH;{ z9(!%{E-e|4n95Zqia9|oPPJOad)XAM%c=gJHc`Ge<hxh99tt!U(crPH{b0ptMegSuMdfUV?(G1_qTOIu&TI_Iw{`x4^d87Ra_PXtBS6scWeK$s(4EP ztSSPx`vrP)Vh+d5>ek9u5e@x~x%OZSDt-=LP=G0{qGH_Np^c#=&^#YYLt#&mdYG!=ZV;G>Y>! zC2fk4ZxzP0CEe`~7FeAcJ=*TZ1$j)vgtHRR{r}qR4zES6<29+=w%Yk(aQF&l=y#=4 zg%0Jz?fJYEPaa8tt>o*FwK5j29@f;saMY^X1>dzH9Xx67VX+dA4Vgm4PH9 z8PRB~+hhzYWx<@@`9yi2dERQ8<3f|8@QX=he%ZTEq60V#uS^wM4SAL}#!5U8XQpYG zMeFMb{o=bcIS^VacqN=6i1jWwj|8P*8IJn64+cbh$zKM9s_YP3Hvb>7yqs6?Z0m#4_t58czgNW3q%r- zcGtcu>0567;$B)qiVe5hF|DMpqQ({v{Y=6z0hA9e-a~Z z?Phu2W5jI|Ti{_yR)FTRIE92xd})W@<2nZ(5N+U0R&9@K+Tjy=@SXv6acK$mOfJea##FER;LeMdf4EXV(Vi zQ6l@}1usc2PHhSTH^`;>VY2rH$}xQs%;z!2BWNsIfnDfXimR(D zA7$0$*oH|<58EHgr)`ydccvQOad)!na#H-4_IJvm9HW1&r?N>AKOj5L$bs*1%)!9x z_p9k}T6V95 zjv5TszIG3KWu8VPj}c+|O?1wFDM(X+ys+gWtU&$2CLgQ^4eP3K9Tu&{(lvU`X=qhE zb=?xK%Bko8!4TJhF;Y19^|ej<5HlpbS2xz;ABsKw`QFR(nqTh1Rn#D2lN0`CPu?dN z^L##wXl9RCigJv9ZgWX3x$7Lni-NEU`d;GB7ujsqQ;?F+6hCB(p7x#Ke=gL_tjo+1 zns<)C^$om<-Uh}DD#?Pi_%qj$;f?merqA?^YeRiDal_EBO=wNd*S60GV^aU_dz%2? zdy(Ibg!P}LI?3K|sXo0oQ-7?}l|}>b)Zlcm7ON$nk&hCETlwA;#`m4uPS$aZu(Etw zH1O%CwUR1iE@u?nF=-n{~-f0bnSb(6f^c=|l5V6`Nb4?3bYB zOS|3a3!@uRn+clay`joE#ql(aYvJS?b8+=2rNP++F^)u)kcH(npo>v@+2pKjp`%Va zfB4>FlerZHf&R(?ruM~RsYcay?}E4AcC+p^*Obu)J_bkgXV!-1MXIel=pXI5VnRr$ zFvh(``*;WHi})O2+MTYt6pL7-FculTiwsz#?YKRfh6opTmKIZ~tun@*yBy^j(tIe@ zn0c7Jr&4pV4GW7C%h#FmuS2j$unnN0W(m_{7izBVXpVPy4c8GZ&TLd(g+e61atSm7 z&3cJ%nj(gECZOqhr}Ic}vmeVfrIl5vXmQW4v);EP(4{SPA=@&N8i^htR$cgXNQEt$8>;r@n) z@+`R&2aAaGvJQ<(d@!p|0P1 zn^vr9btv7Ste9GMFy1jGEy@vFEJNGeRV!l)(#_Od$y=MX<5pd!fSTr(E)uh!;Q!KQb57oXxtI|u@*{!>(I~D3 zaOv|qN~k;F0rOr>g1z#;aj+3Rj3?-I-qH90WfG>f^07)&-lzu-SXvVU`1c`IV#u1a z(VPlPEU;cHxK!a61L>L`?AN_O``dm`U`VtIWwG(90skg%cN_lx44GAD@+;d_Y#{*IfAXg8#k3pH?Ket&v}FIr0EY|Lb`w@{ZC+B{UkIcI z);Gyb@K!UT9*MjB+cogOy*lj?b}ZE|^7B&S8qi*Hs*^Ruin6Xy3;DJ8)x;#?0#+Dv z@ZZq?mg!d_B*7zTP55jnxf!~`yFjMLMakPe)5GueAj$DFhq;D{HjRq+zDF;ii*EiaI8(Ct-ah-zs&$LDpy=>Q6CJ0NaR$6_7Mi zJ}9Y1q9uQx-=W9WG#Yd4&RXyeO&G{9vS1Y!DWw)^$X{Uv@p@ira{kw{`>04wZ~%@M$=}2x(s`h*>zwPWw??HKSes$p7PtG*d!#=#RN5yhtpM=xJDx{=T z8Nr7>w!kxNBQ`#X@ExzGTK!>z=jlf@WMgXvOnD@4+EopUXJ-4z7y$VG3bb1%=RWBTcUt(hByOHPj`mq~w7iJ;qT@ zWc@cA+?AZtHPh!{$wjX+fSIAn69m-Zx=aDb%>c45o7WW*g9k78WWE+N%q#Ia_|8&U zeo7YN9vM7oXQXld$uZ10_!|Vc0ry3HD=yn)z(rJwu1SUF(nA*F4W6mto^ORj5%lna zL2&n(RwAAegSOu;xIEbhf(z~_lK>z%yIYW_Gfzxe@szT(Qm4i`*au^voU%G2R^H@3 zg6?_4Hln%#LHzZ5o9tB(P^}GCSy}ABHFzcQ>CgH+*z2Lk%mk7=6LZlb)>i81UYWf;d69mZr$;Z;IJw*!_O#M_IXqTz z1(8d28w1X+NMejde)!+idA@d=1}fhOA6tLMqA2rC>ZJ?ZQ30kkjYMXEOj&!Q^%5AR+s7&p-vPt{*Wy02^J|PjCceQc>jmG@Y}t8p(*Py zEBcuv_s2&rCv^;Gy**~)+nSnYgE&`dF+}21N!-WQMm_3P3WV^IAx>J$pmDNm9b7M` zdA+S~P@=%DN6dAx6{&~rur?-rg&SDvwGcW(Mp9D6riPs_j(=!%{ZRr_NX;)jbJqKu zB01{MzNgz>3kwzu+_nYtD+BzkwoCElzMtSOy-Z6+jtS-88M#6!B>{eSo^X2#5@=lz z!jijKwE*)FL~pEy4z3@%r@x_#L6t7PdM21)6szK4X8VSztk5=u<5uUzWbfF8`99B3 z7W=DA)Zt0C(5D)CR2<<9HOBIGrxmY7z?mT@Ohm7r|132IT=A9S7~lkpj4LehvYDe9GV-`e3(^5B{odO*qtCe(n2YI8CGW1>tDKZzcZvjPw3f!ON$o#fO)*a|I}K zXrAnKt{BuPMm{W{+-FU2ZEqs@;|(TdHhUXiD~e9t(I;PL2B(zL%h>=i8Q-A=0YV%M z&wf8*W#=1rf<{D*?=gQ-D}tRzW(U@YNBx%KV81pd97u7MW+26F-2Y#a;)e$w2%Ij& zaC0%b$n|2AWmh2r^GvGrDV}vdQfu?CTKsq<{s(dn^!K(9ShfAFz{lUrK+ggN&f7=^ z&+AXokfryW^z1%*A$iK?VB|=U$zcSaeq?sATZcJvQ?F8ixL4!;*h#h^VFNRPiNSzS z*6SJ~OjDVt#*?l^)aks{ z-so2_xpaBMwJrdo86A+s?FHo{izSQ+u7nXRUU^{x$)4V2W-%{8HckPN-aN>%Uzw2Q zw8X~W1oK(v0b=3r|AWYRInMs5F9e}Jkg9jfqT~W(*V9RYlyWD&tF~&!hhULILiQ)l znCnztzIE58@2sx-%F*F_anYlhqj3deW5wY6Pd)P~4*fZj!wL6pZ^ZG_c($D%z`4=( zI8imupxF&ui4~pb@8#RE(&7Z@++%&&RSZDqZ3o;8HVJ5jpgw0qkX=Gjxm5wTANcS; z1)USU|Ci9Y+TjA3X2R~`0XG%Wb}yMLL0jF**L9)v=t0Gf;s4*MbEXjw)AK$V^@S<)F3l8K>tXqgbpxocz?dJWJM|r`FY7xf?B9 zYVmpjhbJ&=r>ev*Ai3Tu13JEg-5F@fJI^Kkaz4DHq9U`J%bvJ)#+=`2z%jU+O5*1~ zBj;-5$MGfq6>?5y=wx-ykm7aB)(S8H%#gus0J<`hJ&CP!O=%{t?@_}oia{=DWAh0y4ny1&ilXVtGpJ;{7TbFlj zcDfO1Jw~lZy=XsKIVH0oDDEkfj8$dPT^k=CpwoX(*Ch1gl#@)l&T_{f1a3v?oI@3= z+(Zt3{o|=k_Mu{{a#|ZxN6OQpFr6ND9Ru$;mlC)N9p*dOqJOo~pn={rk>mEWAhk#> z=F`spMdS8KNa2jbkhjb^DiXgS`Pw zexH-!6KQ zxc4RhXrKR-<_^t9M56~K3UAb`c+J7)?K z1-uW#m%jjSOEL3Co+X}$ZE+eqD-ibWPBIrIb!xub?4P`G?{etW!2s7_H>+d93!}F< zH6XSRX@mCUugPT-BNwG;;!FnEM=c<_*{;wx!|^NwCy^8-k`3^ z7Jap`@ULljwoC3f@n+%WA^0mKsl`-1{_T$k68!O2`#=2gmCm6*{PEQELId}lrBjuB zz0Fcy%w*r?y@pw?+Eqm#l`NS^`J3%n53}-kD5J86aYe}jJMWQ_^BVo<6W>tKb$>(i5qYfVEva$;Eu=jAjjQiCy$)Z zU~y@Vt!%AH%S^5QrFlwm+6xMGugQF^G8fWBE7G(!v?Ermq**rPA>RWC3G(#>i%W98 zQk1?xUfgGX^eGIr%u@!~NdPcWD$pcKn480}iXb`5Wx`f?E+_w?dn3&7^~`pi+CQ=8 zS|fP(i2<$vw=ZbmHUf<|u=pXp4rx1~F+a;+vc#`VBBDjuNtS0Hc)LYP#=;);k|46z z4ig<2$KP6>42qL*TB2WbSBsqxxbPQ894wwvK;i{L{wA?sd_(YLs3}tP4C&PLc*X&N z-FGaook__7wix(@CZDOpW=|`>-4FV8iz3u#4YK-MW7CW0Q}pXnu>A*(jk!RptWQb? zviw{oK5?<+uKP-wz;@GN7tZD*IR&nS8GE(WUk%{Lq zq%W=t_PU2EyKH%buVFzz>>I&lRmLJAbQ!2;_^ayn1F2(gySIN;hIPbO^!QH+(q1HY zG`cf_VOQi;;ee+}V|9UcT01BnWz zdhQBM|2e(V)fuvTYeZPExCOO!9`p5_uiO5+O%r)2VGY7XT6547iHA1}tG-1oJ35z` zu#Vtum8W1hpksW%9@s(I4Q!@0R)S0sJId`rsbx2!m**@2A*IOK;8g# zu*4S@{!E(Jvh@QPzCf0W;@q^e5fSCEwV*FzV1a^_2AHtZN7Ub3e!}Vn5&DvR^grr} zf`KEx^4aAqA>@`|iQCn75ba*kfm)Rf*ZcCxG1N^oirdOyn=1? z-p(+X@}JLetH`uy9(^R#OS>osLM}k3AY=@~a@!8KguYUU9LwHQ#sX<~Dt6#EbneV2 z31Ua=$NlAVB|vV^`v)?!E-C8@>3K`fHc#M%KvY?}8AyCd5C3$Z@b+v{J(l~AKXALr z_rBZ?dVPNk;>@b3LqWMyfljf{+qtWapilipIua_@7nwf3C5kZI=Gf*m9hv3pcB- zi?cWU8|YkmyV`UitD9ZNb|`R#8gg?E4OcmGl;i{6_gIg_{VSz(lttxQO09FU2&>(2 zs1d6dZta=7;d9o+hlj~ohmL(eK3_`adb{cC{_FbappMQZL>Q<01k?!W_R5zU_;gj< zVapK&g2T#4r9A(n8U?$hsrod6d-+${qbtrg0CNyM#QXgXKJ<{~7GI?aykXtZ#!@oz z#OqyqQ@FPHw@zPOPIR_9|41(weq4%`cLT;6-{rka3q)w64PKIik6LA&lux(nTGQYY zvmG_?djz7AgF)_?UR1o^%u-6}kwehfMe9Ki zF8Ahpk-;}_A>K7V(!vqizqfFep|Xj=6yqn}3d#;*AC`nM zNR_J7a8&S|G53G6({CBve#!D)G8Ij8ZD-tpy&mONb;2t~)rTOr@=(PsmMiu06U16S zD4t>hFY9SdHh{$pc!TV1(4_Ea0OHoL1%m9v?>DHjv4=?{$M)bbm$}hdxF+<33*uU7V{%K z7BL$~8`UGT8&PrvPL6_>n!bQ|nSYa7x)PDU+E9J7{rzHC&vf?fW#-zjH4sRl*p~GB z`Xky1cnBfLs!FyfUab7xKZRGZ5W=fOp31BI8B7--CWKejpb{Km{PFH1t5yAwHCK=V z1~O7mv8;b22CB#%lP9zMW%5hyha08mIo* z-W4u22~Bt7JRG_`U=@cMqpSH3NN>TnPbYu?S6}cF{6^zLc=VrfiMcB+yWmk)XQVn! z=OvIUq{mC$V|Owmak_NhK0ARZhsVJ9?t^}lru^<`Auf4lHIE>%@Ayz&4AZXvG`kf@ zi*hiSm<_xf+Dybn_~!3%c7w|o7BUO+gwrDSQ`+pQ%PZkKG4b<%S?WGEx#Lq>_C{)} z0%ga|?@N92evA@>?U4KC#yuE1(T#j7_(Oc6LF=?AUyS2rHIl~lyzX(&V0Ub!hTKZH zVCd3aNH@E4>b7yB?B@Q76O0-6UuMA@A4vQ7wmCv0?h{5| z8tTW>d_jo{?Jyp_HbNUc&*$!%)zWABxx4EgYr8sYytW616&q;6iZ|au-;wiPDX(r` z8;I#2d#$TkSLo$!5~R^v zvJK>u_nRh4`+mUXW&|#GlJ{-Ou}BYGJsU0gd=By6w`mTL)DhNXWMJQ#pJ}|makOR$ zw!Bx5Ci%0D3MkzcGSII~G*x+M6-682dgWa?*N0x*KMjsx)h8xjK-4z9vXl4gmf2U! zV{9Br6Q{5%rQ6%{XjW+1p^Q2X@YZcbn1TsfFKTGz{Al5F_~u0UwH3=y5N%ghCdq&_ zqE?++?dms(n59Y;NRV*0yRu6RX=Wl>cnFEV!#8(1L@o%tzl=^MZeFZ^stQch?Btq2 zFm@^%GsX(KgkpTnMPr83YMcvk zkT1NZp?`4cNhz$_HT~7YGY8@}6}*FNrb;7db{$ku-Ys%Uqe_yA%o3?Qx;_RL>4M^M zKatFw`Gcq=3+ra5G`LbEY+IY4pXybNLUr8-&rE+z^KQAOTtytp|3m+5=tZTM8Xurt zW8lYM(YoNl@!4Y+$54|0UUlDoT9iASv^zc1y%oQlQSa&Nr^%@XzD>*nkuq0UZvk{l zJOiX<`QJetIP@n^?|$w&&9ug0cvkh0q?lKFJEcPU|eF8X_>M>ni5+i&LJv4bR6__PpB zT93O`p?%}GaHzHzu=u6vQUJGoE8)Mp;z)UR_b56+h>+OBJPm8 z?g)#iaNc-07eFj;!OQBBU>38LR3k4zD7)aNbe6{7!*3vmpD|vX+EGtY%{Z$4&o;cr z=LG+={q8ZB7!PnMX1kweN1R9mNzJIwaTcB?>pxvbHt`O<-L83f23{#i$Tyey8=29D zz|PJFb~efgL&P0sghmEPOvjE6@)4-?mA>DOHWm>NJ0lk&M*-?0D4%z_K1JVn>wLUg z9ShAXP+y|3U#Pw+D|+7C^l9PcWGc4W&U5MUId*!Fw2;4KDjF^Bkf zEM44LZVGs_pPG(o=^qOOu0Rc3d(*Y3n>0VoyIG<$ew6U^kOMqk#?}dV+FH7Q_p~i- z&(fGV=3D{u(5Z(PXqwbD3xMpTeV@uj`RpAFjAGg{vv98k?a{o&IbuVaRtkM3WNZEO zIbuom^7x4SV<+x2**d}y;CD|!sR^r&JlELvL%pyfJWl;s6}E8Sd7hG|&KdG;_>DWZA`Ky2D_CY|%Nc?5X9Y1 zHTSt|FZCfz6X?Gi+tO>EWdB!j|6j%Z{{h9FD&tppip>L>spLF6=iQ2rAy)=)eJReyXrlW-qy`2g0Fqzm4s4u^$yvebCilSac>; zRR0_50hq)r%KehqQ!Hm30zR+W=vMXjX9~COt6g58V6NDhjEjuyWVkoM6-w;bps021 zMg+6YsfrR#N~h|lVBEj*F6RmhYmA^LC`Xwz!c#!BfnDlw^_k}@vnzs=Cwb_R5;j`} zeY9t6Q=~=ck@?^v{9ORMov&BzMI0$=rk-7F&wDqp}@Y&c~j%;m?2X zX@d|2W!9DV;wwoSm4U6zqZ>VKCQ?<<$is&56Cy6~#Ic44x9evwuM`(MRL%?9E;?aPEU-)%R69LB z&z{%)#2*}{X?D&|z7UO{_%l$>>mGaKH&A{d_`MZRGDadyf{yh{6`z|^3j1AmoeNFW zscTvN7ZYyvh2Ljoj|xZ<-@_F`RK5~qb}adCmeS!v|42wcEg3MhTSDn%3N!1&K+DMF zTi@sLO7)+!MYrFsfI_T)+Vu9}KlZXsfk8XSxVTliZ>dS($`wCOdmP~U^qJx&kqbY6 z?DIh>;a^UMfuU==>n#6uZt#^&ly*Q}7YFVUP>N(rNm96DsSU!SjS}_Lm`CsZSybOS<%l9W zGd;|7i~Z_9YH?0ndhh93CA(9eo@oc;=PR2G{jbD!1|_4K``SA`SDe(*4i=YkzO|Ny zj6by5f{=LGb5(>;S~JvS44h`e{8qk5o7J-89B1)kdYl>1;~E5d{NdfP?0eG;?nhg+ z!tNVP6@oiVQ+elGYR4&n@;xpHO1gWQpnT)wX15dT`X4(}UNp`+I=s}bExDb8dYQQ3 zChkieFac)MWXCbo)1Mj28tRCMc#j@?SgH8ASQSd~o-v0>UhT8sKLjOME@rzMY9jnvm_w$UVo z+(Uy-){oLVM-fo=n9r2=KMb0K{qCP=F_GTyG0=JqAgh@U$G(6sk(@Y;xkD~NiQiXa!XgpMauEuTr0+z`c9d_ZtkAxeLRA$fbC_JUWJy@NA^MA#^Lg) zGRQ%?IsI5FfhEz3`_Wh@cJ-7R@#aYPGelUMd=PmIneIy1X;3Vv5g^Q=4>OT0^A{eHu4f&Nvsx#hM%1|4ae-Qz_D`QbwZT_yLZ__)9EX;0jPGV=(Hk%) zj83NpIwzi}q=W)8>a3JJk1L{i%_ZIGBW>eYyDH0~Nk#I+fN@o)otNvA z2^Ym{(NFD@FF*Be=+NPVZ=_$f*AsTDf`c>hFUP!3h%azow=X4EdFnt8#kb(V+2FNj zJvO6aqn~A&Gy?L4PJi{U81gkMDm4V9AX741Hd{Ks26R2Z@U~k2ULLx>b4V%*gtzT} zWCTpNvN!wK?wPlTR{LZY8sAVibUHi9Pwxty4h+OoU#rORNeoSlS_tsNgX zpZ2BxN!sGMM)V^l;v2P^oC~tP^#-teAo%2GtxUPvUa7%}REDi_gxvNu_~M{{U1AY; zzE?}4w}r0EOeN9s41~e$SqNd}FrWR>3A-B}pej)CyKVz~wVQbOExOt5AvHfxpcqC<0ZD(@HNiJd4Gd7oCB;Ufqz{g*IEfUt z&zp1H#5CkUoedjFZ%JH;LuO$(&7=>{9{35_<4K)w@j;4jMewP@VC8*~oAn~IOAWk69ub+T=xx<< ztp!P{aB}I|v0s|V=6q=XQt(O`!&JSdDhsN&t%G*v{|sea$0TQr?eROM_BFb$4# zOj5)u?7QR=i|bQNhr>7GBsb!miO#~mU}p&v9B;4q+T*D#RmD=ZvLmw7@Uuk@n!JUU z9AR&NL7IK_G>C1$3(%;2S0wwik<+aQQ^~xUj@qr?8XOi|%!gq>BM?X~BohDu`;l>X zX)lHp39*h$sl{{C=}|F-f+nhkw+Q*%IQ_nhJ+Zan4M5VVec%Bxi=?3Q^Yqy8_=!i@k{$a@Cj!- zxM$_pAOvdGxE548z%V`1x@29tHwg_!&N(gcOYZXU=)u-oa_6OiA;~yM8;_c}IyvXZ z_9VVdSZWHbutcG0`+~`$l`M0~xKpxmSAfPw541mCi;n_TQKFL0Z!0?Qf8rj^XD>3> z>jztioou`x)m>{H6T}w~6Cg&`x>33 zpo(gm-#yqmT4l|0pLp$#gyQe9v8D-jkP5$LEG{- z?IA#H6XgP$hSFa|GUo)PTNeFSZ~>8~{*+x%KVbEPVD(u-r$Zu_mXPdvcHO4T$^6?f zsca`#F3FL@w^gVz%JV)}+Ui01gaqF>e$17Z3KeE83QQBY6^(EL!=vE(N4kX!b)G|| z39v%s{LM5%d8a8{J^{^pGkKUdZwwsvS~;A@qEc zP-8aeA46W(f3~<#8+MZreAkxp$C$kD`VPn}?DtSVj1z)x(Al9&F-G8#J}Vmbooexf zLDo^>tLE}k;LgP21C+?41wbs$cu@V-tx~-d--j%g=^0lkP2mkVK|bu#xCNH~{!4}v zTDO8a>OI?Oj-AynXdJk6vOQ6&9P|qS8eff$9gDp+I&-6u9{ExPBz|y&1*`8)?LE8~ zb<}*?YxmKQjFI=-iSXwwqMayB2io}SiC z$#D3X=yxBIdiuC=OY(OB)Hz}y-}j;i$-YX~VKy*O4+P9|j+mS8S4TCJrSt(d8Y#V2> zGAn1GQ{UaNUxuz}x-;>T^iGJ1h3eG{44O5FrPmN=>gz{)Z%bi(IK3szo=m*^> z9AVGDCLLPEHp-e08@Q1{?`MFrHH3t91k=wB;y6In4hX8&orSSPR}+c*mN|o*mOD#K1V2fy-sCoh9%Fa4*JBUE6D00vBl_j2HalgO4&t&}g7YyD$UTKaqQ$n7D_+&H9SGCO zf&ZmIJRX$-0-+Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D8wW{5K~#8N?VWj; zRMnmLKj++gYimS-2D+=8rMp=g1X|QdOfngFf`UfL;*va>B%|UQ2m&FK$u^@Cl`SZ* z8IAAcec!|-I+92biJF;cVgd$51Qi4wk zo~Q2F?m6H4`~A*x&pizvqDP3rfDEpC=&?$P+zmtu`WP;b8`WbKk@(H%Bd74Br(Jf!nb+b|!mq;eq^oyT&%hy{T zS8HPF_M|)yz;CDTI=cDRV&r6@l;U5X|1Djvi&iQtKv~yGrTOvZ9a%M1Zi?1lujY(U zh`;~lw^%fPA^Tr?0p+Gn+}lmj^4u@jx%x?3p8G}jxOJ;Z9y?0Qy4BgZ-ty$ur^|JD zaP5nzbX|KwujE*k#g{JrBsQ>R)nn{<=I3l#^%yFZD(hM+g#m7C8cP5}%evLfpF58` z7kmTDwy|uR+itmqmUXMqN@W{Af9^cK`OR-Jf9||230f&yf4!OoU!TX&AwyX3^?9`Z zdNnHL6TWEvLcaa&@3LtALRx?Am#3BLR-c6H<(YUf^h%CWiidywAEcBbWLexfZ$6>4 zt(J2w(thX1n|F{@n&a;uW5x0%EL(Cfi|@Ic#rNFJie*bU{{AtHQoOxp702E^#ERuh zSia<5RxDq_v3C#g_L@}~rO>X6W!nfLuxuOcx&Ya5J56{dys$pLqw5>KW9b0~NVvXj zCX{07vLz(as#wl-(30HPG?s@q@4x^92Aw5!+tpyWjgq z5P~JYe2&_>(HL`rZE0Cq-;#T6ltNfm(fE+%D``S$l$&DzOD{0z_B#Mry7*pPA*lP* zl~_&ya{Q8ZU8Li5i)&f8nq%)C;`AXysh{r0^_C~MK0*lETicj_)n#A|-~ZlsFpX#P z=wP=DFgjJfjj)L(XW_qgd-5PScxgIh-s{Bhp03pXNsYfXVh2?3ji8wY3XU*upS&=TV zKN7NJx3HchXi09Hej&j!^7JN!<&}z($>|Rwj?L|tUrfa5wR6lO=6bAL`x|2Ep0d9< z+49OJC$E88mn5-diU-!bKrET+7T1%MleSk$BSTE74~TMn4mld|z}nvsOC*SI-asT2 z>|V%!0T>{bND^-PD8ljy$<%-4+TQ^5>2tcZt2c50!j4Tmks!8t1C^(r#+?fmWhbfs zm7qM2rHk+3@UcI4BPiy2r`9275KpG)+Pt2KW91QJr-$ts$wlFHsbR&+E41mFx z;nE(<%jC6en@A)=*U_UGtr2AoN6JgBHL*9>QxObiwWcc`KlF1~V=keeJ zE9i>H_}bU+%c!@LFG;P$!m^1^Pq`8FPW;D;m= z36|b>4_)zCHVo*syxeqmE?7iGFi7mp6WUWM$|DCrDM-(TGl)bYeD$W;Cn|o&93tT` zE0!-oshmY6A-d(wpwKLG5sSwmT}C32$o?)`Ui!LQx<1x!ilKaRiXaw?v2w+7jvP4( zKrk3$&b;}=VlkH9cMo2Ard$kNu^11oT#=nkXTl!((Mo3Da(huC|57NQ9Ls|AQb7h4 zkqC3=Eg%vOL)z!8Shj?&SS%-FaYP~!Zo2ulylFy3B*N@lZs(yNtwecVwp`_TgwpHU z%JaaOZgt6AcT1O^0GBh)DUTc}iA*_i|;{s9u?sT6_E;T+a??iqm=J+;_)~` zD=WEk;i9a`RD>f`gikEhR)ix+A-I3}Qda(O8A|1sC-6<=&V`Gp2uFDMU;Y=j-Z2+| z2Uo5@2!Rm7*SvIIAw*ufrHk*OE14uR_mNt4o=?aT#}P`WFUysj^7wiI_qX${~^>`A-HVlas03k+?rB2Z*~K z!WbO7sH&-?rYgeCudm>?*M5{GsZes!Qv-U^l5&VCmcLw-Ob$gV7nc_QdiG76F>-u% zKxV1;33&&&`Slgd-MEZ7fAY0z&Z|rFNE>X49ve`umK37D`70 zG5#x)$`N%`*AAtsrjme&Gdwy3hc1GteazmtoH?&9;qNxAv)si=2pKGyC#Oc>UQ%)vNzsNDkB;LI@aP6zhk?t`L@7qsc(glQ?E(Xg1%ON=V z0)%u(ZCj5p#^1#y1eGI3Q#qpECrK)7sj$@hSn3#-I+i6ZLsBkI#;2T2o_>)NmlltV zyBdr^NP%%G%Iyk)l2#5Bxa^%1vhSpDD#LO=< z;)<^zoZMY!CQH%{n;tGoP`M~K&qsi^}D2Y0=_=TmdVSE>EVcd!Q4Q#0c$gqkkI-LVmjK{{bT6s+|c0zDA)L8EMP3T-zoEgosQ zk%Rk>_>1ot1`ivWzduMwFd&B4AuI>!IMiN02P--T;RFdZeiV26dZN>=!5%O)ZEj8u zN#zk#j$i2wWs_6Pc119lw}0o|jy8zD;SMA(1O{&lf=tUAu31u zPFvbofgm;0ug4AzU})VqhSfD9g9Fp^umBiqzKMVGM-+=5t^Y7Exo3vrq*!8z+v zYG-^ID^i(9(BEx(xM(j%4-YRF<&bt#3(?3=Tj@3n2xz>V0jxH)6`ss(zCL5cfP%(&q6qujfGLVZbn?#@7&I42O2_ z#CV?niUi*WC6(r`RqHr-JjQ#mIIsMEBQL+SfmeRNk$nfd__M1xlv3Qk{XOpbeKP~A zY8f`FfuSQC5K<88L34UTUs_d&Q$kM6_4v{1=eT;)|3kX(W3=Yojy6b>V^T4aTYu*} zX^)F>{QIgQHd zYR(uojH=ujvk~a^x6}96X5Ixs$t|dX_`61l7?f2M-*8^c<{iOf6%^jpVdJVWjkl$!xVV z#vr96P*uYtZE@^L=OgSB+h~iS9P{Z3r<9zywD{jsZz2__#%ROg_7;o`5Nx`L=%t@W z2#C2ZLI|Xk46mxf7(-`=KT-9y1f=w}g)}h-_V1^vsv3ZVGN|rL-&tg|=2YOM$mva8 zkJGoFdVkn!OQtUb3ybQ)Yj`31hQt+)=(|P~U!7M5MsM<#% zF#tvzn%~;Rj(4^pgJC?+V^8Nkf|Ebl&sY1@eiMw&cJYpXiW`W$5M3e-_I+*dzH?P z4yvP3YHDku zE!M#nM%6@-QgZY?e^1Y_%1WY9-`^Nx=xA@Jv!escvS^$%mNT2ibJ69OP!SAp<0sDY zXZn30l77EdOu~-SOP}YXTYOosgG<05FU1X;9ww05mtK4yjSQcTyx>bb@P{pQB~$F$ z-bO>?Xrz>Mc6Mg{QSKlxgVP<08$Z^>KW%xBgIX5d{_i*5=GMzE#Y%szqqV~1q!tJQ zP5{sIPTlL^a*^>psX#Sac^ux`hH>M_!)=6wp&}Gu^5n5tmW2?4Xxgl5YHN{FW{C;e z7NhlL>|1tHtwjG)6EAD_aFA8R7n z{08?9yqGTG@3qO0v2fN57S5W%Z8I*xwguXFJoCnK{_XW2@XY2Vj2vDK)D|dSg&e$e5UI;@DC#w6+!*h!B|cNfZJxtlpn=YDMBd9wj*OW2owJ zpf!n?SFw1|#VBbJ7m`qp*$8o>+h4n7C9d}0$|k)oY!LtfmavdQGPc@(0lBSn8?&Z< z1EcBDtWFs@nQp$X-Yl#YA+5M!)5AC_jkqy@mq6JO77v?ATv!Bzzytz$ zenbd^(uy^2-j6aVzwuRL0fRP%=6&0k9=#sNN`I|q6fbuE8>5DgV%LEdt~zV}Uxpk3 z3<`%h8uynW`a)*8p{JQO2ttnCtCp;J^L|n~j@BtA)i(JA3&A^`ThT_NjUp@uFsftA?(=9o_-PG5{Kt;X%Uwe$3=J1fgr((2)A4{ zg9Wo@WSwiSA6fOry(GM2Xq`ez3lQwszYTy%(I%$UOy#WFb7`m^!wa2HvUcy!aCHhP zEG~(Dj$QkA=B;}dL%+z0I5r~NbvoFVMc8rj!pp_raPi*enKzcR>WzEpa*yKaB;YZr zwuwo#XECK_Dvk^=p?VUwaF`T6mr0?&VsiK+M63#~9DNN!2-dd$jCJjgqtR&7_pY>) zCMV-#28Bb+nK_MHFTaF9z~R=*FJaEiX$;EQ=+qZ-yW!hrT-vLagsd=4wdXLU=4@=? zu=_w8lR|&Rl+Z_*9R3Iri?`#O_*L7JXsu}sHqqub^O^cDa%RnB#ze=k$814Unybh| zZ$786H;Sb9^ZDJcPt1dBUnK6j+3?={m9KFp{E5~Igvt66SNYre9m`>2bP53(WMc4a z04!;tv_c@Ugrv*${5{+F8sTY=m-qdOD@K0~A^m1i`*!r{kW1E_jHcvj zLM;73Y0UMAyDpwm#9cQpyclxFC%OJ)&6X8e(@{EwB`h4vp|N@rjtnp{G! z9$NSBeeMh`^eOrNpNYGg3!|S# z3JcFDT%BTF`(y0z{zR+ZjAvX-dRWlqx)@_fsT6D4p2Qf9EMacecZwYJL=5TP>V|3O z_u5+x4u`mH=A{G!4%!%gx#>YxZCXLxO`wzj69yAT>i}=HH}iJKPK*gKuBs6OC={+q z5)eU5S`%EIV(s3a@of7~>GIxZ`@VPZbc*NNAI3ydt z5xr?vp0kxUDcA7y3ob|Zeub`mw=l|D#As&`>d@D55BickFo)wExAEHR=d)#RD{r+o zqm(3KoyM&CFJ{Lq>)Id3CCRwzMk?%qOs~0~2KyYwRZqYr$@3jgqKtnEi%freSBlnf zD#@V-&B`?+A#9#}KEcnQPY_QT1QuFZ?CA8sSd5KU&{#Ww#@YdljaDGAQC@)LftyL~ zzm2yxU&2+RzJ%*Zlu@>(eX$ju!P0M(OEpV z=NG76-go7qY;sEJnls2VBQ1IQ#RRdGVf3&d<7-1SjtF5}0#6yX?M<+=GwH7o0xkRe zy@FD}gqjFnJTHYrl5qWn2Pp*OqT`tuos7{DHgEoGgz={d0?A0uV*6X?BaQ!Q5kSBS zFmu#rv82`K0FZLYDb{24ge)+jxD`$8lX7l{2ohrC{ci81?p<2qZ#4h2vz2*}m_cJ_#y| zoZkFOE(V7S{7ae`(wac}WR;zrNrVuLs|g~dU}tBN9UTc&`VbBw1mkN%)K!Psv~Liz z&P^~dWFv&H9re~(Tvl@pLFvEXTfOOYQl3C*Uo2^mX<|aQK%=swU|JCeM!C(icv1jZPIfTSmR zdSe7v2|~8RfPjM(633EUeaIpS)7RwO#vDGg7*R>9lxtuzLjXx+anzw$kx zWOAgGJxWC|z|EImjF1*jz8L3;=VK^i7(XIN<49k|)drB#AcV%CQAX3;5ocR_EGs)Y z6Bsl?XrwfZtqEXR1}zNAXtsC6v$Az>oGp72yt4ZYHtZdQXCP$Tgfh#l0h^siD!KNf zG5+@BU3});GKTtwx}FD50s`r;Z(Vhw2atW- zTpQEv1f;B~34s)%&m*KV_ppV($2kiFo)IU)4JcgBtlY!4eOp0jW=&n#zlo=mg8GI! z|LuSj#YKqh362Pp72U_5(jKj?Ep)VldZhRe`J`~NiEbR0!%h1}eYW=HJ3>nI&#`$TU+qR2M zZ*8MtjK4wB82{9{lf6HAbBke&3&L9Zn%R(b1!5Yu(+ir$&MHWXPE_a~jXQx{<&c zgE?|wKaP}K_ctF$ogVLN`J9jbl%toe<_jkQN{_-FA{9m6( zI1s>7Dof7)FU={@Aqx=D*1DUPU9Bf2ZLPbzJ&K?uxpeGk0_pQ9gb=*Ab9eS2=REZD z{yo*9H*`x{TyxS-&tKj@Iix>A%OF>Crj4!Rw=H|PXv`=8R&UtI<>yT0{%2pv-kWr9 zb<+1Iw+^cRnj_N3R%R#^qR0TSR4E)S3%~3O>qfBZj~h6@ZUiztD!%-jsr>wv^`x}U zdwl)6e?c7_d14W)C-ka0wr!L0Jf7XwLadmo_Y+zvI(P3S?z)8R{DE0YYev`mBlA;@ zh;1{ou@1*}%HF&bLt5FRUjnwx%n1!dY#T?)Qz}8nVRSM#^#*Z6I$Z@*m z>90i6?QzmO;Fafrzq_N`r#Rg-=fnT|a01=P;luwJl0{K+`0#(te2BjApJ)PBnb1Xl q761SM4rN$LW=%~1DgXcg2mk;800000(o>TF0000J9<*|(ICh+>Qx#x|G{%1%^v$(BfHQDjeKD@!DX zinQ9Ll1eC9{=b<~5#8H;Z})xg`+skJ%=kU)Ip61;^PJ!Foa4CuE=@KTJ{AxN#HOvK zW&nI^0zVc^jKF6p;?WTBRd?9Pgk*qr2RpkGaCiqSnB?h<1!Fz%I1tF=k)ysD=PfYP z)WjOa00lLL2z*T9v$OS5EJGrC?!jwKaq4a3KEp#$zpCT9d-1}ZRpILo>B8kFt#2!M z2H4v=XJ5z<@iP{dZ@9Xx)%Sk4eV697E6HIW*4=bn%NJ5P!&|Eg->jnB4zWY4y;v5c zJVC(X_qSM>6nh;#oT02+(tP~=bn}DaYurad*kzYB)~WT-laIw*G`o4SmaqE6({t zN<($3tMg}`P|wwW#FC9lFrQqm#}~7PN3*)9tE=AXL3OR^z7_kF*{47*JjrVgWYo-V zI?4?dh-@rvegPT45ErG! zB5ZwskMde>t3tbs1g(2MPi`r_{%F`2)3BFrWBoEaeIcaJTcwXrvrUteNGDZX&JNZV zE7kdRNs{dzj!)z{UfTtlg*j)sO%-j1eAYgko~|D0SMAu zl1d)ajnr1ze*d=;e6NMo-N}{a^R#-_7M`u9vKp+Jr4`(#S9!mmSVQuhEiozphmBL`W zwW9DogdRlCSru!G*E;NqH9Wk_2y@sTgR~Y_+RmcjfdU3_#FEfp4@U6YB zXOxtbySuxjJ4}+`Y9j?jB9T%MX(?%G37~}p(bI{9_K6jTx-<>)9izXy?|eh3(3j-Vxb z5RCvul`_B*32v?!tok9W6KUi8A*?Z9`#Zb2I#AiM#z1<0N5s0<~=daBd5csv4%Gi98NO;^glo#}&)GTTa%)9gqUqGXd z4YbnJL#YukZWO+>)f9z+5=m>kH3}nxhQo0fSqV97oRx$%77mfH!l9uO)(8X=iGf=q zpa_|HLufk@NoXew_RA1>Uza#j*>S!)C^1Qa77hrwWQI2>A51`tWg zO4F#=?TQD)813+t zsMU{LPOhM}TKK4nGT%!CSTHw412SnZ=>|MVkWuTtDpg- zTnXlm1Z(2lgPxlM3GeKH_QblHqlrW;iD)kEVZM+~>ZAy1Y3etPf-~d_a(-(l`8v4O zpIin!T&I<%kqZHG%gDK{0j**4>yYyBKi3^GuX{Q$OD-@=$@jAW2!2-=0FYDK8rXVV zav?SIhl>Fip^;q#U|d2j0+UMt4*Y;Q$|*Co9s}k^%F{Sp-1rLu;LR>>1d=>CjRpu9 zN_(dEB~!YUlFM2nT0>}LqrgDJ`CtKyTmlr7kZ%A@Z%`+jk9a&l4TTm8u7H^MQ=|dt zLiq$1A($#66d?knEd~V!8)&M~=uM*VL1|7|EucagilkMMb4tAe|~- z-=i!2r_r4+kc;P~iAxc=5D=b-*5edBz`z1jP^5``1Hi7Fsfg&_Z3cuS=^T16B^1#JGD zJ3v#_C9A-IQZMabP(SOgz(IgR zzatZ8s-0r^30Q^{~F!- z?G^oP-T9pbh0Vibo>2d<>W=hp>&_Aj@y$%Zk&8S3jdW*eqx~P;5taaRzMWd4dLGtt zzk{_j;=2Yki}AlI*Gqu;^H~3$TuXm%f&RC#{@$W4^mL$0EX5y@>wmDOIMZLe$|anc zd2;w3~asm6$jBzpgU0d4Kku`UkI-3%dV_lX)am90H*oN|V1o zoQEQ47Z!kB{B}4Gl|lYn59gOWmHJiOOGAEiF9Cyn<#GZ0(sLIU|Bic!|1QOaLYH`# z{CUlVLcdq-U#hx)AI)84Uw*g^{@UB7U!^m$$RAq_;17(x zWK^Q^T=e80rA&GOWr#&5^8Y!?7Pvj)VEEsPw0T!*0BQ4{Xu|O8Q2S+a{6_^tb{^j1 zV8o*PgI~wuAEiugf!SGn!urc7TNrbWkU>FZmWnz5%frJdma77|=Ap$)12I!HAxoQA zNDb5miUErQxTaJq0%T^<+9d-fBml4)g_L-wO5j%@0vhz6~JU66yrl_4LE8GqJMz!`w~i66=eWQJvESeZYm&x`rDXkR}#D}85c>rTTcoXfKf|8*@asMf|ouNQ6Aco(#{o_IZ;$RuTXj4a^ z4U+=M{|R6YN^$^2wkdZbbL5x&RExRXg+*c`y`;g=K$+_sD!Y*g23QQ?5Rex_%PTRr z__n&LGRkV|G6)r#Ncf68<$-cbKrT%5lE zv4w_WzAHFyBL&jgXxrBk4##(imOwVUJ}o_8QJ4tiwt=5|%f1z*vi`NJyDgTITKgqIb`k7SKfxIh zeF*yDPcr#c7-WU#*i(?Aq{e?)M+K=xD@|)KFP9#Gg;oaS=mRPLQeSia z=kNjm{wx2@N!VXG1sMF#B!39sf8hEDu0MppA8P!Mbo~R@A41>{HU3Asei>XW-~MV4 z)(P-{+=0Id^s!)&@;9v*t#mcjK(mzpXUi{~1WK5lwM>a1(5f2B58WxTRqKJm6(nsv z^%X-5j9dc9lipo-Kp>t2+G@&19*>6493dIipBYrz>qcq~Hi{psBg}UGutnhTxjhNS~(HP0grXT1}f*)-jx1 zu`B zxU}Li)4(dmC|;HX?fN9vc7+1QemRgW#>XDA$AHoMy?1-Ih34+gQ-RC+%o#SnKPGoS zs&b%ZCfQkJncoG3+381bHJGD7H+48W7*D%A;bW7LQ`R~)>Yd$+v>4QBIB~te<XB~l z#F6KlTU?@Ybo8k48TBz1bJT>A+~8VZej1Dj9L<>JL`MuWvsX(7wT8;DlC?l+Pz6 zy4>!gR}F7ix|F70B8CkfU`QF~EOdChbL#cF{l$*w?eK3OJ9k(YU#Q<-k>|Ezw}gel zYgGYm{>(MLxi4g7MhF9ede249t$}7=Dw|Lq_nCcc>U-7V6U10sFxBF2=mvi4=f!uu zJ|!aLE^S$%@TrDNq0&j9ApU72A}Ov9+2}&9Xc>Lgv8U*RV31Ma4EUqtt;r&V=_bDR znWw02@lRA=jo+Obl$yp*CRHBzyf*7i=>|W=#NkTcwa}Ikn;v9fdeK1UhN%R6>sF4; zk3C6J?;g0>)45Jc#*~h_-V*A0scfRV@+8b-d@SVkp7eXu}NCyf>Fxl## zx3{^`6L$&jehPD&>KQ-Yy4*k2^PQP7|CHbC`+dG_D!JoF2nNQc{zZq>!t?fTjOF_< zaV(}mgRe0Dto@*w!nEdYy0;GoQ*Uwg2p?FdO>9m7-CJg4iZlwf{b-e?t=&yrSsnqs)m_lV!^Vcjs@}b*yK3=%>d;7S$et z-W9u_daoWIMK!Wzj#+h0$F4tTH>CLbdA=xHlU9fIOm>lAnJFDF29JEA^We2kMwF_d zKGVPx&)sJ^2CPm;nBEO7JAG_DJ$HudMf1ZOF743N@oaSyPOtE<)b59jyxDz#1PCa@ z>PKYPl2cLam=!C;D@N{ly?DDx@1tJOQ{RLhu*0gGcN0Hmtmgq6fp!+J zY-UcrY7H87xA;6ViwoX5(-)bVF*tn&NiRZ#rj5=r`ZqWbT0YAc#04ZLU_wfUQm5XX zoaT#~OhLtcQhba_>{{(M+cXk*M(Mt4VIA1|Q1b00q+;2jRh@6EQ86f~(JBA%y9xxz zS?Lkk+??o_8)6j8@;h{q-135#J=xm3pI;Oju&^0qq?a`#*Y|es+$zV_TJl^ZuZ1sJ zTUMMmS|U+6k?pbuim zR?#is=I9u0SxH`=?8Mt9xUB=3=d7*A4>XIaa5tjc!dYK<`VJCqTv)fwJAqtdxHY8V zns}q=JN}%$>$`R_57~0H==NkwJ0g_$S+;HH-=f6db7^g8K}E~Omt{sdUi%M zOHVw{;Hhyzi3`yj^D2Stv1SWTokFQK-BpL@iEo<3%!)@tDn01xN0hbvjX&K`n1xyy zw8r=IkLy>hQ>&M%j>I5welZVk0_)TF|Qg#X!hc_BqKlN+Uno} z?#t;h6Z>eVgrR~g_RSuyH<@u8H;!F1Jd`am)4e(mr97eO$n;svsK-1>FR^yt$+pdM z`cDj#VlM9(JbX7H0n_U;H7MAhHqpMZyny6>h$E})% zy-iYRYl5kAb(|Ga~CQ9aK|LPpe{=^{W@-E*9YxdF~me*5tC@{ zL8*7;1WdTLlmdI>Ca(!o>kbr+kqaV2|8h<1JdR zr$yUU`kpI+8r9brgQ9G`Qpw5d-$uWBIG8-@Ih1|P^W_~Wj@i?iJ3bCYkbLiJbYIc2lAl=-ZO<)y zA}jZ)CI>8wiDxgz1fs>qMyx#Lx$nUyK864<&G$U415ivuAgTOQi^)}rw2V*QCtYhq)a)%S4J!f=pJCm@Y`)O2+@RKP)JAM3QI zNT}bJ%D8AJS=)-=3e7vGkP{kjWzc!aW&xAxD`H6R9)^ROuoj;|wq4_OTaRlX zU8X!xD=y#24->P;xpdxF$XMwYt-a4FTU|%{VoB`2N0ZJkxxxJI4~xSzjko7e6i3PY zv)plg=5~|P$RbPZvA0vZIS)+XgZvJ*s2;QQ?+fd(0x&DQcHyoTQnl_-=$IR<-OawK)s`<7 zQy(#AHkoyQIZ=ns*u+S!w*ps8c&0&oyyu|9ByV_Q=cz$E93~=4Q${LutQj-Spu;lb z)o;*zMj@JU)4ijs88*Lt8F$`01WD=wODBhneC8j1A!6?PI7(MLc-iKC0(@(U8u^1e zN0<2{g5N~$KQ?k?g{EH-ZihLMj@K_@e4JF19e%#(6MOd^NqPp&N2pvC;S)B4@G?lZ zsi)+4GX9{7&iVMgoH^ypNAknHG6Uk(W2C%4B+P68%Qzgsg=5uTq^`EfdPXG18vghb|`LqJ51q|eN~ zi5Iqn3nF}(g;&JABNO{;W7T!Hra%L^4h+Y}or>8aG@iaMZ-!wPW5i~a=C$4ydMZOi zlgrTK2RUaawp>JQl?r#=+)W(lg@M+rUBez8cfK?By`_$*-K#7P6$rtH?UPV^z0Zi9 zmC|;(&GpfPrP}JrT_4aQ!=9uG-5}006n(62VtGB2`tIYfZ&k-^i=fkVO*p@k1Llz9 zaupU73e|Qvb{zv}*avp*YKs=0C+d;WssS;BC@*xUmC<`g0SsJ*p2dHM=uxGWpEr9= zLNXN-L2HfM!DWw+F|kIokBvR3X5F|0&R0(MUwL({%NjIYq;Vg|7J#jr;E#@GW&-HnA!r?71Uy2?(w+$W;{~QmF`xF;C zk~vtmQRn@`yKW{7d1uypIyDL(4&sjy(qS%q*V*`)YQn+r?h zIS)4ZlbCuX-SaE`Hl*8(lqvY0^V^=rq-PPpc62gNjp;P*Sn+YVYL(TM%uAzS-SpMH zS$&TW8yBSamc_Pg)nsuSsu~*gI@no3tSOT5Zt%RwljAFl|EzjO^jOI%Zxv1#ffU}L zO=f%*8aF?ncLtQ^f1;~WaXyRLP{$YcU@CXCOkC8PU35*(N*B!!hOb|IT=k%qxU5Ak ztddXG`Mr6_16`$tV2Q^Ct`oP|j4})RjtiOeB=T~HLXTS;UjpKy5l4GTQ)&$5ztX=>P=)7VH9cyG?5Df&K!(04v!kdH_2PUzdd z_i3g*Lpv-_#o~+QZYnc1Jc&UCMVYU?zRIEMT%8B~gptDSiTxIsS9!BXH>y0@GbtK| z;Ic6m4fn);-eoK`EfQf6q#|iya%e?G`;C%eO~BhyHs)|^Tzf$wviF#fDd!%~rto&5 zlTI_v`(P8sS5%mfR_7`epPu$ELq2)XbmIMri)<|yL@VN-Up*Y;oo8{bmA~i+z#LsrUmz4Kob;dlaW!-GV1B_I8x(-F+E}vc6;K^Xcd>eLl5xx@GtE$imfG&d_I(S)qC|L zyGeyxH(!)%rM=CrGr2oHPB1)R5V%pbiPMcqq+KO)FnUmj6IC5o9Nr|EqoHHtb=OXg zt3fws9sjB-yeCJBd0s;9tC+XmGh??1U5UJpY6AVCr{lvkEuZIYjx}luZ%#j7!p&+6 zPYLJZIGO9m$o$4Y>Do2y zi+8c8y(Qw6$XK^=mt(`;!b3$2(D2xYoDVx%tH#H}#U;#6-DlsDtr!ni5jP;QGP`4ut2& zG?P7B53lijVmi(q;hdMSBV8v)ReOD(kruc5zV`#Ivv>2~pW>1YPBv`Hw}N&@g+gOG z+-qLwnQS|8vq>~mUmg~a&QMXzKebhZsHsqXW~Z)=!lziY6MlQ-lb9XC$32yIiXA<> z85IJ|a;4!yS~nNddY!uV7*liA-iqZ~>$R_K$xyknb#{$TmJjQOI=2M)dcVn`P#aHg z&9G5uD3p9(F#VF^3oku9@0LVWqf$1n6VfMEY(|C;GMT1?-ibIG0gta(BXv zKGOJr0hevkm{d0S!p??hfbwGNxVUCHL?#Dgoy9WSH^9x|cPAAGb`R#qHx%zB<#Thb8H&Tdvu%5^>`; z$9Cd6Wtf}N#yyfYi74v30oWUy<3D#vF}Rq{Bz)L=`msnAY+u*55|;tIaP!eOykc_X z?WaPVW_U%#AKA@}y`X!!?dm|viM{;CWW(w`BC1@HyWJ0R=4R$0Y>lGT=~zD6mON4S zGs8jYU)+mJrc-Ci;0&@^HL_>_Q4qa^rsJ%@ZSjxe@Vmn@2(fTucQU!`bl{mI%De+j zCH4+Y(FXc^_qepC9H7@dY~LKln8Y!z*QRl={cuneZ}O#01-MnEvL-m~2hq8KdMcfC z^#bFE_E{ONi+Cop9e2vHLHYF^>vGG_%Q$%SN}OBUzY*7ReGO*$ zvDa~T8qDRb?`~D1rg^hgz_S4gkAvs+pxdA5{ z-$Ng920FdD7;D|1Et^)C#-)Y(N z=&dnvy%?dK*{@?)O4q&AlA}?*U8^5T5*1$VzNX9v>BSi@V<;@*Uso_-9hVy;o|6Oa zlN0gUAjBY_6lq?QY{XS(Fstv#%cIP#!XPU+92Xf7S|gXkMi8*WXuEAv!Xq11uRZ0n z?x=iNoB!&n!1Kuv+glf_wH?h8IUyWjYr}SPRG0G@H(TG6uk4yJbJ8imc8+ztA5N{* zy_w)M7H%`06Bfn>oM!@CY<WVkq8}xK|m|y;Ugc)=3Vitb~2%=~^ z7-YKVvxpArPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1q?|4j5c2?#@&p7YP)XG3=W|t0bc76-og2xP?&;}q^@2l(IIf)>?6wKFezQ4S>01?c0?|!|k z2x#-lzEJj30@65ZMs+GU9Ng9}##uX}Q^1J;=pJKRHB~JI=i|?xy~x&;0W15S!~R=Z296r9 z4ltTqtyuz&oAsM(WdIIZ&E*-)RV@Wa2WXkk2Cd{*`n#5c!(pTQj_$KY^SoB`2$Wt_ zOTlTG_d#`7t?{+yvA@=^f21Yg{Pe@?PX;hqoVg}~*&4RDziSCN(Eu&u%pIv|<+_%E zW3^`3#eHgISnaQ0yG%>Kp;4|W-zUs!UACr{gp&y!Cu?M2_ZZ&S7xWSY)`86Xi0;_eOFK zf#XKhjMeJ*KYGWR!-1llo<2*!i3~^Y=2nj9>6$s!KI}Ce4xegW`gFTe&Qv&&AvL>N z&U83#$YnJ&%p6-sdCXCHek;fGvYbQU&>Uk~{MNBn+;ljc%wQCY;#=!hJc_B7gu^vu z`+A>nRq9%6Y6&=Q^wqb&zli%PLQyeSrTw?Sn3jQ~##?|KfoecHd!)It3gTht;o1D{oY%f@AW*d2@9@6)=@g zjcF-3Rnrc`pKq$anpKsv4uRu2CK{?p;ppoqoXpR3IJT#88mhdbw}jL3GaZh`xK{yV zioRA3h`B9U4ZUPur@-N%x>tq62Rc{v`Nb8%(fw&~`1Og*xM9X35zq)2KP&RWuiIVW z@bFAkIHukwUX{X$MDKTp<9jqxH5{ooU+bdt+#|i;9S$K;ZkF*a_0}jD*3#>AIGNNi z_cHb7YfVq>p>ReFYaQd6cuuwUFgP?@HQbxenx6VY;Lv2%ENi)!iRV=7PX&khm71)s zQhNv-Q?Jperdk)(azD~xa7;Z$HNSUA)-#^zP&gwR1v8?X!kGnVh7`;$I1!+;i(qaB z=V}^;qkygkN$2ueyWtSf)ueL{!TG;v2o7mqNxR@^Bi{ATtO!sSoGU`16wuw__-}(~ zt*`t!im^BIxwlmtX&0QHLpfk2meoc%y**eP<(YQDu}1z+Ce=fuA);7T%NnZEgEb!a z|2gJ4%fiWGs@6GKJlgm8P2uq1Op&?K826(ys8(H;XBvjH_l6wBde&L5EQh_ewCjf4 z3+HSahNFP421)1gSxaypfA^trJ^o_I#`XAHGmmTY`UjzNgYE5slx6?`002ovPDHLk FV1gHzw)p@6 diff --git a/assets/1x/deck_stickers.png b/assets/1x/deck_stickers.png deleted file mode 100644 index 4ac8c4a78ef3ba0e89f2123ec0067633640c6dc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26626 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 diff --git a/assets/1x/decks.png b/assets/1x/decks.png deleted file mode 100644 index 29626e267e22e7e1e87befdd03a0fd59fb8852cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26999 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 T4eTE(;ixO?D3vL^{`CIfUyYzM6K)f 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

    $WCDXXJY@qfXSX- zu)ymHB*PB{eC3mXC4er&L>tj(;53wnO0B0f!?x1Vy}&Zz&ossmNh93|>B~0=ZZ;(X zs1Glhd#Wmy3%>40@Xh-YHBL-)T^5o5mh^1<%b*PvxP}-$z22@WOl_vr6`yMz%;)|^ z?OpW9zDdD#a>#ixo3^Xsx)?J6+mp~KYkZv7 z=P}K~ko9y!IW{03C-vL$n`Y!A=tjp#GR4`9wd{v0a?VaygNi>kUsAtVsim`a{0@vx z{wjeWZS!H%p5U~;Zd0jrD)ANgbi*9+(5u=m`PbSLS#0&Fvf2kCNwEw*TV@rCRw=r^dj*lW6$eHpP_6A~6RLljUDp==( ziL1ONp9NWUN6GEZf6ay-I4|>@c|OZ-Q};pax#qM4dggW$POXl*VG)fFw0@3{g2*+Z z;m&%K&x$H`uifhm8CGJ-hN@bMICbkqV(h}aK(b1Qwv2&aX`}~D(&?*3hy0s5cHacF zSb3wI(-w^>Ow#qmsuJ`0_(z!-ozv8R5N3js^wUoyhk&-X>$C1%VtkplVYa}5A-++p zf{5qwPvvr*pIk)T3qrgo&NuB>^dQVvbF^JGCs%l zl%^*fp-umx1-pFUM*!*hqB z5HVhW5FCObAaK=@Ux|spxfKg5(m``UhG)f`{9hGwLfb~WcjC79N#FE)C3$91y_c{M zeUYxO>>-a9NbhiZaWcknuM4~Mt4Z24q$5V!2K)12p5!r>@yFWBgW-s0Cv@&(7ZlMa zE#B4ZS6&%HN6W%3j%BSNBSjIe-WWSxqpH+1#BZh!wJDY@k!8ZWIPXi*Hq}=0;8MBO zPRc)Th0mnXk6qFkPp#}-Qg{#{?s>-Vs7}Ignw~=;3u(X%x?a* zps(Vbs^1lK{H>819rdOqckFiQ8OI~S+z9`l>UusrOex+3n2ZCfsEjo_kfT-}`+SyW zX4}CpHfo4zk|+YZYhb-%O|yF|jN=iXuJ2Fe?G>YV^0wZ`YRCHr;bX`qW2R;LjgUZA zw33!iZC5}*jp{Azw%moBB&TPgTt?jLYUH)IaJ%+#dcb+9VN7p>n@e#B_S$`|<^;z2 z3#tLdkKANiD7tc6A7-yB0mC1|N!wx;AHWoRs?mq93%JwL^+Sre z0OB2|X^fO+zFq2JO9d_erxUKaD(Nul>+q;4b^jjT;5{eZidb5Nx(rW4K26&&4N3yd%UuzP z9>psu#V=zZ%X(qdTF;3r-5_wTq*rurtOqySQA=XCWXKd&+w3Li6UEn)S_HlY^bFs& zb*S6IS+3V7@>?f@{;PWPCf)Y+siLDF7>Vkhvsl;Fa+VdK6nQ+&v?LKIQtyehzlaIL zD=ZN~;|0~)l33-NG7FFQ?QXhw{OHiiVmD28mw&b!!N896t4^k7aB>CiP*crjY{;~G(iJC;d1|=HDyiJ<( zRH5l*vyUwaxGik>9c$%~SVpJqkJ7>HrBWZOnstqIe4_l>b*&z}6~#aA+8vguHELSc zTP@83YIN8m4!;4W?m?a6(Kn3uTswbCl8JPrGy4}=$@-o7#TEjimhPL5_zbN5 zRb9<&q_P5+6tebu>hZ_=lfbj9fHvi|Pm~Hli!;(l#Hj&&+$c)Y)ODH_@F{{E@zlrJ z;j!e-nZ^mJm-cj7`sb1cJpNB0i3Or?FuyMq_m|_(a=Kuxml{WW{22E{?*`MBu1~DFU3bKF#sS^C#e5Ee z*{sBkm2UBbKmYV{rcF{0tV5q3sTBgq*Lecr+`XO;v#fxZ7WuSlsy07lNpMW<(0o*A zJx3@mZ?Ug_Fzbf7acTzfARF?Ry3HJ%Q?hg~8FHo^g9ivxuJX}0_vh^j98)|y#om%( z9S+T5uLqqBJDui~f=Z`xfA<5@pYM9ioSIw*;QOTZN@wXNOZy>Lc`}+*$NJCw*<}Z- zSg}CvYA^3RPj>CStY3?L_0ijXJJBT{kAk|BrfGfo@%K>b<%ASB9`)mhO`_<%;B%T$ zp~FKX2nyF1VXt*|0o;QBao8@8%*5wkqw7Ucumv@kW+|ZMRfVoK9{9Qfo~d_XFv%oR zJ@1~)DN`LAs|t^HAJ4{*y7FQPAYM)Osceg%|MLKQwqGRlo87DmK zr1Ne>c!zw8Ed6qg-ym4e)j$Zc%~7knj;1Hg@l=a-(mnLz%s_Hr|5Z7Yy)oeF|NPwF zM92Ek@6r9b`e~e4j&10!&ifbf&zYm4ej$~jp8&}-Ku!2ED_bku}ZUPl9FBM5Twapa`Y zoBGf`247X}EZk-an}mt!lvnC(!x4I)%N?|EcW|^E;L2OVXzx^p{5v`iIJ+vAWfDGY zugva#0H+T)=mvI1g*DbTo*n@7;%GO>ymEJ$z~XV^j}zxe+G{Uf_#+?7-bS3bNu zINqZ8^&Cmf>lR5%=Ex%IvD909BDW8}-v8-wfpfXFQeotpIN28^GtKkS1)lF$ z78}T4{shtZ4hwNoU}bt{xFQd9U^bAK)R7ID}uCTOUo{e_JIT z@zV2lL0({9gllrZj~9{G1De4>0ps*;3gy{>qNkONE7DDrHC?juUMFd1&Gj}=e*Vg~ z*=l@ungbp8wMKjRy@_S>dBv+Q5wcRtCy5JOqm~$q^=_6|vV4;85FXU(b>uruvHL~5 zMPGLxg9&@hj3RyqeIm(oq8a@+Vj!80Ot{2Udls&1n&Y*suBxyXOM19e^1Y6cr0W!G zK#G2!puJ%`>FYhgosRQj+Uu_%@l++H1gwrZU|l!XuDj!tKT%tkKbdnj&-i5j>!6;$ zk|VvE?8jueJw+_EIcIeM*8XOouBtLQIl0g&lVgQ&`srQg?%zLP%H!bI=HWTvV;~0p zHYX|@rWPS{9dOQ!JDy`sCdOSStR8okgs$t{Q;f(QFSRLLvDb1UA1Cx&W z`}V?m+#=t_5tFgTINjUC(@34U!ps|xFcG9gnwyB>Yh^bido{nGPg+c`bs&vp>GMBk zVPK~;p@QhBB_j)^xCO+%2O*o(=j9$|uL+Lud=vYUE?i4ZPBfq15Ool!YGpz-8vG+2 z;5q>AsJQ|!`iiGyFz7|w>cl$kcKT{lgrWo8&}z@f|9O-ENz9NMMwhi#{$(;mh{Q3S zr&rQyJeL7UA}@8iVP_7P$6SqChl-tw_TQSDrYfCy=Wv2tF*a#faB5Dtq)uL zR0W5^G}Y!s&NgY^Ua%Hl>d)S{B|AEFy0#4rKOY~oK)dfesRvFCYVq`UZ$k>`p+x6l zzl-Hfu76zYR+0*YmC$tT`81DG2ou**JHpQgKipNCS_YMzWD|lBEO~@KlWlnE{v}1z z_S0KMV?3zU%=eBdlu}8#D_{=n%oZ-3T%SlOPd%a%PBxsyoLTua*RjQH4<)5o^G!*CQ8`wnk5U5y?Y4mlp`q%IFl`=$%Zz) zcMozSl0srNV;wUX92O#vTu77e-)7}%rEew%P+2Cr(>KRWG1+JsKW1~z05+hY7ftGx zY{@M*?F{g~pig50T!AK3MrH;^uA$>4Hc5|7duwAvtE^}&xpE&O5zXqQDAVX4+WTfI z^4JmP^o~V{Tte@Bk!V2Pxfbf5qskK2?Mm9l)nyI+-N%#2{4dZr(g!cB0({2acr$N1q6ue!yNOKX@ijT))YJ3IcGoEDdaNAYhf$enKqS z+nONR%OGs)C^?7%X{PsmWDd44R|ES4#H>vqapRmkAUX6un`=2YZGp@bnn5#?ubYna z-vzm6&l~3f$GqQuGt)$lEcMfVE?;-emYyoh9=~CI2k{x9M6G*$GOFWXxcCC zmWu$1l($oZu_ZX`^KnbT-YWe^da=37pa;oUyxICxlSddDnL>M$@Ih|hk{21r*-iQW ziEbSRDoTrCZt#R!X^4>R{*vo?+1lwPLA5gMJ*6pFmHE6Jg6f=`UxRMh1HsE`gYpMD zf#h-1FI3d&b5^dSl>D>U#eG;E9&A>yOvbTB13sv4+?8M3=e!lm=KhR(5MummWHOu2 zaD+Q41#HO`S%!3Q6*2oO^qIYh!A3XMTaP$mPGd02T|niiu!sMClO}M>(6`&hfc?x8 zzyfA$gp7=T7)t6PG-lwCp|D~3ibxyyr8#%*YayTGhm?_wVP_KKxjm@b$0z~JMH5O2 z$q{}*B^>_I$*{WByf-E9;63Fo1%quYGk?h%90 zNT;WB!uz4k-in;s+2AGlCOtJjNF;^82-R3uxhV_%mG9MoX6n@}z7$EA;x`Sq{_MRU zvz{y?W8d808E3bW;-e-%5f;H+{shLDl+!`Ld-kUaj>j(dH}vrDTG@ zy)~Ce<)61fe1sZdlPUwF)0Qfc%p@MKpOm!0d{P=HdL>hQV5ebx!}kgGM2Ygx5cYN7 zIqYYA+*A`u<+WG3Dde^HPI_wZtgUYhiVH6RuuVMeI$sc;xR7P2$0b|y@Uir_0D;;R zf>F;|Uv2JTL->UXiVEl=nRkiw!<~~uql2g8H zeFwA0(lcdj1ScX#YC|6$JT+d@AbrR8j{H?iwTY<0sZ_p$*3*{$n9EoVW11AQJnQ&> z&<#Z*r`daM>sn;>yF5x}Lo=y?0b6O#-R<8-PIZq^980=z0NPwLsj2|LEOkx%0c4@k zNSJ&Ht{L%2=d0vdDSP270=hrfw_vu}8%`yBiS&aFQ~ zvSs|0V`BQxe%-y}S`QQ?xJ-==!%^yFC^l1H9nPy4`To!%w`%nFetTLoa#TeM>*M3X7#(0X9(@K-D!j||HVO~e1mA10g?9dJB7Pu=(& zjPKvs+d{Sx$W9i0VBQ4Hlz8LQXKnGKYg8#WuC&KnMCFF7B4^apZ;MNwVRMs7Z*I!Z zzJtr|jMKrHnW=Egj(Hil;>FHC4+m2T2mCUYUq`6goR>4u-**8lSQ+&x4&Z3Wjan{;fZd*}i?mi?5mic3qSR*aQ6R%&aTTP^}$kHFlF z-T#)MqwtfFlJ8AY(ryYL$eLu6)xxeO29J;mpPEM-kBSoDL#Y-d5&&6cjeMu8uDB>S z5j42JVF)l58{Ro~j~2wMsl!Xm`}Ks9@ed*{p5E??XOoNwm}laV6X!*Q`5?K6WH_Aw zGV^dA!~rBZBY0mpgr)`-9FWW~RT zjle|d?!+?{bT_$c+L-1}w~1ocWZFv=|AeP$FssZ)f?r?8f)=S#yQ$wcoxx8>Hc*3+ zv?>>GmmuCMa^mDR#rQ@wQ4Q2IhH2|O`XcIMkQLWii%oMQHBCJhZbV2;onsAq<42fT zqL>r&V(%dye3 zqrR$(HoU!c5NJ~&k8K5kNm5c-Oh;w{__;t&2+B;81tLS^lZ0Rl6vL^%;*s!-hWk?_ zThTId&RK)&Nc?511#BD9xSJ?+Gn}+^-RusX~+Qydz zwYwlJWj0A8-L_KyOboN5knEeBOf}hHUuiDt-jB^(p4S){a;XY?xzFa9MxKxiUj?qm zMz(AOB83pqvE$Ysm84LS3$RAJ$@;NWJFE>R{dHCG^(vXgKE6VaUZ)4#mDb$;^9PEI z+;Wpk?hb={Bk6pL)WVJR`Wh$(uN%3ZD<1g56z=xkyp2oRCE8>Z{P+nJFuzt|r%Z6T zfS$D^j_lR=&$x#YJVX{m_bO4mmu`Z}f`Fcwk8RJwH#On(aD`*KLvo6!e=L*gG~9mr zv1aJ5bDFUW^~jRpVJ`>gpzC{V1N!k3h<*IagpVBI8{dR~ud80aEq~TpON*Gk_rzN{ z*36)IFivubK_xMVx9IZfxr(C>7^tH-5c4ZSD73Cp1>`oAhX=m8wY`UWqEpCXnVip| z9m`Wz0JTkgEa{M1@%jA})BMZ>HvUhM49Q`1Gdglzo84BNV&gKN4u2Slz+9bfUTop<=C1~g(`3pi9-cO^uR{;vO6 z|F>W<8c!abj-}eVuv`fddgcy!!gtL~>Kx5e3n$Y#Q#Ig5_~NcdL(zc1!Y!?E2`gm7|c}`z0W`bmjU-f;W$q2}ap* znk6__qfJZuzc!LmrG)q2xk%h1l5?O}Tl&9a{1Hay3tkaZGapC9cV<4uoHRb6b|@DW z{=_gM;0XFeP4?ah+_Zp<3$tP_YqH-adYfkavXA~?<7y_r;-Cu!lyw#0tGJaCY4T$> z?`nad24pva^uzX@titt4cmxfuA@#$}t8i-edDJcmVW?H`?;__gt9V=A&}VR_FO>8- zb|LKe{(WW-xMd zV_-AWi7-Q%U+{Axnl$|H&Hp=W;Oz1w@n04pt>&qDx!N@towhnCRoc7(w;Ts2|m#+49hNK z0?m^_yGYV4R?K1c@+-(`W-bo>|J)C|_(^ei$L)PC+DBQ^?R3BDf1UY#!sS9KU}4JJ zb?eRSn>2U?ougj+cwF2*H^23oSHI1Y29LQWD7|LpA3|gqH|^AA+MF^i@S0~T6wNlp z{!saj#!}U;{C|K>TmMrV=P>r7&dXNzAC6OS5IsEOe-jm~-{=Whi1kQt9t$BR#lNH2 zJHKpU=cC!5kZ)%cnJUicLoP$L?Q$&fY&(CJKnB0GyX@LlMp3?m024()N57V zzvafTth5sg^D#I86r+vl92-3_!ra+^)7xBuC+eSG67h&{gD4)}-RTo8_2*)ha4B@w ze-cL(wLTl{SA=Hyu}ZQ}tRP|^SRPo4AW$AwO5oe2(Gy>QD{mp;nwf6`47)iiHd!<^ z^v!c3d2-gt>I8b`_)OYv7)_JQ>~x+$%teOAQg5E}sRGE8dg6Pn5AT68jrzm5SG?!& z%sL(-$wRpCu1u1nuH8;Uzp@aTS@hqz^bfLZj2zY87V6woUPK6e@AfF0Jd;7vqAB*r z5}b;oX&rw4vWT*I%Z#h*bsTHytoioPd!lDxiuO{!ZJK)U{5aykeG0jnRFzJx#b{!s z`z(dWATA{tnVbjd0{*pazAIuV zFv@7vVpdBxR9Pcx?i*>_9T*J6G`(%kP^EfQKhKm2H4=lAg9vS8`$(N4)KY|w*^)(W z-IT0~(`&->`f8WpHS*Urd42hbcBNP%R<+i@N`v3C%>_%Orz>L$B??J5nh>G*JV z55zyt|BCB5ZzPYngZ2M^pWBCl&uS>U`YcPJ ze>HIxc{CrR+JQ3u7j1bx8(Sh?{TSO=FNKgvsb!Nzv0pW&h=_stQ)&ymm?C6Wf#0J4 z&HhCBMI4i}iX--j`v&`pr_d-aaq36+?zw3XgPz<&r#FUeRMMF4E?I(p5|O)SZ-gW_oCTY=;M@eg{07TlY1}pUNjwA#=h5k z5oVJ6)=7b{R=3Pmh;7RnDw7o@6mcGu8aM^3Jbjr-(Gw9lL|iUzvxu^UzkdDWX3$pP zE{H0ECz8FzGozjSgl_U)NPzUN@F2If6n6L)U|uIxocro62CSbsC;Qa^z|0WUkYZu+ z&e73%lVsnW*;%$fwQYGyV{AOXRB{o^rWebmeWbCpF5a?oMeH3OLn+6PHNB32hhd>r zg)I^C*!x`9)8MWrI-}U|<@D(;hhr=c!fZ59QNY0fcr(_w6fVP5?hW_i+W?_#hg=r% z5fcM$ByiUjM7oz_9U^2*QhDOmUBG|3=9t$FUfs2*p}*&hC%?`9k(sa8Jo#nzlS%g6 zm#}Xp7H_g1Ii8~bIs6;C{jhO3L(OXV-+--fMTtoElNZ-TBaRB&Z6gNlH5$dF&qypg zNmL@rJBnv2VoZ*uU{EUZy>ne`7sE(BXt56LHRhn#x>xzRrAqi9ME9fLBzNQWO)S`1 z&r3zrc2Vz-$IS--l!rxfx|KJ2c1;`XZ9*g2I|c)R2WB6ab-|^QhcGF8JW?O_qx5JV z`#_sG!gU&zg1mL3kyi|+I$lD5|H^-T+SMM?AWJY2SFq<+ZjKAsEE4X_h={y)voZ-? zA-`BZl$8!pK5WY0SNZ#136f*CSlsh;eE5DqH}}<2rqA8erPez!`5`}3-DD|0+*f;B zYNLteqCM4CD~#9a_TSb*_@bAvG%jYE;u(6_RMYch%V%@uwrI`^$bPl;6ybv5ruT3v z-sdZu%-3!IuExHkU%QpE)K0aWB{wpkt5%p?E`2YPD?!M- z_%TA(VDUY!bp&IP2SvykgqPGI@*JNdv_w(X&xL-?Id(Mvj>!s-2=x3EMp>r)R4<>4 zAI?&Hog83D2(t%V)edUIo02dB%!dZ*Udb{Rqg0o%vxa7dL`WpNX)yjEGumE5q~%^r z);jQXwH=0xgxwPx8vY`P;2ysc0|E*@p|2jBFkWa+;GIZCqQ0pf1ZI*7F3tV*7Y41HU%kU_ z^~=ARP)>XOz-DiiT;Sa7sbzCpI<;b;dMk#4p_#fB&MSz(GZjf_u5Z!z|GCv=iG=UW zj4uT@X`+G>aZtV9g<7ei(Q?Bg#Jl>E#wB=xdUPsjLM8Mn4;N!3lwaLZny34NILkW8 zm7_PDV-9Z2<_6EV$N>TeIY?)~J6|u_oj2m{69jpR20SG6j;2l`{FDuqlDFget5CZk zbLZq=$}O_154JBQtoDp$)bm7Dx*Dd)Bnkf8{b9N|7ZfJN#fLQB0=FE6o%kkd%9pV; z2v;xwLCJ@?n#mdTITrR}Xur5~yD6*pL64jMJkX2^ee>7qtenP8hfWOLYIBgtT_eLV z?T;}8^P3M{*2(xN_FWV&@|P8TfS4^RxYt-{D-!*^u+blu5g*b?ap8~ooY~A>@$L6Y z2bYQL5-uxU;E(cv?eQF_U)Q@UT_IbqtTT9nW#dUby;Wkn?QNupr^EO3i{KYAdb=0I zekadk-r5hg)_bILH9pr|q>_3E9w(Hrbo+V;Xh47ED0J&Y5qVpZaV?Wsb{B1Cs-_|P ztv&ZcxBu|t#j&tAB0T`@jt=Ua%F|UtRoA6bZOy=akODSN5qH_boZ?~N%8lOhd%DE`Zjr^pWPHuR!mmh+|WQj~q@7`Z_mfQw%|<-b7nCPt_X^zsuck zWv`ksU(AN|FE{k+#Rs%sp9P1hXunP4t~h;IvU4_}=UA!arcH#F^nYB&kS6Axc=3t7KTDxGJfqgtzl?J;wyox{QBYi1ei`*b={6X6VT3&sjqR zww4A$0G4hJ%7;Q1vSn?O3XecCP_78^d;-dt@j zFmfd$vAfbNy?i&``rr?*k|E8juCu>P&;o8eV#HurUIoa(1{h9*Vha7sok6Ca^t-I_ z!Cin$iO_8#wGx7iCe!pNDQ%^ry!O=_SqrIuSn}<8%(v%fLcin;KL$@eV{2ctNER()Y2WV zH1Y6=cT5|E1p5*Qag-DT%ttNryzKMD6zlkUSf&&w!It7hiGo)=vcob%{Qo^$92aDT zk&%#DiT|(J;-nyZ?D}l5p7Lwg8cQg`oc>))FzgZn*56VhpPGNDi5DtPat61{aJ6H& z+P2!{LK8O32w&6K(gcxZ6|6~SThQyr-X`qV27F(9pCnExMLA0-D8a62u~4e*DKg82 zD2E(Jkt4mJkX&Lr9`4scX=Rw>Xem|=DOIuc#GEXy3v5p z8X?q;wR)EY`sM4)IRvlmQ?Fe(lQI7@%iNy9&rW?=Ha66mNH^B&)2&dIM$Yy5RO(;$ zv=r+(vs^4vh=CMIN~T;7q-1{5_HFgvyTzW9xnV2}OwQ~MlzSWfJ;%Z?_n%?`V5RC{bAcdod*Gi&_QPe0|<8l(PL_E>?o z$R68*eB}2}22neARv^a<1GWsysl;9mBkFjpMFvumW$8qm2koM;1@aOtl{S>x_g1Xd zqGA3@8jj!NRp!GUdD4pI^h>?7a{P~9b6#J9^{HjGMCsSdOvsi|@LXJApEI=mqWYC` zjJRfgMt#$mQ4{nn6>_|o5~ysYzjQ5CgQ_ypN%8E`sm4t6Fp{dpwtlYutz@#6(H5$r zs;x>_chvJ?b;bB1A-qhmd4NtenhZ0tyS5B_=h3L@8c?QzOfvRs^dz``fojl^*84R! z;L6a~P(`(>tZJdEvQ_D8$SflcBAC%6TYH3Nko;;;TlGkx53m#gx0=H-QKDuw3`_Z)RIl z;F8-giN%!2^)9&H-rqHq59&!dE>(ynQXs)OR>n1ez7oRwThw`C+?Z0Sb^gdZ29_bi zUO9ypUbNfrH)p%l@>+_GWV=QDy=7Y})w0pFW#GK=NAU)Ij+Em|u}&}lsvU=NyqMBJ zw)UP8Z>XV9zpKC0%>0Ic+F#v1-QbnKq$*olr3#Lpbr4_3Zo0wCFzc!QHOk*;fm&ky zb*Uxr*>I#7G}kwrFeWi*1q!u>?|y+F%4Sy9lh~JeLtR zn{2SUnL>t7ey6?a`|Cw!dB4XVQ)mA?RgKM@Y?kMZnrfytGRqqVUmMYKiCfk5&u+>K ztaqIs!2@<-581hDpBIx)sNJEqxVh_#{|@!ctSv_Tm2&*~|2q0}3lFRF2UcVnN4;9QD$icv&}9+ zE|y};D5RX)xFnX?>+Str+vOD4>!lo%a+Xjai~7EoOba+guawfMTI&XWHaOLJzPHW? z^Cr8C?F=EujMT=HRR%)r2jtk6Xwz3RkWIF^3Bo^x}ytG4(vx?T{MV8xY32W1jc zj?KKkOgWAV?>CDPH0E|g20^Z_bjfX_YOI}Zx=CxS*HR2At!ksvm2FK)ML7DpLpN(W zD$@&8MP+NfpZ+B%rLP6E*{csuH`b}z`g%3LZh>m3o39#b=c)SI*;iXG58UDZNW zR=3guTxpI|*`l4QYSqbPiCu~!r8wt2gJZgZOhSn3I#;Ua_nNQ9{5;wOWSH|@UNb!? zM?P)QL|yS$7cMZR6K%GerdkZTLoK`fYGzyIL0_2o`Nyx-PTOt}DX|1?5c{tGsEN&X zepL17Jw^4{t};LL`b~RW73?Ep`m6>uZt|?00J7V-LZG&IQLZlr1$``JK*A;bti9gBI&ak-&nFAUjdDaBEs9os^7 z8TNi`$F^X{1G425S1dCyM}Q%@5MGRWhdAo{38ru3<(6B{WRL-~$FA}USz=)ajt970 zZd}r8BPCX1?qwX2*)&29qyLA05RhLHJ#9kL@s7X#& zv{8)}=wDiY-JIZy>XkrLG|p938H}K(SDEJeI?h*PjI^i@j!zkAFzHF(YwbG)pG15=3&5MSp4vv1No30Wwogu zyu$UfVp6k+}U5-GMa0A-kTo&SeF7cR~Nx>TE3p>3t= zRFyJu`wF|8b`r=jVy|zXR)>9Zj|t%Ft%9PA@(S$p*ebgiL6)+N0FYyuWiBUDTBW?k zC2YT9kBfG8IR)#B?PxNL7^hUlO;39cq9fI9o=WwYt1mvi4G~B&gx8DI32%Dqj0j`O zz;;gkwvb{TgU4jxH9Icw=l!sVE5~sOyWcFzKu%K?Emf8NR8Ko>Un9c|P*;yZH1rSu zI{eAs`x-S?v@+RZZxQvt_(}+{oUT=kb+c8fZi=eV0-H)z${Yh0@eXbD8;?|ENz4seD}52_jl%_v8wmPR%&41uB!EiRciY#^=j>THR_p* zvI&ttr`4+C&RgGvY8;mnwLgBM(kuS#w~UW`$c}QnC_Q)wV`e?Xxtv*JTeLB4>a4LWrLd*AW!nyB z8kH?xx@}buHd9)64?@Z?fe@1;jyOVfYnlC4msw-`VLN7c(FPf0WRC%aShl4g14uHb zlx)l+WIGq7^hS|XUTs|a$>SwGt}Lfurq~rtMlE_G@I`+l>i10hB>mmpirK&H65BBccuBjRaAt*BP%N-d;S7*tMwO-(<+`fH9U>VM6H zdFWQHK~f1jmOdzw2?654KfD~i>_|D$2&`G%aLGOKa zT`GIehcL_KL-$XcWyo~j^$t|3vai2I3;LfkO?>+7YwDvZY4zq?r<(Vj6!u8LSk#CV zV?Y6GN(qB>Uvklz>g7=r)d{Dc{I`*CWGEQrtT%@IcC4GHIuF=XsfQ|q&mQZ@@Bw$2 zSQzCP$j^rL#(1EPGK%#CLQE;{ZMJ4FVnkM@_ML{KzL<#7ujAsn1}4KEUl2(QcYa)+*H`|dd(hf zLn97RG7M>!QyV*D4D2j%lV*&8%+hK}&C03{mmCu9EkO>gXLxzFL7>j-UDchO0 zJTA^bo`-`%a-0--zgd)NM4Hw}Yf4pAcgQKBm^yu?y8iy>O_yru2CXsGT7Owv`w!ar zKfjR5^|P<(v=&^`^&0xOz(bpjDpiSchiW6l*xsOBv|fMB(IVa82{cB@^E}rj##*|y z7@O|oSd&};Pl&y9^3YS9C!}4!UUr1P3a{V55Rjc^Ju#43-cRo9YNnn>e^S$`|T^$F#kJGj&=O>eP`7wHA9WAJXcNn!>*rXA!MAaiV&Oi+%I@kRFd z{de9reI2tc0-}t1WQGJnY-gB@rI3sg%5UG*w+xLWf=uM=Lz?B(22#vvlb22SUiFFFRSsuVx*lSTo8ryAyb_3YNUa_B769=kw9GSEbpF|bXAqz zW~r8K^&uww;y4!_@lL&(iXmEwAuOCd`};h^+qP zk$p9N3`2zVy#9ymF51-VUv^B{gsCI0)yq|S8MVk1IegJVzHk^p4-eN>qW1~(V38|~ zk{lV9;Qgd<4v=B*{LFa=V0--Q4w+pDG2-J3&o%YLpmzRrrTTws;@dA?HCbV@yEu&g^X^Z`7)ww-(PGKfRhy+Z zRI3m0lZaZ58><`Cl%6w;I75nOjEqd27sQt0Qsg*FgvWpOrHP@>J(Ck$?+V!tLQE}T<=F36$yXPKuYcGFMpT;{y<|nMY*69 z0|+roC@$P=XR};tM!Favw|1Zef-)?H7*L22HV+=TZjKZ`c>bQMZce_8M#-@av?d3S<)6{jvQ90Q`RdWJ~HTA|?WLZ{$nqYwK z`}g=$ORoMgfPf79nP7Vv?eg(pH1$DKm zu2GpluM=iCXCub?Yi>jwp|3B$+qddgomF+4uBv6*?q*u0m!p)!Da6ENp;5}w+KW^R z{W|F4%?~Zz+P?k9(Xbo>a*Wt_xc8U6)DrKiREy5~{iW3C3DeCsw3Fo!|D1BPkzGiy zj5)VGq<*+`NU;3E;pduwAV+0xvF)AT&h(eEatx3$<^y>E^~7~E>s15(V(dR)_vVNH zRg*H4)Mr9H4(^iBC3{HO1=EjBSB!9+ZILS`%b^={khZ7Y6~-g97BeY#h3AS`Me;g z_dWez(^Z=bW|C1(fd};@6k1|0N5L#H+M`SZ0U-|CKkjkEkfjv%Fv&Krzy6#*=hX|_ z8RW1mF@O~Baq&||h!4KvDOFWfWu`~oJTeGuM}ROnwzI|($T4e>@o*i0EF-H7@kL-B zJzF3s&Xi(ip5tK4C$N_Zv&Bh>n>BX5o;(jZb-{9q<|wJKskrmWTsgk+8U2G)OUt#- znq?!!U8kzlfAn?9OtGIKHv2GJtk;`mBhPwSPq7Tq##DycF1lw+f-T1jGnC-#Cw!9^ zQj!tPNo7@aD}=wONvo+dW*aGP&?1?xYVS!gF;c4of(z00*6OLA)7wl>6DC88HeNSv z*`%siv(7kZJuN)7LZN7k$sN%OQ|0#z=Jt$S#2RLWU9T{yoTKjkz9e*p9e*r2sBD zW^FNRijgIT2)F66x{+f%TsLp*2WtJU`g}i_6v!~+uZB`Av%C;nfGI^7ZThUeMzEe! zDa#BA1sSpD_xl90d~MfP&9qc-Mg1jEh!NoW(@qNlaND9P#{g1{x?;rt7bvGTPc=+4 znPUW`7|0(iEP-HVR|;|5Y%lj=?eafv_xe!AvMu1uE|((5b}2=e97BrH`8uW)WJoZ} zCJIS0OC~@~O-&Gz4jsH+FvuGHx)?boyL?|2WR6)!90ux!W$zOdX3V4eHhVsa6ay)p zq>zL*1@iSJ^8D=cB<0Q&i!$s&1Ca!lE!1iQd` z-p3HlEyt3BcK(N%4u1GGBdSlo;r*h%%NFZt+0Cf5>021i3jsz3*+*}K3}a+E^g*0% zZ1Ck1I0V+0(@HJERn_fORm=9KWCEFE^ExQa5c^St!-d!3 zj8Ba@-(-BdZnm`A^0!J8YyI4y`u|X;dJOx)1Tw@di2!K-q`F46d^P(}Er9q!h9S_* z5R?DzdO|R?a~y0r9&-EdMvjj@qrVz8dKptPVbF5ShwGmD_9PRfK4e#Jq!d$fnKkAz zWSBxM+p#UTOKFDuzB6fpGag^@5hKN?UiNEQvc}mf&BCrJ=9KG8fl^E;!$dAGY;x?X zDdx=&>r3sn4eu2-!vuB3rncD67K5BD@VocRqbsp7_q3>8>+l))+O%kYi+xpMKgCrv1mabqcael*1mZlj~4#%>8bfGRjQj zfLm;s)>9#(Fct zos|LRHj`z(=GmNWD9te0WROm&ira?=`vBRN*vnxgm1B9okyEZO7dUQ|5Ql;D;5jun zb&Y9t+@S4D`NW9VKQilf-AX*CqQyAl_cPpBU#seC=bJy%H(;bX?>Rn=_jP71G3tbo z3HHh*TB+*RT~wDj>wD_4Oszd*}`i*?G%GW^pWYJdqK$*EO2a@#gDg zJ8hhmX_R{;WWQZERsEOkr@ndXRui8uTV>+O*0a=)`}H$1a+}UZh8Z)b%r@eQY_XJM z$S;D~VFZ@Ze%}!{srJVnTu_eD1_3C?2$WHzJ9JZ3tyfm7Zc!WbJTdx%Pu1jB6V1qY z+^5`9Y}XXqHOEo7q?mGxtg&1M%p^-0mhdk!zEATra;j4r@>95;@@LVO{?{DCEZXh}ilvE=!JB$6D}D+Q3{ z6B4W+@$6$JqQJv;px=ATsadmTnGy;Jv6SM5h6WSZ4$xMzN*^zq+rD+nU$ohDy;8Iv-qr*_J1%2i$a|)**9Y>9dB3PXKA56@ZS$vk z=-Hm?x2jt8{`aj+O>t9V%W)DZrtC@yhTsBQe5Kq<&|XS2WAx{rn;>Yz2k`j%<)Gk| z1=(Vhi>DsC#XM{WAi{Xyu4~&CK~Rp#Dc4@>&n+CV=Ly_^835~x>6L<`+8MbO+2Y_q zJ7kL&ykVA^EoM9HV7=XCn+=5+y;evewvpLm0%4^bOL?`I0fm_7 z$7LJ5j(iQw+oBvrRIe1s(jr5QY%y_Vjc>a8N`KD7UM3LUY16ES;q)?u7=i7SV%b{- zSYfr*)$IA+4@>|#MxgdshAqkxt~-6q1U0;KD-%!lTi0ys+B4f1XB^lcaC0K17}!#5 zZwGR_JYQysnH`qPTvrMgw6Rcl{WX#w5_b`9G0p%9v z;XQww-}3~HXA3XZF$m}7x^iOQZ^}gyDL$q5s%qI~mo+lXz;d&ry|J-=j=KN3_tn#H zeyT>i{;>&g@6&IZxc~VNbh}1V=70z9s;W^2;f1La);h^ka$Hp2_yMOSND&NJx+UNp}4!(VRD^XPG+qFS2{9sq>Ai^nnbxi;1& z?{xuEJadNrC2*OnjHia)pwjQ^mpUM$+BeQHLhO=aAcdI1%WSVLz=inYlaI}75@w9C zE>rKhPv4#$)Wq2*sTp(rtzQ3qSM~NYdz*7X*+lK{$2Q9Yc93C4Tp+5f_mxm^2?bY5 zt^@*2876GI(pqboDP9Xeh|4L(z`x7oL*ZiB>xu#U)#=|f+jQw_9q`C9ZdG?YID0LLo{iBoN~B_sW$NNH%1twbVqz~T91b?9Nd~H~+f!DJoyA(e0JB^n}Ip%iC zaF`T-|KU<5D96YU6Dhu#{R+H{kRRnG$N%@$=l!ZO1LZ@-)xxKVD+a}-e- zV@POIU>{dXFQ+zgyF6bzD=e2w%@~va#E|2>Oz~d7r~~%UlJ|oCg+<4h)AYR+^AKMD zp}LA&N0>1C`28N6^+TRg6}RcI$|iVxSv$<^uoPyti<>o$i@dk+``2DB7VPhm;-!1` z48jKcK!zDuF1M@~BCRD85_-sP+xlyi+W8-An1MaWfjexdjiN$T_+bX!K-X+o*3*hg zZ`ovu@c~&Ed)nZtT82+$Hg*eys1NQ?B+t2Q2^Ix!;%UJCNr`FZokL~G9^|D zu#{-ZFr^nrIp&nd;j!fLh&(sQF~B;Oa7gUeh%3j1N-02}m6!47vOtb0#edA2qfR*E zEHfX)iZ_inJ(WlaHuHlTz3%+<6!Priy9ci}=h3}GJ0r(ytnKyb$=c&$IpTm_)PS{m z#`+v=!sHkdT5eqOE2WoH8@au?Gu+^s$S3kVAgqw#^aCmN^NNqE^uIpxV(O>n`oOx1 zoyVIDFy$42c{N{)khMP8rolYmb|BlybwIW&7lrOO#p04;mki5gw#UAVQqG}RAdnR( zaWJ5pKJ+)-=w*pDkYY3P9DsyYRH(}84rb5|WQ0vtSkGg)=1MaNh~FJr4v<>>oXciD zL&>0TWMqeH^?6`FExdjY7wDI`u>l$62GxjB^fHyIwysvy*3MB43#OXEMjC2oYUkBc ztt*YGR%T$5%1rhzTn3Yg&izZXO-;v+Ca$RN9wZ+IR&`cuuDhNIDVKpHS4DFtH@If`BV~4U!F^Ko;pN5iEtQ2E^WQ%tj4%vIyQdfi`&2ijvl5+=V~j*?=?yK6f$!{sWU z2qQ|4jfB3iu909|3;p`_^S5a9FG>J%jP1xK1IVk)>M|3I^$fslv^|fh%ouYUrUX#NLM2X8cv)p*N3=nlWcyjud-%Kc_0H+iLMeDX*WU#nhi?23h|P zO)b!_z%OP-g6s85L4v*4Lk8FcgjkC*dcHupM1vM$L}P=#j{NL#L#kReR<>1X6CL!+ zc^PYTrenljAJfzsLx}z3$KjYgb~E+92+Aski)L_{Q#-hx(?aVwZ-dt!^2Af>%KIKt zXB{-itb2IGJ0^gA3>k7g=Q*|Kxm+yF62~p6U>QVQD9H$Bg0f~&qD6suA*#Q^oi43<$~D(i|dk8%otQVPbxNE|7qw2~RyJ#PdS(YWRddD{W& ziIFX?oZ?-Wc5f7vXi7GYML5r6{}pl^CB-hJ#M*L7F$FRs3}jojqZCt;(Ip$oC~!_v zf&qVs$!sx>jeRiy2%sFx^C%T$XptS3A}r?#+K|^@_kO_D>Yp`o0FRn&Uok-`CjIvP zMD^bD1J&Z>kwLw&3uLJA+Bhef#g-2MN=dc@Bq^65sTPN*!&V=eC%j=mLgTiL3ne%1 zaitVTm3@?}Y@%39rr4L_Q?JO%dvGuCmcCvHmtL=!(1oZbALuD zluL?n9GNYSl48O(*w4PdG&f%DFCLbwP}8mZ2?QC^T-l;VRp@pVm90#80&GL^4HMv$ zdho*`I&KX@;o&|+;{tW_o0sUg+(Mbs3=TdN-PBA(%;~ z9NU@VFmPVz#tnTPV-OGw1`>x@VoZvaE9{4CF+q(nLP9x~QtV=3&Kf6u@UC)YuZt}s zv0FWE=IbAMHxOP-Q~zDU2r)utlR0lP#4qk(j)CJL8ozVP&tC;T8`pz(GV@B|gn&xv zm2E)SGUZrii2b_4ORQG-IfEM74YA{1dW9Vtr6{ofMR+~&Prq!)Fnf{MGNoQn{^~81c^HsWG zt~pj^Ra?Ca>Y&5D0YE&NDV9A%faY8eAtuNcBX+Z{57}N)%KA8E6k!yqEk+L%1QOfE z?=fVDO*d4n$9sRJ1Zamawa6bFuR2_ny|+Mc?F=xEMJZ;v1+&W(Y**HpvW{&dS{`cl z3oEm55zFLoBW1R@98x-O>J(FB3?RhF9&g*fSI{ek%nmP1^~EkIS^zgcDaZJ%>`X9# z$fDE%P>xCUKARXhj)GE*c4%*79~1l)S!4UNamg`7HmP(+q4fF1q0Ea=C$bLU*i$2tu3(WOflGjI2G>_R>e z2q|ZTJ@^-fe7^-tDKb&omya#60J19u*%fT#!j@x9ZS3t$DaD{ce=IWU{jjOHGFrN> zJNxvU?|pM$5`XVRx=p-gZg^hM~GJItQ{dtTi4(%D9c5fVsj z8bYkYJlLmYxYA^VTburmO@GJE%yq65*Q1-c#(EQ`Js%1T*%#QEVwo)l&9(k1|N0~- z>p+CHm+Nb0?eAO4I9~Vv(574c%J{Ygs_GYSBRw)V_pg|w_#so zjVIi{fP}o6QEd+9F4Gx!#_F>VwboX8de( z#Tu)b>E8icWI7zrzRU!( z#l$X;kfYwQUt_z(LV}(tBsedYRxkkM_=mX}69nrJufOt=za|-VlTKGDeS<8foPtvc z<<}L3h&rxZk7<|`W4){?wwIIC8$)YcF;9Q|2vVru-?PT{Ga}3yV~FzJ;g2jhMHS1C zVb^+Bd$dJKhRgy(oEdB{v&Hr?nhGhcHe6S%6m!3@V`FS}=cxN;l|V%J5Ji9>S|`Yu+!w!+i@YES-?ZhwEN>Z$eHuNyW?X*GwCb7tH}g zRA!3-dS-zf0|+st7(iIrwHrhi^Auvra2z2fu5DO{Ofd%k=zY*we{Eqxzf(|NvklX_G2i5c?Vivb7hO=pYEC2l~SBD z^~u`~#5}fBrlaJzsk6rHu8qX~0Z^n0q+CC zn{JqAGR5d219itK{c{)(;b9~_oL{9rPklgd#{#hbVLQUM5!W_Ep>4Jh14?nt?4ykc zZ?kdloWQ!8Ik_Db%xr&;ZhyGHluym{optQsFL})DJkmrGWMTc+5&vIE~=K8ZEP{75aXP& z?eYE(X2qB?t7X?bY&Yj_Z`tmN!V>13?bzlor@#E#WTW>SwZB=m&!d>njqe#U>H2K= zaGk4Mg2Z_Mube=1A;>J(kYyVH+c*R?WEtzx>jX2x%N_X-zsUgxx+&iV3%KDl^2CVs3x%@IB1>kso~L{GOV8V7BKJvk_B0 zgLwqLBRQ3UI}mb9)q10;HU8H}N*$UNVZ+^zsJGvKTWvOebAN?yt3?_@y)eMCjIjGn zF;I#l1^Bf+{h2c0|0U1G$G<3b#e}1RzgiW8{A^~|Wlk79=1-ILSgmjC6=&=3=coSX z^=^>8da^){J^2+FS*^=`kj>08ken6twK?f2Ln!Jztsev#q8K%eyzVZc(L1O-h-J z$V&aX4QbyZbra^l8~P*`oypK!Uiaa30#v&4W>{M|3!Xp>~+WjdK{d#;WW zh>V)qZm?NjGyC6KkaPd)R5NQo-9&#~P~KunTpHBOPT6}oan%@?@;xPgxtrgodr(dR zS%m~chLJ6X7-O&-JnJyEZ`VMIffQp2q?WL)1jhgVt{?lTM*ky6}@H2Ha?D*eo`=Rq=4Jbl*etb7{r)xz62UtcV>dRAXFMv%R@ zJrdNr^h6TE9I;V!X&q_<0=(_d_!8}6p!28eSNileA)RSgfH}^L)B{-*a zRgHFH?*To$C)6gJ?67}+7_J(ihl*kd2H3E0t(VL8c6%N|T(Rj!{u&QkifiVa?9b%` zQHC%-{?#e^eOIfRxu=@-kYZ+%Yi1v*11^Bi#*3Mqo_0!c5|9-R3mg1m#~Na<2Z}HJ zEm?z;->N|@EFdE+f6K>wq2K!LEG-7#$bn+3#W%is~B?J|dvt8*$ z;Syw&P`K!@)Cy*bo+W}h;q%W_YRu;*rhoQ}31*AIM<0FU&*fvkE+4#u93z-DhA0!( zBHPIK8&yhyjB#9~RANdXt(>~#S8nH2Zg*kt?|NMu$}Xn16uacO5IF+uPfh4;lwfW% z(k#~NRc4$qQ(|$5pDl(E`%;W-F@Ov+{*J`G-$0b*aQh1bIG-?qFAwfa@sWFM7l^WjUkfc&9C6>6>#lf{7OD8b8 z9)J+rQVbxyu52+0mbAU+mNX}_Qbem=H9Ai#z4JXJhE#x z`S4vBM;v^xd2YcI@7$HVr{^=^OREn}oTqP2eT?Dtwa7pysk5BaX z4kwNjgYfjGgHi>VA`IANo84_&7?5Mg^1=#l$`EH{)y?PR{}3{AYGv9{Mv;>(_T@O; z;S7B<=xU}e^0w>!0x8D4kYW&=3()7|I+vz~pH19S3YU$d?k;}$!0OJ4a=B9 zei^`ZyfBiqwR>X-lVjBB%Iq!&STEMLd|&UQI&q}MN@Z- zY;lwn+pu;R=fsBuku|>mit}^II>1E($Euyy%GQtB?=z}b3S^8a$8oa8luAmdjg((G zwUN^6dOf*aN^#ihCL!)|D8N#LO+bVh_Bwx=`+!3`^)VtW18lb0X6k^Bea!sAgnk<( z!TU`iP|hHyVPzC!Cr>UIPWhGlbHvYryzg*_IM-3Hjv|13+9<{XN|LZ zf(&<+(&ts1l}JyBOS@W70^urykn3IY8@3;^#Hpb-m;f#z1~qff_UEF>%JH$j0Q({w z%;Pigq*z;po+7j$&)7}XOy5z*zk-MFP)>rf60?wyFhRcSUhlKvLw1m3WR3yl7=aQB zDa4qE)B;Xj0*sIn%-}X02g6FEi~@ZX6KsnY3-;Wq8t1#K7-ETf&h-i2%bVxV}Urue8+&oU3W$%pJD zTn|ZI|Df}8vc}+qUDh;HlvS{MHawUYM~dfu`h=N6ie)Akb;SSJXn@HY6K1v{#ihU+ zV^TQ{&kv|0Zcr`Mh!5}1%k0XG?-SoWqqb_k~Dx-k(qErIm0&92uA$WHTHp|I@Y|aG1nBzhulzhD^0V3d zxRV2slmX;?5+Jz$2YP>yZv*D2TQ0UoaqES-QT+EUD19_RaBe~UVC$~+^)SUxy|{%W=KuCuy2 zdVu$k=lVa~qbl$5rji-cydTbgwIG|a4?RT`gS_7qLW-)H_p`e$5$5`^0QNpykK^XO zRx<)Ao;7oZzoebALCYE*pfe9^rB(fcS*B(v3K$_#TqY_ofvKncaneUEbPS2OQiUvA?QJczgU14f3ujIoyDw%7SB+;}Aw z`ZGy+=a;m13cyS;v&9%W?z;1Gf5CCp4~G#Y$Al8gC`wm9y&luDR%LWsemw|IYAvI!Gamz3IpeOW6^A>OU3a}YdE%U0e< zUiSVZY`u%P?LfhSEqqYNiwE9ZSz@f?ddM*{#kK3^KIshDvjo`fB=56cdg-Ojw0rmb zzr--pT!o>bsUMw0P8UF3u*L&q724vv!j`R>7|#{k^AnYPSSF$el?IW&Q^_$b*iCW z-_P`gRa>7{|NX)*wa`#nZ8>J<7ot1Wmu|ZjISkYw1N2;B_g*1E=|n}t94+#5&HHI= z@VbkuXx+^z!04jRD<>$76xOhL7j|0&v&1Z&0GWgL3O|-U$H%`oJa)D?km7aF!wH1g zFQ3q1B-=sFtb@FsDoj~LrJC94#iFFx22zY+l~0?pb&!cg-LPFtjIxO&NI6De9>G41 z3kBQr7&hFNq=$+`VhpL0lH~%@B{Rg3SQluAp!_0$TxJ^=lw;ZUuR``zVasu15#4f< z7r>TdF3UCoindMB=TZhB#Qbc+|fFbS06By#MMRXI&U*nY0#$|;ajxt`c^%w>S~g`fyaA(o+ZKVK8eeyGw(_N-37&i-grcTSFQg=V~KYvA9-J|E9eB%q% zp{An=$Z%a_T7Tx1sv%veDyv(Xu%WzCj%7_TKGd2rN^Mr4&P0 z`a@`%-3|2*(j%5|TsD6wo!C~MASg54J z2p_Gj#Zvi!#%f2essycGqDW!56 zmqPo69Y1Uu7qlx)@N;Syu;zyjam@aJn>(RJQErd;5UA;<+{kP=MOdWx4><^k{A3-x1M=zasx2J@(c z#6v+aUPIcNbde`dtpm4h|}gTgg5xG zz;+TQtPt8TDIPrZCWUWe24tA?Bagnw>_<5!6y(2xxTO?;HNz;WpcG3W!U)cT?wzvV zzFk+`Fp%QTopZbA<1$MtKv zs!1;e+yx-V2*@#(!}TH`*L{Wocu%5)0!XO~mlOkAdhG{|?Ck)@VYb+Yug`%GaDMXM zSSlEm4&?^-4u2st?1|?a9)I;+bW}SiT>ljj8QCV$-*d@hgl)uUrW=<38Gm?W&JjI_Y zJa4a~6kmCtS8{?Wgm^do^^^O^{S1C@5lIOiy!&LwK#H+0`#|0i`ncxTWG_%U(SE2F z;`@vg*UZfRq8t}lSB!vMGW&{$+&G{H;CcjvmjcYXUxpNBwjq$>^H#{#nqSayygIMV z=$vCm1q3??Uy8|XHzj}nAoM~)R?`)6DI~`-c(cZo0TJf*g++>iESs<+E;wgob@PDa z%5YJjO)=SGyeDRa0hi^vLO^7BgLj1s>_b7O5CdC^xgN(y{T4wd>T=l}UH2oK@7HeW zP-?V|(TeryqQs~oD2mdS+7%>5?Gk&|?hw>2YL`Z-84;QoF#~zxOUu;3L`1MfPi{Pf|=w$+@5M!E7()>4wnX zEADc&eumm?Zf4eb(6vZ>d!pgm(F+erDY~x15yt{9UH4ps79T!rm3nJ7cmTE>Tjt9BVzF7m!^a2cCs zADeh2J1ilY_i93u5A0FsE-L!q!9aIwC=Bh!@FZR;zj7wOWXi|r3rJzv{-l_H8*(#N zf2o95GnM-T%Ur>3mlv~LOzC34zPVk3C|)eHT2@y!(>3zT8NxwuEbAe)3cPuO{1vJNYZcV zHNEWwV@*gn&UDnGj3;#oO-tf;(gaDiWHD_hRa>@P$oB4Emz*A<)4>afN;@)`HI-u4A z0&d(}zVrBe56_M0>%Um#KfS!Qk|4O|edX>vca*S4BY5-uvlGQc>r;=px|-LyMg5v? zRdX%g|C@$CQ2QX?dN2Nd+W9?=pbnp6wW}VDZ@&_$GR^xR?8`;(wEMYV6$V8ycs-sE zqxIIOSgQ%mEYyi>T8=@()Ui7&Ej=H7Jj2H|l`Ec!+zarUUa*?@^IEBIz&B^_ICe$8w$ilt?L${v;Pj|WBh4vQDfY~U<1oaxAe^_G4lS{_MW>{xaiY!W6deLqZ@exO@ z^!;KCiUs1|%pybLf%ppylV>h{_Fu3;Pd%&s z0a4=KMLIk8yh6K(QC?G}9lGSam_6^x(X$3N?_Jw1D{=Bo)so>~MzdZvvuQ4qdS^F- z(G@Ke^v-ap+fZ2js;A6qGgvgBX?~aP7~>H$%z$0XNPUwOCH&5(@-f3Mes@iO z;49cO@0!Ym)UQ!nr=H?33Pv>s_W=?0s@%=g+L~WWzxwlQRnnqgX|axxOnjW8eo-g% z-wOR^>JaM|l=S_5Rf=I-Mm;p*Q2%zzDptB%+0lK{B9gYvfuTVs*SR z?$*}Pvm-i~HM2^tR6P&=qj6ohHN4=)uT;26Ta5$1CP)K!@T)!+4Y2tHmxsy4Em}U4`^dFm*Ne_-a@WN_^)s@_lxo2mJ&nmt1(@(YvR|hc3nWwAQ zR^O{biyiwcre+g0P8nV&KacGeGS?*WFgzEy9htcI0(mZNK?(e~xBQLTjH6MQc+a~+ zDm&CJDvNX3`nka}kFp zf;Z0@_B54Qc<;oOETovPERWY3={lr;`UIXJU515G9HX#Iyh3~PV9^c*;dWD9!FJ(- zU$$!4K)Lyw9~Eqsa`W595g|>;SkjzZsGj#KgJI0|E6U^#uRFufgllrE)LSGBp^zsS@6{mxVe`AdwAa#qpx53G|3 zJ)h?qX?i_Z=s&#DlwFuv)b+nyu9KM+?*R!qzP-sLfw1&a%`n*)GJP4=AD+Zpe4x+j z)a)3}$y9l2iJY^4yUDVY-t(YP+-`6DZf8MT^SOtGKYspVhb7+axu72Z{Z|7!jq|oq z?76ijFng4{zVci*#tIJXz?h+LFSzRow#U^42p$DmHa6K*Y|331lP0}OVqy|!?7sbM zaqnV`y$K%NDxaIb&#P}{OmtS&=sjFtZJ&Lk`DsVqBa*cjaC1yj1XsJGgofOhFi%zL zxXyHmuAsAFF}Rd%m@m?iVpkjcdNG52*7y~qxFppT3!qSb=6y+>^N-zL$I(|>kJ}B- zP&BN&F;B(Sg+&PG%xs=ZJxk>EoGWx_061N!)8_T8ZTw&)B12M{QGdT|spAmSlK(bY zCXM;SozG;k93J|HJNwSxtcrbxrKsAR%tK1`y*+aU6q{v3avdpMefZZ%J-;c_#SEc~ zwfzb+-|S5J>vsi8eA8U26FIC>w9f4rdd}=}4ol7A`aavx_1X(O&5eHOTfS4gvqd<* zx}peq%gWc&{j(aWde3b>d14;M(*D6bpA@%TkD+;f)bp}5T^v?ns_%=<&mAp#VPu=MHq~LZX*TU|ISqH5nFlr@{M4glqG|_IDp#w7rTAN`$-l zh1d8+NNP^`Oh$>dmd!6KN?*m9*#`8h9)@3q#S5(MV($|Gvq1UL^YVSy?D$07L(EMz zRaIpT%filUWIUI;b9g$xkBhOw`KFbz@<{&bkYwx@Z{BOCa4I~@F_PNn9R$PIoJy?S z&{vNdS)Lbv^qcIlvwT*+$1gT$wYm74-JQCWr~1QxW4e<*C;zbL@`|Z{k9~(!mxOr; zPvmE}qLHzbu`EU(iJv(V0%RAIPn~5mYmttIgKUsvrLc3-hP$q`8+!Oy#;T^n8_(;n3^YdI1ADlA0O)WIr%- z_2k@o{QQ}!<~JatVQen?9sANv`8|PV^@_!G`i4f&)1d+0N0)XwUZY3caL_su+d6;i(`GkUI<~L8STkhqf(*KpraVa=skqD0Z7p=I`^7>6ph^$;mQngT=Z-b@ zf8SNf(@0PyOHD42nZ78)_CIa9*H`UT;TFT6+6DA9-5<6cD!Rz%%j6I(l-d0Ejpi5$DuTy!RUrY5+a*p}vHhtnE)faSnaKAUW zc>Ma|GGYC{?gw`aleFU`4a8ILUGBC)vjWpQglP zU)s9Ly%Y$gvQ%A7RMND-cPD9-TNoxMrwkg^+$s$im0{7*+c{@jK3mbv(ueb^W#*~R=0 zpIuC^_>?TecBE)&TVY6)rH-vic>iw>=5`5sK~gZeqh2lIKFC|+k84Sa?Vo#y$~2c1 zhKF6p=o!`Z>fS!*r7sFuP;0xW!*c>f*|MrS2OHj1Yzy4)fye(Fqka-S8z525om7{y zzr)<#3ZJo((`R+%DRL`Oc|yYt7T*&jykNrCe~hK? zY;ObxF}kh<*u`Cws`DBOiYfENRkJdAn`<@9)@+zn`ZIUAWea+Ry(8cMOf;M|dhmt5 zp>05uuZDK?Bb*_F6kURY#+MGeolTpr<3`%*I2(0EKm$koG1o6#6J z>JxqE48Fw{pN>0>sb=p+WGOe89$pyd{ATNTmbRZd;mGZGy!1me-oPq&Ke<0^uH3ON zy?o>5DTA-dwG`VMsQA67rX+35SH4BB-raTIwY;ShmeG@f+u!MEPCh*$#zOOVk0-Fw zFgWIv^=X(Ur{$u;m&NB*GXbq%Y)oo@2W2pRlww?i2b>7xaP)WoG&VXtX|Z#>magJH zn7P{Kq+Mja?q_njd`O$GX-IbUUz~~IGgs{ANjP?6HIc6xlI1S@#Oj0eONd$5R;-B8 z$RB*X06hOzy@R^G!h3$HRH$Eo?|z``@M0;dO#HwX=G&pHSenH?+0r_3dEJI| zaGayBq8y7he%wP1AJC&)zjm><#wkgqtL)z`P6nw%0O6l7A@xO{H-DXB{RPe?0ql9( z;X9UW9`nEp0R1N~@}ij9^gg`4aN&-ye9VXEhSxgfV=gfMJ@4@JY2uv+-=f~l1KHxc z{qfavrGe zx;MLJv-owh@2JWf=JqpoYEJzH1vqW7fWvJ$)oz48`b>Pvo@Wp;fR(v)Ty2t zC#D1}(XATkLuceN#n}an!c#!}2Kz}XCv~9HCH240Id667P_sPcLhTLY*kKM23iZd&>QF=paD{(&> zPRp3PY1R{I{Gj8bfJ3=Qe+d41z<|#|-74|oby*u9!~1@HINMOcE4!Fb`ux>3n#fy@ zCO{vJmhy#Soa<2ywc|MZrNI5oK7V*@m^Uh*d>23MJoj*#vsX_|8zcT^=dAZ3G|qSE zYVD#xTBJVwya^y2CHgdYsSXT?fhJ>7b$UhG2#Z(Mdr$$7(!Q_yemB@zT5R5%stJ!C ziWD6?g;~|e*(|f=?cjJb-qhQI5}f=uR3u~&t$^9XzGb$zaJ(K@>UEkZ z#tmzxny`}=i;4kY^=x-(1h2pFRV&;oV83n6&3~8DsUqk$UNegV=e0M4(em*#zt2pi zE|9y+8#?*$jw@=NqPdytmbDbUjn)M>PyDGVTKhjDwmGygY4+X49tNk8a>f9|If)!u zt>03mkF>0EATI-JEdx)GZ!IouKeh=>F6@310UwI2<4m?JPrGP==h!d>eVq>K?4dLA}qV2FP3SNaa5ffk*DwCYv?XKN-i=jtsFlB`G1Ots1g_O zq->pAz?O~Ph?YS;L#_X`M2_QPsyA0xnTKjF*3OKQ1Kk!s6Y31YM@g>?n#_-TUkO64 z@zOUUkLHy_LeMNtdknGcBEBsJ-{X~CS-PZ-ol$z)`w3sW}l~?4FwM0(Z$_+RA)1TJlFwL&hVdKzG zC|(VSe{?4D?ZfC3#}^Pg)(P%l-XQ5H_ypavokZwi4zW+{8PP<0JK|d&`sJ zQ(H`Y!7Yg(8QoV}aqy+q6uUR_ubx(Hh`Q}&n-Gs7FpI{&-~HXRF5Ix)mFJ zd{V+f3-BiMpWN@+bW@py42&*neo^~+@dbihds{OCV#7JG+rh}rMs8lhNM^IO3IXWu zCC3~Ef3r5!u3aY86tQaE?cvtq3}hP(X^wCkaz*lPUX*{d8^qVm+`e*M+dWs=Qi;@` z?o(_M_NM2}wrX{+%<-lLaZdb7YcJtk*`e3brtz6$!x2-{_AaG74C1)Vk6ClpHvY-g z{?qbwzoUg92#mDNkfpMY4J!Nx@ZDP8Tpz4rLN#xX#!k3R_Q<>S^Wi*$HWR01txz*~ z_riW{?0=CZb#`&%9FZibnn%vRV-nxOVENhp94Crk26)T6B5SRMJkVOY_W+OveU^13 zzIV16hPT9zojI=46INRJ+4IZC&f>K`R%81e8P<2An|g2FSiR@sT|Bil4sWh6;*<{& z%0ZC!%j=_II@?RDtA2l|`0B(P5g}!d#@*ENkw}Yu4%!1?}48v|uR!OQ+Xw zul|}noWaKJQi+w(@z>IFRPS}6m!)rhUZFH^b%gPIvHRRTV=}kyb|qFd;qQi%Li%VL zMK^ezzE3i7s;34H{uX0%yq#wH5P-0S^MUYzlg*aq|1rlXSSpxj)wlO1x!vV=(T3k9 zdDn*$;nDU5R`*-do_|NjMAL&w?l4Afj0$ZXmJxKzh{79)xp)fWMr~lJfoj|OI3C9a z*|?d%w?R8LGT3@9sMXLM*bM~f-h2pZ*w~jyQP$@S#=4;BN(U}DNOq+HUiJkn@wj^z zx1eqS#!ac2;19}k3`9sQ8)9_(axUkcA5tt;TyF4A=9U$wR3C~b7YkvMU(mGa0$s)7`0YJh0{ZfOT7Sr#f>-qr3`ODJK}t%eS=HE6&vJ z@@QP^B;fW|uoB>&=mw8T&27u;@49mxw*|_w+a5wnG2<7#AWuOAo$pJC3PtpO?;nDi zeJAUzadz63P0PD4Q3Yn_6*jblRu=AXP-gr?goaDkYRUJf`4vMSJWlwLdd=oCyjE(|8ltb=TwDutSJA1D5zDSRK3@ok+8f9ySA`tZJ=SC3v*=$Rv z*_KW1dh6Atp3JRviM?-5!`O4z8 zHnWV5K43k>xK>L(RS$$t&Mwz*o$kJc^c@alWW1N;i{ieg*blC6gO2i%AtCo_lYS12 zY0!%W(ZS=~4ByLk7p)pPxs93nY>}p<#L`3P`G6v|Ep9gOqk389-*KUsk%z8>W6a)n z?QI#ymUF%dmU+0mH{Hq8FH>M?$C>LW+?mo*z9af%(@$&gS+^RdCtLd9k?n0m)06Ch$v5-SN@WT6THkCR&5ujQzRH6^Ho z3bD1br~{*j;e#ADI)x29(c{Ezu@eVQ%sMHA2vcS{B2U^5@7%OO+Uf@jy1A|Ip1pIY z&Q*@&rsS5yJk2<2IsyTCFOqz6Z4j267TJzF542;oPm#3Iuw?xdT=%h2?nfO^`RrxV zo%;Jrt_0}Mk?I=5T*^wxj6&%XbJ^Gld&g8(Y6fStXr1mWm+$_bwG@F<-QH0W7`Rl- z9~}~r{!i7)=#;(xN2B)15~sAqn||E6-YEyeEhpY?Ls83(qBuh-=UdXGaxdNko z>piBMZI`#ofIfDEWh%gYMo%$52Yaf)vGIlZvi~OgaITjAG<`e4^AikPd8@M5s`Rtm zL?9S_m-n@|EZ#Z(w1Sx8j>@ReQQMX7mmqG&!^)Bo#NUFE@+-Fu?LHlEx1k70W0Sn4 zToF}!)#3nV!mUP~sn#hoxtMff_S5sV{tFGw!Ks>f!+EM)pDm~^F2d$!?eL1*OwUIm zQ9|tAvtJa{rPBjv-MI+3Fo-dYC{^Gx2yS zOZ{`{>0usz2OYL$?Vuy)HP5s^&jsUzMRP`*yCnECwovQ+h*mI zLB8qMXZ`H{>)nBtW|zK(18`#B+B8&0wIE=K!C&IeU-g(dxzcf5n;K@M)J`cB!t~Q4 zotq;viT^uPFy5?U{aDYdTh}+P!sh(ATGdGV&)jvG-Va&*Oa+=*9`PwQK16+aLGVfT=Vh*wt#s@B+hftC-r61nft_zPj5IPFGg^h-ea z=kBFYXXMyu;SyGP#`1XTh~sCRm5Cmhe|ag+$%(Ri#>$*f`ugz&F~QP&v%fl#r1Ur~ z>u6dGOo1q#wU*lx#5KDE6G0qHkv3-u=+ndUrbBXLa2tBX zQzt})#X>dHazw*Z8IbTov+wf?`Tnu~iBpqaz;{j1*h!G4)KjP^ij}^#3`IdHVHJOCYs<1JdU3K>#5c!73RgB)L@D-qmd`R4KQpoZtx65^isCI6sLW_BG`jKD5m}StVGaVop$XT% z_g%4mYv)`N2%C-4Z1x1L!b|_~aATZq0|Ggt)**ia=D-#DF2wu6BKS|wq^`oD!m8#= zO9eIMNjPB_&hTHG+M@zp+;>c~%^z$kycJxZoillYZ30X8h<3;}H+v{>Xo~=v{^r8{nFt#0 zClj?IVSZ$X6-5i=L1lj9ODlC0!K+!M8V}Fmxd{!A;qHvH1eL|Ov!L?Mm2#jeN&|dR z2jfW=Lg~8r!>J8wmaY%%bZNUQ*e#&i&9RCyUL$g0?GK^3 zD(3JdFd7|(+f~F8Hu)dKV}h4@=CK1818@!T*6ly*Ixm}Swmr=M4VFlZ9u*m0yg2{Z zQ?QSjKsDs)VGgI)8oIWgqMi!#4zBJbU$Z$=vFBO!WHb1d{`6m4Ns_+vd+)*R&fHb9 zKHPpjeVg58#3@MhdZf)rh%a6OVbk=KD<10(%yV^?V=vyDd^7uaMf}38v9bEy-5VQo zK^s>WQbqfPQ^A0-JP#LZ)18%yG6=aFR^`s|AM>Q&7@pf|vuj-e8OZ6%eVID8NwdfF z1lReDH5>$JVaow=;p3(a$Qt;hkhOxp-yS8CGuk!tE?ODl4lXa~UCOfQ69dq*5FnJS z@3P(O$x&x;pl`S)J4fl#Z5`v}Ty!N$I-n{%;hq}8x(3TAQ#1$g%G_9;j-4<|`>7{t z#Plu*-FQt$2c#|#J#wp5vIHh^d}twisJRT;n%LjG72&O2wQ*fD=W^;0r|LEDa88x}8pUH?$#b{2o&6y5qeykLUAfa-pdJtsIBep8&r@{mUVn638 zex8c+00Dbz#4b;k1&*fsBW%Z-!G@KvCYo;hpdKdpkVvr_<(ly^4dOB z{gDDeAH~6c*?+(_uk>c+YjeHVBeI@Pa%d!Jx1(5j!oMtI(v!!3^nu!!=aFpP3YOE* zY~JUWIikrGis>HNBhF=t^#p+~zxL{j#Le*!ZkZp}QqnA$gp3JvG!g1*#R-bp!_b}{ zi(Cy`rNIDkb7w;NfZ#eAZf#eSbqOku9bhjr##}-(ioe9Cpa{mOG=> z>c0fOyt~mRh!f|Fq65TKwnpYUuE47Nv4ZNM0NBkc=wWUlX$giBMIa_LhnWd=9(_Ks zdUfitJYRg0pLeqmJi+mWbpI?x4l0hPG_oN2R5Ze6^<$w9C=$wrb?Ra8Q~>Z&75lEX zuWDW6?}&^lW7IzRYZgr*aaf3lME$D|zWFv`JlM>-iYMAgb!?cq7gPB!OQ_*AmYe^| zT}u6()B4Z#>kknu8@o1(xq9kHob|g3%OS|dCT3!9t%WEcdgMVp#bKd(hfgKcT=;IF zJ0PB7v41df+FiDrQJ88i8lvP)+?aA*Xgtd3C2r)>qH@ok*Obnd=T44?IAy7gH9wd& zX8!CI*^Ei^Jzsz-jr`yaOeF`v3ZKA#k1p~WFcb8+>U2|-jn)r4b_eP*o+V@{FGlD8 zS1>S28fV{|YT;|3-P@3ms5f2{zxLQ8op;}PP(f*9avS1?u(Lf6wT4v3Lf}<(maUed zEAnGApM%}az>p~8bSwu-oMUoqqnvxFrVEPpOg*EfwWwR!z(0?YOWri7;pmL^PD4M+ zz_$kXuQnf_dv&qTpV{mdY+U#cWTd}pd1aVT*1H(xT&Dr@)aX6(j= zLd99Wkg3Uy241)MRJTmStF4|K@dPB8SRf=Zd`rV&h~{cN>bzg zOf(<7H(TW?(iCY7 zBFI3$p%1f~&Hm%hH3hY-aJ{}r{1xd+WpQ&|^<5%WvzQDuzw`>AVC(_1%sG_HLnk^Kd3Qkql4U{K- zQQLvsa+1QOPNk0!2(3G20G}aJsyX7d>vzf0B+i^TTHYjriz|9)ZCn!x-lP}ggqqPe zSD6WI3`K7HW!u;sxtO~@60_Zu`fS^KY*bCAUQPAcx!$PuFfm&9)ldK8lS_IZP6|Nt z8<+@>J_3pEj!KVgQNhdv3->PxmIf$o4JA;UW32Nn4+BvTpkL`HSiEs%e04=PgE3PL zE5ZijO6FR8qfC5|&Bd=rqTSwF(hi(haA1L_6&2chOh6M3C5NWtQ`d|)%J(JZK$YK+e)h@ z{=(wYtfu8mxm+}iL~+?Ui>NC7X(kqeqHEP?BKa zRU1e2$#2}XdyjHALXjJ6+&M|HmDHSsc#mpJS~{Lww}Kq0*=PK&EmA*^aR49$*!vtp+&+eZ5F(h(BLWtPw0&73VFo4>=8>W%jzY8m3QVbP*<{K zwq?9o!w)N9L$E1&>NzD%6A-n|(xz5yeNW}en5;M=;Xz(~gFjiDUog&Xe5ywStV?VgFf&LG{(r20{k=7+aAftm%0 zK45ymmBbk>vu?ilNX|WQu+Vf{4fDgSlJ2|I1mbSl3O~|BCk7tzP{chLL53he;g|@p z8@p5J!0&FIc2VnmHAg&e66c$BQ)eV%=i1@q$SG?1F`L)tRziLneEi@ zB8aK|ea&Zmu~FCGb$8Q)3SG^v5`=_dVDXn!;-tT?5z`N+6_1mJ-Z9@X%S4|zeL5Ph zW=4?jDr16c1oeKKqX=~z9vj(a)|Tq+#mkp&KVT-zj;}TlQe80~Vz=zoiNbv+J+bmNGb+{y;DIp4+y)9MxULS37irXTMD%Sw-T( zozn3?E=ylSUkGzs27kq`tmf8;_9;sPddEcB@BzQg)N4R*n6Xm->%dgfzqd1H9q13S zE?p(w-fl%!PY%D4XKQx~K($eS@|3y?i{tCvNAw4&W_KZarI=2I)GvknVPYv|zUszn zhpe2m&{7F>=%z8rBd|H5+|-WGzt$|2Q?Xx!8w;Ud}# zx^-OB>7F_3Dy;KcPCP)lsyE{QV`3mMtBtVQSWn|}Td+@dOUr~BXnWRM)X!@2qWGH8 zKV+M9g_vMhc-elfSEYF_ohsCdA{mOHP9x6_X5uW_k*1q4mUerg2{>(*T|EY+1&ksG zpoS8i!%ozT(RD{aSohY?yGymASyoJPXBEgfn_K7AHH6G8qygb%4;Sue0%BzQRJzB{QV)X6KJu9sj5`S`-$fKcNyY&pYOkVl#&Vc zKyi*YSDHS7G^`GOH;y{um|_CZVG~>iXFL9Nv!p@RkKc?WexVnAQZAXsL+LuRwgW^j zjC!+6uyiu_ZZ@6Z^aty9!Id5UWFd@)9-RNI;si9~QsfwQ4+dNbJyDm@;TdhN!XHXcPJX;qCHi8=@f z@DEW2?Y~vV7i=H2ocT%DB`+Zl%Unyom;`_8D@lmSNqZA2yu5FWeEY>-n>&B+lo~_u zIQn&XjMyelS(Y=kBY8D|f#iRs0iCA*%gf}|gFRE+y5Bw|^zuqD${xJA^FtiLHC%GE zc>GY}!q~6N!>5)_W&6%N%%Dw`53Aj|ws{iMpLOs4T;99;-Q>Afkh4HE3?P@}ZS?2s z>=dPL$sfNsb8-oJ*g!*4o?7(-$A+be>sy_y%y6yYk}^fwh_e)ApGg#hFmnghtQ;Mb z2N#~qPuds=hMpkgqL1yrfX~6MT)vgRAG%ODr|Zf5l{t&~+pR*=9f8OHB#_2$w^O+z zoy?x=Vg$=*K0-wGeIlg(UEk=6=djlac_(@Q0~Q$5CV$#t*lDrVx;G#tcA->atEaX> z2v};#JzgyA6T>>@0Eiv}&0&Pt+w%U}&(+Y`xMFuqtAz+4x@miATU37itzVBOG@3$m zlLXX_JjDD?(TlWaDGXe5PRQl-BGX zc%1xVWDn09oreN4QO_;^@RiYTk0@Bw5Q?y};3K>dddMVaGk8-d1-gG_=(+IBLM5-4 zHi+Qy_-IW{M`Tyde*@-wfO}lWXl@?*@0WDBV^^&Ho|W~d%A^^;Z-eca%K4yCde?bM z9eg@>AJ;W~Z`1tMYz2d>X!RBR*fBIG^ZhQ zKOEH!%fJHB>_Y%PIhv{U)PqYjGjnO4{rjkzqoZma+ADlD->6uBVVuyMQFH$2q> zLGJDk9{IXem9JW`pDEW8dfgpuTNI?hV>nk3W5z zgWs6z+7NPLxx*8~U^eZQy>!Hw+I_XJNq#FP0|_2|vwwvpJZ?>zhb#W__FFm=2i1)v z2i94=QK6!HZMpvzZ?3&oN#PVm4I9F<%0_2>zVh9s)yQIhxrD^E?1){U7ocCQRFuoo z4tTa>cKU#oV?VCd!M`$8HgCDgrD{4!t>1pe8DjvpwEtqPR?HRenvOFCCZVFBaoqXf z`8Ilsv{YNeOnB6%cBpwhi&Klt;Uac*31P$1gnqn@o;DN}EEMpc$%?dBMr*dBil3F& zJQemL?YKiy-oiMGc_L73E9BM!|2QnM$R91h-`{uN(tRnZ+~jaHqBMeLJV+@6?)N)J z@2J199*>45fQmAGUK_*9zkmUv^FOqK@guir!@jV4s6i6NTcDH~E@CN|D~GgyTh5+_ zI{m0pn+_VL9{!@-E*B3snw?3sMO~Etd7V3abk;%O4W~2ygum13S`sFi<(RwfNy?Tg zjC;nne?Nh!G!khe5Cu~(*KV&F#GO8_3#y~Z?wGq*pIv@E_DJRH3L^%ZhbNki&D>Jk z5{IEV8K_TurlB*{R@EPM(*g;g#s?#&zd&N6SMi=AYn9LKSQEI0{EIm++9Bq=$HZwe zuT)2(;|pR|hPz53Ru@f0>m+q4^NFZ254v$*i2v}h@}_KPK#b%AL^NOfa{XF_Af*gr zSX5;TFR|ffx1=VR5ZyN^9!-ZUBi3}2s(W%x_s<|_EMoK^$)L*jRqX^wM5fN|KMwm4 zWOW=yWZn_*8sj^W+CQw)R(G_&xq&=b|BsDOH}3Xr@V#M~xcI#sIpzvTEUpSBTL|-p zW7>NrE#I4J5XD|qwj$|L4ITQ8L1NhiJoS}kL(IKBvBsmSP8{|Jxn1_N2RR-|(dmDW z;A!MS*kppbJ4l@~9!_V^g~nd75DdAZX|IUFKF5pT>>n+jIbaTx8<*$Bw#Zsb*Bxuh z(-MSpmYyuLmxJ__7vo`0SNwmnXG6+V+^}Br^@Cq|c|ZG>O`OsEC$>NFqE?~z<5)G8 zeq2Y7$+uB6OTH-1{D9nKW=oD16d%O-C+K96*r?zXz*c%9pG_T7i3}K!&pGSP zPrxjq>uY_~KLwhC-R@k_w&dt@z8iYq0KRT1I%{RBbqdWBS7&aSQ^Tv#d;dck9-{&i z!ucf&vJMviJv|R`c_RZWqygToZv;JH9)G~xIjO60EDD4x!VPdV-6O*K#&45ZPBn}H zxLk8{@nToAC-z-^i*dt7$&7nVWZf)Zv>JvgCF?o%>3xLF4T-`r*3>?2fkw!s>#bGL zn7CEmbwi=8fC&r;(C!kTO8k49&ydVf7TPR(D|`edjN1TEBS>P-oDeHAn1k{*@MRD% z$ee|MIrtxOrlL}P6lwiGXaabuw;@hc?Pl--ri>(v3j-bLflaoDm=3ts5hAA}c-?rK zwHO3_at1b%>7-CW02{A>OL}9&4Lb=gq23ZJvKrnR4&>_7?)TlX@}T~ zU(glJaqK_W_GNwl{VNOZ#>2>|ZYYET!URhEirF6{m-fIMX_bLhXDT_KmsR#1gbNS; z@w(p_3)}4Xk6ij@OPI>62W(W>T#z{_S&3}M{p^(b+3ukIN2N5Bl=MlNnH z>4lwBrr_=q=OeA?bcy-DrL%A@3ziz@-^?R^Lb=hY>pYso+iN_KpJn?>*S`hCI3vM7Y=a%u zR;->-B&?3c0&joU9cFH%&iqvm@#ICGD|u1^`3qiyHV9u`qKfh}DMl=VxgzMN4v60= zDj>yNz9$fYvpAW|cmHQii$T|)qUSCN%r?0O>_e?qf`^;rB*HgFwzblopE4und;1Rp zOu67fx>e^;)XcEG2}dGCLd9gQT5KhNG9{K-otWe6HYyN6-oKN}yTz*PH!FV=YvJEi z>idx$^Y4x70r&k_aaj3?*JJlpWVtsfgA-W;0psWh8FZYp&*k2Ctvl$kV*g=P=xXTp z_zwba==e?-{&%|t?>#i?XivEsx^7@NC@xU@)J!lQ56S;ni8`Ll-uA5G_3V70T^EuA za{rU~B{%f(g%js~_2XN7rV#(y zE?k56_N)_%l$&>G+)c`3Fm)zYRJA>-;YiteTWF+Q{-3Jpd->Sg+0Qj|I!ODhv}E6U zWr1L7O>8ZoeXRp8mJi=qL#TUG|m_3YhqYDOv`zq<-vRgwcmTy^jC#F$DKOpqhl9$o7Q z`LNjU)em~^4r80eQ?(#&Z@!|wdejOSeN{Fx*6aomu>DkB6>?eo{a{yK z-V*X(Cd6Hs%QbDpYkFDVg}IR{luGz!BlnZ1B#bGaa9&2|ySi!GC*)N^9t~wY84n6b zKvuZFR|$0`>6`1I$^lLR+)XR8{SQXHg8QwluBw`lxa@3c@z}UJqo_JaRGiP}9Bw*2 zWMlh2xB}INwY-ebL_ABj?6a{pB60$vm-_nLq(*(LI|Cmp>N&Y?dV!9leZE>+!W%g5 z3BY_&(W4`x$`w%IEw6e@d%?l>H~DKvJ-iuIg)pUrg9GN~J>aWYK3jth7EDPsWVS4i z%KTgXX7u`wru`d{c^r3hQ5)mN724ZmNqExQ=y1MZNlrTv$?|kCuDR`g-(Pjy2OKms zsBXqfY3IjLyCK}CDlGOU(%00#g0hmiS{D@9+yUr(+d2^T&%;vL{P4;2*mvcg9pC?u zx`1fTs1d`*p*_$2hg|(5|L}jnj}45zqFN;~6Gp%MM^qD|`k*VgY(+Kas-f>f@q_E% zB=(T|mF&76j?^{2Q?2WorXo@5m>(d4qgqAljQK@lWAIoq6QZZnq5sRKd8|@M{;qblIZ>pumUCPwipSDIen>KN6!fH@w9o zUt5pIR~I#7_)S1pLF^$V3Gu@9R5iRXxmnI)KTZPUJg@xV@0Zue5~xlwu8K;`(3*{eZo+>A%*Iv@fyrP*+7kCAj~=h^lsgOGlt zdYm`UVsCfV*|9L{zuNRz@k*mIQ}u4I7l`KFqTxpPR}!-oyP7A7Le2mxj$irw&Z$#B z2pN7bU5K1J!CB{D3ERy%HSDg!VaU7G!^9aym2i^eG)z@n8xMDKm53m<_#MZxcdxr0 zqpJVGX-nHE|9iZn-=1W>U9x3vWwMk!i~ zwrbUi#3*VDVy|%9E3{^B)u`Fjo>4Tw=#2R*?Vq{{GH!oP*?i-@M~_ z-sdx(l*G4tiF2bJBEPb=`w;LvxbGfAny1z92Z3f1z~3Oo2YHjK#Y}vnmPmHsI^JRd zEeKIo`#0oGF7N{-K=NfTc5L_2zf*Yg3JdkMwRKLWhm2}4`u7OdZpLn@QE-d;m?w_&pzMJCelQ7DglBfPt^u`^$F44NMr*7ZIrQ+Rgm@cyXF&Yl!atddpN z=t)FIoG?pUiV3DqNwxysk}1J`>u4Xi?2l!rLU{G}a3^&K_w9BY>^3t(I{aqm`zB{Mryb%)t+0*TV}E^*+@80hKZX$07hFF=pDGuU1Z)&bEH zXnj%Kdbw->1_Fr9fBEzR|Kf~Zq zUW?zD^+WIt2ak$i>m-JX=$oDGs#2r35Tw;eKyJQuA)m{oVo*0EUk*0lqBrxx-8 zxoAqP(ok(Yi=MijL0{d~?_T>Tf;IF2n4@C%25A$cd?F=F;y}tv)DPCem5IU8aUqNj z;XY7x4F>i|2DTbKF(C?htMbUs{0qAG0)g?S6K-t;$M)lE*(magCMT%RSfMr3lbNyu z`6Hbd3Op<(CPf*&R2WE}YD9tWK8=OE1bwJr*jVo`swLid;t{4A{H0d&H{x)c+*(Zx z>t7w&=`~aM<#qIee#3_%hufg(&by1XqOt3O$`ZvrM;V?wIQ!C%=%|Aa` zI~=$4{d@pT>@ySdb21l5)~kaU2AzaYhn1c65l-QcZRU8Wg&O+~Ku;*}H=7aNs=4Bf zr`lDPeuxAWbTIM!_*xc!6HlcI*hyWK@u$eU^K#KRMi5Z>L8=sxp62T7753l(WczQM z>XSX}*#civtvyWV`6=gIi{oMEX2c9SH&LnZIW%|(uNXEtBE9Vb=4(XB?>y@keT7RJ#X9U~*M zPDWzo_XU8@#x)QkoB*4G#1kON!vKp#*p&5)i(uw6t;R)g?$x`J za$a6Z9LnKSC#mY}6!sA5JpM9$?wHQ1$kEYhd9G=Uii(Xn`n?yvG}~+OL1H3@zMlPl z^!=fl*mITW4IPAXGM&`2w^VCt=O^f?l9KA_+AdAK&~3_Jm$>|B+m=~s6qOR8Ew>rL z%jpnEzd#z&R^?1BQG}y3Uvu|XuZq+ZV+w!YCNE_}C!X8$zJE}0N(d4XIgjK6R#dj* z+Lj-)=AhlzAv85-A?Eyi-}?48qNY@HTuRp735q$l=NUC~qN~moyqz9-d{DmbUrOH? zuj|xlgCyQ*T~j#-^b=X)BCiggs2{IMt5F0i{Ms1({v~9;?de(oqwC=N>kGa%gSK|% z_5kbfglfYTNnR`+@{nMaXe*Aeo4r}9+v>oQ)9KxHqU zlo4~6$GhAr#u@31nUTwtD}u;a_tvvnvrRX@T#B6i<$SPKQviyL;%${NZK(QM^_LGK zH6HJLEeWIyDFCR*G=i1&|9+yb#zVYii7xcl-!`&rq|U}ACMT9nTddRs5$juP@o=mu z96JE7{zuj;SYmALtUUkxRlbB^cdQprLaYPGB$9^?47DsGByS73`7c2`S;f{o~7FT4M8L9Xn_o)!x-&&kYB1-=bAizyv#8W z|J+YKCDo>K(Jtj+@w}e6b&E3rbGyliKaWYqzv*P*wM}#G0y%e9HPb zH8g*=Ug^n(&(;A@0ro7nk|F-MqVH6o+fLP<>@m4A0tp`#6jt5Qtwd*7vV*=_vqL5A zC5|?Eq7dRFWDx9R`fei}8hAS;Kq8U3s(~L_E92j%#k=fp4}rTPn!m+5yMVs&MGZ@U zhnx;-zKw-Xpe!WwwkIU$|R)iEbOvP+=hmF5D(Th)ueU2#=-#!LZ1tg9{}8U6qCWDukT zj5LIm)_@aj`oEpTQJ{J?*0%=rTb})!)5ZqAZSg*kLL9FOaC}Ku#AqhsrkKT^jy~SFn(LSzR+w8~}O8`}RILsw4A*^~Sy-Az|gSOxM z1ol2t5cSHu&?USl#vwka7meX@$MAKd)GG;LP9EMcc#bd5H|r^uX)xp*6$0j`ulohq zBgR={W%0fr>J~V9F#7D7qdqbF7uObnB?8`J{gC}*_U$lL?%Z7S54m9>u}<(b_!YSL zO2`R2;k@7Os6P&Fn_Jwu`IlZDfcrrv^gKPqXb?@Q*muGutJ(@o>^#x@$%D~(iSJ%y z^P17jjEu%2WDDYvfP^lc_jyisTJ17xVBIy`boJSz>l8{bQdq*NlEZL40_0W5)sZ;>wP z-zEjIqPElOYuczlGjD*r+KdcyigN})3mM0pTLU^YDXn)&0!|8?-LKS*Plq$@J0P4t zj8eQ6Grm1uM}M{B);ga)=NMICHk@Uk=i7Gt0-6LI$yOD0u!eTr2pKZ^nP_(&E?C8*&5_h^Bo?DH&e*mKhpL*4xZG$hIdwWX*?$z6*N6&cY2dSHUF$Y!k>T3a4nvwc3HWy&6vt2~=R3h;|Ukg_B85Ej* z9lh+sm%?ECKagLgICEL}{IVQAgl zethuORg$ZJlvrF$ufPbpUs~eRp?cZNRv;&<)_5B2+Ykm@s`eJS0x8uq-(UnI+PCcl*cF35{=RhtA3Y_~uQOPP>o*oz>sFhZkxCJ{21(M- zkrkHKYa3lqYtp`~i^iOTCe|+VyxGHT&zkYP!@ySP^w4JXPG2zW2G+ik`w(KCxS6V> zHHhdt@06~TY!Snh3SCTlLf<26@sRBo9!-PwN2Lz@jW$jcXGax*9hWpq0w34s3LvLMzXru8at5oGn=WYIw~Ik6&9%L#>7Hvshcrp?*gKzGw
  1. jCKT2TQ~hAn!RjaffZ^i(p$_mOw{vr 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 diff --git a/assets/1x/ec_other_sandbox.png b/assets/1x/ec_other_sandbox.png deleted file mode 100644 index 3e261dca7b19e22c2f504e816012827f1ad54b52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105377 zcmYJ4byQSew8w{`8I+Lj5T#SPyOfThyBnlyL_%r+X^A04siC_Bhwg5qySpF1Ki+$P z>~+^Y|J=3Cxo5|Be|Dsriu@}qGAsZ9@JdlZMgsr0Am?#l~`jpQdu0H87s^k9bi@{Z}MpyvSqyzctXka}ExSpophg^DtgT0X`HS?H#O zi0K|xKUD>sR(>Q@S(M7u_cV-jtw3J{=urX9}*%u{UmfS7vX#z!|^s^#|2x7F~=6 zCS1UdIUEERq=a{R6F!SE8-45@9gZrNN@`!atNPwFJecsw@OXi}@iVga270N4g770O zF(cl~o_VIalI{P^?Y96ovN_L=Cy~xN2Sxr)lxIz5Qiz2DPOlYeyY&Mmv8KuhUnpL4<#=gZ5Ac4o__g|B?TFuc+V2 zNM12GR_+znGkcxoQ|d}i40oGZV|J`|xs8Rv|5~@r`gbSNKR1I2hk3oZ{Wf&-8=tMT z&`EONvbDWQn2qff4YdT3THW@%Yy=b!d0h%uK>X;LA6X$wz2KX$*oY z3|+Kz8khe%4O}`p{-51A8gi#nMJXfy)@DHwURt4|$UnM&?zR&w(W34xHHNPZqG}u> zb;pCCM$Ba~rls}cdu&zlZ7PZ`f5OO?HD;qqH*8raGm=TI9A4k;OZ(j*0w`jGcR1D0 z{Wp)zpUeXi^+)pv!y5h7e;SCPdX}mP`l2SKW++o-XA}I(Qq|?lV(5Q&hI5h|O-M~+ z;%#!Y?QajFriFVYH?*ckkQW9KIM~6o8VRkoY}_;4i`qBnL$7GRP<`fQi*v8b=J+5M z>af!@GorjgwJzNd9`ta+uFWXAu;fmirn{UHos^I$OX}hYfa- zW?!E^l#yix7AJN@szv`HX=EKf|7>Neyn8D)ucvNyV92j3lwrA|%HAQWES%Vx)?KxO zyU*dw;O}wt*o{7)o>XSTvaD2T7C=k zYn^9gJmQ#bdtV~!?s8`M+cc}O>F$cl2B^kz`lFznak&Dj7R~Va8KN=G4{G;0xYH>vIvM#%Ay@M#>o3}i*NF}Fs$-S$-rm#0Fljs4kj7>S+V+dOmBF}i2) zPbFROmSC)iIm^huf4t58dXFfL&*6BXkc=Vl^Z2+}sl})Mhl`q_tJT)xQNclF2a`gZ zS4xXCLF%)%$ETJkh0f9SH8U$F4?o|e1UyrVZPOPl|GF5FlXO%0!r|L!rQ!SqXOqw; zKEi-1%qQuIxWZU2C-%2moICgU&4W_EuTbg_RWqcZ%!rs12W7;UwfJ938yU$1+i{-^ zJLG#0<`@~n0kK!P0;(IlB-#L0NXkOmmeoSh{S^xkk&(ht7;tKaekmF*qIx`%VS_Y} zl;1Nh?9wv44ROG%$$Py`LQGvMlO=$+BF{p@gAwg9CkN!*`qL4U-{7PTJrA9IGavJ^ z_sSa9BXY@)9Q~IRQSTvK55X%dJ{l|u%&!|#w1y44h)@>3T8QG7R384erwpbl(eQa4 z_y!Q&~nMmsp#YQiHh3NAMbc^v$Br=s4rOoC=1MDOcOuJLH(9TK8yz zx8YvJ9|fuVRSV^iq5@&X-P^V!DTYXexHKQu^E=y700^ow`kTel*84hT?tDx&NBHBV zD%J`^&a95VME%IjZ|?lW_Ea3{U_|+un3li4hT4JLEp{Gc^`81zLG?O2zm~?&?}SxF zDeiTeWGod`&gQo!6|nxV<=LkMssRDg+y)xaurIR%;_>H%(w$5!kIeO&PAM+p4=u6O-0|y#oBWXRC~E1g5PD8d zwOg(EeFppiKw$R)3}^$4YF&{;dEDP_y9MrK&AE(!Z>+w3Xq7$ReMEq61E!jfNB0Vk zzf}YEtIbKv3@U*|HD;UlHD*&v*T2Pdv*y^mU6gg|?h0v%S$*s0#Lx4H0aVu2 z236E4XaOsNmP%(73bpO-`7k1Zrc{_|7#u#(pjjjk=f}9cr!Cf9NKp4$puek_+_?NZ z!u}u|_7RV(wpTO<`5CCjTIFrCuhBR?VptYbUtP6WAz1 zYLo|{{RVCqUEN~6Q)mb9kbw6uG4iJSn zSdzu9udphS3f~E-FvJW}q;$vaU&Z^bpYUX_uwP3`I63J;4g0s?@2jg&KBXJCW%wgk zaW9N-W|&mzqEF9DQtcmRu+ed%NyUnrMi3NHj9pUFlSs(O!xHi6HTQ^w?;6#%Q*`}G z?mkl|fnZ}>PVhE+{F-EZo@IBzB7o!CP^s0JCNPp#czwH`Z6xS#o0xG}w+-8mI z1@L2DoMS@AVlLJtMQhps&1KQ2$7)|2Lk{huXnSAHhb9v+dxlbKX_2TqMz%Xpf})SM%<^NJe5#j}zr{ z)m;5V7$be;}Mz>ZR`#2As95OTZR?&<{IFR9_W9zz;> z0%=5;`Naw=CpTA^t%S)NT`Y_g^RstY!u4HMYUQgPM_N`2{Prh?y2Ve9@9jnW0J7IX zAyN-6`8%UO3D#!f?Jtg{JkhRm_Pz?MKcctpekm$Bsnj^W$_x<_RZ7k`(2%(aB)}V= zv?)<#6f%KjZx;mirLXd=U&?_)gxo!9xJ|aVUpqPbzJZaNBX4*xV%P zHXMTBZQY*h)`J^ok<~K(r^kr;t!TK6Ceb$>`8CV=h2yi+%R-ih6>=7x@r>iLEiQg1 zuqw6VVgb9l`5e$Jm2i$B^8Lv6J{|qVc;>N>Q{0MHTMiO2u!{>mkM4FB&_^b`a>|j#mlg+fw}_= zB=PD5Cnq@AD@H?eqPM3fqf@GDrxO9v`e!VmKBoS8wG$N!1A|6Yl|xBcnZd<{8Vdy4 zbmvgFp8lyEXHC$4$KzY(*p_MKMzKgM+GGDPN9=@&c19) z<#(W!ge$lLTZNhmUkc|lx#YkyMYpeuDh}2~B0=13@WU_|?epO2e%vrFr7>hg>h>Q4pn4g5T(*MdFw zIu9@Jb^;;4lO@>N5c7@3EhkX6LEjIig97svpD`I2-ko?BFpvPe6lE=?UlQOe9Q`FH#9{QCJHQwxcBF+(|EaWP9!X64Om z(}%InA|rUlGu}|6xG+cj8dF>VV<@|;oCm}({uCoChR9013!!Fb?ScgdeEV}2 zeMg&=6_B+UC~EuXi@2Rnmw}z)#9mTT=Erp$fI5?eD|c+v>x5j>Sseu~EDC;y;?-bjsCu{l)XzhSXj+y9|#LZzA^zPr`eB z(vXK~H@H#-kOU^mH^vrCg4b_1ZMNK&-W0)k7{%u{b(9P*N#k&$E8XXIxW~!#BwN*Y zVMF7oWjWtdbtQO#ON>|gueEWm^15`Zeg!q)P)4i%#LAV_XZam%x2r{~rtc2lAoQ&5 zZ3;>bc#ygwS#vXDsa4X8As!)7+RS?^;7vx;aXXO}@Y);8Dl9yCc1b)Gf4wvTKc|9b zR|vSvHtpw)38-Wf1g`6Dv6<#6Hsjjt{c z-IpouQ)mf{Nf#0if1);l?jFDQJ-*sru7%+T@TNxEn2<;-F9&=Lk?L1>U$df$MoP`q zgOZa`sidy2GhlSFNd<^Y)6*k7nhUz=P!Pj zlOYu09R83QQH=%Y7E4kxZk)SK$VOj6>XUEB%6W&A-H-FeGqx>5hmP~I~48U51H?>KbnE3 zW+cnj9Jo99#C@Q5qSrK!oaatd)avi(LPVK@K2dz-D(x9FGG{#1XXmKtx^$uDi6vqkD)Ex-Rv>)7rm}z`rqPcr|56gp#KS4&+ ze?CN(ImuKRcbc=wsc+ldPuvwAb7Nmqh$QK-6U-2Ae=}+Me8r0O`t{GZNQnOSbT)*D zHI+dW{O#Xp4?SI)eoG^yFj+aZPK1ElD+ot92Nd{Y1#E`8e(5lCChE02T|3wT#`$A~ z*$pkf)b0O&A9AsoeU93#=JZm-7@T0GBXM`vpm)dXwWi0I9jA% z6gA3>5PC$|HTHImAHhW<{SEhvh*W8A+jEOSL*Tti>~7oosR%S^k%JDlw*RSwuy>|M zgp+y-?fh>5EjX68K~KVUp&|fdl!!ox9_)~x_mzo(=WDLO`$OhJYh?i)p{oHn(Tk3@ zU)HJpXgPOT${MBIA|tPAvf+`u#=S@y6~|z-nJ?yK)DqL9HQ&C6eAfD|Yl${<0ny+S zT}$FjSTr$C8bzDwj}ktXsf#wQYf@^#819M!kmq&kk$>9&rXkI@n8jaSooW_YUUz#9 z4zKmOZm*9PS$u=?E$XvN^A$E?CEzT9F)@Kv?a8M;d$L@f!>>x0+OK$o=i-8Aq#ubF zDGI3vvKBj#s&T!I#zi3gl6{&oc6T-d@pA?W=l#PW#)B$`SyEl}yZxI3B6<)P8JV|X z@^Yt(YH5twCO$PcitdT$ghmYki#)A!u~JtPdmGRAAV{%>9V&qDt7)p?-7}rVFFqbd zzBf5jcn$N#x)%F?=CDnNI`kEB#;vQ+5x9F4v8x($7%6%ZjHU!?Sjn=+l3Yojc{79- zO(Fxx`iBNGDRGpaa`&I@rS*U@akgqAn>EuFN$zOIl#*QCoXW#k5~cOHEYxe?CAju3 z&b8Nb;CNB7+(rTD3LCQ>WTkg^cjI%)Hl&=})U(RjU%njt96h>wtrT#fa!0d<@6@1{ zyf8dl4Lfofi(BZ_h^`Z;6Umk^^5-j(u1-0<8IY&S^J434!1*^bz#m_R5TJ|mnCvP9 z9o+y;t|sDSjj!yc8p&&S=dB9TUDvs+dF}s{i)y&g*Y;# z8Z%ELV|NV4aD)PdA6Ibtg)b9U3YO;*KWE{Jq`EwU-q=#jof#i6EAd(dTrUf zQ2zRnE|B%O>(tTc=|vkg`JzU1vDQM=VbxWotY=tJxz9(+Ihqkch206`IhzMQUy>xo zKF8DTVi*ydKEy)Sgj2*uoI-Z;AcCZfxee|p%~x6)0KUXAB}dRV!bzbJ^VUpM^Flh) zOpWTS805@Pj4v!+IuX)g23>)F^kZ-T1@Sn5yAX2|Q!S=1 zvF44hp=yrS_Y@ld2aWI8Oh^5=yV^B%=o&H7W3IkwEk0Cj4 z?3aa&otzcLM!y@qm1%7Cbe8+UAcTrfbZe$g)$JwMA>F_bLwP~*qVp&`&=`Edn>NMl zX69h~+iUTMG9bFXEcFOe;ou3PMB7mbw6p@$y?(1e^t&TASEt|4D3iWO3G3{p~1jLQiUz;nm<}1uX>g1_ zrs>Dw0BDuQ3W4w(Ya9MXmAO)H%PY#>?SCSJ)$I8(cE}XB+tclFaPVWcYRNl!JDn~J z`yhE$G(UwQaR!F4<7m`>(@SvrDa`Y2%HyOY5Ri`l0>=7$fn$q`jqK+ZnoP1fO9TFf z^rvr^6ubA=SHR$$7}Z8ra?igK4H%N`NOHfCFS)lz3s3Df0qO8iq_|hed zjC#bcB-hKkMXC4o^3bhZ^`)!xEGg&kU&1-@{fZ}X;Bghk)WL`n&Bj_=IJ94eaLt!^ zdZ^6*e7m2IAmfNp(a&j^YWF&!YcYE!V{sMyX8h>Y=pW;6_I$tgt7h7`mEfT`v@#ZR zQ>kfFJD7!_#OOGO&NSwxZBr$RLGJVnC}w+AY@dKn!{%6b-L=RQ9hRpjV>i-MU5y!h|Hn9Kb!S zYQpl*Ljj4q6cJzVg3BQgqpWIE!f8riw-hD#`I`Q4cYmnF?tJf-VD(VN4H(L@ax1Xe zL>$fo;MQm~-7i-FET)~{f+(c>3+X@x$B2BI2s&;4QLgrJD>&G6q>qquX*p( zhD8g)Q81iuZ{A!y+GNO*+pz_0><(XSqLbfJM6MDlK1@izhuIS?;OMaC50CUCB3#43 z_rnX5{yXP8wD`uFRk@#G@fL24WW!~UazmAWs9wd`&IH&9Dd#-gCq(3_+oI|nX?{By zfH^0-)n8-8Sk$eU{NXs24eW(7_MgZ&w-<~T1q<*p{UTy{e9 zn5TX#C&W!|wxp{;{c5EBHz;FqkfIhI9e8}Bc;4<527BiF#)&D3;g3YI8N}PEUUg{w zfhz$_0z=fCL%{~jOa#R8-EFcR4U1fuh;P#XZ)Dbw1O5H)OmIk#l-X*&nqDq>-OAoM z&-kZ=xdJpB*lOYie%>4C)`FuPuy>_kr7QAIaAp2)nU0ceYvL&4<{0H~a1B|LlJ=!- z>SgYnwh4=um77E;{GToMCihjE?$tz0a7@dI9s;X9Fb^+-GR7wgc_rC;rI%M0VD9c7 zsD`lBrK6!5v+iY1mQvb42(CUd<_C^ zRgopr3r@kcpo<+%XWu zk>DQ*<`IEHpIth3k31A+%BVYS_6*o9dAN*liR9j9WyFr7`$Qp>_6~=<|F)0EW+Ifd zTCLPU`oc8=dU1@yuXp#a_xW$7G%Sdy-CT=>QHM0tu4_%$AuRrv24kre(`G**Gcmgu zaEtc6J<0|&UF>W3NSY$DTwK0lwe`e?phqLu^_%qwE`pu`k(@MiS(S^!iD)?xNq7lj zPrF3$wD;zWxK}R~E9tj;tLH3g5Bpa&bMc-%{3pr#1zcOhZcJ*|_PHgCPyw2cUYc3&5M@Ov;>xG{Xp`Y=cznfSbN(Db^Z z2DPl>?_T1v)PcgVROMXSuzvIqqzQwB2RB-k5n_IGFL!fyz9!s2O~ZFWndRVC?Myf_ zTC?QONFxy>pOgXY_#l2r+jPH*HLk%LO1ay1bA!tpctJ<$oSEPIKC3+oUPAOBnRXnK|K2xSZ75i_ zVgWUDNQvf#_ulKbbtQ%HclS@fG>d>mKajp)4^&Vgr&ThleBmq@UgcIdhHw@DZYLWD zw0M{^^H6@75L;DDny*rp)+xyeTwQ)A4}RPIq*S}#_eyM-N?1zp_Xn>X z-B2cH_A&{7iZS&$u=Tuq|6;u5_Jh?E9abE^8bt(5XbwI4#`ULMW~=?HA-!rHg5KLR zQM25YPc$}5^aLN8XkhI&iWG`6Em0Ak2ftY6J7m*nsgR{trIv%=r1fAO>a0A8U@!8zXQ zJlcb62puvtbIs^c`MagxPJ1>j4Nie77%t0hdrm_di|wG}v}>DJ#xQhW zVQ{}MgG}BiHQoeCl+h_t{mP{aDebzYw8@?0I;`dL!)MbzKfjt!PWmZpeQkf!(6{nU z;)&m!VZ@5Y_los33N~)+ZrYJj(?IXFryXnv{JF9ubud9w@w!$3bBOzr{dl1yTdAfi z#onPT8`Yjda>yg8Wu=7b?JMb(Qvc|;5#erGz4LH? ziyG~kpVnrYAW(0tc}tX^U521mbl~cG4?0|r{!*gzxuON7 zy$p?QK|Jy8`d6%tg$X>}TolXEm;JvuSd!4|}+nr_A@gnl8@$7y*$41lwDdv7u8j@))qif~@2?1!A1Pa1^;_MqbAqEqE(@Y&@|G|Jo*j;)@)t zJ;N9${@ciLXDNLc`PT2iL6v6cYj0R!=HS?bfIyMmgxAQwG_mI`}5&s{HOJ&0IyO*7|qU_S0D$-PX zI`&^lTD(kCCNz|FjDeaMhfF!e-HMIXl{SCQcDo@(jsGOf77vf980Ww>U`rqx@uA=vEA^9Hr(*7He9Q4 zOnUnB3L{pjdz=n^*ws!1r!z@U`o3iMLo9BdED7zooP?{Q78&C-C@_W@*v+hu%-1e~ z!Sk5+fw25lTT4X;P)Po;`R@WdOjtivy6P0_1r!(%pMbW_`(^swm{d3LNGv-qCnY8Q zU1wP_uYn8JfLw%^Y~zWjbucQha|4slv>6p4G@+;S#D;l?Fp8gOBcAKr4Nm{=B5g8G z-qEb9zU8T*7eedo|Ly98TiV^g5%`TyISK2%R%#}3S;-0F!+nxYbJqk z4mVQ>b+c3&<~pN9c>#iRx#r@P{_|Byz-#R?{nT>9fuh-SHv+w3nD`Oaeufy;C${T{LjZ?&*uRFEgQzqP&&An+PO%yhl5@H7ue3HQ>dy3u}q?3jsQm zLo~X5db3mYUFF_W%zfA2)-X(O`yQ1Q7z}bE&(L9k>G6O%Eaw5>$0-4OLr+Qri~PlO z!PGDT=&3I$m$II9)({IVytLgl@x~+K0mR9ox0QU4GM|1Kq2%{S&gP$@BM%(h%NLjE zZc*p&q$@j;#6jE@V#;=qjFD;8d~<(a{~bO|_Zw#>oCJ}Gqj(*<<&XNy%l;#AYG7}? z|H7}Q3&eYQ65~~JY-N{6BT21uiFdWWO=4L=$I?{tw?xvW*e)(E{ZcpFF1u?07WN0| zSlg85{=)H~+btJJzawu#V!l`H*F z@z0tAh-l*CHd;-}qNrUm-z3mzdL4%LeNhKl6}2iVnpOrj`n5tEV&{W1AjFU6z$Ez2 zpQxHhg_!!C&nR%2j7)erOjc$*G`%{Cy=9_JDiQrv&P*zMe(w%RLLL+CQ65Q#&+5{z z>@#VDmA1fL(u9Vhy&L}CY|lnkwh{Z%DzXuVRHZyD_2Dv3X3T#-F2{Np!-okhUR*pb z-#IVZg^-fcj={?f9>D&Pfc}fj3dJ&0n8iZ8y3N`(riI6YU0J*It@ICO0@(T50TdCTp{@a@4B&6H{HiYYH(fz>ljb%;HSl>jePH7)BV{{c0Eoa{q-YYI zFznbzZ}E+Ax9I4s7w&#t;8_w>5Psb~uDW89mv*E>{59r+)w$i}h}(Xu?R9G^a~T{9 z8aI7jaNI7UT#Jrnizh*OKO8Zcdww{%6Cs_#mP3f!MfjFkC@S!0psLgA6$$lqbkoGGn%%Lb}O?S_1USTIFq1UvfSJxFVV#9mjs z_pVD3fk4{1*&Z-x1kD?(gXOvwP%S__g3y3!zSS-hWyM^_hoZ+&Nh{m5Dk@vINluuM z^ns2Wbof>|@YK&jRHluWiH9stLSV6Z*0E4rA5lPmMSa#)tBv zF}FZ7GzQW0nF;jqd|$x~{xiItm16LJ4GrgV{-_5l!Tt$xR!o2*yr}l5+8_I_<*Y5@ zi23l~{861t9%vEqp3B<{p?vV4caY)eS@&|1TczOgnvGSWFS1@(Awy8tG6~`8Cq(O0 z>MAYRR&aPZ@Z-t9~bT5cRT0pnqi9pDl2)aMvXu=1{*} zwi9I)6>EUr__Qea7_e&0b|8$p9zPGSVOEw_&E>?$2m-I4P~44 zK1^9J@$GWYbep=1#+WvTU#Y7|bD>Z#wj~x--2$}oz?OxD zOB>GCY^@t&rPu|knc)Hgimv*bRpLUG%yhDrHFv8lb9%W5RIzW++5Ds?mfs7(2B9j%E(4rd@zE>n#ZD$BeID~a|uF`&`Ny}=9w z;`*XL67c~#IF-MeoBd)mU1Ruc_iaVApS?RP&$!SWbw=wlSrps49+Phj;WgFbwl+GK zM^m*j>*VKFZ1e=eKois+=5$397c|665lP!x+rXMba*ounP($KTgNF2%3ie(@23G8d z8h&1#szW{Wf6-nloji^-+3|N7GI z1+V@s(Rqp6|7vEN^6YOwdHH>acW>7_`ZSKMGS(hu!;Ih_lC!%#=6dgUmgKC6iWY0* z#0+0ka$B(0s{Tu@`nMkrc3MPQHQcNuISPS{!P@nmBH58r!){pY4qoTtFEY}|L_t*D zvLU^_rmEp9u^?TKrH5S?&ClO>i}|;H-XRrl52s5J=CSY)NCV6<)G{;ZN02&oHNP_n z3ujaX^m7sLM`9NkuZO#ehJN})ftiWX5$LqKaG;cX&D9-2hjCd9cD|r(#E-|s)d3w^ zeoryq)%oIuAGK6t0(4}lGnPu!$%!rb6xIFFKZ}puKuWuKCWo2VezZW)12e;qrtcep zCJJuPgcbN(EiG7Jo3=De;P}~5-0vzqh%Vp7(47f`w|aPQKc+96Lb7zuN1<*b#5~oR zZ&z~c+y@CZlA%BOiNra>g`m-VPoQ~eI<`Si~v5G!J?FSMZ! z$c8{ZJgHYHdOKH&$aarWuwSYb4-D?EHm{1kx#KjWBl;)$rZRR1{i)q33y7x7BAP)C ze46*r`mt;m=5hJPgvD#cgb0&LpzRb@Q-d`q!gYVN6*JD{&{U|9+9!11HBhFc!lC=PD!^PXqDLzXX%&fwY7zXKDE{AhIqpz*95kvt9TRgaR5 z#+rBA6Vsj!0{E!+C_F8B#!uOrkQmF|q8xC|zK|_vnZFH}E+Lvu3A0w2RI*GlxQtA@ zoIO7_Q_xeXAaT-S6xYw`0(3FHc&k-r%~q_V+`U-`hJ=-_uQ7gicFklrs>@6%2h)Ns zlKFohAixl6B7Sh_&zi z*w90yYMyZe=rb0hjz-F?ed82J&pJ9${JHP`qR)F9)Tr{S;H+fEvEUE{V@cdkp6nrU z#lW2|Lbd|@^uy3mR5a?rBVb8m2MLClPwpFi_&8L+1UIMdsGs>rZ>&zCEkk2(gK_}f=y{?SC$6*(inMcFBXjR~9u>D#++0$&>X%v$GP zdRFI=<@Mu6_ZwGSeRkaM;0$-+X*fqSq@=5wm=YkQsMrL?$-0qR7pIRSF-gtye~yWP zG}jc|SwdpxbW77!Y=P%vKqZyb_KyJpfjd`nmrSCyw%BG3&Wt4Ch5Br>(pYfq75q3b zyu^Q#Z^`!z2cT6c#ZX5?Z#2N1V~ccYXU7nX4ET5^9&VCOE$B)1%72%zj_UZv6uI_j zJZryV==yz$?)XID9VVnZbaLcF5c=N8=@b?s>mDb^Q+e4;nWq@9-3MXdfna*t)Vx(n zZafU*vDpzB-vtYilMh(g#)Za;R-8D`_u>)wuaRVlu@hVCz%?`8@JktpC0>V!5G}_Z zjA`pcOQ}@prDG83`RnM(Uk>+@4pb;ZYyGc}QpKKb)>G>o=ja}j4eu5T>I+hI?%W6n z$Tv%aD~+#Ab&#r*tgEzxSH42?Q3dh;O<*AWh|wP#zgIq4K4=SNrw!4RsxnF&x%Es8 zI0o_SSNxUo8*o%SJ0T7CB*87MrzmlC`o%GHa~EJ25QCI|SC9(qA6LRzR)S2Bzd}Ha zY;tCO*nYk~edpr)OL>8v?mFo(;58tuS<+R)!^^vOxc}!-;PFq3^BK1W-kT>r(nkse z!idhqq)~~5ML4>wiFqDb!t2ocj96jh{?Y0i-;#=Vzfq@q`7LkB=^R4R!G$9FkDh}` zpsS78+MR1M;8&63q8VxX3#r*saU9~q<+(SV#O-lag&R{kdHyI^smjPfKw* zvNb@8|B(R0#ZaIye(DB1u6=e2%1t65P0urIWEAVMCR6=PB{jvOW6CJ@d84AC?Q@Al zTTnIM#p;5^?}^d58rx|StXC%t#~~l>Cl6@rTBt-CBFqCe&Sf7g85&$Els^^(b=lZ5 z=rG+Zx1AH)&#%44vOB}*Iz_Am7l}NZ*2$PO_+)dRFZB&9WE_>!@T;k7aHX{0`G~oA zFWtYoMMCHH=j$>F(r%K+7?tgRgYxu3YBoCWY%o=^ipNnMPbc!h^$KhI)`vt&r_Juw zTFmC~`-#`{T;R0QyN|anT$bD0TbdsWu`WWlnp;k^k=ExgO>>7wSWKxc4t&s4X(m@2 zw+J^X<4y;p(H*Q_+>Mu$klO~vJxN^PPyTx8+f3elp98$5Ce9t6(dbHbn7g90$Ln-a zasv%WF}ks6O`hROH%3jjU+Y0_EyE+pU0rvjGIO;}e!sI<;Qe9!=GE~EOvG`PGpKB* zDDd{oO26qdljvD5eUCwnt-3sm*RS9;j~ij$pyg#?{$&bV2hjF1-hNP+9u?6Y)V(hV zv@n>q;wh>8&PG#Lq#4}b?sc?0);tR*2b&%53uL^YFdo|M*w+8B=1NvX^p6Zol@GT+ zj}DhI_g$WqqfJ~>$2P7Kt$+Pm1p;JL^fonS;ffd4l87n)fD5k)J6YzAE(lmIKxJ`~ z=WcqRpDyAUs>n=~Ss5$PbL2SdrgU&xtTi}`Q(piuXbwrmera5#{XRAUOn^Nw2K~a* zgJsVm^Pv!x4+&v2lfCwh;A#13vTec%8(}{quyb;-`FZ!T%#jpo(i)~xN+AALKNz(N zEMtSD_lXEp1)&FFuNx|e2aVji?_1bD&L)byCOR}T3|K`XMk^AWExI7`K+S4moB3(JwkZBY>de&}~< zF+Mm7N{T;4R85+i^-=r#h+qeBMVLh|Da<_IR2*^t5SlA(yLK)u2!Hz+Svjh*Su5+E z7dZu=4ahYjp2TEaMlrGAE#Sko2m?%DC9{kns_|7SPn>55G+95ng$g6W3y;S``EAsv z$asG%4gD~D&Dh;dRm}Ce2ufweNHqh8vl3`nNH)M3fFUWY6GKJVRv@V%30)5PQBZDN z8?2vvz=*l@_I#Uo(PKokZ$z9!T%ftRIhy}1zjD;eU|wJ1d(HE$p_k#GdbsKSblG^p z`nU-lpm=P)WMtvZJX1V78$kwUV2oO6JwQ0b+-6ZciUq;|&{ULUe94fwr;$T1`x0Uf zqy0q-+ksKBV%-pxYLT4DxrgBHx;*;xY%3Bm?n0*R=!uo|0L4Pc*he|W7eWIIn@PDs zY*nZmB~5mGfRvHFY%ph*F(_e|jd-8>po4Z$Bs+!%2G?Zb;`wTSeb~X-=rU%1Hgax? z%VxPtcsMoehTU<3NhE>B_-Y@V_y@c~)ja>AUw8MU6}QgaSRcBH9;6k`d&9IR%s*|} z5}S)upO#$veU};t8&9a8aW#mW#!ISaNZ7xBrtwbtnuIF1{rOepl}l-{b~r&{OK{s!JVvsNiv8Y87| z`Df}}jz;1C_`Wz4(hoyU|aiS^0^?r^oyP_9Z&wIGU|%>qy9bgzg%_C zF9aXC>VmQV#@nXAGL)ClUTq!pqn^+CQ5aPMn^i>ky(r|PB{xm2Q2GOVjFhSq% z17=2Y*cOG!psiIZ6m04@hi9{Q(PBI)WjPEyHlvYU5u|&dGc4O9eLF6y z^R}CSbx95JtdKZ=>xCixogGe>F8Kp298Zz`#0-u`kp%&MH^Zfjb}7S~_Z`42;mrHUa;V@A@UwGa%gaGuT6 zlZ{amN_-de2de`A@B1wc6+n$AmuYR(^e2g$(O&FcfLVS3uvEw5hJl3Y4(;-Ec=D%S17@zan>JkGoy#3<&Uau-J> zeT)@9G=Lhgtr^yzyt^wlGP;;*oHS#(^DqQZ^kex#<(F)b{q$}~lhb$>HSGE@@?{C2xoZ%PI zM+7nR?oOQ5*b5?H zES@B!4}(k5fi9ZGqH?cLExAd^0dFL*9Ln1QX?N$5t!cqQbKgsA;j{aSXIH1WMk|JS zAYzXA=4SNE;3wK9*Ht>B`;!$%L7l@@hth7-^ueC-Hj7UV!VG1id<3^!T@zZXoxz~m zW5M|*@;JZzadC3gZk*Ra$?oOGo36G){SNIpyfiwHm@psD678J)B91ez7pw=V-pFKs zi(w_WA`E{x`zNrSa~ReZkQ_(*Bt}5S99)?fS4BdOs_^=PkeXoeoN00$YXmUorO%6`dusRBGQDI+ofd%I6!W%T>Qu-4Nu&wJ=m?|3U&`-A1C` zu&;H{cqZ;14@G*EA=hIkQ@<4QM5Ul!yBg0kl!#vOjfj)ZChu7P`B(2b$?D4S>Gd44 zMK2g<$yR~SpRf49di*7_f$S%Ld?1>lWW14V%@{~_B|2H4J+w9iNpdeZ9*w8MPU2aOe72XhP^+t z*inZ_mDRY8T5dTcP?&SxhI9%w#0!u?w zS&dY&C`S@fjYa$FK=45UC!AH~o570&AcGub#w8bG%J$^7 zg&}s`H&`@br}J!K&}ks@wMfA+o$wX`Za}32xXU!597T=31RX7sGg;?=nNCVh8 zFHNE`uSqu(CJ?}_W`4#IbJVg7#n{-Rh5%u$i0e-tK1{Xh*Q0ssHq!hJo45{R%Vg<( zQ_Bo^|4K{oKS?`w>?o*Sy}Fhws`Ka1)1pO-=-qeUrHdCYvYSOjL<9qHfcRM-H*OrI zr(1ts#*ddF8eO_^(!(Y|l9PbgB1zThl3seCRVpqN>!pWc%+U;r?ac?W1=3Y&%lDPi zNckEAJoVDMGU%ZgKx_|+2XyQ};UVsPv?t>@`fKQ~4gJ+ntbB|iKqq7?ub>!~UVTzB zD>o~H%*xgH&d%pXskBfG_*4M;S3$9v)I1fS8>QcwuLu~21WKp`P+~ji%=}CV5SoTB zY{ae#497wMUWQaHuLKLMa(@8O0+!)>30Q7NbABwB?ZX}h${qI!^Q!Ql|lo3DJ&t3HeJGc z`|fi&UH1rLi*b!=^(pn!cR1<>pxu#RQ3WN=Sh$#8Td!yr`R44L$DO<&3e3#?wCA~=L1=yTZr*-9e^E}?E&MMFUm202;tnyo&M4?f7~zb+gT~=Fw!GWkDy-T-sSSDA#$T_Uv2j~&w|1} z5IfgxrDMPRD$d*}Co{w1LIEXYx{-g7?0-pTpnZDqEKBPA+;m=OhY)QcUb$>7_Q=bk zoSYm!kMMV+Jojwc`jPx4lNgI@$>V_^tsAVsLJU`mH1|LX3$#YOfZBDPOO?Z;=~{Lg zC1tyDaz+46Sc1n79c+n8@!W(LssGrCT*nqxfvVOh6w-ylo=8{@~(>tn~zq}g-nrMdIy<$3dI>Vie|%A&XF zr6Gf9@}TD|*F1IPDAlZ6R~t(Xc;e7u8qvKAVc{LL@a?y0!8>@yvfictAKJQgYeAhl zbqHP!2?+^=C={93GwIs3Yy20MMDcTnx@OIq(XF@MN;7B9q%&vEkf*074HO@g1`HTL z;o;%@T35pPzJ2?g-#y4Bo2n4y&yZ*f6j5#lrb_neAO*v!ojo9i>_MuTU$K(0pYgg7 z+UVUu%;35#tj3TLj*adN_MjL*tSrSwq1+kkv0m!he-{)($`Y$&mcJ1T?#zViI5Qtu zy0vVX$qZ(VzQuakg5r`2K#T++E-nD#!JYoaR^mNPYSE7BA+-4Paqb?vN0TqQ{V- z^yR0Y(0dCI;X^hoU%4{-8Y6Oq<)0o*#6Q(``sf#E+Ncrq%JAVdb=dPXML>Mvwo)gL z9HE-^Bpk~T3TXcNO|)QxjOC0zGI7?W|0gL=d!GtzI5eLr#1ehYS1^kA;Z(N=VaNVd_)^ProS2?XIbtGSI`T*OG_!>9U^%{?e$5iDO}SOTr6T#j zfA}0yn{?;}Ag&T1{i;KvD)I4)k6#t9JZZ%aaLc7YPd|oY4=<~`hAjaU^YXPVp`RZj z@)`vTu`30RGN*lYW4~g(`vm(HYapzW@-N21yEShwmM|)Z5C{B|i|1f?){2EBxbjuR z0jE`J)S#-Ium!XRww7OkvMnc+^SPFlXI6>&VMB({a9(7{1=`W2f4bl=4C^o4DJoT} zL=QjwFjW>Gyz17i%huq2{rd4=&%C_7EC7r}ce7^AqW9l_A3NgFo;`bL>eQ*)h!U1F zGc$K+S(nO43NZC>Yy@OT!KX1Pu-1dHBN$e)1;rTGS)r|hVZDrS3@JD^LUvh8!7-AO znYCECO*jL^df9?w{Wa9}{|+dIV0rb?V&c2IOZNt2-l&l)X0s~<(htXe&`QnAi__L9 zTk}!*(#jDKJMt|qOPK+&f?|7fG=pL_Pa{w(cvo%|dhv@-K!WAneNpeF?0c)gGN)A} zg#|UH)DOQZ8besTk?_uOIT9=Z#_<1TU*Z56L%2@Aj^yL*O`ojaOS^8ZOzr~S^3twT zyX!k>ThJ5ongW8Mlr}A>+!wp}d}y`W>{8J-^)qeh>*V1XOylNAcM-_!**rUDBIOAf<|q#c znPmQ|@)9doDHV~AfYFj&;1AIju0pBLesICO~T zjB@nj#f74N-ok~VO#Ct%GKlN0#>?+3WcF-ak}`WXs_bUa>eZ_YdiCn1<(wC8$KGuK zoX3qDSERws`W$Xn+1mLIvQ-W_vbs78#E>m0h7`~$*foNz>Z_pGmW=gkT!wcs2F5*k zQW|GITKM!0dEFpl1&-By3e$vw;#%=TDBAxT#b*Rlavke?gHfT!1{GHkg_uCWd_A+93vQ~Tp;>A)<#qcEJ{nMV|9sBi_%~n zRs#I0MQ?CV04M{B0iTE+4559K=ljs-A01@(iJxwX7GUO0`2yNt1%?30Z#6E@K>U2I z1`NeGCO&A(HIcY^@V%J2B=nqihP8x88tWe}{vY_0B4h3BId19BKPF<<@sA$4Ew z-d=paxNk=?Lb0#rON<10HLA?kObM(CiXohNjBVL?N0v{O=CJY%&6Nf*K9Ico=gWjL>CZD4o z0u61%k zqm&fQHA*LZpRw~NKDe4m$F?>FA7z*RS}6#H99e_`&JN*OjHe&7xGGLxGpn&)rI|-@ zWQ1ZR1;t8$Uo$BvRc)E+_+L%WR3a1OSa~N{EhH2*2|V}aalnz`YAw#0JMNv zmF$fPAT~lV`a1)~N@%P9u_^+_koUSC{+XpY|X5~rol=J>oMSyEwWl0 zM4i~QZa4kXtQxydD6oa)7w`)KlCyKN=~D8)X=a0P8dtF*`xjqM`w!)aa)2`g>oJ7( zD8rcltrtb#e0hpuR9s-?N34rjp?1vUo%n>*++Y#Z-xuz;IKqNEB(;rl&{Ogg-j%dO z+O%*q-ShMyiixVu)?-hSZ>Y+bI4DqVq~S}Ml;!TrR%4`lM$V#IokudT`U=q2Zw8{y z0msTxtd2@olCJV1JP20fYQYk6lTxo!dR9Ke@wHq}0l#Tnj%xslA+;e$K$`TmhNbx2 zHS6=akl{>J3IJw4y^g39^AMFHpPm^#p8AX$$LFF_K%|7?!~6C!6w8kCpri+6h^zC^ zUnE#&nsr(gsjv+POqvP2wUWpC2lcww1JY?Hef<0RJ_rQboo|hraysOYvb<{;c@;_^_J= z02i-w{G2Hu{^5ro_%9JytoPZL&n)G7RjX$Gknd92NSc}b|SXqn954=k5y$U!D{bWvP zjmnP+w(gAkcSv2|Y<@RVwp=L65{mUwPz+%_M`Hqr6%^}%7;*-R^}+@pP!TXjv<9Ur zJ!??>ra1EQ)GVa}KI@L?Nzr|tfBO>HiJ%IzR5(o-%MYP_#%M$o=pDHPUSf*ps1(?zUM zbHjW9>I~14&nbRQ9Q#l!OL9!?S9~mv5XS7MvnjND`8*D_28BgerucKm7?5E-zVl(L zRU1Hz#MWQ8Ahs9-n1ghdXjqrwKa8aJCsqkELNWB*rP1$kjXeiY_M49C^N zLdiQTj}k8?(LLQqb3Fu$ae9GhulW~81P78I<**wCk~3mIVgaKQ1Tanu4N^VXo(L1b$JTmSgodbEs2ZE zGSp)<9#NKAzQ{U0%0k}pZdjL2d_H%QYf#d=PV~^m^#NNV}F)C1V=} zx5WY6(gLv=sQ;6tpcvY@xo|kK{*&eq)t3=_lulKBf?l6)-7pI>_PZISe2f8`$})?5 z-9>HL)xlO$a;98KUuLgdpX$F|pXXzo-(Mj;6dQG;pxB7a+QEkSSd0P1cQxrwZyl0<*6y5Go+{oKNEg0OqYol3aoNm= z?xii;=dzEn**GH_HlcQ>)2Qiv5tg0#GCbsl9co8C%yHAI-IR1KiMsT>iw-W?K-EQE z{Q7O&KDt*7!#~vj2kR$7<@2Y1He2Stz?N26iV`byiaYcVW z>OErxpF?KPruV3^;)gY#u;UyS;lVf8xS5QrgQC2ET`8cUot_reXe-CUBS=kBB_#zw2Ff>3?kjk3%dp<90qRfn>Y`WHjSHfmh9Y-{7>UYBcHZiJ7q znZ;Ov@ofti@)0`!;s^%fTVgzD+o^O~{<`(OYV-1UxvYl2FVW!-sM7TLT8->y^fSKM ze2f8|u*j<8(_w#~A;hSUlb$a!zZ>Oa?2KQr5jLF_`st+yRD0v;`|0Oogj*$Nq4=90 zq{SFpLKm?Z11ddQN3ccJD8NTxU;rJz#f!Foe3;`4BhrN0fI|swl!iCFl_3^zi=^Q8 z$<{AW+|{r798e6oX%6KozwhW;y0`f=G-%g1+z=y{2Q4uIGfBlYn z93HN+vS6e}s~E%}wFz=CY5QqG&Q-F&ENqdR1|CRmO840@TN zxLj}rPK_(XFcg;)uzcof3MHk>KjWSF0Aa|avc!iBWi_5R)#^_Sw+bX!o$J=Aqm@eG z4LvhoK0_6@jbj^U%0CHHL8^E&&R{71_sSRP(#gHF{H>|fdcb6^?)J=Z_BB>e4F6&% zNx;7&DNr0gY$(BE48UCd)+|v*cA;4L6zlzpxf)+Y`~7?NP{Ss-qeRM0T5*{v_`lW= zd4y~efX}7kV(dmyQ^4_w<5ZnmzCu;mDKpQTs=x7 z0I)u3#SEvhSvum->5pN7f%cgW`G5 zS|fKTnUz7ta%bB?W@VUVbfXZ;T9?`6r;VG6Z+YMV&gn< zj(bzrM7i;rMZg%AVuUb*IE{9--pR3=23u9OwtmB4L($R05R?tmSac4;ya}D4*mov|F$C{l!07Aq7twS9j<|Zy5n~uK;Jjc9ij_~Xa-HC6d@0htfVY8;saQ#T zLK8Uw;;$dTt|>B9vUVd340!-vVo z$5%WDA6oL!$F%g5PdPtv+&GcOl9xEwb@^N5a;Yd=ee=yX+8MD$7%+VK@?{DVKd;!t zW7n=-{F-hoUaRu23y!5M&@TNovIVGmz||+C9Mv1;OdDr~v2Fxl>!n~5R^j`qr*bNe z0JnO;4f%63mHXvAx~pLYOS=5|yVUfeb?uI^k6yN{#cFPt=U)ZL@G;g~Vr>cG)r>ML zgN)_Qwu5Z7)z8n~JWDEDP^_dt(+HH#NWraANuXHC9uOlL=ZUISq~cnf-x#1*Y;2b!<5n+^pIITw&Gq3=HH=JkGx{m8R7S zw2XtkwJJVkfnlXe4+K-S=(ZN$W3AZx=kBX(>nDEEz|=rD=3Clt3vq*3XF`Q z?7Vyn6vJ8!0f^6?ImQWbiz^Bs_VO!FZtiImcjYSi<)zZ~l*?4VlH!8RtxUF$vC>HRs|F_@h*4yup-N7PE!D=vZ0ZZhPqxjZN-*9z3zx(3SiP^{W1Yq4?6l1KqD5`YvkgHof__>-?TYiC7; zc*cNXy^yyR=XlaO+dJtg;rf^tgn6nt-)K07<@Nme3w#dvG%mO^`ur-Hm6xUrvQ-XY zUYK7E@xHF+Th?*}#U+tFD7GhOp;$pM+8gJIy#9K|d%$+kHW%L^jG5Z-BD02EWCy`T zAucYCcfkX2Dky&SY!ba(C5$b}093drAigjbt~_`mg`-GJt>kUl*)DhGyFAW}J^Q)u zwB38ylKWtT{o<9lK^}!vJ$#VSUiD8|G>hRFdMc49Jw2UHE|dPBxc-%RIUn>@aEt^i zac-`(@*?~alvKHuyiakzDtwzgDffv=ksboht=l=rUAjQg<-91sCzGa6pG>ibex@pQ znrO9BfY6N#r%+yc7Ws(lMFs_0;5hMe9z0jhr%-M!oVXjh;ST){ACx2no!mkDt(zykCx~EE;L{Y%Y8A z{gpI-?Rt811^lT6^m==dr$}C2-t_jyO|)RmTJjX2G zj2VZutX)0v#1k8|(;~v_53Usu;CO|2oygauePP>Zm;OEhHti*6RMLKCLSG{s+k)b< zl!9W&9uyZxzZ|f}a5s~qdV4a$G4xl!aivNX`DkW|#kvEfnJcY}3C+q&QwG^8SHk>G zdARd@o!PO^S?QxtKsOqS9gU~@*@I$?frPedj{0$p*EU`g^=fkvs0bKeO_Np-0Iu(; zEqtyQ0CVx>=A7W}pdb`34X~`hMM1?EMo2a2r4wo7*6TSMw)-32*$$d`dn4}qLc_Y8 z-?3L5t9PSqyJZxL;dN_rJr>|WfrCbJf3JQ+Xw<$-4BVe;hGyO>S_s$A5%W;6j`^v% zLWp#M4L;o6HhXb19b2H z<5%(s@uf=P(sBSe_R@gt;U1$30kIN5T){YW^tAjXgX6MUaxq+;yY8fV6{0An`BN0t zv>nGO2FRXEOlNCxHBlGs?ajW*i)RdF5Dto{$Zi$QTTi8y_dZQ`JvNojT{=noW0NT= zRL(E$dJgq`?qy1fOD^PFZA;k51CTKB`Jpsv*bw&Hh4FU!@>PmZO$8`6wG=CfvV4^n z$2Ofi(||E!Y0$WF^!Dqo(W2?o=#$keY2GVSY3|D})9e=~(b(5#(D*lI(!@7)&y>fI zR%8XjK7Rh>>*qsrSFWPBR;{L&1`VX~&pu1<&z~ngNKB$R?{Sa<@qr){VZL&xnu^p3Vu~GldW=FP^({%hrVd1 zl71|G|FX0emsZMZeB~;eD@^4GgkddKaDKB&Sz>Rd1$Sn`{4h_QWCRa%zx&B`JV3eUerfs{$rD;EBf5-i0^p#lCDKV=9JDFDby`nK3=T5ZGu!E%h` zulXzD=<63mD`qUFBNr1WKR1`Y`BYkk&t8b5+v--M>#1oB#SpB|wabT6&!OuWgmDg4 zzqJGX{`pu64~(Gt;XdS_lSg6R1=QySxezeR*WGE0G16-b7Sr^33oY>JND7M0+%2S4 zSDxR|q6PIEIg*ymokQC;ZKQYJm|5CT8igoK~nt<#H&&gd6>)(1S9Y1)O#ys1PM)&JW>p%H~{{8u9 z+;i(k>&acb<~sN7N1b{dPUs zIT_(te?8;aH^POYtOb_|z_3bYc_lL_R{q7su>{{pt1&FEfK6Cp{|Ul8G2gP39*Xq~ z?Tql~jL=Vksgi6(%@K#fvxQcx@vR3b1}(qiQ`w;7;g{$7eAB zH|yEX0`35Fq>5qXoU#~8Fowk#)^hnfYyHBv_-K@Ip`9Lz;YI;iX6vyWhI$VjO27Z~ zBdvH#j3>%?a}P~8lQ{`0a^amS5uiT$1)4T$1id_e0r~j(QBZIQd3*U#cytus+nAA~ zC>Zn%v8#Q)#@i+Aqa z8M(QeJ?GVz6 zT`Hke9AkUnY7CQB5*YzkNnIPsRvV*i!7=(9lM;tzGl61#o3auXx0ykv0_iG!mKI9C zRgmvddaE(uS0%GNWDkn(e{KfnjlhfZ;w}sEhZg9P#1P5B5<^cr@K{PZ<03!hHdj+9Uy<@IyxX>O(ryu5T{U7xhDE z?ytYujAM+DZR7v5lgl4Y^rr?b%QG0OIL4!HsZGD^T~Ay6TJbj0#&Hk|?ylXZsYCZB z>}L%35A42&`8OChfPIrO$E_b8pulp0)Z*S4O5V7G>W%12duA`;_CXy&IbJj7KYW+< zy~|BA4e6iFyfFhU3++NZGufpg|9UcA$O@ro_bZf;nn9DNY4LtF%hKZ4hftnRFje%k z!ex4X(FI#~-g&onCIR`I4RgpxyRzC@PwC>mA1Os7C_Oii?t82kpMSM=h4|iB!$w^d zzz5fgKaQSew+bjSIFKTu8`AkBaCbs92q3?-a9BkJ?1R_!|U z>_{0E#KYa4rj8lI*So#hopk8XQTllGa(bd`Z!ugRWo2bj_I2@LLjXG3oc_c5p~URj zxFluvY*d+ElP6E^^!VeCFKW`HNvNpyLhN9C&jF$y9v)fA$;l~Sef8DZo;`au)4Dj+ z;lqau>eZ{KUL^&qwxl9X*jiwx7a)4hww;B**a*eY*;Vqdc52a|9*WOh)c&-q32jQ_ z8*NJf;}8BL*DTqRS_s!}QsMVyv+~lELAJ_`+BW0e55FK~PRjxiLwUasi0%-=}?isMsq7>YTcUykb6kaJx%cO+VLr zK3??u*DKkLqGpxCZvr8~!E{x?I@~G%#7IzLyj*^&MF(Ww5<%0h!eLV`K@`ic7$NT3$l0g%ls#em{9ix+7Q5>P(-7Xyml zdE<5ZbnR+dFzpqZ_sSG{>*bee&Wn?2)})EFVd)Z@@aCKBM#25?MWp#}yg~0STEJn} z0(`vbdRn?DE}+_VBot2=_#90dGML6aH-O$2W88jMGdh0q40(v}m#>!><>uv5c4iiB zUAKz9{P;t1-YeZDXY~I2@7LS5ZCk-Bue|a>ixw@Se0+SoupKj)5nD3jL#~&Xmrqnw zRCL#_UGI#IjXnGQ_uu!QIdf*=cXfldZ{NPNZr!@#15FkKwln(m*Izk2n_d?$UgWt5 zaEAq$p%~G1CQX_oKNM zFef#M7m_7qxlz3;(QGLO6hk3F{tU-BUcQz_IT*78w(m`?80Rw2wJ8x5?Cb!c* z0V(+cO8bo*MayQ-63;4^3UcMndKIfwrn9l9MLobIkKHU_DXv_tnwTF^&%r}z)`aow zuN)Rto`NI8Y0+!1(rfb&yLaz?edo@d6JL1Y1+CUxcx}8aK5Qv}yH*(Ot9~Ft6;deDo#IRTRkkRaRzej>#P|*QxQ8iksi~ba06xQ|Nye>#fBQK-LT*0kF;Oz_c2}%sLDy zaE0_^t8w*nfQkdRrGa7a7{7V$J{+P=FF-J$7(m?fet(A0wcp8KSV|`s zZ=#-kTXM*@`+h4NXAj#uLx^z4C!Hq&66Z!64XXw#0Y1F!1J&Owk z1jxlaFdxh-bCUq3w&fX?^}<3t+?O7Toe{Qyh5*NISs9d)ex1%H=Q0$ZyLOdQ1t(Ck|86wd<5Azzg<{`nG6IkJC0t)#F3#eic5Uomm~c^v0{upUFW8Ox8TRHNJP zpg({A9fM0Ko;#cJ(MYg2@Ecv^!n-QsOm^mZi2vC24m;jWA2pID&z?=q?thSOX?!c) z)$$&0w}0>NV(j1Osi-%xTaPVd!`9y2Q_QSXh{N zlM)|D>(%4e^umP;$=~0f%9k%sD_5?hAAkI@$j*0YuZLonoD-lJ;AjSq0MX*Wtx@Qw zhgo|vUc>B~`Z6^)C3O#G$(G8>N^B-rX`$K?-j<|fD}VJ?xkWSt__dYHq@dW=*s4s; z>#r0nuZZ#h=)@6nl+W+mnUBVLNYxc*yprV0TDG9pkpQIVYt|o7Y72^O>92xf2yu*& zpdznaUw2=QM4@)EQ(??}y{t_EpRmNjO1pN%5e85|GGMv;Ea^^w_K0Wv$P=}Aao*jB ztTV#SbxHtXzs=t<6sNRl!N-WNex=EW5-po}z-0vcZvGJ87p&gcg-+Zr?%R%E+^3~kzo`B zaMYxS<3DzNLA4vTq|@h%hLj2q_NV>lF7mj(0*KW$kn{qWC#Sj7?mgCBzA$&aDwYek zBxi*9t{xtqw0NboEH}EVMWNJCBu~FU8qm83*Ml}0j)nZ-N}^*FSd0JIy_*i~*&}lK z)OYxBTK*P3af@c+Wr?PWqu~m1{`6_81Pd|$lTv3mP8&0Z`t<5S2lwuyJwFT37Md-_ z!zg~`LfNMn%E`&4&FeSP-d}&?!7GK9qrB`a%Hj`(^5+4gcIo>pb?*HPFTBgqx$n4C zd~Mpasn27NJvP5_{PD*h)$v|tIBg(pV?aFQY^y$MJe;hu1n0oc$q=#c$I#tzbQPs35WaW!7F^uR04yumxEi_0pG@)CG5{iu~@=m0W?HkdjD&>4!c*Uc##u^1HG6Z)Dz0R-tl#af$mi>Hh`|YU3FBpEp zaHjwW1AMQyzn|tFILb%lVI@Yr@-c=hMdMvZ>B+9Q(XsbFqBC!==W?a>W955d&-uCq zHsCG+zdYX#uqsOB3IOujahdN=$t-5GQ3z)S_lY|nc$Ch^r&3OC9s{zEKqR<6R16EH z^n3}#uqI_@W^hVQ&!CLVZ1T=`r)krqGrfXc^i#)QfBi{}DS`HCrUWi!xrJawzLFGA zyZ^h90tMXq_;@k!1H_>VN%9wFu7F&Op{}7*5vUtZ_110>+Qpd>+l7a6R)$qE+B0{NUcb?6P2qK!F2W_~e!xIO5-kDN||WE3Z=Le*J0e^chsO27YOX8rcN@ z<%xF0;=sYguf6tK(XB2`G;-ufx1Bq8 zc85Cze1y&POy6hNY7FZ!HtLwmq5rI^S+gd!Y14+m7?51Mc5S-#)>~=p*s-*D@nQ-O z4`;A;sqCZ&MZl#kAT~m%St_nB6%c$YL$H7l*dpqUK8hf zYqDN9(v1QFY(mO1YcFpUEX2x6Y?Qv-*v?j7UuJJUWfjL5Dv7n&78C3vKj2YDM0S)UJ03VRm-yDa&Fyj@qEPB)}TW3*AJWY7a0?`sgHEjp3qTiBh2n zfc#XaCiK9O1cqEhlmPU?dOW>OFz;*!;W)LrKf|$FWCu5jCoX2PKQSQNY<##(z&gy9 zVlf|HjE6TnajvY#dY1~!KXJnu%4s8@Qfu#w0Kq?ewVlRHA4-*jLa6Jo-qfObRdzQ} zQ6!XLDMqRm5==oM5fo=&DD**!@$s{qL#dhC4t)ZIApowImoGgx;&sla39wayANZNL zB+ALlrPQ?RYz@99AY4JQ9*(o}{mCsan*#j8DM-xAM*~;i^mBX!2qQr`SEYqJAywNW z(Sh!5BR?T;-Ft{raA+8(h-kqm8Wgj{`OimAacW+#1~so!gNF8hhHeosfyHiEfQQEj zD2DnB8&2=d$7@5B>YgundH9Pj(_6f;$4fL@TX@%Xz(A@}y#`ekz*0pdYy*vcW5gRUCr5_c=*ugY4D)uXz9x3w0-Nx)V1GWau@v&+7G+kv2cAc z|1N#|xfb4)p{|P88my~Ww1x$1h~|KZGDxt#{`u#hT#q^iSl#PDFTiQ_>ecTQTJi0- z-#XsMTZNaepoQL~?k^)MAX;{aa7N28Y z?50^^RQtH~TdDQa^{M&6bJXnj(-s#AEV5HO+hK>iDaR#@0iMye#nE_b`DjIsguxPk zS!jICij5VY6*0`>W_2NrpdCh>w1)9W5LIE<8PjCn&rCg;xg9p)uWlOoKYRZ1M!zRB-^Iv^ctK}*_e`CTp>ON>NojG}u6SjelsaSy;+}fB!tKHH3F1q)j2WiyQ z*J$$dgXxdo_tKtUf8pNGi++<|no2zfjS%0%>y$4B1xRoGU_JHdYmKzAQ5VO!&^@_S zBEb~`KDY4QUAuNIef;sqoD{4AHc_vv%7`ihzh5NufhBj-rcDgc@cF&_?zTvH z?$SwldwaJ|O)VNT6|lX2!+L%lz;76NfG^yDFs~*}tXsdsGQ4^7W-fW~{W*SUlVHy^zsU72#TY_?(fE1X*?-=k2 zA75CG0m=}&H)!LNqUgow)v2V*47GN0u z#F!7pXAu76EW2>%7Xzy6sfB_(Z=LiD?r^^xn$CgXN&%}bj?lgeWQb%erRS6>rGInS6xKXvSZ)iHA{1;>{Y63IIU5l$cC@etrzaP&x4&&Rvlq z)zoq9Bx!wDdS=AS48AG`GZg6SMOgwQmCfC^Vq=~kt_A7cClpjWqYr=C%Yd9A5<{c* z3QN6`Oji=(WV$R;ob}BE?hR-d9vMwBA;CrcK1H^`jqzCg%cr4}Cey-c)5LECfy4rm zN549aMo)iD!n0`my0+t;T8I~W;y8V`eVc$9cl!RzFKPErKT>{fK8IlYY{O~_t5A_b zqsvoxwEX^DPnT~(+1Z)2VfA~w=q@`mTfFA*p`?Ji_IZ{%_v|OH$8&e7G(s4)UAuNs zP+$<hs7U3ZQn$5<9P^PTMHyVnSJT*(Ovcwwm5TI2bb;6z$ z=<21c!A4+KQg!-%w&sI;X?=_#z17zijM}sC8ig@b!dUw8>_M@!!nlyFezxvG3H3%O z-mk4vDFVi7u^p6DxfL%;bJOf`a9w~~0w7cQ62npq7YgL{R#!l>f>af;Lc#RGB^zk( zjHUEYn;LZc-V^l5AsKN2+dU)l1bmUPs~#5E0i@9$QVaVq9_f^!M#ZQBB)%3U*IrfZVunHGS~zMy-}CPz)gwMe~Qcu!{pM zu&@>@i!s#W+0kr?M)LL!u>i6FRD(&h8#>EfAKx)>{cvjE8oit$49@sl4o z*x#7hL<1B6F#e;dHWdbC0mY+Uc~!bmOrA*NX1t;8TBr3BN1QPqi&P^rg1p7|1F?ve zo*nlRt(`ZA)-8IAPM?aU^JmUbT1ql~vUVkXxNZ$~?An8#>eN+0ayGk9_yz{jhLtPC zxR{8#j!UHxU=!9@H+MI><(6CM*=L{SUFqP80N6xWGypQJ#<0Qyn%lK&$F2<*E?l77 zZ@-;-_Uy@-CPg{MhoYZ&Ueb?Sr$U%Vd?Afy!zG1D#2ROKQ0LzQz4aD7@r3z;BbRQR96>QGuKJ{;+Ls1QacwoO9*!Xe$Y#kXTXWFQw=84^$9lI1 zlp#5rNBaJwG2{_)jV--M$m{D>AHXqE|4DN=;ap#@@AG#+F_f$M4l7HnF%KzdMN)8U zR;HwfTzxxLrkB1>KaQ>WAYWP^V`rdPFQZSeQ3_hkfY=cf>)Sgs7p3C#L%k7-^*?4s zz}Umn(*lrKkd~RBNr8ddpYOE~bbw661XeB*dS74txw7H{k^!m!T8=5KwSj9zhc36% zgO66DJNLxWUHi^b`?zfC-sf(5vg2*Mz)s&D{b41BMH*x37y7CB=-Wd$x3trJAjN%Q zp`mJz`!0@t{%W;$CVhn=*Vk6!wGI0%7Ux}i!cB< zTijcq&W!@)Rb#@az}KD6BZC4dBRik1yKTG3kZAy9?4p+@7^*%4W>(sp$qO)li%BRe9xpj2!A;VC>^6<2ND08X!3J|a9;Gkft zT)8rT_<%JSzzfSTzIXVL`Q(#NiZ=oA@mwUpC=wREp}a$f4%`>7YwW@aw+ys{JA;5` z>vob(>hZ@P-?DD~x&-U%#wq|fpcmI|-MTf67%_sa$17H>pr3vuon=@Q{o96FS{kXP zL8QBTDe3NJ36bvZ2BjsHP627@?w0QEF6oAMp8xxm<6u54!*6!(`?}8a@f*mf?ac7; zDa;TlhN5hT$rjf5rZduov)E1Qp!EG`)c7|P5Xa_vRDp+=C`XFmaE~^4+plFy^O1ok z%P;)9bW=Gb_Ok!719+aMXe(cs5NMgmPZ{uHCxT&X863G8LryY}mzPS_&6d-Yt#+Ak z(?R9JgkpH_{4}RZ3sh{sFuTuS0!JQCY!@r+1&y&6fsX(9_K8+tm=#l(n}-6~py1FZ z2@4u9$teWsv-T*$b`EQOW^#r@V(9R4!e~I6>4}WGb?m9Con6ZD8wDBOkLLnO4_{_( z2>xByR5UxxqGhE46-;YiCgxJ=`Er)TP|3yY%k5iNvq-b23-cx5z-4cZj{@Otu$0F+ z5uTB#15BEp%n#bp(8={Uabn1)PXMz%86-G&x$qzUt@jOS`gVOTUGy5>L6_MJ}@1i{hO z`kJ4i@Z?JgSr-ksL}ig)+^YM*`iTE^K6#}P9-CvQpKMv=efE8y zr=5WNc8u=WSt4W@pawa~4zJa8L3M(IgTdA&etp40qBN$k%kN(=T>v{xCyUc1$aqqxD@~j)z|N=I%Sk7?185jUzOP)3#A8$oL&4+oMxbc> zs5ahDy{x7$PP{pjQnx_%Ow*TLdmoX{TF}oG0u}z7CaW81XE@FGOP6dab&>dLCj0Vb zaSb^avuY|&*ccBszT2-$?M;I_ z+|o59* z1cYi18o&x@tkG!cC%mcc1gK+6-zP3tM0@-T1>oXY+c9Crm@J!s*~SsE%?X?!N@AoS zyKoTh)n-CG=9h~)W`s{g8|=~6OTq*9l#4U}h5NV;m2ZDA9T1}XGYSLI!Vh!=)b-|8SOcQaBKq-KyT`;D6JRV33VuL$qJHa%1 zyAUV6KxPBloZgQhRw7)9#U>b+!yNT?J#Lh!DWhG}TG}%QSyWKJG$yAnY;@{7wl5n9 zIeRgjmGiV>5zMeZMN&UKy--b1_Fh5@0 zczTzLtmA8PD9M?$S?tD+7e3iAGCH~oD1s*bn2%K9WS)XZET3*q5z6)IrkumVY_{Ft z?=TH;ynI~TK2A35WWGsjkg(Mw^{F^@HP&(vt3z)+f~)1VK+!&a_l&zJM#fPm3DuGY zM7Bdlf}*xg1B`h=H7IukUfjwJh1+u10xHHQ$e%KUOb7X5v5oD9bgMKuVoR3arNM?)=;806+P4Br47tsrk<#9F*aqq91u#F5*GwNOS=v&_ko66^~o2hf-f%m7V zebo5D2zs(2kg^^aQ>NaU!sP+90?hg6NDuC@9<`Gj$@kd=(&I{cGRl})lKYhg`PM-o z*HawAbRD~+TvxGWD-4ux71AD%1tl0AEEB3|1(2q&^v#TQVUoO*(HD-sB7^)axPlvP z^76c=nr*%`gaijI7X2ttuQy#dhk63tl^%yzR77!(=YHCFNe2Edtcvfh9%5!|ijpQg z?tk(d0Lg!M>z(l*VP-t@{k?u`T2^yDwgkHYHH9z`4r(UVk8Bfa}%N{ln`vy`n#~uy1!6V|n!E^dGTfGj?j;kDClEf!XkMXSOHxl;Qe>2UE%VT&1 z*RT-f0U=z)ScdN*6}9lWj47T7O2m9Iz>wkN^S_8J+1mB)06DVf*az|e^5HrBqb3aw z%Cz1Ha(@{lOtR0skx>7KFn}g2o-Z9obD|XCtP_mgjgI)8d(ktVdm*zD$50m%fx^^Hfq(oT`!cZ33#xinwpm%;paKT;KKPy&m+qe9ax~x zxNXv2c){)tp9l~ffMyW*g>+PsReGDq95XUzo(Z;}FqcCQZUqNx0Gw`2VW96W#^YCI z&pS&v84{%VKrl}}ojnZ5Qu2I6WYM#ZrSP)qSS;bnx`WH`H$c|2vECNz#ZSAKSTH{>t%G^;mNOiktYSI)Eu+r3(noA1jDSloTn zv|zfDMWt&+uVV%oX-2ObkYm<^sdo1VolLmHp#|^jBg2U$6I0?Q*T_3|sCIYNL*%e) zO}e}VZlhq_6p6`}xxK0h}sl*zB6Clqv8%q6O&* zpAqYHxq)@nZQf9$REs$>CI(Oi=|lqwCv{roYD|s|@OMTcZtLFmewh7f3#A$d`amMc zNWk+&gs)hV3Xp}HhZreeQ*+Ni&!;t{3+9R4o{GU)!A?4_kgnjy z6=15BK~d8*f+A94=Kj@ja1d(K$b4NX%OtAg01>B0F1fM5b33xSa3ds@vShgB2~YU-c2uSx%@_vEu3_&;U)T^GUc z7%8i1%nx|wk})+6(}IIh;UhGrOU^dPa92;AA`i_FY>-crMnWUmx>Bq_eSw>UMyJI? zz5ABa&CvVDWf6V_eUSy_GXYeko}kskt2oR_g55%HF44eP2nxb_Wnyp~yLcL9mtJ(0 z)zAe2Q@S%%mNAw@HO>9AJMmhK8HEJQ&TeHnh4Pzd_;%HxrFVcm?c+r% zYY7Ew=H6EUd< z2fS^%-%5{N5jenyBLwjjc724;HdV3u)ac7CM_kr|5ZTsyTq0g~6!wUl00TwTM@=lo z@#@w7_^H6tS+zlqQ&m{%+5o7(e!$USW=bMM$PE)b0hzRLT@_18}0DBMJkhcKYb1794dI0gTA}+#&{X?uW<4v`Ea>VkU(iCP zXw0`-eS>WGaF1F4QKGde+_I9X3yZ0x~F<6N2#?YbIneCG@`th zj0|lR91sO_F)kt?12oYF=OdPc{7^HYZ9kXIvY^OxYi>5?m;Y|??Rcq((IBpxrm;d!RPbi5LJ zwx9tcG3QbXWJsq@pvN_!RUYmD)QBT|r}~0XSEGorg#vCLqdfxMphae><~l;3Dg$G` zHHlTdhx_X1{~G-gxy^A!522p-q6ohZWIUYDODQKOfKuaX7qghLX_Xm;JcUZyRJu~? zpjGSG4^7<_W19Bosrc#&*x;iR#bJ58cU7eU{ZRHKk#Exa$oZ*@lCsw8h2et2b#q{&fO7(`i3tgO;r{?WBmIpY z!|6hG2mmkYW+CLR9?7L?G}yRt1qy98Bz^CTfm|1h%c_V13{)TB(v0ajP@10t^MsRV znDPDsZKu7BshC7*gooFXhJQo|8?*ZEqXkEr#6H`2(vKG_D@vEXBOhX`RZ+xmVB?8$ z7qb4s;8W;nshlW4uO-N-rO6QiVeCmZ6NPFGzF7^Xj>YQgs%J7^{TCwuKXhtq@Xasw z7%gR^&Y_>f+x7ATgp<+b$6K~2$^9f`?v$@`3JAAsFi(`A_Wb?xd|Jzi4D0oA$L$zpig5s9_2!ml zY~b2TS;XHj$lqEuc|Qg`^iQytnBi>XPf0{06kxw!uEhR+9GaLOLVb6Eu540k*3_e9izUBdh9^8CcgBi*v`3$!v{zP z)-EipV`=rK+IPuz+%59qGjthkoG}-azl!-dj71Y?yH|YVdp{M@*OF1uD0KpDv}3>g zD>r1<2=_w01hNMna$~JZ5$`M6vB)8;9;6DgLed^<%dvi$PUA`=FnwrMTjt>{C0fe< zfu?l$eQw0ud#y&=?{VlZrVt$=nv|9yD!RAS{saKoNXj*f?9svKQi z;2A(S8jvDxec|ZN>taBI3BMueMDuLFTk|O~8;IR9R}pRCZjVVwOgvm^a`|r!E6SGI zqZVC{$Ec;?`>zXW*LvdpZ=*Kvl7D{ghkJNTr8=HP_>(__SOWoGrzUyfRwExDBPTL| zMH-SDwze%@EBvFq))#e>Wjy{Km5;jyT-w@hl$@O0rz1kP0ls360gBwV0G;vg#$1_5 zfrG`|c*=}tJrFz5p=;oF7+j#u%MiLOLc924>QxMou0;tCb$4bVk*)2`!{15I2t`6u zn4crN+@!B%t?{6VQe3v;r%FYWr_4PETR!>=k0^{Rfj9TeMlrxOvqpDeea0lEjPF&Gyhej zW@Hc2EHO&%hlqSd#2_A;-*R*?{i|PP=qkoSD)5iCkZP>Dv0TsXc=B8RK%Zjdv8e%x zB>!HZ_orW--GUiVh*_NqK+R4quoX@RZqdm?`BYD7=|-i_r6|m;uPUI0aZj3pJ+>k5qo(Nf3KQuBfJNq^7>61yALcOpHU4KS`~VWMQKd zgXfu|dyz3}rAe25Nr7ZC9p|@;8KHUC=9-z!rE8Ah@?d#Rn`*+OqoA3T#uStKCUr89QsbF@Gxz6rR!JKx-zdEf4 zGkdFYwAetMY0z4NC6w=HIbIKJy0PouOISbaD|<~y*x5|p&7Ee>5+}bd(y@haaq+@an=@+(&QWTy zb?42ZrQ~E#OSNQp#^~K;Dig00Di|WkcCOx^8Ka=ZRq2?6rUUm0q&mb=i_i;9SebLF zYm9PW*_H1VJ-qhp7FDL}F`--eM;%X7+>!54^3KL%a^tjF>qC`C2C>NT8Q`m;dbux- zWMo^EG`kB$*zq^IG<)Vpqsmt-7StH}(Iz2~cl_{XfSfXivD0&3TkunfTdv_#mS1CL z7tF{h4$DwjxP?+yL8FTW^$Ln3LOew92*KN9FWsO&aMn6B;<>``_*dX;%acZC*2GeswkJkkf(SugoD=kl|-#gN>RY+!XL$g%N{6Mm4 zF4Hg0L>2=Rb05=GCq6YRMak;Ws?`K}smGM5f5iZpbEt)|e-v#K?I^AQ@ASa!f)0vwMWW&I#=HA3R`!Ch`(5 zWXy+s(u1$txv!W7ebXr7fHOnL^In7nkOi|Lz;dD{o;hb$UPKGPD~o3`v+<-yt@8D! z6JTyy;#yy!+NS$@M1T=T0Wc-IarfmT0OZ;^I~MbT{e2dv_^bYuc%o!?Dhzanp%XpN z$d+8*95}B%PBRI(m1g!19|3=FxVSNzq=$pNh_7E3nNMB?32iz!S~YG|kO<>Mio7z> ztR1K&=Yr=fqZgYc{38AK;bK)lcke!B-RarGsN7XG(6 zRW5=|=^+$chEKU#2O9s)+~C-5M~BVdjP#A8(Rp)FQ!CZ_2CpTBO?!_Kzu!tw5qQPh2L=K@_c9Gidhor+$AX{;85KUOaz zl}@W(MPU(2)yS`;V^e=GezYN!_$I?xBm|#bc9L^tg+g|hwS8v*e^S+_gPh~T{eVLK z(I6Km;AFC_UoA!-(m7xa>rPP{rbH&FME@-n0XN&^o*8Q+gvyi+PA{8SFa_|Lhlr(Y z>IAYMeKs(0ngRa!1a5guOdk@|5H{v*9f>8SrKeFtvI{Bm``NIxD|8J>suAkQ@7_*Z z&ik~K z-W9c^cP1hoSNnU&9uG!?sd>7G9bUA;k1j&5u2SNH7{XfXh2)<9^qeno{ds=*;6TuZ znFV(t11{>Sec37Hwd}k0pd_5iN`(uRK>KImR8R$PKx5o3cZHID)*4s27KI`|>$jTG zU1h?9)Iv|SI0&=V_&oj2@tOR?fQU(Hqjrnjj76*4Jl~B}VF1s<14ab~71S^Fb%7c} z_xvxptT9WRJ^A-#9v`x!FE@9Hc^pZADP|2{9;KJUVq7Zj>V@vOzK(DMq1w7(iOmsX+V z#s}{BeEe8cG|U@l2Ag+9m1DLBBOhau9W@NpWYH|qN*>D;W;}8fwxUF&iyE`#cMqz*VmPePZLlZ3IZ*YaJoGtllYV&| zDjz>B{@(b}6h1{y%ttlDIzE~LT%B^dc zpo^IAeWqo)rUVKH3L)|K{uaL1%$IV+ zPY}z18eic^KHz!&$X(2TcOkf}4Coy-GKLYHd_t6O2;)p0b5RSv(JibL$r`8U6^Ri* zw;Z?$G%fCD_E3HJJ-eXYq*eZCP;WkZJ z3dWR_4&ZaZ3?D9lCRbw`qTHq0gFx5DqrX3B(u~7E0lo1%#M7tEj*M7T3ZQ9X`6~^j zcQ*j5oh9o+fcXbcj8yA0M;n{lZ*yWxnfh9zod;RgsTl;+!&%8FtKotnF2}!7u-3c5 zE$Rb(rP*P(c`77h8Igt7I#_hBpVuJ_abLgiyM ziejzj*5_@KD;+~yCBoJjCf>&x4)8GzAi5-=LC2zr;|=Aj66*)K z9kN9QMtUY4`4;pODVudY>0S6zv#zy<^g?2ZQz>QyzDi@h*bWBfPL$Z>8y#6YM)Ze9 z3tU)ZQC1kj4OF0)-J_%M%k?&rM39#@eH_lOEZ|Rlq3;DNCu5ZR0QGbO?e1NZ`7Ah% z+pCp2rTV9%=BGGh43w=2YZ+T*Tv@Vz%FRro3l|vrV&h(il0;WaHeB}oXlZ;`ifLRn zJZ*dy7;V>c`X^8!^92=euLCT(NggvNBzQBlDn%pE>~Hl{>p2{9HkH53y~lfL&m)LA zeA0o*8lYXP^ae|uE!RCYA%rl=gvtOXarZ`z_a>C2Jm>d&=?+yUNKd#x-A%ugdmhLZ z%h=56ybY`33;4|4R;01K2>(GEKncDXqT{5iN9g{tdwY4iLi;!L)?2>X$+qUnwZs-7 zs=6;in`E;d1|(y`@BUes$EIjFS}ndbHUC0WcrWZh>_~?QAZKv?6f5*c<3ugjC6`v4 zGi^JG*)FSFm^1*y$f04D|IW>aU=Wj%GCr;4`d{ny!3d=PD{h} zt+Q|7LfU~9!0?Mw*<*avyti|wr@}35rxqYx`yJ0dqZI{m=UA0kprIIt4oGoGL zo6-Xwc{ANUqK$KH11~N0dYQqRzwSG&BJ$Uoj4{&wt=c>R0*}mXBHor3j2n{Kkg1A~ z&O1P$-2>|1OYE`1=RPGAs{;bX-uyS5(}^|ltH8pMJ@m?&vd{@J>tx9xpns2=`srmh zT47jO{n9WKQjq@$CwI^y&(4g&)}{j&bmnHxEt^ zB^y>2GwiLr31(aJ30H46LeNIg`f{|sf5fM%q!t^mp;0d2rBTQs-0r`K^;kf8oc&H! zoASX5%jdqqaOac?@Pgqc4*YqZe8;ak947b2OvMurD6a>?_H+;Nigx;FpoM*sR4*cH zE7oLes>$P2?k}7w0jN*7*w|wK(Vw48x7@Y|uQq^fld(tCAKdPtCfBQX#;BG|7<|8P zzo?Y;rdSxNan!S`JC*l&|Gd$3VIC81*5J_H0;BS2;hVwGi)vxk^b38SQ%WW@N9>Ay zED_R=?t9Le>Sv#WD^DO}i2}ZBFw$vF-PLf%GTS&g?Wr04C9S|!QDwtd7>GK9B)3dc zT8B(^KjIzibnMa)Rjnwswqft?4U2I1WWsKsk?&N=`5cs%)6(UQ;~03HWV&5f(jHHA zWpXd@@(BrKG`NPbK}=E1(k%>9RtN7~6T>KC=@V^jOYcnM%c~naQ938Y6l(+2dCkBx8UHgck~sx2c3dpI zZzhDV11MQH;;txk0NOHd1VMc`xksbPpAqzIc6iBcm3e~)6LXrX&s90xviWj<3i5u7 zxg(6E{FJPMf?3<_2NMhT5<(a{i};Z*f~DVZufR79k0cfKI=|My+G+x|4xAh*f6L+Ju+|PPdFEIlJqYkKPe4Y*nP_mDr)l*Sk_S6{>x8_{ZjR+NkaK<;Yh@l^$$i;<^d2lTqE6-|yScGtpIZ@Shw3z&|MKLhK>-|b zoK;-i+()EA#mptu(edS*xYw>iE=a41H zY`p)I3zepvUohlrW3Sd?1RTvY?_uTSSoUuAQ~KIc@`v`vq`^l^x>48IiLB>5e0_np(X8PY+TsuW%+0p{q`C(YGimso#ryHpgk$H9vqO^&t!KTgttYCA~~*Xz)>o5U)4Ia=gjpS_Ao3 z(>fjHF7^%5NafM0MnzHJoC*cCfBl3_h%262`D@A$Q&=+K^_m{x0ZGNZT`+`;X>dge zxqUDef4%%olI3;$?|ZEBWQbZR2YCP=qlkiu6Ip?P36@({dZwb+LsJrSC++4ILabm$ zYN~uHi$MXWG=>iT+=Xf_h>J4!@BF}k9yDHh6Z^X>4^PUK4jTa(q3lmWLeusKSLI_K z*NwZjox@YfCew_Wk#8DJdYS@mM__a090q7Rtf7!kY#R%#c+bI{pnXwWOTZUx9Kwsd zK;LKIlG*&Xyi=$x!TLCfK+7BNDa+sN7t1`B;(At2uH;bg{X077v1{BSh` zs4=1kau=^*xqxan>9Sf}#e{PD9Emd4= zPR|n}pF|%&J5RVwlsku}c4H>?<>khFSkD%IdrK!u)t=X2Id4s#|Gi`w>f7#p7v*WG znyaPyMuq;tqu zYwlogP6GaCau>TxsfM$>cpm51Vh2E~`(9O*tOE>ZI@9kPz!WjJ=>6y$-~pIJIQh>$ zfCBhf#Hp6QKRw@!$x1J?Qt&F*=P($ir2hN#x8EN5rycWq{D`&>S#!pwOS zlGWSf_|SGuRMO8xWxy}I-RC)8>96F2vgfeH5X(fFuO)iLRn}GpYY8Tg_1m}7H_8U+O-@4%Y7Brgz}4Fe6|gLP_y`rl^_ zj1bsKNTx?wj9=BAH9i>$FhN|urHLCy^Bc1>d^?9$+y`#Ln(b?3SX@mji?HLGr60UK z?~Ay;z1-z@+{3s;_B5El#RCw6c|E;T$WF zIkN?<3@J8?9Le51EQ=|^Y`{i}*x-Ad${u%9$exJU58gc+o&Zihci>$Ro2gQmXPn}0 zm@$W|+p%2kEhC%K!fmVd#sW>P%9huFxbp|WFE3paZl(>M z$A<_$>qP(l_Z8^h={Lq(o`dwkQo=$j%&3_xel&*!JY9iVbxDq#Cp1&xsuE z+Pi~|1a!1!M>A2T&7)ODwIkXg+mdj$h)1fY%XGu%qj672-J@&Ho3DRld%0$;5FFfL zGDADpU8m}Zn@L}Iw>U7y$E0Pt(h%){(1t$V1_WYcJ||F;T$$W`CsG!GHw(3qxJKqQ zl#$Er7ao|JZG)=IBuXNZ|E|AO41!*|8zC<+sPBT;a+p0QnQ0#eQOCij5h_50H&jw-ON?pEz!Q;?gIojF(k6{&K z@7v$S1Jf=?{mwCWvaPx*=Uq7>h`}p&k<0#A?dPHQk0&+b#dgc}XybDCYi3SaF#Ex) zEgpBe)uxh*74109s_WYSJ2<6{%QpV-9X$qfH>1}&Rk)Rhw<{$JE|ZC8GH_-IQn`tI zF*cwVifDhk%|neI(HW)&#g}*}-_!2YO`FQTKsakK80mPPs&19zA0OD$JA%#H5D1OY zglE@wVywlYv|1k!-K$Zpi50!{-T^hp1+0bW5esb-h><2 z9I5=B?e&O8?G1wRm5YxhV6Ffp_IqP+6fC=g`}tSJUr2A7F%22FmZV}O%Uk7Fi{>}P z+&(zk_}gPoUv6Z@_&n-s*qn-46KIU;#n`b!`m%4$CfXSw^^^7uGCjPs|0lr zi6;M^FQDOOxOk`>P}UdaqZLeVt?m1UZr>q~CiNTyqR8+*B`P$;5zS7L>Dp9H%1UDy zt3-Aj&0p_$OJT0B+VOt!Ol(LEG@a~cWdncu_-clx6OHf>qAUNIP^OTRxB^W!$5h4T9vM)5#@dc>gu+xcnoN?p zVC};uts?xO+S=qN01HyC_1@59weZPIZ;_6jy&5L!ZCLMrV=yVUxu*vuKN>Yb#;oY7 z$X2Qx?m5D^-%3M9nVinL(T2^c-RGwIEI2S`2&wf20g8g&r|E5HF@7X5xvA}O)kf=3 zRyPqCvwVGo`p|HF#LmX5kW!_EcPtJ*AN18PEViRd30oU6;@^Q{P58q_*nK@gg%id4 z*3+@%Jivbt9sJjRC0D_E(oMSeSUH}@EbKV!5DGq8&X{p0cqV}R>s=cH(}z5SNZ0R) zh5sz}RU8ChTdq2N|7h8p%)i6?h0Y#L=>X~iy@G@wXP9^IN<8~-chaf5a8%G9KJU3K zQYnwfAj6opiQCMXA6#Kxn*!1t{_t1>C3CQr>|q4-_5yp(q|s7TyJFXcEO$k%t}j+D z(A>N){0(5w3{Prxm{tnO$&O=H9rV9bF^~-0Bwr#{SSb;q+iYB^JM)f($AOBlMq16q zj7OECsA6aMznK#-um7VgLQUN|$dkE8ugKwJWK6$(ZcV&BS(1(Lf0ImVOw7J-4-E@X z3{asnl>JHz1$8oYeZsSz!zO3=`uzOtdAt#S0JeUaQFlG>!JHJ1gDBj+9%DBj2R(s1 z5d^mxGx?noe$N$)aT5*BONp;gD}0ot(1wYQg)%&7nyv} z?e&SsiPj^NTHPhQ&JbO$*yrqai6?VhOqF0Foct}L!O{P*;m@8$|0ZQINXI2Y_S z_yv$%m>S;=bA;;FyIRPMS4kPGz-DwSg0#$-Y)78*`8A{L0n zqy}=0?O#<+ium$gtXPx;s^dY-_g!6(6Qqn3=1Ls=6J^oGQr+SJ=#4pbp_?Q$QvfeE>z1e$18g;B%JoTy(vkhaUWMXzA+2B_g8?q?PG(f<=HIl6kMHs)|eU{;x49 zKAwbKmS?2@!zS%ghX?uTgB|PXlN&4Pql-wL=YfBupi5)|OD3)IMG(tvuhVa>eEb3F z{<>bX98b`I^c{I#J`zTht7x>5=qu&aCA94ex+?j=1obun0Ww8OXBh!Reb4GUa9?E_ zi_Q@%n6QWA5mw*=++%zZ!7wTqV|jZ}`?Ik4OyvE&XLI?59opdiM!|=*6=YIDcLhO! zfDCXN+um=R4=VULM0)>h+e}MN)_UYU*^;T#zS~WZ4=BW?6R-DYnX$o@uBAV-Y5nMz zWP4L{$5~d%8Di=;*zkc1JX0+|U6C*c&0iu(Nl`;i0VXSD{iEjxvh2(+gi4gQuz5$u zbwJ_yD-{~w>-l^UeOcEp!pAxl}Q zseRio$G2gJ0X}W4K)&JWQki>xPT{#+)S}<8D{&b@eeoyTR0LSCUV$m|eGBuP90(gl zoD@%At8;}^e~x<|NlCxn8-DKPyuqaC$T5~v_-f%8ob6cm*r0MMrC6-_bX)sWWVnNK zFfb8$QNzJWFCYCj6p5!%X(EAf<#D!Pf`Wp++vkeMp#5tQ9O}uCqX9C4_`_WJPD1@1 zHoDas{QU$x5G!9`FFi$l4d14g7Ii&6 zBD+-v-jfp5e8kx@-NgS)dv(^cri^SW)bUu;ji!B(&)OlJTRt}cX-pmPKrF-{MqLAd zvFr7@a((&iB4P@rN0-BF)|)RC1!J?s6#{uAvTsth$BKj;bCi|+Dqg7u&AJFOpJ4d} zo=ntVe2eEB1q7({?QVe7+U?%&qib>=KrtgmXv&HHtiVTGYrQ8r{Gj6s&l`x|%iipx z?=G@%I|)KTMbDRaa>B*Ml{q{-+}YceTGU-62}Tc?>y>+}s#1x>v8$S(m#7U=F4j%o zyX&3ktJ7a_E`9dJE9+JxojFu}Jc`8Ne|PRHAK~m9}p`G#;&LKYW$J^w9d6!!${i_hO7_ zmLalY$K_XJg3)8IG41Z^{^o8U=jc$?FD{%#YWJ=o<)?3~uf%R}UFgoI<~mdOCe8LJ z-|6uxO#&EwrK*qpsFj-8n}p3pEpE{^hb6cq6uCc=Ge5LP?DF}N6m*Z^?F?DWT{Wdz zU1VHnKsb`h`}VgI7m`0v(FY+$8_EFr?p(ReE{uG&zdCo=2+6305y!(ZCjMVz@_k<8 z+U{V=c7C6|Rcb96%9h$O=+}+{P7X!xP<*zwkZOs*(9UymSXmjF+>fE;p)e2B@u5Z; zp&0#K)AHi%U^6tZ?aJJmp~EzOvYlRef#yT@c$3TCst0$atn$*#c8S&NBdy$-P{Esy<5 z2bWA()u^SECQ|1zZ;$giJ~R4LffSDeouNQ(r;#LKu8C5ozxkKDR`>rX4?pBX2MN;p zMpmbx|AY=pUFM-4FEhCx}~|93pc-}#^r>dFQ9%zOQ5&EsUY(%krVF>)=a1NQLi7yFci2sJ%0Fz~* zhe&54V6?`wPdjTplCNeixZ6co@pg-N4r^F{C`b=JmJbNng{Da8VmkG+OLa2AMr-r1 zy81*&bG6CGG6dSPccAB+**lA=6QxJn5=XYR!G(m_4|OAYSbkQEaH+Yw8iTwjAZ)jn zHx#EfXjsDa)c!152=ySgJ0o|raIdvNAt44gaIq#hNDshc?zi+Yw|A{cY(EksXd(AI_en6?@~*dYA%GmHk;?E3-3#6x7dihI(ck*5wFI)J;8ar zBJ4LopHFB!7JJAx&zgM_eWq%%a%?2p-I0t6s;;Ec)4Yhj$}O#4xmdL=%$`JfIT&8?>FM z`fSH+cNd_(X;FdJ4{e7E*TWq@*EU4k{4F3q62nL5jxDuFZ8Q+a3YU&;k^;e}SC8GA zi}WL9HO`M~NIzUyxSVYokX{_O<6umxN^{;H^C!Q_LKab`ayqtL*BP8@2 zTy;N4-W+2&%D&mHnD$P%ra>Awz?=reAEG~KY#%fplajg_qT)A>QJ2eBXiskyWWvN^ z2a<$bEU-gajsLRQ|NXccaQ{`%`MQ``SZE{b=_z2>{rS@7Y|Jl2vZqxu!7EBpo&eZX ze>vx5B?VW+7B*=1e#3w?Ix0|4;oPH+w?6>8$^*v z7;$7IxqQ9zJdD&_i}JPoE4=qD&Q0WDoxF+t;nL+$f^5$oYeLxhK7M+Vy4SmYh0)Em zr6s^6y=CK1M3XdRlO48?T$9xi3ayNF_)AchQIXyO!yF?Q!%bLE^oOFwP1s3L` zc=?IDa7$)Jzq3?;S<4UMD03S^6NN6hu(PkH3N^!zA`m`McQm0oI-yjG=S zgZU?GTBj+b-w%3>W=epp3S6RMc`m3|M{1Mc!tTxXJUvfR5CRrO@VLG^BcAThrTu6|g_&fHDujI4x&nwEj-Z?zf z`8-5bxSFZ?FLz|qRF_#RM^pV>cd#;vl0wxop~zn}G!`$Kcw)L^_9R{fUkP#TC? zn>(59)09P46-7E0g`c}Hok%lBR%3WyR@%;P95ndeD#!ij+OCfnxkwILM#@pvc@Ha|#hT`U10Fn|t^~?+t1|O*pbDE%K;( z!zFV0J&%7QQS*Dh0r0`4OMWaf@&1$mm}7)dIaQDX;UZ<|i<@Yf~C zukP(h&v|D$Y0lZiPFGStVCShQIT06r62$awCfDvr@PCO}r;#_BtK?)E^S`4;+BUdR z0m}t3wZg1=rMf(MyvYA?KeBvC>u}o7=DisaMehG8!Oq6fD;}gZ<9l~=7)nfYGX}Zi z^0w{SQ$4$U;c7*M3vJ|M{}+ z+?L*8+^+xnbo^Z9s!11ani6oXsokReb~<9&0K-a}L;U zsRasM24ajdh~dQ z4<%k{BYv;!^!5sO_$Q(0fL{BhotTW!y`$-2-~M0mTb>wUKdF6|cH`Z#g4dsYjG%%w zzn0a`cHy&Q=zXv+@ydRv<|DZtjm47TTHazqW@R>}}krsH6## zM(x`6?N{eIaX0JDIvFGb=!U-J@Xh~q>%-G-bQu?(H*_ANKGOykBkkm!QSQ-pt!~F! ze)Q)+Y{OkbLP7u*p#$R|>{{KtQEBxcfstpf5^+qCSG}aIOT{+p6-h+61ztRtgsuvj zYg$;mEv#?NMuSHCJ7i4Bm!!B{g6{-rhm@?I8G84G&bw)-VJd$WJTc!$_gVPP9dJKZ zZ|>PLHk2pnX6A<3ndm+x*JSn}pdRNMan9A`@TEW=Bruiux(0?z$DAWXsCY4a@S{;Q zSoDe|Nf4oUdDQxyz~w=tL(4?Yc}Vl-obGTW*LQ^@JNBl-Fjf37ozn{2u`G zKn%aan{2RLNe0QZ8^$!pY91Mz(%(`LT)mOmpW$x) z@eOY4rhDXz#H2fY{aSa=U3Y2N#bo0G_vj})-ral8z0&l!+buwK?nM{4JAeHfH$FL` zArQP|w{qR-K768ap3Znj7{}0o1CmM|8YUs@hYo3*L{cp7TE*w|;T=-%*s*cfB+E?r zVIMyC7+0rK$A(olaV~)1!-o&Mr#|(mI_d*VHcSlBjENR-WFKkUm#CY+IJ{-Yh532asSe$XS$^zxkvmB}%{MG`- zS;_+5=|C|mb!`4d;FzoCZUJNiV}oP>dHD+e*Jogi=dZo1(}S@=G-mkB^Ujfe2((It_uPGtYiU{JmUXo2 zi+4Zz&bPGzAeF*10>jmgKD6fl-T3dPc>hH)%f-02$R%LOm; zF>N({0muoppe!FTgkn_c*yO72*!1=FX(&Z|d%FTL-sGSD^rvpimMuDB1$j?+!V?Ia z(Ba&k_{1mb3y|OX*0w9`+URWKeJ8k)pQU2oa3$yHv}!f`3hH5iwJ^eh3z zF$jlwITYurr@s7^$;q?ME`V`4C`Od4)zlg5qAGvjxqWl8P=ls`vFU;Qz^e3s%8yNH<;SM9@?%q4`LW5BD_5@LF9YOQ z)j)A6ATFobgkn?+7#k4h%9Sfuu3Wit<;s;SP)^CYa^=dE>!i_FwhX17txbJH?wrm= z?w-CQj<;dY>00D2XkVE5VEf{x{aVH~G`NkO{sqblI~Ka%_7@N5X**vi^<>G)v;B^N z5v}qb=|?Kb!2h(dvsJgzN0yUK+CTPVpK~Su0_lU_Qg|TyHLpARM>XBld&K?i!#ne5 zcCK8rtSNtFk9+P5!oSG}lz#Z-FXT6!X=?ISFR%H!nOr{R8rqgPw)hB+~H(Q z?4^qr>q~Y`{r-*oiFQAX)jTPG*Ijp|H?L(&mTJ0Yb+=9*jci*(^6TK*ZvQfq=J)N< zw4q~_>)EwS+g{tfM)ut$<()fp_>iU(TF&pkRN7!%?SqF7YI}eWWlp>Fp>EgCoo->n_Ar0-f(4FG*@MPWy{eizx7V)S@F7{ zy)eeK<=wvDLuHYYN-peJAds7}U38Ibi*-9?lZr2twthP>s@K4zEH_9)clRE3Z+KXHv{$ZN_0vmV`@#5fKIQa@cmGMrzoB%4 z0dce3^e0B6Z_tT0v=>izTuM6z$2DEo=BLb!W!tOKTb_58d-Ip>OV$d?s+)Qjv?bId zTH8AHbMGuT8>Z+`kDoFy2juEyKn&!fhW$+*cqI)L=T(B@Ot7t12Ed}Ujw+zIuXn(8 zcC{yKwJQhY>h#<-K$p1zP@f$sJlVnc(?q&!8LZRaudCNf2}K_ znRNp0jG95&?ls-I@BGfynxfr1ceyod*J$0l1d7*ouXSSsdtHy@x2#&@4jnk?zLEoS zRr=D_;p7Z?-PPxZ{Ur1J&SptHBy;NT8b~Hj3idcp%AmXYhqcUA=PY)gzxS{%>*S<7(G=h{5WjBI zA$P8nxjQMN&C0@gUB2(=E_qD--J_d*bGdTWSwQh49`TT5?bOxJe)fx!aGYiW#y~Lw zM&II^Cll`!MIe z@y#SB(9@shZv4^D-J=GBSrVB(I??r`tK4(0`KJfexu1#f6dM!+!-o$Z)D(bZ#ybzG zljbf18`ROmg<4O++E{yulZ`~Nn-ZYtRc9}D*WR04S5(Z2k-|W4s5|2@3(@%<3w=At+Deo*Wedr61Lr&Yk81it zgW`c>?xJ@8JpDXS+}R>P?FX2*s?$0}!2Qv|1@6b&4!93JBljBTs;@#Q{?2#mJ~HJA zqbEQ46`GcUW6cPmI24}a=Jrmv(q(w{62-7vD-dUSr%%7=61VmC-y~}V(U(#Jd{-=P zcKZ$w7s2uHfCm{sn6?1?HRqh`e!X?K=4a`6!10kUym4~T3*LTG-RO$KClZ*9Avn!r z`4g}5`IVqJO9r+gU^iSY2gh}RVp9UgCO14K({<`-WZ=q4Xj>%kjHF&587Q9D>Fc5`w5YY!4ILRu;e*tE zoKN$l=!CS(dZX;W1aOysM-CrWz&%@_9PQh)$E{qoO6$J!rXRb-(*B@MVP2>U&oU6! z(zV((9~*K9clEjPu|w_$pE$Yx_UBq(6fovI++je9N5txh#m)%fXJUElYaU zIc*+{gS_)Qi(`tlKFLo*B_t&t*z#?^B9W&m6gXe{2uSOi{O@Xk^4kQ6(M8J>D8Bcw zLit?+&Im8GU8AAS>u7Oz^f0u?z?Gn=!UPk=|Jv@ z2*>3>KLz6miWNE&2u4L9D*02O*Z{VYC?^Ub*KLyeE5LDGpxBgniHiU^2jiObh)?|Q z-zyQm@Dp0IY+PO024c09+NM65wz1zOc&j`jkJOS{U=5?%c zM~38{)a&mfjd+Vitu4*&=#cl|AxrTZYntR3Y>)Tv71&+mhFcbEyf8ZRj5Bni5&F~B z)up*W`hp_|6YsPZ)BNTYt9`$L9au!Fw0nEt zB}Sj$Bv9PhtRWk6S)|vD$|@9{CxDIa+@*;#9;<(fAsCy8E1o!Z%$;-TW$wP;-k#)oh0r^l z(1|Q>ajdh}c4=BJHrNCVKVozUctAq^*y6rkgGt zm(qy{%?8GVPoOE#2?V1UghM6Zs&H$n1j!NXmW1OfpcqvIV}LxaI{;+%&B3^OJ?vxO zo17dUcLxp}@Zc+O+$JD9A%M)m8xo)diqT|8VG1S60>Pwc=Z@`~ZdkX@ZQs5l%?D(e zw%GueIsxFxJ`cu(QD~Xw7B_s;pP@Eh+3b9CPKx{Cam1km`A05JrcEY+WMOH2ZWI#A9$F{WoWJkQzc#1Dh zpx8n={3sPZ1SH)jT@XpWhKnTi3>}&8zWu9v-KYOxV^}IzF2H!c+`s(K5j83XW599g z(g!753!1;K5JLFo7yIYlTRxS9t0n6D?c0k0)Rs+Qo`J2k8OriX?Qi8fFMOkW;^MdK zGWyn?zTei@V>|q_eSGoxZgA&k(tS&TvE8fP!sbG3l>sDS2S70~#hY&Zm76aQ2va5K z4Y%VR&NAAmWCpGVvj69bb2UYPaA<#a)$b@2uj*KudWj8+3C{>cy?CRoUQ>7+Y7w5* zrnA;66eCjdFwHm#RBK;}Eye)OOz3323Md9#NzD{QYf-X)&HIU}f#S@%DKEyp<~`0; zr38d0^O6wK$^Q-=l*^sLqY`?p8qG zw`Z^GSl;e{{B8H&@3w8d-?a*CA2}lJQBVXNr|ps_?NTq>f$6s9b|-&DS~gde3U1kV z0H?Cf5wxR73IGGYz^4@_W!>_^@#m>1W8#~Qr zb?eu;{@z~K+1VkiGU>Jnq|?t9LNf%QtuG5Zi8uD2L7`X-Pc|t~ys~qJJKDQt3Y6uV zDh|JSaS3N2RVdC7P;A~ z_4dHhq#HbRNMVs!VE#ys9vLh^v1p=WrNSjp%+O{Eyt+lcBsMoIU;?qtVl4}sU9*_N zwixTA2B1&|>jtNo)#ahpc@RD-AUvFeR!E*&vbI0s+yx@o?qv^snqnwM2BRUMnk@Xn@~kXkIcweW;%%13+rx4p9AC5fgPMkLjK$vLO42_w zVvH?>p#9KVg-d`k3^Q2fj%kyk7aKHyq-@h+*mYekoOz~{}I=ZN*U%W~C<{eWQv5F>+O6TqI1 zYJu3v6rBCE-^uoiI|Pb19ZpBz*s*)U4esCPKJ(H%#(1_R;Q1~|cw6^(#rUcGCb8?} zZ~5OOomENOYbEhFA?I!u<5t9!jmyNi*f7RPT_FAWk)$(HR*W&RyC$GG22vEqAs;;W z>tx9TYzWQuRNLAYY1(-BPHi*n^DEB$6WwNMYqcBzoaGrd7!IMB_+aWRW!naZ(&bp@8IEDz z#Ah)>2E}OTh`*7>pLeDLit80$Y@Xk0J;10E;LByjhBOwcb`vr)B;uW2p3dKM? zp&x{BG!7n6FEQFfEe&W$aNB7BRk^J_KcDIw5Xe8^1a=FUOAKxT3aop_Kg(>AQ zSuAIWlwE8+gyOJDOG87zcsUO-0@ksTP@E|CZeJuoi~+?czfR^>0;WHeOpYQ9eI7}jhV&Zu*WKaxvhEU8hWveydHZ=CPWq_D86#LK?fpzm*z|%42L4r1B+o8 z*-L*0#e;_n+jcLQI=kLXRWFY*!0Osg^J$$#--v+@W1`8cr@eHN)pWtwex7fYrZ{7GGTzNu0QYQp{^&!uA#R7+nJTcL^D!myQ0NBVB zOaU!7eaUA75Sjomc><}_!9}Y^nIwN?q%bmor3Su*e4l~$c>UV73dGnzf4>?-umQyg zDBihqr$RBI9E^0~H~9XA{paO9UgD#E`qZ&}nZBq;SO|(gYpyDkoU{}!^@Ot^2eEKM z)oj#?`0(1ghB73^Omwy!Dy-5{&KG7O6DW)!wwLQn>cN)s8a_ej1RbzWBsx#}YMyXp zU=0u(6i-o9N3Qxw{+736vZxR&wnB`HgBP3l#(X&@Wy(H~WxK(!)>EcD`G78v3-DYa z_9!v-f2`OAVm#S+$Wi9OiLno$yhetFb`G1-m& z*mADQ0xtDfCFj%5tzI*vT1pF~$KQ^(hu`5ewQ}B2xLz>o)#aoumajg?12Hln4n4$( zcwh_b0MZq@tuukKEnSuBV<0BqWT6zfW>0cY;UojUX7-YhLI z`K!d#vnwf{Ve-xMYboC7-x0%gz)WX6Ezc8UJ1}4n4HWaO9pK{X7!#|jNKi*%C`=` zMe{`a9&jgB12Ei3%a6H-7dfea`$os2?as>?036*Dm+Q-Me?Yy}P~Vn=(VZh^K2wUo=fRldGf*Jb^@Ci$BsbRrh9P~5CY4Ll8+ zv1$~TZK-kPYz_A{6L2Ho_18imrAvvrAI7Xod*#OzbQwFAgxvTIuVqRn0 zx03AsKSg+DV>m{PJOLobaBOA@ffb8EIfmt06^B?*-?Ogpqi7fm$3ToiPccKlornTd zdC?9}F5v10{kI`f*2!o4Oo0~fbG4xpB_TY4S5*esW-7yL9Kvx?J;^$vOi3s<)e6Pd z&k}u2KZ_~y8YAtKTw=iSi6RT5KwIDRjuR@JVof){{D~4M4j~i~I-%txWF|p^!FQsPymH7kf{?WCYBf|F0OMjnK*=ffZ`T~ zVg(zO)#XDcw4bsKZ+6GBU|79^T z+ssx|uvzVb&gLQmV1Z~-GvL_j+Sj{Z_VRTSOMIa~G0UOhDOS&}7?X0~oiVlD~8RM_!%yIROZU=!hp~CNlt>hbd6JRE*QjLj?~r@Jv}AM%+Ld zje^h#pc&6{-Mz)3fMOKJ6C+zTZ?1(fWC1atTFFo;NTxn(|HkVJFZ7xB*aRF?7jT^A zHLgbKGayR_#~1>R&$^Iv>Ad%NXzDc47Ghyx7O^)u^eRtBR^QnDcP2UVAq0wn;E#Uq zZcR}Z5E~TZaqc=+JV<)S(&B@AA_(vWTosN*q^!@_!<(pDC@%Rz-u^=hj(}ncx-r<6 zg3fYqi~=A=DG-+c-%=_G#Yw-cpHuppY|}nUU&~7Rq~kdkF1I-o4-ve-=)^O$Z1tbj|YxfCVzK(a}+NY-H4p zijfj;Og>`Yv9U3ofevr6#u7(fVr<8@?OH$iEen~=t}tVu`2aBeT)x~xF=Age z$+ypFp8=SgXkC)7=PECtI6PG0bz}Jk&6ZE-MB%_EsYszU0b#S=-T~L!H{kXqhRCNZ zyH+|)pJ$9=5oH-_4Jc+=_m%%C1dFH-*|tztCRCV5z4`^9PU7$X6Yu$VXI4rfASYQh ziTw)PeMjrv>y2`x8$h^fSys(dY_Isvy zVZ-6wV(6`;xIA!dv)G{!nt@{jWZ;-^i}1xeL_G$_^f!e1amK=ube`?UhH z88OHVjh1D-^OsIBUb@48+frhLiY$fu7=Y71gJDz-h!Id6w+&eLAM`Hx6H&Y*hqqYM zIh2KTSop>iukrFF1#pZ&HxrPnQ0f&$+FH1<*$p2Z(rpU4V%AUMpAD8v!+Wxj=x7p7 z(Z)=ovMt`8tF$<7@!_&_X8D>*Ciz?=e$}UdB{RwSIAf6(^47JY-L2?Ktg}6Z<04Uw z7`vpBb)YzDO4|U)S+_hZzfa&h7U3A5GpJ6=8%P@zljyj{brgT|R0sU9)D z)yO==_3{)~E84Sgj*_7pAvnfxi~{Ja3XT)6a1jt^KrujU-r!Om<4kXH0Ja9VX};Z=pkDo(SM8#^|p`%|ZRgxi-bcf0raz9QYZfaj?|4c6 zR{u&8^FYaiAT>TbfXt1ApM%JYN2lmXJjZ1vWf*0`yv2Bk0bq+`#`{ZKfbnuMJjQGX zZny~OgWj6ND2wNq2O#C~LbH9w+R;Z<1zpW2O=M6U%0ed$h|wF~_cKjn0j|6($7m8} zre;8#1;Zxmi$O6HlmNx13m@{(WT`gcMV+bYHg0egnr>S&8NyA06B!%_ zN&!`rLa?a>5F-O#8;jWBI0WQMP@KYW(uT$h3((K|>Ws4{C7O^j-v7?tZy#hcuz1svB5_Ql9t*_c^#`2 zHVWnaPvvB?@39g8@|^;x-z7~6mC)4IDI>H8ZV#HVnp1DA%pJnoA zEIh^tZ*etHjKUEgVkizFI17a1?Pj42at)5-euQuwdymoke)+m&sj@i0sRl=;zKj+Q zgJv>-EhPic5R%PIydhQl`L6F_XU_L&I7;7b6?`ute} zFbOeW+0yBVdTa=`Bx}}$cUwoes8Kb0sUxp({9@h2?>)vZPeTU3Q-C*t;}DRil*tlc z`-xW-L9xm{LyaEelQV-h;SdSb|KN(!o^ zK1soabwU_`VqFi)VF0n3p9j+H-KUaZ^kyYieR?(>@p_$xl}oi zvcYl7f>xXSLPg$d|LEmK;S;6cI4l1I@E~&&h~pOV>e!HJczOAX%*8++V+|LN1~65C zDWa$y9(aSWTGmp4>Ac}FP1EqL)Q z9M^a{VqE1ItmFQn4ehOJ05LKs28glHD_(6Fg?Ug3FQ{dj=2-S(T{RwALKAeZtMXUJf;g5e#c+EO~q4VkJ zkN!}hm=tfZ<%i0u&pbi1C4&;X`J}02W8JG(xxIV#YCgsv2l2tk{!nb6sSxTF0x@Rw zXk2l;kF2YASROg%B__3U<|PJ;fa1jo6th0u+fxyWHI?KDv){2S|7)EbOZ#M>Wv<0} zo~|WT%(?t=_k>^;%gUVBNw|uarIT{-&5A0CD%vYBOPsNZ%_}>X`+E3avU{3}Gea<1n;>6d?YWas84K9*U~qIE3QRD?OKL z@Y6kKd5r;83wZ!W@#NxN;7JDTVp$>r@E!itCyjAJ;hJvEBl_E@*6W$M*Gz z?RKM*j_%vzMg($4r3_GvXLoq`s2kbaqxsly66Z_|b4%wc*U}}=HmQr3>6r3ar+ub= zZG}|eTFA(txHX9@KK*>}T^W+RzTJL=khv0|VYYn961Qyinj*XSk-t-wh4my=&zWe@ zjQ0EE|hoX$aFw4pHR8Ag>`BmDtWqX8s+Qc5Q3g_O75Q=(ui>)KS-7h>Ol@AU~ z@1>$rI_n4iXXfxlyGjay+2Gi`#0lU|IX#u&_@#gT7rJbA90lcJAxQzM92{-~Kq_CE zd06ps95-KS-Uu>$2bLI%rhqaH4N zQudp%?4`R<7Mc)-D}+D{3?twdkFJd;9D=Nw#Q|gCs1jx<3zQ9xLlJ+BfMe^Iy*wCt ztYeRNDNQ+mcuftC2{Fiuzm0*HFa?8CQy7D60V!~PE;__+8gltfg{ID);3KWYi=vwU-cCFGB?{I(r zfa_?NXB5yhIU#Vo+l>h90>z;i>7wJbGhJ(^2Oav?efD{7aNOTUse4HF^`P9N;5)Qe zOj7$yi&yx47q94cLk&#|&AmzAW>W^Sz_8imBLA|oY5nOLe>)`v9KY?2?{FXd;D_8F z{QX-ev1HS%DyxwfCSer*2p4o`pYezn@x{a$rwVqUUb7I2ZCE!%NW`B$5(e^Oca0I2 z1;Ln^4F<=k z92}Q}XMlLRp%Bk&YS(^{nvV166j&TmfjGm6KYV-njqzSdTjh)OGBN(pZMe36G4`P> z7Z-0m<7ozB0c`txl%dWrMQjItDa$tz2GqtS&xJ(&I5MvA}XR*?NzQq)y z6M2}nxlmn3)-ZU?g3?$5mH=iY$V_24!%LjPuz8-vEHCXx4Smu5vtpm^bDcm?jDTT0 z#|FhfaOf>&ec|`z3-0ePP&g)Cc&$88130EUrQu*i`#XdW5>qa z8K<2lfV|o@cdpX3e}w0Y(;4iBnaCp%lXEOsE+8U(8WzY!)bB$m{0oeXI6=ACBWX{z zmKG2AtrN#I?eE>EeQsO0z^xQWpG}28Yzm|L`XF zrvLn8@rR!U+3~c7h%LS@fMN@u(9v}qhA=99k zWl}u0^pn0|+`{k@1I2t>;g5_1 zgLjvk2nLnm>1CPy4Uhp@>H>N(mh~7!vOLP*DI^7ut$ymZ{q6Qw7ul4~rVxrv79R1P z@Azq)U;peK?iFYLi2^Z39q|~*p)7_t1Z@LkJkXeVkpbdTo@2IOv-yKl;1~hNmEb(o zlmkde0np=D7*qF||7rs1)Uj5vM zDij+CuUXmQ_K!8_1SCMQDTLy-wl=j5Yj`=-f9?mOW<0Wn!DE)PyvCn+l?TickO>gq z_#*+nrx*WJq6*teU^Rv81dtVSBS0<-wm?bD;~wAIBw=Z5e{tE_>44~?rULHSM zPHenyx0?_n9UUEZ%~FPPc$PzN@mSv;1>)xBg|0;mC>|X?D%&RAxIppg8#V}(OzPww z%kdT`qhPdju67Frl$!zO1a=X1cb;~Z!YpvSe5r?G>ldQ#))lK=o9u%v>FU>J#Y81y5SF14mAp~C(hep_X2*ssD zzmG%AvAu*BdyVNU;L8O9)Npa~2f?rjj3w(YRu9d56S`ZB7!$r#^V8`qV#HAK(>(ig z1BeeepELZdw5fgsUGrXI+UE}d4>Iw_Tp;wT?#BqIG$;-Q5aW#niUDHmo!75Zs|3U* zgI^27hymF|n8Y*IeI^aFFvW0;LO2d5DXA8Yr+~3RG0Qk_S;JIv6o*o9Tt=C2oB%F$S$)(MhG>{g0pt>Jn?h{_$LWiKCH6yM zs0YhHanHouez`KZopDR7XEB6`y z{9#=|R~CQ=ChuTjerLA=v;CV8@EzKDzdIsE+BA5;%@-qOLefezFeu+V(=~$14DyLx{&(TKrGFKe60`U)^( z)^C*6-`P^&HRkQ+&~wbq)u7a-|HWI(&jUPExJbBN&`)3%8vF5cUh&G;iM>YbYO#xV z^o?>Of0 zay394#{Qas<9Gb&Bh(OWnMc`PtTRA1PjVP)fwJO=LpZKRQ^42+Fq-y^ZBjV4xZF+s zwz~BWAV}-2^3?N2X9%cGUzb&5F zfcR8YwL`#J%<)V|)=0rOgkn6kH7fSLPEpuS2-^`L8{~$7TndUcT*DN=vF($!A2KKo z!#w61iemx4Ci51PnzFpc$o7jp&a){X^xU&Ix--u_!=1k2G`C^hI%(hESnY;HiYIxp z&xb)+epAOP*VMU6VAWsVT)1W2b)>(!~pShJ<6yY6o(4?7^+-O{ zsv?Q99)t#$~wdX20RL$P{ktAt|%;?VnAQeis@9LInhhH8|9+f2p# zWb7A1F`n%rz@8(8US9)XyuS?H#$+B_zWFtUUISm!dmgh}U&hPY&-Cako}Vnuo&er^ z@7?6KZrSQ~Y}@9xZ{Mx}X)opJ=nb+?Ofljn)!4B*@gO&7x%pk)0=(SZ}Kx}5~I)j}q`$}Ud9v>Um5D)T~FJGqR1_t)) z=Qt|&GS(*!A8<$H%en0{o8o6`3#GtY9FIg{fPC9ee=^1X^}pYj!Z7yNFZ)w9VA;IH zyXA2XDF5TjUovYShx5r{P8(3Fl_E&0%&e0pk{KfvgQnvlQmDm{cXHtjT|Pq~+4`P%Np1PcYJky#zR$;##qn@Brc@ z!l-0Cv4JxNu*R{&C%f<(i$R02*O&tWDC3d&q1boDel7s~F|lJ}J!0Sg=J$V?h7=eS zhj45YX$%gJKXqba5|9CUO?G)8gJre@zkIs}gb1O)@bqzkj7xv(>M_RK$_N#)r}$4E z=ZAl_un81;m(A0Qm4o0|_97mmS{NWBX1TLAL+>%Frv6&I#wi$EjBO=A485%(92*RW zKx}&by#1*$A_Ozl0k^Lm+MYu0`@c-sO}6j?1H4!Wx^-^780osTYc(8Wz1Z5dYuuR+dWZt>-n;Kq zCPzmg-Jv~RF8kegWOpcUX%&1=t3@)%a9K&XUXcaWeelL*cVT*zHHahqEP(PEkD(=C@hPa%sYo3C7ShI)B-{k5Oaqa6Gi9OEU<%17aTc#?r)>VNl+ zJ7)E#%5~jq3SL%80bP6kGF`Gkv20K%CN&`DhDGQF26UPMpZmr7`}!sA7Z~n$-5W1( z?H%o|jeAwQ2jZTdT}57E5TkXWhhptZ1{9Bvj~C!aN!sTR_6Ad1TPmA9EGIF?lE-H` zdUQy)5p!%KURa%J-LoLh@#K+jtM28a&3SEE@q=Qgy$hGBjVVGVG+nY!9XvbU`s7j0ucUu;vFVM zR=>WaCx)juokl@YZ7*pwxkMz}7qDWeu&rQ>oBX(q{%=t(744tyqt|Cz?X-m#xZG$H zY|DE2?XlNSjVG=I#Idpf+15+J@pSt;o05Bvg;ZR3{dfQ8a)Ds%#ozhSkBdOqAQ1t0 z257{=jvOqGg^eXp>>A~p2-nEb;bC4*0ERK(mlJ@oY%kamcZ_F{5Dv-{;?X!+hY3Dn z8SvsQHYhfkSC}$Da0tbOK>)&deR&xU$R-75@%Zw^A%`_uZ!X$jXJ~vt*yi%2W%-$1_Y~u2s`eZWcmuj{GH) zh6=W!IJ{wsC$<*&3_~``z;Ot`sfYUMPpb&WMSZh=(Pr5094U+$MnEo5i^n&FUz0+x z?Cq(L;jT)%#O3eBW_ z0>Z%Ximpz#qO;R=b#}PU_D%C^{uYcio@Ae*Ag%kN7UgDO83*GRDhhhVf zB9nZKwsl?pr)5Pc-1|iH38P@TXk8aGZ?V>slnC_prte>qrx{C6>08m;o_yzO<_qCT8bXmnBit3(Xf% zu}wB;xulTy{fb#W*|s2JUt0~A!!p&V6l`WeChHbX5ylhO0>rUO!Emi`d_17oBp|#) z?56+z{1-Ao*koX6P;Be-4we78-@;Zn(F`Xk;wK40Ch*{y@vR!KFc1v9FgzRvAahZ3 zY^HGCbY$LQgJKlN6o=cgpxA&I5N1qdrkDn18FLsI<_klXA-0EbjDX`cmw!1~D}-}U zzlBqTaE$E5z%0*qDHR<+9jYw>MbcFr%wFi#**Kg+@j&B3w^JTCclRGu%aVaDW(wi> z|J!?qrePkT6&CtnV%ho>zA#7rT|GBXfnrk_@?i>Ln9mk|R#Z(G1uwQ$3ydc_L^qvP zIRD30r6AORy9!9H);k<(3a}?YOq*%DRkU3X@i5>GZG&0h76H8>6!Q{YB}0_&{A<4t zL$&?*dtX%VGWEZ9-37D$@EI34UNk)DT89t2<|7B)!l8r79lb#z11M&BsOWWelPAgFg$PeEvh}$T$1OZ!;W5@JnUjNS<;?KJ z>bStHO9puwHw+BRioXtgm;}&GU3Z9CngVxX!09|$@aNAP%e{RAdL2CWJYwB_y|nxJ z`+{(cWEV!$VEYg6?(umjNt2JEVHD?gB;zwDwrIIOkG05PGqh^|&PzdYuY8%xvMd3? zHd=*QxjxLKzx5Qqy4Wvh2Ezbg2!Xa9=9vICtkRd6iG+;#f8T!nC7qwPc)5-j>ugdF z!Y8xi8b3AgEgQ3OlnYQ*2N`f$Y%v0e!_OK*vAr;7vBD^X;t+^S$+lBxI5`KP z{PiE)mQDj5D<0;Jm+%m6*CM-5r`pqRFJAiP(^{L=(9q~%xBcj`Oy~qI&B`eR;eY7o zSAk-MP;AO-&$KtlC$ytfS)ka4WDB>Kt2;|WH+-$Cv45)_9bzt3ZC?QYu>Tdm2qdtW zjsStzI2;qW7H@H=07O#=#Z2ZQCX~WdMMy>5Cd(l-vz!IRDG>8n_>8tbhXR5Ldk6*O z8uWhpH)|_e2+5&08P75G&xOKg1V1_3I_dnb)pBDZ{NSkGpi)bK7?9}e>r)RgVx1T1 zc5dG;P`tBHm*h1!wwh!77H);TnERO<3WxLF%Z<`;(6n=RofCY%BR$%ppck%Dln zk)|8e_VqTW>58slO@U<$I5to5Q`Qz9m~)}zu%(b_W<#y%@s|xkxPA}D96VkCVTEDg046E`$O!aj z20eh7hvFGx{Di}LUB{lqOB;qzyziHV84^(l#i4*x8%x-rm~!QSxReZz>5Iuc$2R(e zd5sN@5mQZvs@7}FeY{A(BS4IGH~N#n6x>nVzYvN|+jiZjMm)7yHDYS!YDROYWps$SQnh{IGlu=IWjbnw(Lm{#z@iw6 z%PIm{ zp7%#TR(sojd{zzFvaKVQDQAk|nEGe?0mN`?W{sVz(-a^^0HZ-MB3;igYm$$*cmOEw z>H-;jo)}Q9N+`#BhXsfQM2{XF*2y}M)oD=5I#A6AR!i#B{46MDwmX4hl-7}?cF@wg z#5y}Vw4Bx@ic|7y-wdKK5Sq6yr7i_RgUc zlxIUa$we8(AZxJ6I%5F?o175cE~cQ$x?fcfF&^P`Y(C5djA|8WhGDlE%}Zh_;uP$?(|h;RFD=}BE;NDgIiT+PHD zCxR?o0;tOZUx3(VV=JYxo!@o~);~q>U$N#TH-)ir&bG8O;oQN)$})I}iDO{{@x*+i z2DX?K0-(V|%pB!sit%(J29}?B>oU_65E+Mxmr`1PQqLTD5z z{32j>hES~gikTPMtO$@}1^bq2vj}=k2^^=};_ZPZ-YlPMlhiLzj4VAK0&MXD|L8|Q za_)ow;Y}36FiHVADYNg)x9NU}I_6T0V~i9)F_z`t&oW-#!#lPF0O>_p9xDC4y{;1| zp7bwmlfQlYHqR0OuB-#aBLdchVJJN7bEUX0#JWK-3iIuSyG5<7x=!Dg3l#V6^HV?@ z3}->HrSz9NETtaJr%$qOvB++g;W+db8z5J!a&SycGC+Ln=RZ)d@oajIlfzs%z8qIF z#WZ{(Sti98fdY}8?kr;Q+It5jO|A?%H|KUXyE_L)Je(#LE{E$`>E8bRZcpC<_t=fA z{Y!MR3A;$1bJ|u?E;OxI3hn7XpzG`xbW`%oY#&=LY&#wTa)Dj+lqXHSmii9)7fV9{ z(KGcNA8&=Rv?id?z^n>^FsYX!i@n4CdIg6SRNi@ zygW=2g12~MVk~2L#mGGErWlA>2B_owEX6U$CSr|&<1DW+3W2^F zudzKVibO2&0y#0=OZ;qg2A`%7I8nG<&ifmBldFMa1K9AzIBVP51ZMGM>zV zW`q4>u>fL=DGvLetDssu#i2qtMx_9CO1J`wz}EInmr+u0NjNT}@Ws0+$^zmL(nVn( z=E_r?C1BQ|_=@Mf(mnREkCnT_Yy3t5Uj^krDL5l3M|t)$IG)QXp#c|#8r6h{(`0>o z(J~J`vTPu^VZHZg+r>CfDM%z;-o9hI=35=a4gbg&K{ouac+6VFm2a4~n z^%NdC!X{8DZ}F~YU*YyX?+Q0?<&)f@tDfYJ{@#<^*o&Vme|JxI^I!H9H}93LuH_X^ zaSLD7S_H>bZ=TB?)yIMpDK|HyJL2(xRBJw+z_%I=pmBqUp!|}FKDtH#zK*~DXc*__N<|c{f7%;|*Tvrj(8;%GO zLa}{D^A_82#+?Q6nMDtc9(-; z17g#%WlgTBWiYKP*9?__EHbc-l?laJV&6}^N<%a>OoI{k5^pWB#6@sig|~Rd3O?KM zgkykq!DBz>UiRm2bC12#kK_29SG>|a=a+XW_&)l-->-QlU6*{eQx35oUS#T_zPW_TWCa2k$4kz6jRY6e3GzcBWfkO(vM%U%A( zQr0#O+Ya^aKL+eW}*}6MLW}R>yrUwEl`{Vwh0s$0kMTH zWW9V>L8ZLZnJVQiKF+%8KcX8Gp5hPwhx^jlfZD_#zR+!b(>rw2=FOWmWu1I0qu%4h z!+hqMI2wF>@mvV(0BEtH!6ORAQ(@UJZCLM}AMC>mcU>Kw3HS;eB!J6rkX9cX4Qsf$ zX_@3VN@lD>DYWYUeci~1O?dAy1`xL|TPF9015>_eQ#a!nQ*La`k2|~AhM3F%1W^3BdyjB(WXYSKxh{cM@)Br8`a6Ow8j#PE z{4izY3JxaL4mU9bt;?>pS4CIA@ibtg5j;Z2`rIJiY*s z#}%!qw5>zb>Sv_H?8+cEhT<&6aBNT5OA`k)6q= zBz(28QMhC&PGXG}26lNnSH~z8<5t4585cO)0Uq-rmxi%vioOH5&sg`F6nt4X@43Ng z2)|jMHC7n+OB)8ore{3cf{ znzTRAv(34qhux$YWjqw~>!ycdM0s8Sq|HNn{jgl@+rF|})433y-J4%pn6d7PYY(`m ze&K*SmV9ZzD;x^1@vHu~;K{~g9P0nwdc^(ZC9Uq?elz5b$-dP8ijBoTqt{dP(oFwn zCpEIG&nfgXxPm+sC;I`ZcwvETN+_^uDqo0Xxl!N~09GSUN|^z}>}%Jp!SEf4-Q71T z=d>ZML(>VL_Vylf`^27j4uc7JUDPg6Ek>WH$LhUXfSvtmOP95MX|JQn-G9)Rn@w>a z_^WsPi$bi$6q|QA3wXo4Qe{k5-^m8Z=IsRtu@Hs+zjlITU zh(xJyix9w(!S;WQb?E-)2{v1~s!a_qchC5w8p0FK=L-#$%F8u7suhasC2co}EiP)` zptzKRq2G`~x()vp!7<;}XA6#j)Oa>JLMX~9Gsd`#!k6{3+N-Aw2JPYQ9|u7S{faiM zTd!qPW1G-TB`798tL|c(6c}EpP;6y@;{E&gyMqG6`^5m_tQg@XUEQvAd6#;M37s%# zY8o4M3&uuts^|Ofy4@Yz+oK@7XWJG{M-S~!`?-8Yx9jR!;f96>(t2l0x4oj>UH0Gm z-NQejLqMtU7{@Ri3Xd`26ejZ+8%X0Z29D96UDWD6bmx$}=AL4&;jAb*7na*LDHSc)^S}B7Em+L|ySJp3FE>J80tLIIi6_9Np6+mf}lrm~^d>SQ>Wv+n>WIrvh zWe9y}a(DKR>+(IlqiU3IlKtjUm!-+_@1C>5Jwc2fra+w3eMhgZ9*`=Ne7TOKd}9lIveVKfOWfMC&UMRHtZ}EEd!c%X0WE-gpr7ywUpK?fu}^bL zp`Un)k@a(Mj4}IXPZwV^;C}V8xia%$ae{bN2f!58x&tLEVrC$=fXGM5C$$E=*#&R;1v zlj65YXQ1%2)(XY7$U-X28*QFwyv5~Wj7@wILG=o!DEjN#F*4%z9x42MX0T}BX)qaz zJcHI)S>Y5`j{!2?-z?eoP_|CJ_7Yy)C#&BqOAlliHUY&a+5{w}r0|)*aR|uiI&fYB zicOhdZXjL`iYY?~N0!$ZC2-sjgdok9G&Xn+gtz##)pZ~7r$`1E3L?omh5$^&w%*=- zDHKm8LmdIOc!gW#eh^LqLV3a`!n&r`IqBNhonDmR-rnvG?BA~sB%Sy}^0h88fcQwS zz`AUsjg_aJsXudebTIXFho;mq*3|6An-*%iT)=mkSo7lL>KR_W;SATZq+LG3q^>V& zZqdm}7!Mhco^2hI!)9=7vN&V(tS|YOtcf#5FaG8s-3PDn&Z8af&wt>b32~fpC_Kiq z8A_p&6Tnvwy=Id0;R@|4=BDnf!TZa5%S>MQrM;~+7>&nbAj8~wLq88?`-s$B0w0kez7n8 zxmN&N`zh_&GO&Jr`vP}?!1Ub$(v;iNKP1w84zWtb z`Jyn4f-eK1@Z7#7@#3Oz2D{D+->AoJ|B_dvVH;st6xV0UI!7oB&8S8EZK{gGC7O=7 zWlR00YTyyL4ZX((uvyTGtgUc_iC6}9>#-@bN4(>Ly1s8);m_cOE1R72r$IF&{0 z@r)-RNj#+GfD~07LQyJC*gUfd0A~Slr9PBY78Ga18&`tko^2De0>{;OaCxaNOL&RR zvQ%onP_yAdwhL}bDlK8_*RAL2;Q9oLnaG1TxPfAw)sBaT7*ITvK(X!1K4G0|k`K5t z8U_0jc0sH#qe~p!x5q6wc2qsZKym-J&2A77-rM6-17g_^m|eBuEUgP5*7ijE`v=^> z0O1fm!}`O-A_#~E-ffW5(L)0|4s(BBukO=$L6uf}iz2z4_aJySR?)v}w&t1oZf1@wpS)B1(Za$(O<1my0k1=pOTe5SR zo>%*)Q0!l1yrX~2T}XI>Z2#gtLu!B|K+LdgKy2fGl;VmLO7AuWWtQecO;EF#(Efw62#uAm|VV6btym%UNay2`x8;gD^p+~+|t zn8u(>s0JWSj4)pun8YJ~0ne1x79M4Whl{_QR2#xkN|}FM2M$iSA8$IG0%NtFRRdUq zS_Hr%yu5LkL#%~MrUI_*WBXaXChErwkjp`G=qWaPAZspO7Ay(Hz~?kxcnbl!2#Cu- zan)ds49=szr64W}A)LBRz;QhVlz!r>L5IC|ogXm*uQ9QCv4GrKEf&MLnYWl(sjTgK z!?FDYjtE`QRPOtu0-_4VA|~?a5`YAVckS3IwnO&ualz^-9v)6_URIY~%$8CoZ2`rI z@ChCvY-d~h@?{Fec!hytr0_-mtY6aR3IXD!E4saxn3?Qk8$gT!w-|lF*dHin^a+Dv z@>sv<(ucbCj&|3#Z=V}FGUSGmaow%|v!(MsGN2w~#0z*gzIb`&$Q0Y&cD?)DQ$OVH z*|W&~f9*HAW4G^cKmF8K)js9!)iMm(_U4B#N=K%!7w`zDm`wq#O_TFn6Ho}$vM!H= zs|1QUQ+Ek)0>wb>SMEM4Wqmn97&iBgy3Kn>{cHS^52gafRu|z8N8@uLfdLCY4B>4)&BE9zHe^&3ky~hN4j|mXZS0Dy{ zfpF>os5i-e*yg=s3C#O`E^n{P>;9fU5=Kk_!4UML~Fl z!m!BFxs*XMdg--o3aqA5a6A)*P>g7Uc2T|I*n@xAA;;Y=JC*VEvZuIzS8q#R~Y zOx-}SJ(&jj{Ad$dUSdEPAf`^%sTYv%T;8sp<$l@MVA-^IL19R-*^qgR!%&J?x4!IM z?xq`eyN#=kxXT~quYq^oveJEI;8D8#$q#(gz2(qPbU7AqY+mEp5`JI+)@=S*gIgeg z$gu}jFYIVkSpMo=!zt_%lCVWU6Ys0;4_Hc>CNcFE%cD-yWZgn1uyX}eEsv+pd5PCn zuQT=$qaKA}QmKn=04;gvb_rt31;aJ7DG9p(lS$dG5G+u-#dpY0~w zFN9*#$pXiK6>w~^t05qVio+g}roFP8^SLrn@Ww$CyDa zVH2TPH#3!j;&QRWfOWN#c$Aaf)7^Qu9o7(t`-g^8I5x#zTV$|V&O;k21lvmc7~tAI zVf)sHQn3EviwYxL{PFGcQ?GZH#r5*}IS%D?GQ{N0l{9o90@DzPV<)Zl zl$mVVpg0sBW7?e!I94DAVx=|%4K-OF=<9QfCy$kcVxWQuJOfL+fmt2uC1zd9;3+0- z!k}2oNV|+r%usBsFA_*z+$EL(aadPNi=Pf!y~Ig=78DN&0GpSXmjOfYZIynv3l!^k z#`0Mxw|{R>(nt9$EsNdYX!fW)b1A&UCcMRnyn)U4x$nH{|LOWIzbQb`Tnq4=FSq{r z0=WwSV*$wLoY&$SBwu5Hc8kC!>%{2-$HWxlF(%|;{=__iO)*mQ zL`w>so+DstVG-=J5znna>Sh7dI2PIJ#gluEfOvzf1GRPy-LqFZAluoG7X!L}OtJKVQVZ1RQ9ed5=F9sY#EQDd=vJqu5wlf+9!?h7w5r$XT z7mv5S;g8ZV3ScQp9IN=aX-DzTrv`{Ah(<7~o>&w@ra`Az z78D~LYOMH&TBs0?vqB_7+4c~SO|$*NT`2An zz>H5DT=ya!o=61r3J~0Si-uP4$5ss#YwD8}h!IeXmzXjDIZ(`yY|M~{3J~IDbuAJo zMhnLMy@dRJ9c`izIsxQj%u;1T#tln9DXVeN(r?|DUdwtqvtQDtPAGEpaN6(L($T9Kt+zjm{`^)K&px4y=QTg--Z)Chr2Kolr` z)`iXLMcuS-TtgNBMi$!L#TRFJ#{pPV zIIJ3Q9G1`Wnj0Xq4X|aIeSlf>Fq^Eb9e1F(oUB}y*SQ)M{)!VVYi&_Ly!^fbbQ&-| zZfBEw&?e4>4?DmkYudb3{?NrjU=BkcP$f_C$e}_wgn5f&LpBNq7D93ezoBT?z?aV# z%JOr~Oa`SkUU1Q58bNr1rhujxFR=l`49QjsibGX`<9Jv$T{kF>r0pRCArzPM7KfheddhA(_HbXfxK-eIp1zQ__PmP=4}D%( zJG|c=*uK?`2`}d)ZRPo`-`0^;Jroa(LC9gHs(sd`ti*r;kZ^&5A~glis7!_ za6G~NLnN1sV?rPiZ?^&`+=N*UL7CKmnBipjL+0j}{q1!QWFtucw+6*AOdIfq7J@Jq z3QsXW9LmB}LT@p$G(Io(!r%S-N;|+}*)uBD0lDF4DTGJh*hZc(8DN?>7C;TX#pR$F zZ*d64D9Zy4jOzm^kO49R<_+lodrR@#k1so;{5OXfm~+*p7)qxo2~RLMHb72Cc!;1l zhTv)-lzmcQje$7y7K^mq1kg*V6cmTjNkb}q_GxI>j%~?O0gg%IkP4Gc{hZ|q4pnNq zd5i6(yBLbY{>)VRqLQS?`u4bE$=JfYkY-T4cX-UTbglAZ|0ee%-~g|y0f7O-QD8U$ zVju(o#2xEScSTU#-mXxLtPZ=ggmnVNR=4JhZMo}qS@(skKkN$>bMK*FHtGcVgj2A; zhHNC>X{!?va&h$NkV1}rrX>G($vneY=sCtNzWf>Pj{m#E-SOt_?zeB+p6oIA;usO` zz_s(#OXOK18Ft*hcdHLAAY4JgF@aFPl+&h{g_uF`nF7IQ3Iv}e=^4qgm7z}T>{X2d z+XBT&I~db3pS8M4!y!1&c$V?vY8h$wY(gj`53rq-bwqryZWlXimFz3)?8~*K*O!zd zJc7k@r7w8ES<#qc_LF6WVrjF`5w0^9=0?1X_wirut_a7aJj5pUr=F8}B#KhPL&{J5 zS;Mqdt7FN8WTgA#i@1mz7C-Yad<+5G2FaFUl`09}brRm%H~jR16h;@WdYHTRHHB~9<~0Ul!~77AOIaw&zvGd2WWqM}(k`MO z^oM?F#te0=e{TxJ=bU}EhB&lzb?c*k$M$VlSv&T><4WZ11j=!Dg2p5hSJtxoE| zJH3Bkz;D;Bz71_t>S5W3WgLISo?%7(=2&rw6{gt#bZkaX9%#e z8|_jz+4o8N+9#HG`}klgJxc(3a}tiBjU+}s<kP&-Pfs` z=S0LE^S56O9Gl{D2F28KGL1x0N}*TO1Q3^kVk=t?5R+lr-I#!JpWHh{c!2kc@i2sx z$;1HR(C`=o#ykLu|CsBj*qe)DFFFE3f!Gj`Efk^}%c|29LUHIVj-eQ3g;Bio`s%#K z{JmE#gXI;=ieWPL&YB+j^mA*1;(u=F(v*-4pxE?JS3ksk>HLjq-?;1&1!2tKn=}ml zC?)e6=P-QY%K(@(1W|)y+m6ERnXsDWEv}$yyv4}+Q!nAE#Q@Va>ozEyj_molnhEc& z!SVce{lu*u`i3qeVAm{5;r7uV{h`}r`b z2Df5Gm)wke)c^qF2B!ci0AV*OwgIIr0>NRZ1dwbm*dZ$q6z|^SLoO67BoAYxh!BeL z;*v7ihe7c`GVLz;yYJte*4Zo|ZX;QQbs7{eTeeK07^O4liM8;Vl8_4PCt}<2)S`=D zQsgOa+4v%N$)lf@Y&}6F$LmR#@KT&#)?+3qFskcvjc8sH%A!h=GXz?FK}nK4Rk94& zss~xX7yAz36S7Uqik%^O7% zNj@dckvi^8>Q>Ki(lHOkgf4RZd*h21<(736#`T{~8N~8;|H*%TgL}k9i!)Z=N;Pn`My9_E@2( zyA-ga@Uzih_RIRLr=n(iWQ`(FEvGVGWA!>G^{DsQ>Pq0)fVAqi5~Z=lB8w}o#aoPu zJmN`z7W5ZlTc;}?8iX$Zp$5Vs5F@tZDGrwxet%fuxNFOsHQy9Muo{wbS(?XL19|pyg(NQKOC10UfV3%^p`U_~&#&UsT!Y62x zVdW%C`v=4W#r=B;`SAPDUjS)wWAVEf_13#?y2icb2VZjUzGdpqkETTzzSs>fe7Jki zApEE>m@|2x;a zZ%E*>$)5u~fnq306@;bU?+FP1j~MCy{(8hUN&)_zDL}1IEz*z(sfd5`k`oBfhSL6s zZQDI6bxg?loluW3FYGl;PRKUNQ}~&5XRYv1OgINX4IFL3!wlGq5q7b4_lUMB#Zz&; z>6ZZgP;(>x-kmbW#Q zol-o<2M?>$kB15%Ou!!v+$Kh-1YTkC@e*$lgIJ+HgXQ9zc%8&&3_qWVyev4jA>4r4 zau${`_zl~kUGhRGM&#S@YzE25JjEdthkEZj-;*qrmfhD=8Ca%}d*AJvBJ!TQYH6~T zE!+PCfA%U)`8}WiR8AXHrFhHDGWb)Y;m?OV$@2+H>wb|9;*8T4A&~o>0 zzxZ$Wk3ac}`^TSN@7{Ck58c~-_SK|Bb^2(}E$*Xxe&Md!`%Cwqy}xq*+3x{qr0E8? zuXp+(Z51U4TaO!uN{*QvZuQK5|5wL!-K6=fi-E^1>(RA*t}!t{`+K*J2oR6>4Pts- z$$zH_lmgURuh=#LR)E%kR7aA~jZ(MNg#pggv86{~Hig^y3b%Sa$u{a>*?WrF-l(2s z>b!psiq-wIaU-y`f6MajY1MP3Ad{E!lih z3NIz_i-kaJ&}`n;EZLubn(DHy=%SchVfykNVHJQdV8zd#*gax+JhsX{ywx})DdlHH zd_F!)=ruNA29B|B-RVObzP{r{Q^q%DXE524=v@`oo&Qx!uo`isYwpp--g>A>-;e=#xzluNxDFM6zEYp}R8(E2f=<-eJD^}10&z`HT!l))F-icrR;6BJx$Mkqj8Y&LqfEIF z3KaIOXQEl*csk;t5PNDv8LSfLi)G2+c*&g?>$-V`u@H#cK0R6zijlQZ4v^7I;Mi_D zDO`v#>csYK+dMobc?OawO@n<9cuhR-o;`cqeYgE8%~yDlqQI<%I3#tAi~y{09WaeR z2&vdWf4{DKkFVrNUDV+x7V+inGXTA%pxCyL0OFG0x3@<W^or0C$$gKlZdQuj|cf6cw`w?B68zw;;V19ywvbEEsGw`9@L8~|M_DqxpMrs?j94MZB%bA=eL2Ba~DXjCpmFvcjF}% zfaP3}FJ;f@ZgOX=Y;vdLdF~l?_wODRI34wMNj;Qlk_ry&J?tKK$x?-3G%59M*#{I0 zK=<(F$9slPUoB89>y1({g<7#Q1bP*USKtvQ26~orIlnUV3%sj(c!dn~~3ZWQdSkG@t!L6&L(gfj{dN8T_My3AdaCJAT}t*Ta2>2yrpD-j8{1fxu{e}*hlO4!qEp7 z94Cu2l7gUsX%P@l2Z}4ah*y(VO`WX6>P8k{9K&&@mpFi8ga2{@j%T9STMU>o!G^&q zFj@|vfn&_znAqS@<$%~^ZCIPM9|E#@jb|bqmPj7*J9qAKt5>dc3p-ZIswWLDOr1S0 z@xro>`5P6`;nxvhX+yC27w-J?6d2_l1oQ9`=L-;1hwd-MNXL&Ib4wR5W*1$jJti0- z#ZzqUGde~(?y>%#@_u@1wgbfn2g*Qkvd%uJYo#BuZN;j!`hc9P5e5v3NlgaFq%##> zLeaV<(eMWrw)Y$r=$8E?|FrG}vd;BJ z+hVdEkUed+f05I!Q~F6c>LTy-?uBlLK(cO6OaUKD%A6);x;y5(Ci{>xl)q0imq%>dcF z!)AZ>`ahpyAq<-t42Q=a&^91uXg2Cc7E^r9<`1TIA?mKA6pTZdWZ3}O^0U0EglC^i`shqCr+@#ef%O#RiZUSbr0o%8&Q>aoYzR4+K*-uORt8@XhP zgkd-LjBDI42l@NIlyd~}&huW?4Xc~n)_n}GmUvcW2l9XMYx%5Fo%=uX8^^(sGJxLcaU=IfBGtcRDtAq=$W@ zu6)7s+_&y%m;$$~FF$L8!mt_ZS>@QDdQezDX{-|ojzg%56#`la#i0OZ%9RVJKwKS~ z%0g2USDlLA{~=L;>};|1Vg!8i#NwxPhHKj;U*fBe6R1JYc>Kj~|B_ee3wYtoaR$Qi zXClu$$R>khWPr>u4K37@pZtm<7)Iuqwsy^8@ADHE`x*2Mir@Fk*QMtLZ*etHjOmqn%Ug(-^LkUG+3QZifq#N4XqaYD_XbmiZhoK`wDTD&WI@*L^)%>n? zr)w-Pc?v4JWhxX;jQJORDF=WXWU$@f7GpmRpGekG48^?Q$IEu?hk&4k%^r$%T}tZy zv?I21)f)8>wY4sCD_8hwPOYxFP&qgb(-TcF<(X?e6zlPl6UVt|5O6)MyGh`7L?Kpz zmwdU#8Yjoyd@&Eaa`0tGmf24HF5cH28UyTfA`tdJO@MgAs%E!c;8tJclZFon6muRg zeNcyhlwKgsCGIz`as>Z z$u%?=*Gmk?SQZ@P72bcJzb~*2u^xJhLnyYo%0cmoE`wq70#}m3BOq6;k}09>R71%? zFh6erS=?Nxl%GGpC5A_(SKzo=Oo2<%l&tF^;Mf#?0pK(7`C>pekTql4=MZ$WWG~S% zsYkqjmhckWZhUECgJG{lH6cnRZz1L3@ z8P^qy?V$ne81cu{1r(R^6qgfU4oZDN$W@~P*fk5|d23Ng&um5;swAzdy#$W4px7X| zsNG;Wvrp3y-q)-C<4#R2bi$w*7_~frI17sBU0T0~3vg_J9EMRC9FrIJce+~B-R9H=c@wUa zLa#B3;kXne*P>bV7AF$MRr}#Dhcw(lLkrf-SI9K@_1@x1cX0Qhe|b&H(i(FPE-arW+kI?u;j?VMr}&)Js%pHkA-vl1 zi=Mq+A@{m3d?^LwIAp@s*-kmivtL{nX(gQ~UgH?(LQiqHoFxmT2!S&EP@GdulLbA; zwo)ichTSTd?T+EuZV|gljInL;)O5;zdJ~jXuI!l!n2cXyi(`$Ed2fMZ3u(xbK`xM- zWmZo)QNJ0&Lu^3I%YHyHKpaA`#Vez7U>>UIo*Y7<0kOeiXw?WXz3sz-`su;-sAviW8;YUun}O??~G#P~5kDi#!4RpOS&* z_!z@*6`l;boNTi)b|Ygrwb4TZsh8Mh#iacB_?XrW6tj*on#BQuVx?a(56hP7u0<&m ziqPgV;)(@|tuN$JH|-xA@m@n4bpp}9u2pMXYfFpk1d17zBN>_F(81!#Y-U5{;JB0r zxmrM;3n=E2;KjKg-^#BB2^0&U?$}A#0stujc!5#iS9fY~mtEE_%ThjpVe%jlpp$>6 z2@JEobJsC3W~K8mdZ=f}?e7sN7I3}fLG8YML5TT@pR6#CJz@yCi=6t4v@4Djc8g;MiV;AJ zI7jAbCQce}akWs4ru=moB$_>WVq6V%w-(2E$7RduGf(X(83vIBx9@+*LbXZ?0iHHu zH7_k)M>YMfR;`aYab}6Cr>Y*-%>Wl@H3*e7l|X1oIIcxuJAr^=h1~>-P1TH1Tx(ba zG0*jYVuVKo*hH41*h3sn>XD@^uW>0)auyWFb=z=o)(84y3i~@9j}B0S?%Q;)0tT`n z+VJA>&`7f9mz<}E=U~gVxg&EmK=){TyidS^4(BDN7 zZ=nw!?bkAMA%o*E=Gf9w9^`U>3=q!=6pLu!hF{3NT0sQTpmt4BcJ?O#9C0(x9fP%E_v%SZU zl?+I0UJAv`YUkH=N@`g);~%44Y~SriuP`XyuzEpZKQZ4aG1jGy^-?eU1zWTZf8E=a zIeh`2i@F!2Rt}Css5P(!c+G&|r(Q6brkDY7ydPFdVV_F%XRZZM0ksCih~;n{C@l4p zzbW3QlsM0cSmY~}89#RsW5z>)Z`0g-mWlBq9xv$m!KUjZ3q1fpLpWyIYs6=X!I#hm z%toKE7~l|+E17wOV?*|`Ug*h=zm(W9#;Z;I@^`*-jjq?CY5jHKajiucKl=2d&c z%7Wu9-~5_dH6axS#SiaTu9l^6jATSV=nwruGYzGf5b(X{uDgX1yeALf?ca8ve;~+T zPYA_hiMNpxNf6BunZ_;ykxgnEQDgp7!*%=NiTrp{d;?~Ovj3D*%v7D zqfoH#001o82ln*1BL@fEXcAHp_m833m|1USXP3_t<0Y?sd-mw^TndPd0U5Do0+H!Z*_WhbQ_J=^-}ic>tptYYhAA0K+**JE2RfR|nm(#9?YYL@-F^)WW; zJ*~SqOmrJiF8l23lT^TYrs5^J1+A;qj>u<-Ln2}s)W)!j;TcAx)Qj1+aKCCrpQz(R z5a4CAtHm-1GpH-&IW}l!J7)K?P)r4lxIZqKual?&HC&)v{1{*9fFW))T0$d09nzF2?gpY`$e&)!j!w;0*; zph$Rz%|i7IagJ(JIgf1�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 diff --git a/assets/1x/j_bloodstone_sandbox.png b/assets/1x/j_bloodstone_sandbox.png deleted file mode 100644 index 78ac20a2cca0b2b2dffd82231824e585dd0189a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7034 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 CdeO`P diff --git a/assets/1x/j_cloud_9_sandbox.png b/assets/1x/j_cloud_9_sandbox.png deleted file mode 100644 index 33cb0fdfff919ac0b9c971d732d7686c556928c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8693 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 B>oouX diff --git a/assets/1x/j_conjoined_joker.png b/assets/1x/j_conjoined_joker.png deleted file mode 100644 index fac612eaacd2a85cb33b0fbdce823e29fd5b10fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2922 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 U007cclK=n!07*qoM6N<$f`Ck4iU0rr diff --git a/assets/1x/j_constellation_sandbox.png b/assets/1x/j_constellation_sandbox.png deleted file mode 100644 index 61438dcccd78af2a78ae5f0643047cdf0b67fb11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10737 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 KmaGMthWrotN$W2F diff --git a/assets/1x/j_copycat.png b/assets/1x/j_copycat.png deleted file mode 100644 index f5a1bac1fd2b9abde8e31f83fdc5ab2a5f17fabd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6721 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 LtfN$?U=#U25Q**y diff --git a/assets/1x/j_hit_the_road_sandbox.png b/assets/1x/j_hit_the_road_sandbox.png deleted file mode 100644 index 9cbee58382a9531dcc2f863a8833fa3adf158edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11985 zcmY*<1yCGK&?xTiPH+x)cXv57xCRgIP9Oxg!(9#n1a}X?-GXaych~>EdVjrFuXc8N zYj%6OXQsQSw|k;A)a21oNKl}lpwJZ+WPlJT54lZ|5Fm9s@5&Jbe6mykszO2e(L+In zghN3+Lz+Skp`biDprDS;prC{@pr8m{a@sXTATJOsl;vfhKK{E3y2?@@Er=e9sOFSsWYO+g$+(y z9+~Q^F?&O2=kUPbnedqYyb6X_8ti34i|{I}A5_+VUI{^{?o?8L<8jf^E&9s{qh-;< zWcqBiK9k$^ii>P$EiePJq__nN2?OpeiCi$Y zQ~}60jNH!W(#^rySShNi^3(WP>MR=56T7myzT5Y$TTB9Sf_z5z$oq%~G^$Sd#{+4@ zLdnP=!fxF|EbK!hfePIujVe}vrkc23jY*s?%3f8vNdR_4FV*6S`7<|+4m#jb9x2M; z1qKvoJiULG9T-YLL_C)lWM_=ajm=cE&Iyx8fPhCO6C(dfQ1j@DqJqh&!5&`;(73<| zwr9sy)fTjO7D&vxT$Np9!m)o9XBOt|o#CA)Ix@hopk{Bc_4GhWkl+i1rK7!TF_Dt<-^5N%Eh9oOc-FpFw*zd zvj}yx+htEPefJ&imK$`EEMJ?lR!-Y$XHx#v4yMy90Y?V=zz+CC9pJ9+7eZ&Bxmv0U< ztI+&f$koO*Z>mJ2VCC&dEW*BLSP5(%s_RQbMH)ks2kC;uq zaI{1^dP8Q`i4l6nQ77$2ZDwN4_?A~;V^FQTvw};7d?=!gZW&vceWrH=vGwpei$2T6 zERypOGBoTa(jKh9OX#?ECZTq8{xxs9?+CtyXBxpyGA^h3v51tPVSj}DNL~0l(AVWk;~Fd>S$9`UDWGl_zo7+-q@Q4v_dR1yM|)pSM%x+=C6)rm-q z>8J+lXja>o5azxZ{^JFrz&duZ5?S{ZRCe*$F6l)p#X~(_7AJT(D5KW-kY}5|h#GhJ zKMi`T{fjNv(p0K@tRKtpJpv=aohBiaf{*CaBU0UkYfb z0a2%_z+p}iMnjdVAYq8#B9(xU%(jpZJ{io-CO#ksQsVM1(ETuG#Y< zvH$r^OCpytvG;T>nZJLx_#O`mlaYpvC~A}E%0zmN?ZXs>p^BxU58rCQefTnW?-by* zz0uhdNGgSNPrN8Ko{T1>W|rZkOu_;GcVGt(f&9Gn17mgsPW<&f;b>_-3WNiI+abw@ zk{st+BxH`xu*Pjs$#q)YFRof$3hoI+7chK(FZ}A@L}j8kwXa9fUkE0(1c#9{v!vLxGA)cmx9UDLY1rn=@p21IE-TOk(kNwtqS__!tmDgj4m zfl4fPuEV>1wJfMujeNW_xo6T!BjNj;9=G=vijwYJ5l*WCk5{@FkK;kq$)`9HFV!aT zBF|QnSzZ)KxN)#Xo=^Bj0`3T-o-@BiPZnI?tO*eS^X*Q~H|-VMLTret8|kds?XDGU zYV(EGn_XzZg~Y<;N!M&U%sR{%DVWRYi>5D$kU2*T_$p%Sa|J$l+BAKWqqV`Ky$k!` zUG?(veIkl#q&+jfxZKaCwERpk(r?>1+d3+1m_=x6F!hcY`%oaJFqR>ZJxs{8jM2vf}j}xb*mNjK@O?6^g(#} zqhUt{s%)rWrtx9l)=q^>EVslMpkxe7=5bl}v^r)eusi+M+235mZMdcN!c$j#!wQ#` z=4vW|bVQ7fUBdIG(VNV7X6y_d1{sVnBIPwPpX1|?jcziSjDX9aQznq@NXa*^^R=$! zn2zzQ(g%~idX^xMQ}ze6cwlrq>zOw5Hd@76i<&`Z_#EI^1X2?Z98<1$79*)eefQpLw)g3IOCmo?f(gyKX z{ZUR2eK~*Rt+se@yM7RayCv>$8d7AOZtBywcoIEpjgy$0*f6e4|CW zOqJrMBK~xF)W-?(soI+^e&3r^Le~nN6@Pc_N_^0F2#X-Xp(d;3Sak-C6@|nP$20N- zWm3hH!->qiglW`_+D-jt=W_|>h)R3|;>&E(Y>5BO3cnD7t98@ys4x!(ir)N6ML{9{hr2O4ceklYT5{>;2H9L5qfeOi1Yx-QFt$L z=M1Ui1t5!pq9?~u+7Sa%oLfh~$oROLhJUGdf4u`j7P8K|;6ZNX+K6@+V-0%s6cJ`B zMe*?)on=4-JW4FECsfHj$v)y(ZdcnDzjN0;HF>s)O<(27^5u%(3eNt(QxEqFmOcFn+GF;+`!zf6k@MthvxlyqypH9jdC<+$P<95=ObM;4rG~(AytrC+QsfnD-S3E zX)`sE0U!3!6{hT|;zpGK%V{UF3Q^jn7`R*j7Q4FQ3`+|xY56)c9ynEzFPJB`i9rI} z*}EG7p@Q5tZZp4>MLcI!y0&0Sump4v!Mq15*@HQs8LT_?hE1)Ipyrjz2WWqo~+nX?Kk;z-)MD0 z@47%O2F%Sn7GuK=>Mx#V-T?{+gZvp8D)J=|uAEx?g}>ft2m4niRJEDV^tN?NRDpB@ z%mds7Mk}85oqJyLHf&}$mYOI29&y*Q#`rea5C?twD=_txELH0=BgMqVb3#4hr?~pg z>Ns&{uK4(}5B-d26m*~a_IMI$7zy7TWZI!V8DzxGnOf?v2fe)7cRp?d`D#L&T-JEa zV)O06W^Ry`jLV$IpK^LMoYT(a*|y`L1*zn=S&G`qmf70FRB4A$aYQU`qLIgDDU;bk zF@`4L9sbHE=Yij8f3y1$eh2QEhZVeAaCP^3IZmA8{|_EXB{J^>zEDb`VjiVs%?H<5 zG>{e-K(+`z`;B~hI8IHn)uiXW)5?Z^r}+Lnqf1XeSHN2}0q{DVtm9p@2~j9rPMgZQ zkvN!y$z9LwT+#fp35&5+JdsWOt6fF-U3u+xX*HnMj$21Bg;{rLBMIVJ_ggW+{OIZF z%0SJLuZrVMUQzHg^Y5rH(Ri? zD%7#?Pxuv}d9U6?y_8JT52UT4#8+3Gc%YRzDB;#P+judG0Hg)Wph~`+lOftt#$pNd z4kK1Q71++5bQz2LusmQw^mbxY#|o&ppW{z|gb)+;(oz5_^)yNz$#(z;ddEBS(%EiW zv#3HmMnm^Nj?tg0{(2bbjq%E}b>NhYic7Z^2y{DNE{j`-Yaq!m$FF)`@=lu9^_9_+K~1Db6kH-M$he1UHV*e;v#8u?Ln$IX#K7 zOf6oKOPWRom?Qs6okGp+cosN!z=g5Ek#f0jEN9fC0&ihHi2o+U%0pQ1JSvr9!%?g}1zLTsdBD z$4l#Br0IUCc(*EjstohMQgc-2-Th06;cR2PI(%|bQ>l~6N;m~Y+s9p>6ZC-sAhrpI z7a-}-d{D0dkg|;9X|}%T1-(3drcx;5_6Yh*n&AaD`fA#drq80*WMDngMCfwazfiFG zTI|S9dGHL;PEuSkrJL=@)eM2jaCGu@-<6IVs9VonTNQoBBhnC)3G7Xw=pKvA_57B7^p4IEmLSFkvN5e&KbRN|TmVdT0AA}*(S1h<~xVaxC zAEaKWU%;Mj>EMmIm=^>WVL_#zS}Ab7I&`_zhl#i?W^RPz4YF{kPC(w#D&Spp``orBfukFYn6C7$>s0kL_I=q$TfgD|`(IcSrg)AO2?Of-t6C zIsbd(Vb_i9YP~_wW<|SVp6OxTmyo$SZvwLPGMaN-e0Bkm#@+aeb2GVRWnBs5wxm(p zsrNVr4&DBLFn#|WF-X3^;=zL@BRk5-dQXK-il}&OHT~@{LQ6F&ws-w9Im9AnOV#Zi z*hpRCHxc&0atTW|IJsT$bETZb?a$GT7n2B_^Y@)C&WbBBf+g1TojHsLGU>SQ4g}(& zN3TOEOPfJ(VVWhY!Q`Yq5h{#1q3fC6vYAFhp%793YwB&Oj83~!a>+~_M5q= zIA7QU8+k2qVVLnVUa*h~@5mKQQC$oChZVv;Sd!3~D$T@#V zI84&jSO)(&6_2D(C`{g02Otsc3p?scjejF_utoPItKQkU&9R3hZ(9IeQ zM>n`SE&bZKV8nHRQ{B1EWKXjmH%yOEh&JfrZHWC0cSjuKXQ?;bIADQYgv_b0Hf6AK-~QtV3A)+I{h@ue^{QF6?{`vcZ6jY?JlT+A z4DZ-M{dN0ESp7ykOZg06=69mB5Iy11f`2zDnAQVL%=#bWTDvH+ZV}YW7QLs0F}J%Y zw|e+f?9apv7d}xHv$uOUYr=0s+I-!=FW80h{+QuYZK3AB@aTX?2rB-wdvWS@qWP8% zVh7An6sP7i+>XS?rU^SlO=Lu5Xnu~Vz_s>$xv#C(q3HpX&^fj(4PS;PyE%lDSn-~Y z0CSmMy-x~u*a<_!JpHxsB0b>jgXYuSu$ZZX)AF9(5%~{^LVcq90;xI$b-tnd^}t_3 zI}QPs3lq0i4G=~}{0GX>x^LhHaI1^zeMQ+#JQ3u{9&oEaHz(JqI7$Fi4V8toi-XNU z-$84&UTpm9wUDTY;7v}0YsGxlu|5IGMCk+u&^wqUgQRLIOtKIdbK+^`%mPlK-&Xg2G`R+9p#mjs%R6N zY!9KI<+fW0wM1M2uV3lidpzJ0M1N905DD!npIp}NilX)2<@6{uk=&lDbzH(&)Db~> zdU}#Qmn(YQ?aQa-4Bte2>S-`y)`}+8TgUR4IXynxX^Q7M(vCJ&6O1`YGoCt5bqFib zL_nzL-9Gk)++b;%_9;3sQ$?f^@QW`G!^B$P}(I-nDiw? z@d(YoY+Pu>U8XPYYW{3Dh0S^e{(vTYtJ<@r&Tn9JtKPmz$;NroXNo2i7Y%(j%du?c zpkfEkMs9ww?#n#7e)GigftvaJ-J<&fi2HMwy(-6f8E0w{XC`%uQnDhQol5pbc=W7x z>i$s#gX?TlPuXz>#g79v@zh@Lyb_l`TsR5ivH*dnnXk1cimzVn(6)1a1i3-fmb0D| z5>HrIgF;Uy3jut)6}I$XZWSf|*)$I0X(hX_h8=11E#nXU6OC2Cs(PCI;$kBb`m9ic zr@lU%V%jnz4}6B)AfZuG0gZB@en-?r*F+$Yk)X|WUR83?L_xAz<5$~BUa~olKJn6-JMf|RFnU=tneR5AvIP;`Hl6%^w z{1+ppS`GR`zE#EYSVFUBUFBIJdRZH1>_Yrv`8X*gfup~3t#)_z6{$+oG4=@Gnal*J zP(%1P0<N$G3;x{)k|5SVlz8k2GL6Mg4tLt2epXFtVVt3I!)m49p8us zDJv?PN?UqH4J+Aqhi}rk^>xsg21v)sI3Le(@#1^3`e|7_jO(Jj4@Pgb3n7H?<$Ed(VubJ_{{p@wR;KIqeElAA2mb|s=xUugw%rgKjT3J;@Y z@kG!PB)C6RowQyp#yk!L8>xs;9OOQ19Bh5-KDB|7<+z?r4qNo+sWBBIM9<;gW0`#1 zJAz1lZW0n$kv>IIz}&5=FbUtp-g8=$XNWu}H0W54?#Dd9#J~e3)jPky=M|WoFy42u zFmJ#;ec`g!MJg$MQP8(J`O1H)FB-L}TITa-p7xz1X0H2Qhs}QrKnDIM6lt?^w&c`# zKpqjWg+v0QEh)x?qp1Hb*>TnGg z359O%sRmS3XzpPZBvq(SJ2NezZW<4q-%ADCT;FB#&s;E?n2JH9F#nczaM6F~r%olt z&}Ii`;@43J&t& zm6vBaJ)T1abRx)GepfR*y(lwM1mj1^@4JlZVOpPCs>6n`WH$PZ3v^R(^Hb2-_^ zju<^ps$rx3a!CO`d;^y3LvNSPIj>E9OKp`BFXtjKlK$#q(;?&$WUHux%?IwMj1LX= zXJjZ~9PyU~VuASzez~^$&dcHZ9|jScJZ(CrDxQ}FO5mI%iZey^VFPqs@@Sn%!kTxw z&8)WX(DGNaymLQ0AK(To(-R-(sEd^f^|V~^W#wn^S{!z4rEBW9nUtz4x`a&YPyHa4 zukiL8v%;&Zn0t^1UQf^!zS!g*^*Z-^cM{UT2*bo)y4EDJn_ze3X)kVx_;+PBg2JJ+Fi6OG_Aby$$hupASa`G6afW?0ke6qphO+3X zWtS{%p1vc~KXifXd^#{KJy@^z-_($Q_AJ-plPTsU0}B$>CtdaHI$yk=mLL5)sF@#K zmaVVq>b~f_J^7%oQp}Og6v1p-Q{tFayp?*t`dxFNh=x34Ik9zBlRMp$r$e#Av?~_w zlGMPAY06(%Q>BXRhbJ|+?0r0Dh{?n+2q;WkNaj`5wO-GqlGTlg{ZoOIOLbUBLDf-kW_sDvyRotT1` z$lx<~cfYH5C$8Y;#h)=Pj3}HnjiAeuU#gVd8f-d*=fT_XR$6~ZQueP+8S+(F z2&5ebj`5iVFN#p>EIDa%n@*=Z@V>zs?E% zo1Mo~mSy^8eeP$@{m_$5_cYEGJv7b_1@Ekfpq91CSXF4?>bhnd+;Ty!&CK>yM^;Bk zNjJ#){o!7@aZ)prO)nC~skYA5Gw!m)~Q~B@KC3yN*`oo{O_djF758A82 z{r0@WAGbv@;!;cr!3A=0==ZvkasTC`&HQunOfe~leW3w|Z#!86iOAhul^ok!q{*av zAv)_bLgR$b{vBXF-<(DUUTVd{(dFs?NOKM65XFiwe)?y8L41dbV8p#Wt4(>(-?0I% z*}mQeNh1Xyt6Pl9Ptd&o1;VOmg&|wcCdG@;fH^4w%>=zS+?aa=ZqV2=I7JVI2{Wc` z^qM8~f?0bHdKifjWRPHgV1;qU5!XjhPh|2yO1XA)ohtEp*Qul0=T5d-qlrv3DWt4f zJ4hMi=f570d|UhY8sFbA#z-NGS;+Kh{DIwwf2BoK1^g-2nfS!GLz^|FZH2e7)!4-m45sMpXgrL$9m!WMoy1C}sc-nbyloZK*bRcmY5Z}AFE}^1T<5DsMGe~vQ0Rk) z8UBs&BN-(b!ozy;V&9G$zL*;ljHR=o%b7#PI#0TootQ|I4PpPjg1%xtV!WyT+H)#0 zX;e=TETi3u(?ms~d%61DIsr@C?z?4-Sx|gn@i|&NpEt9D;FtIVN1pIb0aOOlF88@y++7aGuJqi zgcCpOGRccv5g=H{Z|l6ecBg+EdXwu@Z;l=~GYc^cX^N#ND|{;6D=9iM>h@)_TSfbgaia zu5t+!0}a9LaTHUWXglVSNm59&M?9lCKSEJjSTlOzQG=~VUmFh-mzdhC_7eIWfPLSb z&r0k+zm~PeZ?}9&3D{Tq)h?8m=a%ttXjXT;EfP3sK4|2SKFe=|8@z8ou?GBd)7)+T z8xo>JEKdo+6zv&KPUg=u9Ev|TCcBeo5F+*Em>4~>__u)<>$9&DfMqWbYdE@7?%e= zQT)?B%W-tnjl|fGv7}g8!4Hyngz@r;T>tO{5m@1OHo@yphT#QJuRC9 z4D#_`Z5ax;Ia}uSKd0h-1ky|C_3jXYBU&z?Z{jlh^E=`Z;YRQ<7X_b z=nFHH=n*z}-4bMYOb2uMzXyb4{W7jg7XLWX4T2;yAu)bmZkx-yV)b~RL1_`I9*xk2 z5M5BWSZ@1)-sLJQUAv!1*j>PH6=nM2jizR+M5*c7oYD@68K2E56gDhq68yICbvkvY zvPN8Wmff8kazf{=@9!u^OmZ>4L;71Zs?8KekbnnrFl+h!zlIeu#NgwQc#v#wc}j6$~y>mr3PbffgqaLiBtAiAE1kh+qH#HO0oCmQNMHl>l(#P)=}wB#u%jLwkI6((R`=fL zY+3GkxAD%CW}m+>{~{v&@DgWEXB((zAuwqR_Ys+#k0H1oeU7BQBF_`%h;@%Wd;)|P z<`iovZC6(7l9UXwzGHC*lO*U;U}oOzy}SJuR05PvwI&WIr*ZjO;HJ@ORx96x%3mE; zV$KOY=?motgbZ4dQNcYWTR!%lcqsGtW5b|WFFJZ>jl9HF#htDhmw0ym%UKtsQSERC z7ogf5X!Y!0``&yjDH2y`sL|m1hIubD{GP06BR33pOr=(UaV_v9)%~R{T+Wu;Eg*v? zLm`nJ4`vLT@9xiwzWgecIEPw+d}~{>v}Hwnz;gMW0ou%U1B$|Y=-p$!%#4gBSFxs{9>f|i5ygjK^SOS#XqAX;+6B5klW-vQEI@z zwn0>iB!2pnS}9tJn1Lnl%|O6?Wr)KciRT=PAe*F<;j01Zduu6W8e9XCq*)6iEd;yF zv)0mBO=2Shv4=nc_AU|t9qPe2GE|oT0KUrWX%FU@9egrPB$nGHAcLySvd2L#l9nNn zL{ua|!$AJ;m`V%VcB|TN(sx_FvHA=iyJStpT)r>JjVV8;!(z}SG<;AiGrE4k&!>(jVlXNHdmhJ>kIh^yGZu;@>n@-=ZOH)Hvo zifI*NFkaO6@G=uk7n~>=t5;6jQqurv{&f%L5f6Hzm&(A+KG`c?db;OOak1H^K(}Cw88YWD@$%@4Fg$G%gqDdgSa6(wK7|^vSB|{>*eA| z#~>@Q@BcouWF)VluSxA^@$F@BD4yRWsX#-TX*OZ3&T8rGf)tqs1eqXw1;t*PeW~SG zEfod}yiv9YV|dua#qX|`k@5#H(^Bx?x+OU{^#A>qj^A77r(iH-LG(n4)Z}%M3U~C) zSBv^J8nO#(g+StCs2=@i&f6Z>r1;b4G}(Dq5w7ZlaekyqIV=jFtw$z0*0CKjd^BFb zISX8!uDWxStN&AqTr91<&R#Hi0E`}M4}l%AWv#~m%JK2GO1@C4>V-%o9<|0*Z2=mM z6~svW1l8!mfFl*+u6rnd!BP(WTo{H@6@755?s!Mwna%!#i%@niVj5^qR@~($SwSUN zc$#ScgC?S2`a)w(ho|#za$#AGw)=5s8|Izo)sHe0J;H-+_bKZe;VJmN%xRm22Zdqt zCZM#hJaQuzbW6CP9K2XOinbl205D^u)O6K3;5YwZ7a6r+vu{jh3I0zY$Fqfmn*R$IFhVaOK>?YII}}5sGI<_%}$o9d})x1 zbKCQdN7eREJ*&l)&kqL`OK`qN!fiyRQ?<67f?~HewJB2y^Fs>7M}+xEHB_op-Oslk z|I3V2Kje3knt7XS9IwoeS?kq@W?IOQcz#YBaL&HE|Y=;+1bS91B< zS09AI#Ji@(V#t4k;aW!`A|*)uAnBvO(&CnSG&kRUJr7fo6bX4 z-^0q>!&=DF%^CurxH!0YSvdq)xdgSjxP^EHgt$1FIXHwkIC3Kl>i<6kCub|WFTVc| zfnS@8ONf(Ci1U9DIJKg#Aqb5Bmx70#leN2txs%KP;s~;GaQ;Vx<3Bq8hsgS|UJwKa ON>Nr#rdrA@?0*2U#xGm| diff --git a/assets/1x/j_idol_sandbox_bw.png b/assets/1x/j_idol_sandbox_bw.png deleted file mode 100644 index 6f6fdb91b9ebab6bdfd145b4847368b782ef098a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2721 zcmZ9Nc{CIZ7se;l#2ZmWMH1PHW=6c3Gj!PT>0Dx0RTLW>d@Z&Wxw*Hur>d&j)6>)3+-zWAATKZf_3KwAliAqVI5|0~rl!`>(P3(0 z($&>9Ha6DK(9qn{Vr^}0YHA9H!!t569zA-bq@+|{UjE_3hvntvyu7@utgQ6(^oI{0 z1_T87`1q8Rl!S(c>gnmVw6ys7`Dtiq7#kZ`R#tj=c$Afu4Gaw6yuC>zQht6ul}Zf@ z3$wJe3=9km2?+@f4)*o+B^MNQcXvBFI$|&wCnqN&k@)P{GaDNlPft&KdwVn*T~SeC zXlU5h)@EmCS6W*7`SWKonOs#>gtL_A}t<0di?mYi;IhynVExw0~U+*^73+a zcCM(b%*@Q3otiGEh;^Ja*a`MvBQhG*4eSLjYR8(qe>fzyGUtb@C z!FcfCK~hpuN=k~hwl;x4Xlibbj*bow4}bOQm94Gqix)4RKY#A+?Hv>pq^_p6ySqCy zG(@MVewNMlppw&x(Pjh)#gv7g~f!PofEGB;2y*v;Wg3-aZreKaiNlS77|*9QH7KJ7W6_t z5JSljjx1;vH$|yd&P}CkE)Wwor}9O3+&BP`f#I1MX#Lp{ncetW&ihJn?K~)!M$CMW z*>axGiN+!PW>IA~PpiZr)2d<-1iyV4OJ9u_W9Rc=3Dx;#X98?!L~dgG+D}5pScCyF z%7`h7;?S(N;b6o1XykRUlNiM0N1*mTy4;^l6NoNv7pZM+f|?!R*wE}IJH158`Vp85 zooKFf#lN}`EHXL!xgC~d!NX%S^zfCPPFkn>IOu8iscMu}J4tv{ki8`*}pd|};94x3L zASu?vZK;zW=;Ck%g*B(84HDKwr)_0^Ngzt5F2TfPR|_Sz%vWlar+%Z7dY#uBhanXpA9 zZEu+&JIbG?1hDb0ztdjeX1fr)kDi~1lQqW2w*i}^K1+5`7H2$&nHw#&)yF8%RG3GkbTu$3?G_ zq>v$=v|%_ZqHUqpzIl2-EGv;~a@Gf<8nnLywHY_>*$4B)Y%f0w%pK;BQjMkm8k9|Xm**m~ z@Koz0^~EJd@9;_n2< z@<1r}jsXX+Zz{h`wc5!~{img7JA|00#y;wl@K302kSQ10R|G+^Q|a^4ywi!b7rGjz9$!~G}$%bda7Rkr1ri4t_zin%>Kr`v7C={>FAIb%z<>F>I{D|b{f z#kd!6=&CfWosZO$%Ke-KbXc~ai6y9`;tG>z0{GB+Sd^0 z1a$nvd@uhnO8z@R$SwamK$m-c)ee|TyGGFTNym!8`OM;itiH+yA(9^~$3PZp9~bKT z8y^=jFMa!6v3&euv5U8|Rx^!SPzB{dCZ{+baKfS-#1UrCZ#vlce!?m6Wc09{QaL(5 zn7IEiHLE?OI8cG~?j0(C$$6=j^n#iCQWFjUJqrL1@{b}|TmK$d+4)VxO7gXKg3e%9 zHKeQa4dn+`_~;_-{eSAd1aB=P?dZg)O8nx1o{UdIt1YBNwy2T63s?F>`Rz&P(vPbQ zNx}E_h3S;Vfc80uwG~C)+5`P>iB=5cbkV~Bce6;JU2bL@x#(Ojs-~_6TJ(k}`)+3- zst7vK*P8t2RMBOj%hS)k1?>sU>5tSt&_2et9AI~D*01d*2kDawH5O(1em2nZ?% zx&Z<~K_EK)%)$Qw7*|_Id!K&+pxaP+#eaY_${hI^ko?~UtRu$G6N|#Q{fmKsq2Sy9 VFt530dX5=@j;4V|iJEore*ma@KRy5e diff --git a/assets/1x/j_idol_sandbox_color.png b/assets/1x/j_idol_sandbox_color.png deleted file mode 100644 index f70996ca0da321865203ee5b2ced7b37d7f737ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5167 zcmZ8l2T&70mkvdG2L%CiP6o4K2vw{PdY{q}orcV}mJqYd>nDan}00001`7FZ2})0#N3CLzMrjS^Fv zIK^%QhUftRemnp`a5w;Pi8BRn003Sh0KnEO06-=k0AO^>ZhS6>a}dFGG}Qoi|0($` zpObJFVoxnSb>dA@YR3CiFyxK^06v`Wew@b0!N(HXurlk^`PxBx} zOR>l>_j1KYcMtm~xV2m}Hy{ees_X)!Kyft3nC5#}E ztFjsO<45-kJ$#-~d=!I>RewZ)V5`D(URUEBq$srflJmr2DXeS!G&qmD->*iHp1^HA zA6++(pFH;63ts-O+DjgXpqWas-ntVG0%lvA~*NkEvruIAW4~ulrs4vWjHLn-2ioJ zreovR&g5}b&0ds8uP0WXZY2^qFV95HXYGu$KX_*CQ`6=&Ze9skH%owN4NsBb$5-RE^g?{d>RTMw!s;S!Gc%Xn~C(mQC zfpueBpSVu*SaPlVCAL z+MM@uA<1Hno`zRz^R8_bbPSZnuidGA*M7VA>C1NRe7EV_@=DIQSWa(SQZ4Skc>7p6 zh=`CpuPyK4J)4ZSYt`G`q}V#*!>$k8FRJ`=44e^ovzl=WC8qV6>pXTl_6Uu8Nn+lb z>X-sCe;NoXIaL{ME;D#`negz!=DzaRfSq2BERGbbZ~lF8&ik~^N8QuoEs>6zfFME2)frXKGcwv$GY?32xv zFTo+(LvH}NyN~$f>3&r;ORF7q7|xp1Ihqlu|6*~0nqi!9A>qTk?>M!Mm|!=oVfkQD z+}05BSdxwzNf1c%r-MfkZ8S>*Pr?Uw7SsBgP0UDXNm6&V81IL%CbO#Mlyg7qDng;P z(8CDWeu_zjRT#sTtw|o0J(pgo|BK$UCjQww>sE+V`fA05^ML;g58ClH!eWkQzy9~@ z!hN8zis3_C?hi*+vnxU@uzAOm4)3{iuzA=!ngw0?*`i10jRNw{Y#wp71s`95^*qM< zN+E3n?f~{bUM>pfEftFv)Y;-sNRoe>4HDR%?*5by*v6AK)q%Rkhaek|dO3&;N4W9> zv<=kb_6H}M3Kf$+G>;Ihqrp!^*N`e+7uXZ0x7w*nZmtMn04^z?({56Ku@G-QCftq} z!SYOq796X4=eD5*iG!5DA&0~wUnXih^{zWH6Q?X^VD|2<>2`0|=%O79srNw}q2I2Y zvS$r6UCZxF>OQ4uu0Fca2sDs}6XJ73@ZSrz;^IL)?yYwu^fnFCWOH=XpgvO+CUj$&Nx|cv$)8$;X!A zh=C4DV!df2#KAKY^J9v|mG z&!Bfc5R(&*MxLoK%0R$#m)9sKQ{8EJ$Z0yvhQf)TX%eIO?0A<_3=8$O_>j#*O3o?z z>amqB!|ihqzjd=|qacKtfv29suwp{G8mqemJIFz@Ze$gYR*5XVu6N@eHus=xQFE0J zCAcLR#oa~YQ5GX%7h6skLiYA#EbySgzr^`#iS-QxK2+2>wkSUoF_3rnJX#I$`;*4v zI1{41yE2BPByhi?hFVF-$CSXWKnUbVFle~MN5jz8#Ir=MaQvIA$jL#kw;F*39cQa0 zYKG>05fasX=$=%9=qx6mEfyjgPuX7cA`Gq6e!t0V&62X2ZC_&S!CnNw{=PBW(^7dT)c2p!s@))|@b+IX9B(}H+udQdp1p7-L*t1C zuVs)4T?g$5L-7p8a*}K_jqUX>!qAWW>%$THTI%xhiEzDB8AJ`91C|M8h}enLm>Ad# z?9^4v40!Z4Xnd*pe2Zjf>L8<8(8n?M<-sH`+v;jlr4&mkc}{%FXB2q6X)0rdLdX4T zHx?x)!+qbuREsAqE~ zqp+1WRqkr>n;hhB>b-)H*NqelDqbMFtJ#^+&+;zQ4r$Gl~4m&2=Hw2YaRlO!WW_6cp_4CT+tYLgiV2gI7&R*8=TH5i63S)k<&EB`2; zy}W(i?I-y1mX@yPd+2aH2~{NWn)TN$pg1Oi3w-Lvo6=909*Lb64^*8I5Y5#@j4F*U zgRC@kw=7?lUy=de**Z$i&AVmSTC_?}^hHC2%hd1XRrc~WOM5A}V@LolF7mvLIQa2LST1cUu zanJadae^JsmuXB|XtTfGW?IVreTcCD#)#^0OkM?~A-5$eUU`~L7qNX9CIvJp-bFQg z9iZ%!Xee;YzmCy=>gqWU0ek9wlBc4!>es39AVJ0sEt?DpebF1k!}mG$4rkbzIs6o( zPW((;M1`}voA-=@l>7vZ-}`3%lApjsBl^MPcLTX1xu8d^`2ujcAaf$6KMA`hP2Uu$ zl&<~oRmhyRC5LE6l}b&h6U4{5#+Nb8V2%s>E7LWJ2!^7;8KR$iIn&^_Wg&of|MmwZ z5l|r~XNjX|Z6hm#UboGgEAO@RE%+fP9UUE%fY$!9qqj_YfvflCN)(!!vXtQC!Lb+0 z*@d+ob$BD*Bk~vDUdCq4+k3EyoS)lB>@1wZ!YoHYfLn~OL{L(~C^=2jU4<1)$sy62 zDfeqUKScj?M&-ZioTi*fZfh8QF4|;DoeG?K3Chm8LF@}6bhxZme1vTY8w8}Hf<`}YSmTuTtddqXq}IJ>1`+Wc+Vxq)PDzw59dh{u zFi;-Se0gS$G^k$f&w{G0{k)aKdg49#v?~3L2!Db0Fdpf56`wYFX8fWsQqbyvEF%n| ztCgriEdz68H(U*+b$ZG5l$?h#&0(pJ89Y~1kS}#t<1hQQrGYg#aRf1aQDKo1HNzmP zQAilNdC#VsH97279hMZ^L;(Ae`q8Q#39KB2w_vtDd30w1W6v`FIF9(0cb6k2^shSw z?sVaBc+vzj&=HV7*0YK@Y+C<(DexvkQ;KTq~L1F?&ALMV+qxFTpPURAoIG?@ch z>`aOhJJI1&<_bv*!|1Gwz(!o?_Ixe>1PM~s7h@lnQ#_T>gUv4naP#marl&hj75x6K z_O~ujxm>gVTbt#u)XIijB20C3<@>=_b!n-2V=?!)A~|}8R5swe(J`=@Gs(_6L`bPy zHt0pm9LLl!ppTvhr{p4zj zLK#T~r(Hd>TUcbc-5OY{uqSGYy9)2+1t?BD9?oiqcR~$TbG5D`?dZa%aam7GAfd%!IiNH%__1sTEmrQeh$NIbRyYapUd<^L;;@zAO&y z6G%qpDIh3(va|NsZjY$5`bL)s2CGnkiDPo(Eo<+(9lv;CnyQyL z$LV`ptqV~6gE`W^SL#$8uCI`&x~a^N1Sk(QJXPQT`tTggP3Vc*Dj?Ky1e zeO?JyhvA+LNF*z$u*K3;b8J))*A#t0+9I(G=V^0|rMP8=DIF!y(} zM97HlS(clR%cbBR%c+y0+xcUA4qYRiocJ=fa?vP@{JIR7K~4e7Fub; z^e{(cOro4!46ZhkOP56yQ@&FfqrLrq?p4?n+Gyl3yK@yX)R1VSP%o!1OdxNK60AQN zMC?66yS{&6Muth5SCmULP&B0kZ)e3eGH>yu zVx$fTRyx07OAg=QBbX6?=*O-4mD|gT(QW?VrFA&945lQ1{DSLsW(5Qwl^6Zmv#-oI zYhZ_~4Wpn_>$k}|6Ey*8@DbOiSx9qAb*mmwwutfD{X1h z3%0Vffrj!c#;^QqaxMISdkMy%i9EF^q8Aq+i>E6KgTYGDi*KzD@#R@5jJMVJdsx-g-Y6?FU1KWE^p7z{VQiv@nJgnFzDb>cm8yv<2dfO z?1`tknWrtx(@w?)VTV%yF%dBdK@pIks036@Tt-YpMqErlL_|hJ#Mk}N$o~PjzO{9- z_x*nWQIHJqe*g|_i_JIy-~TdrI=R|;c*0!W{vSq6R7Mo|-y~?N*=`&Lprx*_R;ltT G^uGYCNX-8L diff --git a/assets/1x/j_juggler_sandbox.png b/assets/1x/j_juggler_sandbox.png deleted file mode 100644 index 70607ae7deb0ea08a15cc23422ef308fe8aa4f3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8537 zcmY*<1ymeQ@aE#~E&+lQ2<|}>T!IG(vbZl!aCZos1oy=W?u)xD?h=B#LvV-N-~I31 zy?gU!>P=67RXyERUDIDrwEAax985|~004las34;Wm-6rvh>i-swg~(^fD1Zv1x-}| zz=s(C2nquL9^gem`v8CkHvn*G0sx4n0sv&rnJpS(@CT@7%JMRR*Z+>3_TmJ137Wg2 zsw~<81_Bw9Xq)d}AGkgdMHy*rufHc*-ig|C?PrpmT6;F}8NztdHWoI{h)L4K7TlC$ z?cPFmW?`pRG`^0M_!q|(0+u3aIuZY z7ufeA^@s>6KGfLaGTrG?-n7;!qbd3vtok=7u{Bj(UXL+ru+1HJyc($%cn`*+KjK29 zf@nAuA|`&%_?aYXzRCv^5O9oK0E=w1Z}r9sb=YJVK7-IbNhV9(?fHW4JDJ#$EqUl) z&zsDZM}U3M6D*omHpL6Z{c+AWePILTeL{FKB=LwSIOI@{*j#U-wB<|D6=}c@cc}>> z7TKu6kb0gwTVZ@iNunLJH0_imj?Y4WVk?rQJ7}z%51=}DQEsDF=BwjvffJjgC!A~hj>}!G`2`bB?H<{@O zFNM}!0bY)#I#1wNyL#0GjY=g(rOZ(J*WpzJJ#>aohjrzy(2h8E9woLu?kJHM79XgI z#S0^8(r6dIs!X4*ILi072S?{L59-K{35n6c9u_@eE`f@Y0)^)N)Dq4M@;6%lWcIzB zO_fY8Xo^cMPzm^YUWx;^Cc-`eD&@f+fBE*WbZEy7X6>tG$oJMXU_D*t)Qb;iL?Ox< zoglu?e(IY30j(+D>@P@|A+H*e;uQ}e`hX;puQ9x*+FQ#(#wfe9Qufi-=^UrT> zIwnL5#J*9k^x%5CVSdvkL3nra3}-EdGx61M#QyRoD!IGDQU4jJLKBs4#!_~x!o*CO>wk<^HaEy-tl1}1ntZ2x6ge(MxIljyfTr*T`}pFb?gvYxno2 zLB489oX5v53$=B9yhO%Eho9RY&fgV&v?IF0l88melKeXyUrUw_+rL-P(2}OxAN11G z5d5{z6lA8jlr{I1$}}cqVQhw0=d6&?OGpti9UGEU_oU4KTDq zUv4f_j*yyzjiE6U6zn3+MoHr$Hd=PneQD;8hxJ0>`^nzCMmjJ1}K^SRGpda%F*Mk z3bElI9-fxPeoxsuxD3-v%{hWMP|O!m`JM5s_n+)@j*`@H%XDn2EO`}*@^a4nmM2;9 zZ#T$^?24j;T88tv;LbP7#m5OkPm2Z}&W_9e^by^Y$LBb%E`xQ^fI^KXE<6A0wuK4816$mrId8oF7sVCTW54X{XJ+Sc2!Jl?_(8%DN@CQSstL1P-PQ^Q{*o?0?31{MK#H@2HxBJ&gX0o za`}QIWaE~4H(n8O6lYXgu!hQSJp!wvRh7nFbppkAZBTI(-K(N?%s01QG|D}KBJN@o zIPh0y^%YaQx|euIY$Q3~i1Nve#aZHgVdDkzKrM&E(#>Ut_BfB-k~Yg|QO|avUxq@T z#s0oYTX%kpe!B(2Cpj{{c`Rh}$&>I%ugjqnjm;IDwb8qCpbVvIfH-^Qa+e}Se66P) ziG3g4qhOIU_9skOb&CT}D3&~YOc$R@2c~XLf_v8OY1o9M*ENZgZF#-4c_yx!z;E+o zjg0wS3awX7(k|(Yti@#f{ry8-3>xhEOSFnpMf1Zfljk1ev@7p9b0uxFD&Gm)>9_oU{1=c{$Qx{1qbsu z^$mAc0kW+==_mOg`FFz-*i?MkNwIqyvW*)m3)1H=)6J|-h^2dc7FWW7nGX*>U!e|Z ziC#jz_JlcaMS|n>zpM&#Z}=+cWf65_kTpjTgU^eNa`lWl!n#rN>xo(WW8%Z3^UV!_ zCNda$Hq}KWVC{O(%NRX+!adoLr_WQRI_xriEUWyg@VL_Sh0lE>%Re^^u`U9JdO&h_ zVGDUvtYwBtnq3ztSmG}UNLyp2n#-cM);M*ZWNa=+t!fLiTdd^#rK!OTuuaxfF;Mne zdq;-^E;iQ)Eq^Jwe0SGW|4Y0oZ_;GV_?;Ufvwo})F3wMEM?uy=Z6%YQlQpvCND%b1 z=<)h5bC)1%--3<%!)p0-UXa90G58WeQ|VW7as)hdD0RM95UbsG;06Wf!w_N`=CCLg ze*M?I!e@xduKYWd(vD)jZxSUjg9J#F(|IiZIc7jm?h8XU*&n!HVkG>G7vzeuhOc!h zi@l4im6_Et&VI1a&n_&uZT4YgWn9}~D7Eeu`!ueXNG#lI5?2!H6%DOtx@78VAw0_^ z`0I3Ce9i)7sm7B}JelOK_{^Rw=BtL|VvL{RuN$6)-4^K>)u8tF76q znWU4b-L!+H%@OH(8h&Ge;zG6*XD?86%1iVxku?)ByPWyU63vWucvm|f?K+MP2cFb` zrsKs`4?-lt6F;DFz%^HdbWwlK1V~o6DY{m+@7vTV##RFA!p-^ljuNK9g7v!xs#+1# z38Lg|ZJv*Ej)A@{sy${oD z{rr4odxpHYA;$|L!R9f~=1@?b)s)|Oak#u1CYU1njxf*AL$ky83-%~g8ZkK+r3Se7 zq0};!p#8!YW;ToMA3tWEd%8p<%wIu!LpJGdc=VK4=xxf4#1U5}^$_Hm zkMW3}ips&#Ma}40KkY*uC_OnKr)Rao{63;AokDS3A5!@CW+eYLw%l+E4%4zfk%3#b z4o__+Dam)RTy%4HETN|>g+A^r?@!w-^|423QIu>=3_og?BwFfQY-3w@sj@sP>9nh!T>?;L!0Q;`ONH#1W@b z+31(kC{ESUfD`_sGUX6OT#}}7%gBXFB#)~Tmsoy;@xh;1bA1&mgl~PL4}&r{ES9y^ z{xsMIO{;?iJLG+ej(9^fk3A4t%oq9dB2@Q4)?TOM^OWSl#rB`?we;LA*8u1Q!|>$1 z9q|5&=M!yjP;(&W;rJ10${ipJPgwPoMH!h5l!{6d;JwF3nhkWukw4l4IVS_IoD8`QfD99o_sc`X|pWdRjhs z(#84>7=0!A=$Q|0s9&2I?a^?2Ha!8oXGWmdt7w-POTzn2BjfQZk(I-a_nHFu7V z-AW!|Z7nRDh)y+x2zReH$6_ark=;p#u!KVTHA8K~B`0>nClM!d#*6=!6&w}NOm|It zNh5Sz{wZ2oXyW8YYRpb*+tQ<5(QKy0->eGqKugI1qdBhA>=&7)Ti0~_s6Gr(i@;_D zeUajqRR!SBx(m7Zv@&VMQ)KPT*}I{z#!M2#fyZ)U?4}(?xK;)$bfXkCBoyCBHQB^X zg|jkmD{Jvf$(5cqH7K295NlI;3%gkUJ&Kwm!cg8@(!2HkZibP z4N{CVG-lq2|Dw?g?&89QZf`7$KCc)s%lp1}d-MeSx%+oiNv!ha|Ex5xa}NS*@`>%}WQP3>TNhP~{;y{RGRJ5PA|JIGS`N`U~H z-N8bBLcwxKybd=nu`9AlRhi*m=l&U#Ptjh>NdKn0kMM~z%Kko1Uz?n|V3R=ACOfsn zGro1Twof0_x>7pfWDRHZ7EOct`QiRC9xKpkI$el|_>Q|L2qZO%PrY+D*9*^h)6>&_ za;h_o<|=QG$dVAdeL7bi*w{R?1ldIN@4q&DN#d9d+KH3N)zcxQed{}YS!d9;3EeFG z^j_G{vn8@JfM{bL)F9l|x!X3;ztp*-ltITD;BqIr+R=&>kuS`x-FjciUKENhbXwm3 z-AHa@?)gqlOYd&Op7`ZA2{hL{vvln_Tt9)tFAh@wc$#~Bo7xvk{$gSG5CAnI* zhav0pR#a}`XAH^lM?USY4T(4VZ9bxrsA{Hb)oja9JJGW%C7Alh`*}%IDj-81>+`eA zz!T#elNu`MQe2+3)6Z zNhxy}QF(X!gnwQ$Mxv?8vGoT_yzx5t=i!)WzfO({j2-e1FW$cz(8wbQrCJyV5Tiw? z>`JO`IFa@4Lh5&u9+m&xJI0wL9wgdv^<#%P$A&VY1e` z!Unh^`3F4R3Ygg?t0l`;3izU8daPlqvXDHbAGLcOR5q;#-m7P?jAvG2zoc}qM{4(9-*K!xbwGXPs@3oj zOU`4ihgas~)3mm49#OmWb!!q;8Y9g0NvCXP(RMe+Y5S6J#9pEI>kaODWUGC@#S@XJ z$NXX#^woZK1Tg!a9VjfkZ|K7gJp&PqUkR#{FY8>PlwOG&zb<6ho?rM$+#Pr&YW7jH zfCXV17829ANP4$rxA(FhvPhAp>C6<1;ed{@p;4-(f~x}X&rfel{u}98%jxfJ1TQL4 zT_cfImY2Eqi+=yU8cVoWd?CUPa9xsL?r2EnG_XIYEllRDqU{%~e<*O8%$c*42!CIF zvKc?^_~2MQcHyn)#9c6 zJyI=}W^I8^+5P(l_6gcFS6GXs{?!DRBymW&$DzIx|wA&GMl^yTXnnCryp#E^sJBPapgXV zLtifA3|sGICH!m%X~p@Y&pO2*LIKMp!>f5(xr*OogUFSPkjbxF+L?ZznFy2BJWmpw zQg~tUu*l7>6jPs*?GiC|ja-&~wA+yw`J;#L^?4o6LI`SeGB7wX=ICYNV?%9cBIN5L zFS(5B3xpBz++V+QMTd0}eA6*Rl!C0$Zd}u@^)zJcU2J?Jx?A6HsekZ5`S8-rk~lY6 z^RM-(VZrnM<%acl)Z>K+19Qmxkb_+i>X2%=ZFc}P8H{cdGL~#U|f}s97<3|tfKSev;vRT|?RdKGm z3{hsnq?T0)OC|4oFdbCx+sbZ1=-_Gx3pnTzrf+w zEU}+AU;HvwEY~(0j8Z0V!BzX0kD+v=6@i5#HGu&ZH`fGz#brFFQ4;H_ViAwWaQyWh1-&movzndmJLGV}f5e&81eO)}?i3w)aFB zymFST`<5%LcnD4p&YSVRqrwX8JI2JtUt)cI{K7Q}9=`pUI!bB}Qd~;;g5>> zycz6h9o76y{Yk!{>Z~R6RJ;Ro7SR+Kj-e+Eo;(AyVkUH~FbvW{>mDN|bDp^ZyK5kl z!!`1>^!_vK$B)veN}L0CGw)6+7(>j-f2Ve2xY|BE7k!;iWC9-Wt0sJ3&U1U0lwHRj znG?2Ah(BdRJW_k-J??zky5;7eTC=pYekRWOjY*!$LS9x1o3kW3Ph1W;Dn~o)#P_v( z^)c|fFah{F5I^XK3W#KB8Wqk!Huc;f%Sw_vQeElCPTH#-6Pwt3Lk6-IdLfX-G)@5 z*@*F*;|)q9g3zlx`-2zQD}YB~?TQva?O#s|#UIEqpg(*n=mt8Tx{g7hXmbB(B(1G6WZpggN^zRZ;dT1069Vl9H8# z9LRmQ>XxUKIy+i`ky39Au!M=H_raiK?niXx=LtZwuH~55?d&O1c;(KYFJ;I81evz3}{nL!th|!*j^& zFcc*Cr4KDk)L=mn88JfqKsxNV-j$a}E2=bOE<}3dB=ELMailY?vZ_KBJK=`vb~>O} zf<9tH^76&zbAV>~CZl9VkuDz41+Y9lkyddYXE==2lvtW5MVUBV2#$- z6t%t8kTQtjM5y**Yk!`#NchTEBPAPj*?It=lXnSEa&_Ht|bh_43nU*nV zQB7VUi~0-AZ9{ZH#AM6=0dMWxOksVym1u-EK7t$JdIfJNNkZ zPPr`pRWH&uK8beLbyOiN7^VN^RvM+7#>&6_&W;+UlV_@m@tsN%zG9JMYY%A8HFFu> z<0LYuWiclV#hzOgu%z@Iq<4Gv=5sDcc+2d<_SymAW)fC?-sx`Lbt{Oi+Buc*aaLA`8!5 z{_zJojFx6BBBtMhbhiLiw!7p(OXfQ|eGih60^>eiDB+e&LZ*VwIanVzCHsWtTYx}`L3LY5;F(C%bqj#Q+{VDo^U1Exql%5WNywETThsDIxbII-O=}q1N*htZykS*L$2Q?QSi7|yd5Pscn{q5A zZ@J^!*vH_!KS?b7Tb&E2@I|9i?W*+NQn9K5lo6K{JIFd{`N_K%&4$m_?di>7#f2js z2&NBd$!>&NNo5NTP_e&LSE{M0jUPokNnc1Dy-l;7hYDhdV{(4fN(%-ji9#TE=(04jh)8qi8z=@=mv$r5{OS+4e)#OcE-8R z<41ke#$@hezg>%S<<5=QwQz3#EzHhZLO`WJ2@j(IZk-y`Bj6Q@de?z6<_fb3=HYug zTQkQUklVvgZjXl#AY8bv9A{6tD8^ZDdI^0RQ@El+9aZ&(b7S!j9?p*xFI)2THYI67 zEKF|@q%NO)y-;qoPoCP68iN+l6==BA?wjj9gE6LMdRGi7P#OOj8^2>4mX21W7Q(p2 z4?A(9Rm4=uqtJd+x zT}Jq3QUx+Ip_M)<5|*ni#H|8#l&h6On9xN4MxwV99o~2;^>(d8QDo&>SA0qe_bQ`?0v>MDt}K62b0iraYLQc9@Ja z{1m*EKP~I_OyyKi$#!SpZKwM)#MBkdL~HX;X_#D3d;dNcAHC9(7yC1($j2iMA+(HG z?cd*y|1wA`&`zN+;cG>#3QWy9V$4|VH^H7<#0|8>?X5oj>sb(Brieq>KGAMeNw8jf z5&CNlJW(EsE~IVtH@VOBJ~u}c>CNupR~=3n|EDV|Yoe-15gG%dM+a|BT4@*mM8*g- zrZKLc!NxIerll*K^{Q986AeBjvo1nr>fSB*ET)BE0iUz?lDIAWo_dXyx@#9N<8R>U zXgFuHhPX)*gW5rOl4}X7&tqLFxfB`;>yNAP8+RBlUWBS%mwRn3Wu`X+j)lFXJUY*d z~52^9+zPdD#nnP0V>444SnYT3;i8qDhb z7fe`6$ckK7AR$H)^rpr%eY%R(!9oy@63KoH+m)dV+7Xm4$mCAlYj5w~@9R6Pcle?^*yM?K{rKq{9C0qb_ zxp@WNa|^%c718G96BQ5^<>g`L<`(7V&IgW@8{b}3M_ZK^dbrVA_EAKDPNQiP_( zVnbUH8?h+TRV*QrQWPYbLLt^faH)a>B{lI!y0{BQ+B9OS)JlbJs|(f=1u%?p zd(VC6o;!2zefQlLcY)Ej@6ODbGjqQA&Y8LM?t3V8HaQU}$eI`S{H;fpohkXNCSDT4 zBghaa4PTvbreG1Vv+Yl>n=%5a$R*BXV1R?P-!KQP;T7AS-^ejLBd(`^b9P`S7zFl& zn1k9g5g3=<{j<=bW$T_S%|6yPvt~>zyZ=n!pqE>|Kcno~<@QT32%R1R4bv_bvQnzG+Hek3OswYsS@g&PZ zLmB0HIj&uD)W+6N7Q1o*M-G_hB``??m+~&7WS>$_0x0X#tsJk zY?ku2d@jtfDXyd}&M;z(iy3H}2IMs3s|XxEkTjho$=KX6sg106fhOhB$J^KZ!OCN4rZaRum_WvhBdYc${cghVQ*(oCBOiz%;2DLZw9DR zU|?S+x8fA+tpH_pC2m{A;E=N3w0h;`?iINeNBMNT&W$+|oaKiO%c82~myD>1)y+>X z%W=1=frHWRykV9Z^ml$dPd)X!^^xl-kG2FdHtUk=(FQVc3BYXcdOr}Ert@h5s)}2I zHA%oog8(2By~}!69{spjDuF3Jveisd+B5K~G6x1>Fk~>X2jyv40mGA+;Q~#T1DNg` z{d4dBpOV$qeD2_I)=-Ze6zeGbLhgQCj#wz$9z1wZ)z#IRVt{CiJpctM07fc_$>$CZ z4K$`tXBDw54VW;t&Ntkp5U~Y-hhmOqP1=}K6>wZL&5g+FF5QpP$NSeSx-Q<}e)a)C zAP7@R3k>9|5|HIgg8mX12_UgWvWCYU=rKUFUhk>X?{UEJKBZncMq55t=Gfwmi~d=d zL-D2K?iGP8Uc~XX4X(IjGdxXMuHf(vljtv*Lv4AGrLrtQrZGNArYdgbqQ7)6IXJ^I zfAx`dlrKEotv3I!R*iXbpm{H>>U4>Q%9HxGDX9u`T=aJtp2RX5IKW%B;BmFI^|0!> z{UQ&T^J+pnaGQ}RbM@_#M|oA46W5`vD~Dy+v;6W)Mb-4ia--&>eG663oMLcmB6ah8 zuVD@b1^O?$tk%r(vc?*S9$KtDVP4`vW(xgXW7`516=OlluLiZGCktGYY}AEn;>g$ z7Uy{9KQ?0s6xWTatxcA)+`-|4kY_V|rX%s8j38?}0?A^0Qkz`C!I1%sCicY5a2kfu z;3beYy?Ng{pzo>#WH}=+hO>y@Op+|>>BZY~u%+H==c^8mbgejp0Af;*<@Is0I0{XB z9O@cV)xjaw#2Lcb;~HqWm)NY>jxL7A;Dx|dqryvWrovAinaU>0o$Uvf0uC>LvF8<|g9rEXhsU(lqSBT_V~ z3OFm))z^E(aDFjl#E22` z8v1B$7P}&Dm1O(EU)^g&`r3{d=`;%C~8?9QD# z6Wdf%V9Jy!u@4hqe3;BMw()UBz^S`rQmh?~O$`As1ki)Kwkz}C8UFBJpz-sA{yS2w zIQVp+x4CYr`r!PxjeJ4N^R{Sin(041To==CWT-Fw4shr^NFJC4o$3plZO7McQ0Lw} z*NDk){6)aw%J}uXt9O~~o8}`pWdNeoQ^ar!`oA8APeBd*j~BlH%;*a*4CIk-R#Q#> z0z38tx~@L%wrROVO|^<$Rkg6kSp{275CSLw=*p*G2)gIY@djHmX5ir(V|le{H`~yV|V%B!UBA=3X%

    6s`zyz)Z+H3U#I?fM(>3q-YuS)~-ndhP# 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 HLVW&TY^;!N diff --git a/assets/1x/j_lucky_cat_sandbox.png b/assets/1x/j_lucky_cat_sandbox.png deleted file mode 100644 index de4c375a388a61bfab056373513fe1dccae5d882..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12501 zcmV;`Fe=Z9P)n;Lnm$uCMN^Z4=OW-riMrfE8+p@Rnfo{wP|n3joB5JeHTZ4pH= z^_oYLrl3Hf&@>IhFo@$A6ogSsnxU>F8Tl49E?reTn#8NGgh=Q#ib zL4;+Q*tSI+#kj76ZCik%+w%#+h$xI$x^xQ5Gzp`aFpP-fghr!=q3ig5i0j%Ira`;i zp8~%}7pmyM6nO zZ@A0=G^O&%f+9^b48uUF45dJ+3{BI}b%Qib$TEdt80fkVKp2K1a7@!6%Q7s>2Bk=| zwD=4x%OXt@&@_@H!Lm$rT_=eXbVCOPnaa?01Ar{c#{r5sPB2ZQT;nXuip9~(`)e8` zNs4KjfFjFOImRr@%HQSn%JFki7$qk?JNcEXuDYsKd>VVbzHh$q4VRfHRSG6al8bJb zzn`WVppjpv7n+culqv^lnkKI6k|ZgbrswxdQ_@rftn%*wnx>WaO_CJdFo67er65hy zVli~WFhnVe=jB3>$ttDt?R zJFmZD=~SFLol-dczHd@lL3zo;t3OI9JkKi!B|=k55d;BAl9a-;EDOUhFbsn zb6wX-l4NMmq9K~54c%KbSr$wt*6a2D#X_cOT54PMm1P++PtkDsz52OfXeL1Zk7bmr zCj!uQ9m}%*#Z3)eM=MrcCZ&|Zb=`86ZQCv|$ta4-`w4i<1mrsaaU7SE6Jg1B zs}oMs6vuJOv74qzk|aa-mPM&9(#5~az2p@|`Qn)XMge&8C1A)TwjVsi%=rs6n@yVa z8hbWwD1{)}01yO0i8mrVF{SE?g<)91q@=_W+qTOAix5PMs;ewmA%YXUldCnvqEYl=OQ+6J@pCAlLvkcQT=yZGK&8q_zZ4*~sT?rA8 zd@d_1-bcKfXp3Ac8kS`lwr!VMAHtLY` zkt%RyS%xaUyl?YH?%lkJM!iN5gdEtqnKVty2MNZ=1O+TD%NhdJIF8FzuWG38`$Iyh zYLZMqgsW*9zVD-H8jj$;exS-SY@D$4I+7~;BasUi6|%+fRkzeKyLE;mV% zQroNd6%(vlf(To*{bCCdVPsV=UC6@}fyhH;1;rktC?X6)`hA}yNrp^7)KVr;b)PvO z84O;$l)NYAByL!+NPxTQx#T6Lbg}Ecm?~7YL^MReS{AX_>*0A`DJU^r0F5Ec$x6wJ zD&D<$3$|skfAgmD%gsgu+qQ}0IA^zoIfx(yYpUL@YS*S|mIAt%Fjn8Y*yG4z$oJ(M z&+|&5R6S&M3|W?y*Xz2D@B5{|s`OxhSJ3I^^gsu&3))__!MayN0k^DKOSju)YGNXf zb&A1>=0s6c{s6eHTdt&lpxC`=Ua!|1B6D(2UDt6O2gh;BRjis&)pHq!QBG7aO|+&; z8s#2_VU*(#0IzyRfdP?2DV#8h5c(jXym{r_s4T;A9M&vud}yg`HcaJ-e>U;ho#dIK?mwY|F}{@IvC%hl|>lJR-|*TzAOaOw%la zP^(-`0bmiN+(QN~la*_#oJyV_hT$)rq+pkX3sq+znj@wy^Uj0oY#^LwvxaRurPjy* z!Z2dZ_MHGYj?Mnfn@ZIcJQ2;1RTHgHy3Xdk`&d}$aNmw?IF3_ZZ`*c>5w%*a1o9NxK|PN&NkR<9{nAxV;w1!Qoir2UazO(I9C0BUj;#+q9{@;H*HpD&rPd1NmQ%VQnRzO zs?~0*FRWap&Ye4_`n{f-pPyIVZdb)|th(K<>UO)T)9I)%3{|_`R;^Y`MNy>M?Y8Rm zddl~G_1W8(tLd2;)$R3EYkpq!d|#b9b4J~9&w3REL3v%L(@{|rsa~(A=H}*96h%Yh z4Z~0^EG(!n3{@D0Dvo0n1cB;wI!a}kdf}zhs?;3NN?ZYGG#dCph$@m;x$5OE{QQMk z!Xo-sN@3e}CA*hv!iBjxYPA|^oUrg8m(#v=ExM+$YvTr1Zr)m$Y0hw4tyb>Q3T()- z4A*sW9jC;MAPBf+)f$fO--qYAod4j*Y5m?!q;bqhv&r0itHix(8pX1#5?iWi7GddC z9%NZo&Y`lDpfGb&)KOGTJd3#JtcZNGETiVt==ORT1wrfg`{nh%@0Y|aNmF_YZKgl` zSqLKx&!zRz8*%^OVUFzE!{_e2i>DquhOX<}wP6zqMWf!J*YA<0Y01i;IQjrl6tQ;u zPVV2c8_O`5{hjME9GkS)=fZD)lI9;hi&Z>VT(x*R!5E<#G7kZ7A%=2Y5CoX!Afssl zBxy<%g=JRFG)+dD4Z<*@)owF3I!X|R=(@&evpJMzs0Nr~vx}#uFwoEq9o_T5(23^e zN&draEcwoJeCdG)_{{Cgsn;7E-m@!rp9)mOX=)$4J#dx}6Q z^eAEO#ubcw=`ct3?j?$HPvKZLnw~p^Fp8+xYQ%BOf$iJ!IL$Da|M<KB$F?yGcP&}VYG$&^ekA}Evx7n2$+FCWaN;;A zCSF9dS;lSa)-yLhk7b%njE}Q_%O-BP^KMMjWPEIlhY##0tz_h?T*38RoQVm}KewGl zAKLjXKMgEN1^*w{qy3 zKP5B9Fw7++8@|u{v6YPd?t1V8roXudHw>9;wYX>18s?OuZWvs4<&{{S4)^TXR`RZD z>?EGKn)w_2t%@31AskKDNRt%Z&haJ+L+;zQg*7{NlBOAZHm*kjjb;NwH#od&2T3J? zErFr9&-TIs?S(d`VKDvm?HHCx{ekN+-9`AH`x9pSeWqUgE)OjF&%}-U$aE9iFwg+Y zv}kuaj5Qk^e)|v5Qo^a*g`^)7t~kwSSFPpx6|2!#{0M#WZA^UQ<1`<82c5Y& zR&CzQy*sw!{`fSBX<*Lx(JTx8{wHkMxs5wFY$`RQT6h%RBPLgtZqz_?3P9FzoIJV~ za5W5rw5T@jJN6*8n#aNITXVZET&0jcsXj=$B8p?8Fy!^$xgK-!Dli=4RsTq)8`M0P zZl{B8n&`HLZs);ir_;qWO=jojm^*)-EVHmCFTp6xd_>ELb(7AgzlrL+N*rsPdg^~e z*L0#RWA?ibV7o5uy|-g|9-TjVfFMa}EwqQsrs|m_Z7Uu(R}76-yE8DW+{NW(UO{`? zw#m{A*L9ekn@86*HtgBQ!w2@4H?k}X-}g&U6V7nk>NRY+?iXma21cVv)PdTU--|YS z72kSKm*m20*w6i2lKFG=Z~Pveg$|}+K$@|1=~B*5&(OQ&Z)raH>sXJyi~sbF3DRyG z>(O7u2qTQEewD=U&{R#<|K6R{YBda{sDE@lgb{cy>Rb2H?RKfxYGw2-!Mo10bJL`ahy`cd)*$79X`lI`}Yxq0iV6&&N46zf}pG&$wPu5AW1VcyUDB6 zNn(SwKU_+vmeD(T27>^5w2pt%|IPW&f1lW`amB|rap`Za!29)^X#U%~x$5Iv2{nW1 z8@@+$+YeCP8I0&S+V~rYB8T;VH^C2D3cq!pC{>WAjD2!5#3?FGq0^`KYd29VaL_c( za*S0@R;`7Vbu~@Ht5zS{3mw8RD08}!Ht;+T%eHWegjSlQn1;#h?Cen9xSD&mOp_>% ziQ|~=!aU*3aSmMbGnW7SGFHs~I-Sq`Ijx)i7Bmgpu}Kw7|Ca-3mrRk(E|86Roc!u` zGGKIU6y5bm*8GhAy7PSWFKVos{S7u=`V+$bd2|%6o%0y2)rT}iYt&IefO1S6%f>87 zZIUEq?nv-b09voOe8JJutZd7|b-glxR7!Ej`VDkC9W2vg`9147v}1d2vnpfNmaRPf z@I$37hhbReMI6^9@_WSo0*2-C!^q@Kcl{anTNds10&92d#1BG_?A?v)IOv*2x8G;_ z$qh{I`VuF$+=Nl9G1hF*_kDW(KI?bxB27~c@7u@Z#5lTA7!P~^Z*&oUlF$nRg0F1m zlF#o){rD96)t7VOYuo7-<|4_hYN|q@p;|T;;y6Fw&NT|)|N5K%q5jRUzPV(Y0?eIm zw+!m4#7W$@kT$738HPcGL%p6BLX!LsQG zIc5cZ!0Od&_|oH#p`b{hyLg_*{Ctb^vlm#hcrhDy?V;E2ab(vHq9kQzcAm?YEu~(s z(`~g;S%&L*q`-=en|SJ>W2I&Y*^_L7fU_)Yo~zRMA3u7TUwikP@`AZE28jKIVaTd2 z+gRvyXfL#J-Fz~pWf6rT-~P(8^m@HAmN5*Yr0!zJ{`(*1mDAH)vUrm1>(*i07I)sW z9>;drzin&bMy--YL`g#GI-H-IW2Di@8>f69KM1f)iv!0V#Lx}y-M$rFH_$X_&CRf6 z(G;d>;`;$c5&l??!~BKwc%DlXMdcVJoRGy8_z;gUFowYX}%0+_8;JDJCZ- zcyRwdo_Y8oP?P~)RW;=$-s+2o4)WYLzlrbnkv^U*%hcJtxi{vGxlI!xd9nQyg8l9W5|Sx=|iW%H_4th@7$JYp}nSy-e`<2Yt?q{-;$ z2#({>_kFhP-N%=YK7i+WrKU(wT_t}KCJj=kgMyz4;QJA}Zj`xHNlH7mO}pJL^S@s@ za+oAZ==b}jASLpx#$V&(WIyeB|GKh;`d{lq-J6%{Qa#I-B?IrPJ*)H95t-+qZK5!W>~3VOtjUdY-D# zbsf)hX)Uxd4D*-v?1&4uEGx&&z@!Lz4vj)%{OCN7B$ylq0>PFE?K&iBuzL! zJ3myqk(_aoW@s8rjE}Qy=@M$5$Juk|NQ(Z#+4&Z6oN&eEmtq#Nm|+;8X_&gf?EF0I zckbk=2agSDhRdzhwC7U_i>1VO;W_&E3P+DWt7EK9ax zx4B8yOYMO{$z<{3#pt@mnX~6ux?~AinzCqWDmQ}yY?m!vjBVL@$vFzKZ3oYF>2$lL zu=@QzhM||ZcS`aL!A*47cMMx zICJ(KQ8cJ!$%6kfGZVoGhB}Tzx7QyCr`fERwdaA_r6h5jdko(vj$=OkgiOsi6SOeY$5V}>@t-bmVJyh&qD!+9(tHZ4;?H`Mi#x=Fi}lc zi0R4C+}$)#B!r ztI8GIwQ&QXzVCDIwrw;T^?cPV3;yaq)BnsJ zEM2~lq}v16VdltAdWL}(MZEgLOVpc9JkQ0oEc)#QJkO2!0v zdgdXzANn+!+rVgyv-F-_B>j-LUint6Zh}%>bZ3mrHu%N#&(YEZg^Sg&$dZ^ddpD2) z4cBG9)n;L#!<(+X2G`B;?xj~>2AyFLj+!r5Z@uDe|Qapa-Fi$;n3{BJc%$AHV7I+;Hbz+_q*NHP5SHl17$Q%xZMBiKgjgm#1LJe5-}$ zd6o{n-4tmBFV4zRH-Ld3pq9{VwbkZ#E+o{!RXlTT7!n2P&M08O#bg0!fisHcz5e8&zv^fG= zF6ksmSifs`IUor_ec$J{wd**za|bF@BuQG*^H@RO@1rt>X_=%+(Vv52#C3Sf#8sd) z>|VzEqB*|bc6k4o&yPmlLX@QF2E06XoP}P<)X2~+e?Cc!R zeC?||dF*Hz5DO*Ib)76t`QqV&eDd>O;LZ&jIl6ZbagtE0dF5gbaMc|2D2gz0+!=Hl zSe8i;hAeaz_`<3+C={k)@Yvx)Lv10oT8)K;4w|N8StfB3V-+qmP7+R^okl6ewO7BM zUfM$eL6Gp4rPttC2Ceyok*0-q_8jjvEm-(xd@CbKGb~Hv9hYCt3+G>A>EcPUG^OTw zgkgl|y2Noz-|zFtlV9ekhaN;_S+Q?ou=T+A{qpa6y-u2C+`MWvdQn8I2A;Y10zarE z*fm|pGzNwI{7023h)3?bmq@aFMbfBjQYvga&jpzn1tsWoyM#f=kAC(d=cZ@)(NBJs zyUQfzb@gjmXl1lo35KbWI2yM{-{jN1Z?HoDe?V6lx<-~k6vCSpUxR5HjE;`tx*p@> zW91m0eC|1(dH5kb*JWgMv@9~pUJ4P?ZEMyMMG=o5KExyU9l$DLM-iHMYiZIdh12i( zqy-TYckTN=Nt*xNXf$~I{=;aR&fOa~)2I(zWmd!|IhRN=irSZHn0YFqs1XHWKoTcJ zQOKI*3)E`{wVJ__Wd@BAc*B*~@!mJSm8Ij?P;bKI;=J(p+KGSqwHcG?9^J6QwfzAiykAi~wzM<=nb@EkP85%A2uQZr;Kp2k$GfCyq6e zxZtaZLAT{-~Iv2?`$Cc_lMC9ZIE8jH8k=-bItPQ z+_Gvl&pr0Vq5eck+IgNwr_$t0vP;Soq^@h2ronsO^)|lq z7k^FU`+O$oqW;YdJofZ+%*?kj(u7pg^1WY5qvk5^(Ef9&-z*kbG^Q{(77ae7{tzAdo_j&s92g$^-6s~-9v^fw?nhmz_ zRC@!f&Ch~0)h1_&$R(GXrYU|9FgY>K%!OGd#>cQsv)pSr(rohK-+DiB9P`|N)%eRJ z-{N=NzhRNnpk5y*)eICpk|@M;9KQEb#0TDT70%RTo*hID?QBux9%pEPR%gZKF95dQ%=3AGGAn~_;MuWFm&4OHZ{-7llFys7wxUp zYGtEjuh+wKJu;OIr807?G6{=Vvq-Rqr6x!|cw}UxQWz}$SRNJ8njZi8(bHnQf?hj_C$PuK60{o@npD#I{L zEF)$0Z8w#8*PfrHQEw0g0bY^Z*EEfZu`%x7y^AlbT*WhwJX|Kxh3kj_?p(hC-wz1F z5Yw_49ch*w7D9M)D;dh?*eEsFge5+|N~oj&FA{bfhhDEYWOChJkCA4RH(hfDFCIV5 zNklpDhj;B{`MP^};@HtLxh3BB6F1$AQi`V@I)>}I)N8f8+}!I?uhmKb2iZ3-B(UM3 z>snd-677*M2;q}_v4C}Tt706-Tz%D*IXks1uDRlJrY6St)4%*XJkO=q>ys5NE}rXw zQW(W)1woSW$cq|L6k-^8_eSmHSD0wj`RuYev?Q;58rEQYk|eW6Mn+1`H99&91;$jj z1}LRyHXC$%eQsH`nog(7#N-5~X|VmigB;zvhqQo>+%s2p>X}7Ore3d?8!5z;q=qc1 zM8O)-EW(KWr)Y~gE3l5lMQ zzOqxb*X!jS_GwC^(a7svMQNv2%gwqJPQM?NOt{*0AR9}ivMGrzsf>y?-MVHSyEkqq ztCwP`X`1q{-gGVJrq834;>_7;&d#isVmEyVg8|c|vh{6!({hvqE4dTCh z78UmJmRw2JohQBSBj~180i_=-!z$=7^m52@V+Z;KBJ9um$q2mg3=6G!#>dC8oiV)AJ#P8b z$57vYj@qX_$P2F=XKHeyq!m&!8kBXC5;w-i#)jab?*}vrZ**+`K5kjP7C#6$v~veW zfvu2t(GR(D%d`qR8}zUEMY%)bEQzng6WB#>U=&3(8;#O?Se7+Z0rgy$tFCw*KY!sx z48vgI!Ud9_KZa48;C+|I%yl~ifsdo>7}^3^Ly?&+l4J%e2~j`!4&IVW=tU8ZZ8O(u zG1_dF-5gS36^bFmue$9Z%Q9TYrdF%v+Z%x>j+mGjAIf2sdp8QAnVVJ7*B1og5Wy3M zEZ8GjBz7!BF$e>qDB{BG9Al#+L!B2C164{<^E}MSahR_|*yU{vh5fsmQ7FRy^HEH% zj*3IlRAKze$I$=z4>5Ew$ChF{PEjkj%6*~LNF1QmULaG7Mx&8yalvOy(`5ga&D^?X z9XH;!0y#G)3ZrsIvbb_x*UFMo*`(d=_VTuT$0@@EscK3xD~{vR)I?a_ZWm3{c>cwg z`Pc7$XW1Q9?b%6#0MjrD!hkow;cB$w4r!`*`X#vV&kta`9=g&=k`8fE4mN)Jb;do9 zo37Icr%w|3K1&x*aq{#Tbp0|6T`TiBWns}U_}R~&&l6x!9vqM)2@?|&JoE5_+<5m2 z95**FtJs`d&F3U>jPF-=>PefeqzeU0#0^&4YHiytJ1hnrnL53GkG}7-P_%W3@Y)L< zUORajP1AVYrOQY(o$vnW1+sVkJ~w^l6TEj>$h$@^@N3IL-Z9bQ*Ov5n&+9baHQwSs zT-FA|=6k1mV46fxOb~{gIDLjrK|p03(=+FDXM%?7xaHU-zoTgyYqsq`*L5D;w-?_J za!stXpd?8G8qChM2bzxtw=F0A$FHCn z23csMr4iVpT=V;@P%3A#PQk-w=iB+j3==;HP%7i}*=fGzsN3!4X_iV$oYcz8wgacwdnt{DQo9oKkRux;!7dC{*sk<1|Ki1$ zIem7Tb2I08^~6bnAmqaAJf7z=JKriIVUzDZyPLSvM)@7AkqPW~ejNR${{=k_(KS$U zK)MPon#5tBfB52!j5Qm)=YRhk z#*2SJ)}A2^eJ~yV`n7qCT8+2f_+`9W9fjiLsWZ&A+E_*9bJ-Z8g+jC&gaN7#h*WR z10!QoWPP7FNkC6{=N(_ga-6*2sA;_L(yQcaGB`uW&~@yBm(^UB_`;9zL+Ybo(MGfs_(+Mn@Z^8df)w3h@(HDeuXTivhgvLp@U(dn+9p7==8eudOf1T%gQ|5q5!z2`Vb#7SN~af%mSeT|>|;st*G$_ak{ z!b`k-{59s=Esmc!!Iz$ShCle`H}U0&2wmgy-`|co+hSzz(**Nv8Xwz$;Rl?Zo+*!# zkOu8er^D9$_u>a3j~_n7)YKFY?AeX3>#W$cx%9|E5adnTtx9Poies`u2%;%c!>acG zNl%NYpb*8!4&BG?>(;aOw%Zx?GG07>f_J~=b(}gk!_>R3BJB1!-D>ll@BSHII&wdr z=W)ZGchT$h(G4Bf$#>kGIeUhhS1Z+9a>b7yIgAF}xnUz8`|$5lx5tRzc?B<@o93PU zE@xkTjj^kjaBAi}-~N+7=J6wk%cck^Ql6ikBM1XrXK?aDmSyxSeSvvKLJb4*4}biU zdh@lH6UT8G$qMLJwMPOziJ_|bi}li!!B#B5GaN(KW41Cv>}AR&Lo!ukTX>oRJZ%FeItfNPHj7ws`2?{X;oqp&U2f zy^Xi_pMLn_pqo_Jbh0ep2qKYeRWQPcFZNW@&@Jyj za_~Mp& x!qwZwHBlI%>BC!kY}>}jGQub#Eow&6k|xjfixrl#?$ZxFI0%Nb471qQ zRK*PWUz~?&noLbj(Czlh6QBD1KBj5lI&SHqZQIUw3l^u}$sN(O!D(nRX~7f;A>?xy zoYN;-RIP;izE763wlWSgDmfv!kEp)zsA@lQ6h-BhrD_wk^xa6fkY!m}vX<+r!KYy9 z!R`5e&$~BoAqWEQ*|nQA&A4~#<}!#@N)>0U>I1WS{>78(+N+n5B!hFXsvVZnWm-+4 zN{l5gUA`k4COdG-=AlZbsi^P8%}vQduGqYl zM!inA-{Xr1?<$Rbs%3sMr6SM?YM;bXRK^T3{6!&|_W z8Zu)|%TI+Vy_K|{3=U>Z%gIR&S(4g~Mx$JH0dLWeIF9M}`!pJjp_P~KcDr2~jYhf4 zPbOUT9#WmGo|GgL6oH7gR5eS4Bx4i73WkX`uimx;r82@OcLYcG?jAb14#06L{W-4V z0E5#S#WPh^Ssoz5tO8(lXJ4byDC^V`k5!BN(iK)Em{kz1{w{(M^QoGNI0+eNwL86P z_Cjm{b{srJmSt>Py(&NTHceQweP`K8JLu`L2f|S(!Y~-J-KyPJYg2I?=YU&b($y@# zm|>M+i&@BFW%8MXCn5-?RC(B0RpqNfk}=8TB|TEDj8ugzSw2nE=m!B|6tZ~nVxE5R zD7ILztvXXw<( zYWVQWT(s6r^KFE6=K)#R#PNswOzD`gYGClPeD#8b8LUl!Qvx;}(W z0K53WvO!jH8O7(q*9oWu8McMJ6jiCo3TCS^!Tf0M(OZ z1xGGk9a$k+8Cm7(%1JCF_YzRAo>(Gdsm69yZ&M8e1VeShVE6q;$W(^!2i&q|9S0wI zv|JE*rU)plHWKuDe(6o5QJ~6-t5_l+DGwKKQ3b%N+6zWhP4r?Dlw?|U6{{SjY8oQ6 zDlW=Gh_(tQiXZ`IE?i*IxR{ZOYP-dOh{79$ z0avl1S}GB+l{$O109cKm1RtvAaB-fx3anL=tL}^u0gC{uUNeqk9yxID5KL5=vn*K7 zurg+Yl~u1RCoknB&~=jP4P`(Vr%9{YArGjY%qZU#bF1P|)dOBU=;}cm zhGG2DgquvP8k<#3Ut%N?R<--Jn#8M)Q98da_FCg(Bi(^;tfcwUD`yi~HMvQ(lT_4Q z{+9}cd@ceJ&rvOwRb8tHRDQ2&q-c}?bJ?p`A&t^`CY(vG5f&{k(cp{E_>pnSfwNUj zG)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D5>QD*K~#8N?OX|T z7S$Dg2)NSYazO3jNU=zdxFALav94%~)P;&$WKReo2?-%#-vxpgAb~7ofh6pk3vN)Q zs2~U;mVguyH;&R8t4C=)Qf&p2zVE$vXWq>JX8!pX7K`6G^Us^@&6{uTz3<-p-u&!m zc%zY8TiCd5Z-XkHa=87*D;#`S8$?RyYukwJQxR|N{6wsYq|?Nf!l_IQ;C_C=5Tr&w z@Z&q%8N{fbA8u&G7qu4KYN_W}+GX0$_qon%(9W}uq3+Wh#~gJyw)w)(6X&b?#c?`U zJI`?q?%}8-^ct(3y#5E;H04JmAVH8GhvWc<-+5b=B>LAZW=S=RSaS73wdem6t3NrS zN;X2s(a~?g5;kXcnOJ`6sF^*QEu1}yE#k}K!jWpPKRn6lvtX$pW%0+1UHX*Vmr}ie z4Xmz_8$Tgb&l$s3A34ZYw{IiXciz~QEh!wqmK6?HXPD7MtvxZRmjBf4V=r_rW0Mp3 z_L_bCZpEx3Wq>>(223cQtxDb)J$Q^NMTe?6V+A2>+*GxPvF2NzV|V`c0ruLqb!v|p zzT^ze$za|28pOm4V=9VNDYV|Bn-f*ZMvuAERf)0Tnd4L`80OCzXA|@Ci*je}JG>h@ zlkNNPBeA)>a2R`RSb-?J;YrStq~5}s!|p(007y;u&x+Z+0R#B4;22R^s!C2ms9p>I zzCjgitj5DA^eCOCO8muTO;n{YNYLu!b*mwLB$7`U{pnA$hfW9#K4JW3mw0#6 z$Rf2M@Q3Zu+!a zJmewsD?_9O#CQ>+!-@WiW4Avz zIlkdTP((@$NO2S63D^~7TZ{lPBt@J^_%#*W5XS>?AxDQFF%gmCh95~fL17S=*eWP8 zs^*6nU=ut^;h_mF@I&;)2tO$Tl=Pq*cLRavu#C}GY!wbMk&|9k6-b?o#1JVy@FdAZ zkU_olo(fSph)KBO5|-TienC*Uz|)r;gbtL?35USM7)XKVjb&Biv#mvkk)&`0X+Td! z!~nH>|0dSqAkDJ@NLef^oh!H z)bt!SB|TT|bzYsG0@0dU>c;a?X>2Ad;AsE1zN=60Q{l zttc=PIxgTHp=FSlDl}^ygf=~(eBnSEl(W6BNQWg=Z zlmet?I+vPgFd}oDxAb^HsTK^f8;GrlATNZF(`&&pK?Wp;)Cp1paWom^NL1>WA)sox z(JObBAjr!&drA(7S(MZ#ti1^frBaZZ{InsWY{KNSS!_z#Og5D-UO<|Zq$gU{as&As zq)8Kp6{aB=|H z8mJLeEGB0&&N!juAhv=kLABtif*42<4V@siI*~Zxl7qk#!L6GZ1fC}vCxu!eWkEe7 z*5fmRr7@2+P6~2>Ng2c0#EcPa0$+{?j(M8&rwSz4k*|t4O^U!1$u4995k4GiEL`(G zTmI4>_RI@A+4IluU~8Y-&epHq%HDWplR6{5z~}=d^01CL*@Z4uFv}Op=Ky*pFcuWO za)6b+yr0cq>mRdiefo8_{i*eA*UIoI%^<+&0}+EB5^FrGSF$T4hm6>&mllb`|DXgr z0>fCRz0F+rIkV?&O7y(%s*oJ=hG#d+g9>|Byu{i)cAwgc9`MHDg_E-xQ9cJiY(+rt zK|nVfFJyG%MBmev^}n~B+T+A+58cXcdbkVg_{i_np7;R%6vc5M#_ySo6QnGeDqD3;?wvn-c_NbD&l_K#=Ld z2|rwN8QXI6!)i+cIb=%SffOw8tsi|iF^BW?Iji6Sr zF>afK?JZAlkSF;-CkPTjFr~MzDIP5n>;>E~!+wGozd3?m=dgy{IV{|aSfk_sAcMxrp;{nDw>f@>>|}!8&Uc5{ zF3PQi-pPJ~=gcnjSRja^WaN-iXJ7>J!QD9bUsDweNi3QF?Cy#c)| zcDI8JE{22kdv~6bt0cFctshoqwIlG%F4!DYtlJ!*(+)XP0rQaQIQ#`PhKNC?Zq@{=Zn_shZ9sd_E*wu8`h+;vuEd_Nvo$CDX9a+#iv)<1w|!O#J$`Yl$~eQ(Pr-B;@bDJrip9tEVmS9i+yOz+7XrFyucGCiJSvh z?-tvrutV*oVxOBF$Aj^*u6{ZJdF#It4;QUL#=S4=^+!<`k%RkD{SH;+$K2$gzFpkz z&^28OGJVN0s@3^>JF1cyTduEDC5Z>Op2HHioT0WDOWRb>vNrz6ayQs>Yk+aTzesfD z(Ewd}+n)GL#l}AuEn$ZiEMz~{*phqJ{33R4rPHbVc<^LZGNb#96jgG9 z!oIk2r~PL5nj~l2b$=HI*@U9hH1Sq5Hy##msxjZn@A3<)4tnFUe#ZEZ#VbVpXwNxG zN!B%GMgHGIzzL)}(3Wnq(nLMakF1W*R9g^3X$`E=)l=_5D7pP~RpJu!+P_pOKB!x= zN|hLEmSm5_HmQ;`(a;vOi56-j7UXk+B7~e~?{`)uGurQ(EN({m5bB{!D7?d-GV=JV zU&p1l`gG~DYKyCXzdovDBlqm)Rxbvidq+G)+aSm^)%KzM(BW=R$@%h1??G?ej7AIq z>b8NT&CV)kbZMqa67dQ=FYMb>l_VOfD^$q_Mc)7sru#y`pN3beQYb>ghj7^4VUok< z;AZqz4z|nW71j%bTz+d~u@9Jb=XpZM(Oc<2$^!cC+gqt~39WlSsO*Ie7-V{o9|mS~ z!#6>cb*YA`VersT(%lG54nCcxNH=wtT)W@G(wh&n{%^|1L2uRc!zxiGV15o6U8^R$X$$_oG4RkefW5F%;EOiqT#89JP zpGHnBV52JRX>W+i1NTyMT3acN_^v~9#lu^z*I~00W=D#v{G#Y*rx-%Ro!Qyd1#Dy zx~IK$ZH`dJ{yPPFV7vqXb>ju#OFcM&APisr5@FMup3cUoeUTs{gA5?Se$!uC3J)6I z=_{QMI(iO(d>}VWZ&80hU@Ct|_d|Pu9-h{K{-xf<syat^h7OO+&O^Z^eH#}Bp!KF;eMZJz~!CjqgQ+s2S2kbT1Res>O8R}~@#^K-n$ zt%y*npY8$Zf#-n?na80&`tZUtqeB1XC9pw8W6=<-(GYwXvaZuN>L@3IN9DcWlw+B* zQ`0R`r>>WXG0k8%5#yepGqZGBh@r*#de;shDks!s$eHVy!A=Cm6kF-IWY0BXP>&=A z4~GWg!EqyejJD>+Z`Iin6h0KDW{8Kxxma+m-z05-qycrCrrM$o)TP&}FFL+XlifAG znn8US0>*;&Q&)ahfgE!3f-z+QgXT_l!R~+{k{~n`H$|glZ`FwP;*x{#LAd|*M_KXh zXE+=^Q_2FpiUQ_6zs`EKDNt8;+yJ)Dv$@5PVNKN5fxIH6E;axd`h zLsZEw9hdI5hhEWmlLX=GU;yER4kWuqzJ4fd%7P>&D3G%FYVmTB?9y>0#ViT1mpU;B zA7UDP0P`*PbP#DuJ7BtD-;Js=*W0B9>EyC{e3H~J8W95mvC4j%|#$BQ6ZQznoai5ri7 z?OW?X=;2VW$q7vOBt0f_?6Q=qIjb$!&Ao1yK&#~HveOejEDDb4V z>LZ?Z9enX1Cvf;cc>6kMv~3DJBLRp3Kni{L4G>w;LJvHF_p|a;DL5h~2S8Nr4m|Y{ z&qzQ%2*@B8A7yy7(ZD_8iNG`5h^H4KRx5c7A}mGmo^9t@J(=j9g%}?dqYv^rd7doW z>fp9HFzN^*X&s5p`EN~?P#bbMoAS^F>#x#vqwc)Mt^>zp8>6y0`b2FcyF|s>Lqpde z-EyXb9K=?FFuombI5?W#N*@l^V=L_Ye&A4XuG1ZGlB4I5F<}ztL`)85cO?ui6W@>H zKT5m5l_CE`(M1kjgBz!A;?A5#j(iCDAXpFY+EPBOR~?RRzVP$*tXOMZ5AyZ!0pv7I zPIX>`_B-m3g3;V68!!|QEu}^BN4~)*VRQ$ z4kk36pAi;}{SPB; VQ6$fhMOOd-002ovPDHLkV1fc7_c8zg diff --git a/assets/1x/j_mail_sandbox.png b/assets/1x/j_mail_sandbox.png deleted file mode 100644 index 9574e22f5c37380472a323dc2f8dfb8aa7f6ee4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9128 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 NATOgLT_b54@?X`xn{@yH diff --git a/assets/1x/j_pacifist.png b/assets/1x/j_pacifist.png deleted file mode 100644 index 14b018ef045c7b55e46581dd698b713a45ef33a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1985 zcmV;y2R`_TP)Px+VM#X{_-|siSH#3_Bnn;NOz;DlT0Dz8oJ2r}&rH0n1fpo;%V;jXy0KoC1 zeb~huD{T}vaqLKMV`{boSXf*p!-xSu3sANg0Ff33sI;H-XaRtY;$|u8!Vt%f^tz#? zrO}ny$uz}Lu*>@tU~qV(YWx1|jZiAH)9|z$UYIE1DbD@b8&#GP6{`W7F-J*L90gKw z28Tx?9dCeUKvp6ZhYh?WP?Ul(;F0G~SU{=wNm zYoY@H@Z*_@s$<(j-$<`3yH)x6dSblFB8Wib4hJ7UsX5ki^Bw@PNOvARci(^Y#R1>< zH$_Vv8@&Pv(|z_Sw&!91fR=N$YcokCVtXzI{Q9-K{qrAdbrUGmJjd0Du!exo_8Re~GD2-Fn#Fx$)zJX?7~hcw5euTv4ioK(%Nh;Z)_?#B*wf-kXZT zJ~B{4*7{$RZ+foemMLqz=p1^b^1^?9ha#{G$K-;SJ7zJe0 zPls>7f%Js%yks(oY&PruC6h_vdAvKB3M4|+CZn!g$7;M>iftg9)94B!LdUgeg22QD zL(Pz5qeE^W77;YC#zuz#A6>d`XwV)B^h<1XsB$wd`!$8Vo-J1gb`098KDp_{ucEH2~t(Y{#d1MIx@tW91Kx|a-*FnqbXn7WlUadf6%SV$m1 z>_UEGjH*lbGwj=tsTrW`T7;Jn`FtJ#U}F@=WLb@sm0dJ$Bb%*cp}?Ha=iNrjV9${S zbe46;ai?u~{EUMKwj6gri>aVjJUEb^z=hBIaC!8sr$Cpl-^Q(1IpsNYU&7YBRw!c>7_m^qB7bbTIA81GyD%HRA*Q+S4XeW2Z4b{Qy9%5VSo${Qy&Ar?txC z?=5mKaxGnpvbLI(t(e!$=DOoxU*~?Ua`$!a_p}W5ezFh8&uFG^ad@jCXkJPO)_Oks z@1Lqy6RVNkS7be+aUB^}VvemDND?L}qA6oP!8x!vyfEynrWanWrR#chU%pet_BUMwQoj-A9G)V$eY1c)62q7wZ?V@`Jj2sNa2< zxOhs~0Mm6kqVrAH`>>Ae-LumYg$T9Y&L0D#GvdDo?! z!V1nmoE2WLbH7sVO`!GEfhYnW45fm2vP`qD{E&deiy>7=_)1eN7wHM}r@ z`EuRBZlx=bh=2dChOX7L@VHKSgbiT;OEE_z5Sco?QiIrrU48iqU8`wy zt){WmmcontUs!5Ox%;lZeC3|YU(c6Mh=k$MO#-bClg9e?x!bLY4rShRE1tztTgu(u zy*!Qgy<_h7p{)!q6vgvdR4yxyjxajVFsaqvinkz918fjP7@cWg!g^P(D-drrB9_`x zxD~ISHxDWd)sfwn5lWup$AWe*PglK)uqlj=K%pgpI=vXd#+vuNV@iQoY{eKEp=QV= zP$~DO=2O2=Oyba1rX~mj6@l1*%wA7rHf(vnEm-s2`eaG;iWF*uA>Q|n0b3bt&Hw4{ zqwDJRovXS{&B*4G?xr#TP!*gHZI$<($#h#2f}iWxNeZpzIewr@-c7B$`_5##0fb{A zI?HM5HXZDRsMiS7ZA{8;xHv?;;)uyVgpAbxvJl0YhU7Ur9UV*EF>cieyabA@<>=59 zM?qx7@$*HO$cV$!49EAH|@b5Q(}# z)PB-~4al*Mcsu)(B9Vjrt(hhs{0|+^Qg)`gt^NQ201jnXNoGw=04e|g00;m800000 T0Mb*F00000NkvXXu0mjfT8GC> diff --git a/assets/1x/j_penny_pincher.png b/assets/1x/j_penny_pincher.png deleted file mode 100644 index 0263af27f1ec461a3768622b23008cb9e2fd7421..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2295 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 diff --git a/assets/1x/j_pizza.png b/assets/1x/j_pizza.png deleted file mode 100644 index 58f4e985146f90feef6c2b74cf5c8880892c6d5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3398 zcmV-M4Y~4(P)Px>=1D|BRCt{2U0+O8S04UAvfqZir)KK_H}8B;4I>W#@&Tj80NB*T0O|KH^A+Li z+aqSTT49O#^2%=k0MYSjRKK-dS(q+9o4f!p5FW$P`aL-*TNeMp>3^8lH}8B80D1Xh zMj{3Ps^8j<==ikqA-ec%@&dro`aKv3kL9FnSv>pRgaS*51dYM#+cjbo>Mt7V7Qc2zpgvA%|_s7dr1)h#^GBrxA_Ma(Sx#rDpujic;*XC`EL9 z8apdW@pNj|3zY3sFXj{LD$Sd!A6qY3*(zAbIa*F;G$={mWz%!#L&R}gU)tZ>Sj zKjjr$o+!AKSJgu8gqmQnkjWTgTMt1ugy+&)UaPXnN+t_gY3Hyb6``ZOS@|FmJ6XIg zF57q~d8eKyQL)35aoM&;AlrIEy?w5Yzich(Vz2z=atS3lq9`{VKVj-muB~IcQF5)U zbEzP+mN9iLk)U&@4q6H$k+xXD4n>$qS^TPATj|DN7=Y2u3CX2p^IA3#EF_ZJGGzmR z)IxRwojbu(xCMaKI;MEBdpRYAKzbmOO*K zpQGXUhg?{4>aLlusr5EiR#pJCX#GHTbra#5oNUn;ysjiAab}25++Yp!UN+Jvr|u&0 z<)KuWVGM+=-Q6vux!PZfj`n7RdizX*fb@)bW7#b|S5{kaZA$9Vb>S+m(oz$o+5Nzw!niw=P&nae|T2 z2~=Gx1^{?3zlY@1T>wDQu`v3(TC%c`rL%IfaoB$VxO=V008ryQtM*$A?%)rbgGmYb~tFi4}W z*3h)yOvi>3G4q|}sJd3n5d@@Lk6Ty-S=R(Zy*(D86CrD&tP2F-TMer-)G8t|Lx4~A zm7#m@3xs%ypYRJ?EM4**kyMJyze z7WWImLXNDDvYHd>?bFWAsSFv|RwEN&dT9c6B?3!cpt2kQaN{GdnTNtgS|?C-X2=}o zMgKJm)odNm_>ftIdV4rWds};-V?VEG>{$#vfa^|y%5qMFB9Vysm%0>@K=~+-3~blZ ziLVTfH766;`G~329J!h>Dv@dtGy)yDn&1c`6l~jSb~jl*mgLodb|@!^9zkk7nLsAQ zH$L(L;6;|gBasNOG>s>*B>*t~E=?m6iJ09@%qNay*+MGFWF3oOhxCs2W@!siS}1}* zjf&@3i~)z_h;yt=(BIX9qGN`~P9&(ic?Kh+6BZ#I3=QKzU8ON5$f$p?_!X2tzxeS-$i~j@5vwC*4~Gj;1C{MdvP3`xajp!~4}eHW8HueE zDA=|Y0i>oFXN-JRB|acUtiQy^l|>^JO?RT>&4`XqbJHKyXeJe8cJ+Y>0l=(ASl7&1 z3t7}Gj>NNDfWJxW0>J1xpFMm8H2V-a6UU9q{&Zz8{S4p*a52@WAXuQt|1<4%N%3`#GSZ8w$CIq)(f$4-=^@%c=OGhc{aIPvM6MTl8v zIw6^yIDwjA+HYh`r1_1Xe7)r^mW(W9z`b+*+$nw?ykKh{03h=CDHqNP zv98OAgi(1;;B@45TVmpUO>hYJJNBnV`mA9%)->D#M$>bu z{6DS$@e~=K$zmWph7V5L zkfYKLetDP|FuPq8g#NA;GzPDu=7)P+xWB}Q;@~aweqY-#?sx1r^dm*YzP4dJ=z5P! z0{{;$zQc7P@m<7skU?eiO6?rkmVOa#cUiEY7mUx(S!|MhZNoqtA663_0)&+e7I_W- zg1_XK0OYoqZ1blMT7M4fqF}>TYoVUX5nGa*ymVju?Ja3q(HtSjR&NQ)Ehw_d zla-a;gcQSt&afqpUP4t5HjNCK?x~gvvTDCC3)M8Apqk(fgb(6E=N&}Hr@2j#f4}$} zZr1}@)pX5<(R1nki_d|}zq`dLT?*~x(qyLda1rhEFeD|UFy1vZtI$*uu# zE|UJP7R$3)$PT)Qc?gb;z|}m^A?p@ycS6uM6J1_10#)5gl|LtodYK{2I~agcIwj z=SjR9cvE{=M69>0Zfv&_iE`{i)){zIklnH7O!fln#Jj(%#T4p=L{ghqj^!HWv>!umMq6UWKZE1cnYo7>S~;( z)5Yr++hk=^db`~nPF7$u5@b~Y_Ev1nb>3VK0HT}J$uJJA6AKy0{c&nLQI=udkdte; zIS#(67IL+}L~9{Oy)wakZXDQ6>E$SmAi$Rb1|P_?M1JTe6C?L2(k>0eaNq}%OVqO8bNl0O(Dp# zZ;v_IHL{^x7CS3SUArt)N5OR)xHp{3!c%C}D-)LmyMUOr4_Std?6RPE*^zMFp6YcY z$hme|sAlE5gLUhMoVA7%w}n!W$r=>}StigV$gImk2G&MlMV3y

    4ZO3NO976qBz z9U{vsf<2A6u6@XW{-Z|O`jA!DzTLMjHkBZ=V2@L8YC#q^FR4COBEr^9s``2(Ab%n8 z;D7AJb`=^?Qq%v000hUSV?A0O#mtY c000O800000007cclK=n!07*qoM6N<$g48lgQ~&?~ diff --git a/assets/1x/j_ride_the_bus_sandbox.png b/assets/1x/j_ride_the_bus_sandbox.png deleted file mode 100644 index 169f506102f8fa192e764308d11f540bcac1f4fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1744 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 t!1wOD%F=!{|A2x0Qmp_ diff --git a/assets/1x/j_satellite_sandbox.png b/assets/1x/j_satellite_sandbox.png deleted file mode 100644 index 847b12391b909545e40961f8fcc59efc361fefe1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7153 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 R4|rezW%-wKH8K_<{{su7Vxs^6 diff --git a/assets/1x/j_skip_off.png b/assets/1x/j_skip_off.png deleted file mode 100644 index 2f2dd8d0f51723c45dc2e323816582c248a78b8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1796 zcmV+f2mAPmP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D27gIJK~#8N?V3Gq zEL9MN{SccVcpHEXK!5}RYal^#4go2`5(p$CQUb^=k+1+_kO*J{umJ*AKx}m8^|6j? zs_w1ZUAJe<_>-=te`frAzd2QX-TkhfiFvWSKJd%$f8H;f7svbWy!FV(!w#jq_x78I z{Y&K6KmIzrQqpUOy@g8_1MK_{hL9RPasByc%hu&^_szG<)~f^|J&%$DM#bFSyn7fP z(eZP{oA;5NQLb-)JG^=#c%9@cP2>9u{+hxzkJKy^ZIcmsJ&!MDNPf`i9gv^9<3>)$&Oo-wgJ6Bre_xkd> z8k-J^(F6f6ML&G`^|BT7@mF6gTRAw{OzHIcQdm~Dj51}FMWwVRpM9StE6Db&;j-cf zD!^npVNA9+VSSH&wns*a730xt$W}}*HLWJBQWWnq+Ozar^fMw_W#fsl$w^CjyhUgLucXY>{C} zt#fe9_Mi-VG)PtDcwcptN7Ne`=8LR3j89mDG1dcF!<*ZOl>k5VU;5-At6>@qJs8kE|zS->MHbdrT zdA~#0b5sDfXC?~2ypFwz{>`C=97*C8g<}hh_}+N`W=al9jKe}16<3v6V!V>cFtpBz zN~`ixTMcEe5md6yVS2Wd)XZ{HLEeZMlH-*YQ={c|jzEw%KqM%XqY|QiLnvg682+Mr z(-O3K5$Kf?CCymvTGlQOJs5!1i$G5vWI&RaoS7@(+494(QVDvcveGC9^cphG+mS(^ zYpun$2JYMWC_@doRdU&WgZJs^!3TS5o?&HZ&1v{*WyyZ~WHd2VQljLyNXgOod8XH- zX0)WXmX(qfl#)|XPC$iZ1+k2LnT~?V`W<*iQNOG#kN+F?~Z1hH;Jc{Yb zWWQlqZS6m!bDDZ5aP}R)(f3DkY*nQHBf%DCFVet>oE}{{SO5O}>Q%6D);_Q%>a!E# z(JHAZIY&JQlhvVU?em<9svz?ebPEun)zPYy+&X8G0#ullx0RVP6ZT`l}j-d5B*vt%4$>$*j3Jm7(yWxVuK-zMV2-*?cx;y&>=A2L!XxkZXvyF)E9WFVCqnP(oC9Yg=iJ1Av>ZI8 zw4(}$nRTmT3tc%Bfk(G?R0-NcjO{C453;0^0}=lRte}<{(3Hc(C`^)f?kNBv96g2_ zGRufkC}}I`Ic&(fJp-ghM~hU?@qnPJOjv096)DqOZO^V5@9PVRm6;r)>9=+m0 zP%k;%6|xmUSv*!DYAY1e6XYdF;rXEzGKBz$P%)=Qg-}oxT{)fzY;*sVsqvChDJYd3 z6{J$mO$_k_X@9|Xuit?5rJOQOEv1U`bTF0000Nn{1`)dPG&T=yTp`v3p`*totsckURwB-(8Gzh}>$2PKRCo)0WJv*K@M_^Q4u zK(#m24ME28mIV0)1J%O;gY65YHlPG&fk$L90|Vb-5N14{zaj-_`7}=#$B+p3t24Xv z4lD35Z2o@h>Hq!Z34H1;Dbi-st_5fI9$YRauxd)`+~x`~`HE>zPr92u6_2%kbaGZY zzmgC?r*`AK>HD2sA2Hgf{agF|s(Zt8UB|LH=MMM9IZ96OxoOZpv7xkVq1?I2QyI=z zH@&f#+dkLkz#HYBWe-uL+@VtKO06Z;`DeaLa7Ltyzj|mB$@!s1?L^<@${Qz@ee4e; zpvm14N;&@0=FJn%kT;1-_L@Jd>S0;4nfq(OyfrKp?>IL-E|DwyB-15w>Fr*_>&Yq! zb7NPue@;<7@Oi3&wcqnZb^irP{K{x@#;@z0K5m$->+>#Q2a1U{6WagFf8F~fbEcL1 zqHKQSC4P2Wau16A`?9;_S6HypubD=6uWqucUb0*)*ZCqn>)olz?AfbJkJqWSUfTW5 zpz(a|>VtOWKX?DwCv>9v>FVdQ&MBb@08)e#DF6Tf diff --git a/assets/1x/j_square_sandbox.png b/assets/1x/j_square_sandbox.png deleted file mode 100644 index 1352ac5488844b19073664bdf565a7665818ba77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4232 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 O1E?u$D^)8XqW%knm{%(R diff --git a/assets/1x/j_taxes.png b/assets/1x/j_taxes.png deleted file mode 100644 index 69beb6a119bfcb6708b93f60d4be5fd076bc2e7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7041 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 F{TFCo7{LGl diff --git a/assets/1x/j_vampire_sandbox.png b/assets/1x/j_vampire_sandbox.png deleted file mode 100644 index 72f245d641001c95a0b8b240c45d1dd5c5a458af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7104 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 Y9?}2C_+)<=LSg_a3Q+kfIg{Z30x`>(Gynhq diff --git a/assets/1x/modicon.png b/assets/1x/modicon.png deleted file mode 100644 index 4e6e73bba650c033b356a7b330e9055775d75076..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470 zcmV;{0V)28P)1j<9NQ)}9W@YOpiqvdD=L5QZ_3mPr zuQdoruYuMDM8n9QiAKElx=|={T&>>g`P_@0oYzI8hhA;r+v_zu-0#EJnk^5Wkc=vkEnE{Behfi5<3K~~K_O6>CJ=O2pm79ig4FEEyo;a%P(l>eARvhE z)`Ye4svsT=^4zdChL@)yCW`Q4x^a7gSP=gY!WPkYX7op+oUYS2x8lM-Sjc>dCah8cN$i8NfXyNSj4@2r$GD?M$&;S4c M07*qoM6N<$f(nYqwg3PC diff --git a/assets/1x/player_blind_row.png b/assets/1x/player_blind_row.png deleted file mode 100644 index f29bfc3a30bf75b734cf328a9d18ca7eb4da2b1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1570 zcmV+-2Hp9IP)00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj55>QN3MaN)ZwJj}W85xUFQHdfV00024b_qKG000Jb zQchF<|NsC00JFcOzW@LL32;bRa{vGi!Tl8#xR_ zCzkd9zr1L4^8in;E3S-WcFDs7PXJQxQ7FmR^XTX;)L8j)X))9xq7D)D?}&P7!9T8! zN;*W;ixGe}g#Rq7?1^oapCQVe@edOzZC5%()Qt#Z)&#OVNDM8)Di1@}#0QD*clvWg zo@D@XNP(VpLGeXr9WBs8h5o|%y55cehMQjatPB+33svwCWIM47XEY1t2`b) zUXL_U*p&KU0Ot_9h8N~xr+Z>p<(q`Ab-<))o8%B#HzF!0kBQpJ^D4=}*OiXL3Y*l2 zoP7EHfXWJ+M1(%}gz4`Qes#k3eQ;@>vmC;QI}-L-6ZlWLIC)m3I2pGFrvg$R*~!RZ zm+C|zDC#&i7~<~hqx=@%!+U~aZmY1RdD+CfkrigW7S8x9mv~@u4aV@eW2!=@YSAh zeTl$>i{T4*ljIQhB8Y4Vdtg)PIsy|I&rb{~VLBEk!mVjflRM4H{&}3OGZFd#z9xLZ z?G?evmk2z#ux(9Dd0rz(uAn3 zjF826O$td4@nVD!8>R#i8}a8AASx%bN=kzJ!43sx)8gboAAU|QPM&pIoIE4iKC;Hd z_59QvLKM;x`g|VZ)d_cjfR>;`%yj<7&Qv?OA`C$e^Lub|-v{o9+R2knD<@Bg|NF0v zRwkq=)g(E@>k%^DijeCJpv96(6$19coZspCPfrM^P6R_@d# z>2!#wyAjEBy)q%!VX9HeRb)$NHKUq7urDHkqfYsBU3)9H+7njA4k3ks)hTUwr-yiH zf__;NbRA+i9gM2bmONd6P|~gso-UlIoZNNlMD65`aB0Jxye3ekwz9%5Z8eQ3=+f39 zByHV|km(e3ai?d<+?M$}&1Fw^sI;#GO6iRVpi&NX3LChj=-n za&kLML~%0Vj;NfRXAMDNUqt@kZqTU{@Usml-V`af89EW&&B7C0Q5oW0PdGd&epC|iax$A>Z=hZW=JKYnwIY=BU zLx%|8@r{Tpe8)G=K|(Lh!#?z>1+UI8JKYn0bC95wpPzsleO5UR@!mvoXi-PdpdO

    sqJAMk6H*hRcCrFltimL8vI1G5k3E58naEad z3?FX>>JU-Cj-Ux$Gom(eZ1U$GQ%!8XMd!ngQ zTiIm681Hn5s6#~kJEF1j(a~$_`TP%x9qbqy7&f~A000hUSV?A0O#mtY000O800000 U007cclK=n!07*qoM6N<$f~%#$kpKVy diff --git a/assets/1x/release_jokers.png b/assets/1x/release_jokers.png deleted file mode 100644 index 19ce3a6d9edfc499e2993b1c0bbf1e4a04603150..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 589298 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 -_mpX}=qJHVM1+Wp-{3n2*k`FujXQ71L zwGTaKJ)hR!nR>a-nEBz4=mw~4{<@(`HTDW#7B~ZLY!q*m1ozg+w3VMy2tJ*y+5ulj zY6WCR=g|Sz=x&ENt!K#1!L@{m;JWuRhn%Fu^KS61(AdTxVZ|2 z7@Ia^6W>#*ip>Kc-aaJp7G%9{X8Es}o13wi+@)4)N6)$DFB53(Z-iGsngz3wds$=v!+DO2kGHznjao2Ajcz)9xevL@WAu^jHcx%C!Fq1Y(kwm(d5i+E>l^yh^ z>}oxPpB3AG^L=}s@DwQ(hNBUB0|9mJGnW_Ko9JA{a?fDwIK2HvAt$Qngf9d^IjLW|L!;1VIjQr>jEZ5{9MrR6Y}Lw_=NWT?ajc4gR`H}@f^DyP-!j~76z=wC)>GSW z=|s1X{7@>zFnQPmBf$Zv%OATq8Tqh_O*!6Bx?I`rJ6!7A`D_hB!Gg4FK51YloooA= zjtn~m(W9eRD&-2t-@d?ZBAY+y6-+H&LKrbg8Yupt$=3dpDZ!S`-sOc^uV)N=fIB~t zxY~3}W?|1crl-Zz0b=dyg4g;JJ{Mti;SS1}E6MJ-b)0B~9X+yf_T8@zY2G9i#UHmP zx+MHhFW@?({R-B+{E4)4vAcE)-f^@Aw0Q zB*@=d^Hm=0fA+?sPoxcTClrwLii0K-b>yBCvMPn~q`x@CL$sYbcH>cMY1Ow z$%%u`p~cN^4$$ED&|h<5`Gq6r00i?|XW zZay(5iW+cMJGtHPBB0y8XNNz{ZF${20^(C*zdDxeBQsC1xm5g`{S9{(r65Qk7e^?_ zOSJjK@UFqVr^0UsX=i}lK#5rk(9Cif|KDo3#0xrxg~^@$-`;EI&a;&SE78CF=yL$WGAX-<~VH&0%@X9&8Rke@by+(x(`eBip z0m?S{qR^lpg-ocS9V;Qn}vj}<-!J~3G?a8?Ap@Ix=c`AGE zaRiN|gjyb1ocfmE$4=*nS$I>U%SdTC1?G7X0j@*gMG3*&*AV?m%-Y6@Qtqw^2weA* zbXpEN6MrafA93~qU0*m>MJ7FE@eWMG_nt+t^?|l! za=Zm()#cA07C_e%V~Dw7*NXa9EPv;1b`|IZU3UFnd_!B)K~f`g4ZO=z>yuj&a+}nK zQhw@?v|up;Z|a0kKmUAuVg_M|-b+?AyBeqyJ^|Mn#T+gik8l=B%$`Zc05D-5 zF=V~xcI6mMwdHCRFke8W@PMv(y^miIkSN^N^%mPQT!^+C4aPpm41k=|;Y+qL=I7qo z1zbHnH=vc3(uh*owm3h{rh(}~ubFMnrFa?pa=9dX{E7|shkuH0NjC_Dcn6U)0zxGo z&h7`Dt=IyvGrxz+AwZ@hm7gYUVN>W%uVY_h)u3gb>2;|;P6(4 zvycDTra@rsDTcR1!An8@@%_D|j?c=0j9;|?cXNkI?AmziK&Ft7`woj?X~7Kwz|c)6 zO$U8=Vs=l2W`-M(@uoUCAWjo!c#e0!O0gEPGBch$VI#7uMZRfU`>zVcYF?~XsvBOF zO$As|PwE)ZS4FEy&@sI*;{o?#0@NU|PyDFEZ z{p>X_S9x{Q^cm`zrIqZnyR%msA#OdAN6WF^Os)&UnIXn%Th}}?hrPdF$z1+&Ywo>p zT?u{C*S4OyouPK59sraT{X2=PJF=bX%OwG`f(~>RddAs zdS)oUv{%fM^JuRrCy%g7x!OAE(toqt#Y;|DKea+tfmaj_7x3oJAZ@C;R%MJ2iNUt} z)UsC0r33$q81xq5D(50`l&P~%GgA)(9-aWom{VX5vg0V@0hrh}7+mq-VbZ)Y@g-X` zP+81Xc{$tqaI;qma&NZd&-i>I%GN+1;~Gjee&3su?@@i@!;_Nyp3N?FSI|(eKJlql z_643J06VN2q*xcL>c2%(2e>ca_0?jFkh&7tb<_SYBTsQb35YZEDLBxA!L$oFkP^v> zYYiixQg3^h&TDxcAN>EShnqzm4Jp@O97+DdWq#l+D(rDUb~lr7c51HjSOQRbt^yt>#KQsLSZF~{A8{>Gykp9T z4~b?9wfXCcwhXj}Ku153LIN6))46+*OISt}0B}*C1c;;vaKq=W6aH+ywnc|8S6}Ik zsuMu%r1RRnG^;L1E1RG>K6LTphZ=qIgf`k>vq0t&Z;T7o5|w1?IDcPYAuC^+2yOMY zV7ht3{iQ=D&6Bvg3s}MF@Z?xh=v_-rQ(VA>ANDNHUzA`O^LAjHa_&17sCbuOa<5pa z(w|#|T%sGR3@_BxUh=$;O4JpXxaMb4e1&Ugr%EK39USzley5e!j=6S-bJV5$e^hD zUQxfWn4^&uwtBryTfW&AZQkV-@BA zHTyw_sP?u=xhmA+WZ#p$n^5hjyE@>`bhe7yA3xY|L)u4%^ zO()_Fo2YkU43LED1dX>Wz~W9J`4=rPSS;))i3O^(Jk;RFp091CI9mtHvXCPg$5|G` z;;!?<5s?=brQ2AG>;fl(C5eR|zbXlh4`>)ad z>b&=p2BDnVl?u#^*c4S_zjKu(@_#XSl;;B*8&}m1KhmZ)81y|Ka1Wyc|B~`PwhRzi za4I1)2RFJfuHGeWOh?wmv(d*NXH*!bQ7Vw*2dA%7O!H{tHTVdaFYxdy3sd_`A9i!> z(C@`t+{g(mNzDe=mX&{e2ClC0FQ%JKTjZ|u|E}v`VfEC=#ovR`4eRc*=I*|2@Xm49 z9*I&+=(Vwr^|!6>%WYe}ZZ%T46wED`T(_&%`G5I3++(5)fC&oFRlF2jmp#S?9|rIb zljcfQNX!#4{9Vz0%yVZ0q8aYqM5|a)Po2S`()TUb87%Ht3Ii-la-^*DYK8-{C$J80h>G=GQuWa1D`p>nfn_XZ1^m){(C(4nsXek`) z z@Hj)Lz)%rso84J;Zp}-IwZw0SpZAYL6jRP)qPPKoSx{5v| zUBV3MO3TYkX~|<+zjzN~a2qou+w1ncFwG8GWkJb+v3O%ZE#m2z1pN_>F1ys(R1V2* z5py5lR{3g6$@blN7wUbN*OuvVD9QfG@E$VOSIH?%aDCBo-g?nUYx@g%1b<@^vl9JWuV zGx!#vyWDOulpkPoYoOvn1`TX~4iY$Mbifx@$b9C?c)c?sRw4lfbYo`UO#a?9j-r?y z%Fple|8zFK9X5S2R#XHpR_3N)$)%;p1p z0boi2ELxNZgB7>z%)?C;5L|>{L+cj8AJ5LT;E1wIRhSw!T=0pyR_Dt%Dpz8_`*|{b$!71&+$nPpy`&zJ9pO z@!pYSA|%kNdp$(?=|8;yl4gPoAL}|*1ubShR#=|XeF5{eF&oW+ z=y+U2aKCK=#xrix<7++kQhSbZb7zbGe~*11x!skJW+@4a06KBFl>jbF(q|Zs*_A$h zw~pHdE;^+UB(V<_dx;P`oA~z|mb{YK!$AP%I7+LwgVl|rCO8J-=Cy^#cAqt$RrH@I z#9s`b8=6~II8Y);YBPfB1?+u27`V=gxRzBRJ!LZu^Zw(leey4`0jFJ(!oTZvYsFcF zp`rpFIE|U?hq)hFmuoE)4;=D{b@s!*LnAU3-l!zUnu1*Qij5uA46jK{wMPKnjw(&x+e&^1Fe)sZAUCohKEbgxa?`p{b17`Ox&HLaj z{CNN2%XUKPomieOs{xlnXZW;elnk)!@gGzXqOE(y0H4xG5DEX~ZrxCr`8qBzQPN7_ zZV81vq{5Le#wvj8&#}Yp?iEX_tic*H`wST2%#p?^v136tnw^z<0w-ZkMCY zj4Y<=tM!<);!>^Q?a^hb4Yb~jnDmGbVNyiS%KjLV&Z+hOE9m55{ffmxINYWC@4=uf zd`tUx@PJ|}c!G>(Uqj54x5xPsHaY%H$OvR)nSK)NQi41`>w$GA(lZ zZc#6Z=E}bBOqQ1kOm`eDANFizs~#~b4p;={TN(?1KN8A(rN z!v2N)JGjva{nIm6qPRJ_iFqXYYM)lTJi`cx`A&%4t3*=L>V&=%P}#-1{NdOnQbuMa z8B|!xN5E~mUmHj@GxY1u9s=w=QOLeq^2yiPu6RF7WV3P6WTrRUaw0N;u`KXc{jcg* zhQi83X?%3ml_3+$OjEssZw^jJNW0_b>M>_eNu&-Wii|kal9Vkx7%(o=WiC+R14lJg($2RZpkcmvc`73R$WJ}NF=G_rG!u4+b z`gg#b64p%jjy0%nsHJi*pNJ$(Jv~lOZGXz~AbxGd?yP`mQi9$q_H_Lt5c_Dobz;?i z!nrQy38SL?UdrA!KDLRmDJ+}fchL0;7%3-ju5s~RUCav1(ip~@r5>JI<;vzBYHI&@ zwt=CO=6?}27F1iN`2#QOOP1v@9ZMU!T=UzXPeZZ2B!xc4MUBIQ?`A`J> zA_^H~%i{6oZX!mXYkJl0g`E02&4t|l$ecI@!+C@gI!X4Bz5T>e#|l8#$$loYWW7UN zgzA4~q949IGfmFK6h5V3V>m9WS$NNU0d9)B-0cH8<)@dV64AXk2)9G>JC88mz7g5= zy4%G7$@5bpMU(B-J`r@_5?1SOPYHv7cgG*#gYnqX3;)J9O00E+uRWhe4PGb zHixzg5iS^Hg@tCJS^wdSsJE2mLjcqb3n}6FWLCgtCS@i+kZEQrwzK?0DNN=fat6(+ z*~a0qEe9OB%K-lEDM|<2h2>ga<^3YRxqpq-(oZgr(uCm~gyOrunbuhA<9|VYsV1xc zCiNAar01iJ=66Lvt-H6HEffHST(FAv=dvaCPGKFb>isnY_dovwm}AT$J61{UGKkV7 z=GJF{e`hsI`JcKcIbz=ZRp=8H&la|0B}vxq)lRmhyYh11s(0|n5r0Si zT+4ltIbf}0+Sezt#&(^k!)rN2f#k{djBm(ouxPVYK1WBa3F|Wx3NzgZ>(7anSG`IP zk2OZzRi63)3A3oo?47e2DALI}ooZs@6GPgeead(-U))9h@(m8x2R~pd;jzkBvY7|` zBui>qmEZMTUOd~cH1Uay-)m}=ia~Wzq8lg`57YKwmmak5(JHwuo%=+$2T~jS2fXXgbXD36yA+>w(=}WQ-=}XQL#t5N z2#V3t_Ll+4JbKK23u6AJ&l7*#b%~`ucBY<5D|YE`unKS0$#0A-xAH&B*M8sG8U&&) zn=cM!w3!)Olb4!K;+({(Q7@~=6Zb*R`nsd}2{7w3>F3>6+?8L(dn*Xrugc zwbRk;mo7Zh^%XDjp)23V9hjaC?9<$qb9cXjfU-}Y-+QBC7(S6~dijmeidKT>Mh!i` zN134GoyeZ=>wdbMbE1fUu{1xu;SP_F^d>t*DR~OQe_ATUxNStQ!T|r-Sm_jCf3zO) ztozwsYqm)lfzQt3&FIU?!)ZfzIQ#jqi?95*492+5uip3`M)Wv8p{l!Q3XtjHZlSSL zZUDWvH_vpb)fYXEEtPnulMfL+5s2o6zbH31zFhLlF>J5hwTk015#k!rYYX1oRaGCT306O2 zankk)DV?TY6mBel-LsrY+~*x!^Ca;ZTr0eWny~0*{VX{u(OL}tJg21%M9zHhM{G9U ze4SG16ei-+LuOuxQ&8!@6OE&~IwbrV?ff-Adm=96U zD`_ulKePqk<1EbdhlPaJB5-6p<1Z=9g1vrd#yAHN2p@ED+}1GNFg!>B-+X|DWAg?c z^!Gk1bbO?pw4?$*G*U5#1`dZ>2DF-=PmRqA8!UVi4PdFm(v{SZ-QKLV8&aeM@oaJ5 zEt5&USVf1d6I;o>4O!UGjC?hZEqh@+Is&b{ib1RXWKO2pBGe^*`n7oU<$M)fy$)}i zoj2&M%-n|FO|(!o&MHfHwDp4)$fC^hrO>%SP}puAVp(53rfqshxVX~M=B}`O8tE{n zV4o0uNzSXXF_nD6^fMxa7{3#-476c_%J={^=|7E4u!nUa$HXxeOuqGjfw@5WQzH8I z6jbkq11qZ6&8B+x1IT200{>O#tgA8fH^l1~$1Xw+aeJc?;})MDbvqS#td&z}j5eFQcagZifMi1Um*jTO@Y4EU4A=QNt*!M2Om|-_Bz=`2rf;YlVczVO z?oA}8W0r-KuqY{iwQnv=lMuw$&1uG4&%+g~#S6~CNr1*v#bMvK8?4n1l466}UMsCe z5Z&5V{?1-zwR{BZ&`v$$RMKYB#^2OL?y5^a^S}{pL!pywKKr9g-~f8CX_Y? zc$cZ7I&}e|JU=I~T%psl=>MSk;rQIEQu*M^s&Zk# zmpqKTrgtp~`xu)mCas7oTjZEhdKd1$IzW`V4aruK23fs@u`Z(}>y3i>{I@l(5uH1$MJYn*}F zM$4eGw*L;YyDHFKE@3?kMsYE4<+2akC;Z-{(92EVPx?Ew(F$Y0%`|(`IVAX0t{1;* z2(u9X%^2ZWSeGnoYD7_0D4r%GT|1&y4Szcy_o7fcve1{((}lHiX)02>H{^X7|CU~o zBD3#fJPKAjvn@n_>4W{@${?Awz1m7&ucbfozS;+l{w|Z!D~#i7@7&th)+P1gegvL; zXxC*>{6{X;GRDo~n}h@D4=z9(alKy)W<$hP8w_GLe}8kcdP<=oYad+viBdt6(xB%QaSQK2pHJ9mw7Rt*$h0K<=uLr+TeqmpzL4{O&C^4QKSEV~;;@gq^OPzcoO;y*o`bRLE+dYX8k`&g^ z7&4ac!3;ar^3nm{Ch5{C3aFl;T4)=oZujwD@=>Z*4PES%N=uyS)*I5xPUzm@`FAW} zB^Ov4Q^+rHpR(mHT`#a4IYf1uIAY;&Q3AO1! zXK&^zE%5GL^b=X^9$7O4usexb-Ah`5ZsxP};s7PA;C(VcQJEwJ(LhZ>wLN8*z{`9i zk?H`Y|6B$>tj!bx@}IE-u=Lz$nmTjDDwDDk6U2^WrF8Bbzq1H5@(&g3TE)-%b@K-l z)_j01?ZVPVkl4s2j-d(^>I`F=!oLLMuL)jBRi7y+ndtN-ulyc33G+Nt(3`YcO_LP+ zayOHU?OWq>t6|U!-`5bW>!1B(BkIgOFJ0XIgT;N8NB?}35k1?SWL(8XkxP;iSC@EA z7;O#AuS>FY;hf>R@qO|mg$zC$Ho~5G-d=%oe(A&jQKKL%%d0uWUSo~KMj8Z^S&YO= zzU`}%6t!xY!m*@sPsif5gE8JxQ{=UFbfIo2qxkK{4+&RZg&UdnAyGu zmp$GjkV3pXScF0?iYI~%;v>6DsaBj z5th$iNtTfDYCWrReq9Mp7$Gl{S(PU&WZ{ zj5D_V+Df0q+IH?gwZaB3u>s{QgFi*_{=8=vVKR`edte4*F@COl-K%Avk&ypMDIfbhhamqhQx_CWw0JT| zikU?4vG&4v!|BTGbbrkp6f1<*tFlUCOV8rD;hs1bthBk3zLVtnd`4+)QKT8E)F1j2{oFJhWJiQ78LDoNWaD&KkjOi6{u zOZ*9gVM*i18)sycx^xZ2qlQSg>ZGGXUNOkBFcSi7FF9IU%cW>>j4f3!?9bIO>XS(6 zKxs^Gc(QDTYyafp-rPI<$eN<-G$(Ya|Mg+gqv@pl#?^7_cNCQRQf&R3=3}S4iTMX> z=aDw|;)Xf9_sMUjog+DzHro>8oP4XEPZ@x=)f2;M))f8kAQXbT{(2u)l zv`Q2a*UyGMuMBuUbv?{Ipn_|FY7_B*Z>$S6?w95JSEH<%b*I%gId}K~E3)b2b2hOWctbB{rP0m|}SQE@`9tBhexl739xK-!m zKd1sYBa*Bc*~fYf0KTJ8w%4^nuR^S)0kKmdd?rq*dMJ*cd6M^+#MM)eGq-`C_0`h= z|E}^QC*D;o)WFuEaFkizHPY~ut75L`p;FB97w8za?hbeSV(dXM^?uFiSY5}P3->kB z`PzYp#5O)Q6J%B=gU&MIJ^3eS5Em zW=4&(FLXPZf8p<qf~fPzj)-oYh=^JYxbBZ#PAs z4pj!s;@y0&uGyZ2aZBy4tt)CfES^nOJNSHdo1Oqz)&79|5j;JhPNy&A?ZSbJ9B3sJNtbuOr z)kcv+ zg6c(HJ2KY%ull%ARoxGpPbh`-D>Er)U!~SMno)WpLLg;=%p>UGkkf&lh6e6A_)R6f z4qwOb$uEzatSKN)i3W%@V3V9f9Z9@?s-Hjw^G@dO(PWvL8_ex3y5xz#L{OwX;65}5qrq~h?!ZU-1GLdR zoOPeP5L|8B^YP;}eZSA~2(=Dt!fw&zP^)H^v+)zzxr?v6^Kq+UmgHQ%g^#5hcE50n zSS*nu8=JK|Q=xBz5dSgGEnBQvX{TBFWE*v0qu)*9?tCkK=0`eVmW-3zGutea_uW2X zl2;*8?sD;-G4|Ku$Ysz`fe_8!8FGl+pC!>pV~C$zS89ZkNN{Y`t@2sFY$Z%(-lMjl zd9U#a#77Zmc>No+CsA~4_)0#3HAb~##=uaDGc6-!3<*9; zsijzI#s=VTpTeFwx1Gsx_#cQ)%1FTS$Y+KbPVf}&WMV1A?a0M6Fy>K5GQj{T04scN zOXv+R#meSpICH)Fmw*L~=YB<`wnrHi>H`@|G{Cs$ZbrWP&JQD>baRS) zcYbILAT>Rph<_tB1Amsnq)su%fe$qLmL;_l4Cx!+(fq^fL?L`XS9(?f{JaTlKtySr z-xz-)OoRYIcZWi*!T?#Zc-(Pwt2DbJ*+S6Z%{aHi+1Q_A_P!t^n`((~3hNmHOPAq6 z?NXaO1#ssiQ_CNysanwMgMu`M^JCLRiS(^|9p`sJu$bK!aCHX2IS2>XwH10{NfJc3 zLBX%ga0(k`RYD1o69P#y6^_yFrGNQd52-4X4#bb4IYRPTWSvcf`3 zVVcNqL9L1a_o67#w7%}$YTia8+R$9K5bDbMcQOALnBYE@P3B`3>$*@B{^6J1J+Jul zgQ^=jx;7Bb)`u|nFQD!N;)`K?Wbkq{FQK$tlnyI`La%6ricYT?MLI*3`s;Uzp;RLE zc`RnC%^a+Y{rOL+eU%=`foYY6)xX$|70go}^1b+d#^pOe%>T3hr_;(t%2*Pa>8S|xekwN+W(Fbd_1Ok zJe01&V66Q2zsyqVnl`9WP=!{}<0#jhN7b_yA!_jd0oYm8h;tluC^mTMU|;uT58r)2 zbJD9lU7*3eo}YzIFJ*XTdsok!t#-@-t@EW5fU|6k2DhDClJe+jiH zgUX$af8k+w^tUX`|I%rj$N8=#U^i7ZBzg&;0qgtxl!Lz;IC>{)fS>v4+R3<9!e0l0 zI^MKr+`>C(%^;aU=*e7D%D669u1_-UUinBZi@10tk{vnk5mw&Ey}?2=t{x|K)?%*t zqfBQvYcsA(YlDc;!$U#QeshN|uBzCklY;=DvIY!kiXtWe^t>x!T#@9z~Vu! zka+AXsk5RTfxYMWy4AXitCp9cAy-70@MNZnb7sJQpJ+rTXrGnlpO9DJ?oB6p(YTUU zPi5513*G((^vcK1!|Yq#tOif0Uifa#03K0MR8nSIh2hrDFm!scwc8jWf&g3o^z47YuUd+H;@&Ai(r)umt`RmquM-MpB?Q1*S{kd zr;|?g+;cbQtBilMddGUGFOXv5e+a0Fd^qNm6fZs2b1zm$(|(c z;{~^u^Ls1pNr?fCpbg6({m$YT^#qd@9O12Gt(Kca09KW(Wb_y^sWZ;#R4&KpO3uk!Nu%{WJ zTJuRvsjwECx0pd{_l}T9f~2}#K(Hy*!FN=$wXrt|1d$Qg{x$Ecg6Z-M-40?~=$go* zp3PLP2HwS%4X~1VqBL$U?6Vo#X;^^L5Y9B4B5<;3gdlu3nprM5Wc`yFN8ltT{e4hJ zYt*``^dW;2DMyaf;-|V^F`1(UCm{le{u~YLBrRwsy9+uK=&DfNMzvhsG>G|g+kY0p zV%Y7x4Dg(F78xSO&SI%zc5?|5f1hsCuLmw1vQQwuH~tPf<&&8Zi)5|Ctb~L8xI1m! zq_-@+gTBrxLQ7Zbx1&mAQQ5b$e*4%g4*Ery#RnAFYEN+QM6kHxdVJ7Un#Tlf6Y(^% z+{M*-Y4Dsgis%bLSz|EEr!RDJI>~Iw2vw+gS3?Cj*qoZ~2&!a-r6ZrZ1v~-YzoN%> zuZq8KKN^k4jP-9UobP_$vrlOFe#KfhzY@3NXWzNHKI0f4Pwb}%9aw=Kj12`AJDw@N zZRx(>eLfhjZVq6TZ(p49?20GIYum9lf9i)ILE{&JN2h%DeXdu7b?N3M-I-3X1JwYWO0}otr?I_rkWbIO_jz01OOB3+g!2vpp zCCvjXXNaxM;ZRoN~qSTzU!eQLtVf3F%m$W)G(3@t| zVybmq)%EHEmuhBc55Ah|*Xf=nbznI;fA=`4(z_!9dx`eIuTPsPsx7X`x5OWk7Dny| zH*bg^b)3Gy3M_12*qTo1mF$T+sXz#^G zCtEKPlwwr!u5DW5TXwu&VhvZ}S7saEq(N8K;wV7(q=CX2WvHT&XPSNFYv<7G!X(>n zsNYVI)s%BeT_;nPvSJLO_tX!UkNO7Wa(ns{IrQVbdoA2Q)1?J%3NPweB) zlE9J&4{$cyQB$LYvQNGYh^3UE0!2SdW4WWC*2cs#R}a zan@!#E!@D3l)hc<76go?J@dF>rdzX77fJ@2(I@J589rx_>JJ1S@BnZM9(hjNorj0b z{v|uC-40cVy^LRb*S{ta65r?6*JN=3{s-(=KjG5xPozU^gM z!Ezpz8wa(7W!z?LP6&C@_?Mh;>Z_+wZ#lZx%_jP4q7RUrvOfqTP4jtAK8P*SLS0{I zfJ5yEE#}udSixs*>v#v77-t2B-m5o7WPclC*|?(Tp8SUqilaxY(@yKTW?1O0aF@=>nh_5}!Lt*)$~r1O4L_?#M%l zb2%8VcAS#G64=eKG{=l2|7}_%E@B&}rX?J@+MF>b?t+Xy`_WkTD0%z~uFUT*itjVB zF$@`ZSe-v`XHsWpYzZ?Z*}B!izhPqiMlIjzI(>wKspczH_Tgf|k4A{JrH@`tCU#Oc z#n!Dy2=dwq$c>PoVW7NJz_f13nlx?K@PX${g~U)ykLDC){MRt*z+ffEHNfZJ^nM@+l1 z`N{iZBWOw7oYA4yXE}Wq6qZ27VOE*a+%>caS~>rYN0Y@ubaq40J9iH6P*^_t zRkuYPFNpBeDnyVO@9l-ci~1M5!!%(pNwpFJRg0i{K)K1dU`5*JEP z*hpovpel@@r3$@9u*1c4=WgH{2O->&9QWIZ&vo8!1l_oqHyGwg_>n%@BGd4&^v-Mg zx!nWNc#^EKsgun{%utPWk(B6}U}iPhv2u|0-Hoy9w{Xv!r$=u1d(?6{Sd0FqUeT1X z-A|g8jgn+r_SO$t=v*eJ#rRrBi<@vHa9~C*(jyPHb)g0R6Q73$fWHi=mMp}UZ|@4> z+h7R6k`T7@>%g0jEqf_$O7d{Tw^R1vWok^`^C!=(2Kro$f0-bJ5_B|9eq`FHvb_7W z@pm6!lECS{gkWq5Z7&a(uZe%)2C3JKBBQa0 zz?t+v<7u>sD+>>gf(L0pyPp$mO`PB&s6xDdh8tyLD0m|yP|+};050pkd@UI8rKsGm5m;nX$PJ>(A$C4Pu z_5NK|*Xt;;k@5v^0ux%;QDvgk)MaDCJMl-1T==-NDu_4YZ=qmn$jw>brak>?X;{C% z=J@nt_&Ud8!4TtxvN&>+hMz1N_cmZ&U>TrLy7c~r?+?!6$(0dw9Ql)qIu^F)D@a>1 zC3?}7i*%MUbVHBSRzTlv7Iz(7363b4+xmP>s35=I9v3#g z(`_TVhhUJP;;Hn`q9fG zire%~+NHTPTRpE&xLGA>apRMpu31Awv-M{}iFHk{vx54w5w>0j`6Suj|4gCMW=?b0 z<~B?j-q%*y)`yTLt4UUUgfv34VC?!_59epsatnf9Ev*RUKcH$8l1z>?cymjBepEa8 z{3LYa@uqiv6(K~$nOHk!Hg7?t)O>=gJ6LXj>1M{KE03!$M;LGU3?43!?&o@eYHNrT z&{XEXNDkE{1O#C$Y-Qfn= zV~EoPZN)|Y!Qx9sa$ zK#}l2LpGNDQq+UwI1H~o%zm(VUhW3odk*Aaa6L=1*^kZsDJ7TiWDjQkT5q-1@GWzl zlX48or3gwl8p`~X>7tnJxu*!@1k)kNssHKMhssis_aRPR-5AfwuR584x~TNQeYZDH zLf;^nO_ZV0ajYTCP*ay*&S44xty+-RD@Vq}ycvn|K`3vbXK4gj3@$!$pI`}Yf%kAA-_M`;U zq#5ILV-_^(yv!)dX*Xkn3&Cy*e$uvdjK4d_+2v+v$yrFD!&PZ+PYWIr@vTnhK=CCo zS7}eY>B>{_)I>I5c4Zt$J!sV6M9xuFDmp8PgVG{c-Py^j4438Vo~U&Pm#$=w{7Ht- zSSAg;5`#&L&9)8i^3Fv02`SHbwg)JQK6wM{$PV}De>X3+>udx`EJ!40QVNhzz@~P2 zk>G}G5S%X0{@O;W4qK~Y4^`2zOnCWU$Jeyw6)sM?{TwE(LlJWCbM7~f?6N1j{laB6 zOA*2XG^vn5UhW5uj|K=LrF(<|e$nHNf|FL#lWZySenj)L$bYf`Tvw^`2tkcZKiD{% zZB^8eZVL+DVUx=WYFiRZVi2l5!?Ol9pZAK=(cDKOMRf`O$LXwhsz>6run(t@H$*YpM#t2cBgwl!Z9r01{|7r#ao!jFAXS4V2#`XL0 zbM~OS`^g#VdFTVa%j2SlC*hKE-{qTCAadKxh`ckTxZ5!cqVeMc_SgFuSl6T3M@Lxl zjTfNohW-Sf+oL|rnbF~z+GAf|842D=ZlfQPH{6))vpC8p0u_oe&(>VOTw@%y$Qh~$ z4B#X#6M9t!JT&IUDJvCFETNpRg z9^dV`NtBdhP#|IXg2O>uLwp#o$;Z^kZs|Dc_3OK`uU?SUk@Za@Y?msVfg*rL@x1L} z{RmYA#j4fYIH1S?S399UgaI@Nve|g~JR$b_gibWcF7c#1_N0!ZrEDR^=7^;?__%#a zf;wrHO;$QWvv8U{0EMHVA*g3l=yby74bdP&(!FP*dltzCF++ast%`o?SLk9c7uEmz zzfVx5;yAjg)$f{=k9xh90dmcWy--xaXj_$@5SK{v+QiiAEZR#U{cHF~3)1&cT_ONW=yBIz!2Xy3u> z#CkWORxcwDk`?zdxkwqI)}Pf%RI6003$I_dvGlfYI8~30FEA7+hRQQ`0vB$R_0(N1 z;saL^TgP8WbH-^X11R6^=h#@5YgA+Gi zKgiwPRUds*^zLVE(3@!pCLwO(`hXD6kV*rX)P0Zsz`WfUSwwgGt0s7opCB7I2girox4hJUT%aao78oho=i9(+gXUp@jQXG!^3PeB8K!^7TwT`3uziJmjb6-sKv;NL@ zx|;dgKm@fV;N_VmM;LO5|7PdPmq}Cb1kR`;pSslSDl*UT$tANEesYqfuuNKdnwaU2 zenm80Vw=k_(%N5NS#!%xn@qxb=k-;{MGWp&9|Usrt8SkbCkhE&zc;NHL3bQ$%rjGV zO<}pzUj@D>)Q-qu?LFO-Oj)e?r5YX|{3EYP*KcV;Eg_JdfwA@_Vo09rt+Z|^iG;

    Y>f~A}!6$vPF&EBQ-BMgw8sX9zNrU~%QOYDQW6Y=g zc1bB#m&UcTM*K@o)-42f(-aik%{h&FDJmvM#nqRpXq2RMfNLZnkq=Hjxrem*E&1}s zR;^Fi@&Dfjm@TWYUDorvw&UuThoqnrd^gL3pICN7^ZZtD*DZes(ZAH=f!V=&ivp+h;D^S0L4^D)u%0k`wB)M|D$K+vvgc|W5uq>O*RRD z4*4<^mtd>CqttGh69x7TTdAy9I-ax-8H!HJb9`bp6 z`XD(q-v}ODs7oB8G$GHZn}aH-gH#6w9v5|f3+J1wO z2lN#OE{!q1hpKBu;>6Ex^l6cOj7PoEP2iO-zM9g1>Go5sl%EyD%HC2|{4S2!4C^sT zpzLiH7E{pD9zcnrZAd5m^iF$Cgmq{vO3rZHM?uZ}K1+_~@c=rl8_oJV&}FBtEGTzM z!k^ldTZcnjJw^muRB%|0JSY$;Q=$`d5+kRQ?XM^)uQkNl5XT@S>!<1G)NOHt4cTe) zf68zmv09E2LAd4D*%oMX{E%_{qCFwAV@lNaG%nmL2%YW3?SF`I*1i6?fAdf)EbW;1 zrZ4ioMpQ`2@-LToCgXPQXQB^A6oKev#XYZQcP|C}uv}g0nIx|$s-mq6Ku%nP=@wV& z9Nw9QncYfJ1FC!~ynT1{qN!_{+mC5WHmaQb!{ovn<9Hd{v*NB7A+Rzdc1h9VYP!0=aKuTZFI2eJKWuFO{T)WH4h@11)4k&?Ram z5&b~8*qKS1CC&aNkEnV$1F@YQ+#s{f6HA6pt;$QhEt2P1(D#^~dN%2Ir{NOd5PUkg z!{bKO)|05ulT;9>3@m-})x5)B>~q&#0>6?eWepO3b?_~jLJze6lituz>; zd(I_g$qh%38Mg$IxldSG&fjd>RRy)9cc|t;%)*ydO=NuKaDQ$p2*0~o0O24AP;`CZ zZ4P@?T-dlMHdhp&*OCvDO8oG{k}CVS9Z)os{2NZs^3XEz46EV!FJgE{%YKY^ z?wyl*IV_G1o(gdEpjp|~o@}Y^ytv+LtlFG2z!d==R+g?$WxbaJGA;CWp&HVglIqlb zPk7X#KL_^Jai>j*r6?Q$=!+q_r+?K>GM=ixm zLuim^D~1ooX~yQYdCkY!$6k&lzh@`d0ybpS{;*Mj?^q-Xi^d73(-`w@^2qEt!WG{I zwcsx=F9 zVY}7@p}NC(?81u~_O3x$A46PQI=P6B%xj`v)c&={dDI=-FKlfFQz_M=o(Bs@yYA#<`4}~rB@1)hW2=z=1st4u7UU%qokTVp*aGix?Gl_jUmK6Id zWXijX$DSi^AB_}iR?j`!Ep1s;$(a)JfhB?azAf*#m@_#(fBZWCEJQlaEHQLO{t(94 zK*V$`>i^D+-odoG()*6ijN+V_-@T}tBVZpfC=FVxI&b!yJ&qc3*K137Qg^t9wR|VW z)twE0MMnGily>YPHY75>codx1FcUU;2s{l8EUj|F30g?Gxs7Oo{pNjt1P#n%4ifd5RJL(>zxW z!ZLDuRY}=2waTo*T$`VnAM3;0ZQ_$wa4>IaqT%j=i2Og@s)Ipe+>7rCU`$Mpt7NAdcswDG!Rf zRkdTP`P8Z@7x*cQ#Y2u@KHD3!l%-0*esc;(MS!KhrsXbVN8YLrnVBA%*YdiO7t(Ir z%RmibDGtP_Zo35>Qi3oi<>pdtSJb2pn2gwqiMmDr3F zpfN1}&I;v(kR1TMroEk-q!Bx;f&reDxmJSse z7r2?~95tsT%4;Y2*J*uQ-w*PWqLvrQV^|Gi01-U4(v&0VB>oe-w2DavpPq&5!q^Cx z%YH^uTV7nIfQgR^Mtp*)6~m=-t}2!O9Sb<{=mZhN8{BsTv%J&}u?vLG?%5Chu77Ze zVy?ZB96XuoK60C2(8H5YPf2uC1Qe4`m<}?0+o=*Gv3x_jgirhh{4|q5@^_Rs*}_$tD(#Uc4t^*I9RN3_K|SC4pu9#P5XD zBoj~n^BSJt{DW5XrcqYZrb?)uqEj`y(WYo!#H4 zv$WAjz`l`RCiInUJ2Clw<*(Togi_BbUJ4Ra1$X0(}eV7mn%)CeQnHKKeGZu+b@?Pne}Q#d?}~>Qa2H9ZC1xrX64V z&y|CShOSw?43ZAI+F!LJ%j75i)(S%MMR+NUd()xR1YxA~TK0VucHg5*sC95&CzW+n zxtsuW_ZWEJJP&0EYmmWYV0owH-BQOgY%y~2PFP5NPOVf`5HCGq?fuSeDS4M|C&VT5 zz)yX0&nq`p#zn|`l~h!VI8hd&{hFRJ{+mWwQWg5UBc9y%K4B^wCv0GDQr3i@2&sdt z`|d@iE*Hj@0_bv-V|D14!O_sKJ(+Rm`zJ@6_K%4Nn@(b?N;DlUudm|^3eQdy&*K0M zdQ>LfdOP_?k-8&3&h93h(_=py%N->@n@VT8paw1kATwBhXwuiQ{(yh%Jc9tD11fF{ z7RU8!@v+AX-tC}2Y~4M5*hy@SHwGpCa}~nf{o3#Qs3~p}53K@8l;V5Y>%<1!;N8P9 zkhXWNO619z_+3yZ$@`T5YMbF8#KJ_lm-H+G>%I7avXuSVH~nzhP7)qA+E3>o?U;eH zS6>@|xdlfpc&NTLPgBM9Ck|a5^dG zESavFu&SiJ+4CCOER?)ie+55)VEf7*6pA-|H31Gkp9Yf_!uzVR!)d6KtlwhW8X{<; z_l;`}$*~wefmU!l5G=h|(vka>=PTZbP#YQbS8LZJ)=?L=6<_<<(;x;p`dyN4ZTaJu0S6E%EySWIg~ zz)vTGF-u+N_$&~HX|?8?l%Tl$SSS7Iz?1u;-qP6UBecBll8p%}Af>35{OpM!%AV`n zRqn~@L5T~-%WMy%oDg(6n|&XF$7C_*17bpFJXCdcvLc5XTfN<)m4LpnHD+@?nwo85 z*rluHeud9SIp}fI0P9e#E()jgd*ojE*(oWMu9q8YnE`;wgI2I~`8yxpja>w>HAl}I z?(>a~nxS#t{-E(SzX;qZdS{;1>qfma=}2r2D3ne^!ITC`M%^5&U-B}4T5|j~J*xXp zriX;VvMKAlfXAIpWe68<-UOW0o6ZRv|UpsvGBLn;Bob^&n$J6wa|7_Ltx$*olFoVYbHUnuT?Ohwy%DZg|L$iR-gOfl_2ug=2w@zU> z6;j(HP#yLMz|hx{(%zyuuM3v+UZ_sS{Rv7x$to9P)Uwr;nA$HeEdl1Z9%I?v%^v_bF^; zl|&7%!R5!=Oq_G#ti4PEGTXnoMiF=)g66$*VGGLkFJc#0cU5w?f4h#lp{khAM0S*B z!(BQ2x58Yu>ffRKZDuPJJp(_Gn#NOPN1so^TO^ij-p&do)fs>Sss&NChUQ(jJ~H_^ zlsFtr`4rBk&O>5Oj)?`6*2?8VviHvkZ;imP4eXb9* zo!7piep(u$`>Q5Pw4MFiQ*3q~%4q~7a5q>OCJ;0@sU@vG&71kDJ(&itI7zXt)XSf_ z2f{bSJ0;rGxy+K+fJcui$!IY`i0Nve)vjL z=#>9GY?A*;ogYvP2?+gzw$v-#b)bK8%Rht;-HnKe3 z3`+)2EHOJWm5@KXV++JZv@fQ6u)#zltq)C~8~XeomYd-!+g)0e{bhsH%vZUaK?MM@}ybEP^sG-KWyn$Ou_;^vgs>k1*D9zV|m(wgbjD=`z0>%p_0UfG` z96dLYn&0(!4%DfmaxC22A6ie)^hOX{xYp>_=sp*t=YNlWP@bXwS{7;zjV0d>`(<$Y zMuBH*J4>R@W@IMyh4n zH&|_gZXGisMC@dH`&>uw0!3sa)3bD%DN=+KFa{m!U_2V*|^Oaw#dCB?d5^UwmM=b>lCuXaDEk| zn^)+Xuj&`F*|R^UfFQ|}3Hq}+SNhe?=Q9`RhRP_P!u+Ax@<0k zqN;Q%cjpTMs4Vy7!jT8-ZmE>7x=@PJ>1&ZDx}ixnMw@rOtxI~v2Td~N_wZ1?dKkYj zGGMC{V5}+F^Qw_x`kL~p*NGddmB3oal>39Fljt)ZFl>KmF8v7XXFy@?`F(FhmQXjZSNV?)c388(t8I1rKEuL zA}AmTgla%33Mz;cX(B}t5Tth`)DS>Hx{4GN zdGEdBj&Z;6A$zVl*Dmb6)-#{^Od?}@#ax}pnz}XIDWt?kw017bQ1NL9VM?FpwDoyh z5X|E_nH6p1FcXOwSr$UNMG|@c&i->?{b|M3QhNH?CZXjI(~q8Pu|2iNJcIu_y(;iP zLM6!xuBD|Zb1>?zCT5fZX$*Ci-L5xC_=1rKo<0?kvC!(R=0Cf0peyf^mIJv1&y@{o^|WG-3l9rux4jKY$X)-U>vjkQOKSr2Zd;Z4{)&c=06jf* zy(K~_bUnPSil@$@p!>eVJHfU$)iCOgg0YgIjp2>{t4;}WermeEm8=1hSUI7=_0hUsSf3f$8^;bFBg?AhR~vTS;*} zO0KfO0+EMkHJoi9j}KTUAWj?rsDrt@^vQ>v;Wb$ zdYx7vw~X(eleJVlaq$n5S6N*&%XiSYkz<&M-S6~LU&@S*54YsT@d9-~nomCoL5lQ31$U}X>b)^?p`8>i z*Y4juxMSHeaR4ZcjuokDPy;Vld$JhnPKAHwqP{B#B)j^L(=| zykk-|eyO#^PB^oLw45!HtDuV_{rBXm@na|2Vo2ESkUz@1*&rMOF%EXYfpoN_!nPKW_k3FkQ0Uh>gt!AY2I=sbF%^3` z#R2umv-myF-IV7nkg2-qQP8rvD7|WoQz) zQPK>%eb)V|^vcZj^3~2@drk+9zD@owS70QxlM7b1pp!zFwY+)7t9P(@OPM#m#fI=X%552D}Kz!NT@`b9|23E+Z?q2*n$3&op{B6 zvO7i|sHvzDOE>K3IcJMr3R>^Yrciq5eG^4zzc3ppbahDmTz4zOGTJ4{Ack7+N*ila zq7{wty+KIl4fP#!vaR45J}rjDwiIj?EXX9c_6yLv%TwU9ru=1Y@OLuUwu;Y1)w{aU zY_fYqZ3^GzK6iR?1f_A}@EJirXtp#~Qt6dIHKO9uz23g6x+_}>Jj6(FV;*`^ZaX4z zl3PD$T6qVlJY*4_^=EBpChl-Z_E+ono+x#g3efee2QDLHPN-E3`@P)6W<4xl4AsQ zTr!wYR4r+CvuVS+4B@iC&Dy_VlWwpC0k>jOt19bNaM#S> zU&$ul7`1)~+y!^(<;n)Ne`1f&eQv=&t^~qf1#)7j$LzRt8?0@o;X4Rsqi1JDR=PSA zeA^xRN_}(Le(0UV!TdYPYIwN4eC7=RWwD_@>ZBbAk{Z1rsuX31x%S#n)(!(@6XnU{ zS=z_X1w}s-3Ug@qENF0V5Jo64qiK8jrjFKQowMZ#I|Y}}d0K3^(BpY&ug1T8lRNVn z|ABQCYz_QjSkW*r=|r z*HI^#f+efQ7LSU_V5F~$G)4x|pVGG%#j7YEb)pAAg0XZSQP(vl~OcTQ3;8382v5Jmwiqt*9QzC(L<_>?|aj{k}AV8(__YJMD(%Ue^$f zCpabS7>ao2Uyy%PU1*tIrr-1YZcD#uQ1o!J7ovd4DpPx$-%J|QSrN3IWFxm_w8Y&gWhkuX_ zINrrIhL5qV8o@mYM(2-Jf`OhiUi*Oyl(?iuYInNz^=!3r*g{~U>4Z)ImU)a(gCx9_ zfp=$cpR&!=D+=HilLLQe_((a4N!2T;$vsPEos9Y&TLRuG)Wc&qi)cUVdo95WNZ*$= zEw|598bYi;P}-z%^o$TWZPs*Rn?V#M_&$ABwj;=_C7yvaOE{9A8MNzNF{7_sQtSKf}1gE@HK@jykkz3ob;v)Sz(rqnRrtJvYB zT{(>PH!6U^E$~UhmHJZ~ImM%-E8eeV7`bRX#|a-rA>;XCjUs#aJk+{rQHH{_hOLjRLSWdMb9X62UexInl`;Z;pw!_)NJOg zfuU!h+0)UmR&%sX>9^g`&Tiu@)p`6NkZ&_LCHbZpHVrCEKzcg)%H1_slIz;0yx(8# zQhrz)jgZVww~+^%#pM=XkrP(*XE+HBUd#UDON!qcW5Us^DO%tm24(=YJ9pGtS4=6aM^--4zejx7}1|UM-&$7k)dK%Qg z<)N+LX{KW6I_@*{~?C1@3?J{ek75KyFTTENrnCrDuB`H)vsuo`5R|^=NHMS#wbB~A(IMhqO6Dh zfTEMPV(_Ma&H6-81$>d4DUMrBAb4+@&+ysud+b$s9r2Y?)XbSj+FNcH;Zw%PhMwE}5Zzj+~en;^~KfB|WS zk04(IbHmCs(Qy75p@Y3Qs=GaV9)V=x222{kYTG+$n^fzzq4XXsEw3i4E)4a~l8+0U z#CO7fA4m-K2;~amz@wBfs*5l-^0%F6n+DGE%)BJty^fm+K$E~sZAEglSnqDgZb~j8 z(zH?ZX*aNeEJr`FS?4Qauu5`gdnW{Jvz#qn*)B8t)HiRVRl&bPuXE%r-*Gy%oB^u? zyWF`AH8@RZ&;m~)a~x2`wN59Lvz+T2c<+?b)G^8E&5rmMP=1Fh(R-l1-roG71!mkLQ345F^lyGvEAZg^aH< zUW(G;&1oEe>stKB4rGXjwsFj6byhFDH#+hsnEH5t^${Kn={yWYT;Tv-Du99)^}5Jo zlaj!fq0A3&D(d>ndhQ2;yn>Ioj00krB#m`=#X%&R;*Fr#`}!hXy_&QWNsbOyD=NHp z+@sqSjev3)pfI&`w45T^K7ybVsvsu;O=hjy`raq;E+_9N{OGzFbmH>#(eHF)!L#o* zw#a_9KQ99KN&CHKE%F+#sn;tWLInHX<~9%5__QXgpN@dM;=Z)MZV>#g-DkXZnIdI0 zDDm{xv?K9+B6XDaY28u{by)g~g;%936{|u?=P0FC5y9+Gf>x+zqw|(fu!dk>Vl~xR zoT>G+EE+mRx=63*iFkD|G~Iw!`QvIvvo`t2IPX2g^LM$_@5WUtLkK3(D z<~-rru$Qdtw)qEUtE=jtcjFcfgJm@=u=_0~r>hJtqQQu-2k)1Uzp#3+`jhRmv)?>! zl2EICa^Fx!#xpCfhgRRQe?kvs?}ltB+xwu&9kgm}EUc)*J0DlHb7wijrHUSkcC62s z&+$2`4X}o7W${08M1_e3Q6VZ9{4`0(o02Pl`%Nf0E7dVyQW~XG#2OlMu zp#whR@5tn*1tc{-S@P8vgn8*8E?|#3oBh^GjBoO!I3lhf5;IsG$43ynUUx@bYhv{8 z3i3!C@?*;9PkVL!Lrksa^8LpLsz^_R6LDjZ!up26(&kI28GjCZcwx6Y-(Jvpu51yO z-M)Nm&;9xKo}-tW-O?nUCdYZ@P}!cT=J(F0^f%jZdC#7t$J@jZk``0${uT*d9PRYW z`i812(L$c|_EZ(*Cu2%`(q6n_Z*9C+P979wopH=X`7bQsO=+OZ7tgrG?yC!_-9Te| zpXBEiJ+f=>;4PHw_684^kVXM@+l^*Z_H=yD%B?#~&nurD()J0xl2EU7%H-1a)ifye z1+!`-R;ynoY;KO$^aiIN7X&~LbTgk_0=KOg#G(W%kQ;-fjI~n(vp9syjP;4u=WoU^ zxd$!k-V~3h>NXoju7%~K8MG|=gLJL4Pa2;Gw-zQX{%$xP zp(jEqEWMd=L`snoNADy%BEn$L#O}+oZ${db_;Q4Kq4K}m?dpbpDGjrH&n@>yi%j=4 z*sIv^dz2aEYq8U`dug(c)ouM=jraV{Q9s`*?4yOR3qp!$9;qY;*Lx$DG=lqJ2DzdQ zgeW#jLf;5)b(|o@dW$1L|NS?NyZ_wTPJ+)hznR$^;0B*->tP=+kO3&ccUr2)n>l5b zt2?pZmZ!Leo*p2+-}m!8S&llmB#LSO{LgLuZu=uqgcte{XBWtCYtP;A3 zoiKc_Ziok`vu~1EA=CsFBHpaJ=Xw0zKpZpHZ*HJZuCmyg%>*MYoTlEc3{nI8VvvNh z^ON7~9z#FX7cZ?ng zOY=X@51tfPmQkVn>UwtuoVCu_CpIJA7^@3L|pwH16( z0eTs&>y+m$UGcPy79*UOKqt~bn?GU`ja(4j3{uWkEmh)4L8{|=h#WAFqu4$TyhW-K zBGQ1uf8B#H@iFKS(y`7g5R+|`5HlJyi;~2-)I}3`#6`^TA0j?n9cbY8q@i};7=Tj& z6h!%-v%a%J6=~Ux7J*jx)uNBkH5xM8&8FFwo6M%pD7($vvHQV;7oS?i?Z!Gt+gVmm ze)uyY;CZ4ybA@MA;rLFVno`8skz#Y?YyMr-2pM5VC$Z`+$}|y9$K#V|0RBPLgN;pY zgaRd7_mBRTK74yybN&O)|9)5u{`$uIrgDEe4;kO@;u}5Em1>utNB!tOvNm>^2DK}} z_KsdmD$g-btmKKx$t@Bl#)yG`jFG?XJC&$V3s$VEP%@idc$;QYb6Kf+{Bqvb_dUMy zV1Z)(-5}6TrxcDSJkrC&QS968%QZ&zYJOu#_CmM3&|_N~N@IvPAV(KU{Gtj$PseG2%R!kfLP z>u5-1gDa{<1@?*@r^&Y5JEo7;<+tNr+h{l{$L@&cdJV6n@=KmKVObI-#wk9?MbfH) zXrC>G^b>|%#~zMuh3WTHj1A%uuH?I{5^H+Vm0pz+MuyqT2KPaWIsC&s z2qrISvbigFbY72=(9;5ne`d?!mg(Vs{^DMFo7jG%1K0HUyEC!UFyCYdk|4$KY?pvejPR z04@IogUB!Epm$bIr5U1oD$~(y*xuujaXuGWuo2nF zzViOUJJsE<(~;-(X9YfOYRP+A0-5C|*dG=BU30FWGVmJ!<=2yGGo#)m^X896kiN}S z(E88$qr=HozU|?saXbR$qPv6N;jPC(I&GjgeG$YdIX*^|KKoA*<{BXDX&&%nTtQs? z=cj&TpTOyFPmJ6)wJy$leBLYi{oYBTamwm3pV6@+bwQIzQ^{X?5!x3J0dapbOrv}!IO-0 z+Q!xuJ1OXDL?fjBW?<)aq4n>n55Yz`F6BYer^Cx4if8=FV+sR>EDSMnJZ6QO+59qk zxa+@`?My&EsNA4IWL805jWhF61Q_o51tadDWJaqDWZ_z$&fUlJjE?Tu_)b-Pa!z_2 z5=n7G+ShF%`&k;hAXfOHnj(>kqTykHGVtkD}l{e%y0*YXI8-1 zboMz3bkX;l;QPvtoSjimKVoxi84OZ|>&o1fLa$SiPHbyjnKq z@?fcQBjBXzS}v&Z|Ld zjTU6Z>AA8iM{#-OhX>_*8^rA_YqVa2rHO)$hN8vau`#Y?PVEMmH1%ffQ-W)NzwNyO zkF~FZyPh>)7_(fMTxhr*eBo>%L6-gicBb)iuWgV)PY%RPE8b136N^RB^H&c5Wjcm& zvWxc9OcGsht<84%x$dP*?JB(?+)W@r^>gf2PPNp0naTG7^$1-P)434XK`eNlvhrQ~ z&F5~0it`2)Y7mFoCB3>sk{ONNd{J`^v)~%#0yW!X*HNIaHEZgZ<8NorTFL%ybfW46 zU3;Hzq0nsBPxG^#uQFzNkKBk5Jtde3?5I3$kPw@jhPJca>uPpzVZ{9~Ob9uN<6G>! z!tsQzBJAYp`QmHd4sPq_am_Gwi$}q-5OjFI{T5C$kz55p%mubBIa9Zup-l8D7Ok}m z$eluusMqaRcC+nF9X&m_{Z=TdM}SYSr_@tq=j4s#aqhpDx0JHrOZaZ{hJMB3PJ##V z^sSX}y&_r6Cy_KbQxdJG@+_RC`S2ctW`HoVSqK8$SYLrgmh@7F-UCHky|fSS2ylBqqceu`Vxb4|?BiiMypI>zOs-@-)yG9!RfXsM+g$<4U$>Ed}tv z`1mbre*aj4*6H$9-)nfR_A*pDW^Vd0?BL@8qyN&KT9BzVBEO($MI|Cm=KM9j%=Po& zK%X-38FIhM0Y8}|`adK4TZW%I?Do`K}IE8MbBHi@$c4 zR{X*56zikU!no_vpBoB1=;ZEXzrYfY=tl89Q9JUMT1bWuyIkmuXdB7I;|v zf4w()mcn1qsi82W`()`L*)?$VBAnI}fN0RoMobz$oTOi}Vmw&Xop@E; z-6+|ti0$gKawa9SLpz+&`N;vBpyzjQU2ly1J8=0ET#$E#d}Uery~v2(N$0~ajdy?> zUhAQ=UCAjZ)Sb;s;;B0~ut(X;Jo#DrGYphIb^2lUKzoZulFKvh&RvzN7l~DWFygog z*^DoH9%aL2&MjrRbV1AZA+y%qzDAGeZBw~wy^l=m#~55A-;U0lAA;=YJejVfbJ)DN zMKbiC5M=Xw(Zk-H-}E%L1mx}{xVQNNsL772JN!{d!#WoN-6!~EmHuKC4%E|B91_}y z+Q2%h)a#0Uxos~{%4oyHA9wiHFa$MUb7PZfp1ObfTKDCiyE8QSGM=+%TjSn6S8~M` z1~1pX-K+Q}i-b#_9kpQ>6_X5Ncg8oq`-2tBX*aZYL&|bN2VO+@+=X=B5W=%*>QI&v zVQWUuiBLL5!dT}6ll*t)Y5aWR-F;yyM-X(9-CEyu_h0h?DAP3X)r&F|LEVgOwqXk3 zYQaKY@;^M1p+J|_;a60PIFo3?9Ru~5?((&M-V!STShuN1H<(ouhX|cRJZOv?b^y zCtncYPb}a@`2S6HU~HL!B8x#1q$h`8`}Ld5N5*m@9lCdn zB+ya3dkI`))_cmDha(S{ea7crbTBunC@JVFJ!KHSbf?T3W7g#MCC^*x>llv`o7g0N zH=*z+>H(%?%)x@m;r3gBk9QJwyrPzTCuRc%!hy^Cq% zAMLY11XXzOSqF&<`7Kddtc4}RElhpnNPXoH5!P@Dd^MH=tXiP;VTR$Y`=^rajEd8p zCR4^VfweOgZFD;nLP!X`0)A{BO6PNY_dssEkR;G8| zRXdC=>(!WlCgt*bPEwNGjDx31-RK;tW>Qx^FDA^$Fr&~Hbe&N{o&H9O<=8;Zwb+^@sTL`InF=~zh&fOnsf1kP^ZzK7& zeZm5j_4)JVFmeDqV*oR**umO|V7LPKg97_O65oxyj;kS+^LYn?{C@-45Ebzyj90L< zQjf7nmIE^7*XtC^f*(0(oyj~6Y>x3QU|_A;f0iVEP5dqBk-tRrt$4p33cWA$JeKaw z`|Vw@W9OHeFEy_*2qGxkNAAkbH}3V_pu~?rFuzqbW*mgz7P>|NP58H@hV^OFBF|S%&EjSw(~Q{3%BE8TFvmm}QuIisC}`pkzKL4E#q^a0l-uPr94gt@Qv> zihCQz@9Cv{7_)2#e5UJ5e&iq^Y7=vVPN!hO+@xI9ux1+s_Rhxl* z(I)q3CdX%_f=79hGASVvEEI;^nW8$3rbd)SAA7#k0=%}SK`ZpO4vq|vra)1n>0(u4 z^8l-Sgab$&&1naUAfwE^QN#i`hhfB1tjJ;cscIjEDh5sO2!V#NTuHWVspfuqYZHtr zc`$q=+v3F#k)9m3Z}43*D&9O+Mm8JP{irPY$qU=swKXgMih(|ur}|m@^v^>3n=V< zdx~klu|C)Wu5BB+uaZA8a_Bvm3yPQLRd{|8+$GunP<9)H7XM%*-R5jg7_lb@IG5l5 ztOb7}_I?{@Rui7YRM2_WJ`LxxHf~F?m6qmc{C&%nDij1|ypA@uVn?LV0(|zoVV*oC z2nNSWfmp1C#1ezBMUnmsN(KA~`tP1lsnwNQcM#H8BG-?m&Tkz z)Q+BqBrWEoUyRGKc0dvxadU!vA)0!o*PbsjsQSGj0cGv1Y_|F@?ULCX+tgK+MQACQ z1~f}yXFFt(*K}L)1Lzd9ecM&40BhLdjJy`)HV8D5jvOkp(xpJOo&E zr9-tNFAv7(Yo(I!L(!c;fnZ*QWylGZoX$D+gSXBDR6YN(@9t;*0?fYxY6K+$ptk4f zs)Ar>Qh}HS+~LBzAMcT(WxfB3NPm}RWEoRoBRigJZ76p|?hnruphUI{^0kcwuAVa0Ww-*bmmLp{j=pfr}J0Y(vSq)Ll< zp5l$^-*;ZTao&k#99FjZZSlfdgIk3CN;tW`u2sO1LVHlirkZ+K$Q$JiA@0D~F4sBY z@!@N=6ZQxFd^?1~f~C01`7r&RTZ)%OP7d1}+1YK>{>+fSXt}OJ6I4{RtZbo!(6w~l z=>$z5=yY=Dt|cYeZ2#)#=S(^z^8*$|HOJ*NZD|}1fr9Jzx6c|>hDWCX5pK_!+aWJL z^`JsoHKaDCpSH01#G}Pun%j0BilG|55dLVoHH%gUmD~#1JjTDS3lVDAIGvhxL$9zo zeLsMV^>0ExwDjls-?D(T6C7OPe`?~=d2zh&lI;VN>_c-RVD?#YO8c5RnPaI-h4~kt z2I{8v4nRxHPA~?O`cE|(fj>Q*zTVdqq*LW=_%QgdqrdVaf54swOrG(P0N(_tZz45q z_VWgWw5k9`Uqy?ZpZ#NYI+RI2;F2f-C<51Ak zgZ4;%%GnXLM{LY>v!7mym&?|5buL(iVzgXU|p zP)(bweo|S?$;Q4?ltArtcMF_oDCgPZFcHZ<_n69Wxcs|6zB_#v@jk>YcU&olTWQkl zzKlbL{#6npvw8#8x<{i)eER$P`o6mj9q4rJK*<02;q#_a!DSq;xZi$f?Nd08Y%%F+ zk`Nj?yLxHFBUP&{CswcLi)f23=`t-_v`z%SGWU+rcwXXodZ^k3RI-_IVD;R+WXf&r z51NVmalVDFchGkk$O9yxm&BiOt-K?w6_z2F-W|zAh+22E#$Gfyy3{<6luOA{zWzC zDJm8w(_lFZ)EYyiT!P^{Ns>X*{7{{lhi!bPCSra z=RxP|f|D=|4eiU=_@Qq6gkYzt?P%4+a-OS1d=7;t)3$aZisJNBp~>*#2yC_nBZl`C zn2tynEdey@_z65)-zcGsK-D0f@=XRpT28O#8R{L;#V#)11ncd_YL`>)VzKTupm5=) zF+gAilvMP>&W22jojuk-?vET&y_*s@G=FkFFpLXgX((u45eJ|V7;v8lZ2Tn@q>WCo z&*I`M6UQsm5Pt2Soh$k^$M5l~QR8^$qxprXk8c}0rs!9=kVLvqOdKS>+|-Ta8e;If zEPJ_DR{>`VPw3aj$57@Xzg{Au)pzJ8+NOs@O=GLHUXlms_lP_2daj2df2-u>jumIZ zGR$lqxfI{0$g>+9wueopdv$wc7--QLBsG&}`z9Aj23m=b;%BShrj8}N#@r=)uoFEm z==i@OQXDepKjG3n>Et;y5>M|klyQP+e68i*+%JP_F*rvxC8s4%f4H<;{IPpEf4?)V zAN_!tWS@ITDfpST zA-XxE*eQsmPVeKPx|kPH^hkX?Qq4`n2l9!m`E#pi%URLu6KIQLP^vcbc6~6bv(#nG zM2pXaiUW@c!@!s0fJHpg1tYuoXbi4ALY9j^Na{8TkKb^O{;K`|yNfY=5U2edZk7}R zIwSFz!F^#k?x9%O%hk}b&U=zEWpvJw znC`7aA@K*gm8>G@c>#E^_={AE7pd*qpRkav*1eF9uSzFU?FZ4nwJdf% zX`bH~6AyQ5g%Xc@Us3wv@8&X+!Hz74eSx>581A~2w)#@O2S!qdC%-~|dU+UIc|@WL zl@Wu(#XOT0Jkj#otd!7?N!ThI!aGyt0%D-1H6VQ~ddK!K&_8SYTLPs9PihD3N?eTqH!@-blkQHV=f|NM6a(@Doa zQ`ivA^&Gm6yYPW=$o$>L-s*P{Ir&Ps=gUZ_=tH4bQk3Ucz<*tmdJ40yvG_%;gkO8` zgcRuCM8Ht~jsDkN&m|x_C8xcf+%Iaq;+L4uge+m6e7Qgyb^Lnijmz~jp{7M1PlQ)n zj9_jUluV5K=fBIuZ|nWWvCT$OX3;R(V})P+`#ne3#EtB~>b*2|pSC{S-cVDuUC{a_ zJreu0tG7Op|Ei)}SGw8+5AHD9$?A#45r{U1{$2Dh#VHm4<*x_H<<7JQN$)uJ#tBKn zfCNLEl3*wosU^u|GU@)Rvc8O-{b4XE&fR-Pyk~eky(kG?9|xGBCsh-q%oS+M$$eD<7r{i28*fl$+!?Sa` z4V&c{Fdc{sxx-ML0Gi7yH@oZ1_}418B>mvXx#B=+P&cpxb;GAeK|RdcAS!C48;Aq> z?_s{RT!ZBm=JA-?LaKMLeC~+DSUS=^*Pc2|ns_GCfY_2no?2=cYswb1Yq?<2X&r5y z*T=b%d#lVVUiLEDUWV^LAEu@dC3_hm4v$D6dFy@=<8sdSA3E2qxaH$)z?aO=b?4=y67J|MS7;>g_7q(QVJyQEkN{f!?tq#ZRG>7BL^Bc`J(HubAIUT15#K zhpsI4FT8$K7Q4y!yk6q>#P_{;DbP`jJG@meoqPG^QMaj<$vbY>g#S7Z$u+zU+*-Cb zZLTHiGH==hED5I!J=EJgIt*C_hupOeFtu%BVP-~#V=T=oH1 zF3VI7r}w*lUe+tyf>0Rb%wv@W$x zTti~O;{Y6Ory@;!_6l}b^t3>@Mn*ibiwGXNo&9b`c0Y)87wCvptmT$oCSFkZtjf#< zPh@_UxpP;Yk2m@TH}2f`wt_+7s?%M$|Y*;6YcuRh8a>lglBr2-XeCl>2FKpNjw@8K>`EC6pQ7W}-$Qs%?=svtC z#uGsc{P+O)F~0jy;O!T|ePF!pe~jP6gabO>y(lh7_Y;eFe#IyI)8%VvLLLa`*3%%X zyP%U2tXK1<{ZRCgtb6O&6>mM+Q}kvyOobZoNui=RKk9ajvA+ zm`GvkkO;%@yG+CjE$%7ye8p3+)SKtpY&@5{pz)pn#aIY_evcKVwPz!P-*)-b{E8Try}7OZ)+|NWkSxd<4B z3-gNSD_5@mII^2e&S3I-Nr917j<*+ByMNgW=bL)?+IRhZ9ePFf@-c!+h}!0MqFX_~ zqp5wO5!wIj%x@rol?8JRt{4P}#qwv9^``w4z^8wD+`5}=mNRSG8+Va#J)8WU_Y<>E zH&;|#CF)g(Z_X-3kZ+4YbN9kT+NX?fc^-8#EP>yo^;XFw1O)KnCOEBM7N9loIzfbG z&6nDtn%CCJ!1IJQk+K-MPzKrC?X%B7ybs%*GMD;-I{;T0@jWa2XgO;dX8^Nfwz+subk%E>xrwzo zmOtgHo5n3Q`mbxoGGL^I!!f(-VQ-#_e(r7e`Jk2ixb!SrN-c)FU#HV7HPovy1fj9* zH=5qb>S?oWq=7FOIc4uFSLB|s11g1cHp$LbF2jw8JDi;N3QsYz#WribDIpU21#N9x z`ocUWKRbEZMBOD&_QX`XQDr{rf&EwJO$AfZ2^uacS-l$!1zi$%&)`Pq4_06**oif(-TI; z*rE~CRHg^y$PI=+@K(zrAi$C-i}(t zJmUzO6iWaS^!et)*bh@Ngt(^QwPYcQw9B*{Qil}#J1tN(c%p*%EOrGO*DLZ{cDG>& zH5vf@d-T_5TAn{?2+NSHFe779qzA&~W+FXOnW!RlUsttSt)>^WVE_Hh7 zI;y)Vdl-V=HU8@$=dOhvBGcMXmmj3@9z0eUNiQ!D5Uu{5SsDlNhcqz0=lafp>cL-YkCv+I5SX zE__fq>C7bN8z~G;ehkzDf|+0R#afgvlbgHGcvJY!HW~inr&s!Yy_L~x0v3B1Zc!8F z{yn@g{sxi?w@_%sq1rq4l`mj#p^%D|NNN~=E-qm!SwarFuAHGl8^=)f;Rx36{pRheWT5^Rxj0+6uGtcLR zZP$#)7+$;n=;uXi<0pe^RiboNC%X!$65SS)do&$qG8L4*Dy-C zsLQZw_1DVQPl_ zm1+(S-K?0rxzP_3QIuLyjwu-)4vD4Cul<~O-EVCJzw|?YE!1v>LVY#)aP7O;2SZ~> z+#bL;zuLj9^pkZ(5XZ)+8-15gd?}`OzVAk3!y2ir|<>9rLeZ(LW!+e@a$$99#Bw)rso-R{SO z*%=XZw^};CDUZJFEgoNu>Gyj*j0vhXulj+qm-2%j(`9sNRsq3ORQ1`)$8{@PKzpeD zBT+$E#+~}(8(R#Yufnlq4ODfXD{>eAcpiQ6W^)*$tk2R6GC)LW z2HdqtBTIQi1MB*=v}1+`V@d!vNyM?Q07C@vLyHW#h*IPou@f$(%$Mu0D5&1;YbZKt zh;rK5wmqn5k|9s*xy%|In|T{sHl~^MkQL`ivk#mk&4zA}6@|g`i@>U5c6>>2fH z*i^?9vfTMby!nVaa1B|;l4>k{R5^%$JmWo1pV^nmvpy~0flb(JRBXtr>vvpJvAf@1 zqd1tLo{X2Wz8ZZ-cp_WT`Zea4JkWcnRS6-VpMF`L5XH!j;vbGvVapCu)i4iwc)?>7 zMPp-X<|N&Ascn4Wz~^(CVc}m@adALZ97M(Tz{W<`(mVhA_{iu(#&Vi%@5AQoHOJvq zK;Hbu#^A{7^5YDN#m_>_Ed`~07NH8EWgS}^_hd7Tv=Kc{CcrrX_4FkzEwOcLdJ$#C zU%qiaW}e4y2izF_Q83JAxBHGu$nhg91>KjjGH9vF(7fx~S_!o|<)O;StkHhu>b1!9 zK#?xJ$ra^zNjV~;mO}+82=#@<#2~j|K-O&^mD=ju+JlK^Vk|)>5-`d3xsQ*11;3aF z^@*TbV%erWZO4A!_otUL`i{b`0IF+Gt3Y71iXEiiee2Zm(JxhXLbPkg`ENhRiRW=@ z?LM+oLQQ8~TfGjWUNQeB>s|Ka&_UBBEa!)z*)z2DCA*}Ivy9%+W>&}~JaYg<+78kPu67kbo>(Mc?q$K2iItP~W5LR*iyh178 zH-|k$IC0PTPy=ivNX%nO|mQKIXk2bkXkb?5&t)tbN8t-F&l?!L_SeF_MHd` z%UWVJl51|7Uj}J@i~BzuMEo=Hxhk8xEf^Pe{f%g@tA<20$h@%#R#Cu4&n^D;?=|}n zh#G|^PqB(W$yi6i%6;yJ*cn3pQG*XDor`40{$7krDPvj4ipTe$eyarh8ojWQ8w_m3 zy9mAm!2Q@Je1K1<*u_J6mHS@nBqiLqkQwjxFD!sP8XQ3jIx*Z1(TOx?nLFQKCBLF6 z7|Flv-+%bpi&k-Fq@as(7Gi>&FO>?uUCH(rA;!i zA@-^mAjpN^@doEdbIb0D7nX7X`!%))NqC5frDFXj7HB-xinw?;t2rERXM9;Be3I29 zw4CBZTqpL2NbQJ5B#KP!a@Qd_{;Ab^F%_^GB(tTi5Bgtxy>~d9(f>bewWyI8wTYlr zRTQ;}y=qoln^>(XrDE^BS5QTbw53Mvs!eFEpjN5aGit71w4X7*#sNxcB-v;~OyNN^;pYJ7{sZ;E|MjpP^NPH!CRL4D++u1#;M z=$t$_PMWBi5pQOPum0hM>=c4b?Z^CbdbC9X2zJw6=p`1dnX0-}j1T&I8{=8C_Mcmk z} zN^}Bu$*b>b;Z$9|5rL1LRsVmAWj7$q^Oq|ZpKn)Vc@d@7sKB06e=M+Te@+=0Kp?#k z8dJDkrO78rCg+H6`~zc4{PPLxVrS(@Wwh<%?-I(AEgNW6fHebmugJ`)o}NyzC1g0r zmL-S4(SLX*vGId_y7?h&;K&5t?rdQR!Q9m_=H1Y}I8{myVqE=At`wWyYrMTj0(P zmRQUBXunf4T8*~4N09DtgDP%(8ZR_?-EP82FlH7+{9h&Wxtn8#qt2RDceL@?S$gTh znAa0EPFol3YrRX@iJ7;BJdrIs&2rNaP##-hwf35C&!^&Gas8m|tF))gn8RLqZ^bQ4 z<6Z2nEvjlJERiQ*KC*YZ+~+{KC5GLtQIvqRVJIf|F4^Z^rewYG{0<@h0ZDOsxChw) z+7Yx6X=NsYzia+^-*=>2GsH9iHO}c#lLr@YClyO-@`vKYX>QK*bE*))Srg#i>6DX_ zX|ZgA(}Q_hd%0v%oUe+8GMn4X$>H}3G6H-lnf1n)4KN8q08-HVln}OU(6;DyYVDYK zx2(m3kjf$y|Gz4z`yKp?=xB)1+$5Z{b#Wh~|C4jp32JI1+b)j)2Q_($Vc3sM4F4>T zmysoQ;LW~Cdc+8{gP&pH_S>2Px&fH2|EVpaEL*ZGE5RTHg}OVz=tbc;mfwjQ{-4G3 zxDHVi>9u;hQ{33Bu4Vl7e!={yEsculT6S5t)ZsDQ{zWYl+=?gD{Pk_@*sX+o*ASPP zq24R`mzpXrh0<&{+SI}wwcJ~E6afA-8_W$``Gxcm0_8T>o1)8d^b=-|mCyGEStz9j z+eeYdZ$MA&rks*owEe?W4HVkxWS9hk$H)!h18ns=@`)6(fut3ycic~6 z5MYC?k0A5jXXa^EK31r^+)y&cHfp#T5#@=NGxtvtKc~RfH>r!k+M*5&)dqBiM`B7Z ziTNgZE5azKFkklf>(#^0?{vfUIw0ywqXR_QH{doY-*56ffM@pf&M;9DJYA*+zVq~0 zK5TEivDJ*C>m|rPyI$M=J#Il;&OO9Q6cPBs9*K6BH-_VFA%i4poh9WC14r*!JJfbf za#WAc=ylvC0`MB!1&qKKTJC8~FbDx(PI5x6u^Vb_fO_Jlr?()N4mA7<|EQ33$L3Lb zYWa=qS+=K=F|3iY!Fbo^{T`MA>rjjsar6;M8OLE12(F1V2nCKMToP4e^p{m$*kjfLmyS-T}aLyl9ZP?JWrW{LHi#d(3HQh!g4V=^E)QY zaa9%o8K%vNQ+W!}JxG=6YXyDl?OCG0Y+*`<8FxFa_o;N>r*eWEcSMDe);=a<(cDYO#^0;d9Xm%9?Z z*f#0}zNJC~i4-MFto*)2X@(!9b`kAMar)cka;OG^I|TMf56Yid#>gs(boi^=1i{P< znhxC>!GQ;DZaa4EZ=eoA+rgfd!{2{bi4lx0*C`+Ro9#TbyWB~4s?khudq=lSFtQ{n z$Xuo6o!EuoHH-e=7qgiH9!=@6f`zdw|M$BI3EyqMFsHK*cJ~lJ4T~T<_=NsJEhF5n zV~`?mp0D(s@czXZ@x}E@aDH#Gvmx@&nhSjvOT*{l%TO-LZ*)`j#mnwp%N>!|{!8W- zQ3F+%MLz0nFM^`f^9q0hH@uRa1oJ4nn6JtRPy=1*{ZToq9-9)$nH=9u}b)2g$j4B`@fJp9a{&29K}{Io-0 zO}(#^9}rx-9l-aNX0nrn%#_7=_-+uv+f7z48aRfC6QxJRKy;NtqijzqX3F9@ipLz< z-XBfdapFf}C@HER{z7^MJWpNm{6GyZl47vug9C!HCJzUAiRr1Mry5+V?!$5kx@=uX zFYOWu4FX^Q+Sq0VVNbsD^lm(2Rnc|3+oQz|@{e~?PrU2~97Mc~<~Wy|LePTe7n5&? zYt=OGxx2Ll?J4vqef)Y5{TBTckizCAkwvwKpX|VU%XLk7cxP|+xtq;F3I~_%t^w=0XcUs%*yD)WUfX2PbK-9-8&q!aG8FHGHV{K$4$s zA~num0yc09>GqYP6JNB0CgDqv{?{3WZi{74-_hH=-pinKB;blcOx&HFn;9qC3mus~ z9^Q{b`+k^cwz3B==ikLFC~+~& zUw_{a!cWE*SZJ29QDRQHWb!yx%Rmam^^4A>ao9;~R6_ObZM$XW%UIQ9A2|%!VG}>X zOlO)|Ez4Pjl-N1l75TX6`*Y;G37`Z!K&lAUqS!}&o2pX zLePm&v-@uDDXNi8H~9!l0fvQfRnOVZ((~!&nImd{J?}MZcZFA?-FLp(V_ekBCsVfo z2kve!SCQt@;64;_2m79I``?@bOqR8dq~_AC;z!L53tD&5pE0BwEw|q|aBk6*istw` zl$Q`2+mx5JjC{}c$IXG^mCIs4SD>KAGC77~@*3X>x)~-9SPs3KC~{n=iP=u6D!#tL zJ-j|!$aYTsaj)*qQ%x7cy`C230O|tBosLP}xG3B5(eLDLtB0J2Ffj2tWKu)UufCE=7r;=Iu3#5dshDB|oDMxOAEs&iX4PHP1p>@I<49 zhL@N^ojJDg!6>ar$5WR6?&C&WFe25eVqyHwHx`=#i9r)PEW1sc720r!uf6v ztt{Upw3xrs>DQVbIVb&A)mZux;Y7D6f|l|Gz0voU?a)upGuTL~59;D^d3`&IHrh*c zMLRjBPV;!fr>aTz*o8+%qh@cdohHQhw8%9Z?OsoEO=a8WSk6}0l5h7-*Ws;F=vb-y z6o_x%?VBoj#I9Z6`XW?y{o_W4=%3rls~~l{6QZWB6tZ=?o^&COKLI;Cmk}WNGp(%@ zmwp`@$++^RH-Vv+p*tQWq^Amdlt-lFl<`95N1g<-wi|Z-*3nbQ-o#sUo=;DyltSP3 z-3LAK{K$MDHf>Kk^XOlR@j}|a8K4yV!skP~P4a;XwBo`FD~|$PLOw;**EuNoFJmcd zD(MlP+61pe&ySO7d~DbCb~u3D9%)LV1q5Ce;1RFX;zx%SB@NST7eS{a}mWr4dw6I9b%K zGfcV9JDvEwetA}!3{vwsNB-jh_D1`LjC0@>e=>l1J`k#OHUYE+fO2-4Lliy%JQcUj zU4CWQzIL&{5OrzXka3e!`rlZ<;m?X(@p=|->PgkygAWFH#U0()KH~9IUd8&1ZtKk$ z0|Gu>|Ms&1e*yCfW9ifMwMblkpm&$>?zyj{5y!HGz(Up3Gc>e;ec0g3y_qrY!YrvN zzjqa52D%}0uJVc*pIx9bMwah)?f=z>J-V{pRVp9x_(}b+vX-dYWPwXwu-zHfdj((0 zNPrBtG?GcM%iOe?>6g zRJt(E;Ue`6T_8ooq-f*ZJ`mBt!1LC>{3i1mV+O zmSN8FvO1`#fWFf@B3QgDtL34Ct|sgvDt*D)j~P)je>TT~av!++gQxcc$4Wvduh~i7 ze!8FvPFKw9FV|^8`$wN)D04J(Mbq;J6Ir1NwQo7_C&uPZUlM(Kp5tiWUQMi3D)>}N ztwbKz=eQ<9==2gF0Tv9dS7Ks?QP=HNQ#}+1vr5#n0mBN!a5ZQsLI03kM#dL0Y$CG! zJ5EQFtF=>y?u*v&yh^MV(?vnk^DSD<5Qif zNECvpxW;yJ!)wi-i(m}zKMSsQx%N= zTLHRWzPaTD*dfK)kFbk!qC|0V=U)Q6Hq45n#4Jy105KxFxc9C@>W*9>VaQ=5MQmMf z3}iogZ;4?Zi1a;x(De&q7an<^Y41{Ka-R3>1mD6Af5+Yrt;{>`xP&Jq8=QE)pC#Xk z*&&vNOfe&1YC!IOqUC$O>{fzOeHBi^PB#H&0aNRz4yyD~ z1-MxV(U#9p&h1c7%)?J!Fom^fA2KjAXuQ~Y4f0mepV{+$gewzA%!Qq#Jh0?`QH0FD%<3HI%%ei>Lx$l_&jlucj z$&>F@WLsvAR=|HX{b8!g`bR zr>(OAyM!@`lNR(htVqIf%lz^)6Yt9xHQgI*=X1_e$C=${R&MTJ1zWDZO)h&TUGCKV zyW_I5LHbXIRfw63dvi}P?t^tmCQIi#V#=}GmWrsk*)N&aMRkiOGb&GKz0hq-$un-7 zKi)`PyRAU<&{hO`N)r0sj364(A~GxT&!uf*~j8#`U{#vF^~0!i5~lD;bNmc^I_gR~zej>nf6H zE=O4OeZ-p zv(UjQ!Kg)zZ8U~v!?NWbdXT@|>G;K&)kG@pWAm5x*KF8^CwUKW1$23FmbwxD)$QV6 z#yHG;PU&TCZj)5^0wOy=+{5h@KguXRoRht#H?~HNe?FXpxZafF9lQM;7kw^el{!y& zqzM|oKLe6fW4D{hH}uj%n&+7-EpRq}=M#g1e$D38;3C(k|I<>@Ysyb`2iEik7uv*e zMR@1O4yP|f=EZbP*13LN(1Ok{w4qO}?0yXr&g)^#pa1pc*i!I+dh+kQizKJ3@{+`R z1*v|!D4NWVO8>h5{YMK!Ux62BD3hQ|BiW7q%Jv8KWOLy^bp%?1Dco(B9#Oor3YiMZ zx!G`+HsaDt!;aeGMCz}g4}>W)=b9~iuM%X*N!EQQgSS+E3ia6%|5Q5(p5R2o=jWuK zt(TO7EqeRkac_NeA{Awndo{(faNdcaoB>_LRpVk58Ai|gKUX)ZpofAMgHam2`~k8$ zgvCM?N5qNP+IaA9w$70feuR}#8X z>(>9NW|P6J$bVDLMrb8IA*1+vjmym-?Z90JU$gKm!_h9ciF!l`yig+9J-7P7yK97y-MKhnP^q?)UP;tNw^@fW;Un6jJ3hyN(gc5*d)1W;@XN`{ z0lN06IDOvy_|W8VHp&j$8NYri4sIbbfJ~-cO8V6ft!--qTvqiErx)WZ+*^ zAd`gD3|SYxy2Z{_&Bh_nk+Or#ap^9)^|P0p0Y;M>>nj07+INMQHxBpx za#|TN@09UyV*}F-s@SI~Wc>r(fgGGA?`2)uZ+bIW`u8~fh%iS97czWYA)O=%4y9qe znZV`C7y2b-HvR~yY>;BfyKJt=42n)cr}jSd7Zy;s2vUX`RhDgd{d!#&-uqHe`1Xmy z-bb#*Lm8cTuCvpWwRlaC5Ys@KiXHV2OgwiNibu&ePFX%|bB{Ps>jHC&U{`^{zyYxm zH`-tlM>o3GX-1-g31a%D3P%6v4G3XLk)jP)g2)SQ6940>jME%Glm3gsmsmHnS%lYf6@ZfCDXh7|=fxA7NzbtHx`ML^5pA4=E z37oC}`7>5@cvu8yQRM=sgU*i}Nk=N)>FYv7N)PKjF9>#C@F$_PYOmu+4{j{K&^j+M zsf?cIPQr6Jm81R!@)^!zPag?sAY2zSrANF7WZjMXP0UK@T`zo5fu$#gyz`4Di0c!! z_v#W%PLO_Oy&a&X%};jw_lCy

    y?QB^t*_Vui5yb;{~KerB5hMbS{uJ#wo(_x9*z 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

    )7-HT?U|LN{LxwZmzLY=izr}^=gSoMlLl=8+ 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

    HGLJ@Wevh2%8MEw5zdFhLxbW2n^u0Utyj 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 diff --git a/assets/1x/standard_giga.png b/assets/1x/standard_giga.png deleted file mode 100644 index fda44c8a051370834e51fedec6e57c2da3c7d2db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3984 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 diff --git a/assets/1x/sticker_balanced.png b/assets/1x/sticker_balanced.png deleted file mode 100644 index 2a86239dd51e48608f3e214eb8660727d61fc499..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4493 zcmeHKdsGu=7EeH)Vjtq8RBF>u#YHBWyhvswAP^oo7)T*Y(TXscnZPK?#F>EvUs%+( zh*f#G?y zt>R#xlznZh);xbGv1LnfT*FsLY)8SX%JvJ#=b!sN+TydL>S$VTW(7{_PC)&E=-g&+Ci=fp9Ao6JylJ#Ec{a z(%8STRGZMSG_WxDO%A#*;BrWSv6GmGh&tE3WARt9>s7j1dA zmQJuuKrugAmUk3bXIU6ArL=-JxM>&Vq1ZBZ|r(v zaiVWO(q9oZ_xVlNPu%`-UUyl8TZ>;n$IszwUrP_o`=GP&SniQCFLYJCv${fhePx=4 zUYm9_ukB=TAy#$peWEsr_45gRu6UNN>BygoLPB*p7ZYTq?+(_!TG-luxM@N8QMb6A z9<2wXnFm)3`|4h*)+l~h=y7dnZ;7>Vhx^95rAM*L-+cDhuTkNHmQ#D$`rG%N>J09A zednAAH_w`vOK$C4*el$-uL&HKDvKjIB=G^ToZlhB51sP3N%={VHt|kRtZMXW>Vs`+Ck?D z1mTfRJBF_zIgy#nrfgbqZ`~(i5k+XlFRBc%!5%~APzmc8GId>&317DcM+k9bgm1VL z1pro(!$eMNu8l>VTCock1^2vIDi*m+xHVdFy1^)lp&3%7lqe-I6zin&<>ClmQ8+_b z&=g(VFa&tgigP&5j!LBtheP5}NN6ToDnk%N3d^N(IRq>qw!p?=PRPav@eo58I+Dd1 z%Fa==O~hkjW;&14ip4-L8i~(pHyB3YZR{`$fDfq?vrAgA!K$(eOUCOB#!(NRf^5oa zcX#z7=A6zEDUcYIVl6ak;woAbijz$^vTCrRLk4cQV7-s2|+nlaIIu2#$kCE`6t)dnz71jb=Hj3WUkELWkh0+ne@unbiqs0xN)H42Zj zrwPhZ@V~72@ezd&6+MAs!TJR*(a=n#l52;ah8}Y%*D#4huCYKdd?*DL%O?p}oB(S` zh38)Wwx((Qv7LH__gaL-KV1ltHip8ly}mmJTN?<#&vcY{RAh#YecyVB8i1 z{Dx#;>jFEWbaX2m=8NBSe#2w94!_|F0D5YXN%1>H*A!ioVqj9nQ{6R1*Q6Mjl<`z| z{om;F9ebG~ZQvh}1H3A|ewuXyuUVev#CVKYt1Z`}RKt zgkGH95bM?BKGR#KP=6qogLi4QUKeF@Ui#rH+3M3-PkCOA?2;7K+z=kZ_s(zlhk;|D zj5kAV0ou5|I~(19o>Sy3%Ks%s|4{iP+H{~>IJbO(^z0kGiQWMFKaW%Oi}?{!G3m8-FGJk(huz39=N6W?PbB$fA4P|2#of|Ub3O?A&lR`SAM+n@Pa0L z@WG00t+S1#>*11n@1fmJv~$*%i$2SGr*XsVcgvR#+<(Tj;dXxW#t&<&eGVJ6$4p*> zWW}uvHgU7nk=*7;s^6XJp{+%N@0{=Fa;D8(pY!FnhkXClb|s+uL3-nhj@4fTd~Vwl z@?8X*)PAfy?>WbLq~nuw*JgeUsV`n>b$rpYZ+G?A?@QX*TU`OW9=FtdxaU#B-Tl^& meYOm~Rqp%eE6KvEj|~bko8MT~6IoWor>&1o()}emtLWb#o_BBn diff --git a/assets/1x/sticker_nemesis.png b/assets/1x/sticker_nemesis.png deleted file mode 100644 index 3a4fc015888ec109899082507d2393caec38838b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 562 zcmeAS@N?(olHy`uVBq!ia0vp^?m!&R!3HFEncjK{q*#ibJVQ8upoSx*gMoqZyr+v} zNJZS+8@_&r4FuXAHr(>w;PR%5NlcVUG4GOa0iWLiUjZ#A9ScV5Ba^&K0)M$miS)ib za?`=KN;`C|?DOOP$Aqn8kFztf2>h^aoNT$gs`CGh-`}oJUmbb;!*BWG%E02nwokSD zJ!jqC*5NU^Ja(@6l+Snd4*rbN`@L&(`*A&~3mSa~B~BfE9o_V~a_hU-Eh4-tI)a-j zckTVjx~ux$xBrWo=Bh0$Sn#2oa;%|%l^rwHz z-fDMH)73YZUD?&Y$++!-@FxBKx3?c{TUFU-wd~I#mN$;SY_24o*Iu_%%Kh+B^#ob_ zqI)Zk3AWhoYJc%fV*L)mv!*A{6&HElY`c8J#(i(UiR7HA6P7=-JllHg2y1%b7Pm`5 z2d?>+@yw5}u?)Jh;{46TREfh6m-bcjNV~1-XEW|x%(mu~ZV1=@ZDFVOp1=6vvihyp zU8_z=Ry`G)A{fYJ=w!;oq0qoUOXAPs1N`$cw-*#nJ-Qkg)qJTDo@u_m3|c@o2M~k6 RrQpdR%G1@)Wt~$(69642+F1Yq diff --git a/assets/1x/stickers.png b/assets/1x/stickers.png deleted file mode 100644 index ef1c1c63042c5d0b56b66a7619c814430530e3f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4384 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 diff --git a/assets/1x/tag_gambling_sandbox.png b/assets/1x/tag_gambling_sandbox.png deleted file mode 100644 index 9defb0d7780611817d30c30beba60bbf46e0c023..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1793 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 S-8x{-D}|1xA*@!zDds;*A;Q%F diff --git a/assets/2x/alt_stickers.png b/assets/2x/alt_stickers.png deleted file mode 100644 index afbe9ae7e4cfdd0259c6c3246388b29f07bd8031..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3468 zcmeHKX;c$g7KRuk0g-?L$|6x&+9;r{fT&<1D6#}ft$+{>Xp2i^aZIzc2q9<>Eh;(! zimcHn7R9bcTGEiXFx{w#2u0Wewl;!+5V{RSz`(rNea`%xUvtjO8!>VDsM z->Y*_kgt(}rGbu)j*;I^pWQk-x+u7AB+LiDhr|J`Ail@XhXyCH6tWxD(V=GgZ$FNer zD)fEqr4|!1H7$*Qa=vzrd_RqEAX`?jk_yt(1{Z)(8uh3y&8*(j%~xA7{n=6w(&4?r zrBl95j?U6n#OJQp-j2JWhi42=c3EpH5-3Oh>i~JObopS!)~Nx@{){7Pk>Wth4AWa% zwN@{|kVrEV{hk0Y^VZ-(4NP;Pr#kyuGrMYD zSvaV#0z6#*iw6sR2G=Y?oveL@^6`$n$x6yDMGUBnQv<~WNO!<<7}6?W07 zkYdNkW3A{;81Y(YLX}Nw3`Y=mYgl=}$>*3EJ@aCx+;yI*=w~~t7)D{G{~K{qQe2=?nH&Mge|pAX?*50SZGS7M#l157UlBu zXWk&i0E;iNVj(KbW-z5(XZD75!ikuZ?BIF%x3V_j`n8s<1!^Ci?XuBgwb-~Bx$02f z*3Q*D-EhU-kIr?_1(o0U0I!j>5J};Y9O$A$`J_5P+*T)c$7V+h9JiHNXpJWM6_+kQ zaWZbFR=Pt3phC?dZ1(fZUfb#(-vWNmTOjVx-geYzFHo%3WmV<|iq%(v*HU}66u&0! zb3&${&AhQ}&f~u>T59D0a^3(rq1d<`Uve6Zn!`h}Pfvlik;vl|VC;SW!PxJ63-4?n z8hMyWTtg(F_RF_!g{hFuGeryG7ML@udf>$Dl(h}&KQxS{#)4u`N0xBUsD_GD!8O1#WbFPu8Ds6*N~HNiMJH#H;<{QvRi+%A{7Ph-vXZU?Scg!~@nL(Wa(`(ss~3(VlDWCVxv1w&BK zB}S*5&Wt2UKX=c{xmqMS571$()% ziGXfws9A*T2I84qIA1pRkcJJMkvraMvvaM#gY6B3X~sXqm~8Z>LPfl&52ti#!v1Ie zID9df=|R6Z>XZ_e_Nm>b6dp zygQ)eT6n!9wqE4x+Wlxxte-B8aksM0#UGM2>L*b7nQ46Vb#r8Vv=Le#xZ-O8Xe1?IFC!B1VNrp5dfxC~}SFXGqOoawV!sIrFXouq7cQ|(w66}6JT`G`- z=NC>V?^3iDk8w%~9cCmrKG~}N>pwR(GGNC5%bId)$CWc?`=6^rm)|F%PLm#GjA(O{ zovX;m?gy1GOZ6Bx1nwvRDH3g_xvJNZ zV2(Os0vtm2SwaG$e5mB~AA8ld{YmeB7xy--&St!LM@9}#HdTR*@Ufje!nR&XV+byx zWXL~q#Lm^A^zZFsF~azmo9wObVNF|hq*D$@jAlwYK!4?v+_EIv;1)1BgCb*~O3j^y zM#*fvVyGCmAaU_Bce_9H27+TvX{`91{|u4z!|IyF5K~Fh>eF+L8a-HKvWQWU+GWHm z17vh4Y|UMeLPH$>F+oMcyp$aS-f~BN+tUtlm6$cx5y6bRX~41T6J%lrqUB%CNY$om zcX?Rg31>}~=rNKlt4n^EzE~Hp8K`Rw7Wy4i#Gl@?{eoaQa!~cinLtWva^H2IY65d? zjcKllbBthej^yE-N~#|=S1CWP+<%c22(Qb^;Agh!i@;<#cMj!#byE`twfrp_k6EXL z*z*?S0@R3eQQnq`Yj2mFK9-$MIWjPsPyN%f78dr1v%|MQDpgK3-&V6#sTyw!L7cCW zYs(N7w+8PQWlJ9x^Xsz&_ z$hmsG-{6M{i$n@?a6%;^W_xi7UBn&pA7EFHh?K|WR6BGdl`40GX( diff --git a/assets/2x/b_heidelberg.png b/assets/2x/b_heidelberg.png deleted file mode 100644 index 7b8d21e4247141701b31c132deea45667c724f5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2503 zcmXX|e>~IqA6Gdi--wf6LqAVT=`L)x{D>GuMlM?GHL#1{I_gUQ^pU>y7JHGsGL3anO5ZEJxi;<$fux#AA9@jO&FhwBH@I=J_HdrkB2?&Tq} zp6S>0vZqXvjX)J@#W!`Xztyz(uFHQ%@u^K)I)y^v^97Sp_G+eBAZy`I#|W2+j_v#_ z!|{$gS8r*i_sjKN!Z8S^ET*WZ^Ww1xGHp-14mbuRbD!Fw+_vQ6kb6C0 zk+(;e6R-KC2bOWnbTsXw0tUXg@mIC4Z}<9)r1H-^`=@ze-=IiF`kGwXC~uqnjw1n2 z_pXy#iP_yw%d3|sHa<7B4NF%Sx)T->m(yO(W-QNjemd0Ytiu?9t54lad`J)>I{ifv zimUi1M_k+S>dPC)FcrffvYU&yd?~DqwlQzWVLq?bT^makE#>I3yfMMJ?PRyzW4vA) zWUR5kN+#zZn$8q-q&m2wqryvR8)n!tkGt`j2slsgv?y7?Je4onxFfcf&C~QE%r=LB z_^akklThT6P)XfgHUK_voB#7`9IMf7mD4Hv}-n`IV(`l65Wn$1iIo<{1o2sz)ldcZC}_lj*~MWRl3S`HAV11 z-}#8BmedMgN=UYq=(&xzDt!C3c(kc|kBv6L_?{Gk!el^neh-K#j}j$gEE|HUZydk= z9}qVf?=;_a$FYLesai%c`8NG8x)RURo!3cH3X8ZIgmygoxLo&YG{)>#UYW7GTYi|i zk;N#4a`f`ttDM>Tla`~P69FZD>+@G6jJDzK&vWsSiVd)Xl%2bmwmkLjTU=pKIOunv z#iJ%TbjejKR%qENYqARv5+YBQ_y*^CVwrsqw1Xj#(e0gbdTt13*>sr;D;!L)v_7|M z6hXQMj2wUoXP6YacRX<&+wp3@7LaQWS)W0|q$_cS=OSs$H}aFbfGxqb&4g`U&7r2& zv;2iS&MHVh%l(`5B!tC}e{?K%U$jMvUlkjU{#Vj$au!vCjCy&nQbw$%jWCihdQfuO zh04t2W4!8k&1`)6Txw5X*x6rnB!}dI%n~m2@@&4e^dYY_ z9MsCI`0dRdmeQy0F;${(p7kDR>(#}1Yd^XZ7|NO%SPCP@kK3zi&@aF1OP4_ELePvx z-TF6^pFgj3v`kA}aOVf%>U+oGVzFbjgMyKZ!j|%?npihVmT3S*sqtt&gq^=f5lSTh z+_a7=e=AJ!Bf`j%Bd!#Dl>+Mq?AIKRbsD)93R)$O@bquB=s|lFeF(QD-*6y(? zqaYMLj>L8)YOy$+@D2nIFTllJ__wL?O-p(yOB zjda;c1=UP`o{eWoO`&8|Lo5Za4kY%lL=63595PTEhbGnGPxnOdgQg2rLh6XGDh&xq z5=G?XQ*lEObpEAzO0|i2HA5R%m5nir{gKdN4c%gQGx$h-h z{V~Lc7^TlRB(m)~wD9(arvqY;1p7rUarw6FbNi|97&|Qt>nlEwdw-o?pmZ=F*MB&g z(V8@L@s=|Ak!jvI^$W6WOnD#^IRqI12RdZHL=kiwmC68Itje_L%vv$++E3A-1rF6p z6sNJ<(jt1|-H7d4RRWGnV;&3@q`t4V{l_CD-OT12z*1&wUK&5%Y)*1T776N2($-e1 zF>wF`HTm$siOFhq1>&q7ftN?c64z_$orWNr0ac9gjxQ|Etd+cE9>^P^z2n(6{0C4- zzs>72J~8`fY1*8@xZhS3oIXS_dKw8rn_JWtE3O-j<9Z!tGXAC=e-Hy(ISN?z-t=Hp zJHE>ITsyvg_Q;DqZ=3}6mB}x;`%d(pOSsV1bmj$J=8x|7$O4=N&%1`rP8uthtj3!zBtQD5 zleE+58YqpXBhL$>StHyo#P&$Fn-(>EIEqO|U4&CBZ*zz3 z`yp$$cY{VF;uLU83r^pjvQt5YVSa5q$9{-xb~3=g@)5W1Q7B4=9R@`z(m;Uf}X2n+|!+Go$Cy0$p0%s-oK zOQ6!NAD~jGBL=M;CX&cj8K$wU|6bSN${eBcZDP2e!DyI@X03fQh6As##5)rQ>m?P+ z{7+SIdmpdgXU#~Z+`S36pc5@fTdfoP-W`4Dqxr(&31~Yr^-LYU-s90>{e)l3y)6Xr z0q|jx$7KC0nzPTR$(2GkVPeGUA4-j(V^?I3YqNfUwr;c&(}sQGq|4~iH-~#Z_m5Bh z@Zp!iXDj=GQ&AnLME{Y;jobtGV4<;8zn*8StFn^zqzCROUV!S<9J!z)3(%-N*#39r zKQs1E{5af0KT2U+0ZnDMa?Prk&m$aAv|gESgOI!Qe27#9j0O6w8s*YP#45X1 zz(MPWu{SRi8b>BBc&(0IbWBNopNK8!^&f0NAtcU$3Y4jad5KUczZ<}%9|RKKbhcp; zJ@4_sxdka7&rAcHk69q@?`xd$0Ys8)0S5Ivm#x`JyD3RG!RbUROzHGtdwskHNbwEe zT7Shk?tDEh@7$8PEU$D(8-g^D2QlI8xKfYzR-iS4er#-W;bpq9;&sdPu;unI*AApy z6DM$sp^#eck31c!X^rw=}G*z?ul z$h6_9fTDFG!i}hD(`}M=uf8wi#b#f`kF;;JJhLp@f_4xL5i+#IMu;*Z#4STj>F;nd7U+k^G;y`(sj@!&oRoI@#3Eu*{(6{P0(*wfL*B zW{B^6kKgwBTwUa69>4zOTl%Xv5!9OaRQ6(7wr-jQ7x-(@>WsX7h8Ui?(L(QYrpt7y zF2`BR&5{nR9QGw=ho%h&keAJTXvGM`5oKYQyz$kLwOMj6F?~53712%_5>Ato;L`+z z2H~w4|G`e?qy6Z&`G>heWq~?4;z9Q057>|y-Y9wbN)9Q&}^zrTWwn6450rV8rtVyncR*Ja311nNuPvkplK$E@VPN z&p|qL_=fNxZ1Qv`_6a9vK>ou4)!vlpI!B=+&P)90L_F;CFmf-=8?g_(<4uetSoC8V zh5c%p+1Zim8tdfVP$cY&zAvz~yWxs(w`#Xb^KS$%U_0M2n)z2SX?K{(znRJH8WzBrEf5=oH>GBN;8iu*SlG7rfcyfHE8ReY+ z!5V***pY5?NupnsI>(N6cv1B#kCz`*!J~o6SU3Mz7GVDB1jL7wPue7U+3l(tPFF_T zp#kW0drwPC7x1g2XDD3qNewKA|+9%+%f38GQGR-M+X{a>#_O~U_-6*p>^(JHJ zCbM8leRT%CKJIRY;&hovf^3CUU|?G^hkeUt&SLz!{K4BljsXKWM#ontD43{-F@y2J z+w<>dTa=m1gPhAA6if~^7#WdiB3|~L#=);s;qZM2$=R4B@De@X=V!3Z$(>#jr7870 zY@ukpB}eTLut6ALAPk?v9TQ(m(2SfRPZAtC& zsY3cQQfspWN%PsBs|4Hb6xenhzNc~a)SVddqX?_04p_=yJ(sq=FT$!OpH;T}$?l`! z7-_ahIL<<-J&Z=rE~~0Yr}I3LT)hzcVDU5p$FGCaQJQAM&c*-yfUdf+r#k%2y7UD0 zR8p!?QaP7GP$BsS+s*nZyLM$2{g{ ze;$J5o$_<*b$ZnXPDd_6M<+z&AU#lhs$%4F{Qg6Roc)Qfj8R!uwmpGI#D6D{2CbgY z{Z$0O64TTADj^Q~oyFQuVW*B<3$PO%6(4A)AL5&$27_?_@r$U95z5?Xmz+lDg;~`o zrX^OL%B)UPHe(nEMtd%Gn&fQV)7601aJwPSZx;U8=Yd~G9TMbL7hrdLCN8+@9bniU zAEEPE1?IXPVN7dO`wpdri1!65gZKnHE%7da?gO7Miay$v!bWHgH9QKy7iQcy)@UAu zX5?)4!WXsV((-iULgEIK+LA@gGmL4qqdTMh&LY28&i3GjmF5ZVW6~dY7ysExk*-}K z;GdrF641Mk3owoIXL%Q!N#j|9Wkw8+slb`iIUpp8d8YkOvrluR>n4ufrcU=xIhV9; z!ZQ^xXQDhw_w619bzN%}MZ&1Z)DRO?4Hb!@U_CLSM-}PWl4Aoot&Db`qm1zAjfI`F z$JIri94yHrK^05!qPR$oopd)QZ}2yBw+&N`3!IqnVx-_=hoTmoQ=SUAU3L@rO;YUY{PxrtQ+->HF3AU|C|Aq`=+dls39_;69G_AO?p*F%s6O*96TGzhlz6aIB zDO_*OIrC|S%XBA1^$W7;_nu}|Et2QJ#7Ki*xGyz1F~J_pwm!=B?V_;R4`K1S+i#_s zmC6NeOZ0AUNOM4Z4UsY90>P02!*!+?Bg;0C8Y(I`!A?eu^d4oe#-!RsjO;NEvmb3- zK6-CMNgys_hu+)&yD%dM(uJOu=*Y3L)g;~YKG`qA?)q+|L+u@+lv^ooT5bbbvlc!1 z+e+ziL%i?reZ{yO!Ds=4CKli<^W zH2P^|gR?QnWsaywb;d>m4H?e@P&Oh4T}4+srb|R+OIWpgn={i62GfC2_dE?+>6;r);Ozsy>ght7_!i@9s@`9tI*T_32awAR+{C?5qju~v|{o(`lYM$-| z&vEbx3AWpndjtB3nsaJPg11$o{!I3~y3VHSCQ{fAhmvRk!o)za-X?=yTvf9&-6`&x zw+k=BMil+|8LM62aZ> z%9Ire6YD#e&zIsGd%RQyw%X!b#^|6WN2kx%h;l0IOY9BDr4&g&oy^Qa?ZQ zoIN->q4%^#MpK*&;6y4UQIrhb_YD&z9>SSqMu9G=hzJ|e!M_e_g7C8^isZ=Na`YZ&-2mU=47p zoJB2WKB7kv@jI!%qBJxmLj=LJB^@MBj_(B~p1K2_O1#h@Q0-j913oy4f@qLNB}=wm zOy!9sq7NwSnqqLx0`D@%0b35O1|E*t=So`K|L~m+_vW!e0;_diVF)c8M zjnb79U1jnxfwd*Zr35Bt- zmZT9MM?%2UBO6Os{MGvu+2GAbz2njjf3v4|np}lfe#YDLynsw@Z__5`m2B#L3~rqk z?qTxesBaH@Fut=v6y;Mx{A7EwXS*tLjUzeC-xi`SMs7y5a#d&F`uTmS+Y_oZ&e{*C z*6*IKStAg4W=Z!vuPv%&-A3<O;JSSajI zwUAw}{%D=UnH-#~N|!||$+w(75g71;=MlN-=Vvx0yv*y~S)rGY53~Fq^oFf=B>RFR z#p9aV9A=@^dpTs+lH^|cz!6-LBi~PeAKZL&+b+?ZaDZTza4u_H_1mY>c0TC&FW;A+ za7=k*z<10|*J3ZBi}Ty?nkf^UXTl^oDIdD%oD;4vYUYC7123*tOVt@mlyCza7#6^{ica$>#0siU{n> z=T8|9h|FCExJ7a7>?oqv(7SGxWnX&J26f?1+x-4e$N^5DdoHB#{3#i4;6MIw?)tmv z^f0U&w|nAA&z4D%s3!J6 zgtLyr{N}rfd0tw!`rc);YYoo|-;v@p9JCX$HNwr5Ir174huMlgSO79 zO60|vMB!Kj`F4;6I&Cje?ZI#{iBMLytzoUkW`Gaa#gI?qsnyF!(|7%Qqr#Sz7=y{- zASZVlw1CevgddLte?lsIczwQ%{I16m?5)IcwK^HV*}1?YbeRvUvzLEs_h2 zjEtbu&Ct!!#C#Q~hAJQQ(AR=r4_#5K%-T|9rvU5EL3_xr@(UigZX{Uc>=AqQ&@@k3)kD3xtD z0@arLEAyzyO_!mnuxONhOi4tpsH&9 zvUOG>3l|OLQP&8LLA_v8pUNYpJO4$K+;9@#K$&k%b=#V{2ds9mZe4%&P@bU+Vi%f6 zELi}Io8val@Ups=3{?)2^MJKBa$!rDyLO2eTIZmdHttpnqO!-p<7e7ZILuu!+h ziQIqthYl1KKEGpo=r@z7HoSt_=<3U)4ZrmH2Ez7%Ox3x4)ouTSyOdKekn}=idxX`l zu!&Ne3}v%zaJi{+QOge9-tvu&plJW zi5^-WmX^`#L!AEpD_7U8Ag^!}9w;ae`>G)H>c(-!(g@L(Y9x?b4#E(RG*`&BX#MnYKxakurvcUtXuwb=M{+& z#liT%gRHnOO$rPmxNXxlXRq#Q3{Ep%2OUp|isqH`bPl`UCu`oWJQBIPrVVUPJHc*$ z#){^d8%JxV8h4BzW{LZ%}U;M zRa&4F(iyaoq?wG^(|8A9i(F@?#6Zosg##?Ua|p?gnvkTJQBwI0odfX>eU;vbu|+BX zLQk8cWT||imbe3T&yw%VtoN$VNW`tnVKTU;Btg5<6oFOM1HXNS=ks(4*!}j#fiWy` zX`zt~v;?~Gmhs9v9~oY?X`u0+WYA*fb1v`rtuJS$+)}kH@g-{6!hh6YbtQ80Oyj6e zSX%4Ek}DH`3K>WNb2P-;znS67y;2cKrcufn+$?`9YuNNtbiZ%NAu@n#Qb!&QepMoD zn=X_dYbTgfQgId1Ix(9q+Xu#qS!i>>!SBCE5`S+UXuSgH`hNU$2!^aTCdk6)c;%aZ_>GKQ*<*$D0M~i! zbYA#!uhbDnfqXqx5y(hX{0=e|wB-tgET5F0mE>_z*X7Nr@?LF~> z8x}KUNw8|P>It#uyw=ZfWPyjuLXfKF>d)LF=0Sb>Q@>>kVpp>~p4BWLW@g zQUJXys4A&ro&N}gCQY2^uF*1W)%5~#pe=p}A@Zty`1by$|1=%u>4S{<^cvo( zMUY-xkBuF-gVwntKhZfz_6L0b2|+mBU-hY*>mK6+C`s&wj@TX_BNzJ>diOG4P)ooo z(ziG-za~(ZlRh&tY8bE5$ncHhxIvzOJPzEU8B?~XOW}Ra@g<*5J|(AxO<#)$=iWD! z3DnUdeA;A(u));CggAU<%IuUGIkUkOfoRiL_G~MyZ5+F5^#qb)Q-BO*w{$!M$%I~TY@Y0Bqz!71Kq0z!LgF;t*OqPM$~p4kX~c`-^0fFzkw zY{F&=2G&z+Kshh9mfj~T^+wb>n*o$&!&DTx7|D}{dIi*pcJ`fx zmOb^ly5fdvdCa!?f|Xe*iQas-F2#x|Ix6&HY;0k97wu06;{{*HG?RW_b$7fuMqyLm zMf2ufd2inHjQE-&-DxulxPM1-HVAz-qrS|$*z0+S?20lo2S|>e`D04^I{erMk_;0` zZT~1pe?3l5mU`+7J>cI6+n|nQI)|*Uk_j;$FHvkThg`~6RhF*`58MM?F*=4UE;iPs zeq0Y_r)ErDx?cCFOklNBk**w!$k2xD*<&xiUo3w1AT?OZRaWEG&i1-VDi>VU&GW4N zZuMz9c2zNK>C*oxk}c!UAlcOAQTuY}3E> zqE2ZG=J%2h_2pFkn19M}a@NqMG^Vn^N;^jnIu- zki*#Kbag#)v+@SOYej_5FVxZo6bkD>G;lO%LmRJQXM*SWb=Op-~%8RAV=Is(6de z?e0r<5jcPL7QGG*XH8B1vlO7$zX9mLNcAq3xrvu0YZTJd7GH#cQ_$TALfsW5$*BOZ z0_R{1L728P>3>AEL2ujTFCIH9?QIcMv2%eZf;jMVFl0{-d$1I(2d^i%ogj|D3Yh8B zVF@tqF_q?8?c?+Nge|^Ti)ElF01)(;L%dV(+%5Ax?)Tzs_2_DfVU}lLBU}Swi^Na< z5VekGq>daYqv;XOR5*GEKmzri2(PM(e(*H2NUYha@D0IDw@p6lDIpDi*w=k52+zc7 za9m}bLpo_4w;06_WeRunWy!)B-Ux1ZPZ9)EJp9ub{e9tU!TzAya=x-P(jQ+~*8v~= zO3!wfXZJI>KCS>sVx2q&5i&7)z*fLh^b9qiYcpg5q-LhPK1q{6pHZ}nAc~juu&tb@SO1%)ZU?0eN8A&w?O{wyT z8)t;gR5$0qtFVY0PTr4a*E%<74>DZ|m%rnV6fplB?7GlEeg|(8$CKOu)*o1lq#V?H z+YU*43OkCNNxqY*FWF(MI!$d7;i1E*);PYXE-S0ke;tYDn8Y(9Hz?5t^PNkyHVLu-bjRQsP*EgwsMUr_aVD+fObTDrR=Te>Gn+FJ|;I zPO(*DG_jX;8!@!Lb`_ofYbI-w~YsNG%P#<>zAD;4C;Lho%g7*?s`NK#!3*fw5eCqvrv zW0t=r%w)T1oGgUjj!G|V7!Pk^F0^Cx>sBc)ZDJ1=i?4ay2DrFlZ}*nuI#-xR41TPH zg(NwdS$56di@TjH%mchu`+gWe4gDi}*y*d4=XhKdq{eS%+*S&G8R~hVb#h$^EF`~8 z%Bzycd@Py+wVNlLQ~paZj1v-Wn=fWRh95t@fOB}YT%Coi^#S$I^a%KO?bbb)A?)>( zDz>+BZ#RLt^KBKv@A~q4>le%F&?k8CqtEZne@V?*p)0ksSMucQ$TlzCN0}QI+V`{E zm$i5{iDUGqw}pgC%cx)<94xnMUBRtm4}zerIOKi2QN-hj-s&YM9;R>wWvZL(QkSgJ*1GA$~GeJH$lUTac@=i;AlM{BgIhwSMH_FyZd~8S$%J%>=s%UY+hd&6Tug5 zEfJ1#Cy8q~r+oT+cJ7~Ju~{aVm9spgDQ*!(ECEB&x~Vpc4<;?JkHCorbjtD$M`#;D z6g@OpDLzX?#C`i>(U0>R!K*vV+Mxyu3yC6=;nT%NMx&F+6;NajBr3*t7?#qSG{fcb zAcr#R8%oDIqC9EqVrJqfCg@jVLwb*RyMQyM(0`37_ z*KX1&@tOYuoZ}M0i&+PkgViXq#3Sn+cy=Qt>HLzVE@a4_U4*~+DPvv&|G#q{Ufrft zeE}+G`+ugIIj2rOR1@v!Nvi=VuMXKxcN9PJ<>A(Oktw0fgt!I_3=TL*l9?hx#U_}o zi$w{(m`tNNpWJ%!OPVvyzHCSHmrMWtK6^s~vqf2y_!N^fIUmBe*L?oF`s3DvpC@!uDa7^dho);gk|lT1&BnmHaRGa zQE?TunV#QtX|BZ7mS;3<76fU+cv9yAhx-Noovy|Q(sko7!v(6YwMDD~Gm4yZr5=#T zC><(58f612o5L~Fogl4awowtxO*5pW{Fd7jC2|MVAK8l;NEC1v)s>7bhIMwmK{H|8ZlP&)`yAi@VMrBM*U5;q*DIBdVTfg*=8?kp6R&e>C{O4e_y z@9idTcv?{DwRo^UT?PK$w)ms={2|f2SY)j>+_NEwRI)O5vdCTspiGSX(h&KJf*}xA9+yBD1?ovH+dn(vSP#-0o4zded2h=MDVkTA zt#vlDQJ$_pIdZ84+CnQ%2jB)mQ7?cP8JY(JgLC;bPZvj6{0tqF2UsalNQq#O zn#{Tlf_;y(FU9)1esh?DG`t!)j^^aKzXEYRzxzY~d06~CFj4e|r;oin7iVAkQv78r zld%QyPm_Ml;F-FoV)w_OW~B#%J?9>&9!LvKWVeHWPoPs2(h3o?&=x)B&_)k%uw8IO24j_2=muFj#k59*Q)L(T?mR(^F~zeh0wcSMVrlu%O_Q zgVTxHCm+-t+~jHGoA<}&n0XaoqksKm7BuRbR$>qW8S4L&Rk7Lmdh&dC7Pk`8;@moN zj0{qz5WWvM4JdVUWx8Uc(!!tjh3uMHh&CJ|);v-Oy#R0s&IV6vo9v0xVHkR3J}Sve zc7Pj1lPUe(@d`gZwlrp-estGjB_iUpv5&PoO6N=0=A4V+uU6te*^ve7tTIp$1b(Ay zk4}G3%IcpgGf=lcdM)v18-{Ps_fX;`1@udd0B4PQaUEBLdoYMfw?t7YP_TWP@O_j# z8D4p(-kU1HPgzVw*`!+*9@{qYB-y`2>a`=;u1VtG5tUdQDm`GOf?%e=Rfpdbie7GC zwc#b;8F4h9b$<0dn_P~%pSNgbenI(%PoI8u@NTHpWs$G0J0WgP$>S}+Imbq|k9}0N zJr4i z6GFls+Hg;bKFC*{`yv53&q&^}nCj-2CMV0!Jl-m8Kem=2t4JCtGMtjeIN0v}>7C>L z`ka6|iLBB87{wZZevI~+QuSVNZ)n0e+sTfgXkv@5g_!#z0 zVj_6+PXxqy&+TfG8-hSBz>DLF0$HxV)h^Tu1ht-)&#DF9bR#}3dppIEGVGA@!g+>T z3kbJ$XJ%+;zFrh|;SPn;2hdsz>3|lV85lrLZXxY`H4N@8;zSJpb0Z^5=J*L?qfw>} z?b!-B03xdk>?F{s;hv73qV#Zis=wsqzZo zCeP)t+sz~?PLNuF>WTWSFQ)5=K>+&zOO>EcmI09#0^m|W+NuLY01RNF6=OtO8F=*w zVD|E|m)ZpN#)1b-Bz8yJdn5okkn%fs?o`%2ecY{SHikf<#@Az{wc3K!n7>ht3Qa zfG*|)4v`>8solsk^=Et>Ccc(IEh$cOd6K(5KUH<=R^?fnIpAXt&uHtk#Glz6N|~|n zXD!N5S9%U>cyQ3S7;EolZf+hN8Tpy3>)l6>9=$(;n%X8@-Sd4ZLE9en)op&2w0w73rew&i2*iZxJ;mfJ|H(`;=LH zc7`$=b_!0gJHE$${Hwx(OCm*}Rz6{GYypU}d-QkFZ;*Eo4p6TH+~r;+U==u{VC^Z@ zZKQ00?>Y4DbW6~7fzXUsecPCYz%l^<(3vCQ*4&-qK783>P$9i0u}!vDN&Im4md#JqZx(AcKf;- zEKr!0o*|bynF)D)q2%~50Q>X$6cc44_MoDcs;dGF*;Lu1u7?!1Xrc;jZwFtRu}iX5 z!R<(8W`x7A2ZicQH77$rGl-%uh$GLzBoRc9y6**9U^gHz3wY-_`H%JZlA&BXiI?o> zBzo07&>pZ*BwA6Z=QPww!6gIm^MGk)$y4FyfPe^Cpw!2L9T=&TMEsi+AVFU$No(g3A%r_CyHq81hBE*|K8|pe(J5 z{zBPI2IXe5r=HviTgnQbdXD1{wqfz!&)OxdZl9xG40A2tG)dFToC1W$r-sjFp;6Zf zUkD1A-)zA|xC(x#{&M~!1c*lZ2A|6@8BVQLjC_#zoT9dw`GH4gfCD?^v-Bnm0}NVd z%&_8H z_Ete^CU*w#W}{b_?)`kRo%F-#_NxmMg>D@p1GG<4CI&v*z^K$6P>$VT@pUc0Lr`_i zJ#xPLk@MjlLdUY*;FSYtm(&@|QUZ|HS*TOagI5d9J%lm;IsyfMH2&ScRChZZsY$Ef zP-sUcNZQr!fg0xNxRrBgv`3XoxeE}#n;}2i1RmQK(bv>&+M`F^RLx7ef;(XC;DQSP zHN>3&+m4R_&0aN*-A>N7(wnnP^S=lhR+`RY5`TW;>s?1B+_kHZXtVziMmt}W&g-VD zn>X1d*A>I!0cKrQk3<7H6+wEK>g26Gc$ii4t^HrNkumW7aah6@?@HE(|Nd=vD30_j8Ty9OZ0=HDC=Yk$PgZUv z^`j2dtL_4#i@DnL8EdQdKD23YsBKS}V(jS6iE6_e10K+yZ6(2H4Do3TpT?Ifg$W>E z@7>P~TsGlD)p+J%>V=l|`5B1OTqKb+J$|TbcpLNzyU!*4?mmDNnrGSVcMbwWFJEZr zojEN0bbH5QlJ4n%wkK^e_gcIGSiHw2MB zhf4@w6lA%dP_1l$QY>{*hhrj4oxLyLfKo5?Jk)$)z7l?XXJrg*Y^vNq-3IAJ;Lqwn zuJis6SS0Q+Vv0lCRDbTWS$yh9HfhoZ5h@yxjsF^f)8L7iwIJOYJ>QMf0&p|cR*oPFDB+eGAD=B8GZI=c&0sc z`CUmqY#ILHX5|sw*AvgX4F;ZfS8W2k+I09-;C-m>-i_(I(8fVW-7d3|=p6;x2-7&U z$Ci8bwI2>Cz&~z;7^?3;dJXYs5nvsDG59Y&gcr@=p5~OK`Ye97)L6|v1wV#@>&&;- z$WJ(VM}1Ln$Ib|;Hfdd%8xmWhZ6~M$#IT*7pL; zZV2>NO)uFa|F5Hr1J)bX?`T#W zYVbh8wX6eugsla5D!E!WRQ^q#!Dj(f0hrYSM(xbiLy#bE)_2(=r)x2y1ArRPOGl1% ztBKo)Ubb*b>FkbgYj(!Z^~fOi5~#lB^pLJR4a>Aotc+)*kcRC3#hk9aQK#@djMnTq zTvGS<;7IfS$eL2s1aKC;5W}hf!ypc%mjX#kOr*zc?a9#A_2yc7xSWaw~yNUBsJCbHggYx#y1$@psgj;uA zm*vLj=%SfKG6Ku2?`Rtpk`%nfP+4tysRGa-=m=zpd}Q%>SVwRowaQ2Ol7QNxPwHn# zz!`|?!!3Q#5>3;gQ-UK$I7VI8C#>wW!splJSgSe`Bxj-{h70LUgjH|CpY>2Zp%352 z^ql9F8C3Zh1_3bR-@SnE)N^lf-Nf{v%#k8tNlR5Ku`isVyv{O(=oZq>Jg+@V4}GpHHcB(Q4y8Ht70Yw+ z>p;8+4gJEYOvpkKJ%>O{a8#+h1L1*8ZOYTD$7fX1-IWF4PyL0!{!7D^U&?zbZ-HZ7 zj+mU7fD-kHTa0dvi;1(jQE>F}>~tz<^n!m@34;VS0Vq(<6*XKia%+Jk@%N9EhlkK) z=}JJ3WZvBpaa@{aOM@9HMZwA!%P+*n{@K96sg+0~h7beO4C<7(Z%F}YI`g)(`UWd# z5Y%$QL|bW5DNu1RGY9ozVG}n?k5kvg@S;ZAg`c8MuC6C;ge6DQ{Nw9GJz?z;cL3K2 zjo^B-R5?fr3XRx@V3iG*M%opQ8~|8#sN{Tb#RY&XJ{MoPRk(;$QUIyvdAl0rxi;2a zy5(Y;G0`3C0eyTQUJ^ea#`fkueTki(d0zVBrw}SA21GDp+QT>ft=FIGb>#;2u%{E_ zQn|}2GyDC{WD~xsfjmyv6#`D?%p9-Hy7W%F!uBmEXuI`fhG%^%P5S#&n9_=j8yg=h zMh^gO3PW?cCAAp?X!AJTL9(M+7zZ~M8Tv!LpfS8doBJM3{Wb|gyBEbjUZL5q2%g%o zxrneVc!l3>KqRm8r{HTL|Hf76Gp<_?^%ULBf_+D1G0wgj?T#Z@`G-+X2mp)A&p?A6o9n&c&~}gFtz?uIavu8&hRH<=O zyIX+t1c{FlwiI+b5heJB8jcDw(iZONlG<9{nG--pVvuAyQ;5}lr-za!GyB9(b<;;C znNy{DC>aSHp}C9ncGdFD2VIRQY(N)Qc9owW5c?RpLj{Tq%uny(IcgvJsJPk&go(*g zfo^KUMEGx+-T(2qrWM94-ck@-K!f}oHSr^HTnk(7&# zO7XBUskH-adXh}E1IOkyWtKYqyasSqSq2)Eh2@O&0tf-04x^7TnF_ceog#V<@dcmo zv0U{M&9@$f`?7c)M^1{!>Bs-D^zstOXvH5!jOr$nKxa6}2hQ`4TlN{raCwAV(ggeQ z#sXU5E#axlfq*lsxTJ49`1$v1)=6JLw;{?ZYMZd7ox&ET5aVVLX5NVUND0)-oWfHz ze`>BkcF&{Ra8lW|`g~xdO&UqOf8yeu&)=h!CjENOk3q_B<(_AL|Ed|;-^La3LNMK6 zV$x5sBo@TQMv5CE)w5(DCUlc5BcotR@~MJU8*Gy@fYaaF#~96PLtsH!&~zTmZ%JR4 zbe({%0@zb*?2tKy((da|aRmtQZuQ=j?wdg=jjbev4WJ5IB}$MW?u-QV9`HNh0)n3W z9y)|gpPXv%21L`o8hpfhYz1bdw|;fl9{b>dZ|g#2{PzcY?d&Ldz>G1Ns#Jtqvdzl-lmvbrIm_Hx9e5F*e4$w|YhSL^Si7@e#GL z!VCbdfVMht*6Jdv*SBikV%kkF(bi7DGX+{McDG@Nh0H`4nhV@=n@d}ZdFVM%EO727 zfGyGtbWX zaO7oR0|Y8Ch)D|Be#O?_s!um-r9akWj@-|~n*SUtzTE&iBWf-F%T!qxlA<@K%@IVP zBHLYf5R@B@K5t7cNlvp46V-+X&Cin^!~-oDUKKWvWb8+#C)N|~Z#dBn5?YhkYdr); zVP33gxM3c>ZT_;*oGbn&D00vXt{4(d!2}}(-G4jUb$bE#1*oSR!6^&}^=o};2>e1| z2I?E$NA&r|p2lbR(CsrUS*q?47P+UPue}w5#A5}(6TbiA&;)AzvN13VvoPMFUWqI>CYSmC^fJo5b_xuE;*^y`>rw(1hr33 zttVE~U-bW%@oODbSN-1uu&0OAaK>35z=E|5I0PGGQ2<5K@t`hOcxCAS0femsu+K^( zBmGuc3CI4|VeA`bn(4`r#Yu2W8~XMb?Q!||S-GB>X8&r#| zCF;2WbYneV7&LiRF@X^`EI5*ZF9F%v|8mzdB$0OCU)_ z$`oE9g#81!+$?eHlAQQvdQ@9I(Lbxml##VK|FWiOuppewAHtiDa;G|W+Gems{>D&U=Z4V>4CJWzss9@6?S&bxvnFxc179@w)0kgGdxPR$ z9*}@oVk0=%@bp<1lBjz|aW7a2SMIA*+|`bPj|z??)lv5>bR=#$k~xS`Adf=@`k3tl z+HTV?jLo&&89jh9gJK5jJDUVc{(%N%A}fX)_((T`vFTU3cwe-n3Zj7MgM0rubS<=` z4z~=+lJDGA?Bk8>Ty1-B{#femTI-=gK&53$V@M&QbdOMEy~tV9Fp<D7vF7&+zyvtxHI0L zMDD-t?$TeWmG89O zB%_Zj{p*IVkna}8n2-LJ=Y6p)!_t0=J5`RguG`sEKm2|Zt4HQ78VV~?fk5I=AE5I!qd{-!KG5~eQ|(>K zluJe>?W4&+{<3|BS=KH&NCwOwK#~q&;HGBkDu8JzSu|8yq0l`Nk961YCeKU)Qu8gF1+uqdJVoGOH*f)ujG5nJX11>WUOa zW3DE(A**H3wt>OyxQ?ibX~hDffLz6CP-@icLYYNO?IKP$=vKawE!8qbsB~f+PdBYz z0q2L=0sVsP%@|VLU{-^C8L=-kZAd5u!WDWR>_7In6VzUIay777<1L0kQAKTZ9 zV6Ff`s_!zOuCO)TZR;-kE84EfK+M%Bh6{A~8sJG%Q^hDZUSm9oX5Fi~ZdK9^P0vyJ334(7QcU|vU7X%Mp|4eTCOh_7Y{dDVXg#1=P z`T2FvMxS)VTpqp+gmZYM230^@4%ilO}^u^kIy>hU;g$xU@fqj5=$z23?_4;tq5zU}kx7s|vQD0yajLa0_vz^Xfq01{=R0=n2?D8bhc*f4X_e0agn#&L ze#8leh|rK>l zyeQf|~Q(nD1Jjo~~%_~Il6 z@uIpoWIs-~GXRL78ioM+-gIMMtNea$m#C*|MF#2IaW77Acu74RiY7;Lic4Zo@dIa8 z-f&i`^Ts*7HR^SMC6E10uy1GhO3r^I-!Hge1UJB+3l^ zc+Zb8y$gA}REg5k;S{D%M-|fF4z&FLdx?fNN6Mp`c2)Qgj;jy~=rWq(bYVV^sRT__ zXY?d!?JwaWLAJ&H;_D7+t$97>hDO-&OUQ-?XE}d7iRmE~IpBHD(XxE)Eqa?-t{_7d*cU4>>Ngfu(@ zz|JFdv|j*NXFqrB8En(3btZ3F%Oo8h=r|v&kc7ua7e5iA$BzIl-~F#?%Msp}0Bu z_}FgPp@VBYkv>LiL%R`U>S+@BH@SKy@jNn*pszr$Jl)>t%cd*#g5e3(%wV=<1$r7Rkl|F#^n6d(VI&7|(`Cb7k)14D%=q3(uh8Y~ zg+viaBLey!otG`U0dAoEDWYibO5#-FZ6KOz4xMUdfuSd#%E%Am*L}{Rd0l2i$eQH; zFRbnAJ8xjrDl-jyjvvS-m!Ied(;tqCXi2$vsmu6zE)z=5z?4Aa{tY0jc%Q z_63MzdY(pDJk|rR*EUvoX)C4KLuHB5YkKB;J`x9d{zBm2<6oqs1;5i^kfI}Y1n&Y2 zTs;e#84!SVB$s-+xchnF?mIg>cWat_!a_op#l*xMaQzo(DAJ!m3eKThfc~tW@0=$bT3%ZN$hqbc5YNoe%>m7mYSS(87dQ;~>8O8sBOTlf znB%oHn|jNv{T!grmC-ah8XPD#(=N~=H)r*4c4lcrK>hH4ReXUkeSz$ysq@_kepazlx7)z?Jv#zhx zl#|=GSvS?Lj3z&pLTX|NaOS&oXoOaq!xG1;z-0s^gcateTbOPC!kP!N=U+!K;+sGU z=E;)}8hU_EyY=xN&JiH&?bK?1796fAu)I8ZPNyjX9#4mbfS8^$S3}sb1nNQd3zKGm zaMn|NPS1t+SUj6~>F0;OS5<&Da^iV)Rjs8hD6SW-Z~W}n%hyPQ3XnW@k3Im^D=N%V zS^&s0d}+)Mux8A@gXG>Lnm{p*d+Nbp*k>&QOE0qHEG1aa9iVx0Pqe}mDyvx0d}Pym zXbCe340m!V>PH$7V4JFwMQiaZf&xKR-Vaj%s&RUeD+jTl`k8X?|0Qt+JP^7I=mOtj zP=vFZm{UHl3VuE^s$|2UEo{jbrd zd!&wY;bghxq$a0r_2rlH!VCzRL7PWic*dnLn7PdH%cUS^IR1d_d#iH4{;N#p-mh;S zzb5ByKgYoUhk&L5t9}5Q3eT?<9k+@q#3{PK4@=zO=42=Df;ph?js4Eu z;0s+o?uLv0NSNT^+5jQFQVI(J=_nYtzBd6Qd*lwjxB!hGJV*rvGNIv;IbYkb+u1@W z{-&Wv*{c1)Wkq}`;kSpglHYmO=axI!u^ab5>Pq&#o$X(?5*F`hhNXb6{331iEc4y_ z(mcU&1wX2xkxqC&o!C`jvsd!|ju#n>=|%qyUE=;FZ@-ix06o^vSGc9Q+59Wczw^L1 z9UrNc6Q@qNH7uiOEDCmBDc_#YpgF?4OSm5{yc=F;-KFXyk|jg<4v$d)VDLqGyLL@P zhD|B91^W?ga+LuG?v6&?hzitxKPFbVMc;-PE`-g##Y=e)ef(?^R-#M#7WOojDvpR!&0bm;6;O!S^iuJ

    5@5{CZ`sYWqxEwh@cSS0A$2C zke3Q1r~6jMTC<-*6zX$nHYV{o5g<%YQPR zpF1$;cyO;nx?FVS4GlnnA!Tn+EoIuKVbsz~Gj6FH$=gh@*JaB~DK3ZIUC@_$CY_xm z?mo)^Xk7aJheKy^8<@WH3#tPZ(tVT!;98Q@;|2mH4aBC3bj}KRL#L_iDxkN{`7)=v zk<$5aW3YSbY^TI}QHCsbNANKi#N9<_Lc8Da_YTeV#SuJ?4VSpH{?iy$P|(UeOyyj0d6>!U$dxG@#-Cu=g%d zP2FkR_sr909_u)jQd+5};D7?w10$j!A!Mv5q5`5Kf&z~UT0}sQ5J(7_4z1z=Qbk2U zh>DyA${7L)Q%^AY zt~JRbo_9V@Jn)bA-9}zofTEb1WEF3YE$bhE(O7A3I1%fqYTTdeh-G?`vB<)#$K~KnFe>xTV{f*xPMvM7zn;zAK_JQ zS%GxG-F!>+b?LP#My&vot&vak3$u)yO8|{gw9yV*%&LWicYc3?-iZJ6c2^l z^=*b>1`9F0C%Y7TKfs_bGsg947SkYev=w{F`e6EzJua=Azi_hL9+Otm0Sy7aJ%6fN z1PzO;NG%SvGJ1hWn?qyC*RR&zOWezDF1pV2`Dz{IIy+EK-8#qaeq?7TVHI?!M0&yu zI%%qX`{TcJ$HW^d2LZDSfoouyLBe!E>(yW)e9-VQ?zZ1ZP#-`}_wimPOI;|#+*3#{ z7;>e|TV>ey{< zB8w#6c|lKhv{;e(_6mL-w|7Ss&hGO9j1@O_Nz`^7mqG2lj}{kPXM*+E;MJ17xxJyC z%QoF$tnnxh`EQNV_)d%pu-6-G_@M2@?;6+4fEtX1=p5^xlNbqryS%6I?r$83t2TPD zlR5BDCVp_%@GtW#_?K{tH`kbw)Zv()&N^jArRO`MUN!41ZmX7k%&{m1xi$Rg{`;42 zw~QP6;YZQR#vx;N$ICV&+2~)LUM|ZJ^j?PLX9jIYLolm_NU~Jcv*A$dz_um?qn1iE zV-btochWSoiagPU2%|QcB^Fy((S8D5!{J0DHq-`&)E~)5`p!B)o@Kk9_^bm3dpw3Y z{VN6j1>BUqe&#ACm!a!St36jPJP1-do7S~tWd6my1^;8)+F)92?ICq3RcG$dFDF5y^O%7>Y|*gNst9$vM$ zaCzx6;?E1J3}(CbDf;y87EnOX9zbvMQHj4Nm7s5aqrc}$0q*Y&`i(f8-_Q6N2f4iE zXe+DLU4*C}ah-1r!afb_sh_U-6)d55_5pG*^xCP()AA|L*pefwJ{m&8;`Kk`7~j`qR!`(pd>}Q^w*Us=!vS?|5l| zR-b}V?Fwjc{6C%_9r!R+7kInu966LQi-9g;II;r+JO9Dd+PGA^wp6GXpi@|lYK~$x*GSl@A2Tz|gRHEa3NQpqJVt3(!_hA%ak@$T{a**} z?;2Z{VW{0GLZ-S|Il8q*TbacngZYzQ;6c0k9FE;!(Lb>yVbR;@weer@^i}#w$1j8& zmW+!W=Xa<)-H=ag5MVxS4h^{MfjvU^p1gbRXzOdvz3b37E5ZON;o)rcHJ8UsxvMve zdv4lHS4-G8@nS-)2MS^E;KOOstd@0Nrs$hq%R5O_{>fRPt$xt^ZegFRnp}kaq?dx- zPs?(xRgZt9;N6ExfhLzRgt*ZmR}eu5b>%1bl*J^_KpW67)8lsyzLXzZa_k(XoIJg{I;tEHCsVRqDcUc+=> zn(Hmic@xjrmd+4Xs`WI+U&aAjoA$BZTzA&uHL5j{TllVyl86p1c=9dl>-L!k@Ggqj zIgb*{@d8IGnTKF}W=O|+8~26)6sy7Si?Atxo9J*xa>*=v^J_Q-oIbrYmkFswn%@J# z6clG9r{XQ1;`Ah*qP>i0-WwI#@i;oPi$}MY);^x{2~U}l-cbvWhJ?P0$!)^jgZ79S zS5z?pcAepHJVGwU*|&1O_Zz$K70XvTrIq9D#}A4fK`L(t7OOqexwoOnHb*S-CwKI* zk5(q77Nv4LY?V3L^fj2rK^XU|fY(58f_~-2lx7yo4(!H{?`C#%cYoJdUJ&^1+wtZM zFlD!9EW2JK9E$Gy7fpK0{6?J+30XTEYj?84uzZ&5-$A);XpPU-gwqvr?Qw4Ma3AO< z$6_%iYP?cy7TAXWpTOg)$Ro#5v*B?Ia84b4F{;t;k5GQL{Q)K)gTAT#OUS^uAx8Z= zzz6N=ZE7;eKBwwI=e`waSraeHd0%N$-UPc9>y+D1!iopi`Vl*!d_hq|^jHOpoho?; zR52%(CI3gmsOds45gJLvs1v?ylK<9O26?0Qv2joL7Y!icZlLHb($BKAn0a~p&V_i< z8_)%k*O_kco4PpAh=jR|Pl!9)GeJcI=BzMnVq7M)Uab8f7ent6`LKr!apOjn^0e$E z{{K7`H^@y;EUsGzWKb{{`dkiaea*t%v{cWJea3-PjchY2hGnEWMO4ip$HwuE>d{nj zSL{=JrtN#IiVZ2)ypd_F3i`xZa_aDbw18EsxpVcDI)&c+@L+cHf909XpJFtui~CP;@JmJ=vq5qcb3Jrp|GEtQ%rk$KP{@+MF-CgrDnhI%v5l6m za5nCE&l_O4omHxTyPm!VRv&F(P_ECdYzae4LzRSzmjkZhqy1(c=p<%6c*ce-lP1~^hri_6 zRS?W50_1uzy`RjmU3znL{;Jw`;1T$|tJD|p96_JI>ile^TiQKaYlLCF!}ky7_BS_<{!%&g$#V|~f7&sK zvg54Hu#NQ-T?)oHG>q=C950rQbo(BB16vsGwz^#*DYB*!hFlIsGjn!zWapMI%0<-( z1XSW0Ya*k6*p~?+>l~|DUyUiN?_06f`V54#k<}N7&E)a>hbxA=1f@f5cJ1hRraD&H zxA?QY*LRj2I5u;urXK-te7t6aDwRO!%;j7|t*{3sA8|QmJnoBZ29<-%KkcX;7b80fP3P1MKE0|%YYGauu^pi4vXG(i>Y(Q5k7717G?R4@KO1E~xkO`|SvsbU(^|Y|mAn z_k6pi=MpG29i4?Sw3u}LBYRTFuaK#;@$4Ly_s52@A!h6;F>K%Iiu|L z`n=bqajZ_W=Jp`gTxYhnu#uxBDRc>p`03$;$WDx>EOhK&=C9Rg{b^^Usf-5!b!3-K zF!j10dYx;2k05zD655h_u0562nW`|6m3r;LXR|5c|D;Pl9`K+MZVx5ccRVigv0B2n zRtfw5a4x;$<>tXNi#6K#z?*ey+LHM86WpD_yicu|mYqhm&n&f0c-Yfi@MEe-`I5HG zDFrRj1Y&8-$AZ63S51Lc7@YXlmK#11kGL}+l*_P3SY=eqksCvZdN8LJT-2+}i$fY9 z9`OZ#^m~9HpF0RDKjK|=>%CMcE?^kDX zUYDCDoN&h;Sa{cRLg*eqL)BIMqS60RZ|`Qtd;LZRp=p0*Ts_sdHs?>Kus@+TH-~#L z!y^`S{W2T^c|vDI1AfwQ`v0gWH>0EXRUln}0B07(aYjR==T#WvwD8VByZb^&2f)p{pO%$Hb!nx^m z_ECKc)bpl%+B1#`GGfruKK2Xaj8gtDhP3=*rsZNT!!-Ly#LH!_$BuAN7e34lMu@_Y z+{R`VBDVKmTzd0*Hy|NeX7&vmp@o{W(mshH$l|w)WV&lkPhkfiWDG1O_(?m)Pd<1n z>Uu3E6v`sW!a4ePRPir##e1|S6wD5V`{PF_Eq~2q$y}eyR|gm!x|^AK-D?i3sMQQr zZpt0b@tY+;VA{8a0EF3mH4XMdCj6l(@~$Q=OW+_^YC@XG$bmA!-ID5*6Z*)ccb%@SYbFmBYu7j@S)tnh9Z8W_x98gPtK(G%Aa3l zEnCd{%K0nph!_1c)_mWYH8RJATIz(Ts8ZAH{j~quZWobOAsULi%0HYdQl7lj!-90T zS-AFvV$GVH0z`Meo=dQ~s!g%$GP{)E+nWc5+q+^2ApB3_9!R*2=$DTDVJ6)d@DJ}J zA5b@TCxznOUlWO&zLgD4aO-Sr9;SJO=K=6RQ6N3=tL{5KQbvKk^!0UCd$|>1>vP=8 z7vQD5XyN~a?)$%iC03n1>l^mKK37)X+28-S)J7j@VLIzOTLui$)r}x3zJ|{Ho^rV_ z$FACY4S^d zyaTyuB%|m!HCg{+5tG)b!-3A{IKtCj8gH0!@mpw7ArKZZnasS5gubI6Gv~sGnies} zd{^vZgZ4tAe`YK&qAUmhcqivzSEBr{v&D0?H6yGTo*V&KgWZ41;g~5@JR- z^cfOgrCljTrgPXihJV%x##j4T&TGwgNDX~loNA*Rjb!N7Eb1w!CRYYSFj`1CBP$Q`MHkxZFe&CrCNffYVs z*jtwmC(yL1)N>39xnuowFYeiK zF1d6#>}WmiPNj7DX|^Dcjl-Z6HM`jcQ#{Q3urdL*MYciq$n&C~{ZI3JBbIN;{&COj z^U&u6v+Nt?{_r9LTP5ruvGYuCX%DJLiR|4tAxm~bc?>V63F z|B~-f`p=CXogd30)&n!bYjDq0oQUbe zAA<5*iZ*ZjS#IYt`#awn`CqQ+l58kN9}GdR8%ZMs01E@63{-6z&Nc~6{_dx#Fp7mi z-)?d-QP$+(dAi~GKV1~-ocRrQJe_bTzs1)dn8fo8?PKZPmkybRCG>$cmn*z5MP}c> z>Gq-g{#wJYiFZG{yJL%$1>ae3e|GcMLfTf({r4V zVVy16mGd|&)@O-xtVJ|;)9xfox}MZpnLnfV;hiyiYr@5Dg6{Ujgf!bgzlcS)&7Hrv z%ft2s9uM-)vOZ^_@;Z!)EqyMyI}|cydY`b2}OxK&1N0R4M?;T2>L;ahTD}LhR z7}d}n-0Y|xfwsaoeBtgo$sy$kzEX^fvmSq9lo*@U%w?_i$W9H!8U_Zvj8W0FuB5%P z9gs8<cG0l&AymH{6!5tFCi&Lwcn?|*S?JxSh=?*GcIf8otuZE@~b}S%1~PHFy!W$2M7$tVEG}5 zo!mYt_30>NX+v3=k|VH z-+#2k+nJM;?kL#N6lk6rXwvXC{wpKxog`)dzMBvC<|zY?E{Xq$5<_oWa`O*CaYdJ7 z8xjXo(VbfYjJSc7iyM2pu0PINckaRUhxI=iyJJbA-#Bz|1Nk!#&O6y_CgI&+{kCp_ zcnnr&30ZkG+k+Yr!yj*7HQk2V@@`uy? z_1q)6><_hOyqUj>#0Zh$u0I(Yk&YIPiU!50o+Vt#>fX`?r zrp`DOs(2ru`R?TlYxVfR5CjuTQ&-QBr|?}2L!twKm|G*;r zTvV15)9RJ(cxYDCpPbgJhF@k_L>u8>=*+@`nD#Y6$A60X71h1On_OGp#9m48TpTeL?GT+7XmA=IAUG_qY#%7Oe0+1yzRH2)q{@FHm2Ii^&Q{ zL&WJlrLtabS!{xdKMCwq<)&-ilt&z>Z+Cq5X0Gr+V~-U?rQeAu*mBFQzix}J<~kh3 z9}bCqJIhZ>y4JBQcWJm*ir8(LuC&k*tl2cn^6H4PFq?4irvh%^32?j2fZaUN>lEM3 zDFOTd%cPNWI}nw^Rr(z! zTm6vGErjwh%~%YQ^y>0d>GNT+6Sx{n8dFs{z2Ph)3@2v=y)T|+&+#Lup(c_tS6-Z3 zttjXj9UW@$3eG8{yO$+_W2QtSMxW?K45QB@;}N2RHGB^V4_g!ETj#K3_LApkW2Fo$&ewfO^Gv_TcXkrit4NC}jNkkh1GM`*<`K`f8gu%(n8b6CN#=%U}Q=KO@| zJ_7rXOf4DMgZcP{&a17rU)%I|fM?GV-1cjvo39HL0CpiChE8}23POs*_6m14F8A9D zgu=vz&K?d{o#&BT`P~hXZBJc!Pq=GyJc~aztV1ux2a=0l654{3Qr5Z?SLc6*X;W%m zt8Rwj$ky_v2NUYN5mH>BhP;bxH)DqcDdvpm%+TRw3y1wx*Jh9r-+QvU#HUG{2rKmU z{g?8y49-m4#ibYh{S4zYd4Th01O3dX-pyB{N(u7Yk&wa!i0=284&OA?C%@cM zxj?&|ZNPVkZ4#7V@gdm1+P{JAwo4-{fJMM77=o}VzM%8Rk_us;tTp1w6`qlw5gSkB z0Nzzh_F2;dst2@A0N;aM^mu0?K82YdA|5%gKZDu#s;B-|Kw)-fAC)xYp6i`kL$x2O z^q|hCy_^=_rkw?YHsf%E-wpBA`d$Xnz{`c8=`w2B+8RLq}DcZ2^y^fyR%y9)pO`AxbTp1s0uQcU&Rhn=A7MMXvFVn zICEVm1m$NT?C)vz!O3(tnJ7?En;1IoIMMVm4qElUpYA5CMbh2c>8FkE2;QIm{!?oLEQ*V)gMcltF3};`dP3nm^Phc}ZXgr;_U50Y+!ZeZQ`u{{ zK|;%2|2FFFmiyc$BwEZ4?C(#CNL)QWW2v^FGU=7Cy*Wf@oIE%i+`!)O-w{$z@);J? zI>E?@h2hz=|L@Lt8x-;7PmXFoART;}&v&@KxVJW38FD`=9W}Po`4J@SMHQeWLNF*H z^NPjs_xBXvwSoo18UlswGWPDJ6dFoSSE^n@RMf>3+Xh^a9HtN>eUv(EXam%|*SfQ7 z*R*N|f>l0K##{Io=G)qmv%PcmGA>}!gBiR2t5q2T1gTd;VHQQCkMS`zM=Y^;mMfVACWe<-b z8*=!P;K-pp)jk`ug1u{PYcPeu5fd1N;(QaZl0%M=Usu{^A2WmeSLN;Y;Nx^r;y{CZ ze^?sn$!syfKwyBBW5|+1cF^H9{1WpqtKX@iQmc#ORwYXPlzoHHzz?Qct^^{f#z$Vp zH%z1CQpc1fS5cy2zaLZ3FSn5YS=^^u4e!FWnP+08tea_|KY#xG{secx!0KEhL2n&$ zk^f=d0~Xp;Vj;$J2WC(J0hP#XKiftZxfVsp?wta9dbUQ>y@Yp3#zBIYF8D8fVt+&B4o1U9y&lE6Z zPh?PioRSjOaO^eOK%4=Yapi{8?{?{sOu{8sr{}zF(Nh-fq?#{qH&Ut`Oz{{L-W`Ng z{$FsIpebksS*+(o@wA+`g(ucrnI*UzxsPYbJ~i#Q#gJAA-yEmSz4|IHdR0ARFx6x148KkH)7s?#Pdw@{HUvgy=N}fO?xEU zxKp2G!Dki19P&S(eTWA9X11J;LI~aB`lg;+rHrcxttM*^OdOYb9$mgu`rzphS^th{ z7ES4}F|FCYc>9hk+pn!ixYBBR%yxxq!`FYaxV%dmV|M@3;KJpG19j%*DHN@g>K^)90-Rgo|}eYdwh>6Is-IO4a+b+^tKB17bL|^K>6EBhs54_j*i(YnxPlKJYj?iW6YFgnQ0{ zcX>7&>9il`_jgJcceh8dkvh+)EqACk;9Tg7U!o#Q93=UAdRw0gwN0>kfuiWB2b_e! ze|^lM>@#uR&Bay1cDsqb<5MU#a6ck;nLpPqyxmhMIQlp$$c#J5q!O z0Luy#F6-#-?_3-1y6s{7`~@?wu+s#Y!WEeFm9k5C1vzk@B%RH*n;2nYBP49BEWRFw0#?w`P6@&o*H)4Oc?D5ny*&juF63^9Ub!^dlwrHFj4riQR=L z7-4le5AX`#@eEoEH9>Ha{5gJ3lyRLZN4m6=iX)D>YwPM+lr@ekvy7-GuS<%LULmqR z&WD|kQX5{WYj>3rZRrk;Xh~PK$(I9d7qoLLL%!&eb6UCbu+`#aGoR{iorXqq1T%0# z>jmvxqowCqhi)F?!Oes$w^Yb-vrK3)@PWwZp_JYcPLm)x%bp&w5BXUeQ*2dpyPT!6 z`j#z}ZHJy;2<=>|jrX6kG0EZZnQ+A{kl5*OVHhPur)t%6(b0bTW=0@A%7w9T;IXfE z0N=8pXZR1){_kdcYj_DaUlG z*2tCHGbLBp+`sA(63dB^6@xYU{uRMNY3giq{rS8Yi;AUz!A;}bS@gjZ&ystfMN|RQ z+;+Jz6nIsY{UUJJrkpSx6_Uq=2h~f+y^iXPA3X!gYk}JiyiuybXr~eOoF{wf@zF3e zz|ix-f@(npy%>^R3g&k0j7y*^*Odp4dhIJ;ZE#-y&UN6{YCjSa4chJbq@S5;Uq8#= z{5H}LQ;wNmNvpv>{<^o8Fisk!^{}Ja^q=uxctj^nawfV$-{N21J#})TZA2zuYYOJd1;9-wzUEV&2Wz~_PXoJ5!>Qmx#!P=Rh z>EztC0keR=8`ZyeZd`Vc$FkB!>%^^_sJc$q6qF1qN%&U>t;60%2e zI(*=Q=gC3`G2vhkazAF0@)ekP5A2D$gry>`^D*+5uS&S{)l2( z72z)%FIzoNn-dbw^Z4951Rsu0ZRF)vqr%c#C}|BJ;==-4X_TIr`U2W?Kt$uS(X6iWE6`>y0bEwt9heqBCYEm ze{-IQZ^NHj)uWnuAN8w{3GdUbM${v|l0Tm75TX9p7Kk~^r5W(#4yxUveRk5PSG-+q zT(>rwH5HV^c>RK@l-NtrTjyou^IA}c1MTeT9zMS z-TegimgW=HvE&=I*JyLLUmbG@<1iICK6<`)*kH^9uOqXhg*D3%`mBrnuKlf7pa)75 zbC%OKRGNdVsIjRag3p!TJ#iT`+M!z+CCrHbmj<$~hj3`Y(&7riJOZ%1Lf#K3MPq>p zEy=wD0NImJcds>!w0@g%hW?7&W1>z0Q*MNsun^`o9mmyO=admuFP`CBV&gmrNPa}v zs~a7cY*FVfs8oSNuWCldPS+u=7*A#x!7YmKELkNPm>duKB5gG^lVq|QEUPD32TkJ5 z?&jwbCnEecd;^%bP^0Wv06xa%4S#n6u9%f7+rAN!?Nc|VfLLFXurutAeXQjYcgB(c z9SMy&16tHy3l6#$V*>tvTA~fz^cSv)(=6&zZESv*4FBiv#Crok< zT#1$QQvxV={Xw?JWNJ7Ea^K39ZW-b^&K4=1@P|^6#`^dO&v;FwnRo+t*s=i^Ahz#W zcTLoje{u(g6NSc0?y0)&C4R*GMB@m~Ms%Om*T1v6Iz{qF z)BQb5uir5~-+FR^N~KyEgDey?h53~*ck57(uG>fX#vPrVHMASbLon(CqXMNvlU!T^ zok?7gw9TAdEC7eDyHRxcxQRC6VAd9h^S%K+(-`Y{EKP9<@8Nn)16BZen_9*?)_Hp*e*66Di*~C-xHVVgfzk@N`;Fqtu23$z!QwUN-F$L$8R2MmYBdUK!Nx zn2=}c3`r(C8#Siabqx^vIb_IBKzK$M3vKt3a`i^Ng8D)!cYDKc{3Ty`&A8fhQmdWy z=sD%>y6Rn4F}Dk094L7{p224^9i3~5PB+I|ev(?u@Y=(ld#c_gcFjxWf0}7AMyA$%+iVWe2^;j! zPKlyHaetKsZgta30+vuk6BRvfL2XrhmYYjvh#f^e}M+{Dfw^4uL0#!ZYG z2+pxjL0uDySGph08jr}ZO zWcJ%AJhi7x>=neBTWxu?2bjBxFzh<^m0*41^I!%-rP1IW- z92C+DQxR+$GkVtnXjaL{WVPR>Jh+WGmvaF^YJSaHL<5I4%EcS3u7y*rt{Z}QKLmjw z->}m}rfj;O*PW;PXGR?gKij>h!@L_Jc1uGYP59JZK5%KG!pDS}ij$TjmmzySqTIYBa1-Po;;Fy9O*^@4&YvUAS0igolZ>vb+xo0GlKw8^d*xUhWM$>W{cNK-oV z&#;?;5VN_lti=#w_KVlxHd%M(BdcIrTPS?B$;XgwHY?(wqi6O*H3L$31v$tbD zxRmTp1Ctkom}N|cm>Ch43n9b|4IyT-sUc>Uyd8{PTtkKGB?YWv%%lk1PH4SAMhIpi2-55H$wY63iojC_{#5#q$2DyO%y+-}Kw!a0l^>}3tZN9E0OA6ZVmA?2kKi); zEX7u;Qdg_Axb&g%{SiWv*X+t)+im{NvRwo(`m-&ptS^p^SyXL^DVrH{KYd5;*W)zy zLTmiLrMe~EF$8YnFj;oCGDyO%l%gm4$~^1%J!2ggs2I9nJgA+fe#IS-goQ2fcFh@{ zEv{^cu+M&v#Eo)@Cupwrgmer3M0VYp@Nj2J#THXJ3Mbszd#TesB-_@~GbemFQoFvw zHs42hfxQ>e8~l3fiQkTr9K-*{Q#_obTHDAeM@3koo)iC;R5@@pR92%asEJHS!*itn zeTCRM`;(k9Ty4cDI%uf8w;HNRd#Ojoh;nG4Ejz9Q`DqDG{FvlX*4GMCthj#WMWt4B z$IX#DWV0F>@y9rKFLNic^AB&qE2_c_AP189>V%bp7WZ$)(&@{8!od z;OR%^0TF9Fh@!4ioGRMFB3#8-C&{6HH;b-nKbx)^u2|2%;OVlI%7TzC9GT}V+^J+V zCHr5-EQG>S@teD7NgnuN@PHidB2f#oFiyUfIUc=ppckHC^q-ElyIa>hoB6>_83;g2 z?4WGZsq&kutpaj3!Mt*R#qi^K$aqM%m63u!w_VC3&EPA7pLNR+6Ay52WQ)&&j4|@y zg^BN8vYBnkJDR-)1tmOouW*Dbs$}$w{MZY3g2T{9d3t%S$M_c!?)cY1WYtIzSvX8C zyE&+609{D2P5oUIc9;6Bpnt^Siub~;>(1G&i-upEN1eP+@elBjL6+;SmGf`>Dnerx zad#)#uQiM4xGlLSdWT+B$7pxb@3*D-H1zo2(c*wwK74Uv|t^ z=Bb6GSJ-%}palSSG(L3u9w+Z~R_AiD_D#d9Qn4L3XNX2z4kz}#ad>8joqTNM2_>r? zR#fDcj~3+UZGt&!IDK+5wWxA5IO)6b#-mS&T93l5DPgYLu4r#nR^EvMWm$Xcl1GOh zawEM^qnnZQETW$>U1wiVHi!cypLMMzk~?WU*Ic(W$=<)5J}$3asW57^NYeX?*~LmH z1Z{l6nppaHV9er`x6MKY5EEW=4W>pc0J4>Kjxi?e_JuM99E(9;It{w{ak$NPI?fs| z5oGQ%Y%KD?B3(MT*gj{bGou!68t%{x632E>EJcined;A7NF1}QmN z?}*jDUHwF(&F5br7h!e8W82fCC@HA}jaqZ(1f9%_7`fpHbc*VyboexQ4}|By)^o+rdqI zv_*-S-I$58bLRVrFJS|k5i2YhQo#z_hFD?!M)uve)J-J@4&46)&U*rn>ng3E^v{QO zcNmBw%65K?M-Ftbirek4_Rh`vOOe91nMRU!I~p}UPY^!}kLdB*;>SBdi6Wk@=AEo$ zpWZrSewpU{UBGEe_BS;nsXf*Do}TWABTgi7GEyJP^$-H80S+pXHQd4>sBw@KEe^dA zG1RfsjO=ikC1YgTbmXkT99RS9pj7wC@>g9I*W-+w zUU`QFrO_`&nRd8qVZS2xVaN@d;=y~lbR^<17ihIKdAgfXPn!>y6o+GU#wOV-E=$Uf z2XSdQeq|pBhyO`zlvaBl=L&|HDXi{8%>)ie)2g9>HvB1Q)k(`rGy{{!Q{4D5`$HP;ukvn=pSV866nUQZ{m!xj@+6kX(zDmlM?~1y z(*|$@>j)7kkuh=48gweGls4q;N;D+H;>Yo!7vvt-$w|WrU3(jfnfeLOk~1b>$2RHQ zh?b4A{z~%d2%hyb1NAFa(#U^X4fK}`dxYz7Kijh_`R3C*H*1du&~#y87e)B^euRJ+ zSu4Lz8m3Qdwt+MgI=|$KqtTKRCO_Slwo}!G_oMXB>z}uCdR%z@u~*2-wG#Jym`$b@ zuHGE`piM;dLtuQ=m{H{jMgNG3&?#!N!$c^Qxwa4KcJ;-g<)a?IR8AbELR5}aRqL-) zH7WFF#Z?9ms_XkySxH9OAE)*99Ym3iJu_kQ@e2H>a18D51{$(;A}UKUoNJ7DFkQ_2F*7Kpq->h#`A zt9_xFee3|ij2?lsFk}523HvY%6XG+HPF3s?({7#ZuU#?4dk4tl)QJ*p?Lf6sW~$$z zc3d5C{9Z1DYHBf@DC@jnl31ame7e5wON!Ot_CBeUS(9KcC=(_Xz z_$Ky#pqs*96gOy-V2CRXABDpM&bKD_n0ltEXxfPcHfF$4wy-$B(#au0(*yKQBi7v2 z)d#lf%)C$5R0&5n7BS(X?AUZqIJzX*yUCkNZ1^?Oib&Q#vrTcd+HY%X3&_sTw>mvc zMB`gNT0|`v4QE`_{ka$2jRTz$0pxm_p2M|!mAvnmM|QTr(`|YvEQTT)4gnpw%P^j> z)fG}4Db+^7r=h*w0g`0l%^+i3B#Yo46zO}KGjeR(bQB7*=(Ny!Eo{Xh+^`R(o-ef(6BVPN;kd^Y z6NUR-*|OwJ+sk;LHUl;^3im-1w$R>s6wLIaZAHF4p0=&Y84Nb1=@Dul4jj6!q@A!q z2kH4{oAt-cv{m^RTk{uavd1L(^3PpcewpP@0Ty{Re0((6qY49LmJL6 zqv(OX5oBpIyM$bq=9Ck3`!XoN8VZTaz&n$b&@Le`Z0`vP@s;39^r5SaZeY*Kf}DlK zSZmIhVkc(^bEF(mtJV{ZBZ+UjmKUuY@70>9$;>TM7T(VUpKfJjiy~|R$@1`)w|kHG z?&+$wwo9(Zqk!VXT{-bT_nlY`l>kGbPAPnu5o~U9&*+|JBzp|BXk;26wphZEB}3pG zmeCV-V<#V5j3O05_80-l9uv0}y^}rW<)c?sa?eqFmuRhM@8@x|K~4%oV&Q9_(lo1g^&HPmzSS7op0=EPUIhxF-$l<-2*^Xz?c%jX%xY zoq)Vx>CTi?o!eRYeJFVR(NT%uW7&WxEiiSDsVZ@ULlJyDBjBZ=g~V8X5L!bP%VdR< ze;q7SQ&sl(U6U`s-KEXJ`oWw|ooJss(q@sTr6RB_PrQlSOoNiXLY?I~cJ;KL`2s&9 zWx0cC2?kZ-K9dgYLLLbyRwoVinLI8wdU6AUy?k5#ZN@Zb#FWCvGUDfiCh?8(6JR^P zM}!s|4e>yN5D)q=u?YzAz!``K1WNlRC>>=_B_7n??M_Cm z0^&hBs%!-i4{Ru2e*!tUIXP=VEDH_9gIcek+^PEV!Xw{qa_!+Q^L?(myJqGEX!09~ z>`UY{r795bGw9a{Z#sdOoCQ21cR+iPpgMPr>@$^kut-BZSgWil2I4_Q0T2(Cp0S+$ zyF#|@iG-U4Y+wJhN#a3b_obWbfq1YF@>r%454K$c;(_^V%eZCVomaTH>Vo8M9j|~*NSr6F{5qC-%xE1i$u`V_VzE}xKX1-Dvdp-uATnpMVT7m8XkZpB#3vF zI)FJ)eb$Mwi8AOA_Jt7_=lRLUTV#+9MF1>p!rh@RB12uSe6`sgTSr^0syJPAN3*^> z&slKJ8+za{4B!>mBjkuKk@=we!DhI<&~|WGEBx!q982riJo)zC@rtb4xM5O;EqEM3 zoGjMXHUl0AdmBqOSb6^}6KVtEg1=Ko9iuo%IV(v7SYkhdW()?HG zOf-w%?O(vQ-GfW3kjx)_CTiy{?yQEvVEZ!%E~J6IHV_JJ;zr{&AF2C#j?bz5`K_b& zv28rp#tzG5Pdw6FJx1W*9ydVqUHteGRx&kgUS$rtc5o;J0KJF{HP9MH8u+rHL&w^t zMkj?oHKf!YAqa;*y>9c+?1*)=u~C}S{Nw?TmGUPo`E%I+#;>;9sAzv3N?r0P~(?V%2{9f2nM ztQ-6_jp+ztcFL9#V6eSNI$3gVo;>~6bh1Q57sj(kzfJCv?A>(%^k9OcAvH6>E7vk- z5ZA&raFxrFdvGUR2u-dES#qziyBc+Y?HWRvn0A^=?W32l)?|jsHqH<$X@R9r~8in#rhHVi3h{`|+#!pr!O_Ai_XyPa`5! z2RumoqGhGrXkD3A^kC`5{M80kjhkeDn#1Z`r_u6DnIA0Hq-QekFRt>lzWQ_3ZX$VK zHb)T?v2K-vby=~|y!cTAcG!7E^^DxWr& zzPH8r27wfOPTgS8!u&NY<*d#tQgR}3Q$lrCf*#*zm!-@q7))>T)Qo<4sd{HLeY#&Q^h4_1vdV{+>rlcZP0Zr)8rJ(qP5~7Y#gJ>zM%zVl%l=yR`h{Ob1X^N z;Zi6Hg|QP&s@v9&_UMhAN|W^yHohRZ;Q^%JM_gU_M@+o3zH&@QyFSA4)blA8UVMPD zl%)7%9kI@1;*t4or!Tc*|FzkaLw!8lArY@!`VK~8`Ud3n+8A8S>}w#8YzO31zn(R1 zy4-6KcJy|XkM>sAhtU7r`iU-5IGQ>EzBwDwAdgMMR2bD8`_|^9CnY@5GDEZC*-TM; zM}I_u(F0W5OKK;@URVG{ot_c@$b|ywP`kTPBMuP;_R+^P>37Sakh+6H!(A>WM!Vp6 z*H9!s&Op73Go|%Mh3Asta~t=!>}*Ievus-pBL)r**4IKvwij*xK0a(xZMhqt1H; z-bD~h6J`@k?P0TGVb4d}cN2I9K4=Zk)=y!Tb90wR<7flXbaWrL4t6zVIlhemn-@W( zIO1q?Ci9Mp>Vp&EF4#+r;K(JigspNI#T5_@PwpRlV7~axGkpK5e;uzcCm!Walo(9} z-9FHZTIM{6?();)vq@5mE8bsj)sAKTES;5Q3!3!D3BAY*7Mhefx7`cMnPUS-VIXAN zLCd*`jaZGeDIghUdL=%XOcXy3)6JOMb?WbLdmsNkKpj_1c-z<-7?Ik4$P<|)hrIce4TD>27F;9W)P$g{MxJP-b2C`L%y%L*iM1tA}?yPeE2E2{X1 zGkmKDZVNGi{S0X2TUMBR5ZHC#l+^Jl32I_T%v?A^w|sZ*Y;kIBAzMq;D`M* zs|Oi&{NN{qq5v2;hZG#^pz*r(Z_>;*dgf;CY$hbY7n%T4@ZXUZ2lFznESz$nPG&}? zJ7XFM3VT!X_oA-MT7@C0cvKo!EF?Y*Q9R*t_gdzdjM1iwy~u0vZ8O`A%^Zw(B)MX6_w?Z+hNW@IvWmzY`BIrZVt_Dzbo>n6iMob!!vp>>FL>lr5hAS zU&4|Yz>q_FogRO<;%SOh?;wTI7UBpF28qOL5cK|%1@bAb!Y2*ZR{~tA`qx|BThf-T zy)c_W12!QXRtNMQ4B^<#$vvHYCgks9^O33)$oXlRNLdK4Sdi1bZaC1QQ1icK5jr0? z9Cv3ot|c1g-ah~{8S#+iYtHL(yAz#Y6$e7>Rel-o-xGTy>PpD$`;U|khKiybq$vX0 z2%Yy#(3sI(O4wutT}@>o+<_h3fl^;g&}d*w;Z)~oeBbSgdVJfQ(6qnKK92&o72LTl z-mR0Z8EBZ5eG#bDYFH=DEBlF1r0~;ot(fz_*n1PGChxTGe`fl0d>p4z+^AJT2NX~d z#0>;OYF!Z7L_|~wQ~?nb5Cj7WAx~>9i()FECZxe}Dt{ajjY6I+xM&bC7$9 zP|WNIwFwrfxH1;^K21`q*+;lF(NsM1d-0#>0nt-z0n8gvZYjTq_TLfcgd+#Ykovuq z@ugI#Y+;e{aRVI_b8xCzwaNXvZ3dAxdQOkhH=X?>q4KURc`5944v;$+X~r1bHp~67 zrZ;M!(f&eBF9@i{9ve#>reHCm{;q%P#(iiR-ZDsRx;op4gKN3DT~zPw)l5Km!MFog+;2ZVr zoGnFm=;+U5(rTp~vq2j|;Zy(w!^ZgoiH}+*CfZJ_bxryfsXTHzV_CU|? z5~ldQ-3ov1?-b#_?3i-yp7yU#6;7uCZk0a(ZofV(xvFCG4D)qdE$!IXD!0SUTdYo3 zIE9!p*E&Z$4l;h__m%t8l#3fX_*Q6Zn=2y2KeAL${=%;bJy734~85a zfsZg`-2KCls^7lOi|{os^;kdc(RS9AZ}6$A^ZUxzyYkP&@X^If5C-cfb^|x9xDR3h zlwhTf5lezI3rydr^0oD7#ysgZy{eR|I)NlegQ`4FfL~d~NI~yQiX>O(rNWtg>g|31 zE4-R}K4a-09+irz)C6=!1=SH9ozdgwKzREuW%Bf2e9@P;xP~0ZR|6+7UkCGLT(_WD zHHVfMw9YxQp(;UetTV!(Tib_ba_RQP;QO3!gV*vXkKY8r{` z>vVZ7>t1HH3Lz-mQlp;c(MiJQu>MdqDSh~)AOWt(sa#pFa(kztY9Dp+u%WXAotV)vMwl*J~%Rrd)1;Z3g zNpVhRtBT{gOS%h2_m`s@XpVxtotF%LT`r`QaUZK`d$2sAy>hCX@7+Qkj398aAOp-h z-BszC$f1+xOjwwZhp%+DJr=kPR;325Vyfc058gOsB70^SPDu7YbnIdo>xbL{ip`wf zOCljZexGxdbIlI^7en8T`v~@i=rhAry17B?d6iksR_RK48@O4=_=^cIdUQS>a?dA7 z1?5>trIs#yQsHZdKX5Mr>6nycu}mK2WKIU0m16iA!>frd1GWY=Nf#+*K9JdlR3&a& zaT~Xam-Y-fN z>(U&Ok&xBMg=7V-Uf3-(yjWz-FH|eQi*G$+YVDA%+>tdS8MqDh0aE}BudcHn z<&X=^u0S=;WmF4yM7B~*mQ=OLXNpT0BZwi426p*fO)dh$gpPFVD0vup%-#f0uc-%2 z+Ypyu^Jbo{NF3lwGRQz27O)tjCQ{-Ux1sqt>@q?%e73>YIC^voR|^_5x?ryK<(uf$dme z!~yN!8ZaLr(P;i@^6#VU z7Zc0cz%MJ&3ia0m6Rf5|>jzD^Dc_>Y&A)5dL3lT*1=I5(7Q}TRUgu^i18I9sdB;4k zNAt=6-aMWn2r7}lL-be_Q~ae$kJ~9@nH>{%(?nVABCVUk!CzlD~KEB45A~P16NJ~3O&IpVy zZ{F0Plk{Itvn^>HxK7!k#m*^Wg#X&m^r;=lJDBT6{;2_c~-X*I7objj$X9E=Oy z$}NLzsSIOZ=!sD!?87Q`?qi;(#GKJeVMrG!{epe5VD;?BfDfC8Ayn}#lS*cdd9#hu zU@323a%m`8NKcAwO=R$hLYlMF!9o{ujKClq$V%Ygi5)=gnan7=P?iQJVErghC&M%U z^%TVHoH^^*PlxnyTUr3;KxCR`ER6OX6o!5pXXT#bY~ zSsdHclj)m-#}+7ht<(9K%mye2HI(rt#B9JLRR|Nz65EWW_^mJBtHHVR(eb6BGDG$0 z{@;30F=2-U*@D2%k)TJ7h-_X}-b__f>24}@={Pd;3I4#4c@P+XPs`QT z_chNC1BvyuvDgEX^=6g%l3kXri`)mRHjBFdjMQn;KN_pZCuGAK{S_-=N#fZtdFP8s z&o5I_S#$A7{1Wdn>uCPc@gWQMOnw8{2TM^}u&8O-UBGHZ3-i0WIKZRH|9l%ocKhXm0Rds#3*h?)aCcw3xt zH%{Tn*&Ns;gQdKzly7z=#+bYJ_xJI4+tYmlk|f6$^q$SSI)O^Rtd%4V6_WYuDjqxU z4mK)B&z8Y9fJgdmGBq_bk-95*kaexrI&g!X=&pc2FmE1C*4bul1I_+jO|9VZ2|VtFE3+>dSQBSy^NvQJVsFP@xJi@WnT=#w-O-G{}|mDp_%G z&v6s6q#v2K+3GXR4up|YNYF#s8C;{<&I zq)5a%2X5p7Xh3pn#;-~k5?k0MG`XG~u6~wk(wJ5Pzi{VrKgq*7Kh85pPUyCibD6Rb z1^6NNBL!Hy=eOU!XE)69-y_DpRjjm$K(oVb%$yx;h6Zd^AJQS&V>3{wJVdlZN=en|qo_X{?ISM6$~iE%;vDAB({k z47RhjxF4<-2>cMIaj8!(c@{p#w1Xb_^VOu6T}t>Tfy#U2D9c9c=@)?>rr_}0+1XWo zS3B~WwT)=#dP6_^+XrSZG#R$zhY*(Q8 zZZ0g?@I$g5s9jVsv3Yj`t2H-U4MfCrTE%cgjN>6#DYT?77E<1OekCe$^E{=s= zkU9gq3V}5Le@F@D`bjgBecFP-)&Y7ZkmFgxt$kzQD!6fp%%R(acIBJ#u6xuczqkE5 z`*sD#v_Zxh=Mp(%m|~vnEtjTpC8!5oX#aZ+3s{H71H~V#d;7;H*;sGWm`t*$J_xq8HN6%1#iNy<}g!^Q$H?OyMrxWm<@d zeas0d3A8<$>cTwS5jM1*WA`7;rFCOVD&1!;5FyYGVD23@fticSgMj438(8ql=fZw7 z1CJDqs5xF6aj$z$pMdAu&jDU*RBA(Mb~;vM>3sgdxU5N39PmLHeGVxP8)kE$bxSSfFkjARlr9;cT5W z0*$vvF!3R#WA%cDzP&%DbQ0AupD1*XY2>(?lq6NcZ3dYy&SG$QouR;OfG8-^z z-EWZ((W~xV)_hCc@HE?!_@7-{B|BZ|5gmx}*B&{C^h8rt4f+gE88@;5qoE;(cGv|l z!`MwN!Y5NC$ttq!Nlv~DRlam{A$oiLpycx33sm+l{aARI`1Y7ePx+tz{HH&e@7#W1 z0t)#&#iyau9^v%@a3x`a*BglNdfoY8V4Kj*!A3~vt#9A7&9il?Pa3O<@Onoctqw7A z{ljpwuZ4$RBJhVN>yK^>*1)e?2cX`&C~N`zUj(Y;jAjf$IJFM(<>K0!z2d(fehkqB z)27dl7Kg9h_?>B6DQ4Mx*j|bDK=l-uELeLhq;q`I&OUB2jo14G;r04A`W7O*-o*26 zr}!J7&+(6b#Xw8X4T|#_g#EC=Gk$O4XqcLTckD}1_`f6hc zeUj03HAU7zOl?6!dD-Y-980;OV*LBgkTV!26>U8Kj8kREW2IORpz>m*J;@JfYi1mQ z6Ql0!HtED-ybky0q1)!YVhk}wXrzYcuM^apu_64q5>*7No9}iyft!|Ky@)4-iI}KsV{uTVV zt*iPFMh;po@nEXLj9c->cbO?Q!;JY4;1!e(uSSZ@pfM-vHH1j>W`aw!uWO)*or7=j zH&TdFf={KZl3Jx&2wPArj|%JVTLD0WB2hP&(Jb9v5*K_E9%_Ps;y^8_^f)n>On@(1 zCrrmc`oXnuHUl-IL=SUtypfKI$f1mWUmnu4zq7nR#aH!dcm2y%moC|CO-_n?5R106 zW_pgIXLSAyZtoX9(TV{sQ!DD9fs4}voFoH)@s4L)OG-U();dsH?2vm# z@~y(r*Ist-gjseY{=48-M3`+^>|6bric-&YEf=z*uS+<*g@Pb?U!7l1)RI?j7o|Zr zABf;R2|CV?NjNwD_Z=TiZ8QFLn&^BT6XGH0bWn@RsR-ESOes{!gyl z2IpY?P!Ua$IP(w&tV0Ks(V&qyrX~<2XAaJR=)Amjh@UlE|0>CWUZwerPE zrf*J!2osd5>vFIc={B@tU-4HbNut^d@HCyBmNnSr>wjge@)mDUT{V1nRzmd0qV+U@g&nIxdOjuxENS3h z_8%CE;A13#rZq`wY7)OI$Y!9Ou0%N1hPZjXz|C9XYmfGNy9WHT%;lu?%*A@<`C#PB zZ6b~KnaAF~$aX`;)aYo&Y>a#yqs;3u4DK{B-jhTb@(=l~D<_BB|J5ws`DyE~SI4B0 z*}8tZk-1)1mG)AQ*gZPBYVXdS%I=nt5;mrfjcGR2ffyI3op;XNG1+DaV;)Grh?t`c zNAanpm#hr4uAMIOGb397A_Ir(eXuP9kMkxFw{^2(G-DX?R(1ah=R)#sUhAn-%bBN( zs=A}y!<7D~7OtZiVG#q=!_TQwVA5?9`nqrQMVO0ozlF=+KDinKV2+NEC3FF|f&{<; znwZ`Hf-p*sBjlwRn(9W5tclVZ`s~id?vZaKFL33HNWumZbCR|^{h&Bi=1wNP>QeUe zg}|gVXpe3qh8!?QN0(v2+rqh@V3|#jgZ!B2Ktw3T9DHvM<{p7LV&duB7sCIov(N=W zLxAjEU?wlOr<2Fa+l2t!1u!VsvWs5Y&F46EVlIX0s#W_%?!RhV$;MQ*lhOp0DHDe5 zKcsxXLTZnE3IhleS8j>qcaIeDRb}n@7cHbTzkrahXzj;4OunrR`d)FjKeKSAz`JR@ z;xVD#c>=B)LXVUf zNN!Mz(@Z&I&+)Dk=AV63c$5VS1=f{#ox(s+@3Z#v=6z z2E=IH=qf~+Lz{RxlA^-lT|Q~VKHQqJw|O#Ct^moDo2Z4R0-Ewj5vYEx!1EC1BaO`M zBEUPpDs@f9c zsFC6AcP>)eOR=j8(46H;M3< zG?}2v4HU5hNlYSoDUMwOo@of$e$4&Zc( zLm-!He7K?9SX~`993iUq8FOS~dEOIw;b!7X%xag8w{)gYu&SY@ z0(MpOK<}|q8eWEE5#$4hw1IF69iQENHb+p}G#y`kyl+#abBA&de|Cqul^!dd*sAQZBp z`nN^@u)7^3>p=vZ=Y9zXfRp z9DTFrNEP0TK3?Rj_AwJ#OF=y~^VkD;T!;0Lw-*_KGuIO;Lfy7t$DsWWfE_IwXj7Ks zw&Z`xD#aBkjU0F?HykIa45d(8KPe~D)sKzSn?rKgMp$thGZy7qlB8RgHgZi>RW)lQ zf;RB_wKfEE-PYFh>#t7?thiAydyo2uBOM}{C+GBiet&EsJ`to{B!KVw%1R@j+?k<; z&kIMs@&b_=U_M3<(Fgjo#{jL1*rU^FeTz#=Kx5I$1o9Umuz>?|8%S#tTx2P5k*hm^ z9U8&K@-JJUj{~_-T5$2Z_gLfy*$IQLvv;Gvlh@kM?I(BJVZ>N5as9Dkn{|Uy_D?0Z zcu&)9v@V8s^D3Zpm);z1Ske=UzxhG~iC47)HuA?S6|@Z*2}*#QbRaN;b6HeLL8hSh zu4(zi1jJJW4};gSRM%TvpOrgV!QeN+i_3Kz0@kxtLqf<91X;s( z(j6N$vf^wuD!TMeQ=D2Q%sUNR6(9?TkYDgnB?Myj`st2oQ{fqwy|Cb5^1(xaS|P7- z&&Ny~Zrf;``Y_Hvejjf_?*_D7j6MTM(UrwlRUyU>HX2BbT`8SkO4y8c$-wv0%;16R z!fY2mosP_w0?{a^uqy@`%Lq{blHY!vD%&A|WYEVS=JRq*KleL4ZI3o(#hsWAmMMWC zo>P_$He!#Q-x;RaQc%o^D;IhLQzWD-0|o9OV727eCDmkZxLV=Tfr_*KfC<^=`&|k2 zd($h3d9BXhxVF0LEeT0RLk!ZC-#Mj-yboAKfcCIPS8r7=9qfSv9q|<-8C!hlV?eUF z_<<7!0$H+~MuHIX!@UW;S{G9vKh-9_Ck7pBFlH_N6Myr^FWi(H;02B_$j#F!qqSx_ zXdFuiM|2cYgMzB3i{eqmHc1p&hk5R7SHDH>E;x$K9gZC2ds_q`jJOqyq-Jc^#7lu} z{7c9yE)*`7VYRL^P-I3n7o6Tdm!h_PFqz*OZD}AnF!*a4tg+lnFLqM1 zn{fc$GV4kz$=nL=e;{xGYS`!QCD@#1tJN_#m3Sgae^<)uvc*pl^E~{UGNulTQcLar z-2(P`i_w5;K(&25CO;Izw+uXZgt((GJ3az=d}PnT4cE(U(WPFH6T28F;g*`>sX2C+ zksP}#yf1Qp{)9$+AjlWE-j6c_xz9i-S2M7v^2V?r)_U;FyssW4Y+dm7n3e~#IU`NHFQkzdavax zB{OA}+cmPm$LzSC;$mfYzc1Za?gB1`2)GyqLPM?^Hp1L<4qnztt27f+x=2ZFd}n5I z@AsnX-Ss0DekQ@&UR5R7R&$#-&>pbo)ye^)3wyFpYhNE^@OD9S7QN*3IP=<5HFSjS z%AL!@Y^(iNT338Ut2$}B%-3vrn7#<7E+X?u9!IwpK@7>KoG?J@+7B3GgNX5te&-Vf zZLVtLSN)Heo@MdXVwINSG+i$B)L7{2F~1TTD@$n(-7j~{Y$%4Oo<>9d%q{20<)7SIawH&AZtILxCZUY|_ z?}RycUJ!?LdMK|9Us1ekaZMnuNl}q3YdupT@5hYnn6yZLKg5rGT;tGvH)zePDvs^$ zulr0d*{f+wht~<-T%P$61UQp3%xkfn%XNft=7k2RKAy>Oav2@XKm~`n4Wb9?<0f*; zkB|eXA-}0M?A$qws!2=KbGG4LesQkwo*93BpDbnF15!XLsN2|U75%*n6}=XI2SPMn zRYhH+Woh@Et^AuAL)`Chj5H^+{Kpv-NqUB35;73GVR;%4^y z?~6ecTacb$%`Qbr#6Y=Q8;H;bS0Tu&e?g`WycM!mv#(D(a$dJKb@^}*7dlQtUAa=f z)gp`82K$s1^m+EkiOsh8L$rSQXRTQFDWzFMi*`&kAeR2?)magfIc zhe|C^@^72(-54w6f-@D-eOmgws{V+a0rPBLk2qhleD}TZ1^Q88>fMI5Wu(zvJC}Ie zw(RcxW}A^LTdEW-D_)fME5LatG_yar@Yy8hWqxaF4cDgOSoV7&ubCj|d$LJ=bduJSXS<>;c*GN{9Rjz}o zgTx4S6X1Jq95E_fhaR{u9kUgl8F439adgVe`o5T)S@IFzw8tWqp5Dasc}`+rj1?- zGL)wyYVAKib{@7+-!qiu6cqrQiWcWh3Awvx(Y4d(tykL6V?QpHP7e8z!l^vlHJsLO zPFUAZnAczUM{a48>zGdI`Ac0jn$2-37lUJMlNR373++F;h@34f$o_GrisVOol8k`| zZ+`YqfV{koElf3gj);=tQaQ4@R{!=Y5aHEzMfmLB9}8hecGDYLoBhu^!V~*BEe8`v zp_U?@lyKgv?{aQ`PfR}6(3uMCYhG4ji)@c#$!o6fYuGFi9_{|okJX-cC!Pi&zJtO@nG^oF92zH!Y=&(944zwn^gGLAnA&S*l_uRI-(Khb(^>nY2%_o3?(Lp8R(wrx zK_<4gjt|9uPY(>+6rq0Hw$j-$_cOOeaepPum@b>|jUKbE_i>!4OEF!ccRx`4WJ}`6 z{Q=ul&-8M$_$ORu@HI$eO2)NL=x$jIfD{Z!47i9fzozUI0qo&tx^iq7?J35DF9~3A z<|V1u@7~rvf3+;Hh^JEY*V%XE?@v(SXr6Q*HT&nWk$+}4FdDkgt-@QLVz>%Ek#RQ{ zYc!TW_H8;poi_!H>_Wj8G~+|iJrzl9i5~YX7^n+T6=rsmLk^VRX3@wb6*-hA1Xpx0 z>}H={!o6&s&v&@-*NAILCE$y0E-vQ96)u~@wIQPKXE=EP&<&`=>2X8spLT%ZY9vvb zmwYhDKMWliz7e`@HtSaD=psYx4<+BnBoSHT9SwOR5=*SPi;*4EOZXfkt`$PW-L1EJ z@8kxn^=Fog(8M#*i9TVW6OLtykiLZSHRyphbHq~I8tjN4De$J5x!9wRt6X9kzh3N} z4X!4%OpKkyq&n@AtqJ2~MY_TP$QX6BzkaOrrs&kdau&P<8j8}8Id6veNnrY5wXB=P zslcs80`IK1rh%`E5z!5nMF=b;{;T}s+nvvdn2e<_jTd^nA6+w^Hz)q7Vdkh%(L=%w z>G>VKNBFM;HT>8jVu*{lqGw+cwP(Y>VvJ6Y=ybv&E3g*iKv5SDnzybZ3^gZ@t}(G` z{SP0ctw%lz2Y#@If&^R-$#)3&2XX3=8TlxCGQSQL!1`&ZCVlvwxEnz2u8=m!a}f6N zI+yhtrKCu&#JAw%Rb1PVr$wfACPPm&9+3Qihf%z|fhgaGEXFeg3!ZolItaoLM%01Z z3OE1#TMi%bK!T&5L)InwE=TjhFslKHjJgO$OC-bzf_}grjj~z~q~`W~*oT9Eumxn% zu5!OKYi#m8kzZ)L+bQ&oeRYCXVtGmPaI_4}o=*@?@p==T|tf0OA2)F#H`_KdgI;i>QcAh z(7$7a{=dXMX2~~^dZ;sEE z4~;<5l{C~bH&55L0rQa$|l(^I+3lE9pG2SX4pNiQ~D z^rRrs5+xPpvx8%7s5ASYW40e;Edon(h^bO~q0Ohx*2rEWSI4#RepMJXFDa+&K6>ZX zz|%ATS8o&Uz$r^OfTV)K4-IjF;CSXs!xV#RX75=TA@M6INUGQr;IX9aYwD%aVRR7> zg{6BFsGGUD>(KE>I=<+$>MQ$V%2DNmg8q^4^w)}8PB;$=H&Kuwyc(QNd~$A zKo&Qk05Apo@ktedgbSBak(@36_&d+&nFIR^khoH)WelT#fp(BqD<2%1rO|c<{mjMJ zo}BM&T6065mu;3k&Gd|u9=H+4o2te!NUwYk5VKm-mmchzuQsNdPi@G1-8_HAM?1VJ zf4zJ0Zqm(Xt(1Dx#kahZ((Cs@Z_d9*I*t+PkRzwMDF0o%Gf|g7oCd!5cXV9XTAzfP z>mlKb1)sA#W(TPqfc3iUY?dAQfz?mCkTX3NjCpg(W7+S#&IVn>Mr|Roue>1j?thkZ z+_{dfaeJ&7E0#o`YJ@J)7J73jWYgh$;lXH45v)BozJ2m%4>U(S_l~jI%uKvXF{mke zGZk@+7Pq^g#eS}hXKz<YB<=TZ)d`T51-2)|nH^TPG0J8FatSI(JPCwJX?! zoU6m|wLTB}oq0icLX;kj+imU0h~aT;x|H1lQC$yg0}4|S=%m38vV-0+V!d& z^{C6jiWVLV?H^1O`=Rvb@@?%1I(>4rDu^v!Sz*aR`60hWAc=Pu$mj#*V`lBdbow zKz|5nq>r;e&81aCNXb7sUCw0?k|V-jp`)#gUCNU>G#HkQ#kxHFc)Ko5n&ECZr-AWnunE`{ipD*$6nLr1HPjgnu|?P(qx+hA{v z9QC8AdVrmDv#Dlk6lKvT%=XXI0Dy7JB429okonK^aMoKB zP2&yZn|I7SA9z6n{RbMxsFWn;>x_@VBf1xFDSx3vDsOENWG0WLo_FyrtA{=7J&WdK z4M~&@>2I^jyeev>;+Nnwy+FpSG%MooJbV=Rm_~U1o*s1!`XN-3a&2u@~{OMDV z6=8GfEtB?>@^<1>CPtox)KBmr>{w_}z)+aWlJujRTDF=vb>7PAaj+S;@=a%cv7ZMc z`4~4ytQQ2t36fQ`2AzROpLftdHsA3dkeaP%L##(PO7Eb4hey8NZy`TZ0Fo!GC<9f1 zVaKRR-)Li^e$8St&liur-eHSsNVyTG<*U79S7q<2r!U90|b4EUw8X8Xqe|5j3- zmXcGXX?Y75O^V22)9Nb+TT^^)>nXO4eGLQx zXv_s^3SPXH;pn)gEBkwjNy|`6Q?4 z5p0LHQ@Wy6J`*Tsg*yG%DFJ1<$F2&N~Ge+wDfL-QvuZ2Fn%c`k&A zj&P5V;oW16j-;!1Gu`~{rb@kaG%sq-w6Hug(}&J<4U)`!j%x4NDTI=I9ou<<5{3$w z2>iaWR2Hj#6UUUihTO2dGY_um(@h2fTP^|?@!B0+nQeg&%XloNePmVbxj1WscvD$y zb$Ix1f8I#=zG5zRVZ12quM=xEZT_ zT8#oH+_M>A6+vjiFsHr)NZ6C5+21jSfN~wlUUghWeEUX&%F1v2#_D%e8e_)gLA^wq z9ByFtT+Hto1HdNU5wiB>i=%qKP|Rb8gD?LG{}bC+GYYjGGF8D2Vkx0dzBRZ5T6~I* z1QGCKJht&xEZ`wx0=W4+YMqe_n1?tcU7JdLx=Q&j!07h+k-`@D<>c`o+P=vxAlnPU zKDWt0JDp%+a0*YN2VR^T!2foifgmwr+Bc_3RgRr4R~zn;)P#OBys>s;H*5p2;yTB< z$-j`Z_Ycu~`FFpirhdtW3v9Xb(_9=%*NM9M#qdlI{-!sl5$AuFG12WmjDiXZ__?#$ zcRcLLYpsm?&`mpi=o65P37-B0BmHYs?G&qCdeHbQEVg zqGz7GryMw+pkjqjm`Q9ZZ<3ZQ1yreKv$>@ngwUm*yK~W#904%nIRG>0g(9$nA~#oa z6aX&}u?<3EU`&1>gbHzEHEl4W$7=i$nTHS%wePvfVWx7|nNS&H6NB=$Ea^87Z#yN0 zl-AwP?Kwp*`#cHuF1YUI`6_E7yWIi^Tcg3 z2}fIPWI+8%ct_4KbD^S?mDNrb)XExI!UzrXVT!IF& z{GvJRq+k1xS)*NgQ1MUILaB}{B($mu3UM7_N7DD=J<@dQZr_O0$0V8AF43oKK=MUr zN^Xk>d!b)ERS)WW(1hA_Hdh~h>fi-CL0nWepeR7p6ragQ0wFp^0?EQLgryAK*saOp z7x>NCbgpwxAguQ@YcZg3IA?j1<$e;k*mL>#Am zO-TaLtz;6|fRuqs3ZZ(=@uboN60->>wOsl7S2^rlfSA<00}O8~>dNqTlFN!6X4Hs*}kuR_?@D%rT)O}KtC zT=TS-bk?+?DVprsx{dXu6}e$xi|^;?o>aQ*uDWvO(U+fvuHJ}vM|mjwgRrxPABNqb zRi7=D%ULpG6gBu-|H6{DGQ0D1}DcycjQB8=8l75dGxt z0PPGwtx5i;RVhyh_ZEs|Fkc9u4eYW7yn|`9moKu_AZ&14VAW9PG$wx_e4Xhnb^{W^ z{$ykTu#UW#3PZ4fa&*Np-IOL;)-HqrdY+DT05eb?GIs&l+S(pz z7HAgR3;)%OJVu2)$MN3)W@LmieF^+c3sgAJsX{Ns_qy1O0an^v#z7feM#ORO;UV_pOkUi__WvnlfP8aY#MeE)P1a6%5rGjnyfa?Ovj|@Z<^?)z4%b=7k$H;mr3Fk z6)dkTe(2EN;3YVoRF;xrT$L)>;dk^iW<>E8;(F&!>Ft@(026czmaO;698A6pRn5x` zqif~LX7H_(z~v47IQnUQgO=BXsyan!IaPiLg}UeF<2j}xx(l@@-c-Iy(Fyeu2*`85 z$jtgfWoXQ}_oT;nsL{2mN^))~uG4{VvwRChS&vJsnF-tnuEt<=hUOYzbLjE~y>vCe zAG1aWE3h-0dk1%rHmb*q_iW{c2=HFu0MEBV<88Dn^ogrsaCCqeyin7(+SX4?w|d6| zgNh}2{(74F7i!o^|Hw4j!;EK!7o`~-9CGTPi>GUc@bwnJgKR9}s|t;*_{DrR%%MRw z%$F*!R9p}8sx}|T@e66uEMm|}yoPhTG;-$WbaNOFIK?vP09N{~G@{u^O>s}H3Xin3 zM~nBwpEXAhKxoJvu3t2;F?)RN$mHy;!ZBMUz_lY5m8BKyKymPQ42wB;jb__ zD$?P3^@Cq*Trt=cR+Mhg(@NpY=p$-B7e4|=|y!hbugtipHPeX@9dwn?dy;+933tcgnc$fT=ce2I2$BgC#foSB_ zuX<-c|K!^Z1D}D4(u`#cUb%6gYfVns4$~1M_9ZD(@L3g8kXpQfMP_$>kzU5V;=h52 zc4kO3W_d80=y+gj5D;P8n{>%W*5l$lDum~kia0>WmH(mxtMAe zUAkGeEn2HW{#7UzccZVL3zu6*4SmrQ0(*$b??jF?Mohk!E<858VX3Z;98TBw+p6y! z#;MKWy59PGF9!E$p$6*la-yV^O}C;as?hwLR_=y~rCmFhyIaDUQQIaZwsGW}nFlcp zI3y%pL4{cmAYVriXf>jIniKvb-Mp`iu%9IA#URn^kR|OCr)4A8NOo%=lgEo|q30@h zkQ0X9${D+yhm;{YR@5R>a*>vA;kbTv`bA*(hT+ol>Y5cN3BPnEQI&C;zBvQ#dNW37 zeKd#8X6C(GW%A1Jz)CY^57uVw6{uB3>Asa5LIYzawZcsasw%V5A$UBaWbgb=S>z#( zFh%S(bg$H0l+iOlrJnpl_b#$ZBs4o1myh@*s0?dsh1u@jxs9x?aqMe%?sk8|*lxJa z2Wbuzli48jYb+U)A+Qw>od6wB$c;wYPRlJ4wra}#4dBWFtn<%apdeu>xBmu zLkB-ic*&i&o(JkKR%FfG>>>Wkwy6C(d*{`#AL?%lKSxQJpk*jeM|ij?!K}(pqPjK% zi^#~FZq4D9-5*|^JaVcuE`WuO;k0E*q)J1N@K_z2!t#SNzw8iu2a%b2q8J-vUrK9MVV@%OtAfcn!Tnn#EbXkP?raD_2ZNVNUghMwA*-YtoG6s;JWR@qAE z9O9I2C3d+|LP3N@vYNKt!sMc?=m>OGa&E+DYkNe=$H-P0~29D1qkV3RkBJulue?1@~SqE+*;wbe1b8 zlX%0kxSXFqhiwXiD1bbv-8&UfvGmH#uLtOD%q`e$5%$roj`de0uRucR>JS2iT!<(* zZV;Sz1i2_ra85|1srSIXTIM%gy+7$hb7yg|My+sKgM?XZo#w7xx7XYWNT$Nf5v5q$$mjC_N$ zmyLY(n^_P4SYGU@@cZ&+@$S!-X#ed$BpRN&`#Kl&lDq$6?eo0yi{5Wa9-R5}@-*tC_&QKdGu|bbe!e5$Zoo+{b!37(WO%pe$XGj(M?bD^VE7_6K_VdTc zze3_{JzyVTH#u#}J5p%IifF*{ZTAnfv>;&QOqcP31!{4y$!-et7a2R_J$9OmOA(3J z3R?;iZ|*&*8Ipp75UT?>1`mpx3v&?O1Moz-jG|_Q_uyE^#PDo18K3RViL3d>jHMii zrA=Ccr~T?_v-StYpfuaHFyovOB{xY8XHN*fKhQmM&(=-s1R8m~IDu!In+>d$;)GDj zDR}v0ofs);ygB?u2ss-uoRbx=a!Bjd)tSRP_)!S)fjJ_}=WsLw<+ul(Nj0kzc#Yy> ztc#v^*`Niv@L=K1@~pXL$Ubu%wI1w$mVB(xT zg7K zG7ui_Smg5(DEu)NKt_hs2lz1%;zJpopGL?hQeyGFbhDjc3&Zum`)4TvFu+4j`i+L`Rp`WoX5agcmB7DJ#QhsUkf0852ei zK1U40;^s7t9}AD9x=k?*AMxDu)-WtOz=(K`1;cP!1l5;1g1pTL_<`vC_TA`Lj69-6 z?V?A>sWDHnIW#O?i0?Gm(MA3sAQ$YHJ#Qdpa2i_r6&nybGIx@WJj?h-UhCJ5`5wGd z4nqIij1B#!W}6sLu~28@Y6xJt>)+Q(f%rfkc&E%&~U{R_`XB9T7-yvMEuwGe=@Zo z^JDfM7D7ZWgeB4ko-KTDg#5rokF5nF@=1hk z(Iv;(C}h1eI&>W~Uak7&Lag>2&Qd2<;P0Q>9^ANhjG&8dlNjQAO6)4os5xO=}Q$G%JV@y2MOqerjz0Y`*%$Sx7c(CfxxQ`Mqh6*`dSr&(N}0>o)gz31VgNu3j?pvM(%rIs#*X1 zzCgaPv2}5tS@+&87qs-yUyEOv37TG>6m$q2(;@B-GaCE&7Lz#hcI4fdn!K1YW=iu< zLq?*puRz;X1ibMV62NEF3XkMj48d;$Ci3wQ)wB6~tq{a8sMKJFu_KT7!&ftheE|bi zlV?+*MAF4hh`UxKRw~_MtfVEyb5h*RW@3;K8N>z#JY^m57Ylh7{P2@8b$-G(1*4)y z_E%!Z&*tV)CbGe!Tv7+dUeDBW&+{R#d+sb1vy98_h{JE9f`p?!<)O>^nB&EC&CZ!$ z-j*~Z0|(28Vlm7}0wqNw20JQ)=di{~(9_*kpQ2^E$uH#u4F08F!CG%db259Z0V9d)gpR zm#9B5JF7!@b4c{tgTaTc?dNE@^T_T>s5+F%Rdmp&{(JvaKnA<0NdhO3!L4FI2GeEGt_Qr9s0FpidxZFTGY@Zx;566i z=k)96sQo=NeM4(`Zh~;`1&x^I%lxop`+*4g;mE;YUN{Y<455VkP882XG-_u^9+2f=9mcbm)wTBYNEn}f^1lt z-ddU#TZzQjJ1BET1Q)uM)B5#bmEMob5|iBl>zLMW)es{(ST9~!&mEKHw`i;pcD14; z!&kE(j|b-Q!Q%{N2DrgE!1*RXT1bxP!Jqe*?on4qB{+3GHP600^Hy`( z>bX{UsQ6}QpWS?mpF5-}0iEs+Bk8THbZw6NMQ^>H&AHp)@(nzs5~nSpXOC*kv_s10 zKwDou&x@Q^^L#|MS#m8IhYU0;@rmfroPO%~{+;(jfn;pPsD~$X|KvsqGBNJ1d`x$R ziN(i(m!1lDfeLF2SC+yK%=1OZzc{xSjT(D~gD;g}c{|dgb@Qv3!;-&5g!4^!zcW#kG~7={q27+HB5fNr4BmIT%k2O{X^`7d@4wjEK8N z@P}KIY8p&sRA-to$&_&#WK}?}aJE;K9XKOHg8! z*ktM$FQ_54OA+vBSH^(Oo&&ZHF?TaPosz72h60L}Mcy;s$Y(gSznGOY^R;TvYkn;uwg?(~cBSn*Q z6A=hZsbl`vLS^1n9yv!eceK(~HIiJK)EKyd@^U7^Pf4g_+%1}1h zH}Ru$M|7V ztY&)*Mq-DF=wI`Jz$;5>(Lfr;0oO2cf}ofbiVKC>=+MKWn_-%y#eN#uP9=+Qyv_&}=b(qP z-0H7O5xv!$>j%}QX4?8~*FzMNzs00l9R$td?_C<69p_3t7a1$?h~-w=zbzUO)IeK6 z{>D;+?k?ooPC1g@9OcrcwnD%)lr(!ck7KVGK|~*#$E1|K%xgE9)2Kmo;Q2!7#bQTKAT~OBAui1xCprW0hESVfLb< zTT)Jp{m?dk^G8a1)5Qj=zp>ICSXn8>E8eQo=(Tpv6fO>X{&?|Sg-}5S}F=A zIaZV+n+u2wODkB42pD8d2sy2_pjJ|dh_XdRKv0N)>?Dj8jevp@FtR1eVoU-=$VT@6 z{Y0%`gJtHO^FQx-&$+I-E@hkv&y(l({Fd+iy+2a}(|lgY## zIPkWQ&-I579~OFr488RF8v1dwU`2KZZ}FP%V`yg_Am9xb9sMq)W$CK&n-PY$KMkEh z7eLGuZt0Bs0XPlB#r;6XUTRd0W|; zPT}5_H}A$d`?FV2JFXRvZ8N-kpYiryC=;G46+Bo^yToJqccaWN)~`17tbRd%=S%o` z@5(jU@j}80*kd4n3AD=wffFl7_W#FIZp$CyqJ@iKkgQz871!|P@XbE6+M3ZMgpAah<#O0b4JR56SEHjmD1F30k#Tk%^$~Bk zlHNJ7iE_&WR&(X(Bq^|-!Lf*Ka2eOeD5QP!n?$JAXLHK=?Ip-a*u)h|LJt>YJUPo< zw_BF52to_pX1jrkdEKBtM&QtAps6bK*9uy>1OcCUJ>Xzzc?3-aOe$=*VwWUhKbCe9 z9fg$dWR6SvH2EN9lM?&bdu=u9`*@p+Ve()u;bqmH>;pHWvhUPOe9 zy5w@Tyg(Ske-YM}am@0>#gr72CT&y^{oiivJ3`<5I*ySAYOG^Eqj+xwGM_bf64L&B%0(-quC zweF^OV*ci|V7kZSrBUoC{m#j_-uB|Se%9voPyt|c5v=TcyY&gYu;!1TzjM&wU1Psn zxyC^NJ56bABsvOK`h_n@3#C_1KZ__Nl#Dq)E^D#+kmbxh7?{NWl{s>wnin1T;)S3; z0c=CexhB!lgKQy=9YaUSZ*P`Q!#0$9leAWmF`Cm#wb_kotDALbZ2DQ*m$3ZKI6X`| z2>vTNOLoh@rd(1>!VE$5T+dNd-C0K%IrXGV_>SRfQ)Xw7|D>&oV-a^Xuf?@!nl*VB z|MRmsi?0`%ls#a5pqloXzf;P)N|+zQ_NK%o0wh;}QSZDKJh>fw-tb3&9XZ|&t*KphQQJK$>-5@_OpLE$c+fPhkk%)I>NJPx(#F%+1iU^iTo@VUVjk| zXniqfv+d5>$)xYY2_a{#=djk!NSNDoI{d+!IF0F#uOt~idy021OdqV*U;mB4YaPa& z92DI4x-l$hIG5#@dcpFp{Z- zC#ZCOt8Zk|N|f$CsfX{7AS@tlF=b5l;S%Kqr_30Oq!YV&zupSUo|{y+0F6}3KtAm} zZWM!QAF*O!3)vh~F@bhn4VPynH-E&$O|_Z~4v$4Ps~_LKz)Q|2SF9 zq-zh`nZ-KZGg_<3!^e)Hjfk4Diz3I}3A%yRb#lQ4?vdHlIM8OXPb4FU14&Obn$ay< zZIbk>P3#sB2cHfR;rNRCKTIm#le&?ypLcz8%(h9~b1Hzi(zAU#$EZmo8k{PnG1X6` z7rfpwf8@gZ^^$JStH;(e;SU5_F*YHLPuYFt90#u7j5O3lf1=`wCv*dcxgA`7qDrpy ziJ1}{#Hk;NZnV&S&tV)Fi^|CCq_c(%%Xc=QH&IR?6PrAq-9m#C4vnb2ewb`0z3H?x zNOV_%hiIb4Hiq;oTBe!yzRKbpksRC?V8_uTcVmm0oeTBPyo{qBMikl+CiMtEBkl%7 z#=Y$l+4#OyBuTixN;6j3Eu&QV%}I`D<88o?o3xkM^Pbc)+_zsupX}>?m}@dPb(@yA zq3&Qk_GZtwU0bNm&HH5ThQGEm#}G5FsyF}2yaTM}PzqMbr(U0k0P;&4MlP zd0|X?fL(zwayJc(Gg9pqJ(R(X+`h0C@jhJa$>+Y;T_D8qP0dmice8Qz6B72Gyj6J& z>l;dDwCGrDn6wx`*Ril8yW z%Qgs|(A(q>dp1O0(H`vU%s(HxvM!uF>_k<(p{|Q2T7sJS^q|k@Z6z1F$^eoa)$m+) zE_D&UF;YGXvU33w^F9TLEKfR}1|J`%HN!ie_}LA#2zzgq&F+i~k`=gId}9R2N=pke zCJW!2JWHl*?>7q6Y>kQMwG~;9MUp;$l#INU<30OSTcQ=SVi;I}*_|wtKXyFbFO^Rf zbg0J;bIroY>7BuoHAUEaeEF18+|>9)_)@U0bItJ6VJcU|kd)?U`8T?C;`DNolbeJg`Wd&p%{5esVTO!i+uN8KU6s zzIAn3ei2D`PM_U=PfTqiXKVXqwcVp>@Y0$K6kED*iwd$fdb28*QBqc~-5ri4rL9eb zeYVpa^k3V@$d*vegZU9wdwx7TMFdo^bj&!%GQ(`tmF|y5D)&b9IkKBpJz}9nQ&|+C zhV>%#SRx(jAP^2!dnQr($jU_#`lG)OtF36AfO0{YpcH666X%C^O~g98qkcZXTssN& zV|~op=tVfE&lD2k!$87RgbdX5IUNd zq?~eYUixUo5#=a1C?MB=sWJcWmUE3#SrEtR@$F(d$p(8mu_QE|9_>HE?1?4^cgxAu z@^aXU2eag`6)U$P*kIaA2=AJlsF5Pl;J4)F(ca;H-;#s6oTjfzDvzB%nnJ0?i;bGQ zv#}LNwgvognkgXCyMiA6F!>90Q|-QRaCtU$VsZmg>oH}hOBF6_)$P}Io=^stu?h$DAak0zf*Lzfh)UYh~2)uSHdA?-~8?TFx z|AF33b_gKV{g&HS#zo|}tz3V^tIOA>HATquUfn+A@@ye-jnXo@t1Hv&7(VHp7=IUk z=AmQeC8u0sbRCp1QO}c}vb(#YLou25`E9o{chvy&zu`)I+bL6mo~iNy-q5 z!K+InU?}O8Qjk`vMF8n0=)S`bjP52|%Fb*hCoejIXugYmSQoza4cbbzsr|Qc>@r)d zBCR%YX#L_f*Q;K&HGIAYIgA3yba2}n%(tk!R@0Ykp?XW}mK9a@#W`Ly_pdWNeG0XJ-woP*o<7LQGrrfE&ICP03E}lZZjXK4E#kPwSVI z=kYA2tzc-ZRdaybPwP`xi&{Me&nPT<{tX{D|U4eoJOQV=jJnu=oxZ zNibQ5>8FkaGU#g#0~YMq&Pvcu!=EyF2NKSJ=Z71|msX4hM>$5oQqn1o>_f^8Ee)f1 zawqN}UF7A|o9{r_d@txE>7dRVMBtna2?xHvm7nE5AZZEz_c;u?J>;JC+|kerUPhy; zMvYI=d_HBTH>+(+w|Jh;UFC%!dS4*{KNW}BWze~Qx*AFYmQ$P1+vy>bg#mUR6zKWc zq>SA}DdOg7chIP$uj^DUd{G13PzjpSBtA`j9Md?DR|#m!LiSEUXBG2Wb-v4Pl7xj_ zY&;9AJYCX*_};=B*Q2CALn~_Uo&ahAG^FT6V)Rr4xdYRup>7} z_Lzl*#9cB*!?IRH|9Tc&Kll-?y6C;UvI=%L|FO)bFq6g{ozy2Swj0=P5ebsq&pa2V zHAzl`qSe5*z8Ff?3~!abTWN(mM78+!HvRU-*#;& zcj?46=2?c`%*9u`5nSc)ZUTXo=?VgBfS}PDeG*vp%nC@y%H%3EU;w`7xO*?HgwJmh z&1o#+)%{%MmjLRe(L?UMC+j>K&(4sYP2C2OY{kO*5@AA@m~x@yQ%jcHEGAYcTM+@( z+kv2ZtL0zSKSlMj(d0G=GEboE7XZF~{qL$8OCU?NNDVif?8g^DC|fV8NEk5W!ES+r z86gL1U;r<;U1k*ZVBkQtNs4H7j^VxD^SSTo+~MP`W9pP~Ub+~3LIL65PYhd+_?tD^ zlwD?T0WsL=Ey|Hu0@*+ggMx}*)+w7F$eV?i#V^a-b75UwA?hL&D0>+JCv(5{+C&*` zG1Evo1`{?dtVQatiXmo{ZW*MkfU1g3vO)K9uwc7uH>(LpZz2btM1tjx?Q?v*@VRX` zcAM0SG|q)>Hps!@HgGUOG(2IXi4o=yTv~tZS9w%4rlmePJ8nTg%1ck1n zYGIuoxzG=i>ZHgD!DB+F^*un*P{M_2``bu?y-*#lMC`T0N2)yp2Q*4xTFb|O>iAat zl8#~MM-Wn-R@c^?wCa}xn0bIEi~wW(*&xVXp5(n`2z@rcpFxWE>5;n$;D^eQ45*|8 z3`Y=svU)#UGBhxuJBP&d4DlQNqQpm5yK=o?!Rap?H-kDNyyOrB)-jO8mvjWpRS~|t zI4sg&W%K!p@@#?y=kp`6Vx#BR1J;i{9*Gl{n3`S>UU|gBX0}MSGJPZ)8-GHQ`v6sP zFtCjgfSAq6UgS2b=z~HSHjw+d3?kX6m-JTh9ik$l)$vS?&iVZ?a!iX=wVdu^D?Qa6 zL+2m-;BbA}(C{!sVyEuec5JSZYyt{abIgcnw+ABG{A8>*4z4eK8p$TmHhKH#Bia0M z*oMuc#?X_%{DANyI_jm>q)qnNX`)Vu-n1z<3x6IBSU<5{z*H^x%Aq1sDRNX~q{RON zf^a|8y?Wk>06WUMRE7m;-H>qS8BU$c@(y<1{XX-|pf-XXFOj{yv-|otv*_`?K{oIL z;v5F@gZ=e?(cpVPKUCHQDsOR9Uns&ftga1eTe%%-XFb8UP*mg}=uj*+VW@*jQCtbW zBfQ>)I}}T#Um2^gL-+3L`C+npa^TN%x!OZ^%N$BC#rc0=XBwFSHM0PNp{f9(yoeN) z!27oejFmisHmQSYhXF0^?=b1crz-}9`G!2Yp%e0f^*f)5!(E%CEmZCGPPrp-*EgXb zBcW_3iFq5Sp7+ydU(I8jn@e}sJh=`tf;`bq2ZiVS*!}BqABce zY;;6E-rw;B(Rk$C8zY~Z4`yUy*r9g6l<(SO_pUkzJ#KhLg2vAGjB#Mc4A6(N3E+!X zX`e7TO;5gt61rX3He}|6zh$1+dXN{lX^<3z^lJ9d4*Vszr&_Hd=3e!*%(3mgqh}kt zt;b$#Wc@PRulxmlVH>%6;aOpY096w)a5RMuHkc{|j19#+br=;p(4Zh-7*ja#o-cKR zQrTiD>_hSWHK;l`FdmuaMecQf>ajeJ?gqavdwAjT&~qYTN1(d4|Gq3|Jd6bgPhJxL zbL7=7f9!ad8<$=ul-3IC1IVgxFR0R{eN>5;R$>?XkLbc*tpayzDLQI>On)>vTDL=* z*Ani8DCfie$k6x!QXM_f(`>+IO=8RceUtq*{f`&7ktQHKnJf6x&JSgl$vuc z6+g8MmkRFsCbtaJAEz~Zy)vPAy4d`|o-fzz6mmXVd|!3`mFnuD(cHd!)$*Im_5IH2 zF!E~XE`hLjAp&uP7{O)alEQwO@yStNuJN@~?qO%hUl-Xd4I(6;eT8WmX4=g(l*yVw1R_4UG2E$_{0d? zJYY>qym0m4veHKO5dCY+Wbj%^`>%2Id=<{n=H;b(xKmHK6ueGx&UHAmNxiiw2(6H) z1Xg7jwRAD!*lkLBA9o;Wgcxkn%6FQ7%&TQKt6T!vikigzl}1%*17x)iR8Rx>#NP_^ z$fw2e(gx<&^ILgV>0I4?fez2$ZEPMwK3~@!W^C7FI`L>r^TRjf^Lu_2i#}`Am3L#Q zvrpZ>t>?RZ$olPo8@2!3k>SD&Nuct$ZsJ#w?k-u!dure160J*g@m7P2BR4cAiR?Qc z_QcEU?M`eEeFmpx10y+l3%PUY2m??v=saw~8fa*fD7XQJ?Yl%XmDZ4b*Cp@LP`-%M zRj+-`3%zLK{s@b{j*;Ym466p0qU_CPrMN2^3$Kldk^$?a^hI-dNSpO0UhL_{XC_|V z!>S7m<;G@*_H&I1(bc^e^6E7XH|R&_kEop%fDmS&7r6d{3kE6uY$E(G2alXpiepqQ zYjr@xCG@6AaI4uCyC7TRXu4;oupn9!E|lJ7S3kGF^6w^mnJ_^3I8K`9VqSLJoI}t^ z7QR_NA(=STEjw#_B1ZJ;TGaD51)8Ju(s0IFkcI=*vEFuhV+*2q0nNKZg8KOj7x3=t z%y%+5R*)!^@Y_S4zJW#pj=JtPA_Z{bqYV$ z_zCXXx8(f{T?oD+vyb7k?o>;^LnD~p^aeaP-_DAQA(E7?{kaVfL%)AZ*=u8=Um&Y=0ZRg(QNjVXIYcwOmlvCcu ztV)vQd)SuCw;PNc$}aKG`_59xnlS{c#y}fZbe`8NG^(n|)A=R!OL)~xx}($asI}w^ z!jw-vgZgzmP}tNG^SZ|a^9;|5^%t0M+!9k46UaW0FEJGEMotIKhH}N_0Gu+3P0=z< zI6n<(z4p)h`8s7(Ax#VPg~-{b_Y^yTje4d6BeQ9|F36;`DKgoOlESog$;t8mU&cjS z-hMPJ>0pNVGS3|ww(v?7vp#5;_K;@1({O?xxI;rk!+zWhX(uiVbN#cp2vLr*cj;g} zs@s)V-Z{1U>G)v^b;(W^uE z4>8N5_4S1Ol54XtbB^iSgbGgRW6R`;{wPEzAcKvw9Ra|-oB zY8RX%;(YN}=p=i31Q@3m5;hkz*EcDVg+fCfDUR(p@94jm+F{H1H;kk`MU=#}Y(GGs z@lqPLC~QXDxT?|I#_)F0>nl%hyd}J_^_K)ecre423Lh?Z)56hkk}bBQkjW#vQSR1tPQ;ER z^-APiz1DrPxQ`+I4)7a@HJNzdX^lg!vtM2w(J?6Y`$n;#up>fa=y$)g1=-92T^S)e zJQIXl&pQqn4Npq0eoCm{T(;oy|F5p#V|MBFm;sAm?jP^WWM>+gHo9*E*Awwyb9w$7 zeKxp5!KTc@b~*0*`~L(DxWk<~Di!mVAJi?=5FO|N+p9t*$ry3DK{v2|&>3qEngebDZo>cAx4=em!~V`(l)IhMuDCcIV*FUr;{LR@+x?SUOpTVr89 zcsegPlSr4)Jz)c;knr*cIx_RDOs&}R_&yLGb4j6gd^ih2O_9Ial}*3lmK#^VtcV>` z?$}<;96jV9JNW6ExTFkXF&!H_7nyq#x`Z?tsJWJs5tg!TrJH=srVw4d4Wk~Z; zT_+b1yjReka0l6C6v%>Hq0JXnCEbKTnuTu1EFvcm*O(f0h9aBmOLB4GEV zzV4+9UF#M48!ZCSBU_L~ok=cm=~FQgNn)tF)P+CMRxuB4e|9Y{#{an_^QDxl>DPS$ z`)6f_i7+K4ge#X!6Me@Eo_c`kP4&2;jed1eUyS!BEDwl(n1EEV3>>r|tS#J10l82h z+L-TAz=hiH>I5+%XP%iu-*7u z@QcDf_PP@8>C}bODD!dh@$76&?s0?j|4R!ij4#gBtGn_Jun0u^HGsV3M}G+Y52B0T z&Z5`B^0Aa#EkoSW{06!3^Dsfh%Yv^N@ljA|dl86F5l@Y$G5lT&wvyLwY0FH)-j-)Y z!1^)&*c0dE)pkXtZD0zdmL>tcUFejcDo#K2GstLSa){&BUaJEjm|N;z>-f3S)tB3Wwli3di_^uQyTjDCGZsd z4k&?2a;N&G&{g2+f$q$!4OFTl1Ao(dJE)CIjE!^*1sM3YWtI_mC-)1qTM$L6S9TLH zpeU8*%9zlSnkaHQod{}~gqA;g_g;mZ+;tu0jiz+ea=AOwydOIK^lZHFSyyoroX6!1w5U z#I%n2#58jExS0pc7^s`!gyAg98WnhbR~^LO?f~k5sU0;~yEV4ak1ypEcG&8`@+w5{ zsUZxH%M(H;{J-s-K;$F}XBefNJMHKjI2xQKBd zYH#-6^ssjzySR3%0~E$|Bk)qVuug!(j>W95R=Kd*9@?pD8en%7<jRV5Bg`9YM6pYR4RKWrcC0dF((&h!COdzc+cYPrpZ!_C4bE%jotaJude?3A z@DJ2VCh_HG`1}A{Vr~xl-oQoXeakO>p;Ir3%axal0^=|5wW4HJ6(jF3{LO8vu8?_r zM7yF39Kn4;1T;|aRDV@FhV@N1i-yZKa|9W(|IGNU`el=-(G0$Dw$s;+Lo9BHpx~_rGcB@zqJrEGZm|eys3e$iGoU{6cuw8Kbng6+W zTe#JiaUPhvr!19uB<;vd7K0t}5oDSFu?<*LM5_KD7Q=r}7DFaOc;o`AZb^6aJ6pc+ ziZmk$rKh-b6X{*o=9abR${Hfw(0gWkg{Dm~PnF(8enVc0OOoVTZc^?w-BhVyDx1b^ zSsdv?JaA>3$z0-AdVfM$@7^46B^^T?#Pf!3al|{^%L0!mu71;%Y_)}Y%i@uEwf2#4 z1xXyxmCW3YyE>O$Vfa{i`s*Xdws$tEt7y@V_gErgNuFQRtEog(-1nrQ;&P`%RK&)pOW8qMW#0;t%6@Ck{ztP= zB)|uI!txUYA0xs|9(RH&sDj71{A8j4m5>Zp(X0SFgtpXEgW^jk%R@*XnfJ=SsveUL zYPvuU{w@=5gFdT&s%~6OGve+YZE*>T8r!;rB$lpD7%OFYt!j*0BAvjy^cgDPV~T1DJ2+c@#>vY@(i*r)>Zzh_%| zW+y5;)SoP|bGV24IDvdVJhLmmrCRz`eSj5Ty0u$BFz zF8?;Oa0OAFcEO13<=fA_xhfC!WR~yl`BL$8oX=n`XE=mAGl?l z28|KRN#8t_Gkf#T+n-)bPsnG9Ce%%u(!*R4J_j_*t(nzLE>SStX7%m*p`+>$;=*uR z+X^%zR+(IKRB`_3DesUiKUnlHnA=?yp~e=SD5Bi+THDo%*B(^hSkyjLO}+i`mZ~{h6cA@Rs6l>ETH zIFaNf;CbrU)snBElFt=Qa#*?yuL>U9CCPsTHhFr7a$k%NwgG@>82VwdK!o3Og1Yg3 zPxL$8Rc$Lyvy0ZX-@2G`!CX+OGqn;|M%pl58721YS>9ntYY(ie>)@ExF|36JL-xd@ z-;DQj*2Kglyn|aw6DZXCE%>a@#Qz$ww0!FCHtEXAV!w;m(C4$>Hh>_S<0D^YyDU;z^vU8FU>Xzk>QQXK)Sq)TSw-@w<7R`~dY!hk-fCyOPOuXM`#SQmV%=HUL z7oaD_URl#fxVU% z>;}|V*TD@2brn6ntg@juKXj!%QTMrS&}32GbPPk&#BSreNqQ~F1MN6^x}j6WtN^O6 zM-#J1cZ+&7Wgev#290UttUQKYn>nYwKHk5w*z-`%v9!RCpqo0I%#^$VAfDe5jDNSO z|IL$|O8DO0;@g<_#EzXYyTF6&geG%lf$;+9<8T_1UDWCdPrP;W6-3 zN8V;+vrKf2(^9u@<&k}>&;#>>lVoMrdR|}IbBMnAW#^Njea$k_)z?S2nyZ$}(CWdqY1Syo8Gf?%EzJf4Ivd7cHocKEhTRN+^aV$KBW#en_ z0Qy4I00@KFm1|6EK=a}&YQ~awAqQ)4z3^-6IPxOXvAfymWx^G0O?7c4s|SpN@ry>( zudm#lba1TH08e1X9FMF~71MAGpYZa#SSpjRY*v(qldsRlUwA=gfPp0p?nU0C2i8)= zxRH&g+k14bk}l)-ed3Yl8OeDp6<=h$J%>-Uv0H z{G6mSG5-z1po=6~o1@&1#-csbMenI$kMuUgpf&Z-#1*tm2D_!jVLV6MMo2(d40WU& zckWPlnYJb>7*n%7jOZ?%8Yfs_uZ@q{e63r9X(wk1+7e20>Bnt44@b&d}N0G zdr%BGz}u~-WfoXbI_x#jf=kJ+uSSc?IapZKYsS*7HAHf$OW#oRKv*N+u}6j?lDF+K zY9-t%aU)E%{Ag0#uDv^#c8kp#2i+4Jn<%p@N6KhJx+C{oFY+?p(8)0hJdaSn;AvJI%~zkBC_`Em7k z8mvFl5fD4So1=@|gq86+n@6DkUlG9a zP>z??a0)z|6-4heIB}p4En?%l`*Fw=B|#-OE&5 zPH0NXKkT{1>iSJ=6a7}|edj%t$eg4dKH9&Zii-rF@ue$27=G+@4!8;(yoX(~xxBL8 zz<1dm^90@j@le@5qck7?*>cY=>T}P`z!JLY9vI%?FSJY#5M8ONTU_1Y7ff7|maE^!%M0{PRknTbC*NWWOY(jGcB6;#;oBu3-)`y?I zv}!9+NmCd6=eTWcrFBGAtg`dh=^n+MJ;{@$f^C0d;e4f^q+Fck3j(+zl;JAkL1qQC zF;HToWS{GPpj6BdU{!?qCipjrrf-Go|7Qg#aHRBfX|8nSwFo~usbfUbZF66I6H#}6 zjC#*_qEnxSGoBzd z|5(;mLg=rLu{M{%;=(Qg1q2!^K>`L6f#xB)nBg5iC#T6S|mH;#qw)F2G4nz7X< zQ9=-PfHpH<=I-e@om;z!`o>8AG7SB|>(uu9nT9JZ`bFlddT+`bBf+JFL;JrLQC^89SWpocvAYif<42L}M%?dE zCLw0Pr&d8L1TvhprR!#V^369!{OFI5`TKHA8Y_SKdCc^uKXCZa@qU-tVG%U^()pGi z6fg+;eU^|t>O&45pqWf77+i|_vM%^xtLpXYvE0M2yyoX8@EItDz183I`lWGi*Z*z{ z_q#=UbY1@VG*HTWCMQ0An#Sr{dWqO}Y%yC{Yk%yN_uYN*s_{PKWTvr|IHew=3CZlQ z1(ety$7_5@AXnLf-7SDQkCES3^e$r(?;Xi7#T|GTmsqjer1iM)8}dOz+kqL1)tT_e z7`Lz)o2wy!{pLwRZTBhkV znWTJHIYSOwPo^DOEp@A8WylH1MthD+b5o9ScFxLI;0zI{+NnR1U9Hm1>Kwbaw4vzu z>dB;P>`f4x`<)gG^EwvNfVT*?~KTuu6tp}!p z{E&#D*IQ|fglgZL4-b8nji0yYuG5>a?=~>2`gi5qyVe1;C4n3!E&}I<14dV8n4>@@ zjk=f{;3znhu_vbT+faKG*tCs)S$SnwnuwxN%7Tv4YMRio4u>Aa8MIE$7=q6bw=dkW zk&UL^1BXE9yLQl`UwA)7HD^=o5NVK!YwQOP<}ieM_-`d!_5pPepL?F|##i>;6Xw&x z>7*0LR|P|^@WIJ5*ju`9cFs2pV&;E1;W&X=IqMGW$6RoKMW=FGDNGw;oelpgy%%Gl=N z{gJ=?^+qrA|H%KUi1m&%UArR`i{b0^##e)-;wvIpjx0q8n!d%KL?)?^QGX-ZHlYMJ zbnPs1C9s~M>fKI?7)2v2IsjdvH^CvzvlDeSbZcFxmmu9kj%cPl|4CPwT6vRpv4001 zp}O7=Y8W?L1EyrjcYd20I67*i$T;?kHS?o%+x}wW|Hg9L^u=tZg8%cJpykiN2GEv0 z18jiK-q;o6ef=Y2lYpf}*_SN_CTZCjAQ9N#%|u$Gp?wlczF-H>LQJbd$Gh1VOAx0j zbo~HiqcbMMEQEzl2S;EphY55HiU(Kk&=qdc-vFl-5z@f?$LM-;=5>>n>ZDCUvm{Z^ zcy;xtf+%1^m05Gwhc=kpRAk6nhOcfS;L0`q8&(b%*_UOZ7hz}jpg#K-=$;Ba7s_oxE?(!u>ds;=gJq{xVhP4lZ}&gGnO>?QYUl27i&;vy42 zkQ&9T1;v>LTY&UUVLiY=vHu{8LA5j!i*2Dzw~>$X=oCo@=f|1vkpflnx#U@INzqMF zrzW6h5f5J5cBFCNu-|lkE6lb|6U9Gzlzh6!5iQ(IRawR7HV)yNV+j2rdVIhucwVFH z3V=c|UKux8y{5_JEAToBFLZuNNc!Hd=|i0O4aBzfyL81X`^kId64Pu3dK1%C8QUAp z^`Qq$x^`3(T|hL&OZ_QsBImU{0YTSXK-{`bfbSAb(Ka_GuB{@?%gLq zy5#R4%EEuWF2PLZ+3wTLPfE z)u)|)1rVFi20Uo_P%Q0LBI}{WIaS_+I)DB%Z8HPkABfCZsV-%2MvazIEGs(#m--eK zS@f&s@+@*iTQnoOHr*<)1_qt+va%_?Y}fD(1JW(xf(4ExinV(%SdFqk-)?V6He-X3 z_p=zipELx$1;dTZdlsPp=m?Ff9>Zm&I(hRLG%#_6SrLJ<$Mny}(w|ItEbQ~(p=AJ4 zP`k1H!Frh(MYsg5_ccOiQn461ngz9b@9smS;F%DO7XxY99O~_3T-kPL z>|A2W6_c;HUd#QuTk$P-;0YQ062QyFAea@QU3C+7Ns9ux8TytRWTCstW>Fi)6BLoi!%$})itGYc@#H?~@5M6tG0_pk}# z4rqxZ*P+QDEh0pJ?A3K8iWBT(E#xNhZ-c*9P%QU#i0DtT_AR@S>qNUg-)?Or;;J>E z^)DF6A49B@VB6a6ETOu$XIQ#rBUkYl<;prA$66YzmG*-dRnH=TgENSx3BV%Q1*cl5 zidTbKDjYgadf>N|LWlqD&}7H5K$879hj@@xREhh;ZNV?-WztioOO{+3d4pNab{Pk! zC0Gr+VB1W~n&k;2TbjhaUc|XdUr2<%gD%q z=(u=}I%y(?d-IK-$5<*Fz;h4KZw&s6 zIXz*zSY^J7n|~2nby-7!i4Q%Uof~!69A+3j|Lc-oZKaAwZZ#%JT=WZtz#A*uW@byI zv5MY1x&7DVqU%NOv5>}Q)Q^QY^&fw3R{CyEzBV0lOt2|Gg8pkF# z4GjS4wOr_hTsoIo6R6tNsE~#Aw5k%lXTR=xN&KW!-i|5hJTA8bH6jxE8cyRPaT~Dq zfP96U;hK>BNxuC=mFJQroZ~u46>l)ZsmUbLw9z=(Wgc!NHZ_4>rbOpb#A+zmZ=MrW^h$o8`Zt+!Q&0I8&@9=tailw zOi@fgPUnZSQFoygJ~TZFBL5~)c8Suul$5DX6Y4A(T|}gpTCFyDpp$^v~_KFXO{FPU0GlW4y(<>E8T)YsM^LVKdGO zzcY)HM&t}{;@EE8Ul~$?8;*B7vtwgDx4x-2@7GI%v*Fl}&BVYqJ>ez&nb`(OL#`a? zLj73!T}3!>j@Yhv`iZipa5_fWdr#$p97nG#M>~2gqY-H2vb;n!9VeZ%z=@9(4UQ2a zZyXEM$)62){DN-;%HUrByEzAO4T|sfXB$)Ln4dU{hY!=#-%1;}>fCrm745n(F7QZ= z5$ES?`G;0x*4)C}y{tNHKx0PM{BS&Usd2jD>;iDcVJxDuK^3!4_7z5P#Oq;4f$;MW z!pP_KZX;K0CTKtvRzae)zV2uD6^`EJwT!$M?u#+hV$>`RBVVtwCf{%f)C|;$Z?xg$ zW9%W$!`-;(MA0bg%?5H+pFtN$T14#<(^)?!Dc>rMubX9nNpG-a2 z&*Bf=n+?snIU9Q0C~*i2Xt=D2$<+|BO;1!n?%kT@u6+`R?Sr0Tc9YW1WJbQ%{6OMc zq=@?VN%q(deN@!_A;h@8nT>c~%^I}M;zJw9;gxTGc$W^79yE%vTI>rcq3+`zBJzP6 zB3MI>%)A9qWaB9|RCv+(zNzdM&8I9W=7Kz7+|>6sVHXTGyhX zUSwPl>}{8kMDs8!TD>er_pNGJB8nfLP>~eIh+oL(iz6jj&F8b6W9*OQQ$F<^l$f7p zi!U64rvOqFm~uvOui%S5rv#8^QUdV!ku(^tC7v$byb#hDBrx&KkGSSEZ)sMqeiYN+ z^pze)3!gt-G2Z1%hUieWe8)YgD*yrk3cCk`#_l3WTt7!oL4SAj%7MR!37|*C`q9;2 zxtF}bh^_C`eqBW`vBY_Mn0uC_B)lh9E@jAH!@kQ^eQ(COvy=A61(aZD;D%=VgqvO; z`&CsFzRw8^rQWu^-lDEW0Ep5<6OvC$4&vIiYl;Wgb2Zl{nv_(nXzVF*bS7~0qF_tb zr%KY4Tn3UF7?kM9zhDgH#@LSEQx>0sk# z3gNe0BpI<9y~uW%=vQ#x)+O@yt&NhJ;?iY*Di&TaM=}1bjz4jhs7E))rY{-m3Qtr>8u2Oq{Z z@;$<%vMG?8Ila&YJYk~k?{IED9eauJTCD8vExP@MuE;=+g&wVIdS@Ig$TELeC)V7;3G=U z2z($C9p?25>*6p`r1)C>M6T=5KTZqtmjbQ-V-#GEqRQH6{wBZE)aFLakp#_yFY6{A zH>{d-2-nO2F_?M2Wx2sOm62@w%SGQZBiUL*o4YyiWBU>={1HEvDDnd5s2xJ;1b!?R z@g=rM>{~}$0fw50k~XHoFp5x0?#*t!ZiYZ?2MjC$v-7QIDjI6Mmr9xS`ce z*hN^;%655e(-}3g{cV&FH0bz09?SXj>1KFUcB07%065L0-RN#3?^kxMno9)1Stdz# zh-71KuB|jv56#5MZr`%OJI2SWa7AwWU~ljuc3D6TGCv!L-4a0T){nTX6mQ7Oej(wW6w5@3L&_A@>gG~lS+|9X;$E(h-4&=rc;qAOCN`-%5rp8Dg|+X zb|v`YZNk`PdATgbND6r8L+K0YgoEm!2a=kMAhB>T^TWt=hEwvq)@HCCqrxl?T_ zLPZ~@Uoq#z6c8^Aoj4!&t)RY4fJccHt}t*|{Eug8cE1n~p4}oo4~lXTeT1d{R*ONV zEfYH9LRThiqh&&yCJ?9*j=(l{H4hE@H`q9Uwo%X|Dwlpo$bpbF2Y)NDf{AbtVVXeh zVT`NFcjy#xg%lkXP<3*hC?)08ZChIOZ)kz*@5vkm^`6=8NaWj11CGl%vjq-g z<)6prb^a*=sX9Wa7(!}IM|x1mW)K<=<|k+)W`^%3cMd_33_Q7(6#f~nkDlq>y&m0M zO&x6TAv3n0dU-fVuuL<1DUTCRz%+QVFwNWFR`s)r_0bStr zS-$XpCS9PeGTo|oRq-{ckUca$(6AVjeS0p860ijxJm9><7Vrn%_i8J3mTVuSP&hqb zteSGN4G>%UgfSEp)1b8Zr*SLnMDcbW3pAISV#GO|4zGM#nC4)}Yn^k($^PFEFeU)o zo<3kK*FHe@PYf7qlKJXxtmhtkf1LG~OilE!{hO`DeAXKl=jwHK$UACp?&;g#Vf!wC zWX+KoY36_)Hq3X^;QEU~bJM?X3bn zMA;CZZA)r|xM0+9bdGGQ#`{>5nlV}Z&+KIgWXc09xc6Y-A; z&`-LLnPo2S%VQD4kuR^`PS+}i53{NFl*n^~$MNX#`Z93kejrF1o|erfplQ0B?*5Oj z^}naDHG3Y7nL!ykbx*v#vX2&!w3L$R>D^*EOnqa-q7qw?`1pvcAH*SuxL%B|lV!68^+luGuPpHSDpxYjHXPq?UXjaV8Ymu;l*gnv<5uyE?o1&;16B8mj={HzH0n}{%$fQ zG{>8ADst+}x`b1lZ!QdNB*!h9lU*5f3r$s%(&0BttZsND(@w25BTTl;Z=yD_6ogE( z(tuol^llvW`j#(_P!`Z%!-=0nBud5|3?5V}=1sH5@-ULKa3Ihgr0zC|l1+HzlC;zi zi2z1GZNifq2#8>aIS;otX$kFC+4XEz+k`Awc4wc;(e^~POWe?-hXY@%Wg#HY7pF_Z z5AV*)Bw6^p?Qw;^Z;wpbw3aY?BT)m#$qeaog5l^16X{JW#JC=6^q}wv%MvRd!ln+5 z0PJ$9DDBEvI^G`qDX!pQp$BYYbE^Z)h~WS{L(2aUw~%Xff=&00@+Idjxly2SZ5$d7 zSmMKq-y8eIxToFqZ(?MhB(E6Vp}L)4Gq{OZEpKU|f1m33$L|U#*Zawy5MXxSI^i*Z zcGom)r>|;wC(bH!@T0K>?_B%2in}(+8l#l8%`)M%!qJIFX+*6LLI8v`Qqx&-z1{W9^?P`b(X+!^?S$^K-_k5~u)5QQ)nK)T@c9L24Gnd&L+*4Hz2H(GJZKbP9< zx?}^Sj>VW#Tuqa^?Ni$~gsR4`Wz-q4D*tW>%8FeszCIF)j?^@-FTKRWW|}!@>c(&( z(zRu`yxLb~V0?UHym{xG+n}5Nx%@n1NZaZmb+aUkZR7Gf7)=mtt(T6A+O;{aq7>Xd z#2&hFw{MJeC@pKFsjrZ7ftU7r!rLG3@>}ZQ_154G^?~KQ#!WMRyP>ZdzMyb2P)32m znImkd2ypad6}|tceJppI*SXXLH0_a?!dm7-9H)jlU)vCMFzIbGH2${Xrv|}n??-xCTqdcByxx+8GvLWOJdMv)mn`K>%CqXoiGvF(L=>Hi9yJmyBW%!VYV zB=X*#pb6aefqV#1dpdn==jO|7efc4X0 z{AZ{8x4*~|ORrzscOdU~qVP7dT1}a&EF8F|M~nE6k2%_c!f!FIJNT)Fe|1At6{hFr znlg%E!`6(!X&^<+Y75iG{E>8RpKdtuT;=h?F=G(*LGvD-@!c%%n?{HwY4=aAz>1LZ z2S~5sB$`v4`8ka~zCIg&h5LD2l^hJQ_dK(b$W+CI8F?;<0!G3UeE(`Zq1dYL&ptU2 zyJWm2sDSPncs#{1?-F@vBk@YhHvjp5xTCm<@@H;fd8p zjk@OPt0BfO(;|0O15ZJj>cK@73@s%(h1ZKp0_+s$L;C3F5yKI`)&tulP`QNuKp*QE z;q^$S)Syo}`Z{vT`n|HX+CJGp1}glE7^E67y3PZA`Ank`!HQ>TyyE!0p+4{`nh)+8 z)dnn^%d~hx{@_ZLLa;mvrI$leDa7O_#WZ2VG$ zMh6H(M4B%fJ0DW);@an#K(p+)ViXO?nhb%leB2q$qy6p)OHL1{&k0v|Ld8qZ(_%Wzq|8VrtDw%4V?kIcA6-agj)c1T(q2m-D!M*n}#_Rp8`tDnh^8VU$2tp`t3n*8O8gC~uzyJM3{%((VXa82Y zF8J4D_N7;NWNTon_lM8&3>)+@H`;>@(A8AW+m{aAl7M8Xm{N@L06Y-1vhFx|fUkr^ zg{Grj7jpRe%&$)^DeSX)3*Am;@TB9L0Ja9EV0OUnmWAQj zPBi+WEo_|TuFKGPc4UMydevO&G(fgEbm&mk+K2aL%9~&ch7!nehzIq(ZFuc`S(Xi9 zckS%~!!;6pBbiE!97+5ahcVZIXw3St!woYu*_z0?8G$LTOHio4sGDu!<0v13l5jiWlNUw05LxnaubB8V4fUMdrMP}`Pu#h6-IS>d9i-_70?Y&Msc zpc8m+5_HigJ|-AnBkp=wLG?Vfc;8+O(eWE+Z@I3Z1j$-!26s=-;XUNbE}0Lw#5h%RtnV#V5=UW~yOo|oQPNCWFB zc?%l1(eng1=0{Z#! z>ZZnnR_5lIn4yi+1zB;W+xTg}3ONbYtyD$ik>1&N!{Nl_$`_i?5ai;%D z1t(^2V|1fW*%hM%;6c4~EBYT{*4xpIq{)L>{B({;q1t~<1o6c!0E7-rUxf`Qc7x2{ zC>_B6jzN-GT409U)-!8u5UV2Ju0?QM*n)!&}BWXd6!t2M-0>-wu{Ym zxAoW|`{E?x8-irL^P+$z*p=zq83N5*p$`NC8o~&ssbku^(ijSsF(zD@nUu62eX_fX zP=So$jaN|F{b@}N z&t+v-z%nEZX1Y0I+K*>lSb25ARWOhXAs4I4CE`LVfUU;OE^&NqbId+%BMK-Uz=I8U##)0YARk>g-udM0Nos2o0**=Uhng%zhJ!A8% zI=pZ1*zN#t2d+tXcbGBo!Mp!I*1kL*%Juz!q>`gjN1?^2IOr&}Qf5dc$BCp9vRAeu zTh=jVrc!CsgbG=sj{MYns~c;;=j;bAzI`@mD5 z*G9aNG9IY>BWwzHH|&FLD)#vid~E@{aK9Y&knVJNaj`$|adtztoi>>9>ht{>uadl8 z18Fp`hr`LOTtX(NLk+T!+;Uuu0^hmdSX3_Sa+{9z(J-lSr1G~@w?+fBa3 z&D2y_N!O3tXi!JlfImJK9-jygM6-Kmz;rbi$%OyyoAKYUqn_xAklMtaEA!J|8!)_g zVEF3`da&Rcxq&^lX~~-VQC02j^pc&Fw8Jo+*nCuAF@cuWL%HOuSLu zn!W>Uax!}0*xPQ;cx!ii^0^XtE;C20p&Sa6L{7j!7WY4WgO#JcXt~OmdBAeAXo=0Y z^-d%(GF|yys;R2uTWcmeU1xbaXstFXpBSf4k{57BS@2GTJ@P&q;_*n!o$&`|P}%E$ z8d|^|P79iP5nZRI&+8aSMTV3zGM~{C++p}DFZ_{?4K9*8iSX%QaOzKI$p83_HYug~ zDq}yJD;w;2&l8P*L|~6MujPakDy)UC1qadMjM=F{S zs7idBVx35E*wrI`+0pE%DWB&CAeGt)tex#YqZry!SXUXR*utk8n~b(8`P&fq z*|&_*!t|MVi-z$P5l3)ff^5G0!q3$8>7aut-8se^Iu`J-&+jba*Jx_S^0+E>reUbk7~_HJ>3rHu=$J7)++u36+SDvnu+eO_vf1JMjprA5 zXA<*+>I6kEIHy2EAeb#RrLqnT7cxXHPBk3*6aM`6k&A+15FQ3pD|a%f3WO}^&WQQR zs_c%eS#Urd;G3_Pxt|_O-yj@*us8mQAM4j6t$@$jZ*yM@6JF=gxX`Gp&$NP_S$R#O z2F2!Av1~2XgeiM4NRSxoLb6ez6O2zi=f5@0t$p(8tm^o*@-g)YtuPlX zU>$D}LL%RraC7_+7Cg`)^sjws1w@I(s^h?g!LyH9befP&pG^*rz9!Twq{WigHRi1;yBiCIXUj*Xr;-4s@_#lBVe$%NB{)tirE^<9G$}>xT&O2HQ zxA^blV0DdkK2mI(0(JtT_@gIeYAu<6=|B$eJVHEz29SW{v1pR-w`tO%2!m&Bt%o$$!m zyWLYvFh1nIQb#x62AyDxZIF*rO7VF*f6CYhoiNWOHvgj#MQwZwZD|RSsF}?PxahI- zW_0})XXXurl{>as!cl&KX&_$&#z`4sg{88m>EKMDR53Q3b~YHIn=A(WufDq{8)Rr|1w3v%mnY! zHxR4zGPWK$Hcy?+Dgijj%pm&|G9OGeyvaX75q6Jzj{~l$CF^bEQ8_P{CuVGL*qApt z;71-P<6TBEyDF)2`}mS3&L0vM1-WG(if%hD5dMIJ#kn+899xlRAShQKpq4bvH#SW( z3JI69Q*{G~%s?=>K%yWJFFef@@lopCNYGXul$u~t~{*zB_q-nu6Uq2{8P6 zmkRQ@*}HAdvqf}+##b^`ZQrG9Vg(vuiMiYW5xn?Bw0al~Ao-?X&I;@5+3fD|>4nSk{t=c`~@rzE^dX1k=WyxO;eh?^2d6#B)SmkPkxa+291MhA-ov9gRlSk zt-n8L?r)?!<_eI_ANzhC?H43;D|8qul~kW4z_9KyMrt3DC^uEzB8WpurNjY8$tVQ7+5xAF5I}sb!vsn&Lz_7^=`8Fn@txtjuTiIItzV+$-6Mz3>rpRnSPrZj+ zYECt=hT!};W#O>nq#A@>ij}3V&(I=BZ&kR0b3+0=Iwt0IMV`DY1VYOCvc( zOi$ENDC1se)Hj!2&Q{r9t@#|vAqL1_;wwk;a+QuUyRxbW&meIOB|KB<1&=-(=DM@! z*LLhSNdYCx)L6;lUCOzX1fzuAlI>6CW}lvm>|bpQ)J;)x_xXLH*RCzurml{iIaiVR z%^QBTd5qpTgO+o6X!yakVAW!giWgOC-;tOd88;iwGpo|b;EdC(00QWbL+nTnj=hpn>Gra3%6+-CLG`;K|~HSg`Y z7F)j|p#RysPZqvUk{KC5Dj9KkHKCK~^}$4WYC~I1>8$TTh%-9lVMfrEP!xb|iFL*q7PlU@(vd=>{NYwP5vN~5LvCP9f^DP%%E{89<3#V@UqN~I<3Od z`Nh<v2>?LA=s}JNd<$+_op15@&KO+IX{atI?e=54iEcU*{M6)>e65m7a7 ze!lU?J^4X*KmgDL&m9fe*-2(<(q~S-E8jC#?Wk!;CEK?#Yl;bmMd(3erCH=A8P-H? zY!8jYT6u>OG%D}e#=OXh+EX1z>9ct2@<_lt!Dg*ADhy3z?#p|Ty89{o{)2yPjnL|> zt(hB)=Q#7~7QNHW)NuPHxPzXwf~$qsiO)Ix>GHp}hD$EZ(n_#p!Xfo;Z*s|L^M(;6Jw3oszFfmajq%bZ-87jOl@l5p<7`~Gc!uugrc1oxgoL| z4o*SL_}2`ArKKHL0EdH_qHZOXkWEoP^*@XF&Q3SeO#O2M!5ifB?$)LZ4`%3Y)dt(u zj)OC57_w}~TtZo0{>#E|s=i&HZ#|o*#7I z^Y{X!x9)+&Q}&|guA*bt4ic2HtObP(yhxEtk;*3QA=84JA50VFEgLvyx>Ju50`?9& zGLpjPHT*;MU`8BmC)?(D(OkcwGA;0e1%fhgj5)z<$V-MkI&S`%LwL3YsbVtq z`|K*x`HAlf+wX`q@ym!=N5;L$D2_;nX=F9}8qB7w_L*{|P+J#oLP~ad6YOmM*c~%w zF+x30n!z>0=D6`j{^t)`e&U0ko_u`ENJaG@r{o%H?z_dei=n)pc$geekIxwzpG$j5 z@g;lqXLAQ&0ZMWIeTqz#!*v=@pd@4Q{JdWF`b_L`ATt)ayzuupz)~0Wt)qXj9 zJ8fLNselsdb_)5}abb5W6v1!K?(nTr{2Ey|UV4 zoQdwU4UQID!4UU<7e0T>le$th=m*nNZ&nBIcOWdNo`1{tPlyWxj*P>I>9Er~5nEt3 z-5N14Qz*~;>`sJ1;I#XW7}&i~r7twdRaUAd%N=0N%aMuqjTeX;{?R4P`*@$*dq<$? zkYh?FX`yaFWFu*fo|ci-+O6dcGjT9Plc4c9>?>U;k2}uJ!vk#_!dGfbWToND?|s|L z|8pauRkE>%T92_t3sYb=a3y0~?KkBG?*=p73_vV0%Ssk^`sWSL%iFc}Lsu`F!!1aK z=bA{CDzQK6(tjO){NdGj6qt<(|@b`DSYG;qdQRolp0=M=|iu1-+v7-?@z;K2PZscDaOBPWttu z>Epf+@bO9Ur(g)@b?Ua~&m!D+9+Ul1#|AN@dzzWES@EOcEN1-2zMB0e{%Hp0f33dT1N(TpNAP0v#U;7sm@Pl#?&4s$^OG97 z2nt?Q-X?o3tMtJXhFOqj&7Tu+YeKB~J(yJHQ4F#X#tJU(M|9EgqL5cBD z#by}RfYnow!EHUuA%X04Oed3V2`vjrAB7^aWhi|NTmMI)NPN#kTKgguTHmAm_S;#h z46o{tSS9Rb<@@w~#W&<(#V#L8*5P6$-#gHQSD5G&UZux-_V%2RIvOS$W}d54gO^jj z^{Ht7D=weD?7ywWpYI)##D{1PSb7#M%wLQ9`9ON=nq4fsJ{}aMJhZ}IM#CS_g=q$i@o2ZCMJMwu-Y&PE zUG$HveBBE8 zFo^EH5o&zx*TIY9sO))MDu+ZZM|$4NjxW1V#ynW8S#@p5oW6s$oxVeRLFrZPH}&6% zuz~}hQqP>gc%Fde*2EgAjrMVG#&Vk4Eh(w#Y0#`v0zISs_AHzdu31e>D-I>++v(;C zy}L&f>?acy3xFHv61`eCN>jFs1)ppKep>#peeV$*k+ccnFwW=* zwvSBsF(K54|Fm7Dy*z0`RMO3fD1Zyl#CCmpKo;~Y{osmBExohb?}%JEJz$dZ;8p%* z|Ff4JsgZ{leAJf=S%B6GkY*fNmSb)S!Emz5^;BfFTA@Ks>`DJJ!JkZ~;iMN!J7&xV zoy;uIt)?Z)^AST9YbD#CWy>?7GpM17FdX6nRG zm8rGUJ0dIB`jqUnhWH(kaf$w8YvwO|FBE3;sk-*~BLcQl-@zHgzJro1;`tkx=gijnIvKoO+9D4EY3GJnw?wmLqCMlS< zMPRAW%JIxGy4;xNczg3UNsEW{{Ge%UtRHW}UQ?S`{)=SRGlK@eHlIHErqtPOvwy>p z8&VQ(FUlsXE5viXBQ|zymqa`vM}@*5i0S_pQsu&e)KsDXP@HicoMqO=TUneee{E@A z!KxDHZ4rvL=L>DET|G-@@14$4o8Pz%UtMs;s41YNTEQ7ghlmY{<3>8%%6K!7NDi>8 z+=x_d8Id*Qqs8RvK^QizU;z44J*Cn6a@NK8KeHuuvz-v(w9yHC`FL-|}K}{3eNAeIK9(3tX!C*X?>X#2s4p)@5Askhc)O(_`QTWC6p}irJRbCD2>9?ni3(ISkBiqa zPB#GYIupKy-*;TzZOhK3%S1!0WH;U17UAe%e=nwMLb^lwmjzwX7pc+=G+a=Q-p~f% z_*q=YeZPq1J6~+ak}7|Z)KNoBcvpvDk3xfi(HMvjlaGQ;;|5><^CPf~&gy)jp1qD5 z+A#``tYigM$3A%v03CZ}O$0ZIcg&tZCT?oSW)SG5?X}O?MttDy*nSvd7{*|x&^>yi>{DPSFo>|+$=mS(ON)k{*PT+C znOB`JwEDW=6mJI12JEVfv61thtUMqxNdJ!@^lJd>T1Gxagaz&F+;c(F zf&^_rM0W5wyzB6ov9y}MK~az*gFeeO?kB-lL#CH;4Z;4_-mTC^aI+(f1CbAXPMtdS ziosw+W1Z&~(26fiuCio3;;>s-#YD}=Z#=hY`Jq#8jU7v+zPaH-e;q4~0D~h( zcK}$)f{Y}1MAjyOP`27Jis@Cz;h3|Py)gYB@z?IAl7UEh+v?`RZ0et8gxdF!wS9g* zz{*bL+chItC57xKfhUK8_NOVmQ*bTp?&iKS%OrZFG@g4U8{(X|k5;}8`J)2l12v6M zbl7)k+)l4S)$r$htL=;RE_rXutz8&b3|#Kk@6!bXxZ)M$se0btVd~Ri$6O3DKpS(g z-Lpg~(zYALt71%GXzM`)h$%_4GntLw4V@C)JZ^>^uSx760qCM$A-C=B?5SVF3#7d_ zrnI`AvAI2F_WQSN$tU5;zrtT%9?Vtt?3~(lIxx{(YdBSkyTZ+hgxbFulE;^<051YE zatlcTdH0}5RZ1jm)7MIX(*qW2I?f-PksHT=^(5dL&@A=B()jdWh1!spxJOg;hp}jr z1Yf}^Lu~SjAfA^Rqc_)1{q=Dg>i68XErvgzbJhM~Frm%ra7r-~D8(#CI}LvLh~LG9 zv%UPFlTJbq(i`bmU^@?4&a!sWsvSAVzf3L~n=3>qiF^}+&uU;-HR($<=J2VNDERi- zV()s%l{lA+<^$|u4!X9??pE>G8fbM5?{U{wAQ za5!4schZ7CTOEMzMbg5BL02q$?ma>Wp#H)o8aH_q6YfwR_+cV1@~QyN%Q*m&y(rBh zBAqHH+raW|o^*z(2VnS$Ou{6sL7mF7`xKKV7dOO2!ZBH2VbVegspeWfH&Ly#5|?Ld zp9|4BmJJ5pM}NnhMvA$J^p?%iQam4m>@zNBEH5o^3ZyC~y~SK2HJ}HoZ?A3%<cNDs!Psz=3i+9i{s$uc zna&dLli#s7!Zcdj5(dl#s5T6l`d(yPdYo_)`l zNWay9%Sz>e!4h(2Lu7TQhNEA?nJwm0HA^AD@Lqh5Kakc1K|cOKuXcbhXtuzvKzawO zBT2*T=XW+=ogQ20AztmI-g6`XOa(*Hq# z4sExjt^lSw`W3?WYi=mxFgQQ0FMjE_ebhfmUDkbr#+x6;U0ePtJIaCV%c81$sN@bf zHo7yL@5Bwe13w3fG2X_FASZj8o%$CNP6c(3r(eQ~zwZ1`h2XiI6}ayC+Qf4)xsE&sY7yy;7nKgL8bxZMd; z>5nljfa?{r=e$<9so&4|=K;QQ9rGVBs=9Xtl%(GZbp!W{9PQKGRteHYYUMKyKs!#Y z1*S5f6UdSESj^b3LtpLQsLR35?4J|uw62)AjA?%7-3g7R&1S57oKb>`Bw@9YlF8Lj zw+%{>$~7tE-;I>$%OnZgl_JF$AHIC36%GeG3&0U;ch1lwbH5{`^Ty#iIA*O;iCFFl ziW7z`p<;v56L&i}F(5TaSe;Qe;p(ox^)>Dt4UqMh?V7b&rJO*Q*JcF)vW)*8zfo%) zZsYBE{`W)EE1x`fGYG`Jj4t&XSCMS@C)j-jd#A)5uTP`Y%t{+~X-hbL5z{aDTsBX? zE+#d~LVdc(djDUzcGHzFD@3yoWsr0PqyQDVs>S8>l~o9-o}(tbwT~zXhe~s=K54yb zeD;;nrR^n}etUj+@vZQeetHNx9Lx#8aL+w=xkzIQK>-^ zh06T@6`j`cS*52T>d<61HRBL)W|Gz(RhDR5h+kj8Ywu-H$Uw@g@gHML)-!3oiu5)eNawX}mqU)Qky;kofZVaqd^mr#HUV%tn z&@+GGJw2>o*K?D4-1K>4Q3RvHeaA045r@nNd9&Jq4e-6oT`pU3{Z4ObcC|g+or&w7 z#EWiT5G=4pY%HZfAw$YfZJPW0Ec|zN3gBeT?5sA9L{g(7;qpONtOJegIpWyYnAlJ3q7G_iYbN|1>NuiG|NV0Lv z#(KB1j>WII62^OUN8C8w@41`jy}q!51tVdb)!5SNPE)fz;L9MI^H6Qn8vHjnJ6R1t zW_b3Z_{EYIjUbLMWqLN%V@?0Q+Zn_fyW=EegJ^Wjz8lll>MIAP3p3x9*h}WQEj>z} zam$F;4q?~mzs)r3z%kEXe@XbRJbz}sgm5*qMrcbkdCdmfb0+Jp8u9z)bbP0aPZVM} zK4dD@dk%j~EtoIZebfZCB8-x#&ult+!yt zMDLC?=gh}P)H4HnS1r~sU7?ir7{5^j+|0@?$6MmJt|Ge5f;!$~4yBL;%Px%>R>k*w zH@N6XK(u%y4x|cj+!D3Maf67BCA__mSI<3lmYmLW0VuJZdi{W;iDaI`;#JGPd8@}xHn^j78PCrz58#d&7wZwgY`nX|3fc!k>`wh78 zlbsTVD5|3`hM+Zgz~QdR%$Kn>#Y}~B+z}W$YLEvfU}!UxVYkBmgo0e!Mdam-cvO7` zegc(&pN40|!$UsK$TSuQuN)sby7hOTwJ(WA7X4BrRed3Y>?`oWqXkOi^We~cN1-M5 zQFK$^{ua&zO8K3FD!JT`J64oX*ud~Y&Al-B(C%@iBqJ0<7$`>L;E!(yO;^%kaUr!F zFXXn_NL*QnTUWLaicO1?&pJ;?aQ;OSnAx4m^V`EFGG9HE+<8;~Hu6mJvSrIpFJHCz zfGp%pG+%s?;(N%sJ=zN6BZj%0R*nN1?zxfEC;7d=_p_ZELQL5lSIf(#agWzSPw;PX zQ{{1(+F9h3Zemh4@m2{&AU`_Csl0gCb3kr*--i0S*DtM??iE>nA`a9nZi-)ecsb0v zV>XR&I~Lui`S-i|3Xqq?T=eJR{G$y(U7^;vzxd`K0$d)<1IMw0yvnnm+d?kuha&c2 z-|@sC7ZL!1IDw>y=^k!K$uMX`loH#q1C>}&P`G5+k{G)DhN%L2ANv%VK7bYNn5cSW zl)$E*e+XP23!Vw3V!LPPpxh!T24SWe!b=|xKz5Vz)So}Dt*0Mxr<>(?FL&Dx5tXGY ziZ4o9n}km4InojN{q*UR{hG(@Ib49*L($W=5C-5_nd~a{;dpSl8!WOuwDW%|wf5$4 zmU?5UcLyBgXU{zzSn29_m07a7!0NaCD$>7I;*4|n$~#1^bY45i=|pX0K;%MU2P!v9 ze(N;@))ApsGP4ir_gw@aSqIRqeDp*9wO5j?IK1y!Git@#K?BDQuPN@$lH=`mwS z+|55UV_=|MMG4WZw)OqF9f6yxcEos|w@9cY20T6FiKv8wa-{a%WN20fU?TCUggF_= zUbeYE)PvqzOF>-Gp-!g`34!>F81*dRU4wX4C4BmBZ0X?ZA;gC(jAI?zo$Ak8SJ%HU zf4r$v%g}kHo%Y9+ZvOYvrT?Tj6ePHa2IrWX70GUsJ~cpnmDJT`uDh1GP&Bcg>f5Bz z!TU2A1%6z`fEmgV$BK=iO;t`v+y(nV0{Ahhh zt06@CzQwWlHzNWD6taQ7sca4_$Zz4v5NFFhOW2FND~Cv1ZGs0xql@~ME-sP2^lHsiS95W@O za)eVBTBf@dYB|$BuRah4+y*$$-?-%X?9}&%1Z8+#RNQJrhPp7~f3xk~rLBGfDRRy8 zKh7o0=s0^6i#PIl8oT^t7vD(KzTK8bmgDrf|1i2K#MEath(MSUARL;B--UTPcPKPl zRAZVXk51{57$i2JvMJ*|Oc)5pU!vIh9a?)?QTXM3WvFxUsMV^N$tA*aTl_Z#liFTx zJP7ZcL7NJLA|a|Qb&C#XE`ocQ>jO+$AKv5W+BP`tkGJb#B5_Hfs-8PLhhRP9CUIJN zx&bTE{K4n+$>9PE(GD#FZ{QhMh*S@itYK-1d7OaRAlfB0FUM2*?9?sW^UhCJ{VpgQ zTFScNT7XBvC-Pf$Fi@pirw3%mqvmSg*Z*)uu3q7%H=W+{5|{WEEum()#kbh+ZXZ~+ z$UH_r=ic;#EIC*@#w2#7q zs%9hIVrswEb7%^{ftfe%++=v-MRPNyBOa`MYkJku&+mVuSZ{H-B7D*?_<@R-O$mxQ z@0GxXI-Fkw1RRN3(Bhi4rhp=_Lm_!-()3`WeJk8X-!{&`9KneM%B_UWh-zn}iXKz|n7f10y^KM(pC<01lS(23<23eI14 zLedrJVh|X&67$n(X6i=n16xzUh#>e1)a64@YA7jiAgrSVqw5?n{^lK%GCBDC4#94!q~;00>_7EB9@m_nShhzb?N+83LgPPZdHS_UPf)+cAXUt4{%MN{!MF zBQeShnr5rDbbA!Dw4oLx$BPd`F$vO{^KAeYfTWrbYEL4&0sf^EXMF<_e?R_o;%>m7 z70kZ#Y=S4>mQi0hbXOS{b4y|7^J){_r#-N_LPKkS+D7#m;D^JIr^wh?=M3sAwqcy&IhuHFHhZW~0>X>dA4 z8Nmr_UVp*9oCn#dQco8p6GqmdbG4}GGUuM@9_*&qVZVZXq#=ZdUH=vIB2 zH2Eu=K#vFHlGfeE7}CRkOFCasS9@|`($1qG5?S=nAfCn%m7m@OIqeNz#*7r!5{i&| zn3aaW#ocCVq1ZhSD=A8c$&81IPw9eo%#3;viB#kW2tIMYiSbTMdo+LmJyht#P z70Sn1Rw6l+zXcAZ%!TYLls7LA!cVK&&v3UwI;F1juRhZ?ovoKd-|(Q9EH9SvFb8=U zXg=zhuX{vM1_&e|_AIPsZMhj6HrYT`!1B$3Kfl?NhFF8=CGCq^f;bM?lvc-Aa>mwG z>zyo$NijHc=8Ut;YJ1!zN2ev{3NC3K!3EH9lAhf^tm1S%iJCvnRf7#Yuwl8#%ed?K zD+z@h1M|i*)HBT{2T%Rg{kLVpGcsOfWxlSfTT>>#KoD3R(hYb!LawwzI);0juq>%G zG&VYzlg$fy4(4H%*r}J@*0#^B$7YC|Vv^YdSX44)eD2n#=Rg_}SCe z?ynXpEn8)t z3j0Tb8?+_U{e|Xm(laqY*jZxn-r)ma66Drb#)EoU@G)O@#F6WO6jZ2gcVJ+Ipr7w4 zpNyL2>I~ofb=m1rzr_*~%evh=6t6FVIGm1@&CGLIP3sIf=k48NPz+zt8-5|^^~|It zLr)qHP{%CaT4b#$)5WN-!bslz3!_Z*ToY_0XkL*AE%d5*l0LR;R}Q%6fb8BEmzG3) zTpv-e^ny?31o1of!o`o80(T+6)#C-LA+I9s`HY95fI@+YOeSzj2%?a{`MhFCiF=H| zf&0$pty8NXxQ?VRfxu?psk2Lo^W7v~Ma%&k3iWRrBWExoKC{DCcO}WkgzI-#h)7p6 zCu&(S4C?t#!y+KPs;>S`#f~>ZdY1Xa z%ZitcBfRB@*x#h9e6dmUHmBh)`#h(y?6kA92D15mG=ZvCw{hQq9u) z4Q^}urmhm1zOjsX<{{)Bu-jj?gyBHF>t?mB3GBrXGe%lcvxqYk3VlLXCwhyaP`+sB zt6t!s%!uU}v{2`QdlK4d{B&+m^?o}*2CKH5K_<&1Ksa(CK`Rr~8f{I8hjFkVd)+y} zVubE~yxi?fw|jm){%XZ869pTa!}%@^2gG2j{meU8>yMx}dB<(By#01@j`tn*gW6>u zombb_-<>^Y@EJeyd$zk6e(vBp$Q8)zH;a-(#C9N?jid3CDz2d`H`|;_dca0=*i}~E z>cve7g=gs(RmUw=scLTH6^UTK3eU8+H359o{9Z=Zn+o@6s}+qj;tgrernp3dl z>)ulmO*Cy1V)b!3$A>Q|?-#^}){|5W^Tc0mv9vx^S{nDL#dScZtMPlA^O;R^2r^O; zJs|t0u6|2TiA=$v&>X5+_M4vVg;tObo-Ut#0Bh;rfK8@XIr$CQ^B>Jt&aL$?l>e<{ zMYn4vJv<^K^C^A5Y)F!wfjb%9vLAW0_OBgk`s^luS^KaW1xL&)Q-!RM^sw-Hw>1F+gP*>gmo)qpRv`wm4MZL2bfu<+o&%P2iN_k z`#h)hU~cIh_BDwcc){%JlN6HQvT{}c^iIKn+9zt0^>b?s5We4dMc>$zG|rXWf&&}D zoR@9eA5RuyZYSAkjx#CV+?uuBsODUH5^oBlV>-&#=dAahQJqHWaQ5x;nNk6kQK;O9 zO@kK6M)F4DE{ryH67a$dK-ZZH-`8Y_DH*mc|Yuinpsl5B^H z=H~35AS2YW_lQ7rqnUF`^(j7R+^wK#rx`6kVjHaV10>~A8Y@@h53zfgglQlq17@Ia zH^fetp%e)KTYD08+6f+{t|B@z8dMVYmx0~=@#89c-0{)slaDK!F%lBDg9bE!lUr5S zkV@a;TR!cVxT)<=jE(o5C&XhW5kBhfWT|y0{#zLIkK0zIhU1gQ{=9F!9oX?CR{w1c zy-UNrdXd}IQ<2y6yQh!1yhDA!qnBp7ImIWOnSHY)y3-PJ$-O}6Gftlod0n^MDDz>$ zV!U}bGF~xW>fNH>y47i%-1*7TbS=|C!Awot019OC&An zFh%i<0u3hfMiyRr*`l|UhH^U`#CnqV=g{Y^;|p${MVkUfuM>5ET=P4(V8@7Di>pT4 zoAnMK_B4uQ_HoMXc=9`rs;Qhq)LocY`VE6G9%;fZJOUPK&$#BfUwvjsVN@Vi^5i= z)DBdo5cDf!G{dP%0gc`;?O&i-NF8S9!Ifo|2P-G1kmSf>$FXbL=b=11-MAFkG-nR~ z5`ZE*e#U0X+`k;Qb;w!j=8loy_uNa?Z{#NL>c=Hgw7C(AaQ2YXTMt;bRfnQpwD02< z>IUVT0@|VMNJYb@6*vlI^;l;l$=>BPv0}#sGv&e`-ngcejw=@_qTHVN&C8k+*F`2j zyy(lQJR%MVCY%+k2}yx~=y`lfT0Io=V+ij}1eSFJC3x%933Cc{sp?ce`a?ne45 ziD2hYhv3BYk)D$MG?2prWw)V@m zUEX)#w1a68@)uGUiL>i&&y~RRYfl=8a&yIpUNk!)I;vWBK+&5y*&&=6_DV3K=V>GS1XNbBblP;I~AcfD2RC}X< z!4jq|!f@2dB6bC24AC3f_;-F{m=b=>sN@~BbjgK)F`^3mK(0wd6354HWx@Kov28{h zvlA6_q&1cru6iOdnfa&Q#%w{tryBY19{r`KMvn}NmJBKO(U-t`ZD^;p_ayMGTe9GH zx>_w{&{Z_&yU=UbuEoR~o0^-Sj(vYtgVxbK?yGRY^8wMSWHOav_%j=wMO%DxOOjpa z&4DRJ!-y5C4)<6D&h0oT2y*a4@#&n`8iS_~NTQ-zq zdfXxT>Nc-N|1c3z(kMvJI;f#5`A7O|oTyJ>gNo4IxvfkMkU0YE!C~M}9NkyElqg&E zdtOYkFSLCT6?tU}O?mA>Qg%ug%CTvg(yJE#>ECKw zo59kax9$}z@s+v0>>~x(ZP5(@doxz<$LQ(ZOP0;M+u4O1eL~+qt$b5kuP00!$hh=m%}-Y9_{EDwE^Jh|P_RmE+ou-m zFB|{wG7Wx#bFIM=eNGRoEJ?f}c#@%?`|`RQy;Q2ivvf5JHLESVOQT@_o$_Ty25=rv zLPkBQ@mx~tg)PT^?yxO6Jy4&j@a8P4Rd-p_ip<#eYn~#nmTYiVy-(}*P23c(`&&d7 z>co}z4FR_!9eJ`wLDt=_n{N)Z3~;HY?$7Z7_mROF%^?hm_!U~8tsyK`+B-^ zJY`DDd4OjrMskfK>Ke`w*2unEjOzoZK5yW6>VEI7-JFoUpw~%6VD08Ei#2xm?1|`F zo*_Q*NOZdmCoL+fY!)@kKI88%jp4&4wsf6ZVSVoXZtqRgE1lo3Tl`F9*_lSW*0vd_ohQ&-ZgjHu0{gij=)pFNo zn-47Wy^K@7Y3?>qpL=}2vVOL={{VlvR|JeeUm46|V-7>qnw zkJFQFTeW!e9dT_H<5yE1GEc;Qx^sEMFllu02qNNDZ(UaGWa@L+;0_*CRDFI;ll|$?^-~^8X>a(k zIs5Z&@Cs}@*1kWpH%@Q+v(3x5L~pw4O<$(9<}@{O@qsIIQg3y^bE7uYZ|m8qcKy49 z4?c}2G`C?dOW(H-9tzQ7y%ZEK*_(Z7R&MqJ*L>i)n2$&FBoZBK(ZlJi=+TMR+PmXm ze#m;~koBW-_k9b9;W~}##904^MedP{b`_Z-;&F7TL zVdorb&**gfDV9O)>JV6#qpdBjmA6P-NcvkM==J zSx42kELY#M?BSV5D`YWOyLAn3Ic`rV8CBcuFL%Hu_T4+%_OPiU)@L!+XTJCgh+-)V zaF}}F;bS${mgKCxr03T8nVtHl1uFn-`e+AoR3bY2y@OH^)HD#(L5VWDhAg zV$JYOd3J>beQv%?{4In4@B&~AB^Lv;RsjDT0`qgW+qM*f_Lan_^k+gjapqJ{c&!C( zTD95&rSUmgzrR9MP*Ch!GPHp-eWVUQDiXK;UEaDg>fmVbjXL{7q7tItb#a`}*gv|A zKWUH~yzbAuuDcJnq9QgH&3d$W7K_>wAG+)S)#5K6a)A#l+EPG0c!g)M!d=0~6ln`-~MMUnmVbKPJ4d6(Ku~Yb+P6^)C;77V@M)=SOJ2FkCat}Glz`IEdSbQ*Uo zFR!b7Af}rIoAw@hja8LI+aM+eYC_~KpmR7z@8>`2v7ZC;0QZO&{Q*lrHzOdgy326# z2iT4m=NhMGN*^kArma6LhH%K{amwm4kcOgjA7eWdv!(!cjhEGa8hsPx@OsG zF|3^G`^@4lbB}eX+T!qi4_qZPvT!PmuJ%Qj=f&087K7MIJSXvL=y{@(4@=JrT*@$L-3* zxqt~aJ*nw-uz+ftz{!njWnR)z_ORPe^ITp8@i#sKQ3q=1=l-Ez6vNhnfF00kZ**(y zy)5E2HSGq5uJH7K{TSX4i5~C2GBodBuVUlR;Z`4aX~92bo0~ z&x6^>W5%SW3SxWJsC{6pQI@=i$#621KdCKA>1Dv*)I)3eidppDNAsMa^k2cC6(Q{k zv@uCz>%`}EyJzB+sI^X&;$DIq^o;B#jgDz4*~ORjc4?ejBGSLcz?Ev2qhuX*~6Q0J5;3Miy{y@k8W^ z41O``@=I3C`hNfJ4uFDQyIj6QLoWv%k+iD`Jr!yfB9Cs!{&$l;>of2;3FQxFU~IJC zDFCj+kdim??Q=|zCA89$K4!=>PJpBr8`#x5cndC1%>+i~11bj=KTa7z+-Fto#}>|V zy-V|MoD>!eg9o?k9<`r^dSHhtwUL2<%;eWlNSQRA6;eSSu(%24k^=9%EO|cFITZot!c;Q$`6-9r^M31>HQZQU zA>Ol06C(RWxiZ{>@KdOr&P-xc^k-`Fh1PzS|Ne(;Wdq1o=KmpEkt7tKwTIWeQ(AKK zOr&g%_=k1mGWHN4NG8sC&j)pouiDK(=?xKi-V&7F+IYCQW{a|fWA)DCF{S5!E@TdI z9T`^x2jeCAiUEC~&&PKX^cCTs+9IF<byhJqJ`(&d}m*aNV?lY>6z~EUQH3w^fS)A!W_G_)Uh36vdqbBt6ydzgggl z9tS}b(F|s*sDjzBnVuLiIRm>`&?+behOxkOCN4`Zsv;fj@@xj&t5M(Ny>6Z(r9FqU zVwXYN0TIu0JR>-&(w!UZWlbUAnFG_~@pv3@F%!FOQHR%$k*}oh8_Q1lX+*~DSgI$x zC9VB9)@3hyvEk1xlw0aKCP#nNuruN3^k$CAI8QuQr-|iEuIzs%Tb4nKE4)Xc>K1MqT!Y7ZS;!N`B=Z4R|YVzq1Oa;Nj?fOL9Y$L z*hA-L8NK8vF@f+$p@YH-6IsD$XQ$^uKtSO{)W;doS^yWzM8Ni3^bZ%S4TGu5j?&|_ z`Md8Ivaz&_@FDWZZa~)30Zfgifho2Z+ouvWWx{TrG@9>&)zz&DD$Qih*+lk-Kfv&& z2bFanpyLPnxbLzjy^Ui-`6z8GENjV-jQz}}dRt!231FU3Bf)YF+d^?Z7MIFb=hU9M zy5}}QoYU+12w8~=?Eb+4BaGf)?C^*fMjSFRb%@}2`8_>uMs>(@Iwf(D##O*_IFc_@ zl_+SD2j(4_P?>#mEau2n#TU*__5Gt&{YDNeF~t`_Aa)N7Klm2b&1HE>A%vuKpd%$p zb>(X@`GB$m0@ZP)Kk}3+3#qLB1bb5~YoH<4$lnjv){q{FSN7%2RsTU&2yT~W1@{OW z%@Md@5SpPQ`~M$hX95o8`u_1DLeeNjC8HuLNm?k3NhM8L(q`XMschMev4xUUQzWt% zQuf_s7nv-PB_rEp9qWv3W-w;v|BTN0old9Dzcbf4*O@b1uXmpJS?=e#Klk^WZQ4kw z(lRHaupq*x*chthw3OSwRfE6eFYNBZuh21)OH+RxrPN>a{<-T@7XSI*ZUdlO*}=+j z5Ip#pfZt(3L*BfVr9slN9VdW1R{r>_0+&J|vey6c zyLk-HxdHmhQ;|W|iWAn)p{dSz1KMAsmxoPX*`*BLUwmU$_V7>os%q^7p_r$bICj`) zdR-ZFu&`BhIRpPwY!3^RRQYh{37+>KIT@-vB7_6Y%;!tfI8_da`-Ck53OT$eO)o6- ze<}1VCWX}J2-3?E_6uL;=uI?LM7y+u4mI{uuXDE;J29^!Yq(skKaOaMV2ddMRvjct zJ$C#Q!3y6i@CSlb2|3j{i}k#U`ftG9%bLzkcg&Rrv=4Uk!<89(?(ECbzww~?*N^;F zbpo)7(z@7fsgITt={4${?Z|+KGFDPtB^VSB3#mWkS8vrgoIlvNEgBa?*+o zE4TQ3i1=WFc(le6=z?A~Q(V?(?H~KisvBOY~rkq<=XFa-cW7;A5($_n?e!se0 z;&jLrN$BHZkq;3x=G2)GuJlX%4^R4DvYro~_~lAbcwPlm#pru@9trhS{wR_94t*v( zIx8(@8T_Qpzt41u%|sV%62fMblqLo$s1a@y174h6{tr%G%3Fj6Vt{C?Y%$&)6i9nt zq-aOOn zC=qfP6vZ5a&R@4m>T#KW#dgm9c_ZqmE5o%HiNJDyTJu&8h*y{$d-*R)cxE9GBpe zgJ7I|59AQWr9kPMOY9)3WHR^-Za^ArrxjDiaf_0rDlNE=Z@szhz^(>fNmmb%%xZrZ zf97W3Pl3muoqH_PSS8m8o0-K?nTf2WqCW4jl=5TVbw&ov)J}L(= z(wS{jEr!0IJK}9QtXt0y9HQf=GNP7O`-ItlYag&L7W-5cr%5UV+P)<$KXmqD6M2-t z)Pk5aB66@plYyVJ0FP9!SLVIyC^g^(V%wNbn<}*+F1d@o*PnDJ>hm(0xYuoYSPU)9 zXVOy4bQDeE_5;weNr+YAJpn3)e1&8_&+YV}t2qI60>H54#g}B3%~Cm03nXF4SLcoW zN%@d7w!zod#oG$3VV{`C|6(cnTfDpg%L|-g4Na}`Uc4#;Fr?Wcyhu?MAhRB%lz=t8 zZ0-&SMNAF(8%D!;ll6|N;CUS~HkrQ>i(kt#-*-H9KFC^c`2gJiC+905G0&uvc^)I4 zm$b5lChSKowAvSK@#F8~zRop?5G2MIsLHxVZJ8;6%pahEgUb1#$qmsofMj)2@+QV# zP4speuynYH=MP~l!VAOmzG=h?NozwoCe(!LlpT%_Eqv-v@py2F`0>ss{k8}1H(1IG zb)@^CR{d=k@NW&l2GR&6=c?k$4_ca*72jd!zmhI>=FT8uZhczWBU)YB>e~qG%&)kt z_te}+Y}9*a7O(l*&A}p@Im%qKuh~V|vq1)s*7@f-7iHX`znTv;TyO8q z^im+<&ol#FF}`Lf3caFuh9p;S|2IVf8p(`KIaVI7`24|rW1adkyQMB-j5vVNb=Lw_ z0>I5gY1XU(3bE3mPx`>U%N<&wf=arZIwqeH`DGLRHrL7sK3P`{K0`i1BYu7U6~P^x zP3bE;^bT|w5jOoxHQW!QXL+j-*75c2$$Mwg`=iXTaK&x_sKK`2RMA@5${u4^UPLX# z*+o#W>IWd(S2Vbu?G!#`Q}#_PoH1Tv7kUV+2e}VsbSPoKmHsB7uR$o zi*Ncv)OtoKfguK|Fd{J5DD72jrWMGMlDn*moWTOxJ59ev7JURb51=Kjj4)OQRIAQ2 zP`{ERGy}NCEo7CCDgY8;$4=qI13=3xCv>Kj1OzDL$)L`}QAQrywkm6#2+#Am)xMt~ z6i5WWY^Q=+_Yvf?2Wl+~#F&up&#nJ9LVnl^c|t9j@8dX5>2<8oZ@4R*+0j#NO;vQL z&rqP^&&Q^f9#u$>r^^f#_7qaqZZI}zYA9y0r|MuFo3&DwKH9};EuXb+gy^-vaM)y&WK|9`pQDPOWA#TUGvseb?fGW>8>MxALO2%5Bf?sn|-a z5@n_l|<^@3d4#ANj^u^=fU12AU2%<>T3)TD3#P!4OCi6vY+=-9pU) zcqp`19RN^YIIr)hn0+WnC|PG=CaeCOy4n{qIzrWiRKHNS5z@C7tcZ_+h(uL*@-}Fo zXbKBIG|5l8{PO)L-||ffGC$cyBv3o@XyZ@O z-99V^#6wfcDta#_uDjE+r>WfJl2Csi0->i1EvX3YeJ=F2xB5nVqWwivIp%D`tbVzd z)eIa+O|S=6VQPPN@4Za%s79O^2@sE}Gj&WAh4eV1#HiC|Hr(^1oA(UO<;8b&nB=}+ z<9^I3b>aobO%t+;K7ZOammAd;VZvwmeLW8M4v776jQ;;mMozFOsiz#lAM_gng?YeG zj(Ip;v_h-v%=KeNdUKl2$Vs)O^}E z-l=~}G&l9*(Pi{(usQ6XeHyC^*6V-_#UVCY6}7wAY9;`M&5=@5ya-sTG(NJQkq!pv z8=^}9b=CO1!sRNw7Ylb3ZJ{KLEMU*8Eaf!T=fL1@^QV-K>UFLJbI+c9bT9rwd#U)T z9tiUBu}wA)TyU-pJZ~TVb{`@7<){~p_1+WMTevzFbU>-R;R!=7PnzWHQ%|1BHaVi_ zsx*9d)3c(5R~wdC?vo|#1ur877Xg*Md0XAQrF_b?evrh)m+cVJv6W$`H+zPe9dSG64NAyf;>Jzo_z$>17KlOQzQWPz-9Q3fEmQn0V38ZDs z(j%ng6K}!v^VL7!BL8HZg|QDIS0@J7Wos3dVcYh*+Z{S;z9%Eb_Bq(_SqG^p%b$uJ zOT$93_@)Zmw6sr97dh<>Pd>sGNF_U|kD zo-2^PwC=Ooyf!0m#ldy{-x#%{u%AJ-A<8&=wBkUH5T9poa-*K)_z`nHLMpD59g*TSJ- zQ@_oD>T|}EyMCX8p?oktyVCtM>Wyv7$5#*4udHkHcQ#rbT9IdqPt2(|azIebE49K) zy2)bnG}^POVIAd(w>dqhSA!O5ixPg3ot1SjUA>FbHtJ;q*U@zT_s%_ii+p|$g}7oe ztvG{MP&TG>?HiR9%uh3Tv?6bi1N8x@Y5tinR`@Plx;P8)G;vgtimw0$M}q4h8lyhA zgcdhWcg(i-^?5965&4f`qXV5hyF_R!KJ@atwWurt!vqa*>hu-_$ya7-o81TZ?kwIl zbTUNsvg|3Jb=%cGCSDH`cs!>Xn;ouiE~|iTStYoMe+9qwUz{mpFYYvH15OZ3iWELpJKwb}_ zXuYb}*UDnrgeq#H>m;H%jF1Pt8_qTP66;_0hWV zo!OXkUnSLuaiHx?bp4+7Y_!$cBe>amGt#%<&?s#=$XqdV3n~Tm-iMm(P405jZ$#ksO{=?i9R;e9$RZtM-;M1{M7XpsK~*N z`Fc&3O?(@Fv?Qs_y5{m;NT-G0;Z7_9f?a2HFr;y~Yr_|7!{60Ey9!?=x3f51?lGj@ z`DAIaaM<~SD`?Yq`80_Zt;~VvM@p`l3C+JF+SU@UK)$liBmdZ;gmuJ+ZIo1i7nCT^ z>2eCCi9e?^ob%!8$W_sj!lOa!I9>yMP0XBs>po$NXm8&>L(b5>*yMjjMv${R^WrDG zX6`9qBnS^wEi3n zKZ7UsVOsd>#?72p71>#gj2|p~#{^rm^0Ev591VwZQ{|#sH1?ljsZpqA-IZ4v3@VEvY=R+&Y$~T*E8f4V zqye82{XC&~10G>(zTsoR9-q+0-5WLqgDH}cKUbEfr8jk4KR`;|;7p5jRDLJvQK>CQ zC>A$rc$KV@LWf&(L^*}T&o(iU08m~xt{sxmwK=it_MZIJv1S5-728Sf6VHC&PX0HU zfkpPd2OuT@C}!7?E*y5-ncL^kN>dbrqdQ0LU8RA!n}F!X+eVaOLh-HX?ch{NGxgyS zN&P(G$;O*yE1;_dH@AN2l2E_lc6N*A+NZJ7_dfa%E5$T;<5zB#Kic9Fk~lCSS_ra{ zQY#%eOU6EUZ|O0ry8Q_EttR2;Y}kdigiP)sk}@fS9u#k_`-M_fI8kM<;vA|T)EJHG zHOAgrd!}AypS6~x)XCMs9fp!I68kzfmTR*Tbqab=iFQv(0}8NJ;3wRVkJ9YLQns+a1R>O7nV3Y7NkS z%%Kw^-Z`t)5LgenoR|K72%d@ih@bqohY~cs@w(b36F1VW)xL46bCTYy4)HEhSBy6W z5GBi6Oe}td%6k4*0E8>mc7o&3mk-Q|UI)!fO^ zMSgPkCs!69hiIbDg1SzK-sFOC?{rR+JFI;7cb(ze+lcL$JI@!NX@l%_{wNWIMs81V z?d%lp>kM24f89v;0zzd@G9&7(-$MKyJn6`R2gN-(2^6x0JobT+)vyD~LYPIVTkC0c z6%orntb4%agw)uljSoVjm8sENvCKKS$6e~wqp0^Ey%nT|1(3sAdn zoEw=Z1@F~)rqMXQ!yag;q2~AAfh%cskE`R)qdr)U!B?7|^_~SCW%#(x8V|)4w3&qi z9U`(8@+C0-O0@>=;0XEAo9OG?103$1Tvwsr>SXpf%?-8`$~~f_<`FIFChIBcw#O44 z73<>quj}-8dwbDmxTE}a_MkT~OMyz`r3waVJ~x~L66-!dI|IKuiq@v~AN8a>?a6bO7_AVe9@w0S*CM`94jg6^Ou*OM5CLCOOOnZrR`qrwLfM&FprD z{2+zG4z_{$NDNY!#!xoxegSK&RJH?E6EAYvWL7%bz05m|@&RSqSQSRhsg+1by?I9H z4>n7&)O7!{$AN1%MS_T`^^XH`%qW1?%=yhkDWi8Z*|wV2UM;qustEfX>fY}rEYg)b zFBhIsRd|Uy(9p@*Sa{9htx46YV_ZnzXNRs!uq3C)Rnu;1q~G|L??Wv*f(*>=E~TZZ|la854k4T4d1G5%if}KU2yY-$21Y5!{oXaA9vOX=6W<>)#F zU!^ToOhzpAT?Scom(`G|7kW>l&x#gmn8xD4nbD(TT8Apugj?67FaIEGy8x$R=SVc#fR50HQw_o0Rk~iWImzt=Bc`G8F%c3iu!~fdl zPrdz;e8>M>c>V@IVr^&VYnqY>A0h&}cfpdym4JrTjGn!A`4jo)o=a6|CBmsVp!mX0 z$U&kPhtH3ab?#}9#*+r7NkTq6kg2fDIL@=(RYTqc$_u@v_Gjg022h$Oa~KW)ttI+p zpb9WU5+b$`$nMv)x416#NM@K_R4JHT+=hw0$e?V;q{r!ehJ)zYXQH4KOYgk1PUl7B z=kWs_MZ_B0Tw>69R0obd5rd|U`eD)~0ICPNQ<0_bWxa4qS^8Tkk z+1dW|{6Md5ISB%338OshIog6ixOTxj2emY0AG6*h+9j2a++R$jRQO)A8vgKSQ%gx3N^V^hunO-wT)27QSXIBHkiOjt0k;sz zQRHQgr4P1&Q{^S2+TU88XRz;Yd!mz*eI$aHPqGJ=?y>+I7fL=Nge?msE3*YsU>U7e zO_UO^XMy9O>e#Q$Rj3=(J<`SSl&VQSleQ{^H?ePvag>Vp5k|b6&pN!@EiDG+U{%${ zFt+>L&}l0i z3ByiqWioAfa9;Drf4in11%rz`ZLJ*?b6UatMrn_anl2%vod4L zGFZZ~Srm9TtR9Dmj@1*VZ&aTDcQVV<-HjaFa`2Gid0gzmkvySbfsMIkEq0nAu{*Qe zzw{6KoVEle3BT9z>Zv2yfirTO9@wD}B(dk0ifu2ox8J&vbeq3E^>AU{{qSd--EX`Na*~lX)_>^mX6?Y~1C>$U zUwN6+rHadJ8#wd@T-o0`e$~u}$dT?FFz+&4IrD=CWRQHPxOU*IlEZzG)}UGd0-{R~ zv#~8rjJ6s4Bcg0V>y`**o_&mN&b!d7B#^elBYjt(S$b%ez&4JLc2Ha_tmCEzld zW0{|TY>PPGGIuo91pS5`*~m9T0XA`E2O#$>feSt8g*6q?qS|iq0o1G1jsI zm@$d`{+k3C3eN)4W8o@T72xKfT2kDO_t$jP-FUg+(s8uZbT10BhWwm~wEY{3xLk|< zi=`dp+2U11x$ls7+LJLadjQi=G;+TEmTDo_haSnRc89-Q* zo%~lASS9j$(~@DUtemM;5mS(~=W6RXknp1+Cprq}%x(?RV|4ibsPOuy&qCGA&Z5FO zDa?aEgs^(gC|T}Dm8#O7F+bVIaYIVzc<<59nn1Hv$j6G zkokGbI7k)>YK3s?)=+hN{K)FuH|ZGN&VkHcO+wsyOxn^oP8zYW3j*eQ<+5p~IZ7UC zgix430UjP8q__W?e?aGH(d>=u%zlxxMhiv(#io4c(VO-NTljCzxL44K-(8E1I3~6U?Uq zlb+T8m?QqY4z>>cG`m5YL&n6$ai?eKTyr>bvh05`- zi5?Gjqi!`ybc!CTK}&9^mDCEDtbhG{^UL`ly#aesJE$8* z|At@D=rK6dMWU;;G6A@pG)8r}`p97ry{K+I8^%;doiPHC2W4k;G4;fzX(+(2b`Lb~ zA}{K?zAT^Mq9>x*8;^0=6J(7OSD4K0Y+0__-JD&UX_XhY{$kqt$G1*`HM{8`1R(RI zQ7ecIGp{12l=g(S0s`|Iq(c;Z>RyDixw5cR3FbjBp+V;4Y^@)q)%pXa`RH`J?01TSAYL%NEv)5!>9m_3YN+ z<20G<0S+kvgFQmE(W)T!;T|Q6QQ$vU|MoDZuw;n90U^1|4=jyn_Q&qQTFopD-nhFg zgtZ@!Sq;@2zT)@@_X;$N%s}5Gw*SkK%&;-5aMBb2|H+>)6{FOFf&^l`15Gmynk%6WwG}a_iwhm1OTS& zW(1}M8M|%Kc||j$0KpQx*68e&cPa(I;ja<6lcY|+@Epka=1#)3&G6%YmczPoP`oa@ zP~-#le<+q(!fjXU`F~UQ`n4R^j1(c zqbyHK83PoF>42Ax6dLTTQ(u@NN`fZE$bCa9+pQ;0!OUBLx5p#PJVPx>hyVC+hMRgV zy9+-tpmz3;*y~oT+tgGQnG>=FJACT}k0(&xZN^(6iYUn! zs=N?(%zTttZTU>27l^mrTo!NBj)NBtO~2)91|8UHly1$!fn7+cQ|-)$sKe>Yx`c@T zVH0$;%FJ_rNQw`fVy1}73{RVt#DkS>HRLeLkwGy)Ld&0+Ae2JqW=_=?e@9=PN-hv6 zN^`yPFZ0&lZa%kt`xvukrWfBg@vwXqjTh-xgHrh6z2Vq;?v5(mPc2#z#w>t~<+5eXC3J`iPmvO7(`wkaI#{il+D-LVd*dKy z;h2|&;s-&VXfK&^jK6NO^Y)W1C&H{Jii99%&Ae9X&hB|f-N045`GIYM35}Jn$oR)R z_lpkzT?2nAXUc#&Oivl@ft0-Zx(fZJ^ytZpy+G2^Z1GspJJ=z!gOtx!>_3xVLtA^u zY%E$b73=)@IM(^2&a!k0&p&#KG&Ca($Dk3QTYcDvjaS&hpH-1*l&%bXFrsoaPOc1i zeoVT(EO>2pk*%LX20E2f^<6TD$-vYne|gY<0RpMaINrwOo3N_A_HsAyz)smoRa!e5 z@~O(-zHGMOg7!P^ym20j5GixnJ;(IVAMYqzE!yyiK2`AB0?f;yaPgdChYP7m(-I#u z-y))Fb~6bs!)oQ@vHeu4)~zfsG7)d9CE$P+edW60ah`>&`Pz!@C)(WCIE6Fo4iYhS zzlmH;s+`PMbosK<3)JadX^IqNe6nXKafOnPdRn`j<=ls{!JU+ zvYp=N3!9V?_qC-Gw!{1{&9Q~~AAo9NqK=eA70?1p7&d6w>$PHXQ7zAE4aMtI=+i^n zLd=C7@^~d><8vz&1R)A1+vZg}^BMQ7=`|kFT|YrFenun!#2#!n*7RR(+f2~tDAJ!_ z(-SLdw=8|7%$&G-heR9hh-IlK)jlklNjW8PUULd zSw2QwU!Uug-w{x1TQyULx3uk3sHUVAbn{o6snPW6$moUk!1K;mL9b%QfwS#pv8$_a zYi07jJd2P+5$>DR==Vj11Nr7#7|umhC( zNX@+-v1tUKu}Ny`q*f?v!1u} z4ESeXLChm(JayX}vc|eePQOjxj>t6JesT}soNST-=o+?ax9`VL?D!f}X`LC#(O1OQ z1vtyqKqKAETD&w&>4!HNW3=r6k#($#HZ?0%C^Nu5yM+?2 zCZp$FJY%u51dg5LwYFvIoS_E=3mOv&7Hx|99I?KM1^N^BqzjzG#O|4EiSb^RwBXe5 z`f{at}MdZFCF{@80cA5gy->eXC#{^prUUUCVk_Q6Kt(Ku& zwkFu$qPA~;4p_KG2c5;Yp$9en7Q=cDp!!veH+>VoYK%Vo@d(t!vfO)ci#<@la+1Df zvI(Q;iiy7K%Gl|yO4v%#D>g~#g70QtFcPXicMpE0lE+7HvDQO zey<%sRf5RPbdfXg@ZATC=L8@}ok%Caa<(?G_z72T)~l6iRr8d?$Ol^Gww7COteD(z z;vunc61Dngtl>|(J8-6BQV6Vc{nytb_wk6fS!e~!U76BZ&jMmHq18QmZ&-jU z7#nz|zsdB1zNuZMt@`C#-uFYo&m6eDJfb~~VGMU5N7Pe23JjZ}<;HO{%c@uA;{z@W zp|x+r;xsev;y_K}d+AWOyMboZWgJUxrv$RF?4F*WLen-r5y2>ft@kX}Zq?lLKP1k4`Y*Qz$H*Hx?|7{!#2x#1E8QBYIvepu73l_hlo z^q89;MFgw$3Klj!`{~KU&qm-?cmZg_a}gVBGF)P@ckZZN-d@qh5nAysBHsGkm!V87 zV!9>-?c-kV7FZ~93ZtVuN7#R={CS>WUgp+=a+TWy@<*1q3pu(-$KGrM3W2m2IM4;J zuV~*cf8hG(HSZ*4^&{ql(G%637SuTL6>?)1I||0U`aCd~%6k0hfcrRqqXzYlqhedc7Sw4zo6^nF5wpQF|3BR49x`X0(}bUR+r2GQRbRT2L( z?#gw`2<+_&vP4Bi*?MMcgA?BeX>sMLFhuZ-c=7c+;QiUbG(z8@KK0m7jOT4 zZM$Cz3IDJ|%t+K|^xOZ~uiDoZNKBfqs|biuAA%fJO1F`Hpf=Io<1ka}f`n8ohvMH* zEl+@I&Cwc#Jp*6hr;DK?c~Zyj?elW0Fzj%7x)Hh2?d;f2?+|^-Yr+M34srw4JEiI!xTR?!uj@1?H33jt!S0`J^*P+L%k29rm6tH^~aAy{cxe9 zl3x#m4^;wO3&qB@Vln1(VY00%iDi7BGLK|!fm>9J5X&C;5c>+ z>2nRwx*WQX!!NM{*}ruXIZOl8i~CSYp}R7(n+H^vb1dexa;Q*7ima*+2U$2hIu>n z%==ej9$CG^TH04i3UKi%`JgImFg%Bmdv2a;*dthdbVU1cqSJ}d{pfoTwVY><@+4{+ zS_nU9ZI(a9oj?JpC|4HN8#3CvZS;jr#g1F8b)zpGJ5++d)SCfNxAQ>YlM}@j{z_?l zc(P?`XTJaS#$I0iipb5!X4i2#ZBi=%Yx$GC&eBE|9c#8EB+_q3v{e~)tkI+*bFz)g zYh_kpQ4Y>}i8S5%K*NgU$Rk)6JpJ+Sm?}6n9 zD?qXL>jC+HdwM{O?QMLw3vMpo=z?pYMSFR#`$=1_bpCsr33u*rgedecZWf$WTh~~% z(xqa~@C#Yxevn{bvH49NNEazS8U08SfI)eJ(MK)K}sEN4?5x&rY|V=|w~_VpJ%5 z{JM#c4X04%Wdg-bq5~~D(Xg$fbGr>#uo@~>s(P<-obKm7xLF|2Xr-{zsfq3V8D5C) z-QM@tIiJ-OxnJHHd#8oYwTs&5k1p$xMy}>U5+z4f@6NsDF5r`tr<$^E2B7Wl#=Kos zP*6Oe3k>DI2LZnC^_V);+;W?>)o|ue%2xXJD6)7>sWhLimnWLyj#%zB#rlQ~?Kp_{ zt**|xE|D#NIm$UURjueW%=s)Q#Lnz7X{{Yi8d+{{1X-p(uF zk7ZJl#4X5WUJ)@d@6XGr2Fs)h95gzRH3^R})7~c}`Faz-weLQmq|bL+1VSI?Fx%P* zE~i+MFD3_K0_P+RI-PhOu5;vB*a&HeK+XG#ikHJCu3a|#0WX{{Sy_xN#`eqnUC6D1domZi_r^5-$=VLVJ`)dRBMWEqUj?+%&Pu zI)eXL1J|~j9|d(~eCZgZpQ=vC1EK0pu)PzNuARx?-b0S<@rKC#?s2+6ebv$zbi<;e zEl~sIV?26gM$X85c9r`jGP(+}i*ka%BC-g_3Z2MT_8Oxq8{|rTzl7yR+=xDIJGuR3 z`_+KSt6X4%)B;Ik@!dUoe?5fPVr^xlQrdI%bq!$a^EhDk)H`m;J{6m<%m%Q7%2E?+ zZ_6q{%Qc#!|AEVD=6!DmI3MRdF9KN~x6=t`PvWqO;E)?awt~ zVq6)ZW54>6Fc&bhaGdt?NUl#8_4HmNOIK)r*4@twUiS=TI$TCKHDr|dE_QOCNEcL7 zHo2h~#J*vwGV}}i@E%!`MrxU_WSWJooyDI2u%Iix)_4P0(V#2rgIZlYa1VTFoeQC^ zfP`#4=%BB$rCry)P4GFdh4RFMTTy<}d?S($37vXWSPj31-SRwzX@viwP4hJH z;i~+T;d&?IwgFc$51*MSWuHE+UxX90S>zs|CEmE`eGv|v(_aUU2l@TBXRwF?Fw>iEp7AMAUH zx4N!U55Gm?Do_RaqPdRl*! zT+^Us3vnD*bdHhMV_2hsJ{*v#4l|#XKv-*rs5;Lx_f1v{loC-sCPN@ZZ`OK72~f8K z;jsgg6c?DSG>Li>N_XhFx5lGx&EtGPBcNT=&yEuSdz#;a0i=KT|fKTOLgEyqh71Mymj4Yq#>fgetA*VXd!= zurhL@`;{Ry7Nk?~vs6&ok3mrR7CpTDiWC34m7!bDqST)5#aC>EE469wJFY%Zf3tbx zMxl6H&WeCjnhNP_*9x&3LWRv^=bhdKV6^|LpccwOm}`#)=rY zTKCOjWn_2IIkOV)?m*?4-)^kYW^3qBY39O)36?T>SKd1&J7@Q}JSUcRF zm+>nA-7D8cf`VF6;+n)Wq?Ks9d1Zaj?Vzz%Hu45X$A%w!)Pb4&ZH z#6IepGS67)k=#c<%dN4OM(h9993|tdZ;paj+>ol=XVcZz3EqU~TGFS^nr-}V z)_ed3e||>pD~7dr0HV;V=1CA`BH!@rECNuH>m+yoqx#bG^L57+2gVlQ5m1Q$DagxB zTompAl69yT?Rl}>}|t+%GSqJy8wcVZVOmvPvAcb=_pzDGGsBGSkL}KxY`G@8)uzB*6R|J z!X8QMeLbOganD&qE53F3g%3fM)7%+04uln8MIv$^*C=?ygWyi1sA!|o0BaGdg?wb? zYTvD|``&W7+oj8ss=BB@jEV0TnZM26MD&TKEsQsFJQ_ZAoKb`$vwC$+OH4D)jh+B` z)1BmYoJ4rrHg&xvqHvYtlS%nk^`j#4zx3!o7{j(<{mRQ6P1*aapO*&zPd$qrUV-46 z@)pYE_?d?xplJah;d%t>Mh}(NX=#e_k3*ow&`VR9OPWo%n5W|!?7p&VtWR+l5VaW( zjH+myy#<2w@h^GqSCV`Pj{Y7eL}+CtnLM!tdlmK8MnaJ52F_XA{#TKqiHifO!VpI0 zYiMdd_D<5J6)P)FcmJM$;Wq^>y=EejoIernfoLa$<>3zHZXWa2{F9Yo5)DY#*1trskTSMIFGFtcWJLX*eT1kPd~Wp zKO$*6)NKDkwWQl$hE-p$mdy)w--G+~Yqx8*OJPu}Wnp;K(rju`VCri?YV9TiQtKof zOmpbc)k>A5Iyxf_R|^m=CkHm6#XJo83br1-D?VoePd*hl!Z(Sm5jqM`Xw$cbOb~Tt zc6HiWI+3{7p*%#uxxCBXa`baf);(LlOY0=EYyTsH))cKO0CA@}FKXZU-k|UU9WYx@ zkC*4jjEOVvXpA_l{5aX{R3)HjPVOz$kBGwE2^N{E4%OjgpH=+10r+8-{Su@!ekh||vsm-axuGOW;X;&$r_M`CLmchpxQbb>F1 zv3o6$Bs>C=&t!7`ZdgVR`XRB@bh#x0%|5dj{feWo=J#j9?>gc_d*26(a6lZCYrK|jawqL;?dfvo z#{I7FZ8oVm#jCPWU*hf!u2>TrT(!HK#MTD8jv9rAx&pxot&0Wy+J(u;TciUH+W*zlAnVvz)$T)K?Hdjtt^&$nWq!SYw zp3;!E=q+a3W?~?%+$El7W7CQngig30l*-Y48>L3=XD|Z{^sX2z$|y zMDhrt@vZ@7H5-|^X_2J0Dx)q+sdSAn4NtFtNRMhS>TJ`gl-Lgf#I><*z2xMCGW(OI z+QJ_PURPD|!_rMLac6fTOHFl*jEqjVUQkvZV0^tZupah1FVm^(LkoR2J52x_mPTXV ztDiOQvC{(=8gnf^k5K)^C3=z5?o|Lmynv_$!>*c30^9btm^;ISkjdt>!w?(MVLBPOm z4N2@G6%{uN-3_CDYGRQz)_8jA>p~Bi82C)zA?`qmv*yXG86Nthgu-`m6U^fwJL~r& zhwjtOJw%~>+xp~rp?z!LRsH=H^$gc}PNSvQw8Gta0xM4M$UFl?CX2PsF{&-YGoR=LC7lhG2)6KfVB=tV~RR5O>{SQwV=$bkPD@JrRBB?Lr@O8>Y-Tbsn*`3tCk za-7e!xQ|}T5wWNJhjPxt}fSY^j*D~93PYqsxnpa_f`S_7u6;as|hO{ z7}mYmTB<*Qr}2n0^g>c%h@U0a7khr|%ljTkpBM=0G;=4=C#JLO6VZK_4lVcioyOuX zUcnq(RHx})psQb`C8yBpU*nOUCgo%bVk^>PXy__(me@Qu9V%=*H8s{NR}f#)X{!1( zG=gYa;F`K>!_8z_6T+7^*YZ^FCo*!5>3z3(V8XxX$bWroI$?p{Sx$OHpSv4gn({a@ zGYeBB^1u8KKZTAn{0!lWkIOS+}Uw6^Ma zc_fBWQ~Kky58ntS39M7S@#$-_&^2UAQd)XGHD_jf_=TOiFC~%AF6iS;CZ$iKjgI*9 zz}$JE|G0jM13cDq2B~t_y*jimfg~%Yvc}qeOgCzd(c&CZdh^(vqUvJ(ad9)Z5?xxO zZKrO}|3(B!M0GCsVOgf#egh{*gc!w32vJ5_ysq>-?Z|XQ-Yar=QSFtOeHg6!euE9L zf_Tr;;x{4+d&e)J)svNEEaT?3he-}e^Pe#=Vzh_MY}cEA@euXI+KXOvsq2iPt=vcI z3Czxa-0jakSZ*G-MR>Zs{q@|!o_Sx3riWP~r%HHma*WUA*3Qvq%$ABzVuF2&EI!XF z$m+h_gZ!**WLT%<51eW?>~5>4caGB9KGGjz0)P2(I|omZk{nlAo;{I^{YmABsS@G$ z33lh^Fsv!s4kThx2yvCTL26NT`fYg@PVX%j1|KIUjYiP&`_O%joe3GcF=w%=$F$)6 zemY?qhcUX+gH|pq_mM~8XHsaq7fqyH*y9Sv@Kzd2Tymh@OO1-az-`ptnhkbNOkPhW zSUWr7k|dE&liqY1oH?VOTypgOu`Wi&{Ype!;%`m9Q&hAhd47tAS{CoovIUuVO3=D=_`)sp;2e|UhwW4YZUOZ9@vpy5T4g=5IYhel5`@d zMe?G|$F^ES|5DvLfkHYeL$pWMCFhxvK{3-DxAkW|=^vk!e6tpv(tMGPbeCLr; zo5@Q(Ii9EM(;ubhVTubiKHo>ThEa<)(9i1M$TT#7-q}EXx$~*WokexCo|5DkZ@sS4 zi~_pJkot>Dkpc=`rtRla6D~!vXFd0?*>eB*qF`t8MJAe3r5p!((2&IF1lG<%ql+=1A)o?uR z>#v(==5-XWfS4Pm2>A)COVczxh&lUN@_P4cw3MD!bh}C53j+dTtkJCv9y%^{>-fbc zMQcpaD;L&v4|wc)3^rxl@d5@YiX~-*JDPPd#7xL`H;a9yPSSDdCxXr;)rDxP8+wm@ zYC5!WyfIAVeVWensede@Kl{Kk^FH_0U2>~jX3GjZls)s^VV4ba(I4{WAK-vaY^dE;5d6zl}LqAMgoa}YEkJQqgIH2 zwjA-xS^w&()8rs~a($iK+=5Ui8HemD%(2UyT5NpPdE?CPMDJK@(9yt}=h}Jh*{jo`d41~VuE%eGa~44!*R;AQ zhw#$KDJy+3>8;mO637F4w*qr(s|xkUSh1=~6gSZSKG^+1-&!e-C~YZB=S%iP^g#Z( ziUQId4nuqN7FfgJvTI^pq;a)Aa@43nojUm6B3);Jg>KQTKI^Sj&!yB)(b$32# z`^Zlrdip#DpM%gOY{whPU2={TqcdRD`M=t}JTB>M{eR{*T`OnuTAAHUoD#Q8ZMPKV zj%A7)X)coswpgZ?riqFuOr=>l#Rx8CsiWe)m1!yhPPUjjWx21AA}ONc1}F&p4t4L$ z*m7^*KYsjSpL6J?pL0IXd6xI{ex8rN5(@dRe}>&2ud{AaJlNzC_%B-GLv$dgVvQDs zG0@JR%ncLKG_mJcF-y+Y=LW`w@15%3mT41#5a|RIkt!2)9Z|z$Y{`t9+{aS+A?Pr5 zNIF<0nLlW>jiKoC9BH~qbpMA`vU^jndw>x))Ymf4R3BUgocgJ?C$7A<6V<=irZ}6` z|2MMta4j}_Zic>>;z6NYIM78g4lSuIc)@rWCNks4Z<4#1a>f7WkA0gV$Ja~^FeMH! z0fq{^!eb*xjT6+6lMq$Ht1_HSVdMTMkW6IMq!H8w6zraXuo&=5iVzgFOCVQtPg%dM zJk?l5UlHHTexPGRa=!idTl938vC8EO%&`ew`zFQj7h_ZEX1o&53b)ks?2Vc^{PMI; zlZ&qX8gPnSJ#5)oqGKVZMyvSZ1?9Td(_booj69y_`EF@gW1e48imrN;N9I=~r5fuiJklCe zSr{Q9KgkE|E?Y<0a>u^X#H|R*<>=fCD&X`2#eWcaH4eTRB8`cd2YnYmIUq&GbWJxk zH_Js5sjXp5ctz?VX=284OcGn@6_wlb#IK(U3It^<3?m|@#X0_E!+x0Eo`)gDS^64_ zxF8qvUsY_v>P&(jG+8=I$xllodwXSW-Um;P9oS|;}@DZYY5rtvyC@8yA zgMA;Wr+$_?&@8^3DO_0bp{xAKaS)X7Ou;2HB!%D^yN1>0aji>gdFp}WP7vO5q=jmS zg!4I$IcpH2bW@F2ifSq7Xy0Aq`<>{&{C$dDGcv{=Gzy<8_`wlpa!+yR@RolHdJbgK z6i>-4iM|s9j#C!cmLy%rvQeD{`s~xCLiVS){kWU(OtA^8AlPM}g?AXA#>!RGNHUU} z%s!G0V+R^})Vjp3s%%S^2T8R|7bBkWm7W6}o;aXS)^S2;6b}AchbOe4DPy$TW+&Tk zfwu6~zPnCa^cr*0>y@@|n=|;UaR2#te_KXaKD#0Khnhv%f>gEij%ren6v6>|i5@&* zYLf`{O?ItJtW3)3IhH*#UmF-Gw}&anBHgA8ShYMl39YQcutEqa8t``OWaDBH61Mw&tN+9ikVFZXfsBJ2<-i(u-iGzsg@FJ#T! z9ZG&!_`Ui|iE+j;8OHh5L` zTZM7d_eZL&1&2E0X;vdn-cG>Hi^d*ED=tAXx(d8NiQi}TO{0s9GYIfv)+p6dAmD1kHJey*(n`y%}8Yvey;qrcpwFoZO56@b=xO|b8l!u&ZI|R7bmAjVXM{Q? zo$DfGM>yo9k*-3^TY|xy(j?v*E+xon9qIPW#ka&J4?&eD~e$t&-)?=9<_%YC&7d0h&jCZEdPn@5$+|grM&ZFpS+!69cV()C( zv>3nPv(I8POdH6Af<|YwZCQtVr0daEr!40x8tiqzBzEC>Lmj`1lcAq(g^P}-JLT{&A^oXE=8+l`?1=M(xvFWP~hsZ=Mwhh!MC-DuT7WKgDpH^%rA z`~7YM8tNnLsK0JnO|KItql&`QCCXx!m5gggthi6x)q20n)%AK(l1em3Hf~Goz3h!C zBCQ+Cx9)XH)oXOpvUHMeTzsm9*;g}dNX%4yzCpE-Gi*+SVeeq6AD#dLYxw@d_WiFo zh0A8n=_@g*5}Ib^hT zj9cbB-J{jpZfKisZRw5Ged!dQFmCR@9nYBCaEv%PLNA?&xc1)X8 z1iKVe^y4-HMQA%9M=`E?rAEfApODl`)+xbm)-^m)Y!VvKT!ltvJ2}U-CqqN>dO3ye zPs_`Ph^<*AQM>Kp5GrZBz6ozO4bQC4eDzwiRC^!U{uIO zjvmCR6g6CK9FDLwn}kOddv2CxD%}($g5YInq*i$G$Wx~f8%%-@Tf41?VU)uzqZW~^ zD;kCZCKOQ6Sb?{W7&qYs^_^QaU_MX&dZ~DybTq3cpP8Q>G0$DgQQkB(yBfli9^OCO z5qilq;t4%?cFa*oxn!09QcIBUuXogrFop9oc?7BRE-bCHq?tSPN`MWy`JmysVv`lk zZ6?1Yr>ZdLrbAv;fN5WQ&SY05Lv}N8H1%Oc0hHZBLeXdmpLkF#IspIjQ^C-jDU#r9iVGwO~yEDoE zfayXqF{|hxEi+&uN%dM-*;*B1VDn^GbWh*(KOnurJupGK0suMxEd{y&zjGr{8hal5 zGhl_<2M(|%4F=l78L(7(>ER;)a2dWcp!!&|9kjeIofLUga9Q`>hbniHtyrMHo7uc| zjoVBPr|#C{@r!PZoZ038QLU=$+(eNrrJPUPOX;fYU^+XE>*`T9J{$<`uv}w!6TB=k zX)=(hV+Oy|wI}csk;f;dvLko9AI7y^CXD*x-r#k~G-PL?;B7v4x&a?aZjiOP$=+HM zl=LUCSd}zA@-BDWLu*(1Z9h&f!=ZAm z_zS+!J;D{SJf#l%^DRYIqr4R94JfBYO1*8RTm2;6rORqciBugtI~43JRDxYG=J8Zv zt8r$tlfc_v%vI2My)2w|A|_>fh5_2$B)r)V*mR4U#C0~U2mMlY2W%3xueGAG)V0P| z8?Na&<%EI;MNS>3&6Hw&B_Z0YKk1NuI9XQkE;{;k=KIG2htjRZ6~xO#Gl+0xw&NPP4U&U>Fuc;6bF@Js3tNS!J!5OS+GA4#~t@ubFaLJb3(7^G3 zm`n=Wwh~@Z0RYd!!An*t@v0-7A#8gk^DJ-+lw}z{${t=vT~l*ypn3_!gEp-`L6v5R z#L%@`lI^XAd_@jcBkISXsHudb8PfJo!51IT70qs-{0eLG3DGSsmTy}LUYelWfdx#S4kp2NYuNGDgY4zyvMmX7&&1wE!aDB2d)I6Q zVc%cyF6!f%t2(}{Sra{o3#l=4`!zLf2i9!qOhm_laBCuc@u{tJe!nnZKjQBG@H+qr z^W(yX7_tZO(`6@}35DGGe4a)SUfibz1n{XLFIqkxTFopXBJ9ns80u!2q6NQQ)`&|^F)^V%EW|O~Q0s`-Ln_TY zzaQML@GjlI(t5hGUf} zEs9zsz3@b5IfV+2o3g>qAI$CJYTfbZqlB@pbe4H{iTDBT%<5eJ4KC#&#;dDpFYuWP zUQ8xSUvnAx;WW;ik(x2~1;gu6`zO*VdJFYs^BWU(;qz#mkOt{Eo=ceKosGe$sW&C)S{!_Pssv6Ho8RJ2U3PDy?k53GR% zFSSdgNN4-p4s<`P@aEc84jGcgUBp76T{^Ioy8%4N-ORWwxCc_9Xh=|m*TS;0v6td| zJdHt+4B5GV?g=lcK?$p`K)4q^)zNJJgEv~*z{a_=l~>`7G6CE+Cv^;$!TliU!NCqp z_oW#`x9R@Uq*Lx=6&)=piK=2aMmJR4<8eAV((1Dg)RHeizDuzw&9!#=;+Q~srdJ}2 z%8<}G*Rh`a2$#McAdb~@^g{P&iiqwt+4T?7-#A&P3f4`x)w&wVj2v;G2LaQvg z?j>^Lr9cPp$c2n){&Zp7eD+1DJ9?_zfhf!@5gnoo3&PL^$;dV zW;AqMmPrQfn?dfX4XV!dSziOP7vCM8IiK*YIp)W}@G+(Hzkit+#DhG@!qbseX8cMz zlv7idhz(zSr4S^liB{+gT7OQ-zez)*lE%MLd70sMLcQ+-zzD^BIW+UmgR3!~003$br#st! z=l(#c*`j0(GH~yJEd>mBPcmBTrakJmAw;oCk`viHMUWfc!C~}f&PNv9dGcK>?J^VS zC~bs@hFnY_-w~d_sW>7jATaLD9!(Vc$teRrk4?Ahhy^2ZD-b1{C&3ql#4$6A3~}4p zDI}W<3xq842#@*Q(Uo$y-8XD9p?pxmq|^&n`s$f&E5~$gB{IjUC}$f-x32YdXS{+e zg%$kmhi31SVy;&aPN{y-qSB z`#rs?P(G0hIli;fKV&hVVKm5>2r>v&Rbf$(;76J;DL`HY{5StlMW#Q4z-KSZ!ltOk zSJE5a<=!ps+a4jDkB(daRMRiBAuiL*Dh3%+QrjoI!GF?FGQo8s zYBkL|n|7U!-uvK_JMht@QACAt7KP?v( zBiw+l-?vU%Hgv6p0&c9m{ZvpHTl%WZO+D|WCS#Y-D-xYO>*wAkY_9HV%unyRU1mcx zM9rC9D$*u#1tJ_EXZX!gGcmPzKq)wp0ut&jAb%{^BF3*Zy5>YEXTsxEO5om18fWZ~ zKBy+KQ;>&^Q$Zc+cTwo+C5qy+13(=))p!OTJ9Tdr_NU*0($pp6kTwr(?;c$eru=09 zm>w*LyXG?k?3lA{jdj%+;fg)zl@ON>^}HrP889yf*?f}2y|`-=6dn_sE>^%h(I4H<}$%F094>Z1NgD_Ki3Tvnebh z;!$?e*0jczzk9_x4{O;Zw1|A(eql=Pq7|3xEv7&@TyGf`VJxfo%~719v7m)$EsGj{ zObnFj#RX@V=F9raBnPnR2t~Nr+~R`UXtKvk|5Ip$TWK*DP@Yn>hgP@F zN4>Re>BRuZT2a-|dLw@4g3x^0ibxjL@fx6r4AJN#tgUg{y>DOC0!Q~7f{-q>YGOs5 zoo79U2JXu^Jm3=oj(XbObEruT7f2@9Bojh4rLGGzz2XL?D`G%=s(q!va`x&Sp$vD; zBb3l75{aBwQ%AjOoJ{6K0hF+FC!hK55`T%`F*S9`Dj*=B0y&gB04PE$&Ye5Q5%KMu zGD}|cNV*UGDYi?l{wLq*^lAtY+ttxgY0VX-ZAbr-^nZ|nKjg$e7`Ts6hRa@*P?<=p zXy(t6Y1>j89OL3tVeT}>Bh3z-98_6eNr^#@UshV$G;XRsc-2RT?^6>%=w}wshb5Nw zDf)B*LJk{K8dz0SQsO)?Ij7n){h1wcxZa?K5?&>X5OmTzUQ3Qu+P%AO1o?v)pRR$w zfKJ#Cx!S+E0vHz6|p)b*4vKkLO&*a=-LEn zQW-4A(s5JM+HK&Ud?v4`Z=#Sn(y({vleYH5$>oIMX<^jNd$toWSRMzIrsi320|aHF zv{udR_>X={l1{j+MZw&>I6p46w771*ewIikfTE)-IJ4q8p2r|EOtu-3c#5s#i%AdI zPP+lJ>v9GBp#wMw%4FMY!MPN-<;0zt3Mo5cYV*wr$^;Uj>-a)hlcg~0i*)rfCpxQ%r| z;Ox6}A<`O-WB}OC5JlZU-<<*pjzh~8)?YEE_f zDwxdknEtS!ECr^Mbk}Bc%bbH2noxng9|kS6-A0a@fn z^FEQ%f|K5!!EV+5mbLPAM3z7T7oQZ&cb{sdoi9r5kYqP$t}A`F873L?5_6ugZ9b|9 zW|583nMO-Su}#OU{GR%sZp%~A*hpH zPeLolp~UFmQcwJIqx*5no;0YJNOpbrclFlKP@Hmax4RQfqV-yGvUKZ+WWWNnZBcFP zHIO@ZF$y2b0fbQvL7Fc>AqQYX2)3gzc{L=i(wLubF9O(LBWllPk(!2teO#%`43)$z zHcO>@|A+4PeQJ&)0IV&i(*5h|#5d!h_U5-eJE+(vW#Cj*n`8hlp?i9S4?I(P zFu)*-Ry8P@iPA$XVCnnPR0-LXj4Rj9!>$0U(m0$8kp}8F>9I=!*r=w7q&4h=yEhE1 z)}N@&9!D&!d?I-JX6-dWF>>zem&HbE5%V!KZxl;zR)kRQI-6gJs|Y#dZ?s?|uEt`W zOR9~%{K`D;E5!n?U=sh;HA7j z=h9Mywu>fQn8ooKTHwz8fMcRlHS$z5v|C8%W|Of`mS=Ry&et?7Q;;&*8h2%7Q z&NCG~`{pEpV2V2%Q7JnT_mi{r#>D|)t&?$7^n4v6nEGYgVtd72*Vcv@qFnR9-9d*b zUByYRZBh|{IM8ja*+@PXw_9?sw9phHsRJyevU_e(Gp~5b879!nX1OU{WVXwDyj}3I zY7PhQ`CXd{f__Kil^c!6(i`LDvGq4M)X*)%h1c3B-0i!$Vyl6Ln-t%Wfo}ry#}>f3 z>8hC2urF&M4Jo^!y>5=}2pyp6+Wg9RSV42V8Jv-yg@ia;k12W9qx5w2K4&eL%!jF& zWNu3;;`-V88zhN!nUUc&)r*yN3DbaP26K-;^3vDwTrgMH9e7H z`;2|xE(~Wf^^I1mupw=>&8;0lw%*b2Axy$Q07pg%5%J~^U*<(Gt3Fndn2L-65b@!( z=302gRzz=i;NF~YC)iM7)TM^%wKESW_}ymADcn(yu}z}@v;@hXJF0|S`$$>-9XoSB zKy1XmA&fah^i6l$;odC+gEmn?!>gO@6arL>HBlza7{Jd`US%X=zs$!?X+8B8;&#Khi=)K zD?@@6?6i@?!BdNK$9}G5CWY-)&}=c#Yi_>0Zh)3Fk11gqI1(!sqs`}^{7S0`iZLyI z=(eZYnwYhy@~rm3&5B6d1zMk4tKho=_=wp4(_qgZ5AEL) zUUyBRHe>2MLtTTX7~ca-P+66?eCKeU`f7>3L+ebxX;Euy@0+f|_M`v&IY{YnYqVy6 z>}rPQsj0{$VNRM_Yv&$6apX$oz*hX#;|Z(}v+W8Hou`_1f1^v|#1Z4O5p!m@(|iXG z2EuBvp1^IIEK!G9AfwBv^g=`IdHBgBFr(dXrhFAu<>tAKWI)gGHjv~Qe=10WP#0s82m@l$gH?=*{3YV zM{|sP$cHp0v%0Ootrz70olaMRpA!a zJsTaatUYIC{I?z%!b17*80eI==yr=?Sg)ge`DFMJElkk)@pmk!0}A_M zKF&~4!hdRz_8Y5+sjKlIS_i`B>T0yfx%lRRkW8J7O)pOJ#OaAp3I8dJy<<$GS^Z}4 zDKBM8YWn79nzC8y3r8i;ddt`8Oi;_u2OqA|fWVQl%cpVS=jqq*28&wj&*|wOsd&Y>(d)%q3M;Ij0<9}s&YkENo5`CO{lgqzSGbECu zK%W$`&Gjf=)H@sd7lPOy+?Dk&PFAF)D=0iXVt-|EmfjFoirR{=9~`@#kRDvMD?CwF z^V-lcvX9Mx3>uNwYg^QCqIAHCsE9h-dDHM02{ZNi-ci6hmV;8=-+k=w{xQS*CgNvl z_A&*9WP$qb9-(+MA*D$*n7v#NaouOZxrSgpuV`H;{hOfUXp(D7vQ8Sg)xkAz9j&&P z9<--!rd?65MT_qYUiuxH5Q9{|{wQyCtT(il&=;O?Hps?}9{V}k$NhbfY$M&cpqE1R z-RASZh`jtRc==a0Cr#(TFG4W(3a3J3khCe=X5!-GyL?|{5zR`ric($f@T5s@a%#osHiD4DJ=HF-| znq3xNHXTc%zM6~&*6>?XUXr)z`AV~2=YnwQ$5o&IsEQa=ML3SDWAOtMGg};;Km}9T z)CNK5`;5&;j2Z=q)%XtSrI39VZE@?_HuGs}E!?v~w#{8)|M2TH6~WhssJ~K!C+|}9 z^~ZeAsQ_-7sU!VvViD(Z15|vtUEl4MTDCK-^if%X7xXpA9xQNQ-cSwAt<7NvL|67D zH2k9Y&HGf^Qr3ff?xZV(WT4CaNk@IAI)#g&RmyrSjG+T(1m}#-F-T|cn&wS(9I@%O zCAx2QFSwp_&@z2~RtH;m*87*^BO4AEqK*J2OH{&>yw@aDdfl&9;ZmN3>5FZjlFN5< zr#U+oE|p(_4=#*jO0+zh+TF4&u95rN^ffgiCuUAn8XI?Tw-qq`3o?AhR0~kFhra#`~N4aRY&~P1gz;VU9%+(B^6xm!O;({DP6Dx}aZ;`D5tAy+NYc&YBW( zWr)Mkhq=4GoLc?$8f|Y$@E1rZC}2>%v<&GIRn1Xs@u2kM)L#wepVw<6?qXSLanc2P zS%x)X86B4e6VN6>H}C?8%X=%LUfIyTK2eB-G85>#OCGz1y#>VPDr59sFDEwxFMnok zfP2U3PDghio9oWk*6=IioUApyp^puJ(N=9#ccbUL6ePFeN_TaY+3{lCzAXF&KGu<= zhs`shZII#SDh5PqGV z4haPw&@p{S!zB2l!y7qU3Ml_tO|hPg;CMui7G*S?eCOW4K%5A?9Jx$=4XQfykf~Ol zixm3Qo6AHpXmxO6lm$37yw;bU7MOOL_ocYbE-ge0?(Hs}UQMbuN|Ica2ziYT>1P=A zBd1pkW}f8kn7%Xv#DumJi)(#s*Kc6zR?*()l!tcUHtL;fyxv-o4Q+0BDU=>7jk+7} zBjg^ysl2uf5wnB1f@Y>kaZ1l$^P)@qyd?vw9|lUO8zG&{cp_~aM!25yEOMv! z*#ROoG3|9^h)q|#%DK1d=Y$?(f+KuUfoS2YQ&TC}Bgc(M6^rpL?oOSh(xitu6)xt2 zoBSYdW|_IXDo7qWFR9sJY{onxHOfOqr8jr99kN&UQ*bk0ymFSobwHx9$}g~;$`5$` z4h)f_@e+eE{*J(S;O)slz92`~q4dM%V>F`Ggfsp?3AJcfWB%pf?WR_J zmbPA}*ek+OH-nimPQu0m?P*=~lB5$JCD5+hYTP4uGt!rnY}Pi#0ZL0XfdJZgi%&;- z%&4bzMBdN65ry!;cnrXf7$G~109kOSKu1Y9XUM@C$>8sl+lNMwkqA4KW@lasKyd9Y z%oApnE`Yx6wT<~JXcOZ{#nB!7f2O(-=J|X0SL=)-+U?8ZK*h>rH3MEKk4QWK4RvkP zY&qZ+4WxRv5yRRY-OiP8BFl?kkh9asd%D%2E~RUpN^=9uG4rKqwv?i9jy38rc(v7+ zeAGI!U&qYoVzuH5U7NVB&-0@1-W!stry&eg^D0rrW0ChgC%<#5XgAo&zwV6r@f<;E z`!FePmZL?h6j}l~*EIj?!{tI4x8!UYLM-Ts7bMKB;&oqL~|0=Zd`xf9$JJ5+qN1th`G(cG43BqgxOiDXphRK3&Ka-fAY# z=1S=p;lA<4;qz3>>3n~8kej+^b^ey~YI@6RI$al%2|(b>&3%8bBk1(7xSI6Rp||g1 zRwdYauGEoFIrJT2kQwd_sZ?wlc`$;u617?zoq#ka23Ynrxk$BCYg7J3SIW5;5AAxP z+PE-hO7U{@o!yeV;iCuesR`5(!ZOvwh91-Xf&HKai`6b!_qaM5JF+f~Tt=rL<_~6W zE3V*)T@qEVWyKFiiLw|B=^DsotD*Ovfz_X^ZC*YAcSJ*7JNy7IZqMyasQ~r{jPdq8 zC5^+?=kNL|MLDAjuHRJDo`G7U~=@{N<5lRy0`XxMf-k>h24K#)&_T%YVBWOzDP(%qbpSpje1Q-Gdc_|82FkD08ZFME4`y=8mZN7nON>G3`8v-rvWX zjM>k5e#BFF|7#ltPPRApu*MvX|GAMa9X~d+!<<+6EX^*x(#oqA#pM!Hd0J+ZJ|Srh zE3j`NW0I4tw8{hMGL{aLZ-~H>s$CiiOd0P88!@ROkjBad$$YT1*?dK%vL;sUa`tS` zEJZWgFH6TG#!1Crt0si6P&6(!x<NvZ5*vGWT~f!{RWu$BTUxN>k5-9AOWfnR9c*YZU$&v!vbs3 zE3RmMR)y5++XZ{j^JOalc>AT9-2#WzdnBBTEJ(P!*4D(WZnou$Vt**D3`#Xb!%z7kAJX94ts#xq@bDG0z#47N(MD~*&| z)&eFC$ov8n3EdAGVj>$lPWDetogla_J|($kg(R8v#jP>?rE{HXx2o0>AK-HXYIn8@ zKDa-Z-?pqFnt{0Pm>YcY&5lLt)YNSK;}%6FxDo7=18#NX&nCCST7j~dFNCcIJ%x_a zyvMWw*{X13m!4g^`C=8`v{T3nB8sg#nBfCr_C0|euCM38N%bJv!nS%z#boq)&qMqT zom(PyPrQ@9Y~D(G9c%cJOu9izC9T6+Z^eJloZuu~Q=(thx|Y3;*y~s7klG?@KmEnH zZ>O+APPtH+Fj8%ugZrg*qP}lK)i7mktF!>w&Dkjzn3{n7`cptlB!0@0+~Dq*j0wJV zb@8%J`Y)l2upw5v3QX!B?bQn2?vUTG@+o#XTztF5nh1fkVOrm%?NuRBhlz6!M`4A9 zk?H5}RtFQRbb&a|mi5|3_BRd#(_!jxrk(bz=q@3?fvjG|J=t0aa}Uoka^PQEUwQC& zl9!Xy?}9H*YQK4Hl62OA|CmF4CW893dEOz07q_NNR5m}3OpxO>-rJMFl}A>V9X(d@qKjlcc>978=P^V<9!&D^hb%PwF2<1=O} z9lkFo5lZ=GD#W?xy}g;R*JSvqDey|gjGpdaptK>C5z+(S7Jom#qg<}r9NP#U5B%VR zpOPK>zHAPZnH4Fou56trH3qwoa?t7>J~I_&7HAR!P3oS`Xi)F;nW6T}E91-JfRBLz zrIcaaBsn(ho+!il^=3s>bas`2M6!W<&VkIz$|Jqq)#lu`+nE1lMBab@D7&(<5)DP} z3&KV}0U3V1=A9~*3oUW#pA`*2Q6UC7n&q0^-n22C*A+*2e#(h(xXmp8vQtb>eHJKOJ0q#GN#z-)qrgn1q z6_u5s5WVujgI)iZ6(o%;*f|_y;6x|VM?m`$n>K?NClb{E0BM$90CKBcz|d?p#(B@= zH^Pd$4d+^gw%~=V^V5UD(=mbl;N6vRH$_rMwldx<6m0Y~>n$H=GD)5$%e3pMk(*qm zp9m1btDyZ#mhS0j!wZg%>&Ap)@MlvywuoV|a+mdgepF#ZZ<wXJ03 zR_@fmnPifEgc`(yN0Sj--TD<&S3&9z)XO8w4^l`V5^^F0>zEU2tz29j(2(QEeqZ?P z?PVIOsh|=vpY*^xV(JHkG3aXDG7NzAeC)`7nrr~-jI!|ud~Fho^-?6+$!#2-ipEbpSxY?4+u`4qZnv5sE8?ROt$i=klXgpJdA`x_8bRFE zNIwtqA*UyHOa@y;*X>5{*Mr!bRxD>*-ax8-&W0_WrxqCLc9j$pC_7PT>SIs8jJKAT zKJ(1NJ>`x)=CxVjMxa|5v%{_(kCgX2rZ zMfAO`Nd02>l^Ft^GbHntdl?Sh+n3(|k`dK{Xy{pe48L#8C!`~WUHu}yp&Cf-H-TsR zX*l1B*K-mlwzBuT-YUmI=>`YAFGxsmWExMi?$C``^}?1r4dfeR5EBky%#92&d}a^v>YOp%b(sJ(V(l?@Rw)ELdD&A7GSN z_}7Q`;q~v?fi3;nfuPsJgLFGU8?5%*|FT!JA1-&~a&OA(E}j|!UdrT8W~2j}nC(jh zd84nz{y;-q8GY`@f?(#!0jbcOH&Hf=LeAMuk>qdV%4b+z|+>0(3e6&%l!! zu|wMG47+t$`wx-JI%I#rVt?rdL0onzRcXOz^X{OG?d|_duNx;fe2t|&OVcI1`UTPU z>e|!__3aon6Gup9Hm+{z=9v7xl3jSEl&bM6E4qBU|573P+~~r@qnMrlkq~9&J%xKN vkH97~zW;gSXOF^PzhHP`m)?X(_Vta}2gjCQY(DlC_#iAD4whORyY&A6<>NX@ diff --git a/assets/2x/c_asteroid.png b/assets/2x/c_asteroid.png deleted file mode 100644 index 5968cf7cb310aba1cb838f3bc1af9f2400e67793..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8218 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 Rzi0k{wx)qbmD;n{{|7`?WCH*I diff --git a/assets/2x/c_asteroid_ru.png b/assets/2x/c_asteroid_ru.png deleted file mode 100644 index 97eca048a6cbf95b806478ee0b2bea68ee2ff6e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7712 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 PegU0(26xNuI7Iv(jI?TN diff --git a/assets/2x/c_ouija_2.png b/assets/2x/c_ouija_2.png deleted file mode 100644 index a56f02bb40376c03cd2403cccbe0daa205c015d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2939 zcmaJ@d010d77u~21PREhH3i%t121|5U<*FGv;oQx@tw5FRt7vUN-nR>sD|YX*q7N)wugWMY|4kI4cr{$X zejL1z6f(84^wKL}df@EJ;Es^|JE9F^PE3yL;~@fHqj>SL+JfkEQSiL>s5F(YQNN_f z3?#t^8zjThIkN?z58J^%yR;l2D_pGKcJ4o+iWERupvvmQYP>CvI~q%6oZeUq=$!IMXkLp`n?|JB_I>_Gv!0_oZ1OX=Q`CQ%M%P30)Mw@q}vMZY;CG z8L8~}rN*4VqZUDpj8a3)*03n~F&^4> zoO^2MAp;|iY5XqoBsa-|`tV(HA{lUL{tMYvhgG>SECrFfg24oY>@;AX40zyeY@KcP zj#KCRljk9O?$Vek!1R_oi<7SHDZyf~IV9%tW8(JWYZD4>KY8B1rLq-vrH6Zq;y?0I zn)R=|#{T6FItN+{{#3=r;kGE#5@*^OLP>9~j!=C^kXwAtmzJH}F)|CH>uW)$;$B=o zc1=8w8-t}RC-Av3kW8TI2UF!Oer_9R4GmN57_{-@e4kJW628{Z>zg-kNtQP?OyeT3xRn_#mV|uzU0Ngh zq;#!AyhXi32H@`iwm5Nnd1O0+C=jVURQ)S6ktv$%>k0PTH18ZHwJY|yh>R=l#@30(1t&V%CMxDD)9JVHJZNVgDI)O}Ba0m+ zZ_7r?bXn4y#>9?+Gl>-Xy{RwpVYhU%+5O7~RB;SimqK~+8CqR5d0m)-12I^(c07ER|Td!s+!ro6fcyx(qkr$T3S;( zn(XwfO$MEAY+cu;+P^)W%0Q`all)40Defpk0&ghCaGo=eg94Z6*(gz?>?rl=j`_pr zwfpV8)p=m1qc|2^M5mMd!$)7~#>xhF-XO<_Bs;j*g_6LhcQa5A^*dJ@jp(MKBdW#& zca+prjc$C7)|e*>xVn^~d)0Yl zLbbx}WB<>^M{$GF3^%-$Si73^G5EXXXv`ivDDNwq;&pm^JGf{%yvk+CPZal!h08HI02vfhY`2@L<9Ke0OI@><9sj0k7-xY-b`2TrB)T&$4&T?Q}sIfZ93j*NOA@b!nU3lygA$Hg14vnt*jJbE<|os7rA9K>TBh* zAMEr2;;<82LS&5!KFq3`QexknDj6Iki{=FIE#KD&LEvb9aNh zt1p(wrbul+kySZ#`Sb09(huKdvwR=5iv>__x^v(tjM1mOO$V^9WUjm4WB^R4@=Q9>n=|k z5ojvMMQO?Nl^jISH|unr>7GA&$qktbq@klgs)^1C1mLDFe`rFa}3bxopuBu zy|KU+@rf*9+CQ;#DX{g;2C;F$?8Tg;;6N3LV0pd|eXBsBFDt-^lz(oC?YL%3P$kDV3^ zWqcxnD+?!?%) zvDpc+1V!PUG8+@=#}ns+j-Q9tbxc!7RlCNIE(C@*%B-S?v-dn5&}crmW|j+1v~O

    vz>1i3xtTo3UL54QrecI~f-(MYQ$L_#b zPF$#Io|p}O2DOfblmk&o=VxE_U8r#&vIN<)^!BpZ$C30;_KXP#@X<|b-gsZMI>AP{ zcH*dZ%BdK_0sn8X2D-RB<)998clgwh&q+N1hYD4<6VO{P?(Xxy>k8f0BOC9wyq0QK z=BqYze1iUa^$%)ChKI0z(XoZ8(7hh~VZXDYI 0 then - MP.RLOG.record("discard", { discarded }, "action:discard,cards:" .. table.concat(discarded, ".")) - end - FN.PRE.stop_current_coroutine() - end -end - --- USER INTERFACE ADVICE: - --- Add animation to preview text: -function G.FUNCS.fn_pre_score_UI_set(e) - local new_preview_text = "" - local should_juice = false - if FN.PRE.lock_updates then - if e.config.id == "fn_pre_m" then - new_preview_text = " " .. MP.UTILS.get_preview_cfg("text") .. " " - should_juice = true - end - else - if FN.PRE.data then - if FN.PRE.show_preview and (FN.PRE.data.score.min ~= FN.PRE.data.score.max) then - -- Format as 'X - Y' : - if e.config.id == "fn_pre_m" then - new_preview_text = " - " - if FN.PRE.is_enough_to_win(FN.PRE.data.score.min) then should_juice = true end - elseif e.config.id == "fn_pre_l" then - new_preview_text = FN.PRE.format_number(FN.PRE.data.score.min) - if FN.PRE.is_enough_to_win(FN.PRE.data.score.min) then should_juice = true end - elseif e.config.id == "fn_pre_r" then - new_preview_text = FN.PRE.format_number(FN.PRE.data.score.max) - if FN.PRE.is_enough_to_win(FN.PRE.data.score.max) then should_juice = true end - end - else - -- Format as single number: - if e.config.id == "fn_pre_l" then - if true then - -- Spaces around number necessary to distinguish Min/Max text from Exact text, - -- which is itself necessary to force a HUD update when switching between Min/Max and Exact. - if FN.PRE.show_preview then - new_preview_text = FN.PRE.format_number(FN.PRE.data.score.min) - if FN.PRE.is_enough_to_win(FN.PRE.data.score.min) then should_juice = true end - else - if FN.PRE.is_enough_to_win(FN.PRE.data.score.min) then - should_juice = true - new_preview_text = " " - else - if FN.PRE.is_enough_to_win(FN.PRE.data.score.max) then - new_preview_text = " " - should_juice = true - else - new_preview_text = " " - end - end - end - end - else - new_preview_text = "" - end - end - else - -- Spaces around number necessary to distinguish Min/Max text from Exact text, same as above ^ - if e.config.id == "fn_pre_l" then - if true then - new_preview_text = " ?????? " - else - new_preview_text = "??????" - end - else - new_preview_text = "" - end - end - end - - if (not FN.PRE.text.score[e.config.id:sub(-1)]) or new_preview_text ~= FN.PRE.text.score[e.config.id:sub(-1)] then - FN.PRE.text.score[e.config.id:sub(-1)] = new_preview_text - e.config.object.scale = e.config.object.config.scale - e.config.object:update_text() - if e.config.object.config.maxw then - e.config.object.scale = e.config.object.config.scale * math.min(1, e.config.object.config.maxw/e.config.object.config.W) - e.config.object:update_text(true) - end - -- Wobble: - if not G.TAROT_INTERRUPT_PULSE then - if should_juice then - G.FUNCS.text_super_juice(e, 5) - e.config.object.colours = { G.C.MONEY } - else - G.FUNCS.text_super_juice(e, 0) - e.config.object.colours = { G.C.UI.TEXT_LIGHT } - end - end - end -end - -function G.FUNCS.fn_pre_dollars_UI_set(e) - local new_preview_text = "" - local new_colour = nil - if FN.PRE.data then - if true and (FN.PRE.data.dollars.min ~= FN.PRE.data.dollars.max) then - if e.config.id == "fn_pre_dollars_top" then - new_preview_text = " " .. FN.PRE.get_sign_str(FN.PRE.data.dollars.max) .. FN.PRE.data.dollars.max - new_colour = FN.PRE.get_dollar_colour(FN.PRE.data.dollars.max) - elseif e.config.id == "fn_pre_dollars_bot" then - new_preview_text = " " .. FN.PRE.get_sign_str(FN.PRE.data.dollars.min) .. FN.PRE.data.dollars.min - new_colour = FN.PRE.get_dollar_colour(FN.PRE.data.dollars.min) - end - else - if e.config.id == "fn_pre_dollars_top" then - local _data = G.SETTINGS.FN.show_min_max and FN.PRE.data.dollars.min or FN.PRE.data.dollars.exact - - new_preview_text = " " .. FN.PRE.get_sign_str(_data) .. _data - new_colour = FN.PRE.get_dollar_colour(_data) - else - new_preview_text = "" - new_colour = FN.PRE.get_dollar_colour(0) - end - end - else - new_preview_text = " +??" - new_colour = FN.PRE.get_dollar_colour(0) - end - - if not FN.PRE.text.dollars[e.config.id:sub(-3)] or new_preview_text ~= FN.PRE.text.dollars[e.config.id:sub(-3)] then - FN.PRE.text.dollars[e.config.id:sub(-3)] = new_preview_text - e.config.object.colours = { new_colour } - e.config.object.scale = e.config.object.config.scale - e.config.object:update_text() - if e.config.object.config.maxw then - e.config.object.scale = e.config.object.config.scale * math.min(1, e.config.object.config.maxw/e.config.object.config.W) - e.config.object:update_text(true) - end - if not G.TAROT_INTERRUPT_PULSE then e.config.object:pulse(0.25) end - end -end diff --git a/compatibility/Preview/EngineSimulate.lua b/compatibility/Preview/EngineSimulate.lua deleted file mode 100644 index 3a6f2c6a8..000000000 --- a/compatibility/Preview/EngineSimulate.lua +++ /dev/null @@ -1,519 +0,0 @@ --- The heart of this library: it replicates the game's score evaluation. - -if not FN.SIM.run then - function FN.SIM.run() - local null_ret = { score = { min = 0, exact = 0, max = 0 }, dollars = { min = 0, exact = 0, max = 0 }, empty = true } - if #G.hand.highlighted < 1 then return null_ret end - - FN.SIM.init() - - FN.SIM.manage_state("SAVE") - FN.SIM.update_state_variables() - - if not FN.SIM.simulate_blind_debuffs() then - FN.SIM.simulate_joker_before_effects() - FN.SIM.add_base_chips_and_mult() - FN.SIM.simulate_blind_effects() - FN.SIM.simulate_scoring_cards() - FN.SIM.simulate_held_cards() - FN.SIM.simulate_joker_global_effects() - FN.SIM.simulate_consumable_effects() - FN.SIM.simulate_deck_effects() - else -- Only Matador at this point: - FN.SIM.simulate_all_jokers(G.jokers, { debuffed_hand = true }) - end - - FN.SIM.manage_state("RESTORE") - - return FN.SIM.get_results() - end - - function FN.SIM.init() - -- Reset: - FN.SIM.running = { - min = { chips = 0, mult = 0, dollars = 0 }, - exact = { chips = 0, mult = 0, dollars = 0 }, - max = { chips = 0, mult = 0, dollars = 0 }, - reps = 0, - } - - -- Fetch metadata about simulated play: - local hand_name, _, poker_hands, scoring_hand, _ = G.FUNCS.get_poker_hand_info(G.hand.highlighted) - FN.SIM.env.scoring_name = hand_name - - -- Identify played cards and extract necessary data: - FN.SIM.env.played_cards = {} - FN.SIM.env.scoring_cards = {} - local is_splash_joker = next(find_joker("Splash")) - table.sort(G.hand.highlighted, function(a, b) - return a.T.x < b.T.x - end) -- Sorts by positional x-value to mirror card order! - for _, card in ipairs(G.hand.highlighted) do - local is_scoring = false - for _, scoring_card in ipairs(scoring_hand) do - -- Either card is scoring because it's part of the scoring hand, - -- or there is Splash joker, or it's a Stone Card: - if card.sort_id == scoring_card.sort_id or is_splash_joker or card.ability.effect == "Stone Card" then - is_scoring = true - break - end - end - - local card_data = FN.SIM.get_card_data(card) - table.insert(FN.SIM.env.played_cards, card_data) - if is_scoring then table.insert(FN.SIM.env.scoring_cards, card_data) end - end - - -- Identify held cards and extract necessary data: - FN.SIM.env.held_cards = {} - for _, card in ipairs(G.hand.cards) do - -- Highlighted cards are simulated as played cards: - if not card.highlighted then - local card_data = FN.SIM.get_card_data(card) - table.insert(FN.SIM.env.held_cards, card_data) - end - end - - -- Extract necessary joker data: - FN.SIM.env.jokers = {} - for _, joker in ipairs(G.jokers.cards) do - local joker_data = { - -- P_CENTER keys for jokers have the form j_NAME, get rid of j_ - id = joker.config.center.key:sub(3, #joker.config.center.key), - ability = copy_table(joker.ability), - edition = copy_table(joker.edition), - rarity = joker.config.center.rarity, - debuff = joker.debuff, - } - table.insert(FN.SIM.env.jokers, joker_data) - end - - -- Extract necessary consumable data: - FN.SIM.env.consumables = {} - for _, consumable in ipairs(G.consumeables.cards) do - local consumable_data = { - -- P_CENTER keys have the form x_NAME, get rid of x_ - id = consumable.config.center.key:sub(3, #consumable.config.center.key), - ability = copy_table(consumable.ability), - } - table.insert(FN.SIM.env.consumables, consumable_data) - end - - -- Set extensible context template: - FN.SIM.get_context = function(cardarea, args) - local context = { - cardarea = cardarea, - full_hand = FN.SIM.env.played_cards, - scoring_name = hand_name, - scoring_hand = FN.SIM.env.scoring_cards, - poker_hands = poker_hands, - } - - for k, v in pairs(args) do - context[k] = v - end - - return context - end - end - - function FN.SIM.get_card_data(card_obj) - return { - rank = card_obj.base.id, - suit = card_obj.base.suit, - base_chips = card_obj.base.nominal, - ability = copy_table(card_obj.ability), - edition = copy_table(card_obj.edition), - seal = card_obj.seal, - debuff = card_obj.debuff, - lucky_trigger = {}, - } - end - - function FN.SIM.get_results() - local FNSR = FN.SIM.running - - local min_score = math.floor(FNSR.min.chips * FNSR.min.mult) - local exact_score = math.floor(FNSR.exact.chips * FNSR.exact.mult) - local max_score = math.floor(FNSR.max.chips * FNSR.max.mult) - - return { - score = { min = min_score, exact = exact_score, max = max_score }, - dollars = { min = FNSR.min.dollars, exact = FNSR.exact.dollars, max = FNSR.max.dollars }, - } - end - - -- - -- GAME STATE MANAGEMENT: - -- - - function FN.SIM.manage_state(save_or_restore) - local FNSO = FN.SIM.orig - - if save_or_restore == "SAVE" then - FNSO.random_data = copy_table(G.GAME.pseudorandom) - FNSO.hand_data = copy_table(G.GAME.hands) - return - end - - if save_or_restore == "RESTORE" then - G.GAME.pseudorandom = FNSO.random_data - G.GAME.hands = FNSO.hand_data - return - end - end - - function FN.SIM.update_state_variables() - -- Increment poker hand played this run/round: - local hand_info = G.GAME.hands[FN.SIM.env.scoring_name] - hand_info.played = hand_info.played + 1 - hand_info.played_this_round = hand_info.played_this_round + 1 - end - - -- - -- MACRO LEVEL: - -- - - function FN.SIM.simulate_scoring_cards() - for _, scoring_card in ipairs(FN.SIM.env.scoring_cards) do - FN.SIM.simulate_card_in_context(scoring_card, G.play) - end - end - - function FN.SIM.simulate_held_cards() - for _, held_card in ipairs(FN.SIM.env.held_cards) do - FN.SIM.simulate_card_in_context(held_card, G.hand) - end - end - - function FN.SIM.simulate_joker_global_effects() - for _, joker in ipairs(FN.SIM.env.jokers) do - if joker.edition then -- Foil and Holo: - if joker.edition.chips then FN.SIM.add_chips(joker.edition.chips) end - if joker.edition.mult then FN.SIM.add_mult(joker.edition.mult) end - end - - FN.SIM.simulate_joker(joker, FN.SIM.get_context(G.jokers, { global = true })) - - -- Joker-on-joker effects (eg. Blueprint): - FN.SIM.simulate_all_jokers(G.jokers, { other_joker = joker }) - - if joker.edition then -- Poly: - if joker.edition.x_mult then FN.SIM.x_mult(joker.edition.x_mult) end - end - end - end - - function FN.SIM.simulate_consumable_effects() - for _, consumable in ipairs(FN.SIM.env.consumables) do - if consumable.ability.set == "Planet" and not consumable.debuff then - if - G.GAME.used_vouchers.v_observatory - and consumable.ability.consumeable.hand_type == FN.SIM.env.scoring_name - then - FN.SIM.x_mult(G.P_CENTERS.v_observatory.config.extra) - end - end - end - end - - function FN.SIM.add_base_chips_and_mult() - local played_hand_data = G.GAME.hands[FN.SIM.env.scoring_name] - FN.SIM.add_chips(played_hand_data.chips) - FN.SIM.add_mult(played_hand_data.mult) - end - - function FN.SIM.simulate_joker_before_effects() - for _, joker in ipairs(FN.SIM.env.jokers) do - FN.SIM.simulate_joker(joker, FN.SIM.get_context(G.jokers, { before = true })) - end - end - - function FN.SIM.simulate_joker_discard_effects(cards, card) - for _, joker in ipairs(FN.SIM.env.jokers) do - FN.SIM.simulate_joker( - joker, - FN.SIM.get_context(G.hand, { discard = true, cards = cards, other_card = card }) - ) - end - end - - function FN.SIM.simulate_blind_effects() - if G.GAME.blind.disabled then return end - - if G.GAME.blind.name == "The Flint" then - local function flint(data) - local half_chips = math.floor(data.chips / 2 + 0.5) - local half_mult = math.floor(data.mult / 2 + 0.5) - data.chips = FN.SIM.mod_chips(math.max(half_chips, 0)) - data.mult = FN.SIM.mod_mult(math.max(half_mult, 1)) - end - - flint(FN.SIM.running.min) - flint(FN.SIM.running.exact) - flint(FN.SIM.running.max) - else - -- Other blinds do not impact scoring; refer to Blind:modify_hand(..) - end - end - - function FN.SIM.simulate_deck_effects() - if FN.SIM.is_deck("b_plasma") then - local function plasma(data) - local sum = data.chips + data.mult - local half_sum = math.floor(sum / 2) - data.chips = FN.SIM.mod_chips(half_sum) - data.mult = FN.SIM.mod_mult(half_sum) - end - - plasma(FN.SIM.running.min) - plasma(FN.SIM.running.exact) - plasma(FN.SIM.running.max) - elseif G.GAME.modifiers.mp_score_instability then - local function unplasma(data) - local diff = data.chips - data.mult - if diff > 0 then - diff = math.min(diff, data.mult - 1) - elseif diff < 0 then - diff = math.max(diff, -data.chips) - end - data.chips = FN.SIM.mod_chips(data.chips + diff) - data.mult = FN.SIM.mod_mult(data.mult - diff) - end - - unplasma(FN.SIM.running.min) - unplasma(FN.SIM.running.exact) - unplasma(FN.SIM.running.max) - elseif FN.SIM.is_deck("b_mp_echodeck") then - -- Do something? - else - -- Other decks do not impact scoring; refer to Back:trigger_effect(..) - end - end - - function FN.SIM.simulate_blind_debuffs() - local blind_obj = G.GAME.blind - if blind_obj.disabled then return false end - - -- The following are part of Blind:press_play() - - if blind_obj.name == "The Hook" then - blind_obj.triggered = true - - local held = FN.SIM.env.held_cards - local n = #held - local combinations = {} - - -- Generate all possible discard combinations - if n == 0 then - table.insert(combinations, {}) - elseif n == 1 then - for a = 1, n do - table.insert(combinations, { a }) - end - elseif n >= 2 then - for a = 1, n - 1 do - for b = a + 1, n do - table.insert(combinations, { a, b }) - end - end - end - - local min_score, max_score = math.huge, -math.huge - local min_dollars, max_dollars = math.huge, -math.huge - - for _, discard_idxs in ipairs(combinations) do - -- Deep copy held cards - local held_copy = {} - local discarded = {} - for i, card in ipairs(held) do - held_copy[i] = copy_table(card) - end - - -- Remove discard cards from held_copy - table.sort(discard_idxs, function(a, b) - return a > b - end) - for _, idx in ipairs(discard_idxs) do - discarded[#discarded + 1] = table.remove(held_copy, idx) - end - - -- Backup and replace held cards and jokers temporarily - local backup_held = FN.SIM.env.held_cards - FN.SIM.env.held_cards = held_copy - local backup_jokers = copy_table(FN.SIM.env.jokers) - - -- Reset sim state - FN.SIM.running.min = { chips = 0, mult = 0, dollars = 0 } - FN.SIM.running.exact = { chips = 0, mult = 0, dollars = 0 } - FN.SIM.running.max = { chips = 0, mult = 0, dollars = 0 } - - for i = 1, #discarded do - FN.SIM.simulate_joker_discard_effects(discarded, discarded[i]) - end - - -- Simulate score - FN.SIM.simulate_joker_before_effects() - FN.SIM.add_base_chips_and_mult() - FN.SIM.simulate_blind_effects() - FN.SIM.simulate_scoring_cards() - FN.SIM.simulate_held_cards() - FN.SIM.simulate_joker_global_effects() - FN.SIM.simulate_consumable_effects() - FN.SIM.simulate_deck_effects() - - -- Evaluate score - local res = FN.SIM.get_results() - min_score = math.min(min_score, res.score.min) - max_score = math.max(max_score, res.score.max) - min_dollars = math.min(min_dollars, res.dollars.min) - max_dollars = math.max(max_dollars, res.dollars.max) - - -- Restore original held cards and jokers - FN.SIM.env.held_cards = backup_held - FN.SIM.env.jokers = backup_jokers - end - - -- Overwrite final min/max range based on permutations - FN.SIM.running.min = { chips = min_score, mult = 1, dollars = min_dollars } - FN.SIM.running.max = { chips = max_score, mult = 1, dollars = max_dollars } - - -- NOTE: FN.SIM.running.exact remains unset here; it's not relevant in this projection context - return true -- Prevent default simulation since we’ve replaced it entirely - end - - if blind_obj.name == "The Tooth" then - blind_obj.triggered = true - FN.SIM.add_dollars(-1 * #FN.SIM.env.played_cards) - end - - -- The following are part of Blind:debuff_hand(..) - - if blind_obj.name == "The Arm" then - blind_obj.triggered = false - - local played_hand_name = FN.SIM.env.scoring_name - if G.GAME.hands[played_hand_name].level > 1 then - blind_obj.triggered = true - -- NOTE: Important to save/restore G.GAME.hands here - -- NOTE: Implementation mirrors level_up_hand(..) - local played_hand_data = G.GAME.hands[played_hand_name] - played_hand_data.level = math.max(1, played_hand_data.level - 1) - played_hand_data.mult = - math.max(1, played_hand_data.s_mult + (played_hand_data.level - 1) * played_hand_data.l_mult) - played_hand_data.chips = - math.max(0, played_hand_data.s_chips + (played_hand_data.level - 1) * played_hand_data.l_chips) - end - return false -- IMPORTANT: Avoid duplicate effects from Blind:debuff_hand() below - end - - if blind_obj.name == "The Ox" then - blind_obj.triggered = false - - if FN.SIM.env.scoring_name == G.GAME.current_round.most_played_poker_hand then - blind_obj.triggered = true - FN.SIM.add_dollars(-G.GAME.dollars) - end - return false -- IMPORTANT: Avoid duplicate effects from Blind:debuff_hand() below - end - - return blind_obj:debuff_hand(G.hand.highlighted, FN.SIM.env.poker_hands, FN.SIM.env.scoring_name, true) - end - - -- - -- MICRO LEVEL (CARDS): - -- - - function FN.SIM.simulate_card_in_context(card, cardarea) - -- Reset and collect repetitions: - FN.SIM.running.reps = 1 - if card.seal == "Red" then FN.SIM.add_reps(1) end - if FN.SIM.is_deck("b_mp_echodeck") then FN.SIM.add_reps(1) end -- I guess this works? - FN.SIM.simulate_all_jokers(cardarea, { other_card = card, repetition = true }) - - -- Apply effects: - for _ = 1, FN.SIM.running.reps do - FN.SIM.simulate_card(card, FN.SIM.get_context(cardarea, {})) - FN.SIM.simulate_all_jokers(cardarea, { other_card = card, individual = true }) - end - end - - function FN.SIM.simulate_card(card_data, context) - -- Do nothing if debuffed: - if card_data.debuff then return end - - if context.cardarea == G.play then - -- Chips: - if card_data.ability.effect == "Stone Card" then - FN.SIM.add_chips(card_data.ability.bonus + (card_data.ability.perma_bonus or 0)) - else - FN.SIM.add_chips(card_data.base_chips + card_data.ability.bonus + (card_data.ability.perma_bonus or 0)) - end - - -- Mult: - if card_data.ability.effect == "Lucky Card" then - local exact_mult, min_mult, max_mult = - FN.SIM.get_probabilistic_extremes(pseudorandom("nope"), 5, card_data.ability.mult, 0) - FN.SIM.add_mult(exact_mult, min_mult, max_mult) - -- Careful not to overwrite `card_data.lucky_trigger` outright: - if exact_mult > 0 then card_data.lucky_trigger.exact = true end - if min_mult > 0 then card_data.lucky_trigger.min = true end - if max_mult > 0 then card_data.lucky_trigger.max = true end - else - FN.SIM.add_mult(card_data.ability.mult) - end - - -- XMult: - if card_data.ability.x_mult > 1 then FN.SIM.x_mult(card_data.ability.x_mult) end - - -- Dollars: - if card_data.seal == "Gold" then FN.SIM.add_dollars(3) end - if card_data.ability.p_dollars > 0 then - if card_data.ability.effect == "Lucky Card" then - local exact_dollars, min_dollars, max_dollars = FN.SIM.get_probabilistic_extremes( - pseudorandom("notthistime"), - 15, - card_data.ability.p_dollars, - 0 - ) - FN.SIM.add_dollars(exact_dollars, min_dollars, max_dollars) - -- Careful not to overwrite `card_data.lucky_trigger` outright: - if exact_dollars > 0 then card_data.lucky_trigger.exact = true end - if min_dollars > 0 then card_data.lucky_trigger.min = true end - if max_dollars > 0 then card_data.lucky_trigger.max = true end - else - FN.SIM.add_dollars(card_data.ability.p_dollars) - end - end - - -- Edition: - if card_data.edition then - if card_data.edition.chips then FN.SIM.add_chips(card_data.edition.chips) end - if card_data.edition.mult then FN.SIM.add_mult(card_data.edition.mult) end - if card_data.edition.x_mult then FN.SIM.x_mult(card_data.edition.x_mult) end - end - elseif context.cardarea == G.hand then - if card_data.ability.h_mult > 0 then FN.SIM.add_mult(card_data.ability.h_mult) end - - if card_data.ability.h_x_mult > 0 then FN.SIM.x_mult(card_data.ability.h_x_mult) end - end - end - - -- - -- MICRO LEVEL (JOKERS): - -- - - function FN.SIM.simulate_all_jokers(cardarea, context_args) - for _, joker in ipairs(FN.SIM.env.jokers) do - FN.SIM.simulate_joker(joker, FN.SIM.get_context(cardarea, context_args)) - end - end - - function FN.SIM.simulate_joker(joker_obj, context) - -- Do nothing if debuffed: - if joker_obj.debuff then return end - - local joker_simulation_function = FN.SIM.JOKERS["simulate_" .. joker_obj.id] - if joker_simulation_function then joker_simulation_function(joker_obj, context) end - end -end diff --git a/compatibility/Preview/InitPreview.lua b/compatibility/Preview/InitPreview.lua deleted file mode 100644 index a94344191..000000000 --- a/compatibility/Preview/InitPreview.lua +++ /dev/null @@ -1,132 +0,0 @@ --- Global values that must be present for the rest of this mod to work. - -if not FN then FN = {} end - -FN.PRE = { - data = { - score = { min = 0, exact = 0, max = 0 }, - dollars = { min = 0, exact = 0, max = 0 }, - empty = true, - }, - text = { - score = { l = "", r = "", m = "" }, - dollars = { top = "", bot = "" }, - }, - joker_order = {}, - hand_order = {}, - show_preview = false, - lock_updates = false, - on_startup = true, - five_second_coroutine = nil, - calculate_request = nil, -} - - -function FN.PRE.start_new_coroutine() - -- Defaults are vanilla: free preview, slow (5s) delay. - -- Layers like pressure_timer set both via ruleset scalars. - local timer_delay, timer_cost = 0, 0 - if MP.LOBBY and MP.LOBBY.code and MP.LOBBY.config.timer and not MP.is_pvp_boss() then - timer_delay = 5 - timer_cost = 0 - - local ruleset = MP.current_ruleset() - timer_delay = MP.LOBBY.config.preview_calculate_delay or ruleset.preview_calculate_delay or timer_delay - timer_cost = MP.LOBBY.config.preview_calculate_cost or ruleset.preview_calculate_cost or timer_cost - end - - if not FN.PRE.calculate_request then - FN.PRE.lock_updates = true - FN.PRE.show_preview = true - local func = function() - FN.PRE.calculate_request = nil - FN.PRE.lock_updates = false - FN.PRE.show_preview = true - FN.PRE.data = FN.PRE.simulate() - - -- Subtract cost from timer (only if there's a cost — vanilla preview is free). - -- Min-clamp prevents an over-zealous calc from killing the player outright. - if - timer_cost > 0 - and FN.PRE.data and not FN.PRE.data.empty - and MP.LOBBY.code and not MP.is_pvp_boss() - and MP.LOBBY.config.timer - and not MP.GAME.timer_started - and not MP.GAME.nemesis_timer_started - and not MP.GAME.timer_consumed - then - MP.UI.consume_timer(timer_cost, nil, math.max(10, timer_cost)) - end - return true - end - FN.PRE.calculate_request = Event({ - trigger = "after", delay = timer_delay, timer = "REAL", - blockable = false, blocking = false, - func = func - }) - G.E_MANAGER:add_event(FN.PRE.calculate_request) - end -end - -function FN.PRE.stop_current_coroutine(no_interrupt) - if not MP.INTEGRATIONS.Preview then return end - if no_interrupt and FN.PRE.lock_updates then return end - if FN.PRE.show_preview then - FN.PRE.show_preview = false - FN.PRE.data = FN.PRE.cleanup() - end - if FN.PRE.calculate_request then - FN.PRE.calculate_request.func = function() return true end - FN.PRE.calculate_request.complete = true - FN.PRE.calculate_request = nil - FN.PRE.lock_updates = false - end -end - ---[[ -function FN.PRE.start_new_coroutine() - if FN.PRE.five_second_coroutine and coroutine.status(FN.PRE.five_second_coroutine) ~= "dead" then - FN.PRE.five_second_coroutine = nil -- Reset the coroutine - end - - -- Create and start a new coroutine - FN.PRE.five_second_coroutine = coroutine.create(function() - -- Show UI updates - FN.PRE.lock_updates = true - FN.PRE.show_preview = true - FN.PRE.add_update_event("immediate") -- Force UI refresh - - local start_time = os.time() - if MP.LOBBY.code and not MP.is_pvp_boss() then - while os.time() - start_time < 5 do - FN.PRE.simulate() -- Force a simulation run - FN.PRE.add_update_event("immediate") -- Ensure UI updates - coroutine.yield() -- Allow game to continue running - end - end - -- Delay for 5 seconds - FN.PRE.lock_updates = false - FN.PRE.show_preview = true - FN.PRE.add_update_event("immediate") -- Refresh UI again - end) - - coroutine.resume(FN.PRE.five_second_coroutine) -- Start it immediately -end -]] - -FN.PRE._start_up = Game.start_up -function Game:start_up() - FN.PRE._start_up(self) - - if not MP.INTEGRATIONS.Preview then return end - - if not G.SETTINGS.FN then G.SETTINGS.FN = {} end - if not G.SETTINGS.FN.PRE then - G.SETTINGS.FN.PRE = true - - G.SETTINGS.FN.preview_score = true - G.SETTINGS.FN.preview_dollars = true - G.SETTINGS.FN.hide_face_down = true - G.SETTINGS.FN.show_min_max = true - end -end diff --git a/compatibility/Preview/InitSimulate.lua b/compatibility/Preview/InitSimulate.lua deleted file mode 100644 index fc435f8d1..000000000 --- a/compatibility/Preview/InitSimulate.lua +++ /dev/null @@ -1,36 +0,0 @@ --- Global values that must be present for the rest of this mod to work. - -if not FN then FN = {} end - -FN.SIM = { - JOKERS = {}, - - running = { - --- Table to store workings (ie. running totals): - min = { chips = 0, mult = 0, dollars = 0 }, - exact = { chips = 0, mult = 0, dollars = 0 }, - max = { chips = 0, mult = 0, dollars = 0 }, - reps = 0, - }, - - env = { - --- Table to store data about the simulated play: - jokers = {}, -- Derived from G.jokers.cards - played_cards = {}, -- Derived from G.hand.highlighted - scoring_cards = {}, -- Derived according to evaluate_play() - held_cards = {}, -- Derived from G.hand minus G.hand.highlighted - consumables = {}, -- Derived from G.consumeables.cards - scoring_name = "", -- Derived according to evaluate_play() - }, - - orig = { - --- Table to store game data that gets modified during simulation: - random_data = {}, -- G.GAME.pseudorandom - hand_data = {}, -- G.GAME.hands - }, - - misc = { - --- Table to store ancillary status variables: - next_stone_id = -1, - }, -} diff --git a/compatibility/Preview/InterfacePreview.lua b/compatibility/Preview/InterfacePreview.lua deleted file mode 100644 index 517b3fc40..000000000 --- a/compatibility/Preview/InterfacePreview.lua +++ /dev/null @@ -1,194 +0,0 @@ --- The user interface components that display simulation results. - --- Append node for preview text to the HUD: -local orig_hud = create_UIBox_HUD -function create_UIBox_HUD() - local contents = orig_hud() - - if not MP.INTEGRATIONS.Preview then return contents end - - -- Check if preview is disabled in lobby options - if MP.LOBBY.config and MP.LOBBY.config.preview_disabled then return contents end - - local score_node_wrap = - { n = G.UIT.R, config = { id = "fn_pre_score_wrap", align = "cm", padding = 0.1 }, nodes = {} } - table.insert(score_node_wrap.nodes, FN.PRE.get_score_node()) - local calculate_score_button_wrap = - { n = G.UIT.R, config = { id = "fn_calculate_score_button_wrap", align = "cm", padding = 0.1 }, nodes = {} } - table.insert(calculate_score_button_wrap.nodes, FN.PRE.get_calculate_score_button()) - local score_wrap = { - n = G.UIT.R, - config = { id = "fn_real_wrap", align = "cm", padding = 0.0 }, - nodes = { score_node_wrap, calculate_score_button_wrap }, - } - - table.insert(contents.nodes[1].nodes[1].nodes[4].nodes[1].nodes, score_wrap) -- you can only do one so we have to wrap both of them. do not ask. i have no idea why - - return contents -end - -function G.FUNCS.calculate_score_button() - FN.PRE.start_new_coroutine() -end - -function FN.PRE.get_calculate_score_button() - return { - n = G.UIT.C, - config = { - id = "calculate_score_button", - button = "calculate_score_button", - align = "cm", - minh = 0.42, - padding = 0.05, - minw = 3, - r = 0.02, - colour = G.C.RED, - hover = true, - shadow = true, - maxw = 4.5 - }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm" }, - nodes = { - { - n = G.UIT.T, - config = { - text = MP.UTILS.get_preview_cfg("button"), - colour = G.C.UI.TEXT_LIGHT, - shadow = true, - scale = 0.36, - }, - }, - }, - }, - }, - } -end - -function FN.PRE.get_score_node() - local text_scale = nil - if true then - text_scale = 0.5 - else - text_scale = 0.75 - end - - return { - n = G.UIT.C, - config = { id = "fn_pre_score", align = "cm", minh = 0.5 }, - nodes = { - { - n = G.UIT.O, - config = { - id = "fn_pre_l", - func = "fn_pre_score_UI_set", - object = DynaText({ - string = { { ref_table = FN.PRE.text.score, ref_value = "l" } }, - colours = { G.C.UI.TEXT_LIGHT }, - shadow = true, - float = true, - scale = text_scale, - maxw = 2, - }), - }, - }, - { - n = G.UIT.O, - config = { - id = "fn_pre_m", - func = "fn_pre_score_UI_set", - object = DynaText({ - string = { { ref_table = FN.PRE.text.score, ref_value = "m" } }, - colours = { G.C.UI.TEXT_LIGHT }, - shadow = true, - float = true, - scale = text_scale, - maxw = 4, - }), - }, - }, - { - n = G.UIT.O, - config = { - id = "fn_pre_r", - func = "fn_pre_score_UI_set", - object = DynaText({ - string = { { ref_table = FN.PRE.text.score, ref_value = "r" } }, - colours = { G.C.UI.TEXT_LIGHT }, - shadow = true, - float = true, - scale = text_scale, - maxw = 2, - }), - }, - }, - }, - } -end - --- TODO Implement -function FN.get_preview_settings_page() - local function preview_score_toggle_callback(e) - if not G.HUD then return end - - if G.SETTINGS.FN.preview_score then - -- Preview was just enabled, so add preview node: - G.HUD:add_child(FN.PRE.get_score_node(), G.HUD:get_UIE_by_ID("fn_pre_score_wrap")) - FN.PRE.data = FN.PRE.simulate() - else - -- Preview was just disabled, so remove preview node: - G.HUD:get_UIE_by_ID("fn_pre_score").parent:remove() - end - G.HUD:recalculate() - end - - local function preview_dollars_toggle_callback(_) - if not G.HUD then return end - - if G.SETTINGS.FN.preview_dollars then - -- Preview was just enabled, so add preview node: - G.HUD:add_child(FN.PRE.get_dollars_node(), G.HUD:get_UIE_by_ID("fn_pre_dollars_wrap")) - FN.PRE.data = FN.PRE.simulate() - else - -- Preview was just disabled, so remove preview node: - G.HUD:get_UIE_by_ID("fn_pre_dollars").parent:remove() - end - G.HUD:recalculate() - end - - local function face_down_toggle_callback(_) - if not G.HUD then return end - - FN.PRE.data = FN.PRE.simulate() - G.HUD:recalculate() - end - - return { - n = G.UIT.ROOT, - config = { align = "cm", padding = 0.05, colour = G.C.CLEAR }, - nodes = { - create_toggle({ - id = "score_toggle", - label = "Enable Score Preview", - ref_table = G.SETTINGS.FN, - ref_value = "preview_score", - callback = preview_score_toggle_callback, - }), - create_toggle({ - id = "dollars_toggle", - label = "Enable Money Preview", - ref_table = G.SETTINGS.FN, - ref_value = "preview_dollars", - callback = preview_dollars_toggle_callback, - }), - create_toggle({ - label = "Hide Preview if Any Card is Face-Down", - ref_table = G.SETTINGS.FN, - ref_value = "hide_face_down", - callback = face_down_toggle_callback, - }), - }, - } -end diff --git a/compatibility/Preview/Jokers/Multiplayer.lua b/compatibility/Preview/Jokers/Multiplayer.lua deleted file mode 100644 index 76c20caec..000000000 --- a/compatibility/Preview/Jokers/Multiplayer.lua +++ /dev/null @@ -1,61 +0,0 @@ -FNSJ.simulate_mp_defensive_joker = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then FN.SIM.add_chips(joker_obj.ability.t_chips) end -end - -FNSJ.simulate_mp_taxes = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.extra.mult) end -end - -FNSJ.simulate_mp_pacifist = function(joker_obj, context) - if context.cardarea == G.jokers and context.global and not MP.is_pvp_boss() then - FN.SIM.x_mult(joker_obj.ability.extra.x_mult) - end -end - -FNSJ.simulate_mp_conjoined_joker = function(joker_obj, context) - if context.cardarea == G.jokers and context.global and MP.is_pvp_boss() then - FN.SIM.x_mult(joker_obj.ability.extra.x_mult) - end -end - -FNSJ.simulate_mp_hanging_chad = function(joker_obj, context) - if context.cardarea == G.play and context.repetition then - if context.other_card == context.scoring_hand[1] and not context.other_card.debuff then - FN.SIM.add_reps(joker_obj.ability.extra) - end - if context.other_card == context.scoring_hand[2] and not context.other_card.debuff then - FN.SIM.add_reps(joker_obj.ability.extra) - end - end -end - -FNSJ.simulate_mp_lets_go_gambling = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - local rand = pseudorandom("gambling") -- Must reuse same pseudorandom value: - local exact_xmult, min_xmult, max_xmult = - FN.SIM.get_probabilistic_extremes(rand, joker_obj.ability.extra.odds, joker_obj.ability.extra.xmult, 1) - local exact_money, min_money, max_money = - FN.SIM.get_probabilistic_extremes(rand, joker_obj.ability.extra.odds, joker_obj.ability.extra.dollars, 0) - - FN.SIM.add_dollars(exact_money, min_money, max_money) - FN.SIM.x_mult(exact_xmult, min_xmult, max_xmult) - end -end - -FNSJ.simulate_mp_seltzer = function(joker_obj, context) - if context.cardarea == G.play and context.repetition then FN.SIM.add_reps(1) end -end - -FNSJ.simulate_mp_bloodstone = function(joker_obj, context) - if context.cardarea == G.play and context.individual then - if FN.SIM.is_suit(context.other_card, "Hearts") and not context.other_card.debuff then - local exact_xmult, min_xmult, max_xmult = FN.SIM.get_probabilistic_extremes( - pseudorandom("nopeagain"), - joker_obj.ability.extra.odds, - joker_obj.ability.extra.Xmult, - 1 - ) - FN.SIM.x_mult(exact_xmult, min_xmult, max_xmult) - end - end -end diff --git a/compatibility/Preview/Jokers/_Vanilla.lua b/compatibility/Preview/Jokers/_Vanilla.lua deleted file mode 100644 index c923f5d26..000000000 --- a/compatibility/Preview/Jokers/_Vanilla.lua +++ /dev/null @@ -1,949 +0,0 @@ ---- Divvy's Simulation for Balatro - _Vanilla.lua --- --- The simulation functions for all of the vanilla Balatro jokers. - -local FNSJ = FN.SIM.JOKERS - -FNSJ.simulate_joker = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.mult) end -end -FNSJ.simulate_greedy_joker = function(joker_obj, context) - FN.SIM.JOKERS.add_suit_mult(joker_obj, context) -end -FNSJ.simulate_lusty_joker = function(joker_obj, context) - FN.SIM.JOKERS.add_suit_mult(joker_obj, context) -end -FNSJ.simulate_wrathful_joker = function(joker_obj, context) - FN.SIM.JOKERS.add_suit_mult(joker_obj, context) -end -FNSJ.simulate_gluttenous_joker = function(joker_obj, context) - FN.SIM.JOKERS.add_suit_mult(joker_obj, context) -end -FNSJ.simulate_jolly = function(joker_obj, context) - FN.SIM.JOKERS.add_type_mult(joker_obj, context) -end -FNSJ.simulate_zany = function(joker_obj, context) - FN.SIM.JOKERS.add_type_mult(joker_obj, context) -end -FNSJ.simulate_mad = function(joker_obj, context) - FN.SIM.JOKERS.add_type_mult(joker_obj, context) -end -FNSJ.simulate_crazy = function(joker_obj, context) - FN.SIM.JOKERS.add_type_mult(joker_obj, context) -end -FNSJ.simulate_droll = function(joker_obj, context) - FN.SIM.JOKERS.add_type_mult(joker_obj, context) -end -FNSJ.simulate_sly = function(joker_obj, context) - FN.SIM.JOKERS.add_type_chips(joker_obj, context) -end -FNSJ.simulate_wily = function(joker_obj, context) - FN.SIM.JOKERS.add_type_chips(joker_obj, context) -end -FNSJ.simulate_clever = function(joker_obj, context) - FN.SIM.JOKERS.add_type_chips(joker_obj, context) -end -FNSJ.simulate_devious = function(joker_obj, context) - FN.SIM.JOKERS.add_type_chips(joker_obj, context) -end -FNSJ.simulate_crafty = function(joker_obj, context) - FN.SIM.JOKERS.add_type_chips(joker_obj, context) -end -FNSJ.simulate_half = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - if #context.full_hand <= joker_obj.ability.extra.size then FN.SIM.add_mult(joker_obj.ability.extra.mult) end - end -end -FNSJ.simulate_stencil = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - local xmult = G.jokers.config.card_limit - #FN.SIM.env.jokers - for _, joker in ipairs(FN.SIM.env.jokers) do - if joker.ability.name == "Joker Stencil" then xmult = xmult + 1 end - end - if joker_obj.ability.x_mult > 1 then FN.SIM.x_mult(joker_obj.ability.x_mult) end - end -end -FNSJ.simulate_four_fingers = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_mime = function(joker_obj, context) - if context.cardarea == G.hand and context.repetition then FN.SIM.add_reps(joker_obj.ability.extra) end -end -FNSJ.simulate_credit_card = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_ceremonial = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.mult) end -end -FNSJ.simulate_banner = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - if G.GAME.current_round.discards_left > 0 then - local chips = G.GAME.current_round.discards_left * joker_obj.ability.extra - FN.SIM.add_chips(chips) - end - end -end -FNSJ.simulate_mystic_summit = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - if G.GAME.current_round.discards_left == joker_obj.ability.extra.d_remaining then - FN.SIM.add_mult(joker_obj.ability.extra.mult) - end - end -end -FNSJ.simulate_marble = function(joker_obj, context) - -- Effect not relevant (Blind) -end -FNSJ.simulate_loyalty_card = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - local loyalty_diff = G.GAME.hands_played - joker_obj.ability.hands_played_at_create - local loyalty_remaining = ((joker_obj.ability.extra.every - 1) - loyalty_diff) - % (joker_obj.ability.extra.every + 1) - if loyalty_remaining == joker_obj.ability.extra.every then FN.SIM.x_mult(joker_obj.ability.extra.Xmult) end - end -end -FNSJ.simulate_8_ball = function(joker_obj, context) - -- Effect might be relevant? -end -FNSJ.simulate_misprint = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - local exact_mult = pseudorandom("nope", joker_obj.ability.extra.min, joker_obj.ability.extra.max) - FN.SIM.add_mult(exact_mult, joker_obj.ability.extra.min, joker_obj.ability.extra.max) - end -end -FNSJ.simulate_dusk = function(joker_obj, context) - if context.cardarea == G.play and context.repetition then - -- Note: Checking against 1 is needed as hands_left is not decremented as part of simulation - if G.GAME.current_round.hands_left == 1 then FN.SIM.add_reps(joker_obj.ability.extra) end - end -end -FNSJ.simulate_raised_fist = function(joker_obj, context) - if context.cardarea == G.hand and context.individual then - local cur_mult, cur_rank = 15, 15 - local raised_card = nil - for _, card in ipairs(FN.SIM.env.held_cards) do - if cur_rank >= card.rank and card.ability.effect ~= "Stone Card" then - cur_mult = card.base_chips - cur_rank = card.rank - raised_card = card - end - end - if raised_card == context.other_card and not context.other_card.debuff then FN.SIM.add_mult(2 * cur_mult) end - end -end -FNSJ.simulate_chaos = function(joker_obj, context) - -- Effect not relevant (Free Reroll) -end -FNSJ.simulate_fibonacci = function(joker_obj, context) - if context.cardarea == G.play and context.individual then - if FN.SIM.is_rank(context.other_card, { 2, 3, 5, 8, 14 }) and not context.other_card.debuff then - FN.SIM.add_mult(joker_obj.ability.extra) - end - end -end -FNSJ.simulate_steel_joker = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - FN.SIM.x_mult(1 + joker_obj.ability.extra * joker_obj.ability.steel_tally) - end -end -FNSJ.simulate_scary_face = function(joker_obj, context) - if context.cardarea == G.play and context.individual then - if FN.SIM.is_face(context.other_card) and not context.other_card.debuff then - FN.SIM.add_chips(joker_obj.ability.extra) - end - end -end -FNSJ.simulate_abstract = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - FN.SIM.add_mult(#FN.SIM.env.jokers * joker_obj.ability.extra) - end -end -FNSJ.simulate_delayed_grat = function(joker_obj, context) - -- Effect not relevant (End of Round) -end -FNSJ.simulate_hack = function(joker_obj, context) - if context.cardarea == G.play and context.repetition then - if not context.other_card.debuff and FN.SIM.is_rank(context.other_card, { 2, 3, 4, 5 }) then - FN.SIM.add_reps(joker_obj.ability.extra) - end - end -end -FNSJ.simulate_pareidolia = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_gros_michel = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.extra.mult) end -end -FNSJ.simulate_even_steven = function(joker_obj, context) - if context.cardarea == G.play and context.individual then - if not context.other_card.debuff and FN.SIM.check_rank_parity(context.other_card, true) then - FN.SIM.add_mult(joker_obj.ability.extra) - end - end -end -FNSJ.simulate_odd_todd = function(joker_obj, context) - if context.cardarea == G.play and context.individual then - if not context.other_card.debuff and FN.SIM.check_rank_parity(context.other_card, false) then - FN.SIM.add_chips(joker_obj.ability.extra) - end - end -end -FNSJ.simulate_scholar = function(joker_obj, context) - if context.cardarea == G.play and context.individual then - if FN.SIM.is_rank(context.other_card, 14) and not context.other_card.debuff then - FN.SIM.add_chips(joker_obj.ability.extra.chips) - FN.SIM.add_mult(joker_obj.ability.extra.mult) - end - end -end -FNSJ.simulate_business = function(joker_obj, context) - if context.cardarea == G.play and context.individual then - if FN.SIM.is_face(context.other_card) and not context.other_card.debuff then - local exact_dollars, min_dollars, max_dollars = - FN.SIM.get_probabilistic_extremes(pseudorandom("false"), joker_obj.ability.extra, 2, 0) - FN.SIM.add_dollars(exact_dollars, min_dollars, max_dollars) - end - end -end -FNSJ.simulate_supernova = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - FN.SIM.add_mult(G.GAME.hands[context.scoring_name].played) - end -end -FNSJ.simulate_ride_the_bus = function(joker_obj, context) - if context.cardarea == G.jokers and context.before and not context.blueprint then - local faces = false - for _, scoring_card in ipairs(context.scoring_hand) do - if FN.SIM.is_face(scoring_card) then faces = true end - end - if faces then - joker_obj.ability.mult = 0 - else - joker_obj.ability.mult = joker_obj.ability.mult + joker_obj.ability.extra - end - end - if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.mult) end -end -FNSJ.simulate_space = function(joker_obj, context) - -- TODO: Verify - if context.cardarea == G.jokers and context.before then - local hand_data = G.GAME.hands[FN.SIM.env.scoring_name] - - local rand = pseudorandom("bad") -- Must reuse same pseudorandom value: - local exact_chips, min_chips, max_chips = - FN.SIM.get_probabilistic_extremes(rand, joker_obj.ability.extra, hand_data.l_chips, 0) - local exact_mult, min_mult, max_mult = - FN.SIM.get_probabilistic_extremes(rand, joker_obj.ability.extra, hand_data.l_mult, 0) - - FN.SIM.add_chips(exact_chips, min_chips, max_chips) - FN.SIM.add_mult(exact_mult, min_mult, max_mult) - end -end -FNSJ.simulate_egg = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_burglar = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_blackboard = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - local black_suits, all_cards = 0, 0 - for _, card in ipairs(FN.SIM.env.held_cards) do - all_cards = all_cards + 1 - if FN.SIM.is_suit(card, "Clubs", true) or FN.SIM.is_suit(card, "Spades", true) then - black_suits = black_suits + 1 - end - end - if black_suits == all_cards then FN.SIM.x_mult(joker_obj.ability.extra) end - end -end -FNSJ.simulate_runner = function(joker_obj, context) - if context.cardarea == G.jokers and context.before and not context.blueprint then - if next(context.poker_hands["Straight"]) then - joker_obj.ability.extra.chips = joker_obj.ability.extra.chips + joker_obj.ability.extra.chip_mod - end - end - if context.cardarea == G.jokers and context.global then FN.SIM.add_chips(joker_obj.ability.extra.chips) end -end -FNSJ.simulate_ice_cream = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then FN.SIM.add_chips(joker_obj.ability.extra.chips) end -end -FNSJ.simulate_dna = function(joker_obj, context) - if context.cardarea == G.jokers and context.before then - if G.GAME.current_round.hands_played == 0 and #context.full_hand == 1 then - local new_card = copy_table(context.full_hand[1]) - table.insert(FN.SIM.env.held_cards, new_card) - end - end -end -FNSJ.simulate_splash = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_blue_joker = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - FN.SIM.add_chips(joker_obj.ability.extra * #G.deck.cards) - end -end -FNSJ.simulate_sixth_sense = function(joker_obj, context) - -- Effect might be relevant? -end -FNSJ.simulate_constellation = function(joker_obj, context) - FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) -end -FNSJ.simulate_hiker = function(joker_obj, context) - if context.cardarea == G.play and context.individual then - if not context.other_card.debuff then - context.other_card.ability.perma_bonus = (context.other_card.ability.perma_bonus or 0) - + joker_obj.ability.extra - end - end -end -FNSJ.simulate_faceless = function(joker_obj, context) - -- Effect not relevant (Discard) -end -FNSJ.simulate_green_joker = function(joker_obj, context) - if context.cardarea == G.jokers and context.before and not context.blueprint then - joker_obj.ability.mult = joker_obj.ability.mult + joker_obj.ability.extra.hand_add - end - if - context.cardarea == G.hand - and context.discard - and context.other_card == context.cards[1] - and not context.blueprint - then - joker_obj.ability.mult = math.max(0, joker_obj.ability.mult - joker_obj.ability.extra.discard_sub) - end - if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.mult) end -end -FNSJ.simulate_superposition = function(joker_obj, context) - -- Effect might be relevant? -end -FNSJ.simulate_todo_list = function(joker_obj, context) - if context.cardarea == G.jokers and context.before then - if context.scoring_name == joker_obj.ability.to_do_poker_hand then - FN.SIM.add_dollars(joker_obj.ability.extra.dollars) - end - end -end -FNSJ.simulate_cavendish = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then FN.SIM.x_mult(joker_obj.ability.extra.Xmult) end -end -FNSJ.simulate_card_sharp = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - if G.GAME.hands[context.scoring_name] and G.GAME.hands[context.scoring_name].played_this_round > 1 then - FN.SIM.x_mult(joker_obj.ability.extra.Xmult) - end - end -end -FNSJ.simulate_red_card = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.mult) end -end -FNSJ.simulate_madness = function(joker_obj, context) - FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) -end -FNSJ.simulate_square = function(joker_obj, context) - if context.cardarea == G.jokers and context.before and not context.blueprint then - if #context.full_hand == 4 then - joker_obj.ability.extra.chips = joker_obj.ability.extra.chips + joker_obj.ability.extra.chip_mod - end - end - if context.cardarea == G.jokers and context.global then FN.SIM.add_chips(joker_obj.ability.extra.chips) end -end -FNSJ.simulate_seance = function(joker_obj, context) - -- Effect might be relevant? (Consumable) -end -FNSJ.simulate_riff_raff = function(joker_obj, context) - -- Effect not relevant (Blind) -end -FNSJ.simulate_vampire = function(joker_obj, context) - if context.cardarea == G.jokers and context.before and not context.blueprint then - local num_enhanced = 0 - for _, card in ipairs(context.scoring_hand) do - if card.ability.name ~= "Default Base" and not card.debuff then - num_enhanced = num_enhanced + 1 - FN.SIM.set_ability(card, G.P_CENTERS.c_base) - end - end - if num_enhanced > 0 then - joker_obj.ability.x_mult = joker_obj.ability.x_mult + (joker_obj.ability.extra * num_enhanced) - end - end - - FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) -end -FNSJ.simulate_shortcut = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_hologram = function(joker_obj, context) - FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) -end -FNSJ.simulate_vagabond = function(joker_obj, context) - -- Effect might be relevant? (Consumable) -end -FNSJ.simulate_baron = function(joker_obj, context) - if context.cardarea == G.hand and context.individual then - if FN.SIM.is_rank(context.other_card, 13) and not context.other_card.debuff then - FN.SIM.x_mult(joker_obj.ability.extra) - end - end -end -FNSJ.simulate_cloud_9 = function(joker_obj, context) - -- Effect not relevant (End of Round) -end -FNSJ.simulate_rocket = function(joker_obj, context) - -- Effect not relevant (End of Round) -end -FNSJ.simulate_obelisk = function(joker_obj, context) - if context.cardarea == G.jokers and context.before and not context.blueprint then - local reset = true - local play_more_than = (G.GAME.hands[context.scoring_name].played or 0) - for hand_name, hand in pairs(G.GAME.hands) do - if hand_name ~= context.scoring_name and hand.played >= play_more_than and hand.visible then - reset = false - end - end - if reset then - joker_obj.ability.x_mult = 1 - else - joker_obj.ability.x_mult = joker_obj.ability.x_mult + joker_obj.ability.extra - end - end - FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) -end -FNSJ.simulate_midas_mask = function(joker_obj, context) - if context.cardarea == G.jokers and context.before and not context.blueprint then - for _, card in ipairs(context.scoring_hand) do - if FN.SIM.is_face(card) then FN.SIM.set_ability(card, G.P_CENTERS.m_gold) end - end - end -end -FNSJ.simulate_luchador = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_photograph = function(joker_obj, context) - if context.cardarea == G.play and context.individual then - local first_face = nil - for i = 1, #context.scoring_hand do - if FN.SIM.is_face(context.scoring_hand[i]) then - first_face = context.scoring_hand[i] - break - end - end - if context.other_card == first_face and not context.other_card.debuff then - FN.SIM.x_mult(joker_obj.ability.extra) - end - end -end -FNSJ.simulate_gift = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_turtle_bean = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_erosion = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - local diff = G.GAME.starting_deck_size - #G.playing_cards - if diff > 0 then FN.SIM.add_mult(joker_obj.ability.extra * diff) end - end -end -FNSJ.simulate_reserved_parking = function(joker_obj, context) - if context.cardarea == G.hand and context.individual then - if FN.SIM.is_face(context.other_card) and not context.other_card.debuff then - local exact_dollars, min_dollars, max_dollars = FN.SIM.get_probabilistic_extremes( - pseudorandom("notthistime"), - joker_obj.ability.extra.odds, - joker_obj.ability.extra.dollars, - 0 - ) - FN.SIM.add_dollars(exact_dollars, min_dollars, max_dollars) - end - end -end -FNSJ.simulate_mail = function(joker_obj, context) - if context.cardarea == G.hand and context.discard then - if context.other_card.id == G.GAME.current_round.mail_card.id and not context.other_card.debuff then - FN.SIM.add_dollars(joker_obj.ability.extra) - end - end -end -FNSJ.simulate_to_the_moon = function(joker_obj, context) - -- Effect not relevant (End of Round) -end -FNSJ.simulate_hallucination = function(joker_obj, context) - -- Effect not relevant (Outside of Play) -end -FNSJ.simulate_fortune_teller = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - if G.GAME.consumeable_usage_total and G.GAME.consumeable_usage_total.tarot then - FN.SIM.add_mult(G.GAME.consumeable_usage_total.tarot) - end - end -end -FNSJ.simulate_juggler = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_drunkard = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_stone = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - FN.SIM.add_chips(joker_obj.ability.extra * joker_obj.ability.stone_tally) - end -end -FNSJ.simulate_golden = function(joker_obj, context) - -- Effect not relevant (End of Round) -end -FNSJ.simulate_lucky_cat = function(joker_obj, context) - if not joker_obj.ability.x_mult_range then - joker_obj.ability.x_mult_range = { - min = joker_obj.ability.x_mult, - exact = joker_obj.ability.x_mult, - max = joker_obj.ability.x_mult, - } - end - - if context.cardarea == G.play and context.individual and not context.blueprint then - local function lucky_cat(field) - if context.other_card.lucky_trigger and context.other_card.lucky_trigger[field] then - joker_obj.ability.x_mult_range[field] = joker_obj.ability.x_mult_range[field] + joker_obj.ability.extra - if joker_obj.ability.x_mult_range[field] < 1 then joker_obj.ability.x_mult_range[field] = 1 end -- Precaution - end - end - lucky_cat("min") - lucky_cat("exact") - lucky_cat("max") - end - - if context.cardarea == G.jokers and context.global then - FN.SIM.x_mult( - joker_obj.ability.x_mult_range.exact, - joker_obj.ability.x_mult_range.min, - joker_obj.ability.x_mult_range.max - ) - end -end -FNSJ.simulate_baseball = function(joker_obj, context) - if context.cardarea == G.jokers and context.other_joker then - if context.other_joker.rarity == 2 and context.other_joker ~= joker_obj then - FN.SIM.x_mult(joker_obj.ability.extra) - end - end -end -FNSJ.simulate_bull = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - local function bull(data) - return joker_obj.ability.extra * math.max(0, G.GAME.dollars + data.dollars) - end - local min_chips = bull(FN.SIM.running.min) - local exact_chips = bull(FN.SIM.running.exact) - local max_chips = bull(FN.SIM.running.max) - FN.SIM.add_chips(exact_chips, min_chips, max_chips) - end -end -FNSJ.simulate_diet_cola = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_trading = function(joker_obj, context) - -- Effect not relevant (Discard) -end -FNSJ.simulate_flash = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.mult) end -end -FNSJ.simulate_popcorn = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.mult) end -end -FNSJ.simulate_trousers = function(joker_obj, context) - if context.cardarea == G.jokers and context.before and not context.blueprint then - if next(context.poker_hands["Two Pair"]) or next(context.poker_hands["Full House"]) then - joker_obj.ability.mult = joker_obj.ability.mult + joker_obj.ability.extra - end - end - if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.mult) end -end -FNSJ.simulate_ancient = function(joker_obj, context) - if context.cardarea == G.play and context.individual then - if - FN.SIM.is_suit(context.other_card, G.GAME.current_round.ancient_card.suit) - and not context.other_card.debuff - then - FN.SIM.x_mult(joker_obj.ability.extra) - end - end -end -FNSJ.simulate_ramen = function(joker_obj, context) - if context.cardarea == G.hand and context.discard then - joker_obj.ability.x_mult = math.max(1, joker_obj.ability.x_mult - joker_obj.ability.extra) - end - FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) -end -FNSJ.simulate_walkie_talkie = function(joker_obj, context) - if context.cardarea == G.play and context.individual then - if FN.SIM.is_rank(context.other_card, { 10, 4 }) and not context.other_card.debuff then - FN.SIM.add_chips(joker_obj.ability.extra.chips) - FN.SIM.add_mult(joker_obj.ability.extra.mult) - end - end -end -FNSJ.simulate_selzer = function(joker_obj, context) - if context.cardarea == G.play and context.repetition then FN.SIM.add_reps(1) end -end -FNSJ.simulate_castle = function(joker_obj, context) - if context.cardarea == G.hand and context.discard and not context.blueprint then - if - FN.SIM.is_suit(context.other_card, G.GAME.current_round.castle_card.suit) and not context.other_card.debuff - then - joker_obj.ability.extra.chips = joker_obj.ability.extra.chips + joker_obj.ability.extra.chip_mod - end - end - if context.cardarea == G.jokers and context.global then FN.SIM.add_chips(joker_obj.ability.extra.chips) end -end -FNSJ.simulate_smiley = function(joker_obj, context) - if context.cardarea == G.play and context.individual then - if FN.SIM.is_face(context.other_card) and not context.other_card.debuff then - FN.SIM.add_mult(joker_obj.ability.extra) - end - end -end -FNSJ.simulate_campfire = function(joker_obj, context) - FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) -end -FNSJ.simulate_ticket = function(joker_obj, context) - if context.cardarea == G.play and context.individual then - if context.other_card.ability.effect == "Gold Card" and not context.other_card.debuff then - FN.SIM.add_dollars(joker_obj.ability.extra) - end - end -end -FNSJ.simulate_mr_bones = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_acrobat = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - -- Note: Checking against 1 is needed as hands_left is not decremented as part of simulation - if G.GAME.current_round.hands_left == 1 then FN.SIM.x_mult(joker_obj.ability.extra) end - end -end -FNSJ.simulate_sock_and_buskin = function(joker_obj, context) - if context.cardarea == G.play and context.repetition then - if FN.SIM.is_face(context.other_card) and not context.other_card.debuff then - FN.SIM.add_reps(joker_obj.ability.extra) - end - end -end -FNSJ.simulate_swashbuckler = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.mult) end -end -FNSJ.simulate_troubadour = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_certificate = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_smeared = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_throwback = function(joker_obj, context) - FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) -end -FNSJ.simulate_hanging_chad = function(joker_obj, context) - if joker_obj.ability.extra == 1 then - if context.cardarea == G.play and context.repetition then - if context.other_card == context.scoring_hand[1] and not context.other_card.debuff then - FN.SIM.add_reps(joker_obj.ability.extra) - end - if context.other_card == context.scoring_hand[2] and not context.other_card.debuff then - FN.SIM.add_reps(joker_obj.ability.extra) - end - end - else - if context.cardarea == G.play and context.repetition then - if context.other_card == context.scoring_hand[1] and not context.other_card.debuff then - FN.SIM.add_reps(joker_obj.ability.extra) - end - end - end -end -FNSJ.simulate_rough_gem = function(joker_obj, context) - if context.cardarea == G.play and context.individual then - if FN.SIM.is_suit(context.other_card, "Diamonds") and not context.other_card.debuff then - FN.SIM.add_dollars(joker_obj.ability.extra) - end - end -end -FNSJ.simulate_bloodstone = function(joker_obj, context) - if context.cardarea == G.play and context.individual then - if FN.SIM.is_suit(context.other_card, "Hearts") and not context.other_card.debuff then - local exact_xmult, min_xmult, max_xmult = FN.SIM.get_probabilistic_extremes( - pseudorandom("nopeagain"), - joker_obj.ability.extra.odds, - joker_obj.ability.extra.Xmult, - 1 - ) - FN.SIM.x_mult(exact_xmult, min_xmult, max_xmult) - end - end -end -FNSJ.simulate_arrowhead = function(joker_obj, context) - if context.cardarea == G.play and context.individual then - if FN.SIM.is_suit(context.other_card, "Spades") and not context.other_card.debuff then - FN.SIM.add_chips(joker_obj.ability.extra) - end - end -end -FNSJ.simulate_onyx_agate = function(joker_obj, context) - if context.cardarea == G.play and context.individual then - if FN.SIM.is_suit(context.other_card, "Clubs") and not context.other_card.debuff then - FN.SIM.add_mult(joker_obj.ability.extra) - end - end -end -FNSJ.simulate_glass = function(joker_obj, context) - FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) -end -FNSJ.simulate_ring_master = function(joker_obj, context) - -- Effect not relevant (Note: this is actually Showman) -end -FNSJ.simulate_flower_pot = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - local suit_count = { - ["Hearts"] = 0, - ["Diamonds"] = 0, - ["Spades"] = 0, - ["Clubs"] = 0, - } - - function inc_suit(suit) - suit_count[suit] = suit_count[suit] + 1 - end - - -- Account for all 'real' suits. - -- NOTE: Debuffed (non-wild) cards are still counted for their suits - for _, card in ipairs(context.scoring_hand) do - if card.ability.effect ~= "Wild Card" then - if FN.SIM.is_suit(card, "Hearts", true) and suit_count["Hearts"] == 0 then - inc_suit("Hearts") - elseif FN.SIM.is_suit(card, "Diamonds", true) and suit_count["Diamonds"] == 0 then - inc_suit("Diamonds") - elseif FN.SIM.is_suit(card, "Spades", true) and suit_count["Spades"] == 0 then - inc_suit("Spades") - elseif FN.SIM.is_suit(card, "Clubs", true) and suit_count["Clubs"] == 0 then - inc_suit("Clubs") - end - end - end - - -- Let Wild Cards fill in the gaps. - -- NOTE: Debuffed wild cards are completely ignored - for _, card in ipairs(context.scoring_hand) do - if card.ability.effect == "Wild Card" then - if FN.SIM.is_suit(card, "Hearts") and suit_count["Hearts"] == 0 then - inc_suit("Hearts") - elseif FN.SIM.is_suit(card, "Diamonds") and suit_count["Diamonds"] == 0 then - inc_suit("Diamonds") - elseif FN.SIM.is_suit(card, "Spades") and suit_count["Spades"] == 0 then - inc_suit("Spades") - elseif FN.SIM.is_suit(card, "Clubs") and suit_count["Clubs"] == 0 then - inc_suit("Clubs") - end - end - end - - if - suit_count["Hearts"] > 0 - and suit_count["Diamonds"] > 0 - and suit_count["Spades"] > 0 - and suit_count["Clubs"] > 0 - then - FN.SIM.x_mult(joker_obj.ability.extra) - end - end -end -FNSJ.simulate_blueprint = function(joker_obj, context) - local joker_to_mimic = nil - for idx, joker in ipairs(FN.SIM.env.jokers) do - if joker == joker_obj then joker_to_mimic = FN.SIM.env.jokers[idx + 1] end - end - if joker_to_mimic then - context.blueprint = (context.blueprint and (context.blueprint + 1)) or 1 - if context.blueprint > #FN.SIM.env.jokers + 1 then return end - FN.SIM.simulate_joker(joker_to_mimic, context) - end -end -FNSJ.simulate_wee = function(joker_obj, context) - if context.cardarea == G.play and context.individual and not context.blueprint then - if FN.SIM.is_rank(context.other_card, 2) and not context.other_card.debuff then - joker_obj.ability.extra.chips = joker_obj.ability.extra.chips + joker_obj.ability.extra.chip_mod - end - end - if context.cardarea == G.jokers and context.global then FN.SIM.add_chips(joker_obj.ability.extra.chips) end -end -FNSJ.simulate_merry_andy = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_oops = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_idol = function(joker_obj, context) - if context.cardarea == G.play and context.individual then - if - FN.SIM.is_rank(context.other_card, G.GAME.current_round.idol_card.id) - and FN.SIM.is_suit(context.other_card, G.GAME.current_round.idol_card.suit) - and not context.other_card.debuff - then - FN.SIM.x_mult(joker_obj.ability.extra) - end - end -end -FNSJ.simulate_seeing_double = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - local suit_count = { - ["Hearts"] = 0, - ["Diamonds"] = 0, - ["Spades"] = 0, - ["Clubs"] = 0, - } - - function inc_suit(suit) - suit_count[suit] = suit_count[suit] + 1 - end - - -- Account for all 'real' suits: - for _, card in ipairs(context.scoring_hand) do - if card.ability.effect ~= "Wild Card" then - if FN.SIM.is_suit(card, "Hearts") then inc_suit("Hearts") end - if FN.SIM.is_suit(card, "Diamonds") then inc_suit("Diamonds") end - if FN.SIM.is_suit(card, "Spades") then inc_suit("Spades") end - if FN.SIM.is_suit(card, "Clubs") then inc_suit("Clubs") end - end - end - - -- Let Wild Cards fill in the gaps: - for _, card in ipairs(context.scoring_hand) do - if card.ability.effect == "Wild Card" then - -- IMPORTANT: Clubs must come first here, because Clubs are required for xmult. This is in line with game's implementation. - if FN.SIM.is_suit(card, "Clubs") and suit_count["Clubs"] == 0 then - inc_suit("Clubs") - elseif FN.SIM.is_suit(card, "Hearts") and suit_count["Hearts"] == 0 then - inc_suit("Hearts") - elseif FN.SIM.is_suit(card, "Diamonds") and suit_count["Diamonds"] == 0 then - inc_suit("Diamonds") - elseif FN.SIM.is_suit(card, "Spades") and suit_count["Spades"] == 0 then - inc_suit("Spades") - end - end - end - - if - suit_count["Clubs"] > 0 - and (suit_count["Hearts"] > 0 or suit_count["Diamonds"] > 0 or suit_count["Spades"] > 0) - then - FN.SIM.x_mult(joker_obj.ability.extra) - end - end -end -FNSJ.simulate_matador = function(joker_obj, context) - if context.cardarea == G.jokers and context.debuffed_hand then - if G.GAME.blind.triggered then FN.SIM.add_dollars(joker_obj.ability.extra) end - end -end -FNSJ.simulate_hit_the_road = function(joker_obj, context) - if context.cardarea == G.hand and context.discard and not context.blueprint then - if FN.SIM.is_rank(context.other_card, 11) and not context.other_card.debuff then - joker_obj.ability.x_mult = joker_obj.ability.x_mult + joker_obj.ability.extra - end - end - FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) -end -FNSJ.simulate_duo = function(joker_obj, context) - FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) -end -FNSJ.simulate_trio = function(joker_obj, context) - FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) -end -FNSJ.simulate_family = function(joker_obj, context) - FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) -end -FNSJ.simulate_order = function(joker_obj, context) - FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) -end -FNSJ.simulate_tribe = function(joker_obj, context) - FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) -end -FNSJ.simulate_stuntman = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then FN.SIM.add_chips(joker_obj.ability.extra.chip_mod) end -end -FNSJ.simulate_invisible = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_brainstorm = function(joker_obj, context) - local joker_to_mimic = FN.SIM.env.jokers[1] - if joker_to_mimic and joker_to_mimic ~= joker_obj then - context.blueprint = (context.blueprint and (context.blueprint + 1)) or 1 - if context.blueprint > #FN.SIM.env.jokers + 1 then return end - FN.SIM.simulate_joker(joker_to_mimic, context) - end -end -FNSJ.simulate_satellite = function(joker_obj, context) - -- Effect not relevant (End of Round) -end -FNSJ.simulate_shoot_the_moon = function(joker_obj, context) - if context.cardarea == G.hand and context.individual then - if FN.SIM.is_rank(context.other_card, 12) and not context.other_card.debuff then FN.SIM.add_mult(13) end - end -end -FNSJ.simulate_drivers_license = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - if (joker_obj.ability.driver_tally or 0) >= 16 then FN.SIM.x_mult(joker_obj.ability.extra) end - end -end -FNSJ.simulate_cartomancer = function(joker_obj, context) - -- Effect not relevant (Blind) -end -FNSJ.simulate_astronomer = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_burnt = function(joker_obj, context) - -- Effect not relevant (Discard) -end -FNSJ.simulate_bootstraps = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - local function bootstraps(data) - return joker_obj.ability.extra.mult - * math.floor((G.GAME.dollars + data.dollars) / joker_obj.ability.extra.dollars) - end - local min_mult = bootstraps(FN.SIM.running.min) - local exact_mult = bootstraps(FN.SIM.running.exact) - local max_mult = bootstraps(FN.SIM.running.max) - FN.SIM.add_mult(exact_mult, min_mult, max_mult) - end -end -FNSJ.simulate_caino = function(joker_obj, context) - if context.cardarea == G.jokers and context.global then - if joker_obj.ability.caino_xmult > 1 then FN.SIM.x_mult(joker_obj.ability.caino_xmult) end - end -end -FNSJ.simulate_triboulet = function(joker_obj, context) - if context.cardarea == G.play and context.individual then - if FN.SIM.is_rank(context.other_card, { 12, 13 }) and not context.other_card.debuff then - FN.SIM.x_mult(joker_obj.ability.extra) - end - end -end -FNSJ.simulate_yorick = function(joker_obj, context) - if context.cardarea == G.hand and context.discard and not context.blueprint then - -- This is only necessary for 'The Hook' blind. - if joker_obj.ability.yorick_discards > 1 then - joker_obj.ability.yorick_discards = joker_obj.ability.yorick_discards - 1 - else - joker_obj.ability.yorick_discards = joker_obj.ability.extra.discards - joker_obj.ability.x_mult = joker_obj.ability.x_mult + joker_obj.ability.extra.xmult - end - end - - FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) -end -FNSJ.simulate_chicot = function(joker_obj, context) - -- Effect not relevant (Meta) -end -FNSJ.simulate_perkeo = function(joker_obj, context) - -- Effect not relevant (Blind) -end diff --git a/compatibility/Preview/UtilsPreview.lua b/compatibility/Preview/UtilsPreview.lua deleted file mode 100644 index 77bf7609b..000000000 --- a/compatibility/Preview/UtilsPreview.lua +++ /dev/null @@ -1,39 +0,0 @@ --- Utilities for checking states and formatting display. - -function FN.PRE.is_enough_to_win(chips) - if - G.GAME.blind - and (G.STATE == G.STATES.SELECTING_HAND or G.STATE == G.STATES.DRAW_TO_HAND or G.STATE == G.STATES.PLAY_TAROT) - then - return (G.GAME.chips + chips >= G.GAME.blind.chips) - else - return false - end -end - -function FN.PRE.format_number(num) - if not num or type(num) ~= "number" then return num or "" end - return number_format(num) -- Default Balatro function. -end - -function FN.PRE.get_dollar_colour(n) - if n == 0 then - return HEX("7e7667") - elseif n > 0 then - return G.C.MONEY - elseif n < 0 then - return G.C.RED - end -end - -function FN.PRE.get_sign_str(n) - if n >= 0 then - return "+" - else - return "" -- Negative numbers already have a sign - end -end - -function FN.PRE.enabled() - return G.SETTINGS.FN.preview_score or G.SETTINGS.FN.preview_dollars -end diff --git a/compatibility/Preview/UtilsSimulate.lua b/compatibility/Preview/UtilsSimulate.lua deleted file mode 100644 index 68d137ead..000000000 --- a/compatibility/Preview/UtilsSimulate.lua +++ /dev/null @@ -1,242 +0,0 @@ --- Utilities for writing simulation functions for jokers. --- --- In general, these functions replicate the game's internal calculations and --- variables in order to avoid affecting the game's state during simulation. --- These functions ensure that the score calculation remains identical to the --- game; DO NOT directly modify the `FN.SIM.running` score variables. - --- --- HIGH-LEVEL: --- - -function FN.SIM.JOKERS.add_suit_mult(joker_obj, context) - if context.cardarea == G.play and context.individual then - if FN.SIM.is_suit(context.other_card, joker_obj.ability.extra.suit) and not context.other_card.debuff then - FN.SIM.add_mult(joker_obj.ability.extra.s_mult) - end - end -end - -function FN.SIM.JOKERS.add_type_mult(joker_obj, context) - if context.cardarea == G.jokers and context.global and next(context.poker_hands[joker_obj.ability.type]) then - FN.SIM.add_mult(joker_obj.ability.t_mult) - end -end - -function FN.SIM.JOKERS.add_type_chips(joker_obj, context) - if context.cardarea == G.jokers and context.global and next(context.poker_hands[joker_obj.ability.type]) then - FN.SIM.add_chips(joker_obj.ability.t_chips) - end -end - -function FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) - if context.cardarea == G.jokers and context.global then - if - joker_obj.ability.x_mult > 1 - and (joker_obj.ability.type == "" or next(context.poker_hands[joker_obj.ability.type])) - then - FN.SIM.x_mult(joker_obj.ability.x_mult) - end - end -end - -function FN.SIM.get_probabilistic_extremes(random_value, odds, reward, default) - -- Exact mirrors the game's probability calculation - local exact = default - if random_value < G.GAME.probabilities.normal / odds then exact = reward end - - -- Minimum is default unless probability is guaranteed (eg. 2 in 2 chance) - local min = default - if G.GAME.probabilities.normal >= odds then min = reward end - - -- Maximum is always reward (probability is always > 0); redundant variable is for readability - local max = reward - - return exact, min, max -end - -function FN.SIM.adjust_field_with_range(adj_func, field, mod_func, exact_value, min_value, max_value) - if not exact_value then error("Cannot adjust field, exact_value is missing.") end - - if not min_value or not max_value then - min_value = exact_value - max_value = exact_value - end - - FN.SIM.running.min[field] = mod_func(adj_func(FN.SIM.running.min[field], min_value)) - FN.SIM.running.exact[field] = mod_func(adj_func(FN.SIM.running.exact[field], exact_value)) - FN.SIM.running.max[field] = mod_func(adj_func(FN.SIM.running.max[field], max_value)) -end - -function FN.SIM.add_chips(exact, min, max) - FN.SIM.adjust_field_with_range(function(x, y) - return x + y - end, "chips", FN.SIM.mod_chips, exact, min, max) -end - -function FN.SIM.add_mult(exact, min, max) - FN.SIM.adjust_field_with_range(function(x, y) - return x + y - end, "mult", FN.SIM.mod_mult, exact, min, max) -end - -function FN.SIM.x_mult(exact, min, max) - FN.SIM.adjust_field_with_range(function(x, y) - return x * y - end, "mult", FN.SIM.mod_mult, exact, min, max) -end - -function FN.SIM.add_dollars(exact, min, max) - -- NOTE: no mod_func for dollars, so have to declare an identity function - FN.SIM.adjust_field_with_range( - function(x, y) - return x + y - end, - "dollars", - function(x) - return x - end, - exact, - min, - max - ) -end - -function FN.SIM.add_reps(n) - FN.SIM.running.reps = FN.SIM.running.reps + n -end - --- --- LOW-LEVEL: --- - -function FN.SIM.is_suit(card_data, suit, ignore_scorability) - if card_data.debuff and not ignore_scorability then return end - if card_data.ability.effect == "Stone Card" then return false end - if card_data.ability.effect == "Wild Card" and not card_data.debuff then return true end - if next(find_joker("Smeared Joker")) then - local is_card_suit_light = (card_data.suit == "Hearts" or card_data.suit == "Diamonds") - local is_check_suit_light = (suit == "Hearts" or suit == "Diamonds") - if is_card_suit_light == is_check_suit_light then return true end - end - return card_data.suit == suit -end - -function FN.SIM.get_rank(card_data) - if card_data.ability.effect == "Stone Card" and not card_data.vampired then - FN.SIM.misc.next_stone_id = FN.SIM.misc.next_stone_id - 1 - return FN.SIM.misc.next_stone_id - end - return card_data.rank -end - -function FN.SIM.is_rank(card_data, ranks) - if card_data.ability.effect == "Stone Card" then return false end - - if type(ranks) == "number" then ranks = { ranks } end - if FN.SIM.is_deck("b_mp_gradient") then - local temp = {} - - for i, v in ipairs(ranks) do - temp[v - 1] = true - temp[v] = true - temp[v + 1] = true - end - - ranks = {} - for k, v in pairs(temp) do - if k == 15 then - k = 2 - elseif k == 1 then - k = 14 - end - table.insert(ranks, k) - end - table.sort(ranks) - end - for _, r in ipairs(ranks) do - if card_data.rank == r then return true end - end - return false -end - -function FN.SIM.check_rank_parity(card_data, check_even) - if check_even then - return FN.SIM.is_rank(card_data, { 2, 4, 6, 8, 10 }) - else - return FN.SIM.is_rank(card_data, { 3, 5, 7, 9, 14 }) - end -end - -function FN.SIM.is_face(card_data) - return (FN.SIM.is_rank(card_data, { 11, 12, 13 }) or next(find_joker("Pareidolia"))) -end - -function FN.SIM.set_ability(card_data, center) - -- See Card:set_ability() - card_data.ability = { - name = center.name, - effect = center.effect, - set = center.set, - mult = center.config.mult or 0, - h_mult = center.config.h_mult or 0, - h_x_mult = center.config.h_x_mult or 0, - h_dollars = center.config.h_dollars or 0, - p_dollars = center.config.p_dollars or 0, - t_mult = center.config.t_mult or 0, - t_chips = center.config.t_chips or 0, - x_mult = center.config.Xmult or 1, - h_size = center.config.h_size or 0, - d_size = center.config.d_size or 0, - extra = copy_table(center.config.extra) or nil, - extra_value = 0, - type = center.config.type or "", - order = center.order or nil, - forced_selection = card_data.ability and card_data.ability.forced_selection or nil, - perma_bonus = card_data.ability and card_data.ability.perma_bonus or 0, - bonus = center.config.bonus or 0, - } -end - -function FN.SIM.set_edition(card_data, edition) - card_data.edition = nil - if not edition then return end - - if edition.holo then - if not card_data.edition then card_data.edition = {} end - card_data.edition.mult = G.P_CENTERS.e_holo.config.extra - card_data.edition.holo = true - card_data.edition.type = "holo" - elseif edition.foil then - if not card_data.edition then card_data.edition = {} end - card_data.edition.chips = G.P_CENTERS.e_foil.config.extra - card_data.edition.foil = true - card_data.edition.type = "foil" - elseif edition.polychrome then - if not card_data.edition then card_data.edition = {} end - card_data.edition.x_mult = G.P_CENTERS.e_polychrome.config.extra - card_data.edition.polychrome = true - card_data.edition.type = "polychrome" - elseif edition.negative then - -- TODO - end -end - -function FN.SIM.is_deck(deck) - if G.GAME.selected_back.effect.center.key == deck then - return true - elseif G.GAME.selected_back.effect.center.key == "b_mp_cocktail" then - for i = 1, 3 do - if G.GAME.modifiers.mp_cocktail[i] == deck then return true end - end - end - return false -end - -function FN.SIM.mod_chips(_chips) - return _chips -end - -function FN.SIM.mod_mult(_mult) - return _mult -end diff --git a/objects/blinds/nemesis.lua b/objects/blinds/nemesis.lua deleted file mode 100644 index e9474f151..000000000 --- a/objects/blinds/nemesis.lua +++ /dev/null @@ -1,35 +0,0 @@ -SMODS.Atlas({ - key = "player_blind_chip", - path = "player_blind_row.png", - atlas_table = "ANIMATION_ATLAS", - frames = 21, - px = 34, - py = 34, -}) - -SMODS.Atlas({ - key = "player_blind_col", - path = "blind_col.png", - atlas_table = "ANIMATION_ATLAS", - frames = 21, - px = 34, - py = 34, -}) - -SMODS.Blind({ - key = "nemesis", - dollars = 5, - mult = 1, -- Jen's Almanac crashes the game if the mult is 0 - boss_colour = G.C.MULTIPLAYER, - boss = { min = 1, max = 10 }, - atlas = "player_blind_chip", - discovered = true, - in_pool = function(self) - return false - end, -}) - -function MP.is_pvp_boss() - if not G.GAME or not G.GAME.blind or not G.GAME.blind.config.blind then return false end - return G.GAME.blind.config.blind.key == "bl_mp_nemesis" or G.GAME.blind.pvp -end diff --git a/objects/boosters/standard_giga.lua b/objects/boosters/standard_giga.lua deleted file mode 100644 index d9daf0478..000000000 --- a/objects/boosters/standard_giga.lua +++ /dev/null @@ -1,46 +0,0 @@ -SMODS.Atlas({ - key = "standard_giga", - path = "standard_giga.png", - px = 71, - py = 95, -}) - -SMODS.Booster({ - key = "standard_giga", - kind = "Standard", - group_key = "k_standard_pack", - atlas = "standard_giga", - pos = { x = 0, y = 0 }, - config = { extra = 10, choose = 4 }, - cost = 16, - weight = 0, - unskippable = true, - create_card = function(self, card, i) - local s_append = "" -- MP.get_booster_append(card) - local b_append = MP.ante_based() .. s_append - - local _edition = poll_edition("standard_edition" .. b_append, 2, true) - local _seal = SMODS.poll_seal({ mod = 10, key = "stdseal" .. b_append }) - - return { - set = (pseudorandom(pseudoseed("stdset" .. b_append)) > 0.6) and "Enhanced" or "Base", - edition = _edition, - seal = _seal, - area = G.pack_cards, - skip_materialize = true, - soulable = true, - key_append = "sta" .. s_append, - } - end, -}) - --- unskippable pack hook here, why not -local can_skip_ref = G.FUNCS.can_skip_booster -G.FUNCS.can_skip_booster = function(e) - if SMODS.OPENED_BOOSTER and SMODS.OPENED_BOOSTER.config.center.unskippable then - e.config.colour = G.C.UI.BACKGROUND_INACTIVE - e.config.button = nil - else - return can_skip_ref(e) - end -end diff --git a/objects/challenges/all_must_go.lua b/objects/challenges/all_must_go.lua deleted file mode 100644 index 7d7178413..000000000 --- a/objects/challenges/all_must_go.lua +++ /dev/null @@ -1,10 +0,0 @@ -SMODS.Challenge({ - key = "all_must_go", - jokers = { - { id = "j_mp_taxes", eternal = true }, - { id = "j_campfire", eternal = true }, - }, - unlocked = function(self) - return true - end, -}) diff --git a/objects/challenges/bacon.lua b/objects/challenges/bacon.lua deleted file mode 100644 index 16e6b6c76..000000000 --- a/objects/challenges/bacon.lua +++ /dev/null @@ -1,57 +0,0 @@ -SMODS.Challenge({ - key = "bacon", - rules = { - custom = { - { id = "mp_indigo" }, - }, - }, - restrictions = { - banned_cards = { - { - id = "p_celestial_normal_1", - ids = { - "p_celestial_normal_2", - "p_celestial_normal_3", - "p_celestial_normal_4", - "p_celestial_jumbo_1", - "p_celestial_jumbo_2", - "p_celestial_mega_1", - "p_celestial_mega_2", - }, - }, - { - id = "p_standard_normal_1", - ids = { - "p_standard_normal_2", - "p_standard_normal_3", - "p_standard_normal_4", - "p_standard_jumbo_1", - "p_standard_jumbo_2", - "p_standard_mega_1", - "p_standard_mega_2", - }, - }, - { - id = "p_arcana_normal_1", - ids = { - "p_arcana_normal_2", - "p_arcana_normal_3", - "p_arcana_normal_4", - "p_arcana_jumbo_1", - "p_arcana_jumbo_2", - "p_arcana_mega_1", - "p_arcana_mega_2", - }, - }, - }, - }, - - apply = function(self) - G.GAME.selected_back.atlas = "mp_decks" - G.GAME.selected_back.pos = { x = 1, y = 0 } - G.GAME.modifiers.booster_choice_mod = (G.GAME.modifiers.booster_choice_mod or 0) + 1 - end, - unlocked = function(self) - return true - end, -}) diff --git a/objects/challenges/balancing_act.lua b/objects/challenges/balancing_act.lua deleted file mode 100644 index cbd3b148b..000000000 --- a/objects/challenges/balancing_act.lua +++ /dev/null @@ -1,16 +0,0 @@ --- Effect lives in layers/score_instability.lua (via rules.custom -> mp_score_instability). -SMODS.Challenge({ - key = "balancing_act", - rules = { - custom = { - { id = "mp_score_instability" }, - { id = "mp_score_instability_EXAMPLE" }, -- ????????????????????? - { id = "mp_score_instability_LOC1" }, - { id = "mp_score_instability_LOC2" }, - { id = "mp_ante_scaling", value = 0.25 }, -- this would be in modifiers table if it actually worked - }, - }, - unlocked = function(self) - return true - end, -}) diff --git a/objects/challenges/chore_list.lua b/objects/challenges/chore_list.lua deleted file mode 100644 index 28df3a787..000000000 --- a/objects/challenges/chore_list.lua +++ /dev/null @@ -1,32 +0,0 @@ -SMODS.Challenge({ - key = "chore_list", - jokers = { - { id = "j_todo_list", eternal = true, rental = true, edition = "negative" }, - { id = "j_todo_list", eternal = true, rental = true, edition = "negative" }, - }, - restrictions = { - banned_cards = { - { id = "j_trading" }, - { id = "j_midas_mask" }, - { id = "j_golden" }, - { id = "j_todo_list" }, - { id = "j_rough_gem" }, - { id = "j_reserved_parking" }, - { id = "j_to_the_moon" }, - { id = "j_business" }, - { id = "j_delayed_grat" }, - { id = "j_satellite" }, - { id = "j_egg" }, - { id = "j_faceless" }, - { id = "j_mail" }, - { id = "j_golden" }, - { id = "j_gift" }, - { id = "j_riff_raff" }, - { id = "j_chaos" }, - { id = "j_mp_penny_pincher" }, - }, - }, - unlocked = function(self) - return true - end, -}) diff --git a/objects/challenges/divination.lua b/objects/challenges/divination.lua deleted file mode 100644 index 5b35ff906..000000000 --- a/objects/challenges/divination.lua +++ /dev/null @@ -1,9 +0,0 @@ -SMODS.Challenge({ - key = "divination", - jokers = { - { id = "j_vagabond", eternal = true }, - }, - unlocked = function(self) - return true - end, -}) diff --git a/objects/challenges/eeeee.lua b/objects/challenges/eeeee.lua deleted file mode 100644 index 6c5c0d13e..000000000 --- a/objects/challenges/eeeee.lua +++ /dev/null @@ -1,12 +0,0 @@ --- Effect lives in layers/eeeee.lua; activated here via rules.custom -> mp_eeeee. -SMODS.Challenge({ - key = "mp_eeeee", - rules = { - custom = { - { id = "mp_eeeee" }, - }, - }, - unlocked = function(self) - return true - end, -}) diff --git a/objects/challenges/high_hand.lua b/objects/challenges/high_hand.lua deleted file mode 100644 index 31f795219..000000000 --- a/objects/challenges/high_hand.lua +++ /dev/null @@ -1,18 +0,0 @@ -SMODS.Challenge({ - key = "high_hand", - rules = { - modifiers = { - { id = "hands", value = 1 }, - { id = "hand_size", value = 26 }, - { id = "discards", value = 0 }, - }, - }, - restrictions = { - banned_cards = { - { id = "j_burglar" }, - }, - }, - unlocked = function(self) - return true - end, -}) diff --git a/objects/challenges/in_the_red.lua b/objects/challenges/in_the_red.lua deleted file mode 100644 index c35521a21..000000000 --- a/objects/challenges/in_the_red.lua +++ /dev/null @@ -1,20 +0,0 @@ -SMODS.Challenge({ - key = "in_the_red", - rules = { - custom = { - { id = "no_reward_specific", value = "Small" }, - { id = "no_reward_specific", value = "Big" }, - }, - }, - jokers = { - { id = "j_credit_card", eternal = true, edition = "negative", rental = true }, - }, - restrictions = { - banned_tags = { - { id = "tag_investment" }, - }, - }, - unlocked = function(self) - return true - end, -}) diff --git a/objects/challenges/legendaries.lua b/objects/challenges/legendaries.lua deleted file mode 100644 index e38d39de4..000000000 --- a/objects/challenges/legendaries.lua +++ /dev/null @@ -1,32 +0,0 @@ -SMODS.Challenge({ - key = "legendaries", - rules = { - modifiers = { - { - id = "joker_slots", - value = 6, - }, - }, - }, - jokers = { - { id = "j_caino", eternal = true }, - { id = "j_perkeo", eternal = true }, - { id = "j_triboulet", eternal = true }, - { id = "j_yorick", eternal = true }, - { id = "j_joker" }, - }, - restrictions = { - banned_cards = { - { id = "j_selzer" }, - { id = "j_dusk" }, - { id = "j_sock_and_buskin" }, - { id = "j_hanging_chad" }, - { id = "j_mp_hanging_chad" }, - { id = "j_blueprint" }, - { id = "j_brainstorm" }, - }, - }, - unlocked = function(self) - return true - end, -}) diff --git a/objects/challenges/lets_go_gambling.lua b/objects/challenges/lets_go_gambling.lua deleted file mode 100644 index c5001200f..000000000 --- a/objects/challenges/lets_go_gambling.lua +++ /dev/null @@ -1,44 +0,0 @@ -SMODS.Challenge({ - key = "lets_go_gambling", - rules = { - custom = { - { id = "no_reward_specific", value = "Small" }, - { id = "no_reward_specific", value = "Big" }, - }, - }, - jokers = { - { id = "j_oops", eternal = true, rental = true }, - { id = "j_mp_lets_go_gambling", eternal = true, edition = "negative", rental = true }, - }, - restrictions = { - banned_cards = { - { id = "j_selzer" }, - { id = "j_dusk" }, - { id = "j_hanging_chad" }, - { id = "j_bloodstone" }, - { id = "c_high_priestess" }, - { id = "c_empress" }, - { id = "c_heirophant" }, - { id = "c_chariot" }, - { id = "c_justice" }, - { id = "c_hermit" }, - { id = "c_strength" }, - { id = "c_hanged_man" }, - { id = "c_death" }, - { id = "c_temperance" }, - { id = "c_devil" }, - { id = "c_tower" }, - { id = "c_star" }, - { id = "c_moon" }, - { id = "c_sun" }, - { id = "c_world" }, - }, - }, - deck = { - type = "Challenge Deck", - enhancement = "m_lucky", - }, - unlocked = function(self) - return true - end, -}) diff --git a/objects/challenges/misprint_deck.lua b/objects/challenges/misprint_deck.lua deleted file mode 100644 index 91a4a8b91..000000000 --- a/objects/challenges/misprint_deck.lua +++ /dev/null @@ -1,15 +0,0 @@ -local deck_cards = {} -for i = 1, 52 do - deck_cards[i] = { s = "S", r = "T" } -end - -SMODS.Challenge({ - key = "misprint_deck", - deck = { - type = "Challenge Deck", - cards = deck_cards, - }, - unlocked = function(self) - return true - end, -}) diff --git a/objects/challenges/oops_all_jokers.lua b/objects/challenges/oops_all_jokers.lua deleted file mode 100644 index 36d9d12b5..000000000 --- a/objects/challenges/oops_all_jokers.lua +++ /dev/null @@ -1,53 +0,0 @@ -SMODS.Challenge({ - key = "oops_all_jokers", - jokers = { - { id = "j_ring_master", eternal = true, edition = "negative" }, - }, - restrictions = { - banned_cards = { - { id = "c_fool" }, - { id = "c_magician" }, - { id = "c_high_priestess" }, - { id = "c_empress" }, - { id = "c_emperor" }, - { id = "c_heirophant" }, - { id = "c_lovers" }, - { id = "c_chariot" }, - { id = "c_justice" }, - { id = "c_hermit" }, - { id = "c_wheel_of_fortune" }, - { id = "c_strength" }, - { id = "c_hanged_man" }, - { id = "c_death" }, - { id = "c_temperance" }, - { id = "c_devil" }, - { id = "c_tower" }, - { id = "c_star" }, - { id = "c_moon" }, - { id = "c_sun" }, - { id = "c_world" }, - { id = "c_familiar" }, - { id = "c_grim" }, - { id = "c_incantation" }, - { id = "c_talisman" }, - { id = "c_aura" }, - { id = "c_sigil" }, - { id = "c_ouija" }, - { id = "c_ectoplasm" }, - { id = "c_immolate" }, - { id = "c_deja_vu" }, - { id = "c_hex" }, - { id = "c_trance" }, - { id = "c_medium" }, - { id = "c_cryptid" }, - { id = "c_black_hole" }, - { id = "v_tarot_merchant" }, - }, - banned_tags = { - { id = "tag_charm" }, - }, - }, - unlocked = function(self) - return true - end, -}) diff --git a/objects/challenges/planet_tycoon.lua b/objects/challenges/planet_tycoon.lua deleted file mode 100644 index f69aebc96..000000000 --- a/objects/challenges/planet_tycoon.lua +++ /dev/null @@ -1,21 +0,0 @@ -SMODS.Challenge({ - key = "planet_tycoon", - rules = { - custom = { - { id = "mp_shop_planets" }, - { id = "mp_shop_planets_EXTENDED" }, - { id = "mp_planet_tycoon_CREDITS" }, - }, - }, - restrictions = { - banned_cards = { - { id = "v_planet_merchant", ids = { "v_planet_tycoon" } }, - }, - }, - apply = function(self) - G.GAME.planet_rate = 360 - end, - unlocked = function(self) - return true - end, -}) diff --git a/objects/challenges/polymorph_spam.lua b/objects/challenges/polymorph_spam.lua deleted file mode 100644 index 94020a7c2..000000000 --- a/objects/challenges/polymorph_spam.lua +++ /dev/null @@ -1,29 +0,0 @@ --- Effect lives in layers/polymorph_spam.lua (via rules.custom -> mp_polymorph_spam). -SMODS.Challenge({ - key = "polymorph_spam", - rules = { - custom = { - { id = "mp_polymorph_spam" }, - { id = "mp_polymorph_spam_EXTENDED1" }, - { id = "mp_polymorph_spam_EXTENDED2" }, - }, - }, - restrictions = { - banned_cards = function() - local ret = {} - local add = { - j_campfire = true, - j_invisible = true, - j_caino = true, - j_yorick = true, - } - for i, v in ipairs(G.P_CENTER_POOLS.Joker) do - if (not v.perishable_compat) or add[v.key] then ret[#ret + 1] = { id = v.key } end - end - return ret - end, - }, - unlocked = function(self) - return true - end, -}) diff --git a/objects/challenges/psychosis.lua b/objects/challenges/psychosis.lua deleted file mode 100644 index 0fd07b83d..000000000 --- a/objects/challenges/psychosis.lua +++ /dev/null @@ -1,9 +0,0 @@ -SMODS.Challenge({ - key = "psychosis", - jokers = { - { id = "j_madness", eternal = true }, - }, - unlocked = function(self) - return true - end, -}) diff --git a/objects/challenges/salvaged_sibyl.lua b/objects/challenges/salvaged_sibyl.lua deleted file mode 100644 index e7b187e06..000000000 --- a/objects/challenges/salvaged_sibyl.lua +++ /dev/null @@ -1,81 +0,0 @@ -SMODS.Challenge({ - key = "salvaged_sibyl", - rules = { - custom = { - { id = "mp_no_shop_planets" }, - { id = "mp_only_medium" }, - { id = "mp_only_purple_seals" }, - { id = "mp_sibyl_CREDITS" }, - }, - }, - consumeables = { - { id = "c_medium" }, - }, - restrictions = { - banned_cards = { - { id = "j_constellation" }, - { id = "j_satellite" }, - { id = "j_astronomer" }, - { id = "c_high_priestess" }, - { id = "v_planet_merchant", ids = { "v_planet_tycoon" } }, - { id = "v_telescope", ids = { "v_observatory" } }, - { id = "v_magic_trick", ids = { "v_illusion" } }, - { - id = "p_celestial_normal_1", - ids = { - "p_celestial_normal_2", - "p_celestial_normal_3", - "p_celestial_normal_4", - "p_celestial_jumbo_1", - "p_celestial_jumbo_2", - "p_celestial_mega_1", - "p_celestial_mega_2", - }, - }, - { - id = "p_spectral_normal_1", - ids = { - "p_spectral_normal_2", - "p_spectral_jumbo_1", - "p_spectral_mega_1", - }, - }, - { - id = "p_standard_normal_1", - ids = { - "p_standard_normal_2", - "p_standard_normal_3", - "p_standard_normal_4", - "p_standard_jumbo_1", - "p_standard_jumbo_2", - "p_standard_mega_1", - "p_standard_mega_2", - }, - }, - }, - }, - apply = function(self) - G.GAME.selected_back.atlas = "mp_decks" - G.GAME.selected_back.pos = { x = 3, y = 0 } - G.GAME.planet_rate = 0 - end, - unlocked = function(self) - return true - end, -}) - --- billionth create card hook ever -local create_card_ref = create_card -function create_card(_type, area, legendary, _rarity, skip_materialize, soulable, forced_key, key_append) - if G.GAME.modifiers.mp_only_medium and _type == "Spectral" then - G.GAME.banned_keys["c_medium"] = nil - forced_key = "c_medium" - end - return create_card_ref(_type, area, legendary, _rarity, skip_materialize, soulable, forced_key, key_append) -end - -local set_seal_ref = Card.set_seal -function Card:set_seal(_seal, silent, immediate) - if G.GAME.modifiers.mp_only_purple_seals and _seal then _seal = "Purple" end - return set_seal_ref(self, _seal, silent, immediate) -end diff --git a/objects/challenges/scratch.lua b/objects/challenges/scratch.lua deleted file mode 100644 index 66166eb35..000000000 --- a/objects/challenges/scratch.lua +++ /dev/null @@ -1,18 +0,0 @@ -SMODS.Challenge({ - key = "scratch", - jokers = { - { id = "j_half" }, - }, - vouchers = { - { id = "v_magic_trick" }, - }, - deck = { - type = "Challenge Deck", - cards = { - { s = "C", r = "7", e = "m_stone" }, - }, - }, - unlocked = function(self) - return true - end, -}) diff --git a/objects/challenges/shared_pockets.lua b/objects/challenges/shared_pockets.lua deleted file mode 100644 index e5cec9ead..000000000 --- a/objects/challenges/shared_pockets.lua +++ /dev/null @@ -1,20 +0,0 @@ --- Effect lives in layers/shared_pockets.lua (via rules.custom -> mp_shared_pockets). -SMODS.Challenge({ - key = "shared_pockets", - rules = { - custom = { - { id = "mp_shared_pockets" }, - }, - }, - restrictions = { - banned_cards = { - { id = "j_stencil" }, - }, - }, - apply = function(self) - MP.setup_shared_pockets() - end, - unlocked = function(self) - return true - end, -}) diff --git a/objects/challenges/skip_off.lua b/objects/challenges/skip_off.lua deleted file mode 100644 index 559a37f5d..000000000 --- a/objects/challenges/skip_off.lua +++ /dev/null @@ -1,10 +0,0 @@ -SMODS.Challenge({ - key = "skip_off", - jokers = { - { id = "j_mp_skip_off", eternal = true }, - { id = "j_throwback", eternal = true }, - }, - unlocked = function(self) - return true - end, -}) diff --git a/objects/challenges/speed.lua b/objects/challenges/speed.lua deleted file mode 100644 index 8094cd49f..000000000 --- a/objects/challenges/speed.lua +++ /dev/null @@ -1,10 +0,0 @@ -SMODS.Challenge({ - key = "speed", - jokers = { - { id = "j_mp_conjoined_joker", eternal = true, edition = "negative" }, - { id = "j_mp_speedrun", eternal = true, edition = "negative" }, - }, - unlocked = function(self) - return true - end, -}) diff --git a/objects/challenges/twin_towers.lua b/objects/challenges/twin_towers.lua deleted file mode 100644 index b9c0d350f..000000000 --- a/objects/challenges/twin_towers.lua +++ /dev/null @@ -1,10 +0,0 @@ -SMODS.Challenge({ - key = "twin_towers", - jokers = { - { id = "j_obelisk", eternal = true }, - { id = "j_obelisk", eternal = true }, - }, - unlocked = function(self) - return true - end, -}) diff --git a/objects/challenges/vantablack.lua b/objects/challenges/vantablack.lua deleted file mode 100644 index 24369966e..000000000 --- a/objects/challenges/vantablack.lua +++ /dev/null @@ -1,19 +0,0 @@ -SMODS.Challenge({ - key = "vantablack", - rules = { - custom = { - { id = "mp_vantablack_CREDITS" }, - }, - modifiers = { - { id = "joker_slots", value = 8 }, - { id = "hands", value = 1 }, - }, - }, - apply = function(self) - G.GAME.selected_back.atlas = "mp_decks" - G.GAME.selected_back.pos = { x = 3, y = 1 } - end, - unlocked = function(self) - return true - end, -}) diff --git a/objects/consumables/asteroid.lua b/objects/consumables/asteroid.lua deleted file mode 100644 index 5bbb0d86b..000000000 --- a/objects/consumables/asteroid.lua +++ /dev/null @@ -1,57 +0,0 @@ -SMODS.Atlas({ - key = "asteroid", - path = { - ["default"] = "c_asteroid.png", - ["ru"] = "c_asteroid_ru.png", - }, - px = 71, - py = 95, -}) - -SMODS.Consumable({ - key = "asteroid", - set = "Planet", - atlas = "asteroid", - cost = 3, - unlocked = true, - discovered = true, - loc_vars = function(self, info_queue, card) - MP.UTILS.add_nemesis_info(info_queue) - return { vars = { 1 } } - end, - mp_include = function(self) - return MP.LOBBY.code and MP.LOBBY.config.multiplayer_jokers - end, - can_use = function(self, card) - return true - end, - use = function(self, card, area, copier) - local asteroids = MP.GAME.asteroids - update_hand_text( - { sound = "button", volume = 0.7, pitch = 0.8, delay = 0.3 }, - { handname = localize("k_asteroids"), chips = localize("k_amount_short"), mult = MP.GAME.asteroids } - ) - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.2, - func = function() - play_sound("tarot1", 0.9 + (MP.GAME.asteroids / 10), 1) - card:juice_up(0.8, 0.5) - return true - end, - })) - update_hand_text({ delay = 0 }, { mult = "+1", StatusText = true }) - MP.GAME.asteroids = MP.GAME.asteroids + 1 - update_hand_text({ delay = 0 }, { mult = MP.GAME.asteroids }) - delay(2.5) - update_hand_text( - { sound = "button", volume = 0.7, pitch = 1.1, delay = 0 }, - { mult = 0, chips = 0, handname = "", level = "" } - ) - end, - mp_credits = { - idea = { "Zilver" }, - art = { "TheTrueRaven" }, - code = { "Virtualized" }, - }, -}) diff --git a/objects/consumables/judgement.lua b/objects/consumables/judgement.lua deleted file mode 100644 index 7ecbe978a..000000000 --- a/objects/consumables/judgement.lua +++ /dev/null @@ -1,74 +0,0 @@ ---[[ gotta redefine the logic -MP.ReworkCenter({ - key = "c_judgement", - ruleset = MP.UTILS.get_standard_rulesets({'minorleague'}), - silent = true, - use = function(self, card, area, copier) - local _card = copier or card - G.E_MANAGER:add_event(Event({trigger = 'after', delay = 0.4, func = function() - play_sound('timpani') - if MP.INTEGRATIONS.TheOrder then -- this only matters if order exists - local done = false - while not done do -- AHHH we have to do so much boilerplate - done = true - - local card = { stickers = { eternal = false, perishable = false, rental = false } } - local rarity = SMODS.poll_rarity("Joker", 'rarity0') - local str_rarity = rarity - if type(rarity) == 'number' then - str_rarity = ({'Common', 'Uncommon', 'Rare', 'Legendary'})[rarity] -- kill me now - end - local _pool = get_current_pool('Joker', str_rarity, nil, '') - local _pool_key = 'Joker'..rarity..'0' - center = pseudorandom_element(_pool, pseudoseed(_pool_key)) - local it = 1 - while center == 'UNAVAILABLE' do - it = it + 1 - center = pseudorandom_element(_pool, pseudoseed(_pool_key)) - end - - card.key = center - - local eternal_perishable_poll = pseudorandom(center..'etperpoll0') - local rental_poll = pseudorandom(center..'ssjr0') - - if G.GAME.modifiers.enable_eternals_in_shop - and eternal_perishable_poll > 0.7 - and G.P_CENTERS[center].eternal_compat then - card.stickers.eternal = true - done = false - end - - if G.GAME.modifiers.enable_perishables_in_shop - and ((eternal_perishable_poll > 0.4) and (eternal_perishable_poll <= 0.7)) - and G.P_CENTERS[center].perishable_compat then - card.stickers.perishable = true - done = false - end - - if G.GAME.modifiers.enable_rentals_in_shop - and rental_poll > 0.7 then - card.stickers.rental = true - done = false - end - - if done then - table.insert(G.GAME.MP_joker_overrides, 1, card) -- start, so it gets created immediately - else - table.insert(G.GAME.MP_joker_overrides, card) -- end - end - end - end - G.MP_JUDGEMENT_OVERRIDE = true - local joker = create_card('Joker', G.jokers, nil, nil, nil, nil, nil, 'jud') -- just call create card since override will kick in - G.MP_JUDGEMENT_OVERRIDE = nil - joker:add_to_deck() - G.jokers:emplace(joker) - _card:juice_up(0.3, 0.5) - - return true - end})) - delay(0.6) - end, -}) -]] diff --git a/objects/consumables/ouija.lua b/objects/consumables/ouija.lua deleted file mode 100644 index b96ee2bbd..000000000 --- a/objects/consumables/ouija.lua +++ /dev/null @@ -1,100 +0,0 @@ -SMODS.Atlas({ - key = "ouija_2", - path = "c_ouija_2.png", - px = 71, - py = 95, -}) - -SMODS.Consumable({ - key = "ouija_standard", - set = "Spectral", - atlas = "ouija_2", - cost = 4, - pos = { x = 0, y = 0 }, - unlocked = true, - discovered = true, - config = { extra = { destroy = 3 }, mp_sticker_balanced = true }, - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.destroy } } - end, - use = function(self, card, area, copier) - local used_tarot = copier or card - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.4, - func = function() - play_sound("tarot1") - used_tarot:juice_up(0.3, 0.5) - return true - end, - })) - - local cards_to_destroy = {} - local temp_hand = {} - for k, v in ipairs(G.hand.cards) do - temp_hand[#temp_hand + 1] = v - end - table.sort(temp_hand, function(a, b) - return not a.playing_card or not b.playing_card or a.playing_card < b.playing_card - end) - pseudoshuffle(temp_hand, pseudoseed("ouija_destroy")) - - for i = 1, card.ability.extra.destroy do - cards_to_destroy[#cards_to_destroy + 1] = temp_hand[i] - temp_hand[i].ouija_queue_destroy = true - end - for i = 1, #G.hand.cards do - local _card = G.hand.cards[i] - local percent = 1.15 - (i - 0.999) / (#G.hand.cards - 0.998) * 0.3 - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.15, - func = function() - _card:flip() - play_sound("card1", percent) - _card:juice_up(0.3, 0.3) - return true - end, - })) - end - delay(0.2) - SMODS.destroy_cards(cards_to_destroy) - delay(0.3) - local _rank = pseudorandom_element(SMODS.Ranks, "ouija") - for i = 1, #G.hand.cards do - local _card = G.hand.cards[i] - if not _card.ouija_queue_destroy then - G.E_MANAGER:add_event(Event({ - func = function() - if _card and not _card.destroyed then assert(SMODS.change_base(_card, nil, _rank.key)) end - return true - end, - })) - end - end - for i = 1, #G.hand.cards do - local _card = G.hand.cards[i] - if not _card.ouija_queue_destroy then - local percent = 0.85 + (i - 0.999) / (#G.hand.cards - 0.998) * 0.3 - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.15, - func = function() - _card:flip() - play_sound("tarot2", percent, 0.6) - _card:juice_up(0.3, 0.3) - return true - end, - })) - end - end - delay(0.5) - end, - can_use = function(self, card) - return G.hand and #G.hand.cards >= card.ability.extra.destroy - end, - mp_credits = { - art = { "aura!" }, - code = { "steph" }, - }, -}) diff --git a/objects/consumables/sandbox/ectoplasm.lua b/objects/consumables/sandbox/ectoplasm.lua deleted file mode 100644 index dc90070a2..000000000 --- a/objects/consumables/sandbox/ectoplasm.lua +++ /dev/null @@ -1,51 +0,0 @@ -SMODS.Consumable({ - key = "ectoplasm_sandbox", - set = "Spectral", - cost = 4, - pos = { x = 8, y = 4 }, - config = { mp_sticker_balanced = true }, - loc_vars = function(self, info_queue, card) - info_queue[#info_queue + 1] = G.P_CENTERS.e_negative - return { vars = { G.GAME.ecto_minus or 1 } } - end, - use = function(self, card, area, copier) - local editionless_jokers = SMODS.Edition:get_edition_cards(G.jokers, true) - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.4, - func = function() - -- Randomly pick one of three negative effects - local effect = math.floor(pseudorandom("ectoplasm_sandbox") * 3) + 1 - - if effect == 1 then - G.GAME.round_resets.hands = G.GAME.round_resets.hands - 1 - ease_hands_played(-1) - elseif effect == 2 then - G.GAME.round_resets.discards = G.GAME.round_resets.discards - 1 - ease_discard(-1) - else - G.hand:change_size(-1) - end - - -- positive effect: negative joker - if #editionless_jokers > 0 then - local eligible_card = pseudorandom_element(editionless_jokers, "ectoplasm") - eligible_card:set_edition({ negative = true }) - end - - card:juice_up(0.3, 0.5) - return true - end, - })) - end, - can_use = function(self, card) - return next(SMODS.Edition:get_edition_cards(G.jokers, true)) - end, - -- draw = function(self, card, layer) - -- -- This is for the Spectral shader. You don't need this with `set = "Spectral"` - -- -- Also look into SMODS.DrawStep if you make multiple cards that need the same shader - -- if (layer == "card" or layer == "both") and card.sprite_facing == "front" then - -- card.children.center:draw_shader("booster", nil, card.ARGS.send_to_shader) - -- end - -- end, -}) diff --git a/objects/consumables/wraith.lua b/objects/consumables/wraith.lua deleted file mode 100644 index 0739c4e28..000000000 --- a/objects/consumables/wraith.lua +++ /dev/null @@ -1,31 +0,0 @@ --- Reworked Wraith: random Uncommon joker + $5 (vanilla = random Rare, money to $0). -SMODS.Consumable({ - key = "wraith", - set = "Spectral", - pos = { x = 5, y = 4 }, - cost = 4, - unlocked = true, - discovered = true, - config = { extra = { dollars = 5 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.dollars } } - end, - use = function(self, card, area, copier) - local used_tarot = copier or card - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.4, - func = function() - play_sound("timpani") - SMODS.add_card({ set = "Joker", rarity = "Uncommon", key_append = "mp_wra" }) - used_tarot:juice_up(0.3, 0.5) - ease_dollars(card.ability.extra.dollars, true) - return true - end, - })) - delay(0.6) - end, - can_use = function(self, card) - return #G.jokers.cards < G.jokers.config.card_limit or card.area == G.jokers - end, -}) diff --git a/objects/decks/00_violet.lua b/objects/decks/00_violet.lua deleted file mode 100644 index 930bbb203..000000000 --- a/objects/decks/00_violet.lua +++ /dev/null @@ -1,29 +0,0 @@ -SMODS.Back({ - key = "violet", - config = {}, - atlas = "mp_decks", - pos = { x = 0, y = 0 }, - mp_credits = { art = { "aura!" }, code = { "Toneblock" } }, - apply = function(self) - SMODS.change_voucher_limit(1) - G.GAME.modifiers.mp_violet = true -- i forgot how you get the deck, whatever - end, -}) - -local set_cost_ref = Card.set_cost -function Card:set_cost() - set_cost_ref(self) - if G.GAME.modifiers.mp_violet and self.config.center.set == "Voucher" then - if G.GAME.round_resets.ante == 1 then - self.cost = math.max( - 1, - math.floor(0.5 * (self.base_cost + self.extra_cost + 0.5) * (100 - G.GAME.discount_percent) / 100) - ) - elseif G.GAME.round_resets.ante == 2 then - self.cost = math.max( - 1, - math.floor(0.7 * (self.base_cost + self.extra_cost + 0.5) * (100 - G.GAME.discount_percent) / 100) - ) - end - end -end diff --git a/objects/decks/01_indigo.lua b/objects/decks/01_indigo.lua deleted file mode 100644 index c8f738aa2..000000000 --- a/objects/decks/01_indigo.lua +++ /dev/null @@ -1,108 +0,0 @@ -SMODS.Back({ - key = "indigo", - config = {}, - atlas = "mp_decks", - pos = { x = 1, y = 0 }, - mp_credits = { art = { "aura!" }, code = { "Toneblock" } }, - apply = function(self) - G.GAME.modifiers.mp_indigo = true - G.GAME.modifiers.booster_choice_mod = (G.GAME.modifiers.booster_choice_mod or 0) + 1 - G.GAME.banned_keys["j_red_card"] = true - end, -}) - -local function check_joker_space(card) - if card.config.center.set == "Joker" and card.edition and card.edition.negative then return true end - local c = 0 - local un_c = G.jokers.config.card_limit - for i, v in ipairs(G.jokers.cards) do - if v.edition and v.edition.type == "negative" then - un_c = un_c - 1 - elseif v.ability.eternal then - c = c + 1 - else - break - end - end - return c < un_c -end - -local function is_usable(card) - local center = card.config.center - local key = center.key - if center.set == "Enhanced" or center.set == "Default" or center.set == "Planet" then - return true - elseif center.set == "Joker" then - return check_joker_space(card) - elseif center.set == "Tarot" then - if key == "c_fool" then - return G.GAME.last_tarot_planet and G.GAME.last_tarot_planet ~= "c_fool" - elseif key == "c_judgement" then - return check_joker_space(card) - elseif key == "c_wheel_of_fortune" then - if card.eligible_strength_jokers and next(card.eligible_strength_jokers) then return true end - return false - elseif card.ability.consumeable.max_highlighted then - if #G.hand.cards >= (card.ability.consumeable.min_highlighted or 1) then return true end - return false - else - return true - end - elseif center.set == "Spectral" then - if - key == "c_familiar" - or key == "c_grim" - or key == "c_incantation" - or key == "c_immolate" - or key == "c_sigil" - or key == "c_ouija" - then - if #G.hand.cards > 1 then -- vanilla bug? - return true - end - return false - elseif key == "c_aura" then - local bool = false - for i, v in ipairs(G.hand.cards) do - if not v.edition then - bool = true - break - end - end - return bool - elseif key == "c_ectoplasm" or key == "c_hex" then - if card.eligible_editionless_jokers and next(card.eligible_editionless_jokers) then return true end - return false - elseif key == "c_wraith" or key == "c_soul" then - return check_joker_space(card) - elseif key == "c_ankh" then - if G.jokers.cards[1] then return check_joker_space(card) end - return false - elseif card.ability.consumeable.max_highlighted then - if #G.hand.cards >= (card.ability.consumeable.min_highlighted or 1) then return true end - return false - else - return true - end - end - return true -- hopefully no mod compat doesn't kill a run (it will) -end - -local can_skip_ref = G.FUNCS.can_skip_booster -G.FUNCS.can_skip_booster = function(e) - if G.GAME.modifiers.mp_indigo then - local softlock = true - for i, v in ipairs(G.pack_cards.cards) do - if is_usable(v) then - softlock = false - break - end - end - if not softlock then - e.config.colour = G.C.UI.BACKGROUND_INACTIVE - e.config.button = nil - return - end - end - return can_skip_ref(e) -end diff --git a/objects/decks/02_orange.lua b/objects/decks/02_orange.lua deleted file mode 100644 index c0470dbab..000000000 --- a/objects/decks/02_orange.lua +++ /dev/null @@ -1,44 +0,0 @@ -SMODS.Back({ - key = "orange", - config = { consumables = { "c_hanged_man", "c_hanged_man" } }, - atlas = "mp_decks", - pos = { x = 2, y = 0 }, - mp_credits = { art = { "aura!" }, code = { "Toneblock" } }, - apply = function(self) - stop_use() - local lock = self.key - G.CONTROLLER.locks[lock] = true - -- "yeah just triple layer the event surely that works...WHAT THE SHIT" - G.E_MANAGER:add_event(Event({ - func = function() - G.E_MANAGER:add_event(Event({ - func = function() - G.E_MANAGER:add_event(Event({ - func = function() - local key = "p_arcana_mega_" .. (math.random(1, 2)) - local card = Card( - G.play.T.x + G.play.T.w / 2 - G.CARD_W * 1.27 / 2, - G.play.T.y + G.play.T.h / 2 - G.CARD_H * 1.27 / 2, - G.CARD_W * 1.27, - G.CARD_H * 1.27, - G.P_CARDS.empty, - G.P_CENTERS["p_mp_standard_giga"], - { bypass_discovery_center = true, bypass_discovery_ui = true } - ) - card.cost = 0 - card.from_tag = true - delay(0.2) - G.FUNCS.use_card({ config = { ref_table = card } }) - card:start_materialize() - G.CONTROLLER.locks[lock] = nil - return true - end, - })) - return true - end, - })) - return true - end, - })) - end, -}) diff --git a/objects/decks/09_white.lua b/objects/decks/09_white.lua deleted file mode 100644 index 9f914bf1a..000000000 --- a/objects/decks/09_white.lua +++ /dev/null @@ -1,43 +0,0 @@ - ---[[ -SMODS.Back({ - key = "white", - config = {}, - atlas = "mp_decks", - pos = { x = 2, y = 1 }, - mp_credits = { art = { "aura!" }, code = { "Toneblock" } }, - apply = function(self) - if MP.LOBBY.code then - G.GAME.modifiers.view_nemesis_deck = true - end - end, -}) - --- new global table for white deck stuff because there's a lot of things and i want it to be as clean as possible --- some may argue it's worse. perhaps it is -MP.WHITE = { - state = { - client = {}, - nemesis = {}, - } - -} - -function MP.WHITE.save_state() - local save = MP.WHITE.state.client - - save.ante = G.GAME.round_resets.ante - - local jokers_save = G.jokers:save() - save.jokers = MP.UTILS.str_pack_and_encode(jokers_save) - - local deck_save = G.deck:save() -- gotta be careful that every card is actually in the deck at this point - save.deck = MP.UTILS.str_pack_and_encode(deck_save) -end - -function MP.WHITE.send_state() -end - -function MP.WHITE.request_state() -- need another function for "request until received" -end -]] diff --git a/objects/decks/AA_oracle.lua b/objects/decks/AA_oracle.lua deleted file mode 100644 index 35626a27e..000000000 --- a/objects/decks/AA_oracle.lua +++ /dev/null @@ -1,31 +0,0 @@ -function oracle_apply_dollar_cap(mod, current_dollars, max_dollars) - return math.min(max_dollars - current_dollars, mod) -end - -function oracle_should_show_max(mod, current_dollars, max_dollars) - return mod == 0 and current_dollars >= max_dollars -end - -function oracle_show_max_alert(dollar_UI) - attention_text({ - text = "MAX", - scale = 0.8, - hold = 0.7, - cover = dollar_UI.parent, - cover_colour = G.C.RED, - align = "cm", - }) - play_sound("timpani", 0.9, 0.7) - play_sound("timpani", 1.2, 0.7) -end - -SMODS.Back({ - key = "oracle", - config = { vouchers = { "v_clearance_sale" }, consumables = { "c_medium" } }, - atlas = "mp_decks", - pos = { x = 1, y = 1 }, - apply = function(self) - G.GAME.modifiers.oracle_max = 50 - end, - mp_credits = { art = { "aura!", "Ganpan140" }, code = { "Toneblock" } }, -}) diff --git a/objects/decks/BB_gradient.lua b/objects/decks/BB_gradient.lua deleted file mode 100644 index e931a61e5..000000000 --- a/objects/decks/BB_gradient.lua +++ /dev/null @@ -1,154 +0,0 @@ -SMODS.Back({ - key = "gradient", - config = {}, - atlas = "mp_decks", - pos = { x = 0, y = 1 }, - apply = function(self) - G.GAME.modifiers.mp_gradient = true -- i forgot how you get the deck, whatever - end, - mp_credits = { art = { "aura!", "Ganpan140" }, code = { "Toneblock" } }, -}) - --- we need to define a bunch of local functions first for some reason - --- water is wet -local function set_temp_id(card, key) - if not card.orig_id then card.orig_id = card.base.id end - card.base.id = card.orig_id + G.MP_GRADIENT - if key ~= "j_raised_fist" then -- otherwise it gets confused and triggers a second card - if card.base.id == 15 then - card.base.id = 2 - elseif card.base.id == 1 then - card.base.id = 14 - end - end -end - --- if code runs twice it needs a func ig -local function reset_ids() - if G.MP_GRADIENT then - G.MP_GRADIENT = nil - for i, card in ipairs(G.playing_cards) do - card.base.id = card.orig_id - card.orig_id = nil - end - end - -- i am checking for G.MP_GRADIENT here. why? - -- i know this code. i built it myself. this function will always be run at the correct time. - -- or so i thought. alas, the day after release, i was humbled by a crashlog relating to this exact issue. - -- i have reordered the code before, this was nothing new. i knew exactly what it was caused by, and i recreated it fairly easily. - -- but the logic has expanded in complexity since then. no more can i follow where one line ends and the other begins. - -- the code was watered with passion and motivation, but it grew into thick, thorny vines that stab my hands and block my vision. - -- there is only pain for the person who decides to touch this. the code does not have emotion, it does not care. - -- in some twisted way, i am attached to it. it falls short of the greatness expected, but it accomplishes so much. - -- as a gift, for all it has done, i shift it, ever so slightly, that it thrives. - - -- tldr: i have no idea what this shit is doing anymore, this check shouldn't be necessary - -- checking this prevents a crash and doesn't seem to break anything -end - -local function get_bp(joker) - local key = joker.config.center.key - local count = 0 - local pos = 0 - for i, v in ipairs(G.jokers.cards) do - if v == joker then pos = i end - end - while (key == "j_blueprint" or key == "j_brainstorm") and count <= #G.jokers.cards do - if key == "j_blueprint" then - key = G.jokers.cards[pos + 1] and G.jokers.cards[pos + 1].config.center.key or "NULL" - pos = pos + 1 - elseif key == "j_brainstorm" then - key = G.jokers.cards[1].config.center.key - pos = 1 - end - count = count + 1 - end - return key -end - --- hardcoded dumb stuff, because cards that could trigger but don't due to rng are dumb and stupid and don't return anything --- ALSO i have to add a whole get blueprint key thing (above) it's so stupid --- all this to avoid lovely patching? who cares -local function valid_trigger(card, joker) - local key = joker.config.center.key - key = get_bp(joker) - local function rank_check(ranks) - for i, v in ipairs(ranks) do - if card:get_id() == v then return true end - end - return - end - if card and not card.base then -- ?????????????????????? - return false - end - if key == "j_8_ball" then - return rank_check({ 8 }) -- this being a table looks stupid now - elseif key == "j_hit_the_road" then - return rank_check({ 11 }) - elseif key == "j_business" or key == "j_reserved_parking" then - return card:is_face() - elseif key == "j_bloodstone" or key == "j_mp_bloodstone" or key == "j_mp_bloodstone2" then - return card:is_suit("Hearts") - end -end - -local is_face_ref = Card.is_face -function Card:is_face(from_boss) - local ret = is_face_ref(self, from_boss) - if G.GAME.modifiers.mp_gradient and not G.MP_GRADIENT then - local id = self:get_id() -- like seriously i want an explanation - if self.debuff and not from_boss then return end - if not ret and id == 10 or id == 14 then return true end - end - return ret -end - --- hardcoded functions because honk shoo -local function passkey(joker) - local key = get_bp(joker) - if key == "j_superposition" or key == "j_sixth_sense" then return true end - return false -end -local function blacklist(joker) - local key = get_bp(joker) - if key == "j_photograph" or key == "j_faceless" or key == "j_ramen" then return true end - return false -end - --- infamous calculate joker hook -local calculate_joker_ref = Card.calculate_joker -function Card:calculate_joker(context) - if not context.blueprint then -- very important because bloopy recursively calls this - if G.GAME.modifiers.mp_gradient and (context.other_card or passkey(self)) and not blacklist(self) then - for i = 1, 3 do - G.MP_GRADIENT = -i + 2 - for i, card in ipairs(G.playing_cards) do -- it's actually insane that this doesn't blow up the game??? this is being run thousands of times wastefully - set_temp_id(card, self.config.center.key) - end - local ret, post = calculate_joker_ref(self, context) - if ret or post or valid_trigger(context.other_card, self) then - reset_ids() - return ret, post - end - end - reset_ids() - end - end - return calculate_joker_ref(self, context) -end - --- a special hardcoded hook just for cloud nine! hook hook, hooray! -local update_ref = Card.update -function Card:update(dt) - local ret = update_ref(self, dt) - if G.GAME.modifiers.mp_gradient then - if self.ability.name == "Cloud 9" then - self.ability.nine_tally = 0 - for k, v in pairs(G.playing_cards) do - local id = v:get_id() - if id == 8 or id == 9 or id == 10 then self.ability.nine_tally = self.ability.nine_tally + 1 end - end - end - end -end diff --git a/objects/decks/CC_heidelberg.lua b/objects/decks/CC_heidelberg.lua deleted file mode 100644 index bef4b0830..000000000 --- a/objects/decks/CC_heidelberg.lua +++ /dev/null @@ -1,27 +0,0 @@ -SMODS.Atlas({ - key = "b_heidelberg", - path = "b_heidelberg.png", - px = 71, - py = 95, -}) - -SMODS.Back({ - key = "heidelberg", - atlas = "b_heidelberg", - mp_credits = { art = { "aura!" }, code = { "steph" } }, - calculate = function(self, back, context) - if context.ending_shop and G.consumeables.cards[1] then - G.E_MANAGER:add_event(Event({ - func = function() - local card_to_copy, _ = pseudorandom_element(G.consumeables.cards, "mp_heidelberg") - local copied_card = copy_card(card_to_copy) - copied_card:set_edition("e_negative", true) - copied_card:add_to_deck() - G.consumeables:emplace(copied_card) - return true - end, - })) - return { message = localize("k_duplicated_ex") } - end - end, -}) diff --git a/objects/decks/EC_echo_deck.lua b/objects/decks/EC_echo_deck.lua deleted file mode 100644 index 44a50cb1b..000000000 --- a/objects/decks/EC_echo_deck.lua +++ /dev/null @@ -1,57 +0,0 @@ -SMODS.Atlas({ - key = "ec_other_sandbox", - path = "ec_other_sandbox.png", - px = 71, - py = 95, -}) - -SMODS.Back({ --Echo Deck - name = "Echo Deck", - key = "echodeck", - loc_txt = { - name = "Echo Deck", - text = { - "{C:attention}Retrigger{} all playing cards", - "{C:red}X1.2{} base Blind size", - "Increases by {C:red}X0.2{} each Ante", - }, - }, - order = 18, - unlocked = true, - discovered = true, - config = {}, - loc_vars = function(self, info_queue, center) - return { vars = {} } - end, - pos = { x = 2, y = 0 }, - atlas = "ec_other_sandbox", - apply = function(self, back) - G.GAME.starting_params.ante_scaling = 1.2 - end, - - calculate = function(self, back, context) - if context.cardarea == G.play and context.repetition then - return { - message = localize("k_again_ex"), - repetitions = 1, - card = card, - } - elseif context.repetition and context.cardarea == G.hand then - if next(context.card_effects[1]) or #context.card_effects > 1 then - return { - message = localize("k_again_ex"), - repetitions = 1, - card = card, - } - end - end - - if context.end_of_round and not context.repetition and not context.individual and G.GAME.blind.boss then - G.GAME.starting_params.ante_scaling = G.GAME.starting_params.ante_scaling + 0.2 - end - end, - mp_credits = { - code = { "CampfireCollective" }, - art = { "neatoqueen" }, - }, -}) diff --git a/objects/decks/ZZ_cocktail.lua b/objects/decks/ZZ_cocktail.lua deleted file mode 100644 index abbdf1342..000000000 --- a/objects/decks/ZZ_cocktail.lua +++ /dev/null @@ -1,670 +0,0 @@ -SMODS.Back({ - key = "cocktail", - config = {}, - atlas = "mp_decks", - pos = { x = 4, y = 0 }, - mod_whitelist = { - Multiplayer = true, - Cryptid = true, - aikoyorisshenanigans = true, - allinjest = true, - }, - deck_blacklist = { - b_challenge = true, - b_mp_cocktail = true, - b_cry_antimatter = true, - b_akyrs_hardcore_challenges = true, - }, - apply = function(self) - -- we need to fucking generate the seed early this is infuriating - local seed = G._MP_SET_SEED - local seeded = false - if seed then seeded = true end - G.GAME.pseudorandom.seed = seed or generate_starting_seed() - G.GAME.modifiers.mp_cocktail = {} - G.GAME.modifiers.mp_cocktail_sticker = {} - local decks, forced = MP.get_cocktail_decks(true) - pseudoshuffle(decks, pseudoseed("mp_cocktail")) - local back = G.GAME.selected_back - - local function add_deck(num, deck, sticker) - G.GAME.modifiers.mp_cocktail[num] = deck - if sticker then G.GAME.modifiers.mp_cocktail_sticker[num] = deck end - if deck == "b_checkered" then -- hardcoded because cringe - G.E_MANAGER:add_event(Event({ - func = function() - for k, v in pairs(G.playing_cards) do - if v.base.suit == "Clubs" then v:change_suit("Spades") end - if v.base.suit == "Diamonds" then v:change_suit("Hearts") end - end - return true - end, - })) - end - end - - for i = 1, #forced do - add_deck(i, forced[i], true) - end - for i = 1 + #forced, math.min(3, #decks) do - add_deck(i, decks[i], MP.cocktail_cfg_readpos("show", true) ~= "H" and true or false) - end - local function merge(t1, t2, safe) - local t3 = {} - for k, v in pairs(t1) do - if type(v) == "table" then - t3[k] = merge(v, {}) - else - t3[k] = v - end - end - for k, v in pairs(t2) do - local existing = t3[k] - - if type(existing) == "number" and type(v) == "number" then - t3[k] = existing + v - elseif type(existing) == "table" and type(v) == "table" then - t3[k] = merge(existing, v, true) -- risky but it works... - else - if type(v) == "table" then - t3[k] = merge(v, {}) - else - local index = safe and #t3 + 1 or k - t3[index] = v - end - end - end - return t3 - end - for i = 1, #G.GAME.modifiers.mp_cocktail do - back.effect.config = merge(back.effect.config, G.P_CENTERS[G.GAME.modifiers.mp_cocktail[i]].config) - if back.effect.config.voucher then - back.effect.config.vouchers = back.effect.config.vouchers or {} - back.effect.config.vouchers[#back.effect.config.vouchers + 1] = back.effect.config.voucher - back.effect.config.voucher = nil - end - local obj = G.P_CENTERS[G.GAME.modifiers.mp_cocktail[i]] - if obj.apply and type(obj.apply) == "function" then obj:apply(back) end - - -- aikoshen exception because this code runs before apply_to_run orig (why?) - if back.effect.config.akyrs_starting_letters then - G.GAME.starting_params.akyrs_starting_letters = back.effect.config.akyrs_starting_letters - end - if back.effect.config.akyrs_letters_no_uppercase then - G.GAME.starting_params.akyrs_letters_no_uppercase = back.effect.config.akyrs_letters_no_uppercase - end - - -- all in jest exception for patchwork deck - if G.GAME.modifiers.mp_cocktail[i] == "b_aij_patchwork" then - G.GAME.modifiers.b_aij_patchwork = true - end - end - if MP.is_layer_active("smallworld") then MP.apply_fake_back_vouchers(back) end - back.effect.mp_cocktailed = true - if MP.cocktail_check_edited() then G.GAME.seeded = true end - end, - calculate = function(self, back, context) - for i = 1, #G.GAME.modifiers.mp_cocktail do - back:change_to(G.P_CENTERS[G.GAME.modifiers.mp_cocktail[i]]) - local ret1, ret2 = back:trigger_effect(context) - back:change_to(G.P_CENTERS["b_mp_cocktail"]) - if ret1 or ret2 then return ret1, ret2 end - end - end, - mp_credits = { art = { "aura!", "shai1n" }, code = { "Toneblock" } }, -}) - --- honestly this could have been a list --- whatever -local sticker_x_pos = { - b_red = 0, - b_blue = 1, - b_yellow = 2, - b_green = 3, - b_black = 4, - b_magic = 5, - b_nebula = 6, - b_ghost = 7, - b_abandoned = 8, - b_checkered = 9, - b_zodiac = 10, - b_painted = 11, - b_anaglyph = 12, - b_plasma = 13, - b_erratic = 14, - b_mp_orange = 15, - b_mp_indigo = 16, - b_mp_violet = 17, - b_mp_white = 18, - b_mp_oracle = 19, - b_mp_gradient = 20, - b_mp_heidelberg = 21, - b_mp_echodeck = 22, -} - -function MP.get_cocktail_decks(cull) - local ret = {} - local forced = {} - for k, v in pairs(G.P_CENTERS) do - if v.set == "Back" and not G.P_CENTERS["b_mp_cocktail"].deck_blacklist[k] then - if not (v.mod and not G.P_CENTERS["b_mp_cocktail"].mod_whitelist[v.mod.id]) then ret[#ret + 1] = k end - end - end - table.sort(ret, function(a, b) - return G.P_CENTERS[a].order < G.P_CENTERS[b].order - end) - if cull then - local _ret = {} - for i, v in ipairs(ret) do - if MP.cocktail_cfg_readpos(i, true) == "1" then - _ret[#_ret + 1] = ret[i] - elseif MP.cocktail_cfg_readpos(i, true) == "2" then - forced[#forced + 1] = ret[i] - end - end - ret = _ret - end - return ret, forced -end - -local change_to_ref = Back.change_to -function Back:change_to(new_back) - if self.effect.mp_cocktailed then - local t = copy_table(self.effect.config) - local ret = change_to_ref(self, new_back) - self.effect.config = copy_table(t) - self.effect.mp_cocktailed = true - return ret - end - return change_to_ref(self, new_back) -end - -local function is_cocktail_select(card) - if Galdur then - return Galdur.run_setup - and card.area == Galdur.run_setup.selected_deck_area - and card.config.center.key == "b_mp_cocktail" - else - return G.GAME.viewed_back - and G.GAME.viewed_back.effect - and G.GAME.viewed_back.effect.center.key == "b_mp_cocktail" - and card.facing == "back" - end -end - -local click_ref = Card.click -function Card:click() -- i'd rather deal with the cardarea but this is fine i suppose - click_ref(self) - if G.STAGE == G.STAGES.MAIN_MENU then - if is_cocktail_select(self) then - -- boilerplate robbed from cryptid's decaying corpse - if G.cocktail_select then - for i = 1, #G.cocktail_select do - G.cocktail_select[i]:remove() - G.cocktail_select[i] = nil - end - end - G.cocktail_select = {} - for i = 1, 2 do - G.cocktail_select[i] = CardArea( - G.ROOM.T.x + 0.2 * G.ROOM.T.w / 1.5, - G.ROOM.T.h, - 5.3 * G.CARD_W, - 1.03 * G.CARD_H, - { card_limit = 5, type = "title", highlight_limit = 999, collection = true } - ) - end - local decks = MP.get_cocktail_decks() - local cfg = SMODS.Mods["Multiplayer"].config - for i, v in ipairs(decks) do - local row = math.floor((((i - 1) / #decks) * 2) + 1) - G.GAME.viewed_back = G.P_CENTERS[v] - local card = Card( - G.ROOM.T.x + 0.2 * G.ROOM.T.w / 2, - G.ROOM.T.h, - G.CARD_W, - G.CARD_H, - pseudorandom_element(G.P_CARDS), - G.P_CENTERS.c_base, - { playing_card = i, bypass_back = G.P_CENTERS[v].pos } - ) - G.cocktail_select[row]:emplace(card) - card.sprite_facing = "back" - card.facing = "back" - card.mp_cocktail_select = v - local num = MP.cocktail_cfg_readpos(i) - card.highlighted = tonumber(num) >= 1 and true or false - card.mp_cocktail_forced = num == "2" and true or false - end - G.GAME.viewed_back = G.P_CENTERS["b_mp_cocktail"] - MP.show_cocktail_decks = MP.cocktail_cfg_readpos("show") ~= "H" and true or false - deck_tables = {} - for i = 1, #G.cocktail_select do - deck_tables[i] = { - n = G.UIT.R, - config = { align = "cm", padding = 0, no_fill = true }, - nodes = { - { n = G.UIT.O, config = { object = G.cocktail_select[i] } }, - }, - } - end - local t = create_UIBox_generic_options({ - back_func = "setup_run", - snap_back = true, - contents = { - { - n = G.UIT.R, - config = { - padding = 0.0, - align = "cl", - }, - nodes = { - create_toggle({ - id = "show_cocktail_decks", - label = "Show active decks during run", - ref_table = MP, - ref_value = "show_cocktail_decks", - callback = function(bool) - MP.cocktail_cfg_edit(bool, "show") - end, - }), - }, - }, - { n = G.UIT.R, config = { align = "cl", padding = 0.4, minh = 0.4 } }, -- empty space row because i'm bad at ui - { - n = G.UIT.R, - config = { align = "cm", minw = 2.5, padding = 0.1, r = 0.1, colour = G.C.BLACK, emboss = 0.05 }, - nodes = deck_tables, - }, - { - n = G.UIT.R, - config = { align = "cl", padding = 0 }, - nodes = { - { - n = G.UIT.T, - config = { text = localize("k_cocktail_select"), scale = 0.48, colour = G.C.WHITE }, - }, - }, - }, - { - n = G.UIT.R, - config = { align = "cl", padding = 0 }, - nodes = { - { - n = G.UIT.T, - config = { text = localize("k_cocktail_shiftclick"), scale = 0.32, colour = G.C.WHITE }, - }, - }, - }, - { - n = G.UIT.R, - config = { align = "cl", padding = 0 }, - nodes = { - { - n = G.UIT.T, - config = { text = localize("k_cocktail_rightclick"), scale = 0.32, colour = G.C.WHITE }, - }, - }, - }, - }, - }) - G.FUNCS.overlay_menu({ - definition = t, - }) - end - end -end - -local draw_ref = Card.draw -function Card:draw(layer) - draw_ref(self, layer) - if G.STAGE == G.STAGES.MAIN_MENU then - if not self.children.view_deck then - self.children.view_deck = UIBox({ - definition = { - n = G.UIT.ROOT, - config = { align = "cm", padding = 0.1, r = 0.1, colour = G.C.CLEAR }, - nodes = { - { - n = G.UIT.R, - config = { - align = "cm", - padding = 0.05, - r = 0.1, - colour = adjust_alpha(G.C.BLACK, 0.5), - func = "set_button_pip", - focus_args = { button = "triggerright", orientation = "bm", scale = 0.6 }, - button = "deck_info", - }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm", maxw = 2 }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("k_edit"), - scale = 0.48, - colour = G.C.WHITE, - shadow = true, - }, - }, - }, - }, - { - n = G.UIT.R, - config = { align = "cm", maxw = 2 }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("k_deck"), - scale = 0.38, - colour = G.C.WHITE, - shadow = true, - }, - }, - }, - }, - }, - }, - }, - }, - config = { align = "cm", offset = { x = 0, y = 0 }, major = self, parent = self }, - }) - self.children.view_deck.states.collide.can = false - end - local bool = self.states.hover.is and is_cocktail_select(self) - self.children.view_deck.states.visible = bool - end -end - -SMODS.DrawStep({ - key = "mp_cocktail_forced", - order = 5, - func = function(self) - if self.mp_cocktail_forced then self.children.back:draw_shader("foil", nil, self.ARGS.send_to_shader) end - end, - conditions = { vortex = false, facing = "back" }, -}) - -local hover_ref = Card.hover -function Card:hover() - hover_ref(self) - if self.mp_cocktail_select then - self.ability_UIBox_table = self:generate_UIBox_ability_table() - self.config.h_popup = G.UIDEF.card_h_popup(self) - self.config.h_popup_config = self:align_h_popup() - Node.hover(self) - end -end - -local generate_card_ui_ref = generate_card_ui -function generate_card_ui(_c, full_UI_table, specific_vars, card_type, badges, hide_desc, main_start, main_end, card) - if card and card.mp_cocktail_select then - _c = G.P_CENTERS[card.mp_cocktail_select] - local ret = generate_card_ui_ref( - _c, - full_UI_table, - specific_vars, - "Back", - badges, - hide_desc, - main_start, - main_end, - card - ) - if not _c.generate_ui or type(_c.generate_ui) ~= "function" then - -- i literally can't get the vars from anywhere else so we're thunk coding - - local name_to_check = G.P_CENTERS[card.mp_cocktail_select].name - - if name_to_check == "Blue Deck" then - specific_vars = { _c.config.hands } - elseif name_to_check == "Red Deck" then - specific_vars = { _c.config.discards } - elseif name_to_check == "Yellow Deck" then - specific_vars = { _c.config.dollars } - elseif name_to_check == "Green Deck" then - specific_vars = { _c.config.extra_hand_bonus, _c.config.extra_discard_bonus } - elseif name_to_check == "Black Deck" then - specific_vars = { _c.config.joker_slot, -_c.config.hands } - elseif name_to_check == "Magic Deck" then - specific_vars = { - localize({ type = "name_text", key = "v_crystal_ball", set = "Voucher" }), - localize({ type = "name_text", key = "c_fool", set = "Tarot" }), - } - elseif name_to_check == "Nebula Deck" then - specific_vars = { localize({ type = "name_text", key = "v_telescope", set = "Voucher" }), -1 } - elseif name_to_check == "Zodiac Deck" then - specific_vars = { - localize({ type = "name_text", key = "v_tarot_merchant", set = "Voucher" }), - localize({ type = "name_text", key = "v_planet_merchant", set = "Voucher" }), - localize({ type = "name_text", key = "v_overstock_norm", set = "Voucher" }), - } - elseif name_to_check == "Painted Deck" then - specific_vars = { _c.config.hand_size, _c.config.joker_slot } - elseif name_to_check == "Anaglyph Deck" then - specific_vars = { localize({ type = "name_text", key = "tag_double", set = "Tag" }) } - elseif name_to_check == "Plasma Deck" then - specific_vars = { _c.config.ante_scaling } - end - - localize({ type = "descriptions", key = _c.key, set = _c.set, nodes = ret.main, vars = specific_vars }) - end - return ret - end - return generate_card_ui_ref( - _c, - full_UI_table, - specific_vars, - card_type, - badges, - hide_desc, - main_start, - main_end, - card - ) -end - -local can_highlight_ref = CardArea.can_highlight -function CardArea:can_highlight(card) - if card.mp_cocktail_select then return true end - return can_highlight_ref(self, card) -end - -local highlight_ref = Card.highlight -function Card:highlight(is_highlighted) - if self.mp_cocktail_select then - local shift = G.CONTROLLER.held_keys["lshift"] or G.CONTROLLER.held_keys["rshift"] - if shift and self.mp_cocktail_forced then - is_highlighted = false - self.mp_cocktail_forced = false - elseif self.mp_cocktail_forced then - is_highlighted = true - self.mp_cocktail_forced = false - elseif shift then - is_highlighted = true - if MP.cocktail_get_forced_num() < 3 then - self.mp_cocktail_forced = true - play_sound("foil1", 1.5, 0.3) - else - play_sound("timpani", 0.9, 0.7) - play_sound("timpani", 1.2, 0.7) - end - end - MP.cocktail_cfg_edit(self.mp_cocktail_forced and 2 or is_highlighted, self.mp_cocktail_select) - end - return highlight_ref(self, is_highlighted) -end - -local r_cursor_press_ref = Controller.queue_R_cursor_press -function Controller:queue_R_cursor_press(x, y) - local ret = r_cursor_press_ref(self, x, y) - if G.cocktail_select and G.cocktail_select[1].cards then -- bruh - local highlight = true - for i = 1, #G.cocktail_select do - for j = 1, #G.cocktail_select[i].cards do - if G.cocktail_select[i].cards[j].highlighted then - highlight = false - break - end - end - if not highlight then break end - end - for i = 1, #G.cocktail_select do - for j = 1, #G.cocktail_select[i].cards do - G.cocktail_select[i].cards[j].highlighted = highlight - G.cocktail_select[i].cards[j].mp_cocktail_forced = false - end - end - if highlight then - play_sound("cardSlide1") - else - play_sound("cardSlide2", nil, 0.3) - end - MP.cocktail_cfg_edit(highlight) - end - return ret -end - --- kill me -G.E_MANAGER:add_event(Event({ - func = function() - local decks = MP.get_cocktail_decks() - local cfg = SMODS.Mods["Multiplayer"].config - if (not cfg.cocktail) or #decks + 1 ~= #cfg.cocktail then - local string = "" - for i = 1, #decks do - string = string .. "1" - end - string = string .. "H" - cfg.cocktail = string - end - SMODS.save_mod_config(SMODS.Mods["Multiplayer"]) - return true - end, -})) - -function MP.cocktail_cfg_edit(bool, deck) -- strings are easier to send, and it's just ones and zeroes - local decks = MP.get_cocktail_decks() - local cfg = SMODS.Mods["Multiplayer"].config - local num = (bool == 2) and "2" or (bool and "1" or "0") - if not deck then - local string = "" - for i = 1, #decks do - string = string .. num - end - local show = MP.cocktail_cfg_readpos("show") - string = string .. show - cfg.cocktail = string - else - local function replace(str, pos, d) - return str:sub(1, pos - 1) .. d .. str:sub(pos + 1) - end - for i, v in ipairs(decks) do - if v == deck then - cfg.cocktail = replace(cfg.cocktail, i, num) - break - end - end - if deck == "show" then cfg.cocktail = replace(cfg.cocktail, #cfg.cocktail, bool and "S" or "H") end - end - MP.LOBBY.config.cocktail = cfg.cocktail - SMODS.save_mod_config(SMODS.Mods["Multiplayer"]) -end - -function MP.cocktail_cfg_readpos(pos, construct) - local decks = MP.get_cocktail_decks() -- copypasted code. unsure how to make this less messy without making it more messy - local cfg = SMODS.Mods["Multiplayer"].config - if pos == "show" then pos = #cfg.cocktail end - if construct then return MP.cocktail_cfg_get():sub(pos, pos) end - return cfg.cocktail:sub(pos, pos) -end - -function MP.cocktail_cfg_get() - if MP.LOBBY.code and MP.LOBBY.deck and MP.LOBBY.deck.cocktail then - return MP.LOBBY.deck.cocktail - else - return SMODS.Mods["Multiplayer"].config.cocktail - end -end - -function MP.cocktail_check_edited() - local str = MP.cocktail_cfg_get() - for i = 1, #str - 1 do - if string.sub(str, i, i) ~= "1" then return true end - end - if string.sub(str, #str, #str) ~= "H" then return true end - return false -end - -function MP.cocktail_get_forced_num() - local str = SMODS.Mods["Multiplayer"].config.cocktail - local c = 0 - for i = 1, #str - 1 do - if string.sub(str, i, i) == "2" then c = c + 1 end - end - return c -end - -local localize_ref = localize -function localize(args, misc_cat) - if args and type(args) == "table" and args.key then - local ret = localize_ref(args, misc_cat) - local key = args.key or args.node and args.node.config.center.key or "NULL" - if args.type == "name_text" and key == "b_mp_cocktail" then - if MP.cocktail_check_edited() then return ret .. "*" end - end - return ret - else - return localize_ref(args, misc_cat) - end -end - -SMODS.Atlas({ - key = "cocktail_deck_stickers", - path = "deck_stickers.png", - px = 71, - py = 95, -}) - -SMODS.DrawStep({ - key = "back_cocktail", - order = 11, - func = function(self) - if G.STAGE == G.STAGES.RUN and G.GAME and G.GAME.modifiers and G.GAME.modifiers.mp_cocktail_sticker then - if self.area and self.area.config.type == "deck" then - for i, v in ipairs(G.GAME.modifiers.mp_cocktail_sticker) do - local num = math.min(i, 3) - local key = "mp_cocktail_" .. v .. num - if not G.shared_stickers[key] then - G.shared_stickers[key] = Sprite( - 0, - 0, - G.CARD_W, - G.CARD_H, - G.ASSET_ATLAS["mp_cocktail_deck_stickers"], - { x = sticker_x_pos[v] or 0, y = num - 1 } - ) - end - G.shared_stickers[key].role.draw_major = self - local sticker_offset = self.sticker_offset or {} - G.shared_stickers[key]:draw_shader( - "dissolve", - nil, - nil, - true, - self.children.center, - nil, - self.sticker_rotation, - sticker_offset.x, - sticker_offset.y - ) - end - end - end - end, - conditions = { vortex = false, facing = "back" }, -}) diff --git a/objects/decks/_decks.lua b/objects/decks/_decks.lua deleted file mode 100644 index 7e9877acd..000000000 --- a/objects/decks/_decks.lua +++ /dev/null @@ -1,42 +0,0 @@ -SMODS.Atlas({ - key = "decks", - path = "decks.png", - px = 71, - py = 95, -}) - -SMODS.DrawStep({ - key = "back_multiplayer", - order = 11, - func = function(self) - if not Galdur and G.GAME.viewed_back and G.GAME.viewed_back.effect and G.GAME.viewed_back.effect.center.mod then - if G.GAME.viewed_back.effect.center.mod.id == "Multiplayer" and G.STAGE == G.STAGES.MAIN_MENU then - G.shared_stickers["mp_sticker_balanced"].role.draw_major = self - local sticker_offset = self.sticker_offset or {} - G.shared_stickers["mp_sticker_balanced"]:draw_shader( - "dissolve", - nil, - nil, - true, - self.children.center, - nil, - self.sticker_rotation, - sticker_offset.x, - sticker_offset.y - ) - G.shared_stickers["mp_sticker_balanced"]:draw_shader( - "voucher", - nil, - self.ARGS.send_to_shader, - true, - self.children.center, - nil, - self.sticker_rotation, - sticker_offset.x, - sticker_offset.y - ) - end - end - end, - conditions = { vortex = false, facing = "back" }, -}) diff --git a/objects/editions/phantom.lua b/objects/editions/phantom.lua deleted file mode 100644 index be932bd10..000000000 --- a/objects/editions/phantom.lua +++ /dev/null @@ -1,43 +0,0 @@ -function apply_phantom(card) - card.ability.eternal = true - card.ability.mp_sticker_nemesis = true -end - -function remove_phantom(card) - card.ability.eternal = false - card.ability.mp_sticker_nemesis = false -end - -SMODS.Edition({ - key = "phantom", - shader = "voucher", - discovered = true, - unlocked = true, - config = {}, - in_shop = false, - apply_to_float = true, - badge_colour = G.C.PURPLE, - sound = { sound = "negative", per = 1.5, vol = 0.4 }, - disable_shadow = false, - disable_base_shader = true, - extra_cost = 0, -- Min sell value is set to -1 by Multiplayer (1 by default) so this is a hack to make the card this is applied to not have a sell value - on_apply = apply_phantom, - on_remove = remove_phantom, - on_load = apply_phantom, - prefix_config = { shader = false }, - mp_credits = { - idea = { "Virtualized" }, - art = { "Carter" }, - code = { "Virtualized" }, - }, -}) - -local get_card_areas_ref = SMODS.get_card_areas -function SMODS.get_card_areas(_type, _context) - if _type == "jokers" and MP.shared then - local t = get_card_areas_ref(_type, _context) - table.insert(t, MP.shared) - return t - end - return get_card_areas_ref(_type, _context) -end diff --git a/objects/enhancements/mp_glass.lua b/objects/enhancements/mp_glass.lua deleted file mode 100644 index dc322f27a..000000000 --- a/objects/enhancements/mp_glass.lua +++ /dev/null @@ -1,9 +0,0 @@ -MP.ReworkCenter("m_glass", { - layers = { "standard", "classic", "wsob" }, - config = { Xmult = 1.5, extra = 4 }, -}) - -MP.ReworkCenter("m_glass", { - layers = "sandbox", - config = { Xmult = 1.5, extra = 3 }, -}) diff --git a/objects/jokers/conjoined_joker.lua b/objects/jokers/conjoined_joker.lua deleted file mode 100644 index 68f865e89..000000000 --- a/objects/jokers/conjoined_joker.lua +++ /dev/null @@ -1,65 +0,0 @@ -SMODS.Atlas({ - key = "conjoined_joker", - path = "j_conjoined_joker.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "conjoined_joker", - atlas = "conjoined_joker", - rarity = 2, - cost = 6, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = true, - perishable_compat = true, - config = { extra = { x_mult_gain = 0.5, max_x_mult = 3, x_mult = 1 } }, - loc_vars = function(self, info_queue, card) - MP.UTILS.add_nemesis_info(info_queue) - return { vars = { card.ability.extra.x_mult_gain, card.ability.extra.max_x_mult, card.ability.extra.x_mult } } - end, - mp_include = function(self) - return MP.LOBBY.code and MP.LOBBY.config.multiplayer_jokers and not MP.is_layer_active("sandbox") - end, - add_to_deck = function(self, card, from_debuffed) - if not from_debuffed and (not card.edition or card.edition.type ~= "mp_phantom") then - MP.ACTIONS.send_phantom("j_mp_conjoined_joker") - end - end, - remove_from_deck = function(self, card, from_debuff) - if not from_debuff and (not card.edition or card.edition.type ~= "mp_phantom") then - MP.ACTIONS.remove_phantom("j_mp_conjoined_joker") - end - end, - update = function(self, card, dt) - if MP.LOBBY.code then - if G.STAGE == G.STAGES.RUN then - card.ability.extra.x_mult = math.max( - math.min(1 + (MP.GAME.enemy.hands * card.ability.extra.x_mult_gain), card.ability.extra.max_x_mult), - 1 - ) - end - else - card.ability.extra.x_mult = 1 - end - end, - calculate = function(self, card, context) - if - context.cardarea == G.jokers - and context.joker_main - and MP.is_pvp_boss() - and (not card.edition or card.edition.type ~= "mp_phantom") - then - return { - x_mult = card.ability.extra.x_mult, - } - end - end, - mp_credits = { - idea = { "Zilver" }, - art = { "Nas4xou" }, - code = { "Virtualized" }, - }, -}) diff --git a/objects/jokers/defensive_joker.lua b/objects/jokers/defensive_joker.lua deleted file mode 100644 index 1257c207d..000000000 --- a/objects/jokers/defensive_joker.lua +++ /dev/null @@ -1,54 +0,0 @@ -SMODS.Atlas({ - key = "defensive_joker", - path = "j_defensive_joker.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "defensive_joker", - atlas = "defensive_joker", - rarity = 1, - cost = 4, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = true, - perishable_compat = true, - config = { t_chips = 0, extra = { extra = 125, highstake = 75 } }, - loc_vars = function(self, info_queue, card) - local chips = G.GAME.stake >= 6 and card.ability.extra.highstake or card.ability.extra.extra - return { vars = { chips, card.ability.t_chips } } - end, - mp_include = function(self) - return MP.LOBBY.code and MP.LOBBY.config.multiplayer_jokers - end, - update = function(self, card, dt) - if not MP.LOBBY.code then - card.ability.t_chips = 0 - return - end - - if G.STAGE ~= G.STAGES.RUN then return end - - local chips = G.GAME.stake >= 6 and card.ability.extra.highstake or card.ability.extra.extra - card.ability.t_chips = math.max((MP.GAME.enemy.lives - MP.GAME.lives) * chips, 0) - end, - calculate = function(self, card, context) - if context.cardarea == G.jokers and context.joker_main then - return { - message = localize({ - type = "variable", - key = "a_chips", - vars = { card.ability.t_chips }, - }), - chip_mod = card.ability.t_chips, - } - end - end, - mp_credits = { - idea = { "didon't" }, - art = { "TheTrueRaven" }, - code = { "Virtualized" }, - }, -}) diff --git a/objects/jokers/experimental/baron_uncommon.lua b/objects/jokers/experimental/baron_uncommon.lua deleted file mode 100644 index eebae060c..000000000 --- a/objects/jokers/experimental/baron_uncommon.lua +++ /dev/null @@ -1,35 +0,0 @@ ---[[ -SMODS.Joker({ - key = "baron", - no_collection = true, - unlocked = true, - discovered = true, - blueprint_compat = true, - rarity = 2, - cost = 5, - pos = { x = 6, y = 12 }, - config = { extra = { xmult = 1.5 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.xmult } } - end, - calculate = function(self, card, context) - if - context.individual - and context.cardarea == G.hand - and not context.end_of_round - and context.other_card:get_id() == 13 - then - if context.other_card.debuff then - return { - message = localize("k_debuffed"), - colour = G.C.RED, - } - else - return { - x_mult = card.ability.extra.xmult, - } - end - end - end, -}) ---]] diff --git a/objects/jokers/experimental/idol_rare.lua b/objects/jokers/experimental/idol_rare.lua deleted file mode 100644 index 96fba59aa..000000000 --- a/objects/jokers/experimental/idol_rare.lua +++ /dev/null @@ -1,36 +0,0 @@ -SMODS.Joker({ - key = "idol_rare", - unlocked = true, - discovered = true, - blueprint_compat = true, - perishable_compat = true, - eternal_compat = true, - rarity = 3, - cost = 8, - pos = { x = 6, y = 7 }, - no_collection = true, - config = { extra = { xmult = 2 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - local idol_card = G.GAME.current_round.idol_card or { rank = "Ace", suit = "Spades" } - return { - vars = { - card.ability.extra.xmult, - localize(idol_card.rank, "ranks"), - localize(idol_card.suit, "suits_plural"), - colours = { G.C.SUITS[idol_card.suit] }, - }, - } - end, - calculate = function(self, card, context) - if - context.individual - and context.cardarea == G.play - and context.other_card:get_id() == G.GAME.current_round.idol_card.id - and context.other_card:is_suit(G.GAME.current_round.idol_card.suit) - then - return { - xmult = card.ability.extra.xmult, - } - end - end, -}) diff --git a/objects/jokers/experimental/mime_rare.lua b/objects/jokers/experimental/mime_rare.lua deleted file mode 100644 index d045f837e..000000000 --- a/objects/jokers/experimental/mime_rare.lua +++ /dev/null @@ -1,20 +0,0 @@ ---[[ -SMODS.Joker({ - key = "mime", - no_collection = true, - unlocked = true, - discovered = true, - blueprint_compat = true, - rarity = 3, - cost = 8, - pos = { x = 4, y = 1 }, - config = { extra = { repetitions = 1 }, mp_balanced = true }, - calculate = function(self, card, context) - if context.repetition and context.cardarea == G.hand and (next(context.card_effects[1]) or #context.card_effects > 1) then - return { - repetitions = card.ability.extra.repetitions, - } - end - end, -}) ---]] diff --git a/objects/jokers/experimental/todo_list.lua b/objects/jokers/experimental/todo_list.lua deleted file mode 100644 index 83c6fc53f..000000000 --- a/objects/jokers/experimental/todo_list.lua +++ /dev/null @@ -1,47 +0,0 @@ -SMODS.Joker({ - key = "todo_list", - no_collection = true, - unlocked = true, - discovered = true, - blueprint_compat = true, - rarity = 1, - cost = 4, - pos = { x = 4, y = 11 }, - config = { extra = { dollars = 5, poker_hand = "High Card" }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.dollars, localize(card.ability.extra.poker_hand, "poker_hands") } } - end, - calculate = function(self, card, context) - if context.before and context.scoring_name == card.ability.extra.poker_hand then - G.GAME.dollar_buffer = (G.GAME.dollar_buffer or 0) + card.ability.extra.dollars - return { - dollars = card.ability.extra.dollars, - func = function() - G.E_MANAGER:add_event(Event({ - func = function() - G.GAME.dollar_buffer = 0 - return true - end, - })) - end, - } - end - if context.end_of_round and context.game_over == false and context.main_eval and not context.blueprint then - local _poker_hands = {} - for handname, _ in pairs(G.GAME.hands) do - if handname ~= card.ability.extra.poker_hand then _poker_hands[#_poker_hands + 1] = handname end - end - card.ability.extra.poker_hand = pseudorandom_element(_poker_hands, "todo_list") - return { - message = localize("k_reset"), - } - end - end, - set_ability = function(self, card, initial, delay_sprites) - local _poker_hands = {} - for handname, _ in pairs(G.GAME.hands) do - if handname ~= card.ability.extra.poker_hand then _poker_hands[#_poker_hands + 1] = handname end - end - card.ability.extra.poker_hand = pseudorandom_element(_poker_hands, "todo_list") - end, -}) diff --git a/objects/jokers/lets_go_gambling.lua b/objects/jokers/lets_go_gambling.lua deleted file mode 100644 index 699e6aedd..000000000 --- a/objects/jokers/lets_go_gambling.lua +++ /dev/null @@ -1,82 +0,0 @@ -SMODS.Atlas({ - key = "lets_go_gambling", - path = "j_lets_go_gambling.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "lets_go_gambling", - atlas = "lets_go_gambling", - rarity = 2, - cost = 6, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = true, - perishable_compat = true, - config = { extra = { odds = 4, xmult = 4, dollars = 10, nemesis_odds = 4, nemesis_dollars = 10 } }, - loc_vars = function(self, info_queue, card) - local numerator, denominator = - SMODS.get_probability_vars(card, 1, card.ability.extra.odds, "j_mp_lets_go_gambling") - local nem_numerator, nem_denominator = - SMODS.get_probability_vars(card, 1, card.ability.extra.nemesis_odds, "j_mp_lets_go_gambling_misfire") - return { - vars = { - numerator, - denominator, - card.ability.extra.xmult, - card.ability.extra.dollars, - nem_numerator, - nem_denominator, - card.ability.extra.nemesis_dollars, - }, - } - end, - mp_include = function(self) - return MP.LOBBY.code and MP.LOBBY.config.multiplayer_jokers - end, - calculate = function(self, card, context) - if - context.cardarea == G.jokers - and context.joker_main - and (not card.edition or card.edition.type ~= "mp_phantom") - then - local returns = nil - if SMODS.pseudorandom_probability(card, "j_mp_lets_go_gambling", 1, card.ability.extra.odds) then - returns = {} - returns.x_mult = card.ability.extra.xmult - returns.dollars = card.ability.extra.dollars - end - if - MP.is_pvp_boss() - and SMODS.pseudorandom_probability( - card, - "j_mp_lets_go_gambling_misfire", - 1, - card.ability.extra.nemesis_odds - ) - then - returns = returns or {} - MP.ACTIONS.lets_go_gambling_nemesis() - returns.message = localize("k_oops_ex") - end - return returns - end - end, - add_to_deck = function(self, card, from_debuffed) - if not from_debuffed and (not card.edition or card.edition.type ~= "mp_phantom") then - MP.ACTIONS.send_phantom("j_mp_lets_go_gambling") - end - end, - remove_from_deck = function(self, card, from_debuff) - if not from_debuff and (not card.edition or card.edition.type ~= "mp_phantom") then - MP.ACTIONS.remove_phantom("j_mp_lets_go_gambling") - end - end, - mp_credits = { - idea = { "Dr. Monty" }, - art = { "Carter" }, - code = { "Virtualized" }, - }, -}) diff --git a/objects/jokers/pacifist.lua b/objects/jokers/pacifist.lua deleted file mode 100644 index 0f5bb6743..000000000 --- a/objects/jokers/pacifist.lua +++ /dev/null @@ -1,37 +0,0 @@ -SMODS.Atlas({ - key = "pacifist", - path = "j_pacifist.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "pacifist", - atlas = "pacifist", - rarity = 1, - cost = 4, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = true, - perishable_compat = true, - config = { extra = { x_mult = 10 } }, - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.x_mult } } - end, - mp_include = function(self) - return MP.LOBBY.code and MP.LOBBY.config.multiplayer_jokers - end, - calculate = function(self, card, context) - if context.cardarea == G.jokers and context.joker_main and not MP.is_pvp_boss() then - return { - x_mult = card.ability.extra.x_mult, - } - end - end, - mp_credits = { - idea = { "Zilver" }, - art = { "zeathemays" }, - code = { "Virtualized" }, - }, -}) diff --git a/objects/jokers/penny_pincher.lua b/objects/jokers/penny_pincher.lua deleted file mode 100644 index 5454534a4..000000000 --- a/objects/jokers/penny_pincher.lua +++ /dev/null @@ -1,40 +0,0 @@ -SMODS.Atlas({ - key = "penny_pincher", - path = "j_penny_pincher.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "penny_pincher", - atlas = "penny_pincher", - rarity = 1, - cost = 4, - unlocked = true, - discovered = true, - blueprint_compat = false, - eternal_compat = true, - perishable_compat = true, - config = { extra = { dollars = 1, nemesis_dollars = 3 } }, - loc_vars = function(self, info_queue, card) - MP.UTILS.add_nemesis_info(info_queue) - return { vars = { card.ability.extra.dollars, card.ability.extra.nemesis_dollars } } - end, - in_pool = function(self) - return MP.GAME.pincher_unlock -- do NOT replace this with G.GAME.round_resets.ante >= 3, order sets ante to 0 - end, - mp_include = function(self) - return MP.LOBBY.code and MP.LOBBY.config.multiplayer_jokers - end, - calc_dollar_bonus = function(self, card) - local spent = MP.GAME.enemy.spent_in_shop[MP.GAME.pincher_index] - local money = 0 - if spent then money = math.floor(spent / card.ability.extra.nemesis_dollars) end - if money > 0 then return money end - end, - mp_credits = { - idea = { "Nxkoozie" }, - art = { "Coo29" }, - code = { "Virtualized" }, - }, -}) diff --git a/objects/jokers/pizza.lua b/objects/jokers/pizza.lua deleted file mode 100644 index 63d4fa1a8..000000000 --- a/objects/jokers/pizza.lua +++ /dev/null @@ -1,55 +0,0 @@ -SMODS.Atlas({ - key = "pizza", - path = "j_pizza.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "pizza", - atlas = "pizza", - rarity = 1, - cost = 4, - unlocked = true, - discovered = true, - blueprint_compat = false, - eternal_compat = false, - perishable_compat = true, - config = { extra = { discards = 2, discards_nemesis = 1 } }, - loc_vars = function(self, info_queue, card) - MP.UTILS.add_nemesis_info(info_queue) - return { vars = { card.ability.extra.discards, card.ability.extra.discards_nemesis } } - end, - mp_include = function(self) - return MP.LOBBY.code and MP.LOBBY.config.multiplayer_jokers - end, - add_to_deck = function(self, card, from_debuffed) - if not from_debuffed and (not card.edition or card.edition.type ~= "mp_phantom") then - MP.ACTIONS.send_phantom("j_mp_pizza") - end - end, - remove_from_deck = function(self, card, from_debuff) - if not from_debuff and (not card.edition or card.edition.type ~= "mp_phantom") then - MP.ACTIONS.remove_phantom("j_mp_pizza") - end - end, - calculate = function(self, card, context) - if context.mp_end_of_pvp and not context.blueprint and (not card.edition or card.edition.type ~= "mp_phantom") then - MP.GAME.pizza_discards = MP.GAME.pizza_discards + card.ability.extra.discards - G.GAME.round_resets.discards = G.GAME.round_resets.discards + card.ability.extra.discards - ease_discard(card.ability.extra.discards) - MP.ACTIONS.eat_pizza(card.ability.extra.discards_nemesis) - card:remove_from_deck() - card:start_dissolve({ G.C.RED }, nil, 1.6) - return { - message = localize("k_eaten_ex"), - colour = G.C.RED, - } - end - end, - mp_credits = { - idea = { "Virtualized" }, - art = { "TheTrueRaven" }, - code = { "Virtualized" }, - }, -}) diff --git a/objects/jokers/sandbox/baseball.lua b/objects/jokers/sandbox/baseball.lua deleted file mode 100644 index 034e763cb..000000000 --- a/objects/jokers/sandbox/baseball.lua +++ /dev/null @@ -1,38 +0,0 @@ -SMODS.Atlas({ - key = "baseball_sandbox", - path = "j_baseball_sandbox.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "baseball_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - rarity = 3, - cost = 8, - atlas = "baseball_sandbox", - config = { extra = { xmult = 2 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.xmult } } - end, - calculate = function(self, card, context) - if - context.other_joker - and ( - context.other_joker.config.center.rarity == 2 - or context.other_joker.config.center.rarity == "Uncommon" - ) - then - return { - xmult = card.ability.extra.xmult, - } - end - end, - mp_credits = { idea = { "Sylvie" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/bloodstone.lua b/objects/jokers/sandbox/bloodstone.lua deleted file mode 100644 index bd259e981..000000000 --- a/objects/jokers/sandbox/bloodstone.lua +++ /dev/null @@ -1,39 +0,0 @@ -SMODS.Atlas({ - key = "bloodstone_sandbox", - path = "j_bloodstone_sandbox.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "bloodstone_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - rarity = 2, - cost = 7, - atlas = "bloodstone_sandbox", - config = { extra = { odds = 3, Xmult = 2 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - local numerator, denominator = - SMODS.get_probability_vars(card, 1, card.ability.extra.odds, "j_mp_bloodstone_sandbox") - return { vars = { numerator, denominator, card.ability.extra.Xmult, colours = { G.C.SUITS["Hearts"] } } } - end, - calculate = function(self, card, context) - if - context.individual - and context.cardarea == G.play - and context.other_card:is_suit("Hearts") - and SMODS.pseudorandom_probability(card, "j_mp_bloodstone_sandbox", 1, card.ability.extra.odds) - then - return { - xmult = card.ability.extra.Xmult, - } - end - end, - mp_credits = { idea = { "LocalThunk" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/castle.lua b/objects/jokers/sandbox/castle.lua deleted file mode 100644 index 20ded6e2b..000000000 --- a/objects/jokers/sandbox/castle.lua +++ /dev/null @@ -1,54 +0,0 @@ -SMODS.Atlas({ - key = "castle_sandbox", - path = "j_castle_sandbox.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "castle_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - atlas = "castle_sandbox", - blueprint_compat = true, - perishable_compat = false, - rarity = 2, - cost = 6, - config = { extra = { chips = 0, chip_mod = 10, suit = nil }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - local suit = card.ability.extra.suit or G.GAME.current_round.castle_card.suit or "Spades" - return { - vars = { - string.upper(localize(suit, "suits_plural")), - colours = { G.C.SUITS[suit] }, - card.ability.extra.chips, - card.ability.extra.chip_mod, - }, - } - end, - calculate = function(self, card, context) - if - context.discard - and not context.blueprint - and not context.other_card.debuff - and context.other_card:is_suit(card.ability.extra.suit) - then - card.ability.extra.chips = card.ability.extra.chips + card.ability.extra.chip_mod - return { - message = localize("k_upgrade_ex"), - colour = G.C.CHIPS, - } - end - if context.joker_main then return { - chips = card.ability.extra.chips, - } end - end, - add_to_deck = function(self, card, from_debuff) - if card.ability.extra.suit == nil then card.ability.extra.suit = G.GAME.current_round.castle_card.suit end - end, - mp_credits = { code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/cloud_9.lua b/objects/jokers/sandbox/cloud_9.lua deleted file mode 100644 index 8f851c808..000000000 --- a/objects/jokers/sandbox/cloud_9.lua +++ /dev/null @@ -1,63 +0,0 @@ -SMODS.Atlas({ - key = "cloud_9_sandbox", - path = "j_cloud_9_sandbox.png", - px = 71, - py = 95, -}) - -local function calculate_cloud_9_bonus(card) - local nine_tally = 0 - if G.playing_cards ~= nil then - for k, v in pairs(G.playing_cards) do - if v:get_id() == 9 then nine_tally = nine_tally + 1 end - end - end - - local base_bonus = math.min(nine_tally, 4) - local excess_nines = math.max(nine_tally - 4, 0) - local multiplied_bonus = excess_nines * card.ability.extra.money - - return base_bonus + multiplied_bonus -end - -SMODS.Joker({ - key = "cloud_9_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = false, - perishable_compat = true, - eternal_compat = true, - rarity = 2, - cost = 7, - atlas = "cloud_9_sandbox", - config = { extra = { money = 2, odds = 4 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - local numerator, denominator = - SMODS.get_probability_vars(card, 1, card.ability.extra.odds, "j_mp_cloud_9_sandbox") - - return { - vars = { - numerator, - denominator, - calculate_cloud_9_bonus(card), - }, - } - end, - mp_credits = { code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, - calc_dollar_bonus = function(self, card) - return calculate_cloud_9_bonus(card) - end, - calculate = function(self, card, context) - if context.individual and context.cardarea == G.play and not context.other_card.debuff then - if SMODS.pseudorandom_probability(card, "j_mp_cloud_9_sandbox", 1, card.ability.extra.odds) then - SMODS.modify_rank(context.other_card, 9 - context.other_card:get_id()) - play_sound("card1", 1) - context.other_card:juice_up(0.3, 0.3) - end - end - end, -}) diff --git a/objects/jokers/sandbox/constellation.lua b/objects/jokers/sandbox/constellation.lua deleted file mode 100644 index 2f51d897c..000000000 --- a/objects/jokers/sandbox/constellation.lua +++ /dev/null @@ -1,52 +0,0 @@ -SMODS.Atlas({ - key = "constellation_sandbox", - path = "j_constellation_sandbox.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "constellation_sandbox", - no_collection = MP.sandbox_no_collection, - - unlocked = true, - discovered = true, - blueprint_compat = true, - perishable_compat = false, - rarity = 2, - cost = 6, - atlas = "constellation_sandbox", - config = { extra = { Xmult = 1, Xmult_mod = 0.2, Xmult_loss = 0.2 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.Xmult } } - end, - calculate = function(self, card, context) - -- Gain mult when planet card is used - if context.using_consumeable and not context.blueprint and context.consumeable.ability.set == "Planet" then - card.ability.extra.Xmult = card.ability.extra.Xmult + card.ability.extra.Xmult_mod - return { - message = localize({ type = "variable", key = "a_xmult", vars = { card.ability.extra.Xmult } }), - } - end - -- Apply mult during main calculation - if context.joker_main then return { - xmult = card.ability.extra.Xmult, - } end - -- Lose mult at end of round - if context.end_of_round and not context.blueprint and not context.individual and not context.repetition then - card.ability.extra.Xmult = math.max(1, card.ability.extra.Xmult - card.ability.extra.Xmult_loss) - return { - message = localize({ - type = "variable", - key = "a_xmult_minus", - vars = { card.ability.extra.Xmult_loss }, - }), - colour = G.C.RED, - } - end - end, - mp_credits = { code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/error.lua b/objects/jokers/sandbox/error.lua deleted file mode 100644 index 1b54b0c29..000000000 --- a/objects/jokers/sandbox/error.lua +++ /dev/null @@ -1,122 +0,0 @@ -SMODS.Atlas({ - key = "error_sandbox", - path = "j_ERROR_sandbox.png", - px = 71, - py = 95, -}) - -for i = 1, 21 do - SMODS.Joker({ - key = "error_sandbox_" .. i, - loc_vars = function(self, info_queue, card) - local r_mults = {} - for i = 1, 333 do - r_mults[#r_mults + 1] = tostring(i) - end - local loc_mult = "(CURRENTLY " .. math.random(1, 333) .. ")" - main_end = { - { n = G.UIT.T, config = { text = loc_mult, colour = lighten(G.C.PURPLE, 0.2), scale = 0.4 } }, - { - n = G.UIT.O, - config = { - object = DynaText({ - string = r_mults, - colours = { G.C.MONEY }, - pop_in_rate = 9999999, - silent = true, - random_element = true, - pop_delay = 1.52, - scale = 0.32, - min_cycle_time = 0, - }), - }, - }, - { - n = G.UIT.O, - config = { - object = DynaText({ - string = { - { string = "SYSTEM_SERVICE_EXCEPTION", colour = lighten(G.C.BLUE, 0.3) }, - { string = "KERNEL_DATA_INPAGE_ERROR", colour = G.C.BLUE }, - { string = "IRQL_NOT_LESS_OR_EQUAL", colour = lighten(G.C.BLUE, 0.4) }, - { string = "PAGE_FAULT_IN_NONPAGED_AREA", colour = G.C.CHIPS }, - { string = "KMODE_EXCEPTION_NOT_HANDLED", colour = lighten(G.C.BLUE, 0.2) }, - { string = "DRIVER_POWER_STATE_FAILURE", colour = G.C.SECONDARY_SET.Planet }, - { string = "CRITICAL_PROCESS_DIED", colour = G.C.RED }, - { string = "BAD_POOL_HEADER", colour = lighten(G.C.CHIPS, 0.3) }, - { string = "MEMORY_MANAGEMENT", colour = G.C.BLUE }, - { string = "SYSTEM_THREAD_EXCEPTION", colour = lighten(G.C.BLUE, 0.5) }, - { string = "DPC_WATCHDOG_VIOLATION", colour = G.C.CHIPS }, - { string = "CLOCK_WATCHDOG_TIMEOUT", colour = lighten(G.C.BLUE, 0.1) }, - { string = "WHEA_UNCORRECTABLE_ERROR", colour = G.C.SECONDARY_SET.Planet }, - { string = "PFN_LIST_CORRUPT", colour = lighten(G.C.CHIPS, 0.4) }, - { string = "DRIVER_VERIFIER_DETECTED", colour = G.C.BLUE }, - { string = "THREAD_STUCK_IN_DEVICE_DRIVER", colour = lighten(G.C.BLUE, 0.2) }, - { string = "VIDEO_TDR_TIMEOUT_DETECTED", colour = G.C.CHIPS }, - { string = "APC_INDEX_MISMATCH", colour = lighten(G.C.BLUE, 0.6) }, - { string = "DRIVER_IRQL_NOT_LESS_OR_EQUAL", colour = G.C.SECONDARY_SET.Planet }, - { string = "BUGCODE_USB_DRIVER", colour = lighten(G.C.CHIPS, 0.2) }, - { string = "HYPERVISOR_ERROR", colour = G.C.BLUE }, - { string = "UNEXPECTED_KERNEL_MODE_TRAP", colour = lighten(G.C.BLUE, 0.3) }, - { string = "ATTEMPTED_WRITE_TO_READONLY_MEMORY", colour = G.C.CHIPS }, - { string = "DRIVER_CORRUPTED_EXPOOL", colour = lighten(G.C.BLUE, 0.4) }, - { string = "NTFS_FILE_SYSTEM", colour = G.C.SECONDARY_SET.Planet }, - { string = "FAT_FILE_SYSTEM", colour = lighten(G.C.CHIPS, 0.3) }, - { string = "KERNEL_SECURITY_CHECK_FAILURE", colour = G.C.BLUE }, - { string = "STOP: 0x0000007E", colour = lighten(G.C.BLUE, 0.2) }, - { string = "STOP: 0x000000D1", colour = G.C.CHIPS }, - { string = "STOP: 0x0000001E", colour = lighten(G.C.BLUE, 0.5) }, - { string = "STOP: 0x00000050", colour = G.C.SECONDARY_SET.Planet }, - { string = "STOP: 0x000000A", colour = lighten(G.C.CHIPS, 0.4) }, - { string = "corrupted heap", colour = G.C.BLIND.Boss }, - { string = "BSOD", colour = G.C.BLUE }, - { string = "malloc(): corrupted top size", colour = G.C.RED }, - { string = "use after free", colour = G.C.PERISHABLE }, - { string = "stack smashing detected", colour = G.C.ETERNAL }, - { string = "double free or corruption", colour = lighten(G.C.RED, 0.2) }, - { string = "zombie process", colour = lighten(G.C.L_BLACK, 0.5) }, - { string = "killed by signal 9", colour = G.C.SO_1.Hearts }, - { - string = "0x" .. string.format("%08X", math.random(0, 0xFFFFFFFF)), - colour = G.C.MONEY, - }, - "$", - "€", - "¥", - "despair", - "£", - "₹", - "₽", - "₩", - "¢", - "₿", - "◊", - }, - colours = { G.C.UI.TEXT_DARK }, - pop_in_rate = 1, - silent = true, - random_element = true, - pop_delay = 0.38, - scale = 0.32, - min_cycle_time = 0, - }), - }, - }, - } - return { - main_end = main_end, - -- modified localization key trickery to ensure we always use this localization, thanks toneblock - key = "j_mp_error_sandbox", - } - end, - - atlas = "error_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - mp_include = function(self) - return false - end, - mp_credits = { art = { "aura?" } }, - }) -end diff --git a/objects/jokers/sandbox/extra-credit/_ec_atlas.lua b/objects/jokers/sandbox/extra-credit/_ec_atlas.lua deleted file mode 100644 index e68e6ca01..000000000 --- a/objects/jokers/sandbox/extra-credit/_ec_atlas.lua +++ /dev/null @@ -1,11 +0,0 @@ --- Extra Credit Atlas Registration --- Shared atlas for all Extra Credit jokers ported to Sandbox --- Art by the Extra Credit team — see individual joker files for per-card credits --- This file is prefixed with underscore to ensure it loads before the joker files - -SMODS.Atlas({ - key = "ec_jokers_sandbox", - path = "ec_jokers_sandbox.png", - px = 71, - py = 95, -}) diff --git a/objects/jokers/sandbox/extra-credit/_ec_utils.lua b/objects/jokers/sandbox/extra-credit/_ec_utils.lua deleted file mode 100644 index 25bbdf64c..000000000 --- a/objects/jokers/sandbox/extra-credit/_ec_utils.lua +++ /dev/null @@ -1,107 +0,0 @@ --- Extra Credit Utilities Module --- Shared utility functions for Extra Credit jokers ported to Sandbox --- This file is prefixed with underscore to ensure it loads before the joker files - -MP.EC = MP.EC or {} - --- Talisman Compatibility wrapper -to_big = to_big or function(x) - return x -end -to_number = to_number or function(x) - return x -end - ---- Resets Tuxedo joker's selected suit for the round ---- Randomly selects a suit different from the current one -local function reset_tuxedo_card() - local tuxedo_suits = {} - G.GAME.current_round.tuxedo_card = G.GAME.current_round.tuxedo_card or {} - for k, suit in pairs(SMODS.Suits) do - if - k ~= G.GAME.current_round.tuxedo_card.suit - and (type(suit.in_pool) ~= "function" or suit:in_pool({ rank = "" })) - then - tuxedo_suits[#tuxedo_suits + 1] = k - end - end - local seed = "tux" - - local tuxedo_card = pseudorandom_element(tuxedo_suits, pseudoseed(seed)) - G.GAME.current_round.tuxedo_card.suit = tuxedo_card -end - ---- Resets Farmer joker's selected suit for the round ---- Randomly selects a suit different from the current one -local function reset_farmer_card() - local farmer_suits = {} - G.GAME.current_round.farmer_card = G.GAME.current_round.farmer_card or {} - for k, suit in pairs(SMODS.Suits) do - if - k ~= G.GAME.current_round.farmer_card.suit - and (type(suit.in_pool) ~= "function" or suit:in_pool({ rank = "" })) - then - farmer_suits[#farmer_suits + 1] = k - end - end - - local seed = "farm" - - local farmer_card = pseudorandom_element(farmer_suits, pseudoseed(seed)) - G.GAME.current_round.farmer_card.suit = farmer_card -end - ---- Resets Go Fish joker's selected rank for the round ---- Randomly selects a rank different from the current one -local function reset_fish_rank() - local valid_fish_ranks = {} - G.GAME.current_round.fish_rank = G.GAME.current_round.fish_rank or {} - for k, rank in pairs(SMODS.Ranks) do - if - k ~= G.GAME.current_round.fish_rank.rank - and (type(rank.in_pool) ~= "function" or rank:in_pool({ suit = "" })) - then - valid_fish_ranks[#valid_fish_ranks + 1] = k - end - end - - local seed = "fish" - - local fish_pick = pseudorandom_element(valid_fish_ranks, pseudoseed(seed)) - G.GAME.current_round.fish_rank.rank = fish_pick -end - ---- Hook into game globals reset to initialize EC round state ---- Called at start of each round -local original_reset_game_globals = MP.reset_game_globals -MP.reset_game_globals = function(run_start) - if original_reset_game_globals then original_reset_game_globals(run_start) end - - -- Only initialize EC state when sandbox ruleset is active - if MP.is_layer_active("sandbox") then - reset_tuxedo_card() - reset_farmer_card() - reset_fish_rank() - end -end - --- Hoarder joker: gain sell value each time we earn money -local original_ease_dollars = ease_dollars -function ease_dollars(mod, x) - original_ease_dollars(mod, x) - - if MP.is_layer_active("sandbox") and to_big(mod) > to_big(0) and G.jokers and G.jokers.cards then - for i = 1, #G.jokers.cards do - local card = G.jokers.cards[i] - if card.config.center.key == "j_mp_hoarder_sandbox" and not card.debuffed then - card.ability.extra_value = card.ability.extra_value + card.ability.extra - card:set_cost() - card_eval_status_text(card, "extra", nil, nil, nil, { - message = localize("k_val_up"), - colour = G.C.MONEY, - card = card, - }) - end - end - end -end diff --git a/objects/jokers/sandbox/extra-credit/alloy.lua b/objects/jokers/sandbox/extra-credit/alloy.lua deleted file mode 100644 index 575cf0c71..000000000 --- a/objects/jokers/sandbox/extra-credit/alloy.lua +++ /dev/null @@ -1,36 +0,0 @@ -SMODS.Joker({ - key = "alloy_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = false, - eternal_compat = true, - - rarity = 2, - cost = 7, - atlas = "ec_jokers_sandbox", - pos = { x = 4, y = 4 }, - - config = { mp_sticker_extra_credit = true }, - - loc_vars = function(self, info_queue, card) - info_queue[#info_queue + 1] = G.P_CENTERS.m_gold - info_queue[#info_queue + 1] = G.P_CENTERS.m_steel - return - end, - - calculate = function(self, card, context) - if context.check_enhancement then - if context.other_card.config.center.key == "m_gold" then return { m_steel = true } end - if context.other_card.config.center.key == "m_steel" then return { m_gold = true } end - end - end, - - mp_credits = { - code = { "CampfireCollective" }, - art = { "dottykitty" }, - }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/ambrosia.lua b/objects/jokers/sandbox/extra-credit/ambrosia.lua deleted file mode 100644 index 8c876d092..000000000 --- a/objects/jokers/sandbox/extra-credit/ambrosia.lua +++ /dev/null @@ -1,93 +0,0 @@ -SMODS.Joker({ - key = "ambrosia_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = false, - eternal_compat = false, - - rarity = 2, - cost = 5, - atlas = "ec_jokers_sandbox", - pos = { x = 5, y = 2 }, - - config = { - extra = {}, - - mp_sticker_extra_credit = true, - }, - - loc_vars = function(self, info_queue, card) - return { vars = {} } - end, - - calculate = function(self, card, context) - if context.skip_blind then - for i = 1, G.consumeables.config.card_limit do - if #G.consumeables.cards + G.GAME.consumeable_buffer < G.consumeables.config.card_limit then - G.GAME.consumeable_buffer = G.GAME.consumeable_buffer + 1 - G.E_MANAGER:add_event(Event({ - trigger = "before", - delay = 0.0, - func = function() - local card = create_card("Spectral", G.consumeables, nil, nil, nil, nil, nil, "ambro") - card:add_to_deck() - G.consumeables:emplace(card) - G.GAME.consumeable_buffer = 0 - card:juice_up(0.5, 0.5) - return true - end, - })) - card_eval_status_text( - context.blueprint_card or card, - "extra", - nil, - nil, - nil, - { message = localize("k_plus_spectral"), colour = G.C.SECONDARY_SET.Spectral } - ) - end - end - elseif context.selling_card then - if context.card.ability.set == "Spectral" then - G.E_MANAGER:add_event(Event({ - func = function() - play_sound("tarot1") - card.T.r = -0.2 - card:juice_up(0.3, 0.4) - card.states.drag.is = true - card.children.center.pinch.x = true - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.3, - blockable = false, - func = function() - G.jokers:remove_card(card) - card:remove() - card = nil - return true - end, - })) - return true - end, - })) - card_eval_status_text( - context.blueprint_card or card, - "extra", - nil, - nil, - nil, - { message = localize("k_drank_ex"), colour = G.C.SECONDARY_SET.Spectral } - ) - end - end - end, - - mp_credits = { - code = { "CampfireCollective" }, - art = { "dottykitty" }, - }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/bobby.lua b/objects/jokers/sandbox/extra-credit/bobby.lua deleted file mode 100644 index 59d2e17db..000000000 --- a/objects/jokers/sandbox/extra-credit/bobby.lua +++ /dev/null @@ -1,62 +0,0 @@ -SMODS.Joker({ - key = "bobby_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = true, - - rarity = 2, - cost = 6, - atlas = "ec_jokers_sandbox", - pos = { x = 0, y = 3 }, - - config = { - extra = { - hands = 2, - discards = 4, - }, - - mp_sticker_extra_credit = true, - }, - - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.hands, card.ability.extra.discards } } - end, - - calculate = function(self, card, context) - if context.setting_blind and not (context.blueprint_card or card).getting_sliced then - G.E_MANAGER:add_event(Event({ - func = function() - if G.GAME.current_round.hands_left < 2 then - elseif G.GAME.current_round.hands_left == 2 then - ease_hands_played(-(card.ability.extra.hands / 2), true) - ease_discard((card.ability.extra.discards / 2), true, true) - card_eval_status_text(context.blueprint_card or card, "extra", nil, nil, nil, { - message = "+" .. tostring(card.ability.extra.discards / 2) .. " " .. localize( - "k_hud_discards" - ), - colour = G.C.RED, - }) - elseif G.GAME.current_round.hands_left > 2 then - ease_hands_played(-card.ability.extra.hands, true) - ease_discard(card.ability.extra.discards, true, true) - card_eval_status_text(context.blueprint_card or card, "extra", nil, nil, nil, { - message = "+" .. tostring(card.ability.extra.discards) .. " " .. localize("k_hud_discards"), - colour = G.C.RED, - }) - end - return true - end, - })) - end - end, - - mp_credits = { - code = { "CampfireCollective" }, - art = { "R3venantR3mnant" }, - }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/candynecklace.lua b/objects/jokers/sandbox/extra-credit/candynecklace.lua deleted file mode 100644 index e16998b9b..000000000 --- a/objects/jokers/sandbox/extra-credit/candynecklace.lua +++ /dev/null @@ -1,71 +0,0 @@ --- Candy Necklace - Extra Credit Joker ported to Sandbox --- Random Booster Pack Tag at shop end (5 uses) - -SMODS.Joker({ - key = "candynecklace_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = false, - rarity = 2, - cost = 8, - atlas = "ec_jokers_sandbox", - pos = { x = 9, y = 0 }, - config = { - extra = { - candies = 5, - flavours = { "tag_buffoon", "tag_charm", "tag_meteor", "tag_standard", "tag_ethereal" }, - }, - - mp_sticker_extra_credit = true, - }, - - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.candies } } - end, - - calculate = function(self, card, context) - if context.ending_shop and card.ability.extra.candies > 0 then - local tag_key = pseudorandom_element(card.ability.extra.flavours, pseudoseed("candy_tag")) - add_tag(Tag(tag_key)) - - if not context.blueprint then - card.ability.extra.candies = card.ability.extra.candies - 1 - - if card.ability.extra.candies <= 0 then - G.E_MANAGER:add_event(Event({ - func = function() - play_sound("tarot1") - card.T.r = -0.2 - card:juice_up(0.3, 0.4) - card.states.drag.is = true - card.children.center.pinch.x = true - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.3, - blockable = false, - func = function() - G.jokers:remove_card(card) - card:remove() - card = nil - return true - end, - })) - return true - end, - })) - return { - message = localize("k_eaten_ex"), - colour = G.C.MONEY, - } - end - end - end - end, - - mp_credits = { code = { "CampfireCollective" }, art = { "dottykitty" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/chainlightning.lua b/objects/jokers/sandbox/extra-credit/chainlightning.lua deleted file mode 100644 index 772e0e4c0..000000000 --- a/objects/jokers/sandbox/extra-credit/chainlightning.lua +++ /dev/null @@ -1,64 +0,0 @@ -SMODS.Joker({ - key = "chainlightning_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = true, - - rarity = 3, - cost = 9, - atlas = "ec_jokers_sandbox", - pos = { x = 2, y = 3 }, - - config = { - extra = { - Xmult = 1, - Xmult_mod = 0.1, - total = 0, - so_far = 0, - }, - - mp_sticker_extra_credit = true, - }, - - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.Xmult, card.ability.extra.Xmult_mod } } - end, - - calculate = function(self, card, context) - if context.before then - card.ability.extra.Xmult = 1 - card.ability.extra.total = card.ability.extra.total + 1 - card.ability.extra.so_far = 0 - elseif - context.cardarea == G.play - and context.individual - and context.other_card.config.center.key == "m_mult" - then - local thunk = card.ability.extra.Xmult - card.ability.extra.so_far = card.ability.extra.so_far + 1 - - if card.ability.extra.so_far == card.ability.extra.total then - card.ability.extra.Xmult = card.ability.extra.Xmult + card.ability.extra.Xmult_mod - card.ability.extra.so_far = 0 - end - - if thunk > 1 then return { - x_mult = thunk, - card = card, - } end - elseif context.after then - card.ability.extra.total = 0 - card.ability.extra.Xmult = 1 - end - end, - - mp_credits = { - code = { "CampfireCollective" }, - art = { "Wingcap" }, - }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/clowncar.lua b/objects/jokers/sandbox/extra-credit/clowncar.lua deleted file mode 100644 index 93db8ae3b..000000000 --- a/objects/jokers/sandbox/extra-credit/clowncar.lua +++ /dev/null @@ -1,44 +0,0 @@ -SMODS.Joker({ - key = "clowncar_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = true, - - rarity = 3, - cost = 7, - atlas = "ec_jokers_sandbox", - pos = { x = 6, y = 2 }, - - config = { extra = { mult = 44, money = 3 }, mp_sticker_extra_credit = true }, - - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.mult, card.ability.extra.money } } - end, - - calculate = function(self, card, context) - if context.initial_scoring_step then - ease_dollars(-card.ability.extra.money) - card_eval_status_text( - card, - "jokers", - nil, - percent, - nil, - { message = "-$" .. tostring(card.ability.extra.money), colour = G.C.MONEY } - ) - return { - mult = card.ability.extra.mult, - } - end - end, - - mp_credits = { - code = { "CampfireCollective", "steph" }, - art = { "R3venantR3mnant" }, - }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/clowncollege.lua b/objects/jokers/sandbox/extra-credit/clowncollege.lua deleted file mode 100644 index a65c96740..000000000 --- a/objects/jokers/sandbox/extra-credit/clowncollege.lua +++ /dev/null @@ -1,61 +0,0 @@ --- Fill consumable slots with The Fool cards after Boss Blind is defeated - -SMODS.Joker({ - key = "clowncollege_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = false, - eternal_compat = true, - rarity = 2, - cost = 7, - atlas = "ec_jokers_sandbox", - pos = { x = 4, y = 1 }, - config = { extra = {}, mp_sticker_extra_credit = true }, - - loc_vars = function(self, info_queue, card) - info_queue[#info_queue + 1] = { key = "c_fool", set = "Tarot" } - return { vars = {} } - end, - - calculate = function(self, card, context) - if - context.end_of_round - and not context.repetition - and not context.individual - and G.GAME.blind.boss - and not context.blueprint - then - for i = 1, G.consumeables.config.card_limit do - if #G.consumeables.cards + G.GAME.consumeable_buffer < G.consumeables.config.card_limit then - G.GAME.consumeable_buffer = G.GAME.consumeable_buffer + 1 - G.E_MANAGER:add_event(Event({ - trigger = "before", - delay = 0.0, - func = function() - local new_card = create_card("Tarot", G.consumeables, nil, nil, nil, nil, "c_fool") - new_card:add_to_deck() - G.consumeables:emplace(new_card) - G.GAME.consumeable_buffer = 0 - new_card:juice_up(0.5, 0.5) - return true - end, - })) - card_eval_status_text( - context.blueprint_card or card, - "extra", - nil, - nil, - nil, - { message = localize("k_plus_tarot"), colour = G.C.PURPLE } - ) - end - end - end - end, - - mp_credits = { code = { "CampfireCollective" }, art = { "dottykitty" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/couponsheet.lua b/objects/jokers/sandbox/extra-credit/couponsheet.lua deleted file mode 100644 index 12f7fdc64..000000000 --- a/objects/jokers/sandbox/extra-credit/couponsheet.lua +++ /dev/null @@ -1,77 +0,0 @@ -SMODS.Joker({ - key = "couponsheet_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = false, - eternal_compat = true, - - rarity = 3, - cost = 7, - atlas = "ec_jokers_sandbox", - pos = { x = 8, y = 3 }, - - config = { - extra = {}, - - mp_sticker_extra_credit = true, - }, - - loc_vars = function(self, info_queue, card) - info_queue[#info_queue + 1] = { key = "tag_coupon", set = "Tag" } - info_queue[#info_queue + 1] = { key = "tag_voucher", set = "Tag" } - return { vars = {} } - end, - - calculate = function(self, card, context) - if - context.end_of_round - and not context.repetition - and not context.individual - and G.GAME.blind.boss - and not context.blueprint - then - card_eval_status_text( - context.blueprint_card or card, - "extra", - nil, - nil, - nil, - { message = "+1 Coupon Tag!", colour = G.C.FILTER } - ) - G.E_MANAGER:add_event(Event({ - func = function() - add_tag(Tag("tag_coupon")) - play_sound("generic1", 0.9 + math.random() * 0.1, 0.8) - play_sound("holo1", 1.2 + math.random() * 0.1, 0.4) - return true - end, - })) - delay(0.3) - card_eval_status_text( - context.blueprint_card or card, - "extra", - nil, - nil, - nil, - { message = "+1 Voucher Tag!", colour = G.C.FILTER } - ) - G.E_MANAGER:add_event(Event({ - func = function() - add_tag(Tag("tag_voucher")) - play_sound("generic1", 0.9 + math.random() * 0.1, 0.8) - play_sound("holo1", 1.2 + math.random() * 0.1, 0.4) - return true - end, - })) - end - end, - - mp_credits = { - code = { "CampfireCollective" }, - art = { "neatoqueen" }, - }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/doublerainbow.lua b/objects/jokers/sandbox/extra-credit/doublerainbow.lua deleted file mode 100644 index 5aa1d70de..000000000 --- a/objects/jokers/sandbox/extra-credit/doublerainbow.lua +++ /dev/null @@ -1,53 +0,0 @@ --- Double Rainbow - Extra Credit Joker ported to Sandbox --- Retrigger all Lucky Cards - -SMODS.Joker({ - key = "doublerainbow_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = true, - enhancement_gate = "m_lucky", - rarity = 2, - cost = 5, - atlas = "ec_jokers_sandbox", - pos = { x = 1, y = 0 }, - config = { extra = 1, mp_sticker_extra_credit = true }, - - loc_vars = function(self, info_queue, card) - info_queue[#info_queue + 1] = G.P_CENTERS.m_lucky - return {} - end, - - calculate = function(self, card, context) - if - context.repetition - and context.cardarea == G.play - and SMODS.get_enhancements(context.other_card)["m_lucky"] == true - then - return { - message = localize("k_again_ex"), - repetitions = 1, - card = card, - } - elseif - context.repetition - and context.cardarea == G.hand - and SMODS.get_enhancements(context.other_card)["m_lucky"] == true - then - if next(context.card_effects[1]) or #context.card_effects > 1 then - return { - message = localize("k_again_ex"), - repetitions = card.ability.extra, - card = card, - } - end - end - end, - - mp_credits = { code = { "CampfireCollective" }, art = { "dottykitty" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/espresso.lua b/objects/jokers/sandbox/extra-credit/espresso.lua deleted file mode 100644 index 8eff530ab..000000000 --- a/objects/jokers/sandbox/extra-credit/espresso.lua +++ /dev/null @@ -1,98 +0,0 @@ --- Espresso - Extra Credit Joker ported to Sandbox --- Gain $30 and destroy this card when Blind is skipped, reduces by $5/round - -SMODS.Joker({ - key = "espresso_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = false, - eternal_compat = false, - rarity = 1, - cost = 2, - atlas = "ec_jokers_sandbox", - pos = { x = 6, y = 1 }, - config = { extra = { money = 30, m_loss = 5 }, mp_sticker_extra_credit = true }, - - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.money, card.ability.extra.m_loss } } - end, - - calculate = function(self, card, context) - if context.skip_blind and not context.blueprint then - G.E_MANAGER:add_event(Event({ - func = function() - card_eval_status_text(card, "extra", nil, nil, nil, { - message = localize("k_drank_ex"), - colour = G.C.MONEY, - card = card, - }) - return true - end, - })) - ease_dollars(card.ability.extra.money) - card:juice_up(0.5, 0.5) - delay(0.5) - G.E_MANAGER:add_event(Event({ - func = function() - play_sound("tarot1") - card.T.r = -0.2 - card:juice_up(0.3, 0.4) - card.states.drag.is = true - card.children.center.pinch.x = true - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.3, - blockable = false, - func = function() - G.jokers:remove_card(card) - card:remove() - card = nil - return true - end, - })) - return true - end, - })) - elseif context.end_of_round and not context.individual and not context.repetition and not context.blueprint then - card.ability.extra.money = card.ability.extra.money - card.ability.extra.m_loss - if card.ability.extra.money <= 0 then - G.E_MANAGER:add_event(Event({ - func = function() - play_sound("tarot1") - card.T.r = -0.2 - card:juice_up(0.3, 0.4) - card.states.drag.is = true - card.children.center.pinch.x = true - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.3, - blockable = false, - func = function() - G.jokers:remove_card(card) - card:remove() - card = nil - return true - end, - })) - return true - end, - })) - return { - message = "Too cold!", - colour = G.C.FILTER, - } - else - return { - message = "Cooled!", - colour = G.C.FILTER, - } - end - end - end, - - mp_credits = { code = { "CampfireCollective" }, art = { "dottykitty" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/farmer.lua b/objects/jokers/sandbox/extra-credit/farmer.lua deleted file mode 100644 index fc73d1e98..000000000 --- a/objects/jokers/sandbox/extra-credit/farmer.lua +++ /dev/null @@ -1,50 +0,0 @@ -SMODS.Joker({ - key = "farmer_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = true, - - rarity = 1, - cost = 6, - atlas = "ec_jokers_sandbox", - pos = { x = 9, y = 1 }, - - config = { extra = { dollars = 2 }, mp_sticker_extra_credit = true }, - - loc_vars = function(self, info_queue, card) - local current_suit = G.GAME.current_round.farmer_card and G.GAME.current_round.farmer_card.suit or "Spades" - return { - vars = { - card.ability.extra.dollars, - localize(current_suit, "suits_singular"), - colours = { G.C.SUITS[current_suit] }, - }, - } - end, - - calculate = function(self, card, context) - if - context.cardarea == G.hand - and context.end_of_round - and context.individual - and not context.repetition - and context.other_card:is_suit(G.GAME.current_round.farmer_card.suit) - then - delay(0.15) - return { - dollars = 2, - card = context.other_card, - } - end - end, - - mp_credits = { - code = { "CampfireCollective" }, - art = { "HonuKane" }, - }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/forklift.lua b/objects/jokers/sandbox/extra-credit/forklift.lua deleted file mode 100644 index 81880b538..000000000 --- a/objects/jokers/sandbox/extra-credit/forklift.lua +++ /dev/null @@ -1,43 +0,0 @@ --- Forklift - Extra Credit Joker ported to Sandbox --- +2 Consumable Slots - -SMODS.Joker({ - key = "forklift_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = false, - eternal_compat = true, - rarity = 1, - cost = 5, - atlas = "ec_jokers_sandbox", - pos = { x = 0, y = 0 }, - config = { extra = { card_limit = 2 }, mp_sticker_extra_credit = true }, - - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.card_limit } } - end, - - add_to_deck = function(self, card, from_debuff) - G.E_MANAGER:add_event(Event({ - func = function() - G.consumeables.config.card_limit = G.consumeables.config.card_limit + card.ability.extra.card_limit - return true - end, - })) - end, - - remove_from_deck = function(self, card, from_debuff) - G.E_MANAGER:add_event(Event({ - func = function() - G.consumeables.config.card_limit = G.consumeables.config.card_limit - card.ability.extra.card_limit - return true - end, - })) - end, - - mp_credits = { code = { "CampfireCollective" }, art = { "dottykitty" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/gofish.lua b/objects/jokers/sandbox/extra-credit/gofish.lua deleted file mode 100644 index 873300dc4..000000000 --- a/objects/jokers/sandbox/extra-credit/gofish.lua +++ /dev/null @@ -1,51 +0,0 @@ -SMODS.Joker({ - key = "gofish_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = false, - eternal_compat = true, - rarity = 2, - cost = 6, - atlas = "ec_jokers_sandbox", - pos = { x = 9, y = 2 }, - - config = { extra = { fished = false }, mp_sticker_extra_credit = true }, - - loc_vars = function(self, info_queue, card) - local current_rank = G.GAME.current_round.fish_rank and G.GAME.current_round.fish_rank.rank or "Ace" - return { vars = { current_rank } } - end, - - calculate = function(self, card, context) - if context.first_hand_drawn and not context.blueprint then - card.ability.extra.fished = false - juice_card_until(card, function() - return not card.ability.extra.fished - end, true) - elseif context.before and not context.blueprint and not card.ability.extra.fished then - for _, scoring_card in ipairs(context.scoring_hand) do - if scoring_card.base.value == G.GAME.current_round.fish_rank.rank and not scoring_card.debuff then - card.ability.extra.fish = card.ability.extra.fish or {} - card.ability.extra.fish[#card.ability.extra.fish + 1] = scoring_card - card.ability.extra.fished = true - end - end - elseif context.after and not context.blueprint and card.ability.extra.fish then - for _, target in ipairs(card.ability.extra.fish) do - SMODS.destroy_cards(target) - end - card.ability.extra.fish = nil - elseif context.end_of_round then - card.ability.extra.fished = true - end - end, - - mp_credits = { - code = { "CampfireCollective", "steph" }, - art = { "bishopcorrigan" }, - }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/hoarder.lua b/objects/jokers/sandbox/extra-credit/hoarder.lua deleted file mode 100644 index 5e093a1ff..000000000 --- a/objects/jokers/sandbox/extra-credit/hoarder.lua +++ /dev/null @@ -1,31 +0,0 @@ -SMODS.Joker({ - key = "hoarder_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = false, - eternal_compat = true, - - rarity = 2, - cost = 5, - atlas = "ec_jokers_sandbox", - pos = { x = 9, y = 3 }, - - config = { - extra = 1, - - mp_sticker_extra_credit = true, - }, - - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra } } - end, - - mp_credits = { - code = { "CampfireCollective", "steph" }, - art = { "neatoqueen" }, - }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/jokalisa.lua b/objects/jokers/sandbox/extra-credit/jokalisa.lua deleted file mode 100644 index 8ad71bce2..000000000 --- a/objects/jokers/sandbox/extra-credit/jokalisa.lua +++ /dev/null @@ -1,68 +0,0 @@ -SMODS.Joker({ - key = "jokalisa_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = true, - perishable_compat = false, - - rarity = 3, - cost = 8, - atlas = "ec_jokers_sandbox", - pos = { x = 3, y = 3 }, - - config = { - extra = { - Xmult = 1, - Xmult_mod = 0.1, - }, - - mp_sticker_extra_credit = true, - }, - - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.Xmult, card.ability.extra.Xmult_mod } } - end, - - calculate = function(self, card, context) - local contains = function(table_, value) - for _, v in pairs(table_) do - if v == value then return true end - end - return false - end - - if context.before and not context.blueprint then - local enhanced = {} - for i = 1, #context.scoring_hand do - for k, v in pairs(SMODS.get_enhancements(context.scoring_hand[i])) do - if v then - if not contains(enhanced, k) then enhanced[#enhanced + 1] = k end - end - end - end - if #enhanced > 0 then - card.ability.extra.Xmult = card.ability.extra.Xmult + (card.ability.extra.Xmult_mod * #enhanced) - return { - message = localize({ type = "variable", key = "a_xmult", vars = { card.ability.extra.Xmult } }), - card = card, - colour = G.C.RED, - } - end - elseif context.cardarea == G.jokers and context.joker_main and card.ability.extra.Xmult > 1 then - return { - message = localize({ type = "variable", key = "a_xmult", vars = { card.ability.extra.Xmult } }), - Xmult_mod = card.ability.extra.Xmult, - } - end - end, - - mp_credits = { - code = { "CampfireCollective" }, - art = { "R3venantR3mnant" }, - }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/jokeroftheyear.lua b/objects/jokers/sandbox/extra-credit/jokeroftheyear.lua deleted file mode 100644 index 4aea1adab..000000000 --- a/objects/jokers/sandbox/extra-credit/jokeroftheyear.lua +++ /dev/null @@ -1,43 +0,0 @@ -SMODS.Joker({ - key = "jokeroftheyear_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = true, - - rarity = 3, - cost = 9, - atlas = "ec_jokers_sandbox", - pos = { x = 5, y = 3 }, - - config = { - extra = { - reps = 1, - }, - - mp_sticker_extra_credit = true, - }, - - loc_vars = function(self, info_queue, card) - return {} - end, - - calculate = function(self, card, context) - if context.cardarea == G.play and context.repetition and #context.scoring_hand == 5 then - return { - message = localize("k_again_ex"), - repetitions = card.ability.extra.reps, - card = card, - } - end - end, - - mp_credits = { - code = { "CampfireCollective" }, - art = { "neatoqueen" }, - }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/lucky7.lua b/objects/jokers/sandbox/extra-credit/lucky7.lua deleted file mode 100644 index faa0a4f04..000000000 --- a/objects/jokers/sandbox/extra-credit/lucky7.lua +++ /dev/null @@ -1,70 +0,0 @@ -SMODS.Joker({ - key = "lucky7_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = false, - eternal_compat = true, - - rarity = 1, - cost = 6, - atlas = "ec_jokers_sandbox", - pos = { x = 7, y = 3 }, - - config = { - extra = { - lucky = false, - checked = false, - }, - - mp_sticker_extra_credit = true, - }, - - loc_vars = function(self, info_queue, card) - info_queue[#info_queue + 1] = G.P_CENTERS.m_lucky - return - end, - - calculate = function(self, card, context) - if context.before and not context.blueprint then - local has_seven = false - for i = 1, #context.scoring_hand do - if context.scoring_hand[i]:get_id() == 7 and not context.scoring_hand[i].debuff then - has_seven = true - break - end - end - - -- enh_cache abuse hours. it's fine. it's better than injection. - -- we're healing. - if has_seven then - for i = 1, #context.scoring_hand do - context.scoring_hand[i].gambling = true - if SMODS.enh_cache and SMODS.enh_cache.write then - SMODS.enh_cache:write(context.scoring_hand[i], nil) - end - end - end - end - - if context.check_enhancement then - if context.other_card.gambling then return { - m_lucky = true, - } end - end - - if context.after then - for i = 1, #context.scoring_hand do - context.scoring_hand[i].gambling = nil - end - end - end, - - mp_credits = { - code = { "CampfireCollective", "steph" }, - art = { "bishopcorrigan" }, - }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/montehaul.lua b/objects/jokers/sandbox/extra-credit/montehaul.lua deleted file mode 100644 index bf14a16ad..000000000 --- a/objects/jokers/sandbox/extra-credit/montehaul.lua +++ /dev/null @@ -1,65 +0,0 @@ --- Monte Haul - Extra Credit Joker ported to Sandbox --- After 1 round, sell this card to gain 2 random Joker Tags - -SMODS.Joker({ - key = "montehaul_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = false, - rarity = 2, - cost = 5, - atlas = "ec_jokers_sandbox", - pos = { x = 5, y = 1 }, - config = { - extra = { - monty_rounds = 0, - flavours = { "tag_foil", "tag_holo", "tag_polychrome", "tag_negative", "tag_uncommon", "tag_rare" }, - }, - - mp_sticker_extra_credit = true, - }, - - loc_vars = function(self, info_queue, card) - info_queue[#info_queue + 1] = { key = "tag_foil", set = "Tag" } - info_queue[#info_queue + 1] = { key = "tag_holo", set = "Tag" } - info_queue[#info_queue + 1] = { key = "tag_polychrome", set = "Tag" } - info_queue[#info_queue + 1] = { key = "tag_negative", set = "Tag" } - info_queue[#info_queue + 1] = { key = "tag_uncommon", set = "Tag" } - info_queue[#info_queue + 1] = { key = "tag_rare", set = "Tag" } - return { vars = { card.ability.extra.monty_rounds } } - end, - - calculate = function(self, card, context) - if context.end_of_round and not context.blueprint and not context.individual and not context.repetition then - card.ability.extra.monty_rounds = card.ability.extra.monty_rounds + 1 - if card.ability.extra.monty_rounds >= 1 then - local eval = function(c) - return not c.REMOVED - end - juice_card_until(card, eval, true) - return { - message = localize("k_active_ex"), - colour = G.C.FILTER, - } - end - elseif context.selling_self and card.ability.extra.monty_rounds >= 1 then - for i = 1, 2 do - G.E_MANAGER:add_event(Event({ - func = function() - add_tag(Tag(pseudorandom_element(card.ability.extra.flavours, pseudoseed("monty")))) - play_sound("generic1", 0.9 + math.random() * 0.1, 0.8) - play_sound("holo1", 1.2 + math.random() * 0.1, 0.4) - return true - end, - })) - end - end - end, - - mp_credits = { code = { "CampfireCollective" }, art = { "UselessReptile8" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/pocketaces.lua b/objects/jokers/sandbox/extra-credit/pocketaces.lua deleted file mode 100644 index ff70bc965..000000000 --- a/objects/jokers/sandbox/extra-credit/pocketaces.lua +++ /dev/null @@ -1,43 +0,0 @@ --- Pocket Aces - Extra Credit Joker ported to Sandbox --- Gives $ at end of round, played Aces increase payout, resets each Ante - -SMODS.Joker({ - key = "pocketaces_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = false, - eternal_compat = true, - perishable_compat = true, - rarity = 2, - cost = 7, - atlas = "ec_jokers_sandbox", - pos = { x = 5, y = 0 }, - config = { extra = { money = 0, m_gain = 2 }, mp_sticker_extra_credit = true }, - - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.money, card.ability.extra.m_gain } } - end, - - calc_dollar_bonus = function(self, card) - local thunk = card.ability.extra.money - if G.GAME.blind.boss then card.ability.extra.money = 0 end - return thunk - end, - - calculate = function(self, card, context) - if - context.individual - and context.cardarea == G.play - and context.other_card:get_id() == 14 - and not context.blueprint - then - card.ability.extra.money = card.ability.extra.money + card.ability.extra.m_gain - end - end, - - mp_credits = { code = { "CampfireCollective" }, art = { "Wingcap" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/pyromancer.lua b/objects/jokers/sandbox/extra-credit/pyromancer.lua deleted file mode 100644 index 73cdb0c3d..000000000 --- a/objects/jokers/sandbox/extra-credit/pyromancer.lua +++ /dev/null @@ -1,46 +0,0 @@ -SMODS.Joker({ - key = "pyromancer_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = true, - - rarity = 1, - cost = 5, - atlas = "ec_jokers_sandbox", - pos = { x = 1, y = 3 }, - - config = { - extra = { - mult = 20, - }, - - mp_sticker_extra_credit = true, - }, - - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.mult } } - end, - - calculate = function(self, card, context) - if - context.cardarea == G.jokers - and context.joker_main - and G.GAME.current_round.hands_left <= G.GAME.current_round.discards_left - then - return { - message = localize({ type = "variable", key = "a_mult", vars = { card.ability.extra.mult } }), - mult_mod = card.ability.extra.mult, - } - end - end, - - mp_credits = { - code = { "CampfireCollective" }, - art = { "Wingcap" }, - }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/shipoftheseus.lua b/objects/jokers/sandbox/extra-credit/shipoftheseus.lua deleted file mode 100644 index 5629ad387..000000000 --- a/objects/jokers/sandbox/extra-credit/shipoftheseus.lua +++ /dev/null @@ -1,84 +0,0 @@ -SMODS.Joker({ - key = "shipoftheseus_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = true, - perishable_compat = false, - - rarity = 3, - cost = 9, - atlas = "ec_jokers_sandbox", - pos = { x = 7, y = 2 }, - - config = { - extra = { - Xmult = 1, - Xmult_mod = 0.4, - tick = false, - }, - - mp_sticker_extra_credit = true, - }, - - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.Xmult, card.ability.extra.Xmult_mod } } - end, - - calculate = function(self, card, context) - if context.remove_playing_cards then - card.ability.extra.tick = false - for k, val in ipairs(context.removed) do - if not context.blueprint then - card.ability.extra.Xmult = card.ability.extra.Xmult + card.ability.extra.Xmult_mod - card.ability.extra.tick = true - end - G.playing_card = (G.playing_card and G.playing_card + 1) or 1 - local _card = copy_card(val, nil, nil, G.playing_card) - _card:add_to_deck() - G.deck.config.card_limit = G.deck.config.card_limit + 1 - G.deck:emplace(_card) - table.insert(G.playing_cards, _card) - playing_card_joker_effects({ true }) - - G.E_MANAGER:add_event(Event({ - func = function() - _card:start_materialize() - - return true - end, - })) - card_eval_status_text( - context.blueprint_card or card, - "extra", - nil, - nil, - nil, - { message = localize("k_copied_ex"), colour = G.C.FILTER } - ) - end - - if not context.blueprint and card.ability.extra.tick then - delay(0.3) - card_eval_status_text(card, "extra", nil, nil, nil, { - message = localize({ type = "variable", key = "a_xmult", vars = { card.ability.extra.Xmult } }), - colour = G.C.FILTER, - }) - end - elseif context.cardarea == G.jokers and context.joker_main and card.ability.extra.Xmult > 1 then - return { - message = localize({ type = "variable", key = "a_xmult", vars = { card.ability.extra.Xmult } }), - Xmult_mod = card.ability.extra.Xmult, - } - end - end, - - mp_credits = { - code = { "CampfireCollective", "steph" }, - art = { "neatoqueen" }, - }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/starfruit.lua b/objects/jokers/sandbox/extra-credit/starfruit.lua deleted file mode 100644 index 966486bef..000000000 --- a/objects/jokers/sandbox/extra-credit/starfruit.lua +++ /dev/null @@ -1,80 +0,0 @@ --- Starfruit - Extra Credit Joker ported to Sandbox --- First played hand each round has a chance to gain 1 level (5 uses, then self-destructs) - -SMODS.Joker({ - key = "starfruit_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = false, - rarity = 1, - cost = 6, - atlas = "ec_jokers_sandbox", - pos = { x = 2, y = 0 }, - config = { extra = { uses = 5, odds = 2 }, mp_sticker_extra_credit = true }, - - loc_vars = function(self, info_queue, card) - local num, denom = SMODS.get_probability_vars(card, 1, card.ability.extra.odds, "j_mp_starfruit_sandbox") - return { vars = { card.ability.extra.uses, num, denom } } - end, - - calculate = function(self, card, context) - if context.cardarea == G.jokers and G.GAME.current_round.hands_played == 0 and context.before then - if SMODS.pseudorandom_probability(card, "j_mp_starfruit_sandbox", 1, card.ability.extra.odds) then - local text = context.scoring_name - card_eval_status_text( - context.blueprint_card or card, - "extra", - nil, - nil, - nil, - { message = localize("k_level_up_ex") } - ) - update_hand_text({ sound = "button", volume = 0.7, pitch = 0.8, delay = 0.3 }, { - handname = localize(text, "poker_hands"), - chips = G.GAME.hands[text].chips, - mult = G.GAME.hands[text].mult, - level = G.GAME.hands[text].level, - }) - level_up_hand(context.blueprint_card or card, text, nil, 1) - end - - if not context.blueprint then - card.ability.extra.uses = card.ability.extra.uses - 1 - if card.ability.extra.uses <= 0 then - G.E_MANAGER:add_event(Event({ - func = function() - play_sound("tarot1") - card.T.r = -0.2 - card:juice_up(0.3, 0.4) - card.states.drag.is = true - card.children.center.pinch.x = true - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.3, - blockable = false, - func = function() - G.jokers:remove_card(card) - card:remove() - card = nil - return true - end, - })) - return true - end, - })) - return { - message = localize("k_eaten_ex"), - colour = G.C.MONEY, - } - end - end - end - end, - - mp_credits = { code = { "CampfireCollective" }, art = { "dottykitty" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/trafficlight.lua b/objects/jokers/sandbox/extra-credit/trafficlight.lua deleted file mode 100644 index 919d13259..000000000 --- a/objects/jokers/sandbox/extra-credit/trafficlight.lua +++ /dev/null @@ -1,62 +0,0 @@ --- Traffic Light - Extra Credit Joker ported to Sandbox --- X2.5 Mult, decreases X1 each hand played, resets after X0.5 - -SMODS.Joker({ - key = "trafficlight_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = true, - rarity = 2, - cost = 5, - atlas = "ec_jokers_sandbox", - pos = { x = 7, y = 1 }, - config = { extra = { Xmult = 2.5, Xmult_mod = 1 }, mp_sticker_extra_credit = true }, - - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.Xmult, card.ability.extra.Xmult_mod } } - end, - - calculate = function(self, card, context) - if context.cardarea == G.jokers and context.joker_main then - return { - message = localize({ type = "variable", key = "a_xmult", vars = { card.ability.extra.Xmult } }), - Xmult_mod = card.ability.extra.Xmult, - } - elseif context.after and not context.blueprint then - card.ability.extra.Xmult = card.ability.extra.Xmult - card.ability.extra.Xmult_mod - - if card.ability.extra.Xmult < 0.5 then - card.ability.extra.Xmult = 2.5 - return { - message = "Go!", - colour = G.C.GREEN, - } - elseif card.ability.extra.Xmult == 1.5 then - return { - message = localize({ - type = "variable", - key = "a_xmult_minus", - vars = { card.ability.extra.Xmult_mod }, - }), - colour = G.C.FILTER, - } - elseif card.ability.extra.Xmult == 0.5 then - return { - message = localize({ - type = "variable", - key = "a_xmult_minus", - vars = { card.ability.extra.Xmult_mod }, - }), - colour = G.C.RED, - } - end - end - end, - - mp_credits = { code = { "CampfireCollective" }, art = { "Wingcap" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/tuxedo.lua b/objects/jokers/sandbox/extra-credit/tuxedo.lua deleted file mode 100644 index 24db8a610..000000000 --- a/objects/jokers/sandbox/extra-credit/tuxedo.lua +++ /dev/null @@ -1,54 +0,0 @@ -SMODS.Joker({ - key = "tuxedo_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = true, - - rarity = 2, - cost = 5, - atlas = "ec_jokers_sandbox", - pos = { x = 4, y = 2 }, - - config = { extra = { reps = 1 }, mp_sticker_extra_credit = true }, - - loc_vars = function(self, info_queue, card) - local current_suit = G.GAME.current_round.tuxedo_card and G.GAME.current_round.tuxedo_card.suit or "Spades" - return { vars = { localize(current_suit, "suits_singular"), colours = { G.C.SUITS[current_suit] } } } - end, - - calculate = function(self, card, context) - if - context.cardarea == G.play - and context.repetition - and context.other_card:is_suit(G.GAME.current_round.tuxedo_card.suit) - then - return { - message = localize("k_again_ex"), - repetitions = card.ability.extra.reps, - card = card, - } - elseif - context.repetition - and context.cardarea == G.hand - and context.other_card:is_suit(G.GAME.current_round.tuxedo_card.suit) - then - if next(context.card_effects[1]) or #context.card_effects > 1 then - return { - message = localize("k_again_ex"), - repetitions = card.ability.extra.reps, - card = card, - } - end - end - end, - - mp_credits = { - code = { "CampfireCollective" }, - art = { "dottykitty" }, - }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/warlock.lua b/objects/jokers/sandbox/extra-credit/warlock.lua deleted file mode 100644 index 2495c02c9..000000000 --- a/objects/jokers/sandbox/extra-credit/warlock.lua +++ /dev/null @@ -1,82 +0,0 @@ --- Warlock - Extra Credit Joker ported to Sandbox --- Lucky Cards have chance to be destroyed and spawn a Spectral Card - -SMODS.Joker({ - key = "warlock_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = true, - enhancement_gate = "m_lucky", - rarity = 2, - cost = 7, - atlas = "ec_jokers_sandbox", - pos = { x = 6, y = 0 }, - config = { extra = { odds = 7, succeed = false }, mp_sticker_extra_credit = true }, - - loc_vars = function(self, info_queue, card) - info_queue[#info_queue + 1] = G.P_CENTERS.m_lucky - local num, denom = SMODS.get_probability_vars(card, 1, card.ability.extra.odds, "j_mp_warlock_sandbox") - return { vars = { num, denom } } - end, - - calculate = function(self, card, context) - if - context.cardarea == G.play - and context.individual - and SMODS.get_enhancements(context.other_card)["m_lucky"] == true - then - if SMODS.pseudorandom_probability(card, "j_mp_warlock_sandbox", 1, card.ability.extra.odds) then - card.ability.extra.succeed = true - end - end - - if context.cardarea == G.jokers and context.after and card.ability.extra.succeed then - card.ability.extra.succeed = false - - if #G.consumeables.cards < G.consumeables.config.card_limit then - -- Find and destroy a random lucky card from the played hand - local lucky_cards = {} - for _, played_card in ipairs(context.scoring_hand or {}) do - if SMODS.get_enhancements(played_card)["m_lucky"] then table.insert(lucky_cards, played_card) end - end - - if #lucky_cards > 0 then - local target = pseudorandom_element(lucky_cards, pseudoseed("warlock_target")) - G.E_MANAGER:add_event(Event({ - func = function() - play_sound("tarot1") - target.T.r = -0.2 - target:juice_up(0.3, 0.4) - return true - end, - })) - - SMODS.destroy_cards(target) - - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.4, - func = function() - local spectral = - pseudorandom_element(G.P_CENTER_POOLS.Spectral, pseudoseed("warlock_spectral")) - SMODS.add_card({ set = "Spectral", key = spectral.key }) - return true - end, - })) - - return { - message = localize("k_plus_spectral"), - colour = G.C.SECONDARY_SET.Spectral, - } - end - end - end - end, - - mp_credits = { code = { "CampfireCollective" }, art = { "dottykitty" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/extra-credit/werewolf.lua b/objects/jokers/sandbox/extra-credit/werewolf.lua deleted file mode 100644 index 2124199cd..000000000 --- a/objects/jokers/sandbox/extra-credit/werewolf.lua +++ /dev/null @@ -1,61 +0,0 @@ -SMODS.Joker({ - key = "werewolf_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = false, - eternal_compat = true, - - rarity = 2, - cost = 5, - atlas = "ec_jokers_sandbox", - pos = { x = 1, y = 2 }, - - config = { - extra = {}, - - mp_sticker_extra_credit = true, - }, - - loc_vars = function(self, info_queue, card) - info_queue[#info_queue + 1] = G.P_CENTERS.m_wild - return { vars = {} } - end, - - calculate = function(self, card, context) - if context.before and not context.blueprint then - local thunk = 0 - local contains = function(table_, value) - for _, v in pairs(table_) do - if v == value then return true end - end - return false - end - - for k, v in ipairs(context.full_hand) do - if contains(SMODS.get_enhancements(v), true) and v.config.center.key ~= "m_wild" then - thunk = thunk + 1 - v:set_ability(G.P_CENTERS.m_wild, nil, true) - G.E_MANAGER:add_event(Event({ - func = function() - v:juice_up() - return true - end, - })) - end - end - if thunk > 0 then return { - message = "Awooo!", - colour = G.C.PURPLE, - } end - end - end, - - mp_credits = { - code = { "CampfireCollective" }, - art = { "bishopcorrigan", "splatter_proto" }, - }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/faceless.lua b/objects/jokers/sandbox/faceless.lua deleted file mode 100644 index e29d158bb..000000000 --- a/objects/jokers/sandbox/faceless.lua +++ /dev/null @@ -1,54 +0,0 @@ -SMODS.Atlas({ - key = "faceless_sandbox", - path = "j_faceless_sandbox.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "faceless_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - rarity = 1, - cost = 4, - atlas = "faceless_sandbox", - config = { extra = { dollars = 15 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.dollars } } - end, - calculate = function(self, card, context) - if context.discard and context.other_card == context.full_hand[#context.full_hand] then - local jacks = 0 - local queens = 0 - local kings = 0 - - for _, discarded_card in ipairs(context.full_hand) do - local rank = discarded_card:get_id() - if rank == 11 then jacks = jacks + 1 end - if rank == 12 then queens = queens + 1 end - if rank == 13 then kings = kings + 1 end - end - - if jacks >= 1 and queens >= 1 and kings >= 1 then - G.GAME.dollar_buffer = (G.GAME.dollar_buffer or 0) + card.ability.extra.dollars - return { - dollars = card.ability.extra.dollars, - func = function() - G.E_MANAGER:add_event(Event({ - func = function() - G.GAME.dollar_buffer = 0 - return true - end, - })) - end, - } - end - end - end, - mp_credits = { code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/golden_ticket.lua b/objects/jokers/sandbox/golden_ticket.lua deleted file mode 100644 index 991faef13..000000000 --- a/objects/jokers/sandbox/golden_ticket.lua +++ /dev/null @@ -1,46 +0,0 @@ -SMODS.Joker({ - key = "golden_ticket_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - rarity = 2, - cost = 5, - pos = { x = 5, y = 3 }, - config = { extra = { dollars = 5, odds = 2 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - info_queue[#info_queue + 1] = G.P_CENTERS.m_gold - local numerator, denominator = - SMODS.get_probability_vars(card, 1, card.ability.extra.odds, "j_mp_golden_ticket_sandbox") - return { vars = { card.ability.extra.dollars, numerator, denominator } } - end, - calculate = function(self, card, context) - if - context.individual - and context.cardarea == G.play - and SMODS.has_enhancement(context.other_card, "m_gold") - then - if SMODS.pseudorandom_probability(card, "j_mp_golden_ticket_sandbox", 1, card.ability.extra.odds) then - G.GAME.dollar_buffer = (G.GAME.dollar_buffer or 0) + card.ability.extra.dollars - return { - dollars = card.ability.extra.dollars, - func = function() - G.E_MANAGER:add_event(Event({ - func = function() - G.GAME.dollar_buffer = 0 - return true - end, - })) - end, - } - end - end - end, - in_pool = function(self, args) - return true - end, - mp_credits = { code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/hit_the_road.lua b/objects/jokers/sandbox/hit_the_road.lua deleted file mode 100644 index 76d996241..000000000 --- a/objects/jokers/sandbox/hit_the_road.lua +++ /dev/null @@ -1,45 +0,0 @@ -SMODS.Atlas({ - key = "hit_the_road_sandbox", - path = "j_hit_the_road_sandbox.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "hit_the_road_sandbox", - no_collection = MP.sandbox_no_collection, - - unlocked = true, - discovered = true, - - blueprint_compat = true, - rarity = 3, - cost = 8, - atlas = "hit_the_road_sandbox", - config = { extra = { xmult_gain = 0.75, xmult = 1 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.xmult_gain, card.ability.extra.xmult } } - end, - calculate = function(self, card, context) - if - context.discard - and not context.blueprint - and not context.other_card.debuff - and context.other_card:get_id() == 11 - then - card.ability.extra.xmult = card.ability.extra.xmult + card.ability.extra.xmult_gain - return { - message = localize({ type = "variable", key = "a_xmult", vars = { card.ability.extra.xmult } }), - colour = G.C.RED, - remove = true, - } - end - if context.joker_main then return { - xmult = card.ability.extra.xmult, - } end - end, - mp_credits = { code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/idol.lua b/objects/jokers/sandbox/idol.lua deleted file mode 100644 index d6ff48c63..000000000 --- a/objects/jokers/sandbox/idol.lua +++ /dev/null @@ -1,225 +0,0 @@ -SMODS.Atlas({ - key = "idol_sandbox_zealot", - path = "j_idol_sandbox_bw.png", - px = 71, - py = 95, -}) - --- Override reset_idol_card to do weighted rank selection for Zealot Idol --- Runs globally for all players so the pseudorandom queue stays in sync -local original_reset_idol_card = reset_idol_card -function reset_idol_card() - original_reset_idol_card() - - G.GAME.current_round.zealot_idol = { id = 14, rank = "Ace" } - - if G.playing_cards == nil then return end - - local count_map = {} - local valid_ranks = {} - - for _, v in ipairs(G.playing_cards) do - if v.ability.effect ~= "Stone Card" then - local val = v.base.value - if not count_map[val] then - count_map[val] = { count = 0, card = v } - table.insert(valid_ranks, count_map[val]) - end - count_map[val].count = count_map[val].count + 1 - end - end - - if #valid_ranks == 0 then return end - - local value_order = {} - for i, rank in ipairs(SMODS.Rank.obj_buffer) do - value_order[rank] = i - end - - table.sort(valid_ranks, function(a, b) - if a.count ~= b.count then return a.count > b.count end - return value_order[a.card.base.value] < value_order[b.card.base.value] - end) - - local total_weight = 0 - for _, entry in ipairs(valid_ranks) do - total_weight = total_weight + entry.count - end - - local raw_random = pseudorandom("zealot_idol" .. G.GAME.round_resets.ante) - local threshold = 0 - for _, entry in ipairs(valid_ranks) do - threshold = threshold + (entry.count / total_weight) - if raw_random < threshold then - G.GAME.current_round.zealot_idol = { id = entry.card.base.id, rank = entry.card.base.value } - return - end - end - - G.GAME.current_round.zealot_idol = { id = valid_ranks[1].card.base.id, rank = valid_ranks[1].card.base.value } -end - -SMODS.Joker({ - key = "idol_sandbox_zealot", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - rarity = 2, - cost = 6, - atlas = "idol_sandbox_zealot", - config = { extra = { xmult = 1.5 }, mp_balanced = true }, - add_to_deck = function(self, card, from_debuff) - G.GAME.banned_keys["j_mp_idol_sandbox_collector"] = true - if G.shop_jokers and G.shop_jokers.cards then - for i = #G.shop_jokers.cards, 1, -1 do - local shop_card = G.shop_jokers.cards[i] - if shop_card.config.center.key == "j_mp_idol_sandbox_collector" then - shop_card.T.r = -0.2 - shop_card:juice_up(0.3, 0.4) - shop_card:start_dissolve() - break - end - end - end - end, - loc_vars = function(self, info_queue, card) - local zealot = G.GAME.current_round.zealot_idol or { rank = "Ace" } - return { - vars = { - localize(zealot.rank, "ranks"), - card.ability.extra.xmult, - }, - } - end, - calculate = function(self, card, context) - local zealot = G.GAME.current_round.zealot_idol - if - zealot - and context.individual - and context.cardarea == G.play - and context.other_card:get_id() == zealot.id - then - return { - xmult = card.ability.extra.xmult, - } - end - end, - mp_credits = { code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) - -SMODS.Atlas({ - key = "idol_sandbox_collector", - path = "j_idol_sandbox_color.png", - px = 71, - py = 95, -}) - -local function get_most_common_card() - local count_map = {} - local valid_idol_cards = {} - - if G.playing_cards == nil then return { id = 14, rank = "Ace", suit = "Spades", count = 1 } end - - for _, v in ipairs(G.playing_cards) do - if v.ability.effect ~= "Stone Card" then - local key = v.base.value .. "_" .. v.base.suit - if not count_map[key] then - count_map[key] = { count = 0, card = v } - table.insert(valid_idol_cards, count_map[key]) - end - count_map[key].count = count_map[key].count + 1 - end - end - - if #valid_idol_cards == 0 then return { id = 14, rank = "Ace", suit = "Spades", count = 0 } end - - -- Sort by count descending first, then by suit/value for consistency - local value_order = {} - for i, rank in ipairs(SMODS.Rank.obj_buffer) do - value_order[rank] = i - end - - local suit_order = {} - for i, suit in ipairs(SMODS.Suit.obj_buffer) do - suit_order[suit] = i - end - - table.sort(valid_idol_cards, function(a, b) - if a.count ~= b.count then return a.count > b.count end - local a_suit = a.card.base.suit - local b_suit = b.card.base.suit - if suit_order[a_suit] ~= suit_order[b_suit] then return suit_order[a_suit] < suit_order[b_suit] end - local a_value = a.card.base.value - local b_value = b.card.base.value - return value_order[a_value] < value_order[b_value] - end) - - -- Return the most common card - local most_common = valid_idol_cards[1] - return { - id = most_common.card.base.id, - rank = most_common.card.base.value, - suit = most_common.card.base.suit, - count = most_common.count, - } -end - -SMODS.Joker({ - key = "idol_sandbox_collector", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - rarity = 2, - cost = 6, - atlas = "idol_sandbox_collector", - config = { extra = { xmult = 1.0, xmult_per_card = 0.05 }, mp_sticker_balanced = true }, - add_to_deck = function(self, card, from_debuff) - G.GAME.banned_keys["j_mp_idol_sandbox_zealot"] = true - if G.shop_jokers and G.shop_jokers.cards then - for i = #G.shop_jokers.cards, 1, -1 do - local shop_card = G.shop_jokers.cards[i] - if shop_card.config.center.key == "j_mp_idol_sandbox_zealot" then - shop_card.T.r = -0.2 - shop_card:juice_up(0.3, 0.4) - shop_card:start_dissolve() - break - end - end - end - end, - loc_vars = function(self, info_queue, card) - local most_common_card = get_most_common_card() - local xmult = card.ability.extra.xmult + card.ability.extra.xmult_per_card * most_common_card.count - return { - vars = { - localize(most_common_card.rank, "ranks"), - localize(most_common_card.suit, "suits_plural"), - xmult, - card.ability.extra.xmult_per_card, - colours = { G.C.SUITS[most_common_card.suit] }, - }, - } - end, - calculate = function(self, card, context) - local most_common_card = get_most_common_card() - if - context.individual - and context.cardarea == G.play - and context.other_card:get_id() == most_common_card.id - and context.other_card:is_suit(most_common_card.suit) - then - return { - xmult = card.ability.extra.xmult + card.ability.extra.xmult_per_card * most_common_card.count, - } - end - end, - mp_credits = { code = { "steph" }, idea = { "Fantom" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/juggler.lua b/objects/jokers/sandbox/juggler.lua deleted file mode 100644 index 83386b1ec..000000000 --- a/objects/jokers/sandbox/juggler.lua +++ /dev/null @@ -1,65 +0,0 @@ -SMODS.Atlas({ - key = "juggler_sandbox", - path = "j_juggler_sandbox.png", - px = 71, - py = 95, -}) -SMODS.Joker({ - key = "juggler_sandbox", - no_collection = MP.sandbox_no_collection, - - unlocked = true, - discovered = true, - blueprint_compat = false, - rarity = 1, - cost = 4, - atlas = "juggler_sandbox", - config = { extra = { h_size = 3 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.h_size } } - end, - add_to_deck = function(self, card, from_debuff) - G.hand:change_size(card.ability.extra.h_size) - end, - remove_from_deck = function(self, card, from_debuff) - G.hand:change_size(-card.ability.extra.h_size) - end, - calculate = function(self, card, context) - if context.before and context.main_eval and not context.blueprint then - if #context.full_hand < 5 then - card.ability.extra.h_size = card.ability.extra.h_size - 1 - G.hand:change_size(-1) - card_eval_status_text(card, "extra", nil, nil, nil, { message = "-1 Hand Size" }) -- TODO localize - - if card.ability.extra.h_size <= 0 then - G.E_MANAGER:add_event(Event({ - func = function() - play_sound("tarot1") - card.T.r = -0.2 - card:juice_up(0.3, 0.4) - card.states.drag.is = false - card.children.center.pinch.x = true - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.3, - blockable = false, - func = function() - G.jokers:remove_card(card) - card:remove() - card = nil - return true - end, - })) - return true - end, - })) - card_eval_status_text(card, "extra", nil, nil, nil, { message = localize("k_extinct_ex") }) - end - end - end - end, - mp_credits = { code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/loyalty_card.lua b/objects/jokers/sandbox/loyalty_card.lua deleted file mode 100644 index 3a5890fc0..000000000 --- a/objects/jokers/sandbox/loyalty_card.lua +++ /dev/null @@ -1,72 +0,0 @@ -SMODS.Atlas({ - key = "loyalty_card_sandbox", - path = "j_loyalty_card_sandbox.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "loyalty_card_sandbox", - - unlocked = true, - discovered = true, - no_collection = MP.sandbox_no_collection, - blueprint_compat = true, - rarity = 2, - cost = 5, - atlas = "loyalty_card_sandbox", - config = { extra = { Xmult = 6, every = 4, loyalty_remaining = 4, poker_hand = "???" }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { - vars = { - card.ability.extra.poker_hand, - math.abs(card.ability.extra.every - card.ability.extra.loyalty_remaining), - card.ability.extra.loyalty_remaining, - }, - } - end, - add_to_deck = function(self, card, from_debuff) - local _poker_hands = {} - for handname, _ in pairs(G.GAME.hands) do - if SMODS.is_poker_hand_visible(handname) then _poker_hands[#_poker_hands + 1] = handname end - end - card.ability.extra.poker_hand = pseudorandom_element(_poker_hands, "loyalty_card_sandbox") - end, - calculate = function(self, card, context) - if context.before and context.main_eval then - if context.scoring_name == card.ability.extra.poker_hand then - -- Played the loyal hand - decrease loyalty_remaining - if card.ability.extra.loyalty_remaining > 0 then - card.ability.extra.loyalty_remaining = card.ability.extra.loyalty_remaining - 1 - end - else - -- Played a different hand - relationship broken, reset loyalty - card.ability.extra.loyalty_remaining = card.ability.extra.every - return { - message = localize("k_reset"), - colour = G.C.RED, - } - end - end - if context.joker_main then - if not context.blueprint then - if card.ability.extra.loyalty_remaining == 0 then - local eval = function(card) - return card.ability.extra.loyalty_remaining == 0 and not G.RESET_JIGGLES - end - juice_card_until(card, eval, true) - end - end - if card.ability.extra.loyalty_remaining == 0 then - card.ability.extra.loyalty_remaining = card.ability.extra.every - return { - xmult = card.ability.extra.Xmult, - } - end - end - end, - mp_credits = { code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/lucky_cat.lua b/objects/jokers/sandbox/lucky_cat.lua deleted file mode 100644 index 28dc79296..000000000 --- a/objects/jokers/sandbox/lucky_cat.lua +++ /dev/null @@ -1,49 +0,0 @@ -SMODS.Atlas({ - key = "lucky_cat_sandbox", - path = "j_lucky_cat_sandbox.png", - px = 71, - py = 95, -}) -SMODS.Joker({ - key = "lucky_cat_sandbox", - - unlocked = true, - discovered = true, - no_collection = MP.sandbox_no_collection, - atlas = "lucky_cat_sandbox", - blueprint_compat = true, - perishable_compat = false, - rarity = 2, - cost = 6, - config = { extra = { Xmult_gain = 0.25, Xmult = 1 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - info_queue[#info_queue + 1] = G.P_CENTERS.m_lucky - - return { vars = { card.ability.extra.Xmult_gain, card.ability.extra.Xmult } } - end, - calculate = function(self, card, context) - if - context.individual - and context.cardarea == G.play - and context.other_card.lucky_trigger - and not context.blueprint - then - card.ability.extra.Xmult = card.ability.extra.Xmult + card.ability.extra.Xmult_gain - if SMODS.pseudorandom_probability(card, "j_lucky_cat_mp_sandbox", 1, 4) then - context.other_card:set_ability("m_glass", nil, true) - end - return { - message = localize("k_upgrade_ex"), - colour = G.C.MULT, - message_card = card, - } - end - if context.joker_main then return { - xmult = card.ability.extra.Xmult, - } end - end, - mp_credits = { code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/magnet_sandbox.lua b/objects/jokers/sandbox/magnet_sandbox.lua deleted file mode 100644 index 8c70be6f6..000000000 --- a/objects/jokers/sandbox/magnet_sandbox.lua +++ /dev/null @@ -1,107 +0,0 @@ -SMODS.Atlas({ - key = "magnet", - path = "j_magnet.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "magnet_sandbox", - atlas = "magnet", - rarity = 3, - cost = 7, - unlocked = true, - discovered = true, - no_collection = MP.sandbox_no_collection, - blueprint_compat = false, - eternal_compat = false, - perishable_compat = true, - config = { extra = { rounds = 2, current_rounds = 0, max_rounds = 5 } }, - loc_vars = function(self, info_queue, card) - MP.UTILS.add_nemesis_info(info_queue) - return { - vars = { - card.ability.extra.rounds, - card.ability.extra.current_rounds, - card.ability.extra.max_rounds, - }, - } - end, - add_to_deck = function(self, card, from_debuffed) - if not from_debuffed and (not card.edition or card.edition.type ~= "mp_phantom") then - MP.ACTIONS.send_phantom("j_mp_magnet_sandbox") - end - end, - remove_from_deck = function(self, card, from_debuff) - if not from_debuff and (not card.edition or card.edition.type ~= "mp_phantom") then - MP.ACTIONS.remove_phantom("j_mp_magnet_sandbox") - end - end, - calculate = function(self, card, context) - if - context.end_of_round - and not context.other_card - and not context.blueprint - and not context.debuffed - and (not card.edition or card.edition.type ~= "mp_phantom") - then - local removed = false - card.ability.extra.current_rounds = card.ability.extra.current_rounds + 1 - if card.ability.extra.current_rounds > card.ability.extra.max_rounds then - removed = true - G.E_MANAGER:add_event(Event({ - func = function() - play_sound("tarot1") - card.T.r = -0.2 - card:juice_up(0.3, 0.4) - card.states.drag.is = false - card.children.center.pinch.x = true - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.3, - blockable = false, - func = function() - G.jokers:remove_card(card) - card:remove() - card = nil - return true - end, - })) - return true - end, - })) - card_eval_status_text(card, "extra", nil, nil, nil, { message = localize("k_no_reward") }) - end - if card.ability.extra.current_rounds == card.ability.extra.rounds then - local eval = function(card) - return not card.REMOVED - end - juice_card_until(card, eval, true) - end - if not removed then - return { - message = (card.ability.extra.current_rounds < card.ability.extra.rounds) - and (card.ability.extra.current_rounds .. "/" .. card.ability.extra.rounds) - or localize("k_active_ex"), - colour = G.C.FILTER, - } - end - end - if - context.selling_self - and (card.ability.extra.current_rounds >= card.ability.extra.rounds) - and not context.blueprint - then - MP.ACTIONS.magnet() - end - end, - - mp_credits = { - idea = { "Zilver" }, - art = { "Ganpan140" }, - code = { "Virtualized" }, - }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) and MP.LOBBY.config.multiplayer_jokers - end, -}) diff --git a/objects/jokers/sandbox/mail.lua b/objects/jokers/sandbox/mail.lua deleted file mode 100644 index d7a3c990c..000000000 --- a/objects/jokers/sandbox/mail.lua +++ /dev/null @@ -1,59 +0,0 @@ --- Pausing this because baby steps -SMODS.Atlas({ - key = "mail_sandbox", - path = "j_mail_sandbox.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "mail_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - rarity = 1, - cost = 4, - atlas = "mail_sandbox", - config = { extra = { dollars = 5, rank = nil, card_id = nil }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - local rank = card.ability.extra.rank or (G.GAME.current_round.mail_card or {}).rank or "Ace" - return { - vars = { - card.ability.extra.dollars, - localize(rank, "ranks"), - }, - } - end, - add_to_deck = function(self, card, from_debuff) - -- Don't overwrite rank/card_id if card is re-added after debuff - if card.ability.extra.rank == nil then - card.ability.extra.rank = G.GAME.current_round.mail_card.rank - card.ability.extra.card_id = G.GAME.current_round.mail_card.id - end - end, - calculate = function(self, card, context) - if - context.discard - and not context.other_card.debuff - and context.other_card:get_id() == card.ability.extra.card_id - then - G.GAME.dollar_buffer = (G.GAME.dollar_buffer or 0) + card.ability.extra.dollars - return { - dollars = card.ability.extra.dollars, - func = function() - G.E_MANAGER:add_event(Event({ - func = function() - G.GAME.dollar_buffer = 0 - return true - end, - })) - end, - } - end - end, - mp_credits = { code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/misprint.lua b/objects/jokers/sandbox/misprint.lua deleted file mode 100644 index 3cd265692..000000000 --- a/objects/jokers/sandbox/misprint.lua +++ /dev/null @@ -1,37 +0,0 @@ -SMODS.Atlas({ - key = "misprint_sandbox", - path = "j_misprint_sandbox.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "misprint_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - atlas = "misprint_sandbox", - blueprint_compat = true, - rarity = 1, - cost = 4, - ruleset = "sandbox", - config = { extra = { max = 46, min = -23, mult = "???", color = G.C.MULT }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.mult, colours = { card.ability.extra.color } } } - end, - add_to_deck = function(self, card, from_debuff) - local numerator, denominator = SMODS.get_probability_vars(card, 1, 2, "j_mp_misprint_sandbox") - card.ability.extra.mult = numerator - * pseudorandom("misprint_sandbox", card.ability.extra.min, card.ability.extra.max) - if numerator > 1 then card.ability.extra.color = G.C.GREEN end - end, - calculate = function(self, card, context) - if context.joker_main then return { - mult = card.ability.extra.mult, - } end - end, - mp_credits = { code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/order.lua b/objects/jokers/sandbox/order.lua deleted file mode 100644 index 1602ce43f..000000000 --- a/objects/jokers/sandbox/order.lua +++ /dev/null @@ -1,49 +0,0 @@ -SMODS.Atlas({ - key = "order_sandbox", - path = "j_order_sandbox.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "order_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - rarity = 3, - cost = 8, - atlas = "order_sandbox", - config = { extra = { Xmult = 3, Xmult_mod = 0.5, type = "Straight" }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.Xmult_mod, card.ability.extra.Xmult } } - end, - calculate = function(self, card, context) - if context.before and context.main_eval and not context.blueprint then - if next(context.poker_hands[card.ability.extra.type]) then - -- Played a Straight - increase Xmult - card.ability.extra.Xmult = card.ability.extra.Xmult + card.ability.extra.Xmult_mod - return { - message = localize("k_upgrade_ex"), - colour = G.C.RED, - } - else - -- Didn't play a Straight - reset to base value - card.ability.extra.Xmult = 3 - return { - message = localize("k_reset"), - colour = G.C.RED, - } - end - end - if context.joker_main and next(context.poker_hands[card.ability.extra.type]) then - return { - xmult = card.ability.extra.Xmult, - } - end - end, - mp_credits = { code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/photograph.lua b/objects/jokers/sandbox/photograph.lua deleted file mode 100644 index 46653632e..000000000 --- a/objects/jokers/sandbox/photograph.lua +++ /dev/null @@ -1,40 +0,0 @@ -SMODS.Atlas({ - key = "photograph_sandbox", - path = "j_photograph_sandbox.png", - px = 71, - py = 95, -}) -SMODS.Joker({ - key = "photograph_sandbox", - no_collection = MP.sandbox_no_collection, - - unlocked = true, - discovered = true, - blueprint_compat = true, - atlas = "photograph_sandbox", - rarity = 1, - cost = 5, - pixel_size = { h = 95 / 1.2 }, - config = { extra = { xmult = 4 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.xmult } } - end, - calculate = function(self, card, context) - if context.individual and context.cardarea == G.play then - local face_count = 0 - for i = 1, #context.scoring_hand do - if context.scoring_hand[i]:is_face() then face_count = face_count + 1 end - end - - if face_count == 1 and context.other_card:is_face() then - return { - xmult = card.ability.extra.xmult, - } - end - end - end, - mp_credits = { code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/ride_the_bus.lua b/objects/jokers/sandbox/ride_the_bus.lua deleted file mode 100644 index 70b6b8066..000000000 --- a/objects/jokers/sandbox/ride_the_bus.lua +++ /dev/null @@ -1,70 +0,0 @@ -SMODS.Atlas({ - key = "ride_the_bus_sandbox", - path = "j_ride_the_bus_sandbox.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "ride_the_bus_sandbox", - blueprint_compat = true, - perishable_compat = false, - no_collection = MP.sandbox_no_collection, - - unlocked = true, - discovered = true, - rarity = 1, - cost = 6, - atlas = "ride_the_bus_sandbox", - config = { extra = { mult_gain = 1, mult = 0, max_gain = 5 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.mult } } - end, - calculate = function(self, card, context) - if context.before and context.main_eval and not context.blueprint then - local faces = false - for _, playing_card in ipairs(context.scoring_hand) do - if playing_card:is_face() then - faces = true - break - end - end - if faces then - G.E_MANAGER:add_event(Event({ - func = function() - play_sound("tarot1") - card.T.r = -0.2 - card:juice_up(0.3, 0.4) - card.states.drag.is = false - card.children.center.pinch.x = true - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.3, - blockable = false, - func = function() - G.jokers:remove_card(card) - card:remove() - card = nil - return true - end, - })) - return true - end, - })) - card_eval_status_text(card, "extra", nil, nil, nil, { message = localize("k_extinct_ex") }) - else - card.ability.extra.mult = card.ability.extra.mult + card.ability.extra.mult_gain - if card.ability.extra.mult_gain < card.ability.extra.max_gain then - card.ability.extra.mult_gain = card.ability.extra.mult_gain + 1 - end - end - end - if context.joker_main then return { - mult = card.ability.extra.mult, - } end - end, - mp_credits = { code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/runner.lua b/objects/jokers/sandbox/runner.lua deleted file mode 100644 index 5ecb69bbd..000000000 --- a/objects/jokers/sandbox/runner.lua +++ /dev/null @@ -1,41 +0,0 @@ -SMODS.Atlas({ - key = "runner_sandbox", - path = "j_runner_sandbox.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "runner_sandbox", - no_collection = MP.sandbox_no_collection, - blueprint_compat = true, - perishable_compat = false, - - unlocked = true, - discovered = true, - rarity = 1, - cost = 5, - atlas = "runner_sandbox", - config = { extra = { chips = 0, chip_mod = 50 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.chips } } - end, - calculate = function(self, card, context) - if context.before and context.main_eval and not context.blueprint and next(context.poker_hands["Straight"]) then - card.ability.extra.chips = card.ability.extra.chips + card.ability.extra.chip_mod - return { - message = localize("k_upgrade_ex"), - colour = G.C.CHIPS, - } - end - if context.joker_main and next(context.poker_hands["Straight"]) then - return { - chips = card.ability.extra.chips, - } - end - end, - mp_credits = { code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/satellite.lua b/objects/jokers/sandbox/satellite.lua deleted file mode 100644 index 475b7d8aa..000000000 --- a/objects/jokers/sandbox/satellite.lua +++ /dev/null @@ -1,49 +0,0 @@ -SMODS.Atlas({ - key = "satellite_sandbox", - path = "j_satellite_sandbox.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "satellite_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = false, - rarity = 2, - cost = 6, - atlas = "satellite_sandbox", - config = { extra = { dollars = 1 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.dollars } } - end, - calculate = function(self, card, context) - if context.using_consumeable and not context.blueprint and context.consumeable.ability.set == "Planet" then - card.ability.extra.dollars = card.ability.extra.dollars + 1 - return { - -- todo fix - message = localize({ type = "variable", key = "k_val_up", vars = { 1 } }), - } - end - if context.ending_shop and not context.blueprint then - if card.ability.extra.dollars > 0 then - local decrease = math.min(card.ability.extra.dollars, 2) - card.ability.extra.dollars = card.ability.extra.dollars - decrease - play_sound("slice1", 0.96 + math.random() * 0.08) - play_sound("slice1", 0.86 + math.random() * 0.08) - -- todo fix - return { - message = localize({ type = "variable", key = "k_melted_ex", vars = { decrease } }), - } - end - end - end, - calc_dollar_bonus = function(self, card) - return card.ability.extra.dollars > 0 and card.ability.extra.dollars or nil - end, - mp_credits = { code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/square.lua b/objects/jokers/sandbox/square.lua deleted file mode 100644 index 33e3629a0..000000000 --- a/objects/jokers/sandbox/square.lua +++ /dev/null @@ -1,40 +0,0 @@ -SMODS.Atlas({ - key = "square_sandbox", - path = "j_square_sandbox.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "square_sandbox", - no_collection = MP.sandbox_no_collection, - - unlocked = true, - discovered = true, - blueprint_compat = true, - perishable_compat = false, - rarity = 1, - cost = 4, - atlas = "square_sandbox", - pixel_size = { h = 71 }, - config = { extra = { chips = 64, chip_mod = 16 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.chips, card.ability.extra.chip_mod } } - end, - calculate = function(self, card, context) - if context.before and context.main_eval and not context.blueprint and #context.full_hand == 4 then - card.ability.extra.chips = card.ability.extra.chips + card.ability.extra.chip_mod - return { - message = localize("k_upgrade_ex"), - colour = G.C.CHIPS, - } - end - if context.joker_main and #context.full_hand == 4 then return { - chips = card.ability.extra.chips, - } end - end, - mp_credits = { idea = { "Owen" }, code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/steel_joker.lua b/objects/jokers/sandbox/steel_joker.lua deleted file mode 100644 index 18615e189..000000000 --- a/objects/jokers/sandbox/steel_joker.lua +++ /dev/null @@ -1,36 +0,0 @@ -SMODS.Atlas({ - key = "steel_joker_sandbox", - path = "j_steel_joker_sandbox.png", - px = 71, - py = 95, -}) -SMODS.Joker({ - key = "steel_joker_sandbox", - no_collection = MP.sandbox_no_collection, - - unlocked = true, - discovered = true, - blueprint_compat = true, - rarity = 2, - cost = 7, - atlas = "steel_joker_sandbox", - config = { extra = { repetitions = 1 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - info_queue[#info_queue + 1] = G.P_CENTERS.m_steel - end, - calculate = function(self, card, context) - if - context.repetition - and context.cardarea == G.play - and SMODS.has_enhancement(context.other_card, "m_steel") - then - return { - repetitions = card.ability.extra.repetitions, - } - end - end, - mp_credits = { code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/throwback.lua b/objects/jokers/sandbox/throwback.lua deleted file mode 100644 index 2b5e2c920..000000000 --- a/objects/jokers/sandbox/throwback.lua +++ /dev/null @@ -1,92 +0,0 @@ -local function calculate_total_mult(card) - return 1 + (G.GAME.skips * card.ability.extra.base_mult) + card.ability.extra.owned_skip_mult -end - -local function apply_skip_bonus(card) - card.ability.extra.owned_skip_mult = card.ability.extra.owned_skip_mult + card.ability.extra.skip_bonus - local total_mult = calculate_total_mult(card) - return { - message = localize({ - type = "variable", - key = "a_xmult", - vars = { total_mult }, - }), - } -end - -local function apply_round_penalty(card) - local prev_mult = card.ability.extra.owned_skip_mult - card.ability.extra.owned_skip_mult = - math.max(0, card.ability.extra.owned_skip_mult - card.ability.extra.round_penalty) - if prev_mult > card.ability.extra.owned_skip_mult then - return { - message = localize({ - type = "variable", - key = "a_xmult_minus", - vars = { card.ability.extra.round_penalty }, - }), - colour = G.C.RED, - } - end -end - -SMODS.Atlas({ - key = "throwback_sandbox", - path = "j_throwback_sandbox.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "throwback_sandbox", - no_collection = MP.sandbox_no_collection, - unlocked = true, - discovered = true, - blueprint_compat = true, - rarity = 2, - cost = 6, - atlas = "throwback_sandbox", - config = { - extra = { - base_mult = 0.25, - skip_bonus = 0.75, - round_penalty = 0.75, - owned_skip_mult = 0, - skipped_this_round = false, - }, - mp_balanced = true, - }, - loc_vars = function(self, info_queue, card) - return { - vars = { - calculate_total_mult(card), - card.ability.extra.base_mult, - card.ability.extra.skip_bonus, - card.ability.extra.round_penalty, - }, - } - end, - calculate = function(self, card, context) - if context.skip_blind and not context.blueprint then - card.ability.extra.skipped_this_round = true - return apply_skip_bonus(card) - end - if context.end_of_round and context.game_over == false and context.main_eval and not context.blueprint then - if not card.ability.extra.skipped_this_round then - return apply_round_penalty(card) - else - card.ability.extra.skipped_this_round = false - end - end - if context.joker_main then - local total_mult = calculate_total_mult(card) - return { - xmult = total_mult, - } - end - end, - mp_credits = { code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/sandbox/vampire.lua b/objects/jokers/sandbox/vampire.lua deleted file mode 100644 index cd8cd8655..000000000 --- a/objects/jokers/sandbox/vampire.lua +++ /dev/null @@ -1,73 +0,0 @@ -SMODS.Atlas({ - key = "vampire_sandbox", - path = "j_vampire_sandbox.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "vampire_sandbox", - no_collection = MP.sandbox_no_collection, - - unlocked = true, - discovered = true, - blueprint_compat = true, - perishable_compat = false, - rarity = 2, - cost = 7, - atlas = "vampire_sandbox", - config = { extra = { Xmult_gain = 0.2, Xmult = 1, stone_money = 3 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.Xmult_gain, card.ability.extra.Xmult, card.ability.extra.stone_money } } - end, - calculate = function(self, card, context) - if context.before and context.main_eval and not context.blueprint then - local enhanced = {} - local stone_cards = {} - for _, scored_card in ipairs(context.scoring_hand) do - if - next(SMODS.get_enhancements(scored_card)) - and not scored_card.debuff - and not scored_card.vampired - and not SMODS.has_enhancement(scored_card, "m_stone") -- todo like this - does it even work? - then - enhanced[#enhanced + 1] = scored_card - scored_card.vampired = true - scored_card:set_ability("m_stone", nil, true) - G.E_MANAGER:add_event(Event({ - func = function() - scored_card:juice_up() - scored_card.vampired = nil - return true - end, - })) - elseif SMODS.has_enhancement(scored_card, "m_stone") and not scored_card.debuff then - stone_cards[#stone_cards + 1] = scored_card - end - end - - if #enhanced > 0 then - card.ability.extra.Xmult = card.ability.extra.Xmult + card.ability.extra.Xmult_gain * #enhanced - return { - message = localize({ type = "variable", key = "a_xmult", vars = { card.ability.extra.Xmult } }), - colour = G.C.MULT, - } - end - - if #stone_cards > 0 then - ease_dollars(card.ability.extra.stone_money * #stone_cards) - return { - message = localize("$") .. (card.ability.extra.stone_money * #stone_cards), - colour = G.C.MONEY, - } - end - end - if context.joker_main then return { - xmult = card.ability.extra.Xmult, - } end - end, - mp_credits = { code = { "steph" } }, - mp_include = function(self) - return MP.SANDBOX.is_joker_allowed(self.key) - end, -}) diff --git a/objects/jokers/skip_off.lua b/objects/jokers/skip_off.lua deleted file mode 100644 index 7c7213f34..000000000 --- a/objects/jokers/skip_off.lua +++ /dev/null @@ -1,63 +0,0 @@ -SMODS.Atlas({ - key = "skip_off", - path = "j_skip_off.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "skip_off", - atlas = "skip_off", - rarity = 2, - cost = 5, - unlocked = true, - discovered = true, - blueprint_compat = false, - eternal_compat = true, - perishable_compat = true, - config = { extra = { hands = 0, discards = 0, extra_hands = 1, extra_discards = 1 } }, - loc_vars = function(self, info_queue, card) - MP.UTILS.add_nemesis_info(info_queue) - return { - vars = { - card.ability.extra.extra_hands, - card.ability.extra.extra_discards, - card.ability.extra.hands, - card.ability.extra.discards, - G.GAME.skips ~= nil and MP.GAME.enemy.skips ~= nil and localize({ - type = "variable", - key = MP.GAME.enemy.skips > G.GAME.skips and "a_mp_skips_behind" - or MP.GAME.enemy.skips == G.GAME.skips and "a_mp_skips_tied" - or "a_mp_skips_ahead", - vars = { math.abs(MP.GAME.enemy.skips - G.GAME.skips) }, - })[1] or "", - }, - } - end, - mp_include = function(self) - return MP.LOBBY.code and MP.LOBBY.config.multiplayer_jokers - end, - update = function(self, card, dt) - if G.STAGE == G.STAGES.RUN and G.GAME.skips ~= nil and MP.GAME.enemy.skips ~= nil then - local skip_diff = (math.max(G.GAME.skips - MP.GAME.enemy.skips, 0)) - card.ability.extra.hands = skip_diff * card.ability.extra.extra_hands - card.ability.extra.discards = skip_diff * card.ability.extra.extra_discards - end - end, - calculate = function(self, card, context) - if context.cardarea == G.jokers and context.setting_blind and not context.blueprint then - G.E_MANAGER:add_event(Event({ - func = function() - ease_hands_played(card.ability.extra.hands) - ease_discard(card.ability.extra.discards, nil, true) - return true - end, - })) - end - end, - mp_credits = { - idea = { "Dr. Monty", "Carter" }, - art = { "Aura!" }, - code = { "Virtualized" }, - }, -}) diff --git a/objects/jokers/speedrun.lua b/objects/jokers/speedrun.lua deleted file mode 100644 index d2284da05..000000000 --- a/objects/jokers/speedrun.lua +++ /dev/null @@ -1,65 +0,0 @@ -SMODS.Atlas({ - key = "speedrun", - path = "j_speedrun.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "speedrun", - atlas = "speedrun", - rarity = 2, - cost = 6, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = true, - perishable_compat = true, - loc_vars = function(self, info_queue, card) - MP.UTILS.add_nemesis_info(info_queue) - return { vars = {} } - end, - mp_include = function(self) - return MP.LOBBY.code and MP.LOBBY.config.multiplayer_jokers - end, - calculate = function(self, card, context) - if - context.mp_speedrun - and (not card.edition or card.edition.type ~= "mp_phantom") - and #G.consumeables.cards + G.GAME.consumeable_buffer < G.consumeables.config.card_limit - then - G.GAME.consumeable_buffer = G.GAME.consumeable_buffer + 1 - G.E_MANAGER:add_event(Event({ - trigger = "before", - delay = 0.0, - func = function() - local card = create_card("Spectral", G.consumeables, nil, nil, nil, nil, nil, "mp_speedrun") - card:add_to_deck() - G.consumeables:emplace(card) - G.GAME.consumeable_buffer = 0 - return true - end, - })) - return { - message = localize("k_plus_spectral"), - colour = G.C.SECONDARY_SET.Spectral, - card = card, - } - end - end, - add_to_deck = function(self, card, from_debuffed) - if not from_debuffed and (not card.edition or card.edition.type ~= "mp_phantom") then - MP.ACTIONS.send_phantom("j_mp_speedrun") - end - end, - remove_from_deck = function(self, card, from_debuff) - if not from_debuff and (not card.edition or card.edition.type ~= "mp_phantom") then - MP.ACTIONS.remove_phantom("j_mp_speedrun") - end - end, - mp_credits = { - idea = { "Virtualized" }, - art = { "Aura!" }, - code = { "Virtualized" }, - }, -}) diff --git a/objects/jokers/standard/bloodstone.lua b/objects/jokers/standard/bloodstone.lua deleted file mode 100644 index afbf2d385..000000000 --- a/objects/jokers/standard/bloodstone.lua +++ /dev/null @@ -1,65 +0,0 @@ --- this is kinda strange but we can just override the logic for pvp only rather than re-implementing it again, bc if we don't return anything, it'll run the normal logic - -SMODS.Joker({ - key = "bloodstone", - unlocked = true, - discovered = true, - blueprint_compat = true, - perishable_compat = true, - eternal_compat = true, - rarity = 2, - cost = 7, - pos = { x = 0, y = 8 }, - no_collection = true, - config = { extra = { odds = 2, Xmult = 1.5 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { - key = "j_bloodstone", - vars = { - "" .. (G.GAME and G.GAME.probabilities.normal or 1), - card.ability.extra.odds, - card.ability.extra.Xmult, - }, - } - end, - calculate = function(self, card, context) - if MP.is_pvp_boss() then - if not context.blueprint then - if context.before then - G.GAME.round_resets.mp_bloodstone = G.GAME.round_resets.mp_bloodstone or {} - G.GAME.round_resets.mp_bloodstone[MP.order_round_based(true)] = G.GAME.round_resets.mp_bloodstone[MP.order_round_based( - true - )] or {} - G.GAME.round_resets.mp_bsindex = 0 - end - end - if context.individual and context.cardarea == G.play then - if context.other_card:is_suit("Hearts") then - local stored_queue = G.GAME.round_resets.mp_bloodstone[MP.order_round_based(true)] - G.GAME.round_resets.mp_bsindex = G.GAME.round_resets.mp_bsindex + 1 -- increment before indexing - stored_queue[G.GAME.round_resets.mp_bsindex] = stored_queue[G.GAME.round_resets.mp_bsindex] - or pseudorandom("bloodstone" .. MP.order_round_based(true)) - if - stored_queue[G.GAME.round_resets.mp_bsindex] - < G.GAME.probabilities.normal / card.ability.extra.odds - then - return { - x_mult = card.ability.extra.Xmult, - card = card, - } - end - end - end - elseif context.individual and context.cardarea == G.play then - if - context.other_card:is_suit("Hearts") - and pseudorandom("bloodstone") < G.GAME.probabilities.normal / card.ability.extra.odds - then - return { - x_mult = card.ability.extra.Xmult, - card = card, - } - end - end - end, -}) diff --git a/objects/jokers/standard/hanging_chad.lua b/objects/jokers/standard/hanging_chad.lua deleted file mode 100644 index 5fe6e1123..000000000 --- a/objects/jokers/standard/hanging_chad.lua +++ /dev/null @@ -1,36 +0,0 @@ -SMODS.Joker({ - key = "hanging_chad", - no_collection = true, - unlocked = true, - discovered = true, - blueprint_compat = true, - perishable_compat = true, - eternal_compat = true, - rarity = 1, - cost = 4, - pos = { x = 9, y = 6 }, - config = { extra = 1, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { vars = { - card.ability.extra, - } } - end, - calculate = function(self, card, context) - if context.cardarea == G.play and context.repetition then - if context.other_card == context.scoring_hand[1] then - return { - message = localize("k_again_ex"), - repetitions = card.ability.extra, - card = card, - } - end - if context.other_card == context.scoring_hand[2] then - return { - message = localize("k_again_ex"), - repetitions = card.ability.extra, - card = card, - } - end - end - end, -}) diff --git a/objects/jokers/standard/ice_cream.lua b/objects/jokers/standard/ice_cream.lua deleted file mode 100644 index 87273bd6e..000000000 --- a/objects/jokers/standard/ice_cream.lua +++ /dev/null @@ -1,26 +0,0 @@ --- Under pvp_timer, losing the round to the clock melts ice cream by chip_mod * unused hands. -local old_ice_cream_calculate = G.P_CENTERS.j_ice_cream.calculate or function(self, card, context) end -SMODS.Joker:take_ownership("j_ice_cream", { - calculate = function(self, card, context) - -- calculate runs every frame on every on-screen joker; keep the layer check - -- gated behind the cheap context field test. - if context.mp_pvp_loss and not context.blueprint and MP.is_layer_active("pvp_timer") then - local hands_decrease = context.mp_hands_left or 1 - local chips_decrease = card.ability.extra.chip_mod * hands_decrease - if card.ability.extra.chips - chips_decrease <= 0 then - SMODS.destroy_cards(card, nil, nil, true) - return { - message = localize("k_melted_ex"), - colour = G.C.CHIPS, - } - else - card.ability.extra.chips = card.ability.extra.chips - chips_decrease - return { - message = localize({ type = "variable", key = "a_chips_minus", vars = { chips_decrease } }), - colour = G.C.CHIPS, - } - end - end - return old_ice_cream_calculate(self, card, context) - end, -}, true) diff --git a/objects/jokers/standard/seltzer.lua b/objects/jokers/standard/seltzer.lua deleted file mode 100644 index c0b130170..000000000 --- a/objects/jokers/standard/seltzer.lua +++ /dev/null @@ -1,64 +0,0 @@ -SMODS.Joker({ - key = "seltzer", - no_collection = true, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = false, - rarity = 2, - cost = 6, - pos = { x = 3, y = 15 }, - config = { extra = { hands_left = 8 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.hands_left } } - end, - calculate = function(self, card, context) - if context.repetition and context.cardarea == G.play then return { - repetitions = 1, - } end - -- after-hand path runs every blind; mp_pvp_loss only matters under pvp_timer, - -- so the layer check sits behind the cheap context field test. - if (context.after or (context.mp_pvp_loss and MP.is_layer_active("pvp_timer"))) and not context.blueprint then - local hands_decrease = context.mp_pvp_loss and context.mp_hands_left or 1 - if card.ability.extra.hands_left - hands_decrease <= 0 then - SMODS.destroy_cards(card, nil, nil, true) - return { - message = localize("k_drank_ex"), - colour = G.C.FILTER, - } - else - card.ability.extra.hands_left = card.ability.extra.hands_left - hands_decrease - return { - message = card.ability.extra.hands_left .. "", - colour = G.C.FILTER, - } - end - end - end, -}) - --- Under pvp_timer, losing the round to the clock drinks vanilla seltzer by the number of unused hands. -local old_seltzer_calculate = G.P_CENTERS.j_selzer.calculate or function(self, card, context) end -SMODS.Joker:take_ownership("j_selzer", { - calculate = function(self, card, context) - -- calculate runs every frame on every on-screen joker; keep the layer check - -- gated behind the cheap context field test. - if context.mp_pvp_loss and not context.blueprint and MP.is_layer_active("pvp_timer") then - local hands_decrease = context.mp_hands_left or 1 - if card.ability.extra - hands_decrease <= 0 then - SMODS.destroy_cards(card, nil, nil, true) - return { - message = localize("k_drank_ex"), - colour = G.C.FILTER, - } - else - card.ability.extra = card.ability.extra - hands_decrease - return { - message = card.ability.extra .. "", - colour = G.C.FILTER, - } - end - end - return old_seltzer_calculate(self, card, context) - end, -}, true) diff --git a/objects/jokers/standard/ticket.lua b/objects/jokers/standard/ticket.lua deleted file mode 100644 index bcb15f5f8..000000000 --- a/objects/jokers/standard/ticket.lua +++ /dev/null @@ -1,71 +0,0 @@ -SMODS.Joker({ - key = "ticket", - no_collection = true, - unlocked = true, - discovered = true, - blueprint_compat = true, - rarity = 2, - cost = 6, - pos = { x = 5, y = 3 }, - config = { extra = { dollars = 4 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - info_queue[#info_queue + 1] = G.P_CENTERS.m_gold - return { vars = { card.ability.extra.dollars } } - end, - calculate = function(self, card, context) - if - context.individual - and context.cardarea == G.play - and SMODS.has_enhancement(context.other_card, "m_gold") - then - G.GAME.dollar_buffer = (G.GAME.dollar_buffer or 0) + card.ability.extra.dollars - return { - dollars = card.ability.extra.dollars, - func = function() -- This is for timing purposes, it runs after the dollar manipulation - G.E_MANAGER:add_event(Event({ - func = function() - G.GAME.dollar_buffer = 0 - return true - end, - })) - end, - } - end - end, -}) - -SMODS.Joker({ - key = "ticket_experimental", - no_collection = true, - unlocked = true, - discovered = true, - blueprint_compat = true, - rarity = 2, - cost = 6, - pos = { x = 5, y = 3 }, - config = { extra = { dollars = 4 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - info_queue[#info_queue + 1] = G.P_CENTERS.m_gold - return { vars = { card.ability.extra.dollars } } - end, - calculate = function(self, card, context) - if - context.individual - and context.cardarea == G.play - and SMODS.has_enhancement(context.other_card, "m_gold") - then - G.GAME.dollar_buffer = (G.GAME.dollar_buffer or 0) + card.ability.extra.dollars - return { - dollars = card.ability.extra.dollars, - func = function() -- This is for timing purposes, it runs after the dollar manipulation - G.E_MANAGER:add_event(Event({ - func = function() - G.GAME.dollar_buffer = 0 - return true - end, - })) - end, - } - end - end, -}) \ No newline at end of file diff --git a/objects/jokers/standard/turtle_bean.lua b/objects/jokers/standard/turtle_bean.lua deleted file mode 100644 index bb3cf657d..000000000 --- a/objects/jokers/standard/turtle_bean.lua +++ /dev/null @@ -1,43 +0,0 @@ -SMODS.Joker({ - key = "turtle_bean", - no_collection = true, - unlocked = true, - discovered = true, - blueprint_compat = false, - eternal_compat = false, - rarity = 2, - cost = 6, - pos = { x = 4, y = 13 }, - config = { extra = { h_size = 4, h_mod = 1 }, mp_balanced = true }, - loc_vars = function(self, info_queue, card) - return { vars = { card.ability.extra.h_size, card.ability.extra.h_mod } } - end, - calculate = function(self, card, context) - if context.end_of_round and context.game_over == false and context.main_eval and not context.blueprint then - if card.ability.extra.h_size - card.ability.extra.h_mod <= 0 then - SMODS.destroy_cards(card, nil, nil, true) - return { - message = localize("k_eaten_ex"), - colour = G.C.FILTER, - } - else - card.ability.extra.h_size = card.ability.extra.h_size - card.ability.extra.h_mod - G.hand:change_size(-card.ability.extra.h_mod) - return { - message = localize({ - type = "variable", - key = "a_handsize_minus", - vars = { card.ability.extra.h_mod }, - }), - colour = G.C.FILTER, - } - end - end - end, - add_to_deck = function(self, card, from_debuff) - G.hand:change_size(card.ability.extra.h_size) - end, - remove_from_deck = function(self, card, from_debuff) - G.hand:change_size(-card.ability.extra.h_size) - end, -}) diff --git a/objects/jokers/taxes.lua b/objects/jokers/taxes.lua deleted file mode 100644 index ca84474bd..000000000 --- a/objects/jokers/taxes.lua +++ /dev/null @@ -1,61 +0,0 @@ -local function next_taxes_total_mult_gain(card) - local sells = MP.GAME.enemy.sells_per_ante[G.GAME.round_resets.ante] or 0 - - -- If PvP hasn't been reached for the first time, accumulate sells from previous Antes - if G.GAME.round_resets.ante <= MP.LOBBY.config.pvp_start_round then - for i = 1, G.GAME.round_resets.ante - 1 do - sells = sells + (MP.GAME.enemy.sells_per_ante[i] or 0) - end - end - - return sells * card.ability.extra.mult_gain -end - -SMODS.Atlas({ - key = "taxes", - path = "j_taxes.png", - px = 71, - py = 95, -}) - -SMODS.Joker({ - key = "taxes", - atlas = "taxes", - rarity = 1, - cost = 5, - unlocked = true, - discovered = true, - blueprint_compat = true, - eternal_compat = true, - perishable_compat = false, - config = { extra = { mult_gain = 4, mult = 0 } }, - loc_vars = function(self, info_queue, card) - MP.UTILS.add_nemesis_info(info_queue) - return { vars = { card.ability.extra.mult_gain, card.ability.extra.mult } } - end, - mp_include = function(self) - return MP.LOBBY.code and MP.LOBBY.config.multiplayer_jokers - end, - calculate = function(self, card, context) - if context.cardarea == G.jokers and context.joker_main then - return { - mult = card.ability.extra.mult, - } - elseif - context.cardarea == G.jokers - and context.setting_blind - and not context.blueprint - and context.blind.key == "bl_mp_nemesis" - then - card.ability.extra.mult = card.ability.extra.mult + next_taxes_total_mult_gain(card) - return { - message = localize("k_filed_ex"), - } - end - end, - mp_credits = { - idea = { "Zwei" }, - art = { "Kittyknight" }, - code = { "Virtualized" }, - }, -}) diff --git a/rulesets/_rulesets.lua b/rulesets/_rulesets.lua index aa4ed2fea..6008d6f70 100644 --- a/rulesets/_rulesets.lua +++ b/rulesets/_rulesets.lua @@ -211,16 +211,20 @@ function MP.ApplyBans() "blinds", } for _, table in ipairs(banned_tables) do + local unbanned = {} + for _, v in ipairs(ruleset["unbanned_" .. table] or {}) do + unbanned[v] = true + end for _, v in ipairs(ruleset["banned_" .. table]) do - G.GAME.banned_keys[v] = true + if not unbanned[v] then G.GAME.banned_keys[v] = true end end if gamemode then for _, v in ipairs(gamemode["banned_" .. table]) do - G.GAME.banned_keys[v] = true + if not unbanned[v] then G.GAME.banned_keys[v] = true end end end for _, v in pairs(MP.DECK["BANNED_" .. string.upper(table)]) do - G.GAME.banned_keys[v] = true + if not unbanned[v] then G.GAME.banned_keys[v] = true end end end for _, v in ipairs(ruleset.banned_silent) do diff --git a/rulesets/experimental/experimental_blind_raiser.lua b/rulesets/experimental/experimental_blind_raiser.lua index e50f21e45..4b8f8ae44 100644 --- a/rulesets/experimental/experimental_blind_raiser.lua +++ b/rulesets/experimental/experimental_blind_raiser.lua @@ -107,6 +107,11 @@ MP.Ruleset({ key = BLIND_RAISER_LAYER, layers = { "standard", "ranked", "pvp_timer" }, forced_gamemode = "gamemode_mp_attrition", + unbanned_jokers = { + "j_luchador", + "j_matador", + "j_chicot", + }, reworked_tags = { "tag_investment", "tag_negative", diff --git a/ui/_common/background_grouping.lua b/ui/_common/background_grouping.lua deleted file mode 100644 index 2566be91c..000000000 --- a/ui/_common/background_grouping.lua +++ /dev/null @@ -1,21 +0,0 @@ -function MP.UI.BackgroundGrouping(text, nodes, config) - config = config or {} - config.text_scale = config.text_scale or 0.33 - return { - n = config.col and G.UIT.C or G.UIT.R, - config = { align = "cm", padding = 0.05, r = 0.1, colour = G.C.UI.TRANSPARENT_DARK }, - nodes = { - { n = G.UIT.R, config = { align = "cm" }, nodes = nodes }, - { - n = G.UIT.R, - config = { align = "cm", padding = 0.05 }, - nodes = { - { - n = G.UIT.T, - config = { text = text, colour = lighten(G.C.L_BLACK, 0.5), scale = config.text_scale }, - }, - }, - }, - }, - } -end diff --git a/ui/_common/disableable_button.lua b/ui/_common/disableable_button.lua deleted file mode 100644 index 9e423b6b6..000000000 --- a/ui/_common/disableable_button.lua +++ /dev/null @@ -1,17 +0,0 @@ -function MP.UI.Disableable_Button(args) - local enabled_table = args.enabled_ref_table or {} - local enabled = enabled_table[args.enabled_ref_value] - args.colour = args.colour or G.C.RED - args.text_colour = args.text_colour or G.C.UI.TEXT_LIGHT - args.disabled_text = args.disabled_text or args.label - args.label = not enabled and args.disabled_text or args.label - - local button_component = UIBox_button(args) - button_component.nodes[1].config.button = enabled and args.button or nil - button_component.nodes[1].config.hover = enabled - button_component.nodes[1].config.shadow = enabled - button_component.nodes[1].config.colour = enabled and args.colour or G.C.UI.BACKGROUND_INACTIVE - button_component.nodes[1].nodes[1].nodes[1].colour = enabled and args.text_colour or G.C.UI.TEXT_INACTIVE - button_component.nodes[1].nodes[1].nodes[1].shadow = enabled - return button_component -end diff --git a/ui/_common/disableable_option_cycle.lua b/ui/_common/disableable_option_cycle.lua deleted file mode 100644 index 9cff9d064..000000000 --- a/ui/_common/disableable_option_cycle.lua +++ /dev/null @@ -1,12 +0,0 @@ -function MP.UI.Disableable_Option_Cycle(args) - local enabled_table = args.enabled_ref_table or {} - local enabled = enabled_table[args.enabled_ref_value] - - if not enabled then - args.options = { args.options[args.current_option] } - args.current_option = 1 - end - - local option_component = create_option_cycle(args) - return option_component -end diff --git a/ui/_common/disableable_toggle.lua b/ui/_common/disableable_toggle.lua deleted file mode 100644 index 2d3cce604..000000000 --- a/ui/_common/disableable_toggle.lua +++ /dev/null @@ -1,12 +0,0 @@ -function MP.UI.Disableable_Toggle(args) - local enabled_table = args.enabled_ref_table or {} - local enabled = enabled_table[args.enabled_ref_value] - - local toggle_component = create_toggle(args) - toggle_component.nodes[2].nodes[1].nodes[1].config.id = args.id - toggle_component.nodes[2].nodes[1].nodes[1].config.button = enabled and "toggle_button" or nil - toggle_component.nodes[2].nodes[1].nodes[1].config.button_dist = enabled and 0.2 or nil - toggle_component.nodes[2].nodes[1].nodes[1].config.hover = enabled and true or false - toggle_component.nodes[2].nodes[1].nodes[1].config.toggle_callback = enabled and args.callback or nil - return toggle_component -end diff --git a/ui/_common/spacer.lua b/ui/_common/spacer.lua deleted file mode 100644 index bafe8b2b0..000000000 --- a/ui/_common/spacer.lua +++ /dev/null @@ -1,19 +0,0 @@ -function MP.UI.create_spacer(size, row) - size = size or 0.2 - - return row and { - n = G.UIT.R, - config = { - align = "cm", - minh = size, - }, - nodes = {}, - } or { - n = row and G.UIT.R or G.UIT.C, - config = { - align = "cm", - minw = size, - }, - nodes = {}, - } -end diff --git a/ui/game/blind_chip_sprite.lua b/ui/game/blind_chip_sprite.lua deleted file mode 100644 index 8b201b0c3..000000000 --- a/ui/game/blind_chip_sprite.lua +++ /dev/null @@ -1,26 +0,0 @@ -MP.UI.BlindChip = {} - -function MP.UI.BlindChip.custom(atlas, x, y) - local blind_chip = AnimatedSprite(0, 0, 1.4, 1.4, G.ANIMATION_ATLAS[atlas], { x = x, y = y }) - blind_chip:define_draw_steps({ - { shader = "dissolve", shadow_height = 0.05 }, - { shader = "dissolve" }, - }) - return blind_chip -end - -function MP.UI.BlindChip.small() - return MP.UI.BlindChip.custom("blind_chips", 0, 0) -end - -function MP.UI.BlindChip.big() - return MP.UI.BlindChip.custom("blind_chips", 0, 1) -end - -function MP.UI.BlindChip.random() - return MP.UI.BlindChip.custom("blind_chips", 0, 30) -end - -function MP.UI.BlindChip.nemesis() - return MP.UI.BlindChip.custom("mp_player_blind_col", 0, 22) -end diff --git a/ui/game/blind_choice.lua b/ui/game/blind_choice.lua deleted file mode 100644 index 72f04917c..000000000 --- a/ui/game/blind_choice.lua +++ /dev/null @@ -1,535 +0,0 @@ -local create_UIBox_blind_choice_ref = create_UIBox_blind_choice ----@diagnostic disable-next-line: lowercase-global -function create_UIBox_blind_choice(type, run_info) - -- Blind Raiser can be played through Multiplayer or the local Practice - -- ruleset runner. Practice has no lobby code, so MP.is_mp_or_ghost() is - -- false even though the Blind Raiser ruleset is active. In that case the - -- old code delegated to vanilla's UI and displayed the replacement Boss - -- multiplier instead of the stored physical-slot score x 2^N. - local blind_raiser_ui = MP.BLIND_RAISER - and MP.BLIND_RAISER.is_active - and MP.BLIND_RAISER.is_active() - if MP.is_mp_or_ghost() or blind_raiser_ui then - if not G.GAME.blind_on_deck then G.GAME.blind_on_deck = "Small" end - if not run_info then G.GAME.round_resets.blind_states[G.GAME.blind_on_deck] = "Select" end - - local disabled = false - type = type or "Small" - local nemesis = G.GAME.round_resets.blind_choices[type] == "bl_mp_nemesis" and true or false - local nemesis_blind_col = nemesis and MP.UTILS.get_nemesis_key() - - local blind_choice = { - config = G.P_BLINDS[G.GAME.round_resets.blind_choices[type]], - } - - local blind_atlas = "blind_chips" - local blind_pos = blind_choice.config.pos - if blind_choice.config and blind_choice.config.atlas then blind_atlas = blind_choice.config.atlas end - if nemesis then - blind_atlas = "mp_player_blind_col" - blind_pos = G.P_BLINDS[nemesis_blind_col].pos - end - - blind_choice.animation = AnimatedSprite(0, 0, 1.4, 1.4, G.ANIMATION_ATLAS[blind_atlas], blind_pos) - blind_choice.animation:define_draw_steps({ - { shader = "dissolve", shadow_height = 0.05 }, - { shader = "dissolve" }, - }) - local extras = nil - local stake_sprite = get_stake_sprite(G.GAME.stake or 1, 0.5) - - G.GAME.orbital_choices = G.GAME.orbital_choices or {} - G.GAME.orbital_choices[G.GAME.round_resets.ante] = G.GAME.orbital_choices[G.GAME.round_resets.ante] or {} - - if not G.GAME.orbital_choices[G.GAME.round_resets.ante][type] then - local _poker_hands = {} - if MP.should_use_the_order() then - _poker_hands = MP.sorted_hand_list() - else - for k, v in pairs(G.GAME.hands) do - if SMODS.is_poker_hand_visible(k) then _poker_hands[#_poker_hands + 1] = k end - end - end - - G.GAME.orbital_choices[G.GAME.round_resets.ante][type] = - pseudorandom_element(_poker_hands, pseudoseed("orbital")) - end - - if - G.GAME.round_resets.blind_choices[type] == "bl_mp_nemesis" or G.GAME.round_resets.pvp_blind_choices[type] - then - local dt1 = DynaText({ - string = { { string = localize("k_bl_life"), colour = G.C.FILTER } }, - colours = { G.C.BLACK }, - scale = 0.55, - silent = true, - pop_delay = 4.5, - shadow = true, - bump = true, - maxw = 3, - }) - local dt2 = DynaText({ - string = { { string = localize("k_bl_or"), colour = G.C.WHITE } }, - colours = { G.C.CHANCE }, - scale = 0.35, - silent = true, - pop_delay = 4.5, - shadow = true, - maxw = 3, - }) - local dt3 = DynaText({ - string = { { string = localize("k_bl_death"), colour = G.C.FILTER } }, - colours = { G.C.BLACK }, - scale = 0.55, - silent = true, - pop_delay = 4.5, - shadow = true, - bump = true, - maxw = 3, - }) - extras = { - n = G.UIT.R, - config = { align = "cm" }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm", padding = 0.07, r = 0.1, colour = { 0, 0, 0, 0.12 }, minw = 2.9 }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm" }, - nodes = { - { - n = G.UIT.O, - config = { object = dt1 }, - }, - }, - }, - { - n = G.UIT.R, - config = { align = "cm" }, - nodes = { - { n = G.UIT.O, config = { object = dt2 } }, - }, - }, - { - n = G.UIT.R, - config = { align = "cm" }, - nodes = { - { n = G.UIT.O, config = { object = dt3 } }, - }, - }, - }, - }, - }, - } - elseif type == "Small" then - extras = create_UIBox_blind_tag(type, run_info) - elseif type == "Big" then - extras = create_UIBox_blind_tag(type, run_info) - else - extras = nil - end - G.GAME.round_resets.blind_ante = G.GAME.round_resets.blind_ante or G.GAME.round_resets.ante - - local loc_target = localize({ - type = "raw_descriptions", - key = blind_choice.config.key, - set = "Blind", - vars = { - blind_choice.config.key == "bl_ox" - and localize(G.GAME.current_round.most_played_poker_hand, "poker_hands") - or "", - }, - }) - local loc_name - if G.GAME.round_resets.blind_choices[type] == "bl_mp_nemesis" then - if MP.GHOST.is_active() then - loc_name = MP.GHOST.get_nemesis_name() - else - -- Blind-select can be rebuilt during round-end events before a - -- lobby username is available (for example immediately after an - -- Investment Tag payout). Never pass nil to DynaText. - local lobby = MP.LOBBY or {} - local opponent = lobby.is_host and lobby.guest or lobby.host - loc_name = opponent and opponent.username - end - loc_name = loc_name - or localize({ type = "name_text", key = "bl_mp_nemesis", set = "Blind" }) - or localize("k_nemesis_timer") - or "Nemesis" - else - loc_name = localize({ type = "name_text", key = blind_choice.config.key, set = "Blind" }) - or blind_choice.config.name - or "Blind" - end - - local blind_col = get_blind_main_colour(type) - - ---@type string|number - local blind_amt = get_blind_amount(G.GAME.round_resets.blind_ante) - * blind_choice.config.mult - * G.GAME.starting_params.ante_scaling - - if MP.BLIND_RAISER and MP.BLIND_RAISER.preview_score_for_slot then - -- Use the stored score for this physical Small/Big slot. The replacement - -- Boss multiplier is only a fallback for non-upgraded Blinds. - blind_amt = MP.BLIND_RAISER.preview_score_for_slot(type, blind_amt) - elseif MP.BLIND_RAISER and MP.BLIND_RAISER.score_for_slot then - blind_amt = MP.BLIND_RAISER.score_for_slot(type, blind_amt, G.GAME.round_resets.blind_ante) - end - - if - G.GAME.round_resets.blind_choices[type] == "bl_mp_nemesis" or G.GAME.round_resets.pvp_blind_choices[type] - then - blind_amt = "????" - end - - local text_table = loc_target - - if G.GAME.round_resets.pvp_blind_choices[type] then text_table[#text_table + 1] = localize("k_bl_mostchips") end - - local blind_state = G.GAME.round_resets.blind_states[type] - local _reward = true - if G.GAME.modifiers.no_blind_reward and G.GAME.modifiers.no_blind_reward[type] then - ---@diagnostic disable-next-line: cast-local-type - _reward = nil - end - if blind_state == "Select" then blind_state = "Current" end - local run_info_colour = run_info - and ( - blind_state == "Defeated" and G.C.GREY - or blind_state == "Skipped" and G.C.BLUE - or blind_state == "Upcoming" and G.C.ORANGE - or blind_state == "Current" and G.C.RED - or G.C.GOLD - ) - - local t = { - n = G.UIT.R, - config = { - id = type, - align = "tm", - func = "blind_choice_handler", - minh = not run_info and 10 or nil, - ref_table = { deck = nil, run_info = run_info }, - r = 0.1, - padding = 0.05, - }, - nodes = { - { - n = G.UIT.R, - config = { - align = "cm", - colour = mix_colours(G.C.BLACK, G.C.L_BLACK, 0.5), - r = 0.1, - outline = 1, - outline_colour = G.C.L_BLACK, - }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm", padding = 0.2 }, - nodes = { - not run_info and { - n = G.UIT.R, - config = { - id = "select_blind_button", - align = "cm", - ref_table = blind_choice.config, - colour = disabled and G.C.UI.BACKGROUND_INACTIVE or G.C.ORANGE, - minh = 0.6, - minw = 2.7, - padding = 0.07, - r = 0.1, - shadow = true, - hover = true, - one_press = true, - func = ( - not MP.GHOST.is_active() - and (G.GAME.round_resets.blind_choices[type] == "bl_mp_nemesis" - or G.GAME.round_resets.pvp_blind_choices[type]) - ) - and "pvp_ready_button" - or nil, - button = "select_blind", - }, - nodes = { - { - n = G.UIT.T, - config = { - ref_table = G.GAME.round_resets.loc_blind_states, - ref_value = type, - scale = 0.45, - colour = disabled and G.C.UI.TEXT_INACTIVE or G.C.UI.TEXT_LIGHT, - shadow = not disabled, - }, - }, - }, - } or { - n = G.UIT.R, - config = { - id = "select_blind_button", - align = "cm", - ref_table = blind_choice.config, - colour = run_info_colour, - minh = 0.6, - minw = 2.7, - padding = 0.07, - r = 0.1, - emboss = 0.08, - }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize(blind_state, "blind_states"), - scale = 0.45, - colour = G.C.UI.TEXT_LIGHT, - shadow = true, - }, - }, - }, - }, - }, - }, - { - n = G.UIT.R, - config = { id = "blind_name", align = "cm", padding = 0.07 }, - nodes = { - { - n = G.UIT.R, - config = { - align = "cm", - r = 0.1, - outline = 1, - outline_colour = blind_col, - colour = darken(blind_col, 0.3), - minw = 2.9, - emboss = 0.1, - padding = 0.07, - line_emboss = 1, - }, - nodes = { - { - n = G.UIT.O, - config = { - object = DynaText({ - string = loc_name, - colours = { disabled and G.C.UI.TEXT_INACTIVE or G.C.WHITE }, - shadow = not disabled, - float = not disabled, - y_offset = -4, - scale = 0.45, - maxw = 2.8, - }), - }, - }, - }, - }, - }, - }, - { - n = G.UIT.R, - config = { align = "cm", padding = 0.05 }, - nodes = { - { - n = G.UIT.R, - config = { id = "blind_desc", align = "cm", padding = 0.05 }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm" }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm", minh = 1.5 }, - nodes = { - { n = G.UIT.O, config = { object = blind_choice.animation } }, - }, - }, - text_table and text_table[1] and { - n = G.UIT.R, - config = { - align = "cm", - minh = 0.7, - padding = 0.05, - minw = 2.9, - }, - nodes = { - text_table[1] - and { - n = G.UIT.R, - config = { align = "cm", maxw = 2.8 }, - nodes = { - { - n = G.UIT.T, - config = { - id = blind_choice.config.key, - ref_table = { val = "" }, - ref_value = "val", - scale = 0.32, - colour = disabled - and G.C.UI.TEXT_INACTIVE - or G.C.WHITE, - shadow = not disabled, - func = "HUD_blind_debuff_prefix", - }, - }, - { - n = G.UIT.T, - config = { - text = text_table[1] or "-", - scale = 0.32, - colour = disabled - and G.C.UI.TEXT_INACTIVE - or G.C.WHITE, - shadow = not disabled, - }, - }, - }, - } - or nil, - text_table[2] and { - n = G.UIT.R, - config = { align = "cm", maxw = 2.8 }, - nodes = { - { - n = G.UIT.T, - config = { - text = text_table[2] or "-", - scale = 0.32, - colour = disabled and G.C.UI.TEXT_INACTIVE - or G.C.WHITE, - shadow = not disabled, - }, - }, - }, - } or nil, - text_table[3] and { - n = G.UIT.R, - config = { align = "cm", maxw = 2.8 }, - nodes = { - { - n = G.UIT.T, - config = { - text = text_table[3] or "-", - scale = 0.32, - colour = disabled and G.C.UI.TEXT_INACTIVE - or G.C.WHITE, - shadow = not disabled, - }, - }, - }, - } or nil, - }, - } or nil, - }, - }, - { - n = G.UIT.R, - config = { - align = "cm", - r = 0.1, - padding = 0.05, - minw = 3.1, - colour = G.C.BLACK, - emboss = 0.05, - }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm", maxw = 3 }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("ph_blind_score_at_least"), - scale = 0.3, - colour = disabled and G.C.UI.TEXT_INACTIVE or G.C.WHITE, - shadow = not disabled, - }, - }, - }, - }, - { - n = G.UIT.R, - config = { align = "cm", minh = 0.6 }, - nodes = { - { - n = G.UIT.O, - config = { - w = 0.5, - h = 0.5, - colour = G.C.BLUE, - object = stake_sprite, - hover = true, - can_collide = false, - }, - }, - { n = G.UIT.B, config = { h = 0.1, w = 0.1 } }, - { - n = G.UIT.T, - config = { - text = number_format(blind_amt), - scale = score_number_scale(0.9, blind_amt), - colour = disabled and G.C.UI.TEXT_INACTIVE or G.C.RED, - shadow = not disabled, - }, - }, - }, - }, - _reward - and { - n = G.UIT.R, - config = { align = "cm" }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("ph_blind_reward"), - scale = 0.35, - colour = disabled and G.C.UI.TEXT_INACTIVE - or G.C.WHITE, - shadow = not disabled, - }, - }, - { - n = G.UIT.T, - config = { - text = string.rep( - ---@diagnostic disable-next-line: param-type-mismatch - localize("$"), - blind_choice.config.dollars - ) .. "+", - scale = 0.35, - colour = disabled and G.C.UI.TEXT_INACTIVE - or G.C.MONEY, - shadow = not disabled, - }, - }, - }, - } - or nil, - }, - }, - }, - }, - }, - }, - }, - }, - { - n = G.UIT.R, - config = { id = "blind_extras", align = "cm" }, - nodes = { - extras, - }, - }, - }, - } - return t - else - return create_UIBox_blind_choice_ref(type, run_info) - end -end diff --git a/ui/game/blind_hud.lua b/ui/game/blind_hud.lua deleted file mode 100644 index e0710a8a3..000000000 --- a/ui/game/blind_hud.lua +++ /dev/null @@ -1,231 +0,0 @@ -function MP.UI.update_blind_HUD(blind, reset, silent) - if MP.is_mp_or_ghost() then - -- Prepare blind name - local blind_name_string - if MP.GHOST.is_active() then - blind_name_string = MP.GHOST.get_blind_name_ui() - else - blind_name_string = { - { - ref_table = MP.LOBBY.is_host and MP.LOBBY.guest or MP.LOBBY.host, - ref_value = "username", - }, - } - end - -- Setup blind name display - local name_element = G.HUD_blind:get_UIE_by_ID("HUD_blind_name") - name_element.config.object.config.string = { - { - ref_table = MP.LOBBY.is_host and MP.LOBBY.guest or MP.LOBBY.host, - ref_value = "username", - }, - } - name_element.config.object.config.old_maxw = name_element.config.object.config.maxw - name_element.config.object.config.mp_maxw = true - name_element.config.object.config.maxw = 4.5 - name_element.config.object.scale = name_element.config.object.config.scale - name_element.config.object:update_text(true) - if name_element.config.object.config.maxw then - name_element.config.object.scale = name_element.config.object.scale * math.min(1, name_element.config.object.config.maxw/name_element.config.object.config.W) - end - name_element.config.object:update_text(true) - name_element.states.visible = false - -- Setup enemy score text - G.HUD_blind:get_UIE_by_ID("HUD_blind_count").config.ref_table = MP.GAME.enemy - G.HUD_blind:get_UIE_by_ID("HUD_blind_count").config.ref_value = "score_text" - G.HUD_blind:get_UIE_by_ID("HUD_blind_count").config.func = "multiplayer_blind_chip_UI_scale" - -- Setup labels - -- Casual balala UI experience right here - G.HUD_blind:get_UIE_by_ID("HUD_blind").children[2].children[2].children[2].children[1].children[1].config.text = - localize("k_enemy_score") - G.HUD_blind:get_UIE_by_ID("HUD_blind").children[2].children[2].children[2].children[3].children[1].config.text = - localize("k_enemy_hands") - -- Setup enemy hands - G.HUD_blind:get_UIE_by_ID("dollars_to_be_earned").parent.parent.states.visible = false - G.HUD_blind:get_UIE_by_ID("dollars_to_be_earned").config.object.config.string = - { { ref_table = MP.GAME.enemy, ref_value = "hands_text" } } - G.HUD_blind:get_UIE_by_ID("dollars_to_be_earned").config.object:update_text() - - G.HUD_blind.alignment.offset.y = 0 - G.E_MANAGER:add_event(Event({ - trigger = 'after', - delay = 0.15, - blockable = false, - func = (function() - local self = G.GAME.blind - - if self.config.blind.key == "bl_mp_nemesis" then - -- Setup blind atlas and pos - self.children.animatedSprite.atlas = G.ANIMATION_ATLAS["mp_player_blind_col"] - local nemesis_blind_col = MP.UTILS.get_nemesis_key() - self.children.animatedSprite:set_sprite_pos(G.P_BLINDS[nemesis_blind_col].pos) - end - - G.HUD_blind:get_UIE_by_ID("HUD_blind_name").states.visible = true - G.HUD_blind:get_UIE_by_ID("dollars_to_be_earned").parent.parent.states.visible = true - G.HUD_blind:get_UIE_by_ID("dollars_to_be_earned").config.object:pop_in(0) - G.HUD_blind:get_UIE_by_ID("HUD_blind_name").config.object:pop_in(0) - G.HUD_blind:get_UIE_by_ID("HUD_blind_count"):juice_up() - self.dissolve = 0 - self.blind_set = true - G.ROOM.jiggle = G.ROOM.jiggle + 3 - if not reset and not silent then - self:juice_up() - if blind then play_sound('chips1', math.random()*0.1 + 0.55, 0.42);play_sound('gold_seal', math.random()*0.1 + 1.85, 0.26)--play_sound('cancel') - end - end - return true - end) - })) - end -end - -function MP.UI.reset_blind_HUD() - if MP.is_mp_or_ghost() then - local name_element = G.HUD_blind:get_UIE_by_ID("HUD_blind_name") - name_element.config.object.config.string = - { { ref_table = G.GAME.blind, ref_value = "loc_name" } } - if name_element.config.object.config.mp_maxw then - name_element.config.object.config.maxw = name_element.config.object.config.old_maxw - name_element.config.object.config.old_maxw = nil - name_element.config.object.scale = name_element.config.object.config.scale - name_element.config.object:update_text(true) - if name_element.config.object.config.maxw then - name_element.config.object.scale = name_element.config.object.scale * math.min(1, name_element.config.object.config.maxw/name_element.config.object.config.W) - end - name_element.config.object:update_text(true) - end - G.HUD_blind:get_UIE_by_ID("HUD_blind_count").config.ref_table = G.GAME.blind - G.HUD_blind:get_UIE_by_ID("HUD_blind_count").config.ref_value = "chip_text" - G.HUD_blind:get_UIE_by_ID("HUD_blind").children[2].children[2].children[2].children[1].children[1].config.text = - localize("ph_blind_score_at_least") - G.HUD_blind:get_UIE_by_ID("HUD_blind").children[2].children[2].children[2].children[3].children[1].config.text = - localize("ph_blind_reward") - G.HUD_blind:get_UIE_by_ID("dollars_to_be_earned").config.object.config.string = - { { ref_table = G.GAME.current_round, ref_value = "dollars_to_be_earned" } } - G.HUD_blind:get_UIE_by_ID("dollars_to_be_earned").config.object:update_text() - end -end - --- Contains function overrides (monkey-patches) for blind-related functionality --- Overrides functions like get_blind_main_colour, Blind:change_colour, Blind:set_blind, etc. - -local get_blind_main_colourref = get_blind_main_colour -function get_blind_main_colour(type) -- handles ui colour stuff - local nemesis = G.GAME.round_resets.blind_choices[type] == "bl_mp_nemesis" or type == "bl_mp_nemesis" - if nemesis then type = MP.UTILS.get_nemesis_key() end - return get_blind_main_colourref(type) -end - -local blind_change_colourref = Blind.change_colour -function Blind:change_colour(blind_col) -- ensures that small/big blinds have proper colouration - local small = false - if self.config.blind.key == "bl_mp_nemesis" then - local blind_key = MP.UTILS.get_nemesis_key() - if blind_key == "bl_small" or blind_key == "bl_big" then small = true end - end - local boss = self.boss - if small then self.boss = false end - blind_change_colourref(self, blind_col) - self.boss = boss -end - -local blind_set_blindref = Blind.set_blind -function Blind:set_blind(blind, reset, silent) -- hacking in proper spirals, far from good but whatever - blind_set_blindref(self, blind, reset, silent) - if (blind and blind.key == "bl_mp_nemesis") or (self and self.name and self.name == "bl_mp_nemesis") then -- this shouldn't break and this fix shouldn't work - local boss = false - local showdown = false - local blind_key = MP.UTILS.get_nemesis_key() - if G.P_BLINDS[blind_key].boss then - boss = true - if G.P_BLINDS[blind_key].boss.showdown then - showdown = true - end - end - G.ARGS.spin.real = (G.SETTINGS.reduced_motion and 0 or 1) * (boss and (showdown and 0.5 or 0.25) or 0) - end -end - -local ease_background_colour_blindref = ease_background_colour_blind -function ease_background_colour_blind(state, blind_override) -- handles background - local blindname = ( - (blind_override or (G.GAME.blind and G.GAME.blind.name ~= "" and G.GAME.blind.name)) or "Small Blind" - ) - local blindname = (blindname == "" and "Small Blind" or blindname) - if blindname == "bl_mp_nemesis" then - blind_override = MP.UTILS.get_nemesis_key() - for k, v in pairs(G.P_BLINDS) do - if blind_override == k then blind_override = v.name end - end - end - return ease_background_colour_blindref(state, blind_override) -end - -local add_round_eval_rowref = add_round_eval_row -function add_round_eval_row(config) -- if i could post a skull emoji i would, wtf is this (cashout screen) - if config.name == "blind1" and G.GAME.blind.config.blind.key == "bl_mp_nemesis" then - G.GAME.blind.chip_text = MP.INSANE_INT.to_string(MP.GAME.enemy.score) - - G.P_BLINDS["bl_mp_nemesis"].atlas = "mp_player_blind_col" - G.GAME.blind.pos = G.P_BLINDS[MP.UTILS.get_nemesis_key()].pos -- this one is getting reset so no need to bother - add_round_eval_rowref(config) - G.E_MANAGER:add_event(Event({ - trigger = "before", - delay = 0.0, - func = function() - G.P_BLINDS["bl_mp_nemesis"].atlas = "mp_player_blind_chip" -- lmao - return true - end, - })) - else - add_round_eval_rowref(config) - end -end - -local blind_defeat_ref = Blind.defeat -function Blind:defeat(silent) - blind_defeat_ref(self, silent) - if MP.is_mp_or_ghost() and MP.UI.reset_blind_HUD then MP.UI.reset_blind_HUD() end -end - -local blind_disable_ref = Blind.disable -function Blind:disable() - if MP.is_pvp_boss() and not (G.GAME.blind and G.GAME.blind.name == "Verdant Leaf") then -- hackfix to make verdant work properly - return - end - blind_disable_ref(self) -end - -G.FUNCS.multiplayer_blind_chip_UI_scale = function(e) - MP.GAME.enemy.hands_text = tostring(MP.GAME.enemy.hands) - - -- Hide the opponent's score until we have played a hand this PvP blind, so - -- a player can't watch the enemy score before committing their own hand. - -- (The server also withholds the score, this is the matching display.) - -- Gated by the hide_score_until_played lobby option (on by default only on - -- standard-layer rulesets; host-toggleable in non-forcing lobbies). - if - MP.LOBBY.config.hide_score_until_played - and MP.is_pvp_boss() - and G.GAME.current_round - and G.GAME.current_round.hands_played == 0 - then - MP.GAME.enemy.score_text = "???" - return - end - local new_score_text = MP.INSANE_INT.to_string(MP.GAME.enemy.score) - if G.GAME.blind and MP.GAME.enemy.score and MP.GAME.enemy.score_text ~= new_score_text then - if not MP.INSANE_INT.greater_than(MP.GAME.enemy.score, MP.INSANE_INT.create(0, G.E_SWITCH_POINT, 0)) then - e.config.scale = scale_number(MP.GAME.enemy.score.coeffiocient, 0.7, 100000) - end - MP.GAME.enemy.score_text = new_score_text - end -end - -function MP.UI.juice_up_pvp_hud() - if MP.is_pvp_boss() then - G.HUD_blind:get_UIE_by_ID("HUD_blind_count"):juice_up() - G.HUD_blind:get_UIE_by_ID("dollars_to_be_earned"):juice_up() - end -end diff --git a/ui/game/blind_raiser.lua b/ui/game/blind_raiser.lua deleted file mode 100644 index da7afa175..000000000 --- a/ui/game/blind_raiser.lua +++ /dev/null @@ -1,961 +0,0 @@ -------------------------------------------------------------------- --- EXPERIMENTAL (BLIND RAISER) --- --- Ports the Blind Raiser feature from Handsome Devils into a --- Multiplayer ruleset. While the ruleset is active, the current --- Small or Big Blind may be upgraded into a random non-Showdown --- Boss Blind. The displayed Skip Tag is granted immediately, but --- the Blind slot itself is not skipped. --- --- This implementation deliberately keeps its boss-use bookkeeping --- separate from vanilla's G.GAME.bosses_used. A player choosing to --- upgrade a Blind therefore does not alter future normal Boss rolls, --- preserving Multiplayer's shared-seed behaviour between opponents --- who make different Blind Raiser choices. -------------------------------------------------------------------- - -MP.BLIND_RAISER = MP.BLIND_RAISER or {} -local BR = MP.BLIND_RAISER - -local RULESET_KEY = "ruleset_mp_experimental_blind_raiser" - -local function blind_raiser_active() - return MP - and MP.get_active_ruleset - and MP.get_active_ruleset() == RULESET_KEY -end - -BR.is_active = blind_raiser_active - --- Lovely progression patches use the physical Blind slot while Blind Raiser --- is active, but preserve vanilla's original condition in every other ruleset. -function BR.slot_matches(slot, vanilla_result) - if blind_raiser_active() then - return G and G.GAME and G.GAME.blind_on_deck == slot - end - return vanilla_result -end - -local function current_ante() - return G - and G.GAME - and G.GAME.round_resets - and G.GAME.round_resets.ante - or 0 -end - --- blind_ante is the Ante attached to the physical Blind-select row. It is the --- authoritative value for Blind Raiser records because a replacement Boss --- definition must never make a Small/Big slot inherit Boss Ante progression. -local function current_slot_ante() - local round_resets = G and G.GAME and G.GAME.round_resets - return tonumber(round_resets and round_resets.blind_ante) - or tonumber(round_resets and round_resets.ante) - or 0 -end - -local function upgrade_key(blind_choice) - return tostring(current_slot_ante()) .. ":" .. tostring(blind_choice) -end - -local function upgraded_blinds() - if not (G and G.GAME) then return {} end - G.GAME.mp_blind_raiser_upgraded = G.GAME.mp_blind_raiser_upgraded or {} - return G.GAME.mp_blind_raiser_upgraded -end - -local function replacement_records() - if not (G and G.GAME) then return {} end - G.GAME.mp_blind_raiser_replacements = G.GAME.mp_blind_raiser_replacements or {} - return G.GAME.mp_blind_raiser_replacements -end - -local function raiser_bosses_used() - if not (G and G.GAME) then return {} end - G.GAME.mp_blind_raiser_bosses_used = G.GAME.mp_blind_raiser_bosses_used or {} - return G.GAME.mp_blind_raiser_bosses_used -end - -local function normalize_blind_choice(blind_choice) - if type(blind_choice) ~= "string" then return nil end - local normalized = blind_choice:lower() - if normalized == "small" then return "Small" end - if normalized == "big" then return "Big" end - if normalized == "boss" then return "Boss" end - return nil -end - -local function record_key(ante, blind_choice) - return tostring(ante) .. ":" .. tostring(blind_choice) -end - -local function blind_key_from_definition(blind) - if type(blind) ~= "table" then return nil end - return blind.key - or (blind.config and blind.config.key) - or (blind.config and blind.config.blind and blind.config.blind.key) -end - -local function current_choice_key(blind_choice) - return G - and G.GAME - and G.GAME.round_resets - and G.GAME.round_resets.blind_choices - and G.GAME.round_resets.blind_choices[blind_choice] - or nil -end - -local function replacement_record(blind_choice, ante, expected_boss) - blind_choice = normalize_blind_choice(blind_choice) - if blind_choice ~= "Small" and blind_choice ~= "Big" then return nil end - - local records = replacement_records() - local candidate_antes = {} - local seen_antes = {} - local function add_ante(value) - value = tonumber(value) - if value and not seen_antes[value] then - seen_antes[value] = true - candidate_antes[#candidate_antes + 1] = value - end - end - - add_ante(ante) - add_ante(G and G.GAME and G.GAME.round_resets and G.GAME.round_resets.blind_ante) - add_ante(current_ante()) - - local selected_boss = expected_boss or current_choice_key(blind_choice) - for _, candidate_ante in ipairs(candidate_antes) do - local record = records[record_key(candidate_ante, blind_choice)] - -- The physical slot + Ante is the primary identity. Do not reject its - -- record merely because blind_choices is between animation states; doing - -- so falls back to the replacement Boss multiplier in the select preview. - if type(record) == "table" then return record end - end - - -- Save migration and timing fallback: during select/start transitions, - -- round_resets.ante, blind_ante and blind_on_deck can briefly disagree. - -- Match the replacement Boss itself so the correct per-upgrade exponent is - -- still used rather than falling back to the Boss Blind's normal multiplier. - local best_record = nil - local best_ante = -math.huge - for key, record in pairs(records) do - if type(record) == "table" then - local key_ante, key_choice = key:match("^(-?%d+):([%a_]+)$") - local record_choice = normalize_blind_choice(record.blind_choice or key_choice) - local record_ante = tonumber(record.ante) or tonumber(key_ante) - if record_choice == blind_choice - and (not selected_boss or not record.boss or record.boss == selected_boss) - and record_ante - and record_ante >= best_ante - then - best_record = record - best_ante = record_ante - end - end - end - return best_record -end - -function BR.regular_score_for_slot(blind_choice, ante) - blind_choice = normalize_blind_choice(blind_choice) - if blind_choice ~= "Small" and blind_choice ~= "Big" then return nil end - if not (G and G.GAME and G.P_BLINDS and type(get_blind_amount) == "function") then return nil end - - local base_blind = G.P_BLINDS["bl_" .. blind_choice:lower()] - if not (base_blind and base_blind.mult) then return nil end - - local score_ante = tonumber(ante) or current_slot_ante() - local ante_scaling = G.GAME.starting_params and G.GAME.starting_params.ante_scaling or 1 - return get_blind_amount(score_ante) * base_blind.mult * ante_scaling -end - -function BR.upgrade_count() - return G and G.GAME - and math.max(0, tonumber(G.GAME.mp_blind_raiser_upgrade_count) or 0) - or 0 -end - -function BR.next_upgrade_score_for_slot(blind_choice, ante) - if not blind_raiser_active() then return nil end - blind_choice = normalize_blind_choice(blind_choice) - if blind_choice ~= "Small" and blind_choice ~= "Big" then return nil end - - local base_score = BR.regular_score_for_slot(blind_choice, ante or current_slot_ante()) - if not base_score then return nil end - return base_score * (2 ^ (BR.upgrade_count() + 1)) -end - -local function dictionary_text(key, vars, fallback) - local text = localize(key) - if type(text) == "table" then text = text[1] end - if type(text) ~= "string" or text == "" or text == key then text = fallback end - for i, value in ipairs(vars or {}) do - text = text:gsub("#" .. tostring(i) .. "#", tostring(value)) - end - return text -end - -function BR.upgrade_button_tooltip(blind_choice) - local upgrade_count = BR.upgrade_count() - local next_score = BR.next_upgrade_score_for_slot(blind_choice, current_slot_ante()) - local formatted_score = next_score and number_format(next_score) or "?" - - return { - title = dictionary_text("mp_blind_raiser_tooltip_title", nil, "Blind Raiser"), - text = { - dictionary_text( - "mp_blind_raiser_tooltip_upgrades", - { upgrade_count }, - "Blind upgrades this game: " .. tostring(upgrade_count) - ), - dictionary_text( - "mp_blind_raiser_tooltip_score", - { formatted_score }, - "Score if upgraded: " .. tostring(formatted_score) - ), - }, - } -end - -local function upgrade_index_for(blind_choice, ante, expected_boss) - local record = replacement_record(blind_choice, ante, expected_boss) - if type(record) ~= "table" then return nil, nil end - - local index = tonumber(record.upgrade_index) - if not index or index < 1 then - -- Migration for saves created before escalating score requirements were - -- added. Prefer the stored run-wide count, then fall back to the first - -- upgrade so old saves remain playable. - index = tonumber(G.GAME.mp_blind_raiser_upgrade_count) or 1 - record.upgrade_index = math.max(1, index) - end - return math.max(1, index), record -end - -local function score_from_record(blind_choice, ante, record, upgrade_index) - local base_score = tonumber(record and record.base_score) - if not base_score then - base_score = BR.regular_score_for_slot( - blind_choice, - (record and tonumber(record.ante)) or ante - ) - if record and base_score then record.base_score = base_score end - end - if not base_score then return nil end - - local multiplier = 2 ^ upgrade_index - if record then - record.score_multiplier = multiplier - record.score_chips = base_score * multiplier - end - return base_score * multiplier -end - -function BR.score_for_slot(blind_choice, vanilla_amount, ante, expected_boss) - if not blind_raiser_active() then return vanilla_amount end - blind_choice = normalize_blind_choice(blind_choice) - if blind_choice ~= "Small" and blind_choice ~= "Big" then return vanilla_amount end - - local upgrade_index, record = upgrade_index_for(blind_choice, ante, expected_boss) - if not upgrade_index then return vanilla_amount end - return score_from_record(blind_choice, ante, record, upgrade_index) or vanilla_amount -end - --- Blind-select UI must use the score saved for the physical slot, never the --- replacement Boss definition's mult. This direct path deliberately ignores --- the transient blind_choices value while the old UIBox is being replaced. -function BR.preview_score_for_slot(blind_choice, vanilla_amount) - if not blind_raiser_active() then return vanilla_amount end - blind_choice = normalize_blind_choice(blind_choice) - if blind_choice ~= "Small" and blind_choice ~= "Big" then return vanilla_amount end - - local record = replacement_record(blind_choice, current_slot_ante()) - if type(record) ~= "table" then return vanilla_amount end - local index = math.max(1, tonumber(record.upgrade_index) or 1) - return score_from_record(blind_choice, record.ante or current_slot_ante(), record, index) or vanilla_amount -end - -function BR.score_for_blind(blind, preferred_choice, vanilla_amount, ante) - if not blind_raiser_active() then return vanilla_amount end - local blind_key = blind_key_from_definition(blind) - local blind_choice = normalize_blind_choice(preferred_choice) - - -- The replacement Boss key is the strongest identity while Blind:set_blind - -- is running because blind_on_deck can briefly point at the next slot. If - -- both rows somehow share the same Boss, retain the preferred physical slot. - local matching_choices = {} - if blind_key then - for _, candidate in ipairs({ "Small", "Big" }) do - if current_choice_key(candidate) == blind_key - and replacement_record(candidate, ante, blind_key) - then - matching_choices[#matching_choices + 1] = candidate - end - end - end - if #matching_choices == 1 then - blind_choice = matching_choices[1] - elseif not (blind_choice and replacement_record(blind_choice, ante)) and #matching_choices > 0 then - blind_choice = matching_choices[1] - end - - return BR.score_for_slot(blind_choice, vanilla_amount, ante, blind_key) -end - -local function parse_upgrade_key(key) - if type(key) ~= "string" then return nil, nil end - local ante, blind_choice = key:match("^(-?%d+):([%a_]+)$") - return tonumber(ante), blind_choice -end - -local function blind_state(blind_choice) - return G - and G.GAME - and G.GAME.round_resets - and G.GAME.round_resets.blind_states - and G.GAME.round_resets.blind_states[blind_choice] -end - -local function blind_is_finished(blind_choice) - local state = blind_state(blind_choice) - return state == "Defeated" or state == "Skipped" -end - -local function blind_was_upgraded(blind_choice) - return upgraded_blinds()[upgrade_key(blind_choice)] == true -end - -local function blind_is_current(blind_choice) - if not blind_raiser_active() or blind_is_finished(blind_choice) then return false end - - -- Steamodded beta-1620a advances the selectable slot by changing its - -- state to Select. blind_on_deck can lag during the Skip animation. - local state = blind_state(blind_choice) - if state == "Select" then return true end - - -- Defensive fallback for modded Blind-select screens that initialize the - -- state table after constructing the UI. - return state == nil - and G - and G.GAME - and G.GAME.blind_on_deck == blind_choice -end - -local function can_upgrade(blind_choice) - return (blind_choice == "Small" or blind_choice == "Big") - and blind_is_current(blind_choice) - and not blind_was_upgraded(blind_choice) -end - -------------------------------------------------------------------- --- Deterministic non-Showdown Boss selection -------------------------------------------------------------------- - -local function blind_is_in_pool(blind) - if type(blind.in_pool) ~= "function" then return true end - local ok, result = pcall(blind.in_pool, blind) - return ok and result ~= false -end - -local function boss_is_valid(key) - local blind = key and G.P_BLINDS and G.P_BLINDS[key] - if key == "bl_mp_nemesis" then return false end - if not (blind and blind.boss) then return false end - if blind.boss.showdown then return false end - if G.GAME.banned_keys and G.GAME.banned_keys[key] then return false end - return true -end - -local function choose_with_vanilla_boss_picker() - if type(get_new_boss) ~= "function" then return nil end - - -- Let vanilla/SMODS decide ante eligibility and compatibility-pool rules, - -- but evaluate the roll against a temporary usage table. This retains the - -- exact normal Boss-selection semantics without allowing an optional Blind - -- Raiser choice to alter future shared-seed Boss rolls. - local original_uses = G.GAME.bosses_used - local working_uses = {} - for key, uses in pairs(original_uses or {}) do - working_uses[key] = uses - end - for key, uses in pairs(raiser_bosses_used()) do - working_uses[key] = (working_uses[key] or 0) + uses - end - G.GAME.bosses_used = working_uses - - -- get_new_boss advances the keyed pseudorandom stream it uses. Isolate that - -- state too, otherwise one player pressing Upgrade Blind would change later - -- normal Boss rolls while an opponent who did not upgrade keeps the original - -- stream. The temporary table may be freely mutated by vanilla or SMODS. - local original_pseudorandom = G.GAME.pseudorandom - local working_pseudorandom = {} - for key, value in pairs(original_pseudorandom or {}) do - if type(value) == "table" then - local nested = {} - for nested_key, nested_value in pairs(value) do - nested[nested_key] = nested_value - end - working_pseudorandom[key] = nested - else - working_pseudorandom[key] = value - end - end - G.GAME.pseudorandom = working_pseudorandom - - -- On a Showdown Ante, vanilla would intentionally return a final Boss. - -- Temporarily move win_ante beyond the current Ante so an upgraded Small - -- or Big slot always receives an ordinary, non-Showdown Boss. - local original_win_ante = G.GAME.win_ante - if type(original_win_ante) == "number" then - G.GAME.win_ante = math.max(original_win_ante + 1, current_ante() + 1) - end - - local ok, boss = pcall(get_new_boss) - G.GAME.win_ante = original_win_ante - G.GAME.bosses_used = original_uses - G.GAME.pseudorandom = original_pseudorandom - - if not ok then - if sendWarnMessage then - sendWarnMessage("Blind Raiser Boss selection failed: " .. tostring(boss), "MULTIPLAYER") - end - return nil - end - return boss_is_valid(boss) and boss or nil -end - -local function choose_fallback_boss(blind_choice) - local candidates = {} - for key, blind in pairs(G.P_BLINDS or {}) do - if boss_is_valid(key) and blind_is_in_pool(blind) then - candidates[#candidates + 1] = key - end - end - table.sort(candidates) - if #candidates == 0 then return nil end - - local base_uses = G.GAME.bosses_used or {} - local extra_uses = raiser_bosses_used() - local minimum_uses = nil - for _, key in ipairs(candidates) do - local uses = (base_uses[key] or 0) + (extra_uses[key] or 0) - if minimum_uses == nil or uses < minimum_uses then minimum_uses = uses end - end - - local filtered = {} - for _, key in ipairs(candidates) do - local uses = (base_uses[key] or 0) + (extra_uses[key] or 0) - if uses == minimum_uses then filtered[#filtered + 1] = key end - end - - return pseudorandom_element( - filtered, - pseudoseed("mp_blind_raiser_" .. tostring(current_ante()) .. "_" .. tostring(blind_choice)) - ) -end - -function BR.choose_boss(blind_choice) - if not (G and G.GAME and G.P_BLINDS) then return nil end - return choose_with_vanilla_boss_picker() or choose_fallback_boss(blind_choice) -end - -------------------------------------------------------------------- --- Ante transition cleanup -------------------------------------------------------------------- - -function BR.restore_stale_slots() - if not blind_raiser_active() then return end - if not (G and G.GAME and G.GAME.round_resets and G.GAME.round_resets.blind_choices) then return end - - local ante = current_ante() - local choices = G.GAME.round_resets.blind_choices - local upgrades = upgraded_blinds() - local records = replacement_records() - - local stale_record_keys = {} - for key, record in pairs(records) do - local key_ante, key_choice = parse_upgrade_key(key) - local blind_choice = type(record) == "table" and record.blind_choice or key_choice - local record_ante = type(record) == "table" and tonumber(record.ante) or key_ante - - if record_ante and record_ante ~= ante - and (blind_choice == "Small" or blind_choice == "Big") - then - if type(record) == "table" and choices[blind_choice] == record.boss then - choices[blind_choice] = record.original or ("bl_" .. blind_choice:lower()) - end - stale_record_keys[#stale_record_keys + 1] = key - end - end - for _, key in ipairs(stale_record_keys) do - records[key] = nil - end - - -- Migration/failsafe for saves from a partially applied build: a stale - -- per-Ante lock on a Boss-filled Small/Big slot restores the vanilla slot. - for key, was_upgraded in pairs(upgrades) do - local key_ante, blind_choice = parse_upgrade_key(key) - if was_upgraded and key_ante and key_ante ~= ante - and (blind_choice == "Small" or blind_choice == "Big") - then - local choice = choices[blind_choice] - local blind = choice and G.P_BLINDS and G.P_BLINDS[choice] - if blind and blind.boss then - choices[blind_choice] = "bl_" .. blind_choice:lower() - end - end - end - - local stale_upgrade_keys = {} - for key in pairs(upgrades) do - local key_ante = parse_upgrade_key(key) - if key_ante and key_ante ~= ante then stale_upgrade_keys[#stale_upgrade_keys + 1] = key end - end - for _, key in ipairs(stale_upgrade_keys) do - upgrades[key] = nil - end -end - -function BR.skip_is_locked(blind_choice) - return blind_raiser_active() - and blind_choice ~= nil - and blind_was_upgraded(blind_choice) -end - --- This wrapper is loaded before ui/game/round.lua. Multiplayer's later --- reset_blinds wrapper therefore calls through this cleanup before applying --- its gamemode-specific Blind replacements. -if type(reset_blinds) == "function" then - local reset_blinds_ref = reset_blinds - function reset_blinds(...) - BR.restore_stale_slots() - return reset_blinds_ref(...) - end -end - -if type(create_UIBox_blind_select) == "function" then - local create_UIBox_blind_select_ref = create_UIBox_blind_select - function create_UIBox_blind_select(...) - BR.restore_stale_slots() - return create_UIBox_blind_select_ref(...) - end -end - -------------------------------------------------------------------- --- Blind tag UI -------------------------------------------------------------------- - -local function set_runtime_button(button, active, callback) - if not (button and button.config) then return end - - button.config.button = active and callback or nil - button.config.hover = active - button.config.colour = active and G.C.RED or G.C.UI.BACKGROUND_INACTIVE - - -- UIElement:set_values only enables collision/click states when a button - -- exists during construction. Future Blind actions are initially inactive, - -- so synchronize those runtime states as the current slot advances. - if button.states then - if button.states.collide then button.states.collide.can = active end - if button.states.click then button.states.click.can = active end - if button.states.hover then button.states.hover.can = active end - end - - local label = button.children and button.children[1] - if label and label.config then - label.config.colour = active and G.C.UI.TEXT_LIGHT or G.C.UI.TEXT_INACTIVE - end -end - -local function ui_root_candidates(e, blind_choice) - local roots = {} - - if e and e.UIBox then roots[#roots + 1] = e.UIBox end - - local blind_option = G - and G.blind_select_opts - and blind_choice - and G.blind_select_opts[blind_choice:lower()] - - if blind_option then - roots[#roots + 1] = blind_option - if blind_option.parent then - roots[#roots + 1] = blind_option.parent - if blind_option.parent.config and blind_option.parent.config.object then - roots[#roots + 1] = blind_option.parent.config.object - end - end - end - - return roots -end - -local function get_runtime_element(e, blind_choice, id) - for _, root in ipairs(ui_root_candidates(e, blind_choice)) do - if root and root.get_UIE_by_ID then - local element = root:get_UIE_by_ID(id) - if element then return element end - end - end - return nil -end - -function BR.sync_tag_ui(e) - if not (blind_raiser_active() and e and e.config) then return end - - local blind_choice = e.config.id - if not blind_choice then return end - - local upgraded = blind_was_upgraded(blind_choice) - local current = blind_is_current(blind_choice) - - local upgrade_button = get_runtime_element( - e, - blind_choice, - "mp_blind_raiser_upgrade_button_" .. blind_choice - ) - set_runtime_button( - upgrade_button, - current and not upgraded, - "mp_blind_raiser_upgrade" - ) - - local skip_button = get_runtime_element( - e, - blind_choice, - "mp_blind_raiser_skip_button_" .. blind_choice - ) - set_runtime_button(skip_button, current and not upgraded, "skip_blind") -end - -G.FUNCS.mp_blind_raiser_update_skip_button = function(e) - if not (e and e.config) then return end - - local blind_choice = e.config.mp_blind_raiser_choice - local active = blind_choice - and blind_is_current(blind_choice) - and not blind_was_upgraded(blind_choice) - set_runtime_button(e, active, "skip_blind") - if G.FUNCS.hover_tag_proxy then G.FUNCS.hover_tag_proxy(e) end -end - -G.FUNCS.mp_blind_raiser_update_upgrade_button = function(e) - if not (e and e.config) then return end - - local blind_choice = e.config.mp_blind_raiser_choice - set_runtime_button(e, blind_choice and can_upgrade(blind_choice), "mp_blind_raiser_upgrade") - -- Keep the tooltip live so an untouched Big Blind button immediately reflects - -- an upgrade made to the Small Blind without rebuilding the whole screen. - e.config.tooltip = BR.upgrade_button_tooltip(blind_choice) -end - -local create_UIBox_blind_tag_ref = create_UIBox_blind_tag - -function create_UIBox_blind_tag(blind_choice, run_info) - if run_info or not blind_raiser_active() then - return create_UIBox_blind_tag_ref(blind_choice, run_info) - end - - G.GAME.round_resets.blind_tags = G.GAME.round_resets.blind_tags or {} - local tag_key = G.GAME.round_resets.blind_tags[blind_choice] - if not tag_key then return create_UIBox_blind_tag_ref(blind_choice, run_info) end - - local reward_tag = Tag(tag_key, nil, blind_choice) - local tag_ui, tag_sprite = reward_tag:generate_UI() - - if tag_sprite and tag_sprite.states and tag_sprite.states.collide then - tag_sprite.states.collide.can = false - end - - local upgrade_active = can_upgrade(blind_choice) - local skip_active = blind_is_current(blind_choice) and not blind_was_upgraded(blind_choice) - - -- Preserve the vanilla/BlindRaiser child order. beta-1620a's Blind-select - -- callback accesses the tag description and Skip button by fixed index. - return { - n = G.UIT.R, - config = { - id = "tag_container", - ref_table = reward_tag, - align = "tm", - }, - nodes = { - { - n = G.UIT.R, - config = { align = "tm", minh = 0.65 }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("k_or"), - scale = 0.55, - colour = G.C.WHITE, - shadow = true, - }, - }, - }, - }, - { - n = G.UIT.C, - config = { - id = "tag_" .. blind_choice, - align = "cm", - r = 0.1, - padding = 0.1, - minw = 2.2, - can_collide = true, - ref_table = tag_sprite, - }, - nodes = { - { - n = G.UIT.R, - config = { - id = "tag_desc", - align = "cm", - minh = 1, - }, - nodes = { tag_ui }, - }, - { - n = G.UIT.R, - config = { - id = "mp_blind_raiser_skip_button_" .. blind_choice, - align = "cm", - colour = skip_active and G.C.RED or G.C.UI.BACKGROUND_INACTIVE, - minh = 0.6, - minw = 2, - maxw = 2, - padding = 0.07, - r = 0.1, - shadow = true, - hover = skip_active, - one_press = true, - button = skip_active and "skip_blind" or nil, - func = "mp_blind_raiser_update_skip_button", - insta_func = true, - ref_table = reward_tag, - mp_blind_raiser_choice = blind_choice, - }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("b_skip_blind"), - scale = 0.4, - colour = skip_active and G.C.UI.TEXT_LIGHT or G.C.UI.TEXT_INACTIVE, - }, - }, - }, - }, - { - n = G.UIT.R, - config = { - id = "mp_blind_raiser_upgrade_button_" .. blind_choice, - align = "cm", - colour = upgrade_active and G.C.RED or G.C.UI.BACKGROUND_INACTIVE, - minh = 0.6, - minw = 2, - maxw = 2, - padding = 0.07, - r = 0.1, - shadow = true, - hover = true, - one_press = true, - button = upgrade_active and "mp_blind_raiser_upgrade" or nil, - func = "mp_blind_raiser_update_upgrade_button", - insta_func = true, - ref_table = reward_tag, - mp_blind_raiser_choice = blind_choice, - tooltip = BR.upgrade_button_tooltip(blind_choice), - }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("mp_upgrade_blind"), - scale = 0.4, - colour = upgrade_active and G.C.UI.TEXT_LIGHT - or G.C.UI.TEXT_INACTIVE, - }, - }, - }, - }, - }, - }, - }, - } -end - -------------------------------------------------------------------- --- Upgrade action -------------------------------------------------------------------- - -G.FUNCS.mp_blind_raiser_upgrade = function(e) - if not (e and e.config and G and G.GAME) then return end - - local blind_choice = e.config.mp_blind_raiser_choice - if not blind_choice or not can_upgrade(blind_choice) then return end - - local reward_tag = e.config.ref_table - local blind_option = G.blind_select_opts and G.blind_select_opts[blind_choice:lower()] - local parent = blind_option and blind_option.parent - if not (reward_tag and reward_tag.key) then return end - if not (blind_option and parent) then return end - - local boss = BR.choose_boss(blind_choice) - if not (boss and G.P_BLINDS and G.P_BLINDS[boss]) then return end - - local upgrade_ante = current_slot_ante() - local current_upgrade_key = record_key(upgrade_ante, blind_choice) - local upgrade_index = (tonumber(G.GAME.mp_blind_raiser_upgrade_count) or 0) + 1 - local base_score = BR.regular_score_for_slot(blind_choice, upgrade_ante) - replacement_records()[current_upgrade_key] = { - ante = upgrade_ante, - blind_choice = blind_choice, - original = G.GAME.round_resets.blind_choices[blind_choice], - boss = boss, - upgrade_index = upgrade_index, - base_score = base_score, - score_multiplier = 2 ^ upgrade_index, - score_chips = base_score and (base_score * (2 ^ upgrade_index)) or nil, - } - - stop_use() - - upgraded_blinds()[current_upgrade_key] = true - G.GAME.mp_blind_raiser_upgrade_count = upgrade_index - local uses = raiser_bosses_used() - uses[boss] = (uses[boss] or 0) + 1 - - -- Disable both actions before any animation/event begins. A Lovely guard - -- also rejects stale controller input inside vanilla's Skip callback. - set_runtime_button(e, false, "mp_blind_raiser_upgrade") - local skip_button = get_runtime_element( - e, - blind_choice, - "mp_blind_raiser_skip_button_" .. blind_choice - ) - set_runtime_button(skip_button, false, "skip_blind") - - local preexisting_tags = {} - for _, tag in ipairs(G.GAME.tags or {}) do - preexisting_tags[tag] = true - end - - add_tag(reward_tag) - - local granted_tags = {} - for _, tag in ipairs(G.GAME.tags or {}) do - if not preexisting_tags[tag] then granted_tags[#granted_tags + 1] = tag end - end - - G.E_MANAGER:add_event(Event({ - trigger = "immediate", - func = function() - play_sound("other1") - - if blind_option and blind_option.set_role and blind_option.alignment then - blind_option:set_role({ xy_bond = "Weak" }) - blind_option.alignment.offset.y = 20 - end - - return true - end, - })) - - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.3, - func = function() - local current_option = G.blind_select_opts - and G.blind_select_opts[blind_choice:lower()] - local current_parent = current_option and current_option.parent - - if not (current_option and current_parent) then - save_run() - return true - end - - G.GAME.round_resets.blind_choices[blind_choice] = boss - - current_option:remove() - G.blind_select_opts[blind_choice:lower()] = UIBox({ - T = { current_parent.T.x, 0, 0, 0 }, - definition = { - n = G.UIT.ROOT, - config = { align = "cm", colour = G.C.CLEAR }, - nodes = { - UIBox_dyn_container( - { create_UIBox_blind_choice(blind_choice) }, - false, - get_blind_main_colour(boss), - mix_colours(G.C.BLACK, get_blind_main_colour(boss), 0.8) - ), - }, - }, - config = { - align = "bmi", - offset = { x = 0, y = G.ROOM.T.y + 9 }, - major = current_parent, - xy_bond = "Weak", - }, - }) - - local new_option = G.blind_select_opts[blind_choice:lower()] - current_parent.config.object = new_option - current_parent.config.object:recalculate() - new_option.parent = current_parent - new_option.alignment.offset.y = 0 - - BR.sync_tag_ui({ - config = { id = blind_choice }, - UIBox = new_option, - }) - - if SMODS and SMODS.calculate_context then - SMODS.calculate_context({ - mp_blind_raiser_upgrade = true, - blind_type = blind_choice, - blind_key = boss, - }) - end - - for _, tag in ipairs(granted_tags) do - tag:apply_to_run({ type = "immediate" }) - end - for _, tag in ipairs(granted_tags) do - if tag:apply_to_run({ type = "new_blind_choice" }) then break end - end - - save_run() - return true - end, - })) -end - -------------------------------------------------------------------- --- Rare Tag purchase penalty -------------------------------------------------------------------- - -if G.FUNCS and type(G.FUNCS.buy_from_shop) == "function" then - local buy_from_shop_ref = G.FUNCS.buy_from_shop - function G.FUNCS.buy_from_shop(e) - local card = e and e.config and e.config.ref_table - local zero_money = blind_raiser_active() - and card - and card.ability - and card.ability.mp_blind_raiser_zero_money_on_buy - - local ret = buy_from_shop_ref(e) - - if zero_money then - if card.ability then card.ability.mp_blind_raiser_zero_money_on_buy = nil end - local dollars = G and G.GAME and tonumber(G.GAME.dollars) or 0 - if dollars ~= 0 then ease_dollars(-dollars, true) end - end - - return ret - end -end - diff --git a/ui/game/confirmation.lua b/ui/game/confirmation.lua deleted file mode 100644 index 409cfad63..000000000 --- a/ui/game/confirmation.lua +++ /dev/null @@ -1,39 +0,0 @@ -function G.UIDEF.confirmation_dialog() - return create_UIBox_generic_options({ - back_func = "options", - contents = { - MP.UI.UTILS.create_row({ align = "cm", padding = 0 }, { - MP.UI.UTILS.create_row({ align = "cm", padding = 0.5 }, { - MP.UI.UTILS.create_text_node(localize("k_are_you_sure"), { - scale = 0.6, - colour = G.C.UI.TEXT_LIGHT, - }), - }), - UIBox_button({ - label = { localize("k_yes") }, - button = "confirmation_dialog_yes", - minw = 5, - }), - }), - }, - }) -end - -do - local confirm_selection_callback = nil - - function G.FUNCS.confirm_selection(callback) - confirm_selection_callback = callback - G.FUNCS.overlay_menu({ - definition = G.UIDEF.confirmation_dialog(), - }) - end - - function G.FUNCS.confirmation_dialog_yes() - G.FUNCS.exit_overlay_menu() - if confirm_selection_callback then - confirm_selection_callback() - confirm_selection_callback = nil - end - end -end diff --git a/ui/game/enemy_location.lua b/ui/game/enemy_location.lua deleted file mode 100644 index 12e375838..000000000 --- a/ui/game/enemy_location.lua +++ /dev/null @@ -1,284 +0,0 @@ -function MP.UI.enemy_location_blind_render() - local blind_key, blind_object = MP.GAME.enemy.location_blind, nil - if blind_key then blind_object = G.P_BLINDS[blind_key] end - - local blind_object_render - if blind_object then - blind_object_render = SMODS.create_sprite( - 0, - 0, - 0.4, - 0.4, - blind_object.atlas or "blind_chips", - blind_object.pos or G.P_BLINDS.bl_small.pos - ) - blind_object_render:define_draw_steps({ - { shader = "dissolve", shadow_height = 0.05 * 0.4 * 0.75 }, - { shader = "dissolve" }, - }) - elseif blind_key and blind_key ~= "" then - blind_object_render = DynaText({ - string = { blind_key or "Unknown" }, - colours = { G.C.WHITE }, - scale = 0.35, - shadow = true, - }) - else - blind_object_render = Moveable() - end - - return blind_object_render -end - -function MP.UI.round_score_definition() - return { - n = G.UIT.C, - config = { align = "cm", padding = 0.1, func = "mp_setup_hover_enemy_location_display" }, - nodes = { - { - n = G.UIT.C, - config = { align = "cm", minw = 1.3 }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm", padding = 0, maxw = 1.3 }, - nodes = { - { - n = G.UIT.T, - config = { - text = G.SETTINGS.language == "vi" and localize("k_lower_score") - or localize("k_round"), - scale = 0.42, - colour = G.C.UI.TEXT_LIGHT, - shadow = true, - }, - }, - }, - }, - { - n = G.UIT.R, - config = { align = "cm", padding = 0, maxw = 1.3 }, - nodes = { - { - n = G.UIT.T, - config = { - text = G.SETTINGS.language == "vi" and localize("k_round") - or localize("k_lower_score"), - scale = 0.42, - colour = G.C.UI.TEXT_LIGHT, - shadow = true, - }, - }, - }, - }, - }, - }, - { - n = G.UIT.C, - config = { align = "cm", minw = 3.3, minh = 0.7, r = 0.1, colour = G.C.DYN_UI.BOSS_DARK }, - nodes = { - { - n = G.UIT.O, - config = { - w = 0.5, - h = 0.5, - object = get_stake_sprite(G.GAME.stake or 1, 0.5), - hover = true, - can_collide = false, - }, - }, - { n = G.UIT.B, config = { w = 0.1, h = 0.1 } }, - { - n = G.UIT.T, - config = { - ref_table = G.GAME, - ref_value = "chips_text", - lang = G.LANGUAGES["en-us"], - scale = 0.85, - colour = G.C.WHITE, - id = "chip_UI_count", - func = "chip_UI_set", - shadow = true, - }, - }, - }, - }, - }, - } -end -function MP.UI.enemy_location_definition() - return { - n = G.UIT.C, - config = { align = "cm", padding = 0.1 }, - nodes = { - { - n = G.UIT.O, - config = { - w = 0.5, - h = 0.5, - object = get_stake_sprite(G.GAME.stake or 1, 0.5), - hover = true, - can_collide = false, - }, - }, - { - n = G.UIT.C, - config = { align = "cm", minw = 1.2 }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm", padding = 0, maxw = 1.2 }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("ml_enemy_loc")[1], - scale = 0.42, - colour = G.C.UI.TEXT_LIGHT, - shadow = true, - }, - }, - }, - }, - { - n = G.UIT.R, - config = { align = "cm", padding = 0, maxw = 1.2 }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("ml_enemy_loc")[2], - scale = 0.42, - colour = G.C.UI.TEXT_LIGHT, - shadow = true, - }, - }, - }, - }, - }, - }, - { - n = G.UIT.C, - config = { align = "cm", minw = 2.8, minh = 0.7, r = 0.1, colour = G.C.DYN_UI.BOSS_DARK }, - nodes = { - { - n = G.UIT.C, - config = { - maxw = 2.2, - align = "cm", - }, - nodes = { - { - n = G.UIT.T, - config = { - ref_table = MP.GAME.enemy, - ref_value = "location", - scale = 0.35, - colour = G.C.WHITE, - id = "chip_UI_count", - shadow = true, - maxw = 2.5, - }, - }, - }, - }, - { n = G.UIT.B, config = { w = 0.1, h = 0.1 } }, - { - n = G.UIT.O, - config = { - object = MP.UI.enemy_location_blind_render(), - id = "mp_enemy_location_render", - }, - }, - }, - }, - }, - } -end - -function MP.UI.show_enemy_location() - if not G.HUD then return end - local row_dollars_chips = G.HUD:get_UIE_by_ID("row_dollars_chips") - if row_dollars_chips then - row_dollars_chips.children[1]:remove() - row_dollars_chips.children[1] = nil - G.HUD:add_child(MP.UI.enemy_location_definition(), row_dollars_chips) - end -end -function MP.UI.hide_enemy_location() - if not G.HUD then return end - local row_dollars_chips = G.HUD:get_UIE_by_ID("row_dollars_chips") - if row_dollars_chips then - row_dollars_chips.children[1]:remove() - row_dollars_chips.children[1] = nil - G.HUD:add_child(MP.UI.round_score_definition(), row_dollars_chips) - end -end - -function MP.UI.update_enemy_location_render() - if not G.HUD then return end - local renderer = G.HUD:get_UIE_by_ID("mp_enemy_location_render") - if renderer then - local blind_object_render = MP.UI.enemy_location_blind_render() - renderer.config.object:remove() - renderer.config.object = blind_object_render - blind_object_render.parent = renderer - - renderer.UIBox:recalculate() - end - - local hover_renderer = G.mp_enemy_location_ui and G.mp_enemy_location_ui:get_UIE_by_ID("mp_enemy_location_render") - - if hover_renderer then - local blind_object_render = MP.UI.enemy_location_blind_render() - hover_renderer.config.object:remove() - hover_renderer.config.object = blind_object_render - blind_object_render.parent = hover_renderer - - hover_renderer.UIBox:recalculate() - end -end - -G.FUNCS.mp_setup_hover_enemy_location_display = function(e) - e.config.func = nil - e.states.collide.can = true - e.states.hover.can = true - - local old_hover = e.hover - function e:hover(...) - old_hover(self, ...) - if not G.mp_enemy_location_ui then - G.mp_enemy_location_ui = UIBox({ - definition = { - n = G.UIT.ROOT, - config = { colour = G.C.DYN_UI.BOSS_MAIN, emboss = 0.05, r = 0.25 }, - nodes = { - MP.UI.enemy_location_definition(), - }, - }, - config = { - align = "tmi", - offset = { x = 0, y = self.T.h + 0.15 }, - major = self, - instance_type = "CARD", - }, - }) - end - end - local old_stop_hover = e.stop_hover - function e:stop_hover(...) - old_stop_hover(self, ...) - if G.mp_enemy_location_ui then - G.mp_enemy_location_ui:remove() - G.mp_enemy_location_ui = nil - end - end - local old_remove = e.remove - function e:remove(...) - old_remove(self, ...) - if G.mp_enemy_location_ui then - G.mp_enemy_location_ui:remove() - G.mp_enemy_location_ui = nil - end - end -end diff --git a/ui/game/functions.lua b/ui/game/functions.lua deleted file mode 100644 index eb9cad98a..000000000 --- a/ui/game/functions.lua +++ /dev/null @@ -1,535 +0,0 @@ --- Contains function overrides (monkey-patches) for G.FUNCS callbacks --- Overrides button callback functions like can_play, can_open, select_blind, skip_blind, etc. - -G.FUNCS.pvp_ready_button = function(e) - if e.children[1].config.ref_table[e.children[1].config.ref_value] == localize("Select", "blind_states") then - e.config.button = "mp_toggle_ready" - e.config.one_press = false - e.children[1].config.ref_table = MP.GAME - e.children[1].config.ref_value = "ready_blind_text" - end - if e.config.button == "mp_toggle_ready" then e.config.colour = (MP.GAME.ready_blind and G.C.GREEN) or G.C.RED end -end - -function G.FUNCS.mp_toggle_ready(e) - sendTraceMessage("Toggling Ready", "MULTIPLAYER") - MP.GAME.ready_blind = not MP.GAME.ready_blind - MP.GAME.ready_blind_text = MP.GAME.ready_blind and localize("b_unready") or localize("b_ready") - MP.RLOG.record("ready_blind", MP.GAME.ready_blind and 1 or 0) - - MP.GAME.pvp_reached = true - - if MP.GAME.ready_blind then - MP.ACTIONS.set_location("loc_ready") - MP.ACTIONS.ready_blind(e) - else - MP.ACTIONS.set_location("loc_selecting") - MP.ACTIONS.pause_ante_timer() - MP.ACTIONS.unready_blind() - end -end - -local old_skip_blind = G.FUNCS.skip_blind -function G.FUNCS.skip_blind(...) - old_skip_blind(...) - MP.ACTIONS.update_location() -end - -local can_play_ref = G.FUNCS.can_play -G.FUNCS.can_play = function(e) - if G.GAME.current_round.hands_left <= 0 then - e.config.colour = G.C.UI.BACKGROUND_INACTIVE - e.config.button = nil - else - can_play_ref(e) - end -end - -local can_open_ref = G.FUNCS.can_open -G.FUNCS.can_open = function(e) - if MP.GAME.ready_blind then - e.config.colour = G.C.UI.BACKGROUND_INACTIVE - e.config.button = nil - return - end - can_open_ref(e) -end - -local select_blind_ref = G.FUNCS.select_blind -function G.FUNCS.select_blind(e) - MP.GAME.end_pvp = false - MP.GAME.prevent_eval = false - select_blind_ref(e) - if MP.is_mp_or_ghost() then - MP.GAME.ante_key = tostring(math.random()) - if not MP.GHOST.is_active() then - -- Carbon: log the freshly-rolled (non-deterministic) ante_key first so - -- a replay can restore it, then the blind selection itself. - MP.RLOG.record("set_ante_key", MP.GAME.ante_key) - MP.RLOG.record( - "select_blind", - 0, - string.format("action:selectBlind,blind:%s", tostring(e.config.ref_table.key or e.config.ref_table.name)) - ) - MP.ACTIONS.play_hand(0, G.GAME.round_resets.hands) - MP.ACTIONS.new_round() - MP.ACTIONS.set_location("loc_playing", (e.config.ref_table.key or e.config.ref_table.name)) - if MP.UI.hide_enemy_location then MP.UI.hide_enemy_location() end - end - end -end - -local skip_blind_ref = G.FUNCS.skip_blind -G.FUNCS.skip_blind = function(e) - skip_blind_ref(e) - if MP.LOBBY.code then - -- Old timer: add time from skipping to own timer when not timered and not timering - if - MP.LOBBY.config.timer - and not MP.GAME.timer_started - and not MP.GAME.nemesis_timer_started - and not MP.GAME.timer_consumed - and not MP.GAME.nemesis_timer_was_started - and not MP.is_any_layer_active({ "no_animation_timer", "pressure_timer" }) - and (MP.LOBBY.config.timer_increment_seconds or 0) > 0 - then - MP.UI.restore_timer(MP.LOBBY.config.timer_increment_seconds) - end - - MP.ACTIONS.skip(G.GAME.skips) - MP.RLOG.record("skip_blind", 0, "action:skipBlind") - - --Update the furthest blind - local temp_furthest_blind = 0 - if G.GAME.round_resets.blind_states.Big == "Skipped" then - temp_furthest_blind = G.GAME.round_resets.ante * 10 + 2 - elseif G.GAME.round_resets.blind_states.Small == "Skipped" then - temp_furthest_blind = G.GAME.round_resets.ante * 10 + 1 - end - - MP.GAME.pincher_index = MP.GAME.pincher_index + 1 - - MP.GAME.furthest_blind = (temp_furthest_blind > MP.GAME.furthest_blind) and temp_furthest_blind - or MP.GAME.furthest_blind - - MP.ACTIONS.set_furthest_blind(MP.GAME.furthest_blind) - end -end - -function G.FUNCS.toggle_players_jokers() - if not G.jokers or not MP.end_game_jokers then return end - - -- Avoid Jokers being removed from activating removal abilities (e.g. Negatives) - if MP.end_game_jokers.cards then - for _, card in pairs(MP.end_game_jokers.cards) do - card.added_to_deck = false - end - end - - if MP.end_game_jokers_text == localize("k_enemy_jokers") then - local your_jokers_save = copy_table(G.jokers:save()) - MP.end_game_jokers:load(your_jokers_save) - MP.end_game_jokers_text = localize("k_your_jokers") - else - if MP.end_game_jokers_received then - G.FUNCS.load_end_game_jokers() - else - if MP.end_game_jokers.cards then remove_all(MP.end_game_jokers.cards) end - MP.end_game_jokers.cards = {} - end - MP.end_game_jokers_text = localize("k_enemy_jokers") - end -end - -function G.FUNCS.view_nemesis_deck() - G.SETTINGS.paused = true - if G.deck_preview then - G.deck_preview:remove() - G.deck_preview = nil - end - G.FUNCS.overlay_menu({ - definition = G.UIDEF.create_UIBox_view_nemesis_deck(), - }) -end - -function G.FUNCS.open_kofi(e) - love.system.openURL("https://ko-fi.com/virtualized") -end - -function G.FUNCS:continue_in_singleplayer(e) - -- Leave multiplayer lobby and update UI - MP.LOBBY.code = nil - MP.ACTIONS.leave_lobby() - MP.UI.update_connection_status() - - -- Allow saving, save the run, and set up for continuation - G.F_NO_SAVING = false - G.SETTINGS.current_setup = "Continue" - G.FUNCS.wipe_on() - save_run() - G:delete_run() - - -- Load the saved game and start a new run in singleplayer - G.E_MANAGER:add_event(Event({ - trigger = "immediate", - no_delete = true, - func = function() - local profile = G.SETTINGS.profile - local save_path = profile .. "/save.jkr" - G.SAVED_GAME = get_compressed(save_path) - if G.SAVED_GAME ~= nil then G.SAVED_GAME = STR_UNPACK(G.SAVED_GAME) end - G:start_run({ savetext = G.SAVED_GAME }) - return true - end, - })) - G.FUNCS.wipe_off() -end - -function G.FUNCS.attention_text_realtime(args) - args = args or {} - args.text = args.text or "test" - args.scale = args.scale or 1 - args.colour = copy_table(args.colour or G.C.WHITE) - args.hold = (args.hold or 0) - args.pos = args.pos or { x = 0, y = 0 } - args.align = args.align or "cm" - args.emboss = args.emboss or nil - - args.fade = 1 - - if args.cover then - args.cover_colour = copy_table(args.cover_colour or G.C.RED) - args.cover_colour_l = copy_table(lighten(args.cover_colour, 0.2)) - args.cover_colour_d = copy_table(darken(args.cover_colour, 0.2)) - else - args.cover_colour = copy_table(G.C.CLEAR) - end - - args.uibox_config = { - align = args.align or "cm", - offset = args.offset or { x = 0, y = 0 }, - major = args.cover or args.major or nil, - } - - G.E_MANAGER:add_event(Event({ - trigger = "after", - timer = "REAL", - delay = 0, - blockable = false, - blocking = false, - func = function() - args.AT = UIBox({ - T = { args.pos.x, args.pos.y, 0, 0 }, - definition = { - n = G.UIT.ROOT, - config = { - align = args.cover_align or "cm", - minw = (args.cover and args.cover.T.w or 0.001) + (args.cover_padding or 0), - minh = (args.cover and args.cover.T.h or 0.001) + (args.cover_padding or 0), - padding = 0.03, - r = 0.1, - emboss = args.emboss, - colour = args.cover_colour, - }, - nodes = { - { - n = G.UIT.O, - config = { - draw_layer = 1, - object = DynaText({ - scale = args.scale, - string = args.text, - maxw = args.maxw, - colours = { args.colour }, - float = true, - shadow = true, - silent = not args.noisy, - args.scale, - pop_in = 0, - pop_in_rate = 6, - rotate = args.rotate or nil, - }), - }, - }, - }, - }, - config = args.uibox_config, - }) - args.AT.attention_text = true - - args.text = args.AT.UIRoot.children[1].config.object - args.text:pulse(0.5) - - if args.cover then - Particles(args.pos.x, args.pos.y, 0, 0, { - timer_type = "TOTAL", - timer = 0.01, - pulse_max = 15, - max = 0, - scale = 0.3, - vel_variation = 0.2, - padding = 0.1, - fill = true, - lifespan = 0.5, - speed = 2.5, - attach = args.AT.UIRoot, - colours = { args.cover_colour, args.cover_colour_l, args.cover_colour_d }, - }) - end - if args.backdrop_colour then - args.backdrop_colour = copy_table(args.backdrop_colour) - Particles(args.pos.x, args.pos.y, 0, 0, { - timer_type = "TOTAL", - timer = 5, - scale = 2.4 * (args.backdrop_scale or 1), - lifespan = 5, - speed = 0, - attach = args.AT, - colours = { args.backdrop_colour }, - }) - end - return true - end, - })) - - G.E_MANAGER:add_event(Event({ - trigger = "after", - timer = "REAL", - delay = args.hold, - blockable = false, - blocking = false, - func = function() - if not args.start_time then - args.start_time = G.TIMERS.TOTAL - args.text:pop_out(3) - else - args.fade = math.max(0, 1 - 3 * (G.TIMERS.TOTAL - args.start_time)) - if args.cover_colour then args.cover_colour[4] = math.min(args.cover_colour[4], 2 * args.fade) end - if args.cover_colour_l then args.cover_colour_l[4] = math.min(args.cover_colour_l[4], args.fade) end - if args.cover_colour_d then args.cover_colour_d[4] = math.min(args.cover_colour_d[4], args.fade) end - if args.backdrop_colour then args.backdrop_colour[4] = math.min(args.backdrop_colour[4], args.fade) end - args.colour[4] = math.min(args.colour[4], args.fade) - if args.fade <= 0 then - args.AT:remove() - return true - end - end - end, - })) -end - -function G.FUNCS.overlay_endgame_menu() - G.FUNCS.overlay_menu({ - definition = MP.GAME.won and create_UIBox_win() or create_UIBox_game_over(), - config = { no_esc = true }, - }) - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 2.5, - blocking = false, - func = function() - if G.OVERLAY_MENU and G.OVERLAY_MENU:get_UIE_by_ID("jimbo_spot") then - local Jimbo = Card_Character({ x = 0, y = 5 }) - local spot = G.OVERLAY_MENU:get_UIE_by_ID("jimbo_spot") - spot.config.object:remove() - spot.config.object = Jimbo - Jimbo.ui_object_updated = true - local jimbo_words = MP.GAME.won and "wq_" .. math.random(1, 7) or "lq_" .. math.random(1, 10) - Jimbo:add_speech_bubble(jimbo_words, nil, { quip = true }) - Jimbo:say_stuff(5) - end - return true - end, - })) -end - -function MP.UI.ease_lives(mod, instant) - G.E_MANAGER:add_event(Event({ - trigger = "immediate", - blockable = not instant, - func = function() - if not G.hand_text_area then return end - - if MP.LOBBY.config.disable_live_and_timer_hud then - return true -- Returning nothing hangs the game because it's a part of an event - end - - local lives_UI = G.hand_text_area.ante - if not lives_UI or not lives_UI.config.object then return true end - - mod = mod or 0 - local text = "+" - local col = G.C.IMPORTANT - if mod < 0 then - text = "-" - col = G.C.RED - end - lives_UI.config.object:update() - G.HUD:recalculate() - attention_text({ - text = text .. tostring(math.abs(mod)), - scale = 1, - hold = 0.7, - cover = lives_UI.parent, - cover_colour = col, - align = "cm", - }) - play_sound("highlight2", 0.685, 0.2) - play_sound("generic1") - return true - end, - })) -end - -function MP.UI.show_asteroid_hand_level_up() - local hand_priority = { - ["Flush Five"] = 1, - ["Flush House"] = 2, - ["Five of a Kind"] = 3, - ["Straight Flush"] = 4, - ["Four of a Kind"] = 5, - ["Full House"] = 6, - ["Flush"] = 7, - ["Straight"] = 8, - ["Three of a Kind"] = 9, - ["Two Pair"] = 11, - ["Pair"] = 12, - ["High Card"] = 13, - } - local hand_type = "High Card" - local max_level = 0 - - for k, v in pairs(G.GAME.hands) do - if SMODS.is_poker_hand_visible(k) then - if hand_priority[k] == nil then - hand_priority[k] = 0 -- Safeguard for modded hands - end - if - to_big(v.level) > to_big(max_level) - or (to_big(v.level) == to_big(max_level) and hand_priority[k] < hand_priority[hand_type]) - then - hand_type = k - max_level = v.level - end - end - end - if to_big(max_level) >= to_big(1) then - SMODS.upgrade_poker_hands({ hands = hand_type, level_up = -1 }) - end -end - -function G.FUNCS.mp_open_log_parser(e) - love.system.openURL("https://balatromp.com/log-parser") -end - -function G.FUNCS.mp_get_lovely_log_file(e) - local file_path = require("lovely").log_path - local os_name = love.system.getOS() - - local function shellQuote(s) - return "'" .. tostring(s):gsub("'", "'\\''") .. "'" - end - - local function fileUri(path) - path = path:gsub("\\", "/") - return "file://" .. path:gsub("([^A-Za-z0-9%-%._~/%:/])", function(c) - return string.format("%%%02X", c:byte()) - end) - end - - local ok - if os_name == "Windows" then - ok = os.execute('explorer.exe /select,"' .. file_path:gsub("/", "\\") .. '"') - elseif os_name == "OS X" then - os.execute("open -R " .. shellQuote(file_path)) - elseif os_name == "Linux" then - local cmd = - "dbus-send --session " .. - "--dest=org.freedesktop.FileManager1 " .. - "--type=method_call " .. - "/org/freedesktop/FileManager1 " .. - "org.freedesktop.FileManager1.ShowItems " .. - "array:string:" .. shellQuote(fileUri(file_path)) .. " string:''" - - ok = os.execute(cmd) - end - if not ok then - local parent_dir = file_path:match("^(.*)[/\\][^/\\]*$") or "." - love.system.openURL(fileUri(parent_dir)) - end -end - ---[[ -function MP.UI.create_UIBox_Misprint_Display() - return { - n = G.UIT.ROOT, - config = { align = "cm", padding = 0.03, colour = G.C.CLEAR }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm", padding = 0.05, colour = G.C.UI.TRANSPARENT_DARK, r = 0.1 }, - nodes = { - { - n = G.UIT.O, - config = { - id = "misprint_display", - func = "misprint_display_set", - object = DynaText({ - string = { { ref_table = MP.GAME, ref_value = "misprint_display" } }, - colours = { G.C.UI.TEXT_LIGHT }, - shadow = true, - float = true, - scale = 0.5, - }), - }, - }, - }, - }, - }, - } -end - -function G.FUNCS.misprint_display_set(e) - local misprint_raw = (G.deck and G.deck.cards[1] and G.deck.cards[#G.deck.cards].base.id or 11) - .. (G.deck and G.deck.cards[1] and G.deck.cards[#G.deck.cards].base.suit:sub(1, 1) or "D") - if misprint_raw == e.config.last_misprint then - return - end - e.config.last_misprint = misprint_raw - - local value = tonumber(misprint_raw:sub(1, -2)) - local suit = misprint_raw:sub(-1) - - local suit_full = { H = "Hearts", D = "Diamonds", C = "Clubs", S = "Spades" } - - local value_key = tostring(value) - if value == 14 then - value_key = "Ace" - elseif value == 11 then - value_key = "Jack" - elseif value == 12 then - value_key = "Queen" - elseif value == 13 then - value_key = "King" - end - - local localized_card = {} - - localize({ - type = "other", - key = "playing_card", - set = "Other", - nodes = localized_card, - vars = { - localize(value_key, "ranks"), - localize(suit_full[suit], "suits_plural"), - colours = { G.C.UI.TEXT_LIGHT }, - }, - }) - - -- Yes I know this is stupid - MP.GAME.misprint_display = localized_card[1][2].config.text .. localized_card[1][3].config.text - e.config.object.colours = { G.C.SUITS[suit_full[suit]] ---} ---end ---]] diff --git a/ui/game/game_end.lua b/ui/game/game_end.lua deleted file mode 100644 index c55b86685..000000000 --- a/ui/game/game_end.lua +++ /dev/null @@ -1,545 +0,0 @@ -function MP.UI.create_UIBox_round_scores_row_nemesis() - local label = localize({ type = "name_text", set = "Blind", key = "bl_mp_nemesis" }) - local score_tab = {} - local label_w, score_w, h = 2.9, 1, 0.5 - - local blind_name_string - if MP.GHOST.is_active() then - blind_name_string = MP.GHOST.get_blind_name_ui() or "ERROR" - else - blind_name_string = (MP.LOBBY.is_host and MP.LOBBY.guest or MP.LOBBY.host or {})["username"] or "ERROR" - end - - local nemesis_blind_col = MP.UTILS.get_nemesis_key() - local blind_choice = {} - blind_choice.animation = AnimatedSprite(0,0, 0.5, 0.5, G.ANIMATION_ATLAS["mp_player_blind_col"], G.P_BLINDS[nemesis_blind_col].pos) - blind_choice.animation:define_draw_steps({ - {shader = 'dissolve', shadow_height = 0.05}, - {shader = 'dissolve'} - }) - - score_tab = { - {n=G.UIT.C, config={align = "cm", minh = 0.7, padding = 0.1}, nodes={ - {n=G.UIT.O, config={object = DynaText({string = blind_name_string, colours = {G.C.WHITE}, shadow = true, bump = true,maxw = 2.9, scale = 0.45})}} - }}, - {n=G.UIT.C, config={align = "cm"}, nodes={ - {n=G.UIT.O, config={object = blind_choice.animation}} - }}, - } - - local label_scale = 0.5 - - return {n=G.UIT.R, config={align = "cm", padding = 0.05, r = 0.1, colour = darken(G.C.JOKER_GREY, 0.1), emboss = 0.05, id = "mp_score_nemesis"}, nodes={ - {n=G.UIT.R, config={align = "cm", padding = 0.02, minw = label_w, maxw = label_w}, nodes={ - {n=G.UIT.T, config={text = label, scale = label_scale, colour = G.C.UI.TEXT_LIGHT, shadow = true}}, - }}, - {n=G.UIT.R, config={align = "cr"}, nodes={ - {n=G.UIT.C, config={align = "cm", minh = h, r = 0.1, minw = label_w + 0.9, colour = G.C.BLACK, emboss = 0.05}, nodes={ - {n=G.UIT.C, config={align = "cm", padding = 0.05, r = 0.1, minw = score_w}, nodes=score_tab}, - }} - }}, - }} -end - -function MP.UI.create_UIBox_mp_game_end(has_won) - MP.end_game_jokers = CardArea( - 0, - 0, - 5 * G.CARD_W, - G.CARD_H, - { card_limit = G.GAME.starting_params.joker_slots, type = "joker", highlight_limit = 1, fixed_limit = true } - ) - if not MP.end_game_jokers_received then - MP.ACTIONS.get_end_game_jokers() - else - G.FUNCS.load_end_game_jokers() - end - MP.end_game_jokers_text = localize("k_enemy_jokers") - - MP.ACTIONS.request_nemesis_stats() - - MP.nemesis_deck = CardArea(-100, -100, G.CARD_W, G.CARD_H, { type = "deck" }) - MP.nemesis_cards = {} - if not MP.nemesis_deck_received then - MP.ACTIONS.get_nemesis_deck() - else - G.FUNCS.load_nemesis_deck() - end - - G.SETTINGS.paused = false - - local eased_bg_colour - if has_won then - eased_bg_colour = copy_table(G.C.GREEN) - eased_bg_colour[4] = 0 - ease_value(eased_bg_colour, 4, 0.5, nil, nil, true) - else - eased_bg_colour = copy_table(G.C.RED) - eased_bg_colour[4] = 0 - ease_value(eased_bg_colour, 4, 0.8, nil, nil, true) - end - - local t = create_UIBox_generic_options({ - padding = 0, - bg_colour = eased_bg_colour, - colour = has_won and G.C.BLACK or nil, - outline_colour = has_won and G.C.EDITION or nil, - no_back = true, - no_esc = has_won, - contents = { - { - n = G.UIT.R, - config = { align = "cm" }, - nodes = { - { - n = G.UIT.O, - config = { - object = DynaText({ - string = { has_won and localize("ph_you_win") or localize("ph_game_over") }, - colours = { has_won and G.C.EDITION or G.C.RED }, - shadow = true, - float = true, - spacing = has_won and 10 or nil, - rotate = has_won, - scale = 1.5, - pop_in = 0.4, - maxw = 6.5, - }), - }, - }, - }, - }, - { - n = G.UIT.R, - config = { align = "cm", padding = 0.15 }, - nodes = { - { - n = G.UIT.C, - config = { align = "cm" }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm", padding = 0.08 }, - nodes = { - { - n = G.UIT.T, - config = { - ref_table = MP, - ref_value = "end_game_jokers_text", - scale = 0.8, - maxw = 5, - shadow = true, - }, - }, - }, - }, - { - n = G.UIT.R, - config = { align = "cm", padding = 0.08 }, - nodes = { - { n = G.UIT.O, config = { object = MP.end_game_jokers } }, - }, - }, - { - n = G.UIT.R, - config = { align = "cm", padding = 0.08 }, - nodes = { - { - n = G.UIT.C, - config = { - maxw = has_won and 0.8 or 1, - minw = has_won and 0.8 or 1, - minh = 0.7, - colour = G.C.CLEAR, - no_fill = false, - }, - }, - { - n = G.UIT.C, - config = { - button = "toggle_players_jokers", - align = "cm", - padding = 0.12, - colour = G.C.BLUE, - emboss = 0.05, - minh = 0.7, - minw = 2, - maxw = 2, - r = 0.1, - shadow = true, - hover = true, - }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("b_toggle_jokers"), - colour = G.C.UI.TEXT_LIGHT, - scale = 0.65, - col = true, - }, - }, - }, - }, - { - n = G.UIT.C, - config = { - id = "view_nemesis_deck_button", - button = "view_nemesis_deck", - align = "cm", - padding = 0.12, - colour = G.C.BLUE, - emboss = 0.05, - minh = 0.7, - minw = 2, - maxw = 2, - r = 0.1, - shadow = true, - hover = true, - focus_args = has_won and { nav = "wide" } or nil, - }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("b_view_nemesis_deck"), - colour = G.C.UI.TEXT_LIGHT, - scale = 0.65, - col = true, - }, - }, - }, - }, - { - n = G.UIT.C, - config = { - maxw = has_won and 0.8 or 1, - minw = has_won and 0.8 or 1, - minh = 0.7, - colour = G.C.CLEAR, - no_fill = false, - }, - }, - }, - }, - { - n = G.UIT.R, - config = { align = "cm" }, - nodes = { - { - n = G.UIT.C, - config = { padding = 0.08 }, - nodes = { - create_UIBox_round_scores_row("hand"), - create_UIBox_round_scores_row("poker_hand"), - { - n = G.UIT.R, - config = {}, - nodes = { - { - n = G.UIT.C, - nodes = { - create_UIBox_round_scores_row('cards_purchased', G.C.MONEY), - { - n = G.UIT.R, - config = { minh = 0.08 }, - }, - create_UIBox_round_scores_row('times_rerolled', G.C.GREEN), - } - }, - { - n = G.UIT.C, - config = {minw = 0.08} - }, - { - n = G.UIT.C, - nodes = { - create_UIBox_round_scores_row('furthest_ante', G.C.FILTER), - { - n = G.UIT.R, - config = { minh = 0.08 }, - }, - create_UIBox_round_scores_row('furthest_round', G.C.FILTER), - } - }, - } - }, - { - n = G.UIT.R, - config = { minh = 0.01 }, - }, - { - n = G.UIT.R, - config = { align = "cm", minw = 2 }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("ml_mp_kofi_message")[1], - scale = 0.35, - colour = G.C.UI.TEXT_LIGHT, - col = true, - }, - }, - }, - }, - { - n = G.UIT.R, - config = { align = "cm", minw = 2 }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("ml_mp_kofi_message")[2], - scale = 0.35, - colour = G.C.UI.TEXT_LIGHT, - col = true, - }, - }, - }, - }, - { - n = G.UIT.R, - config = { align = "cm", minw = 2 }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("ml_mp_kofi_message")[3] .. (localize("ml_mp_kofi_message")[4] and (" " .. localize("ml_mp_kofi_message")[4]) or ""), - scale = 0.35, - colour = G.C.UI.TEXT_LIGHT, - col = true, - }, - }, - }, - }, - { - n = G.UIT.R, - config = { - minh = 0.08 - } - }, - { - n = G.UIT.R, - config = { - id = "ko-fi_button", - align = "cm", - padding = 0.1, - r = 0.1, - hover = true, - colour = HEX("72A5F2"), - button = "open_kofi", - shadow = true, - }, - nodes = { - { - n = G.UIT.R, - config = { - align = "cm", - padding = 0, - no_fill = true, - maxw = 3, - }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("b_mp_kofi_button"), - scale = 0.35, - colour = G.C.UI.TEXT_LIGHT, - }, - }, - }, - }, - }, - }, - --[[ Removed until it is fixed in a future update - UIBox_button({ - id = "continue_singpleplayer_button", - align = "lm", - button = "continue_in_singleplayer", - label = { localize("b_continue_singleplayer") }, - colour = G.C.GREEN, - toolTip = {title = "", text = localize("k_continue_singleplayer_tooltip")}, - minw = 6, - minh = 1, - func = 'set_button_pip', - focus_args = { nav = "wide", button = "y" }, - })]] - }, - }, - { - n = G.UIT.C, - config = { align = "tr", padding = 0.08 }, - nodes = { - MP.UI.create_UIBox_round_scores_row_nemesis(), - create_UIBox_round_scores_row("seed", G.C.WHITE), - UIBox_button({ - id = "copy_seed_button", - button = "copy_seed", - label = { localize("b_copy") }, - colour = G.C.BLUE, - scale = 0.3, - minw = 2.5, maxw = 2.5, - minh = 0.4, - }), - { - n = G.UIT.R, - config = { align = "cm", minh = 0.45, minw = 0.1 }, - nodes = { - UIBox_button({ - button = "mp_open_log_parser", - label = { localize("b_open_log_parser") }, - minw = 1.75, - maxw = 1.75, - minh = 0.5, - maxh = 0.5, - col = true, - colour = G.C.CHIPS, - padding = 0.1, - scale = 0.4 - }), - { n = G.UIT.C, config = { minw = 0.1 } }, - UIBox_button({ - id = "from_game_won", - button = "mp_get_lovely_log_file", - label = { localize("b_get_log_file") }, - minw = 1.75, - maxw = 1.75, - minh = 0.5, - maxh = 0.5, - col = true, - colour = G.C.CHIPS, - padding = 0.1, - scale = 0.4 - }), - }, - }, - UIBox_button({ - id = "from_game_won", - button = "mp_return_to_lobby", - label = { localize("b_return_lobby") }, - minw = 4, - maxw = 4, - minh = 0.75, - focus_args = { nav = "wide", snap_to = true }, - }), - UIBox_button({ - button = "lobby_leave", - label = { localize("b_leave_lobby") }, - minw = 4, - maxw = 4, - minh = 0.75, - focus_args = { nav = "wide" }, - }), - }, - }, - }, - }, - }, - }, - }, - }, - }, - }) - - t.nodes[1] = { - n = G.UIT.R, - config = { align = "cm", padding = 0.1 }, - nodes = { - { - n = G.UIT.C, - config = { align = "cm", padding = 2 }, - nodes = { - { - n = G.UIT.O, - config = { - padding = 0, - id = "jimbo_spot", - object = Moveable(0, 0, G.CARD_W * 1.1, G.CARD_H * 1.1), - }, - }, - }, - }, - { n = G.UIT.C, config = { align = "cm", padding = 0.1 }, nodes = { t.nodes[1] } }, - }, - } - - if has_won then t.config.id = "you_win_UI" end - - return t -end - -function G.UIDEF.view_nemesis_deck() - local playing_cards_ref = G.playing_cards - G.playing_cards = MP.nemesis_cards - local t = G.UIDEF.view_deck() - G.playing_cards = playing_cards_ref - return t -end - -function G.UIDEF.create_UIBox_view_nemesis_deck() - return create_UIBox_generic_options({ - back_func = "overlay_endgame_menu", - contents = { - create_tabs({ - tabs = { - { - label = localize("k_nemesis_deck"), - chosen = true, - tab_definition_function = G.UIDEF.view_nemesis_deck, - }, - { - label = localize("k_your_deck"), - tab_definition_function = G.UIDEF.view_deck, - }, - }, - tab_h = 8, - snap_to_nav = true, - }), - }, - }) -end - --- Contains function overrides (monkey-patches) for UI-related functionality --- Overrides UI creation functions like create_UIBox_game_over, create_UIBox_win, etc. - -local create_UIBox_game_over_ref = create_UIBox_game_over -function create_UIBox_game_over() - if not MP.LOBBY.code then return create_UIBox_game_over_ref() end - return MP.UI.create_UIBox_mp_game_end(false) -end - -local create_UIBox_win_ref = create_UIBox_win -function create_UIBox_win() - if not MP.LOBBY.code then return create_UIBox_win_ref() end - return MP.UI.create_UIBox_mp_game_end(true) -end - -local exit_overlay_menu_ref = G.FUNCS.exit_overlay_menu ----@diagnostic disable-next-line: duplicate-set-field -function G.FUNCS:exit_overlay_menu() - -- Saves username if user presses ESC instead of Enter - if G.OVERLAY_MENU and G.OVERLAY_MENU:get_UIE_by_ID("username_input_box") ~= nil then - MP.UTILS.save_username(MP.LOBBY.username) - end - - exit_overlay_menu_ref(self) -end - -local mods_button_ref = G.FUNCS.mods_button -function G.FUNCS.mods_button(arg_736_0) - if G.OVERLAY_MENU and G.OVERLAY_MENU:get_UIE_by_ID("username_input_box") ~= nil then - MP.UTILS.save_username(MP.LOBBY.username) - end - - mods_button_ref(arg_736_0) -end - -function G.UIDEF.multiplayer_deck() - return G.UIDEF.challenge_description( - get_challenge_int_from_id(MP.current_ruleset().challenge_deck), - nil, - false - ) -end diff --git a/ui/game/game_state.lua b/ui/game/game_state.lua deleted file mode 100644 index e99e59bd0..000000000 --- a/ui/game/game_state.lua +++ /dev/null @@ -1,657 +0,0 @@ --- Contains function overrides (monkey-patches) for game state management --- Overrides Game methods like update_draw_to_hand, update_hand_played, update_new_round, etc. - -local update_draw_to_hand_ref = Game.update_draw_to_hand -function Game:update_draw_to_hand(dt) - if MP.is_mp_or_ghost() then - if - not G.STATE_COMPLETE - and G.GAME.current_round.hands_played == 0 - and G.GAME.current_round.discards_used == 0 - and G.GAME.facing_blind - then - if MP.is_pvp_boss() then - MP.GAME.pincher_unlock = true - G.after_pvp = true -- i can't find a reasonable way to detect end of pvp (for pizza) so i'm doing something strange instead - - if MP.GAME.asteroids > 0 then -- launch asteroids, messy event garbage - delay(0.8) - update_hand_text({ sound = "button", volume = 0.7, pitch = 0.8, delay = 0.3 }, { - handname = localize("k_asteroids"), - chips = localize("k_amount_short"), - mult = MP.GAME.asteroids, - }) - delay(0.6) - local send = 0 - for i = 1, MP.GAME.asteroids do - local perc = MP.GAME.asteroids - send - G.E_MANAGER:add_event(Event({ - func = function() - play_sound("tarot1", 0.9 + (perc / 10), 1) - return true - end, - })) - send = send + 1 - update_hand_text({ delay = 0 }, { mult = MP.GAME.asteroids - send }) - delay(0.2) - end - G.E_MANAGER:add_event(Event({ - func = function() - if not MP.GHOST.is_active() then - for i = 1, MP.GAME.asteroids do - MP.ACTIONS.asteroid() - end - end - MP.GAME.asteroids = 0 - return true - end, - })) - delay(0.7) - update_hand_text( - { sound = "button", volume = 0.7, pitch = 1.1, delay = 0 }, - { mult = 0, chips = 0, handname = "", level = "" } - ) - end - end - end - end - update_draw_to_hand_ref(self, dt) -end - --- Set blind PvP state appropriately (moved from previous hook to be earlier) -local blind_set_blindref = Blind.set_blind -function Blind:set_blind(blind, reset, silent) - blind_set_blindref(self, blind, reset, silent) - if G.GAME.round_resets and G.GAME.round_resets.pvp_blind_choices then - G.GAME.blind.pvp = G.GAME.round_resets.pvp_blind_choices[G.GAME.blind_on_deck] - end -end - -local function eval_hand_and_jokers() - for i = 1, #G.hand.cards do - --Check for hand doubling - local reps = { 1 } - local j = 1 - while j <= #reps do - local percent = (i - 0.999) / (#G.hand.cards - 0.998) + (j - 1) * 0.1 - if reps[j] ~= 1 then - card_eval_status_text( - (reps[j].jokers or reps[j].seals).card, - "jokers", - nil, - nil, - nil, - (reps[j].jokers or reps[j].seals) - ) - end - - --calculate the hand effects - local effects = { G.hand.cards[i]:get_end_of_round_effect() } - for k = 1, #G.jokers.cards do - --calculate the joker individual card effects - local eval = G.jokers.cards[k]:calculate_joker({ - cardarea = G.hand, - other_card = G.hand.cards[i], - individual = true, - end_of_round = true, - }) - if eval then table.insert(effects, eval) end - end - - if reps[j] == 1 then - --Check for hand doubling - --From Red seal - local eval = eval_card( - G.hand.cards[i], - { end_of_round = true, cardarea = G.hand, repetition = true, repetition_only = true } - ) - if next(eval) and (next(effects[1]) or #effects > 1) then - for h = 1, eval.seals.repetitions do - reps[#reps + 1] = eval - end - end - - --from Jokers - for j = 1, #G.jokers.cards do - --calculate the joker effects - local eval = eval_card(G.jokers.cards[j], { - cardarea = G.hand, - other_card = G.hand.cards[i], - repetition = true, - end_of_round = true, - card_effects = effects, - }) - if next(eval) then - for h = 1, eval.jokers.repetitions do - reps[#reps + 1] = eval - end - end - end - end - - for ii = 1, #effects do - --if this effect came from a joker - if effects[ii].card then - G.E_MANAGER:add_event(Event({ - trigger = "immediate", - func = function() - effects[ii].card:juice_up(0.7) - return true - end, - })) - end - - --If dollars - if effects[ii].h_dollars then - ease_dollars(effects[ii].h_dollars) - card_eval_status_text(G.hand.cards[i], "dollars", effects[ii].h_dollars, percent) - end - - --Any extras - if effects[ii].extra then - card_eval_status_text(G.hand.cards[i], "extra", nil, percent, nil, effects[ii].extra) - end - end - j = j + 1 - end - end -end - -local update_hand_played_ref = Game.update_hand_played ----@diagnostic disable-next-line: duplicate-set-field -function Game:update_hand_played(dt) - -- Ignore for singleplayer or regular blinds - local ghost = MP.GHOST.is_active() - if (not ghost and (not MP.LOBBY.connected or not MP.LOBBY.code)) or not MP.is_pvp_boss() then - update_hand_played_ref(self, dt) - return - end - - if self.buttons then - self.buttons:remove() - self.buttons = nil - end - if self.shop then - self.shop:remove() - self.shop = nil - end - - if not G.STATE_COMPLETE then - G.STATE_COMPLETE = true - G.E_MANAGER:add_event(Event({ - trigger = "immediate", - func = function() - if not ghost then - MP.ACTIONS.play_hand(G.GAME.chips, G.GAME.current_round.hands_left) - end - - if G.GAME.current_round.hands_left < 1 then - if ghost then - local result = MP.GHOST.resolve_pvp_hands_exhausted(G.GAME.chips) - if result == "won" then - win_game() - return true - elseif result == "game_over" then - G.STATE = G.STATES.GAME_OVER - G.STATE_COMPLETE = false - return true - end - else - attention_text({ - scale = 0.8, - text = localize("k_wait_enemy"), - hold = 5, - align = "cm", - offset = { x = 0, y = -1.5 }, - major = G.play, - }) - end - if G.hand.cards[1] and G.STATE == G.STATES.HAND_PLAYED then - eval_hand_and_jokers() - G.FUNCS.draw_from_hand_to_discard() - end - elseif ghost and MP.GHOST.has_hand_data() then - MP.GHOST.resolve_pvp_mid_hand(G.GAME.chips) - - if not MP.GAME.end_pvp and G.STATE == G.STATES.HAND_PLAYED then - G.STATE_COMPLETE = false - G.STATE = G.STATES.DRAW_TO_HAND - end - elseif not MP.GAME.end_pvp and G.STATE == G.STATES.HAND_PLAYED then - G.STATE_COMPLETE = false - G.STATE = G.STATES.DRAW_TO_HAND - end - return true - end, - })) - end - - if MP.GAME.end_pvp and MP.is_pvp_boss() and not (G.GAME.STOP_USE and G.GAME.STOP_USE > 0) then - G.STATE_COMPLETE = false - G.STATE = G.STATES.NEW_ROUND - MP.GAME.end_pvp = false - end -end - -local update_new_round_ref = Game.update_new_round -function Game:update_new_round(dt) - if MP.GAME.end_pvp then - if G.STATE ~= G.STATES.NEW_ROUND then - G.FUNCS.draw_from_hand_to_deck() - G.FUNCS.draw_from_discard_to_deck() - end - G.STATE = G.STATES.NEW_ROUND - MP.GAME.end_pvp = false - end - if MP.is_mp_or_ghost() and not G.STATE_COMPLETE then - local ghost = MP.GHOST.is_active() - -- Prevent player from losing - if to_big(G.GAME.chips) < to_big(G.GAME.blind.chips) and not MP.is_pvp_boss() then - G.GAME.blind.chips = -1 - if ghost then - if MP.GHOST.resolve_round_fail() == "game_over" then - G.STATE = G.STATES.GAME_OVER - G.STATE_COMPLETE = false - return - end - else - MP.GAME.wait_for_enemys_furthest_blind = (MP.LOBBY.config.gamemode == "gamemode_mp_survival") - and (tonumber(MP.GAME.lives) == 1) - MP.ACTIONS.fail_round(G.GAME.current_round.hands_played) - end - end - - -- Prevent player from winning - G.GAME.win_ante = 999 - - if not ghost and MP.LOBBY.config.gamemode == "gamemode_mp_survival" and MP.GAME.wait_for_enemys_furthest_blind then - G.STATE_COMPLETE = true - G.FUNCS.draw_from_hand_to_discard() - attention_text({ - scale = 0.8, - text = localize("k_wait_enemy_reach_this_blind"), - hold = 5, - align = "cm", - offset = { x = 0, y = -1.5 }, - major = G.play, - }) - else - update_new_round_ref(self, dt) - end - - -- Reset ante number - G.GAME.win_ante = 8 - return - end - update_new_round_ref(self, dt) -end - -local update_selecting_hand_ref = Game.update_selecting_hand -function Game:update_selecting_hand(dt) - if - G.GAME.current_round.hands_left < G.GAME.round_resets.hands - and #G.hand.cards < 1 - and #G.deck.cards < 1 - and #G.play.cards < 1 - and MP.is_mp_or_ghost() - then - G.GAME.current_round.hands_left = 0 - if not MP.is_pvp_boss() then - G.STATE_COMPLETE = false - G.STATE = G.STATES.NEW_ROUND - else - if not MP.GHOST.is_active() then - MP.ACTIONS.play_hand(G.GAME.chips, 0) - end - G.STATE_COMPLETE = false - G.STATE = G.STATES.HAND_PLAYED - end - return - end - update_selecting_hand_ref(self, dt) - - if MP.GAME.end_pvp and MP.is_pvp_boss() and MP.is_mp_or_ghost() then - G.hand:unhighlight_all() - G.STATE_COMPLETE = false - G.STATE = G.STATES.NEW_ROUND - MP.GAME.end_pvp = false - end -end - --- Consolidate both update_shop overrides -local update_shop_ref = Game.update_shop -function Game:update_shop(dt) - if not G.STATE_COMPLETE then - MP.GAME.ready_blind = false - MP.GAME.ready_blind_text = localize("b_ready") - MP.GAME.end_pvp = false - end - - local updated_location = false - if MP.LOBBY.code and not G.STATE_COMPLETE and not updated_location and not G.GAME.USING_RUN then - updated_location = true - MP.ACTIONS.set_location("loc_shop") - MP.GAME.spent_before_shop = to_big(MP.GAME.spent_total) + to_big(0) - if MP.UI.show_enemy_location then MP.UI.show_enemy_location() end - end - if G.STATE_COMPLETE and updated_location then updated_location = false end - update_shop_ref(self, dt) -end - -local update_blind_select_ref = Game.update_blind_select -function Game:update_blind_select(dt) - local updated_location = false - if MP.LOBBY.code and not G.STATE_COMPLETE and not updated_location then - updated_location = true - MP.ACTIONS.set_location("loc_selecting") - if MP.UI.show_enemy_location then MP.UI.show_enemy_location() end - end - if G.STATE_COMPLETE and updated_location then updated_location = false end - update_blind_select_ref(self, dt) -end - -local start_run_ref = Game.start_run -function Game:start_run(args) - -- Not get_active_ruleset(): the sp run flow leaves practice=false but still - -- sets MP.SP.ruleset, which get_active_ruleset() only honours in practice. - MP.LoadReworks(MP.LOBBY.config.ruleset or MP.SP.ruleset) - - start_run_ref(self, args) - - local show_lives_hud = (MP.LOBBY.connected and MP.LOBBY.code) or MP.GHOST.is_active() - if not show_lives_hud or MP.LOBBY.config.disable_live_and_timer_hud then return end - - local scale = 0.4 - local hud_ante = G.HUD:get_UIE_by_ID("hud_ante") - hud_ante.children[1].children[1].config.text = localize("k_lives") - - -- Set lives number - local lives_container = hud_ante.children[2].children[1] - if lives_container.config.object then - lives_container.config.object:remove() - end - lives_container.config.object = UIBox({ - definition = { - n = G.UIT.ROOT, - config = { colour = G.C.CLEAR }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm", minw = 1.2, maxw = 1.2, minh = 0.664 }, - nodes = { - { - n = G.UIT.T, - config = { - ref_table = MP.GAME, - ref_value = "lives", - scale = 2 * scale * 0.8, - colour = G.C.IMPORTANT, - shadow = true, - maxw = 0.5, - } - }, - { n = G.UIT.B, config = { w = 0.05, h = 0.05 } }, - { - n = G.UIT.T, - config = { - text = "vs", -- not localized intentionally - scale = scale * 0.8, - colour = G.C.UI.TEXT_DARK, - shadow = true, - } - }, - { n = G.UIT.B, config = { w = 0.05, h = 0.05 } }, - { - n = G.UIT.T, - config = { - ref_table = MP.GAME.enemy, - ref_value = "lives", - scale = 2 * scale * 0.8, - colour = G.C.RED, - shadow = true, - maxw = 0.5, - } - }, - } - } - } - }, - config = {}, - }) - - -- Remove unnecessary HUD elements from ante counter - hud_ante.children[2].children[2] = nil - hud_ante.children[2].children[3] = nil - hud_ante.children[2].children[4] = nil - - G.HUD:recalculate() -end - --- This prevents duplicate execution during certain cases. e.g. Full deck discard before playing any hands. -function MP.handle_duplicate_end() - if MP.is_mp_or_ghost() then - if MP.GAME.round_ended then - if not MP.GAME.duplicate_end then - MP.GAME.duplicate_end = true - sendDebugMessage("Duplicate end_round calls prevented.", "MULTIPLAYER") - end - return true - end - end - return false -end - --- This handles an edge case where a player plays no hands, and discards the only cards in their deck. --- Allows opponent to advance after playing anything, and eases a life from the person who discarded their deck. -function MP.handle_deck_out() - if MP.is_mp_or_ghost() then - if - G.GAME.current_round.hands_played == 0 - and G.GAME.current_round.discards_used > 0 - and MP.LOBBY.config.gamemode ~= "gamemode_mp_survival" - then - if not MP.GHOST.is_active() then - if MP.is_pvp_boss() then MP.ACTIONS.play_hand(0, 0) end - MP.ACTIONS.fail_round(1) - end - end - end -end - -local mp_jimbo = nil -local mp_jimbo_pos = nil - -local JIMBO_POSITIONS = { - [1] = { align = "cri", offset = { x = 1, y = 0 }, bubble_align = "cl", bubble_offset = { x = 0, y = 0 } }, - [2] = { align = "tli", offset = { x = -0.75, y = -0.75 }, bubble_align = "cr", bubble_offset = { x = 0, y = -0.5 } }, - [3] = { align = "tri", offset = { x = 1.8, y = -0.1 }, bubble_align = "bl", bubble_offset = { x = 2.1, y = 0 } }, - [4] = { align = "cmi", offset = { x = 0, y = -1.5 }, bubble_align = "cr", bubble_offset = { x = 0, y = 0 } }, -} - -function MP.UI.create_jimbo(pos, text) - if mp_jimbo then MP.UI.remove_jimbo() end - local p = JIMBO_POSITIONS[pos] or JIMBO_POSITIONS[1] - mp_jimbo_pos = pos or 1 - mp_jimbo = Card_Character({ - x = 0, - y = G.ROOM.T.h + 5, - center = "j_perkeo", - particle_colours = { HEX("4e997b"), HEX("e9564e"), HEX("ebecee") }, - }) - mp_jimbo.children.particles:remove() - mp_jimbo.children.particles = nil - mp_jimbo.children.card:set_edition({ negative = true }, true, true) - mp_jimbo.say_stuff = function(self, n, not_first) - self.talking = true - if not not_first then - G.E_MANAGER:add_event(Event({ - trigger = "after", - timer = "REAL", - delay = 0.1, - func = function() - if self.children.speech_bubble then self.children.speech_bubble.states.visible = true end - self:say_stuff(n, true) - return true - end, - })) - else - if n <= 0 then - self.talking = false - return - end - play_sound("voice" .. math.random(1, 11), math.random() * 0.2 + 1, 0.5) - self.children.card:juice_up() - G.E_MANAGER:add_event( - Event({ - trigger = "after", - timer = "REAL", - blockable = false, - blocking = false, - delay = 0.13, - func = function() - self:say_stuff(n - 1, true) - return true - end, - }), - "tutorial" - ) - end - end - mp_jimbo:set_alignment({ - major = G.ROOM_ATTACH, - type = p.align, - offset = p.offset, - }) - if text then MP.UI.jimbo_say(text) end - return mp_jimbo -end - -function MP.UI.move_jimbo(pos) - if not mp_jimbo then return end - local p = JIMBO_POSITIONS[pos] or JIMBO_POSITIONS[1] - mp_jimbo_pos = pos or 1 - mp_jimbo:set_alignment({ - major = G.ROOM_ATTACH, - type = p.align, - offset = p.offset, - }) - if mp_jimbo.children.speech_bubble then - mp_jimbo.children.speech_bubble.alignment.type = p.bubble_align - mp_jimbo.children.speech_bubble.alignment.offset = p.bubble_offset - mp_jimbo.children.speech_bubble:align_to_major() - end -end - -function MP.UI.jimbo_say(text) - if not mp_jimbo then return end - if mp_jimbo.children.speech_bubble then mp_jimbo.children.speech_bubble:remove() end - local lines = {} - for line in MP.UTILS.wrapText(text, 30):gmatch("[^\n]+") do - lines[#lines + 1] = line:match("^%s*(.-)%s*$") - end - local rows = {} - for _, line in ipairs(lines) do - rows[#rows + 1] = { - n = G.UIT.R, - config = { align = "cl" }, - nodes = { - { n = G.UIT.T, config = { text = line, scale = 0.4, colour = G.C.UI.TEXT_DARK } }, - }, - } - end - local definition = { - n = G.UIT.ROOT, - config = { align = "cm", minh = 1, r = 0.3, padding = 0.07, minw = 1, colour = G.C.JOKER_GREY, shadow = true }, - nodes = { - { - n = G.UIT.C, - config = { align = "cm", minh = 1, r = 0.2, padding = 0.1, minw = 1, colour = G.C.WHITE }, - nodes = { - { - n = G.UIT.C, - config = { align = "cm", minh = 1, r = 0.2, padding = 0.03, minw = 1, colour = G.C.WHITE }, - nodes = rows, - }, - }, - }, - }, - } - local p = JIMBO_POSITIONS[mp_jimbo_pos] or JIMBO_POSITIONS[1] - mp_jimbo.children.speech_bubble = UIBox({ - definition = definition, - config = { align = p.bubble_align, offset = p.bubble_offset, parent = mp_jimbo }, - }) - mp_jimbo.children.speech_bubble:set_role({ - role_type = "Minor", - xy_bond = "Weak", - r_bond = "Strong", - major = mp_jimbo, - }) - mp_jimbo.children.speech_bubble.states.visible = true - local word_count = select(2, text:gsub("%S+", "")) - local read_time = math.max(5, word_count * 0.3 + 1) + 5 - mp_jimbo:say_stuff(math.ceil(word_count / 2)) - local bubble_ref = mp_jimbo.children.speech_bubble - G.E_MANAGER:add_event(Event({ - trigger = "after", - timer = "REAL", - blockable = false, - blocking = false, - delay = read_time, - func = function() - if mp_jimbo and mp_jimbo.children.speech_bubble == bubble_ref then - mp_jimbo.children.speech_bubble:remove() - mp_jimbo.children.speech_bubble = nil - end - return true - end, - })) -end - --- Practice mode: spawn Jimbo when opening collection to hint at card spawning (once per boot) -local practice_collection_jimbo = false -local practice_collection_hint_shown = false - -local your_collection_ref = G.FUNCS.your_collection -function G.FUNCS.your_collection(e) - your_collection_ref(e) - if MP.is_practice_mode() and G.STAGE == G.STAGES.RUN and not MP.LOBBY.code and not practice_collection_hint_shown then - practice_collection_hint_shown = true - practice_collection_jimbo = true - MP.UI.create_jimbo(2, localize("k_practice_collection_hint")) - end -end - -local exit_overlay_menu_ref_jimbo = G.FUNCS.exit_overlay_menu -function G.FUNCS:exit_overlay_menu() - if practice_collection_jimbo then - practice_collection_jimbo = false - MP.UI.remove_jimbo() - end - exit_overlay_menu_ref_jimbo(self) -end - -function MP.UI.remove_jimbo() - if not mp_jimbo then return end - local jimbo = mp_jimbo - mp_jimbo = nil - if jimbo.children.speech_bubble then - jimbo.children.speech_bubble:remove() - jimbo.children.speech_bubble = nil - end - if jimbo.children.button then - jimbo.children.button:remove() - jimbo.children.button = nil - end - jimbo.children.card:start_dissolve({ HEX("4e997b") }, nil, nil, true) - if jimbo.children.particles then jimbo.children.particles:fade(0.5) end - G.E_MANAGER:add_event(Event({ - trigger = "after", - blockable = false, - delay = 0.8, - func = function() - jimbo:remove() - return true - end, - })) -end diff --git a/ui/game/lobby_info.lua b/ui/game/lobby_info.lua deleted file mode 100644 index 47c6f9771..000000000 --- a/ui/game/lobby_info.lua +++ /dev/null @@ -1,312 +0,0 @@ -local Disableable_Toggle = MP.UI.Disableable_Toggle - -function G.FUNCS.lobby_info(e) - G.SETTINGS.paused = true - G.FUNCS.overlay_menu({ - definition = MP.UI.lobby_info(), - }) -end - -function MP.UI.lobby_info() - return create_UIBox_generic_options({ - contents = { - create_tabs({ - tabs = { - { - label = localize("b_players"), - chosen = true, - tab_definition_function = MP.UI.create_UIBox_players, - }, - { - label = localize("b_lobby_info"), - chosen = false, - tab_definition_function = MP.UI.create_UIBox_settings, -- saying settings because _options is used in lobby - }, - }, - tab_h = 8, - snap_to_nav = true, - }), - }, - }) -end - -function MP.UI.create_UIBox_settings() -- optimize this please - local ruleset = string.sub(MP.LOBBY.config.ruleset, 12, -1) - local gamemode = string.sub(MP.LOBBY.config.gamemode, 13, -1) - local seed = MP.LOBBY.config.custom_seed == "random" and localize("k_random") or MP.LOBBY.config.custom_seed - return { - n = G.UIT.ROOT, - config = { - emboss = 0.05, - minh = 6, - r = 0.1, - minw = 10, - align = "tm", - padding = 0.2, - colour = G.C.BLACK, - }, - nodes = { - MP.UI.UTILS.create_row({ align = "cm", padding = 0.05 }, { - MP.UI.UTILS.create_text_node((localize("k_" .. ruleset) .. " " .. localize("k_" .. gamemode)), { - colour = G.C.UI.TEXT_LIGHT, - scale = 0.6, - }), - }), - MP.UI.UTILS.create_row({ align = "cm", padding = 0.05 }, { - MP.UI.UTILS.create_text_node((localize("k_current_seed") .. seed), { - colour = G.C.UI.TEXT_LIGHT, - scale = 0.6, - }), - }), - MP.UI.UTILS.create_row({ padding = 0, align = "cr" }, { - Disableable_Toggle({ - enabled_ref_table = MP.LOBBY, - label = localize("b_opts_cb_money"), - ref_table = MP.LOBBY.config, - ref_value = "gold_on_life_loss", - }), - }), - MP.UI.UTILS.create_row({ padding = 0, align = "cr" }, { - Disableable_Toggle({ - enabled_ref_table = MP.LOBBY, - label = localize("b_opts_no_gold_on_loss"), - ref_table = MP.LOBBY.config, - ref_value = "no_gold_on_round_loss", - }), - }), - MP.UI.UTILS.create_row({ padding = 0, align = "cr" }, { - Disableable_Toggle({ - enabled_ref_table = MP.LOBBY, - label = localize("b_opts_death_on_loss"), - ref_table = MP.LOBBY.config, - ref_value = "death_on_round_loss", - }), - }), - MP.UI.UTILS.create_row({ padding = 0, align = "cr" }, { - Disableable_Toggle({ - enabled_ref_table = MP.LOBBY, - label = localize("b_opts_diff_seeds"), - ref_table = MP.LOBBY.config, - ref_value = "different_seeds", - }), - }), - MP.UI.UTILS.create_row({ padding = 0, align = "cr" }, { - Disableable_Toggle({ - enabled_ref_table = MP.LOBBY, - label = localize("b_opts_player_diff_deck"), - ref_table = MP.LOBBY.config, - ref_value = "different_decks", - }), - }), - MP.UI.UTILS.create_row({ padding = 0, align = "cr" }, { - Disableable_Toggle({ - enabled_ref_table = MP.LOBBY, - label = localize("b_opts_multiplayer_jokers"), - ref_table = MP.LOBBY.config, - ref_value = "multiplayer_jokers", - }), - }), - MP.UI.UTILS.create_row({ padding = 0, align = "cr" }, { - Disableable_Toggle({ - enabled_ref_table = MP.LOBBY, - label = localize("b_opts_normal_bosses"), - ref_table = MP.LOBBY.config, - ref_value = "normal_bosses", - }), - }), - }, - } -end - -function MP.UI.create_UIBox_players() - local players = { - MP.UI.create_UIBox_player_row("host"), - MP.UI.create_UIBox_player_row("guest"), - } - - local t = { - n = G.UIT.ROOT, - config = { align = "cm", minw = 3, padding = 0.1, r = 0.1, colour = G.C.CLEAR }, - nodes = { - MP.UI.UTILS.create_row({ align = "cm", padding = 0.04 }, players), - }, - } - - return t -end - -function MP.UI.create_UIBox_mods_list(type) - return { - n = G.UIT.R, - config = { align = "cm", colour = G.C.WHITE, r = 0.1 }, - nodes = { - { - n = G.UIT.C, - config = { align = "cm" }, - nodes = MP.UI.modlist_to_view( - type == "host" and MP.LOBBY.host.config.Mods or MP.LOBBY.guest.config.Mods, - G.C.UI.TEXT_DARK - ), - }, - }, - } -end - -function MP.UI.create_UIBox_player_row(type) - local player_name = type == "host" and MP.LOBBY.host.username or MP.LOBBY.guest.username - local lives = MP.GAME.enemy.lives - local highest_score = MP.GAME.enemy.highest_score - local skips = MP.GAME.enemy.skips or 0 - if (type == "host" and MP.LOBBY.is_host) or (type == "guest" and not MP.LOBBY.is_host) then - lives = MP.GAME.lives - highest_score = MP.GAME.highest_score - skips = G.GAME.skips or 0 - end - return { - n = G.UIT.R, - config = { - align = "cm", - padding = 0.1, - r = 0.1, - colour = darken(G.C.JOKER_GREY, 0.1), - emboss = 0.05, - hover = true, - force_focus = true, - on_demand_tooltip = { - text = { localize("k_mods_list") }, - filler = { func = MP.UI.create_UIBox_mods_list, args = type }, - }, - }, - nodes = { - { - n = G.UIT.C, - config = { align = "cm" }, - nodes = { - { - n = G.UIT.C, - config = { - align = "cm", - padding = 0.05, - r = 0.1, - colour = G.C.MULT, - minw = 2, - maxw = 2, - outline = 0.5, - outline_colour = G.C.MULT, - emboss = 0.07, - }, - nodes = { - { - n = G.UIT.T, - config = { - text = tostring(lives) .. " " .. localize("k_lives"), - scale = 0.375, - colour = G.C.UI.TEXT_LIGHT, - shadow = true, - }, - }, - }, - }, - }, - }, - { - n = G.UIT.C, - config = { align = "cl", padding = 0, minw = 4 }, - nodes = { - { - n = G.UIT.C, - config = { align = "cm", minw = 4.5, maxw = 4.5 }, - nodes = { - { - n = G.UIT.T, - config = { - text = "" .. player_name, - scale = 0.45, - colour = G.C.UI.TEXT_LIGHT, - shadow = true, - }, - }, - }, - }, - }, - }, - { - n = G.UIT.C, - config = { align = "cm" }, - nodes = { - { - n = G.UIT.C, - config = { - align = "cm", - padding = 0.05, - r = 0.1, - colour = G.C.PURPLE, - minw = 1.75, - maxw = 1.75, - outline = 0.5, - outline_colour = G.C.PURPLE, - emboss = 0.07, - }, - nodes = { - { - n = G.UIT.T, - config = { - text = tostring(skips) .. " " .. localize("k_skips"), - scale = 0.375, - colour = G.C.UI.TEXT_LIGHT, - shadow = true, - }, - }, - }, - }, - -- Let's keep it for future, just in case - -- { - -- n = G.UIT.C, - -- config = { align = "cr", padding = 0.01, r = 0.1, colour = G.C.CHIPS, minw = 1.1 }, - -- nodes = { - -- { - -- n = G.UIT.T, - -- config = { - -- text = "???", -- Will be hands in the future - -- scale = 0.45, - -- colour = G.C.UI.TEXT_LIGHT, - -- }, - -- }, - -- { n = G.UIT.B, config = { w = 0.08, h = 0.01 } }, - -- }, - -- }, - -- { - -- n = G.UIT.C, - -- config = { align = "cl", padding = 0.01, r = 0.1, colour = G.C.MULT, minw = 1.1 }, - -- nodes = { - -- { n = G.UIT.B, config = { w = 0.08, h = 0.01 } }, - -- { - -- n = G.UIT.T, - -- config = { - -- text = "???", -- Will be discards in the future - -- scale = 0.45, - -- colour = G.C.UI.TEXT_LIGHT, - -- }, - -- }, - -- }, - -- }, - }, - }, - { - n = G.UIT.C, - config = { align = "cm", padding = 0.05, colour = G.C.L_BLACK, r = 0.1, minw = 3, maxw = 3 }, - nodes = { - { - n = G.UIT.T, - config = { - text = MP.INSANE_INT.to_string(highest_score), - scale = 0.425, - colour = G.C.FILTER, - shadow = true, - }, - }, - }, - }, - }, - } -end diff --git a/ui/game/round.lua b/ui/game/round.lua deleted file mode 100644 index 673b02795..000000000 --- a/ui/game/round.lua +++ /dev/null @@ -1,90 +0,0 @@ --- Contains function overrides (monkey-patches) for round-related functionality --- Overrides functions like ease_ante, ease_round, reset_blinds, EventManager:add_event - -local ease_ante_ref = ease_ante -function ease_ante(mod) - if MP.is_mp_or_ghost() and not MP.LOBBY.config.disable_live_and_timer_hud then - -- Prevents easing multiple times at once - if MP.GAME.antes_keyed[MP.GAME.ante_key] then return end - - -- pizza: remove discards - if MP.GAME.pizza_discards > 0 then - G.GAME.round_resets.discards = G.GAME.round_resets.discards - MP.GAME.pizza_discards - ease_discard(-MP.GAME.pizza_discards) - MP.GAME.pizza_discards = 0 - end - - MP.GAME.antes_keyed[MP.GAME.ante_key] = true - if not MP.GHOST.is_active() then - MP.ACTIONS.set_ante(G.GAME.round_resets.ante + mod) - end - G.E_MANAGER:add_event(Event({ - trigger = "immediate", - func = function() - G.GAME.round_resets.ante = G.GAME.round_resets.ante + mod - check_and_set_high_score("furthest_ante", G.GAME.round_resets.ante) - return true - end, - })) - - -- technically doesn't have to be in this block, but less logspam is nicer - MP.UTILS.log_mem_debug_messages() - end - return ease_ante_ref(mod) -end - -local ease_round_ref = ease_round -function ease_round(mod) - if MP.is_mp_or_ghost() and not MP.LOBBY.config.disable_live_and_timer_hud and MP.LOBBY.config.timer then - G.E_MANAGER:add_event(Event({ - trigger = 'immediate', - func = function() - G.GAME.round = G.GAME.round + mod - play_sound('timpani', 0.8) - play_sound('generic1') - return true - end - })) - return - end - ease_round_ref(mod) -end - -local reset_blinds_ref = reset_blinds -function reset_blinds() - reset_blinds_ref() - G.GAME.round_resets.pvp_blind_choices = {} - - local gamemode_key = MP.get_active_gamemode() - if gamemode_key and MP.Gamemodes[gamemode_key] then - local mp_small_choice, mp_big_choice, mp_boss_choice = - MP.Gamemodes[gamemode_key]:get_blinds_by_ante(G.GAME.round_resets.ante) - G.GAME.round_resets.blind_choices.Small = mp_small_choice or G.GAME.round_resets.blind_choices.Small - G.GAME.round_resets.blind_choices.Big = mp_big_choice or G.GAME.round_resets.blind_choices.Big - G.GAME.round_resets.blind_choices.Boss = mp_boss_choice or G.GAME.round_resets.blind_choices.Boss - end - - if MP.GHOST.is_active() then - MP.GHOST.init_playback(G.GAME.round_resets.ante) - end -end - --- necessary for showdown mode to ensure rounds progress properly, only affects nemesis blind to avoid possible incompatibilities (though i know many mods like to do this exact hook) -local blind_get_type = Blind.get_type -function Blind:get_type() - if self.name == "bl_mp_nemesis" then - return G.GAME.blind_on_deck - else - return blind_get_type(self) - end -end - --- added event suppression for a lovely patch for ease_ante -local add_event_ref = EventManager.add_event -function EventManager:add_event(event, queue, front) - if MP.suppress_next_event then - MP.suppress_next_event = false - return - end - return add_event_ref(self, event, queue, front) -end diff --git a/ui/game/ruleset_info_menu.lua b/ui/game/ruleset_info_menu.lua deleted file mode 100644 index 246938cb4..000000000 --- a/ui/game/ruleset_info_menu.lua +++ /dev/null @@ -1,166 +0,0 @@ --- Render a localized string with {C:colour}...{} tags and \n line breaks as a --- stack of UIT rows. loc_parse_string returns nil on empty input, so blank --- lines are emitted as spacers without going through it. -local function parse_colored_lines(str, scale) - scale = scale or 0.6 - local rows = {} - for line in (str .. "\n"):gmatch("(.-)\n") do - if line == "" then - rows[#rows + 1] = { n = G.UIT.R, config = { minh = 0.15 } } - else - local segments = {} - for _, seg in ipairs(loc_parse_string(line)) do - local text = seg.strings[1] - if type(text) == "string" and text ~= "" then - segments[#segments + 1] = { - n = G.UIT.T, - config = { - text = text, - scale = scale, - colour = loc_colour(seg.control.C, G.C.UI.TEXT_LIGHT), - }, - } - end - end - rows[#rows + 1] = { n = G.UIT.R, config = { align = "cl" }, nodes = segments } - end - end - return rows -end - -function MP.UI.CreateRulesetInfoMenu(config) - local has_mp_content = config.multiplayer_content and "k_yes" or "k_no" - local has_mp_color = config.multiplayer_content and G.C.GREEN or G.C.RED - local forces_lobby = config.forced_lobby_options and "k_yes" or "k_no" - local forces_lobby_color = config.forced_lobby_options and G.C.GREEN or G.C.RED - local forces_gamemode_text = config.forced_gamemode_text or "k_no" - local forces_gamemode_color = config.forced_gamemode_text and G.C.GREEN or G.C.RED - - local rows = { - { - n = G.UIT.R, - config = { - align = "tm", - }, - nodes = { - MP.UI.BackgroundGrouping(localize("k_has_multiplayer_content"), { - { - n = G.UIT.T, - config = { - text = localize(has_mp_content), - scale = 0.8, - colour = has_mp_color, - }, - }, - }, { col = true, text_scale = 0.6 }), - { - n = G.UIT.C, - config = { - minw = 0.1, - minh = 0.1, - }, - }, - MP.UI.BackgroundGrouping(localize("k_forces_lobby_options"), { - { - n = G.UIT.T, - config = { - text = localize(forces_lobby), - scale = 0.8, - colour = forces_lobby_color, - }, - }, - }, { col = true, text_scale = 0.6 }), - { - n = G.UIT.C, - config = { - minw = 0.1, - minh = 0.1, - }, - }, - MP.UI.BackgroundGrouping(localize("k_forces_gamemode"), { - { - n = G.UIT.T, - config = { - text = localize(forces_gamemode_text), - scale = 0.8, - colour = forces_gamemode_color, - }, - }, - }, { col = true, text_scale = 0.6 }), - }, - }, - { - n = G.UIT.R, - config = { - minw = 0.05, - minh = 0.05, - }, - }, - } - - rows[#rows + 1] = { - n = G.UIT.R, - config = { - align = "cl", - padding = 0.1, - }, - nodes = { - { - n = G.UIT.C, - config = { align = "cl" }, - nodes = parse_colored_lines(localize(config.description_key), 0.6), - }, - }, - } - - if config.stickers and #config.stickers > 0 then - local sticker_nodes = {} - for _, key in ipairs(config.stickers) do - local sticker_obj = SMODS.Stickers and SMODS.Stickers["mp_sticker_" .. key] - if sticker_obj then - local atlas = G.ASSET_ATLAS[sticker_obj.atlas] - if atlas then - local sprite = Sprite(0, 0, 0.55, 0.74, atlas, sticker_obj.pos or { x = 0, y = 0 }) - sticker_nodes[#sticker_nodes + 1] = { - n = G.UIT.C, - config = { align = "cm", padding = 0.05 }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm" }, - nodes = { { n = G.UIT.O, config = { object = sprite } } }, - }, - { - n = G.UIT.R, - config = { align = "cm", padding = 0.02 }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize{ type = "name_text", set = "Other", key = "mp_sticker_" .. key }, - scale = 0.3, - colour = sticker_obj.badge_colour or G.C.UI.TEXT_LIGHT, - }, - }, - }, - }, - }, - } - end - end - end - if #sticker_nodes > 0 then - rows[#rows + 1] = { - n = G.UIT.R, - config = { align = "cr" }, - nodes = { - MP.UI.BackgroundGrouping(localize("k_may_roll_stickers"), { - { n = G.UIT.R, config = { align = "cm" }, nodes = sticker_nodes }, - }, { text_scale = 0.4 }), - }, - } - end - end - - return rows -end diff --git a/ui/game/timer.lua b/ui/game/timer.lua deleted file mode 100644 index c68cf56f4..000000000 --- a/ui/game/timer.lua +++ /dev/null @@ -1,536 +0,0 @@ --- ease_round override moved to game/round.lua - -function MP.UI.can_timer_opponent() - if not MP.LOBBY.config.timer then return false end - if MP.GAME.pvp_countdown_in_progress then return false end - if MP.GAME.timer <= 0 then return false end - if MP.GAME.nemesis_timer_started then return false end - if MP.GAME.enemy.location_type == "loc_ready" then return false end - if G.STATE == G.STATES.GAME_OVER or MP.GAME.won then return false end - if MP.is_pvp_boss() and MP.is_layer_active("pvp_timer") then - if MP.GAME.end_pvp then return false end - if G.STATE == G.STATES.ROUND_EVAL or G.STATE == G.STATES.NEW_ROUND then return false end - if (MP.LOBBY.is_host and "host" or "guest") == MP.GAME.pvp_timer_order then return true end - return false - end - return MP.GAME.ready_blind -end - -function G.FUNCS.mp_timer_button(e) - -- Under pressure_timer the local timer auto-ticks regardless of timer_started, - -- but the button still needs to fire — pressing it broadcasts startAnteTimer, - -- which is what flips the opponent's nemesis_timer_started and triggers 2x. - if MP.UI.can_timer_opponent() then - if not MP.GAME.timer_started then - MP.ACTIONS.start_ante_timer() - if MP.is_pvp_boss() and MP.is_layer_active("pvp_timer") then MP.GAME.pvp_timer_activated = true end - else - MP.ACTIONS.pause_ante_timer() - if MP.is_pvp_boss() and MP.is_layer_active("pvp_timer") then MP.GAME.pvp_timer_activated = false end - end - end -end - -function MP.UI.timer_hud() - if MP.LOBBY.config.timer then - return { - n = G.UIT.C, - config = { - align = "cm", - padding = 0.05, - minw = 1.45, - minh = 1, - colour = G.C.DYN_UI.BOSS_MAIN, - emboss = 0.05, - r = 0.1, - hover = true, - collideable = true, - }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm", maxw = 1.35 }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("k_timer"), - minh = 0.33, - scale = 0.34, - colour = G.C.UI.TEXT_LIGHT, - shadow = true, - }, - }, - }, - }, - { - n = G.UIT.R, - config = { - align = "cm", - r = 0.1, - minw = 1.2, - colour = G.C.DYN_UI.BOSS_DARK, - id = "row_round_text", - func = "set_timer_box", - button = "mp_timer_button", - hover = true, - collideable = true, - }, - nodes = { - { - n = G.UIT.O, - config = { - object = DynaText({ - string = MP.is_layer_active("speedlatro_timer") and ">>" or { - { - ref_table = setmetatable({}, { - __index = function() - if not MP.GAME.timer then return 0 end - -- All numbers bigger then 10 - display as integer - -- Also accounting for rounding to prevent 10.0 to be displayed - if MP.GAME.timer > 9.95 then - return string.format("%d", MP.GAME.timer) - end - -- Less than 10 - display decimal part - return string.format("%.1f", MP.GAME.timer) - end, - }), - ref_value = "timer", - }, - }, -- sorry - colours = { G.C.UI.TEXT_DARK }, - shadow = true, - scale = 0.8, - }), - id = "timer_UI_count", - }, - }, - }, - }, - }, - } - end -end -function MP.UI.nemesis_timer_hud() - return { - n = G.UIT.ROOT, - config = { align = "cm", colour = G.C.CLEAR }, - nodes = { - { - n = G.UIT.C, - config = { - align = "cm", - padding = 0.05, - minw = 1.45, - minh = 1, - colour = G.C.DYN_UI.BOSS_MAIN, - emboss = 0.05, - r = 0.1, - }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm", maxw = 1.35 }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("k_nemesis_timer"), - minh = 0.33, - scale = 0.34, - colour = G.C.UI.TEXT_LIGHT, - shadow = true, - }, - }, - }, - }, - { - n = G.UIT.R, - config = { - align = "cm", - r = 0.1, - minw = 1.2, - colour = G.C.DYN_UI.BOSS_DARK, - id = "row_round_text", - }, - nodes = { - { - n = G.UIT.O, - config = { - object = DynaText({ - string = { - { - ref_table = setmetatable({}, { - __index = function() - if not MP.GAME.enemy or not MP.GAME.enemy.last_timer then - return "0.0" - end - -- All numbers bigger then 10 - display as integer - -- Also accounting for rounding to prevent 10.0 to be displayed - if MP.GAME.enemy.last_timer > 9.95 then - return string.format("%d", MP.GAME.enemy.last_timer) - end - -- Less than 10 - display decimal part - return string.format("%.1f", MP.GAME.enemy.last_timer) - end, - }), - ref_value = "timer", - }, - }, -- sorry - colours = { G.C.IMPORTANT }, - shadow = true, - scale = 0.8, - }), - id = "timer_UI_count", - }, - }, - }, - }, - }, - }, - }, - } -end - -function MP.UI.start_pvp_countdown(callback) - local seconds = countdown_seconds - local tick_delay = 1 - if MP.LOBBY and MP.LOBBY.config and MP.LOBBY.config.pvp_countdown_seconds then - seconds = MP.LOBBY.config.pvp_countdown_seconds - end - MP.GAME.pvp_countdown_in_progress = true - MP.GAME.pvp_countdown = seconds - - G.CONTROLLER.locks.enter_pvp = true - - local function show_next() - if MP.GAME.pvp_countdown <= 0 then - if callback then callback() end - G.E_MANAGER:add_event(Event({ - blocking = false, - func = function() - G.E_MANAGER:add_event(Event({ - blocking = false, - func = function() - MP.GAME.pvp_countdown_in_progress = nil - return true - end, - })) - return true - end, - })) - G.E_MANAGER:add_event(Event({ - no_delete = true, - trigger = "after", - blocking = false, - blockable = false, - delay = 1, - timer = "TOTAL", - func = function() - G.CONTROLLER.locks.enter_pvp = nil - return true - end, - })) - return true - end - - G.FUNCS.attention_text_realtime({ - text = tostring(MP.GAME.pvp_countdown), - scale = 5, - hold = 0.85, - align = "cm", - major = G.play, - backdrop_colour = G.C.MULT, - }) - - play_sound("tarot2", 1, 0.4) - - MP.GAME.pvp_countdown = MP.GAME.pvp_countdown - 1 - - G.E_MANAGER:add_event(Event({ - trigger = "after", - timer = "REAL", - delay = tick_delay, - blockable = false, - func = show_next, - })) - return true - end - - G.E_MANAGER:add_event(Event({ - trigger = "after", - timer = "REAL", - delay = 0, - blockable = false, - func = show_next, - })) -end - -SMODS.Gradient({ - key = "timer_accelerated", - cycle = 1, - colours = { - mix_colours(G.C.WHITE, G.C.IMPORTANT, 0.55), - G.C.IMPORTANT, - G.C.IMPORTANT, - G.C.IMPORTANT, - G.C.IMPORTANT, - }, - update = function(self, dt) - if #self.colours < 2 or not MP.LOBBY.config.ruleset then return end - local speedup = MP.GAME.timer_started and 1 or MP.current_ruleset().timer_speedup_multiplier or 1 - - -- When you "timering" opponent, timer stops and you cannot see is button pressed - -- So we need switch to real timer to make it flush - local time_value = MP.GAME.timer_started and G.TIMERS.REAL or -(MP.GAME.timer or 0) - local timer = (time_value / speedup) % self.cycle - local start_index = math.ceil(timer * #self.colours / self.cycle) - if start_index == 0 then start_index = 1 end - local end_index = start_index == #self.colours and 1 or start_index + 1 - local start_colour, end_colour = self.colours[start_index], self.colours[end_index] - local partial_timer = (timer % (self.cycle / #self.colours)) * #self.colours / self.cycle - for i = 1, 4 do - if self.interpolation == "linear" then - self[i] = start_colour[i] + partial_timer * (end_colour[i] - start_colour[i]) - elseif self.interpolation == "trig" then - self[i] = start_colour[i] - + 0.5 * (1 - math.cos(partial_timer * math.pi)) * (end_colour[i] - start_colour[i]) - end - end - end, -}) -SMODS.Gradient({ - key = "speedlatro_timer_accelerated", - cycle = 1, - colours = { - G.C.WHITE, - G.C.WHITE, - G.C.WHITE, - G.C.WHITE, - mix_colours(G.C.IMPORTANT, G.C.WHITE, 0.55), - }, - update = function(self, dt) - if #self.colours < 2 or not MP.speedlatro_timer then return end - local speedup = MP.current_ruleset().timer_speedup_multiplier or 1 - - local timer_value = MP.GAME.ready_blind and 0 or -(MP.speedlatro_timer.real or 0) - local timer = (timer_value / speedup) % self.cycle - local start_index = math.ceil(timer * #self.colours / self.cycle) - if start_index == 0 then start_index = 1 end - local end_index = start_index == #self.colours and 1 or start_index + 1 - local start_colour, end_colour = self.colours[start_index], self.colours[end_index] - local partial_timer = (timer % (self.cycle / #self.colours)) * #self.colours / self.cycle - for i = 1, 4 do - if self.interpolation == "linear" then - self[i] = start_colour[i] + partial_timer * (end_colour[i] - start_colour[i]) - elseif self.interpolation == "trig" then - self[i] = start_colour[i] - + 0.5 * (1 - math.cos(partial_timer * math.pi)) * (end_colour[i] - start_colour[i]) - end - end - end, -}) - -function G.FUNCS.set_timer_box(e) - if e.states and e.parent and e.parent.states then - local is_hovered = e.states.hover.is or e.parent.states.hover.is - if is_hovered and not e.parent.children.mp_timer_info then - e.parent.children.mp_timer_info = UIBox({ - definition = MP.UI.nemesis_timer_hud(), - config = { - parent = e.parent, - major = e.parent, - align = "tm", - offset = { x = 0, y = -0.1 }, - }, - }) - elseif not is_hovered and e.parent.children.mp_timer_info then - e.parent.children.mp_timer_info:remove() - e.parent.children.mp_timer_info = nil - end - end - if MP.LOBBY.config.timer then - if MP.GAME.timer_started or MP.GAME.nemesis_timer_started then - e.config.colour = G.C.DYN_UI.BOSS_DARK - -- Pulse because why not - e.children[1].config.object.colours = { - MP.GAME.timer > 0 and SMODS.Gradients["mp_timer_accelerated"] or G.C.IMPORTANT, - } - return - end - if not MP.GAME.timer_started and MP.UI.can_timer_opponent() then - e.config.colour = G.C.IMPORTANT - e.children[1].config.object.colours = { G.C.UI.TEXT_LIGHT } - return - end - e.config.colour = G.C.DYN_UI.BOSS_DARK - e.children[1].config.object.colours = { - (not MP.is_pvp_boss() and not MP.GAME.pvp_countdown_in_progress and MP.is_layer_active("pressure_timer")) - and G.C.IMPORTANT - or G.C.UI.TEXT_DARK, - } - end -end - -local animation_budget_capacity = 40 -local animation_budget_restore_rate = 2.5 -local animation_budget_decay_rate = 0 - -MP.TIMER_ANIMATION_BUDGET = animation_budget_capacity - -local gameUpdateRef = Game.update ----@diagnostic disable-next-line: duplicate-set-field -function Game:update(dt) - gameUpdateRef(self, dt) - - -- If I let timer tick only when we're in MP context - -- then big jump of dt will happend between state changes. - -- So we need count time all the time. Sad! - - -- Again, we cannot rely on any variant of dt since game does not - -- update at all while window is grabbed, - -- and when you release it dt does not reflect time wasted - - -- This thing cost NOTHING im comparision to game drawing and UI updating - -- We can afford some inefficiencies. - local new_time = love.timer.getTime() - local timer_dt = new_time - (MP.TIMER_CLOCK or new_time) - MP.TIMER_CLOCK = new_time - - -- Remove gamespeed force setted up for previous frame - MP.TIMER_FORCE_GAMESPEED = false - - -- Restore animation budget (used to prevent skipping too much time by animations) - MP.TIMER_ANIMATION_BUDGET = - math.min(animation_budget_capacity, MP.TIMER_ANIMATION_BUDGET + timer_dt * animation_budget_restore_rate) - - -- Bail fast: not an MP PvP-timer context - if G.STATE == G.STATES.GAME_OVER or MP.GAME.won then return end - if not MP.LOBBY.code then return end - if not MP.LOBBY.config.timer then return end - if MP.GAME.timer_consumed then return end - if MP.GAME.pvp_countdown_in_progress then return end - if not MP.GAME.timer or MP.GAME.timer <= 0 then return end - if MP.is_layer_active("speedlatro_timer") then return end - - local is_no_animation_timer = MP.is_layer_active("no_animation_timer") - local is_pressure_timer = MP.is_layer_active("pressure_timer") - local is_pvp_boss = MP.is_pvp_boss() - local is_pvp_timer = MP.is_layer_active("pvp_timer") and is_pvp_boss - - -- Tick gating differs by layer: - -- pressure_timer ON -> tick during regular play (not ready_blind, not pvp boss) - -- pressure_timer OFF -> tick whenever someone pressed a timer button. - -- timer_started = YOU pressed it; nemesis_timer_started = OPPONENT pressed it - -- (i.e. they're timering you). Either way your local timer should tick. - local should_check_animations = false - - if is_pvp_timer then - -- PvP timer: tick when opponent timering, stop when animations, state checks, pvp blind only - if not MP.GAME.nemesis_timer_started then return end - if (MP.LOBBY.is_host and "host" or "guest") == MP.GAME.pvp_timer_order then return end - if G.GAME.current_round.hands_left <= 0 then return end - if G.STATE == G.STATES.NEW_ROUND or G.STATE == G.STATES.ROUND_EVAL then return end - should_check_animations = true - elseif is_pressure_timer then - -- Pressure timer: tick from the start of a game, stop when reached pvp (unless timered) or animations, not in pvp blind - if MP.GAME.pvp_reached and not MP.GAME.nemesis_timer_started then return end - if MP.GAME.ready_blind or is_pvp_boss then return end - should_check_animations = true - elseif is_no_animation_timer then - -- No-animation timer: tick when opponen timering, stop when animations, not in pvp - if not MP.GAME.nemesis_timer_started then return end - if MP.GAME.ready_blind or is_pvp_boss then return end - should_check_animations = true - else - -- Old timer: tick when opponent timering, not in pvp - if is_pvp_boss then return end - if MP.GAME.pvp_reached and MP.GAME.ready_blind and not MP.GAME.timer_started then return end - if not (MP.GAME.timer_started or MP.GAME.nemesis_timer_started) then return end - end - - if should_check_animations then - MP.TIMER_FORCE_GAMESPEED = true - - -- Don't tick during animations, unless the user is paused or has a menu open - local interactive = not ((G.CONTROLLER.locked and not G.CONTROLLER.locks.frame) or (G.GAME.STOP_USE or 0) > 0) - local menu_or_paused = G.SETTINGS.paused or G.OVERLAY_MENU - - -- Consume animations time from budget - if not (interactive or menu_or_paused) then - MP.TIMER_ANIMATION_BUDGET = math.max( - 0, - MP.TIMER_ANIMATION_BUDGET - timer_dt * (animation_budget_restore_rate + animation_budget_decay_rate) - ) - if MP.TIMER_ANIMATION_BUDGET > 0 then return end - end - end - - local speedup = is_pvp_timer and 1 or MP.current_ruleset().timer_speedup_multiplier or 1 - local tick_mult = MP.GAME.nemesis_timer_started and speedup or 1 - MP.GAME.timer = math.max(0, MP.GAME.timer - timer_dt * tick_mult) - - if MP.GAME.timer == 0 then - MP.GAME.timer_consumed = true - -- PvP timer: end PvP immediately as a loss (only when timered by opponent) - if is_pvp_timer then - if MP.GAME.nemesis_timer_started then MP.ACTIONS.fail_pvp_timer() end - -- Old, No-animations: lose a live when timered by opponent - -- Pressure timers: lose a live regardless - elseif is_pressure_timer or MP.GAME.nemesis_timer_started then - if MP.GAME.timers_forgiven < MP.LOBBY.config.timer_forgiveness then - MP.GAME.timers_forgiven = MP.GAME.timers_forgiven + 1 - else - MP.ACTIONS.fail_timer() - end - end - end -end - -function MP.UI.consume_timer(amount, silent, min_timer) - if amount > 0 and MP.LOBBY.config.timer and MP.GAME.timer and MP.GAME.timer > (min_timer or 0) then - MP.GAME.timer = math.max(0, MP.GAME.timer - amount) - if not silent then - local timer_ui = G.HUD:get_UIE_by_ID("timer_UI_count") - if timer_ui then timer_ui.config.object:juice_up() end - end - end -end - -function MP.UI.restore_timer(amount, silent, max_timer) - if amount > 0 and MP.LOBBY.config.timer and MP.GAME.timer and (not max_timer or MP.GAME.timer < max_timer) then - MP.GAME.timer = math.max(0, MP.GAME.timer + amount) - if not silent then - local timer_ui = G.HUD:get_UIE_by_ID("timer_UI_count") - if timer_ui then timer_ui.config.object:juice_up() end - end - end -end - -local old_play = G.FUNCS.play_cards_from_highlighted -function G.FUNCS.play_cards_from_highlighted(...) - -- Carbon: capture which hand slots are played BEFORE old_play consumes them. - local played = MP.UTILS.highlighted_hand_indices() - old_play(...) - if #played > 0 then MP.RLOG.record("play", { played }, "action:play,cards:" .. table.concat(played, ".")) end - if G.play and G.play.cards[1] then return end - if MP.LOBBY.code and MP.LOBBY.config.timer and not MP.GAME.timer_consumed then - if MP.is_pvp_boss() then - -- PvP timer: Increment timer when hand is played during pvp - if MP.is_layer_active("pvp_timer") then - local increment = MP.LOBBY.config.pvp_timer_hand_played_increment_seconds - or MP.current_ruleset().pvp_timer_hand_played_increment_seconds - or 0 - MP.UI.restore_timer(increment) - end - else - -- No-animation, Pressure timers: Increment timer when hand is played during regular blinds - if MP.is_any_layer_active({ "no_animation_timer", "pressure_timer" }) then - local increment = MP.LOBBY.config.timer_hand_played_increment_seconds - or MP.current_ruleset().timer_hand_played_increment_seconds - or 0 - MP.UI.restore_timer(increment) - end - end - end -end diff --git a/ui/game/zz_blind_raiser_score.lua b/ui/game/zz_blind_raiser_score.lua deleted file mode 100644 index 638ece1ad..000000000 --- a/ui/game/zz_blind_raiser_score.lua +++ /dev/null @@ -1,19 +0,0 @@ --- Loaded last in ui/game so the Blind Raiser score override is applied after --- Multiplayer's other Blind:set_blind wrappers have finished. -if Blind and type(Blind.set_blind) == "function" then - local blind_set_blind_ref = Blind.set_blind - function Blind:set_blind(blind, reset, silent) - local ret = blind_set_blind_ref(self, blind, reset, silent) - if MP.BLIND_RAISER and MP.BLIND_RAISER.score_for_blind then - local score_ante = G.GAME.round_resets.blind_ante or G.GAME.round_resets.ante - self.chips = MP.BLIND_RAISER.score_for_blind( - blind or (self.config and self.config.blind), - G.GAME.blind_on_deck, - self.chips, - score_ante - ) - self.chip_text = number_format(self.chips) - end - return ret - end -end diff --git a/ui/lobby/_lobby_options/advanced_tab.lua b/ui/lobby/_lobby_options/advanced_tab.lua deleted file mode 100644 index 64d4c3478..000000000 --- a/ui/lobby/_lobby_options/advanced_tab.lua +++ /dev/null @@ -1,207 +0,0 @@ -local function send_lobby_options(value) - MP.ACTIONS.lobby_options() -end - -function G.FUNCS.custom_seed_overlay(e) - G.FUNCS.overlay_menu({ - definition = G.UIDEF.create_UIBox_custom_seed_overlay(), - }) -end - -function G.FUNCS.custom_seed_reset(e) - MP.LOBBY.config.custom_seed = "random" - send_lobby_options() -end - -function toggle_different_seeds() - G.FUNCS.lobby_options() - send_lobby_options() -end - -function G.FUNCS.display_custom_seed(e) - local display = MP.LOBBY.config.custom_seed == "random" and localize("k_random") or MP.LOBBY.config.custom_seed - if display ~= e.children[1].config.text then - e.children[2].config.text = display - e.UIBox:recalculate(true) - end -end - -function G.UIDEF.create_UIBox_custom_seed_overlay() - return create_UIBox_generic_options({ - back_func = "lobby_options", - contents = { - { - n = G.UIT.R, - config = { align = "cm", colour = G.C.CLEAR }, - nodes = { - { - n = G.UIT.C, - config = { align = "cm", minw = 0.1 }, - nodes = { - create_text_input({ - max_length = 8, - all_caps = true, - ref_table = MP.LOBBY, - ref_value = "temp_seed", - prompt_text = localize("k_enter_seed"), - keyboard_offset = 4, - callback = function(val) - MP.LOBBY.config.custom_seed = MP.LOBBY.temp_seed - send_lobby_options() - end, - }), - { - n = G.UIT.B, - config = { w = 0.1, h = 0.1 }, - }, - { - n = G.UIT.T, - config = { - scale = 0.3, - text = localize("k_enter_to_save"), - colour = G.C.UI.TEXT_LIGHT, - }, - }, - }, - }, - }, - }, - }, - }) -end - -local function create_custom_seed_section() - if MP.LOBBY.config.different_seeds then return { n = G.UIT.B, config = { w = 0.1, h = 0.1 } } end - - return { - n = G.UIT.R, - config = { padding = 0, align = "cr" }, - nodes = { - { - n = G.UIT.R, - config = { - padding = 0, - align = "cr", - }, - nodes = { - { - n = G.UIT.C, - config = { - padding = 0, - align = "cm", - }, - nodes = { - { - n = G.UIT.R, - config = { - padding = 0.2, - align = "cr", - func = "display_custom_seed", - }, - nodes = { - { - n = G.UIT.T, - config = { - scale = 0.45, - text = localize("k_current_seed"), - colour = G.C.UI.TEXT_LIGHT, - }, - }, - { - n = G.UIT.T, - config = { - scale = 0.45, - text = MP.LOBBY.config.custom_seed, - colour = G.C.UI.TEXT_LIGHT, - }, - }, - }, - }, - { - n = G.UIT.R, - config = { - padding = 0.2, - align = "cr", - }, - nodes = { - MP.UI.Disableable_Button({ - id = "custom_seed_overlay", - button = "custom_seed_overlay", - colour = G.C.BLUE, - minw = 3.65, - minh = 0.6, - label = { - localize("b_set_custom_seed"), - }, - disabled_text = { - localize("b_set_custom_seed"), - }, - scale = 0.45, - col = true, - enabled_ref_table = MP.LOBBY, - enabled_ref_value = "is_host", - }), - { - n = G.UIT.B, - config = { - w = 0.1, - h = 0.1, - }, - }, - MP.UI.Disableable_Button({ - id = "custom_seed_reset", - button = "custom_seed_reset", - colour = G.C.RED, - minw = 1.65, - minh = 0.6, - label = { - localize("b_reset"), - }, - disabled_text = { - localize("b_reset"), - }, - scale = 0.45, - col = true, - enabled_ref_table = MP.LOBBY, - enabled_ref_value = "is_host", - }), - }, - }, - }, - }, - }, - }, - }, - } -end - -function MP.UI.create_advanced_options_tab() - return { - n = G.UIT.ROOT, - config = { - emboss = 0.05, - minh = 4, - r = 0.1, - minw = 10, - align = "tm", - padding = 0.2, - colour = G.C.BLACK, - }, - nodes = { - create_lobby_option_toggle("preview_disabled_toggle", "b_opts_disable_preview", "preview_disabled"), - create_lobby_option_toggle("order_toggle", "b_opts_the_order", "the_order"), - MP.is_layer_active("smallworld") and create_lobby_option_toggle( - "legacy_smallworld_toggle", - "b_opts_legacy_smallworld", - "legacy_smallworld" - ) or nil, - create_lobby_option_toggle( - "different_seeds_toggle", - "b_opts_diff_seeds", - "different_seeds", - toggle_different_seeds - ), - create_custom_seed_section(), - }, - } -end diff --git a/ui/lobby/_lobby_options/gameplay_tab.lua b/ui/lobby/_lobby_options/gameplay_tab.lua deleted file mode 100644 index ec8b215ad..000000000 --- a/ui/lobby/_lobby_options/gameplay_tab.lua +++ /dev/null @@ -1,24 +0,0 @@ -function MP.UI.create_gameplay_options_tab() - return { - n = G.UIT.ROOT, - config = { - emboss = 0.05, - minh = 3, - r = 0.1, - minw = 10, - align = "tm", - padding = 0.2, - colour = G.C.BLACK, - }, - nodes = { - create_lobby_option_toggle("gold_on_life_loss_toggle", "b_opts_cb_money", "gold_on_life_loss"), - create_lobby_option_toggle( - "no_gold_on_round_loss_toggle", - "b_opts_no_gold_on_loss", - "no_gold_on_round_loss" - ), - create_lobby_option_toggle("death_on_round_loss_toggle", "b_opts_death_on_loss", "death_on_round_loss"), - create_lobby_option_toggle("timer_toggle", "b_opts_timer", "timer"), - }, - } -end diff --git a/ui/lobby/_lobby_options/main_options.lua b/ui/lobby/_lobby_options/main_options.lua deleted file mode 100644 index c9481fea5..000000000 --- a/ui/lobby/_lobby_options/main_options.lua +++ /dev/null @@ -1,118 +0,0 @@ -local function create_main_lobby_options_title(info_area_id) - local title_colour = mix_colours(G.C.RED, G.C.BLACK, 0.6) - local title = "ERROR" - - if info_area_id == "ruleset_area" then - title_colour = mix_colours(G.C.BLUE, G.C.BLACK, 0.6) - title = localize("k_rulesets") or "ERROR" - end - - if info_area_id == "gamemode_area" then - title_colour = mix_colours(G.C.ORANGE, G.C.BLACK, 0.6) - title = localize("k_gamemodes") or "ERROR" - end - - if title == "ERROR" then return nil end - - return MP.UI.UTILS.create_row({ id = "ruleset_name", align = "cm", padding = 0.07 }, { - MP.UI.UTILS.create_row({ - align = "cm", - r = 0.1, - outline = 1, - outline_colour = title_colour, - colour = darken(title_colour, 0.3), - minw = 2.9, - emboss = 0.1, - padding = 0.07, - line_emboss = 1, - }, { - MP.UI.UTILS.create_object_node(MP.UI.UTILS.create_dynatext(title, { - colours = { G.C.WHITE }, - float = true, - y_offset = -4, - scale = 0.45, - maxw = 2.8, - })), - }), - }) -end - -function MP.UI.Main_Lobby_Options(info_area_id, default_info_area, button_func, buttons_data) - local categories = { - create_main_lobby_options_title(info_area_id), - } - for cat_idx, category in ipairs(buttons_data) do - local buttons = {} - for btn_idx, data in ipairs(category.buttons) do - local col = data.button_col or G.C.RED - if data.button_id == "weekly_ruleset_button" then -- putting the logic here because whatever - if (not MP.LOBBY.config.weekly) or (MP.LOBBY.config.weekly ~= MP.LOBBY.fetched_weekly) then - col = G.C.DARK_EDITION - end - end - local button = UIBox_button({ - id = data.button_id, - col = true, - chosen = (cat_idx == 1 and btn_idx == 1 and "vert" or false), - label = { localize(data.button_localize_key) }, - button = button_func, - colour = col, - minw = 4, - scale = 0.4, - minh = 0.6, - }) - buttons[#buttons + 1] = MP.UI.UTILS.create_row({ align = "cm", padding = 0.05 }, { button }) - end - categories[#categories + 1] = MP.UI.BackgroundGrouping(localize(category.name), buttons) - end - - return { - n = G.UIT.ROOT, config = { colour = G.C.CLEAR }, - nodes = { - { n = G.UIT.C, config = { align = "tm", minh = 8, minw = 4, padding = 0.1 }, nodes = categories }, - { - n = G.UIT.C, - config = { align = "cm", minh = 8, maxh = 8, minw = 11 }, - nodes = { - { n = G.UIT.O, config = { id = info_area_id, object = default_info_area } }, - }, - }, - } - } -end - -function MP.UI.Change_Main_Lobby_Options(e, info_area_id, info_area_func, default_button_id, update_lobby_config_func) - if not G.OVERLAY_MENU then return end - - local info_area = G.OVERLAY_MENU:get_UIE_by_ID(info_area_id) - if not info_area then return end - - -- Switch 'chosen' status from the previously-chosen button to this one: - if info_area.config.prev_chosen then - info_area.config.prev_chosen.config.chosen = nil - else -- The previously-chosen button should be the default one here: - local default_button = G.OVERLAY_MENU:get_UIE_by_ID(default_button_id) - if default_button then default_button.config.chosen = nil end - end - e.config.chosen = "vert" -- Special setting to show 'chosen' indicator on the side - - local info_obj_name = string.match(e.config.id, "(.+)_%w+_button") - update_lobby_config_func(info_obj_name) - - if info_area.config.object then info_area.config.object:remove() end - info_area.config.object = UIBox({ - definition = info_area_func(info_obj_name), - config = { align = "cm", parent = info_area }, - }) - - info_area.config.object:recalculate() - - info_area.config.prev_chosen = e -end - -function MP.UI.update_lobby_option_toggle(option_key) - if G.OVERLAY_MENU then - local config_uie = G.OVERLAY_MENU:get_UIE_by_ID(option_key .. "_toggle") - if config_uie then G.FUNCS.toggle(config_uie) end - end -end diff --git a/ui/lobby/_lobby_options/modifiers_tab.lua b/ui/lobby/_lobby_options/modifiers_tab.lua deleted file mode 100644 index f231cac13..000000000 --- a/ui/lobby/_lobby_options/modifiers_tab.lua +++ /dev/null @@ -1,103 +0,0 @@ --- Component for gamemode modifiers tab containing option cycles -G.FUNCS.change_starting_pvp_round = function(args) - MP.LOBBY.config.pvp_start_round = args.to_val - send_lobby_options() -end - -G.FUNCS.change_timer_base_seconds = function(args) - local mult = MP.LOBBY.config.timer_base_multiplier or MP.current_ruleset().timer_base_multiplier or 1 - MP.LOBBY.config.timer_base_seconds = tonumber(args.to_val:sub(1, -2)) / mult - send_lobby_options() -end - -G.FUNCS.change_timer_increment_seconds = function(args) - MP.LOBBY.config.timer_increment_seconds = tonumber(args.to_val:sub(1, -2)) - send_lobby_options() -end - -G.FUNCS.change_showdown_starting_antes = function(args) - MP.LOBBY.config.showdown_starting_antes = args.to_val - send_lobby_options() -end - -G.FUNCS.change_pvp_countdown_seconds = function(args) - MP.LOBBY.config.pvp_countdown_seconds = args.to_val - send_lobby_options() -end - -function MP.UI.create_gamemode_modifiers_tab() - local mult = MP.LOBBY.config.timer_base_multiplier or MP.current_ruleset().timer_base_multiplier or 1 - - local time_options = { 30, 60, 90, 120, 150, 180, 210, 240 } - local result_timer_options = {} - for i, option in ipairs(time_options) do - result_timer_options[i] = tostring(option * mult) .. "s" - end - - return { - n = G.UIT.ROOT, - config = { - emboss = 0.05, - minh = 6, - r = 0.1, - minw = 10, - align = "tm", - padding = 0.2, - colour = G.C.BLACK, - }, - nodes = { - { - n = G.UIT.R, - config = { padding = 0, align = "cm" }, - nodes = { - create_lobby_option_cycle( - "pvp_timer_seconds_option", - "k_opts_pvp_timer", - 0.85, - result_timer_options, - MP.UTILS.get_array_index_by_value( - time_options, - MP.LOBBY.config.timer_base_seconds - ), - "change_timer_base_seconds" - ), - create_lobby_option_cycle( - "pvp_timer_increment_seconds_option", - "k_opts_pvp_timer_increment", - 0.85, - { "0s", "30s", "60s", "90s", "120s", "150s", "180s" }, - MP.UTILS.get_array_index_by_value( - { 0, 30, 60, 90, 120, 150, 180 }, - MP.LOBBY.config.timer_increment_seconds - ), - "change_timer_increment_seconds" - ) or nil, - create_lobby_option_cycle( - "pvp_round_start_option", - "k_opts_pvp_start_round", - 0.85, - { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }, - MP.LOBBY.config.pvp_start_round, - "change_starting_pvp_round" - ), - create_lobby_option_cycle( - "showdown_starting_antes_option", - "k_opts_showdown_starting_antes", - 0.85, - { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }, - MP.LOBBY.config.showdown_starting_antes, - "change_showdown_starting_antes" - ), - create_lobby_option_cycle( - "pvp_countdown_seconds_option", - "k_opts_pvp_countdown_seconds", - 0.85, - { 0, 3, 5, 10 }, - MP.UTILS.get_array_index_by_value({ 0, 3, 5, 10 }, MP.LOBBY.config.pvp_countdown_seconds), - "change_pvp_countdown_seconds" - ), - }, - }, - }, - } -end diff --git a/ui/lobby/_lobby_options/options_tab.lua b/ui/lobby/_lobby_options/options_tab.lua deleted file mode 100644 index 563419fd9..000000000 --- a/ui/lobby/_lobby_options/options_tab.lua +++ /dev/null @@ -1,93 +0,0 @@ -local Disableable_Toggle = MP.UI.Disableable_Toggle - --- TODO repetition but w/e... -function send_lobby_options(value) - MP.ACTIONS.lobby_options() -end - -function create_lobby_option_cycle(id, label_key, scale, options, current_option, callback) - return MP.UI.Disableable_Option_Cycle({ - id = id, - enabled_ref_table = MP.LOBBY, - enabled_ref_value = "is_host", - label = localize(label_key), - scale = scale, - options = options, - current_option = current_option, - opt_callback = callback, - }) -end - --- Component for lobby options tab containing toggles and custom seed section -function create_lobby_option_toggle(id, label_key, ref_value, callback) - return { - n = G.UIT.R, - config = { - padding = 0, - align = "cr", - }, - nodes = { - Disableable_Toggle({ - id = id, - enabled_ref_table = MP.LOBBY, - enabled_ref_value = "is_host", - label = localize(label_key), - ref_table = MP.LOBBY.config, - ref_value = ref_value, - callback = callback or send_lobby_options, - }), - }, - } -end - -G.FUNCS.change_starting_lives = function(args) - MP.LOBBY.config.starting_lives = args.to_val - send_lobby_options() -end - --- This needs to have a parameter because its a callback for inputs -local function send_lobby_options(value) - MP.ACTIONS.lobby_options() -end - --- Creates the lobby options tab UI containing toggles for various multiplayer settings --- Returns a UI table with lobby configuration options like gold on life loss, different seeds, etc. -function MP.UI.create_lobby_options_tab() - return { - n = G.UIT.ROOT, - config = { - emboss = 0.05, - minh = 4, - r = 0.1, - minw = 10, - align = "tm", - padding = 0.2, - colour = G.C.BLACK, - }, - nodes = { - create_lobby_option_cycle( - "starting_lives_option", - "b_opts_lives", - 0.85, - { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }, - MP.LOBBY.config.starting_lives, - "change_starting_lives" - ), - create_lobby_option_toggle("multiplayer_jokers_toggle", "b_opts_multiplayer_jokers", "multiplayer_jokers"), - create_lobby_option_toggle("different_decks_toggle", "b_opts_player_diff_deck", "different_decks", function() - send_lobby_options() - MP.ACTIONS.update_player_usernames() - end), - create_lobby_option_toggle("random_loadout_toggle", "b_opts_random_loadout", "random_loadout", function() - send_lobby_options() - MP.ACTIONS.update_player_usernames() - end), - create_lobby_option_toggle("normal_bosses_toggle", "b_opts_normal_bosses", "normal_bosses"), - create_lobby_option_toggle( - "hide_score_until_played_toggle", - "b_opts_hide_score", - "hide_score_until_played" - ), - }, - } -end diff --git a/ui/lobby/deck_stake_button.lua b/ui/lobby/deck_stake_button.lua deleted file mode 100644 index 0795b612f..000000000 --- a/ui/lobby/deck_stake_button.lua +++ /dev/null @@ -1,45 +0,0 @@ -local Disableable_Button = MP.UI.Disableable_Button - --- Component for deck selection button in lobby -function MP.UI.create_lobby_deck_button(text_scale, back, stake) - local deck_labels = { - MP.LOBBY.config.random_loadout and "???" or localize({ - type = "name_text", - key = MP.UTILS.get_deck_key_from_name(back), - set = "Back", - }), - MP.LOBBY.config.random_loadout and "???" or localize({ - type = "name_text", - key = SMODS.stake_from_index(type(stake) == "string" and tonumber(stake) or stake), - set = "Stake", - }), - } - - if MP.LOBBY.is_host then - return Disableable_Button({ - id = "lobby_choose_deck", - button = "lobby_choose_deck", - colour = G.C.PURPLE, - minw = 2.15, - minh = 1.35, - label = deck_labels, - scale = text_scale * 1.2, - col = true, - enabled_ref_table = MP.LOBBY, - enabled_ref_value = "is_host", - }) - else - return Disableable_Button({ - id = "lobby_choose_deck", - button = "lobby_choose_deck", - colour = G.C.PURPLE, - minw = 2.15, - minh = 1.35, - label = deck_labels, - scale = text_scale * 1.2, - col = true, - enabled_ref_table = MP.LOBBY.config, - enabled_ref_value = "different_decks", - }) - end -end diff --git a/ui/lobby/leave_button.lua b/ui/lobby/leave_button.lua deleted file mode 100644 index a97548959..000000000 --- a/ui/lobby/leave_button.lua +++ /dev/null @@ -1,13 +0,0 @@ --- Component for leave button in lobby -function MP.UI.create_lobby_leave_button(text_scale) - return UIBox_button({ - id = "lobby_menu_leave", - button = "lobby_leave", - colour = G.C.RED, - minw = 3.65, - minh = 1.55, - label = { localize("b_leave") }, - scale = text_scale * 1.5, - col = true, - }) -end diff --git a/ui/lobby/lobby.lua b/ui/lobby/lobby.lua deleted file mode 100644 index 094c8e1d5..000000000 --- a/ui/lobby/lobby.lua +++ /dev/null @@ -1,643 +0,0 @@ --- This needs to have a parameter because its a callback for inputs -local function send_lobby_options(value) - MP.ACTIONS.lobby_options() -end - -G.HUD_connection_status = nil - -function G.UIDEF.get_connection_status_ui() - return UIBox({ - definition = { - n = G.UIT.ROOT, - config = { - align = "cm", - colour = G.C.UI.TRANSPARENT_DARK, - }, - nodes = { - MP.UI.UTILS.create_text_node( - (MP.LOBBY.code and localize("k_in_lobby")) - or (MP.LOBBY.connected and localize("k_connected")) - or localize("k_warn_service"), - { - scale = 0.3, - colour = G.C.UI.TEXT_LIGHT, - } - ), - }, - }, - config = { - align = "tri", - bond = "Weak", - offset = { - x = 0, - y = 0.9, - }, - major = G.ROOM_ATTACH, - }, - }) -end - -function G.UIDEF.create_UIBox_lobby_menu() - local text_scale = 0.45 - local back = MP.LOBBY.config.different_decks and MP.LOBBY.deck.back or MP.LOBBY.config.back - local stake = MP.LOBBY.config.different_decks and MP.LOBBY.deck.stake or MP.LOBBY.config.stake - - local t = { - n = G.UIT.ROOT, - config = { - align = "cm", - colour = G.C.CLEAR, - }, - nodes = { - { - n = G.UIT.C, - config = { - align = "bm", - }, - nodes = { - MP.UI.lobby_status_display(), - { - n = G.UIT.R, - config = { - align = "cm", - padding = 0.2, - r = 0.1, - emboss = 0.1, - colour = G.C.L_BLACK, - mid = true, - }, - nodes = { - MP.UI.create_lobby_main_button(text_scale), - { - n = G.UIT.C, - config = { - align = "cm", - }, - nodes = { - not MP.LOBBY.config.forced_config and UIBox_button({ - button = "lobby_options", - colour = G.C.ORANGE, - minw = 3.15, - minh = 1.35, - label = { - localize("b_lobby_options"), - }, - scale = text_scale * 1.2, - col = true, - }) or nil, - MP.UI.create_spacer(), - MP.UI.create_lobby_deck_button(text_scale, back, stake), - MP.UI.create_spacer(), - MP.UI.create_players_section(text_scale), - MP.UI.create_spacer(), - MP.UI.create_lobby_code_buttons(text_scale), - }, - }, - MP.UI.create_lobby_leave_button(text_scale), - }, - }, - }, - }, - }, - } - return t -end - -function G.UIDEF.create_UIBox_lobby_options() - return create_UIBox_generic_options({ - contents = { - { - n = G.UIT.R, - config = { - padding = 0, - align = "cm", - }, - nodes = { - not MP.LOBBY.is_host and MP.UI.UTILS.create_row({ align = "cm", padding = 0.3 }, { - MP.UI.UTILS.create_text_node(localize("k_opts_only_host"), { - scale = 0.6, - colour = G.C.UI.TEXT_LIGHT, - }), - }) or nil, - create_tabs({ - snap_to_nav = true, - colour = G.C.BOOSTER, - tabs = { - { - label = localize("k_lobby_general"), - chosen = true, - tab_definition_function = function() - return MP.UI.create_lobby_options_tab() - end, - }, - { - label = localize("k_lobby_gameplay"), - tab_definition_function = function() - return MP.UI.create_gameplay_options_tab() - end, - }, - { - label = localize("k_lobby_modifiers"), - tab_definition_function = function() - return MP.UI.create_gamemode_modifiers_tab() - end, - }, - { - label = localize("k_lobby_advanced"), - tab_definition_function = function() - return MP.UI.create_advanced_options_tab() - end, - }, - }, - }), - }, - }, - }, - }) -end - -function G.UIDEF.create_UIBox_custom_seed_overlay() - return create_UIBox_generic_options({ - back_func = "lobby_options", - contents = { - MP.UI.UTILS.create_row({ align = "cm", colour = G.C.CLEAR }, { - MP.UI.UTILS.create_column({ align = "cm", minw = 0.1 }, { - create_text_input({ - max_length = 8, - all_caps = true, - ref_table = MP.LOBBY, - ref_value = "temp_seed", - prompt_text = localize("k_enter_seed"), - keyboard_offset = 4, - callback = function(val) - MP.LOBBY.config.custom_seed = MP.LOBBY.temp_seed - send_lobby_options() - end, - }), - MP.UI.UTILS.create_blank(0.1, 0.1), - MP.UI.UTILS.create_text_node(localize("k_enter_to_save"), { - scale = 0.3, - colour = G.C.UI.TEXT_LIGHT, - }), - }), - }), - }, - }) -end - -function G.UIDEF.create_UIBox_view_hash(type) - return ( - create_UIBox_generic_options({ - contents = { - MP.UI.UTILS.create_column( - { padding = 0.07, align = "cm" }, - MP.UI.modlist_to_view( - type == "host" and MP.LOBBY.host.config.Mods or MP.LOBBY.guest.config.Mods, - G.C.UI.TEXT_LIGHT - ) - ), - }, - }) - ) -end - -function MP.UI.modlist_to_view(mods, text_colour) - local t = {} - - if not mods then - return t - end - - local special_mods_targets = { - "Steamodded", - "Lovely", - "Multiplayer", - "Preview", - } - local special_mods_found = {} - local other_mods = {} - for mod_name, mod_version in pairs(mods) do - local found = false - for _, id in ipairs(special_mods_targets) do - if not special_mods_found[id] and MP.UTILS.string_starts(mod_name, id) then - special_mods_found[id] = { name = mod_name, version = mod_version } - found = true - break - end - end - if not found then - table.insert(other_mods, { name = mod_name, version = mod_version }) - end - end - - table.sort(other_mods, function(a, b) - return a.name < b.name - end) - - local function add_mod_row(mod) - local mod_name, mod_version = MP.UTILS.resolve_mod_name_and_version(mod.name, mod.version) - local color = MP.BANNED_MODS[mod.name] and G.C.RED or text_colour - table.insert(t, { - n = G.UIT.R, - config = { - padding = 0.025, - }, - nodes = { - { - n = G.UIT.T, - config = { - text = mod_name, - scale = 0.32, - colour = color, - }, - }, - mod_version and { - n = G.UIT.T, - config = { - text = " " .. mod_version, - scale = 0.32, - colour = adjust_alpha(color, 0.6), - }, - } or nil, - }, - }) - end - local function add_separator() - table.insert(t, { - n = G.UIT.R, - config = { - minh = 0.025, - colour = adjust_alpha(text_colour, 0.25), - }, - }) - end - - for _, mod in pairs({ special_mods_found.Lovely, special_mods_found.Steamodded }) do - add_mod_row(mod) - end - add_separator() - for _, mod in pairs({ special_mods_found.Multiplayer, special_mods_found.Preview }) do - add_mod_row(mod) - end - add_separator() - for _, mod in ipairs(other_mods) do - add_mod_row(mod) - end - return t -end - -G.FUNCS.view_host_hash = function(e) - G.FUNCS.overlay_menu({ - definition = G.UIDEF.create_UIBox_view_hash("host"), - }) -end - -G.FUNCS.view_guest_hash = function(e) - G.FUNCS.overlay_menu({ - definition = G.UIDEF.create_UIBox_view_hash("guest"), - }) -end - -function G.FUNCS.get_lobby_main_menu_UI(e) - return UIBox({ - definition = G.UIDEF.create_UIBox_lobby_menu(), - config = { - align = "bmi", - offset = { - x = 0, - y = 10, - }, - major = G.ROOM_ATTACH, - bond = "Weak", - }, - }) -end - -local function get_random_back_pool() - local names, seen = {}, {} - local cocktail_keys = MP.get_cocktail_decks(false) - for i = 1, #cocktail_keys do - local key = cocktail_keys[i] - if G.P_CENTERS[key] and not seen[key] then - seen[key] = true - names[#names + 1] = G.P_CENTERS[key].name - end - end - if G.P_CENTERS["b_mp_cocktail"] and not seen["b_mp_cocktail"] then - names[#names + 1] = G.P_CENTERS["b_mp_cocktail"].name - end - return names -end - -local function scoped_random(seed, salt, max) - if seed then - math.randomseed(pseudohash(seed .. "_mp_random_" .. salt)) - end - return math.random(1, max) -end - -local function roll_random_back_name(seed, salt) - local names = get_random_back_pool() - if #names == 0 then return "Red Deck" end - return names[scoped_random(seed, "deck_" .. (salt or ""), #names)] -end - -local function roll_random_stake(seed, salt) - local cap = MP.DECK.MAX_STAKE > 0 and MP.DECK.MAX_STAKE or 8 - return scoped_random(seed, "stake_" .. (salt or ""), cap) -end - ----@type fun(e: table | nil, args: { deck: string, stake: number | nil, seed: string | nil }) -function G.FUNCS.lobby_start_run(e, args) - if MP.LOBBY.config.different_decks == false then G.FUNCS.copy_host_deck() end - - if MP.LOBBY.config.different_decks and MP.LOBBY.config.random_loadout then - MP.LOBBY.deck.back = roll_random_back_name(args.seed, MP.LOBBY.username) - MP.LOBBY.deck.challenge = "" - MP.LOBBY.deck.stake = roll_random_stake(args.seed, MP.LOBBY.username) - end - - local challenge = nil - if MP.LOBBY.deck.back == "Challenge Deck" then - challenge = G.CHALLENGES[get_challenge_int_from_id(MP.LOBBY.deck.challenge)] - else - G.GAME.viewed_back = G.P_CENTERS[MP.UTILS.get_deck_key_from_name(MP.LOBBY.deck.back)] - end - - G.FUNCS.start_run(e, { - mp_start = true, - challenge = challenge, - stake = tonumber(MP.LOBBY.deck.stake), - seed = args.seed, - }) -end - -local back_generate_ui_ref = Back.generate_UI -function Back:generate_UI(other, ui_scale, min_dims, challenge) - local name = other and other.name or self.name - if not challenge and name == "Challenge Deck" and MP.LOBBY.code then - challenge = MP.LOBBY.deck.challenge -- very generous assumption - local ret = back_generate_ui_ref(self, other, ui_scale, min_dims, challenge) - - -- essentially the button opens the correct challenge menu - -- exiting this challenge menu results in a crash that's difficult to figure out - -- (some sort of jank when removing the ui elements) - -- hacky fallback to ensure that doesn't happen, but ideally one day this gets fixed - - ret.nodes[1].nodes[1].config.button = "exit_overlay_menu" - - return ret - end - return back_generate_ui_ref(self, other, ui_scale, min_dims, challenge) -end - -function G.FUNCS.copy_host_deck() - MP.LOBBY.deck.back = MP.LOBBY.config.back - MP.LOBBY.deck.cocktail = MP.LOBBY.config.cocktail - MP.LOBBY.deck.sleeve = MP.LOBBY.config.sleeve - MP.LOBBY.deck.stake = MP.LOBBY.config.stake - MP.LOBBY.deck.challenge = MP.LOBBY.config.challenge -end - -function G.FUNCS.lobby_start_game(e) - if MP.LOBBY.config.random_loadout then - MP.LOBBY.config.back = roll_random_back_name() - MP.LOBBY.config.challenge = "" - MP.LOBBY.config.stake = roll_random_stake() - send_lobby_options() - end - MP.ACTIONS.start_game() -end - -function G.FUNCS.lobby_ready_up(e) - -- On the first ready-up with a version mismatch, show the modal and bail without readying; - -- the guest must dismiss and press Ready again. Keeps the host's Start (gated on - -- ready_to_start) disabled until the mismatch is acknowledged. - if not MP.LOBBY.ready_to_start and MP.UI.show_version_mismatch_if_needed() then return end - - MP.LOBBY.ready_to_start = not MP.LOBBY.ready_to_start - - e.config.colour = MP.LOBBY.ready_to_start and G.C.GREEN or G.C.RED - e.children[1].children[1].config.text = MP.LOBBY.ready_to_start and localize("b_unready") or localize("b_ready") - e.UIBox:recalculate() - - if MP.LOBBY.ready_to_start then - MP.ACTIONS.ready_lobby() - else - MP.ACTIONS.unready_lobby() - end -end - -function G.FUNCS.lobby_options(e) - G.FUNCS.overlay_menu({ - definition = G.UIDEF.create_UIBox_lobby_options(), - }) -end - -function G.FUNCS.view_code(e) - local text_config = e.children[1].children[1].config - if text_config.text ~= MP.LOBBY.code then - e.config.colour = G.C.ETERNAL - text_config.text = MP.LOBBY.code - else - e.config.colour = G.C.GREEN - text_config.text = localize("b_view_code") - end - e.UIBox:recalculate() -end - -function G.FUNCS.lobby_leave(e) - if G.STAGE ~= G.STAGES.MAIN_MENU then - G.FUNCS.confirm_selection(function() - MP.LOBBY.code = nil - MP.ACTIONS.leave_lobby() - MP.UI.update_connection_status() - MP.MODIFIERS = {} - MP._version_mismatch_shown = false - G.STATE = G.STATES.MENU - end) - else - MP.LOBBY.code = nil - MP.ACTIONS.leave_lobby() - MP.UI.update_connection_status() - MP.MODIFIERS = {} - MP._version_mismatch_shown = false - G.STATE = G.STATES.MENU - end -end - -function G.FUNCS.lobby_choose_deck(e) - G.FUNCS.setup_run(e) - if G.OVERLAY_MENU then G.OVERLAY_MENU:get_UIE_by_ID("run_setup_seed"):remove() end -end - -local start_run_ref = G.FUNCS.start_run -G.FUNCS.start_run = function(e, args) - if MP.LOBBY.code then - if not args.mp_start then - G.FUNCS.exit_overlay_menu() - local chosen_stake = args.stake - if MP.DECK.MAX_STAKE > 0 and chosen_stake > MP.DECK.MAX_STAKE then - MP.UI.UTILS.overlay_message( - "Selected stake is incompatible with Multiplayer, stake set to " - .. SMODS.stake_from_index(MP.DECK.MAX_STAKE) - ) - chosen_stake = MP.DECK.MAX_STAKE - end - if MP.LOBBY.is_host then - MP.LOBBY.config.back = args.challenge and "Challenge Deck" - or (args.deck and args.deck.name) - or G.GAME.viewed_back.name - MP.LOBBY.config.stake = chosen_stake - MP.LOBBY.config.sleeve = G.viewed_sleeve - MP.LOBBY.config.challenge = args.challenge and args.challenge.id or "" - send_lobby_options() - end - MP.LOBBY.deck.back = args.challenge and "Challenge Deck" - or (args.deck and args.deck.name) - or G.GAME.viewed_back.name - MP.LOBBY.deck.stake = chosen_stake - MP.LOBBY.deck.sleeve = G.viewed_sleeve - MP.LOBBY.deck.challenge = args.challenge and args.challenge.id or "" - MP.ACTIONS.update_player_usernames() - else - start_run_ref(e, { - challenge = args.challenge, - stake = tonumber(MP.LOBBY.deck.stake), - seed = args.seed, - }) - end - else - start_run_ref(e, args) - end -end - -function G.FUNCS.display_lobby_main_menu_UI(e) - G.MAIN_MENU_UI = G.FUNCS.get_lobby_main_menu_UI(e) - G.MAIN_MENU_UI.alignment.offset.y = 0 - G.MAIN_MENU_UI:align_to_major() - - G.CONTROLLER:snap_to({ node = G.MAIN_MENU_UI:get_UIE_by_ID("lobby_menu_start") }) -end - -function G.FUNCS.mp_return_to_lobby() - G.FUNCS.confirm_selection(function() - MP.ACTIONS.stop_game() - end) -end - -function G.FUNCS.custom_seed_overlay(e) - G.FUNCS.overlay_menu({ - definition = G.UIDEF.create_UIBox_custom_seed_overlay(), - }) -end - -function G.FUNCS.custom_seed_reset(e) - MP.LOBBY.config.custom_seed = "random" - send_lobby_options() -end - -local set_main_menu_UI_ref = set_main_menu_UI ----@diagnostic disable-next-line: lowercase-global -function set_main_menu_UI() - if MP.LOBBY.code then - if G.MAIN_MENU_UI then G.MAIN_MENU_UI:remove() end - if G.STAGE == G.STAGES.MAIN_MENU then G.FUNCS.display_lobby_main_menu_UI() end - else - set_main_menu_UI_ref() - end -end - -local data_sync_interval = 5 -local data_sync_delay = data_sync_interval - -local in_lobby = false -local gameUpdateRef = Game.update ----@diagnostic disable-next-line: duplicate-set-field -function Game:update(dt) - -- Track lobby state transitions - if (MP.LOBBY.code and not in_lobby) or (not MP.LOBBY.code and in_lobby) then - in_lobby = not in_lobby - G.F_NO_SAVING = in_lobby - if true then -- G.STATE == G.STATES.MENU, revert if something breaks, but this causes disconnects to not exit the game - self.FUNCS.go_to_menu() - MP.reset_game_states() - end - end - -- Data sync every 5 seconds - if MP.LOBBY.code and G.STAGE == G.STAGES.RUN then - data_sync_delay = data_sync_delay - dt - if data_sync_delay < 0 then - data_sync_delay = data_sync_interval - MP.ACTIONS.data_sync() - end - end - gameUpdateRef(self, dt) -end - -function G.UIDEF.create_UIBox_unstuck() - return ( - create_UIBox_generic_options({ - back_func = "options", - contents = { - { - n = G.UIT.C, - config = { - padding = 0.2, - align = "cm", - }, - nodes = { - UIBox_button({ label = { localize("b_unstuck_blind") }, button = "mp_unstuck_blind", minw = 5 }), - }, - }, - }, - }) - ) -end - -function G.FUNCS.mp_unstuck() - G.FUNCS.overlay_menu({ - definition = G.UIDEF.create_UIBox_unstuck(), - }) -end - -function G.FUNCS.mp_unstuck_arcana() - G.FUNCS.skip_booster() -end - -function G.FUNCS.mp_unstuck_blind() - MP.GAME.ready_blind = false - if MP.GAME.next_blind_context then - G.FUNCS.select_blind(MP.GAME.next_blind_context) - else - sendErrorMessage("No next blind context", "MULTIPLAYER") - end -end - -function MP.UI.update_connection_status() - if G.HUD_connection_status then G.HUD_connection_status:remove() end - if G.STAGE == G.STAGES.MAIN_MENU then G.HUD_connection_status = G.UIDEF.get_connection_status_ui() end -end - -local gameMainMenuRef = Game.main_menu ----@diagnostic disable-next-line: duplicate-set-field -function Game:main_menu(change_context) - gameMainMenuRef(self, change_context) - MP.UI.update_connection_status() -end - -function G.FUNCS.copy_to_clipboard(e) - MP.UTILS.copy_to_clipboard(MP.LOBBY.code) -end - -function G.FUNCS.reconnect(e) - MP.ACTIONS.connect() - G.FUNCS.exit_overlay_menu() -end - -function MP.update_player_usernames() - if MP.LOBBY.code then - if G.MAIN_MENU_UI then G.MAIN_MENU_UI:remove() end - if G.STAGE == G.STAGES.MAIN_MENU then G.FUNCS.display_lobby_main_menu_UI() end - end -end diff --git a/ui/lobby/lobby_code_buttons.lua b/ui/lobby/lobby_code_buttons.lua deleted file mode 100644 index 2c17b9df8..000000000 --- a/ui/lobby/lobby_code_buttons.lua +++ /dev/null @@ -1,28 +0,0 @@ --- Component for view/copy code buttons in lobby -function MP.UI.create_lobby_code_buttons(text_scale) - return { - n = G.UIT.C, - config = { - align = "cm", - }, - nodes = { - UIBox_button({ - button = "view_code", - colour = G.C.PALE_GREEN, - minw = 2.15, - minh = 0.65, - label = { localize("b_view_code") }, - scale = text_scale * 1.2, - }), - MP.UI.create_spacer(0.1, true), - UIBox_button({ - button = "copy_to_clipboard", - colour = G.C.PERISHABLE, - minw = 2.15, - minh = 0.65, - label = { localize("b_copy_code") }, - scale = text_scale, - }), - }, - } -end diff --git a/ui/lobby/players_display.lua b/ui/lobby/players_display.lua deleted file mode 100644 index 315583327..000000000 --- a/ui/lobby/players_display.lua +++ /dev/null @@ -1,40 +0,0 @@ -local function create_player_info_row(player, player_type, text_scale) - if not player or not player.username then return nil end - - return MP.UI.UTILS.create_row({ padding = 0.1, align = "cm" }, { - MP.UI.UTILS.create_column({ align = "cm", maxw = 3 }, { - MP.UI.UTILS.create_text_node(nil, { - ref_table = player, - ref_value = "username", - scale = text_scale * 0.8, - colour = G.C.UI.TEXT_LIGHT, - maxw = 3.5 - }), - }), - MP.UI.UTILS.create_blank(0.1, 0.1), - player.hash and UIBox_button({ - id = player_type .. "_hash", - button = "view_" .. player_type .. "_hash", - label = { player.hash }, - minw = 0.75, - minh = 0.3, - scale = 0.25, - shadow = false, - colour = G.C.PURPLE, - col = true, - }) or nil, - }) -end - -function MP.UI.create_players_section(text_scale) - return MP.UI.UTILS.create_column({ align = "tm", minw = 2.65 }, { - MP.UI.UTILS.create_row({ align = "cm", padding = 0.15 }, { - MP.UI.UTILS.create_text_node(localize("k_connect_player"), { - scale = text_scale * 0.8, - colour = G.C.UI.TEXT_LIGHT, - }), - }), - create_player_info_row(MP.LOBBY.host, "host", text_scale), - create_player_info_row(MP.LOBBY.guest, "guest", text_scale), - }) -end diff --git a/ui/lobby/start_ready_button.lua b/ui/lobby/start_ready_button.lua deleted file mode 100644 index 54328e161..000000000 --- a/ui/lobby/start_ready_button.lua +++ /dev/null @@ -1,159 +0,0 @@ -local Disableable_Button = MP.UI.Disableable_Button - -local function get_warnings() - local warnings = {} - - -- Check the other player (guest if we're host, host if we're guest) - local other_player = MP.LOBBY.is_host and MP.LOBBY.guest or MP.LOBBY.host - - if other_player and other_player.cached == false then - table.insert(warnings, { localize("k_warning_cheating1"), SMODS.Gradients.warning_text, 0.4 }) - table.insert( - warnings, - { string.format(localize("k_warning_cheating2"), MP.UTILS.random_message()), SMODS.Gradients.warning_text } - ) - end - - if other_player and other_player.config and other_player.config.unlocked == false then - table.insert(warnings, { - localize("k_warning_nemesis_unlock"), - SMODS.Gradients.warning_text, - 0.25, - }) - end - - local bothPlayersInLobby = MP.LOBBY.guest and MP.LOBBY.guest.config ~= nil - - -- Content mod compatibility warnings (currently Extra Credit only) - if bothPlayersInLobby then - local hostExtraCreditVersion = MP.LOBBY.host - and MP.LOBBY.host.config - and MP.LOBBY.host.config.Mods["extracredit"] - local guestExtraCreditVersion = MP.LOBBY.guest - and MP.LOBBY.guest.config - and MP.LOBBY.guest.config.Mods["extracredit"] - - if hostExtraCreditVersion ~= guestExtraCreditVersion then - table.insert(warnings, { - "Extra Credit mismatch - players may see different jokers", - SMODS.Gradients.warning_text, - }) - elseif hostExtraCreditVersion ~= nil and hostExtraCreditVersion == guestExtraCreditVersion then - table.insert(warnings, { - "Extra Credit active - curated jokers replaced with full pool", - G.C.GREEN, - 0.25, - }) - end - end - - if MP.LOBBY.ready_to_start or not MP.LOBBY.is_host then - local hostSteamoddedVersion = MP.LOBBY.host and MP.LOBBY.host.config and MP.LOBBY.host.config.Mods["Steamodded"] - local guestSteamoddedVersion = MP.LOBBY.guest - and MP.LOBBY.guest.config - and MP.LOBBY.guest.config.Mods["Steamodded"] - - if hostSteamoddedVersion ~= guestSteamoddedVersion then - table.insert(warnings, { - localize("k_steamodded_warning"), - SMODS.Gradients.warning_text, - }) - end - end - - if MP.UTILS.mp_version_mismatch() then - table.insert(warnings, { - localize("k_mp_version_warning"), - G.C.RED, - 0.4, - }) - end - - local host_banned_mods = MP.LOBBY.host - and MP.LOBBY.host.config - and MP.UTILS.get_banned_mods(MP.LOBBY.host.config.Mods) - or {} - local guest_banned_mods = MP.LOBBY.guest - and MP.LOBBY.guest.config - and MP.UTILS.get_banned_mods(MP.LOBBY.guest.config.Mods) - or {} - - if #host_banned_mods > 0 or #guest_banned_mods > 0 then - table.insert(warnings, { - localize("k_warning_banned_mods"), - G.C.RED, - 0.4, - }) - end - - SMODS.Mods["Multiplayer"].config.unlocked = MP.UTILS.unlock_check() - if not SMODS.Mods["Multiplayer"].config.unlocked then - table.insert(warnings, { - localize("k_warning_unlock_profile"), - SMODS.Gradients.warning_text, - 0.25, - }) - end - - if MP.LOBBY.username == "Guest" then table.insert(warnings, { - localize("k_set_name"), - G.C.UI.TEXT_LIGHT, - }) end - - if #warnings == 0 then table.insert(warnings, { - " ", - G.C.UI.TEXT_LIGHT, - }) end - - return warnings -end - -function MP.UI.lobby_status_display() - local warnings = get_warnings() - - local warning_texts = {} - for k, v in pairs(warnings) do - table.insert( - warning_texts, - MP.UI.UTILS.create_row({ align = "cm", padding = -0.25 }, { - MP.UI.UTILS.create_text_node(v[1], { - colour = v[2], - scale = v[3] or 0.25, - }), - }) - ) - end - - return MP.UI.UTILS.create_row({ padding = 0.35, align = "cm" }, warning_texts) -end - --- Component for main start/ready button in lobby -function MP.UI.create_lobby_main_button(text_scale) - if MP.LOBBY.is_host then - return Disableable_Button({ - id = "lobby_menu_start", - button = "lobby_start_game", - colour = G.C.BLUE, - minw = 3.65, - minh = 1.55, - label = { localize("b_start") }, - disabled_text = MP.LOBBY.guest.username and localize("b_wait_for_guest_ready") - or localize("b_wait_for_players"), - scale = text_scale * 2, - col = true, - enabled_ref_table = MP.LOBBY, - enabled_ref_value = "ready_to_start", - }) - else - return UIBox_button({ - id = "lobby_menu_start", - button = "lobby_ready_up", - colour = MP.LOBBY.ready_to_start and G.C.GREEN or G.C.RED, - minw = 3.65, - minh = 1.55, - label = { MP.LOBBY.ready_to_start and localize("b_unready") or localize("b_ready") }, - scale = text_scale * 2, - col = true, - }) - end -end diff --git a/ui/lobby/version_mismatch_warning.lua b/ui/lobby/version_mismatch_warning.lua deleted file mode 100644 index ad9565572..000000000 --- a/ui/lobby/version_mismatch_warning.lua +++ /dev/null @@ -1,121 +0,0 @@ -function G.FUNCS.mp_open_update_docs(e) - love.system.openURL("https://balatromp.com/docs/getting-started/installation") -end - -local function build_version_mismatch_modal(mismatches) - local rows = { - MP.UI.UTILS.create_row({ align = "cm", padding = 0.1 }, { - MP.UI.UTILS.create_text_node("VERSION MISMATCH", { - scale = 0.8, - colour = G.C.RED, - }), - }), - MP.UI.UTILS.create_row({ align = "cm", padding = 0.04 }, { - MP.UI.UTILS.create_text_node("You and your opponent have mismatched mod", { - scale = 0.4, - colour = G.C.UI.TEXT_LIGHT, - }), - }), - MP.UI.UTILS.create_row({ align = "cm", padding = 0.04 }, { - MP.UI.UTILS.create_text_node("versions. Seeds, shops and jokers will", { - scale = 0.4, - colour = G.C.UI.TEXT_LIGHT, - }), - }), - MP.UI.UTILS.create_row({ align = "cm", padding = 0.04 }, { - MP.UI.UTILS.create_text_node("desync - matches may break.", { - scale = 0.4, - colour = G.C.UI.TEXT_LIGHT, - }), - }), - } - - -- One row per mismatched mod: " - You: x Them: y" - for _, m in ipairs(mismatches) do - table.insert( - rows, - MP.UI.UTILS.create_row({ align = "cm", padding = 0.1 }, { - MP.UI.UTILS.create_text_node(m.mod .. " -", { - scale = 0.4, - colour = G.C.UI.TEXT_LIGHT, - }), - MP.UI.UTILS.create_blank(0.2, 0.1), - MP.UI.UTILS.create_text_node("You: " .. tostring(m.our), { - scale = 0.4, - colour = G.C.BLUE, - }), - MP.UI.UTILS.create_blank(0.3, 0.1), - MP.UI.UTILS.create_text_node("Them: " .. tostring(m.their), { - scale = 0.4, - colour = G.C.ORANGE, - }), - }) - ) - end - - table.insert( - rows, - MP.UI.UTILS.create_row({ align = "cm", padding = 0.12 }, { - MP.UI.UTILS.create_text_node("Update so you both match before playing.", { - scale = 0.4, - colour = G.C.UI.TEXT_LIGHT, - }), - }) - ) - table.insert( - rows, - MP.UI.UTILS.create_row({ align = "cm", padding = 0.15 }, { - UIBox_button({ - label = { "How to update" }, - button = "mp_open_update_docs", - colour = HEX("72A5F2"), - minw = 4.2, - scale = 0.5, - col = true, - }), - MP.UI.UTILS.create_blank(0.25, 0.1), - UIBox_button({ - label = { "Continue anyway" }, - button = "exit_overlay_menu", - colour = G.C.RED, - minw = 3.4, - scale = 0.5, - col = true, - }), - }) - ) - - G.FUNCS.overlay_menu({ - definition = create_UIBox_generic_options({ - no_back = true, - contents = { - MP.UI.UTILS.create_column({ align = "cm", padding = 0.15 }, rows), - }, - }), - }) -end - --- Show the mismatch modal once per lobby (latched on MP._version_mismatch_shown, re-armed on --- lobby leave / when the mismatch clears). Returns true iff it built the modal this call, which --- the guest's ready-up uses to intercept the first ready press. -function MP.UI.show_version_mismatch_if_needed() - if MP._version_mismatch_shown then return false end - if G.screenwipe or G.OVERLAY_MENU then return false end - local mismatches = MP.UTILS.version_mismatches() - if #mismatches == 0 then return false end - build_version_mismatch_modal(mismatches) - MP._version_mismatch_shown = true - return true -end - --- Host trigger: poll while settled in the lobby. (The guest's join transition can't be reliably --- detected, so the guest triggers off its ready button instead - see lobby.lua:lobby_ready_up.) -local mismatch_update_ref = Game.update ----@diagnostic disable-next-line: duplicate-set-field -function Game:update(dt) - mismatch_update_ref(self, dt) - - if not MP.LOBBY.code or not MP.LOBBY.is_host then return end - if G.STAGE ~= G.STAGES.MAIN_MENU then return end - MP.UI.show_version_mismatch_if_needed() -end diff --git a/ui/main_menu/dev_warning.lua b/ui/main_menu/dev_warning.lua deleted file mode 100644 index 85cd7414f..000000000 --- a/ui/main_menu/dev_warning.lua +++ /dev/null @@ -1,74 +0,0 @@ -function G.FUNCS.mp_open_install_docs(e) - love.system.openURL("https://balatromp.com/docs/getting-started/installation") -end - -function MP.UI.show_dev_build_warning() - if MP._dev_warning_shown then return end - if MP.EXPERIMENTAL.suppress_dev_warning then return end - - local version = SMODS.Mods["Multiplayer"].version or "" - if not version:lower():match("dev") then return end - - MP._dev_warning_shown = true - - G.SETTINGS.paused = true - G.FUNCS.overlay_menu({ - definition = create_UIBox_generic_options({ - no_back = true, - no_esc = true, - contents = { - MP.UI.UTILS.create_column({ align = "cm", padding = 0.15 }, { - MP.UI.UTILS.create_row({ align = "cm", padding = 0.1 }, { - MP.UI.UTILS.create_text_node("MULTIPLAYER", { - scale = 0.8, - colour = G.C.UI.TEXT_LIGHT, - }), - }), - MP.UI.UTILS.create_row({ align = "cm", padding = 0.05 }, { - MP.UI.UTILS.create_text_node("Hand of cards, off the workbench - " .. version, { - scale = 0.55, - colour = G.C.MULT, - }), - }), - MP.UI.UTILS.create_row({ align = "cm", padding = 0.04 }, { - MP.UI.UTILS.create_text_node("You're playing a dev build - jokers may misbehave.", { - scale = 0.4, - colour = G.C.UI.TEXT_LIGHT, - }), - }), - MP.UI.UTILS.create_row({ align = "cm", padding = 0.04 }, { - MP.UI.UTILS.create_text_node("Ranked is locked. You may desync your nemesis.", { - scale = 0.4, - colour = G.C.UI.TEXT_LIGHT, - }), - }), - MP.UI.UTILS.create_row({ align = "cm", padding = 0.04 }, { - MP.UI.UTILS.create_text_node("For a clean shuffle, get the launcher below.", { - scale = 0.4, - colour = G.C.UI.TEXT_LIGHT, - }), - }), - MP.UI.UTILS.create_row({ align = "cm", padding = 0.15 }, { - UIBox_button({ - label = { "Grab the launcher" }, - button = "mp_open_install_docs", - colour = HEX("72A5F2"), - minw = 4.2, - scale = 0.5, - col = true, - }), - MP.UI.UTILS.create_blank(0.25, 0.1), - UIBox_button({ - label = { "OK, I'll risk it" }, - button = "exit_overlay_menu", - colour = G.C.RED, - minw = 3.2, - scale = 0.5, - col = true, - }), - }), - }), - }, - }), - }) -end diff --git a/ui/main_menu/main_menu.lua b/ui/main_menu/main_menu.lua deleted file mode 100644 index b6169efe0..000000000 --- a/ui/main_menu/main_menu.lua +++ /dev/null @@ -1,110 +0,0 @@ -local game_main_menu_ref = Game.main_menu ----@diagnostic disable-next-line: duplicate-set-field -function Game:main_menu(change_context) - local ret = game_main_menu_ref(self, change_context) - - Add_custom_multiplayer_cards(change_context) - Add_version_display() - MP.UI.show_dev_build_warning() - - return ret -end - --- Modify play button to take you to mode select first -local create_UIBox_main_menu_buttonsRef = create_UIBox_main_menu_buttons ----@diagnostic disable-next-line: lowercase-global -function create_UIBox_main_menu_buttons() - local menu = create_UIBox_main_menu_buttonsRef() - menu.nodes[1].nodes[1].nodes[1].nodes[1].config.button = "play_options" - return menu -end - -G.FUNCS.wipe_off = function() - G.E_MANAGER:add_event(Event({ - no_delete = true, - func = function() - delay(0.3) - if not G.screenwipe then return true end - G.screenwipe.children.particles.max = 0 - G.E_MANAGER:add_event(Event({ - trigger = "ease", - no_delete = true, - blockable = false, - blocking = false, - timer = "REAL", - ref_table = G.screenwipe.colours.black, - ref_value = 4, - ease_to = 0, - delay = 0.3, - func = function(t) - return t - end, - })) - G.E_MANAGER:add_event(Event({ - trigger = "ease", - no_delete = true, - blockable = false, - blocking = false, - timer = "REAL", - ref_table = G.screenwipe.colours.white, - ref_value = 4, - ease_to = 0, - delay = 0.3, - func = function(t) - return t - end, - })) - return true - end, - })) - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.55, - no_delete = true, - blocking = false, - timer = "REAL", - func = function() - if not G.screenwipe then return true end - if G.screenwipecard then G.screenwipecard:start_dissolve({ G.C.BLACK, G.C.ORANGE, G.C.GOLD, G.C.RED }) end - if G.screenwipe:get_UIE_by_ID("text") then - for k, v in ipairs(G.screenwipe:get_UIE_by_ID("text").children) do - v.children[1].config.object:pop_out(4) - end - end - return true - end, - })) - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 1.1, - no_delete = true, - blocking = false, - timer = "REAL", - func = function() - if not G.screenwipe then return true end - G.screenwipe.children.particles:remove() - G.screenwipe:remove() - G.screenwipe.children.particles = nil - G.screenwipe = nil - G.screenwipecard = nil - return true - end, - })) - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 1.2, - no_delete = true, - blocking = true, - timer = "REAL", - func = function() - return true - end, - })) -end - -function MP.UI.update_player_usernames() - if MP.LOBBY.code then - if G.MAIN_MENU_UI then G.MAIN_MENU_UI:remove() end - set_main_menu_UI() - end -end diff --git a/ui/main_menu/play_button/_modifiers_overlay.lua b/ui/main_menu/play_button/_modifiers_overlay.lua deleted file mode 100644 index 846eb44f6..000000000 --- a/ui/main_menu/play_button/_modifiers_overlay.lua +++ /dev/null @@ -1,90 +0,0 @@ -G.FUNCS.mp_open_modifiers_overlay = function(e) - local timer_cycle = MP.UI.build_timer_modifier_cycle() - local pvp_timer_toggle = MP.UI.build_pvp_timer_toggle() - - local smallworld_toggle = create_toggle({ - id = "modifier_smallworld_toggle", - label = localize("b_opts_modifier_smallworld"), - ref_table = { val = MP.has_modifier("smallworld") }, - ref_value = "val", - callback = function(new_val) - if new_val then - MP.add_modifier("smallworld") - else - MP.remove_modifier("smallworld") - end - end, - }) - - local function create_entry(option, loc_key) - local message_table = localize(loc_key) - local result_text = {} - for _, line in ipairs(message_table) do - table.insert(result_text, { - n = G.UIT.R, - config = { minw = 8.5, maxw = 8.5 }, - nodes = SMODS.localize_box(loc_parse_string(line), { - default_col = G.C.UI.TEXT_LIGHT, - }), - }) - end - - return { - n = G.UIT.R, - config = { - padding = 0.25, - align = "cm", - r = 0.25, - colour = { 1, 1, 1, 0.1 }, - }, - nodes = { - { - n = G.UIT.C, - config = { minw = 5, align = "cm" }, - nodes = { - option, - }, - }, - { - n = G.UIT.C, - config = { align = "cm" }, - nodes = result_text, - }, - }, - } - end - - local back_func = MP.is_practice_mode() and "mp_open_practice_options_overlay" or "create_lobby" - - G.FUNCS.overlay_menu({ - definition = create_UIBox_generic_options({ - back_func = back_func, - contents = { - { - n = G.UIT.R, - config = { align = "cm", padding = 0.25, colour = G.C.BLACK, r = 0.25 }, - nodes = { - { - n = G.UIT.R, - nodes = { - create_entry(timer_cycle, "k_experimental_modifiers_timers"), - { n = G.UIT.R, config = { minh = 0.25 } }, - create_entry(pvp_timer_toggle, "k_experimental_modifiers_pvp_timer"), - { n = G.UIT.R, config = { minh = 0.25 } }, - create_entry(smallworld_toggle, "k_experimental_modifiers_smallworld"), - }, - }, - { n = G.UIT.R }, - { - n = G.UIT.R, - config = { align = "cm" }, - nodes = { - MP.UI.get_continue_button(e.config.ref_table.ruleset, e.config.ref_table.mode), - }, - }, - }, - }, - }, - }), - }) -end diff --git a/ui/main_menu/play_button/_mutators_wall.lua b/ui/main_menu/play_button/_mutators_wall.lua deleted file mode 100644 index 7e51f2774..000000000 --- a/ui/main_menu/play_button/_mutators_wall.lua +++ /dev/null @@ -1,562 +0,0 @@ -local function timer_modifier_to_index() - if MP.has_modifier("pressure_timer_plus") then return 4 end - if MP.has_modifier("pressure_timer") then return 3 end - if MP.has_modifier("no_animation_timer") then return 2 end - return 1 -end - -G.FUNCS.change_modifier_timer = function(args) - MP.remove_modifier("no_animation_timer") - MP.remove_modifier("pressure_timer") - MP.remove_modifier("pressure_timer_plus") - if args.to_key == 2 then - MP.add_modifier("no_animation_timer") - elseif args.to_key == 3 then - MP.add_modifier("pressure_timer") - elseif args.to_key == 4 then - MP.add_modifier("pressure_timer") - MP.add_modifier("pressure_timer_plus") - end -end - -local TIMER_BLURBS = { - "Regular 150s timer.", - "100s timer, animations off.", - "100s, no anim, starts at once.", - "Pressure, +15s per hand played.", -} - -G.FUNCS.mp_timer_blurb = function(e) - local txt = TIMER_BLURBS[timer_modifier_to_index()] or "" - if e.children[1] and e.children[1].config.text ~= txt then - e.children[1].config.text = txt - e.UIBox:recalculate(true) - end -end - --- Each cycle is one table: label / mod / blurb on the same line. mod = nil means --- "no modifier" (the cycle's default, inherits whatever the ruleset does). -local GLASS_VARIANTS = { - { label = "Inherit", mod = nil, blurb = "Inherit the main ruleset." }, - { label = "Vanilla", mod = "glass_vanilla", blurb = "x2 mult." }, - { label = "Standard", mod = "glass_standard", blurb = "x1.5 (Justice Disabled)." }, - { label = "Legacy", mod = "glass_legacy", blurb = "x1.5 (Justice Enabled)." }, - { label = "Experimental", mod = "glass_experimental", blurb = "x2 (Grim/Familiar/Incantation only)." }, -} - -local function variant_labels(variants) - local labels = {} - for i, v in ipairs(variants) do - labels[i] = v.label - end - return labels -end - -local function variant_index(variants) - for i, v in ipairs(variants) do - if v.mod and MP.has_modifier(v.mod) then return i end - end - return 1 -end - -local function pick_variant(variants, to_key) - for _, v in ipairs(variants) do - if v.mod then MP.remove_modifier(v.mod) end - end - local chosen = variants[to_key] - if chosen and chosen.mod then MP.add_modifier(chosen.mod) end -end - -local function variant_blurb_func(variants) - return function(e) - local txt = variants[variant_index(variants)].blurb - if e.children[1] and e.children[1].config.text ~= txt then - e.children[1].config.text = txt - e.UIBox:recalculate(true) - end - end -end - -G.FUNCS.change_glass_variant = function(args) - pick_variant(GLASS_VARIANTS, args.to_key) -end -G.FUNCS.mp_glass_blurb = variant_blurb_func(GLASS_VARIANTS) - -local MUTATOR_WALL = { - { - name = "ECONOMY", - colour = G.C.MONEY, - cells = { - { - key = "inflation", - label = "Inflation", - desc = { "Shop prices creep up $1 with", "every card you buy." }, - soon = true, - credits = { idea = { "Kars" } }, - }, - { - key = "no_interest", - label = "No Interest", - desc = { "Savings earn nothing.", "Spend it or lose the edge." }, - soon = true, - }, - { key = "discard_tax", label = "Discard Tax", desc = { "Every discard costs $1." }, soon = true }, - { key = "frugal", label = "Frugal", desc = { "Unspent discards pay out $1." }, soon = true }, - { - key = "wraith_rework", - label = "Kind Wraith", - desc = { "Wraith spawns an Uncommon and", "pays $5 (was Rare, money to $0)." }, - credits = { code = { "steph" } }, - }, - { - key = "pvp_reward_draft", - label = "Reward Draft", - desc = { "Win a PvP blind, then draft", "1 of several rewards." }, - soon = true, - }, - }, - }, - { - name = "MAYHEM", - colour = G.C.PURPLE, - cells = { - { key = "flipped_cards", label = "Blind Poker", desc = { "Your hand is dealt face-down." }, soon = true }, - { - key = "debuff_played_cards", - label = "Dead Cards", - desc = { "Playing cards are debuffed.", "Jokers are the whole engine." }, - }, - { key = "all_eternal", label = "No Takebacks", desc = { "Every joker is eternal." }, soon = true }, - { - key = "shrinking_hand", - label = "Heavy Pockets", - desc = { "-1 hand size for every $10", "you're holding." }, - soon = true, - }, - { - key = "shared_pockets", - label = "Shared Pockets", - desc = { "Hand, jokers and consumables", "share one pool of slots." }, - }, - { - key = "score_instability", - label = "Instability", - desc = { "After scoring, chips and mult", "are dragged toward each other." }, - credits = { code = { "Toneblock" } }, - }, - { - key = "rubber_band", - label = "Rubber Band", - desc = { "Losing a life grants an", "escalating comeback buff." }, - soon = true, - }, - }, - }, - { - name = "HAZARDS", - colour = G.C.RED, - cells = { - { - key = "gambling_opportunity", - label = "No Easy Money", - desc = { "No Gold or Lucky cards." }, - credits = { idea = { "Kars" } }, - }, - { key = "no_uncommons", label = "No Uncommons", desc = { "Uncommon jokers are out", "of the pool." } }, - { key = "no_red_seals", label = "No Red Seals", desc = { "Red seals never appear." } }, - { key = "bigger_shop", label = "Bigger Shop", desc = { "One extra card slot", "in the shop." } }, - { - key = "chip_cap", - label = "Cash Ceiling", - desc = { "Chip score can't exceed your", "cash. Greed is the only way up." }, - soon = true, - }, - { - key = "score_tax", - label = "Score Tax", - desc = { "Each hand you play nudges your", "opponent's target upward." }, - soon = true, - }, - }, - }, - { - name = "CHAOS", - colour = G.C.ORANGE, - cells = { - { - key = "glass_cannon", - label = "Glass Cannon", - desc = { "Only 2 hands a round — but", "every hand hits for 4x mult." }, - }, - { - key = "smallworld", - label = "Small World", - desc = { "75% of the pool banned at", "random. Showman always on." }, - credits = { code = { "Toneblock" } }, - }, - { key = "spartan", label = "Spartan", desc = { "No cash from Small or Big", "blinds." }, soon = true }, - { - key = "pricey_packs", - label = "Pricey Packs", - desc = { "Booster packs cost more", "for each ante you reach." }, - soon = true, - }, - { - key = "polymorph_spam", - label = "Polymorph", - desc = { "Every blind, your jokers and", "consumables re-roll." }, - }, - { - key = "eeeee", - label = "Eeeee", - desc = { "~40% of random rolls lock to", "a fixed value each ante." }, - credits = { code = { "Tonebleee" } }, - }, - }, - }, -} - -G.FUNCS.mp_toggle_mutator = function(e) - local key = e.config.ref_table.key - MP.MUTATORS_BLIND = false -- touching anything reveals the wall - if MP.has_modifier(key) then - MP.remove_modifier(key) - play_sound("cardSlide2", 1.1, 0.4) - else - MP.add_modifier(key) - play_sound("cardSlide1", 1.1, 0.5) - end - e:juice_up(0.2, 0.1) -end - --- Live recolour: bright when the modifier is active, dim-tinted otherwise. --- In blind mode the wall lies — active cells read as off, so you go in blind. -G.FUNCS.mp_mutator_cell_colour = function(e) - local rt = e.config.ref_table - local lit = MP.has_modifier(rt.key) and not MP.MUTATORS_BLIND - e.config.colour = lit and rt.on or rt.off -end - --- Roll a fresh random loadout across the whole wall (~1 in 3 odds per knob). -local function roll_mutators() - for _, cat in ipairs(MUTATOR_WALL) do - for _, cell in ipairs(cat.cells) do - MP.remove_modifier(cell.key) - if not cell.soon and math.random() < 0.35 then MP.add_modifier(cell.key) end - end - end -end - -G.FUNCS.mp_randomize_mutators = function(e) - MP.MUTATORS_BLIND = false - roll_mutators() - play_sound("generic1", 1.0, 0.5) - e:juice_up(0.3, 0.1) -end - -G.FUNCS.mp_blind_random_mutators = function(e) - roll_mutators() - MP.MUTATORS_BLIND = true -- keep the roll a secret - play_sound("timpani", 1.0, 0.5) - e:juice_up(0.3, 0.1) -end - --- TODO(rewire): fold this and mod_badges.lua's inline builder into one shared --- MP.UI.credit_badge(credits) so we can use it anywhere we like :) -local function mutator_credit_badge(credits) - credits.art = credits.art or {} - credits.idea = credits.idea or {} - credits.code = credits.code or {} - - local function calc_scale_fac(text) - local size = 0.9 - local font = G.LANG.font - local max_text_width = 2 - 2 * 0.05 - 4 * 0.03 * size - 2 * 0.03 - local calced_text_width = 0 - for _, c in utf8.chars(text) do - local tx = font.FONT:getWidth(c) * (0.33 * size) * G.TILESCALE * font.FONTSCALE - + 2.7 * 1 * G.TILESCALE * font.FONTSCALE - calced_text_width = calced_text_width + tx / (G.TILESIZE * G.TILESCALE) - end - return calced_text_width > max_text_width and max_text_width / calced_text_width or 1 - end - - local strings = {} - for _, v in ipairs({ "art", "idea", "code" }) do - for i = 1, #credits[v] do - strings[#strings + 1] = localize({ type = "variable", key = "a_mp_" .. v, vars = { credits[v][i] } })[1] - end - end - - -- fallback if {} - if #strings == 0 then return { n = G.UIT.R, config = { align = "cm" }, nodes = {} } end - - local min_scale_fac = 1 - for i = 1, #strings do - min_scale_fac = math.min(min_scale_fac, calc_scale_fac(strings[i])) - end - - local ct = {} - for i = 1, #strings do - ct[i] = { string = strings[i] } - end - - return { - n = G.UIT.R, - config = { align = "cm" }, - nodes = { - { - n = G.UIT.R, - config = { - align = "cm", - colour = G.C.MULTIPLAYER, - r = 0.1, - minw = 2 / min_scale_fac, - minh = 0.36, - emboss = 0.05, - padding = 0.03 * 0.9, - }, - nodes = { - { n = G.UIT.B, config = { h = 0.1, w = 0.03 } }, - { - n = G.UIT.O, - config = { - object = DynaText({ - string = ct, - colours = { credits.text_colour or G.C.WHITE }, - silent = true, - float = true, - shadow = true, - offset_y = -0.03, - spacing = 1, - scale = 0.33 * 0.9, - }), - }, - }, - { n = G.UIT.B, config = { h = 0.1, w = 0.03 } }, - }, - }, - }, - } -end - -local function mutator_cell(cell, colour, disabled) - local on = colour - local off = darken(colour, 0.72) - -- Disabled cells keep their real description with a "(Coming soon)" line appended - local tooltip_text = cell.desc - if disabled then - tooltip_text = {} - for _, line in ipairs(cell.desc) do - tooltip_text[#tooltip_text + 1] = line - end - tooltip_text[#tooltip_text + 1] = "(Coming soon)" - end - - local tooltip = { title = cell.label, text = tooltip_text } - if cell.credits then tooltip.filler = { func = mutator_credit_badge, args = cell.credits } end - return { - n = G.UIT.R, - config = { align = "cm", padding = 0.035 }, - nodes = { - { - n = G.UIT.C, - config = { - align = "cm", - minw = 2.5, - minh = 0.46, - padding = 0.06, - r = 0.1, - emboss = 0.05, - hover = true, - shadow = not disabled, - colour = disabled and G.C.UI.BACKGROUND_INACTIVE or off, - button = not disabled and "mp_toggle_mutator" or nil, - func = not disabled and "mp_mutator_cell_colour" or nil, - ref_table = { key = cell.key, on = on, off = off }, - tooltip = tooltip, - }, - nodes = { - { - n = G.UIT.T, - config = { - text = cell.label, - scale = 0.34, - colour = disabled and G.C.UI.TEXT_INACTIVE or G.C.UI.TEXT_LIGHT, - }, - }, - }, - }, - }, - } -end - -local function mutator_column(cat) - local nodes = { - { - n = G.UIT.R, - config = { align = "cm", padding = 0.04, minh = 0.4 }, - nodes = { { n = G.UIT.T, config = { text = cat.name, scale = 0.4, colour = cat.colour, shadow = true } } }, - }, - } - for _, cell in ipairs(cat.cells) do - nodes[#nodes + 1] = mutator_cell(cell, cat.colour, cell.soon) - end - return { n = G.UIT.C, config = { align = "tm", padding = 0.06 }, nodes = nodes } -end - -function MP.UI.build_timer_modifier_cycle() - return MP.UI.Disableable_Option_Cycle({ - id = "modifier_timer_option", - enabled_ref_table = { val = true }, - enabled_ref_value = "val", - label = localize("k_opts_modifier_timer"), - scale = 0.8, - options = localize("ml_mp_modifier_timer_opt"), - current_option = timer_modifier_to_index(), - opt_callback = "change_modifier_timer", - minw = 4, - w = 4, - }) -end - -function MP.UI.build_pvp_timer_toggle() - return create_toggle({ - id = "modifier_pvp_timer_toggle", - label = localize("b_opts_modifier_pvp_timer"), - ref_table = { val = MP.has_modifier("pvp_timer") }, - ref_value = "val", - callback = function(new_val) - if new_val then - MP.add_modifier("pvp_timer") - else - MP.remove_modifier("pvp_timer") - end - end, - }) -end - --- A variant cycle = the option-cycle plus a live one-line blurb stacked under it. --- Shared shape for glass / shop-size (and any future "pick one of N" knob). -local function variant_cycle(args) - return { - n = G.UIT.R, - config = { align = "cm", padding = 0.04 }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm" }, - nodes = { - create_option_cycle({ - id = args.id, - label = args.label, - scale = 0.7, - options = args.options, - current_option = args.current_option, - opt_callback = args.opt_callback, - w = 4, - minw = 4, - }), - }, - }, - { - n = G.UIT.R, - config = { align = "cm", func = args.blurb_func, minh = 0.3 }, - nodes = { { n = G.UIT.T, config = { text = "", scale = 0.3, colour = G.C.UI.TEXT_INACTIVE } } }, - }, - }, - } -end - -function MP.UI.build_glass_cycle() - return variant_cycle({ - id = "modifier_glass_option", - label = "Glass", - options = variant_labels(GLASS_VARIANTS), - current_option = variant_index(GLASS_VARIANTS), - opt_callback = "change_glass_variant", - blurb_func = "mp_glass_blurb", - }) -end - -function MP.UI.build_mutators_wall() - local columns = {} - for _, cat in ipairs(MUTATOR_WALL) do - columns[#columns + 1] = mutator_column(cat) - end - return { - n = G.UIT.R, - config = { align = "cm" }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm", padding = 0.02 }, - nodes = { - { - n = G.UIT.T, - config = { text = "MUTATORS", scale = 0.5, colour = G.C.UI.TEXT_LIGHT, shadow = true }, - }, - }, - }, - { - n = G.UIT.R, - config = { align = "cm", padding = 0.02 }, - nodes = { - { - n = G.UIT.T, - config = { - text = "stack freely · hover for details", - scale = 0.3, - colour = G.C.UI.TEXT_INACTIVE, - }, - }, - }, - }, - { n = G.UIT.R, config = { align = "cm", padding = 0.04 }, nodes = columns }, - }, - } -end - --- Randomize / Blind Random pair (operate on MP.MODIFIERS via the global FUNCS). -function MP.UI.build_mutator_randomize_row() - return { - n = G.UIT.R, - config = { align = "cm", padding = 0.05 }, - nodes = { - { - n = G.UIT.C, - config = { align = "cm", padding = 0.05 }, - nodes = { - UIBox_button({ - id = "mp_randomize_mutators_btn", - button = "mp_randomize_mutators", - label = { "Randomize" }, - colour = G.C.ORANGE, - minw = 2.8, - minh = 0.7, - scale = 0.4, - hover = true, - shadow = true, - }), - }, - }, - { - n = G.UIT.C, - config = { align = "cm", padding = 0.05 }, - nodes = { - UIBox_button({ - id = "mp_blind_random_mutators_btn", - button = "mp_blind_random_mutators", - label = { "Blind Random" }, - colour = G.C.PURPLE, - minw = 2.8, - minh = 0.7, - scale = 0.4, - hover = true, - shadow = true, - }), - }, - }, - }, - } -end diff --git a/ui/main_menu/play_button/_practice_options_overlay.lua b/ui/main_menu/play_button/_practice_options_overlay.lua deleted file mode 100644 index 4605c7d69..000000000 --- a/ui/main_menu/play_button/_practice_options_overlay.lua +++ /dev/null @@ -1,83 +0,0 @@ --- Practice Options overlay: toggles, replay picker entry, and (when allowed by --- the ruleset) the Modifiers entry. Consolidated here so the ruleset_info panel --- in practice mode keeps to a tidy two-button action row. - -G.FUNCS.mp_practice_options_back = function(e) - G.FUNCS.overlay_menu({ - definition = G.UIDEF.ruleset_selection_tabs("practice"), - }) -end - -G.FUNCS.mp_open_practice_options_overlay = function(e) - local ruleset = MP.SP.ruleset and MP.Rulesets[MP.SP.ruleset] or nil - - local practice_toggles = { - { id = "unlimited_slots_toggle", label = "k_unlimited_slots", ref_value = "unlimited_slots" }, - { id = "edition_cycling_toggle", label = "k_edition_cycling", ref_value = "edition_cycling" }, - } - local toggle_nodes = {} - for _, t in ipairs(practice_toggles) do - toggle_nodes[#toggle_nodes + 1] = { - n = G.UIT.R, - config = { align = "cm", padding = 0.05 }, - nodes = { - create_toggle({ - id = t.id, - label = localize(t.label), - ref_table = MP.SP, - ref_value = t.ref_value, - }), - }, - } - end - - local ghost_label = localize("k_ghost_replays") - if MP.GHOST.is_active() then ghost_label = ghost_label .. " (Active)" end - local ghost_button = UIBox_button({ - id = "ghost_replay_button", - button = "open_ghost_replay_picker", - label = { ghost_label }, - minw = 4, - minh = 0.6, - scale = 0.4, - colour = MP.GHOST.is_active() and G.C.GREEN or G.C.BLUE, - hover = true, - shadow = true, - }) - - local body_rows = { - { - n = G.UIT.R, - config = { align = "cm", padding = 0.1 }, - nodes = toggle_nodes, - }, - } - - local modifier_btn = ruleset and MP.UI.build_modifier_button(ruleset, "practice") or nil - if modifier_btn then - body_rows[#body_rows + 1] = { - n = G.UIT.R, - config = { align = "cm", padding = 0.15 }, - nodes = { modifier_btn }, - } - end - - body_rows[#body_rows + 1] = { - n = G.UIT.R, - config = { align = "cm", padding = 0.15 }, - nodes = { ghost_button }, - } - - G.FUNCS.overlay_menu({ - definition = create_UIBox_generic_options({ - back_func = "mp_practice_options_back", - contents = { - { - n = G.UIT.R, - config = { align = "cm", padding = 0.25, colour = G.C.BLACK, r = 0.25, minw = 6 }, - nodes = body_rows, - }, - }, - }), - }) -end diff --git a/ui/main_menu/play_button/custom_ruleset_editor.lua b/ui/main_menu/play_button/custom_ruleset_editor.lua deleted file mode 100644 index 0bfb7b215..000000000 --- a/ui/main_menu/play_button/custom_ruleset_editor.lua +++ /dev/null @@ -1,308 +0,0 @@ -MP.CUSTOM = MP.CUSTOM or {} - -local CONTENT_SETS = { "Vanilla", "Standard", "Sandbox", "Experimental" } - --- Content set (display string) -> base ruleset short key. The custom editor is --- "this base + a stack of modifiers", so each set just points at an existing --- ruleset whose layers we inherit. -local CONTENT_SET_RULESET = { - Vanilla = "vanilla", - Standard = "blitz", - Sandbox = "sandbox", - Experimental = "experimental", -} - --- --------------------------------------------------------------------------- -function MP.CUSTOM.new_draft() - return { - name = "My Ruleset", - base = "Standard", -- key into CONTENT_SETS / CONTENT_SET_RULESET - modifiers = {}, -- snapshotted modifiers - banned_jokers = {}, - banned_consumables = {}, - banned_vouchers = {}, - } -end - -MP.CUSTOM.draft = nil - -local function list_has(list, key) - for _, v in ipairs(list) do - if v == key then return true end - end - return false -end - -local function list_remove(list, key) - for i, v in ipairs(list) do - if v == key then - table.remove(list, i) - return - end - end -end - -local function index_of(list, value, default) - for i, v in ipairs(list) do - if v == value then return i end - end - return default or 1 -end - -local function bucket_for(draft, set) - if set == "Joker" then return draft.banned_jokers end - if set == "Tarot" or set == "Planet" or set == "Spectral" then return draft.banned_consumables end - if set == "Voucher" then return draft.banned_vouchers end - return nil -end - -function MP.CUSTOM.is_banned(key) - local d = MP.CUSTOM.draft - if not d then return false end - return list_has(d.banned_jokers, key) - or list_has(d.banned_consumables, key) - or list_has(d.banned_vouchers, key) -end - -function MP.CUSTOM.toggle_ban(card) - local d = MP.CUSTOM.draft - if not d then return end - local set = card.config.center.set - local key = card.config.center.key - local list = bucket_for(d, set) - if not list then return end - if list_has(list, key) then - list_remove(list, key) - card.debuff = false - else - list[#list + 1] = key - card.debuff = true - end -end - -function MP.CUSTOM.debuff_collection_page() - if not (G.your_collection and MP.CUSTOM.draft) then return end - for i = 1, #G.your_collection do - for _, v in pairs(G.your_collection[i].cards) do - if v.config and v.config.center_key and MP.CUSTOM.is_banned(v.config.center_key) then v.debuff = true end - end - end -end - --- Re-paint every time a collection UIBox is (re)built... -local _cc_ref = SMODS.card_collection_UIBox -function SMODS.card_collection_UIBox(_pool, rows, args) - local ret = _cc_ref(_pool, rows, args) - MP.CUSTOM.debuff_collection_page() - return ret -end - --- ...and every time the player pages within a collection (SMODS paging fires --- option_cycle with this opt_callback). -local _oc_ref = G.FUNCS.option_cycle -function G.FUNCS.option_cycle(e) - local ret = _oc_ref(e) - if e.config.ref_table and e.config.ref_table.opt_callback == "SMODS_card_collection_page" then - MP.CUSTOM.debuff_collection_page() - end - return ret -end - --- hijack the collection when we're in the joker ban -local _your_collection_ref = G.FUNCS.your_collection -G.FUNCS.your_collection = function(e) - if MP.CUSTOM.editing_bans then - MP.CUSTOM.editing_bans = nil - return G.FUNCS.mp_custom_back_to_editor(e) - end - return _your_collection_ref(e) -end - -G.FUNCS.mp_custom_back_to_editor = function(e) - G.FUNCS.overlay_menu({ - definition = G.UIDEF.ruleset_selection_tabs(MP.CUSTOM.editor_mode or "mp", "Custom"), - }) -end - --- credit to @Aaal for MPCustomBans which I was heavily inspired by -SMODS.Keybind({ - key = "mp_custom_ban", - key_pressed = "delete", - action = function(self) - if not MP.CUSTOM.draft then return end - local target = G.CONTROLLER.hovering and G.CONTROLLER.hovering.target - if not (target and target.config and target.config.center) then return end - local area = target.area - if area and area.config and area.config.collection then MP.CUSTOM.toggle_ban(target) end - end, -}) - -G.FUNCS.mp_custom_set_base = function(args) - if MP.CUSTOM.draft and args and args.to_key then MP.CUSTOM.draft.base = CONTENT_SETS[args.to_key] end -end - --- Launch a custom run: chosen base ruleset + the wall's MP.MODIFIERS. --- We set the ruleset directly and deliberately DON'T route through --- change_ruleset_selection / apply_default_modifiers, which would wipe the --- wall's modifier selections. Modifiers ride to the guest via start_lobby's --- modifier_layers serialization, same as the Modifiers overlay. -G.FUNCS.mp_custom_play = function(e) - local d = MP.CUSTOM.draft or MP.CUSTOM.new_draft() - local mode = MP.CUSTOM.editor_mode or "mp" - local base_short = CONTENT_SET_RULESET[d.base] or "blitz" - local base_key = "ruleset_mp_" .. base_short - - if mode == "sp" or mode == "practice" then - MP.SP.ruleset = base_key - else - MP.LOBBY.config.ruleset = base_key - end - - -- Materialize reworks for the chosen base. active_layer_chain now folds in - -- MP.MODIFIERS (the ruleset is set above), so modifier reworks resolve too. - MP.LoadReworks(base_short) - - local ruleset = MP.Rulesets[base_key] - if mode == "sp" then - G.FUNCS.start_sp_run(e) - elseif mode == "practice" then - G.FUNCS.start_practice_run(e) - elseif ruleset and ruleset.forced_gamemode then - G.FUNCS["force_" .. ruleset.forced_gamemode](e) - else - G.FUNCS.select_gamemode(e) - end -end - -G.FUNCS.mp_custom_open_collection = function(e) - MP.CUSTOM.editing_bans = true - G.FUNCS.your_collection_jokers(e) -end - - --- --------------------------------------------------------------------------- --- Tab content --- --------------------------------------------------------------------------- -local function knob_row(node) - return { n = G.UIT.R, config = { align = "cm", padding = 0.08 }, nodes = { node } } -end - -local function soon_pill(label) - return { - n = G.UIT.C, - config = { align = "cm", minw = 4.5, minh = 0.85, padding = 0.08, r = 0.1, emboss = 0.05, colour = G.C.UI.BACKGROUND_INACTIVE }, - nodes = { - { n = G.UIT.R, config = { align = "cm" }, nodes = { { n = G.UIT.T, config = { text = label, scale = 0.45, colour = G.C.UI.TEXT_INACTIVE } } } }, - { n = G.UIT.R, config = { align = "cm" }, nodes = { { n = G.UIT.T, config = { text = "coming soon", scale = 0.3, colour = G.C.UI.TEXT_INACTIVE } } } }, - }, - } -end - --- The editor is local-only for now: custom card bans aren't wired into ApplyBans --- or the lobby modifier sync yet, so on the lobby (mp) path we stub the tab. --- It stays fully functional in sp / practice. -local function coming_soon_root() - return { - n = G.UIT.ROOT, - config = { align = "cm", colour = G.C.CLEAR, minh = 6, minw = 15 }, - nodes = { - { n = G.UIT.R, config = { align = "cm" }, nodes = { soon_pill("Custom ruleset") } }, - }, - } -end - -function MP.UI.build_custom_ruleset_editor(mode) - if mode == "mp" then return coming_soon_root() end - MP.CUSTOM.editor_mode = mode -- so the ban picker's Back knows where to return - MP.CUSTOM.draft = MP.CUSTOM.draft or MP.CUSTOM.new_draft() - local d = MP.CUSTOM.draft - - local knobs = {} - - -- content set radio - knobs[#knobs + 1] = knob_row(create_option_cycle({ - label = "Content set", - scale = 0.8, - options = CONTENT_SETS, - current_option = index_of(CONTENT_SETS, d.base, 2), - opt_callback = "mp_custom_set_base", - w = 4, - })) - - -- edit-bans: custom card bans aren't wired into ApplyBans / network sync yet. - knobs[#knobs + 1] = knob_row(soon_pill("Edit joker bans")) - - -- Variants strip: option-cycles for graded knobs (timer / glass) plus the PvP - -- toggle. Binary twists live on the wall below. - local variants_strip = { - n = G.UIT.R, - config = { align = "cm", padding = 0.04 }, - nodes = { - { n = G.UIT.C, config = { align = "cm", padding = 0.1 }, nodes = { MP.UI.build_timer_modifier_cycle() } }, - { n = G.UIT.C, config = { align = "cm", padding = 0.1 }, nodes = { MP.UI.build_glass_cycle() } }, - { n = G.UIT.C, config = { align = "cm", padding = 0.1 }, nodes = { MP.UI.build_pvp_timer_toggle() } }, - }, - } - - local modifiers_panel = { - variants_strip, - MP.UI.build_mutators_wall(), - { n = G.UIT.R, config = { minh = 0.06 } }, - MP.UI.build_mutator_randomize_row(), - } - - -- Play button label matches the start flow the base ruleset will take. - local base_ruleset = MP.Rulesets["ruleset_mp_" .. (CONTENT_SET_RULESET[d.base] or "blitz")] - local play_label - if mode == "sp" or mode == "practice" then - play_label = localize("b_play_cap") - elseif base_ruleset and base_ruleset.forced_gamemode then - play_label = localize("b_create_lobby") - else - play_label = localize("b_next") - end - - local actions = { - n = G.UIT.R, - config = { align = "cm", padding = 0.12 }, - nodes = { - { - n = G.UIT.C, - config = { align = "cm", padding = 0.06 }, - nodes = { - UIBox_button({ - id = "mp_custom_play_btn", - button = "mp_custom_play", - label = { play_label }, - colour = G.C.GREEN, - minw = 5, - minh = 0.8, - scale = 0.5, - hover = true, - shadow = true, - }), - }, - }, - }, - } - - return { - n = G.UIT.ROOT, - config = { align = "cm", colour = G.C.CLEAR }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm" }, - nodes = { - { n = G.UIT.C, config = { align = "tm", minh = 6, minw = 5, padding = 0.1 }, nodes = knobs }, - { - n = G.UIT.C, - config = { align = "tm", minh = 6, minw = 10, padding = 0.15, r = 0.1, colour = G.C.BLACK }, - nodes = modifiers_panel, - }, - }, - }, - actions, - }, - } -end diff --git a/ui/main_menu/play_button/gamemode_selection.lua b/ui/main_menu/play_button/gamemode_selection.lua deleted file mode 100644 index f05c09bc0..000000000 --- a/ui/main_menu/play_button/gamemode_selection.lua +++ /dev/null @@ -1,199 +0,0 @@ -function G.UIDEF.gamemode_selection_options() - MP.LOBBY.config.gamemode = "gamemode_mp_attrition" - - local default_gamemode_area = UIBox({ - definition = G.UIDEF.gamemode_info("attrition"), - config = { align = "cm" }, - }) - - local gamemode_buttons_data = { - { - name = "k_battle", - buttons = { - { button_id = "attrition_gamemode_button", button_localize_key = "k_attrition" }, - { button_id = "showdown_gamemode_button", button_localize_key = "k_showdown" }, - }, - }, - { - name = "k_challenge", - buttons = { - { button_id = "survival_gamemode_button", button_localize_key = "k_survival" }, - }, - }, - } - - return MP.UI.Main_Lobby_Options( - "gamemode_area", - default_gamemode_area, - "change_gamemode_selection", - gamemode_buttons_data - ) -end - -function G.UIDEF.gamemode_selection_tabs() - local tabs = { - { - label = localize("k_gamemodes"), - tab_definition_function = function() - return G.UIDEF.gamemode_selection_options() - end, - chosen = true, - } - } - local t = create_UIBox_generic_options({ - back_func = "create_lobby", - contents = { - { - n = G.UIT.R, - config = { align = "cm", padding = 0 }, - nodes = { - create_tabs({ - tabs = tabs, - colour = G.C.BOOSTER, - }), - }, - }, - }, - }) - return t -end - -function G.FUNCS.change_gamemode_selection(e) - MP.UI.Change_Main_Lobby_Options( - e, - "gamemode_area", - G.UIDEF.gamemode_info, - "attrition_gamemode_button", - function(gamemode_name) - MP.LOBBY.config.gamemode = "gamemode_mp_" .. gamemode_name - end - ) -end - -function G.UIDEF.gamemode_info(gamemode_name) - local gamemode = MP.Gamemodes["gamemode_mp_" .. gamemode_name] - - local gamemode_info_tabs = UIBox({ - definition = G.UIDEF.gamemode_tabs(gamemode), - config = { align = "cm" }, - }) - - return { - n = G.UIT.ROOT, - config = { align = "tm", minh = 8, maxh = 8, minw = 11, maxw = 11, colour = G.C.CLEAR }, - nodes = { - { - n = G.UIT.C, - config = { align = "tm", padding = 0.2, r = 0.1, colour = G.C.BLACK }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm" }, - nodes = { - { n = G.UIT.O, config = { object = gamemode_info_tabs } }, - }, - }, - { - n = G.UIT.R, - config = { align = "cm" }, - nodes = { - { - n = G.UIT.R, - config = { - id = "start_lobby_button", - button = "start_lobby", - align = "cm", - padding = 0.05, - r = 0.1, - minw = 8, - minh = 0.8, - colour = G.C.BLUE, - hover = true, - shadow = true, - }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("b_create_lobby"), - scale = 0.5, - colour = G.C.UI.TEXT_LIGHT, - }, - }, - }, - }, - }, - }, - }, - }, - }, - } -end - -function G.UIDEF.gamemode_tabs(gamemode) - local default_tabs = UIBox({ - definition = G.UIDEF.lobby_setup_tabs_definition(gamemode, "info", 1, false), - config = { align = "cm", tab_type = "info", chosen_tab = 1 }, - }) - - return { - n = G.UIT.ROOT, - config = { align = "cm", colour = G.C.L_BLACK, r = 0.1 }, - nodes = { - { - n = G.UIT.C, - config = { align = "cm" }, - nodes = { - { - n = G.UIT.R, - config = { align = "tm", colour = G.C.GREY, r = 0.1 }, - nodes = { - { n = G.UIT.O, config = { object = default_tabs } }, - }, - }, - { - n = G.UIT.R, - config = { align = "bm", padding = 0.05 }, - nodes = { - create_option_cycle({ - options = { localize("k_info"), localize("k_bans"), localize("k_reworks") }, - current_option = 1, - opt_callback = "gamemode_switch_tabs", - opt_args = { ui = default_tabs, gamemode = gamemode }, - w = 5, - colour = G.C.ORANGE, - cycle_shoulders = false, - }), - }, - }, - }, - }, - }, - } -end - -function G.FUNCS.gamemode_switch_tabs(args) - if not args or not args.cycle_config then return end - local callback_args = args.cycle_config.opt_args - - local tabs_object = callback_args.ui - local tabs_wrap = tabs_object.parent - - local active_tab = tabs_wrap.UIBox:get_UIE_by_ID("gamemode_active_tab") - local active_tab_idx = active_tab and active_tab.config.tab_idx or 1 - - local tab_type = (args.to_key == 2 and "banned") or (args.to_key == 3 and "rework") or "info" - local def = G.UIDEF.lobby_setup_tabs_definition(callback_args.gamemode, tab_type, active_tab_idx, false) - - tabs_object.config.tab_type = tab_type - MP.LOBBY.config.gamemode = callback_args.gamemode.key - MP.LOBBY.gamemode_preview = (tab_type == "rework") - - tabs_wrap.config.object:remove() - tabs_wrap.config.object = UIBox({ - definition = def, - config = { align = "cm", parent = tabs_wrap }, - }) - - tabs_wrap.UIBox:recalculate() -end diff --git a/ui/main_menu/play_button/ghost_replay_picker.lua b/ui/main_menu/play_button/ghost_replay_picker.lua deleted file mode 100644 index 94e961e7c..000000000 --- a/ui/main_menu/play_button/ghost_replay_picker.lua +++ /dev/null @@ -1,739 +0,0 @@ --- Match Replay Picker UI --- Shown in practice mode to select a past match replay for ghost PvP --- Two-column layout: replay list (left) + match details panel (right) - -local function reopen_practice_menu() - G.FUNCS.overlay_menu({ - definition = G.UIDEF.ruleset_selection_tabs("practice"), - }) -end - -local function refresh_picker() - G.FUNCS.exit_overlay_menu() - G.FUNCS.overlay_menu({ - definition = G.UIDEF.ghost_replay_picker(), - }) -end - -function G.FUNCS.open_ghost_replay_picker(e) - G.FUNCS.overlay_menu({ - definition = G.UIDEF.ghost_replay_picker(), - }) -end - --- Stashed merged replay list so callbacks can index into it -local _picker_replays = {} --- Currently previewed replay (shown in right panel) -local _preview_idx = nil --- Perspective flip for the previewed replay (before loading) -local _preview_flipped = false - -function G.FUNCS.preview_ghost_replay(e) - local idx = tonumber(e.config.id:match("ghost_replay_(%d+)")) - if idx ~= _preview_idx then - _preview_flipped = false - end - _preview_idx = idx - refresh_picker() -end - -function G.FUNCS.load_previewed_ghost(e) - local replay = _picker_replays[_preview_idx] - if not replay then return end - if not MP.GHOST.is_ruleset_supported(replay) then return end - - MP.GHOST.load(replay) - MP.GHOST.flipped = _preview_flipped - - -- Replay's ruleset, else the picker's current selection. - local ruleset_key = replay.ruleset or MP.SP.ruleset - if ruleset_key then - MP.SP.ruleset = ruleset_key - local ruleset_name = ruleset_key:gsub("^ruleset_mp_", "") - MP.apply_default_modifiers(ruleset_name) - MP.LoadReworks(ruleset_name) - end - - _preview_idx = nil - _preview_flipped = false - G.FUNCS.start_practice_run(e) -end - --- Keep old name working for any external callers -function G.FUNCS.select_ghost_replay(e) - G.FUNCS.preview_ghost_replay(e) -end - -function G.FUNCS.clear_ghost_replay(e) - MP.GHOST.clear() - _preview_idx = nil - _preview_flipped = false - reopen_practice_menu() -end - -function G.FUNCS.flip_ghost_perspective(e) - if _preview_idx then - _preview_flipped = not _preview_flipped - else - MP.GHOST.flip() - end - refresh_picker() -end - -G.FUNCS.ghost_picker_back = function(e) - _preview_idx = nil - _preview_flipped = false - reopen_practice_menu() -end - -------------------------------------------------------------------------------- --- Helpers -------------------------------------------------------------------------------- - - -local function text_row(label, value, scale, label_colour, value_colour) - scale = scale or 0.3 - label_colour = label_colour or G.C.UI.TEXT_INACTIVE - value_colour = value_colour or G.C.WHITE - return { - n = G.UIT.R, - config = { align = "cl", padding = 0.02 }, - nodes = { - { n = G.UIT.T, config = { text = label .. " ", scale = scale, colour = label_colour } }, - { n = G.UIT.T, config = { text = tostring(value), scale = scale, colour = value_colour } }, - }, - } -end - -local function section_header(title, scale) - scale = scale or 0.3 - return { - n = G.UIT.R, - config = { align = "cl", padding = 0.02 }, - nodes = { - { n = G.UIT.T, config = { text = title, scale = scale, colour = G.C.GOLD } }, - }, - } -end - - -local function build_joker_card_area(jokers, width, base_scale) - if not jokers or #jokers == 0 then return nil end - - width = width or 5.5 - base_scale = base_scale or 0.8 - local card_size = math.max(0.3, base_scale - 0.01 * #jokers) - local card_area = CardArea(0, 0, width, G.CARD_H * card_size, { - card_limit = nil, - type = "title_2", - view_deck = true, - highlight_limit = 0, - card_w = G.CARD_W * card_size, - }) - - for _, j in ipairs(jokers) do - local key = j.key or j - local center = G.P_CENTERS[key] - if center then - local card = Card( - 0, - 0, - G.CARD_W * card_size, - G.CARD_H * card_size, - nil, - center, - { bypass_discovery_center = true, bypass_discovery_ui = true } - ) - card_area:emplace(card) - end - end - - return { - n = G.UIT.R, - config = { align = "cm", padding = 0.02 }, - nodes = { - { n = G.UIT.O, config = { object = card_area } }, - }, - } -end - -------------------------------------------------------------------------------- --- Stats panel sub-builders -------------------------------------------------------------------------------- - -local function build_header_row(r) - local header_nodes = {} - - local result_str = (r.winner == "player") and "VICTORY" or "DEFEAT" - local result_colour = (r.winner == "player") and G.C.GREEN or G.C.RED - header_nodes[#header_nodes + 1] = { - n = G.UIT.R, - config = { align = "cm", padding = 0.04 }, - nodes = { - { n = G.UIT.T, config = { text = result_str, scale = 0.4, colour = result_colour } }, - }, - } - - local player_display = r.player_name or "?" - local nemesis_display = r.nemesis_name or "?" - header_nodes[#header_nodes + 1] = { - n = G.UIT.R, - config = { align = "cm", padding = 0.02 }, - nodes = { - { - n = G.UIT.T, - config = { text = player_display .. " vs " .. nemesis_display, scale = 0.35, colour = G.C.WHITE }, - }, - }, - } - - return header_nodes -end - -local function build_match_info_band(r) - local ruleset_display = r.ruleset and r.ruleset:gsub("^ruleset_mp_", "") or "?" - local gamemode_display = r.gamemode and r.gamemode:gsub("^gamemode_mp_", "") or "?" - local deck_display = r.deck or "?" - - local info_left = {} - local info_right = {} - info_left[#info_left + 1] = text_row("Ruleset:", ruleset_display, 0.25) - info_left[#info_left + 1] = text_row("Gamemode:", gamemode_display, 0.25) - info_left[#info_left + 1] = text_row("Deck:", deck_display, 0.25) - if r.seed then info_left[#info_left + 1] = text_row("Seed:", r.seed, 0.25) end - if r.stake then info_left[#info_left + 1] = text_row("Stake:", tostring(r.stake), 0.25) end - - info_right[#info_right + 1] = text_row("Final Ante:", tostring(r.final_ante or "?"), 0.25) - if r.duration then info_right[#info_right + 1] = text_row("Duration:", r.duration, 0.25) end - if r.timestamp then - info_right[#info_right + 1] = text_row("Date:", os.date("%Y-%m-%d %H:%M", r.timestamp), 0.25) - end - if r._filename then - local source_label = r._filename - if r._game_index and r._game_count and r._game_count > 1 then - source_label = source_label .. string.format(" (g%d/%d)", r._game_index, r._game_count) - end - info_right[#info_right + 1] = text_row("Source:", source_label, 0.22) - end - - return { - n = G.UIT.C, - config = { align = "tm", padding = 0.02 }, - nodes = { - section_header("Match Info"), - { - n = G.UIT.R, - config = { align = "tm", padding = 0.02 }, - nodes = { - { n = G.UIT.C, config = { align = "tl", padding = 0.04, minw = 4 }, nodes = info_left }, - { n = G.UIT.C, config = { align = "tl", padding = 0.04, minw = 4 }, nodes = info_right }, - }, - }, - }, - } -end - -local function build_ante_breakdown(r) - local ante_nodes = {} - if r.ante_snapshots then - ante_nodes[#ante_nodes + 1] = section_header("Ante Breakdown") - local antes = {} - for k in pairs(r.ante_snapshots) do - antes[#antes + 1] = tonumber(k) - end - table.sort(antes) - - for _, ante_num in ipairs(antes) do - local snap = r.ante_snapshots[tostring(ante_num)] or r.ante_snapshots[ante_num] - if snap then - local result_icon = snap.result == "win" and "W" or "L" - local r_col = snap.result == "win" and G.C.GREEN or G.C.RED - local p_score = MP.GHOST.format_score(snap.player_score or 0) - local e_score = MP.GHOST.format_score(snap.enemy_score or 0) - local lives_str = "" - if snap.player_lives and snap.enemy_lives then - lives_str = string.format(" [%d-%d]", snap.player_lives, snap.enemy_lives) - end - ante_nodes[#ante_nodes + 1] = { - n = G.UIT.R, - config = { align = "cl", padding = 0.01 }, - nodes = { - { - n = G.UIT.T, - config = { - text = string.format("A%d ", ante_num), - scale = 0.28, - colour = G.C.UI.TEXT_INACTIVE, - }, - }, - { n = G.UIT.T, config = { text = result_icon, scale = 0.28, colour = r_col } }, - { - n = G.UIT.T, - config = { - text = string.format(" %s - %s%s", p_score, e_score, lives_str), - scale = 0.28, - colour = G.C.WHITE, - }, - }, - }, - } - end - end - end - return ante_nodes -end - --- Duel body: symmetric You / Opponent columns (vouchers + jokers) --- Note: reroll_count / reroll_cost_total are only captured for the local --- player, so they live in the footer's "Spending" cell instead of here. -local function build_side_nodes(stats, jokers, label) - local nodes = {} - nodes[#nodes + 1] = section_header(label) - if stats and stats.vouchers then - local voucher_keys = {} - for key in stats.vouchers:gmatch("[^-]+") do - if G.P_CENTERS[key] then voucher_keys[#voucher_keys + 1] = key end - end - if #voucher_keys > 0 then - local voucher_area = build_joker_card_area(voucher_keys, 4, 0.45) - if voucher_area then nodes[#nodes + 1] = voucher_area end - end - end - if jokers then - local joker_area = build_joker_card_area(jokers, 4, 0.6) - if joker_area then nodes[#nodes + 1] = joker_area end - end - return nodes -end - -local function build_spending_cell(r) - local shop_nodes = {} - local ps = r.player_stats - local has_rerolls = ps and (ps.reroll_count or ps.reroll_cost_total) - if r.shop_spending or has_rerolls then - shop_nodes[#shop_nodes + 1] = section_header("Your Spending") - if ps and ps.reroll_count then - shop_nodes[#shop_nodes + 1] = text_row("Rerolls:", tostring(ps.reroll_count), 0.28) - end - if ps and ps.reroll_cost_total then - shop_nodes[#shop_nodes + 1] = text_row("Reroll $:", "$" .. tostring(ps.reroll_cost_total), 0.28) - end - if r.shop_spending then - local total = 0 - local antes = {} - for k, v in pairs(r.shop_spending) do - antes[#antes + 1] = tonumber(k) - total = total + v - end - table.sort(antes) - local parts = {} - for _, a in ipairs(antes) do - parts[#parts + 1] = string.format("A%d:$%d", a, r.shop_spending[tostring(a)] or r.shop_spending[a]) - end - shop_nodes[#shop_nodes + 1] = text_row("Shop $:", "$" .. tostring(total), 0.28) - shop_nodes[#shop_nodes + 1] = { - n = G.UIT.R, - config = { align = "cl", padding = 0.02, maxw = 6 }, - nodes = { - { - n = G.UIT.T, - config = { text = table.concat(parts, " "), scale = 0.24, colour = G.C.UI.TEXT_INACTIVE }, - }, - }, - } - end - end - return shop_nodes -end - -local function build_failed_rounds_cell(r) - local failed_nodes = {} - if r.failed_rounds and #r.failed_rounds > 0 then - local fr_parts = {} - for _, a in ipairs(r.failed_rounds) do - fr_parts[#fr_parts + 1] = "A" .. tostring(a) - end - failed_nodes[#failed_nodes + 1] = section_header("Failed Rounds") - failed_nodes[#failed_nodes + 1] = - text_row("Antes:", table.concat(fr_parts, ", "), 0.28, G.C.UI.TEXT_INACTIVE, G.C.RED) - end - return failed_nodes -end - -local function build_action_buttons(r, flipped) - -- Playing-as flip button + Load button (spans full width) - local playing_as = flipped - and (r.nemesis_name or "?") - or (r.player_name or "?") - - local supported = MP.GHOST.is_ruleset_supported(r) - local action_nodes = {} - - if supported then - action_nodes[#action_nodes + 1] = UIBox_button({ - id = "flip_ghost_perspective", - button = "flip_ghost_perspective", - label = { "Playing as: " .. playing_as }, - minw = 3.5, - minh = 0.5, - scale = 0.3, - colour = G.C.BLUE, - hover = true, - shadow = true, - }) - action_nodes[#action_nodes + 1] = UIBox_button({ - id = "load_previewed_ghost", - button = "load_previewed_ghost", - label = { "Play Match" }, - minw = 3.5, - minh = 0.5, - scale = 0.35, - colour = G.C.GREEN, - hover = true, - shadow = true, - }) - else - action_nodes[#action_nodes + 1] = { - n = G.UIT.R, - config = { align = "cm", padding = 0.04 }, - nodes = { - { - n = G.UIT.T, - config = { - text = "Unsupported ruleset — cannot play this replay", - scale = 0.3, - colour = G.C.RED, - }, - }, - }, - } - end - - return { - n = G.UIT.R, - config = { align = "cm", padding = 0.08 }, - nodes = action_nodes, - } -end - -------------------------------------------------------------------------------- --- Stats detail panel (right column) -------------------------------------------------------------------------------- - -local function build_stats_panel(r) - if not r then - return { - n = G.UIT.C, - config = { align = "cm", padding = 0.2, minw = 6, minh = 5 }, - nodes = { - { - n = G.UIT.T, - config = { - text = "Select a match", - scale = 0.35, - colour = G.C.UI.TEXT_INACTIVE, - }, - }, - }, - } - end - - local header_nodes = build_header_row(r) - local match_info_band = build_match_info_band(r) - local ante_nodes = build_ante_breakdown(r) - local your_nodes = build_side_nodes(r.player_stats, r.player_jokers, r.player_name or "You") - local opp_nodes = build_side_nodes(r.nemesis_stats, r.nemesis_jokers, r.nemesis_name or "Opponent") - local shop_nodes = build_spending_cell(r) - local failed_nodes = build_failed_rounds_cell(r) - local load_button = build_action_buttons(r, _preview_flipped) - - -- Three vertically stacked bands: meta (just Match Info), duel, footer - local meta_band = { - n = G.UIT.R, - config = { align = "tm", padding = 0.02 }, - nodes = { match_info_band }, - } - - local duel_band = { - n = G.UIT.R, - config = { align = "tm", padding = 0.02 }, - nodes = { - { n = G.UIT.C, config = { align = "tm", padding = 0.05, minw = 5 }, nodes = your_nodes }, - { n = G.UIT.C, config = { align = "tm", padding = 0.05, minw = 5 }, nodes = opp_nodes }, - }, - } - - -- Ante Breakdown + Your Spending are both "match flow / your $ over time" data - local footer_band = { - n = G.UIT.R, - config = { align = "tm", padding = 0.02 }, - nodes = { - { n = G.UIT.C, config = { align = "tm", padding = 0.05, minw = 4 }, nodes = ante_nodes }, - { n = G.UIT.C, config = { align = "tm", padding = 0.05, minw = 4 }, nodes = shop_nodes }, - { n = G.UIT.C, config = { align = "tm", padding = 0.05, minw = 2 }, nodes = failed_nodes }, - }, - } - - local body_row = { - n = G.UIT.R, - config = { align = "tm", padding = 0.02 }, - nodes = { - { - n = G.UIT.C, - config = { align = "tm", padding = 0.02 }, - nodes = { meta_band, duel_band, footer_band }, - }, - }, - } - - return { - n = G.UIT.C, - config = { align = "tm", padding = 0.1, minw = 9, r = 0.1, colour = G.C.L_BLACK }, - nodes = { - -- Header spanning both columns - { - n = G.UIT.R, - config = { align = "cm" }, - nodes = { { n = G.UIT.C, config = { align = "cm" }, nodes = header_nodes } }, - }, - -- Two-column body - body_row, - -- Full-width button - load_button, - }, - } -end - -------------------------------------------------------------------------------- --- Main picker UI -------------------------------------------------------------------------------- - -local function load_all_replays() - local all = MP.GHOST.load_folder_replays() - local seen = {} - for _, r in ipairs(all) do - seen[(r._filename or "") .. ":" .. (r._game_index or 0)] = true - end - for _, r in ipairs(MP.GHOST.load_lovely_log_replays(10)) do - local key = (r._filename or "") .. ":" .. (r._game_index or 0) - if not seen[key] then - seen[key] = true - all[#all + 1] = r - end - end - - table.sort(all, function(a, b) - return (a.timestamp or 0) > (b.timestamp or 0) - end) - - return all -end - -local function build_replay_list(replays, preview_idx) - local replay_nodes = {} - - if #replays == 0 then - replay_nodes[#replay_nodes + 1] = { - n = G.UIT.R, - config = { align = "cm", padding = 0.2 }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("k_no_ghost_replays"), - scale = 0.35, - colour = G.C.UI.TEXT_INACTIVE, - }, - }, - }, - } - replay_nodes[#replay_nodes + 1] = { - n = G.UIT.R, - config = { align = "cm", padding = 0.02 }, - nodes = { - { - n = G.UIT.T, - config = { - text = "Play a match, or place .log/.json in replays/", - scale = 0.28, - colour = G.C.UI.TEXT_INACTIVE, - }, - }, - }, - } - else - local last_filename = nil - for i, r in ipairs(replays) do - -- Show filename header when entering a new log file group with multiple games - if r._filename and r._game_count and r._game_count > 1 then - if r._filename ~= last_filename then - last_filename = r._filename - local display_name = r._filename:gsub("%.log$", "") - replay_nodes[#replay_nodes + 1] = { - n = G.UIT.R, - config = { align = "cl", padding = 0.02 }, - nodes = { - { - n = G.UIT.T, - config = { - text = display_name .. " (" .. r._game_count .. " games)", - scale = 0.25, - colour = G.C.UI.TEXT_INACTIVE, - }, - }, - }, - } - end - else - last_filename = nil - end - - local label = MP.GHOST.build_label(r) - local is_selected = (preview_idx == i) - local btn_colour - if is_selected then - btn_colour = G.C.WHITE - elseif r._source == "file" then - btn_colour = G.C.BLUE - else - btn_colour = G.C.GREY - end - - replay_nodes[#replay_nodes + 1] = { - n = G.UIT.R, - config = { align = "cm", padding = 0.03 }, - nodes = { - UIBox_button({ - id = "ghost_replay_" .. i, - button = "preview_ghost_replay", - label = { label }, - minw = 5.5, - minh = 0.45, - scale = 0.3, - colour = btn_colour, - hover = true, - shadow = true, - }), - }, - } - end - end - - return replay_nodes -end - -function G.UIDEF.ghost_replay_picker() - local all = load_all_replays() - _picker_replays = all - - local replay_nodes = build_replay_list(all, _preview_idx) - - -- Control buttons below the list - local control_nodes = {} - - if MP.GHOST.is_active() then - control_nodes[#control_nodes + 1] = { - n = G.UIT.R, - config = { align = "cm", padding = 0.03 }, - nodes = { - UIBox_button({ - id = "clear_ghost_replay", - button = "clear_ghost_replay", - label = { "Clear Replay" }, - minw = 3, - minh = 0.45, - scale = 0.3, - colour = G.C.RED, - hover = true, - shadow = true, - }), - }, - } - end - - -- Back button - control_nodes[#control_nodes + 1] = { - n = G.UIT.R, - config = { align = "cm", padding = 0.05 }, - nodes = { - UIBox_button({ - id = "ghost_picker_back", - button = "ghost_picker_back", - label = { localize("b_back") }, - minw = 3, - minh = 0.5, - scale = 0.35, - colour = G.C.ORANGE, - hover = true, - shadow = true, - }), - }, - } - - -- Left column - local left_col = { - n = G.UIT.C, - config = { align = "tm", padding = 0.1, minw = 6, r = 0.1, colour = G.C.L_BLACK }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm", padding = 0.06 }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("k_ghost_replays"), - scale = 0.45, - colour = G.C.WHITE, - }, - }, - }, - }, - { - n = G.UIT.R, - config = { align = "cm", padding = 0.05, maxh = 5 }, - nodes = replay_nodes, - }, - { - n = G.UIT.R, - config = { align = "cm", padding = 0.05 }, - nodes = control_nodes, - }, - }, - } - - -- Right column: stats detail - local preview_replay = _preview_idx and _picker_replays[_preview_idx] or nil - local right_col = build_stats_panel(preview_replay) - - return { - n = G.UIT.ROOT, - config = { align = "cm", colour = G.C.CLEAR, minh = 7, minw = 13 }, - nodes = { - { - n = G.UIT.R, - config = { align = "cm", padding = 0.15 }, - nodes = { - { - n = G.UIT.C, - config = { - align = "tm", - padding = 0.15, - r = 0.1, - colour = G.C.BLACK, - maxw = 16.5, - maxh = 8, - }, - nodes = { - { - n = G.UIT.R, - config = { align = "tm", padding = 0.05 }, - nodes = { left_col, right_col }, - }, - }, - }, - }, - }, - }, - } -end diff --git a/ui/main_menu/play_button/join_lobby_button.lua b/ui/main_menu/play_button/join_lobby_button.lua deleted file mode 100644 index 417eaa0df..000000000 --- a/ui/main_menu/play_button/join_lobby_button.lua +++ /dev/null @@ -1,42 +0,0 @@ -function G.UIDEF.create_UIBox_join_lobby_button() - return ( - create_UIBox_generic_options({ - back_func = "play_options", - contents = { - { - n = G.UIT.R, - config = { - padding = 0, - align = "cm", - }, - nodes = { - { - n = G.UIT.R, - config = { - padding = 0.5, - align = "cm", - }, - nodes = { - create_text_input({ - w = 4, - h = 1, - max_length = 5, - all_caps = true, - prompt_text = localize("k_enter_lobby_code"), - ref_table = MP.LOBBY, - ref_value = "temp_code", - extended_corpus = false, - keyboard_offset = 4, - minw = 5, - callback = function(val) - MP.ACTIONS.join_lobby(MP.LOBBY.temp_code) - end, - }), - }, - }, - }, - }, - }, - }) - ) -end diff --git a/ui/main_menu/play_button/play_button.lua b/ui/main_menu/play_button/play_button.lua deleted file mode 100644 index 3c34fd548..000000000 --- a/ui/main_menu/play_button/play_button.lua +++ /dev/null @@ -1,84 +0,0 @@ -function G.UIDEF.override_main_menu_play_button() - if not G.SETTINGS.tutorial_complete or G.SETTINGS.tutorial_progress ~= nil then - return ( - create_UIBox_generic_options({ - contents = { - UIBox_button({ - label = { localize("b_singleplayer") }, - colour = G.C.BLUE, - button = "setup_run_singleplayer", - minw = 5, - }), - { - n = G.UIT.R, - config = { - align = "cm", - padding = 0.5, - }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("k_tutorial_not_complete"), - colour = G.C.UI.TEXT_LIGHT, - scale = 0.45, - }, - }, - }, - }, - UIBox_button({ - label = { localize("b_skip_tutorial") }, - colour = G.C.RED, - button = "skip_tutorial", - minw = 5, - }), - }, - }) - ) - end - - return ( - create_UIBox_generic_options({ - contents = { - UIBox_button({ - label = { localize("b_singleplayer") }, - colour = G.C.BLUE, - button = "start_vanilla_sp", - minw = 5, - }), - UIBox_button({ - label = { localize("b_sp_with_ruleset") }, - colour = G.C.ORANGE, - button = "setup_practice_mode", - minw = 5, - }), - MP.LOBBY.connected and UIBox_button({ - label = { localize("b_create_lobby") }, - colour = G.C.GREEN, - button = "create_lobby", - minw = 5, - }) or nil, - MP.LOBBY.connected and UIBox_button({ - label = { localize("b_join_lobby") }, - colour = G.C.RED, - button = "join_lobby", - minw = 5, - minh = 0.7, - }) or nil, - MP.LOBBY.connected and UIBox_button({ - label = { localize("b_join_lobby_clipboard") }, - colour = G.C.PURPLE, - button = "join_from_clipboard", - minw = 5, - minh = 0.7, - }) or nil, - not MP.LOBBY.connected and UIBox_button({ - label = { localize("b_reconnect") }, - colour = G.C.RED, - button = "reconnect", - minw = 5, - }) or nil, - }, - }) - ) -end diff --git a/ui/main_menu/play_button/play_button_callbacks.lua b/ui/main_menu/play_button/play_button_callbacks.lua deleted file mode 100644 index f9c897708..000000000 --- a/ui/main_menu/play_button/play_button_callbacks.lua +++ /dev/null @@ -1,158 +0,0 @@ -function G.FUNCS.setup_run_singleplayer(e) - G.SETTINGS.paused = true - MP.LOBBY.config.ruleset = nil - MP.LOBBY.config.gamemode = nil - MP.SP.ruleset = nil - MP.SP.practice = false - MP.GHOST.clear() - MP.MODIFIERS = {} - - G.FUNCS.overlay_menu({ - definition = G.UIDEF.ruleset_selection_tabs("sp"), - }) -end - -function G.FUNCS.start_sp_run(e) - G.FUNCS.exit_overlay_menu() - G.FUNCS.setup_run(e) -end - -function G.FUNCS.start_vanilla_sp(e) - MP.LOBBY.config.ruleset = nil - MP.LOBBY.config.gamemode = nil - MP.SP.ruleset = nil - MP.SP.practice = false - MP.GHOST.clear() - G.FUNCS.setup_run(e) -end - -function G.FUNCS.play_options(e) - G.SETTINGS.paused = true - - G.FUNCS.overlay_menu({ - definition = G.UIDEF.override_main_menu_play_button(), - }) -end - -function G.FUNCS.create_lobby(e) - G.SETTINGS.paused = true - - -- Clear practice/ghost state so it can't shadow MP reads during lobby setup. - MP.SP.practice = false - MP.GHOST.clear() - MP.MODIFIERS = {} - - G.FUNCS.overlay_menu({ - definition = G.UIDEF.ruleset_selection_tabs("mp"), - }) -end - -function G.FUNCS.select_gamemode(e) - G.SETTINGS.paused = true - - G.FUNCS.overlay_menu({ - definition = G.UIDEF.gamemode_selection_tabs(), - }) -end - -function G.FUNCS.join_lobby(e) - G.SETTINGS.paused = true - - -- Same isolation as create_lobby; modifiers arrive from the host. - MP.SP.practice = false - MP.GHOST.clear() - - G.FUNCS.overlay_menu({ - definition = G.UIDEF.create_UIBox_join_lobby_button(), - }) - local text_input = G.OVERLAY_MENU:get_UIE_by_ID("text_input") - G.FUNCS.select_text_input(text_input) -end - -function G.FUNCS.weekly_interrupt(e) - if (not MP.LOBBY.config.weekly) or (MP.LOBBY.config.weekly ~= MP.LOBBY.fetched_weekly) then - G.SETTINGS.paused = true - - G.FUNCS.overlay_menu({ - definition = G.UIDEF.weekly_interrupt(not not MP.LOBBY.config.weekly), - }) - return true - end - return false -end - -function G.FUNCS.set_weekly(e) - SMODS.Mods["Multiplayer"].config.weekly = MP.LOBBY.fetched_weekly - SMODS.save_mod_config(SMODS.Mods["Multiplayer"]) - SMODS.restart_game() -- idk if this works well... -end - -function G.FUNCS.skip_tutorial(e) - G.SETTINGS.tutorial_complete = true - G.SETTINGS.tutorial_progress = nil - G.FUNCS.play_options(e) -end - -function G.FUNCS.join_from_clipboard(e) - local paste = MP.UTILS.get_from_clipboard() - if not paste then return end - MP.LOBBY.temp_code = string.sub(string.upper(paste:gsub("[^%a]", "")), 1, 5) -- cursed - MP.ACTIONS.join_lobby(MP.LOBBY.temp_code) -end - -function G.FUNCS.start_lobby(e) - G.SETTINGS.paused = false - - MP.SP.practice = false - MP.GHOST.clear() - - MP.reset_lobby_config(true) - - MP.LOBBY.config.multiplayer_jokers = MP.current_ruleset().multiplayer_content - - -- Hide opponent score until you play: default on for standard-layer rulesets - -- only. Set before force_lobby_options() so a forcing ruleset can override it. - MP.LOBBY.config.hide_score_until_played = MP.current_ruleset().standard == true - - MP.LOBBY.config.forced_config = MP.current_ruleset():force_lobby_options() - - MP.LOBBY.config.modifier_layers = MP.modifiers_serialize() - - if MP.LOBBY.config.gamemode == "gamemode_mp_survival" then - MP.LOBBY.config.starting_lives = 1 - MP.LOBBY.config.disable_live_and_timer_hud = true - else - MP.LOBBY.config.disable_live_and_timer_hud = false - end - - -- Check if the current gamemode is valid. If it's not, default to attrition. - local gamemode_check = false - for k, _ in pairs(MP.Gamemodes) do - if k == MP.LOBBY.config.gamemode then gamemode_check = true end - end - MP.LOBBY.config.gamemode = gamemode_check and MP.LOBBY.config.gamemode or "gamemode_mp_attrition" - - MP.LOBBY.config.cocktail = SMODS.Mods["Multiplayer"].config.cocktail - - MP.ACTIONS.create_lobby(string.sub(MP.LOBBY.config.gamemode, 13)) - G.FUNCS.exit_overlay_menu() -end - -function G.FUNCS.join_game_submit(e) - G.FUNCS.exit_overlay_menu() - MP.ACTIONS.join_lobby(MP.LOBBY.temp_code) -end - -function G.FUNCS.join_game_paste(e) - MP.LOBBY.temp_code = MP.UTILS.get_from_clipboard() - MP.ACTIONS.join_lobby(MP.LOBBY.temp_code) - G.FUNCS.exit_overlay_menu() -end - --- Creating forced gamemode buttons for each gamemode, since I am not sure how to pass variables through button presses -for gamemode, _ in pairs(MP.Gamemodes) do - G.FUNCS["force_" .. gamemode] = function(e) - MP.LOBBY.config.gamemode = gamemode - G.FUNCS.start_lobby(e) - end -end diff --git a/ui/main_menu/play_button/ruleset_selection.lua b/ui/main_menu/play_button/ruleset_selection.lua deleted file mode 100644 index 171b436d1..000000000 --- a/ui/main_menu/play_button/ruleset_selection.lua +++ /dev/null @@ -1,724 +0,0 @@ -local rulesets_tabs = { - default = { - { - name = "k_mp_ruleset_tab_general", - data = { - { - name = "k_matchmaking", - buttons = { - { button_id = "standard_ranked_ruleset_button", button_localize_key = "k_standard_ranked" }, - { button_id = "legacy_ranked_ruleset_button", button_localize_key = "k_legacy_ranked" }, - { button_id = "smallworld_ruleset_button", button_localize_key = "k_smallworld" }, - { button_id = "sandbox_ruleset_button", button_localize_key = "k_sandbox" }, - }, - }, - { - name = "k_custom", - buttons = { - { button_id = "blitz_ruleset_button", button_localize_key = "k_blitz" }, - { button_id = "traditional_ruleset_button", button_localize_key = "k_traditional" }, - { button_id = "vanilla_ruleset_button", button_localize_key = "k_vanilla" }, - }, - }, - }, - }, - { - name = "k_mp_ruleset_tab_tournaments", - data = { - { - name = "k_tournament", - buttons = { - { button_id = "majorleague_ruleset_button", button_localize_key = "k_majorleague" }, - { button_id = "minorleague_ruleset_button", button_localize_key = "k_minorleague" }, - { button_id = "wsob_ruleset_button", button_localize_key = "k_wsob" }, - }, - }, - { - name = "k_custom", - buttons = { - { button_id = "speedlatro_ruleset_button", button_localize_key = "k_speedlatro" }, - { button_id = "badlatro_ruleset_button", button_localize_key = "k_badlatro" }, - { button_id = "chaos_ruleset_button", button_localize_key = "k_chaos" }, - }, - }, - }, - }, - { - name = "k_mp_ruleset_tab_experimental", - data = { - { - name = "k_experimental", - buttons = { - { button_id = "experimental_ruleset_button", button_localize_key = "k_experimental_standard" }, - { button_id = "experimental_legacy_ruleset_button", button_localize_key = "k_experimental_legacy" }, - { button_id = "experimental_blind_raiser_ruleset_button", button_localize_key = "k_experimental_blind_raiser" }, - }, - }, - }, - }, - }, -} - -function G.UIDEF.ruleset_selection_tabs(mode, chosen_label) - local tabs_schema = rulesets_tabs[mode] or rulesets_tabs.default - local tabs = {} - for _, item in ipairs(tabs_schema) do - table.insert(tabs, { - label = localize(item.name), - tab_definition_function = function() - return G.UIDEF.ruleset_selection_options(mode, item.data) - end, - }) - end - -- Bespoke custom-ruleset editor tab (raw strings, no loc keys yet). - if MP.UI.build_custom_ruleset_editor then - table.insert(tabs, { - label = "Custom", - tab_definition_function = function() - return MP.UI.build_custom_ruleset_editor(mode) - end, - }) - end - -- Open on a specific tab when asked (e.g. returning from the ban picker), - -- otherwise default to the first. - local chose = false - if chosen_label then - for _, tab in ipairs(tabs) do - tab.chosen = tab.label == chosen_label - if tab.chosen then chose = true end - end - end - if not chose then tabs[1].chosen = true end - local t = create_UIBox_generic_options({ - back_func = "play_options", - contents = { - { - n = G.UIT.R, - config = { align = "cm", padding = 0 }, - nodes = { - create_tabs({ - tabs = tabs, - colour = G.C.BOOSTER, - }), - }, - }, - }, - }) - return t -end - --- sp/practice selections stay local on MP.SP.ruleset; mp writes the shared --- MP.LOBBY.config.ruleset. Every writer routes through here so practice can't --- touch the MP global. -local function set_selected_ruleset(mode, ruleset_key) - if mode == "sp" or mode == "practice" then - MP.SP.ruleset = ruleset_key - else - MP.LOBBY.config.ruleset = ruleset_key - end -end - -function G.UIDEF.ruleset_selection_options(mode, buttons) - mode = mode or "mp" - MP.LOBBY.fetched_weekly = "smallworld" -- temp - - -- If ghost is active, preserve the replay's ruleset instead of resetting to default - local default_ruleset - if mode == "practice" and MP.GHOST.is_active() and MP.SP.ruleset then - default_ruleset = MP.SP.ruleset:gsub("^ruleset_mp_", "") - else - default_ruleset = string.match(buttons[1].buttons[1].button_id, "(.+)_ruleset_button$") - end - - set_selected_ruleset(mode, "ruleset_mp_" .. default_ruleset) - - -- Modifiers are per-ruleset; reset on (re)entry to a tab so a previous - -- ruleset's toggles can't bleed into the new one. Rulesets with - -- `default_modifiers` get those pre-checked. - -- i'm not a huge fan of any of this living here but - -- here we are - MP.apply_default_modifiers(default_ruleset) - - MP.LoadReworks(default_ruleset) - MP.UI.ruleset_selection_mode = mode - MP.UI.ruleset_selection_default_button = default_ruleset .. "_ruleset_button" - - local default_ruleset_area = UIBox({ - definition = G.UIDEF.ruleset_info(default_ruleset, mode), - config = { align = "cm" }, - }) - return MP.UI.Main_Lobby_Options("ruleset_area", default_ruleset_area, "change_ruleset_selection", buttons) -end - -function G.FUNCS.change_ruleset_selection(e) - local mode = MP.UI.ruleset_selection_mode or "mp" - - if e.config.id == "weekly_ruleset_button" then - if G.FUNCS.weekly_interrupt(e) then return end - end - - -- this currently doesn't work properly - -- local default_button = mode == "sp" and "vanilla_ruleset_button" or "standard_ranked_ruleset_button" - local default_button = MP.UI.ruleset_selection_default_button or "standard_ranked_ruleset_button" - - MP.UI.Change_Main_Lobby_Options( - e, - "ruleset_area", - function(ruleset_name) - return G.UIDEF.ruleset_info(ruleset_name, mode) - end, - default_button, - function(ruleset_name) - set_selected_ruleset(mode, "ruleset_mp_" .. ruleset_name) - MP.apply_default_modifiers(ruleset_name) - MP.LoadReworks(ruleset_name) - end - ) - - MP.LOBBY.ruleset_preview = false -end - -function G.UIDEF.ruleset_info(ruleset_name, mode) - mode = mode or "mp" - local ruleset = MP.Rulesets["ruleset_mp_" .. ruleset_name] - - local ruleset_info_banned_rework_tabs = UIBox({ - definition = G.UIDEF.ruleset_tabs(ruleset), - config = { align = "cm" }, - }) - - local content_nodes = { - { - n = G.UIT.R, - config = { align = "cm" }, - nodes = { - { n = G.UIT.O, config = { object = ruleset_info_banned_rework_tabs } }, - }, - }, - } - - content_nodes[#content_nodes + 1] = MP.UI.build_action_row(ruleset, mode) - - return { - n = G.UIT.ROOT, - config = { align = "tm", minh = 8, maxh = 8, minw = 11, maxw = 11, colour = G.C.CLEAR }, - nodes = { - { - n = G.UIT.C, - config = { align = "tm", padding = 0.2, r = 0.1, colour = G.C.BLACK }, - nodes = content_nodes, - }, - }, - } -end - -function G.UIDEF.ruleset_tabs(ruleset) - local default_tabs = UIBox({ - definition = G.UIDEF.lobby_setup_tabs_definition(ruleset, "info", 1, true), - config = { align = "cm", tab_type = "info", chosen_tab = 1 }, - }) - - return { - n = G.UIT.ROOT, - config = { align = "cm", colour = G.C.L_BLACK, r = 0.1 }, - nodes = { - { - n = G.UIT.C, - config = { align = "cm" }, - nodes = { - { - n = G.UIT.R, - config = { align = "tm", colour = G.C.GREY, r = 0.1 }, - nodes = { - { n = G.UIT.O, config = { object = default_tabs } }, - }, - }, - { - n = G.UIT.R, - config = { align = "bm", padding = 0.05 }, - nodes = { - create_option_cycle({ - options = { localize("k_info"), localize("k_bans"), localize("k_reworks") }, - current_option = 1, - opt_callback = "ruleset_switch_tabs", - opt_args = { ui = default_tabs, ruleset = ruleset }, - w = 5, - colour = G.C.RED, - cycle_shoulders = false, - }), - }, - }, - }, - }, - }, - } -end - -function G.FUNCS.ruleset_switch_tabs(args) - if not args or not args.cycle_config then return end - local callback_args = args.cycle_config.opt_args - - local tabs_object = callback_args.ui - local tabs_wrap = tabs_object.parent - - local active_tab = tabs_wrap.UIBox:get_UIE_by_ID("ruleset_active_tab") - local active_tab_idx = active_tab and active_tab.config.tab_idx or 1 - - local mode = MP.UI.ruleset_selection_mode or "mp" - local tab_type = (args.to_key == 2 and "banned") or (args.to_key == 3 and "rework") or "info" - local def = nil - - set_selected_ruleset(mode, callback_args.ruleset.key) - - if tab_type == "banned" then - def = G.UIDEF.lobby_setup_tabs_definition(callback_args.ruleset, "banned", active_tab_idx, true) - tabs_object.config.tab_type = "banned" - MP.LOBBY.ruleset_preview = false - elseif tab_type == "rework" then - def = G.UIDEF.lobby_setup_tabs_definition(callback_args.ruleset, "rework", active_tab_idx, true) - tabs_object.config.tab_type = "rework" - MP.LOBBY.ruleset_preview = true - else - def = G.UIDEF.lobby_setup_tabs_definition(callback_args.ruleset, "info", active_tab_idx, true) - tabs_object.config.tab_type = "info" - MP.LOBBY.ruleset_preview = false - end - - tabs_wrap.config.object:remove() - tabs_wrap.config.object = UIBox({ - definition = def, - config = { align = "cm", parent = tabs_wrap }, - }) - - tabs_wrap.UIBox:recalculate() -end - -local function create_bans_and_reworks_tabs(ruleset_or_gamemode, is_banned_tab, chosen_tab_idx) - local banned_cards_tabs = {} - - local function merge_lists(lists) - local seen = {} - local ret = {} - for _, tbl in pairs(lists) do - tbl = tbl or {} - for _, v in ipairs(tbl) do - if not seen[v] then - seen[v] = true - table.insert(ret, v) - end - end - end - return ret - end - - local forced_gamemode = {} - if ruleset_or_gamemode.forced_gamemode then forced_gamemode = MP.Gamemodes[ruleset_or_gamemode.forced_gamemode] end - - local tabs = {} - local loc_keys = { - jokers = "b_jokers", - consumables = "b_stat_consumables", - vouchers = "b_vouchers", - enhancements = "b_enhanced_cards", - other = "k_other", - } - local function copy_list(key) - local lists - if is_banned_tab then - lists = { - MP.DECK["BANNED_" .. string.upper(key)], - ruleset_or_gamemode["banned_" .. key], - forced_gamemode["banned_" .. key], - } - for _, mod_name in ipairs(MP.MODIFIERS) do - local layer = MP.Layers[mod_name] - if layer then lists[#lists + 1] = layer["banned_" .. key] end - end - else - lists = { ruleset_or_gamemode["reworked_" .. key], forced_gamemode["reworked_" .. key] } - for _, mod_name in ipairs(MP.MODIFIERS) do - local layer = MP.Layers[mod_name] - if layer then lists[#lists + 1] = layer["reworked_" .. key] end - end - end - return merge_lists(lists) - end - for _, v in ipairs({ "jokers", "consumables", "vouchers", "enhancements", "other" }) do - local entry = { type = localize(loc_keys[v]) } - if v ~= "other" then - entry.obj_ids = copy_list(v) - else - entry.obj_ids = { - blinds = copy_list("blinds"), - tags = copy_list("tags"), - } - end - - tabs[#tabs + 1] = entry - end - - for k, v in ipairs(tabs) do - v.idx = k - v.is_banned_tab = is_banned_tab - local tab_def = { - label = v.type, - chosen = (k == chosen_tab_idx), - tab_definition_function = G.UIDEF.ruleset_cardarea_definition, - tab_definition_function_args = v, - } - table.insert(banned_cards_tabs, tab_def) - end - - return { - n = G.UIT.ROOT, - config = { align = "cm", colour = G.C.CLEAR }, - nodes = { - create_tabs({ - tab_h = 4.2, - padding = 0, - scale = 0.8, - text_scale = 0.36, - no_shoulders = true, - no_loop = true, - tabs = banned_cards_tabs, - }), - }, - } -end - -function G.UIDEF.lobby_setup_tabs_definition(ruleset_or_gamemode, tab_type, chosen_tab_idx, is_ruleset) - if tab_type == "banned" or tab_type == "rework" then - return create_bans_and_reworks_tabs(ruleset_or_gamemode, tab_type == "banned", chosen_tab_idx) - end - - local tab_id = ruleset_or_gamemode.key:find("ruleset") and "ruleset_active_tab" or "gamemode_active_tab" - - return { - n = G.UIT.ROOT, - config = { id = tab_id, align = "cm", colour = G.C.CLEAR }, - nodes = { - { - n = G.UIT.C, - config = { align = "tm", padding = 0.2, r = 0.1, minw = 10.7, maxw = 10.7, minh = 5.75, maxh = 5.75 }, - nodes = ruleset_or_gamemode:create_info_menu(), - }, - }, - } -end - -function G.UIDEF.ruleset_cardarea_definition(args) - local function get_ruleset_cardarea(obj_ids, width, height) - local ret = {} - - if #obj_ids > 0 then - local card_rows = {} - local n_rows = math.max(1, 1 + math.floor(#obj_ids / 10) - math.floor(math.log(6, #obj_ids))) - local max_width = 1 - for k, v in ipairs(obj_ids) do - local _row = math.ceil(n_rows * (k / #obj_ids)) - card_rows[_row] = card_rows[_row] or {} - card_rows[_row][#card_rows[_row] + 1] = v - if #card_rows[_row] > max_width then max_width = #card_rows[_row] end - end - - local card_size = math.max(0.3, 0.8 - 0.01 * (max_width * n_rows)) - - for _, card_row in ipairs(card_rows) do - local card_area = CardArea(0, 0, width, height / n_rows, { - card_limit = nil, - type = "title_2", - view_deck = true, - highlight_limit = 0, - card_w = G.CARD_W * card_size, - }) - - for k, v in ipairs(card_row) do -- Each card_row consists of Card IDs - local card = Card( - 0, - 0, - G.CARD_W * card_size, - G.CARD_H * card_size, - nil, - G.P_CENTERS[v], - { bypass_discovery_center = true, bypass_discovery_ui = true } - ) - card_area:emplace(card) - end - - table.insert(ret, { - n = G.UIT.R, - config = { align = "cm" }, - nodes = { - { n = G.UIT.O, config = { object = card_area } }, - }, - }) - end - end - - return ret - end - - local function get_ruleset_obj_grid(obj_ids, obj_ref_table, objs_per_row, obj_constructor, wrap_as_object) - local objs = {} - for _, v in ipairs(obj_ids) do - objs[#objs + 1] = obj_ref_table[v] - end - -- table.sort(objs, function (a, b) return a.order < b.order end) - - local obj_grid = {} - local obj_rows = {} - for k, v in ipairs(objs) do - local obj = obj_constructor(v) - - local row_idx = math.ceil(k / objs_per_row) - if not obj_rows[row_idx] then obj_rows[row_idx] = {} end - table.insert(obj_rows[row_idx], { - n = G.UIT.C, - config = { align = "cm", padding = 0.1 }, - nodes = { - wrap_as_object and { n = G.UIT.O, config = { object = obj } } or obj, - }, - }) - end - for _, v in ipairs(obj_rows) do - table.insert(obj_grid, { n = G.UIT.R, config = { align = "cm" }, nodes = v }) - end - - return obj_grid - end - - local function get_localised_label(objs, obj_type) - return (#objs > 0) - and { - n = G.UIT.T, - config = { - text = localize({ - type = "variable", - key = args.is_banned_tab and "k_banned_objs" or "k_reworked_objs", - vars = { obj_type }, - }), - colour = lighten(G.C.L_BLACK, 0.5), - scale = 0.33, - }, - } - or { - n = G.UIT.T, - config = { - text = localize({ - type = "variable", - key = args.is_banned_tab and "k_no_banned_objs" or "k_no_reworked_objs", - vars = { obj_type }, - }), - colour = lighten(G.C.L_BLACK, 0.5), - scale = 0.33, - }, - } - end - - if args.type == localize("k_other") then - local function tag_constructor(tag_spec) - return Tag(tag_spec.key):generate_UI(1 - 0.1 * (math.sqrt(#args.obj_ids.tags))) - end - - local function blind_constructor(blind_spec) - local temp_blind = AnimatedSprite( - 0, - 0, - 1.1, - 1.1, - G.ANIMATION_ATLAS[blind_spec.atlas] or G.ANIMATION_ATLAS["blind_chips"], - blind_spec.pos - ) - temp_blind:define_draw_steps({ - { shader = "dissolve", shadow_height = 0.05 }, - { shader = "dissolve" }, - }) - temp_blind.float = true - temp_blind.states.hover.can = true - temp_blind.states.drag.can = false - temp_blind.states.collide.can = true - temp_blind.config = { blind = blind_spec, force_focus = true } - temp_blind.hover = function() - if not G.CONTROLLER.dragging.target or G.CONTROLLER.using_touch then - if not temp_blind.hovering and temp_blind.states.visible then - temp_blind.hovering = true - temp_blind.hover_tilt = 3 - Juice_up(temp_blind, 0.05, 0.02) - temp_blind.config.h_popup = create_UIBox_blind_popup(blind_spec, true) - temp_blind.config.h_popup_config = { - align = "cl", - offset = { x = -0.1, y = 0 }, - parent = temp_blind, - } - Node.hover(temp_blind) - end - end - end - temp_blind.stop_hover = function() - temp_blind.hovering = false - Node.stop_hover(temp_blind) - temp_blind.hover_tilt = 0 - end - - return temp_blind - end - - local tag_grid = get_ruleset_obj_grid(args.obj_ids.tags, G.P_TAGS, 4, tag_constructor) - local blind_grid = get_ruleset_obj_grid(args.obj_ids.blinds, G.P_BLINDS, 3, blind_constructor, true) - - return { - n = G.UIT.ROOT, - config = { id = "ruleset_active_tab", tab_idx = args.idx, align = "cm", colour = G.C.CLEAR }, - nodes = { - { - n = G.UIT.C, - config = { align = "cm", padding = 0.05, r = 0.1, minw = 5.4, minh = 4.8, maxh = 4.8 }, - nodes = { - { n = G.UIT.R, config = { align = "cm", minh = 4 }, nodes = tag_grid }, - { - n = G.UIT.R, - config = { align = "cm", padding = 0.05 }, - nodes = { get_localised_label(args.obj_ids.tags, localize("b_tags")) }, - }, - }, - }, - { - n = G.UIT.C, - config = { align = "cm", padding = 0.05, r = 0.1, minw = 5.4, minh = 4.8, maxh = 4.8 }, - nodes = { - { n = G.UIT.R, config = { align = "cm", minh = 4 }, nodes = blind_grid }, - { - n = G.UIT.R, - config = { align = "cm", padding = 0.05 }, - nodes = { get_localised_label(args.obj_ids.blinds, localize("b_blinds")) }, - }, - }, - }, - }, - } - else - local cards_grid = get_ruleset_cardarea(args.obj_ids, 10, 4) - - return { - n = G.UIT.ROOT, - config = { id = "ruleset_active_tab", tab_idx = args.idx, align = "cm", colour = G.C.CLEAR }, - nodes = { - { - n = G.UIT.C, - config = { align = "cm", padding = 0.05, r = 0.1, minw = 10.8, minh = 4.8, maxh = 4.8 }, - nodes = { - { n = G.UIT.R, config = { align = "cm" }, nodes = cards_grid }, - { - n = G.UIT.R, - config = { align = "cm", padding = 0.05 }, - nodes = { get_localised_label(args.obj_ids, args.type) }, - }, - }, - }, - }, - } - end -end - -function MP.UI.build_modifier_button(ruleset, mode) - if ruleset.forced_lobby_options then return nil end - if type(ruleset.get_modifiers_ui) == "function" then return ruleset:get_modifiers_ui(mode) end - return MP.UI.Disableable_Button({ - button = "mp_open_modifiers_overlay", - align = "cm", - padding = 0.05, - r = 0.1, - minw = 3.5, - minh = 0.8, - colour = G.C.ORANGE, - hover = true, - shadow = true, - label = { "Modifiers..." }, - scale = 0.4, - enabled_ref_table = { val = true }, - enabled_ref_value = "val", - ref_table = { - ruleset = ruleset, - mode = mode, - }, - }) -end - -function MP.UI.get_continue_button(ruleset, mode) - local ruleset_disabled = ruleset.is_disabled() - local button_config - if mode == "sp" then - button_config = { - id = "start_sp_button", - button = "start_sp_run", - label = { localize("b_play_cap") }, - colour = G.C.GREEN, - } - elseif mode == "practice" then - button_config = { - id = "start_practice_button", - button = "start_practice_run", - label = { localize("b_play_cap") }, - colour = G.C.GREEN, - } - else - button_config = { - id = "select_gamemode_button", - button = ruleset.forced_gamemode and "force_" .. ruleset.forced_gamemode or "select_gamemode", - label = { ruleset.forced_gamemode and localize("b_create_lobby") or localize("b_next") }, - colour = G.C.BLUE, - } - end - return MP.UI.Disableable_Button({ - id = button_config.id, - button = button_config.button, - align = "cm", - padding = 0.05, - r = 0.1, - minw = 5, - minh = 0.8, - colour = button_config.colour, - hover = true, - shadow = true, - label = button_config.label, - scale = 0.5, - enabled_ref_table = { val = not ruleset_disabled }, - enabled_ref_value = "val", - disabled_text = { ruleset_disabled }, - }) -end - -function MP.UI.build_practice_options_button() - return UIBox_button({ - id = "practice_options_button", - button = "mp_open_practice_options_overlay", - label = { localize("k_practice_options") }, - minw = 3.5, - minh = 0.8, - scale = 0.4, - colour = G.C.ORANGE, - hover = true, - shadow = true, - }) -end - -function MP.UI.build_action_row(ruleset, mode) - local columns = {} - local function add_col(button) - columns[#columns + 1] = { - n = G.UIT.C, - config = { align = "cm", padding = 0.05 }, - nodes = { button }, - } - end - if mode == "practice" then - -- In practice, the Modifiers button is folded into Practice Options to - -- keep the action row to two buttons regardless of ruleset. - add_col(MP.UI.build_practice_options_button()) - elseif mode == "mp" then - local modifier_btn = MP.UI.build_modifier_button(ruleset, mode) - if modifier_btn then add_col(modifier_btn) end - end - add_col(MP.UI.get_continue_button(ruleset, mode)) - return { n = G.UIT.R, config = { align = "cm" }, nodes = columns } -end diff --git a/ui/main_menu/play_button/weekly_interrupt.lua b/ui/main_menu/play_button/weekly_interrupt.lua deleted file mode 100644 index f15aea6cb..000000000 --- a/ui/main_menu/play_button/weekly_interrupt.lua +++ /dev/null @@ -1,50 +0,0 @@ -function G.UIDEF.weekly_interrupt(loaded) - return ( - create_UIBox_generic_options({ - back_func = "create_lobby", - contents = { - { - n = G.UIT.R, - config = { - align = "cm", - padding = 0.1, - }, - nodes = { - { - n = G.UIT.T, - config = { - text = "A new weekly ruleset is available!", - colour = G.C.UI.TEXT_LIGHT, - scale = 0.45, - }, - }, - }, - }, - { - n = G.UIT.R, - config = { - align = "cm", - padding = 0.2, - }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("k_currently_colon") - .. localize("k_weekly_" .. MP.LOBBY.fetched_weekly), -- bad loc but ok - colour = darken(G.C.UI.TEXT_LIGHT, 0.2), - scale = 0.35, - }, - }, - }, - }, - UIBox_button({ - label = { localize("k_sync_locally") }, - colour = G.C.DARK_EDITION, - button = "set_weekly", - minw = 5, - }), - }, - }) - ) -end diff --git a/ui/main_menu/title_card.lua b/ui/main_menu/title_card.lua deleted file mode 100644 index 3a8a92865..000000000 --- a/ui/main_menu/title_card.lua +++ /dev/null @@ -1,133 +0,0 @@ -local function nope_a_joker(card) - attention_text({ - text = localize("k_nope_ex"), - scale = 0.8, - hold = 0.8, - major = card, - backdrop_colour = G.C.SECONDARY_SET.Tarot, - align = (G.STATE == G.STATES.TAROT_PACK or G.STATE == G.STATES.SPECTRAL_PACK) and "tm" or "cm", - offset = { - x = 0, - y = (G.STATE == G.STATES.TAROT_PACK or G.STATE == G.STATES.SPECTRAL_PACK) and -0.2 or 0, - }, - silent = true, - }) - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.06 * G.SETTINGS.GAMESPEED, - blockable = false, - blocking = false, - func = function() - play_sound("tarot2", 0.76, 0.4) - return true - end, - })) - play_sound("tarot2", 1, 0.4) -end - -function Juice_up(thing, a, b) - if SMODS.Mods["Talisman"] and SMODS.Mods["Talisman"].can_load then - local disable_anims = Talisman.config_file.disable_anims - Talisman.config_file.disable_anims = false - thing:juice_up(a, b) - Talisman.config_file.disable_anims = disable_anims - else - thing:juice_up(a, b) - end -end - -local function wheel_of_fortune_the_card(card) - math.randomseed(os.time()) - local chance = math.random(4) - if chance == 1 and not card.edition then - local editions = { - { name = "e_foil", weight = 499 }, - { name = "e_holo", weight = 350 }, - { name = "e_polychrome", weight = 150 }, - { name = "e_negative", weight = 1 }, - } - local edition = poll_edition("main_menu" .. os.time(), nil, nil, true, editions) - if edition and edition.name then - card:set_edition(nil, true, true) - card:set_edition(edition.name, true) - Juice_up(card, 0.3, 0.5) - G.CONTROLLER.locks.edition = false -- if this isn't done, set_edition will block inputs for 0.1s - end - else - nope_a_joker(card) - Juice_up(card, 0.3, 0.5) - end -end - -local function make_wheel_of_fortune_a_card_func(card) - return function() - if card then wheel_of_fortune_the_card(card) end - return true - end -end - -MP.title_card = nil - -function Add_custom_multiplayer_cards(change_context) - local first_card = G.title_top.cards[1] - if first_card and not first_card.mod_flag and first_card.config and first_card.config.center_key == "c_base" then - first_card:set_base(G.P_CARDS["S_A"], true) - end - - -- Taken from SMODS - local title_card = SMODS.create_card({ - key = "c_base", no_edition = true, area = G.title_top, - bypass_discovery_center = true, skip_materialize = true - }) - title_card:set_base(G.P_CARDS["H_A"], true) - G.title_top.T.w = G.title_top.T.w + (1.7675 / math.max(#G.title_top.cards, 1)) - G.title_top.T.x = G.title_top.T.x - (0.885 / math.max(#G.title_top.cards, 1)) -- everyone who used -0.8 was WRONG - title_card.T.w = title_card.T.w * 1.1 * 1.2 - title_card.T.h = title_card.T.h * 1.1 * 1.2 - G.title_top:emplace(title_card) - title_card.no_ui = true - title_card.states.visible = false - - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = change_context == "game" and 1.5 or 0, - blockable = false, - blocking = false, - func = function() - if change_context == "splash" then - title_card.states.visible = true - title_card:start_materialize({ G.C.WHITE, G.C.WHITE }, true, 2.5) - play_sound("whoosh1", math.random() * 0.1 + 0.3, 0.3) - play_sound("crumple" .. math.random(1, 5), math.random() * 0.2 + 0.6, 0.65) - else - title_card.states.visible = true - title_card:start_materialize({ G.C.WHITE, G.C.WHITE }, nil, 1.2) - end - G.VIBRATION = G.VIBRATION + 1 - return true - end, - })) - - MP.title_card = title_card - - -- base delay in seconds, increases as needed - local wheel_delay = 2 - - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = wheel_delay, - blockable = false, - blocking = false, - func = make_wheel_of_fortune_a_card_func(first_card), - })) - - wheel_delay = wheel_delay + 1 - - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = wheel_delay, - blockable = false, - blocking = false, - func = make_wheel_of_fortune_a_card_func(MP.title_card), - })) -end diff --git a/ui/main_menu/version_display.lua b/ui/main_menu/version_display.lua deleted file mode 100644 index bd7d40b35..000000000 --- a/ui/main_menu/version_display.lua +++ /dev/null @@ -1,33 +0,0 @@ -MULTIPLAYER_VERSION = SMODS.Mods["Multiplayer"].version .. "-MULTIPLAYER" - -function Add_version_display() - -- Add version to main menu - UIBox({ - definition = { - n = G.UIT.ROOT, - config = { - align = "cm", - colour = G.C.UI.TRANSPARENT_DARK, - }, - nodes = { - { - n = G.UIT.T, - config = { - scale = 0.3, - text = MULTIPLAYER_VERSION, - colour = G.C.UI.TEXT_LIGHT, - }, - }, - }, - }, - config = { - align = "tri", - bond = "Weak", - offset = { - x = 0, - y = 0.6, - }, - major = G.ROOM_ATTACH, - }, - }) -end diff --git a/ui/smods_menu/config_tab.lua b/ui/smods_menu/config_tab.lua deleted file mode 100644 index 4562df0e1..000000000 --- a/ui/smods_menu/config_tab.lua +++ /dev/null @@ -1,161 +0,0 @@ -function MP.UI.create_config_tab() - local ret = { - n = G.UIT.ROOT, - config = { - r = 0.1, - minw = 5, - align = "cm", - padding = 0.2, - colour = G.C.BLACK, - }, - nodes = { - { - n = G.UIT.R, - config = { - padding = 0, - align = "cm", - on_demand_tooltip = { - text = localize("k_automatic_pvp_timer_description"), - }, - }, - nodes = { - create_toggle({ - id = "multiplayer_automatic_pvp_timer", - label = localize("k_automatic_pvp_timer"), - ref_table = SMODS.Mods["Multiplayer"].config, - ref_value = "automatic_pvp_timer", - }), - }, - }, - { - n = G.UIT.R, - config = { - padding = 0, - align = "cm", - on_demand_tooltip = { - text = { - localize("k_preview_integration_desc"), - localize("k_preview_credit"), - }, - }, - }, - nodes = { - create_toggle({ - id = "fantoms_preview_integration_toggle", - label = localize("b_preview_integration"), - ref_table = SMODS.Mods["Multiplayer"].config.integrations, - ref_value = "Preview", - }), - }, - }, - { - n = G.UIT.R, - config = { - padding = 0, - align = "cm", - }, - nodes = { - { - n = G.UIT.T, - config = { - text = localize("k_preview_credit"), - shadow = true, - scale = 0.375, - colour = G.C.UI.TEXT_INACTIVE, - }, - }, - { - n = G.UIT.B, - config = { - w = 0.1, - h = 0.1, - }, - }, - { - n = G.UIT.T, - config = { - text = localize("k_requires_restart"), - shadow = true, - scale = 0.375, - colour = G.C.UI.TEXT_INACTIVE, - }, - }, - }, - }, - { - n = G.UIT.R, - config = { - padding = 0, - align = "cm", - on_demand_tooltip = { - text = { - localize("k_applies_singleplayer_vanilla_rulesets"), - }, - }, - }, - nodes = { - create_toggle({ - id = "singleplayer_hide_content_toggle", - label = localize("k_hide_mp_content"), - ref_table = SMODS.Mods["Multiplayer"].config, - ref_value = "hide_mp_content", - }), - }, - }, - { - n = G.UIT.R, - config = { - padding = 0.1, - align = "cm", - }, - nodes = { - { - n = G.UIT.C, - config = { align = "cm" }, - nodes = { - create_option_cycle({ - label = localize("k_timer_sfx"), - w = 4, - scale = 0.8, - options = localize("ml_mp_timersfx_opt"), - opt_callback = "mp_change_timersfx", - current_option = SMODS.Mods["Multiplayer"].config.timersfx or 1, - }), - }, - }, - }, - }, - { - n = G.UIT.R, - config = { - padding = 0.1, - align = "cm", - }, - nodes = { - UIBox_button({ - button = "mp_open_log_parser", - label = { localize("b_open_log_parser") }, - minw = 3, - maxw = 3, - minh = 0.8, - maxh = 0.8, - col = true, - colour = G.C.CHIPS, - }), - UIBox_button({ - id = "from_game_won", - button = "mp_get_lovely_log_file", - label = { localize("b_get_log_file") }, - minw = 3, - maxw = 3, - minh = 0.8, - maxh = 0.8, - col = true, - colour = G.C.CHIPS, - }), - }, - }, - }, - } - return ret -end diff --git a/ui/smods_menu/credits_tab.lua b/ui/smods_menu/credits_tab.lua deleted file mode 100644 index dc21906ce..000000000 --- a/ui/smods_menu/credits_tab.lua +++ /dev/null @@ -1,60 +0,0 @@ -function MP.UI.create_credits_tab() - local scale = 0.75 - return { - n = G.UIT.ROOT, - config = { - emboss = 0.05, - minh = 6, - r = 0.1, - minw = 6, - align = "cm", - padding = 0.2, - colour = G.C.BLACK, - }, - nodes = { - MP.UI.UTILS.create_row({ padding = 0.2, align = "cm" }, { - MP.UI.UTILS.create_text_node(localize("k_created_by"), { - scale = scale * 0.8, - colour = G.C.UI.TEXT_LIGHT, - }), - MP.UI.UTILS.create_text_node("Virtualized", { - scale = scale * 0.8, - colour = G.C.DARK_EDITION, - }), - }), - MP.UI.UTILS.create_row({ align = "cm", padding = 0 }, { - MP.UI.UTILS.create_text_node(localize("k_major_contributors"), { - scale = scale * 0.8, - colour = G.C.UI.TEXT_LIGHT, - }), - }), - MP.UI.UTILS.create_row({ align = "cm", padding = 0.2 }, { - MP.UI.UTILS.create_text_node( - localize({ - type = "variable", - key = "k_credits_list", - vars = { "TGMM, Senfinbrare, CUexter, Brawmario, Divvy, Andy, Steph, SleepyG11," }, - }), - { - scale = scale * 0.8, - colour = G.C.RED, - } - ), - }), - MP.UI.UTILS.create_row({ align = "cm", padding = 0 }, { - UIBox_button({ - minw = 3.85, - button = "bmp_github", - label = { localize("b_github_project") }, - }), - }), - MP.UI.UTILS.create_row({ align = "cm", padding = 0 }, { - UIBox_button({ - minw = 3.85 * 2, - button = "bmp_discord", - label = { localize("b_mp_discord") }, - }), - }), - }, - } -end diff --git a/ui/smods_menu/customization_tab.lua b/ui/smods_menu/customization_tab.lua deleted file mode 100644 index aa5360b79..000000000 --- a/ui/smods_menu/customization_tab.lua +++ /dev/null @@ -1,216 +0,0 @@ -function MP.UI.create_customization_tab() - local blind_anim = AnimatedSprite( - 0, - 0, - 1.4, - 1.4, - G.ANIMATION_ATLAS["mp_player_blind_col"], - G.P_BLINDS[MP.UTILS.blind_col_numtokey(MP.LOBBY.blind_col)].pos - ) - blind_anim:define_draw_steps({ - { shader = "dissolve", shadow_height = 0.05 }, - { shader = "dissolve" }, - }) - MP.PREVIEW.text = SMODS.Mods["Multiplayer"].config.preview.text or "" - MP.PREVIEW.button = SMODS.Mods["Multiplayer"].config.preview.button or "" - local ret = { - n = G.UIT.ROOT, - config = { - r = 0.1, - minw = 5, - align = "cm", - padding = 0.2, - colour = G.C.BLACK, - }, - nodes = { - MP.INTEGRATIONS.Preview and { - n = G.UIT.R, - config = { - padding = 0.10, - align = "cm", - id = "preview_text_input", - }, - nodes = { - { - n = G.UIT.T, - config = { - scale = 0.5, - text = localize("k_customize_preview"), - colour = G.C.UI.TEXT_LIGHT, - }, - }, - }, - } or nil, - MP.INTEGRATIONS.Preview and { - n = G.UIT.R, - config = { - padding = 0, - align = "cm", - id = "preview_text_input", - }, - nodes = { - { - n = G.UIT.T, - config = { - scale = 0.3, - text = localize("k_enter_to_save"), - colour = G.C.UI.TEXT_LIGHT, - }, - }, - }, - } or nil, - MP.INTEGRATIONS.Preview - and { - n = G.UIT.R, - config = { - padding = 0.15, - align = "cm", - id = "preview_text_input", - }, - nodes = { - create_text_input({ - id = "preview_text", - w = 4, - max_length = 25, - prompt_text = "CALCULATING", -- raw string but this doesn't need localization - colour = copy_table(G.C.BLACK), - hooked_colour = darken(copy_table(G.C.BLACK), 0.3), - ref_table = MP.PREVIEW, - ref_value = "text", - extended_corpus = true, - keyboard_offset = -3, - callback = function(val) - MP.UTILS.save_preview(MP.PREVIEW) - end, - }), - create_text_input({ - id = "preview_button", - w = 4, - max_length = 25, - prompt_text = "Calculate Score", - colour = copy_table(G.C.RED), - hooked_colour = darken(copy_table(G.C.RED), 0.3), - ref_table = MP.PREVIEW, - ref_value = "button", - extended_corpus = true, - keyboard_offset = -3, - callback = function(val) - MP.UTILS.save_preview(MP.PREVIEW) - end, - }), - }, - } - or nil, - { - n = G.UIT.R, - config = { - padding = 0.5, - align = "cm", - id = "username_input_box", - }, - nodes = { - { - n = G.UIT.T, - config = { - scale = 0.6, - text = localize("k_username"), - colour = G.C.UI.TEXT_LIGHT, - }, - }, - create_text_input({ - id = "enter_username", - w = 4, - max_length = 25, - prompt_text = localize("k_enter_username"), - ref_table = MP.LOBBY, - ref_value = "username", - extended_corpus = true, - keyboard_offset = -3, - callback = function(val) - MP.UTILS.save_username(MP.LOBBY.username) - end, - }), - { - n = G.UIT.T, - config = { - scale = 0.3, - text = localize("k_enter_to_save"), - colour = G.C.UI.TEXT_LIGHT, - }, - }, - }, - }, - { - n = G.UIT.R, - config = { - padding = 0.1, - align = "cm", - id = "blind_col_changer", - }, - nodes = { - { - n = G.UIT.C, - config = { align = "cm" }, - nodes = { - { n = G.UIT.O, config = { id = "blind_col_changer_sprite", object = blind_anim } }, - }, - }, - { - n = G.UIT.C, - config = { align = "cm" }, - nodes = { - create_option_cycle({ - id = "blind_col_changer_option", - label = localize({ - type = "name_text", - key = MP.UTILS.blind_col_numtokey(MP.LOBBY.blind_col), - set = "Blind", - }), - scale = 0.8, - options = { - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - }, -- blind_cols are being saved as numbers because of this option cycle. if this is changed then we should probably change to keys - opt_callback = "change_blind_col", - current_option = MP.LOBBY.blind_col, - }), - }, - }, - }, - }, - }, - } - return ret -end - -function MP.UI.create_extra_tabs() - return { - { - label = localize("k_customization"), - tab_definition_function = MP.UI.create_customization_tab, - }, - } -end diff --git a/ui/smods_menu/smods_menu.lua b/ui/smods_menu/smods_menu.lua deleted file mode 100644 index 7f8718d7c..000000000 --- a/ui/smods_menu/smods_menu.lua +++ /dev/null @@ -1,42 +0,0 @@ -SMODS.Mods.Multiplayer.credits_tab = MP.UI.create_credits_tab - -SMODS.Mods.Multiplayer.config_tab = MP.UI.create_config_tab - -SMODS.Mods.Multiplayer.extra_tabs = MP.UI.create_extra_tabs - -function G.FUNCS.bmp_discord(e) - love.system.openURL("https://discord.gg/gEemz4ptuF") -end - -function G.FUNCS.bmp_github(e) - love.system.openURL("https://github.com/Balatro-Multiplayer/BalatroMultiplayer/") -end - -function G.FUNCS.change_blind_col(args) -- all we're doing is just saving + redefining the ui elements here - MP.UTILS.save_blind_col(args.to_val) - MP.LOBBY.blind_col = args.to_val - local sprite = G.OVERLAY_MENU:get_UIE_by_ID("blind_col_changer_sprite") - sprite.config.object:remove() - sprite.config.object = AnimatedSprite( - 0, - 0, - 1.4, - 1.4, - G.ANIMATION_ATLAS["mp_player_blind_col"], - G.P_BLINDS[MP.UTILS.blind_col_numtokey(MP.LOBBY.blind_col)].pos - ) - sprite.config.object:define_draw_steps({ - { shader = "dissolve", shadow_height = 0.05 }, - { shader = "dissolve" }, - }) - sprite.UIBox:recalculate() - local option = G.OVERLAY_MENU:get_UIE_by_ID("blind_col_changer_option") - option.children[1].children[1].config.text = - localize({ type = "name_text", key = MP.UTILS.blind_col_numtokey(MP.LOBBY.blind_col), set = "Blind" }) - option.UIBox:recalculate() -end - -function G.FUNCS.mp_change_timersfx(args) - SMODS.Mods["Multiplayer"].config.timersfx = args.to_key - SMODS.save_mod_config(SMODS.Mods["Multiplayer"]) -- probably unnecessary? -end From 4892112fb585428b5cf319de6e53aa92960f03c6 Mon Sep 17 00:00:00 2001 From: AlexanderAndersonAmenAmen <104784206+AlexanderAndersonAmenAmen@users.noreply.github.com> Date: Mon, 27 Jul 2026 22:10:59 +0000 Subject: [PATCH 4/6] Revert "Chicot, Luchador and Matador are removed from the ruleset's bans" This reverts commit 3c597b9a58037e8ad8f2635086800430f050e52b. --- assets/1x/alt_mp_stakes.png | Bin 0 -> 4248 bytes assets/1x/alt_stickers.png | Bin 0 -> 1554 bytes assets/1x/b_heidelberg.png | Bin 0 -> 1207 bytes assets/1x/blind_col.png | Bin 0 -> 105336 bytes assets/1x/c_asteroid.png | Bin 0 -> 7052 bytes assets/1x/c_asteroid_ru.png | Bin 0 -> 25245 bytes assets/1x/c_ouija_2.png | Bin 0 -> 1399 bytes assets/1x/deck_stickers.png | Bin 0 -> 26626 bytes assets/1x/decks.png | Bin 0 -> 26999 bytes assets/1x/ec_jokers_sandbox.png | Bin 0 -> 198298 bytes assets/1x/ec_other_sandbox.png | Bin 0 -> 105377 bytes assets/1x/j_ERROR_sandbox.png | Bin 0 -> 816 bytes assets/1x/j_baseball_sandbox.png | Bin 0 -> 10868 bytes assets/1x/j_bloodstone_sandbox.png | Bin 0 -> 7034 bytes assets/1x/j_castle_sandbox.png | Bin 0 -> 10214 bytes assets/1x/j_cloud_9_sandbox.png | Bin 0 -> 8693 bytes assets/1x/j_conjoined_joker.png | Bin 0 -> 2922 bytes assets/1x/j_constellation_sandbox.png | Bin 0 -> 10737 bytes assets/1x/j_copycat.png | Bin 0 -> 6721 bytes assets/1x/j_defensive_joker.png | Bin 0 -> 1968 bytes assets/1x/j_faceless_sandbox.png | Bin 0 -> 6419 bytes assets/1x/j_hit_the_road_sandbox.png | Bin 0 -> 11985 bytes assets/1x/j_idol_sandbox_bw.png | Bin 0 -> 2721 bytes assets/1x/j_idol_sandbox_color.png | Bin 0 -> 5167 bytes assets/1x/j_juggler_sandbox.png | Bin 0 -> 8537 bytes assets/1x/j_lets_go_gambling.png | Bin 0 -> 3613 bytes assets/1x/j_loyalty_card_sandbox.png | Bin 0 -> 9949 bytes assets/1x/j_lucky_cat_sandbox.png | Bin 0 -> 12501 bytes assets/1x/j_magnet.png | Bin 0 -> 4795 bytes assets/1x/j_mail_sandbox.png | Bin 0 -> 9128 bytes assets/1x/j_misprint_sandbox.png | Bin 0 -> 4488 bytes assets/1x/j_order_sandbox.png | Bin 0 -> 8611 bytes assets/1x/j_pacifist.png | Bin 0 -> 1985 bytes assets/1x/j_penny_pincher.png | Bin 0 -> 2295 bytes assets/1x/j_photograph_sandbox.png | Bin 0 -> 10140 bytes assets/1x/j_pizza.png | Bin 0 -> 3398 bytes assets/1x/j_ride_the_bus_sandbox.png | Bin 0 -> 1744 bytes assets/1x/j_runner_sandbox.png | Bin 0 -> 6764 bytes assets/1x/j_satellite_sandbox.png | Bin 0 -> 7153 bytes assets/1x/j_skip_off.png | Bin 0 -> 1796 bytes assets/1x/j_speedrun.png | Bin 0 -> 615 bytes assets/1x/j_square_sandbox.png | Bin 0 -> 4232 bytes assets/1x/j_steel_joker_sandbox.png | Bin 0 -> 6042 bytes assets/1x/j_taxes.png | Bin 0 -> 7041 bytes assets/1x/j_throwback_sandbox.png | Bin 0 -> 9785 bytes assets/1x/j_vampire_sandbox.png | Bin 0 -> 7104 bytes assets/1x/modicon.png | Bin 0 -> 470 bytes assets/1x/player_blind_row.png | Bin 0 -> 1570 bytes assets/1x/release_jokers.png | Bin 0 -> 589298 bytes assets/1x/stakes-chips.png | Bin 0 -> 2030 bytes assets/1x/standard_giga.png | Bin 0 -> 3984 bytes assets/1x/sticker_balanced.png | Bin 0 -> 4493 bytes assets/1x/sticker_nemesis.png | Bin 0 -> 562 bytes assets/1x/stickers.png | Bin 0 -> 4384 bytes assets/1x/tag_gambling_sandbox.png | Bin 0 -> 1793 bytes assets/2x/alt_mp_stakes.png | Bin 0 -> 22030 bytes assets/2x/alt_stickers.png | Bin 0 -> 3468 bytes assets/2x/b_heidelberg.png | Bin 0 -> 2503 bytes assets/2x/blind_col.png | Bin 0 -> 192261 bytes assets/2x/c_asteroid.png | Bin 0 -> 8218 bytes assets/2x/c_asteroid_ru.png | Bin 0 -> 7712 bytes assets/2x/c_ouija_2.png | Bin 0 -> 2939 bytes compatibility/Preview/CorePreview.lua | 272 +++++ compatibility/Preview/EngineSimulate.lua | 519 ++++++++++ compatibility/Preview/InitPreview.lua | 132 +++ compatibility/Preview/InitSimulate.lua | 36 + compatibility/Preview/InterfacePreview.lua | 194 ++++ compatibility/Preview/Jokers/Multiplayer.lua | 61 ++ compatibility/Preview/Jokers/_Vanilla.lua | 949 +++++++++++++++++ compatibility/Preview/UtilsPreview.lua | 39 + compatibility/Preview/UtilsSimulate.lua | 242 +++++ objects/blinds/nemesis.lua | 35 + objects/boosters/standard_giga.lua | 46 + objects/challenges/all_must_go.lua | 10 + objects/challenges/bacon.lua | 57 ++ objects/challenges/balancing_act.lua | 16 + objects/challenges/chore_list.lua | 32 + objects/challenges/divination.lua | 9 + objects/challenges/eeeee.lua | 12 + objects/challenges/high_hand.lua | 18 + objects/challenges/in_the_red.lua | 20 + objects/challenges/legendaries.lua | 32 + objects/challenges/lets_go_gambling.lua | 44 + objects/challenges/misprint_deck.lua | 15 + objects/challenges/oops_all_jokers.lua | 53 + objects/challenges/planet_tycoon.lua | 21 + objects/challenges/polymorph_spam.lua | 29 + objects/challenges/psychosis.lua | 9 + objects/challenges/salvaged_sibyl.lua | 81 ++ objects/challenges/scratch.lua | 18 + objects/challenges/shared_pockets.lua | 20 + objects/challenges/skip_off.lua | 10 + objects/challenges/speed.lua | 10 + objects/challenges/twin_towers.lua | 10 + objects/challenges/vantablack.lua | 19 + objects/consumables/asteroid.lua | 57 ++ objects/consumables/judgement.lua | 74 ++ objects/consumables/ouija.lua | 100 ++ objects/consumables/sandbox/ectoplasm.lua | 51 + objects/consumables/wraith.lua | 31 + objects/decks/00_violet.lua | 29 + objects/decks/01_indigo.lua | 108 ++ objects/decks/02_orange.lua | 44 + objects/decks/09_white.lua | 43 + objects/decks/AA_oracle.lua | 31 + objects/decks/BB_gradient.lua | 154 +++ objects/decks/CC_heidelberg.lua | 27 + objects/decks/EC_echo_deck.lua | 57 ++ objects/decks/ZZ_cocktail.lua | 670 ++++++++++++ objects/decks/_decks.lua | 42 + objects/editions/phantom.lua | 43 + objects/enhancements/mp_glass.lua | 9 + objects/jokers/conjoined_joker.lua | 65 ++ objects/jokers/defensive_joker.lua | 54 + .../jokers/experimental/baron_uncommon.lua | 35 + objects/jokers/experimental/idol_rare.lua | 36 + objects/jokers/experimental/mime_rare.lua | 20 + objects/jokers/experimental/todo_list.lua | 47 + objects/jokers/lets_go_gambling.lua | 82 ++ objects/jokers/pacifist.lua | 37 + objects/jokers/penny_pincher.lua | 40 + objects/jokers/pizza.lua | 55 + objects/jokers/sandbox/baseball.lua | 38 + objects/jokers/sandbox/bloodstone.lua | 39 + objects/jokers/sandbox/castle.lua | 54 + objects/jokers/sandbox/cloud_9.lua | 63 ++ objects/jokers/sandbox/constellation.lua | 52 + objects/jokers/sandbox/error.lua | 122 +++ .../jokers/sandbox/extra-credit/_ec_atlas.lua | 11 + .../jokers/sandbox/extra-credit/_ec_utils.lua | 107 ++ objects/jokers/sandbox/extra-credit/alloy.lua | 36 + .../jokers/sandbox/extra-credit/ambrosia.lua | 93 ++ objects/jokers/sandbox/extra-credit/bobby.lua | 62 ++ .../sandbox/extra-credit/candynecklace.lua | 71 ++ .../sandbox/extra-credit/chainlightning.lua | 64 ++ .../jokers/sandbox/extra-credit/clowncar.lua | 44 + .../sandbox/extra-credit/clowncollege.lua | 61 ++ .../sandbox/extra-credit/couponsheet.lua | 77 ++ .../sandbox/extra-credit/doublerainbow.lua | 53 + .../jokers/sandbox/extra-credit/espresso.lua | 98 ++ .../jokers/sandbox/extra-credit/farmer.lua | 50 + .../jokers/sandbox/extra-credit/forklift.lua | 43 + .../jokers/sandbox/extra-credit/gofish.lua | 51 + .../jokers/sandbox/extra-credit/hoarder.lua | 31 + .../jokers/sandbox/extra-credit/jokalisa.lua | 68 ++ .../sandbox/extra-credit/jokeroftheyear.lua | 43 + .../jokers/sandbox/extra-credit/lucky7.lua | 70 ++ .../jokers/sandbox/extra-credit/montehaul.lua | 65 ++ .../sandbox/extra-credit/pocketaces.lua | 43 + .../sandbox/extra-credit/pyromancer.lua | 46 + .../sandbox/extra-credit/shipoftheseus.lua | 84 ++ .../jokers/sandbox/extra-credit/starfruit.lua | 80 ++ .../sandbox/extra-credit/trafficlight.lua | 62 ++ .../jokers/sandbox/extra-credit/tuxedo.lua | 54 + .../jokers/sandbox/extra-credit/warlock.lua | 82 ++ .../jokers/sandbox/extra-credit/werewolf.lua | 61 ++ objects/jokers/sandbox/faceless.lua | 54 + objects/jokers/sandbox/golden_ticket.lua | 46 + objects/jokers/sandbox/hit_the_road.lua | 45 + objects/jokers/sandbox/idol.lua | 225 ++++ objects/jokers/sandbox/juggler.lua | 65 ++ objects/jokers/sandbox/loyalty_card.lua | 72 ++ objects/jokers/sandbox/lucky_cat.lua | 49 + objects/jokers/sandbox/magnet_sandbox.lua | 107 ++ objects/jokers/sandbox/mail.lua | 59 ++ objects/jokers/sandbox/misprint.lua | 37 + objects/jokers/sandbox/order.lua | 49 + objects/jokers/sandbox/photograph.lua | 40 + objects/jokers/sandbox/ride_the_bus.lua | 70 ++ objects/jokers/sandbox/runner.lua | 41 + objects/jokers/sandbox/satellite.lua | 49 + objects/jokers/sandbox/square.lua | 40 + objects/jokers/sandbox/steel_joker.lua | 36 + objects/jokers/sandbox/throwback.lua | 92 ++ objects/jokers/sandbox/vampire.lua | 73 ++ objects/jokers/skip_off.lua | 63 ++ objects/jokers/speedrun.lua | 65 ++ objects/jokers/standard/bloodstone.lua | 65 ++ objects/jokers/standard/hanging_chad.lua | 36 + objects/jokers/standard/ice_cream.lua | 26 + objects/jokers/standard/seltzer.lua | 64 ++ objects/jokers/standard/ticket.lua | 71 ++ objects/jokers/standard/turtle_bean.lua | 43 + objects/jokers/taxes.lua | 61 ++ rulesets/_rulesets.lua | 10 +- .../experimental_blind_raiser.lua | 5 - ui/_common/background_grouping.lua | 21 + ui/_common/disableable_button.lua | 17 + ui/_common/disableable_option_cycle.lua | 12 + ui/_common/disableable_toggle.lua | 12 + ui/_common/spacer.lua | 19 + ui/game/blind_chip_sprite.lua | 26 + ui/game/blind_choice.lua | 535 ++++++++++ ui/game/blind_hud.lua | 231 +++++ ui/game/blind_raiser.lua | 961 ++++++++++++++++++ ui/game/confirmation.lua | 39 + ui/game/enemy_location.lua | 284 ++++++ ui/game/functions.lua | 535 ++++++++++ ui/game/game_end.lua | 545 ++++++++++ ui/game/game_state.lua | 657 ++++++++++++ ui/game/lobby_info.lua | 312 ++++++ ui/game/round.lua | 90 ++ ui/game/ruleset_info_menu.lua | 166 +++ ui/game/timer.lua | 536 ++++++++++ ui/game/zz_blind_raiser_score.lua | 19 + ui/lobby/_lobby_options/advanced_tab.lua | 207 ++++ ui/lobby/_lobby_options/gameplay_tab.lua | 24 + ui/lobby/_lobby_options/main_options.lua | 118 +++ ui/lobby/_lobby_options/modifiers_tab.lua | 103 ++ ui/lobby/_lobby_options/options_tab.lua | 93 ++ ui/lobby/deck_stake_button.lua | 45 + ui/lobby/leave_button.lua | 13 + ui/lobby/lobby.lua | 643 ++++++++++++ ui/lobby/lobby_code_buttons.lua | 28 + ui/lobby/players_display.lua | 40 + ui/lobby/start_ready_button.lua | 159 +++ ui/lobby/version_mismatch_warning.lua | 121 +++ ui/main_menu/dev_warning.lua | 74 ++ ui/main_menu/main_menu.lua | 110 ++ .../play_button/_modifiers_overlay.lua | 90 ++ ui/main_menu/play_button/_mutators_wall.lua | 562 ++++++++++ .../play_button/_practice_options_overlay.lua | 83 ++ .../play_button/custom_ruleset_editor.lua | 308 ++++++ .../play_button/gamemode_selection.lua | 199 ++++ .../play_button/ghost_replay_picker.lua | 739 ++++++++++++++ .../play_button/join_lobby_button.lua | 42 + ui/main_menu/play_button/play_button.lua | 84 ++ .../play_button/play_button_callbacks.lua | 158 +++ .../play_button/ruleset_selection.lua | 724 +++++++++++++ ui/main_menu/play_button/weekly_interrupt.lua | 50 + ui/main_menu/title_card.lua | 133 +++ ui/main_menu/version_display.lua | 33 + ui/smods_menu/config_tab.lua | 161 +++ ui/smods_menu/credits_tab.lua | 60 ++ ui/smods_menu/customization_tab.lua | 216 ++++ ui/smods_menu/smods_menu.lua | 42 + 236 files changed, 19414 insertions(+), 12 deletions(-) create mode 100644 assets/1x/alt_mp_stakes.png create mode 100644 assets/1x/alt_stickers.png create mode 100644 assets/1x/b_heidelberg.png create mode 100644 assets/1x/blind_col.png create mode 100644 assets/1x/c_asteroid.png create mode 100644 assets/1x/c_asteroid_ru.png create mode 100644 assets/1x/c_ouija_2.png create mode 100644 assets/1x/deck_stickers.png create mode 100644 assets/1x/decks.png create mode 100644 assets/1x/ec_jokers_sandbox.png create mode 100644 assets/1x/ec_other_sandbox.png create mode 100644 assets/1x/j_ERROR_sandbox.png create mode 100644 assets/1x/j_baseball_sandbox.png create mode 100644 assets/1x/j_bloodstone_sandbox.png create mode 100644 assets/1x/j_castle_sandbox.png create mode 100644 assets/1x/j_cloud_9_sandbox.png create mode 100644 assets/1x/j_conjoined_joker.png create mode 100644 assets/1x/j_constellation_sandbox.png create mode 100644 assets/1x/j_copycat.png create mode 100644 assets/1x/j_defensive_joker.png create mode 100644 assets/1x/j_faceless_sandbox.png create mode 100644 assets/1x/j_hit_the_road_sandbox.png create mode 100644 assets/1x/j_idol_sandbox_bw.png create mode 100644 assets/1x/j_idol_sandbox_color.png create mode 100644 assets/1x/j_juggler_sandbox.png create mode 100644 assets/1x/j_lets_go_gambling.png create mode 100644 assets/1x/j_loyalty_card_sandbox.png create mode 100644 assets/1x/j_lucky_cat_sandbox.png create mode 100644 assets/1x/j_magnet.png create mode 100644 assets/1x/j_mail_sandbox.png create mode 100644 assets/1x/j_misprint_sandbox.png create mode 100644 assets/1x/j_order_sandbox.png create mode 100644 assets/1x/j_pacifist.png create mode 100644 assets/1x/j_penny_pincher.png create mode 100644 assets/1x/j_photograph_sandbox.png create mode 100644 assets/1x/j_pizza.png create mode 100644 assets/1x/j_ride_the_bus_sandbox.png create mode 100644 assets/1x/j_runner_sandbox.png create mode 100644 assets/1x/j_satellite_sandbox.png create mode 100644 assets/1x/j_skip_off.png create mode 100644 assets/1x/j_speedrun.png create mode 100644 assets/1x/j_square_sandbox.png create mode 100644 assets/1x/j_steel_joker_sandbox.png create mode 100644 assets/1x/j_taxes.png create mode 100644 assets/1x/j_throwback_sandbox.png create mode 100644 assets/1x/j_vampire_sandbox.png create mode 100644 assets/1x/modicon.png create mode 100644 assets/1x/player_blind_row.png create mode 100644 assets/1x/release_jokers.png create mode 100644 assets/1x/stakes-chips.png create mode 100644 assets/1x/standard_giga.png create mode 100644 assets/1x/sticker_balanced.png create mode 100644 assets/1x/sticker_nemesis.png create mode 100644 assets/1x/stickers.png create mode 100644 assets/1x/tag_gambling_sandbox.png create mode 100644 assets/2x/alt_mp_stakes.png create mode 100644 assets/2x/alt_stickers.png create mode 100644 assets/2x/b_heidelberg.png create mode 100644 assets/2x/blind_col.png create mode 100644 assets/2x/c_asteroid.png create mode 100644 assets/2x/c_asteroid_ru.png create mode 100644 assets/2x/c_ouija_2.png create mode 100644 compatibility/Preview/CorePreview.lua create mode 100644 compatibility/Preview/EngineSimulate.lua create mode 100644 compatibility/Preview/InitPreview.lua create mode 100644 compatibility/Preview/InitSimulate.lua create mode 100644 compatibility/Preview/InterfacePreview.lua create mode 100644 compatibility/Preview/Jokers/Multiplayer.lua create mode 100644 compatibility/Preview/Jokers/_Vanilla.lua create mode 100644 compatibility/Preview/UtilsPreview.lua create mode 100644 compatibility/Preview/UtilsSimulate.lua create mode 100644 objects/blinds/nemesis.lua create mode 100644 objects/boosters/standard_giga.lua create mode 100644 objects/challenges/all_must_go.lua create mode 100644 objects/challenges/bacon.lua create mode 100644 objects/challenges/balancing_act.lua create mode 100644 objects/challenges/chore_list.lua create mode 100644 objects/challenges/divination.lua create mode 100644 objects/challenges/eeeee.lua create mode 100644 objects/challenges/high_hand.lua create mode 100644 objects/challenges/in_the_red.lua create mode 100644 objects/challenges/legendaries.lua create mode 100644 objects/challenges/lets_go_gambling.lua create mode 100644 objects/challenges/misprint_deck.lua create mode 100644 objects/challenges/oops_all_jokers.lua create mode 100644 objects/challenges/planet_tycoon.lua create mode 100644 objects/challenges/polymorph_spam.lua create mode 100644 objects/challenges/psychosis.lua create mode 100644 objects/challenges/salvaged_sibyl.lua create mode 100644 objects/challenges/scratch.lua create mode 100644 objects/challenges/shared_pockets.lua create mode 100644 objects/challenges/skip_off.lua create mode 100644 objects/challenges/speed.lua create mode 100644 objects/challenges/twin_towers.lua create mode 100644 objects/challenges/vantablack.lua create mode 100644 objects/consumables/asteroid.lua create mode 100644 objects/consumables/judgement.lua create mode 100644 objects/consumables/ouija.lua create mode 100644 objects/consumables/sandbox/ectoplasm.lua create mode 100644 objects/consumables/wraith.lua create mode 100644 objects/decks/00_violet.lua create mode 100644 objects/decks/01_indigo.lua create mode 100644 objects/decks/02_orange.lua create mode 100644 objects/decks/09_white.lua create mode 100644 objects/decks/AA_oracle.lua create mode 100644 objects/decks/BB_gradient.lua create mode 100644 objects/decks/CC_heidelberg.lua create mode 100644 objects/decks/EC_echo_deck.lua create mode 100644 objects/decks/ZZ_cocktail.lua create mode 100644 objects/decks/_decks.lua create mode 100644 objects/editions/phantom.lua create mode 100644 objects/enhancements/mp_glass.lua create mode 100644 objects/jokers/conjoined_joker.lua create mode 100644 objects/jokers/defensive_joker.lua create mode 100644 objects/jokers/experimental/baron_uncommon.lua create mode 100644 objects/jokers/experimental/idol_rare.lua create mode 100644 objects/jokers/experimental/mime_rare.lua create mode 100644 objects/jokers/experimental/todo_list.lua create mode 100644 objects/jokers/lets_go_gambling.lua create mode 100644 objects/jokers/pacifist.lua create mode 100644 objects/jokers/penny_pincher.lua create mode 100644 objects/jokers/pizza.lua create mode 100644 objects/jokers/sandbox/baseball.lua create mode 100644 objects/jokers/sandbox/bloodstone.lua create mode 100644 objects/jokers/sandbox/castle.lua create mode 100644 objects/jokers/sandbox/cloud_9.lua create mode 100644 objects/jokers/sandbox/constellation.lua create mode 100644 objects/jokers/sandbox/error.lua create mode 100644 objects/jokers/sandbox/extra-credit/_ec_atlas.lua create mode 100644 objects/jokers/sandbox/extra-credit/_ec_utils.lua create mode 100644 objects/jokers/sandbox/extra-credit/alloy.lua create mode 100644 objects/jokers/sandbox/extra-credit/ambrosia.lua create mode 100644 objects/jokers/sandbox/extra-credit/bobby.lua create mode 100644 objects/jokers/sandbox/extra-credit/candynecklace.lua create mode 100644 objects/jokers/sandbox/extra-credit/chainlightning.lua create mode 100644 objects/jokers/sandbox/extra-credit/clowncar.lua create mode 100644 objects/jokers/sandbox/extra-credit/clowncollege.lua create mode 100644 objects/jokers/sandbox/extra-credit/couponsheet.lua create mode 100644 objects/jokers/sandbox/extra-credit/doublerainbow.lua create mode 100644 objects/jokers/sandbox/extra-credit/espresso.lua create mode 100644 objects/jokers/sandbox/extra-credit/farmer.lua create mode 100644 objects/jokers/sandbox/extra-credit/forklift.lua create mode 100644 objects/jokers/sandbox/extra-credit/gofish.lua create mode 100644 objects/jokers/sandbox/extra-credit/hoarder.lua create mode 100644 objects/jokers/sandbox/extra-credit/jokalisa.lua create mode 100644 objects/jokers/sandbox/extra-credit/jokeroftheyear.lua create mode 100644 objects/jokers/sandbox/extra-credit/lucky7.lua create mode 100644 objects/jokers/sandbox/extra-credit/montehaul.lua create mode 100644 objects/jokers/sandbox/extra-credit/pocketaces.lua create mode 100644 objects/jokers/sandbox/extra-credit/pyromancer.lua create mode 100644 objects/jokers/sandbox/extra-credit/shipoftheseus.lua create mode 100644 objects/jokers/sandbox/extra-credit/starfruit.lua create mode 100644 objects/jokers/sandbox/extra-credit/trafficlight.lua create mode 100644 objects/jokers/sandbox/extra-credit/tuxedo.lua create mode 100644 objects/jokers/sandbox/extra-credit/warlock.lua create mode 100644 objects/jokers/sandbox/extra-credit/werewolf.lua create mode 100644 objects/jokers/sandbox/faceless.lua create mode 100644 objects/jokers/sandbox/golden_ticket.lua create mode 100644 objects/jokers/sandbox/hit_the_road.lua create mode 100644 objects/jokers/sandbox/idol.lua create mode 100644 objects/jokers/sandbox/juggler.lua create mode 100644 objects/jokers/sandbox/loyalty_card.lua create mode 100644 objects/jokers/sandbox/lucky_cat.lua create mode 100644 objects/jokers/sandbox/magnet_sandbox.lua create mode 100644 objects/jokers/sandbox/mail.lua create mode 100644 objects/jokers/sandbox/misprint.lua create mode 100644 objects/jokers/sandbox/order.lua create mode 100644 objects/jokers/sandbox/photograph.lua create mode 100644 objects/jokers/sandbox/ride_the_bus.lua create mode 100644 objects/jokers/sandbox/runner.lua create mode 100644 objects/jokers/sandbox/satellite.lua create mode 100644 objects/jokers/sandbox/square.lua create mode 100644 objects/jokers/sandbox/steel_joker.lua create mode 100644 objects/jokers/sandbox/throwback.lua create mode 100644 objects/jokers/sandbox/vampire.lua create mode 100644 objects/jokers/skip_off.lua create mode 100644 objects/jokers/speedrun.lua create mode 100644 objects/jokers/standard/bloodstone.lua create mode 100644 objects/jokers/standard/hanging_chad.lua create mode 100644 objects/jokers/standard/ice_cream.lua create mode 100644 objects/jokers/standard/seltzer.lua create mode 100644 objects/jokers/standard/ticket.lua create mode 100644 objects/jokers/standard/turtle_bean.lua create mode 100644 objects/jokers/taxes.lua create mode 100644 ui/_common/background_grouping.lua create mode 100644 ui/_common/disableable_button.lua create mode 100644 ui/_common/disableable_option_cycle.lua create mode 100644 ui/_common/disableable_toggle.lua create mode 100644 ui/_common/spacer.lua create mode 100644 ui/game/blind_chip_sprite.lua create mode 100644 ui/game/blind_choice.lua create mode 100644 ui/game/blind_hud.lua create mode 100644 ui/game/blind_raiser.lua create mode 100644 ui/game/confirmation.lua create mode 100644 ui/game/enemy_location.lua create mode 100644 ui/game/functions.lua create mode 100644 ui/game/game_end.lua create mode 100644 ui/game/game_state.lua create mode 100644 ui/game/lobby_info.lua create mode 100644 ui/game/round.lua create mode 100644 ui/game/ruleset_info_menu.lua create mode 100644 ui/game/timer.lua create mode 100644 ui/game/zz_blind_raiser_score.lua create mode 100644 ui/lobby/_lobby_options/advanced_tab.lua create mode 100644 ui/lobby/_lobby_options/gameplay_tab.lua create mode 100644 ui/lobby/_lobby_options/main_options.lua create mode 100644 ui/lobby/_lobby_options/modifiers_tab.lua create mode 100644 ui/lobby/_lobby_options/options_tab.lua create mode 100644 ui/lobby/deck_stake_button.lua create mode 100644 ui/lobby/leave_button.lua create mode 100644 ui/lobby/lobby.lua create mode 100644 ui/lobby/lobby_code_buttons.lua create mode 100644 ui/lobby/players_display.lua create mode 100644 ui/lobby/start_ready_button.lua create mode 100644 ui/lobby/version_mismatch_warning.lua create mode 100644 ui/main_menu/dev_warning.lua create mode 100644 ui/main_menu/main_menu.lua create mode 100644 ui/main_menu/play_button/_modifiers_overlay.lua create mode 100644 ui/main_menu/play_button/_mutators_wall.lua create mode 100644 ui/main_menu/play_button/_practice_options_overlay.lua create mode 100644 ui/main_menu/play_button/custom_ruleset_editor.lua create mode 100644 ui/main_menu/play_button/gamemode_selection.lua create mode 100644 ui/main_menu/play_button/ghost_replay_picker.lua create mode 100644 ui/main_menu/play_button/join_lobby_button.lua create mode 100644 ui/main_menu/play_button/play_button.lua create mode 100644 ui/main_menu/play_button/play_button_callbacks.lua create mode 100644 ui/main_menu/play_button/ruleset_selection.lua create mode 100644 ui/main_menu/play_button/weekly_interrupt.lua create mode 100644 ui/main_menu/title_card.lua create mode 100644 ui/main_menu/version_display.lua create mode 100644 ui/smods_menu/config_tab.lua create mode 100644 ui/smods_menu/credits_tab.lua create mode 100644 ui/smods_menu/customization_tab.lua create mode 100644 ui/smods_menu/smods_menu.lua diff --git a/assets/1x/alt_mp_stakes.png b/assets/1x/alt_mp_stakes.png new file mode 100644 index 0000000000000000000000000000000000000000..ab8f9700337c68459b3c0efe26e87b9ebe738619 GIT binary patch literal 4248 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 literal 0 HcmV?d00001 diff --git a/assets/1x/alt_stickers.png b/assets/1x/alt_stickers.png new file mode 100644 index 0000000000000000000000000000000000000000..78e02379975bfdeb258a7b34d4a217c14bf88702 GIT binary patch literal 1554 zcmc(f`#aMM9LHyfxrF5s>2XQJMy@Hjq-7bV+4h|#GLa5Zk|%bK>jaBYP?yjro>DQR7VPf5=4U zcVr3$Z-S`>$m5Zr^{N@r@3P^T23cjO@*^hm?aP7^-;n-&S^5hJU#H$PN|%!d5-W|P z7n)-irhmmQq6*~lc{aX( zq=WD{+5g^hqXV3QfpJ<_P0AILNTJIppV@9~6j*7{x*qysav|?jR%92w1=uadgZHp) z%L6ODb&l#SZ+sFT&5DHSgjn)VHuuV%XJ092Ve*nUDIa3y1dEG}BlV@jcMbifyv|1D zLaOP)j9=ErmJ*<&y_&U6=iVqj)Q;tx4FMP8`MPkgNjt#&_L=xWbwo_P^<$KrgO|jv zup7!>8c&Lt@pfA|mD~8*%!XP3#BP}F>IsriGn6I6KJGgYKu@V2FWqmApm&ETKwSey z+a_NPs3D#*Q=oX<)eTJWJz!_&dGpfjM87(AFb#fJ(OBeKtQlHH=Q+>X1xhelt9XlT zGc(0%K?;VqG;hc;Wl^l7`hCM*TP1~(f2*cp?NcZ2ocqhs{52>SlKwLbh_}Qj` zbhjE;iv%~_U^6?oaTr$5x1QNa9JY+S9n~lhFN|o^jm)F#k9T0qif7Xi#U3s#KjzB* zywjaQa!S>1*5Wo`N|YtGN%0%~Rh;M)SKS&$;Pv|b;m^kMFXUEOY6zQA)s~=KaT-8} zSY*_VB^9lIdA3>pq^z}dHK_JF5#s;U5l@6&W&$vpmHfpf9X^uh)iu#qz%!;2kZTyp z1SLKuPfHw{LX-)7Y>p?ITw(&Qc1_N>s>A6q;W(Lq#(#>@OdzJ=&MqY`JXrY~Q$m)%JXnb)7Bo6?r&>8V22?<+9aU;f44ZIB@{n|XS_)^rZu?i( zmKuxq+3Q7GU8-W5BH&bI2M?a*ZEb$Y=o9(&k53FmMUY!+uZzym)Q0Qw-a_kUE=uW4 zP`r{9DA~~{-rmBVMQ)s2$zO357id88+L+?Gv`hK$V^CcrS&F(gQQZd&M$-+mThz{q ziv(y<0!pcK+Sa8x)>)6wF^%5dp1G0IEX%!?+c5poN6P%Uvd)R}t^|IywcoI3GDZT1}4-AbCOe3Dz}^ z(&KTkFXex};~7?q2{EDvFRkc(p#cOtLX%u?gNi#Z2mx5s;H#P#-QrkA;*`)fz=%$g z4%K*vZB*ck%nI73=M&e8BOup-7C$a25C?Y}jEzX#9oI*0D68|2;Q3_ADpx=e<3Z2Q z93n6d!)OMz*uK*-7_=xdGkfkGgk~p#Ws|m;2|3^0P+&=vR_6!r4$8F!F(K?Nc9cZg zGWUz-*mQanI=^WAkt_Bd-AKfWB8(yTt-u72xtO?|yaP>u|E*UpyLy2n(Yc&(7D@71 zQ=w$J{B(sEPOzz(#u?h^foSYEY+vL;O$v;@d8U%LRv0?0v{V(D6~LBj?5hPvvu~SE h(2P?5=X6`9yMND3d$zoV^wonrQ77GNkilu7zX1zi$qE1f literal 0 HcmV?d00001 diff --git a/assets/1x/b_heidelberg.png b/assets/1x/b_heidelberg.png new file mode 100644 index 0000000000000000000000000000000000000000..d3b7c6e70fa82ee5de70323726bf8bcdf6e05434 GIT binary patch literal 1207 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 FV1gHzw)p@6 literal 0 HcmV?d00001 diff --git a/assets/1x/deck_stickers.png b/assets/1x/deck_stickers.png new file mode 100644 index 0000000000000000000000000000000000000000..4ac8c4a78ef3ba0e89f2123ec0067633640c6dc9 GIT binary patch literal 26626 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 literal 0 HcmV?d00001 diff --git a/assets/1x/decks.png b/assets/1x/decks.png new file mode 100644 index 0000000000000000000000000000000000000000..29626e267e22e7e1e87befdd03a0fd59fb8852cf GIT binary patch literal 26999 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 T4eTE(;ixO?D3vL^{`CIfUyYzM6K)f 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

      $WCDXXJY@qfXSX- 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
    1. jCKT2TQ~hAn!RjaffZ^i(p$_mOw{vr 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 literal 0 HcmV?d00001 diff --git a/assets/1x/ec_other_sandbox.png b/assets/1x/ec_other_sandbox.png new file mode 100644 index 0000000000000000000000000000000000000000..3e261dca7b19e22c2f504e816012827f1ad54b52 GIT binary patch literal 105377 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�V%}-qofSD)u&qUS^=U(hGJWnEz<+k)qESf6iLfu;TIt zjOBU_g?1tcFZj?6g*Q=SO*Z+5)f7eE<01+Crf^&ViZd0!G^%>vGW!_}9}g%7EG#5} z)S%cDf^ZD1Ch{@hnDXU3#RkN-Pqm_6!Yk-s*x%`ZQP0j@a`6au$aA1|QL7s|;(xVa zU8i+sIk3fx78OA;F~NIx`EvZS_7_A#)|GT(<{S-;qK2i{`V0puh# zqb;r-6Hsi@ZIrK*>}5GTwAFfPL)gWr1CS++w^bu+n|=W4Cz1@d;?WaK22_1zSexC_ zbb@q~bRd827a%!7#B?5gn>5>yh31l7gp$PS^QM-YGum0MEd=T_of>{*GQ=N18A z{Gm>4P%DXF0AmEkEGD(7K>6y|mRyu*9X+;LI1ZJ)umS~R4me7hL?eu2e$JoXXKn0V zX4x|%+-3BgVww~4x3TJ7GzSi!7wlNyF5*_{6VJA9=3#QYzmx`tuP5L zZqB_ASxIEXStScSfu+4!lxH=#yXRFHrW(DE&$L_j4 zyvLk?KDal}AAgJ<)>I2jiE84B;an1Fa^Zv)RPtgudokJ2ErTJ3<$&mqvlm;!%Mm7b zR;Kj;i#9%h47{f>=>#(Y3Hle(FU~FrXy%fRN<3Bw7M!@8u80gi zlbg-2yxlz#6^!xzULh``h582__SL!vEBnUCei4FtxN||S(LG^n3H99H+toND%8khE z8~dSJiW*hm8DU03K7$=GRD|VlS~Fke4F~jPn}XTUy7Cc;0x~x&&{Z zsze-+%_ty+Ru)p|M~nzA5N(#H2QnsR*ftSKEX6apneBEFi!UQx#&Scl`B3MW#u)`VshDNRQ7hi?sskqLzPtp2*Rln zUJ$5wl@FSxnL^Yy9-Ljx-d64udPhjx=`1Ck6~zy|T3(P>!yqbC3e=(2WoEVNsD8t& z7ILRLE%di%_5~v%TYIbN*#)N!HVsTT3DL1FL2W{Z=1MoKkFztB@RZMVG4xkx^cn24 z%=msvpOvZ_f-SSjKs2L)RHVEq7JIw9U-bn8GW4ljTRxd=s8HO8hxutiF%zT1ijcXT zR1{x~)QlT^7|!VR{OK7*GKi!4oxL&{JKDS_TnC}O(DjFTkSTP*dGL!#PgMw+@oX3EbwS`o+|R+4^8B)eKw#e2^xI65q+c4_J8#3X3l+>lx#;{qLJ z1Hst)YCUL+Qh<>vx7x4qcj>(vdM337<>JhS9$#q}N?FP#N}nyQC{>-u0#S%jR#GCO zzA^B_U0g~dP1`$L0Intp^+R2k^4lR1x(2SCnxfW(wW1*lJH_mZ8r*n(YvL&2Vh1~?z`~9{Duj&g2MQ{ zeE<8U%Ltz5Hz6C2tgB?ljQ$lvB6Yr&!-3PR!_sSY&O|J5Y;-fqK8UFTPK3wOg+Y4Z zZ&IfKcI+?IH^^gk_FQe*FY40(I>8%O9QN|g*lVvmznd}2Xc0M7VKR!rO>CB$Tpp7K z(P0PQPjJl;l)D#LVNhtJwYIdr$>6c#)Lg8d7IHI!X$%O`1|gaYv0JQ~Tdy-ip%M+` zupSSOm0Dn?2;TLTWv;lAG^{@BVklx#bni#|ssZsck5kGB{_>V!Br*m+K7EU% zXj_~BHsNMPER+$Lty=iw`dg1bsnoCjt6H&?8_-siEE_Z$3qeDZ*V0eVVup`k!1pD9 z1Gu&Zr|uaj7hJm}xKh&6P&p~+(MyS*AK3I796Q4SXFEORubL$eXsQxho-_kQ(Bh;S z?c>P0n?}*b@Xea|0ez#)nd$Bn?7g1|dgvTY@Rd8IjjLx{O}F1~BlYkH5Tv4AK2DD@ zhS_rCmKb? zAM(G@hR|VGua;eV7zug2977-wS97CRM^t=uHFduQ=oH>2)E7{LlD;4fNmNe3c<7wA z(w&ap3%BySfY5ZwdWVD?BBvcNt_(X&r)SvX4PbQRloJ;ctmE`J{1hO}8XA^Vf8LP%EEAcS zN@Y(;$&ZaC>t-x(WlmrNCf8>~DPl|Y5D4AWF==!T1(>c9BP4!%dZ?{JK2pJLYN1vt z@BOSYo^x@iC%QP+qr=Bh$i@Q00yk70Zcs*>4X6c{(xsdd0DJfmzmT{jeo(_zFb=j! zaPJ+w{ZjEx`}uH4B1y?*RdulRjoWLm3O4jUv&M;pi8t)#9ARmxJyhmPQ&@f2B7ChWvYo z>njeXU(y3Cl+eC1jp5tQQ*zP6jWcnBOf4G_2u&X9Z`0|%=yJYdxvH*ipWAVK-7NXl zs@ACeTalw$3q0l2x4<(7PqU`|#sUdaRl5wH--RfHg2>)bkH^$Q0^{D-?S1L*NDX*u z-^`2xXVcO0F`B!usjcu!QT;AYe@i01@T^{O&aPX4d(SXLs@>9i-8l?tkbdi9OlL%- zKR36Ddr6e0e2E`00j36e+Dfa+RD}_bIfJzgtc7rgFy24bSlH=N#*8q;cv2z#wg-2zl!cE$*NO2H7D^>0P7XP!SXt8ena z%VzPux7%7gW^=zO09L?0aEDwtvSXyjbfBPuZkCN@L~9HEyZ}mg#oR;Zq%CDjuV(}o zLj3Nls;#P#ocBw}_3s_!a?uK*5Tih14kw~_G$_jJQNIp}!$fs%kgM9Z=WwjLX+b$~ zXYpZD)rXOE19b?V-DZoATNxzgOXZXqJ~{JOYnug`F^skJF)P1beOqHiiUs#&zJv0I zqePV+@o@tA*b47k^L-~iMzjyo;P)h|rOSE=0X@9OAyr>XzTK9QMph4o%h$zDmSq_K zsx`~(7Fz+SR2^J@5Ay{3?cT4rES8g{+IGv-32uBI)6i*a3<%hNjqd#C)ECft<3^b* z;(3ylniRc*&a=w2!ZG{cm~t(@=#Z{bz;mcqWx@KRAe}4)LQQ>{$yd zD;2kq@gm%tvUGr))L5s8i6-Bed=ww|M&%%L$i8%>uJ39G5?jUn=kh==HN2j9G+6)q zYDjadA~u^I)Vy(<=$K&)VE&SG&@x0@PM6-oXdd_ci?v3aB)oa2@vwQbDFKJytM7N3I#Df48BAw^YUtckTM7BV#G+n7-?Cy8y`QOvj9A9NP-& zL$9zTwP(cUlWX1^OWpM#r}Wtw*v)4QogkV_me7JkGGwowFQ+t10zLlpy+3e12}>V* zG;L?;?Li9US$@xs6(x?YacUQySvET+0{g0t@1QtG>uiJ+v*(h_N@lE`m)Ld{9Q##* zlNx_cu8*=8>D+z_#T<>jNRTV#|3_7qLNY1y4dp{?gK@$1Xg+H zA)0H2tbrRZ`FC-s(!9Al1)0uS>eaL$_>A=ZeY_4CJ?Q=+lA&Xdwryg8WCjZCTx zZXqv%8L$c5RRj74?Pune*X~}37$XRoLgWAq;m&1cW#uI$_)?wE_uf8)kzt{si`GH* zUu9E^iUd|Ju>}PAQ-Yn)9$C@NxUltA$KgW6ZEiD`39H~AR-lw+Pu>8rLQwI)C?VAU!>Ntz9Ggt?&qaqbxh`%v@ z@T*cn{w-_K-Zyl{(-Ua;w0o)ukd7ub_N@l1Fx#6yxXOzl-=CZdsc^I4w-@nN7V?W{2Ex+@H8Ak#sq&a1_R>35{ErZGjOrxZKIu*)G zkTcu%UFE6-R$h*@z}%2FSoj=#4U}TH2c3+W47BGnP0?MMEZC*)?Ae*Yw$6=A%h>}!VR}Bq+(#DFYRldXT zszT@>f7IoaLGODB&IL!6skHB(zV_K&dEUTuS^A1sMX=X-@ps10+}XF2MgXalo?_!Y zo7h9KWCGsN(w3I1J0`wj)9ZzX=X_qU7A5l#fLkXYTw@l); z7m{Gj9>bUGa@};Ed$=c+6I5)+C9CorQ>A8`ZNn^ zz?Nn#M%q|!AC%}Y#fSvFLG+27h-`aRBcb#tTrgE2J`d9eIs_S(G-LiFI6@jRXNS;~ zK(K)s)M9p^@~R_LaC2B0(FN7<7jC zF#_ilBURN^^x$w?%%_K&%l_0Q8yd7KXYKSoMPH4h;(14N68)a9Kjt@%8SPO=hyM@R zX|N@i6kn)pXsta{j$1S`EYhI`Y7=6UB%spTIr%F}iu!S~!Ss#=uIS*$OA?>6i6f}} z>%xGcZwxPFdo1~9vywY`gr#Nr20FCOZ z7MMBsu=)ysbXlpUO1@wCutcT`VCca^Vf9r<`4mLk^#<&d6el8-Dm+QbQONlhwQ_i& ze?Y}BIfr6BYLCEP8?tVbP}jIN+u$*&FTf`5s)Ut%^@S{uRGJwO@sWtOO(3lSWsIGu zkBBx{pNy3Kt6@U-l@8tr0@NM6ZmsERglp0;sWIA7smt0?qbos-xG&V{n5+u=zvTG3 z4h~09kOF%c(brYC?!FHy>86)pVGb(?Z2;ph{$iyu&&sGqhJhy*PzM7|)q&f2gF1~+ zKR$4s>bDPi0$KJaw#X6RIfe}A%xOQ6?=2n96V>l2VMN=0729erH|GtL?%vp^gVZ^@ zsmVkIsP#^hI3eSs$?sssAx6yI<}QjSQNq_RHE&E(=S7eVoXv%bO3G^APsEo@@5hx% zR88mQks8FZ!cUxPeh&Ee$vpVsW?5#^cjycQQn`J?Ig}~XzoVA_#Cn4w5DsAKhBR&$WTgG>`(APOcHRm`+_HgZ0~~rcXw2qAWueyJP$-lXNkLTZz+P3aD!9)RitLUVEGW z)y8}_1aG13wVjdty{O9wG!Va9?Mv6>=CSB&<_`&8FL4{T(2+DwU%loMc&OUIL>CE1 zL5JMvA_w-O41Xe+?4IaZcfe;b7;Wp~z5J#20mFT2GDn=_)s7%%N>4zG}W zYVxo^@*x1p*eL;VyP;8Jw{1HsPl$APHn;=l>%w%~2X%Ff9DxU*;?ngk5Wg$5}qWlCxK0P+tUx{HujPBWTJ=TrkOP!r`7M*@-wALUI z#*-`sMuFX z5kYFJarjvK29tFkHX@5s-I)0*KOhOr@vF?+g7m9QL&%I9>VLD|*VVHB{m8kCmy~<2 z@K(gTNmzJ^`Hl^KPL?`(cXv1GvP2bFO2s;4mElx(HAJEP6ssV-(Kl1X5%ueObnsR_ z(&GHiRNy%>aeK1`qmndjzbQfG?1lk0Q^pg0c?s?)_Rvar^j90dQcxS35KE?WJ6K)| zNMEH~BP?AIv%L4Xcb`>vm$REuemXw)F;9kS$zn|ow2vat_!16J3OlyN=nh?o=V_R{U{)j=$%l^w1N%2P<#bJ`ecfp z(H}Uy%E$X|7FK`6%4)V2{wf>Bb5IpE7dK8Hh~Qjxm*O~mTX8KB`Nzt9L6L|;O<6O@ zNz3yq6S`__rz0@q$`nFJC6is?Ibj!4Rl*|al+fj`jdG26ji`OUsiQ+xfvWiw+9;bO zjJ5(AvoGw#_smk%dbK?3P{3JHU>{(o_}UCDma=(WZe zp<-Hna$Kle%IqliG7>#`RSXD>!Apad`CMARz70C`O!peVao`*m5qT#VQW1Oi!9w$X z^&HbL`tePecPeV-jsRa#n3wUf{pYbTZ_jZ{hW*pWKShN_v5)4Nw@{9Z{pD7lT2_Q+ zD#l3Bj5mDSXDMSzUhM$e7T*HTM~z`l)mDN5F{QuCSA%bjWTY>X zt(|1S6KpbUInIM^G+oUJJPWi7Ov>I0Cqd{b1STa})lma79iyx@2*LWF-T`5?j90Hv zdKj_85oEhW&PWKo@-U9m_*VdOX}<@dQkBO20wxJ^NiK=c6f>acq5gH>U%hu{Uoshg z5L)Waa|_}I2_6OyBoGK@K$pz@ewf?+b_BA1KWs8O((Z67kI<{1rqu3w1LECcT4}Ye zm11#hJbWs{isy_*F8!^5>P+ZqfhK60NvDv&2t>&XLyW}HB4>BY`X=WopjzspXTd;) z1Q^qfVKTbJD85MBbZQw7M@RNSwjyH`IdcU?e`fli)4yzUDLo?);I0zLx(t`d(qtLF zitgUddL92^B1l^mISR9)!`tWD8d8q6u7_W^sq^v+e$=Mp&{(gUjwU|rrmyMY{C0U3 zYH1j}Kt}~{?P!SY*&OpQtet&>LwrjBg8$Ho$Fq zqL$mMUhHjfh8K)iV`;qVGKS2S7(G!djriDRzna22`C)Q{sKNIeo)g2>?{AtR$)s2& zvsAYqiEHw+3DFUq%zPsvc@t_7z@2XmbT?y>tM--K7%1A7?J?U@yBUAJ$bHrm)%=(` zH!1X*5%*d$J}XI#1mCK&JL4cTHkPoakFmPyb*lpzlOxJbQ zeIz>3D#;o_P}L0if9r=gKj=0+q}e<%wc9iA8i@xiY>pl-xRGzXcjjO){JYnFV&A3` zK&aSWg_7{8Na7@0`UxAl#YUiWbOfQzn%g*PzqWsEinF#R>U&e!5&VKEOOJ1D=4U^D zY1Sjf8qr<}i&vd*2$$Ybib4=pq$*42CKRc&^ zYOqh&M)5gny5e2u^>>D;UGy%rwCf}1BZ-xU`ym02{)%MXXo>tEQZL6`!?Y94D16@=0x_&fs$F_15Y`x(`2hCEEH|8CQ*a07|l9y}pEHtdi zH}Kzde`Lmom|v}JiNqp=EtC6%6t?B~kt#6&QAU4x{;<12kAr7U{JQdJt$I|+ad#}u zm=ek2rL>FD5S=gbE=P<$YK&aZ$8}ksV`Cr;d$Uu38Lv%VH4>2?t6q#4lcMJSST=I8ocEQto(IXzpG7Ff&gcSu);?7FmxCMv1>i0|_iu53ud& zu?f)Pl^+L)=8~uDc^|So>31~fxBe*sux*J4 zG&ZdGwS=v2)A>h!;`QwhD@_CDtc2nACw5z)EkmE4IfFK)5RgV%OI52qiwgT;#6HG! zFl7VLt9@hX6_FfLNoYK$It0PvDON6AZm=IOk~+Mc>4alAilbx~(Y_aH1WuyK<{YdfDRK=rgt&WL* zi!Gw`y3Rcn@x-1~-(2|YzI1{U=(#B>+3;RFkv#YTleZ+s=j8@gYC{#un+HWu?`e#K zRtX?AM{wgqi$(}Tqskrh18{^CWQB=PsFT@dld(m~It8J0tpQzHY{L*&m`f0+Ev+s9 zA+0%4F`i$Ng6E2$+DVq>*C47vP?rCatn&Jf6X7K^7Dwp*Qra_tLFm9iYsH38wI%ER zFL_io2!>@PS_-A0*rMRftD|0k6dN=?=$Lp7-;rI3`{}IF5%Vz0G}G&WqFgi!nvW-w z6_%ic%e1{<*i~gF`({tX7!wgQ3tq_WsWY8!K=;#vTlbDx9Po9X)HKpoXaZf-M*`>g z8RhjLp-*&CQ?BI%Z!%154i5{oi1>*cF)S z(_U<_Df{0ygV@-K1E;KJXoQ}1Z@T17J>+2r-MyvXWS`8lU}7VYmK#AYS%~; zt`%YOSPPTH=QljR@K(}qLht+pEy{(W1DS-44n(T#xz3lJg}!`+nFU#3d(hJ=;>VbD zNM?9N7CfI{k~4laBcmSyOax8>NDz#`)vV(U&CgHz24!>g3X6RCsU$FXFV@UOiV>mhqLz`c%V z?Q~+{mEX58YUD|wTX$LN5?Q)b`dE;A;zCYxVRUy}+TvM|u}%%y9nvfTvmu+YuD7)= ze^wiFv0&C@uuw3R=82yg*g=kHR6GHlJJc_lHv0QY$dzv}nQS0>TCWhTPP-n8c2yu7 zu|5rAs5)O9bYHCVXUKyg0_cwu_!1E?yZa?3&p1UIEU7uQ%_J(5Ykzzqu6A}3H`TrU zukIQZrUru7Eg4O)`y*wSUHBPcD=fGrOSjaSO39D^i7QLdCoc(LE_rAMMQPC7`>z+Fv0YpJKY~OoHLoLsy zn8FXEf{aQwyP;NdLNY&Ox~#GIWng#{iGWTZIQ84XqT}nHfNOU<9nysNr^3*dhGmkX z&M=jewMSH%&AkMJMoYu1FX^357&&*`q1vrF z2q6FvS(0mb3YR&cv@5jm7EAdaN4Ytr0K{jn-xK7K+ z@R`(HTdjPyVCHHr^GoegbJ4EpI2rP<)zj<4~<|SKdw&rFWF_f}?nf&QA z=Y7g6H4|Smgfo;M!drM-1X)i;b}B4|1F9$>4Ec_t5L}Ce^#?tRHG)Wo$P2-KQ-9cI z3JZcG$jd=GSzBOHi=6`^b1KZN-J4Kd*LT~&Wkxqs%w!CdAbqFzP!{r9$J#McXOug( z^+On|azh%>_a#ST2v)srt4V-#2*>lB`#C=uXkmv%Q?~qbzv+)5MqlF|yq}(pll4%qdy`eWXJ>6~vXK9N#R(hHMDvd$LR$4sh=lh9c<{W(Jq2JjB_)ohZjs7-2- zhCiFN{^TI1;^(wek>#90&Gb#=KjYsFH;_ZlRM@GaD7@Mqr*QUvaa`Msx@!D%5qmvn zwT6Iau1AN$AFpFrv=hLCtQ1ir<^b#EIi1arXws6&y2@qedn-GRsYE@^zh<_T;Py14 zE-s3B&t@-Q>2coUawhVWk(S=m-9B#s;zxZ6TQAtOUkn&>Hji8Wunq|CX<|iL z7313uNuDSYDzh2>xKLqBTct&PPenY&s)|_}O0mKTLh66xOLGAtlj!5#of0&|&I2zR z0EfQW`fgMjW(i(M(FQx6jRj<6ULK5c+{%HYFJWTRLlszG{0YkB?Q+}9Ulw{vd5h-8xE1Tq=JvAS=*Uw$%Qgg#$i4m`fVWyDAMP70wK zx<{mK3-wDoPiF{>7rZFf!Oy8bz1k!f0jg`Cgsa-&;Mn(Fy{xf#Tpq zGktZX*c9~SyWMPXsX2{GsgNkfIJa*UiQQU-4$a=-H;~b4Q`6Ni=O6149vtMUVuQOx z8(pGOq9^ww0EFId-48>Mt54T2w8eNs)Le%Ij;7=MhNC6Rzf`t*G6a(2tq@hDS_hfl zeR{NQ9Ud$D(bYzKg(L1!{+Th*6jcQISDx+D;fVcH*+}w&X==cPFI&mIu?L%Sz0yO? zpOI$^g^#z+S{gIF`&^7sXrP^9jA?flo(UW2ggpaH*iWC!u#;Kuvhmz><*OISFnm7O~+5i zrb-pJv&yv`0rp0}{I;r>+frs{Ufp|}X2#xCj`{l*+)rQ99;F(QxKlpw@?VFjkh=@` z=E9avF1MLfZ9R|oxMICc0r36JMn`r9CjvM`HIso`3IT) zHE2`@!8jvK!^`TS`(yikuD{0^T3{Vzm>+t8R6%+Ygx}YaoC7}{D^Yw6Qa?DG5&0-u zZHp3Gg&$oI=m6+T=!KZKz@|Ci`ZHTQ#eeASOxE1z)fw}jjua-Y%76*dr$9o<)0X-h zM-(dV8r5#I5ohN#n`x(s9hs4C+0B46V~gqA{9Aj^S#fi+C<=FMVs^*w^Zd}MxI18W z{cP(6ikyA9HE%_>kbxK#QrMGrzo-zy_bRXb3uxyKkepmy&)x)NCN@lekc6nQLQX z?-4Bhs8^Zm6=VYzF1+`&mREeURQ+B_SGJ}~r<~TE=6E~^;&Ee~X#*MG)pD;@2r@hR ztHAEMlUDa}P`T;Xua|6nR&^IARldLt>x*;!-o>P#{MmW8^F>5ozDH@ zM4h#r!hGe{zLkrVl~iCSxSx)q9>bKUi(>emtoH%AD9?PWsJ?Ji=Np5NZQne`y#+Vp z*gR1kK`*Pm5xyHitZm<__Vc5e$1Oq;=%-To-@8GUC;PLx`e!PFh>|}&sc7s117ewM z)hfUxr0`G#t#ABfP-({Jsb3$0z-X5S0Wiv2k&hJeA9b}2AMXZk?OxxVEkP0FFqeax zR@)CMYvUe^viC09j(B-bG1q@Ou&fp=r3Vk>hpdz z_pQPBlp`XHdchS$enMD$MW1WxTERT5QBYL#nIYb9Oz1wX#{Nve&Q#Cl7AnAMbQb9L zam+p-pmFodcfzz6=%^j<*|7ckN!^a-{R`f{F&?(MJE>nWQ`%(CzBb_DZ7kLw?KBV8 zpAj{RqIT*-ZguXz1j-3l?j*r=_*O0ziVMPXQ+{vu>BV|x{ZTGbptGQSax_Y4^0)vj zHSN0(aGSarkA-hf;FTLrR#|7)h^`B35x1F(uV63!(ca^~^IggJA&i!Z z!fj4R?zJ^)o}URxA!eQQ=a(OK5Lns2Pn33=@;+~NSK?P3bx~MIY>)}s=xj5&rJ*zO zG1pakVms8?#l8AL-?xZcBJTA-8U9{DnCJ#gJ!WN!PWvb5;81}|=uhX<%d(DrPAVBz z+IDtrfZs1{_^`|4xUV_fUyc;s)*Q+^rILmAV6~Qc_-PdfWLDv`p=QUXUGB{sx}mO# zAlS+y3FP_={;to~qLnA_7O&2Bh>+NfFT!S&5dv#-bO`FEC1`m7_unNq%VHzc;P=HE z#+2M^^UY9s?t)?G?7PQK>4t~pRy00~2d+kOzyhtqwyG|th;DBw1P-7zCnPk^-B7Hy_j-T--sb%wRY!S)y#aqN52@J zJ*^L-jBM~&P{hFVxQ8=m`FjWNYh|3Obb+~Dr8UnC{pmmZxJX0D`BFdSK8p@B^|K!u zB(XCTyd%bf&FvDr)eZ9wn>f6pF(TivDbYGA{ecXF4i|r^W(TP?Cye`fyvA%Uu>;Ly z9MJ!0S;HCn64U5BWkgM$If$S-{3M@`1ZBci;ta{gm@3vV+~Q4lSJl#w-yaO}yi38P zN(|oE`*La^<%HWaF~gH_pV%%p}NEg%LB2hK{)6QSS9?$+rrL<~qleGD_hZm5H{e zuAMz@9hHv@a+0-|iDR_iCIG{NGQ2Bhg>l zlYqk zm2aVG|2i|CRmkJ8pgo0kB%NRE09nc9r_(>1<91fU%*l_`7QYI%h{w)uSZt#nPq9W@ z0C$w^xs-~eu|jkzuD#^d$ubkF|_1 zHvZXe_~ggCvvfqwXv~4N<8NT~v~wKQBJHe{x zKP0;6DCb1f9tA)!9l025&c!JH&8!`$5$x#q*AK-)w`>(0OHPl~% zX|w)Nafg~23w#|?3)Ho1^d9P>lP_9yzl&tEwUKjnPXB;qhA8R>PpCl;b+-l&wadEx zaORgJh(FbX1XXwiN0CkAe7?E-$MR>2N)hxe+=4Oy+CYPW4LzGi`QkbQQN*ChN~1C> zOw|A{{>!$i?f2Hf%{8W87p2H^MKto<|BT}^^8ZoE`q%!1<28wR0Q%=pJw06ak8E3m zk`A?7Qb=_sxA>*H>@V6bh{;GqQZ_e*U-FV|fch%+mAOPvU{~u#Ww|Cj-jE3`C6zaV zhzYj*Mg4!QUfDwPqMbxh>nxw5!Z{nD&q5hoyOoH1Wl&uK{?L8tNya_K8X*eP-Rc(6 z$2~W-u){uIx4Zm$0p?Ue6=Z(_LqGlJV9yk>`U&!M$~F#&4#Tm`k(2UPp=yn@Hu{)q zC3XS|2R8TF)>pMpYkXo9JS(k_i5>}PIg}4@@y~ayWBzwvPv)nDJ7s|>^w_$U7NE9S zOD;E-;w_*iK*Z7WEP?x39_%JiEloMOv_hLJNgdjII)kuVYR<7owyEx6*7Sd{b z8g|`&8_0`lrhyq%Eg^_HucKSlX_7vLz<+oCv+3#ke_t5ZB2Y{GEJ4-=qZ%xr)MC4O zEf~c1JC_)Rab)>T>q;iF=+9?(`^3e&7aQ%~wZ}V(HO`lR%?BD=oAKxs`c&fY&bN;J zr6-aRVUN#|9N9?-zx+2iZlejoAJtg@&vQgoHF&_Z#(y<%)ex3jww)uEy1L;RgqR$^ zF-O`+_KsAcSE>4(Phke?K7DMiZ;Us3^e~j6?jJ=BFF~*m{O{CXO8luoZ|BA<$;;EQ zYqWODnbGDTxj_irOGN$($dPbrb>o(DYSq9LMrcdS5vfM~>z47}#iN;t6ccsfV~rJe zzRAYXwNS0yD*ol=QP$?|^&PHh)anLBahx7<$oJF-X4~Qo&3d=2C{DRscvxpc&ZdbQ z(a07icYoUb92yB#1~HBx3H{e)isEY$MGkqXA<3bv$U7P+H98}kN(aI$bG&D?9Zp|C zZfG*RqA;uaBP7NCpmv1PN}C6ju`NW~CV5$Q|DjdX_2QXYbrT(kAzrnK7V{p6~3^fKjDe?BUmFS&skZBe1SCEMuLe zf)%gL$#3G9SC}*&CxQ*&;Q|fs4+yqKP&a1VZyM>fcH}ATRCLu%{QPfNQP)g11`76S zDFf&MKbXCKmN10{>X>g0Npcly`!Rf3zF9pdJ9z)rmAeq~_Kd{& zBCS#t#2u}?i`u15{>8Cn%=VM;X?JiKE}g<9A;JL8nmytkO_=_PD#8|Vw>>DN(&4q2 z&fK2msDBu|8wuVsxI|V-+7`tPa3`seAoN~W>ZtYc&Q)8))JaZK3J`-*BCrI?ZpRh~ zp5|E(a(i|%v!qkmRy7F4`Co@!TvEzXNED8mR_4oeT;^q0W*{_MZsk{7^OhJ2UZ1u8 zL7lPp)Fz6$f1h31GO#L$SJ3~Di)|YG!UfR9 zey8UJ;0@JXUBQV=6LvQnUJhdA{($R)!_u} zXJn}WJtP#}FV*~C ztWF|xekM{0brWno^Is=#E4(~-AgX{CfLp&QQ8H1|IHbX0fFtOZ_`wyKII*0fOEp+wQBXP5^g;v}$16k`^Wen-W+Q zGbR3;Krw&P>IAElN$x1NLbsP{?*_dxOFq{p+$j@jp0SVR0hY4AnZI|vJSGgb12(M* z-$NlBVE)!!$_xZ!4J(Up4*3J}NHtntHbvXfPrk=o?J^d5wstL~iTM3U(cx^<3a-I! zrvJX7nWAD{G&593(n4k8CE5_tC?c8sy>%Jp{Gr4 ztm=;=vejcz`gTItOi8$ip zB72IQ-vps?L~?=PKn5QyW212#1v8?%$tnjdgET&ypX=D((B`OLi*F)%t9fa%fU%!M^WSWu2_>? z-?xQNyQ;U~F4BEcR6FyJG2c-4!dc&Q!n{GCO9BR(q!9T(>A1Qi4{jc3{~Mgdp@Bh5 zBv;^K{C@Fo@0rAs79hC&6n1T$lIOgDzcA8uX|2fysyCb~BN{rh({B(KR>ijkG%!K|X9GhE?|DFVQB_uNms0R2QWAKPtam{NIa#|aKud~U8^LNFM zEj)h=`iS~cN^~~xBQl>J#8Z(GoQeqxy=~d+m(Im7brDZP73ih~75NVBS%%M_4NF8n z7rk&x;&M0anOm1x>$tr|M3=e3TC#y?D_3*#zn24b$@j*$G^O4-hMN58J%5u9;YJMH0xTW(%F|c8>ji-p`U$6ZOA?&zqShjgsh8kCk zY*l-hQYc<30I8^J(_0YLwWu1c+L=GIqTOzIHQBqGR%`F&l#*wSma;8pVY+L!v9~QMi|7Ep&8uctg4U6 zXoEIty}coD_azAfWGg{KAkrz_u2HJtatE@3IF$ja5lTt#sV0C_V z=A4lsj^BZfT(KbOCJ*riwx?RkQ;hLfcgm{ulIA)J-Fi-k}Vssp{g26kw-K z)!1MS#akB`_)#nBH>&Frnc3#5^-!3*ikN1?v-hN&_^`4)>p)%B7*+Jai{QAI%L|C1 z%5(dL?@lH{SJ>2or2+Jgw%s-VCK?4P`GHjfS+8K(Sd8c@gBsXrx|hk!wKm+0^lSyC zcU@v)sv5Yya5UHtrSIF5<^BWbhTSc<)) zC;y9It}nDO)A4rFbye`1=wBN*r0WDDMWJU@%}klEezx?=Lru$3yUdn93%tc`)-W zc*~Y@TAITNqkAG~V_cuS+xOpS3oT&<=i*B!VDVZ4o zP&219=Z>Fch=zdYsep2Xlq0Zk-aE&XmtSwUZtzuj_5RyJy-oczD-w=zp|UIf*&7eX47%%eylx zu4#>VI!mXVe5_x*w=v8VY*ADPT$cOP_0sn3tO-W847%2wqsLN!VO&VXq@l}UKfMBY*&0vZN6#|mtV6Go+D-BZ} zc5clUyg=Ouu}m}7{}~^zT>{Ml>y}m(fqv5fcu`koW6A8X-}_D44C?)~aGPjHu>A)9 zb0dg{n`>(#u3t&-0al^_p>mFYywU!t&`C?mHJ?Jym8qw>)zDk=!Mk9D66+sE*1E>O zSHDw8n9x^rxCE^bX+Y-v!P}+t%u7MT^27r0F~?Qp_7D%87hL`Vl*`H(W%fgwk$vYi zKcMdPyP2`25$kXXYG1Y#BmYM+>facl-Oiro+1Oi_GMqJ8n^<78bG182oS8>#>& zCdSc!iYm%(Q$U31d1b<=Mqf#rcP&|z*e|;C@!pL2xic#5Gu5%$7e4gDbF!I?1>?cM zH)J5Pq#S36SsWUSzRtwyH5YjL8>@CWFsyj+c1h7%2W{;28`r1^_oes|N}gWbiF31BqdW#>QXRORZ@-#oumJT9y(0g~|ApuHU}ivGOI;=o zcH_^{y5$D7Dc|qp5e@pgJu)L-hyR|pY9sXZ?SN@lD zwuYG*r<_EMTb8DyX}8IAT+md^tt7K)F8M4hK)ZE35 zOvrG{B^OjwLQK>|MiI9z&7J$}{R{g3eBRG{&U4Q5eBbx|oX>lXYV)tzz4ks}-_P|; zGgxM`Tr)h2g|!dZ>hWI-G$sEfO@}*hcg?#&%O&}vpVvL*N$RSK|KR;+&)j5J+HQBdb4Lwl%kJ*4?&!< z%#GNQu($2lqbhAjapr}s;obUqx8z*tv9QTA*xptiKjzl5{-q|;L6@3|(`wjqtAA8;o=j$0MB(?0hWxn;>zfKe+pXzy* zR+6rGyn1Ki>$B#l4qo(U^mKM`7mv^#%ae}Fh!f#?!W^Nk(BE}hgwDf;&FF&a;q9!i;=0*sl&M=+Y)38Gqxz{xk2-0!4o!e0EfyuzKJfvz zRA1RT<}3K>YN*qYt^E^hS}R!7m-sl!g1Q@AnO{bjN|s5!I^vQpfXfoe8*D{sNk zQl0Gw&T|XwEb~nncT;$8R{3Fbq=$HQ0fXgOG=frvz_v#ocgIs;4YPJ;F!~yROY)#3 zUjkIWe-eCDx9}%f_N6&FGy* z>w>242e6G+Dqd%2M=Y5XhWwJy8h33ikUo*iG$ZvCY`9ViS0bX5VRE4Nsijq%&e1iK zB8u1`hy`(IaB7ko|g)>qn{Lbi59DswE=rP_|FUxkBRV2ox@AnjPFSBu^p$|oU(St4T;OCW!4 ztakq5TiG>t>iK@PNn5W4cMmdULvrEVdV2nNTvt{8+R#Fr6~~rnb$O1EA-(s{lDvoK zcie*tL%{Y$9Uzz1B4*Sa5y75k6VebGZysB>lZ>f~2;S+toI|fi)dmmKqKd%zgj}XN zV8}O#8MQ#hyfw`|jvEfok-9+h!OLT4hqwtuHjcGk=XdF>>G(8EO925G(r#o%U6C<+ zWV%ST$k{67&^!Y_TWbX;6nt72Fan{?#2RIXaqxADA-(a{uo4SUCX3N&;vCCfACcRD zJR~EE&%A$IxX)jzr2p0X`rXaVU_w`H_=7X+0Xg z8mVlBZhPxNm}xG-&nW2#hXW%niG%TB*7cehoPbBK#_$VkkGdMvUx?%){lm*nEyf!%}HE+@Iu*E0cH zdY7}fIT2lo&v6iKUz-2Zdq%svg;SAVUKS;xUzY5=SxwTm!Ay<+vRk#Y4oFi6oN7cr z9Wv1%AJ|V#z@6Q%0_CrLFCjJ2QGNaBr;s(-qaal($WL`?=_mA4K>R$o@KVDCz1ry* z-l#Nr%oORz`+@Z9XQGmP#`xhrGA5egVDm$)R)$ z_5R_)OC^)xx{2me;}{9KuCJfaAibw*;=@>IAV_VB<)PFxw}Ol@M!ZG6h|pwOKtp*$ zV7}QMVJ#ijF{=j@S`J)T*dSFn$VQcH;0(Ua^YwC*8jrm5g4(61RML$p_{N%5=N{=F z*D^nE2WW+csIow(50qrlDuETzP3Nrf`dX3coMYM%S|ah%?dIPrvm`xsybwomyR(k3 z*037ey;9VoIg0?(wKUfe&dvRm(9wbrdb!tT6QG6JtC1#Z8QB}acw?da`kFrUYNaF! zKBKG=(+ayoXJ^v>XskFpk#;RigUmVRH+$6ocK02G2-Z;InRo;cUWTKCGhiAC7Kwsg zQeGpZ-mXb3zZCwm!W&`h-^f~RVuX#!dY6VNP}n}eTTaLQTWo~3#Dm&IjDO}b4MG^ zs3EAV6MuLe97%@xy@UCU?*c&LkHel z%YK5o9!uvH$@=912$gtaH9tYlDrj5OjrvPO?p+R^UOye)ry>_gq<)^S23c6|>~X74 zshNNmerhKEdG+s&6aiVFJ&Y{Z{>jR)=eAiR^mg$uy*rrUp`%k@9g?TWlG&X}6hlzV zC^AL+XoFgPcX`ZN0kspT; z?nt?+)hPZ#g{mw(&w|AtV6OHz+YimLAzK3?yvxQ$p%dC49O*M?*DDw#HvB{XL3MUk z94;p?f((2Dt)I@|$4Y-*JBw-B0!E)BmR8pw%No8kZhm&tP-f>vqF^*!%u|CrEo*#Y&lyn$u((@Tjd&4e7|m$%cVyb;5kHRi`L4Lj z%)15R>hh{JzrV0bhg{|sC}U9{OY)=X?14==46{@RLuEi{Q#%uqbWOiCD7r+2hT=Q= zGVHxp+_~bli(_3Ae(py86cKtYr~+woBD_&BbGMIaMsarFB0etbmKs85+iu4dbJqJM z(y>z8L0m2j2;c^rsRlFyN;aO*LG(O-c zZrshkW!}(%SVLV3tQ#%WdmY|&Kfxw(i7+1L+82c5YX7a(9yKa);u#w%Jo<%oIBdY- z4Oj@pB9|en2^7pMS$xPo8du?|A#;iDp>eM9#m-O6AV+o4*bo@Px#1ZP1_K>z@;j|==^1poj54^T{0MZd?@|Ns9XeXjie{{R30xe?ep00005bW%=J z|NsC00QD0+~rfK~z{rwV8`@<1h$Cz3u-0 zH+RHC;&G92o6lgp#rag8^YOO6luw-PD{?+%edFBs+Aoswi4G!}sHVI1nN~cVIoQz{;e6)6 zd{#E)#ykD&Fwi4%8tFif#6h5C>2b&fxCM@zo4W5q8(3l*edsvm+N-XQV14K~3AkG1 zXq>u+kiwif;t<`kf=AJZhn#*o(FgDAh_m|eE-5e%`;b`i$d_dMHAl;=UJ_brnz2T(Vxd30DBz&KWFf`I>@yG%B!}HQhT{?1XJ{qqe zZ2Y`(_m4V>tA<$XvLOxx%@GZgL*(#16+-D?J~xyhcG+|8DMN}VIXw*dy~WwpxrZ_&II@AQVbh1k3H^QWEwHQ4a>~!vXajx7C7a4I92Yq}wj8q4 zORA7D(T4U#8Op2vr@)I>LmVn?p9AyZ1vv2@2lb(t=wwl4whH-3bn2T*ykyR2Rk_PS z^^xlH&SFTZ#E}&B#JWlxGD>Z_96b`yKiWiHVUAY0$H8@$gXaRp5UA?hjbg}NyXVgn uP0krezAqrqndEzrQ;>Y0^49k|ujmiZX*K8@Lf+{B0000Uf8AH_)vKwQ zp6Z!CJ>Ap&P4}4-rTkSI6O9xN1_lOGRz^Y&%6nMWS+qr4 zsW-%A3oAq-sU@Rja3rJgZ*fsH@DaZ_6Vyd6R~5`9V~a2|e>c$tnv zVVUbw6@z31K^4twN6SbCpwhZ=O--4#e2&OZ$(bAS@h?1~6Qtc|_^kfs-rc+|eWC1- zR5W>K)_wOd3Kjp#OSJ7lkH?tfSkIg6qC-kOKJP)OKq8|`GK#MjU_Dv9Yk173f+k0r zXEJO%svKWgc?Iz<@aa(1l0gLw1mfGVNGr(+$~7({?Ip+f)KP}v>v53Gj?dz$XsC-n zd3dPka7K++MwPG9P*7=blH3+(tEY8utf`6wU;_qH%oj4VG1NFL@>^@4`B7vPT%B6d zt&A4@gq;^8M3g!BT6TX}2@?r^hNVqn;#MufOTq@PEdGqE1g5-t4HLVcAC6+wMM~@# zul$+MTEEWMMkpMIhmR~QD+7g8F%*ybfBi^+Ej9AvQ0Z$_fi+seLW>{2E(akUV)KF2 zqaPbV%fh8i)QT63oKV##+U<+K-Dy_6Z@?9aMp_~pye~L`w{tX+e1VElGLILq=p1q7 zlbbBub5Uu?Qj7DyV|0-+tIN$rNRX%{MG-J#Z29lu)I;F|{<*;XD`N|8WY@iD6FNFX zh9wA5_5P}W6Q)f4Wrm}bA2CyzvpL=EwSz+D=tLc~T-CbC?-dJkdbU}N3e(@bK6(#J z|D+Blhn9@NZ>w###(Mw`d}Se9=M3@sL}_%+&+mCGR?ZY5CUb)2AW_XWJ2C(q!s_xV zWeTBHAX~{*=?&7AQeVc=W274n`WPHFD11Kl3#UlH3Qk6+6T1?nNVK2$86H&YtY-4{-v%*nG)ZaM0WZ0{xk0W-G*O*W+e@8HF~P4quFJ%qq%~{uZS$V5?g9tChB|q^rHP;(JVfom`~3 z?t85nj0TBdDN;Xe9}!hhW#HEQgc{+nfkTb?@TdxtoFUxZ<0G?u{f=l=dMRoSBbZ?B3bro~NRbYB_ zj>y5bi{KMl^|_t-)M$Gukj|hR639(Zj?GaY)hwtdXS&Oy2KL%DN2$_ftj?pShvAVC<;Z#8K~z>wHda z((WS{Q_*F~GjoR}&W)S6M;$zaVN3`%Vd0P9{{9YXXSR=%pdCxb!eJYtk9YVxJwrhT zo6kU$lP3>LKJMzpPp~ph(XB4C$ruG!YMA|RbT&F0%Upvr3Qj;1ZD8?!LqzAT%+Jy2 zIY8?KGvxRwHDTv%Us^NeCn1dGv8m~+65t~oQ1F1>adxbxC zY<|uZ8%QXEuLlgTtfN8`6?tz8FuUQT3ZkYCSiH7sz}ij}9mFb-@WXR6txC#IDJmWq zfKzRxm?HVLG#6j81Wpdz;lukOX*Ho^JFDux^oS5tB?)Tf_z-9sGXKn zor-w-1E$=#KXLQK=w^GxXX71C?DH>`1A0V>;<3&l0##LlqnzYlgO0rzm~@RWL$D@f z%9dlUazV@P?tljzbGZIp97(BoJCg+=#B)p7MU3mrr5NAU*04r# z^7FC6&tbijANOMf@UiRnAbfYX*~gt}lL6WdrOy_F-6OaQ(k@GHXlawHpnPQ`P8C^1vI^y3SVzb2ZgSh#wFQT(^0V~ug6CP?RKN;yP@_YBD zn?d=6*~<>b??E1acJPQ?9$f@exu;6pL)k5dUPHNDr=ynu_9;!BoAYTHnZd;6Ow-r7 z1Szez&oqBow6MEEIVl(@#9e z?iiWnMhS^0#~&~g{xw6yJGK03Y}=nb@|Ao$qlC>WirJ&qpSa`2Fn$oc3|~~da3S^?nLS^UvR-_ED1=v#hzkGH!tAL%VIJUmdTv=Kt8lNl$SXy zr&)IxVfWf`uYZGD%*!j!fsJaU7WVJ(7Y~>Df7a?@b-5egm6h3aSs!4u6sK%ze>MH9 zEo_qX_GyNTGHv3rNOWsZ?R5C5N0v*b8$%fL%k=SIsoQQ5f)?wKAm)Du9^}3uF~wzb`?H=;e-fpc?YuY zaHW-VWxBf@Q4ttS@-Z92;PO2mfSNCscx}Byp<%R}w$ZKBU5P|OUfZj`e#nw$ugatB z-pG}w4_K4t>eib)AxK~Zp)%cFPA{ z$Q@h7@Be|fS@>;L0TOg#PZa;+ ziCCB(tlg7w-N8&Av@r}3+1tLe zwHfavPi3KxB04o#O-)U|T3USG%e}zp(x+=ORuh09FL&Hw+Gkf+O0flh?p_Qe1vn}` zlgv}Nj4{qj9;T2>3wmV}aU z{nFg*Y)~b;%f7;r!^-5ZPlXK)N$)>1L?xJ5Sil>rO|~d!^}WRdC{d=gDnAN1P#Jct zLs*1)Z}6|GqvDb@{(5vRMgo(9v0zI)mNl`AWw(w9Eu}cY!#l6{T2lif2FZ99zq1ir zw{C`rjCSh>KEN9fgk!$7-<~YtOlIbU4?28YY!0QU@KcoQGEC)ghS5009Dle;DZ?^} zt7Lz=(QBwYUH$XdSpavUji_qZ;Wm_c<@br4^U%NpAC=g90qP6La?0#%wMikHBZ|n# z*9isB+S=yFp#WmMnNXK7PsLnaaV46Q6A*ug1b#|YsK0|@K#9v{bID(5J$yrQslSOaKdV^dL81-_&F3EFI3 z9L!fC6J|;Ke)l}fb>{JBknxjo1rs6eZ9%lgfkiCO?b=(X?J?~Txw2G3&9(Q4UKI@? zi>x!&NVYaFr4YDh(z6UU8wz+f%e9gk6%`d%1%>0%rDr2lOLa7Kl2-<*u1Z=gcod;T zs5n(SX*}kl{STSEMO734>zagdK^|tT#nr;%cgmp$-{5pEW~%*ArL#DwvY$yP$CN2#0lyk6{jF)VrxEB{?}5ne`hVZ~;rEr~NPJ^8WChNK(9#lP)| zK|WXYJGjU9=eVk+`)T6o$VF*syFImXDk`$-XF*64v(!)ni67YwgKr!0%E-&a>vG)fm1z3R7NTH8tpz!)Am z0i=Fwx^&myP<%Gc>#dUVdaiEbj1bq`e%I7==V_tMmEH5F7TpVDnC_9aYlxo+UuX_o z_3(0YZs9PE7+p-?o9?|<*+!@?MwpFdJJVwisQ7#t1xQA;{aJWwkIm$4X--a0s<^#H zxg4m%6$*2D>X{$y)w2euaX8}2WK9{}&aP~{okN?)Afq-lx; zMFZ0DkSFUrwD`-WR}WtfjqpDYaVzl$$uagZ<^WMiqN6O8-Lp6V1Z+Rpsg4Etm`Y zl|%po8twPvjYq{>OqKo5YvE9{x>2uBETs2ni9RDZz46M0ym=omA;q`xIVo)~GT2Wz z(k6wJ6H~=mebx%!SisRKQx!>mbfNu_%IwyJZ9dD@+{9i}*wv(^f)!?5Q%HWMnREh@PXJjMBK)2Ul9it!qJG8gb&W4VTGLM)+JneyJ2o>)d)x*T@dpx3)y3?s%Pn6^e-|hV+LObFz~{Ix zW#Pw23bkC?el_wWwBhEOS2vpO?WN8)>P(#e!uP%O$=gt`sj>K|zaZ?(>k;mBw$T~+ z&{Tp!Iznc}kAmC3iBf+DX3VwsKk~+(Hnw%;G7qpbA}MF`TYj!GGWyNNy%`%hqpT)= z+iKn3(f+NvW-r)WexsatK(J+V_-0tDy~9IUur?dL$DMhYc*$-Rfoa*mjZMqIhcjWL zCpf0I6<_^vDUSQ6iHm&n7bimH$A?MYOXr*;kRclTSlvoZB+^=BVfoNPS2%!?g%%zj ze)l@$r6@+%e6KRC)|xaN9}Q8sac3k!T;tDd7d%euGe2bSrG)5_=L0ng9Hr3}^)Szq zk;edc>)!Bp5Jr;Klgz0+?|V5VL5Re*iN?cXt#!UXvlJdKS{NKOZjg|W#}3f({~;n> zL(kC%?krJwD&>qEg#EhU^J;-M;d)$BPU=U3hW>j5wVnIcOAecp@#hp-G%8`H4Uuq` zc^#o6RGx|Fwf5(ok8Aq%w#?8}GE^ao8RFp1TAJCa$t)f0D>olbNRZ97ITCoGjW)s2 z!(hgb!T7LCLQZU45D>Vz(RFioI}cf&7Fk$UWps?pFRHxx@ZsMPBGpxciu_3W=$b-h z9PKvzN?=Yk1Pi^|~RKgGSHjy|&J)Si8>)vFRIUSi7 z5O-u4sNdZ+0Z=9&1A^c)b#wzY?w1vp#}&$LiK!+nhFxE94|4|6Ho{0=7hG6w24vSEF?$W0i%y z8nIYUY#8t))YQ3~nj~H74cgUXqbzJ>cD45(#zL?jJI)CQrUxnp#0))7J zb^cqe%JH5X^SuL&{5U4(qRNr#RkE=X393la65vD(hiB0E5U)y=)yH9LL#*$F8imk(S19eaceO3CsDsT&26zd4+`adM7ERklAmn zrDq|g>gC2(=6C&B$Y)H0++%j{t4e8+vC}?ZZSF|*%|Qj|Cz;+FJ8EsJ#WjsA5=M>@ zEiEw^u*7~nA`KsmL_m#17w#*h)UEx|h*cFM2H#FbMO^C}Q(-;^q6rg^PE7Ky3)omH zwyw<7SCDR)`{UvOlQY%i0ce>NYN>+|v~heH`VtOP%v4vSpH-=7Htud~YxBFkwBn#f zzX=z|r0?bNjjyU7v_Z%7^dvm9pgc_!&$k3?I>6-aO?6;P42%=bUT^^gH*Mcf*F)iy z9jd3?d@vO0!oMtJ7iWiz7+9FM^QCQ^`>iRBB{vV31_cgz1~hH9$@qP91zH6i+tksh z_9v<%od0kc+mBHtoGnMktY)4Dcvu^BeV3ysS!)=EiorMcs$qL5ffoUk5 zok|Z|5KZ|5QjWpcKcF-r&XqimL&#=-n_TJoK}a%)a9HaBI}v$xYdC2NbZ&<+G&sung_j^W z#d5H$S*tKCy;ZyuFR8K7w!Iz{^SNiTWmWeiNJYc8us77_Vk;9le`|$6xb$H9x#48` z`6`Lq#%pg;i+8U|E0_)7tdE({)0|h($qL%w>X4(=ED#m>?;CxTpPE4V5y)X-WDIxyIAw>A z=#plg%eK2($3ozxe3c9w>_rKGk z{y>d0V8fy%RT$CnE;~XI5qY@_nl3gIMpIc`%b~;>fVWxW{neN!&T_(23?)*FPR8bJ zU+x*drM6m=w!~Em{+(Lr?cQWNHG(W&7F=<=)o>Rwi(xX(_6Em$pvGJgt*G z-ZchAV^P+e&SqRbRn4}hzfS;EMtWh5<=#YN3VjNaQ)^^=kb9jBa#zI0EoJ+OopVtA zsdN?3-*h913k9YTzo&Ws!LK~~#M?x8+)^-6DA0^xMcY$Fu4CT+zp~ zrMcztB5N%%z>^$=h{v3Ja~}r;o_h0}Z*w-OI@{^qw_m%UYIbKPeaiTh48PIDvNkUbIXPsvQgVUw3uv99BDwG{L-?H;hgnz}P-Vd05cuVz znNA8EW5delgUWNx?@Xu^M3bg=1+-K571?odflic7?XseR7g8>9wAAz>9yRn4&f{(^ zbl|)GyH0Vdv7U#?;d=^tg!)oZIbOx+nHA=B zYOW8BRA}FM^C-8Aog#y#B6b4eXV2bvPk1-u*_As+|6M>;gze6p6} zG*)?YDTvE>TEi2EwQcYk&(MdW-(kKMo$07YiyE*HM=WPPd%OZYnluVSdVBbz{nyoL zoH1V#qAukZ+b;-GUu|!^8Jkf;HqMyq<`eIP=t+lm*SQ8I?1PC}`%B}0W2hU?J?(25;0eOnthAVi~qe&7Y{vH$h$$VVzc6&Ke3h39J zcxr(#T($?}?`>Gq0lnKGicz_yqWy{g>U=RZqR@gX*d1IA;AGg-hLr?m6-(qh*oym@ z&6P;~8syXzg*C@wdb zibIO~NbT4({(`*N10i2(w@(L%u%l-*CyS(JWc~~@JQpNQ!QV0H6O0`k8M-4j{>3ys zSOooY?fJ!Z{w_IviO1U5bF$YL1<95r>Inayj1$7)a|ivoI$(L45b4}19~Tw(Mdi}RS&we&y#z`Idb#Z5^2Z?!bn?2?YkK+pKB@NF z!9-YbfcSas)Nr>Q{6kkWO|5TfSn_JK4-UR`NO-~5*u%2SMWf}Y3~FTe2x^*|#s3?I z>0r?-i)CvOK$kJ^t6|7jDj583xMegUwhLRSAvn+vMMp^iJfkH9~KpOk)ZU<{W7@~t&sRYRW6 zZIgg6WIA(0d*mj370b3IYU%ILr#C%ZJzj$hw0jbNT`Am%w!MsL!I42Ha0A-TNUVg! zN;jB0POXe)ke9|}>h1aG{%>wr?d#$1_UFfm-)=95zdJbg14jUvR0Xt_JiEP*)%w>K znlGKtM(l~=#Q#j(;%S<98f3g3$pPPn7;q|1>t`mdTtRFf^0*`1$haI2gCAdR&stjd zYA^7@X&|kqxaZFk->V_E%({E%KFroJler*aR8kF{E{ixwf?wX%BKYAIJ-}G(*2mcz!kjq_J2{?vm?AQDC{mQEe?7vT3B`T_uDp-j)QN}=&@!0U}R3>c;iT2WU?GL%a z380?c(yYSqu9o#dJ%^r=aE~Rt_{?x1tgx372@_II?lTMWX^)Zbr|bR6p-S`HOaLm(PGGWISZxVI2Fn`ins%FgyfHzZV=qK3sa|PWkW}^K#~J!h~ls z1#9`Ba%A;w|7giT<-9z0?0a@aE$JAW$7T%NvQc-eZ{et73uI3`&Q=>k9|ystrHl#PfQ1%cq}2Ws{#0&KH zy*Bw-)4}4rm|WD@^W5R$a`~R?YWcRt_swWuDv%h0DheP$B5~M^AZX}8pTyp`8eV|q z@Nf<8&659mWxh3|yJ>T_HPdDA)E8NQ*&oyPtj7(ozR_ky(y+=D2-*-d$Z_h+Xgh#% zy%jjsj*poLkx^qW7pv;7XoE#Qk6u;KA6(t7*?5taWA}ybU;`1jZtTzpFGu#d0ko6W z)nKU&Gyj{d>7rdhgrKXo?7uMVPVGFtghB8@bv}uSG2n?*d058xRBpkGSj+eLYz2d8V*t z+o>8+HQ-Dx)8H-WP9L~iC&QsBL$pw=xXz6{xXWqU#fPEPeN!XM^&lycRhw&jc5ISRDwS^F18o_gnuQdAchXKZp zDnISKHK+TCIz1Hw=;v%&6n3Dun{W$I+uDu1LrLfj^(^N2Eh7n z%S8zsTYuR(ziv!?ulhP%v-YsvkC*!u=Wh~$lJoF(ir3A5j{T9M4VfL=pE`@GP#V(v z7B$9Xrse4fL;sj#_U(KH4J9T$XFOQPr6@WLG*Bd!VDcPK0fTY6GS&*z2(4u8dFAr< z@j0B(v+uss)iPiTCkCoy^Ofw|%$`m5v&lI>?&R6?4z; z*W-Ybuqr$qI`1RxMLVS-{ko(dMz0b;yTFeunYv@cV{crR{}i%R_6mt?F`mPRQ5@K)l9q+Awq4SV3!G#xzcN5eZNhi?uQOny8PADz=!cW-Aw7C;vJHO z%K=xmHA92f$z7pWUaEHP^(>uQ1HHPYQWCE4$Rh&5Yy!~}6;X8H$;###Kfy`%%42kz z!E^IjpenypvX-q|ip_tRVzbx1NHw3imP)jbV8g6j9X4tf`H_z|7m(@db zh@NoXgXS3xt*g5muu;I+#-rsYpNOSa3$nX}PH+0T{ipF@6ES3Db;-|KxUOX%I|D4M zK4jc0zK8CQR?5 z2`P*w5*h_~V4@$NwGh>4SNkqUECicYak|d_#Y*XV%MWDq;W#d+ynXNajU0jt58|kx z%;z;#*btUKdG|&4Zy?3&a2K2 z;^XAuV+XPT0DJ&IZkTT4|0iJQVD`;DPxsIx=w1MzWy{#SreP+1Nt!1RALxPG%U ocX2hbbNoLtylepAe@dV-oIL+4vvI8D50!zDmHaAED`p)0KXwKmQUCw| literal 0 HcmV?d00001 diff --git a/assets/1x/j_bloodstone_sandbox.png b/assets/1x/j_bloodstone_sandbox.png new file mode 100644 index 0000000000000000000000000000000000000000..78ac20a2cca0b2b2dffd82231824e585dd0189a7 GIT binary patch literal 7034 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 CdeO`P literal 0 HcmV?d00001 diff --git a/assets/1x/j_cloud_9_sandbox.png b/assets/1x/j_cloud_9_sandbox.png new file mode 100644 index 0000000000000000000000000000000000000000..33cb0fdfff919ac0b9c971d732d7686c556928c6 GIT binary patch literal 8693 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 B>oouX literal 0 HcmV?d00001 diff --git a/assets/1x/j_conjoined_joker.png b/assets/1x/j_conjoined_joker.png new file mode 100644 index 0000000000000000000000000000000000000000..fac612eaacd2a85cb33b0fbdce823e29fd5b10fb GIT binary patch literal 2922 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 U007cclK=n!07*qoM6N<$f`Ck4iU0rr literal 0 HcmV?d00001 diff --git a/assets/1x/j_constellation_sandbox.png b/assets/1x/j_constellation_sandbox.png new file mode 100644 index 0000000000000000000000000000000000000000..61438dcccd78af2a78ae5f0643047cdf0b67fb11 GIT binary patch literal 10737 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 KmaGMthWrotN$W2F literal 0 HcmV?d00001 diff --git a/assets/1x/j_copycat.png b/assets/1x/j_copycat.png new file mode 100644 index 0000000000000000000000000000000000000000..f5a1bac1fd2b9abde8e31f83fdc5ab2a5f17fabd GIT binary patch literal 6721 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 LtfN$?U=#U25Q**y literal 0 HcmV?d00001 diff --git a/assets/1x/j_hit_the_road_sandbox.png b/assets/1x/j_hit_the_road_sandbox.png new file mode 100644 index 0000000000000000000000000000000000000000..9cbee58382a9531dcc2f863a8833fa3adf158edd GIT binary patch literal 11985 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 ON>Nr#rdrA@?0*2U#xGm| literal 0 HcmV?d00001 diff --git a/assets/1x/j_idol_sandbox_bw.png b/assets/1x/j_idol_sandbox_bw.png new file mode 100644 index 0000000000000000000000000000000000000000..6f6fdb91b9ebab6bdfd145b4847368b782ef098a GIT binary patch literal 2721 zcmZ9Nc{CIZ7se;l#2ZmWMH1PHW=6c3Gj!PT>0Dx0RTLW>d@Z&Wxw*Hur>d&j)6>)3+-zWAATKZf_3KwAliAqVI5|0~rl!`>(P3(0 z($&>9Ha6DK(9qn{Vr^}0YHA9H!!t569zA-bq@+|{UjE_3hvntvyu7@utgQ6(^oI{0 z1_T87`1q8Rl!S(c>gnmVw6ys7`Dtiq7#kZ`R#tj=c$Afu4Gaw6yuC>zQht6ul}Zf@ z3$wJe3=9km2?+@f4)*o+B^MNQcXvBFI$|&wCnqN&k@)P{GaDNlPft&KdwVn*T~SeC zXlU5h)@EmCS6W*7`SWKonOs#>gtL_A}t<0di?mYi;IhynVExw0~U+*^73+a zcCM(b%*@Q3otiGEh;^Ja*a`MvBQhG*4eSLjYR8(qe>fzyGUtb@C z!FcfCK~hpuN=k~hwl;x4Xlibbj*bow4}bOQm94Gqix)4RKY#A+?Hv>pq^_p6ySqCy zG(@MVewNMlppw&x(Pjh)#gv7g~f!PofEGB;2y*v;Wg3-aZreKaiNlS77|*9QH7KJ7W6_t z5JSljjx1;vH$|yd&P}CkE)Wwor}9O3+&BP`f#I1MX#Lp{ncetW&ihJn?K~)!M$CMW z*>axGiN+!PW>IA~PpiZr)2d<-1iyV4OJ9u_W9Rc=3Dx;#X98?!L~dgG+D}5pScCyF z%7`h7;?S(N;b6o1XykRUlNiM0N1*mTy4;^l6NoNv7pZM+f|?!R*wE}IJH158`Vp85 zooKFf#lN}`EHXL!xgC~d!NX%S^zfCPPFkn>IOu8iscMu}J4tv{ki8`*}pd|};94x3L zASu?vZK;zW=;Ck%g*B(84HDKwr)_0^Ngzt5F2TfPR|_Sz%vWlar+%Z7dY#uBhanXpA9 zZEu+&JIbG?1hDb0ztdjeX1fr)kDi~1lQqW2w*i}^K1+5`7H2$&nHw#&)yF8%RG3GkbTu$3?G_ zq>v$=v|%_ZqHUqpzIl2-EGv;~a@Gf<8nnLywHY_>*$4B)Y%f0w%pK;BQjMkm8k9|Xm**m~ z@Koz0^~EJd@9;_n2< z@<1r}jsXX+Zz{h`wc5!~{img7JA|00#y;wl@K302kSQ10R|G+^Q|a^4ywi!b7rGjz9$!~G}$%bda7Rkr1ri4t_zin%>Kr`v7C={>FAIb%z<>F>I{D|b{f z#kd!6=&CfWosZO$%Ke-KbXc~ai6y9`;tG>z0{GB+Sd^0 z1a$nvd@uhnO8z@R$SwamK$m-c)ee|TyGGFTNym!8`OM;itiH+yA(9^~$3PZp9~bKT z8y^=jFMa!6v3&euv5U8|Rx^!SPzB{dCZ{+baKfS-#1UrCZ#vlce!?m6Wc09{QaL(5 zn7IEiHLE?OI8cG~?j0(C$$6=j^n#iCQWFjUJqrL1@{b}|TmK$d+4)VxO7gXKg3e%9 zHKeQa4dn+`_~;_-{eSAd1aB=P?dZg)O8nx1o{UdIt1YBNwy2T63s?F>`Rz&P(vPbQ zNx}E_h3S;Vfc80uwG~C)+5`P>iB=5cbkV~Bce6;JU2bL@x#(Ojs-~_6TJ(k}`)+3- zst7vK*P8t2RMBOj%hS)k1?>sU>5tSt&_2et9AI~D*01d*2kDawH5O(1em2nZ?% zx&Z<~K_EK)%)$Qw7*|_Id!K&+pxaP+#eaY_${hI^ko?~UtRu$G6N|#Q{fmKsq2Sy9 VFt530dX5=@j;4V|iJEore*ma@KRy5e literal 0 HcmV?d00001 diff --git a/assets/1x/j_idol_sandbox_color.png b/assets/1x/j_idol_sandbox_color.png new file mode 100644 index 0000000000000000000000000000000000000000..f70996ca0da321865203ee5b2ced7b37d7f737ca GIT binary patch literal 5167 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 G^uGYCNX-8L literal 0 HcmV?d00001 diff --git a/assets/1x/j_juggler_sandbox.png b/assets/1x/j_juggler_sandbox.png new file mode 100644 index 0000000000000000000000000000000000000000..70607ae7deb0ea08a15cc23422ef308fe8aa4f3d GIT binary patch literal 8537 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
      4ZO3NO976qBz z9U{vsf<2A6u6@XW{-Z|O`jA!DzTLMjHkBZ=V2@L8YC#q^FR4COBEr^9s``2(Ab%n8 z;D7AJb`=^?Qq%v000hUSV?A0O#mtY c000O800000007cclK=n!07*qoM6N<$g48lgQ~&?~ literal 0 HcmV?d00001 diff --git a/assets/1x/j_ride_the_bus_sandbox.png b/assets/1x/j_ride_the_bus_sandbox.png new file mode 100644 index 0000000000000000000000000000000000000000..169f506102f8fa192e764308d11f540bcac1f4fd GIT binary patch literal 1744 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 t!1wOD%F=!{|A2x0Qmp_ literal 0 HcmV?d00001 diff --git a/assets/1x/j_satellite_sandbox.png b/assets/1x/j_satellite_sandbox.png new file mode 100644 index 0000000000000000000000000000000000000000..847b12391b909545e40961f8fcc59efc361fefe1 GIT binary patch literal 7153 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 R4|rezW%-wKH8K_<{{su7Vxs^6 literal 0 HcmV?d00001 diff --git a/assets/1x/j_skip_off.png b/assets/1x/j_skip_off.png new file mode 100644 index 0000000000000000000000000000000000000000..2f2dd8d0f51723c45dc2e323816582c248a78b8a GIT binary patch literal 1796 zcmV+f2mAPmP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D27gIJK~#8N?V3Gq zEL9MN{SccVcpHEXK!5}RYal^#4go2`5(p$CQUb^=k+1+_kO*J{umJ*AKx}m8^|6j? zs_w1ZUAJe<_>-=te`frAzd2QX-TkhfiFvWSKJd%$f8H;f7svbWy!FV(!w#jq_x78I z{Y&K6KmIzrQqpUOy@g8_1MK_{hL9RPasByc%hu&^_szG<)~f^|J&%$DM#bFSyn7fP z(eZP{oA;5NQLb-)JG^=#c%9@cP2>9u{+hxzkJKy^ZIcmsJ&!MDNPf`i9gv^9<3>)$&Oo-wgJ6Bre_xkd> z8k-J^(F6f6ML&G`^|BT7@mF6gTRAw{OzHIcQdm~Dj51}FMWwVRpM9StE6Db&;j-cf zD!^npVNA9+VSSH&wns*a730xt$W}}*HLWJBQWWnq+Ozar^fMw_W#fsl$w^CjyhUgLucXY>{C} zt#fe9_Mi-VG)PtDcwcptN7Ne`=8LR3j89mDG1dcF!<*ZOl>k5VU;5-At6>@qJs8kE|zS->MHbdrT zdA~#0b5sDfXC?~2ypFwz{>`C=97*C8g<}hh_}+N`W=al9jKe}16<3v6V!V>cFtpBz zN~`ixTMcEe5md6yVS2Wd)XZ{HLEeZMlH-*YQ={c|jzEw%KqM%XqY|QiLnvg682+Mr z(-O3K5$Kf?CCymvTGlQOJs5!1i$G5vWI&RaoS7@(+494(QVDvcveGC9^cphG+mS(^ zYpun$2JYMWC_@doRdU&WgZJs^!3TS5o?&HZ&1v{*WyyZ~WHd2VQljLyNXgOod8XH- zX0)WXmX(qfl#)|XPC$iZ1+k2LnT~?V`W<*iQNOG#kN+F?~Z1hH;Jc{Yb zWWQlqZS6m!bDDZ5aP}R)(f3DkY*nQHBf%DCFVet>oE}{{SO5O}>Q%6D);_Q%>a!E# z(JHAZIY&JQlhvVU?em<9svz?ebPEun)zPYy+&X8G0#ullx0RVP6ZT`l}j-d5B*vt%4$>$*j3Jm7(yWxVuK-zMV2-*?cx;y&>=A2L!XxkZXvyF)E9WFVCqnP(oC9Yg=iJ1Av>ZI8 zw4(}$nRTmT3tc%Bfk(G?R0-NcjO{C453;0^0}=lRte}<{(3Hc(C`^)f?kNBv96g2_ zGRufkC}}I`Ic&(fJp-ghM~hU?@qnPJOjv096)DqOZO^V5@9PVRm6;r)>9=+m0 zP%k;%6|xmUSv*!DYAY1e6XYdF;rXEzGKBz$P%)=Qg-}oxT{)fzY;*sVsqvChDJYd3 z6{J$mO$_k_X@9|Xuit?5rJOQOEv1U`bTF0000Nn{1`)dPG&T=yTp`v3p`*totsckURwB-(8Gzh}>$2PKRCo)0WJv*K@M_^Q4u zK(#m24ME28mIV0)1J%O;gY65YHlPG&fk$L90|Vb-5N14{zaj-_`7}=#$B+p3t24Xv z4lD35Z2o@h>Hq!Z34H1;Dbi-st_5fI9$YRauxd)`+~x`~`HE>zPr92u6_2%kbaGZY zzmgC?r*`AK>HD2sA2Hgf{agF|s(Zt8UB|LH=MMM9IZ96OxoOZpv7xkVq1?I2QyI=z zH@&f#+dkLkz#HYBWe-uL+@VtKO06Z;`DeaLa7Ltyzj|mB$@!s1?L^<@${Qz@ee4e; zpvm14N;&@0=FJn%kT;1-_L@Jd>S0;4nfq(OyfrKp?>IL-E|DwyB-15w>Fr*_>&Yq! zb7NPue@;<7@Oi3&wcqnZb^irP{K{x@#;@z0K5m$->+>#Q2a1U{6WagFf8F~fbEcL1 zqHKQSC4P2Wau16A`?9;_S6HypubD=6uWqucUb0*)*ZCqn>)olz?AfbJkJqWSUfTW5 zpz(a|>VtOWKX?DwCv>9v>FVdQ&MBb@08)e#DF6Tf literal 0 HcmV?d00001 diff --git a/assets/1x/j_square_sandbox.png b/assets/1x/j_square_sandbox.png new file mode 100644 index 0000000000000000000000000000000000000000..1352ac5488844b19073664bdf565a7665818ba77 GIT binary patch literal 4232 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 O1E?u$D^)8XqW%knm{%(R literal 0 HcmV?d00001 diff --git a/assets/1x/j_taxes.png b/assets/1x/j_taxes.png new file mode 100644 index 0000000000000000000000000000000000000000..69beb6a119bfcb6708b93f60d4be5fd076bc2e7a GIT binary patch literal 7041 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 F{TFCo7{LGl literal 0 HcmV?d00001 diff --git a/assets/1x/j_vampire_sandbox.png b/assets/1x/j_vampire_sandbox.png new file mode 100644 index 0000000000000000000000000000000000000000..72f245d641001c95a0b8b240c45d1dd5c5a458af GIT binary patch literal 7104 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 Y9?}2C_+)<=LSg_a3Q+kfIg{Z30x`>(Gynhq literal 0 HcmV?d00001 diff --git a/assets/1x/modicon.png b/assets/1x/modicon.png new file mode 100644 index 0000000000000000000000000000000000000000..4e6e73bba650c033b356a7b330e9055775d75076 GIT binary patch literal 470 zcmV;{0V)28P)1j<9NQ)}9W@YOpiqvdD=L5QZ_3mPr zuQdoruYuMDM8n9QiAKElx=|={T&>>g`P_@0oYzI8hhA;r+v_zu-0#EJnk^5Wkc=vkEnE{Behfi5<3K~~K_O6>CJ=O2pm79ig4FEEyo;a%P(l>eARvhE z)`Ye4svsT=^4zdChL@)yCW`Q4x^a7gSP=gY!WPkYX7op+oUYS2x8lM-Sjc>dCah8cN$i8NfXyNSj4@2r$GD?M$&;S4c M07*qoM6N<$f(nYqwg3PC literal 0 HcmV?d00001 diff --git a/assets/1x/player_blind_row.png b/assets/1x/player_blind_row.png new file mode 100644 index 0000000000000000000000000000000000000000..f29bfc3a30bf75b734cf328a9d18ca7eb4da2b1c GIT binary patch literal 1570 zcmV+-2Hp9IP)00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj55>QN3MaN)ZwJj}W85xUFQHdfV00024b_qKG000Jb zQchF<|NsC00JFcOzW@LL32;bRa{vGi!Tl8#xR_ zCzkd9zr1L4^8in;E3S-WcFDs7PXJQxQ7FmR^XTX;)L8j)X))9xq7D)D?}&P7!9T8! zN;*W;ixGe}g#Rq7?1^oapCQVe@edOzZC5%()Qt#Z)&#OVNDM8)Di1@}#0QD*clvWg zo@D@XNP(VpLGeXr9WBs8h5o|%y55cehMQjatPB+33svwCWIM47XEY1t2`b) zUXL_U*p&KU0Ot_9h8N~xr+Z>p<(q`Ab-<))o8%B#HzF!0kBQpJ^D4=}*OiXL3Y*l2 zoP7EHfXWJ+M1(%}gz4`Qes#k3eQ;@>vmC;QI}-L-6ZlWLIC)m3I2pGFrvg$R*~!RZ zm+C|zDC#&i7~<~hqx=@%!+U~aZmY1RdD+CfkrigW7S8x9mv~@u4aV@eW2!=@YSAh zeTl$>i{T4*ljIQhB8Y4Vdtg)PIsy|I&rb{~VLBEk!mVjflRM4H{&}3OGZFd#z9xLZ z?G?evmk2z#ux(9Dd0rz(uAn3 zjF826O$td4@nVD!8>R#i8}a8AASx%bN=kzJ!43sx)8gboAAU|QPM&pIoIE4iKC;Hd z_59QvLKM;x`g|VZ)d_cjfR>;`%yj<7&Qv?OA`C$e^Lub|-v{o9+R2knD<@Bg|NF0v zRwkq=)g(E@>k%^DijeCJpv96(6$19coZspCPfrM^P6R_@d# z>2!#wyAjEBy)q%!VX9HeRb)$NHKUq7urDHkqfYsBU3)9H+7njA4k3ks)hTUwr-yiH zf__;NbRA+i9gM2bmONd6P|~gso-UlIoZNNlMD65`aB0Jxye3ekwz9%5Z8eQ3=+f39 zByHV|km(e3ai?d<+?M$}&1Fw^sI;#GO6iRVpi&NX3LChj=-n za&kLML~%0Vj;NfRXAMDNUqt@kZqTU{@Usml-V`af89EW&&B7C0Q5oW0PdGd&epC|iax$A>Z=hZW=JKYnwIY=BU zLx%|8@r{Tpe8)G=K|(Lh!#?z>1+UI8JKYn0bC95wpPzsleO5UR@!mvoXi-PdpdO

      sqJAMk6H*hRcCrFltimL8vI1G5k3E58naEad z3?FX>>JU-Cj-Ux$Gom(eZ1U$GQ%!8XMd!ngQ zTiIm681Hn5s6#~kJEF1j(a~$_`TP%x9qbqy7&f~A000hUSV?A0O#mtY000O800000 U007cclK=n!07*qoM6N<$f~%#$kpKVy literal 0 HcmV?d00001 diff --git a/assets/1x/release_jokers.png b/assets/1x/release_jokers.png new file mode 100644 index 0000000000000000000000000000000000000000..19ce3a6d9edfc499e2993b1c0bbf1e4a04603150 GIT binary patch literal 589298 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 -_mpX}=qJHVM1+Wp-{3n2*k`FujXQ71L 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 z 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

      y?QB^t*_Vui5yb;{~KerB5hMbS{uJ#wo(_x9*z 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

      )7-HT?U|LN{LxwZmzLY=izr}^=gSoMlLl=8+ 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

      HGLJ@Wevh2%8MEw5zdFhLxbW2n^u0Utyj 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 literal 0 HcmV?d00001 diff --git a/assets/1x/standard_giga.png b/assets/1x/standard_giga.png new file mode 100644 index 0000000000000000000000000000000000000000..fda44c8a051370834e51fedec6e57c2da3c7d2db GIT binary patch literal 3984 zcmV;B4{z{^P)vZbn@swZPRI9TGQs)q!XvHNlhCQ zA4wC<%e-bfwKGk8;#*WeMV^}aBnSdx5P=W)Kw&%Q-aWhbyWj5K{a|4}I@y1A?>*<9 zd(ZElb9VVYSfb#E!3fww27V@Ptt?O6^?e>j|vSpxzQxFCef`@R>`P;|% zA_k5Oo7x?QQ=@5GI1z(z6?M1kF@dA@;S{n=+ zG?-ocd@<~tm^eJdk9lMpco?5A)k=8?tpygq9X&mA17DWyk2se71A}8E+;QUcLrZYcsbN9lu7oc-+ z*zS~U2-%tT>b*u^^x*U!CC@8qg7!;?VcLrwgwyaDXuT${WKKuLj|p*JYd&lA^(6VB zO-tFjQ-5opQp{&nqPCW8Wch?3L;yXtedYL@z@z2}q`jm$`mco3a&n~>7007S3kZ=C zH^yl9BzbH0V#q54h`u%jQXlVRuUrG)ph;fBS*=CKje^$VzXzpKPe>y<&GWv~Bj?E+ zWnd^3c;u|sqW;g|qa&yQmj?fwhWg2q(+zv7@tu+9m-D%&zuKnsU8%s}e8=H5 zNpR$Q`OzHnXDv}SaWen8%T7+Z6GocLDX;*DdZZ&pEse*`5XaHHqMYE&SlUf+R8Gqf z)Bk)`?t;Cq@Q*Rv908}NU=0c9{ zc{!GcvLvT|DQvKe2o^>XCyRk`zc#XOd?;D z(}JuPNsf@r3Xat{TZbz%naP54dL6NWKVd`^Tl3Y*Ovpd4f$v8t;31rMwW#=!&{Fu8 zuv5IgOkc*MWzQdZbl4qOaC7yVWH%-pTR0CoTX3#DXdUAGw5ACoqKysBE9K8Q>5HV75 zE{3yNYi~LSEhjcWZZH@+ zhSPj>1)H1hRx_8IU(fA)jz^GHpRr&IeJ7cnE$XK^#}AK&*dg>_szM14`!kKTHuy#Jn;fQ@KJ@kHYoYl3JEm<#l3ja(A*AqKb2b698yhr*B;Ly}A zfOBRuyZ_aFbHA}RoX85$tiN$MJO1GQTWoSLS8__Wg%09Dn?h}Zg6p9}+&B>+)*L)$ zFKN>eBiOEBSNI+!akq-<1kZaO4_tME{9h?ibqxj2u>tA;-{$N|%6& zz-Vp*rq^(qC~`JDX!u!lo<|2hgUAnmcdck(vh7Ryv$Ncm$Dv%-6~~Kn*x45K#W}_P zTZa0eu!={{ycLbgz)&inp{7%M%{iujhHUY(3tQ0J910!Vf7d^#58LuVV`N>?23?Ex zo%H2(FhKg;F+-D?xmhoGRCE0KYqjXU!=UzG4+2HZUGM18vA93bwc*fW6M`t)uJ>b~ zc+D0s*paUdIQpC_eXF(6e3~x`ViP99tQWn4lebQb?mHCrzQZ2^XRoX`0w812fS@)C zuus$@9a&dw%hy)p$u`b!r?0Yes-_)&Jbn_~_0m3N)+iNlLH@jT+NH*JIQG?&5HMnz z5Hz=N#IY);MB5Psr}5+#t){vRioaX}b5`-F+4eM#j^wFnkekInKapi(8?SMU+(&?9 znQYIkEtMS>ITI$qY_B4x@#IzkPMr>CAUoeO#0Nzc{LVFJl_{fZF*>$AJupbeZj7v_ zvSkA1YqDAg+QdWS9|^(y)qZ8xC>799hbw%qnJIQ+TPdpI@!{J9Y&b9F#l1wdk-n`>O8l^!`uw%yorV~0ig1s>&|MozoG z0-B087*DBl*YN1s`lJ~>VxOC924_v3VS~nW)~=PETZY6y?-6%EL7AVed-f}Pm06=y zKtuJpA8EdRLtyt?Jgw%v%faBW$49nD^dg9x;z!!_Md+9-@=tLJ2_1)HFDv-||t8?UvGm zhN?IoWq6=m?nfK4ExS2rZ5+<+T>}U2R&D+Y*!TY8piB@yL`O$x0pwUDwhJk8{^U{3 zY5eatb}PU5Gh~bsF*kogT`T8Zo zh0h;mI}xX+R6s~0>=W-ssF##z{#H85NuTPLs3Xd)Y~dY>##_lLL~u^K_2KxU>Ne;- zO<=o8J?KN0FOR|kcu2&cG;7wY+IFR}Bc$F61Pqy!F#7JNki6cP1A z9g?H2s6)0=^xvkC3S{5i)%IG=_Arv^4XHVEdgEB>J^;h8SFXd!g^kFSelH!ojFX` z#)3brVSO8aB}9!5QPvUlLI8ePW7wc4W}44{tm`Zgbd5BY*2f~L1ZxgY|9d~WtPBjL z0*f3SPSvN62ymtv*LXpWFZ`$mzWHV7PFm^6x`C1`D6Zna6)(!n=*eO-D;?5LO5ndu zA2&L9eH=~}6kjAbwMyTW3f&Dyb{^XZn@3iJ!oix;a8#^0SwXua?m9YzJ1FiR%CRlq z?!~AO^+O&DBzsnN$QDJ3)%;X*?taaqnsYg4z2@tm097A9%0qSx581$3zLV5P?MRkm zTJ;)s8_a)gr!s4l3h4Od?Dd*&KmuIevnHs{$Z&#$7VsiLPLVTznMZJHv)5}e7I2z{ z$cfjZNdypya?jy39LvzIHe3LIu32-?aS=#QX%|-TC*=9db||w(sepzM4xTGN{Dl!1 z2!&PT77Yb)>dB)2fq2#Fpd+&4Zp3&wimp< zUFo}0q4wbCtlkvu`3kC!NnxZ$_T zk1-JGa!=qK`uO+IdhPfS=UW6gy)EEGx_seZI}thcMHyP&*Y7}meJkA9R1EPqPB8#A zpU&6`5|}hO6|P$x`ufd~Q1Y+?U&G2@tl<4o`t(pZ z(1?M{5$?#&(DE{%QHF#2jAXL?+xzI>LY9r z{edO^4dK?DDwsPt0XqDGdJ&G@>$|_$d=wtJdm?PubsX-$^X8D(hm)KZ6V7@1bQc`A|CGZDk_d+&9TL(D)67#i9fd;U+(u4E{*4R% q#}a~6q(=-v@f=Qs-HE$>IsXGV{|Qi}jOq~p0000T#} literal 0 HcmV?d00001 diff --git a/assets/1x/sticker_balanced.png b/assets/1x/sticker_balanced.png new file mode 100644 index 0000000000000000000000000000000000000000..2a86239dd51e48608f3e214eb8660727d61fc499 GIT binary patch literal 4493 zcmeHKdsGu=7EeH)Vjtq8RBF>u#YHBWyhvswAP^oo7)T*Y(TXscnZPK?#F>EvUs%+( zh*f#G?y zt>R#xlznZh);xbGv1LnfT*FsLY)8SX%JvJ#=b!sN+TydL>S$VTW(7{_PC)&E=-g&+Ci=fp9Ao6JylJ#Ec{a z(%8STRGZMSG_WxDO%A#*;BrWSv6GmGh&tE3WARt9>s7j1dA zmQJuuKrugAmUk3bXIU6ArL=-JxM>&Vq1ZBZ|r(v zaiVWO(q9oZ_xVlNPu%`-UUyl8TZ>;n$IszwUrP_o`=GP&SniQCFLYJCv${fhePx=4 zUYm9_ukB=TAy#$peWEsr_45gRu6UNN>BygoLPB*p7ZYTq?+(_!TG-luxM@N8QMb6A z9<2wXnFm)3`|4h*)+l~h=y7dnZ;7>Vhx^95rAM*L-+cDhuTkNHmQ#D$`rG%N>J09A zednAAH_w`vOK$C4*el$-uL&HKDvKjIB=G^ToZlhB51sP3N%={VHt|kRtZMXW>Vs`+Ck?D z1mTfRJBF_zIgy#nrfgbqZ`~(i5k+XlFRBc%!5%~APzmc8GId>&317DcM+k9bgm1VL z1pro(!$eMNu8l>VTCock1^2vIDi*m+xHVdFy1^)lp&3%7lqe-I6zin&<>ClmQ8+_b z&=g(VFa&tgigP&5j!LBtheP5}NN6ToDnk%N3d^N(IRq>qw!p?=PRPav@eo58I+Dd1 z%Fa==O~hkjW;&14ip4-L8i~(pHyB3YZR{`$fDfq?vrAgA!K$(eOUCOB#!(NRf^5oa zcX#z7=A6zEDUcYIVl6ak;woAbijz$^vTCrRLk4cQV7-s2|+nlaIIu2#$kCE`6t)dnz71jb=Hj3WUkELWkh0+ne@unbiqs0xN)H42Zj zrwPhZ@V~72@ezd&6+MAs!TJR*(a=n#l52;ah8}Y%*D#4huCYKdd?*DL%O?p}oB(S` zh38)Wwx((Qv7LH__gaL-KV1ltHip8ly}mmJTN?<#&vcY{RAh#YecyVB8i1 z{Dx#;>jFEWbaX2m=8NBSe#2w94!_|F0D5YXN%1>H*A!ioVqj9nQ{6R1*Q6Mjl<`z| z{om;F9ebG~ZQvh}1H3A|ewuXyuUVev#CVKYt1Z`}RKt zgkGH95bM?BKGR#KP=6qogLi4QUKeF@Ui#rH+3M3-PkCOA?2;7K+z=kZ_s(zlhk;|D zj5kAV0ou5|I~(19o>Sy3%Ks%s|4{iP+H{~>IJbO(^z0kGiQWMFKaW%Oi}?{!G3m8-FGJk(huz39=N6W?PbB$fA4P|2#of|Ub3O?A&lR`SAM+n@Pa0L z@WG00t+S1#>*11n@1fmJv~$*%i$2SGr*XsVcgvR#+<(Tj;dXxW#t&<&eGVJ6$4p*> zWW}uvHgU7nk=*7;s^6XJp{+%N@0{=Fa;D8(pY!FnhkXClb|s+uL3-nhj@4fTd~Vwl z@?8X*)PAfy?>WbLq~nuw*JgeUsV`n>b$rpYZ+G?A?@QX*TU`OW9=FtdxaU#B-Tl^& meYOm~Rqp%eE6KvEj|~bko8MT~6IoWor>&1o()}emtLWb#o_BBn literal 0 HcmV?d00001 diff --git a/assets/1x/sticker_nemesis.png b/assets/1x/sticker_nemesis.png new file mode 100644 index 0000000000000000000000000000000000000000..3a4fc015888ec109899082507d2393caec38838b GIT binary patch literal 562 zcmeAS@N?(olHy`uVBq!ia0vp^?m!&R!3HFEncjK{q*#ibJVQ8upoSx*gMoqZyr+v} zNJZS+8@_&r4FuXAHr(>w;PR%5NlcVUG4GOa0iWLiUjZ#A9ScV5Ba^&K0)M$miS)ib za?`=KN;`C|?DOOP$Aqn8kFztf2>h^aoNT$gs`CGh-`}oJUmbb;!*BWG%E02nwokSD zJ!jqC*5NU^Ja(@6l+Snd4*rbN`@L&(`*A&~3mSa~B~BfE9o_V~a_hU-Eh4-tI)a-j zckTVjx~ux$xBrWo=Bh0$Sn#2oa;%|%l^rwHz z-fDMH)73YZUD?&Y$++!-@FxBKx3?c{TUFU-wd~I#mN$;SY_24o*Iu_%%Kh+B^#ob_ zqI)Zk3AWhoYJc%fV*L)mv!*A{6&HElY`c8J#(i(UiR7HA6P7=-JllHg2y1%b7Pm`5 z2d?>+@yw5}u?)Jh;{46TREfh6m-bcjNV~1-XEW|x%(mu~ZV1=@ZDFVOp1=6vvihyp zU8_z=Ry`G)A{fYJ=w!;oq0qoUOXAPs1N`$cw-*#nJ-Qkg)qJTDo@u_m3|c@o2M~k6 RrQpdR%G1@)Wt~$(69642+F1Yq literal 0 HcmV?d00001 diff --git a/assets/1x/stickers.png b/assets/1x/stickers.png new file mode 100644 index 0000000000000000000000000000000000000000..ef1c1c63042c5d0b56b66a7619c814430530e3f8 GIT binary patch literal 4384 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 literal 0 HcmV?d00001 diff --git a/assets/1x/tag_gambling_sandbox.png b/assets/1x/tag_gambling_sandbox.png new file mode 100644 index 0000000000000000000000000000000000000000..9defb0d7780611817d30c30beba60bbf46e0c023 GIT binary patch literal 1793 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}$5JCa(|mmy zw18|51~x_^24;{FAY@>aVqgWc85qJCrQz&2Mh&PMCZHNa1|Z2G2E=LYnG7sY^))~m z1U!HkXcB}D$gD`s$xSTDFH#67%2zPfGt)CPW?*2MzydZy1gLJ)0!D=W3z*>MDJ)<{ zuz~6rj0}uStqjbqjEocvO|6VAtV|3TO5@JF07`KdctjR6FmMZlFeAgPIT8#E%o{U9 zB1$5BeXNr6bM+Ea@{>~aDsl@zCNbDlSOJ;2sU?XD6}dTi#a0!zN?;XMKsHENUr7P1 zq$Jx`DZ)2E!8yMuRl!WpK+izQj!Qv7!KNrB%__*n4XPc;vsKC{DJihh*Do(G*DE*H z%P&gTH?*|0)Hg8FH!{)%s?aU2%qvN((9J7Wh8O}f$0fBmxhS)sBr`ux0c37sQhsTP zt&$SRA~=A!vm`SOVN+f))LTFg>VstT4fPE4v1v=K$i$%yB!g2MFpS{dLb0qOu>hh8 z92gKc+JIbO6&aLToS#z)@{66hkpU3s8-hq1ume$~5#EDnjli!JSsGm{LT6}RW{I5< z)HXC>bY1>MnW?}S0lU=@ss&jLNj)f-tiXvm(j_xDHLn=tKVzUhSS7G(jKHN4NdieD zFzl^-fhjR1u_VzYu_VBuK%yo^7LV(HN#L&vrLfgQ|3KX;$YSGMbE=mQOfW;JW zCPFp^NhLNj@{2<9^Kogt4SBX2TQV@8Y4I=Ouw&&dU9fNw!=)nTLxwvTb2(T=Wlec` zp9q`@2rOt~xhG`VrF8q#xm_E-)}D`ATejDG&H4E^brQ{HS7qNjJ}1;U_<&G|@+PN- z=KcG8Q~IJleY_agFvo;2mhEY2@}|0S1HOz5p)UVP-BPeaigH96-~ZXb*C@AI`! zefOqDAvaLcd}^)V_I@@_=7(b843%4EXIV9_?AppEXmqmD;eOL4#}uUxcAwUL4PSlb z_gT)yGbOL?I6m9m&^?1AC;!mZeHJrgLbkDc9b3h+`A8aP$&~Z!Sh`M5yP?BaVy-6b zwnpZtrfiZy~9@7^Xa~e*N*^x>=g%{TF-r*X!KroPY7IltRgd zrD9LjbP{H39hhA9{65RN#l@%G?27n>zdri4Y?ZP6$!q(QXNH_ADSq+uts*;Gj3+{uvdvJ%~!QBTLJh;2NLkLcA_uvk}9sc?5t@qyl zs-{kznwH(YyU*^`t5-)VD@viG5Tn4rz@W=WOQ^!YzyhG}u1JW`CncHiAq;pRr_>l^gV!W`6@fps}>f8KRr_{(0*wrgio_-)P6>2Z|A z&dxsZ#%ovC6#Pp!n#K2AP^mjH`ry24ed{xyVr7-eh5O@NGS3fl+l+BT*?g`x_Oz%N zm{=u$2y#-#w2we8#aHD}7>5{4QQ!RFNQ(xr6P0ygc zAk%$3tNXZW=yE6cKCp~Ceb-V2%hvPK8WS{a;NXEJgQD|kpqpq@;I0H|&eU@JtU^B9jJn5jK79|o96vAv!H3D`UjeMmmtcPnS z-D}W;R|SOjN=G)`_2Q}Oz_R=y-*EdJN+~PrYMetyqtyExQxBIOy?F2Yo~Rtn90+Gn zn(q*qWI;*Ieg^ZtI{E67g1_JPCIW7GC?;h zR@zHYwI=@08$)3oN~yBY>_5_+=f0(T|07bzjI+OSLVP#%8uW!XFt{^c5q6U&IbT)| zhL{R41TL54H+#Ns^-Z1Jz~KEqX|qOe$#oa+KONuy%5VB_N798EdL(2YniD-viM#q& zl9mK?Ui}OczP%r0D#&?1vE}gf_j|m|TdeA5DC8uMpH&QLEC4+H%6X9CZf;p#+StEJ z<_QQ?dsN&h(lR<&*r#QpOM&`Pw){>1-F>QZ(fZhj9MmctF_|qHO6lyI)woJC2?Tfh z-cEh>PC-M}vUI5@=bXslm%<%d>vW5DFA>*$&~&&53HopHLgy>r*6l#3Cv)w(4S&yp z5Y|lOfTSYl$}`W@s>GTPYB_t{sXpbIed2*2c$$#k5LuBrpZp~H|On8%yd0LqSp`&vR^lWYY-Cxo7daXJ0**GYdw*EH%oB4L) zT|l|rVg3Rs&rtNn0b*%C#W1+5ZA*VrP$$6|781*B*yA2NeujUbn6usA2N&ZNLyzX6 zAng)^IPUctAl2a!GB!5sMOxP$wX^|p?KtH8Z56}SfTOx|szZFADHwuvfnK7NmA`ED z{cI4Oo14elgYU+R!81D*pgMad03DVuYaW}F;2(}@wwy@8@n@RRiY;>K#lCKhBu(BX zP7oZq=#K&`T~w6@66G`@?IF?*6!k2w8v|*$wr)A`pa`o>?4W7-AT8Pk#)7;3!Ri=7 z4*?9}>>)D$HHVf}7{HiI%Km}%!b!i11R*^A-mn#&Sh_9e*A8dr!;zz{jV)V);xFSqhJhLQ|PClT86!1#6w9^QqM&3dL)M8sAoGrCEVKFYbpe=%ZoQq!0@MW18S(d9W30l~M`HOL!z=mz&tTL>H#c$Z;q#|KV7)QjRvw zXA?=DQ%R29&p_WNmeNAj!1^;u)rW}%?{MNe)kS9JX++8nA|-XBQ6HG;gHs{I4x<#s z%v~Aaq#buxmy$9-)=;UKSC-97DrBMoDvZ>Nn%O7t@g2*SMp5v^#Jh!nu>fKb=&l=x z*x(Vw`@Kq8E9~;o!-25|^J2}*se$KkL#3!@jmxE-3ELiL6PZkXeKRM&*fvnG*XNEh z-M_=qDRa|44I^D8N-@6q@?si9f<01}7pC`X95?OdA+*1wFuX}f0PAbiwoSvRz!{ye z5mX>!SwU9P6t#Ntbd&9(#gieP<>aSCBMoGQpcWT5dxgrXnufL}$&U5n4C-KOFt_-z z6&(#HvW7XQ?Obh?4Q}m!^{y_TyGoSI7G+T1$eI<#5UB+4GvvvXG8Rm}PuQvaWz2r~ z@LOfQ96LSa&26;{FtbanPLT6Qhf(H8~;oc%Z7YDPb0cX2FHP=OIemWYcY`JhdK%A5~13Grp|V zmj`6~?B)rg-?Y_qe|3K!A1JEJxtIOJaqj6GrMKHgJLZyLhyi2D0zv*v^jNlX ztgxHf1K%r4qpK0xa$zG0D|pv^e>Ni)ejt2Tm$!Ik@~$CyIIU$OnGNCd_(U?K%|IFT z`KUJl46p5h;BvN)F7(R8`k?@7zcWh%;bu2c>3pIWZc^}mZRu61ewK;7hV6^cKbTw4 z2L>9a&!#B+U7M_95;@>2=A9TG{d5^Fs9ka?4Orjj7XRmJd-#Vvqqn`h#ggKsqvW(n z4jWElBuW)otgx-6qqIwml$VO(CVxZ`{YXuXtuy%?a!rxVt8QVTXdSAD+ql4xZ*yg1mLd*rBr8hz=`jqg))-B1{XC20(0+R`hNRy~zF=8G z+M@s@&QnfR2nBiRF&$c1w_buF@rswoqPcV0mbWG^d@frX#UoO%Kz~R8Z3n(*#cRSaW_l@S>lF4ytAD+rsQ9#&^4{jVXD@3*e&~c6A`KS$S}NmE zvqz*C&oFGY|5MtCkw)YjSkzXbx{1F;mxG|Q?^SM6CoPlxEO}Z4*_VK=JiubSwK_jt z^bAk+W~m1O(OofW;ql^NyK?vp&=xs-oA&S3>DTtl=M}4@B-cbT&+0mDFgyI?^hjp6 z!7%3lO)Nttrb8ljlGufK@uP}pO`6F^;|Ti42RPfZ^#P$;#!7a@t?lBRdgVa;h~FJr zzqBarQA2y95H%4yv?R!~ow~4BD&W!)Yrb~^(>V#M{Dh8f``tUnH7gV zSqlZfSRBPh4gZ!Jc#^fML9rr63EfFn;VS1oy4I964uTOF2d~T6uvVwe$m@Ip1 zFQ9pV6ZYaG7Qn1tEud*(1J8gRNt~+Vt4~oxjRt4qq%NV$EGCj}UV78axJ$;OjXFs2 z-OWEaNt^ZT;;{FQK#?@f@7sWGbbP&V4DZB0GuKX}MHo*}kT*S^cZ&#;C?Wh8{-z|% z<|OJr89N%bdPyV0x=BfE(rUUx!vu&o;`e`FKF;Xkm#!ql9ZEljl`mD)(2oJ9<LN9QY~#(2~R41Faj+v z=o)oeMi5M~VL+LawRPn4dB??nrCUjjAOj3N?VW$h9ulQSp#`&jB{h*vgLf(-1PYVj zMMcb*O&Rscn2>C-2B-KfWJ}S6B|n@W|9M!az?3SPn0ot7F$GV~+HUvYK$5tSqH!Je zNer&qQ&Lylqmg{uV!6$N7(1mBk;)mEm&&vbmJ>C4JR!5 z!xCK}>FJ-(9o_eT7`||mFoUqPT3S5Mqty5kZREZAbG*iW_ijNKmxm%HAC#qEif1oW z2Pyd4rHiGZl&sx;q5khjlW?<>2OgaV7_i|bA+%fMZ`b~?r{4~W7GV}y&$5#f|8O05 zcG^519_S+s$Z!>RWeMMGwl0PjLG$vzhh6_x>=w=gzpJ9IzdTsA+bJGR_zLB%WdNULFo*KBQSRTTcrCLrJGP7jeA;?qrYmY_6=p!TsiJ ztpaZK+%7dh+bfX2;I8sQi zFW6V2{a>IArS$a<-YYZJIIx+Y6dDNdwmO zTgRUpN-x$R^Y4}}J4CM>EX+)&k24o^gu5IU@P?Cet=eZ%nXtOaF9yFUunlY|*6YCkL(7O12xXWoJf5d=$fyW8b>j?LZAs6K| zuDFr7d+2sO<;U#`7oSWYLeY<>xsj~@O%_SxjVmL(7^>OCt!d(SbymO(&E#!sG$osM zxc>18rD31_@zPLd6L(c6ZjEpvNAS1z#^c@pziJm&9}WGECQw4Lz;~Ny;iqan{(Y=7 z?zn?oHe0ep@{6IIn#e`X4?$37LogF-gHm6>gH;U4p}NN9Da~9x)v0b-1g1g;gOqIZ zruH#?EdShs2z9)p{tzp}%&fcy?TgPgBYx?u&FWD0YEIq8`!m!>$G>1O1{3ScfBL`dm1#KX5_-4X#74Wo<{ z>|Q*-+oyHvf|Z4w>}0$z*cyc^V;-8G{`+vSB!LvfCP7v)KlYogi%d+`BazIs#3!Yg zf;y008VCFHtlG-Stq77jq4DmeV2-Wk$Xap{a^>>7nxl_yza;_3HksqOa8ohq6Vt2PziEEmm$9d+`$_hY1jrm*Sml^iT*6(iu z@^uaFSGX|#m#lA+Fn&)Z{={Fu8bR*SA9u#n9q)&!;v(kfH4>Nd<2 zwl!XHTYa&G@wp~{hJ|?>>+vM{{=FM;LGrXOe23ui(l_zL{@_!?z3@NHx;npLLsn4| zj?O0`l-S8x^KO+PxGaeT3nC&oj-CKsmoN%pA=Q?)M)(DQ9?J};r1n@RW~OG;F5$d$ zc23Tau3X71@a=Jmrcf5Rb*t7MIAODRp*7;%uZ=<#`LmQs9I?LPdpGM|oK z3H!O!hleD*7 zC-=`xNsu8!Jk=)gN-eR()0=gH^67dGOI8%TkX=tuO7ZU~dO=WksA7#2F8nLVM^+X| zT)seME|i~4T9>6yx9Z|UqAIqo-0zkA)YVH7s8gfz-yV}xO;FyA5~!s;1v2R~GBP-$ z!V27iJp z*=<^&lHjbm?jJV_ zEO3;u8o81L>spmfzD<9fG66lF+5F+1P4J=l9;Z0pssy-I4No$ePmHT1%f2m1sRxEG z`*LciYmL1Rzdyze`Bj$}7Q3ZYnSkSDAKoD|3L}N_lAj<TbiMP~tUSmUfJIUIvpsHE4h@Rq)o1ld{p^3RNTWqr+jV_jp-L7Tk)Eb|LsP3tr|ch07Wc`Z;-2kWk7wFuo8wzf0GZEjpw7~1cfe()#kcR#VhfI zWLRhI0)r4`8cq<0>@;`Sok6y!QMHDB6{#wy``{;CMF&x{RjiI5OLVryPi<~tlL6*Sb^k-?AN)P5C7)K8LzBS%sE-&N=By=apx-^@!ozI5_v)wB(0bg z(dnx(73^wzndx@wsBgwt$G6=xw?b7mjoodl~B5 zt8@iO+VKgx*2Ekm6Ed>H1?6_M^L;`U78$gUJD%q1O)j5D-Mx}ZtoBTv5>GP=Lj=l4 zEoL5Hd?X(gf`qfRKpk}rYrn^3VWISgxe0qK3hgql3=}*jj~D7Lt!_4R-@P)vKrN;_ zlnm(Z3`dx*E&eeT0V$#*i_nLbE|OA`e$4R~{lDbaxpS{qc*T859lcR)H|#eUH9G z@%}t?gu@E^e#d;{CALVSyrkpXw^oJ{lbB6^v?%;#F6Jb{9TigSAiM9_Yr=R;8A1U+ zAuXfCfVIIhEK_kYA$4cg%sobOI`Qc_Z^IEf`x=IE#w`So#Qg5R3__x3<*xdB9!E(e;Xz;KkD#TrsO}VN|tER+f zQlWg=_$hh;oBybJfCz~R0yqDn{^rtqO31Y{zi7DQlJoqTwdVy$LP8==e)&3H?kP+* z3#_jwwUE}@BDxFrdkC-a$A*!UlgkwJPHC{5tgo-{+ujC@gMz=tK4al&L^UJXLb~AF znj*)W^xjlz#0ftwFTbSrz<~E(Z&c`uE*{nhEb6aQH&i4r$VhXRkFOI}{I9$RR~U3z zcAxm1ebMWhA`cr$iOh+_Y!9gNl~KgLh30;=)0J!Qls^mP!O9W}wwXX*eq`!7+`pUe zB*&;p@;kfU@fFwb`5QSDF!FO$i1jFVQ*e6>6DCVDy6Tpzd12AY-hRfuMaH`eLXzCK z;H++MZ650VMc>SN5BJu>Wq4xJ_jEB}`hO~WJ7Rqwm3M#p>F8m5Q$Ed&k&}88d++faYYk^y)L?NAeS0`%X8jGX|SK1iaOpJQbYJ$fq+Y7ZR)CK;sFFxz&dJ_TK zzH9AKc~wV894(!-sdK+ZbSe;iji?a8gO_O1-D+%#RWG7iD32-r z4rc=gOs9^Nw5!g~rwRJ8rI=CAp^k%$AOv&K zaV^(icm0R_Rg`zpt}ov#n;d6eP#&9l_JJ!ODK`(#x_Tw9=ajBm#r%^RS4}K497)KR zQM0NJhymbZ>DIr=LNuG2B%h)AveHVt)v7G|&=^zsf=IUF8b1M|NM`Zfwr4%#R2Z>d zGa@f<67N^y6s!lFLPn?C$cR0+%}qQ_3~8n?9vV z!bv|pYPnC|BT;iCLX7uNpk(o^zN;=!J&Fw+5m%ojixomS*pIMvvs~)`ML~y12bPv% zmO?eyt_9N>ov0svdb$xOPh^2Yo6uRk1BcH%GCV2aYpjmGe&ON?gc?~^wyvpb-0@}5 z@gEc?*VfkqHBo+;tHn4d^tqT`1(X-Vbl!Je?9CL(+1c5(0+9z~;CM(+ZoL{;&$?NM zpD>NxP{rYjlv|s0>c5+qq5$CnlL{SQy@D1EB^~Tznr4|YER7ykZ3~8Rq2@%NDgJo>%LVi*Ev+*0z=9DQj?& z=ECKvU=L$fIBH%krJz8{%xdz=QoGNxJXv7ua`33kGK5xErZjH0kLIZc_cun4mA%I` zs8mxb8PNV0j*bxtNj`)NiVjkGzKEpS!<*8q(ATd4ycooqFpu#Ubg?AdzCLEvz7k2- zfJt+;xF`LNt2mY)Pb_<&Eqi+EagIGY#6U+Zm8VzGcItK^u>9pP+ei$pUJ3CGi zg9wedH(r8Z_7Ii+<73AA4R6ODzft3@z-WSBy48jqgM)*JS&HGD3eO`(+2Bsr;T${v zz}R?5lJ?dMeFA`E*|M2YvfCM@tvO6!7b(Bpi4>;66>ip!Z-${J@!HI6JAskWz{MO0 zCk6U@>|Vl9JRA58hlzTZckCL~ZUO2~j248)s*}ZEeSMKhP!H0_KJ%1wG*D3C+(#C_ zQ{T#zXM+hJBEbu0U4}W}HOqbE9Vpd2ed3NWKXG>JR;!#d7HPv31PB1U^eqH|Gh-~Y zi9B7J21PE3w0uQu#Z#;$5-4`Lkz~{-RkkwXf5}DMjOMLauNb*of?804=^nDuxaw4W zLE!y$-0}9K!?_R;1C0vqv>i9E(>A!<3~pS2sMUnqx74W`R}~>v zGJi34VOcTI@{z~j560-9aOfCV@Iq=WLcawi(#IOaTmp#@C~1MAjJ2P4 zB2V!=3aVOd`OCFG^`9ZGqKuWH%G@ejdht$QB>X-YN3D@^e*1LV-gJZ>9|MS?b`#3` z_6rh64=3si9F1m3|EVb92R-p%cX4rfMQvO?nmW1F*3_rGPhI`IJ)sm4fc?IBJBLpU@axo+EGSjh z1!FwN-2gc?zB7E)k!@Nx*sx18+}7*8WR>|;Rl8y(5Mq{Pq0CIqm828;_dB>l=HFHZ z58pmjk3~}rIEeCX7+~V0StWth15oVz)48WWA3m}DC94i#$IsFOLMY7$FqbglG?jlz zQd6pKilyN%!5gc6rX&r?vzG#8yV{*2DWA!MI9M+K5r|f4nmRbd>f0tISyjm-glJaG z8&whv)x{|yGtgXk-gmV5JYGd8m5?9N|Er7h&m`q2Kz%6N-rml4G128u5(h?t&8&sz z(G2uxsTfdmrvEl((1*1>n!r}^ryR=EaKaD%t13~vQtkMyn=(Bgwx%m@Y`Q%0?s|=n z!F|jePU%Kt(Do_EjMr6+D}PbEv^g4Abn9Z;fe#-{Nrlr^I~pIC7u07&4R%uLqlTqa z8C1pzYGdnPu#sNFhH#Dzb6S~(G^IRiD%Q^*O^pGa?K5LcrH^mt^_V%2`;E2LMF@rB zK5%eZvxj1f;s0!QKvy+03Hp`+-4+$X9SghGy12Ck%7>woLlVPSKvjow ziy?9X#4q^KzX+$=DCIaXk+nlLxR{yff0|ZFV1EVXqjKZrKBm;@?ImZRbFWa!(2g|q zYO_0cD)~L)-sjjf%>5}1O&8HAtOaMPCW>~Wo8T!AG?iv4Nsns{LuVCt@+3&Y5HHkN zy33G`H3g44@+4=^(f!*YB1TXED#4d;RWz|XSUHM6S$|X+(!`Clqb94md$76t-d|JgI~O*4gw-gMM$B+pli3rLujEeks@hXCk537hqD>yb-tDoNCj7=W|4ic71Jig zxQb@1o)UPamebY-m6z~^vJZwb1P3UxS6w%S$237v!gnZp%pAY>xb(-W$6r{(j+>(mL;?zag0Qyk$-+@&~K+c%2Ac9@iP?413QvXD_F6M%)VUyA@dNd?ocW)h1 zJhi$?N6Vu?izo*9qrlxipW{_@h%|DxgBj9|-nPnhp7Kp!6DWl+#x8mZiJOR{p)qzx zMhWy-Ta`s^+)xA)%^l|T8Rs#=ZeT%(DEX{qVxgBG zE)c0sO>EFM!<>>2JX46bFqwoSb?wW)-~CN#Jbo9F2{8&12~)$sVHaX^Y{su!kvziv zg3-~HM&00zjpD?Pm@L2uS>(#<}5`(jUU&m2dufZRpqP3A~Eviw9Nh&lw)2A4mRCm}iqDrB~FO-9+E8$q4jX8!C1tmTy$xc$(0*DC#kiO%P-&TBxErl5QinUFUB zDsh2MXxl;l#20t4)@KV2qx%`dm+-G;w*Qv34SH!?nOxUW`2&;x+oT`-Uzhhip6s?e zZ`K*Tu1M<^nFhPsnU$bEKnz1M$Ygh$RKOT5&B?5=R+Mc$@a$eK$s~CJTl#2N8mTg= zF(^LeJ2J;b&wIzF{7w$#vob zrAUz2b9t>xf8aPpf@Un(S_vL)*vhJ1`(;9wVVnLqv2t^h;wR7}6rEFCkI~9Ai;Www}=Gge^Ra35nF!%lop?r}+?djfpmC$QFKzz9z z%S4)ET99j2dIDVGck`5nwMTG*di^|dd>{TB&yeTJ6kUM`FEC*j$!mbKRstkGDjf{= zD2XT+mOf0_(vGf~VP|p9Fph2l%2YLFtbfXh+e>O}8)!a)L?|??OAv-IuQvQSlC+sa zHjn7%eGL-98p6_DloJa6B}rBEnU-p21vN7N(C0BfvsGrK%TiG-4p5>A7TryM9O$aK z@SN2nGd4F5-MHhXmBI9k1%_3n8qpdV4bd9dWt&z)DZ}3(yCv3&q%l-fc5I&Mh()zM zR0SkRe275G;ea(1U6Tt94BK&9V_f6LXf~A0gvPGy6Gc7n7_O5Qr7T8NH;|YtvK{-75V&10_&ba_lQGM`V``urrj{_g_ z7O3f^9NU{xBf2vzeJ&50$FccdUaACob-#kM3rJ?yv|@&WG9*z<>N!&apQ%C8O$2~_ z4%iue5Gg@@n(;-9t@TELNOA#_K67%+0x98*bBcj8j65HK=&YSh_wnO$slmbC6T#qH z{iNTm4veCYQ!{+qEx_fvOe(v+J#U(tx~S)b6X)j%Uef|3>ZKJaxdGkjWl@^S$46gVe!>2D)Ar z*L$fl4jU3J&2?RdTOy?Ld11*|$v9A8d-_k)qF@I1j5vsu!rnh8*r?8Nb8m|lfOF|H z>-$zWMBXB#ZV1|NK%SM$?HTR--kdUQ_2X&V(P8I>!3K@!j7>qDU?eshj3x=cYEnf^ zS%9V0KjrtUrgX%`fSy7M^osWS=30?oO^1aQ`ozRvo6IsSjTSSKINeGo$NOO&_jncy z(!cUO1RMfGiC|1$Hl!m1o8BD*6)QvreTSE!Rf%LA9{wbV8WTug8w*YnO`r@PF1^7V zxErxrlyFTRb2W<=7}h@6zhOPaX%5o6kxxZG4v}D9<={-C!^NTxM4^EoPty)AUCuT- zC)r1UM?W$;EPR~U9GdA9aKd%6@oWwad=4z)5frhvjEiwLNt3P>wFC zj9tt9NR6W{CFHvq4qqmM=U=gwtA*tnDyld3M0xib?}VNQNASdsm~p4SU+cEqC$?)E zS=xi(PR-FK3)K*n<>s6ol5++VFF9;Nr;>~eA-uSp^k@ez($#h+VNLS@#l5M70h8oU zu~E($|H+Di-b58^UTLg4jknB{WQRHqwTI}>80f>p`L!Y1Sf-&=Opyq%s>prH${a=N z2nV;$M2}+edtVZYV{%j5*dIF0S$o$kA}VQW@y)qLEu=FjDzD|y^L|8}M@3XS|J>Y9 zbl~-X)Ep*HQdjy{sPWPHxxJ+0zk9^VJbNEQO6-(A&0M);MbWrKg{9FYv5PU7(IY8{ z*yW1>32YOimMWz`n(g*weE>3UF2!{o!3zBw-{dR|=uG$-;vx9T36t|WEam?4-1yq{ z-XDpvsFZow^NA$JvYFM0R>y$Gwn-l@yC)LG&CK{a0*Rc8V6Ftn5PZ)ST3r_*SL=5?5qF*Q%pc+IkKTSKNZ7_=Eg5}Hrufv`(feLg! zf-xk5$|@tlc0a-Y%sA8BFQOt8zxsoikcI4 zP{P-IS49J)0mK%gNXqvJ;oIm=uvp_v8Su)QB9z!J=IC4b1!q86`-(FrLYho4`UwKr zyLBPaSHONao-XzOoa0HDXHws^$iB{Emu zbD%Q6wNC=E+N12dS(04HztK`$KYV`cn^mU&_;(AWkSR8W1}7$hKTr5< z#u*z?dDemt_hfeS(6)AE-&zqxWmLjhTEy?b(ANJ(Hp*T8;@{k_?R%f zVEDUnk@D=Dd@MIU#MXo0hb7y&0RN-#sodo*JEsOoyX41-lVi>*d5Ik#jxEeKbfu~g zC8|ra!dnp{&p%=k=fO8!Ae>~#VNKpi;&jC1Fis%-uyl~JFR;GvTWC)HauApT4WSN; zu;RG~2f?`Lr;B2+2#IKVYV!2IJ8|E;-{sxT}zoYAoRvg-N`U=bNnXy>a%M3 z^gr_Cv+eP1oM`s+hg za>BG|XOpJY{CAJyV0^ZXUixPFUww&RE(KnG{HK#&g^L$6>lFxU#|$yVA`G5NhcM+y zfNFBO1}xutwX(3ij9Ysa<@`tHNzyfle7EFs$lt>q(~eGjX?8DNa$IjKgl^8mE6Z8& z&(ks2yZ46aFSeF`x3>lQFWroQjYvyOOO8CaUO=qTlHz&e`c-o36gs8&oyT{)&XGAwq#CD?KXYr6T}&=yht2tW<2qep`?zyh5gcQ|hjLNvuR;9Z!8YeD#fhYKur^)cf( z;9E5=50`t^=VOJ@AHd_y7;_^O4PbhJszW+mfs+I^{c!10sz*0!6&4l$x*(PU6;-)j zT?s7FvJjCDXava^8o&Y4N}tYJNW{(S1(^~e>ceIUgZCxMz$ z#>=b?6xvkxze4bWoNV^G;-Gu~9iC5J)r@&E|G0XUz71ff@Yh25QIJ3#N%vhA@cKa}EICR&HTjFKR_z?w4;Y)n+sZu~kSpFw+6)uGBNT zoX|7rEX&HmF(9K1wX7nV=5*o}xs|ULZu@T(C)f)OP3$dOi%^AtP-1XBAs2~&BTDJs zyV~OL1;Hx;nsK0)wc^YywV-%{u2&h&7)zVGr#f74lEaw}uGO|OPPoMnR0{)t0!XRU^lfhg;JH0n8@>*e-};57RA2njJqW4jbg7X8oG zoPtk8lX=8M+H7KC<(WVr(HD}ncQ{G!{l2z}T_~rt>}lW!Gg%Jyq1PK>-?~ni9HxtY z^1YqK4r2=jT)At!D=35fU>*IhXBncNd(j4Uvy0L72_(@p(PpMzW(Gu)f7ZKfGEmv} zix63lEUiTN`cKyaiO0SgZFptpbia`YPFrce387Q7ALS5>wP7diGD$o#LkG_PkVZRqoMR@()BA8pi`%LvzeasaTiZi1NJq` z!+$4DNofef$N7h_-@69F*4B0WhGu4+?FmWYdWgW7H28c|Km(W%(1ok=UfFQ*i;OG%gmiGNMuj^B(}g+x@RrM8u`DhR+zk@j@FnpeYXwX$~henzdn zv7nBS52yD$kvu_c3cY|C=`OX+Ux8bV&{WB z5bDR7B67o`2-dJ+%S76w<6xiM;?_~^>iRYzkSuwSriKCihoLVmQqX99HF4tCE^^t9 zt(!))<0HkNF#Q#<5(o~9fNnQFm~);6G46fC+j;>KCBLhLoP_%t#zNB$qdb2eT*c`U zj(@)!g^Ipw)Za?p5Bc1ns_#bdiA?GF(8as|JNIJb98`g^1G*!K(jV)&j8TH_rkSpdJoi^lw5+PCAT6s)b8g53x(>u+TKc&r{U7&z zMgCK4G(J?E-&Zl_>iAk|fa%MWc*&D5Jhzh}T4M7%f_D!)DI45r`op;@ArT1Dsk~E_EN;)dp*~UmSbwF&nDS@m|fgn9q?$dZ)ipY7)`deo255NipOpB%R6HFKnAruEC z`z&qc{85_4L=yZ74vVx(`_F&2aTb&HUEipTq;w>|xDcDfib!IjBw_v8l$`Fh*4EMa zwac5A(D*x`a($3i&@MZ1*Q><)usUd@{d}tuPy+7dWeXve$E<{|8*hzyt(%o@KZn%{ zAyiXqR2Wk&V)=O0N~vg@8i@Lj#b@z zdwYbw*83sbURjGKi>DdH8i`J&VWu>wMx3$y`SSUGw3JvQBcz|&t`0#nH#Coy7@jdi z85{`}8?IOB_2}Xa>C^yLLuEZ~^ZowUEX)BT4TyG+l8YEU zMKQCNcqeLuNwRn)tuVY!u%*=X;}7%QZ=}@4}@iN~p-9%H@nqgz) zun{DFZFWPN0&FZDron`1YCzB`bwT;|)pMr;a3wOr9okt5by}*yueBfDV<`(DN{>f} ze>uE{`;Ez$k+9G$#n;w{?G+bYAzv9B+4}RtRP*$jeB?31C}S)VJLyX(Ln$B$@{BFa z0RCJD^l)_B+T!8zlm!;GLtz60d_#!XS9y@+Ml@Z%lUZY;X-iJHJBgV(4WLyJm=2Oi z92s8pOfZeK;v;&rPG|DlF9*eLImx!E?@7qcDxFBE4<9aJLw?0CC-u8R29BMBDY4l> z^4+{$SN}#26-{+P%@_QOR-9~YtU{V|iRZLaXQVUI7=#N!(>Db7D0-!NKq9=8vZtJn zHQ*?{(w=0w`SaZ+7A5LCS%M%rv_2V8%I${px`8Ak!Pf0@< zL-hw;6O%CI`a;|o+93!(gYkt}HR=~FV#Z-K{id%)eCQf$gyu#i#@U5D{2tn=z~s8W zoStw)N79WpZJkJ2Ugf3eUF&3}`|^B)9n`F`_stS|PT<*lk7J6}?3;ys7(0=!>Ii$8X^O zPOHeITKwkDwzF5dv?*jA>#FpqX=z%BjaV%8dk2y>ugo|DBL*SUXV}x!|1Ft+K>zI< zBF*~G;#HOxRDi^Eaf1+*ZwW+xQ&a(hOtsVjDbeX>>jf8`(5nHfOB=MY`q3qd+N+zQ zq%e2oz5BtQiXb{z<)8UQtJK9(7A}okl0J5S8gpeq$#~OL`r=%puHF)yvEV^0EP1+u zRZ8fm(SMczIg|PuCjOjwV66c}Ih|&h^kEw=qN1{9@9GG4y$>o(t*={mUY9;d-8yHe zYh;oDS_q{{=@EE9#PS;f?1HL^$#c`C+`xIBQMG7x67>T47AXlRREBiU zCI2x?iyJk=J#G3F2E7>IHFr8%qx5Ko01~04R9Uhs{5hijP&#KUH7?XXcCiP&gMbZJ zRIAc%3%F7#}r7sUOTt|E=9KD0BDj33PVd%~~lcn}i||DT!BGbMnYic@RIe zSF{DM6#2iYpaB&A0}y3UzATP_*&#-bHoED{5Y8as40Ayub?NE<>EW!ynu@E32onwn*MHZcFY}xoF54J$*J(|tyE{` z1Oem%0%Loj@M{ZVx#u>%tGek*-UvF4+<)(aKm#IXppnAhesm9y}e($8wF8==9eFTN`!Frq^r?b)H$xwckPEb`2*($k*wmGupj9>joGP^ z+PvX=8rph|f8_JRN0)XOpCYA&xG<~pT0PE&=aK3`fYoWO*JY!BspU!NAshx2eA%y0 z?JtrH;SYqBc%UwEn0_`w|KY6nm4K{xghUw}h0)TpdX2E|&F@hCRd_YJ%Mt-E4_oZ0}$(drB; zsG;59zf~eI2m9NsK=!6MpBb1pO;kN*A9>+t{9i;NW%p4h`=T4Mt+O@Y=~t4#J4de? z-}FP%8o83z0VD}h;-RuXd1gcr{eOI$B9W^UhY(Hd zz)BZYKtveqsSX?>%+}ky+Nc!a=g#VRgJ^-f9yCRt>6Jnpd9by2<6qH{aQQh`z1npr z12rwW&wEhox~E(GnMJ7Xo)uxI&89mW*B@~zHZnUhOzi&R+V!{1MghN{8RF13K;-=A!-Tr@4?h zsW=28D-pW(%%s_YFgKbPTE->b>fUcrey@6=thu>wdP`ElF*0YSb1x>IurcZAO!0C_P%Rk!HcC+ZdOFMy0t&Wh`;!AcacJpdu$g z@3fLlnD_9U(KZ zUZIW3d$65}ZGP7(89CwlmcXlZ@(VeS)K{^Sls8CAV=kTYV4YbxXBHQ+!e!#Pt_*U~ z4Bhw+IrSn!fEj=!Ea$Zr){#t+4&aQ~c8X2^R2cZiouj zMK%g7lA?mYxHaV?X@n{+)6oJRza-bKVNpq*8zE4@%5HZawGdT(h7WEN{aoBy0C?nA zOP>O9I>2*o-zclOG*T|E@rU}JPk`ydJ>)aGxM`;vp(a*ciKBcvP|8QFC^%SD_=_@# zn1E)=z$7HE&&85YnCWdi-&`;5dS|3f<>ZwhKOknB?O{+}FC*D{A1^3~aW%WuQhaQm zh~1a4PqZ3Ch~7gb;=?~!)gM{T=A+4OV^* z5aS7&I>2CiK(R5cjBdB_H(KSS`^#wQZl~-)sA>Pf&2Tfyr1x(!DhjiiKgD3;TsqGw zKJELu)&{Hky*qHu-YKpOw)=CUyj%CKCvrpJeA4Q{A6N3~5u*fXH?u03{x?6enrF2* zlv<5ey+lN=6#Yzug%YFg22yYgiJx(J9BpgqP~O(zeIaruEN|`iP7{UszgJClOCGMvrwd_|Dlf@-IOm6& zm2*v3#>*Am5@n!9ATIT7$=rX8PKeMvU+i|1jZLdqyS6viNy3yJqpNJmkLEtOHC+)P zsGnj|N5PGhp7y`@BHJkFEo@4jh}gTf1te^jtNGz1x)8z$R z>+QQLN^`b>ZwFpbblQ%o7CbxhT4bDd+)0|DO=TV$!kcAbaaCV6_{~2)&@u!`t}bjeVrqD^AiP((@-*Zwdse!Z`B(j_cxCtIsQ)K46qxRD*YVrEv;I~# z*QRbEfEgsIRS`=6K^Ltykr|ZPO-Ws|TEhaP*NQz3Htd13;R{^NR_}-Blod@9Uv8m= zo6m`epX-Vle6V5GsQ$7crwJh1nfDUE(g7_ftI^ zl4u^Tx#m$ll3JKB7%P6^4KRca?R_?5R&iorp*%@C$|7XuEftj$=LbMVjCD;W%uSpP z9!{AUALsCa-j6bEfl}HC%(0lHVj>Lg+Ap7ic5;KZ+6&K0{rh+Bof}cv98fC4?3l&( z>*#KDg>H0lN!50A+dO*aGcBY5>gNjbkc=xC#0Nf2IZPHej}mPgkL?+$g6>t%Z!fk6 z3{1_n)EUDU9D|0$bBsUy8VVRyk%`(-Svk36#s}6@$f_nGljd`Zd@VT|!p|w)Gtm7r zT%=%&XV|)k78smYd-K4Dtx4+D%gmWDQE2fN{Hgd;?p0_kzq#)Pg(@N6@x0Z6$yFqxf<-*ZQQHpKOT-V+*R`E zR1b{0x26!5oeDhi)VsFp>tas2xXKOi+(&Xpu8@5nGsm9{6;h>R#f}lhK}(A@I}B+Zg#wFV8G3N}%Im~HL*qKv zVjkNHaJ9&^)>zDw`meA8A~rY-_L_J3kZ^bf#F{>+R8-Nr5xYJ_aUS&;}?$EWcoQ5f8@?tmmQA@7AX?h^)HTiR`>0cjqBP@ z&YjWlcEvy@(Feu=7ICN6Ft$#*BN_AaRRECAk&2^LC zLVEXt%yoV>!EM$R5t_LAIj-?#Pj3J^7)?L#jT4LFoN9JyYo0(EybRQNn~YEE`<{nN zdF@#vfyZ-g;Yr*@H1AQ;Zm(txSxl3DA>+2F?gd*!m`0}LSjsaix5`cwZl^i&v~^h% zn>30ZXd^wHE;}Dcf=upOAtA+3)<0yd587S!Bo1iCUy`pux(f1pU8w^GdZ~u z)~Aj&kt0_=evywy4OEX=-OCWGdF0Dl&D&fUEpKyu+VIy-@?!t)w_|>v;Mx>rZila* z&whByFm{$o88kC5sdgUkK1Q9GJm0t~r4O`F>j5;yHIWv9(hMHf!UwQtXzC$t zCjtbzSCAX*n(|NOP~y`UDx%E_XaoN&m+S7t65f56=yS}5!SAqPo1f1k0^e|LFPM9% z^Fuh4^B-3EJ&%8!h|BjRL65Ef#TrE(uB+QWA|9z|RN^7NsZWbgyHSy;b$gcS)Zx9( z3$-k~xJ-_oRU@_Dj(@cay#XyehRy4BCwz5MVoS{MYE}OJ`p!i)O@&PWZ5Fc+eD2(w z{3`^oD_N5ivKqjEF;}xdm}9JIgFT_Q57( zy)^N9xA@Xog?psZ4;F-K#K)Iwy7Dd$p)6I3GcJ-)nFMv`f1B0j{Yo7MTrAN#&xz9w zO0#Gkem!D93391X7gW6SDAnw!7wMbt@bbW1+j-ov#{v_Z@A&rcLT#_%#R2I*A<{NA25qM_ zFAgFOxtR$S73;w-C!T?e^Cf9G3IMg~K0lQq=Xc=52ZHhy16CUdNo-YvooYObKa1oH z=>6c|zP8;BB>!}4H5Ig%aux;6oWT63GzT1|9;i%ajUz)|A>F_%-pz1b9?L~55KT0% zlaPYF5)oHn%W6~JJFMCBE}9N(#v(lV;n>QIk9}CmX^$^CsJDC)2IWnx#h7U6N{AS4 znq2(Bh?xDZR`mpaM3o#8({#bUO;eW}hl>>6P*aoet)onH(>d$RWd9i zU62KZqjzQ8JYk$fG7{)n-UoJU4BWN-IP-jro>qROA^L)~_AfgBe1hRy>lfI4M(eTZ zbX?xup~_3mCeSS-g4gDl=0gj5s!A}}+0L=1``x$S)cVh{Ti!}U^K?pAS@?RK-^D9^ z6@sB~?LOt*@C>3tZMu(TxKi+!glj;YmweuMm08K5{u(Z;kVd#U^pr&qqA|n@g<2=n z)}XKElmXKUTiw$bsaiyxu8!^a)0m}%zKI)T(9kO}N0eEz@BwC4Vk!HYSZj9c9i!=j z@}Y=~cK2APj)b2UBVpgO=&DUbA!=Mgp+;A!dqtqUkRnMCQ9jq=FY0WVeBY`@SrQS* z^DY9KYqR9d02)3}d^^o4W)zfWI1Nvvpr4GPrlffQyMa>Fv72AY(HS&Iwbz%Xfz1hK zP%MXy%{gmi;2KC5aw%8%uJ9To*Mt?|6Q9^^Ho0`EHSIy`Rx=jG!+d^;m@Edg8HOpa zD=X$kt;KSbYzY_)^lyh;E+(hs?P|~6bZ<%g*~-M)QbB>jh@u%JY205bCpRbfaAf%S zW{T-7mfsgG(a9kc>1t~TeoQZP5F4-k(b6|=bW{L?L(F9#&%Sthpbm^n)Aka7#k3}v zqK1BAEMEb+E#Fvpsi!4*QLAu}W+vC^QfTMXO1Es|JDd{4v9pYVhx~EoEVrS1>k)D3 z3_U-@GnHcaFzt#*fM6!^YYT-=qLwE`>;kGQ^-(@li475G^{>?ukFG)-kT0%aior%0 S-8x{-D}|1xA*@!zDds;*A;Q%F literal 0 HcmV?d00001 diff --git a/assets/2x/alt_stickers.png b/assets/2x/alt_stickers.png new file mode 100644 index 0000000000000000000000000000000000000000..afbe9ae7e4cfdd0259c6c3246388b29f07bd8031 GIT binary patch literal 3468 zcmeHKX;c$g7KRuk0g-?L$|6x&+9;r{fT&<1D6#}ft$+{>Xp2i^aZIzc2q9<>Eh;(! zimcHn7R9bcTGEiXFx{w#2u0Wewl;!+5V{RSz`(rNea`%xUvtjO8!>VDsM z->Y*_kgt(}rGbu)j*;I^pWQk-x+u7AB+LiDhr|J`Ail@XhXyCH6tWxD(V=GgZ$FNer zD)fEqr4|!1H7$*Qa=vzrd_RqEAX`?jk_yt(1{Z)(8uh3y&8*(j%~xA7{n=6w(&4?r zrBl95j?U6n#OJQp-j2JWhi42=c3EpH5-3Oh>i~JObopS!)~Nx@{){7Pk>Wth4AWa% zwN@{|kVrEV{hk0Y^VZ-(4NP;Pr#kyuGrMYD zSvaV#0z6#*iw6sR2G=Y?oveL@^6`$n$x6yDMGUBnQv<~WNO!<<7}6?W07 zkYdNkW3A{;81Y(YLX}Nw3`Y=mYgl=}$>*3EJ@aCx+;yI*=w~~t7)D{G{~K{qQe2=?nH&Mge|pAX?*50SZGS7M#l157UlBu zXWk&i0E;iNVj(KbW-z5(XZD75!ikuZ?BIF%x3V_j`n8s<1!^Ci?XuBgwb-~Bx$02f z*3Q*D-EhU-kIr?_1(o0U0I!j>5J};Y9O$A$`J_5P+*T)c$7V+h9JiHNXpJWM6_+kQ zaWZbFR=Pt3phC?dZ1(fZUfb#(-vWNmTOjVx-geYzFHo%3WmV<|iq%(v*HU}66u&0! zb3&${&AhQ}&f~u>T59D0a^3(rq1d<`Uve6Zn!`h}Pfvlik;vl|VC;SW!PxJ63-4?n z8hMyWTtg(F_RF_!g{hFuGeryG7ML@udf>$Dl(h}&KQxS{#)4u`N0xBUsD_GD!8O1#WbFPu8Ds6*N~HNiMJH#H;<{QvRi+%A{7Ph-vXZU?Scg!~@nL(Wa(`(ss~3(VlDWCVxv1w&BK zB}S*5&Wt2UKX=c{xmqMS571$()% ziGXfws9A*T2I84qIA1pRkcJJMkvraMvvaM#gY6B3X~sXqm~8Z>LPfl&52ti#!v1Ie zID9df=|R6Z>XZ_e_Nm>b6dp zygQ)eT6n!9wqE4x+Wlxxte-B8aksM0#UGM2>L*b7nQ46Vb#r8Vv=Le#xZ-O8Xe1?IFC!B1VNrp5dfxC~}SFXGqOoawV!sIrFXouq7cQ|(w66}6JT`G`- z=NC>V?^3iDk8w%~9cCmrKG~}N>pwR(GGNC5%bId)$CWc?`=6^rm)|F%PLm#GjA(O{ zovX;m?gy1GOZ6Bx1nwvRDH3g_xvJNZ zV2(Os0vtm2SwaG$e5mB~AA8ld{YmeB7xy--&St!LM@9}#HdTR*@Ufje!nR&XV+byx zWXL~q#Lm^A^zZFsF~azmo9wObVNF|hq*D$@jAlwYK!4?v+_EIv;1)1BgCb*~O3j^y zM#*fvVyGCmAaU_Bce_9H27+TvX{`91{|u4z!|IyF5K~Fh>eF+L8a-HKvWQWU+GWHm z17vh4Y|UMeLPH$>F+oMcyp$aS-f~BN+tUtlm6$cx5y6bRX~41T6J%lrqUB%CNY$om zcX?Rg31>}~=rNKlt4n^EzE~Hp8K`Rw7Wy4i#Gl@?{eoaQa!~cinLtWva^H2IY65d? zjcKllbBthej^yE-N~#|=S1CWP+<%c22(Qb^;Agh!i@;<#cMj!#byE`twfrp_k6EXL z*z*?S0@R3eQQnq`Yj2mFK9-$MIWjPsPyN%f78dr1v%|MQDpgK3-&V6#sTyw!L7cCW zYs(N7w+8PQWlJ9x^Xsz&_ z$hmsG-{6M{i$n@?a6%;^W_xi7UBn&pA7EFHh?K|WR6BGdl`40GX( literal 0 HcmV?d00001 diff --git a/assets/2x/b_heidelberg.png b/assets/2x/b_heidelberg.png new file mode 100644 index 0000000000000000000000000000000000000000..7b8d21e4247141701b31c132deea45667c724f5a GIT binary patch literal 2503 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

      5@5{CZ`sYWqxEwh@cSS0A$2C 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 literal 0 HcmV?d00001 diff --git a/assets/2x/c_asteroid.png b/assets/2x/c_asteroid.png new file mode 100644 index 0000000000000000000000000000000000000000..5968cf7cb310aba1cb838f3bc1af9f2400e67793 GIT binary patch literal 8218 zcmXY0cRXAF_r54L?|mUs zwh#cge`;$yGzrWiWV?h|j|QPG>K?K6-3}KEN{SGh?nO!skrsH|aK6#a#1!zRzO#r% zk@vPhfrnZ^>upD>SBYxB@gLOKGp^PBXr{ZZ|LOyPx{o&(m3aE@+IJA!px%SFEk#^# zK{>0aTwnFcN{)2E}Ww;6@W4(2x1`Ey!F9(!5Qy1M-AYsb|vr zVk+t!i3aky&z5T_U37XaA2~r!B}Fvx5NWqO&TqR-ol~E;%av{4fChu!FZTuU$=SYq z283sxpJE}l#PrO@doD8U2~HddkM6plzih~~s#zl(jlx8@@wGJJD$2ReEVxq?$im{F zVvfG++5O&-NemCb-s$%M7(79!jSBU=tp9`fLvXNsB{|~m=Jy%!4nGQ`S#x7i^T9O=!>Rr=0%xo|Oo?~KJfkkx) zyA^MtnbD7R7v)eJ1d0*wUbuCh5DCZ`K!*dKcg^mRM2p{i|;2S zfxinm0i}aHXQ)uSN}kBGRq{^KE|k}tUF!OPStv(%TfaiO#1`rN=1L>*S=)S{&NWP@ zwR1bht*Vtee6%SB2FA-XYj+BhZTKA5oD7QBS`zqBJVp0deJ5Z|bNZPqzf9FWF}wkoV z)H1P8!1ICs+`3kRPB1QGh_SK{atln4#10W!zj)-nfDe0kT@4FcSc3EX+f5CEs@bYO zb7b3)9qm{pi~nF(x$cN=(Sx$rElemS1g+En)=fH)n4+S*rD;ecua;T#D)s%~_kD8X zamFYqkKQR(^~n|+*=E9QP%DA%=T>#?^~@Y^CBBawcBWiBjZ5;t`JaSy4T=6r*|2qE zKwX;12+Lxn$EikN#(dT^NVb!!?j;RU$O;`fvUvgfmc)pYep=pHjk?{DAKT6FAq zJn?v#AK*|dq$}y*L_^BXkO#n@Ng8Y#&GEtU!h>Tnd7DFV`Q(HkyHu^7>lP^QB%GIL z{#%AZYwm$D^f>VOPX!I?MQ3Hw0H=juT!miU)lANBWAc4})kLqpjC7h?7*Vf(GpPF9`x?dK1B+M7|;AJ`$aK0Hkb$4B-Z5K zS=;8!ovXz0?w8keOUG;7Hc>?-d38)a@OPh+KNnxW)@bmAZl_;(iCB6|XHcRTGd*F% zS~GUJQm-7e=$f_kJzu0u;>qMAjrD_!x*=eGNb9^#ctN8_1B<;}mgVhAZsnb;w4$!M zWS+J6#7hqh|9upM+Kzf#CT&oHF}AlTkr3<1Rve3xDC^V_8A6q^%duu`23MtFR#?&e zH_A|QRT%Hcvwhd)XBWp#1vX_=CD!%5;aqc7d)*juoGece=iq=LIZxWvbD^)04xKNT z`^I_y#Sy${&OT!dJV(;CCwnR`sWjaMhCID8FIIkWBb*DCD^7gtVj+h2*)Y~Mfgujc znMRQ3E`Y$QtV*oQjB_ZnI&aIWzum;1P7_UL@ig8;7Vn)&&04Z^e!iP<$EW&FsNp%Q zOUYDP6G!k5#iWo!?tU%OtEXEBt+k zkALfMM=WW1CEiVMc7%_(3De(c-+-ZijV@jJ2M!};)Ua3R-23C{auHmr$4fuWz5RXC z=i}y{l=EwbFw3b`o%Z$kX);3C7O|7zRv1zLe)DlktplNH?pdzjjW6C}{b8wQmCvE# zO|whpwx5VcK6!RHpX1{blEWWPRSfmWecX70Tj*x<*qo%rN>36rTj%R#q~`)1hWFx< z8E!dN*UYWWwVqNxdz)I;dDax7ZPvKtnW-mJas2kCl~q-CiFM^bgjAd&zN@P%DmPvE zfgrjK62>^>c=gS{a#+Id>tUCBS~M4Q;sMao7LbkW540MTOP==VCmXxc?zYS!rAC_D z6*g@GVrch-pv|BC1HuRfKvkP1=wX+nEEi z+6RIuIP^l`-|V90Tpu{gugU-~?G8zd>I2|s_K$rNrS!_BXgu$Wi1cj8owepqTSAF! z=H(!dUcz{UjqE^$RF<1OeP%AdUx6#W?p9TC6D3+` z=G?-Bud#gnb;{f=bg5CcNazp+V)M(}YBCv9FP#6!Hv!CsOU-8{cDI_^urj9kCO0#+ zLSxS~^@g99Z)b)bL_RGo9+0b4n`R>%M?qz&M;2nYDs)ZbcWM5YMvKkB_m=nFO!q!c zjf#~m@s}|NUeaA^2okr`xr<>S{R+F&II?9^$8bSgK*Rx@*&m^;Njr=l$zhc26 zL-1vMgCXfx^DL=BFJ*pju|D2DpQxUm{1p8t{GYw0bP~xt%o7(1Hj$ejl5NUtSj%l8 zf|oq-MhOMWfAmaCLjBqLOX82mB;Nkyj|tuv;RX;KJBNWNoR@8>Mvcq~>_ z$~@V3iQ{$^1D05-^JSZEp4g2X12tM>ooQKtw0ridE9E; z99f>rD&?Xt`Z0&@qr&Q<6oc{gWcds;3WX`L{f})buHt84;8$GtEe~I2^5Z7j(ezGY zlL7;-pSCO;YB&B#@_Qk6jvxC(fM~)V+9{mS`t7Zh0o>+GeX{$Tr!R^dv>9VQ&DI+3 zizv#HT$>hLf!s-{sq_tf4y3+vXk~glaGT3{83aupGXPq*(hqa@aoD8&WH#(PQyZ&Z&kM6<|$G*S|&_Hb?j*%cVNV$W`l?_c ze4+S}W+1M6Cuq-)k)@;+^F$&kjN&rkekh^ws%yCZ^`p~X`D`uZ!BbuNMKa1?9>40? z4)L9&-ywa!`!$ZfA{R>-J4U7p@P=z-owo_`8>8{{wmzRQPRkbDl+T`jy$RG08c*u1 z1VK6vzxk}n9$rY7-6H<5TFkv{uX=DZ#zr-2mGZhUuJA)g``C$LW)f$@?<;vu7vk;e z(3^Y8be^XwfIe=SM3bVA+jQ&j)^^cK!bZ}*)dln2ei`*f|0xXtog8sY>OF)uL5-^X zD4oI8lyd;8GMg|fc(Av3W!VKoobFe$gB_Tv9^v=4EnmY%jT2hc1{b{D@5~UJpGH-; zKQwbZ#)j#$eRD5_f9DgKY@6|@dn-gS7F{UoR~tADe$tcaY5BxGBTII5WtDe0#`Abw zi3qAQW<&(GUCXc}YUhcL^jVVqMaDMEC9NaQ$>Qxbn z^Q$s5X#287x?!AN!v2@M+YOOi#ScliX~@uFh=r zKUNM}-C7=BI%Zbk!N{5tzk<|Vnc2XI(U)~R!T-8KE12U=&+1dXYRxIe`Q~~{r|hd; z<<)JZT|db3p|iWNB%65JsKQD3uhg%RBybflg%Ko2UXYr23+7nU<(FPcjjO4kJ!|uB z?NvJ1Oq%tqvKHQcsLp;7yh|zZ%2GP+60SeQ7T}HclVr=#`*Vh00#dIbb#Ol0ehuZb zcgjH;cK<=RQZ!?)7wPBH-$MKfM+vZ7Pu{7z9=^HafALd2UsFF6uriI(6Yeg7oCCTNPquaOqW%i zn7fnlCdUY|NF#zxULgBL9;Pn#^`q@`O`#&Gr{teKGT+)adf`b`i8VJqxt|yk6nSbb zaI9;(itgJgpA0^QyN(LS{?9ttgN6b-j|%HW!HGHPn$xbj%H*nFS#Pj9r!D>oWS4JF zvwzd4Ax;Jzoo)|C`vV#HZTfcgs;yaHARNr>))2P};*P%yb{r_k0{!$wE3dJcg0oyF zxx4Et3dWF#5nlYCqKIN3arEf|Q>q1CqkXQQMIM^hk=wgMOl75|WVi}$o@Dl)!#xOO z3V+AcrxEAY`NYp|cVX)7tD+{6HxUqT6E>BAnNQ-zdkW~$<4QlbJw`|t%s~q=#e?}# zZ|#uibxJ;5<#{R_eX8gfBiTI`mruuOGB=v^=|-t+wQeoHj*F=vhKc6I*7`3$?2_m& zLx=42ifbs3u{#QX?B)`W4AN%&97f}=R4`q7+qY03Gny(Jv`?!q+jY6aUpIYhXqz!P zLbmJU6j0mhv%?0}FoDeaCQ5_=rWm@P6QPSFB``~*$70j|>$B+Ga55l$HjlK*S6Y_T zh~xAe<2Zgc)H`vh2G+(DZK?0HuVe(6mK+@uZdOXtpyyU!?96b(y^=~|Q3$uTFb7V+fyq{QcijPa)ZaHSG zkvS;GmU_py>c@dX;TsOL3;m*#Z5ooTp!ZTqJ&(K;?=tqiNx z#!ccJ-8xgZ<1U@<-y%1iaQau!QVj7QtZWEEX(23b^i5Kabr8c4X2s4jy~!RHM@d0M zPD_^L;7I(^D{qW#{ZY6H99!xSiQUPij4&R`5@P%kYs~hmTb0}MLK7I{Oq`0b!Rap> zb6ab8rCu5+MU;#9MwTD~(Nt|gV=^?Lf^V0}REPIm6F|bvAR;p?sB01!UHG#T-X!~F zY~rj(TBC&1ZQ3Ph7MejRZ-M$|_NaICZaMAlPybR>s~I%s4i3#6{rjKrckK`??vosh zU=-Wt)84~RwS4igBLwF54GIBO^0FBl$$b=JNU8=IWUU@3?MLX+aXzaq*^2Jtt&yLv zYq4YXPg}8Dw^&!KkcIdi{*w#s6H^PPqF#lT)89vsrOUkN$t^Vdv*B{|ilmBMe)P7K zV~-?_DiZw;z_o%ag-$x2frSnkHe2=U>N)~i2aFMY;zE^0H6=DIw>JYv1Gth|R%sM8 z1++`_l5rW45_C!u=<^ja0ya|&G|(+zU*)kH2b^|WmqHp{=Cwd}i|vE~ukWEEU%y{^ zj+u)&x+fmVnJVk&q| z&?~CtB#Yc(J)5zLS9Xnxkv3@QD0;jifMdaZaJAcP)6x9F2!Yexspq$8G5hKE5%kK! zow?Wy=#k6Y+GybpPbl3d_Ts}R=VSM2NY4;eX{H08MQ&PLIMv%-RqZsB$}Z5$Hh(AM zxa#^L$itZ6W`E)Uv-OhSFCh^gl3N&@mtjTK7jGYz=}g*NiwWtyt6^+|ENj2yg1q*K zyiM=;(ekD2zOKPhk>@NspBJrg>@z*^8NG!HoNL^lM%~Y)&G0e8(M*q^_!N>GJ6DdG znc>N0SPQjv+mF%=%F(1io!QcJ-P0KLMWd-x9-`ceg(L@qx@Gi*$!J}IS-rH)Pj^J_*++;mBRjm znUgCH)7Cr^{FNc$7-Z5<&h2VP)%EG*o9&CCjZ~8x|FCS|y~bg#;3;6@Cfp0^z6yKe zqhbeTal$b-`VGWzkF4cd*`}Q&v&AZfISPLd9slxT-uk`eXXm0tr)&k?HNwn=`XDQI zq6#!-dos#-S{pPCd%9`Y`O}F6j#S$ziegpQp{$c*4Ud%7J|7<`G?c!+vJT% z@TlyJOM*yY4vV;u^qJw!eEavSOZ=zurwqm{UFU0fuV8{D7`7aRiFan8t#rw(z`7^mztgF z4)y<7Rm#oj7y7@c1s-IoWkYajhB-otqA64J)dUvf$-1whc*Kble#nb&{w^2M}kq2F7Zb^bYcO=9Q9wNN`INu>4Cyv0#C!i_b?!M_+;0sA) zf>e@JLZ6EC6r|0o1aYSn^SlP6S!afeD$ho-^g>v{JZ}ax4wU(0i+(E0tid`%Vh+Fk z(q8pi&pWIinM`sc{qKLGRuM&o%W?lVK;f&UO;L`qH2Q1~`KRNz>iLD^E|nX)8XF*gEykOU0e5$U4M z+rds0@-ujY4Amjqk^Y39Y|j=7CYUBG#WLbNA53? z5jiN@l|C>#P7M?4$8qjzAp7wH?V+QzH|!1BwDr%XCKocA{UaF>Au zE>lPso-o9)Pn@{l_gT+LE40e;L8tv;aLMzFRKn0gF*zfI<3vBb+J7Z$GId>nS`CsQ z3D>LJffWOqgjKtai(3HNFq6JZt5ty{&_%b`z}E~}J%;sSSqQ$%eA%ZRVpBvWwDx<0 z;zFnCmiiSCym6yvA5FfyDtUr{YA%&4s&DqeweeQb14fA+{-b7%-o}9pzD}l%b20nN z+fUw5TgHz%-7|;rGfqkK2vhrose&jj%R5uYMveIm zA;{9KfCTF-U~)%l4sV8_k8oUR0R{j(;>65rQ6 z%G`||%l*fjyOG|sB+JnrbKj|N$*TVebbAQR2pO-HlG6XVzlP~wAjH>9c$3ay4o{bY z_lRjahW%i*@05xBvI0d?ml3#|w!jsxbfnFg^B!$=HOYqFST{VVP5DpQkkCa`^A$n= Rzi0k{wx)qbmD;n{{|7`?WCH*I literal 0 HcmV?d00001 diff --git a/assets/2x/c_asteroid_ru.png b/assets/2x/c_asteroid_ru.png new file mode 100644 index 0000000000000000000000000000000000000000..97eca048a6cbf95b806478ee0b2bea68ee2ff6e9 GIT binary patch literal 7712 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 PegU0(26xNuI7Iv(jI?TN literal 0 HcmV?d00001 diff --git a/assets/2x/c_ouija_2.png b/assets/2x/c_ouija_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a56f02bb40376c03cd2403cccbe0daa205c015d6 GIT binary patch literal 2939 zcmaJ@d010d77u~21PREhH3i%t121|5U<*FGv;oQx@tw5FRt7vUN-nR>sD|YX*q7N)wugWMY|4kI4cr{$X zejL1z6f(84^wKL}df@EJ;Es^|JE9F^PE3yL;~@fHqj>SL+JfkEQSiL>s5F(YQNN_f z3?#t^8zjThIkN?z58J^%yR;l2D_pGKcJ4o+iWERupvvmQYP>CvI~q%6oZeUq=$!IMXkLp`n?|JB_I>_Gv!0_oZ1OX=Q`CQ%M%P30)Mw@q}vMZY;CG z8L8~}rN*4VqZUDpj8a3)*03n~F&^4> zoO^2MAp;|iY5XqoBsa-|`tV(HA{lUL{tMYvhgG>SECrFfg24oY>@;AX40zyeY@KcP zj#KCRljk9O?$Vek!1R_oi<7SHDZyf~IV9%tW8(JWYZD4>KY8B1rLq-vrH6Zq;y?0I zn)R=|#{T6FItN+{{#3=r;kGE#5@*^OLP>9~j!=C^kXwAtmzJH}F)|CH>uW)$;$B=o zc1=8w8-t}RC-Av3kW8TI2UF!Oer_9R4GmN57_{-@e4kJW628{Z>zg-kNtQP?OyeT3xRn_#mV|uzU0Ngh zq;#!AyhXi32H@`iwm5Nnd1O0+C=jVURQ)S6ktv$%>k0PTH18ZHwJY|yh>R=l#@30(1t&V%CMxDD)9JVHJZNVgDI)O}Ba0m+ zZ_7r?bXn4y#>9?+Gl>-Xy{RwpVYhU%+5O7~RB;SimqK~+8CqR5d0m)-12I^(c07ER|Td!s+!ro6fcyx(qkr$T3S;( zn(XwfO$MEAY+cu;+P^)W%0Q`all)40Defpk0&ghCaGo=eg94Z6*(gz?>?rl=j`_pr zwfpV8)p=m1qc|2^M5mMd!$)7~#>xhF-XO<_Bs;j*g_6LhcQa5A^*dJ@jp(MKBdW#& zca+prjc$C7)|e*>xVn^~d)0Yl zLbbx}WB<>^M{$GF3^%-$Si73^G5EXXXv`ivDDNwq;&pm^JGf{%yvk+CPZal!h08HI02vfhY`2@L<9Ke0OI@><9sj0k7-xY-b`2TrB)T&$4&T?Q}sIfZ93j*NOA@b!nU3lygA$Hg14vnt*jJbE<|os7rA9K>TBh* zAMEr2;;<82LS&5!KFq3`QexknDj6Iki{=FIE#KD&LEvb9aNh zt1p(wrbul+kySZ#`Sb09(huKdvwR=5iv>__x^v(tjM1mOO$V^9WUjm4WB^R4@=Q9>n=|k z5ojvMMQO?Nl^jISH|unr>7GA&$qktbq@klgs)^1C1mLDFe`rFa}3bxopuBu zy|KU+@rf*9+CQ;#DX{g;2C;F$?8Tg;;6N3LV0pd|eXBsBFDt-^lz(oC?YL%3P$kDV3^ zWqcxnD+?!?%) zvDpc+1V!PUG8+@=#}ns+j-Q9tbxc!7RlCNIE(C@*%B-S?v-dn5&}crmW|j+1v~O

      vz>1i3xtTo3UL54QrecI~f-(MYQ$L_#b zPF$#Io|p}O2DOfblmk&o=VxE_U8r#&vIN<)^!BpZ$C30;_KXP#@X<|b-gsZMI>AP{ zcH*dZ%BdK_0sn8X2D-RB<)998clgwh&q+N1hYD4<6VO{P?(Xxy>k8f0BOC9wyq0QK z=BqYze1iUa^$%)ChKI0z(XoZ8(7hh~VZXDYI 0 then + MP.RLOG.record("discard", { discarded }, "action:discard,cards:" .. table.concat(discarded, ".")) + end + FN.PRE.stop_current_coroutine() + end +end + +-- USER INTERFACE ADVICE: + +-- Add animation to preview text: +function G.FUNCS.fn_pre_score_UI_set(e) + local new_preview_text = "" + local should_juice = false + if FN.PRE.lock_updates then + if e.config.id == "fn_pre_m" then + new_preview_text = " " .. MP.UTILS.get_preview_cfg("text") .. " " + should_juice = true + end + else + if FN.PRE.data then + if FN.PRE.show_preview and (FN.PRE.data.score.min ~= FN.PRE.data.score.max) then + -- Format as 'X - Y' : + if e.config.id == "fn_pre_m" then + new_preview_text = " - " + if FN.PRE.is_enough_to_win(FN.PRE.data.score.min) then should_juice = true end + elseif e.config.id == "fn_pre_l" then + new_preview_text = FN.PRE.format_number(FN.PRE.data.score.min) + if FN.PRE.is_enough_to_win(FN.PRE.data.score.min) then should_juice = true end + elseif e.config.id == "fn_pre_r" then + new_preview_text = FN.PRE.format_number(FN.PRE.data.score.max) + if FN.PRE.is_enough_to_win(FN.PRE.data.score.max) then should_juice = true end + end + else + -- Format as single number: + if e.config.id == "fn_pre_l" then + if true then + -- Spaces around number necessary to distinguish Min/Max text from Exact text, + -- which is itself necessary to force a HUD update when switching between Min/Max and Exact. + if FN.PRE.show_preview then + new_preview_text = FN.PRE.format_number(FN.PRE.data.score.min) + if FN.PRE.is_enough_to_win(FN.PRE.data.score.min) then should_juice = true end + else + if FN.PRE.is_enough_to_win(FN.PRE.data.score.min) then + should_juice = true + new_preview_text = " " + else + if FN.PRE.is_enough_to_win(FN.PRE.data.score.max) then + new_preview_text = " " + should_juice = true + else + new_preview_text = " " + end + end + end + end + else + new_preview_text = "" + end + end + else + -- Spaces around number necessary to distinguish Min/Max text from Exact text, same as above ^ + if e.config.id == "fn_pre_l" then + if true then + new_preview_text = " ?????? " + else + new_preview_text = "??????" + end + else + new_preview_text = "" + end + end + end + + if (not FN.PRE.text.score[e.config.id:sub(-1)]) or new_preview_text ~= FN.PRE.text.score[e.config.id:sub(-1)] then + FN.PRE.text.score[e.config.id:sub(-1)] = new_preview_text + e.config.object.scale = e.config.object.config.scale + e.config.object:update_text() + if e.config.object.config.maxw then + e.config.object.scale = e.config.object.config.scale * math.min(1, e.config.object.config.maxw/e.config.object.config.W) + e.config.object:update_text(true) + end + -- Wobble: + if not G.TAROT_INTERRUPT_PULSE then + if should_juice then + G.FUNCS.text_super_juice(e, 5) + e.config.object.colours = { G.C.MONEY } + else + G.FUNCS.text_super_juice(e, 0) + e.config.object.colours = { G.C.UI.TEXT_LIGHT } + end + end + end +end + +function G.FUNCS.fn_pre_dollars_UI_set(e) + local new_preview_text = "" + local new_colour = nil + if FN.PRE.data then + if true and (FN.PRE.data.dollars.min ~= FN.PRE.data.dollars.max) then + if e.config.id == "fn_pre_dollars_top" then + new_preview_text = " " .. FN.PRE.get_sign_str(FN.PRE.data.dollars.max) .. FN.PRE.data.dollars.max + new_colour = FN.PRE.get_dollar_colour(FN.PRE.data.dollars.max) + elseif e.config.id == "fn_pre_dollars_bot" then + new_preview_text = " " .. FN.PRE.get_sign_str(FN.PRE.data.dollars.min) .. FN.PRE.data.dollars.min + new_colour = FN.PRE.get_dollar_colour(FN.PRE.data.dollars.min) + end + else + if e.config.id == "fn_pre_dollars_top" then + local _data = G.SETTINGS.FN.show_min_max and FN.PRE.data.dollars.min or FN.PRE.data.dollars.exact + + new_preview_text = " " .. FN.PRE.get_sign_str(_data) .. _data + new_colour = FN.PRE.get_dollar_colour(_data) + else + new_preview_text = "" + new_colour = FN.PRE.get_dollar_colour(0) + end + end + else + new_preview_text = " +??" + new_colour = FN.PRE.get_dollar_colour(0) + end + + if not FN.PRE.text.dollars[e.config.id:sub(-3)] or new_preview_text ~= FN.PRE.text.dollars[e.config.id:sub(-3)] then + FN.PRE.text.dollars[e.config.id:sub(-3)] = new_preview_text + e.config.object.colours = { new_colour } + e.config.object.scale = e.config.object.config.scale + e.config.object:update_text() + if e.config.object.config.maxw then + e.config.object.scale = e.config.object.config.scale * math.min(1, e.config.object.config.maxw/e.config.object.config.W) + e.config.object:update_text(true) + end + if not G.TAROT_INTERRUPT_PULSE then e.config.object:pulse(0.25) end + end +end diff --git a/compatibility/Preview/EngineSimulate.lua b/compatibility/Preview/EngineSimulate.lua new file mode 100644 index 000000000..3a6f2c6a8 --- /dev/null +++ b/compatibility/Preview/EngineSimulate.lua @@ -0,0 +1,519 @@ +-- The heart of this library: it replicates the game's score evaluation. + +if not FN.SIM.run then + function FN.SIM.run() + local null_ret = { score = { min = 0, exact = 0, max = 0 }, dollars = { min = 0, exact = 0, max = 0 }, empty = true } + if #G.hand.highlighted < 1 then return null_ret end + + FN.SIM.init() + + FN.SIM.manage_state("SAVE") + FN.SIM.update_state_variables() + + if not FN.SIM.simulate_blind_debuffs() then + FN.SIM.simulate_joker_before_effects() + FN.SIM.add_base_chips_and_mult() + FN.SIM.simulate_blind_effects() + FN.SIM.simulate_scoring_cards() + FN.SIM.simulate_held_cards() + FN.SIM.simulate_joker_global_effects() + FN.SIM.simulate_consumable_effects() + FN.SIM.simulate_deck_effects() + else -- Only Matador at this point: + FN.SIM.simulate_all_jokers(G.jokers, { debuffed_hand = true }) + end + + FN.SIM.manage_state("RESTORE") + + return FN.SIM.get_results() + end + + function FN.SIM.init() + -- Reset: + FN.SIM.running = { + min = { chips = 0, mult = 0, dollars = 0 }, + exact = { chips = 0, mult = 0, dollars = 0 }, + max = { chips = 0, mult = 0, dollars = 0 }, + reps = 0, + } + + -- Fetch metadata about simulated play: + local hand_name, _, poker_hands, scoring_hand, _ = G.FUNCS.get_poker_hand_info(G.hand.highlighted) + FN.SIM.env.scoring_name = hand_name + + -- Identify played cards and extract necessary data: + FN.SIM.env.played_cards = {} + FN.SIM.env.scoring_cards = {} + local is_splash_joker = next(find_joker("Splash")) + table.sort(G.hand.highlighted, function(a, b) + return a.T.x < b.T.x + end) -- Sorts by positional x-value to mirror card order! + for _, card in ipairs(G.hand.highlighted) do + local is_scoring = false + for _, scoring_card in ipairs(scoring_hand) do + -- Either card is scoring because it's part of the scoring hand, + -- or there is Splash joker, or it's a Stone Card: + if card.sort_id == scoring_card.sort_id or is_splash_joker or card.ability.effect == "Stone Card" then + is_scoring = true + break + end + end + + local card_data = FN.SIM.get_card_data(card) + table.insert(FN.SIM.env.played_cards, card_data) + if is_scoring then table.insert(FN.SIM.env.scoring_cards, card_data) end + end + + -- Identify held cards and extract necessary data: + FN.SIM.env.held_cards = {} + for _, card in ipairs(G.hand.cards) do + -- Highlighted cards are simulated as played cards: + if not card.highlighted then + local card_data = FN.SIM.get_card_data(card) + table.insert(FN.SIM.env.held_cards, card_data) + end + end + + -- Extract necessary joker data: + FN.SIM.env.jokers = {} + for _, joker in ipairs(G.jokers.cards) do + local joker_data = { + -- P_CENTER keys for jokers have the form j_NAME, get rid of j_ + id = joker.config.center.key:sub(3, #joker.config.center.key), + ability = copy_table(joker.ability), + edition = copy_table(joker.edition), + rarity = joker.config.center.rarity, + debuff = joker.debuff, + } + table.insert(FN.SIM.env.jokers, joker_data) + end + + -- Extract necessary consumable data: + FN.SIM.env.consumables = {} + for _, consumable in ipairs(G.consumeables.cards) do + local consumable_data = { + -- P_CENTER keys have the form x_NAME, get rid of x_ + id = consumable.config.center.key:sub(3, #consumable.config.center.key), + ability = copy_table(consumable.ability), + } + table.insert(FN.SIM.env.consumables, consumable_data) + end + + -- Set extensible context template: + FN.SIM.get_context = function(cardarea, args) + local context = { + cardarea = cardarea, + full_hand = FN.SIM.env.played_cards, + scoring_name = hand_name, + scoring_hand = FN.SIM.env.scoring_cards, + poker_hands = poker_hands, + } + + for k, v in pairs(args) do + context[k] = v + end + + return context + end + end + + function FN.SIM.get_card_data(card_obj) + return { + rank = card_obj.base.id, + suit = card_obj.base.suit, + base_chips = card_obj.base.nominal, + ability = copy_table(card_obj.ability), + edition = copy_table(card_obj.edition), + seal = card_obj.seal, + debuff = card_obj.debuff, + lucky_trigger = {}, + } + end + + function FN.SIM.get_results() + local FNSR = FN.SIM.running + + local min_score = math.floor(FNSR.min.chips * FNSR.min.mult) + local exact_score = math.floor(FNSR.exact.chips * FNSR.exact.mult) + local max_score = math.floor(FNSR.max.chips * FNSR.max.mult) + + return { + score = { min = min_score, exact = exact_score, max = max_score }, + dollars = { min = FNSR.min.dollars, exact = FNSR.exact.dollars, max = FNSR.max.dollars }, + } + end + + -- + -- GAME STATE MANAGEMENT: + -- + + function FN.SIM.manage_state(save_or_restore) + local FNSO = FN.SIM.orig + + if save_or_restore == "SAVE" then + FNSO.random_data = copy_table(G.GAME.pseudorandom) + FNSO.hand_data = copy_table(G.GAME.hands) + return + end + + if save_or_restore == "RESTORE" then + G.GAME.pseudorandom = FNSO.random_data + G.GAME.hands = FNSO.hand_data + return + end + end + + function FN.SIM.update_state_variables() + -- Increment poker hand played this run/round: + local hand_info = G.GAME.hands[FN.SIM.env.scoring_name] + hand_info.played = hand_info.played + 1 + hand_info.played_this_round = hand_info.played_this_round + 1 + end + + -- + -- MACRO LEVEL: + -- + + function FN.SIM.simulate_scoring_cards() + for _, scoring_card in ipairs(FN.SIM.env.scoring_cards) do + FN.SIM.simulate_card_in_context(scoring_card, G.play) + end + end + + function FN.SIM.simulate_held_cards() + for _, held_card in ipairs(FN.SIM.env.held_cards) do + FN.SIM.simulate_card_in_context(held_card, G.hand) + end + end + + function FN.SIM.simulate_joker_global_effects() + for _, joker in ipairs(FN.SIM.env.jokers) do + if joker.edition then -- Foil and Holo: + if joker.edition.chips then FN.SIM.add_chips(joker.edition.chips) end + if joker.edition.mult then FN.SIM.add_mult(joker.edition.mult) end + end + + FN.SIM.simulate_joker(joker, FN.SIM.get_context(G.jokers, { global = true })) + + -- Joker-on-joker effects (eg. Blueprint): + FN.SIM.simulate_all_jokers(G.jokers, { other_joker = joker }) + + if joker.edition then -- Poly: + if joker.edition.x_mult then FN.SIM.x_mult(joker.edition.x_mult) end + end + end + end + + function FN.SIM.simulate_consumable_effects() + for _, consumable in ipairs(FN.SIM.env.consumables) do + if consumable.ability.set == "Planet" and not consumable.debuff then + if + G.GAME.used_vouchers.v_observatory + and consumable.ability.consumeable.hand_type == FN.SIM.env.scoring_name + then + FN.SIM.x_mult(G.P_CENTERS.v_observatory.config.extra) + end + end + end + end + + function FN.SIM.add_base_chips_and_mult() + local played_hand_data = G.GAME.hands[FN.SIM.env.scoring_name] + FN.SIM.add_chips(played_hand_data.chips) + FN.SIM.add_mult(played_hand_data.mult) + end + + function FN.SIM.simulate_joker_before_effects() + for _, joker in ipairs(FN.SIM.env.jokers) do + FN.SIM.simulate_joker(joker, FN.SIM.get_context(G.jokers, { before = true })) + end + end + + function FN.SIM.simulate_joker_discard_effects(cards, card) + for _, joker in ipairs(FN.SIM.env.jokers) do + FN.SIM.simulate_joker( + joker, + FN.SIM.get_context(G.hand, { discard = true, cards = cards, other_card = card }) + ) + end + end + + function FN.SIM.simulate_blind_effects() + if G.GAME.blind.disabled then return end + + if G.GAME.blind.name == "The Flint" then + local function flint(data) + local half_chips = math.floor(data.chips / 2 + 0.5) + local half_mult = math.floor(data.mult / 2 + 0.5) + data.chips = FN.SIM.mod_chips(math.max(half_chips, 0)) + data.mult = FN.SIM.mod_mult(math.max(half_mult, 1)) + end + + flint(FN.SIM.running.min) + flint(FN.SIM.running.exact) + flint(FN.SIM.running.max) + else + -- Other blinds do not impact scoring; refer to Blind:modify_hand(..) + end + end + + function FN.SIM.simulate_deck_effects() + if FN.SIM.is_deck("b_plasma") then + local function plasma(data) + local sum = data.chips + data.mult + local half_sum = math.floor(sum / 2) + data.chips = FN.SIM.mod_chips(half_sum) + data.mult = FN.SIM.mod_mult(half_sum) + end + + plasma(FN.SIM.running.min) + plasma(FN.SIM.running.exact) + plasma(FN.SIM.running.max) + elseif G.GAME.modifiers.mp_score_instability then + local function unplasma(data) + local diff = data.chips - data.mult + if diff > 0 then + diff = math.min(diff, data.mult - 1) + elseif diff < 0 then + diff = math.max(diff, -data.chips) + end + data.chips = FN.SIM.mod_chips(data.chips + diff) + data.mult = FN.SIM.mod_mult(data.mult - diff) + end + + unplasma(FN.SIM.running.min) + unplasma(FN.SIM.running.exact) + unplasma(FN.SIM.running.max) + elseif FN.SIM.is_deck("b_mp_echodeck") then + -- Do something? + else + -- Other decks do not impact scoring; refer to Back:trigger_effect(..) + end + end + + function FN.SIM.simulate_blind_debuffs() + local blind_obj = G.GAME.blind + if blind_obj.disabled then return false end + + -- The following are part of Blind:press_play() + + if blind_obj.name == "The Hook" then + blind_obj.triggered = true + + local held = FN.SIM.env.held_cards + local n = #held + local combinations = {} + + -- Generate all possible discard combinations + if n == 0 then + table.insert(combinations, {}) + elseif n == 1 then + for a = 1, n do + table.insert(combinations, { a }) + end + elseif n >= 2 then + for a = 1, n - 1 do + for b = a + 1, n do + table.insert(combinations, { a, b }) + end + end + end + + local min_score, max_score = math.huge, -math.huge + local min_dollars, max_dollars = math.huge, -math.huge + + for _, discard_idxs in ipairs(combinations) do + -- Deep copy held cards + local held_copy = {} + local discarded = {} + for i, card in ipairs(held) do + held_copy[i] = copy_table(card) + end + + -- Remove discard cards from held_copy + table.sort(discard_idxs, function(a, b) + return a > b + end) + for _, idx in ipairs(discard_idxs) do + discarded[#discarded + 1] = table.remove(held_copy, idx) + end + + -- Backup and replace held cards and jokers temporarily + local backup_held = FN.SIM.env.held_cards + FN.SIM.env.held_cards = held_copy + local backup_jokers = copy_table(FN.SIM.env.jokers) + + -- Reset sim state + FN.SIM.running.min = { chips = 0, mult = 0, dollars = 0 } + FN.SIM.running.exact = { chips = 0, mult = 0, dollars = 0 } + FN.SIM.running.max = { chips = 0, mult = 0, dollars = 0 } + + for i = 1, #discarded do + FN.SIM.simulate_joker_discard_effects(discarded, discarded[i]) + end + + -- Simulate score + FN.SIM.simulate_joker_before_effects() + FN.SIM.add_base_chips_and_mult() + FN.SIM.simulate_blind_effects() + FN.SIM.simulate_scoring_cards() + FN.SIM.simulate_held_cards() + FN.SIM.simulate_joker_global_effects() + FN.SIM.simulate_consumable_effects() + FN.SIM.simulate_deck_effects() + + -- Evaluate score + local res = FN.SIM.get_results() + min_score = math.min(min_score, res.score.min) + max_score = math.max(max_score, res.score.max) + min_dollars = math.min(min_dollars, res.dollars.min) + max_dollars = math.max(max_dollars, res.dollars.max) + + -- Restore original held cards and jokers + FN.SIM.env.held_cards = backup_held + FN.SIM.env.jokers = backup_jokers + end + + -- Overwrite final min/max range based on permutations + FN.SIM.running.min = { chips = min_score, mult = 1, dollars = min_dollars } + FN.SIM.running.max = { chips = max_score, mult = 1, dollars = max_dollars } + + -- NOTE: FN.SIM.running.exact remains unset here; it's not relevant in this projection context + return true -- Prevent default simulation since we’ve replaced it entirely + end + + if blind_obj.name == "The Tooth" then + blind_obj.triggered = true + FN.SIM.add_dollars(-1 * #FN.SIM.env.played_cards) + end + + -- The following are part of Blind:debuff_hand(..) + + if blind_obj.name == "The Arm" then + blind_obj.triggered = false + + local played_hand_name = FN.SIM.env.scoring_name + if G.GAME.hands[played_hand_name].level > 1 then + blind_obj.triggered = true + -- NOTE: Important to save/restore G.GAME.hands here + -- NOTE: Implementation mirrors level_up_hand(..) + local played_hand_data = G.GAME.hands[played_hand_name] + played_hand_data.level = math.max(1, played_hand_data.level - 1) + played_hand_data.mult = + math.max(1, played_hand_data.s_mult + (played_hand_data.level - 1) * played_hand_data.l_mult) + played_hand_data.chips = + math.max(0, played_hand_data.s_chips + (played_hand_data.level - 1) * played_hand_data.l_chips) + end + return false -- IMPORTANT: Avoid duplicate effects from Blind:debuff_hand() below + end + + if blind_obj.name == "The Ox" then + blind_obj.triggered = false + + if FN.SIM.env.scoring_name == G.GAME.current_round.most_played_poker_hand then + blind_obj.triggered = true + FN.SIM.add_dollars(-G.GAME.dollars) + end + return false -- IMPORTANT: Avoid duplicate effects from Blind:debuff_hand() below + end + + return blind_obj:debuff_hand(G.hand.highlighted, FN.SIM.env.poker_hands, FN.SIM.env.scoring_name, true) + end + + -- + -- MICRO LEVEL (CARDS): + -- + + function FN.SIM.simulate_card_in_context(card, cardarea) + -- Reset and collect repetitions: + FN.SIM.running.reps = 1 + if card.seal == "Red" then FN.SIM.add_reps(1) end + if FN.SIM.is_deck("b_mp_echodeck") then FN.SIM.add_reps(1) end -- I guess this works? + FN.SIM.simulate_all_jokers(cardarea, { other_card = card, repetition = true }) + + -- Apply effects: + for _ = 1, FN.SIM.running.reps do + FN.SIM.simulate_card(card, FN.SIM.get_context(cardarea, {})) + FN.SIM.simulate_all_jokers(cardarea, { other_card = card, individual = true }) + end + end + + function FN.SIM.simulate_card(card_data, context) + -- Do nothing if debuffed: + if card_data.debuff then return end + + if context.cardarea == G.play then + -- Chips: + if card_data.ability.effect == "Stone Card" then + FN.SIM.add_chips(card_data.ability.bonus + (card_data.ability.perma_bonus or 0)) + else + FN.SIM.add_chips(card_data.base_chips + card_data.ability.bonus + (card_data.ability.perma_bonus or 0)) + end + + -- Mult: + if card_data.ability.effect == "Lucky Card" then + local exact_mult, min_mult, max_mult = + FN.SIM.get_probabilistic_extremes(pseudorandom("nope"), 5, card_data.ability.mult, 0) + FN.SIM.add_mult(exact_mult, min_mult, max_mult) + -- Careful not to overwrite `card_data.lucky_trigger` outright: + if exact_mult > 0 then card_data.lucky_trigger.exact = true end + if min_mult > 0 then card_data.lucky_trigger.min = true end + if max_mult > 0 then card_data.lucky_trigger.max = true end + else + FN.SIM.add_mult(card_data.ability.mult) + end + + -- XMult: + if card_data.ability.x_mult > 1 then FN.SIM.x_mult(card_data.ability.x_mult) end + + -- Dollars: + if card_data.seal == "Gold" then FN.SIM.add_dollars(3) end + if card_data.ability.p_dollars > 0 then + if card_data.ability.effect == "Lucky Card" then + local exact_dollars, min_dollars, max_dollars = FN.SIM.get_probabilistic_extremes( + pseudorandom("notthistime"), + 15, + card_data.ability.p_dollars, + 0 + ) + FN.SIM.add_dollars(exact_dollars, min_dollars, max_dollars) + -- Careful not to overwrite `card_data.lucky_trigger` outright: + if exact_dollars > 0 then card_data.lucky_trigger.exact = true end + if min_dollars > 0 then card_data.lucky_trigger.min = true end + if max_dollars > 0 then card_data.lucky_trigger.max = true end + else + FN.SIM.add_dollars(card_data.ability.p_dollars) + end + end + + -- Edition: + if card_data.edition then + if card_data.edition.chips then FN.SIM.add_chips(card_data.edition.chips) end + if card_data.edition.mult then FN.SIM.add_mult(card_data.edition.mult) end + if card_data.edition.x_mult then FN.SIM.x_mult(card_data.edition.x_mult) end + end + elseif context.cardarea == G.hand then + if card_data.ability.h_mult > 0 then FN.SIM.add_mult(card_data.ability.h_mult) end + + if card_data.ability.h_x_mult > 0 then FN.SIM.x_mult(card_data.ability.h_x_mult) end + end + end + + -- + -- MICRO LEVEL (JOKERS): + -- + + function FN.SIM.simulate_all_jokers(cardarea, context_args) + for _, joker in ipairs(FN.SIM.env.jokers) do + FN.SIM.simulate_joker(joker, FN.SIM.get_context(cardarea, context_args)) + end + end + + function FN.SIM.simulate_joker(joker_obj, context) + -- Do nothing if debuffed: + if joker_obj.debuff then return end + + local joker_simulation_function = FN.SIM.JOKERS["simulate_" .. joker_obj.id] + if joker_simulation_function then joker_simulation_function(joker_obj, context) end + end +end diff --git a/compatibility/Preview/InitPreview.lua b/compatibility/Preview/InitPreview.lua new file mode 100644 index 000000000..a94344191 --- /dev/null +++ b/compatibility/Preview/InitPreview.lua @@ -0,0 +1,132 @@ +-- Global values that must be present for the rest of this mod to work. + +if not FN then FN = {} end + +FN.PRE = { + data = { + score = { min = 0, exact = 0, max = 0 }, + dollars = { min = 0, exact = 0, max = 0 }, + empty = true, + }, + text = { + score = { l = "", r = "", m = "" }, + dollars = { top = "", bot = "" }, + }, + joker_order = {}, + hand_order = {}, + show_preview = false, + lock_updates = false, + on_startup = true, + five_second_coroutine = nil, + calculate_request = nil, +} + + +function FN.PRE.start_new_coroutine() + -- Defaults are vanilla: free preview, slow (5s) delay. + -- Layers like pressure_timer set both via ruleset scalars. + local timer_delay, timer_cost = 0, 0 + if MP.LOBBY and MP.LOBBY.code and MP.LOBBY.config.timer and not MP.is_pvp_boss() then + timer_delay = 5 + timer_cost = 0 + + local ruleset = MP.current_ruleset() + timer_delay = MP.LOBBY.config.preview_calculate_delay or ruleset.preview_calculate_delay or timer_delay + timer_cost = MP.LOBBY.config.preview_calculate_cost or ruleset.preview_calculate_cost or timer_cost + end + + if not FN.PRE.calculate_request then + FN.PRE.lock_updates = true + FN.PRE.show_preview = true + local func = function() + FN.PRE.calculate_request = nil + FN.PRE.lock_updates = false + FN.PRE.show_preview = true + FN.PRE.data = FN.PRE.simulate() + + -- Subtract cost from timer (only if there's a cost — vanilla preview is free). + -- Min-clamp prevents an over-zealous calc from killing the player outright. + if + timer_cost > 0 + and FN.PRE.data and not FN.PRE.data.empty + and MP.LOBBY.code and not MP.is_pvp_boss() + and MP.LOBBY.config.timer + and not MP.GAME.timer_started + and not MP.GAME.nemesis_timer_started + and not MP.GAME.timer_consumed + then + MP.UI.consume_timer(timer_cost, nil, math.max(10, timer_cost)) + end + return true + end + FN.PRE.calculate_request = Event({ + trigger = "after", delay = timer_delay, timer = "REAL", + blockable = false, blocking = false, + func = func + }) + G.E_MANAGER:add_event(FN.PRE.calculate_request) + end +end + +function FN.PRE.stop_current_coroutine(no_interrupt) + if not MP.INTEGRATIONS.Preview then return end + if no_interrupt and FN.PRE.lock_updates then return end + if FN.PRE.show_preview then + FN.PRE.show_preview = false + FN.PRE.data = FN.PRE.cleanup() + end + if FN.PRE.calculate_request then + FN.PRE.calculate_request.func = function() return true end + FN.PRE.calculate_request.complete = true + FN.PRE.calculate_request = nil + FN.PRE.lock_updates = false + end +end + +--[[ +function FN.PRE.start_new_coroutine() + if FN.PRE.five_second_coroutine and coroutine.status(FN.PRE.five_second_coroutine) ~= "dead" then + FN.PRE.five_second_coroutine = nil -- Reset the coroutine + end + + -- Create and start a new coroutine + FN.PRE.five_second_coroutine = coroutine.create(function() + -- Show UI updates + FN.PRE.lock_updates = true + FN.PRE.show_preview = true + FN.PRE.add_update_event("immediate") -- Force UI refresh + + local start_time = os.time() + if MP.LOBBY.code and not MP.is_pvp_boss() then + while os.time() - start_time < 5 do + FN.PRE.simulate() -- Force a simulation run + FN.PRE.add_update_event("immediate") -- Ensure UI updates + coroutine.yield() -- Allow game to continue running + end + end + -- Delay for 5 seconds + FN.PRE.lock_updates = false + FN.PRE.show_preview = true + FN.PRE.add_update_event("immediate") -- Refresh UI again + end) + + coroutine.resume(FN.PRE.five_second_coroutine) -- Start it immediately +end +]] + +FN.PRE._start_up = Game.start_up +function Game:start_up() + FN.PRE._start_up(self) + + if not MP.INTEGRATIONS.Preview then return end + + if not G.SETTINGS.FN then G.SETTINGS.FN = {} end + if not G.SETTINGS.FN.PRE then + G.SETTINGS.FN.PRE = true + + G.SETTINGS.FN.preview_score = true + G.SETTINGS.FN.preview_dollars = true + G.SETTINGS.FN.hide_face_down = true + G.SETTINGS.FN.show_min_max = true + end +end diff --git a/compatibility/Preview/InitSimulate.lua b/compatibility/Preview/InitSimulate.lua new file mode 100644 index 000000000..fc435f8d1 --- /dev/null +++ b/compatibility/Preview/InitSimulate.lua @@ -0,0 +1,36 @@ +-- Global values that must be present for the rest of this mod to work. + +if not FN then FN = {} end + +FN.SIM = { + JOKERS = {}, + + running = { + --- Table to store workings (ie. running totals): + min = { chips = 0, mult = 0, dollars = 0 }, + exact = { chips = 0, mult = 0, dollars = 0 }, + max = { chips = 0, mult = 0, dollars = 0 }, + reps = 0, + }, + + env = { + --- Table to store data about the simulated play: + jokers = {}, -- Derived from G.jokers.cards + played_cards = {}, -- Derived from G.hand.highlighted + scoring_cards = {}, -- Derived according to evaluate_play() + held_cards = {}, -- Derived from G.hand minus G.hand.highlighted + consumables = {}, -- Derived from G.consumeables.cards + scoring_name = "", -- Derived according to evaluate_play() + }, + + orig = { + --- Table to store game data that gets modified during simulation: + random_data = {}, -- G.GAME.pseudorandom + hand_data = {}, -- G.GAME.hands + }, + + misc = { + --- Table to store ancillary status variables: + next_stone_id = -1, + }, +} diff --git a/compatibility/Preview/InterfacePreview.lua b/compatibility/Preview/InterfacePreview.lua new file mode 100644 index 000000000..517b3fc40 --- /dev/null +++ b/compatibility/Preview/InterfacePreview.lua @@ -0,0 +1,194 @@ +-- The user interface components that display simulation results. + +-- Append node for preview text to the HUD: +local orig_hud = create_UIBox_HUD +function create_UIBox_HUD() + local contents = orig_hud() + + if not MP.INTEGRATIONS.Preview then return contents end + + -- Check if preview is disabled in lobby options + if MP.LOBBY.config and MP.LOBBY.config.preview_disabled then return contents end + + local score_node_wrap = + { n = G.UIT.R, config = { id = "fn_pre_score_wrap", align = "cm", padding = 0.1 }, nodes = {} } + table.insert(score_node_wrap.nodes, FN.PRE.get_score_node()) + local calculate_score_button_wrap = + { n = G.UIT.R, config = { id = "fn_calculate_score_button_wrap", align = "cm", padding = 0.1 }, nodes = {} } + table.insert(calculate_score_button_wrap.nodes, FN.PRE.get_calculate_score_button()) + local score_wrap = { + n = G.UIT.R, + config = { id = "fn_real_wrap", align = "cm", padding = 0.0 }, + nodes = { score_node_wrap, calculate_score_button_wrap }, + } + + table.insert(contents.nodes[1].nodes[1].nodes[4].nodes[1].nodes, score_wrap) -- you can only do one so we have to wrap both of them. do not ask. i have no idea why + + return contents +end + +function G.FUNCS.calculate_score_button() + FN.PRE.start_new_coroutine() +end + +function FN.PRE.get_calculate_score_button() + return { + n = G.UIT.C, + config = { + id = "calculate_score_button", + button = "calculate_score_button", + align = "cm", + minh = 0.42, + padding = 0.05, + minw = 3, + r = 0.02, + colour = G.C.RED, + hover = true, + shadow = true, + maxw = 4.5 + }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm" }, + nodes = { + { + n = G.UIT.T, + config = { + text = MP.UTILS.get_preview_cfg("button"), + colour = G.C.UI.TEXT_LIGHT, + shadow = true, + scale = 0.36, + }, + }, + }, + }, + }, + } +end + +function FN.PRE.get_score_node() + local text_scale = nil + if true then + text_scale = 0.5 + else + text_scale = 0.75 + end + + return { + n = G.UIT.C, + config = { id = "fn_pre_score", align = "cm", minh = 0.5 }, + nodes = { + { + n = G.UIT.O, + config = { + id = "fn_pre_l", + func = "fn_pre_score_UI_set", + object = DynaText({ + string = { { ref_table = FN.PRE.text.score, ref_value = "l" } }, + colours = { G.C.UI.TEXT_LIGHT }, + shadow = true, + float = true, + scale = text_scale, + maxw = 2, + }), + }, + }, + { + n = G.UIT.O, + config = { + id = "fn_pre_m", + func = "fn_pre_score_UI_set", + object = DynaText({ + string = { { ref_table = FN.PRE.text.score, ref_value = "m" } }, + colours = { G.C.UI.TEXT_LIGHT }, + shadow = true, + float = true, + scale = text_scale, + maxw = 4, + }), + }, + }, + { + n = G.UIT.O, + config = { + id = "fn_pre_r", + func = "fn_pre_score_UI_set", + object = DynaText({ + string = { { ref_table = FN.PRE.text.score, ref_value = "r" } }, + colours = { G.C.UI.TEXT_LIGHT }, + shadow = true, + float = true, + scale = text_scale, + maxw = 2, + }), + }, + }, + }, + } +end + +-- TODO Implement +function FN.get_preview_settings_page() + local function preview_score_toggle_callback(e) + if not G.HUD then return end + + if G.SETTINGS.FN.preview_score then + -- Preview was just enabled, so add preview node: + G.HUD:add_child(FN.PRE.get_score_node(), G.HUD:get_UIE_by_ID("fn_pre_score_wrap")) + FN.PRE.data = FN.PRE.simulate() + else + -- Preview was just disabled, so remove preview node: + G.HUD:get_UIE_by_ID("fn_pre_score").parent:remove() + end + G.HUD:recalculate() + end + + local function preview_dollars_toggle_callback(_) + if not G.HUD then return end + + if G.SETTINGS.FN.preview_dollars then + -- Preview was just enabled, so add preview node: + G.HUD:add_child(FN.PRE.get_dollars_node(), G.HUD:get_UIE_by_ID("fn_pre_dollars_wrap")) + FN.PRE.data = FN.PRE.simulate() + else + -- Preview was just disabled, so remove preview node: + G.HUD:get_UIE_by_ID("fn_pre_dollars").parent:remove() + end + G.HUD:recalculate() + end + + local function face_down_toggle_callback(_) + if not G.HUD then return end + + FN.PRE.data = FN.PRE.simulate() + G.HUD:recalculate() + end + + return { + n = G.UIT.ROOT, + config = { align = "cm", padding = 0.05, colour = G.C.CLEAR }, + nodes = { + create_toggle({ + id = "score_toggle", + label = "Enable Score Preview", + ref_table = G.SETTINGS.FN, + ref_value = "preview_score", + callback = preview_score_toggle_callback, + }), + create_toggle({ + id = "dollars_toggle", + label = "Enable Money Preview", + ref_table = G.SETTINGS.FN, + ref_value = "preview_dollars", + callback = preview_dollars_toggle_callback, + }), + create_toggle({ + label = "Hide Preview if Any Card is Face-Down", + ref_table = G.SETTINGS.FN, + ref_value = "hide_face_down", + callback = face_down_toggle_callback, + }), + }, + } +end diff --git a/compatibility/Preview/Jokers/Multiplayer.lua b/compatibility/Preview/Jokers/Multiplayer.lua new file mode 100644 index 000000000..76c20caec --- /dev/null +++ b/compatibility/Preview/Jokers/Multiplayer.lua @@ -0,0 +1,61 @@ +FNSJ.simulate_mp_defensive_joker = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then FN.SIM.add_chips(joker_obj.ability.t_chips) end +end + +FNSJ.simulate_mp_taxes = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.extra.mult) end +end + +FNSJ.simulate_mp_pacifist = function(joker_obj, context) + if context.cardarea == G.jokers and context.global and not MP.is_pvp_boss() then + FN.SIM.x_mult(joker_obj.ability.extra.x_mult) + end +end + +FNSJ.simulate_mp_conjoined_joker = function(joker_obj, context) + if context.cardarea == G.jokers and context.global and MP.is_pvp_boss() then + FN.SIM.x_mult(joker_obj.ability.extra.x_mult) + end +end + +FNSJ.simulate_mp_hanging_chad = function(joker_obj, context) + if context.cardarea == G.play and context.repetition then + if context.other_card == context.scoring_hand[1] and not context.other_card.debuff then + FN.SIM.add_reps(joker_obj.ability.extra) + end + if context.other_card == context.scoring_hand[2] and not context.other_card.debuff then + FN.SIM.add_reps(joker_obj.ability.extra) + end + end +end + +FNSJ.simulate_mp_lets_go_gambling = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + local rand = pseudorandom("gambling") -- Must reuse same pseudorandom value: + local exact_xmult, min_xmult, max_xmult = + FN.SIM.get_probabilistic_extremes(rand, joker_obj.ability.extra.odds, joker_obj.ability.extra.xmult, 1) + local exact_money, min_money, max_money = + FN.SIM.get_probabilistic_extremes(rand, joker_obj.ability.extra.odds, joker_obj.ability.extra.dollars, 0) + + FN.SIM.add_dollars(exact_money, min_money, max_money) + FN.SIM.x_mult(exact_xmult, min_xmult, max_xmult) + end +end + +FNSJ.simulate_mp_seltzer = function(joker_obj, context) + if context.cardarea == G.play and context.repetition then FN.SIM.add_reps(1) end +end + +FNSJ.simulate_mp_bloodstone = function(joker_obj, context) + if context.cardarea == G.play and context.individual then + if FN.SIM.is_suit(context.other_card, "Hearts") and not context.other_card.debuff then + local exact_xmult, min_xmult, max_xmult = FN.SIM.get_probabilistic_extremes( + pseudorandom("nopeagain"), + joker_obj.ability.extra.odds, + joker_obj.ability.extra.Xmult, + 1 + ) + FN.SIM.x_mult(exact_xmult, min_xmult, max_xmult) + end + end +end diff --git a/compatibility/Preview/Jokers/_Vanilla.lua b/compatibility/Preview/Jokers/_Vanilla.lua new file mode 100644 index 000000000..c923f5d26 --- /dev/null +++ b/compatibility/Preview/Jokers/_Vanilla.lua @@ -0,0 +1,949 @@ +--- Divvy's Simulation for Balatro - _Vanilla.lua +-- +-- The simulation functions for all of the vanilla Balatro jokers. + +local FNSJ = FN.SIM.JOKERS + +FNSJ.simulate_joker = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.mult) end +end +FNSJ.simulate_greedy_joker = function(joker_obj, context) + FN.SIM.JOKERS.add_suit_mult(joker_obj, context) +end +FNSJ.simulate_lusty_joker = function(joker_obj, context) + FN.SIM.JOKERS.add_suit_mult(joker_obj, context) +end +FNSJ.simulate_wrathful_joker = function(joker_obj, context) + FN.SIM.JOKERS.add_suit_mult(joker_obj, context) +end +FNSJ.simulate_gluttenous_joker = function(joker_obj, context) + FN.SIM.JOKERS.add_suit_mult(joker_obj, context) +end +FNSJ.simulate_jolly = function(joker_obj, context) + FN.SIM.JOKERS.add_type_mult(joker_obj, context) +end +FNSJ.simulate_zany = function(joker_obj, context) + FN.SIM.JOKERS.add_type_mult(joker_obj, context) +end +FNSJ.simulate_mad = function(joker_obj, context) + FN.SIM.JOKERS.add_type_mult(joker_obj, context) +end +FNSJ.simulate_crazy = function(joker_obj, context) + FN.SIM.JOKERS.add_type_mult(joker_obj, context) +end +FNSJ.simulate_droll = function(joker_obj, context) + FN.SIM.JOKERS.add_type_mult(joker_obj, context) +end +FNSJ.simulate_sly = function(joker_obj, context) + FN.SIM.JOKERS.add_type_chips(joker_obj, context) +end +FNSJ.simulate_wily = function(joker_obj, context) + FN.SIM.JOKERS.add_type_chips(joker_obj, context) +end +FNSJ.simulate_clever = function(joker_obj, context) + FN.SIM.JOKERS.add_type_chips(joker_obj, context) +end +FNSJ.simulate_devious = function(joker_obj, context) + FN.SIM.JOKERS.add_type_chips(joker_obj, context) +end +FNSJ.simulate_crafty = function(joker_obj, context) + FN.SIM.JOKERS.add_type_chips(joker_obj, context) +end +FNSJ.simulate_half = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + if #context.full_hand <= joker_obj.ability.extra.size then FN.SIM.add_mult(joker_obj.ability.extra.mult) end + end +end +FNSJ.simulate_stencil = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + local xmult = G.jokers.config.card_limit - #FN.SIM.env.jokers + for _, joker in ipairs(FN.SIM.env.jokers) do + if joker.ability.name == "Joker Stencil" then xmult = xmult + 1 end + end + if joker_obj.ability.x_mult > 1 then FN.SIM.x_mult(joker_obj.ability.x_mult) end + end +end +FNSJ.simulate_four_fingers = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_mime = function(joker_obj, context) + if context.cardarea == G.hand and context.repetition then FN.SIM.add_reps(joker_obj.ability.extra) end +end +FNSJ.simulate_credit_card = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_ceremonial = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.mult) end +end +FNSJ.simulate_banner = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + if G.GAME.current_round.discards_left > 0 then + local chips = G.GAME.current_round.discards_left * joker_obj.ability.extra + FN.SIM.add_chips(chips) + end + end +end +FNSJ.simulate_mystic_summit = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + if G.GAME.current_round.discards_left == joker_obj.ability.extra.d_remaining then + FN.SIM.add_mult(joker_obj.ability.extra.mult) + end + end +end +FNSJ.simulate_marble = function(joker_obj, context) + -- Effect not relevant (Blind) +end +FNSJ.simulate_loyalty_card = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + local loyalty_diff = G.GAME.hands_played - joker_obj.ability.hands_played_at_create + local loyalty_remaining = ((joker_obj.ability.extra.every - 1) - loyalty_diff) + % (joker_obj.ability.extra.every + 1) + if loyalty_remaining == joker_obj.ability.extra.every then FN.SIM.x_mult(joker_obj.ability.extra.Xmult) end + end +end +FNSJ.simulate_8_ball = function(joker_obj, context) + -- Effect might be relevant? +end +FNSJ.simulate_misprint = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + local exact_mult = pseudorandom("nope", joker_obj.ability.extra.min, joker_obj.ability.extra.max) + FN.SIM.add_mult(exact_mult, joker_obj.ability.extra.min, joker_obj.ability.extra.max) + end +end +FNSJ.simulate_dusk = function(joker_obj, context) + if context.cardarea == G.play and context.repetition then + -- Note: Checking against 1 is needed as hands_left is not decremented as part of simulation + if G.GAME.current_round.hands_left == 1 then FN.SIM.add_reps(joker_obj.ability.extra) end + end +end +FNSJ.simulate_raised_fist = function(joker_obj, context) + if context.cardarea == G.hand and context.individual then + local cur_mult, cur_rank = 15, 15 + local raised_card = nil + for _, card in ipairs(FN.SIM.env.held_cards) do + if cur_rank >= card.rank and card.ability.effect ~= "Stone Card" then + cur_mult = card.base_chips + cur_rank = card.rank + raised_card = card + end + end + if raised_card == context.other_card and not context.other_card.debuff then FN.SIM.add_mult(2 * cur_mult) end + end +end +FNSJ.simulate_chaos = function(joker_obj, context) + -- Effect not relevant (Free Reroll) +end +FNSJ.simulate_fibonacci = function(joker_obj, context) + if context.cardarea == G.play and context.individual then + if FN.SIM.is_rank(context.other_card, { 2, 3, 5, 8, 14 }) and not context.other_card.debuff then + FN.SIM.add_mult(joker_obj.ability.extra) + end + end +end +FNSJ.simulate_steel_joker = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + FN.SIM.x_mult(1 + joker_obj.ability.extra * joker_obj.ability.steel_tally) + end +end +FNSJ.simulate_scary_face = function(joker_obj, context) + if context.cardarea == G.play and context.individual then + if FN.SIM.is_face(context.other_card) and not context.other_card.debuff then + FN.SIM.add_chips(joker_obj.ability.extra) + end + end +end +FNSJ.simulate_abstract = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + FN.SIM.add_mult(#FN.SIM.env.jokers * joker_obj.ability.extra) + end +end +FNSJ.simulate_delayed_grat = function(joker_obj, context) + -- Effect not relevant (End of Round) +end +FNSJ.simulate_hack = function(joker_obj, context) + if context.cardarea == G.play and context.repetition then + if not context.other_card.debuff and FN.SIM.is_rank(context.other_card, { 2, 3, 4, 5 }) then + FN.SIM.add_reps(joker_obj.ability.extra) + end + end +end +FNSJ.simulate_pareidolia = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_gros_michel = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.extra.mult) end +end +FNSJ.simulate_even_steven = function(joker_obj, context) + if context.cardarea == G.play and context.individual then + if not context.other_card.debuff and FN.SIM.check_rank_parity(context.other_card, true) then + FN.SIM.add_mult(joker_obj.ability.extra) + end + end +end +FNSJ.simulate_odd_todd = function(joker_obj, context) + if context.cardarea == G.play and context.individual then + if not context.other_card.debuff and FN.SIM.check_rank_parity(context.other_card, false) then + FN.SIM.add_chips(joker_obj.ability.extra) + end + end +end +FNSJ.simulate_scholar = function(joker_obj, context) + if context.cardarea == G.play and context.individual then + if FN.SIM.is_rank(context.other_card, 14) and not context.other_card.debuff then + FN.SIM.add_chips(joker_obj.ability.extra.chips) + FN.SIM.add_mult(joker_obj.ability.extra.mult) + end + end +end +FNSJ.simulate_business = function(joker_obj, context) + if context.cardarea == G.play and context.individual then + if FN.SIM.is_face(context.other_card) and not context.other_card.debuff then + local exact_dollars, min_dollars, max_dollars = + FN.SIM.get_probabilistic_extremes(pseudorandom("false"), joker_obj.ability.extra, 2, 0) + FN.SIM.add_dollars(exact_dollars, min_dollars, max_dollars) + end + end +end +FNSJ.simulate_supernova = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + FN.SIM.add_mult(G.GAME.hands[context.scoring_name].played) + end +end +FNSJ.simulate_ride_the_bus = function(joker_obj, context) + if context.cardarea == G.jokers and context.before and not context.blueprint then + local faces = false + for _, scoring_card in ipairs(context.scoring_hand) do + if FN.SIM.is_face(scoring_card) then faces = true end + end + if faces then + joker_obj.ability.mult = 0 + else + joker_obj.ability.mult = joker_obj.ability.mult + joker_obj.ability.extra + end + end + if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.mult) end +end +FNSJ.simulate_space = function(joker_obj, context) + -- TODO: Verify + if context.cardarea == G.jokers and context.before then + local hand_data = G.GAME.hands[FN.SIM.env.scoring_name] + + local rand = pseudorandom("bad") -- Must reuse same pseudorandom value: + local exact_chips, min_chips, max_chips = + FN.SIM.get_probabilistic_extremes(rand, joker_obj.ability.extra, hand_data.l_chips, 0) + local exact_mult, min_mult, max_mult = + FN.SIM.get_probabilistic_extremes(rand, joker_obj.ability.extra, hand_data.l_mult, 0) + + FN.SIM.add_chips(exact_chips, min_chips, max_chips) + FN.SIM.add_mult(exact_mult, min_mult, max_mult) + end +end +FNSJ.simulate_egg = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_burglar = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_blackboard = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + local black_suits, all_cards = 0, 0 + for _, card in ipairs(FN.SIM.env.held_cards) do + all_cards = all_cards + 1 + if FN.SIM.is_suit(card, "Clubs", true) or FN.SIM.is_suit(card, "Spades", true) then + black_suits = black_suits + 1 + end + end + if black_suits == all_cards then FN.SIM.x_mult(joker_obj.ability.extra) end + end +end +FNSJ.simulate_runner = function(joker_obj, context) + if context.cardarea == G.jokers and context.before and not context.blueprint then + if next(context.poker_hands["Straight"]) then + joker_obj.ability.extra.chips = joker_obj.ability.extra.chips + joker_obj.ability.extra.chip_mod + end + end + if context.cardarea == G.jokers and context.global then FN.SIM.add_chips(joker_obj.ability.extra.chips) end +end +FNSJ.simulate_ice_cream = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then FN.SIM.add_chips(joker_obj.ability.extra.chips) end +end +FNSJ.simulate_dna = function(joker_obj, context) + if context.cardarea == G.jokers and context.before then + if G.GAME.current_round.hands_played == 0 and #context.full_hand == 1 then + local new_card = copy_table(context.full_hand[1]) + table.insert(FN.SIM.env.held_cards, new_card) + end + end +end +FNSJ.simulate_splash = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_blue_joker = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + FN.SIM.add_chips(joker_obj.ability.extra * #G.deck.cards) + end +end +FNSJ.simulate_sixth_sense = function(joker_obj, context) + -- Effect might be relevant? +end +FNSJ.simulate_constellation = function(joker_obj, context) + FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) +end +FNSJ.simulate_hiker = function(joker_obj, context) + if context.cardarea == G.play and context.individual then + if not context.other_card.debuff then + context.other_card.ability.perma_bonus = (context.other_card.ability.perma_bonus or 0) + + joker_obj.ability.extra + end + end +end +FNSJ.simulate_faceless = function(joker_obj, context) + -- Effect not relevant (Discard) +end +FNSJ.simulate_green_joker = function(joker_obj, context) + if context.cardarea == G.jokers and context.before and not context.blueprint then + joker_obj.ability.mult = joker_obj.ability.mult + joker_obj.ability.extra.hand_add + end + if + context.cardarea == G.hand + and context.discard + and context.other_card == context.cards[1] + and not context.blueprint + then + joker_obj.ability.mult = math.max(0, joker_obj.ability.mult - joker_obj.ability.extra.discard_sub) + end + if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.mult) end +end +FNSJ.simulate_superposition = function(joker_obj, context) + -- Effect might be relevant? +end +FNSJ.simulate_todo_list = function(joker_obj, context) + if context.cardarea == G.jokers and context.before then + if context.scoring_name == joker_obj.ability.to_do_poker_hand then + FN.SIM.add_dollars(joker_obj.ability.extra.dollars) + end + end +end +FNSJ.simulate_cavendish = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then FN.SIM.x_mult(joker_obj.ability.extra.Xmult) end +end +FNSJ.simulate_card_sharp = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + if G.GAME.hands[context.scoring_name] and G.GAME.hands[context.scoring_name].played_this_round > 1 then + FN.SIM.x_mult(joker_obj.ability.extra.Xmult) + end + end +end +FNSJ.simulate_red_card = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.mult) end +end +FNSJ.simulate_madness = function(joker_obj, context) + FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) +end +FNSJ.simulate_square = function(joker_obj, context) + if context.cardarea == G.jokers and context.before and not context.blueprint then + if #context.full_hand == 4 then + joker_obj.ability.extra.chips = joker_obj.ability.extra.chips + joker_obj.ability.extra.chip_mod + end + end + if context.cardarea == G.jokers and context.global then FN.SIM.add_chips(joker_obj.ability.extra.chips) end +end +FNSJ.simulate_seance = function(joker_obj, context) + -- Effect might be relevant? (Consumable) +end +FNSJ.simulate_riff_raff = function(joker_obj, context) + -- Effect not relevant (Blind) +end +FNSJ.simulate_vampire = function(joker_obj, context) + if context.cardarea == G.jokers and context.before and not context.blueprint then + local num_enhanced = 0 + for _, card in ipairs(context.scoring_hand) do + if card.ability.name ~= "Default Base" and not card.debuff then + num_enhanced = num_enhanced + 1 + FN.SIM.set_ability(card, G.P_CENTERS.c_base) + end + end + if num_enhanced > 0 then + joker_obj.ability.x_mult = joker_obj.ability.x_mult + (joker_obj.ability.extra * num_enhanced) + end + end + + FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) +end +FNSJ.simulate_shortcut = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_hologram = function(joker_obj, context) + FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) +end +FNSJ.simulate_vagabond = function(joker_obj, context) + -- Effect might be relevant? (Consumable) +end +FNSJ.simulate_baron = function(joker_obj, context) + if context.cardarea == G.hand and context.individual then + if FN.SIM.is_rank(context.other_card, 13) and not context.other_card.debuff then + FN.SIM.x_mult(joker_obj.ability.extra) + end + end +end +FNSJ.simulate_cloud_9 = function(joker_obj, context) + -- Effect not relevant (End of Round) +end +FNSJ.simulate_rocket = function(joker_obj, context) + -- Effect not relevant (End of Round) +end +FNSJ.simulate_obelisk = function(joker_obj, context) + if context.cardarea == G.jokers and context.before and not context.blueprint then + local reset = true + local play_more_than = (G.GAME.hands[context.scoring_name].played or 0) + for hand_name, hand in pairs(G.GAME.hands) do + if hand_name ~= context.scoring_name and hand.played >= play_more_than and hand.visible then + reset = false + end + end + if reset then + joker_obj.ability.x_mult = 1 + else + joker_obj.ability.x_mult = joker_obj.ability.x_mult + joker_obj.ability.extra + end + end + FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) +end +FNSJ.simulate_midas_mask = function(joker_obj, context) + if context.cardarea == G.jokers and context.before and not context.blueprint then + for _, card in ipairs(context.scoring_hand) do + if FN.SIM.is_face(card) then FN.SIM.set_ability(card, G.P_CENTERS.m_gold) end + end + end +end +FNSJ.simulate_luchador = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_photograph = function(joker_obj, context) + if context.cardarea == G.play and context.individual then + local first_face = nil + for i = 1, #context.scoring_hand do + if FN.SIM.is_face(context.scoring_hand[i]) then + first_face = context.scoring_hand[i] + break + end + end + if context.other_card == first_face and not context.other_card.debuff then + FN.SIM.x_mult(joker_obj.ability.extra) + end + end +end +FNSJ.simulate_gift = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_turtle_bean = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_erosion = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + local diff = G.GAME.starting_deck_size - #G.playing_cards + if diff > 0 then FN.SIM.add_mult(joker_obj.ability.extra * diff) end + end +end +FNSJ.simulate_reserved_parking = function(joker_obj, context) + if context.cardarea == G.hand and context.individual then + if FN.SIM.is_face(context.other_card) and not context.other_card.debuff then + local exact_dollars, min_dollars, max_dollars = FN.SIM.get_probabilistic_extremes( + pseudorandom("notthistime"), + joker_obj.ability.extra.odds, + joker_obj.ability.extra.dollars, + 0 + ) + FN.SIM.add_dollars(exact_dollars, min_dollars, max_dollars) + end + end +end +FNSJ.simulate_mail = function(joker_obj, context) + if context.cardarea == G.hand and context.discard then + if context.other_card.id == G.GAME.current_round.mail_card.id and not context.other_card.debuff then + FN.SIM.add_dollars(joker_obj.ability.extra) + end + end +end +FNSJ.simulate_to_the_moon = function(joker_obj, context) + -- Effect not relevant (End of Round) +end +FNSJ.simulate_hallucination = function(joker_obj, context) + -- Effect not relevant (Outside of Play) +end +FNSJ.simulate_fortune_teller = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + if G.GAME.consumeable_usage_total and G.GAME.consumeable_usage_total.tarot then + FN.SIM.add_mult(G.GAME.consumeable_usage_total.tarot) + end + end +end +FNSJ.simulate_juggler = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_drunkard = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_stone = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + FN.SIM.add_chips(joker_obj.ability.extra * joker_obj.ability.stone_tally) + end +end +FNSJ.simulate_golden = function(joker_obj, context) + -- Effect not relevant (End of Round) +end +FNSJ.simulate_lucky_cat = function(joker_obj, context) + if not joker_obj.ability.x_mult_range then + joker_obj.ability.x_mult_range = { + min = joker_obj.ability.x_mult, + exact = joker_obj.ability.x_mult, + max = joker_obj.ability.x_mult, + } + end + + if context.cardarea == G.play and context.individual and not context.blueprint then + local function lucky_cat(field) + if context.other_card.lucky_trigger and context.other_card.lucky_trigger[field] then + joker_obj.ability.x_mult_range[field] = joker_obj.ability.x_mult_range[field] + joker_obj.ability.extra + if joker_obj.ability.x_mult_range[field] < 1 then joker_obj.ability.x_mult_range[field] = 1 end -- Precaution + end + end + lucky_cat("min") + lucky_cat("exact") + lucky_cat("max") + end + + if context.cardarea == G.jokers and context.global then + FN.SIM.x_mult( + joker_obj.ability.x_mult_range.exact, + joker_obj.ability.x_mult_range.min, + joker_obj.ability.x_mult_range.max + ) + end +end +FNSJ.simulate_baseball = function(joker_obj, context) + if context.cardarea == G.jokers and context.other_joker then + if context.other_joker.rarity == 2 and context.other_joker ~= joker_obj then + FN.SIM.x_mult(joker_obj.ability.extra) + end + end +end +FNSJ.simulate_bull = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + local function bull(data) + return joker_obj.ability.extra * math.max(0, G.GAME.dollars + data.dollars) + end + local min_chips = bull(FN.SIM.running.min) + local exact_chips = bull(FN.SIM.running.exact) + local max_chips = bull(FN.SIM.running.max) + FN.SIM.add_chips(exact_chips, min_chips, max_chips) + end +end +FNSJ.simulate_diet_cola = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_trading = function(joker_obj, context) + -- Effect not relevant (Discard) +end +FNSJ.simulate_flash = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.mult) end +end +FNSJ.simulate_popcorn = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.mult) end +end +FNSJ.simulate_trousers = function(joker_obj, context) + if context.cardarea == G.jokers and context.before and not context.blueprint then + if next(context.poker_hands["Two Pair"]) or next(context.poker_hands["Full House"]) then + joker_obj.ability.mult = joker_obj.ability.mult + joker_obj.ability.extra + end + end + if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.mult) end +end +FNSJ.simulate_ancient = function(joker_obj, context) + if context.cardarea == G.play and context.individual then + if + FN.SIM.is_suit(context.other_card, G.GAME.current_round.ancient_card.suit) + and not context.other_card.debuff + then + FN.SIM.x_mult(joker_obj.ability.extra) + end + end +end +FNSJ.simulate_ramen = function(joker_obj, context) + if context.cardarea == G.hand and context.discard then + joker_obj.ability.x_mult = math.max(1, joker_obj.ability.x_mult - joker_obj.ability.extra) + end + FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) +end +FNSJ.simulate_walkie_talkie = function(joker_obj, context) + if context.cardarea == G.play and context.individual then + if FN.SIM.is_rank(context.other_card, { 10, 4 }) and not context.other_card.debuff then + FN.SIM.add_chips(joker_obj.ability.extra.chips) + FN.SIM.add_mult(joker_obj.ability.extra.mult) + end + end +end +FNSJ.simulate_selzer = function(joker_obj, context) + if context.cardarea == G.play and context.repetition then FN.SIM.add_reps(1) end +end +FNSJ.simulate_castle = function(joker_obj, context) + if context.cardarea == G.hand and context.discard and not context.blueprint then + if + FN.SIM.is_suit(context.other_card, G.GAME.current_round.castle_card.suit) and not context.other_card.debuff + then + joker_obj.ability.extra.chips = joker_obj.ability.extra.chips + joker_obj.ability.extra.chip_mod + end + end + if context.cardarea == G.jokers and context.global then FN.SIM.add_chips(joker_obj.ability.extra.chips) end +end +FNSJ.simulate_smiley = function(joker_obj, context) + if context.cardarea == G.play and context.individual then + if FN.SIM.is_face(context.other_card) and not context.other_card.debuff then + FN.SIM.add_mult(joker_obj.ability.extra) + end + end +end +FNSJ.simulate_campfire = function(joker_obj, context) + FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) +end +FNSJ.simulate_ticket = function(joker_obj, context) + if context.cardarea == G.play and context.individual then + if context.other_card.ability.effect == "Gold Card" and not context.other_card.debuff then + FN.SIM.add_dollars(joker_obj.ability.extra) + end + end +end +FNSJ.simulate_mr_bones = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_acrobat = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + -- Note: Checking against 1 is needed as hands_left is not decremented as part of simulation + if G.GAME.current_round.hands_left == 1 then FN.SIM.x_mult(joker_obj.ability.extra) end + end +end +FNSJ.simulate_sock_and_buskin = function(joker_obj, context) + if context.cardarea == G.play and context.repetition then + if FN.SIM.is_face(context.other_card) and not context.other_card.debuff then + FN.SIM.add_reps(joker_obj.ability.extra) + end + end +end +FNSJ.simulate_swashbuckler = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then FN.SIM.add_mult(joker_obj.ability.mult) end +end +FNSJ.simulate_troubadour = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_certificate = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_smeared = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_throwback = function(joker_obj, context) + FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) +end +FNSJ.simulate_hanging_chad = function(joker_obj, context) + if joker_obj.ability.extra == 1 then + if context.cardarea == G.play and context.repetition then + if context.other_card == context.scoring_hand[1] and not context.other_card.debuff then + FN.SIM.add_reps(joker_obj.ability.extra) + end + if context.other_card == context.scoring_hand[2] and not context.other_card.debuff then + FN.SIM.add_reps(joker_obj.ability.extra) + end + end + else + if context.cardarea == G.play and context.repetition then + if context.other_card == context.scoring_hand[1] and not context.other_card.debuff then + FN.SIM.add_reps(joker_obj.ability.extra) + end + end + end +end +FNSJ.simulate_rough_gem = function(joker_obj, context) + if context.cardarea == G.play and context.individual then + if FN.SIM.is_suit(context.other_card, "Diamonds") and not context.other_card.debuff then + FN.SIM.add_dollars(joker_obj.ability.extra) + end + end +end +FNSJ.simulate_bloodstone = function(joker_obj, context) + if context.cardarea == G.play and context.individual then + if FN.SIM.is_suit(context.other_card, "Hearts") and not context.other_card.debuff then + local exact_xmult, min_xmult, max_xmult = FN.SIM.get_probabilistic_extremes( + pseudorandom("nopeagain"), + joker_obj.ability.extra.odds, + joker_obj.ability.extra.Xmult, + 1 + ) + FN.SIM.x_mult(exact_xmult, min_xmult, max_xmult) + end + end +end +FNSJ.simulate_arrowhead = function(joker_obj, context) + if context.cardarea == G.play and context.individual then + if FN.SIM.is_suit(context.other_card, "Spades") and not context.other_card.debuff then + FN.SIM.add_chips(joker_obj.ability.extra) + end + end +end +FNSJ.simulate_onyx_agate = function(joker_obj, context) + if context.cardarea == G.play and context.individual then + if FN.SIM.is_suit(context.other_card, "Clubs") and not context.other_card.debuff then + FN.SIM.add_mult(joker_obj.ability.extra) + end + end +end +FNSJ.simulate_glass = function(joker_obj, context) + FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) +end +FNSJ.simulate_ring_master = function(joker_obj, context) + -- Effect not relevant (Note: this is actually Showman) +end +FNSJ.simulate_flower_pot = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + local suit_count = { + ["Hearts"] = 0, + ["Diamonds"] = 0, + ["Spades"] = 0, + ["Clubs"] = 0, + } + + function inc_suit(suit) + suit_count[suit] = suit_count[suit] + 1 + end + + -- Account for all 'real' suits. + -- NOTE: Debuffed (non-wild) cards are still counted for their suits + for _, card in ipairs(context.scoring_hand) do + if card.ability.effect ~= "Wild Card" then + if FN.SIM.is_suit(card, "Hearts", true) and suit_count["Hearts"] == 0 then + inc_suit("Hearts") + elseif FN.SIM.is_suit(card, "Diamonds", true) and suit_count["Diamonds"] == 0 then + inc_suit("Diamonds") + elseif FN.SIM.is_suit(card, "Spades", true) and suit_count["Spades"] == 0 then + inc_suit("Spades") + elseif FN.SIM.is_suit(card, "Clubs", true) and suit_count["Clubs"] == 0 then + inc_suit("Clubs") + end + end + end + + -- Let Wild Cards fill in the gaps. + -- NOTE: Debuffed wild cards are completely ignored + for _, card in ipairs(context.scoring_hand) do + if card.ability.effect == "Wild Card" then + if FN.SIM.is_suit(card, "Hearts") and suit_count["Hearts"] == 0 then + inc_suit("Hearts") + elseif FN.SIM.is_suit(card, "Diamonds") and suit_count["Diamonds"] == 0 then + inc_suit("Diamonds") + elseif FN.SIM.is_suit(card, "Spades") and suit_count["Spades"] == 0 then + inc_suit("Spades") + elseif FN.SIM.is_suit(card, "Clubs") and suit_count["Clubs"] == 0 then + inc_suit("Clubs") + end + end + end + + if + suit_count["Hearts"] > 0 + and suit_count["Diamonds"] > 0 + and suit_count["Spades"] > 0 + and suit_count["Clubs"] > 0 + then + FN.SIM.x_mult(joker_obj.ability.extra) + end + end +end +FNSJ.simulate_blueprint = function(joker_obj, context) + local joker_to_mimic = nil + for idx, joker in ipairs(FN.SIM.env.jokers) do + if joker == joker_obj then joker_to_mimic = FN.SIM.env.jokers[idx + 1] end + end + if joker_to_mimic then + context.blueprint = (context.blueprint and (context.blueprint + 1)) or 1 + if context.blueprint > #FN.SIM.env.jokers + 1 then return end + FN.SIM.simulate_joker(joker_to_mimic, context) + end +end +FNSJ.simulate_wee = function(joker_obj, context) + if context.cardarea == G.play and context.individual and not context.blueprint then + if FN.SIM.is_rank(context.other_card, 2) and not context.other_card.debuff then + joker_obj.ability.extra.chips = joker_obj.ability.extra.chips + joker_obj.ability.extra.chip_mod + end + end + if context.cardarea == G.jokers and context.global then FN.SIM.add_chips(joker_obj.ability.extra.chips) end +end +FNSJ.simulate_merry_andy = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_oops = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_idol = function(joker_obj, context) + if context.cardarea == G.play and context.individual then + if + FN.SIM.is_rank(context.other_card, G.GAME.current_round.idol_card.id) + and FN.SIM.is_suit(context.other_card, G.GAME.current_round.idol_card.suit) + and not context.other_card.debuff + then + FN.SIM.x_mult(joker_obj.ability.extra) + end + end +end +FNSJ.simulate_seeing_double = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + local suit_count = { + ["Hearts"] = 0, + ["Diamonds"] = 0, + ["Spades"] = 0, + ["Clubs"] = 0, + } + + function inc_suit(suit) + suit_count[suit] = suit_count[suit] + 1 + end + + -- Account for all 'real' suits: + for _, card in ipairs(context.scoring_hand) do + if card.ability.effect ~= "Wild Card" then + if FN.SIM.is_suit(card, "Hearts") then inc_suit("Hearts") end + if FN.SIM.is_suit(card, "Diamonds") then inc_suit("Diamonds") end + if FN.SIM.is_suit(card, "Spades") then inc_suit("Spades") end + if FN.SIM.is_suit(card, "Clubs") then inc_suit("Clubs") end + end + end + + -- Let Wild Cards fill in the gaps: + for _, card in ipairs(context.scoring_hand) do + if card.ability.effect == "Wild Card" then + -- IMPORTANT: Clubs must come first here, because Clubs are required for xmult. This is in line with game's implementation. + if FN.SIM.is_suit(card, "Clubs") and suit_count["Clubs"] == 0 then + inc_suit("Clubs") + elseif FN.SIM.is_suit(card, "Hearts") and suit_count["Hearts"] == 0 then + inc_suit("Hearts") + elseif FN.SIM.is_suit(card, "Diamonds") and suit_count["Diamonds"] == 0 then + inc_suit("Diamonds") + elseif FN.SIM.is_suit(card, "Spades") and suit_count["Spades"] == 0 then + inc_suit("Spades") + end + end + end + + if + suit_count["Clubs"] > 0 + and (suit_count["Hearts"] > 0 or suit_count["Diamonds"] > 0 or suit_count["Spades"] > 0) + then + FN.SIM.x_mult(joker_obj.ability.extra) + end + end +end +FNSJ.simulate_matador = function(joker_obj, context) + if context.cardarea == G.jokers and context.debuffed_hand then + if G.GAME.blind.triggered then FN.SIM.add_dollars(joker_obj.ability.extra) end + end +end +FNSJ.simulate_hit_the_road = function(joker_obj, context) + if context.cardarea == G.hand and context.discard and not context.blueprint then + if FN.SIM.is_rank(context.other_card, 11) and not context.other_card.debuff then + joker_obj.ability.x_mult = joker_obj.ability.x_mult + joker_obj.ability.extra + end + end + FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) +end +FNSJ.simulate_duo = function(joker_obj, context) + FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) +end +FNSJ.simulate_trio = function(joker_obj, context) + FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) +end +FNSJ.simulate_family = function(joker_obj, context) + FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) +end +FNSJ.simulate_order = function(joker_obj, context) + FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) +end +FNSJ.simulate_tribe = function(joker_obj, context) + FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) +end +FNSJ.simulate_stuntman = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then FN.SIM.add_chips(joker_obj.ability.extra.chip_mod) end +end +FNSJ.simulate_invisible = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_brainstorm = function(joker_obj, context) + local joker_to_mimic = FN.SIM.env.jokers[1] + if joker_to_mimic and joker_to_mimic ~= joker_obj then + context.blueprint = (context.blueprint and (context.blueprint + 1)) or 1 + if context.blueprint > #FN.SIM.env.jokers + 1 then return end + FN.SIM.simulate_joker(joker_to_mimic, context) + end +end +FNSJ.simulate_satellite = function(joker_obj, context) + -- Effect not relevant (End of Round) +end +FNSJ.simulate_shoot_the_moon = function(joker_obj, context) + if context.cardarea == G.hand and context.individual then + if FN.SIM.is_rank(context.other_card, 12) and not context.other_card.debuff then FN.SIM.add_mult(13) end + end +end +FNSJ.simulate_drivers_license = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + if (joker_obj.ability.driver_tally or 0) >= 16 then FN.SIM.x_mult(joker_obj.ability.extra) end + end +end +FNSJ.simulate_cartomancer = function(joker_obj, context) + -- Effect not relevant (Blind) +end +FNSJ.simulate_astronomer = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_burnt = function(joker_obj, context) + -- Effect not relevant (Discard) +end +FNSJ.simulate_bootstraps = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + local function bootstraps(data) + return joker_obj.ability.extra.mult + * math.floor((G.GAME.dollars + data.dollars) / joker_obj.ability.extra.dollars) + end + local min_mult = bootstraps(FN.SIM.running.min) + local exact_mult = bootstraps(FN.SIM.running.exact) + local max_mult = bootstraps(FN.SIM.running.max) + FN.SIM.add_mult(exact_mult, min_mult, max_mult) + end +end +FNSJ.simulate_caino = function(joker_obj, context) + if context.cardarea == G.jokers and context.global then + if joker_obj.ability.caino_xmult > 1 then FN.SIM.x_mult(joker_obj.ability.caino_xmult) end + end +end +FNSJ.simulate_triboulet = function(joker_obj, context) + if context.cardarea == G.play and context.individual then + if FN.SIM.is_rank(context.other_card, { 12, 13 }) and not context.other_card.debuff then + FN.SIM.x_mult(joker_obj.ability.extra) + end + end +end +FNSJ.simulate_yorick = function(joker_obj, context) + if context.cardarea == G.hand and context.discard and not context.blueprint then + -- This is only necessary for 'The Hook' blind. + if joker_obj.ability.yorick_discards > 1 then + joker_obj.ability.yorick_discards = joker_obj.ability.yorick_discards - 1 + else + joker_obj.ability.yorick_discards = joker_obj.ability.extra.discards + joker_obj.ability.x_mult = joker_obj.ability.x_mult + joker_obj.ability.extra.xmult + end + end + + FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) +end +FNSJ.simulate_chicot = function(joker_obj, context) + -- Effect not relevant (Meta) +end +FNSJ.simulate_perkeo = function(joker_obj, context) + -- Effect not relevant (Blind) +end diff --git a/compatibility/Preview/UtilsPreview.lua b/compatibility/Preview/UtilsPreview.lua new file mode 100644 index 000000000..77bf7609b --- /dev/null +++ b/compatibility/Preview/UtilsPreview.lua @@ -0,0 +1,39 @@ +-- Utilities for checking states and formatting display. + +function FN.PRE.is_enough_to_win(chips) + if + G.GAME.blind + and (G.STATE == G.STATES.SELECTING_HAND or G.STATE == G.STATES.DRAW_TO_HAND or G.STATE == G.STATES.PLAY_TAROT) + then + return (G.GAME.chips + chips >= G.GAME.blind.chips) + else + return false + end +end + +function FN.PRE.format_number(num) + if not num or type(num) ~= "number" then return num or "" end + return number_format(num) -- Default Balatro function. +end + +function FN.PRE.get_dollar_colour(n) + if n == 0 then + return HEX("7e7667") + elseif n > 0 then + return G.C.MONEY + elseif n < 0 then + return G.C.RED + end +end + +function FN.PRE.get_sign_str(n) + if n >= 0 then + return "+" + else + return "" -- Negative numbers already have a sign + end +end + +function FN.PRE.enabled() + return G.SETTINGS.FN.preview_score or G.SETTINGS.FN.preview_dollars +end diff --git a/compatibility/Preview/UtilsSimulate.lua b/compatibility/Preview/UtilsSimulate.lua new file mode 100644 index 000000000..68d137ead --- /dev/null +++ b/compatibility/Preview/UtilsSimulate.lua @@ -0,0 +1,242 @@ +-- Utilities for writing simulation functions for jokers. +-- +-- In general, these functions replicate the game's internal calculations and +-- variables in order to avoid affecting the game's state during simulation. +-- These functions ensure that the score calculation remains identical to the +-- game; DO NOT directly modify the `FN.SIM.running` score variables. + +-- +-- HIGH-LEVEL: +-- + +function FN.SIM.JOKERS.add_suit_mult(joker_obj, context) + if context.cardarea == G.play and context.individual then + if FN.SIM.is_suit(context.other_card, joker_obj.ability.extra.suit) and not context.other_card.debuff then + FN.SIM.add_mult(joker_obj.ability.extra.s_mult) + end + end +end + +function FN.SIM.JOKERS.add_type_mult(joker_obj, context) + if context.cardarea == G.jokers and context.global and next(context.poker_hands[joker_obj.ability.type]) then + FN.SIM.add_mult(joker_obj.ability.t_mult) + end +end + +function FN.SIM.JOKERS.add_type_chips(joker_obj, context) + if context.cardarea == G.jokers and context.global and next(context.poker_hands[joker_obj.ability.type]) then + FN.SIM.add_chips(joker_obj.ability.t_chips) + end +end + +function FN.SIM.JOKERS.x_mult_if_global(joker_obj, context) + if context.cardarea == G.jokers and context.global then + if + joker_obj.ability.x_mult > 1 + and (joker_obj.ability.type == "" or next(context.poker_hands[joker_obj.ability.type])) + then + FN.SIM.x_mult(joker_obj.ability.x_mult) + end + end +end + +function FN.SIM.get_probabilistic_extremes(random_value, odds, reward, default) + -- Exact mirrors the game's probability calculation + local exact = default + if random_value < G.GAME.probabilities.normal / odds then exact = reward end + + -- Minimum is default unless probability is guaranteed (eg. 2 in 2 chance) + local min = default + if G.GAME.probabilities.normal >= odds then min = reward end + + -- Maximum is always reward (probability is always > 0); redundant variable is for readability + local max = reward + + return exact, min, max +end + +function FN.SIM.adjust_field_with_range(adj_func, field, mod_func, exact_value, min_value, max_value) + if not exact_value then error("Cannot adjust field, exact_value is missing.") end + + if not min_value or not max_value then + min_value = exact_value + max_value = exact_value + end + + FN.SIM.running.min[field] = mod_func(adj_func(FN.SIM.running.min[field], min_value)) + FN.SIM.running.exact[field] = mod_func(adj_func(FN.SIM.running.exact[field], exact_value)) + FN.SIM.running.max[field] = mod_func(adj_func(FN.SIM.running.max[field], max_value)) +end + +function FN.SIM.add_chips(exact, min, max) + FN.SIM.adjust_field_with_range(function(x, y) + return x + y + end, "chips", FN.SIM.mod_chips, exact, min, max) +end + +function FN.SIM.add_mult(exact, min, max) + FN.SIM.adjust_field_with_range(function(x, y) + return x + y + end, "mult", FN.SIM.mod_mult, exact, min, max) +end + +function FN.SIM.x_mult(exact, min, max) + FN.SIM.adjust_field_with_range(function(x, y) + return x * y + end, "mult", FN.SIM.mod_mult, exact, min, max) +end + +function FN.SIM.add_dollars(exact, min, max) + -- NOTE: no mod_func for dollars, so have to declare an identity function + FN.SIM.adjust_field_with_range( + function(x, y) + return x + y + end, + "dollars", + function(x) + return x + end, + exact, + min, + max + ) +end + +function FN.SIM.add_reps(n) + FN.SIM.running.reps = FN.SIM.running.reps + n +end + +-- +-- LOW-LEVEL: +-- + +function FN.SIM.is_suit(card_data, suit, ignore_scorability) + if card_data.debuff and not ignore_scorability then return end + if card_data.ability.effect == "Stone Card" then return false end + if card_data.ability.effect == "Wild Card" and not card_data.debuff then return true end + if next(find_joker("Smeared Joker")) then + local is_card_suit_light = (card_data.suit == "Hearts" or card_data.suit == "Diamonds") + local is_check_suit_light = (suit == "Hearts" or suit == "Diamonds") + if is_card_suit_light == is_check_suit_light then return true end + end + return card_data.suit == suit +end + +function FN.SIM.get_rank(card_data) + if card_data.ability.effect == "Stone Card" and not card_data.vampired then + FN.SIM.misc.next_stone_id = FN.SIM.misc.next_stone_id - 1 + return FN.SIM.misc.next_stone_id + end + return card_data.rank +end + +function FN.SIM.is_rank(card_data, ranks) + if card_data.ability.effect == "Stone Card" then return false end + + if type(ranks) == "number" then ranks = { ranks } end + if FN.SIM.is_deck("b_mp_gradient") then + local temp = {} + + for i, v in ipairs(ranks) do + temp[v - 1] = true + temp[v] = true + temp[v + 1] = true + end + + ranks = {} + for k, v in pairs(temp) do + if k == 15 then + k = 2 + elseif k == 1 then + k = 14 + end + table.insert(ranks, k) + end + table.sort(ranks) + end + for _, r in ipairs(ranks) do + if card_data.rank == r then return true end + end + return false +end + +function FN.SIM.check_rank_parity(card_data, check_even) + if check_even then + return FN.SIM.is_rank(card_data, { 2, 4, 6, 8, 10 }) + else + return FN.SIM.is_rank(card_data, { 3, 5, 7, 9, 14 }) + end +end + +function FN.SIM.is_face(card_data) + return (FN.SIM.is_rank(card_data, { 11, 12, 13 }) or next(find_joker("Pareidolia"))) +end + +function FN.SIM.set_ability(card_data, center) + -- See Card:set_ability() + card_data.ability = { + name = center.name, + effect = center.effect, + set = center.set, + mult = center.config.mult or 0, + h_mult = center.config.h_mult or 0, + h_x_mult = center.config.h_x_mult or 0, + h_dollars = center.config.h_dollars or 0, + p_dollars = center.config.p_dollars or 0, + t_mult = center.config.t_mult or 0, + t_chips = center.config.t_chips or 0, + x_mult = center.config.Xmult or 1, + h_size = center.config.h_size or 0, + d_size = center.config.d_size or 0, + extra = copy_table(center.config.extra) or nil, + extra_value = 0, + type = center.config.type or "", + order = center.order or nil, + forced_selection = card_data.ability and card_data.ability.forced_selection or nil, + perma_bonus = card_data.ability and card_data.ability.perma_bonus or 0, + bonus = center.config.bonus or 0, + } +end + +function FN.SIM.set_edition(card_data, edition) + card_data.edition = nil + if not edition then return end + + if edition.holo then + if not card_data.edition then card_data.edition = {} end + card_data.edition.mult = G.P_CENTERS.e_holo.config.extra + card_data.edition.holo = true + card_data.edition.type = "holo" + elseif edition.foil then + if not card_data.edition then card_data.edition = {} end + card_data.edition.chips = G.P_CENTERS.e_foil.config.extra + card_data.edition.foil = true + card_data.edition.type = "foil" + elseif edition.polychrome then + if not card_data.edition then card_data.edition = {} end + card_data.edition.x_mult = G.P_CENTERS.e_polychrome.config.extra + card_data.edition.polychrome = true + card_data.edition.type = "polychrome" + elseif edition.negative then + -- TODO + end +end + +function FN.SIM.is_deck(deck) + if G.GAME.selected_back.effect.center.key == deck then + return true + elseif G.GAME.selected_back.effect.center.key == "b_mp_cocktail" then + for i = 1, 3 do + if G.GAME.modifiers.mp_cocktail[i] == deck then return true end + end + end + return false +end + +function FN.SIM.mod_chips(_chips) + return _chips +end + +function FN.SIM.mod_mult(_mult) + return _mult +end diff --git a/objects/blinds/nemesis.lua b/objects/blinds/nemesis.lua new file mode 100644 index 000000000..e9474f151 --- /dev/null +++ b/objects/blinds/nemesis.lua @@ -0,0 +1,35 @@ +SMODS.Atlas({ + key = "player_blind_chip", + path = "player_blind_row.png", + atlas_table = "ANIMATION_ATLAS", + frames = 21, + px = 34, + py = 34, +}) + +SMODS.Atlas({ + key = "player_blind_col", + path = "blind_col.png", + atlas_table = "ANIMATION_ATLAS", + frames = 21, + px = 34, + py = 34, +}) + +SMODS.Blind({ + key = "nemesis", + dollars = 5, + mult = 1, -- Jen's Almanac crashes the game if the mult is 0 + boss_colour = G.C.MULTIPLAYER, + boss = { min = 1, max = 10 }, + atlas = "player_blind_chip", + discovered = true, + in_pool = function(self) + return false + end, +}) + +function MP.is_pvp_boss() + if not G.GAME or not G.GAME.blind or not G.GAME.blind.config.blind then return false end + return G.GAME.blind.config.blind.key == "bl_mp_nemesis" or G.GAME.blind.pvp +end diff --git a/objects/boosters/standard_giga.lua b/objects/boosters/standard_giga.lua new file mode 100644 index 000000000..d9daf0478 --- /dev/null +++ b/objects/boosters/standard_giga.lua @@ -0,0 +1,46 @@ +SMODS.Atlas({ + key = "standard_giga", + path = "standard_giga.png", + px = 71, + py = 95, +}) + +SMODS.Booster({ + key = "standard_giga", + kind = "Standard", + group_key = "k_standard_pack", + atlas = "standard_giga", + pos = { x = 0, y = 0 }, + config = { extra = 10, choose = 4 }, + cost = 16, + weight = 0, + unskippable = true, + create_card = function(self, card, i) + local s_append = "" -- MP.get_booster_append(card) + local b_append = MP.ante_based() .. s_append + + local _edition = poll_edition("standard_edition" .. b_append, 2, true) + local _seal = SMODS.poll_seal({ mod = 10, key = "stdseal" .. b_append }) + + return { + set = (pseudorandom(pseudoseed("stdset" .. b_append)) > 0.6) and "Enhanced" or "Base", + edition = _edition, + seal = _seal, + area = G.pack_cards, + skip_materialize = true, + soulable = true, + key_append = "sta" .. s_append, + } + end, +}) + +-- unskippable pack hook here, why not +local can_skip_ref = G.FUNCS.can_skip_booster +G.FUNCS.can_skip_booster = function(e) + if SMODS.OPENED_BOOSTER and SMODS.OPENED_BOOSTER.config.center.unskippable then + e.config.colour = G.C.UI.BACKGROUND_INACTIVE + e.config.button = nil + else + return can_skip_ref(e) + end +end diff --git a/objects/challenges/all_must_go.lua b/objects/challenges/all_must_go.lua new file mode 100644 index 000000000..7d7178413 --- /dev/null +++ b/objects/challenges/all_must_go.lua @@ -0,0 +1,10 @@ +SMODS.Challenge({ + key = "all_must_go", + jokers = { + { id = "j_mp_taxes", eternal = true }, + { id = "j_campfire", eternal = true }, + }, + unlocked = function(self) + return true + end, +}) diff --git a/objects/challenges/bacon.lua b/objects/challenges/bacon.lua new file mode 100644 index 000000000..16e6b6c76 --- /dev/null +++ b/objects/challenges/bacon.lua @@ -0,0 +1,57 @@ +SMODS.Challenge({ + key = "bacon", + rules = { + custom = { + { id = "mp_indigo" }, + }, + }, + restrictions = { + banned_cards = { + { + id = "p_celestial_normal_1", + ids = { + "p_celestial_normal_2", + "p_celestial_normal_3", + "p_celestial_normal_4", + "p_celestial_jumbo_1", + "p_celestial_jumbo_2", + "p_celestial_mega_1", + "p_celestial_mega_2", + }, + }, + { + id = "p_standard_normal_1", + ids = { + "p_standard_normal_2", + "p_standard_normal_3", + "p_standard_normal_4", + "p_standard_jumbo_1", + "p_standard_jumbo_2", + "p_standard_mega_1", + "p_standard_mega_2", + }, + }, + { + id = "p_arcana_normal_1", + ids = { + "p_arcana_normal_2", + "p_arcana_normal_3", + "p_arcana_normal_4", + "p_arcana_jumbo_1", + "p_arcana_jumbo_2", + "p_arcana_mega_1", + "p_arcana_mega_2", + }, + }, + }, + }, + + apply = function(self) + G.GAME.selected_back.atlas = "mp_decks" + G.GAME.selected_back.pos = { x = 1, y = 0 } + G.GAME.modifiers.booster_choice_mod = (G.GAME.modifiers.booster_choice_mod or 0) + 1 + end, + unlocked = function(self) + return true + end, +}) diff --git a/objects/challenges/balancing_act.lua b/objects/challenges/balancing_act.lua new file mode 100644 index 000000000..cbd3b148b --- /dev/null +++ b/objects/challenges/balancing_act.lua @@ -0,0 +1,16 @@ +-- Effect lives in layers/score_instability.lua (via rules.custom -> mp_score_instability). +SMODS.Challenge({ + key = "balancing_act", + rules = { + custom = { + { id = "mp_score_instability" }, + { id = "mp_score_instability_EXAMPLE" }, -- ????????????????????? + { id = "mp_score_instability_LOC1" }, + { id = "mp_score_instability_LOC2" }, + { id = "mp_ante_scaling", value = 0.25 }, -- this would be in modifiers table if it actually worked + }, + }, + unlocked = function(self) + return true + end, +}) diff --git a/objects/challenges/chore_list.lua b/objects/challenges/chore_list.lua new file mode 100644 index 000000000..28df3a787 --- /dev/null +++ b/objects/challenges/chore_list.lua @@ -0,0 +1,32 @@ +SMODS.Challenge({ + key = "chore_list", + jokers = { + { id = "j_todo_list", eternal = true, rental = true, edition = "negative" }, + { id = "j_todo_list", eternal = true, rental = true, edition = "negative" }, + }, + restrictions = { + banned_cards = { + { id = "j_trading" }, + { id = "j_midas_mask" }, + { id = "j_golden" }, + { id = "j_todo_list" }, + { id = "j_rough_gem" }, + { id = "j_reserved_parking" }, + { id = "j_to_the_moon" }, + { id = "j_business" }, + { id = "j_delayed_grat" }, + { id = "j_satellite" }, + { id = "j_egg" }, + { id = "j_faceless" }, + { id = "j_mail" }, + { id = "j_golden" }, + { id = "j_gift" }, + { id = "j_riff_raff" }, + { id = "j_chaos" }, + { id = "j_mp_penny_pincher" }, + }, + }, + unlocked = function(self) + return true + end, +}) diff --git a/objects/challenges/divination.lua b/objects/challenges/divination.lua new file mode 100644 index 000000000..5b35ff906 --- /dev/null +++ b/objects/challenges/divination.lua @@ -0,0 +1,9 @@ +SMODS.Challenge({ + key = "divination", + jokers = { + { id = "j_vagabond", eternal = true }, + }, + unlocked = function(self) + return true + end, +}) diff --git a/objects/challenges/eeeee.lua b/objects/challenges/eeeee.lua new file mode 100644 index 000000000..6c5c0d13e --- /dev/null +++ b/objects/challenges/eeeee.lua @@ -0,0 +1,12 @@ +-- Effect lives in layers/eeeee.lua; activated here via rules.custom -> mp_eeeee. +SMODS.Challenge({ + key = "mp_eeeee", + rules = { + custom = { + { id = "mp_eeeee" }, + }, + }, + unlocked = function(self) + return true + end, +}) diff --git a/objects/challenges/high_hand.lua b/objects/challenges/high_hand.lua new file mode 100644 index 000000000..31f795219 --- /dev/null +++ b/objects/challenges/high_hand.lua @@ -0,0 +1,18 @@ +SMODS.Challenge({ + key = "high_hand", + rules = { + modifiers = { + { id = "hands", value = 1 }, + { id = "hand_size", value = 26 }, + { id = "discards", value = 0 }, + }, + }, + restrictions = { + banned_cards = { + { id = "j_burglar" }, + }, + }, + unlocked = function(self) + return true + end, +}) diff --git a/objects/challenges/in_the_red.lua b/objects/challenges/in_the_red.lua new file mode 100644 index 000000000..c35521a21 --- /dev/null +++ b/objects/challenges/in_the_red.lua @@ -0,0 +1,20 @@ +SMODS.Challenge({ + key = "in_the_red", + rules = { + custom = { + { id = "no_reward_specific", value = "Small" }, + { id = "no_reward_specific", value = "Big" }, + }, + }, + jokers = { + { id = "j_credit_card", eternal = true, edition = "negative", rental = true }, + }, + restrictions = { + banned_tags = { + { id = "tag_investment" }, + }, + }, + unlocked = function(self) + return true + end, +}) diff --git a/objects/challenges/legendaries.lua b/objects/challenges/legendaries.lua new file mode 100644 index 000000000..e38d39de4 --- /dev/null +++ b/objects/challenges/legendaries.lua @@ -0,0 +1,32 @@ +SMODS.Challenge({ + key = "legendaries", + rules = { + modifiers = { + { + id = "joker_slots", + value = 6, + }, + }, + }, + jokers = { + { id = "j_caino", eternal = true }, + { id = "j_perkeo", eternal = true }, + { id = "j_triboulet", eternal = true }, + { id = "j_yorick", eternal = true }, + { id = "j_joker" }, + }, + restrictions = { + banned_cards = { + { id = "j_selzer" }, + { id = "j_dusk" }, + { id = "j_sock_and_buskin" }, + { id = "j_hanging_chad" }, + { id = "j_mp_hanging_chad" }, + { id = "j_blueprint" }, + { id = "j_brainstorm" }, + }, + }, + unlocked = function(self) + return true + end, +}) diff --git a/objects/challenges/lets_go_gambling.lua b/objects/challenges/lets_go_gambling.lua new file mode 100644 index 000000000..c5001200f --- /dev/null +++ b/objects/challenges/lets_go_gambling.lua @@ -0,0 +1,44 @@ +SMODS.Challenge({ + key = "lets_go_gambling", + rules = { + custom = { + { id = "no_reward_specific", value = "Small" }, + { id = "no_reward_specific", value = "Big" }, + }, + }, + jokers = { + { id = "j_oops", eternal = true, rental = true }, + { id = "j_mp_lets_go_gambling", eternal = true, edition = "negative", rental = true }, + }, + restrictions = { + banned_cards = { + { id = "j_selzer" }, + { id = "j_dusk" }, + { id = "j_hanging_chad" }, + { id = "j_bloodstone" }, + { id = "c_high_priestess" }, + { id = "c_empress" }, + { id = "c_heirophant" }, + { id = "c_chariot" }, + { id = "c_justice" }, + { id = "c_hermit" }, + { id = "c_strength" }, + { id = "c_hanged_man" }, + { id = "c_death" }, + { id = "c_temperance" }, + { id = "c_devil" }, + { id = "c_tower" }, + { id = "c_star" }, + { id = "c_moon" }, + { id = "c_sun" }, + { id = "c_world" }, + }, + }, + deck = { + type = "Challenge Deck", + enhancement = "m_lucky", + }, + unlocked = function(self) + return true + end, +}) diff --git a/objects/challenges/misprint_deck.lua b/objects/challenges/misprint_deck.lua new file mode 100644 index 000000000..91a4a8b91 --- /dev/null +++ b/objects/challenges/misprint_deck.lua @@ -0,0 +1,15 @@ +local deck_cards = {} +for i = 1, 52 do + deck_cards[i] = { s = "S", r = "T" } +end + +SMODS.Challenge({ + key = "misprint_deck", + deck = { + type = "Challenge Deck", + cards = deck_cards, + }, + unlocked = function(self) + return true + end, +}) diff --git a/objects/challenges/oops_all_jokers.lua b/objects/challenges/oops_all_jokers.lua new file mode 100644 index 000000000..36d9d12b5 --- /dev/null +++ b/objects/challenges/oops_all_jokers.lua @@ -0,0 +1,53 @@ +SMODS.Challenge({ + key = "oops_all_jokers", + jokers = { + { id = "j_ring_master", eternal = true, edition = "negative" }, + }, + restrictions = { + banned_cards = { + { id = "c_fool" }, + { id = "c_magician" }, + { id = "c_high_priestess" }, + { id = "c_empress" }, + { id = "c_emperor" }, + { id = "c_heirophant" }, + { id = "c_lovers" }, + { id = "c_chariot" }, + { id = "c_justice" }, + { id = "c_hermit" }, + { id = "c_wheel_of_fortune" }, + { id = "c_strength" }, + { id = "c_hanged_man" }, + { id = "c_death" }, + { id = "c_temperance" }, + { id = "c_devil" }, + { id = "c_tower" }, + { id = "c_star" }, + { id = "c_moon" }, + { id = "c_sun" }, + { id = "c_world" }, + { id = "c_familiar" }, + { id = "c_grim" }, + { id = "c_incantation" }, + { id = "c_talisman" }, + { id = "c_aura" }, + { id = "c_sigil" }, + { id = "c_ouija" }, + { id = "c_ectoplasm" }, + { id = "c_immolate" }, + { id = "c_deja_vu" }, + { id = "c_hex" }, + { id = "c_trance" }, + { id = "c_medium" }, + { id = "c_cryptid" }, + { id = "c_black_hole" }, + { id = "v_tarot_merchant" }, + }, + banned_tags = { + { id = "tag_charm" }, + }, + }, + unlocked = function(self) + return true + end, +}) diff --git a/objects/challenges/planet_tycoon.lua b/objects/challenges/planet_tycoon.lua new file mode 100644 index 000000000..f69aebc96 --- /dev/null +++ b/objects/challenges/planet_tycoon.lua @@ -0,0 +1,21 @@ +SMODS.Challenge({ + key = "planet_tycoon", + rules = { + custom = { + { id = "mp_shop_planets" }, + { id = "mp_shop_planets_EXTENDED" }, + { id = "mp_planet_tycoon_CREDITS" }, + }, + }, + restrictions = { + banned_cards = { + { id = "v_planet_merchant", ids = { "v_planet_tycoon" } }, + }, + }, + apply = function(self) + G.GAME.planet_rate = 360 + end, + unlocked = function(self) + return true + end, +}) diff --git a/objects/challenges/polymorph_spam.lua b/objects/challenges/polymorph_spam.lua new file mode 100644 index 000000000..94020a7c2 --- /dev/null +++ b/objects/challenges/polymorph_spam.lua @@ -0,0 +1,29 @@ +-- Effect lives in layers/polymorph_spam.lua (via rules.custom -> mp_polymorph_spam). +SMODS.Challenge({ + key = "polymorph_spam", + rules = { + custom = { + { id = "mp_polymorph_spam" }, + { id = "mp_polymorph_spam_EXTENDED1" }, + { id = "mp_polymorph_spam_EXTENDED2" }, + }, + }, + restrictions = { + banned_cards = function() + local ret = {} + local add = { + j_campfire = true, + j_invisible = true, + j_caino = true, + j_yorick = true, + } + for i, v in ipairs(G.P_CENTER_POOLS.Joker) do + if (not v.perishable_compat) or add[v.key] then ret[#ret + 1] = { id = v.key } end + end + return ret + end, + }, + unlocked = function(self) + return true + end, +}) diff --git a/objects/challenges/psychosis.lua b/objects/challenges/psychosis.lua new file mode 100644 index 000000000..0fd07b83d --- /dev/null +++ b/objects/challenges/psychosis.lua @@ -0,0 +1,9 @@ +SMODS.Challenge({ + key = "psychosis", + jokers = { + { id = "j_madness", eternal = true }, + }, + unlocked = function(self) + return true + end, +}) diff --git a/objects/challenges/salvaged_sibyl.lua b/objects/challenges/salvaged_sibyl.lua new file mode 100644 index 000000000..e7b187e06 --- /dev/null +++ b/objects/challenges/salvaged_sibyl.lua @@ -0,0 +1,81 @@ +SMODS.Challenge({ + key = "salvaged_sibyl", + rules = { + custom = { + { id = "mp_no_shop_planets" }, + { id = "mp_only_medium" }, + { id = "mp_only_purple_seals" }, + { id = "mp_sibyl_CREDITS" }, + }, + }, + consumeables = { + { id = "c_medium" }, + }, + restrictions = { + banned_cards = { + { id = "j_constellation" }, + { id = "j_satellite" }, + { id = "j_astronomer" }, + { id = "c_high_priestess" }, + { id = "v_planet_merchant", ids = { "v_planet_tycoon" } }, + { id = "v_telescope", ids = { "v_observatory" } }, + { id = "v_magic_trick", ids = { "v_illusion" } }, + { + id = "p_celestial_normal_1", + ids = { + "p_celestial_normal_2", + "p_celestial_normal_3", + "p_celestial_normal_4", + "p_celestial_jumbo_1", + "p_celestial_jumbo_2", + "p_celestial_mega_1", + "p_celestial_mega_2", + }, + }, + { + id = "p_spectral_normal_1", + ids = { + "p_spectral_normal_2", + "p_spectral_jumbo_1", + "p_spectral_mega_1", + }, + }, + { + id = "p_standard_normal_1", + ids = { + "p_standard_normal_2", + "p_standard_normal_3", + "p_standard_normal_4", + "p_standard_jumbo_1", + "p_standard_jumbo_2", + "p_standard_mega_1", + "p_standard_mega_2", + }, + }, + }, + }, + apply = function(self) + G.GAME.selected_back.atlas = "mp_decks" + G.GAME.selected_back.pos = { x = 3, y = 0 } + G.GAME.planet_rate = 0 + end, + unlocked = function(self) + return true + end, +}) + +-- billionth create card hook ever +local create_card_ref = create_card +function create_card(_type, area, legendary, _rarity, skip_materialize, soulable, forced_key, key_append) + if G.GAME.modifiers.mp_only_medium and _type == "Spectral" then + G.GAME.banned_keys["c_medium"] = nil + forced_key = "c_medium" + end + return create_card_ref(_type, area, legendary, _rarity, skip_materialize, soulable, forced_key, key_append) +end + +local set_seal_ref = Card.set_seal +function Card:set_seal(_seal, silent, immediate) + if G.GAME.modifiers.mp_only_purple_seals and _seal then _seal = "Purple" end + return set_seal_ref(self, _seal, silent, immediate) +end diff --git a/objects/challenges/scratch.lua b/objects/challenges/scratch.lua new file mode 100644 index 000000000..66166eb35 --- /dev/null +++ b/objects/challenges/scratch.lua @@ -0,0 +1,18 @@ +SMODS.Challenge({ + key = "scratch", + jokers = { + { id = "j_half" }, + }, + vouchers = { + { id = "v_magic_trick" }, + }, + deck = { + type = "Challenge Deck", + cards = { + { s = "C", r = "7", e = "m_stone" }, + }, + }, + unlocked = function(self) + return true + end, +}) diff --git a/objects/challenges/shared_pockets.lua b/objects/challenges/shared_pockets.lua new file mode 100644 index 000000000..e5cec9ead --- /dev/null +++ b/objects/challenges/shared_pockets.lua @@ -0,0 +1,20 @@ +-- Effect lives in layers/shared_pockets.lua (via rules.custom -> mp_shared_pockets). +SMODS.Challenge({ + key = "shared_pockets", + rules = { + custom = { + { id = "mp_shared_pockets" }, + }, + }, + restrictions = { + banned_cards = { + { id = "j_stencil" }, + }, + }, + apply = function(self) + MP.setup_shared_pockets() + end, + unlocked = function(self) + return true + end, +}) diff --git a/objects/challenges/skip_off.lua b/objects/challenges/skip_off.lua new file mode 100644 index 000000000..559a37f5d --- /dev/null +++ b/objects/challenges/skip_off.lua @@ -0,0 +1,10 @@ +SMODS.Challenge({ + key = "skip_off", + jokers = { + { id = "j_mp_skip_off", eternal = true }, + { id = "j_throwback", eternal = true }, + }, + unlocked = function(self) + return true + end, +}) diff --git a/objects/challenges/speed.lua b/objects/challenges/speed.lua new file mode 100644 index 000000000..8094cd49f --- /dev/null +++ b/objects/challenges/speed.lua @@ -0,0 +1,10 @@ +SMODS.Challenge({ + key = "speed", + jokers = { + { id = "j_mp_conjoined_joker", eternal = true, edition = "negative" }, + { id = "j_mp_speedrun", eternal = true, edition = "negative" }, + }, + unlocked = function(self) + return true + end, +}) diff --git a/objects/challenges/twin_towers.lua b/objects/challenges/twin_towers.lua new file mode 100644 index 000000000..b9c0d350f --- /dev/null +++ b/objects/challenges/twin_towers.lua @@ -0,0 +1,10 @@ +SMODS.Challenge({ + key = "twin_towers", + jokers = { + { id = "j_obelisk", eternal = true }, + { id = "j_obelisk", eternal = true }, + }, + unlocked = function(self) + return true + end, +}) diff --git a/objects/challenges/vantablack.lua b/objects/challenges/vantablack.lua new file mode 100644 index 000000000..24369966e --- /dev/null +++ b/objects/challenges/vantablack.lua @@ -0,0 +1,19 @@ +SMODS.Challenge({ + key = "vantablack", + rules = { + custom = { + { id = "mp_vantablack_CREDITS" }, + }, + modifiers = { + { id = "joker_slots", value = 8 }, + { id = "hands", value = 1 }, + }, + }, + apply = function(self) + G.GAME.selected_back.atlas = "mp_decks" + G.GAME.selected_back.pos = { x = 3, y = 1 } + end, + unlocked = function(self) + return true + end, +}) diff --git a/objects/consumables/asteroid.lua b/objects/consumables/asteroid.lua new file mode 100644 index 000000000..5bbb0d86b --- /dev/null +++ b/objects/consumables/asteroid.lua @@ -0,0 +1,57 @@ +SMODS.Atlas({ + key = "asteroid", + path = { + ["default"] = "c_asteroid.png", + ["ru"] = "c_asteroid_ru.png", + }, + px = 71, + py = 95, +}) + +SMODS.Consumable({ + key = "asteroid", + set = "Planet", + atlas = "asteroid", + cost = 3, + unlocked = true, + discovered = true, + loc_vars = function(self, info_queue, card) + MP.UTILS.add_nemesis_info(info_queue) + return { vars = { 1 } } + end, + mp_include = function(self) + return MP.LOBBY.code and MP.LOBBY.config.multiplayer_jokers + end, + can_use = function(self, card) + return true + end, + use = function(self, card, area, copier) + local asteroids = MP.GAME.asteroids + update_hand_text( + { sound = "button", volume = 0.7, pitch = 0.8, delay = 0.3 }, + { handname = localize("k_asteroids"), chips = localize("k_amount_short"), mult = MP.GAME.asteroids } + ) + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.2, + func = function() + play_sound("tarot1", 0.9 + (MP.GAME.asteroids / 10), 1) + card:juice_up(0.8, 0.5) + return true + end, + })) + update_hand_text({ delay = 0 }, { mult = "+1", StatusText = true }) + MP.GAME.asteroids = MP.GAME.asteroids + 1 + update_hand_text({ delay = 0 }, { mult = MP.GAME.asteroids }) + delay(2.5) + update_hand_text( + { sound = "button", volume = 0.7, pitch = 1.1, delay = 0 }, + { mult = 0, chips = 0, handname = "", level = "" } + ) + end, + mp_credits = { + idea = { "Zilver" }, + art = { "TheTrueRaven" }, + code = { "Virtualized" }, + }, +}) diff --git a/objects/consumables/judgement.lua b/objects/consumables/judgement.lua new file mode 100644 index 000000000..7ecbe978a --- /dev/null +++ b/objects/consumables/judgement.lua @@ -0,0 +1,74 @@ +--[[ gotta redefine the logic +MP.ReworkCenter({ + key = "c_judgement", + ruleset = MP.UTILS.get_standard_rulesets({'minorleague'}), + silent = true, + use = function(self, card, area, copier) + local _card = copier or card + G.E_MANAGER:add_event(Event({trigger = 'after', delay = 0.4, func = function() + play_sound('timpani') + if MP.INTEGRATIONS.TheOrder then -- this only matters if order exists + local done = false + while not done do -- AHHH we have to do so much boilerplate + done = true + + local card = { stickers = { eternal = false, perishable = false, rental = false } } + local rarity = SMODS.poll_rarity("Joker", 'rarity0') + local str_rarity = rarity + if type(rarity) == 'number' then + str_rarity = ({'Common', 'Uncommon', 'Rare', 'Legendary'})[rarity] -- kill me now + end + local _pool = get_current_pool('Joker', str_rarity, nil, '') + local _pool_key = 'Joker'..rarity..'0' + center = pseudorandom_element(_pool, pseudoseed(_pool_key)) + local it = 1 + while center == 'UNAVAILABLE' do + it = it + 1 + center = pseudorandom_element(_pool, pseudoseed(_pool_key)) + end + + card.key = center + + local eternal_perishable_poll = pseudorandom(center..'etperpoll0') + local rental_poll = pseudorandom(center..'ssjr0') + + if G.GAME.modifiers.enable_eternals_in_shop + and eternal_perishable_poll > 0.7 + and G.P_CENTERS[center].eternal_compat then + card.stickers.eternal = true + done = false + end + + if G.GAME.modifiers.enable_perishables_in_shop + and ((eternal_perishable_poll > 0.4) and (eternal_perishable_poll <= 0.7)) + and G.P_CENTERS[center].perishable_compat then + card.stickers.perishable = true + done = false + end + + if G.GAME.modifiers.enable_rentals_in_shop + and rental_poll > 0.7 then + card.stickers.rental = true + done = false + end + + if done then + table.insert(G.GAME.MP_joker_overrides, 1, card) -- start, so it gets created immediately + else + table.insert(G.GAME.MP_joker_overrides, card) -- end + end + end + end + G.MP_JUDGEMENT_OVERRIDE = true + local joker = create_card('Joker', G.jokers, nil, nil, nil, nil, nil, 'jud') -- just call create card since override will kick in + G.MP_JUDGEMENT_OVERRIDE = nil + joker:add_to_deck() + G.jokers:emplace(joker) + _card:juice_up(0.3, 0.5) + + return true + end})) + delay(0.6) + end, +}) +]] diff --git a/objects/consumables/ouija.lua b/objects/consumables/ouija.lua new file mode 100644 index 000000000..b96ee2bbd --- /dev/null +++ b/objects/consumables/ouija.lua @@ -0,0 +1,100 @@ +SMODS.Atlas({ + key = "ouija_2", + path = "c_ouija_2.png", + px = 71, + py = 95, +}) + +SMODS.Consumable({ + key = "ouija_standard", + set = "Spectral", + atlas = "ouija_2", + cost = 4, + pos = { x = 0, y = 0 }, + unlocked = true, + discovered = true, + config = { extra = { destroy = 3 }, mp_sticker_balanced = true }, + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.destroy } } + end, + use = function(self, card, area, copier) + local used_tarot = copier or card + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.4, + func = function() + play_sound("tarot1") + used_tarot:juice_up(0.3, 0.5) + return true + end, + })) + + local cards_to_destroy = {} + local temp_hand = {} + for k, v in ipairs(G.hand.cards) do + temp_hand[#temp_hand + 1] = v + end + table.sort(temp_hand, function(a, b) + return not a.playing_card or not b.playing_card or a.playing_card < b.playing_card + end) + pseudoshuffle(temp_hand, pseudoseed("ouija_destroy")) + + for i = 1, card.ability.extra.destroy do + cards_to_destroy[#cards_to_destroy + 1] = temp_hand[i] + temp_hand[i].ouija_queue_destroy = true + end + for i = 1, #G.hand.cards do + local _card = G.hand.cards[i] + local percent = 1.15 - (i - 0.999) / (#G.hand.cards - 0.998) * 0.3 + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.15, + func = function() + _card:flip() + play_sound("card1", percent) + _card:juice_up(0.3, 0.3) + return true + end, + })) + end + delay(0.2) + SMODS.destroy_cards(cards_to_destroy) + delay(0.3) + local _rank = pseudorandom_element(SMODS.Ranks, "ouija") + for i = 1, #G.hand.cards do + local _card = G.hand.cards[i] + if not _card.ouija_queue_destroy then + G.E_MANAGER:add_event(Event({ + func = function() + if _card and not _card.destroyed then assert(SMODS.change_base(_card, nil, _rank.key)) end + return true + end, + })) + end + end + for i = 1, #G.hand.cards do + local _card = G.hand.cards[i] + if not _card.ouija_queue_destroy then + local percent = 0.85 + (i - 0.999) / (#G.hand.cards - 0.998) * 0.3 + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.15, + func = function() + _card:flip() + play_sound("tarot2", percent, 0.6) + _card:juice_up(0.3, 0.3) + return true + end, + })) + end + end + delay(0.5) + end, + can_use = function(self, card) + return G.hand and #G.hand.cards >= card.ability.extra.destroy + end, + mp_credits = { + art = { "aura!" }, + code = { "steph" }, + }, +}) diff --git a/objects/consumables/sandbox/ectoplasm.lua b/objects/consumables/sandbox/ectoplasm.lua new file mode 100644 index 000000000..dc90070a2 --- /dev/null +++ b/objects/consumables/sandbox/ectoplasm.lua @@ -0,0 +1,51 @@ +SMODS.Consumable({ + key = "ectoplasm_sandbox", + set = "Spectral", + cost = 4, + pos = { x = 8, y = 4 }, + config = { mp_sticker_balanced = true }, + loc_vars = function(self, info_queue, card) + info_queue[#info_queue + 1] = G.P_CENTERS.e_negative + return { vars = { G.GAME.ecto_minus or 1 } } + end, + use = function(self, card, area, copier) + local editionless_jokers = SMODS.Edition:get_edition_cards(G.jokers, true) + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.4, + func = function() + -- Randomly pick one of three negative effects + local effect = math.floor(pseudorandom("ectoplasm_sandbox") * 3) + 1 + + if effect == 1 then + G.GAME.round_resets.hands = G.GAME.round_resets.hands - 1 + ease_hands_played(-1) + elseif effect == 2 then + G.GAME.round_resets.discards = G.GAME.round_resets.discards - 1 + ease_discard(-1) + else + G.hand:change_size(-1) + end + + -- positive effect: negative joker + if #editionless_jokers > 0 then + local eligible_card = pseudorandom_element(editionless_jokers, "ectoplasm") + eligible_card:set_edition({ negative = true }) + end + + card:juice_up(0.3, 0.5) + return true + end, + })) + end, + can_use = function(self, card) + return next(SMODS.Edition:get_edition_cards(G.jokers, true)) + end, + -- draw = function(self, card, layer) + -- -- This is for the Spectral shader. You don't need this with `set = "Spectral"` + -- -- Also look into SMODS.DrawStep if you make multiple cards that need the same shader + -- if (layer == "card" or layer == "both") and card.sprite_facing == "front" then + -- card.children.center:draw_shader("booster", nil, card.ARGS.send_to_shader) + -- end + -- end, +}) diff --git a/objects/consumables/wraith.lua b/objects/consumables/wraith.lua new file mode 100644 index 000000000..0739c4e28 --- /dev/null +++ b/objects/consumables/wraith.lua @@ -0,0 +1,31 @@ +-- Reworked Wraith: random Uncommon joker + $5 (vanilla = random Rare, money to $0). +SMODS.Consumable({ + key = "wraith", + set = "Spectral", + pos = { x = 5, y = 4 }, + cost = 4, + unlocked = true, + discovered = true, + config = { extra = { dollars = 5 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.dollars } } + end, + use = function(self, card, area, copier) + local used_tarot = copier or card + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.4, + func = function() + play_sound("timpani") + SMODS.add_card({ set = "Joker", rarity = "Uncommon", key_append = "mp_wra" }) + used_tarot:juice_up(0.3, 0.5) + ease_dollars(card.ability.extra.dollars, true) + return true + end, + })) + delay(0.6) + end, + can_use = function(self, card) + return #G.jokers.cards < G.jokers.config.card_limit or card.area == G.jokers + end, +}) diff --git a/objects/decks/00_violet.lua b/objects/decks/00_violet.lua new file mode 100644 index 000000000..930bbb203 --- /dev/null +++ b/objects/decks/00_violet.lua @@ -0,0 +1,29 @@ +SMODS.Back({ + key = "violet", + config = {}, + atlas = "mp_decks", + pos = { x = 0, y = 0 }, + mp_credits = { art = { "aura!" }, code = { "Toneblock" } }, + apply = function(self) + SMODS.change_voucher_limit(1) + G.GAME.modifiers.mp_violet = true -- i forgot how you get the deck, whatever + end, +}) + +local set_cost_ref = Card.set_cost +function Card:set_cost() + set_cost_ref(self) + if G.GAME.modifiers.mp_violet and self.config.center.set == "Voucher" then + if G.GAME.round_resets.ante == 1 then + self.cost = math.max( + 1, + math.floor(0.5 * (self.base_cost + self.extra_cost + 0.5) * (100 - G.GAME.discount_percent) / 100) + ) + elseif G.GAME.round_resets.ante == 2 then + self.cost = math.max( + 1, + math.floor(0.7 * (self.base_cost + self.extra_cost + 0.5) * (100 - G.GAME.discount_percent) / 100) + ) + end + end +end diff --git a/objects/decks/01_indigo.lua b/objects/decks/01_indigo.lua new file mode 100644 index 000000000..c8f738aa2 --- /dev/null +++ b/objects/decks/01_indigo.lua @@ -0,0 +1,108 @@ +SMODS.Back({ + key = "indigo", + config = {}, + atlas = "mp_decks", + pos = { x = 1, y = 0 }, + mp_credits = { art = { "aura!" }, code = { "Toneblock" } }, + apply = function(self) + G.GAME.modifiers.mp_indigo = true + G.GAME.modifiers.booster_choice_mod = (G.GAME.modifiers.booster_choice_mod or 0) + 1 + G.GAME.banned_keys["j_red_card"] = true + end, +}) + +local function check_joker_space(card) + if card.config.center.set == "Joker" and card.edition and card.edition.negative then return true end + local c = 0 + local un_c = G.jokers.config.card_limit + for i, v in ipairs(G.jokers.cards) do + if v.edition and v.edition.type == "negative" then + un_c = un_c - 1 + elseif v.ability.eternal then + c = c + 1 + else + break + end + end + return c < un_c +end + +local function is_usable(card) + local center = card.config.center + local key = center.key + if center.set == "Enhanced" or center.set == "Default" or center.set == "Planet" then + return true + elseif center.set == "Joker" then + return check_joker_space(card) + elseif center.set == "Tarot" then + if key == "c_fool" then + return G.GAME.last_tarot_planet and G.GAME.last_tarot_planet ~= "c_fool" + elseif key == "c_judgement" then + return check_joker_space(card) + elseif key == "c_wheel_of_fortune" then + if card.eligible_strength_jokers and next(card.eligible_strength_jokers) then return true end + return false + elseif card.ability.consumeable.max_highlighted then + if #G.hand.cards >= (card.ability.consumeable.min_highlighted or 1) then return true end + return false + else + return true + end + elseif center.set == "Spectral" then + if + key == "c_familiar" + or key == "c_grim" + or key == "c_incantation" + or key == "c_immolate" + or key == "c_sigil" + or key == "c_ouija" + then + if #G.hand.cards > 1 then -- vanilla bug? + return true + end + return false + elseif key == "c_aura" then + local bool = false + for i, v in ipairs(G.hand.cards) do + if not v.edition then + bool = true + break + end + end + return bool + elseif key == "c_ectoplasm" or key == "c_hex" then + if card.eligible_editionless_jokers and next(card.eligible_editionless_jokers) then return true end + return false + elseif key == "c_wraith" or key == "c_soul" then + return check_joker_space(card) + elseif key == "c_ankh" then + if G.jokers.cards[1] then return check_joker_space(card) end + return false + elseif card.ability.consumeable.max_highlighted then + if #G.hand.cards >= (card.ability.consumeable.min_highlighted or 1) then return true end + return false + else + return true + end + end + return true -- hopefully no mod compat doesn't kill a run (it will) +end + +local can_skip_ref = G.FUNCS.can_skip_booster +G.FUNCS.can_skip_booster = function(e) + if G.GAME.modifiers.mp_indigo then + local softlock = true + for i, v in ipairs(G.pack_cards.cards) do + if is_usable(v) then + softlock = false + break + end + end + if not softlock then + e.config.colour = G.C.UI.BACKGROUND_INACTIVE + e.config.button = nil + return + end + end + return can_skip_ref(e) +end diff --git a/objects/decks/02_orange.lua b/objects/decks/02_orange.lua new file mode 100644 index 000000000..c0470dbab --- /dev/null +++ b/objects/decks/02_orange.lua @@ -0,0 +1,44 @@ +SMODS.Back({ + key = "orange", + config = { consumables = { "c_hanged_man", "c_hanged_man" } }, + atlas = "mp_decks", + pos = { x = 2, y = 0 }, + mp_credits = { art = { "aura!" }, code = { "Toneblock" } }, + apply = function(self) + stop_use() + local lock = self.key + G.CONTROLLER.locks[lock] = true + -- "yeah just triple layer the event surely that works...WHAT THE SHIT" + G.E_MANAGER:add_event(Event({ + func = function() + G.E_MANAGER:add_event(Event({ + func = function() + G.E_MANAGER:add_event(Event({ + func = function() + local key = "p_arcana_mega_" .. (math.random(1, 2)) + local card = Card( + G.play.T.x + G.play.T.w / 2 - G.CARD_W * 1.27 / 2, + G.play.T.y + G.play.T.h / 2 - G.CARD_H * 1.27 / 2, + G.CARD_W * 1.27, + G.CARD_H * 1.27, + G.P_CARDS.empty, + G.P_CENTERS["p_mp_standard_giga"], + { bypass_discovery_center = true, bypass_discovery_ui = true } + ) + card.cost = 0 + card.from_tag = true + delay(0.2) + G.FUNCS.use_card({ config = { ref_table = card } }) + card:start_materialize() + G.CONTROLLER.locks[lock] = nil + return true + end, + })) + return true + end, + })) + return true + end, + })) + end, +}) diff --git a/objects/decks/09_white.lua b/objects/decks/09_white.lua new file mode 100644 index 000000000..9f914bf1a --- /dev/null +++ b/objects/decks/09_white.lua @@ -0,0 +1,43 @@ + +--[[ +SMODS.Back({ + key = "white", + config = {}, + atlas = "mp_decks", + pos = { x = 2, y = 1 }, + mp_credits = { art = { "aura!" }, code = { "Toneblock" } }, + apply = function(self) + if MP.LOBBY.code then + G.GAME.modifiers.view_nemesis_deck = true + end + end, +}) + +-- new global table for white deck stuff because there's a lot of things and i want it to be as clean as possible +-- some may argue it's worse. perhaps it is +MP.WHITE = { + state = { + client = {}, + nemesis = {}, + } + +} + +function MP.WHITE.save_state() + local save = MP.WHITE.state.client + + save.ante = G.GAME.round_resets.ante + + local jokers_save = G.jokers:save() + save.jokers = MP.UTILS.str_pack_and_encode(jokers_save) + + local deck_save = G.deck:save() -- gotta be careful that every card is actually in the deck at this point + save.deck = MP.UTILS.str_pack_and_encode(deck_save) +end + +function MP.WHITE.send_state() +end + +function MP.WHITE.request_state() -- need another function for "request until received" +end +]] diff --git a/objects/decks/AA_oracle.lua b/objects/decks/AA_oracle.lua new file mode 100644 index 000000000..35626a27e --- /dev/null +++ b/objects/decks/AA_oracle.lua @@ -0,0 +1,31 @@ +function oracle_apply_dollar_cap(mod, current_dollars, max_dollars) + return math.min(max_dollars - current_dollars, mod) +end + +function oracle_should_show_max(mod, current_dollars, max_dollars) + return mod == 0 and current_dollars >= max_dollars +end + +function oracle_show_max_alert(dollar_UI) + attention_text({ + text = "MAX", + scale = 0.8, + hold = 0.7, + cover = dollar_UI.parent, + cover_colour = G.C.RED, + align = "cm", + }) + play_sound("timpani", 0.9, 0.7) + play_sound("timpani", 1.2, 0.7) +end + +SMODS.Back({ + key = "oracle", + config = { vouchers = { "v_clearance_sale" }, consumables = { "c_medium" } }, + atlas = "mp_decks", + pos = { x = 1, y = 1 }, + apply = function(self) + G.GAME.modifiers.oracle_max = 50 + end, + mp_credits = { art = { "aura!", "Ganpan140" }, code = { "Toneblock" } }, +}) diff --git a/objects/decks/BB_gradient.lua b/objects/decks/BB_gradient.lua new file mode 100644 index 000000000..e931a61e5 --- /dev/null +++ b/objects/decks/BB_gradient.lua @@ -0,0 +1,154 @@ +SMODS.Back({ + key = "gradient", + config = {}, + atlas = "mp_decks", + pos = { x = 0, y = 1 }, + apply = function(self) + G.GAME.modifiers.mp_gradient = true -- i forgot how you get the deck, whatever + end, + mp_credits = { art = { "aura!", "Ganpan140" }, code = { "Toneblock" } }, +}) + +-- we need to define a bunch of local functions first for some reason + +-- water is wet +local function set_temp_id(card, key) + if not card.orig_id then card.orig_id = card.base.id end + card.base.id = card.orig_id + G.MP_GRADIENT + if key ~= "j_raised_fist" then -- otherwise it gets confused and triggers a second card + if card.base.id == 15 then + card.base.id = 2 + elseif card.base.id == 1 then + card.base.id = 14 + end + end +end + +-- if code runs twice it needs a func ig +local function reset_ids() + if G.MP_GRADIENT then + G.MP_GRADIENT = nil + for i, card in ipairs(G.playing_cards) do + card.base.id = card.orig_id + card.orig_id = nil + end + end + -- i am checking for G.MP_GRADIENT here. why? + -- i know this code. i built it myself. this function will always be run at the correct time. + -- or so i thought. alas, the day after release, i was humbled by a crashlog relating to this exact issue. + -- i have reordered the code before, this was nothing new. i knew exactly what it was caused by, and i recreated it fairly easily. + -- but the logic has expanded in complexity since then. no more can i follow where one line ends and the other begins. + -- the code was watered with passion and motivation, but it grew into thick, thorny vines that stab my hands and block my vision. + -- there is only pain for the person who decides to touch this. the code does not have emotion, it does not care. + -- in some twisted way, i am attached to it. it falls short of the greatness expected, but it accomplishes so much. + -- as a gift, for all it has done, i shift it, ever so slightly, that it thrives. + + -- tldr: i have no idea what this shit is doing anymore, this check shouldn't be necessary + -- checking this prevents a crash and doesn't seem to break anything +end + +local function get_bp(joker) + local key = joker.config.center.key + local count = 0 + local pos = 0 + for i, v in ipairs(G.jokers.cards) do + if v == joker then pos = i end + end + while (key == "j_blueprint" or key == "j_brainstorm") and count <= #G.jokers.cards do + if key == "j_blueprint" then + key = G.jokers.cards[pos + 1] and G.jokers.cards[pos + 1].config.center.key or "NULL" + pos = pos + 1 + elseif key == "j_brainstorm" then + key = G.jokers.cards[1].config.center.key + pos = 1 + end + count = count + 1 + end + return key +end + +-- hardcoded dumb stuff, because cards that could trigger but don't due to rng are dumb and stupid and don't return anything +-- ALSO i have to add a whole get blueprint key thing (above) it's so stupid +-- all this to avoid lovely patching? who cares +local function valid_trigger(card, joker) + local key = joker.config.center.key + key = get_bp(joker) + local function rank_check(ranks) + for i, v in ipairs(ranks) do + if card:get_id() == v then return true end + end + return + end + if card and not card.base then -- ?????????????????????? + return false + end + if key == "j_8_ball" then + return rank_check({ 8 }) -- this being a table looks stupid now + elseif key == "j_hit_the_road" then + return rank_check({ 11 }) + elseif key == "j_business" or key == "j_reserved_parking" then + return card:is_face() + elseif key == "j_bloodstone" or key == "j_mp_bloodstone" or key == "j_mp_bloodstone2" then + return card:is_suit("Hearts") + end +end + +local is_face_ref = Card.is_face +function Card:is_face(from_boss) + local ret = is_face_ref(self, from_boss) + if G.GAME.modifiers.mp_gradient and not G.MP_GRADIENT then + local id = self:get_id() -- like seriously i want an explanation + if self.debuff and not from_boss then return end + if not ret and id == 10 or id == 14 then return true end + end + return ret +end + +-- hardcoded functions because honk shoo +local function passkey(joker) + local key = get_bp(joker) + if key == "j_superposition" or key == "j_sixth_sense" then return true end + return false +end +local function blacklist(joker) + local key = get_bp(joker) + if key == "j_photograph" or key == "j_faceless" or key == "j_ramen" then return true end + return false +end + +-- infamous calculate joker hook +local calculate_joker_ref = Card.calculate_joker +function Card:calculate_joker(context) + if not context.blueprint then -- very important because bloopy recursively calls this + if G.GAME.modifiers.mp_gradient and (context.other_card or passkey(self)) and not blacklist(self) then + for i = 1, 3 do + G.MP_GRADIENT = -i + 2 + for i, card in ipairs(G.playing_cards) do -- it's actually insane that this doesn't blow up the game??? this is being run thousands of times wastefully + set_temp_id(card, self.config.center.key) + end + local ret, post = calculate_joker_ref(self, context) + if ret or post or valid_trigger(context.other_card, self) then + reset_ids() + return ret, post + end + end + reset_ids() + end + end + return calculate_joker_ref(self, context) +end + +-- a special hardcoded hook just for cloud nine! hook hook, hooray! +local update_ref = Card.update +function Card:update(dt) + local ret = update_ref(self, dt) + if G.GAME.modifiers.mp_gradient then + if self.ability.name == "Cloud 9" then + self.ability.nine_tally = 0 + for k, v in pairs(G.playing_cards) do + local id = v:get_id() + if id == 8 or id == 9 or id == 10 then self.ability.nine_tally = self.ability.nine_tally + 1 end + end + end + end +end diff --git a/objects/decks/CC_heidelberg.lua b/objects/decks/CC_heidelberg.lua new file mode 100644 index 000000000..bef4b0830 --- /dev/null +++ b/objects/decks/CC_heidelberg.lua @@ -0,0 +1,27 @@ +SMODS.Atlas({ + key = "b_heidelberg", + path = "b_heidelberg.png", + px = 71, + py = 95, +}) + +SMODS.Back({ + key = "heidelberg", + atlas = "b_heidelberg", + mp_credits = { art = { "aura!" }, code = { "steph" } }, + calculate = function(self, back, context) + if context.ending_shop and G.consumeables.cards[1] then + G.E_MANAGER:add_event(Event({ + func = function() + local card_to_copy, _ = pseudorandom_element(G.consumeables.cards, "mp_heidelberg") + local copied_card = copy_card(card_to_copy) + copied_card:set_edition("e_negative", true) + copied_card:add_to_deck() + G.consumeables:emplace(copied_card) + return true + end, + })) + return { message = localize("k_duplicated_ex") } + end + end, +}) diff --git a/objects/decks/EC_echo_deck.lua b/objects/decks/EC_echo_deck.lua new file mode 100644 index 000000000..44a50cb1b --- /dev/null +++ b/objects/decks/EC_echo_deck.lua @@ -0,0 +1,57 @@ +SMODS.Atlas({ + key = "ec_other_sandbox", + path = "ec_other_sandbox.png", + px = 71, + py = 95, +}) + +SMODS.Back({ --Echo Deck + name = "Echo Deck", + key = "echodeck", + loc_txt = { + name = "Echo Deck", + text = { + "{C:attention}Retrigger{} all playing cards", + "{C:red}X1.2{} base Blind size", + "Increases by {C:red}X0.2{} each Ante", + }, + }, + order = 18, + unlocked = true, + discovered = true, + config = {}, + loc_vars = function(self, info_queue, center) + return { vars = {} } + end, + pos = { x = 2, y = 0 }, + atlas = "ec_other_sandbox", + apply = function(self, back) + G.GAME.starting_params.ante_scaling = 1.2 + end, + + calculate = function(self, back, context) + if context.cardarea == G.play and context.repetition then + return { + message = localize("k_again_ex"), + repetitions = 1, + card = card, + } + elseif context.repetition and context.cardarea == G.hand then + if next(context.card_effects[1]) or #context.card_effects > 1 then + return { + message = localize("k_again_ex"), + repetitions = 1, + card = card, + } + end + end + + if context.end_of_round and not context.repetition and not context.individual and G.GAME.blind.boss then + G.GAME.starting_params.ante_scaling = G.GAME.starting_params.ante_scaling + 0.2 + end + end, + mp_credits = { + code = { "CampfireCollective" }, + art = { "neatoqueen" }, + }, +}) diff --git a/objects/decks/ZZ_cocktail.lua b/objects/decks/ZZ_cocktail.lua new file mode 100644 index 000000000..abbdf1342 --- /dev/null +++ b/objects/decks/ZZ_cocktail.lua @@ -0,0 +1,670 @@ +SMODS.Back({ + key = "cocktail", + config = {}, + atlas = "mp_decks", + pos = { x = 4, y = 0 }, + mod_whitelist = { + Multiplayer = true, + Cryptid = true, + aikoyorisshenanigans = true, + allinjest = true, + }, + deck_blacklist = { + b_challenge = true, + b_mp_cocktail = true, + b_cry_antimatter = true, + b_akyrs_hardcore_challenges = true, + }, + apply = function(self) + -- we need to fucking generate the seed early this is infuriating + local seed = G._MP_SET_SEED + local seeded = false + if seed then seeded = true end + G.GAME.pseudorandom.seed = seed or generate_starting_seed() + G.GAME.modifiers.mp_cocktail = {} + G.GAME.modifiers.mp_cocktail_sticker = {} + local decks, forced = MP.get_cocktail_decks(true) + pseudoshuffle(decks, pseudoseed("mp_cocktail")) + local back = G.GAME.selected_back + + local function add_deck(num, deck, sticker) + G.GAME.modifiers.mp_cocktail[num] = deck + if sticker then G.GAME.modifiers.mp_cocktail_sticker[num] = deck end + if deck == "b_checkered" then -- hardcoded because cringe + G.E_MANAGER:add_event(Event({ + func = function() + for k, v in pairs(G.playing_cards) do + if v.base.suit == "Clubs" then v:change_suit("Spades") end + if v.base.suit == "Diamonds" then v:change_suit("Hearts") end + end + return true + end, + })) + end + end + + for i = 1, #forced do + add_deck(i, forced[i], true) + end + for i = 1 + #forced, math.min(3, #decks) do + add_deck(i, decks[i], MP.cocktail_cfg_readpos("show", true) ~= "H" and true or false) + end + local function merge(t1, t2, safe) + local t3 = {} + for k, v in pairs(t1) do + if type(v) == "table" then + t3[k] = merge(v, {}) + else + t3[k] = v + end + end + for k, v in pairs(t2) do + local existing = t3[k] + + if type(existing) == "number" and type(v) == "number" then + t3[k] = existing + v + elseif type(existing) == "table" and type(v) == "table" then + t3[k] = merge(existing, v, true) -- risky but it works... + else + if type(v) == "table" then + t3[k] = merge(v, {}) + else + local index = safe and #t3 + 1 or k + t3[index] = v + end + end + end + return t3 + end + for i = 1, #G.GAME.modifiers.mp_cocktail do + back.effect.config = merge(back.effect.config, G.P_CENTERS[G.GAME.modifiers.mp_cocktail[i]].config) + if back.effect.config.voucher then + back.effect.config.vouchers = back.effect.config.vouchers or {} + back.effect.config.vouchers[#back.effect.config.vouchers + 1] = back.effect.config.voucher + back.effect.config.voucher = nil + end + local obj = G.P_CENTERS[G.GAME.modifiers.mp_cocktail[i]] + if obj.apply and type(obj.apply) == "function" then obj:apply(back) end + + -- aikoshen exception because this code runs before apply_to_run orig (why?) + if back.effect.config.akyrs_starting_letters then + G.GAME.starting_params.akyrs_starting_letters = back.effect.config.akyrs_starting_letters + end + if back.effect.config.akyrs_letters_no_uppercase then + G.GAME.starting_params.akyrs_letters_no_uppercase = back.effect.config.akyrs_letters_no_uppercase + end + + -- all in jest exception for patchwork deck + if G.GAME.modifiers.mp_cocktail[i] == "b_aij_patchwork" then + G.GAME.modifiers.b_aij_patchwork = true + end + end + if MP.is_layer_active("smallworld") then MP.apply_fake_back_vouchers(back) end + back.effect.mp_cocktailed = true + if MP.cocktail_check_edited() then G.GAME.seeded = true end + end, + calculate = function(self, back, context) + for i = 1, #G.GAME.modifiers.mp_cocktail do + back:change_to(G.P_CENTERS[G.GAME.modifiers.mp_cocktail[i]]) + local ret1, ret2 = back:trigger_effect(context) + back:change_to(G.P_CENTERS["b_mp_cocktail"]) + if ret1 or ret2 then return ret1, ret2 end + end + end, + mp_credits = { art = { "aura!", "shai1n" }, code = { "Toneblock" } }, +}) + +-- honestly this could have been a list +-- whatever +local sticker_x_pos = { + b_red = 0, + b_blue = 1, + b_yellow = 2, + b_green = 3, + b_black = 4, + b_magic = 5, + b_nebula = 6, + b_ghost = 7, + b_abandoned = 8, + b_checkered = 9, + b_zodiac = 10, + b_painted = 11, + b_anaglyph = 12, + b_plasma = 13, + b_erratic = 14, + b_mp_orange = 15, + b_mp_indigo = 16, + b_mp_violet = 17, + b_mp_white = 18, + b_mp_oracle = 19, + b_mp_gradient = 20, + b_mp_heidelberg = 21, + b_mp_echodeck = 22, +} + +function MP.get_cocktail_decks(cull) + local ret = {} + local forced = {} + for k, v in pairs(G.P_CENTERS) do + if v.set == "Back" and not G.P_CENTERS["b_mp_cocktail"].deck_blacklist[k] then + if not (v.mod and not G.P_CENTERS["b_mp_cocktail"].mod_whitelist[v.mod.id]) then ret[#ret + 1] = k end + end + end + table.sort(ret, function(a, b) + return G.P_CENTERS[a].order < G.P_CENTERS[b].order + end) + if cull then + local _ret = {} + for i, v in ipairs(ret) do + if MP.cocktail_cfg_readpos(i, true) == "1" then + _ret[#_ret + 1] = ret[i] + elseif MP.cocktail_cfg_readpos(i, true) == "2" then + forced[#forced + 1] = ret[i] + end + end + ret = _ret + end + return ret, forced +end + +local change_to_ref = Back.change_to +function Back:change_to(new_back) + if self.effect.mp_cocktailed then + local t = copy_table(self.effect.config) + local ret = change_to_ref(self, new_back) + self.effect.config = copy_table(t) + self.effect.mp_cocktailed = true + return ret + end + return change_to_ref(self, new_back) +end + +local function is_cocktail_select(card) + if Galdur then + return Galdur.run_setup + and card.area == Galdur.run_setup.selected_deck_area + and card.config.center.key == "b_mp_cocktail" + else + return G.GAME.viewed_back + and G.GAME.viewed_back.effect + and G.GAME.viewed_back.effect.center.key == "b_mp_cocktail" + and card.facing == "back" + end +end + +local click_ref = Card.click +function Card:click() -- i'd rather deal with the cardarea but this is fine i suppose + click_ref(self) + if G.STAGE == G.STAGES.MAIN_MENU then + if is_cocktail_select(self) then + -- boilerplate robbed from cryptid's decaying corpse + if G.cocktail_select then + for i = 1, #G.cocktail_select do + G.cocktail_select[i]:remove() + G.cocktail_select[i] = nil + end + end + G.cocktail_select = {} + for i = 1, 2 do + G.cocktail_select[i] = CardArea( + G.ROOM.T.x + 0.2 * G.ROOM.T.w / 1.5, + G.ROOM.T.h, + 5.3 * G.CARD_W, + 1.03 * G.CARD_H, + { card_limit = 5, type = "title", highlight_limit = 999, collection = true } + ) + end + local decks = MP.get_cocktail_decks() + local cfg = SMODS.Mods["Multiplayer"].config + for i, v in ipairs(decks) do + local row = math.floor((((i - 1) / #decks) * 2) + 1) + G.GAME.viewed_back = G.P_CENTERS[v] + local card = Card( + G.ROOM.T.x + 0.2 * G.ROOM.T.w / 2, + G.ROOM.T.h, + G.CARD_W, + G.CARD_H, + pseudorandom_element(G.P_CARDS), + G.P_CENTERS.c_base, + { playing_card = i, bypass_back = G.P_CENTERS[v].pos } + ) + G.cocktail_select[row]:emplace(card) + card.sprite_facing = "back" + card.facing = "back" + card.mp_cocktail_select = v + local num = MP.cocktail_cfg_readpos(i) + card.highlighted = tonumber(num) >= 1 and true or false + card.mp_cocktail_forced = num == "2" and true or false + end + G.GAME.viewed_back = G.P_CENTERS["b_mp_cocktail"] + MP.show_cocktail_decks = MP.cocktail_cfg_readpos("show") ~= "H" and true or false + deck_tables = {} + for i = 1, #G.cocktail_select do + deck_tables[i] = { + n = G.UIT.R, + config = { align = "cm", padding = 0, no_fill = true }, + nodes = { + { n = G.UIT.O, config = { object = G.cocktail_select[i] } }, + }, + } + end + local t = create_UIBox_generic_options({ + back_func = "setup_run", + snap_back = true, + contents = { + { + n = G.UIT.R, + config = { + padding = 0.0, + align = "cl", + }, + nodes = { + create_toggle({ + id = "show_cocktail_decks", + label = "Show active decks during run", + ref_table = MP, + ref_value = "show_cocktail_decks", + callback = function(bool) + MP.cocktail_cfg_edit(bool, "show") + end, + }), + }, + }, + { n = G.UIT.R, config = { align = "cl", padding = 0.4, minh = 0.4 } }, -- empty space row because i'm bad at ui + { + n = G.UIT.R, + config = { align = "cm", minw = 2.5, padding = 0.1, r = 0.1, colour = G.C.BLACK, emboss = 0.05 }, + nodes = deck_tables, + }, + { + n = G.UIT.R, + config = { align = "cl", padding = 0 }, + nodes = { + { + n = G.UIT.T, + config = { text = localize("k_cocktail_select"), scale = 0.48, colour = G.C.WHITE }, + }, + }, + }, + { + n = G.UIT.R, + config = { align = "cl", padding = 0 }, + nodes = { + { + n = G.UIT.T, + config = { text = localize("k_cocktail_shiftclick"), scale = 0.32, colour = G.C.WHITE }, + }, + }, + }, + { + n = G.UIT.R, + config = { align = "cl", padding = 0 }, + nodes = { + { + n = G.UIT.T, + config = { text = localize("k_cocktail_rightclick"), scale = 0.32, colour = G.C.WHITE }, + }, + }, + }, + }, + }) + G.FUNCS.overlay_menu({ + definition = t, + }) + end + end +end + +local draw_ref = Card.draw +function Card:draw(layer) + draw_ref(self, layer) + if G.STAGE == G.STAGES.MAIN_MENU then + if not self.children.view_deck then + self.children.view_deck = UIBox({ + definition = { + n = G.UIT.ROOT, + config = { align = "cm", padding = 0.1, r = 0.1, colour = G.C.CLEAR }, + nodes = { + { + n = G.UIT.R, + config = { + align = "cm", + padding = 0.05, + r = 0.1, + colour = adjust_alpha(G.C.BLACK, 0.5), + func = "set_button_pip", + focus_args = { button = "triggerright", orientation = "bm", scale = 0.6 }, + button = "deck_info", + }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm", maxw = 2 }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("k_edit"), + scale = 0.48, + colour = G.C.WHITE, + shadow = true, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { align = "cm", maxw = 2 }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("k_deck"), + scale = 0.38, + colour = G.C.WHITE, + shadow = true, + }, + }, + }, + }, + }, + }, + }, + }, + config = { align = "cm", offset = { x = 0, y = 0 }, major = self, parent = self }, + }) + self.children.view_deck.states.collide.can = false + end + local bool = self.states.hover.is and is_cocktail_select(self) + self.children.view_deck.states.visible = bool + end +end + +SMODS.DrawStep({ + key = "mp_cocktail_forced", + order = 5, + func = function(self) + if self.mp_cocktail_forced then self.children.back:draw_shader("foil", nil, self.ARGS.send_to_shader) end + end, + conditions = { vortex = false, facing = "back" }, +}) + +local hover_ref = Card.hover +function Card:hover() + hover_ref(self) + if self.mp_cocktail_select then + self.ability_UIBox_table = self:generate_UIBox_ability_table() + self.config.h_popup = G.UIDEF.card_h_popup(self) + self.config.h_popup_config = self:align_h_popup() + Node.hover(self) + end +end + +local generate_card_ui_ref = generate_card_ui +function generate_card_ui(_c, full_UI_table, specific_vars, card_type, badges, hide_desc, main_start, main_end, card) + if card and card.mp_cocktail_select then + _c = G.P_CENTERS[card.mp_cocktail_select] + local ret = generate_card_ui_ref( + _c, + full_UI_table, + specific_vars, + "Back", + badges, + hide_desc, + main_start, + main_end, + card + ) + if not _c.generate_ui or type(_c.generate_ui) ~= "function" then + -- i literally can't get the vars from anywhere else so we're thunk coding + + local name_to_check = G.P_CENTERS[card.mp_cocktail_select].name + + if name_to_check == "Blue Deck" then + specific_vars = { _c.config.hands } + elseif name_to_check == "Red Deck" then + specific_vars = { _c.config.discards } + elseif name_to_check == "Yellow Deck" then + specific_vars = { _c.config.dollars } + elseif name_to_check == "Green Deck" then + specific_vars = { _c.config.extra_hand_bonus, _c.config.extra_discard_bonus } + elseif name_to_check == "Black Deck" then + specific_vars = { _c.config.joker_slot, -_c.config.hands } + elseif name_to_check == "Magic Deck" then + specific_vars = { + localize({ type = "name_text", key = "v_crystal_ball", set = "Voucher" }), + localize({ type = "name_text", key = "c_fool", set = "Tarot" }), + } + elseif name_to_check == "Nebula Deck" then + specific_vars = { localize({ type = "name_text", key = "v_telescope", set = "Voucher" }), -1 } + elseif name_to_check == "Zodiac Deck" then + specific_vars = { + localize({ type = "name_text", key = "v_tarot_merchant", set = "Voucher" }), + localize({ type = "name_text", key = "v_planet_merchant", set = "Voucher" }), + localize({ type = "name_text", key = "v_overstock_norm", set = "Voucher" }), + } + elseif name_to_check == "Painted Deck" then + specific_vars = { _c.config.hand_size, _c.config.joker_slot } + elseif name_to_check == "Anaglyph Deck" then + specific_vars = { localize({ type = "name_text", key = "tag_double", set = "Tag" }) } + elseif name_to_check == "Plasma Deck" then + specific_vars = { _c.config.ante_scaling } + end + + localize({ type = "descriptions", key = _c.key, set = _c.set, nodes = ret.main, vars = specific_vars }) + end + return ret + end + return generate_card_ui_ref( + _c, + full_UI_table, + specific_vars, + card_type, + badges, + hide_desc, + main_start, + main_end, + card + ) +end + +local can_highlight_ref = CardArea.can_highlight +function CardArea:can_highlight(card) + if card.mp_cocktail_select then return true end + return can_highlight_ref(self, card) +end + +local highlight_ref = Card.highlight +function Card:highlight(is_highlighted) + if self.mp_cocktail_select then + local shift = G.CONTROLLER.held_keys["lshift"] or G.CONTROLLER.held_keys["rshift"] + if shift and self.mp_cocktail_forced then + is_highlighted = false + self.mp_cocktail_forced = false + elseif self.mp_cocktail_forced then + is_highlighted = true + self.mp_cocktail_forced = false + elseif shift then + is_highlighted = true + if MP.cocktail_get_forced_num() < 3 then + self.mp_cocktail_forced = true + play_sound("foil1", 1.5, 0.3) + else + play_sound("timpani", 0.9, 0.7) + play_sound("timpani", 1.2, 0.7) + end + end + MP.cocktail_cfg_edit(self.mp_cocktail_forced and 2 or is_highlighted, self.mp_cocktail_select) + end + return highlight_ref(self, is_highlighted) +end + +local r_cursor_press_ref = Controller.queue_R_cursor_press +function Controller:queue_R_cursor_press(x, y) + local ret = r_cursor_press_ref(self, x, y) + if G.cocktail_select and G.cocktail_select[1].cards then -- bruh + local highlight = true + for i = 1, #G.cocktail_select do + for j = 1, #G.cocktail_select[i].cards do + if G.cocktail_select[i].cards[j].highlighted then + highlight = false + break + end + end + if not highlight then break end + end + for i = 1, #G.cocktail_select do + for j = 1, #G.cocktail_select[i].cards do + G.cocktail_select[i].cards[j].highlighted = highlight + G.cocktail_select[i].cards[j].mp_cocktail_forced = false + end + end + if highlight then + play_sound("cardSlide1") + else + play_sound("cardSlide2", nil, 0.3) + end + MP.cocktail_cfg_edit(highlight) + end + return ret +end + +-- kill me +G.E_MANAGER:add_event(Event({ + func = function() + local decks = MP.get_cocktail_decks() + local cfg = SMODS.Mods["Multiplayer"].config + if (not cfg.cocktail) or #decks + 1 ~= #cfg.cocktail then + local string = "" + for i = 1, #decks do + string = string .. "1" + end + string = string .. "H" + cfg.cocktail = string + end + SMODS.save_mod_config(SMODS.Mods["Multiplayer"]) + return true + end, +})) + +function MP.cocktail_cfg_edit(bool, deck) -- strings are easier to send, and it's just ones and zeroes + local decks = MP.get_cocktail_decks() + local cfg = SMODS.Mods["Multiplayer"].config + local num = (bool == 2) and "2" or (bool and "1" or "0") + if not deck then + local string = "" + for i = 1, #decks do + string = string .. num + end + local show = MP.cocktail_cfg_readpos("show") + string = string .. show + cfg.cocktail = string + else + local function replace(str, pos, d) + return str:sub(1, pos - 1) .. d .. str:sub(pos + 1) + end + for i, v in ipairs(decks) do + if v == deck then + cfg.cocktail = replace(cfg.cocktail, i, num) + break + end + end + if deck == "show" then cfg.cocktail = replace(cfg.cocktail, #cfg.cocktail, bool and "S" or "H") end + end + MP.LOBBY.config.cocktail = cfg.cocktail + SMODS.save_mod_config(SMODS.Mods["Multiplayer"]) +end + +function MP.cocktail_cfg_readpos(pos, construct) + local decks = MP.get_cocktail_decks() -- copypasted code. unsure how to make this less messy without making it more messy + local cfg = SMODS.Mods["Multiplayer"].config + if pos == "show" then pos = #cfg.cocktail end + if construct then return MP.cocktail_cfg_get():sub(pos, pos) end + return cfg.cocktail:sub(pos, pos) +end + +function MP.cocktail_cfg_get() + if MP.LOBBY.code and MP.LOBBY.deck and MP.LOBBY.deck.cocktail then + return MP.LOBBY.deck.cocktail + else + return SMODS.Mods["Multiplayer"].config.cocktail + end +end + +function MP.cocktail_check_edited() + local str = MP.cocktail_cfg_get() + for i = 1, #str - 1 do + if string.sub(str, i, i) ~= "1" then return true end + end + if string.sub(str, #str, #str) ~= "H" then return true end + return false +end + +function MP.cocktail_get_forced_num() + local str = SMODS.Mods["Multiplayer"].config.cocktail + local c = 0 + for i = 1, #str - 1 do + if string.sub(str, i, i) == "2" then c = c + 1 end + end + return c +end + +local localize_ref = localize +function localize(args, misc_cat) + if args and type(args) == "table" and args.key then + local ret = localize_ref(args, misc_cat) + local key = args.key or args.node and args.node.config.center.key or "NULL" + if args.type == "name_text" and key == "b_mp_cocktail" then + if MP.cocktail_check_edited() then return ret .. "*" end + end + return ret + else + return localize_ref(args, misc_cat) + end +end + +SMODS.Atlas({ + key = "cocktail_deck_stickers", + path = "deck_stickers.png", + px = 71, + py = 95, +}) + +SMODS.DrawStep({ + key = "back_cocktail", + order = 11, + func = function(self) + if G.STAGE == G.STAGES.RUN and G.GAME and G.GAME.modifiers and G.GAME.modifiers.mp_cocktail_sticker then + if self.area and self.area.config.type == "deck" then + for i, v in ipairs(G.GAME.modifiers.mp_cocktail_sticker) do + local num = math.min(i, 3) + local key = "mp_cocktail_" .. v .. num + if not G.shared_stickers[key] then + G.shared_stickers[key] = Sprite( + 0, + 0, + G.CARD_W, + G.CARD_H, + G.ASSET_ATLAS["mp_cocktail_deck_stickers"], + { x = sticker_x_pos[v] or 0, y = num - 1 } + ) + end + G.shared_stickers[key].role.draw_major = self + local sticker_offset = self.sticker_offset or {} + G.shared_stickers[key]:draw_shader( + "dissolve", + nil, + nil, + true, + self.children.center, + nil, + self.sticker_rotation, + sticker_offset.x, + sticker_offset.y + ) + end + end + end + end, + conditions = { vortex = false, facing = "back" }, +}) diff --git a/objects/decks/_decks.lua b/objects/decks/_decks.lua new file mode 100644 index 000000000..7e9877acd --- /dev/null +++ b/objects/decks/_decks.lua @@ -0,0 +1,42 @@ +SMODS.Atlas({ + key = "decks", + path = "decks.png", + px = 71, + py = 95, +}) + +SMODS.DrawStep({ + key = "back_multiplayer", + order = 11, + func = function(self) + if not Galdur and G.GAME.viewed_back and G.GAME.viewed_back.effect and G.GAME.viewed_back.effect.center.mod then + if G.GAME.viewed_back.effect.center.mod.id == "Multiplayer" and G.STAGE == G.STAGES.MAIN_MENU then + G.shared_stickers["mp_sticker_balanced"].role.draw_major = self + local sticker_offset = self.sticker_offset or {} + G.shared_stickers["mp_sticker_balanced"]:draw_shader( + "dissolve", + nil, + nil, + true, + self.children.center, + nil, + self.sticker_rotation, + sticker_offset.x, + sticker_offset.y + ) + G.shared_stickers["mp_sticker_balanced"]:draw_shader( + "voucher", + nil, + self.ARGS.send_to_shader, + true, + self.children.center, + nil, + self.sticker_rotation, + sticker_offset.x, + sticker_offset.y + ) + end + end + end, + conditions = { vortex = false, facing = "back" }, +}) diff --git a/objects/editions/phantom.lua b/objects/editions/phantom.lua new file mode 100644 index 000000000..be932bd10 --- /dev/null +++ b/objects/editions/phantom.lua @@ -0,0 +1,43 @@ +function apply_phantom(card) + card.ability.eternal = true + card.ability.mp_sticker_nemesis = true +end + +function remove_phantom(card) + card.ability.eternal = false + card.ability.mp_sticker_nemesis = false +end + +SMODS.Edition({ + key = "phantom", + shader = "voucher", + discovered = true, + unlocked = true, + config = {}, + in_shop = false, + apply_to_float = true, + badge_colour = G.C.PURPLE, + sound = { sound = "negative", per = 1.5, vol = 0.4 }, + disable_shadow = false, + disable_base_shader = true, + extra_cost = 0, -- Min sell value is set to -1 by Multiplayer (1 by default) so this is a hack to make the card this is applied to not have a sell value + on_apply = apply_phantom, + on_remove = remove_phantom, + on_load = apply_phantom, + prefix_config = { shader = false }, + mp_credits = { + idea = { "Virtualized" }, + art = { "Carter" }, + code = { "Virtualized" }, + }, +}) + +local get_card_areas_ref = SMODS.get_card_areas +function SMODS.get_card_areas(_type, _context) + if _type == "jokers" and MP.shared then + local t = get_card_areas_ref(_type, _context) + table.insert(t, MP.shared) + return t + end + return get_card_areas_ref(_type, _context) +end diff --git a/objects/enhancements/mp_glass.lua b/objects/enhancements/mp_glass.lua new file mode 100644 index 000000000..dc322f27a --- /dev/null +++ b/objects/enhancements/mp_glass.lua @@ -0,0 +1,9 @@ +MP.ReworkCenter("m_glass", { + layers = { "standard", "classic", "wsob" }, + config = { Xmult = 1.5, extra = 4 }, +}) + +MP.ReworkCenter("m_glass", { + layers = "sandbox", + config = { Xmult = 1.5, extra = 3 }, +}) diff --git a/objects/jokers/conjoined_joker.lua b/objects/jokers/conjoined_joker.lua new file mode 100644 index 000000000..68f865e89 --- /dev/null +++ b/objects/jokers/conjoined_joker.lua @@ -0,0 +1,65 @@ +SMODS.Atlas({ + key = "conjoined_joker", + path = "j_conjoined_joker.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "conjoined_joker", + atlas = "conjoined_joker", + rarity = 2, + cost = 6, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = true, + perishable_compat = true, + config = { extra = { x_mult_gain = 0.5, max_x_mult = 3, x_mult = 1 } }, + loc_vars = function(self, info_queue, card) + MP.UTILS.add_nemesis_info(info_queue) + return { vars = { card.ability.extra.x_mult_gain, card.ability.extra.max_x_mult, card.ability.extra.x_mult } } + end, + mp_include = function(self) + return MP.LOBBY.code and MP.LOBBY.config.multiplayer_jokers and not MP.is_layer_active("sandbox") + end, + add_to_deck = function(self, card, from_debuffed) + if not from_debuffed and (not card.edition or card.edition.type ~= "mp_phantom") then + MP.ACTIONS.send_phantom("j_mp_conjoined_joker") + end + end, + remove_from_deck = function(self, card, from_debuff) + if not from_debuff and (not card.edition or card.edition.type ~= "mp_phantom") then + MP.ACTIONS.remove_phantom("j_mp_conjoined_joker") + end + end, + update = function(self, card, dt) + if MP.LOBBY.code then + if G.STAGE == G.STAGES.RUN then + card.ability.extra.x_mult = math.max( + math.min(1 + (MP.GAME.enemy.hands * card.ability.extra.x_mult_gain), card.ability.extra.max_x_mult), + 1 + ) + end + else + card.ability.extra.x_mult = 1 + end + end, + calculate = function(self, card, context) + if + context.cardarea == G.jokers + and context.joker_main + and MP.is_pvp_boss() + and (not card.edition or card.edition.type ~= "mp_phantom") + then + return { + x_mult = card.ability.extra.x_mult, + } + end + end, + mp_credits = { + idea = { "Zilver" }, + art = { "Nas4xou" }, + code = { "Virtualized" }, + }, +}) diff --git a/objects/jokers/defensive_joker.lua b/objects/jokers/defensive_joker.lua new file mode 100644 index 000000000..1257c207d --- /dev/null +++ b/objects/jokers/defensive_joker.lua @@ -0,0 +1,54 @@ +SMODS.Atlas({ + key = "defensive_joker", + path = "j_defensive_joker.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "defensive_joker", + atlas = "defensive_joker", + rarity = 1, + cost = 4, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = true, + perishable_compat = true, + config = { t_chips = 0, extra = { extra = 125, highstake = 75 } }, + loc_vars = function(self, info_queue, card) + local chips = G.GAME.stake >= 6 and card.ability.extra.highstake or card.ability.extra.extra + return { vars = { chips, card.ability.t_chips } } + end, + mp_include = function(self) + return MP.LOBBY.code and MP.LOBBY.config.multiplayer_jokers + end, + update = function(self, card, dt) + if not MP.LOBBY.code then + card.ability.t_chips = 0 + return + end + + if G.STAGE ~= G.STAGES.RUN then return end + + local chips = G.GAME.stake >= 6 and card.ability.extra.highstake or card.ability.extra.extra + card.ability.t_chips = math.max((MP.GAME.enemy.lives - MP.GAME.lives) * chips, 0) + end, + calculate = function(self, card, context) + if context.cardarea == G.jokers and context.joker_main then + return { + message = localize({ + type = "variable", + key = "a_chips", + vars = { card.ability.t_chips }, + }), + chip_mod = card.ability.t_chips, + } + end + end, + mp_credits = { + idea = { "didon't" }, + art = { "TheTrueRaven" }, + code = { "Virtualized" }, + }, +}) diff --git a/objects/jokers/experimental/baron_uncommon.lua b/objects/jokers/experimental/baron_uncommon.lua new file mode 100644 index 000000000..eebae060c --- /dev/null +++ b/objects/jokers/experimental/baron_uncommon.lua @@ -0,0 +1,35 @@ +--[[ +SMODS.Joker({ + key = "baron", + no_collection = true, + unlocked = true, + discovered = true, + blueprint_compat = true, + rarity = 2, + cost = 5, + pos = { x = 6, y = 12 }, + config = { extra = { xmult = 1.5 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.xmult } } + end, + calculate = function(self, card, context) + if + context.individual + and context.cardarea == G.hand + and not context.end_of_round + and context.other_card:get_id() == 13 + then + if context.other_card.debuff then + return { + message = localize("k_debuffed"), + colour = G.C.RED, + } + else + return { + x_mult = card.ability.extra.xmult, + } + end + end + end, +}) +--]] diff --git a/objects/jokers/experimental/idol_rare.lua b/objects/jokers/experimental/idol_rare.lua new file mode 100644 index 000000000..96fba59aa --- /dev/null +++ b/objects/jokers/experimental/idol_rare.lua @@ -0,0 +1,36 @@ +SMODS.Joker({ + key = "idol_rare", + unlocked = true, + discovered = true, + blueprint_compat = true, + perishable_compat = true, + eternal_compat = true, + rarity = 3, + cost = 8, + pos = { x = 6, y = 7 }, + no_collection = true, + config = { extra = { xmult = 2 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + local idol_card = G.GAME.current_round.idol_card or { rank = "Ace", suit = "Spades" } + return { + vars = { + card.ability.extra.xmult, + localize(idol_card.rank, "ranks"), + localize(idol_card.suit, "suits_plural"), + colours = { G.C.SUITS[idol_card.suit] }, + }, + } + end, + calculate = function(self, card, context) + if + context.individual + and context.cardarea == G.play + and context.other_card:get_id() == G.GAME.current_round.idol_card.id + and context.other_card:is_suit(G.GAME.current_round.idol_card.suit) + then + return { + xmult = card.ability.extra.xmult, + } + end + end, +}) diff --git a/objects/jokers/experimental/mime_rare.lua b/objects/jokers/experimental/mime_rare.lua new file mode 100644 index 000000000..d045f837e --- /dev/null +++ b/objects/jokers/experimental/mime_rare.lua @@ -0,0 +1,20 @@ +--[[ +SMODS.Joker({ + key = "mime", + no_collection = true, + unlocked = true, + discovered = true, + blueprint_compat = true, + rarity = 3, + cost = 8, + pos = { x = 4, y = 1 }, + config = { extra = { repetitions = 1 }, mp_balanced = true }, + calculate = function(self, card, context) + if context.repetition and context.cardarea == G.hand and (next(context.card_effects[1]) or #context.card_effects > 1) then + return { + repetitions = card.ability.extra.repetitions, + } + end + end, +}) +--]] diff --git a/objects/jokers/experimental/todo_list.lua b/objects/jokers/experimental/todo_list.lua new file mode 100644 index 000000000..83c6fc53f --- /dev/null +++ b/objects/jokers/experimental/todo_list.lua @@ -0,0 +1,47 @@ +SMODS.Joker({ + key = "todo_list", + no_collection = true, + unlocked = true, + discovered = true, + blueprint_compat = true, + rarity = 1, + cost = 4, + pos = { x = 4, y = 11 }, + config = { extra = { dollars = 5, poker_hand = "High Card" }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.dollars, localize(card.ability.extra.poker_hand, "poker_hands") } } + end, + calculate = function(self, card, context) + if context.before and context.scoring_name == card.ability.extra.poker_hand then + G.GAME.dollar_buffer = (G.GAME.dollar_buffer or 0) + card.ability.extra.dollars + return { + dollars = card.ability.extra.dollars, + func = function() + G.E_MANAGER:add_event(Event({ + func = function() + G.GAME.dollar_buffer = 0 + return true + end, + })) + end, + } + end + if context.end_of_round and context.game_over == false and context.main_eval and not context.blueprint then + local _poker_hands = {} + for handname, _ in pairs(G.GAME.hands) do + if handname ~= card.ability.extra.poker_hand then _poker_hands[#_poker_hands + 1] = handname end + end + card.ability.extra.poker_hand = pseudorandom_element(_poker_hands, "todo_list") + return { + message = localize("k_reset"), + } + end + end, + set_ability = function(self, card, initial, delay_sprites) + local _poker_hands = {} + for handname, _ in pairs(G.GAME.hands) do + if handname ~= card.ability.extra.poker_hand then _poker_hands[#_poker_hands + 1] = handname end + end + card.ability.extra.poker_hand = pseudorandom_element(_poker_hands, "todo_list") + end, +}) diff --git a/objects/jokers/lets_go_gambling.lua b/objects/jokers/lets_go_gambling.lua new file mode 100644 index 000000000..699e6aedd --- /dev/null +++ b/objects/jokers/lets_go_gambling.lua @@ -0,0 +1,82 @@ +SMODS.Atlas({ + key = "lets_go_gambling", + path = "j_lets_go_gambling.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "lets_go_gambling", + atlas = "lets_go_gambling", + rarity = 2, + cost = 6, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = true, + perishable_compat = true, + config = { extra = { odds = 4, xmult = 4, dollars = 10, nemesis_odds = 4, nemesis_dollars = 10 } }, + loc_vars = function(self, info_queue, card) + local numerator, denominator = + SMODS.get_probability_vars(card, 1, card.ability.extra.odds, "j_mp_lets_go_gambling") + local nem_numerator, nem_denominator = + SMODS.get_probability_vars(card, 1, card.ability.extra.nemesis_odds, "j_mp_lets_go_gambling_misfire") + return { + vars = { + numerator, + denominator, + card.ability.extra.xmult, + card.ability.extra.dollars, + nem_numerator, + nem_denominator, + card.ability.extra.nemesis_dollars, + }, + } + end, + mp_include = function(self) + return MP.LOBBY.code and MP.LOBBY.config.multiplayer_jokers + end, + calculate = function(self, card, context) + if + context.cardarea == G.jokers + and context.joker_main + and (not card.edition or card.edition.type ~= "mp_phantom") + then + local returns = nil + if SMODS.pseudorandom_probability(card, "j_mp_lets_go_gambling", 1, card.ability.extra.odds) then + returns = {} + returns.x_mult = card.ability.extra.xmult + returns.dollars = card.ability.extra.dollars + end + if + MP.is_pvp_boss() + and SMODS.pseudorandom_probability( + card, + "j_mp_lets_go_gambling_misfire", + 1, + card.ability.extra.nemesis_odds + ) + then + returns = returns or {} + MP.ACTIONS.lets_go_gambling_nemesis() + returns.message = localize("k_oops_ex") + end + return returns + end + end, + add_to_deck = function(self, card, from_debuffed) + if not from_debuffed and (not card.edition or card.edition.type ~= "mp_phantom") then + MP.ACTIONS.send_phantom("j_mp_lets_go_gambling") + end + end, + remove_from_deck = function(self, card, from_debuff) + if not from_debuff and (not card.edition or card.edition.type ~= "mp_phantom") then + MP.ACTIONS.remove_phantom("j_mp_lets_go_gambling") + end + end, + mp_credits = { + idea = { "Dr. Monty" }, + art = { "Carter" }, + code = { "Virtualized" }, + }, +}) diff --git a/objects/jokers/pacifist.lua b/objects/jokers/pacifist.lua new file mode 100644 index 000000000..0f5bb6743 --- /dev/null +++ b/objects/jokers/pacifist.lua @@ -0,0 +1,37 @@ +SMODS.Atlas({ + key = "pacifist", + path = "j_pacifist.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "pacifist", + atlas = "pacifist", + rarity = 1, + cost = 4, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = true, + perishable_compat = true, + config = { extra = { x_mult = 10 } }, + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.x_mult } } + end, + mp_include = function(self) + return MP.LOBBY.code and MP.LOBBY.config.multiplayer_jokers + end, + calculate = function(self, card, context) + if context.cardarea == G.jokers and context.joker_main and not MP.is_pvp_boss() then + return { + x_mult = card.ability.extra.x_mult, + } + end + end, + mp_credits = { + idea = { "Zilver" }, + art = { "zeathemays" }, + code = { "Virtualized" }, + }, +}) diff --git a/objects/jokers/penny_pincher.lua b/objects/jokers/penny_pincher.lua new file mode 100644 index 000000000..5454534a4 --- /dev/null +++ b/objects/jokers/penny_pincher.lua @@ -0,0 +1,40 @@ +SMODS.Atlas({ + key = "penny_pincher", + path = "j_penny_pincher.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "penny_pincher", + atlas = "penny_pincher", + rarity = 1, + cost = 4, + unlocked = true, + discovered = true, + blueprint_compat = false, + eternal_compat = true, + perishable_compat = true, + config = { extra = { dollars = 1, nemesis_dollars = 3 } }, + loc_vars = function(self, info_queue, card) + MP.UTILS.add_nemesis_info(info_queue) + return { vars = { card.ability.extra.dollars, card.ability.extra.nemesis_dollars } } + end, + in_pool = function(self) + return MP.GAME.pincher_unlock -- do NOT replace this with G.GAME.round_resets.ante >= 3, order sets ante to 0 + end, + mp_include = function(self) + return MP.LOBBY.code and MP.LOBBY.config.multiplayer_jokers + end, + calc_dollar_bonus = function(self, card) + local spent = MP.GAME.enemy.spent_in_shop[MP.GAME.pincher_index] + local money = 0 + if spent then money = math.floor(spent / card.ability.extra.nemesis_dollars) end + if money > 0 then return money end + end, + mp_credits = { + idea = { "Nxkoozie" }, + art = { "Coo29" }, + code = { "Virtualized" }, + }, +}) diff --git a/objects/jokers/pizza.lua b/objects/jokers/pizza.lua new file mode 100644 index 000000000..63d4fa1a8 --- /dev/null +++ b/objects/jokers/pizza.lua @@ -0,0 +1,55 @@ +SMODS.Atlas({ + key = "pizza", + path = "j_pizza.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "pizza", + atlas = "pizza", + rarity = 1, + cost = 4, + unlocked = true, + discovered = true, + blueprint_compat = false, + eternal_compat = false, + perishable_compat = true, + config = { extra = { discards = 2, discards_nemesis = 1 } }, + loc_vars = function(self, info_queue, card) + MP.UTILS.add_nemesis_info(info_queue) + return { vars = { card.ability.extra.discards, card.ability.extra.discards_nemesis } } + end, + mp_include = function(self) + return MP.LOBBY.code and MP.LOBBY.config.multiplayer_jokers + end, + add_to_deck = function(self, card, from_debuffed) + if not from_debuffed and (not card.edition or card.edition.type ~= "mp_phantom") then + MP.ACTIONS.send_phantom("j_mp_pizza") + end + end, + remove_from_deck = function(self, card, from_debuff) + if not from_debuff and (not card.edition or card.edition.type ~= "mp_phantom") then + MP.ACTIONS.remove_phantom("j_mp_pizza") + end + end, + calculate = function(self, card, context) + if context.mp_end_of_pvp and not context.blueprint and (not card.edition or card.edition.type ~= "mp_phantom") then + MP.GAME.pizza_discards = MP.GAME.pizza_discards + card.ability.extra.discards + G.GAME.round_resets.discards = G.GAME.round_resets.discards + card.ability.extra.discards + ease_discard(card.ability.extra.discards) + MP.ACTIONS.eat_pizza(card.ability.extra.discards_nemesis) + card:remove_from_deck() + card:start_dissolve({ G.C.RED }, nil, 1.6) + return { + message = localize("k_eaten_ex"), + colour = G.C.RED, + } + end + end, + mp_credits = { + idea = { "Virtualized" }, + art = { "TheTrueRaven" }, + code = { "Virtualized" }, + }, +}) diff --git a/objects/jokers/sandbox/baseball.lua b/objects/jokers/sandbox/baseball.lua new file mode 100644 index 000000000..034e763cb --- /dev/null +++ b/objects/jokers/sandbox/baseball.lua @@ -0,0 +1,38 @@ +SMODS.Atlas({ + key = "baseball_sandbox", + path = "j_baseball_sandbox.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "baseball_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + rarity = 3, + cost = 8, + atlas = "baseball_sandbox", + config = { extra = { xmult = 2 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.xmult } } + end, + calculate = function(self, card, context) + if + context.other_joker + and ( + context.other_joker.config.center.rarity == 2 + or context.other_joker.config.center.rarity == "Uncommon" + ) + then + return { + xmult = card.ability.extra.xmult, + } + end + end, + mp_credits = { idea = { "Sylvie" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/bloodstone.lua b/objects/jokers/sandbox/bloodstone.lua new file mode 100644 index 000000000..bd259e981 --- /dev/null +++ b/objects/jokers/sandbox/bloodstone.lua @@ -0,0 +1,39 @@ +SMODS.Atlas({ + key = "bloodstone_sandbox", + path = "j_bloodstone_sandbox.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "bloodstone_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + rarity = 2, + cost = 7, + atlas = "bloodstone_sandbox", + config = { extra = { odds = 3, Xmult = 2 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + local numerator, denominator = + SMODS.get_probability_vars(card, 1, card.ability.extra.odds, "j_mp_bloodstone_sandbox") + return { vars = { numerator, denominator, card.ability.extra.Xmult, colours = { G.C.SUITS["Hearts"] } } } + end, + calculate = function(self, card, context) + if + context.individual + and context.cardarea == G.play + and context.other_card:is_suit("Hearts") + and SMODS.pseudorandom_probability(card, "j_mp_bloodstone_sandbox", 1, card.ability.extra.odds) + then + return { + xmult = card.ability.extra.Xmult, + } + end + end, + mp_credits = { idea = { "LocalThunk" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/castle.lua b/objects/jokers/sandbox/castle.lua new file mode 100644 index 000000000..20ded6e2b --- /dev/null +++ b/objects/jokers/sandbox/castle.lua @@ -0,0 +1,54 @@ +SMODS.Atlas({ + key = "castle_sandbox", + path = "j_castle_sandbox.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "castle_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + atlas = "castle_sandbox", + blueprint_compat = true, + perishable_compat = false, + rarity = 2, + cost = 6, + config = { extra = { chips = 0, chip_mod = 10, suit = nil }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + local suit = card.ability.extra.suit or G.GAME.current_round.castle_card.suit or "Spades" + return { + vars = { + string.upper(localize(suit, "suits_plural")), + colours = { G.C.SUITS[suit] }, + card.ability.extra.chips, + card.ability.extra.chip_mod, + }, + } + end, + calculate = function(self, card, context) + if + context.discard + and not context.blueprint + and not context.other_card.debuff + and context.other_card:is_suit(card.ability.extra.suit) + then + card.ability.extra.chips = card.ability.extra.chips + card.ability.extra.chip_mod + return { + message = localize("k_upgrade_ex"), + colour = G.C.CHIPS, + } + end + if context.joker_main then return { + chips = card.ability.extra.chips, + } end + end, + add_to_deck = function(self, card, from_debuff) + if card.ability.extra.suit == nil then card.ability.extra.suit = G.GAME.current_round.castle_card.suit end + end, + mp_credits = { code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/cloud_9.lua b/objects/jokers/sandbox/cloud_9.lua new file mode 100644 index 000000000..8f851c808 --- /dev/null +++ b/objects/jokers/sandbox/cloud_9.lua @@ -0,0 +1,63 @@ +SMODS.Atlas({ + key = "cloud_9_sandbox", + path = "j_cloud_9_sandbox.png", + px = 71, + py = 95, +}) + +local function calculate_cloud_9_bonus(card) + local nine_tally = 0 + if G.playing_cards ~= nil then + for k, v in pairs(G.playing_cards) do + if v:get_id() == 9 then nine_tally = nine_tally + 1 end + end + end + + local base_bonus = math.min(nine_tally, 4) + local excess_nines = math.max(nine_tally - 4, 0) + local multiplied_bonus = excess_nines * card.ability.extra.money + + return base_bonus + multiplied_bonus +end + +SMODS.Joker({ + key = "cloud_9_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = false, + perishable_compat = true, + eternal_compat = true, + rarity = 2, + cost = 7, + atlas = "cloud_9_sandbox", + config = { extra = { money = 2, odds = 4 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + local numerator, denominator = + SMODS.get_probability_vars(card, 1, card.ability.extra.odds, "j_mp_cloud_9_sandbox") + + return { + vars = { + numerator, + denominator, + calculate_cloud_9_bonus(card), + }, + } + end, + mp_credits = { code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, + calc_dollar_bonus = function(self, card) + return calculate_cloud_9_bonus(card) + end, + calculate = function(self, card, context) + if context.individual and context.cardarea == G.play and not context.other_card.debuff then + if SMODS.pseudorandom_probability(card, "j_mp_cloud_9_sandbox", 1, card.ability.extra.odds) then + SMODS.modify_rank(context.other_card, 9 - context.other_card:get_id()) + play_sound("card1", 1) + context.other_card:juice_up(0.3, 0.3) + end + end + end, +}) diff --git a/objects/jokers/sandbox/constellation.lua b/objects/jokers/sandbox/constellation.lua new file mode 100644 index 000000000..2f51d897c --- /dev/null +++ b/objects/jokers/sandbox/constellation.lua @@ -0,0 +1,52 @@ +SMODS.Atlas({ + key = "constellation_sandbox", + path = "j_constellation_sandbox.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "constellation_sandbox", + no_collection = MP.sandbox_no_collection, + + unlocked = true, + discovered = true, + blueprint_compat = true, + perishable_compat = false, + rarity = 2, + cost = 6, + atlas = "constellation_sandbox", + config = { extra = { Xmult = 1, Xmult_mod = 0.2, Xmult_loss = 0.2 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.Xmult } } + end, + calculate = function(self, card, context) + -- Gain mult when planet card is used + if context.using_consumeable and not context.blueprint and context.consumeable.ability.set == "Planet" then + card.ability.extra.Xmult = card.ability.extra.Xmult + card.ability.extra.Xmult_mod + return { + message = localize({ type = "variable", key = "a_xmult", vars = { card.ability.extra.Xmult } }), + } + end + -- Apply mult during main calculation + if context.joker_main then return { + xmult = card.ability.extra.Xmult, + } end + -- Lose mult at end of round + if context.end_of_round and not context.blueprint and not context.individual and not context.repetition then + card.ability.extra.Xmult = math.max(1, card.ability.extra.Xmult - card.ability.extra.Xmult_loss) + return { + message = localize({ + type = "variable", + key = "a_xmult_minus", + vars = { card.ability.extra.Xmult_loss }, + }), + colour = G.C.RED, + } + end + end, + mp_credits = { code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/error.lua b/objects/jokers/sandbox/error.lua new file mode 100644 index 000000000..1b54b0c29 --- /dev/null +++ b/objects/jokers/sandbox/error.lua @@ -0,0 +1,122 @@ +SMODS.Atlas({ + key = "error_sandbox", + path = "j_ERROR_sandbox.png", + px = 71, + py = 95, +}) + +for i = 1, 21 do + SMODS.Joker({ + key = "error_sandbox_" .. i, + loc_vars = function(self, info_queue, card) + local r_mults = {} + for i = 1, 333 do + r_mults[#r_mults + 1] = tostring(i) + end + local loc_mult = "(CURRENTLY " .. math.random(1, 333) .. ")" + main_end = { + { n = G.UIT.T, config = { text = loc_mult, colour = lighten(G.C.PURPLE, 0.2), scale = 0.4 } }, + { + n = G.UIT.O, + config = { + object = DynaText({ + string = r_mults, + colours = { G.C.MONEY }, + pop_in_rate = 9999999, + silent = true, + random_element = true, + pop_delay = 1.52, + scale = 0.32, + min_cycle_time = 0, + }), + }, + }, + { + n = G.UIT.O, + config = { + object = DynaText({ + string = { + { string = "SYSTEM_SERVICE_EXCEPTION", colour = lighten(G.C.BLUE, 0.3) }, + { string = "KERNEL_DATA_INPAGE_ERROR", colour = G.C.BLUE }, + { string = "IRQL_NOT_LESS_OR_EQUAL", colour = lighten(G.C.BLUE, 0.4) }, + { string = "PAGE_FAULT_IN_NONPAGED_AREA", colour = G.C.CHIPS }, + { string = "KMODE_EXCEPTION_NOT_HANDLED", colour = lighten(G.C.BLUE, 0.2) }, + { string = "DRIVER_POWER_STATE_FAILURE", colour = G.C.SECONDARY_SET.Planet }, + { string = "CRITICAL_PROCESS_DIED", colour = G.C.RED }, + { string = "BAD_POOL_HEADER", colour = lighten(G.C.CHIPS, 0.3) }, + { string = "MEMORY_MANAGEMENT", colour = G.C.BLUE }, + { string = "SYSTEM_THREAD_EXCEPTION", colour = lighten(G.C.BLUE, 0.5) }, + { string = "DPC_WATCHDOG_VIOLATION", colour = G.C.CHIPS }, + { string = "CLOCK_WATCHDOG_TIMEOUT", colour = lighten(G.C.BLUE, 0.1) }, + { string = "WHEA_UNCORRECTABLE_ERROR", colour = G.C.SECONDARY_SET.Planet }, + { string = "PFN_LIST_CORRUPT", colour = lighten(G.C.CHIPS, 0.4) }, + { string = "DRIVER_VERIFIER_DETECTED", colour = G.C.BLUE }, + { string = "THREAD_STUCK_IN_DEVICE_DRIVER", colour = lighten(G.C.BLUE, 0.2) }, + { string = "VIDEO_TDR_TIMEOUT_DETECTED", colour = G.C.CHIPS }, + { string = "APC_INDEX_MISMATCH", colour = lighten(G.C.BLUE, 0.6) }, + { string = "DRIVER_IRQL_NOT_LESS_OR_EQUAL", colour = G.C.SECONDARY_SET.Planet }, + { string = "BUGCODE_USB_DRIVER", colour = lighten(G.C.CHIPS, 0.2) }, + { string = "HYPERVISOR_ERROR", colour = G.C.BLUE }, + { string = "UNEXPECTED_KERNEL_MODE_TRAP", colour = lighten(G.C.BLUE, 0.3) }, + { string = "ATTEMPTED_WRITE_TO_READONLY_MEMORY", colour = G.C.CHIPS }, + { string = "DRIVER_CORRUPTED_EXPOOL", colour = lighten(G.C.BLUE, 0.4) }, + { string = "NTFS_FILE_SYSTEM", colour = G.C.SECONDARY_SET.Planet }, + { string = "FAT_FILE_SYSTEM", colour = lighten(G.C.CHIPS, 0.3) }, + { string = "KERNEL_SECURITY_CHECK_FAILURE", colour = G.C.BLUE }, + { string = "STOP: 0x0000007E", colour = lighten(G.C.BLUE, 0.2) }, + { string = "STOP: 0x000000D1", colour = G.C.CHIPS }, + { string = "STOP: 0x0000001E", colour = lighten(G.C.BLUE, 0.5) }, + { string = "STOP: 0x00000050", colour = G.C.SECONDARY_SET.Planet }, + { string = "STOP: 0x000000A", colour = lighten(G.C.CHIPS, 0.4) }, + { string = "corrupted heap", colour = G.C.BLIND.Boss }, + { string = "BSOD", colour = G.C.BLUE }, + { string = "malloc(): corrupted top size", colour = G.C.RED }, + { string = "use after free", colour = G.C.PERISHABLE }, + { string = "stack smashing detected", colour = G.C.ETERNAL }, + { string = "double free or corruption", colour = lighten(G.C.RED, 0.2) }, + { string = "zombie process", colour = lighten(G.C.L_BLACK, 0.5) }, + { string = "killed by signal 9", colour = G.C.SO_1.Hearts }, + { + string = "0x" .. string.format("%08X", math.random(0, 0xFFFFFFFF)), + colour = G.C.MONEY, + }, + "$", + "€", + "¥", + "despair", + "£", + "₹", + "₽", + "₩", + "¢", + "₿", + "◊", + }, + colours = { G.C.UI.TEXT_DARK }, + pop_in_rate = 1, + silent = true, + random_element = true, + pop_delay = 0.38, + scale = 0.32, + min_cycle_time = 0, + }), + }, + }, + } + return { + main_end = main_end, + -- modified localization key trickery to ensure we always use this localization, thanks toneblock + key = "j_mp_error_sandbox", + } + end, + + atlas = "error_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + mp_include = function(self) + return false + end, + mp_credits = { art = { "aura?" } }, + }) +end diff --git a/objects/jokers/sandbox/extra-credit/_ec_atlas.lua b/objects/jokers/sandbox/extra-credit/_ec_atlas.lua new file mode 100644 index 000000000..e68e6ca01 --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/_ec_atlas.lua @@ -0,0 +1,11 @@ +-- Extra Credit Atlas Registration +-- Shared atlas for all Extra Credit jokers ported to Sandbox +-- Art by the Extra Credit team — see individual joker files for per-card credits +-- This file is prefixed with underscore to ensure it loads before the joker files + +SMODS.Atlas({ + key = "ec_jokers_sandbox", + path = "ec_jokers_sandbox.png", + px = 71, + py = 95, +}) diff --git a/objects/jokers/sandbox/extra-credit/_ec_utils.lua b/objects/jokers/sandbox/extra-credit/_ec_utils.lua new file mode 100644 index 000000000..25bbdf64c --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/_ec_utils.lua @@ -0,0 +1,107 @@ +-- Extra Credit Utilities Module +-- Shared utility functions for Extra Credit jokers ported to Sandbox +-- This file is prefixed with underscore to ensure it loads before the joker files + +MP.EC = MP.EC or {} + +-- Talisman Compatibility wrapper +to_big = to_big or function(x) + return x +end +to_number = to_number or function(x) + return x +end + +--- Resets Tuxedo joker's selected suit for the round +--- Randomly selects a suit different from the current one +local function reset_tuxedo_card() + local tuxedo_suits = {} + G.GAME.current_round.tuxedo_card = G.GAME.current_round.tuxedo_card or {} + for k, suit in pairs(SMODS.Suits) do + if + k ~= G.GAME.current_round.tuxedo_card.suit + and (type(suit.in_pool) ~= "function" or suit:in_pool({ rank = "" })) + then + tuxedo_suits[#tuxedo_suits + 1] = k + end + end + local seed = "tux" + + local tuxedo_card = pseudorandom_element(tuxedo_suits, pseudoseed(seed)) + G.GAME.current_round.tuxedo_card.suit = tuxedo_card +end + +--- Resets Farmer joker's selected suit for the round +--- Randomly selects a suit different from the current one +local function reset_farmer_card() + local farmer_suits = {} + G.GAME.current_round.farmer_card = G.GAME.current_round.farmer_card or {} + for k, suit in pairs(SMODS.Suits) do + if + k ~= G.GAME.current_round.farmer_card.suit + and (type(suit.in_pool) ~= "function" or suit:in_pool({ rank = "" })) + then + farmer_suits[#farmer_suits + 1] = k + end + end + + local seed = "farm" + + local farmer_card = pseudorandom_element(farmer_suits, pseudoseed(seed)) + G.GAME.current_round.farmer_card.suit = farmer_card +end + +--- Resets Go Fish joker's selected rank for the round +--- Randomly selects a rank different from the current one +local function reset_fish_rank() + local valid_fish_ranks = {} + G.GAME.current_round.fish_rank = G.GAME.current_round.fish_rank or {} + for k, rank in pairs(SMODS.Ranks) do + if + k ~= G.GAME.current_round.fish_rank.rank + and (type(rank.in_pool) ~= "function" or rank:in_pool({ suit = "" })) + then + valid_fish_ranks[#valid_fish_ranks + 1] = k + end + end + + local seed = "fish" + + local fish_pick = pseudorandom_element(valid_fish_ranks, pseudoseed(seed)) + G.GAME.current_round.fish_rank.rank = fish_pick +end + +--- Hook into game globals reset to initialize EC round state +--- Called at start of each round +local original_reset_game_globals = MP.reset_game_globals +MP.reset_game_globals = function(run_start) + if original_reset_game_globals then original_reset_game_globals(run_start) end + + -- Only initialize EC state when sandbox ruleset is active + if MP.is_layer_active("sandbox") then + reset_tuxedo_card() + reset_farmer_card() + reset_fish_rank() + end +end + +-- Hoarder joker: gain sell value each time we earn money +local original_ease_dollars = ease_dollars +function ease_dollars(mod, x) + original_ease_dollars(mod, x) + + if MP.is_layer_active("sandbox") and to_big(mod) > to_big(0) and G.jokers and G.jokers.cards then + for i = 1, #G.jokers.cards do + local card = G.jokers.cards[i] + if card.config.center.key == "j_mp_hoarder_sandbox" and not card.debuffed then + card.ability.extra_value = card.ability.extra_value + card.ability.extra + card:set_cost() + card_eval_status_text(card, "extra", nil, nil, nil, { + message = localize("k_val_up"), + colour = G.C.MONEY, + card = card, + }) + end + end + end +end diff --git a/objects/jokers/sandbox/extra-credit/alloy.lua b/objects/jokers/sandbox/extra-credit/alloy.lua new file mode 100644 index 000000000..575cf0c71 --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/alloy.lua @@ -0,0 +1,36 @@ +SMODS.Joker({ + key = "alloy_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = false, + eternal_compat = true, + + rarity = 2, + cost = 7, + atlas = "ec_jokers_sandbox", + pos = { x = 4, y = 4 }, + + config = { mp_sticker_extra_credit = true }, + + loc_vars = function(self, info_queue, card) + info_queue[#info_queue + 1] = G.P_CENTERS.m_gold + info_queue[#info_queue + 1] = G.P_CENTERS.m_steel + return + end, + + calculate = function(self, card, context) + if context.check_enhancement then + if context.other_card.config.center.key == "m_gold" then return { m_steel = true } end + if context.other_card.config.center.key == "m_steel" then return { m_gold = true } end + end + end, + + mp_credits = { + code = { "CampfireCollective" }, + art = { "dottykitty" }, + }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/ambrosia.lua b/objects/jokers/sandbox/extra-credit/ambrosia.lua new file mode 100644 index 000000000..8c876d092 --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/ambrosia.lua @@ -0,0 +1,93 @@ +SMODS.Joker({ + key = "ambrosia_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = false, + eternal_compat = false, + + rarity = 2, + cost = 5, + atlas = "ec_jokers_sandbox", + pos = { x = 5, y = 2 }, + + config = { + extra = {}, + + mp_sticker_extra_credit = true, + }, + + loc_vars = function(self, info_queue, card) + return { vars = {} } + end, + + calculate = function(self, card, context) + if context.skip_blind then + for i = 1, G.consumeables.config.card_limit do + if #G.consumeables.cards + G.GAME.consumeable_buffer < G.consumeables.config.card_limit then + G.GAME.consumeable_buffer = G.GAME.consumeable_buffer + 1 + G.E_MANAGER:add_event(Event({ + trigger = "before", + delay = 0.0, + func = function() + local card = create_card("Spectral", G.consumeables, nil, nil, nil, nil, nil, "ambro") + card:add_to_deck() + G.consumeables:emplace(card) + G.GAME.consumeable_buffer = 0 + card:juice_up(0.5, 0.5) + return true + end, + })) + card_eval_status_text( + context.blueprint_card or card, + "extra", + nil, + nil, + nil, + { message = localize("k_plus_spectral"), colour = G.C.SECONDARY_SET.Spectral } + ) + end + end + elseif context.selling_card then + if context.card.ability.set == "Spectral" then + G.E_MANAGER:add_event(Event({ + func = function() + play_sound("tarot1") + card.T.r = -0.2 + card:juice_up(0.3, 0.4) + card.states.drag.is = true + card.children.center.pinch.x = true + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.3, + blockable = false, + func = function() + G.jokers:remove_card(card) + card:remove() + card = nil + return true + end, + })) + return true + end, + })) + card_eval_status_text( + context.blueprint_card or card, + "extra", + nil, + nil, + nil, + { message = localize("k_drank_ex"), colour = G.C.SECONDARY_SET.Spectral } + ) + end + end + end, + + mp_credits = { + code = { "CampfireCollective" }, + art = { "dottykitty" }, + }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/bobby.lua b/objects/jokers/sandbox/extra-credit/bobby.lua new file mode 100644 index 000000000..59d2e17db --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/bobby.lua @@ -0,0 +1,62 @@ +SMODS.Joker({ + key = "bobby_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = true, + + rarity = 2, + cost = 6, + atlas = "ec_jokers_sandbox", + pos = { x = 0, y = 3 }, + + config = { + extra = { + hands = 2, + discards = 4, + }, + + mp_sticker_extra_credit = true, + }, + + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.hands, card.ability.extra.discards } } + end, + + calculate = function(self, card, context) + if context.setting_blind and not (context.blueprint_card or card).getting_sliced then + G.E_MANAGER:add_event(Event({ + func = function() + if G.GAME.current_round.hands_left < 2 then + elseif G.GAME.current_round.hands_left == 2 then + ease_hands_played(-(card.ability.extra.hands / 2), true) + ease_discard((card.ability.extra.discards / 2), true, true) + card_eval_status_text(context.blueprint_card or card, "extra", nil, nil, nil, { + message = "+" .. tostring(card.ability.extra.discards / 2) .. " " .. localize( + "k_hud_discards" + ), + colour = G.C.RED, + }) + elseif G.GAME.current_round.hands_left > 2 then + ease_hands_played(-card.ability.extra.hands, true) + ease_discard(card.ability.extra.discards, true, true) + card_eval_status_text(context.blueprint_card or card, "extra", nil, nil, nil, { + message = "+" .. tostring(card.ability.extra.discards) .. " " .. localize("k_hud_discards"), + colour = G.C.RED, + }) + end + return true + end, + })) + end + end, + + mp_credits = { + code = { "CampfireCollective" }, + art = { "R3venantR3mnant" }, + }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/candynecklace.lua b/objects/jokers/sandbox/extra-credit/candynecklace.lua new file mode 100644 index 000000000..e16998b9b --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/candynecklace.lua @@ -0,0 +1,71 @@ +-- Candy Necklace - Extra Credit Joker ported to Sandbox +-- Random Booster Pack Tag at shop end (5 uses) + +SMODS.Joker({ + key = "candynecklace_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = false, + rarity = 2, + cost = 8, + atlas = "ec_jokers_sandbox", + pos = { x = 9, y = 0 }, + config = { + extra = { + candies = 5, + flavours = { "tag_buffoon", "tag_charm", "tag_meteor", "tag_standard", "tag_ethereal" }, + }, + + mp_sticker_extra_credit = true, + }, + + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.candies } } + end, + + calculate = function(self, card, context) + if context.ending_shop and card.ability.extra.candies > 0 then + local tag_key = pseudorandom_element(card.ability.extra.flavours, pseudoseed("candy_tag")) + add_tag(Tag(tag_key)) + + if not context.blueprint then + card.ability.extra.candies = card.ability.extra.candies - 1 + + if card.ability.extra.candies <= 0 then + G.E_MANAGER:add_event(Event({ + func = function() + play_sound("tarot1") + card.T.r = -0.2 + card:juice_up(0.3, 0.4) + card.states.drag.is = true + card.children.center.pinch.x = true + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.3, + blockable = false, + func = function() + G.jokers:remove_card(card) + card:remove() + card = nil + return true + end, + })) + return true + end, + })) + return { + message = localize("k_eaten_ex"), + colour = G.C.MONEY, + } + end + end + end + end, + + mp_credits = { code = { "CampfireCollective" }, art = { "dottykitty" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/chainlightning.lua b/objects/jokers/sandbox/extra-credit/chainlightning.lua new file mode 100644 index 000000000..772e0e4c0 --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/chainlightning.lua @@ -0,0 +1,64 @@ +SMODS.Joker({ + key = "chainlightning_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = true, + + rarity = 3, + cost = 9, + atlas = "ec_jokers_sandbox", + pos = { x = 2, y = 3 }, + + config = { + extra = { + Xmult = 1, + Xmult_mod = 0.1, + total = 0, + so_far = 0, + }, + + mp_sticker_extra_credit = true, + }, + + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.Xmult, card.ability.extra.Xmult_mod } } + end, + + calculate = function(self, card, context) + if context.before then + card.ability.extra.Xmult = 1 + card.ability.extra.total = card.ability.extra.total + 1 + card.ability.extra.so_far = 0 + elseif + context.cardarea == G.play + and context.individual + and context.other_card.config.center.key == "m_mult" + then + local thunk = card.ability.extra.Xmult + card.ability.extra.so_far = card.ability.extra.so_far + 1 + + if card.ability.extra.so_far == card.ability.extra.total then + card.ability.extra.Xmult = card.ability.extra.Xmult + card.ability.extra.Xmult_mod + card.ability.extra.so_far = 0 + end + + if thunk > 1 then return { + x_mult = thunk, + card = card, + } end + elseif context.after then + card.ability.extra.total = 0 + card.ability.extra.Xmult = 1 + end + end, + + mp_credits = { + code = { "CampfireCollective" }, + art = { "Wingcap" }, + }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/clowncar.lua b/objects/jokers/sandbox/extra-credit/clowncar.lua new file mode 100644 index 000000000..93db8ae3b --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/clowncar.lua @@ -0,0 +1,44 @@ +SMODS.Joker({ + key = "clowncar_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = true, + + rarity = 3, + cost = 7, + atlas = "ec_jokers_sandbox", + pos = { x = 6, y = 2 }, + + config = { extra = { mult = 44, money = 3 }, mp_sticker_extra_credit = true }, + + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.mult, card.ability.extra.money } } + end, + + calculate = function(self, card, context) + if context.initial_scoring_step then + ease_dollars(-card.ability.extra.money) + card_eval_status_text( + card, + "jokers", + nil, + percent, + nil, + { message = "-$" .. tostring(card.ability.extra.money), colour = G.C.MONEY } + ) + return { + mult = card.ability.extra.mult, + } + end + end, + + mp_credits = { + code = { "CampfireCollective", "steph" }, + art = { "R3venantR3mnant" }, + }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/clowncollege.lua b/objects/jokers/sandbox/extra-credit/clowncollege.lua new file mode 100644 index 000000000..a65c96740 --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/clowncollege.lua @@ -0,0 +1,61 @@ +-- Fill consumable slots with The Fool cards after Boss Blind is defeated + +SMODS.Joker({ + key = "clowncollege_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = false, + eternal_compat = true, + rarity = 2, + cost = 7, + atlas = "ec_jokers_sandbox", + pos = { x = 4, y = 1 }, + config = { extra = {}, mp_sticker_extra_credit = true }, + + loc_vars = function(self, info_queue, card) + info_queue[#info_queue + 1] = { key = "c_fool", set = "Tarot" } + return { vars = {} } + end, + + calculate = function(self, card, context) + if + context.end_of_round + and not context.repetition + and not context.individual + and G.GAME.blind.boss + and not context.blueprint + then + for i = 1, G.consumeables.config.card_limit do + if #G.consumeables.cards + G.GAME.consumeable_buffer < G.consumeables.config.card_limit then + G.GAME.consumeable_buffer = G.GAME.consumeable_buffer + 1 + G.E_MANAGER:add_event(Event({ + trigger = "before", + delay = 0.0, + func = function() + local new_card = create_card("Tarot", G.consumeables, nil, nil, nil, nil, "c_fool") + new_card:add_to_deck() + G.consumeables:emplace(new_card) + G.GAME.consumeable_buffer = 0 + new_card:juice_up(0.5, 0.5) + return true + end, + })) + card_eval_status_text( + context.blueprint_card or card, + "extra", + nil, + nil, + nil, + { message = localize("k_plus_tarot"), colour = G.C.PURPLE } + ) + end + end + end + end, + + mp_credits = { code = { "CampfireCollective" }, art = { "dottykitty" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/couponsheet.lua b/objects/jokers/sandbox/extra-credit/couponsheet.lua new file mode 100644 index 000000000..12f7fdc64 --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/couponsheet.lua @@ -0,0 +1,77 @@ +SMODS.Joker({ + key = "couponsheet_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = false, + eternal_compat = true, + + rarity = 3, + cost = 7, + atlas = "ec_jokers_sandbox", + pos = { x = 8, y = 3 }, + + config = { + extra = {}, + + mp_sticker_extra_credit = true, + }, + + loc_vars = function(self, info_queue, card) + info_queue[#info_queue + 1] = { key = "tag_coupon", set = "Tag" } + info_queue[#info_queue + 1] = { key = "tag_voucher", set = "Tag" } + return { vars = {} } + end, + + calculate = function(self, card, context) + if + context.end_of_round + and not context.repetition + and not context.individual + and G.GAME.blind.boss + and not context.blueprint + then + card_eval_status_text( + context.blueprint_card or card, + "extra", + nil, + nil, + nil, + { message = "+1 Coupon Tag!", colour = G.C.FILTER } + ) + G.E_MANAGER:add_event(Event({ + func = function() + add_tag(Tag("tag_coupon")) + play_sound("generic1", 0.9 + math.random() * 0.1, 0.8) + play_sound("holo1", 1.2 + math.random() * 0.1, 0.4) + return true + end, + })) + delay(0.3) + card_eval_status_text( + context.blueprint_card or card, + "extra", + nil, + nil, + nil, + { message = "+1 Voucher Tag!", colour = G.C.FILTER } + ) + G.E_MANAGER:add_event(Event({ + func = function() + add_tag(Tag("tag_voucher")) + play_sound("generic1", 0.9 + math.random() * 0.1, 0.8) + play_sound("holo1", 1.2 + math.random() * 0.1, 0.4) + return true + end, + })) + end + end, + + mp_credits = { + code = { "CampfireCollective" }, + art = { "neatoqueen" }, + }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/doublerainbow.lua b/objects/jokers/sandbox/extra-credit/doublerainbow.lua new file mode 100644 index 000000000..5aa1d70de --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/doublerainbow.lua @@ -0,0 +1,53 @@ +-- Double Rainbow - Extra Credit Joker ported to Sandbox +-- Retrigger all Lucky Cards + +SMODS.Joker({ + key = "doublerainbow_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = true, + enhancement_gate = "m_lucky", + rarity = 2, + cost = 5, + atlas = "ec_jokers_sandbox", + pos = { x = 1, y = 0 }, + config = { extra = 1, mp_sticker_extra_credit = true }, + + loc_vars = function(self, info_queue, card) + info_queue[#info_queue + 1] = G.P_CENTERS.m_lucky + return {} + end, + + calculate = function(self, card, context) + if + context.repetition + and context.cardarea == G.play + and SMODS.get_enhancements(context.other_card)["m_lucky"] == true + then + return { + message = localize("k_again_ex"), + repetitions = 1, + card = card, + } + elseif + context.repetition + and context.cardarea == G.hand + and SMODS.get_enhancements(context.other_card)["m_lucky"] == true + then + if next(context.card_effects[1]) or #context.card_effects > 1 then + return { + message = localize("k_again_ex"), + repetitions = card.ability.extra, + card = card, + } + end + end + end, + + mp_credits = { code = { "CampfireCollective" }, art = { "dottykitty" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/espresso.lua b/objects/jokers/sandbox/extra-credit/espresso.lua new file mode 100644 index 000000000..8eff530ab --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/espresso.lua @@ -0,0 +1,98 @@ +-- Espresso - Extra Credit Joker ported to Sandbox +-- Gain $30 and destroy this card when Blind is skipped, reduces by $5/round + +SMODS.Joker({ + key = "espresso_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = false, + eternal_compat = false, + rarity = 1, + cost = 2, + atlas = "ec_jokers_sandbox", + pos = { x = 6, y = 1 }, + config = { extra = { money = 30, m_loss = 5 }, mp_sticker_extra_credit = true }, + + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.money, card.ability.extra.m_loss } } + end, + + calculate = function(self, card, context) + if context.skip_blind and not context.blueprint then + G.E_MANAGER:add_event(Event({ + func = function() + card_eval_status_text(card, "extra", nil, nil, nil, { + message = localize("k_drank_ex"), + colour = G.C.MONEY, + card = card, + }) + return true + end, + })) + ease_dollars(card.ability.extra.money) + card:juice_up(0.5, 0.5) + delay(0.5) + G.E_MANAGER:add_event(Event({ + func = function() + play_sound("tarot1") + card.T.r = -0.2 + card:juice_up(0.3, 0.4) + card.states.drag.is = true + card.children.center.pinch.x = true + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.3, + blockable = false, + func = function() + G.jokers:remove_card(card) + card:remove() + card = nil + return true + end, + })) + return true + end, + })) + elseif context.end_of_round and not context.individual and not context.repetition and not context.blueprint then + card.ability.extra.money = card.ability.extra.money - card.ability.extra.m_loss + if card.ability.extra.money <= 0 then + G.E_MANAGER:add_event(Event({ + func = function() + play_sound("tarot1") + card.T.r = -0.2 + card:juice_up(0.3, 0.4) + card.states.drag.is = true + card.children.center.pinch.x = true + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.3, + blockable = false, + func = function() + G.jokers:remove_card(card) + card:remove() + card = nil + return true + end, + })) + return true + end, + })) + return { + message = "Too cold!", + colour = G.C.FILTER, + } + else + return { + message = "Cooled!", + colour = G.C.FILTER, + } + end + end + end, + + mp_credits = { code = { "CampfireCollective" }, art = { "dottykitty" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/farmer.lua b/objects/jokers/sandbox/extra-credit/farmer.lua new file mode 100644 index 000000000..fc73d1e98 --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/farmer.lua @@ -0,0 +1,50 @@ +SMODS.Joker({ + key = "farmer_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = true, + + rarity = 1, + cost = 6, + atlas = "ec_jokers_sandbox", + pos = { x = 9, y = 1 }, + + config = { extra = { dollars = 2 }, mp_sticker_extra_credit = true }, + + loc_vars = function(self, info_queue, card) + local current_suit = G.GAME.current_round.farmer_card and G.GAME.current_round.farmer_card.suit or "Spades" + return { + vars = { + card.ability.extra.dollars, + localize(current_suit, "suits_singular"), + colours = { G.C.SUITS[current_suit] }, + }, + } + end, + + calculate = function(self, card, context) + if + context.cardarea == G.hand + and context.end_of_round + and context.individual + and not context.repetition + and context.other_card:is_suit(G.GAME.current_round.farmer_card.suit) + then + delay(0.15) + return { + dollars = 2, + card = context.other_card, + } + end + end, + + mp_credits = { + code = { "CampfireCollective" }, + art = { "HonuKane" }, + }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/forklift.lua b/objects/jokers/sandbox/extra-credit/forklift.lua new file mode 100644 index 000000000..81880b538 --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/forklift.lua @@ -0,0 +1,43 @@ +-- Forklift - Extra Credit Joker ported to Sandbox +-- +2 Consumable Slots + +SMODS.Joker({ + key = "forklift_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = false, + eternal_compat = true, + rarity = 1, + cost = 5, + atlas = "ec_jokers_sandbox", + pos = { x = 0, y = 0 }, + config = { extra = { card_limit = 2 }, mp_sticker_extra_credit = true }, + + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.card_limit } } + end, + + add_to_deck = function(self, card, from_debuff) + G.E_MANAGER:add_event(Event({ + func = function() + G.consumeables.config.card_limit = G.consumeables.config.card_limit + card.ability.extra.card_limit + return true + end, + })) + end, + + remove_from_deck = function(self, card, from_debuff) + G.E_MANAGER:add_event(Event({ + func = function() + G.consumeables.config.card_limit = G.consumeables.config.card_limit - card.ability.extra.card_limit + return true + end, + })) + end, + + mp_credits = { code = { "CampfireCollective" }, art = { "dottykitty" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/gofish.lua b/objects/jokers/sandbox/extra-credit/gofish.lua new file mode 100644 index 000000000..873300dc4 --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/gofish.lua @@ -0,0 +1,51 @@ +SMODS.Joker({ + key = "gofish_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = false, + eternal_compat = true, + rarity = 2, + cost = 6, + atlas = "ec_jokers_sandbox", + pos = { x = 9, y = 2 }, + + config = { extra = { fished = false }, mp_sticker_extra_credit = true }, + + loc_vars = function(self, info_queue, card) + local current_rank = G.GAME.current_round.fish_rank and G.GAME.current_round.fish_rank.rank or "Ace" + return { vars = { current_rank } } + end, + + calculate = function(self, card, context) + if context.first_hand_drawn and not context.blueprint then + card.ability.extra.fished = false + juice_card_until(card, function() + return not card.ability.extra.fished + end, true) + elseif context.before and not context.blueprint and not card.ability.extra.fished then + for _, scoring_card in ipairs(context.scoring_hand) do + if scoring_card.base.value == G.GAME.current_round.fish_rank.rank and not scoring_card.debuff then + card.ability.extra.fish = card.ability.extra.fish or {} + card.ability.extra.fish[#card.ability.extra.fish + 1] = scoring_card + card.ability.extra.fished = true + end + end + elseif context.after and not context.blueprint and card.ability.extra.fish then + for _, target in ipairs(card.ability.extra.fish) do + SMODS.destroy_cards(target) + end + card.ability.extra.fish = nil + elseif context.end_of_round then + card.ability.extra.fished = true + end + end, + + mp_credits = { + code = { "CampfireCollective", "steph" }, + art = { "bishopcorrigan" }, + }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/hoarder.lua b/objects/jokers/sandbox/extra-credit/hoarder.lua new file mode 100644 index 000000000..5e093a1ff --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/hoarder.lua @@ -0,0 +1,31 @@ +SMODS.Joker({ + key = "hoarder_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = false, + eternal_compat = true, + + rarity = 2, + cost = 5, + atlas = "ec_jokers_sandbox", + pos = { x = 9, y = 3 }, + + config = { + extra = 1, + + mp_sticker_extra_credit = true, + }, + + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra } } + end, + + mp_credits = { + code = { "CampfireCollective", "steph" }, + art = { "neatoqueen" }, + }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/jokalisa.lua b/objects/jokers/sandbox/extra-credit/jokalisa.lua new file mode 100644 index 000000000..8ad71bce2 --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/jokalisa.lua @@ -0,0 +1,68 @@ +SMODS.Joker({ + key = "jokalisa_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = true, + perishable_compat = false, + + rarity = 3, + cost = 8, + atlas = "ec_jokers_sandbox", + pos = { x = 3, y = 3 }, + + config = { + extra = { + Xmult = 1, + Xmult_mod = 0.1, + }, + + mp_sticker_extra_credit = true, + }, + + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.Xmult, card.ability.extra.Xmult_mod } } + end, + + calculate = function(self, card, context) + local contains = function(table_, value) + for _, v in pairs(table_) do + if v == value then return true end + end + return false + end + + if context.before and not context.blueprint then + local enhanced = {} + for i = 1, #context.scoring_hand do + for k, v in pairs(SMODS.get_enhancements(context.scoring_hand[i])) do + if v then + if not contains(enhanced, k) then enhanced[#enhanced + 1] = k end + end + end + end + if #enhanced > 0 then + card.ability.extra.Xmult = card.ability.extra.Xmult + (card.ability.extra.Xmult_mod * #enhanced) + return { + message = localize({ type = "variable", key = "a_xmult", vars = { card.ability.extra.Xmult } }), + card = card, + colour = G.C.RED, + } + end + elseif context.cardarea == G.jokers and context.joker_main and card.ability.extra.Xmult > 1 then + return { + message = localize({ type = "variable", key = "a_xmult", vars = { card.ability.extra.Xmult } }), + Xmult_mod = card.ability.extra.Xmult, + } + end + end, + + mp_credits = { + code = { "CampfireCollective" }, + art = { "R3venantR3mnant" }, + }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/jokeroftheyear.lua b/objects/jokers/sandbox/extra-credit/jokeroftheyear.lua new file mode 100644 index 000000000..4aea1adab --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/jokeroftheyear.lua @@ -0,0 +1,43 @@ +SMODS.Joker({ + key = "jokeroftheyear_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = true, + + rarity = 3, + cost = 9, + atlas = "ec_jokers_sandbox", + pos = { x = 5, y = 3 }, + + config = { + extra = { + reps = 1, + }, + + mp_sticker_extra_credit = true, + }, + + loc_vars = function(self, info_queue, card) + return {} + end, + + calculate = function(self, card, context) + if context.cardarea == G.play and context.repetition and #context.scoring_hand == 5 then + return { + message = localize("k_again_ex"), + repetitions = card.ability.extra.reps, + card = card, + } + end + end, + + mp_credits = { + code = { "CampfireCollective" }, + art = { "neatoqueen" }, + }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/lucky7.lua b/objects/jokers/sandbox/extra-credit/lucky7.lua new file mode 100644 index 000000000..faa0a4f04 --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/lucky7.lua @@ -0,0 +1,70 @@ +SMODS.Joker({ + key = "lucky7_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = false, + eternal_compat = true, + + rarity = 1, + cost = 6, + atlas = "ec_jokers_sandbox", + pos = { x = 7, y = 3 }, + + config = { + extra = { + lucky = false, + checked = false, + }, + + mp_sticker_extra_credit = true, + }, + + loc_vars = function(self, info_queue, card) + info_queue[#info_queue + 1] = G.P_CENTERS.m_lucky + return + end, + + calculate = function(self, card, context) + if context.before and not context.blueprint then + local has_seven = false + for i = 1, #context.scoring_hand do + if context.scoring_hand[i]:get_id() == 7 and not context.scoring_hand[i].debuff then + has_seven = true + break + end + end + + -- enh_cache abuse hours. it's fine. it's better than injection. + -- we're healing. + if has_seven then + for i = 1, #context.scoring_hand do + context.scoring_hand[i].gambling = true + if SMODS.enh_cache and SMODS.enh_cache.write then + SMODS.enh_cache:write(context.scoring_hand[i], nil) + end + end + end + end + + if context.check_enhancement then + if context.other_card.gambling then return { + m_lucky = true, + } end + end + + if context.after then + for i = 1, #context.scoring_hand do + context.scoring_hand[i].gambling = nil + end + end + end, + + mp_credits = { + code = { "CampfireCollective", "steph" }, + art = { "bishopcorrigan" }, + }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/montehaul.lua b/objects/jokers/sandbox/extra-credit/montehaul.lua new file mode 100644 index 000000000..bf14a16ad --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/montehaul.lua @@ -0,0 +1,65 @@ +-- Monte Haul - Extra Credit Joker ported to Sandbox +-- After 1 round, sell this card to gain 2 random Joker Tags + +SMODS.Joker({ + key = "montehaul_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = false, + rarity = 2, + cost = 5, + atlas = "ec_jokers_sandbox", + pos = { x = 5, y = 1 }, + config = { + extra = { + monty_rounds = 0, + flavours = { "tag_foil", "tag_holo", "tag_polychrome", "tag_negative", "tag_uncommon", "tag_rare" }, + }, + + mp_sticker_extra_credit = true, + }, + + loc_vars = function(self, info_queue, card) + info_queue[#info_queue + 1] = { key = "tag_foil", set = "Tag" } + info_queue[#info_queue + 1] = { key = "tag_holo", set = "Tag" } + info_queue[#info_queue + 1] = { key = "tag_polychrome", set = "Tag" } + info_queue[#info_queue + 1] = { key = "tag_negative", set = "Tag" } + info_queue[#info_queue + 1] = { key = "tag_uncommon", set = "Tag" } + info_queue[#info_queue + 1] = { key = "tag_rare", set = "Tag" } + return { vars = { card.ability.extra.monty_rounds } } + end, + + calculate = function(self, card, context) + if context.end_of_round and not context.blueprint and not context.individual and not context.repetition then + card.ability.extra.monty_rounds = card.ability.extra.monty_rounds + 1 + if card.ability.extra.monty_rounds >= 1 then + local eval = function(c) + return not c.REMOVED + end + juice_card_until(card, eval, true) + return { + message = localize("k_active_ex"), + colour = G.C.FILTER, + } + end + elseif context.selling_self and card.ability.extra.monty_rounds >= 1 then + for i = 1, 2 do + G.E_MANAGER:add_event(Event({ + func = function() + add_tag(Tag(pseudorandom_element(card.ability.extra.flavours, pseudoseed("monty")))) + play_sound("generic1", 0.9 + math.random() * 0.1, 0.8) + play_sound("holo1", 1.2 + math.random() * 0.1, 0.4) + return true + end, + })) + end + end + end, + + mp_credits = { code = { "CampfireCollective" }, art = { "UselessReptile8" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/pocketaces.lua b/objects/jokers/sandbox/extra-credit/pocketaces.lua new file mode 100644 index 000000000..ff70bc965 --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/pocketaces.lua @@ -0,0 +1,43 @@ +-- Pocket Aces - Extra Credit Joker ported to Sandbox +-- Gives $ at end of round, played Aces increase payout, resets each Ante + +SMODS.Joker({ + key = "pocketaces_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = false, + eternal_compat = true, + perishable_compat = true, + rarity = 2, + cost = 7, + atlas = "ec_jokers_sandbox", + pos = { x = 5, y = 0 }, + config = { extra = { money = 0, m_gain = 2 }, mp_sticker_extra_credit = true }, + + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.money, card.ability.extra.m_gain } } + end, + + calc_dollar_bonus = function(self, card) + local thunk = card.ability.extra.money + if G.GAME.blind.boss then card.ability.extra.money = 0 end + return thunk + end, + + calculate = function(self, card, context) + if + context.individual + and context.cardarea == G.play + and context.other_card:get_id() == 14 + and not context.blueprint + then + card.ability.extra.money = card.ability.extra.money + card.ability.extra.m_gain + end + end, + + mp_credits = { code = { "CampfireCollective" }, art = { "Wingcap" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/pyromancer.lua b/objects/jokers/sandbox/extra-credit/pyromancer.lua new file mode 100644 index 000000000..73cdb0c3d --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/pyromancer.lua @@ -0,0 +1,46 @@ +SMODS.Joker({ + key = "pyromancer_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = true, + + rarity = 1, + cost = 5, + atlas = "ec_jokers_sandbox", + pos = { x = 1, y = 3 }, + + config = { + extra = { + mult = 20, + }, + + mp_sticker_extra_credit = true, + }, + + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.mult } } + end, + + calculate = function(self, card, context) + if + context.cardarea == G.jokers + and context.joker_main + and G.GAME.current_round.hands_left <= G.GAME.current_round.discards_left + then + return { + message = localize({ type = "variable", key = "a_mult", vars = { card.ability.extra.mult } }), + mult_mod = card.ability.extra.mult, + } + end + end, + + mp_credits = { + code = { "CampfireCollective" }, + art = { "Wingcap" }, + }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/shipoftheseus.lua b/objects/jokers/sandbox/extra-credit/shipoftheseus.lua new file mode 100644 index 000000000..5629ad387 --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/shipoftheseus.lua @@ -0,0 +1,84 @@ +SMODS.Joker({ + key = "shipoftheseus_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = true, + perishable_compat = false, + + rarity = 3, + cost = 9, + atlas = "ec_jokers_sandbox", + pos = { x = 7, y = 2 }, + + config = { + extra = { + Xmult = 1, + Xmult_mod = 0.4, + tick = false, + }, + + mp_sticker_extra_credit = true, + }, + + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.Xmult, card.ability.extra.Xmult_mod } } + end, + + calculate = function(self, card, context) + if context.remove_playing_cards then + card.ability.extra.tick = false + for k, val in ipairs(context.removed) do + if not context.blueprint then + card.ability.extra.Xmult = card.ability.extra.Xmult + card.ability.extra.Xmult_mod + card.ability.extra.tick = true + end + G.playing_card = (G.playing_card and G.playing_card + 1) or 1 + local _card = copy_card(val, nil, nil, G.playing_card) + _card:add_to_deck() + G.deck.config.card_limit = G.deck.config.card_limit + 1 + G.deck:emplace(_card) + table.insert(G.playing_cards, _card) + playing_card_joker_effects({ true }) + + G.E_MANAGER:add_event(Event({ + func = function() + _card:start_materialize() + + return true + end, + })) + card_eval_status_text( + context.blueprint_card or card, + "extra", + nil, + nil, + nil, + { message = localize("k_copied_ex"), colour = G.C.FILTER } + ) + end + + if not context.blueprint and card.ability.extra.tick then + delay(0.3) + card_eval_status_text(card, "extra", nil, nil, nil, { + message = localize({ type = "variable", key = "a_xmult", vars = { card.ability.extra.Xmult } }), + colour = G.C.FILTER, + }) + end + elseif context.cardarea == G.jokers and context.joker_main and card.ability.extra.Xmult > 1 then + return { + message = localize({ type = "variable", key = "a_xmult", vars = { card.ability.extra.Xmult } }), + Xmult_mod = card.ability.extra.Xmult, + } + end + end, + + mp_credits = { + code = { "CampfireCollective", "steph" }, + art = { "neatoqueen" }, + }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/starfruit.lua b/objects/jokers/sandbox/extra-credit/starfruit.lua new file mode 100644 index 000000000..966486bef --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/starfruit.lua @@ -0,0 +1,80 @@ +-- Starfruit - Extra Credit Joker ported to Sandbox +-- First played hand each round has a chance to gain 1 level (5 uses, then self-destructs) + +SMODS.Joker({ + key = "starfruit_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = false, + rarity = 1, + cost = 6, + atlas = "ec_jokers_sandbox", + pos = { x = 2, y = 0 }, + config = { extra = { uses = 5, odds = 2 }, mp_sticker_extra_credit = true }, + + loc_vars = function(self, info_queue, card) + local num, denom = SMODS.get_probability_vars(card, 1, card.ability.extra.odds, "j_mp_starfruit_sandbox") + return { vars = { card.ability.extra.uses, num, denom } } + end, + + calculate = function(self, card, context) + if context.cardarea == G.jokers and G.GAME.current_round.hands_played == 0 and context.before then + if SMODS.pseudorandom_probability(card, "j_mp_starfruit_sandbox", 1, card.ability.extra.odds) then + local text = context.scoring_name + card_eval_status_text( + context.blueprint_card or card, + "extra", + nil, + nil, + nil, + { message = localize("k_level_up_ex") } + ) + update_hand_text({ sound = "button", volume = 0.7, pitch = 0.8, delay = 0.3 }, { + handname = localize(text, "poker_hands"), + chips = G.GAME.hands[text].chips, + mult = G.GAME.hands[text].mult, + level = G.GAME.hands[text].level, + }) + level_up_hand(context.blueprint_card or card, text, nil, 1) + end + + if not context.blueprint then + card.ability.extra.uses = card.ability.extra.uses - 1 + if card.ability.extra.uses <= 0 then + G.E_MANAGER:add_event(Event({ + func = function() + play_sound("tarot1") + card.T.r = -0.2 + card:juice_up(0.3, 0.4) + card.states.drag.is = true + card.children.center.pinch.x = true + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.3, + blockable = false, + func = function() + G.jokers:remove_card(card) + card:remove() + card = nil + return true + end, + })) + return true + end, + })) + return { + message = localize("k_eaten_ex"), + colour = G.C.MONEY, + } + end + end + end + end, + + mp_credits = { code = { "CampfireCollective" }, art = { "dottykitty" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/trafficlight.lua b/objects/jokers/sandbox/extra-credit/trafficlight.lua new file mode 100644 index 000000000..919d13259 --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/trafficlight.lua @@ -0,0 +1,62 @@ +-- Traffic Light - Extra Credit Joker ported to Sandbox +-- X2.5 Mult, decreases X1 each hand played, resets after X0.5 + +SMODS.Joker({ + key = "trafficlight_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = true, + rarity = 2, + cost = 5, + atlas = "ec_jokers_sandbox", + pos = { x = 7, y = 1 }, + config = { extra = { Xmult = 2.5, Xmult_mod = 1 }, mp_sticker_extra_credit = true }, + + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.Xmult, card.ability.extra.Xmult_mod } } + end, + + calculate = function(self, card, context) + if context.cardarea == G.jokers and context.joker_main then + return { + message = localize({ type = "variable", key = "a_xmult", vars = { card.ability.extra.Xmult } }), + Xmult_mod = card.ability.extra.Xmult, + } + elseif context.after and not context.blueprint then + card.ability.extra.Xmult = card.ability.extra.Xmult - card.ability.extra.Xmult_mod + + if card.ability.extra.Xmult < 0.5 then + card.ability.extra.Xmult = 2.5 + return { + message = "Go!", + colour = G.C.GREEN, + } + elseif card.ability.extra.Xmult == 1.5 then + return { + message = localize({ + type = "variable", + key = "a_xmult_minus", + vars = { card.ability.extra.Xmult_mod }, + }), + colour = G.C.FILTER, + } + elseif card.ability.extra.Xmult == 0.5 then + return { + message = localize({ + type = "variable", + key = "a_xmult_minus", + vars = { card.ability.extra.Xmult_mod }, + }), + colour = G.C.RED, + } + end + end + end, + + mp_credits = { code = { "CampfireCollective" }, art = { "Wingcap" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/tuxedo.lua b/objects/jokers/sandbox/extra-credit/tuxedo.lua new file mode 100644 index 000000000..24db8a610 --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/tuxedo.lua @@ -0,0 +1,54 @@ +SMODS.Joker({ + key = "tuxedo_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = true, + + rarity = 2, + cost = 5, + atlas = "ec_jokers_sandbox", + pos = { x = 4, y = 2 }, + + config = { extra = { reps = 1 }, mp_sticker_extra_credit = true }, + + loc_vars = function(self, info_queue, card) + local current_suit = G.GAME.current_round.tuxedo_card and G.GAME.current_round.tuxedo_card.suit or "Spades" + return { vars = { localize(current_suit, "suits_singular"), colours = { G.C.SUITS[current_suit] } } } + end, + + calculate = function(self, card, context) + if + context.cardarea == G.play + and context.repetition + and context.other_card:is_suit(G.GAME.current_round.tuxedo_card.suit) + then + return { + message = localize("k_again_ex"), + repetitions = card.ability.extra.reps, + card = card, + } + elseif + context.repetition + and context.cardarea == G.hand + and context.other_card:is_suit(G.GAME.current_round.tuxedo_card.suit) + then + if next(context.card_effects[1]) or #context.card_effects > 1 then + return { + message = localize("k_again_ex"), + repetitions = card.ability.extra.reps, + card = card, + } + end + end + end, + + mp_credits = { + code = { "CampfireCollective" }, + art = { "dottykitty" }, + }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/warlock.lua b/objects/jokers/sandbox/extra-credit/warlock.lua new file mode 100644 index 000000000..2495c02c9 --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/warlock.lua @@ -0,0 +1,82 @@ +-- Warlock - Extra Credit Joker ported to Sandbox +-- Lucky Cards have chance to be destroyed and spawn a Spectral Card + +SMODS.Joker({ + key = "warlock_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = true, + enhancement_gate = "m_lucky", + rarity = 2, + cost = 7, + atlas = "ec_jokers_sandbox", + pos = { x = 6, y = 0 }, + config = { extra = { odds = 7, succeed = false }, mp_sticker_extra_credit = true }, + + loc_vars = function(self, info_queue, card) + info_queue[#info_queue + 1] = G.P_CENTERS.m_lucky + local num, denom = SMODS.get_probability_vars(card, 1, card.ability.extra.odds, "j_mp_warlock_sandbox") + return { vars = { num, denom } } + end, + + calculate = function(self, card, context) + if + context.cardarea == G.play + and context.individual + and SMODS.get_enhancements(context.other_card)["m_lucky"] == true + then + if SMODS.pseudorandom_probability(card, "j_mp_warlock_sandbox", 1, card.ability.extra.odds) then + card.ability.extra.succeed = true + end + end + + if context.cardarea == G.jokers and context.after and card.ability.extra.succeed then + card.ability.extra.succeed = false + + if #G.consumeables.cards < G.consumeables.config.card_limit then + -- Find and destroy a random lucky card from the played hand + local lucky_cards = {} + for _, played_card in ipairs(context.scoring_hand or {}) do + if SMODS.get_enhancements(played_card)["m_lucky"] then table.insert(lucky_cards, played_card) end + end + + if #lucky_cards > 0 then + local target = pseudorandom_element(lucky_cards, pseudoseed("warlock_target")) + G.E_MANAGER:add_event(Event({ + func = function() + play_sound("tarot1") + target.T.r = -0.2 + target:juice_up(0.3, 0.4) + return true + end, + })) + + SMODS.destroy_cards(target) + + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.4, + func = function() + local spectral = + pseudorandom_element(G.P_CENTER_POOLS.Spectral, pseudoseed("warlock_spectral")) + SMODS.add_card({ set = "Spectral", key = spectral.key }) + return true + end, + })) + + return { + message = localize("k_plus_spectral"), + colour = G.C.SECONDARY_SET.Spectral, + } + end + end + end + end, + + mp_credits = { code = { "CampfireCollective" }, art = { "dottykitty" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/extra-credit/werewolf.lua b/objects/jokers/sandbox/extra-credit/werewolf.lua new file mode 100644 index 000000000..2124199cd --- /dev/null +++ b/objects/jokers/sandbox/extra-credit/werewolf.lua @@ -0,0 +1,61 @@ +SMODS.Joker({ + key = "werewolf_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = false, + eternal_compat = true, + + rarity = 2, + cost = 5, + atlas = "ec_jokers_sandbox", + pos = { x = 1, y = 2 }, + + config = { + extra = {}, + + mp_sticker_extra_credit = true, + }, + + loc_vars = function(self, info_queue, card) + info_queue[#info_queue + 1] = G.P_CENTERS.m_wild + return { vars = {} } + end, + + calculate = function(self, card, context) + if context.before and not context.blueprint then + local thunk = 0 + local contains = function(table_, value) + for _, v in pairs(table_) do + if v == value then return true end + end + return false + end + + for k, v in ipairs(context.full_hand) do + if contains(SMODS.get_enhancements(v), true) and v.config.center.key ~= "m_wild" then + thunk = thunk + 1 + v:set_ability(G.P_CENTERS.m_wild, nil, true) + G.E_MANAGER:add_event(Event({ + func = function() + v:juice_up() + return true + end, + })) + end + end + if thunk > 0 then return { + message = "Awooo!", + colour = G.C.PURPLE, + } end + end + end, + + mp_credits = { + code = { "CampfireCollective" }, + art = { "bishopcorrigan", "splatter_proto" }, + }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/faceless.lua b/objects/jokers/sandbox/faceless.lua new file mode 100644 index 000000000..e29d158bb --- /dev/null +++ b/objects/jokers/sandbox/faceless.lua @@ -0,0 +1,54 @@ +SMODS.Atlas({ + key = "faceless_sandbox", + path = "j_faceless_sandbox.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "faceless_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + rarity = 1, + cost = 4, + atlas = "faceless_sandbox", + config = { extra = { dollars = 15 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.dollars } } + end, + calculate = function(self, card, context) + if context.discard and context.other_card == context.full_hand[#context.full_hand] then + local jacks = 0 + local queens = 0 + local kings = 0 + + for _, discarded_card in ipairs(context.full_hand) do + local rank = discarded_card:get_id() + if rank == 11 then jacks = jacks + 1 end + if rank == 12 then queens = queens + 1 end + if rank == 13 then kings = kings + 1 end + end + + if jacks >= 1 and queens >= 1 and kings >= 1 then + G.GAME.dollar_buffer = (G.GAME.dollar_buffer or 0) + card.ability.extra.dollars + return { + dollars = card.ability.extra.dollars, + func = function() + G.E_MANAGER:add_event(Event({ + func = function() + G.GAME.dollar_buffer = 0 + return true + end, + })) + end, + } + end + end + end, + mp_credits = { code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/golden_ticket.lua b/objects/jokers/sandbox/golden_ticket.lua new file mode 100644 index 000000000..991faef13 --- /dev/null +++ b/objects/jokers/sandbox/golden_ticket.lua @@ -0,0 +1,46 @@ +SMODS.Joker({ + key = "golden_ticket_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + rarity = 2, + cost = 5, + pos = { x = 5, y = 3 }, + config = { extra = { dollars = 5, odds = 2 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + info_queue[#info_queue + 1] = G.P_CENTERS.m_gold + local numerator, denominator = + SMODS.get_probability_vars(card, 1, card.ability.extra.odds, "j_mp_golden_ticket_sandbox") + return { vars = { card.ability.extra.dollars, numerator, denominator } } + end, + calculate = function(self, card, context) + if + context.individual + and context.cardarea == G.play + and SMODS.has_enhancement(context.other_card, "m_gold") + then + if SMODS.pseudorandom_probability(card, "j_mp_golden_ticket_sandbox", 1, card.ability.extra.odds) then + G.GAME.dollar_buffer = (G.GAME.dollar_buffer or 0) + card.ability.extra.dollars + return { + dollars = card.ability.extra.dollars, + func = function() + G.E_MANAGER:add_event(Event({ + func = function() + G.GAME.dollar_buffer = 0 + return true + end, + })) + end, + } + end + end + end, + in_pool = function(self, args) + return true + end, + mp_credits = { code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/hit_the_road.lua b/objects/jokers/sandbox/hit_the_road.lua new file mode 100644 index 000000000..76d996241 --- /dev/null +++ b/objects/jokers/sandbox/hit_the_road.lua @@ -0,0 +1,45 @@ +SMODS.Atlas({ + key = "hit_the_road_sandbox", + path = "j_hit_the_road_sandbox.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "hit_the_road_sandbox", + no_collection = MP.sandbox_no_collection, + + unlocked = true, + discovered = true, + + blueprint_compat = true, + rarity = 3, + cost = 8, + atlas = "hit_the_road_sandbox", + config = { extra = { xmult_gain = 0.75, xmult = 1 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.xmult_gain, card.ability.extra.xmult } } + end, + calculate = function(self, card, context) + if + context.discard + and not context.blueprint + and not context.other_card.debuff + and context.other_card:get_id() == 11 + then + card.ability.extra.xmult = card.ability.extra.xmult + card.ability.extra.xmult_gain + return { + message = localize({ type = "variable", key = "a_xmult", vars = { card.ability.extra.xmult } }), + colour = G.C.RED, + remove = true, + } + end + if context.joker_main then return { + xmult = card.ability.extra.xmult, + } end + end, + mp_credits = { code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/idol.lua b/objects/jokers/sandbox/idol.lua new file mode 100644 index 000000000..d6ff48c63 --- /dev/null +++ b/objects/jokers/sandbox/idol.lua @@ -0,0 +1,225 @@ +SMODS.Atlas({ + key = "idol_sandbox_zealot", + path = "j_idol_sandbox_bw.png", + px = 71, + py = 95, +}) + +-- Override reset_idol_card to do weighted rank selection for Zealot Idol +-- Runs globally for all players so the pseudorandom queue stays in sync +local original_reset_idol_card = reset_idol_card +function reset_idol_card() + original_reset_idol_card() + + G.GAME.current_round.zealot_idol = { id = 14, rank = "Ace" } + + if G.playing_cards == nil then return end + + local count_map = {} + local valid_ranks = {} + + for _, v in ipairs(G.playing_cards) do + if v.ability.effect ~= "Stone Card" then + local val = v.base.value + if not count_map[val] then + count_map[val] = { count = 0, card = v } + table.insert(valid_ranks, count_map[val]) + end + count_map[val].count = count_map[val].count + 1 + end + end + + if #valid_ranks == 0 then return end + + local value_order = {} + for i, rank in ipairs(SMODS.Rank.obj_buffer) do + value_order[rank] = i + end + + table.sort(valid_ranks, function(a, b) + if a.count ~= b.count then return a.count > b.count end + return value_order[a.card.base.value] < value_order[b.card.base.value] + end) + + local total_weight = 0 + for _, entry in ipairs(valid_ranks) do + total_weight = total_weight + entry.count + end + + local raw_random = pseudorandom("zealot_idol" .. G.GAME.round_resets.ante) + local threshold = 0 + for _, entry in ipairs(valid_ranks) do + threshold = threshold + (entry.count / total_weight) + if raw_random < threshold then + G.GAME.current_round.zealot_idol = { id = entry.card.base.id, rank = entry.card.base.value } + return + end + end + + G.GAME.current_round.zealot_idol = { id = valid_ranks[1].card.base.id, rank = valid_ranks[1].card.base.value } +end + +SMODS.Joker({ + key = "idol_sandbox_zealot", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + rarity = 2, + cost = 6, + atlas = "idol_sandbox_zealot", + config = { extra = { xmult = 1.5 }, mp_balanced = true }, + add_to_deck = function(self, card, from_debuff) + G.GAME.banned_keys["j_mp_idol_sandbox_collector"] = true + if G.shop_jokers and G.shop_jokers.cards then + for i = #G.shop_jokers.cards, 1, -1 do + local shop_card = G.shop_jokers.cards[i] + if shop_card.config.center.key == "j_mp_idol_sandbox_collector" then + shop_card.T.r = -0.2 + shop_card:juice_up(0.3, 0.4) + shop_card:start_dissolve() + break + end + end + end + end, + loc_vars = function(self, info_queue, card) + local zealot = G.GAME.current_round.zealot_idol or { rank = "Ace" } + return { + vars = { + localize(zealot.rank, "ranks"), + card.ability.extra.xmult, + }, + } + end, + calculate = function(self, card, context) + local zealot = G.GAME.current_round.zealot_idol + if + zealot + and context.individual + and context.cardarea == G.play + and context.other_card:get_id() == zealot.id + then + return { + xmult = card.ability.extra.xmult, + } + end + end, + mp_credits = { code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) + +SMODS.Atlas({ + key = "idol_sandbox_collector", + path = "j_idol_sandbox_color.png", + px = 71, + py = 95, +}) + +local function get_most_common_card() + local count_map = {} + local valid_idol_cards = {} + + if G.playing_cards == nil then return { id = 14, rank = "Ace", suit = "Spades", count = 1 } end + + for _, v in ipairs(G.playing_cards) do + if v.ability.effect ~= "Stone Card" then + local key = v.base.value .. "_" .. v.base.suit + if not count_map[key] then + count_map[key] = { count = 0, card = v } + table.insert(valid_idol_cards, count_map[key]) + end + count_map[key].count = count_map[key].count + 1 + end + end + + if #valid_idol_cards == 0 then return { id = 14, rank = "Ace", suit = "Spades", count = 0 } end + + -- Sort by count descending first, then by suit/value for consistency + local value_order = {} + for i, rank in ipairs(SMODS.Rank.obj_buffer) do + value_order[rank] = i + end + + local suit_order = {} + for i, suit in ipairs(SMODS.Suit.obj_buffer) do + suit_order[suit] = i + end + + table.sort(valid_idol_cards, function(a, b) + if a.count ~= b.count then return a.count > b.count end + local a_suit = a.card.base.suit + local b_suit = b.card.base.suit + if suit_order[a_suit] ~= suit_order[b_suit] then return suit_order[a_suit] < suit_order[b_suit] end + local a_value = a.card.base.value + local b_value = b.card.base.value + return value_order[a_value] < value_order[b_value] + end) + + -- Return the most common card + local most_common = valid_idol_cards[1] + return { + id = most_common.card.base.id, + rank = most_common.card.base.value, + suit = most_common.card.base.suit, + count = most_common.count, + } +end + +SMODS.Joker({ + key = "idol_sandbox_collector", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + rarity = 2, + cost = 6, + atlas = "idol_sandbox_collector", + config = { extra = { xmult = 1.0, xmult_per_card = 0.05 }, mp_sticker_balanced = true }, + add_to_deck = function(self, card, from_debuff) + G.GAME.banned_keys["j_mp_idol_sandbox_zealot"] = true + if G.shop_jokers and G.shop_jokers.cards then + for i = #G.shop_jokers.cards, 1, -1 do + local shop_card = G.shop_jokers.cards[i] + if shop_card.config.center.key == "j_mp_idol_sandbox_zealot" then + shop_card.T.r = -0.2 + shop_card:juice_up(0.3, 0.4) + shop_card:start_dissolve() + break + end + end + end + end, + loc_vars = function(self, info_queue, card) + local most_common_card = get_most_common_card() + local xmult = card.ability.extra.xmult + card.ability.extra.xmult_per_card * most_common_card.count + return { + vars = { + localize(most_common_card.rank, "ranks"), + localize(most_common_card.suit, "suits_plural"), + xmult, + card.ability.extra.xmult_per_card, + colours = { G.C.SUITS[most_common_card.suit] }, + }, + } + end, + calculate = function(self, card, context) + local most_common_card = get_most_common_card() + if + context.individual + and context.cardarea == G.play + and context.other_card:get_id() == most_common_card.id + and context.other_card:is_suit(most_common_card.suit) + then + return { + xmult = card.ability.extra.xmult + card.ability.extra.xmult_per_card * most_common_card.count, + } + end + end, + mp_credits = { code = { "steph" }, idea = { "Fantom" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/juggler.lua b/objects/jokers/sandbox/juggler.lua new file mode 100644 index 000000000..83386b1ec --- /dev/null +++ b/objects/jokers/sandbox/juggler.lua @@ -0,0 +1,65 @@ +SMODS.Atlas({ + key = "juggler_sandbox", + path = "j_juggler_sandbox.png", + px = 71, + py = 95, +}) +SMODS.Joker({ + key = "juggler_sandbox", + no_collection = MP.sandbox_no_collection, + + unlocked = true, + discovered = true, + blueprint_compat = false, + rarity = 1, + cost = 4, + atlas = "juggler_sandbox", + config = { extra = { h_size = 3 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.h_size } } + end, + add_to_deck = function(self, card, from_debuff) + G.hand:change_size(card.ability.extra.h_size) + end, + remove_from_deck = function(self, card, from_debuff) + G.hand:change_size(-card.ability.extra.h_size) + end, + calculate = function(self, card, context) + if context.before and context.main_eval and not context.blueprint then + if #context.full_hand < 5 then + card.ability.extra.h_size = card.ability.extra.h_size - 1 + G.hand:change_size(-1) + card_eval_status_text(card, "extra", nil, nil, nil, { message = "-1 Hand Size" }) -- TODO localize + + if card.ability.extra.h_size <= 0 then + G.E_MANAGER:add_event(Event({ + func = function() + play_sound("tarot1") + card.T.r = -0.2 + card:juice_up(0.3, 0.4) + card.states.drag.is = false + card.children.center.pinch.x = true + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.3, + blockable = false, + func = function() + G.jokers:remove_card(card) + card:remove() + card = nil + return true + end, + })) + return true + end, + })) + card_eval_status_text(card, "extra", nil, nil, nil, { message = localize("k_extinct_ex") }) + end + end + end + end, + mp_credits = { code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/loyalty_card.lua b/objects/jokers/sandbox/loyalty_card.lua new file mode 100644 index 000000000..3a5890fc0 --- /dev/null +++ b/objects/jokers/sandbox/loyalty_card.lua @@ -0,0 +1,72 @@ +SMODS.Atlas({ + key = "loyalty_card_sandbox", + path = "j_loyalty_card_sandbox.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "loyalty_card_sandbox", + + unlocked = true, + discovered = true, + no_collection = MP.sandbox_no_collection, + blueprint_compat = true, + rarity = 2, + cost = 5, + atlas = "loyalty_card_sandbox", + config = { extra = { Xmult = 6, every = 4, loyalty_remaining = 4, poker_hand = "???" }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { + vars = { + card.ability.extra.poker_hand, + math.abs(card.ability.extra.every - card.ability.extra.loyalty_remaining), + card.ability.extra.loyalty_remaining, + }, + } + end, + add_to_deck = function(self, card, from_debuff) + local _poker_hands = {} + for handname, _ in pairs(G.GAME.hands) do + if SMODS.is_poker_hand_visible(handname) then _poker_hands[#_poker_hands + 1] = handname end + end + card.ability.extra.poker_hand = pseudorandom_element(_poker_hands, "loyalty_card_sandbox") + end, + calculate = function(self, card, context) + if context.before and context.main_eval then + if context.scoring_name == card.ability.extra.poker_hand then + -- Played the loyal hand - decrease loyalty_remaining + if card.ability.extra.loyalty_remaining > 0 then + card.ability.extra.loyalty_remaining = card.ability.extra.loyalty_remaining - 1 + end + else + -- Played a different hand - relationship broken, reset loyalty + card.ability.extra.loyalty_remaining = card.ability.extra.every + return { + message = localize("k_reset"), + colour = G.C.RED, + } + end + end + if context.joker_main then + if not context.blueprint then + if card.ability.extra.loyalty_remaining == 0 then + local eval = function(card) + return card.ability.extra.loyalty_remaining == 0 and not G.RESET_JIGGLES + end + juice_card_until(card, eval, true) + end + end + if card.ability.extra.loyalty_remaining == 0 then + card.ability.extra.loyalty_remaining = card.ability.extra.every + return { + xmult = card.ability.extra.Xmult, + } + end + end + end, + mp_credits = { code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/lucky_cat.lua b/objects/jokers/sandbox/lucky_cat.lua new file mode 100644 index 000000000..28dc79296 --- /dev/null +++ b/objects/jokers/sandbox/lucky_cat.lua @@ -0,0 +1,49 @@ +SMODS.Atlas({ + key = "lucky_cat_sandbox", + path = "j_lucky_cat_sandbox.png", + px = 71, + py = 95, +}) +SMODS.Joker({ + key = "lucky_cat_sandbox", + + unlocked = true, + discovered = true, + no_collection = MP.sandbox_no_collection, + atlas = "lucky_cat_sandbox", + blueprint_compat = true, + perishable_compat = false, + rarity = 2, + cost = 6, + config = { extra = { Xmult_gain = 0.25, Xmult = 1 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + info_queue[#info_queue + 1] = G.P_CENTERS.m_lucky + + return { vars = { card.ability.extra.Xmult_gain, card.ability.extra.Xmult } } + end, + calculate = function(self, card, context) + if + context.individual + and context.cardarea == G.play + and context.other_card.lucky_trigger + and not context.blueprint + then + card.ability.extra.Xmult = card.ability.extra.Xmult + card.ability.extra.Xmult_gain + if SMODS.pseudorandom_probability(card, "j_lucky_cat_mp_sandbox", 1, 4) then + context.other_card:set_ability("m_glass", nil, true) + end + return { + message = localize("k_upgrade_ex"), + colour = G.C.MULT, + message_card = card, + } + end + if context.joker_main then return { + xmult = card.ability.extra.Xmult, + } end + end, + mp_credits = { code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/magnet_sandbox.lua b/objects/jokers/sandbox/magnet_sandbox.lua new file mode 100644 index 000000000..8c70be6f6 --- /dev/null +++ b/objects/jokers/sandbox/magnet_sandbox.lua @@ -0,0 +1,107 @@ +SMODS.Atlas({ + key = "magnet", + path = "j_magnet.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "magnet_sandbox", + atlas = "magnet", + rarity = 3, + cost = 7, + unlocked = true, + discovered = true, + no_collection = MP.sandbox_no_collection, + blueprint_compat = false, + eternal_compat = false, + perishable_compat = true, + config = { extra = { rounds = 2, current_rounds = 0, max_rounds = 5 } }, + loc_vars = function(self, info_queue, card) + MP.UTILS.add_nemesis_info(info_queue) + return { + vars = { + card.ability.extra.rounds, + card.ability.extra.current_rounds, + card.ability.extra.max_rounds, + }, + } + end, + add_to_deck = function(self, card, from_debuffed) + if not from_debuffed and (not card.edition or card.edition.type ~= "mp_phantom") then + MP.ACTIONS.send_phantom("j_mp_magnet_sandbox") + end + end, + remove_from_deck = function(self, card, from_debuff) + if not from_debuff and (not card.edition or card.edition.type ~= "mp_phantom") then + MP.ACTIONS.remove_phantom("j_mp_magnet_sandbox") + end + end, + calculate = function(self, card, context) + if + context.end_of_round + and not context.other_card + and not context.blueprint + and not context.debuffed + and (not card.edition or card.edition.type ~= "mp_phantom") + then + local removed = false + card.ability.extra.current_rounds = card.ability.extra.current_rounds + 1 + if card.ability.extra.current_rounds > card.ability.extra.max_rounds then + removed = true + G.E_MANAGER:add_event(Event({ + func = function() + play_sound("tarot1") + card.T.r = -0.2 + card:juice_up(0.3, 0.4) + card.states.drag.is = false + card.children.center.pinch.x = true + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.3, + blockable = false, + func = function() + G.jokers:remove_card(card) + card:remove() + card = nil + return true + end, + })) + return true + end, + })) + card_eval_status_text(card, "extra", nil, nil, nil, { message = localize("k_no_reward") }) + end + if card.ability.extra.current_rounds == card.ability.extra.rounds then + local eval = function(card) + return not card.REMOVED + end + juice_card_until(card, eval, true) + end + if not removed then + return { + message = (card.ability.extra.current_rounds < card.ability.extra.rounds) + and (card.ability.extra.current_rounds .. "/" .. card.ability.extra.rounds) + or localize("k_active_ex"), + colour = G.C.FILTER, + } + end + end + if + context.selling_self + and (card.ability.extra.current_rounds >= card.ability.extra.rounds) + and not context.blueprint + then + MP.ACTIONS.magnet() + end + end, + + mp_credits = { + idea = { "Zilver" }, + art = { "Ganpan140" }, + code = { "Virtualized" }, + }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) and MP.LOBBY.config.multiplayer_jokers + end, +}) diff --git a/objects/jokers/sandbox/mail.lua b/objects/jokers/sandbox/mail.lua new file mode 100644 index 000000000..d7a3c990c --- /dev/null +++ b/objects/jokers/sandbox/mail.lua @@ -0,0 +1,59 @@ +-- Pausing this because baby steps +SMODS.Atlas({ + key = "mail_sandbox", + path = "j_mail_sandbox.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "mail_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + rarity = 1, + cost = 4, + atlas = "mail_sandbox", + config = { extra = { dollars = 5, rank = nil, card_id = nil }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + local rank = card.ability.extra.rank or (G.GAME.current_round.mail_card or {}).rank or "Ace" + return { + vars = { + card.ability.extra.dollars, + localize(rank, "ranks"), + }, + } + end, + add_to_deck = function(self, card, from_debuff) + -- Don't overwrite rank/card_id if card is re-added after debuff + if card.ability.extra.rank == nil then + card.ability.extra.rank = G.GAME.current_round.mail_card.rank + card.ability.extra.card_id = G.GAME.current_round.mail_card.id + end + end, + calculate = function(self, card, context) + if + context.discard + and not context.other_card.debuff + and context.other_card:get_id() == card.ability.extra.card_id + then + G.GAME.dollar_buffer = (G.GAME.dollar_buffer or 0) + card.ability.extra.dollars + return { + dollars = card.ability.extra.dollars, + func = function() + G.E_MANAGER:add_event(Event({ + func = function() + G.GAME.dollar_buffer = 0 + return true + end, + })) + end, + } + end + end, + mp_credits = { code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/misprint.lua b/objects/jokers/sandbox/misprint.lua new file mode 100644 index 000000000..3cd265692 --- /dev/null +++ b/objects/jokers/sandbox/misprint.lua @@ -0,0 +1,37 @@ +SMODS.Atlas({ + key = "misprint_sandbox", + path = "j_misprint_sandbox.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "misprint_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + atlas = "misprint_sandbox", + blueprint_compat = true, + rarity = 1, + cost = 4, + ruleset = "sandbox", + config = { extra = { max = 46, min = -23, mult = "???", color = G.C.MULT }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.mult, colours = { card.ability.extra.color } } } + end, + add_to_deck = function(self, card, from_debuff) + local numerator, denominator = SMODS.get_probability_vars(card, 1, 2, "j_mp_misprint_sandbox") + card.ability.extra.mult = numerator + * pseudorandom("misprint_sandbox", card.ability.extra.min, card.ability.extra.max) + if numerator > 1 then card.ability.extra.color = G.C.GREEN end + end, + calculate = function(self, card, context) + if context.joker_main then return { + mult = card.ability.extra.mult, + } end + end, + mp_credits = { code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/order.lua b/objects/jokers/sandbox/order.lua new file mode 100644 index 000000000..1602ce43f --- /dev/null +++ b/objects/jokers/sandbox/order.lua @@ -0,0 +1,49 @@ +SMODS.Atlas({ + key = "order_sandbox", + path = "j_order_sandbox.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "order_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + rarity = 3, + cost = 8, + atlas = "order_sandbox", + config = { extra = { Xmult = 3, Xmult_mod = 0.5, type = "Straight" }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.Xmult_mod, card.ability.extra.Xmult } } + end, + calculate = function(self, card, context) + if context.before and context.main_eval and not context.blueprint then + if next(context.poker_hands[card.ability.extra.type]) then + -- Played a Straight - increase Xmult + card.ability.extra.Xmult = card.ability.extra.Xmult + card.ability.extra.Xmult_mod + return { + message = localize("k_upgrade_ex"), + colour = G.C.RED, + } + else + -- Didn't play a Straight - reset to base value + card.ability.extra.Xmult = 3 + return { + message = localize("k_reset"), + colour = G.C.RED, + } + end + end + if context.joker_main and next(context.poker_hands[card.ability.extra.type]) then + return { + xmult = card.ability.extra.Xmult, + } + end + end, + mp_credits = { code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/photograph.lua b/objects/jokers/sandbox/photograph.lua new file mode 100644 index 000000000..46653632e --- /dev/null +++ b/objects/jokers/sandbox/photograph.lua @@ -0,0 +1,40 @@ +SMODS.Atlas({ + key = "photograph_sandbox", + path = "j_photograph_sandbox.png", + px = 71, + py = 95, +}) +SMODS.Joker({ + key = "photograph_sandbox", + no_collection = MP.sandbox_no_collection, + + unlocked = true, + discovered = true, + blueprint_compat = true, + atlas = "photograph_sandbox", + rarity = 1, + cost = 5, + pixel_size = { h = 95 / 1.2 }, + config = { extra = { xmult = 4 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.xmult } } + end, + calculate = function(self, card, context) + if context.individual and context.cardarea == G.play then + local face_count = 0 + for i = 1, #context.scoring_hand do + if context.scoring_hand[i]:is_face() then face_count = face_count + 1 end + end + + if face_count == 1 and context.other_card:is_face() then + return { + xmult = card.ability.extra.xmult, + } + end + end + end, + mp_credits = { code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/ride_the_bus.lua b/objects/jokers/sandbox/ride_the_bus.lua new file mode 100644 index 000000000..70b6b8066 --- /dev/null +++ b/objects/jokers/sandbox/ride_the_bus.lua @@ -0,0 +1,70 @@ +SMODS.Atlas({ + key = "ride_the_bus_sandbox", + path = "j_ride_the_bus_sandbox.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "ride_the_bus_sandbox", + blueprint_compat = true, + perishable_compat = false, + no_collection = MP.sandbox_no_collection, + + unlocked = true, + discovered = true, + rarity = 1, + cost = 6, + atlas = "ride_the_bus_sandbox", + config = { extra = { mult_gain = 1, mult = 0, max_gain = 5 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.mult } } + end, + calculate = function(self, card, context) + if context.before and context.main_eval and not context.blueprint then + local faces = false + for _, playing_card in ipairs(context.scoring_hand) do + if playing_card:is_face() then + faces = true + break + end + end + if faces then + G.E_MANAGER:add_event(Event({ + func = function() + play_sound("tarot1") + card.T.r = -0.2 + card:juice_up(0.3, 0.4) + card.states.drag.is = false + card.children.center.pinch.x = true + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.3, + blockable = false, + func = function() + G.jokers:remove_card(card) + card:remove() + card = nil + return true + end, + })) + return true + end, + })) + card_eval_status_text(card, "extra", nil, nil, nil, { message = localize("k_extinct_ex") }) + else + card.ability.extra.mult = card.ability.extra.mult + card.ability.extra.mult_gain + if card.ability.extra.mult_gain < card.ability.extra.max_gain then + card.ability.extra.mult_gain = card.ability.extra.mult_gain + 1 + end + end + end + if context.joker_main then return { + mult = card.ability.extra.mult, + } end + end, + mp_credits = { code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/runner.lua b/objects/jokers/sandbox/runner.lua new file mode 100644 index 000000000..5ecb69bbd --- /dev/null +++ b/objects/jokers/sandbox/runner.lua @@ -0,0 +1,41 @@ +SMODS.Atlas({ + key = "runner_sandbox", + path = "j_runner_sandbox.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "runner_sandbox", + no_collection = MP.sandbox_no_collection, + blueprint_compat = true, + perishable_compat = false, + + unlocked = true, + discovered = true, + rarity = 1, + cost = 5, + atlas = "runner_sandbox", + config = { extra = { chips = 0, chip_mod = 50 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.chips } } + end, + calculate = function(self, card, context) + if context.before and context.main_eval and not context.blueprint and next(context.poker_hands["Straight"]) then + card.ability.extra.chips = card.ability.extra.chips + card.ability.extra.chip_mod + return { + message = localize("k_upgrade_ex"), + colour = G.C.CHIPS, + } + end + if context.joker_main and next(context.poker_hands["Straight"]) then + return { + chips = card.ability.extra.chips, + } + end + end, + mp_credits = { code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/satellite.lua b/objects/jokers/sandbox/satellite.lua new file mode 100644 index 000000000..475b7d8aa --- /dev/null +++ b/objects/jokers/sandbox/satellite.lua @@ -0,0 +1,49 @@ +SMODS.Atlas({ + key = "satellite_sandbox", + path = "j_satellite_sandbox.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "satellite_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = false, + rarity = 2, + cost = 6, + atlas = "satellite_sandbox", + config = { extra = { dollars = 1 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.dollars } } + end, + calculate = function(self, card, context) + if context.using_consumeable and not context.blueprint and context.consumeable.ability.set == "Planet" then + card.ability.extra.dollars = card.ability.extra.dollars + 1 + return { + -- todo fix + message = localize({ type = "variable", key = "k_val_up", vars = { 1 } }), + } + end + if context.ending_shop and not context.blueprint then + if card.ability.extra.dollars > 0 then + local decrease = math.min(card.ability.extra.dollars, 2) + card.ability.extra.dollars = card.ability.extra.dollars - decrease + play_sound("slice1", 0.96 + math.random() * 0.08) + play_sound("slice1", 0.86 + math.random() * 0.08) + -- todo fix + return { + message = localize({ type = "variable", key = "k_melted_ex", vars = { decrease } }), + } + end + end + end, + calc_dollar_bonus = function(self, card) + return card.ability.extra.dollars > 0 and card.ability.extra.dollars or nil + end, + mp_credits = { code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/square.lua b/objects/jokers/sandbox/square.lua new file mode 100644 index 000000000..33e3629a0 --- /dev/null +++ b/objects/jokers/sandbox/square.lua @@ -0,0 +1,40 @@ +SMODS.Atlas({ + key = "square_sandbox", + path = "j_square_sandbox.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "square_sandbox", + no_collection = MP.sandbox_no_collection, + + unlocked = true, + discovered = true, + blueprint_compat = true, + perishable_compat = false, + rarity = 1, + cost = 4, + atlas = "square_sandbox", + pixel_size = { h = 71 }, + config = { extra = { chips = 64, chip_mod = 16 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.chips, card.ability.extra.chip_mod } } + end, + calculate = function(self, card, context) + if context.before and context.main_eval and not context.blueprint and #context.full_hand == 4 then + card.ability.extra.chips = card.ability.extra.chips + card.ability.extra.chip_mod + return { + message = localize("k_upgrade_ex"), + colour = G.C.CHIPS, + } + end + if context.joker_main and #context.full_hand == 4 then return { + chips = card.ability.extra.chips, + } end + end, + mp_credits = { idea = { "Owen" }, code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/steel_joker.lua b/objects/jokers/sandbox/steel_joker.lua new file mode 100644 index 000000000..18615e189 --- /dev/null +++ b/objects/jokers/sandbox/steel_joker.lua @@ -0,0 +1,36 @@ +SMODS.Atlas({ + key = "steel_joker_sandbox", + path = "j_steel_joker_sandbox.png", + px = 71, + py = 95, +}) +SMODS.Joker({ + key = "steel_joker_sandbox", + no_collection = MP.sandbox_no_collection, + + unlocked = true, + discovered = true, + blueprint_compat = true, + rarity = 2, + cost = 7, + atlas = "steel_joker_sandbox", + config = { extra = { repetitions = 1 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + info_queue[#info_queue + 1] = G.P_CENTERS.m_steel + end, + calculate = function(self, card, context) + if + context.repetition + and context.cardarea == G.play + and SMODS.has_enhancement(context.other_card, "m_steel") + then + return { + repetitions = card.ability.extra.repetitions, + } + end + end, + mp_credits = { code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/throwback.lua b/objects/jokers/sandbox/throwback.lua new file mode 100644 index 000000000..2b5e2c920 --- /dev/null +++ b/objects/jokers/sandbox/throwback.lua @@ -0,0 +1,92 @@ +local function calculate_total_mult(card) + return 1 + (G.GAME.skips * card.ability.extra.base_mult) + card.ability.extra.owned_skip_mult +end + +local function apply_skip_bonus(card) + card.ability.extra.owned_skip_mult = card.ability.extra.owned_skip_mult + card.ability.extra.skip_bonus + local total_mult = calculate_total_mult(card) + return { + message = localize({ + type = "variable", + key = "a_xmult", + vars = { total_mult }, + }), + } +end + +local function apply_round_penalty(card) + local prev_mult = card.ability.extra.owned_skip_mult + card.ability.extra.owned_skip_mult = + math.max(0, card.ability.extra.owned_skip_mult - card.ability.extra.round_penalty) + if prev_mult > card.ability.extra.owned_skip_mult then + return { + message = localize({ + type = "variable", + key = "a_xmult_minus", + vars = { card.ability.extra.round_penalty }, + }), + colour = G.C.RED, + } + end +end + +SMODS.Atlas({ + key = "throwback_sandbox", + path = "j_throwback_sandbox.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "throwback_sandbox", + no_collection = MP.sandbox_no_collection, + unlocked = true, + discovered = true, + blueprint_compat = true, + rarity = 2, + cost = 6, + atlas = "throwback_sandbox", + config = { + extra = { + base_mult = 0.25, + skip_bonus = 0.75, + round_penalty = 0.75, + owned_skip_mult = 0, + skipped_this_round = false, + }, + mp_balanced = true, + }, + loc_vars = function(self, info_queue, card) + return { + vars = { + calculate_total_mult(card), + card.ability.extra.base_mult, + card.ability.extra.skip_bonus, + card.ability.extra.round_penalty, + }, + } + end, + calculate = function(self, card, context) + if context.skip_blind and not context.blueprint then + card.ability.extra.skipped_this_round = true + return apply_skip_bonus(card) + end + if context.end_of_round and context.game_over == false and context.main_eval and not context.blueprint then + if not card.ability.extra.skipped_this_round then + return apply_round_penalty(card) + else + card.ability.extra.skipped_this_round = false + end + end + if context.joker_main then + local total_mult = calculate_total_mult(card) + return { + xmult = total_mult, + } + end + end, + mp_credits = { code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/sandbox/vampire.lua b/objects/jokers/sandbox/vampire.lua new file mode 100644 index 000000000..cd8cd8655 --- /dev/null +++ b/objects/jokers/sandbox/vampire.lua @@ -0,0 +1,73 @@ +SMODS.Atlas({ + key = "vampire_sandbox", + path = "j_vampire_sandbox.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "vampire_sandbox", + no_collection = MP.sandbox_no_collection, + + unlocked = true, + discovered = true, + blueprint_compat = true, + perishable_compat = false, + rarity = 2, + cost = 7, + atlas = "vampire_sandbox", + config = { extra = { Xmult_gain = 0.2, Xmult = 1, stone_money = 3 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.Xmult_gain, card.ability.extra.Xmult, card.ability.extra.stone_money } } + end, + calculate = function(self, card, context) + if context.before and context.main_eval and not context.blueprint then + local enhanced = {} + local stone_cards = {} + for _, scored_card in ipairs(context.scoring_hand) do + if + next(SMODS.get_enhancements(scored_card)) + and not scored_card.debuff + and not scored_card.vampired + and not SMODS.has_enhancement(scored_card, "m_stone") -- todo like this - does it even work? + then + enhanced[#enhanced + 1] = scored_card + scored_card.vampired = true + scored_card:set_ability("m_stone", nil, true) + G.E_MANAGER:add_event(Event({ + func = function() + scored_card:juice_up() + scored_card.vampired = nil + return true + end, + })) + elseif SMODS.has_enhancement(scored_card, "m_stone") and not scored_card.debuff then + stone_cards[#stone_cards + 1] = scored_card + end + end + + if #enhanced > 0 then + card.ability.extra.Xmult = card.ability.extra.Xmult + card.ability.extra.Xmult_gain * #enhanced + return { + message = localize({ type = "variable", key = "a_xmult", vars = { card.ability.extra.Xmult } }), + colour = G.C.MULT, + } + end + + if #stone_cards > 0 then + ease_dollars(card.ability.extra.stone_money * #stone_cards) + return { + message = localize("$") .. (card.ability.extra.stone_money * #stone_cards), + colour = G.C.MONEY, + } + end + end + if context.joker_main then return { + xmult = card.ability.extra.Xmult, + } end + end, + mp_credits = { code = { "steph" } }, + mp_include = function(self) + return MP.SANDBOX.is_joker_allowed(self.key) + end, +}) diff --git a/objects/jokers/skip_off.lua b/objects/jokers/skip_off.lua new file mode 100644 index 000000000..7c7213f34 --- /dev/null +++ b/objects/jokers/skip_off.lua @@ -0,0 +1,63 @@ +SMODS.Atlas({ + key = "skip_off", + path = "j_skip_off.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "skip_off", + atlas = "skip_off", + rarity = 2, + cost = 5, + unlocked = true, + discovered = true, + blueprint_compat = false, + eternal_compat = true, + perishable_compat = true, + config = { extra = { hands = 0, discards = 0, extra_hands = 1, extra_discards = 1 } }, + loc_vars = function(self, info_queue, card) + MP.UTILS.add_nemesis_info(info_queue) + return { + vars = { + card.ability.extra.extra_hands, + card.ability.extra.extra_discards, + card.ability.extra.hands, + card.ability.extra.discards, + G.GAME.skips ~= nil and MP.GAME.enemy.skips ~= nil and localize({ + type = "variable", + key = MP.GAME.enemy.skips > G.GAME.skips and "a_mp_skips_behind" + or MP.GAME.enemy.skips == G.GAME.skips and "a_mp_skips_tied" + or "a_mp_skips_ahead", + vars = { math.abs(MP.GAME.enemy.skips - G.GAME.skips) }, + })[1] or "", + }, + } + end, + mp_include = function(self) + return MP.LOBBY.code and MP.LOBBY.config.multiplayer_jokers + end, + update = function(self, card, dt) + if G.STAGE == G.STAGES.RUN and G.GAME.skips ~= nil and MP.GAME.enemy.skips ~= nil then + local skip_diff = (math.max(G.GAME.skips - MP.GAME.enemy.skips, 0)) + card.ability.extra.hands = skip_diff * card.ability.extra.extra_hands + card.ability.extra.discards = skip_diff * card.ability.extra.extra_discards + end + end, + calculate = function(self, card, context) + if context.cardarea == G.jokers and context.setting_blind and not context.blueprint then + G.E_MANAGER:add_event(Event({ + func = function() + ease_hands_played(card.ability.extra.hands) + ease_discard(card.ability.extra.discards, nil, true) + return true + end, + })) + end + end, + mp_credits = { + idea = { "Dr. Monty", "Carter" }, + art = { "Aura!" }, + code = { "Virtualized" }, + }, +}) diff --git a/objects/jokers/speedrun.lua b/objects/jokers/speedrun.lua new file mode 100644 index 000000000..d2284da05 --- /dev/null +++ b/objects/jokers/speedrun.lua @@ -0,0 +1,65 @@ +SMODS.Atlas({ + key = "speedrun", + path = "j_speedrun.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "speedrun", + atlas = "speedrun", + rarity = 2, + cost = 6, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = true, + perishable_compat = true, + loc_vars = function(self, info_queue, card) + MP.UTILS.add_nemesis_info(info_queue) + return { vars = {} } + end, + mp_include = function(self) + return MP.LOBBY.code and MP.LOBBY.config.multiplayer_jokers + end, + calculate = function(self, card, context) + if + context.mp_speedrun + and (not card.edition or card.edition.type ~= "mp_phantom") + and #G.consumeables.cards + G.GAME.consumeable_buffer < G.consumeables.config.card_limit + then + G.GAME.consumeable_buffer = G.GAME.consumeable_buffer + 1 + G.E_MANAGER:add_event(Event({ + trigger = "before", + delay = 0.0, + func = function() + local card = create_card("Spectral", G.consumeables, nil, nil, nil, nil, nil, "mp_speedrun") + card:add_to_deck() + G.consumeables:emplace(card) + G.GAME.consumeable_buffer = 0 + return true + end, + })) + return { + message = localize("k_plus_spectral"), + colour = G.C.SECONDARY_SET.Spectral, + card = card, + } + end + end, + add_to_deck = function(self, card, from_debuffed) + if not from_debuffed and (not card.edition or card.edition.type ~= "mp_phantom") then + MP.ACTIONS.send_phantom("j_mp_speedrun") + end + end, + remove_from_deck = function(self, card, from_debuff) + if not from_debuff and (not card.edition or card.edition.type ~= "mp_phantom") then + MP.ACTIONS.remove_phantom("j_mp_speedrun") + end + end, + mp_credits = { + idea = { "Virtualized" }, + art = { "Aura!" }, + code = { "Virtualized" }, + }, +}) diff --git a/objects/jokers/standard/bloodstone.lua b/objects/jokers/standard/bloodstone.lua new file mode 100644 index 000000000..afbf2d385 --- /dev/null +++ b/objects/jokers/standard/bloodstone.lua @@ -0,0 +1,65 @@ +-- this is kinda strange but we can just override the logic for pvp only rather than re-implementing it again, bc if we don't return anything, it'll run the normal logic + +SMODS.Joker({ + key = "bloodstone", + unlocked = true, + discovered = true, + blueprint_compat = true, + perishable_compat = true, + eternal_compat = true, + rarity = 2, + cost = 7, + pos = { x = 0, y = 8 }, + no_collection = true, + config = { extra = { odds = 2, Xmult = 1.5 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { + key = "j_bloodstone", + vars = { + "" .. (G.GAME and G.GAME.probabilities.normal or 1), + card.ability.extra.odds, + card.ability.extra.Xmult, + }, + } + end, + calculate = function(self, card, context) + if MP.is_pvp_boss() then + if not context.blueprint then + if context.before then + G.GAME.round_resets.mp_bloodstone = G.GAME.round_resets.mp_bloodstone or {} + G.GAME.round_resets.mp_bloodstone[MP.order_round_based(true)] = G.GAME.round_resets.mp_bloodstone[MP.order_round_based( + true + )] or {} + G.GAME.round_resets.mp_bsindex = 0 + end + end + if context.individual and context.cardarea == G.play then + if context.other_card:is_suit("Hearts") then + local stored_queue = G.GAME.round_resets.mp_bloodstone[MP.order_round_based(true)] + G.GAME.round_resets.mp_bsindex = G.GAME.round_resets.mp_bsindex + 1 -- increment before indexing + stored_queue[G.GAME.round_resets.mp_bsindex] = stored_queue[G.GAME.round_resets.mp_bsindex] + or pseudorandom("bloodstone" .. MP.order_round_based(true)) + if + stored_queue[G.GAME.round_resets.mp_bsindex] + < G.GAME.probabilities.normal / card.ability.extra.odds + then + return { + x_mult = card.ability.extra.Xmult, + card = card, + } + end + end + end + elseif context.individual and context.cardarea == G.play then + if + context.other_card:is_suit("Hearts") + and pseudorandom("bloodstone") < G.GAME.probabilities.normal / card.ability.extra.odds + then + return { + x_mult = card.ability.extra.Xmult, + card = card, + } + end + end + end, +}) diff --git a/objects/jokers/standard/hanging_chad.lua b/objects/jokers/standard/hanging_chad.lua new file mode 100644 index 000000000..5fe6e1123 --- /dev/null +++ b/objects/jokers/standard/hanging_chad.lua @@ -0,0 +1,36 @@ +SMODS.Joker({ + key = "hanging_chad", + no_collection = true, + unlocked = true, + discovered = true, + blueprint_compat = true, + perishable_compat = true, + eternal_compat = true, + rarity = 1, + cost = 4, + pos = { x = 9, y = 6 }, + config = { extra = 1, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { vars = { + card.ability.extra, + } } + end, + calculate = function(self, card, context) + if context.cardarea == G.play and context.repetition then + if context.other_card == context.scoring_hand[1] then + return { + message = localize("k_again_ex"), + repetitions = card.ability.extra, + card = card, + } + end + if context.other_card == context.scoring_hand[2] then + return { + message = localize("k_again_ex"), + repetitions = card.ability.extra, + card = card, + } + end + end + end, +}) diff --git a/objects/jokers/standard/ice_cream.lua b/objects/jokers/standard/ice_cream.lua new file mode 100644 index 000000000..87273bd6e --- /dev/null +++ b/objects/jokers/standard/ice_cream.lua @@ -0,0 +1,26 @@ +-- Under pvp_timer, losing the round to the clock melts ice cream by chip_mod * unused hands. +local old_ice_cream_calculate = G.P_CENTERS.j_ice_cream.calculate or function(self, card, context) end +SMODS.Joker:take_ownership("j_ice_cream", { + calculate = function(self, card, context) + -- calculate runs every frame on every on-screen joker; keep the layer check + -- gated behind the cheap context field test. + if context.mp_pvp_loss and not context.blueprint and MP.is_layer_active("pvp_timer") then + local hands_decrease = context.mp_hands_left or 1 + local chips_decrease = card.ability.extra.chip_mod * hands_decrease + if card.ability.extra.chips - chips_decrease <= 0 then + SMODS.destroy_cards(card, nil, nil, true) + return { + message = localize("k_melted_ex"), + colour = G.C.CHIPS, + } + else + card.ability.extra.chips = card.ability.extra.chips - chips_decrease + return { + message = localize({ type = "variable", key = "a_chips_minus", vars = { chips_decrease } }), + colour = G.C.CHIPS, + } + end + end + return old_ice_cream_calculate(self, card, context) + end, +}, true) diff --git a/objects/jokers/standard/seltzer.lua b/objects/jokers/standard/seltzer.lua new file mode 100644 index 000000000..c0b130170 --- /dev/null +++ b/objects/jokers/standard/seltzer.lua @@ -0,0 +1,64 @@ +SMODS.Joker({ + key = "seltzer", + no_collection = true, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = false, + rarity = 2, + cost = 6, + pos = { x = 3, y = 15 }, + config = { extra = { hands_left = 8 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.hands_left } } + end, + calculate = function(self, card, context) + if context.repetition and context.cardarea == G.play then return { + repetitions = 1, + } end + -- after-hand path runs every blind; mp_pvp_loss only matters under pvp_timer, + -- so the layer check sits behind the cheap context field test. + if (context.after or (context.mp_pvp_loss and MP.is_layer_active("pvp_timer"))) and not context.blueprint then + local hands_decrease = context.mp_pvp_loss and context.mp_hands_left or 1 + if card.ability.extra.hands_left - hands_decrease <= 0 then + SMODS.destroy_cards(card, nil, nil, true) + return { + message = localize("k_drank_ex"), + colour = G.C.FILTER, + } + else + card.ability.extra.hands_left = card.ability.extra.hands_left - hands_decrease + return { + message = card.ability.extra.hands_left .. "", + colour = G.C.FILTER, + } + end + end + end, +}) + +-- Under pvp_timer, losing the round to the clock drinks vanilla seltzer by the number of unused hands. +local old_seltzer_calculate = G.P_CENTERS.j_selzer.calculate or function(self, card, context) end +SMODS.Joker:take_ownership("j_selzer", { + calculate = function(self, card, context) + -- calculate runs every frame on every on-screen joker; keep the layer check + -- gated behind the cheap context field test. + if context.mp_pvp_loss and not context.blueprint and MP.is_layer_active("pvp_timer") then + local hands_decrease = context.mp_hands_left or 1 + if card.ability.extra - hands_decrease <= 0 then + SMODS.destroy_cards(card, nil, nil, true) + return { + message = localize("k_drank_ex"), + colour = G.C.FILTER, + } + else + card.ability.extra = card.ability.extra - hands_decrease + return { + message = card.ability.extra .. "", + colour = G.C.FILTER, + } + end + end + return old_seltzer_calculate(self, card, context) + end, +}, true) diff --git a/objects/jokers/standard/ticket.lua b/objects/jokers/standard/ticket.lua new file mode 100644 index 000000000..bcb15f5f8 --- /dev/null +++ b/objects/jokers/standard/ticket.lua @@ -0,0 +1,71 @@ +SMODS.Joker({ + key = "ticket", + no_collection = true, + unlocked = true, + discovered = true, + blueprint_compat = true, + rarity = 2, + cost = 6, + pos = { x = 5, y = 3 }, + config = { extra = { dollars = 4 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + info_queue[#info_queue + 1] = G.P_CENTERS.m_gold + return { vars = { card.ability.extra.dollars } } + end, + calculate = function(self, card, context) + if + context.individual + and context.cardarea == G.play + and SMODS.has_enhancement(context.other_card, "m_gold") + then + G.GAME.dollar_buffer = (G.GAME.dollar_buffer or 0) + card.ability.extra.dollars + return { + dollars = card.ability.extra.dollars, + func = function() -- This is for timing purposes, it runs after the dollar manipulation + G.E_MANAGER:add_event(Event({ + func = function() + G.GAME.dollar_buffer = 0 + return true + end, + })) + end, + } + end + end, +}) + +SMODS.Joker({ + key = "ticket_experimental", + no_collection = true, + unlocked = true, + discovered = true, + blueprint_compat = true, + rarity = 2, + cost = 6, + pos = { x = 5, y = 3 }, + config = { extra = { dollars = 4 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + info_queue[#info_queue + 1] = G.P_CENTERS.m_gold + return { vars = { card.ability.extra.dollars } } + end, + calculate = function(self, card, context) + if + context.individual + and context.cardarea == G.play + and SMODS.has_enhancement(context.other_card, "m_gold") + then + G.GAME.dollar_buffer = (G.GAME.dollar_buffer or 0) + card.ability.extra.dollars + return { + dollars = card.ability.extra.dollars, + func = function() -- This is for timing purposes, it runs after the dollar manipulation + G.E_MANAGER:add_event(Event({ + func = function() + G.GAME.dollar_buffer = 0 + return true + end, + })) + end, + } + end + end, +}) \ No newline at end of file diff --git a/objects/jokers/standard/turtle_bean.lua b/objects/jokers/standard/turtle_bean.lua new file mode 100644 index 000000000..bb3cf657d --- /dev/null +++ b/objects/jokers/standard/turtle_bean.lua @@ -0,0 +1,43 @@ +SMODS.Joker({ + key = "turtle_bean", + no_collection = true, + unlocked = true, + discovered = true, + blueprint_compat = false, + eternal_compat = false, + rarity = 2, + cost = 6, + pos = { x = 4, y = 13 }, + config = { extra = { h_size = 4, h_mod = 1 }, mp_balanced = true }, + loc_vars = function(self, info_queue, card) + return { vars = { card.ability.extra.h_size, card.ability.extra.h_mod } } + end, + calculate = function(self, card, context) + if context.end_of_round and context.game_over == false and context.main_eval and not context.blueprint then + if card.ability.extra.h_size - card.ability.extra.h_mod <= 0 then + SMODS.destroy_cards(card, nil, nil, true) + return { + message = localize("k_eaten_ex"), + colour = G.C.FILTER, + } + else + card.ability.extra.h_size = card.ability.extra.h_size - card.ability.extra.h_mod + G.hand:change_size(-card.ability.extra.h_mod) + return { + message = localize({ + type = "variable", + key = "a_handsize_minus", + vars = { card.ability.extra.h_mod }, + }), + colour = G.C.FILTER, + } + end + end + end, + add_to_deck = function(self, card, from_debuff) + G.hand:change_size(card.ability.extra.h_size) + end, + remove_from_deck = function(self, card, from_debuff) + G.hand:change_size(-card.ability.extra.h_size) + end, +}) diff --git a/objects/jokers/taxes.lua b/objects/jokers/taxes.lua new file mode 100644 index 000000000..ca84474bd --- /dev/null +++ b/objects/jokers/taxes.lua @@ -0,0 +1,61 @@ +local function next_taxes_total_mult_gain(card) + local sells = MP.GAME.enemy.sells_per_ante[G.GAME.round_resets.ante] or 0 + + -- If PvP hasn't been reached for the first time, accumulate sells from previous Antes + if G.GAME.round_resets.ante <= MP.LOBBY.config.pvp_start_round then + for i = 1, G.GAME.round_resets.ante - 1 do + sells = sells + (MP.GAME.enemy.sells_per_ante[i] or 0) + end + end + + return sells * card.ability.extra.mult_gain +end + +SMODS.Atlas({ + key = "taxes", + path = "j_taxes.png", + px = 71, + py = 95, +}) + +SMODS.Joker({ + key = "taxes", + atlas = "taxes", + rarity = 1, + cost = 5, + unlocked = true, + discovered = true, + blueprint_compat = true, + eternal_compat = true, + perishable_compat = false, + config = { extra = { mult_gain = 4, mult = 0 } }, + loc_vars = function(self, info_queue, card) + MP.UTILS.add_nemesis_info(info_queue) + return { vars = { card.ability.extra.mult_gain, card.ability.extra.mult } } + end, + mp_include = function(self) + return MP.LOBBY.code and MP.LOBBY.config.multiplayer_jokers + end, + calculate = function(self, card, context) + if context.cardarea == G.jokers and context.joker_main then + return { + mult = card.ability.extra.mult, + } + elseif + context.cardarea == G.jokers + and context.setting_blind + and not context.blueprint + and context.blind.key == "bl_mp_nemesis" + then + card.ability.extra.mult = card.ability.extra.mult + next_taxes_total_mult_gain(card) + return { + message = localize("k_filed_ex"), + } + end + end, + mp_credits = { + idea = { "Zwei" }, + art = { "Kittyknight" }, + code = { "Virtualized" }, + }, +}) diff --git a/rulesets/_rulesets.lua b/rulesets/_rulesets.lua index 6008d6f70..aa4ed2fea 100644 --- a/rulesets/_rulesets.lua +++ b/rulesets/_rulesets.lua @@ -211,20 +211,16 @@ function MP.ApplyBans() "blinds", } for _, table in ipairs(banned_tables) do - local unbanned = {} - for _, v in ipairs(ruleset["unbanned_" .. table] or {}) do - unbanned[v] = true - end for _, v in ipairs(ruleset["banned_" .. table]) do - if not unbanned[v] then G.GAME.banned_keys[v] = true end + G.GAME.banned_keys[v] = true end if gamemode then for _, v in ipairs(gamemode["banned_" .. table]) do - if not unbanned[v] then G.GAME.banned_keys[v] = true end + G.GAME.banned_keys[v] = true end end for _, v in pairs(MP.DECK["BANNED_" .. string.upper(table)]) do - if not unbanned[v] then G.GAME.banned_keys[v] = true end + G.GAME.banned_keys[v] = true end end for _, v in ipairs(ruleset.banned_silent) do diff --git a/rulesets/experimental/experimental_blind_raiser.lua b/rulesets/experimental/experimental_blind_raiser.lua index 4b8f8ae44..e50f21e45 100644 --- a/rulesets/experimental/experimental_blind_raiser.lua +++ b/rulesets/experimental/experimental_blind_raiser.lua @@ -107,11 +107,6 @@ MP.Ruleset({ key = BLIND_RAISER_LAYER, layers = { "standard", "ranked", "pvp_timer" }, forced_gamemode = "gamemode_mp_attrition", - unbanned_jokers = { - "j_luchador", - "j_matador", - "j_chicot", - }, reworked_tags = { "tag_investment", "tag_negative", diff --git a/ui/_common/background_grouping.lua b/ui/_common/background_grouping.lua new file mode 100644 index 000000000..2566be91c --- /dev/null +++ b/ui/_common/background_grouping.lua @@ -0,0 +1,21 @@ +function MP.UI.BackgroundGrouping(text, nodes, config) + config = config or {} + config.text_scale = config.text_scale or 0.33 + return { + n = config.col and G.UIT.C or G.UIT.R, + config = { align = "cm", padding = 0.05, r = 0.1, colour = G.C.UI.TRANSPARENT_DARK }, + nodes = { + { n = G.UIT.R, config = { align = "cm" }, nodes = nodes }, + { + n = G.UIT.R, + config = { align = "cm", padding = 0.05 }, + nodes = { + { + n = G.UIT.T, + config = { text = text, colour = lighten(G.C.L_BLACK, 0.5), scale = config.text_scale }, + }, + }, + }, + }, + } +end diff --git a/ui/_common/disableable_button.lua b/ui/_common/disableable_button.lua new file mode 100644 index 000000000..9e423b6b6 --- /dev/null +++ b/ui/_common/disableable_button.lua @@ -0,0 +1,17 @@ +function MP.UI.Disableable_Button(args) + local enabled_table = args.enabled_ref_table or {} + local enabled = enabled_table[args.enabled_ref_value] + args.colour = args.colour or G.C.RED + args.text_colour = args.text_colour or G.C.UI.TEXT_LIGHT + args.disabled_text = args.disabled_text or args.label + args.label = not enabled and args.disabled_text or args.label + + local button_component = UIBox_button(args) + button_component.nodes[1].config.button = enabled and args.button or nil + button_component.nodes[1].config.hover = enabled + button_component.nodes[1].config.shadow = enabled + button_component.nodes[1].config.colour = enabled and args.colour or G.C.UI.BACKGROUND_INACTIVE + button_component.nodes[1].nodes[1].nodes[1].colour = enabled and args.text_colour or G.C.UI.TEXT_INACTIVE + button_component.nodes[1].nodes[1].nodes[1].shadow = enabled + return button_component +end diff --git a/ui/_common/disableable_option_cycle.lua b/ui/_common/disableable_option_cycle.lua new file mode 100644 index 000000000..9cff9d064 --- /dev/null +++ b/ui/_common/disableable_option_cycle.lua @@ -0,0 +1,12 @@ +function MP.UI.Disableable_Option_Cycle(args) + local enabled_table = args.enabled_ref_table or {} + local enabled = enabled_table[args.enabled_ref_value] + + if not enabled then + args.options = { args.options[args.current_option] } + args.current_option = 1 + end + + local option_component = create_option_cycle(args) + return option_component +end diff --git a/ui/_common/disableable_toggle.lua b/ui/_common/disableable_toggle.lua new file mode 100644 index 000000000..2d3cce604 --- /dev/null +++ b/ui/_common/disableable_toggle.lua @@ -0,0 +1,12 @@ +function MP.UI.Disableable_Toggle(args) + local enabled_table = args.enabled_ref_table or {} + local enabled = enabled_table[args.enabled_ref_value] + + local toggle_component = create_toggle(args) + toggle_component.nodes[2].nodes[1].nodes[1].config.id = args.id + toggle_component.nodes[2].nodes[1].nodes[1].config.button = enabled and "toggle_button" or nil + toggle_component.nodes[2].nodes[1].nodes[1].config.button_dist = enabled and 0.2 or nil + toggle_component.nodes[2].nodes[1].nodes[1].config.hover = enabled and true or false + toggle_component.nodes[2].nodes[1].nodes[1].config.toggle_callback = enabled and args.callback or nil + return toggle_component +end diff --git a/ui/_common/spacer.lua b/ui/_common/spacer.lua new file mode 100644 index 000000000..bafe8b2b0 --- /dev/null +++ b/ui/_common/spacer.lua @@ -0,0 +1,19 @@ +function MP.UI.create_spacer(size, row) + size = size or 0.2 + + return row and { + n = G.UIT.R, + config = { + align = "cm", + minh = size, + }, + nodes = {}, + } or { + n = row and G.UIT.R or G.UIT.C, + config = { + align = "cm", + minw = size, + }, + nodes = {}, + } +end diff --git a/ui/game/blind_chip_sprite.lua b/ui/game/blind_chip_sprite.lua new file mode 100644 index 000000000..8b201b0c3 --- /dev/null +++ b/ui/game/blind_chip_sprite.lua @@ -0,0 +1,26 @@ +MP.UI.BlindChip = {} + +function MP.UI.BlindChip.custom(atlas, x, y) + local blind_chip = AnimatedSprite(0, 0, 1.4, 1.4, G.ANIMATION_ATLAS[atlas], { x = x, y = y }) + blind_chip:define_draw_steps({ + { shader = "dissolve", shadow_height = 0.05 }, + { shader = "dissolve" }, + }) + return blind_chip +end + +function MP.UI.BlindChip.small() + return MP.UI.BlindChip.custom("blind_chips", 0, 0) +end + +function MP.UI.BlindChip.big() + return MP.UI.BlindChip.custom("blind_chips", 0, 1) +end + +function MP.UI.BlindChip.random() + return MP.UI.BlindChip.custom("blind_chips", 0, 30) +end + +function MP.UI.BlindChip.nemesis() + return MP.UI.BlindChip.custom("mp_player_blind_col", 0, 22) +end diff --git a/ui/game/blind_choice.lua b/ui/game/blind_choice.lua new file mode 100644 index 000000000..72f04917c --- /dev/null +++ b/ui/game/blind_choice.lua @@ -0,0 +1,535 @@ +local create_UIBox_blind_choice_ref = create_UIBox_blind_choice +---@diagnostic disable-next-line: lowercase-global +function create_UIBox_blind_choice(type, run_info) + -- Blind Raiser can be played through Multiplayer or the local Practice + -- ruleset runner. Practice has no lobby code, so MP.is_mp_or_ghost() is + -- false even though the Blind Raiser ruleset is active. In that case the + -- old code delegated to vanilla's UI and displayed the replacement Boss + -- multiplier instead of the stored physical-slot score x 2^N. + local blind_raiser_ui = MP.BLIND_RAISER + and MP.BLIND_RAISER.is_active + and MP.BLIND_RAISER.is_active() + if MP.is_mp_or_ghost() or blind_raiser_ui then + if not G.GAME.blind_on_deck then G.GAME.blind_on_deck = "Small" end + if not run_info then G.GAME.round_resets.blind_states[G.GAME.blind_on_deck] = "Select" end + + local disabled = false + type = type or "Small" + local nemesis = G.GAME.round_resets.blind_choices[type] == "bl_mp_nemesis" and true or false + local nemesis_blind_col = nemesis and MP.UTILS.get_nemesis_key() + + local blind_choice = { + config = G.P_BLINDS[G.GAME.round_resets.blind_choices[type]], + } + + local blind_atlas = "blind_chips" + local blind_pos = blind_choice.config.pos + if blind_choice.config and blind_choice.config.atlas then blind_atlas = blind_choice.config.atlas end + if nemesis then + blind_atlas = "mp_player_blind_col" + blind_pos = G.P_BLINDS[nemesis_blind_col].pos + end + + blind_choice.animation = AnimatedSprite(0, 0, 1.4, 1.4, G.ANIMATION_ATLAS[blind_atlas], blind_pos) + blind_choice.animation:define_draw_steps({ + { shader = "dissolve", shadow_height = 0.05 }, + { shader = "dissolve" }, + }) + local extras = nil + local stake_sprite = get_stake_sprite(G.GAME.stake or 1, 0.5) + + G.GAME.orbital_choices = G.GAME.orbital_choices or {} + G.GAME.orbital_choices[G.GAME.round_resets.ante] = G.GAME.orbital_choices[G.GAME.round_resets.ante] or {} + + if not G.GAME.orbital_choices[G.GAME.round_resets.ante][type] then + local _poker_hands = {} + if MP.should_use_the_order() then + _poker_hands = MP.sorted_hand_list() + else + for k, v in pairs(G.GAME.hands) do + if SMODS.is_poker_hand_visible(k) then _poker_hands[#_poker_hands + 1] = k end + end + end + + G.GAME.orbital_choices[G.GAME.round_resets.ante][type] = + pseudorandom_element(_poker_hands, pseudoseed("orbital")) + end + + if + G.GAME.round_resets.blind_choices[type] == "bl_mp_nemesis" or G.GAME.round_resets.pvp_blind_choices[type] + then + local dt1 = DynaText({ + string = { { string = localize("k_bl_life"), colour = G.C.FILTER } }, + colours = { G.C.BLACK }, + scale = 0.55, + silent = true, + pop_delay = 4.5, + shadow = true, + bump = true, + maxw = 3, + }) + local dt2 = DynaText({ + string = { { string = localize("k_bl_or"), colour = G.C.WHITE } }, + colours = { G.C.CHANCE }, + scale = 0.35, + silent = true, + pop_delay = 4.5, + shadow = true, + maxw = 3, + }) + local dt3 = DynaText({ + string = { { string = localize("k_bl_death"), colour = G.C.FILTER } }, + colours = { G.C.BLACK }, + scale = 0.55, + silent = true, + pop_delay = 4.5, + shadow = true, + bump = true, + maxw = 3, + }) + extras = { + n = G.UIT.R, + config = { align = "cm" }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm", padding = 0.07, r = 0.1, colour = { 0, 0, 0, 0.12 }, minw = 2.9 }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm" }, + nodes = { + { + n = G.UIT.O, + config = { object = dt1 }, + }, + }, + }, + { + n = G.UIT.R, + config = { align = "cm" }, + nodes = { + { n = G.UIT.O, config = { object = dt2 } }, + }, + }, + { + n = G.UIT.R, + config = { align = "cm" }, + nodes = { + { n = G.UIT.O, config = { object = dt3 } }, + }, + }, + }, + }, + }, + } + elseif type == "Small" then + extras = create_UIBox_blind_tag(type, run_info) + elseif type == "Big" then + extras = create_UIBox_blind_tag(type, run_info) + else + extras = nil + end + G.GAME.round_resets.blind_ante = G.GAME.round_resets.blind_ante or G.GAME.round_resets.ante + + local loc_target = localize({ + type = "raw_descriptions", + key = blind_choice.config.key, + set = "Blind", + vars = { + blind_choice.config.key == "bl_ox" + and localize(G.GAME.current_round.most_played_poker_hand, "poker_hands") + or "", + }, + }) + local loc_name + if G.GAME.round_resets.blind_choices[type] == "bl_mp_nemesis" then + if MP.GHOST.is_active() then + loc_name = MP.GHOST.get_nemesis_name() + else + -- Blind-select can be rebuilt during round-end events before a + -- lobby username is available (for example immediately after an + -- Investment Tag payout). Never pass nil to DynaText. + local lobby = MP.LOBBY or {} + local opponent = lobby.is_host and lobby.guest or lobby.host + loc_name = opponent and opponent.username + end + loc_name = loc_name + or localize({ type = "name_text", key = "bl_mp_nemesis", set = "Blind" }) + or localize("k_nemesis_timer") + or "Nemesis" + else + loc_name = localize({ type = "name_text", key = blind_choice.config.key, set = "Blind" }) + or blind_choice.config.name + or "Blind" + end + + local blind_col = get_blind_main_colour(type) + + ---@type string|number + local blind_amt = get_blind_amount(G.GAME.round_resets.blind_ante) + * blind_choice.config.mult + * G.GAME.starting_params.ante_scaling + + if MP.BLIND_RAISER and MP.BLIND_RAISER.preview_score_for_slot then + -- Use the stored score for this physical Small/Big slot. The replacement + -- Boss multiplier is only a fallback for non-upgraded Blinds. + blind_amt = MP.BLIND_RAISER.preview_score_for_slot(type, blind_amt) + elseif MP.BLIND_RAISER and MP.BLIND_RAISER.score_for_slot then + blind_amt = MP.BLIND_RAISER.score_for_slot(type, blind_amt, G.GAME.round_resets.blind_ante) + end + + if + G.GAME.round_resets.blind_choices[type] == "bl_mp_nemesis" or G.GAME.round_resets.pvp_blind_choices[type] + then + blind_amt = "????" + end + + local text_table = loc_target + + if G.GAME.round_resets.pvp_blind_choices[type] then text_table[#text_table + 1] = localize("k_bl_mostchips") end + + local blind_state = G.GAME.round_resets.blind_states[type] + local _reward = true + if G.GAME.modifiers.no_blind_reward and G.GAME.modifiers.no_blind_reward[type] then + ---@diagnostic disable-next-line: cast-local-type + _reward = nil + end + if blind_state == "Select" then blind_state = "Current" end + local run_info_colour = run_info + and ( + blind_state == "Defeated" and G.C.GREY + or blind_state == "Skipped" and G.C.BLUE + or blind_state == "Upcoming" and G.C.ORANGE + or blind_state == "Current" and G.C.RED + or G.C.GOLD + ) + + local t = { + n = G.UIT.R, + config = { + id = type, + align = "tm", + func = "blind_choice_handler", + minh = not run_info and 10 or nil, + ref_table = { deck = nil, run_info = run_info }, + r = 0.1, + padding = 0.05, + }, + nodes = { + { + n = G.UIT.R, + config = { + align = "cm", + colour = mix_colours(G.C.BLACK, G.C.L_BLACK, 0.5), + r = 0.1, + outline = 1, + outline_colour = G.C.L_BLACK, + }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm", padding = 0.2 }, + nodes = { + not run_info and { + n = G.UIT.R, + config = { + id = "select_blind_button", + align = "cm", + ref_table = blind_choice.config, + colour = disabled and G.C.UI.BACKGROUND_INACTIVE or G.C.ORANGE, + minh = 0.6, + minw = 2.7, + padding = 0.07, + r = 0.1, + shadow = true, + hover = true, + one_press = true, + func = ( + not MP.GHOST.is_active() + and (G.GAME.round_resets.blind_choices[type] == "bl_mp_nemesis" + or G.GAME.round_resets.pvp_blind_choices[type]) + ) + and "pvp_ready_button" + or nil, + button = "select_blind", + }, + nodes = { + { + n = G.UIT.T, + config = { + ref_table = G.GAME.round_resets.loc_blind_states, + ref_value = type, + scale = 0.45, + colour = disabled and G.C.UI.TEXT_INACTIVE or G.C.UI.TEXT_LIGHT, + shadow = not disabled, + }, + }, + }, + } or { + n = G.UIT.R, + config = { + id = "select_blind_button", + align = "cm", + ref_table = blind_choice.config, + colour = run_info_colour, + minh = 0.6, + minw = 2.7, + padding = 0.07, + r = 0.1, + emboss = 0.08, + }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize(blind_state, "blind_states"), + scale = 0.45, + colour = G.C.UI.TEXT_LIGHT, + shadow = true, + }, + }, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { id = "blind_name", align = "cm", padding = 0.07 }, + nodes = { + { + n = G.UIT.R, + config = { + align = "cm", + r = 0.1, + outline = 1, + outline_colour = blind_col, + colour = darken(blind_col, 0.3), + minw = 2.9, + emboss = 0.1, + padding = 0.07, + line_emboss = 1, + }, + nodes = { + { + n = G.UIT.O, + config = { + object = DynaText({ + string = loc_name, + colours = { disabled and G.C.UI.TEXT_INACTIVE or G.C.WHITE }, + shadow = not disabled, + float = not disabled, + y_offset = -4, + scale = 0.45, + maxw = 2.8, + }), + }, + }, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { align = "cm", padding = 0.05 }, + nodes = { + { + n = G.UIT.R, + config = { id = "blind_desc", align = "cm", padding = 0.05 }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm" }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm", minh = 1.5 }, + nodes = { + { n = G.UIT.O, config = { object = blind_choice.animation } }, + }, + }, + text_table and text_table[1] and { + n = G.UIT.R, + config = { + align = "cm", + minh = 0.7, + padding = 0.05, + minw = 2.9, + }, + nodes = { + text_table[1] + and { + n = G.UIT.R, + config = { align = "cm", maxw = 2.8 }, + nodes = { + { + n = G.UIT.T, + config = { + id = blind_choice.config.key, + ref_table = { val = "" }, + ref_value = "val", + scale = 0.32, + colour = disabled + and G.C.UI.TEXT_INACTIVE + or G.C.WHITE, + shadow = not disabled, + func = "HUD_blind_debuff_prefix", + }, + }, + { + n = G.UIT.T, + config = { + text = text_table[1] or "-", + scale = 0.32, + colour = disabled + and G.C.UI.TEXT_INACTIVE + or G.C.WHITE, + shadow = not disabled, + }, + }, + }, + } + or nil, + text_table[2] and { + n = G.UIT.R, + config = { align = "cm", maxw = 2.8 }, + nodes = { + { + n = G.UIT.T, + config = { + text = text_table[2] or "-", + scale = 0.32, + colour = disabled and G.C.UI.TEXT_INACTIVE + or G.C.WHITE, + shadow = not disabled, + }, + }, + }, + } or nil, + text_table[3] and { + n = G.UIT.R, + config = { align = "cm", maxw = 2.8 }, + nodes = { + { + n = G.UIT.T, + config = { + text = text_table[3] or "-", + scale = 0.32, + colour = disabled and G.C.UI.TEXT_INACTIVE + or G.C.WHITE, + shadow = not disabled, + }, + }, + }, + } or nil, + }, + } or nil, + }, + }, + { + n = G.UIT.R, + config = { + align = "cm", + r = 0.1, + padding = 0.05, + minw = 3.1, + colour = G.C.BLACK, + emboss = 0.05, + }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm", maxw = 3 }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("ph_blind_score_at_least"), + scale = 0.3, + colour = disabled and G.C.UI.TEXT_INACTIVE or G.C.WHITE, + shadow = not disabled, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { align = "cm", minh = 0.6 }, + nodes = { + { + n = G.UIT.O, + config = { + w = 0.5, + h = 0.5, + colour = G.C.BLUE, + object = stake_sprite, + hover = true, + can_collide = false, + }, + }, + { n = G.UIT.B, config = { h = 0.1, w = 0.1 } }, + { + n = G.UIT.T, + config = { + text = number_format(blind_amt), + scale = score_number_scale(0.9, blind_amt), + colour = disabled and G.C.UI.TEXT_INACTIVE or G.C.RED, + shadow = not disabled, + }, + }, + }, + }, + _reward + and { + n = G.UIT.R, + config = { align = "cm" }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("ph_blind_reward"), + scale = 0.35, + colour = disabled and G.C.UI.TEXT_INACTIVE + or G.C.WHITE, + shadow = not disabled, + }, + }, + { + n = G.UIT.T, + config = { + text = string.rep( + ---@diagnostic disable-next-line: param-type-mismatch + localize("$"), + blind_choice.config.dollars + ) .. "+", + scale = 0.35, + colour = disabled and G.C.UI.TEXT_INACTIVE + or G.C.MONEY, + shadow = not disabled, + }, + }, + }, + } + or nil, + }, + }, + }, + }, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { id = "blind_extras", align = "cm" }, + nodes = { + extras, + }, + }, + }, + } + return t + else + return create_UIBox_blind_choice_ref(type, run_info) + end +end diff --git a/ui/game/blind_hud.lua b/ui/game/blind_hud.lua new file mode 100644 index 000000000..e0710a8a3 --- /dev/null +++ b/ui/game/blind_hud.lua @@ -0,0 +1,231 @@ +function MP.UI.update_blind_HUD(blind, reset, silent) + if MP.is_mp_or_ghost() then + -- Prepare blind name + local blind_name_string + if MP.GHOST.is_active() then + blind_name_string = MP.GHOST.get_blind_name_ui() + else + blind_name_string = { + { + ref_table = MP.LOBBY.is_host and MP.LOBBY.guest or MP.LOBBY.host, + ref_value = "username", + }, + } + end + -- Setup blind name display + local name_element = G.HUD_blind:get_UIE_by_ID("HUD_blind_name") + name_element.config.object.config.string = { + { + ref_table = MP.LOBBY.is_host and MP.LOBBY.guest or MP.LOBBY.host, + ref_value = "username", + }, + } + name_element.config.object.config.old_maxw = name_element.config.object.config.maxw + name_element.config.object.config.mp_maxw = true + name_element.config.object.config.maxw = 4.5 + name_element.config.object.scale = name_element.config.object.config.scale + name_element.config.object:update_text(true) + if name_element.config.object.config.maxw then + name_element.config.object.scale = name_element.config.object.scale * math.min(1, name_element.config.object.config.maxw/name_element.config.object.config.W) + end + name_element.config.object:update_text(true) + name_element.states.visible = false + -- Setup enemy score text + G.HUD_blind:get_UIE_by_ID("HUD_blind_count").config.ref_table = MP.GAME.enemy + G.HUD_blind:get_UIE_by_ID("HUD_blind_count").config.ref_value = "score_text" + G.HUD_blind:get_UIE_by_ID("HUD_blind_count").config.func = "multiplayer_blind_chip_UI_scale" + -- Setup labels + -- Casual balala UI experience right here + G.HUD_blind:get_UIE_by_ID("HUD_blind").children[2].children[2].children[2].children[1].children[1].config.text = + localize("k_enemy_score") + G.HUD_blind:get_UIE_by_ID("HUD_blind").children[2].children[2].children[2].children[3].children[1].config.text = + localize("k_enemy_hands") + -- Setup enemy hands + G.HUD_blind:get_UIE_by_ID("dollars_to_be_earned").parent.parent.states.visible = false + G.HUD_blind:get_UIE_by_ID("dollars_to_be_earned").config.object.config.string = + { { ref_table = MP.GAME.enemy, ref_value = "hands_text" } } + G.HUD_blind:get_UIE_by_ID("dollars_to_be_earned").config.object:update_text() + + G.HUD_blind.alignment.offset.y = 0 + G.E_MANAGER:add_event(Event({ + trigger = 'after', + delay = 0.15, + blockable = false, + func = (function() + local self = G.GAME.blind + + if self.config.blind.key == "bl_mp_nemesis" then + -- Setup blind atlas and pos + self.children.animatedSprite.atlas = G.ANIMATION_ATLAS["mp_player_blind_col"] + local nemesis_blind_col = MP.UTILS.get_nemesis_key() + self.children.animatedSprite:set_sprite_pos(G.P_BLINDS[nemesis_blind_col].pos) + end + + G.HUD_blind:get_UIE_by_ID("HUD_blind_name").states.visible = true + G.HUD_blind:get_UIE_by_ID("dollars_to_be_earned").parent.parent.states.visible = true + G.HUD_blind:get_UIE_by_ID("dollars_to_be_earned").config.object:pop_in(0) + G.HUD_blind:get_UIE_by_ID("HUD_blind_name").config.object:pop_in(0) + G.HUD_blind:get_UIE_by_ID("HUD_blind_count"):juice_up() + self.dissolve = 0 + self.blind_set = true + G.ROOM.jiggle = G.ROOM.jiggle + 3 + if not reset and not silent then + self:juice_up() + if blind then play_sound('chips1', math.random()*0.1 + 0.55, 0.42);play_sound('gold_seal', math.random()*0.1 + 1.85, 0.26)--play_sound('cancel') + end + end + return true + end) + })) + end +end + +function MP.UI.reset_blind_HUD() + if MP.is_mp_or_ghost() then + local name_element = G.HUD_blind:get_UIE_by_ID("HUD_blind_name") + name_element.config.object.config.string = + { { ref_table = G.GAME.blind, ref_value = "loc_name" } } + if name_element.config.object.config.mp_maxw then + name_element.config.object.config.maxw = name_element.config.object.config.old_maxw + name_element.config.object.config.old_maxw = nil + name_element.config.object.scale = name_element.config.object.config.scale + name_element.config.object:update_text(true) + if name_element.config.object.config.maxw then + name_element.config.object.scale = name_element.config.object.scale * math.min(1, name_element.config.object.config.maxw/name_element.config.object.config.W) + end + name_element.config.object:update_text(true) + end + G.HUD_blind:get_UIE_by_ID("HUD_blind_count").config.ref_table = G.GAME.blind + G.HUD_blind:get_UIE_by_ID("HUD_blind_count").config.ref_value = "chip_text" + G.HUD_blind:get_UIE_by_ID("HUD_blind").children[2].children[2].children[2].children[1].children[1].config.text = + localize("ph_blind_score_at_least") + G.HUD_blind:get_UIE_by_ID("HUD_blind").children[2].children[2].children[2].children[3].children[1].config.text = + localize("ph_blind_reward") + G.HUD_blind:get_UIE_by_ID("dollars_to_be_earned").config.object.config.string = + { { ref_table = G.GAME.current_round, ref_value = "dollars_to_be_earned" } } + G.HUD_blind:get_UIE_by_ID("dollars_to_be_earned").config.object:update_text() + end +end + +-- Contains function overrides (monkey-patches) for blind-related functionality +-- Overrides functions like get_blind_main_colour, Blind:change_colour, Blind:set_blind, etc. + +local get_blind_main_colourref = get_blind_main_colour +function get_blind_main_colour(type) -- handles ui colour stuff + local nemesis = G.GAME.round_resets.blind_choices[type] == "bl_mp_nemesis" or type == "bl_mp_nemesis" + if nemesis then type = MP.UTILS.get_nemesis_key() end + return get_blind_main_colourref(type) +end + +local blind_change_colourref = Blind.change_colour +function Blind:change_colour(blind_col) -- ensures that small/big blinds have proper colouration + local small = false + if self.config.blind.key == "bl_mp_nemesis" then + local blind_key = MP.UTILS.get_nemesis_key() + if blind_key == "bl_small" or blind_key == "bl_big" then small = true end + end + local boss = self.boss + if small then self.boss = false end + blind_change_colourref(self, blind_col) + self.boss = boss +end + +local blind_set_blindref = Blind.set_blind +function Blind:set_blind(blind, reset, silent) -- hacking in proper spirals, far from good but whatever + blind_set_blindref(self, blind, reset, silent) + if (blind and blind.key == "bl_mp_nemesis") or (self and self.name and self.name == "bl_mp_nemesis") then -- this shouldn't break and this fix shouldn't work + local boss = false + local showdown = false + local blind_key = MP.UTILS.get_nemesis_key() + if G.P_BLINDS[blind_key].boss then + boss = true + if G.P_BLINDS[blind_key].boss.showdown then + showdown = true + end + end + G.ARGS.spin.real = (G.SETTINGS.reduced_motion and 0 or 1) * (boss and (showdown and 0.5 or 0.25) or 0) + end +end + +local ease_background_colour_blindref = ease_background_colour_blind +function ease_background_colour_blind(state, blind_override) -- handles background + local blindname = ( + (blind_override or (G.GAME.blind and G.GAME.blind.name ~= "" and G.GAME.blind.name)) or "Small Blind" + ) + local blindname = (blindname == "" and "Small Blind" or blindname) + if blindname == "bl_mp_nemesis" then + blind_override = MP.UTILS.get_nemesis_key() + for k, v in pairs(G.P_BLINDS) do + if blind_override == k then blind_override = v.name end + end + end + return ease_background_colour_blindref(state, blind_override) +end + +local add_round_eval_rowref = add_round_eval_row +function add_round_eval_row(config) -- if i could post a skull emoji i would, wtf is this (cashout screen) + if config.name == "blind1" and G.GAME.blind.config.blind.key == "bl_mp_nemesis" then + G.GAME.blind.chip_text = MP.INSANE_INT.to_string(MP.GAME.enemy.score) + + G.P_BLINDS["bl_mp_nemesis"].atlas = "mp_player_blind_col" + G.GAME.blind.pos = G.P_BLINDS[MP.UTILS.get_nemesis_key()].pos -- this one is getting reset so no need to bother + add_round_eval_rowref(config) + G.E_MANAGER:add_event(Event({ + trigger = "before", + delay = 0.0, + func = function() + G.P_BLINDS["bl_mp_nemesis"].atlas = "mp_player_blind_chip" -- lmao + return true + end, + })) + else + add_round_eval_rowref(config) + end +end + +local blind_defeat_ref = Blind.defeat +function Blind:defeat(silent) + blind_defeat_ref(self, silent) + if MP.is_mp_or_ghost() and MP.UI.reset_blind_HUD then MP.UI.reset_blind_HUD() end +end + +local blind_disable_ref = Blind.disable +function Blind:disable() + if MP.is_pvp_boss() and not (G.GAME.blind and G.GAME.blind.name == "Verdant Leaf") then -- hackfix to make verdant work properly + return + end + blind_disable_ref(self) +end + +G.FUNCS.multiplayer_blind_chip_UI_scale = function(e) + MP.GAME.enemy.hands_text = tostring(MP.GAME.enemy.hands) + + -- Hide the opponent's score until we have played a hand this PvP blind, so + -- a player can't watch the enemy score before committing their own hand. + -- (The server also withholds the score, this is the matching display.) + -- Gated by the hide_score_until_played lobby option (on by default only on + -- standard-layer rulesets; host-toggleable in non-forcing lobbies). + if + MP.LOBBY.config.hide_score_until_played + and MP.is_pvp_boss() + and G.GAME.current_round + and G.GAME.current_round.hands_played == 0 + then + MP.GAME.enemy.score_text = "???" + return + end + local new_score_text = MP.INSANE_INT.to_string(MP.GAME.enemy.score) + if G.GAME.blind and MP.GAME.enemy.score and MP.GAME.enemy.score_text ~= new_score_text then + if not MP.INSANE_INT.greater_than(MP.GAME.enemy.score, MP.INSANE_INT.create(0, G.E_SWITCH_POINT, 0)) then + e.config.scale = scale_number(MP.GAME.enemy.score.coeffiocient, 0.7, 100000) + end + MP.GAME.enemy.score_text = new_score_text + end +end + +function MP.UI.juice_up_pvp_hud() + if MP.is_pvp_boss() then + G.HUD_blind:get_UIE_by_ID("HUD_blind_count"):juice_up() + G.HUD_blind:get_UIE_by_ID("dollars_to_be_earned"):juice_up() + end +end diff --git a/ui/game/blind_raiser.lua b/ui/game/blind_raiser.lua new file mode 100644 index 000000000..da7afa175 --- /dev/null +++ b/ui/game/blind_raiser.lua @@ -0,0 +1,961 @@ +------------------------------------------------------------------- +-- EXPERIMENTAL (BLIND RAISER) +-- +-- Ports the Blind Raiser feature from Handsome Devils into a +-- Multiplayer ruleset. While the ruleset is active, the current +-- Small or Big Blind may be upgraded into a random non-Showdown +-- Boss Blind. The displayed Skip Tag is granted immediately, but +-- the Blind slot itself is not skipped. +-- +-- This implementation deliberately keeps its boss-use bookkeeping +-- separate from vanilla's G.GAME.bosses_used. A player choosing to +-- upgrade a Blind therefore does not alter future normal Boss rolls, +-- preserving Multiplayer's shared-seed behaviour between opponents +-- who make different Blind Raiser choices. +------------------------------------------------------------------- + +MP.BLIND_RAISER = MP.BLIND_RAISER or {} +local BR = MP.BLIND_RAISER + +local RULESET_KEY = "ruleset_mp_experimental_blind_raiser" + +local function blind_raiser_active() + return MP + and MP.get_active_ruleset + and MP.get_active_ruleset() == RULESET_KEY +end + +BR.is_active = blind_raiser_active + +-- Lovely progression patches use the physical Blind slot while Blind Raiser +-- is active, but preserve vanilla's original condition in every other ruleset. +function BR.slot_matches(slot, vanilla_result) + if blind_raiser_active() then + return G and G.GAME and G.GAME.blind_on_deck == slot + end + return vanilla_result +end + +local function current_ante() + return G + and G.GAME + and G.GAME.round_resets + and G.GAME.round_resets.ante + or 0 +end + +-- blind_ante is the Ante attached to the physical Blind-select row. It is the +-- authoritative value for Blind Raiser records because a replacement Boss +-- definition must never make a Small/Big slot inherit Boss Ante progression. +local function current_slot_ante() + local round_resets = G and G.GAME and G.GAME.round_resets + return tonumber(round_resets and round_resets.blind_ante) + or tonumber(round_resets and round_resets.ante) + or 0 +end + +local function upgrade_key(blind_choice) + return tostring(current_slot_ante()) .. ":" .. tostring(blind_choice) +end + +local function upgraded_blinds() + if not (G and G.GAME) then return {} end + G.GAME.mp_blind_raiser_upgraded = G.GAME.mp_blind_raiser_upgraded or {} + return G.GAME.mp_blind_raiser_upgraded +end + +local function replacement_records() + if not (G and G.GAME) then return {} end + G.GAME.mp_blind_raiser_replacements = G.GAME.mp_blind_raiser_replacements or {} + return G.GAME.mp_blind_raiser_replacements +end + +local function raiser_bosses_used() + if not (G and G.GAME) then return {} end + G.GAME.mp_blind_raiser_bosses_used = G.GAME.mp_blind_raiser_bosses_used or {} + return G.GAME.mp_blind_raiser_bosses_used +end + +local function normalize_blind_choice(blind_choice) + if type(blind_choice) ~= "string" then return nil end + local normalized = blind_choice:lower() + if normalized == "small" then return "Small" end + if normalized == "big" then return "Big" end + if normalized == "boss" then return "Boss" end + return nil +end + +local function record_key(ante, blind_choice) + return tostring(ante) .. ":" .. tostring(blind_choice) +end + +local function blind_key_from_definition(blind) + if type(blind) ~= "table" then return nil end + return blind.key + or (blind.config and blind.config.key) + or (blind.config and blind.config.blind and blind.config.blind.key) +end + +local function current_choice_key(blind_choice) + return G + and G.GAME + and G.GAME.round_resets + and G.GAME.round_resets.blind_choices + and G.GAME.round_resets.blind_choices[blind_choice] + or nil +end + +local function replacement_record(blind_choice, ante, expected_boss) + blind_choice = normalize_blind_choice(blind_choice) + if blind_choice ~= "Small" and blind_choice ~= "Big" then return nil end + + local records = replacement_records() + local candidate_antes = {} + local seen_antes = {} + local function add_ante(value) + value = tonumber(value) + if value and not seen_antes[value] then + seen_antes[value] = true + candidate_antes[#candidate_antes + 1] = value + end + end + + add_ante(ante) + add_ante(G and G.GAME and G.GAME.round_resets and G.GAME.round_resets.blind_ante) + add_ante(current_ante()) + + local selected_boss = expected_boss or current_choice_key(blind_choice) + for _, candidate_ante in ipairs(candidate_antes) do + local record = records[record_key(candidate_ante, blind_choice)] + -- The physical slot + Ante is the primary identity. Do not reject its + -- record merely because blind_choices is between animation states; doing + -- so falls back to the replacement Boss multiplier in the select preview. + if type(record) == "table" then return record end + end + + -- Save migration and timing fallback: during select/start transitions, + -- round_resets.ante, blind_ante and blind_on_deck can briefly disagree. + -- Match the replacement Boss itself so the correct per-upgrade exponent is + -- still used rather than falling back to the Boss Blind's normal multiplier. + local best_record = nil + local best_ante = -math.huge + for key, record in pairs(records) do + if type(record) == "table" then + local key_ante, key_choice = key:match("^(-?%d+):([%a_]+)$") + local record_choice = normalize_blind_choice(record.blind_choice or key_choice) + local record_ante = tonumber(record.ante) or tonumber(key_ante) + if record_choice == blind_choice + and (not selected_boss or not record.boss or record.boss == selected_boss) + and record_ante + and record_ante >= best_ante + then + best_record = record + best_ante = record_ante + end + end + end + return best_record +end + +function BR.regular_score_for_slot(blind_choice, ante) + blind_choice = normalize_blind_choice(blind_choice) + if blind_choice ~= "Small" and blind_choice ~= "Big" then return nil end + if not (G and G.GAME and G.P_BLINDS and type(get_blind_amount) == "function") then return nil end + + local base_blind = G.P_BLINDS["bl_" .. blind_choice:lower()] + if not (base_blind and base_blind.mult) then return nil end + + local score_ante = tonumber(ante) or current_slot_ante() + local ante_scaling = G.GAME.starting_params and G.GAME.starting_params.ante_scaling or 1 + return get_blind_amount(score_ante) * base_blind.mult * ante_scaling +end + +function BR.upgrade_count() + return G and G.GAME + and math.max(0, tonumber(G.GAME.mp_blind_raiser_upgrade_count) or 0) + or 0 +end + +function BR.next_upgrade_score_for_slot(blind_choice, ante) + if not blind_raiser_active() then return nil end + blind_choice = normalize_blind_choice(blind_choice) + if blind_choice ~= "Small" and blind_choice ~= "Big" then return nil end + + local base_score = BR.regular_score_for_slot(blind_choice, ante or current_slot_ante()) + if not base_score then return nil end + return base_score * (2 ^ (BR.upgrade_count() + 1)) +end + +local function dictionary_text(key, vars, fallback) + local text = localize(key) + if type(text) == "table" then text = text[1] end + if type(text) ~= "string" or text == "" or text == key then text = fallback end + for i, value in ipairs(vars or {}) do + text = text:gsub("#" .. tostring(i) .. "#", tostring(value)) + end + return text +end + +function BR.upgrade_button_tooltip(blind_choice) + local upgrade_count = BR.upgrade_count() + local next_score = BR.next_upgrade_score_for_slot(blind_choice, current_slot_ante()) + local formatted_score = next_score and number_format(next_score) or "?" + + return { + title = dictionary_text("mp_blind_raiser_tooltip_title", nil, "Blind Raiser"), + text = { + dictionary_text( + "mp_blind_raiser_tooltip_upgrades", + { upgrade_count }, + "Blind upgrades this game: " .. tostring(upgrade_count) + ), + dictionary_text( + "mp_blind_raiser_tooltip_score", + { formatted_score }, + "Score if upgraded: " .. tostring(formatted_score) + ), + }, + } +end + +local function upgrade_index_for(blind_choice, ante, expected_boss) + local record = replacement_record(blind_choice, ante, expected_boss) + if type(record) ~= "table" then return nil, nil end + + local index = tonumber(record.upgrade_index) + if not index or index < 1 then + -- Migration for saves created before escalating score requirements were + -- added. Prefer the stored run-wide count, then fall back to the first + -- upgrade so old saves remain playable. + index = tonumber(G.GAME.mp_blind_raiser_upgrade_count) or 1 + record.upgrade_index = math.max(1, index) + end + return math.max(1, index), record +end + +local function score_from_record(blind_choice, ante, record, upgrade_index) + local base_score = tonumber(record and record.base_score) + if not base_score then + base_score = BR.regular_score_for_slot( + blind_choice, + (record and tonumber(record.ante)) or ante + ) + if record and base_score then record.base_score = base_score end + end + if not base_score then return nil end + + local multiplier = 2 ^ upgrade_index + if record then + record.score_multiplier = multiplier + record.score_chips = base_score * multiplier + end + return base_score * multiplier +end + +function BR.score_for_slot(blind_choice, vanilla_amount, ante, expected_boss) + if not blind_raiser_active() then return vanilla_amount end + blind_choice = normalize_blind_choice(blind_choice) + if blind_choice ~= "Small" and blind_choice ~= "Big" then return vanilla_amount end + + local upgrade_index, record = upgrade_index_for(blind_choice, ante, expected_boss) + if not upgrade_index then return vanilla_amount end + return score_from_record(blind_choice, ante, record, upgrade_index) or vanilla_amount +end + +-- Blind-select UI must use the score saved for the physical slot, never the +-- replacement Boss definition's mult. This direct path deliberately ignores +-- the transient blind_choices value while the old UIBox is being replaced. +function BR.preview_score_for_slot(blind_choice, vanilla_amount) + if not blind_raiser_active() then return vanilla_amount end + blind_choice = normalize_blind_choice(blind_choice) + if blind_choice ~= "Small" and blind_choice ~= "Big" then return vanilla_amount end + + local record = replacement_record(blind_choice, current_slot_ante()) + if type(record) ~= "table" then return vanilla_amount end + local index = math.max(1, tonumber(record.upgrade_index) or 1) + return score_from_record(blind_choice, record.ante or current_slot_ante(), record, index) or vanilla_amount +end + +function BR.score_for_blind(blind, preferred_choice, vanilla_amount, ante) + if not blind_raiser_active() then return vanilla_amount end + local blind_key = blind_key_from_definition(blind) + local blind_choice = normalize_blind_choice(preferred_choice) + + -- The replacement Boss key is the strongest identity while Blind:set_blind + -- is running because blind_on_deck can briefly point at the next slot. If + -- both rows somehow share the same Boss, retain the preferred physical slot. + local matching_choices = {} + if blind_key then + for _, candidate in ipairs({ "Small", "Big" }) do + if current_choice_key(candidate) == blind_key + and replacement_record(candidate, ante, blind_key) + then + matching_choices[#matching_choices + 1] = candidate + end + end + end + if #matching_choices == 1 then + blind_choice = matching_choices[1] + elseif not (blind_choice and replacement_record(blind_choice, ante)) and #matching_choices > 0 then + blind_choice = matching_choices[1] + end + + return BR.score_for_slot(blind_choice, vanilla_amount, ante, blind_key) +end + +local function parse_upgrade_key(key) + if type(key) ~= "string" then return nil, nil end + local ante, blind_choice = key:match("^(-?%d+):([%a_]+)$") + return tonumber(ante), blind_choice +end + +local function blind_state(blind_choice) + return G + and G.GAME + and G.GAME.round_resets + and G.GAME.round_resets.blind_states + and G.GAME.round_resets.blind_states[blind_choice] +end + +local function blind_is_finished(blind_choice) + local state = blind_state(blind_choice) + return state == "Defeated" or state == "Skipped" +end + +local function blind_was_upgraded(blind_choice) + return upgraded_blinds()[upgrade_key(blind_choice)] == true +end + +local function blind_is_current(blind_choice) + if not blind_raiser_active() or blind_is_finished(blind_choice) then return false end + + -- Steamodded beta-1620a advances the selectable slot by changing its + -- state to Select. blind_on_deck can lag during the Skip animation. + local state = blind_state(blind_choice) + if state == "Select" then return true end + + -- Defensive fallback for modded Blind-select screens that initialize the + -- state table after constructing the UI. + return state == nil + and G + and G.GAME + and G.GAME.blind_on_deck == blind_choice +end + +local function can_upgrade(blind_choice) + return (blind_choice == "Small" or blind_choice == "Big") + and blind_is_current(blind_choice) + and not blind_was_upgraded(blind_choice) +end + +------------------------------------------------------------------- +-- Deterministic non-Showdown Boss selection +------------------------------------------------------------------- + +local function blind_is_in_pool(blind) + if type(blind.in_pool) ~= "function" then return true end + local ok, result = pcall(blind.in_pool, blind) + return ok and result ~= false +end + +local function boss_is_valid(key) + local blind = key and G.P_BLINDS and G.P_BLINDS[key] + if key == "bl_mp_nemesis" then return false end + if not (blind and blind.boss) then return false end + if blind.boss.showdown then return false end + if G.GAME.banned_keys and G.GAME.banned_keys[key] then return false end + return true +end + +local function choose_with_vanilla_boss_picker() + if type(get_new_boss) ~= "function" then return nil end + + -- Let vanilla/SMODS decide ante eligibility and compatibility-pool rules, + -- but evaluate the roll against a temporary usage table. This retains the + -- exact normal Boss-selection semantics without allowing an optional Blind + -- Raiser choice to alter future shared-seed Boss rolls. + local original_uses = G.GAME.bosses_used + local working_uses = {} + for key, uses in pairs(original_uses or {}) do + working_uses[key] = uses + end + for key, uses in pairs(raiser_bosses_used()) do + working_uses[key] = (working_uses[key] or 0) + uses + end + G.GAME.bosses_used = working_uses + + -- get_new_boss advances the keyed pseudorandom stream it uses. Isolate that + -- state too, otherwise one player pressing Upgrade Blind would change later + -- normal Boss rolls while an opponent who did not upgrade keeps the original + -- stream. The temporary table may be freely mutated by vanilla or SMODS. + local original_pseudorandom = G.GAME.pseudorandom + local working_pseudorandom = {} + for key, value in pairs(original_pseudorandom or {}) do + if type(value) == "table" then + local nested = {} + for nested_key, nested_value in pairs(value) do + nested[nested_key] = nested_value + end + working_pseudorandom[key] = nested + else + working_pseudorandom[key] = value + end + end + G.GAME.pseudorandom = working_pseudorandom + + -- On a Showdown Ante, vanilla would intentionally return a final Boss. + -- Temporarily move win_ante beyond the current Ante so an upgraded Small + -- or Big slot always receives an ordinary, non-Showdown Boss. + local original_win_ante = G.GAME.win_ante + if type(original_win_ante) == "number" then + G.GAME.win_ante = math.max(original_win_ante + 1, current_ante() + 1) + end + + local ok, boss = pcall(get_new_boss) + G.GAME.win_ante = original_win_ante + G.GAME.bosses_used = original_uses + G.GAME.pseudorandom = original_pseudorandom + + if not ok then + if sendWarnMessage then + sendWarnMessage("Blind Raiser Boss selection failed: " .. tostring(boss), "MULTIPLAYER") + end + return nil + end + return boss_is_valid(boss) and boss or nil +end + +local function choose_fallback_boss(blind_choice) + local candidates = {} + for key, blind in pairs(G.P_BLINDS or {}) do + if boss_is_valid(key) and blind_is_in_pool(blind) then + candidates[#candidates + 1] = key + end + end + table.sort(candidates) + if #candidates == 0 then return nil end + + local base_uses = G.GAME.bosses_used or {} + local extra_uses = raiser_bosses_used() + local minimum_uses = nil + for _, key in ipairs(candidates) do + local uses = (base_uses[key] or 0) + (extra_uses[key] or 0) + if minimum_uses == nil or uses < minimum_uses then minimum_uses = uses end + end + + local filtered = {} + for _, key in ipairs(candidates) do + local uses = (base_uses[key] or 0) + (extra_uses[key] or 0) + if uses == minimum_uses then filtered[#filtered + 1] = key end + end + + return pseudorandom_element( + filtered, + pseudoseed("mp_blind_raiser_" .. tostring(current_ante()) .. "_" .. tostring(blind_choice)) + ) +end + +function BR.choose_boss(blind_choice) + if not (G and G.GAME and G.P_BLINDS) then return nil end + return choose_with_vanilla_boss_picker() or choose_fallback_boss(blind_choice) +end + +------------------------------------------------------------------- +-- Ante transition cleanup +------------------------------------------------------------------- + +function BR.restore_stale_slots() + if not blind_raiser_active() then return end + if not (G and G.GAME and G.GAME.round_resets and G.GAME.round_resets.blind_choices) then return end + + local ante = current_ante() + local choices = G.GAME.round_resets.blind_choices + local upgrades = upgraded_blinds() + local records = replacement_records() + + local stale_record_keys = {} + for key, record in pairs(records) do + local key_ante, key_choice = parse_upgrade_key(key) + local blind_choice = type(record) == "table" and record.blind_choice or key_choice + local record_ante = type(record) == "table" and tonumber(record.ante) or key_ante + + if record_ante and record_ante ~= ante + and (blind_choice == "Small" or blind_choice == "Big") + then + if type(record) == "table" and choices[blind_choice] == record.boss then + choices[blind_choice] = record.original or ("bl_" .. blind_choice:lower()) + end + stale_record_keys[#stale_record_keys + 1] = key + end + end + for _, key in ipairs(stale_record_keys) do + records[key] = nil + end + + -- Migration/failsafe for saves from a partially applied build: a stale + -- per-Ante lock on a Boss-filled Small/Big slot restores the vanilla slot. + for key, was_upgraded in pairs(upgrades) do + local key_ante, blind_choice = parse_upgrade_key(key) + if was_upgraded and key_ante and key_ante ~= ante + and (blind_choice == "Small" or blind_choice == "Big") + then + local choice = choices[blind_choice] + local blind = choice and G.P_BLINDS and G.P_BLINDS[choice] + if blind and blind.boss then + choices[blind_choice] = "bl_" .. blind_choice:lower() + end + end + end + + local stale_upgrade_keys = {} + for key in pairs(upgrades) do + local key_ante = parse_upgrade_key(key) + if key_ante and key_ante ~= ante then stale_upgrade_keys[#stale_upgrade_keys + 1] = key end + end + for _, key in ipairs(stale_upgrade_keys) do + upgrades[key] = nil + end +end + +function BR.skip_is_locked(blind_choice) + return blind_raiser_active() + and blind_choice ~= nil + and blind_was_upgraded(blind_choice) +end + +-- This wrapper is loaded before ui/game/round.lua. Multiplayer's later +-- reset_blinds wrapper therefore calls through this cleanup before applying +-- its gamemode-specific Blind replacements. +if type(reset_blinds) == "function" then + local reset_blinds_ref = reset_blinds + function reset_blinds(...) + BR.restore_stale_slots() + return reset_blinds_ref(...) + end +end + +if type(create_UIBox_blind_select) == "function" then + local create_UIBox_blind_select_ref = create_UIBox_blind_select + function create_UIBox_blind_select(...) + BR.restore_stale_slots() + return create_UIBox_blind_select_ref(...) + end +end + +------------------------------------------------------------------- +-- Blind tag UI +------------------------------------------------------------------- + +local function set_runtime_button(button, active, callback) + if not (button and button.config) then return end + + button.config.button = active and callback or nil + button.config.hover = active + button.config.colour = active and G.C.RED or G.C.UI.BACKGROUND_INACTIVE + + -- UIElement:set_values only enables collision/click states when a button + -- exists during construction. Future Blind actions are initially inactive, + -- so synchronize those runtime states as the current slot advances. + if button.states then + if button.states.collide then button.states.collide.can = active end + if button.states.click then button.states.click.can = active end + if button.states.hover then button.states.hover.can = active end + end + + local label = button.children and button.children[1] + if label and label.config then + label.config.colour = active and G.C.UI.TEXT_LIGHT or G.C.UI.TEXT_INACTIVE + end +end + +local function ui_root_candidates(e, blind_choice) + local roots = {} + + if e and e.UIBox then roots[#roots + 1] = e.UIBox end + + local blind_option = G + and G.blind_select_opts + and blind_choice + and G.blind_select_opts[blind_choice:lower()] + + if blind_option then + roots[#roots + 1] = blind_option + if blind_option.parent then + roots[#roots + 1] = blind_option.parent + if blind_option.parent.config and blind_option.parent.config.object then + roots[#roots + 1] = blind_option.parent.config.object + end + end + end + + return roots +end + +local function get_runtime_element(e, blind_choice, id) + for _, root in ipairs(ui_root_candidates(e, blind_choice)) do + if root and root.get_UIE_by_ID then + local element = root:get_UIE_by_ID(id) + if element then return element end + end + end + return nil +end + +function BR.sync_tag_ui(e) + if not (blind_raiser_active() and e and e.config) then return end + + local blind_choice = e.config.id + if not blind_choice then return end + + local upgraded = blind_was_upgraded(blind_choice) + local current = blind_is_current(blind_choice) + + local upgrade_button = get_runtime_element( + e, + blind_choice, + "mp_blind_raiser_upgrade_button_" .. blind_choice + ) + set_runtime_button( + upgrade_button, + current and not upgraded, + "mp_blind_raiser_upgrade" + ) + + local skip_button = get_runtime_element( + e, + blind_choice, + "mp_blind_raiser_skip_button_" .. blind_choice + ) + set_runtime_button(skip_button, current and not upgraded, "skip_blind") +end + +G.FUNCS.mp_blind_raiser_update_skip_button = function(e) + if not (e and e.config) then return end + + local blind_choice = e.config.mp_blind_raiser_choice + local active = blind_choice + and blind_is_current(blind_choice) + and not blind_was_upgraded(blind_choice) + set_runtime_button(e, active, "skip_blind") + if G.FUNCS.hover_tag_proxy then G.FUNCS.hover_tag_proxy(e) end +end + +G.FUNCS.mp_blind_raiser_update_upgrade_button = function(e) + if not (e and e.config) then return end + + local blind_choice = e.config.mp_blind_raiser_choice + set_runtime_button(e, blind_choice and can_upgrade(blind_choice), "mp_blind_raiser_upgrade") + -- Keep the tooltip live so an untouched Big Blind button immediately reflects + -- an upgrade made to the Small Blind without rebuilding the whole screen. + e.config.tooltip = BR.upgrade_button_tooltip(blind_choice) +end + +local create_UIBox_blind_tag_ref = create_UIBox_blind_tag + +function create_UIBox_blind_tag(blind_choice, run_info) + if run_info or not blind_raiser_active() then + return create_UIBox_blind_tag_ref(blind_choice, run_info) + end + + G.GAME.round_resets.blind_tags = G.GAME.round_resets.blind_tags or {} + local tag_key = G.GAME.round_resets.blind_tags[blind_choice] + if not tag_key then return create_UIBox_blind_tag_ref(blind_choice, run_info) end + + local reward_tag = Tag(tag_key, nil, blind_choice) + local tag_ui, tag_sprite = reward_tag:generate_UI() + + if tag_sprite and tag_sprite.states and tag_sprite.states.collide then + tag_sprite.states.collide.can = false + end + + local upgrade_active = can_upgrade(blind_choice) + local skip_active = blind_is_current(blind_choice) and not blind_was_upgraded(blind_choice) + + -- Preserve the vanilla/BlindRaiser child order. beta-1620a's Blind-select + -- callback accesses the tag description and Skip button by fixed index. + return { + n = G.UIT.R, + config = { + id = "tag_container", + ref_table = reward_tag, + align = "tm", + }, + nodes = { + { + n = G.UIT.R, + config = { align = "tm", minh = 0.65 }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("k_or"), + scale = 0.55, + colour = G.C.WHITE, + shadow = true, + }, + }, + }, + }, + { + n = G.UIT.C, + config = { + id = "tag_" .. blind_choice, + align = "cm", + r = 0.1, + padding = 0.1, + minw = 2.2, + can_collide = true, + ref_table = tag_sprite, + }, + nodes = { + { + n = G.UIT.R, + config = { + id = "tag_desc", + align = "cm", + minh = 1, + }, + nodes = { tag_ui }, + }, + { + n = G.UIT.R, + config = { + id = "mp_blind_raiser_skip_button_" .. blind_choice, + align = "cm", + colour = skip_active and G.C.RED or G.C.UI.BACKGROUND_INACTIVE, + minh = 0.6, + minw = 2, + maxw = 2, + padding = 0.07, + r = 0.1, + shadow = true, + hover = skip_active, + one_press = true, + button = skip_active and "skip_blind" or nil, + func = "mp_blind_raiser_update_skip_button", + insta_func = true, + ref_table = reward_tag, + mp_blind_raiser_choice = blind_choice, + }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("b_skip_blind"), + scale = 0.4, + colour = skip_active and G.C.UI.TEXT_LIGHT or G.C.UI.TEXT_INACTIVE, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { + id = "mp_blind_raiser_upgrade_button_" .. blind_choice, + align = "cm", + colour = upgrade_active and G.C.RED or G.C.UI.BACKGROUND_INACTIVE, + minh = 0.6, + minw = 2, + maxw = 2, + padding = 0.07, + r = 0.1, + shadow = true, + hover = true, + one_press = true, + button = upgrade_active and "mp_blind_raiser_upgrade" or nil, + func = "mp_blind_raiser_update_upgrade_button", + insta_func = true, + ref_table = reward_tag, + mp_blind_raiser_choice = blind_choice, + tooltip = BR.upgrade_button_tooltip(blind_choice), + }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("mp_upgrade_blind"), + scale = 0.4, + colour = upgrade_active and G.C.UI.TEXT_LIGHT + or G.C.UI.TEXT_INACTIVE, + }, + }, + }, + }, + }, + }, + }, + } +end + +------------------------------------------------------------------- +-- Upgrade action +------------------------------------------------------------------- + +G.FUNCS.mp_blind_raiser_upgrade = function(e) + if not (e and e.config and G and G.GAME) then return end + + local blind_choice = e.config.mp_blind_raiser_choice + if not blind_choice or not can_upgrade(blind_choice) then return end + + local reward_tag = e.config.ref_table + local blind_option = G.blind_select_opts and G.blind_select_opts[blind_choice:lower()] + local parent = blind_option and blind_option.parent + if not (reward_tag and reward_tag.key) then return end + if not (blind_option and parent) then return end + + local boss = BR.choose_boss(blind_choice) + if not (boss and G.P_BLINDS and G.P_BLINDS[boss]) then return end + + local upgrade_ante = current_slot_ante() + local current_upgrade_key = record_key(upgrade_ante, blind_choice) + local upgrade_index = (tonumber(G.GAME.mp_blind_raiser_upgrade_count) or 0) + 1 + local base_score = BR.regular_score_for_slot(blind_choice, upgrade_ante) + replacement_records()[current_upgrade_key] = { + ante = upgrade_ante, + blind_choice = blind_choice, + original = G.GAME.round_resets.blind_choices[blind_choice], + boss = boss, + upgrade_index = upgrade_index, + base_score = base_score, + score_multiplier = 2 ^ upgrade_index, + score_chips = base_score and (base_score * (2 ^ upgrade_index)) or nil, + } + + stop_use() + + upgraded_blinds()[current_upgrade_key] = true + G.GAME.mp_blind_raiser_upgrade_count = upgrade_index + local uses = raiser_bosses_used() + uses[boss] = (uses[boss] or 0) + 1 + + -- Disable both actions before any animation/event begins. A Lovely guard + -- also rejects stale controller input inside vanilla's Skip callback. + set_runtime_button(e, false, "mp_blind_raiser_upgrade") + local skip_button = get_runtime_element( + e, + blind_choice, + "mp_blind_raiser_skip_button_" .. blind_choice + ) + set_runtime_button(skip_button, false, "skip_blind") + + local preexisting_tags = {} + for _, tag in ipairs(G.GAME.tags or {}) do + preexisting_tags[tag] = true + end + + add_tag(reward_tag) + + local granted_tags = {} + for _, tag in ipairs(G.GAME.tags or {}) do + if not preexisting_tags[tag] then granted_tags[#granted_tags + 1] = tag end + end + + G.E_MANAGER:add_event(Event({ + trigger = "immediate", + func = function() + play_sound("other1") + + if blind_option and blind_option.set_role and blind_option.alignment then + blind_option:set_role({ xy_bond = "Weak" }) + blind_option.alignment.offset.y = 20 + end + + return true + end, + })) + + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.3, + func = function() + local current_option = G.blind_select_opts + and G.blind_select_opts[blind_choice:lower()] + local current_parent = current_option and current_option.parent + + if not (current_option and current_parent) then + save_run() + return true + end + + G.GAME.round_resets.blind_choices[blind_choice] = boss + + current_option:remove() + G.blind_select_opts[blind_choice:lower()] = UIBox({ + T = { current_parent.T.x, 0, 0, 0 }, + definition = { + n = G.UIT.ROOT, + config = { align = "cm", colour = G.C.CLEAR }, + nodes = { + UIBox_dyn_container( + { create_UIBox_blind_choice(blind_choice) }, + false, + get_blind_main_colour(boss), + mix_colours(G.C.BLACK, get_blind_main_colour(boss), 0.8) + ), + }, + }, + config = { + align = "bmi", + offset = { x = 0, y = G.ROOM.T.y + 9 }, + major = current_parent, + xy_bond = "Weak", + }, + }) + + local new_option = G.blind_select_opts[blind_choice:lower()] + current_parent.config.object = new_option + current_parent.config.object:recalculate() + new_option.parent = current_parent + new_option.alignment.offset.y = 0 + + BR.sync_tag_ui({ + config = { id = blind_choice }, + UIBox = new_option, + }) + + if SMODS and SMODS.calculate_context then + SMODS.calculate_context({ + mp_blind_raiser_upgrade = true, + blind_type = blind_choice, + blind_key = boss, + }) + end + + for _, tag in ipairs(granted_tags) do + tag:apply_to_run({ type = "immediate" }) + end + for _, tag in ipairs(granted_tags) do + if tag:apply_to_run({ type = "new_blind_choice" }) then break end + end + + save_run() + return true + end, + })) +end + +------------------------------------------------------------------- +-- Rare Tag purchase penalty +------------------------------------------------------------------- + +if G.FUNCS and type(G.FUNCS.buy_from_shop) == "function" then + local buy_from_shop_ref = G.FUNCS.buy_from_shop + function G.FUNCS.buy_from_shop(e) + local card = e and e.config and e.config.ref_table + local zero_money = blind_raiser_active() + and card + and card.ability + and card.ability.mp_blind_raiser_zero_money_on_buy + + local ret = buy_from_shop_ref(e) + + if zero_money then + if card.ability then card.ability.mp_blind_raiser_zero_money_on_buy = nil end + local dollars = G and G.GAME and tonumber(G.GAME.dollars) or 0 + if dollars ~= 0 then ease_dollars(-dollars, true) end + end + + return ret + end +end + diff --git a/ui/game/confirmation.lua b/ui/game/confirmation.lua new file mode 100644 index 000000000..409cfad63 --- /dev/null +++ b/ui/game/confirmation.lua @@ -0,0 +1,39 @@ +function G.UIDEF.confirmation_dialog() + return create_UIBox_generic_options({ + back_func = "options", + contents = { + MP.UI.UTILS.create_row({ align = "cm", padding = 0 }, { + MP.UI.UTILS.create_row({ align = "cm", padding = 0.5 }, { + MP.UI.UTILS.create_text_node(localize("k_are_you_sure"), { + scale = 0.6, + colour = G.C.UI.TEXT_LIGHT, + }), + }), + UIBox_button({ + label = { localize("k_yes") }, + button = "confirmation_dialog_yes", + minw = 5, + }), + }), + }, + }) +end + +do + local confirm_selection_callback = nil + + function G.FUNCS.confirm_selection(callback) + confirm_selection_callback = callback + G.FUNCS.overlay_menu({ + definition = G.UIDEF.confirmation_dialog(), + }) + end + + function G.FUNCS.confirmation_dialog_yes() + G.FUNCS.exit_overlay_menu() + if confirm_selection_callback then + confirm_selection_callback() + confirm_selection_callback = nil + end + end +end diff --git a/ui/game/enemy_location.lua b/ui/game/enemy_location.lua new file mode 100644 index 000000000..12e375838 --- /dev/null +++ b/ui/game/enemy_location.lua @@ -0,0 +1,284 @@ +function MP.UI.enemy_location_blind_render() + local blind_key, blind_object = MP.GAME.enemy.location_blind, nil + if blind_key then blind_object = G.P_BLINDS[blind_key] end + + local blind_object_render + if blind_object then + blind_object_render = SMODS.create_sprite( + 0, + 0, + 0.4, + 0.4, + blind_object.atlas or "blind_chips", + blind_object.pos or G.P_BLINDS.bl_small.pos + ) + blind_object_render:define_draw_steps({ + { shader = "dissolve", shadow_height = 0.05 * 0.4 * 0.75 }, + { shader = "dissolve" }, + }) + elseif blind_key and blind_key ~= "" then + blind_object_render = DynaText({ + string = { blind_key or "Unknown" }, + colours = { G.C.WHITE }, + scale = 0.35, + shadow = true, + }) + else + blind_object_render = Moveable() + end + + return blind_object_render +end + +function MP.UI.round_score_definition() + return { + n = G.UIT.C, + config = { align = "cm", padding = 0.1, func = "mp_setup_hover_enemy_location_display" }, + nodes = { + { + n = G.UIT.C, + config = { align = "cm", minw = 1.3 }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm", padding = 0, maxw = 1.3 }, + nodes = { + { + n = G.UIT.T, + config = { + text = G.SETTINGS.language == "vi" and localize("k_lower_score") + or localize("k_round"), + scale = 0.42, + colour = G.C.UI.TEXT_LIGHT, + shadow = true, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { align = "cm", padding = 0, maxw = 1.3 }, + nodes = { + { + n = G.UIT.T, + config = { + text = G.SETTINGS.language == "vi" and localize("k_round") + or localize("k_lower_score"), + scale = 0.42, + colour = G.C.UI.TEXT_LIGHT, + shadow = true, + }, + }, + }, + }, + }, + }, + { + n = G.UIT.C, + config = { align = "cm", minw = 3.3, minh = 0.7, r = 0.1, colour = G.C.DYN_UI.BOSS_DARK }, + nodes = { + { + n = G.UIT.O, + config = { + w = 0.5, + h = 0.5, + object = get_stake_sprite(G.GAME.stake or 1, 0.5), + hover = true, + can_collide = false, + }, + }, + { n = G.UIT.B, config = { w = 0.1, h = 0.1 } }, + { + n = G.UIT.T, + config = { + ref_table = G.GAME, + ref_value = "chips_text", + lang = G.LANGUAGES["en-us"], + scale = 0.85, + colour = G.C.WHITE, + id = "chip_UI_count", + func = "chip_UI_set", + shadow = true, + }, + }, + }, + }, + }, + } +end +function MP.UI.enemy_location_definition() + return { + n = G.UIT.C, + config = { align = "cm", padding = 0.1 }, + nodes = { + { + n = G.UIT.O, + config = { + w = 0.5, + h = 0.5, + object = get_stake_sprite(G.GAME.stake or 1, 0.5), + hover = true, + can_collide = false, + }, + }, + { + n = G.UIT.C, + config = { align = "cm", minw = 1.2 }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm", padding = 0, maxw = 1.2 }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("ml_enemy_loc")[1], + scale = 0.42, + colour = G.C.UI.TEXT_LIGHT, + shadow = true, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { align = "cm", padding = 0, maxw = 1.2 }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("ml_enemy_loc")[2], + scale = 0.42, + colour = G.C.UI.TEXT_LIGHT, + shadow = true, + }, + }, + }, + }, + }, + }, + { + n = G.UIT.C, + config = { align = "cm", minw = 2.8, minh = 0.7, r = 0.1, colour = G.C.DYN_UI.BOSS_DARK }, + nodes = { + { + n = G.UIT.C, + config = { + maxw = 2.2, + align = "cm", + }, + nodes = { + { + n = G.UIT.T, + config = { + ref_table = MP.GAME.enemy, + ref_value = "location", + scale = 0.35, + colour = G.C.WHITE, + id = "chip_UI_count", + shadow = true, + maxw = 2.5, + }, + }, + }, + }, + { n = G.UIT.B, config = { w = 0.1, h = 0.1 } }, + { + n = G.UIT.O, + config = { + object = MP.UI.enemy_location_blind_render(), + id = "mp_enemy_location_render", + }, + }, + }, + }, + }, + } +end + +function MP.UI.show_enemy_location() + if not G.HUD then return end + local row_dollars_chips = G.HUD:get_UIE_by_ID("row_dollars_chips") + if row_dollars_chips then + row_dollars_chips.children[1]:remove() + row_dollars_chips.children[1] = nil + G.HUD:add_child(MP.UI.enemy_location_definition(), row_dollars_chips) + end +end +function MP.UI.hide_enemy_location() + if not G.HUD then return end + local row_dollars_chips = G.HUD:get_UIE_by_ID("row_dollars_chips") + if row_dollars_chips then + row_dollars_chips.children[1]:remove() + row_dollars_chips.children[1] = nil + G.HUD:add_child(MP.UI.round_score_definition(), row_dollars_chips) + end +end + +function MP.UI.update_enemy_location_render() + if not G.HUD then return end + local renderer = G.HUD:get_UIE_by_ID("mp_enemy_location_render") + if renderer then + local blind_object_render = MP.UI.enemy_location_blind_render() + renderer.config.object:remove() + renderer.config.object = blind_object_render + blind_object_render.parent = renderer + + renderer.UIBox:recalculate() + end + + local hover_renderer = G.mp_enemy_location_ui and G.mp_enemy_location_ui:get_UIE_by_ID("mp_enemy_location_render") + + if hover_renderer then + local blind_object_render = MP.UI.enemy_location_blind_render() + hover_renderer.config.object:remove() + hover_renderer.config.object = blind_object_render + blind_object_render.parent = hover_renderer + + hover_renderer.UIBox:recalculate() + end +end + +G.FUNCS.mp_setup_hover_enemy_location_display = function(e) + e.config.func = nil + e.states.collide.can = true + e.states.hover.can = true + + local old_hover = e.hover + function e:hover(...) + old_hover(self, ...) + if not G.mp_enemy_location_ui then + G.mp_enemy_location_ui = UIBox({ + definition = { + n = G.UIT.ROOT, + config = { colour = G.C.DYN_UI.BOSS_MAIN, emboss = 0.05, r = 0.25 }, + nodes = { + MP.UI.enemy_location_definition(), + }, + }, + config = { + align = "tmi", + offset = { x = 0, y = self.T.h + 0.15 }, + major = self, + instance_type = "CARD", + }, + }) + end + end + local old_stop_hover = e.stop_hover + function e:stop_hover(...) + old_stop_hover(self, ...) + if G.mp_enemy_location_ui then + G.mp_enemy_location_ui:remove() + G.mp_enemy_location_ui = nil + end + end + local old_remove = e.remove + function e:remove(...) + old_remove(self, ...) + if G.mp_enemy_location_ui then + G.mp_enemy_location_ui:remove() + G.mp_enemy_location_ui = nil + end + end +end diff --git a/ui/game/functions.lua b/ui/game/functions.lua new file mode 100644 index 000000000..eb9cad98a --- /dev/null +++ b/ui/game/functions.lua @@ -0,0 +1,535 @@ +-- Contains function overrides (monkey-patches) for G.FUNCS callbacks +-- Overrides button callback functions like can_play, can_open, select_blind, skip_blind, etc. + +G.FUNCS.pvp_ready_button = function(e) + if e.children[1].config.ref_table[e.children[1].config.ref_value] == localize("Select", "blind_states") then + e.config.button = "mp_toggle_ready" + e.config.one_press = false + e.children[1].config.ref_table = MP.GAME + e.children[1].config.ref_value = "ready_blind_text" + end + if e.config.button == "mp_toggle_ready" then e.config.colour = (MP.GAME.ready_blind and G.C.GREEN) or G.C.RED end +end + +function G.FUNCS.mp_toggle_ready(e) + sendTraceMessage("Toggling Ready", "MULTIPLAYER") + MP.GAME.ready_blind = not MP.GAME.ready_blind + MP.GAME.ready_blind_text = MP.GAME.ready_blind and localize("b_unready") or localize("b_ready") + MP.RLOG.record("ready_blind", MP.GAME.ready_blind and 1 or 0) + + MP.GAME.pvp_reached = true + + if MP.GAME.ready_blind then + MP.ACTIONS.set_location("loc_ready") + MP.ACTIONS.ready_blind(e) + else + MP.ACTIONS.set_location("loc_selecting") + MP.ACTIONS.pause_ante_timer() + MP.ACTIONS.unready_blind() + end +end + +local old_skip_blind = G.FUNCS.skip_blind +function G.FUNCS.skip_blind(...) + old_skip_blind(...) + MP.ACTIONS.update_location() +end + +local can_play_ref = G.FUNCS.can_play +G.FUNCS.can_play = function(e) + if G.GAME.current_round.hands_left <= 0 then + e.config.colour = G.C.UI.BACKGROUND_INACTIVE + e.config.button = nil + else + can_play_ref(e) + end +end + +local can_open_ref = G.FUNCS.can_open +G.FUNCS.can_open = function(e) + if MP.GAME.ready_blind then + e.config.colour = G.C.UI.BACKGROUND_INACTIVE + e.config.button = nil + return + end + can_open_ref(e) +end + +local select_blind_ref = G.FUNCS.select_blind +function G.FUNCS.select_blind(e) + MP.GAME.end_pvp = false + MP.GAME.prevent_eval = false + select_blind_ref(e) + if MP.is_mp_or_ghost() then + MP.GAME.ante_key = tostring(math.random()) + if not MP.GHOST.is_active() then + -- Carbon: log the freshly-rolled (non-deterministic) ante_key first so + -- a replay can restore it, then the blind selection itself. + MP.RLOG.record("set_ante_key", MP.GAME.ante_key) + MP.RLOG.record( + "select_blind", + 0, + string.format("action:selectBlind,blind:%s", tostring(e.config.ref_table.key or e.config.ref_table.name)) + ) + MP.ACTIONS.play_hand(0, G.GAME.round_resets.hands) + MP.ACTIONS.new_round() + MP.ACTIONS.set_location("loc_playing", (e.config.ref_table.key or e.config.ref_table.name)) + if MP.UI.hide_enemy_location then MP.UI.hide_enemy_location() end + end + end +end + +local skip_blind_ref = G.FUNCS.skip_blind +G.FUNCS.skip_blind = function(e) + skip_blind_ref(e) + if MP.LOBBY.code then + -- Old timer: add time from skipping to own timer when not timered and not timering + if + MP.LOBBY.config.timer + and not MP.GAME.timer_started + and not MP.GAME.nemesis_timer_started + and not MP.GAME.timer_consumed + and not MP.GAME.nemesis_timer_was_started + and not MP.is_any_layer_active({ "no_animation_timer", "pressure_timer" }) + and (MP.LOBBY.config.timer_increment_seconds or 0) > 0 + then + MP.UI.restore_timer(MP.LOBBY.config.timer_increment_seconds) + end + + MP.ACTIONS.skip(G.GAME.skips) + MP.RLOG.record("skip_blind", 0, "action:skipBlind") + + --Update the furthest blind + local temp_furthest_blind = 0 + if G.GAME.round_resets.blind_states.Big == "Skipped" then + temp_furthest_blind = G.GAME.round_resets.ante * 10 + 2 + elseif G.GAME.round_resets.blind_states.Small == "Skipped" then + temp_furthest_blind = G.GAME.round_resets.ante * 10 + 1 + end + + MP.GAME.pincher_index = MP.GAME.pincher_index + 1 + + MP.GAME.furthest_blind = (temp_furthest_blind > MP.GAME.furthest_blind) and temp_furthest_blind + or MP.GAME.furthest_blind + + MP.ACTIONS.set_furthest_blind(MP.GAME.furthest_blind) + end +end + +function G.FUNCS.toggle_players_jokers() + if not G.jokers or not MP.end_game_jokers then return end + + -- Avoid Jokers being removed from activating removal abilities (e.g. Negatives) + if MP.end_game_jokers.cards then + for _, card in pairs(MP.end_game_jokers.cards) do + card.added_to_deck = false + end + end + + if MP.end_game_jokers_text == localize("k_enemy_jokers") then + local your_jokers_save = copy_table(G.jokers:save()) + MP.end_game_jokers:load(your_jokers_save) + MP.end_game_jokers_text = localize("k_your_jokers") + else + if MP.end_game_jokers_received then + G.FUNCS.load_end_game_jokers() + else + if MP.end_game_jokers.cards then remove_all(MP.end_game_jokers.cards) end + MP.end_game_jokers.cards = {} + end + MP.end_game_jokers_text = localize("k_enemy_jokers") + end +end + +function G.FUNCS.view_nemesis_deck() + G.SETTINGS.paused = true + if G.deck_preview then + G.deck_preview:remove() + G.deck_preview = nil + end + G.FUNCS.overlay_menu({ + definition = G.UIDEF.create_UIBox_view_nemesis_deck(), + }) +end + +function G.FUNCS.open_kofi(e) + love.system.openURL("https://ko-fi.com/virtualized") +end + +function G.FUNCS:continue_in_singleplayer(e) + -- Leave multiplayer lobby and update UI + MP.LOBBY.code = nil + MP.ACTIONS.leave_lobby() + MP.UI.update_connection_status() + + -- Allow saving, save the run, and set up for continuation + G.F_NO_SAVING = false + G.SETTINGS.current_setup = "Continue" + G.FUNCS.wipe_on() + save_run() + G:delete_run() + + -- Load the saved game and start a new run in singleplayer + G.E_MANAGER:add_event(Event({ + trigger = "immediate", + no_delete = true, + func = function() + local profile = G.SETTINGS.profile + local save_path = profile .. "/save.jkr" + G.SAVED_GAME = get_compressed(save_path) + if G.SAVED_GAME ~= nil then G.SAVED_GAME = STR_UNPACK(G.SAVED_GAME) end + G:start_run({ savetext = G.SAVED_GAME }) + return true + end, + })) + G.FUNCS.wipe_off() +end + +function G.FUNCS.attention_text_realtime(args) + args = args or {} + args.text = args.text or "test" + args.scale = args.scale or 1 + args.colour = copy_table(args.colour or G.C.WHITE) + args.hold = (args.hold or 0) + args.pos = args.pos or { x = 0, y = 0 } + args.align = args.align or "cm" + args.emboss = args.emboss or nil + + args.fade = 1 + + if args.cover then + args.cover_colour = copy_table(args.cover_colour or G.C.RED) + args.cover_colour_l = copy_table(lighten(args.cover_colour, 0.2)) + args.cover_colour_d = copy_table(darken(args.cover_colour, 0.2)) + else + args.cover_colour = copy_table(G.C.CLEAR) + end + + args.uibox_config = { + align = args.align or "cm", + offset = args.offset or { x = 0, y = 0 }, + major = args.cover or args.major or nil, + } + + G.E_MANAGER:add_event(Event({ + trigger = "after", + timer = "REAL", + delay = 0, + blockable = false, + blocking = false, + func = function() + args.AT = UIBox({ + T = { args.pos.x, args.pos.y, 0, 0 }, + definition = { + n = G.UIT.ROOT, + config = { + align = args.cover_align or "cm", + minw = (args.cover and args.cover.T.w or 0.001) + (args.cover_padding or 0), + minh = (args.cover and args.cover.T.h or 0.001) + (args.cover_padding or 0), + padding = 0.03, + r = 0.1, + emboss = args.emboss, + colour = args.cover_colour, + }, + nodes = { + { + n = G.UIT.O, + config = { + draw_layer = 1, + object = DynaText({ + scale = args.scale, + string = args.text, + maxw = args.maxw, + colours = { args.colour }, + float = true, + shadow = true, + silent = not args.noisy, + args.scale, + pop_in = 0, + pop_in_rate = 6, + rotate = args.rotate or nil, + }), + }, + }, + }, + }, + config = args.uibox_config, + }) + args.AT.attention_text = true + + args.text = args.AT.UIRoot.children[1].config.object + args.text:pulse(0.5) + + if args.cover then + Particles(args.pos.x, args.pos.y, 0, 0, { + timer_type = "TOTAL", + timer = 0.01, + pulse_max = 15, + max = 0, + scale = 0.3, + vel_variation = 0.2, + padding = 0.1, + fill = true, + lifespan = 0.5, + speed = 2.5, + attach = args.AT.UIRoot, + colours = { args.cover_colour, args.cover_colour_l, args.cover_colour_d }, + }) + end + if args.backdrop_colour then + args.backdrop_colour = copy_table(args.backdrop_colour) + Particles(args.pos.x, args.pos.y, 0, 0, { + timer_type = "TOTAL", + timer = 5, + scale = 2.4 * (args.backdrop_scale or 1), + lifespan = 5, + speed = 0, + attach = args.AT, + colours = { args.backdrop_colour }, + }) + end + return true + end, + })) + + G.E_MANAGER:add_event(Event({ + trigger = "after", + timer = "REAL", + delay = args.hold, + blockable = false, + blocking = false, + func = function() + if not args.start_time then + args.start_time = G.TIMERS.TOTAL + args.text:pop_out(3) + else + args.fade = math.max(0, 1 - 3 * (G.TIMERS.TOTAL - args.start_time)) + if args.cover_colour then args.cover_colour[4] = math.min(args.cover_colour[4], 2 * args.fade) end + if args.cover_colour_l then args.cover_colour_l[4] = math.min(args.cover_colour_l[4], args.fade) end + if args.cover_colour_d then args.cover_colour_d[4] = math.min(args.cover_colour_d[4], args.fade) end + if args.backdrop_colour then args.backdrop_colour[4] = math.min(args.backdrop_colour[4], args.fade) end + args.colour[4] = math.min(args.colour[4], args.fade) + if args.fade <= 0 then + args.AT:remove() + return true + end + end + end, + })) +end + +function G.FUNCS.overlay_endgame_menu() + G.FUNCS.overlay_menu({ + definition = MP.GAME.won and create_UIBox_win() or create_UIBox_game_over(), + config = { no_esc = true }, + }) + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 2.5, + blocking = false, + func = function() + if G.OVERLAY_MENU and G.OVERLAY_MENU:get_UIE_by_ID("jimbo_spot") then + local Jimbo = Card_Character({ x = 0, y = 5 }) + local spot = G.OVERLAY_MENU:get_UIE_by_ID("jimbo_spot") + spot.config.object:remove() + spot.config.object = Jimbo + Jimbo.ui_object_updated = true + local jimbo_words = MP.GAME.won and "wq_" .. math.random(1, 7) or "lq_" .. math.random(1, 10) + Jimbo:add_speech_bubble(jimbo_words, nil, { quip = true }) + Jimbo:say_stuff(5) + end + return true + end, + })) +end + +function MP.UI.ease_lives(mod, instant) + G.E_MANAGER:add_event(Event({ + trigger = "immediate", + blockable = not instant, + func = function() + if not G.hand_text_area then return end + + if MP.LOBBY.config.disable_live_and_timer_hud then + return true -- Returning nothing hangs the game because it's a part of an event + end + + local lives_UI = G.hand_text_area.ante + if not lives_UI or not lives_UI.config.object then return true end + + mod = mod or 0 + local text = "+" + local col = G.C.IMPORTANT + if mod < 0 then + text = "-" + col = G.C.RED + end + lives_UI.config.object:update() + G.HUD:recalculate() + attention_text({ + text = text .. tostring(math.abs(mod)), + scale = 1, + hold = 0.7, + cover = lives_UI.parent, + cover_colour = col, + align = "cm", + }) + play_sound("highlight2", 0.685, 0.2) + play_sound("generic1") + return true + end, + })) +end + +function MP.UI.show_asteroid_hand_level_up() + local hand_priority = { + ["Flush Five"] = 1, + ["Flush House"] = 2, + ["Five of a Kind"] = 3, + ["Straight Flush"] = 4, + ["Four of a Kind"] = 5, + ["Full House"] = 6, + ["Flush"] = 7, + ["Straight"] = 8, + ["Three of a Kind"] = 9, + ["Two Pair"] = 11, + ["Pair"] = 12, + ["High Card"] = 13, + } + local hand_type = "High Card" + local max_level = 0 + + for k, v in pairs(G.GAME.hands) do + if SMODS.is_poker_hand_visible(k) then + if hand_priority[k] == nil then + hand_priority[k] = 0 -- Safeguard for modded hands + end + if + to_big(v.level) > to_big(max_level) + or (to_big(v.level) == to_big(max_level) and hand_priority[k] < hand_priority[hand_type]) + then + hand_type = k + max_level = v.level + end + end + end + if to_big(max_level) >= to_big(1) then + SMODS.upgrade_poker_hands({ hands = hand_type, level_up = -1 }) + end +end + +function G.FUNCS.mp_open_log_parser(e) + love.system.openURL("https://balatromp.com/log-parser") +end + +function G.FUNCS.mp_get_lovely_log_file(e) + local file_path = require("lovely").log_path + local os_name = love.system.getOS() + + local function shellQuote(s) + return "'" .. tostring(s):gsub("'", "'\\''") .. "'" + end + + local function fileUri(path) + path = path:gsub("\\", "/") + return "file://" .. path:gsub("([^A-Za-z0-9%-%._~/%:/])", function(c) + return string.format("%%%02X", c:byte()) + end) + end + + local ok + if os_name == "Windows" then + ok = os.execute('explorer.exe /select,"' .. file_path:gsub("/", "\\") .. '"') + elseif os_name == "OS X" then + os.execute("open -R " .. shellQuote(file_path)) + elseif os_name == "Linux" then + local cmd = + "dbus-send --session " .. + "--dest=org.freedesktop.FileManager1 " .. + "--type=method_call " .. + "/org/freedesktop/FileManager1 " .. + "org.freedesktop.FileManager1.ShowItems " .. + "array:string:" .. shellQuote(fileUri(file_path)) .. " string:''" + + ok = os.execute(cmd) + end + if not ok then + local parent_dir = file_path:match("^(.*)[/\\][^/\\]*$") or "." + love.system.openURL(fileUri(parent_dir)) + end +end + +--[[ +function MP.UI.create_UIBox_Misprint_Display() + return { + n = G.UIT.ROOT, + config = { align = "cm", padding = 0.03, colour = G.C.CLEAR }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm", padding = 0.05, colour = G.C.UI.TRANSPARENT_DARK, r = 0.1 }, + nodes = { + { + n = G.UIT.O, + config = { + id = "misprint_display", + func = "misprint_display_set", + object = DynaText({ + string = { { ref_table = MP.GAME, ref_value = "misprint_display" } }, + colours = { G.C.UI.TEXT_LIGHT }, + shadow = true, + float = true, + scale = 0.5, + }), + }, + }, + }, + }, + }, + } +end + +function G.FUNCS.misprint_display_set(e) + local misprint_raw = (G.deck and G.deck.cards[1] and G.deck.cards[#G.deck.cards].base.id or 11) + .. (G.deck and G.deck.cards[1] and G.deck.cards[#G.deck.cards].base.suit:sub(1, 1) or "D") + if misprint_raw == e.config.last_misprint then + return + end + e.config.last_misprint = misprint_raw + + local value = tonumber(misprint_raw:sub(1, -2)) + local suit = misprint_raw:sub(-1) + + local suit_full = { H = "Hearts", D = "Diamonds", C = "Clubs", S = "Spades" } + + local value_key = tostring(value) + if value == 14 then + value_key = "Ace" + elseif value == 11 then + value_key = "Jack" + elseif value == 12 then + value_key = "Queen" + elseif value == 13 then + value_key = "King" + end + + local localized_card = {} + + localize({ + type = "other", + key = "playing_card", + set = "Other", + nodes = localized_card, + vars = { + localize(value_key, "ranks"), + localize(suit_full[suit], "suits_plural"), + colours = { G.C.UI.TEXT_LIGHT }, + }, + }) + + -- Yes I know this is stupid + MP.GAME.misprint_display = localized_card[1][2].config.text .. localized_card[1][3].config.text + e.config.object.colours = { G.C.SUITS[suit_full[suit]] +--} +--end +--]] diff --git a/ui/game/game_end.lua b/ui/game/game_end.lua new file mode 100644 index 000000000..c55b86685 --- /dev/null +++ b/ui/game/game_end.lua @@ -0,0 +1,545 @@ +function MP.UI.create_UIBox_round_scores_row_nemesis() + local label = localize({ type = "name_text", set = "Blind", key = "bl_mp_nemesis" }) + local score_tab = {} + local label_w, score_w, h = 2.9, 1, 0.5 + + local blind_name_string + if MP.GHOST.is_active() then + blind_name_string = MP.GHOST.get_blind_name_ui() or "ERROR" + else + blind_name_string = (MP.LOBBY.is_host and MP.LOBBY.guest or MP.LOBBY.host or {})["username"] or "ERROR" + end + + local nemesis_blind_col = MP.UTILS.get_nemesis_key() + local blind_choice = {} + blind_choice.animation = AnimatedSprite(0,0, 0.5, 0.5, G.ANIMATION_ATLAS["mp_player_blind_col"], G.P_BLINDS[nemesis_blind_col].pos) + blind_choice.animation:define_draw_steps({ + {shader = 'dissolve', shadow_height = 0.05}, + {shader = 'dissolve'} + }) + + score_tab = { + {n=G.UIT.C, config={align = "cm", minh = 0.7, padding = 0.1}, nodes={ + {n=G.UIT.O, config={object = DynaText({string = blind_name_string, colours = {G.C.WHITE}, shadow = true, bump = true,maxw = 2.9, scale = 0.45})}} + }}, + {n=G.UIT.C, config={align = "cm"}, nodes={ + {n=G.UIT.O, config={object = blind_choice.animation}} + }}, + } + + local label_scale = 0.5 + + return {n=G.UIT.R, config={align = "cm", padding = 0.05, r = 0.1, colour = darken(G.C.JOKER_GREY, 0.1), emboss = 0.05, id = "mp_score_nemesis"}, nodes={ + {n=G.UIT.R, config={align = "cm", padding = 0.02, minw = label_w, maxw = label_w}, nodes={ + {n=G.UIT.T, config={text = label, scale = label_scale, colour = G.C.UI.TEXT_LIGHT, shadow = true}}, + }}, + {n=G.UIT.R, config={align = "cr"}, nodes={ + {n=G.UIT.C, config={align = "cm", minh = h, r = 0.1, minw = label_w + 0.9, colour = G.C.BLACK, emboss = 0.05}, nodes={ + {n=G.UIT.C, config={align = "cm", padding = 0.05, r = 0.1, minw = score_w}, nodes=score_tab}, + }} + }}, + }} +end + +function MP.UI.create_UIBox_mp_game_end(has_won) + MP.end_game_jokers = CardArea( + 0, + 0, + 5 * G.CARD_W, + G.CARD_H, + { card_limit = G.GAME.starting_params.joker_slots, type = "joker", highlight_limit = 1, fixed_limit = true } + ) + if not MP.end_game_jokers_received then + MP.ACTIONS.get_end_game_jokers() + else + G.FUNCS.load_end_game_jokers() + end + MP.end_game_jokers_text = localize("k_enemy_jokers") + + MP.ACTIONS.request_nemesis_stats() + + MP.nemesis_deck = CardArea(-100, -100, G.CARD_W, G.CARD_H, { type = "deck" }) + MP.nemesis_cards = {} + if not MP.nemesis_deck_received then + MP.ACTIONS.get_nemesis_deck() + else + G.FUNCS.load_nemesis_deck() + end + + G.SETTINGS.paused = false + + local eased_bg_colour + if has_won then + eased_bg_colour = copy_table(G.C.GREEN) + eased_bg_colour[4] = 0 + ease_value(eased_bg_colour, 4, 0.5, nil, nil, true) + else + eased_bg_colour = copy_table(G.C.RED) + eased_bg_colour[4] = 0 + ease_value(eased_bg_colour, 4, 0.8, nil, nil, true) + end + + local t = create_UIBox_generic_options({ + padding = 0, + bg_colour = eased_bg_colour, + colour = has_won and G.C.BLACK or nil, + outline_colour = has_won and G.C.EDITION or nil, + no_back = true, + no_esc = has_won, + contents = { + { + n = G.UIT.R, + config = { align = "cm" }, + nodes = { + { + n = G.UIT.O, + config = { + object = DynaText({ + string = { has_won and localize("ph_you_win") or localize("ph_game_over") }, + colours = { has_won and G.C.EDITION or G.C.RED }, + shadow = true, + float = true, + spacing = has_won and 10 or nil, + rotate = has_won, + scale = 1.5, + pop_in = 0.4, + maxw = 6.5, + }), + }, + }, + }, + }, + { + n = G.UIT.R, + config = { align = "cm", padding = 0.15 }, + nodes = { + { + n = G.UIT.C, + config = { align = "cm" }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm", padding = 0.08 }, + nodes = { + { + n = G.UIT.T, + config = { + ref_table = MP, + ref_value = "end_game_jokers_text", + scale = 0.8, + maxw = 5, + shadow = true, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { align = "cm", padding = 0.08 }, + nodes = { + { n = G.UIT.O, config = { object = MP.end_game_jokers } }, + }, + }, + { + n = G.UIT.R, + config = { align = "cm", padding = 0.08 }, + nodes = { + { + n = G.UIT.C, + config = { + maxw = has_won and 0.8 or 1, + minw = has_won and 0.8 or 1, + minh = 0.7, + colour = G.C.CLEAR, + no_fill = false, + }, + }, + { + n = G.UIT.C, + config = { + button = "toggle_players_jokers", + align = "cm", + padding = 0.12, + colour = G.C.BLUE, + emboss = 0.05, + minh = 0.7, + minw = 2, + maxw = 2, + r = 0.1, + shadow = true, + hover = true, + }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("b_toggle_jokers"), + colour = G.C.UI.TEXT_LIGHT, + scale = 0.65, + col = true, + }, + }, + }, + }, + { + n = G.UIT.C, + config = { + id = "view_nemesis_deck_button", + button = "view_nemesis_deck", + align = "cm", + padding = 0.12, + colour = G.C.BLUE, + emboss = 0.05, + minh = 0.7, + minw = 2, + maxw = 2, + r = 0.1, + shadow = true, + hover = true, + focus_args = has_won and { nav = "wide" } or nil, + }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("b_view_nemesis_deck"), + colour = G.C.UI.TEXT_LIGHT, + scale = 0.65, + col = true, + }, + }, + }, + }, + { + n = G.UIT.C, + config = { + maxw = has_won and 0.8 or 1, + minw = has_won and 0.8 or 1, + minh = 0.7, + colour = G.C.CLEAR, + no_fill = false, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { align = "cm" }, + nodes = { + { + n = G.UIT.C, + config = { padding = 0.08 }, + nodes = { + create_UIBox_round_scores_row("hand"), + create_UIBox_round_scores_row("poker_hand"), + { + n = G.UIT.R, + config = {}, + nodes = { + { + n = G.UIT.C, + nodes = { + create_UIBox_round_scores_row('cards_purchased', G.C.MONEY), + { + n = G.UIT.R, + config = { minh = 0.08 }, + }, + create_UIBox_round_scores_row('times_rerolled', G.C.GREEN), + } + }, + { + n = G.UIT.C, + config = {minw = 0.08} + }, + { + n = G.UIT.C, + nodes = { + create_UIBox_round_scores_row('furthest_ante', G.C.FILTER), + { + n = G.UIT.R, + config = { minh = 0.08 }, + }, + create_UIBox_round_scores_row('furthest_round', G.C.FILTER), + } + }, + } + }, + { + n = G.UIT.R, + config = { minh = 0.01 }, + }, + { + n = G.UIT.R, + config = { align = "cm", minw = 2 }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("ml_mp_kofi_message")[1], + scale = 0.35, + colour = G.C.UI.TEXT_LIGHT, + col = true, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { align = "cm", minw = 2 }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("ml_mp_kofi_message")[2], + scale = 0.35, + colour = G.C.UI.TEXT_LIGHT, + col = true, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { align = "cm", minw = 2 }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("ml_mp_kofi_message")[3] .. (localize("ml_mp_kofi_message")[4] and (" " .. localize("ml_mp_kofi_message")[4]) or ""), + scale = 0.35, + colour = G.C.UI.TEXT_LIGHT, + col = true, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { + minh = 0.08 + } + }, + { + n = G.UIT.R, + config = { + id = "ko-fi_button", + align = "cm", + padding = 0.1, + r = 0.1, + hover = true, + colour = HEX("72A5F2"), + button = "open_kofi", + shadow = true, + }, + nodes = { + { + n = G.UIT.R, + config = { + align = "cm", + padding = 0, + no_fill = true, + maxw = 3, + }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("b_mp_kofi_button"), + scale = 0.35, + colour = G.C.UI.TEXT_LIGHT, + }, + }, + }, + }, + }, + }, + --[[ Removed until it is fixed in a future update + UIBox_button({ + id = "continue_singpleplayer_button", + align = "lm", + button = "continue_in_singleplayer", + label = { localize("b_continue_singleplayer") }, + colour = G.C.GREEN, + toolTip = {title = "", text = localize("k_continue_singleplayer_tooltip")}, + minw = 6, + minh = 1, + func = 'set_button_pip', + focus_args = { nav = "wide", button = "y" }, + })]] + }, + }, + { + n = G.UIT.C, + config = { align = "tr", padding = 0.08 }, + nodes = { + MP.UI.create_UIBox_round_scores_row_nemesis(), + create_UIBox_round_scores_row("seed", G.C.WHITE), + UIBox_button({ + id = "copy_seed_button", + button = "copy_seed", + label = { localize("b_copy") }, + colour = G.C.BLUE, + scale = 0.3, + minw = 2.5, maxw = 2.5, + minh = 0.4, + }), + { + n = G.UIT.R, + config = { align = "cm", minh = 0.45, minw = 0.1 }, + nodes = { + UIBox_button({ + button = "mp_open_log_parser", + label = { localize("b_open_log_parser") }, + minw = 1.75, + maxw = 1.75, + minh = 0.5, + maxh = 0.5, + col = true, + colour = G.C.CHIPS, + padding = 0.1, + scale = 0.4 + }), + { n = G.UIT.C, config = { minw = 0.1 } }, + UIBox_button({ + id = "from_game_won", + button = "mp_get_lovely_log_file", + label = { localize("b_get_log_file") }, + minw = 1.75, + maxw = 1.75, + minh = 0.5, + maxh = 0.5, + col = true, + colour = G.C.CHIPS, + padding = 0.1, + scale = 0.4 + }), + }, + }, + UIBox_button({ + id = "from_game_won", + button = "mp_return_to_lobby", + label = { localize("b_return_lobby") }, + minw = 4, + maxw = 4, + minh = 0.75, + focus_args = { nav = "wide", snap_to = true }, + }), + UIBox_button({ + button = "lobby_leave", + label = { localize("b_leave_lobby") }, + minw = 4, + maxw = 4, + minh = 0.75, + focus_args = { nav = "wide" }, + }), + }, + }, + }, + }, + }, + }, + }, + }, + }, + }) + + t.nodes[1] = { + n = G.UIT.R, + config = { align = "cm", padding = 0.1 }, + nodes = { + { + n = G.UIT.C, + config = { align = "cm", padding = 2 }, + nodes = { + { + n = G.UIT.O, + config = { + padding = 0, + id = "jimbo_spot", + object = Moveable(0, 0, G.CARD_W * 1.1, G.CARD_H * 1.1), + }, + }, + }, + }, + { n = G.UIT.C, config = { align = "cm", padding = 0.1 }, nodes = { t.nodes[1] } }, + }, + } + + if has_won then t.config.id = "you_win_UI" end + + return t +end + +function G.UIDEF.view_nemesis_deck() + local playing_cards_ref = G.playing_cards + G.playing_cards = MP.nemesis_cards + local t = G.UIDEF.view_deck() + G.playing_cards = playing_cards_ref + return t +end + +function G.UIDEF.create_UIBox_view_nemesis_deck() + return create_UIBox_generic_options({ + back_func = "overlay_endgame_menu", + contents = { + create_tabs({ + tabs = { + { + label = localize("k_nemesis_deck"), + chosen = true, + tab_definition_function = G.UIDEF.view_nemesis_deck, + }, + { + label = localize("k_your_deck"), + tab_definition_function = G.UIDEF.view_deck, + }, + }, + tab_h = 8, + snap_to_nav = true, + }), + }, + }) +end + +-- Contains function overrides (monkey-patches) for UI-related functionality +-- Overrides UI creation functions like create_UIBox_game_over, create_UIBox_win, etc. + +local create_UIBox_game_over_ref = create_UIBox_game_over +function create_UIBox_game_over() + if not MP.LOBBY.code then return create_UIBox_game_over_ref() end + return MP.UI.create_UIBox_mp_game_end(false) +end + +local create_UIBox_win_ref = create_UIBox_win +function create_UIBox_win() + if not MP.LOBBY.code then return create_UIBox_win_ref() end + return MP.UI.create_UIBox_mp_game_end(true) +end + +local exit_overlay_menu_ref = G.FUNCS.exit_overlay_menu +---@diagnostic disable-next-line: duplicate-set-field +function G.FUNCS:exit_overlay_menu() + -- Saves username if user presses ESC instead of Enter + if G.OVERLAY_MENU and G.OVERLAY_MENU:get_UIE_by_ID("username_input_box") ~= nil then + MP.UTILS.save_username(MP.LOBBY.username) + end + + exit_overlay_menu_ref(self) +end + +local mods_button_ref = G.FUNCS.mods_button +function G.FUNCS.mods_button(arg_736_0) + if G.OVERLAY_MENU and G.OVERLAY_MENU:get_UIE_by_ID("username_input_box") ~= nil then + MP.UTILS.save_username(MP.LOBBY.username) + end + + mods_button_ref(arg_736_0) +end + +function G.UIDEF.multiplayer_deck() + return G.UIDEF.challenge_description( + get_challenge_int_from_id(MP.current_ruleset().challenge_deck), + nil, + false + ) +end diff --git a/ui/game/game_state.lua b/ui/game/game_state.lua new file mode 100644 index 000000000..e99e59bd0 --- /dev/null +++ b/ui/game/game_state.lua @@ -0,0 +1,657 @@ +-- Contains function overrides (monkey-patches) for game state management +-- Overrides Game methods like update_draw_to_hand, update_hand_played, update_new_round, etc. + +local update_draw_to_hand_ref = Game.update_draw_to_hand +function Game:update_draw_to_hand(dt) + if MP.is_mp_or_ghost() then + if + not G.STATE_COMPLETE + and G.GAME.current_round.hands_played == 0 + and G.GAME.current_round.discards_used == 0 + and G.GAME.facing_blind + then + if MP.is_pvp_boss() then + MP.GAME.pincher_unlock = true + G.after_pvp = true -- i can't find a reasonable way to detect end of pvp (for pizza) so i'm doing something strange instead + + if MP.GAME.asteroids > 0 then -- launch asteroids, messy event garbage + delay(0.8) + update_hand_text({ sound = "button", volume = 0.7, pitch = 0.8, delay = 0.3 }, { + handname = localize("k_asteroids"), + chips = localize("k_amount_short"), + mult = MP.GAME.asteroids, + }) + delay(0.6) + local send = 0 + for i = 1, MP.GAME.asteroids do + local perc = MP.GAME.asteroids - send + G.E_MANAGER:add_event(Event({ + func = function() + play_sound("tarot1", 0.9 + (perc / 10), 1) + return true + end, + })) + send = send + 1 + update_hand_text({ delay = 0 }, { mult = MP.GAME.asteroids - send }) + delay(0.2) + end + G.E_MANAGER:add_event(Event({ + func = function() + if not MP.GHOST.is_active() then + for i = 1, MP.GAME.asteroids do + MP.ACTIONS.asteroid() + end + end + MP.GAME.asteroids = 0 + return true + end, + })) + delay(0.7) + update_hand_text( + { sound = "button", volume = 0.7, pitch = 1.1, delay = 0 }, + { mult = 0, chips = 0, handname = "", level = "" } + ) + end + end + end + end + update_draw_to_hand_ref(self, dt) +end + +-- Set blind PvP state appropriately (moved from previous hook to be earlier) +local blind_set_blindref = Blind.set_blind +function Blind:set_blind(blind, reset, silent) + blind_set_blindref(self, blind, reset, silent) + if G.GAME.round_resets and G.GAME.round_resets.pvp_blind_choices then + G.GAME.blind.pvp = G.GAME.round_resets.pvp_blind_choices[G.GAME.blind_on_deck] + end +end + +local function eval_hand_and_jokers() + for i = 1, #G.hand.cards do + --Check for hand doubling + local reps = { 1 } + local j = 1 + while j <= #reps do + local percent = (i - 0.999) / (#G.hand.cards - 0.998) + (j - 1) * 0.1 + if reps[j] ~= 1 then + card_eval_status_text( + (reps[j].jokers or reps[j].seals).card, + "jokers", + nil, + nil, + nil, + (reps[j].jokers or reps[j].seals) + ) + end + + --calculate the hand effects + local effects = { G.hand.cards[i]:get_end_of_round_effect() } + for k = 1, #G.jokers.cards do + --calculate the joker individual card effects + local eval = G.jokers.cards[k]:calculate_joker({ + cardarea = G.hand, + other_card = G.hand.cards[i], + individual = true, + end_of_round = true, + }) + if eval then table.insert(effects, eval) end + end + + if reps[j] == 1 then + --Check for hand doubling + --From Red seal + local eval = eval_card( + G.hand.cards[i], + { end_of_round = true, cardarea = G.hand, repetition = true, repetition_only = true } + ) + if next(eval) and (next(effects[1]) or #effects > 1) then + for h = 1, eval.seals.repetitions do + reps[#reps + 1] = eval + end + end + + --from Jokers + for j = 1, #G.jokers.cards do + --calculate the joker effects + local eval = eval_card(G.jokers.cards[j], { + cardarea = G.hand, + other_card = G.hand.cards[i], + repetition = true, + end_of_round = true, + card_effects = effects, + }) + if next(eval) then + for h = 1, eval.jokers.repetitions do + reps[#reps + 1] = eval + end + end + end + end + + for ii = 1, #effects do + --if this effect came from a joker + if effects[ii].card then + G.E_MANAGER:add_event(Event({ + trigger = "immediate", + func = function() + effects[ii].card:juice_up(0.7) + return true + end, + })) + end + + --If dollars + if effects[ii].h_dollars then + ease_dollars(effects[ii].h_dollars) + card_eval_status_text(G.hand.cards[i], "dollars", effects[ii].h_dollars, percent) + end + + --Any extras + if effects[ii].extra then + card_eval_status_text(G.hand.cards[i], "extra", nil, percent, nil, effects[ii].extra) + end + end + j = j + 1 + end + end +end + +local update_hand_played_ref = Game.update_hand_played +---@diagnostic disable-next-line: duplicate-set-field +function Game:update_hand_played(dt) + -- Ignore for singleplayer or regular blinds + local ghost = MP.GHOST.is_active() + if (not ghost and (not MP.LOBBY.connected or not MP.LOBBY.code)) or not MP.is_pvp_boss() then + update_hand_played_ref(self, dt) + return + end + + if self.buttons then + self.buttons:remove() + self.buttons = nil + end + if self.shop then + self.shop:remove() + self.shop = nil + end + + if not G.STATE_COMPLETE then + G.STATE_COMPLETE = true + G.E_MANAGER:add_event(Event({ + trigger = "immediate", + func = function() + if not ghost then + MP.ACTIONS.play_hand(G.GAME.chips, G.GAME.current_round.hands_left) + end + + if G.GAME.current_round.hands_left < 1 then + if ghost then + local result = MP.GHOST.resolve_pvp_hands_exhausted(G.GAME.chips) + if result == "won" then + win_game() + return true + elseif result == "game_over" then + G.STATE = G.STATES.GAME_OVER + G.STATE_COMPLETE = false + return true + end + else + attention_text({ + scale = 0.8, + text = localize("k_wait_enemy"), + hold = 5, + align = "cm", + offset = { x = 0, y = -1.5 }, + major = G.play, + }) + end + if G.hand.cards[1] and G.STATE == G.STATES.HAND_PLAYED then + eval_hand_and_jokers() + G.FUNCS.draw_from_hand_to_discard() + end + elseif ghost and MP.GHOST.has_hand_data() then + MP.GHOST.resolve_pvp_mid_hand(G.GAME.chips) + + if not MP.GAME.end_pvp and G.STATE == G.STATES.HAND_PLAYED then + G.STATE_COMPLETE = false + G.STATE = G.STATES.DRAW_TO_HAND + end + elseif not MP.GAME.end_pvp and G.STATE == G.STATES.HAND_PLAYED then + G.STATE_COMPLETE = false + G.STATE = G.STATES.DRAW_TO_HAND + end + return true + end, + })) + end + + if MP.GAME.end_pvp and MP.is_pvp_boss() and not (G.GAME.STOP_USE and G.GAME.STOP_USE > 0) then + G.STATE_COMPLETE = false + G.STATE = G.STATES.NEW_ROUND + MP.GAME.end_pvp = false + end +end + +local update_new_round_ref = Game.update_new_round +function Game:update_new_round(dt) + if MP.GAME.end_pvp then + if G.STATE ~= G.STATES.NEW_ROUND then + G.FUNCS.draw_from_hand_to_deck() + G.FUNCS.draw_from_discard_to_deck() + end + G.STATE = G.STATES.NEW_ROUND + MP.GAME.end_pvp = false + end + if MP.is_mp_or_ghost() and not G.STATE_COMPLETE then + local ghost = MP.GHOST.is_active() + -- Prevent player from losing + if to_big(G.GAME.chips) < to_big(G.GAME.blind.chips) and not MP.is_pvp_boss() then + G.GAME.blind.chips = -1 + if ghost then + if MP.GHOST.resolve_round_fail() == "game_over" then + G.STATE = G.STATES.GAME_OVER + G.STATE_COMPLETE = false + return + end + else + MP.GAME.wait_for_enemys_furthest_blind = (MP.LOBBY.config.gamemode == "gamemode_mp_survival") + and (tonumber(MP.GAME.lives) == 1) + MP.ACTIONS.fail_round(G.GAME.current_round.hands_played) + end + end + + -- Prevent player from winning + G.GAME.win_ante = 999 + + if not ghost and MP.LOBBY.config.gamemode == "gamemode_mp_survival" and MP.GAME.wait_for_enemys_furthest_blind then + G.STATE_COMPLETE = true + G.FUNCS.draw_from_hand_to_discard() + attention_text({ + scale = 0.8, + text = localize("k_wait_enemy_reach_this_blind"), + hold = 5, + align = "cm", + offset = { x = 0, y = -1.5 }, + major = G.play, + }) + else + update_new_round_ref(self, dt) + end + + -- Reset ante number + G.GAME.win_ante = 8 + return + end + update_new_round_ref(self, dt) +end + +local update_selecting_hand_ref = Game.update_selecting_hand +function Game:update_selecting_hand(dt) + if + G.GAME.current_round.hands_left < G.GAME.round_resets.hands + and #G.hand.cards < 1 + and #G.deck.cards < 1 + and #G.play.cards < 1 + and MP.is_mp_or_ghost() + then + G.GAME.current_round.hands_left = 0 + if not MP.is_pvp_boss() then + G.STATE_COMPLETE = false + G.STATE = G.STATES.NEW_ROUND + else + if not MP.GHOST.is_active() then + MP.ACTIONS.play_hand(G.GAME.chips, 0) + end + G.STATE_COMPLETE = false + G.STATE = G.STATES.HAND_PLAYED + end + return + end + update_selecting_hand_ref(self, dt) + + if MP.GAME.end_pvp and MP.is_pvp_boss() and MP.is_mp_or_ghost() then + G.hand:unhighlight_all() + G.STATE_COMPLETE = false + G.STATE = G.STATES.NEW_ROUND + MP.GAME.end_pvp = false + end +end + +-- Consolidate both update_shop overrides +local update_shop_ref = Game.update_shop +function Game:update_shop(dt) + if not G.STATE_COMPLETE then + MP.GAME.ready_blind = false + MP.GAME.ready_blind_text = localize("b_ready") + MP.GAME.end_pvp = false + end + + local updated_location = false + if MP.LOBBY.code and not G.STATE_COMPLETE and not updated_location and not G.GAME.USING_RUN then + updated_location = true + MP.ACTIONS.set_location("loc_shop") + MP.GAME.spent_before_shop = to_big(MP.GAME.spent_total) + to_big(0) + if MP.UI.show_enemy_location then MP.UI.show_enemy_location() end + end + if G.STATE_COMPLETE and updated_location then updated_location = false end + update_shop_ref(self, dt) +end + +local update_blind_select_ref = Game.update_blind_select +function Game:update_blind_select(dt) + local updated_location = false + if MP.LOBBY.code and not G.STATE_COMPLETE and not updated_location then + updated_location = true + MP.ACTIONS.set_location("loc_selecting") + if MP.UI.show_enemy_location then MP.UI.show_enemy_location() end + end + if G.STATE_COMPLETE and updated_location then updated_location = false end + update_blind_select_ref(self, dt) +end + +local start_run_ref = Game.start_run +function Game:start_run(args) + -- Not get_active_ruleset(): the sp run flow leaves practice=false but still + -- sets MP.SP.ruleset, which get_active_ruleset() only honours in practice. + MP.LoadReworks(MP.LOBBY.config.ruleset or MP.SP.ruleset) + + start_run_ref(self, args) + + local show_lives_hud = (MP.LOBBY.connected and MP.LOBBY.code) or MP.GHOST.is_active() + if not show_lives_hud or MP.LOBBY.config.disable_live_and_timer_hud then return end + + local scale = 0.4 + local hud_ante = G.HUD:get_UIE_by_ID("hud_ante") + hud_ante.children[1].children[1].config.text = localize("k_lives") + + -- Set lives number + local lives_container = hud_ante.children[2].children[1] + if lives_container.config.object then + lives_container.config.object:remove() + end + lives_container.config.object = UIBox({ + definition = { + n = G.UIT.ROOT, + config = { colour = G.C.CLEAR }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm", minw = 1.2, maxw = 1.2, minh = 0.664 }, + nodes = { + { + n = G.UIT.T, + config = { + ref_table = MP.GAME, + ref_value = "lives", + scale = 2 * scale * 0.8, + colour = G.C.IMPORTANT, + shadow = true, + maxw = 0.5, + } + }, + { n = G.UIT.B, config = { w = 0.05, h = 0.05 } }, + { + n = G.UIT.T, + config = { + text = "vs", -- not localized intentionally + scale = scale * 0.8, + colour = G.C.UI.TEXT_DARK, + shadow = true, + } + }, + { n = G.UIT.B, config = { w = 0.05, h = 0.05 } }, + { + n = G.UIT.T, + config = { + ref_table = MP.GAME.enemy, + ref_value = "lives", + scale = 2 * scale * 0.8, + colour = G.C.RED, + shadow = true, + maxw = 0.5, + } + }, + } + } + } + }, + config = {}, + }) + + -- Remove unnecessary HUD elements from ante counter + hud_ante.children[2].children[2] = nil + hud_ante.children[2].children[3] = nil + hud_ante.children[2].children[4] = nil + + G.HUD:recalculate() +end + +-- This prevents duplicate execution during certain cases. e.g. Full deck discard before playing any hands. +function MP.handle_duplicate_end() + if MP.is_mp_or_ghost() then + if MP.GAME.round_ended then + if not MP.GAME.duplicate_end then + MP.GAME.duplicate_end = true + sendDebugMessage("Duplicate end_round calls prevented.", "MULTIPLAYER") + end + return true + end + end + return false +end + +-- This handles an edge case where a player plays no hands, and discards the only cards in their deck. +-- Allows opponent to advance after playing anything, and eases a life from the person who discarded their deck. +function MP.handle_deck_out() + if MP.is_mp_or_ghost() then + if + G.GAME.current_round.hands_played == 0 + and G.GAME.current_round.discards_used > 0 + and MP.LOBBY.config.gamemode ~= "gamemode_mp_survival" + then + if not MP.GHOST.is_active() then + if MP.is_pvp_boss() then MP.ACTIONS.play_hand(0, 0) end + MP.ACTIONS.fail_round(1) + end + end + end +end + +local mp_jimbo = nil +local mp_jimbo_pos = nil + +local JIMBO_POSITIONS = { + [1] = { align = "cri", offset = { x = 1, y = 0 }, bubble_align = "cl", bubble_offset = { x = 0, y = 0 } }, + [2] = { align = "tli", offset = { x = -0.75, y = -0.75 }, bubble_align = "cr", bubble_offset = { x = 0, y = -0.5 } }, + [3] = { align = "tri", offset = { x = 1.8, y = -0.1 }, bubble_align = "bl", bubble_offset = { x = 2.1, y = 0 } }, + [4] = { align = "cmi", offset = { x = 0, y = -1.5 }, bubble_align = "cr", bubble_offset = { x = 0, y = 0 } }, +} + +function MP.UI.create_jimbo(pos, text) + if mp_jimbo then MP.UI.remove_jimbo() end + local p = JIMBO_POSITIONS[pos] or JIMBO_POSITIONS[1] + mp_jimbo_pos = pos or 1 + mp_jimbo = Card_Character({ + x = 0, + y = G.ROOM.T.h + 5, + center = "j_perkeo", + particle_colours = { HEX("4e997b"), HEX("e9564e"), HEX("ebecee") }, + }) + mp_jimbo.children.particles:remove() + mp_jimbo.children.particles = nil + mp_jimbo.children.card:set_edition({ negative = true }, true, true) + mp_jimbo.say_stuff = function(self, n, not_first) + self.talking = true + if not not_first then + G.E_MANAGER:add_event(Event({ + trigger = "after", + timer = "REAL", + delay = 0.1, + func = function() + if self.children.speech_bubble then self.children.speech_bubble.states.visible = true end + self:say_stuff(n, true) + return true + end, + })) + else + if n <= 0 then + self.talking = false + return + end + play_sound("voice" .. math.random(1, 11), math.random() * 0.2 + 1, 0.5) + self.children.card:juice_up() + G.E_MANAGER:add_event( + Event({ + trigger = "after", + timer = "REAL", + blockable = false, + blocking = false, + delay = 0.13, + func = function() + self:say_stuff(n - 1, true) + return true + end, + }), + "tutorial" + ) + end + end + mp_jimbo:set_alignment({ + major = G.ROOM_ATTACH, + type = p.align, + offset = p.offset, + }) + if text then MP.UI.jimbo_say(text) end + return mp_jimbo +end + +function MP.UI.move_jimbo(pos) + if not mp_jimbo then return end + local p = JIMBO_POSITIONS[pos] or JIMBO_POSITIONS[1] + mp_jimbo_pos = pos or 1 + mp_jimbo:set_alignment({ + major = G.ROOM_ATTACH, + type = p.align, + offset = p.offset, + }) + if mp_jimbo.children.speech_bubble then + mp_jimbo.children.speech_bubble.alignment.type = p.bubble_align + mp_jimbo.children.speech_bubble.alignment.offset = p.bubble_offset + mp_jimbo.children.speech_bubble:align_to_major() + end +end + +function MP.UI.jimbo_say(text) + if not mp_jimbo then return end + if mp_jimbo.children.speech_bubble then mp_jimbo.children.speech_bubble:remove() end + local lines = {} + for line in MP.UTILS.wrapText(text, 30):gmatch("[^\n]+") do + lines[#lines + 1] = line:match("^%s*(.-)%s*$") + end + local rows = {} + for _, line in ipairs(lines) do + rows[#rows + 1] = { + n = G.UIT.R, + config = { align = "cl" }, + nodes = { + { n = G.UIT.T, config = { text = line, scale = 0.4, colour = G.C.UI.TEXT_DARK } }, + }, + } + end + local definition = { + n = G.UIT.ROOT, + config = { align = "cm", minh = 1, r = 0.3, padding = 0.07, minw = 1, colour = G.C.JOKER_GREY, shadow = true }, + nodes = { + { + n = G.UIT.C, + config = { align = "cm", minh = 1, r = 0.2, padding = 0.1, minw = 1, colour = G.C.WHITE }, + nodes = { + { + n = G.UIT.C, + config = { align = "cm", minh = 1, r = 0.2, padding = 0.03, minw = 1, colour = G.C.WHITE }, + nodes = rows, + }, + }, + }, + }, + } + local p = JIMBO_POSITIONS[mp_jimbo_pos] or JIMBO_POSITIONS[1] + mp_jimbo.children.speech_bubble = UIBox({ + definition = definition, + config = { align = p.bubble_align, offset = p.bubble_offset, parent = mp_jimbo }, + }) + mp_jimbo.children.speech_bubble:set_role({ + role_type = "Minor", + xy_bond = "Weak", + r_bond = "Strong", + major = mp_jimbo, + }) + mp_jimbo.children.speech_bubble.states.visible = true + local word_count = select(2, text:gsub("%S+", "")) + local read_time = math.max(5, word_count * 0.3 + 1) + 5 + mp_jimbo:say_stuff(math.ceil(word_count / 2)) + local bubble_ref = mp_jimbo.children.speech_bubble + G.E_MANAGER:add_event(Event({ + trigger = "after", + timer = "REAL", + blockable = false, + blocking = false, + delay = read_time, + func = function() + if mp_jimbo and mp_jimbo.children.speech_bubble == bubble_ref then + mp_jimbo.children.speech_bubble:remove() + mp_jimbo.children.speech_bubble = nil + end + return true + end, + })) +end + +-- Practice mode: spawn Jimbo when opening collection to hint at card spawning (once per boot) +local practice_collection_jimbo = false +local practice_collection_hint_shown = false + +local your_collection_ref = G.FUNCS.your_collection +function G.FUNCS.your_collection(e) + your_collection_ref(e) + if MP.is_practice_mode() and G.STAGE == G.STAGES.RUN and not MP.LOBBY.code and not practice_collection_hint_shown then + practice_collection_hint_shown = true + practice_collection_jimbo = true + MP.UI.create_jimbo(2, localize("k_practice_collection_hint")) + end +end + +local exit_overlay_menu_ref_jimbo = G.FUNCS.exit_overlay_menu +function G.FUNCS:exit_overlay_menu() + if practice_collection_jimbo then + practice_collection_jimbo = false + MP.UI.remove_jimbo() + end + exit_overlay_menu_ref_jimbo(self) +end + +function MP.UI.remove_jimbo() + if not mp_jimbo then return end + local jimbo = mp_jimbo + mp_jimbo = nil + if jimbo.children.speech_bubble then + jimbo.children.speech_bubble:remove() + jimbo.children.speech_bubble = nil + end + if jimbo.children.button then + jimbo.children.button:remove() + jimbo.children.button = nil + end + jimbo.children.card:start_dissolve({ HEX("4e997b") }, nil, nil, true) + if jimbo.children.particles then jimbo.children.particles:fade(0.5) end + G.E_MANAGER:add_event(Event({ + trigger = "after", + blockable = false, + delay = 0.8, + func = function() + jimbo:remove() + return true + end, + })) +end diff --git a/ui/game/lobby_info.lua b/ui/game/lobby_info.lua new file mode 100644 index 000000000..47c6f9771 --- /dev/null +++ b/ui/game/lobby_info.lua @@ -0,0 +1,312 @@ +local Disableable_Toggle = MP.UI.Disableable_Toggle + +function G.FUNCS.lobby_info(e) + G.SETTINGS.paused = true + G.FUNCS.overlay_menu({ + definition = MP.UI.lobby_info(), + }) +end + +function MP.UI.lobby_info() + return create_UIBox_generic_options({ + contents = { + create_tabs({ + tabs = { + { + label = localize("b_players"), + chosen = true, + tab_definition_function = MP.UI.create_UIBox_players, + }, + { + label = localize("b_lobby_info"), + chosen = false, + tab_definition_function = MP.UI.create_UIBox_settings, -- saying settings because _options is used in lobby + }, + }, + tab_h = 8, + snap_to_nav = true, + }), + }, + }) +end + +function MP.UI.create_UIBox_settings() -- optimize this please + local ruleset = string.sub(MP.LOBBY.config.ruleset, 12, -1) + local gamemode = string.sub(MP.LOBBY.config.gamemode, 13, -1) + local seed = MP.LOBBY.config.custom_seed == "random" and localize("k_random") or MP.LOBBY.config.custom_seed + return { + n = G.UIT.ROOT, + config = { + emboss = 0.05, + minh = 6, + r = 0.1, + minw = 10, + align = "tm", + padding = 0.2, + colour = G.C.BLACK, + }, + nodes = { + MP.UI.UTILS.create_row({ align = "cm", padding = 0.05 }, { + MP.UI.UTILS.create_text_node((localize("k_" .. ruleset) .. " " .. localize("k_" .. gamemode)), { + colour = G.C.UI.TEXT_LIGHT, + scale = 0.6, + }), + }), + MP.UI.UTILS.create_row({ align = "cm", padding = 0.05 }, { + MP.UI.UTILS.create_text_node((localize("k_current_seed") .. seed), { + colour = G.C.UI.TEXT_LIGHT, + scale = 0.6, + }), + }), + MP.UI.UTILS.create_row({ padding = 0, align = "cr" }, { + Disableable_Toggle({ + enabled_ref_table = MP.LOBBY, + label = localize("b_opts_cb_money"), + ref_table = MP.LOBBY.config, + ref_value = "gold_on_life_loss", + }), + }), + MP.UI.UTILS.create_row({ padding = 0, align = "cr" }, { + Disableable_Toggle({ + enabled_ref_table = MP.LOBBY, + label = localize("b_opts_no_gold_on_loss"), + ref_table = MP.LOBBY.config, + ref_value = "no_gold_on_round_loss", + }), + }), + MP.UI.UTILS.create_row({ padding = 0, align = "cr" }, { + Disableable_Toggle({ + enabled_ref_table = MP.LOBBY, + label = localize("b_opts_death_on_loss"), + ref_table = MP.LOBBY.config, + ref_value = "death_on_round_loss", + }), + }), + MP.UI.UTILS.create_row({ padding = 0, align = "cr" }, { + Disableable_Toggle({ + enabled_ref_table = MP.LOBBY, + label = localize("b_opts_diff_seeds"), + ref_table = MP.LOBBY.config, + ref_value = "different_seeds", + }), + }), + MP.UI.UTILS.create_row({ padding = 0, align = "cr" }, { + Disableable_Toggle({ + enabled_ref_table = MP.LOBBY, + label = localize("b_opts_player_diff_deck"), + ref_table = MP.LOBBY.config, + ref_value = "different_decks", + }), + }), + MP.UI.UTILS.create_row({ padding = 0, align = "cr" }, { + Disableable_Toggle({ + enabled_ref_table = MP.LOBBY, + label = localize("b_opts_multiplayer_jokers"), + ref_table = MP.LOBBY.config, + ref_value = "multiplayer_jokers", + }), + }), + MP.UI.UTILS.create_row({ padding = 0, align = "cr" }, { + Disableable_Toggle({ + enabled_ref_table = MP.LOBBY, + label = localize("b_opts_normal_bosses"), + ref_table = MP.LOBBY.config, + ref_value = "normal_bosses", + }), + }), + }, + } +end + +function MP.UI.create_UIBox_players() + local players = { + MP.UI.create_UIBox_player_row("host"), + MP.UI.create_UIBox_player_row("guest"), + } + + local t = { + n = G.UIT.ROOT, + config = { align = "cm", minw = 3, padding = 0.1, r = 0.1, colour = G.C.CLEAR }, + nodes = { + MP.UI.UTILS.create_row({ align = "cm", padding = 0.04 }, players), + }, + } + + return t +end + +function MP.UI.create_UIBox_mods_list(type) + return { + n = G.UIT.R, + config = { align = "cm", colour = G.C.WHITE, r = 0.1 }, + nodes = { + { + n = G.UIT.C, + config = { align = "cm" }, + nodes = MP.UI.modlist_to_view( + type == "host" and MP.LOBBY.host.config.Mods or MP.LOBBY.guest.config.Mods, + G.C.UI.TEXT_DARK + ), + }, + }, + } +end + +function MP.UI.create_UIBox_player_row(type) + local player_name = type == "host" and MP.LOBBY.host.username or MP.LOBBY.guest.username + local lives = MP.GAME.enemy.lives + local highest_score = MP.GAME.enemy.highest_score + local skips = MP.GAME.enemy.skips or 0 + if (type == "host" and MP.LOBBY.is_host) or (type == "guest" and not MP.LOBBY.is_host) then + lives = MP.GAME.lives + highest_score = MP.GAME.highest_score + skips = G.GAME.skips or 0 + end + return { + n = G.UIT.R, + config = { + align = "cm", + padding = 0.1, + r = 0.1, + colour = darken(G.C.JOKER_GREY, 0.1), + emboss = 0.05, + hover = true, + force_focus = true, + on_demand_tooltip = { + text = { localize("k_mods_list") }, + filler = { func = MP.UI.create_UIBox_mods_list, args = type }, + }, + }, + nodes = { + { + n = G.UIT.C, + config = { align = "cm" }, + nodes = { + { + n = G.UIT.C, + config = { + align = "cm", + padding = 0.05, + r = 0.1, + colour = G.C.MULT, + minw = 2, + maxw = 2, + outline = 0.5, + outline_colour = G.C.MULT, + emboss = 0.07, + }, + nodes = { + { + n = G.UIT.T, + config = { + text = tostring(lives) .. " " .. localize("k_lives"), + scale = 0.375, + colour = G.C.UI.TEXT_LIGHT, + shadow = true, + }, + }, + }, + }, + }, + }, + { + n = G.UIT.C, + config = { align = "cl", padding = 0, minw = 4 }, + nodes = { + { + n = G.UIT.C, + config = { align = "cm", minw = 4.5, maxw = 4.5 }, + nodes = { + { + n = G.UIT.T, + config = { + text = "" .. player_name, + scale = 0.45, + colour = G.C.UI.TEXT_LIGHT, + shadow = true, + }, + }, + }, + }, + }, + }, + { + n = G.UIT.C, + config = { align = "cm" }, + nodes = { + { + n = G.UIT.C, + config = { + align = "cm", + padding = 0.05, + r = 0.1, + colour = G.C.PURPLE, + minw = 1.75, + maxw = 1.75, + outline = 0.5, + outline_colour = G.C.PURPLE, + emboss = 0.07, + }, + nodes = { + { + n = G.UIT.T, + config = { + text = tostring(skips) .. " " .. localize("k_skips"), + scale = 0.375, + colour = G.C.UI.TEXT_LIGHT, + shadow = true, + }, + }, + }, + }, + -- Let's keep it for future, just in case + -- { + -- n = G.UIT.C, + -- config = { align = "cr", padding = 0.01, r = 0.1, colour = G.C.CHIPS, minw = 1.1 }, + -- nodes = { + -- { + -- n = G.UIT.T, + -- config = { + -- text = "???", -- Will be hands in the future + -- scale = 0.45, + -- colour = G.C.UI.TEXT_LIGHT, + -- }, + -- }, + -- { n = G.UIT.B, config = { w = 0.08, h = 0.01 } }, + -- }, + -- }, + -- { + -- n = G.UIT.C, + -- config = { align = "cl", padding = 0.01, r = 0.1, colour = G.C.MULT, minw = 1.1 }, + -- nodes = { + -- { n = G.UIT.B, config = { w = 0.08, h = 0.01 } }, + -- { + -- n = G.UIT.T, + -- config = { + -- text = "???", -- Will be discards in the future + -- scale = 0.45, + -- colour = G.C.UI.TEXT_LIGHT, + -- }, + -- }, + -- }, + -- }, + }, + }, + { + n = G.UIT.C, + config = { align = "cm", padding = 0.05, colour = G.C.L_BLACK, r = 0.1, minw = 3, maxw = 3 }, + nodes = { + { + n = G.UIT.T, + config = { + text = MP.INSANE_INT.to_string(highest_score), + scale = 0.425, + colour = G.C.FILTER, + shadow = true, + }, + }, + }, + }, + }, + } +end diff --git a/ui/game/round.lua b/ui/game/round.lua new file mode 100644 index 000000000..673b02795 --- /dev/null +++ b/ui/game/round.lua @@ -0,0 +1,90 @@ +-- Contains function overrides (monkey-patches) for round-related functionality +-- Overrides functions like ease_ante, ease_round, reset_blinds, EventManager:add_event + +local ease_ante_ref = ease_ante +function ease_ante(mod) + if MP.is_mp_or_ghost() and not MP.LOBBY.config.disable_live_and_timer_hud then + -- Prevents easing multiple times at once + if MP.GAME.antes_keyed[MP.GAME.ante_key] then return end + + -- pizza: remove discards + if MP.GAME.pizza_discards > 0 then + G.GAME.round_resets.discards = G.GAME.round_resets.discards - MP.GAME.pizza_discards + ease_discard(-MP.GAME.pizza_discards) + MP.GAME.pizza_discards = 0 + end + + MP.GAME.antes_keyed[MP.GAME.ante_key] = true + if not MP.GHOST.is_active() then + MP.ACTIONS.set_ante(G.GAME.round_resets.ante + mod) + end + G.E_MANAGER:add_event(Event({ + trigger = "immediate", + func = function() + G.GAME.round_resets.ante = G.GAME.round_resets.ante + mod + check_and_set_high_score("furthest_ante", G.GAME.round_resets.ante) + return true + end, + })) + + -- technically doesn't have to be in this block, but less logspam is nicer + MP.UTILS.log_mem_debug_messages() + end + return ease_ante_ref(mod) +end + +local ease_round_ref = ease_round +function ease_round(mod) + if MP.is_mp_or_ghost() and not MP.LOBBY.config.disable_live_and_timer_hud and MP.LOBBY.config.timer then + G.E_MANAGER:add_event(Event({ + trigger = 'immediate', + func = function() + G.GAME.round = G.GAME.round + mod + play_sound('timpani', 0.8) + play_sound('generic1') + return true + end + })) + return + end + ease_round_ref(mod) +end + +local reset_blinds_ref = reset_blinds +function reset_blinds() + reset_blinds_ref() + G.GAME.round_resets.pvp_blind_choices = {} + + local gamemode_key = MP.get_active_gamemode() + if gamemode_key and MP.Gamemodes[gamemode_key] then + local mp_small_choice, mp_big_choice, mp_boss_choice = + MP.Gamemodes[gamemode_key]:get_blinds_by_ante(G.GAME.round_resets.ante) + G.GAME.round_resets.blind_choices.Small = mp_small_choice or G.GAME.round_resets.blind_choices.Small + G.GAME.round_resets.blind_choices.Big = mp_big_choice or G.GAME.round_resets.blind_choices.Big + G.GAME.round_resets.blind_choices.Boss = mp_boss_choice or G.GAME.round_resets.blind_choices.Boss + end + + if MP.GHOST.is_active() then + MP.GHOST.init_playback(G.GAME.round_resets.ante) + end +end + +-- necessary for showdown mode to ensure rounds progress properly, only affects nemesis blind to avoid possible incompatibilities (though i know many mods like to do this exact hook) +local blind_get_type = Blind.get_type +function Blind:get_type() + if self.name == "bl_mp_nemesis" then + return G.GAME.blind_on_deck + else + return blind_get_type(self) + end +end + +-- added event suppression for a lovely patch for ease_ante +local add_event_ref = EventManager.add_event +function EventManager:add_event(event, queue, front) + if MP.suppress_next_event then + MP.suppress_next_event = false + return + end + return add_event_ref(self, event, queue, front) +end diff --git a/ui/game/ruleset_info_menu.lua b/ui/game/ruleset_info_menu.lua new file mode 100644 index 000000000..246938cb4 --- /dev/null +++ b/ui/game/ruleset_info_menu.lua @@ -0,0 +1,166 @@ +-- Render a localized string with {C:colour}...{} tags and \n line breaks as a +-- stack of UIT rows. loc_parse_string returns nil on empty input, so blank +-- lines are emitted as spacers without going through it. +local function parse_colored_lines(str, scale) + scale = scale or 0.6 + local rows = {} + for line in (str .. "\n"):gmatch("(.-)\n") do + if line == "" then + rows[#rows + 1] = { n = G.UIT.R, config = { minh = 0.15 } } + else + local segments = {} + for _, seg in ipairs(loc_parse_string(line)) do + local text = seg.strings[1] + if type(text) == "string" and text ~= "" then + segments[#segments + 1] = { + n = G.UIT.T, + config = { + text = text, + scale = scale, + colour = loc_colour(seg.control.C, G.C.UI.TEXT_LIGHT), + }, + } + end + end + rows[#rows + 1] = { n = G.UIT.R, config = { align = "cl" }, nodes = segments } + end + end + return rows +end + +function MP.UI.CreateRulesetInfoMenu(config) + local has_mp_content = config.multiplayer_content and "k_yes" or "k_no" + local has_mp_color = config.multiplayer_content and G.C.GREEN or G.C.RED + local forces_lobby = config.forced_lobby_options and "k_yes" or "k_no" + local forces_lobby_color = config.forced_lobby_options and G.C.GREEN or G.C.RED + local forces_gamemode_text = config.forced_gamemode_text or "k_no" + local forces_gamemode_color = config.forced_gamemode_text and G.C.GREEN or G.C.RED + + local rows = { + { + n = G.UIT.R, + config = { + align = "tm", + }, + nodes = { + MP.UI.BackgroundGrouping(localize("k_has_multiplayer_content"), { + { + n = G.UIT.T, + config = { + text = localize(has_mp_content), + scale = 0.8, + colour = has_mp_color, + }, + }, + }, { col = true, text_scale = 0.6 }), + { + n = G.UIT.C, + config = { + minw = 0.1, + minh = 0.1, + }, + }, + MP.UI.BackgroundGrouping(localize("k_forces_lobby_options"), { + { + n = G.UIT.T, + config = { + text = localize(forces_lobby), + scale = 0.8, + colour = forces_lobby_color, + }, + }, + }, { col = true, text_scale = 0.6 }), + { + n = G.UIT.C, + config = { + minw = 0.1, + minh = 0.1, + }, + }, + MP.UI.BackgroundGrouping(localize("k_forces_gamemode"), { + { + n = G.UIT.T, + config = { + text = localize(forces_gamemode_text), + scale = 0.8, + colour = forces_gamemode_color, + }, + }, + }, { col = true, text_scale = 0.6 }), + }, + }, + { + n = G.UIT.R, + config = { + minw = 0.05, + minh = 0.05, + }, + }, + } + + rows[#rows + 1] = { + n = G.UIT.R, + config = { + align = "cl", + padding = 0.1, + }, + nodes = { + { + n = G.UIT.C, + config = { align = "cl" }, + nodes = parse_colored_lines(localize(config.description_key), 0.6), + }, + }, + } + + if config.stickers and #config.stickers > 0 then + local sticker_nodes = {} + for _, key in ipairs(config.stickers) do + local sticker_obj = SMODS.Stickers and SMODS.Stickers["mp_sticker_" .. key] + if sticker_obj then + local atlas = G.ASSET_ATLAS[sticker_obj.atlas] + if atlas then + local sprite = Sprite(0, 0, 0.55, 0.74, atlas, sticker_obj.pos or { x = 0, y = 0 }) + sticker_nodes[#sticker_nodes + 1] = { + n = G.UIT.C, + config = { align = "cm", padding = 0.05 }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm" }, + nodes = { { n = G.UIT.O, config = { object = sprite } } }, + }, + { + n = G.UIT.R, + config = { align = "cm", padding = 0.02 }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize{ type = "name_text", set = "Other", key = "mp_sticker_" .. key }, + scale = 0.3, + colour = sticker_obj.badge_colour or G.C.UI.TEXT_LIGHT, + }, + }, + }, + }, + }, + } + end + end + end + if #sticker_nodes > 0 then + rows[#rows + 1] = { + n = G.UIT.R, + config = { align = "cr" }, + nodes = { + MP.UI.BackgroundGrouping(localize("k_may_roll_stickers"), { + { n = G.UIT.R, config = { align = "cm" }, nodes = sticker_nodes }, + }, { text_scale = 0.4 }), + }, + } + end + end + + return rows +end diff --git a/ui/game/timer.lua b/ui/game/timer.lua new file mode 100644 index 000000000..c68cf56f4 --- /dev/null +++ b/ui/game/timer.lua @@ -0,0 +1,536 @@ +-- ease_round override moved to game/round.lua + +function MP.UI.can_timer_opponent() + if not MP.LOBBY.config.timer then return false end + if MP.GAME.pvp_countdown_in_progress then return false end + if MP.GAME.timer <= 0 then return false end + if MP.GAME.nemesis_timer_started then return false end + if MP.GAME.enemy.location_type == "loc_ready" then return false end + if G.STATE == G.STATES.GAME_OVER or MP.GAME.won then return false end + if MP.is_pvp_boss() and MP.is_layer_active("pvp_timer") then + if MP.GAME.end_pvp then return false end + if G.STATE == G.STATES.ROUND_EVAL or G.STATE == G.STATES.NEW_ROUND then return false end + if (MP.LOBBY.is_host and "host" or "guest") == MP.GAME.pvp_timer_order then return true end + return false + end + return MP.GAME.ready_blind +end + +function G.FUNCS.mp_timer_button(e) + -- Under pressure_timer the local timer auto-ticks regardless of timer_started, + -- but the button still needs to fire — pressing it broadcasts startAnteTimer, + -- which is what flips the opponent's nemesis_timer_started and triggers 2x. + if MP.UI.can_timer_opponent() then + if not MP.GAME.timer_started then + MP.ACTIONS.start_ante_timer() + if MP.is_pvp_boss() and MP.is_layer_active("pvp_timer") then MP.GAME.pvp_timer_activated = true end + else + MP.ACTIONS.pause_ante_timer() + if MP.is_pvp_boss() and MP.is_layer_active("pvp_timer") then MP.GAME.pvp_timer_activated = false end + end + end +end + +function MP.UI.timer_hud() + if MP.LOBBY.config.timer then + return { + n = G.UIT.C, + config = { + align = "cm", + padding = 0.05, + minw = 1.45, + minh = 1, + colour = G.C.DYN_UI.BOSS_MAIN, + emboss = 0.05, + r = 0.1, + hover = true, + collideable = true, + }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm", maxw = 1.35 }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("k_timer"), + minh = 0.33, + scale = 0.34, + colour = G.C.UI.TEXT_LIGHT, + shadow = true, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { + align = "cm", + r = 0.1, + minw = 1.2, + colour = G.C.DYN_UI.BOSS_DARK, + id = "row_round_text", + func = "set_timer_box", + button = "mp_timer_button", + hover = true, + collideable = true, + }, + nodes = { + { + n = G.UIT.O, + config = { + object = DynaText({ + string = MP.is_layer_active("speedlatro_timer") and ">>" or { + { + ref_table = setmetatable({}, { + __index = function() + if not MP.GAME.timer then return 0 end + -- All numbers bigger then 10 - display as integer + -- Also accounting for rounding to prevent 10.0 to be displayed + if MP.GAME.timer > 9.95 then + return string.format("%d", MP.GAME.timer) + end + -- Less than 10 - display decimal part + return string.format("%.1f", MP.GAME.timer) + end, + }), + ref_value = "timer", + }, + }, -- sorry + colours = { G.C.UI.TEXT_DARK }, + shadow = true, + scale = 0.8, + }), + id = "timer_UI_count", + }, + }, + }, + }, + }, + } + end +end +function MP.UI.nemesis_timer_hud() + return { + n = G.UIT.ROOT, + config = { align = "cm", colour = G.C.CLEAR }, + nodes = { + { + n = G.UIT.C, + config = { + align = "cm", + padding = 0.05, + minw = 1.45, + minh = 1, + colour = G.C.DYN_UI.BOSS_MAIN, + emboss = 0.05, + r = 0.1, + }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm", maxw = 1.35 }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("k_nemesis_timer"), + minh = 0.33, + scale = 0.34, + colour = G.C.UI.TEXT_LIGHT, + shadow = true, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { + align = "cm", + r = 0.1, + minw = 1.2, + colour = G.C.DYN_UI.BOSS_DARK, + id = "row_round_text", + }, + nodes = { + { + n = G.UIT.O, + config = { + object = DynaText({ + string = { + { + ref_table = setmetatable({}, { + __index = function() + if not MP.GAME.enemy or not MP.GAME.enemy.last_timer then + return "0.0" + end + -- All numbers bigger then 10 - display as integer + -- Also accounting for rounding to prevent 10.0 to be displayed + if MP.GAME.enemy.last_timer > 9.95 then + return string.format("%d", MP.GAME.enemy.last_timer) + end + -- Less than 10 - display decimal part + return string.format("%.1f", MP.GAME.enemy.last_timer) + end, + }), + ref_value = "timer", + }, + }, -- sorry + colours = { G.C.IMPORTANT }, + shadow = true, + scale = 0.8, + }), + id = "timer_UI_count", + }, + }, + }, + }, + }, + }, + }, + } +end + +function MP.UI.start_pvp_countdown(callback) + local seconds = countdown_seconds + local tick_delay = 1 + if MP.LOBBY and MP.LOBBY.config and MP.LOBBY.config.pvp_countdown_seconds then + seconds = MP.LOBBY.config.pvp_countdown_seconds + end + MP.GAME.pvp_countdown_in_progress = true + MP.GAME.pvp_countdown = seconds + + G.CONTROLLER.locks.enter_pvp = true + + local function show_next() + if MP.GAME.pvp_countdown <= 0 then + if callback then callback() end + G.E_MANAGER:add_event(Event({ + blocking = false, + func = function() + G.E_MANAGER:add_event(Event({ + blocking = false, + func = function() + MP.GAME.pvp_countdown_in_progress = nil + return true + end, + })) + return true + end, + })) + G.E_MANAGER:add_event(Event({ + no_delete = true, + trigger = "after", + blocking = false, + blockable = false, + delay = 1, + timer = "TOTAL", + func = function() + G.CONTROLLER.locks.enter_pvp = nil + return true + end, + })) + return true + end + + G.FUNCS.attention_text_realtime({ + text = tostring(MP.GAME.pvp_countdown), + scale = 5, + hold = 0.85, + align = "cm", + major = G.play, + backdrop_colour = G.C.MULT, + }) + + play_sound("tarot2", 1, 0.4) + + MP.GAME.pvp_countdown = MP.GAME.pvp_countdown - 1 + + G.E_MANAGER:add_event(Event({ + trigger = "after", + timer = "REAL", + delay = tick_delay, + blockable = false, + func = show_next, + })) + return true + end + + G.E_MANAGER:add_event(Event({ + trigger = "after", + timer = "REAL", + delay = 0, + blockable = false, + func = show_next, + })) +end + +SMODS.Gradient({ + key = "timer_accelerated", + cycle = 1, + colours = { + mix_colours(G.C.WHITE, G.C.IMPORTANT, 0.55), + G.C.IMPORTANT, + G.C.IMPORTANT, + G.C.IMPORTANT, + G.C.IMPORTANT, + }, + update = function(self, dt) + if #self.colours < 2 or not MP.LOBBY.config.ruleset then return end + local speedup = MP.GAME.timer_started and 1 or MP.current_ruleset().timer_speedup_multiplier or 1 + + -- When you "timering" opponent, timer stops and you cannot see is button pressed + -- So we need switch to real timer to make it flush + local time_value = MP.GAME.timer_started and G.TIMERS.REAL or -(MP.GAME.timer or 0) + local timer = (time_value / speedup) % self.cycle + local start_index = math.ceil(timer * #self.colours / self.cycle) + if start_index == 0 then start_index = 1 end + local end_index = start_index == #self.colours and 1 or start_index + 1 + local start_colour, end_colour = self.colours[start_index], self.colours[end_index] + local partial_timer = (timer % (self.cycle / #self.colours)) * #self.colours / self.cycle + for i = 1, 4 do + if self.interpolation == "linear" then + self[i] = start_colour[i] + partial_timer * (end_colour[i] - start_colour[i]) + elseif self.interpolation == "trig" then + self[i] = start_colour[i] + + 0.5 * (1 - math.cos(partial_timer * math.pi)) * (end_colour[i] - start_colour[i]) + end + end + end, +}) +SMODS.Gradient({ + key = "speedlatro_timer_accelerated", + cycle = 1, + colours = { + G.C.WHITE, + G.C.WHITE, + G.C.WHITE, + G.C.WHITE, + mix_colours(G.C.IMPORTANT, G.C.WHITE, 0.55), + }, + update = function(self, dt) + if #self.colours < 2 or not MP.speedlatro_timer then return end + local speedup = MP.current_ruleset().timer_speedup_multiplier or 1 + + local timer_value = MP.GAME.ready_blind and 0 or -(MP.speedlatro_timer.real or 0) + local timer = (timer_value / speedup) % self.cycle + local start_index = math.ceil(timer * #self.colours / self.cycle) + if start_index == 0 then start_index = 1 end + local end_index = start_index == #self.colours and 1 or start_index + 1 + local start_colour, end_colour = self.colours[start_index], self.colours[end_index] + local partial_timer = (timer % (self.cycle / #self.colours)) * #self.colours / self.cycle + for i = 1, 4 do + if self.interpolation == "linear" then + self[i] = start_colour[i] + partial_timer * (end_colour[i] - start_colour[i]) + elseif self.interpolation == "trig" then + self[i] = start_colour[i] + + 0.5 * (1 - math.cos(partial_timer * math.pi)) * (end_colour[i] - start_colour[i]) + end + end + end, +}) + +function G.FUNCS.set_timer_box(e) + if e.states and e.parent and e.parent.states then + local is_hovered = e.states.hover.is or e.parent.states.hover.is + if is_hovered and not e.parent.children.mp_timer_info then + e.parent.children.mp_timer_info = UIBox({ + definition = MP.UI.nemesis_timer_hud(), + config = { + parent = e.parent, + major = e.parent, + align = "tm", + offset = { x = 0, y = -0.1 }, + }, + }) + elseif not is_hovered and e.parent.children.mp_timer_info then + e.parent.children.mp_timer_info:remove() + e.parent.children.mp_timer_info = nil + end + end + if MP.LOBBY.config.timer then + if MP.GAME.timer_started or MP.GAME.nemesis_timer_started then + e.config.colour = G.C.DYN_UI.BOSS_DARK + -- Pulse because why not + e.children[1].config.object.colours = { + MP.GAME.timer > 0 and SMODS.Gradients["mp_timer_accelerated"] or G.C.IMPORTANT, + } + return + end + if not MP.GAME.timer_started and MP.UI.can_timer_opponent() then + e.config.colour = G.C.IMPORTANT + e.children[1].config.object.colours = { G.C.UI.TEXT_LIGHT } + return + end + e.config.colour = G.C.DYN_UI.BOSS_DARK + e.children[1].config.object.colours = { + (not MP.is_pvp_boss() and not MP.GAME.pvp_countdown_in_progress and MP.is_layer_active("pressure_timer")) + and G.C.IMPORTANT + or G.C.UI.TEXT_DARK, + } + end +end + +local animation_budget_capacity = 40 +local animation_budget_restore_rate = 2.5 +local animation_budget_decay_rate = 0 + +MP.TIMER_ANIMATION_BUDGET = animation_budget_capacity + +local gameUpdateRef = Game.update +---@diagnostic disable-next-line: duplicate-set-field +function Game:update(dt) + gameUpdateRef(self, dt) + + -- If I let timer tick only when we're in MP context + -- then big jump of dt will happend between state changes. + -- So we need count time all the time. Sad! + + -- Again, we cannot rely on any variant of dt since game does not + -- update at all while window is grabbed, + -- and when you release it dt does not reflect time wasted + + -- This thing cost NOTHING im comparision to game drawing and UI updating + -- We can afford some inefficiencies. + local new_time = love.timer.getTime() + local timer_dt = new_time - (MP.TIMER_CLOCK or new_time) + MP.TIMER_CLOCK = new_time + + -- Remove gamespeed force setted up for previous frame + MP.TIMER_FORCE_GAMESPEED = false + + -- Restore animation budget (used to prevent skipping too much time by animations) + MP.TIMER_ANIMATION_BUDGET = + math.min(animation_budget_capacity, MP.TIMER_ANIMATION_BUDGET + timer_dt * animation_budget_restore_rate) + + -- Bail fast: not an MP PvP-timer context + if G.STATE == G.STATES.GAME_OVER or MP.GAME.won then return end + if not MP.LOBBY.code then return end + if not MP.LOBBY.config.timer then return end + if MP.GAME.timer_consumed then return end + if MP.GAME.pvp_countdown_in_progress then return end + if not MP.GAME.timer or MP.GAME.timer <= 0 then return end + if MP.is_layer_active("speedlatro_timer") then return end + + local is_no_animation_timer = MP.is_layer_active("no_animation_timer") + local is_pressure_timer = MP.is_layer_active("pressure_timer") + local is_pvp_boss = MP.is_pvp_boss() + local is_pvp_timer = MP.is_layer_active("pvp_timer") and is_pvp_boss + + -- Tick gating differs by layer: + -- pressure_timer ON -> tick during regular play (not ready_blind, not pvp boss) + -- pressure_timer OFF -> tick whenever someone pressed a timer button. + -- timer_started = YOU pressed it; nemesis_timer_started = OPPONENT pressed it + -- (i.e. they're timering you). Either way your local timer should tick. + local should_check_animations = false + + if is_pvp_timer then + -- PvP timer: tick when opponent timering, stop when animations, state checks, pvp blind only + if not MP.GAME.nemesis_timer_started then return end + if (MP.LOBBY.is_host and "host" or "guest") == MP.GAME.pvp_timer_order then return end + if G.GAME.current_round.hands_left <= 0 then return end + if G.STATE == G.STATES.NEW_ROUND or G.STATE == G.STATES.ROUND_EVAL then return end + should_check_animations = true + elseif is_pressure_timer then + -- Pressure timer: tick from the start of a game, stop when reached pvp (unless timered) or animations, not in pvp blind + if MP.GAME.pvp_reached and not MP.GAME.nemesis_timer_started then return end + if MP.GAME.ready_blind or is_pvp_boss then return end + should_check_animations = true + elseif is_no_animation_timer then + -- No-animation timer: tick when opponen timering, stop when animations, not in pvp + if not MP.GAME.nemesis_timer_started then return end + if MP.GAME.ready_blind or is_pvp_boss then return end + should_check_animations = true + else + -- Old timer: tick when opponent timering, not in pvp + if is_pvp_boss then return end + if MP.GAME.pvp_reached and MP.GAME.ready_blind and not MP.GAME.timer_started then return end + if not (MP.GAME.timer_started or MP.GAME.nemesis_timer_started) then return end + end + + if should_check_animations then + MP.TIMER_FORCE_GAMESPEED = true + + -- Don't tick during animations, unless the user is paused or has a menu open + local interactive = not ((G.CONTROLLER.locked and not G.CONTROLLER.locks.frame) or (G.GAME.STOP_USE or 0) > 0) + local menu_or_paused = G.SETTINGS.paused or G.OVERLAY_MENU + + -- Consume animations time from budget + if not (interactive or menu_or_paused) then + MP.TIMER_ANIMATION_BUDGET = math.max( + 0, + MP.TIMER_ANIMATION_BUDGET - timer_dt * (animation_budget_restore_rate + animation_budget_decay_rate) + ) + if MP.TIMER_ANIMATION_BUDGET > 0 then return end + end + end + + local speedup = is_pvp_timer and 1 or MP.current_ruleset().timer_speedup_multiplier or 1 + local tick_mult = MP.GAME.nemesis_timer_started and speedup or 1 + MP.GAME.timer = math.max(0, MP.GAME.timer - timer_dt * tick_mult) + + if MP.GAME.timer == 0 then + MP.GAME.timer_consumed = true + -- PvP timer: end PvP immediately as a loss (only when timered by opponent) + if is_pvp_timer then + if MP.GAME.nemesis_timer_started then MP.ACTIONS.fail_pvp_timer() end + -- Old, No-animations: lose a live when timered by opponent + -- Pressure timers: lose a live regardless + elseif is_pressure_timer or MP.GAME.nemesis_timer_started then + if MP.GAME.timers_forgiven < MP.LOBBY.config.timer_forgiveness then + MP.GAME.timers_forgiven = MP.GAME.timers_forgiven + 1 + else + MP.ACTIONS.fail_timer() + end + end + end +end + +function MP.UI.consume_timer(amount, silent, min_timer) + if amount > 0 and MP.LOBBY.config.timer and MP.GAME.timer and MP.GAME.timer > (min_timer or 0) then + MP.GAME.timer = math.max(0, MP.GAME.timer - amount) + if not silent then + local timer_ui = G.HUD:get_UIE_by_ID("timer_UI_count") + if timer_ui then timer_ui.config.object:juice_up() end + end + end +end + +function MP.UI.restore_timer(amount, silent, max_timer) + if amount > 0 and MP.LOBBY.config.timer and MP.GAME.timer and (not max_timer or MP.GAME.timer < max_timer) then + MP.GAME.timer = math.max(0, MP.GAME.timer + amount) + if not silent then + local timer_ui = G.HUD:get_UIE_by_ID("timer_UI_count") + if timer_ui then timer_ui.config.object:juice_up() end + end + end +end + +local old_play = G.FUNCS.play_cards_from_highlighted +function G.FUNCS.play_cards_from_highlighted(...) + -- Carbon: capture which hand slots are played BEFORE old_play consumes them. + local played = MP.UTILS.highlighted_hand_indices() + old_play(...) + if #played > 0 then MP.RLOG.record("play", { played }, "action:play,cards:" .. table.concat(played, ".")) end + if G.play and G.play.cards[1] then return end + if MP.LOBBY.code and MP.LOBBY.config.timer and not MP.GAME.timer_consumed then + if MP.is_pvp_boss() then + -- PvP timer: Increment timer when hand is played during pvp + if MP.is_layer_active("pvp_timer") then + local increment = MP.LOBBY.config.pvp_timer_hand_played_increment_seconds + or MP.current_ruleset().pvp_timer_hand_played_increment_seconds + or 0 + MP.UI.restore_timer(increment) + end + else + -- No-animation, Pressure timers: Increment timer when hand is played during regular blinds + if MP.is_any_layer_active({ "no_animation_timer", "pressure_timer" }) then + local increment = MP.LOBBY.config.timer_hand_played_increment_seconds + or MP.current_ruleset().timer_hand_played_increment_seconds + or 0 + MP.UI.restore_timer(increment) + end + end + end +end diff --git a/ui/game/zz_blind_raiser_score.lua b/ui/game/zz_blind_raiser_score.lua new file mode 100644 index 000000000..638ece1ad --- /dev/null +++ b/ui/game/zz_blind_raiser_score.lua @@ -0,0 +1,19 @@ +-- Loaded last in ui/game so the Blind Raiser score override is applied after +-- Multiplayer's other Blind:set_blind wrappers have finished. +if Blind and type(Blind.set_blind) == "function" then + local blind_set_blind_ref = Blind.set_blind + function Blind:set_blind(blind, reset, silent) + local ret = blind_set_blind_ref(self, blind, reset, silent) + if MP.BLIND_RAISER and MP.BLIND_RAISER.score_for_blind then + local score_ante = G.GAME.round_resets.blind_ante or G.GAME.round_resets.ante + self.chips = MP.BLIND_RAISER.score_for_blind( + blind or (self.config and self.config.blind), + G.GAME.blind_on_deck, + self.chips, + score_ante + ) + self.chip_text = number_format(self.chips) + end + return ret + end +end diff --git a/ui/lobby/_lobby_options/advanced_tab.lua b/ui/lobby/_lobby_options/advanced_tab.lua new file mode 100644 index 000000000..64d4c3478 --- /dev/null +++ b/ui/lobby/_lobby_options/advanced_tab.lua @@ -0,0 +1,207 @@ +local function send_lobby_options(value) + MP.ACTIONS.lobby_options() +end + +function G.FUNCS.custom_seed_overlay(e) + G.FUNCS.overlay_menu({ + definition = G.UIDEF.create_UIBox_custom_seed_overlay(), + }) +end + +function G.FUNCS.custom_seed_reset(e) + MP.LOBBY.config.custom_seed = "random" + send_lobby_options() +end + +function toggle_different_seeds() + G.FUNCS.lobby_options() + send_lobby_options() +end + +function G.FUNCS.display_custom_seed(e) + local display = MP.LOBBY.config.custom_seed == "random" and localize("k_random") or MP.LOBBY.config.custom_seed + if display ~= e.children[1].config.text then + e.children[2].config.text = display + e.UIBox:recalculate(true) + end +end + +function G.UIDEF.create_UIBox_custom_seed_overlay() + return create_UIBox_generic_options({ + back_func = "lobby_options", + contents = { + { + n = G.UIT.R, + config = { align = "cm", colour = G.C.CLEAR }, + nodes = { + { + n = G.UIT.C, + config = { align = "cm", minw = 0.1 }, + nodes = { + create_text_input({ + max_length = 8, + all_caps = true, + ref_table = MP.LOBBY, + ref_value = "temp_seed", + prompt_text = localize("k_enter_seed"), + keyboard_offset = 4, + callback = function(val) + MP.LOBBY.config.custom_seed = MP.LOBBY.temp_seed + send_lobby_options() + end, + }), + { + n = G.UIT.B, + config = { w = 0.1, h = 0.1 }, + }, + { + n = G.UIT.T, + config = { + scale = 0.3, + text = localize("k_enter_to_save"), + colour = G.C.UI.TEXT_LIGHT, + }, + }, + }, + }, + }, + }, + }, + }) +end + +local function create_custom_seed_section() + if MP.LOBBY.config.different_seeds then return { n = G.UIT.B, config = { w = 0.1, h = 0.1 } } end + + return { + n = G.UIT.R, + config = { padding = 0, align = "cr" }, + nodes = { + { + n = G.UIT.R, + config = { + padding = 0, + align = "cr", + }, + nodes = { + { + n = G.UIT.C, + config = { + padding = 0, + align = "cm", + }, + nodes = { + { + n = G.UIT.R, + config = { + padding = 0.2, + align = "cr", + func = "display_custom_seed", + }, + nodes = { + { + n = G.UIT.T, + config = { + scale = 0.45, + text = localize("k_current_seed"), + colour = G.C.UI.TEXT_LIGHT, + }, + }, + { + n = G.UIT.T, + config = { + scale = 0.45, + text = MP.LOBBY.config.custom_seed, + colour = G.C.UI.TEXT_LIGHT, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { + padding = 0.2, + align = "cr", + }, + nodes = { + MP.UI.Disableable_Button({ + id = "custom_seed_overlay", + button = "custom_seed_overlay", + colour = G.C.BLUE, + minw = 3.65, + minh = 0.6, + label = { + localize("b_set_custom_seed"), + }, + disabled_text = { + localize("b_set_custom_seed"), + }, + scale = 0.45, + col = true, + enabled_ref_table = MP.LOBBY, + enabled_ref_value = "is_host", + }), + { + n = G.UIT.B, + config = { + w = 0.1, + h = 0.1, + }, + }, + MP.UI.Disableable_Button({ + id = "custom_seed_reset", + button = "custom_seed_reset", + colour = G.C.RED, + minw = 1.65, + minh = 0.6, + label = { + localize("b_reset"), + }, + disabled_text = { + localize("b_reset"), + }, + scale = 0.45, + col = true, + enabled_ref_table = MP.LOBBY, + enabled_ref_value = "is_host", + }), + }, + }, + }, + }, + }, + }, + }, + } +end + +function MP.UI.create_advanced_options_tab() + return { + n = G.UIT.ROOT, + config = { + emboss = 0.05, + minh = 4, + r = 0.1, + minw = 10, + align = "tm", + padding = 0.2, + colour = G.C.BLACK, + }, + nodes = { + create_lobby_option_toggle("preview_disabled_toggle", "b_opts_disable_preview", "preview_disabled"), + create_lobby_option_toggle("order_toggle", "b_opts_the_order", "the_order"), + MP.is_layer_active("smallworld") and create_lobby_option_toggle( + "legacy_smallworld_toggle", + "b_opts_legacy_smallworld", + "legacy_smallworld" + ) or nil, + create_lobby_option_toggle( + "different_seeds_toggle", + "b_opts_diff_seeds", + "different_seeds", + toggle_different_seeds + ), + create_custom_seed_section(), + }, + } +end diff --git a/ui/lobby/_lobby_options/gameplay_tab.lua b/ui/lobby/_lobby_options/gameplay_tab.lua new file mode 100644 index 000000000..ec8b215ad --- /dev/null +++ b/ui/lobby/_lobby_options/gameplay_tab.lua @@ -0,0 +1,24 @@ +function MP.UI.create_gameplay_options_tab() + return { + n = G.UIT.ROOT, + config = { + emboss = 0.05, + minh = 3, + r = 0.1, + minw = 10, + align = "tm", + padding = 0.2, + colour = G.C.BLACK, + }, + nodes = { + create_lobby_option_toggle("gold_on_life_loss_toggle", "b_opts_cb_money", "gold_on_life_loss"), + create_lobby_option_toggle( + "no_gold_on_round_loss_toggle", + "b_opts_no_gold_on_loss", + "no_gold_on_round_loss" + ), + create_lobby_option_toggle("death_on_round_loss_toggle", "b_opts_death_on_loss", "death_on_round_loss"), + create_lobby_option_toggle("timer_toggle", "b_opts_timer", "timer"), + }, + } +end diff --git a/ui/lobby/_lobby_options/main_options.lua b/ui/lobby/_lobby_options/main_options.lua new file mode 100644 index 000000000..c9481fea5 --- /dev/null +++ b/ui/lobby/_lobby_options/main_options.lua @@ -0,0 +1,118 @@ +local function create_main_lobby_options_title(info_area_id) + local title_colour = mix_colours(G.C.RED, G.C.BLACK, 0.6) + local title = "ERROR" + + if info_area_id == "ruleset_area" then + title_colour = mix_colours(G.C.BLUE, G.C.BLACK, 0.6) + title = localize("k_rulesets") or "ERROR" + end + + if info_area_id == "gamemode_area" then + title_colour = mix_colours(G.C.ORANGE, G.C.BLACK, 0.6) + title = localize("k_gamemodes") or "ERROR" + end + + if title == "ERROR" then return nil end + + return MP.UI.UTILS.create_row({ id = "ruleset_name", align = "cm", padding = 0.07 }, { + MP.UI.UTILS.create_row({ + align = "cm", + r = 0.1, + outline = 1, + outline_colour = title_colour, + colour = darken(title_colour, 0.3), + minw = 2.9, + emboss = 0.1, + padding = 0.07, + line_emboss = 1, + }, { + MP.UI.UTILS.create_object_node(MP.UI.UTILS.create_dynatext(title, { + colours = { G.C.WHITE }, + float = true, + y_offset = -4, + scale = 0.45, + maxw = 2.8, + })), + }), + }) +end + +function MP.UI.Main_Lobby_Options(info_area_id, default_info_area, button_func, buttons_data) + local categories = { + create_main_lobby_options_title(info_area_id), + } + for cat_idx, category in ipairs(buttons_data) do + local buttons = {} + for btn_idx, data in ipairs(category.buttons) do + local col = data.button_col or G.C.RED + if data.button_id == "weekly_ruleset_button" then -- putting the logic here because whatever + if (not MP.LOBBY.config.weekly) or (MP.LOBBY.config.weekly ~= MP.LOBBY.fetched_weekly) then + col = G.C.DARK_EDITION + end + end + local button = UIBox_button({ + id = data.button_id, + col = true, + chosen = (cat_idx == 1 and btn_idx == 1 and "vert" or false), + label = { localize(data.button_localize_key) }, + button = button_func, + colour = col, + minw = 4, + scale = 0.4, + minh = 0.6, + }) + buttons[#buttons + 1] = MP.UI.UTILS.create_row({ align = "cm", padding = 0.05 }, { button }) + end + categories[#categories + 1] = MP.UI.BackgroundGrouping(localize(category.name), buttons) + end + + return { + n = G.UIT.ROOT, config = { colour = G.C.CLEAR }, + nodes = { + { n = G.UIT.C, config = { align = "tm", minh = 8, minw = 4, padding = 0.1 }, nodes = categories }, + { + n = G.UIT.C, + config = { align = "cm", minh = 8, maxh = 8, minw = 11 }, + nodes = { + { n = G.UIT.O, config = { id = info_area_id, object = default_info_area } }, + }, + }, + } + } +end + +function MP.UI.Change_Main_Lobby_Options(e, info_area_id, info_area_func, default_button_id, update_lobby_config_func) + if not G.OVERLAY_MENU then return end + + local info_area = G.OVERLAY_MENU:get_UIE_by_ID(info_area_id) + if not info_area then return end + + -- Switch 'chosen' status from the previously-chosen button to this one: + if info_area.config.prev_chosen then + info_area.config.prev_chosen.config.chosen = nil + else -- The previously-chosen button should be the default one here: + local default_button = G.OVERLAY_MENU:get_UIE_by_ID(default_button_id) + if default_button then default_button.config.chosen = nil end + end + e.config.chosen = "vert" -- Special setting to show 'chosen' indicator on the side + + local info_obj_name = string.match(e.config.id, "(.+)_%w+_button") + update_lobby_config_func(info_obj_name) + + if info_area.config.object then info_area.config.object:remove() end + info_area.config.object = UIBox({ + definition = info_area_func(info_obj_name), + config = { align = "cm", parent = info_area }, + }) + + info_area.config.object:recalculate() + + info_area.config.prev_chosen = e +end + +function MP.UI.update_lobby_option_toggle(option_key) + if G.OVERLAY_MENU then + local config_uie = G.OVERLAY_MENU:get_UIE_by_ID(option_key .. "_toggle") + if config_uie then G.FUNCS.toggle(config_uie) end + end +end diff --git a/ui/lobby/_lobby_options/modifiers_tab.lua b/ui/lobby/_lobby_options/modifiers_tab.lua new file mode 100644 index 000000000..f231cac13 --- /dev/null +++ b/ui/lobby/_lobby_options/modifiers_tab.lua @@ -0,0 +1,103 @@ +-- Component for gamemode modifiers tab containing option cycles +G.FUNCS.change_starting_pvp_round = function(args) + MP.LOBBY.config.pvp_start_round = args.to_val + send_lobby_options() +end + +G.FUNCS.change_timer_base_seconds = function(args) + local mult = MP.LOBBY.config.timer_base_multiplier or MP.current_ruleset().timer_base_multiplier or 1 + MP.LOBBY.config.timer_base_seconds = tonumber(args.to_val:sub(1, -2)) / mult + send_lobby_options() +end + +G.FUNCS.change_timer_increment_seconds = function(args) + MP.LOBBY.config.timer_increment_seconds = tonumber(args.to_val:sub(1, -2)) + send_lobby_options() +end + +G.FUNCS.change_showdown_starting_antes = function(args) + MP.LOBBY.config.showdown_starting_antes = args.to_val + send_lobby_options() +end + +G.FUNCS.change_pvp_countdown_seconds = function(args) + MP.LOBBY.config.pvp_countdown_seconds = args.to_val + send_lobby_options() +end + +function MP.UI.create_gamemode_modifiers_tab() + local mult = MP.LOBBY.config.timer_base_multiplier or MP.current_ruleset().timer_base_multiplier or 1 + + local time_options = { 30, 60, 90, 120, 150, 180, 210, 240 } + local result_timer_options = {} + for i, option in ipairs(time_options) do + result_timer_options[i] = tostring(option * mult) .. "s" + end + + return { + n = G.UIT.ROOT, + config = { + emboss = 0.05, + minh = 6, + r = 0.1, + minw = 10, + align = "tm", + padding = 0.2, + colour = G.C.BLACK, + }, + nodes = { + { + n = G.UIT.R, + config = { padding = 0, align = "cm" }, + nodes = { + create_lobby_option_cycle( + "pvp_timer_seconds_option", + "k_opts_pvp_timer", + 0.85, + result_timer_options, + MP.UTILS.get_array_index_by_value( + time_options, + MP.LOBBY.config.timer_base_seconds + ), + "change_timer_base_seconds" + ), + create_lobby_option_cycle( + "pvp_timer_increment_seconds_option", + "k_opts_pvp_timer_increment", + 0.85, + { "0s", "30s", "60s", "90s", "120s", "150s", "180s" }, + MP.UTILS.get_array_index_by_value( + { 0, 30, 60, 90, 120, 150, 180 }, + MP.LOBBY.config.timer_increment_seconds + ), + "change_timer_increment_seconds" + ) or nil, + create_lobby_option_cycle( + "pvp_round_start_option", + "k_opts_pvp_start_round", + 0.85, + { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }, + MP.LOBBY.config.pvp_start_round, + "change_starting_pvp_round" + ), + create_lobby_option_cycle( + "showdown_starting_antes_option", + "k_opts_showdown_starting_antes", + 0.85, + { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }, + MP.LOBBY.config.showdown_starting_antes, + "change_showdown_starting_antes" + ), + create_lobby_option_cycle( + "pvp_countdown_seconds_option", + "k_opts_pvp_countdown_seconds", + 0.85, + { 0, 3, 5, 10 }, + MP.UTILS.get_array_index_by_value({ 0, 3, 5, 10 }, MP.LOBBY.config.pvp_countdown_seconds), + "change_pvp_countdown_seconds" + ), + }, + }, + }, + } +end diff --git a/ui/lobby/_lobby_options/options_tab.lua b/ui/lobby/_lobby_options/options_tab.lua new file mode 100644 index 000000000..563419fd9 --- /dev/null +++ b/ui/lobby/_lobby_options/options_tab.lua @@ -0,0 +1,93 @@ +local Disableable_Toggle = MP.UI.Disableable_Toggle + +-- TODO repetition but w/e... +function send_lobby_options(value) + MP.ACTIONS.lobby_options() +end + +function create_lobby_option_cycle(id, label_key, scale, options, current_option, callback) + return MP.UI.Disableable_Option_Cycle({ + id = id, + enabled_ref_table = MP.LOBBY, + enabled_ref_value = "is_host", + label = localize(label_key), + scale = scale, + options = options, + current_option = current_option, + opt_callback = callback, + }) +end + +-- Component for lobby options tab containing toggles and custom seed section +function create_lobby_option_toggle(id, label_key, ref_value, callback) + return { + n = G.UIT.R, + config = { + padding = 0, + align = "cr", + }, + nodes = { + Disableable_Toggle({ + id = id, + enabled_ref_table = MP.LOBBY, + enabled_ref_value = "is_host", + label = localize(label_key), + ref_table = MP.LOBBY.config, + ref_value = ref_value, + callback = callback or send_lobby_options, + }), + }, + } +end + +G.FUNCS.change_starting_lives = function(args) + MP.LOBBY.config.starting_lives = args.to_val + send_lobby_options() +end + +-- This needs to have a parameter because its a callback for inputs +local function send_lobby_options(value) + MP.ACTIONS.lobby_options() +end + +-- Creates the lobby options tab UI containing toggles for various multiplayer settings +-- Returns a UI table with lobby configuration options like gold on life loss, different seeds, etc. +function MP.UI.create_lobby_options_tab() + return { + n = G.UIT.ROOT, + config = { + emboss = 0.05, + minh = 4, + r = 0.1, + minw = 10, + align = "tm", + padding = 0.2, + colour = G.C.BLACK, + }, + nodes = { + create_lobby_option_cycle( + "starting_lives_option", + "b_opts_lives", + 0.85, + { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }, + MP.LOBBY.config.starting_lives, + "change_starting_lives" + ), + create_lobby_option_toggle("multiplayer_jokers_toggle", "b_opts_multiplayer_jokers", "multiplayer_jokers"), + create_lobby_option_toggle("different_decks_toggle", "b_opts_player_diff_deck", "different_decks", function() + send_lobby_options() + MP.ACTIONS.update_player_usernames() + end), + create_lobby_option_toggle("random_loadout_toggle", "b_opts_random_loadout", "random_loadout", function() + send_lobby_options() + MP.ACTIONS.update_player_usernames() + end), + create_lobby_option_toggle("normal_bosses_toggle", "b_opts_normal_bosses", "normal_bosses"), + create_lobby_option_toggle( + "hide_score_until_played_toggle", + "b_opts_hide_score", + "hide_score_until_played" + ), + }, + } +end diff --git a/ui/lobby/deck_stake_button.lua b/ui/lobby/deck_stake_button.lua new file mode 100644 index 000000000..0795b612f --- /dev/null +++ b/ui/lobby/deck_stake_button.lua @@ -0,0 +1,45 @@ +local Disableable_Button = MP.UI.Disableable_Button + +-- Component for deck selection button in lobby +function MP.UI.create_lobby_deck_button(text_scale, back, stake) + local deck_labels = { + MP.LOBBY.config.random_loadout and "???" or localize({ + type = "name_text", + key = MP.UTILS.get_deck_key_from_name(back), + set = "Back", + }), + MP.LOBBY.config.random_loadout and "???" or localize({ + type = "name_text", + key = SMODS.stake_from_index(type(stake) == "string" and tonumber(stake) or stake), + set = "Stake", + }), + } + + if MP.LOBBY.is_host then + return Disableable_Button({ + id = "lobby_choose_deck", + button = "lobby_choose_deck", + colour = G.C.PURPLE, + minw = 2.15, + minh = 1.35, + label = deck_labels, + scale = text_scale * 1.2, + col = true, + enabled_ref_table = MP.LOBBY, + enabled_ref_value = "is_host", + }) + else + return Disableable_Button({ + id = "lobby_choose_deck", + button = "lobby_choose_deck", + colour = G.C.PURPLE, + minw = 2.15, + minh = 1.35, + label = deck_labels, + scale = text_scale * 1.2, + col = true, + enabled_ref_table = MP.LOBBY.config, + enabled_ref_value = "different_decks", + }) + end +end diff --git a/ui/lobby/leave_button.lua b/ui/lobby/leave_button.lua new file mode 100644 index 000000000..a97548959 --- /dev/null +++ b/ui/lobby/leave_button.lua @@ -0,0 +1,13 @@ +-- Component for leave button in lobby +function MP.UI.create_lobby_leave_button(text_scale) + return UIBox_button({ + id = "lobby_menu_leave", + button = "lobby_leave", + colour = G.C.RED, + minw = 3.65, + minh = 1.55, + label = { localize("b_leave") }, + scale = text_scale * 1.5, + col = true, + }) +end diff --git a/ui/lobby/lobby.lua b/ui/lobby/lobby.lua new file mode 100644 index 000000000..094c8e1d5 --- /dev/null +++ b/ui/lobby/lobby.lua @@ -0,0 +1,643 @@ +-- This needs to have a parameter because its a callback for inputs +local function send_lobby_options(value) + MP.ACTIONS.lobby_options() +end + +G.HUD_connection_status = nil + +function G.UIDEF.get_connection_status_ui() + return UIBox({ + definition = { + n = G.UIT.ROOT, + config = { + align = "cm", + colour = G.C.UI.TRANSPARENT_DARK, + }, + nodes = { + MP.UI.UTILS.create_text_node( + (MP.LOBBY.code and localize("k_in_lobby")) + or (MP.LOBBY.connected and localize("k_connected")) + or localize("k_warn_service"), + { + scale = 0.3, + colour = G.C.UI.TEXT_LIGHT, + } + ), + }, + }, + config = { + align = "tri", + bond = "Weak", + offset = { + x = 0, + y = 0.9, + }, + major = G.ROOM_ATTACH, + }, + }) +end + +function G.UIDEF.create_UIBox_lobby_menu() + local text_scale = 0.45 + local back = MP.LOBBY.config.different_decks and MP.LOBBY.deck.back or MP.LOBBY.config.back + local stake = MP.LOBBY.config.different_decks and MP.LOBBY.deck.stake or MP.LOBBY.config.stake + + local t = { + n = G.UIT.ROOT, + config = { + align = "cm", + colour = G.C.CLEAR, + }, + nodes = { + { + n = G.UIT.C, + config = { + align = "bm", + }, + nodes = { + MP.UI.lobby_status_display(), + { + n = G.UIT.R, + config = { + align = "cm", + padding = 0.2, + r = 0.1, + emboss = 0.1, + colour = G.C.L_BLACK, + mid = true, + }, + nodes = { + MP.UI.create_lobby_main_button(text_scale), + { + n = G.UIT.C, + config = { + align = "cm", + }, + nodes = { + not MP.LOBBY.config.forced_config and UIBox_button({ + button = "lobby_options", + colour = G.C.ORANGE, + minw = 3.15, + minh = 1.35, + label = { + localize("b_lobby_options"), + }, + scale = text_scale * 1.2, + col = true, + }) or nil, + MP.UI.create_spacer(), + MP.UI.create_lobby_deck_button(text_scale, back, stake), + MP.UI.create_spacer(), + MP.UI.create_players_section(text_scale), + MP.UI.create_spacer(), + MP.UI.create_lobby_code_buttons(text_scale), + }, + }, + MP.UI.create_lobby_leave_button(text_scale), + }, + }, + }, + }, + }, + } + return t +end + +function G.UIDEF.create_UIBox_lobby_options() + return create_UIBox_generic_options({ + contents = { + { + n = G.UIT.R, + config = { + padding = 0, + align = "cm", + }, + nodes = { + not MP.LOBBY.is_host and MP.UI.UTILS.create_row({ align = "cm", padding = 0.3 }, { + MP.UI.UTILS.create_text_node(localize("k_opts_only_host"), { + scale = 0.6, + colour = G.C.UI.TEXT_LIGHT, + }), + }) or nil, + create_tabs({ + snap_to_nav = true, + colour = G.C.BOOSTER, + tabs = { + { + label = localize("k_lobby_general"), + chosen = true, + tab_definition_function = function() + return MP.UI.create_lobby_options_tab() + end, + }, + { + label = localize("k_lobby_gameplay"), + tab_definition_function = function() + return MP.UI.create_gameplay_options_tab() + end, + }, + { + label = localize("k_lobby_modifiers"), + tab_definition_function = function() + return MP.UI.create_gamemode_modifiers_tab() + end, + }, + { + label = localize("k_lobby_advanced"), + tab_definition_function = function() + return MP.UI.create_advanced_options_tab() + end, + }, + }, + }), + }, + }, + }, + }) +end + +function G.UIDEF.create_UIBox_custom_seed_overlay() + return create_UIBox_generic_options({ + back_func = "lobby_options", + contents = { + MP.UI.UTILS.create_row({ align = "cm", colour = G.C.CLEAR }, { + MP.UI.UTILS.create_column({ align = "cm", minw = 0.1 }, { + create_text_input({ + max_length = 8, + all_caps = true, + ref_table = MP.LOBBY, + ref_value = "temp_seed", + prompt_text = localize("k_enter_seed"), + keyboard_offset = 4, + callback = function(val) + MP.LOBBY.config.custom_seed = MP.LOBBY.temp_seed + send_lobby_options() + end, + }), + MP.UI.UTILS.create_blank(0.1, 0.1), + MP.UI.UTILS.create_text_node(localize("k_enter_to_save"), { + scale = 0.3, + colour = G.C.UI.TEXT_LIGHT, + }), + }), + }), + }, + }) +end + +function G.UIDEF.create_UIBox_view_hash(type) + return ( + create_UIBox_generic_options({ + contents = { + MP.UI.UTILS.create_column( + { padding = 0.07, align = "cm" }, + MP.UI.modlist_to_view( + type == "host" and MP.LOBBY.host.config.Mods or MP.LOBBY.guest.config.Mods, + G.C.UI.TEXT_LIGHT + ) + ), + }, + }) + ) +end + +function MP.UI.modlist_to_view(mods, text_colour) + local t = {} + + if not mods then + return t + end + + local special_mods_targets = { + "Steamodded", + "Lovely", + "Multiplayer", + "Preview", + } + local special_mods_found = {} + local other_mods = {} + for mod_name, mod_version in pairs(mods) do + local found = false + for _, id in ipairs(special_mods_targets) do + if not special_mods_found[id] and MP.UTILS.string_starts(mod_name, id) then + special_mods_found[id] = { name = mod_name, version = mod_version } + found = true + break + end + end + if not found then + table.insert(other_mods, { name = mod_name, version = mod_version }) + end + end + + table.sort(other_mods, function(a, b) + return a.name < b.name + end) + + local function add_mod_row(mod) + local mod_name, mod_version = MP.UTILS.resolve_mod_name_and_version(mod.name, mod.version) + local color = MP.BANNED_MODS[mod.name] and G.C.RED or text_colour + table.insert(t, { + n = G.UIT.R, + config = { + padding = 0.025, + }, + nodes = { + { + n = G.UIT.T, + config = { + text = mod_name, + scale = 0.32, + colour = color, + }, + }, + mod_version and { + n = G.UIT.T, + config = { + text = " " .. mod_version, + scale = 0.32, + colour = adjust_alpha(color, 0.6), + }, + } or nil, + }, + }) + end + local function add_separator() + table.insert(t, { + n = G.UIT.R, + config = { + minh = 0.025, + colour = adjust_alpha(text_colour, 0.25), + }, + }) + end + + for _, mod in pairs({ special_mods_found.Lovely, special_mods_found.Steamodded }) do + add_mod_row(mod) + end + add_separator() + for _, mod in pairs({ special_mods_found.Multiplayer, special_mods_found.Preview }) do + add_mod_row(mod) + end + add_separator() + for _, mod in ipairs(other_mods) do + add_mod_row(mod) + end + return t +end + +G.FUNCS.view_host_hash = function(e) + G.FUNCS.overlay_menu({ + definition = G.UIDEF.create_UIBox_view_hash("host"), + }) +end + +G.FUNCS.view_guest_hash = function(e) + G.FUNCS.overlay_menu({ + definition = G.UIDEF.create_UIBox_view_hash("guest"), + }) +end + +function G.FUNCS.get_lobby_main_menu_UI(e) + return UIBox({ + definition = G.UIDEF.create_UIBox_lobby_menu(), + config = { + align = "bmi", + offset = { + x = 0, + y = 10, + }, + major = G.ROOM_ATTACH, + bond = "Weak", + }, + }) +end + +local function get_random_back_pool() + local names, seen = {}, {} + local cocktail_keys = MP.get_cocktail_decks(false) + for i = 1, #cocktail_keys do + local key = cocktail_keys[i] + if G.P_CENTERS[key] and not seen[key] then + seen[key] = true + names[#names + 1] = G.P_CENTERS[key].name + end + end + if G.P_CENTERS["b_mp_cocktail"] and not seen["b_mp_cocktail"] then + names[#names + 1] = G.P_CENTERS["b_mp_cocktail"].name + end + return names +end + +local function scoped_random(seed, salt, max) + if seed then + math.randomseed(pseudohash(seed .. "_mp_random_" .. salt)) + end + return math.random(1, max) +end + +local function roll_random_back_name(seed, salt) + local names = get_random_back_pool() + if #names == 0 then return "Red Deck" end + return names[scoped_random(seed, "deck_" .. (salt or ""), #names)] +end + +local function roll_random_stake(seed, salt) + local cap = MP.DECK.MAX_STAKE > 0 and MP.DECK.MAX_STAKE or 8 + return scoped_random(seed, "stake_" .. (salt or ""), cap) +end + +---@type fun(e: table | nil, args: { deck: string, stake: number | nil, seed: string | nil }) +function G.FUNCS.lobby_start_run(e, args) + if MP.LOBBY.config.different_decks == false then G.FUNCS.copy_host_deck() end + + if MP.LOBBY.config.different_decks and MP.LOBBY.config.random_loadout then + MP.LOBBY.deck.back = roll_random_back_name(args.seed, MP.LOBBY.username) + MP.LOBBY.deck.challenge = "" + MP.LOBBY.deck.stake = roll_random_stake(args.seed, MP.LOBBY.username) + end + + local challenge = nil + if MP.LOBBY.deck.back == "Challenge Deck" then + challenge = G.CHALLENGES[get_challenge_int_from_id(MP.LOBBY.deck.challenge)] + else + G.GAME.viewed_back = G.P_CENTERS[MP.UTILS.get_deck_key_from_name(MP.LOBBY.deck.back)] + end + + G.FUNCS.start_run(e, { + mp_start = true, + challenge = challenge, + stake = tonumber(MP.LOBBY.deck.stake), + seed = args.seed, + }) +end + +local back_generate_ui_ref = Back.generate_UI +function Back:generate_UI(other, ui_scale, min_dims, challenge) + local name = other and other.name or self.name + if not challenge and name == "Challenge Deck" and MP.LOBBY.code then + challenge = MP.LOBBY.deck.challenge -- very generous assumption + local ret = back_generate_ui_ref(self, other, ui_scale, min_dims, challenge) + + -- essentially the button opens the correct challenge menu + -- exiting this challenge menu results in a crash that's difficult to figure out + -- (some sort of jank when removing the ui elements) + -- hacky fallback to ensure that doesn't happen, but ideally one day this gets fixed + + ret.nodes[1].nodes[1].config.button = "exit_overlay_menu" + + return ret + end + return back_generate_ui_ref(self, other, ui_scale, min_dims, challenge) +end + +function G.FUNCS.copy_host_deck() + MP.LOBBY.deck.back = MP.LOBBY.config.back + MP.LOBBY.deck.cocktail = MP.LOBBY.config.cocktail + MP.LOBBY.deck.sleeve = MP.LOBBY.config.sleeve + MP.LOBBY.deck.stake = MP.LOBBY.config.stake + MP.LOBBY.deck.challenge = MP.LOBBY.config.challenge +end + +function G.FUNCS.lobby_start_game(e) + if MP.LOBBY.config.random_loadout then + MP.LOBBY.config.back = roll_random_back_name() + MP.LOBBY.config.challenge = "" + MP.LOBBY.config.stake = roll_random_stake() + send_lobby_options() + end + MP.ACTIONS.start_game() +end + +function G.FUNCS.lobby_ready_up(e) + -- On the first ready-up with a version mismatch, show the modal and bail without readying; + -- the guest must dismiss and press Ready again. Keeps the host's Start (gated on + -- ready_to_start) disabled until the mismatch is acknowledged. + if not MP.LOBBY.ready_to_start and MP.UI.show_version_mismatch_if_needed() then return end + + MP.LOBBY.ready_to_start = not MP.LOBBY.ready_to_start + + e.config.colour = MP.LOBBY.ready_to_start and G.C.GREEN or G.C.RED + e.children[1].children[1].config.text = MP.LOBBY.ready_to_start and localize("b_unready") or localize("b_ready") + e.UIBox:recalculate() + + if MP.LOBBY.ready_to_start then + MP.ACTIONS.ready_lobby() + else + MP.ACTIONS.unready_lobby() + end +end + +function G.FUNCS.lobby_options(e) + G.FUNCS.overlay_menu({ + definition = G.UIDEF.create_UIBox_lobby_options(), + }) +end + +function G.FUNCS.view_code(e) + local text_config = e.children[1].children[1].config + if text_config.text ~= MP.LOBBY.code then + e.config.colour = G.C.ETERNAL + text_config.text = MP.LOBBY.code + else + e.config.colour = G.C.GREEN + text_config.text = localize("b_view_code") + end + e.UIBox:recalculate() +end + +function G.FUNCS.lobby_leave(e) + if G.STAGE ~= G.STAGES.MAIN_MENU then + G.FUNCS.confirm_selection(function() + MP.LOBBY.code = nil + MP.ACTIONS.leave_lobby() + MP.UI.update_connection_status() + MP.MODIFIERS = {} + MP._version_mismatch_shown = false + G.STATE = G.STATES.MENU + end) + else + MP.LOBBY.code = nil + MP.ACTIONS.leave_lobby() + MP.UI.update_connection_status() + MP.MODIFIERS = {} + MP._version_mismatch_shown = false + G.STATE = G.STATES.MENU + end +end + +function G.FUNCS.lobby_choose_deck(e) + G.FUNCS.setup_run(e) + if G.OVERLAY_MENU then G.OVERLAY_MENU:get_UIE_by_ID("run_setup_seed"):remove() end +end + +local start_run_ref = G.FUNCS.start_run +G.FUNCS.start_run = function(e, args) + if MP.LOBBY.code then + if not args.mp_start then + G.FUNCS.exit_overlay_menu() + local chosen_stake = args.stake + if MP.DECK.MAX_STAKE > 0 and chosen_stake > MP.DECK.MAX_STAKE then + MP.UI.UTILS.overlay_message( + "Selected stake is incompatible with Multiplayer, stake set to " + .. SMODS.stake_from_index(MP.DECK.MAX_STAKE) + ) + chosen_stake = MP.DECK.MAX_STAKE + end + if MP.LOBBY.is_host then + MP.LOBBY.config.back = args.challenge and "Challenge Deck" + or (args.deck and args.deck.name) + or G.GAME.viewed_back.name + MP.LOBBY.config.stake = chosen_stake + MP.LOBBY.config.sleeve = G.viewed_sleeve + MP.LOBBY.config.challenge = args.challenge and args.challenge.id or "" + send_lobby_options() + end + MP.LOBBY.deck.back = args.challenge and "Challenge Deck" + or (args.deck and args.deck.name) + or G.GAME.viewed_back.name + MP.LOBBY.deck.stake = chosen_stake + MP.LOBBY.deck.sleeve = G.viewed_sleeve + MP.LOBBY.deck.challenge = args.challenge and args.challenge.id or "" + MP.ACTIONS.update_player_usernames() + else + start_run_ref(e, { + challenge = args.challenge, + stake = tonumber(MP.LOBBY.deck.stake), + seed = args.seed, + }) + end + else + start_run_ref(e, args) + end +end + +function G.FUNCS.display_lobby_main_menu_UI(e) + G.MAIN_MENU_UI = G.FUNCS.get_lobby_main_menu_UI(e) + G.MAIN_MENU_UI.alignment.offset.y = 0 + G.MAIN_MENU_UI:align_to_major() + + G.CONTROLLER:snap_to({ node = G.MAIN_MENU_UI:get_UIE_by_ID("lobby_menu_start") }) +end + +function G.FUNCS.mp_return_to_lobby() + G.FUNCS.confirm_selection(function() + MP.ACTIONS.stop_game() + end) +end + +function G.FUNCS.custom_seed_overlay(e) + G.FUNCS.overlay_menu({ + definition = G.UIDEF.create_UIBox_custom_seed_overlay(), + }) +end + +function G.FUNCS.custom_seed_reset(e) + MP.LOBBY.config.custom_seed = "random" + send_lobby_options() +end + +local set_main_menu_UI_ref = set_main_menu_UI +---@diagnostic disable-next-line: lowercase-global +function set_main_menu_UI() + if MP.LOBBY.code then + if G.MAIN_MENU_UI then G.MAIN_MENU_UI:remove() end + if G.STAGE == G.STAGES.MAIN_MENU then G.FUNCS.display_lobby_main_menu_UI() end + else + set_main_menu_UI_ref() + end +end + +local data_sync_interval = 5 +local data_sync_delay = data_sync_interval + +local in_lobby = false +local gameUpdateRef = Game.update +---@diagnostic disable-next-line: duplicate-set-field +function Game:update(dt) + -- Track lobby state transitions + if (MP.LOBBY.code and not in_lobby) or (not MP.LOBBY.code and in_lobby) then + in_lobby = not in_lobby + G.F_NO_SAVING = in_lobby + if true then -- G.STATE == G.STATES.MENU, revert if something breaks, but this causes disconnects to not exit the game + self.FUNCS.go_to_menu() + MP.reset_game_states() + end + end + -- Data sync every 5 seconds + if MP.LOBBY.code and G.STAGE == G.STAGES.RUN then + data_sync_delay = data_sync_delay - dt + if data_sync_delay < 0 then + data_sync_delay = data_sync_interval + MP.ACTIONS.data_sync() + end + end + gameUpdateRef(self, dt) +end + +function G.UIDEF.create_UIBox_unstuck() + return ( + create_UIBox_generic_options({ + back_func = "options", + contents = { + { + n = G.UIT.C, + config = { + padding = 0.2, + align = "cm", + }, + nodes = { + UIBox_button({ label = { localize("b_unstuck_blind") }, button = "mp_unstuck_blind", minw = 5 }), + }, + }, + }, + }) + ) +end + +function G.FUNCS.mp_unstuck() + G.FUNCS.overlay_menu({ + definition = G.UIDEF.create_UIBox_unstuck(), + }) +end + +function G.FUNCS.mp_unstuck_arcana() + G.FUNCS.skip_booster() +end + +function G.FUNCS.mp_unstuck_blind() + MP.GAME.ready_blind = false + if MP.GAME.next_blind_context then + G.FUNCS.select_blind(MP.GAME.next_blind_context) + else + sendErrorMessage("No next blind context", "MULTIPLAYER") + end +end + +function MP.UI.update_connection_status() + if G.HUD_connection_status then G.HUD_connection_status:remove() end + if G.STAGE == G.STAGES.MAIN_MENU then G.HUD_connection_status = G.UIDEF.get_connection_status_ui() end +end + +local gameMainMenuRef = Game.main_menu +---@diagnostic disable-next-line: duplicate-set-field +function Game:main_menu(change_context) + gameMainMenuRef(self, change_context) + MP.UI.update_connection_status() +end + +function G.FUNCS.copy_to_clipboard(e) + MP.UTILS.copy_to_clipboard(MP.LOBBY.code) +end + +function G.FUNCS.reconnect(e) + MP.ACTIONS.connect() + G.FUNCS.exit_overlay_menu() +end + +function MP.update_player_usernames() + if MP.LOBBY.code then + if G.MAIN_MENU_UI then G.MAIN_MENU_UI:remove() end + if G.STAGE == G.STAGES.MAIN_MENU then G.FUNCS.display_lobby_main_menu_UI() end + end +end diff --git a/ui/lobby/lobby_code_buttons.lua b/ui/lobby/lobby_code_buttons.lua new file mode 100644 index 000000000..2c17b9df8 --- /dev/null +++ b/ui/lobby/lobby_code_buttons.lua @@ -0,0 +1,28 @@ +-- Component for view/copy code buttons in lobby +function MP.UI.create_lobby_code_buttons(text_scale) + return { + n = G.UIT.C, + config = { + align = "cm", + }, + nodes = { + UIBox_button({ + button = "view_code", + colour = G.C.PALE_GREEN, + minw = 2.15, + minh = 0.65, + label = { localize("b_view_code") }, + scale = text_scale * 1.2, + }), + MP.UI.create_spacer(0.1, true), + UIBox_button({ + button = "copy_to_clipboard", + colour = G.C.PERISHABLE, + minw = 2.15, + minh = 0.65, + label = { localize("b_copy_code") }, + scale = text_scale, + }), + }, + } +end diff --git a/ui/lobby/players_display.lua b/ui/lobby/players_display.lua new file mode 100644 index 000000000..315583327 --- /dev/null +++ b/ui/lobby/players_display.lua @@ -0,0 +1,40 @@ +local function create_player_info_row(player, player_type, text_scale) + if not player or not player.username then return nil end + + return MP.UI.UTILS.create_row({ padding = 0.1, align = "cm" }, { + MP.UI.UTILS.create_column({ align = "cm", maxw = 3 }, { + MP.UI.UTILS.create_text_node(nil, { + ref_table = player, + ref_value = "username", + scale = text_scale * 0.8, + colour = G.C.UI.TEXT_LIGHT, + maxw = 3.5 + }), + }), + MP.UI.UTILS.create_blank(0.1, 0.1), + player.hash and UIBox_button({ + id = player_type .. "_hash", + button = "view_" .. player_type .. "_hash", + label = { player.hash }, + minw = 0.75, + minh = 0.3, + scale = 0.25, + shadow = false, + colour = G.C.PURPLE, + col = true, + }) or nil, + }) +end + +function MP.UI.create_players_section(text_scale) + return MP.UI.UTILS.create_column({ align = "tm", minw = 2.65 }, { + MP.UI.UTILS.create_row({ align = "cm", padding = 0.15 }, { + MP.UI.UTILS.create_text_node(localize("k_connect_player"), { + scale = text_scale * 0.8, + colour = G.C.UI.TEXT_LIGHT, + }), + }), + create_player_info_row(MP.LOBBY.host, "host", text_scale), + create_player_info_row(MP.LOBBY.guest, "guest", text_scale), + }) +end diff --git a/ui/lobby/start_ready_button.lua b/ui/lobby/start_ready_button.lua new file mode 100644 index 000000000..54328e161 --- /dev/null +++ b/ui/lobby/start_ready_button.lua @@ -0,0 +1,159 @@ +local Disableable_Button = MP.UI.Disableable_Button + +local function get_warnings() + local warnings = {} + + -- Check the other player (guest if we're host, host if we're guest) + local other_player = MP.LOBBY.is_host and MP.LOBBY.guest or MP.LOBBY.host + + if other_player and other_player.cached == false then + table.insert(warnings, { localize("k_warning_cheating1"), SMODS.Gradients.warning_text, 0.4 }) + table.insert( + warnings, + { string.format(localize("k_warning_cheating2"), MP.UTILS.random_message()), SMODS.Gradients.warning_text } + ) + end + + if other_player and other_player.config and other_player.config.unlocked == false then + table.insert(warnings, { + localize("k_warning_nemesis_unlock"), + SMODS.Gradients.warning_text, + 0.25, + }) + end + + local bothPlayersInLobby = MP.LOBBY.guest and MP.LOBBY.guest.config ~= nil + + -- Content mod compatibility warnings (currently Extra Credit only) + if bothPlayersInLobby then + local hostExtraCreditVersion = MP.LOBBY.host + and MP.LOBBY.host.config + and MP.LOBBY.host.config.Mods["extracredit"] + local guestExtraCreditVersion = MP.LOBBY.guest + and MP.LOBBY.guest.config + and MP.LOBBY.guest.config.Mods["extracredit"] + + if hostExtraCreditVersion ~= guestExtraCreditVersion then + table.insert(warnings, { + "Extra Credit mismatch - players may see different jokers", + SMODS.Gradients.warning_text, + }) + elseif hostExtraCreditVersion ~= nil and hostExtraCreditVersion == guestExtraCreditVersion then + table.insert(warnings, { + "Extra Credit active - curated jokers replaced with full pool", + G.C.GREEN, + 0.25, + }) + end + end + + if MP.LOBBY.ready_to_start or not MP.LOBBY.is_host then + local hostSteamoddedVersion = MP.LOBBY.host and MP.LOBBY.host.config and MP.LOBBY.host.config.Mods["Steamodded"] + local guestSteamoddedVersion = MP.LOBBY.guest + and MP.LOBBY.guest.config + and MP.LOBBY.guest.config.Mods["Steamodded"] + + if hostSteamoddedVersion ~= guestSteamoddedVersion then + table.insert(warnings, { + localize("k_steamodded_warning"), + SMODS.Gradients.warning_text, + }) + end + end + + if MP.UTILS.mp_version_mismatch() then + table.insert(warnings, { + localize("k_mp_version_warning"), + G.C.RED, + 0.4, + }) + end + + local host_banned_mods = MP.LOBBY.host + and MP.LOBBY.host.config + and MP.UTILS.get_banned_mods(MP.LOBBY.host.config.Mods) + or {} + local guest_banned_mods = MP.LOBBY.guest + and MP.LOBBY.guest.config + and MP.UTILS.get_banned_mods(MP.LOBBY.guest.config.Mods) + or {} + + if #host_banned_mods > 0 or #guest_banned_mods > 0 then + table.insert(warnings, { + localize("k_warning_banned_mods"), + G.C.RED, + 0.4, + }) + end + + SMODS.Mods["Multiplayer"].config.unlocked = MP.UTILS.unlock_check() + if not SMODS.Mods["Multiplayer"].config.unlocked then + table.insert(warnings, { + localize("k_warning_unlock_profile"), + SMODS.Gradients.warning_text, + 0.25, + }) + end + + if MP.LOBBY.username == "Guest" then table.insert(warnings, { + localize("k_set_name"), + G.C.UI.TEXT_LIGHT, + }) end + + if #warnings == 0 then table.insert(warnings, { + " ", + G.C.UI.TEXT_LIGHT, + }) end + + return warnings +end + +function MP.UI.lobby_status_display() + local warnings = get_warnings() + + local warning_texts = {} + for k, v in pairs(warnings) do + table.insert( + warning_texts, + MP.UI.UTILS.create_row({ align = "cm", padding = -0.25 }, { + MP.UI.UTILS.create_text_node(v[1], { + colour = v[2], + scale = v[3] or 0.25, + }), + }) + ) + end + + return MP.UI.UTILS.create_row({ padding = 0.35, align = "cm" }, warning_texts) +end + +-- Component for main start/ready button in lobby +function MP.UI.create_lobby_main_button(text_scale) + if MP.LOBBY.is_host then + return Disableable_Button({ + id = "lobby_menu_start", + button = "lobby_start_game", + colour = G.C.BLUE, + minw = 3.65, + minh = 1.55, + label = { localize("b_start") }, + disabled_text = MP.LOBBY.guest.username and localize("b_wait_for_guest_ready") + or localize("b_wait_for_players"), + scale = text_scale * 2, + col = true, + enabled_ref_table = MP.LOBBY, + enabled_ref_value = "ready_to_start", + }) + else + return UIBox_button({ + id = "lobby_menu_start", + button = "lobby_ready_up", + colour = MP.LOBBY.ready_to_start and G.C.GREEN or G.C.RED, + minw = 3.65, + minh = 1.55, + label = { MP.LOBBY.ready_to_start and localize("b_unready") or localize("b_ready") }, + scale = text_scale * 2, + col = true, + }) + end +end diff --git a/ui/lobby/version_mismatch_warning.lua b/ui/lobby/version_mismatch_warning.lua new file mode 100644 index 000000000..ad9565572 --- /dev/null +++ b/ui/lobby/version_mismatch_warning.lua @@ -0,0 +1,121 @@ +function G.FUNCS.mp_open_update_docs(e) + love.system.openURL("https://balatromp.com/docs/getting-started/installation") +end + +local function build_version_mismatch_modal(mismatches) + local rows = { + MP.UI.UTILS.create_row({ align = "cm", padding = 0.1 }, { + MP.UI.UTILS.create_text_node("VERSION MISMATCH", { + scale = 0.8, + colour = G.C.RED, + }), + }), + MP.UI.UTILS.create_row({ align = "cm", padding = 0.04 }, { + MP.UI.UTILS.create_text_node("You and your opponent have mismatched mod", { + scale = 0.4, + colour = G.C.UI.TEXT_LIGHT, + }), + }), + MP.UI.UTILS.create_row({ align = "cm", padding = 0.04 }, { + MP.UI.UTILS.create_text_node("versions. Seeds, shops and jokers will", { + scale = 0.4, + colour = G.C.UI.TEXT_LIGHT, + }), + }), + MP.UI.UTILS.create_row({ align = "cm", padding = 0.04 }, { + MP.UI.UTILS.create_text_node("desync - matches may break.", { + scale = 0.4, + colour = G.C.UI.TEXT_LIGHT, + }), + }), + } + + -- One row per mismatched mod: " - You: x Them: y" + for _, m in ipairs(mismatches) do + table.insert( + rows, + MP.UI.UTILS.create_row({ align = "cm", padding = 0.1 }, { + MP.UI.UTILS.create_text_node(m.mod .. " -", { + scale = 0.4, + colour = G.C.UI.TEXT_LIGHT, + }), + MP.UI.UTILS.create_blank(0.2, 0.1), + MP.UI.UTILS.create_text_node("You: " .. tostring(m.our), { + scale = 0.4, + colour = G.C.BLUE, + }), + MP.UI.UTILS.create_blank(0.3, 0.1), + MP.UI.UTILS.create_text_node("Them: " .. tostring(m.their), { + scale = 0.4, + colour = G.C.ORANGE, + }), + }) + ) + end + + table.insert( + rows, + MP.UI.UTILS.create_row({ align = "cm", padding = 0.12 }, { + MP.UI.UTILS.create_text_node("Update so you both match before playing.", { + scale = 0.4, + colour = G.C.UI.TEXT_LIGHT, + }), + }) + ) + table.insert( + rows, + MP.UI.UTILS.create_row({ align = "cm", padding = 0.15 }, { + UIBox_button({ + label = { "How to update" }, + button = "mp_open_update_docs", + colour = HEX("72A5F2"), + minw = 4.2, + scale = 0.5, + col = true, + }), + MP.UI.UTILS.create_blank(0.25, 0.1), + UIBox_button({ + label = { "Continue anyway" }, + button = "exit_overlay_menu", + colour = G.C.RED, + minw = 3.4, + scale = 0.5, + col = true, + }), + }) + ) + + G.FUNCS.overlay_menu({ + definition = create_UIBox_generic_options({ + no_back = true, + contents = { + MP.UI.UTILS.create_column({ align = "cm", padding = 0.15 }, rows), + }, + }), + }) +end + +-- Show the mismatch modal once per lobby (latched on MP._version_mismatch_shown, re-armed on +-- lobby leave / when the mismatch clears). Returns true iff it built the modal this call, which +-- the guest's ready-up uses to intercept the first ready press. +function MP.UI.show_version_mismatch_if_needed() + if MP._version_mismatch_shown then return false end + if G.screenwipe or G.OVERLAY_MENU then return false end + local mismatches = MP.UTILS.version_mismatches() + if #mismatches == 0 then return false end + build_version_mismatch_modal(mismatches) + MP._version_mismatch_shown = true + return true +end + +-- Host trigger: poll while settled in the lobby. (The guest's join transition can't be reliably +-- detected, so the guest triggers off its ready button instead - see lobby.lua:lobby_ready_up.) +local mismatch_update_ref = Game.update +---@diagnostic disable-next-line: duplicate-set-field +function Game:update(dt) + mismatch_update_ref(self, dt) + + if not MP.LOBBY.code or not MP.LOBBY.is_host then return end + if G.STAGE ~= G.STAGES.MAIN_MENU then return end + MP.UI.show_version_mismatch_if_needed() +end diff --git a/ui/main_menu/dev_warning.lua b/ui/main_menu/dev_warning.lua new file mode 100644 index 000000000..85cd7414f --- /dev/null +++ b/ui/main_menu/dev_warning.lua @@ -0,0 +1,74 @@ +function G.FUNCS.mp_open_install_docs(e) + love.system.openURL("https://balatromp.com/docs/getting-started/installation") +end + +function MP.UI.show_dev_build_warning() + if MP._dev_warning_shown then return end + if MP.EXPERIMENTAL.suppress_dev_warning then return end + + local version = SMODS.Mods["Multiplayer"].version or "" + if not version:lower():match("dev") then return end + + MP._dev_warning_shown = true + + G.SETTINGS.paused = true + G.FUNCS.overlay_menu({ + definition = create_UIBox_generic_options({ + no_back = true, + no_esc = true, + contents = { + MP.UI.UTILS.create_column({ align = "cm", padding = 0.15 }, { + MP.UI.UTILS.create_row({ align = "cm", padding = 0.1 }, { + MP.UI.UTILS.create_text_node("MULTIPLAYER", { + scale = 0.8, + colour = G.C.UI.TEXT_LIGHT, + }), + }), + MP.UI.UTILS.create_row({ align = "cm", padding = 0.05 }, { + MP.UI.UTILS.create_text_node("Hand of cards, off the workbench - " .. version, { + scale = 0.55, + colour = G.C.MULT, + }), + }), + MP.UI.UTILS.create_row({ align = "cm", padding = 0.04 }, { + MP.UI.UTILS.create_text_node("You're playing a dev build - jokers may misbehave.", { + scale = 0.4, + colour = G.C.UI.TEXT_LIGHT, + }), + }), + MP.UI.UTILS.create_row({ align = "cm", padding = 0.04 }, { + MP.UI.UTILS.create_text_node("Ranked is locked. You may desync your nemesis.", { + scale = 0.4, + colour = G.C.UI.TEXT_LIGHT, + }), + }), + MP.UI.UTILS.create_row({ align = "cm", padding = 0.04 }, { + MP.UI.UTILS.create_text_node("For a clean shuffle, get the launcher below.", { + scale = 0.4, + colour = G.C.UI.TEXT_LIGHT, + }), + }), + MP.UI.UTILS.create_row({ align = "cm", padding = 0.15 }, { + UIBox_button({ + label = { "Grab the launcher" }, + button = "mp_open_install_docs", + colour = HEX("72A5F2"), + minw = 4.2, + scale = 0.5, + col = true, + }), + MP.UI.UTILS.create_blank(0.25, 0.1), + UIBox_button({ + label = { "OK, I'll risk it" }, + button = "exit_overlay_menu", + colour = G.C.RED, + minw = 3.2, + scale = 0.5, + col = true, + }), + }), + }), + }, + }), + }) +end diff --git a/ui/main_menu/main_menu.lua b/ui/main_menu/main_menu.lua new file mode 100644 index 000000000..b6169efe0 --- /dev/null +++ b/ui/main_menu/main_menu.lua @@ -0,0 +1,110 @@ +local game_main_menu_ref = Game.main_menu +---@diagnostic disable-next-line: duplicate-set-field +function Game:main_menu(change_context) + local ret = game_main_menu_ref(self, change_context) + + Add_custom_multiplayer_cards(change_context) + Add_version_display() + MP.UI.show_dev_build_warning() + + return ret +end + +-- Modify play button to take you to mode select first +local create_UIBox_main_menu_buttonsRef = create_UIBox_main_menu_buttons +---@diagnostic disable-next-line: lowercase-global +function create_UIBox_main_menu_buttons() + local menu = create_UIBox_main_menu_buttonsRef() + menu.nodes[1].nodes[1].nodes[1].nodes[1].config.button = "play_options" + return menu +end + +G.FUNCS.wipe_off = function() + G.E_MANAGER:add_event(Event({ + no_delete = true, + func = function() + delay(0.3) + if not G.screenwipe then return true end + G.screenwipe.children.particles.max = 0 + G.E_MANAGER:add_event(Event({ + trigger = "ease", + no_delete = true, + blockable = false, + blocking = false, + timer = "REAL", + ref_table = G.screenwipe.colours.black, + ref_value = 4, + ease_to = 0, + delay = 0.3, + func = function(t) + return t + end, + })) + G.E_MANAGER:add_event(Event({ + trigger = "ease", + no_delete = true, + blockable = false, + blocking = false, + timer = "REAL", + ref_table = G.screenwipe.colours.white, + ref_value = 4, + ease_to = 0, + delay = 0.3, + func = function(t) + return t + end, + })) + return true + end, + })) + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.55, + no_delete = true, + blocking = false, + timer = "REAL", + func = function() + if not G.screenwipe then return true end + if G.screenwipecard then G.screenwipecard:start_dissolve({ G.C.BLACK, G.C.ORANGE, G.C.GOLD, G.C.RED }) end + if G.screenwipe:get_UIE_by_ID("text") then + for k, v in ipairs(G.screenwipe:get_UIE_by_ID("text").children) do + v.children[1].config.object:pop_out(4) + end + end + return true + end, + })) + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 1.1, + no_delete = true, + blocking = false, + timer = "REAL", + func = function() + if not G.screenwipe then return true end + G.screenwipe.children.particles:remove() + G.screenwipe:remove() + G.screenwipe.children.particles = nil + G.screenwipe = nil + G.screenwipecard = nil + return true + end, + })) + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 1.2, + no_delete = true, + blocking = true, + timer = "REAL", + func = function() + return true + end, + })) +end + +function MP.UI.update_player_usernames() + if MP.LOBBY.code then + if G.MAIN_MENU_UI then G.MAIN_MENU_UI:remove() end + set_main_menu_UI() + end +end diff --git a/ui/main_menu/play_button/_modifiers_overlay.lua b/ui/main_menu/play_button/_modifiers_overlay.lua new file mode 100644 index 000000000..846eb44f6 --- /dev/null +++ b/ui/main_menu/play_button/_modifiers_overlay.lua @@ -0,0 +1,90 @@ +G.FUNCS.mp_open_modifiers_overlay = function(e) + local timer_cycle = MP.UI.build_timer_modifier_cycle() + local pvp_timer_toggle = MP.UI.build_pvp_timer_toggle() + + local smallworld_toggle = create_toggle({ + id = "modifier_smallworld_toggle", + label = localize("b_opts_modifier_smallworld"), + ref_table = { val = MP.has_modifier("smallworld") }, + ref_value = "val", + callback = function(new_val) + if new_val then + MP.add_modifier("smallworld") + else + MP.remove_modifier("smallworld") + end + end, + }) + + local function create_entry(option, loc_key) + local message_table = localize(loc_key) + local result_text = {} + for _, line in ipairs(message_table) do + table.insert(result_text, { + n = G.UIT.R, + config = { minw = 8.5, maxw = 8.5 }, + nodes = SMODS.localize_box(loc_parse_string(line), { + default_col = G.C.UI.TEXT_LIGHT, + }), + }) + end + + return { + n = G.UIT.R, + config = { + padding = 0.25, + align = "cm", + r = 0.25, + colour = { 1, 1, 1, 0.1 }, + }, + nodes = { + { + n = G.UIT.C, + config = { minw = 5, align = "cm" }, + nodes = { + option, + }, + }, + { + n = G.UIT.C, + config = { align = "cm" }, + nodes = result_text, + }, + }, + } + end + + local back_func = MP.is_practice_mode() and "mp_open_practice_options_overlay" or "create_lobby" + + G.FUNCS.overlay_menu({ + definition = create_UIBox_generic_options({ + back_func = back_func, + contents = { + { + n = G.UIT.R, + config = { align = "cm", padding = 0.25, colour = G.C.BLACK, r = 0.25 }, + nodes = { + { + n = G.UIT.R, + nodes = { + create_entry(timer_cycle, "k_experimental_modifiers_timers"), + { n = G.UIT.R, config = { minh = 0.25 } }, + create_entry(pvp_timer_toggle, "k_experimental_modifiers_pvp_timer"), + { n = G.UIT.R, config = { minh = 0.25 } }, + create_entry(smallworld_toggle, "k_experimental_modifiers_smallworld"), + }, + }, + { n = G.UIT.R }, + { + n = G.UIT.R, + config = { align = "cm" }, + nodes = { + MP.UI.get_continue_button(e.config.ref_table.ruleset, e.config.ref_table.mode), + }, + }, + }, + }, + }, + }), + }) +end diff --git a/ui/main_menu/play_button/_mutators_wall.lua b/ui/main_menu/play_button/_mutators_wall.lua new file mode 100644 index 000000000..7e51f2774 --- /dev/null +++ b/ui/main_menu/play_button/_mutators_wall.lua @@ -0,0 +1,562 @@ +local function timer_modifier_to_index() + if MP.has_modifier("pressure_timer_plus") then return 4 end + if MP.has_modifier("pressure_timer") then return 3 end + if MP.has_modifier("no_animation_timer") then return 2 end + return 1 +end + +G.FUNCS.change_modifier_timer = function(args) + MP.remove_modifier("no_animation_timer") + MP.remove_modifier("pressure_timer") + MP.remove_modifier("pressure_timer_plus") + if args.to_key == 2 then + MP.add_modifier("no_animation_timer") + elseif args.to_key == 3 then + MP.add_modifier("pressure_timer") + elseif args.to_key == 4 then + MP.add_modifier("pressure_timer") + MP.add_modifier("pressure_timer_plus") + end +end + +local TIMER_BLURBS = { + "Regular 150s timer.", + "100s timer, animations off.", + "100s, no anim, starts at once.", + "Pressure, +15s per hand played.", +} + +G.FUNCS.mp_timer_blurb = function(e) + local txt = TIMER_BLURBS[timer_modifier_to_index()] or "" + if e.children[1] and e.children[1].config.text ~= txt then + e.children[1].config.text = txt + e.UIBox:recalculate(true) + end +end + +-- Each cycle is one table: label / mod / blurb on the same line. mod = nil means +-- "no modifier" (the cycle's default, inherits whatever the ruleset does). +local GLASS_VARIANTS = { + { label = "Inherit", mod = nil, blurb = "Inherit the main ruleset." }, + { label = "Vanilla", mod = "glass_vanilla", blurb = "x2 mult." }, + { label = "Standard", mod = "glass_standard", blurb = "x1.5 (Justice Disabled)." }, + { label = "Legacy", mod = "glass_legacy", blurb = "x1.5 (Justice Enabled)." }, + { label = "Experimental", mod = "glass_experimental", blurb = "x2 (Grim/Familiar/Incantation only)." }, +} + +local function variant_labels(variants) + local labels = {} + for i, v in ipairs(variants) do + labels[i] = v.label + end + return labels +end + +local function variant_index(variants) + for i, v in ipairs(variants) do + if v.mod and MP.has_modifier(v.mod) then return i end + end + return 1 +end + +local function pick_variant(variants, to_key) + for _, v in ipairs(variants) do + if v.mod then MP.remove_modifier(v.mod) end + end + local chosen = variants[to_key] + if chosen and chosen.mod then MP.add_modifier(chosen.mod) end +end + +local function variant_blurb_func(variants) + return function(e) + local txt = variants[variant_index(variants)].blurb + if e.children[1] and e.children[1].config.text ~= txt then + e.children[1].config.text = txt + e.UIBox:recalculate(true) + end + end +end + +G.FUNCS.change_glass_variant = function(args) + pick_variant(GLASS_VARIANTS, args.to_key) +end +G.FUNCS.mp_glass_blurb = variant_blurb_func(GLASS_VARIANTS) + +local MUTATOR_WALL = { + { + name = "ECONOMY", + colour = G.C.MONEY, + cells = { + { + key = "inflation", + label = "Inflation", + desc = { "Shop prices creep up $1 with", "every card you buy." }, + soon = true, + credits = { idea = { "Kars" } }, + }, + { + key = "no_interest", + label = "No Interest", + desc = { "Savings earn nothing.", "Spend it or lose the edge." }, + soon = true, + }, + { key = "discard_tax", label = "Discard Tax", desc = { "Every discard costs $1." }, soon = true }, + { key = "frugal", label = "Frugal", desc = { "Unspent discards pay out $1." }, soon = true }, + { + key = "wraith_rework", + label = "Kind Wraith", + desc = { "Wraith spawns an Uncommon and", "pays $5 (was Rare, money to $0)." }, + credits = { code = { "steph" } }, + }, + { + key = "pvp_reward_draft", + label = "Reward Draft", + desc = { "Win a PvP blind, then draft", "1 of several rewards." }, + soon = true, + }, + }, + }, + { + name = "MAYHEM", + colour = G.C.PURPLE, + cells = { + { key = "flipped_cards", label = "Blind Poker", desc = { "Your hand is dealt face-down." }, soon = true }, + { + key = "debuff_played_cards", + label = "Dead Cards", + desc = { "Playing cards are debuffed.", "Jokers are the whole engine." }, + }, + { key = "all_eternal", label = "No Takebacks", desc = { "Every joker is eternal." }, soon = true }, + { + key = "shrinking_hand", + label = "Heavy Pockets", + desc = { "-1 hand size for every $10", "you're holding." }, + soon = true, + }, + { + key = "shared_pockets", + label = "Shared Pockets", + desc = { "Hand, jokers and consumables", "share one pool of slots." }, + }, + { + key = "score_instability", + label = "Instability", + desc = { "After scoring, chips and mult", "are dragged toward each other." }, + credits = { code = { "Toneblock" } }, + }, + { + key = "rubber_band", + label = "Rubber Band", + desc = { "Losing a life grants an", "escalating comeback buff." }, + soon = true, + }, + }, + }, + { + name = "HAZARDS", + colour = G.C.RED, + cells = { + { + key = "gambling_opportunity", + label = "No Easy Money", + desc = { "No Gold or Lucky cards." }, + credits = { idea = { "Kars" } }, + }, + { key = "no_uncommons", label = "No Uncommons", desc = { "Uncommon jokers are out", "of the pool." } }, + { key = "no_red_seals", label = "No Red Seals", desc = { "Red seals never appear." } }, + { key = "bigger_shop", label = "Bigger Shop", desc = { "One extra card slot", "in the shop." } }, + { + key = "chip_cap", + label = "Cash Ceiling", + desc = { "Chip score can't exceed your", "cash. Greed is the only way up." }, + soon = true, + }, + { + key = "score_tax", + label = "Score Tax", + desc = { "Each hand you play nudges your", "opponent's target upward." }, + soon = true, + }, + }, + }, + { + name = "CHAOS", + colour = G.C.ORANGE, + cells = { + { + key = "glass_cannon", + label = "Glass Cannon", + desc = { "Only 2 hands a round — but", "every hand hits for 4x mult." }, + }, + { + key = "smallworld", + label = "Small World", + desc = { "75% of the pool banned at", "random. Showman always on." }, + credits = { code = { "Toneblock" } }, + }, + { key = "spartan", label = "Spartan", desc = { "No cash from Small or Big", "blinds." }, soon = true }, + { + key = "pricey_packs", + label = "Pricey Packs", + desc = { "Booster packs cost more", "for each ante you reach." }, + soon = true, + }, + { + key = "polymorph_spam", + label = "Polymorph", + desc = { "Every blind, your jokers and", "consumables re-roll." }, + }, + { + key = "eeeee", + label = "Eeeee", + desc = { "~40% of random rolls lock to", "a fixed value each ante." }, + credits = { code = { "Tonebleee" } }, + }, + }, + }, +} + +G.FUNCS.mp_toggle_mutator = function(e) + local key = e.config.ref_table.key + MP.MUTATORS_BLIND = false -- touching anything reveals the wall + if MP.has_modifier(key) then + MP.remove_modifier(key) + play_sound("cardSlide2", 1.1, 0.4) + else + MP.add_modifier(key) + play_sound("cardSlide1", 1.1, 0.5) + end + e:juice_up(0.2, 0.1) +end + +-- Live recolour: bright when the modifier is active, dim-tinted otherwise. +-- In blind mode the wall lies — active cells read as off, so you go in blind. +G.FUNCS.mp_mutator_cell_colour = function(e) + local rt = e.config.ref_table + local lit = MP.has_modifier(rt.key) and not MP.MUTATORS_BLIND + e.config.colour = lit and rt.on or rt.off +end + +-- Roll a fresh random loadout across the whole wall (~1 in 3 odds per knob). +local function roll_mutators() + for _, cat in ipairs(MUTATOR_WALL) do + for _, cell in ipairs(cat.cells) do + MP.remove_modifier(cell.key) + if not cell.soon and math.random() < 0.35 then MP.add_modifier(cell.key) end + end + end +end + +G.FUNCS.mp_randomize_mutators = function(e) + MP.MUTATORS_BLIND = false + roll_mutators() + play_sound("generic1", 1.0, 0.5) + e:juice_up(0.3, 0.1) +end + +G.FUNCS.mp_blind_random_mutators = function(e) + roll_mutators() + MP.MUTATORS_BLIND = true -- keep the roll a secret + play_sound("timpani", 1.0, 0.5) + e:juice_up(0.3, 0.1) +end + +-- TODO(rewire): fold this and mod_badges.lua's inline builder into one shared +-- MP.UI.credit_badge(credits) so we can use it anywhere we like :) +local function mutator_credit_badge(credits) + credits.art = credits.art or {} + credits.idea = credits.idea or {} + credits.code = credits.code or {} + + local function calc_scale_fac(text) + local size = 0.9 + local font = G.LANG.font + local max_text_width = 2 - 2 * 0.05 - 4 * 0.03 * size - 2 * 0.03 + local calced_text_width = 0 + for _, c in utf8.chars(text) do + local tx = font.FONT:getWidth(c) * (0.33 * size) * G.TILESCALE * font.FONTSCALE + + 2.7 * 1 * G.TILESCALE * font.FONTSCALE + calced_text_width = calced_text_width + tx / (G.TILESIZE * G.TILESCALE) + end + return calced_text_width > max_text_width and max_text_width / calced_text_width or 1 + end + + local strings = {} + for _, v in ipairs({ "art", "idea", "code" }) do + for i = 1, #credits[v] do + strings[#strings + 1] = localize({ type = "variable", key = "a_mp_" .. v, vars = { credits[v][i] } })[1] + end + end + + -- fallback if {} + if #strings == 0 then return { n = G.UIT.R, config = { align = "cm" }, nodes = {} } end + + local min_scale_fac = 1 + for i = 1, #strings do + min_scale_fac = math.min(min_scale_fac, calc_scale_fac(strings[i])) + end + + local ct = {} + for i = 1, #strings do + ct[i] = { string = strings[i] } + end + + return { + n = G.UIT.R, + config = { align = "cm" }, + nodes = { + { + n = G.UIT.R, + config = { + align = "cm", + colour = G.C.MULTIPLAYER, + r = 0.1, + minw = 2 / min_scale_fac, + minh = 0.36, + emboss = 0.05, + padding = 0.03 * 0.9, + }, + nodes = { + { n = G.UIT.B, config = { h = 0.1, w = 0.03 } }, + { + n = G.UIT.O, + config = { + object = DynaText({ + string = ct, + colours = { credits.text_colour or G.C.WHITE }, + silent = true, + float = true, + shadow = true, + offset_y = -0.03, + spacing = 1, + scale = 0.33 * 0.9, + }), + }, + }, + { n = G.UIT.B, config = { h = 0.1, w = 0.03 } }, + }, + }, + }, + } +end + +local function mutator_cell(cell, colour, disabled) + local on = colour + local off = darken(colour, 0.72) + -- Disabled cells keep their real description with a "(Coming soon)" line appended + local tooltip_text = cell.desc + if disabled then + tooltip_text = {} + for _, line in ipairs(cell.desc) do + tooltip_text[#tooltip_text + 1] = line + end + tooltip_text[#tooltip_text + 1] = "(Coming soon)" + end + + local tooltip = { title = cell.label, text = tooltip_text } + if cell.credits then tooltip.filler = { func = mutator_credit_badge, args = cell.credits } end + return { + n = G.UIT.R, + config = { align = "cm", padding = 0.035 }, + nodes = { + { + n = G.UIT.C, + config = { + align = "cm", + minw = 2.5, + minh = 0.46, + padding = 0.06, + r = 0.1, + emboss = 0.05, + hover = true, + shadow = not disabled, + colour = disabled and G.C.UI.BACKGROUND_INACTIVE or off, + button = not disabled and "mp_toggle_mutator" or nil, + func = not disabled and "mp_mutator_cell_colour" or nil, + ref_table = { key = cell.key, on = on, off = off }, + tooltip = tooltip, + }, + nodes = { + { + n = G.UIT.T, + config = { + text = cell.label, + scale = 0.34, + colour = disabled and G.C.UI.TEXT_INACTIVE or G.C.UI.TEXT_LIGHT, + }, + }, + }, + }, + }, + } +end + +local function mutator_column(cat) + local nodes = { + { + n = G.UIT.R, + config = { align = "cm", padding = 0.04, minh = 0.4 }, + nodes = { { n = G.UIT.T, config = { text = cat.name, scale = 0.4, colour = cat.colour, shadow = true } } }, + }, + } + for _, cell in ipairs(cat.cells) do + nodes[#nodes + 1] = mutator_cell(cell, cat.colour, cell.soon) + end + return { n = G.UIT.C, config = { align = "tm", padding = 0.06 }, nodes = nodes } +end + +function MP.UI.build_timer_modifier_cycle() + return MP.UI.Disableable_Option_Cycle({ + id = "modifier_timer_option", + enabled_ref_table = { val = true }, + enabled_ref_value = "val", + label = localize("k_opts_modifier_timer"), + scale = 0.8, + options = localize("ml_mp_modifier_timer_opt"), + current_option = timer_modifier_to_index(), + opt_callback = "change_modifier_timer", + minw = 4, + w = 4, + }) +end + +function MP.UI.build_pvp_timer_toggle() + return create_toggle({ + id = "modifier_pvp_timer_toggle", + label = localize("b_opts_modifier_pvp_timer"), + ref_table = { val = MP.has_modifier("pvp_timer") }, + ref_value = "val", + callback = function(new_val) + if new_val then + MP.add_modifier("pvp_timer") + else + MP.remove_modifier("pvp_timer") + end + end, + }) +end + +-- A variant cycle = the option-cycle plus a live one-line blurb stacked under it. +-- Shared shape for glass / shop-size (and any future "pick one of N" knob). +local function variant_cycle(args) + return { + n = G.UIT.R, + config = { align = "cm", padding = 0.04 }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm" }, + nodes = { + create_option_cycle({ + id = args.id, + label = args.label, + scale = 0.7, + options = args.options, + current_option = args.current_option, + opt_callback = args.opt_callback, + w = 4, + minw = 4, + }), + }, + }, + { + n = G.UIT.R, + config = { align = "cm", func = args.blurb_func, minh = 0.3 }, + nodes = { { n = G.UIT.T, config = { text = "", scale = 0.3, colour = G.C.UI.TEXT_INACTIVE } } }, + }, + }, + } +end + +function MP.UI.build_glass_cycle() + return variant_cycle({ + id = "modifier_glass_option", + label = "Glass", + options = variant_labels(GLASS_VARIANTS), + current_option = variant_index(GLASS_VARIANTS), + opt_callback = "change_glass_variant", + blurb_func = "mp_glass_blurb", + }) +end + +function MP.UI.build_mutators_wall() + local columns = {} + for _, cat in ipairs(MUTATOR_WALL) do + columns[#columns + 1] = mutator_column(cat) + end + return { + n = G.UIT.R, + config = { align = "cm" }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm", padding = 0.02 }, + nodes = { + { + n = G.UIT.T, + config = { text = "MUTATORS", scale = 0.5, colour = G.C.UI.TEXT_LIGHT, shadow = true }, + }, + }, + }, + { + n = G.UIT.R, + config = { align = "cm", padding = 0.02 }, + nodes = { + { + n = G.UIT.T, + config = { + text = "stack freely · hover for details", + scale = 0.3, + colour = G.C.UI.TEXT_INACTIVE, + }, + }, + }, + }, + { n = G.UIT.R, config = { align = "cm", padding = 0.04 }, nodes = columns }, + }, + } +end + +-- Randomize / Blind Random pair (operate on MP.MODIFIERS via the global FUNCS). +function MP.UI.build_mutator_randomize_row() + return { + n = G.UIT.R, + config = { align = "cm", padding = 0.05 }, + nodes = { + { + n = G.UIT.C, + config = { align = "cm", padding = 0.05 }, + nodes = { + UIBox_button({ + id = "mp_randomize_mutators_btn", + button = "mp_randomize_mutators", + label = { "Randomize" }, + colour = G.C.ORANGE, + minw = 2.8, + minh = 0.7, + scale = 0.4, + hover = true, + shadow = true, + }), + }, + }, + { + n = G.UIT.C, + config = { align = "cm", padding = 0.05 }, + nodes = { + UIBox_button({ + id = "mp_blind_random_mutators_btn", + button = "mp_blind_random_mutators", + label = { "Blind Random" }, + colour = G.C.PURPLE, + minw = 2.8, + minh = 0.7, + scale = 0.4, + hover = true, + shadow = true, + }), + }, + }, + }, + } +end diff --git a/ui/main_menu/play_button/_practice_options_overlay.lua b/ui/main_menu/play_button/_practice_options_overlay.lua new file mode 100644 index 000000000..4605c7d69 --- /dev/null +++ b/ui/main_menu/play_button/_practice_options_overlay.lua @@ -0,0 +1,83 @@ +-- Practice Options overlay: toggles, replay picker entry, and (when allowed by +-- the ruleset) the Modifiers entry. Consolidated here so the ruleset_info panel +-- in practice mode keeps to a tidy two-button action row. + +G.FUNCS.mp_practice_options_back = function(e) + G.FUNCS.overlay_menu({ + definition = G.UIDEF.ruleset_selection_tabs("practice"), + }) +end + +G.FUNCS.mp_open_practice_options_overlay = function(e) + local ruleset = MP.SP.ruleset and MP.Rulesets[MP.SP.ruleset] or nil + + local practice_toggles = { + { id = "unlimited_slots_toggle", label = "k_unlimited_slots", ref_value = "unlimited_slots" }, + { id = "edition_cycling_toggle", label = "k_edition_cycling", ref_value = "edition_cycling" }, + } + local toggle_nodes = {} + for _, t in ipairs(practice_toggles) do + toggle_nodes[#toggle_nodes + 1] = { + n = G.UIT.R, + config = { align = "cm", padding = 0.05 }, + nodes = { + create_toggle({ + id = t.id, + label = localize(t.label), + ref_table = MP.SP, + ref_value = t.ref_value, + }), + }, + } + end + + local ghost_label = localize("k_ghost_replays") + if MP.GHOST.is_active() then ghost_label = ghost_label .. " (Active)" end + local ghost_button = UIBox_button({ + id = "ghost_replay_button", + button = "open_ghost_replay_picker", + label = { ghost_label }, + minw = 4, + minh = 0.6, + scale = 0.4, + colour = MP.GHOST.is_active() and G.C.GREEN or G.C.BLUE, + hover = true, + shadow = true, + }) + + local body_rows = { + { + n = G.UIT.R, + config = { align = "cm", padding = 0.1 }, + nodes = toggle_nodes, + }, + } + + local modifier_btn = ruleset and MP.UI.build_modifier_button(ruleset, "practice") or nil + if modifier_btn then + body_rows[#body_rows + 1] = { + n = G.UIT.R, + config = { align = "cm", padding = 0.15 }, + nodes = { modifier_btn }, + } + end + + body_rows[#body_rows + 1] = { + n = G.UIT.R, + config = { align = "cm", padding = 0.15 }, + nodes = { ghost_button }, + } + + G.FUNCS.overlay_menu({ + definition = create_UIBox_generic_options({ + back_func = "mp_practice_options_back", + contents = { + { + n = G.UIT.R, + config = { align = "cm", padding = 0.25, colour = G.C.BLACK, r = 0.25, minw = 6 }, + nodes = body_rows, + }, + }, + }), + }) +end diff --git a/ui/main_menu/play_button/custom_ruleset_editor.lua b/ui/main_menu/play_button/custom_ruleset_editor.lua new file mode 100644 index 000000000..0bfb7b215 --- /dev/null +++ b/ui/main_menu/play_button/custom_ruleset_editor.lua @@ -0,0 +1,308 @@ +MP.CUSTOM = MP.CUSTOM or {} + +local CONTENT_SETS = { "Vanilla", "Standard", "Sandbox", "Experimental" } + +-- Content set (display string) -> base ruleset short key. The custom editor is +-- "this base + a stack of modifiers", so each set just points at an existing +-- ruleset whose layers we inherit. +local CONTENT_SET_RULESET = { + Vanilla = "vanilla", + Standard = "blitz", + Sandbox = "sandbox", + Experimental = "experimental", +} + +-- --------------------------------------------------------------------------- +function MP.CUSTOM.new_draft() + return { + name = "My Ruleset", + base = "Standard", -- key into CONTENT_SETS / CONTENT_SET_RULESET + modifiers = {}, -- snapshotted modifiers + banned_jokers = {}, + banned_consumables = {}, + banned_vouchers = {}, + } +end + +MP.CUSTOM.draft = nil + +local function list_has(list, key) + for _, v in ipairs(list) do + if v == key then return true end + end + return false +end + +local function list_remove(list, key) + for i, v in ipairs(list) do + if v == key then + table.remove(list, i) + return + end + end +end + +local function index_of(list, value, default) + for i, v in ipairs(list) do + if v == value then return i end + end + return default or 1 +end + +local function bucket_for(draft, set) + if set == "Joker" then return draft.banned_jokers end + if set == "Tarot" or set == "Planet" or set == "Spectral" then return draft.banned_consumables end + if set == "Voucher" then return draft.banned_vouchers end + return nil +end + +function MP.CUSTOM.is_banned(key) + local d = MP.CUSTOM.draft + if not d then return false end + return list_has(d.banned_jokers, key) + or list_has(d.banned_consumables, key) + or list_has(d.banned_vouchers, key) +end + +function MP.CUSTOM.toggle_ban(card) + local d = MP.CUSTOM.draft + if not d then return end + local set = card.config.center.set + local key = card.config.center.key + local list = bucket_for(d, set) + if not list then return end + if list_has(list, key) then + list_remove(list, key) + card.debuff = false + else + list[#list + 1] = key + card.debuff = true + end +end + +function MP.CUSTOM.debuff_collection_page() + if not (G.your_collection and MP.CUSTOM.draft) then return end + for i = 1, #G.your_collection do + for _, v in pairs(G.your_collection[i].cards) do + if v.config and v.config.center_key and MP.CUSTOM.is_banned(v.config.center_key) then v.debuff = true end + end + end +end + +-- Re-paint every time a collection UIBox is (re)built... +local _cc_ref = SMODS.card_collection_UIBox +function SMODS.card_collection_UIBox(_pool, rows, args) + local ret = _cc_ref(_pool, rows, args) + MP.CUSTOM.debuff_collection_page() + return ret +end + +-- ...and every time the player pages within a collection (SMODS paging fires +-- option_cycle with this opt_callback). +local _oc_ref = G.FUNCS.option_cycle +function G.FUNCS.option_cycle(e) + local ret = _oc_ref(e) + if e.config.ref_table and e.config.ref_table.opt_callback == "SMODS_card_collection_page" then + MP.CUSTOM.debuff_collection_page() + end + return ret +end + +-- hijack the collection when we're in the joker ban +local _your_collection_ref = G.FUNCS.your_collection +G.FUNCS.your_collection = function(e) + if MP.CUSTOM.editing_bans then + MP.CUSTOM.editing_bans = nil + return G.FUNCS.mp_custom_back_to_editor(e) + end + return _your_collection_ref(e) +end + +G.FUNCS.mp_custom_back_to_editor = function(e) + G.FUNCS.overlay_menu({ + definition = G.UIDEF.ruleset_selection_tabs(MP.CUSTOM.editor_mode or "mp", "Custom"), + }) +end + +-- credit to @Aaal for MPCustomBans which I was heavily inspired by +SMODS.Keybind({ + key = "mp_custom_ban", + key_pressed = "delete", + action = function(self) + if not MP.CUSTOM.draft then return end + local target = G.CONTROLLER.hovering and G.CONTROLLER.hovering.target + if not (target and target.config and target.config.center) then return end + local area = target.area + if area and area.config and area.config.collection then MP.CUSTOM.toggle_ban(target) end + end, +}) + +G.FUNCS.mp_custom_set_base = function(args) + if MP.CUSTOM.draft and args and args.to_key then MP.CUSTOM.draft.base = CONTENT_SETS[args.to_key] end +end + +-- Launch a custom run: chosen base ruleset + the wall's MP.MODIFIERS. +-- We set the ruleset directly and deliberately DON'T route through +-- change_ruleset_selection / apply_default_modifiers, which would wipe the +-- wall's modifier selections. Modifiers ride to the guest via start_lobby's +-- modifier_layers serialization, same as the Modifiers overlay. +G.FUNCS.mp_custom_play = function(e) + local d = MP.CUSTOM.draft or MP.CUSTOM.new_draft() + local mode = MP.CUSTOM.editor_mode or "mp" + local base_short = CONTENT_SET_RULESET[d.base] or "blitz" + local base_key = "ruleset_mp_" .. base_short + + if mode == "sp" or mode == "practice" then + MP.SP.ruleset = base_key + else + MP.LOBBY.config.ruleset = base_key + end + + -- Materialize reworks for the chosen base. active_layer_chain now folds in + -- MP.MODIFIERS (the ruleset is set above), so modifier reworks resolve too. + MP.LoadReworks(base_short) + + local ruleset = MP.Rulesets[base_key] + if mode == "sp" then + G.FUNCS.start_sp_run(e) + elseif mode == "practice" then + G.FUNCS.start_practice_run(e) + elseif ruleset and ruleset.forced_gamemode then + G.FUNCS["force_" .. ruleset.forced_gamemode](e) + else + G.FUNCS.select_gamemode(e) + end +end + +G.FUNCS.mp_custom_open_collection = function(e) + MP.CUSTOM.editing_bans = true + G.FUNCS.your_collection_jokers(e) +end + + +-- --------------------------------------------------------------------------- +-- Tab content +-- --------------------------------------------------------------------------- +local function knob_row(node) + return { n = G.UIT.R, config = { align = "cm", padding = 0.08 }, nodes = { node } } +end + +local function soon_pill(label) + return { + n = G.UIT.C, + config = { align = "cm", minw = 4.5, minh = 0.85, padding = 0.08, r = 0.1, emboss = 0.05, colour = G.C.UI.BACKGROUND_INACTIVE }, + nodes = { + { n = G.UIT.R, config = { align = "cm" }, nodes = { { n = G.UIT.T, config = { text = label, scale = 0.45, colour = G.C.UI.TEXT_INACTIVE } } } }, + { n = G.UIT.R, config = { align = "cm" }, nodes = { { n = G.UIT.T, config = { text = "coming soon", scale = 0.3, colour = G.C.UI.TEXT_INACTIVE } } } }, + }, + } +end + +-- The editor is local-only for now: custom card bans aren't wired into ApplyBans +-- or the lobby modifier sync yet, so on the lobby (mp) path we stub the tab. +-- It stays fully functional in sp / practice. +local function coming_soon_root() + return { + n = G.UIT.ROOT, + config = { align = "cm", colour = G.C.CLEAR, minh = 6, minw = 15 }, + nodes = { + { n = G.UIT.R, config = { align = "cm" }, nodes = { soon_pill("Custom ruleset") } }, + }, + } +end + +function MP.UI.build_custom_ruleset_editor(mode) + if mode == "mp" then return coming_soon_root() end + MP.CUSTOM.editor_mode = mode -- so the ban picker's Back knows where to return + MP.CUSTOM.draft = MP.CUSTOM.draft or MP.CUSTOM.new_draft() + local d = MP.CUSTOM.draft + + local knobs = {} + + -- content set radio + knobs[#knobs + 1] = knob_row(create_option_cycle({ + label = "Content set", + scale = 0.8, + options = CONTENT_SETS, + current_option = index_of(CONTENT_SETS, d.base, 2), + opt_callback = "mp_custom_set_base", + w = 4, + })) + + -- edit-bans: custom card bans aren't wired into ApplyBans / network sync yet. + knobs[#knobs + 1] = knob_row(soon_pill("Edit joker bans")) + + -- Variants strip: option-cycles for graded knobs (timer / glass) plus the PvP + -- toggle. Binary twists live on the wall below. + local variants_strip = { + n = G.UIT.R, + config = { align = "cm", padding = 0.04 }, + nodes = { + { n = G.UIT.C, config = { align = "cm", padding = 0.1 }, nodes = { MP.UI.build_timer_modifier_cycle() } }, + { n = G.UIT.C, config = { align = "cm", padding = 0.1 }, nodes = { MP.UI.build_glass_cycle() } }, + { n = G.UIT.C, config = { align = "cm", padding = 0.1 }, nodes = { MP.UI.build_pvp_timer_toggle() } }, + }, + } + + local modifiers_panel = { + variants_strip, + MP.UI.build_mutators_wall(), + { n = G.UIT.R, config = { minh = 0.06 } }, + MP.UI.build_mutator_randomize_row(), + } + + -- Play button label matches the start flow the base ruleset will take. + local base_ruleset = MP.Rulesets["ruleset_mp_" .. (CONTENT_SET_RULESET[d.base] or "blitz")] + local play_label + if mode == "sp" or mode == "practice" then + play_label = localize("b_play_cap") + elseif base_ruleset and base_ruleset.forced_gamemode then + play_label = localize("b_create_lobby") + else + play_label = localize("b_next") + end + + local actions = { + n = G.UIT.R, + config = { align = "cm", padding = 0.12 }, + nodes = { + { + n = G.UIT.C, + config = { align = "cm", padding = 0.06 }, + nodes = { + UIBox_button({ + id = "mp_custom_play_btn", + button = "mp_custom_play", + label = { play_label }, + colour = G.C.GREEN, + minw = 5, + minh = 0.8, + scale = 0.5, + hover = true, + shadow = true, + }), + }, + }, + }, + } + + return { + n = G.UIT.ROOT, + config = { align = "cm", colour = G.C.CLEAR }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm" }, + nodes = { + { n = G.UIT.C, config = { align = "tm", minh = 6, minw = 5, padding = 0.1 }, nodes = knobs }, + { + n = G.UIT.C, + config = { align = "tm", minh = 6, minw = 10, padding = 0.15, r = 0.1, colour = G.C.BLACK }, + nodes = modifiers_panel, + }, + }, + }, + actions, + }, + } +end diff --git a/ui/main_menu/play_button/gamemode_selection.lua b/ui/main_menu/play_button/gamemode_selection.lua new file mode 100644 index 000000000..f05c09bc0 --- /dev/null +++ b/ui/main_menu/play_button/gamemode_selection.lua @@ -0,0 +1,199 @@ +function G.UIDEF.gamemode_selection_options() + MP.LOBBY.config.gamemode = "gamemode_mp_attrition" + + local default_gamemode_area = UIBox({ + definition = G.UIDEF.gamemode_info("attrition"), + config = { align = "cm" }, + }) + + local gamemode_buttons_data = { + { + name = "k_battle", + buttons = { + { button_id = "attrition_gamemode_button", button_localize_key = "k_attrition" }, + { button_id = "showdown_gamemode_button", button_localize_key = "k_showdown" }, + }, + }, + { + name = "k_challenge", + buttons = { + { button_id = "survival_gamemode_button", button_localize_key = "k_survival" }, + }, + }, + } + + return MP.UI.Main_Lobby_Options( + "gamemode_area", + default_gamemode_area, + "change_gamemode_selection", + gamemode_buttons_data + ) +end + +function G.UIDEF.gamemode_selection_tabs() + local tabs = { + { + label = localize("k_gamemodes"), + tab_definition_function = function() + return G.UIDEF.gamemode_selection_options() + end, + chosen = true, + } + } + local t = create_UIBox_generic_options({ + back_func = "create_lobby", + contents = { + { + n = G.UIT.R, + config = { align = "cm", padding = 0 }, + nodes = { + create_tabs({ + tabs = tabs, + colour = G.C.BOOSTER, + }), + }, + }, + }, + }) + return t +end + +function G.FUNCS.change_gamemode_selection(e) + MP.UI.Change_Main_Lobby_Options( + e, + "gamemode_area", + G.UIDEF.gamemode_info, + "attrition_gamemode_button", + function(gamemode_name) + MP.LOBBY.config.gamemode = "gamemode_mp_" .. gamemode_name + end + ) +end + +function G.UIDEF.gamemode_info(gamemode_name) + local gamemode = MP.Gamemodes["gamemode_mp_" .. gamemode_name] + + local gamemode_info_tabs = UIBox({ + definition = G.UIDEF.gamemode_tabs(gamemode), + config = { align = "cm" }, + }) + + return { + n = G.UIT.ROOT, + config = { align = "tm", minh = 8, maxh = 8, minw = 11, maxw = 11, colour = G.C.CLEAR }, + nodes = { + { + n = G.UIT.C, + config = { align = "tm", padding = 0.2, r = 0.1, colour = G.C.BLACK }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm" }, + nodes = { + { n = G.UIT.O, config = { object = gamemode_info_tabs } }, + }, + }, + { + n = G.UIT.R, + config = { align = "cm" }, + nodes = { + { + n = G.UIT.R, + config = { + id = "start_lobby_button", + button = "start_lobby", + align = "cm", + padding = 0.05, + r = 0.1, + minw = 8, + minh = 0.8, + colour = G.C.BLUE, + hover = true, + shadow = true, + }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("b_create_lobby"), + scale = 0.5, + colour = G.C.UI.TEXT_LIGHT, + }, + }, + }, + }, + }, + }, + }, + }, + }, + } +end + +function G.UIDEF.gamemode_tabs(gamemode) + local default_tabs = UIBox({ + definition = G.UIDEF.lobby_setup_tabs_definition(gamemode, "info", 1, false), + config = { align = "cm", tab_type = "info", chosen_tab = 1 }, + }) + + return { + n = G.UIT.ROOT, + config = { align = "cm", colour = G.C.L_BLACK, r = 0.1 }, + nodes = { + { + n = G.UIT.C, + config = { align = "cm" }, + nodes = { + { + n = G.UIT.R, + config = { align = "tm", colour = G.C.GREY, r = 0.1 }, + nodes = { + { n = G.UIT.O, config = { object = default_tabs } }, + }, + }, + { + n = G.UIT.R, + config = { align = "bm", padding = 0.05 }, + nodes = { + create_option_cycle({ + options = { localize("k_info"), localize("k_bans"), localize("k_reworks") }, + current_option = 1, + opt_callback = "gamemode_switch_tabs", + opt_args = { ui = default_tabs, gamemode = gamemode }, + w = 5, + colour = G.C.ORANGE, + cycle_shoulders = false, + }), + }, + }, + }, + }, + }, + } +end + +function G.FUNCS.gamemode_switch_tabs(args) + if not args or not args.cycle_config then return end + local callback_args = args.cycle_config.opt_args + + local tabs_object = callback_args.ui + local tabs_wrap = tabs_object.parent + + local active_tab = tabs_wrap.UIBox:get_UIE_by_ID("gamemode_active_tab") + local active_tab_idx = active_tab and active_tab.config.tab_idx or 1 + + local tab_type = (args.to_key == 2 and "banned") or (args.to_key == 3 and "rework") or "info" + local def = G.UIDEF.lobby_setup_tabs_definition(callback_args.gamemode, tab_type, active_tab_idx, false) + + tabs_object.config.tab_type = tab_type + MP.LOBBY.config.gamemode = callback_args.gamemode.key + MP.LOBBY.gamemode_preview = (tab_type == "rework") + + tabs_wrap.config.object:remove() + tabs_wrap.config.object = UIBox({ + definition = def, + config = { align = "cm", parent = tabs_wrap }, + }) + + tabs_wrap.UIBox:recalculate() +end diff --git a/ui/main_menu/play_button/ghost_replay_picker.lua b/ui/main_menu/play_button/ghost_replay_picker.lua new file mode 100644 index 000000000..94e961e7c --- /dev/null +++ b/ui/main_menu/play_button/ghost_replay_picker.lua @@ -0,0 +1,739 @@ +-- Match Replay Picker UI +-- Shown in practice mode to select a past match replay for ghost PvP +-- Two-column layout: replay list (left) + match details panel (right) + +local function reopen_practice_menu() + G.FUNCS.overlay_menu({ + definition = G.UIDEF.ruleset_selection_tabs("practice"), + }) +end + +local function refresh_picker() + G.FUNCS.exit_overlay_menu() + G.FUNCS.overlay_menu({ + definition = G.UIDEF.ghost_replay_picker(), + }) +end + +function G.FUNCS.open_ghost_replay_picker(e) + G.FUNCS.overlay_menu({ + definition = G.UIDEF.ghost_replay_picker(), + }) +end + +-- Stashed merged replay list so callbacks can index into it +local _picker_replays = {} +-- Currently previewed replay (shown in right panel) +local _preview_idx = nil +-- Perspective flip for the previewed replay (before loading) +local _preview_flipped = false + +function G.FUNCS.preview_ghost_replay(e) + local idx = tonumber(e.config.id:match("ghost_replay_(%d+)")) + if idx ~= _preview_idx then + _preview_flipped = false + end + _preview_idx = idx + refresh_picker() +end + +function G.FUNCS.load_previewed_ghost(e) + local replay = _picker_replays[_preview_idx] + if not replay then return end + if not MP.GHOST.is_ruleset_supported(replay) then return end + + MP.GHOST.load(replay) + MP.GHOST.flipped = _preview_flipped + + -- Replay's ruleset, else the picker's current selection. + local ruleset_key = replay.ruleset or MP.SP.ruleset + if ruleset_key then + MP.SP.ruleset = ruleset_key + local ruleset_name = ruleset_key:gsub("^ruleset_mp_", "") + MP.apply_default_modifiers(ruleset_name) + MP.LoadReworks(ruleset_name) + end + + _preview_idx = nil + _preview_flipped = false + G.FUNCS.start_practice_run(e) +end + +-- Keep old name working for any external callers +function G.FUNCS.select_ghost_replay(e) + G.FUNCS.preview_ghost_replay(e) +end + +function G.FUNCS.clear_ghost_replay(e) + MP.GHOST.clear() + _preview_idx = nil + _preview_flipped = false + reopen_practice_menu() +end + +function G.FUNCS.flip_ghost_perspective(e) + if _preview_idx then + _preview_flipped = not _preview_flipped + else + MP.GHOST.flip() + end + refresh_picker() +end + +G.FUNCS.ghost_picker_back = function(e) + _preview_idx = nil + _preview_flipped = false + reopen_practice_menu() +end + +------------------------------------------------------------------------------- +-- Helpers +------------------------------------------------------------------------------- + + +local function text_row(label, value, scale, label_colour, value_colour) + scale = scale or 0.3 + label_colour = label_colour or G.C.UI.TEXT_INACTIVE + value_colour = value_colour or G.C.WHITE + return { + n = G.UIT.R, + config = { align = "cl", padding = 0.02 }, + nodes = { + { n = G.UIT.T, config = { text = label .. " ", scale = scale, colour = label_colour } }, + { n = G.UIT.T, config = { text = tostring(value), scale = scale, colour = value_colour } }, + }, + } +end + +local function section_header(title, scale) + scale = scale or 0.3 + return { + n = G.UIT.R, + config = { align = "cl", padding = 0.02 }, + nodes = { + { n = G.UIT.T, config = { text = title, scale = scale, colour = G.C.GOLD } }, + }, + } +end + + +local function build_joker_card_area(jokers, width, base_scale) + if not jokers or #jokers == 0 then return nil end + + width = width or 5.5 + base_scale = base_scale or 0.8 + local card_size = math.max(0.3, base_scale - 0.01 * #jokers) + local card_area = CardArea(0, 0, width, G.CARD_H * card_size, { + card_limit = nil, + type = "title_2", + view_deck = true, + highlight_limit = 0, + card_w = G.CARD_W * card_size, + }) + + for _, j in ipairs(jokers) do + local key = j.key or j + local center = G.P_CENTERS[key] + if center then + local card = Card( + 0, + 0, + G.CARD_W * card_size, + G.CARD_H * card_size, + nil, + center, + { bypass_discovery_center = true, bypass_discovery_ui = true } + ) + card_area:emplace(card) + end + end + + return { + n = G.UIT.R, + config = { align = "cm", padding = 0.02 }, + nodes = { + { n = G.UIT.O, config = { object = card_area } }, + }, + } +end + +------------------------------------------------------------------------------- +-- Stats panel sub-builders +------------------------------------------------------------------------------- + +local function build_header_row(r) + local header_nodes = {} + + local result_str = (r.winner == "player") and "VICTORY" or "DEFEAT" + local result_colour = (r.winner == "player") and G.C.GREEN or G.C.RED + header_nodes[#header_nodes + 1] = { + n = G.UIT.R, + config = { align = "cm", padding = 0.04 }, + nodes = { + { n = G.UIT.T, config = { text = result_str, scale = 0.4, colour = result_colour } }, + }, + } + + local player_display = r.player_name or "?" + local nemesis_display = r.nemesis_name or "?" + header_nodes[#header_nodes + 1] = { + n = G.UIT.R, + config = { align = "cm", padding = 0.02 }, + nodes = { + { + n = G.UIT.T, + config = { text = player_display .. " vs " .. nemesis_display, scale = 0.35, colour = G.C.WHITE }, + }, + }, + } + + return header_nodes +end + +local function build_match_info_band(r) + local ruleset_display = r.ruleset and r.ruleset:gsub("^ruleset_mp_", "") or "?" + local gamemode_display = r.gamemode and r.gamemode:gsub("^gamemode_mp_", "") or "?" + local deck_display = r.deck or "?" + + local info_left = {} + local info_right = {} + info_left[#info_left + 1] = text_row("Ruleset:", ruleset_display, 0.25) + info_left[#info_left + 1] = text_row("Gamemode:", gamemode_display, 0.25) + info_left[#info_left + 1] = text_row("Deck:", deck_display, 0.25) + if r.seed then info_left[#info_left + 1] = text_row("Seed:", r.seed, 0.25) end + if r.stake then info_left[#info_left + 1] = text_row("Stake:", tostring(r.stake), 0.25) end + + info_right[#info_right + 1] = text_row("Final Ante:", tostring(r.final_ante or "?"), 0.25) + if r.duration then info_right[#info_right + 1] = text_row("Duration:", r.duration, 0.25) end + if r.timestamp then + info_right[#info_right + 1] = text_row("Date:", os.date("%Y-%m-%d %H:%M", r.timestamp), 0.25) + end + if r._filename then + local source_label = r._filename + if r._game_index and r._game_count and r._game_count > 1 then + source_label = source_label .. string.format(" (g%d/%d)", r._game_index, r._game_count) + end + info_right[#info_right + 1] = text_row("Source:", source_label, 0.22) + end + + return { + n = G.UIT.C, + config = { align = "tm", padding = 0.02 }, + nodes = { + section_header("Match Info"), + { + n = G.UIT.R, + config = { align = "tm", padding = 0.02 }, + nodes = { + { n = G.UIT.C, config = { align = "tl", padding = 0.04, minw = 4 }, nodes = info_left }, + { n = G.UIT.C, config = { align = "tl", padding = 0.04, minw = 4 }, nodes = info_right }, + }, + }, + }, + } +end + +local function build_ante_breakdown(r) + local ante_nodes = {} + if r.ante_snapshots then + ante_nodes[#ante_nodes + 1] = section_header("Ante Breakdown") + local antes = {} + for k in pairs(r.ante_snapshots) do + antes[#antes + 1] = tonumber(k) + end + table.sort(antes) + + for _, ante_num in ipairs(antes) do + local snap = r.ante_snapshots[tostring(ante_num)] or r.ante_snapshots[ante_num] + if snap then + local result_icon = snap.result == "win" and "W" or "L" + local r_col = snap.result == "win" and G.C.GREEN or G.C.RED + local p_score = MP.GHOST.format_score(snap.player_score or 0) + local e_score = MP.GHOST.format_score(snap.enemy_score or 0) + local lives_str = "" + if snap.player_lives and snap.enemy_lives then + lives_str = string.format(" [%d-%d]", snap.player_lives, snap.enemy_lives) + end + ante_nodes[#ante_nodes + 1] = { + n = G.UIT.R, + config = { align = "cl", padding = 0.01 }, + nodes = { + { + n = G.UIT.T, + config = { + text = string.format("A%d ", ante_num), + scale = 0.28, + colour = G.C.UI.TEXT_INACTIVE, + }, + }, + { n = G.UIT.T, config = { text = result_icon, scale = 0.28, colour = r_col } }, + { + n = G.UIT.T, + config = { + text = string.format(" %s - %s%s", p_score, e_score, lives_str), + scale = 0.28, + colour = G.C.WHITE, + }, + }, + }, + } + end + end + end + return ante_nodes +end + +-- Duel body: symmetric You / Opponent columns (vouchers + jokers) +-- Note: reroll_count / reroll_cost_total are only captured for the local +-- player, so they live in the footer's "Spending" cell instead of here. +local function build_side_nodes(stats, jokers, label) + local nodes = {} + nodes[#nodes + 1] = section_header(label) + if stats and stats.vouchers then + local voucher_keys = {} + for key in stats.vouchers:gmatch("[^-]+") do + if G.P_CENTERS[key] then voucher_keys[#voucher_keys + 1] = key end + end + if #voucher_keys > 0 then + local voucher_area = build_joker_card_area(voucher_keys, 4, 0.45) + if voucher_area then nodes[#nodes + 1] = voucher_area end + end + end + if jokers then + local joker_area = build_joker_card_area(jokers, 4, 0.6) + if joker_area then nodes[#nodes + 1] = joker_area end + end + return nodes +end + +local function build_spending_cell(r) + local shop_nodes = {} + local ps = r.player_stats + local has_rerolls = ps and (ps.reroll_count or ps.reroll_cost_total) + if r.shop_spending or has_rerolls then + shop_nodes[#shop_nodes + 1] = section_header("Your Spending") + if ps and ps.reroll_count then + shop_nodes[#shop_nodes + 1] = text_row("Rerolls:", tostring(ps.reroll_count), 0.28) + end + if ps and ps.reroll_cost_total then + shop_nodes[#shop_nodes + 1] = text_row("Reroll $:", "$" .. tostring(ps.reroll_cost_total), 0.28) + end + if r.shop_spending then + local total = 0 + local antes = {} + for k, v in pairs(r.shop_spending) do + antes[#antes + 1] = tonumber(k) + total = total + v + end + table.sort(antes) + local parts = {} + for _, a in ipairs(antes) do + parts[#parts + 1] = string.format("A%d:$%d", a, r.shop_spending[tostring(a)] or r.shop_spending[a]) + end + shop_nodes[#shop_nodes + 1] = text_row("Shop $:", "$" .. tostring(total), 0.28) + shop_nodes[#shop_nodes + 1] = { + n = G.UIT.R, + config = { align = "cl", padding = 0.02, maxw = 6 }, + nodes = { + { + n = G.UIT.T, + config = { text = table.concat(parts, " "), scale = 0.24, colour = G.C.UI.TEXT_INACTIVE }, + }, + }, + } + end + end + return shop_nodes +end + +local function build_failed_rounds_cell(r) + local failed_nodes = {} + if r.failed_rounds and #r.failed_rounds > 0 then + local fr_parts = {} + for _, a in ipairs(r.failed_rounds) do + fr_parts[#fr_parts + 1] = "A" .. tostring(a) + end + failed_nodes[#failed_nodes + 1] = section_header("Failed Rounds") + failed_nodes[#failed_nodes + 1] = + text_row("Antes:", table.concat(fr_parts, ", "), 0.28, G.C.UI.TEXT_INACTIVE, G.C.RED) + end + return failed_nodes +end + +local function build_action_buttons(r, flipped) + -- Playing-as flip button + Load button (spans full width) + local playing_as = flipped + and (r.nemesis_name or "?") + or (r.player_name or "?") + + local supported = MP.GHOST.is_ruleset_supported(r) + local action_nodes = {} + + if supported then + action_nodes[#action_nodes + 1] = UIBox_button({ + id = "flip_ghost_perspective", + button = "flip_ghost_perspective", + label = { "Playing as: " .. playing_as }, + minw = 3.5, + minh = 0.5, + scale = 0.3, + colour = G.C.BLUE, + hover = true, + shadow = true, + }) + action_nodes[#action_nodes + 1] = UIBox_button({ + id = "load_previewed_ghost", + button = "load_previewed_ghost", + label = { "Play Match" }, + minw = 3.5, + minh = 0.5, + scale = 0.35, + colour = G.C.GREEN, + hover = true, + shadow = true, + }) + else + action_nodes[#action_nodes + 1] = { + n = G.UIT.R, + config = { align = "cm", padding = 0.04 }, + nodes = { + { + n = G.UIT.T, + config = { + text = "Unsupported ruleset — cannot play this replay", + scale = 0.3, + colour = G.C.RED, + }, + }, + }, + } + end + + return { + n = G.UIT.R, + config = { align = "cm", padding = 0.08 }, + nodes = action_nodes, + } +end + +------------------------------------------------------------------------------- +-- Stats detail panel (right column) +------------------------------------------------------------------------------- + +local function build_stats_panel(r) + if not r then + return { + n = G.UIT.C, + config = { align = "cm", padding = 0.2, minw = 6, minh = 5 }, + nodes = { + { + n = G.UIT.T, + config = { + text = "Select a match", + scale = 0.35, + colour = G.C.UI.TEXT_INACTIVE, + }, + }, + }, + } + end + + local header_nodes = build_header_row(r) + local match_info_band = build_match_info_band(r) + local ante_nodes = build_ante_breakdown(r) + local your_nodes = build_side_nodes(r.player_stats, r.player_jokers, r.player_name or "You") + local opp_nodes = build_side_nodes(r.nemesis_stats, r.nemesis_jokers, r.nemesis_name or "Opponent") + local shop_nodes = build_spending_cell(r) + local failed_nodes = build_failed_rounds_cell(r) + local load_button = build_action_buttons(r, _preview_flipped) + + -- Three vertically stacked bands: meta (just Match Info), duel, footer + local meta_band = { + n = G.UIT.R, + config = { align = "tm", padding = 0.02 }, + nodes = { match_info_band }, + } + + local duel_band = { + n = G.UIT.R, + config = { align = "tm", padding = 0.02 }, + nodes = { + { n = G.UIT.C, config = { align = "tm", padding = 0.05, minw = 5 }, nodes = your_nodes }, + { n = G.UIT.C, config = { align = "tm", padding = 0.05, minw = 5 }, nodes = opp_nodes }, + }, + } + + -- Ante Breakdown + Your Spending are both "match flow / your $ over time" data + local footer_band = { + n = G.UIT.R, + config = { align = "tm", padding = 0.02 }, + nodes = { + { n = G.UIT.C, config = { align = "tm", padding = 0.05, minw = 4 }, nodes = ante_nodes }, + { n = G.UIT.C, config = { align = "tm", padding = 0.05, minw = 4 }, nodes = shop_nodes }, + { n = G.UIT.C, config = { align = "tm", padding = 0.05, minw = 2 }, nodes = failed_nodes }, + }, + } + + local body_row = { + n = G.UIT.R, + config = { align = "tm", padding = 0.02 }, + nodes = { + { + n = G.UIT.C, + config = { align = "tm", padding = 0.02 }, + nodes = { meta_band, duel_band, footer_band }, + }, + }, + } + + return { + n = G.UIT.C, + config = { align = "tm", padding = 0.1, minw = 9, r = 0.1, colour = G.C.L_BLACK }, + nodes = { + -- Header spanning both columns + { + n = G.UIT.R, + config = { align = "cm" }, + nodes = { { n = G.UIT.C, config = { align = "cm" }, nodes = header_nodes } }, + }, + -- Two-column body + body_row, + -- Full-width button + load_button, + }, + } +end + +------------------------------------------------------------------------------- +-- Main picker UI +------------------------------------------------------------------------------- + +local function load_all_replays() + local all = MP.GHOST.load_folder_replays() + local seen = {} + for _, r in ipairs(all) do + seen[(r._filename or "") .. ":" .. (r._game_index or 0)] = true + end + for _, r in ipairs(MP.GHOST.load_lovely_log_replays(10)) do + local key = (r._filename or "") .. ":" .. (r._game_index or 0) + if not seen[key] then + seen[key] = true + all[#all + 1] = r + end + end + + table.sort(all, function(a, b) + return (a.timestamp or 0) > (b.timestamp or 0) + end) + + return all +end + +local function build_replay_list(replays, preview_idx) + local replay_nodes = {} + + if #replays == 0 then + replay_nodes[#replay_nodes + 1] = { + n = G.UIT.R, + config = { align = "cm", padding = 0.2 }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("k_no_ghost_replays"), + scale = 0.35, + colour = G.C.UI.TEXT_INACTIVE, + }, + }, + }, + } + replay_nodes[#replay_nodes + 1] = { + n = G.UIT.R, + config = { align = "cm", padding = 0.02 }, + nodes = { + { + n = G.UIT.T, + config = { + text = "Play a match, or place .log/.json in replays/", + scale = 0.28, + colour = G.C.UI.TEXT_INACTIVE, + }, + }, + }, + } + else + local last_filename = nil + for i, r in ipairs(replays) do + -- Show filename header when entering a new log file group with multiple games + if r._filename and r._game_count and r._game_count > 1 then + if r._filename ~= last_filename then + last_filename = r._filename + local display_name = r._filename:gsub("%.log$", "") + replay_nodes[#replay_nodes + 1] = { + n = G.UIT.R, + config = { align = "cl", padding = 0.02 }, + nodes = { + { + n = G.UIT.T, + config = { + text = display_name .. " (" .. r._game_count .. " games)", + scale = 0.25, + colour = G.C.UI.TEXT_INACTIVE, + }, + }, + }, + } + end + else + last_filename = nil + end + + local label = MP.GHOST.build_label(r) + local is_selected = (preview_idx == i) + local btn_colour + if is_selected then + btn_colour = G.C.WHITE + elseif r._source == "file" then + btn_colour = G.C.BLUE + else + btn_colour = G.C.GREY + end + + replay_nodes[#replay_nodes + 1] = { + n = G.UIT.R, + config = { align = "cm", padding = 0.03 }, + nodes = { + UIBox_button({ + id = "ghost_replay_" .. i, + button = "preview_ghost_replay", + label = { label }, + minw = 5.5, + minh = 0.45, + scale = 0.3, + colour = btn_colour, + hover = true, + shadow = true, + }), + }, + } + end + end + + return replay_nodes +end + +function G.UIDEF.ghost_replay_picker() + local all = load_all_replays() + _picker_replays = all + + local replay_nodes = build_replay_list(all, _preview_idx) + + -- Control buttons below the list + local control_nodes = {} + + if MP.GHOST.is_active() then + control_nodes[#control_nodes + 1] = { + n = G.UIT.R, + config = { align = "cm", padding = 0.03 }, + nodes = { + UIBox_button({ + id = "clear_ghost_replay", + button = "clear_ghost_replay", + label = { "Clear Replay" }, + minw = 3, + minh = 0.45, + scale = 0.3, + colour = G.C.RED, + hover = true, + shadow = true, + }), + }, + } + end + + -- Back button + control_nodes[#control_nodes + 1] = { + n = G.UIT.R, + config = { align = "cm", padding = 0.05 }, + nodes = { + UIBox_button({ + id = "ghost_picker_back", + button = "ghost_picker_back", + label = { localize("b_back") }, + minw = 3, + minh = 0.5, + scale = 0.35, + colour = G.C.ORANGE, + hover = true, + shadow = true, + }), + }, + } + + -- Left column + local left_col = { + n = G.UIT.C, + config = { align = "tm", padding = 0.1, minw = 6, r = 0.1, colour = G.C.L_BLACK }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm", padding = 0.06 }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("k_ghost_replays"), + scale = 0.45, + colour = G.C.WHITE, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { align = "cm", padding = 0.05, maxh = 5 }, + nodes = replay_nodes, + }, + { + n = G.UIT.R, + config = { align = "cm", padding = 0.05 }, + nodes = control_nodes, + }, + }, + } + + -- Right column: stats detail + local preview_replay = _preview_idx and _picker_replays[_preview_idx] or nil + local right_col = build_stats_panel(preview_replay) + + return { + n = G.UIT.ROOT, + config = { align = "cm", colour = G.C.CLEAR, minh = 7, minw = 13 }, + nodes = { + { + n = G.UIT.R, + config = { align = "cm", padding = 0.15 }, + nodes = { + { + n = G.UIT.C, + config = { + align = "tm", + padding = 0.15, + r = 0.1, + colour = G.C.BLACK, + maxw = 16.5, + maxh = 8, + }, + nodes = { + { + n = G.UIT.R, + config = { align = "tm", padding = 0.05 }, + nodes = { left_col, right_col }, + }, + }, + }, + }, + }, + }, + } +end diff --git a/ui/main_menu/play_button/join_lobby_button.lua b/ui/main_menu/play_button/join_lobby_button.lua new file mode 100644 index 000000000..417eaa0df --- /dev/null +++ b/ui/main_menu/play_button/join_lobby_button.lua @@ -0,0 +1,42 @@ +function G.UIDEF.create_UIBox_join_lobby_button() + return ( + create_UIBox_generic_options({ + back_func = "play_options", + contents = { + { + n = G.UIT.R, + config = { + padding = 0, + align = "cm", + }, + nodes = { + { + n = G.UIT.R, + config = { + padding = 0.5, + align = "cm", + }, + nodes = { + create_text_input({ + w = 4, + h = 1, + max_length = 5, + all_caps = true, + prompt_text = localize("k_enter_lobby_code"), + ref_table = MP.LOBBY, + ref_value = "temp_code", + extended_corpus = false, + keyboard_offset = 4, + minw = 5, + callback = function(val) + MP.ACTIONS.join_lobby(MP.LOBBY.temp_code) + end, + }), + }, + }, + }, + }, + }, + }) + ) +end diff --git a/ui/main_menu/play_button/play_button.lua b/ui/main_menu/play_button/play_button.lua new file mode 100644 index 000000000..3c34fd548 --- /dev/null +++ b/ui/main_menu/play_button/play_button.lua @@ -0,0 +1,84 @@ +function G.UIDEF.override_main_menu_play_button() + if not G.SETTINGS.tutorial_complete or G.SETTINGS.tutorial_progress ~= nil then + return ( + create_UIBox_generic_options({ + contents = { + UIBox_button({ + label = { localize("b_singleplayer") }, + colour = G.C.BLUE, + button = "setup_run_singleplayer", + minw = 5, + }), + { + n = G.UIT.R, + config = { + align = "cm", + padding = 0.5, + }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("k_tutorial_not_complete"), + colour = G.C.UI.TEXT_LIGHT, + scale = 0.45, + }, + }, + }, + }, + UIBox_button({ + label = { localize("b_skip_tutorial") }, + colour = G.C.RED, + button = "skip_tutorial", + minw = 5, + }), + }, + }) + ) + end + + return ( + create_UIBox_generic_options({ + contents = { + UIBox_button({ + label = { localize("b_singleplayer") }, + colour = G.C.BLUE, + button = "start_vanilla_sp", + minw = 5, + }), + UIBox_button({ + label = { localize("b_sp_with_ruleset") }, + colour = G.C.ORANGE, + button = "setup_practice_mode", + minw = 5, + }), + MP.LOBBY.connected and UIBox_button({ + label = { localize("b_create_lobby") }, + colour = G.C.GREEN, + button = "create_lobby", + minw = 5, + }) or nil, + MP.LOBBY.connected and UIBox_button({ + label = { localize("b_join_lobby") }, + colour = G.C.RED, + button = "join_lobby", + minw = 5, + minh = 0.7, + }) or nil, + MP.LOBBY.connected and UIBox_button({ + label = { localize("b_join_lobby_clipboard") }, + colour = G.C.PURPLE, + button = "join_from_clipboard", + minw = 5, + minh = 0.7, + }) or nil, + not MP.LOBBY.connected and UIBox_button({ + label = { localize("b_reconnect") }, + colour = G.C.RED, + button = "reconnect", + minw = 5, + }) or nil, + }, + }) + ) +end diff --git a/ui/main_menu/play_button/play_button_callbacks.lua b/ui/main_menu/play_button/play_button_callbacks.lua new file mode 100644 index 000000000..f9c897708 --- /dev/null +++ b/ui/main_menu/play_button/play_button_callbacks.lua @@ -0,0 +1,158 @@ +function G.FUNCS.setup_run_singleplayer(e) + G.SETTINGS.paused = true + MP.LOBBY.config.ruleset = nil + MP.LOBBY.config.gamemode = nil + MP.SP.ruleset = nil + MP.SP.practice = false + MP.GHOST.clear() + MP.MODIFIERS = {} + + G.FUNCS.overlay_menu({ + definition = G.UIDEF.ruleset_selection_tabs("sp"), + }) +end + +function G.FUNCS.start_sp_run(e) + G.FUNCS.exit_overlay_menu() + G.FUNCS.setup_run(e) +end + +function G.FUNCS.start_vanilla_sp(e) + MP.LOBBY.config.ruleset = nil + MP.LOBBY.config.gamemode = nil + MP.SP.ruleset = nil + MP.SP.practice = false + MP.GHOST.clear() + G.FUNCS.setup_run(e) +end + +function G.FUNCS.play_options(e) + G.SETTINGS.paused = true + + G.FUNCS.overlay_menu({ + definition = G.UIDEF.override_main_menu_play_button(), + }) +end + +function G.FUNCS.create_lobby(e) + G.SETTINGS.paused = true + + -- Clear practice/ghost state so it can't shadow MP reads during lobby setup. + MP.SP.practice = false + MP.GHOST.clear() + MP.MODIFIERS = {} + + G.FUNCS.overlay_menu({ + definition = G.UIDEF.ruleset_selection_tabs("mp"), + }) +end + +function G.FUNCS.select_gamemode(e) + G.SETTINGS.paused = true + + G.FUNCS.overlay_menu({ + definition = G.UIDEF.gamemode_selection_tabs(), + }) +end + +function G.FUNCS.join_lobby(e) + G.SETTINGS.paused = true + + -- Same isolation as create_lobby; modifiers arrive from the host. + MP.SP.practice = false + MP.GHOST.clear() + + G.FUNCS.overlay_menu({ + definition = G.UIDEF.create_UIBox_join_lobby_button(), + }) + local text_input = G.OVERLAY_MENU:get_UIE_by_ID("text_input") + G.FUNCS.select_text_input(text_input) +end + +function G.FUNCS.weekly_interrupt(e) + if (not MP.LOBBY.config.weekly) or (MP.LOBBY.config.weekly ~= MP.LOBBY.fetched_weekly) then + G.SETTINGS.paused = true + + G.FUNCS.overlay_menu({ + definition = G.UIDEF.weekly_interrupt(not not MP.LOBBY.config.weekly), + }) + return true + end + return false +end + +function G.FUNCS.set_weekly(e) + SMODS.Mods["Multiplayer"].config.weekly = MP.LOBBY.fetched_weekly + SMODS.save_mod_config(SMODS.Mods["Multiplayer"]) + SMODS.restart_game() -- idk if this works well... +end + +function G.FUNCS.skip_tutorial(e) + G.SETTINGS.tutorial_complete = true + G.SETTINGS.tutorial_progress = nil + G.FUNCS.play_options(e) +end + +function G.FUNCS.join_from_clipboard(e) + local paste = MP.UTILS.get_from_clipboard() + if not paste then return end + MP.LOBBY.temp_code = string.sub(string.upper(paste:gsub("[^%a]", "")), 1, 5) -- cursed + MP.ACTIONS.join_lobby(MP.LOBBY.temp_code) +end + +function G.FUNCS.start_lobby(e) + G.SETTINGS.paused = false + + MP.SP.practice = false + MP.GHOST.clear() + + MP.reset_lobby_config(true) + + MP.LOBBY.config.multiplayer_jokers = MP.current_ruleset().multiplayer_content + + -- Hide opponent score until you play: default on for standard-layer rulesets + -- only. Set before force_lobby_options() so a forcing ruleset can override it. + MP.LOBBY.config.hide_score_until_played = MP.current_ruleset().standard == true + + MP.LOBBY.config.forced_config = MP.current_ruleset():force_lobby_options() + + MP.LOBBY.config.modifier_layers = MP.modifiers_serialize() + + if MP.LOBBY.config.gamemode == "gamemode_mp_survival" then + MP.LOBBY.config.starting_lives = 1 + MP.LOBBY.config.disable_live_and_timer_hud = true + else + MP.LOBBY.config.disable_live_and_timer_hud = false + end + + -- Check if the current gamemode is valid. If it's not, default to attrition. + local gamemode_check = false + for k, _ in pairs(MP.Gamemodes) do + if k == MP.LOBBY.config.gamemode then gamemode_check = true end + end + MP.LOBBY.config.gamemode = gamemode_check and MP.LOBBY.config.gamemode or "gamemode_mp_attrition" + + MP.LOBBY.config.cocktail = SMODS.Mods["Multiplayer"].config.cocktail + + MP.ACTIONS.create_lobby(string.sub(MP.LOBBY.config.gamemode, 13)) + G.FUNCS.exit_overlay_menu() +end + +function G.FUNCS.join_game_submit(e) + G.FUNCS.exit_overlay_menu() + MP.ACTIONS.join_lobby(MP.LOBBY.temp_code) +end + +function G.FUNCS.join_game_paste(e) + MP.LOBBY.temp_code = MP.UTILS.get_from_clipboard() + MP.ACTIONS.join_lobby(MP.LOBBY.temp_code) + G.FUNCS.exit_overlay_menu() +end + +-- Creating forced gamemode buttons for each gamemode, since I am not sure how to pass variables through button presses +for gamemode, _ in pairs(MP.Gamemodes) do + G.FUNCS["force_" .. gamemode] = function(e) + MP.LOBBY.config.gamemode = gamemode + G.FUNCS.start_lobby(e) + end +end diff --git a/ui/main_menu/play_button/ruleset_selection.lua b/ui/main_menu/play_button/ruleset_selection.lua new file mode 100644 index 000000000..171b436d1 --- /dev/null +++ b/ui/main_menu/play_button/ruleset_selection.lua @@ -0,0 +1,724 @@ +local rulesets_tabs = { + default = { + { + name = "k_mp_ruleset_tab_general", + data = { + { + name = "k_matchmaking", + buttons = { + { button_id = "standard_ranked_ruleset_button", button_localize_key = "k_standard_ranked" }, + { button_id = "legacy_ranked_ruleset_button", button_localize_key = "k_legacy_ranked" }, + { button_id = "smallworld_ruleset_button", button_localize_key = "k_smallworld" }, + { button_id = "sandbox_ruleset_button", button_localize_key = "k_sandbox" }, + }, + }, + { + name = "k_custom", + buttons = { + { button_id = "blitz_ruleset_button", button_localize_key = "k_blitz" }, + { button_id = "traditional_ruleset_button", button_localize_key = "k_traditional" }, + { button_id = "vanilla_ruleset_button", button_localize_key = "k_vanilla" }, + }, + }, + }, + }, + { + name = "k_mp_ruleset_tab_tournaments", + data = { + { + name = "k_tournament", + buttons = { + { button_id = "majorleague_ruleset_button", button_localize_key = "k_majorleague" }, + { button_id = "minorleague_ruleset_button", button_localize_key = "k_minorleague" }, + { button_id = "wsob_ruleset_button", button_localize_key = "k_wsob" }, + }, + }, + { + name = "k_custom", + buttons = { + { button_id = "speedlatro_ruleset_button", button_localize_key = "k_speedlatro" }, + { button_id = "badlatro_ruleset_button", button_localize_key = "k_badlatro" }, + { button_id = "chaos_ruleset_button", button_localize_key = "k_chaos" }, + }, + }, + }, + }, + { + name = "k_mp_ruleset_tab_experimental", + data = { + { + name = "k_experimental", + buttons = { + { button_id = "experimental_ruleset_button", button_localize_key = "k_experimental_standard" }, + { button_id = "experimental_legacy_ruleset_button", button_localize_key = "k_experimental_legacy" }, + { button_id = "experimental_blind_raiser_ruleset_button", button_localize_key = "k_experimental_blind_raiser" }, + }, + }, + }, + }, + }, +} + +function G.UIDEF.ruleset_selection_tabs(mode, chosen_label) + local tabs_schema = rulesets_tabs[mode] or rulesets_tabs.default + local tabs = {} + for _, item in ipairs(tabs_schema) do + table.insert(tabs, { + label = localize(item.name), + tab_definition_function = function() + return G.UIDEF.ruleset_selection_options(mode, item.data) + end, + }) + end + -- Bespoke custom-ruleset editor tab (raw strings, no loc keys yet). + if MP.UI.build_custom_ruleset_editor then + table.insert(tabs, { + label = "Custom", + tab_definition_function = function() + return MP.UI.build_custom_ruleset_editor(mode) + end, + }) + end + -- Open on a specific tab when asked (e.g. returning from the ban picker), + -- otherwise default to the first. + local chose = false + if chosen_label then + for _, tab in ipairs(tabs) do + tab.chosen = tab.label == chosen_label + if tab.chosen then chose = true end + end + end + if not chose then tabs[1].chosen = true end + local t = create_UIBox_generic_options({ + back_func = "play_options", + contents = { + { + n = G.UIT.R, + config = { align = "cm", padding = 0 }, + nodes = { + create_tabs({ + tabs = tabs, + colour = G.C.BOOSTER, + }), + }, + }, + }, + }) + return t +end + +-- sp/practice selections stay local on MP.SP.ruleset; mp writes the shared +-- MP.LOBBY.config.ruleset. Every writer routes through here so practice can't +-- touch the MP global. +local function set_selected_ruleset(mode, ruleset_key) + if mode == "sp" or mode == "practice" then + MP.SP.ruleset = ruleset_key + else + MP.LOBBY.config.ruleset = ruleset_key + end +end + +function G.UIDEF.ruleset_selection_options(mode, buttons) + mode = mode or "mp" + MP.LOBBY.fetched_weekly = "smallworld" -- temp + + -- If ghost is active, preserve the replay's ruleset instead of resetting to default + local default_ruleset + if mode == "practice" and MP.GHOST.is_active() and MP.SP.ruleset then + default_ruleset = MP.SP.ruleset:gsub("^ruleset_mp_", "") + else + default_ruleset = string.match(buttons[1].buttons[1].button_id, "(.+)_ruleset_button$") + end + + set_selected_ruleset(mode, "ruleset_mp_" .. default_ruleset) + + -- Modifiers are per-ruleset; reset on (re)entry to a tab so a previous + -- ruleset's toggles can't bleed into the new one. Rulesets with + -- `default_modifiers` get those pre-checked. + -- i'm not a huge fan of any of this living here but + -- here we are + MP.apply_default_modifiers(default_ruleset) + + MP.LoadReworks(default_ruleset) + MP.UI.ruleset_selection_mode = mode + MP.UI.ruleset_selection_default_button = default_ruleset .. "_ruleset_button" + + local default_ruleset_area = UIBox({ + definition = G.UIDEF.ruleset_info(default_ruleset, mode), + config = { align = "cm" }, + }) + return MP.UI.Main_Lobby_Options("ruleset_area", default_ruleset_area, "change_ruleset_selection", buttons) +end + +function G.FUNCS.change_ruleset_selection(e) + local mode = MP.UI.ruleset_selection_mode or "mp" + + if e.config.id == "weekly_ruleset_button" then + if G.FUNCS.weekly_interrupt(e) then return end + end + + -- this currently doesn't work properly + -- local default_button = mode == "sp" and "vanilla_ruleset_button" or "standard_ranked_ruleset_button" + local default_button = MP.UI.ruleset_selection_default_button or "standard_ranked_ruleset_button" + + MP.UI.Change_Main_Lobby_Options( + e, + "ruleset_area", + function(ruleset_name) + return G.UIDEF.ruleset_info(ruleset_name, mode) + end, + default_button, + function(ruleset_name) + set_selected_ruleset(mode, "ruleset_mp_" .. ruleset_name) + MP.apply_default_modifiers(ruleset_name) + MP.LoadReworks(ruleset_name) + end + ) + + MP.LOBBY.ruleset_preview = false +end + +function G.UIDEF.ruleset_info(ruleset_name, mode) + mode = mode or "mp" + local ruleset = MP.Rulesets["ruleset_mp_" .. ruleset_name] + + local ruleset_info_banned_rework_tabs = UIBox({ + definition = G.UIDEF.ruleset_tabs(ruleset), + config = { align = "cm" }, + }) + + local content_nodes = { + { + n = G.UIT.R, + config = { align = "cm" }, + nodes = { + { n = G.UIT.O, config = { object = ruleset_info_banned_rework_tabs } }, + }, + }, + } + + content_nodes[#content_nodes + 1] = MP.UI.build_action_row(ruleset, mode) + + return { + n = G.UIT.ROOT, + config = { align = "tm", minh = 8, maxh = 8, minw = 11, maxw = 11, colour = G.C.CLEAR }, + nodes = { + { + n = G.UIT.C, + config = { align = "tm", padding = 0.2, r = 0.1, colour = G.C.BLACK }, + nodes = content_nodes, + }, + }, + } +end + +function G.UIDEF.ruleset_tabs(ruleset) + local default_tabs = UIBox({ + definition = G.UIDEF.lobby_setup_tabs_definition(ruleset, "info", 1, true), + config = { align = "cm", tab_type = "info", chosen_tab = 1 }, + }) + + return { + n = G.UIT.ROOT, + config = { align = "cm", colour = G.C.L_BLACK, r = 0.1 }, + nodes = { + { + n = G.UIT.C, + config = { align = "cm" }, + nodes = { + { + n = G.UIT.R, + config = { align = "tm", colour = G.C.GREY, r = 0.1 }, + nodes = { + { n = G.UIT.O, config = { object = default_tabs } }, + }, + }, + { + n = G.UIT.R, + config = { align = "bm", padding = 0.05 }, + nodes = { + create_option_cycle({ + options = { localize("k_info"), localize("k_bans"), localize("k_reworks") }, + current_option = 1, + opt_callback = "ruleset_switch_tabs", + opt_args = { ui = default_tabs, ruleset = ruleset }, + w = 5, + colour = G.C.RED, + cycle_shoulders = false, + }), + }, + }, + }, + }, + }, + } +end + +function G.FUNCS.ruleset_switch_tabs(args) + if not args or not args.cycle_config then return end + local callback_args = args.cycle_config.opt_args + + local tabs_object = callback_args.ui + local tabs_wrap = tabs_object.parent + + local active_tab = tabs_wrap.UIBox:get_UIE_by_ID("ruleset_active_tab") + local active_tab_idx = active_tab and active_tab.config.tab_idx or 1 + + local mode = MP.UI.ruleset_selection_mode or "mp" + local tab_type = (args.to_key == 2 and "banned") or (args.to_key == 3 and "rework") or "info" + local def = nil + + set_selected_ruleset(mode, callback_args.ruleset.key) + + if tab_type == "banned" then + def = G.UIDEF.lobby_setup_tabs_definition(callback_args.ruleset, "banned", active_tab_idx, true) + tabs_object.config.tab_type = "banned" + MP.LOBBY.ruleset_preview = false + elseif tab_type == "rework" then + def = G.UIDEF.lobby_setup_tabs_definition(callback_args.ruleset, "rework", active_tab_idx, true) + tabs_object.config.tab_type = "rework" + MP.LOBBY.ruleset_preview = true + else + def = G.UIDEF.lobby_setup_tabs_definition(callback_args.ruleset, "info", active_tab_idx, true) + tabs_object.config.tab_type = "info" + MP.LOBBY.ruleset_preview = false + end + + tabs_wrap.config.object:remove() + tabs_wrap.config.object = UIBox({ + definition = def, + config = { align = "cm", parent = tabs_wrap }, + }) + + tabs_wrap.UIBox:recalculate() +end + +local function create_bans_and_reworks_tabs(ruleset_or_gamemode, is_banned_tab, chosen_tab_idx) + local banned_cards_tabs = {} + + local function merge_lists(lists) + local seen = {} + local ret = {} + for _, tbl in pairs(lists) do + tbl = tbl or {} + for _, v in ipairs(tbl) do + if not seen[v] then + seen[v] = true + table.insert(ret, v) + end + end + end + return ret + end + + local forced_gamemode = {} + if ruleset_or_gamemode.forced_gamemode then forced_gamemode = MP.Gamemodes[ruleset_or_gamemode.forced_gamemode] end + + local tabs = {} + local loc_keys = { + jokers = "b_jokers", + consumables = "b_stat_consumables", + vouchers = "b_vouchers", + enhancements = "b_enhanced_cards", + other = "k_other", + } + local function copy_list(key) + local lists + if is_banned_tab then + lists = { + MP.DECK["BANNED_" .. string.upper(key)], + ruleset_or_gamemode["banned_" .. key], + forced_gamemode["banned_" .. key], + } + for _, mod_name in ipairs(MP.MODIFIERS) do + local layer = MP.Layers[mod_name] + if layer then lists[#lists + 1] = layer["banned_" .. key] end + end + else + lists = { ruleset_or_gamemode["reworked_" .. key], forced_gamemode["reworked_" .. key] } + for _, mod_name in ipairs(MP.MODIFIERS) do + local layer = MP.Layers[mod_name] + if layer then lists[#lists + 1] = layer["reworked_" .. key] end + end + end + return merge_lists(lists) + end + for _, v in ipairs({ "jokers", "consumables", "vouchers", "enhancements", "other" }) do + local entry = { type = localize(loc_keys[v]) } + if v ~= "other" then + entry.obj_ids = copy_list(v) + else + entry.obj_ids = { + blinds = copy_list("blinds"), + tags = copy_list("tags"), + } + end + + tabs[#tabs + 1] = entry + end + + for k, v in ipairs(tabs) do + v.idx = k + v.is_banned_tab = is_banned_tab + local tab_def = { + label = v.type, + chosen = (k == chosen_tab_idx), + tab_definition_function = G.UIDEF.ruleset_cardarea_definition, + tab_definition_function_args = v, + } + table.insert(banned_cards_tabs, tab_def) + end + + return { + n = G.UIT.ROOT, + config = { align = "cm", colour = G.C.CLEAR }, + nodes = { + create_tabs({ + tab_h = 4.2, + padding = 0, + scale = 0.8, + text_scale = 0.36, + no_shoulders = true, + no_loop = true, + tabs = banned_cards_tabs, + }), + }, + } +end + +function G.UIDEF.lobby_setup_tabs_definition(ruleset_or_gamemode, tab_type, chosen_tab_idx, is_ruleset) + if tab_type == "banned" or tab_type == "rework" then + return create_bans_and_reworks_tabs(ruleset_or_gamemode, tab_type == "banned", chosen_tab_idx) + end + + local tab_id = ruleset_or_gamemode.key:find("ruleset") and "ruleset_active_tab" or "gamemode_active_tab" + + return { + n = G.UIT.ROOT, + config = { id = tab_id, align = "cm", colour = G.C.CLEAR }, + nodes = { + { + n = G.UIT.C, + config = { align = "tm", padding = 0.2, r = 0.1, minw = 10.7, maxw = 10.7, minh = 5.75, maxh = 5.75 }, + nodes = ruleset_or_gamemode:create_info_menu(), + }, + }, + } +end + +function G.UIDEF.ruleset_cardarea_definition(args) + local function get_ruleset_cardarea(obj_ids, width, height) + local ret = {} + + if #obj_ids > 0 then + local card_rows = {} + local n_rows = math.max(1, 1 + math.floor(#obj_ids / 10) - math.floor(math.log(6, #obj_ids))) + local max_width = 1 + for k, v in ipairs(obj_ids) do + local _row = math.ceil(n_rows * (k / #obj_ids)) + card_rows[_row] = card_rows[_row] or {} + card_rows[_row][#card_rows[_row] + 1] = v + if #card_rows[_row] > max_width then max_width = #card_rows[_row] end + end + + local card_size = math.max(0.3, 0.8 - 0.01 * (max_width * n_rows)) + + for _, card_row in ipairs(card_rows) do + local card_area = CardArea(0, 0, width, height / n_rows, { + card_limit = nil, + type = "title_2", + view_deck = true, + highlight_limit = 0, + card_w = G.CARD_W * card_size, + }) + + for k, v in ipairs(card_row) do -- Each card_row consists of Card IDs + local card = Card( + 0, + 0, + G.CARD_W * card_size, + G.CARD_H * card_size, + nil, + G.P_CENTERS[v], + { bypass_discovery_center = true, bypass_discovery_ui = true } + ) + card_area:emplace(card) + end + + table.insert(ret, { + n = G.UIT.R, + config = { align = "cm" }, + nodes = { + { n = G.UIT.O, config = { object = card_area } }, + }, + }) + end + end + + return ret + end + + local function get_ruleset_obj_grid(obj_ids, obj_ref_table, objs_per_row, obj_constructor, wrap_as_object) + local objs = {} + for _, v in ipairs(obj_ids) do + objs[#objs + 1] = obj_ref_table[v] + end + -- table.sort(objs, function (a, b) return a.order < b.order end) + + local obj_grid = {} + local obj_rows = {} + for k, v in ipairs(objs) do + local obj = obj_constructor(v) + + local row_idx = math.ceil(k / objs_per_row) + if not obj_rows[row_idx] then obj_rows[row_idx] = {} end + table.insert(obj_rows[row_idx], { + n = G.UIT.C, + config = { align = "cm", padding = 0.1 }, + nodes = { + wrap_as_object and { n = G.UIT.O, config = { object = obj } } or obj, + }, + }) + end + for _, v in ipairs(obj_rows) do + table.insert(obj_grid, { n = G.UIT.R, config = { align = "cm" }, nodes = v }) + end + + return obj_grid + end + + local function get_localised_label(objs, obj_type) + return (#objs > 0) + and { + n = G.UIT.T, + config = { + text = localize({ + type = "variable", + key = args.is_banned_tab and "k_banned_objs" or "k_reworked_objs", + vars = { obj_type }, + }), + colour = lighten(G.C.L_BLACK, 0.5), + scale = 0.33, + }, + } + or { + n = G.UIT.T, + config = { + text = localize({ + type = "variable", + key = args.is_banned_tab and "k_no_banned_objs" or "k_no_reworked_objs", + vars = { obj_type }, + }), + colour = lighten(G.C.L_BLACK, 0.5), + scale = 0.33, + }, + } + end + + if args.type == localize("k_other") then + local function tag_constructor(tag_spec) + return Tag(tag_spec.key):generate_UI(1 - 0.1 * (math.sqrt(#args.obj_ids.tags))) + end + + local function blind_constructor(blind_spec) + local temp_blind = AnimatedSprite( + 0, + 0, + 1.1, + 1.1, + G.ANIMATION_ATLAS[blind_spec.atlas] or G.ANIMATION_ATLAS["blind_chips"], + blind_spec.pos + ) + temp_blind:define_draw_steps({ + { shader = "dissolve", shadow_height = 0.05 }, + { shader = "dissolve" }, + }) + temp_blind.float = true + temp_blind.states.hover.can = true + temp_blind.states.drag.can = false + temp_blind.states.collide.can = true + temp_blind.config = { blind = blind_spec, force_focus = true } + temp_blind.hover = function() + if not G.CONTROLLER.dragging.target or G.CONTROLLER.using_touch then + if not temp_blind.hovering and temp_blind.states.visible then + temp_blind.hovering = true + temp_blind.hover_tilt = 3 + Juice_up(temp_blind, 0.05, 0.02) + temp_blind.config.h_popup = create_UIBox_blind_popup(blind_spec, true) + temp_blind.config.h_popup_config = { + align = "cl", + offset = { x = -0.1, y = 0 }, + parent = temp_blind, + } + Node.hover(temp_blind) + end + end + end + temp_blind.stop_hover = function() + temp_blind.hovering = false + Node.stop_hover(temp_blind) + temp_blind.hover_tilt = 0 + end + + return temp_blind + end + + local tag_grid = get_ruleset_obj_grid(args.obj_ids.tags, G.P_TAGS, 4, tag_constructor) + local blind_grid = get_ruleset_obj_grid(args.obj_ids.blinds, G.P_BLINDS, 3, blind_constructor, true) + + return { + n = G.UIT.ROOT, + config = { id = "ruleset_active_tab", tab_idx = args.idx, align = "cm", colour = G.C.CLEAR }, + nodes = { + { + n = G.UIT.C, + config = { align = "cm", padding = 0.05, r = 0.1, minw = 5.4, minh = 4.8, maxh = 4.8 }, + nodes = { + { n = G.UIT.R, config = { align = "cm", minh = 4 }, nodes = tag_grid }, + { + n = G.UIT.R, + config = { align = "cm", padding = 0.05 }, + nodes = { get_localised_label(args.obj_ids.tags, localize("b_tags")) }, + }, + }, + }, + { + n = G.UIT.C, + config = { align = "cm", padding = 0.05, r = 0.1, minw = 5.4, minh = 4.8, maxh = 4.8 }, + nodes = { + { n = G.UIT.R, config = { align = "cm", minh = 4 }, nodes = blind_grid }, + { + n = G.UIT.R, + config = { align = "cm", padding = 0.05 }, + nodes = { get_localised_label(args.obj_ids.blinds, localize("b_blinds")) }, + }, + }, + }, + }, + } + else + local cards_grid = get_ruleset_cardarea(args.obj_ids, 10, 4) + + return { + n = G.UIT.ROOT, + config = { id = "ruleset_active_tab", tab_idx = args.idx, align = "cm", colour = G.C.CLEAR }, + nodes = { + { + n = G.UIT.C, + config = { align = "cm", padding = 0.05, r = 0.1, minw = 10.8, minh = 4.8, maxh = 4.8 }, + nodes = { + { n = G.UIT.R, config = { align = "cm" }, nodes = cards_grid }, + { + n = G.UIT.R, + config = { align = "cm", padding = 0.05 }, + nodes = { get_localised_label(args.obj_ids, args.type) }, + }, + }, + }, + }, + } + end +end + +function MP.UI.build_modifier_button(ruleset, mode) + if ruleset.forced_lobby_options then return nil end + if type(ruleset.get_modifiers_ui) == "function" then return ruleset:get_modifiers_ui(mode) end + return MP.UI.Disableable_Button({ + button = "mp_open_modifiers_overlay", + align = "cm", + padding = 0.05, + r = 0.1, + minw = 3.5, + minh = 0.8, + colour = G.C.ORANGE, + hover = true, + shadow = true, + label = { "Modifiers..." }, + scale = 0.4, + enabled_ref_table = { val = true }, + enabled_ref_value = "val", + ref_table = { + ruleset = ruleset, + mode = mode, + }, + }) +end + +function MP.UI.get_continue_button(ruleset, mode) + local ruleset_disabled = ruleset.is_disabled() + local button_config + if mode == "sp" then + button_config = { + id = "start_sp_button", + button = "start_sp_run", + label = { localize("b_play_cap") }, + colour = G.C.GREEN, + } + elseif mode == "practice" then + button_config = { + id = "start_practice_button", + button = "start_practice_run", + label = { localize("b_play_cap") }, + colour = G.C.GREEN, + } + else + button_config = { + id = "select_gamemode_button", + button = ruleset.forced_gamemode and "force_" .. ruleset.forced_gamemode or "select_gamemode", + label = { ruleset.forced_gamemode and localize("b_create_lobby") or localize("b_next") }, + colour = G.C.BLUE, + } + end + return MP.UI.Disableable_Button({ + id = button_config.id, + button = button_config.button, + align = "cm", + padding = 0.05, + r = 0.1, + minw = 5, + minh = 0.8, + colour = button_config.colour, + hover = true, + shadow = true, + label = button_config.label, + scale = 0.5, + enabled_ref_table = { val = not ruleset_disabled }, + enabled_ref_value = "val", + disabled_text = { ruleset_disabled }, + }) +end + +function MP.UI.build_practice_options_button() + return UIBox_button({ + id = "practice_options_button", + button = "mp_open_practice_options_overlay", + label = { localize("k_practice_options") }, + minw = 3.5, + minh = 0.8, + scale = 0.4, + colour = G.C.ORANGE, + hover = true, + shadow = true, + }) +end + +function MP.UI.build_action_row(ruleset, mode) + local columns = {} + local function add_col(button) + columns[#columns + 1] = { + n = G.UIT.C, + config = { align = "cm", padding = 0.05 }, + nodes = { button }, + } + end + if mode == "practice" then + -- In practice, the Modifiers button is folded into Practice Options to + -- keep the action row to two buttons regardless of ruleset. + add_col(MP.UI.build_practice_options_button()) + elseif mode == "mp" then + local modifier_btn = MP.UI.build_modifier_button(ruleset, mode) + if modifier_btn then add_col(modifier_btn) end + end + add_col(MP.UI.get_continue_button(ruleset, mode)) + return { n = G.UIT.R, config = { align = "cm" }, nodes = columns } +end diff --git a/ui/main_menu/play_button/weekly_interrupt.lua b/ui/main_menu/play_button/weekly_interrupt.lua new file mode 100644 index 000000000..f15aea6cb --- /dev/null +++ b/ui/main_menu/play_button/weekly_interrupt.lua @@ -0,0 +1,50 @@ +function G.UIDEF.weekly_interrupt(loaded) + return ( + create_UIBox_generic_options({ + back_func = "create_lobby", + contents = { + { + n = G.UIT.R, + config = { + align = "cm", + padding = 0.1, + }, + nodes = { + { + n = G.UIT.T, + config = { + text = "A new weekly ruleset is available!", + colour = G.C.UI.TEXT_LIGHT, + scale = 0.45, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { + align = "cm", + padding = 0.2, + }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("k_currently_colon") + .. localize("k_weekly_" .. MP.LOBBY.fetched_weekly), -- bad loc but ok + colour = darken(G.C.UI.TEXT_LIGHT, 0.2), + scale = 0.35, + }, + }, + }, + }, + UIBox_button({ + label = { localize("k_sync_locally") }, + colour = G.C.DARK_EDITION, + button = "set_weekly", + minw = 5, + }), + }, + }) + ) +end diff --git a/ui/main_menu/title_card.lua b/ui/main_menu/title_card.lua new file mode 100644 index 000000000..3a8a92865 --- /dev/null +++ b/ui/main_menu/title_card.lua @@ -0,0 +1,133 @@ +local function nope_a_joker(card) + attention_text({ + text = localize("k_nope_ex"), + scale = 0.8, + hold = 0.8, + major = card, + backdrop_colour = G.C.SECONDARY_SET.Tarot, + align = (G.STATE == G.STATES.TAROT_PACK or G.STATE == G.STATES.SPECTRAL_PACK) and "tm" or "cm", + offset = { + x = 0, + y = (G.STATE == G.STATES.TAROT_PACK or G.STATE == G.STATES.SPECTRAL_PACK) and -0.2 or 0, + }, + silent = true, + }) + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.06 * G.SETTINGS.GAMESPEED, + blockable = false, + blocking = false, + func = function() + play_sound("tarot2", 0.76, 0.4) + return true + end, + })) + play_sound("tarot2", 1, 0.4) +end + +function Juice_up(thing, a, b) + if SMODS.Mods["Talisman"] and SMODS.Mods["Talisman"].can_load then + local disable_anims = Talisman.config_file.disable_anims + Talisman.config_file.disable_anims = false + thing:juice_up(a, b) + Talisman.config_file.disable_anims = disable_anims + else + thing:juice_up(a, b) + end +end + +local function wheel_of_fortune_the_card(card) + math.randomseed(os.time()) + local chance = math.random(4) + if chance == 1 and not card.edition then + local editions = { + { name = "e_foil", weight = 499 }, + { name = "e_holo", weight = 350 }, + { name = "e_polychrome", weight = 150 }, + { name = "e_negative", weight = 1 }, + } + local edition = poll_edition("main_menu" .. os.time(), nil, nil, true, editions) + if edition and edition.name then + card:set_edition(nil, true, true) + card:set_edition(edition.name, true) + Juice_up(card, 0.3, 0.5) + G.CONTROLLER.locks.edition = false -- if this isn't done, set_edition will block inputs for 0.1s + end + else + nope_a_joker(card) + Juice_up(card, 0.3, 0.5) + end +end + +local function make_wheel_of_fortune_a_card_func(card) + return function() + if card then wheel_of_fortune_the_card(card) end + return true + end +end + +MP.title_card = nil + +function Add_custom_multiplayer_cards(change_context) + local first_card = G.title_top.cards[1] + if first_card and not first_card.mod_flag and first_card.config and first_card.config.center_key == "c_base" then + first_card:set_base(G.P_CARDS["S_A"], true) + end + + -- Taken from SMODS + local title_card = SMODS.create_card({ + key = "c_base", no_edition = true, area = G.title_top, + bypass_discovery_center = true, skip_materialize = true + }) + title_card:set_base(G.P_CARDS["H_A"], true) + G.title_top.T.w = G.title_top.T.w + (1.7675 / math.max(#G.title_top.cards, 1)) + G.title_top.T.x = G.title_top.T.x - (0.885 / math.max(#G.title_top.cards, 1)) -- everyone who used -0.8 was WRONG + title_card.T.w = title_card.T.w * 1.1 * 1.2 + title_card.T.h = title_card.T.h * 1.1 * 1.2 + G.title_top:emplace(title_card) + title_card.no_ui = true + title_card.states.visible = false + + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = change_context == "game" and 1.5 or 0, + blockable = false, + blocking = false, + func = function() + if change_context == "splash" then + title_card.states.visible = true + title_card:start_materialize({ G.C.WHITE, G.C.WHITE }, true, 2.5) + play_sound("whoosh1", math.random() * 0.1 + 0.3, 0.3) + play_sound("crumple" .. math.random(1, 5), math.random() * 0.2 + 0.6, 0.65) + else + title_card.states.visible = true + title_card:start_materialize({ G.C.WHITE, G.C.WHITE }, nil, 1.2) + end + G.VIBRATION = G.VIBRATION + 1 + return true + end, + })) + + MP.title_card = title_card + + -- base delay in seconds, increases as needed + local wheel_delay = 2 + + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = wheel_delay, + blockable = false, + blocking = false, + func = make_wheel_of_fortune_a_card_func(first_card), + })) + + wheel_delay = wheel_delay + 1 + + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = wheel_delay, + blockable = false, + blocking = false, + func = make_wheel_of_fortune_a_card_func(MP.title_card), + })) +end diff --git a/ui/main_menu/version_display.lua b/ui/main_menu/version_display.lua new file mode 100644 index 000000000..bd7d40b35 --- /dev/null +++ b/ui/main_menu/version_display.lua @@ -0,0 +1,33 @@ +MULTIPLAYER_VERSION = SMODS.Mods["Multiplayer"].version .. "-MULTIPLAYER" + +function Add_version_display() + -- Add version to main menu + UIBox({ + definition = { + n = G.UIT.ROOT, + config = { + align = "cm", + colour = G.C.UI.TRANSPARENT_DARK, + }, + nodes = { + { + n = G.UIT.T, + config = { + scale = 0.3, + text = MULTIPLAYER_VERSION, + colour = G.C.UI.TEXT_LIGHT, + }, + }, + }, + }, + config = { + align = "tri", + bond = "Weak", + offset = { + x = 0, + y = 0.6, + }, + major = G.ROOM_ATTACH, + }, + }) +end diff --git a/ui/smods_menu/config_tab.lua b/ui/smods_menu/config_tab.lua new file mode 100644 index 000000000..4562df0e1 --- /dev/null +++ b/ui/smods_menu/config_tab.lua @@ -0,0 +1,161 @@ +function MP.UI.create_config_tab() + local ret = { + n = G.UIT.ROOT, + config = { + r = 0.1, + minw = 5, + align = "cm", + padding = 0.2, + colour = G.C.BLACK, + }, + nodes = { + { + n = G.UIT.R, + config = { + padding = 0, + align = "cm", + on_demand_tooltip = { + text = localize("k_automatic_pvp_timer_description"), + }, + }, + nodes = { + create_toggle({ + id = "multiplayer_automatic_pvp_timer", + label = localize("k_automatic_pvp_timer"), + ref_table = SMODS.Mods["Multiplayer"].config, + ref_value = "automatic_pvp_timer", + }), + }, + }, + { + n = G.UIT.R, + config = { + padding = 0, + align = "cm", + on_demand_tooltip = { + text = { + localize("k_preview_integration_desc"), + localize("k_preview_credit"), + }, + }, + }, + nodes = { + create_toggle({ + id = "fantoms_preview_integration_toggle", + label = localize("b_preview_integration"), + ref_table = SMODS.Mods["Multiplayer"].config.integrations, + ref_value = "Preview", + }), + }, + }, + { + n = G.UIT.R, + config = { + padding = 0, + align = "cm", + }, + nodes = { + { + n = G.UIT.T, + config = { + text = localize("k_preview_credit"), + shadow = true, + scale = 0.375, + colour = G.C.UI.TEXT_INACTIVE, + }, + }, + { + n = G.UIT.B, + config = { + w = 0.1, + h = 0.1, + }, + }, + { + n = G.UIT.T, + config = { + text = localize("k_requires_restart"), + shadow = true, + scale = 0.375, + colour = G.C.UI.TEXT_INACTIVE, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { + padding = 0, + align = "cm", + on_demand_tooltip = { + text = { + localize("k_applies_singleplayer_vanilla_rulesets"), + }, + }, + }, + nodes = { + create_toggle({ + id = "singleplayer_hide_content_toggle", + label = localize("k_hide_mp_content"), + ref_table = SMODS.Mods["Multiplayer"].config, + ref_value = "hide_mp_content", + }), + }, + }, + { + n = G.UIT.R, + config = { + padding = 0.1, + align = "cm", + }, + nodes = { + { + n = G.UIT.C, + config = { align = "cm" }, + nodes = { + create_option_cycle({ + label = localize("k_timer_sfx"), + w = 4, + scale = 0.8, + options = localize("ml_mp_timersfx_opt"), + opt_callback = "mp_change_timersfx", + current_option = SMODS.Mods["Multiplayer"].config.timersfx or 1, + }), + }, + }, + }, + }, + { + n = G.UIT.R, + config = { + padding = 0.1, + align = "cm", + }, + nodes = { + UIBox_button({ + button = "mp_open_log_parser", + label = { localize("b_open_log_parser") }, + minw = 3, + maxw = 3, + minh = 0.8, + maxh = 0.8, + col = true, + colour = G.C.CHIPS, + }), + UIBox_button({ + id = "from_game_won", + button = "mp_get_lovely_log_file", + label = { localize("b_get_log_file") }, + minw = 3, + maxw = 3, + minh = 0.8, + maxh = 0.8, + col = true, + colour = G.C.CHIPS, + }), + }, + }, + }, + } + return ret +end diff --git a/ui/smods_menu/credits_tab.lua b/ui/smods_menu/credits_tab.lua new file mode 100644 index 000000000..dc21906ce --- /dev/null +++ b/ui/smods_menu/credits_tab.lua @@ -0,0 +1,60 @@ +function MP.UI.create_credits_tab() + local scale = 0.75 + return { + n = G.UIT.ROOT, + config = { + emboss = 0.05, + minh = 6, + r = 0.1, + minw = 6, + align = "cm", + padding = 0.2, + colour = G.C.BLACK, + }, + nodes = { + MP.UI.UTILS.create_row({ padding = 0.2, align = "cm" }, { + MP.UI.UTILS.create_text_node(localize("k_created_by"), { + scale = scale * 0.8, + colour = G.C.UI.TEXT_LIGHT, + }), + MP.UI.UTILS.create_text_node("Virtualized", { + scale = scale * 0.8, + colour = G.C.DARK_EDITION, + }), + }), + MP.UI.UTILS.create_row({ align = "cm", padding = 0 }, { + MP.UI.UTILS.create_text_node(localize("k_major_contributors"), { + scale = scale * 0.8, + colour = G.C.UI.TEXT_LIGHT, + }), + }), + MP.UI.UTILS.create_row({ align = "cm", padding = 0.2 }, { + MP.UI.UTILS.create_text_node( + localize({ + type = "variable", + key = "k_credits_list", + vars = { "TGMM, Senfinbrare, CUexter, Brawmario, Divvy, Andy, Steph, SleepyG11," }, + }), + { + scale = scale * 0.8, + colour = G.C.RED, + } + ), + }), + MP.UI.UTILS.create_row({ align = "cm", padding = 0 }, { + UIBox_button({ + minw = 3.85, + button = "bmp_github", + label = { localize("b_github_project") }, + }), + }), + MP.UI.UTILS.create_row({ align = "cm", padding = 0 }, { + UIBox_button({ + minw = 3.85 * 2, + button = "bmp_discord", + label = { localize("b_mp_discord") }, + }), + }), + }, + } +end diff --git a/ui/smods_menu/customization_tab.lua b/ui/smods_menu/customization_tab.lua new file mode 100644 index 000000000..aa5360b79 --- /dev/null +++ b/ui/smods_menu/customization_tab.lua @@ -0,0 +1,216 @@ +function MP.UI.create_customization_tab() + local blind_anim = AnimatedSprite( + 0, + 0, + 1.4, + 1.4, + G.ANIMATION_ATLAS["mp_player_blind_col"], + G.P_BLINDS[MP.UTILS.blind_col_numtokey(MP.LOBBY.blind_col)].pos + ) + blind_anim:define_draw_steps({ + { shader = "dissolve", shadow_height = 0.05 }, + { shader = "dissolve" }, + }) + MP.PREVIEW.text = SMODS.Mods["Multiplayer"].config.preview.text or "" + MP.PREVIEW.button = SMODS.Mods["Multiplayer"].config.preview.button or "" + local ret = { + n = G.UIT.ROOT, + config = { + r = 0.1, + minw = 5, + align = "cm", + padding = 0.2, + colour = G.C.BLACK, + }, + nodes = { + MP.INTEGRATIONS.Preview and { + n = G.UIT.R, + config = { + padding = 0.10, + align = "cm", + id = "preview_text_input", + }, + nodes = { + { + n = G.UIT.T, + config = { + scale = 0.5, + text = localize("k_customize_preview"), + colour = G.C.UI.TEXT_LIGHT, + }, + }, + }, + } or nil, + MP.INTEGRATIONS.Preview and { + n = G.UIT.R, + config = { + padding = 0, + align = "cm", + id = "preview_text_input", + }, + nodes = { + { + n = G.UIT.T, + config = { + scale = 0.3, + text = localize("k_enter_to_save"), + colour = G.C.UI.TEXT_LIGHT, + }, + }, + }, + } or nil, + MP.INTEGRATIONS.Preview + and { + n = G.UIT.R, + config = { + padding = 0.15, + align = "cm", + id = "preview_text_input", + }, + nodes = { + create_text_input({ + id = "preview_text", + w = 4, + max_length = 25, + prompt_text = "CALCULATING", -- raw string but this doesn't need localization + colour = copy_table(G.C.BLACK), + hooked_colour = darken(copy_table(G.C.BLACK), 0.3), + ref_table = MP.PREVIEW, + ref_value = "text", + extended_corpus = true, + keyboard_offset = -3, + callback = function(val) + MP.UTILS.save_preview(MP.PREVIEW) + end, + }), + create_text_input({ + id = "preview_button", + w = 4, + max_length = 25, + prompt_text = "Calculate Score", + colour = copy_table(G.C.RED), + hooked_colour = darken(copy_table(G.C.RED), 0.3), + ref_table = MP.PREVIEW, + ref_value = "button", + extended_corpus = true, + keyboard_offset = -3, + callback = function(val) + MP.UTILS.save_preview(MP.PREVIEW) + end, + }), + }, + } + or nil, + { + n = G.UIT.R, + config = { + padding = 0.5, + align = "cm", + id = "username_input_box", + }, + nodes = { + { + n = G.UIT.T, + config = { + scale = 0.6, + text = localize("k_username"), + colour = G.C.UI.TEXT_LIGHT, + }, + }, + create_text_input({ + id = "enter_username", + w = 4, + max_length = 25, + prompt_text = localize("k_enter_username"), + ref_table = MP.LOBBY, + ref_value = "username", + extended_corpus = true, + keyboard_offset = -3, + callback = function(val) + MP.UTILS.save_username(MP.LOBBY.username) + end, + }), + { + n = G.UIT.T, + config = { + scale = 0.3, + text = localize("k_enter_to_save"), + colour = G.C.UI.TEXT_LIGHT, + }, + }, + }, + }, + { + n = G.UIT.R, + config = { + padding = 0.1, + align = "cm", + id = "blind_col_changer", + }, + nodes = { + { + n = G.UIT.C, + config = { align = "cm" }, + nodes = { + { n = G.UIT.O, config = { id = "blind_col_changer_sprite", object = blind_anim } }, + }, + }, + { + n = G.UIT.C, + config = { align = "cm" }, + nodes = { + create_option_cycle({ + id = "blind_col_changer_option", + label = localize({ + type = "name_text", + key = MP.UTILS.blind_col_numtokey(MP.LOBBY.blind_col), + set = "Blind", + }), + scale = 0.8, + options = { + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + }, -- blind_cols are being saved as numbers because of this option cycle. if this is changed then we should probably change to keys + opt_callback = "change_blind_col", + current_option = MP.LOBBY.blind_col, + }), + }, + }, + }, + }, + }, + } + return ret +end + +function MP.UI.create_extra_tabs() + return { + { + label = localize("k_customization"), + tab_definition_function = MP.UI.create_customization_tab, + }, + } +end diff --git a/ui/smods_menu/smods_menu.lua b/ui/smods_menu/smods_menu.lua new file mode 100644 index 000000000..7f8718d7c --- /dev/null +++ b/ui/smods_menu/smods_menu.lua @@ -0,0 +1,42 @@ +SMODS.Mods.Multiplayer.credits_tab = MP.UI.create_credits_tab + +SMODS.Mods.Multiplayer.config_tab = MP.UI.create_config_tab + +SMODS.Mods.Multiplayer.extra_tabs = MP.UI.create_extra_tabs + +function G.FUNCS.bmp_discord(e) + love.system.openURL("https://discord.gg/gEemz4ptuF") +end + +function G.FUNCS.bmp_github(e) + love.system.openURL("https://github.com/Balatro-Multiplayer/BalatroMultiplayer/") +end + +function G.FUNCS.change_blind_col(args) -- all we're doing is just saving + redefining the ui elements here + MP.UTILS.save_blind_col(args.to_val) + MP.LOBBY.blind_col = args.to_val + local sprite = G.OVERLAY_MENU:get_UIE_by_ID("blind_col_changer_sprite") + sprite.config.object:remove() + sprite.config.object = AnimatedSprite( + 0, + 0, + 1.4, + 1.4, + G.ANIMATION_ATLAS["mp_player_blind_col"], + G.P_BLINDS[MP.UTILS.blind_col_numtokey(MP.LOBBY.blind_col)].pos + ) + sprite.config.object:define_draw_steps({ + { shader = "dissolve", shadow_height = 0.05 }, + { shader = "dissolve" }, + }) + sprite.UIBox:recalculate() + local option = G.OVERLAY_MENU:get_UIE_by_ID("blind_col_changer_option") + option.children[1].children[1].config.text = + localize({ type = "name_text", key = MP.UTILS.blind_col_numtokey(MP.LOBBY.blind_col), set = "Blind" }) + option.UIBox:recalculate() +end + +function G.FUNCS.mp_change_timersfx(args) + SMODS.Mods["Multiplayer"].config.timersfx = args.to_key + SMODS.save_mod_config(SMODS.Mods["Multiplayer"]) -- probably unnecessary? +end From 1b80fa2db7291e024e2cbd12c0ab219bc72e7145 Mon Sep 17 00:00:00 2001 From: AlexanderAndersonAmenAmen <104784206+AlexanderAndersonAmenAmen@users.noreply.github.com> Date: Tue, 28 Jul 2026 01:18:30 +0300 Subject: [PATCH 5/6] Chicot, Luchador and Matador are removed from the ruleset's bans --- rulesets/_rulesets.lua | 10 +++++++--- .../experimental/experimental_blind_raiser.lua | 5 +++++ ui/main_menu/play_button/ruleset_selection.lua | 16 +++++++++++++++- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/rulesets/_rulesets.lua b/rulesets/_rulesets.lua index aa4ed2fea..6008d6f70 100644 --- a/rulesets/_rulesets.lua +++ b/rulesets/_rulesets.lua @@ -211,16 +211,20 @@ function MP.ApplyBans() "blinds", } for _, table in ipairs(banned_tables) do + local unbanned = {} + for _, v in ipairs(ruleset["unbanned_" .. table] or {}) do + unbanned[v] = true + end for _, v in ipairs(ruleset["banned_" .. table]) do - G.GAME.banned_keys[v] = true + if not unbanned[v] then G.GAME.banned_keys[v] = true end end if gamemode then for _, v in ipairs(gamemode["banned_" .. table]) do - G.GAME.banned_keys[v] = true + if not unbanned[v] then G.GAME.banned_keys[v] = true end end end for _, v in pairs(MP.DECK["BANNED_" .. string.upper(table)]) do - G.GAME.banned_keys[v] = true + if not unbanned[v] then G.GAME.banned_keys[v] = true end end end for _, v in ipairs(ruleset.banned_silent) do diff --git a/rulesets/experimental/experimental_blind_raiser.lua b/rulesets/experimental/experimental_blind_raiser.lua index e50f21e45..4b8f8ae44 100644 --- a/rulesets/experimental/experimental_blind_raiser.lua +++ b/rulesets/experimental/experimental_blind_raiser.lua @@ -107,6 +107,11 @@ MP.Ruleset({ key = BLIND_RAISER_LAYER, layers = { "standard", "ranked", "pvp_timer" }, forced_gamemode = "gamemode_mp_attrition", + unbanned_jokers = { + "j_luchador", + "j_matador", + "j_chicot", + }, reworked_tags = { "tag_investment", "tag_negative", diff --git a/ui/main_menu/play_button/ruleset_selection.lua b/ui/main_menu/play_button/ruleset_selection.lua index 171b436d1..d21024a7f 100644 --- a/ui/main_menu/play_button/ruleset_selection.lua +++ b/ui/main_menu/play_button/ruleset_selection.lua @@ -341,7 +341,21 @@ local function create_bans_and_reworks_tabs(ruleset_or_gamemode, is_banned_tab, if layer then lists[#lists + 1] = layer["reworked_" .. key] end end end - return merge_lists(lists) + local merged = merge_lists(lists) + if is_banned_tab then + local unbanned = {} + for _, id in ipairs(ruleset_or_gamemode["unbanned_" .. key] or {}) do + unbanned[id] = true + end + if next(unbanned) then + local filtered = {} + for _, id in ipairs(merged) do + if not unbanned[id] then filtered[#filtered + 1] = id end + end + return filtered + end + end + return merged end for _, v in ipairs({ "jokers", "consumables", "vouchers", "enhancements", "other" }) do local entry = { type = localize(loc_keys[v]) } From 891fc06cb379f52dd47ca64ded3a1c80664bd197 Mon Sep 17 00:00:00 2001 From: AlexanderAndersonAmenAmen <104784206+AlexanderAndersonAmenAmen@users.noreply.github.com> Date: Fri, 31 Jul 2026 17:21:20 +0300 Subject: [PATCH 6/6] Some important Blind Raiser mechanic bug fixes (card debuffer bosses working incorrectly, Luchador and Chicot working incorrectly with stacked boss blinds). --- lib/blind_raiser_boss_effects.lua | 1011 +++++++++++++++++++++++++++ ui/game/blind_choice.lua | 7 + ui/game/blind_raiser.lua | 1086 ++++++++++++++++++++++++++--- 3 files changed, 2024 insertions(+), 80 deletions(-) create mode 100644 lib/blind_raiser_boss_effects.lua diff --git a/lib/blind_raiser_boss_effects.lua b/lib/blind_raiser_boss_effects.lua new file mode 100644 index 000000000..3334a5072 --- /dev/null +++ b/lib/blind_raiser_boss_effects.lua @@ -0,0 +1,1011 @@ +------------------------------------------------------------------- +-- BLIND RAISER: STACKABLE VANILLA BOSS EFFECT COMPONENTS +-- +-- These are effect modules, not SMODS.Blind objects. +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS = MP.BLIND_RAISER_COMPONENTS or {} + +------------------------------------------------------------------- +-- THE HOOK +------------------------------------------------------------------- + +-- Not part of The Devil's own roll pool, but available as a Platinum +-- replacement/stack component. Mirrors vanilla's two random discards when a +-- hand is played. +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_hook = { + loc_name = "The Hook", + + calculate = function(self, blind, context) + if not context.press_play then return end + G.E_MANAGER:add_event(Event({ func = function() + local available = {} + for _, card in ipairs((G.hand and G.hand.cards) or {}) do + available[#available + 1] = card + end + local selected = false + for _ = 1, math.min(2, #available) do + local card, index = pseudorandom_element(available, pseudoseed("mp_blind_raiser_hook")) + if not card then break end + G.hand:add_to_highlighted(card, true) + table.remove(available, index) + selected = true + play_sound("card1", 1) + end + if selected then G.FUNCS.discard_cards_from_highlighted(nil, true) end + return true + end })) + blind.triggered = true + delay(0.7) + end, +} + + +------------------------------------------------------------------- +-- THE OX +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_ox = { + loc_name = "The Ox", + + calculate = function(self, blind, context) + if context.debuff_hand + and context.scoring_name == G.GAME.current_round.most_played_poker_hand + then + blind.triggered = true + if not context.check then + ease_dollars(-G.GAME.dollars, true) + blind:wiggle() + end + end + end, +} + + +------------------------------------------------------------------- +-- THE ARM +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_arm = { + loc_name = "The Arm", + + calculate = function(self, blind, context) + local hand = context.debuff_hand and context.scoring_name + if hand and G.GAME.hands[hand] and G.GAME.hands[hand].level > 1 then + blind.triggered = true + if not context.check then + level_up_hand(blind.children.animatedSprite, hand, nil, -1) + blind:wiggle() + end + end + end, +} + + + +------------------------------------------------------------------- +-- THE HOUSE +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_house = { + + + loc_name = "The House", + + + + set_blind = function(self) + + self.active = true + + end, + + + + calculate = function(self, blind, context) + + + + if context.blind_disabled then + + + for _,card in ipairs(G.hand.cards) do + + if card.facing == "back" then + + card:flip() + + end + + end + + + for _,card in ipairs(G.playing_cards) do + + card.ability.wheel_flipped = nil + end + + + end + + + + + if context.stay_flipped + and context.to_area == G.hand + and G.GAME.current_round.hands_played == 0 + and G.GAME.current_round.discards_used == 0 + then + + + return { + + stay_flipped = true + + } + + + end + + + end + + +} + + + + + + +------------------------------------------------------------------- +-- THE WALL +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_wall = { + + + loc_name = "The Wall", + + + + calculate = function(self, blind, context) + + + + if context.blind_disabled then + + + G.GAME.blind.chips = + G.GAME.blind.chips / 2 + + + G.GAME.blind.chip_text = + number_format( + G.GAME.blind.chips + ) + + + end + + + + end + + +} + + + + + + +------------------------------------------------------------------- +-- THE WHEEL +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_wheel = { + + + loc_name = "The Wheel", + + + + calculate = function(self, blind, context) + + + if context.stay_flipped + and context.to_area == G.hand + and SMODS.pseudorandom_probability( + blind, + "devil_wheel", + 1, + 7 + ) + then + + + return { + + stay_flipped = true + + } + + + end + + + end + + +} + + + + + + +------------------------------------------------------------------- +-- THE CLUB +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_club = { + + + loc_name = "The Club", + + + debuff = { + suit = "Clubs" + }, + + calculate = function(self, blind, context) + if context.debuff_card and context.debuff_card:is_suit("Clubs") then + return { debuff = true } + end + end, +} + + + + + + +------------------------------------------------------------------- +-- THE FISH +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_fish = { + + loc_name = "The Fish", + + set_blind = function(self) + self.prepped = false + self.cards_to_flip = 0 + end, + + calculate = function(self, blind, context) + -- Playing a hand arms The Fish for the next draw-to-hand batch. + if context.press_play then + self.prepped = true + self.cards_to_flip = 0 + end + + -- Capture only the next draw batch, then disarm the effect so draws + -- caused by a later discard are face up. + if context.drawing_cards and self.prepped then + self.cards_to_flip = context.amount or 0 + self.prepped = false + end + + if context.stay_flipped + and context.to_area == G.hand + and (self.cards_to_flip or 0) > 0 + then + self.cards_to_flip = self.cards_to_flip - 1 + return { stay_flipped = true } + end + + if context.blind_disabled or context.blind_defeated then + self.prepped = false + self.cards_to_flip = 0 + end + end, +} + + +------------------------------------------------------------------- +-- THE PSYCHIC +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_psychic = { + + + loc_name = "The Psychic", + + + debuff = { + + h_size_ge = 5 + + } + + +} + + + + + + +------------------------------------------------------------------- +-- THE GOAD +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_goad = { + + + loc_name = "The Goad", + + + debuff = { + suit = "Spades" + }, + + calculate = function(self, blind, context) + if context.debuff_card and context.debuff_card:is_suit("Spades") then + return { debuff = true } + end + end, +} + + + + + + +------------------------------------------------------------------- +-- THE WINDOW +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_window = { + + + loc_name = "The Window", + + + debuff = { + suit = "Diamonds" + }, + + calculate = function(self, blind, context) + if context.debuff_card + and context.debuff_card:is_suit("Diamonds") + then + return { + debuff = true + } + end + end + + +} + + + + + + +------------------------------------------------------------------- +-- THE MANACLE +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_manacle = { + + + loc_name = "The Manacle", + + + + set_blind = function(self) + -- Component tables are singletons, so keep the adjustment idempotent. + -- This prevents Chicot/Luchador cleanup and round-end cleanup from + -- restoring the same -1 hand-size penalty twice. + if not self.handsize_penalty_applied then + G.hand:change_size(-1) + self.handsize_penalty_applied = true + end + end, + + calculate = function(self, blind, context) + if (context.blind_disabled or context.blind_defeated) + and self.handsize_penalty_applied + then + G.hand:change_size(1) + self.handsize_penalty_applied = false + end + end + + +} + + + + + + + +------------------------------------------------------------------- +-- THE EYE +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_eye = { + + + loc_name = "The Eye", + + + + set_blind = function(self) + + + self.hands = {} + + + for _,hand in ipairs(G.handlist) do + + self.hands[hand] = false + + end + + + end, + + + + calculate = function(self, blind, context) + + + + if context.debuff_hand then + + + + if self.hands[context.scoring_name] then + + + + return { + + + debuff = true + + + } + + + + end + + + + + if not context.check then + + + self.hands[context.scoring_name] = true + + + + end + + + + end + + + + end + + +} + + + + + + + + +------------------------------------------------------------------- +-- THE MOUTH +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_mouth = { + + + loc_name = "The Mouth", + + + + set_blind = function(self) + + self.only_hand = nil + + end, + + + + calculate = function(self, blind, context) + + + + if context.debuff_hand then + + + + if self.only_hand + and self.only_hand ~= context.scoring_name + then + + + return { + + + debuff = true + + + } + + + end + + + + + + if not context.check then + + + self.only_hand = + context.scoring_name + + + + end + + + + end + + + + end + + +} + + + + + + + + +------------------------------------------------------------------- +-- THE PLANT +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_plant = { + + + loc_name = "The Plant", + + + + set_blind = function(self) + + + self.active = true + + + end, + + + + calculate = function(self, blind, context) + + + + if context.debuff_card + and context.debuff_card:is_face(true) + then + + + return { + + + debuff = true + + + } + + + end + + + + end + + + +} + + + + + + + +------------------------------------------------------------------- +-- THE SERPENT +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_serpent = { + + + loc_name = "The Serpent", + + + + calculate = function(self, blind, context) + + + + if context.drawing_cards + and ( + G.GAME.current_round.hands_played ~= 0 + or + G.GAME.current_round.discards_used ~= 0 + ) + then + + + return { + + + cards_to_draw = 3 + + + } + + + end + + + end + + +} + + + + + + + + +------------------------------------------------------------------- +-- THE PILLAR +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_pillar = { + + + loc_name = "The Pillar", + + + + calculate = function(self, blind, context) + + + + if context.debuff_card + and context.debuff_card.area ~= G.jokers + and context.debuff_card.ability.played_this_ante + then + + + + return { + + + debuff = true + + + } + + + end + + + end + + +} + + + + + + + + +------------------------------------------------------------------- +-- THE NEEDLE +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_needle = { + + loc_name = "The Needle", + + calculate = function(self, blind, context) + -- Match the vanilla Blind lifecycle instead of directly assigning + -- hands_left in set_blind. In particular, this leaves round-start Tag + -- processing (including Juggle Tag's hand-size change) untouched. + if context.setting_blind then + local hands_left = G.GAME.current_round.hands_left + or G.GAME.round_resets.hands + or 1 + + self.hands_sub = math.max(0, hands_left - 1) + self.hands_restored = false + + if self.hands_sub > 0 then + ease_hands_played(-self.hands_sub) + end + end + + if (context.blind_disabled or context.blind_defeated) + and not self.hands_restored + then + if (self.hands_sub or 0) > 0 then + ease_hands_played(self.hands_sub) + end + self.hands_restored = true + end + end, +} + + +------------------------------------------------------------------- +-- THE HEAD +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_head = { + + + loc_name = "The Head", + + + + debuff = { + suit = "Hearts" + }, + + calculate = function(self, blind, context) + if context.debuff_card and context.debuff_card:is_suit("Hearts") then + return { debuff = true } + end + end, +} + + + + + + + +------------------------------------------------------------------- +-- THE MARK +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_mark = { + + + loc_name = "The Mark", + + + + calculate = function(self, blind, context) + + + + if context.stay_flipped + and context.to_area == G.hand + and context.other_card + and context.other_card:is_face(true) + then + + + + return { + + + stay_flipped = true + + + } + + + + end + + + end + + +} + + + + + + + + +------------------------------------------------------------------- +-- THE FLINT +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_flint = { + + + loc_name = "The Flint", + + + + calculate = function(self, blind, context) + + + + if context.modify_hand then + + + + blind.triggered = true + + + + mult = + mod_mult( + math.max( + math.floor( + mult * 0.5 + 0.5 + ), + 1 + ) + ) + + + + hand_chips = + mod_chips( + math.max( + math.floor( + hand_chips * 0.5 + 0.5 + ), + 0 + ) + ) + + + + update_hand_text( + + { + sound = 'chips2', + modded = true + }, + + { + chips = hand_chips, + mult = mult + } + + ) + + + + end + + + end + + +} + + + + + + + +------------------------------------------------------------------- +-- THE WATER +------------------------------------------------------------------- + +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_water = { + + + loc_name = "The Water", + + + + set_blind = function(self) + + + + self.discards_sub = + G.GAME.current_round.discards_left + + + + ease_discard( + -self.discards_sub + ) + + + end, + + + + calculate = function(self, blind, context) + + + + if context.blind_disabled then + + + + ease_discard( + self.discards_sub + ) + + + + end + + + end + + +} + + + + + + + + +------------------------------------------------------------------- +-- THE TOOTH +------------------------------------------------------------------- + +-- Kept out of The Devil's own roll pool, but exposed as a stackable Platinum +-- Boss effect. The selected cards are still in G.hand.highlighted when the +-- press_play context fires. +MP.BLIND_RAISER_COMPONENTS.bl_hook_the_tooth = { + loc_name = "The Tooth", + + calculate = function(self, blind, context) + if context.press_play then + local count = G.hand and G.hand.highlighted and #G.hand.highlighted or 0 + if count > 0 then + blind.triggered = true + ease_dollars(-count) + end + end + end, +} diff --git a/ui/game/blind_choice.lua b/ui/game/blind_choice.lua index 72f04917c..b01685588 100644 --- a/ui/game/blind_choice.lua +++ b/ui/game/blind_choice.lua @@ -35,6 +35,9 @@ function create_UIBox_blind_choice(type, run_info) { shader = "dissolve", shadow_height = 0.05 }, { shader = "dissolve" }, }) + if MP.BLIND_RAISER and MP.BLIND_RAISER.attach_boss_tooltip then + MP.BLIND_RAISER.attach_boss_tooltip(blind_choice.animation, blind_choice.config) + end local extras = nil local stake_sprite = get_stake_sprite(G.GAME.stake or 1, 0.5) @@ -164,6 +167,10 @@ function create_UIBox_blind_choice(type, run_info) or "Blind" end + if MP.BLIND_RAISER and MP.BLIND_RAISER.display_name then + loc_name = MP.BLIND_RAISER.display_name(type, loc_name) + end + local blind_col = get_blind_main_colour(type) ---@type string|number diff --git a/ui/game/blind_raiser.lua b/ui/game/blind_raiser.lua index da7afa175..d45bb5c1c 100644 --- a/ui/game/blind_raiser.lua +++ b/ui/game/blind_raiser.lua @@ -31,7 +31,11 @@ BR.is_active = blind_raiser_active -- is active, but preserve vanilla's original condition in every other ruleset. function BR.slot_matches(slot, vanilla_result) if blind_raiser_active() then - return G and G.GAME and G.GAME.blind_on_deck == slot + local live_blind = G and G.GAME and G.GAME.blind + local physical_slot = live_blind + and live_blind.mp_blind_raiser_replacement_slot + or (G and G.GAME and G.GAME.blind_on_deck) + return physical_slot == slot end return vanilla_result end @@ -157,6 +161,108 @@ local function replacement_record(blind_choice, ante, expected_boss) return best_record end +------------------------------------------------------------------- +-- Boss effect records +------------------------------------------------------------------- + +local STACKABLE_BOSS_EFFECTS = { + bl_hook = "bl_hook_the_hook", + bl_ox = "bl_hook_the_ox", + bl_house = "bl_hook_the_house", + bl_wheel = "bl_hook_the_wheel", + bl_arm = "bl_hook_the_arm", + bl_club = "bl_hook_the_club", + bl_fish = "bl_hook_the_fish", + bl_psychic = "bl_hook_the_psychic", + bl_goad = "bl_hook_the_goad", + bl_window = "bl_hook_the_window", + bl_manacle = "bl_hook_the_manacle", + bl_eye = "bl_hook_the_eye", + bl_mouth = "bl_hook_the_mouth", + bl_plant = "bl_hook_the_plant", + bl_serpent = "bl_hook_the_serpent", + bl_pillar = "bl_hook_the_pillar", + bl_head = "bl_hook_the_head", + bl_mark = "bl_hook_the_mark", + bl_flint = "bl_hook_the_flint", + bl_water = "bl_hook_the_water", + bl_tooth = "bl_hook_the_tooth", +} + +BR.STACKABLE_BOSS_EFFECTS = STACKABLE_BOSS_EFFECTS + +local function boss_choice() + return G + and G.GAME + and G.GAME.round_resets + and G.GAME.round_resets.blind_choices + and G.GAME.round_resets.blind_choices.Boss + or nil +end + +function BR.boss_effects_for_ante(ante) + ante = tonumber(ante) or current_slot_ante() + local effects = {} + local seen = {} + local records = replacement_records() + for _, blind_choice in ipairs({ "Small", "Big" }) do + local record = records[record_key(ante, blind_choice)] + local key = type(record) == "table" and record.boss or nil + if key and STACKABLE_BOSS_EFFECTS[key] and not seen[key] then + seen[key] = true + effects[#effects + 1] = key + end + end + return effects +end + +function BR.boss_upgrade_count_for_ante(ante) + return #BR.boss_effects_for_ante(ante) +end + +local function append_plus_to_name(loc_name) + if type(loc_name) == "string" then + return loc_name:match("%+$") and loc_name or (loc_name .. "+") + end + if type(loc_name) == "table" then + local copy = {} + for key, value in pairs(loc_name) do copy[key] = value end + local function append_last_string(node) + local last_numeric = nil + for key in pairs(node) do + if type(key) == "number" and (not last_numeric or key > last_numeric) then + last_numeric = key + end + end + if not last_numeric then return false end + local value = node[last_numeric] + if type(value) == "string" then + node[last_numeric] = value:match("%+$") and value or (value .. "+") + return true + elseif type(value) == "table" then + local nested = {} + for key, nested_value in pairs(value) do nested[key] = nested_value end + node[last_numeric] = nested + return append_last_string(nested) + end + return false + end + append_last_string(copy) + return copy + end + return loc_name +end + +function BR.display_name(blind_choice, loc_name) + if blind_raiser_active() + and blind_choice == "Boss" + and BR.boss_upgrade_count_for_ante(current_slot_ante()) > 0 + then + return append_plus_to_name(loc_name) + end + return loc_name +end + function BR.regular_score_for_slot(blind_choice, ante) blind_choice = normalize_blind_choice(blind_choice) if blind_choice ~= "Small" and blind_choice ~= "Big" then return nil end @@ -176,6 +282,270 @@ function BR.upgrade_count() or 0 end +-- The next score exponent is deliberately separate from the number of Blind +-- upgrades bought. Record hands skip exponent steps in complete groups of +-- three, repeating for as many full groups as the highest hand can clear, +-- without granting Investment Tag money or creating phantom Boss effects. +function BR.next_exponent_step() + if not (G and G.GAME) then return BR.upgrade_count() + 1 end + local minimum = BR.upgrade_count() + 1 + local stored = math.floor(tonumber(G.GAME.mp_blind_raiser_next_exponent) or minimum) + stored = math.max(1, minimum, stored) + G.GAME.mp_blind_raiser_next_exponent = stored + return stored +end + +function BR.set_next_exponent_step(step) + if not (G and G.GAME) then return end + local minimum = BR.upgrade_count() + 1 + G.GAME.mp_blind_raiser_next_exponent = math.max(1, minimum, math.floor(tonumber(step) or minimum)) +end + +local function normalized_insane_int(value) + if value == nil or not (MP and MP.INSANE_INT and MP.INSANE_INT.create) then return nil end + + local raw = tostring(value):lower():gsub(",", ""):gsub("%s+", "") + if raw == "" then return nil end + + -- Multiplayer's old parser stores plain 10000 as coefficient 10000/e0 but + -- scientific 1e4 as coefficient 1/e4, which makes equal values compare as + -- different magnitudes. Normalize every representation to scientific form. + local e_count = 0 + while raw:sub(1, 1) == "e" do + e_count = e_count + 1 + raw = raw:sub(2) + end + + local coefficient_text, explicit_exponent = raw:match("^([%+%-]?[%d%.]+)e([%+%-]?%d+)$") + if not coefficient_text then + coefficient_text = raw + explicit_exponent = 0 + else + explicit_exponent = tonumber(explicit_exponent) or 0 + end + + local sign = 1 + if coefficient_text:sub(1, 1) == "-" then + sign = -1 + coefficient_text = coefficient_text:sub(2) + elseif coefficient_text:sub(1, 1) == "+" then + coefficient_text = coefficient_text:sub(2) + end + + local integer, fraction = coefficient_text:match("^(%d*)%.?(%d*)$") + if integer == nil then return nil end + integer = integer or "" + fraction = fraction or "" + + local nonzero_integer = integer:match("^0*(%d.*)$") + local significant + local exponent + if nonzero_integer and nonzero_integer:find("[1-9]") then + nonzero_integer = nonzero_integer:gsub("^0+", "") + significant = nonzero_integer .. fraction + exponent = #nonzero_integer - 1 + explicit_exponent + else + local first_nonzero = fraction:find("[1-9]") + if not first_nonzero then return MP.INSANE_INT.empty() end + significant = fraction:sub(first_nonzero) + exponent = explicit_exponent - first_nonzero + end + + -- Fifteen significant digits are ample for ordering thresholds while + -- avoiding floating-point overflow from very long Big-number strings. + local head = significant:sub(1, 1) + local tail = significant:sub(2, 15) + local coefficient = tonumber(head .. (tail ~= "" and ("." .. tail) or "")) or 0 + return MP.INSANE_INT.create(sign * coefficient, exponent, e_count) +end + +local function insane_int_at_least(left, right) + if not (left and right and MP and MP.INSANE_INT) then return false end + return MP.INSANE_INT.greater_than(left, right) or MP.INSANE_INT.equal(left, right) +end + +local function exponent_threshold(base_score, step) + local threshold_value + if type(to_big) == "function" then + local ok, result = pcall(function() + return to_big(base_score) * (to_big(2) ^ step) + end) + if ok then threshold_value = result end + end + if threshold_value == nil then threshold_value = base_score * (2 ^ step) end + return normalized_insane_int(threshold_value) +end + +local function stored_highest_hand() + if not (G and G.GAME) then return nil end + local stored = G.GAME.mp_blind_raiser_highest_hand_score + if type(stored) == "table" + and stored.coeffiocient ~= nil + and stored.exponent ~= nil + and stored.e_count ~= nil + then + return stored + end + return normalized_insane_int(stored) +end + +-- Called from the universal completed-hand scoring path. This deliberately +-- does not use MP.ACTIONS.play_hand: that networking action only runs during +-- the PvP Blind, which left Small/Big/Boss hands completely unobserved. +function BR.on_hand_scored(hand_score) + if not blind_raiser_active() or hand_score == nil or not (G and G.GAME) then return end + + local normalized_score = normalized_insane_int(hand_score) + if not normalized_score then return end + local zero = MP.INSANE_INT.empty() + if not MP.INSANE_INT.greater_than(normalized_score, zero) then return end + + -- Keep the best hand seen this run, but always re-evaluate the stored best + -- score. This recovers correctly if a compatibility mod replaced a score + -- hook for one hand and our wrapper is restored before the next hand. + local previous = stored_highest_hand() or zero + local highest = previous + if MP.INSANE_INT.greater_than(normalized_score, previous) then + highest = normalized_score + G.GAME.mp_blind_raiser_highest_hand_score = normalized_score + end + + -- During a played Blind, round_resets.ante is authoritative. blind_ante is + -- a Blind-select preview field and can remain stale across Ante transitions. + local next_ante = math.max(1, current_ante() + 1) + local base_score = BR.regular_score_for_slot("Small", next_ante) + if not base_score then return end + + local step = BR.next_exponent_step() + local original_step = step + + -- Catch-up advances in complete groups of three exponent steps. Passing the + -- last threshold of a group guarantees its two lower thresholds were also + -- passed, so a group is atomic: either all three steps are skipped or none + -- are. Successful groups repeat until the next complete group fails. + local function full_groups_pass(group_count) + if group_count < 1 then return true end + local final_step = step + (group_count * 3) - 1 + local threshold = exponent_threshold(base_score, final_step) + return threshold ~= nil and insane_int_at_least(highest, threshold) + end + + local passed_groups = 0 + if full_groups_pass(1) then + -- Find a failing upper bound exponentially, then binary-search the exact + -- number of complete three-step groups. This keeps giant-score catch-up + -- fast while preserving the same stop-on-first-failed-group behaviour. + local lower = 1 + local upper = 2 + local max_safe_groups = 1073741824 -- 2^30 groups; avoids Lua integer drift. + + while upper < max_safe_groups and full_groups_pass(upper) do + lower = upper + upper = upper * 2 + end + + if upper >= max_safe_groups and full_groups_pass(max_safe_groups) then + passed_groups = max_safe_groups + else + local lo = lower + 1 + local hi = math.min(upper - 1, max_safe_groups) + passed_groups = lower + while lo <= hi do + local mid = math.floor((lo + hi) / 2) + if full_groups_pass(mid) then + passed_groups = mid + lo = mid + 1 + else + hi = mid - 1 + end + end + end + end + + if passed_groups > 0 then + step = step + (passed_groups * 3) + end + + if step > original_step then BR.set_next_exponent_step(step) end +end + +-- Backwards-compatible name for any add-on that already calls this hook with +-- an actual hand score. Multiplayer's cumulative network score no longer does. +BR.on_new_highest_hand = BR.on_hand_scored + +-- Hook both authoritative completed-hand signals instead of relying on a +-- Lovely injection inside evaluate_play. Multiplayer/Steamodded can replace +-- that function after Lovely applies, but a completed scoring hand still calls +-- check_and_set_high_score("hand", score) and check_for_unlock({type = +-- "chip_score", chips = score}). Either path is sufficient; duplicate calls are +-- harmless because the first call advances through every complete batch the +-- stored highest hand can clear, leaving the second call at the same failure. +local function install_hand_score_hooks() + local installed = false + + if type(check_and_set_high_score) == "function" + and check_and_set_high_score ~= BR._hand_high_score_hook + then + local previous_high_score = check_and_set_high_score + local high_score_wrapper + high_score_wrapper = function(score_type, amount, ...) + local result = previous_high_score(score_type, amount, ...) + if score_type == "hand" and BR.on_hand_scored then + BR.on_hand_scored(amount) + end + return result + end + BR._hand_high_score_hook = high_score_wrapper + BR._hand_high_score_hook_previous = previous_high_score + check_and_set_high_score = high_score_wrapper + installed = true + elseif check_and_set_high_score == BR._hand_high_score_hook then + installed = true + end + + if type(check_for_unlock) == "function" + and check_for_unlock ~= BR._chip_score_unlock_hook + then + local previous_check_for_unlock = check_for_unlock + local unlock_wrapper + unlock_wrapper = function(args, ...) + local result = previous_check_for_unlock(args, ...) + if type(args) == "table" + and args.type == "chip_score" + and args.chips ~= nil + and BR.on_hand_scored + then + BR.on_hand_scored(args.chips) + end + return result + end + BR._chip_score_unlock_hook = unlock_wrapper + BR._chip_score_unlock_hook_previous = previous_check_for_unlock + check_for_unlock = unlock_wrapper + installed = true + elseif check_for_unlock == BR._chip_score_unlock_hook then + installed = true + end + + return installed +end + +BR.install_hand_score_hooks = install_hand_score_hooks +install_hand_score_hooks() + +if Game and type(Game.start_run) == "function" and not BR._start_run_score_hook_installed then + BR._start_run_score_hook_installed = true + local game_start_run_ref = Game.start_run + function Game:start_run(...) + -- Install before and after start_run: after wins over wrappers that are + -- installed during run initialization by compatibility modules. + install_hand_score_hooks() + local result = game_start_run_ref(self, ...) + install_hand_score_hooks() + return result + end +end + function BR.next_upgrade_score_for_slot(blind_choice, ante) if not blind_raiser_active() then return nil end blind_choice = normalize_blind_choice(blind_choice) @@ -183,7 +553,7 @@ function BR.next_upgrade_score_for_slot(blind_choice, ante) local base_score = BR.regular_score_for_slot(blind_choice, ante or current_slot_ante()) if not base_score then return nil end - return base_score * (2 ^ (BR.upgrade_count() + 1)) + return base_score * (2 ^ BR.next_exponent_step()) end local function dictionary_text(key, vars, fallback) @@ -202,7 +572,6 @@ function BR.upgrade_button_tooltip(blind_choice) local formatted_score = next_score and number_format(next_score) or "?" return { - title = dictionary_text("mp_blind_raiser_tooltip_title", nil, "Blind Raiser"), text = { dictionary_text( "mp_blind_raiser_tooltip_upgrades", @@ -252,9 +621,37 @@ local function score_from_record(blind_choice, ante, record, upgrade_index) return base_score * multiplier end +local function slot_is_pvp(blind_choice, blind) + local key = blind_key_from_definition(blind) + if key == "bl_mp_nemesis" then return true end + local resets = G and G.GAME and G.GAME.round_resets + if resets and resets.pvp_blind_choices + and resets.pvp_blind_choices[blind_choice] + then + return true + end + local live = G and G.GAME and G.GAME.blind + if live and live.pvp == true then + local live_key = blind_key_from_definition(live.config and live.config.blind) + return not blind or not key or key == live_key + end + return false +end + +function BR.real_boss_score(vanilla_amount, ante, blind) + if not blind_raiser_active() then return vanilla_amount end + if slot_is_pvp("Boss", blind) then return vanilla_amount end + local upgrades_this_ante = BR.boss_upgrade_count_for_ante(ante or current_slot_ante()) + if upgrades_this_ante < 1 then return vanilla_amount end + return vanilla_amount * (2 ^ upgrades_this_ante) +end + function BR.score_for_slot(blind_choice, vanilla_amount, ante, expected_boss) if not blind_raiser_active() then return vanilla_amount end blind_choice = normalize_blind_choice(blind_choice) + if blind_choice == "Boss" then + return BR.real_boss_score(vanilla_amount, ante, expected_boss and G.P_BLINDS and G.P_BLINDS[expected_boss]) + end if blind_choice ~= "Small" and blind_choice ~= "Big" then return vanilla_amount end local upgrade_index, record = upgrade_index_for(blind_choice, ante, expected_boss) @@ -268,6 +665,11 @@ end function BR.preview_score_for_slot(blind_choice, vanilla_amount) if not blind_raiser_active() then return vanilla_amount end blind_choice = normalize_blind_choice(blind_choice) + if blind_choice == "Boss" then + local key = current_choice_key("Boss") + local blind = key and G.P_BLINDS and G.P_BLINDS[key] + return BR.real_boss_score(vanilla_amount, current_slot_ante(), blind) + end if blind_choice ~= "Small" and blind_choice ~= "Big" then return vanilla_amount end local record = replacement_record(blind_choice, current_slot_ante()) @@ -300,6 +702,9 @@ function BR.score_for_blind(blind, preferred_choice, vanilla_amount, ante) blind_choice = matching_choices[1] end + if blind_choice == "Boss" then + return BR.real_boss_score(vanilla_amount, ante, blind) + end return BR.score_for_slot(blind_choice, vanilla_amount, ante, blind_key) end @@ -349,115 +754,208 @@ local function can_upgrade(blind_choice) end ------------------------------------------------------------------- --- Deterministic non-Showdown Boss selection +-- Deterministic, Ante-legal Boss selection ------------------------------------------------------------------- +local STATIC_UPGRADE_BANS = { + bl_wall = true, + bl_needle = true, +} + local function blind_is_in_pool(blind) if type(blind.in_pool) ~= "function" then return true end local ok, result = pcall(blind.in_pool, blind) return ok and result ~= false end -local function boss_is_valid(key) - local blind = key and G.P_BLINDS and G.P_BLINDS[key] - if key == "bl_mp_nemesis" then return false end - if not (blind and blind.boss) then return false end - if blind.boss.showdown then return false end - if G.GAME.banned_keys and G.GAME.banned_keys[key] then return false end +local function candidate_is_ante_eligible(blind, ante) + local boss = blind and blind.boss + if not boss then return false end + ante = tonumber(ante) or current_slot_ante() + if boss.min and ante < boss.min then return false end + if boss.max and ante > boss.max then return false end return true end -local function choose_with_vanilla_boss_picker() - if type(get_new_boss) ~= "function" then return nil end - - -- Let vanilla/SMODS decide ante eligibility and compatibility-pool rules, - -- but evaluate the roll against a temporary usage table. This retains the - -- exact normal Boss-selection semantics without allowing an optional Blind - -- Raiser choice to alter future shared-seed Boss rolls. - local original_uses = G.GAME.bosses_used - local working_uses = {} - for key, uses in pairs(original_uses or {}) do - working_uses[key] = uses - end - for key, uses in pairs(raiser_bosses_used()) do - working_uses[key] = (working_uses[key] or 0) + uses - end - G.GAME.bosses_used = working_uses - - -- get_new_boss advances the keyed pseudorandom stream it uses. Isolate that - -- state too, otherwise one player pressing Upgrade Blind would change later - -- normal Boss rolls while an opponent who did not upgrade keeps the original - -- stream. The temporary table may be freely mutated by vanilla or SMODS. - local original_pseudorandom = G.GAME.pseudorandom - local working_pseudorandom = {} - for key, value in pairs(original_pseudorandom or {}) do - if type(value) == "table" then - local nested = {} - for nested_key, nested_value in pairs(value) do - nested[nested_key] = nested_value - end - working_pseudorandom[key] = nested - else - working_pseudorandom[key] = value +local function upgraded_bosses_for_ante(ante) + local used = {} + for _, key in ipairs(BR.boss_effects_for_ante(ante)) do used[key] = true end + return used +end + +local CARD_DEBUFFER_BOSSES = { + bl_plant = true, + bl_club = true, + bl_goad = true, + bl_window = true, + bl_head = true, + bl_mark = true, + bl_psychic = true, + bl_pillar = true, +} + +local CARD_FLIPPER_BOSSES = { + bl_house = true, + bl_wheel = true, + bl_fish = true, + bl_mark = true, +} + +local FORBIDDEN_BOSS_PAIRS = { + { "bl_plant", "bl_mark" }, + { "bl_needle", "bl_wall" }, + { "bl_needle", "bl_water" }, + { "bl_eye", "bl_mouth" }, +} + +local function boss_combo_invalid(existing, candidate) + local present = {} + local debuffers = 0 + local flippers = 0 + + for _, key in ipairs(existing or {}) do + if key and not present[key] then + present[key] = true + if CARD_DEBUFFER_BOSSES[key] then debuffers = debuffers + 1 end + if CARD_FLIPPER_BOSSES[key] then flippers = flippers + 1 end end end - G.GAME.pseudorandom = working_pseudorandom - -- On a Showdown Ante, vanilla would intentionally return a final Boss. - -- Temporarily move win_ante beyond the current Ante so an upgraded Small - -- or Big slot always receives an ordinary, non-Showdown Boss. - local original_win_ante = G.GAME.win_ante - if type(original_win_ante) == "number" then - G.GAME.win_ante = math.max(original_win_ante + 1, current_ante() + 1) + if candidate then + if present[candidate] then return true end + present[candidate] = true + if CARD_DEBUFFER_BOSSES[candidate] then debuffers = debuffers + 1 end + if CARD_FLIPPER_BOSSES[candidate] then flippers = flippers + 1 end end - local ok, boss = pcall(get_new_boss) - G.GAME.win_ante = original_win_ante - G.GAME.bosses_used = original_uses - G.GAME.pseudorandom = original_pseudorandom - - if not ok then - if sendWarnMessage then - sendWarnMessage("Blind Raiser Boss selection failed: " .. tostring(boss), "MULTIPLAYER") - end - return nil + if debuffers > 1 or flippers > 1 then return true end + for _, pair in ipairs(FORBIDDEN_BOSS_PAIRS) do + if present[pair[1]] and present[pair[2]] then return true end end - return boss_is_valid(boss) and boss or nil + return false end -local function choose_fallback_boss(blind_choice) - local candidates = {} - for key, blind in pairs(G.P_BLINDS or {}) do - if boss_is_valid(key) and blind_is_in_pool(blind) then - candidates[#candidates + 1] = key - end +BR.boss_combo_invalid = boss_combo_invalid + +local function upgrade_combo_bosses(ante) + local existing = {} + local current = boss_choice() + if current then existing[#existing + 1] = current end + for _, key in ipairs(BR.boss_effects_for_ante(ante)) do + existing[#existing + 1] = key end - table.sort(candidates) - if #candidates == 0 then return nil end + return existing +end +local function boss_is_valid(key, ante, relaxed_pool) + local blind = key and G.P_BLINDS and G.P_BLINDS[key] + if not STACKABLE_BOSS_EFFECTS[key] then return false end + if key == "bl_mp_nemesis" then return false end + if STATIC_UPGRADE_BANS[key] then return false end + if not (blind and blind.boss) or blind.boss.showdown then return false end + if G.GAME.banned_keys and G.GAME.banned_keys[key] then return false end + if key == boss_choice() then return false end + if upgraded_bosses_for_ante(ante)[key] then return false end + if boss_combo_invalid(upgrade_combo_bosses(ante), key) then return false end + if not candidate_is_ante_eligible(blind, ante) then return false end + if not relaxed_pool and not blind_is_in_pool(blind) then return false end + return true +end + +local function choose_from_eligible_pool(blind_choice, relaxed_pool) + local ante = current_slot_ante() + local candidates = {} local base_uses = G.GAME.bosses_used or {} local extra_uses = raiser_bosses_used() local minimum_uses = nil - for _, key in ipairs(candidates) do - local uses = (base_uses[key] or 0) + (extra_uses[key] or 0) - if minimum_uses == nil or uses < minimum_uses then minimum_uses = uses end + + for key in pairs(STACKABLE_BOSS_EFFECTS) do + if boss_is_valid(key, ante, relaxed_pool) then + local uses = (base_uses[key] or 0) + (extra_uses[key] or 0) + if minimum_uses == nil or uses < minimum_uses then minimum_uses = uses end + candidates[#candidates + 1] = { key = key, uses = uses } + end end local filtered = {} - for _, key in ipairs(candidates) do - local uses = (base_uses[key] or 0) + (extra_uses[key] or 0) - if uses == minimum_uses then filtered[#filtered + 1] = key end + for _, candidate in ipairs(candidates) do + if candidate.uses == minimum_uses then filtered[#filtered + 1] = candidate.key end end + table.sort(filtered) + if #filtered == 0 then return nil end return pseudorandom_element( filtered, - pseudoseed("mp_blind_raiser_" .. tostring(current_ante()) .. "_" .. tostring(blind_choice)) + pseudoseed( + "mp_blind_raiser_" .. tostring(ante) + .. "_" .. tostring(blind_choice) + .. "_" .. tostring(BR.boss_upgrade_count_for_ante(ante) + 1) + ) ) end function BR.choose_boss(blind_choice) if not (G and G.GAME and G.P_BLINDS) then return nil end - return choose_with_vanilla_boss_picker() or choose_fallback_boss(blind_choice) + return choose_from_eligible_pool(blind_choice, false) + or choose_from_eligible_pool(blind_choice, true) +end + +-- A Boss reroll replaces the real Boss, so validate the candidate against +-- only the already-upgraded Small/Big components. Wall and Needle remain legal +-- real Bosses; they are banned only as upgrade targets. +function BR.reroll_boss_candidate_is_compatible(key, ante) + if not (G and G.GAME) then return true end + ante = tonumber(ante) or current_slot_ante() + local upgraded = upgraded_bosses_for_ante(ante) + if not next(upgraded) then return true end + if upgraded[key] then return false end + + local existing = {} + for upgraded_key in pairs(upgraded) do existing[#existing + 1] = upgraded_key end + return not boss_combo_invalid(existing, key) +end + +function BR.call_with_reroll_bans(selector) + if type(selector) ~= "function" then return nil end + if not blind_raiser_active() or not (G and G.GAME and G.P_BLINDS) then + return selector() + end + + local ante = current_slot_ante() + local upgraded = upgraded_bosses_for_ante(ante) + if not next(upgraded) then return selector() end + + local had_banned_table = type(G.GAME.banned_keys) == "table" + local banned = had_banned_table and G.GAME.banned_keys or {} + G.GAME.banned_keys = banned + local temporarily_banned = {} + + for key, blind in pairs(G.P_BLINDS) do + if blind and blind.boss + and not blind.boss.showdown + and not banned[key] + and not BR.reroll_boss_candidate_is_compatible(key, ante) + then + banned[key] = true + temporarily_banned[#temporarily_banned + 1] = key + end + end + + local ok, result = pcall(selector) + for _, key in ipairs(temporarily_banned) do banned[key] = nil end + if not had_banned_table and next(banned) == nil then G.GAME.banned_keys = nil end + if not ok then error(result) end + return result +end + +-- Boss Reroll voucher/tag callbacks both call get_new_boss(). Filtering at this +-- shared boundary keeps their normal UI/update flow intact and also covers +-- other compatible reroll sources. +if not BR._unrestricted_get_new_boss then + BR._unrestricted_get_new_boss = get_new_boss + function get_new_boss() + return BR.call_with_reroll_bans(BR._unrestricted_get_new_boss) + end end ------------------------------------------------------------------- @@ -469,6 +967,12 @@ function BR.restore_stale_slots() if not (G and G.GAME and G.GAME.round_resets and G.GAME.round_resets.blind_choices) then return end local ante = current_ante() + if G.GAME.mp_blind_raiser_boss_stack_active + and tonumber(G.GAME.mp_blind_raiser_boss_stack_ante) ~= tonumber(ante) + and BR.stop_boss_stack + then + BR.stop_boss_stack() + end local choices = G.GAME.round_resets.blind_choices local upgrades = upgraded_blinds() local records = replacement_records() @@ -678,7 +1182,7 @@ function create_UIBox_blind_tag(blind_choice, run_info) config = { id = "tag_container", ref_table = reward_tag, - align = "tm", + align = "cm", }, nodes = { { @@ -697,7 +1201,7 @@ function create_UIBox_blind_tag(blind_choice, run_info) }, }, { - n = G.UIT.C, + n = G.UIT.R, config = { id = "tag_" .. blind_choice, align = "cm", @@ -808,7 +1312,8 @@ G.FUNCS.mp_blind_raiser_upgrade = function(e) local upgrade_ante = current_slot_ante() local current_upgrade_key = record_key(upgrade_ante, blind_choice) - local upgrade_index = (tonumber(G.GAME.mp_blind_raiser_upgrade_count) or 0) + 1 + local actual_upgrade_count = BR.upgrade_count() + 1 + local upgrade_index = BR.next_exponent_step() local base_score = BR.regular_score_for_slot(blind_choice, upgrade_ante) replacement_records()[current_upgrade_key] = { ante = upgrade_ante, @@ -824,7 +1329,8 @@ G.FUNCS.mp_blind_raiser_upgrade = function(e) stop_use() upgraded_blinds()[current_upgrade_key] = true - G.GAME.mp_blind_raiser_upgrade_count = upgrade_index + G.GAME.mp_blind_raiser_upgrade_count = actual_upgrade_count + BR.set_next_exponent_step(upgrade_index + 1) local uses = raiser_bosses_used() uses[boss] = (uses[boss] or 0) + 1 @@ -912,6 +1418,7 @@ G.FUNCS.mp_blind_raiser_upgrade = function(e) config = { id = blind_choice }, UIBox = new_option, }) + if BR.rebuild_boss_option then BR.rebuild_boss_option() end if SMODS and SMODS.calculate_context then SMODS.calculate_context({ @@ -934,6 +1441,425 @@ G.FUNCS.mp_blind_raiser_upgrade = function(e) })) end +------------------------------------------------------------------- +-- Real Boss effect stacking and Boss badge tooltips +------------------------------------------------------------------- + +local function tooltip_vars(blind_key, blind_config) + if blind_key == "bl_wheel" and SMODS and SMODS.get_probability_vars then + local numerator, denominator = SMODS.get_probability_vars( + blind_config or G.P_BLINDS[blind_key], 1, 7, "mp_blind_raiser_wheel_tooltip" + ) + return { numerator, denominator } + end + if blind_key == "bl_ox" then + local hand = G.GAME.current_round and G.GAME.current_round.most_played_poker_hand + return { hand and localize(hand, "poker_hands") or "?" } + end + if blind_config and type(blind_config.loc_vars) == "function" then + local ok, result = pcall(blind_config.loc_vars, blind_config) + if ok and type(result) == "table" and type(result.vars) == "table" then + return result.vars + end + end + return {} +end + +local function rows_node(rows, formatter) + if type(formatter) == "function" then return formatter(rows) end + return { n = G.UIT.C, config = { align = "cm" }, nodes = rows or {} } +end + +local function create_effect_box(blind_key) + local blind_config = blind_key and G.P_BLINDS and G.P_BLINDS[blind_key] + if not blind_config then return nil end + + local name_nodes = localize({ type = "name", key = blind_key, set = "Blind" }) + local desc_nodes = {} + localize({ + type = "descriptions", + key = blind_key, + set = "Blind", + nodes = desc_nodes, + vars = tooltip_vars(blind_key, blind_config), + }) + + local colour = blind_config.boss_colour or G.C.RED + return { + n = G.UIT.R, + config = { align = "cm", padding = 0.025 }, + nodes = { + { + n = G.UIT.R, + config = { + align = "cm", minw = 3.45, maxw = 3.45, + padding = 0.055, r = 0.1, + colour = lighten(G.C.JOKER_GREY, 0.5), emboss = 0.05, + }, + nodes = { + { + n = G.UIT.C, + config = { + align = "cm", minw = 3.3, maxw = 3.3, + padding = 0.07, r = 0.08, + colour = adjust_alpha(darken(colour, 0.2), 0.96), + }, + nodes = { + rows_node(name_nodes, name_from_rows), + rows_node(desc_nodes, desc_from_rows), + }, + }, + }, + }, + }, + } +end + +function BR.create_boss_tooltip(ante) + if not (blind_raiser_active() and G and G.GAME) then return nil end + ante = tonumber(ante) or current_slot_ante() + local nodes = {} + local base_box = create_effect_box(boss_choice()) + if base_box then nodes[#nodes + 1] = base_box end + for _, key in ipairs(BR.boss_effects_for_ante(ante)) do + local box = create_effect_box(key) + if box then nodes[#nodes + 1] = box end + end + if #nodes < 2 then return nil end + return { + n = G.UIT.ROOT, + config = { align = "cm", colour = G.C.CLEAR, padding = 0.04 }, + nodes = nodes, + } +end + +function BR.attach_boss_tooltip(target, blind_config) + if not (target and blind_config and blind_raiser_active()) then return end + if blind_config.key ~= boss_choice() then return end + if BR.boss_upgrade_count_for_ante(current_slot_ante()) < 1 then return end + + target.states.hover.can = true + target.states.drag.can = false + target.states.collide.can = true + target.config = target.config or {} + target.config.force_focus = true + target.config.mp_blind_raiser_tooltip_ante = current_slot_ante() + + target.hover = function(self) + if (not G.CONTROLLER.dragging.target or G.CONTROLLER.using_touch) + and not self.hovering and self.states.visible + then + local popup = BR.create_boss_tooltip( + self.config.mp_blind_raiser_tooltip_ante or current_slot_ante() + ) + if not popup then return end + self.hovering = true + self.hover_tilt = 3 + self:juice_up(0.05, 0.02) + play_sound("chips1", math.random() * 0.1 + 0.55, 0.12) + self.config.h_popup = popup + self.config.h_popup_config = { + align = "cr", offset = { x = 0.1, y = 0 }, parent = self, + } + Node.hover(self) + end + end + + target.stop_hover = function(self) + self.hovering = false + self.hover_tilt = 0 + Node.stop_hover(self) + end +end + +function BR.rebuild_boss_option() + if not (G and G.blind_select and G.blind_select_opts and G.blind_select_opts.boss) then return end + local current_option = G.blind_select_opts.boss + local parent = current_option.parent + local boss = boss_choice() + if not (parent and boss) then return end + + current_option:remove() + G.blind_select_opts.boss = UIBox({ + T = { parent.T.x, 0, 0, 0 }, + definition = { + n = G.UIT.ROOT, + config = { align = "cm", colour = G.C.CLEAR }, + nodes = { + UIBox_dyn_container( + { create_UIBox_blind_choice("Boss") }, + false, + get_blind_main_colour(boss), + mix_colours(G.C.BLACK, get_blind_main_colour(boss), 0.8) + ), + }, + }, + config = { + align = "bmi", offset = { x = 0, y = G.ROOM.T.y + 9 }, + major = parent, xy_bond = "Weak", + }, + }) + + local new_option = G.blind_select_opts.boss + parent.config.object = new_option + parent.config.object:recalculate() + new_option.parent = parent + new_option.alignment.offset.y = 0 +end + +local function active_effect_hooks() + local hooks = {} + local ante = G and G.GAME and G.GAME.mp_blind_raiser_boss_stack_ante or current_slot_ante() + for _, blind_key in ipairs(BR.boss_effects_for_ante(ante)) do + local hook_key = STACKABLE_BOSS_EFFECTS[blind_key] + if hook_key then hooks[#hooks + 1] = hook_key end + end + return hooks +end + +local function live_physical_slot(blind) + return blind and blind.mp_blind_raiser_replacement_slot + or (G and G.GAME and G.GAME.blind_on_deck) +end + +function BR.start_boss_stack(blind) + if not (blind_raiser_active() and G and G.GAME and blind) then return end + if live_physical_slot(blind) ~= "Boss" + or BR.boss_upgrade_count_for_ante(current_slot_ante()) < 1 + then + G.GAME.mp_blind_raiser_boss_stack_active = nil + return + end + + G.GAME.mp_blind_raiser_boss_stack_active = true + G.GAME.mp_blind_raiser_boss_stack_ante = current_slot_ante() + + local base_key = blind.config and blind.config.blind and blind.config.blind.key + local needs_draw_context = false + for _, hook_key in ipairs(active_effect_hooks()) do + if hook_key == "bl_hook_the_fish" or hook_key == "bl_hook_the_serpent" then + needs_draw_context = true + break + end + end + if needs_draw_context and base_key and SMODS and SMODS.Blinds and SMODS.Blinds.modifies_draw then + G.GAME.mp_blind_raiser_draw_key = base_key + G.GAME.mp_blind_raiser_draw_original = SMODS.Blinds.modifies_draw[base_key] + SMODS.Blinds.modifies_draw[base_key] = true + end + + for _, hook_key in ipairs(active_effect_hooks()) do + local component = MP.BLIND_RAISER_COMPONENTS and MP.BLIND_RAISER_COMPONENTS[hook_key] + if component then + if component.set_blind then component:set_blind() end + if component.debuff then + blind.debuff = blind.debuff or {} + -- Suit debuffs are evaluated through component contexts so multiple + -- stacked suit Bosses cannot overwrite the natural Boss's own suit. + if component.debuff.h_size_ge then blind.debuff.h_size_ge = component.debuff.h_size_ge end + end + if component.calculate then component:calculate(blind, { setting_blind = true }) end + end + end + + -- Blind:set_blind debuffed the deck before the stack was active. Re-evaluate + -- once so stacked card-debuff effects apply immediately at fight start. + for _, card in ipairs(G.playing_cards or {}) do + blind:debuff_card(card) + end + + blind.loc_name = append_plus_to_name(blind.loc_name) + + local function attach_live_tooltip() + if not (G and G.GAME and G.GAME.blind == blind) then return end + local config = blind.config and blind.config.blind + BR.attach_boss_tooltip(blind, config) + if blind.children and blind.children.animatedSprite then + BR.attach_boss_tooltip(blind.children.animatedSprite, config) + end + end + attach_live_tooltip() + if G.E_MANAGER and Event then + G.E_MANAGER:add_event(Event({ + trigger = "after", delay = 0.2, + blockable = false, blocking = false, + func = function() + attach_live_tooltip() + return true + end, + })) + end +end + +function BR.calculate_boss_stack(context) + if not (G and G.GAME and G.GAME.mp_blind_raiser_boss_stack_active and context) then return nil end + -- Blind:debuff_card below is authoritative; mod-level debuff results are not + -- consumed consistently by every Multiplayer/Steamodded calculation layer. + if context.debuff_card then return nil end + local blind = G.GAME.blind + if not blind then return nil end + + -- Luchador and Chicot disable the live Blind. Delegated Boss effects must + -- stop immediately as well; only lifecycle cleanup contexts may pass. + local cleanup_context = context.blind_disabled or context.blind_defeated + if blind.disabled and not cleanup_context then return nil end + + local result = nil + for _, hook_key in ipairs(active_effect_hooks()) do + local component = MP.BLIND_RAISER_COMPONENTS and MP.BLIND_RAISER_COMPONENTS[hook_key] + if component and component.calculate then + local component_result = component:calculate(blind, context) + if type(component_result) == "table" then + result = result or {} + for key, value in pairs(component_result) do result[key] = value end + elseif component_result ~= nil and result == nil then + result = component_result + end + end + end + return result +end + +local function component_debuffs_card(component, blind, card) + if not (component and blind and card) then return false end + if G and G.jokers and card.area == G.jokers then return false end + + local debuff = component.debuff + if debuff then + if debuff.suit and card.is_suit and card:is_suit(debuff.suit, true) then return true end + if debuff.is_face and card.is_face and card:is_face(true) then return true end + if debuff.value and card.base and card.base.value == debuff.value then return true end + if debuff.nominal and card.base and card.base.nominal == debuff.nominal then return true end + end + + if component.calculate then + local result = component:calculate(blind, { + debuff_card = card, + debuff_source = blind, + }) + return result == true or (type(result) == "table" and result.debuff == true) + end + return false +end + +local function active_stacked_components_debuff_card(blind, card) + if not (G and G.GAME and G.GAME.mp_blind_raiser_boss_stack_active) then return false end + if not (blind and card) or blind.disabled then return false end + + for _, hook_key in ipairs(active_effect_hooks()) do + local component = MP.BLIND_RAISER_COMPONENTS and MP.BLIND_RAISER_COMPONENTS[hook_key] + if component_debuffs_card(component, blind, card) then return true end + end + return false +end + +local Blind_debuff_card_ref = Blind.debuff_card +function Blind:debuff_card(card, from_blind) + -- Resolve the natural Boss first, then OR every stacked component on top. + -- This preserves the natural suit/type and prevents one component from + -- overwriting another or being lost through Multiplayer's context merger. + local result = Blind_debuff_card_ref(self, card, from_blind) + if active_stacked_components_debuff_card(self, card) then + card:set_debuff(true) + end + return result +end + +function BR.stop_boss_stack(cleanup_context) + if not (G and G.GAME and G.GAME.mp_blind_raiser_boss_stack_active) then return end + + local blind = G.GAME.blind + local hooks = active_effect_hooks() + local context = type(cleanup_context) == "table" + and cleanup_context + or { blind_disabled = true } + + -- Stop delegation before component cleanup. Some Steamodded builds emit a + -- second blind_disabled context from Blind:disable(); this prevents duplicate + -- restores, while the component itself also guards The Manacle idempotently. + G.GAME.mp_blind_raiser_boss_stack_active = nil + + for _, hook_key in ipairs(hooks) do + local component = MP.BLIND_RAISER_COMPONENTS and MP.BLIND_RAISER_COMPONENTS[hook_key] + if component then + if component.calculate then component:calculate(blind, context) end + if component.disable then component:disable() end + end + end + + local draw_key = G.GAME.mp_blind_raiser_draw_key + if draw_key and SMODS and SMODS.Blinds and SMODS.Blinds.modifies_draw then + SMODS.Blinds.modifies_draw[draw_key] = G.GAME.mp_blind_raiser_draw_original + end + G.GAME.mp_blind_raiser_draw_key = nil + G.GAME.mp_blind_raiser_draw_original = nil + G.GAME.mp_blind_raiser_boss_stack_ante = nil +end + +local Blind_set_text_ref = Blind.set_text +function Blind:set_text(...) + local ret = Blind_set_text_ref(self, ...) + if blind_raiser_active() + and live_physical_slot(self) == "Boss" + and BR.boss_upgrade_count_for_ante(current_slot_ante()) > 0 + then + self.loc_name = append_plus_to_name(self.loc_name) + end + return ret +end + +local Blind_set_blind_ref = Blind.set_blind +function Blind:set_blind(blind, reset, silent) + local ret = Blind_set_blind_ref(self, blind, reset, silent) + self.mp_blind_raiser_replacement_slot = nil + self.mp_blind_raiser_replacement_ante = nil + + if blind_raiser_active() and G and G.GAME then + local key = blind_key_from_definition(blind or (self.config and self.config.blind)) + for _, slot in ipairs({ "Small", "Big" }) do + local record = replacement_record(slot, current_slot_ante(), key) + if type(record) == "table" and record.boss == key then + self.mp_blind_raiser_replacement_slot = slot + self.mp_blind_raiser_replacement_ante = tonumber(record.ante) or current_slot_ante() + break + end + end + if not self.mp_blind_raiser_replacement_slot and G.GAME.blind_on_deck == "Boss" then + BR.start_boss_stack(self) + end + end + return ret +end + +local Blind_disable_ref = Blind.disable +function Blind:disable(...) + -- Luchador/Chicot disable every component of Boss+, then the wrapped + -- Multiplayer/vanilla method handles the natural Boss effect. + if G and G.GAME and G.GAME.mp_blind_raiser_boss_stack_active then + BR.stop_boss_stack({ blind_disabled = true }) + end + return Blind_disable_ref(self, ...) +end + +local Blind_defeat_ref = Blind.defeat +function Blind:defeat(...) + if G and G.GAME and G.GAME.mp_blind_raiser_boss_stack_active then + BR.stop_boss_stack({ blind_defeated = true }) + end + return Blind_defeat_ref(self, ...) +end + +local MP_calculate_ref = MP.calculate +MP.calculate = function(self, context) + local original = MP_calculate_ref and MP_calculate_ref(self, context) or nil + local stacked = BR.calculate_boss_stack(context) + if type(original) == "table" and type(stacked) == "table" then + for key, value in pairs(stacked) do original[key] = value end + return original + end + return stacked or original +end + ------------------------------------------------------------------- -- Rare Tag purchase penalty -------------------------------------------------------------------

      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�aMCV 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 z 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

      6s`zyz)Z+H3U#I?fM(>3q-YuS)~-ndhP# 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 HLVW&TY^;!N literal 0 HcmV?d00001 diff --git a/assets/1x/j_lucky_cat_sandbox.png b/assets/1x/j_lucky_cat_sandbox.png new file mode 100644 index 0000000000000000000000000000000000000000..de4c375a388a61bfab056373513fe1dccae5d882 GIT binary patch literal 12501 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 VQ6$fhMOOd-002ovPDHLkV1fc7_c8zg literal 0 HcmV?d00001 diff --git a/assets/1x/j_mail_sandbox.png b/assets/1x/j_mail_sandbox.png new file mode 100644 index 0000000000000000000000000000000000000000..9574e22f5c37380472a323dc2f8dfb8aa7f6ee4c GIT binary patch literal 9128 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 NATOgLT_b54@?X`xn{@yH literal 0 HcmV?d00001 diff --git a/assets/1x/j_pacifist.png b/assets/1x/j_pacifist.png new file mode 100644 index 0000000000000000000000000000000000000000..14b018ef045c7b55e46581dd698b713a45ef33a1 GIT binary patch literal 1985 zcmV;y2R`_TP)Px+VM#X{_-|siSH#3_Bnn;NOz;DlT0Dz8oJ2r}&rH0n1fpo;%V;jXy0KoC1 zeb~huD{T}vaqLKMV`{boSXf*p!-xSu3sANg0Ff33sI;H-XaRtY;$|u8!Vt%f^tz#? zrO}ny$uz}Lu*>@tU~qV(YWx1|jZiAH)9|z$UYIE1DbD@b8&#GP6{`W7F-J*L90gKw z28Tx?9dCeUKvp6ZhYh?WP?Ul(;F0G~SU{=wNm zYoY@H@Z*_@s$<(j-$<`3yH)x6dSblFB8Wib4hJ7UsX5ki^Bw@PNOvARci(^Y#R1>< zH$_Vv8@&Pv(|z_Sw&!91fR=N$YcokCVtXzI{Q9-K{qrAdbrUGmJjd0Du!exo_8Re~GD2-Fn#Fx$)zJX?7~hcw5euTv4ioK(%Nh;Z)_?#B*wf-kXZT zJ~B{4*7{$RZ+foemMLqz=p1^b^1^?9ha#{G$K-;SJ7zJe0 zPls>7f%Js%yks(oY&PruC6h_vdAvKB3M4|+CZn!g$7;M>iftg9)94B!LdUgeg22QD zL(Pz5qeE^W77;YC#zuz#A6>d`XwV)B^h<1XsB$wd`!$8Vo-J1gb`098KDp_{ucEH2~t(Y{#d1MIx@tW91Kx|a-*FnqbXn7WlUadf6%SV$m1 z>_UEGjH*lbGwj=tsTrW`T7;Jn`FtJ#U}F@=WLb@sm0dJ$Bb%*cp}?Ha=iNrjV9${S zbe46;ai?u~{EUMKwj6gri>aVjJUEb^z=hBIaC!8sr$Cpl-^Q(1IpsNYU&7YBRw!c>7_m^qB7bbTIA81GyD%HRA*Q+S4XeW2Z4b{Qy9%5VSo${Qy&Ar?txC z?=5mKaxGnpvbLI(t(e!$=DOoxU*~?Ua`$!a_p}W5ezFh8&uFG^ad@jCXkJPO)_Oks z@1Lqy6RVNkS7be+aUB^}VvemDND?L}qA6oP!8x!vyfEynrWanWrR#chU%pet_BUMwQoj-A9G)V$eY1c)62q7wZ?V@`Jj2sNa2< zxOhs~0Mm6kqVrAH`>>Ae-LumYg$T9Y&L0D#GvdDo?! z!V1nmoE2WLbH7sVO`!GEfhYnW45fm2vP`qD{E&deiy>7=_)1eN7wHM}r@ z`EuRBZlx=bh=2dChOX7L@VHKSgbiT;OEE_z5Sco?QiIrrU48iqU8`wy zt){WmmcontUs!5Ox%;lZeC3|YU(c6Mh=k$MO#-bClg9e?x!bLY4rShRE1tztTgu(u zy*!Qgy<_h7p{)!q6vgvdR4yxyjxajVFsaqvinkz918fjP7@cWg!g^P(D-drrB9_`x zxD~ISHxDWd)sfwn5lWup$AWe*PglK)uqlj=K%pgpI=vXd#+vuNV@iQoY{eKEp=QV= zP$~DO=2O2=Oyba1rX~mj6@l1*%wA7rHf(vnEm-s2`eaG;iWF*uA>Q|n0b3bt&Hw4{ zqwDJRovXS{&B*4G?xr#TP!*gHZI$<($#h#2f}iWxNeZpzIewr@-c7B$`_5##0fb{A zI?HM5HXZDRsMiS7ZA{8;xHv?;;)uyVgpAbxvJl0YhU7Ur9UV*EF>cieyabA@<>=59 zM?qx7@$*HO$cV$!49EAH|@b5Q(}# z)PB-~4al*Mcsu)(B9Vjrt(hhs{0|+^Qg)`gt^NQ201jnXNoGw=04e|g00;m800000 T0Mb*F00000NkvXXu0mjfT8GC> literal 0 HcmV?d00001 diff --git a/assets/1x/j_penny_pincher.png b/assets/1x/j_penny_pincher.png new file mode 100644 index 0000000000000000000000000000000000000000..0263af27f1ec461a3768622b23008cb9e2fd7421 GIT binary patch literal 2295 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 literal 0 HcmV?d00001 diff --git a/assets/1x/j_pizza.png b/assets/1x/j_pizza.png new file mode 100644 index 0000000000000000000000000000000000000000..58f4e985146f90feef6c2b74cf5c8880892c6d5d GIT binary patch literal 3398 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�aMCV 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 z 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