diff --git a/src/joker.lua b/src/joker.lua index 7ea4836..a5fda71 100644 --- a/src/joker.lua +++ b/src/joker.lua @@ -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 diff --git a/src/slugcat.lua b/src/slugcat.lua index fcbf3a4..f2a573d 100644 --- a/src/slugcat.lua +++ b/src/slugcat.lua @@ -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(