Add Escapey joker, move Peppino to Cryptid, nerf challenge goal
This commit is contained in:
parent
fcc0a52aa4
commit
da1fd90194
7 changed files with 131 additions and 6 deletions
BIN
assets/1x/default/j_jane_escapey.png
Normal file
BIN
assets/1x/default/j_jane_escapey.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.2 KiB |
BIN
assets/2x/default/j_jane_escapey.png
Normal file
BIN
assets/2x/default/j_jane_escapey.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.2 KiB |
|
|
@ -17,5 +17,5 @@
|
||||||
"conflicts": [
|
"conflicts": [
|
||||||
"Jen"
|
"Jen"
|
||||||
],
|
],
|
||||||
"version": "1.5.38"
|
"version": "1.6.0"
|
||||||
}
|
}
|
||||||
|
|
@ -28,7 +28,7 @@ SMODS.Challenge {
|
||||||
{id = "jane_downpour4"},
|
{id = "jane_downpour4"},
|
||||||
}},
|
}},
|
||||||
apply = function(_)
|
apply = function(_)
|
||||||
G.GAME.win_ante = 16
|
G.GAME.win_ante = 10
|
||||||
|
|
||||||
for _, v in ipairs(rain_world_jokers) do
|
for _, v in ipairs(rain_world_jokers) do
|
||||||
Jane.q(function()
|
Jane.q(function()
|
||||||
|
|
@ -83,4 +83,4 @@ G.localization.misc.v_text.ch_c_jane_downpour3 =
|
||||||
{"{C:attention}Boss Blind {}is defeated, or {C:red}lose"}
|
{"{C:attention}Boss Blind {}is defeated, or {C:red}lose"}
|
||||||
|
|
||||||
G.localization.misc.v_text.ch_c_jane_downpour4 =
|
G.localization.misc.v_text.ch_c_jane_downpour4 =
|
||||||
{"Win on {C:attention}Ante 16"}
|
{"Win on {C:attention}Ante 10"}
|
||||||
|
|
|
||||||
102
src/joker.lua
102
src/joker.lua
|
|
@ -1,4 +1,4 @@
|
||||||
for _, v in pairs({"7granddad", "betmma", "honey", "oxy", "maxie", "peppino"}) do
|
for _, v in pairs({"7granddad", "betmma", "escapey", "honey", "oxy", "maxie", Cryptid and "peppino" or nil}) do
|
||||||
SMODS.Atlas {
|
SMODS.Atlas {
|
||||||
px = 71,
|
px = 71,
|
||||||
py = 95,
|
py = 95,
|
||||||
|
|
@ -48,6 +48,10 @@ local granddad_palette = {
|
||||||
HEX("6c0700"),
|
HEX("6c0700"),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
local function destructible(card)
|
||||||
|
return not card.highlighted and not (card.ability or {}).eternal
|
||||||
|
end
|
||||||
|
|
||||||
local function food_jokers_count()
|
local function food_jokers_count()
|
||||||
if not G.jokers or not next(G.jokers.cards) then
|
if not G.jokers or not next(G.jokers.cards) then
|
||||||
return 0
|
return 0
|
||||||
|
|
@ -116,6 +120,98 @@ local function voucher_count()
|
||||||
return count
|
return count
|
||||||
end
|
end
|
||||||
|
|
||||||
|
SMODS.Joker {
|
||||||
|
key = "escapey",
|
||||||
|
atlas = "janeescapey",
|
||||||
|
pronouns = "they_them",
|
||||||
|
loc_txt = {
|
||||||
|
name = "Escapey",
|
||||||
|
text = {
|
||||||
|
"Use to sell {C:attention}tags",
|
||||||
|
"for {X:money,C:white}$#1#X{} each",
|
||||||
|
"{s:0.75}If any {C:attention,s:0.75}consumables",
|
||||||
|
"{s:0.75}are unselected, sell",
|
||||||
|
"{s:0.75}those for {C:money,s:0.75}$#2# {s:0.75}instead",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
config = {extra = {money = 2, xmoney = 1.5}},
|
||||||
|
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,
|
||||||
|
loc_vars = function(_, _, card)
|
||||||
|
return {vars = {card.ability.extra.xmoney, card.ability.extra.money}}
|
||||||
|
end,
|
||||||
|
Bakery_can_use = function(_, card)
|
||||||
|
if not Jane.can_use() or card.debuff or G.GAME.used_vouchers.v_jane_token_voucher 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.debuff or G.GAME.used_vouchers.v_jane_token_voucher) and "DEBUFFED" or "ESCAPE"
|
||||||
|
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
|
||||||
|
Jane.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
|
||||||
|
|
||||||
|
ease_dollars(math.ceil(times * extra.money + G.GAME.dollars * (math.pow(extra.xmoney, xtimes) - 1)))
|
||||||
|
end,
|
||||||
|
tag_threshold = 30,
|
||||||
|
}
|
||||||
|
|
||||||
local maxie_quotes = {
|
local maxie_quotes = {
|
||||||
normal = {
|
normal = {
|
||||||
"Hey! I hope we can become great friends together!",
|
"Hey! I hope we can become great friends together!",
|
||||||
|
|
@ -608,6 +704,10 @@ SMODS.Joker {
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if not Cryptid then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
SMODS.Joker {
|
SMODS.Joker {
|
||||||
key = "peppino",
|
key = "peppino",
|
||||||
atlas = "janepeppino",
|
atlas = "janepeppino",
|
||||||
|
|
|
||||||
22
src/main.lua
22
src/main.lua
|
|
@ -206,6 +206,28 @@ function Jane.q(func, delay, timer, trigger, blockable, blocking)
|
||||||
}))
|
}))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local orig_can_highlight = CardArea.can_highlight
|
||||||
|
|
||||||
|
function CardArea:can_highlight(...)
|
||||||
|
if self ~= G.consumeables then
|
||||||
|
return orig_can_highlight(self, ...)
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Allows more flexibility when using the Escapey joker to delete specific consumables.
|
||||||
|
self.config.highlighted_limit = 1 / 0
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
local orig_highlight = Card.highlight
|
||||||
|
|
||||||
|
function Card:highlight(is_highlighted, ...)
|
||||||
|
self.highlighted = is_highlighted
|
||||||
|
|
||||||
|
if not G.CONTROLLER.HID.controller then
|
||||||
|
return orig_highlight(self, is_highlighted, ...)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function Card:gc()
|
function Card:gc()
|
||||||
return (self.config or {}).center or {}
|
return (self.config or {}).center or {}
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -35,12 +35,15 @@ SMODS.Voucher {
|
||||||
atlas = "janetokenvoucher",
|
atlas = "janetokenvoucher",
|
||||||
loc_txt = {
|
loc_txt = {
|
||||||
name = "Token Voucher",
|
name = "Token Voucher",
|
||||||
text = {"{C:attention}Tokens {}can appear", "in the shop", SMODS.Mods.Roland and "{C:inactive}(Permanently disables Escapey)"},
|
text = {"{C:attention}Tokens {}can appear", "in the shop", "{C:inactive}(Disables Escapey)"},
|
||||||
},
|
},
|
||||||
pos = {x = 0, y = 0},
|
pos = {x = 0, y = 0},
|
||||||
cost = 10,
|
cost = 10,
|
||||||
|
loc_vars = function(_, info_queue, _)
|
||||||
|
info_queue[#info_queue + 1] = G.P_CENTERS.j_jane_escapey
|
||||||
|
return {vars = {}}
|
||||||
|
end,
|
||||||
redeem = function(_, _)
|
redeem = function(_, _)
|
||||||
G.GAME.jane_tokens_rate = 1.5
|
G.GAME.jane_tokens_rate = 1.5
|
||||||
G.GAME.modifiers.Roland_debuff_escapey = true
|
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue