Compare commits

...

14 commits
1.10.0 ... main

Author SHA1 Message Date
bb05a0512b
Nerf Saint 2026-06-26 16:50:28 +02:00
8122036a55
Buff Saint 2026-06-26 14:28:28 +02:00
3cf0a17c45
Simplify Attuned Saint to be a passive ability 2026-06-26 01:58:28 +02:00
67f6ca08f5
Remove outdated info queue 2026-06-24 16:44:44 +02:00
9175f9bb7f
Simplify The Saint 2026-06-24 16:16:48 +02:00
3e679120e0
Tweak number 2026-06-24 01:09:19 +02:00
5931aa264b
Clarify 2026-06-24 01:01:28 +02:00
0b5560d019
Nerf Jumbo playing cards on non-Cryptid 2026-06-24 00:38:40 +02:00
6f7aac1234
Tweak number 2026-06-24 00:14:05 +02:00
7dfc8671e4
Make Gourmand quiet 2026-06-23 23:52:24 +02:00
31669e6b0c
Re-add bonus chips from Jumbo 2026-06-23 22:09:00 +02:00
0f0ec63819
Improve Jumbo hand sorting 2026-06-23 22:03:28 +02:00
4640b21403
Fix Jumbo card size not being applied on reload 2026-06-23 21:56:02 +02:00
5f28cc3d36
Nerf Jumbo sell value 2026-06-23 21:53:56 +02:00
5 changed files with 59 additions and 38 deletions

View file

@ -18,5 +18,5 @@
"conflicts": [ "conflicts": [
"Jen" "Jen"
], ],
"version": "1.10.0" "version": "1.11.0"
} }

View file

@ -694,9 +694,9 @@ back {
G.GAME.starting_voucher_count = (G.GAME.starting_voucher_count or 0) + 1 G.GAME.starting_voucher_count = (G.GAME.starting_voucher_count or 0) + 1
Jane.q(function() Jane.q(function()
add_rain_world_joker()
local wee = create_card("Joker", G.jokers, nil, nil, nil, nil, "j_wee", "weeck") local wee = create_card("Joker", G.jokers, nil, nil, nil, nil, "j_wee", "weeck")
G.jokers:emplace(wee) G.jokers:emplace(wee)
add_rain_world_joker()
G.GAME.tortoise = true G.GAME.tortoise = true
G.GAME.obsidian = true G.GAME.obsidian = true
G.GAME.mysterious = true G.GAME.mysterious = true

View file

@ -119,12 +119,19 @@ local jumbo = SMODS.Edition({
Jane.misprintize(card, {min = jumbo_modifier, max = jumbo_modifier}, nil, true) Jane.misprintize(card, {min = jumbo_modifier, max = jumbo_modifier}, nil, true)
if (card.ability or {}).bonus and (card.base or {}).nominal then
card.ability.bonus = card.ability.bonus + card.base.nominal
end
if card.added_to_deck then if card.added_to_deck then
card:add_to_deck() card:add_to_deck()
end end
Jane.resize(card, Jane.config.wee_sizemod) Jane.resize(card, Jane.config.wee_sizemod)
end, end,
on_load = function(card)
Jane.resize(card, Jane.config.wee_sizemod)
end,
on_remove = function(card) on_remove = function(card)
if not card.Jane_jumbo then if not card.Jane_jumbo then
return return
@ -139,6 +146,10 @@ local jumbo = SMODS.Edition({
Jane.misprintize(card, {min = 1 / jumbo_modifier, max = 1 / jumbo_modifier}, nil, true) Jane.misprintize(card, {min = 1 / jumbo_modifier, max = 1 / jumbo_modifier}, nil, true)
if (card.ability or {}).bonus and (card.base or {}).nominal then
card.ability.bonus = card.ability.bonus - card.base.nominal
end
if was_added then if was_added then
card:add_to_deck() card:add_to_deck()
end end
@ -147,7 +158,7 @@ local jumbo = SMODS.Edition({
end, end,
sound = {sound = "jane_e_jumbo", per = 1, vol = 0.5}, sound = {sound = "jane_e_jumbo", per = 1, vol = 0.5},
weight = 5, weight = 5,
extra_cost = 5, extra_cost = 2,
in_shop = true, in_shop = true,
shader = false, shader = false,
apply_to_float = false, apply_to_float = false,
@ -160,13 +171,21 @@ function Card:set_ability(...)
local is_jumbo = self.edition and self.edition.jane_jumbo local is_jumbo = self.edition and self.edition.jane_jumbo
if is_jumbo then if is_jumbo then
jumbo.on_remove(self) if Jane.cry then
jumbo.on_remove(self)
else
Jane.resize(self)
end
end end
local ret = orig_set_ability(self, ...) local ret = orig_set_ability(self, ...)
if is_jumbo then if is_jumbo then
jumbo.on_apply(self) if Jane.cry then
jumbo.on_apply(self)
else
Jane.resize(self, Jane.config.wee_sizemod)
end
end end
return ret return ret

View file

@ -137,6 +137,7 @@ function Jane.misprintize_tbl(name, ref_tbl, ref_value, clear, override, stack,
(k == "h_x_chips" and not Jane.cry) and not (k == "h_x_chips" and not Jane.cry) and not
(k == "id") and not (k == "id") and not
(k == "colour") and not (k == "colour") and not
(k == "nominal") and not
(k == "suit_nominal") and not (k == "suit_nominal") and not
(k == "base_nominal") and not (k == "base_nominal") and not
(k == "face_nominal") and not (k == "face_nominal") and not

View file

@ -555,11 +555,11 @@ function Card:draw(layer)
if cen and if cen and
self.facing == "front" and self.facing == "front" and
self.config and self.config and
(self.added_to_deck or (self.area and self.area == G.hand)) and not (self.added_to_deck or (self.area and self.area == G.hand)) and
self.edition and not self.edition and
(self.area == G.consumeables or cen.set ~= "Booster") and (self.area == G.consumeables or cen.set ~= "Booster") and
next(SMODS.find_card("j_jane_gourmand")) then next(SMODS.find_card("j_jane_gourmand")) then
self:set_edition("e_jane_jumbo") self:set_edition("e_jane_jumbo", true, true)
end end
orig_draw(self, layer) orig_draw(self, layer)
@ -584,20 +584,20 @@ SMODS.Joker {
text = { text = {
"{C:attention}Use {}to toggle itself or", "{C:attention}Use {}to toggle itself or",
"other Jokers to its", "other Jokers to its",
"left's {X:legendary,C:white}Eternal{} sticker", "left's {C:legendary}Eternal{} sticker",
"{C:attention}#4#{}#5#{X:black,C:jane_RGB}#6#{C:spectral}#7#", "{C:attention}#4#{}#5#{C:spectral}#6#{}#7#",
"{C:inactive}#8#{C:attention}#9#{C:inactive}#10#", "{C:inactive,s:1.25}#8#{C:attention,s:1.25}#9#{C:inactive,s:1.25}#10#",
Jane.cry and "{C:inactive}(Gateway has no downside)" or nil, Jane.cry and "{C:inactive}(Gateway has no downside)" or nil,
}, },
}, },
config = {extra = {karma = 0, max_karma = Jane.cry and 20 or 3}}, config = {extra = {changes_editions = false, jokers = Jane.cry and 10 or 1, karma = 0, max_karma = Jane.cry and 10 or 3}},
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 = 4,
blueprint_compat = true, blueprint_compat = true,
loc_vars = function(_, info_queue, card) loc_vars = function(_, info_queue, card)
info_queue[#info_queue + 1] = Jane.cry and G.P_CENTERS.c_cry_gateway or G.P_CENTERS.c_ankh info_queue[#info_queue + 1] = Jane.cry and G.P_CENTERS.c_cry_gateway or nil
local extra = card.ability.extra local extra = card.ability.extra
local karma = extra.karma local karma = extra.karma
@ -610,28 +610,27 @@ SMODS.Joker {
attuned and "The" or "", attuned and "The" or "",
attuned and "Attuned" or "", attuned and "Attuned" or "",
attuned and "" or "Attune ", attuned and "" or "Attune ",
attuned and "alongside its " or "after ", attuned and "" or "at ",
attuned and "Edition" or max_karma, attuned and (Jane.cry and "Gateways " or "Spectrals ") or
attuned and "" or (Jane.cry and " Gateways" or " Ankhs"), max_karma .. (Jane.cry and " Gateways" or " Spectrals"),
attuned and "" or "[", attuned and "add Joker slots" or "",
attuned and "" or karma, attuned and "[Currently " or "[",
attuned and "(Cannot be debuffed)" or " / " .. max_karma .. "]", attuned and "+" .. karma or karma,
attuned and "]" or " / " .. max_karma .. "]",
}, },
} }
end, end,
update = function(_, card, _) update = function(_, card, _)
local extra = card.ability.extra if card.edition and card.edition.Roland_frozen then
card.debuff_immune = extra.is_attuned card:set_edition("e_base")
elseif card.children.floating_sprite then
if card.children.floating_sprite then card.children.floating_sprite:set_sprite_pos({x = card.ability.extra.is_attuned and 2 or 1, y = 0})
card.children.floating_sprite:set_sprite_pos({x = extra.is_attuned and 2 or 1, y = 0})
end end
end, end,
calculate = function(_, card, context) calculate = function(_, card, context)
local extra = card.ability.extra local extra = card.ability.extra
local max_karma = extra.max_karma 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 >= max_karma
G.GAME.spectral_rate = math.max(G.GAME.spectral_rate, extra.is_attuned and 20 or 2)
local function ascend() local function ascend()
if extra.is_attuning then if extra.is_attuning then
@ -667,14 +666,9 @@ SMODS.Joker {
end, 1) end, 1)
end end
if extra.is_attuned then if extra.karma >= max_karma then
card.debuff = false local karma = (extra.is_attuning or extra.is_attuned) and 0 or extra.karma
G.jokers:change_size(karma * extra.jokers)
if card.ability then
card.ability.perishable = false
card.ability.perish_tally = 1e9
end
elseif extra.karma >= max_karma then
ascend() ascend()
end end
@ -685,9 +679,9 @@ SMODS.Joker {
return return
end end
local key = context.consumeable:gc().key local gc = context.consumeable:gc()
if Jane.cry and key ~= "c_cry_gateway" or not Jane.cry and key ~= "c_ankh" then if Jane.cry and gc.key ~= "c_cry_gateway" or not Jane.cry and gc.set ~= "Spectral" then
return return
end end
@ -703,7 +697,7 @@ SMODS.Joker {
{message = "+" .. quota .. " Karma", colour = G.C.PALE_GREEN} {message = "+" .. quota .. " Karma", colour = G.C.PALE_GREEN}
) )
card_eval_status_text( local _ = extra.karma <= max_karma and card_eval_status_text(
card, card,
"extra", "extra",
nil, nil,
@ -716,9 +710,12 @@ SMODS.Joker {
return return
end end
G.jokers:change_size((extra.is_attuned and quota or extra.karma) * extra.jokers)
ascend() ascend()
end, end,
Bakery_can_use = Jane.can_use, Bakery_can_use = function(_, card)
return Jane.can_use() and not card.debuff
end,
Bakery_use_joker = function(_, card) Bakery_use_joker = function(_, card)
for joker_index = 1, math.max(card.rank - 1, 1) do for joker_index = 1, math.max(card.rank - 1, 1) do
local joker = G.jokers.cards[joker_index] local joker = G.jokers.cards[joker_index]
@ -728,7 +725,9 @@ SMODS.Joker {
joker.Roland_frozen_ability.eternal = joker.ability.eternal joker.Roland_frozen_ability.eternal = joker.ability.eternal
end end
if not card.ability.extra.is_attuned or joker.ability.eternal then if not card.ability.extra.changes_editions or
not card.ability.extra.is_attuned or
joker.ability.eternal then
joker:juice_up() joker:juice_up()
goto continue goto continue
end end
@ -751,7 +750,9 @@ SMODS.Joker {
if Cryptid and Cryptid.aliases then if Cryptid and Cryptid.aliases then
Cryptid.aliases["saint"] = "j_jane_saint" Cryptid.aliases["saint"] = "j_jane_saint"
Cryptid.aliases["attuned"] = "j_jane_saint"
Cryptid.aliases["the saint"] = "j_jane_saint" Cryptid.aliases["the saint"] = "j_jane_saint"
Cryptid.aliases["the attuned"] = "j_jane_saint"
end end
SMODS.Joker { SMODS.Joker {