diff --git a/manifest.json b/manifest.json index c6f86d8..f464efe 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "id": "Roland", "name": "Roland", "prefix": "Roland", - "version": "3.0.5", + "version": "3.0.6", "badge_colour": "8BE9FD", "display_name": "Roland", "main_file": "src/main.lua", diff --git a/src/challenge.lua b/src/challenge.lua index b8e0853..9201a8e 100644 --- a/src/challenge.lua +++ b/src/challenge.lua @@ -34,7 +34,7 @@ local function is_center_banned_from_pastry(v) p_arcana_mega_2 = true, } - local pastries_targets = {Enhanced = true, Joker = true, Tarot = true, Spectral = true} + local pastries_targets = {Enhanced = true, Joker = true, Tarot = true, Spectral = true, Voucher = true} return arcana_boosters[v.key] or pastries_targets[v.set] and is_banned_from_pastry(v) end @@ -48,7 +48,7 @@ end ---@return fun(v: SMODS.Blind, k: string): boolean? local function is_showdown_except(key) return function(v, k) - return v.boss and v.boss.showdown and key ~= k + return key ~= k and v.boss and (v.boss.hardcore or v.boss.no_orb or v.boss.showdown) end end diff --git a/src/joker.lua b/src/joker.lua index d83936a..d617a3f 100644 --- a/src/joker.lua +++ b/src/joker.lua @@ -741,8 +741,13 @@ joker { crimson = function() local _ = G.jokers and f(G.jokers.cards, f.revpairs):where(is_frozen, false):each(function(v) local right = G.jokers.cards[v.rank + 1] + local orig_calculate_reroll_cost = v.config.center.key == "j_chaos" and calculate_reroll_cost or nil local debuffed_by_crimson = right and not right.debuff and right.config.center.key == "j_Roland_crimson" + if orig_calculate_reroll_cost then + calculate_reroll_cost = f.noop + end + if debuffed_by_crimson and v.ability.Roland_crimson == nil then local debuff = not not v.debuff v:set_debuff(true) @@ -752,6 +757,10 @@ joker { v.ability.Roland_crimson = nil v:set_debuff(debuff) end + + if orig_calculate_reroll_cost then + calculate_reroll_cost = orig_calculate_reroll_cost + end end) end, }