Adjust rarities of jokers within non-cryptid

This commit is contained in:
Emik 2025-03-24 11:45:48 +01:00
parent 3c0578663c
commit 65d2d91ddf
Signed by untrusted user who does not match committer: emik
GPG key ID: 09CDFF9E5703688D
2 changed files with 65 additions and 58 deletions

View file

@ -121,8 +121,8 @@ SMODS.Joker {
sinis = {x = 2, y = 0},
soul_pos = {x = 1, y = 0},
cost = 10,
rarity = 3,
blueprint_compat = true,
rarity = Cryptid and 3 or 4,
loc_vars = function(_, _, center)
return {vars = {
center.ability.steel,
@ -130,7 +130,7 @@ SMODS.Joker {
Jane.sinister and "WHAT ARE YOU DOING DOWN THERE?!?" or "",
}}
end,
calculate = function(self, card, context)
calculate = function(_, card, context)
if context.individual and
context.cardarea == G.play and
context.other_card.ability.name == "Steel Card" then
@ -157,9 +157,9 @@ SMODS.Joker {
pos = {x = 0, y = 0},
soul_pos = {x = 1, y = 0},
cost = 12,
rarity = exotic,
atlas = "jane7granddad",
blueprint_compat = true,
rarity = Cryptid and exotic or 3,
loc_vars = function(_, _, center)
return {vars = {center.ability.shopslots}}
end,
@ -258,7 +258,7 @@ SMODS.Joker {
return {vars = {center.ability.extra.tet, 1 + (voucher_count() * center.ability.extra.tet)}}
end,
calculate = function(_, card, context)
if context.cardarea ~= G.jokers or context.before or context.after or not context.scoring_name then
if not context.joker_main then
return
end

View file

@ -33,27 +33,6 @@ SMODS.Rarity {
badge_colour = G.C.JOKER_GREY,
}
SMODS.Joker {
key = "spearmaster",
atlas = "janespearmaster",
loc_txt = {
name = "The Spearmaster",
text = {
"You can choose {C:attention}any number of cards",
"after opening {C:attention}any Booster Pack",
"{C:attention}Booster Packs{} have {C:green}+#1#{} additional cards",
}
},
loc_vars = function(_, _, center)
return {vars = {center.ability.extra.extrachoices}}
end,
config = {extra = {extrachoices = 1}},
pos = {x = 0, y = 0},
soul_pos = {x = 1, y = 0},
cost = 12,
rarity = epic,
}
local orig_open = Card.open
---@diagnostic disable-next-line: duplicate-set-field
@ -98,7 +77,50 @@ SMODS.Joker {
pos = {x = 0, y = 0},
soul_pos = {x = 1, y = 0},
cost = 20,
rarity = 4,
rarity = 3,
}
SMODS.Joker {
key = "gourmand",
atlas = "janegourmand",
loc_txt = {
name = "The Gourmand",
text = {
"Values on {C:attention}consumables",
"are {C:attention}multiplied{} by {C:attention}#1#",
"when they are created",
"{C:inactive}(If possible)",
}
},
loc_vars = function(_, _, center)
return {vars = {center.ability.modifier}}
end,
config = {modifier = 2},
pos = {x = 0, y = 0},
soul_pos = {x = 1, y = 0},
cost = 50,
rarity = 3,
}
SMODS.Joker {
key = "spearmaster",
atlas = "janespearmaster",
loc_txt = {
name = "The Spearmaster",
text = {
"You can choose {C:attention}any number of cards",
"after opening {C:attention}any Booster Pack",
"{C:attention}Booster Packs{} have {C:green}+#1#{} additional cards",
}
},
loc_vars = function(_, _, center)
return {vars = {center.ability.extra.extrachoices}}
end,
config = {extra = {extrachoices = 1}},
pos = {x = 0, y = 0},
soul_pos = {x = 1, y = 0},
cost = 12,
rarity = Cryptid and epic or 4,
}
SMODS.Joker {
@ -152,8 +174,8 @@ SMODS.Joker {
config = {rounds_left = hunter[1]},
pos = {x = 0, y = 0},
soul_pos = {x = 1, y = 0},
cost = 20,
rarity = 4,
cost = Cryptid and 20 or 8,
rarity = Cryptid and 4 or 3,
loc_vars = function(_, _, center)
local function rounds(amount)
return " round" .. ((math.abs(amount) > 1 or math.abs(amount) == 0) and "s" or "")
@ -291,28 +313,6 @@ SMODS.Joker {
end
}
SMODS.Joker {
key = "gourmand",
atlas = "janegourmand",
loc_txt = {
name = "The Gourmand",
text = {
"Values on {C:attention}consumables",
"are {C:attention}multiplied{} by {C:attention}#1#",
"when they are created",
"{C:inactive}(If possible)",
}
},
loc_vars = function(_, _, center)
return {vars = {center.ability.modifier}}
end,
config = {modifier = 2},
pos = {x = 0, y = 0},
soul_pos = {x = 1, y = 0},
cost = 50,
rarity = 4,
}
local orig_set_ability = Card.set_ability
---@diagnostic disable-next-line: duplicate-set-field
@ -390,12 +390,12 @@ SMODS.Joker {
loc_txt = {
name = "The Saint{C:jane_RGB}#1#",
text = {
"{C:spectral}Gateway {}will {C:attention}not destroy Jokers",
"{C:jane_RGB}#2#{}#3#{X:black,C:jane_RGB,s:1.5}#4#{C:spectral}#5#{C:chips}#6#{}#7#{C:mult}#8#",
"{C:inactive,s:1.25}#9#{C:attention,s:1.25}#10#{C:inactive,s:1.25}#11#{C:inactive}#12#"
"{C:spectral}#2# {}will {C:attention}not destroy Jokers",
"{C:jane_RGB}#3#{}#4#{X:black,C:jane_RGB,s:1.5}#5#{C:spectral}#6#{C:chips}#7#{}#8#{C:mult}#9#",
"{C:inactive,s:1.25}#10#{C:attention,s:1.25}#11#{C:inactive,s:1.25}#12#{C:inactive}#12#",
}
},
config = {extra = {karma = 0, max_karma = Cryptid and 10 or 3}},
config = {extra = {karma = 0, max_karma = Cryptid and 10 or 5}},
pos = {x = 0, y = 0},
soul_pos = {x = 1, y = 0},
cost = 20,
@ -409,10 +409,11 @@ SMODS.Joker {
return {vars = {
attuned and " (Attuned)" or "",
Cryptid and "Gateway" or "Ankh",
attuned and "" or "Attune ",
attuned and "" or "after using ",
attuned and (Cryptid and "^^" or "^") .. attunement or max_karma,
attuned and "" or (Cryptid and " Gateways" or " Souls"),
attuned and "" or (Cryptid and " Gateways" or " Ankh or Soul Cards"),
attuned and " Chips " or "",
attuned and "& " or "",
attuned and "Mult" or "",
@ -460,12 +461,18 @@ SMODS.Joker {
if not (not context.blueprint and
(not context.retrigger_joker_check and not context.retrigger_joker) and
context.using_consumeable and
context.consumeable and
context.consumeable:gc().key == Cryptid and "c_cry_gateway" or "c_soul") then
context.consumeable) then
return
end
local quota = context.consumeable:getEvalQty()
local key = context.consumeable:gc().key
-- TODO: Make ankh not destroy jokers
if Cryptid and key ~= "c_cry_gateway" or not Cryptid and (key ~= "c_ankh" and key ~= "c_soul") then
return
end
local quota = context.consumeable.getEvalQty and context.consumeable:getEvalQty() or 1
extra.karma = extra.karma + quota
card_eval_status_text(