Compare commits
No commits in common. "main" and "1.11.29" have entirely different histories.
29 changed files with 68 additions and 2019 deletions
Binary file not shown.
|
Before Width: | Height: | Size: 197 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 124 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 224 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 281 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 172 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 312 KiB |
|
|
@ -1,117 +0,0 @@
|
|||
#if defined(VERTEX) || __VERSION__ > 100 || defined(GL_FRAGMENT_PRECISION_HIGH)
|
||||
#define MY_HIGHP_OR_MEDIUMP highp
|
||||
#else
|
||||
#define MY_HIGHP_OR_MEDIUMP mediump
|
||||
#endif
|
||||
|
||||
extern MY_HIGHP_OR_MEDIUMP vec2 gaming;
|
||||
extern MY_HIGHP_OR_MEDIUMP number dissolve;
|
||||
extern MY_HIGHP_OR_MEDIUMP number time;
|
||||
extern MY_HIGHP_OR_MEDIUMP vec4 texture_details;
|
||||
extern MY_HIGHP_OR_MEDIUMP vec2 image_details;
|
||||
extern bool shadow;
|
||||
extern MY_HIGHP_OR_MEDIUMP vec4 burn_colour_1;
|
||||
extern MY_HIGHP_OR_MEDIUMP vec4 burn_colour_2;
|
||||
|
||||
vec4 dissolve_mask(vec4 tex, vec2 texture_coords, vec2 uv)
|
||||
{
|
||||
if (dissolve < 0.001) {
|
||||
return vec4(shadow ? vec3(0.,0.,0.) : tex.xyz, shadow ? tex.a*0.3: tex.a);
|
||||
}
|
||||
|
||||
float adjusted_dissolve = (dissolve*dissolve*(3.-2.*dissolve))*1.02 - 0.01; //Adjusting 0.0-1.0 to fall to -0.1 - 1.1 scale so the mask does not pause at extreme values
|
||||
|
||||
float t = time * 10.0 + 2003.;
|
||||
vec2 floored_uv = (floor((uv*texture_details.ba)))/max(texture_details.b, texture_details.a);
|
||||
vec2 uv_scaled_centered = (floored_uv - 0.5) * 2.3 * max(texture_details.b, texture_details.a);
|
||||
|
||||
vec2 field_part1 = uv_scaled_centered + 50.*vec2(sin(-t / 143.6340), cos(-t / 99.4324));
|
||||
vec2 field_part2 = uv_scaled_centered + 50.*vec2(cos( t / 53.1532), cos( t / 61.4532));
|
||||
vec2 field_part3 = uv_scaled_centered + 50.*vec2(sin(-t / 87.53218), sin(-t / 49.0000));
|
||||
|
||||
float field = (1.+ (
|
||||
cos(length(field_part1) / 19.483) + sin(length(field_part2) / 33.155) * cos(field_part2.y / 15.73) +
|
||||
cos(length(field_part3) / 27.193) * sin(field_part3.x / 21.92) ))/2.;
|
||||
vec2 borders = vec2(0.2, 0.8);
|
||||
|
||||
float res = (.5 + .5* cos( (adjusted_dissolve) / 82.612 + ( field + -.5 ) *3.14))
|
||||
- (floored_uv.x > borders.y ? (floored_uv.x - borders.y)*(5. + 5.*dissolve) : 0.)*(dissolve)
|
||||
- (floored_uv.y > borders.y ? (floored_uv.y - borders.y)*(5. + 5.*dissolve) : 0.)*(dissolve)
|
||||
- (floored_uv.x < borders.x ? (borders.x - floored_uv.x)*(5. + 5.*dissolve) : 0.)*(dissolve)
|
||||
- (floored_uv.y < borders.x ? (borders.x - floored_uv.y)*(5. + 5.*dissolve) : 0.)*(dissolve);
|
||||
|
||||
if (tex.a > 0.01 && burn_colour_1.a > 0.01 && !shadow && res < adjusted_dissolve + 0.8*(0.5-abs(adjusted_dissolve-0.5)) && res > adjusted_dissolve) {
|
||||
if (!shadow && res < adjusted_dissolve + 0.5*(0.5-abs(adjusted_dissolve-0.5)) && res > adjusted_dissolve) {
|
||||
tex.rgba = burn_colour_1.rgba;
|
||||
} else if (burn_colour_2.a > 0.01) {
|
||||
tex.rgba = burn_colour_2.rgba;
|
||||
}
|
||||
}
|
||||
|
||||
return vec4(shadow ? vec3(0.,0.,0.) : tex.xyz, res > adjusted_dissolve ? (shadow ? tex.a*0.3: tex.a) : .0);
|
||||
}
|
||||
|
||||
vec3 oklab2srgb(vec3 c)
|
||||
{
|
||||
float l_ = c.r + 0.3963377774 * c.g + 0.2158037573 * c.b;
|
||||
float m_ = c.r - 0.1055613458 * c.g - 0.0638541728 * c.b;
|
||||
float s_ = c.r - 0.0894841775 * c.g - 1.2914855480 * c.b;
|
||||
|
||||
float l = l_ * l_ * l_;
|
||||
float m = m_ * m_ * m_;
|
||||
float s = s_ * s_ * s_;
|
||||
|
||||
return vec3(
|
||||
4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s,
|
||||
-1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s,
|
||||
-0.0041960863 * l - 0.7034186147 * m + 1.7076147010 * s
|
||||
);
|
||||
}
|
||||
|
||||
vec3 oklch2srgb(vec3 c)
|
||||
{
|
||||
return oklab2srgb(vec3(c.x, c.y * cos(c.z), c.y * sin(c.z)));
|
||||
}
|
||||
|
||||
vec4 effect( vec4 colour, Image texture, vec2 texture_coords, vec2 screen_coords )
|
||||
{
|
||||
MY_HIGHP_OR_MEDIUMP vec4 tex = Texel( texture, texture_coords);
|
||||
|
||||
if (tex.r + tex.g + tex.b > 2.5) {
|
||||
tex = vec4(oklch2srgb(vec3(.95, 0.0325, gaming.y + texture_coords.y * 10)), tex.a);
|
||||
}
|
||||
else if (tex.r + tex.g + tex.b < 1.5) {
|
||||
tex = vec4(oklch2srgb(vec3(.7, 0.0325, gaming.y + texture_coords.y * 10 + 3.14159)), tex.a);
|
||||
}
|
||||
|
||||
MY_HIGHP_OR_MEDIUMP vec2 uv = (((texture_coords)*(image_details)) - texture_details.xy*texture_details.ba)/texture_details.ba;
|
||||
|
||||
if (!shadow && dissolve > 0.01){
|
||||
if (burn_colour_2.a > 0.01){
|
||||
tex.rgb = tex.rgb*(1.-0.6*dissolve) + 0.6*burn_colour_2.rgb*dissolve;
|
||||
} else if (burn_colour_1.a > 0.01){
|
||||
tex.rgb = tex.rgb*(1.-0.6*dissolve) + 0.6*burn_colour_1.rgb*dissolve;
|
||||
}
|
||||
}
|
||||
|
||||
return dissolve_mask(tex, texture_coords, uv);
|
||||
}
|
||||
|
||||
extern MY_HIGHP_OR_MEDIUMP vec2 mouse_screen_pos;
|
||||
extern MY_HIGHP_OR_MEDIUMP float hovering;
|
||||
extern MY_HIGHP_OR_MEDIUMP float screen_scale;
|
||||
|
||||
#ifdef VERTEX
|
||||
vec4 position( mat4 transform_projection, vec4 vertex_position )
|
||||
{
|
||||
if (hovering <= 0.){
|
||||
return transform_projection * vertex_position;
|
||||
}
|
||||
float mid_dist = length(vertex_position.xy - 0.5*love_ScreenSize.xy)/length(love_ScreenSize.xy);
|
||||
vec2 mouse_offset = (vertex_position.xy - mouse_screen_pos.xy)/screen_scale;
|
||||
float scale = 0.2*(-0.03 - 0.3*max(0., 0.3-mid_dist))
|
||||
*hovering*(length(mouse_offset)*length(mouse_offset))/(2. -mid_dist);
|
||||
|
||||
return transform_projection * vertex_position + vec4(0,0,0,scale);
|
||||
}
|
||||
#endif
|
||||
|
|
@ -207,7 +207,7 @@ vec4 effect( vec4 colour, Image texture, vec2 texture_coords, vec2 screen_coords
|
|||
vec4 tex = Texel(texture, texture_coords);
|
||||
vec2 uv = (((texture_coords)*(image_details)) - texture_details.xy*texture_details.ba)/texture_details.ba;
|
||||
|
||||
// Doesn't do anything it makes the shader useable
|
||||
// Dummy, doesn't do anything but at least it makes the shader useable
|
||||
if (uv.x > uv.x * 2.){
|
||||
uv = polygloss;
|
||||
}
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
222
lovely.stub.toml
222
lovely.stub.toml
|
|
@ -1,222 +0,0 @@
|
|||
[manifest]
|
||||
version = "1.0.0"
|
||||
dump_lua = true
|
||||
priority = 115
|
||||
|
||||
[[patches]]
|
||||
[patches.pattern]
|
||||
target = "card.lua"
|
||||
pattern = "if v ~= chosen_joker then"
|
||||
position = "at"
|
||||
payload = """if v ~= chosen_joker and
|
||||
not next(SMODS.find_card('j_jane_saint')) and
|
||||
not next(SMODS.find_card('j_jen_saint')) and
|
||||
not next(SMODS.find_card('j_jen_saint_attuned')) then"""
|
||||
match_indent = true
|
||||
|
||||
[[patches]]
|
||||
[patches.pattern]
|
||||
target = '=[SMODS jen "Jen.lua"]'
|
||||
pattern = "'rot',"
|
||||
position = "after"
|
||||
payload = "'escapey',"
|
||||
match_indent = true
|
||||
|
||||
[[patches]]
|
||||
[patches.pattern]
|
||||
target = '=[SMODS jen "Jen.lua"]'
|
||||
pattern = "if cen.click_noise then"
|
||||
position = "before"
|
||||
payload = """
|
||||
if cen.key == "j_jen_escapey" then
|
||||
local escapey_per = 10
|
||||
cen.click_noise_vol = 0.4
|
||||
cen.click_noise = 'jen_plasticButton' .. math.random(2)
|
||||
cen.click_noise_per = math.random() / escapey_per + (escapey_per * 2 - 1) / (escapey_per * 2)
|
||||
end
|
||||
"""
|
||||
match_indent = true
|
||||
|
||||
[[patches]]
|
||||
[patches.pattern]
|
||||
target = '=[SMODS jen "Jen.lua"]'
|
||||
pattern = "--SOUNDS"
|
||||
position = "after"
|
||||
payload = """
|
||||
SMODS.Sound({
|
||||
key = "plasticButton1",
|
||||
path = "plasticButton1.ogg"
|
||||
})
|
||||
|
||||
SMODS.Sound({
|
||||
key = "plasticButton2",
|
||||
path = "plasticButton2.ogg"
|
||||
})
|
||||
"""
|
||||
match_indent = true
|
||||
|
||||
[[patches]]
|
||||
[patches.pattern]
|
||||
target = '=[SMODS jen "Jen.lua"]'
|
||||
pattern = "local crimbo_quotes = {"
|
||||
position = "before"
|
||||
payload = """
|
||||
local function destructible(card)
|
||||
return card.ability.consumeable and not card.highlighted and not (card.ability or {}).eternal
|
||||
end
|
||||
|
||||
local escapey_quotes = {
|
||||
marble = {"there is no escape..."},
|
||||
normal = {
|
||||
{"", "I can't wait to work with you!"},
|
||||
{"", "Did you need something from me?"},
|
||||
{"", "Oh! I'm just so happy to see you!"},
|
||||
{"Can I say something irrelevant?", "I promise it won't be long."},
|
||||
{"Tell me about your buddies!", "Assuming you have them, anyway."},
|
||||
},
|
||||
scared = {
|
||||
"What am I going to do?!",
|
||||
"I'm not scared, you are!",
|
||||
"Tell me when this is over...",
|
||||
"I can't keep looking at this!",
|
||||
"Let me go hide in this corner... Okay?",
|
||||
},
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
SMODS.Joker {
|
||||
key = "escapey",
|
||||
atlas = "jenescapey",
|
||||
pronouns = "they_them",
|
||||
loc_txt = {
|
||||
name = "Escapey",
|
||||
text = {
|
||||
"{s:1.25}Use to sell {C:attention,s:1.25}tags",
|
||||
"{s:1.25}for {X:money,C:white,s:1.25}$#1#X{s:1.25} each",
|
||||
"If any {C:attention}consumables",
|
||||
"are unselected, sell",
|
||||
"those for {C:money}$#3# {}instead",
|
||||
"{C:inactive,s:0.75,E:1}#4#",
|
||||
"{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"}},
|
||||
attributes = {"destroy_card", "economy", "tag"},
|
||||
pos = {x = 0, y = 0},
|
||||
sinis = {x = 2, y = 0},
|
||||
soul_pos = {x = 1, y = 0},
|
||||
cost = 4,
|
||||
rarity = 2,
|
||||
eternal_compat = true,
|
||||
blueprint_compat = false,
|
||||
perishable_compat = true,
|
||||
inject = not SMODS.Attribute and function(...)
|
||||
SMODS.Joker.inject(...)
|
||||
Bakery_API.usable_jokers.j_jen_escapey = true
|
||||
end or nil,
|
||||
loc_vars = function(_, _, card)
|
||||
local extra = card.ability.extra
|
||||
|
||||
local normal = Jen.sinister and {"", ""} or
|
||||
pseudorandom_element(escapey_quotes.normal, pseudoseed "EscapeyQuotes") or {"", ""}
|
||||
|
||||
local scared = not Jen.sinister and "" or
|
||||
pseudorandom_element(escapey_quotes.scared, pseudoseed "EscapeyQuotes") or ""
|
||||
|
||||
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 jl.canuse() or card.debuff then
|
||||
return false
|
||||
end
|
||||
|
||||
if next(G.GAME.tags) then
|
||||
return true
|
||||
end
|
||||
|
||||
for _, v in ipairs(G.consumeables.cards) do
|
||||
if destructible(v) then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
end,
|
||||
Bakery_use_button_text = function(_, card)
|
||||
return card.ability.extra.escape_label
|
||||
end,
|
||||
Bakery_use_joker = function(self, card)
|
||||
if card.debuff then
|
||||
return
|
||||
end
|
||||
|
||||
local times, xtimes = 0, 0
|
||||
local extra = card.ability.extra
|
||||
|
||||
for _, v in ipairs(G.consumeables.cards) do
|
||||
if destructible(v) then
|
||||
v:start_dissolve({HEX "57ecabff"}, nil, 1.6)
|
||||
times = times + 1
|
||||
end
|
||||
end
|
||||
|
||||
if times == 0 then
|
||||
local delay = #G.GAME.tags >= self.tag_threshold and 0 or 1 / #G.GAME.tags
|
||||
local trigger = delay == 0 and "immediate" or "before"
|
||||
|
||||
for _, v in ipairs(G.GAME.tags) do
|
||||
Q(function()
|
||||
attention_text {
|
||||
scale = 0.7,
|
||||
align = "cm",
|
||||
text = "ESC",
|
||||
cover = v.HUD_tag,
|
||||
colour = G.C.WHITE,
|
||||
cover_colour = G.C.BLACK,
|
||||
hold = 0.3 / G.SETTINGS.GAMESPEED,
|
||||
}
|
||||
|
||||
play_sound("cancel", 1.66, 0.5)
|
||||
v.HUD_tag.states.visible = false
|
||||
v:remove()
|
||||
end, delay, nil, trigger, nil, delay ~= 0)
|
||||
|
||||
xtimes = xtimes + 1
|
||||
end
|
||||
end
|
||||
|
||||
local tag_money = G.GAME.dollars
|
||||
local tag_times = math.pow(extra.xmoney, xtimes) - 1
|
||||
ease_dollars(math.ceil(times * extra.money + tag_money * tag_times))
|
||||
end,
|
||||
tag_threshold = 30,
|
||||
}
|
||||
"""
|
||||
match_indent = true
|
||||
|
||||
[[patches]]
|
||||
[patches.pattern]
|
||||
target = '=[SMODS _ "src/utils.lua"]'
|
||||
pattern = "function SMODS.has_enhancement(card, key)"
|
||||
position = "after"
|
||||
payload = "if not card.config then return false end"
|
||||
match_indent = true
|
||||
22
lovely.toml
22
lovely.toml
|
|
@ -8,10 +8,7 @@ priority = 115
|
|||
target = "card.lua"
|
||||
pattern = "if v ~= chosen_joker then"
|
||||
position = "at"
|
||||
payload = """if v ~= chosen_joker and
|
||||
not next(SMODS.find_card('j_jane_saint')) and
|
||||
not next(SMODS.find_card('j_jen_saint')) and
|
||||
not next(SMODS.find_card('j_jen_saint_attuned')) then"""
|
||||
payload = "if v ~= chosen_joker and not next(SMODS.find_card('j_jane_saint')) then"
|
||||
match_indent = true
|
||||
|
||||
[[patches]]
|
||||
|
|
@ -27,7 +24,7 @@ match_indent = true
|
|||
target = "functions/common_events.lua"
|
||||
pattern = "if v.name == 'Black Hole' or v.name == 'The Soul' or v.hidden then"
|
||||
position = "at"
|
||||
payload = "if Jane and Jane.hidden(v) or not Jane and (v.name == 'Black Hole' or v.name == 'The Soul' or v.hidden) then"
|
||||
payload = "if Jane.hidden(v) then"
|
||||
match_indent = true
|
||||
|
||||
[[patches]]
|
||||
|
|
@ -35,9 +32,7 @@ match_indent = true
|
|||
target = "functions/misc_functions.lua"
|
||||
pattern = "G.GAME.current_round.current_hand.chips*G.GAME.current_round.current_hand.mult"
|
||||
position = "at"
|
||||
payload = '''Jane and
|
||||
Jane.get_chipmult_sum(G.GAME.current_round.current_hand.chips, G.GAME.current_round.current_hand.mult) or
|
||||
G.GAME.current_round.current_hand.chips*G.GAME.current_round.current_hand.mult'''
|
||||
payload = '''Jane.get_chipmult_sum(G.GAME.current_round.current_hand.chips, G.GAME.current_round.current_hand.mult)'''
|
||||
match_indent = true
|
||||
|
||||
[[patches]]
|
||||
|
|
@ -45,10 +40,7 @@ match_indent = true
|
|||
target = "functions/misc_functions.lua"
|
||||
pattern = "local AC = G.SETTINGS.ambient_control"
|
||||
position = "before"
|
||||
payload = '''local jane_rgb = G.C.jane_RGB
|
||||
jane_rgb[1], jane_rgb[2], jane_rgb[3] = Jane.hsv(1 - (G.TIMERS.REAL / 3 % 1), math.sin(G.TIMERS.REAL) / 10 + 0.6, 1)
|
||||
|
||||
if Jane and
|
||||
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
|
||||
|
|
@ -167,7 +159,7 @@ match_indent = true
|
|||
target = "functions/state_events.lua"
|
||||
pattern = '''hand_chips\*mult\)'''
|
||||
position = "at"
|
||||
payload = "Jane and Jane.get_chipmult_sum(hand_chips, mult) or hand_chips*mult)"
|
||||
payload = "Jane.get_chipmult_sum(hand_chips, mult))"
|
||||
|
||||
[[patches]]
|
||||
[patches.pattern]
|
||||
|
|
@ -294,10 +286,6 @@ SMODS.Joker {
|
|||
eternal_compat = true,
|
||||
blueprint_compat = false,
|
||||
perishable_compat = true,
|
||||
inject = not SMODS.Attribute and function(...)
|
||||
SMODS.Joker.inject(...)
|
||||
Bakery_API.usable_jokers.j_jen_escapey = true
|
||||
end or nil,
|
||||
loc_vars = function(_, _, card)
|
||||
local extra = card.ability.extra
|
||||
|
||||
|
|
|
|||
|
|
@ -11,10 +11,10 @@
|
|||
"badge_colour": "3c3cff",
|
||||
"priority": 115,
|
||||
"dependencies": [
|
||||
"Steamodded (>=1.0.0~BETA-0711a)",
|
||||
"Steamodded (>=1.0.0~BETA-1606b)",
|
||||
"Lovely (>=0.6)",
|
||||
"Bakery (>=3.0.0~*)"
|
||||
"Bakery (>=3.2.0~*)"
|
||||
],
|
||||
"conflicts": [],
|
||||
"version": "1.12.14"
|
||||
"version": "1.11.29"
|
||||
}
|
||||
146
src/back.lua
146
src/back.lua
|
|
@ -157,7 +157,7 @@ local rain_world_jokers = {
|
|||
"j_jane_saint",
|
||||
}
|
||||
|
||||
function Jane.add_rain_world_joker()
|
||||
local function add_rain_world_joker()
|
||||
if not G.jokers then
|
||||
return
|
||||
end
|
||||
|
|
@ -200,14 +200,14 @@ back {
|
|||
},
|
||||
},
|
||||
alt_apply = function(_)
|
||||
Jane.q(Jane.add_rain_world_joker)
|
||||
Jane.q(add_rain_world_joker)
|
||||
end,
|
||||
apply = function(_)
|
||||
Jane.q(Jane.add_rain_world_joker)
|
||||
Jane.q(add_rain_world_joker)
|
||||
end,
|
||||
alt_calculate = function(_, _, context)
|
||||
if Jane.is_end_of_ante(context) then
|
||||
Jane.add_rain_world_joker()
|
||||
add_rain_world_joker()
|
||||
end
|
||||
end,
|
||||
}
|
||||
|
|
@ -228,7 +228,7 @@ if Jane.cry then
|
|||
},
|
||||
alt_loc_txt = {
|
||||
name = "Sleeve?",
|
||||
text = {"{C:attention}Ante order {}is", "{C:green,E:1}randomized"},
|
||||
text = {"{C:attention}Ante order {}is {C:green,E:1}randomized"},
|
||||
},
|
||||
alt_apply = function(_)
|
||||
G.GAME.mysterious = true
|
||||
|
|
@ -265,17 +265,6 @@ local function redeem_omen_globe()
|
|||
end)
|
||||
end
|
||||
|
||||
function Jane.increase_rates()
|
||||
for _, v in ipairs(SMODS.ConsumableType.obj_buffer) do
|
||||
local key = v:lower() .. "_rate"
|
||||
local n = G.GAME[key]
|
||||
|
||||
if v ~= "jane_omegaconsumable" and type(n) == "number" then
|
||||
G.GAME[key] = math.max(n, 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
back {
|
||||
key = "obsidian",
|
||||
atlas = "janedecks",
|
||||
|
|
@ -305,12 +294,10 @@ back {
|
|||
alt_apply = function(_)
|
||||
G.GAME.alt_obsidian = true
|
||||
G.GAME.obsidian = true
|
||||
Jane.increase_rates()
|
||||
redeem_omen_globe()
|
||||
end,
|
||||
apply = function(_)
|
||||
G.GAME.obsidian = true
|
||||
Jane.increase_rates()
|
||||
redeem_omen_globe()
|
||||
end,
|
||||
}
|
||||
|
|
@ -346,7 +333,7 @@ function get_current_pool(_type, ...)
|
|||
return pool, pool_key
|
||||
end
|
||||
|
||||
function Jane.apply_orrery()
|
||||
local function apply_orrery()
|
||||
Jane.q(function()
|
||||
local orrery = {}
|
||||
G.GAME.orrery = orrery
|
||||
|
|
@ -361,7 +348,7 @@ function Jane.apply_orrery()
|
|||
end)
|
||||
end
|
||||
|
||||
function Jane.rebalance_orrery()
|
||||
local function rebalance_orrery()
|
||||
local function small(x)
|
||||
return type(x) == "table" and x:to_number() or x
|
||||
end
|
||||
|
|
@ -454,12 +441,12 @@ back {
|
|||
},
|
||||
},
|
||||
alt_apply = function(_)
|
||||
Jane.apply_orrery()
|
||||
apply_orrery()
|
||||
end,
|
||||
apply = function(_)
|
||||
Jane.apply_orrery()
|
||||
apply_orrery()
|
||||
end,
|
||||
calculate = Jane.rebalance_orrery,
|
||||
calculate = rebalance_orrery,
|
||||
alt_calculate = function(_, _, context)
|
||||
local function small(x)
|
||||
return type(x) == "table" and x:to_number() or x
|
||||
|
|
@ -493,7 +480,7 @@ back {
|
|||
ease_discard(new_discards, true)
|
||||
end
|
||||
|
||||
Jane.rebalance_orrery()
|
||||
rebalance_orrery()
|
||||
end,
|
||||
}
|
||||
|
||||
|
|
@ -663,39 +650,6 @@ back {
|
|||
end,
|
||||
}
|
||||
|
||||
function Jane.display_omega_odds()
|
||||
local omega_replacement = ((G.GAME or {}).modifiers or {}).omega_replacement
|
||||
|
||||
if not omega_replacement or omega_replacement == 0 then
|
||||
return
|
||||
end
|
||||
|
||||
local handy_speed = ((Handy or {}).speed_multiplier or {}).value or 1
|
||||
local pitch = 0.9 + (0.2 * math.random())
|
||||
|
||||
play_sound("jane_pop", pitch * 0.75, 0.75)
|
||||
play_sound("jane_pop", pitch * 1.5, 0.75)
|
||||
|
||||
Jane.card_status_text(
|
||||
nil,
|
||||
"Omega Cards are now a 1 in " .. number_format(1 / G.GAME.modifiers.omega_replacement),
|
||||
0,
|
||||
0.0005,
|
||||
G.C.jane_RGB,
|
||||
1.5,
|
||||
nil,
|
||||
nil,
|
||||
nil,
|
||||
"cm",
|
||||
"jane_pop",
|
||||
0.75,
|
||||
pitch,
|
||||
nil,
|
||||
nil,
|
||||
G.SETTINGS.GAMESPEED * handy_speed * 3
|
||||
)
|
||||
end
|
||||
|
||||
local banned_keys = {
|
||||
sleeve_Seen_Seen = true,
|
||||
sleeve_jane_omega = true,
|
||||
|
|
@ -708,8 +662,8 @@ back {
|
|||
loc_txt = {
|
||||
name = "Omega Deck",
|
||||
text = {
|
||||
"{C:jane_RGB}Omega {}cards may appear",
|
||||
"Odds increase per {C:attention}ante",
|
||||
"Applies the {C:legendary,E:1}upsides",
|
||||
"of {C:attention}every Jane deck",
|
||||
},
|
||||
},
|
||||
alt_loc_txt = {
|
||||
|
|
@ -736,19 +690,21 @@ back {
|
|||
end
|
||||
end,
|
||||
apply = function(_)
|
||||
for _, v in ipairs({
|
||||
"j_Bakery_Lua",
|
||||
not Jane.cry and "tag_charm" or nil,
|
||||
"tag_meteor",
|
||||
"tag_ethereal",
|
||||
"c_jane_token_tag_charm",
|
||||
"c_jane_token_tag_meteor",
|
||||
"c_jane_token_tag_ethereal",
|
||||
}) do
|
||||
G.GAME.banned_keys[v] = true
|
||||
end
|
||||
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
|
||||
|
||||
G.GAME.modifiers.omega_replacement = (not _G["MP"] or not _G["MP"]["LOBBY"]) and 1 / 301 or 0
|
||||
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)
|
||||
G.GAME.tortoise = true
|
||||
G.GAME.obsidian = true
|
||||
G.GAME.mysterious = true
|
||||
save_run()
|
||||
end)
|
||||
end,
|
||||
alt_calculate = function(_, ...)
|
||||
for _, v in pairs(G.P_CENTERS) do
|
||||
|
|
@ -764,44 +720,14 @@ back {
|
|||
G.hand.config.card_limit = math.max(G.hand.config.card_limit or 12, 12)
|
||||
end,
|
||||
calculate = function(_, _, context)
|
||||
if not _G["MP"] or not _G["MP"]["LOBBY"] then
|
||||
if Jane.is_end_of_ante(context) then
|
||||
G.GAME.modifiers.omega_replacement = G.GAME.modifiers.omega_replacement ^ 0.95
|
||||
Jane.q(Jane.display_omega_odds)
|
||||
end
|
||||
rebalance_orrery()
|
||||
G.GAME.mysterious = nil
|
||||
|
||||
return
|
||||
if Jane.is_end_of_ante(context) then
|
||||
Jane.q(function()
|
||||
Jane.empowered()
|
||||
end)
|
||||
end
|
||||
|
||||
if not context.end_of_round or
|
||||
context.individual or
|
||||
context.repetition or
|
||||
context.blueprint then
|
||||
return
|
||||
end
|
||||
|
||||
local blind = ({
|
||||
["Small Blind"] = 8,
|
||||
["Big Blind"] = 5,
|
||||
})[G.GAME.blind.name] or 2
|
||||
|
||||
local ante = G.GAME.round_resets.ante
|
||||
local chance = 1 - math.pow(300 / 301, ante * 9 - blind)
|
||||
local key = "omega_mp_" .. number_format(ante) .. "_" .. number_format(blind)
|
||||
|
||||
Jane.q(function()
|
||||
G.GAME.modifiers.omega_replacement = chance
|
||||
Jane.display_omega_odds()
|
||||
G.GAME.modifiers.omega_replacement = 0
|
||||
end)
|
||||
|
||||
if pseudorandom(key) >= chance then
|
||||
return
|
||||
end
|
||||
|
||||
Jane.q(function()
|
||||
Jane.omega(key)
|
||||
end)
|
||||
end,
|
||||
}
|
||||
|
||||
|
|
@ -1070,9 +996,3 @@ function CardArea:emplace(card, location, stay_flipped)
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
local orig_add_to_pool = SMODS.add_to_pool
|
||||
|
||||
function SMODS.add_to_pool(...)
|
||||
return G.GAME.obsidian or orig_add_to_pool(...)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -291,7 +291,6 @@ if Jane.cry then
|
|||
cost = 2,
|
||||
weight = 0.24,
|
||||
create_card = function(_, _)
|
||||
---@diagnostic disable-next-line: return-type-mismatch
|
||||
return create_card("Code", G.pack_cards, nil, nil, true, true, nil, "cry_program_3")
|
||||
end,
|
||||
ease_background_colour = function(_)
|
||||
|
|
@ -339,7 +338,6 @@ for i = 1, 2 do
|
|||
return {vars = {card.ability.choose, card.ability.extra}}
|
||||
end,
|
||||
create_card = function(_, _, _)
|
||||
---@diagnostic disable-next-line: return-type-mismatch
|
||||
return create_card("jane_tokens", G.pack_cards, nil, nil, true, true, nil, "jane_tokens" .. i)
|
||||
end,
|
||||
create_UIBox = function(_)
|
||||
|
|
|
|||
|
|
@ -93,45 +93,3 @@ G.localization.misc.v_text.ch_c_jane_downpour2 =
|
|||
|
||||
G.localization.misc.v_text.ch_c_jane_downpour3 =
|
||||
{"{C:attention}Boss Blind {}is defeated, or {C:red}lose"}
|
||||
|
||||
SMODS.Challenge {
|
||||
key = "jerma",
|
||||
loc_txt = {name = "Jerma"},
|
||||
rules = {custom = {{id = "jane_jerma1"}, {id = "jane_jerma2"}}},
|
||||
apply = function(_)
|
||||
Jane.apply_orrery()
|
||||
Jane.increase_rates()
|
||||
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
|
||||
G.GAME.modifiers.omega_replacement = (not _G["MP"] or not _G["MP"]["LOBBY"]) and 1 / 301 or 0
|
||||
|
||||
Jane.q(function()
|
||||
Jane.add_rain_world_joker()
|
||||
local wee = create_card("Joker", G.jokers, nil, nil, nil, nil, "j_wee", "weeck")
|
||||
G.jokers:emplace(wee)
|
||||
G.GAME.tortoise = true
|
||||
G.GAME.obsidian = true
|
||||
G.GAME.mysterious = true
|
||||
save_run()
|
||||
end)
|
||||
end,
|
||||
calculate = function(card, context)
|
||||
G.P_CENTERS.b_jane_omega:calculate(card, context)
|
||||
Jane.rebalance_orrery()
|
||||
G.GAME.mysterious = nil
|
||||
|
||||
if Jane.is_end_of_ante(context) then
|
||||
Jane.q(function()
|
||||
Jane.empowered()
|
||||
end)
|
||||
end
|
||||
end,
|
||||
}
|
||||
|
||||
G.localization.misc.v_text.ch_c_jane_jerma1 =
|
||||
{"Applies the {C:legendary,E:1}upsides"}
|
||||
|
||||
G.localization.misc.v_text.ch_c_jane_jerma2 =
|
||||
{"of {C:attention}every Jane deck"}
|
||||
|
|
|
|||
|
|
@ -1,61 +1,15 @@
|
|||
SMODS.Shader({key = "moire", path = "moire.fs"})
|
||||
SMODS.Shader({key = "gaming", path = "gaming.fs"})
|
||||
SMODS.Shader({key = "polygloss", path = "polygloss.fs"})
|
||||
|
||||
SMODS.Sound({key = "e_jumbo", path = "e_jumbo.ogg"})
|
||||
SMODS.Sound({key = "e_moire", path = "e_moire.ogg"})
|
||||
SMODS.Sound({key = "e_gaming", path = "e_gaming.ogg"})
|
||||
SMODS.Sound({key = "e_polygloss", path = "e_polygloss.ogg"})
|
||||
|
||||
local function get_weight(self)
|
||||
return self.weight *
|
||||
G.GAME.edition_rate *
|
||||
(G.GAME.modifiers.omega_replacement and 0 or 1) *
|
||||
(next(SMODS.find_card "j_jane_saint") and 10 or 1)
|
||||
end
|
||||
|
||||
SMODS.Edition({
|
||||
key = "gaming",
|
||||
loc_txt = {
|
||||
name = "Gaming",
|
||||
label = "Gaming",
|
||||
text = {
|
||||
"{C:blue}+Mult{} Chips",
|
||||
"{C:red}+Chips{} Mult",
|
||||
},
|
||||
},
|
||||
config = {e_chips = 1.2, e_mult = 0.8},
|
||||
sound = {sound = "jane_e_gaming", per = 1, vol = 0.7},
|
||||
weight = 1,
|
||||
extra_cost = 20,
|
||||
in_shop = true,
|
||||
no_shadow = true,
|
||||
apply_to_float = false,
|
||||
shader = "jane_gaming",
|
||||
disable_base_shader = true,
|
||||
loc_vars = function(self, _, _)
|
||||
return {vars = {self.config.e_chips, self.config.e_mult}}
|
||||
end,
|
||||
calculate = function(_, card, context)
|
||||
if not context.post_joker and (not context.main_scoring or context.cardarea ~= G.play) then
|
||||
return
|
||||
end
|
||||
|
||||
return {
|
||||
extra = {
|
||||
card = card,
|
||||
chips = mult,
|
||||
colour = G.C.jane_RGB,
|
||||
extra = {
|
||||
card = card,
|
||||
mult = hand_chips + mult,
|
||||
colour = G.C.jane_RGB,
|
||||
},
|
||||
},
|
||||
}
|
||||
end,
|
||||
})
|
||||
|
||||
SMODS.Edition({
|
||||
key = "polygloss",
|
||||
loc_txt = {
|
||||
|
|
@ -73,19 +27,21 @@ SMODS.Edition({
|
|||
},
|
||||
config = {
|
||||
mult = 2,
|
||||
chips = 21,
|
||||
chips = 22,
|
||||
x_mult = 1.2,
|
||||
p_dollars = 1,
|
||||
e_mult = Jane.cry and 1.02 or nil,
|
||||
},
|
||||
sound = {sound = "jane_e_polygloss", per = 1.2, vol = 0.4},
|
||||
weight = 7,
|
||||
extra_cost = 5,
|
||||
weight = 10,
|
||||
extra_cost = 2,
|
||||
in_shop = true,
|
||||
shader = "jane_polygloss",
|
||||
apply_to_float = false,
|
||||
loc_vars = function(self, _, _)
|
||||
local vars = {self.config.chips, self.config.mult, self.config.x_mult}
|
||||
local vars = {self.config.chips}
|
||||
vars[#vars + 1] = self.config.mult
|
||||
vars[#vars + 1] = self.config.x_mult
|
||||
vars[#vars + 1] = self.config.e_mult
|
||||
vars[#vars + 1] = self.config.p_dollars
|
||||
return {vars = vars}
|
||||
|
|
@ -115,7 +71,7 @@ SMODS.Edition({
|
|||
get_weight = get_weight,
|
||||
})
|
||||
|
||||
SMODS.Edition({
|
||||
local moire = SMODS.Edition({
|
||||
key = "moire",
|
||||
loc_txt = {
|
||||
name = "Moire",
|
||||
|
|
@ -128,10 +84,11 @@ SMODS.Edition({
|
|||
config = {e_chips = 0.8, e_mult = 1.2},
|
||||
sound = {sound = "jane_e_moire", per = 1, vol = 0.7},
|
||||
weight = 1,
|
||||
extra_cost = 20,
|
||||
extra_cost = 10,
|
||||
in_shop = true,
|
||||
shader = "jane_moire",
|
||||
apply_to_float = false,
|
||||
get_weight = get_weight,
|
||||
loc_vars = function(self, _, _)
|
||||
return {vars = {self.config.e_chips, self.config.e_mult}}
|
||||
end,
|
||||
|
|
@ -160,20 +117,13 @@ local jumbo_modifier = Jane.cry and 100 or 2
|
|||
local jumbo = SMODS.Edition({
|
||||
key = "jumbo",
|
||||
loc_txt = {
|
||||
name = "{s:" .. math.pow(Jane.config.wee_sizemod, 2) .. "}" .. "Jumbo",
|
||||
name = "Jumbo",
|
||||
label = "Jumbo",
|
||||
text = {
|
||||
"{s:" .. Jane.config.wee_sizemod .. "}" ..
|
||||
"All values are",
|
||||
"{C:attention,s:" .. Jane.config.wee_sizemod .. "}" ..
|
||||
"multiplied" ..
|
||||
"{s:" .. Jane.config.wee_sizemod .. "}" ..
|
||||
" by " ..
|
||||
"{C:attention,s:" .. Jane.config.wee_sizemod .. "}" ..
|
||||
jumbo_modifier,
|
||||
"{C:inactive,s:" .. Jane.config.wee_sizemod .. "}" ..
|
||||
"(If possible)",
|
||||
"{C:inactive,E:1}Whoa, it's huge!!",
|
||||
"All card values are",
|
||||
"{C:attention}multiplied{} by {C:attention}up to " .. jumbo_modifier,
|
||||
"{C:inactive}(If possible)",
|
||||
"{C:inactive,E:1,s:0.75}Whoa, it's huge!!{}",
|
||||
},
|
||||
},
|
||||
on_apply = function(card)
|
||||
|
|
@ -245,8 +195,8 @@ local jumbo = SMODS.Edition({
|
|||
end
|
||||
end,
|
||||
sound = {sound = "jane_e_jumbo", per = 1, vol = 0.5},
|
||||
weight = 7,
|
||||
extra_cost = 10,
|
||||
weight = 6,
|
||||
extra_cost = 5,
|
||||
in_shop = true,
|
||||
shader = false,
|
||||
apply_to_float = false,
|
||||
|
|
|
|||
63
src/main.lua
63
src/main.lua
|
|
@ -27,25 +27,6 @@ if not Jane.misprintize then
|
|||
assert(SMODS.load_file("src/misprintize.lua"))()
|
||||
end
|
||||
|
||||
local function update_omega_from_collection()
|
||||
local buffer = SMODS.ConsumableType.visible_buffer
|
||||
|
||||
if not buffer then
|
||||
return
|
||||
end
|
||||
|
||||
for i = 1, #buffer do
|
||||
if buffer[i] == "jane_omegaconsumable" then
|
||||
table.remove(buffer, i)
|
||||
i = i - 1
|
||||
end
|
||||
end
|
||||
|
||||
if G.GAME.modifiers.omega_replacement then
|
||||
buffer[#buffer + 1] = "jane_omegaconsumable"
|
||||
end
|
||||
end
|
||||
|
||||
function Jane.can_use()
|
||||
return not (((G.play and #G.play.cards > 0) or
|
||||
(G.CONTROLLER.locked) or
|
||||
|
|
@ -70,8 +51,7 @@ function Jane.card_status_text(
|
|||
volume,
|
||||
pitch,
|
||||
trigger,
|
||||
f,
|
||||
hold
|
||||
f
|
||||
)
|
||||
if (delay or 0) <= 0 then
|
||||
if type(f) == "function" then
|
||||
|
|
@ -81,7 +61,7 @@ function Jane.card_status_text(
|
|||
attention_text({
|
||||
text = text,
|
||||
scale = size or 1,
|
||||
hold = hold or 0.7,
|
||||
hold = 0.7,
|
||||
backdrop_colour = colour or (G.C.FILTER),
|
||||
align = align or "bm",
|
||||
major = card,
|
||||
|
|
@ -113,7 +93,7 @@ function Jane.card_status_text(
|
|||
attention_text({
|
||||
text = text,
|
||||
scale = size or 1,
|
||||
hold = (hold or 0.7) + (delay or 0),
|
||||
hold = 0.7 + (delay or 0),
|
||||
backdrop_colour = colour or (G.C.FILTER),
|
||||
align = align or "bm",
|
||||
major = card,
|
||||
|
|
@ -289,13 +269,6 @@ end
|
|||
local orig_can_highlight = CardArea.can_highlight
|
||||
|
||||
function CardArea:can_highlight(...)
|
||||
for _, v in pairs(type(self.cards) == "table" and self.cards or {}) do
|
||||
if (((v or {}).config or {}).center or {}).key == "c_jane_fool_omega" then
|
||||
self.config.highlighted_limit = math.max(self.config.highlighted_limit, 2)
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
if self ~= G.consumeables then
|
||||
return orig_can_highlight(self, ...)
|
||||
end
|
||||
|
|
@ -332,47 +305,20 @@ end
|
|||
local orig_menu = Game.main_menu
|
||||
|
||||
function Game:main_menu(change_context)
|
||||
orig_menu(self, change_context)
|
||||
|
||||
G.ARGS.score_intensity.ambientSurreal1,
|
||||
G.ARGS.score_intensity.ambientSurreal2,
|
||||
G.ARGS.score_intensity.ambientSurreal3,
|
||||
G.ARGS.score_intensity.ambientSurreal4 = 0, 0, 0, 0
|
||||
|
||||
update_omega_from_collection()
|
||||
G.C.BACKGROUND.C[4] = 1
|
||||
G.C.BACKGROUND.L[4] = 1
|
||||
Jane.sinister = nil
|
||||
orig_menu(self, change_context)
|
||||
end
|
||||
|
||||
local orig_start_run = Game.start_run
|
||||
|
||||
function Game:start_run(...)
|
||||
orig_start_run(self, ...)
|
||||
self.GAME.modifiers.omegas_found = nil
|
||||
Jane.q(Jane.display_omega_odds)
|
||||
update_omega_from_collection()
|
||||
|
||||
if self.GAME.banned_keys then
|
||||
for _, v in pairs(Jane.config.bans) do
|
||||
self.GAME.banned_keys[v] = true
|
||||
end
|
||||
end
|
||||
|
||||
if self.GAME.banned_keys.j_Bakery_Lua and next(SMODS.find_card("j_Bakery_Lua")) then
|
||||
G.C.BACKGROUND.L[4] = 0
|
||||
end
|
||||
end
|
||||
|
||||
local orig_card_collection_UIBox = SMODS.card_collection_UIBox
|
||||
|
||||
function SMODS.card_collection_UIBox(_pool, rows, ...)
|
||||
if _pool == G.P_CENTER_POOLS.Edition then
|
||||
rows[1] = rows[1] + 1
|
||||
rows[2] = rows[2] + 1
|
||||
end
|
||||
|
||||
return orig_card_collection_UIBox(_pool, rows, ...)
|
||||
end
|
||||
|
||||
local orig_draw_card = draw_card
|
||||
|
|
@ -416,7 +362,6 @@ for _, v in ipairs({
|
|||
"challenge",
|
||||
"edition",
|
||||
"joker",
|
||||
"omega",
|
||||
"slugcat",
|
||||
"spectral",
|
||||
"tarot",
|
||||
|
|
|
|||
1342
src/omega.lua
1342
src/omega.lua
File diff suppressed because it is too large
Load diff
|
|
@ -5,24 +5,11 @@ for i = 1, 8 do
|
|||
SMODS.Sound({key = "gore" .. i, path = "gore" .. i .. ".ogg"})
|
||||
end
|
||||
|
||||
local function playing()
|
||||
return ({
|
||||
[G.STATES.PLAY_TAROT] = true,
|
||||
[G.STATES.HAND_PLAYED] = true,
|
||||
[G.STATES.DRAW_TO_HAND] = true,
|
||||
[G.STATES.SELECTING_HAND] = true,
|
||||
})[G.STATE]
|
||||
end
|
||||
|
||||
SMODS.Sound({
|
||||
key = "music_attuned",
|
||||
path = "music_attuned.ogg",
|
||||
volume = 1,
|
||||
select_music_track = function()
|
||||
if not playing() or next(SMODS.find_card("j_Bakery_Lua")) then
|
||||
return -1 / 0
|
||||
end
|
||||
|
||||
for _, v in pairs(SMODS.find_card("j_jane_saint")) do
|
||||
if v.ability.extra.is_attuned then
|
||||
return 201
|
||||
|
|
@ -38,7 +25,7 @@ SMODS.Sound({
|
|||
path = "music_attuned_sinister.ogg",
|
||||
volume = 1,
|
||||
select_music_track = function()
|
||||
if not Jane.sinister or not playing() or next(SMODS.find_card("j_Bakery_Lua")) then
|
||||
if not Jane.sinister then
|
||||
return -1 / 0
|
||||
end
|
||||
|
||||
|
|
@ -52,16 +39,6 @@ SMODS.Sound({
|
|||
end,
|
||||
})
|
||||
|
||||
SMODS.Sound({
|
||||
key = "music_lua",
|
||||
path = "music_lua.ogg",
|
||||
pitch = 1,
|
||||
volume = 1,
|
||||
select_music_track = function()
|
||||
return playing() and next(SMODS.find_card("j_Bakery_Lua")) and 203 or -1 / 0
|
||||
end,
|
||||
})
|
||||
|
||||
for _, v in pairs({
|
||||
"artificer",
|
||||
"hunter",
|
||||
|
|
@ -315,7 +292,7 @@ SMODS.Joker {
|
|||
atlas = "janegourmand",
|
||||
loc_txt = {
|
||||
name = "The Gourmand",
|
||||
text = {"All cards are {C:dark_edition,s:" .. Jane.config.wee_sizemod .. "}Jumbo"},
|
||||
text = {"All cards are {C:dark_edition}Jumbo"},
|
||||
},
|
||||
pos = {x = 0, y = 0},
|
||||
soul_pos = {x = 1, y = 0},
|
||||
|
|
@ -336,6 +313,7 @@ local function add_to_consumable_ability_by(n)
|
|||
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 {}
|
||||
|
||||
|
|
@ -434,7 +412,6 @@ SMODS.Joker {
|
|||
return not card.debuff and Jane.can_use() and next(G.hand.highlighted)
|
||||
end,
|
||||
Bakery_use_joker = function(_, card)
|
||||
---@diagnostic disable-next-line: deprecated
|
||||
local removed = {unpack(G.hand.highlighted)}
|
||||
|
||||
for _, v in pairs(removed) do
|
||||
|
|
@ -665,6 +642,9 @@ SMODS.Joker {
|
|||
}
|
||||
end,
|
||||
draw = function(_, card)
|
||||
local rgb = G.C.jane_RGB
|
||||
rgb[1], rgb[2], rgb[3] = Jane.hsv(1 - (G.TIMERS.REAL / 3 % 1), math.sin(G.TIMERS.REAL) / 10 + 0.6, 1)
|
||||
|
||||
local _ = card and
|
||||
card.children.floating_sprite and
|
||||
card.children.floating_sprite:set_sprite_pos({x = card.ability.extra.is_attuned and 2 or 1, y = 0})
|
||||
|
|
|
|||
|
|
@ -13,15 +13,6 @@ SMODS.ConsumableType {
|
|||
loc_txt = {
|
||||
collection = "Tokens",
|
||||
name = "Token",
|
||||
undiscovered = {
|
||||
name = "Not Discovered",
|
||||
text = {
|
||||
"Purchase or use",
|
||||
"this card in an",
|
||||
"unseeded run to",
|
||||
"learn what it does",
|
||||
},
|
||||
},
|
||||
},
|
||||
shop_rate = 0,
|
||||
collection_rows = {6, 6},
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue