[manifest]
version = "1.0.0"
dump_lua = true
priority = 69


# Localization
[[patches]]
[patches.pattern]
target = "game.lua"
pattern = "boot_timer('prep stage', 'splash prep',1)"
position = "before"
payload = "Cartomancer.load_mod_file('internal/localization.lua', 'cartomancer.localization')"
match_indent = true

# Add tab button to settings menu
[[patches]]
[patches.pattern]
target = "functions/UI_definitions.lua"
match_indent = true
position = "before"
pattern = '''local t = create_UIBox_generic_options({back_func = 'options',contents = {create_tabs('''
payload = '''
local settings_icon = Cartomancer.add_settings_icon()
if settings_icon then
    tabs[#tabs+1] = {
    colour = G.C.MONEY,
    custom_button = {settings_icon},
    tab_definition_function = Cartomancer.config_tab,
    tab_definition_function_args = ''
  }
end
'''

# Use custom button
[[patches]]
[patches.pattern]
target = "functions/UI_definitions.lua"
match_indent = true
position = "at"
pattern = '''but_UI_label'''
payload = '''
args.ref_table and args.ref_table.custom_button or but_UI_label -- Cartomancer'''

# Use custom color
[[patches]]
[patches.pattern]
target = "functions/UI_definitions.lua"
match_indent = true
position = "at"
pattern = '''colour = args.colour,'''
payload = '''
colour = args.ref_table and args.ref_table.colour or args.colour, -- Cartomancer'''


# From steamodded for vertical tabs support.
# Fix UIElement.config.chosen being overriden if choice=true is set
# UIElement:click()
[[patches]]
[patches.pattern]
target = "engine/ui.lua"
match_indent = true
position = "after"
pattern = "if self.config.choice then"
payload = "    local chosen_temp = self.config.chosen"

[[patches]]
[patches.pattern]
target = "engine/ui.lua"
match_indent = true
position = "at"
pattern = "self.config.chosen = true"
payload = "self.config.chosen = chosen_temp or true"

[[patches]]
[patches.pattern]
target = "functions/UI_definitions.lua"
match_indent = true
position = "before"
pattern = '''{n=G.UIT.C, config={align = "cm", minh = args.h,r = 0.1, minw = 0.8, colour = args.colour,shadow = true}, nodes={'''
payload = "not args.hide_value and "

# Add dynamic label support to UIBox_button
[[patches]]
[patches.pattern]
target = "functions/UI_definitions.lua"
match_indent = true
position = "before"
pattern = "for k, v in ipairs(args.label) do"
payload = '''
if args.dynamic_label then
  but_UI_label = {}
  
  table.insert(but_UI_label, {n=G.UIT.R, config={align = "cm", padding = 0, minw = args.minw, maxw = args.maxw}, nodes={
    {n=G.UIT.T, config={ref_table = args.dynamic_label, ref_value = 'text', scale = args.scale, colour = args.text_colour, shadow = args.shadow, focus_args = button_pip and args.focus_args or nil, func = button_pip,}}
  }})
end
'''