From c4d501001455e7b8212c76d4eb8fea912c5db262 Mon Sep 17 00:00:00 2001 From: Emik Date: Tue, 6 Oct 2026 20:52:42 +0200 Subject: [PATCH] Fix, improve, and rebalance Omega deck and cards --- manifest.json | 2 +- src/back.lua | 13 ++++++++++++- src/challenge.lua | 8 +++----- src/omega.lua | 45 ++++++++++++++++++++++++++------------------- 4 files changed, 42 insertions(+), 26 deletions(-) diff --git a/manifest.json b/manifest.json index 82889fa..4892a99 100644 --- a/manifest.json +++ b/manifest.json @@ -16,5 +16,5 @@ "Bakery (>=3.0.0~*)" ], "conflicts": [], - "version": "1.12.10" + "version": "1.12.11" } \ No newline at end of file diff --git a/src/back.lua b/src/back.lua index 6843b6a..af85369 100644 --- a/src/back.lua +++ b/src/back.lua @@ -736,7 +736,18 @@ back { end end, apply = function(_) - G.GAME.banned_keys.j_Bakery_Lua = true + for _, v in pairs({ + "tag_charm", + "tag_meteor", + "tag_ethereal", + "j_Bakery_Lua", + "c_jane_token_tag_charm", + "c_jane_token_tag_meteor", + "c_jane_token_tag_ethereal", + }) do + G.GAME.banned_keys[v] = true + end + G.GAME.modifiers.omega_replacement = (not _G["MP"] or not _G["MP"]["LOBBY"]) and 1 / 301 or 0 end, alt_calculate = function(_, ...) diff --git a/src/challenge.lua b/src/challenge.lua index d3b399d..1792fb3 100644 --- a/src/challenge.lua +++ b/src/challenge.lua @@ -104,8 +104,8 @@ SMODS.Challenge { G.GAME.modifiers.jane_spacious = true G.GAME.used_vouchers.v_omen_globe = true G.GAME.modifiers.jane_spacious_omega = true - G.GAME.modifiers.omega_replacement = 1 / 301 G.GAME.starting_voucher_count = (G.GAME.starting_voucher_count or 0) + 1 + G.GAME.modifiers.omega_replacement = (not _G["MP"] or not _G["MP"]["LOBBY"]) and 1 / 301 or 0 Jane.q(function() Jane.add_rain_world_joker() @@ -117,14 +117,12 @@ SMODS.Challenge { save_run() end) end, - calculate = function(_, context) + calculate = function(card, context) + G.P_CENTERS.b_jane_omega:calculate(card, context) Jane.rebalance_orrery() G.GAME.mysterious = nil if Jane.is_end_of_ante(context) then - G.GAME.modifiers.omega_replacement = G.GAME.modifiers.omega_replacement ^ 0.765 - Jane.q(Jane.display_omega_odds) - Jane.q(function() Jane.empowered() end) diff --git a/src/omega.lua b/src/omega.lua index 113ad0b..0d54128 100644 --- a/src/omega.lua +++ b/src/omega.lua @@ -247,7 +247,7 @@ SMODS.Consumable { can_use = function() return Jane.can_use() and G.jokers.highlighted[1] and - #G.jokers.cards + 3 <= G.jokers.config.card_limit + #G.jokers.cards < G.jokers.config.card_limit end, use = function(self, card, area, copier) self:bulk_use(card, area, copier, 1) @@ -259,7 +259,9 @@ SMODS.Consumable { return end - for _ = 1, 3 * number do + local count = math.min(number * 3, G.jokers.config.card_limit - #G.jokers.cards) + + for _ = 1, count do SMODS.copy_card(joker):start_materialize() end end, @@ -329,7 +331,7 @@ SMODS.Consumable { self:bulk_use(card, area, copier, 1) end, bulk_use = function(_, _, _, _, number) - for _ = 1, 52 * number do + for _ = 1, number * 52 do SMODS.copy_card(G.hand.highlighted[1]):start_materialize() end end, @@ -368,7 +370,9 @@ for _, v in ipairs({ end for _, card in pairs(G.playing_cards) do - card:set_seal(v.s, true, true) + if card.area ~= G.hand then + card:set_seal(v.s, true, true) + end end end, } @@ -632,11 +636,11 @@ SMODS.Consumable { local rank = G.hand.highlighted[1].base.value - for _, c in pairs(G.playing_cards) do - Jane.q(function() + Jane.q(function() + for _, c in pairs(G.playing_cards) do assert(SMODS.change_base(c, nil, rank)) - end) - end + end + end) for i = 1, #G.hand.cards do local percent = 0.85 + (i - 0.999) / (#G.hand.cards - 0.998) * 0.3 @@ -691,11 +695,11 @@ SMODS.Consumable { local suit = G.hand.highlighted[1].base.suit - for _, c in pairs(G.playing_cards) do - Jane.q(function() + Jane.q(function() + for _, c in pairs(G.playing_cards) do assert(SMODS.change_base(c, suit)) - end) - end + end + end) for i = 1, #G.hand.cards do local percent = 0.85 + (i - 0.999) / (#G.hand.cards - 0.998) * 0.3 @@ -741,7 +745,7 @@ SMODS.Consumable { loc_txt = { name = "Wraith {C:dark_edition}Omega", text = { - "Fill all {C:attention}Joker Slots", + "Fill empty {C:attention}Joker Slots", "with random {C:red}Rare {C:attention}Jokers", "{C:inactive}(Adds a temporary Showman)", }, @@ -756,7 +760,7 @@ SMODS.Consumable { return Jane.can_use() and #G.jokers.cards < G.jokers.config.card_limit end, use = function() - create_many("Joker", #G.jokers.cards - G.jokers.config.card_limit, "Rare") + create_many("Joker", G.jokers.config.card_limit - #G.jokers.cards, "Rare") end, } @@ -1029,13 +1033,16 @@ SMODS.Consumable { hidden = true, atlas = "janeomegatarots", can_use = function() - return Jane.can_use() and #G.consumeables.cards < G.consumeables.config.card_limit + return Jane.can_use() and #G.consumeables.cards <= G.consumeables.config.card_limit end, use = function() - for _ = 1, 2 do - if #G.consumeables.cards < G.consumeables.config.card_limit then - Jane.q(Jane.omega) - end + local count = math.min(G.consumeables.config.card_limit - #G.consumeables.cards - 1, 2) + + for _ = 1, count do + Jane.q(function() + play_sound("jane_draw") + Jane.omega() + end, 0.4) end end, }