diff --git a/manifest.json b/manifest.json index d58762c..24e6356 100644 --- a/manifest.json +++ b/manifest.json @@ -16,5 +16,5 @@ "Bakery (>=3.0.0~*)" ], "conflicts": [], - "version": "1.12.8" + "version": "1.12.9" } \ No newline at end of file diff --git a/src/back.lua b/src/back.lua index 525d804..73d848a 100644 --- a/src/back.lua +++ b/src/back.lua @@ -735,7 +735,7 @@ back { end, apply = function(_) G.GAME.banned_keys.j_Bakery_Lua = true - G.GAME.modifiers.omega_replacement = 1 / 301 + G.GAME.modifiers.omega_replacement = (not _G["MP"] or not _G["MP"]["LOBBY"]) and 1 / 301 or nil end, alt_calculate = function(_, ...) for _, v in pairs(G.P_CENTERS) do @@ -751,10 +751,44 @@ back { G.hand.config.card_limit = math.max(G.hand.config.card_limit or 12, 12) end, calculate = function(_, _, context) - if Jane.is_end_of_ante(context) then - G.GAME.modifiers.omega_replacement = G.GAME.modifiers.omega_replacement ^ 0.9 - Jane.q(Jane.display_omega_odds) + if not _G["MP"] or not _G["MP"]["LOBBY"] then + if Jane.is_end_of_ante(context) then + G.GAME.modifiers.omega_replacement = G.GAME.modifiers.omega_replacement ^ 0.95 + Jane.q(Jane.display_omega_odds) + end + + return end + + if not context.end_of_round or + context.individual or + context.repetition or + context.blueprint then + return + end + + local blind = ({ + ["Small Blind"] = 8, + ["Big Blind"] = 5, + })[G.GAME.blind.name] or 2 + + local ante = G.GAME.round_resets.ante + local chance = 1 - math.pow(300 / 301, ante * 9 - blind) + local key = "omega_mp_" .. number_format(ante) .. "_" .. number_format(blind) + + Jane.q(function() + G.GAME.modifiers.omega_replacement = chance + Jane.display_omega_odds() + G.GAME.modifiers.omega_replacement = 0 + end) + + if pseudorandom(key) >= chance then + return + end + + Jane.q(function() + Jane.omega(key) + end) end, } diff --git a/src/omega.lua b/src/omega.lua index f9086d1..113ad0b 100644 --- a/src/omega.lua +++ b/src/omega.lua @@ -996,6 +996,22 @@ SMODS.Consumable { end, } +function Jane.omega(key) + local banned, soul, black_hole = + G.GAME.banned_keys, "c_jane_soul_omega", "c_jane_black_hole_omega" + + local orig_soul, orig_black_hole = banned[soul], banned[black_hole] + banned[soul], banned[black_hole] = true, true + + local omega_card = SMODS.add_card({ + set = "jane_omegaconsumable", + key = pseudorandom_element(G.P_CENTER_POOLS.jane_omegaconsumable, pseudoseed(key or "omega")).key, + }) + + banned[soul], banned[black_hole] = orig_soul, orig_black_hole + return omega_card +end + SMODS.Consumable { key = "emperor_omega", set = "jane_omegaconsumable", @@ -1018,23 +1034,7 @@ SMODS.Consumable { use = function() for _ = 1, 2 do if #G.consumeables.cards < G.consumeables.config.card_limit then - local banned, soul, black_hole = - G.GAME.banned_keys, "c_jane_soul_omega", "c_jane_black_hole_omega" - - local orig_soul, orig_black_hole = banned[soul], banned[black_hole] - banned[soul], banned[black_hole] = true, true - - SMODS.add_card( - { - set = "jane_omegaconsumable", - key = pseudorandom_element( - G.P_CENTER_POOLS.jane_omegaconsumable, - pseudoseed("emperor_omega") - ).key, - } - ) - - banned[soul], banned[black_hole] = orig_soul, orig_black_hole + Jane.q(Jane.omega) end end end,