diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..23a6289 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,171 @@ + +# see https://github.com/CppCXY/EmmyLuaCodeStyle +[*.lua] +# [basic] + +# optional space/tab +indent_style = space +# if indent_style is space, this is valid +indent_size = 4 +# if indent_style is tab, this is valid +tab_width = 4 +# none/single/double +quote_style = double + +continuation_indent = 4 +## extend option +# continuation_indent.before_block = 4 +# continuation_indent.in_expr = 4 +# continuation_indent.in_table = 4 + +# this mean utf8 length , if this is 'unset' then the line width is no longer checked +# this option decides when to chopdown the code +max_line_length = 120 + +# optional crlf/lf/cr/auto, if it is 'auto', in windows it is crlf other platforms are lf +# in neovim the value 'auto' is not a valid option, please use 'unset' +end_of_line = lf + +# none/ comma / semicolon / only_kv_colon +table_separator_style = none + +#optional keep/never/always/smart +trailing_table_separator = smart + +# keep/remove/remove_table_only/remove_string_only +call_arg_parentheses = keep + +detect_end_of_line = false + +# this will check text end with new line +insert_final_newline = true + +# [space] +space_around_table_field_list = false + +space_before_attribute = false + +space_before_function_open_parenthesis = false + +space_before_function_call_open_parenthesis = false + +space_before_closure_open_parenthesis = false + +# optional always/only_string/only_table/none +# or true/false +space_before_function_call_single_arg = always +## extend option +## always/keep/none +# space_before_function_call_single_arg.table = always +## always/keep/none +# space_before_function_call_single_arg.string = always + +space_before_open_square_bracket = false + +space_inside_function_call_parentheses = false + +space_inside_function_param_list_parentheses = false + +space_inside_square_brackets = false + +# like t[#t+1] = 1 +space_around_table_append_operator = false + +ignore_spaces_inside_function_call = false + +# detail number or 'keep' +space_before_inline_comment = 1 + +# convert '---' to '--- ' or '--' to '-- ' +space_after_comment_dash = false + +# [operator space] +space_around_math_operator = true +# space_around_math_operator.exponent = false + +space_after_comma = true + +space_after_comma_in_for_statement = true + +# true/false or none/always/no_space_asym +space_around_concat_operator = true + +space_around_logical_operator = true + +# true/false or none/always/no_space_asym +space_around_assign_operator = true + +# [align] + +align_call_args = false + +align_function_params = true + +# true/false or always +align_continuous_assign_statement = true + +align_continuous_rect_table_field = true + +align_continuous_line_space = 2 + +align_if_branch = false + +# option none / always / contain_curly/ +align_array_table = true + +align_continuous_similar_call_args = false + +align_continuous_inline_comment = true +# option none / always / only_call_stmt +align_chain_expr = none + +# [indent] + +never_indent_before_if_condition = false + +never_indent_comment_on_if_branch = false + +keep_indents_on_empty_lines = false + +allow_non_indented_comments = false +# [line space] + +# The following configuration supports four expressions +# keep +# fixed(n) +# min(n) +# max(n) +# for eg. min(2) + +line_space_after_if_statement = fixed(2) + +line_space_after_do_statement = fixed(2) + +line_space_after_while_statement = fixed(2) + +line_space_after_repeat_statement = fixed(2) + +line_space_after_for_statement = fixed(2) + +line_space_after_local_or_assign_statement = max(2) + +line_space_after_function_statement = fixed(2) + +line_space_after_expression_statement = max(2) + +line_space_after_comment = fixed(1) + +line_space_around_block = fixed(1) +# [line break] +break_all_list_when_line_exceed = false + +auto_collapse_lines = false + +break_before_braces = false + +# [preference] +ignore_space_after_colon = false + +remove_call_expression_list_finish_comma = true +# keep / always / same_line / replace_with_newline / never +end_statement_with_semicolon = replace_with_newline diff --git a/assets/1x/icon.png b/assets/1x/icon.png new file mode 100644 index 0000000..717c7d6 Binary files /dev/null and b/assets/1x/icon.png differ diff --git a/assets/2x/icon.png b/assets/2x/icon.png new file mode 100644 index 0000000..40737a3 Binary files /dev/null and b/assets/2x/icon.png differ diff --git a/lovely.toml b/lovely.toml new file mode 100644 index 0000000..7e1dc9d --- /dev/null +++ b/lovely.toml @@ -0,0 +1,81 @@ +[manifest] +version = "1.0.0" +dump_lua = true +priority = 0 + +[[patches]] +[patches.pattern] +target = '=[SMODS Multiplayer "ui/main_menu/play_button/ruleset_selection.lua"]' +pattern = '{ button_id = "experimental_ruleset_button", button_localize_key = "k_experimental_standard" },' +position = "before" +payload = '{ button_id = "walledgarden_ruleset_button", button_localize_key = "k_walledgarden" },' +match_indent = true + +[[patches]] +[patches.pattern] +target = '=[SMODS Multiplayer "localization/en-us.lua"]' +pattern = 'k_experimental_standard = "Experimental (Standard)",' +position = "before" +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"}, + consumables = {"c_Bakery_Scribe", "c_mp_asteroid"}, + vouchers = {"v_jane_token_voucher", "v_jane_token_voucher_plus"}, + jokers = { + "j_chicot", + "j_luchador", + "j_jane_escapey", + "j_jane_spearmaster", + "j_jane_survivor", + "j_jane_rot", + "j_jane_maxie", + "j_jane_honey", + "j_mp_conjoined_joker", + "j_mp_skip_off", + "j_jane_artificer", + "j_jane_monk", + "j_jane_betmma", + "j_mp_pacifist", + "j_mp_lets_go_gambling", + "j_jane_hunter", + "j_mp_pizza", + "j_jane_saint", + "j_jane_oxy", + "j_jane_rivulet", + "j_mp_taxes", + "j_jane_gourmand", + "j_mp_penny_pincher", + "j_mp_defensive_joker", + "j_mp_speedrun", + }, + } + + 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 diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..2cfe1a5 --- /dev/null +++ b/manifest.json @@ -0,0 +1,23 @@ +{ + "priority": 10000001, + "version": "1.0.0", + "id": "WalledGarden", + "name": "WalledGarden", + "icon_path": "icon.png", + "badge_colour": "8BE9FD", + "prefix": "WalledGarden", + "badge_text_colour": "FFFFFF", + "display_name": "Walled Garden", + "description": "Personal ruleset for modded Balatro.", + "provides": [], + "conflicts": [], + "author": [ + "Emik" + ], + "dependencies": [ + "Steamodded (>=1.0.0~BETA-1221a)", + "Lovely (>=0.8)", + "Balatro (>=1.0.1o)", + "Multiplayer (>=0.4.0~*)" + ] +} \ No newline at end of file diff --git a/refs/BalatroMultiplayer b/refs/BalatroMultiplayer new file mode 120000 index 0000000..a6ca50a --- /dev/null +++ b/refs/BalatroMultiplayer @@ -0,0 +1 @@ +../../BalatroMultiplayer/ \ No newline at end of file diff --git a/refs/dump b/refs/dump new file mode 120000 index 0000000..59af519 --- /dev/null +++ b/refs/dump @@ -0,0 +1 @@ +../../lovely/dump/ \ No newline at end of file diff --git a/refs/lsp_def b/refs/lsp_def new file mode 120000 index 0000000..e1a2049 --- /dev/null +++ b/refs/lsp_def @@ -0,0 +1 @@ +../../smods/lsp_def/ \ No newline at end of file