47 lines
1.2 KiB
TOML
47 lines
1.2 KiB
TOML
[manifest]
|
|
version = "1.0.0"
|
|
dump_lua = true
|
|
priority = -1
|
|
|
|
# Lapio softlock mechanic
|
|
[[patches]]
|
|
[patches.pattern]
|
|
target = "functions/common_events.lua"
|
|
pattern = "if (not v.config.softlock or G.GAME.hands[v.config.hand_type].played > 0) then"
|
|
position = "at"
|
|
payload = '''
|
|
local softlocked = true
|
|
if not v.config.softlock then
|
|
softlocked = false
|
|
elseif v.config.hand_type then
|
|
softlocked = G.GAME.hands[v.config.hand_type].played == 0
|
|
elseif v.config.hand_types then
|
|
for _, h in pairs(v.config.hand_types) do
|
|
if (G.GAME.hands[h].played or 0) > 0 then
|
|
softlocked = false
|
|
end
|
|
end
|
|
end
|
|
if not softlocked then
|
|
'''
|
|
match_indent = true
|
|
|
|
# context.cry_observatory
|
|
[[patches]]
|
|
[patches.pattern]
|
|
target = '=[SMODS _ "src/game_object.lua"]'
|
|
pattern = '''if
|
|
context.other_consumeable and'''
|
|
position = "at"
|
|
payload = '''
|
|
if context.other_consumeable then
|
|
local ctx = SMODS.shallow_copy(context)
|
|
ctx.cry_observatory = card
|
|
ctx.other_consumeable = nil
|
|
local ret = context.other_consumeable:calculate_joker(ctx)
|
|
if ret then SMODS.calculate_effect(ret, context.other_consumeable) end
|
|
elseif context.other_consumeable and
|
|
not ret and
|
|
'''
|
|
match_indent = true
|