Make RNG consistent in multiplayer
This commit is contained in:
parent
8faee842a5
commit
45f5236306
3 changed files with 56 additions and 22 deletions
|
|
@ -16,5 +16,5 @@
|
|||
"Bakery (>=3.0.0~*)"
|
||||
],
|
||||
"conflicts": [],
|
||||
"version": "1.12.8"
|
||||
"version": "1.12.9"
|
||||
}
|
||||
42
src/back.lua
42
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,
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue