71 lines
1.7 KiB
Lua
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
|