From f4b89b5e8ad75aee92580dcd580ee9751078d79b Mon Sep 17 00:00:00 2001 From: Celeritas <126614030+Cooler2231@users.noreply.github.com> Date: Fri, 22 Nov 2024 16:16:20 +0000 Subject: [PATCH 1/5] Add files via upload --- lovely/Misc.toml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lovely/Misc.toml b/lovely/Misc.toml index 44d88aee..bbfed997 100644 --- a/lovely/Misc.toml +++ b/lovely/Misc.toml @@ -440,4 +440,13 @@ if G.GAME.modifiers.cry_forced_draw_amount and (G.GAME.current_round.hands_playe hand_space = math.min(#G.deck.cards, G.GAME.modifiers.cry_forced_draw_amount) end ''' +match_indent = true + +# Hopefully makes Enhancements check discards_used +[[patches]] +[patches.pattern] +target = "functions/state_events.lua" +pattern = 'G.hand.highlighted[i]:calculate_seal({discard = true})' +position = "after" +payload = 'eval_card(G.hand.highlighted[i],{discard = true})' match_indent = true \ No newline at end of file From bc55ac3f5484f713a17b339e40cd959d8bf8ad3e Mon Sep 17 00:00:00 2001 From: Celeritas <126614030+Cooler2231@users.noreply.github.com> Date: Fri, 22 Nov 2024 16:16:41 +0000 Subject: [PATCH 2/5] Add files via upload --- localization/en-us.lua | 7836 ++++++++++++++++++++-------------------- 1 file changed, 3922 insertions(+), 3914 deletions(-) diff --git a/localization/en-us.lua b/localization/en-us.lua index d4bd228f..56690fc9 100644 --- a/localization/en-us.lua +++ b/localization/en-us.lua @@ -1,3914 +1,3922 @@ ---I couldn't get Meme Packs to work without crashing ---yes somehow that was harder than RNJoker -return { - descriptions = { - Back = { - b_cry_antimatter = { - name = "Antimatter Deck", - text = { - "Applies the {C:legendary,E:1}upsides{}", - "of {C:attention}every{} deck", - }, - }, - b_cry_beta = { - name = "Nostalgic Deck", - text = { - "{C:attention}Joker{} and {C:attention}Consumable{}", - "slots are {C:attention}combined", - "{C:attention}Nostalgic{} Blinds replace", - "their updated Blind" - }, - }, - b_cry_blank = { - name = "Blank Deck", - text = { - "{C:inactive,E:1}Does nothing?", - }, - }, - b_cry_bountiful = { - name = "Bountiful Deck", - text = { - "After {C:blue}Play{} or {C:red}Discard{},", - "always draw {C:attention}5{} cards" - }, - }, - b_cry_CCD = { - name = "CCD Deck", - text = { - "Every card is also", - "a {C:attention}random{} consumable", - }, - }, - b_cry_conveyor = { - name = "Conveyor Deck", - text = { - "Jokers may {C:attention}not{} be moved", - "At start of round,", - "{C:attention}duplicate{} rightmost Joker", - "and {C:attention}destroy{} leftmost Joker", - }, - }, - b_cry_critical = { - name = "Critical Deck", - text = { - "After each hand played,", - "{C:green}#1# in 4{} chance for {X:dark_edition,C:white} ^2 {} Mult", - "{C:green}#1# in 8{} chance for {X:dark_edition,C:white} ^0.5 {} Mult", - }, - }, - b_cry_encoded = { - name = "Encoded Deck", - text = { - "Start with a {C:cry_code,T:j_cry_CodeJoker}Code Joker{}", - "and a {C:cry_code,T:j_cry_copypaste}Copy/Paste{}", - "Only {C:cry_code}Code Cards{} appear in shop", - }, - }, - b_cry_equilibrium = { - name = "Deck of Equilibrium", - text = { - "All cards have the", - "{C:attention}same chance{} of", - "appearing in shops,", - "start run with", - "{C:attention,T:v_overstock_plus}Overstock Plus", - }, - }, - b_cry_glowing = { - name = "Glowing Deck", - text = { - "Multiply the values of", - "all Jokers by {X:dark_edition,C:white} X1.25 {}", - "when Boss Blind is defeated", - "{X:cry_jolly,C:white,s:0.8} Jolly#1#Open#1#Winner#1#-#1#wawa#1#person", --peak loc_vars right here - }, - }, - b_cry_infinite = { - name = "Infinite Deck", - text = { - "You can select {C:attention}any", - "number of cards", - "{C:attention}+1{} hand size", - }, - }, - b_cry_misprint = { - name = "Misprint Deck", - text = { - "Values of cards", - "and poker hands", - "are {C:attention}randomized", - }, - }, - b_cry_redeemed = { - name = "Redeemed Deck", - text = { - "When a {C:attention}Voucher{} is purchased,", - "gain its {C:attention}extra tiers", - }, - }, - b_cry_spooky = { - name = "Spooky Deck", - text = { - "Start with an {C:eternal}Eternal{} {C:attention,T:j_cry_chocolate_dice}Chocolate Die", - "After each {C:attention}Ante{}, create a", - "{C:cry_candy}Candy{} or {X:cry_cursed,C:white}Cursed{} Joker", - } - }, - b_cry_very_fair = { - name = "Very Fair Deck", - text = { - "{C:blue}-2{} hands, {C:red}-2{} discards", - "every round", - "{C:attention}Vouchers{} no longer", - "appear in the shop", - }, - }, - b_cry_wormhole = { - name = "Wormhole Deck", - text = { - "Start with an {C:cry_exotic}Exotic{C:attention} Joker", - "Jokers are {C:attention}20X{} more", - "likely to be {C:dark_edition}Negative", - "{C:attention}-2{} Joker slots", - }, - }, - b_cry_legendary = { - name = "Legendary Deck", - text = { - "Start with a {C:legendary}Legendary{C:legendary} Joker", - "{C:green}1 in 5{} chance to create another", - "when Boss Blind is defeated {C:inactive}(must have room){}", - }, - }, - }, - Blind = { - bl_cry_box = { - name = "The Box", - text = { - "All Common Jokers", - "are debuffed", - }, - }, - bl_cry_clock = { - name = "The Clock", - text = { - "+0.1X blind requirements every", - "3 seconds spent this ante", - }, - }, - bl_cry_hammer = { - name = "The Hammer", - text = { - "All cards with odd", - "rank are debuffed", - }, - }, - bl_cry_joke = { - name = "The Joke", - text = { - "If score is >2X requirements,", - "set ante to multiple of #1#", - }, - }, - bl_cry_magic = { - name = "The Magic", - text = { - "All cards with even", - "rank are debuffed", - }, - }, - bl_cry_lavender_loop = { - name = "Lavender Loop", - text = { - "1.25X blind requirements every", - "1.5 seconds spent this round", - }, - }, - bl_cry_obsidian_orb = { - name = "Obsidian Orb", - text = { - "Applies abilities of", - "all defeated bosses", - }, - }, - bl_cry_oldarm = { - name = "Nostalgic Arm", - text = { - "Must play 4", - "or fewer cards", - }, - }, - bl_cry_oldfish = { - name = "Nostalgic Fish", - text = { - "All hands start", - "with 1 Mult", - }, - }, - bl_cry_oldflint = { - name = "Nostalgic Flint", - text = { - "No Flushes", - }, - }, - bl_cry_oldhouse = { - name = "Nostalgic House", - text = { - "No Full Houses", - }, - }, - bl_cry_oldmanacle = { - name = "Nostalgic Manacle", - text = { - "Divide Mult by discards", - }, - }, - bl_cry_oldmark = { - name = "Nostalgic Mark", - text = { - "No hands that", - "contain a Pair", - }, - }, - bl_cry_oldox = { - name = "Nostalgic Ox", - text = { - "All hands start", - "with 0 Chips", - }, - }, - bl_cry_oldpillar = { - name = "Nostalgic Pillar", - text = { - "No Straights", - }, - }, - bl_cry_oldserpent = { - name = "Nostalgic Serpent", - text = { - "Divide Mult by level", - "of played poker hand", - }, - }, - bl_cry_pin = { - name = "The Pin", - text = { - "Jokers with Epic or higher", - "rarity are debuffed", - }, - }, - bl_cry_pinkbow = { - name = "Pink Bow", - text = { - "Randomize rank of cards", - "held in hand on play", - }, - }, - bl_cry_sapphire_stamp = { - name = "Sapphire Stamp", - text = { - "Select an extra card, deselect", - "random card before scoring", - }, - }, - bl_cry_shackle = { - name = "The Shackle", - text = { - "All Negative Jokers", - "are debuffed", - }, - }, - bl_cry_striker = { - name = "The Striker", - text = { - "All Rare Jokers", - "are debuffed", - }, - }, - bl_cry_tax = { - name = "The Tax", - text = { - "Score per hand capped at", - "0.4X blind requirements", - }, - }, - bl_cry_tornado = { - name = "Turquoise Tornado", - text = { - "#1# in #2# chance for", - "played hand to not score", - }, - }, - bl_cry_trick = { - name = "The Trick", - text = { - "After each hand, flip all", - "face-up cards held in hand", - }, - }, - bl_cry_vermillion_virus = { - name = "Vermillion Virus", - text = { - "One random Joker", - "replaced every hand", - }, - }, - bl_cry_windmill = { - name = "The Windmill", - text = { - "All Uncommon Jokers", - "are debuffed", - }, - }, - }, - Code = { - c_cry_class = { - name = "://CLASS", - text = { - "Convert {C:cry_code}#1#{} selected card", - "to a {C:cry_code}chosen{} enhancement", - }, - }, - c_cry_commit = { - name = "://COMMIT", - text = { - "Destroy a {C:cry_code}selected{} Joker,", - "create a {C:cry_code}new{} Joker", - "of the {C:cry_code}same rarity", - }, - }, - c_cry_crash = { - name = "://CRASH", - text = { - "{C:cry_code,E:1}Don't.", - }, - }, - c_cry_ctrl_v = { - name = "://CTRL+V", - text = { - "Create a {C:cry_code}copy{} of a selected", - "playing card or consumable" - }, - }, - c_cry_delete = { - name = "://DELETE", - text = { - "{C:cry_code}Permanently{} remove a", - "{C:cry_code}selected{} shop item", - "{C:inactive,s:0.8}Item cannot appear again this run", - }, - }, - c_cry_divide = { - name = "://DIVIDE", - text = { - "{C:cry_code}Halve{} all listed prices", - "in current shop", - }, - }, - c_cry_exploit = { - name = "://EXPLOIT", - text = { - "Any played hand is considered", - "to {C:cry_code}contain{} a {C:cry_code}chosen{} poker hand,", - "resets at end of round", - "{C:inactive,s:0.8}Secret hands must be", - "{C:inactive,s:0.8}discovered to be valid", - }, - }, - c_cry_hook = { - name = "HOOK://", - text = { - "Select two Jokers to become {C:cry_code}Hooked", - "{C:inactive,s:0.8}Only works properly if Jokers trigger in the same context,", - "{C:inactive,s:0.8}such as Joker and The Duo (both post-scoring)", - }, - }, - c_cry_inst = { - name = "://INSTANTIATE", - text = { - "Draw a card with selected card's {C:cry_code}rank{}", - "and one with selected card's {C:cry_code}suit{}", - "{C:inactive}(if possible){}", - }, - }, - c_cry_machinecode = { - name = "://MACHINECODE", - text = { - "", - }, - }, - c_cry_malware = { - name = "://MALWARE", - text = { "Add {C:dark_edition}Glitched{} to all", "cards {C:cry_code}held in hand" }, - }, - c_cry_merge = { - name = "://MERGE", - text = { - "Merge a selected {C:cry_code}consumable", - "with a selected {C:cry_code}playing card", - }, - }, - c_cry_multiply = { - name = "://MULTIPLY", - text = { - "{C:cry_code}Double{} all values of", - "a selected {C:cry_code}Joker{} until", - "end of round", - }, - }, - c_cry_patch = { - name = "://PATCH", - text = { - "Remove all debuffs and stickers", - "from currently visible items", - }, - }, - c_cry_payload = { - name = "://PAYLOAD", - text = { - "Next defeated Blind", - "gives {C:cry_code}X#1#{} interest", - }, - }, - c_cry_oboe = { - name = "://OFFBYONE", - text = { - "Next {C:cry_code}Booster Pack{} has", - "{C:cry_code}#1#{} extra card and", - "{C:cry_code}#1#{} extra choice", - "{C:inactive}(Currently {C:cry_code}+#2#{C:inactive})", - }, - }, - c_cry_reboot = { - name = "://REBOOT", - text = { - "Replenish {C:blue}Hands{} and {C:red}Discards{},", - "return {C:cry_code}all{} cards to deck", - "and draw a {C:cry_code}new{} hand", - }, - }, - c_cry_revert = { - name = "://REVERT", - text = { - "Set {C:cry_code}game state{} to", - "start of {C:cry_code}this Ante{}", - }, - }, - c_cry_rework = { - name = "://REWORK", - text = { - "Destroy a {C:cry_code}selected{} Joker,", - "create a {C:cry_code}Rework Tag{} with", - "an {C:cry_code}upgraded{} edition", - "{C:inactive,s:0.8}Upgrades using order in the Collection", - }, - }, - c_cry_run = { - name = "://RUN", - text = { - "Visit a {C:cry_code}shop", - "during a {C:cry_code}Blind", - }, - }, - c_cry_seed = { - name = "://SEED", - text = { - "Select a Joker", - "or playing card", - "to become {C:cry_code}Rigged", - }, - }, - c_cry_semicolon = { - name = ";//", - text = { "Ends current non-Boss {C:cry_code}Blind{}", "{C:cry_code}without{} cashing out" }, - }, - c_cry_spaghetti = { - name = "://SPAGHETTI", - text = { - "Create a {C:cry_code}Glitched", - "Food Joker", - }, - }, - c_cry_variable = { - name = "://VARIABLE", - text = { - "Convert {C:cry_code}#1#{} selected cards", - "to a {C:cry_code}chosen{} rank", - }, - }, - }, - Edition = { - e_cry_astral = { - name = "Astral", - text = { - "{X:dark_edition,C:white}^#1#{} Mult", - }, - }, - e_cry_blur = { - name = "Blurred", - text = { - "{C:attention}Retrigger{} this", - "card {C:attention}1{} time", - "{C:green}#1# in #2#{} chance", - "to retrigger {C:attention}#3#{}", - "additional time", - }, - }, - e_cry_double_sided = { - name = "Double-Sided", - text = { - "This card can be", - "{C:attention}flipped{} to reveal", - "a different card", - "{C:inactive}(Blank side can be merged", - "{C:inactive}with another card)", - }, - }, - e_cry_glass = { - name = "Fragile", - label = "Fragile", - text = { - "{C:white,X:mult} X#3# {} Mult", - "{C:green}#1# in #2#{} chance this", - "card isn't {C:red}destroyed", - "when triggered", - }, - }, - e_cry_glitched = { - name = "Glitched", - text = { - "All values on this card", - "are {C:dark_edition}randomized{}", - "between {C:attention}X0.1{} and {C:attention}X10{}", - "{C:inactive}(If possible){}", - }, - }, - e_cry_gold = { - name = "Golden", - label = "Golden", - text = { - "Earn {C:money}$#1#{} when used", - "or triggered", - }, - }, - e_cry_m = { - name = "Jolly", - text = { - "{C:mult}+#1#{} Mult", - "This card is feeling", - "rather {C:attention}jolly{}", - }, - }, - e_cry_mosaic = { - name = "Mosaic", - text = { - "{X:chips,C:white} X#1# {} Chips", - }, - }, - e_cry_noisy = { - name = "Noisy", - text = { - "???", - }, - }, - e_cry_oversat = { - name = "Oversaturated", - text = { - "All values", - "on this card", - "are {C:attention}doubled{}", - "{C:inactive}(If possible)", - }, - }, - }, - Enhanced = { - m_cry_echo = { - name = "Echo Card", - text = { - "{C:green}#2# in #3#{} chance to", - "{C:attention}retrigger{} #1# additional", - "times when scored", - }, - }, - }, - Joker = { - j_cry_adroit = { - name = "Adroit Joker", - text = { - "{C:chips}+#1#{} Chips if played", - "hand contains", - "a {C:attention}#2#" - } - }, - j_cry_altgoogol = { - name = "Nostalgic Googol Play Card", - text = { - "Sell this card to create", - "{C:attention}2{} copies of the leftmost {C:attention}Joker{}", - "{C:inactive,s:0.8}Does not copy Nostalgic Googol Play Cards{}", - }, - }, - j_cry_antennastoheaven = { - name = "...Like Antennas to Heaven", - text = { - "This Joker gains", - "{X:chips,C:white} X#1# {} Chips when each", - "played {C:attention}7{} or {C:attention}4{} is scored", - "{C:inactive}(Currently {X:chips,C:white}X#2# {C:inactive} Chips)", - }, - }, - j_cry_apjoker = { - name = "AP Joker", - text = { "{X:mult,C:white} X#1# {} Mult against {C:attention}Boss Blinds{}" }, - }, - j_cry_astral_bottle = { - name = "Astral in a Bottle", - text = { - "When sold, apply {C:dark_edition}Astral{}", - "and {C:attention}Perishable{} to", - "a random {C:attention}Joker{}", - } - }, - j_cry_big_cube = { - name = "Big Cube", - text = { - "{X:chips,C:white} X#1# {} Chips", - }, - }, - j_cry_biggestm = { - name = "Huge", - text = { - "{X:mult,C:white} X#1# {} Mult until end", - "of round if {C:attention}poker hand{}", - "is a {C:attention}#2#{}", - "{C:inactive}(Currently {C:attention}#3#{}{C:inactive}){}", - "{C:inactive,s:0.8}not fat, just big boned.", - }, - }, - j_cry_blacklist = { - name = "Blacklist", - text = { - "If a {C:attention}#1#{} is held in hand or played,", - "set {C:chips}Chips{} and {C:mult}Mult{} to 0", - "{C:red,E:2}self destructs{} if no {C:attention}#1#{} in deck", - "{C:inactive,s:0.8}Rank does not change" - } - }, - j_cry_blender = { - name = "Blender", - text = { - "Create a {C:attention}random{}", - "consumable when a", - "{C:cry_code}Code{} card is used", - "{C:inactive}(Must have room){}", - }, - }, - j_cry_blurred = { - name = "Blurred Joker", - text = { - "Gain {C:blue}+#1#{} hand(s) when", - "{C:attention}Blind{} is selected", - }, - }, - j_cry_bonk = { - name = "Bonk", - text = { - "Each {C:attention}Joker{} gives {C:chips}+#1#{} Chips", - "Increase amount by {C:chips}+#2#{} if", - "{C:attention} poker hand{} is a {C:attention}#3#{}", - "{C:inactive,s:0.8}Jolly Jokers give{} {C:chips,s:0.8}+#4#{} {C:inactive,s:0.8}Chips instead{}", - }, - }, - j_cry_bonkers = { - name = "Bonkers Joker", - text = { - "{C:red}+#1#{} Mult if played", - "hand contains", - "a {C:attention}#2#" - } - }, - j_cry_bonusjoker = { - name = "Bonus Joker", - text = { - "{C:green}#1# in #2#{} chance for each", - "played {C:attention}Bonus{} card to increase", - "{C:attention}Joker{} or {C:attention}Consumable slots", - "by {C:dark_edition}1{} when scored", - "{C:red}Works twice per round", - "{C:inactive,s:0.8}(Equal chance for each){}", - }, - }, - j_cry_booster = { - name = "Booster Joker", - text = { - "{C:attention}+#1#{} Booster Pack slot", - "available in shop", - }, - }, - j_cry_boredom = { - name = "Boredom", - text = { - "{C:green}#1# in #2#{} chance to", - "{C:attention}retrigger{} each {C:attention}Joker{}", - "or {C:attention}played card{}", - "{C:inactive,s:0.8}Does not affect other Boredom{}", - }, - }, - j_cry_brittle = { - name = "Brittle Candy", - text = { - "For the next {C:attention}#1#{} hands,", - "add {C:attention}Stone{}, {C:attention}Gold{}, or {C:attention}Steel{} to", - "the rightmost scoring card" - } - }, - j_cry_bubblem = { - name = "Bubble M", - text = { - "Create a {C:dark_edition}Foil {C:attention}Jolly Joker{}", - "if played hand contains", - "a {C:attention}#1#{}", - "{C:red,E:2}self destructs{}", - }, - }, - j_cry_busdriver = { - name = "Bus Driver", - text = { - "{C:green}#1# in #3#{} chance", - "for {C:mult}+#2#{} Mult", - "{C:green}1 in 4{} chance", - "for {C:mult}-#2#{} Mult", - }, - }, - j_cry_candy_basket = { - name = "Candy Basket", - text = { - "Sell this card to create {C:attention}#1#{} {C:cry_candy}Candies", - "{C:attention}+#2#{} {C:cry_candy}Candy{} every {C:attention}2{} Blinds defeated", - "{C:attention}+#3#{} {C:cry_candy}Candies{} when {C:attention}Boss Blind{} defeated" - } - }, - j_cry_candy_buttons = { - name = "Candy Buttons", - text = { - "The next {C:attention}#1#{} rerolls", - "cost {C:money}$1{}", - } - }, - j_cry_candy_cane = { - name = "Candy Cane", - text = { - "For the next {C:attention}#1#{} rounds,", - "playing cards give {C:money}$#2#", - "when {C:attention}retriggered" - } - }, - j_cry_candy_dagger = { - name = "Candy Dagger", - text = { - "When {C:attention}Blind{} is selected,", - "destroy Joker to the right", - "to create a {C:cry_candy}Candy{}", - } - }, - j_cry_candy_sticks = { - name = "Candy Sticks", - text = { - "Next boss blind's effect isn't active", - "until you've played {C:attention}#1#{} hand", - } - }, - j_cry_canvas = { - name = "Canvas", - text = { - "{C:attention}Retrigger{} all {C:attention}Jokers{} to the left", - "once for {C:attention}every{} non-{C:blue}Common{C:attention} Joker{}", - "to the right of this Joker", - }, - }, - j_cry_caramel = { - name = "Caramel", - text = { - "Each played card gives", - "{X:mult,C:white}X#1#{} Mult when scored", - "for the next {C:attention}#2#{} rounds", - }, - }, - j_cry_chad = { - name = "Chad", - text = { - "Retrigger {C:attention}leftmost{} Joker", - "{C:attention}#1#{} additional time(s)", - }, - }, - j_cry_chili_pepper = { - name = "Chili Pepper", - text = { - "This Joker gains {X:mult,C:white} X#2# {} Mult", - "at end of round,", - "{C:red,E:2}self destructs{} after {C:attention}#3#{} rounds", - "{C:inactive}(Currently{} {X:mult,C:white} X#1# {} {C:inactive}Mult){}", - }, - }, - j_cry_chocolate_dice = { - name = "Chocolate Die", - text = { - "Roll a {C:green}d10{} when", - "{C:attention}Boss Blind{} defeated", - "to start an {C:cry_ascendant,E:1}event", - "{C:inactive}(Currently: #1#)" - }, - }, - j_cry_circulus_pistoris = { - name = "Circulus Pistoris", - text = { - "{X:dark_edition,C:white}^#1#{} Chips and {X:dark_edition,C:white}^#1#{} Mult", - "if {C:attention}exactly{} #2#", - "hands remaining", - }, - }, - j_cry_circus = { - name = "Circus", - text = { - "{C:red}Rare{} Jokers each give {X:mult,C:white} X#1# {} Mult", - "{C:cry_epic}Epic{} Jokers each give {X:mult,C:white} X#2# {} Mult", - "{C:legendary}Legendary{} Jokers each give {X:mult,C:white} X#3# {} Mult", - "{C:cry_exotic}Exotic{} Jokers each give {X:mult,C:white} X#4# {} Mult", - }, - }, - j_cry_clash = { - name = "The Clash", - text = { - "{X:mult,C:white} X#1# {} Mult if played", - "hand contains", - "an {C:attention}#2#", - }, - }, - j_cry_CodeJoker = { - name = "Code Joker", - text = { - "Create a {C:dark_edition}Negative{}", - "{C:cry_code}Code Card{} when", - "{C:attention}Blind{} is selected", - }, - }, - j_cry_coin = { - name = "Crypto Coin", - text = { - "Earn between", - "{C:money}$#1#{} and {C:money}$#2#{} for", - "each Joker {C:attention}sold{}", - }, - }, - j_cry_compound_interest = { - name = "Compound Interest", - text = { - "Earn {C:money}#1#%{} of total money", - "at end of round,", - "increases by {C:money}#2#%{} per", - "consecutive payout", - }, - }, - j_cry_copypaste = { - name = "Copy/Paste", - text = { - "When a {C:cry_code}Code{} card is used,", - "{C:green}#1# in #2#{} chance to add a copy", - "to your consumable area", - "{C:inactive}(Must have room)", - }, - }, - j_cry_cotton_candy = { - name = "Cotton Candy", - text = { - "When sold, adjacent", - "{C:attention}Jokers{} become {C:dark_edition}Negative{}" - }, - }, - j_cry_crustulum = { - name = "Crustulum", - text = { - "This Joker gains {C:chips}+#2#{} Chips", - "per {C:attention}reroll{} in the shop", - "{C:green}All rerolls are free{}", - "{C:inactive}(Currently {C:chips}+#1#{C:inactive} chips)", - }, - }, - j_cry_cryptidmoment = { - name = "M Chain", - text = { - "Sell this card to", - "add {C:money}$#1#{} of {C:attention}sell value{}", - "to every {C:attention}Joker{} card", - }, - }, - j_cry_cube = { - name = "Cube", - text = { - "{C:chips}+#1#{} Chips", - }, - }, - j_cry_curse_sob = { - name = "Sob", - text = { - "{C:edition,E:1}you cannot{} {C:cry_ascendant,E:1}run...{}", - "{C:edition,E:1}you cannot{} {C:cry_ascendant,E:1}hide...{}", - "{C:dark_edition,E:1}you cannot escape...{}", - "{C:inactive}(Must have room){}", - }, - }, - j_cry_cursor = { - name = "Cursor", - text = { - "This Joker gains {C:chips}+#2#{} Chips", - "for each card {C:attention}purchased{}", - "{C:inactive}(Currently {C:chips}+#1#{C:inactive} Chips)", - }, - }, - j_cry_cut = { - name = "Cut", - text = { - "This Joker destroys", - "a random {C:cry_code}Code{} card", - "and gains {X:mult,C:white} X#1# {} Mult", - "at the end of the {C:attention}shop{}", - "{C:inactive}(Currently {X:mult,C:white} X#2# {C:inactive} Mult)", - }, - }, - j_cry_delirious = { - name = "Delirious Joker", - text = { - "{C:red}+#1#{} Mult if played", - "hand contains", - "a {C:attention}#2#" - } - }, - j_cry_discreet = { - name = "Discreet Joker", - text = { - "{C:chips}+#1#{} Chips if played", - "hand contains", - "a {C:attention}#2#" - } - }, - j_cry_doodlem = { - name = "Doodle M", - text = { - "Create 2 {C:dark_edition}Negative{} {C:attention}consumables{}", - "when {C:attention}Blind{} is selected", - "Create 1 more {C:attention}consumable", - "for each {C:attention}Jolly Joker{}", - }, - }, - ["j_cry_Double Scale"] = { - name = "Double Scale", - text = { - "Scaling {C:attention}Jokers{}", - "scale {C:attention}quadratically", - "{C:inactive,s:0.8}(ex. +1, +3, +6, +10)", - "{C:inactive,s:0.8}(grows by +1, +2, +3)", - }, - }, - j_cry_dropshot = { - name = "Dropshot", - text = { - "This Joker gains {X:mult,C:white} X#1# {} Mult for", - "each played, {C:attention}nonscoring{} {V:1}#2#{} card,", - "suit changes every round", - "{C:inactive}(Currently {X:mult,C:white} X#3# {C:inactive} Mult)", - }, - }, - j_cry_dubious = { - name = "Dubious Joker", - text = { - "{C:chips}+#1#{} Chips if played", - "hand contains", - "a {C:attention}#2#" - } - }, - j_cry_duos = { - name = "The Duos", - text = { - "{X:mult,C:white} X#1# {} Mult if played", - "hand contains", - "a {C:attention}#2#", - }, - }, - j_cry_duplicare = { - name = 'Duplicare', - text = { - "This Joker gains {X:mult,C:white} X#2# {} Mult", - "when a {C:attention}Joker{} or", - "playing card is scored", - "{C:inactive}(Currently {X:mult,C:white} X#1# {C:inactive} Mult)", - } - }, - j_cry_effarcire = { - name = "Effarcire", - text = { - "Draw {C:green}full deck{} to hand", - "when {C:attention}Blind{} is selected", - "{C:inactive,s:0.8}\"If you can't handle me at my 1x,", - "{C:inactive,s:0.8}you don't deserve me at my 2x\"", - }, - }, - j_cry_energia = { - name = "Energia", - text = { - "When a {C:attention}Tag{} is acquired,", - "create {C:attention}#1#{} copies of it", - "and {C:attention}increase{} the number of", - "copies by {C:attention}#2#", - }, - }, - j_cry_equilib = { - name = "Ace Aequilibrium", - text = { - "Jokers appear using the", - "order from the {C:attention}Collection{}", - "Create {C:attention}#1#{} {C:dark_edition}Negative{} Joker(s)", - "when hand is played", - "{C:cry_exotic,s:0.8}Exotic {C:inactive,s:0.8}or better Jokers cannot appear", - "{s:0.8}Last Joker Generated: {C:attention,s:0.8}#2#", - }, - }, - j_cry_error = { - name = "{C:red}ERR{}{C:dark_edition}O{}{C:red}R{}", - text = { - "", - }, - }, - j_cry_eternalflame = { - name = "Eternal Flame", - text = { - "This Joker gains {X:mult,C:white} X#1# {} Mult", - "for each card {C:attention}sold{}", - "{C:inactive}(Currently {X:mult,C:white} X#2# {C:inactive} Mult)", - }, - }, - j_cry_exoplanet = { - name = "Exoplanet", - text = { - "{C:dark_edition}Holographic{} cards", - "each give {C:mult}+#1#{} Mult", - }, - }, - j_cry_exponentia = { - name = "Exponentia", - text = { - "This Joker gains {X:dark_edition,C:white} ^#1# {} Mult", - "when {X:red,C:white} XMult {} is triggered", - "{C:inactive}(Currently {X:dark_edition,C:white} ^#2# {C:inactive} Mult)", - }, - }, - j_cry_exposed = { - name = "Exposed", - text = { - "Retrigger all non-{C:attention}face{} cards", - "{C:attention}#1#{} additional time(s)", - "All {C:attention}face{} cards are debuffed", - }, - }, - j_cry_facile = { - name = "Facile", - text = { - "{X:dark_edition,C:white}^#1#{} Mult if", - "played cards are scored", - "{C:attention}#2#{} or fewer times", - }, - }, - j_cry_filler = { - name = "The Filler", - text = { - "{X:mult,C:white} X#1# {} Mult if played", - "hand contains", - "a {C:attention}#2#", - }, - }, - j_cry_fractal = { - name = "Fractal Fingers", - text = { - "{C:attention}+#1#{} card selection limit", - }, - }, - j_cry_flip_side = { - name = "On the Flip Side", - text = { - "{C:dark_edition}Double-Sided{} Jokers use", - "their back side for effects", - "instead of the front side", - "{C:attention}Retrigger{} all {C:dark_edition}Double-Sided{} Jokers" - }, - }, - j_cry_foodm = { - name = "Fast Food M", - text = { - "{C:mult}+#1#{} Mult", - "{C:red,E:2}self destructs{} in {C:attention}#2#{} round(s)", - "Increases by {C:attention}#3#{} round when", - "{C:attention}Jolly Joker{} is {C:attention}sold{}", - "{C:inactive,s:0.8}2 McDoubles, 2 McChickens{}", - "{C:inactive,s:0.8}Large Fries, 20 Piece & Large Cake{}", - }, - }, - j_cry_foolhardy = { - name = "Foolhardy Joker", - text = { - "{C:red}+#1#{} Mult if played", - "hand contains", - "an {C:attention}#2#" - } - }, - j_cry_formidiulosus = { - name = "Formidiulosus", - text = { - "When a {X:cry_cursed,C:white}Cursed{} Joker is obtained, destroy it", - "Creates {C:attention}#1#{} {C:dark_edition}Negative {C:cry_candy}Candies{} at end of shop", - "Gains {X:dark_edition,C:white}^#2#{} Mult for each {C:cry_candy}Candy{} in possession", - "{C:inactive}(Currently {X:dark_edition,C:white}^#3#{C:inactive} Mult)", - }, - }, - j_cry_foxy = { - name = "Foxy Joker", - text = { - "{C:chips}+#1#{} Chips if played", - "hand contains", - "a {C:attention}#2#" - } - }, - j_cry_fspinner = { - name = "Fidget Spinner", - text = { - "This Joker gains {C:chips}+#2#{} Chips", - "if hand played is {C:attention}not{}", - "most played {C:attention}poker hand{}", - "{C:inactive}(Currently {C:chips}+#1#{C:inactive} Chips)", - }, - }, - j_cry_fuckedup = { - name = "Fucked-Up Joker", - text = { - "{C:red}+#1#{} Mult if played", - "hand contains", - "a {C:attention}#2#" - } - }, - j_cry_gardenfork = { - name = "Garden of Forking Paths", - text = { - "Earn {C:money}$#1#{} if {C:attention}played hand{}", - "contains an {C:attention}Ace{} and a {C:attention}7{}", - }, - }, - j_cry_gemino = { - name = "Gemini", - text = { - "{C:attention}Double{} all values", - "of leftmost {C:attention}Joker", - "at end of round", - }, - }, - j_cry_ghost = { - name = "Ghost", - text = { - "At end of round:", - "{C:green}#1# in #2#{} chance to", - "{C:attention}possess{} a random {C:attention}Joker", - "{C:green}#1# in #3#{} chance to", - "{E:2,C:red}self destruct" - } - }, - j_cry_giggly = { - name = "Absurd Joker", - text = { - "{C:red}+#1#{} Mult if played", - "hand contains", - "a {C:attention}#2#" - } - }, - j_cry_goldjoker = { - name = "Gold Joker", - text = { - "Earn {C:money}#1#%{} of total", - "money at end of round", - "Payout increases by {C:money}#2#%{}", - "when each played {C:attention}Gold{}", - "card is scored", - }, - }, - j_cry_googol_play = { - name = "Googol Play Card", - text = { - "{C:green}#1# in #2#{} chance for", - "{X:red,C:white} X#3# {} Mult", - }, - }, - j_cry_happy = { - name = ":D", - text = { - "Create a random {C:attention}Joker{}", - "at end of round", - "Sell this card to", - "create a random {C:attention}Joker{}", - "{C:inactive}(Must have room){}", - }, - }, - j_cry_happyhouse = { - name = "Happy House", - text = { - "{X:dark_edition,C:white}^#1#{} Mult only after", - "playing {C:attention}114{} hands{}", - "{C:inactive}(Currently #2#/114){}", - "{C:inactive,s:0.8}There is no place like home!{}", - }, - }, - j_cry_home = { - name = "The Home", - text = { - "{X:mult,C:white} X#1# {} Mult if played", - "hand contains", - "a {C:attention}#2#", - }, - }, - j_cry_hunger = { - name = "Consume-able", - text = { - "Earn {C:money}$#1#{} when", - "using a {C:attention}consumable{}", - }, - }, - j_cry_iterum = { - name = "Iterum", - text = { - "Retrigger all cards played", - "{C:attention}#2#{} time(s),", - "each played card gives", - "{X:mult,C:white} X#1# {} Mult when scored", - }, - }, - j_cry_jawbreaker = { - name = "Jawbreaker", - text = { - "When {C:attention}Boss Blind{} defeated,", - "{C:attention}double{} values of adjacent Jokers", - "{E:2,C:red}self destructs{}", - } - }, - j_cry_jimball = { - name = "Jimball", - text = { - "This Joker gains {X:mult,C:white} X#1# {} Mult", - "per {C:attention}consecutive{} hand played", - "while playing your", - "most played {C:attention}poker hand", - "{C:inactive}(Currently {X:mult,C:white} X#2# {C:inactive} Mult)", - }, - }, - j_cry_jollysus = { - name = "Jolly Joker?", - text = { - "Create a {C:dark_edition}Jolly{} Joker", - "when a Joker is {C:attention}sold{}", - "{C:red}Works once per round{}", - "{C:inactive}#1#{}", - "{C:inactive,s:0.8}Seems legit...{}", - }, - }, - j_cry_kidnap = { - name = "Kidnapping", - text = { - "Earn {C:money}$#2#{} at end of round", - "Increase payout by {C:money}$#1#{}", - "when a {C:attention}Type Mult{} or", - "{C:attention}Type Chips{} Joker is sold", - }, - }, - j_cry_kooky = { - name = "Kooky Joker", - text = { - "{C:red}+#1#{} Mult if played", - "hand contains", - "a {C:attention}#2#" - } - }, - j_cry_krustytheclown = { - name = "Krusty the Clown", - text = { - "This Joker gains", - "{X:mult,C:white} X#1# {} Mult when", - "each played {C:attention}card{} is scored", - "{C:inactive}(Currently {X:mult,C:white} X#2# {C:inactive} Mult)", - }, - }, - j_cry_kscope = { - name = "Kaleidoscope", - text = { - "Add {C:dark_edition}Polychrome{} to", - "a random {C:attention}Joker{} when", - "{C:attention}Boss Blind{} is defeated", - }, - }, - j_cry_lightupthenight = { - name = "Light Up the Night", - text = { - "Each played {C:attention}7{} or {C:attention}2{}", - "gives {X:mult,C:white}X#1#{} Mult when scored", - }, - }, - j_cry_longboi = { - name = "Monster", - text = { - "Give future copies of", - "this Joker {X:mult,C:white}X#1#{} Mult", - "at end of round", - "{C:inactive}(Currently {X:mult,C:white}X#2#{C:inactive} Mult){}", - }, - }, - j_cry_loopy = { - name = "Loopy", - text = { - "{C:attention}Retrigger{} all Jokers", - "once for each {C:attention}Jolly{}", - "{C:attention}Joker{} sold this round", - "{C:inactive}(Currently{}{C:attention:} #1#{}{C:inactive} Retrigger(s)){}", - "{C:inactive,s:0.8}There wasn't enough room...{}", - }, - }, - j_cry_lucky_joker = { - name = "Lucky Joker", - text = { - "Earn {C:money}$#1#{} every time a", - "{C:attention}Lucky{} card {C:green}successfully{}", - "triggers", - }, - }, - j_cry_luigi = { - name = "Luigi", - text = { - "All Jokers give", - "{X:chips,C:white} X#1# {} Chips", - }, - }, - j_cry_m = { - name = "m", - text = { - "This Joker gains {X:mult,C:white} X#1# {} Mult", - "when {C:attention}Jolly Joker{} is sold", - "{C:inactive}(Currently {X:mult,C:white} X#2# {C:inactive} Mult)", - }, - }, - j_cry_M = { - name = "M", - text = { - "Create a {C:dark_edition}Negative{}", - "{C:attention}Jolly Joker{} when", - "{C:attention}Blind{} is selected", - }, - }, - j_cry_macabre = { - name = "Macabre Joker", - text = { - "When {C:attention}Blind{} is selected,", - "destroys each {C:attention}Joker{} except", - "{C:legendary}M Jokers{} and {C:attention}Jolly Jokers{}", - "and create 1 {C:attention}Jolly Joker{}", - "for each destroyed card", - }, - }, - j_cry_magnet = { - name = "Fridge Magnet", - text = { - "Earn {C:money}$#1#{} at end of round", - "This earns {X:money,C:white} X#2# {} if there are", - "{C:attention}#3#{} or fewer {C:attention}Joker{} cards", - }, - }, - j_cry_manic = { - name = "Manic Joker", - text = { - "{C:red}+#1#{} Mult if played", - "hand contains", - "a {C:attention}#2#" - } - }, - j_cry_mario = { - name = "Mario", - text = { - "Retrigger all Jokers", - "{C:attention}#1#{} additional time(s)", - }, - }, - j_cry_mask = { - name = "Mask", - text = { - "Retrigger all {C:attention}face{} cards", - "{C:attention}#1#{} additional time(s)", - "All non-{C:attention}face{} cards are debuffed", - }, - }, - j_cry_maximized = { - name = "Maximized", - text = { - "All {C:attention}face{} cards", - "are considered {C:attention}Kings{},", - "all {C:attention}numbered{} cards", - "are considered {C:attention}10s{}", - }, - }, - j_cry_maze = { - name = "Labyrinth", - text = { - "All hands are considered the", - "{C:attention}first hand{} of each round,", - "all discards are considered the", - "{C:attention}first discard{} of each round", - }, - }, - j_cry_Megg = { - name = "Megg", - text = { - "Sell this card to create", - "{C:attention}#2#{} Jolly #3#, increase", - "by {C:attention}#1#{} at end of round", - }, - }, - j_cry_mellowcreme = { - name = "Mellowcreme", - text = { - "Sell this card to {C:attention}multiply", - "the sell value of all", - "{C:attention}consumables{} by {C:attention}X#1#" - } - }, - j_cry_membershipcard = { - name = "Membership Card", - text = { - "{X:mult,C:white}X#1#{} Mult for each member", - "in the {C:attention}Cryptid Discord{}", - "{C:inactive}(Currently {X:mult,C:white}X#2#{C:inactive} Mult)", - "{C:blue,s:0.7}https://discord.gg/eUf9Ur6RyB{}", - }, - }, - j_cry_membershipcardtwo = { - name = "Old Membership Card", --Could probably have a diff Name imo - text = { - "{C:chips}+#1#{} Chips for each member", - "in the {C:attention}Cryptid Discord{}", - "{C:inactive}(Currently {C:chips}+#2#{C:inactive} Chips)", - "{C:blue,s:0.7}https://discord.gg/eUf9Ur6RyB{}", - }, - }, - j_cry_meteor = { - name = "Meteor Shower", - text = { - "{C:dark_edition}Foil{} cards each", - "give {C:chips}+#1#{} Chips", - }, - }, - j_cry_mneon = { - name = "Neon M", - text = { - "Earn {C:money}$#2#{} at end of round", - "Increase payout by", - "{C:money}$#1#{} for each {C:attention}Jolly Joker{}", - "or {C:legendary}M Joker{} at", - "end of round", - }, - }, - j_cry_mondrian = { - name = "Mondrian", - text = { - "This Joker gains {X:mult,C:white} X#1# {} Mult", - "if no {C:attention}discards{} were", - "used this round", - "{C:inactive}(Currently {X:mult,C:white} X#2# {C:inactive} Mult)", - }, - }, - j_cry_monkey_dagger = { - name = "Monkey Dagger", - text = { - "When {C:attention}Blind{} is selected,", - "destroy Joker to the left", - "and permanently add {C:attention}ten times{}", - "its sell value to this {C:chips}Chips{}", - "{C:inactive}(Currently {C:chips}+#1#{C:inactive} Chips)", - }, - }, - j_cry_monopoly_money = { - name = "Monopoly Money", - text = { - "{C:green}#1# in #2#{} chance to", - "{C:attention}destroy{} purchased items", - "Halves money when {C:attention}sold", - } - }, - j_cry_morse = { - name = "Morse Code", - text = { - "Earn {C:money}$#2#{} at end of round", - "Increase payout by {C:money}$#1#{} when", - "a card with an {C:attention}Edition{} is sold", - }, - }, - j_cry_mprime = { - name = "Tredecim", - text = { - "Create an {C:legendary}M Joker{} at end of round", - "Each {C:attention}Jolly Joker{} or {C:legendary}M Joker", - "gives {X:dark_edition,C:white}^#1#{} Mult", - "Increase amount by {X:dark_edition,C:white}^#2#{}", - "when a {C:attention}Jolly Joker{} is {C:attention}sold", - "{C:inactive,s:0.8}(Tredecim excluded)", - }, - }, - j_cry_mstack = { - name = "M Stack", - text = { - "Retrigger all cards played", - "once for every", - "{C:attention}#2#{} {C:inactive}[#3#]{} {C:attention}Jolly Jokers{} sold", - "{C:inactive}(Currently{}{C:attention:} #1#{}{C:inactive} retriggers){}", - }, - }, - j_cry_multjoker = { - name = "Mult Joker", - text = { - "{C:green}#1# in #2#{} chance for each", - "played {C:attention}Mult{} card to create", - "a {C:spectral}Cryptid{} card when scored", - "{C:inactive}(Must have room)", - }, - }, - j_cry_necromancer = { - name = "Necromancer", - text = { - "When a Joker is {C:attention}sold{} for more than {C:attention}$0{},", - "gain a {C:attention}random{} Joker {C:attention}sold{} this run", - "with {C:money}$0{} sell value", - }, - }, - j_cry_negative = { - name = "Negative Joker", - text = { - "{C:dark_edition}+#1#{C:attention} Joker{} slots", - }, - }, - j_cry_nice = { - name = "Nice", - text = { - "{C:chips}+#1#{} Chips if played hand", - "contains a {C:attention}6{} and a {C:attention}9", - "{C:inactive,s:0.8}Nice.{}", - }, - }, - j_cry_night = { - name = "Night", - text = { - "{X:dark_edition,C:white}^#1#{} Mult on final", - "hand of round", - "{E:2,C:red}self destructs{} on", - "final hand of round", - }, - }, - j_cry_nosound = { - name = "No Sound, No Memory", - text = { - "Retrigger each played {C:attention}7{}", - "{C:attention:}#1#{} additional time(s)", - }, - }, - j_cry_notebook = { - name = "Notebook", - text = { - "{C:green} #1# in #2#{} chance to gain {C:dark_edition}+1{} Joker", - "slot per {C:attention}reroll{} in the shop", - "{C:green}Always triggers{} if there are", - "{C:attention}#5#{} or more {C:attention}Jolly Jokers{}", - "{C:red}Works once per round{}", - "{C:inactive}(Currently {C:dark_edition}+#3#{}{C:inactive} and #4#){}", - }, - }, - j_cry_number_blocks = { - name = "Number Blocks", - text = { - "Earn {C:money}$#1#{} at end of round", - "Increase payout by {C:money}$#2#{}", - "for each {C:attention}#3#{} held in hand,", - "rank changes every round", - }, - }, - j_cry_nuts = { - name = "The Nuts", - text = { - "{X:mult,C:white} X#1# {} Mult if played", - "hand contains", - "a {C:attention}#2#", - }, - }, - j_cry_nutty = { - name = "Nutty Joker", - text = { - "{C:red}+#1#{} Mult if played", - "hand contains", - "a {C:attention}#2#" - } - }, - j_cry_oil_lamp = { - name = "Oil Lamp", - text = { - "Increase values of {C:attention}Joker{} to the right", - "by {C:attention}X#1#{} at end of round", - }, - }, - j_cry_oldblueprint = { - name = "Old Blueprint", - text = { - "Copies ability of", - "{C:attention}Joker{} to the right", - "{C:green}#1# in #2#{} chance this", - "card is destroyed", - "at end of round", - }, - }, - j_cry_oldcandy = { - name = "Nostalgic Candy", - text = { - "Sell this card to", - "permanently gain", - "{C:attention}+#1#{} hand size", - }, - }, - j_cry_oldinvisible = { - name = "Nostalgic Invisible Joker", - text = { - "{C:attention}Duplicate{} a random", - "{C:attention}Joker{} every {C:attention}4", - "Joker cards sold", - "{s:0.8}Nostalgic Invisible Joker Excluded{}", - "{C:inactive}(Currently #1#/4){}", - }, - }, - j_cry_panopticon = { - name = "Panopticon", - text = { - "All hands are considered the", - "{C:attention}last hand{} of each round", -- +$4 - }, - }, - j_cry_penetrating = { - name = "Penetrating Joker", - text = { - "{C:chips}+#1#{} Chips if played", - "hand contains", - "a {C:attention}#2#" - } - }, - j_cry_pickle = { - name = "Pickle", - text = { - "When {C:attention}Blind{} is skipped, create", - "{C:attention}#1#{} Tags, reduced by", - "{C:red}#2#{} when {C:attention}Blind{} is selected", - }, - }, - j_cry_pirate_dagger = { - name = "Pirate Dagger", - text = { - "When {C:attention}Blind{} is selected,", - "destroy Joker to the right", - "and gain {C:attention}one-fourth{} of", - "its sell value as {X:chips,C:white} XChips {}", - "{C:inactive}(Currently {X:chips,C:white} X#1# {C:inactive} Chips)", - }, - }, - j_cry_pot_of_jokes = { - name = "Pot of Jokes", - text = { - "{C:attention}#1#{} hand size,", - "increases by", - "{C:blue}#2#{} every round", - }, - }, - j_cry_primus = { - name = "Primus", - text = { - "This Joker gains {X:dark_edition,C:white} ^#1# {} Mult", - "if all cards in played hand are", - "{C:attention}Aces{}, {C:attention}2s{}, {C:attention}3s{}, {C:attention}5s{}, or {C:attention}7s{}", - "{C:inactive}(Currently {X:dark_edition,C:white} ^#2# {C:inactive} Mult)", - }, - }, - j_cry_python = { - name = "Python", - text = { - "This Joker gains", - "{X:mult,C:white} X#1# {} Mult when a", - "{C:cry_code}Code{} card is used", - "{C:inactive}(Currently {X:mult,C:white} X#2# {C:inactive} Mult)", - }, - }, - j_cry_queens_gambit = { - name = "Queen's Gambit", - text = { - "If {C:attention}poker hand{} is a", - "{C:attention}Royal Flush{}, destroy scored", - "{C:attention}Queen{} and create a", - "{C:dark_edition}Negative {}{C:red}Rare{}{C:attention} Joker{}", - }, - }, - j_cry_quintet = { - name = "The Quintet", - text = { - "{X:mult,C:white} X#1# {} Mult if played", - "hand contains", - "a {C:attention}#2#", - }, - }, - j_cry_redbloon = { - name = "Red Bloon", - text = { - "Earn {C:money}$#1#{} in {C:attention}#2#{} round(s)", - "{C:red,E:2}self destructs{}", - }, - }, - j_cry_redeo = { - name = "Redeo", - text = { - "{C:attention}-#1#{} Ante when", - "{C:money}$#2#{} {C:inactive}($#3#){} spent", - "{s:0.8}Requirements increase", - "{C:attention,s:0.8}exponentially{s:0.8} per use", - "{C:money,s:0.8}Next increase: {s:1,c:money}$#4#", - }, - }, - j_cry_rescribere = { - name = 'Rescribere', - text = { - "When a {C:attention}Joker{} is sold,", - "add its effects to", - "every other Joker", - "{C:inactive,s:0.8}Does not affect other Rescribere{}" - } - }, - j_cry_reverse = { - name = "Reverse Card", - text = { - "Fill all empty Joker slots {C:inactive}(Max 100){}", - "with {C:dark_edition}Holographic{} {C:attention}Jolly Jokers{} if", - "{C:attention}discarded poker hand{} is a {C:attention}#1#{}", - "{C:red,E:2}self destructs{}", - "{C:inactive,s:0.8}The ULTIMATE comeback{}", - }, - }, - j_cry_rnjoker = { - name = "RNJoker", - text = { - "Randomize abilities each {C:attention}Ante{}", - }, - }, - j_cry_sacrifice = { - name = "Sacrifice", - text = { - "Create an {C:green}Uncommon{} Joker", - "and 3 {C:attention}Jolly Jokers{} when", - "a {C:spectral}Spectral{} card is used", - "{C:red}Works once per round{}", - "{C:inactive}#1#{}", - }, - }, - j_cry_sapling = { - name = "Sapling", - text = { - "After scoring {C:attention}#2#{} {C:inactive}[#1#]{} Enhanced", - "cards, sell this card to", - "create an {C:cry_epic}Epic{} {C:attention}Joker{}", - "{C:inactive,s:0.8}Will create a {C:red,s:0.8}Rare{} {C:attention,s:0.8}Joker{}", - "{C:inactive,s:0.8}if {C:cry_epic,s:0.8}Epic{} {C:inactive,s:0.8}Jokers are disabled{}", - }, - }, - j_cry_savvy = { - name = "Savvy Joker", - text = { - "{C:chips}+#1#{} Chips if played", - "hand contains", - "a {C:attention}#2#" - } - }, - j_cry_Scalae = { - name = "Scalae", - text = { - "Scaling {C:attention}Jokers{} scale", - "as a degree-{C:attention}#1#{} polynomial", - "raise degree by {C:attention}#2#{}", - "at end of round", - "{C:inactive,s:0.8}({C:attention,s:0.8}Scalae{C:inactive,s:0.8} excluded)", - }, - }, - j_cry_scrabble = { - name = "Scrabble Tile", - text = { - "{C:green}#1# in #2#{} chance to create", - "a {C:dark_edition}Jolly {C:green}Uncommon{} Joker", - "when hand is played", - }, - }, - j_cry_seal_the_deal = { - name = "Seal the Deal", - text = { - "Add a {C:attention}random seal{} to each card", - "scored on {C:attention}final hand{} of round", - }, - }, - j_cry_shrewd = { - name = "Shrewd Joker", - text = { - "{C:chips}+#1#{} Chips if played", - "hand contains", - "a {C:attention}#2#" - } - }, - j_cry_silly = { - name = "Silly Joker", - text = { - "{C:red}+#1#{} Mult if played", - "hand contains", - "a {C:attention}#2#" - } - }, - j_cry_smallestm = { - name = "Tiny", - text = { - "Create a {C:cry_jolly}Double M", - "tag if {C:attention}poker hand{}", - "is a {C:attention}#1#{}", - "{C:inactive,s:0.8}ok so basically i'm very smol", - }, - }, - j_cry_soccer = { - name = "One for All", --changed the name from latin because this isn't exotic - text = { - "{C:attention}+#1#{} Joker slot", - "{C:attention}+#1#{} Booster Pack slot", - "{C:attention}+#1#{} hand size", - "{C:attention}+#1#{} consumable slot", - "{C:attention}+#1#{} card in shop", - }, - }, - j_cry_spaceglobe = { - name = "Celestial Globe", - text = { - "This Joker gains {X:chips,C:white}X#2#{} Chips", - "if {C:attention}poker hand{} is a {C:attention}#3#{},", - "Hand changes after increase{}", - "{C:inactive}(Currently{} {X:chips,C:white}X#1#{} {C:inactive}Chips){}", - }, - }, - j_cry_speculo = { - name = "Speculo", - text = { - "Creates a {C:dark_edition}Negative{} copy", - "of a random {C:attention}Joker{}", - "at the end of the {C:attention}shop", - "{C:inactive,s:0.8}Does not copy other Speculo{}", - }, - }, - j_cry_spy = { - name = "Spy", - text = { - "{X:mult,C:white} X#2# {} Mult, {C:dark_edition}+1{C:attention} Joker{} slot", - "{C:inactive}That #1# is a spy!", - }, - }, - j_cry_stardust = { - name = "Stardust", - text = { - "{C:dark_edition}Polychrome{} cards", - "each give {X:mult,C:white}X#1#{} Mult", - }, - }, - j_cry_stella_mortis = { - name = "Stella Mortis", - text = { - "This Joker destroys a", - "random {C:planet}Planet{} card", - "and gains {X:dark_edition,C:white} ^#1# {} Mult", - "at the end of the {C:attention}shop{}", - "{C:inactive}(Currently {X:dark_edition,C:white} ^#2# {C:inactive} Mult)", - }, - }, - j_cry_stronghold = { - name = "The Stronghold", - text = { - "{X:mult,C:white} X#1# {} Mult if played", - "hand contains", - "a {C:attention}#2#", - }, - }, - j_cry_subtle = { - name = "Subtle Joker", - text = { - "{C:chips}+#1#{} Chips if played", - "hand contains", - "a {C:attention}#2#" - } - }, - j_cry_supercell = { - name = "Supercell", - text = { - "{C:chips}+#1#{} Chips, {C:mult}+#1#{} Mult,", - "{X:chips,C:white}X#2#{} Chips, {X:mult,C:white}X#2#{} Mult", - "Earn {C:money}$#3#{} at", - "end of round", - }, - }, - j_cry_sus = { - name = "SUS", - text = { - "At end of round, create", - "a {C:attention}copy{} of a random", - "card {C:attention}held in hand{},", - "destroy all others", - "{C:attention,s:0.8}Kings{s:0.8} of {C:hearts,s:0.8}Hearts{s:0.8} are prioritized", - }, - }, - j_cry_swarm = { - name = "The Swarm", - text = { - "{X:mult,C:white} X#1# {} Mult if played", - "hand contains", - "a {C:attention}#2#", - }, - }, - j_cry_sync_catalyst = { - name = "Sync Catalyst", - text = { - "Balances {C:chips}Chips{} and {C:mult}Mult{}", - "{C:inactive,s:0.8}Hey! I've seen this one before!", - }, - }, - j_cry_tax_fraud = { - name = "Tax Fraud", - text = { - "Gain {C:attention}$#1#{} per {C:attention}Rental Joker", - "at end of round", - }, - }, - j_cry_tenebris = { - name = "Tenebris", - text = { - "{C:dark_edition}+#1#{C:attention} Joker{} slots", - "Earn {C:money}$#2#{} at end of round", - }, - }, - j_cry_translucent = { - name = "Translucent Joker", - text = { - "Sell this card to create", - "a {C:attention}Banana Perishable{} copy", - "of a random {C:attention}Joker{}", - "{s:0.8,C:inactive}(Copy bypasses perish compat)", - }, - }, - j_cry_treacherous = { - name = "Treacherous Joker", - text = { - "{C:chips}+#1#{} Chips if played", - "hand contains", - "an {C:attention}#2#" - } - }, - j_cry_trick_or_treat = { - name = "Trick-or-Treat", - text = { - "When {C:attention}sold{}:", - "{C:green}#1# in #2#{} chance to create {C:attention}2{} {C:cry_candy}Candies", - "Otherwise, create a {X:cry_cursed,C:white}Cursed{} Joker", - "{C:inactive}(Can overflow)" - } - }, - j_cry_tricksy = { - name = "Tricksy Joker", - text = { - "{C:chips}+#1#{} Chips if played", - "hand contains", - "a {C:attention}#2#" - } - }, - j_cry_triplet_rhythm = { - name = "Triplet Rhythm", - text = { - "{X:mult,C:white} X#1# {} Mult if scoring hand", - "contains {C:attention}exactly{} three {C:attention}3s", - }, - }, - j_cry_tropical_smoothie = { - name = "Tropical Smoothie", - text = { - "Sell this card", - "to {C:attention}multiply{} values", - "of owned jokers by {C:attention}X1.5{}", - }, - }, - j_cry_unity = { - name = "The Unity", - text = { - "{X:mult,C:white} X#1# {} Mult if played", - "hand contains", - "a {C:attention}#2#", - }, - }, - j_cry_universe = { - name = "Universe", - text = { - "{C:dark_edition}Astral{} cards", - "each give {X:dark_edition,C:white}^#1#{} Mult", - }, - }, - j_cry_universum = { - name = "Universum", - text = { - "{C:attention}Poker hands{} gain", - "{X:red,C:white} X#1# {} Mult and {X:blue,C:white} X#1# {} Chips", - "when leveled up", - }, - }, - j_cry_unjust_dagger = { - name = "Unjust Dagger", - text = { - "When {C:attention}Blind{} is selected,", - "destroy Joker to the left", - "and gain {C:attention}one-fifth{} of", - "its sell value as {X:mult,C:white} XMult {}", - "{C:inactive}(Currently {X:mult,C:white} X#1# {C:inactive} Mult)", - }, - }, - j_cry_verisimile = { - name = "Non Verisimile", - text = { - "When any probability", - "is {C:green}successfully{} triggered,", - "this Joker gains {X:red,C:white}XMult{}", - "equal to its listed {C:attention}odds", - "{C:inactive}(Currently {X:mult,C:white} X#1# {C:inactive} Mult)", - }, - }, - j_cry_virgo = { - name = "Virgo", - text = { - "This Joker gains {C:money}$#1#{} of {C:attention}sell value{}", - "if {C:attention}poker hand{} contains a {C:attention}#2#{}", - "Sell this card to create a", - "{C:dark_edition}Polychrome{} {C:attention}Jolly Joker{} for", - "every {C:money}$4{} of {C:attention}sell value{} {C:inactive}(Min 1){}", - }, - }, - j_cry_wacky = { - name = "Wacky Joker", - text = { - "{C:red}+#1#{} Mult if played", - "hand contains", - "a {C:attention}#2#" - } - }, - j_cry_waluigi = { - name = "Waluigi", - text = { - "All Jokers give", - "{X:mult,C:white} X#1# {} Mult", - }, - }, - j_cry_wario = { - name = "Wario", - text = { - "All Jokers give", - "{C:money}$#1#{} when triggered", - }, - }, - j_cry_wee_fib = { - name = "Weebonacci", - text = { - "This Joker gains", - "{C:mult}+#2#{} Mult when each played", - "{C:attention}Ace{}, {C:attention}2{}, {C:attention}3{}, {C:attention}5{}, or {C:attention}8{}", - "is scored", - "{C:inactive}(Currently {C:mult}+#1#{C:inactive} Mult)", - }, - }, - j_cry_weegaming = { - name = "2D", - text = { - "Retrigger each played {C:attention}2{}", --wee gaming - "{C:attention:}#1#{} additional time(s)", --wee gaming? - "{C:inactive,s:0.8}Wee Gaming?{}", - }, - }, - j_cry_wheelhope = { - name = "Wheel of Hope", - text = { - "This Joker gains", - "{X:mult,C:white} X#1# {} Mult when failing", - "a {C:attention}Wheel of Fortune{}", - "{C:inactive}(Currently {X:mult,C:white} X#2# {C:inactive} Mult)", - }, - }, - j_cry_whip = { - name = "The WHIP", - text = { - "This Joker gains {X:mult,C:white} X#1# {} Mult", - "if {C:attention}played hand{} contains a", - "{C:attention}2{} and {C:attention}7{} of different suits", - "{C:inactive}(Currently {X:mult,C:white} X#2# {C:inactive} Mult)", - }, - }, - j_cry_wrapped = { - name = "Wrapped Candy", - text = { - "Create a random {C:attention}Food Joker{}", - "in {C:attention}#1#{} round(s)", - "{C:red,E:2}self destructs{}", - }, - }, - j_cry_wtf = { - name = "The Fuck!?", - text = { - "{X:mult,C:white} X#1# {} Mult if played", - "hand contains", - "a {C:attention}#2#", - }, - }, - }, - Planet = { - c_cry_Klubi = { - name = "Klubi", - text = { - "({V:1}lvl.#4#{})({V:2}lvl.#5#{})({V:3}lvl.#6#{})", - "Level up", - "{C:attention}#1#{},", - "{C:attention}#2#{},", - "and {C:attention}#3#{}", - }, - }, - c_cry_Lapio = { - name = "Lapio", - text = { - "({V:1}lvl.#4#{})({V:2}lvl.#5#{})({V:3}lvl.#6#{})", - "Level up", - "{C:attention}#1#{},", - "{C:attention}#2#{},", - "and {C:attention}#3#{}", - }, - }, - c_cry_Kaikki = { - name = "Kaikki", - text = { - "({V:1}lvl.#4#{})({V:2}lvl.#5#{})({V:3}lvl.#6#{})", - "Level up", - "{C:attention}#1#{},", - "{C:attention}#2#{},", - "and {C:attention}#3#{}", - }, - }, - c_cry_nstar = { - name = "Neutron Star", - text = { - "Upgrade a random", - "poker hand by", - "{C:attention}1{} level for each", - "{C:attention}Neutron Star{} used", - "in this run", - "{C:inactive}(Currently{C:attention} #1#{C:inactive}){}", - }, - }, - c_cry_planetlua = { - name = "Planet.lua", - text = { - "{C:green}#1# in #2#{} chance to", - "upgrade every", - "{C:legendary,E:1}poker hand{}", - "by {C:attention}1{} level", - }, - }, - c_cry_Sydan = { - name = "Sydan", - text = { - "({V:1}lvl.#4#{})({V:2}lvl.#5#{})({V:3}lvl.#6#{})", - "Level up", - "{C:attention}#1#{},", - "{C:attention}#2#{},", - "and {C:attention}#3#{}", - }, - }, - c_cry_Timantti = { - name = "Timantti", - text = { - "({V:1}lvl.#4#{})({V:2}lvl.#5#{})({V:3}lvl.#6#{})", - "Level up", - "{C:attention}#1#{},", - "{C:attention}#2#{},", - "and {C:attention}#3#{}", - }, - }, - c_cry_marsmoons = { - name = 'Phobos & Deimos', - text = { - "{S:0.8}({S:0.8,V:1}lvl.#1#{S:0.8}){} Level up", - "{C:attention}#2#", - "{C:mult}+#3#{} Mult and", - "{C:chips}+#4#{} chips" - } - }, - c_cry_void = { - name = 'Void', - text = { - "{S:0.8}({S:0.8,V:1}lvl.#1#{S:0.8}){} Level up", - "{C:attention}#2#", - "{C:mult}+#3#{} Mult and", - "{C:chips}+#4#{} chips" - } - }, - c_cry_asteroidbelt = { - name = 'Asteroid Belt', - text = { - "{S:0.8}({S:0.8,V:1}lvl.#1#{S:0.8}){} Level up", - "{C:attention}#2#", - "{C:mult}+#3#{} Mult and", - "{C:chips}+#4#{} chips" - } - }, - c_cry_universe = { - name = 'The Universe In Its Fucking Entirety', - text = { - "{S:0.8}({S:0.8,V:1}lvl.#1#{S:0.8}){} Level up", - "{C:attention}#2#", - "{C:mult}+#3#{} Mult and", - "{C:chips}+#4#{} chips" - } - }, - }, - Sleeve = { - sleeve_cry_ccd_sleeve = { - name = "CCD Sleeve", - text = { - "Every card is also", - "a {C:attention}random{} consumable", - }, - }, - sleeve_cry_conveyor_sleeve = { - name = "Conveyor Sleeve", - text = { - "Jokers may {C:attention}not{} be moved", - "At start of round,", - "{C:attention}duplicate{} rightmost Joker", - "and {C:attention}destroy{} leftmost Joker", - }, - }, - sleeve_cry_critical_sleeve = { - name = "Critical Sleeve", - text = { - "After each hand played,", - "{C:green}1 in 4{} chance for {X:dark_edition,C:white} ^2 {} Mult", - "{C:green}1 in 8{} chance for {X:dark_edition,C:white} ^0.5 {} Mult", - }, - }, - sleeve_cry_encoded_sleeve = { - name = "Encoded Sleeve", - text = { - "Start with a {C:cry_code,T:j_cry_CodeJoker}Code Joker{}", - "and a {C:cry_code,T:j_cry_copypaste}Copy/Paste{}", - "Only {C:cry_code}Code Cards{} appear in shop", - }, - }, - sleeve_cry_equilibrium_sleeve = { - name = "Balanced Sleeve", - text = { - "All cards have the", - "{C:attention}same chance{} of", - "appearing in shops,", - "start run with", - "{C:attention,T:v_overstock_plus}+2 Shop Slots", - }, - }, - sleeve_cry_infinite_sleeve = { - name = "Unlimited Sleeve", - text = { - "You can select {C:attention}any", - "number of cards", - --someone do the hand size thing for me - }, - }, - sleeve_cry_misprint_sleeve = { - name = "Misprinted Sleeve", - text = { - "Values of cards", - "are {C:attention}randomized", - }, - }, - sleeve_cry_redeemed_sleeve = { - name = "Redeemed Sleeve", - text = { - "When a {C:attention}Voucher{} is purchased,", - "gain its {C:attention}extra tiers", - }, - }, - sleeve_cry_wormhole_sleeve = { - name = "Wormhole Sleeve", - text = { - "Start with an {C:cry_exotic}Exotic{C:attention} Joker", - "Jokers are {C:attention}20X{} more", - "likely to be {C:dark_edition}Negative", - "{C:attention}-2{} Joker slots", - }, - }, - sleeve_cry_legendary_sleeve = { - name = "Legendary Sleeve", - text = { - "Start with an {C:legendary}Legendary{C:legendary} Joker", - "{C:green}1 in 5{} chance to create another", - "when Boss Blind is defeated {C:inactive}(must have room){}", - }, - }, - }, - Spectral = { - c_cry_adversary = { - name = "Adversary", - text = { - "{C:red}All{} of your {C:attention}Jokers{} become {C:dark_edition}Negative{},", - "{C:red}all{} {C:attention}Jokers{} in the shop cost", - "{C:red}double{} for the rest of the run", - }, - }, - c_cry_analog = { - name = "Analog", - text = { - "Create {C:attention}#1#{} copies of a", - "random {C:attention}Joker{}, destroy", - "all other Jokers, {C:attention}+#2#{} Ante", - }, - }, - c_cry_chambered = { - name = "Chambered", - text = { - "Create {C:attention}#1#{} {C:dark_edition}Negative{}", - "copies of a", - "{C:attention}random{} consumable", - "{C:inactive,s:0.8}Does not copy Chambered{}" - }, - }, - c_cry_conduit = { - name = "Conduit", - text = { - "Swap the {C:attention}editions{} of", - "{C:attention}2{} selected cards or {C:attention}Jokers{}", - }, - }, - c_cry_gateway = { - name = "Gateway", - text = { - "Create a random", - "{C:cry_exotic,E:1}Exotic{C:attention} Joker{}, destroy", - "all other Jokers", - }, - }, - c_cry_hammerspace = { - name = "Hammerspace", - text = { - "Apply random {C:attention}consumables{}", - "as if they were {C:dark_edition}Enhancements{}", - "to cards held in hand", - }, - }, - c_cry_lock = { - name = "Lock", - text = { - "Remove {C:red}all{} stickers", - "from {C:red}all{} Jokers,", - "then apply {C:purple,E:1}Eternal{}", - "to a random {C:attention}Joker{}", - }, - }, - c_cry_pointer = { - name = "POINTER://", - text = { - "Create a card", - "of {C:cry_code}your choice", - "{C:inactive,s:0.8}(Exotic Jokers #1#excluded)", - }, - }, - c_cry_replica = { - name = "Replica", - text = { - "Convert all cards", - "held in hand", - "to a {C:attention}random{}", - "card held in hand", - }, - }, - c_cry_ritual = { - name = "Ritual", - text = { - "Apply {C:dark_edition}Negative{}, {C:dark_edition}Mosaic{},", - "or {C:dark_edition}Astral{} to {C:attention}#1#{}", - "selected card in hand", - }, - }, - c_cry_source = { - name = "Source", - text = { - "Add a {C:cry_code}Green Seal{}", - "to {C:attention}#1#{} selected", - "card in your hand", - }, - }, - c_cry_summoning = { - name = "Summoning", - text = { - "Create a random", - "{C:cry_epic}Epic{} {C:joker}Joker{}, destroy", - "one random {C:joker}Joker{}", - }, - }, - c_cry_trade = { - name = "Trade", - text = { - "{C:attention}Lose{} a random Voucher,", - "gain {C:attention}2{} random Vouchers", - }, - }, - c_cry_typhoon = { - name = "Typhoon", - text = { - "Add an {C:cry_azure}Azure Seal{}", - "to {C:attention}#1#{} selected", - "card in your hand", - }, - }, - c_cry_vacuum = { - name = "Vacuum", - text = { - "Removes {C:red}all {C:green}modifications{}", - "from {C:red}all{} cards held in hand,", - "Earn {C:money}$#1#{} per {C:green}modification{} removed", - "{C:inactive,s:0.7}(ex. Enhancements, Seals, Editions)", - }, - }, - c_cry_white_hole = { - name = "White Hole", - text = { - "{C:attention}Remove{} all hand levels,", - "upgrade {C:legendary,E:1}most played{} poker hand", - "by {C:attention}3{} for each removed level", - }, - }, - }, - Stake = { - stake_cry_pink = { - name = "Pink Stake", - colour = "Pink", --this is used for auto-generated sticker localization - text = { - "Required score scales", - "faster for each {C:attention}Ante", - }, - }, - stake_cry_brown = { - name = "Brown Stake", - colour = "Brown", - text = { - "All {C:attention}stickers{} are compatible", - "with each other", - }, - }, - stake_cry_yellow = { - name = "Yellow Stake", - colour = "Yellow", - text = { - "{C:attention}Stickers{} can appear on", - "all purchasable items", - }, - }, - stake_cry_jade = { - name = "Jade Stake", - colour = "Jade", - text = { - "Cards can be drawn {C:attention}face down{}", - }, - }, - stake_cry_cyan = { - name = "Cyan Stake", - colour = "Cyan", - text = { - "{C:green}Uncommon{} and {C:red}Rare{} Jokers are", - "less likely to appear", - }, - }, - stake_cry_gray = { - name = "Gray Stake", - colour = "Gray", - text = { - "Rerolls increase by {C:attention}$2{} each", - }, - }, - stake_cry_crimson = { - name = "Crimson Stake", - colour = "Crimson", - text = { - "Vouchers restock on {C:attention}even{} Antes", - }, - }, - stake_cry_diamond = { - name = "Diamond Stake", - colour = "Diamond", - text = { - "Must beat Ante {C:attention}10{} to win", - }, - }, - stake_cry_amber = { - name = "Amber Stake", - colour = "Amber", - text = { - "{C:attention}-1{} Booster Pack slot", - }, - }, - stake_cry_bronze = { - name = "Bronze Stake", - colour = "Bronze", - text = { - "Vouchers are {C:attention}50%{} more expensive", - }, - }, - stake_cry_quartz = { - name = "Quartz Stake", - colour = "Quartz", - text = { - "Jokers can be {C:attention}Pinned{}", - "{s:0.8,C:inactive}(Stays pinned to the leftmost position){}", - }, - }, - stake_cry_ruby = { - name = "Ruby Stake", - colour = "Ruby", - text = { - "{C:attention}Big{} Blinds can become", - "{C:attention}Boss{} Blinds", - }, - }, - stake_cry_glass = { - name = "Glass Stake", - colour = "Glass", - text = { - "Cards can {C:attention}shatter{} when scored", - }, - }, - stake_cry_sapphire = { - name = "Sapphire Stake", - colour = "Sapphire", - text = { - "Lose {C:attention}25%{} of current money", - "at end of Ante", - "{s:0.8,C:inactive}(Up to $10){}", - }, - }, - stake_cry_emerald = { - name = "Emerald Stake", - colour = "Emerald", - text = { - "Cards, packs, and vouchers", - "can be {C:attention}face down{}", - "{s:0.8,C:inactive}(Unable to be viewed until purchased){}", - }, - }, - stake_cry_platinum = { - name = "Platinum Stake", - colour = "Platinum", - text = { - "Small Blinds are {C:attention}removed{}", - }, - }, - stake_cry_twilight = { - name = "Twilight Stake", - colour = "Twilight", - text = { - "Cards can be {C:attention}Banana{}", - "{s:0.8,C:inactive}(1 in 10 chance of being destroyed each round){}", - }, - }, - stake_cry_verdant = { - name = "Verdant Stake", - colour = "Verdant", - text = { - "Required score scales", - "faster for each {C:attention}Ante", - }, - }, - stake_cry_ember = { - name = "Ember Stake", - colour = "Ember", - text = { - "All items give no money when sold", - }, - }, - stake_cry_dawn = { - name = "Dawn Stake", - colour = "Dawn", - text = { - "Tarots and Spectrals target {C:attention}1", - "fewer card", - "{s:0.8,C:inactive}(Minimum of 1){}", - }, - }, - stake_cry_horizon = { - name = "Horizon Stake", - colour = "Horizon", - text = { - "When blind selected, add a", - "{C:attention}random card{} to deck", - }, - }, - stake_cry_blossom = { - name = "Blossom Stake", - colour = "Blossom", - text = { - "{C:attention}Final{} Boss Blinds can appear", - "in {C:attention}any{} Ante", - }, - }, - stake_cry_azure = { - name = "Azure Stake", - colour = "Azure", - text = { - "Values on Jokers are reduced", - "by {C:attention}20%{}", - }, - }, - stake_cry_ascendant = { - name = "Ascendant Stake", - colour = "Ascendant", - text = { - "{C:attention}-1{} Shop slot", - }, - }, - }, - Tag = { - tag_cry_astral = { - name = "Astral Tag", - text = { - "Next base edition shop", - "Joker is free and", - "becomes {C:dark_edition}Astral{}", - }, - }, - tag_cry_banana = { - name = "Banana Tag", - text = { - "Creates {C:attention}#1#", - "{C:inactive}(Must have room){}", - }, - }, - tag_cry_bettertop_up = { - name = "Better Top-up Tag", - text = { - "Creates up to {C:attention}#1#", - "{C:green}Uncommon{} Jokers", - "{C:inactive}(Must have room){}", - }, - }, - tag_cry_better_voucher = { - name = "Golden Voucher Tag", - text = { - "Adds one Tier {C:attention}#1#{} Voucher", - "to the next shop", - }, - }, - tag_cry_blur = { - name = "Blurred Tag", - text = { - "Next base edition shop", - "Joker is free and", - "becomes {C:dark_edition}Blurred{}", - }, - }, - tag_cry_booster = { - name = "Booster Tag", - text = { - "Next {C:cry_code}Booster Pack{} has", - "{C:attention}double{} cards and", - "{C:attention}double{} choices", - }, - }, - tag_cry_bundle = { - name = "Bundle Tag", - text = { - "Create a {C:attention}Standard Tag{}, {C:tarot}Charm Tag{},", - "{C:attention}Buffoon Tag{}, and {C:planet}Meteor Tag", - }, - }, - tag_cry_cat = { - name = "Cat Tag", - text = { "Meow.", "{C:inactive}Level {C:dark_edition}#1#" }, - }, - tag_cry_console = { - name = "Console Tag", - text = { - "Gives a free", - "{C:cry_code}Program Pack", - }, - }, - tag_cry_double_m = { - name = "Double M Tag", - text = { - "Shop has a", - "{C:dark_edition}Jolly {C:legendary}M Joker{}", - }, - }, - tag_cry_empowered = { - name = "Empowered Tag", - text = { - "Gives a free {C:spectral}Spectral Pack", - "with {C:legendary,E:1}The Soul{} and {C:cry_exotic,E:1}Gateway{}", - }, - }, - tag_cry_epic = { - name = "Epic Tag", - text = { - "Shop has a half-price", - "{C:cry_epic}Epic Joker", - }, - }, - tag_cry_gambler = { - name = "Gambler's Tag", - text = { - "{C:green}#1# in #2#{} chance to create", - "an {C:cry_exotic,E:1}Empowered Tag", - }, - }, - tag_cry_glass = { - name = "Fragile Tag", - text = { - "Next base edition shop", - "Joker is free and", - "becomes {C:dark_edition}Fragile{}", - }, - }, - tag_cry_glitched = { - name = "Glitched Tag", - text = { - "Next base edition shop", - "Joker is free and", - "becomes {C:dark_edition}Glitched{}", - }, - }, - tag_cry_gold = { - name = "Golden Tag", - text = { - "Next base edition shop", - "Joker is free and", - "becomes {C:dark_edition}Golden{}", - }, - }, - tag_cry_gourmand = { - name = "Gourmand Tag", - text = { - "Shop has a free", - "{C:attention}Food Joker", - }, - }, - tag_cry_loss = { - name = "Loss", - text = { - "Gives a free", - "{C:cry_ascendant}Meme Pack", - }, - }, - tag_cry_m = { - name = "Jolly Tag", - text = { - "Next base edition shop", - "Joker is free and", - "becomes {C:dark_edition}Jolly{}", - }, - }, - tag_cry_memory = { - name = "Memory Tag", - text = { - "Create {C:attention}#1#{} copies of", - "the last {C:attention}Tag{} used", - "during this run", - "{s:0.8,C:inactive}Copying Tags excluded", - "{s:0.8,C:inactive}Currently: {s:0.8,C:attention}#2#", - }, - }, - tag_cry_mosaic = { - name = "Mosaic Tag", - text = { - "Next base edition shop", - "Joker is free and", - "becomes {C:dark_edition}Mosaic{}", - }, - }, - tag_cry_oversat = { - name = "Oversaturated Tag", - text = { - "Next base edition shop", - "Joker is free and", - "becomes {C:dark_edition}Oversaturated{}", - }, - }, - tag_cry_quadruple = { - name = "Quadruple Tag", - text = { - "Gives {C:attention}#1#{} copies of the", - "next selected {C:attention}Tag", - "{s:0.8,C:inactive}Copying Tags excluded", - }, - }, - tag_cry_quintuple = { - name = "Quintuple Tag", - text = { - "Gives {C:attention}#1#{} copies of the", - "next selected {C:attention}Tag", - "{s:0.8,C:inactive}Copying Tags excluded", - }, - }, - tag_cry_rework = { - name = "Rework Tag", - text = { - "Shop has a(n)", - "{C:dark_edition}#1# {C:cry_code}#2#", - }, - }, - tag_cry_schematic = { - name = "Schematic Tag", - text = { - "Shop has a", - "{C:attention}Brainstorm", - }, - }, - tag_cry_scope = { - name = "Scope Tag", - text = { - "{C:attention}+#1# {C:blue}hands{} and", - "{C:red}discards{} next round", - }, - }, - tag_cry_triple = { - name = "Triple Tag", - text = { - "Gives {C:attention}#1#{} copies of the", - "next selected {C:attention}Tag", - "{s:0.8,C:inactive}Copying Tags excluded", - }, - }, - }, - Tarot = { - c_cry_automaton = { - name = "The Automaton", - text = { - "Creates up to {C:attention}#1#", - "random {C:cry_code}Code{} card", - "{C:inactive}(Must have room)", - }, - }, - c_cry_eclipse = { - name = "The Eclipse", - text = { - "Enhances {C:attention}#1#{} selected card", - "into an {C:attention}Echo Card", - }, - }, - c_cry_meld = { - name = "Meld", - text = { - "Select a {C:attention}Joker{} or", - "{C:attention}playing card{} to", - "become {C:dark_edition}Double-Sided", - }, - }, - c_cry_theblessing = { - name = "The Blessing", - text = { - "Creates {C:attention}1{}", - "random {C:attention}consumable{}", - "{C:inactive}(Must have room){}", - }, - }, - }, - Voucher = { - v_cry_asteroglyph = { - name = "Asteroglyph", - text = { - "Set Ante to {C:attention}#1#{}", - }, - }, - v_cry_blankcanvas = { - name = "Blank Canvas", - text = { - "{C:attention}+#1#{} hand size", - }, - }, - v_cry_clone_machine = { - name = "Clone Machine", - text = { - "Double Tags become", - "{C:attention}Quintuple Tags{} and", - "are {C:attention}4X{} as common", - }, - }, - v_cry_command_prompt = { - name = "Command Prompt", - text = { - "{C:cry_code}Code{} cards", - "can appear", - "in the {C:attention}shop{}", - }, - }, - v_cry_copies = { - name = "Copies", - text = { - "Double Tags become", - "{C:attention}Triple Tags{} and are", - "{C:attention}2X{} as common", - }, - }, - v_cry_curate = { - name = "Curate", - text = { - "All cards", - "appear with", - "an {C:dark_edition}Edition{}", - }, - }, - v_cry_dexterity = { - name = "Dexterity", - text = { - "Permanently", - "gain {C:blue}+#1#{} hand(s)", - "each round", - }, - }, - v_cry_double_down = { - name = "Double Down", - text = { - "After every round,", - "{X:dark_edition,C:white} X1.5 {} to all values", - "on the back of", - "{C:dark_edition}Double-Sided{} cards" - }, - }, - v_cry_double_slit = { - name = "Double Slit", - text = { - "{C:attention}Meld{} can appear", - "in the shop and", - "Arcana Packs", - }, - }, - v_cry_double_vision = { - name = "Double Vision", - text = { - "{C:dark_edition}Double-Sided{} cards appear", - "{C:attention}4X{} more frequently", - }, - }, - v_cry_fabric = { - name = "Universal Fabric", - text = { - "{C:dark_edition}+#1#{} Joker slot(s)", - }, - }, - v_cry_massproduct = { - name = "Mass Production", - text = { - "All cards and packs", - "in shop cost {C:attention}$1{}", - }, - }, - v_cry_moneybean = { - name = "Money Beanstalk", - text = { - "Raise the cap on", - "interest earned in", - "each round to {C:money}$#1#{}", - }, - }, - v_cry_overstock_multi = { - name = "Multistock", - text = { - "{C:attention}+#1#{} card slot(s) and", - "{C:attention}+#1#{} booster pack slot(s)", - "available in shop", - }, - }, - v_cry_pacclimator = { - name = "Planet Acclimator", - text = { - "{C:planet}Planet{} cards appear", - "{C:attention}X#1#{} more frequently", - "in the shop", - "All future {C:planet}Planet{}", - "cards are {C:green}free{}", - }, - }, - v_cry_pairamount_plus = { - name = "Pairamount Plus", - text = { - "{C:attention}Retrigger{} all M Jokers", - "once for every Pair", - "{C:attention}contained{} in played hand", - }, - }, - v_cry_pairing = { - name = "Pairing", - text = { - "{C:attention}Retrigger{} all M Jokers", - "if played hand is a {C:attention}Pair", - }, - }, - v_cry_quantum_computing = { - name = "Quantum Computing", - text = { - "{C:cry_code}Code{} cards can spawn", - "with {C:dark_edition}Negative{} edition", - }, - }, - v_cry_repair_man = { - name = "Repair Man", - text = { - "{C:attention}Retrigger{} all M Jokers", - "if played hand contains a {C:attention}Pair", - }, - }, - v_cry_rerollexchange = { - name = "Reroll Exchange", - text = { - "All rerolls", - "cost {C:attention}$2{}", - }, - }, - v_cry_satellite_uplink = { - name = "Satellite Uplink", - text = { - "{C:cry_code}Code{} cards may", - "appear in any of", - "the {C:attention}Celestial Packs{}", - }, - }, - v_cry_scope = { - name = "Galactic Scope", - text = { - "Create the {C:planet}Planet", - "card for played", - "{C:attention}poker hand{}", - "{C:inactive}(Must have room){}", - }, - }, - v_cry_tacclimator = { - name = "Tarot Acclimator", - text = { - "{C:tarot}Tarot{} cards appear", - "{C:attention}X#1#{} more frequently", - "in the shop", - "All future {C:tarot}Tarot{}", - "cards are {C:green}free{}", - }, - }, - v_cry_tag_printer = { - name = "Tag Printer", - text = { - "Double Tags become", - "{C:attention}Quadruple Tags{} and", - "are {C:attention}3X{} as common", - }, - }, - v_cry_threers = { - name = "The 3 Rs", - text = { - "Permanently", - "gain {C:red}+#1#{} discard(s)", - "each round", - }, - }, - v_cry_stickyhand = { - name = "Sticky Hand", - text = { - "{C:attention}+#1#{} card selection limit", - }, - }, - v_cry_grapplinghook = { - name = "Grappling Hook", - text = { - "{C:attention}+#1#{} card selection limit", - "{C:inactive,s:0.7}You can do a lot more with this than you think.{}", - }, - }, - v_cry_hyperspacetether = { - name = "Hyperspace Tether", - text = { - "{C:attention}+#1#{} card selection limit", - "{C:inactive,s:0.7}NOTE: Will have extra functionality later{}", - }, - }, - }, - Other = { - banana = { - name = "Banana", - text = { - "{C:green}#1# in #2#{} chance of being", - "destroyed each round", - }, - }, - cry_rigged = { - name = "Rigged", - text = { - "All {C:cry_code}listed{} probabilities", - "are {C:cry_code}guaranteed", - }, - }, - cry_hooked = { - name = "Hooked", - text = { - "When this Joker is {C:cry_code}triggered{},", - "trigger {C:cry_code}#1#", - }, - }, - cry_flickering = { - name = "Flickering", - text = { - "Destroyed after", - "{C:attention}#1#{} triggers", - "{C:inactive}({C:attention}#2#{C:inactive} remaining)" - }, - }, - cry_flickering_desc = { --used by choco dice - name = "Flickering", - text = { - "Destroyed after", - "{C:attention}#1#{} triggers", - }, - }, - cry_possessed = { - name = "Possessed", - text = { - "{C:attention}Disables{} and {C:attention}reverses{}", - "effects, if possible", - "Destroyed along with {C:attention}Ghost" - }, - }, - --todo? add candy jokers to list - food_jokers = { - name = "Food Jokers", - text = { - "{s:0.8}Gros Michel, Egg, Ice Cream, Cavendish,", - "{s:0.8}Turtle Bean, Diet Cola, Popcorn, Ramen,", - "{s:0.8}Seltzer, Pickle, Chili Pepper, Caramel,", - "{s:0.8}Nostalgic Candy, Fast Food M, etc.", - }, - }, - ev_cry_choco0 = { - name = "", - text = { - "Details of an active", - "{C:cry_ascendant,E:1}event{} will appear here" - } - }, - ev_cry_choco1 = { - name = "1: Possession", - text = { - "{C:attention}Jokers{} and playing cards have a", - "{C:green}1 in 3{} chance of gaining Flickering", - "Create a {C:attention}Ghost", - "{C:inactive,s:0.7}You've been possessed by a ghost, and your", - "{C:inactive,s:0.7}consciousness is flickering in and out." - } - }, - ev_cry_choco2 = { - name = "2: Haunted House", - text = { - "Prevents skipping {C:attention}Blind{}", - "One {C:attention}reroll{} allowed per shop", - "{C:attention}Voucher{} prices are doubled", - "{C:inactive,s:0.7}Spooky spirits have taken over! Don't touch", - "{C:inactive,s:0.7}anything and get out as soon as possible!", - } - }, - ev_cry_choco3 = { - name = "3: Witch's Brews", - text = { - "Create 3 {C:attention}Potions", - "Use one by the end of the {C:attention}Small Blind{},", - "or {C:attention}all{} maluses will be applied this {C:attention}Ante", - "{C:inactive,s:0.7}You have been kidnapped by a witch!", - "{C:inactive,s:0.7}She offers you three potions, watching you closely.", - "{C:inactive,s:0.7}Pick one, lest she makes the decision for you.", - } - }, - ev_cry_choco4 = { - name = "4: Lunar Abyss", - text = { - "Played cards have a {C:green}1 in 4{} chance", - "to turn into a random {C:club}Club{} face card", - "Divide {C:attention}Mult{} by number of played face cards", - "{C:inactive,s:0.7}Even a man who's pure at heart", - "{C:inactive,s:0.7}and says his prayers by night..." - } - }, - ev_cry_choco5 = { - name = "5: Bloodsucker", - text = { - "Remove {C:attention}Enhancements{} from all played cards", - "{C:green}1 in 3{} chance to destroy", - "{C:heart}Heart{} and {C:diamond}Diamond{} cards", - "{C:inactive,s:0.7}Be wary in the dead of night, for", - "{C:inactive,s:0.7,E:1}they in the shadows{C:inactive,s:0.7} seek to quench their thirst..." - } - }, - ev_cry_choco6 = { - name = "6: Please Take One", - text = { - "At {C:attention}end of round{}, open a", - "random {C:attention}Booster{} Pack", - "{C:inactive,s:0.7}As you stroll down the streets, you spot a", - "{C:inactive,s:0.7}box of various Booster Packs. Might as well grab one!" - } - }, - ev_cry_choco7 = { - name = "7: Festive Atmosphere", - text = { - "Create 3 {C:attention}Trick-or-Treat{} and 1 {C:attention}Candy Basket", - "Shops have a {C:attention}Trick-or-Treat{} each round", - "{C:cry_candy}Candies{} give {C:money}$3{} when obtained", - "{C:inactive,s:0.7}The entire neighbourhood is decorated for spooky endeavours,", - "{C:inactive,s:0.7}come indulge in the festive atmosphere!" - } - }, - ev_cry_choco8 = { - name = "8: Candy Rain", - text = { - "When {C:attention}Blind{} defeated, obtain 1 {C:cry_candy}Candy{}", - "per hand remaining; Obtain a {C:attention}Food Joker{}", - "when a {C:cry_candy}Candy{} is generated", - "{C:inactive,s:0.7}Candies rain from the sky! Quick,", - "{C:inactive,s:0.7,E:1}grab as much as you can!" - } - }, - ev_cry_choco9 = { - name = "9: Ghostly Riches", - text = { - "Gain {C:money}$20", - "All {C:money}money{} earned is {C:attention}doubled", - "{C:inactive,s:0.7}The spectre of a long-gone relative of yours", - "{C:inactive,s:0.7}visits you in the middle of the night!", - "{C:inactive,s:0.7}Without a word, they place a bag of money in your hands,", - "{C:inactive,s:0.7}smile warmly, and wave as they fade into the air.", - } - }, - ev_cry_choco10 = { - name = "10: Revered Antique", - text = { - "A {C:legendary}Legendary{} {C:attention}Joker{} appears", - "in the {C:attention}Voucher{} slot for {C:money}$50", - "Only buyable as {C:attention}last{} item in shop", - "{C:inactive,s:0.7}You've attracted the attention of a relic's spirit,", - "{C:inactive,s:0.7}but it won't be easy to quell.", - } - }, - cry_https_disabled = { - name = "M", - text = { - "{C:attention,s:0.7}Updating{s:0.7} is disabled by default ({C:attention,s:0.7}HTTPS Module{s:0.7})", - }, - }, - --i am so sorry for this - --actually some of this needs to be refactored at some point - cry_eternal_booster = { - name = "Eternal", - text = { - "All cards in pack", - "are {C:attention}Eternal{}", - }, - }, - cry_perishable_booster = { - name = "Perishable", - text = { - "All cards in pack", - "are {C:attention}Perishable{}", - }, - }, - cry_rental_booster = { - name = "Rental", - text = { - "All cards in pack", - "are {C:attention}Rental{}", - }, - }, - cry_pinned_booster = { - name = "Pinned", - text = { - "All cards in pack", - "are {C:attention}Pinned{}", - }, - }, - cry_banana_booster = { - name = "Banana", - text = { - "All cards in pack", - "are {C:attention}Banana{}", - }, - }, - cry_eternal_voucher = { - name = "Eternal", - text = { - "Can't be traded", - }, - }, - cry_perishable_voucher = { - name = "Perishable", - text = { - "Debuffed after", - "{C:attention}#1#{} rounds", - "{C:inactive}({C:attention}#2#{C:inactive} remaining)", - }, - }, - cry_rental_voucher = { - name = "Rental", - text = { - "Lose {C:money}$#1#{} at", - "end of round", - }, - }, - cry_pinned_voucher = { - name = "Pinned", - text = { - "Remains in shop", - "until redeemed", - }, - }, - cry_banana_voucher = { - name = "Banana", - text = { - "{C:green}#1# in #2#{} chance of being", - "unredeemed each round", - }, - }, - cry_perishable_consumeable = { - name = "Perishable", - text = { - "Debuffed at", - "end of round", - }, - }, - cry_rental_consumeable = { - name = "Rental", - text = { - "Lose {C:money}$#1#{} at end of", - "round, and on use", - }, - }, - cry_pinned_consumeable = { - name = "Pinned", - text = { - "Can't use other", - "non-{C:attention}Pinned{} consumables", - }, - }, - cry_banana_consumeable = { - name = "Banana", - text = { - "{C:green}#1# in #2#{} chance to do", - "nothing on use", - }, - }, - p_cry_code_normal_1 = { - name = "Program Pack", - text = { - "Choose {C:attention}#1#{} of up to", - "{C:attention}#2#{C:cry_code} Code{} cards", - }, - }, - p_cry_code_normal_2 = { - name = "Program Pack", - text = { - "Choose {C:attention}#1#{} of up to", - "{C:attention}#2#{C:cry_code} Code{} cards", - }, - }, - p_cry_code_jumbo_1 = { - name = "Jumbo Program Pack", - text = { - "Choose {C:attention}#1#{} of up to", - "{C:attention}#2#{C:cry_code} Code{} cards", - }, - }, - p_cry_code_mega_1 = { - name = "Mega Program Pack", - text = { - "Choose {C:attention}#1#{} of up to", - "{C:attention}#2#{C:cry_code} Code{} cards", - }, - }, - p_cry_empowered = { - name = "Spectral Pack [Empowered Tag]", - text = { - "Choose {C:attention}#1#{} of up to", - "{C:attention}#2#{C:spectral} Spectral{} cards", - "{s:0.8,C:inactive}(Generated by Empowered Tag)", - }, - }, - p_cry_meme_1 = { - name = "Meme Pack", - text = { - "Choose {C:attention}#1#{} of", - "up to {C:attention}#2# Meme Jokers{}", - }, - }, - p_cry_meme_two = { - name = "Meme Pack", - text = { - "Choose {C:attention}#1#{} of", - "up to {C:attention}#2# Meme Jokers{}", - }, - }, - p_cry_meme_three = { - name = "Meme Pack", - text = { - "Choose {C:attention}#1#{} of", - "up to {C:attention}#2# Meme Jokers{}", - }, - }, - undiscovered_code = { - name = "Not Discovered", - text = { - "Purchase or use", - "this card in an", - "unseeded run to", - "learn what it does" - } - }, - undiscovered_unique = { - name = "Not Discovered", - text = { - "Purchase or use", - "this card in an", - "unseeded run to", - "learn what it does" - } - }, - cry_green_seal = { - name = "Green Seal", - text = { - "Creates a {C:cry_code}Code{} card", - "when played and unscoring", - "{C:inactive}(Must have room)", - }, - }, - cry_azure_seal = { - name = "Azure Seal", - text = { - "Create {C:attention}#1#{} {C:dark_edition}Negative{}", - "{C:planet}Planets{} for played", - "{C:attention}poker hand{}, then", - "{C:red}destroy{} this card", - }, - }, - blurred_sdm0 = { - name = "a", - text = { - "{C:inactive,s:0.8}\"I hate this card\" - SDM0, 2024{}", - }, - }, - }, - Unique = { - c_cry_potion = { - name = "Potion", - text = { - "Applies an unknown", - "{C:attention}malus{} when used", - "{C:inactive,s:0.7}Obtained from Chocolate Die" - } - } - } - }, - misc = { - poker_hands = { - ['cry_Bulwark'] = "Bulwark", - ['cry_Clusterfuck'] = "Clusterfuck", - ['cry_UltPair'] = "Ultimate Pair", - ['cry_WholeDeck'] = "The Entire Fucking Deck", - }, - poker_hand_descriptions = { - ['cry_Bulwark'] = { - '5 rankless, suitless cards', - }, - ['cry_Clusterfuck'] = { - 'At least 8 cards that do not', - 'contain a Pair, Flush, or Straight', - }, - ['cry_UltPair'] = { - 'Two Two Pairs, where each', - 'Two Pair is a single suit, for a', - 'total of two suits between them', - }, - ['cry_WholeDeck'] = { - 'A hand that contains every single', - 'card found in a 52-card deck.', - 'Are you insane?', - }, - }, - achievement_names = { - ach_cry_ace_in_crash = "Pocket ACE", - ach_cry_blurred_blurred_joker = "Legally Blind", - ach_cry_bullet_hell = "Bullet Hell", - ach_cry_break_infinity = "Break Infinity", - ach_cry_cryptid_the_cryptid = "Cryptid the Cryptid", - ach_cry_exodia = "Exodia", - ach_cry_freak_house = "Freak House", - ach_cry_googol_play_pass = "Googol Play Pass", - ach_cry_haxxor = "H4xx0r", - ach_cry_home_realtor = "Home Realtor", - ach_cry_jokes_on_you = "Joke's on You, Pal!", - ach_cry_niw_uoy = "!niW uoY", - ach_cry_now_the_fun_begins = "Now the Fun Begins", - ach_cry_patience_virtue = "Patience is a Virtue", - ach_cry_perfectly_balanced = "Perfectly Balanced", - ach_cry_pull_request = "Pull Request", - ach_cry_traffic_jam = "Traffic Jam", - ach_cry_ult_full_skip = "Ultimate Full Skip", - ach_cry_used_crash = "We Told You Not To", - ach_cry_what_have_you_done = "WHAT HAVE YOU DONE?!", - }, - achievement_descriptions = { - ach_cry_ace_in_crash = 'check_for_unlock({type = "ace_in_crash"})', - ach_cry_blurred_blurred_joker = "Obtain Blurred Blurred Joker", - ach_cry_bullet_hell = "Have 15 AP Jokers", - ach_cry_break_infinity = "Score 1.79e308 Chips in a single hand", - ach_cry_cryptid_the_cryptid = "Use Cryptid on Cryptid", - ach_cry_exodia = "Have 5 Exotic Jokers", - ach_cry_freak_house = "Play a Flush House consisting of 6s and 9s of Hearts whilst possessing Nice", - ach_cry_googol_play_pass = "Rig a Googol Play Card", - ach_cry_haxxor = "Use a cheat code", - ach_cry_home_realtor = "Activate Happy House before Ante 8 (without DoE/Antimatter)", - ach_cry_jokes_on_you = "Trigger The Joke's effect on Ante 1 and win the run", - ach_cry_niw_uoy = "Reach Ante -8", - ach_cry_now_the_fun_begins = "Obtain Canvas", - ach_cry_patience_virtue = "Wait out Lavender Loop for 2 minutes before playing first hand and beat the blind", - ach_cry_perfectly_balanced = "Beat Very Fair Deck on Ascendant Stake", - ach_cry_pull_request = "Have ://COMMIT spawn the same Joker that it destroyed", - ach_cry_traffic_jam = "Beat all Rush Hour challenges", - ach_cry_ult_full_skip = "Win in 1 round", - ach_cry_used_crash = "Use ://CRASH", - ach_cry_what_have_you_done = "Delete or Sacrifice an Exotic Joker", - }, - challenge_names = { - c_cry_ballin = "Ballin'", - c_cry_boss_rush = "Enter the Gungeon", - c_cry_dagger_war = "Dagger War", - c_cry_joker_poker = "Joker Poker", - c_cry_onlycard = "Solo Card", - c_cry_rng = "RNG", - c_cry_rush_hour = "Rush Hour I", - c_cry_rush_hour_ii = "Rush Hour II", - c_cry_rush_hour_iii = "Rush Hour III", - c_cry_sticker_sheet = "Sticker Sheet", - c_cry_sticker_sheet_plus = "Sticker Sheet+", - }, - dictionary = { - --Settings Menu - cry_set_features = "Features", - cry_set_music = "Music", - cry_set_enable_features = "Select features to enable (applies on game restart):", - cry_feat_achievements = "Achievements", - ["cry_feat_antimatter deck"] = "Antimatter Deck", - cry_feat_blinds = "Blinds", - cry_feat_challenges = "Challenges", - ["cry_feat_code cards"] = "Code Cards", - ["cry_feat_misc. decks"] = "Misc. Decks", - ["cry_feat_https module"] = "HTTPS Module", - ["cry_feat_timer mechanics"] = "Timer Mechanics", - ["cry_feat_enhanced decks"] = "Enhanced Decks", - ["cry_feat_epic jokers"] = "Epic Jokers", - ["cry_feat_exotic jokers"] = "Exotic Jokers", - ["cry_feat_m jokers"] = "M Jokers", - cry_feat_menu = "Custom Main Menu", - ["cry_feat_misc."] = "Misc.", - ["cry_feat_misc. jokers"] = "Misc. Jokers", - cry_feat_planets = "Planets", - cry_feat_jokerdisplay = "JokerDisplay (Does Nothing)", - cry_feat_tags = "Tags", - cry_feat_sleeves = "Sleeves", - cry_feat_spectrals = "Spectrals", - cry_feat_spooky = "Spooky Update", - ["cry_feat_more stakes"] = "Stakes", - cry_feat_vouchers = "Vouchers", - cry_mus_jimball = "Jimball (Funkytown by Lipps Inc. - Copyrighted)", - cry_mus_code = "Code Cards (://LETS_BREAK_THE_GAME by HexaCryonic)", - cry_mus_exotic = "Exotic Jokers (Joker in Latin by AlexZGreat)", - cry_mus_high_score = "High Score (Final Boss [For Your Computer] by AlexZGreat)", - - k_cry_program_pack = "Program Pack", - k_cry_meme_pack = "Meme Pack", - - cry_critical_hit_ex = "Critical Hit!", - cry_critical_miss_ex = "Critical Miss!", - - cry_potion1 = "-1 to all Hand Levels", - cry_potion2 = "X1.15 Blind size", - cry_potion3 = "-1 Hand and Discard", - - cry_debuff_oldhouse = "No Full Houses", - cry_debuff_oldarm = "Must play 4 or fewer cards", - cry_debuff_oldpillar = "No Straights", - cry_debuff_oldflint = "No Flushes", - cry_debuff_oldmark = "No hands containing a Pair", - cry_debuff_obsidian_orb = "Applies abilities of all defeated bosses", - - k_code = "Code", - k_unique = "Unique", - b_code_cards = "Code Cards", - b_unique_cards = "Unique Cards", - b_pull = "PULL", - cry_hooked_ex = "Hooked!", - k_end_blind = "End Blind", - - cry_code_rank = "ENTER RANK", - cry_code_enh = "ENTER ENHANCEMENT", - cry_code_hand = "ENTER POKER HAND", - cry_code_enter_card = "ENTER A CARD", - cry_code_apply = "APPLY", - cry_code_apply_previous = "APPLY PREVIOUS", - cry_code_exploit = "EXPLOIT", - cry_code_exploit_previous = "EXPLOIT PREVIOUS", - cry_code_create = "CREATE", - cry_code_create_previous = "CREATE PREVIOUS", - cry_code_execute = "EXECUTE", - cry_code_cancel = "CANCEL", - - b_flip = "FLIP", - b_merge = "MERGE", - - cry_hand_bulwark = "Bulwark", - cry_hand_clusterfuck = "Clusterfuck", - cry_hand_ultpair = "Ultimate Pair", - - cry_again_q = "Again?", - cry_curse = "Curse", - cry_curse_ex = "Curse!", - cry_sobbing = "Help me...", - cry_gaming = "Gaming", - cry_gaming_ex = "Gaming!", - cry_sus_ex = "Impostor!", - cry_jolly_ex = "Jolly Up!", - cry_m_minus = "m", - cry_m = "M", - cry_m_ex = "M!", - cry_minus_round = "-1 Round", - cry_plus_cryptid = "+1 Cryptid", - cry_no_triggers = "No triggers left!", - cry_unredeemed = "Unredeemed...", - cry_active = "Active", - cry_inactive = "Inactive", - - k_disable_music = "Disable Music", - - k_cry_epic = "Epic", - k_cry_exotic = "Exotic", - k_cry_candy = "Candy", - k_cry_cursed = "Cursed", - k_planet_disc = "Circumstellar Disc", - k_planet_satellite = "Natural Satellites", - k_planet_universe = "The Actual Fucking Universe", - - cry_notif_jimball_1 = "Jimball", - cry_notif_jimball_2 = "Copyright Notice", - cry_notif_jimball_d1 = "Jimball plays the song \"Funkytown\",", - cry_notif_jimball_d2 = "which is copyrighted and can't be", - cry_notif_jimball_d3 = "used for streams and videos.", - }, - labels = { - food_jokers = "Food Jokers", - banana = "Banana", - code = "Code", - unique = "Unique", - cry_rigged = "Rigged", - cry_hooked = "Hooked", - cry_flickering = "Flickering", - cry_possessed = "Possessed", - - cry_green_seal = "Green Seal", - cry_azure_seal = "Azure Seal", - - cry_astral = "Astral", - cry_blur = "Blurred", - cry_double_sided = "Double-Sided", - cry_glass = "Fragile", - cry_glitched = "Glitched", - cry_gold = "Golden", - cry_m = "Jolly", - cry_mosaic = "Mosaic", - cry_noisy = "Noisy", - cry_oversat = "Oversaturated", - - k_cry_epic = "Epic", - k_cry_exotic = "Exotic", - k_cry_candy = "Candy", - k_cry_cursed = "Cursed", - }, - rnj_loc_txts = { - stats = { - plus_mult = { "{C:red}+#2#{} Mult" }, - plus_chips = { "{C:blue}+#2#{} Chips" }, - x_mult = { "{X:red,C:white} X#2#{} Mult" }, - x_chips = { "{X:blue,C:white} X#2#{} Chips" }, - h_size = { "{C:attention}+#2#{} Hand Size" }, - money = { "{C:money}+$#2#{} at payout" }, - }, - stats_inactive = { - plus_mult = { "{C:inactive}(Currently {C:red}+#1#{C:inactive} Mult)" }, - plus_chips = { "{C:inactive}(Currently {C:blue}+#1#{C:inactive} Chips)" }, - x_mult = { "{C:inactive}(Currently {X:red,C:white} X#1# {C:inactive} Mult)" }, - x_chips = { "{C:inactive}(Currently {X:blue,C:white} X#1# {C:inactive} Chips)" }, - h_size = { "{C:inactive}(Currently {C:attention}+#1#{C:inactive} Hand Size)" }, - money = { "{C:inactive}(Currently {C:money}+$#1#{C:inactive})" }, - }, - actions = { - make_joker = { "Create {C:attention}#2# Joker{}" }, - make_tarot = { "Create {C:attention}#2#{C:tarot} Tarot{} card" }, - make_planet = { "Create {C:attention}#2#{C:planet} Planet{} card" }, - make_spectral = { "Create {C:attention}#2#{C:spectral} Spectral{} card" }, - add_dollars = { "Earn {C:money}$#2#{}" }, - }, - contexts = { - open_booster = { "when a {C:attention}Booster{} is opened" }, - buying_card = { "when a card is bought" }, - selling_self = { "when this card is sold" }, - selling_card = { "when a card is sold" }, - reroll_shop = { "on reroll" }, - ending_shop = { "at the end of the {C:attention}shop{}" }, - skip_blind = { "when a {C:attention}blind{} is skipped" }, - skipping_booster = { "when any {C:attention}Booster Pack{} is skipped" }, - playing_card_added = { "every time a {C:attention}playing card{} is added to your deck" }, - first_hand_drawn = { "when round begins" }, - setting_blind = { "when {C:attention}Blind{} is selected" }, - remove_playing_cards = { "when a card is destroyed" }, - using_consumeable = { "when a {C:attention}consumable{} card is used" }, - debuffed_hand = { "if played {C:attention}hand{} is not allowed" }, - pre_discard = { "before each discard" }, - discard = { "for each discarded card" }, - end_of_round = { "at end of {C:attention}round{}" }, - individual_play = { "for each card scored" }, - individual_hand_score = { "for each card held in hand during scoring" }, - individual_hand_end = { "for each card held in hand at end of {C:attention}round{}" }, - repetition_play = { "Retrigger played cards" }, - repetition_hand = { "Retrigger held in hand cards" }, - other_joker = { "per {C:attention}Joker{}" }, - before = { "before each {C:attention}hand{}" }, - after = { "after each {C:attention}hand{}" }, - joker_main = {}, - }, - conds = { - buy_common = { "if it is a {C:blue}Common{} {C:attention}Joker{}" }, - buy_uncommon = { "if it is a {C:green}Uncommon{} {C:attention}Joker{}" }, - tarot = { "if card is a {C:tarot}Tarot{} card" }, - planet = { "if card is a {C:planet}Planet{} card" }, - spectral = { "if card is a {C:spectral}Spectral{} card" }, - joker = { "if card is a {C:attention}Joker{}" }, - suit = { "if card is a {V:1}#3#{}" }, - rank = { "if card is rank {C:attention}#3#{}" }, - face = { "if card is a {C:attention}face{} card" }, - boss = { "if {C:attention}blind{} is a {C:attention}Boss {C:attention}Blind{}" }, - non_boss = { "if {C:attention}blind{} is a {C:attention}Non-Boss {C:attention}Blind{}" }, - small = { "if {C:attention}blind{} is a {C:attention}Small {C:attention}Blind{}" }, - big = { "if {C:attention}blind{} is a {C:attention}Big {C:attention}Blind{}" }, - first = { "if it's the {C:attention}first {C:attention}hand{}" }, - last = { "if it's the {C:attention}last {C:attention}hand{}" }, - common = { "if it is a {C:blue}Common{} {C:attention}Joker{}" }, - uncommon = { "if it is an {C:green}Uncommon{} {C:attention}Joker{}" }, - rare = { "if it is a {C:red}Rare{} {C:attention}Joker{}" }, - poker_hand = { "if hand is a {C:attention}#3#{}" }, - or_more = { "if hand contains {C:attention}#3#{} or more cards" }, - or_less = { "if hand contains {C:attention}#3#{} or less cards" }, - hands_left = { "if #3# {C:blue}hands{} remaining at end of round" }, - discards_left = { "if #3# {C:red}discards{} remaining at end of round" }, - first_discard = { "if it's the {C:attention}first {C:attention}discard{}" }, - last_discard = { "if it's the {C:attention}last {C:attention}discard{}" }, - odds = { "with a {C:green}#4# {C:green}in {C:green}#3#{} chance" }, - }, - }, - v_dictionary = { - a_xchips = {"X#1# Chips"}, - a_powmult = {"^#1# Mult"}, - a_powchips = {"^#1# Chips"}, - a_powmultchips = {"^#1# Mult+Chips"}, - a_round = {"+#1# Round"}, - a_candy = {"+#1# Candy"}, - a_xchips_minus = {"-X#1# Chips"}, - a_powmult_minus = {"-^#1# Mult"}, - a_powchips_minus = {"-^#1# Chips"}, - a_powmultchips_minus = {"-^#1# Mult+Chips"}, - a_round_minus = {"-#1# Round"}, - - a_tag = {"#1# Tag"}, - a_tags = {"#1# Tags"}, - - cry_sticker_name = {"#1# Sticker"}, - cry_sticker_desc = { - "Used this Joker", - "to win on #2##1#", - "#2#Stake#3# difficulty" - }, - - cry_art = {"Art: #1#"}, - cry_code = {"Code: #1#"}, - cry_idea = {"Idea: #1#"} - }, - v_text = { - ch_c_cry_all_perishable = {"All Jokers are {C:eternal}Perishable{}"}, - ch_c_cry_all_rental = {"All Jokers are {C:eternal}Rental{}"}, - ch_c_cry_all_pinned = {"All Jokers are {C:eternal}Pinned{}"}, - ch_c_cry_all_banana = {"All Jokers are {C:eternal}Banana{}"}, - ch_c_all_rnj = {"All Jokers are {C:attention}RNJoker{}"}, - ch_c_cry_sticker_sheet_plus = {"All purchasable items have all stickers"}, - ch_c_cry_rush_hour = {"All Boss Blinds are {C:attention}The Clock{} or {C:attention}Lavender Loop"}, - ch_c_cry_rush_hour_ii = {"All Blinds are {C:attention}Boss Blinds{}"}, - ch_c_cry_rush_hour_iii = {"{C:attention}The Clock{} and {C:attention}Lavender Loop{} scale {C:attention}twice{} as fast"}, - ch_c_cry_no_tags = {"Skipping is {C:attention}disabled{}"}, - ch_c_cry_no_vouchers = {"{C:attention}Vouchers{} no longer appear in the shop"}, - ch_c_cry_no_boosters = {"{C:attention}Booster Packs{} no longer appear in the shop"}, - ch_c_cry_no_rerolls = {"Rerolling is {C:attention}disabled{}"}, - ch_c_cry_no_consumables = {"{C:attention}Consumables{} no longer appear"} - }, - -- Thanks to many members of the community for contributing to all of these quips! - -- There's too many to credit so just go here: https://discord.com/channels/1116389027176787968/1209506360987877408/1237971471146553406 - -- And here: https://discord.com/channels/1116389027176787968/1219749193204371456/1240468252325318667 - very_fair_quips = { - { "L", "NO VOUCHERS", "FOR YOU" }, - { "BOZO", "DID YOU THINK I WOULD", "GIVE YOU A VOUCHER?" }, - { "NOPE!", "NO VOUCHERS HERE!", "(SLUMPAGE EDITION)" }, - { "SKILL ISSUE", "IMAGINE BEING GOOD ENOUGH", "FOR A VOUCHER" }, - { "JIMBO", "FROM MANAGEMENT", "FORGOT TO RESTOCK" }, - { "OOPS!", "NO VOUCHERS", "" }, - { "YOU JOKER,", "WHY ARE YOU LOOKING", "OVER HERE? LOL" }, - { "THE VOUCHER", "IS IN", "ANOTHER CASTLE" }, - { "$0", "BLANK VOUCHER", "(GET IT?)" }, - { "ERROR", "CANNOT DO ARITHMETIC ON A NIL VALUE", "(tier4vouchers.lua)" }, - { "100% OFF", "ON ALL VOUCHERS", "(SOMEONE ALREADY BOUGHT THEM)" }, - { "TRY AGAIN LATER", "HINT: YOU WON'T HAVE", "ENOUGH MONEY ANYWAYS" }, - { "HUH?", '"VOUCHER"?', "THAT'S NOT EVEN A WORD..." }, - { 'HOLD "R"', "TO RESTOCK", "ALL VOUCHERS" }, - { "DID YOU KNOW?", "PRESSING ALT+F4", "GIVES FREE VOUCHERS!" }, - { "SORRY,", "THERE ARE NO VOUCHERS", "DUE TO BUDGET CUTS" }, - { "CALL 1-600-JIMBO", "TO RATE YOUR", "VOUCHER EXPERIENCE" }, - { "DEFEAT", "ANTE 39 BOSS BLIND", "TO RESTOCK" }, - { "MAGIC TRICK", "I MADE THIS VOUCHER", "DISAPPEAR" }, - { "WHY IS A", "VOUCHER LIKE", "A WRITING DESK?" }, - { "WE HAVE RETRACTED", "YOUR VOUCHERS, THEY WOULD BE", "BETTER USED IN OTHER RUNS" }, - { "WHY DO THEY CALL IT VOUCHER", "WHEN MULT OUT THE HOT", "IN COLD EAT EAT THE CHIP" }, - { "SORRY", "THE VOUCHERS ARE EXPERIENCING", "VOUCHIFIA ABORTUS" }, - { "UNFORTUNATELY", "THE VOUCHRX REWRITE UPDATE", "HAS BEEN CANCELLED" }, - { "DEFEAT", "BOSS BLIND", "TO CHANGE NOTHING" }, - { "BIRDS ARE SINGING", "FLOWERS ARE BLOOMING", "KIDS LIKE YOU..." }, - { "WE ARE SORRY TO SAY", "ALL VOUCHERS HAVE BEEN RECALLED", "DUE TO SALMONELLA EXPOSURE" }, - { "VOUCHERS COULDN'T ARRIVE", "DUE TO SHOP LAYOUT BEING", "200% OVERBUDGET" }, - { "YOU LIKE", "BUYING VOUCHERS, DON'T YOU", "YOU'RE A VOUCHERBUYER" }, - { "VOUCHERS", "!E", "VOUCHER POOL" }, - { "THERE", "IS NO", "VOUCHER" }, - { "THERE IS", "NO SANTA", "AND THERE ARE NO VOUCHERS" }, - { "", "VOUCHERN'T", "" }, - { "YOU", "JUST LOST", "THE GAME" }, - { "CAN I OFFER YOU", "A NICE EGG", "IN THESE TRYING TIMES?" }, - { "GO TOUCH GRASS", "INSTEAD OF USING", "THIS DECK" }, - { "YOU COULD BE", "PLAYING ON BLUE DECK", "RIGHT NOW" }, - { "FREE EXOTICS", "GET THEM BEFORE ITS", "TOO LATE (sold out)" }, - { "PROVE THEM WRONG", "BUY BUYING AN INVISIBLE", "VOUCHER FOR $10" }, - { "", "no vouchers?", "" }, - { "see this ad?", "if you are, then it's working", "and you could have it for your own" }, - { "YOU'RE MISSING OUT ON", "AT LEAST 5 VOUCHERS RIGHT NOW", "tonktonktonktonktonk" }, - { "10", "20 NO VOUCHER XD", "30 GOTO 10" }, - { "VOUCHERS", "ARE A PREMIUM FEATURE", "$199.99 JOLLARS TO UNLOCK" }, - { "TRUE VOUCHERLESS!?!?", "ASCENDANT STAKE ONLY", "VERY FAIR DECK" }, - { "ENJOYING YOUR", "VOUCHER EXPERIENCE? GIVE US A", "FIVE STAR RATING ON JESTELP" }, - { "FREE VOUCHERS", "HOT VOUCHERS NEAR YOU", "GET VOUCHERS QUICK WITH THIS ONE TRICK" }, - { "INTRODUCING", "THE VERY FIRST TIER 0 VOUCHER!", "(coming to Cryptid 1.0 soon)" }, - { "A VOUCHER!", "IT'S JUST IMAGINARY", "WE IMAGINED YOU WOULD WANT IT, THAT IS" }, - { "TURN OFF ADBLOCKER", "WITHOUT ADS, WE WOULDN'T", "BE ABLE TO SELL YOU VOUCHERS" }, - { "IF YOU HAVE", "A PROBLEM WITH THIS", "EMAIL IT TO US AT NORESPONSE@JMAIL.COM" }, - { "NOT ENOUGH MONEY", "TO BUY THIS VOUCHER", "SO WHY WOULD WE PUT IT HERE?" }, - { "WANT A VOUCHER?", "WELL SHUT UP", "YOU CAN'T HAVE ANY LOL" }, - { "^$%& NO", "VOUCHERS ^%&% %&$^% FOR", "$%&%%$ %&$&*%$^ YOU" }, - { "A VOUCHER (TRUST)", "|\\/|", "|/\\|" }, - { - "... --- ...", - ".--. .-.. .- -.-- . .-. -.. . -.-. --- -.. . -.. -- --- .-. ... .", - "-.-. --- -.. . - --- ..-. .. -. -.. .- ...- --- ..- -.-. .... . .-.", - }, - { "RUN > NEW", "STARE AT NOTHING", "FOR AN HOUR OR TWO" }, - { "WE'RE VERY SORRY", "THE LAST GUY PANIC BOUGHT", "ALL THE VOUCHERS" }, - { "HOW IT FEELS", "TO BUY NO", "VOUCHERS" }, - { "JIMBO GOT A NAT 1", "AND DUMPED ALL THE", "VOUCHERS IN A DITCH" }, - { "ATTEMPT TO INDEX", "FIELD 'VOUCHER'", "(A NIL VALUE)" }, - { - "OH YOU REALLY THOUGHT THAT READING ALL THESE LINES WOULD BRING YOUR VOUCHERS BACK?", - "SORRY TO TELL YOU, BUT THIS DECK DOESN'T CONTAIN THE VOUCHERS YOU SEEK.", - "THIS ABNORMALLY LONG TEXT IS HERE AND DESIGNED TO WASTE YOUR TIME AND EFFORT WHILE YOU READ IT.", - }, - { "GO TO", "https://youtu.be/p7YXXieghto", "FOR FREE VOUCHERS" }, - } - } -} +--I couldn't get Meme Packs to work without crashing +--yes somehow that was harder than RNJoker +return { + descriptions = { + Back = { + b_cry_antimatter = { + name = "Antimatter Deck", + text = { + "Applies the {C:legendary,E:1}upsides{}", + "of {C:attention}every{} deck", + }, + }, + b_cry_beta = { + name = "Nostalgic Deck", + text = { + "{C:attention}Joker{} and {C:attention}Consumable{}", + "slots are {C:attention}combined", + "{C:attention}Nostalgic{} Blinds replace", + "their updated Blind" + }, + }, + b_cry_blank = { + name = "Blank Deck", + text = { + "{C:inactive,E:1}Does nothing?", + }, + }, + b_cry_bountiful = { + name = "Bountiful Deck", + text = { + "Always draw 5 cards after every", + "{C:attention}played hand{} or {C:attention}discard{}", + }, + }, + b_cry_CCD = { + name = "CCD Deck", + text = { + "Every card is also", + "a {C:attention}random{} consumable", + }, + }, + b_cry_conveyor = { + name = "Conveyor Deck", + text = { + "Jokers may {C:attention}not{} be moved", + "At start of round,", + "{C:attention}duplicate{} rightmost Joker", + "and {C:attention}destroy{} leftmost Joker", + }, + }, + b_cry_critical = { + name = "Critical Deck", + text = { + "After each hand played,", + "{C:green}#1# in 4{} chance for {X:dark_edition,C:white} ^2 {} Mult", + "{C:green}#1# in 8{} chance for {X:dark_edition,C:white} ^0.5 {} Mult", + }, + }, + b_cry_encoded = { + name = "Encoded Deck", + text = { + "Start with a {C:cry_code,T:j_cry_CodeJoker}Code Joker{}", + "and a {C:cry_code,T:j_cry_copypaste}Copy/Paste{}", + "Only {C:cry_code}Code Cards{} appear in shop", + }, + }, + b_cry_equilibrium = { + name = "Deck of Equilibrium", + text = { + "All cards have the", + "{C:attention}same chance{} of", + "appearing in shops,", + "start run with", + "{C:attention,T:v_overstock_plus}Overstock Plus", + }, + }, + b_cry_glowing = { + name = "Glowing Deck", + text = { + "Multiply the values of", + "all Jokers by {X:dark_edition,C:white} X1.25 {}", + "when Boss Blind is defeated", + "{X:cry_jolly,C:white,s:0.8} Jolly#1#Open#1#Winner#1#-#1#wawa#1#person", --peak loc_vars right here + }, + }, + b_cry_infinite = { + name = "Infinite Deck", + text = { + "You can select {C:attention}any", + "number of cards", + "{C:attention}+1{} hand size", + }, + }, + b_cry_misprint = { + name = "Misprint Deck", + text = { + "Values of cards", + "and poker hands", + "are {C:attention}randomized", + }, + }, + b_cry_redeemed = { + name = "Redeemed Deck", + text = { + "When a {C:attention}Voucher{} is purchased,", + "gain its {C:attention}extra tiers", + }, + }, + b_cry_spooky = { + name = "Spooky Deck", + text = { + "Start with an {C:eternal}Eternal{} {C:attention,T:j_cry_chocolate_dice}Chocolate Die", + "After each {C:attention}Ante{}, create a", + "{C:cry_candy}Candy{} or {X:cry_cursed,C:white}Cursed{} Joker", + } + }, + b_cry_very_fair = { + name = "Very Fair Deck", + text = { + "{C:blue}-2{} hands, {C:red}-2{} discards", + "every round", + "{C:attention}Vouchers{} no longer", + "appear in the shop", + }, + }, + b_cry_wormhole = { + name = "Wormhole Deck", + text = { + "Start with an {C:cry_exotic}Exotic{C:attention} Joker", + "Jokers are {C:attention}20X{} more", + "likely to be {C:dark_edition}Negative", + "{C:attention}-2{} Joker slots", + }, + }, + b_cry_legendary = { + name = "Legendary Deck", + text = { + "Start with a {C:legendary}Legendary{C:legendary} Joker", + "{C:green}1 in 5{} chance to create another", + "when Boss Blind is defeated {C:inactive}(must have room){}", + }, + }, + }, + Blind = { + bl_cry_box = { + name = "The Box", + text = { + "All Common Jokers", + "are debuffed", + }, + }, + bl_cry_clock = { + name = "The Clock", + text = { + "+0.1X blind requirements every", + "3 seconds spent this ante", + }, + }, + bl_cry_hammer = { + name = "The Hammer", + text = { + "All cards with odd", + "rank are debuffed", + }, + }, + bl_cry_joke = { + name = "The Joke", + text = { + "If score is >2X requirements,", + "set ante to multiple of #1#", + }, + }, + bl_cry_magic = { + name = "The Magic", + text = { + "All cards with even", + "rank are debuffed", + }, + }, + bl_cry_lavender_loop = { + name = "Lavender Loop", + text = { + "1.25X blind requirements every", + "1.5 seconds spent this round", + }, + }, + bl_cry_obsidian_orb = { + name = "Obsidian Orb", + text = { + "Applies abilities of", + "all defeated bosses", + }, + }, + bl_cry_oldarm = { + name = "Nostalgic Arm", + text = { + "Must play 4", + "or fewer cards", + }, + }, + bl_cry_oldfish = { + name = "Nostalgic Fish", + text = { + "All hands start", + "with 1 Mult", + }, + }, + bl_cry_oldflint = { + name = "Nostalgic Flint", + text = { + "No Flushes", + }, + }, + bl_cry_oldhouse = { + name = "Nostalgic House", + text = { + "No Full Houses", + }, + }, + bl_cry_oldmanacle = { + name = "Nostalgic Manacle", + text = { + "Divide Mult by discards", + }, + }, + bl_cry_oldmark = { + name = "Nostalgic Mark", + text = { + "No hands that", + "contain a Pair", + }, + }, + bl_cry_oldox = { + name = "Nostalgic Ox", + text = { + "All hands start", + "with 0 Chips", + }, + }, + bl_cry_oldpillar = { + name = "Nostalgic Pillar", + text = { + "No Straights", + }, + }, + bl_cry_oldserpent = { + name = "Nostalgic Serpent", + text = { + "Divide Mult by level", + "of played poker hand", + }, + }, + bl_cry_pin = { + name = "The Pin", + text = { + "Jokers with Epic or higher", + "rarity are debuffed", + }, + }, + bl_cry_pinkbow = { + name = "Pink Bow", + text = { + "Randomize rank of cards", + "held in hand on play", + }, + }, + bl_cry_sapphire_stamp = { + name = "Sapphire Stamp", + text = { + "Select an extra card, deselect", + "random card before scoring", + }, + }, + bl_cry_shackle = { + name = "The Shackle", + text = { + "All Negative Jokers", + "are debuffed", + }, + }, + bl_cry_striker = { + name = "The Striker", + text = { + "All Rare Jokers", + "are debuffed", + }, + }, + bl_cry_tax = { + name = "The Tax", + text = { + "Score per hand capped at", + "0.4X blind requirements", + }, + }, + bl_cry_tornado = { + name = "Turquoise Tornado", + text = { + "#1# in #2# chance for", + "played hand to not score", + }, + }, + bl_cry_trick = { + name = "The Trick", + text = { + "After each hand, flip all", + "face-up cards held in hand", + }, + }, + bl_cry_vermillion_virus = { + name = "Vermillion Virus", + text = { + "One random Joker", + "replaced every hand", + }, + }, + bl_cry_windmill = { + name = "The Windmill", + text = { + "All Uncommon Jokers", + "are debuffed", + }, + }, + }, + Code = { + c_cry_class = { + name = "://CLASS", + text = { + "Convert {C:cry_code}#1#{} selected card", + "to a {C:cry_code}chosen{} enhancement", + }, + }, + c_cry_commit = { + name = "://COMMIT", + text = { + "Destroy a {C:cry_code}selected{} Joker,", + "create a {C:cry_code}new{} Joker", + "of the {C:cry_code}same rarity", + }, + }, + c_cry_crash = { + name = "://CRASH", + text = { + "{C:cry_code,E:1}Don't.", + }, + }, + c_cry_ctrl_v = { + name = "://CTRL+V", + text = { + "Create a {C:cry_code}copy{} of a selected", + "playing card or consumable" + }, + }, + c_cry_delete = { + name = "://DELETE", + text = { + "{C:cry_code}Permanently{} remove a", + "{C:cry_code}selected{} shop item", + "{C:inactive,s:0.8}Item cannot appear again this run", + }, + }, + c_cry_divide = { + name = "://DIVIDE", + text = { + "{C:cry_code}Halve{} all listed prices", + "in current shop", + }, + }, + c_cry_exploit = { + name = "://EXPLOIT", + text = { + "Any played hand is considered", + "to {C:cry_code}contain{} a {C:cry_code}chosen{} poker hand,", + "resets at end of round", + "{C:inactive,s:0.8}Secret hands must be", + "{C:inactive,s:0.8}discovered to be valid", + }, + }, + c_cry_hook = { + name = "HOOK://", + text = { + "Select two Jokers to become {C:cry_code}Hooked", + "{C:inactive,s:0.8}Only works properly if Jokers trigger in the same context,", + "{C:inactive,s:0.8}such as Joker and The Duo (both post-scoring)", + }, + }, + c_cry_inst = { + name = "://INSTANTIATE", + text = { + "Draw a card with a selected card's {C:attention}Rank{}", + "and one with a selected card's {C:attention}Suit{}", + "{C:inactive}(If possible){}", + }, + }, + c_cry_machinecode = { + name = "://MACHINECODE", + text = { + "", + }, + }, + c_cry_malware = { + name = "://MALWARE", + text = { "Add {C:dark_edition}Glitched{} to all", "cards {C:cry_code}held in hand" }, + }, + c_cry_merge = { + name = "://MERGE", + text = { + "Merge a selected {C:cry_code}consumable", + "with a selected {C:cry_code}playing card", + }, + }, + c_cry_multiply = { + name = "://MULTIPLY", + text = { + "{C:cry_code}Double{} all values of", + "a selected {C:cry_code}Joker{} until", + "end of round", + }, + }, + c_cry_patch = { + name = "://PATCH", + text = { + "Remove all debuffs and stickers", + "from currently visible items", + }, + }, + c_cry_payload = { + name = "://PAYLOAD", + text = { + "Next defeated Blind", + "gives {C:cry_code}X#1#{} interest", + }, + }, + c_cry_oboe = { + name = "://OFFBYONE", + text = { + "Next {C:cry_code}Booster Pack{} has", + "{C:cry_code}#1#{} extra card and", + "{C:cry_code}#1#{} extra choice", + "{C:inactive}(Currently {C:cry_code}+#2#{C:inactive})", + }, + }, + c_cry_reboot = { + name = "://REBOOT", + text = { + "Replenish {C:blue}Hands{} and {C:red}Discards{},", + "return {C:cry_code}all{} cards to deck", + "and draw a {C:cry_code}new{} hand", + }, + }, + c_cry_revert = { + name = "://REVERT", + text = { + "Set {C:cry_code}game state{} to", + "start of {C:cry_code}this Ante{}", + }, + }, + c_cry_rework = { + name = "://REWORK", + text = { + "Destroy a {C:cry_code}selected{} Joker,", + "create a {C:cry_code}Rework Tag{} with", + "an {C:cry_code}upgraded{} edition", + "{C:inactive,s:0.8}Upgrades using order in the Collection", + }, + }, + c_cry_run = { + name = "://RUN", + text = { + "Visit a {C:cry_code}shop", + "during a {C:cry_code}Blind", + }, + }, + c_cry_seed = { + name = "://SEED", + text = { + "Select a Joker", + "or playing card", + "to become {C:cry_code}Rigged", + }, + }, + c_cry_semicolon = { + name = ";//", + text = { "Ends current non-Boss {C:cry_code}Blind{}", "{C:cry_code}without{} cashing out" }, + }, + c_cry_spaghetti = { + name = "://SPAGHETTI", + text = { + "Create a {C:cry_code}Glitched", + "Food Joker", + }, + }, + c_cry_variable = { + name = "://VARIABLE", + text = { + "Convert {C:cry_code}#1#{} selected cards", + "to a {C:cry_code}chosen{} rank", + }, + }, + }, + Edition = { + e_cry_astral = { + name = "Astral", + text = { + "{X:dark_edition,C:white}^#1#{} Mult", + }, + }, + e_cry_blur = { + name = "Blurred", + text = { + "{C:attention}Retrigger{} this", + "card {C:attention}1{} time", + "{C:green}#1# in #2#{} chance", + "to retrigger {C:attention}#3#{}", + "additional time", + }, + }, + e_cry_double_sided = { + name = "Double-Sided", + text = { + "This card can be", + "{C:attention}flipped{} to reveal", + "a different card", + "{C:inactive}(Blank side can be merged", + "{C:inactive}with another card)", + }, + }, + e_cry_glass = { + name = "Fragile", + label = "Fragile", + text = { + "{C:white,X:mult} X#3# {} Mult", + "{C:green}#1# in #2#{} chance this", + "card isn't {C:red}destroyed", + "when triggered", + }, + }, + e_cry_glitched = { + name = "Glitched", + text = { + "All values on this card", + "are {C:dark_edition}randomized{}", + "between {C:attention}X0.1{} and {C:attention}X10{}", + "{C:inactive}(If possible){}", + }, + }, + e_cry_gold = { + name = "Golden", + label = "Golden", + text = { + "Earn {C:money}$#1#{} when used", + "or triggered", + }, + }, + e_cry_m = { + name = "Jolly", + text = { + "{C:mult}+#1#{} Mult", + "This card is feeling", + "rather {C:attention}jolly{}", + }, + }, + e_cry_mosaic = { + name = "Mosaic", + text = { + "{X:chips,C:white} X#1# {} Chips", + }, + }, + e_cry_noisy = { + name = "Noisy", + text = { + "???", + }, + }, + e_cry_oversat = { + name = "Oversaturated", + text = { + "All values", + "on this card", + "are {C:attention}doubled{}", + "{C:inactive}(If possible)", + }, + }, + }, + Enhanced = { + m_cry_echo = { + name = "Echo Card", + text = { + "{C:green}#2# in #3#{} chance to", + "{C:attention}retrigger{} #1# additional", + "times when scored", + }, + }, + m_cry_oil = { + name = "Oil Card", + text = { + "{C:attention}+1{} {C:red}Discard{}", + "when this {C:attention}Card{}", + "is discarded" + }, + }, + }, + Joker = { + j_cry_adroit = { + name = "Adroit Joker", + text = { + "{C:chips}+#1#{} Chips if played", + "hand contains", + "a {C:attention}#2#" + } + }, + j_cry_altgoogol = { + name = "Nostalgic Googol Play Card", + text = { + "Sell this card to create", + "{C:attention}2{} copies of the leftmost {C:attention}Joker{}", + "{C:inactive,s:0.8}Does not copy Nostalgic Googol Play Cards{}", + }, + }, + j_cry_antennastoheaven = { + name = "...Like Antennas to Heaven", + text = { + "This Joker gains", + "{X:chips,C:white} X#1# {} Chips when each", + "played {C:attention}7{} or {C:attention}4{} is scored", + "{C:inactive}(Currently {X:chips,C:white}X#2# {C:inactive} Chips)", + }, + }, + j_cry_apjoker = { + name = "AP Joker", + text = { "{X:mult,C:white} X#1# {} Mult against {C:attention}Boss Blinds{}" }, + }, + j_cry_astral_bottle = { + name = "Astral in a Bottle", + text = { + "When sold, apply {C:dark_edition}Astral{}", + "and {C:attention}Perishable{} to", + "a random {C:attention}Joker{}", + } + }, + j_cry_big_cube = { + name = "Big Cube", + text = { + "{X:chips,C:white} X#1# {} Chips", + }, + }, + j_cry_biggestm = { + name = "Huge", + text = { + "{X:mult,C:white} X#1# {} Mult until end", + "of round if {C:attention}poker hand{}", + "is a {C:attention}#2#{}", + "{C:inactive}(Currently {C:attention}#3#{}{C:inactive}){}", + "{C:inactive,s:0.8}not fat, just big boned.", + }, + }, + j_cry_blacklist = { + name = "Blacklist", + text = { + "If a {C:attention}#1#{} is held in hand or played,", + "set {C:chips}Chips{} and {C:mult}Mult{} to 0", + "{C:red,E:2}self destructs{} if no {C:attention}#1#{} in deck", + "{C:inactive,s:0.8}Rank does not change" + } + }, + j_cry_blender = { + name = "Blender", + text = { + "Create a {C:attention}random{}", + "consumable when a", + "{C:cry_code}Code{} card is used", + "{C:inactive}(Must have room){}", + }, + }, + j_cry_blurred = { + name = "Blurred Joker", + text = { + "Gain {C:blue}+#1#{} hand(s) when", + "{C:attention}Blind{} is selected", + }, + }, + j_cry_bonk = { + name = "Bonk", + text = { + "Each {C:attention}Joker{} gives {C:chips}+#1#{} Chips", + "Increase amount by {C:chips}+#2#{} if", + "{C:attention} poker hand{} is a {C:attention}#3#{}", + "{C:inactive,s:0.8}Jolly Jokers give{} {C:chips,s:0.8}+#4#{} {C:inactive,s:0.8}Chips instead{}", + }, + }, + j_cry_bonkers = { + name = "Bonkers Joker", + text = { + "{C:red}+#1#{} Mult if played", + "hand contains", + "a {C:attention}#2#" + } + }, + j_cry_bonusjoker = { + name = "Bonus Joker", + text = { + "{C:green}#1# in #2#{} chance for each", + "played {C:attention}Bonus{} card to increase", + "{C:attention}Joker{} or {C:attention}Consumable slots", + "by {C:dark_edition}1{} when scored", + "{C:red}Works twice per round", + "{C:inactive,s:0.8}(Equal chance for each){}", + }, + }, + j_cry_booster = { + name = "Booster Joker", + text = { + "{C:attention}+#1#{} Booster Pack slot", + "available in shop", + }, + }, + j_cry_boredom = { + name = "Boredom", + text = { + "{C:green}#1# in #2#{} chance to", + "{C:attention}retrigger{} each {C:attention}Joker{}", + "or {C:attention}played card{}", + "{C:inactive,s:0.8}Does not affect other Boredom{}", + }, + }, + j_cry_brittle = { + name = "Brittle Candy", + text = { + "For the next {C:attention}#1#{} hands,", + "add {C:attention}Stone{}, {C:attention}Gold{}, or {C:attention}Steel{} to", + "the rightmost scoring card" + } + }, + j_cry_bubblem = { + name = "Bubble M", + text = { + "Create a {C:dark_edition}Foil {C:attention}Jolly Joker{}", + "if played hand contains", + "a {C:attention}#1#{}", + "{C:red,E:2}self destructs{}", + }, + }, + j_cry_busdriver = { + name = "Bus Driver", + text = { + "{C:green}#1# in #3#{} chance", + "for {C:mult}+#2#{} Mult", + "{C:green}1 in 4{} chance", + "for {C:mult}-#2#{} Mult", + }, + }, + j_cry_candy_basket = { + name = "Candy Basket", + text = { + "Sell this card to create {C:attention}#1#{} {C:cry_candy}Candies", + "{C:attention}+#2#{} {C:cry_candy}Candy{} every {C:attention}2{} Blinds defeated", + "{C:attention}+#3#{} {C:cry_candy}Candies{} when {C:attention}Boss Blind{} defeated" + } + }, + j_cry_candy_buttons = { + name = "Candy Buttons", + text = { + "The next {C:attention}#1#{} rerolls", + "cost {C:money}$1{}", + } + }, + j_cry_candy_cane = { + name = "Candy Cane", + text = { + "For the next {C:attention}#1#{} rounds,", + "playing cards give {C:money}$#2#", + "when {C:attention}retriggered" + } + }, + j_cry_candy_dagger = { + name = "Candy Dagger", + text = { + "When {C:attention}Blind{} is selected,", + "destroy Joker to the right", + "to create a {C:cry_candy}Candy{}", + } + }, + j_cry_candy_sticks = { + name = "Candy Sticks", + text = { + "Next boss blind's effect isn't active", + "until you've played {C:attention}#1#{} hand", + } + }, + j_cry_canvas = { + name = "Canvas", + text = { + "{C:attention}Retrigger{} all {C:attention}Jokers{} to the left", + "once for {C:attention}every{} non-{C:blue}Common{C:attention} Joker{}", + "to the right of this Joker", + }, + }, + j_cry_caramel = { + name = "Caramel", + text = { + "Each played card gives", + "{X:mult,C:white}X#1#{} Mult when scored", + "for the next {C:attention}#2#{} rounds", + }, + }, + j_cry_chad = { + name = "Chad", + text = { + "Retrigger {C:attention}leftmost{} Joker", + "{C:attention}#1#{} additional time(s)", + }, + }, + j_cry_chili_pepper = { + name = "Chili Pepper", + text = { + "This Joker gains {X:mult,C:white} X#2# {} Mult", + "at end of round,", + "{C:red,E:2}self destructs{} after {C:attention}#3#{} rounds", + "{C:inactive}(Currently{} {X:mult,C:white} X#1# {} {C:inactive}Mult){}", + }, + }, + j_cry_chocolate_dice = { + name = "Chocolate Die", + text = { + "Roll a {C:green}d10{} when", + "{C:attention}Boss Blind{} defeated", + "to start an {C:cry_ascendant,E:1}event", + "{C:inactive}(Currently: #1#)" + }, + }, + j_cry_circulus_pistoris = { + name = "Circulus Pistoris", + text = { + "{X:dark_edition,C:white}^#1#{} Chips and {X:dark_edition,C:white}^#1#{} Mult", + "if {C:attention}exactly{} #2#", + "hands remaining", + }, + }, + j_cry_circus = { + name = "Circus", + text = { + "{C:red}Rare{} Jokers each give {X:mult,C:white} X#1# {} Mult", + "{C:cry_epic}Epic{} Jokers each give {X:mult,C:white} X#2# {} Mult", + "{C:legendary}Legendary{} Jokers each give {X:mult,C:white} X#3# {} Mult", + "{C:cry_exotic}Exotic{} Jokers each give {X:mult,C:white} X#4# {} Mult", + }, + }, + j_cry_clash = { + name = "The Clash", + text = { + "{X:mult,C:white} X#1# {} Mult if played", + "hand contains", + "an {C:attention}#2#", + }, + }, + j_cry_CodeJoker = { + name = "Code Joker", + text = { + "Create a {C:dark_edition}Negative{}", + "{C:cry_code}Code Card{} when", + "{C:attention}Blind{} is selected", + }, + }, + j_cry_coin = { + name = "Crypto Coin", + text = { + "Earn between", + "{C:money}$#1#{} and {C:money}$#2#{} for", + "each Joker {C:attention}sold{}", + }, + }, + j_cry_compound_interest = { + name = "Compound Interest", + text = { + "Earn {C:money}#1#%{} of total money", + "at end of round,", + "increases by {C:money}#2#%{} per", + "consecutive payout", + }, + }, + j_cry_copypaste = { + name = "Copy/Paste", + text = { + "When a {C:cry_code}Code{} card is used,", + "{C:green}#1# in #2#{} chance to add a copy", + "to your consumable area", + "{C:inactive}(Must have room)", + }, + }, + j_cry_cotton_candy = { + name = "Cotton Candy", + text = { + "When sold, adjacent", + "{C:attention}Jokers{} become {C:dark_edition}Negative{}" + }, + }, + j_cry_crustulum = { + name = "Crustulum", + text = { + "This Joker gains {C:chips}+#2#{} Chips", + "per {C:attention}reroll{} in the shop", + "{C:green}All rerolls are free{}", + "{C:inactive}(Currently {C:chips}+#1#{C:inactive} chips)", + }, + }, + j_cry_cryptidmoment = { + name = "M Chain", + text = { + "Sell this card to", + "add {C:money}$#1#{} of {C:attention}sell value{}", + "to every {C:attention}Joker{} card", + }, + }, + j_cry_cube = { + name = "Cube", + text = { + "{C:chips}+#1#{} Chips", + }, + }, + j_cry_curse_sob = { + name = "Sob", + text = { + "{C:edition,E:1}you cannot{} {C:cry_ascendant,E:1}run...{}", + "{C:edition,E:1}you cannot{} {C:cry_ascendant,E:1}hide...{}", + "{C:dark_edition,E:1}you cannot escape...{}", + "{C:inactive}(Must have room){}", + }, + }, + j_cry_cursor = { + name = "Cursor", + text = { + "This Joker gains {C:chips}+#2#{} Chips", + "for each card {C:attention}purchased{}", + "{C:inactive}(Currently {C:chips}+#1#{C:inactive} Chips)", + }, + }, + j_cry_cut = { + name = "Cut", + text = { + "This Joker destroys", + "a random {C:cry_code}Code{} card", + "and gains {X:mult,C:white} X#1# {} Mult", + "at the end of the {C:attention}shop{}", + "{C:inactive}(Currently {X:mult,C:white} X#2# {C:inactive} Mult)", + }, + }, + j_cry_delirious = { + name = "Delirious Joker", + text = { + "{C:red}+#1#{} Mult if played", + "hand contains", + "a {C:attention}#2#" + } + }, + j_cry_discreet = { + name = "Discreet Joker", + text = { + "{C:chips}+#1#{} Chips if played", + "hand contains", + "a {C:attention}#2#" + } + }, + j_cry_doodlem = { + name = "Doodle M", + text = { + "Create 2 {C:dark_edition}Negative{} {C:attention}consumables{}", + "when {C:attention}Blind{} is selected", + "Create 1 more {C:attention}consumable", + "for each {C:attention}Jolly Joker{}", + }, + }, + ["j_cry_Double Scale"] = { + name = "Double Scale", + text = { + "Scaling {C:attention}Jokers{}", + "scale {C:attention}quadratically", + "{C:inactive,s:0.8}(ex. +1, +3, +6, +10)", + "{C:inactive,s:0.8}(grows by +1, +2, +3)", + }, + }, + j_cry_dropshot = { + name = "Dropshot", + text = { + "This Joker gains {X:mult,C:white} X#1# {} Mult for", + "each played, {C:attention}nonscoring{} {V:1}#2#{} card,", + "suit changes every round", + "{C:inactive}(Currently {X:mult,C:white} X#3# {C:inactive} Mult)", + }, + }, + j_cry_dubious = { + name = "Dubious Joker", + text = { + "{C:chips}+#1#{} Chips if played", + "hand contains", + "a {C:attention}#2#" + } + }, + j_cry_duos = { + name = "The Duos", + text = { + "{X:mult,C:white} X#1# {} Mult if played", + "hand contains", + "a {C:attention}#2#", + }, + }, + j_cry_duplicare = { + name = 'Duplicare', + text = { + "This Joker gains {X:mult,C:white} X#2# {} Mult", + "when a {C:attention}Joker{} or", + "playing card is scored", + "{C:inactive}(Currently {X:mult,C:white} X#1# {C:inactive} Mult)", + } + }, + j_cry_effarcire = { + name = "Effarcire", + text = { + "Draw {C:green}full deck{} to hand", + "when {C:attention}Blind{} is selected", + "{C:inactive,s:0.8}\"If you can't handle me at my 1x,", + "{C:inactive,s:0.8}you don't deserve me at my 2x\"", + }, + }, + j_cry_energia = { + name = "Energia", + text = { + "When a {C:attention}Tag{} is acquired,", + "create {C:attention}#1#{} copies of it", + "and {C:attention}increase{} the number of", + "copies by {C:attention}#2#", + }, + }, + j_cry_equilib = { + name = "Ace Aequilibrium", + text = { + "Jokers appear using the", + "order from the {C:attention}Collection{}", + "Create {C:attention}#1#{} {C:dark_edition}Negative{} Joker(s)", + "when hand is played", + "{C:cry_exotic,s:0.8}Exotic {C:inactive,s:0.8}or better Jokers cannot appear", + "{s:0.8}Last Joker Generated: {C:attention,s:0.8}#2#", + }, + }, + j_cry_error = { + name = "{C:red}ERR{}{C:dark_edition}O{}{C:red}R{}", + text = { + "", + }, + }, + j_cry_eternalflame = { + name = "Eternal Flame", + text = { + "This Joker gains {X:mult,C:white} X#1# {} Mult", + "for each card {C:attention}sold{}", + "{C:inactive}(Currently {X:mult,C:white} X#2# {C:inactive} Mult)", + }, + }, + j_cry_exoplanet = { + name = "Exoplanet", + text = { + "{C:dark_edition}Holographic{} cards", + "each give {C:mult}+#1#{} Mult", + }, + }, + j_cry_exponentia = { + name = "Exponentia", + text = { + "This Joker gains {X:dark_edition,C:white} ^#1# {} Mult", + "when {X:red,C:white} XMult {} is triggered", + "{C:inactive}(Currently {X:dark_edition,C:white} ^#2# {C:inactive} Mult)", + }, + }, + j_cry_exposed = { + name = "Exposed", + text = { + "Retrigger all non-{C:attention}face{} cards", + "{C:attention}#1#{} additional time(s)", + "All {C:attention}face{} cards are debuffed", + }, + }, + j_cry_facile = { + name = "Facile", + text = { + "{X:dark_edition,C:white}^#1#{} Mult if", + "played cards are scored", + "{C:attention}#2#{} or fewer times", + }, + }, + j_cry_filler = { + name = "The Filler", + text = { + "{X:mult,C:white} X#1# {} Mult if played", + "hand contains", + "a {C:attention}#2#", + }, + }, + j_cry_fractal = { + name = "Fractal Fingers", + text = { + "{C:attention}+#1#{} card selection limit", + }, + }, + j_cry_flip_side = { + name = "On the Flip Side", + text = { + "{C:dark_edition}Double-Sided{} Jokers use", + "their back side for effects", + "instead of the front side", + "{C:attention}Retrigger{} all {C:dark_edition}Double-Sided{} Jokers" + }, + }, + j_cry_foodm = { + name = "Fast Food M", + text = { + "{C:mult}+#1#{} Mult", + "{C:red,E:2}self destructs{} in {C:attention}#2#{} round(s)", + "Increases by {C:attention}#3#{} round when", + "{C:attention}Jolly Joker{} is {C:attention}sold{}", + "{C:inactive,s:0.8}2 McDoubles, 2 McChickens{}", + "{C:inactive,s:0.8}Large Fries, 20 Piece & Large Cake{}", + }, + }, + j_cry_foolhardy = { + name = "Foolhardy Joker", + text = { + "{C:red}+#1#{} Mult if played", + "hand contains", + "an {C:attention}#2#" + } + }, + j_cry_formidiulosus = { + name = "Formidiulosus", + text = { + "When a {X:cry_cursed,C:white}Cursed{} Joker is obtained, destroy it", + "Creates {C:attention}#1#{} {C:dark_edition}Negative {C:cry_candy}Candies{} at end of shop", + "Gains {X:dark_edition,C:white}^#2#{} Mult for each {C:cry_candy}Candy{} in possession", + "{C:inactive}(Currently {X:dark_edition,C:white}^#3#{C:inactive} Mult)", + }, + }, + j_cry_foxy = { + name = "Foxy Joker", + text = { + "{C:chips}+#1#{} Chips if played", + "hand contains", + "a {C:attention}#2#" + } + }, + j_cry_fspinner = { + name = "Fidget Spinner", + text = { + "This Joker gains {C:chips}+#2#{} Chips", + "if hand played is {C:attention}not{}", + "most played {C:attention}poker hand{}", + "{C:inactive}(Currently {C:chips}+#1#{C:inactive} Chips)", + }, + }, + j_cry_fuckedup = { + name = "Fucked-Up Joker", + text = { + "{C:red}+#1#{} Mult if played", + "hand contains", + "a {C:attention}#2#" + } + }, + j_cry_gardenfork = { + name = "Garden of Forking Paths", + text = { + "Earn {C:money}$#1#{} if {C:attention}played hand{}", + "contains an {C:attention}Ace{} and a {C:attention}7{}", + }, + }, + j_cry_gemino = { + name = "Gemini", + text = { + "{C:attention}Double{} all values", + "of leftmost {C:attention}Joker", + "at end of round", + }, + }, + j_cry_ghost = { + name = "Ghost", + text = { + "At end of round:", + "{C:green}#1# in #2#{} chance to", + "{C:attention}possess{} a random {C:attention}Joker", + "{C:green}#1# in #3#{} chance to", + "{E:2,C:red}self destruct" + } + }, + j_cry_giggly = { + name = "Absurd Joker", + text = { + "{C:red}+#1#{} Mult if played", + "hand contains", + "a {C:attention}#2#" + } + }, + j_cry_goldjoker = { + name = "Gold Joker", + text = { + "Earn {C:money}#1#%{} of total", + "money at end of round", + "Payout increases by {C:money}#2#%{}", + "when each played {C:attention}Gold{}", + "card is scored", + }, + }, + j_cry_googol_play = { + name = "Googol Play Card", + text = { + "{C:green}#1# in #2#{} chance for", + "{X:red,C:white} X#3# {} Mult", + }, + }, + j_cry_happy = { + name = ":D", + text = { + "Create a random {C:attention}Joker{}", + "at end of round", + "Sell this card to", + "create a random {C:attention}Joker{}", + "{C:inactive}(Must have room){}", + }, + }, + j_cry_happyhouse = { + name = "Happy House", + text = { + "{X:dark_edition,C:white}^#1#{} Mult only after", + "playing {C:attention}114{} hands{}", + "{C:inactive}(Currently #2#/114){}", + "{C:inactive,s:0.8}There is no place like home!{}", + }, + }, + j_cry_home = { + name = "The Home", + text = { + "{X:mult,C:white} X#1# {} Mult if played", + "hand contains", + "a {C:attention}#2#", + }, + }, + j_cry_hunger = { + name = "Consume-able", + text = { + "Earn {C:money}$#1#{} when", + "using a {C:attention}consumable{}", + }, + }, + j_cry_iterum = { + name = "Iterum", + text = { + "Retrigger all cards played", + "{C:attention}#2#{} time(s),", + "each played card gives", + "{X:mult,C:white} X#1# {} Mult when scored", + }, + }, + j_cry_jawbreaker = { + name = "Jawbreaker", + text = { + "When {C:attention}Boss Blind{} defeated,", + "{C:attention}double{} values of adjacent Jokers", + "{E:2,C:red}self destructs{}", + } + }, + j_cry_jimball = { + name = "Jimball", + text = { + "This Joker gains {X:mult,C:white} X#1# {} Mult", + "per {C:attention}consecutive{} hand played", + "while playing your", + "most played {C:attention}poker hand", + "{C:inactive}(Currently {X:mult,C:white} X#2# {C:inactive} Mult)", + }, + }, + j_cry_jollysus = { + name = "Jolly Joker?", + text = { + "Create a {C:dark_edition}Jolly{} Joker", + "when a Joker is {C:attention}sold{}", + "{C:red}Works once per round{}", + "{C:inactive}#1#{}", + "{C:inactive,s:0.8}Seems legit...{}", + }, + }, + j_cry_kidnap = { + name = "Kidnapping", + text = { + "Earn {C:money}$#2#{} at end of round", + "Increase payout by {C:money}$#1#{}", + "when a {C:attention}Type Mult{} or", + "{C:attention}Type Chips{} Joker is sold", + }, + }, + j_cry_kooky = { + name = "Kooky Joker", + text = { + "{C:red}+#1#{} Mult if played", + "hand contains", + "a {C:attention}#2#" + } + }, + j_cry_krustytheclown = { + name = "Krusty the Clown", + text = { + "This Joker gains", + "{X:mult,C:white} X#1# {} Mult when", + "each played {C:attention}card{} is scored", + "{C:inactive}(Currently {X:mult,C:white} X#2# {C:inactive} Mult)", + }, + }, + j_cry_kscope = { + name = "Kaleidoscope", + text = { + "Add {C:dark_edition}Polychrome{} to", + "a random {C:attention}Joker{} when", + "{C:attention}Boss Blind{} is defeated", + }, + }, + j_cry_lightupthenight = { + name = "Light Up the Night", + text = { + "Each played {C:attention}7{} or {C:attention}2{}", + "gives {X:mult,C:white}X#1#{} Mult when scored", + }, + }, + j_cry_longboi = { + name = "Monster", + text = { + "Give future copies of", + "this Joker {X:mult,C:white}X#1#{} Mult", + "at end of round", + "{C:inactive}(Currently {X:mult,C:white}X#2#{C:inactive} Mult){}", + }, + }, + j_cry_loopy = { + name = "Loopy", + text = { + "{C:attention}Retrigger{} all Jokers", + "once for each {C:attention}Jolly{}", + "{C:attention}Joker{} sold this round", + "{C:inactive}(Currently{}{C:attention:} #1#{}{C:inactive} Retrigger(s)){}", + "{C:inactive,s:0.8}There wasn't enough room...{}", + }, + }, + j_cry_lucky_joker = { + name = "Lucky Joker", + text = { + "Earn {C:money}$#1#{} every time a", + "{C:attention}Lucky{} card {C:green}successfully{}", + "triggers", + }, + }, + j_cry_luigi = { + name = "Luigi", + text = { + "All Jokers give", + "{X:chips,C:white} X#1# {} Chips", + }, + }, + j_cry_m = { + name = "m", + text = { + "This Joker gains {X:mult,C:white} X#1# {} Mult", + "when {C:attention}Jolly Joker{} is sold", + "{C:inactive}(Currently {X:mult,C:white} X#2# {C:inactive} Mult)", + }, + }, + j_cry_M = { + name = "M", + text = { + "Create a {C:dark_edition}Negative{}", + "{C:attention}Jolly Joker{} when", + "{C:attention}Blind{} is selected", + }, + }, + j_cry_macabre = { + name = "Macabre Joker", + text = { + "When {C:attention}Blind{} is selected,", + "destroys each {C:attention}Joker{} except", + "{C:legendary}M Jokers{} and {C:attention}Jolly Jokers{}", + "and create 1 {C:attention}Jolly Joker{}", + "for each destroyed card", + }, + }, + j_cry_magnet = { + name = "Fridge Magnet", + text = { + "Earn {C:money}$#1#{} at end of round", + "This earns {X:money,C:white} X#2# {} if there are", + "{C:attention}#3#{} or fewer {C:attention}Joker{} cards", + }, + }, + j_cry_manic = { + name = "Manic Joker", + text = { + "{C:red}+#1#{} Mult if played", + "hand contains", + "a {C:attention}#2#" + } + }, + j_cry_mario = { + name = "Mario", + text = { + "Retrigger all Jokers", + "{C:attention}#1#{} additional time(s)", + }, + }, + j_cry_mask = { + name = "Mask", + text = { + "Retrigger all {C:attention}face{} cards", + "{C:attention}#1#{} additional time(s)", + "All non-{C:attention}face{} cards are debuffed", + }, + }, + j_cry_maximized = { + name = "Maximized", + text = { + "All {C:attention}face{} cards", + "are considered {C:attention}Kings{},", + "all {C:attention}numbered{} cards", + "are considered {C:attention}10s{}", + }, + }, + j_cry_maze = { + name = "Labyrinth", + text = { + "All hands are considered the", + "{C:attention}first hand{} of each round,", + "all discards are considered the", + "{C:attention}first discard{} of each round", + }, + }, + j_cry_Megg = { + name = "Megg", + text = { + "Sell this card to create", + "{C:attention}#2#{} Jolly #3#, increase", + "by {C:attention}#1#{} at end of round", + }, + }, + j_cry_mellowcreme = { + name = "Mellowcreme", + text = { + "Sell this card to {C:attention}multiply", + "the sell value of all", + "{C:attention}consumables{} by {C:attention}X#1#" + } + }, + j_cry_membershipcard = { + name = "Membership Card", + text = { + "{X:mult,C:white}X#1#{} Mult for each member", + "in the {C:attention}Cryptid Discord{}", + "{C:inactive}(Currently {X:mult,C:white}X#2#{C:inactive} Mult)", + "{C:blue,s:0.7}https://discord.gg/eUf9Ur6RyB{}", + }, + }, + j_cry_membershipcardtwo = { + name = "Old Membership Card", --Could probably have a diff Name imo + text = { + "{C:chips}+#1#{} Chips for each member", + "in the {C:attention}Cryptid Discord{}", + "{C:inactive}(Currently {C:chips}+#2#{C:inactive} Chips)", + "{C:blue,s:0.7}https://discord.gg/eUf9Ur6RyB{}", + }, + }, + j_cry_meteor = { + name = "Meteor Shower", + text = { + "{C:dark_edition}Foil{} cards each", + "give {C:chips}+#1#{} Chips", + }, + }, + j_cry_mneon = { + name = "Neon M", + text = { + "Earn {C:money}$#2#{} at end of round", + "Increase payout by", + "{C:money}$#1#{} for each {C:attention}Jolly Joker{}", + "or {C:legendary}M Joker{} at", + "end of round", + }, + }, + j_cry_mondrian = { + name = "Mondrian", + text = { + "This Joker gains {X:mult,C:white} X#1# {} Mult", + "if no {C:attention}discards{} were", + "used this round", + "{C:inactive}(Currently {X:mult,C:white} X#2# {C:inactive} Mult)", + }, + }, + j_cry_monkey_dagger = { + name = "Monkey Dagger", + text = { + "When {C:attention}Blind{} is selected,", + "destroy Joker to the left", + "and permanently add {C:attention}ten times{}", + "its sell value to this {C:chips}Chips{}", + "{C:inactive}(Currently {C:chips}+#1#{C:inactive} Chips)", + }, + }, + j_cry_monopoly_money = { + name = "Monopoly Money", + text = { + "{C:green}#1# in #2#{} chance to", + "{C:attention}destroy{} purchased items", + "Halves money when {C:attention}sold", + } + }, + j_cry_morse = { + name = "Morse Code", + text = { + "Earn {C:money}$#2#{} at end of round", + "Increase payout by {C:money}$#1#{} when", + "a card with an {C:attention}Edition{} is sold", + }, + }, + j_cry_mprime = { + name = "Tredecim", + text = { + "Create an {C:legendary}M Joker{} at end of round", + "Each {C:attention}Jolly Joker{} or {C:legendary}M Joker", + "gives {X:dark_edition,C:white}^#1#{} Mult", + "Increase amount by {X:dark_edition,C:white}^#2#{}", + "when a {C:attention}Jolly Joker{} is {C:attention}sold", + "{C:inactive,s:0.8}(Tredecim excluded)", + }, + }, + j_cry_mstack = { + name = "M Stack", + text = { + "Retrigger all cards played", + "once for every", + "{C:attention}#2#{} {C:inactive}[#3#]{} {C:attention}Jolly Jokers{} sold", + "{C:inactive}(Currently{}{C:attention:} #1#{}{C:inactive} retriggers){}", + }, + }, + j_cry_multjoker = { + name = "Mult Joker", + text = { + "{C:green}#1# in #2#{} chance for each", + "played {C:attention}Mult{} card to create", + "a {C:spectral}Cryptid{} card when scored", + "{C:inactive}(Must have room)", + }, + }, + j_cry_necromancer = { + name = "Necromancer", + text = { + "When a Joker is {C:attention}sold{} for a price greater than {C:attention}$0{}", + "Gain a {C:attention}random{} Joker {C:attention}sold{} this run", + "and set its {C:attention}sell value{} to {C:attention}$0{}", + }, + }, + j_cry_negative = { + name = "Negative Joker", + text = { + "{C:dark_edition}+#1#{C:attention} Joker{} slots", + }, + }, + j_cry_nice = { + name = "Nice", + text = { + "{C:chips}+#1#{} Chips if played hand", + "contains a {C:attention}6{} and a {C:attention}9", + "{C:inactive,s:0.8}Nice.{}", + }, + }, + j_cry_night = { + name = "Night", + text = { + "{X:dark_edition,C:white}^#1#{} Mult on final", + "hand of round", + "{E:2,C:red}self destructs{} on", + "final hand of round", + }, + }, + j_cry_nosound = { + name = "No Sound, No Memory", + text = { + "Retrigger each played {C:attention}7{}", + "{C:attention:}#1#{} additional time(s)", + }, + }, + j_cry_notebook = { + name = "Notebook", + text = { + "{C:green} #1# in #2#{} chance to gain {C:dark_edition}+1{} Joker", + "slot per {C:attention}reroll{} in the shop", + "{C:green}Always triggers{} if there are", + "{C:attention}#5#{} or more {C:attention}Jolly Jokers{}", + "{C:red}Works once per round{}", + "{C:inactive}(Currently {C:dark_edition}+#3#{}{C:inactive} and #4#){}", + }, + }, + j_cry_number_blocks = { + name = "Number Blocks", + text = { + "Earn {C:money}$#1#{} at end of round", + "Increase payout by {C:money}$#2#{}", + "for each {C:attention}#3#{} held in hand,", + "rank changes every round", + }, + }, + j_cry_nuts = { + name = "The Nuts", + text = { + "{X:mult,C:white} X#1# {} Mult if played", + "hand contains", + "a {C:attention}#2#", + }, + }, + j_cry_nutty = { + name = "Nutty Joker", + text = { + "{C:red}+#1#{} Mult if played", + "hand contains", + "a {C:attention}#2#" + } + }, + j_cry_oil_lamp = { + name = "Oil Lamp", + text = { + "At the end of round", + "Increase the values of Joker {C:attention}to the right{} by {C:attention}x#1#{}" + }, + }, + j_cry_oldblueprint = { + name = "Old Blueprint", + text = { + "Copies ability of", + "{C:attention}Joker{} to the right", + "{C:green}#1# in #2#{} chance this", + "card is destroyed", + "at end of round", + }, + }, + j_cry_oldcandy = { + name = "Nostalgic Candy", + text = { + "Sell this card to", + "permanently gain", + "{C:attention}+#1#{} hand size", + }, + }, + j_cry_oldinvisible = { + name = "Nostalgic Invisible Joker", + text = { + "{C:attention}Duplicate{} a random", + "{C:attention}Joker{} every {C:attention}4", + "Joker cards sold", + "{s:0.8}Nostalgic Invisible Joker Excluded{}", + "{C:inactive}(Currently #1#/4){}", + }, + }, + j_cry_panopticon = { + name = "Panopticon", + text = { + "All hands are considered the", + "{C:attention}last hand{} of each round", -- +$4 + }, + }, + j_cry_penetrating = { + name = "Penetrating Joker", + text = { + "{C:chips}+#1#{} Chips if played", + "hand contains", + "a {C:attention}#2#" + } + }, + j_cry_pickle = { + name = "Pickle", + text = { + "When {C:attention}Blind{} is skipped, create", + "{C:attention}#1#{} Tags, reduced by", + "{C:red}#2#{} when {C:attention}Blind{} is selected", + }, + }, + j_cry_pirate_dagger = { + name = "Pirate Dagger", + text = { + "When {C:attention}Blind{} is selected,", + "destroy Joker to the right", + "and gain {C:attention}one-fourth{} of", + "its sell value as {X:chips,C:white} XChips {}", + "{C:inactive}(Currently {X:chips,C:white} X#1# {C:inactive} Chips)", + }, + }, + j_cry_pot_of_jokes = { + name = "Pot of Jokes", + text = { + "{C:attention}#1#{} hand size,", + "increases by", + "{C:blue}#2#{} every round", + }, + }, + j_cry_primus = { + name = "Primus", + text = { + "This Joker gains {X:dark_edition,C:white} ^#1# {} Mult", + "if all cards in played hand are", + "{C:attention}Aces{}, {C:attention}2s{}, {C:attention}3s{}, {C:attention}5s{}, or {C:attention}7s{}", + "{C:inactive}(Currently {X:dark_edition,C:white} ^#2# {C:inactive} Mult)", + }, + }, + j_cry_python = { + name = "Python", + text = { + "This Joker gains", + "{X:mult,C:white} X#1# {} Mult when a", + "{C:cry_code}Code{} card is used", + "{C:inactive}(Currently {X:mult,C:white} X#2# {C:inactive} Mult)", + }, + }, + j_cry_queens_gambit = { + name = "Queen's Gambit", + text = { + "If {C:attention}poker hand{} is a", + "{C:attention}Royal Flush{}, destroy scored", + "{C:attention}Queen{} and create a", + "{C:dark_edition}Negative {}{C:red}Rare{}{C:attention} Joker{}", + }, + }, + j_cry_quintet = { + name = "The Quintet", + text = { + "{X:mult,C:white} X#1# {} Mult if played", + "hand contains", + "a {C:attention}#2#", + }, + }, + j_cry_redbloon = { + name = "Red Bloon", + text = { + "Earn {C:money}$#1#{} in {C:attention}#2#{} round(s)", + "{C:red,E:2}self destructs{}", + }, + }, + j_cry_redeo = { + name = "Redeo", + text = { + "{C:attention}-#1#{} Ante when", + "{C:money}$#2#{} {C:inactive}($#3#){} spent", + "{s:0.8}Requirements increase", + "{C:attention,s:0.8}exponentially{s:0.8} per use", + "{C:money,s:0.8}Next increase: {s:1,c:money}$#4#", + }, + }, + j_cry_rescribere = { + name = 'Rescribere', + text = { + "When a {C:attention}Joker{} is sold,", + "add its effects to", + "every other Joker", + "{C:inactive,s:0.8}Does not affect other Rescribere{}" + } + }, + j_cry_reverse = { + name = "Reverse Card", + text = { + "Fill all empty Joker slots {C:inactive}(Max 100){}", + "with {C:dark_edition}Holographic{} {C:attention}Jolly Jokers{} if", + "{C:attention}discarded poker hand{} is a {C:attention}#1#{}", + "{C:red,E:2}self destructs{}", + "{C:inactive,s:0.8}The ULTIMATE comeback{}", + }, + }, + j_cry_rnjoker = { + name = "RNJoker", + text = { + "Randomize abilities each {C:attention}Ante{}", + }, + }, + j_cry_sacrifice = { + name = "Sacrifice", + text = { + "Create an {C:green}Uncommon{} Joker", + "and 3 {C:attention}Jolly Jokers{} when", + "a {C:spectral}Spectral{} card is used", + "{C:red}Works once per round{}", + "{C:inactive}#1#{}", + }, + }, + j_cry_sapling = { + name = "Sapling", + text = { + "After scoring {C:attention}#2#{} {C:inactive}[#1#]{} Enhanced", + "cards, sell this card to", + "create an {C:cry_epic}Epic{} {C:attention}Joker{}", + "{C:inactive,s:0.8}Will create a {C:red,s:0.8}Rare{} {C:attention,s:0.8}Joker{}", + "{C:inactive,s:0.8}if {C:cry_epic,s:0.8}Epic{} {C:inactive,s:0.8}Jokers are disabled{}", + }, + }, + j_cry_savvy = { + name = "Savvy Joker", + text = { + "{C:chips}+#1#{} Chips if played", + "hand contains", + "a {C:attention}#2#" + } + }, + j_cry_Scalae = { + name = "Scalae", + text = { + "Scaling {C:attention}Jokers{} scale", + "as a degree-{C:attention}#1#{} polynomial", + "raise degree by {C:attention}#2#{}", + "at end of round", + "{C:inactive,s:0.8}({C:attention,s:0.8}Scalae{C:inactive,s:0.8} excluded)", + }, + }, + j_cry_scrabble = { + name = "Scrabble Tile", + text = { + "{C:green}#1# in #2#{} chance to create", + "a {C:dark_edition}Jolly {C:green}Uncommon{} Joker", + "when hand is played", + }, + }, + j_cry_seal_the_deal = { + name = "Seal the Deal", + text = { + "Add a {C:attention}random seal{} to each card", + "scored on {C:attention}final hand{} of round", + }, + }, + j_cry_shrewd = { + name = "Shrewd Joker", + text = { + "{C:chips}+#1#{} Chips if played", + "hand contains", + "a {C:attention}#2#" + } + }, + j_cry_silly = { + name = "Silly Joker", + text = { + "{C:red}+#1#{} Mult if played", + "hand contains", + "a {C:attention}#2#" + } + }, + j_cry_smallestm = { + name = "Tiny", + text = { + "Create a {C:cry_jolly}Double M", + "tag if {C:attention}poker hand{}", + "is a {C:attention}#1#{}", + "{C:inactive,s:0.8}ok so basically i'm very smol", + }, + }, + j_cry_soccer = { + name = "One for All", --changed the name from latin because this isn't exotic + text = { + "{C:attention}+#1#{} Joker slot", + "{C:attention}+#1#{} Booster Pack slot", + "{C:attention}+#1#{} hand size", + "{C:attention}+#1#{} consumable slot", + "{C:attention}+#1#{} card in shop", + }, + }, + j_cry_spaceglobe = { + name = "Celestial Globe", + text = { + "This Joker gains {X:chips,C:white}X#2#{} Chips", + "if {C:attention}poker hand{} is a {C:attention}#3#{},", + "Hand changes after increase{}", + "{C:inactive}(Currently{} {X:chips,C:white}X#1#{} {C:inactive}Chips){}", + }, + }, + j_cry_speculo = { + name = "Speculo", + text = { + "Creates a {C:dark_edition}Negative{} copy", + "of a random {C:attention}Joker{}", + "at the end of the {C:attention}shop", + "{C:inactive,s:0.8}Does not copy other Speculo{}", + }, + }, + j_cry_spy = { + name = "Spy", + text = { + "{X:mult,C:white} X#2# {} Mult, {C:dark_edition}+1{C:attention} Joker{} slot", + "{C:inactive}That #1# is a spy!", + }, + }, + j_cry_stardust = { + name = "Stardust", + text = { + "{C:dark_edition}Polychrome{} cards", + "each give {X:mult,C:white}X#1#{} Mult", + }, + }, + j_cry_stella_mortis = { + name = "Stella Mortis", + text = { + "This Joker destroys a", + "random {C:planet}Planet{} card", + "and gains {X:dark_edition,C:white} ^#1# {} Mult", + "at the end of the {C:attention}shop{}", + "{C:inactive}(Currently {X:dark_edition,C:white} ^#2# {C:inactive} Mult)", + }, + }, + j_cry_stronghold = { + name = "The Stronghold", + text = { + "{X:mult,C:white} X#1# {} Mult if played", + "hand contains", + "a {C:attention}#2#", + }, + }, + j_cry_subtle = { + name = "Subtle Joker", + text = { + "{C:chips}+#1#{} Chips if played", + "hand contains", + "a {C:attention}#2#" + } + }, + j_cry_supercell = { + name = "Supercell", + text = { + "{C:chips}+#1#{} Chips, {C:mult}+#1#{} Mult,", + "{X:chips,C:white}X#2#{} Chips, {X:mult,C:white}X#2#{} Mult", + "Earn {C:money}$#3#{} at", + "end of round", + }, + }, + j_cry_sus = { + name = "SUS", + text = { + "At end of round, create", + "a {C:attention}copy{} of a random", + "card {C:attention}held in hand{},", + "destroy all others", + "{C:attention,s:0.8}Kings{s:0.8} of {C:hearts,s:0.8}Hearts{s:0.8} are prioritized", + }, + }, + j_cry_swarm = { + name = "The Swarm", + text = { + "{X:mult,C:white} X#1# {} Mult if played", + "hand contains", + "a {C:attention}#2#", + }, + }, + j_cry_sync_catalyst = { + name = "Sync Catalyst", + text = { + "Balances {C:chips}Chips{} and {C:mult}Mult{}", + "{C:inactive,s:0.8}Hey! I've seen this one before!", + }, + }, + j_cry_tax_fraud = { + name = "Tax Fraud", + text = { + "At the end of round", + "Gain {C:attention}$#1#{} per {C:attention}Rental Joker", + }, + }, + j_cry_tenebris = { + name = "Tenebris", + text = { + "{C:dark_edition}+#1#{C:attention} Joker{} slots", + "Earn {C:money}$#2#{} at end of round", + }, + }, + j_cry_translucent = { + name = "Translucent Joker", + text = { + "Sell this card to create", + "a {C:attention}Banana Perishable{} copy", + "of a random {C:attention}Joker{}", + "{s:0.8,C:inactive}(Copy bypasses perish compat)", + }, + }, + j_cry_treacherous = { + name = "Treacherous Joker", + text = { + "{C:chips}+#1#{} Chips if played", + "hand contains", + "an {C:attention}#2#" + } + }, + j_cry_trick_or_treat = { + name = "Trick-or-Treat", + text = { + "When {C:attention}sold{}:", + "{C:green}#1# in #2#{} chance to create {C:attention}2{} {C:cry_candy}Candies", + "Otherwise, create a {X:cry_cursed,C:white}Cursed{} Joker", + "{C:inactive}(Can overflow)" + } + }, + j_cry_tricksy = { + name = "Tricksy Joker", + text = { + "{C:chips}+#1#{} Chips if played", + "hand contains", + "a {C:attention}#2#" + } + }, + j_cry_triplet_rhythm = { + name = "Triplet Rhythm", + text = { + "{X:mult,C:white} X#1# {} Mult if scoring hand", + "contains {C:attention}exactly{} three {C:attention}3s", + }, + }, + j_cry_tropical_smoothie = { + name = "Tropical Smoothie", + text = { + "Sell this card", + "to {C:attention}multiply{} values", + "of owned jokers by {C:attention}X1.5{}", + }, + }, + j_cry_unity = { + name = "The Unity", + text = { + "{X:mult,C:white} X#1# {} Mult if played", + "hand contains", + "a {C:attention}#2#", + }, + }, + j_cry_universe = { + name = "Universe", + text = { + "{C:dark_edition}Astral{} cards", + "each give {X:dark_edition,C:white}^#1#{} Mult", + }, + }, + j_cry_universum = { + name = "Universum", + text = { + "{C:attention}Poker hands{} gain", + "{X:red,C:white} X#1# {} Mult and {X:blue,C:white} X#1# {} Chips", + "when leveled up", + }, + }, + j_cry_unjust_dagger = { + name = "Unjust Dagger", + text = { + "When {C:attention}Blind{} is selected,", + "destroy Joker to the left", + "and gain {C:attention}one-fifth{} of", + "its sell value as {X:mult,C:white} XMult {}", + "{C:inactive}(Currently {X:mult,C:white} X#1# {C:inactive} Mult)", + }, + }, + j_cry_verisimile = { + name = "Non Verisimile", + text = { + "When any probability", + "is {C:green}successfully{} triggered,", + "this Joker gains {X:red,C:white}XMult{}", + "equal to its listed {C:attention}odds", + "{C:inactive}(Currently {X:mult,C:white} X#1# {C:inactive} Mult)", + }, + }, + j_cry_virgo = { + name = "Virgo", + text = { + "This Joker gains {C:money}$#1#{} of {C:attention}sell value{}", + "if {C:attention}poker hand{} contains a {C:attention}#2#{}", + "Sell this card to create a", + "{C:dark_edition}Polychrome{} {C:attention}Jolly Joker{} for", + "every {C:money}$4{} of {C:attention}sell value{} {C:inactive}(Min 1){}", + }, + }, + j_cry_wacky = { + name = "Wacky Joker", + text = { + "{C:red}+#1#{} Mult if played", + "hand contains", + "a {C:attention}#2#" + } + }, + j_cry_waluigi = { + name = "Waluigi", + text = { + "All Jokers give", + "{X:mult,C:white} X#1# {} Mult", + }, + }, + j_cry_wario = { + name = "Wario", + text = { + "All Jokers give", + "{C:money}$#1#{} when triggered", + }, + }, + j_cry_wee_fib = { + name = "Weebonacci", + text = { + "This Joker gains", + "{C:mult}+#2#{} Mult when each played", + "{C:attention}Ace{}, {C:attention}2{}, {C:attention}3{}, {C:attention}5{}, or {C:attention}8{}", + "is scored", + "{C:inactive}(Currently {C:mult}+#1#{C:inactive} Mult)", + }, + }, + j_cry_weegaming = { + name = "2D", + text = { + "Retrigger each played {C:attention}2{}", --wee gaming + "{C:attention:}#1#{} additional time(s)", --wee gaming? + "{C:inactive,s:0.8}Wee Gaming?{}", + }, + }, + j_cry_wheelhope = { + name = "Wheel of Hope", + text = { + "This Joker gains", + "{X:mult,C:white} X#1# {} Mult when failing", + "a {C:attention}Wheel of Fortune{}", + "{C:inactive}(Currently {X:mult,C:white} X#2# {C:inactive} Mult)", + }, + }, + j_cry_whip = { + name = "The WHIP", + text = { + "This Joker gains {X:mult,C:white} X#1# {} Mult", + "if {C:attention}played hand{} contains a", + "{C:attention}2{} and {C:attention}7{} of different suits", + "{C:inactive}(Currently {X:mult,C:white} X#2# {C:inactive} Mult)", + }, + }, + j_cry_wrapped = { + name = "Wrapped Candy", + text = { + "Create a random {C:attention}Food Joker{}", + "in {C:attention}#1#{} round(s)", + "{C:red,E:2}self destructs{}", + }, + }, + j_cry_wtf = { + name = "The Fuck!?", + text = { + "{X:mult,C:white} X#1# {} Mult if played", + "hand contains", + "a {C:attention}#2#", + }, + }, + }, + Planet = { + c_cry_Klubi = { + name = "Klubi", + text = { + "({V:1}lvl.#4#{})({V:2}lvl.#5#{})({V:3}lvl.#6#{})", + "Level up", + "{C:attention}#1#{},", + "{C:attention}#2#{},", + "and {C:attention}#3#{}", + }, + }, + c_cry_Lapio = { + name = "Lapio", + text = { + "({V:1}lvl.#4#{})({V:2}lvl.#5#{})({V:3}lvl.#6#{})", + "Level up", + "{C:attention}#1#{},", + "{C:attention}#2#{},", + "and {C:attention}#3#{}", + }, + }, + c_cry_Kaikki = { + name = "Kaikki", + text = { + "({V:1}lvl.#4#{})({V:2}lvl.#5#{})({V:3}lvl.#6#{})", + "Level up", + "{C:attention}#1#{},", + "{C:attention}#2#{},", + "and {C:attention}#3#{}", + }, + }, + c_cry_nstar = { + name = "Neutron Star", + text = { + "Upgrade a random", + "poker hand by", + "{C:attention}1{} level for each", + "{C:attention}Neutron Star{} used", + "in this run", + "{C:inactive}(Currently{C:attention} #1#{C:inactive}){}", + }, + }, + c_cry_planetlua = { + name = "Planet.lua", + text = { + "{C:green}#1# in #2#{} chance to", + "upgrade every", + "{C:legendary,E:1}poker hand{}", + "by {C:attention}1{} level", + }, + }, + c_cry_Sydan = { + name = "Sydan", + text = { + "({V:1}lvl.#4#{})({V:2}lvl.#5#{})({V:3}lvl.#6#{})", + "Level up", + "{C:attention}#1#{},", + "{C:attention}#2#{},", + "and {C:attention}#3#{}", + }, + }, + c_cry_Timantti = { + name = "Timantti", + text = { + "({V:1}lvl.#4#{})({V:2}lvl.#5#{})({V:3}lvl.#6#{})", + "Level up", + "{C:attention}#1#{},", + "{C:attention}#2#{},", + "and {C:attention}#3#{}", + }, + }, + c_cry_marsmoons = { + name = 'Phobos & Deimos', + text = { + "{S:0.8}({S:0.8,V:1}lvl.#1#{S:0.8}){} Level up", + "{C:attention}#2#", + "{C:mult}+#3#{} Mult and", + "{C:chips}+#4#{} chips" + } + }, + c_cry_void = { + name = 'Void', + text = { + "{S:0.8}({S:0.8,V:1}lvl.#1#{S:0.8}){} Level up", + "{C:attention}#2#", + "{C:mult}+#3#{} Mult and", + "{C:chips}+#4#{} chips" + } + }, + c_cry_asteroidbelt = { + name = 'Asteroid Belt', + text = { + "{S:0.8}({S:0.8,V:1}lvl.#1#{S:0.8}){} Level up", + "{C:attention}#2#", + "{C:mult}+#3#{} Mult and", + "{C:chips}+#4#{} chips" + } + }, + c_cry_universe = { + name = 'The Universe In Its Fucking Entirety', + text = { + "{S:0.8}({S:0.8,V:1}lvl.#1#{S:0.8}){} Level up", + "{C:attention}#2#", + "{C:mult}+#3#{} Mult and", + "{C:chips}+#4#{} chips" + } + }, + }, + Sleeve = { + sleeve_cry_ccd_sleeve = { + name = "CCD Sleeve", + text = { + "Every card is also", + "a {C:attention}random{} consumable", + }, + }, + sleeve_cry_conveyor_sleeve = { + name = "Conveyor Sleeve", + text = { + "Jokers may {C:attention}not{} be moved", + "At start of round,", + "{C:attention}duplicate{} rightmost Joker", + "and {C:attention}destroy{} leftmost Joker", + }, + }, + sleeve_cry_critical_sleeve = { + name = "Critical Sleeve", + text = { + "After each hand played,", + "{C:green}1 in 4{} chance for {X:dark_edition,C:white} ^2 {} Mult", + "{C:green}1 in 8{} chance for {X:dark_edition,C:white} ^0.5 {} Mult", + }, + }, + sleeve_cry_encoded_sleeve = { + name = "Encoded Sleeve", + text = { + "Start with a {C:cry_code,T:j_cry_CodeJoker}Code Joker{}", + "and a {C:cry_code,T:j_cry_copypaste}Copy/Paste{}", + "Only {C:cry_code}Code Cards{} appear in shop", + }, + }, + sleeve_cry_equilibrium_sleeve = { + name = "Balanced Sleeve", + text = { + "All cards have the", + "{C:attention}same chance{} of", + "appearing in shops,", + "start run with", + "{C:attention,T:v_overstock_plus}+2 Shop Slots", + }, + }, + sleeve_cry_infinite_sleeve = { + name = "Unlimited Sleeve", + text = { + "You can select {C:attention}any", + "number of cards", + --someone do the hand size thing for me + }, + }, + sleeve_cry_misprint_sleeve = { + name = "Misprinted Sleeve", + text = { + "Values of cards", + "are {C:attention}randomized", + }, + }, + sleeve_cry_redeemed_sleeve = { + name = "Redeemed Sleeve", + text = { + "When a {C:attention}Voucher{} is purchased,", + "gain its {C:attention}extra tiers", + }, + }, + sleeve_cry_wormhole_sleeve = { + name = "Wormhole Sleeve", + text = { + "Start with an {C:cry_exotic}Exotic{C:attention} Joker", + "Jokers are {C:attention}20X{} more", + "likely to be {C:dark_edition}Negative", + "{C:attention}-2{} Joker slots", + }, + }, + sleeve_cry_legendary_sleeve = { + name = "Legendary Sleeve", + text = { + "Start with an {C:legendary}Legendary{C:legendary} Joker", + "{C:green}1 in 5{} chance to create another", + "when Boss Blind is defeated {C:inactive}(must have room){}", + }, + }, + }, + Spectral = { + c_cry_adversary = { + name = "Adversary", + text = { + "{C:red}All{} of your {C:attention}Jokers{} become {C:dark_edition}Negative{},", + "{C:red}all{} {C:attention}Jokers{} in the shop cost", + "{C:red}double{} for the rest of the run", + }, + }, + c_cry_analog = { + name = "Analog", + text = { + "Create {C:attention}#1#{} copies of a", + "random {C:attention}Joker{}, destroy", + "all other Jokers, {C:attention}+#2#{} Ante", + }, + }, + c_cry_chambered = { + name = "Chambered", + text = { + "Create {C:attention}#1#{} {C:dark_edition}Negative{}", + "copies of a", + "{C:attention}random{} consumable", + "{C:inactive,s:0.8}Does not copy Chambered{}" + }, + }, + c_cry_conduit = { + name = "Conduit", + text = { + "Swap the {C:attention}editions{} of", + "{C:attention}2{} selected cards or {C:attention}Jokers{}", + }, + }, + c_cry_gateway = { + name = "Gateway", + text = { + "Create a random", + "{C:cry_exotic,E:1}Exotic{C:attention} Joker{}, destroy", + "all other Jokers", + }, + }, + c_cry_hammerspace = { + name = "Hammerspace", + text = { + "Apply random {C:attention}consumables{}", + "as if they were {C:dark_edition}Enhancements{}", + "to cards held in hand", + }, + }, + c_cry_lock = { + name = "Lock", + text = { + "Remove {C:red}all{} stickers", + "from {C:red}all{} Jokers,", + "then apply {C:purple,E:1}Eternal{}", + "to a random {C:attention}Joker{}", + }, + }, + c_cry_pointer = { + name = "POINTER://", + text = { + "Create a card", + "of {C:cry_code}your choice", + "{C:inactive,s:0.8}(Exotic Jokers #1#excluded)", + }, + }, + c_cry_replica = { + name = "Replica", + text = { + "Convert all cards", + "held in hand", + "to a {C:attention}random{}", + "card held in hand", + }, + }, + c_cry_ritual = { + name = "Ritual", + text = { + "Apply {C:dark_edition}Negative{}, {C:dark_edition}Mosaic{},", + "or {C:dark_edition}Astral{} to {C:attention}#1#{}", + "selected card in hand", + }, + }, + c_cry_source = { + name = "Source", + text = { + "Add a {C:cry_code}Green Seal{}", + "to {C:attention}#1#{} selected", + "card in your hand", + }, + }, + c_cry_summoning = { + name = "Summoning", + text = { + "Create a random", + "{C:cry_epic}Epic{} {C:joker}Joker{}, destroy", + "one random {C:joker}Joker{}", + }, + }, + c_cry_trade = { + name = "Trade", + text = { + "{C:attention}Lose{} a random Voucher,", + "gain {C:attention}2{} random Vouchers", + }, + }, + c_cry_typhoon = { + name = "Typhoon", + text = { + "Add an {C:cry_azure}Azure Seal{}", + "to {C:attention}#1#{} selected", + "card in your hand", + }, + }, + c_cry_vacuum = { + name = "Vacuum", + text = { + "Removes {C:red}all {C:green}modifications{}", + "from {C:red}all{} cards held in hand,", + "Earn {C:money}$#1#{} per {C:green}modification{} removed", + "{C:inactive,s:0.7}(ex. Enhancements, Seals, Editions)", + }, + }, + c_cry_white_hole = { + name = "White Hole", + text = { + "{C:attention}Remove{} all hand levels,", + "upgrade {C:legendary,E:1}most played{} poker hand", + "by {C:attention}3{} for each removed level", + }, + }, + }, + Stake = { + stake_cry_pink = { + name = "Pink Stake", + colour = "Pink", --this is used for auto-generated sticker localization + text = { + "Required score scales", + "faster for each {C:attention}Ante", + }, + }, + stake_cry_brown = { + name = "Brown Stake", + colour = "Brown", + text = { + "All {C:attention}stickers{} are compatible", + "with each other", + }, + }, + stake_cry_yellow = { + name = "Yellow Stake", + colour = "Yellow", + text = { + "{C:attention}Stickers{} can appear on", + "all purchasable items", + }, + }, + stake_cry_jade = { + name = "Jade Stake", + colour = "Jade", + text = { + "Cards can be drawn {C:attention}face down{}", + }, + }, + stake_cry_cyan = { + name = "Cyan Stake", + colour = "Cyan", + text = { + "{C:green}Uncommon{} and {C:red}Rare{} Jokers are", + "less likely to appear", + }, + }, + stake_cry_gray = { + name = "Gray Stake", + colour = "Gray", + text = { + "Rerolls increase by {C:attention}$2{} each", + }, + }, + stake_cry_crimson = { + name = "Crimson Stake", + colour = "Crimson", + text = { + "Vouchers restock on {C:attention}even{} Antes", + }, + }, + stake_cry_diamond = { + name = "Diamond Stake", + colour = "Diamond", + text = { + "Must beat Ante {C:attention}10{} to win", + }, + }, + stake_cry_amber = { + name = "Amber Stake", + colour = "Amber", + text = { + "{C:attention}-1{} Booster Pack slot", + }, + }, + stake_cry_bronze = { + name = "Bronze Stake", + colour = "Bronze", + text = { + "Vouchers are {C:attention}50%{} more expensive", + }, + }, + stake_cry_quartz = { + name = "Quartz Stake", + colour = "Quartz", + text = { + "Jokers can be {C:attention}Pinned{}", + "{s:0.8,C:inactive}(Stays pinned to the leftmost position){}", + }, + }, + stake_cry_ruby = { + name = "Ruby Stake", + colour = "Ruby", + text = { + "{C:attention}Big{} Blinds can become", + "{C:attention}Boss{} Blinds", + }, + }, + stake_cry_glass = { + name = "Glass Stake", + colour = "Glass", + text = { + "Cards can {C:attention}shatter{} when scored", + }, + }, + stake_cry_sapphire = { + name = "Sapphire Stake", + colour = "Sapphire", + text = { + "Lose {C:attention}25%{} of current money", + "at end of Ante", + "{s:0.8,C:inactive}(Up to $10){}", + }, + }, + stake_cry_emerald = { + name = "Emerald Stake", + colour = "Emerald", + text = { + "Cards, packs, and vouchers", + "can be {C:attention}face down{}", + "{s:0.8,C:inactive}(Unable to be viewed until purchased){}", + }, + }, + stake_cry_platinum = { + name = "Platinum Stake", + colour = "Platinum", + text = { + "Small Blinds are {C:attention}removed{}", + }, + }, + stake_cry_twilight = { + name = "Twilight Stake", + colour = "Twilight", + text = { + "Cards can be {C:attention}Banana{}", + "{s:0.8,C:inactive}(1 in 10 chance of being destroyed each round){}", + }, + }, + stake_cry_verdant = { + name = "Verdant Stake", + colour = "Verdant", + text = { + "Required score scales", + "faster for each {C:attention}Ante", + }, + }, + stake_cry_ember = { + name = "Ember Stake", + colour = "Ember", + text = { + "All items give no money when sold", + }, + }, + stake_cry_dawn = { + name = "Dawn Stake", + colour = "Dawn", + text = { + "Tarots and Spectrals target {C:attention}1", + "fewer card", + "{s:0.8,C:inactive}(Minimum of 1){}", + }, + }, + stake_cry_horizon = { + name = "Horizon Stake", + colour = "Horizon", + text = { + "When blind selected, add a", + "{C:attention}random card{} to deck", + }, + }, + stake_cry_blossom = { + name = "Blossom Stake", + colour = "Blossom", + text = { + "{C:attention}Final{} Boss Blinds can appear", + "in {C:attention}any{} Ante", + }, + }, + stake_cry_azure = { + name = "Azure Stake", + colour = "Azure", + text = { + "Values on Jokers are reduced", + "by {C:attention}20%{}", + }, + }, + stake_cry_ascendant = { + name = "Ascendant Stake", + colour = "Ascendant", + text = { + "{C:attention}-1{} Shop slot", + }, + }, + }, + Tag = { + tag_cry_astral = { + name = "Astral Tag", + text = { + "Next base edition shop", + "Joker is free and", + "becomes {C:dark_edition}Astral{}", + }, + }, + tag_cry_banana = { + name = "Banana Tag", + text = { + "Creates {C:attention}#1#", + "{C:inactive}(Must have room){}", + }, + }, + tag_cry_bettertop_up = { + name = "Better Top-up Tag", + text = { + "Creates up to {C:attention}#1#", + "{C:green}Uncommon{} Jokers", + "{C:inactive}(Must have room){}", + }, + }, + tag_cry_better_voucher = { + name = "Golden Voucher Tag", + text = { + "Adds one Tier {C:attention}#1#{} Voucher", + "to the next shop", + }, + }, + tag_cry_blur = { + name = "Blurred Tag", + text = { + "Next base edition shop", + "Joker is free and", + "becomes {C:dark_edition}Blurred{}", + }, + }, + tag_cry_booster = { + name = "Booster Tag", + text = { + "Next {C:cry_code}Booster Pack{} has", + "{C:attention}double{} cards and", + "{C:attention}double{} choices", + }, + }, + tag_cry_bundle = { + name = "Bundle Tag", + text = { + "Create a {C:attention}Standard Tag{}, {C:tarot}Charm Tag{},", + "{C:attention}Buffoon Tag{}, and {C:planet}Meteor Tag", + }, + }, + tag_cry_cat = { + name = "Cat Tag", + text = { "Meow.", "{C:inactive}Level {C:dark_edition}#1#" }, + }, + tag_cry_console = { + name = "Console Tag", + text = { + "Gives a free", + "{C:cry_code}Program Pack", + }, + }, + tag_cry_double_m = { + name = "Double M Tag", + text = { + "Shop has a", + "{C:dark_edition}Jolly {C:legendary}M Joker{}", + }, + }, + tag_cry_empowered = { + name = "Empowered Tag", + text = { + "Gives a free {C:spectral}Spectral Pack", + "with {C:legendary,E:1}The Soul{} and {C:cry_exotic,E:1}Gateway{}", + }, + }, + tag_cry_epic = { + name = "Epic Tag", + text = { + "Shop has a half-price", + "{C:cry_epic}Epic Joker", + }, + }, + tag_cry_gambler = { + name = "Gambler's Tag", + text = { + "{C:green}#1# in #2#{} chance to create", + "an {C:cry_exotic,E:1}Empowered Tag", + }, + }, + tag_cry_glass = { + name = "Fragile Tag", + text = { + "Next base edition shop", + "Joker is free and", + "becomes {C:dark_edition}Fragile{}", + }, + }, + tag_cry_glitched = { + name = "Glitched Tag", + text = { + "Next base edition shop", + "Joker is free and", + "becomes {C:dark_edition}Glitched{}", + }, + }, + tag_cry_gold = { + name = "Golden Tag", + text = { + "Next base edition shop", + "Joker is free and", + "becomes {C:dark_edition}Golden{}", + }, + }, + tag_cry_gourmand = { + name = "Gourmand Tag", + text = { + "Shop has a free", + "{C:attention}Food Joker", + }, + }, + tag_cry_loss = { + name = "Loss", + text = { + "Gives a free", + "{C:cry_ascendant}Meme Pack", + }, + }, + tag_cry_m = { + name = "Jolly Tag", + text = { + "Next base edition shop", + "Joker is free and", + "becomes {C:dark_edition}Jolly{}", + }, + }, + tag_cry_memory = { + name = "Memory Tag", + text = { + "Create {C:attention}#1#{} copies of", + "the last {C:attention}Tag{} used", + "during this run", + "{s:0.8,C:inactive}Copying Tags excluded", + "{s:0.8,C:inactive}Currently: {s:0.8,C:attention}#2#", + }, + }, + tag_cry_mosaic = { + name = "Mosaic Tag", + text = { + "Next base edition shop", + "Joker is free and", + "becomes {C:dark_edition}Mosaic{}", + }, + }, + tag_cry_oversat = { + name = "Oversaturated Tag", + text = { + "Next base edition shop", + "Joker is free and", + "becomes {C:dark_edition}Oversaturated{}", + }, + }, + tag_cry_quadruple = { + name = "Quadruple Tag", + text = { + "Gives {C:attention}#1#{} copies of the", + "next selected {C:attention}Tag", + "{s:0.8,C:inactive}Copying Tags excluded", + }, + }, + tag_cry_quintuple = { + name = "Quintuple Tag", + text = { + "Gives {C:attention}#1#{} copies of the", + "next selected {C:attention}Tag", + "{s:0.8,C:inactive}Copying Tags excluded", + }, + }, + tag_cry_rework = { + name = "Rework Tag", + text = { + "Shop has a(n)", + "{C:dark_edition}#1# {C:cry_code}#2#", + }, + }, + tag_cry_schematic = { + name = "Schematic Tag", + text = { + "Shop has a", + "{C:attention}Brainstorm", + }, + }, + tag_cry_scope = { + name = "Scope Tag", + text = { + "{C:attention}+#1# {C:blue}hands{} and", + "{C:red}discards{} next round", + }, + }, + tag_cry_triple = { + name = "Triple Tag", + text = { + "Gives {C:attention}#1#{} copies of the", + "next selected {C:attention}Tag", + "{s:0.8,C:inactive}Copying Tags excluded", + }, + }, + }, + Tarot = { + c_cry_automaton = { + name = "The Automaton", + text = { + "Creates up to {C:attention}#1#", + "random {C:cry_code}Code{} card", + "{C:inactive}(Must have room)", + }, + }, + c_cry_eclipse = { + name = "The Eclipse", + text = { + "Enhances {C:attention}#1#{} selected card", + "into an {C:attention}Echo Card", + }, + }, + c_cry_meld = { + name = "Meld", + text = { + "Select a {C:attention}Joker{} or", + "{C:attention}playing card{} to", + "become {C:dark_edition}Double-Sided", + }, + }, + c_cry_theblessing = { + name = "The Blessing", + text = { + "Creates {C:attention}1{}", + "random {C:attention}consumable{}", + "{C:inactive}(Must have room){}", + }, + }, + }, + Voucher = { + v_cry_asteroglyph = { + name = "Asteroglyph", + text = { + "Set Ante to {C:attention}#1#{}", + }, + }, + v_cry_blankcanvas = { + name = "Blank Canvas", + text = { + "{C:attention}+#1#{} hand size", + }, + }, + v_cry_clone_machine = { + name = "Clone Machine", + text = { + "Double Tags become", + "{C:attention}Quintuple Tags{} and", + "are {C:attention}4X{} as common", + }, + }, + v_cry_command_prompt = { + name = "Command Prompt", + text = { + "{C:cry_code}Code{} cards", + "can appear", + "in the {C:attention}shop{}", + }, + }, + v_cry_copies = { + name = "Copies", + text = { + "Double Tags become", + "{C:attention}Triple Tags{} and are", + "{C:attention}2X{} as common", + }, + }, + v_cry_curate = { + name = "Curate", + text = { + "All cards", + "appear with", + "an {C:dark_edition}Edition{}", + }, + }, + v_cry_dexterity = { + name = "Dexterity", + text = { + "Permanently", + "gain {C:blue}+#1#{} hand(s)", + "each round", + }, + }, + v_cry_double_down = { + name = "Double Down", + text = { + "After every round,", + "{X:dark_edition,C:white} X1.5 {} to all values", + "on the back of", + "{C:dark_edition}Double-Sided{} cards" + }, + }, + v_cry_double_slit = { + name = "Double Slit", + text = { + "{C:attention}Meld{} can appear", + "in the shop and", + "Arcana Packs", + }, + }, + v_cry_double_vision = { + name = "Double Vision", + text = { + "{C:dark_edition}Double-Sided{} cards appear", + "{C:attention}4X{} more frequently", + }, + }, + v_cry_fabric = { + name = "Universal Fabric", + text = { + "{C:dark_edition}+#1#{} Joker slot(s)", + }, + }, + v_cry_massproduct = { + name = "Mass Production", + text = { + "All cards and packs", + "in shop cost {C:attention}$1{}", + }, + }, + v_cry_moneybean = { + name = "Money Beanstalk", + text = { + "Raise the cap on", + "interest earned in", + "each round to {C:money}$#1#{}", + }, + }, + v_cry_overstock_multi = { + name = "Multistock", + text = { + "{C:attention}+#1#{} card slot(s) and", + "{C:attention}+#1#{} booster pack slot(s)", + "available in shop", + }, + }, + v_cry_pacclimator = { + name = "Planet Acclimator", + text = { + "{C:planet}Planet{} cards appear", + "{C:attention}X#1#{} more frequently", + "in the shop", + "All future {C:planet}Planet{}", + "cards are {C:green}free{}", + }, + }, + v_cry_pairamount_plus = { + name = "Pairamount Plus", + text = { + "{C:attention}Retrigger{} all M Jokers", + "once for every Pair", + "{C:attention}contained{} in played hand", + }, + }, + v_cry_pairing = { + name = "Pairing", + text = { + "{C:attention}Retrigger{} all M Jokers", + "if played hand is a {C:attention}Pair", + }, + }, + v_cry_quantum_computing = { + name = "Quantum Computing", + text = { + "{C:cry_code}Code{} cards can spawn", + "with {C:dark_edition}Negative{} edition", + }, + }, + v_cry_repair_man = { + name = "Repair Man", + text = { + "{C:attention}Retrigger{} all M Jokers", + "if played hand contains a {C:attention}Pair", + }, + }, + v_cry_rerollexchange = { + name = "Reroll Exchange", + text = { + "All rerolls", + "cost {C:attention}$2{}", + }, + }, + v_cry_satellite_uplink = { + name = "Satellite Uplink", + text = { + "{C:cry_code}Code{} cards may", + "appear in any of", + "the {C:attention}Celestial Packs{}", + }, + }, + v_cry_scope = { + name = "Galactic Scope", + text = { + "Create the {C:planet}Planet", + "card for played", + "{C:attention}poker hand{}", + "{C:inactive}(Must have room){}", + }, + }, + v_cry_tacclimator = { + name = "Tarot Acclimator", + text = { + "{C:tarot}Tarot{} cards appear", + "{C:attention}X#1#{} more frequently", + "in the shop", + "All future {C:tarot}Tarot{}", + "cards are {C:green}free{}", + }, + }, + v_cry_tag_printer = { + name = "Tag Printer", + text = { + "Double Tags become", + "{C:attention}Quadruple Tags{} and", + "are {C:attention}3X{} as common", + }, + }, + v_cry_threers = { + name = "The 3 Rs", + text = { + "Permanently", + "gain {C:red}+#1#{} discard(s)", + "each round", + }, + }, + v_cry_stickyhand = { + name = "Sticky Hand", + text = { + "{C:attention}+#1#{} card selection limit", + }, + }, + v_cry_grapplinghook = { + name = "Grappling Hook", + text = { + "{C:attention}+#1#{} card selection limit", + "{C:inactive,s:0.7}You can do a lot more with this than you think.{}", + }, + }, + v_cry_hyperspacetether = { + name = "Hyperspace Tether", + text = { + "{C:attention}+#1#{} card selection limit", + "{C:inactive,s:0.7}NOTE: Will have extra functionality later{}", + }, + }, + }, + Other = { + banana = { + name = "Banana", + text = { + "{C:green}#1# in #2#{} chance of being", + "destroyed each round", + }, + }, + cry_rigged = { + name = "Rigged", + text = { + "All {C:cry_code}listed{} probabilities", + "are {C:cry_code}guaranteed", + }, + }, + cry_hooked = { + name = "Hooked", + text = { + "When this Joker is {C:cry_code}triggered{},", + "trigger {C:cry_code}#1#", + }, + }, + cry_flickering = { + name = "Flickering", + text = { + "Destroyed after", + "{C:attention}#1#{} triggers", + "{C:inactive}({C:attention}#2#{C:inactive} remaining)" + }, + }, + cry_flickering_desc = { --used by choco dice + name = "Flickering", + text = { + "Destroyed after", + "{C:attention}#1#{} triggers", + }, + }, + cry_possessed = { + name = "Possessed", + text = { + "{C:attention}Disables{} and {C:attention}reverses{}", + "effects, if possible", + "Destroyed along with {C:attention}Ghost" + }, + }, + --todo? add candy jokers to list + food_jokers = { + name = "Food Jokers", + text = { + "{s:0.8}Gros Michel, Egg, Ice Cream, Cavendish,", + "{s:0.8}Turtle Bean, Diet Cola, Popcorn, Ramen,", + "{s:0.8}Seltzer, Pickle, Chili Pepper, Caramel,", + "{s:0.8}Nostalgic Candy, Fast Food M, etc.", + }, + }, + ev_cry_choco0 = { + name = "", + text = { + "Details of an active", + "{C:cry_ascendant,E:1}event{} will appear here" + } + }, + ev_cry_choco1 = { + name = "1: Possession", + text = { + "{C:attention}Jokers{} and playing cards have a", + "{C:green}1 in 3{} chance of gaining Flickering", + "Create a {C:attention}Ghost", + "{C:inactive,s:0.7}You've been possessed by a ghost, and your", + "{C:inactive,s:0.7}consciousness is flickering in and out." + } + }, + ev_cry_choco2 = { + name = "2: Haunted House", + text = { + "Prevents skipping {C:attention}Blind{}", + "One {C:attention}reroll{} allowed per shop", + "{C:attention}Voucher{} prices are doubled", + "{C:inactive,s:0.7}Spooky spirits have taken over! Don't touch", + "{C:inactive,s:0.7}anything and get out as soon as possible!", + } + }, + ev_cry_choco3 = { + name = "3: Witch's Brews", + text = { + "Create 3 {C:attention}Potions", + "Use one by the end of the {C:attention}Small Blind{},", + "or {C:attention}all{} maluses will be applied this {C:attention}Ante", + "{C:inactive,s:0.7}You have been kidnapped by a witch!", + "{C:inactive,s:0.7}She offers you three potions, watching you closely.", + "{C:inactive,s:0.7}Pick one, lest she makes the decision for you.", + } + }, + ev_cry_choco4 = { + name = "4: Lunar Abyss", + text = { + "Played cards have a {C:green}1 in 4{} chance", + "to turn into a random {C:club}Club{} face card", + "Divide {C:attention}Mult{} by number of played face cards", + "{C:inactive,s:0.7}Even a man who's pure at heart", + "{C:inactive,s:0.7}and says his prayers by night..." + } + }, + ev_cry_choco5 = { + name = "5: Bloodsucker", + text = { + "Remove {C:attention}Enhancements{} from all played cards", + "{C:green}1 in 3{} chance to destroy", + "{C:heart}Heart{} and {C:diamond}Diamond{} cards", + "{C:inactive,s:0.7}Be wary in the dead of night, for", + "{C:inactive,s:0.7,E:1}they in the shadows{C:inactive,s:0.7} seek to quench their thirst..." + } + }, + ev_cry_choco6 = { + name = "6: Please Take One", + text = { + "At {C:attention}end of round{}, open a", + "random {C:attention}Booster{} Pack", + "{C:inactive,s:0.7}As you stroll down the streets, you spot a", + "{C:inactive,s:0.7}box of various Booster Packs. Might as well grab one!" + } + }, + ev_cry_choco7 = { + name = "7: Festive Atmosphere", + text = { + "Create 3 {C:attention}Trick-or-Treat{} and 1 {C:attention}Candy Basket", + "Shops have a {C:attention}Trick-or-Treat{} each round", + "{C:cry_candy}Candies{} give {C:money}$3{} when obtained", + "{C:inactive,s:0.7}The entire neighbourhood is decorated for spooky endeavours,", + "{C:inactive,s:0.7}come indulge in the festive atmosphere!" + } + }, + ev_cry_choco8 = { + name = "8: Candy Rain", + text = { + "When {C:attention}Blind{} defeated, obtain 1 {C:cry_candy}Candy{}", + "per hand remaining; Obtain a {C:attention}Food Joker{}", + "when a {C:cry_candy}Candy{} is generated", + "{C:inactive,s:0.7}Candies rain from the sky! Quick,", + "{C:inactive,s:0.7,E:1}grab as much as you can!" + } + }, + ev_cry_choco9 = { + name = "9: Ghostly Riches", + text = { + "Gain {C:money}$20", + "All {C:money}money{} earned is {C:attention}doubled", + "{C:inactive,s:0.7}The spectre of a long-gone relative of yours", + "{C:inactive,s:0.7}visits you in the middle of the night!", + "{C:inactive,s:0.7}Without a word, they place a bag of money in your hands,", + "{C:inactive,s:0.7}smile warmly, and wave as they fade into the air.", + } + }, + ev_cry_choco10 = { + name = "10: Revered Antique", + text = { + "A {C:legendary}Legendary{} {C:attention}Joker{} appears", + "in the {C:attention}Voucher{} slot for {C:money}$50", + "Only buyable as {C:attention}last{} item in shop", + "{C:inactive,s:0.7}You've attracted the attention of a relic's spirit,", + "{C:inactive,s:0.7}but it won't be easy to quell.", + } + }, + cry_https_disabled = { + name = "M", + text = { + "{C:attention,s:0.7}Updating{s:0.7} is disabled by default ({C:attention,s:0.7}HTTPS Module{s:0.7})", + }, + }, + --i am so sorry for this + --actually some of this needs to be refactored at some point + cry_eternal_booster = { + name = "Eternal", + text = { + "All cards in pack", + "are {C:attention}Eternal{}", + }, + }, + cry_perishable_booster = { + name = "Perishable", + text = { + "All cards in pack", + "are {C:attention}Perishable{}", + }, + }, + cry_rental_booster = { + name = "Rental", + text = { + "All cards in pack", + "are {C:attention}Rental{}", + }, + }, + cry_pinned_booster = { + name = "Pinned", + text = { + "All cards in pack", + "are {C:attention}Pinned{}", + }, + }, + cry_banana_booster = { + name = "Banana", + text = { + "All cards in pack", + "are {C:attention}Banana{}", + }, + }, + cry_eternal_voucher = { + name = "Eternal", + text = { + "Can't be traded", + }, + }, + cry_perishable_voucher = { + name = "Perishable", + text = { + "Debuffed after", + "{C:attention}#1#{} rounds", + "{C:inactive}({C:attention}#2#{C:inactive} remaining)", + }, + }, + cry_rental_voucher = { + name = "Rental", + text = { + "Lose {C:money}$#1#{} at", + "end of round", + }, + }, + cry_pinned_voucher = { + name = "Pinned", + text = { + "Remains in shop", + "until redeemed", + }, + }, + cry_banana_voucher = { + name = "Banana", + text = { + "{C:green}#1# in #2#{} chance of being", + "unredeemed each round", + }, + }, + cry_perishable_consumeable = { + name = "Perishable", + text = { + "Debuffed at", + "end of round", + }, + }, + cry_rental_consumeable = { + name = "Rental", + text = { + "Lose {C:money}$#1#{} at end of", + "round, and on use", + }, + }, + cry_pinned_consumeable = { + name = "Pinned", + text = { + "Can't use other", + "non-{C:attention}Pinned{} consumables", + }, + }, + cry_banana_consumeable = { + name = "Banana", + text = { + "{C:green}#1# in #2#{} chance to do", + "nothing on use", + }, + }, + p_cry_code_normal_1 = { + name = "Program Pack", + text = { + "Choose {C:attention}#1#{} of up to", + "{C:attention}#2#{C:cry_code} Code{} cards", + }, + }, + p_cry_code_normal_2 = { + name = "Program Pack", + text = { + "Choose {C:attention}#1#{} of up to", + "{C:attention}#2#{C:cry_code} Code{} cards", + }, + }, + p_cry_code_jumbo_1 = { + name = "Jumbo Program Pack", + text = { + "Choose {C:attention}#1#{} of up to", + "{C:attention}#2#{C:cry_code} Code{} cards", + }, + }, + p_cry_code_mega_1 = { + name = "Mega Program Pack", + text = { + "Choose {C:attention}#1#{} of up to", + "{C:attention}#2#{C:cry_code} Code{} cards", + }, + }, + p_cry_empowered = { + name = "Spectral Pack [Empowered Tag]", + text = { + "Choose {C:attention}#1#{} of up to", + "{C:attention}#2#{C:spectral} Spectral{} cards", + "{s:0.8,C:inactive}(Generated by Empowered Tag)", + }, + }, + p_cry_meme_1 = { + name = "Meme Pack", + text = { + "Choose {C:attention}#1#{} of", + "up to {C:attention}#2# Meme Jokers{}", + }, + }, + p_cry_meme_two = { + name = "Meme Pack", + text = { + "Choose {C:attention}#1#{} of", + "up to {C:attention}#2# Meme Jokers{}", + }, + }, + p_cry_meme_three = { + name = "Meme Pack", + text = { + "Choose {C:attention}#1#{} of", + "up to {C:attention}#2# Meme Jokers{}", + }, + }, + undiscovered_code = { + name = "Not Discovered", + text = { + "Purchase or use", + "this card in an", + "unseeded run to", + "learn what it does" + } + }, + undiscovered_unique = { + name = "Not Discovered", + text = { + "Purchase or use", + "this card in an", + "unseeded run to", + "learn what it does" + } + }, + cry_green_seal = { + name = "Green Seal", + text = { + "Creates a {C:cry_code}Code{} card", + "when played and unscoring", + "{C:inactive}(Must have room)", + }, + }, + cry_azure_seal = { + name = "Azure Seal", + text = { + "Create {C:attention}#1#{} {C:dark_edition}Negative{}", + "{C:planet}Planets{} for played", + "{C:attention}poker hand{}, then", + "{C:red}destroy{} this card", + }, + }, + blurred_sdm0 = { + name = "a", + text = { + "{C:inactive,s:0.8}\"I hate this card\" - SDM0, 2024{}", + }, + }, + }, + Unique = { + c_cry_potion = { + name = "Potion", + text = { + "Applies an unknown", + "{C:attention}malus{} when used", + "{C:inactive,s:0.7}Obtained from Chocolate Die" + } + } + } + }, + misc = { + poker_hands = { + ['cry_Bulwark'] = "Bulwark", + ['cry_Clusterfuck'] = "Clusterfuck", + ['cry_UltPair'] = "Ultimate Pair", + ['cry_WholeDeck'] = "The Entire Fucking Deck", + }, + poker_hand_descriptions = { + ['cry_Bulwark'] = { + '5 rankless, suitless cards', + }, + ['cry_Clusterfuck'] = { + 'At least 8 cards that do not', + 'contain a Pair, Flush, or Straight', + }, + ['cry_UltPair'] = { + 'Two Two Pairs, where each', + 'Two Pair is a single suit, for a', + 'total of two suits between them', + }, + ['cry_WholeDeck'] = { + 'A hand that contains every single', + 'card found in a 52-card deck.', + 'Are you insane?', + }, + }, + achievement_names = { + ach_cry_ace_in_crash = "Pocket ACE", + ach_cry_blurred_blurred_joker = "Legally Blind", + ach_cry_bullet_hell = "Bullet Hell", + ach_cry_break_infinity = "Break Infinity", + ach_cry_cryptid_the_cryptid = "Cryptid the Cryptid", + ach_cry_exodia = "Exodia", + ach_cry_freak_house = "Freak House", + ach_cry_googol_play_pass = "Googol Play Pass", + ach_cry_haxxor = "H4xx0r", + ach_cry_home_realtor = "Home Realtor", + ach_cry_jokes_on_you = "Joke's on You, Pal!", + ach_cry_niw_uoy = "!niW uoY", + ach_cry_now_the_fun_begins = "Now the Fun Begins", + ach_cry_patience_virtue = "Patience is a Virtue", + ach_cry_perfectly_balanced = "Perfectly Balanced", + ach_cry_pull_request = "Pull Request", + ach_cry_traffic_jam = "Traffic Jam", + ach_cry_ult_full_skip = "Ultimate Full Skip", + ach_cry_used_crash = "We Told You Not To", + ach_cry_what_have_you_done = "WHAT HAVE YOU DONE?!", + }, + achievement_descriptions = { + ach_cry_ace_in_crash = 'check_for_unlock({type = "ace_in_crash"})', + ach_cry_blurred_blurred_joker = "Obtain Blurred Blurred Joker", + ach_cry_bullet_hell = "Have 15 AP Jokers", + ach_cry_break_infinity = "Score 1.79e308 Chips in a single hand", + ach_cry_cryptid_the_cryptid = "Use Cryptid on Cryptid", + ach_cry_exodia = "Have 5 Exotic Jokers", + ach_cry_freak_house = "Play a Flush House consisting of 6s and 9s of Hearts whilst possessing Nice", + ach_cry_googol_play_pass = "Rig a Googol Play Card", + ach_cry_haxxor = "Use a cheat code", + ach_cry_home_realtor = "Activate Happy House before Ante 8 (without DoE/Antimatter)", + ach_cry_jokes_on_you = "Trigger The Joke's effect on Ante 1 and win the run", + ach_cry_niw_uoy = "Reach Ante -8", + ach_cry_now_the_fun_begins = "Obtain Canvas", + ach_cry_patience_virtue = "Wait out Lavender Loop for 2 minutes before playing first hand and beat the blind", + ach_cry_perfectly_balanced = "Beat Very Fair Deck on Ascendant Stake", + ach_cry_pull_request = "Have ://COMMIT spawn the same Joker that it destroyed", + ach_cry_traffic_jam = "Beat all Rush Hour challenges", + ach_cry_ult_full_skip = "Win in 1 round", + ach_cry_used_crash = "Use ://CRASH", + ach_cry_what_have_you_done = "Delete or Sacrifice an Exotic Joker", + }, + challenge_names = { + c_cry_ballin = "Ballin'", + c_cry_boss_rush = "Enter the Gungeon", + c_cry_dagger_war = "Dagger War", + c_cry_joker_poker = "Joker Poker", + c_cry_onlycard = "Solo Card", + c_cry_rng = "RNG", + c_cry_rush_hour = "Rush Hour I", + c_cry_rush_hour_ii = "Rush Hour II", + c_cry_rush_hour_iii = "Rush Hour III", + c_cry_sticker_sheet = "Sticker Sheet", + c_cry_sticker_sheet_plus = "Sticker Sheet+", + }, + dictionary = { + --Settings Menu + cry_set_features = "Features", + cry_set_music = "Music", + cry_set_enable_features = "Select features to enable (applies on game restart):", + cry_feat_achievements = "Achievements", + ["cry_feat_antimatter deck"] = "Antimatter Deck", + cry_feat_blinds = "Blinds", + cry_feat_challenges = "Challenges", + ["cry_feat_code cards"] = "Code Cards", + ["cry_feat_misc. decks"] = "Misc. Decks", + ["cry_feat_https module"] = "HTTPS Module", + ["cry_feat_timer mechanics"] = "Timer Mechanics", + ["cry_feat_enhanced decks"] = "Enhanced Decks", + ["cry_feat_epic jokers"] = "Epic Jokers", + ["cry_feat_exotic jokers"] = "Exotic Jokers", + ["cry_feat_m jokers"] = "M Jokers", + cry_feat_menu = "Custom Main Menu", + ["cry_feat_misc."] = "Misc.", + ["cry_feat_misc. jokers"] = "Misc. Jokers", + cry_feat_planets = "Planets", + cry_feat_jokerdisplay = "JokerDisplay (Does Nothing)", + cry_feat_tags = "Tags", + cry_feat_sleeves = "Sleeves", + cry_feat_spectrals = "Spectrals", + cry_feat_spooky = "Spooky Update", + ["cry_feat_more stakes"] = "Stakes", + cry_feat_vouchers = "Vouchers", + cry_mus_jimball = "Jimball (Funkytown by Lipps Inc. - Copyrighted)", + cry_mus_code = "Code Cards (://LETS_BREAK_THE_GAME by HexaCryonic)", + cry_mus_exotic = "Exotic Jokers (Joker in Latin by AlexZGreat)", + cry_mus_high_score = "High Score (Final Boss [For Your Computer] by AlexZGreat)", + + k_cry_program_pack = "Program Pack", + k_cry_meme_pack = "Meme Pack", + + cry_critical_hit_ex = "Critical Hit!", + cry_critical_miss_ex = "Critical Miss!", + + cry_potion1 = "-1 to all Hand Levels", + cry_potion2 = "X1.15 Blind size", + cry_potion3 = "-1 Hand and Discard", + + cry_debuff_oldhouse = "No Full Houses", + cry_debuff_oldarm = "Must play 4 or fewer cards", + cry_debuff_oldpillar = "No Straights", + cry_debuff_oldflint = "No Flushes", + cry_debuff_oldmark = "No hands containing a Pair", + cry_debuff_obsidian_orb = "Applies abilities of all defeated bosses", + + k_code = "Code", + k_unique = "Unique", + b_code_cards = "Code Cards", + b_unique_cards = "Unique Cards", + b_pull = "PULL", + cry_hooked_ex = "Hooked!", + k_end_blind = "End Blind", + + cry_code_rank = "ENTER RANK", + cry_code_enh = "ENTER ENHANCEMENT", + cry_code_hand = "ENTER POKER HAND", + cry_code_enter_card = "ENTER A CARD", + cry_code_apply = "APPLY", + cry_code_apply_previous = "APPLY PREVIOUS", + cry_code_exploit = "EXPLOIT", + cry_code_exploit_previous = "EXPLOIT PREVIOUS", + cry_code_create = "CREATE", + cry_code_create_previous = "CREATE PREVIOUS", + cry_code_execute = "EXECUTE", + cry_code_cancel = "CANCEL", + + b_flip = "FLIP", + b_merge = "MERGE", + + cry_hand_bulwark = "Bulwark", + cry_hand_clusterfuck = "Clusterfuck", + cry_hand_ultpair = "Ultimate Pair", + + cry_again_q = "Again?", + cry_curse = "Curse", + cry_curse_ex = "Curse!", + cry_sobbing = "Help me...", + cry_gaming = "Gaming", + cry_gaming_ex = "Gaming!", + cry_sus_ex = "Impostor!", + cry_jolly_ex = "Jolly Up!", + cry_m_minus = "m", + cry_m = "M", + cry_m_ex = "M!", + cry_minus_round = "-1 Round", + cry_plus_cryptid = "+1 Cryptid", + cry_no_triggers = "No triggers left!", + cry_unredeemed = "Unredeemed...", + cry_active = "Active", + cry_inactive = "Inactive", + + k_disable_music = "Disable Music", + + k_cry_epic = "Epic", + k_cry_exotic = "Exotic", + k_cry_candy = "Candy", + k_cry_cursed = "Cursed", + k_planet_disc = "Circumstellar Disc", + k_planet_satellite = "Natural Satellites", + k_planet_universe = "The Actual Fucking Universe", + + cry_notif_jimball_1 = "Jimball", + cry_notif_jimball_2 = "Copyright Notice", + cry_notif_jimball_d1 = "Jimball plays the song \"Funkytown\",", + cry_notif_jimball_d2 = "which is copyrighted and can't be", + cry_notif_jimball_d3 = "used for streams and videos.", + }, + labels = { + food_jokers = "Food Jokers", + banana = "Banana", + code = "Code", + unique = "Unique", + cry_rigged = "Rigged", + cry_hooked = "Hooked", + cry_flickering = "Flickering", + cry_possessed = "Possessed", + + cry_green_seal = "Green Seal", + cry_azure_seal = "Azure Seal", + + cry_astral = "Astral", + cry_blur = "Blurred", + cry_double_sided = "Double-Sided", + cry_glass = "Fragile", + cry_glitched = "Glitched", + cry_gold = "Golden", + cry_m = "Jolly", + cry_mosaic = "Mosaic", + cry_noisy = "Noisy", + cry_oversat = "Oversaturated", + + k_cry_epic = "Epic", + k_cry_exotic = "Exotic", + k_cry_candy = "Candy", + k_cry_cursed = "Cursed", + }, + rnj_loc_txts = { + stats = { + plus_mult = { "{C:red}+#2#{} Mult" }, + plus_chips = { "{C:blue}+#2#{} Chips" }, + x_mult = { "{X:red,C:white} X#2#{} Mult" }, + x_chips = { "{X:blue,C:white} X#2#{} Chips" }, + h_size = { "{C:attention}+#2#{} Hand Size" }, + money = { "{C:money}+$#2#{} at payout" }, + }, + stats_inactive = { + plus_mult = { "{C:inactive}(Currently {C:red}+#1#{C:inactive} Mult)" }, + plus_chips = { "{C:inactive}(Currently {C:blue}+#1#{C:inactive} Chips)" }, + x_mult = { "{C:inactive}(Currently {X:red,C:white} X#1# {C:inactive} Mult)" }, + x_chips = { "{C:inactive}(Currently {X:blue,C:white} X#1# {C:inactive} Chips)" }, + h_size = { "{C:inactive}(Currently {C:attention}+#1#{C:inactive} Hand Size)" }, + money = { "{C:inactive}(Currently {C:money}+$#1#{C:inactive})" }, + }, + actions = { + make_joker = { "Create {C:attention}#2# Joker{}" }, + make_tarot = { "Create {C:attention}#2#{C:tarot} Tarot{} card" }, + make_planet = { "Create {C:attention}#2#{C:planet} Planet{} card" }, + make_spectral = { "Create {C:attention}#2#{C:spectral} Spectral{} card" }, + add_dollars = { "Earn {C:money}$#2#{}" }, + }, + contexts = { + open_booster = { "when a {C:attention}Booster{} is opened" }, + buying_card = { "when a card is bought" }, + selling_self = { "when this card is sold" }, + selling_card = { "when a card is sold" }, + reroll_shop = { "on reroll" }, + ending_shop = { "at the end of the {C:attention}shop{}" }, + skip_blind = { "when a {C:attention}blind{} is skipped" }, + skipping_booster = { "when any {C:attention}Booster Pack{} is skipped" }, + playing_card_added = { "every time a {C:attention}playing card{} is added to your deck" }, + first_hand_drawn = { "when round begins" }, + setting_blind = { "when {C:attention}Blind{} is selected" }, + remove_playing_cards = { "when a card is destroyed" }, + using_consumeable = { "when a {C:attention}consumable{} card is used" }, + debuffed_hand = { "if played {C:attention}hand{} is not allowed" }, + pre_discard = { "before each discard" }, + discard = { "for each discarded card" }, + end_of_round = { "at end of {C:attention}round{}" }, + individual_play = { "for each card scored" }, + individual_hand_score = { "for each card held in hand during scoring" }, + individual_hand_end = { "for each card held in hand at end of {C:attention}round{}" }, + repetition_play = { "Retrigger played cards" }, + repetition_hand = { "Retrigger held in hand cards" }, + other_joker = { "per {C:attention}Joker{}" }, + before = { "before each {C:attention}hand{}" }, + after = { "after each {C:attention}hand{}" }, + joker_main = {}, + }, + conds = { + buy_common = { "if it is a {C:blue}Common{} {C:attention}Joker{}" }, + buy_uncommon = { "if it is a {C:green}Uncommon{} {C:attention}Joker{}" }, + tarot = { "if card is a {C:tarot}Tarot{} card" }, + planet = { "if card is a {C:planet}Planet{} card" }, + spectral = { "if card is a {C:spectral}Spectral{} card" }, + joker = { "if card is a {C:attention}Joker{}" }, + suit = { "if card is a {V:1}#3#{}" }, + rank = { "if card is rank {C:attention}#3#{}" }, + face = { "if card is a {C:attention}face{} card" }, + boss = { "if {C:attention}blind{} is a {C:attention}Boss {C:attention}Blind{}" }, + non_boss = { "if {C:attention}blind{} is a {C:attention}Non-Boss {C:attention}Blind{}" }, + small = { "if {C:attention}blind{} is a {C:attention}Small {C:attention}Blind{}" }, + big = { "if {C:attention}blind{} is a {C:attention}Big {C:attention}Blind{}" }, + first = { "if it's the {C:attention}first {C:attention}hand{}" }, + last = { "if it's the {C:attention}last {C:attention}hand{}" }, + common = { "if it is a {C:blue}Common{} {C:attention}Joker{}" }, + uncommon = { "if it is an {C:green}Uncommon{} {C:attention}Joker{}" }, + rare = { "if it is a {C:red}Rare{} {C:attention}Joker{}" }, + poker_hand = { "if hand is a {C:attention}#3#{}" }, + or_more = { "if hand contains {C:attention}#3#{} or more cards" }, + or_less = { "if hand contains {C:attention}#3#{} or less cards" }, + hands_left = { "if #3# {C:blue}hands{} remaining at end of round" }, + discards_left = { "if #3# {C:red}discards{} remaining at end of round" }, + first_discard = { "if it's the {C:attention}first {C:attention}discard{}" }, + last_discard = { "if it's the {C:attention}last {C:attention}discard{}" }, + odds = { "with a {C:green}#4# {C:green}in {C:green}#3#{} chance" }, + }, + }, + v_dictionary = { + a_xchips = {"X#1# Chips"}, + a_powmult = {"^#1# Mult"}, + a_powchips = {"^#1# Chips"}, + a_powmultchips = {"^#1# Mult+Chips"}, + a_round = {"+#1# Round"}, + a_candy = {"+#1# Candy"}, + a_xchips_minus = {"-X#1# Chips"}, + a_powmult_minus = {"-^#1# Mult"}, + a_powchips_minus = {"-^#1# Chips"}, + a_powmultchips_minus = {"-^#1# Mult+Chips"}, + a_round_minus = {"-#1# Round"}, + + a_tag = {"#1# Tag"}, + a_tags = {"#1# Tags"}, + + cry_sticker_name = {"#1# Sticker"}, + cry_sticker_desc = { + "Used this Joker", + "to win on #2##1#", + "#2#Stake#3# difficulty" + }, + + cry_art = {"Art: #1#"}, + cry_code = {"Code: #1#"}, + cry_idea = {"Idea: #1#"} + }, + v_text = { + ch_c_cry_all_perishable = {"All Jokers are {C:eternal}Perishable{}"}, + ch_c_cry_all_rental = {"All Jokers are {C:eternal}Rental{}"}, + ch_c_cry_all_pinned = {"All Jokers are {C:eternal}Pinned{}"}, + ch_c_cry_all_banana = {"All Jokers are {C:eternal}Banana{}"}, + ch_c_all_rnj = {"All Jokers are {C:attention}RNJoker{}"}, + ch_c_cry_sticker_sheet_plus = {"All purchasable items have all stickers"}, + ch_c_cry_rush_hour = {"All Boss Blinds are {C:attention}The Clock{} or {C:attention}Lavender Loop"}, + ch_c_cry_rush_hour_ii = {"All Blinds are {C:attention}Boss Blinds{}"}, + ch_c_cry_rush_hour_iii = {"{C:attention}The Clock{} and {C:attention}Lavender Loop{} scale {C:attention}twice{} as fast"}, + ch_c_cry_no_tags = {"Skipping is {C:attention}disabled{}"}, + ch_c_cry_no_vouchers = {"{C:attention}Vouchers{} no longer appear in the shop"}, + ch_c_cry_no_boosters = {"{C:attention}Booster Packs{} no longer appear in the shop"}, + ch_c_cry_no_rerolls = {"Rerolling is {C:attention}disabled{}"}, + ch_c_cry_no_consumables = {"{C:attention}Consumables{} no longer appear"} + }, + -- Thanks to many members of the community for contributing to all of these quips! + -- There's too many to credit so just go here: https://discord.com/channels/1116389027176787968/1209506360987877408/1237971471146553406 + -- And here: https://discord.com/channels/1116389027176787968/1219749193204371456/1240468252325318667 + very_fair_quips = { + { "L", "NO VOUCHERS", "FOR YOU" }, + { "BOZO", "DID YOU THINK I WOULD", "GIVE YOU A VOUCHER?" }, + { "NOPE!", "NO VOUCHERS HERE!", "(SLUMPAGE EDITION)" }, + { "SKILL ISSUE", "IMAGINE BEING GOOD ENOUGH", "FOR A VOUCHER" }, + { "JIMBO", "FROM MANAGEMENT", "FORGOT TO RESTOCK" }, + { "OOPS!", "NO VOUCHERS", "" }, + { "YOU JOKER,", "WHY ARE YOU LOOKING", "OVER HERE? LOL" }, + { "THE VOUCHER", "IS IN", "ANOTHER CASTLE" }, + { "$0", "BLANK VOUCHER", "(GET IT?)" }, + { "ERROR", "CANNOT DO ARITHMETIC ON A NIL VALUE", "(tier4vouchers.lua)" }, + { "100% OFF", "ON ALL VOUCHERS", "(SOMEONE ALREADY BOUGHT THEM)" }, + { "TRY AGAIN LATER", "HINT: YOU WON'T HAVE", "ENOUGH MONEY ANYWAYS" }, + { "HUH?", '"VOUCHER"?', "THAT'S NOT EVEN A WORD..." }, + { 'HOLD "R"', "TO RESTOCK", "ALL VOUCHERS" }, + { "DID YOU KNOW?", "PRESSING ALT+F4", "GIVES FREE VOUCHERS!" }, + { "SORRY,", "THERE ARE NO VOUCHERS", "DUE TO BUDGET CUTS" }, + { "CALL 1-600-JIMBO", "TO RATE YOUR", "VOUCHER EXPERIENCE" }, + { "DEFEAT", "ANTE 39 BOSS BLIND", "TO RESTOCK" }, + { "MAGIC TRICK", "I MADE THIS VOUCHER", "DISAPPEAR" }, + { "WHY IS A", "VOUCHER LIKE", "A WRITING DESK?" }, + { "WE HAVE RETRACTED", "YOUR VOUCHERS, THEY WOULD BE", "BETTER USED IN OTHER RUNS" }, + { "WHY DO THEY CALL IT VOUCHER", "WHEN MULT OUT THE HOT", "IN COLD EAT EAT THE CHIP" }, + { "SORRY", "THE VOUCHERS ARE EXPERIENCING", "VOUCHIFIA ABORTUS" }, + { "UNFORTUNATELY", "THE VOUCHRX REWRITE UPDATE", "HAS BEEN CANCELLED" }, + { "DEFEAT", "BOSS BLIND", "TO CHANGE NOTHING" }, + { "BIRDS ARE SINGING", "FLOWERS ARE BLOOMING", "KIDS LIKE YOU..." }, + { "WE ARE SORRY TO SAY", "ALL VOUCHERS HAVE BEEN RECALLED", "DUE TO SALMONELLA EXPOSURE" }, + { "VOUCHERS COULDN'T ARRIVE", "DUE TO SHOP LAYOUT BEING", "200% OVERBUDGET" }, + { "YOU LIKE", "BUYING VOUCHERS, DON'T YOU", "YOU'RE A VOUCHERBUYER" }, + { "VOUCHERS", "!E", "VOUCHER POOL" }, + { "THERE", "IS NO", "VOUCHER" }, + { "THERE IS", "NO SANTA", "AND THERE ARE NO VOUCHERS" }, + { "", "VOUCHERN'T", "" }, + { "YOU", "JUST LOST", "THE GAME" }, + { "CAN I OFFER YOU", "A NICE EGG", "IN THESE TRYING TIMES?" }, + { "GO TOUCH GRASS", "INSTEAD OF USING", "THIS DECK" }, + { "YOU COULD BE", "PLAYING ON BLUE DECK", "RIGHT NOW" }, + { "FREE EXOTICS", "GET THEM BEFORE ITS", "TOO LATE (sold out)" }, + { "PROVE THEM WRONG", "BUY BUYING AN INVISIBLE", "VOUCHER FOR $10" }, + { "", "no vouchers?", "" }, + { "see this ad?", "if you are, then it's working", "and you could have it for your own" }, + { "YOU'RE MISSING OUT ON", "AT LEAST 5 VOUCHERS RIGHT NOW", "tonktonktonktonktonk" }, + { "10", "20 NO VOUCHER XD", "30 GOTO 10" }, + { "VOUCHERS", "ARE A PREMIUM FEATURE", "$199.99 JOLLARS TO UNLOCK" }, + { "TRUE VOUCHERLESS!?!?", "ASCENDANT STAKE ONLY", "VERY FAIR DECK" }, + { "ENJOYING YOUR", "VOUCHER EXPERIENCE? GIVE US A", "FIVE STAR RATING ON JESTELP" }, + { "FREE VOUCHERS", "HOT VOUCHERS NEAR YOU", "GET VOUCHERS QUICK WITH THIS ONE TRICK" }, + { "INTRODUCING", "THE VERY FIRST TIER 0 VOUCHER!", "(coming to Cryptid 1.0 soon)" }, + { "A VOUCHER!", "IT'S JUST IMAGINARY", "WE IMAGINED YOU WOULD WANT IT, THAT IS" }, + { "TURN OFF ADBLOCKER", "WITHOUT ADS, WE WOULDN'T", "BE ABLE TO SELL YOU VOUCHERS" }, + { "IF YOU HAVE", "A PROBLEM WITH THIS", "EMAIL IT TO US AT NORESPONSE@JMAIL.COM" }, + { "NOT ENOUGH MONEY", "TO BUY THIS VOUCHER", "SO WHY WOULD WE PUT IT HERE?" }, + { "WANT A VOUCHER?", "WELL SHUT UP", "YOU CAN'T HAVE ANY LOL" }, + { "^$%& NO", "VOUCHERS ^%&% %&$^% FOR", "$%&%%$ %&$&*%$^ YOU" }, + { "A VOUCHER (TRUST)", "|\\/|", "|/\\|" }, + { + "... --- ...", + ".--. .-.. .- -.-- . .-. -.. . -.-. --- -.. . -.. -- --- .-. ... .", + "-.-. --- -.. . - --- ..-. .. -. -.. .- ...- --- ..- -.-. .... . .-.", + }, + { "RUN > NEW", "STARE AT NOTHING", "FOR AN HOUR OR TWO" }, + { "WE'RE VERY SORRY", "THE LAST GUY PANIC BOUGHT", "ALL THE VOUCHERS" }, + { "HOW IT FEELS", "TO BUY NO", "VOUCHERS" }, + { "JIMBO GOT A NAT 1", "AND DUMPED ALL THE", "VOUCHERS IN A DITCH" }, + { "ATTEMPT TO INDEX", "FIELD 'VOUCHER'", "(A NIL VALUE)" }, + { + "OH YOU REALLY THOUGHT THAT READING ALL THESE LINES WOULD BRING YOUR VOUCHERS BACK?", + "SORRY TO TELL YOU, BUT THIS DECK DOESN'T CONTAIN THE VOUCHERS YOU SEEK.", + "THIS ABNORMALLY LONG TEXT IS HERE AND DESIGNED TO WASTE YOUR TIME AND EFFORT WHILE YOU READ IT.", + }, + { "GO TO", "https://youtu.be/p7YXXieghto", "FOR FREE VOUCHERS" }, + } + } +} From 9f411a33728fd56e634e1aaf83a1b9f9c4602906 Mon Sep 17 00:00:00 2001 From: Celeritas <126614030+Cooler2231@users.noreply.github.com> Date: Fri, 22 Nov 2024 16:17:04 +0000 Subject: [PATCH 3/5] Add files via upload --- Items/Misc.lua | 3724 ++++++++++++++++++++++++------------------------ 1 file changed, 1868 insertions(+), 1856 deletions(-) diff --git a/Items/Misc.lua b/Items/Misc.lua index fb552647..5b800e49 100644 --- a/Items/Misc.lua +++ b/Items/Misc.lua @@ -1,1856 +1,1868 @@ -local memepack_atlas = { - object_type = "Atlas", - key = "memepack", - path = "pack_cry.png", - px = 71, - py = 95, -} -local meme_object_type = { - object_type = "ObjectType", - key = "Meme", - default = "j_mr_bones", - cards = {}, - inject = function(self) - SMODS.ObjectType.inject(self) - -- insert base game meme jokers - self:inject_card(G.P_CENTERS.j_mr_bones) - self:inject_card(G.P_CENTERS.j_obelisk) - self:inject_card(G.P_CENTERS.j_jolly) - self:inject_card(G.P_CENTERS.j_space) - for i, v in ipairs(Cryptid.memepack) do - self.cards[v] = true - end - end -} -local meme1 = { - object_type = "Booster", - key = "meme_1", - kind = "meme", - atlas = "memepack", - pos = { x = 0, y = 1 }, - order = 5, - config = { extra = 5, choose = 2 }, - cost = 14, - weight = 0.18 / 3, --0.18 base ÷ 3 since there are 3 identical packs - create_card = function(self, card) - return create_card("Meme", G.pack_cards, nil, nil, true, true, nil, "cry_meme") - end, - ease_background_colour = function(self) - ease_colour(G.C.DYN_UI.MAIN, G.C.CRY_ASCENDANT) - ease_background_colour({ new_colour = G.C.CRY_ASCENDANT, special_colour = G.C.BLACK, contrast = 2 }) - end, - loc_vars = function(self, info_queue, card) - return { vars = { card.config.center.config.choose, card.ability.extra } } - end, --For some reason, I need to keep the loc_txt or else it crashes - loc_txt = { - name = "Meme Pack", - text = { - "Choose {C:attention}#1#{} of", - "up to {C:attention}#2# Meme Jokers{}", - }, - }, - update_pack = function(self, dt) - ease_colour(G.C.DYN_UI.MAIN, G.C.CRY_ASCENDANT) - ease_background_colour({ new_colour = G.C.CRY_ASCENDANT, special_colour = G.C.BLACK, contrast = 2 }) - SMODS.Booster.update_pack(self, dt) - end, - group_key = "k_cry_meme_pack", -} -local meme2 = { - object_type = "Booster", - key = "meme_two", - kind = "meme", - atlas = "memepack", - pos = { x = 1, y = 1 }, - order = 6, - config = { extra = 5, choose = 2 }, - cost = 14, - weight = 0.18 / 3, --0.18 base ÷ 3 since there are 3 identical packs - create_card = function(self, card) - return create_card("Meme", G.pack_cards, nil, nil, true, true, nil, "cry_memetwo") - end, - ease_background_colour = function(self) - ease_colour(G.C.DYN_UI.MAIN, G.C.CRY_ASCENDANT) - ease_background_colour({ new_colour = G.C.CRY_ASCENDANT, special_colour = G.C.BLACK, contrast = 2 }) - end, - loc_vars = function(self, info_queue, card) - return { vars = { card.config.center.config.choose, card.ability.extra } } - end, - loc_txt = { - name = "Meme Pack", - text = { - "Choose {C:attention}#1#{} of", - "up to {C:attention}#2# Meme Jokers{}", - }, - }, - update_pack = function(self, dt) - ease_colour(G.C.DYN_UI.MAIN, G.C.CRY_ASCENDANT) - ease_background_colour({ new_colour = G.C.CRY_ASCENDANT, special_colour = G.C.BLACK, contrast = 2 }) - SMODS.Booster.update_pack(self, dt) - end, - group_key = "k_cry_meme_pack", -} -local meme3 = { - object_type = "Booster", - key = "meme_three", - kind = "meme", - atlas = "memepack", - pos = { x = 2, y = 1 }, - order = 7, - config = { extra = 5, choose = 2 }, - cost = 14, - weight = 0.18 / 3, --0.18 base ÷ 3 since there are 3 identical packs - create_card = function(self, card) - return create_card("Meme", G.pack_cards, nil, nil, true, true, nil, "cry_memethree") - end, - ease_background_colour = function(self) - ease_colour(G.C.DYN_UI.MAIN, G.C.CRY_ASCENDANT) - ease_background_colour({ new_colour = G.C.CRY_ASCENDANT, special_colour = G.C.BLACK, contrast = 2 }) - end, - loc_vars = function(self, info_queue, card) - return { vars = { card.config.center.config.choose, card.ability.extra } } - end, - loc_txt = { - name = "Meme Pack", - text = { - "Choose {C:attention}#1#{} of", - "up to {C:attention}#2# Meme Jokers{}", - }, - }, - update_pack = function(self, dt) - ease_colour(G.C.DYN_UI.MAIN, G.C.CRY_ASCENDANT) - ease_background_colour({ new_colour = G.C.CRY_ASCENDANT, special_colour = G.C.BLACK, contrast = 2 }) - SMODS.Booster.update_pack(self, dt) - end, - group_key = "k_cry_meme_pack", -} - -if not AurinkoAddons then - AurinkoAddons = {} -end - ---Edition code based on Bunco's Glitter Edition - -local mosaic_shader = { - object_type = "Shader", - key = "mosaic", - path = "mosaic.fs", -} -local mosaic = { - object_type = "Edition", - key = "mosaic", - order = 2, - weight = 0.8, --slightly rarer than Polychrome - shader = "mosaic", - in_shop = true, - extra_cost = 6, - config = { x_chips = 2.5 }, - sound = { - sound = "cry_e_mosaic", - per = 1, - vol = 0.2, - }, - get_weight = function(self) - return G.GAME.edition_rate * self.weight - end, - loc_vars = function(self, info_queue) - return { vars = { self.config.x_chips } } - end, -} -local oversat_shader = { - object_type = "Shader", - key = "oversat", - path = "oversat.fs", -} -local oversat = { - object_type = "Edition", - key = "oversat", - order = 3, - weight = 3, - shader = "oversat", - in_shop = true, - extra_cost = 5, - sound = { - sound = "cry_e_oversaturated", - per = 1, - vol = 0.25, - }, - get_weight = function(self) - return G.GAME.edition_rate * self.weight - end, - on_apply = function(card) - cry_with_deck_effects(card, function(card) - cry_misprintize(card, nil, true) - cry_misprintize(card, { - min = 2 * (G.GAME.modifiers.cry_misprint_min or 1), - max = 2 * (G.GAME.modifiers.cry_misprint_max or 1), - }) - end) - if card.config.center.apply_oversat then - card.config.center:apply_oversat(card, function(val) - return cry_misprintize_val(val, { - min = 2 * (G.GAME.modifiers.cry_misprint_min or 1), - max = 2 * (G.GAME.modifiers.cry_misprint_max or 1), - }) - end) - end - end, - on_remove = function(card) - cry_with_deck_effects(card, function(card) - cry_misprintize(card, nil, true) - cry_misprintize(card) - end) - end, -} - -AurinkoAddons.cry_oversat = function(card, hand, instant, amount) - G.GAME.hands[hand].chips = math.max(G.GAME.hands[hand].chips + (G.GAME.hands[hand].l_chips * amount), 0) - G.GAME.hands[hand].mult = math.max(G.GAME.hands[hand].mult + (G.GAME.hands[hand].l_mult * amount), 1) - if not instant then - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.3, - func = function() - play_sound("chips1") - card:juice_up(0.8, 0.5) - return true - end, - })) - update_hand_text({ delay = 1.3 }, { chips = G.GAME.hands[hand].chips, StatusText = true }) - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.3, - func = function() - play_sound("multhit1") - card:juice_up(0.8, 0.5) - return true - end, - })) - update_hand_text({ delay = 1.3 }, { mult = G.GAME.hands[hand].mult, StatusText = true }) - elseif hand == G.handlist[#G.handlist] then - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.2, - func = function() - play_sound("chips1") - card:juice_up(0.8, 0.5) - return true - end, - })) - update_hand_text({ delay = 1.3 }, { chips = (amount > 0 and "++" or "--"), StatusText = true }) - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.2, - func = function() - play_sound("multhit1") - card:juice_up(0.8, 0.5) - return true - end, - })) - update_hand_text({ delay = 1.3 }, { mult = (amount > 0 and "++" or "--"), StatusText = true }) - end -end - -local glitched_shader = { - object_type = "Shader", - key = "glitched", - path = "glitched.fs", -} -local glitched = { - object_type = "Edition", - key = "glitched", - order = 1, - weight = 15, - shader = "glitched", - in_shop = true, - extra_cost = 3, - sound = { - sound = "cry_e_glitched", - per = 1, - vol = 0.25, - }, - get_weight = function(self) - return G.GAME.edition_rate * self.weight - end, - on_apply = function(card) - cry_with_deck_effects(card, function(card) - cry_misprintize(card, nil, true) - cry_misprintize(card, { - min = 0.1 * (G.GAME.modifiers.cry_misprint_min or 1), - max = 10 * (G.GAME.modifiers.cry_misprint_max or 1), - }) - end) - if card.config.center.apply_glitched then - card.config.center:apply_glitched(card, function(val) - return cry_misprintize_val(val, { - min = 0.1 * (G.GAME.modifiers.cry_misprint_min or 1), - max = 10 * (G.GAME.modifiers.cry_misprint_max or 1), - }) - end) - end - end, - on_remove = function(card) - cry_with_deck_effects(card, function(card) - cry_misprintize(card, nil, true) - cry_misprintize(card) - end) - end, -} - -local randtext = { - "A", - "B", - "C", - "D", - "E", - "F", - "G", - "H", - "I", - "J", - "K", - "L", - "M", - "N", - "O", - "P", - "Q", - "R", - "S", - "T", - "U", - "V", - "W", - "X", - "Y", - "Z", - " ", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "+", - "-", - "?", - "!", - "$", - "%", - "[", - "]", - "(", - ")", -} - -local function obfuscatedtext(length) - local str = "" - for i = 1, length do - str = str .. randtext[math.random(#randtext)] - end - return str -end - -AurinkoAddons.cry_glitched = function(card, hand, instant, amount) - local modc = G.GAME.hands[hand].l_chips - * cry_log_random( - pseudoseed("cry_aurinko_chips_misprint" .. G.GAME.round_resets.ante), - (G.GAME.modifiers.cry_misprint_min or 1) / 10, - (G.GAME.modifiers.cry_misprint_max or 1) * 10 - ) - * amount - local modm = G.GAME.hands[hand].l_mult - * cry_log_random( - pseudoseed("cry_aurinko_mult_misprint" .. G.GAME.round_resets.ante), - (G.GAME.modifiers.cry_misprint_min or 1) / 10, - (G.GAME.modifiers.cry_misprint_max or 1) * 10 - ) - * amount - G.GAME.hands[hand].chips = math.max(G.GAME.hands[hand].chips + modc, 1) - G.GAME.hands[hand].mult = math.max(G.GAME.hands[hand].mult + modm, 1) - if not instant then - for i = 1, math.random(6, 10) do - update_hand_text( - { sound = "button", volume = 0.4, pitch = 1.1, delay = 0.2 }, - { chips = obfuscatedtext(3) } - ) - end - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0, - func = function() - play_sound("chips1") - card:juice_up(0.8, 0.5) - return true - end, - })) - update_hand_text( - { delay = 0 }, - { chips = (amount > 0 and "+" or "-") .. number_format(math.abs(modc)), StatusText = true } - ) - update_hand_text({ delay = 1.3 }, { chips = G.GAME.hands[hand].chips }) - for i = 1, math.random(6, 10) do - update_hand_text({ sound = "button", volume = 0.4, pitch = 1.1, delay = 0.2 }, { mult = obfuscatedtext(3) }) - end - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0, - func = function() - play_sound("multhit1") - card:juice_up(0.8, 0.5) - return true - end, - })) - update_hand_text( - { delay = 0 }, - { mult = (amount > 0 and "+" or "-") .. number_format(math.abs(modm)), StatusText = true } - ) - update_hand_text({ delay = 1.3 }, { mult = G.GAME.hands[hand].mult }) - elseif hand == G.handlist[#G.handlist] then - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.2, - func = function() - play_sound("chips1") - card:juice_up(0.8, 0.5) - return true - end, - })) - update_hand_text({ delay = 1.3 }, { chips = (amount > 0 and "+" or "-") .. "???", StatusText = true }) - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.2, - func = function() - play_sound("multhit1") - card:juice_up(0.8, 0.5) - return true - end, - })) - update_hand_text({ delay = 1.3 }, { mult = (amount > 0 and "+" or "-") .. "???", StatusText = true }) - end -end - -local astral_shader = { - object_type = "Shader", - key = "astral", - path = "astral.fs", -} -local astral = { - object_type = "Edition", - key = "astral", - order = 30, - weight = 0.3, --very rare - shader = "astral", - in_shop = true, - extra_cost = 3, - sound = { - sound = "talisman_emult", - per = 1, - vol = 0.5, - }, - get_weight = function(self) - return G.GAME.edition_rate * self.weight - end, - config = { e_mult = 1.1 }, - loc_vars = function(self, info_queue) - return { vars = { self.config.e_mult } } - end, -} -local blurred_shader = { - object_type = "Shader", - key = "blur", - path = "blur.fs", -} -local blurred = { - object_type = "Edition", - key = "blur", - order = 6, - weight = 0.5, --very rare - shader = "blur", - in_shop = true, - extra_cost = 3, - sound = { - sound = "cry_e_blur", - per = 1, - vol = 0.5, - }, - get_weight = function(self) - return G.GAME.edition_rate * self.weight - end, - config = { retrigger_chance = 2, retriggers = 1, extra_retriggers = 1 }, - loc_vars = function(self, info_queue, center) - local chance = center and center.edition.retrigger_chance or self.config.retrigger_chance - local retriggers = center and center.edition.retriggers or self.config.retriggers - - return { vars = { G.GAME.probabilities.normal, chance, retriggers } } - end, - calculate = function(self, card, context) - if context.retrigger_edition_check then - if pseudorandom("cry_blurred") <= G.GAME.probabilities.normal / self.config.retrigger_chance then - return { - message = localize("cry_again_q"), - repetitions = self.config.extra_retriggers, - card = card, - } - end - end - end, -} -local noisy_shader = { - object_type = "Shader", - key = "noisy", - path = "noisy.fs", -} -local noisy = { - object_type = "Edition", - key = "noisy", - order = 7, - weight = 3, - shader = "noisy", - in_shop = true, - extra_cost = 4, - config = { min_mult = 0, max_mult = 30, min_chips = 0, max_chips = 150 }, - sound = { - sound = "cry_e_noisy", - per = 1, - vol = 0.25, - }, - calculate = function(self, card, context) - if context.edition_main and context.edition_val then - context.edition_val.mult_mod = pseudorandom("cry_noisy_mult", self.config.min_mult, self.config.max_mult) - context.edition_val.chip_mod = pseudorandom("cry_noisy_chips", self.config.min_chips, self.config.max_chips) - end - end, - generate_ui = function(self, info_queue, card, desc_nodes, specific_vars, full_UI_table) - if not full_UI_table.name then - full_UI_table.name = localize({ type = "name", set = self.set, key = self.key, nodes = full_UI_table.name }) - end - local r_mults = {} - for i = self.config.min_mult, self.config.max_mult do - r_mults[#r_mults + 1] = tostring(i) - end - local loc_mult = " " .. (localize("k_mult")) .. " " - local r_chips = {} - for i = self.config.min_chips, self.config.max_chips do - r_chips[#r_chips + 1] = tostring(i) - end - local loc_chips = " Chips " - mult_ui = { - { n = G.UIT.T, config = { text = " +", colour = G.C.MULT, scale = 0.32 } }, - { - n = G.UIT.O, - config = { - object = DynaText({ - string = r_mults, - colours = { G.C.MULT }, - pop_in_rate = 9999999, - silent = true, - random_element = true, - pop_delay = 0.5, - scale = 0.32, - min_cycle_time = 0, - }), - }, - }, - { - n = G.UIT.O, - config = { - object = DynaText({ - string = { - { string = "rand()", colour = G.C.JOKER_GREY }, - { - string = "#@" - .. (G.deck and G.deck.cards[1] and G.deck.cards[#G.deck.cards].base.id or 11) - .. ( - G.deck - and G.deck.cards[1] - and G.deck.cards[#G.deck.cards].base.suit:sub(1, 1) - or "D" - ), - colour = G.C.RED, - }, - loc_mult, - loc_mult, - loc_mult, - loc_mult, - loc_mult, - loc_mult, - loc_mult, - loc_mult, - loc_mult, - loc_mult, - loc_mult, - loc_mult, - loc_mult, - }, - colours = { G.C.UI.TEXT_DARK }, - pop_in_rate = 9999999, - silent = true, - random_element = true, - pop_delay = 0.2011, - scale = 0.32, - min_cycle_time = 0, - }), - }, - }, - } - chip_ui = { - { n = G.UIT.T, config = { text = " +", colour = G.C.CHIPS, scale = 0.32 } }, - { - n = G.UIT.O, - config = { - object = DynaText({ - string = r_chips, - colours = { G.C.CHIPS }, - pop_in_rate = 9999999, - silent = true, - random_element = true, - pop_delay = 0.5, - scale = 0.32, - min_cycle_time = 0, - }), - }, - }, - { - n = G.UIT.O, - config = { - object = DynaText({ - string = { - { string = "rand()", colour = G.C.JOKER_GREY }, - { - string = "@#" - .. (G.deck and G.deck.cards[1] and G.deck.cards[1].base.suit and G.deck.cards[1].base.suit:sub(2, 2) or "m") - .. (G.deck and G.deck.cards[1] and G.deck.cards[1].base.id or 7), - colour = G.C.BLUE, - }, - loc_chips, - loc_chips, - loc_chips, - loc_chips, - loc_chips, - loc_chips, - loc_chips, - loc_chips, - loc_chips, - loc_chips, - loc_chips, - loc_chips, - loc_chips, - }, - colours = { G.C.UI.TEXT_DARK }, - pop_in_rate = 9999999, - silent = true, - random_element = true, - pop_delay = 0.2011, - scale = 0.32, - min_cycle_time = 0, - }), - }, - }, - } - desc_nodes[#desc_nodes + 1] = mult_ui - desc_nodes[#desc_nodes + 1] = chip_ui - end, -} -local jollyeditionshader = { - object_type = "Shader", - key = "m", - path = "m.fs", -} -local jollyedition = { - object_type = "Edition", - in_shop = false, - order = 31, - weight = 0, - pos = {x = 2, y = 0}, - name = "cry-jollyedition", - sound = { - sound = "cry_e_jolly", - per = 1, - vol = 0.3, - }, - extra_cost = 0, - config = { mult = 8 }, - apply_to_float = true, - key = "m", - shader = "m", - disable_base_shader = true, - disable_shadow = true, - loc_vars = function(self, info_queue) - return { vars = { self.config.mult } } - end, -} - -local glass_shader = { - object_type = "Shader", - key = "glass", - path = "glass.fs", - send_vars = function(sprite, card) - return { - lines_offset = card and card.edition and card.edition.cry_glass_seed or 0, - } - end, -} -local glass_edition = { - object_type = "Edition", - key = "glass", - order = 4, - shader = "glass", - in_shop = true, - disable_base_shader = true, - disable_shadow = true, - on_apply = function(card) - -- Randomize offset to -1..1 - card.edition.cry_glass_seed = pseudorandom("e_cry_glass") * 2 - 1 - end, - sound = { - sound = "cry_e_fragile", - per = 1, - vol = 0.3, - }, - weight = 7, - extra_cost = 2, - config = { x_mult = 3, shatter_chance = 8 }, - loc_vars = function(self, info_queue) - return { - vars = { - (G.GAME.probabilities.normal or 1) * (self.config.shatter_chance - 1), - self.config.shatter_chance, - self.config.x_mult, - }, - } - end, - calculate = function(self, card, context) - if - context.joker_triggered - or ( - context.from_playing_card - and context.cardarea - and context.cardarea == G.play - and not context.repetition - ) - then - if - pseudorandom("cry_fragile") - > G.GAME.probabilities.normal * (self.config.shatter_chance - 1) / self.config.shatter_chance - and not card.ability.eternal - then - card.will_shatter = true - G.E_MANAGER:add_event(Event({ - trigger = "after", - func = function() - card:shatter() - return true - end, - })) - end - end - end, -} - -local gold_shader = { - object_type = "Shader", - key = "gold", - path = "gold.fs", - send_vars = function(sprite, card) - return { - lines_offset = card and card.edition and card.edition.cry_gold_seed or 0, - } - end, -} -local gold_edition = { - object_type = "Edition", - key = "gold", - order = 5, - shader = "gold", - weight = 7, - extra_cost = 2, - in_shop = true, - config = { dollars = 2 }, - loc_vars = function(self, info_queue) - return { vars = { self.config.dollars } } - end, - sound = { - sound = "cry_e_golden", - per = 1, - vol = 0.3, - }, - on_apply = function(card) - -- Randomize offset to -1..1 - card.edition.cry_gold_seed = pseudorandom("e_cry_gold") * 2 - 1 - end, - calculate = function(self, card, context) - if - context.joker_triggered - or context.from_consumable - or ( - context.from_playing_card - and context.cardarea - and context.cardarea == G.play - and not context.repetition - ) - then - ease_dollars(self.config.dollars) - card_eval_status_text( - card, - "extra", - nil, - nil, - nil, - { message = localize("$") .. self.config.dollars, colour = G.C.MONEY } - ) - end - end, -} - -local double_sided = { - object_type = "Edition", - key = "double_sided", - shader = false, - order = 32, - weight = 10, - extra_cost = 0, - in_shop = true, - sound = { - sound = "cry_e_double_sided", - per = 1, - vol = 0.3, - }, - cry_credits = { - jolly = { - "Jolly Open Winner", - "Axolotolus", - }, - }, - get_weight = function(self) - return G.GAME.edition_rate * self.weight * (G.GAME.used_vouchers.v_cry_double_vision and 4 or 1) - end, -} -local echo = { - object_type = "Enhancement", - key = "echo", - atlas = "cry_misc", - pos = { x = 2, y = 0 }, - config = { retriggers = 2, extra = 2 }, - loc_vars = function(self, info_queue) - return { vars = { self.config.retriggers, G.GAME.probabilities.normal, self.config.extra } } - end, -} -local eclipse = { - object_type = "Consumable", - set = "Tarot", - name = "cry-Eclipse", - key = "eclipse", - order = 1, - pos = { x = 4, y = 0 }, - config = { mod_conv = "m_cry_echo", max_highlighted = 1 }, - atlas = "atlasnotjokers", - loc_vars = function(self, info_queue) - info_queue[#info_queue + 1] = G.P_CENTERS.m_cry_echo - - return { vars = { self.config.max_highlighted } } - end, -} -local blessing = { - object_type = "Consumable", - set = "Tarot", - name = "cry-theblessing", - key = "theblessing", - order = 6, - pos = { x = 2, y = 3 }, - cost = 3, - atlas = "atlasnotjokers", - can_use = function(self, card) - return #G.consumeables.cards < G.consumeables.config.card_limit or card.area == G.consumeables - end, - can_bulk_use = true, - use = function(self, card, area, copier) - local used_consumable = copier or card - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.4, - func = function() - if G.consumeables.config.card_limit > #G.consumeables.cards then - play_sound("timpani") - local forced_key = get_random_consumable("blessing") - local _card = create_card("Consumeables", G.consumables, nil, nil, nil, nil, forced_key.config.center_key, "blessing") - _card:add_to_deck() - G.consumeables:emplace(_card) - used_consumable:juice_up(0.3, 0.5) - end - return true - end, - })) - delay(0.6) - end, -} -local azure_seal = { - object_type = "Seal", - name = "cry-Azure-Seal", - key = "azure", - badge_colour = HEX("1d4fd7"), - config = { planets_amount = 3 }, - loc_vars = function(self, info_queue) - return { vars = { self.config.planets_amount } } - end, - atlas = "cry_misc", - pos = { x = 0, y = 2 }, - calculate = function(self, card, context) - if context.destroying_card then - G.E_MANAGER:add_event(Event({ - trigger = "before", - delay = 0.0, - func = function() - local card_type = "Planet" - local _planet = nil - if G.GAME.last_hand_played then - for k, v in pairs(G.P_CENTER_POOLS.Planet) do - if v.config.hand_type == G.GAME.last_hand_played then - _planet = v.key - break - end - end - end - - for i = 1, self.config.planets_amount do - local card = create_card(card_type, G.consumeables, nil, nil, nil, nil, _planet, "cry_azure") - - card:set_edition({ negative = true }, true) - card:add_to_deck() - G.consumeables:emplace(card) - end - return true - end, - })) - - return true - end - end, -} - -local typhoon = { - object_type = "Consumable", - set = "Spectral", - name = "cry-Typhoon", - key = "typhoon", - order = 8, - config = { - -- This will add a tooltip. - mod_conv = "cry_azure_seal", - -- Tooltip args - seal = { planets_amount = 3 }, - max_highlighted = 1, - }, - loc_vars = function(self, info_queue, center) - -- Handle creating a tooltip with set args. - info_queue[#info_queue + 1] = - { set = "Other", key = "cry_azure_seal", specific_vars = { self.config.seal.planets_amount } } - return { vars = { center.ability.max_highlighted } } - end, - cost = 4, - atlas = "atlasnotjokers", - pos = { x = 0, y = 4 }, - use = function(self, card, area, copier) --Good enough - local used_consumable = copier or card - for i = 1, #G.hand.highlighted do - local highlighted = G.hand.highlighted[i] - G.E_MANAGER:add_event(Event({ - func = function() - play_sound("tarot1") - highlighted:juice_up(0.3, 0.5) - return true - end, - })) - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.1, - func = function() - if highlighted then - highlighted:set_seal("cry_azure") - end - return true - end, - })) - delay(0.5) - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 0.2, - func = function() - G.hand:unhighlight_all() - return true - end, - })) - end - end, -} - -local meld = { - object_type = "Consumable", - set = "Tarot", - name = "cry-Meld", - key = "meld", - order = 3, - pos = { x = 4, y = 4 }, - config = { extra = 4 }, - cost = 4, - atlas = "atlasnotjokers", - can_use = function(self, card) - if #G.jokers.highlighted - + #G.hand.highlighted - - (G.hand.highlighted[1] and G.hand.highlighted[1] == self and 1 or 0) - == 1 then - if #G.jokers.highlighted == 1 and Card.no(G.jokers.highlighted[1], "dbl") then return false end - return true - end - end, - cry_credits = { - jolly = { - "Jolly Open Winner", - "Axolotolus", - }, - }, - loc_vars = function(self, info_queue) - info_queue[#info_queue + 1] = G.P_CENTERS.e_cry_double_sided - end, - use = function(self, card, area, copier) - if #G.jokers.highlighted == 1 then - G.jokers.highlighted[1]:remove_from_deck(true) - G.jokers.highlighted[1]:set_edition({ cry_double_sided = true }) - G.jokers.highlighted[1]:add_to_deck(true) - G.jokers:remove_from_highlighted(G.jokers.highlighted[1]) - else - G.hand.highlighted[1]:set_edition({ cry_double_sided = true }) - G.hand:remove_from_highlighted(G.hand.highlighted[1]) - end - end, - in_pool = function() - return G.GAME.used_vouchers.v_cry_double_slit - end -} - -local bwark = { - object_type = "PokerHand", - key = 'Bulwark', - visible = false, - chips = 100, - mult = 10, - l_chips = 50, - l_mult = 1, - example = { - { 'S_A', true, 'm_stone' }, - { 'S_A', true, 'm_stone' }, - { 'S_A', true, 'm_stone' }, - { 'S_A', true, 'm_stone' }, - { 'S_A', true, 'm_stone' }, - }, - evaluate = function(parts, hand) - local stones = {} - for i, card in ipairs(hand) do - if card.config.center_key == 'm_stone' or (card.config.center.no_rank and card.config.center.no_suit) then stones[#stones+1] = card end - end - return #stones >= 5 and {stones} or {} - end, -} -local cluster = { - object_type = "PokerHand", - key = 'Clusterfuck', - visible = false, - chips = 200, - mult = 19, - l_chips = 40, - l_mult = 4, - example = { - { 'S_A', true }, - { 'C_K', true }, - { 'H_J', true }, - { 'S_T', true }, - { 'D_9', true }, - { 'D_8', true }, - { 'S_6', true }, - { 'C_5', true }, - }, - evaluate = function(parts, hand) - local other_hands = next(parts._flush) or next(parts._straight) or next(parts._all_pairs) - if #hand > 7 then - if not other_hands then return {hand} end - end - end, -} -local upair = { - object_type = "PokerHand", - key = 'UltPair', - visible = false, - chips = 220, - mult = 22, - l_chips = 40, - l_mult = 4, - example = { - { 'S_A', true }, - { 'S_A', true }, - { 'S_T', true }, - { 'S_T', true }, - { 'H_K', true }, - { 'H_K', true }, - { 'H_7', true }, - { 'H_7', true }, - }, - evaluate = function(parts, hand) - local scoring_pairs = {} - local unique_suits = 0 - for suit, _ in pairs(SMODS.Suits) do - local scoring_suit_pairs = {} - for i = 1, #parts._2 do - if parts._2[i][1]:is_suit(suit) and parts._2[i][2]:is_suit(suit) then - scoring_suit_pairs[#scoring_suit_pairs+1] = i - end - end - if #scoring_suit_pairs >= 2 then - unique_suits = unique_suits + 1 - for i = 1, #scoring_suit_pairs do - scoring_pairs[scoring_suit_pairs[i]] = (scoring_pairs[scoring_suit_pairs[i]] or 0) + 1 - end - end - end - if unique_suits < 2 then return end - local scored_cards = {} - local sc_max = 0 - local sc_unique = 0 - for i = 1, #parts._2 do - if scoring_pairs[i] then - if scoring_pairs[i] > 1 then - sc_unique = sc_unique + 1 - end - sc_max = math.max(sc_max, scoring_pairs[i]) - scored_cards[#scored_cards+1] = parts._2[i][1] - scored_cards[#scored_cards+1] = parts._2[i][2] - end - end - if sc_max == #scored_cards/2 - 1 and sc_unique == 1 then - return - end - if #scored_cards >= 8 then - return {scored_cards} - end -end, -} -local fulldeck = { - object_type = "PokerHand", - key = 'WholeDeck', - visible = false, - chips = 5200, - mult = 520, - l_chips = 520, - l_mult = 52, - example = { - { 'S_A', true }, - { 'H_A', true }, - { 'C_A', true }, - { 'D_A', true }, - { 'S_K', true }, - { 'H_K', true }, - { 'C_K', true }, - { 'D_K', true }, - { 'S_Q', true }, - { 'H_Q', true }, - { 'C_Q', true }, - { 'D_Q', true }, - { 'S_J', true }, - { 'H_J', true }, - { 'C_J', true }, - { 'D_J', true }, - { 'S_T', true }, - { 'H_T', true }, - { 'C_T', true }, - { 'D_T', true }, - { 'S_9', true }, - { 'H_9', true }, - { 'C_9', true }, - { 'D_9', true }, - { 'S_8', true }, - { 'H_8', true }, - { 'C_8', true }, - { 'D_8', true }, - { 'S_7', true }, - { 'H_7', true }, - { 'C_7', true }, - { 'D_7', true }, - { 'S_6', true }, - { 'H_6', true }, - { 'C_6', true }, - { 'D_6', true }, - { 'S_5', true }, - { 'H_5', true }, - { 'C_5', true }, - { 'D_5', true }, - { 'S_4', true }, - { 'H_4', true }, - { 'C_4', true }, - { 'D_4', true }, - { 'S_3', true }, - { 'H_3', true }, - { 'C_3', true }, - { 'D_3', true }, - { 'S_2', true }, - { 'H_2', true }, - { 'C_2', true }, - { 'D_2', true }, - }, - evaluate = function(parts, hand) - if #hand >= 52 then - local deck_booleans = {} - local scored_cards = {} - for i = 1, 52 do - table.insert(deck_booleans, false) -- i could write this out but nobody wants to see that - end - local wilds = {} - for i, card in ipairs(hand) do - if (card.config.center_key ~= 'm_wild' and not card.config.center.any_suit) - and (card.config.center_key ~= 'm_stone' and not card.config.center.no_rank) then -- i don't know if these are different... this could be completely redundant but redundant is better than broken - local rank = card:get_id() - local suit = card.base.suit - local suit_int = 0 - suit_table = {"Spades", "Hearts", "Clubs", "Diamonds"} - for i = 1, 4 do - if suit == suit_table[i] then suit_int = i end - end - if suit_int > 0 then -- check for custom rank here to prevent breakage? - deck_booleans[suit_int+((rank-2)*4)] = true - table.insert(scored_cards, card) - end - elseif (card.config.center_key == 'm_wild' or card.config.center.any_suit) then - table.insert(wilds, card) - end - end - for i, card in ipairs(wilds) do -- this 100% breaks with custom ranks - local rank = card:get_id() - for i = 1, 4 do - if not deck_booleans[i+((rank-2)*4)] then - deck_booleans[i+((rank-2)*4)] = true - break - end - end - table.insert(scored_cards, card) - end - local entire_fucking_deck = true - for i = 1, #deck_booleans do - if deck_booleans[i] == false then entire_fucking_deck = false break end - end - if entire_fucking_deck == true then - return {scored_cards} - end - end - return - end, -} -local abelt = { - object_type = "Consumable", - set = 'Planet', - key = 'asteroidbelt', - config = { hand_type = 'cry_Bulwark', softlock = true }, - pos = {x = 1, y = 5 }, - order = 2, - atlas = 'atlasnotjokers', - aurinko = true, - set_card_type_badge = function(self, card, badges) - badges[1] = create_badge(localize("k_planet_disc"), get_type_colour(self or card.config, card), nil, 1.2) - end, - loc_vars = function(self, info_queue, center) - local levelone = G.GAME.hands["cry_Bulwark"].level or 1 - local planetcolourone = G.C.HAND_LEVELS[math.min(levelone, 7)] - if levelone == 1 then - planetcolourone = G.C.UI.TEXT_DARK - end - return { - vars = { - localize("cry_hand_bulwark"), - G.GAME.hands["cry_Bulwark"].level, - G.GAME.hands["cry_Bulwark"].l_mult, - G.GAME.hands["cry_Bulwark"].l_chips, - colours = { planetcolourone }, - }, - } - end, - generate_ui = 0, -} -local void = { - object_type = "Consumable", - set = 'Planet', - key = 'void', - order = 3, - config = { hand_type = 'cry_Clusterfuck', softlock = true }, - pos = {x = 0, y = 5 }, - atlas = 'atlasnotjokers', - aurinko = true, - set_card_type_badge = function(self, card, badges) - badges[1] = create_badge("", get_type_colour(self or card.config, card), nil, 1.2) - end, - loc_vars = function(self, info_queue, center) - local levelone = G.GAME.hands["cry_Clusterfuck"].level or 1 - local planetcolourone = G.C.HAND_LEVELS[math.min(levelone, 7)] - if levelone == 1 then - planetcolourone = G.C.UI.TEXT_DARK - end - return { - vars = { - localize("cry_Clusterfuck"), - G.GAME.hands["cry_Clusterfuck"].level, - G.GAME.hands["cry_Clusterfuck"].l_mult, - G.GAME.hands["cry_Clusterfuck"].l_chips, - colours = { planetcolourone }, - }, - } - end, - generate_ui = 0, -} -local marsmoons = { - object_type = "Consumable", - set = 'Planet', - key = 'marsmoons', - order = 4, - config = { hand_type = 'cry_UltPair', softlock = true }, - pos = {x = 2, y = 5 }, - atlas = 'atlasnotjokers', - aurinko = true, - set_card_type_badge = function(self, card, badges) - badges[1] = create_badge(localize("k_planet_satellite"), get_type_colour(self or card.config, card), nil, 1.2) - end, - loc_vars = function(self, info_queue, center) - local levelone = G.GAME.hands["cry_UltPair"].level or 1 - local planetcolourone = G.C.HAND_LEVELS[math.min(levelone, 7)] - if levelone == 1 then - planetcolourone = G.C.UI.TEXT_DARK - end - return { - vars = { - localize("cry_UltPair"), - G.GAME.hands["cry_UltPair"].level, - G.GAME.hands["cry_UltPair"].l_mult, - G.GAME.hands["cry_UltPair"].l_chips, - colours = { planetcolourone }, - }, - } - end, - generate_ui = 0, -} -local universe = { - object_type = "Consumable", - set = 'Planet', - key = 'universe', - config = { hand_type = 'cry_WholeDeck', softlock = true }, - pos = {x = 4, y = 5 }, - order = 5, - atlas = 'atlasnotjokers', - aurinko = true, - set_card_type_badge = function(self, card, badges) - badges[1] = create_badge(localize("k_planet_universe"), get_type_colour(self or card.config, card), nil, 1.2) - end, - loc_vars = function(self, info_queue, center) - local levelone = G.GAME.hands["cry_WholeDeck"].level or 1 - local planetcolourone = G.C.HAND_LEVELS[math.min(levelone, 7)] - if levelone == 1 then - planetcolourone = G.C.UI.TEXT_DARK - end - return { - vars = { - localize("cry_UltPair"), - G.GAME.hands["cry_WholeDeck"].level, - G.GAME.hands["cry_WholeDeck"].l_mult, - G.GAME.hands["cry_WholeDeck"].l_chips, - colours = { planetcolourone }, - }, - } - end, - generate_ui = 0, -} -local miscitems = { - memepack_atlas, - meme_object_type, - meme1, - meme2, - meme3, - mosaic_shader, - oversat_shader, - glitched_shader, - astral_shader, - blurred_shader, - glass_shader, - gold_shader, - noisy_shader, - glass_edition, - gold_edition, - glitched, - noisy, - mosaic, - oversat, - blurred, - astral, - echo, - eclipse, - blessing, - typhoon, - azure_seal, - double_sided, - meld, - bwark, - cluster, - upair, - fulldeck, - abelt, - void, - marsmoons, - universe, -} -if Cryptid.enabled["M Jokers"] then - miscitems[#miscitems + 1] = jollyeditionshader - miscitems[#miscitems + 1] = jollyedition -end -return { - name = "Misc.", - init = function() - --echo card - cs = Card.calculate_seal - function Card:calculate_seal(context) - local ret = cs(self, context) - if context.repetition then - local total_repetitions = ret and ret.repetitions or 0 - - if self.config.center == G.P_CENTERS.m_cry_echo then - if pseudorandom("echo") < G.GAME.probabilities.normal / (self.ability.extra or 2) then --hacky crash fix - total_repetitions = total_repetitions + self.ability.retriggers - end - end - - if total_repetitions > 0 then - return { - message = localize("k_again_ex"), - repetitions = total_repetitions, - card = self, - } - end - end - return ret - end - --Change name of cards with Jolly edition - local gcui = generate_card_ui - function generate_card_ui( - _c, - full_UI_table, - specific_vars, - card_type, - badges, - hide_desc, - main_start, - main_end, - card - ) - local full_UI_table = - gcui(_c, full_UI_table, specific_vars, card_type, badges, hide_desc, main_start, main_end, card) - if - card - and card.edition - and card.edition.cry_m - and (not card.ability or card.ability.set ~= "Edition") - and full_UI_table - and full_UI_table.name - and type(full_UI_table.name) == "table" - and full_UI_table.name[1] - and full_UI_table.name[1].config - and full_UI_table.name[1].config.object - and full_UI_table.name[1].config.object.config - then - local conf = full_UI_table.name[1].config.object.config - if conf.string and #conf.string > 0 then - local function m_ify_word(text) - -- Define a pattern for vowels - local vowels = "AEIOUaeiou" - - -- Use gsub to replace the first consonant of each word with 'M' - local result = text:gsub("(%a)(%w*)", function(first, rest) - if vowels:find(first) then - -- If the first character is a vowel, add an M - if (not rest[1]) or (rest:lower()[1] == rest[1]) then --this check doesn't work properly - return "M" .. first:lower() .. rest - else - return "M" .. first:upper() .. rest - end - elseif first:lower() == "m" then - -- If the word already starts with 'M', keep it unchanged - return first .. rest - else - -- Replace the first consonant with 'M' - return "M" .. rest - end - end) - - return result - end - function m_ify(text) - -- Use gsub to apply the m_ify_word function to each word - local result = text:gsub("(%S+)", function(word) - return m_ify_word(word) - end) - - return result - end - conf.string[1] = m_ify(conf.string[1]) - full_UI_table.name[1].config.object:remove() - full_UI_table.name[1].config.object = DynaText(conf) - end - end - return full_UI_table - end - - -- Double-Sided - create FLIP button - -- kinda based on Fusion Jokers - local card_focus_ui = G.UIDEF.card_focus_ui - function G.FUNCS.can_flip_card(e) - e.config.colour = G.C.DARK_EDITION - e.config.button = "flip" - end - function G.FUNCS.can_flip_merge_card(e) - local area = e.config.ref_table.area - local mergable = 0 - for i = 1, #area.highlighted do - if area.highlighted[i].edition and area.highlighted[i].edition.cry_double_sided then - mergable = mergable + 1 - mergedcard = area.highlighted[i] - end - end - if mergable == 1 then - e.config.colour = G.C.DARK_EDITION - e.config.button = "flip_merge" - else - e.config.colour = G.C.UI.BACKGROUND_INACTIVE - e.config.button = nil - end - end - function G.FUNCS.flip(e) - e.config.ref_table:flip() - e.config.ref_table.area:remove_from_highlighted(e.config.ref_table) - end - function G.FUNCS.flip_merge(e) - e.config.ref_table:flip() - e.config.ref_table.area:remove_from_highlighted(e.config.ref_table) - G.E_MANAGER:add_event(Event({ - trigger = "after", - delay = 1, - func = function() - local area = e.config.ref_table.area - area:remove_card(e.config.ref_table) - mergedcard:init_dbl_side() - copy_dbl_card(e.config.ref_table, mergedcard.dbl_side) - e.config.ref_table:remove() - e.config.ref_table = nil - return true - end, - })) - end - local use_and_sell_buttonsref = G.UIDEF.use_and_sell_buttons - function G.UIDEF.use_and_sell_buttons(card) - local retval = use_and_sell_buttonsref(card) - if - card.area - and card.edition - and (card.area == G.jokers or card.area == G.consumeables or card.area == G.hand) - and card.edition.cry_double_sided - and not Card.no(card, "dbl") - then - local use = { - n = G.UIT.C, - config = { align = "cr" }, - nodes = { - { - n = G.UIT.C, - config = { - ref_table = card, - align = "cr", - maxw = 1.25, - padding = 0.1, - r = 0.08, - hover = true, - shadow = true, - colour = G.C.UI.BACKGROUND_INACTIVE, - one_press = true, - button = "flip", - func = "can_flip_card", - }, - nodes = { - { n = G.UIT.B, config = { w = 0.1, h = 0.3 } }, - { - n = G.UIT.T, - config = { - text = localize("b_flip"), - colour = G.C.UI.TEXT_LIGHT, - scale = 0.3, - shadow = true, - }, - }, - }, - }, - }, - } - local m = retval.nodes[1] - if not card.added_to_deck then - use.nodes[1].nodes = { use.nodes[1].nodes[2] } - if card.ability.consumeable then - m = retval - end - end - m.nodes = m.nodes or {} - table.insert(m.nodes, { n = G.UIT.R, config = { align = "cl" }, nodes = { - use, - } }) - return retval - end - if - card.area - and (card.area == G.jokers or card.area == G.consumeables or card.area == G.hand) - and (not card.edition or not card.edition.cry_double_sided) - and not card.ability.eternal - and not Card.no(card, "dbl") - then - for i = 1, #card.area.cards do - if card.area.cards[i].edition and card.area.cards[i].edition.cry_double_sided then - local use = { - n = G.UIT.C, - config = { align = "cr" }, - nodes = { - { - n = G.UIT.C, - config = { - ref_table = card, - align = "cr", - maxw = 1.25, - padding = 0.1, - r = 0.08, - hover = true, - shadow = true, - colour = G.C.UI.BACKGROUND_INACTIVE, - one_press = true, - button = "flip_merge", - func = "can_flip_merge_card", - }, - nodes = { - { n = G.UIT.B, config = { w = 0.1, h = 0.3 } }, - { - n = G.UIT.T, - config = { - text = localize("b_merge"), - colour = G.C.UI.TEXT_LIGHT, - scale = 0.3, - shadow = true, - }, - }, - }, - }, - }, - } - local m = retval.nodes[1] - if not card.added_to_deck then - use.nodes[1].nodes = { use.nodes[1].nodes[2] } - if card.ability.consumeable then - m = retval - end - end - m.nodes = m.nodes or {} - table.insert(m.nodes, { n = G.UIT.R, config = { align = "cl" }, nodes = { - use, - } }) - return retval - end - end - end - return retval - end - local cupd = Card.update - function Card:update(dt) - cupd(self, dt) - if self.area then - if self.area.config.type == "discard" or self.area.config.type == "deck" then - return --prevent lagging event queues with unneeded flips - end - end - if self.sprite_facing == "back" and self.edition and self.edition.cry_double_sided then - self.sprite_facing = "front" - self.facing = "front" - if self.flipping == "f2b" then - self.flipping = "b2f" - end - self:dbl_side_flip() - end - end - function copy_dbl_card(C, c, deck_effects) - if not deck_effects then - Cdeck = C.added_to_deck - cdeck = c.added_to_deck - C.added_to_deck = true - c.added_to_deck = false - end - copy_card(C, c) - c.config.center_key = C.config.center_key - end - function Card:init_dbl_side() - if Card.no(self, "dbl") then - self:set_edition(nil, true) - end - if not self.dbl_side then - self.dbl_side = cry_deep_copy(self) - self.dbl_side:set_ability(G.P_CENTERS.c_base) - self.dbl_side:set_base(G.P_CARDS.empty) - if self.area == G.hand then - self.dbl_side.config.center = cry_deep_copy(self.dbl_side.config.center) - self.dbl_side.config.center.no_rank = true - end - self.dbl_side.added_to_deck = false - return true - end - end - function Card:dbl_side_flip() - local init_dbl_side = self:init_dbl_side() - local tmp_side = cry_deep_copy(self.dbl_side) - self.children.center.scale = { x = self.children.center.atlas.px, y = self.children.center.atlas.py } - self.T.w, self.T.h = G.CARD_W, G.CARD_H - local active_side = self - if next(find_joker("cry-Flip Side")) and self.dbl_side then - active_side = self.dbl_side - end - if not init_dbl_side then - active_side:remove_from_deck(true) - end - copy_dbl_card(self, self.dbl_side, false) - copy_dbl_card(tmp_side, self, false) - active_side:add_to_deck(true) - self.children.center:set_sprite_pos(G.P_CENTERS[self.config.center.key].pos) - if self.base then - --Note: this causes a one-frame stutter - for k, v in pairs(G.P_CARDS) do - if self.base.suit == v.suit and self.base.value == v.value then - self.config.card_key = k - end - end - self:set_sprites(nil, self.config.card) - if self.children and self.children.front and self.config.card_key then self.children.front:set_sprite_pos(G.P_CARDS[self.config.card_key].pos) end - end - if (not self.base or not self.base.name) and self.children.front then - self.children.front:remove() - self.children.front = nil - end - self:set_edition({cry_double_sided = true},true,true) - end - local cgcb = Card.get_chip_bonus - function Card:get_chip_bonus() - if self.ability.set == "Joker" then return 0 end - return cgcb(self) - end - local csave = Card.save - function Card:save() - local cardTable = csave(self) - if self.dbl_side then - cardTable.dbl_side = csave(self.dbl_side) - end - return cardTable - end - local cload = Card.load - function Card:load(cardTable, other_card) - cload(self, cardTable, other_card) - if self.ability.set == "Default" then - self:set_ability(G.P_CENTERS.c_base, true) - end - if not self.base.name then - self:set_base(G.P_CARDS.empty, true) - if self.children.front then - self.children.front:remove() - self.children.front = nil - end - end - if cardTable.dbl_side then - self.dbl_side = cry_deep_copy(self) - cload(self.dbl_side, cardTable.dbl_side) - if self.dbl_side.ability.set == "Default" and self.ability.set ~= "Default" then - self.dbl_side:set_ability(G.P_CENTERS.c_base, true) - end - if not self.dbl_side.base.name then - self.dbl_side:set_base(G.P_CARDS.empty, true) - end - end - end - local rma = remove_all - function remove_all(t) - if t then - rma(t) - end - end - --prevent chaos the clown's ability from being applied on debuff - local catd = Card.add_to_deck - local crfd = Card.remove_from_deck - function Card:add_to_deck(debuff) - if debuff and self.ability.name == 'Chaos the Clown' then - return - end - return catd(self, debuff) - end - function Card:remove_from_deck(debuff) - if debuff and self.ability.name == 'Chaos the Clown' then - return - end - return crfd(self, debuff) - end - local cae = CardArea.emplace - function CardArea:emplace(card,m1,m2) - if not (card.will_shatter or card.destroyed or card.shattered) then - cae(self,card,m1,m2) - else - if card.area then - card.area:remove_card(card) - end - card:remove() - card = nil - end - end - local sjw = set_joker_win - function set_joker_win() - sjw() - for k, v in pairs(G.jokers.cards) do - if v.dbl_side and v.dbl_side.config.center_key and v.dbl_side.ability.set == 'Joker' then - G.PROFILES[G.SETTINGS.profile].joker_usage[v.dbl_side.config.center_key] = G.PROFILES[G.SETTINGS.profile].joker_usage[v.dbl_side.config.center_key] or {count = 1, order = v.dbl_side.config.center.order, wins = {}, losses = {}, wins_by_key = {}, losses_by_key = {}} - if G.PROFILES[G.SETTINGS.profile].joker_usage[v.dbl_side.config.center_key] then - G.PROFILES[G.SETTINGS.profile].joker_usage[v.dbl_side.config.center_key].wins = G.PROFILES[G.SETTINGS.profile].joker_usage[v.dbl_side.config.center_key].wins or {} - G.PROFILES[G.SETTINGS.profile].joker_usage[v.dbl_side.config.center_key].wins[G.GAME.stake] = (G.PROFILES[G.SETTINGS.profile].joker_usage[v.dbl_side.config.center_key].wins[G.GAME.stake] or 0) + 1 - end - end - end - G:save_settings() - end - end, - items = miscitems, -} +local memepack_atlas = { + object_type = "Atlas", + key = "memepack", + path = "pack_cry.png", + px = 71, + py = 95, +} +local meme_object_type = { + object_type = "ObjectType", + key = "Meme", + default = "j_mr_bones", + cards = {}, + inject = function(self) + SMODS.ObjectType.inject(self) + -- insert base game meme jokers + self:inject_card(G.P_CENTERS.j_mr_bones) + self:inject_card(G.P_CENTERS.j_obelisk) + self:inject_card(G.P_CENTERS.j_jolly) + self:inject_card(G.P_CENTERS.j_space) + for i, v in ipairs(Cryptid.memepack) do + self.cards[v] = true + end + end +} +local meme1 = { + object_type = "Booster", + key = "meme_1", + kind = "meme", + atlas = "memepack", + pos = { x = 0, y = 1 }, + order = 5, + config = { extra = 5, choose = 2 }, + cost = 14, + weight = 0.18 / 3, --0.18 base ÷ 3 since there are 3 identical packs + create_card = function(self, card) + return create_card("Meme", G.pack_cards, nil, nil, true, true, nil, "cry_meme") + end, + ease_background_colour = function(self) + ease_colour(G.C.DYN_UI.MAIN, G.C.CRY_ASCENDANT) + ease_background_colour({ new_colour = G.C.CRY_ASCENDANT, special_colour = G.C.BLACK, contrast = 2 }) + end, + loc_vars = function(self, info_queue, card) + return { vars = { card.config.center.config.choose, card.ability.extra } } + end, --For some reason, I need to keep the loc_txt or else it crashes + loc_txt = { + name = "Meme Pack", + text = { + "Choose {C:attention}#1#{} of", + "up to {C:attention}#2# Meme Jokers{}", + }, + }, + update_pack = function(self, dt) + ease_colour(G.C.DYN_UI.MAIN, G.C.CRY_ASCENDANT) + ease_background_colour({ new_colour = G.C.CRY_ASCENDANT, special_colour = G.C.BLACK, contrast = 2 }) + SMODS.Booster.update_pack(self, dt) + end, + group_key = "k_cry_meme_pack", +} +local meme2 = { + object_type = "Booster", + key = "meme_two", + kind = "meme", + atlas = "memepack", + pos = { x = 1, y = 1 }, + order = 6, + config = { extra = 5, choose = 2 }, + cost = 14, + weight = 0.18 / 3, --0.18 base ÷ 3 since there are 3 identical packs + create_card = function(self, card) + return create_card("Meme", G.pack_cards, nil, nil, true, true, nil, "cry_memetwo") + end, + ease_background_colour = function(self) + ease_colour(G.C.DYN_UI.MAIN, G.C.CRY_ASCENDANT) + ease_background_colour({ new_colour = G.C.CRY_ASCENDANT, special_colour = G.C.BLACK, contrast = 2 }) + end, + loc_vars = function(self, info_queue, card) + return { vars = { card.config.center.config.choose, card.ability.extra } } + end, + loc_txt = { + name = "Meme Pack", + text = { + "Choose {C:attention}#1#{} of", + "up to {C:attention}#2# Meme Jokers{}", + }, + }, + update_pack = function(self, dt) + ease_colour(G.C.DYN_UI.MAIN, G.C.CRY_ASCENDANT) + ease_background_colour({ new_colour = G.C.CRY_ASCENDANT, special_colour = G.C.BLACK, contrast = 2 }) + SMODS.Booster.update_pack(self, dt) + end, + group_key = "k_cry_meme_pack", +} +local meme3 = { + object_type = "Booster", + key = "meme_three", + kind = "meme", + atlas = "memepack", + pos = { x = 2, y = 1 }, + order = 7, + config = { extra = 5, choose = 2 }, + cost = 14, + weight = 0.18 / 3, --0.18 base ÷ 3 since there are 3 identical packs + create_card = function(self, card) + return create_card("Meme", G.pack_cards, nil, nil, true, true, nil, "cry_memethree") + end, + ease_background_colour = function(self) + ease_colour(G.C.DYN_UI.MAIN, G.C.CRY_ASCENDANT) + ease_background_colour({ new_colour = G.C.CRY_ASCENDANT, special_colour = G.C.BLACK, contrast = 2 }) + end, + loc_vars = function(self, info_queue, card) + return { vars = { card.config.center.config.choose, card.ability.extra } } + end, + loc_txt = { + name = "Meme Pack", + text = { + "Choose {C:attention}#1#{} of", + "up to {C:attention}#2# Meme Jokers{}", + }, + }, + update_pack = function(self, dt) + ease_colour(G.C.DYN_UI.MAIN, G.C.CRY_ASCENDANT) + ease_background_colour({ new_colour = G.C.CRY_ASCENDANT, special_colour = G.C.BLACK, contrast = 2 }) + SMODS.Booster.update_pack(self, dt) + end, + group_key = "k_cry_meme_pack", +} + +if not AurinkoAddons then + AurinkoAddons = {} +end + +--Edition code based on Bunco's Glitter Edition + +local mosaic_shader = { + object_type = "Shader", + key = "mosaic", + path = "mosaic.fs", +} +local mosaic = { + object_type = "Edition", + key = "mosaic", + order = 2, + weight = 0.8, --slightly rarer than Polychrome + shader = "mosaic", + in_shop = true, + extra_cost = 6, + config = { x_chips = 2.5 }, + sound = { + sound = "cry_e_mosaic", + per = 1, + vol = 0.2, + }, + get_weight = function(self) + return G.GAME.edition_rate * self.weight + end, + loc_vars = function(self, info_queue) + return { vars = { self.config.x_chips } } + end, +} +local oversat_shader = { + object_type = "Shader", + key = "oversat", + path = "oversat.fs", +} +local oversat = { + object_type = "Edition", + key = "oversat", + order = 3, + weight = 3, + shader = "oversat", + in_shop = true, + extra_cost = 5, + sound = { + sound = "cry_e_oversaturated", + per = 1, + vol = 0.25, + }, + get_weight = function(self) + return G.GAME.edition_rate * self.weight + end, + on_apply = function(card) + cry_with_deck_effects(card, function(card) + cry_misprintize(card, nil, true) + cry_misprintize(card, { + min = 2 * (G.GAME.modifiers.cry_misprint_min or 1), + max = 2 * (G.GAME.modifiers.cry_misprint_max or 1), + }) + end) + if card.config.center.apply_oversat then + card.config.center:apply_oversat(card, function(val) + return cry_misprintize_val(val, { + min = 2 * (G.GAME.modifiers.cry_misprint_min or 1), + max = 2 * (G.GAME.modifiers.cry_misprint_max or 1), + }) + end) + end + end, + on_remove = function(card) + cry_with_deck_effects(card, function(card) + cry_misprintize(card, nil, true) + cry_misprintize(card) + end) + end, +} + +AurinkoAddons.cry_oversat = function(card, hand, instant, amount) + G.GAME.hands[hand].chips = math.max(G.GAME.hands[hand].chips + (G.GAME.hands[hand].l_chips * amount), 0) + G.GAME.hands[hand].mult = math.max(G.GAME.hands[hand].mult + (G.GAME.hands[hand].l_mult * amount), 1) + if not instant then + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.3, + func = function() + play_sound("chips1") + card:juice_up(0.8, 0.5) + return true + end, + })) + update_hand_text({ delay = 1.3 }, { chips = G.GAME.hands[hand].chips, StatusText = true }) + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.3, + func = function() + play_sound("multhit1") + card:juice_up(0.8, 0.5) + return true + end, + })) + update_hand_text({ delay = 1.3 }, { mult = G.GAME.hands[hand].mult, StatusText = true }) + elseif hand == G.handlist[#G.handlist] then + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.2, + func = function() + play_sound("chips1") + card:juice_up(0.8, 0.5) + return true + end, + })) + update_hand_text({ delay = 1.3 }, { chips = (amount > 0 and "++" or "--"), StatusText = true }) + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.2, + func = function() + play_sound("multhit1") + card:juice_up(0.8, 0.5) + return true + end, + })) + update_hand_text({ delay = 1.3 }, { mult = (amount > 0 and "++" or "--"), StatusText = true }) + end +end + +local glitched_shader = { + object_type = "Shader", + key = "glitched", + path = "glitched.fs", +} +local glitched = { + object_type = "Edition", + key = "glitched", + order = 1, + weight = 15, + shader = "glitched", + in_shop = true, + extra_cost = 3, + sound = { + sound = "cry_e_glitched", + per = 1, + vol = 0.25, + }, + get_weight = function(self) + return G.GAME.edition_rate * self.weight + end, + on_apply = function(card) + cry_with_deck_effects(card, function(card) + cry_misprintize(card, nil, true) + cry_misprintize(card, { + min = 0.1 * (G.GAME.modifiers.cry_misprint_min or 1), + max = 10 * (G.GAME.modifiers.cry_misprint_max or 1), + }) + end) + if card.config.center.apply_glitched then + card.config.center:apply_glitched(card, function(val) + return cry_misprintize_val(val, { + min = 0.1 * (G.GAME.modifiers.cry_misprint_min or 1), + max = 10 * (G.GAME.modifiers.cry_misprint_max or 1), + }) + end) + end + end, + on_remove = function(card) + cry_with_deck_effects(card, function(card) + cry_misprintize(card, nil, true) + cry_misprintize(card) + end) + end, +} + +local randtext = { + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z", + " ", + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", + "k", + "l", + "m", + "n", + "o", + "p", + "q", + "r", + "s", + "t", + "u", + "v", + "w", + "x", + "y", + "z", + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "+", + "-", + "?", + "!", + "$", + "%", + "[", + "]", + "(", + ")", +} + +local function obfuscatedtext(length) + local str = "" + for i = 1, length do + str = str .. randtext[math.random(#randtext)] + end + return str +end + +AurinkoAddons.cry_glitched = function(card, hand, instant, amount) + local modc = G.GAME.hands[hand].l_chips + * cry_log_random( + pseudoseed("cry_aurinko_chips_misprint" .. G.GAME.round_resets.ante), + (G.GAME.modifiers.cry_misprint_min or 1) / 10, + (G.GAME.modifiers.cry_misprint_max or 1) * 10 + ) + * amount + local modm = G.GAME.hands[hand].l_mult + * cry_log_random( + pseudoseed("cry_aurinko_mult_misprint" .. G.GAME.round_resets.ante), + (G.GAME.modifiers.cry_misprint_min or 1) / 10, + (G.GAME.modifiers.cry_misprint_max or 1) * 10 + ) + * amount + G.GAME.hands[hand].chips = math.max(G.GAME.hands[hand].chips + modc, 1) + G.GAME.hands[hand].mult = math.max(G.GAME.hands[hand].mult + modm, 1) + if not instant then + for i = 1, math.random(6, 10) do + update_hand_text( + { sound = "button", volume = 0.4, pitch = 1.1, delay = 0.2 }, + { chips = obfuscatedtext(3) } + ) + end + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0, + func = function() + play_sound("chips1") + card:juice_up(0.8, 0.5) + return true + end, + })) + update_hand_text( + { delay = 0 }, + { chips = (amount > 0 and "+" or "-") .. number_format(math.abs(modc)), StatusText = true } + ) + update_hand_text({ delay = 1.3 }, { chips = G.GAME.hands[hand].chips }) + for i = 1, math.random(6, 10) do + update_hand_text({ sound = "button", volume = 0.4, pitch = 1.1, delay = 0.2 }, { mult = obfuscatedtext(3) }) + end + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0, + func = function() + play_sound("multhit1") + card:juice_up(0.8, 0.5) + return true + end, + })) + update_hand_text( + { delay = 0 }, + { mult = (amount > 0 and "+" or "-") .. number_format(math.abs(modm)), StatusText = true } + ) + update_hand_text({ delay = 1.3 }, { mult = G.GAME.hands[hand].mult }) + elseif hand == G.handlist[#G.handlist] then + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.2, + func = function() + play_sound("chips1") + card:juice_up(0.8, 0.5) + return true + end, + })) + update_hand_text({ delay = 1.3 }, { chips = (amount > 0 and "+" or "-") .. "???", StatusText = true }) + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.2, + func = function() + play_sound("multhit1") + card:juice_up(0.8, 0.5) + return true + end, + })) + update_hand_text({ delay = 1.3 }, { mult = (amount > 0 and "+" or "-") .. "???", StatusText = true }) + end +end + +local astral_shader = { + object_type = "Shader", + key = "astral", + path = "astral.fs", +} +local astral = { + object_type = "Edition", + key = "astral", + order = 30, + weight = 0.3, --very rare + shader = "astral", + in_shop = true, + extra_cost = 3, + sound = { + sound = "talisman_emult", + per = 1, + vol = 0.5, + }, + get_weight = function(self) + return G.GAME.edition_rate * self.weight + end, + config = { e_mult = 1.1 }, + loc_vars = function(self, info_queue) + return { vars = { self.config.e_mult } } + end, +} +local blurred_shader = { + object_type = "Shader", + key = "blur", + path = "blur.fs", +} +local blurred = { + object_type = "Edition", + key = "blur", + order = 6, + weight = 0.5, --very rare + shader = "blur", + in_shop = true, + extra_cost = 3, + sound = { + sound = "cry_e_blur", + per = 1, + vol = 0.5, + }, + get_weight = function(self) + return G.GAME.edition_rate * self.weight + end, + config = { retrigger_chance = 2, retriggers = 1, extra_retriggers = 1 }, + loc_vars = function(self, info_queue, center) + local chance = center and center.edition.retrigger_chance or self.config.retrigger_chance + local retriggers = center and center.edition.retriggers or self.config.retriggers + + return { vars = { G.GAME.probabilities.normal, chance, retriggers } } + end, + calculate = function(self, card, context) + if context.retrigger_edition_check then + if pseudorandom("cry_blurred") <= G.GAME.probabilities.normal / self.config.retrigger_chance then + return { + message = localize("cry_again_q"), + repetitions = self.config.extra_retriggers, + card = card, + } + end + end + end, +} +local noisy_shader = { + object_type = "Shader", + key = "noisy", + path = "noisy.fs", +} +local noisy = { + object_type = "Edition", + key = "noisy", + order = 7, + weight = 3, + shader = "noisy", + in_shop = true, + extra_cost = 4, + config = { min_mult = 0, max_mult = 30, min_chips = 0, max_chips = 150 }, + sound = { + sound = "cry_e_noisy", + per = 1, + vol = 0.25, + }, + calculate = function(self, card, context) + if context.edition_main and context.edition_val then + context.edition_val.mult_mod = pseudorandom("cry_noisy_mult", self.config.min_mult, self.config.max_mult) + context.edition_val.chip_mod = pseudorandom("cry_noisy_chips", self.config.min_chips, self.config.max_chips) + end + end, + generate_ui = function(self, info_queue, card, desc_nodes, specific_vars, full_UI_table) + if not full_UI_table.name then + full_UI_table.name = localize({ type = "name", set = self.set, key = self.key, nodes = full_UI_table.name }) + end + local r_mults = {} + for i = self.config.min_mult, self.config.max_mult do + r_mults[#r_mults + 1] = tostring(i) + end + local loc_mult = " " .. (localize("k_mult")) .. " " + local r_chips = {} + for i = self.config.min_chips, self.config.max_chips do + r_chips[#r_chips + 1] = tostring(i) + end + local loc_chips = " Chips " + mult_ui = { + { n = G.UIT.T, config = { text = " +", colour = G.C.MULT, scale = 0.32 } }, + { + n = G.UIT.O, + config = { + object = DynaText({ + string = r_mults, + colours = { G.C.MULT }, + pop_in_rate = 9999999, + silent = true, + random_element = true, + pop_delay = 0.5, + scale = 0.32, + min_cycle_time = 0, + }), + }, + }, + { + n = G.UIT.O, + config = { + object = DynaText({ + string = { + { string = "rand()", colour = G.C.JOKER_GREY }, + { + string = "#@" + .. (G.deck and G.deck.cards[1] and G.deck.cards[#G.deck.cards].base.id or 11) + .. ( + G.deck + and G.deck.cards[1] + and G.deck.cards[#G.deck.cards].base.suit:sub(1, 1) + or "D" + ), + colour = G.C.RED, + }, + loc_mult, + loc_mult, + loc_mult, + loc_mult, + loc_mult, + loc_mult, + loc_mult, + loc_mult, + loc_mult, + loc_mult, + loc_mult, + loc_mult, + loc_mult, + }, + colours = { G.C.UI.TEXT_DARK }, + pop_in_rate = 9999999, + silent = true, + random_element = true, + pop_delay = 0.2011, + scale = 0.32, + min_cycle_time = 0, + }), + }, + }, + } + chip_ui = { + { n = G.UIT.T, config = { text = " +", colour = G.C.CHIPS, scale = 0.32 } }, + { + n = G.UIT.O, + config = { + object = DynaText({ + string = r_chips, + colours = { G.C.CHIPS }, + pop_in_rate = 9999999, + silent = true, + random_element = true, + pop_delay = 0.5, + scale = 0.32, + min_cycle_time = 0, + }), + }, + }, + { + n = G.UIT.O, + config = { + object = DynaText({ + string = { + { string = "rand()", colour = G.C.JOKER_GREY }, + { + string = "@#" + .. (G.deck and G.deck.cards[1] and G.deck.cards[1].base.suit and G.deck.cards[1].base.suit:sub(2, 2) or "m") + .. (G.deck and G.deck.cards[1] and G.deck.cards[1].base.id or 7), + colour = G.C.BLUE, + }, + loc_chips, + loc_chips, + loc_chips, + loc_chips, + loc_chips, + loc_chips, + loc_chips, + loc_chips, + loc_chips, + loc_chips, + loc_chips, + loc_chips, + loc_chips, + }, + colours = { G.C.UI.TEXT_DARK }, + pop_in_rate = 9999999, + silent = true, + random_element = true, + pop_delay = 0.2011, + scale = 0.32, + min_cycle_time = 0, + }), + }, + }, + } + desc_nodes[#desc_nodes + 1] = mult_ui + desc_nodes[#desc_nodes + 1] = chip_ui + end, +} +local jollyeditionshader = { + object_type = "Shader", + key = "m", + path = "m.fs", +} +local jollyedition = { + object_type = "Edition", + in_shop = false, + order = 31, + weight = 0, + pos = {x = 2, y = 0}, + name = "cry-jollyedition", + sound = { + sound = "cry_e_jolly", + per = 1, + vol = 0.3, + }, + extra_cost = 0, + config = { mult = 8 }, + apply_to_float = true, + key = "m", + shader = "m", + disable_base_shader = true, + disable_shadow = true, + loc_vars = function(self, info_queue) + return { vars = { self.config.mult } } + end, +} + +local glass_shader = { + object_type = "Shader", + key = "glass", + path = "glass.fs", + send_vars = function(sprite, card) + return { + lines_offset = card and card.edition and card.edition.cry_glass_seed or 0, + } + end, +} +local glass_edition = { + object_type = "Edition", + key = "glass", + order = 4, + shader = "glass", + in_shop = true, + disable_base_shader = true, + disable_shadow = true, + on_apply = function(card) + -- Randomize offset to -1..1 + card.edition.cry_glass_seed = pseudorandom("e_cry_glass") * 2 - 1 + end, + sound = { + sound = "cry_e_fragile", + per = 1, + vol = 0.3, + }, + weight = 7, + extra_cost = 2, + config = { x_mult = 3, shatter_chance = 8 }, + loc_vars = function(self, info_queue) + return { + vars = { + (G.GAME.probabilities.normal or 1) * (self.config.shatter_chance - 1), + self.config.shatter_chance, + self.config.x_mult, + }, + } + end, + calculate = function(self, card, context) + if + context.joker_triggered + or ( + context.from_playing_card + and context.cardarea + and context.cardarea == G.play + and not context.repetition + ) + then + if + pseudorandom("cry_fragile") + > G.GAME.probabilities.normal * (self.config.shatter_chance - 1) / self.config.shatter_chance + and not card.ability.eternal + then + card.will_shatter = true + G.E_MANAGER:add_event(Event({ + trigger = "after", + func = function() + card:shatter() + return true + end, + })) + end + end + end, +} + +local gold_shader = { + object_type = "Shader", + key = "gold", + path = "gold.fs", + send_vars = function(sprite, card) + return { + lines_offset = card and card.edition and card.edition.cry_gold_seed or 0, + } + end, +} +local gold_edition = { + object_type = "Edition", + key = "gold", + order = 5, + shader = "gold", + weight = 7, + extra_cost = 2, + in_shop = true, + config = { dollars = 2 }, + loc_vars = function(self, info_queue) + return { vars = { self.config.dollars } } + end, + sound = { + sound = "cry_e_golden", + per = 1, + vol = 0.3, + }, + on_apply = function(card) + -- Randomize offset to -1..1 + card.edition.cry_gold_seed = pseudorandom("e_cry_gold") * 2 - 1 + end, + calculate = function(self, card, context) + if + context.joker_triggered + or context.from_consumable + or ( + context.from_playing_card + and context.cardarea + and context.cardarea == G.play + and not context.repetition + ) + then + ease_dollars(self.config.dollars) + card_eval_status_text( + card, + "extra", + nil, + nil, + nil, + { message = localize("$") .. self.config.dollars, colour = G.C.MONEY } + ) + end + end, +} + +local double_sided = { + object_type = "Edition", + key = "double_sided", + shader = false, + order = 32, + weight = 10, + extra_cost = 0, + in_shop = true, + sound = { + sound = "cry_e_double_sided", + per = 1, + vol = 0.3, + }, + cry_credits = { + jolly = { + "Jolly Open Winner", + "Axolotolus", + }, + }, + get_weight = function(self) + return G.GAME.edition_rate * self.weight * (G.GAME.used_vouchers.v_cry_double_vision and 4 or 1) + end, +} +local echo = { + object_type = "Enhancement", + key = "echo", + atlas = "cry_misc", + pos = { x = 2, y = 0 }, + config = { retriggers = 2, extra = 2 }, + loc_vars = function(self, info_queue) + return { vars = { self.config.retriggers, G.GAME.probabilities.normal, self.config.extra } } + end, +} +local eclipse = { + object_type = "Consumable", + set = "Tarot", + name = "cry-Eclipse", + key = "eclipse", + order = 1, + pos = { x = 4, y = 0 }, + config = { mod_conv = "m_cry_echo", max_highlighted = 1 }, + atlas = "atlasnotjokers", + loc_vars = function(self, info_queue) + info_queue[#info_queue + 1] = G.P_CENTERS.m_cry_echo + + return { vars = { self.config.max_highlighted } } + end, +} +local oil = { + object_type = "Enhancement", + key = "oil", + atlas = "cry_misc", + pos = { x = 0, y = 1 }, + calculate = function(self, card, context, effect) + if context.discard then + ease_discard(1) + end +end +} +local blessing = { + object_type = "Consumable", + set = "Tarot", + name = "cry-theblessing", + key = "theblessing", + order = 6, + pos = { x = 2, y = 3 }, + cost = 3, + atlas = "atlasnotjokers", + can_use = function(self, card) + return #G.consumeables.cards < G.consumeables.config.card_limit or card.area == G.consumeables + end, + can_bulk_use = true, + use = function(self, card, area, copier) + local used_consumable = copier or card + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.4, + func = function() + if G.consumeables.config.card_limit > #G.consumeables.cards then + play_sound("timpani") + local forced_key = get_random_consumable("blessing") + local _card = create_card("Consumeables", G.consumables, nil, nil, nil, nil, forced_key.config.center_key, "blessing") + _card:add_to_deck() + G.consumeables:emplace(_card) + used_consumable:juice_up(0.3, 0.5) + end + return true + end, + })) + delay(0.6) + end, +} +local azure_seal = { + object_type = "Seal", + name = "cry-Azure-Seal", + key = "azure", + badge_colour = HEX("1d4fd7"), + config = { planets_amount = 3 }, + loc_vars = function(self, info_queue) + return { vars = { self.config.planets_amount } } + end, + atlas = "cry_misc", + pos = { x = 0, y = 2 }, + calculate = function(self, card, context) + if context.destroying_card then + G.E_MANAGER:add_event(Event({ + trigger = "before", + delay = 0.0, + func = function() + local card_type = "Planet" + local _planet = nil + if G.GAME.last_hand_played then + for k, v in pairs(G.P_CENTER_POOLS.Planet) do + if v.config.hand_type == G.GAME.last_hand_played then + _planet = v.key + break + end + end + end + + for i = 1, self.config.planets_amount do + local card = create_card(card_type, G.consumeables, nil, nil, nil, nil, _planet, "cry_azure") + + card:set_edition({ negative = true }, true) + card:add_to_deck() + G.consumeables:emplace(card) + end + return true + end, + })) + + return true + end + end, +} + +local typhoon = { + object_type = "Consumable", + set = "Spectral", + name = "cry-Typhoon", + key = "typhoon", + order = 8, + config = { + -- This will add a tooltip. + mod_conv = "cry_azure_seal", + -- Tooltip args + seal = { planets_amount = 3 }, + max_highlighted = 1, + }, + loc_vars = function(self, info_queue, center) + -- Handle creating a tooltip with set args. + info_queue[#info_queue + 1] = + { set = "Other", key = "cry_azure_seal", specific_vars = { self.config.seal.planets_amount } } + return { vars = { center.ability.max_highlighted } } + end, + cost = 4, + atlas = "atlasnotjokers", + pos = { x = 0, y = 4 }, + use = function(self, card, area, copier) --Good enough + local used_consumable = copier or card + for i = 1, #G.hand.highlighted do + local highlighted = G.hand.highlighted[i] + G.E_MANAGER:add_event(Event({ + func = function() + play_sound("tarot1") + highlighted:juice_up(0.3, 0.5) + return true + end, + })) + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.1, + func = function() + if highlighted then + highlighted:set_seal("cry_azure") + end + return true + end, + })) + delay(0.5) + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 0.2, + func = function() + G.hand:unhighlight_all() + return true + end, + })) + end + end, +} + +local meld = { + object_type = "Consumable", + set = "Tarot", + name = "cry-Meld", + key = "meld", + order = 3, + pos = { x = 4, y = 4 }, + config = { extra = 4 }, + cost = 4, + atlas = "atlasnotjokers", + can_use = function(self, card) + if #G.jokers.highlighted + + #G.hand.highlighted + - (G.hand.highlighted[1] and G.hand.highlighted[1] == self and 1 or 0) + == 1 then + if #G.jokers.highlighted == 1 and Card.no(G.jokers.highlighted[1], "dbl") then return false end + return true + end + end, + cry_credits = { + jolly = { + "Jolly Open Winner", + "Axolotolus", + }, + }, + loc_vars = function(self, info_queue) + info_queue[#info_queue + 1] = G.P_CENTERS.e_cry_double_sided + end, + use = function(self, card, area, copier) + if #G.jokers.highlighted == 1 then + G.jokers.highlighted[1]:remove_from_deck(true) + G.jokers.highlighted[1]:set_edition({ cry_double_sided = true }) + G.jokers.highlighted[1]:add_to_deck(true) + G.jokers:remove_from_highlighted(G.jokers.highlighted[1]) + else + G.hand.highlighted[1]:set_edition({ cry_double_sided = true }) + G.hand:remove_from_highlighted(G.hand.highlighted[1]) + end + end, + in_pool = function() + return G.GAME.used_vouchers.v_cry_double_slit + end +} + +local bwark = { + object_type = "PokerHand", + key = 'Bulwark', + visible = false, + chips = 100, + mult = 10, + l_chips = 50, + l_mult = 1, + example = { + { 'S_A', true, 'm_stone' }, + { 'S_A', true, 'm_stone' }, + { 'S_A', true, 'm_stone' }, + { 'S_A', true, 'm_stone' }, + { 'S_A', true, 'm_stone' }, + }, + evaluate = function(parts, hand) + local stones = {} + for i, card in ipairs(hand) do + if card.config.center_key == 'm_stone' or (card.config.center.no_rank and card.config.center.no_suit) then stones[#stones+1] = card end + end + return #stones >= 5 and {stones} or {} + end, +} +local cluster = { + object_type = "PokerHand", + key = 'Clusterfuck', + visible = false, + chips = 200, + mult = 19, + l_chips = 40, + l_mult = 4, + example = { + { 'S_A', true }, + { 'C_K', true }, + { 'H_J', true }, + { 'S_T', true }, + { 'D_9', true }, + { 'D_8', true }, + { 'S_6', true }, + { 'C_5', true }, + }, + evaluate = function(parts, hand) + local other_hands = next(parts._flush) or next(parts._straight) or next(parts._all_pairs) + if #hand > 7 then + if not other_hands then return {hand} end + end + end, +} +local upair = { + object_type = "PokerHand", + key = 'UltPair', + visible = false, + chips = 220, + mult = 22, + l_chips = 40, + l_mult = 4, + example = { + { 'S_A', true }, + { 'S_A', true }, + { 'S_T', true }, + { 'S_T', true }, + { 'H_K', true }, + { 'H_K', true }, + { 'H_7', true }, + { 'H_7', true }, + }, + evaluate = function(parts, hand) + local scoring_pairs = {} + local unique_suits = 0 + for suit, _ in pairs(SMODS.Suits) do + local scoring_suit_pairs = {} + for i = 1, #parts._2 do + if parts._2[i][1]:is_suit(suit) and parts._2[i][2]:is_suit(suit) then + scoring_suit_pairs[#scoring_suit_pairs+1] = i + end + end + if #scoring_suit_pairs >= 2 then + unique_suits = unique_suits + 1 + for i = 1, #scoring_suit_pairs do + scoring_pairs[scoring_suit_pairs[i]] = (scoring_pairs[scoring_suit_pairs[i]] or 0) + 1 + end + end + end + if unique_suits < 2 then return end + local scored_cards = {} + local sc_max = 0 + local sc_unique = 0 + for i = 1, #parts._2 do + if scoring_pairs[i] then + if scoring_pairs[i] > 1 then + sc_unique = sc_unique + 1 + end + sc_max = math.max(sc_max, scoring_pairs[i]) + scored_cards[#scored_cards+1] = parts._2[i][1] + scored_cards[#scored_cards+1] = parts._2[i][2] + end + end + if sc_max == #scored_cards/2 - 1 and sc_unique == 1 then + return + end + if #scored_cards >= 8 then + return {scored_cards} + end +end, +} +local fulldeck = { + object_type = "PokerHand", + key = 'WholeDeck', + visible = false, + chips = 5200, + mult = 520, + l_chips = 520, + l_mult = 52, + example = { + { 'S_A', true }, + { 'H_A', true }, + { 'C_A', true }, + { 'D_A', true }, + { 'S_K', true }, + { 'H_K', true }, + { 'C_K', true }, + { 'D_K', true }, + { 'S_Q', true }, + { 'H_Q', true }, + { 'C_Q', true }, + { 'D_Q', true }, + { 'S_J', true }, + { 'H_J', true }, + { 'C_J', true }, + { 'D_J', true }, + { 'S_T', true }, + { 'H_T', true }, + { 'C_T', true }, + { 'D_T', true }, + { 'S_9', true }, + { 'H_9', true }, + { 'C_9', true }, + { 'D_9', true }, + { 'S_8', true }, + { 'H_8', true }, + { 'C_8', true }, + { 'D_8', true }, + { 'S_7', true }, + { 'H_7', true }, + { 'C_7', true }, + { 'D_7', true }, + { 'S_6', true }, + { 'H_6', true }, + { 'C_6', true }, + { 'D_6', true }, + { 'S_5', true }, + { 'H_5', true }, + { 'C_5', true }, + { 'D_5', true }, + { 'S_4', true }, + { 'H_4', true }, + { 'C_4', true }, + { 'D_4', true }, + { 'S_3', true }, + { 'H_3', true }, + { 'C_3', true }, + { 'D_3', true }, + { 'S_2', true }, + { 'H_2', true }, + { 'C_2', true }, + { 'D_2', true }, + }, + evaluate = function(parts, hand) + if #hand >= 52 then + local deck_booleans = {} + local scored_cards = {} + for i = 1, 52 do + table.insert(deck_booleans, false) -- i could write this out but nobody wants to see that + end + local wilds = {} + for i, card in ipairs(hand) do + if (card.config.center_key ~= 'm_wild' and not card.config.center.any_suit) + and (card.config.center_key ~= 'm_stone' and not card.config.center.no_rank) then -- i don't know if these are different... this could be completely redundant but redundant is better than broken + local rank = card:get_id() + local suit = card.base.suit + local suit_int = 0 + suit_table = {"Spades", "Hearts", "Clubs", "Diamonds"} + for i = 1, 4 do + if suit == suit_table[i] then suit_int = i end + end + if suit_int > 0 then -- check for custom rank here to prevent breakage? + deck_booleans[suit_int+((rank-2)*4)] = true + table.insert(scored_cards, card) + end + elseif (card.config.center_key == 'm_wild' or card.config.center.any_suit) then + table.insert(wilds, card) + end + end + for i, card in ipairs(wilds) do -- this 100% breaks with custom ranks + local rank = card:get_id() + for i = 1, 4 do + if not deck_booleans[i+((rank-2)*4)] then + deck_booleans[i+((rank-2)*4)] = true + break + end + end + table.insert(scored_cards, card) + end + local entire_fucking_deck = true + for i = 1, #deck_booleans do + if deck_booleans[i] == false then entire_fucking_deck = false break end + end + if entire_fucking_deck == true then + return {scored_cards} + end + end + return + end, +} +local abelt = { + object_type = "Consumable", + set = 'Planet', + key = 'asteroidbelt', + config = { hand_type = 'cry_Bulwark', softlock = true }, + pos = {x = 1, y = 5 }, + order = 2, + atlas = 'atlasnotjokers', + aurinko = true, + set_card_type_badge = function(self, card, badges) + badges[1] = create_badge(localize("k_planet_disc"), get_type_colour(self or card.config, card), nil, 1.2) + end, + loc_vars = function(self, info_queue, center) + local levelone = G.GAME.hands["cry_Bulwark"].level or 1 + local planetcolourone = G.C.HAND_LEVELS[math.min(levelone, 7)] + if levelone == 1 then + planetcolourone = G.C.UI.TEXT_DARK + end + return { + vars = { + localize("cry_hand_bulwark"), + G.GAME.hands["cry_Bulwark"].level, + G.GAME.hands["cry_Bulwark"].l_mult, + G.GAME.hands["cry_Bulwark"].l_chips, + colours = { planetcolourone }, + }, + } + end, + generate_ui = 0, +} +local void = { + object_type = "Consumable", + set = 'Planet', + key = 'void', + order = 3, + config = { hand_type = 'cry_Clusterfuck', softlock = true }, + pos = {x = 0, y = 5 }, + atlas = 'atlasnotjokers', + aurinko = true, + set_card_type_badge = function(self, card, badges) + badges[1] = create_badge("", get_type_colour(self or card.config, card), nil, 1.2) + end, + loc_vars = function(self, info_queue, center) + local levelone = G.GAME.hands["cry_Clusterfuck"].level or 1 + local planetcolourone = G.C.HAND_LEVELS[math.min(levelone, 7)] + if levelone == 1 then + planetcolourone = G.C.UI.TEXT_DARK + end + return { + vars = { + localize("cry_Clusterfuck"), + G.GAME.hands["cry_Clusterfuck"].level, + G.GAME.hands["cry_Clusterfuck"].l_mult, + G.GAME.hands["cry_Clusterfuck"].l_chips, + colours = { planetcolourone }, + }, + } + end, + generate_ui = 0, +} +local marsmoons = { + object_type = "Consumable", + set = 'Planet', + key = 'marsmoons', + order = 4, + config = { hand_type = 'cry_UltPair', softlock = true }, + pos = {x = 2, y = 5 }, + atlas = 'atlasnotjokers', + aurinko = true, + set_card_type_badge = function(self, card, badges) + badges[1] = create_badge(localize("k_planet_satellite"), get_type_colour(self or card.config, card), nil, 1.2) + end, + loc_vars = function(self, info_queue, center) + local levelone = G.GAME.hands["cry_UltPair"].level or 1 + local planetcolourone = G.C.HAND_LEVELS[math.min(levelone, 7)] + if levelone == 1 then + planetcolourone = G.C.UI.TEXT_DARK + end + return { + vars = { + localize("cry_UltPair"), + G.GAME.hands["cry_UltPair"].level, + G.GAME.hands["cry_UltPair"].l_mult, + G.GAME.hands["cry_UltPair"].l_chips, + colours = { planetcolourone }, + }, + } + end, + generate_ui = 0, +} +local universe = { + object_type = "Consumable", + set = 'Planet', + key = 'universe', + config = { hand_type = 'cry_WholeDeck', softlock = true }, + pos = {x = 4, y = 5 }, + order = 5, + atlas = 'atlasnotjokers', + aurinko = true, + set_card_type_badge = function(self, card, badges) + badges[1] = create_badge(localize("k_planet_universe"), get_type_colour(self or card.config, card), nil, 1.2) + end, + loc_vars = function(self, info_queue, center) + local levelone = G.GAME.hands["cry_WholeDeck"].level or 1 + local planetcolourone = G.C.HAND_LEVELS[math.min(levelone, 7)] + if levelone == 1 then + planetcolourone = G.C.UI.TEXT_DARK + end + return { + vars = { + localize("cry_UltPair"), + G.GAME.hands["cry_WholeDeck"].level, + G.GAME.hands["cry_WholeDeck"].l_mult, + G.GAME.hands["cry_WholeDeck"].l_chips, + colours = { planetcolourone }, + }, + } + end, + generate_ui = 0, +} +local miscitems = { + memepack_atlas, + meme_object_type, + meme1, + meme2, + meme3, + mosaic_shader, + oversat_shader, + glitched_shader, + astral_shader, + blurred_shader, + glass_shader, + gold_shader, + noisy_shader, + glass_edition, + gold_edition, + glitched, + noisy, + mosaic, + oversat, + blurred, + astral, + echo, + eclipse, + oil, + blessing, + typhoon, + azure_seal, + double_sided, + meld, + bwark, + cluster, + upair, + fulldeck, + abelt, + void, + marsmoons, + universe, +} +if Cryptid.enabled["M Jokers"] then + miscitems[#miscitems + 1] = jollyeditionshader + miscitems[#miscitems + 1] = jollyedition +end +return { + name = "Misc.", + init = function() + --echo card + cs = Card.calculate_seal + function Card:calculate_seal(context) + local ret = cs(self, context) + if context.repetition then + local total_repetitions = ret and ret.repetitions or 0 + + if self.config.center == G.P_CENTERS.m_cry_echo then + if pseudorandom("echo") < G.GAME.probabilities.normal / (self.ability.extra or 2) then --hacky crash fix + total_repetitions = total_repetitions + self.ability.retriggers + end + end + + if total_repetitions > 0 then + return { + message = localize("k_again_ex"), + repetitions = total_repetitions, + card = self, + } + end + end + return ret + end + --Change name of cards with Jolly edition + local gcui = generate_card_ui + function generate_card_ui( + _c, + full_UI_table, + specific_vars, + card_type, + badges, + hide_desc, + main_start, + main_end, + card + ) + local full_UI_table = + gcui(_c, full_UI_table, specific_vars, card_type, badges, hide_desc, main_start, main_end, card) + if + card + and card.edition + and card.edition.cry_m + and (not card.ability or card.ability.set ~= "Edition") + and full_UI_table + and full_UI_table.name + and type(full_UI_table.name) == "table" + and full_UI_table.name[1] + and full_UI_table.name[1].config + and full_UI_table.name[1].config.object + and full_UI_table.name[1].config.object.config + then + local conf = full_UI_table.name[1].config.object.config + if conf.string and #conf.string > 0 then + local function m_ify_word(text) + -- Define a pattern for vowels + local vowels = "AEIOUaeiou" + + -- Use gsub to replace the first consonant of each word with 'M' + local result = text:gsub("(%a)(%w*)", function(first, rest) + if vowels:find(first) then + -- If the first character is a vowel, add an M + if (not rest[1]) or (rest:lower()[1] == rest[1]) then --this check doesn't work properly + return "M" .. first:lower() .. rest + else + return "M" .. first:upper() .. rest + end + elseif first:lower() == "m" then + -- If the word already starts with 'M', keep it unchanged + return first .. rest + else + -- Replace the first consonant with 'M' + return "M" .. rest + end + end) + + return result + end + function m_ify(text) + -- Use gsub to apply the m_ify_word function to each word + local result = text:gsub("(%S+)", function(word) + return m_ify_word(word) + end) + + return result + end + conf.string[1] = m_ify(conf.string[1]) + full_UI_table.name[1].config.object:remove() + full_UI_table.name[1].config.object = DynaText(conf) + end + end + return full_UI_table + end + + -- Double-Sided - create FLIP button + -- kinda based on Fusion Jokers + local card_focus_ui = G.UIDEF.card_focus_ui + function G.FUNCS.can_flip_card(e) + e.config.colour = G.C.DARK_EDITION + e.config.button = "flip" + end + function G.FUNCS.can_flip_merge_card(e) + local area = e.config.ref_table.area + local mergable = 0 + for i = 1, #area.highlighted do + if area.highlighted[i].edition and area.highlighted[i].edition.cry_double_sided then + mergable = mergable + 1 + mergedcard = area.highlighted[i] + end + end + if mergable == 1 then + e.config.colour = G.C.DARK_EDITION + e.config.button = "flip_merge" + else + e.config.colour = G.C.UI.BACKGROUND_INACTIVE + e.config.button = nil + end + end + function G.FUNCS.flip(e) + e.config.ref_table:flip() + e.config.ref_table.area:remove_from_highlighted(e.config.ref_table) + end + function G.FUNCS.flip_merge(e) + e.config.ref_table:flip() + e.config.ref_table.area:remove_from_highlighted(e.config.ref_table) + G.E_MANAGER:add_event(Event({ + trigger = "after", + delay = 1, + func = function() + local area = e.config.ref_table.area + area:remove_card(e.config.ref_table) + mergedcard:init_dbl_side() + copy_dbl_card(e.config.ref_table, mergedcard.dbl_side) + e.config.ref_table:remove() + e.config.ref_table = nil + return true + end, + })) + end + local use_and_sell_buttonsref = G.UIDEF.use_and_sell_buttons + function G.UIDEF.use_and_sell_buttons(card) + local retval = use_and_sell_buttonsref(card) + if + card.area + and card.edition + and (card.area == G.jokers or card.area == G.consumeables or card.area == G.hand) + and card.edition.cry_double_sided + and not Card.no(card, "dbl") + then + local use = { + n = G.UIT.C, + config = { align = "cr" }, + nodes = { + { + n = G.UIT.C, + config = { + ref_table = card, + align = "cr", + maxw = 1.25, + padding = 0.1, + r = 0.08, + hover = true, + shadow = true, + colour = G.C.UI.BACKGROUND_INACTIVE, + one_press = true, + button = "flip", + func = "can_flip_card", + }, + nodes = { + { n = G.UIT.B, config = { w = 0.1, h = 0.3 } }, + { + n = G.UIT.T, + config = { + text = localize("b_flip"), + colour = G.C.UI.TEXT_LIGHT, + scale = 0.3, + shadow = true, + }, + }, + }, + }, + }, + } + local m = retval.nodes[1] + if not card.added_to_deck then + use.nodes[1].nodes = { use.nodes[1].nodes[2] } + if card.ability.consumeable then + m = retval + end + end + m.nodes = m.nodes or {} + table.insert(m.nodes, { n = G.UIT.R, config = { align = "cl" }, nodes = { + use, + } }) + return retval + end + if + card.area + and (card.area == G.jokers or card.area == G.consumeables or card.area == G.hand) + and (not card.edition or not card.edition.cry_double_sided) + and not card.ability.eternal + and not Card.no(card, "dbl") + then + for i = 1, #card.area.cards do + if card.area.cards[i].edition and card.area.cards[i].edition.cry_double_sided then + local use = { + n = G.UIT.C, + config = { align = "cr" }, + nodes = { + { + n = G.UIT.C, + config = { + ref_table = card, + align = "cr", + maxw = 1.25, + padding = 0.1, + r = 0.08, + hover = true, + shadow = true, + colour = G.C.UI.BACKGROUND_INACTIVE, + one_press = true, + button = "flip_merge", + func = "can_flip_merge_card", + }, + nodes = { + { n = G.UIT.B, config = { w = 0.1, h = 0.3 } }, + { + n = G.UIT.T, + config = { + text = localize("b_merge"), + colour = G.C.UI.TEXT_LIGHT, + scale = 0.3, + shadow = true, + }, + }, + }, + }, + }, + } + local m = retval.nodes[1] + if not card.added_to_deck then + use.nodes[1].nodes = { use.nodes[1].nodes[2] } + if card.ability.consumeable then + m = retval + end + end + m.nodes = m.nodes or {} + table.insert(m.nodes, { n = G.UIT.R, config = { align = "cl" }, nodes = { + use, + } }) + return retval + end + end + end + return retval + end + local cupd = Card.update + function Card:update(dt) + cupd(self, dt) + if self.area then + if self.area.config.type == "discard" or self.area.config.type == "deck" then + return --prevent lagging event queues with unneeded flips + end + end + if self.sprite_facing == "back" and self.edition and self.edition.cry_double_sided then + self.sprite_facing = "front" + self.facing = "front" + if self.flipping == "f2b" then + self.flipping = "b2f" + end + self:dbl_side_flip() + end + end + function copy_dbl_card(C, c, deck_effects) + if not deck_effects then + Cdeck = C.added_to_deck + cdeck = c.added_to_deck + C.added_to_deck = true + c.added_to_deck = false + end + copy_card(C, c) + c.config.center_key = C.config.center_key + end + function Card:init_dbl_side() + if Card.no(self, "dbl") then + self:set_edition(nil, true) + end + if not self.dbl_side then + self.dbl_side = cry_deep_copy(self) + self.dbl_side:set_ability(G.P_CENTERS.c_base) + self.dbl_side:set_base(G.P_CARDS.empty) + if self.area == G.hand then + self.dbl_side.config.center = cry_deep_copy(self.dbl_side.config.center) + self.dbl_side.config.center.no_rank = true + end + self.dbl_side.added_to_deck = false + return true + end + end + function Card:dbl_side_flip() + local init_dbl_side = self:init_dbl_side() + local tmp_side = cry_deep_copy(self.dbl_side) + self.children.center.scale = { x = self.children.center.atlas.px, y = self.children.center.atlas.py } + self.T.w, self.T.h = G.CARD_W, G.CARD_H + local active_side = self + if next(find_joker("cry-Flip Side")) and self.dbl_side then + active_side = self.dbl_side + end + if not init_dbl_side then + active_side:remove_from_deck(true) + end + copy_dbl_card(self, self.dbl_side, false) + copy_dbl_card(tmp_side, self, false) + active_side:add_to_deck(true) + self.children.center:set_sprite_pos(G.P_CENTERS[self.config.center.key].pos) + if self.base then + --Note: this causes a one-frame stutter + for k, v in pairs(G.P_CARDS) do + if self.base.suit == v.suit and self.base.value == v.value then + self.config.card_key = k + end + end + self:set_sprites(nil, self.config.card) + if self.children and self.children.front and self.config.card_key then self.children.front:set_sprite_pos(G.P_CARDS[self.config.card_key].pos) end + end + if (not self.base or not self.base.name) and self.children.front then + self.children.front:remove() + self.children.front = nil + end + self:set_edition({cry_double_sided = true},true,true) + end + local cgcb = Card.get_chip_bonus + function Card:get_chip_bonus() + if self.ability.set == "Joker" then return 0 end + return cgcb(self) + end + local csave = Card.save + function Card:save() + local cardTable = csave(self) + if self.dbl_side then + cardTable.dbl_side = csave(self.dbl_side) + end + return cardTable + end + local cload = Card.load + function Card:load(cardTable, other_card) + cload(self, cardTable, other_card) + if self.ability.set == "Default" then + self:set_ability(G.P_CENTERS.c_base, true) + end + if not self.base.name then + self:set_base(G.P_CARDS.empty, true) + if self.children.front then + self.children.front:remove() + self.children.front = nil + end + end + if cardTable.dbl_side then + self.dbl_side = cry_deep_copy(self) + cload(self.dbl_side, cardTable.dbl_side) + if self.dbl_side.ability.set == "Default" and self.ability.set ~= "Default" then + self.dbl_side:set_ability(G.P_CENTERS.c_base, true) + end + if not self.dbl_side.base.name then + self.dbl_side:set_base(G.P_CARDS.empty, true) + end + end + end + local rma = remove_all + function remove_all(t) + if t then + rma(t) + end + end + --prevent chaos the clown's ability from being applied on debuff + local catd = Card.add_to_deck + local crfd = Card.remove_from_deck + function Card:add_to_deck(debuff) + if debuff and self.ability.name == 'Chaos the Clown' then + return + end + return catd(self, debuff) + end + function Card:remove_from_deck(debuff) + if debuff and self.ability.name == 'Chaos the Clown' then + return + end + return crfd(self, debuff) + end + local cae = CardArea.emplace + function CardArea:emplace(card,m1,m2) + if not (card.will_shatter or card.destroyed or card.shattered) then + cae(self,card,m1,m2) + else + if card.area then + card.area:remove_card(card) + end + card:remove() + card = nil + end + end + local sjw = set_joker_win + function set_joker_win() + sjw() + for k, v in pairs(G.jokers.cards) do + if v.dbl_side and v.dbl_side.config.center_key and v.dbl_side.ability.set == 'Joker' then + G.PROFILES[G.SETTINGS.profile].joker_usage[v.dbl_side.config.center_key] = G.PROFILES[G.SETTINGS.profile].joker_usage[v.dbl_side.config.center_key] or {count = 1, order = v.dbl_side.config.center.order, wins = {}, losses = {}, wins_by_key = {}, losses_by_key = {}} + if G.PROFILES[G.SETTINGS.profile].joker_usage[v.dbl_side.config.center_key] then + G.PROFILES[G.SETTINGS.profile].joker_usage[v.dbl_side.config.center_key].wins = G.PROFILES[G.SETTINGS.profile].joker_usage[v.dbl_side.config.center_key].wins or {} + G.PROFILES[G.SETTINGS.profile].joker_usage[v.dbl_side.config.center_key].wins[G.GAME.stake] = (G.PROFILES[G.SETTINGS.profile].joker_usage[v.dbl_side.config.center_key].wins[G.GAME.stake] or 0) + 1 + end + end + end + G:save_settings() + end + end, + items = miscitems, +} From bff2680f8eda6b8d182be71d3895c2cfd8a88dc2 Mon Sep 17 00:00:00 2001 From: Celeritas <126614030+Cooler2231@users.noreply.github.com> Date: Fri, 22 Nov 2024 16:17:27 +0000 Subject: [PATCH 4/5] Add files via upload --- assets/1x/cry_misc.png | Bin 20323 -> 23237 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/1x/cry_misc.png b/assets/1x/cry_misc.png index c3680ee030d4698a6cdefce0d8f84237f6f5c736..6d18e23bca6ce43b6c761036d2e94732d3660328 100644 GIT binary patch literal 23237 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 N>1gRcDA#ZZ{U07W-zxwB literal 20323 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�(RcI&e6CUiA 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 Date: Fri, 22 Nov 2024 16:17:41 +0000 Subject: [PATCH 5/5] Add files via upload --- assets/2x/cry_misc.png | Bin 38058 -> 30056 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/2x/cry_misc.png b/assets/2x/cry_misc.png index f13915448ee66ecf79df43a6ad6f8ee81be0c0ad..24b31ff63ffd3ccbc798d8486cf9ec337a6bb00d 100644 GIT binary patch literal 30056 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 j_iuYZ0YidU1Aa