From 2e9689b55d07e8cc03aa8acd3977e698da876747 Mon Sep 17 00:00:00 2001 From: Emik Date: Mon, 3 Aug 2026 20:07:44 +0200 Subject: [PATCH] Adjust non-cryptid Saint and Weeck --- manifest.json | 2 +- src/back.lua | 9 ++++++--- src/edition.lua | 8 +++++--- src/slugcat.lua | 54 ++++++++++++++++++++++++++++++------------------- 4 files changed, 45 insertions(+), 28 deletions(-) diff --git a/manifest.json b/manifest.json index 0047ac7..89c0d3c 100644 --- a/manifest.json +++ b/manifest.json @@ -18,5 +18,5 @@ "conflicts": [ "Jen" ], - "version": "1.11.18" + "version": "1.11.19" } \ No newline at end of file diff --git a/src/back.lua b/src/back.lua index ef3245f..cd386e2 100644 --- a/src/back.lua +++ b/src/back.lua @@ -527,8 +527,11 @@ local function apply_weeck() for _, v in pairs(G.playing_cards) do if v.base.id == 2 then - v.ability.cry_absolute = true - v.ability.eternal = true + if Jane.cry then + v.ability.cry_absolute = true + v.ability.eternal = true + end + add[#add + 1] = v else v:start_dissolve(nil, true) @@ -539,7 +542,7 @@ local function apply_weeck() local dupe = copy_card(v) dupe:start_materialize() dupe:add_to_deck() - G.hand:emplace(dupe) + G.deck:emplace(dupe) G.playing_card = (G.playing_card and G.playing_card + 1) or 1 table.insert(G.playing_cards, dupe) end diff --git a/src/edition.lua b/src/edition.lua index 6bee36b..e59bfdd 100644 --- a/src/edition.lua +++ b/src/edition.lua @@ -5,7 +5,9 @@ SMODS.Sound({key = "e_moire", path = "e_moire.ogg"}) SMODS.Sound({key = "e_polygloss", path = "e_polygloss.ogg"}) local function get_weight(self) - return G.GAME.edition_rate * self.weight + return self.weight * + G.GAME.edition_rate * + (next(SMODS.find_card "j_jane_saint") and 10 or 1) end SMODS.Edition({ @@ -160,8 +162,8 @@ local jumbo = SMODS.Edition({ end end, sound = {sound = "jane_e_jumbo", per = 1, vol = 0.5}, - weight = 5, - extra_cost = 2, + weight = 6, + extra_cost = 5, in_shop = true, shader = false, apply_to_float = false, diff --git a/src/slugcat.lua b/src/slugcat.lua index c2ecc66..f774ded 100644 --- a/src/slugcat.lua +++ b/src/slugcat.lua @@ -573,7 +573,7 @@ local orig_debuff = Card.set_debuff function Card:set_debuff(should_debuff) if should_debuff and ((self.config or {}).center or {}).debuff_immune then - Jane.card_status_text(self, "Immune", nil, 0.05 * self.T.h, G.C.RED, nil, 0.6, nil, nil, "bm", "cancel", 1, 0.9) + Jane.card_status_text(self, "Immune!", nil, 0.05 * self.T.h, G.C.RED, nil, 0.6, nil, nil, "bm", "cancel", 1, 0.9) return false else orig_debuff(self, should_debuff) @@ -589,26 +589,25 @@ SMODS.Joker { "{C:attention}Use {}to toggle itself or", "other Jokers to its", "left's {C:legendary}Eternal{} sticker", - "{C:attention}#4#{}#5#{C:spectral}#6#{}#7#", - "{C:inactive,s:1.25}#8#{C:attention,s:1.25}#9#{C:inactive,s:1.25}#10#", + "{C:attention}#4#{}#5#{C:spectral}#6#{C:planet}#7#{}#8#", + "{C:inactive,s:1.25}#9#{C:attention,s:1.25}#10#{C:inactive,s:1.25}#11#", Jane.cry and "{C:inactive}(Gateway has no downside)" or nil, }, }, - config = {extra = {changes_editions = false, jokers = Jane.cry and 10 or 1, karma = 0, max_karma = Jane.cry and 10 or 3}}, + config = {extra = {changes_editions = false, jokers = 1, karma = -10}}, pos = {x = 0, y = 0}, soul_pos = {x = 1, y = 0}, cost = 20, rarity = 4, + debuff_immune = true, eternal_compat = true, blueprint_compat = false, perishable_compat = true, - loc_vars = function(_, info_queue, card) + loc_vars = function(self, info_queue, card) info_queue[#info_queue + 1] = Jane.cry and G.P_CENTERS.c_cry_gateway or nil local extra = card.ability.extra - local karma = extra.karma - local max_karma = extra.max_karma - local attuned = karma >= max_karma + local attuned = extra.karma >= 0 return { vars = { @@ -618,11 +617,12 @@ SMODS.Joker { attuned and "" or "Attune ", attuned and "" or "at ", attuned and (Jane.cry and "Gateways " or "Spectrals ") or - max_karma .. (Jane.cry and " Gateways" or " Spectrals"), + (Jane.cry and -self.config.extra.karma .. " Gateways" or ""), + (attuned or Jane.cry) and "" or -self.config.extra.karma .. " Planets", attuned and "add Joker slots" or "", attuned and "[Currently " or "[", - attuned and "+" .. karma or karma, - attuned and "]" or " / " .. max_karma .. "]", + attuned and "+" .. extra.karma or extra.karma - self.config.extra.karma, + attuned and "]" or " / " .. -self.config.extra.karma .. "]", }, } end, @@ -633,10 +633,9 @@ SMODS.Joker { card.children.floating_sprite:set_sprite_pos({x = card.ability.extra.is_attuned and 2 or 1, y = 0}) end end, - calculate = function(_, card, context) + calculate = function(self, card, context) local extra = card.ability.extra - local max_karma = extra.max_karma - extra.is_attuned = extra.is_attuned and extra.karma >= max_karma + extra.is_attuned = extra.is_attuned and extra.karma >= 0 local function ascend() if extra.is_attuning then @@ -670,9 +669,14 @@ SMODS.Joker { play_sound("card1") extra.is_attuned = true end, 1) + + Jane.q(function() + extra.karma = extra.karma + extra.jokers + G.jokers:change_size(extra.jokers) + end, 1) end - if extra.karma >= max_karma then + if extra.karma >= 0 then local karma = extra.is_attuning and 0 or (extra.is_attuned and 1 or extra.karma) G.jokers:change_size(karma * extra.jokers) ascend() @@ -687,7 +691,8 @@ SMODS.Joker { local gc = context.consumeable:gc() - if Jane.cry and gc.key ~= "c_cry_gateway" or not Jane.cry and gc.set ~= "Spectral" then + if Jane.cry and gc.key ~= "c_cry_gateway" or + not Jane.cry and gc.set ~= (extra.karma > 0 and "Spectral" or "Planet") then return end @@ -703,16 +708,21 @@ SMODS.Joker { {message = "+" .. quota .. " Karma", colour = G.C.PALE_GREEN} ) - local _ = extra.karma <= max_karma and card_eval_status_text( + local _ = extra.karma <= 0 and card_eval_status_text( card, "extra", nil, nil, nil, - {message = extra.karma .. " / " .. max_karma, colour = G.C.GREEN} + { + message = (extra.karma - self.config.extra.karma) .. + " / " .. + -self.config.extra.karma, + colour = G.C.GREEN, + } ) - if extra.karma < max_karma then + if extra.karma < 0 then return end @@ -722,13 +732,15 @@ SMODS.Joker { add_to_deck = function(_, card) local extra = card.ability.extra - local _ = (extra.is_attuning or extra.is_attuned) and + local _ = extra.karma > 0 and + (extra.is_attuning or extra.is_attuned) and G.jokers:change_size(extra.karma * extra.jokers) end, remove_from_deck = function(_, card) local extra = card.ability.extra - local _ = (extra.is_attuning or extra.is_attuned) and + local _ = extra.karma > 0 and + (extra.is_attuning or extra.is_attuned) and G.jokers:change_size(-extra.karma * extra.jokers) end, Bakery_can_use = function(_, card)