Patch reroll exploit, rebalance challenges

This commit is contained in:
Emik 2026-10-11 22:39:41 +02:00
parent a99b47a646
commit d1ca223855
Signed by: emik
GPG key ID: 6B0CD72A5E503BDF
3 changed files with 12 additions and 3 deletions

View file

@ -3,7 +3,7 @@
"id": "Roland", "id": "Roland",
"name": "Roland", "name": "Roland",
"prefix": "Roland", "prefix": "Roland",
"version": "3.0.5", "version": "3.0.6",
"badge_colour": "8BE9FD", "badge_colour": "8BE9FD",
"display_name": "Roland", "display_name": "Roland",
"main_file": "src/main.lua", "main_file": "src/main.lua",

View file

@ -34,7 +34,7 @@ local function is_center_banned_from_pastry(v)
p_arcana_mega_2 = true, 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) return arcana_boosters[v.key] or pastries_targets[v.set] and is_banned_from_pastry(v)
end end
@ -48,7 +48,7 @@ end
---@return fun(v: SMODS.Blind, k: string): boolean? ---@return fun(v: SMODS.Blind, k: string): boolean?
local function is_showdown_except(key) local function is_showdown_except(key)
return function(v, k) 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
end end

View file

@ -741,8 +741,13 @@ joker {
crimson = function() crimson = function()
local _ = G.jokers and f(G.jokers.cards, f.revpairs):where(is_frozen, false):each(function(v) 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 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" 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 if debuffed_by_crimson and v.ability.Roland_crimson == nil then
local debuff = not not v.debuff local debuff = not not v.debuff
v:set_debuff(true) v:set_debuff(true)
@ -752,6 +757,10 @@ joker {
v.ability.Roland_crimson = nil v.ability.Roland_crimson = nil
v:set_debuff(debuff) v:set_debuff(debuff)
end end
if orig_calculate_reroll_cost then
calculate_reroll_cost = orig_calculate_reroll_cost
end
end) end)
end, end,
} }