Differenze tra le versioni di "Modulo:AltForms/data"

Gen 9 *** sovrascritto il testo esistente ***
(Aggiunto Gimmighoul, corretto nome MissingNo *** sovrascritto il testo esistente ***)
(Gen 9 *** sovrascritto il testo esistente ***)
 
local t = {}
-- stylua: ignore start
local txt = require('Modulo:Wikilib/strings') -- luacheck: no unused
local tabtxt = require('Modulo:Wikilib/tablesstrings') -- luacheck: no unused
local tab = require('Modulo:Wikilib/tables')
 
-- stylua: ignore end
 
-- TODO: refactor link creations
--]]
local function makeSingleLink(context, formName, poke, general)
if formName == "" then
return ""
end
 
local target
if general then
target =
target = table.concat{general, "#", t[poke].anchor or string.fu(poke)}
table.concat({ general, "#", t[poke].anchor or string.fu(poke) })
else
else
target = table.concat{string.fu(poke), "/Forme"}
target = table.concat({ string.fu(poke), "/Forme" })
end
end
return string.interp(context, {
return string.interp(context, {
link = table.concat{"[[", target, "|", formName, "]]"}
link = table.concat({ "[[", target, "|", formName, "]]" }),
})
})
end
 
--]]
local function makeTargetedLink(index, context, target, list, abbrs)
for _, name in pairs(list) do
t[name][index] = tabletab.map(t[name].names, function(formName, formAbbr)
if tabletab.search(abbrs, formAbbr) then
return makeSingleLink(context, formName, name, target)
else
return t[name][index] and t[name][index][formAbbr]
end
end
end)
end
end
 
-- Creates links to alternative forms
local function makeIndexLinks(index, context)
-- Removing support tables since we don't want to operate on them
local stdLinks = tabletab.filter(t, function(_, key)
return not tabletab.search({'mega', 'megaxy', 'archeo', 'alola', 'galar',
'gigamax'"mega", 'hisui', 'paldea'}, key)
"megaxy",
end)
"archeo",
"alola",
"galar",
"gigamax",
"hisui",
"paldea",
}, key)
end)
 
-- Adds standard links
for name, poke in pairs(stdLinks) do
poke[index] = tabletab.map(poke.names, function(formName)
return makeSingleLink(context, formName, name)
end)
end
 
-- Adds links of forms with a dedicated page
makeTargetedLink(
makeTargetedLink(index, context, 'Megaevoluzione', table.merge(t.mega, t.megaxy), {"base", "M", "MX", "MY"})
index,
makeTargetedLink(index, context, 'Archeorisveglio', t.archeo, {"base", "A"})
context,
makeTargetedLink(index, context, 'Forma di Alola', t.alola, {"base", "A"})
"Megaevoluzione",
makeTargetedLink(index, context, 'Forma di Galar', t.galar, {"base", "G"})
tab.merge(t.mega, t.megaxy),
makeTargetedLink(index, context, 'Gigamax', t.gigamax, {"base", "Gi"})
makeTargetedLink(index, context, 'Forma di Hisui', t.hisui, { "base", "HM", "MX", "MY" })
)
makeTargetedLink(index, context, 'Forma di Paldea', t.paldea, {"base", "P"})
makeTargetedLink(
index,
context,
"Archeorisveglio",
t.archeo,
{ "base", "A" }
)
makeTargetedLink(index, context, "Forma di Alola", t.alola, { "base", "A" })
makeTargetedLink(index, context, "Forma di Galar", t.galar, { "base", "G" })
makeTargetedLink(index, context, "Gigamax", t.gigamax, { "base", "Gi" })
makeTargetedLink(index, context, "Forma di Hisui", t.hisui, { "base", "H" })
makeTargetedLink(
index,
context,
"Forma di Paldea",
t.paldea,
{ "base", "P" }
)
end
 
-- Create all links for alternative forms (black, blue and plain)
local function makeLinks()
local contexts = {
links = '<div class="small-text">${link}</div>',
blacklinks = '<div class="small-text black-text">${link}</div>',
plainlinks = '"${link}'",
}
}
for index, context in pairs(contexts) do
makeIndexLinks(index, context)
end
end
 
t.pikachu = {}
t.eevee = {}
t.tauros = {}
t.wooper = {}
t.castform = {}
t.deoxys = {}
t.basculegion = {}
t.enamorus = {}
t.oinkologne = {}
t.palafin = {}
t.squawkabilly = {}
t.gimmighoul = {}
 
 
-- Tabella con i Pokémon che hanno una sola megaevoluzione
-- stylua: ignore
 
t.mega = {'venusaur', 'blastoise', 'beedrill', 'pidgeot', 'alakazam',
'gengar', 'slowbro', 'kangaskhan', 'pinsir', 'gyarados', 'aerodactyl',
-- Tabella contentente i Pokémon che hanno più megaevoluzioni
 
t.megaxy = {' "charizard'", '"mewtwo'" }
 
-- Tabella contenente i Pokémon che hanno un archeorisveglio
 
t.archeo = {' "kyogre'", '"groudon'" }
 
-- Tabella contenente i Pokémon che hanno una forma di Alola:
-- per efficienza, alcuni sono alla fine del modulo
-- stylua: ignore
 
t.alola = {'rattata', 'raichu', 'sandshrew', 'vulpix', 'diglett', 'meowth',
'persian', 'geodude', 'grimer', 'exeggutor', 'marowak'}
-- Tabella contenente i Pokémon che hanno una forma di Galar:
-- per efficienza, alcuni sono alla fine del modulo
-- stylua: ignore
 
t.galar = {'meowth', 'ponyta', 'slowpoke', 'slowbro', "farfetch'd", 'weezing',
'mr. mime', 'articuno', 'zapdos', 'moltres', 'slowking', 'corsola',
 
-- Table with Pokémon with a Gigamax
-- stylua: ignore
 
t.gigamax = {'venusaur', 'charizard', 'blastoise', 'butterfree', 'meowth',
'machamp', 'gengar', 'kingler', 'lapras', 'eevee', 'snorlax', 'garbodor',
-- Tabella contenente i Pokémon che hanno una forma di Hisui:
-- per efficienza, alcuni sono alla fine del modulo
-- stylua: ignore
 
t.hisui = {'growlithe', 'voltorb', 'typhlosion', 'qwilfish', 'sneasel',
'samurott', 'lilligant', 'zorua', 'braviary', 'sliggoo',
 
-- Tabella contenente i Pokémon che hanno una forma di Paldea
t.paldea = { "wooper", "tauros" }
 
t.paldea = {'wooper'}
 
--[[
--]]
 
-- stylua: ignore start
t.pikachu.names = {Cs = 'Pikachu Cosplay', R = 'Pikachu rockstar',
D = 'Pikachu damigella', Cn = 'Pikachu confetto',
S = 'Pikachu scienziata', W = 'Pikachu wrestler', Cm = 'Compagno',
Gi = 'Pikachu Gigamax', base = ''}
t.tauros.names = {Pa = 'Paldea', Pb = 'Paldea', Pc = 'Paldea', base = ''}
t.eevee.names = {Cm = 'Compagno', base = ''}
t.wooper.names = {P = 'Forma di Paldea', base = ''}
t.castform.names = {S = 'Forma Sole', P = 'Forma Pioggia',
N = 'Forma Nuvola di Neve', base = 'Forma Castform'}
t.basculegion.names = {F = 'Femmina', base = 'Maschio'}
t.enamorus.names = {T = 'Forma Totem', base = 'Forma Incarnazione'}
t.oinkologne.names = {F = 'Femmina', base = 'Maschio'}
t.palafin.names = {P = 'Forma Possente', base = 'Forma Ingenua'}
t.squawkabilly.names = {A = 'Piume Azzurre', G = 'Piume Gialle', B = 'Piume Bianche', base = 'Piume Verdi'}
t.gimmighoul.names = {A = 'Forma Ambulante', base = 'Forma Scrigno'}
-- stylua: ignore end
for _, v in pairs(t.mega) do
if not t[v] then
t[v] = { names = { base = ''"" } }
end
t[v].names.M = '"Mega'" .. string.fu(v)
end
for _, v in pairs(t.megaxy) do
if not t[v] then
t[v] = { names = { base = ''"" } }
end
local fu = string.fu(v)
t[v].names.MX = table.concat({' "Mega'", fu, '" X'" })
t[v].names.MY = table.concat({' "Mega'", fu, '" Y'" })
end
for _, v in pairs(t.archeo) do
if not t[v] then
t[v] = { names = { base = ''"" } }
end
t[v].names.A = '"Archeorisveglio'"
end
for _, v in pairs(t.alola) do
if not t[v] then
t[v] = { names = { base = ''"" } }
end
t[v].names.A = '"Forma di Alola'"
end
for _, v in pairs(t.galar) do
if not t[v] then
t[v] = { names = { base = ''"" } }
end
t[v].names.G = '"Forma di Galar'"
end
for _, v in pairs(t.gigamax) do
if not t[v] then
t[v] = { names = { base = ''"" } }
end
t[v].names.Gi = string.fu(v) .. " Gigamax"
end
for _, v in pairs(t.hisui) do
if not t[v] then
t[v] = { names = { base = ''"" } }
end
t[v].names.H = '"Forma di Hisui'"
end
for _, v in pairs(t.paldea) do
if not t[v] then
t[v] = { names = {base = ''} }
end
t[v].names.P = 'Forma di Paldea'
end
 
-- se diversi dal nome del Pokémon
 
t.rattata.anchor = '"Rattata e Raticate'"
t.sandshrew.anchor = '"Sandshrew e Sandslash'"
t.vulpix.anchor = '"Vulpix e Ninetales'"
t.diglett.anchor = '"Diglett e Dugtrio'"
t.persian.anchor = '"Meowth e Persian'"
t.geodude.anchor = '"Geodude, Graveler e Golem'"
t.ponyta.anchor = '"Ponyta e Rapidash'"
t.grimer.anchor = '"Grimer e Muk'"
t.zigzagoon.anchor = '"Zigzagoon e Linoone'"
-- t.wormadam.anchor = 'Burmy e Wormadam'
-- t.tornadus.anchor = 'Forze della Natura'
-- Table to map extended names to abbrs
 
-- stylua: ignore
t.pikachu.ext = {cosplay = 'Cs', rockstar = 'R', damigella = 'D',
confetto = 'Cn', scienziata = 'S', wrestler = 'W', compagno = 'Cm',
gigamax = 'Gi'}
t.eeveetauros.ext = {compagno Pa = 'Cm'"Pa", Pb = "Pb", Pc = "Pc" }
t.castformeevee.ext = {sole = 'S', pioggiacompagno = 'P', neve ="Cm" 'N'}
t.deoxyswooper.ext = {attacco = 'A', difesapaldea = 'D', ['velocità'] ="P" 'V'}
t.wormadamcastform.ext = {sabbia sole = 'Sa'"S", scartipioggia = 'Sc'"P", neve = "N" }
t.cherrimdeoxys.ext = {splendore attacco = 'S'"A", difesa = "D", ["velocità"] = "V" }
t.wormadam.ext = { sabbia = "Sa", scarti = "Sc" }
t.cherrim.ext = { splendore = "S" }
-- stylua: ignore
t.rotom.ext = {calore = 'C', lavaggio = 'L', gelo = 'G', vortice = 'V',
taglio = 'T'}
t.dialga.ext = { originale = '"O'", origine = '"O'" }
t.palkia.ext = { originale = '"O'", origine = '"O'" }
t.giratina.ext = { originale = '"O'", origine = '"O'" }
t.shaymin.ext = { cielo = '"C'" }
-- stylua: ignore
t.arceus.ext = {lotta = 'L', volante = 'Vo', veleno = 'Ve', terra = 'T',
t.arceus.ext = {lotta = 'L', volante = 'Vo', veleno = 'Ve', terra = 'T',
roccia = 'R', acqua = 'Aq', coleottero = 'C', erba = 'Er', psico = 'P',
buio = 'B', spettro = 'S', acciaio = 'Ai', fuoco = 'Fu', drago = 'D',
folletto = 'Fo', elettro = 'El', ghiaccio = 'G', coleot = 'C',
sconosciuto = 'Sc'}
t.basculin.ext = { lineablu = '"B'", lineabianca = '"Bi'" }
t.darmanitan.ext = { zen = '"Z'", galar = '"G'", ["galar zen"] = '"GZ'" }
t.tornadus.ext = { totem = '"T'" }
t.kyurem.ext = { nero = '"N'", bianco = '"B'" }
t.meloetta.ext = { danza = '"D'" }
t.greninja.ext = { ash = '"A'" }
t.meowstic.ext = { femmina = '"F'" }
t.aegislash.ext = { spada = '"S'" }
t.pumpkaboo.ext = { mini = '"S'", grande = '"L'", maxi = '"XL'" }
t.zygarde.ext = { dieci = '"D'", perfetto = '"P'" }
t.hoopa.ext = { libero = '"L'" }
t.lycanroc.ext = { notte = '"N'", crepuscolo = '"C'", giorno = '"base'" }
t.oricorio.ext = { cheerdance = '"C'", hula = '"H'", buyo = '"B'", flamenco = "base" }
t.wishiwashi.ext = { banco = "B", individuale = "base" }
flamenco = 'base'}
t.wishiwashi.ext = {banco = 'B', individuale = 'base'}
t.silvally.ext = mw.clone(t.arceus.ext)
t.silvally.ext.sconosciuto = nil
t.minior.ext = { nucleo = '"R'", meteora = '"base'" }
t.necrozma.ext = { vespro = '"V'", aurora = '"A'", ultra = '"U'", necrozma = '"base'" }
t.toxtricity.ext = { basso = '"B'", gigamax = '"Gi'", melodia = '"base'" }
t.alcremie.ext = { lattevaniglia = '"base'" }
t.eiscue.ext = { liquefaccia = '"L'", gelofaccia = '"base'" }
t.indeedee.ext = t.meowstic.ext
t.morpeko.ext = { panciavuota = '"V'", panciapiena = '"base'" }
t.zacian.ext = { eroe = '"base'", re = '"R'" }
t.zamazenta.ext = t.zacian.ext
t.eternatus.ext = { dynamax = '"D'" }
t.urshifu.ext = { pluricolpo = '"P'", gigamax = "Gi", singolcolpo = '"base'" }
t.calyrex.ext = { spettrale = '"S'", glaciale = '"G'" }
t.basculegion.ext = { femmina = '"F'" }
t.enamorus.ext = { totem = '"T'" }
t.gimmighouloinkologne.ext = {ambulante = 'A'}t.meowstic.ext
t.palafin.ext = { possente = "P", ingenua = "base" }
-- stylua: ignore
t.squawkabilly.ext = { azzurre = "A", gialle = "G", bianche = "B", verdi = "base" }
t.gimmighoul.ext = { ambulante = "A", scrigno = "base" }
for _, v in pairs(t.mega) do
t[v].ext = t[v].ext or {}
t[v].ext.mega = '"M'"
end
for _, v in pairs(t.megaxy) do
t[v].ext = t[v].ext or {}
t[v].ext.megax = '"MX'"
t[v].ext.megay = '"MY'"
end
for _, v in pairs(t.archeo) do
t[v].ext = t[v].ext or {}
t[v].ext.archeo = '"A'"
end
for _, v in pairs(t.alola) do
t[v].ext = t[v].ext or {}
t[v].ext.alola = '"A'"
end
for _, v in pairs(t.galar) do
t[v].ext = t[v].ext or {}
t[v].ext.galar = '"G'"
end
for _, v in pairs(t.gigamax) do
t[v].ext = t[v].ext or {}
t[v].ext.gigamax = "Gi"
end
for _, v in pairs(t.hisui) do
t[v].ext = t[v].ext or {}
t[v].ext.hisui = '"H'"
end
for _, v in pairs(t.paldea) do
t[v].ext = t[v].ext or {}
t[v].ext.paldea = 'P'
end
 
--]]
 
t.venusaur.gamesOrder = {' "base'", '"M'", '"Gi'" }
t.charizard.gamesOrder = {' "base'", '"MX'", '"MY'", '"Gi'" }
t.blastoise.gamesOrder = {' "base'", '"M'", '"Gi'" }
t.pikachu.gamesOrder = {' "base'", '"Cs'", '"R'", '"D'", '"Cn'", '"S'", '"W'", '"Cm'", '"Gi'" }
t.meowth.gamesOrder = {' "base'", '"A'", '"G'", '"Gi'" }
t.gengar.gamesOrder = {' "base'", '"M'", '"Gi'" }
t.slowbro.gamesOrder = {' "base'", '"M'", '"G'" }
t.eeveetauros.gamesOrder = {' "base'", 'Cm'"Pa", 'Gi'"Pb", "Pc" }
t.castformeevee.gamesOrder = {' "base'", 'S'"Cm", 'P',"Gi" 'N'}
t.deoxyswooper.gamesOrder = {' "base'", 'A', 'D',"P" 'V'}
t.wormadamcastform.gamesOrder = {' "base'", 'Sa'"S", 'Sc'"P", "N" }
t.cherrimdeoxys.gamesOrder = {' "base'", 'S'"A", "D", "V" }
t.rotomwormadam.gamesOrder = {' "base'", 'C'"Sa", 'L', 'G', 'V',"Sc" 'T'}
t.dialgacherrim.gamesOrder = {' "base'", 'O'"S" }
t.palkiarotom.gamesOrder = {' "base'", 'O'"C", "L", "G", "V", "T" }
t.giratinadialga.gamesOrder = {' "base'", '"O'" }
t.shayminpalkia.gamesOrder = {' "base'", 'C'"O" }
t.giratina.gamesOrder = { "base", "O" }
t.shaymin.gamesOrder = { "base", "C" }
-- stylua: ignore
t.arceus.gamesOrder = {'base', 'L', 'Vo', 'Ve', 'T', 'R', 'C', 'S', 'Ai', 'Fu',
'Aq', 'Er', 'El', 'P', 'G', 'D', 'B', 'Fo', 'Sc'}
t.basculin.gamesOrder = {' "base'", '"B'", '"Bi'" }
t.darmanitan.gamesOrder = {' "base'", '"Z'", '"G'", '"GZ'" }
t.tornadus.gamesOrder = {' "base'", '"T'" }
t.kyurem.gamesOrder = {' "base'", '"B'", '"N'" }
t.meloetta.gamesOrder = {' "base'", '"D'" }
t.greninja.gamesOrder = {' "base'", '"A'" }
t.meowstic.gamesOrder = {' "base'", '"F'" }
t.aegislash.gamesOrder = {' "base'", '"S'" }
t.pumpkaboo.gamesOrder = {' "base'", '"S'", '"L'", '"XL'" }
t.zygarde.gamesOrder = {' "D'", '"base'", '"P'" }
t.hoopa.gamesOrder = {' "base'", '"L'" }
t.lycanroc.gamesOrder = {' "base'", '"N'", '"C'" }
t.oricorio.gamesOrder = {' "base'", '"C'", '"H'", '"B'" }
t.wishiwashi.gamesOrder = {' "base'", '"B'" }
t.silvally.gamesOrder = mw.clone(t.arceus.gamesOrder)
table.remove(t.silvally.gamesOrder)
t.minior.gamesOrder = {' "base'", '"R'" }
t.necrozma.gamesOrder = {' "base'", '"V'", '"A'", '"U'" }
t.toxtricity.gamesOrder = {' "base'", '"B'", '"Gi'" }
t.eiscue.gamesOrder = {' "base'", '"L'" }
t.indeedee.gamesOrder = t.meowstic.gamesOrder
t.morpeko.gamesOrder = {' "base'", '"V'" }
t.zacian.gamesOrder = {' "base'", '"R'" }
t.zamazenta.gamesOrder = t.zacian.gamesOrder
t.eternatus.gamesOrder = {' "base'", '"D'" }
t.urshifu.gamesOrder = {' "base'", '"Gi'", '"P'", '"PGi'" }
t.calyrex.gamesOrder = {' "base'", '"G'", '"S'" }
t.basculegion.gamesOrder = {' "base'", '"F'" }
t.enamorus.gamesOrder = {' "base'", '"T'" }
t.gimmighouloinkologne.gamesOrder = {'base', 'A'}t.meowstic.gamesOrder
t.palafin.gamesOrder = { "base", "P" }
t.squawkabilly.gamesOrder = { "base", "A", "G", "B" }
t.gimmighoul.gamesOrder = { "base", "A" }
for _, v in pairs(t.mega) do
t[v].gamesOrder = t[v].gamesOrder or {' "base'", '"M'" }
end
for _, v in pairs(t.megaxy) do
t[v].gamesOrder = t[v].gamesOrder or {' "base'", '"MX'", '"MY'" }
end
for _, v in pairs(t.archeo) do
t[v].gamesOrder = t[v].gamesOrder or {' "base'", '"A'" }
end
for _, v in pairs(t.alola) do
t[v].gamesOrder = t[v].gamesOrder or {' "base'", '"A'" }
end
for _, v in pairs(t.galar) do
t[v].gamesOrder = t[v].gamesOrder or {' "base'", '"G'" }
end
for _, v in pairs(t.gigamax) do
t[v].gamesOrder = t[v].gamesOrder or { "base", "Gi" }
end
for _, v in pairs(t.hisui) do
t[v].gamesOrder = t[v].gamesOrder or {' "base'", '"H'" }
end
for _, v in pairs(t.paldea) do
t[v].gamesOrder = t[v].gamesOrder or {'base', 'P'}
end
 
 
for _, v in pairs(t.mega) do
t[v].cries = {' "M'" }
end
for _, v in pairs(t.megaxy) do
t[v].cries = {' "MX'", '"MY'" }
end
for _, v in pairs(t.archeo) do
t[v].cries = {' "A'" }
end
t.slowbro.cries = {' "M'" }
t.shaymin.cries = {' "C'" }
t.tornadus.cries = {' "T'" }
t.kyurem.cries = {' "B'", '"N'" }
t.pumpkaboo.cries = {' "XL'" }
t.zygarde.cries = {' "D'", '"P'" }
t.hoopa.cries = {' "L'" }
t.oricorio.cries = {' "C'", '"H'", '"B'" }
t.lycanroc.cries = {' "N'", '"C'" }
t.wishiwashi.cries = {' "B'" }
t.necrozma.cries = {' "V'", '"A'", '"U'" }
 
--[[
--]]
 
t.rattata.since = { A = '"sl'", base = '"rb'" }
-- stylua: ignore
t.pikachu.since = {Cs = 'roza', R = 'roza', D = 'roza',
Cn = 'roza', S = 'roza', W = 'roza', Cm = 'lgpe',
Gi = 'spsc', base = 'rb'}
t.raichu.since = { A = '"sl'", base = '"rb'" }
t.sandshrew.since = { A = '"sl'", base = '"rb'" }
t.vulpix.since = { A = '"sl'", base = '"rb'" }
t.diglett.since = { A = '"sl'", base = '"rb'" }
t.meowth.since = { A = '"sl'", G = '"spsc'", Gi = '"spsc'", base = '"rb'" }
t.persian.since = { A = '"sl'", base = '"rb'" }
t.growlithe.since = { H = '"lpa'", base = '"rb'" }
t.geodude.since = { A = '"sl'", base = '"rb'" }
t.ponyta.since = { G = '"spsc'", base = '"rb'" }
t.slowpoke.since = { G = '"spsc'", base = '"rb'" }
t.slowbro.since = { M = '"roza'", G = '"spsc'", base = '"rb'" }
t["farfetch'd"].since = { G = '"spsc'", base = '"rb'" }
t.grimer.since = { A = '"sl'", base = '"rb'" }
t.voltorb.since = { H = '"lpa'", base = '"rb'" }
t.exeggutor.since = { A = '"sl'", base = '"rb'" }
t.marowak.since = { A = '"sl'", base = '"rb'" }
t.weezing.since = { G = '"spsc'", base = '"rb'" }
t['"mr. mime'"].since = { G = '"spsc'", base = '"rb'" }
t.eeveetauros.since = {Cm Pa = 'lgpe'"sv", GiPb = 'spsc'"sv", Pc = "sv", base = '"rb'" }
t.articunoeevee.since = {G Cm = '"lgpe", Gi = "spsc'", base = '"rb'" }
t.zapdosarticuno.since = { G = '"spsc'", base = '"rb'" }
t.moltreszapdos.since = { G = '"spsc'", base = '"rb'" }
t.woopermoltres.since = {P G = 'sv'"spsc", base = 'oa'"rb" }
t.slowkingwooper.since = {G P = 'spsc'"sv", base = '"oa'" }
t.typhlosionslowking.since = {H G = 'lpa'"spsc", base = '"oa'" }
t.qwilfishtyphlosion.since = { H = '"lpa'", base = '"oa'" }
t.sneaselqwilfish.since = { H = '"lpa'", base = '"oa'" }
t.corsolasneasel.since = {G H = 'spsc'"lpa", base = '"oa'" }
t.zigzagooncorsola.since = { G = '"spsc'", base = 'rz'"oa" }
t.castformzigzagoon.since = {S = 'rz', PG = 'rz'"spsc", Nbase = '"rz'," base = 'rz'}
t.deoxyscastform.since = {A S = 'rfvf'"rz", DP = 'rfvf'"rz", VN = 's'"rz", base = '"rz'" }
t.wormadamdeoxys.since = {Sa A = 'dp'"rfvf", ScD = 'dp'"rfvf", V = "s", base = 'dp'"rz" }
t.cherrimwormadam.since = {S Sa = '"dp'", Sc = "dp", base = '"dp'" }
t.rotomcherrim.since = {C = 'pt', LS = 'pt', G = 'pt', V = 'pt', T = 'pt'"dp", base = '"dp'" }
t.dialgarotom.since = {O = 'lpa', base = 'dp'}
t.palkia.since = {O C = 'lpa'"pt", L = "pt", G = "pt", V = "pt", T = "pt", base = '"dp'" }
t.giratinadialga.since = { O = 'pt'"lpa", base = '"dp'" }
t.shayminpalkia.since = {C O = 'pt'"lpa", base = '"dp'" }
t.giratina.since = { O = "pt", base = "dp" }
t.shaymin.since = { C = "pt", base = "dp" }
-- stylua: ignore
t.arceus.since = {base = 'dp', L = 'dp', Vo = 'dp', Ve = 'dp', T = 'dp',
R = 'dp', Aq = 'dp', C = 'dp', Er = 'dp', P = 'dp', B = 'dp', S = 'dp',
Ai = 'dp', Fu = 'dp', D = 'dp', Fo = 'xy', El = 'dp', G = 'dp', Sc = 'dp'}
t.samurott.since = { H = '"lpa'", base = '"nb'" }
t.lilligant.since = { H = '"lpa'", base = '"nb'" }
t.basculin.since = { B = '"nb'", Bi = '"lpa'", base = '"nb'" }
t.darumaka.since = { G = '"spsc'", base = '"nb'" }
t.darmanitan.since = { Z = '"nb'", G = '"spsc'", GZ = '"spsc'", base = '"nb'" }
t.yamask.since = { G = '"spsc'", base = '"rz'" }
t.zorua.since = { H = '"lpa'", base = '"nb'" }
t.stunfisk.since = { G = '"spsc'", base = '"nb'" }
t.braviary.since = { H = '"lpa'", base = '"nb'" }
t.tornadus.since = { T = '"n2b2'", base = '"nb'" }
t.kyurem.since = { N = '"n2b2'", B = '"n2b2'", base = '"nb'" }
t.meloetta.since = { D = '"nb'", base = '"nb'" }
t.greninja.since = { A = '"sl'", base = '"xy'" }
t.meowstic.since = { F = '"xy'", base = '"xy'" }
t.aegislash.since = { S = '"xy'", base = '"xy'" }
t.sliggoo.since = { H = '"lpa'", base = '"xy'" }
t.pumpkaboo.since = { S = '"xy'", L = '"xy'", XL = '"xy'", base = '"xy'" }
t.avalugg.since = { H = '"lpa'", base = '"xy'" }
t.zygarde.since = { D = '"sl'", P = '"sl'", base = '"xy'" }
t.hoopa.since = { L = '"roza'", base = '"xy'" }
t.decidueye.since = { H = '"lpa'", base = '"sl'" }
t.lycanroc.since = { N = '"sl'", base = '"sl'", C = '"usul'" }
t.oricorio.since = { C = '"sl'", H = '"sl'", B = '"sl'", base = '"sl'" }
t.wishiwashi.since = { B = '"sl'", base = '"sl'" }
-- stylua: ignore
t.silvally.since = {base = 'sl', L = 'sl', Vo = 'sl', Ve = 'sl', T = 'sl',
R = 'sl', Aq = 'sl', C = 'sl', Er = 'sl', P = 'sl', B = 'sl', S = 'sl',
Ai = 'sl', Fu = 'sl', D = 'sl', Fo = 'sl', El = 'sl', G = 'sl'}
t.minior.since = { base = '"sl'", R = '"sl'" }
t.necrozma.since = { base = '"sl'", V = '"usul'", A = '"usul'", U = '"usul'" }
t.toxtricity.since = { B = '"spsc'", Gi = '"spsc'", base = '"spsc'" }
t.eiscue.since = { L = '"spsc'", base = '"spsc'" }
t.indeedee.since = { F = '"spsc'", base = '"spsc'" }
t.morpeko.since = { base = '"spsc'", V = '"spsc'" }
t.zacian.since = { R = '"spsc'", base = '"spsc'" }
t.zamazenta.since = { R = '"spsc'", base = '"spsc'" }
t.eternatus.since = { D = '"spsc'", base = '"spsc'" }
t.urshifu.since = { P = '"spsc'", Gi = '"spsc'", PGi = '"spsc'", base = '"spsc'" }
t.calyrex.since = { G = '"spsc'", S = '"spsc'", base = '"spsc'" }
t.basculegion.since = { F = '"lpa'", base = '"lpa'" }
t.enamorus.since = { T = '"lpa'", base = '"lpa'" }
t.gimmighouloinkologne.since = {T F = '"sv'", base = '"sv'" }
t.venusaurpalafin.since = {M = 'xy', GiP = 'spsc'"sv", base = 'rb'"sv" }
t.blastoisesquawkabilly.since = {M A = 'xy'"sv", GiG = 'spsc'"sv", B = "sv", base = 'rb'"sv" }
t.beedrillgimmighoul.since = {M A = 'roza'"sv", base = 'rb'"sv" }
t.pidgeotvenusaur.since = { M = 'roza'"xy", Gi = "spsc", base = '"rb'" }
t.alakazamblastoise.since = { M = '"xy'", Gi = "spsc", base = '"rb'" }
t.gengarbeedrill.since = { M = 'xy', Gi = 'spsc'"roza", base = '"rb'" }
t.kangaskhanpidgeot.since = { M = 'xy'"roza", base = '"rb'" }
t.pinsiralakazam.since = { M = '"xy'", base = '"rb'" }
t.gyaradosgengar.since = { M = '"xy'", Gi = "spsc", base = '"rb'" }
t.aerodactylkangaskhan.since = { M = '"xy'", base = '"rb'" }
t.ampharospinsir.since = { M = '"xy'", base = 'oa'"rb" }
t.steelixgyarados.since = { M = 'roza'"xy", base = 'oa'"rb" }
t.scizoraerodactyl.since = { M = '"xy'", base = 'oa'"rb" }
t.heracrossampharos.since = { M = '"xy'", base = '"oa'" }
t.houndoomsteelix.since = { M = 'xy'"roza", base = '"oa'" }
t.tyranitarscizor.since = { M = '"xy'", base = '"oa'" }
t.sceptileheracross.since = { M = 'roza'"xy", base = 'rz'"oa" }
t.blazikenhoundoom.since = { M = '"xy'", base = 'rz'"oa" }
t.swamperttyranitar.since = { M = 'roza'"xy", base = 'rz'"oa" }
t.gardevoirsceptile.since = { M = 'xy'"roza", base = '"rz'" }
t.sableyeblaziken.since = { M = 'roza'"xy", base = '"rz'" }
t.mawileswampert.since = { M = 'xy'"roza", base = '"rz'" }
t.aggrongardevoir.since = { M = '"xy'", base = '"rz'" }
t.medichamsableye.since = { M = 'xy'"roza", base = '"rz'" }
t.manectricmawile.since = { M = '"xy'", base = '"rz'" }
t.banetteaggron.since = { M = '"xy'", base = '"rz'" }
t.sharpedomedicham.since = { M = 'roza'"xy", base = '"rz'" }
t.cameruptmanectric.since = { M = 'roza'"xy", base = '"rz'" }
t.altariabanette.since = { M = 'roza'"xy", base = '"rz'" }
t.absolsharpedo.since = { M = 'xy'"roza", base = '"rz'" }
t.glaliecamerupt.since = { M = '"roza'", base = '"rz'" }
t.salamencealtaria.since = { M = '"roza'", base = '"rz'" }
t.metagrossabsol.since = { M = 'roza'"xy", base = '"rz'" }
t.latiasglalie.since = { M = '"roza'", base = '"rz'" }
t.latiossalamence.since = { M = '"roza'", base = '"rz'" }
t.rayquazametagross.since = { M = '"roza'", base = '"rz'" }
t.lopunnylatias.since = { M = '"roza'", base = 'dp'"rz" }
t.garchomplatios.since = { M = 'xy'"roza", base = 'dp'"rz" }
t.lucariorayquaza.since = { M = 'xy'"roza", base = 'dp'"rz" }
t.abomasnowlopunny.since = { M = 'xy'"roza", base = '"dp'" }
t.galladegarchomp.since = { M = 'roza'"xy", base = '"dp'" }
t.audinolucario.since = { M = 'roza'"xy", base = 'nb'"dp" }
t.diancieabomasnow.since = { M = 'roza'"xy", base = 'xy'"dp" }
t.charizardgallade.since = {MX = 'xy', MYM = 'xy'"roza", Gibase = 'spsc', base ="dp" 'rb'}
t.mewtwoaudino.since = {MX = 'xy', MYM = 'xy'"roza", base = 'rb'"nb" }
t.groudondiancie.since = {A M = '"roza'", base = 'rz'"xy" }
t.kyogrecharizard.since = {A MX = 'roza'"xy", MY = "xy", Gi = "spsc", base = 'rz'"rb" }
t.butterfreemewtwo.since = {base MX = 'rb'"xy", GiMY = 'spsc'"xy", base = "rb" }
t.machampgroudon.since = {base A = 'rb'"roza", Gibase = 'spsc'"rz" }
t.kinglerkyogre.since = {base A = 'rb'"roza", Gibase = 'spsc'"rz" }
t.laprasbutterfree.since = { base = '"rb'", Gi = '"spsc'" }
t.snorlaxmachamp.since = { base = '"rb'", Gi = '"spsc'" }
t.garbodorkingler.since = { base = 'nb'"rb", Gi = '"spsc'" }
t.melmetallapras.since = { base = 'lgpe'"rb", Gi = '"spsc'" }
t.rillaboomsnorlax.since = { base = 'spsc'"rb", Gi = '"spsc'" }
t.cinderacegarbodor.since = { base = 'spsc'"nb", Gi = '"spsc'" }
t.inteleonmelmetal.since = { base = 'spsc'"lgpe", Gi = '"spsc'" }
t.corviknightrillaboom.since = { base = '"spsc'", Gi = '"spsc'" }
t.orbeetlecinderace.since = { base = '"spsc'", Gi = '"spsc'" }
t.drednawinteleon.since = { base = '"spsc'", Gi = '"spsc'" }
t.coalossalcorviknight.since = { base = '"spsc'", Gi = '"spsc'" }
t.flappleorbeetle.since = { base = '"spsc'", Gi = '"spsc'" }
t.appletundrednaw.since = { base = '"spsc'", Gi = '"spsc'" }
t.sandacondacoalossal.since = { base = '"spsc'", Gi = '"spsc'" }
t.centiskorchflapple.since = { base = '"spsc'", Gi = '"spsc'" }
t.hattereneappletun.since = { base = '"spsc'", Gi = '"spsc'" }
t.grimmsnarlsandaconda.since = { base = '"spsc'", Gi = '"spsc'" }
t.alcremiecentiskorch.since = { base = '"spsc'", Gi = '"spsc'" }
t.copperajahhatterene.since = { base = '"spsc'", Gi = '"spsc'" }
t.duraludongrimmsnarl.since = { base = '"spsc'", Gi = '"spsc'" }
t.alcremie.since = { base = "spsc", Gi = "spsc" }
t.copperajah.since = { base = "spsc", Gi = "spsc" }
t.duraludon.since = { base = "spsc", Gi = "spsc" }
 
--[[
--]]
 
-- stylua: ignore
t.pikachu['until'] = {Cs = 'roza', R = 'roza', D = 'roza',
Cnt.pikachu["until"] = '{ Cs = "roza'", SR = '"roza'", WD = '"roza'", CmCn = 'lgpe'}"roza",
t.eevee['until'] S = {"roza", W = "roza", Cm = '"lgpe'" }
t.arceuseevee['"until'"] = {Sc Cm = 'hgss'"lgpe" }
t.arceus["until"] = { Sc = "hgss" }
 
-- Alias, messi qui per evitare inutili iterazioni dei cicli precedenti
-- to avoid useless repetitions of cycles
-- Otehr Alola forms
table.insert(t.alola, '"raticate'")
table.insert(t.alola, '"sandslash'")
table.insert(t.alola, '"ninetales'")
table.insert(t.alola, '"dugtrio'")
table.insert(t.alola, '"meowth'")
table.insert(t.alola, '"graveler'")
table.insert(t.alola, '"golem'")
table.insert(t.alola, '"muk'")
-- Other Galar forms
table.insert(t.galar, '"rapidash'")
table.insert(t.galar, '"linoone'")
-- Other Hisuian forms
table.insert(t.hisui, '"arcanine'")
table.insert(t.hisui, '"electrode'")
table.insert(t.hisui, '"zoroark'")
table.insert(t.hisui, '"goodra'")
-- Other Gigamax forms
table.insert(t.gigamax, '"pikachu'")
table.insert(t.gigamax, '"toxtricity'")
table.insert(t.gigamax, '"urshifu'")
 
-- Link creation should be done AFTER copying Pokémon with same forms, in order
t[105] = t.marowak
t[110] = t.weezing
t[122] = t['"mr. mime'"]
t[128] = t.tauros
t[133] = t.eevee
t[144] = t.articuno
t[902] = t.basculegion
t[905] = t.enamorus
-- t[916] = t.oinkologne
-- t[934] = t.palafin
-- t[960] = t.squawkabilly
-- t[976] = t.gimmighoul
t[3] = t.venusaur
t[9] = t.blastoise
79 548

contributi