Compare commits

..

No commits in common. "main" and "1.7.23" have entirely different histories.
main ... 1.7.23

15 changed files with 167 additions and 245 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -42,44 +42,12 @@ match_indent = true
target = "functions/misc_functions.lua"
pattern = "local AC = G.SETTINGS.ambient_control"
position = "before"
payload = '''if Jane and
(type(G.ARGS.score_intensity.required_score) == "table" and
G.ARGS.score_intensity.required_score:to_number() or
G.ARGS.score_intensity.required_score) ~= 0 then
payload = '''if Jane and (type(G.ARGS.score_intensity.required_score) == "table" and G.ARGS.score_intensity.required_score:to_number() or G.ARGS.score_intensity.required_score) ~= 0 then
local break_infinity = ((Talisman or {}).config_file or {}).break_infinity
local big = (break_infinity == "" or break_infinity == nil) and function (x) return x end or to_big
local base = Cryptid and 2 or G.ARGS.score_intensity.required_score
local expo = Cryptid and G.ARGS.score_intensity.required_score or 2
local ratio = (G.ARGS.score_intensity.earned_score / (big(base) ^ big(expo))):to_number()
Jane.sinister = ratio > 1
G.ARGS.score_intensity.ambientSurreal4 =
(break_infinity and
SMODS.Mods.Amulet and
G.ARGS.score_intensity.earned_score >= Bakery_API.parse_hyper_e("e10#10##10000")) and 1 or 0
G.ARGS.score_intensity.ambientSurreal3 =
(G.ARGS.score_intensity.ambientSurreal4 == 0 and
number_format(G.ARGS.score_intensity.earned_score):find("#")) and 1 or 0
G.ARGS.score_intensity.ambientSurreal2 =
(G.ARGS.score_intensity.ambientSurreal3 == 0 and
G.ARGS.score_intensity.ambientSurreal4 == 0 and
(G.ARGS.score_intensity.earned_score /
(Cryptid and
big(G.ARGS.score_intensity.required_score) ^
big(G.ARGS.score_intensity.required_score) ^
big(G.ARGS.score_intensity.required_score) or
big(2) ^ big(G.ARGS.score_intensity.required_score)
)
):to_number() > 1
) and 1 or 0
G.ARGS.score_intensity.ambientSurreal1 =
(Jane.sinister and
G.ARGS.score_intensity.ambientSurreal2 == 0 and
G.ARGS.score_intensity.ambientSurreal3 == 0 and
G.ARGS.score_intensity.ambientSurreal4 == 0) and 1 or 0
Jane.sinister = (G.ARGS.score_intensity.earned_score / (big(base) ^ big(expo))):to_number() > 1
end'''
match_indent = true
@ -89,7 +57,7 @@ target = "functions/state_events.lua"
pattern = "for _, v in ipairs(SMODS.get_card_areas('playing_cards')) do"
position = "after"
payload = '''if v == G.hand and not (G.GAME.blind and G.GAME.blind.name == "The Card" and not G.GAME.blind.disabled) and next(SMODS.find_card("j_jane_survivor")) then
if Jane.cry then
if Cryptid then
for _, v in ipairs(G.hand.cards) do
local area = {cards = {v}}
SMODS.calculate_main_scoring({cardarea = area, full_hand = area.cards, scoring_hand = area.cards, scoring_name = text, poker_hands = poker_hands}, area.cards)
@ -258,16 +226,3 @@ if G.GAME.modifiers.jane_spacious then
t = {G.jokers, G.vouchers}
end'''
match_indent = true
[[patches]]
[patches.pattern]
target = "functions/misc_functions.lua"
pattern = "ambientOrgan1 = {volfunc = function(_prev_volume) return _prev_volume*(1 - dt) + dt*0.6*(G.SETTINGS.SOUND.music_volume + 100)/200*(G.ARGS.score_intensity.organ) end},"
position = "after"
payload = '''
jane_ambientSurreal1 = {volfunc = function(_prev_volume) return _prev_volume*(1 - dt) + dt*0.6*(G.SETTINGS.SOUND.music_volume + 80)/200*((G.ARGS.score_intensity.ambientSurreal1 or 0) * 1.4) end},
jane_ambientSurreal2 = {volfunc = function(_prev_volume) return _prev_volume*(1 - dt) + dt*0.6*(G.SETTINGS.SOUND.music_volume + 90)/200*((G.ARGS.score_intensity.ambientSurreal2 or 0) * 1.6) end},
jane_ambientSurreal3 = {volfunc = function(_prev_volume) return _prev_volume*(1 - dt) + dt*0.6*(G.SETTINGS.SOUND.music_volume + 100)/200*((G.ARGS.score_intensity.ambientSurreal3 or 0) * 1.8) end},
jane_ambientSurreal4 = {volfunc = function(_prev_volume) return _prev_volume*(1 - dt) + dt*0.6*(G.SETTINGS.SOUND.music_volume + 110)/200*((G.ARGS.score_intensity.ambientSurreal4 or 0) * 2) end},
'''
match_indent = true

View file

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

View file

@ -153,7 +153,7 @@ local rain_world_jokers = {
"j_jane_monk",
"j_jane_survivor",
"j_jane_spearmaster",
"j_jane_gourmand",
"j_jane_rivulet",
"j_jane_saint",
}
@ -694,9 +694,9 @@ back {
G.GAME.starting_voucher_count = (G.GAME.starting_voucher_count or 0) + 1
Jane.q(function()
add_rain_world_joker()
local wee = create_card("Joker", G.jokers, nil, nil, nil, nil, "j_wee", "weeck")
G.jokers:emplace(wee)
add_rain_world_joker()
G.GAME.tortoise = true
G.GAME.obsidian = true
G.GAME.mysterious = true
@ -715,7 +715,6 @@ back {
end
end,
calculate = function(_, _, context)
rebalance_orrery()
G.GAME.mysterious = nil
if Jane.is_end_of_ante(context) then

View file

@ -10,36 +10,17 @@ local rain_world_jokers = {
"j_jane_rot",
}
local is_rain_world_joker, survival = {}, {}
local is_rain_world_joker = {}
for _, v in pairs(rain_world_jokers) do
is_rain_world_joker[v] = true
end
Jane.q(function()
for gk, g in pairs(G.localization.descriptions) do
for ck, c in pairs((type(g) == "table" and not ({Back = true, Sleeve = true})[gk]) and g or {}) do
for _, text in pairs((type(c) == "table" and type(c.text) == "table" and G.P_CENTERS[ck]) and c.text or {}) do
if type(text) == "string" and (text:find("discard") or text:find("Discard")) then
survival[#survival + 1] = {id = ck}
break
end
end
end
end
end, nil, nil, nil, nil, false, true)
SMODS.Challenge {
key = "survival",
loc_txt = {name = "Survival"},
jokers = {{id = "j_jane_survivor"}},
rules = {modifiers = {{id = "discards", value = 0}}},
restrictions = {banned_cards = survival},
}
SMODS.Challenge {
key = "downpour",
loc_txt = {name = "Downpour"},
loc_txt = {
name = "Downpour",
},
rules = {custom = {{id = "jane_downpour1"}, {id = "jane_downpour2"}, {id = "jane_downpour3"}}},
apply = function(_)
for _, v in ipairs(rain_world_jokers) do

View file

@ -119,19 +119,12 @@ local jumbo = SMODS.Edition({
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
card:add_to_deck()
end
Jane.resize(card, Jane.config.wee_sizemod)
end,
on_load = function(card)
Jane.resize(card, Jane.config.wee_sizemod)
end,
on_remove = function(card)
if not card.Jane_jumbo then
return
@ -146,10 +139,6 @@ local jumbo = SMODS.Edition({
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
card:add_to_deck()
end
@ -158,7 +147,7 @@ local jumbo = SMODS.Edition({
end,
sound = {sound = "jane_e_jumbo", per = 1, vol = 0.5},
weight = 5,
extra_cost = 2,
extra_cost = 5,
in_shop = true,
shader = false,
apply_to_float = false,
@ -171,21 +160,13 @@ function Card:set_ability(...)
local is_jumbo = self.edition and self.edition.jane_jumbo
if is_jumbo then
if Jane.cry then
jumbo.on_remove(self)
else
Jane.resize(self)
end
end
local ret = orig_set_ability(self, ...)
if is_jumbo then
if Jane.cry then
jumbo.on_apply(self)
else
Jane.resize(self, Jane.config.wee_sizemod)
end
end
return ret
@ -203,13 +184,14 @@ 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 = 1,
weight = 2,
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 20 or 2)
return G.GAME.edition_rate * self.weight * (allow_moire() and 1 or 0)
end,
loc_vars = function(self, _, _)
return {vars = {self.config.e_chips, self.config.e_mult}}

View file

@ -138,20 +138,6 @@ local escapey_quotes = {
},
}
local function escapey_button_text(card)
if card.debuff then
return "DEBUFFED"
end
for _, v in ipairs(G.consumeables.cards) do
if destructible(v) then
return "CONSUME"
end
end
return "ESCAPE"
end
local esc = SMODS.Joker {
key = "escapey",
atlas = "janeescapey",
@ -168,7 +154,7 @@ local esc = SMODS.Joker {
"{C:inactive,s:0.75,E:1}#5#{C:red,s:1.5,E:1}#6#",
},
},
config = {extra = {money = 2, xmoney = 2, max = 200, escape_label = "ESCAPE"}},
config = {extra = {money = 2, xmoney = 2, max = 200}},
attributes = {"destroy_card", "economy", "tag"},
pos = {x = 0, y = 0},
sinis = {x = 2, y = 0},
@ -189,12 +175,6 @@ local esc = SMODS.Joker {
return {vars = {extra.xmoney, number_format(extra.max), extra.money, normal[1], normal[2], scared}}
end,
calculate = function(_, card)
local extra = card.ability.extra
local label = extra.escape_label
extra.escape_label = escapey_button_text(card)
local _ = label ~= extra.escape_label and Bakery_API.rehighlight(card)
end,
Bakery_can_use = function(_, card)
if not Jane.can_use() or card.debuff then
return false
@ -213,7 +193,7 @@ local esc = SMODS.Joker {
return false
end,
Bakery_use_button_text = function(_, card)
return card.ability.extra.escape_label
return card.debuff and "DEBUFFED" or "ESCAPE"
end,
Bakery_use_joker = function(self, card)
if card.debuff then
@ -255,9 +235,9 @@ local esc = SMODS.Joker {
end
end
local tag_money = Jane.cry and G.GAME.dollars or math.min(G.GAME.dollars, extra.max)
local tag_times = Jane.cry and math.pow(extra.xmoney, xtimes) - 1 or xtimes
ease_dollars(math.ceil(times * extra.money + tag_money * tag_times))
local scaling = Jane.cry and G.GAME.dollars or math.min(G.GAME.dollars, extra.max)
local tags = scaling * (math.pow(extra.xmoney, xtimes) - 1)
ease_dollars(math.ceil(times * extra.money + tags))
end,
tag_threshold = 30,
}

View file

@ -199,14 +199,13 @@ function Jane.resize(card, mod)
end
end
function Jane.q(func, delay, timer, trigger, blockable, blocking, no_delete)
function Jane.q(func, delay, timer, trigger, blockable, blocking)
G.E_MANAGER:add_event(Event({
delay = delay,
timer = timer,
trigger = (delay and not trigger) and "after" or trigger,
blocking = blocking,
blockable = blockable,
no_delete = no_delete,
func = function(...)
local ret = func(...)
return ret == nil and true or ret
@ -214,20 +213,6 @@ function Jane.q(func, delay, timer, trigger, blockable, blocking, no_delete)
}))
end
if false then
---@type table?
Big = Big
---@type { aliases: { [string]: string } }?
Cryptid = Cryptid
---@type { config_file: { break_infinity: boolean, disable_anims: boolean }? }?
Talisman = Talisman
---@type fun(any): boolean
_G.is_number = _G.is_number
end
local orig_can_highlight = CardArea.can_highlight
function CardArea:can_highlight(...)
@ -364,10 +349,6 @@ SMODS.Atlas {
path = Jane.config.texture_pack .. "/c_jane_acc.png",
}
for i = 1, 4 do
SMODS.Sound({key = "ambientSurreal" .. i, path = "ambient_surreal" .. i .. ".ogg"})
end
for _, v in ipairs({
"back",
"blind",

View file

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

View file

@ -148,9 +148,10 @@ SMODS.Joker {
loc_txt = {
name = "The Hunter",
text = {
"{E:1}Succumbs to the {X:black,C:white,E:1}Rot{},",
(Jane.cry and "creating an {C:spectral}Empowered" or "creating a {C:dark_edition}Negative"),
(Jane.cry and "{C:spectral}Tag" or "{C:spectral}Soul") .. " {}after #1#",
"{E:1}Succumbs to the",
"{X:black,C:white,E:1}Rot{}, creating",
(Jane.cry and "an {C:spectral}Empowered Tag" or "a {C:dark_edition}Negative {C:spectral}Soul"),
"after #1#",
},
},
config = {extra = {rounds_left = hunter[1]}},
@ -275,16 +276,22 @@ SMODS.Joker {
atlas = "janegourmand",
loc_txt = {
name = "The Gourmand",
text = {"All cards are {C:dark_edition}Jumbo"},
text = {
"Values on {C:attention}consumables",
"are {C:attention}" .. (Jane.cry and "multiplied" or "added") .. "{} by {C:attention}#1#" .. (Jane.cry and "" or "{} when"),
(Jane.cry and "when " or "") .. "they are created",
"{C:inactive}(If possible)",
},
},
loc_vars = function(_, _, center)
return {vars = {center.ability.modifier}}
end,
config = {modifier = Jane.cry and 2 or 1},
pos = {x = 0, y = 0},
soul_pos = {x = 1, y = 0},
blueprint_compat = false,
cost = 20,
rarity = 4,
loc_vars = function(_, info_queue)
info_queue[#info_queue + 1] = G.P_CENTERS.e_jane_jumbo
end,
cost = 8,
rarity = 3,
}
local function add_to_consumable_ability_by(n)
@ -338,14 +345,14 @@ local orig_set_ability = Card.set_ability
function Card:set_ability(center, initial, delay_sprites)
orig_set_ability(self, center, initial, delay_sprites)
if next(SMODS.find_card("j_jane_rivulet")) and
if next(SMODS.find_card("j_jane_gourmand")) and
self.gc and
self:gc().key ~= "c_base" and
string.sub(self:gc().key, 1, 2) == "c_" then
if Jane.cry or not ((SMODS.Mods.Roland or {}).qol or {})[1] then
local mod = 1
for _, v in pairs(SMODS.find_card("j_jane_rivulet")) do
for _, v in pairs(SMODS.find_card("j_jane_gourmand")) do
mod = mod * v.ability.modifier
end
@ -353,7 +360,7 @@ function Card:set_ability(center, initial, delay_sprites)
else
local mod = 0
for _, v in pairs(SMODS.find_card("j_jane_rivulet")) do
for _, v in pairs(SMODS.find_card("j_jane_gourmand")) do
mod = mod + v.ability.modifier
end
@ -377,9 +384,8 @@ 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,
cost = Jane.cry and 50 or 20,
rarity = Jane.cry and exotic or 3,
loc_vars = function(_, _, card)
card.ability = card.ability or {}
@ -516,21 +522,15 @@ SMODS.Joker {
loc_txt = {
name = "The Rivulet",
text = {
"Values on {C:attention}consumables",
"are {C:attention}" .. (Jane.cry and "multiplied" or "added") .. "{} by {C:attention}#1#" .. (Jane.cry and "" or "{} when"),
(Jane.cry and "when " or "") .. "they are created",
"{C:inactive}(If possible)",
"Non-{C:dark_edition}editioned{} cards are",
"given a random {C:dark_edition}Edition",
},
},
config = {modifier = Jane.cry and 2 or 1},
pos = {x = 0, y = 0},
soul_pos = {x = 1, y = 0},
blueprint_compat = false,
cost = 8,
rarity = 3,
loc_vars = function(_, _, center)
return {vars = {center.ability.modifier}}
end,
cost = 20,
rarity = 4,
}
local orig_draw = Card.draw
@ -555,11 +555,11 @@ function Card:draw(layer)
if cen and
self.facing == "front" and
self.config and
(self.added_to_deck or (self.area and self.area == G.hand)) and
not self.edition and
(self.added_to_deck or (self.area and self.area == G.hand)) and not
self.edition and
(self.area == G.consumeables or cen.set ~= "Booster") and
next(SMODS.find_card("j_jane_gourmand")) then
self:set_edition("e_jane_jumbo", true, true)
next(SMODS.find_card("j_jane_rivulet")) then
self:set_edition(poll_edition("rivulet_edition", nil, true, true))
end
orig_draw(self, layer)
@ -576,28 +576,44 @@ 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 = {"{}", "#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 {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#",
Jane.cry and "{C:inactive}(Gateway has no downside)" or nil,
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#",
},
},
config = {extra = {changes_editions = false, jokers = Jane.cry and 10 or 1, karma = 0, max_karma = Jane.cry and 10 or 3}},
config = {extra = {karma = 0, max_karma = Jane.cry and 10 or 2}},
pos = {x = 0, y = 0},
soul_pos = {x = 1, y = 0},
cost = 20,
rarity = 4,
blueprint_compat = true,
loc_vars = function(_, info_queue, card)
info_queue[#info_queue + 1] = Jane.cry and G.P_CENTERS.c_cry_gateway or nil
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
local extra = card.ability.extra
local karma = extra.karma
@ -605,26 +621,36 @@ SMODS.Joker {
local attuned = karma >= max_karma
return {
vars = {
attuned and "" or "The Saint",
attuned and "The" or "",
attuned and "Attuned" or "",
vars = Jane.cry and {
attuned and " (Attuned)" or "",
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"),
attuned and "add Joker slots" or "",
attuned and "[Currently " or "[",
attuned and "+" .. karma or karma,
attuned and "]" or " / " .. max_karma .. "]",
attuned and "" or "after using ",
attuned and "^^" .. attunement() or max_karma,
attuned and "" or " Gateways",
attuned and " Mult" or "",
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 "",
},
}
end,
update = function(_, card, _)
if card.edition and card.edition.Roland_frozen then
card:set_edition("e_base")
elseif 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.debuff_immune = card.ability.extra.is_attuned
if card.added_to_deck and card.children.center and card.children.floating_sprite then
local extra = card.ability.extra
card.children.floating_sprite:set_sprite_pos({x = extra.is_attuned and 2 or 1, y = 0})
end
end,
calculate = function(_, card, context)
@ -666,9 +692,49 @@ SMODS.Joker {
end, 1)
end
if extra.karma >= max_karma then
local karma = (extra.is_attuning or extra.is_attuned) and 0 or extra.karma
G.jokers:change_size(karma * extra.jokers)
if extra.is_attuned then
card.debuff = false
if card.ability then
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
@ -679,9 +745,9 @@ SMODS.Joker {
return
end
local gc = context.consumeable:gc()
local key = context.consumeable:gc().key
if Jane.cry and gc.key ~= "c_cry_gateway" or not Jane.cry and gc.set ~= "Spectral" then
if Jane.cry and key ~= "c_cry_gateway" or not Jane.cry and (key ~= "c_ankh" and key ~= "c_soul") then
return
end
@ -697,7 +763,7 @@ SMODS.Joker {
{message = "+" .. quota .. " Karma", colour = G.C.PALE_GREEN}
)
local _ = extra.karma <= max_karma and card_eval_status_text(
card_eval_status_text(
card,
"extra",
nil,
@ -710,49 +776,33 @@ SMODS.Joker {
return
end
G.jokers:change_size((extra.is_attuned and quota or extra.karma) * extra.jokers)
ascend()
end,
Bakery_can_use = function(_, card)
return Jane.can_use() and not card.debuff
return not card.debuff and Jane.can_use()
end,
Bakery_use_joker = function(_, card)
for joker_index = 1, math.max(card.rank - 1, 1) do
local joker = G.jokers.cards[joker_index]
Bakery_use_joker = function(self, card)
if not self:Bakery_can_use(card) then
return
end
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)
if joker.Roland_frozen_ability then
joker.Roland_frozen_ability.eternal = joker.ability.eternal
end
if not card.ability.extra.changes_editions or
not card.ability.extra.is_attuned or
joker.ability.eternal then
joker:juice_up()
goto continue
end
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
return
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)
::continue::
end
end,
}
if Cryptid and Cryptid.aliases then
Cryptid.aliases["saint"] = "j_jane_saint"
Cryptid.aliases["attuned"] = "j_jane_saint"
Cryptid.aliases["the saint"] = "j_jane_saint"
Cryptid.aliases["the attuned"] = "j_jane_saint"
end
SMODS.Joker {

View file

@ -183,8 +183,8 @@ SMODS.Consumable {
loc_txt = {
name = "Shadows",
text = {
"Create {C:attention}#1#{} random {C:dark_edition}Negative",
"{C:attention}Perishable Jokers{}, set {C:money}sell",
"Create {C:attention}#1#{} {C:green}random {C:dark_edition}Negative",
"{C:attention}Perishable {C:attention}Jokers{}, set {C:money}sell",
"{C:money}value {}of {C:attention}all Jokers {}to {C:money}$0",
},
},
@ -255,7 +255,7 @@ SMODS.Consumable {
loc_txt = {
name = "Obfuscation",
text = {
"{C:green,E:1}Randomizes{} all cards in hand",
"{C:green,E:1}Randomises{} all cards in hand",
"{C:inactive}(Rank, seal, edition,",
"{C:inactive}enhancement, and suit)",
},
@ -286,8 +286,8 @@ SMODS.Consumable {
loc_txt = {
name = "Rift",
text = {
"{C:red}Reset {}your deck to a",
"standard 52-card deck",
"{C:attention}Reset {}your deck to a",
"{C:attention}standard 52-card deck",
},
},
pos = {x = 4, y = 4},

View file

@ -100,10 +100,7 @@ for _, v in pairs({
atlas = "janetokens",
loc_txt = {
name = v[2] .. " Token",
text = {
"Creates a" .. (vowels[v[2]:sub(1, 1)] and "n" or ""),
"{C:attention}" .. v[2] .. " Tag",
},
text = {"Creates a" .. (vowels[v[2]:sub(1, 1)] and "n" or "") .. " {C:attention}" .. v[2] .. " Tag"},
},
loc_vars = function(_, info_queue, _)
info_queue[#info_queue + 1] = v[1] ~= "tag_cry_cat" and G.P_TAGS[v[1]] or nil
@ -115,9 +112,7 @@ for _, v in pairs({
can_divide = true,
can_use = Jane.can_use,
in_pool = function(_, _)
return G.GAME.used_vouchers.v_jane_token_voucher or
G.GAME.used_vouchers.v_jane_token_voucher_plus or
G.GAME.modifiers.Roland_alt_swapper_deck
return G.GAME.used_vouchers.v_jane_token_voucher or G.GAME.modifiers.Roland_alt_swapper_deck
end,
use = function(_, _, _, _)
play_sound("jane_e_gilded", 1.25, 0.4)