balatro-mods/Cartomancer/core/hand.lua
2025-03-25 03:09:00 +08:00

71 lines
1.7 KiB
Lua

-- Hand sorting
G.FUNCS.cartomancer_sort_hand_off = function(e)
if G.hand.cart_sorting == false then
G.hand.cart_old_sorting = G.hand.config.sort
G.hand:sort('off')
else
G.hand.config.sort = G.hand.cart_old_sorting
G.hand:sort()
end
end
local function is_desc(method)
return string.find(method, "desc")
end
local function is_suit(method)
return string.find(method, "suit")
end
local function is_sorted()
-- TODO : check if hand is already sorted with current method
return true
end
local g_func_sort_hand_suit = G.FUNCS.sort_hand_suit
G.FUNCS.sort_hand_suit = function(e)
G.hand.cart_sorting = true
if not Cartomancer.SETTINGS.improved_hand_sorting then
return g_func_sort_hand_suit(e)
end
local current = G.hand.config.sort
local new = 'suit desc'
-- If already sorted by suit, toggle ascending/descending order
if is_suit(current) and is_sorted() then
if is_desc(current) then
new = 'suit asc'
else
new = 'suit desc'
end
end
G.hand:sort(new)
play_sound('paper1')
end
local g_func_sort_hand_value = G.FUNCS.sort_hand_value
G.FUNCS.sort_hand_value = function(e)
G.hand.cart_sorting = true
if not Cartomancer.SETTINGS.improved_hand_sorting then
return g_func_sort_hand_value(e)
end
local current = G.hand.config.sort
local new = 'desc'
-- If already sorted by value, toggle ascending/descending order
if not is_suit(current) and is_sorted() then
if is_desc(current) then
new = 'asc'
else
new = 'desc'
end
end
G.hand:sort(new)
play_sound('paper1')
end