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

View file

@ -33,27 +33,6 @@ SMODS.Rarity {
badge_colour = G.C.JOKER_GREY, 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 local orig_open = Card.open
---@diagnostic disable-next-line: duplicate-set-field ---@diagnostic disable-next-line: duplicate-set-field
@ -98,7 +77,50 @@ SMODS.Joker {
pos = {x = 0, y = 0}, pos = {x = 0, y = 0},
soul_pos = {x = 1, y = 0}, soul_pos = {x = 1, y = 0},
cost = 20, 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 { SMODS.Joker {
@ -152,8 +174,8 @@ SMODS.Joker {
config = {rounds_left = hunter[1]}, config = {rounds_left = hunter[1]},
pos = {x = 0, y = 0}, pos = {x = 0, y = 0},
soul_pos = {x = 1, y = 0}, soul_pos = {x = 1, y = 0},
cost = 20, cost = Cryptid and 20 or 8,
rarity = 4, rarity = Cryptid and 4 or 3,
loc_vars = function(_, _, center) loc_vars = function(_, _, center)
local function rounds(amount) local function rounds(amount)
return " round" .. ((math.abs(amount) > 1 or math.abs(amount) == 0) and "s" or "") return " round" .. ((math.abs(amount) > 1 or math.abs(amount) == 0) and "s" or "")
@ -291,28 +313,6 @@ SMODS.Joker {
end 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 local orig_set_ability = Card.set_ability
---@diagnostic disable-next-line: duplicate-set-field ---@diagnostic disable-next-line: duplicate-set-field
@ -390,12 +390,12 @@ SMODS.Joker {
loc_txt = { loc_txt = {
name = "The Saint{C:jane_RGB}#1#", name = "The Saint{C:jane_RGB}#1#",
text = { text = {
"{C:spectral}Gateway {}will {C:attention}not destroy Jokers", "{C:spectral}#2# {}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: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}#9#{C:attention,s:1.25}#10#{C:inactive,s:1.25}#11#{C:inactive}#12#" "{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}, pos = {x = 0, y = 0},
soul_pos = {x = 1, y = 0}, soul_pos = {x = 1, y = 0},
cost = 20, cost = 20,
@ -409,10 +409,11 @@ SMODS.Joker {
return {vars = { return {vars = {
attuned and " (Attuned)" or "", attuned and " (Attuned)" or "",
Cryptid and "Gateway" or "Ankh",
attuned and "" or "Attune ", attuned and "" or "Attune ",
attuned and "" or "after using ", attuned and "" or "after using ",
attuned and (Cryptid and "^^" or "^") .. attunement or max_karma, 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 " Chips " or "",
attuned and "& " or "", attuned and "& " or "",
attuned and "Mult" or "", attuned and "Mult" or "",
@ -460,12 +461,18 @@ SMODS.Joker {
if not (not context.blueprint and if not (not context.blueprint and
(not context.retrigger_joker_check and not context.retrigger_joker) and (not context.retrigger_joker_check and not context.retrigger_joker) and
context.using_consumeable and context.using_consumeable and
context.consumeable and context.consumeable) then
context.consumeable:gc().key == Cryptid and "c_cry_gateway" or "c_soul") then
return return
end 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 extra.karma = extra.karma + quota
card_eval_status_text( card_eval_status_text(