Compare commits

..

No commits in common. "main" and "1.0.4" have entirely different histories.
main ... 1.0.4

2 changed files with 67 additions and 121 deletions

View file

@ -20,10 +20,70 @@ payload = """k_walledgarden = "Walled Garden",
k_walledgarden_description = "Personal ruleset for modded Balatro.","""
match_indent = true
[[patches]]
[patches.copy]
target = '=[SMODS Multiplayer "rulesets/experimental/experimental.lua"]'
position = "prepend"
payload = """
sendInfoMessage("Attempting to register the Walled Garden ruleset...", "WalledGarden");
-- for k, v in pairs(G.P_CENTERS) do
-- local _ = not k:find "experimental" and
-- not k:find "sandbox" and
-- k:find "j_" and
-- ({jane = true, Multiplayer = true})[v.mod.id] and
-- table.insert(banned.jokers, k)
-- end
(function()
local banned = {
tags = {"tag_Bakery_DownTag"},
enhancements = {"m_Bakery_TimeWalk"},
consumables = {
"c_mp_asteroid",
"c_Bakery_Scribe",
"c_bongcloud_the_knight",
"c_Roland_void",
},
jokers = {
"j_chicot",
"j_luchador",
"j_jane_escapey",
"j_jane_survivor",
"j_mp_conjoined_joker",
"j_mp_skip_off",
"j_jane_artificer",
"j_mp_pacifist",
"j_mp_lets_go_gambling",
"j_jane_hunter",
"j_mp_pizza",
"j_jane_saint",
"j_jane_rivulet",
"j_mp_taxes",
"j_jane_gourmand",
"j_mp_penny_pincher",
"j_mp_defensive_joker",
"j_mp_speedrun",
"j_ExtraCredit_forklift",
"j_ExtraCredit_permanentmarker",
},
}
local ruleset = {key = "walledgarden", layers = {"standard"}}
for k, v in pairs(banned) do
ruleset["banned_" .. k] = v
end
MP.Ruleset(ruleset):inject()
sendInfoMessage("Successfully registered \\"Walled Garden\\" as a ruleset under the Experimental tab!", "WalledGarden")
end)()
"""
match_indent = true
[[patches]]
[patches.pattern]
target = '=[SMODS Multiplayer "networking/action_handlers.lua"]'
pattern = "local parsedAction = json.decode(msg)"
pattern = 'local parsedAction = json.decode(msg)'
position = "at"
payload = """local garden, parsedAction = pcall(function()
return json.decode(msg)
@ -43,125 +103,11 @@ match_indent = true
[[patches]]
[patches.pattern]
target = '=[SMODS Multiplayer "networking/action_handlers.lua"]'
pattern = "MP.GAME.end_pvp = true"
pattern = 'MP.GAME.end_pvp = true'
position = "before"
payload = """(function()
return MP.LOBBY.config.ruleset == "ruleset_mp_walledgarden" and
ease_dollars(
MP.LOBBY.deck.back == "Green Deck" and
(G.GAME.round_resets.hands - 1) * 2 + G.GAME.round_resets.discards or
G.GAME.round_resets.hands - 1
)
end)()
"""
match_indent = true
[[patches]]
[patches.copy]
target = '=[SMODS Multiplayer "rulesets/experimental/experimental.lua"]'
position = "prepend"
payload = """sendInfoMessage("Attempting to register the Walled Garden ruleset...", "WalledGarden");
(function()
local banned = {
tags = {
-- Disabling boss blinds doesn't do anything in PvP blinds.
"tag_Bakery_DownTag",
},
enhancements = {
-- Banning this does not prevent the enhancement from being obtainable through the spectral,
-- this simply prevents the enhancement from showing up in Booster Packs or Illusion.
-- This made standard booster packs a must-open. and reduced the complexity of choosing cards.
"m_Bakery_TimeWalk",
},
vouchers = {
-- Strictly a downside when ante number does not exist.
"v_hieroglyph",
"v_petroglyph",
-- Rerolling boss blinds doesn't do anything in PvP blinds.
"v_directors_cut",
"v_retcon",
},
consumables = {
-- Banned in favor of `c_mp_ouija_standard`.
"c_ouija",
-- Allows you to duplicate your strongest joker,
-- potentially even multiple times, for one hand.
-- Skipping on a Scribe almost guarantees a lost life.
"c_Bakery_Scribe",
-- Doesn't apply any stickers, presumably because of some Multiplayer bug.
"c_bongcloud_the_knight",
-- Immediately converges gameplay to Flush Five.
"c_Roland_void",
-- Why add more variance on something that's already volatile?
"c_mp_ectoplasm_sandbox",
-- There wasn't anything wrong with regular Wraith to begin with.
-- Don't fix what ain't broke!
"c_mp_wraith",
-- Almost always better than any other planet card.
"c_mp_asteroid",
},
jokers = {
-- Strictly a downside when ante number does not exist.
-- Despite being a charm, it can be banned as though it was a joker.
"BakeryCharm_Bakery_Cogwheel",
-- See `j_mr_bones`
"j_Bakery_Wearywolf",
-- See `j_idol`.
"j_Roland_idle",
-- Normally useless in singleplayer, this is a must-pick to get 4X over your opponent.
"j_Roland_mrsbones",
-- Banned because of the existence of `j_Roland_idle` and `j_Bakery_Wherewolf`.
-- All three of them are fine on their own, but having all three of them,
-- means that you are more than likely to stumble across one of the three,
-- especially when all of them are of Uncommon rarity.
"j_idol",
-- Disabling boss blinds doesn't do anything in PvP blinds.
"j_chicot",
-- See `j_chicot`.
"j_luchador",
-- The first ante is the only time this would trigger.
"j_matador",
-- Preventing Death doesn't do anything in PvP blinds.
"j_mr_bones",
-- Trivializes Spacious deck because it gives a free Joker slot and is a Common.
"j_ExtraCredit_forklift",
-- Cards do not get debuffed in PvP blinds.
"j_ExtraCredit_permanentmarker",
-- This heavily encourages high card spam to capitalize on the held in hand plays.
"j_jane_survivor",
-- Getting Ankh 3 times within 9 antes is too speculative.
"j_jane_saint",
-- We don't like multiplayer jokers in this household!
"j_mp_conjoined_joker",
"j_mp_skip_off",
"j_mp_pacifist",
"j_mp_lets_go_gambling",
"j_mp_pizza",
"j_mp_taxes",
"j_mp_penny_pincher",
"j_mp_defensive_joker",
"j_mp_speedrun",
},
}
local ruleset = {
key = "walledgarden",
layers = {"standard"},
multiplayer_content = true,
reworked_consumables = {"c_mp_ouija_standard"},
}
for k, v in pairs(banned) do
ruleset["banned_" .. k] = v
end
MP.Ruleset(ruleset):inject()
sendInfoMessage(
"Successfully registered Walled Garden as a ruleset under the Experimental tab!",
"WalledGarden"
)
end)()
payload = """G.GAME.current_round.hands_left =
MP.LOBBY.config.ruleset == 'ruleset_mp_walledgarden' and
G.GAME.round_resets.hands - 1 or
G.GAME.current_round.hands_left
"""
match_indent = true

View file

@ -1,6 +1,6 @@
{
"priority": 10000001,
"version": "1.0.18",
"version": "1.0.4",
"id": "WalledGarden",
"name": "WalledGarden",
"icon_path": "icon.png",