diff --git a/manifest.json b/manifest.json index 2bea2f9..9c087bc 100644 --- a/manifest.json +++ b/manifest.json @@ -18,5 +18,5 @@ "conflicts": [ "Jen" ], - "version": "1.8.6" + "version": "1.8.7" } \ No newline at end of file diff --git a/src/challenge.lua b/src/challenge.lua index f859985..f299332 100644 --- a/src/challenge.lua +++ b/src/challenge.lua @@ -10,17 +10,31 @@ local rain_world_jokers = { "j_jane_rot", } -local is_rain_world_joker = {} +local is_rain_world_joker, survival = {}, {} for _, v in pairs(rain_world_jokers) do is_rain_world_joker[v] = true end +Jane.q(function() + for gk, g in pairs(G.localization.descriptions) do + for ck, c in pairs((type(g) == "table" and not ({Back = true, Sleeve = true})[gk]) and g or {}) do + for _, text in pairs((type(c) == "table" and type(c.text) == "table" and G.P_CENTERS[ck]) and c.text or {}) do + if type(text) == "string" and (text:find("discard") or text:find("Discard")) then + survival[#survival + 1] = {id = ck} + break + end + end + end + end +end, nil, nil, nil, nil, false, true) + SMODS.Challenge { key = "survival", loc_txt = {name = "Survival"}, jokers = {{id = "j_jane_survivor"}}, rules = {modifiers = {{id = "discards", value = 0}}}, + restrictions = {banned_cards = survival}, } SMODS.Challenge { diff --git a/src/main.lua b/src/main.lua index 6c37b2b..bdab467 100644 --- a/src/main.lua +++ b/src/main.lua @@ -199,13 +199,14 @@ function Jane.resize(card, mod) end end -function Jane.q(func, delay, timer, trigger, blockable, blocking) +function Jane.q(func, delay, timer, trigger, blockable, blocking, no_delete) G.E_MANAGER:add_event(Event({ delay = delay, timer = timer, trigger = (delay and not trigger) and "after" or trigger, blocking = blocking, blockable = blockable, + no_delete = no_delete, func = function(...) local ret = func(...) return ret == nil and true or ret