diff --git a/manifest.json b/manifest.json index 956f9b0..37cc89c 100644 --- a/manifest.json +++ b/manifest.json @@ -18,5 +18,5 @@ "conflicts": [ "Jen" ], - "version": "1.8.9" + "version": "1.9.0" } \ No newline at end of file diff --git a/src/edition.lua b/src/edition.lua index 7dc17ba..79fc4af 100644 --- a/src/edition.lua +++ b/src/edition.lua @@ -184,14 +184,13 @@ SMODS.Edition({ }, config = {e_chips = Jane.cry and 0.8 or 0.9, e_mult = Jane.cry and 1.2 or 1.1}, sound = {sound = "jane_e_moire", per = 1, vol = 0.7}, - weight = 2, + weight = 1, extra_cost = 10, in_shop = true, shader = "moire", - in_pool = allow_moire, apply_to_float = false, get_weight = function(self) - return G.GAME.edition_rate * self.weight * (allow_moire() and 1 or 0) + return G.GAME.edition_rate * self.weight * (allow_moire() and 20 or 2) end, loc_vars = function(self, _, _) return {vars = {self.config.e_chips, self.config.e_mult}} diff --git a/src/slugcat.lua b/src/slugcat.lua index 0bf50cd..bd915c8 100644 --- a/src/slugcat.lua +++ b/src/slugcat.lua @@ -383,6 +383,7 @@ SMODS.Joker { pos = {x = 0, y = 0}, soul_pos = {x = 1, y = 0}, config = {extra = {uses = 2}}, + eternal_compat = false, blueprint_compat = false, cost = Jane.cry and 50 or 7, rarity = Jane.cry and exotic or 3, @@ -575,25 +576,18 @@ function Card:set_debuff(should_debuff) end end -local function attunement() - return (G.GAME or {}).weeckweeck and 2 or (Jane.cry and 1.002 or 1.25) -end - SMODS.Joker { key = "saint", atlas = "janesaint", loc_txt = { - name = "The Saint{C:jane_RGB}#1#", - text = Jane.cry and { - "{C:attention}Use {}to toggle {X:legendary,C:white}Eternal{} stickers to the left", - "{C:spectral}Analog{}, {C:spectral}Ankh{}, {C:spectral}Gateway{}, and", - "{C:spectral,s:0.95}Summoning {s:0.95}will {C:attention,s:0.95}not destroy Jokers", - "{C:jane_RGB}#2#{}#3#{X:black,C:jane_RGB,s:1.5}#4#{C:spectral}#5#{C:mult}#6#", - "{C:inactive,s:1.25}#7#{C:attention,s:1.25}#8#{C:inactive,s:1.25}#9#{C:inactive}#10#", - } or { - "{C:attention}Use {}to toggle {X:legendary,C:white}Eternal{} stickers to the left", - "{C:jane_RGB}#2#{}#3#{C:dark_edition}#4#{C:spectral}#5#", - "{C:inactive,s:1.25}#6#{C:attention,s:1.25}#7#{C:inactive,s:1.25}#8#{C:inactive}#9#", + name = {"{}", "#1#{C:jane_RGB,s:0.8}#2#", "{C:jane_RGB,s:1.6}#3#"}, + text = { + "{C:attention}Use {}to toggle itself or", + "other Jokers to its", + "left's {X:legendary,C:white}Eternal{} sticker", + "{C:attention}#4#{}#5#{X:black,C:jane_RGB}#6#{C:spectral}#7#", + "{C:inactive}#8#{C:attention}#9#{C:inactive}#10#", + Jane.cry and "{C:inactive}(Gateway has no downside)" or nil, }, }, config = {extra = {karma = 0, max_karma = Jane.cry and 10 or 2}}, @@ -603,16 +597,7 @@ SMODS.Joker { rarity = 4, blueprint_compat = true, loc_vars = function(_, info_queue, card) - if Jane.cry then - info_queue[#info_queue + 1] = G.P_CENTERS.c_cry_analog - end - - info_queue[#info_queue + 1] = Jane.cry and G.P_CENTERS.c_ankh or nil - info_queue[#info_queue + 1] = Jane.cry and G.P_CENTERS.c_cry_gateway or G.P_CENTERS.c_soul - - if Jane.cry then - info_queue[#info_queue + 1] = G.P_CENTERS.c_cry_summoning - end + info_queue[#info_queue + 1] = Jane.cry and G.P_CENTERS.c_cry_gateway or G.P_CENTERS.c_ankh local extra = card.ability.extra local karma = extra.karma @@ -620,35 +605,25 @@ SMODS.Joker { local attuned = karma >= max_karma return { - vars = Jane.cry and { - attuned and " (Attuned)" or "", + vars = { + attuned and "" or "The Saint", + attuned and "The" or "", + attuned and "Attuned" or "", attuned and "" or "Attune ", - attuned and "" or "after using ", - attuned and "^^" .. attunement() or max_karma, - attuned and "" or " Gateways", - attuned and " Mult" or "", + attuned and "alongside its " or "after ", + attuned and "Edition" or max_karma, + attuned and "" or (Jane.cry and " Gateways" or " Ankhs"), attuned and "" or "[", attuned and "" or karma, - attuned and "" or " / " .. max_karma .. "]", - attuned and "(Cannot be debuffed)" or "", - } or { - attuned and " (Attuned)" or "", - attuned and "" or "Attune ", - attuned and "Boosts cards with " or "after using ", - attuned and "editions" or max_karma, - attuned and "" or " Ankh or Soul Cards", - attuned and "" or "[", - attuned and "" or karma, - attuned and "" or " / " .. max_karma .. "]", - attuned and "(Cannot be debuffed)" or "", + attuned and "(Cannot be debuffed)" or " / " .. max_karma .. "]", }, } end, update = function(_, card, _) - card.debuff_immune = card.ability.extra.is_attuned + local extra = card.ability.extra + card.debuff_immune = extra.is_attuned - if card.added_to_deck and card.children.center and card.children.floating_sprite then - local extra = card.ability.extra + if card.children.floating_sprite then card.children.floating_sprite:set_sprite_pos({x = extra.is_attuned and 2 or 1, y = 0}) end end, @@ -698,41 +673,6 @@ SMODS.Joker { card.ability.perishable = false card.ability.perish_tally = 1e9 end - - if Jane.cry and not context.joker_main then - return - end - - if not Jane.cry and not context.other_joker and (not context.individual or context.cardarea ~= G.play) then - return - end - - local attune = attunement() - - local trigger = ({ - e_holo = {mult = 50}, - e_foil = {chips = 250}, - e_polychrome = {x_mult = 2.5}, - e_jane_polygloss = { - mult = 10, - x_mult = 2, - chips = 100, - p_dollars = 10, - }, - e_jane_moire = { - colour = G.C.jane_RGB, - sound = "talisman_eeechip", - EEchip_mod = Jane.cry and attune or nil, - [Jane.cry and "EEmult_mod" or "Emult_mod"] = attune, - message = (Jane.cry and "^^" or "^") .. attune .. (Jane.cry and " Chips & Mult" or ""), - }, - })[Jane.cry and "e_jane_moire" or ((context.other_card or context.other_joker or {}).edition or {}).key] - - if trigger then - trigger.card = card - end - - return trigger elseif extra.karma >= max_karma then ascend() end @@ -746,7 +686,7 @@ SMODS.Joker { local key = context.consumeable:gc().key - if Jane.cry and key ~= "c_cry_gateway" or not Jane.cry and (key ~= "c_ankh" and key ~= "c_soul") then + if Jane.cry and key ~= "c_cry_gateway" or not Jane.cry and key ~= "c_ankh" then return end @@ -777,24 +717,35 @@ SMODS.Joker { ascend() end, - Bakery_can_use = function(_, card) - return not card.debuff and Jane.can_use() - end, - Bakery_use_joker = function(self, card) - if not self:Bakery_can_use(card) then - return - end + Bakery_can_use = Jane.can_use, + Bakery_use_joker = function(_, card) + for joker_index = 1, math.max(card.rank - 1, 1) do + local joker = G.jokers.cards[joker_index] - for k, v in ipairs(G.jokers.cards) do - if card == v then - for i = 1, math.max(k - 1, 1) do - local joker = G.jokers.cards[i] - joker:set_eternal(not joker.ability.eternal) - joker:juice_up() - end - - return + if card.ability.extra.is_attuned and joker.Roland_frozen then + goto edition_only end + + joker:set_eternal(not joker.ability.eternal) + + if not card.ability.extra.is_attuned or joker.ability.eternal then + joker:juice_up() + goto no_edition + end + + ::edition_only:: + local edition = 1 + + for ii, vv in ipairs(joker.edition and G.P_CENTER_POOLS.Edition or {}) do + if vv.key == joker.edition.key then + edition = ii + break + end + end + + local next = edition < #G.P_CENTER_POOLS.Edition and edition + 1 or 1 + joker:set_edition(G.P_CENTER_POOLS.Edition[next].key) + ::no_edition:: end end, }