diff --git a/functions/debufffunctions.lua b/functions/debufffunctions.lua index ad083fd4..4e670cd0 100644 --- a/functions/debufffunctions.lua +++ b/functions/debufffunctions.lua @@ -8,6 +8,9 @@ SMODS.current_mod.set_debuff = function(card) -- prevent debuffs if card.ability.name == "gholdengo" then return 'prevent_debuff' end + if card.ability.name == "nacli" then return 'prevent_debuff' end + if card.ability.name == "naclstack" then return 'prevent_debuff' end + if card.ability.name == "garganacl" then return 'prevent_debuff' end if SMODS.has_enhancement(card, 'm_wild') and next(find_joker("tangrowth")) then return 'prevent_debuff' end if card:get_id() == 10 and next(find_joker("tentacruel")) then return 'prevent_debuff' end diff --git a/functions/pokefamily.lua b/functions/pokefamily.lua index befe931d..3989949e 100644 --- a/functions/pokefamily.lua +++ b/functions/pokefamily.lua @@ -181,6 +181,7 @@ local default_family_list = { { "yamper", "boltund" }, { "tarountula", "spidops" }, { "fidough", "dachsbun" }, + { "nacli", "naclstack", "garganacl" }, { "charcadet", "armarouge", "ceruledge" }, { "bramblin", "brambleghast" }, { "tinkatink", "tinkatuff", "tinkaton" }, diff --git a/localization/en-us.lua b/localization/en-us.lua index aeb8b93b..6f7e85f8 100644 --- a/localization/en-us.lua +++ b/localization/en-us.lua @@ -5450,6 +5450,40 @@ return { "{C:inactive}(Currently {C:chips}+#1#{C:inactive} Chips)", } }, + j_poke_nacli = { + name = 'Nacli', + text = { + "When {C:attention}Blind{} is selected, {C:green}#3# in #4#{} chance to", + "destroy rightmost {C:attention}Joker{} and gain {X:red,C:white}X#1#{}", + "{C:inactive}(Guaranteed if target is {}{X:water,C:white}Water{}{C:inactive} or {}{X:metal,C:white}Metal{}{C:inactive}){}", + "{br:4}text needs to be here to work", + "This Joker can't be debuffed", + "{C:inactive}(Evolves at {X:red,C:white}X#2#{}{C:inactive} / {}{X:red,C:white}X2{}{C:inactive}){}" + } + }, + j_poke_naclstack = { + name = 'Naclstack', + text = { + "When {C:attention}Blind{} is selected, {C:green}#3# in #4#{} chance to", + "destroy rightmost {C:attention}Joker{} and gain {X:red,C:white}X#1#{}", + "{C:inactive}({C:green}#3# in #5#{}{C:inactive} if target is {}{X:water,C:white}Water{}{C:inactive} or {}{X:metal,C:white}Metal{}{C:inactive}){}", + "{br:4}text needs to be here to work", + "This Joker can't be debuffed", + "{C:inactive}(Evolves at {X:red,C:white}X#2#{}{C:inactive} / {}{X:red,C:white}X4{}{C:inactive}){}" + } + }, + j_poke_garganacl = { + name = 'Garganacl', + text = { + "When {C:attention}Blind{} is selected, {C:green}#3# in #4#{} chance", + "to destroy rightmost {C:attention}Joker{} and", + "mulitply this Joker's {X:red,C:white}X{} Mult by {X:red,C:white}X#1#{}", + "{C:inactive}({C:green}#3# in #5#{}{C:inactive} if target is {}{X:water,C:white}Water{}{C:inactive} or {}{X:metal,C:white}Metal{}{C:inactive}){}", + "{br:4}text needs to be here to work", + "This Joker can't be debuffed", + "{C:inactive}(Currently {}{X:red,C:white}X#2#{}{C:inactive} Mult){}" + } + }, j_poke_charcadet = { name = "Charcadet", text = { @@ -7423,6 +7457,7 @@ return { poke_sticky_web_ex = "Sticky Web!", poke_head_smash_ex = "Head Smash!", poke_teeter_dance_ex = "Teeter Dance!", + poke_saltcure_ex = "Salt Cure!", poke_attack_forme = "Attack", poke_defense_forme = "Defense", diff --git a/pokemon/pokejokers_32.lua b/pokemon/pokejokers_32.lua index c1dc373c..bf04db90 100644 --- a/pokemon/pokejokers_32.lua +++ b/pokemon/pokejokers_32.lua @@ -1,7 +1,165 @@ -- Squawkabilly 931 -- Nacli 932 +local nacli = { + name = "nacli", + config = {extra = {Xmult_mod = 0.2, Xmult = 1, numerator = 1, denominator = 2}, evo_rqmt = 2}, + loc_vars = function(self, info_queue, card) + type_tooltip(self, info_queue, card) + local numerator, denominator = SMODS.get_probability_vars(card, card.ability.extra.numerator, card.ability.extra.denominator, 'nacli') + return {vars = {card.ability.extra.Xmult_mod, card.ability.extra.Xmult, numerator, denominator}} + end, + designer = "Sonfive", + rarity = 3, + cost = 6, + stage = "Basic", + ptype = "Earth", + gen = 9, + blueprint_compat = true, + + calculate = function(self, card, context) + if context.setting_blind and not context.blueprint then + local abbr = card.ability.extra + local odds + local rightmost = G.jokers.cards[#G.jokers.cards] + + if rightmost ~= card and not rightmost.ability.eternal then + if is_type(rightmost, "Metal") or is_type(rightmost, "Water") then + odds = SMODS.pseudorandom_probability(card, 'nacli', abbr.numerator, (abbr.denominator / 2), 'nacli') + else + odds = SMODS.pseudorandom_probability(card, 'nacli', abbr.numerator, abbr.denominator, 'nacli') + end + if odds then + abbr.Xmult = abbr.Xmult + abbr.Xmult_mod + G.E_MANAGER:add_event(Event({ + remove(self, rightmost, context) + })) + return{ + message = localize('poke_saltcure_ex'), colour = HEX('A8F2FF') + } + end + end + end + + + if context.cardarea == G.jokers and context.scoring_hand then + if context.joker_main then + return { + message = localize{type = 'variable', key = 'a_xmult', vars = {card.ability.extra.Xmult}}, + colour = G.C.XMULT, + Xmult_mod = card.ability.extra.Xmult + } + end + end + return scaling_evo(self, card, context, "j_poke_naclstack", card.ability.extra.Xmult, self.config.evo_rqmt) + end +} -- Naclstack 933 +local naclstack = { + name = "naclstack", + config = {extra = {Xmult = 2, Xmult_mod = 0.5, numerator = 1, denominator = 4}, evo_rqmt = 4}, + loc_vars = function(self, info_queue, card) + type_tooltip(self, info_queue, card) + local numerator, denominator = SMODS.get_probability_vars(card, card.ability.extra.numerator, card.ability.extra.denominator, 'nacli') + return {vars = {card.ability.extra.Xmult_mod, card.ability.extra.Xmult, numerator, denominator, (denominator/2)}} + end, + designer = "Sonfive", + rarity = "poke_safari", + cost = 6, + stage = "One", + ptype = "Earth", + gen = 9, + blueprint_compat = true, + + calculate = function(self, card, context) + if context.setting_blind and not context.blueprint then + local abbr = card.ability.extra + local odds + local rightmost = G.jokers.cards[#G.jokers.cards] + + if rightmost ~= card and not rightmost.ability.eternal then + if is_type(rightmost, "Metal") or is_type(rightmost, "Water") then + odds = SMODS.pseudorandom_probability(card, 'naclstack', abbr.numerator, (abbr.denominator / 2), 'naclstack') + else + odds = SMODS.pseudorandom_probability(card, 'naclstack', abbr.numerator, abbr.denominator, 'naclstack') + end + if odds then + abbr.Xmult = abbr.Xmult + abbr.Xmult_mod + G.E_MANAGER:add_event(Event({ + remove(self, rightmost, context) + })) + return{ + message = localize('poke_saltcure_ex'), colour = HEX('A8F2FF') + } + end + end + end + + + if context.cardarea == G.jokers and context.scoring_hand then + if context.joker_main then + return { + message = localize{type = 'variable', key = 'a_xmult', vars = {card.ability.extra.Xmult}}, + colour = G.C.XMULT, + Xmult_mod = card.ability.extra.Xmult + } + end + end + return scaling_evo(self, card, context, "j_poke_garganacl", card.ability.extra.Xmult, self.config.evo_rqmt) + end +} -- Garganacl 934 +local garganacl = { + name = "garganacl", + config = {extra = {Xmult_multi = 1.1, Xmult = 4, numerator = 1, denominator = 8}}, + loc_vars = function(self, info_queue, card) + type_tooltip(self, info_queue, card) + local numerator, denominator = SMODS.get_probability_vars(card, card.ability.extra.numerator, card.ability.extra.denominator, 'nacli') + return {vars = {card.ability.extra.Xmult_multi, card.ability.extra.Xmult, numerator, denominator, (denominator/2)}} + end, + designer = "Sonfive", + rarity = "poke_safari", + cost = 8, + stage = "Two", + ptype = "Earth", + gen = 9, + blueprint_compat = true, + + calculate = function(self, card, context) + local abbr = card.ability.extra + if context.setting_blind and not context.blueprint then + local abbr = card.ability.extra + local odds + local rightmost = G.jokers.cards[#G.jokers.cards] + + if rightmost ~= card and not rightmost.ability.eternal then + if is_type(rightmost, "Metal") or is_type(rightmost, "Water") then + odds = SMODS.pseudorandom_probability(card, 'garganacl', abbr.numerator, (abbr.denominator / 2), 'garganacl') + else + odds = SMODS.pseudorandom_probability(card, 'garganacl', abbr.numerator, abbr.denominator, 'garganacl') + end + if odds then + abbr.Xmult = abbr.Xmult * abbr.Xmult_multi + G.E_MANAGER:add_event(Event({ + remove(self, rightmost, context) + })) + return{ + message = localize('poke_saltcure_ex'), colour = HEX('A8F2FF') + } + end + end + end + + if context.cardarea == G.jokers and context.scoring_hand then + if context.joker_main then + return { + message = localize{type = 'variable', key = 'a_xmult', vars = {card.ability.extra.Xmult}}, + colour = G.C.XMULT, + Xmult_mod = card.ability.extra.Xmult + } + end + end + end +} -- Charcadet 935 local charcadet={ name = "charcadet", @@ -484,5 +642,5 @@ local wiglett={ attributes = {"mult", "chips", "hand_type", "rank", "five", "six", "seven", "round_evo"}, } return {name = "Pokemon Jokers 931-960", - list = {charcadet, armarouge, ceruledge, bramblin, brambleghast, tinkatink, tinkatuff, tinkaton, wiglett}, + list = {nacli, naclstack, garganacl, charcadet, armarouge, ceruledge, bramblin, brambleghast, tinkatink, tinkatuff, tinkaton, wiglett}, }