diff --git a/src/joker.lua b/src/joker.lua index 9977438..65c4389 100644 --- a/src/joker.lua +++ b/src/joker.lua @@ -8,7 +8,7 @@ for _, v in pairs({"7granddad", "betmma", "oxy", "peppino"}) do end for i = 1, 6 do - SMODS.Sound({key = 'grand' .. i, path = 'grand_dad' .. i .. '.ogg'}) + SMODS.Sound({key = "grand" .. i, path = "grand_dad" .. i .. ".ogg"}) end local exotic = Cryptid and "cry_exotic" or 4 diff --git a/src/slugcat.lua b/src/slugcat.lua index 0be8bc3..43d192c 100644 --- a/src/slugcat.lua +++ b/src/slugcat.lua @@ -33,98 +33,6 @@ SMODS.Rarity { badge_colour = G.C.JOKER_GREY, } -local orig_open = Card.open - ----@diagnostic disable-next-line: duplicate-set-field -function Card:open() - local orig = self.ability.extra or 1 - local spearmasters = SMODS.find_card("j_jane_spearmaster") - - if next(spearmasters) then - for _, v in pairs(spearmasters) do - orig = orig + v.ability.extra.extrachoices - end - - self.config.choose = math.floor(orig) - self.ability.extra = math.floor(orig) - end - - orig_open(self) - - G.E_MANAGER:add_event(Event({ - delay = 0.5, - timer = "REAL", - func = function() - if next(spearmasters) then - G.GAME.pack_choices = math.floor(self.ability.extra) - end - - return true - end - })) -end - -SMODS.Joker { - key = "survivor", - atlas = "janesurvivor", - loc_txt = { - name = "The Survivor", - text = { - "All cards held in hand", - "{C:attention}contribute to scoring {}and", - "are all considered as", - "the {C:attention}first played card", - } - }, - pos = {x = 0, y = 0}, - soul_pos = {x = 1, y = 0}, - cost = 20, - rarity = 4, -} - -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 { key = "monk", atlas = "janemonk", @@ -158,6 +66,24 @@ SMODS.Joker { end } +SMODS.Joker { + key = "survivor", + atlas = "janesurvivor", + loc_txt = { + name = "The Survivor", + text = { + "All cards held in hand", + "{C:attention}contribute to scoring {}and", + "are all considered as", + "the {C:attention}first played card", + } + }, + pos = {x = 0, y = 0}, + soul_pos = {x = 1, y = 0}, + cost = 20, + rarity = 4, +} + local hunter = { 7, 5, 3, 2, 1 } SMODS.Joker { @@ -315,6 +241,28 @@ 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 = 3, +} + local orig_set_ability = Card.set_ability ---@diagnostic disable-next-line: duplicate-set-field @@ -335,6 +283,88 @@ function Card:set_ability(center, initial, delay_sprites) end end +SMODS.Joker { + key = "artificer", + atlas = "janeartificer", + loc_txt = { + name = "The Artificer", + text = { + "Grants the {C:green}ability{} to {C:red}destroy", + "selected {C:attention}playing cards", + } + }, + misc = { + text = {"Impervious", "Cannot be debuffed"}, + col = G.C.JOKER_GREY, + tcol = G.C.FILTER + }, + pos = {x = 0, y = 0}, + soul_pos = {x = 1, y = 0}, + cost = 50, + rarity = exotic, + Bakery_use_button_text = function(_, _) return "DESTROY" end, + Bakery_can_use = function(_, _) + return Jane.canuse() and next(G.hand.highlighted) + end, + Bakery_use_joker = function(_, _) + for _, v in pairs(G.hand.highlighted) do + v:start_dissolve() + end + end, +} + +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, +} + +local orig_open = Card.open + +---@diagnostic disable-next-line: duplicate-set-field +function Card:open() + local orig = self.ability.extra or 1 + local spearmasters = SMODS.find_card("j_jane_spearmaster") + + if next(spearmasters) then + for _, v in pairs(spearmasters) do + orig = orig + v.ability.extra.extrachoices + end + + self.config.choose = math.floor(orig) + self.ability.extra = math.floor(orig) + end + + orig_open(self) + + G.E_MANAGER:add_event(Event({ + delay = 0.5, + timer = "REAL", + func = function() + if next(spearmasters) then + G.GAME.pack_choices = math.floor(self.ability.extra) + end + + return true + end + })) +end + SMODS.Joker { key = "rivulet", atlas = "janerivulet", @@ -534,36 +564,6 @@ SMODS.Joker { end } -SMODS.Joker { - key = "artificer", - atlas = "janeartificer", - loc_txt = { - name = "The Artificer", - text = { - "Grants the {C:green}ability{} to {C:red}destroy", - "selected {C:attention}playing cards", - } - }, - misc = { - text = {"Impervious", "Cannot be debuffed"}, - col = G.C.JOKER_GREY, - tcol = G.C.FILTER - }, - pos = {x = 0, y = 0}, - soul_pos = {x = 1, y = 0}, - cost = 50, - rarity = exotic, - Bakery_use_button_text = function(_, _) return "DESTROY" end, - Bakery_can_use = function(_, _) - return Jane.canuse() and next(G.hand.highlighted) - end, - Bakery_use_joker = function(_, _) - for _, v in pairs(G.hand.highlighted) do - v:start_dissolve() - end - end, -} - SMODS.Joker { key = "rot", atlas = "janerot",