152 lines
3.8 KiB
Lua
152 lines
3.8 KiB
Lua
SMODS.Atlas {
|
|
px = 34,
|
|
py = 34,
|
|
frames = 21,
|
|
key = "janeblinds",
|
|
atlas_table = "ANIMATION_ATLAS",
|
|
path = Jane.config.texture_pack .. "/bl_jane_blinds.png"
|
|
}
|
|
|
|
local final_operations = {
|
|
[1] = {"+", "UI_CHIPS"},
|
|
[2] = {"X", "UI_MULT"},
|
|
[3] = {"^", G.C.jane_RGB},
|
|
}
|
|
|
|
local function offset_operator(by)
|
|
local function set(number)
|
|
if G.GAME then
|
|
G.GAME.operator = math.max(math.min(number, 3), 1)
|
|
end
|
|
end
|
|
|
|
local previous = Jane.get_operator()
|
|
set(by + previous)
|
|
by = Jane.get_operator()
|
|
local txt = final_operations[by][1] ---@diagnostic disable-next-line: cast-local-type
|
|
local col = type(final_operations[by][2]) == "table" and final_operations[by][2] or G.C[final_operations[by][2]]
|
|
|
|
Jane.q(function()
|
|
local changed_text = false
|
|
|
|
for _, outer in pairs(G.STAGE_OBJECTS) do
|
|
if type(outer) == "table" then
|
|
for _, inner in pairs(outer) do
|
|
if type(inner) == "table" and
|
|
type(inner.config) == "table" and
|
|
(inner.config.text == final_operations[previous][1] or
|
|
inner.config.text == final_operations[2][1]) and
|
|
inner.config.text_drawable then
|
|
if inner.config.text ~= txt then
|
|
changed_text = true
|
|
end
|
|
|
|
inner.config.text = txt
|
|
inner.config.text_drawable:set(txt)
|
|
inner.config.colour = col
|
|
inner:juice_up(0.8, 0.5)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
if changed_text then
|
|
play_sound("button", 1.1, 0.65)
|
|
end
|
|
|
|
return true
|
|
end)
|
|
end
|
|
|
|
SMODS.Blind {
|
|
loc_txt = {
|
|
name = "The Descending",
|
|
text = {"Decrease Chip-Mult", "operator by 1 level"}
|
|
},
|
|
key = "descending",
|
|
config = {},
|
|
boss = {min = 1, max = 10, hardcore = true},
|
|
boss_colour = HEX("b200ff"),
|
|
atlas = "janeblinds",
|
|
pos = {x = 0, y = 0},
|
|
vars = {},
|
|
dollars = 15,
|
|
mult = Cryptid and 0.5 or 0.25,
|
|
defeat = function(_)
|
|
if not G.GAME.blind.disabled then
|
|
offset_operator(1)
|
|
end
|
|
end,
|
|
disable = function(self)
|
|
offset_operator(1)
|
|
end,
|
|
drawn_to_hand = function(_)
|
|
offset_operator(0)
|
|
end,
|
|
press_play = function(_)
|
|
offset_operator(0)
|
|
end,
|
|
set_blind = function(_)
|
|
offset_operator(-1)
|
|
end,
|
|
}
|
|
|
|
SMODS.Blind {
|
|
loc_txt = {
|
|
name = "The Insignia",
|
|
text = {"Hand must contain", "only one suit"}
|
|
},
|
|
key = "insignia",
|
|
config = {},
|
|
boss = {min = 2, max = 10, no_orb = true, hardcore = true},
|
|
boss_colour = HEX("a5aa00"),
|
|
atlas = "janeblinds",
|
|
pos = {x = 0, y = 9},
|
|
vars = {},
|
|
dollars = 7,
|
|
mult = 2,
|
|
debuff_hand = function(_, cards, _, _, _)
|
|
local numsuits = 0
|
|
local checked_suits = {}
|
|
|
|
for _, card in ipairs(cards) do
|
|
if not card:nosuit() and not checked_suits[card.base.suit] then
|
|
numsuits = numsuits + 1
|
|
checked_suits[card.base.suit] = true
|
|
|
|
if numsuits > 1 then
|
|
return true
|
|
end
|
|
end
|
|
end
|
|
end
|
|
}
|
|
|
|
SMODS.Blind {
|
|
loc_txt = {
|
|
name = "The Wee",
|
|
text = {"Only 2s can be played"}
|
|
},
|
|
key = "wee",
|
|
config = {},
|
|
boss = {min = 1, max = 10, no_orb = true, hardcore = true},
|
|
boss_colour = HEX("7F3F3F"),
|
|
atlas = "janeblinds",
|
|
pos = {x = 0, y = 3},
|
|
vars = {},
|
|
dollars = 2,
|
|
mult = 22 / 300,
|
|
debuff_hand = function(_, cards, _, _, _)
|
|
for _, v in ipairs(cards) do
|
|
if v:norank() or v:get_id() ~= 2 then
|
|
return true
|
|
end
|
|
end
|
|
end,
|
|
get_loc_debuff_text = function(_)
|
|
return "Hand must contain only 2s"
|
|
end,
|
|
recalc_debuff = function(_, card, _)
|
|
return card:norank() or card:get_id() ~= 2
|
|
end,
|
|
}
|