Compare commits
No commits in common. "main" and "1.7.10" have entirely different histories.
19 changed files with 340 additions and 481 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
54
lovely.toml
54
lovely.toml
|
|
@ -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)
|
||||
|
|
@ -203,8 +171,7 @@ self.jokers = CardArea(
|
|||
CAI.joker_W+CAI.consumeable_W,
|
||||
CAI.joker_H,
|
||||
{card_limit = (self.GAME.starting_params.joker_slots +
|
||||
self.GAME.starting_params.consumable_slots -
|
||||
(G.GAME.modifiers.jane_spacious_omega and 0 or 1)) *
|
||||
self.GAME.starting_params.consumable_slots - 1) *
|
||||
(G.GAME.modifiers.alt_jane_spacious and 2 or 1),
|
||||
type = 'joker',
|
||||
highlight_limit = 1e100
|
||||
|
|
@ -258,16 +225,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
|
||||
|
|
|
|||
|
|
@ -11,12 +11,11 @@
|
|||
"badge_colour": "3c3cff",
|
||||
"priority": 114,
|
||||
"dependencies": [
|
||||
"Steamodded (>=1.0.0~BETA-1606b)",
|
||||
"Lovely (>=0.6)",
|
||||
"Bakery (>=3.2.0~*)"
|
||||
"Steamodded (>=1.0.0~ALPHA-1304a)",
|
||||
"Bakery (>=0.1.26~*)"
|
||||
],
|
||||
"conflicts": [
|
||||
"Jen"
|
||||
],
|
||||
"version": "1.11.0"
|
||||
"version": "1.7.10"
|
||||
}
|
||||
38
src/back.lua
38
src/back.lua
|
|
@ -102,35 +102,35 @@ back {
|
|||
loc_txt = {
|
||||
name = "Acceleration Deck",
|
||||
text = {
|
||||
Jane.cry and "" or "{C:attention}Ante increases twice{} as strong",
|
||||
Cryptid and "" or "{C:attention}Ante increases twice{} as strong",
|
||||
"After defeating the {C:attention}Boss Blind{},",
|
||||
Jane.cry and "set {C:attention}ante {}to the {C:attention}next" or "",
|
||||
Jane.cry and "{C:attention}triangle number {}and create" or "",
|
||||
Jane.cry and "an {C:spectral,E:1}Empowered Tag" or "create a {C:dark_edition}Negative {C:spectral,E:1}Soul",
|
||||
Cryptid and "set {C:attention}ante {}to the {C:attention}next" or "",
|
||||
Cryptid and "{C:attention}triangle number {}and create" or "",
|
||||
Cryptid and "an {C:spectral,E:1}Empowered Tag" or "create a {C:dark_edition}Negative {C:spectral,E:1}Soul",
|
||||
},
|
||||
},
|
||||
alt_loc_txt = {
|
||||
name = "Jolt Sleeve",
|
||||
text = {
|
||||
Jane.cry and "{C:attention}Ante number {}scales with {C:attention}square numbers" or "{C:attention}Ante increases twice{} as strong",
|
||||
Cryptid and "{C:attention}Ante number {}scales with {C:attention}square numbers" or "{C:attention}Ante increases twice{} as strong",
|
||||
"After defeating the {C:attention}Small {}or {C:attention}Big Blind{},",
|
||||
Jane.cry and "create a {C:spectral,E:1}Empowered Tag" or "create a {C:dark_edition}Negative {C:spectral,E:1}Soul",
|
||||
Cryptid and "create a {C:spectral,E:1}Empowered Tag" or "create a {C:dark_edition}Negative {C:spectral,E:1}Soul",
|
||||
},
|
||||
},
|
||||
loc_vars = function(_, info_queue, _)
|
||||
if info_queue then
|
||||
info_queue[#info_queue + 1] = Jane.cry and G.P_TAGS.tag_cry_empowered or G.P_CENTERS.c_soul
|
||||
info_queue[#info_queue + 1] = Cryptid and G.P_TAGS.tag_cry_empowered or G.P_CENTERS.c_soul
|
||||
end
|
||||
|
||||
return {vars = {}}
|
||||
end,
|
||||
alt_apply = function(_)
|
||||
G.GAME.win_ante = Jane.cry and G.GAME.win_ante * G.GAME.win_ante or G.GAME.win_ante * 4 - 1
|
||||
G.GAME.win_ante = Cryptid and G.GAME.win_ante * G.GAME.win_ante or G.GAME.win_ante * 4 - 1
|
||||
G.GAME.alt_nitro = true
|
||||
G.GAME.nitro = true
|
||||
end,
|
||||
apply = function(_)
|
||||
G.GAME.win_ante = Jane.cry and G.GAME.win_ante * (G.GAME.win_ante + 1) / 2 or G.GAME.win_ante * 2 - 1
|
||||
G.GAME.win_ante = Cryptid and G.GAME.win_ante * (G.GAME.win_ante + 1) / 2 or G.GAME.win_ante * 2 - 1
|
||||
G.GAME.nitro = true
|
||||
end,
|
||||
alt_calculate = function(_, _, context)
|
||||
|
|
@ -152,8 +152,9 @@ back {
|
|||
local rain_world_jokers = {
|
||||
"j_jane_monk",
|
||||
"j_jane_survivor",
|
||||
"j_jane_artificer",
|
||||
"j_jane_spearmaster",
|
||||
"j_jane_gourmand",
|
||||
"j_jane_rivulet",
|
||||
"j_jane_saint",
|
||||
}
|
||||
|
||||
|
|
@ -212,7 +213,7 @@ back {
|
|||
end,
|
||||
}
|
||||
|
||||
if Jane.cry then
|
||||
if Cryptid then
|
||||
back {
|
||||
key = "mysterious",
|
||||
atlas = "janedecks",
|
||||
|
|
@ -430,14 +431,14 @@ back {
|
|||
name = "Orrery Deck",
|
||||
text = {
|
||||
"{C:attention}Hand stats {}are",
|
||||
"always " .. (Jane.cry and "{C:cry_ascendant}" or "{C:attention}") .. "equalized",
|
||||
"always " .. (Cryptid and "{C:cry_ascendant}" or "{C:attention}") .. "equalized",
|
||||
},
|
||||
},
|
||||
alt_loc_txt = {
|
||||
name = "Ephemeris Sleeve",
|
||||
text = {
|
||||
"{C:blue}Hands{}, {C:red}discards{}, and {C:money}money",
|
||||
"are always " .. (Jane.cry and "{C:cry_ascendant}" or "{C:attention}") .. "equalized",
|
||||
"are always " .. (Cryptid and "{C:cry_ascendant}" or "{C:attention}") .. "equalized",
|
||||
},
|
||||
},
|
||||
alt_apply = function(_)
|
||||
|
|
@ -562,7 +563,7 @@ local function two(x)
|
|||
end
|
||||
end
|
||||
|
||||
local eternal_text = Jane.cry and "Absolute" or "Eternal"
|
||||
local eternal_text = Cryptid and "Absolute" or "Eternal"
|
||||
|
||||
back {
|
||||
key = "weeck",
|
||||
|
|
@ -570,7 +571,7 @@ back {
|
|||
pos = {x = 4, y = 1},
|
||||
loc_txt = {
|
||||
name = "Weeck",
|
||||
text = Jane.cry and {
|
||||
text = Cryptid and {
|
||||
"Start with an {C:purple,E:1}" .. eternal_text,
|
||||
"{C:attention}Wee Joker {}and a deck",
|
||||
"containing {C:attention}2 {C:purple,E:1}" .. eternal_text,
|
||||
|
|
@ -631,7 +632,6 @@ back {
|
|||
text = {
|
||||
"{C:attention}Joker {}and {C:attention}Consumable",
|
||||
"slots are {C:attention}combined",
|
||||
"{C:attention}-1 {}Slot",
|
||||
},
|
||||
},
|
||||
alt_loc_txt = {
|
||||
|
|
@ -690,13 +690,12 @@ back {
|
|||
apply_orrery()
|
||||
G.GAME.modifiers.jane_spacious = true
|
||||
G.GAME.used_vouchers.v_omen_globe = true
|
||||
G.GAME.modifiers.jane_spacious_omega = true
|
||||
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 +714,6 @@ back {
|
|||
end
|
||||
end,
|
||||
calculate = function(_, _, context)
|
||||
rebalance_orrery()
|
||||
G.GAME.mysterious = nil
|
||||
|
||||
if Jane.is_end_of_ante(context) then
|
||||
|
|
@ -757,7 +755,7 @@ function ease_ante(mod)
|
|||
end
|
||||
|
||||
if G.GAME.nitro then
|
||||
mod = Jane.cry and
|
||||
mod = Cryptid and
|
||||
(G.GAME.round_resets.ante < 0 and -G.GAME.round_resets.ante or
|
||||
math.ceil(next_number(G.GAME.round_resets.ante) - G.GAME.round_resets.ante)) or
|
||||
(mod > 0 and mod * 2 or mod)
|
||||
|
|
|
|||
|
|
@ -36,9 +36,9 @@ SMODS.Blind {
|
|||
atlas = "janeblinds",
|
||||
pos = {x = 0, y = 0},
|
||||
vars = {},
|
||||
dollars = Jane.cry and 7 or 5,
|
||||
dollars = Cryptid and 7 or 5,
|
||||
defeat = function(_)
|
||||
if not Jane.cry then
|
||||
if not Cryptid then
|
||||
offset_operator(2 - Jane.get_operator())
|
||||
elseif not G.GAME.blind.disabled then
|
||||
offset_operator(1)
|
||||
|
|
@ -62,7 +62,7 @@ SMODS.Blind {
|
|||
end,
|
||||
}
|
||||
|
||||
if Jane.cry then
|
||||
if Cryptid then
|
||||
SMODS.Blind {
|
||||
loc_txt = {
|
||||
name = "The Insignia",
|
||||
|
|
@ -107,7 +107,7 @@ SMODS.Blind {
|
|||
atlas = "janeblinds",
|
||||
pos = {x = 0, y = 3},
|
||||
vars = {},
|
||||
dollars = Jane.cry and 2 or 5,
|
||||
dollars = Cryptid and 2 or 5,
|
||||
disable = function(self)
|
||||
self.disabled = true
|
||||
end,
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ SMODS.Atlas {
|
|||
path = Jane.config.texture_pack .. "/p_jane_boosters.png",
|
||||
}
|
||||
|
||||
if Jane.cry then
|
||||
if Cryptid then
|
||||
for i = 1, 2 do
|
||||
SMODS.Booster {
|
||||
key = "ministandard" .. i,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -5,6 +5,10 @@ SMODS.Sound({key = "e_moire", path = "e_moire.ogg"})
|
|||
SMODS.Sound({key = "e_polygloss", path = "e_polygloss.ogg"})
|
||||
|
||||
local function allow_moire()
|
||||
if Cryptid then
|
||||
return true
|
||||
end
|
||||
|
||||
for _, v in pairs(SMODS.find_card("j_jane_saint")) do
|
||||
if v.ability.extra.is_attuned then
|
||||
return true
|
||||
|
|
@ -23,7 +27,7 @@ SMODS.Edition({
|
|||
loc_txt = {
|
||||
name = "Polygloss",
|
||||
label = "Polygloss",
|
||||
text = Jane.cry and {
|
||||
text = Cryptid and {
|
||||
"{C:chips}+#1#{} Chips",
|
||||
"{C:mult}+#2#{}, {X:mult,C:white}X#3#{}, & {X:mult,C:dark_edition}^#4#{} Mult",
|
||||
"{C:money}$#5# {}when scored",
|
||||
|
|
@ -38,7 +42,7 @@ SMODS.Edition({
|
|||
chips = 12,
|
||||
x_mult = 1.2,
|
||||
p_dollars = 1,
|
||||
e_mult = Jane.cry and 1.02 or nil,
|
||||
e_mult = Cryptid and 1.02 or nil,
|
||||
},
|
||||
sound = {sound = "jane_e_polygloss", per = 1.2, vol = 0.4},
|
||||
weight = 10,
|
||||
|
|
@ -87,7 +91,7 @@ function Sprite:draw_shader(_shader, ...)
|
|||
end
|
||||
end
|
||||
|
||||
local jumbo_modifier = Jane.cry and 100 or 2
|
||||
local jumbo_modifier = Cryptid and 100 or 2
|
||||
|
||||
local jumbo = SMODS.Edition({
|
||||
key = "jumbo",
|
||||
|
|
@ -119,19 +123,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 +143,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 +151,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 +164,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
|
||||
jumbo.on_remove(self)
|
||||
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
|
||||
jumbo.on_apply(self)
|
||||
end
|
||||
|
||||
return ret
|
||||
|
|
@ -201,15 +186,16 @@ SMODS.Edition({
|
|||
"{X:mult,C:dark_edition}^#2#{C:mult} Mult",
|
||||
},
|
||||
},
|
||||
config = {e_chips = Jane.cry and 0.8 or 0.9, e_mult = Jane.cry and 1.2 or 1.1},
|
||||
config = {e_chips = Cryptid and 0.8 or 0.9, e_mult = Cryptid 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}}
|
||||
|
|
|
|||
111
src/joker.lua
111
src/joker.lua
|
|
@ -1,4 +1,4 @@
|
|||
for _, v in pairs({"7granddad", "betmma", "escapey", "honey", "oxy", "maxie", Jane.cry and "peppino" or nil}) do
|
||||
for _, v in pairs({"7granddad", "betmma", "escapey", "honey", "oxy", "maxie", Cryptid and "peppino" or nil}) do
|
||||
SMODS.Atlas {
|
||||
px = 71,
|
||||
py = 95,
|
||||
|
|
@ -15,7 +15,7 @@ SMODS.Sound({key = "corrupt_milestone", path = "corrupt_milestone.ogg"})
|
|||
SMODS.Sound({key = "corrupt_untick", path = "corrupt_untick.ogg"})
|
||||
SMODS.Sound({key = "corrupt_tick", path = "corrupt_tick.ogg"})
|
||||
|
||||
local exotic = Jane.cry and "cry_exotic" or 4
|
||||
local exotic = Cryptid and "cry_exotic" or 4
|
||||
|
||||
local food = {
|
||||
"j_gros_michel",
|
||||
|
|
@ -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 = 1.5, max = 1000}},
|
||||
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,14 +235,14 @@ 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 = Cryptid 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,
|
||||
}
|
||||
|
||||
local _ = Jane.cry or table.insert(
|
||||
local _ = Cryptid or table.insert(
|
||||
esc.loc_txt.text,
|
||||
3,
|
||||
"{C:inactive,s:1.25}(Max of {C:money,s:1.25}$#2#{C:inactive,s:1.25})"
|
||||
|
|
@ -296,7 +276,7 @@ SMODS.Joker {
|
|||
"{C:inactive,s:0.75,E:1}#3#{C:red,s:1.5,E:1}#4#",
|
||||
},
|
||||
},
|
||||
config = {extra = {choices = Jane.cry and 2 or 1}},
|
||||
config = {extra = {choices = Cryptid and 2 or 1}},
|
||||
pos = {x = 0, y = 0},
|
||||
sinis = {x = 2, y = 0},
|
||||
soul_pos = {x = 1, y = 0},
|
||||
|
|
@ -313,19 +293,14 @@ SMODS.Joker {
|
|||
},
|
||||
}
|
||||
end,
|
||||
calculate = function(self, card, context)
|
||||
local _ = context.starting_shop and self:add_to_deck(card, false)
|
||||
end,
|
||||
add_to_deck = function(_, card, from_debuff)
|
||||
if from_debuff then
|
||||
return
|
||||
end
|
||||
|
||||
calculate = function(_, card, context)
|
||||
local min = math.min(card.ability.extra.choices, maxie_limit)
|
||||
card.ability.extra.choices = min
|
||||
|
||||
for _ = 1, min do
|
||||
SMODS.add_booster_to_shop()
|
||||
if context.starting_shop then
|
||||
for _ = 1, min do
|
||||
SMODS.add_booster_to_shop()
|
||||
end
|
||||
end
|
||||
end,
|
||||
}
|
||||
|
|
@ -403,7 +378,7 @@ SMODS.Joker {
|
|||
cost = 8,
|
||||
rarity = 3,
|
||||
loc_vars = function(_, _, card)
|
||||
local level = tonumber(card.ability.extra.level) or 1
|
||||
local level = tonumber(card.ability.extra.level)
|
||||
|
||||
local function level_name(i)
|
||||
local acc = ""
|
||||
|
|
@ -447,12 +422,12 @@ SMODS.Joker {
|
|||
update = function(_, card, _)
|
||||
if card.added_to_deck and card.children.center and card.children.floating_sprite then
|
||||
local extra = card.ability.extra or {}
|
||||
local y = (tonumber(extra.level) or 1) > 1 and 1 or 0
|
||||
local y = tonumber(extra.level) > 1 and 1 or 0
|
||||
card.children.center:set_sprite_pos({x = 0, y = y})
|
||||
card.children.floating_sprite:set_sprite_pos({x = Jane.sinister and 2 or 1, y = y})
|
||||
end
|
||||
|
||||
local level = tonumber(card.ability.extra.level) or 1
|
||||
local level = tonumber(card.ability.extra.level)
|
||||
|
||||
if not Jane.sinister and level > 2 then
|
||||
card:juice_up(0, math.random() * (level - 2) / #Jane.rarity_ids)
|
||||
|
|
@ -460,7 +435,7 @@ SMODS.Joker {
|
|||
end,
|
||||
}
|
||||
|
||||
if Cryptid and Cryptid.aliases then
|
||||
if Cryptid then
|
||||
Cryptid.aliases["honey"] = "j_jane_honey"
|
||||
end
|
||||
|
||||
|
|
@ -470,7 +445,7 @@ function SMODS.poll_rarity(_pool_key, _rand_key)
|
|||
local max = 0
|
||||
|
||||
for _, v in pairs(SMODS.find_card("j_jane_honey")) do
|
||||
max = v.debuff and max or math.max(max, tonumber(v.ability.extra.level) or 1)
|
||||
max = v.debuff and max or math.max(max, tonumber(v.ability.extra.level))
|
||||
end
|
||||
|
||||
local rarity = orig_rarity(_pool_key, _rand_key)
|
||||
|
|
@ -542,7 +517,7 @@ SMODS.Joker {
|
|||
"{C:inactive,s:0.75,E:1}#11#{C:red,s:1.5,E:1}#12#",
|
||||
},
|
||||
},
|
||||
config = {extra = {corrupted_steel = Jane.cry and 20 or 5, is_corrupted = false, milestone = 3, progress = 0}},
|
||||
config = {extra = {corrupted_steel = Cryptid and 20 or 5, is_corrupted = false, milestone = 3, progress = 0}},
|
||||
pos = {x = 0, y = 0},
|
||||
sinis = {x = 2, y = 0},
|
||||
soul_pos = {x = 1, y = 0},
|
||||
|
|
@ -641,12 +616,12 @@ SMODS.Joker {
|
|||
end,
|
||||
}
|
||||
|
||||
if Cryptid and Cryptid.aliases then
|
||||
if Cryptid then
|
||||
Cryptid.aliases["oxy"] = "j_jane_oxy"
|
||||
end
|
||||
|
||||
local operator = Jane.cry and "^" or "X"
|
||||
local operator_prefix = Jane.cry and "{X:dark_edition,C:mult}" or "{X:mult,C:white}"
|
||||
local operator = Cryptid and "^" or "X"
|
||||
local operator_prefix = Cryptid and "{X:dark_edition,C:mult}" or "{X:mult,C:white}"
|
||||
|
||||
SMODS.Joker {
|
||||
key = "betmma",
|
||||
|
|
@ -655,16 +630,16 @@ SMODS.Joker {
|
|||
name = "Betmma",
|
||||
text = {
|
||||
operator_prefix .. "+" .. operator .. "#1#{C:mult} Mult{} for every",
|
||||
"{C:attention}" .. (Jane.cry and "Unique " or "") .. "Voucher{} redeemed",
|
||||
"{C:attention}unique Voucher redeemed",
|
||||
"{C:inactive}(Currently " .. operator_prefix .. operator .. "#2#{C:inactive})",
|
||||
},
|
||||
},
|
||||
config = {extra = {tet = Jane.cry and 0.25 or 0.5}},
|
||||
config = {extra = {tet = Cryptid and 0.25 or 0.5}},
|
||||
pos = {x = 0, y = 0},
|
||||
soul_pos = {x = 1, y = 0},
|
||||
blueprint_compat = true,
|
||||
cost = Jane.cry and 20 or 8,
|
||||
rarity = Jane.cry and 4 or 3,
|
||||
cost = Cryptid and 20 or 8,
|
||||
rarity = Cryptid and 4 or 3,
|
||||
loc_vars = function(_, _, center)
|
||||
return {vars = {center.ability.extra.tet, 1 + (voucher_count() * center.ability.extra.tet)}}
|
||||
end,
|
||||
|
|
@ -680,15 +655,15 @@ SMODS.Joker {
|
|||
|
||||
return {
|
||||
card = card,
|
||||
colour = Jane.cry and G.C.jane_RGB or nil,
|
||||
message = Jane.cry and (operator .. number_format(num)) or nil,
|
||||
[Jane.cry and "e_mult" or "x_mult"] = num,
|
||||
colour = Cryptid and G.C.jane_RGB or nil,
|
||||
message = Cryptid and (operator .. number_format(num)) or nil,
|
||||
[Cryptid and "e_mult" or "x_mult"] = num,
|
||||
}, true
|
||||
end
|
||||
end,
|
||||
}
|
||||
|
||||
if not Jane.cry then
|
||||
if not Cryptid then
|
||||
return
|
||||
end
|
||||
|
||||
|
|
@ -706,8 +681,8 @@ SMODS.Joker {
|
|||
soul_pos = {x = 1, y = 0},
|
||||
atlas = "jane7granddad",
|
||||
blueprint_compat = true,
|
||||
cost = Jane.cry and 49 or 7,
|
||||
rarity = Jane.cry and exotic or 3,
|
||||
cost = Cryptid and 49 or 7,
|
||||
rarity = Cryptid and exotic or 3,
|
||||
loc_vars = function(_, _, center)
|
||||
return {vars = {center.ability.shopslots}}
|
||||
end,
|
||||
|
|
@ -726,19 +701,19 @@ SMODS.Joker {
|
|||
if context.other_card and context.other_card:get_id() == 7 and scj(context) then
|
||||
grand_dad(card)
|
||||
local palette = granddad_palette[math.random(#granddad_palette)]
|
||||
local rnd = pseudorandom(pseudoseed("granddad"), 1, Jane.cry and 5 or 4)
|
||||
local rnd = pseudorandom(pseudoseed("granddad"), 1, Cryptid and 5 or 4)
|
||||
|
||||
if rnd == 1 then
|
||||
return {
|
||||
message = Jane.cry and "+777" or "+77",
|
||||
chips = Jane.cry and 777 or 77,
|
||||
message = Cryptid and "+777" or "+77",
|
||||
chips = Cryptid and 777 or 77,
|
||||
colour = palette,
|
||||
card = card,
|
||||
}, true
|
||||
elseif rnd == 2 then
|
||||
return {
|
||||
message = Jane.cry and "+777 Mult" or "+77 Mult",
|
||||
mult = Jane.cry and 777 or 77,
|
||||
message = Cryptid and "+777 Mult" or "+77 Mult",
|
||||
mult = Cryptid and 777 or 77,
|
||||
colour = palette,
|
||||
card = card,
|
||||
}, true
|
||||
|
|
@ -751,8 +726,8 @@ SMODS.Joker {
|
|||
}, true
|
||||
elseif rnd == 4 then
|
||||
return {
|
||||
message = Jane.cry and "X7 Mult" or "X1.77 Mult",
|
||||
x_mult = Jane.cry and 7 or 1.77,
|
||||
message = Cryptid and "X7 Mult" or "X1.77 Mult",
|
||||
x_mult = Cryptid and 7 or 1.77,
|
||||
colour = palette,
|
||||
card = card,
|
||||
}, true
|
||||
|
|
@ -782,8 +757,8 @@ SMODS.Joker {
|
|||
pos = {x = 0, y = 0},
|
||||
soul_pos = {x = 1, y = 0},
|
||||
config = {extra = {base = 2}},
|
||||
cost = Jane.cry and 20 or 8,
|
||||
rarity = Jane.cry and 4 or 3,
|
||||
cost = Cryptid and 20 or 8,
|
||||
rarity = Cryptid and 4 or 3,
|
||||
blueprint_compat = true,
|
||||
loc_vars = function(_, _, card)
|
||||
return {vars = {card.ability.extra.base ^ food_jokers_count()}}
|
||||
|
|
@ -792,7 +767,7 @@ SMODS.Joker {
|
|||
local count = food_jokers_count()
|
||||
|
||||
if context.joker_main and count > 0 then
|
||||
return {[Jane.cry and "e_mult" or "x_mult"] = card.ability.extra.base ^ count}
|
||||
return {[Cryptid and "e_mult" or "x_mult"] = card.ability.extra.base ^ count}
|
||||
end
|
||||
end,
|
||||
}
|
||||
|
|
|
|||
35
src/main.lua
35
src/main.lua
|
|
@ -1,15 +1,17 @@
|
|||
Jane = {
|
||||
cry = not not G.P_CENTERS.j_cry_m,
|
||||
config = {
|
||||
wee_sizemod = 1.25,
|
||||
texture_pack = "default",
|
||||
wee_sizemod = math.sqrt(2),
|
||||
bans = {"j_cry_crustulum", "c_cry_hammerspace"},
|
||||
},
|
||||
}
|
||||
|
||||
Jane.rarity_ids = Jane.cry and {1, 2, 3, "cry_epic", 4, "cry_exotic", "jane_junk"} or {1, 2, 3, 4, "jane_junk"}
|
||||
-- Jane.misprintize = (Cryptid or {}).misprintize
|
||||
-- Jane.misprintize_tbl = (Cryptid or {}).misprintize_tbl
|
||||
-- Jane.misprinitze_val = (Cryptid or {}).misprintize_val
|
||||
Jane.rarity_ids = Cryptid and {1, 2, 3, "cry_epic", 4, "cry_exotic", "jane_junk"} or {1, 2, 3, 4, "jane_junk"}
|
||||
|
||||
Jane.rarity_names = Jane.cry and {"Common", "Uncommon", "Rare", "Epic", "Legendary", "Exotic", "Junk"} or
|
||||
Jane.rarity_names = Cryptid and {"Common", "Uncommon", "Rare", "Epic", "Legendary", "Exotic", "Junk"} or
|
||||
{"Common", "Uncommon", "Rare", "Legendary", "Junk"}
|
||||
|
||||
if not Jane.misprintize then
|
||||
|
|
@ -113,7 +115,7 @@ function Jane.card_status_text(
|
|||
end
|
||||
|
||||
function Jane.empowered()
|
||||
if Jane.cry then
|
||||
if Cryptid then
|
||||
add_tag(Tag("tag_cry_empowered"))
|
||||
return
|
||||
end
|
||||
|
|
@ -199,14 +201,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 +215,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(...)
|
||||
|
|
@ -317,7 +304,7 @@ function Game:update(dt)
|
|||
local ante = G.GAME.round_resets.ante
|
||||
local blind = get_blind_amount((ante >= 1 and ante <= 8) and math.floor(ante) or ante)
|
||||
G.P_BLINDS["bl_jane_wee"].mult = 22 / blind
|
||||
G.P_BLINDS["bl_jane_descending"].mult = math.ceil(8 * math.sqrt(blind)) / blind
|
||||
G.P_BLINDS["bl_jane_descending"].mult = math.floor(8 * math.sqrt(blind)) / blind
|
||||
Jane.update_honey()
|
||||
|
||||
if not Jane.bans_done then
|
||||
|
|
@ -364,10 +351,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",
|
||||
|
|
|
|||
|
|
@ -133,11 +133,10 @@ function Jane.misprintize_tbl(name, ref_tbl, ref_value, clear, override, stack,
|
|||
for k, v in pairs(tbl) do
|
||||
if (type(tbl[k]) ~= "table") or is_number(tbl[k]) then
|
||||
if is_number(tbl[k]) and not
|
||||
(k == "x_chips" and not Jane.cry) and not
|
||||
(k == "h_x_chips" and not Jane.cry) and not
|
||||
(k == "x_chips" and not Cryptid) and not
|
||||
(k == "h_x_chips" and not Cryptid) 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
|
||||
|
|
|
|||
453
src/slugcat.lua
453
src/slugcat.lua
|
|
@ -12,7 +12,7 @@ SMODS.Sound({
|
|||
select_music_track = function()
|
||||
for _, v in pairs(SMODS.find_card("j_jane_saint")) do
|
||||
if v.ability.extra.is_attuned then
|
||||
return 201
|
||||
return Jane.sinister and -1 / 0 or 10
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -25,13 +25,9 @@ SMODS.Sound({
|
|||
path = "music_attuned_sinister.ogg",
|
||||
volume = 1,
|
||||
select_music_track = function()
|
||||
if not Jane.sinister then
|
||||
return -1 / 0
|
||||
end
|
||||
|
||||
for _, v in pairs(SMODS.find_card("j_jane_saint")) do
|
||||
if v.ability.extra.is_attuned then
|
||||
return 202
|
||||
return Jane.sinister and 10 or -1 / 0
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -58,8 +54,8 @@ for _, v in pairs({
|
|||
}
|
||||
end
|
||||
|
||||
local epic = Jane.cry and "cry_epic" or 3
|
||||
local exotic = Jane.cry and "cry_exotic" or 4
|
||||
local epic = Cryptid and "cry_epic" or 3
|
||||
local exotic = Cryptid and "cry_exotic" or 4
|
||||
|
||||
SMODS.Rarity {
|
||||
key = "junk",
|
||||
|
|
@ -128,10 +124,10 @@ SMODS.Joker {
|
|||
loc_txt = {
|
||||
name = "The Survivor",
|
||||
text = {
|
||||
"All cards held in",
|
||||
"hand also {C:attention}score" .. (Jane.cry and " {}and" or ""),
|
||||
Jane.cry and "considered as the" or nil,
|
||||
Jane.cry and "{C:attention}first {}played card" or nil,
|
||||
"All cards held in hand",
|
||||
"{C:attention}contribute to scoring" .. (Cryptid and " {}and" or ""),
|
||||
Cryptid and "are all considered as" or nil,
|
||||
Cryptid and "the {C:attention}first played card" or nil,
|
||||
},
|
||||
},
|
||||
pos = {x = 0, y = 0},
|
||||
|
|
@ -148,9 +144,11 @@ 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#",
|
||||
"{C:blue}Provides infinite hands",
|
||||
"{C:red,s,E:1}Succumbs to the Rot {}and creates",
|
||||
(Cryptid and "an {C:spectral}Empowered Tag" or "a {C:dark_edition}Negative {C:spectral}Soul") .. " {}after #1#",
|
||||
"When {C:attention}sold#2#{}, turns#3#",
|
||||
"#4#{C:red}The Rot{} without rewards",
|
||||
},
|
||||
},
|
||||
config = {extra = {rounds_left = hunter[1]}},
|
||||
|
|
@ -159,15 +157,14 @@ SMODS.Joker {
|
|||
blueprint_compat = false,
|
||||
perishable_compat = false,
|
||||
soul_pos = {x = 1, y = 0},
|
||||
cost = Jane.cry and 15 or 8,
|
||||
rarity = Jane.cry and epic or 3,
|
||||
cost = Cryptid and 15 or 8,
|
||||
rarity = Cryptid and epic or 3,
|
||||
loc_vars = function(_, info_queue, card)
|
||||
local function rounds(amount)
|
||||
return " round" .. ((math.abs(amount) > 1 or math.abs(amount) == 0) and "s" or "")
|
||||
end
|
||||
|
||||
info_queue[#info_queue + 1] = G.P_CENTERS.j_jane_rot
|
||||
info_queue[#info_queue + 1] = Jane.cry and G.P_CENTERS.c_cry_empowered or G.P_CENTERS.c_soul
|
||||
info_queue[#info_queue + 1] = Cryptid and G.P_CENTERS.c_cry_empowered or G.P_CENTERS.c_soul
|
||||
local rounds_left = card.ability.extra.rounds_left
|
||||
local sold = rounds_left - hunter[5]
|
||||
|
||||
|
|
@ -221,51 +218,72 @@ SMODS.Joker {
|
|||
spawn_rot()
|
||||
end
|
||||
|
||||
if context.blueprint or
|
||||
context.individual or
|
||||
context.repetition or
|
||||
context.retrigger_joker or
|
||||
not context.end_of_round then
|
||||
if context.blueprint then
|
||||
return
|
||||
end
|
||||
|
||||
card.ability.extra.rounds_left = card.ability.extra.rounds_left - 1
|
||||
local rl = card.ability.extra.rounds_left
|
||||
Jane.card_status_text(card, tostring(card.ability.extra.rounds_left), nil, nil, G.C.RED, nil, nil, nil, nil,
|
||||
nil, "generic1")
|
||||
|
||||
if rl > hunter[2] then
|
||||
card:juice_up(0.6, 0.1)
|
||||
elseif rl > hunter[3] then
|
||||
if rl == hunter[2] then
|
||||
Jane.play_sound("jane_gore1")
|
||||
if context.selling_self and card.ability.extra.rounds_left <= hunter[5] then
|
||||
spawn_rot()
|
||||
elseif not context.individual and not context.repetition and not context.retrigger_joker then
|
||||
if G.GAME.round_resets.hands <= 0 then
|
||||
G.GAME.round_resets.hands = 1
|
||||
end
|
||||
|
||||
card:juice_up(0.6, 0.1)
|
||||
elseif rl > hunter[4] then
|
||||
if rl == hunter[3] then
|
||||
Jane.play_sound("jane_gore3")
|
||||
if not card.hunter_prep then
|
||||
card.hunter_prep = true
|
||||
|
||||
Jane.q(function()
|
||||
card.hunter_prep = nil
|
||||
|
||||
if G.GAME.current_round.hands_left < G.GAME.round_resets.hands then
|
||||
ease_hands_played(G.GAME.round_resets.hands - G.GAME.current_round.hands_left)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
card:juice_up(0.6, 0.1)
|
||||
elseif rl > hunter[5] then
|
||||
if rl == hunter[4] then
|
||||
Jane.play_sound("jane_gore8")
|
||||
if not context.end_of_round then
|
||||
return
|
||||
end
|
||||
|
||||
card:juice_up(0.6, 0.1)
|
||||
Jane.play_sound("jane_warning_heartbeat")
|
||||
elseif rl > 0 then
|
||||
if rl == hunter[5] then
|
||||
Jane.play_sound("jane_gore4")
|
||||
end
|
||||
card.hunter_prep = nil
|
||||
card.ability.extra.rounds_left = card.ability.extra.rounds_left - 1
|
||||
local rl = card.ability.extra.rounds_left
|
||||
Jane.card_status_text(card, tostring(card.ability.extra.rounds_left), nil, nil, G.C.RED, nil, nil, nil, nil,
|
||||
nil, "generic1")
|
||||
|
||||
card:juice_up(1.8, 0.3)
|
||||
Jane.play_sound("jane_warning_heartbeat")
|
||||
else
|
||||
card:juice_up(2, 0.8)
|
||||
Jane.play_sound("jane_warning_heartbeat")
|
||||
Jane.q(die, 0)
|
||||
if rl > hunter[2] then
|
||||
card:juice_up(0.6, 0.1)
|
||||
elseif rl > hunter[3] then
|
||||
if rl == hunter[2] then
|
||||
Jane.play_sound("jane_gore1")
|
||||
end
|
||||
|
||||
card:juice_up(0.6, 0.1)
|
||||
elseif rl > hunter[4] then
|
||||
if rl == hunter[3] then
|
||||
Jane.play_sound("jane_gore3")
|
||||
end
|
||||
|
||||
card:juice_up(0.6, 0.1)
|
||||
elseif rl > hunter[5] then
|
||||
if rl == hunter[4] then
|
||||
Jane.play_sound("jane_gore8")
|
||||
end
|
||||
|
||||
card:juice_up(0.6, 0.1)
|
||||
Jane.play_sound("jane_warning_heartbeat")
|
||||
elseif rl > 0 then
|
||||
if rl == hunter[5] then
|
||||
Jane.play_sound("jane_gore4")
|
||||
end
|
||||
|
||||
card:juice_up(1.8, 0.3)
|
||||
Jane.play_sound("jane_warning_heartbeat")
|
||||
else
|
||||
card:juice_up(2, 0.8)
|
||||
Jane.play_sound("jane_warning_heartbeat")
|
||||
Jane.q(die, 0)
|
||||
end
|
||||
end
|
||||
end,
|
||||
}
|
||||
|
|
@ -275,90 +293,41 @@ 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}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},
|
||||
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)
|
||||
local f = SMODS.Mods.Roland.qol[1]
|
||||
|
||||
local function new(v)
|
||||
return type(v) == "number" and v + n or type(v) == "table" and f(v):map(new):table() or v
|
||||
end
|
||||
|
||||
---@param card Card
|
||||
return function(card)
|
||||
local ability = card.ability or {}
|
||||
|
||||
local function go(key)
|
||||
---@type { [string]: number }|number
|
||||
local value = ability[key]
|
||||
--print(key)
|
||||
if not value then
|
||||
return
|
||||
end
|
||||
|
||||
if type(value) == "number" then
|
||||
ability[key] = value + n
|
||||
return
|
||||
end
|
||||
|
||||
if type(value) ~= "table" then
|
||||
return
|
||||
end
|
||||
|
||||
local new_value = f(value):map(new):table()
|
||||
|
||||
f(new_value):each(function(v, k)
|
||||
ability[k] = v
|
||||
end)
|
||||
|
||||
ability[key] = new_value
|
||||
end
|
||||
|
||||
local center_key = (card.config or {}).center_key
|
||||
|
||||
if center_key and center_key:sub(1, 2) == "c_" then
|
||||
f {"extra", "consumeable"}:each(go)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local orig_set_ability = Card.set_ability
|
||||
|
||||
---@diagnostic disable-next-line: duplicate-set-field
|
||||
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
|
||||
local mod = 1
|
||||
|
||||
for _, v in pairs(SMODS.find_card("j_jane_rivulet")) do
|
||||
mod = mod * v.ability.modifier
|
||||
end
|
||||
|
||||
Jane.misprintize(self, {min = mod, max = mod}, nil, true)
|
||||
else
|
||||
local mod = 0
|
||||
|
||||
for _, v in pairs(SMODS.find_card("j_jane_rivulet")) do
|
||||
mod = mod + v.ability.modifier
|
||||
end
|
||||
|
||||
add_to_consumable_ability_by(mod)(self)
|
||||
for _, v in pairs(SMODS.find_card("j_jane_gourmand")) do
|
||||
mod = mod * v.ability.modifier
|
||||
end
|
||||
|
||||
Jane.misprintize(self, {min = mod, max = mod}, nil, true)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -368,31 +337,20 @@ SMODS.Joker {
|
|||
loc_txt = {
|
||||
name = "The Artificer",
|
||||
text = {
|
||||
"Use to {C:red}destroy",
|
||||
"Grants the {C:green}ability{} to {C:red}destroy",
|
||||
"selected {C:attention}playing cards",
|
||||
not Jane.cry and "{C:red,E:1}Self-destructs" or nil,
|
||||
not Jane.cry and "after {C:attention}#1# #2#" or nil,
|
||||
},
|
||||
},
|
||||
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,
|
||||
loc_vars = function(_, _, card)
|
||||
card.ability = card.ability or {}
|
||||
card.ability.extra = card.ability.extra or {}
|
||||
card.ability.extra.uses = card.ability.extra.uses or 2
|
||||
local uses = card.ability.extra.uses
|
||||
return {vars = {uses, uses == 1 and "use" or "uses"}}
|
||||
end,
|
||||
cost = Cryptid and 50 or 20,
|
||||
rarity = exotic,
|
||||
Bakery_use_button_text = function(_, _) return "DESTROY" end,
|
||||
Bakery_can_use = function(_, card)
|
||||
return not card.debuff and Jane.can_use() and next(G.hand.highlighted)
|
||||
end,
|
||||
Bakery_use_joker = function(_, card)
|
||||
Bakery_use_joker = function(_, _)
|
||||
for _, v in pairs(SMODS.find_card("j_jane_oxy")) do
|
||||
Jane.oxy(v, G.hand.highlighted)
|
||||
end
|
||||
|
|
@ -400,17 +358,6 @@ SMODS.Joker {
|
|||
for _, v in pairs(G.hand.highlighted) do
|
||||
v:start_dissolve()
|
||||
end
|
||||
|
||||
if Jane.cry then
|
||||
return
|
||||
end
|
||||
|
||||
card.ability.extra.uses = card.ability.extra.uses - 1
|
||||
local _ = card.ability.extra.uses <= 0 and card:start_dissolve()
|
||||
|
||||
local _ = card.ability.extra.uses == 1 and juice_card_until(card, function()
|
||||
return card.area == G.jokers
|
||||
end, true)
|
||||
end,
|
||||
}
|
||||
|
||||
|
|
@ -422,11 +369,9 @@ SMODS.Joker {
|
|||
loc_txt = {
|
||||
name = "The Spearmaster",
|
||||
text = {
|
||||
"You can choose {C:attention}any",
|
||||
"number of cards",
|
||||
"in {C:attention}Booster Packs",
|
||||
"{C:attention}Booster Packs{} have",
|
||||
"{C:green}+#1#{} additional cards",
|
||||
"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",
|
||||
},
|
||||
},
|
||||
config = {extra = {choices = 1}},
|
||||
|
|
@ -439,8 +384,8 @@ SMODS.Joker {
|
|||
pos = {x = 0, y = 0},
|
||||
soul_pos = {x = 1, y = 0},
|
||||
blueprint_compat = false,
|
||||
cost = Jane.cry and 12 or 20,
|
||||
rarity = Jane.cry and epic or 4,
|
||||
cost = Cryptid and 12 or 20,
|
||||
rarity = Cryptid and epic or 4,
|
||||
Bakery_can_use = function(_, card)
|
||||
if card.debuff or not
|
||||
Jane.can_use() or not
|
||||
|
|
@ -516,21 +461,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",
|
||||
"{C:attention}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 +494,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 +515,44 @@ function Card:set_debuff(should_debuff)
|
|||
end
|
||||
end
|
||||
|
||||
local function attunement()
|
||||
return (G.GAME or {}).weeckweeck and 2 or (Cryptid 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 = Cryptid 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 = Cryptid 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 Cryptid then
|
||||
info_queue[#info_queue + 1] = G.P_CENTERS.c_cry_analog
|
||||
end
|
||||
|
||||
info_queue[#info_queue + 1] = Cryptid and G.P_CENTERS.c_ankh or nil
|
||||
info_queue[#info_queue + 1] = Cryptid and G.P_CENTERS.c_cry_gateway or G.P_CENTERS.c_soul
|
||||
|
||||
if Cryptid then
|
||||
info_queue[#info_queue + 1] = G.P_CENTERS.c_cry_summoning
|
||||
end
|
||||
|
||||
local extra = card.ability.extra
|
||||
local karma = extra.karma
|
||||
|
|
@ -605,26 +560,36 @@ SMODS.Joker {
|
|||
local attuned = karma >= max_karma
|
||||
|
||||
return {
|
||||
vars = {
|
||||
attuned and "" or "The Saint",
|
||||
attuned and "The" or "",
|
||||
attuned and "Attuned" or "",
|
||||
vars = Cryptid 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 +631,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 Cryptid and not context.joker_main then
|
||||
return
|
||||
end
|
||||
|
||||
if not Cryptid 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 = Cryptid and attune or nil,
|
||||
[Cryptid and "EEmult_mod" or "Emult_mod"] = attune,
|
||||
message = (Cryptid and "^^" or "^") .. attune .. (Cryptid and " Chips & Mult" or ""),
|
||||
},
|
||||
})[Cryptid 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 +684,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 Cryptid and key ~= "c_cry_gateway" or not Cryptid and (key ~= "c_ankh" and key ~= "c_soul") then
|
||||
return
|
||||
end
|
||||
|
||||
|
|
@ -697,7 +702,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 +715,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]
|
||||
joker:set_eternal(not joker.ability.eternal)
|
||||
Bakery_use_joker = function(self, card)
|
||||
if not self:Bakery_can_use(card) then
|
||||
return
|
||||
end
|
||||
|
||||
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
|
||||
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
|
||||
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::
|
||||
return
|
||||
end
|
||||
end
|
||||
end,
|
||||
}
|
||||
|
||||
if Cryptid and Cryptid.aliases then
|
||||
if Cryptid 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 {
|
||||
|
|
@ -761,8 +750,8 @@ SMODS.Joker {
|
|||
loc_txt = {
|
||||
name = "The Rot",
|
||||
text = {
|
||||
Jane.cry and "{C:attention}Duplicates itself{} at the" or "{C:inactive,E:1}Does nothing",
|
||||
Jane.cry and "end of {C:attention}every ante" or nil,
|
||||
Cryptid and "{C:attention}Duplicates itself{} at the" or "{C:inactive,E:1}Does nothing",
|
||||
Cryptid and "end of {C:attention}every ante" or nil,
|
||||
},
|
||||
},
|
||||
pos = {x = 0, y = 0},
|
||||
|
|
@ -779,7 +768,7 @@ SMODS.Joker {
|
|||
|
||||
return not not next(SMODS.find_card("j_jane_rot"))
|
||||
end,
|
||||
calculate = Jane.cry and function(_, card, context)
|
||||
calculate = Cryptid and function(_, card, context)
|
||||
local function has_room()
|
||||
return G.jokers.config.card_count < G.jokers.config.card_limit
|
||||
end
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
},
|
||||
},
|
||||
|
|
@ -249,13 +249,13 @@ SMODS.Consumable {
|
|||
key = "obfuscation",
|
||||
atlas = "janeacc",
|
||||
set = "Spectral",
|
||||
hidden = not Jane.cry,
|
||||
soul_rate = not Jane.cry and 0.003 or nil,
|
||||
soul_set = not Jane.cry and "Spectral" or nil,
|
||||
hidden = not Cryptid,
|
||||
soul_rate = not Cryptid and 0.003 or nil,
|
||||
soul_set = not Cryptid and "Spectral" or nil,
|
||||
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)",
|
||||
},
|
||||
|
|
@ -280,14 +280,14 @@ SMODS.Consumable {
|
|||
key = "rift",
|
||||
atlas = "janeacc",
|
||||
set = "Spectral",
|
||||
hidden = not Jane.cry,
|
||||
soul_rate = not Jane.cry and 0.003 or nil,
|
||||
soul_set = not Jane.cry and "Spectral" or nil,
|
||||
hidden = not Cryptid,
|
||||
soul_rate = not Cryptid and 0.003 or nil,
|
||||
soul_set = not Cryptid and "Spectral" or nil,
|
||||
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},
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
if not Jane.cry then
|
||||
if not Cryptid then
|
||||
return
|
||||
end
|
||||
|
||||
|
|
@ -97,7 +97,7 @@ SMODS.Consumable {
|
|||
end,
|
||||
}
|
||||
|
||||
if Cryptid and Cryptid.aliases then
|
||||
if Cryptid then
|
||||
Cryptid.aliases["joker in a tarot"] = "c_jane_jokerinatarot"
|
||||
Cryptid.aliases["joker-in-a-tarot"] = "c_jane_jokerinatarot"
|
||||
Cryptid.aliases["jolly in a tarot"] = "c_jane_jokerinatarot"
|
||||
|
|
|
|||
|
|
@ -93,17 +93,14 @@ for _, v in pairs({
|
|||
{"tag_cry_scope", "Scope", 5, 7, 3},
|
||||
{"tag_cry_banana", "Banana", 0, 8, 4},
|
||||
}) do
|
||||
if v[1] and (Jane.cry or v[1]:sub(1, 7) ~= "tag_cry") then
|
||||
if v[1] and (Cryptid or v[1]:sub(1, 7) ~= "tag_cry") then
|
||||
SMODS.Consumable {
|
||||
key = "token_" .. v[1],
|
||||
set = "jane_tokens",
|
||||
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)
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ SMODS.Atlas {
|
|||
path = Jane.config.texture_pack .. "/v_jane_token_voucher_plus.png",
|
||||
}
|
||||
|
||||
if Jane.cry then
|
||||
if Cryptid then
|
||||
SMODS.Voucher {
|
||||
key = "jolly_voucher",
|
||||
atlas = "janejollyvoucher",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue