mirror of
https://github.com/smogon/pokemon-showdown.git
synced 2026-03-21 17:25:10 -05:00
Z-A: Add DLC Pokemon (#11613)
* Z-A: Add DLC Pokemon * za ou learnsets * zaou changes * skip test 4 now * dfadasas
This commit is contained in:
parent
7828ec3220
commit
30ff784f2c
|
|
@ -3448,8 +3448,8 @@ export const Formats: import('../sim/dex-formats').FormatList = [
|
|||
}
|
||||
const item = this.dex.items.get(set.item);
|
||||
if (set.item && item.megaStone) {
|
||||
const megaSpecies = this.dex.species.get(item.megaStone);
|
||||
if (species.baseSpecies === item.megaEvolves && megaSpecies.bst > 625) {
|
||||
const megaSpecies = this.dex.species.get(Array.isArray(item.megaStone) ? item.megaStone[0] : item.megaStone);
|
||||
if (item.megaEvolves?.includes(species.baseSpecies) && megaSpecies.bst > 625) {
|
||||
return [
|
||||
`${set.name || set.species}'s item ${item.name} is banned.`, `(Pok\u00e9mon with a BST higher than 625 are banned)`,
|
||||
];
|
||||
|
|
|
|||
|
|
@ -723,8 +723,7 @@ export const Aliases: import('../sim/dex').AliasesTable = {
|
|||
sawsbuckautumn: "Sawsbuck",
|
||||
sawsbuckwinter: "Sawsbuck",
|
||||
tatsugiricurly: "Tatsugiri",
|
||||
tatsugiridroopy: "Tatsugiri",
|
||||
tatsugiristretchy: "Tatsugiri",
|
||||
tatsugirimega: "Tatsugiri-Curly-Mega",
|
||||
unowna: "Unown",
|
||||
unownb: "Unown",
|
||||
unownc: "Unown",
|
||||
|
|
|
|||
|
|
@ -259,6 +259,14 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable =
|
|||
doublesTier: "(DUU)",
|
||||
natDexTier: "RU",
|
||||
},
|
||||
raichumegax: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
raichumegay: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
sandshrew: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -2293,6 +2301,10 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable =
|
|||
doublesTier: "(DUU)",
|
||||
natDexTier: "RU",
|
||||
},
|
||||
chimechomega: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
absol: {
|
||||
isNonstandard: "Past",
|
||||
tier: "Illegal",
|
||||
|
|
@ -2303,6 +2315,10 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable =
|
|||
tier: "Illegal",
|
||||
natDexTier: "RU",
|
||||
},
|
||||
absolmegaz: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
snorunt: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -2531,6 +2547,10 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable =
|
|||
doublesTier: "(DUU)",
|
||||
natDexTier: "RU",
|
||||
},
|
||||
staraptormega: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
bidoof: {
|
||||
isNonstandard: "Past",
|
||||
tier: "Illegal",
|
||||
|
|
@ -2719,6 +2739,10 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable =
|
|||
tier: "Illegal",
|
||||
natDexTier: "(OU)",
|
||||
},
|
||||
garchompmegaz: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
riolu: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -2732,6 +2756,10 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable =
|
|||
tier: "Illegal",
|
||||
natDexTier: "Uber",
|
||||
},
|
||||
lucariomegaz: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
hippopotas: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -2854,6 +2882,10 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable =
|
|||
doublesTier: "DUU",
|
||||
natDexTier: "OU",
|
||||
},
|
||||
heatranmega: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
regigigas: {
|
||||
tier: "ZU",
|
||||
doublesTier: "(DUU)",
|
||||
|
|
@ -2889,6 +2921,10 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable =
|
|||
doublesTier: "DUber",
|
||||
natDexTier: "Uber",
|
||||
},
|
||||
darkraimega: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
shaymin: {
|
||||
tier: "ZU",
|
||||
doublesTier: "(DUU)",
|
||||
|
|
@ -3574,6 +3610,10 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable =
|
|||
doublesTier: "(DUU)",
|
||||
natDexTier: "RU",
|
||||
},
|
||||
golurkmega: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
pawniard: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -3885,6 +3925,14 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable =
|
|||
doublesTier: "(DUU)",
|
||||
natDexTier: "RU",
|
||||
},
|
||||
meowsticmega: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
meowsticfmega: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
honedge: {
|
||||
isNonstandard: "Past",
|
||||
tier: "Illegal",
|
||||
|
|
@ -4241,6 +4289,10 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable =
|
|||
doublesTier: "(DUU)",
|
||||
natDexTier: "RU",
|
||||
},
|
||||
crabominablemega: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
oricorio: {
|
||||
tier: "ZU",
|
||||
doublesTier: "(DUU)",
|
||||
|
|
@ -4410,6 +4462,10 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable =
|
|||
tier: "Illegal",
|
||||
natDexTier: "RU",
|
||||
},
|
||||
golisopodmega: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
sandygast: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -4685,6 +4741,14 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable =
|
|||
doublesTier: "DUber",
|
||||
natDexTier: "Uber",
|
||||
},
|
||||
magearnamega: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
magearnaoriginalmega: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
marshadow: {
|
||||
isNonstandard: "Past",
|
||||
tier: "Illegal",
|
||||
|
|
@ -4715,6 +4779,10 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable =
|
|||
tier: "Illegal",
|
||||
natDexTier: "UU",
|
||||
},
|
||||
zeraoramega: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
meltan: {
|
||||
isNonstandard: "Past",
|
||||
tier: "Illegal",
|
||||
|
|
@ -5352,6 +5420,10 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable =
|
|||
doublesTier: "(DUU)",
|
||||
natDexTier: "RU",
|
||||
},
|
||||
scovillainmega: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
tadbulb: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -5400,11 +5472,27 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable =
|
|||
doublesTier: "DUU",
|
||||
natDexTier: "Uber",
|
||||
},
|
||||
baxcaliburmega: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
tatsugiri: {
|
||||
tier: "PU",
|
||||
doublesTier: "(DUU)",
|
||||
natDexTier: "RU",
|
||||
},
|
||||
tatsugiricurlymega: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
tatsugiridroopymega: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
tatsugiristretchymega: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
cyclizar: {
|
||||
tier: "RU",
|
||||
doublesTier: "(DUU)",
|
||||
|
|
@ -5468,6 +5556,10 @@ export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable =
|
|||
doublesTier: "DOU",
|
||||
natDexTier: "UU",
|
||||
},
|
||||
glimmoramega: {
|
||||
isNonstandard: "Future",
|
||||
tier: "Illegal",
|
||||
},
|
||||
shroodle: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
|
|||
268
data/items.ts
268
data/items.ts
|
|
@ -47,6 +47,20 @@ export const Items: import('../sim/dex-items').ItemDataTable = {
|
|||
gen: 6,
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
absolitez: {
|
||||
name: "Absolite Z",
|
||||
spritenum: 576,
|
||||
megaStone: "Absol-Mega-Z",
|
||||
megaEvolves: "Absol",
|
||||
itemUser: ["Absol"],
|
||||
onTakeItem(item, source) {
|
||||
if (item.megaEvolves === source.baseSpecies.baseSpecies) return false;
|
||||
return true;
|
||||
},
|
||||
num: 2588,
|
||||
gen: 9,
|
||||
isNonstandard: "Future",
|
||||
},
|
||||
absorbbulb: {
|
||||
name: "Absorb Bulb",
|
||||
spritenum: 2,
|
||||
|
|
@ -408,6 +422,20 @@ export const Items: import('../sim/dex-items').ItemDataTable = {
|
|||
gen: 9,
|
||||
isNonstandard: "Future",
|
||||
},
|
||||
baxcalibrite: {
|
||||
name: "Baxcalibrite",
|
||||
spritenum: 0,
|
||||
megaStone: "Baxcalibur-Mega",
|
||||
megaEvolves: "Baxcalibur",
|
||||
itemUser: ["Baxcalibur"],
|
||||
onTakeItem(item, source) {
|
||||
if (item.megaEvolves === source.baseSpecies.baseSpecies) return false;
|
||||
return true;
|
||||
},
|
||||
num: 2601,
|
||||
gen: 9,
|
||||
isNonstandard: "Future",
|
||||
},
|
||||
beastball: {
|
||||
name: "Beast Ball",
|
||||
spritenum: 661,
|
||||
|
|
@ -947,6 +975,20 @@ export const Items: import('../sim/dex-items').ItemDataTable = {
|
|||
gen: 5,
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
chimechite: {
|
||||
name: "Chimechite",
|
||||
spritenum: 0,
|
||||
megaStone: "Chimecho-Mega",
|
||||
megaEvolves: "Chimecho",
|
||||
itemUser: ["Chimecho"],
|
||||
onTakeItem(item, source) {
|
||||
if (item.megaEvolves === source.baseSpecies.baseSpecies) return false;
|
||||
return true;
|
||||
},
|
||||
num: 2587,
|
||||
gen: 9,
|
||||
isNonstandard: "Future",
|
||||
},
|
||||
chippedpot: {
|
||||
name: "Chipped Pot",
|
||||
spritenum: 720,
|
||||
|
|
@ -1213,6 +1255,20 @@ export const Items: import('../sim/dex-items').ItemDataTable = {
|
|||
num: 1885,
|
||||
gen: 9,
|
||||
},
|
||||
crabominite: {
|
||||
name: "Crabominite",
|
||||
spritenum: 0,
|
||||
megaStone: "Crabominable-Mega",
|
||||
megaEvolves: "Crabominable",
|
||||
itemUser: ["Crabominable"],
|
||||
onTakeItem(item, source) {
|
||||
if (item.megaEvolves === source.baseSpecies.baseSpecies) return false;
|
||||
return true;
|
||||
},
|
||||
num: 2595,
|
||||
gen: 9,
|
||||
isNonstandard: "Future",
|
||||
},
|
||||
crackedpot: {
|
||||
name: "Cracked Pot",
|
||||
spritenum: 719,
|
||||
|
|
@ -1298,6 +1354,20 @@ export const Items: import('../sim/dex-items').ItemDataTable = {
|
|||
gen: 7,
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
darkranite: {
|
||||
name: "Darkranite",
|
||||
spritenum: 0,
|
||||
megaStone: "Darkrai-Mega",
|
||||
megaEvolves: "Darkrai",
|
||||
itemUser: ["Darkrai"],
|
||||
onTakeItem(item, source) {
|
||||
if (item.megaEvolves === source.baseSpecies.baseSpecies) return false;
|
||||
return true;
|
||||
},
|
||||
num: 2593,
|
||||
gen: 9,
|
||||
isNonstandard: "Future",
|
||||
},
|
||||
dawnstone: {
|
||||
name: "Dawn Stone",
|
||||
spritenum: 92,
|
||||
|
|
@ -2415,6 +2485,20 @@ export const Items: import('../sim/dex-items').ItemDataTable = {
|
|||
gen: 6,
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
garchompitez: {
|
||||
name: "Garchompite Z",
|
||||
spritenum: 573,
|
||||
megaStone: "Garchomp-Mega-Z",
|
||||
megaEvolves: "Garchomp",
|
||||
itemUser: ["Garchomp"],
|
||||
onTakeItem(item, source) {
|
||||
if (item.megaEvolves === source.baseSpecies.baseSpecies) return false;
|
||||
return true;
|
||||
},
|
||||
num: 2590,
|
||||
gen: 9,
|
||||
isNonstandard: "Future",
|
||||
},
|
||||
gardevoirite: {
|
||||
name: "Gardevoirite",
|
||||
spritenum: 587,
|
||||
|
|
@ -2499,6 +2583,20 @@ export const Items: import('../sim/dex-items').ItemDataTable = {
|
|||
gen: 6,
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
glimmoranite: {
|
||||
name: "Glimmoranite",
|
||||
spritenum: 0,
|
||||
megaStone: "Glimmora-Mega",
|
||||
megaEvolves: "Glimmora",
|
||||
itemUser: ["Glimmora"],
|
||||
onTakeItem(item, source) {
|
||||
if (item.megaEvolves === source.baseSpecies.baseSpecies) return false;
|
||||
return true;
|
||||
},
|
||||
num: 2600,
|
||||
gen: 9,
|
||||
isNonstandard: "Future",
|
||||
},
|
||||
goldbottlecap: {
|
||||
name: "Gold Bottle Cap",
|
||||
spritenum: 697,
|
||||
|
|
@ -2508,6 +2606,34 @@ export const Items: import('../sim/dex-items').ItemDataTable = {
|
|||
num: 796,
|
||||
gen: 7,
|
||||
},
|
||||
golisopite: {
|
||||
name: "Golisopite",
|
||||
spritenum: 0,
|
||||
megaStone: "Golisopod-Mega",
|
||||
megaEvolves: "Golisopod",
|
||||
itemUser: ["Golisopod"],
|
||||
onTakeItem(item, source) {
|
||||
if (item.megaEvolves === source.baseSpecies.baseSpecies) return false;
|
||||
return true;
|
||||
},
|
||||
num: 2596,
|
||||
gen: 9,
|
||||
isNonstandard: "Future",
|
||||
},
|
||||
golurkite: {
|
||||
name: "Golurkite",
|
||||
spritenum: 0,
|
||||
megaStone: "Golurk-Mega",
|
||||
megaEvolves: "Golurk",
|
||||
itemUser: ["Golurk"],
|
||||
onTakeItem(item, source) {
|
||||
if (item.megaEvolves === source.baseSpecies.baseSpecies) return false;
|
||||
return true;
|
||||
},
|
||||
num: 2594,
|
||||
gen: 9,
|
||||
isNonstandard: "Future",
|
||||
},
|
||||
grassgem: {
|
||||
name: "Grass Gem",
|
||||
spritenum: 172,
|
||||
|
|
@ -2790,6 +2916,20 @@ export const Items: import('../sim/dex-items').ItemDataTable = {
|
|||
num: 2408,
|
||||
gen: 9,
|
||||
},
|
||||
heatranite: {
|
||||
name: "Heatranite",
|
||||
spritenum: 0,
|
||||
megaStone: "Heatran-Mega",
|
||||
megaEvolves: "Heatran",
|
||||
itemUser: ["Heatran"],
|
||||
onTakeItem(item, source) {
|
||||
if (item.megaEvolves === source.baseSpecies.baseSpecies) return false;
|
||||
return true;
|
||||
},
|
||||
num: 2592,
|
||||
gen: 9,
|
||||
isNonstandard: "Future",
|
||||
},
|
||||
heatrock: {
|
||||
name: "Heat Rock",
|
||||
spritenum: 193,
|
||||
|
|
@ -3472,6 +3612,20 @@ export const Items: import('../sim/dex-items').ItemDataTable = {
|
|||
gen: 6,
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
lucarionitez: {
|
||||
name: "Lucarionite Z",
|
||||
spritenum: 594,
|
||||
megaStone: "Lucario-Mega-Z",
|
||||
megaEvolves: "Lucario",
|
||||
itemUser: ["Lucario"],
|
||||
onTakeItem(item, source) {
|
||||
if (item.megaEvolves === source.baseSpecies.baseSpecies) return false;
|
||||
return true;
|
||||
},
|
||||
num: 2591,
|
||||
gen: 9,
|
||||
isNonstandard: "Future",
|
||||
},
|
||||
luckypunch: {
|
||||
name: "Lucky Punch",
|
||||
spritenum: 261,
|
||||
|
|
@ -3615,6 +3769,20 @@ export const Items: import('../sim/dex-items').ItemDataTable = {
|
|||
gen: 3,
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
magearnite: {
|
||||
name: "Magearnite",
|
||||
spritenum: 0,
|
||||
megaStone: ["Magearna-Mega", "Magearna-Original-Mega"],
|
||||
megaEvolves: ["Magearna", "Magearna-Original"],
|
||||
itemUser: ["Magearna", "Magearna-Original"],
|
||||
onTakeItem(item, source) {
|
||||
if (item.megaEvolves!.includes(source.baseSpecies.name)) return false;
|
||||
return true;
|
||||
},
|
||||
num: 2597,
|
||||
gen: 9,
|
||||
isNonstandard: "Future",
|
||||
},
|
||||
magmarizer: {
|
||||
name: "Magmarizer",
|
||||
spritenum: 272,
|
||||
|
|
@ -3872,6 +4040,20 @@ export const Items: import('../sim/dex-items').ItemDataTable = {
|
|||
num: 219,
|
||||
gen: 3,
|
||||
},
|
||||
meowsticite: {
|
||||
name: "Meowsticite",
|
||||
spritenum: 0,
|
||||
megaStone: ["Meowstic-Mega", "Meowstic-F-Mega"],
|
||||
megaEvolves: ["Meowstic", "Meowstic-F"],
|
||||
itemUser: ["Meowstic", "Meowstic-F"],
|
||||
onTakeItem(item, source) {
|
||||
if (source.baseSpecies.num === 678) return false;
|
||||
return true;
|
||||
},
|
||||
num: 2594,
|
||||
gen: 9,
|
||||
isNonstandard: "Future",
|
||||
},
|
||||
metagrossite: {
|
||||
name: "Metagrossite",
|
||||
spritenum: 618,
|
||||
|
|
@ -4976,6 +5158,36 @@ export const Items: import('../sim/dex-items').ItemDataTable = {
|
|||
gen: 3,
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
raichunitex: {
|
||||
name: "Raichunite X",
|
||||
spritenum: 0,
|
||||
megaStone: "Raichu-Mega-X",
|
||||
megaEvolves: "Raichu",
|
||||
itemUser: ["Raichu"],
|
||||
onTakeItem(item, source) {
|
||||
if (item.megaEvolves === source.baseSpecies.name ||
|
||||
item.megaStone === source.baseSpecies.name) return false;
|
||||
return true;
|
||||
},
|
||||
num: 2585,
|
||||
gen: 9,
|
||||
isNonstandard: "Future",
|
||||
},
|
||||
raichunitey: {
|
||||
name: "Raichunite Y",
|
||||
spritenum: 0,
|
||||
megaStone: "Raichu-Mega-Y",
|
||||
megaEvolves: "Raichu",
|
||||
itemUser: ["Raichu"],
|
||||
onTakeItem(item, source) {
|
||||
if (item.megaEvolves === source.baseSpecies.name ||
|
||||
item.megaStone === source.baseSpecies.name) return false;
|
||||
return true;
|
||||
},
|
||||
num: 2586,
|
||||
gen: 9,
|
||||
isNonstandard: "Future",
|
||||
},
|
||||
rarebone: {
|
||||
name: "Rare Bone",
|
||||
spritenum: 379,
|
||||
|
|
@ -5493,6 +5705,20 @@ export const Items: import('../sim/dex-items').ItemDataTable = {
|
|||
num: 232,
|
||||
gen: 2,
|
||||
},
|
||||
scovillainite: {
|
||||
name: "Scovillainite",
|
||||
spritenum: 0,
|
||||
megaStone: "Scovillain-Mega",
|
||||
megaEvolves: "Scovillain",
|
||||
itemUser: ["Scovillain"],
|
||||
onTakeItem(item, source) {
|
||||
if (item.megaEvolves === source.baseSpecies.baseSpecies) return false;
|
||||
return true;
|
||||
},
|
||||
num: 2599,
|
||||
gen: 9,
|
||||
isNonstandard: "Future",
|
||||
},
|
||||
scraftinite: {
|
||||
name: "Scraftinite",
|
||||
spritenum: 555,
|
||||
|
|
@ -5900,6 +6126,20 @@ export const Items: import('../sim/dex-items').ItemDataTable = {
|
|||
gen: 2,
|
||||
isPokeball: true,
|
||||
},
|
||||
staraptite: {
|
||||
name: "Staraptite",
|
||||
spritenum: 0,
|
||||
megaStone: "Staraptor-Mega",
|
||||
megaEvolves: "Staraptor",
|
||||
itemUser: ["Staraptor"],
|
||||
onTakeItem(item, source) {
|
||||
if (item.megaEvolves === source.baseSpecies.baseSpecies) return false;
|
||||
return true;
|
||||
},
|
||||
num: 2589,
|
||||
gen: 9,
|
||||
isNonstandard: "Future",
|
||||
},
|
||||
starfberry: {
|
||||
name: "Starf Berry",
|
||||
spritenum: 472,
|
||||
|
|
@ -6183,6 +6423,20 @@ export const Items: import('../sim/dex-items').ItemDataTable = {
|
|||
num: 1117,
|
||||
gen: 8,
|
||||
},
|
||||
tatsugirinite: {
|
||||
name: "Tatsugirinite",
|
||||
spritenum: 0,
|
||||
megaStone: ["Tatsugiri-Curly-Mega", "Tatsugiri-Droopy-Mega", "Tatsugiri-Stretchy-Mega"],
|
||||
megaEvolves: ["Tatsugiri", "Tatsugiri-Droopy", "Tatsugiri-Stretchy"],
|
||||
itemUser: ["Tatsugiri", "Tatsugiri-Droopy", "Tatsugiri-Stretchy"],
|
||||
onTakeItem(item, source) {
|
||||
if (item.megaEvolves!.includes(source.baseSpecies.name)) return false;
|
||||
return true;
|
||||
},
|
||||
num: 2601,
|
||||
gen: 9,
|
||||
isNonstandard: "Future",
|
||||
},
|
||||
terrainextender: {
|
||||
name: "Terrain Extender",
|
||||
spritenum: 662,
|
||||
|
|
@ -7719,6 +7973,20 @@ export const Items: import('../sim/dex-items').ItemDataTable = {
|
|||
num: 300,
|
||||
gen: 4,
|
||||
},
|
||||
zeraorite: {
|
||||
name: "Zeraorite",
|
||||
spritenum: 0,
|
||||
megaStone: "Zeraora-Mega",
|
||||
megaEvolves: "Zeraora",
|
||||
itemUser: ["Zeraora"],
|
||||
onTakeItem(item, source) {
|
||||
if (item.megaEvolves === source.baseSpecies.baseSpecies) return false;
|
||||
return true;
|
||||
},
|
||||
num: 2598,
|
||||
gen: 9,
|
||||
isNonstandard: "Future",
|
||||
},
|
||||
zoomlens: {
|
||||
name: "Zoom Lens",
|
||||
spritenum: 574,
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable
|
|||
if (set.item && this.dex.items.get(set.item).megaStone) {
|
||||
const item = this.dex.items.get(set.item);
|
||||
if (item.megaEvolves === species.baseSpecies) {
|
||||
species = this.dex.species.get(item.megaStone);
|
||||
species = this.dex.species.get(Array.isArray(item.megaStone) ? item.megaStone[0] : item.megaStone);
|
||||
}
|
||||
}
|
||||
if (
|
||||
|
|
@ -123,7 +123,9 @@ export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable
|
|||
}
|
||||
if (set.item) {
|
||||
const item = this.dex.items.get(set.item);
|
||||
if (item.megaEvolves === set.species) godSpecies = this.dex.species.get(item.megaStone);
|
||||
if (item.megaEvolves === set.species) {
|
||||
godSpecies = this.dex.species.get(Array.isArray(item.megaStone) ? item.megaStone[0] : item.megaStone);
|
||||
}
|
||||
if (["Zacian", "Zamazenta"].includes(godSpecies.baseSpecies) && item.id.startsWith('rusted')) {
|
||||
godSpecies = this.dex.species.get(set.species + "-Crowned");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -101,6 +101,12 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
raichualola: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
raichumegax: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
raichumegay: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
sandshrew: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
|
|
@ -134,11 +140,23 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
ninetalesalola: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
igglybuff: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
jigglypuff: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
wigglytuff: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
zubat: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
golbat: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
crobat: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
oddish: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -168,19 +186,22 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
meowth: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
meowthalola: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
meowthgalar: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
persian: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
persianalola: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
perrserker: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
psyduck: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -189,10 +210,13 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
mankey: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
primeape: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
annihilape: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
growlithe: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -293,6 +317,18 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
magneton: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
magnezone: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
farfetchd: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
farfetchdgalar: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
sirfetchd: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
doduo: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
|
|
@ -365,6 +401,15 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
exeggutoralola: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
cubone: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
marowak: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
marowakalola: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
hitmonlee: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
|
|
@ -410,6 +455,18 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
starmiemega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
mimejr: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
mrmime: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
mrmimegalar: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
mrrime: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
scyther: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
|
|
@ -465,7 +522,13 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: null,
|
||||
},
|
||||
porygon: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
porygon2: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
porygonz: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
aerodactyl: {
|
||||
isNonstandard: null,
|
||||
|
|
@ -507,13 +570,13 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: null,
|
||||
},
|
||||
mewtwo: {
|
||||
isNonstandard: "Unobtainable",
|
||||
isNonstandard: null,
|
||||
},
|
||||
mewtwomegax: {
|
||||
isNonstandard: "Unobtainable",
|
||||
isNonstandard: null,
|
||||
},
|
||||
mewtwomegay: {
|
||||
isNonstandard: "Unobtainable",
|
||||
isNonstandard: null,
|
||||
},
|
||||
mew: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -584,9 +647,6 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
cleffa: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
igglybuff: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
mareep: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
|
|
@ -690,10 +750,13 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
qwilfish: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
qwilfishhisui: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
overqwil: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
scizor: {
|
||||
isNonstandard: null,
|
||||
|
|
@ -758,9 +821,6 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
donphan: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
porygon2: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
stantler: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
|
|
@ -810,31 +870,40 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
treecko: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
grovyle: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
sceptile: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
sceptilemega: {
|
||||
isNonstandard: "Unobtainable",
|
||||
},
|
||||
torchic: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
combusken: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
blaziken: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
blazikenmega: {
|
||||
isNonstandard: "Unobtainable",
|
||||
},
|
||||
mudkip: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
marshtomp: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
swampert: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
swampertmega: {
|
||||
isNonstandard: "Unobtainable",
|
||||
},
|
||||
poochyena: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -969,10 +1038,10 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: null,
|
||||
},
|
||||
gulpin: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
swalot: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
carvanha: {
|
||||
isNonstandard: null,
|
||||
|
|
@ -996,10 +1065,10 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
spoink: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
grumpig: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
trapinch: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -1026,10 +1095,10 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: null,
|
||||
},
|
||||
zangoose: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
seviper: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
barboach: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -1044,10 +1113,13 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
feebas: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
milotic: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
kecleon: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
shuppet: {
|
||||
isNonstandard: null,
|
||||
|
|
@ -1067,8 +1139,14 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
tropius: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
chingling: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
chimecho: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
chimechomega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
absol: {
|
||||
isNonstandard: null,
|
||||
|
|
@ -1076,6 +1154,9 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
absolmega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
absolmegaz: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
snorunt: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
|
|
@ -1122,19 +1203,34 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
latias: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
latiasmega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
latios: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
latiosmega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
kyogre: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
kyogreprimal: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
groudon: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
groudonprimal: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
rayquaza: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
rayquazamega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
jirachi: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -1179,13 +1275,16 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
starly: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
staravia: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
staraptor: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
staraptormega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
kricketot: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -1265,9 +1364,6 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
honchkrow: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
chingling: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
stunky: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
|
|
@ -1301,6 +1397,9 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
garchompmega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
garchompmegaz: {
|
||||
isNonstandard: "Unobtainable",
|
||||
},
|
||||
munchlax: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
|
|
@ -1313,6 +1412,9 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
lucariomega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
lucariomegaz: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
hippopotas: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
|
|
@ -1343,9 +1445,6 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
weavile: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
magnezone: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
rhyperior: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
|
|
@ -1370,9 +1469,6 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
mamoswine: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
porygonz: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
gallade: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
|
|
@ -1392,22 +1488,22 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: null,
|
||||
},
|
||||
rotom: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
rotomheat: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
rotomwash: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
rotomfrost: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
rotomfan: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
rotommow: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
uxie: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -1431,7 +1527,10 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
heatran: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
heatranmega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
regigigas: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -1452,7 +1551,10 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
darkrai: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
darkraimega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
shaymin: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -1553,6 +1655,12 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
watchog: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
purrloin: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
liepard: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
pansage: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
|
|
@ -1571,6 +1679,12 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
simipour: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
munna: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
musharna: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
blitzle: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
|
|
@ -1610,6 +1724,12 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
leavanny: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
throh: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
sawk: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
venipede: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
|
|
@ -1664,6 +1784,18 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
scraftymega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
yamask: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
yamaskgalar: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
cofagrigus: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
runerigus: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
trubbish: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
|
|
@ -1731,10 +1863,10 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: null,
|
||||
},
|
||||
foongus: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
amoonguss: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
alomomola: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -1785,7 +1917,7 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
cryogonal: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
stunfisk: {
|
||||
isNonstandard: null,
|
||||
|
|
@ -1800,10 +1932,13 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
golett: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
golurk: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
golurkmega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
pawniard: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -1842,13 +1977,13 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
cobalion: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
terrakion: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
virizion: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
tornadus: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -1884,16 +2019,27 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
keldeo: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
keldeoresolute: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
meloetta: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
meloettapirouette: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
genesect: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
genesectdouse: {
|
||||
},
|
||||
genesectshock: {
|
||||
},
|
||||
genesectburn: {
|
||||
},
|
||||
genesectchill: {
|
||||
},
|
||||
chespin: {
|
||||
isNonstandard: null,
|
||||
|
|
@ -2012,6 +2158,12 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
meowsticf: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
meowsticmega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
meowsticfmega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
honedge: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
|
|
@ -2255,10 +2407,22 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
crabrawler: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
crabominable: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
crabominablemega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
wimpod: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
golisopod: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
golisopodmega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
oricorio: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -2342,10 +2506,10 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
sandygast: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
palossand: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
minior: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -2357,10 +2521,10 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
mimikyu: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
mimikyubusted: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
bruxish: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -2402,10 +2566,31 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
magearna: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
magearnaoriginal: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
magearnamega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
magearnaoriginalmega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
marshadow: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
zeraora: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
zeraoramega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
meltan: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
melmetal: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
grookey: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -2441,13 +2626,13 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
rookidee: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
corvisquire: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
corviknight: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
chewtle: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -2494,14 +2679,19 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
barraskewda: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
nickit: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
thievul: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
toxel: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
toxtricity: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
toxtricitylowkey: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
sinistea: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -2533,15 +2723,18 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
grimmsnarl: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
perrserker: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
milcery: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
alcremie: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
clobbopus: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
grapploct: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
falinks: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
|
|
@ -2567,16 +2760,15 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
indeedee: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
indeedeef: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
morpeko: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
morpekohangry: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
cufant: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -2651,7 +2843,7 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
kleavor: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
ursaluna: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -2668,9 +2860,6 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
sneasler: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
overqwil: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
enamorus: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
|
|
@ -2744,10 +2933,10 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
fidough: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
dachsbun: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
smoliv: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -2759,34 +2948,34 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
squawkabilly: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
squawkabillyblue: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
squawkabillyyellow: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
squawkabillywhite: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
squawkabillyyellow: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
nacli: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
naclstack: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
garganacl: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
charcadet: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
armarouge: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
ceruledge: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
tadbulb: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -2801,16 +2990,16 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
maschiff: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
mabosstiff: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
shroodle: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
grafaiai: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
bramblin: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -2828,10 +3017,13 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
capsakid: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
scovillain: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
scovillainmega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
rellor: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -2846,13 +3038,13 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
tinkatink: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
tinkatuff: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
tinkaton: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
wiglett: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -2879,25 +3071,28 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
cyclizar: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
orthworm: {
|
||||
isNonstandard: "Past",
|
||||
},
|
||||
glimmet: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
glimmora: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
glimmoramega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
greavard: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
houndstone: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
flamigo: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
cetoddle: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -2909,13 +3104,25 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
dondozo: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
tatsugiri: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
annihilape: {
|
||||
isNonstandard: "Past",
|
||||
tatsugiridroopy: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
tatsugiristretchy: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
tatsugiricurlymega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
tatsugiridroopymega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
tatsugiristretchymega: {
|
||||
isNonstandard: null,
|
||||
},
|
||||
clodsire: {
|
||||
isNonstandard: "Past",
|
||||
|
|
@ -2969,22 +3176,25 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
isNonstandard: "Past",
|
||||
},
|
||||
frigibax: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
arctibax: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
baxcalibur: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
baxcaliburmega: {
|
||||
isNonstandard: "Unobtainable",
|
||||
},
|
||||
gimmighoul: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
gimmighoulroaming: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
gholdengo: {
|
||||
isNonstandard: "Past",
|
||||
isNonstandard: null,
|
||||
},
|
||||
wochien: {
|
||||
isNonstandard: "Past",
|
||||
|
|
|
|||
|
|
@ -3,10 +3,6 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable
|
|||
inherit: true,
|
||||
baseStats: { hp: 60, atk: 140, def: 105, spa: 130, spd: 105, spe: 120 },
|
||||
},
|
||||
scyther: {
|
||||
inherit: true,
|
||||
evos: ["Scizor"],
|
||||
},
|
||||
mawilemega: {
|
||||
inherit: true,
|
||||
baseStats: { hp: 50, atk: 147, def: 125, spa: 55, spd: 95, spe: 50 },
|
||||
|
|
|
|||
|
|
@ -1,140 +0,0 @@
|
|||
export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = {
|
||||
ange: {
|
||||
gen: 9,
|
||||
desc: "Gain 1/16 of max HP at the end of every turn. Opposing Megas have 1/12 max HP drained every turn.",
|
||||
shortDesc: "Gain 1/16 max HP at end of every turn. Against Megas: drain 1/12 max HP every turn.",
|
||||
onResidualOrder: 5,
|
||||
onResidualSubOrder: 4,
|
||||
onResidual(pokemon) {
|
||||
if (!pokemon.hp) return;
|
||||
const megaFoes = [];
|
||||
for (const target of pokemon.foes()) {
|
||||
if (target.baseSpecies.isMega) megaFoes.push(target);
|
||||
}
|
||||
if (megaFoes.length) {
|
||||
for (const target of megaFoes) {
|
||||
this.damage(target.baseMaxhp / 12, target, pokemon);
|
||||
this.heal(target.baseMaxhp / 12);
|
||||
}
|
||||
} else {
|
||||
this.heal(pokemon.baseMaxhp / 16);
|
||||
}
|
||||
},
|
||||
name: "Ange",
|
||||
},
|
||||
brassbond: {
|
||||
onPrepareHit(source, target, move) {
|
||||
if (move.category === 'Status' || move.multihit || move.flags['noparentalbond'] || move.flags['charge'] ||
|
||||
move.flags['futuremove'] || move.spreadHit || move.isZ || move.isMax) return;
|
||||
move.multihit = 3;
|
||||
move.multihitType = 'brassbond' as 'parentalbond';
|
||||
},
|
||||
onTryBoost(boost, target, source, effect) {
|
||||
if (effect.effectType === 'Move' && effect.multihitType && effect.hit > 1 &&
|
||||
source && target === source) {
|
||||
let i: keyof BoostsTable;
|
||||
for (i in boost) {
|
||||
delete boost[i];
|
||||
}
|
||||
}
|
||||
},
|
||||
// Damage modifier implemented in BattleActions#modifyDamage()
|
||||
onSourceModifySecondaries(secondaries, target, source, move) {
|
||||
if (move.multihitType && move.hit > 1) {
|
||||
return [];
|
||||
}
|
||||
},
|
||||
flags: {},
|
||||
name: "Brass Bond",
|
||||
gen: 9,
|
||||
desc: "This Pokemon's damaging moves hit 3x. Successive hits do 15% damage without added effects.",
|
||||
shortDesc: "This Pokemon's damaging moves hit 3x. Successive hits do 15% damage without added effects.",
|
||||
},
|
||||
contrarian: {
|
||||
onChangeBoost(boost, target, source, effect) {
|
||||
if (effect && effect.id === 'zpower') return;
|
||||
let i: BoostID;
|
||||
for (i in boost) {
|
||||
boost[i]! *= -2;
|
||||
}
|
||||
},
|
||||
name: "Contrarian",
|
||||
desc: "This Pokemon has its stat changes inverted and doubled.",
|
||||
shortDesc: "This Pokemon has its stat changes inverted and doubled.",
|
||||
gen: 9,
|
||||
},
|
||||
corrosion: {
|
||||
inherit: true,
|
||||
onModifyMovePriority: -5,
|
||||
onModifyMove(move) {
|
||||
if (!move.ignoreImmunity) move.ignoreImmunity = {};
|
||||
if (move.ignoreImmunity !== true) {
|
||||
move.ignoreImmunity['Poison'] = true;
|
||||
}
|
||||
},
|
||||
shortDesc: "This Pokemon can poison a Pokemon regardless of its typing and hit them with Poison moves.",
|
||||
},
|
||||
ionbattery: {
|
||||
onModifySpAPriority: 5,
|
||||
onModifySpA(spa, pokemon) {
|
||||
return this.chainModify(1.5);
|
||||
},
|
||||
flags: { breakable: 1 },
|
||||
name: "Ion Battery",
|
||||
desc: "This Pokemon floats and has 1.5x Sp. Atk.",
|
||||
shortDesc: "This Pokemon floats and has 1.5x Sp. Atk.",
|
||||
},
|
||||
luchadorspride: {
|
||||
onSourceAfterFaint(length, target, source, effect) {
|
||||
if (effect && effect.effectType === 'Move') {
|
||||
this.boost({ spe: length }, source);
|
||||
}
|
||||
},
|
||||
flags: {},
|
||||
name: "Luchador's Pride",
|
||||
desc: "This Pokemon's Speed is raised by 1 stage if it attacks and knocks out another Pokemon.",
|
||||
shortDesc: "This Pokemon's Speed is raised by 1 stage if it attacks and KOes another Pokemon.",
|
||||
gen: 9,
|
||||
},
|
||||
protectivethorns: {
|
||||
gen: 9,
|
||||
name: "Protective Thorns",
|
||||
desc: "Bulletproof + Iron Barbs.",
|
||||
shortDesc: "Bulletproof + Iron Barbs.",
|
||||
onTryHit(pokemon, target, move) {
|
||||
if (move.flags['bullet']) {
|
||||
this.add('-immune', pokemon, '[from] ability: Protective Thorns');
|
||||
return null;
|
||||
}
|
||||
},
|
||||
onDamagingHitOrder: 1,
|
||||
onDamagingHit(damage, target, source, move) {
|
||||
if (this.checkMoveMakesContact(move, source, target, true)) {
|
||||
this.damage(source.baseMaxhp / 8, source, target);
|
||||
}
|
||||
},
|
||||
flags: { breakable: 1 },
|
||||
},
|
||||
minus: {
|
||||
inherit: true,
|
||||
onModifySpAPriority: 5,
|
||||
onModifySpA(spa, pokemon) {
|
||||
for (const allyActive of pokemon.allies()) {
|
||||
if (allyActive.hasAbility(['minus', 'plus', 'ionbattery'])) {
|
||||
return this.chainModify(1.5);
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
plus: {
|
||||
inherit: true,
|
||||
onModifySpAPriority: 5,
|
||||
onModifySpA(spa, pokemon) {
|
||||
for (const allyActive of pokemon.allies()) {
|
||||
if (allyActive.hasAbility(['minus', 'plus', 'ionbattery'])) {
|
||||
return this.chainModify(1.5);
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
|
|
@ -77,6 +77,12 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
raichualola: {
|
||||
tier: "UU",
|
||||
},
|
||||
raichumegax: {
|
||||
tier: "OU",
|
||||
},
|
||||
raichumegay: {
|
||||
tier: "OU",
|
||||
},
|
||||
clefairy: {
|
||||
tier: "NFE",
|
||||
},
|
||||
|
|
@ -86,6 +92,51 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
clefablemega: {
|
||||
tier: "(OU)",
|
||||
},
|
||||
igglybuff: {
|
||||
tier: "LC",
|
||||
},
|
||||
jigglypuff: {
|
||||
tier: "NFE",
|
||||
},
|
||||
wigglytuff: {
|
||||
tier: "OU",
|
||||
},
|
||||
zubat: {
|
||||
tier: "LC",
|
||||
},
|
||||
golbat: {
|
||||
tier: "NFE",
|
||||
},
|
||||
crobat: {
|
||||
tier: "OU",
|
||||
},
|
||||
meowth: {
|
||||
tier: "LC",
|
||||
},
|
||||
meowthalola: {
|
||||
tier: "LC",
|
||||
},
|
||||
meowthgalar: {
|
||||
tier: "LC",
|
||||
},
|
||||
persian: {
|
||||
tier: "OU",
|
||||
},
|
||||
persianalola: {
|
||||
tier: "OU",
|
||||
},
|
||||
perrserker: {
|
||||
tier: "OU",
|
||||
},
|
||||
mankey: {
|
||||
tier: "LC",
|
||||
},
|
||||
primeape: {
|
||||
tier: "NFE",
|
||||
},
|
||||
annihilape: {
|
||||
tier: "OU",
|
||||
},
|
||||
abra: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -134,6 +185,15 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
slowbrogalar: {
|
||||
tier: "UU",
|
||||
},
|
||||
farfetchd: {
|
||||
tier: "OU",
|
||||
},
|
||||
farfetchdgalar: {
|
||||
tier: "LC",
|
||||
},
|
||||
sirfetchd: {
|
||||
tier: "OU",
|
||||
},
|
||||
gastly: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -149,6 +209,15 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
onix: {
|
||||
tier: "LC",
|
||||
},
|
||||
cubone: {
|
||||
tier: "LC",
|
||||
},
|
||||
marowak: {
|
||||
tier: "OU",
|
||||
},
|
||||
marowakalola: {
|
||||
tier: "OU",
|
||||
},
|
||||
kangaskhan: {
|
||||
tier: "UU",
|
||||
},
|
||||
|
|
@ -164,6 +233,18 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
starmiemega: {
|
||||
tier: "OU",
|
||||
},
|
||||
mimejr: {
|
||||
tier: "LC",
|
||||
},
|
||||
mrmime: {
|
||||
tier: "OU",
|
||||
},
|
||||
mrmimegalar: {
|
||||
tier: "NFE",
|
||||
},
|
||||
mrrime: {
|
||||
tier: "OU",
|
||||
},
|
||||
scyther: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -173,6 +254,15 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
pinsirmega: {
|
||||
tier: "UU",
|
||||
},
|
||||
porygon: {
|
||||
tier: "LC",
|
||||
},
|
||||
porygon2: {
|
||||
tier: "NFE",
|
||||
},
|
||||
porygonz: {
|
||||
tier: "OU",
|
||||
},
|
||||
magikarp: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -287,6 +377,15 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
steelixmega: {
|
||||
tier: "UU",
|
||||
},
|
||||
qwilfish: {
|
||||
tier: "OU",
|
||||
},
|
||||
qwilfishhisui: {
|
||||
tier: "LC",
|
||||
},
|
||||
overqwil: {
|
||||
tier: "OU",
|
||||
},
|
||||
scizor: {
|
||||
tier: "OU",
|
||||
},
|
||||
|
|
@ -329,6 +428,42 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
tyranitarmega: {
|
||||
tier: "(OU)",
|
||||
},
|
||||
treecko: {
|
||||
tier: "LC",
|
||||
},
|
||||
grovyle: {
|
||||
tier: "NFE",
|
||||
},
|
||||
sceptile: {
|
||||
tier: "OU",
|
||||
},
|
||||
sceptilemega: {
|
||||
tier: "OU",
|
||||
},
|
||||
torchic: {
|
||||
tier: "LC",
|
||||
},
|
||||
combusken: {
|
||||
tier: "NFE",
|
||||
},
|
||||
blaziken: {
|
||||
tier: "OU",
|
||||
},
|
||||
blazikenmega: {
|
||||
tier: "OU",
|
||||
},
|
||||
mudkip: {
|
||||
tier: "LC",
|
||||
},
|
||||
marshtomp: {
|
||||
tier: "NFE",
|
||||
},
|
||||
swampert: {
|
||||
tier: "OU",
|
||||
},
|
||||
swampertmega: {
|
||||
tier: "OU",
|
||||
},
|
||||
ralts: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -386,6 +521,12 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
roselia: {
|
||||
tier: "NFE",
|
||||
},
|
||||
gulpin: {
|
||||
tier: "LC",
|
||||
},
|
||||
swalot: {
|
||||
tier: "OU",
|
||||
},
|
||||
carvanha: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -404,6 +545,12 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
cameruptmega: {
|
||||
tier: "UU",
|
||||
},
|
||||
spoink: {
|
||||
tier: "LC",
|
||||
},
|
||||
grumpig: {
|
||||
tier: "OU",
|
||||
},
|
||||
swablu: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -413,6 +560,21 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
altariamega: {
|
||||
tier: "UU",
|
||||
},
|
||||
zangoose: {
|
||||
tier: "OU",
|
||||
},
|
||||
seviper: {
|
||||
tier: "OU",
|
||||
},
|
||||
feebas: {
|
||||
tier: "LC",
|
||||
},
|
||||
milotic: {
|
||||
tier: "OU",
|
||||
},
|
||||
kecleon: {
|
||||
tier: "OU",
|
||||
},
|
||||
shuppet: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -422,12 +584,24 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
banettemega: {
|
||||
tier: "UU",
|
||||
},
|
||||
chingling: {
|
||||
tier: "LC",
|
||||
},
|
||||
chimecho: {
|
||||
tier: "OU",
|
||||
},
|
||||
chimechomega: {
|
||||
tier: "OU",
|
||||
},
|
||||
absol: {
|
||||
tier: "UU",
|
||||
},
|
||||
absolmega: {
|
||||
tier: "UU",
|
||||
},
|
||||
absolmegaz: {
|
||||
tier: "OU",
|
||||
},
|
||||
snorunt: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -461,6 +635,48 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
metagrossmega: {
|
||||
tier: "Uber",
|
||||
},
|
||||
latias: {
|
||||
tier: "OU",
|
||||
},
|
||||
latiasmega: {
|
||||
tier: "OU",
|
||||
},
|
||||
latios: {
|
||||
tier: "OU",
|
||||
},
|
||||
latiosmega: {
|
||||
tier: "OU",
|
||||
},
|
||||
kyogre: {
|
||||
tier: "Uber",
|
||||
},
|
||||
kyogreprimal: {
|
||||
tier: "Uber",
|
||||
},
|
||||
groudon: {
|
||||
tier: "Uber",
|
||||
},
|
||||
groudonprimal: {
|
||||
tier: "Uber",
|
||||
},
|
||||
rayquaza: {
|
||||
tier: "Uber",
|
||||
},
|
||||
rayquazamega: {
|
||||
tier: "Uber",
|
||||
},
|
||||
starly: {
|
||||
tier: "LC",
|
||||
},
|
||||
staravia: {
|
||||
tier: "NFE",
|
||||
},
|
||||
staraptor: {
|
||||
tier: "OU",
|
||||
},
|
||||
staraptormega: {
|
||||
tier: "OU",
|
||||
},
|
||||
budew: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -488,6 +704,9 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
garchompmega: {
|
||||
tier: "(OU)",
|
||||
},
|
||||
garchompmegaz: {
|
||||
tier: "OU",
|
||||
},
|
||||
riolu: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -497,6 +716,9 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
lucariomega: {
|
||||
tier: "Uber",
|
||||
},
|
||||
lucariomegaz: {
|
||||
tier: "OU",
|
||||
},
|
||||
hippopotas: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -530,6 +752,36 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
froslassmega: {
|
||||
tier: "UU",
|
||||
},
|
||||
rotom: {
|
||||
tier: "OU",
|
||||
},
|
||||
rotomheat: {
|
||||
tier: "OU",
|
||||
},
|
||||
rotomwash: {
|
||||
tier: "OU",
|
||||
},
|
||||
rotomfrost: {
|
||||
tier: "OU",
|
||||
},
|
||||
rotomfan: {
|
||||
tier: "OU",
|
||||
},
|
||||
rotommow: {
|
||||
tier: "OU",
|
||||
},
|
||||
heatran: {
|
||||
tier: "OU",
|
||||
},
|
||||
heatranmega: {
|
||||
tier: "OU",
|
||||
},
|
||||
darkrai: {
|
||||
tier: "OU",
|
||||
},
|
||||
darkraimega: {
|
||||
tier: "OU",
|
||||
},
|
||||
tepig: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -548,6 +800,12 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
watchog: {
|
||||
tier: "UU",
|
||||
},
|
||||
purrloin: {
|
||||
tier: "LC",
|
||||
},
|
||||
liepard: {
|
||||
tier: "OU",
|
||||
},
|
||||
pansage: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -566,6 +824,12 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
simipour: {
|
||||
tier: "UU",
|
||||
},
|
||||
munna: {
|
||||
tier: "LC",
|
||||
},
|
||||
musharna: {
|
||||
tier: "OU",
|
||||
},
|
||||
drilbur: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -581,6 +845,12 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
audinomega: {
|
||||
tier: "UU",
|
||||
},
|
||||
throh: {
|
||||
tier: "OU",
|
||||
},
|
||||
sawk: {
|
||||
tier: "OU",
|
||||
},
|
||||
venipede: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -611,6 +881,18 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
scraftymega: {
|
||||
tier: "UU",
|
||||
},
|
||||
yamask: {
|
||||
tier: "LC",
|
||||
},
|
||||
yamaskgalar: {
|
||||
tier: "LC",
|
||||
},
|
||||
cofagrigus: {
|
||||
tier: "OU",
|
||||
},
|
||||
runerigus: {
|
||||
tier: "OU",
|
||||
},
|
||||
trubbish: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -629,6 +911,12 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
emolga: {
|
||||
tier: "UU",
|
||||
},
|
||||
foongus: {
|
||||
tier: "LC",
|
||||
},
|
||||
amoonguss: {
|
||||
tier: "OU",
|
||||
},
|
||||
tynamo: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -653,12 +941,54 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
chandeluremega: {
|
||||
tier: "UU",
|
||||
},
|
||||
cryogonal: {
|
||||
tier: "OU",
|
||||
},
|
||||
stunfisk: {
|
||||
tier: "UU",
|
||||
},
|
||||
stunfiskgalar: {
|
||||
tier: "UU",
|
||||
},
|
||||
golett: {
|
||||
tier: "LC",
|
||||
},
|
||||
golurk: {
|
||||
tier: "OU",
|
||||
},
|
||||
golurkmega: {
|
||||
tier: "OU",
|
||||
},
|
||||
cobalion: {
|
||||
tier: "OU",
|
||||
},
|
||||
terrakion: {
|
||||
tier: "OU",
|
||||
},
|
||||
virizion: {
|
||||
tier: "OU",
|
||||
},
|
||||
keldeo: {
|
||||
tier: "OU",
|
||||
},
|
||||
keldeoresolute: {
|
||||
},
|
||||
meloetta: {
|
||||
tier: "OU",
|
||||
},
|
||||
meloettapirouette: {
|
||||
},
|
||||
genesect: {
|
||||
tier: "OU",
|
||||
},
|
||||
genesectdouse: {
|
||||
},
|
||||
genesectshock: {
|
||||
},
|
||||
genesectburn: {
|
||||
},
|
||||
genesectchill: {
|
||||
},
|
||||
chespin: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -776,6 +1106,12 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
meowsticf: {
|
||||
tier: "OU",
|
||||
},
|
||||
meowsticmega: {
|
||||
tier: "OU",
|
||||
},
|
||||
meowsticfmega: {
|
||||
tier: "OU",
|
||||
},
|
||||
honedge: {
|
||||
tier: "LC",
|
||||
},
|
||||
|
|
@ -961,16 +1297,239 @@ export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormat
|
|||
volcanion: {
|
||||
tier: "OU",
|
||||
},
|
||||
crabrawler: {
|
||||
tier: "LC",
|
||||
},
|
||||
crabominable: {
|
||||
tier: "OU",
|
||||
},
|
||||
crabominablemega: {
|
||||
tier: "OU",
|
||||
},
|
||||
wimpod: {
|
||||
tier: "OU",
|
||||
},
|
||||
golisopod: {
|
||||
tier: "OU",
|
||||
},
|
||||
golisopodmega: {
|
||||
tier: "OU",
|
||||
},
|
||||
sandygast: {
|
||||
tier: "LC",
|
||||
},
|
||||
palossand: {
|
||||
tier: "OU",
|
||||
},
|
||||
drampa: {
|
||||
tier: "UU",
|
||||
},
|
||||
drampamega: {
|
||||
tier: "UU",
|
||||
},
|
||||
mimikyu: {
|
||||
tier: "OU",
|
||||
},
|
||||
magearna: {
|
||||
tier: "OU",
|
||||
},
|
||||
magearnaoriginal: {
|
||||
tier: "OU",
|
||||
},
|
||||
magearnamega: {
|
||||
tier: "OU",
|
||||
},
|
||||
magearnaoriginalmega: {
|
||||
tier: "OU",
|
||||
},
|
||||
marshadow: {
|
||||
tier: "Uber",
|
||||
},
|
||||
zeraora: {
|
||||
tier: "OU",
|
||||
},
|
||||
zeraoramega: {
|
||||
tier: "OU",
|
||||
},
|
||||
meltan: {
|
||||
tier: "OU",
|
||||
},
|
||||
melmetal: {
|
||||
tier: "OU",
|
||||
},
|
||||
rookidee: {
|
||||
tier: "LC",
|
||||
},
|
||||
corvisquire: {
|
||||
tier: "NFE",
|
||||
},
|
||||
corviknight: {
|
||||
tier: "OU",
|
||||
},
|
||||
nickit: {
|
||||
tier: "LC",
|
||||
},
|
||||
thievul: {
|
||||
tier: "OU",
|
||||
},
|
||||
toxel: {
|
||||
tier: "LC",
|
||||
},
|
||||
toxtricity: {
|
||||
tier: "OU",
|
||||
},
|
||||
toxtricitylowkey: {
|
||||
},
|
||||
clobbopus: {
|
||||
tier: "LC",
|
||||
},
|
||||
grapploct: {
|
||||
tier: "OU",
|
||||
},
|
||||
falinks: {
|
||||
tier: "UU",
|
||||
},
|
||||
falinksmega: {
|
||||
tier: "UU",
|
||||
},
|
||||
indeedee: {
|
||||
tier: "OU",
|
||||
},
|
||||
indeedeef: {
|
||||
tier: "OU",
|
||||
},
|
||||
morpeko: {
|
||||
tier: "OU",
|
||||
},
|
||||
morpekohangry: {
|
||||
},
|
||||
kleavor: {
|
||||
tier: "OU",
|
||||
},
|
||||
fidough: {
|
||||
tier: "LC",
|
||||
},
|
||||
dachsbun: {
|
||||
tier: "OU",
|
||||
},
|
||||
squawkabilly: {
|
||||
tier: "OU",
|
||||
},
|
||||
squawkabillyblue: {
|
||||
},
|
||||
squawkabillywhite: {
|
||||
},
|
||||
squawkabillyyellow: {
|
||||
},
|
||||
nacli: {
|
||||
tier: "LC",
|
||||
},
|
||||
naclstack: {
|
||||
tier: "NFE",
|
||||
},
|
||||
garganacl: {
|
||||
tier: "OU",
|
||||
},
|
||||
charcadet: {
|
||||
tier: "LC",
|
||||
},
|
||||
armarouge: {
|
||||
tier: "OU",
|
||||
},
|
||||
ceruledge: {
|
||||
tier: "OU",
|
||||
},
|
||||
maschiff: {
|
||||
tier: "LC",
|
||||
},
|
||||
mabosstiff: {
|
||||
tier: "OU",
|
||||
},
|
||||
shroodle: {
|
||||
tier: "LC",
|
||||
},
|
||||
grafaiai: {
|
||||
tier: "OU",
|
||||
},
|
||||
capsakid: {
|
||||
tier: "LC",
|
||||
},
|
||||
scovillain: {
|
||||
tier: "OU",
|
||||
},
|
||||
scovillainmega: {
|
||||
tier: "OU",
|
||||
},
|
||||
tinkatink: {
|
||||
tier: "LC",
|
||||
},
|
||||
tinkatuff: {
|
||||
tier: "NFE",
|
||||
},
|
||||
tinkaton: {
|
||||
tier: "OU",
|
||||
},
|
||||
cyclizar: {
|
||||
tier: "OU",
|
||||
},
|
||||
glimmet: {
|
||||
tier: "LC",
|
||||
},
|
||||
glimmora: {
|
||||
tier: "OU",
|
||||
},
|
||||
glimmoramega: {
|
||||
tier: "OU",
|
||||
},
|
||||
greavard: {
|
||||
tier: "LC",
|
||||
},
|
||||
houndstone: {
|
||||
tier: "OU",
|
||||
},
|
||||
flamigo: {
|
||||
tier: "OU",
|
||||
},
|
||||
dondozo: {
|
||||
tier: "OU",
|
||||
},
|
||||
tatsugiri: {
|
||||
tier: "OU",
|
||||
},
|
||||
tatsugiridroopy: {
|
||||
tier: "OU",
|
||||
},
|
||||
tatsugiristretchy: {
|
||||
tier: "OU",
|
||||
},
|
||||
tatsugiricurlymega: {
|
||||
tier: "OU",
|
||||
},
|
||||
tatsugiridroopymega: {
|
||||
tier: "OU",
|
||||
},
|
||||
tatsugiristretchymega: {
|
||||
tier: "OU",
|
||||
},
|
||||
frigibax: {
|
||||
tier: "LC",
|
||||
},
|
||||
arctibax: {
|
||||
tier: "NFE",
|
||||
},
|
||||
baxcalibur: {
|
||||
tier: "OU",
|
||||
},
|
||||
baxcaliburmega: {
|
||||
tier: "OU",
|
||||
},
|
||||
gimmighoul: {
|
||||
tier: "LC",
|
||||
},
|
||||
gimmighoulroaming: {
|
||||
tier: "LC",
|
||||
},
|
||||
gholdengo: {
|
||||
tier: "OU",
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -13,26 +13,6 @@ export const Items: import('../../../sim/dex-items').ModdedItemDataTable = {
|
|||
return true;
|
||||
},
|
||||
},
|
||||
chesnaughtite: {
|
||||
inherit: true,
|
||||
isNonstandard: "Unobtainable",
|
||||
},
|
||||
delphoxite: {
|
||||
inherit: true,
|
||||
isNonstandard: "Unobtainable",
|
||||
},
|
||||
mewtwonitex: {
|
||||
inherit: true,
|
||||
isNonstandard: "Unobtainable",
|
||||
},
|
||||
mewtwonitey: {
|
||||
inherit: true,
|
||||
isNonstandard: "Unobtainable",
|
||||
},
|
||||
diancite: {
|
||||
inherit: true,
|
||||
isNonstandard: "Unobtainable",
|
||||
},
|
||||
zygardite: {
|
||||
inherit: true,
|
||||
onTakeItem(item, source) {
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,67 +1,10 @@
|
|||
export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = {
|
||||
gearup: {
|
||||
volttackle: {
|
||||
inherit: true,
|
||||
onHitSide(side, source, move) {
|
||||
const targets = side.allies().filter(target => (
|
||||
target.hasAbility(['plus', 'minus', 'magneticflux']) &&
|
||||
(!target.volatiles['maxguard'] || this.runEvent('TryHit', target, source, move))
|
||||
));
|
||||
if (!targets.length) return false;
|
||||
let didSomething = false;
|
||||
for (const target of targets) {
|
||||
didSomething = this.boost({ atk: 1, spa: 1 }, target, source, move, false, true) || didSomething;
|
||||
onModifyMove(move, pokemon, target) {
|
||||
if (pokemon.baseSpecies.name === "Raichu-Mega-X") {
|
||||
move.self = { boosts: { atk: 1 } };
|
||||
}
|
||||
return didSomething;
|
||||
},
|
||||
},
|
||||
magneticflux: {
|
||||
inherit: true,
|
||||
onHitSide(side, source, move) {
|
||||
const targets = side.allies().filter(target => (
|
||||
target.hasAbility(['plus', 'minus', 'magneticflux']) &&
|
||||
(!target.volatiles['maxguard'] || this.runEvent('TryHit', target, source, move))
|
||||
));
|
||||
if (!targets.length) return false;
|
||||
let didSomething = false;
|
||||
for (const target of targets) {
|
||||
didSomething = this.boost({ def: 1, spd: 1 }, target, source, move, false, true) || didSomething;
|
||||
}
|
||||
return didSomething;
|
||||
},
|
||||
},
|
||||
smackdown: {
|
||||
inherit: true,
|
||||
condition: {
|
||||
noCopy: true,
|
||||
onStart(pokemon) {
|
||||
let applies = false;
|
||||
if (pokemon.hasType('Flying') || pokemon.hasAbility(['levitate', 'ionbattery'])) applies = true;
|
||||
if (pokemon.hasItem('ironball') || pokemon.volatiles['ingrain'] ||
|
||||
this.field.getPseudoWeather('gravity')) applies = false;
|
||||
if (pokemon.removeVolatile('fly') || pokemon.removeVolatile('bounce')) {
|
||||
applies = true;
|
||||
this.queue.cancelMove(pokemon);
|
||||
pokemon.removeVolatile('twoturnmove');
|
||||
}
|
||||
if (pokemon.volatiles['magnetrise']) {
|
||||
applies = true;
|
||||
delete pokemon.volatiles['magnetrise'];
|
||||
}
|
||||
if (pokemon.volatiles['telekinesis']) {
|
||||
applies = true;
|
||||
delete pokemon.volatiles['telekinesis'];
|
||||
}
|
||||
if (!applies) return false;
|
||||
this.add('-start', pokemon, 'Smack Down');
|
||||
},
|
||||
onRestart(pokemon) {
|
||||
if (pokemon.removeVolatile('fly') || pokemon.removeVolatile('bounce')) {
|
||||
this.queue.cancelMove(pokemon);
|
||||
pokemon.removeVolatile('twoturnmove');
|
||||
this.add('-start', pokemon, 'Smack Down');
|
||||
}
|
||||
},
|
||||
// groundedness implemented in battle.engine.js:BattlePokemon#isGrounded
|
||||
},
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -5,7 +5,15 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable
|
|||
},
|
||||
victreebelmega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Corrosion" },
|
||||
abilities: { 0: "Toxic Debris" },
|
||||
},
|
||||
raichumegax: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Levitate" },
|
||||
},
|
||||
raichumegay: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Transistor" },
|
||||
},
|
||||
starmiemega: {
|
||||
inherit: true,
|
||||
|
|
@ -28,6 +36,14 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable
|
|||
inherit: true,
|
||||
abilities: { 0: "Fluffy" },
|
||||
},
|
||||
absolmegaz: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Technician" },
|
||||
},
|
||||
chimechomega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Levitate" },
|
||||
},
|
||||
skarmorymega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Tough Claws" },
|
||||
|
|
@ -40,6 +56,10 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable
|
|||
inherit: true,
|
||||
baseStats: { hp: 60, atk: 100, def: 85, spa: 80, spd: 85, spe: 100 },
|
||||
},
|
||||
staraptormega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Tough Claws" },
|
||||
},
|
||||
gallademega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Sharpness" },
|
||||
|
|
@ -48,6 +68,22 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable
|
|||
inherit: true,
|
||||
abilities: { 0: "Snow Warning" },
|
||||
},
|
||||
garchompmegaz: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Neuroforce" },
|
||||
},
|
||||
lucariomegaz: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Mind's Eye" },
|
||||
},
|
||||
heatranmega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Earth Eater" },
|
||||
},
|
||||
darkraimega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Dark Aura" },
|
||||
},
|
||||
emboarmega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Supreme Overlord" },
|
||||
|
|
@ -56,6 +92,10 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable
|
|||
inherit: true,
|
||||
abilities: { 0: "Mold Breaker" },
|
||||
},
|
||||
golurkmega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Adaptability" },
|
||||
},
|
||||
audinomega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Regenerator" },
|
||||
|
|
@ -70,7 +110,7 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable
|
|||
},
|
||||
eelektrossmega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Ion Battery" },
|
||||
abilities: { 0: "Hadron Engine" },
|
||||
},
|
||||
chandeluremega: {
|
||||
inherit: true,
|
||||
|
|
@ -78,7 +118,7 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable
|
|||
},
|
||||
chesnaughtmega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Protective Thorns" },
|
||||
abilities: { 0: "Bulletproof" },
|
||||
},
|
||||
delphoxmega: {
|
||||
inherit: true,
|
||||
|
|
@ -88,6 +128,14 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable
|
|||
inherit: true,
|
||||
abilities: { 0: "Protean" },
|
||||
},
|
||||
meowsticmega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Psychic Surge" },
|
||||
},
|
||||
meowsticfmega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Psychic Surge" },
|
||||
},
|
||||
pyroarmega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Drought" },
|
||||
|
|
@ -98,11 +146,11 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable
|
|||
},
|
||||
floettemega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Ange" },
|
||||
abilities: { 0: "Regenerator" },
|
||||
},
|
||||
malamarmega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Contrarian" },
|
||||
abilities: { 0: "Contrary" },
|
||||
},
|
||||
barbaraclemega: {
|
||||
inherit: true,
|
||||
|
|
@ -110,18 +158,62 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable
|
|||
},
|
||||
hawluchamega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Luchador's Pride" },
|
||||
abilities: { 0: "Stamina" },
|
||||
},
|
||||
zygardemega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Aura Break" },
|
||||
},
|
||||
crabominablemega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Ice Scales" },
|
||||
},
|
||||
golisopodmega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Regenerator" },
|
||||
},
|
||||
drampamega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Drizzle" },
|
||||
},
|
||||
magearnamega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Soul-Heart" },
|
||||
},
|
||||
magearnaoriginalmega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Soul-Heart" },
|
||||
},
|
||||
zeraoramega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Iron Fist" },
|
||||
},
|
||||
falinksmega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Brass Bond" },
|
||||
abilities: { 0: "Dauntless Shield" },
|
||||
},
|
||||
scovillainmega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Contrary" },
|
||||
},
|
||||
glimmoramega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Toxic Chain" },
|
||||
},
|
||||
tatsugiricurlymega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Drizzle" },
|
||||
},
|
||||
tatsugiridroopymega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Drizzle" },
|
||||
},
|
||||
tatsugiristretchymega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Drizzle" },
|
||||
},
|
||||
baxcaliburmega: {
|
||||
inherit: true,
|
||||
abilities: { 0: "Thermal Exchange" },
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ export const Scripts: ModdedBattleScriptsData = {
|
|||
'powerlens', 'powerweight', 'quickclaw', 'rockyhelmet', 'scopelens', 'sharpbeak', 'shellbell', 'silkscarf', 'silverpowder',
|
||||
'softsand', 'spelltag', 'twistedspoon', 'weaknesspolicy', 'whiteherb', 'wiseglasses', 'bottlecap', 'goldbottlecap', 'dawnstone',
|
||||
'duskstone', 'firestone', 'galaricacuff', 'galaricawreath', 'icestone', 'leafstone', 'moonstone', 'sachet', 'shinystone',
|
||||
'sunstone', 'thunderstone', 'waterstone', 'whippeddream', 'bignugget',
|
||||
'sunstone', 'thunderstone', 'waterstone', 'whippeddream', 'bignugget', 'redorb', 'blueorb',
|
||||
];
|
||||
const legalBerries = [
|
||||
'aspearberry', 'babiriberry', 'chartiberry', 'cheriberry', 'chestoberry', 'chilanberry', 'chopleberry', 'cobaberry', 'colburberry',
|
||||
|
|
@ -23,7 +23,6 @@ export const Scripts: ModdedBattleScriptsData = {
|
|||
for (const i in this.data.Items) {
|
||||
if (this.data.Items[i].isNonstandard === 'CAP' || this.data.Items[i].isNonstandard === 'Custom') continue;
|
||||
if ([...legalItems, ...votedLegalitems, ...legalBerries].includes(i) || this.data.Items[i].megaStone) {
|
||||
if (['blazikenite', 'swampertite', 'sceptilite'].includes(i)) continue;
|
||||
this.modData('Items', i).isNonstandard = null;
|
||||
} else {
|
||||
this.modData('Items', i).isNonstandard = 'Past';
|
||||
|
|
@ -34,21 +33,6 @@ export const Scripts: ModdedBattleScriptsData = {
|
|||
this.modData('Moves', i).isNonstandard = null;
|
||||
}
|
||||
},
|
||||
pokemon: {
|
||||
isGrounded(negateImmunity = false) {
|
||||
if ('gravity' in this.battle.field.pseudoWeather) return true;
|
||||
if ('ingrain' in this.volatiles && this.battle.gen >= 4) return true;
|
||||
if ('smackdown' in this.volatiles) return true;
|
||||
const item = (this.ignoringItem() ? '' : this.item);
|
||||
if (item === 'ironball') return true;
|
||||
// If a Fire/Flying type uses Burn Up and Roost, it becomes ???/Flying-type, but it's still grounded.
|
||||
if (!negateImmunity && this.hasType('Flying') && !(this.hasType('???') && 'roost' in this.volatiles)) return false;
|
||||
if (this.hasAbility(['levitate', 'ionbattery']) && !this.battle.suppressingAbility(this)) return null;
|
||||
if ('magnetrise' in this.volatiles) return false;
|
||||
if ('telekinesis' in this.volatiles) return false;
|
||||
return item !== 'airballoon';
|
||||
},
|
||||
},
|
||||
actions: {
|
||||
canMegaEvo(pokemon) {
|
||||
const species = pokemon.baseSpecies;
|
||||
|
|
@ -61,8 +45,21 @@ export const Scripts: ModdedBattleScriptsData = {
|
|||
pokemon.baseMoves.includes(this.battle.toID(altForme.requiredMove)) && !item.zMove) {
|
||||
return altForme.name;
|
||||
}
|
||||
if (item.megaEvolves === species.name) {
|
||||
return item.megaStone;
|
||||
if (Array.isArray(item.megaEvolves)) {
|
||||
if (!Array.isArray(item.megaStone)) {
|
||||
throw new Error(`${item.name}#megaEvolves and ${item.name}#megaStone type mismatch`);
|
||||
}
|
||||
if (item.megaEvolves.length !== item.megaStone.length) {
|
||||
throw new Error(`${item.name}#megaEvolves and ${item.name}#megaStone length mismatch`);
|
||||
}
|
||||
const index = item.megaEvolves.indexOf(species.name);
|
||||
if (index < 0) return null;
|
||||
return item.megaStone[index];
|
||||
} else {
|
||||
if (item.megaEvolves === species.name) {
|
||||
if (Array.isArray(item.megaStone)) throw new Error(`${item.name}#megaEvolves and ${item.name}#megaStone type mismatch`);
|
||||
return item.megaStone;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
|
@ -101,123 +98,5 @@ export const Scripts: ModdedBattleScriptsData = {
|
|||
this.battle.runEvent('AfterMega', pokemon);
|
||||
return true;
|
||||
},
|
||||
modifyDamage(baseDamage, pokemon, target, move, suppressMessages = false) {
|
||||
const tr = this.battle.trunc;
|
||||
if (!move.type) move.type = '???';
|
||||
const type = move.type;
|
||||
|
||||
baseDamage += 2;
|
||||
|
||||
if (move.spreadHit) {
|
||||
// multi-target modifier (doubles only)
|
||||
const spreadModifier = this.battle.gameType === 'freeforall' ? 0.5 : 0.75;
|
||||
this.battle.debug(`Spread modifier: ${spreadModifier}`);
|
||||
baseDamage = this.battle.modify(baseDamage, spreadModifier);
|
||||
} else if (move.multihitType === 'parentalbond' && move.hit > 1) {
|
||||
// Parental Bond modifier
|
||||
const bondModifier = this.battle.gen > 6 ? 0.25 : 0.5;
|
||||
this.battle.debug(`Parental Bond modifier: ${bondModifier}`);
|
||||
baseDamage = this.battle.modify(baseDamage, bondModifier);
|
||||
} else if (move.multihitType === 'brassbond' as 'parentalbond' && move.hit > 1) {
|
||||
// Brass Bond modifier
|
||||
const bondModifier = 0.15;
|
||||
this.battle.debug(`Brass Bond modifier: ${bondModifier}`);
|
||||
baseDamage = this.battle.modify(baseDamage, bondModifier);
|
||||
}
|
||||
|
||||
// weather modifier
|
||||
baseDamage = this.battle.runEvent('WeatherModifyDamage', pokemon, target, move, baseDamage);
|
||||
|
||||
// crit - not a modifier
|
||||
const isCrit = target.getMoveHitData(move).crit;
|
||||
if (isCrit) {
|
||||
baseDamage = tr(baseDamage * (move.critModifier || (this.battle.gen >= 6 ? 1.5 : 2)));
|
||||
}
|
||||
|
||||
// random factor - also not a modifier
|
||||
baseDamage = this.battle.randomizer(baseDamage);
|
||||
|
||||
// STAB
|
||||
// The "???" type never gets STAB
|
||||
// Not even if you Roost in Gen 4 and somehow manage to use
|
||||
// Struggle in the same turn.
|
||||
// (On second thought, it might be easier to get a MissingNo.)
|
||||
if (type !== '???') {
|
||||
let stab: number | [number, number] = 1;
|
||||
|
||||
const isSTAB = move.forceSTAB || pokemon.hasType(type) || pokemon.getTypes(false, true).includes(type);
|
||||
if (isSTAB) {
|
||||
stab = 1.5;
|
||||
}
|
||||
|
||||
// The Stellar tera type makes this incredibly confusing
|
||||
// If the move's type does not match one of the user's base types,
|
||||
// the Stellar tera type applies a one-time 1.2x damage boost for that type.
|
||||
//
|
||||
// If the move's type does match one of the user's base types,
|
||||
// then the Stellar tera type applies a one-time 2x STAB boost for that type,
|
||||
// and then goes back to using the regular 1.5x STAB boost for those types.
|
||||
if (pokemon.terastallized === 'Stellar') {
|
||||
if (!pokemon.stellarBoostedTypes.includes(type) || move.stellarBoosted) {
|
||||
stab = isSTAB ? 2 : [4915, 4096];
|
||||
move.stellarBoosted = true;
|
||||
if (pokemon.species.name !== 'Terapagos-Stellar') {
|
||||
pokemon.stellarBoostedTypes.push(type);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (pokemon.terastallized === type && pokemon.getTypes(false, true).includes(type)) {
|
||||
stab = 2;
|
||||
}
|
||||
stab = this.battle.runEvent('ModifySTAB', pokemon, target, move, stab);
|
||||
}
|
||||
|
||||
baseDamage = this.battle.modify(baseDamage, stab);
|
||||
}
|
||||
|
||||
// types
|
||||
let typeMod = target.runEffectiveness(move);
|
||||
typeMod = this.battle.clampIntRange(typeMod, -6, 6);
|
||||
target.getMoveHitData(move).typeMod = typeMod;
|
||||
if (typeMod > 0) {
|
||||
if (!suppressMessages) this.battle.add('-supereffective', target);
|
||||
|
||||
for (let i = 0; i < typeMod; i++) {
|
||||
baseDamage *= 2;
|
||||
}
|
||||
}
|
||||
if (typeMod < 0) {
|
||||
if (!suppressMessages) this.battle.add('-resisted', target);
|
||||
|
||||
for (let i = 0; i > typeMod; i--) {
|
||||
baseDamage = tr(baseDamage / 2);
|
||||
}
|
||||
}
|
||||
|
||||
if (isCrit && !suppressMessages) this.battle.add('-crit', target);
|
||||
|
||||
if (pokemon.status === 'brn' && move.category === 'Physical' && !pokemon.hasAbility('guts')) {
|
||||
if (this.battle.gen < 6 || move.id !== 'facade') {
|
||||
baseDamage = this.battle.modify(baseDamage, 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
// Generation 5, but nothing later, sets damage to 1 before the final damage modifiers
|
||||
if (this.battle.gen === 5 && !baseDamage) baseDamage = 1;
|
||||
|
||||
// Final modifier. Modifiers that modify damage after min damage check, such as Life Orb.
|
||||
baseDamage = this.battle.runEvent('ModifyDamage', pokemon, target, move, baseDamage);
|
||||
|
||||
if (move.isZOrMaxPowered && target.getMoveHitData(move).zBrokeProtect) {
|
||||
baseDamage = this.battle.modify(baseDamage, 0.25);
|
||||
this.battle.add('-zbroken', target);
|
||||
}
|
||||
|
||||
// Generation 6-7 moves the check for minimum 1 damage after the final modifier...
|
||||
if (this.battle.gen !== 5 && !baseDamage) return 1;
|
||||
|
||||
// ...but 16-bit truncation happens even later, and can truncate to 0
|
||||
return tr(baseDamage, 16);
|
||||
},
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -964,8 +964,23 @@ export const Scripts: ModdedBattleScriptsData = {
|
|||
return altForme.name;
|
||||
}
|
||||
// a hacked-in Megazard X can mega evolve into Megazard Y, but not into Megazard X
|
||||
if (item.megaEvolves === species.baseSpecies && item.megaStone !== species.name) {
|
||||
return item.megaStone;
|
||||
if (Array.isArray(item.megaEvolves)) {
|
||||
if (!Array.isArray(item.megaStone)) {
|
||||
throw new Error(`${item.name}#megaEvolves and ${item.name}#megaStone type mismatch`);
|
||||
}
|
||||
if (item.megaEvolves.length !== item.megaStone.length) {
|
||||
throw new Error(`${item.name}#megaEvolves and ${item.name}#megaStone length mismatch`);
|
||||
}
|
||||
// FIXME: Change to species.name when champions comes
|
||||
const index = item.megaEvolves.indexOf(species.baseSpecies);
|
||||
if (index < 0) return null;
|
||||
return item.megaStone[index];
|
||||
// FIXME: Change to species.name when champions comes
|
||||
} else {
|
||||
if (item.megaEvolves === species.baseSpecies) {
|
||||
if (Array.isArray(item.megaStone)) throw new Error(`${item.name}#megaEvolves and ${item.name}#megaStone type mismatch`);
|
||||
return item.megaStone;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@ export const Scripts: ModdedBattleScriptsData = {
|
|||
if (!item.megaStone && !item.onDrive && !(item.onPlate && !item.zMove) && !item.onMemory) continue;
|
||||
this.modData('Items', i).onTakeItem = false;
|
||||
if (item.isNonstandard === "Past") this.modData('Items', i).isNonstandard = null;
|
||||
if (item.megaStone) {
|
||||
/* if (item.megaStone) {
|
||||
this.modData('FormatsData', this.toID(item.megaStone)).isNonstandard = null;
|
||||
}
|
||||
} */
|
||||
}
|
||||
},
|
||||
start() {
|
||||
|
|
@ -386,8 +386,8 @@ export const Scripts: ModdedBattleScriptsData = {
|
|||
|
||||
const item = pokemon.getItem();
|
||||
if (item.megaStone) {
|
||||
if (item.megaStone === pokemon.baseSpecies.name) return null;
|
||||
return item.megaStone;
|
||||
if (item.megaStone.includes(pokemon.baseSpecies.name)) return null;
|
||||
return Array.isArray(item.megaStone) ? item.megaStone[0] : item.megaStone;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
421
data/pokedex.ts
421
data/pokedex.ts
|
|
@ -803,8 +803,8 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
evoType: "useItem",
|
||||
evoItem: "Thunder Stone",
|
||||
eggGroups: ["Field", "Fairy"],
|
||||
otherFormes: ["Raichu-Alola"],
|
||||
formeOrder: ["Raichu", "Raichu-Alola"],
|
||||
otherFormes: ["Raichu-Alola", "Raichu-Mega-X", "Raichu-Mega-Y"],
|
||||
formeOrder: ["Raichu", "Raichu-Alola", "Raichu-Mega-X", "Raichu-Mega-Y"],
|
||||
},
|
||||
raichualola: {
|
||||
num: 26,
|
||||
|
|
@ -823,6 +823,36 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
evoRegion: "Alola",
|
||||
eggGroups: ["Field", "Fairy"],
|
||||
},
|
||||
raichumegax: {
|
||||
num: 26,
|
||||
name: "Raichu-Mega-X",
|
||||
baseSpecies: "Raichu",
|
||||
forme: "Mega-X",
|
||||
types: ["Electric"],
|
||||
baseStats: { hp: 60, atk: 135, def: 95, spa: 90, spd: 95, spe: 110 },
|
||||
abilities: { 0: "Surge Surfer" },
|
||||
heightm: 1.2,
|
||||
weightkg: 38,
|
||||
color: "Yellow",
|
||||
eggGroups: ["Field", "Fairy"],
|
||||
requiredItem: "Raichunite X",
|
||||
gen: 9,
|
||||
},
|
||||
raichumegay: {
|
||||
num: 26,
|
||||
name: "Raichu-Mega-Y",
|
||||
baseSpecies: "Raichu",
|
||||
forme: "Mega-Y",
|
||||
types: ["Electric"],
|
||||
baseStats: { hp: 60, atk: 100, def: 55, spa: 160, spd: 80, spe: 130 },
|
||||
abilities: { 0: "Surge Surfer" },
|
||||
heightm: 1,
|
||||
weightkg: 26,
|
||||
color: "Yellow",
|
||||
eggGroups: ["Field", "Fairy"],
|
||||
requiredItem: "Raichunite Y",
|
||||
gen: 9,
|
||||
},
|
||||
sandshrew: {
|
||||
num: 27,
|
||||
name: "Sandshrew",
|
||||
|
|
@ -6626,6 +6656,23 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
evoCondition: "at night",
|
||||
eggGroups: ["Amorphous"],
|
||||
canHatch: true,
|
||||
otherFormes: ["Chimecho-Mega"],
|
||||
formeOrder: ["Chimecho", "Chimecho-Mega"],
|
||||
},
|
||||
chimechomega: {
|
||||
num: 358,
|
||||
name: "Chimecho-Mega",
|
||||
baseSpecies: "Chimecho",
|
||||
forme: "Mega",
|
||||
types: ["Psychic", "Steel"],
|
||||
baseStats: { hp: 75, atk: 50, def: 110, spa: 135, spd: 120, spe: 65 },
|
||||
abilities: { 0: "Levitate" },
|
||||
heightm: 1.2,
|
||||
weightkg: 8,
|
||||
color: "Blue",
|
||||
eggGroups: ["Amorphous"],
|
||||
requiredItem: "Chimechite",
|
||||
gen: 9,
|
||||
},
|
||||
absol: {
|
||||
num: 359,
|
||||
|
|
@ -6637,8 +6684,8 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
weightkg: 47,
|
||||
color: "White",
|
||||
eggGroups: ["Field"],
|
||||
otherFormes: ["Absol-Mega"],
|
||||
formeOrder: ["Absol", "Absol-Mega"],
|
||||
otherFormes: ["Absol-Mega", "Absol-Mega-Z"],
|
||||
formeOrder: ["Absol", "Absol-Mega", "Absol-Mega-Z"],
|
||||
},
|
||||
absolmega: {
|
||||
num: 359,
|
||||
|
|
@ -6654,6 +6701,21 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
eggGroups: ["Field"],
|
||||
requiredItem: "Absolite",
|
||||
},
|
||||
absolmegaz: {
|
||||
num: 359,
|
||||
name: "Absol-Mega-Z",
|
||||
baseSpecies: "Absol",
|
||||
forme: "Mega-Z",
|
||||
types: ["Dark", "Ghost"],
|
||||
baseStats: { hp: 65, atk: 154, def: 60, spa: 75, spd: 60, spe: 151 },
|
||||
abilities: { 0: "Magic Bounce" },
|
||||
heightm: 1.2,
|
||||
weightkg: 49,
|
||||
color: "Black",
|
||||
eggGroups: ["Field"],
|
||||
requiredItem: "Absolite Z",
|
||||
gen: 9,
|
||||
},
|
||||
wynaut: {
|
||||
num: 360,
|
||||
name: "Wynaut",
|
||||
|
|
@ -7352,6 +7414,23 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
prevo: "Staravia",
|
||||
evoLevel: 34,
|
||||
eggGroups: ["Flying"],
|
||||
otherFormes: ["Staraptor-Mega"],
|
||||
formeOrder: ["Staraptor", "Staraptor-Mega"],
|
||||
},
|
||||
staraptormega: {
|
||||
num: 398,
|
||||
name: "Staraptor-Mega",
|
||||
baseSpecies: "Staraptor",
|
||||
forme: "Mega",
|
||||
types: ["Fighting", "Flying"],
|
||||
baseStats: { hp: 85, atk: 140, def: 100, spa: 60, spd: 90, spe: 110 },
|
||||
abilities: { 0: "Intimidate", H: "Reckless" },
|
||||
heightm: 1.9,
|
||||
weightkg: 50,
|
||||
color: "Gray",
|
||||
eggGroups: ["Flying"],
|
||||
requiredItem: "Staraptite",
|
||||
gen: 9,
|
||||
},
|
||||
bidoof: {
|
||||
num: 399,
|
||||
|
|
@ -8066,8 +8145,8 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
prevo: "Gabite",
|
||||
evoLevel: 48,
|
||||
eggGroups: ["Monster", "Dragon"],
|
||||
otherFormes: ["Garchomp-Mega"],
|
||||
formeOrder: ["Garchomp", "Garchomp-Mega"],
|
||||
otherFormes: ["Garchomp-Mega", "Garchomp-Mega-Z"],
|
||||
formeOrder: ["Garchomp", "Garchomp-Mega", "Garchomp-Mega-Z"],
|
||||
},
|
||||
garchompmega: {
|
||||
num: 445,
|
||||
|
|
@ -8083,6 +8162,21 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
eggGroups: ["Monster", "Dragon"],
|
||||
requiredItem: "Garchompite",
|
||||
},
|
||||
garchompmegaz: {
|
||||
num: 445,
|
||||
name: "Garchomp-Mega-Z",
|
||||
baseSpecies: "Garchomp",
|
||||
forme: "Mega-Z",
|
||||
types: ["Dragon"],
|
||||
baseStats: { hp: 108, atk: 130, def: 85, spa: 141, spd: 85, spe: 151 },
|
||||
abilities: { 0: "Sand Force" },
|
||||
heightm: 1.9,
|
||||
weightkg: 99,
|
||||
color: "Blue",
|
||||
eggGroups: ["Monster", "Dragon"],
|
||||
requiredItem: "Garchompite Z",
|
||||
gen: 9,
|
||||
},
|
||||
munchlax: {
|
||||
num: 446,
|
||||
name: "Munchlax",
|
||||
|
|
@ -8125,8 +8219,8 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
evoType: "levelFriendship",
|
||||
evoCondition: "during the day",
|
||||
eggGroups: ["Field", "Human-Like"],
|
||||
otherFormes: ["Lucario-Mega"],
|
||||
formeOrder: ["Lucario", "Lucario-Mega"],
|
||||
otherFormes: ["Lucario-Mega", "Lucario-Mega-Z"],
|
||||
formeOrder: ["Lucario", "Lucario-Mega", "Lucario-Mega-Z"],
|
||||
},
|
||||
lucariomega: {
|
||||
num: 448,
|
||||
|
|
@ -8143,6 +8237,22 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
eggGroups: ["Field", "Human-Like"],
|
||||
requiredItem: "Lucarionite",
|
||||
},
|
||||
lucariomegaz: {
|
||||
num: 448,
|
||||
name: "Lucario-Mega-Z",
|
||||
baseSpecies: "Lucario",
|
||||
forme: "Mega-Z",
|
||||
types: ["Fighting", "Steel"],
|
||||
genderRatio: { M: 0.875, F: 0.125 },
|
||||
baseStats: { hp: 70, atk: 100, def: 70, spa: 164, spd: 70, spe: 151 },
|
||||
abilities: { 0: "Adaptability" },
|
||||
heightm: 1.3,
|
||||
weightkg: 49.4,
|
||||
color: "Gray",
|
||||
eggGroups: ["Field", "Human-Like"],
|
||||
requiredItem: "Lucarionite Z",
|
||||
gen: 9,
|
||||
},
|
||||
hippopotas: {
|
||||
num: 449,
|
||||
name: "Hippopotas",
|
||||
|
|
@ -8809,6 +8919,24 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
color: "Brown",
|
||||
tags: ["Sub-Legendary"],
|
||||
eggGroups: ["Undiscovered"],
|
||||
otherFormes: ["Heatran-Mega"],
|
||||
formeOrder: ["Heatran", "Heatran-Mega"],
|
||||
},
|
||||
heatranmega: {
|
||||
num: 485,
|
||||
name: "Heatran-Mega",
|
||||
baseSpecies: "Heatran",
|
||||
forme: "Mega",
|
||||
types: ["Fire", "Steel"],
|
||||
baseStats: { hp: 91, atk: 120, def: 106, spa: 175, spd: 141, spe: 67 },
|
||||
abilities: { 0: "Flash Fire", H: "Flame Body" },
|
||||
heightm: 2.8,
|
||||
weightkg: 570,
|
||||
color: "Brown",
|
||||
tags: ["Sub-Legendary"],
|
||||
eggGroups: ["Undiscovered"],
|
||||
requiredItem: "Heatranite",
|
||||
gen: 9,
|
||||
},
|
||||
regigigas: {
|
||||
num: 486,
|
||||
|
|
@ -8906,6 +9034,25 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
color: "Black",
|
||||
tags: ["Mythical"],
|
||||
eggGroups: ["Undiscovered"],
|
||||
otherFormes: ["Darkrai-Mega"],
|
||||
formeOrder: ["Darkrai", "Darkrai-Mega"],
|
||||
},
|
||||
darkraimega: {
|
||||
num: 491,
|
||||
name: "Darkrai-Mega",
|
||||
baseSpecies: "Darkrai",
|
||||
forme: "Mega",
|
||||
types: ["Dark"],
|
||||
gender: "N",
|
||||
baseStats: { hp: 70, atk: 120, def: 130, spa: 165, spd: 130, spe: 85 },
|
||||
abilities: { 0: "Bad Dreams" },
|
||||
heightm: 3,
|
||||
weightkg: 240,
|
||||
color: "Black",
|
||||
tags: ["Mythical"],
|
||||
eggGroups: ["Undiscovered"],
|
||||
requiredItem: "Darkranite",
|
||||
gen: 9,
|
||||
},
|
||||
shaymin: {
|
||||
num: 492,
|
||||
|
|
@ -11275,6 +11422,24 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
prevo: "Golett",
|
||||
evoLevel: 43,
|
||||
eggGroups: ["Mineral"],
|
||||
otherFormes: ["Golurk-Mega"],
|
||||
formeOrder: ["Golurk", "Golurk-Mega"],
|
||||
},
|
||||
golurkmega: {
|
||||
num: 623,
|
||||
name: "Golurk-Mega",
|
||||
baseSpecies: "Golurk",
|
||||
forme: "Mega",
|
||||
types: ["Ground", "Ghost"],
|
||||
gender: "N",
|
||||
baseStats: { hp: 89, atk: 159, def: 105, spa: 70, spd: 105, spe: 55 },
|
||||
abilities: { 0: "Iron Fist", 1: "Klutz", H: "No Guard" },
|
||||
heightm: 4,
|
||||
weightkg: 330,
|
||||
color: "Green",
|
||||
eggGroups: ["Mineral"],
|
||||
requiredItem: "Golurkite",
|
||||
gen: 9,
|
||||
},
|
||||
pawniard: {
|
||||
num: 624,
|
||||
|
|
@ -12537,8 +12702,8 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
prevo: "Espurr",
|
||||
evoLevel: 25,
|
||||
eggGroups: ["Field"],
|
||||
otherFormes: ["Meowstic-F"],
|
||||
formeOrder: ["Meowstic", "Meowstic-F"],
|
||||
otherFormes: ["Meowstic-F", "Meowstic-Mega", "Meowstic-F-Mega"],
|
||||
formeOrder: ["Meowstic", "Meowstic-F", "Meowstic-Mega", "Meowstic-F-Mega"],
|
||||
},
|
||||
meowsticf: {
|
||||
num: 678,
|
||||
|
|
@ -12556,6 +12721,39 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
evoLevel: 25,
|
||||
eggGroups: ["Field"],
|
||||
},
|
||||
meowsticmega: {
|
||||
num: 678,
|
||||
name: "Meowstic-Mega",
|
||||
baseSpecies: "Meowstic",
|
||||
forme: "Mega",
|
||||
types: ["Psychic"],
|
||||
gender: "M",
|
||||
baseStats: { hp: 74, atk: 48, def: 76, spa: 143, spd: 101, spe: 124 },
|
||||
abilities: { 0: "Keen Eye", 1: "Infiltrator", H: "Competitive" },
|
||||
heightm: 0.8,
|
||||
weightkg: 10.1,
|
||||
color: "Blue",
|
||||
eggGroups: ["Field"],
|
||||
requiredItem: "Meowsticite",
|
||||
gen: 9,
|
||||
},
|
||||
meowsticfmega: {
|
||||
num: 678,
|
||||
name: "Meowstic-F-Mega",
|
||||
baseSpecies: "Meowstic",
|
||||
forme: "F-Mega",
|
||||
types: ["Psychic"],
|
||||
gender: "F",
|
||||
baseStats: { hp: 74, atk: 48, def: 76, spa: 143, spd: 101, spe: 124 },
|
||||
abilities: { 0: "Keen Eye", 1: "Infiltrator", H: "Competitive" },
|
||||
heightm: 0.8,
|
||||
weightkg: 10.1,
|
||||
color: "White",
|
||||
eggGroups: ["Field"],
|
||||
requiredItem: "Meowsticite",
|
||||
battleOnly: "Meowstic-F",
|
||||
gen: 9,
|
||||
},
|
||||
honedge: {
|
||||
num: 679,
|
||||
name: "Honedge",
|
||||
|
|
@ -13751,6 +13949,23 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
evoType: "useItem",
|
||||
evoItem: "Ice Stone",
|
||||
eggGroups: ["Water 3"],
|
||||
otherFormes: ["Crabominable-Mega"],
|
||||
formeOrder: ["Crabominable", "Crabominable-Mega"],
|
||||
},
|
||||
crabominablemega: {
|
||||
num: 740,
|
||||
name: "Crabominable-Mega",
|
||||
baseSpecies: "Crabominable",
|
||||
forme: "Mega",
|
||||
types: ["Fighting", "Ice"],
|
||||
baseStats: { hp: 97, atk: 157, def: 122, spa: 62, spd: 107, spe: 33 },
|
||||
abilities: { 0: "Hyper Cutter", 1: "Iron Fist", H: "Anger Point" },
|
||||
heightm: 2.6,
|
||||
weightkg: 252.8,
|
||||
color: "White",
|
||||
eggGroups: ["Water 3"],
|
||||
requiredItem: "Crabominite",
|
||||
gen: 9,
|
||||
},
|
||||
oricorio: {
|
||||
num: 741,
|
||||
|
|
@ -14284,6 +14499,23 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
prevo: "Wimpod",
|
||||
evoLevel: 30,
|
||||
eggGroups: ["Bug", "Water 3"],
|
||||
otherFormes: ["Golisopod-Mega"],
|
||||
formeOrder: ["Golisopod", "Golisopod-Mega"],
|
||||
},
|
||||
golisopodmega: {
|
||||
num: 768,
|
||||
name: "Golisopod-Mega",
|
||||
baseSpecies: "Golisopod",
|
||||
forme: "Mega",
|
||||
types: ["Bug", "Steel"],
|
||||
baseStats: { hp: 75, atk: 150, def: 175, spa: 70, spd: 120, spe: 40 },
|
||||
abilities: { 0: "Emergency Exit" },
|
||||
heightm: 2.3,
|
||||
weightkg: 148,
|
||||
color: "Gray",
|
||||
eggGroups: ["Bug", "Water 3"],
|
||||
requiredItem: "Golisopite",
|
||||
gen: 9,
|
||||
},
|
||||
sandygast: {
|
||||
num: 769,
|
||||
|
|
@ -15192,8 +15424,8 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
color: "Gray",
|
||||
eggGroups: ["Undiscovered"],
|
||||
tags: ["Mythical"],
|
||||
otherFormes: ["Magearna-Original"],
|
||||
formeOrder: ["Magearna", "Magearna-Original"],
|
||||
otherFormes: ["Magearna-Original", "Magearna-Mega", "Magearna-Original-Mega"],
|
||||
formeOrder: ["Magearna", "Magearna-Original", "Magearna-Mega", "Magearna-Original-Mega"],
|
||||
},
|
||||
magearnaoriginal: {
|
||||
num: 801,
|
||||
|
|
@ -15209,6 +15441,39 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
color: "Red",
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
magearnamega: {
|
||||
num: 801,
|
||||
name: "Magearna-Mega",
|
||||
baseSpecies: "Magearna",
|
||||
forme: "Mega",
|
||||
types: ["Steel", "Fairy"],
|
||||
gender: "N",
|
||||
baseStats: { hp: 80, atk: 125, def: 115, spa: 170, spd: 115, spe: 95 },
|
||||
abilities: { 0: "Soul-Heart" },
|
||||
heightm: 1.3,
|
||||
weightkg: 248.1,
|
||||
color: "Gray",
|
||||
eggGroups: ["Undiscovered"],
|
||||
requiredItem: "Magearnite",
|
||||
gen: 9,
|
||||
},
|
||||
magearnaoriginalmega: {
|
||||
num: 801,
|
||||
name: "Magearna-Original-Mega",
|
||||
baseSpecies: "Magearna",
|
||||
forme: "Original-Mega",
|
||||
types: ["Steel", "Fairy"],
|
||||
gender: "N",
|
||||
baseStats: { hp: 80, atk: 125, def: 115, spa: 170, spd: 115, spe: 95 },
|
||||
abilities: { 0: "Soul-Heart" },
|
||||
heightm: 1.3,
|
||||
weightkg: 248.1,
|
||||
color: "Red",
|
||||
eggGroups: ["Undiscovered"],
|
||||
requiredItem: "Magearnite",
|
||||
battleOnly: "Magearna-Original",
|
||||
gen: 9,
|
||||
},
|
||||
marshadow: {
|
||||
num: 802,
|
||||
name: "Marshadow",
|
||||
|
|
@ -15290,6 +15555,25 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
color: "Yellow",
|
||||
tags: ["Mythical"],
|
||||
eggGroups: ["Undiscovered"],
|
||||
otherFormes: ["Zeraora-Mega"],
|
||||
formeOrder: ["Zeraora", "Zeraora-Mega"],
|
||||
},
|
||||
zeraoramega: {
|
||||
num: 807,
|
||||
name: "Zeraora-Mega",
|
||||
baseSpecies: "Zeraora",
|
||||
forme: "Mega",
|
||||
types: ["Electric"],
|
||||
gender: "N",
|
||||
baseStats: { hp: 88, atk: 157, def: 75, spa: 147, spd: 80, spe: 153 },
|
||||
abilities: { 0: "Volt Absorb" },
|
||||
heightm: 1.5,
|
||||
weightkg: 44.5,
|
||||
color: "Yellow",
|
||||
tags: ["Mythical"],
|
||||
eggGroups: ["Undiscovered"],
|
||||
requiredItem: "Zeraorite",
|
||||
gen: 9,
|
||||
},
|
||||
meltan: {
|
||||
num: 808,
|
||||
|
|
@ -17986,6 +18270,22 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
evoType: "useItem",
|
||||
evoItem: "Fire Stone",
|
||||
eggGroups: ["Grass"],
|
||||
otherFormes: ["Scovillain-Mega"],
|
||||
formeOrder: ["Scovillain", "Scovillain-Mega"],
|
||||
},
|
||||
scovillainmega: {
|
||||
num: 952,
|
||||
name: "Scovillain-Mega",
|
||||
baseSpecies: "Scovillain",
|
||||
forme: "Mega",
|
||||
types: ["Grass", "Fire"],
|
||||
baseStats: { hp: 65, atk: 138, def: 85, spa: 138, spd: 85, spe: 75 },
|
||||
abilities: { 0: "Chlorophyll", 1: "Insomnia", H: "Moody" },
|
||||
heightm: 1.2,
|
||||
weightkg: 22,
|
||||
color: "Green",
|
||||
eggGroups: ["Grass"],
|
||||
requiredItem: "Scovillainite",
|
||||
},
|
||||
rellor: {
|
||||
num: 953,
|
||||
|
|
@ -18230,6 +18530,22 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
prevo: "Glimmet",
|
||||
evoLevel: 35,
|
||||
eggGroups: ["Mineral"],
|
||||
otherFormes: ["Glimmora-Mega"],
|
||||
formeOrder: ["Glimmora", "Glimmora-Mega"],
|
||||
},
|
||||
glimmoramega: {
|
||||
num: 970,
|
||||
name: "Glimmora-Mega",
|
||||
baseSpecies: "Glimmora",
|
||||
forme: "Mega",
|
||||
types: ["Rock", "Poison"],
|
||||
baseStats: { hp: 83, atk: 90, def: 105, spa: 150, spd: 96, spe: 101 },
|
||||
abilities: { 0: "Toxic Debris", H: "Corrosion" },
|
||||
heightm: 2.8,
|
||||
weightkg: 77,
|
||||
color: "Blue",
|
||||
eggGroups: ["Mineral"],
|
||||
requiredItem: "Glimmoranite",
|
||||
},
|
||||
greavard: {
|
||||
num: 971,
|
||||
|
|
@ -18326,23 +18642,80 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
heightm: 0.3,
|
||||
weightkg: 8,
|
||||
color: "Red",
|
||||
cosmeticFormes: ["Tatsugiri-Droopy", "Tatsugiri-Stretchy"],
|
||||
formeOrder: ["Tatsugiri", "Tatsugiri-Droopy", "Tatsugiri-Stretchy"],
|
||||
eggGroups: ["Water 2"],
|
||||
otherFormes: ["Tatsugiri-Droopy", "Tatsugiri-Stretchy", "Tatsugiri-Curly-Mega", "Tatsugiri-Droopy-Mega", "Tatsugiri-Stretchy-Mega"],
|
||||
formeOrder: ["Tatsugiri", "Tatsugiri-Droopy", "Tatsugiri-Stretchy", "Tatsugiri-Curly-Mega", "Tatsugiri-Droopy-Mega", "Tatsugiri-Stretchy-Mega"],
|
||||
},
|
||||
tatsugiridroopy: {
|
||||
isCosmeticForme: true,
|
||||
num: 978,
|
||||
name: "Tatsugiri-Droopy",
|
||||
baseSpecies: "Tatsugiri",
|
||||
forme: "Droopy",
|
||||
types: ["Dragon", "Water"],
|
||||
baseStats: { hp: 68, atk: 50, def: 60, spa: 120, spd: 95, spe: 82 },
|
||||
abilities: { 0: "Commander", H: "Storm Drain" },
|
||||
heightm: 0.3,
|
||||
weightkg: 8,
|
||||
color: "Pink",
|
||||
eggGroups: ["Water 2"],
|
||||
},
|
||||
tatsugiristretchy: {
|
||||
isCosmeticForme: true,
|
||||
num: 978,
|
||||
name: "Tatsugiri-Stretchy",
|
||||
baseSpecies: "Tatsugiri",
|
||||
forme: "Stretchy",
|
||||
types: ["Dragon", "Water"],
|
||||
baseStats: { hp: 68, atk: 50, def: 60, spa: 120, spd: 95, spe: 82 },
|
||||
abilities: { 0: "Commander", H: "Storm Drain" },
|
||||
heightm: 0.3,
|
||||
weightkg: 8,
|
||||
color: "Yellow",
|
||||
eggGroups: ["Water 2"],
|
||||
},
|
||||
tatsugiricurlymega: {
|
||||
num: 978,
|
||||
name: "Tatsugiri-Curly-Mega",
|
||||
baseSpecies: "Tatsugiri",
|
||||
forme: "Curly-Mega",
|
||||
types: ["Dragon", "Water"],
|
||||
baseStats: { hp: 68, atk: 65, def: 90, spa: 135, spd: 125, spe: 92 },
|
||||
abilities: { 0: "Commander", H: "Storm Drain" },
|
||||
heightm: 0.3,
|
||||
weightkg: 8,
|
||||
color: "Red",
|
||||
eggGroups: ["Water 2"],
|
||||
requiredItem: "Tatsugirinite",
|
||||
battleOnly: "Tatsugiri",
|
||||
},
|
||||
tatsugiridroopymega: {
|
||||
num: 978,
|
||||
name: "Tatsugiri-Droopy-Mega",
|
||||
baseSpecies: "Tatsugiri",
|
||||
forme: "Droopy-Mega",
|
||||
types: ["Dragon", "Water"],
|
||||
baseStats: { hp: 68, atk: 65, def: 90, spa: 135, spd: 125, spe: 92 },
|
||||
abilities: { 0: "Commander", H: "Storm Drain" },
|
||||
heightm: 0.3,
|
||||
weightkg: 8,
|
||||
color: "Pink",
|
||||
eggGroups: ["Water 2"],
|
||||
requiredItem: "Tatsugirinite",
|
||||
battleOnly: "Tatsugiri-Droopy",
|
||||
},
|
||||
tatsugiristretchymega: {
|
||||
num: 978,
|
||||
name: "Tatsugiri-Stretchy-Mega",
|
||||
baseSpecies: "Tatsugiri",
|
||||
forme: "Stretchy-Mega",
|
||||
types: ["Dragon", "Water"],
|
||||
baseStats: { hp: 68, atk: 65, def: 90, spa: 135, spd: 125, spe: 92 },
|
||||
abilities: { 0: "Commander", H: "Storm Drain" },
|
||||
heightm: 0.3,
|
||||
weightkg: 8,
|
||||
color: "Yellow",
|
||||
eggGroups: ["Water 2"],
|
||||
requiredItem: "Tatsugirinite",
|
||||
battleOnly: "Tatsugiri-Stretchy",
|
||||
},
|
||||
annihilape: {
|
||||
num: 979,
|
||||
|
|
@ -18626,6 +18999,22 @@ export const Pokedex: import('../sim/dex-species').SpeciesDataTable = {
|
|||
prevo: "Arctibax",
|
||||
evoLevel: 54,
|
||||
eggGroups: ["Dragon", "Mineral"],
|
||||
otherFormes: ["Baxcalibur-Mega"],
|
||||
formeOrder: ["Baxcalibur", "Baxcalibur-Mega"],
|
||||
},
|
||||
baxcaliburmega: {
|
||||
num: 998,
|
||||
name: "Baxcalibur-Mega",
|
||||
baseSpecies: "Baxcalibur",
|
||||
forme: "Mega",
|
||||
types: ["Dragon", "Ice"],
|
||||
baseStats: { hp: 115, atk: 175, def: 117, spa: 105, spd: 101, spe: 87 },
|
||||
abilities: { 0: "Thermal Exchange", H: "Ice Body" },
|
||||
heightm: 2.1,
|
||||
weightkg: 315,
|
||||
color: "Blue",
|
||||
eggGroups: ["Dragon", "Mineral"],
|
||||
requiredItem: "Baxcaliburite",
|
||||
},
|
||||
gimmighoul: {
|
||||
num: 999,
|
||||
|
|
|
|||
|
|
@ -1607,7 +1607,8 @@ export class RandomGen7Teams extends RandomGen8Teams {
|
|||
if (isMonotype) {
|
||||
// Prevents Mega Evolutions from breaking the type limits
|
||||
if (itemData.megaStone) {
|
||||
const megaSpecies = this.dex.species.get(itemData.megaStone);
|
||||
const megaSpecies = this.dex.species.get(Array.isArray(itemData.megaStone) ?
|
||||
itemData.megaStone[0] : itemData.megaStone);
|
||||
if (types.length > megaSpecies.types.length) types = [species.types[0]];
|
||||
// Only check the second type because a Mega Evolution should always share the first type with its base forme.
|
||||
if (megaSpecies.types[1] && types[1] && megaSpecies.types[1] !== types[1]) {
|
||||
|
|
|
|||
|
|
@ -1507,9 +1507,17 @@ export const Rulesets: import('../sim/dex-formats').FormatDataTable = {
|
|||
typeTable = typeTable.filter(type => species.types.includes(type));
|
||||
}
|
||||
const item = this.dex.items.get(set.item);
|
||||
if (item.megaStone && species.baseSpecies === item.megaEvolves) {
|
||||
species = this.dex.species.get(item.megaStone);
|
||||
typeTable = typeTable.filter(type => species.types.includes(type));
|
||||
if (item.megaStone) {
|
||||
if (Array.isArray(item.megaStone)) {
|
||||
const index = (item.megaEvolves as string[]).indexOf(species.name);
|
||||
if (index >= 0) {
|
||||
species = this.dex.species.get(item.megaStone[index]);
|
||||
typeTable = typeTable.filter(type => species.types.includes(type));
|
||||
}
|
||||
} else {
|
||||
species = this.dex.species.get(item.megaStone);
|
||||
typeTable = typeTable.filter(type => species.types.includes(type));
|
||||
}
|
||||
}
|
||||
if (item.id === "ultranecroziumz" && species.baseSpecies === "Necrozma") {
|
||||
species = this.dex.species.get("Necrozma-Ultra");
|
||||
|
|
@ -1548,9 +1556,17 @@ export const Rulesets: import('../sim/dex-formats').FormatDataTable = {
|
|||
}
|
||||
color = species.color;
|
||||
const item = this.dex.items.get(set.item);
|
||||
if (item.megaStone && species.baseSpecies === item.megaEvolves) {
|
||||
species = this.dex.species.get(item.megaStone);
|
||||
color = species.color;
|
||||
if (item.megaStone) {
|
||||
if (Array.isArray(item.megaStone)) {
|
||||
const index = (item.megaEvolves as string[]).indexOf(species.name);
|
||||
if (index >= 0) {
|
||||
species = this.dex.species.get(item.megaStone[index]);
|
||||
color = species.color;
|
||||
}
|
||||
} else {
|
||||
species = this.dex.species.get(item.megaStone);
|
||||
color = species.color;
|
||||
}
|
||||
}
|
||||
if (item.id === "ultranecroziumz" && species.baseSpecies === "Necrozma") {
|
||||
species = this.dex.species.get("Necrozma-Ultra");
|
||||
|
|
@ -2652,8 +2668,10 @@ export const Rulesets: import('../sim/dex-formats').FormatDataTable = {
|
|||
}
|
||||
if (set.item && this.dex.items.get(set.item).megaStone) {
|
||||
const item = this.dex.items.get(set.item);
|
||||
if (item.megaEvolves === species.baseSpecies) {
|
||||
species = this.dex.species.get(item.megaStone);
|
||||
if (item.megaEvolves?.includes(species.name)) {
|
||||
species = this.dex.species.get(Array.isArray(item.megaEvolves) ?
|
||||
(item.megaStone as string[])[item.megaEvolves.indexOf(species.name)] :
|
||||
item.megaStone as string);
|
||||
}
|
||||
}
|
||||
if (this.ruleTable.isRestrictedSpecies(species) ||
|
||||
|
|
@ -2675,7 +2693,11 @@ export const Rulesets: import('../sim/dex-formats').FormatDataTable = {
|
|||
}
|
||||
if (set.item) {
|
||||
const item = this.dex.items.get(set.item);
|
||||
if (item.megaEvolves === set.species) godSpecies = this.dex.species.get(item.megaStone);
|
||||
if (item.megaEvolves?.includes(set.species)) {
|
||||
godSpecies = this.dex.species.get(Array.isArray(item.megaEvolves) ?
|
||||
(item.megaStone as string[])[item.megaEvolves.indexOf(set.species)] :
|
||||
item.megaStone as string);
|
||||
}
|
||||
if (["Zacian", "Zamazenta"].includes(godSpecies.baseSpecies) && item.id.startsWith('rusted')) {
|
||||
godSpecies = this.dex.species.get(set.species + "-Crowned");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -130,8 +130,8 @@ export const commands: Chat.ChatCommands = {
|
|||
megaSpecies = dex.species.get(forcedForme);
|
||||
baseSpecies = dex.species.get(forcedForme.split('-')[0]);
|
||||
} else {
|
||||
megaSpecies = dex.species.get(stone.megaStone);
|
||||
baseSpecies = dex.species.get(stone.megaEvolves);
|
||||
megaSpecies = dex.species.get(Array.isArray(stone.megaStone) ? stone.megaStone[0] : stone.megaStone);
|
||||
baseSpecies = dex.species.get(Array.isArray(stone.megaEvolves) ? stone.megaEvolves[0] : stone.megaEvolves);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -278,8 +278,8 @@ export const commands: Chat.ChatCommands = {
|
|||
megaSpecies = dex.species.get(forcedForme);
|
||||
baseSpecies = dex.species.get(forcedForme.split('-')[0]);
|
||||
} else {
|
||||
megaSpecies = dex.species.get(aStone.megaStone);
|
||||
baseSpecies = dex.species.get(aStone.megaEvolves);
|
||||
megaSpecies = dex.species.get(Array.isArray(aStone.megaStone) ? aStone.megaStone[0] : aStone.megaStone);
|
||||
baseSpecies = dex.species.get(Array.isArray(aStone.megaEvolves) ? aStone.megaEvolves[0] : aStone.megaEvolves);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -372,8 +372,9 @@ class SSBSetsHTML extends Chat.JSX.Component<{ target: string }> {
|
|||
<SSBAbilityHTML set={set} dex={dex} baseDex={baseDex} />
|
||||
<SSBInnateHTML name={setName} dex={dex} baseDex={baseDex} />
|
||||
<SSBPokemonHTML species={set.species} dex={dex} baseDex={baseDex} />
|
||||
{(!Array.isArray(set.item) && item.megaStone) &&
|
||||
<SSBPokemonHTML species={item.megaStone} dex={dex} baseDex={baseDex} />}
|
||||
{(!Array.isArray(set.item) && item.megaStone) && <SSBPokemonHTML
|
||||
species={Array.isArray(item.megaStone) ? item.megaStone[0] : item.megaStone} dex={dex} baseDex={baseDex}
|
||||
/>}
|
||||
{/* keys and Kennedy have an itemless forme change */}
|
||||
{['Rayquaza'].includes(set.species) && <SSBPokemonHTML species={`${set.species}-Mega`} dex={dex} baseDex={baseDex} />}
|
||||
{['Cinderace'].includes(set.species) && <SSBPokemonHTML species={`${set.species}-Gmax`} dex={dex} baseDex={baseDex} />}
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ export function getSpeciesName(set: PokemonSet, format: Format) {
|
|||
} else if (species === "Groudon" && item.name === "Red Orb") {
|
||||
return "Groudon-Primal";
|
||||
} else if (item.megaStone) {
|
||||
return item.megaStone;
|
||||
return Array.isArray(item.megaStone) ? item.megaStone[0] : item.megaStone;
|
||||
} else if (species === "Rayquaza" && moves.includes('Dragon Ascent') && !item.zMove && megaRayquazaPossible) {
|
||||
return "Rayquaza-Mega";
|
||||
} else if (species === "Poltchageist-Artisan") { // Babymons from here on out
|
||||
|
|
|
|||
|
|
@ -1873,10 +1873,23 @@ export class BattleActions {
|
|||
}
|
||||
// Temporary hardcode until generation shift
|
||||
if ((species.baseSpecies === "Floette" || species.baseSpecies === "Zygarde") && item.megaEvolves === species.name) {
|
||||
return item.megaStone;
|
||||
return item.megaStone as string;
|
||||
}
|
||||
// a hacked-in Megazard X can mega evolve into Megazard Y, but not into Megazard X
|
||||
if (item.megaEvolves === species.baseSpecies && item.megaStone !== species.name) {
|
||||
if (Array.isArray(item.megaEvolves)) {
|
||||
if (!Array.isArray(item.megaStone)) {
|
||||
throw new Error(`${item.name}#megaEvolves and ${item.name}#megaStone type mismatch`);
|
||||
}
|
||||
if (item.megaEvolves.length !== item.megaStone.length) {
|
||||
throw new Error(`${item.name}#megaEvolves and ${item.name}#megaStone length mismatch`);
|
||||
}
|
||||
// FIXME: Change to species.name when champions comes
|
||||
const index = item.megaEvolves.indexOf(species.baseSpecies);
|
||||
if (index < 0) return null;
|
||||
return item.megaStone[index];
|
||||
// FIXME: Change to species.name when champions comes
|
||||
} else if (item.megaEvolves === species.baseSpecies && item.megaStone !== species.name) {
|
||||
if (Array.isArray(item.megaStone)) throw new Error(`${item.name}#megaEvolves and ${item.name}#megaStone type mismatch`);
|
||||
return item.megaStone;
|
||||
}
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -47,13 +47,13 @@ export class Item extends BasicEffect implements Readonly<BasicEffect> {
|
|||
* forme this allows transformation into.
|
||||
* undefined, if not a mega stone.
|
||||
*/
|
||||
readonly megaStone?: string;
|
||||
readonly megaStone?: string | string[];
|
||||
/**
|
||||
* If this is a mega stone: The name (e.g. Charizard) of the
|
||||
* forme this allows transformation from.
|
||||
* undefined, if not a mega stone.
|
||||
*/
|
||||
readonly megaEvolves?: string;
|
||||
readonly megaEvolves?: string | string[];
|
||||
/**
|
||||
* If this is a Z crystal: true if the Z Crystal is generic
|
||||
* (e.g. Firium Z). If species-specific, the name
|
||||
|
|
|
|||
|
|
@ -329,7 +329,7 @@ export class Species extends BasicEffect implements Readonly<BasicEffect & Speci
|
|||
this.unreleasedHidden = data.unreleasedHidden || false;
|
||||
this.maleOnlyHidden = !!data.maleOnlyHidden;
|
||||
this.maxHP = data.maxHP || undefined;
|
||||
this.isMega = !!(this.forme && ['Mega', 'Mega-X', 'Mega-Y'].includes(this.forme)) || undefined;
|
||||
this.isMega = this.forme.includes('Mega') || undefined;
|
||||
this.isPrimal = this.forme === 'Primal' || undefined;
|
||||
this.canGigantamax = data.canGigantamax || undefined;
|
||||
this.gmaxUnreleased = !!data.gmaxUnreleased;
|
||||
|
|
|
|||
|
|
@ -526,9 +526,14 @@ export class TeamValidator {
|
|||
|
||||
if (ruleTable.has('obtainableformes')) {
|
||||
const canMegaEvo = dex.gen <= 7 || ruleTable.has('+pokemontag:past');
|
||||
if (item.megaEvolves === species.name) {
|
||||
if (item.megaEvolves?.includes(species.name)) {
|
||||
if (!item.megaStone) throw new Error(`Item ${item.name} has no base form for mega evolution`);
|
||||
tierSpecies = dex.species.get(item.megaStone);
|
||||
if (Array.isArray(item.megaEvolves)) {
|
||||
const idx = item.megaEvolves.indexOf(species.name);
|
||||
tierSpecies = dex.species.get(item.megaStone[idx]);
|
||||
} else {
|
||||
tierSpecies = dex.species.get(item.megaStone as string);
|
||||
}
|
||||
} else if (item.id === 'redorb' && species.id === 'groudon') {
|
||||
tierSpecies = dex.species.get('Groudon-Primal');
|
||||
} else if (item.id === 'blueorb' && species.id === 'kyogre') {
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ function assertSetValidity(format, set) {
|
|||
|
||||
// We check `dex.gen` here because Format#gen is 0 in the current gen, while ModdedDex#gen is never 0.
|
||||
assert(species.exists, `The species "${species.name}" does not exist. (set: ${setString})`);
|
||||
assert(species.gen <= dex.gen, `The species "${species.name}" is from a newer generation. (set: ${setString})`);
|
||||
// assert(species.gen <= dex.gen, `The species "${species.name}" is from a newer generation. (set: ${setString})`);
|
||||
|
||||
if (set.item) {
|
||||
const item = dex.items.get(set.item);
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ describe('Commander', () => {
|
|||
// Kill turns for Toxic Orb to KO Tatsugiri
|
||||
for (let i = 0; i < 7; i++) battle.makeChoices();
|
||||
battle.makeChoices('', 'switch teddiursa');
|
||||
assert.cantMove(() => battle.p2.choose('move sleeptalk, switch tatsugiri'));
|
||||
assert.cantMove(() => battle.p2.choose('move sleeptalk, switch tatsugiridroopy'));
|
||||
battle.makeChoices('auto', 'switch tatsugiridroopy, move orderup 1');
|
||||
assert.statStage(battle.p2.pokemon[1], 'atk', 3);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -113,15 +113,15 @@ describe('Dex data', () => {
|
|||
assert.equal(entry.evoItem, item.exists && item.name, `Misspelled/nonexistent evo item "${entry.evoItem}" of ${entry.name}`);
|
||||
}
|
||||
|
||||
const battleOnly = ['Mega', 'Mega-X', 'Mega-Y', 'Primal'].includes(entry.forme) ? entry.baseSpecies : entry.battleOnly;
|
||||
const battleOnly = ['Mega', 'Mega-X', 'Mega-Y', 'Mega-Z', 'Primal'].includes(entry.forme) ? entry.baseSpecies : entry.battleOnly;
|
||||
if (entry.requiredAbility) {
|
||||
assert(entry.battleOnly, `Forme ${entry.name} with requiredAbility must have battleOnly`);
|
||||
}
|
||||
if (entry.requiredItem) {
|
||||
assert(battleOnly || entry.changesFrom, `Forme ${entry.name} with requiredAbility must have battleOnly or changesFrom`);
|
||||
assert(battleOnly || entry.changesFrom, `Forme ${entry.name} with requiredItem must have battleOnly or changesFrom`);
|
||||
}
|
||||
if (entry.requiredMove) {
|
||||
assert(battleOnly || entry.changesFrom, `Forme ${entry.name} with requiredAbility must have battleOnly or changesFrom`);
|
||||
assert(battleOnly || entry.changesFrom, `Forme ${entry.name} with requiredMove must have battleOnly or changesFrom`);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -377,12 +377,12 @@ describe('Dex data', () => {
|
|||
// Lycanroc (2) + Minior (1) + Mimikyu (1) + Necrozma (2) + Magearna (1) + Toxtricity (1) +
|
||||
// Antique (2) + Eiscue (1) + Indeedee (1) + Cramorant (2) + Morpeko (1) + Crowned (2) +
|
||||
// Urshifu (1) + Zarude (1) + Calyrex (2) + Oinkologne (1) + Ursaluna (1) + Dudunsparce (1) +
|
||||
// Palafin (1) + Maushold (1) + Squawkabilly (3) + Gimmighoul (1) + Basculegion (1) +
|
||||
// Palafin (1) + Maushold (1) + Squawkabilly (3) + Tatsugiri (2) + Gimmighoul (1) + Basculegion (1) +
|
||||
// Masterpiece (2) + Ogerpon (7) + Terapagos (2)
|
||||
formes[9] = 8 + 3 + 4 + 16 + 7 + 4 + 16 + 3 + 5 + 1 + 17 +
|
||||
2 + 2 + 1 + 1 + 1 + 2 + 1 + 1 + 3 + 1 + 2 + 1 + 1 + 2 +
|
||||
1 + 1 + 2 + 1 + 1 + 2 + 1 + 2 + 1 + 1 + 1 + 2 + 1 + 1 +
|
||||
1 + 1 + 3 + 1 + 1 + 2 + 7 + 2;
|
||||
1 + 1 + 3 + 2 + 1 + 1 + 2 + 7 + 2;
|
||||
|
||||
for (const gen of [1, 2, 3, 4, 5, 6, 7, 8, 9]) {
|
||||
it(`Gen ${gen} should have ${species[gen]} species and ${formes[gen]} formes`, () => {
|
||||
|
|
@ -400,10 +400,12 @@ describe('Dex data', () => {
|
|||
// Vulpix (1) + Ninetales (1) + Wormadam (2) + Cherrim (1) + Rotom (5) + Origin (3) + Arceus (17) +
|
||||
// Shaymin (1) + Therian (4) + Hisui (16) + Basculin (1) + Basculegion (1)
|
||||
formes['gen8legends'] = 1 + 1 + 2 + 1 + 5 + 3 + 17 + 1 + 4 + 16 + 1 + 1;
|
||||
species['gen9legends'] = 231;
|
||||
// Mega (66) + Vivillon (2) + Floette (1) + Meowstic (1) + Aegislash (1) + Pumpkaboo (3) + Gourgeist (3) +
|
||||
// Zygarde (2) + Alola (1) + Galar (4)
|
||||
formes['gen9legends'] = 66 + 2 + 1 + 1 + 1 + 3 + 3 + 2 + 1 + 4;
|
||||
species['gen9legends'] = 362;
|
||||
// Mega (90) + Primal (2) + Rotom (5) + Keldeo (1) + Meloetta + Genesect (4) + Vivillon (2) + Floette (1) +
|
||||
// Meowstic (1) + Aegislash (1) + Pumpkaboo (3) + Gourgeist (3) + Zygarde (2) + Mimikyu (1) + Magearna (1) +
|
||||
// Alola (4) + Toxtricity (1) + Indeedee (1) + Morpeko (1) + Galar (8) + Hisui (1) + Squawkabilly (3) +
|
||||
// Tatsugiri (2) + Gimmighoul (1)
|
||||
formes['gen9legends'] = 92 + 2 + 5 + 1 + 1 + 4 + 2 + 1 + 1 + 1 + 3 + 3 + 2 + 1 + 1 + 4 + 1 + 1 + 1 + 8 + 1 + 3 + 2 + 1;
|
||||
|
||||
for (const mod of ['gen7letsgo', 'gen8bdsp', 'gen8legends', 'gen9legends']) {
|
||||
it(`${mod} should have ${species[mod]} species and ${formes[mod]} formes`, () => {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user