From 246392d8fafb85fb93cf6e3ca4c801436c335fbe Mon Sep 17 00:00:00 2001 From: Emik Date: Thu, 4 Jun 2026 17:41:55 +0200 Subject: [PATCH] Add files not via upload --- .editorconfig | 171 ++++++++++++++++++++++++++++++++++++++++ assets/1x/icon.png | Bin 0 -> 1701 bytes assets/2x/icon.png | Bin 0 -> 2158 bytes lovely.toml | 81 +++++++++++++++++++ manifest.json | 23 ++++++ refs/BalatroMultiplayer | 1 + refs/dump | 1 + refs/lsp_def | 1 + 8 files changed, 278 insertions(+) create mode 100644 .editorconfig create mode 100644 assets/1x/icon.png create mode 100644 assets/2x/icon.png create mode 100644 lovely.toml create mode 100644 manifest.json create mode 120000 refs/BalatroMultiplayer create mode 120000 refs/dump create mode 120000 refs/lsp_def 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 0000000000000000000000000000000000000000..717c7d62259e44cc2e777d8a797b6ef3b0e857fa GIT binary patch literal 1701 zcmV;W23q-vP)upjPPZ>}$-hk-0F;MxlW=D9` zJPZ&&G_%Uz#K=sd9&U!EK?9Q6kj#+4@E0fP(|R}{O~nN={ONLpq?3ww7C;=!fn|qO zs93u9o!|ZHK^0WCf(Xrd+aTD!#}Lh(mzqt=LZ>Bw9~wf+<}PF>r~M z_~*4aXV1Zw=3mu(V{wsA?kPlRml+Lb7RDS~{*5xi^8UIXk`o4nIP%GIY`u0-dr5iY z3h7PDsexpJ*q8Y$4hFXRB0MlfWnYr2qo)_t~{ue z@{w&lwidC~hXPPyt16YQJYs7Invq9#EQM>(jun-7wedRstS;B9g^DGG*@SVRPP-*0 zi42Dzo|6wFTBZt}pk!#P*+BNJBzn$|Q=|p*Qzs*7M!YI=cm%sBqgNx_- zH_{jxBaShIP^^M>m~^5NwA@tV9i1I;T^FXoO21CB6*8pCgEsQm#jx_2jZrOxOIzEH zZ$x3)SIES)2BhGnCPs`9%z2w(Mk{c=r46NvOKFh?(b?IlKq#QzEijntd!g5a?0C{+ z9uX84Hp1nl?f9l~K%}?bJ2ix!^jonF$cwF`Ne3To*@D$8R|YmQ2%lcV&_39q*|6u8 z(|&tQn&qISdb1u=Gv`Uho#HgsQKUKt)BdKsjUE< z0v>sG8GWlxj{I z(HG9u`C*JIgGF?b;(UeB_hBCAQzu=0s%7ewSYws7x3{CDqy(2QUq)eJA*Lhjz>Ikx zs1S<3&tm?P^-!fO%`XvK9|X_;IPUl>mAz?bXi%R*Orz3ydwoFisn?N6P{NufIyyQ6 z^W(%c#xs&GGRq4q(|VuH*4Ean_F7Xd;M=pWt_#MkQT5xTbLdh|QFTE!k}azlfwYnl2QLpk0#qS4<=JzJhSJj~^Mmi&w zWudmVHUOyo$3JlY*k3@)2qM%}v4g@ZDAwT7D|Emg#gO5s_-g}Fxz5$Ir?1;XtV7jH z_lN@K(@o>13}fK*jev(OEiFpdfJYdw?>~QAT^9qF?yA2*MuumD`vd8U0JVOpaShiq z%6VfbX0}zXMNnK?r)lr0>ca5%w=sC+7P^n#M9JJjwg1w-nn@FP!cJFRu2h(~I1QQ_ zR>SsFlp6wPN4xOc?$V%&w5#5xJqfb;@@LCblO#<__Zr0BODXO$O=_AJq@ zAmM5H_zYxNrtNf-0DK|4cyZ5S(m@S2jbGh*ddenx(mE2h6Z-hkpW=N>(6qgde%ol= zSVxH_FdA{tbgNUd=h<1fyHq{9JYVp;+9Ol9@U$7>NjgbQ+v~|I>M5wNSg?07;@&xy zWIaSj>V-K`{R~M9KOgNi(WSUjQI~Z)JRu{)gt7n7c}TjDYVs?vdax3OvkK66_#!1H z9qSn(JoC;=@SZVLcXSp0_Pt#wetaPT*R2@T>mn9%^71ir#6^Fu-Y*)r z)ddI>lx24hU+{Ywm8^af#GVSnOG;wMrt16jyNlrFhteKrDdG3e$c=mGztEPVN{o-s z+%>OhAU0*;lienotIyHyRQ2=Q!ij*St92Ey@UA~dgsU);xvz($?nZ0etBf4 zjOREi)47&#hc+P)ucq*_vHy$U(p7HKm}9UWo-x#eeu^|qip3z*vqnmfwn@^9JKzk| vGAP5>;rbfftU+K}E0x8`X?CaAM+M}6?JwCyZB^e800000NkvXXu0mjf4WLVS literal 0 HcmV?d00001 diff --git a/assets/2x/icon.png b/assets/2x/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..40737a3479ca41f118e482b04bcc18253a0da589 GIT binary patch literal 2158 zcmV-!2$A=RP)47uEJ4$>iCX;!FQXz6W`VTIs=T0mAU~1BYmdtV+q@^9^Agtc=NlL1t^Z>Lo`){d zu^+*j=&L%=&Pbff>;fhnJuoFwa#`@$7&qzo3#tX^7`SqDoh=BJ?&9&e| ztp=kjC>&c#-+BTIbeitu`Yz*r$6hzu?Wx;Lc1c;D7*w1>E-Z{fS zg(@CK{*E<|9W=IRjf&`dcLQAq;sK|S3kt8P2IG*_n~y+2QsZneEIufbLb3tc4>G7c zEvC2Qi%}_MgLvN$ZF_x5R8UC zYw~RCy7|BfjrM6sQ6Y^b>322)Z_kVaUfBGD^?YMZHMLt61x_IXMj?tk^r-Iye;&?g1W#OLm8+z;GVKhL)A znQ06tOZgXnSp%|iuwWEo!jC-15{?H3Qe%P3u6YQ{70xO?twq{4%*FCdv=ll1*u3i~ zHG>LtDNxh8XMrmpt+SrX@T{Vv+m)-mY~JTg;M{xY+QCBJvrN{7Jh$AJMe<}xE5(>Xt16;bO_@CRt6(0lJ~tO zQku5Hk{Qg<4NzLfD1)0zvkQBc(I=YSzEAhjwF?$5 z1m3i16Yzuy6Cw?>GT5Ws_kG{?K_+<_@)R5^^zN7GeYt>Zo0fW-wYVlfK;})-UJ6k5 z1aa*YA`q0Mu7VHgiH}oJ=8S)pQA~C9WMCaLLseT_3*6b+3A}CFwh`+mJyc-nq=%`b zKC)hi85;($J#;l~)-vEU?-J0R#(J!8lrn6mkcbR9g$M-ciL>Zq^xke|CFUDEFTW7B zxw#p5{P^*z5b*oDQYFCU8siY{4_Ni8DRPy~>*M?guceHz?bWvSY)v?Y2n3^5=;-JG zo-tzv@SZ(;fUByi)VTzYRTWd70p?lD`(rEc)cfahO{yPl$D2G?jRYgCEZTPp5g1h= z+?V(6-5Xhct|0B3*=_vYK!bx6u_iEPZEI@-E_BTMcaa6;6e2LHLUKVDdB-fSeK~fu zwzjHb!YM?cV1+PvZ?&u8FtC5bjuR5J{0u41NvNbMCW<|lIfV$sR!GRF3dP=UrV|ws z{7D6glzsmcX3~0AVy-mh$2?&a)AMpQEz9$TQ;5K*3gJ9R&nnD-1tE?BLmt7g!Q*`n z@jTZ`a6~B_A7rANFq(%s-pB=xPx6IRh`=!Slu{P`#Oi~Ga>$we);>Cyp^)t1vr1Fe!RWFbxi{9UC`pwCqX6bbR$I@Ly|w1FopP8vnkki-7xi z)oe0?XvZl;An5&aAAah)9O$%N;*2^u?}zC+(*&hRp_4KcR7U z>e+Hojf9q#7OP!7LgQ?|d&lq89#nkK?qe3`f>Veod?^?4G2y6OG8eha~k7lufQk*54j^G-}7vT=$W*T#RvE{~BKbiMv`|$!3dQKq%1uMj-HBZwb z+_Rm&7|&>B=_{VL82kDz8dFl{$Ch-ufEGd1$Ke_z%(eGQ;4xv&Bs_Ka(rh|iSme~M zQ;0y`3hATouzST0U`;z->&x-X+3a52YpuFuB5>Er?}0;7M!Ev?DHEQ&g~~;PXwu=? z;UDsbk8@fiLdI8{H-L`<+4ryvA1>M(l;& zAbR51%ALUS01ofD%9BCd=RIFUo)l?jC^vh}Q@5d=a#T(j_cSEc>pyrBxO->2if%x> zLFU>ycL6(v2pENAD73u#IQGHj`t4XF8=ae!rwj8{NG`u!@$4OBkbXzZnL09fbTvl4 zzA8iev46)C4^ANh-gjf)0B5DgaHb4zn7l}sBQG+VLPVZ~&5ibd4TQ7{pP+gi*XYnb zX6Ts{PsR1AQ;0yo${6}36X#BI9BqyZK2jWWlsD&CWji>IFg013=f;;#Ap&Q;`=1kq k{s4y%7AVZKg;R*YKYzjHg5F^(d;kCd07*qoM6N<$f)`~MhyVZp literal 0 HcmV?d00001 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