309 lines
8.5 KiB
TOML
309 lines
8.5 KiB
TOML
[manifest]
|
|
version = "1.0.0"
|
|
dump_lua = true
|
|
priority = -10
|
|
|
|
[[patches]]
|
|
[patches.regex]
|
|
target = "functions/state_events.lua"
|
|
pattern = "^(.*)hand_chips\\s*\\*\\s*mult(.*)$"
|
|
position = "at"
|
|
payload = '''$1 SMODS.calculate_round_score() $2'''
|
|
match_indent = true
|
|
|
|
[[patches]]
|
|
[patches.pattern]
|
|
target = "functions/misc_functions.lua"
|
|
pattern = "G.ARGS.score_intensity.earned_score = G.GAME.current_round.current_hand.chips*G.GAME.current_round.current_hand.mult"
|
|
position = "at"
|
|
payload = '''G.ARGS.score_intensity.earned_score = SMODS.calculate_round_score(true)'''
|
|
match_indent = true
|
|
|
|
[[patches]]
|
|
[patches.pattern]
|
|
target = "functions/UI_definitions.lua"
|
|
pattern = '''contents.hand ='''
|
|
position = "before"
|
|
payload = '''--[['''
|
|
match_indent = false
|
|
|
|
# Replace contexts.hand
|
|
[[patches]]
|
|
[patches.pattern]
|
|
target = 'functions/UI_definitions.lua'
|
|
match_indent = true
|
|
position = 'before'
|
|
pattern = '''
|
|
contents.dollars_chips = {n=G.UIT.R, config={align = "cm",r=0.1, padding = 0,colour = G.C.DYN_UI.BOSS_MAIN, emboss = 0.05, id = 'row_dollars_chips'}, nodes={
|
|
'''
|
|
payload = '''
|
|
--]]
|
|
contents.hand = SMODS.GUI.hand_score_display_ui(scale)
|
|
'''
|
|
|
|
# Add operator set up/loading
|
|
[[patches]]
|
|
[patches.pattern]
|
|
target = 'game.lua'
|
|
match_indent = true
|
|
position = 'after'
|
|
pattern = '''
|
|
self.GAME.selected_back_key = selected_back
|
|
'''
|
|
payload = '''
|
|
|
|
if saveTable then
|
|
self.GAME.current_scoring_calculation = SMODS.Scoring_Calculations[saveTable.SCORING_CALC.key]:load({
|
|
config = saveTable.SCORING_CALC.config
|
|
})
|
|
else
|
|
self.GAME.current_scoring_calculation = SMODS.Scoring_Calculations['multiply']:new()
|
|
end
|
|
'''
|
|
|
|
# Operator saving
|
|
[[patches]]
|
|
[patches.pattern]
|
|
target = 'functions/misc_functions.lua'
|
|
match_indent = true
|
|
position = 'after'
|
|
pattern = '''
|
|
BLIND = G.GAME.blind:save(),
|
|
'''
|
|
payload = '''
|
|
SCORING_CALC = G.GAME.current_scoring_calculation:save(),
|
|
'''
|
|
|
|
# UIElement remove functions
|
|
[[patches]]
|
|
[patches.pattern]
|
|
target = 'engine/ui.lua'
|
|
match_indent = true
|
|
position = 'before'
|
|
pattern = '''
|
|
if self == G.CONTROLLER.text_input_hook then
|
|
'''
|
|
payload = '''
|
|
if self.config and self.config.func then
|
|
self.config.func = nil
|
|
end
|
|
|
|
'''
|
|
|
|
# Add Scoring_Parameters to update_hand_text
|
|
[[patches]]
|
|
[patches.pattern]
|
|
target = 'functions/common_events.lua'
|
|
match_indent = true
|
|
position = 'before'
|
|
pattern = '''
|
|
if vals.handname and G.GAME.current_round.current_hand.handname ~= vals.handname then
|
|
'''
|
|
payload = '''
|
|
for name, parameter in pairs(SMODS.Scoring_Parameters) do
|
|
if vals[name] and G.GAME.current_round.current_hand[name] ~= vals[name] then
|
|
local delta = (type(vals[name]) == 'number' and type(G.GAME.current_round.current_hand[name]) == 'number') and (vals[name] - G.GAME.current_round.current_hand[name]) or 0
|
|
if delta < 0 then delta = ''..delta; col = G.C.RED
|
|
elseif delta > 0 then delta = '+'..delta
|
|
else delta = ''..delta
|
|
end
|
|
if type(vals[name]) == 'string' then delta = vals[name] end
|
|
G.GAME.current_round.current_hand[name] = vals[name]
|
|
G.hand_text_area[name] = G.hand_text_area[name] or G.HUD:get_UIE_by_ID('hand_'..name..'_area') or nil
|
|
if G.hand_text_area[name] then
|
|
G.hand_text_area[name]:update(0)
|
|
if vals.StatusText then
|
|
attention_text({
|
|
text =delta,
|
|
scale = 0.8,
|
|
hold = 1,
|
|
cover = G.hand_text_area[name].parent,
|
|
cover_colour = mix_colours(parameter.colour, col, 0.1),
|
|
emboss = 0.05,
|
|
align = 'cm',
|
|
cover_align = 'cm'
|
|
})
|
|
end
|
|
end
|
|
end
|
|
end
|
|
'''
|
|
|
|
# Reset other values
|
|
[[patches]]
|
|
[patches.pattern]
|
|
target = 'cardarea.lua'
|
|
match_indent = true
|
|
position = 'after'
|
|
pattern = '''
|
|
update_hand_text({immediate = true, nopulse = true, delay = 0}, {mult = 0, chips = 0, level = '', handname = ''})
|
|
'''
|
|
payload = '''
|
|
for name, parameter in pairs(SMODS.Scoring_Parameters) do
|
|
update_hand_text({immediate = true, nopulse = true, delay = 0}, {[name] = parameter.default_value})
|
|
end
|
|
'''
|
|
|
|
# Reset display after hand played
|
|
[[patches]]
|
|
[patches.pattern]
|
|
target = 'functions/state_events.lua'
|
|
match_indent = true
|
|
position = 'before'
|
|
pattern = '''
|
|
check_and_set_high_score('hand', hand_chips*mult)
|
|
'''
|
|
payload = '''
|
|
for name, parameter in pairs(SMODS.Scoring_Parameters) do
|
|
update_hand_text({delay = 0}, {[name] = parameter.default_value})
|
|
end
|
|
'''
|
|
|
|
# Set based on hand selected
|
|
[[patches]]
|
|
[patches.pattern]
|
|
target = 'cardarea.lua'
|
|
match_indent = true
|
|
position = 'before'
|
|
pattern = '''
|
|
update_hand_text({immediate = true, nopulse = nil, delay = 0}, {handname=disp_text, level=G.GAME.hands[text].level, mult = G.GAME.hands[text].mult, chips = G.GAME.hands[text].chips})
|
|
'''
|
|
payload = '''
|
|
for name, parameter in pairs(SMODS.Scoring_Parameters) do
|
|
parameter.current = G.GAME.hands[text][name] or parameter.default_value
|
|
update_hand_text({immediate = true, nopulse = nil, delay = 0}, {[name] = parameter.current})
|
|
end
|
|
'''
|
|
|
|
# Reset values after hand played
|
|
[[patches]]
|
|
[patches.pattern]
|
|
target = 'functions/state_events.lua'
|
|
match_indent = false
|
|
position = 'after'
|
|
pattern = '''
|
|
func = (function() G.GAME.current_round.current_hand.handname = '';return true end)
|
|
}))
|
|
delay(0.3)
|
|
'''
|
|
payload = '''
|
|
SMODS.last_hand_oneshot = SMODS.calculate_round_score() > G.GAME.blind.chips
|
|
G.E_MANAGER:add_event(Event({
|
|
trigger = 'immediate',
|
|
func = (function()
|
|
for name, parameter in pairs(SMODS.Scoring_Parameters) do
|
|
parameter.current = parameter.default_value
|
|
end
|
|
return true
|
|
end)
|
|
}))
|
|
|
|
'''
|
|
|
|
# Level Up Hand uses scoring parameters
|
|
[[patches]]
|
|
[patches.pattern]
|
|
target = 'functions/common_events.lua'
|
|
match_indent = true
|
|
position = 'at'
|
|
pattern = '''
|
|
G.GAME.hands[hand].mult = math.max(G.GAME.hands[hand].s_mult + G.GAME.hands[hand].l_mult*(G.GAME.hands[hand].level - 1), 1)
|
|
G.GAME.hands[hand].chips = math.max(G.GAME.hands[hand].s_chips + G.GAME.hands[hand].l_chips*(G.GAME.hands[hand].level - 1), 0)
|
|
'''
|
|
payload = '''
|
|
for name, parameter in pairs(SMODS.Scoring_Parameters) do
|
|
if G.GAME.hands[hand][name] then parameter:level_up_hand(amount, G.GAME.hands[hand]) end
|
|
end
|
|
'''
|
|
|
|
# Face down hands
|
|
[[patches]]
|
|
[patches.pattern]
|
|
target = 'cardarea.lua'
|
|
match_indent = true
|
|
position = 'after'
|
|
pattern = '''
|
|
update_hand_text({immediate = true, nopulse = nil, delay = 0}, {handname='????', level='?', mult = '?', chips = '?'})
|
|
'''
|
|
payload = '''
|
|
for name, parameter in pairs(SMODS.Scoring_Parameters) do
|
|
update_hand_text({immediate = true, nopulse = nil, delay = 0}, {[name] = '?'})
|
|
end
|
|
'''
|
|
|
|
# Handle flame_handler
|
|
[[patches]]
|
|
[patches.pattern]
|
|
target = 'functions/button_callbacks.lua'
|
|
match_indent = true
|
|
position = 'at'
|
|
pattern = '''
|
|
G.C.UI_CHIPLICK = G.C.UI_CHIPLICK or {1, 1, 1, 1}
|
|
G.C.UI_MULTLICK = G.C.UI_MULTLICK or {1, 1, 1, 1}
|
|
for i=1, 3 do
|
|
G.C.UI_CHIPLICK[i] = math.min(math.max(((G.C.UI_CHIPS[i]*0.5+G.C.YELLOW[i]*0.5) + 0.1)^2, 0.1), 1)
|
|
G.C.UI_MULTLICK[i] = math.min(math.max(((G.C.UI_MULT[i]*0.5+G.C.YELLOW[i]*0.5) + 0.1)^2, 0.1), 1)
|
|
end
|
|
|
|
G.ARGS.flame_handler = G.ARGS.flame_handler or {
|
|
chips = {
|
|
id = 'flame_chips',
|
|
arg_tab = 'chip_flames',
|
|
colour = G.C.UI_CHIPS,
|
|
accent = G.C.UI_CHIPLICK
|
|
},
|
|
mult = {
|
|
id = 'flame_mult',
|
|
arg_tab = 'mult_flames',
|
|
colour = G.C.UI_MULT,
|
|
accent = G.C.UI_MULTLICK
|
|
}
|
|
}
|
|
'''
|
|
payload = '''
|
|
G.ARGS.flame_handler = G.ARGS.flame_handler or {}
|
|
|
|
for key, parameter in pairs(SMODS.Scoring_Parameters) do
|
|
for i=1, 3 do
|
|
parameter.lick[i] = math.min(math.max(((parameter.colour[i]*0.5+G.C.YELLOW[i]*0.5) + 0.1)^2, 0.1), 1)
|
|
end
|
|
G.ARGS.flame_handler[key] = G.ARGS.flame_handler[key] or parameter:flame_handler()
|
|
end
|
|
'''
|
|
# pt2
|
|
[[patches]]
|
|
[patches.pattern]
|
|
target = 'functions/button_callbacks.lua'
|
|
match_indent = true
|
|
position = 'at'
|
|
pattern = '''
|
|
e.config.object = Sprite(0, 0, 2.5, 2.5, G.ASSET_ATLAS["ui_1"], {x = 2, y = 0})
|
|
'''
|
|
payload = '''
|
|
e.config.object = Sprite(0, 0, e.config._w, e.config._h, G.ASSET_ATLAS["ui_1"], {x = 2, y = 0})
|
|
'''
|
|
|
|
# Patch mod_chips/mod_mult
|
|
[[patches]]
|
|
[patches.pattern]
|
|
target = 'functions/misc_functions.lua'
|
|
match_indent = true
|
|
position = 'before'
|
|
pattern = '''
|
|
return _mult
|
|
'''
|
|
payload = '''
|
|
SMODS.Scoring_Parameters.mult:modify(nil, _mult - (mult or 0))
|
|
'''
|
|
[[patches]]
|
|
[patches.pattern]
|
|
target = 'functions/misc_functions.lua'
|
|
match_indent = true
|
|
position = 'before'
|
|
pattern = '''
|
|
return _chips
|
|
'''
|
|
payload = '''
|
|
SMODS.Scoring_Parameters.chips:modify(nil, _chips - (hand_chips or 0))
|
|
'''
|