Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions functions/pokefamily.lua
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ local default_family_list = {
{ "shaymin", "shaymin_sky" },
{ "munna", "musharna"},
{ "gothita", "gothorita", "gothitelle" },
{ "solosis", "duosion", "reuniclus" },
{ "vanillite", "vanillish", "vanilluxe" },
{ "frillish", "jellicent" },
{ "elgyem", "beheeyem" },
Expand Down
38 changes: 38 additions & 0 deletions functions/pokefunctions.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1432,3 +1432,41 @@ poke_drain_chips = function(card, amount)

return base_drain + bonus_drain
end

poke_copy_card_to_play = function(joker, card)
for _ = 1, joker.ability.extra.card_dupes do
if #G.play.cards < 5 then
local copy = copy_card(card)
copy:add_to_deck()
G.deck.config.card_limit = G.deck.config.card_limit + 1
table.insert(G.playing_cards, copy)
G.play:emplace(copy)
copy.states.visible = nil
copy:start_materialize()
G.E_MANAGER:add_event(Event({
func = function()
G.play:add_to_highlighted(copy)
return true
end
}))
table.insert(joker.ability.extra.copied_cards, copy.unique_val)
if joker.ability.extra.copies_req then joker.ability.extra.copies_req = joker.ability.extra.copies_req + 1 end
playing_card_joker_effects(copy)
end
end
end

-- context.mitosis is funny
if evaluate_play_intro then
local evaluate_play_intro_ref = evaluate_play_intro
evaluate_play_intro = function()
SMODS.calculate_context({mitosis = true})
return evaluate_play_intro_ref()
end
else
local eval_play_ref = G.FUNCS.evaluate_play
G.FUNCS.evaluate_play = function(e)
SMODS.calculate_context({mitosis = true})
return eval_play_ref(e)
end
end
29 changes: 29 additions & 0 deletions localization/en-us.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4900,6 +4900,35 @@ return {
"Earn {C:money}$#1#{} when a {C:planet}Planet{} card is used"
}
},
j_poke_solosis = {
name = "Solosis",
text = {
"Creates up to {C:attention}#1#{} temporary {C:attention}copy{}",
"of {C:attention}first{} scoring card of round,",
"then adds it to scoring hand",
"{C:inactive,s:0.8}(Changes played {C:attention,s:0.8}poker hand{C:inactive,s:0.8})",
"{C:inactive,s:0.8}(Evolves after copying {C:attention,s:0.8}#2#{C:inactive,s:0.8} cards)",
}
},
j_poke_duosion = {
name = "Duosion",
text = {
"Creates up to {C:attention}#1#{} temporary {C:attention}copies{}",
"of {C:attention}first{} scoring card of round,",
"then adds them to scoring hand",
"{C:inactive,s:0.8}(Changes played {C:attention,s:0.8}poker hand{C:inactive,s:0.8})",
"{C:inactive,s:0.8}(Evolves after copying {C:attention,s:0.8}#2#{C:inactive,s:0.8} cards)",
}
},
j_poke_reuniclus = {
name = "Reuniclus",
text = {
"Creates up to {C:attention}#1#{} temporary {C:attention}copies{}",
"of {C:attention}first{} scoring card in {C:attention}poker hand{},",
"then adds them to scoring hand",
"{C:inactive,s:0.8}(Changes played {C:attention,s:0.8}poker hand{C:inactive,s:0.8})",
}
},
j_poke_vanillite = {
name = "Vanillite",
text = {
Expand Down
106 changes: 105 additions & 1 deletion pokemon/pokejokers_20.lua
Original file line number Diff line number Diff line change
Expand Up @@ -230,8 +230,112 @@ local gothitelle={
attributes = {"passive", "planet", "economy", "space"},
}
-- Solosis 577
local solosis = {
name = "solosis",
pos = {x = 13, y = 5},
config = { extra = { card_dupes = 1, copied_cards = {}, copies_req = 0 }, evo_rqmt = 4 },
loc_vars = function(self, info_queue, card)
type_tooltip(self, info_queue, card)
return { vars = { card.ability.extra.card_dupes, math.max(0, self.config.evo_rqmt - card.ability.extra.copies_req) } }
end,
designer = "Eternalnacho",
rarity = 3,
cost = 7,
stage = "Basic",
ptype = "Psychic",
gen = 5,
perishable_compat = true,
blueprint_compat = true,
eternal_compat = true,
calculate = function(self, card, context)
-- First hand of round jiggle a la DNA
if context.first_hand_drawn and not context.blueprint then
local eval = function() return G.GAME.current_round.hands_played == 0 and not G.RESET_JIGGLES end
juice_card_until(card, eval, true)
end
-- I made a custom context for this effect
if context.mitosis and G.GAME.current_round.hands_played == 0 then
poke_copy_card_to_play(card, G.play.cards[1])
end
-- destroy the temporary copies after scoring them
if context.destroy_card and card.ability.extra.copied_cards and not context.blueprint then
for _, v in pairs(card.ability.extra.copied_cards) do
if v == context.destroy_card.unique_val then return {remove = true} end
end
end
return scaling_evo(self, card, context, "j_poke_duosion", card.ability.extra.copies_req, self.config.evo_rqmt)
end,
attributes = {"generation", "hands", "condition_evo"},
}
-- Duosion 578
local duosion = {
name = "duosion",
pos = {x = 14, y = 5},
config = { extra = { card_dupes = 2, copied_cards = {}, copies_req = 0 }, evo_rqmt = 8 },
loc_vars = function(self, info_queue, card)
type_tooltip(self, info_queue, card)
return { vars = { card.ability.extra.card_dupes, math.max(0, self.config.evo_rqmt - card.ability.extra.copies_req) } }
end,
designer = "Eternalnacho",
rarity = "poke_safari",
cost = 9,
stage = "One",
ptype = "Psychic",
gen = 5,
perishable_compat = true,
blueprint_compat = true,
eternal_compat = true,
calculate = function(self, card, context)
if context.first_hand_drawn and not context.blueprint then
local eval = function() return G.GAME.current_round.hands_played == 0 and not G.RESET_JIGGLES end
juice_card_until(card, eval, true)
end
-- I made a custom context for this effect
if context.mitosis and G.GAME.current_round.hands_played == 0 then
poke_copy_card_to_play(card, G.play.cards[1])
end
-- destroy the temporary copies after scoring them
if context.destroy_card and card.ability.extra.copied_cards and not context.blueprint then
for _, v in pairs(card.ability.extra.copied_cards) do
if v == context.destroy_card.unique_val then return {remove = true} end
end
end
return scaling_evo(self, card, context, "j_poke_reuniclus", card.ability.extra.copies_req, self.config.evo_rqmt)
end,
attributes = {"generation", "hands", "condition_evo"},
}
-- Reuniclus 579
local reuniclus = {
name = "reuniclus",
pos = {x = 15, y = 5},
config = { extra = { card_dupes = 2, copied_cards = {} } },
loc_vars = function(self, info_queue, card)
type_tooltip(self, info_queue, card)
return { vars = { card.ability.extra.card_dupes } }
end,
designer = "Eternalnacho",
rarity = "poke_safari",
cost = 11,
stage = "Two",
ptype = "Psychic",
gen = 5,
perishable_compat = true,
blueprint_compat = true,
eternal_compat = true,
calculate = function(self, card, context)
-- I made a custom context for this effect
if context.mitosis then
poke_copy_card_to_play(card, G.play.cards[1])
end
-- destroy the temporary copies after scoring them
if context.destroy_card and card.ability.extra.copied_cards and not context.blueprint then
for _, v in pairs(card.ability.extra.copied_cards) do
if v == context.destroy_card.unique_val then return {remove = true} end
end
end
end,
attributes = {"generation"},
}
-- Ducklett 580
-- Swanna 581
-- Vanillite 582
Expand Down Expand Up @@ -581,5 +685,5 @@ local ferrothorn={
-- Klink 599
-- Klang 600
return {name = "Pokemon Jokers 570-600",
list = {zoroark, gothita, gothorita, gothitelle, vanillite, vanillish, vanilluxe, frillish, jellicent, ferroseed, ferrothorn},
list = {zoroark, gothita, gothorita, gothitelle, solosis, duosion, reuniclus, vanillite, vanillish, vanilluxe, frillish, jellicent, ferroseed, ferrothorn},
}