diff --git a/src/essay.lua b/src/essay.lua index 0128055..d1112f0 100644 --- a/src/essay.lua +++ b/src/essay.lua @@ -192,9 +192,16 @@ local function sum_levels() end local ed = ease_dollars function ease_dollars(mod, x) - ed(mod, x) + -- Use Talisman's to_number if available + local safe_mod = type(mod) == "table" and (to_number and to_number(mod) or tonumber(mod)) or mod + local safe_x = type(x) == "table" and (to_number and to_number(x) or tonumber(x)) or x + -- If conversion fails, default to 0 + safe_mod = safe_mod or 0 + safe_x = safe_x or 0 + -- Call original ease_dollars with converted values + ed(safe_mod, safe_x) for i = 1, #G.jokers.cards do - local effects = G.jokers.cards[i]:calculate_joker({ EC_ease_dollars = mod }) + local effects = G.jokers.cards[i]:calculate_joker({ EC_ease_dollars = safe_x }) end end @@ -402,10 +409,10 @@ SMODS.Joker{ --Eclipse end, calculate = function(self, card, context) - if context.cardarea == G.jokers and (sum_levels() - 12) > 0 and context.joker_main then + if context.cardarea == G.jokers and (sum_levels() - to_big(12)) > to_big(0) and context.joker_main then return { - message = localize{type='variable',key='a_chips',vars={(sum_levels()-12)*card.ability.extra.chip_mod}}, - chip_mod = (sum_levels()-12)*card.ability.extra.chip_mod, + message = localize{type='variable',key='a_chips',vars={(sum_levels() - to_big(12))*card.ability.extra.chip_mod}}, + chip_mod = (sum_levels() - to_big(12))*card.ability.extra.chip_mod, colour = G.C.CHIPS } end