Add tons of new content (not jokers)
This commit is contained in:
parent
d0a9cdfe72
commit
bafb18d0c9
11 changed files with 648 additions and 170 deletions
Binary file not shown.
|
Before Width: | Height: | Size: 30 KiB |
BIN
assets/sounds/corrupt_milestone.ogg
Normal file
BIN
assets/sounds/corrupt_milestone.ogg
Normal file
Binary file not shown.
BIN
assets/sounds/corrupt_tick.ogg
Normal file
BIN
assets/sounds/corrupt_tick.ogg
Normal file
Binary file not shown.
BIN
assets/sounds/corrupt_untick.ogg
Normal file
BIN
assets/sounds/corrupt_untick.ogg
Normal file
Binary file not shown.
|
|
@ -12,5 +12,5 @@
|
||||||
"Bakery (>=0.1.26~*)"
|
"Bakery (>=0.1.26~*)"
|
||||||
],
|
],
|
||||||
"conflicts": ["Jen"],
|
"conflicts": ["Jen"],
|
||||||
"version": "0.3.3"
|
"version": "1.0.0"
|
||||||
}
|
}
|
||||||
428
src/back.lua
428
src/back.lua
|
|
@ -35,15 +35,93 @@ SMODS.Back {
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
|
local function add_rain_world_joker()
|
||||||
|
if not G.jokers then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
local candidates = {
|
||||||
|
"j_jane_monk",
|
||||||
|
"j_jane_survivor",
|
||||||
|
"j_jane_hunter",
|
||||||
|
"j_jane_gourmand",
|
||||||
|
"j_jane_artificer",
|
||||||
|
"j_jane_spearmaster",
|
||||||
|
"j_jane_rivulet",
|
||||||
|
"j_jane_saint",
|
||||||
|
"j_jane_rot",
|
||||||
|
}
|
||||||
|
|
||||||
|
local unobtained = {}
|
||||||
|
|
||||||
|
for _, v in pairs(candidates) do
|
||||||
|
if not next(SMODS.find_card(v, true)) then
|
||||||
|
unobtained[#unobtained + 1] = v
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local chosen = pseudorandom_element(next(unobtained) and unobtained or candidates, pseudoseed("karma_deck"))
|
||||||
|
local card = create_card("Joker", G.jokers, nil, nil, nil, nil, chosen, "karma_deck_next")
|
||||||
|
card:add_to_deck()
|
||||||
|
card:start_materialize()
|
||||||
|
G.jokers:emplace(card)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
SMODS.Back {
|
SMODS.Back {
|
||||||
key = 'obsidian',
|
key = "karma",
|
||||||
atlas = 'janedecks',
|
atlas = "janedecks",
|
||||||
|
pos = {x = 3, y = 0},
|
||||||
|
loc_txt = {
|
||||||
|
name = "Karma Deck",
|
||||||
|
text = {
|
||||||
|
"Start with a {C:legendary}Rain World Joker",
|
||||||
|
"Create another when",
|
||||||
|
"{C:attention}Boss Blind {}is defeated"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
apply = function(_)
|
||||||
|
G.E_MANAGER:add_event(Event({func = add_rain_world_joker}))
|
||||||
|
end,
|
||||||
|
trigger_effect = function(_, args)
|
||||||
|
if args.context == "eval" and G.GAME.last_blind and G.GAME.last_blind.boss then
|
||||||
|
add_rain_world_joker()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
||||||
|
SMODS.Back {
|
||||||
|
key = "mysterious",
|
||||||
|
atlas = "janedecks",
|
||||||
|
pos = {x = 1, y = 0},
|
||||||
|
loc_txt = {
|
||||||
|
name = "Mysterious Deck",
|
||||||
|
text = {
|
||||||
|
"Jokers, consumables, and",
|
||||||
|
"playing cards are {C:green,E:1}randomized",
|
||||||
|
"when they are added",
|
||||||
|
"to your possession",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
apply = function(_)
|
||||||
|
G.GAME.mysterious = true
|
||||||
|
|
||||||
|
Jane.q(function()
|
||||||
|
save_run()
|
||||||
|
return true
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
SMODS.Back {
|
||||||
|
key = "obsidian",
|
||||||
|
atlas = "janedecks",
|
||||||
pos = {x = 2, y = 1},
|
pos = {x = 2, y = 1},
|
||||||
loc_txt = {
|
loc_txt = {
|
||||||
name = 'Obsidian Deck',
|
name = "Obsidian Deck",
|
||||||
text = {
|
text = {
|
||||||
'{C:attention}Hidden{} cards {C:inactive}(ex. {C:spectral}The Soul{C:inactive})',
|
"{C:attention}Hidden{} cards {C:inactive}(ex. {C:spectral}The Soul{C:inactive})",
|
||||||
'can {C:attention}appear normally{}',
|
"can {C:attention}appear normally{}",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
apply = function(_)
|
apply = function(_)
|
||||||
|
|
@ -51,6 +129,22 @@ SMODS.Back {
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
|
local function apply_orrery()
|
||||||
|
Jane.q(function()
|
||||||
|
local orrery = {}
|
||||||
|
G.GAME.orrery = orrery
|
||||||
|
|
||||||
|
for k, v in pairs(G.GAME.hands) do
|
||||||
|
v.mult = 1
|
||||||
|
v.chips = 150
|
||||||
|
orrery[k] = {chips = v.chips, level = v.level, mult = v.mult}
|
||||||
|
end
|
||||||
|
|
||||||
|
save_run()
|
||||||
|
return true
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
SMODS.Back {
|
SMODS.Back {
|
||||||
key = "orrery",
|
key = "orrery",
|
||||||
atlas = "janedecks",
|
atlas = "janedecks",
|
||||||
|
|
@ -63,20 +157,7 @@ SMODS.Back {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
apply = function(_)
|
apply = function(_)
|
||||||
Jane.q(function()
|
apply_orrery()
|
||||||
local orrery = {}
|
|
||||||
G.GAME.orrery = orrery
|
|
||||||
|
|
||||||
for k, v in pairs(G.GAME.hands) do
|
|
||||||
v.mult = 1
|
|
||||||
v.chips = 150
|
|
||||||
orrery[k] = {chips = v.chips, level = v.level, mult = v.mult}
|
|
||||||
end
|
|
||||||
|
|
||||||
save_run()
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -96,6 +177,40 @@ SMODS.Back {
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
|
local function apply_weeck()
|
||||||
|
G.GAME.weeck = true
|
||||||
|
|
||||||
|
Jane.q(function()
|
||||||
|
local new_card = create_card("Joker", G.jokers, nil, nil, nil, nil, "j_wee", "weeck")
|
||||||
|
new_card.ability.cry_absolute = true
|
||||||
|
new_card.ability.eternal = true
|
||||||
|
G.jokers:emplace(new_card)
|
||||||
|
local add = {}
|
||||||
|
|
||||||
|
for _, v in pairs(G.playing_cards) do
|
||||||
|
if v.base.id == 2 then
|
||||||
|
v.ability.cry_absolute = true
|
||||||
|
v.ability.eternal = true
|
||||||
|
add[#add + 1] = v
|
||||||
|
else
|
||||||
|
v:start_dissolve(nil, true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for _, v in pairs(add) do
|
||||||
|
local dupe = copy_card(v)
|
||||||
|
dupe:start_materialize()
|
||||||
|
dupe:add_to_deck()
|
||||||
|
G.hand:emplace(dupe)
|
||||||
|
G.playing_card = (G.playing_card and G.playing_card + 1) or 1
|
||||||
|
table.insert(G.playing_cards, dupe)
|
||||||
|
end
|
||||||
|
|
||||||
|
save_run()
|
||||||
|
return true
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
SMODS.Back {
|
SMODS.Back {
|
||||||
key = "weeck",
|
key = "weeck",
|
||||||
atlas = "janedecks",
|
atlas = "janedecks",
|
||||||
|
|
@ -110,38 +225,47 @@ SMODS.Back {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
apply = function(_)
|
apply = function(_)
|
||||||
G.GAME.weeck = true
|
apply_weeck()
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
Jane.q(function()
|
SMODS.Back {
|
||||||
local new_card = create_card("Joker", G.jokers, nil, nil, nil, nil, "j_wee", "weeck")
|
key = "omega",
|
||||||
new_card.ability.cry_absolute = true
|
atlas = "janedecks",
|
||||||
new_card.ability.eternal = true
|
pos = {x = 5, y = 1},
|
||||||
G.jokers:emplace(new_card)
|
loc_txt = {
|
||||||
local add = {}
|
name = "Omega Deck",
|
||||||
|
text = {
|
||||||
for _, v in pairs(G.playing_cards) do
|
"Applies the {C:legendary,E:1}upsides",
|
||||||
if v.base.id == 2 then
|
"of {C:attention}every Jane deck",
|
||||||
v.ability.cry_absolute = true
|
}
|
||||||
v.ability.eternal = true
|
},
|
||||||
add[#add + 1] = v
|
apply = function(_)
|
||||||
else
|
apply_orrery()
|
||||||
v:start_dissolve(nil, true)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
for _, v in pairs(add) do
|
|
||||||
local dupe = copy_card(v)
|
|
||||||
dupe:start_materialize()
|
|
||||||
dupe:add_to_deck()
|
|
||||||
G.hand:emplace(dupe)
|
|
||||||
G.playing_card = (G.playing_card and G.playing_card + 1) or 1
|
|
||||||
table.insert(G.playing_cards, dupe)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
G.E_MANAGER:add_event(Event({func = function()
|
||||||
|
local wee = create_card("Joker", G.jokers, nil, nil, nil, nil, "j_wee", "weeck")
|
||||||
|
G.jokers:emplace(wee)
|
||||||
|
add_rain_world_joker()
|
||||||
|
G.GAME.mysterious = true
|
||||||
|
G.GAME.tortoise = true
|
||||||
|
G.GAME.obsidian = true
|
||||||
save_run()
|
save_run()
|
||||||
return true
|
return true
|
||||||
end)
|
end}))
|
||||||
end
|
end,
|
||||||
|
trigger_effect = function(_, args)
|
||||||
|
G.GAME.mysterious = nil
|
||||||
|
|
||||||
|
if args.context == "eval" and G.GAME.last_blind and G.GAME.last_blind.boss then
|
||||||
|
add_rain_world_joker()
|
||||||
|
|
||||||
|
Jane.q(function()
|
||||||
|
Jane.empowered()
|
||||||
|
return true
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
local orig_ante = ease_ante
|
local orig_ante = ease_ante
|
||||||
|
|
@ -173,3 +297,213 @@ function ease_ante(mod)
|
||||||
|
|
||||||
orig_ante(mod)
|
orig_ante(mod)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local orig_emplace = CardArea.emplace
|
||||||
|
|
||||||
|
function CardArea:emplace(card, location, stay_flipped)
|
||||||
|
local function randomize(targets, noanim)
|
||||||
|
local function go(i)
|
||||||
|
return function()
|
||||||
|
local c = targets[i]
|
||||||
|
c:set_base(pseudorandom_element(G.P_CARDS))
|
||||||
|
|
||||||
|
if pseudorandom(pseudoseed("chancetime")) > 1 / (#G.P_CENTER_POOLS["Enhanced"]+1) then
|
||||||
|
c:set_ability(pseudorandom_element(G.P_CENTER_POOLS["Enhanced"], pseudoseed("spectral_chance")))
|
||||||
|
else
|
||||||
|
c:set_ability(G.P_CENTERS["c_base"])
|
||||||
|
end
|
||||||
|
|
||||||
|
local edition_rate = 2
|
||||||
|
c:set_edition(poll_edition("standard_edition" .. G.GAME.round_resets.ante, edition_rate, true))
|
||||||
|
local seal_rate = 10
|
||||||
|
local seal_poll = pseudorandom(pseudoseed("stdseal" .. G.GAME.round_resets.ante))
|
||||||
|
|
||||||
|
if seal_poll > 1 - 0.02 * seal_rate then
|
||||||
|
local seal_type = pseudorandom(pseudoseed("stdsealtype" .. G.GAME.round_resets.ante))
|
||||||
|
local seal_list = {}
|
||||||
|
|
||||||
|
for k, _ in pairs(G.P_SEALS) do
|
||||||
|
table.insert(seal_list, k)
|
||||||
|
end
|
||||||
|
|
||||||
|
seal_type = math.floor(seal_type * #seal_list)
|
||||||
|
c:set_seal(seal_list[seal_type])
|
||||||
|
else
|
||||||
|
c:set_seal()
|
||||||
|
end
|
||||||
|
|
||||||
|
if noanim then
|
||||||
|
c:flip()
|
||||||
|
play_sound("card3", 0.85 + (i - 0.999) / (#G.hand.cards - 0.998) * 0.3, 0.6)
|
||||||
|
end
|
||||||
|
|
||||||
|
c:juice_up(0.3, 0.3)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if #targets <= 0 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if noanim then
|
||||||
|
for i = 1, #targets do
|
||||||
|
go(i)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
for i = 1, #targets do
|
||||||
|
G.E_MANAGER:add_event(Event({
|
||||||
|
trigger = "after",
|
||||||
|
delay = 0.15,
|
||||||
|
func = function()
|
||||||
|
targets[i]:flip()
|
||||||
|
play_sound("card1", 1.15 - (i - 0.999) / (#G.hand.cards - 0.998) * 0.3)
|
||||||
|
targets[i]:juice_up(0.3, 0.3)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
}))
|
||||||
|
end
|
||||||
|
|
||||||
|
delay(0.2)
|
||||||
|
|
||||||
|
for i = 1, #targets do
|
||||||
|
G.E_MANAGER:add_event(Event({
|
||||||
|
trigger = "after",
|
||||||
|
delay = 0.1,
|
||||||
|
func = go(i)
|
||||||
|
}))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function rnd(seed, excluded_flags, pool, ignore_pooling, attempts)
|
||||||
|
excluded_flags = excluded_flags or {}
|
||||||
|
local selection = "n/a"
|
||||||
|
local passes = 0
|
||||||
|
local tries = attempts or 500
|
||||||
|
local pooling = false
|
||||||
|
|
||||||
|
if (SMODS.Mods.jane or {}).can_load and (G.GAME or {}).obsidian then
|
||||||
|
for k, v in ipairs(excluded_flags) do
|
||||||
|
if v == "hidden" then
|
||||||
|
table.remove(excluded_flags, k)
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
while true do
|
||||||
|
passes = 0
|
||||||
|
pooling = false
|
||||||
|
tries = tries - 1
|
||||||
|
selection = G.P_CENTERS[pseudorandom_element(pool or G.P_CENTER_POOLS.Consumeables, pseudoseed(seed or "jane_rnd_mysterious")).key]
|
||||||
|
|
||||||
|
if ignore_pooling then
|
||||||
|
pooling = true
|
||||||
|
else
|
||||||
|
if selection.in_pool and selection:in_pool() then
|
||||||
|
pooling = true
|
||||||
|
elseif not selection.in_pool then
|
||||||
|
pooling = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for _, v in pairs(excluded_flags) do
|
||||||
|
if not selection[v] then
|
||||||
|
passes = passes + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if (pooling and passes >= #excluded_flags) or tries <= 0 then
|
||||||
|
return selection
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if G.jokers and
|
||||||
|
G.hand and
|
||||||
|
G.deck and
|
||||||
|
G.consumeables and
|
||||||
|
(self == G.jokers or self == G.hand or self == G.deck or self == G.consumeables) and
|
||||||
|
G.GAME.mysterious and card.ability and not
|
||||||
|
card.ability.mysterious_created and not
|
||||||
|
card.created_from_split then
|
||||||
|
card.ability.mysterious_created = true
|
||||||
|
local cen = card.gc and card:gc()
|
||||||
|
if cen then
|
||||||
|
if self == G.jokers then
|
||||||
|
Jane.q(function()
|
||||||
|
if card then
|
||||||
|
if card.added_to_deck then
|
||||||
|
card:remove_from_deck()
|
||||||
|
card.added_to_deck = nil
|
||||||
|
end
|
||||||
|
card:flip()
|
||||||
|
card:juice_up(0.3, 0.3)
|
||||||
|
play_sound("card1", 1, 0.6)
|
||||||
|
end
|
||||||
|
return true
|
||||||
|
end, 0.75)
|
||||||
|
|
||||||
|
delay(0.75)
|
||||||
|
|
||||||
|
Jane.q(function()
|
||||||
|
if card then
|
||||||
|
card:flip()
|
||||||
|
card:juice_up(0.3, 0.3)
|
||||||
|
play_sound("card3", 1, 0.6)
|
||||||
|
card:set_ability(rnd("mysterious_deck_joker", {"no_mysterious"}, G.P_CENTER_POOLS.Joker))
|
||||||
|
|
||||||
|
if not card.added_to_deck then
|
||||||
|
card:add_to_deck()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return true
|
||||||
|
end, 0.75)
|
||||||
|
elseif self == G.consumeables then
|
||||||
|
Jane.q(function()
|
||||||
|
if card then
|
||||||
|
if card.added_to_deck then
|
||||||
|
card:remove_from_deck()
|
||||||
|
card.added_to_deck = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
card:flip()
|
||||||
|
card:juice_up(0.3, 0.3)
|
||||||
|
play_sound("card1", 1, 0.6)
|
||||||
|
end
|
||||||
|
return true
|
||||||
|
end, 0.75)
|
||||||
|
|
||||||
|
delay(0.75)
|
||||||
|
|
||||||
|
Jane.q(function()
|
||||||
|
if card then
|
||||||
|
card:flip()
|
||||||
|
card:juice_up(0.3, 0.3)
|
||||||
|
play_sound("card3", 1, 0.6)
|
||||||
|
card:set_ability(rnd("mysterious_deck_consumable", cen.hidden and {} or {"hidden"}, G.P_CENTER_POOLS[cen.set]))
|
||||||
|
|
||||||
|
if not card.added_to_deck then
|
||||||
|
card:add_to_deck()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return true
|
||||||
|
end, 0.75)
|
||||||
|
elseif (card.base or {}).value or (card.base or {}).suit then
|
||||||
|
randomize({card})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Jane.q(function()
|
||||||
|
if card and self then
|
||||||
|
orig_emplace(self, card, location, stay_flipped)
|
||||||
|
end
|
||||||
|
|
||||||
|
return true
|
||||||
|
end)
|
||||||
|
else
|
||||||
|
orig_emplace(self, card, location, stay_flipped)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
|
||||||
272
src/booster.lua
272
src/booster.lua
|
|
@ -24,12 +24,26 @@ for i = 1, 2 do
|
||||||
loc_vars = function(_, _, card)
|
loc_vars = function(_, _, card)
|
||||||
return {vars = {card.ability.choose, card.ability.extra}}
|
return {vars = {card.ability.choose, card.ability.extra}}
|
||||||
end,
|
end,
|
||||||
ease_background_colour = function(_)
|
create_card = function(_, _, _)
|
||||||
ease_background_colour_blind(G.STATES.STANDARD_PACK)
|
local edition = poll_edition("standard_edition" .. G.GAME.round_resets.ante, 2, true)
|
||||||
|
local seal = SMODS.poll_seal({mod = 10})
|
||||||
|
|
||||||
|
return {
|
||||||
|
set = (pseudorandom(pseudoseed("stdset" .. G.GAME.round_resets.ante)) > 0.6) and "Enhanced" or "Base",
|
||||||
|
edition = edition,
|
||||||
|
seal = seal,
|
||||||
|
area = G.pack_cards,
|
||||||
|
skip_materialize = true,
|
||||||
|
soulable = true,
|
||||||
|
key_append = "sta"
|
||||||
|
}
|
||||||
end,
|
end,
|
||||||
create_UIBox = function(_)
|
create_UIBox = function(_)
|
||||||
return create_UIBox_standard_pack()
|
return create_UIBox_standard_pack()
|
||||||
end,
|
end,
|
||||||
|
ease_background_colour = function(_)
|
||||||
|
ease_background_colour_blind(G.STATES.STANDARD_PACK)
|
||||||
|
end,
|
||||||
particles = function(_)
|
particles = function(_)
|
||||||
G.booster_pack_sparkles = Particles(1, 1, 0,0, {
|
G.booster_pack_sparkles = Particles(1, 1, 0,0, {
|
||||||
timer = 0.015,
|
timer = 0.015,
|
||||||
|
|
@ -46,20 +60,6 @@ for i = 1, 2 do
|
||||||
G.booster_pack_sparkles.fade_alpha = 1
|
G.booster_pack_sparkles.fade_alpha = 1
|
||||||
G.booster_pack_sparkles:fade(1, 0)
|
G.booster_pack_sparkles:fade(1, 0)
|
||||||
end,
|
end,
|
||||||
create_card = function(_, _, _)
|
|
||||||
local edition = poll_edition("standard_edition"..G.GAME.round_resets.ante, 2, true)
|
|
||||||
local seal = SMODS.poll_seal({mod = 10})
|
|
||||||
|
|
||||||
return {
|
|
||||||
set = (pseudorandom(pseudoseed("stdset"..G.GAME.round_resets.ante)) > 0.6) and "Enhanced" or "Base",
|
|
||||||
edition = edition,
|
|
||||||
seal = seal,
|
|
||||||
area = G.pack_cards,
|
|
||||||
skip_materialize = true,
|
|
||||||
soulable = true,
|
|
||||||
key_append = "sta"
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -83,28 +83,6 @@ for i = 1, 2 do
|
||||||
loc_vars = function(_, _, card)
|
loc_vars = function(_, _, card)
|
||||||
return {vars = {card.ability.choose, card.ability.extra}}
|
return {vars = {card.ability.choose, card.ability.extra}}
|
||||||
end,
|
end,
|
||||||
ease_background_colour = function(_)
|
|
||||||
ease_background_colour_blind(G.STATES.TAROT_PACK)
|
|
||||||
end,
|
|
||||||
create_UIBox = function(_)
|
|
||||||
return create_UIBox_arcana_pack()
|
|
||||||
end,
|
|
||||||
particles = function(_)
|
|
||||||
G.booster_pack_sparkles = Particles(1, 1, 0,0, {
|
|
||||||
timer = 0.015,
|
|
||||||
scale = 0.2,
|
|
||||||
initialize = true,
|
|
||||||
lifespan = 1,
|
|
||||||
speed = 1.1,
|
|
||||||
padding = -1,
|
|
||||||
attach = G.ROOM_ATTACH,
|
|
||||||
colours = {G.C.WHITE, lighten(G.C.PURPLE, 0.4), lighten(G.C.PURPLE, 0.2), lighten(G.C.GOLD, 0.2)},
|
|
||||||
fill = true
|
|
||||||
})
|
|
||||||
|
|
||||||
G.booster_pack_sparkles.fade_alpha = 1
|
|
||||||
G.booster_pack_sparkles:fade(1, 0)
|
|
||||||
end,
|
|
||||||
create_card = function(_, _, _)
|
create_card = function(_, _, _)
|
||||||
if G.GAME.used_vouchers.v_omen_globe and pseudorandom("omen_globe") > 0.8 then
|
if G.GAME.used_vouchers.v_omen_globe and pseudorandom("omen_globe") > 0.8 then
|
||||||
return {
|
return {
|
||||||
|
|
@ -123,7 +101,29 @@ for i = 1, 2 do
|
||||||
area = G.pack_cards,
|
area = G.pack_cards,
|
||||||
skip_materialize = true,
|
skip_materialize = true,
|
||||||
}
|
}
|
||||||
end
|
end,
|
||||||
|
create_UIBox = function(_)
|
||||||
|
return create_UIBox_arcana_pack()
|
||||||
|
end,
|
||||||
|
ease_background_colour = function(_)
|
||||||
|
ease_background_colour_blind(G.STATES.TAROT_PACK)
|
||||||
|
end,
|
||||||
|
particles = function(_)
|
||||||
|
G.booster_pack_sparkles = Particles(1, 1, 0,0, {
|
||||||
|
timer = 0.015,
|
||||||
|
scale = 0.2,
|
||||||
|
initialize = true,
|
||||||
|
lifespan = 1,
|
||||||
|
speed = 1.1,
|
||||||
|
padding = -1,
|
||||||
|
attach = G.ROOM_ATTACH,
|
||||||
|
colours = {G.C.WHITE, lighten(G.C.PURPLE, 0.4), lighten(G.C.PURPLE, 0.2), lighten(G.C.GOLD, 0.2)},
|
||||||
|
fill = true
|
||||||
|
})
|
||||||
|
|
||||||
|
G.booster_pack_sparkles.fade_alpha = 1
|
||||||
|
G.booster_pack_sparkles:fade(1, 0)
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -146,36 +146,6 @@ for i = 1, 2 do
|
||||||
loc_vars = function(_, _, card)
|
loc_vars = function(_, _, card)
|
||||||
return {vars = {card.ability.choose, card.ability.extra}}
|
return {vars = {card.ability.choose, card.ability.extra}}
|
||||||
end,
|
end,
|
||||||
ease_background_colour = function(_) ease_background_colour_blind(G.STATES.PLANET_PACK) end,
|
|
||||||
create_UIBox = function(_) return create_UIBox_celestial_pack() end,
|
|
||||||
set_ability = function (_, card, _, delay_sprites)
|
|
||||||
card.ability = card.ability or {}
|
|
||||||
card.ability.set = "Booster"
|
|
||||||
card.ability.name = "Mini Celestial Pack"
|
|
||||||
end,
|
|
||||||
particles = function(_)
|
|
||||||
G.booster_pack_stars = Particles(1, 1, 0,0, {
|
|
||||||
fill = true,
|
|
||||||
scale = 0.1,
|
|
||||||
speed = 0.1,
|
|
||||||
timer = 0.07,
|
|
||||||
padding = -4,
|
|
||||||
lifespan = 15,
|
|
||||||
initialize = true,
|
|
||||||
attach = G.ROOM_ATTACH,
|
|
||||||
colours = {G.C.WHITE, HEX("a7d6e0"), HEX("fddca0")},
|
|
||||||
})
|
|
||||||
|
|
||||||
G.booster_pack_meteors = Particles(1, 1, 0,0, {
|
|
||||||
speed = 4,
|
|
||||||
timer = 2,
|
|
||||||
fill = true,
|
|
||||||
scale = 0.05,
|
|
||||||
lifespan = 1.5,
|
|
||||||
attach = G.ROOM_ATTACH,
|
|
||||||
colours = {G.C.WHITE},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
create_card = function(_, _, index)
|
create_card = function(_, _, index)
|
||||||
if not G.GAME.used_vouchers.v_telescope or index ~= 1 then
|
if not G.GAME.used_vouchers.v_telescope or index ~= 1 then
|
||||||
return {
|
return {
|
||||||
|
|
@ -212,7 +182,41 @@ for i = 1, 2 do
|
||||||
area = G.pack_cards,
|
area = G.pack_cards,
|
||||||
skip_materialize = true,
|
skip_materialize = true,
|
||||||
}
|
}
|
||||||
end
|
end,
|
||||||
|
create_UIBox = function(_)
|
||||||
|
return create_UIBox_celestial_pack()
|
||||||
|
end,
|
||||||
|
ease_background_colour = function(_)
|
||||||
|
ease_background_colour_blind(G.STATES.PLANET_PACK)
|
||||||
|
end,
|
||||||
|
particles = function(_)
|
||||||
|
G.booster_pack_stars = Particles(1, 1, 0,0, {
|
||||||
|
fill = true,
|
||||||
|
scale = 0.1,
|
||||||
|
speed = 0.1,
|
||||||
|
timer = 0.07,
|
||||||
|
padding = -4,
|
||||||
|
lifespan = 15,
|
||||||
|
initialize = true,
|
||||||
|
attach = G.ROOM_ATTACH,
|
||||||
|
colours = {G.C.WHITE, HEX("a7d6e0"), HEX("fddca0")},
|
||||||
|
})
|
||||||
|
|
||||||
|
G.booster_pack_meteors = Particles(1, 1, 0,0, {
|
||||||
|
speed = 4,
|
||||||
|
timer = 2,
|
||||||
|
fill = true,
|
||||||
|
scale = 0.05,
|
||||||
|
lifespan = 1.5,
|
||||||
|
attach = G.ROOM_ATTACH,
|
||||||
|
colours = {G.C.WHITE},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
set_ability = function (_, card, _, _)
|
||||||
|
card.ability = card.ability or {}
|
||||||
|
card.ability.set = "Booster"
|
||||||
|
card.ability.name = "Mini Celestial Pack"
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -236,12 +240,21 @@ for i = 1, 2 do
|
||||||
loc_vars = function(_, _, card)
|
loc_vars = function(_, _, card)
|
||||||
return {vars = {card.ability.choose, card.ability.extra}}
|
return {vars = {card.ability.choose, card.ability.extra}}
|
||||||
end,
|
end,
|
||||||
ease_background_colour = function(_)
|
create_card = function(_, _, _)
|
||||||
ease_background_colour_blind(G.STATES.SPECTRAL_PACK)
|
return {
|
||||||
|
soulable = true,
|
||||||
|
set = "Spectral",
|
||||||
|
key_append = "spe",
|
||||||
|
area = G.pack_cards,
|
||||||
|
skip_materialize = true,
|
||||||
|
}
|
||||||
end,
|
end,
|
||||||
create_UIBox = function(_)
|
create_UIBox = function(_)
|
||||||
return create_UIBox_spectral_pack()
|
return create_UIBox_spectral_pack()
|
||||||
end,
|
end,
|
||||||
|
ease_background_colour = function(_)
|
||||||
|
ease_background_colour_blind(G.STATES.SPECTRAL_PACK)
|
||||||
|
end,
|
||||||
particles = function(_)
|
particles = function(_)
|
||||||
G.booster_pack_sparkles = Particles(1, 1, 0,0, {
|
G.booster_pack_sparkles = Particles(1, 1, 0,0, {
|
||||||
scale = 0.1,
|
scale = 0.1,
|
||||||
|
|
@ -258,14 +271,115 @@ for i = 1, 2 do
|
||||||
G.booster_pack_sparkles.fade_alpha = 1
|
G.booster_pack_sparkles.fade_alpha = 1
|
||||||
G.booster_pack_sparkles:fade(1, 0)
|
G.booster_pack_sparkles:fade(1, 0)
|
||||||
end,
|
end,
|
||||||
create_card = function(_, _, _)
|
}
|
||||||
return {
|
end
|
||||||
soulable = true,
|
|
||||||
set = "Spectral",
|
if Cryptid then
|
||||||
key_append = "spe",
|
SMODS.Booster {
|
||||||
area = G.pack_cards,
|
atlas = "janebooster",
|
||||||
skip_materialize = true,
|
key = "minicode",
|
||||||
|
loc_txt = {
|
||||||
|
name = "Mini Code Pack",
|
||||||
|
text = {
|
||||||
|
"Choose {C:attention}#1#{} of up to",
|
||||||
|
"{C:attention}#2# {C:green}Code{} cards to",
|
||||||
|
"be used immediately",
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
pos = {x = 6, y = 2},
|
||||||
|
config = {extra = 2, choose = 1},
|
||||||
|
cost = 2,
|
||||||
|
weight = 0.24,
|
||||||
|
create_card = function(_, _)
|
||||||
|
return create_card("Code", G.pack_cards, nil, nil, true, true, nil, "cry_program_3")
|
||||||
|
end,
|
||||||
|
ease_background_colour = function(_)
|
||||||
|
ease_colour(G.C.DYN_UI.MAIN, G.C.SET.Code)
|
||||||
|
ease_background_colour({new_colour = G.C.SET.Code, special_colour = G.C.BLACK, contrast = 2})
|
||||||
|
end,
|
||||||
|
loc_vars = function(self, _, card)
|
||||||
|
return {
|
||||||
|
vars = {
|
||||||
|
card and card.ability.choose or self.config.choose,
|
||||||
|
card and card.ability.extra or self.config.extra,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
cry_digital_hallucinations = {
|
||||||
|
colour = HEX("14b341"),
|
||||||
|
loc_key = "cry_plus_code",
|
||||||
|
create = function()
|
||||||
|
local ccard = create_card("Code", G.consumeables, nil, nil, nil, nil, nil, "diha")
|
||||||
|
ccard:set_edition({negative = true}, true)
|
||||||
|
ccard:add_to_deck()
|
||||||
|
G.consumeables:emplace(ccard)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
for i = 1, 2 do
|
||||||
|
SMODS.Booster{
|
||||||
|
key = "minitoken" .. i,
|
||||||
|
atlas = "janebooster",
|
||||||
|
loc_txt = {
|
||||||
|
name = "Mini Token Pack",
|
||||||
|
text = {
|
||||||
|
"Choose {C:attention}#1#{} of up to",
|
||||||
|
"{C:attention}#2# Token {}cards to",
|
||||||
|
"be used immediately",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
pos = {x = i - 1, y = 5},
|
||||||
|
config = {extra = 2, choose = 1},
|
||||||
|
cost = 2,
|
||||||
|
weight = 0.2,
|
||||||
|
loc_vars = function(_, _, card)
|
||||||
|
return {vars = {card.ability.choose, card.ability.extra}}
|
||||||
|
end,
|
||||||
|
create_card = function(_, _, _)
|
||||||
|
return create_card("jane_tokens", G.pack_cards, nil, nil, true, true, nil, "jane_tokens" .. i)
|
||||||
|
end,
|
||||||
|
create_UIBox = function(_)
|
||||||
|
local size = SMODS.OPENED_BOOSTER.ability.extra
|
||||||
|
|
||||||
|
G.pack_cards = CardArea(
|
||||||
|
G.ROOM.T.x + 9 + G.hand.T.x, G.hand.T.y,
|
||||||
|
math.max(1, math.min(size, 5)) * G.CARD_W * 1.1,
|
||||||
|
1.05 * G.CARD_H,
|
||||||
|
{card_limit = size, highlight_limit = 1, type = "consumeable"}
|
||||||
|
)
|
||||||
|
|
||||||
|
local t = {n = G.UIT.ROOT, config = {align = "tm", r = 0.15, colour = G.C.CLEAR, padding = 0.15}, nodes = {
|
||||||
|
{n = G.UIT.R, config = {align = "cl", colour = G.C.CLEAR, r = 0.15, padding = 0.1, minh = 2, shadow = true}, nodes = {
|
||||||
|
{n = G.UIT.R, config = {align = "cm"}, nodes = {
|
||||||
|
{n = G.UIT.C, config = {align = "cm", padding = 0.1}, nodes = {
|
||||||
|
{n = G.UIT.C, config = {align = "cm", r = 0.2, colour = G.C.CLEAR, shadow = true}, nodes = {
|
||||||
|
{n = G.UIT.O, config = {object = G.pack_cards}}}}}}}},
|
||||||
|
{n = G.UIT.R, config = {align = "cm"}, nodes = {}},
|
||||||
|
{n = G.UIT.R, config = {align = "tm"}, nodes = {
|
||||||
|
{n = G.UIT.C,config = {align = "tm", padding = 0.05, minw = 2.4}, nodes = {}},
|
||||||
|
{n = G.UIT.C,config = {align = "tm", padding = 0.05}, nodes = {
|
||||||
|
UIBox_dyn_container({
|
||||||
|
{n = G.UIT.C, config = {align = "cm", padding = 0.05, minw = 4}, nodes = {
|
||||||
|
{n = G.UIT.R,config = {align = "bm", padding = 0.05}, nodes = {
|
||||||
|
{n = G.UIT.O, config = {object = DynaText({string = {"Token Pack"}, colours = {G.C.WHITE},shadow = true, rotate = true, bump = true, spacing = 2, scale = 0.7, maxw = 4, pop_in = 0.5})}}}},
|
||||||
|
{n = G.UIT.R,config = {align = "bm", padding = 0.05}, nodes = {
|
||||||
|
{n = G.UIT.O, config = {object = DynaText({string = {localize("k_choose") .. " "}, colours = {G.C.WHITE},shadow = true, rotate = true, bump = true, spacing = 2, scale = 0.5, pop_in = 0.7})}},
|
||||||
|
{n = G.UIT.O, config = {object = DynaText({string = {{ref_table = G.GAME, ref_value = "pack_choices"}}, colours = {G.C.WHITE},shadow = true, rotate = true, bump = true, spacing = 2, scale = 0.5, pop_in = 0.7})}}}}}}
|
||||||
|
})}},
|
||||||
|
{n = G.UIT.C,config = {align = "tm", padding = 0.05, minw = 2.4}, nodes = {
|
||||||
|
{n = G.UIT.R,config = {minh = 0.2}, nodes = {}},
|
||||||
|
{n = G.UIT.R,config = {align = "tm",padding = 0.2, minh = 1.2, minw = 1.8, r = 0.15,colour = G.C.GREY, one_press = true, button = "skip_booster", hover = true,shadow = true, func = "can_skip_booster"}, nodes = {
|
||||||
|
{n = G.UIT.T, config = {text = localize("b_skip"), scale = 0.5, colour = G.C.WHITE, shadow = true, focus_args = {button = "y", orientation = "bm"}, func = "set_button_pip"}}}}}}}}}}}}
|
||||||
|
|
||||||
|
return t
|
||||||
|
end,
|
||||||
|
ease_background_colour = function(_)
|
||||||
|
ease_background_colour{new_colour = HEX(i == 1 and "F0C197" or "FD5F55"), special_colour = HEX("000000"), contrast = 5}
|
||||||
|
end,
|
||||||
|
in_pool = function (_, _)
|
||||||
|
return G.GAME.used_vouchers.v_jane_token_voucher
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,10 @@ for i = 1, 6 do
|
||||||
SMODS.Sound({key = "grand" .. i, path = "grand_dad" .. i .. ".ogg"})
|
SMODS.Sound({key = "grand" .. i, path = "grand_dad" .. i .. ".ogg"})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
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 = Cryptid and "cry_exotic" or 4
|
local exotic = Cryptid and "cry_exotic" or 4
|
||||||
|
|
||||||
local food = {
|
local food = {
|
||||||
|
|
@ -203,6 +207,7 @@ function Jane.update_honey()
|
||||||
end
|
end
|
||||||
|
|
||||||
mergeable[i].ability.extra.level = tostring(tonumber(mergeable[i].ability.extra.level) + 1)
|
mergeable[i].ability.extra.level = tostring(tonumber(mergeable[i].ability.extra.level) + 1)
|
||||||
|
play_sound("jane_corrupt_milestone", 0.9 ^ (tonumber(mergeable[i].ability.extra.level) - 2))
|
||||||
::continue::
|
::continue::
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -292,7 +297,7 @@ function SMODS.poll_rarity(_pool_key, _rand_key)
|
||||||
local max = 0
|
local max = 0
|
||||||
|
|
||||||
for _, v in pairs(SMODS.find_card("j_jane_honey")) do
|
for _, v in pairs(SMODS.find_card("j_jane_honey")) do
|
||||||
max = math.max(max, v.ability.extra.level)
|
max = v.debuff and max or math.max(max, v.ability.extra.level)
|
||||||
end
|
end
|
||||||
|
|
||||||
local rarity = orig_rarity(_pool_key, _rand_key)
|
local rarity = orig_rarity(_pool_key, _rand_key)
|
||||||
|
|
@ -332,6 +337,7 @@ function Jane.oxy(card, removed)
|
||||||
|
|
||||||
if destroyed_steel > 0 then
|
if destroyed_steel > 0 then
|
||||||
extra.progress = extra.progress + destroyed_steel
|
extra.progress = extra.progress + destroyed_steel
|
||||||
|
play_sound("jane_corrupt_tick")
|
||||||
|
|
||||||
card_eval_status_text(
|
card_eval_status_text(
|
||||||
card,
|
card,
|
||||||
|
|
@ -411,6 +417,7 @@ SMODS.Joker {
|
||||||
context.individual and not
|
context.individual and not
|
||||||
context.repetition and not
|
context.repetition and not
|
||||||
context.retrigger_joker then
|
context.retrigger_joker then
|
||||||
|
play_sound("jane_corrupt_untick")
|
||||||
extra.progress = extra.progress - 1
|
extra.progress = extra.progress - 1
|
||||||
|
|
||||||
card_eval_status_text(
|
card_eval_status_text(
|
||||||
|
|
@ -446,6 +453,7 @@ SMODS.Joker {
|
||||||
card:flip()
|
card:flip()
|
||||||
card:juice_up(1, 1)
|
card:juice_up(1, 1)
|
||||||
play_sound("card1")
|
play_sound("card1")
|
||||||
|
play_sound("jane_corrupt_milestone")
|
||||||
extra.is_corrupted = not extra.is_corrupted
|
extra.is_corrupted = not extra.is_corrupted
|
||||||
extra.is_corrupting = nil
|
extra.is_corrupting = nil
|
||||||
return true
|
return true
|
||||||
|
|
@ -522,7 +530,7 @@ SMODS.Joker {
|
||||||
soul_pos = {x = 1, y = 0},
|
soul_pos = {x = 1, y = 0},
|
||||||
atlas = "jane7granddad",
|
atlas = "jane7granddad",
|
||||||
blueprint_compat = true,
|
blueprint_compat = true,
|
||||||
cost = Cryptid and 50 or 8,
|
cost = Cryptid and 49 or 7,
|
||||||
rarity = Cryptid and exotic or 3,
|
rarity = Cryptid and exotic or 3,
|
||||||
loc_vars = function(_, _, center)
|
loc_vars = function(_, _, center)
|
||||||
return {vars = {center.ability.shopslots}}
|
return {vars = {center.ability.shopslots}}
|
||||||
|
|
@ -546,15 +554,15 @@ SMODS.Joker {
|
||||||
|
|
||||||
if rnd == 1 then
|
if rnd == 1 then
|
||||||
return {
|
return {
|
||||||
message = "+777",
|
message = Cryptid and "+777" or "+77",
|
||||||
chips = 777,
|
chips = Cryptid and 777 or 77,
|
||||||
colour = palette,
|
colour = palette,
|
||||||
card = card
|
card = card
|
||||||
}, true
|
}, true
|
||||||
elseif rnd == 2 then
|
elseif rnd == 2 then
|
||||||
return {
|
return {
|
||||||
message = "+777 Mult",
|
message = Cryptid and "+777 Mult" or "+77 Mult",
|
||||||
mult = 777,
|
mult = Cryptid and 777 or 77,
|
||||||
colour = palette,
|
colour = palette,
|
||||||
card = card
|
card = card
|
||||||
}, true
|
}, true
|
||||||
|
|
@ -567,15 +575,15 @@ SMODS.Joker {
|
||||||
}, true
|
}, true
|
||||||
elseif rnd == 4 then
|
elseif rnd == 4 then
|
||||||
return {
|
return {
|
||||||
message = "x7",
|
message = Cryptid and "x7" or "x1.77",
|
||||||
x_chips = 7,
|
x_chips = Cryptid and 7 or 1.77,
|
||||||
colour = palette,
|
colour = palette,
|
||||||
card = card
|
card = card
|
||||||
}, true
|
}, true
|
||||||
elseif rnd == 5 then
|
elseif rnd == 5 then
|
||||||
return {
|
return {
|
||||||
message = "x7 Mult",
|
message = Cryptid and "x7 Mult" or "x1.77 Mult",
|
||||||
x_mult = 7,
|
x_mult = Cryptid and 7 or 1.77,
|
||||||
colour = palette,
|
colour = palette,
|
||||||
card = card
|
card = card
|
||||||
}, true
|
}, true
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,7 @@ SMODS.Joker {
|
||||||
rarity = 4,
|
rarity = 4,
|
||||||
}
|
}
|
||||||
|
|
||||||
local hunter = {7, 5, 3, 2, 1}
|
local hunter = {5, 4, 3, 2, 1}
|
||||||
|
|
||||||
SMODS.Joker {
|
SMODS.Joker {
|
||||||
key = "hunter",
|
key = "hunter",
|
||||||
|
|
|
||||||
|
|
@ -227,7 +227,7 @@ SMODS.Consumable {
|
||||||
config = {extra = {spectrals = 2}},
|
config = {extra = {spectrals = 2}},
|
||||||
pos = {x = 2, y = 4},
|
pos = {x = 2, y = 4},
|
||||||
cost = 4,
|
cost = 4,
|
||||||
loc_vars = function(self, info_queue, center)
|
loc_vars = function(_, _, center)
|
||||||
return {vars = {math.ceil(center.ability.extra.spectrals)}}
|
return {vars = {math.ceil(center.ability.extra.spectrals)}}
|
||||||
end,
|
end,
|
||||||
can_use = Jane.can_use,
|
can_use = Jane.can_use,
|
||||||
|
|
@ -249,8 +249,8 @@ SMODS.Consumable {
|
||||||
name = "Shadows",
|
name = "Shadows",
|
||||||
text = {
|
text = {
|
||||||
"Create {C:attention}#1#{} {C:green}random {C:dark_edition}Negative",
|
"Create {C:attention}#1#{} {C:green}random {C:dark_edition}Negative",
|
||||||
"{C:attention}Perishable {C:attention}Jokers{}, set",
|
"{C:attention}Perishable {C:attention}Jokers{}, set {C:money}sell",
|
||||||
"{C:money}sell value{} of {C:attention}all Jokers{} to {C:money}$0",
|
"{C:money}value {}of {C:attention}all Jokers {}to {C:money}$0",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
config = {extra = {shadows = 2}},
|
config = {extra = {shadows = 2}},
|
||||||
|
|
@ -308,25 +308,18 @@ SMODS.Consumable {
|
||||||
|
|
||||||
|
|
||||||
SMODS.Consumable {
|
SMODS.Consumable {
|
||||||
key = "reverse_hanged_man",
|
key = "rift",
|
||||||
atlas = "janertarots",
|
atlas = "janeacc",
|
||||||
set = "Spectral",
|
set = "Spectral",
|
||||||
loc_txt = {
|
loc_txt = {
|
||||||
name = "Zen",
|
name = "Rift",
|
||||||
text = {
|
text = {
|
||||||
"{C:attention}Reset{} your deck to",
|
"{C:attention}Reset{} your deck to a",
|
||||||
"a {C:attention}standard 52-card deck"
|
"{C:attention}standard 52-card deck"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
config = {extra = {destruction = 0.5}},
|
|
||||||
pos = {x = 7, y = 1},
|
|
||||||
cost = 15,
|
cost = 15,
|
||||||
loc_vars = function(_, _, center)
|
pos = {x = 4, y = 4},
|
||||||
return {vars = {
|
|
||||||
math.min(100, center.ability.extra.destruction * 100),
|
|
||||||
math.ceil(#(G.playing_cards or {}) * center.ability.extra.destruction)
|
|
||||||
}}
|
|
||||||
end,
|
|
||||||
can_use = Jane.can_use,
|
can_use = Jane.can_use,
|
||||||
use = function(_, _, _, _)
|
use = function(_, _, _, _)
|
||||||
Jane.q(function()
|
Jane.q(function()
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ SMODS.ConsumableType {
|
||||||
name = "Token"
|
name = "Token"
|
||||||
},
|
},
|
||||||
shop_rate = 0,
|
shop_rate = 0,
|
||||||
collection_rows = {6, 6},
|
collection_rows = {5, 6},
|
||||||
primary_colour = G.C.CHIPS,
|
primary_colour = G.C.CHIPS,
|
||||||
secondary_colour = G.C.VOUCHER,
|
secondary_colour = G.C.VOUCHER,
|
||||||
}
|
}
|
||||||
|
|
@ -26,29 +26,58 @@ for _, v in pairs({
|
||||||
{"tag_meteor", "Meteor", 2, 0, 5},
|
{"tag_meteor", "Meteor", 2, 0, 5},
|
||||||
{"tag_ethereal", "Ethereal", 3, 0, 5},
|
{"tag_ethereal", "Ethereal", 3, 0, 5},
|
||||||
{"tag_buffoon", "Buffoon", 4, 0, 8},
|
{"tag_buffoon", "Buffoon", 4, 0, 8},
|
||||||
|
{"tag_cry_console", "Console", 5, 0, 7},
|
||||||
|
|
||||||
|
{"tag_cry_loss", "Loss", 0, 1, 12},
|
||||||
{"tag_cry_bundle", "Bundle", 1, 1, 10},
|
{"tag_cry_bundle", "Bundle", 1, 1, 10},
|
||||||
{"tag_uncommon", "Uncommon", 2, 1, 3},
|
{"tag_uncommon", "Uncommon", 2, 1, 3},
|
||||||
{"tag_rare", "Rare", 3, 1, 5},
|
{"tag_rare", "Rare", 3, 1, 5},
|
||||||
{"tag_cry_epic", "Epic", 4, 1, 8},
|
{"tag_cry_epic", "Epic", 4, 1, 8},
|
||||||
{"tag_foil", "Foil", 1, 3, 3},
|
{"tag_cry_gourmond", "Gourmond", 5, 1, 4},
|
||||||
{"tag_holo", "Holographic", 2, 3, 4},
|
|
||||||
{"tag_polychrome", "Polychrome", 3, 3, 5},
|
|
||||||
{"tag_negative", "Negative", 4, 3, 10},
|
|
||||||
{"tag_investment", "Investment", 0, 3, 8},
|
|
||||||
{"tag_voucher", "Voucher", 4, 5, 5},
|
|
||||||
{"tag_handy", "Handy", 1, 5, 8},
|
|
||||||
{"tag_garbage", "Garbage", 0, 5, 6},
|
|
||||||
{"tag_coupon", "Coupon", 4, 4, 10},
|
|
||||||
{"tag_juggle", "Juggle", 2, 5, 2},
|
|
||||||
{"tag_d_six", "Dice", 0, 4, 2},
|
|
||||||
{"tag_top_up", "Top-up", 2, 4, 2},
|
|
||||||
{"tag_skip", "Speed", 4, 2, 7},
|
|
||||||
{"tag_economy", "Economy", 5, 2, 10},
|
|
||||||
{"tag_double", "Double", 0, 2, 6},
|
{"tag_double", "Double", 0, 2, 6},
|
||||||
{"tag_cry_triple", "Triple", 1, 2, 8},
|
{"tag_cry_triple", "Triple", 1, 2, 8},
|
||||||
{"tag_cry_quadruple", "Quadruple", 2, 2, 10},
|
{"tag_cry_quadruple", "Quadruple", 2, 2, 10},
|
||||||
{"tag_cry_quintuple", "Quintuple", 3, 2, 13},
|
{"tag_cry_quintuple", "Quintuple", 3, 2, 13},
|
||||||
{"tag_cry_memory", "Memory", 5, 4, 8}
|
{"tag_skip", "Speed", 4, 2, 7},
|
||||||
|
{"tag_economy", "Economy", 5, 2, 10},
|
||||||
|
|
||||||
|
{"tag_investment", "Investment", 0, 3, 8},
|
||||||
|
{"tag_foil", "Foil", 1, 3, 3},
|
||||||
|
{"tag_holo", "Holographic", 2, 3, 4},
|
||||||
|
{"tag_polychrome", "Polychrome", 3, 3, 5},
|
||||||
|
{"tag_negative", "Negative", 4, 3, 10},
|
||||||
|
|
||||||
|
{"tag_d_six", "Dice", 0, 4, 2},
|
||||||
|
{"tag_orbital", "Orbital", 1, 4, 6},
|
||||||
|
{"tag_top_up", "Top-up", 2, 4, 2},
|
||||||
|
{"tag_cry_bettertop_up", "Top-up+", 3, 4, 3},
|
||||||
|
{"tag_coupon", "Coupon", 4, 4, 10},
|
||||||
|
{"tag_cry_memory", "Memory", 5, 4, 8},
|
||||||
|
|
||||||
|
{"tag_garbage", "Garbage", 0, 5, 6},
|
||||||
|
{"tag_handy", "Handy", 1, 5, 8},
|
||||||
|
{"tag_juggle", "Juggle", 2, 5, 2},
|
||||||
|
{"tag_cry_schematic", "Schematic", 3, 5, 10},
|
||||||
|
{"tag_voucher", "Voucher", 4, 5, 5},
|
||||||
|
{"tag_cry_better_voucher", "Voucher+", 5, 5, 7},
|
||||||
|
|
||||||
|
{"tag_cry_gambler", "Gamble", 0, 6, 10},
|
||||||
|
{"tag_cry_cat", "Cat", 1, 6, 1},
|
||||||
|
{"tag_cry_mosaic", "Mosaic", 2, 6, 6},
|
||||||
|
{"tag_cry_fragile", "Fragile", 3, 6, 7},
|
||||||
|
{"tag_cry_astral", "Astral", 4, 6, 8},
|
||||||
|
{"tag_cry_m", "M", 5, 6, 8},
|
||||||
|
|
||||||
|
{"tag_cry_blur", "Blurred", 0, 7, 11},
|
||||||
|
{"tag_cry_oversat", "Oversaturated", 1, 7, 12},
|
||||||
|
{"tag_cry_glitched", "Glitched", 2, 7, 13},
|
||||||
|
{"tag_cry_gold", "Golden", 3, 7, 9},
|
||||||
|
{"tag_cry_booster", "Booster", 4, 7, 4},
|
||||||
|
{"tag_cry_scope", "Scope", 5, 7, 3},
|
||||||
|
|
||||||
|
{"tag_cry_banana", "Banana", 0, 8, 4},
|
||||||
|
|
||||||
}) do
|
}) do
|
||||||
if Cryptid or v[1]:sub(1, 7) ~= "tag_cry" then
|
if Cryptid or v[1]:sub(1, 7) ~= "tag_cry" then
|
||||||
SMODS.Consumable {
|
SMODS.Consumable {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue