diff --git a/assets/1x/default/v_jane_jolly_voucher.png b/assets/1x/default/v_jane_jolly_voucher.png new file mode 100644 index 0000000..ce148a3 Binary files /dev/null and b/assets/1x/default/v_jane_jolly_voucher.png differ diff --git a/assets/2x/default/v_jane_jolly_voucher.png b/assets/2x/default/v_jane_jolly_voucher.png new file mode 100644 index 0000000..4be90a8 Binary files /dev/null and b/assets/2x/default/v_jane_jolly_voucher.png differ diff --git a/lovely.toml b/lovely.toml index 24605ad..78aa5f5 100644 --- a/lovely.toml +++ b/lovely.toml @@ -126,7 +126,15 @@ match_indent = true [[patches]] [patches.pattern] target = '=[SMODS Cryptid "items/exotic.lua"]' -pattern = 'local _first_dissolve = nil' +pattern = "local _first_dissolve = nil" position = "after" payload = 'deletable_jokers = next(SMODS.find_card("j_jane_saint")) and {} or deletable_jokers' match_indent = true + +[[patches]] +[patches.pattern] +target = '=[SMODS _ "src/utils.lua"]' +pattern = "function SMODS.has_enhancement(card, key)" +position = "after" +payload = "if not card.config then return false end" +match_indent = true diff --git a/manifest.json b/manifest.json index 4d4d759..4955624 100644 --- a/manifest.json +++ b/manifest.json @@ -17,5 +17,5 @@ "conflicts": [ "Jen" ], - "version": "1.4.1" + "version": "1.5.0" } \ No newline at end of file diff --git a/src/tarot.lua b/src/tarot.lua index 3e36b99..bf257ee 100644 --- a/src/tarot.lua +++ b/src/tarot.lua @@ -1,29 +1,33 @@ +local function j() + return G.GAME.used_vouchers.v_jane_jolly_voucher and "j_jolly" or "j_joker" +end + local blurbs = { + "M!", "Hey! Pick me!", - "You wouldn't say no to a free negative me, would you?", - "Sometimes, an extra four mult goes a long way!", + "Hee-hee, hoo-hoo!", + "Looks like the joke is on you!", + "Ouch, I think the joke is on me!", "I won't take up space, I promise!", "Don't ask how I ended up in a tarot!", - "Hee-hee, hoo-hoo!", - "Who knew even fortunes could be a circus act?", - "Looks like the joke is on the crystal globe!", - "It's a little cramped in this tarot...!", - "Ouch, I think the joke is on me!", - "Looks like the joke is on you!", - "I'm not just a clown; I'm the whole circus!", - "Seems a little suspicious for a jolly old fella like me to be in this card...", - "I can't help if I'm still in this silly old card, break me out!", - "Let me tell you, you'd love the show going on in this tarot!", - "I'd give you more tickets to JimCon, but I'm fresh out.", - "I've heard of a round buffoon that lives in a pretty funky town...", - "I can't give four mult if I'm still in this card!", - "I'm rooting for you! Even if it means I'll never get out of this card...", - "Who knew I'd have access to a great show? That show being you!", "The stakes are only gonna rise here!", - "Juggling is one of my favourite passtimes!", "I wonder what's the deal with pairs?", + "It's a little cramped in this tarot...!", + "Juggling is one of my favourite passtimes!", + "I'm not just a clown; I'm the whole circus!", + "Looks like the joke is on the crystal globe!", + "Who knew even fortunes could be a circus act?", + "Sometimes, an extra four mult goes a long way!", + "I can't give four mult if I'm still in this card!", + "You wouldn't say no to a free negative me, would you?", + "I'd give you more tickets to JimCon, but I'm fresh out.", + "Let me tell you, you'd love the show going on in this tarot!", + "Who knew I'd have access to a great show? That show being you!", + "I can't help if I'm still in this silly old card, break me out!", + "I've heard of a round buffoon that lives in a pretty funky town...", "You don't need to understand math to enjoy watching the digits climb!", - "M!", + "I'm rooting for you! Even if it means I'll never get out of this card...", + "Seems a little suspicious for a jolly old fella like me to be in this card...", } SMODS.Consumable { @@ -31,22 +35,32 @@ SMODS.Consumable { atlas = "janeacc", set = "Tarot", loc_txt = { - name = "Joker-in-a-Tarot", + name = "#1#-in-a-Tarot", text = { - "Create a {C:dark_edition}Negative {C:attention}default Joker", - "{C:inactive,E:1}#1#{}", + "Create a {C:dark_edition}Negative {C:attention}#2#", + "{C:inactive,E:1}#3#{}", }, }, loc_vars = function(_, info_queue, card) - info_queue[#info_queue + 1] = G.P_CENTERS.j_joker - card.blurb = card.blurb or pseudorandom_element(blurbs, pseudoseed("jokerinatarotblurbs")) - return {vars = {card.blurb}} + info_queue[#info_queue + 1] = G.P_CENTERS[j()] + local is_jolly = G.GAME.used_vouchers.v_jane_jolly_voucher + + card.blurb = not card.fake_card and + (card.blurb or pseudorandom_element(blurbs, pseudoseed("jokerinatarotblurbs"))) or "" + + if is_jolly then + card.blurb = card.blurb:gsub("four", "eight") + end + + local desc = is_jolly and "Jolly Joker" or "default Joker" + local name = is_jolly and "Jolly" or "Joker" + return {vars = {name, desc, card.blurb}} end, pos = {x = 0, y = 1}, cost = 4, can_use = Jane.can_use, use = function(_, _, _, _) - local card = create_card("Joker", G.jokers, nil, nil, nil, nil, "j_joker", "jokerfromatarot") + local card = create_card("Joker", G.jokers, nil, nil, nil, nil, j(), "jokerfromatarot") card:set_edition({negative = true}, true) card.cost = 1 card.base_cost = 1 @@ -62,3 +76,10 @@ SMODS.Consumable { end end, } + +if Cryptid then + Cryptid.aliases["joker in a tarot"] = "c_jane_jokerinatarot" + Cryptid.aliases["joker-in-a-tarot"] = "c_jane_jokerinatarot" + Cryptid.aliases["jolly in a tarot"] = "c_jane_jokerinatarot" + Cryptid.aliases["jolly-in-a-tarot"] = "c_jane_jokerinatarot" +end diff --git a/src/voucher.lua b/src/voucher.lua index 72a6cdc..5193ef4 100644 --- a/src/voucher.lua +++ b/src/voucher.lua @@ -1,3 +1,10 @@ +SMODS.Atlas { + key = "janejollyvoucher", + px = 71, + py = 95, + path = Jane.config.texture_pack .. "/v_jane_jolly_voucher.png", +} + SMODS.Atlas { key = "janetokenvoucher", px = 71, @@ -5,6 +12,22 @@ SMODS.Atlas { path = Jane.config.texture_pack .. "/v_jane_token_voucher.png", } +SMODS.Voucher { + key = "jolly_voucher", + atlas = "janejollyvoucher", + loc_txt = { + name = "Jolly Voucher", + text = {"{C:attention,T:c_jane_jokerinatarot}Joker-in-a-Tarot {}creates", "{C:attention,T:j_jolly}Jolly Joker {}instead"}, + }, + pos = {x = 0, y = 0}, + cost = 8, + loc_vars = function(_, info_queue, _) + info_queue[#info_queue + 1] = G.P_CENTERS.c_jane_jokerinatarot + info_queue[#info_queue + 1] = G.P_CENTERS.j_jolly + return {vars = {}} + end, +} + SMODS.Voucher { key = "token_voucher", atlas = "janetokenvoucher",