SMODS.Atlas { px = 71, py = 95, key = "janebooster", path = Jane.config.texture_pack .. "/p_jane_boosters.png", } for i = 1, 2 do SMODS.Booster { key = "ministandard" .. i, loc_txt = { name = "Mini Standard Pack", text = { "Choose {C:attention}#1#{} of up to", "{C:attention}#2# playing cards{} to", "add to your deck", }, }, atlas = "janebooster", pos = {x = 6, y = i - 1}, weight = 0.4, cost = 2, config = {extra = 2, choose = 1}, loc_vars = function(_, _, card) return {vars = {card.ability.choose, card.ability.extra}} 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, create_UIBox = function(_) return create_UIBox_standard_pack() end, ease_background_colour = function(_) ease_background_colour_blind(G.STATES.STANDARD_PACK) end, particles = function(_) G.booster_pack_sparkles = Particles(1, 1, 0, 0, { timer = 0.015, scale = 0.3, initialize = true, lifespan = 3, speed = 0.2, padding = -1, attach = G.ROOM_ATTACH, colours = {G.C.BLACK, G.C.RED}, fill = true, }) G.booster_pack_sparkles.fade_alpha = 1 G.booster_pack_sparkles:fade(1, 0) end, } end for i = 1, 2 do SMODS.Booster { key = "miniarcana" .. i, loc_txt = { name = "Mini Arcana Pack", text = { "Choose {C:attention}#1#{} of up to", "{C:attention}#2# {C:tarot}Tarot{} cards to", "be used immediately", }, }, atlas = "janebooster", pos = {x = 3 + i, y = 1}, weight = 0.4, cost = 2, config = {extra = 2, choose = 1}, draw_hand = true, loc_vars = function(_, _, card) return {vars = {card.ability.choose, card.ability.extra}} end, create_card = function(_, _, _) if G.GAME.used_vouchers.v_omen_globe and pseudorandom("omen_globe") > 0.8 then return { set = "Spectral", soulable = true, key_append = "ar2", area = G.pack_cards, skip_materialize = true, } end return { set = "Tarot", soulable = true, key_append = "ar1", area = G.pack_cards, skip_materialize = true, } 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 for i = 1, 2 do SMODS.Booster { key = "minicelestial" .. i, atlas = "janebooster", loc_txt = { name = "Mini Celestial Pack", text = { "Choose {C:attention}#1#{} of up to", "{C:attention}#2# {C:planet}Planet{} cards to", "be used immediately", }, }, config = {extra = 2, choose = 1}, pos = {x = 3 + i, y = 0}, cost = 2, weight = 0.4, loc_vars = function(_, _, card) return {vars = {card.ability.choose, card.ability.extra}} end, create_card = function(_, _, index) if not G.GAME.used_vouchers.v_telescope or index ~= 1 then return { set = "Planet", area = G.pack_cards, skip_materialize = true, soulable = true, key_append = "pl1", } end local planet, hand, tally = nil, nil, 0 for _, v in ipairs(G.handlist) do if G.GAME.hands[v].visible and G.GAME.hands[v].played > tally then hand = v tally = G.GAME.hands[v].played end end if hand then for _, v in pairs(G.P_CENTER_POOLS.Planet) do if v.config.hand_type == hand then planet = v.key end end end return { key = planet, set = "Planet", soulable = true, key_append = "pl1", area = G.pack_cards, skip_materialize = true, } 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 for i = 1, 2 do SMODS.Booster { key = "minispectral" .. i, atlas = "janebooster", loc_txt = { name = "Mini Spectral Pack", text = { "Choose {C:attention}#1#{} of up to", "{C:attention}#2# {C:spectral}Spectral{} cards to", "be used immediately", }, }, config = {extra = 1, choose = 1}, pos = {x = 3 + i, y = 2}, cost = 2, weight = 0.225, draw_hand = true, loc_vars = function(_, _, card) return {vars = {card.ability.choose, card.ability.extra}} end, create_card = function(_, _, _) return { soulable = true, set = "Spectral", key_append = "spe", area = G.pack_cards, skip_materialize = true, } end, create_UIBox = function(_) return create_UIBox_spectral_pack() end, ease_background_colour = function(_) ease_background_colour_blind(G.STATES.SPECTRAL_PACK) end, particles = function(_) G.booster_pack_sparkles = Particles(1, 1, 0, 0, { scale = 0.1, fill = true, speed = 0.2, lifespan = 3, padding = -1, timer = 0.015, initialize = true, attach = G.ROOM_ATTACH, colours = {G.C.WHITE, lighten(G.C.GOLD, 0.2)}, }) G.booster_pack_sparkles.fade_alpha = 1 G.booster_pack_sparkles:fade(1, 0) end, } end if Cryptid then SMODS.Booster { atlas = "janebooster", 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