SMODS.Atlas { px = 71, py = 95, key = "janedecks", path = Jane.config.texture_pack .. "/b_jane_decks.png" } local eternal_text = Cryptid and "Absolute" or "Eternal" SMODS.Back { key = "nitro", atlas = "janedecks", pos = {x = 1, y = 1}, loc_txt = { name = "Acceleration Deck", text = { Cryptid and "" or "{C:attention}Ante increases twice{} as strong", "After defeating the {C:attention}Boss Blind{},", 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", } }, apply = function(_) 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, trigger_effect = function(_, args) if args.context == "eval" and G.GAME.last_blind and G.GAME.last_blind.boss then Jane.q(function() Jane.empowered() return true end) end end } SMODS.Back { key = 'obsidian', atlas = 'janedecks', pos = {x = 2, y = 1}, loc_txt = { name = 'Obsidian Deck', text = { '{C:attention}Hidden{} cards {C:inactive}(ex. {C:spectral}The Soul{C:inactive})', 'can {C:attention}appear normally{}', } }, apply = function(_) G.GAME.obsidian = true end } SMODS.Back { key = "orrery", atlas = "janedecks", pos = {x = 0, y = 0}, loc_txt = { name = "Orrery Deck", text = { "All hands start at", "{X:chips,C:white}150{C:mult} X {X:red,C:white}1{} and", "{C:cry_ascendant}equalised {}whenever", "their {C:chips}Chips{}, {C:mult}Mult{},", "or {C:planet}level {C:attention}change", } }, apply = function(_) Jane.q(function() G.GAME.orrery = {chips = 150, level = 1, mult = 1} for _, v in pairs(G.GAME.hands) do v.mult = G.GAME.orrery.mult v.chips = G.GAME.orrery.chips end save_run() return true end ) end } SMODS.Back { key = "tortoise", atlas = "janedecks", pos = {x = 3, y = 1}, loc_txt = { name = "Tortoise Deck", text = { "{C:attention}Ante increases", "{C:attention}half{} as strong", } }, apply = function(_) G.GAME.tortoise = true end } SMODS.Back { key = "weeck", atlas = "janedecks", pos = {x = 4, y = 1}, loc_txt = { name = "Weeck", text = { "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, "{C:attention}2's {}of {C:attention}each suit", } }, apply = function(_) 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 } local orig_ante = ease_ante ---@diagnostic disable-next-line: lowercase-global function ease_ante(mod) local function next_triangle_number(x) local n = (math.sqrt(8 * x + 1) - 1) / 2 return (n + 1) * (n + 2) / 2 end if G.GAME.nitro then mod = Cryptid and (G.GAME.round_resets.ante < 0 and -G.GAME.round_resets.ante or math.ceil(next_triangle_number(G.GAME.round_resets.ante) - G.GAME.round_resets.ante)) or (mod > 0 and mod * 2 or mod) end if G.GAME.tortoise and mod > 0 then local disp = tonumber(G.GAME.round_resets.ante_disp) + mod / 2 mod = mod / 2 + (disp == math.floor(disp) and 0.5 or 0) end orig_ante(mod) end