mirror of
https://github.com/smogon/pokemon-showdown.git
synced 2026-03-21 17:25:10 -05:00
Add October PMotM: Blank Canvas Random Battle (#11463)
* Blank Canvas Rands: Initial Commit * Add in all Item hardcodes * a couple more set adjustments * Update data/mods/blankcanvas/rulesets.ts * Apply suggestions from code review --------- Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>
This commit is contained in:
parent
1d741a1209
commit
fbe978a9c9
|
|
@ -2863,16 +2863,16 @@ export const Formats: import('../sim/dex-formats').FormatList = [
|
|||
section: "Pet Mods",
|
||||
},
|
||||
{
|
||||
name: "[Gen 9] Do Not Use Random Battle",
|
||||
desc: `A National Dex random battle format where only Pokémon with 280 BST or less (with some exceptions) are allowed.`,
|
||||
mod: 'gen9',
|
||||
team: 'randomDNU',
|
||||
ruleset: ['Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', 'Illusion Level Mod', 'Terastal Clause'],
|
||||
name: "[Gen 9] Blank Canvas Random Battle",
|
||||
desc: `A Gen 9 micrometa feautring only Fakemon made by teams of players with a limited budget.`,
|
||||
mod: 'blankcanvas',
|
||||
team: 'randomBLC',
|
||||
ruleset: ['Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', 'Illusion Level Mod', 'Terastal Clause', 'Data Preview', 'Sprite Viewer'],
|
||||
onBegin() {
|
||||
this.add(`raw|Welcome to Do Not Use Random Battle!`);
|
||||
this.add(`raw|<a href="https://www.smogon.com/forums/threads/3734326/">Do Not Use</a> is a Solomod where ONLY Pokémon with 280 BST or less are allowed!`);
|
||||
this.add(`raw|(with some exceptions, like Luvdisc and Capsakid.)`);
|
||||
this.add(`raw|You are invited to come the <a href="https://play.pokemonshowdown.com/petmods">Pet Mods</a> room to discuss the metagame.`);
|
||||
this.add('-message', `Welcome to Blank Canvas Random Battle!`);
|
||||
this.add('-message', `This is a Gen 9 micrometa feautring only Fakemon made by teams of players with a limited budget!`);
|
||||
this.add('-message', `You can find our thread and metagame resources here:`);
|
||||
this.add('-message', `https://www.smogon.com/forums/threads/3748841/`);
|
||||
},
|
||||
onSwitchInPriority: 100,
|
||||
onSwitchIn(pokemon) {
|
||||
|
|
@ -2884,23 +2884,37 @@ export const Formats: import('../sim/dex-formats').FormatList = [
|
|||
},
|
||||
},
|
||||
{
|
||||
name: "[Gen 9] National Dex Do Not Use", // roomtours
|
||||
desc: `A National Dex solomod where only Pokémon with 280 BST or less are allowed.`,
|
||||
mod: 'gen9',
|
||||
name: "[Gen 9] Blank Canvas Expanded", // roomtours
|
||||
desc: `A Gen 9 micrometa feautring only Fakemon made by teams of players with a limited budget.`,
|
||||
mod: 'blankcanvas',
|
||||
searchShow: false,
|
||||
ruleset: ['Standard NatDex', 'Terastal Clause', 'Z-Move Clause'],
|
||||
banlist: ['Dewpider', 'Diglett-Alola', 'Flittle', 'Shedinja', 'Smeargle', 'Wattrel', 'Wingull', 'Wishiwashi', 'Zigzagoon-Base', 'Arena Trap', 'Cute Charm', 'Huge Power', 'Hustle', 'Moody', 'Pure Power', 'Shadow Tag', 'Baton Pass'],
|
||||
ruleset: ['Standard', 'Terastal Clause', 'Data Preview', 'Sleep Moves Clause', '!Sleep Clause Mod', 'Sprite Viewer'],
|
||||
banlist: ['All Pokemon', 'Arena Trap', 'Moody', 'Shadow Tag', 'King\'s Rock', 'Baton Pass', 'Last Respects', 'Shed Tail', 'Razor Fang', 'Light Clay'],
|
||||
unbanlist: [
|
||||
'Actaniathan', 'Flarenheit', 'Groundead', 'Deadward', 'Obaki', 'Sylravage', 'Twinkaton', 'Fausteil', 'Geoporka',
|
||||
'Porcupyre', 'Plasmage', 'Seaode', 'Bellolysk', 'Tryonite', 'Scarachnid', 'Serpvoltidae', 'Maldractice', 'Geigeramp',
|
||||
'Bufferfly', 'Dastard', 'Sheepquake', 'Cottentration', 'Sorrowcean', 'Psyllapse', 'Haarstorm', 'Borealis', 'Bazhigangquan',
|
||||
'Leechmonner', 'Iron Crest', 'Odonata', 'Hebicikuga', 'Devestial', 'Lundicare', 'Lyvamp', 'Strumorthio', 'Iron Mike',
|
||||
'Badjur', 'Eolikopter', 'Freightmare', 'Frostengu', 'Goblantern', 'Hippaint', 'Jackoswarm', 'Jokerpent', 'Kadraoke',
|
||||
'Treatmint', 'Turvarpega', 'Goodjur', 'Liftaton', 'Triceracotta', 'Woolverine', 'Combustoad', 'Hearthind', 'Koiryu',
|
||||
'Pestiligy', 'Saxum', 'Sascratch', 'Guttergar', 'Rakasa', 'Thermostatic', 'Formaldehydra', 'Arachnode', 'Arsenstorm',
|
||||
'Blobbiam', 'Brasspecter', 'Bugswarm', 'Bulionage', 'Capricorrie', 'Copperhead', 'Craggon', 'Crystuit', 'Drakkannon',
|
||||
'Faeruin', 'Karmalice', 'Martorse', 'Massassin', 'Mohawtter', 'Mon Mothra', 'Parasike', 'Pinaturbo', 'Piss', 'Vipult',
|
||||
'Fettogre', 'Florustitia', 'Searytch', 'Sleet Shell', 'Snabterra', 'Socknbuskn', 'Thaumaton', 'Versalyre',
|
||||
'Lavalisk', 'Llanfairwyrm', 'Primordialith', 'Reversadusa', 'Sculptera', 'Wizhazard', 'Yamateraph',
|
||||
],
|
||||
onBegin() {
|
||||
this.add('-message', `Welcome to Do Not Use!`);
|
||||
this.add('-message', `This is a National Dex metagame where only Pokemon with less than 280 BST are allowed, plus a select few others!`);
|
||||
this.add('-message', `Welcome to Blank Canvas!`);
|
||||
this.add('-message', `This is a Gen 9 micrometa feautring only Fakemon made by teams of players with a limited budget!`);
|
||||
this.add('-message', `You can find our thread and metagame resources here:`);
|
||||
this.add('-message', `https://www.smogon.com/forums/threads/3734326/`);
|
||||
this.add('-message', `https://www.smogon.com/forums/threads/3748841/`);
|
||||
},
|
||||
onValidateSet(set) {
|
||||
const species = this.dex.species.get(set.species);
|
||||
if (species.bst > 280) {
|
||||
if (['Luvdisc', 'Unown', 'Capsakid', 'Snorunt', 'Swablu', 'Beldum'].includes(species.baseSpecies)) return;
|
||||
return [`Only Pok\u00e9mon with a BST of 280 or lower are allowed.`, `(${species.name}'s BST is ${species.bst}.)`];
|
||||
onSwitchInPriority: 100,
|
||||
onSwitchIn(pokemon) {
|
||||
if ((pokemon.illusion || pokemon).getTypes(true, true).join('/') !==
|
||||
this.dex.forGen(9).species.get((pokemon.illusion || pokemon).species.name).types.join('/') &&
|
||||
!pokemon.terastallized) {
|
||||
this.add('-start', pokemon, 'typechange', (pokemon.illusion || pokemon).getTypes(true).join('/'), '[silent]');
|
||||
}
|
||||
},
|
||||
},
|
||||
|
|
|
|||
295
data/mods/blankcanvas/formats-data.ts
Normal file
295
data/mods/blankcanvas/formats-data.ts
Normal file
|
|
@ -0,0 +1,295 @@
|
|||
export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = {
|
||||
piss: {
|
||||
tier: "UU",
|
||||
},
|
||||
snabterra: {
|
||||
tier: "UU",
|
||||
},
|
||||
drakkannon: {
|
||||
tier: "UU",
|
||||
},
|
||||
arsenstorm: {
|
||||
tier: "UU",
|
||||
},
|
||||
badjur: {
|
||||
tier: "UU",
|
||||
},
|
||||
vipult: {
|
||||
tier: "UU",
|
||||
},
|
||||
fettogre: {
|
||||
tier: "UU",
|
||||
},
|
||||
crystuit: {
|
||||
tier: "UU",
|
||||
},
|
||||
monmothra: {
|
||||
tier: "UU",
|
||||
},
|
||||
wizhazard: {
|
||||
tier: "UU",
|
||||
},
|
||||
jackoswarm: {
|
||||
tier: "UU",
|
||||
},
|
||||
kadraoke: {
|
||||
tier: "UU",
|
||||
},
|
||||
karmalice: {
|
||||
tier: "UU",
|
||||
},
|
||||
goblantern: {
|
||||
tier: "UU",
|
||||
},
|
||||
hippaint: {
|
||||
tier: "UU",
|
||||
},
|
||||
pinaturbo: {
|
||||
tier: "UU",
|
||||
},
|
||||
eolikopter: {
|
||||
tier: "UU",
|
||||
},
|
||||
mohawtter: {
|
||||
tier: "UU",
|
||||
},
|
||||
arachnode: {
|
||||
tier: "UU",
|
||||
},
|
||||
blobbiam: {
|
||||
tier: "UU",
|
||||
},
|
||||
florustitia: {
|
||||
tier: "UU",
|
||||
},
|
||||
primordialith: {
|
||||
tier: "UU",
|
||||
},
|
||||
faeruin: {
|
||||
tier: "UU",
|
||||
},
|
||||
versalyre: {
|
||||
tier: "UU",
|
||||
},
|
||||
capricorrie: {
|
||||
tier: "UU",
|
||||
},
|
||||
reversadusa: {
|
||||
tier: "UU",
|
||||
},
|
||||
llanfairwyrm: {
|
||||
tier: "UU",
|
||||
},
|
||||
frostengu: {
|
||||
tier: "UU",
|
||||
},
|
||||
bulionage: {
|
||||
tier: "UU",
|
||||
},
|
||||
yamateraph: {
|
||||
tier: "UU",
|
||||
},
|
||||
bugswarm: {
|
||||
tier: "UU",
|
||||
},
|
||||
freightmare: {
|
||||
tier: "UU",
|
||||
},
|
||||
brasspecter: {
|
||||
tier: "UU",
|
||||
},
|
||||
copperhead: {
|
||||
tier: "UU",
|
||||
},
|
||||
thaumaton: {
|
||||
tier: "UU",
|
||||
},
|
||||
sculptera: {
|
||||
tier: "UU",
|
||||
},
|
||||
lavalisk: {
|
||||
tier: "UU",
|
||||
},
|
||||
martorse: {
|
||||
tier: "UU",
|
||||
},
|
||||
parasike: {
|
||||
tier: "UU",
|
||||
},
|
||||
massassin: {
|
||||
tier: "UU",
|
||||
},
|
||||
searytch: {
|
||||
tier: "UU",
|
||||
},
|
||||
jokerpent: {
|
||||
tier: "UU",
|
||||
},
|
||||
socknbuskn: {
|
||||
tier: "UU",
|
||||
},
|
||||
sleetshell: {
|
||||
tier: "UU",
|
||||
},
|
||||
craggon: {
|
||||
tier: "UU",
|
||||
},
|
||||
// Meta B
|
||||
flarenheit: {
|
||||
tier: "OU",
|
||||
},
|
||||
groundead: {
|
||||
tier: "OU",
|
||||
},
|
||||
actaniathan: {
|
||||
tier: "OU",
|
||||
},
|
||||
deadward: {
|
||||
tier: "OU",
|
||||
},
|
||||
obaki: {
|
||||
tier: "OU",
|
||||
},
|
||||
sylravage: {
|
||||
tier: "OU",
|
||||
},
|
||||
twinkaton: {
|
||||
tier: "OU",
|
||||
},
|
||||
fausteil: {
|
||||
tier: "OU",
|
||||
},
|
||||
geoporka: {
|
||||
tier: "OU",
|
||||
},
|
||||
seaode: {
|
||||
tier: "OU",
|
||||
},
|
||||
plasmage: {
|
||||
tier: "OU",
|
||||
},
|
||||
porcupyre: {
|
||||
tier: "OU",
|
||||
},
|
||||
bellolysk: {
|
||||
tier: "OU",
|
||||
},
|
||||
tryonite: {
|
||||
tier: "OU",
|
||||
},
|
||||
scarachnid: {
|
||||
tier: "OU",
|
||||
},
|
||||
geigeramp: {
|
||||
tier: "OU",
|
||||
},
|
||||
maldractice: {
|
||||
tier: "OU",
|
||||
},
|
||||
serpvoltidae: {
|
||||
tier: "OU",
|
||||
},
|
||||
sheepquake: {
|
||||
tier: "OU",
|
||||
},
|
||||
bufferfly: {
|
||||
tier: "OU",
|
||||
},
|
||||
dastard: {
|
||||
tier: "OU",
|
||||
},
|
||||
cottentration: {
|
||||
tier: "OU",
|
||||
},
|
||||
sorrowcean: {
|
||||
tier: "OU",
|
||||
},
|
||||
psyllapse: {
|
||||
tier: "OU",
|
||||
},
|
||||
haarstorm: {
|
||||
tier: "OU",
|
||||
},
|
||||
borealis: {
|
||||
tier: "OU",
|
||||
},
|
||||
bazhigangquan: {
|
||||
tier: "OU",
|
||||
},
|
||||
leechmonner: {
|
||||
tier: "OU",
|
||||
},
|
||||
ironcrest: {
|
||||
tier: "OU",
|
||||
},
|
||||
odonata: {
|
||||
tier: "OU",
|
||||
},
|
||||
hebicikuga: {
|
||||
tier: "OU",
|
||||
},
|
||||
devestial: {
|
||||
tier: "OU",
|
||||
},
|
||||
lundicare: {
|
||||
tier: "OU",
|
||||
},
|
||||
// Meta C
|
||||
lyvamp: {
|
||||
tier: "RU",
|
||||
},
|
||||
treatmint: {
|
||||
tier: "RU",
|
||||
},
|
||||
turvarpega: {
|
||||
tier: "RU",
|
||||
},
|
||||
goodjur: {
|
||||
tier: "RU",
|
||||
},
|
||||
liftaton: {
|
||||
tier: "RU",
|
||||
},
|
||||
triceracotta: {
|
||||
tier: "RU",
|
||||
},
|
||||
woolverine: {
|
||||
tier: "RU",
|
||||
},
|
||||
combustoad: {
|
||||
tier: "RU",
|
||||
},
|
||||
hearthind: {
|
||||
tier: "RU",
|
||||
},
|
||||
koiryu: {
|
||||
tier: "RU",
|
||||
},
|
||||
pestiligy: {
|
||||
tier: "RU",
|
||||
},
|
||||
saxum: {
|
||||
tier: "RU",
|
||||
},
|
||||
sascratch: {
|
||||
tier: "RU",
|
||||
},
|
||||
guttergar: {
|
||||
tier: "RU",
|
||||
},
|
||||
rakasa: {
|
||||
tier: "RU",
|
||||
},
|
||||
thermostatic: {
|
||||
tier: "RU",
|
||||
},
|
||||
formaldehydra: {
|
||||
tier: "RU",
|
||||
},
|
||||
strumorthio: {
|
||||
tier: "RU",
|
||||
},
|
||||
ironmike: {
|
||||
tier: "RU",
|
||||
},
|
||||
};
|
||||
3703
data/mods/blankcanvas/learnsets.ts
Normal file
3703
data/mods/blankcanvas/learnsets.ts
Normal file
File diff suppressed because it is too large
Load Diff
26
data/mods/blankcanvas/moves.ts
Normal file
26
data/mods/blankcanvas/moves.ts
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = {
|
||||
meditate: {
|
||||
inherit: true,
|
||||
isNonstandard: null,
|
||||
},
|
||||
dragonrage: {
|
||||
inherit: true,
|
||||
isNonstandard: null,
|
||||
},
|
||||
boneclub: {
|
||||
inherit: true,
|
||||
isNonstandard: null,
|
||||
},
|
||||
powershift: {
|
||||
inherit: true,
|
||||
isNonstandard: null,
|
||||
},
|
||||
blazingtorque: {
|
||||
inherit: true,
|
||||
isNonstandard: null,
|
||||
},
|
||||
camouflage: {
|
||||
inherit: true,
|
||||
isNonstandard: null,
|
||||
},
|
||||
};
|
||||
881
data/mods/blankcanvas/pokedex.ts
Normal file
881
data/mods/blankcanvas/pokedex.ts
Normal file
|
|
@ -0,0 +1,881 @@
|
|||
export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = {
|
||||
piss: {
|
||||
num: 9001,
|
||||
name: "Piss",
|
||||
types: ["Normal"],
|
||||
baseStats: { hp: 70, atk: 95, def: 60, spa: 50, spd: 60, spe: 95 },
|
||||
abilities: { 0: "Magic Guard" },
|
||||
weightkg: 382,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
snabterra: {
|
||||
num: 9002,
|
||||
name: "Snabterra",
|
||||
types: ["Bug", "Ground"],
|
||||
baseStats: { hp: 85, atk: 110, def: 85, spa: 40, spd: 80, spe: 85 },
|
||||
abilities: { 0: "Compound Eyes" },
|
||||
weightkg: 600,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
drakkannon: {
|
||||
num: 9003,
|
||||
name: "Drakkannon",
|
||||
types: ["Fighting", "Dragon"],
|
||||
baseStats: { hp: 80, atk: 50, def: 95, spa: 100, spd: 105, spe: 73 },
|
||||
abilities: { 0: "Mega Launcher" },
|
||||
weightkg: 59,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
arsenstorm: {
|
||||
num: 9004,
|
||||
name: "Arsenstorm",
|
||||
types: ["Poison", "Ground"],
|
||||
baseStats: { hp: 110, atk: 50, def: 65, spa: 80, spd: 90, spe: 55 },
|
||||
abilities: { 0: "Neutralizing Gas", H: "Levitate" },
|
||||
weightkg: 15,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
badjur: {
|
||||
num: 9005,
|
||||
name: "Badjur",
|
||||
types: ["Normal"],
|
||||
baseStats: { hp: 85, atk: 100, def: 75, spa: 60, spd: 75, spe: 80 },
|
||||
abilities: { 0: "Poison Heal" },
|
||||
weightkg: 16,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
vipult: {
|
||||
num: 9006,
|
||||
name: "Vipult",
|
||||
types: ["Poison", "Dark"],
|
||||
baseStats: { hp: 100, atk: 65, def: 70, spa: 100, spd: 100, spe: 70 },
|
||||
abilities: { 0: "Intimidate" },
|
||||
weightkg: 23,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
fettogre: {
|
||||
num: 9007,
|
||||
name: "Fettogre",
|
||||
types: ["Ghost", "Fighting"],
|
||||
baseStats: { hp: 70, atk: 45, def: 140, spa: 45, spd: 80, spe: 55 },
|
||||
abilities: { 0: "Immunity", H: "Oblivious" },
|
||||
weightkg: 200,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
crystuit: {
|
||||
num: 9008,
|
||||
name: "Crystuit",
|
||||
types: ["Rock", "Electric"],
|
||||
baseStats: { hp: 70, atk: 50, def: 80, spa: 105, spd: 70, spe: 110 },
|
||||
abilities: { 0: "Sturdy", H: "Levitate" },
|
||||
weightkg: 420.6,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
monmothra: {
|
||||
num: 9009,
|
||||
name: "Mon Mothra",
|
||||
types: ["Fairy", "Bug"],
|
||||
baseStats: { hp: 80, atk: 50, def: 70, spa: 100, spd: 70, spe: 90 },
|
||||
abilities: { 0: "Fluffy", H: "Tinted Lens" },
|
||||
weightkg: 50,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
wizhazard: {
|
||||
num: 9010,
|
||||
name: "Wizhazard",
|
||||
types: ["Psychic", "Steel"],
|
||||
baseStats: { hp: 95, atk: 40, def: 90, spa: 100, spd: 70, spe: 60 },
|
||||
abilities: { 0: "Magic Bounce", H: "Battle Armor" },
|
||||
weightkg: 69,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
jackoswarm: {
|
||||
num: 9011,
|
||||
name: "Jack-o-swarm",
|
||||
types: ["Steel", "Flying"],
|
||||
baseStats: { hp: 90, atk: 50, def: 95, spa: 70, spd: 90, spe: 70 },
|
||||
abilities: { 0: "Pickpocket", H: "Rough Skin" },
|
||||
weightkg: 74.8,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
kadraoke: {
|
||||
num: 9012,
|
||||
name: "Kadraoke",
|
||||
types: ["Psychic", "Dragon"],
|
||||
baseStats: { hp: 90, atk: 30, def: 80, spa: 85, spd: 100, spe: 85 },
|
||||
abilities: { 0: "Punk Rock" },
|
||||
weightkg: 19.7,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
karmalice: {
|
||||
num: 9013,
|
||||
name: "Karmalice",
|
||||
types: ["Ice", "Electric"],
|
||||
baseStats: { hp: 70, atk: 55, def: 40, spa: 105, spd: 55, spe: 111 },
|
||||
abilities: { 0: "Refrigerate" },
|
||||
weightkg: 690,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
goblantern: {
|
||||
num: 9014,
|
||||
name: "Goblantern",
|
||||
types: ["Fire", "Grass"],
|
||||
baseStats: { hp: 90, atk: 40, def: 80, spa: 100, spd: 80, spe: 77 },
|
||||
abilities: { 0: "Prankster" },
|
||||
weightkg: 3,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
hippaint: {
|
||||
num: 9015,
|
||||
name: "Hippaint",
|
||||
types: ["Water", "Ground"],
|
||||
baseStats: { hp: 70, atk: 40, def: 70, spa: 110, spd: 85, spe: 80 },
|
||||
abilities: { 0: "Pastel Veil" },
|
||||
weightkg: 90,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
pinaturbo: {
|
||||
num: 9016,
|
||||
name: "Pinaturbo",
|
||||
types: ["Fire"],
|
||||
baseStats: { hp: 70, atk: 70, def: 60, spa: 100, spd: 95, spe: 115 },
|
||||
abilities: { 0: "Mold Breaker", H: "Regenerator" },
|
||||
weightkg: 126,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
eolikopter: {
|
||||
num: 9017,
|
||||
name: "Eolikopter",
|
||||
types: ["Flying", "Electric"],
|
||||
baseStats: { hp: 90, atk: 50, def: 80, spa: 100, spd: 70, spe: 110 },
|
||||
abilities: { 0: "Cloud Nine", H: "Static" },
|
||||
weightkg: 400,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
mohawtter: {
|
||||
num: 9018,
|
||||
name: "Mohawtter",
|
||||
types: ["Water", "Grass"],
|
||||
baseStats: { hp: 85, atk: 50, def: 70, spa: 70, spd: 110, spe: 55 },
|
||||
abilities: { 0: "Tablets of Ruin", H: "Hydration" },
|
||||
weightkg: 32,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
arachnode: {
|
||||
num: 9019,
|
||||
name: "Arachnode",
|
||||
types: ["Electric"],
|
||||
baseStats: { hp: 105, atk: 30, def: 75, spa: 85, spd: 100, spe: 60 },
|
||||
abilities: { 0: "Clear Body", H: "Thick Fat" },
|
||||
weightkg: 61.5,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
blobbiam: {
|
||||
num: 9020,
|
||||
name: "Blobbiam",
|
||||
types: ["Water", "Fairy"],
|
||||
baseStats: { hp: 95, atk: 100, def: 110, spa: 20, spd: 80, spe: 75 },
|
||||
abilities: { 0: "Volt Absorb" },
|
||||
weightkg: 12,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
florustitia: {
|
||||
num: 9021,
|
||||
name: "Florustitia",
|
||||
types: ["Grass", "Fighting"],
|
||||
baseStats: { hp: 70, atk: 85, def: 60, spa: 40, spd: 95, spe: 100 },
|
||||
abilities: { 0: "Sharpness", H: "Grassy Surge" },
|
||||
weightkg: 110,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
primordialith: {
|
||||
num: 9022,
|
||||
name: "Primordialith",
|
||||
types: ["Rock"],
|
||||
baseStats: { hp: 100, atk: 100, def: 100, spa: 35, spd: 90, spe: 30 },
|
||||
abilities: { 0: "Sand Stream", H: "Vital Spirit" },
|
||||
weightkg: 90,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
faeruin: {
|
||||
num: 9023,
|
||||
name: "Faeruin",
|
||||
types: ["Ghost", "Fairy"],
|
||||
baseStats: { hp: 90, atk: 96, def: 70, spa: 40, spd: 80, spe: 93 },
|
||||
abilities: { 0: "Prankster", H: "Wandering Spirit" },
|
||||
weightkg: 33,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
versalyre: {
|
||||
num: 9024,
|
||||
name: "Versalyre",
|
||||
types: ["Flying"],
|
||||
baseStats: { hp: 70, atk: 110, def: 65, spa: 30, spd: 70, spe: 90 },
|
||||
abilities: { 0: "Protean" },
|
||||
weightkg: 2,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
capricorrie: {
|
||||
num: 9025,
|
||||
name: "Capricorrie",
|
||||
types: ["Ice", "Ground"],
|
||||
baseStats: { hp: 100, atk: 110, def: 80, spa: 50, spd: 70, spe: 90 },
|
||||
abilities: { 0: "Snow Warning", H: "Vital Spirit" },
|
||||
weightkg: 146,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
reversadusa: {
|
||||
num: 9026,
|
||||
name: "Reversadusa",
|
||||
types: ["Psychic", "Dark"],
|
||||
baseStats: { hp: 90, atk: 90, def: 80, spa: 70, spd: 70, spe: 95 },
|
||||
abilities: { 0: "Contrary" },
|
||||
weightkg: 55.2,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
llanfairwyrm: {
|
||||
num: 9027,
|
||||
name: "Llanfairwyrm",
|
||||
types: ["Dragon"],
|
||||
baseStats: { hp: 85, atk: 120, def: 100, spa: 55, spd: 90, spe: 70 },
|
||||
abilities: { 0: "Rough Skin" },
|
||||
weightkg: 600,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
frostengu: {
|
||||
num: 9028,
|
||||
name: "Frostengu",
|
||||
types: ["Fighting", "Ice"],
|
||||
baseStats: { hp: 50, atk: 110, def: 50, spa: 110, spd: 50, spe: 87 },
|
||||
abilities: { 0: "No Guard" },
|
||||
weightkg: 68,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
bulionage: {
|
||||
num: 9029,
|
||||
name: "Bulionage",
|
||||
types: ["Dark", "Water"],
|
||||
baseStats: { hp: 95, atk: 90, def: 85, spa: 40, spd: 120, spe: 50 },
|
||||
abilities: { 0: "Strong Jaw", 1: "Thermal Exchange", H: "White Smoke" },
|
||||
weightkg: 300,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
yamateraph: {
|
||||
num: 9030,
|
||||
name: "Yamateraph",
|
||||
types: ["Normal", "Fairy"],
|
||||
baseStats: { hp: 90, atk: 110, def: 80, spa: 15, spd: 80, spe: 105 },
|
||||
abilities: { 0: "Psychic Surge", H: "Vital Spirit" },
|
||||
weightkg: 255,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
bugswarm: {
|
||||
num: 9031,
|
||||
name: "Bugswarm",
|
||||
types: ["Fire", "Bug"],
|
||||
baseStats: { hp: 100, atk: 90, def: 70, spa: 70, spd: 70, spe: 60 },
|
||||
abilities: { 0: "Triage" },
|
||||
weightkg: 420,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
freightmare: {
|
||||
num: 9032,
|
||||
name: "Freightmare",
|
||||
types: ["Ghost", "Steel"],
|
||||
baseStats: { hp: 100, atk: 40, def: 80, spa: 105, spd: 85, spe: 74 },
|
||||
abilities: { 0: "Sand Rush", H: "Steam Engine" },
|
||||
weightkg: 720,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
brasspecter: {
|
||||
num: 9033,
|
||||
name: "Brasspecter",
|
||||
types: ["Steel", "Ghost"],
|
||||
baseStats: { hp: 110, atk: 95, def: 100, spa: 40, spd: 95, spe: 35 },
|
||||
abilities: { 0: "Tough Claws" },
|
||||
weightkg: 40,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
copperhead: {
|
||||
num: 9034,
|
||||
name: "Copperhead",
|
||||
types: ["Ground", "Steel"],
|
||||
baseStats: { hp: 85, atk: 80, def: 100, spa: 50, spd: 90, spe: 50 },
|
||||
abilities: { 0: "Water Absorb" },
|
||||
weightkg: 101.9,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
thaumaton: {
|
||||
num: 9035,
|
||||
name: "Thaumaton",
|
||||
types: ["Poison", "Steel"],
|
||||
baseStats: { hp: 95, atk: 70, def: 70, spa: 100, spd: 100, spe: 75 },
|
||||
abilities: { 0: "Unburden", H: "Flash Fire" },
|
||||
weightkg: 666,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
sculptera: {
|
||||
num: 9036,
|
||||
name: "Sculptera",
|
||||
types: ["Rock", "Dragon"],
|
||||
baseStats: { hp: 100, atk: 105, def: 70, spa: 40, spd: 85, spe: 85 },
|
||||
abilities: { 0: "Skill Link", H: "Defiant" },
|
||||
weightkg: 729,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
lavalisk: {
|
||||
num: 9037,
|
||||
name: "Lavalisk",
|
||||
types: ["Poison", "Fire"],
|
||||
baseStats: { hp: 100, atk: 105, def: 80, spa: 40, spd: 80, spe: 76 },
|
||||
abilities: { 0: "Mold Breaker" },
|
||||
weightkg: 150,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
martorse: {
|
||||
num: 9038,
|
||||
name: "Martorse",
|
||||
types: ["Ground", "Fire"],
|
||||
baseStats: { hp: 75, atk: 90, def: 70, spa: 35, spd: 90, spe: 105 },
|
||||
abilities: { 0: "Trace", H: "Prankster" },
|
||||
weightkg: 173,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
parasike: {
|
||||
num: 9039,
|
||||
name: "Parasike",
|
||||
types: ["Psychic", "Bug"],
|
||||
baseStats: { hp: 50, atk: 90, def: 75, spa: 50, spd: 55, spe: 109 },
|
||||
abilities: { 0: "Strong Jaw", H: "Tinted Lens" },
|
||||
weightkg: 0.8,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
massassin: {
|
||||
num: 9040,
|
||||
name: "Massassin",
|
||||
types: ["Fighting", "Dark"],
|
||||
baseStats: { hp: 110, atk: 110, def: 80, spa: 50, spd: 80, spe: 30 },
|
||||
abilities: { 0: "Quark Drive" },
|
||||
weightkg: 888,
|
||||
eggGroups: ["Undiscovered"],
|
||||
tags: ["Paradox"],
|
||||
},
|
||||
searytch: {
|
||||
num: 9041,
|
||||
name: "Searytch",
|
||||
types: ["Fairy", "Fire"],
|
||||
baseStats: { hp: 85, atk: 30, def: 75, spa: 105, spd: 100, spe: 60 },
|
||||
abilities: { 0: "Stamina" },
|
||||
weightkg: 42,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
jokerpent: {
|
||||
num: 9042,
|
||||
name: "Jokerpent",
|
||||
types: ["Dragon", "Poison"],
|
||||
baseStats: { hp: 100, atk: 70, def: 100, spa: 30, spd: 75, spe: 20 },
|
||||
abilities: { 0: "Unaware" },
|
||||
weightkg: 67,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
socknbuskn: {
|
||||
num: 9043,
|
||||
name: "Socknbusk\u2019n",
|
||||
types: ["Normal", "Fighting"],
|
||||
baseStats: { hp: 95, atk: 95, def: 75, spa: 40, spd: 70, spe: 110 },
|
||||
abilities: { 0: "Scrappy" },
|
||||
weightkg: 65,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
sleetshell: {
|
||||
num: 8045,
|
||||
name: "Sleet Shell",
|
||||
types: ["Ice", "Steel"],
|
||||
baseStats: { hp: 83, atk: 95, def: 107, spa: 47, spd: 71, spe: 103 },
|
||||
abilities: { 0: "Protosynthesis" },
|
||||
weightkg: 674.5,
|
||||
eggGroups: ["Undiscovered"],
|
||||
tags: ["Paradox"],
|
||||
},
|
||||
craggon: {
|
||||
num: 9044,
|
||||
name: "Craggon",
|
||||
types: ["Dragon", "Ground"],
|
||||
baseStats: { hp: 120, atk: 81, def: 81, spa: 82, spd: 81, spe: 100 },
|
||||
abilities: { 0: "Natural Cure", H: "Emergency Exit" },
|
||||
weightkg: 404,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
// Meta B
|
||||
flarenheit: {
|
||||
num: 9045,
|
||||
name: "Flarenheit",
|
||||
types: ["Ice", "Fire"],
|
||||
baseStats: { hp: 55, atk: 110, def: 50, spa: 70, spd: 40, spe: 130 },
|
||||
abilities: { 0: "Motor Drive", H: "Surge Surfer" },
|
||||
weightkg: 45.1,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
groundead: {
|
||||
num: 9046,
|
||||
name: "Groundead",
|
||||
types: ["Ground", "Ghost"],
|
||||
baseStats: { hp: 80, atk: 115, def: 110, spa: 50, spd: 80, spe: 50 },
|
||||
abilities: { 0: "Misty Surge", 1: "Solid Rock", H: "Earth Eater" },
|
||||
weightkg: 0.2,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
actaniathan: {
|
||||
num: 9047,
|
||||
name: "Actaniathan",
|
||||
types: ["Water", "Steel"],
|
||||
baseStats: { hp: 100, atk: 40, def: 80, spa: 105, spd: 105, spe: 50 },
|
||||
abilities: { 0: "Torrent", H: "Lightning Rod" },
|
||||
weightkg: 800,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
deadward: {
|
||||
num: 9048,
|
||||
name: "Deadward",
|
||||
types: ["Dark", "Flying"],
|
||||
baseStats: { hp: 90, atk: 100, def: 85, spa: 40, spd: 90, spe: 110 },
|
||||
abilities: { 0: "Filter", H: "Intimidate" },
|
||||
weightkg: 66.6,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
obaki: {
|
||||
num: 9049,
|
||||
name: "Obaki",
|
||||
types: ["Fighting", "Ghost"],
|
||||
baseStats: { hp: 85, atk: 75, def: 65, spa: 125, spd: 105, spe: 55 },
|
||||
abilities: { 0: "Purifying Salt" },
|
||||
weightkg: 40,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
sylravage: {
|
||||
num: 9050,
|
||||
name: "Sylravage",
|
||||
types: ["Grass", "Fighting"],
|
||||
baseStats: { hp: 103, atk: 110, def: 86, spa: 41, spd: 80, spe: 80 },
|
||||
abilities: { 0: "Defiant", H: "Grassy Surge" },
|
||||
weightkg: 72,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
twinkaton: {
|
||||
num: 9051,
|
||||
name: "Twinkaton",
|
||||
types: ["Fairy", "Steel"],
|
||||
baseStats: { hp: 90, atk: 75, def: 75, spa: 75, spd: 120, spe: 45 },
|
||||
abilities: { 0: "Mold Breaker", H: "Filter" },
|
||||
weightkg: 90,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
fausteil: {
|
||||
num: 9052,
|
||||
name: "Fausteil",
|
||||
types: ["Fire", "Flying"],
|
||||
baseStats: { hp: 110, atk: 90, def: 80, spa: 35, spd: 110, spe: 50 },
|
||||
abilities: { 0: "Flame Body" },
|
||||
weightkg: 26,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
geoporka: {
|
||||
num: 9053,
|
||||
name: "Geoporka",
|
||||
types: ["Grass", "Poison"],
|
||||
baseStats: { hp: 100, atk: 85, def: 80, spa: 70, spd: 95, spe: 45 },
|
||||
abilities: { 0: "Thick Fat" },
|
||||
weightkg: 38,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
seaode: {
|
||||
num: 9054,
|
||||
name: "Seaode",
|
||||
types: ["Rock", "Water"],
|
||||
baseStats: { hp: 70, atk: 110, def: 100, spa: 40, spd: 70, spe: 95 },
|
||||
abilities: { 0: "Rock Head" },
|
||||
weightkg: 121,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
plasmage: {
|
||||
num: 9055,
|
||||
name: "Plasmage",
|
||||
types: ["Psychic", "Electric"],
|
||||
baseStats: { hp: 100, atk: 55, def: 70, spa: 105, spd: 75, spe: 115 },
|
||||
abilities: { 0: "Magician" },
|
||||
weightkg: 85,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
porcupyre: {
|
||||
num: 9056,
|
||||
name: "Porcupyre",
|
||||
types: ["Dark", "Fire"],
|
||||
baseStats: { hp: 90, atk: 90, def: 125, spa: 40, spd: 80, spe: 70 },
|
||||
abilities: { 0: "Bulletproof", H: "Rough Skin" },
|
||||
weightkg: 66.6,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
bellolysk: {
|
||||
num: 9057,
|
||||
name: "Bellolysk",
|
||||
types: ["Dragon", "Steel"],
|
||||
baseStats: { hp: 100, atk: 90, def: 85, spa: 105, spd: 75, spe: 70 },
|
||||
abilities: { 0: "Magic Guard", H: "Multiscale" },
|
||||
weightkg: 999,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
tryonite: {
|
||||
num: 9058,
|
||||
name: "Tryonite",
|
||||
types: ["Bug", "Ground"],
|
||||
baseStats: { hp: 75, atk: 75, def: 90, spa: 100, spd: 105, spe: 90 },
|
||||
abilities: { 0: "Drought", H: "Sturdy" },
|
||||
weightkg: 7,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
scarachnid: {
|
||||
num: 9059,
|
||||
name: "Scarachnid",
|
||||
types: ["Ghost", "Bug"],
|
||||
baseStats: { hp: 81, atk: 112, def: 70, spa: 31, spd: 70, spe: 121 },
|
||||
abilities: { 0: "Regenerator", H: "Perish Body" },
|
||||
weightkg: 14,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
geigeramp: {
|
||||
num: 9060,
|
||||
name: "Geigeramp",
|
||||
types: ["Poison", "Electric"],
|
||||
baseStats: { hp: 100, atk: 50, def: 100, spa: 100, spd: 100, spe: 75 },
|
||||
abilities: { 0: "Levitate" },
|
||||
weightkg: 20,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
maldractice: {
|
||||
num: 9061,
|
||||
name: "Maldractice",
|
||||
types: ["Dragon", "Poison"],
|
||||
baseStats: { hp: 110, atk: 100, def: 60, spa: 20, spd: 115, spe: 40 },
|
||||
abilities: { 0: "Own Tempo", H: "Corrosion" },
|
||||
weightkg: 67,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
serpvoltidae: {
|
||||
num: 9062,
|
||||
name: "Serpvoltidae",
|
||||
types: ["Electric", "Ground"],
|
||||
baseStats: { hp: 110, atk: 45, def: 90, spa: 115, spd: 90, spe: 45 },
|
||||
abilities: { 0: "Teravolt", 1: "Shed Skin", H: "Natural Cure" },
|
||||
weightkg: 69,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
sheepquake: {
|
||||
num: 9063,
|
||||
name: "Sheepquake",
|
||||
types: ["Normal", "Ground"],
|
||||
baseStats: { hp: 110, atk: 30, def: 95, spa: 85, spd: 95, spe: 95 },
|
||||
abilities: { 0: "Sheer Force" },
|
||||
weightkg: 126,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
bufferfly: {
|
||||
num: 9064,
|
||||
name: "Bufferfly",
|
||||
types: ["Fighting", "Bug"],
|
||||
baseStats: { hp: 105, atk: 110, def: 70, spa: 20, spd: 90, spe: 65 },
|
||||
abilities: { 0: "Magic Bounce" },
|
||||
weightkg: 121,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
dastard: {
|
||||
num: 9065,
|
||||
name: "Dastard",
|
||||
types: ["Fairy", "Poison"],
|
||||
baseStats: { hp: 80, atk: 90, def: 110, spa: 100, spd: 80, spe: 100 },
|
||||
abilities: { 0: "Competitive" },
|
||||
weightkg: 55,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
cottentration: {
|
||||
num: 9066,
|
||||
name: "Cottentration",
|
||||
types: ["Grass", "Fighting"],
|
||||
baseStats: { hp: 50, atk: 50, def: 50, spa: 110, spd: 110, spe: 110 },
|
||||
abilities: { 0: "Chlorophyll" },
|
||||
weightkg: 0.8,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
sorrowcean: {
|
||||
num: 9067,
|
||||
name: "Sorrowcean",
|
||||
types: ["Water", "Ghost"],
|
||||
baseStats: { hp: 85, atk: 30, def: 85, spa: 100, spd: 70, spe: 108 },
|
||||
abilities: { 0: "Flare Boost", H: "Illusion" },
|
||||
weightkg: 15,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
psyllapse: {
|
||||
num: 9068,
|
||||
name: "Psyllapse",
|
||||
types: ["Psychic", "Normal"],
|
||||
baseStats: { hp: 100, atk: 95, def: 85, spa: 95, spd: 85, spe: 60 },
|
||||
abilities: { 0: "Prankster" },
|
||||
weightkg: 70,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
haarstorm: {
|
||||
num: 9069,
|
||||
name: "Haarstorm",
|
||||
types: ["Ghost", "Electric"],
|
||||
baseStats: { hp: 80, atk: 90, def: 75, spa: 30, spd: 115, spe: 105 },
|
||||
abilities: { 0: "Neutralizing Gas", H: "Natural Cure" },
|
||||
weightkg: 9,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
borealis: {
|
||||
num: 9070,
|
||||
name: "Borealis",
|
||||
types: ["Ice", "Flying"],
|
||||
baseStats: { hp: 95, atk: 75, def: 90, spa: 95, spd: 90, spe: 131 },
|
||||
abilities: { 0: "Supreme Overlord" },
|
||||
weightkg: 63,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
bazhigangquan: {
|
||||
num: 9071,
|
||||
name: "Bazhigangquan",
|
||||
types: ["Fighting", "Steel"],
|
||||
baseStats: { hp: 101, atk: 104, def: 100, spa: 35, spd: 61, spe: 68 },
|
||||
abilities: { 0: "Technician" },
|
||||
weightkg: 219,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
leechmonner: {
|
||||
num: 9072,
|
||||
name: "Leechmonner",
|
||||
types: ["Water", "Bug"],
|
||||
baseStats: { hp: 105, atk: 115, def: 70, spa: 40, spd: 110, spe: 65 },
|
||||
abilities: { 0: "Drizzle", H: "Water Veil" },
|
||||
weightkg: 922,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
ironcrest: {
|
||||
num: 9073,
|
||||
name: "Iron Crest",
|
||||
types: ["Flying", "Fighting"],
|
||||
baseStats: { hp: 72, atk: 96, def: 78, spa: 114, spd: 72, spe: 98 },
|
||||
abilities: { 0: "Quark Drive" },
|
||||
weightkg: 1.9,
|
||||
eggGroups: ["Undiscovered"],
|
||||
tags: ["Paradox"],
|
||||
},
|
||||
odonata: {
|
||||
num: 9074,
|
||||
name: "Odonata",
|
||||
types: ["Flying", "Dragon"],
|
||||
baseStats: { hp: 125, atk: 100, def: 80, spa: 60, spd: 80, spe: 75 },
|
||||
abilities: { 0: "Shield Dust", 1: "Aerilate", H: "Tough Claws" },
|
||||
weightkg: 45,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
hebicikuga: {
|
||||
num: 9075,
|
||||
name: "Hebicikuga",
|
||||
types: ["Bug", "Dragon"],
|
||||
baseStats: { hp: 85, atk: 115, def: 75, spa: 80, spd: 95, spe: 115 },
|
||||
abilities: { 0: "Soul-Heart", H: "Technician" },
|
||||
weightkg: 382.5,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
devestial: {
|
||||
num: 9076,
|
||||
name: "Devestial",
|
||||
types: ["Fairy", "Ground"],
|
||||
baseStats: { hp: 110, atk: 105, def: 100, spa: 115, spd: 90, spe: 80 },
|
||||
abilities: { 0: "Cud Chew" },
|
||||
weightkg: 340,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
lundicare: {
|
||||
num: 9077,
|
||||
name: "Lundicare",
|
||||
types: ["Normal", "Fairy"],
|
||||
baseStats: { hp: 101, atk: 81, def: 103, spa: 101, spd: 109, spe: 111 },
|
||||
abilities: { 0: "Prism Armor", H: "Trace" },
|
||||
weightkg: 606,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
// Meta C
|
||||
lyvamp: {
|
||||
num: 9078,
|
||||
name: "Lyvamp",
|
||||
types: ["Electric", "Flying"],
|
||||
baseStats: { hp: 96, atk: 100, def: 70, spa: 41, spd: 70, spe: 91 },
|
||||
abilities: { 0: "Regenerator", H: "Insomnia" },
|
||||
weightkg: 189,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
treatmint: {
|
||||
num: 9079,
|
||||
name: "Treatmint",
|
||||
types: ["Grass", "Poison"],
|
||||
baseStats: { hp: 100, atk: 25, def: 90, spa: 100, spd: 70, spe: 45 },
|
||||
abilities: { 0: "Filter", H: "Natural Cure" },
|
||||
weightkg: 8.4,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
turvarpega: {
|
||||
num: 9080,
|
||||
name: "Turvarpega",
|
||||
types: ["Ground", "Flying"],
|
||||
baseStats: { hp: 100, atk: 100, def: 85, spa: 30, spd: 70, spe: 55 },
|
||||
abilities: { 0: "Rock Head", H: "Big Pecks" },
|
||||
weightkg: 680,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
goodjur: {
|
||||
num: 9081,
|
||||
name: "Goodjur",
|
||||
types: ["Psychic", "Fighting"],
|
||||
baseStats: { hp: 70, atk: 25, def: 60, spa: 120, spd: 70, spe: 90 },
|
||||
abilities: { 0: "Natural Cure" },
|
||||
weightkg: 42.5,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
liftaton: {
|
||||
num: 9082,
|
||||
name: "Liftaton",
|
||||
types: ["Steel"],
|
||||
baseStats: { hp: 110, atk: 90, def: 80, spa: 80, spd: 85, spe: 20 },
|
||||
abilities: { 0: "Mold Breaker" },
|
||||
weightkg: 180,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
triceracotta: {
|
||||
num: 9083,
|
||||
name: "Triceracotta",
|
||||
types: ["Ground", "Ghost"],
|
||||
baseStats: { hp: 84, atk: 111, def: 95, spa: 35, spd: 75, spe: 84 },
|
||||
abilities: { 0: "Flash Fire", H: "Technician" },
|
||||
weightkg: 100,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
woolverine: {
|
||||
num: 9084,
|
||||
name: "Woolverine",
|
||||
types: ["Dark", "Fairy"],
|
||||
baseStats: { hp: 70, atk: 120, def: 70, spa: 40, spd: 70, spe: 70 },
|
||||
abilities: { 0: "Lingering Aroma", H: "Fluffy" },
|
||||
weightkg: 40,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
combustoad: {
|
||||
num: 9085,
|
||||
name: "Combustoad",
|
||||
types: ["Fire", "Ground"],
|
||||
baseStats: { hp: 70, atk: 95, def: 70, spa: 63, spd: 70, spe: 108 },
|
||||
abilities: { 0: "Neutralizing Gas" },
|
||||
weightkg: 2,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
hearthind: {
|
||||
num: 9086,
|
||||
name: "Hearthind",
|
||||
types: ["Fire", "Fighting"],
|
||||
baseStats: { hp: 71, atk: 93, def: 68, spa: 20, spd: 66, spe: 122 },
|
||||
abilities: { 0: "Grassy Surge" },
|
||||
weightkg: 11.3,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
koiryu: {
|
||||
num: 9087,
|
||||
name: "Koiryu",
|
||||
types: ["Water", "Dragon"],
|
||||
baseStats: { hp: 90, atk: 25, def: 60, spa: 100, spd: 90, spe: 60 },
|
||||
abilities: { 0: "Multiscale", 1: "Water Veil", H: "Torrent" },
|
||||
weightkg: 829.7,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
pestiligy: {
|
||||
num: 9088,
|
||||
name: "Pestiligy",
|
||||
types: ["Poison", "Ghost"],
|
||||
baseStats: { hp: 105, atk: 15, def: 107, spa: 77, spd: 96, spe: 61 },
|
||||
abilities: { 0: "Liquid Ooze", H: "Sheer Force" },
|
||||
weightkg: 11.3,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
saxum: {
|
||||
num: 9089,
|
||||
name: "Saxum",
|
||||
types: ["Rock", "Ground"],
|
||||
baseStats: { hp: 70, atk: 100, def: 70, spa: 100, spd: 70, spe: 65 },
|
||||
abilities: { 0: "Levitate" },
|
||||
weightkg: 430,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
sascratch: {
|
||||
num: 9090,
|
||||
name: "Sascratch",
|
||||
types: ["Ice", "Rock"],
|
||||
baseStats: { hp: 70, atk: 100, def: 95, spa: 50, spd: 60, spe: 110 },
|
||||
abilities: { 0: "Tough Claws", 1: "Unnerve", H: "Perish Body" },
|
||||
weightkg: 20,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
guttergar: {
|
||||
num: 9091,
|
||||
name: "Guttergar",
|
||||
types: ["Water"],
|
||||
baseStats: { hp: 116, atk: 108, def: 55, spa: 30, spd: 104, spe: 63 },
|
||||
abilities: { 0: "Mold Breaker", H: "Water Veil" },
|
||||
weightkg: 106,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
rakasa: {
|
||||
num: 9092,
|
||||
name: "Rakasa",
|
||||
types: ["Psychic", "Fairy"],
|
||||
baseStats: { hp: 101, atk: 31, def: 79, spa: 105, spd: 81, spe: 23 },
|
||||
abilities: { 0: "Prankster" },
|
||||
weightkg: 19,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
thermostatic: {
|
||||
num: 9093,
|
||||
name: "Thermostatic",
|
||||
types: ["Electric"],
|
||||
baseStats: { hp: 90, atk: 50, def: 105, spa: 90, spd: 85, spe: 35 },
|
||||
abilities: { 0: "Electromorphosis", H: "Wind Power" },
|
||||
weightkg: 60,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
formaldehydra: {
|
||||
num: 9094,
|
||||
name: "Formaldehydra",
|
||||
types: ["Poison", "Dragon"],
|
||||
baseStats: { hp: 95, atk: 100, def: 110, spa: 60, spd: 85, spe: 60 },
|
||||
abilities: { 0: "Rough Skin", H: "Stench" },
|
||||
weightkg: 165.5,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
strumorthio: {
|
||||
num: 9095,
|
||||
name: "Strumorthio",
|
||||
types: ["Normal", "Ghost"],
|
||||
baseStats: { hp: 90, atk: 20, def: 87, spa: 95, spd: 95, spe: 20 },
|
||||
abilities: { 0: "Early Bird", H: "Levitate" },
|
||||
weightkg: 110,
|
||||
eggGroups: ["Undiscovered"],
|
||||
},
|
||||
ironmike: {
|
||||
num: 9096,
|
||||
name: "Iron Mike",
|
||||
types: ["Fairy", "Normal"],
|
||||
baseStats: { hp: 88, atk: 30, def: 68, spa: 106, spd: 76, spe: 106 },
|
||||
abilities: { 0: "Quark Drive" },
|
||||
weightkg: 51.8,
|
||||
eggGroups: ["Undiscovered"],
|
||||
tags: ["Paradox"],
|
||||
},
|
||||
};
|
||||
17
data/mods/blankcanvas/rulesets.ts
Normal file
17
data/mods/blankcanvas/rulesets.ts
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = {
|
||||
spriteviewer: {
|
||||
effectType: 'ValidatorRule',
|
||||
name: 'Sprite Viewer',
|
||||
desc: "Displays a fakemon's sprite in chat when it is switched in for the first time",
|
||||
onBegin() {
|
||||
this.add('rule', 'Sprite Viewer: Displays sprites in chat');
|
||||
},
|
||||
onSwitchIn(pokemon) {
|
||||
if (!this.effectState[pokemon.species.id]) {
|
||||
this.add('-message', `${pokemon.species.name}'s Sprite:`);
|
||||
this.add(`raw|<img src="https://github.com/scoopapa/DH2/blob/main/data/mods/blankcanvas/sprites/front/${pokemon.species.id}.png" height="96" width="96">`);
|
||||
this.effectState[pokemon.species.id] = true;
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
3
data/mods/blankcanvas/scripts.ts
Normal file
3
data/mods/blankcanvas/scripts.ts
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
export const Scripts: ModdedBattleScriptsData = {
|
||||
gen: 9,
|
||||
};
|
||||
1196
data/random-battles/blankcanvas/random-sets.json
Normal file
1196
data/random-battles/blankcanvas/random-sets.json
Normal file
File diff suppressed because it is too large
Load Diff
|
|
@ -61,7 +61,7 @@ const NO_LEAD_POKEMON = [
|
|||
const DOUBLES_NO_LEAD_POKEMON = [
|
||||
'Basculegion', 'Houndstone', 'Iron Bundle', 'Roaring Moon', 'Zacian', 'Zamazenta',
|
||||
];
|
||||
export class RandomDNUTeams extends RandomTeams {
|
||||
export class RandomBLCTeams extends RandomTeams {
|
||||
override cullMovePool(
|
||||
types: string[],
|
||||
moves: Set<string>,
|
||||
|
|
@ -200,6 +200,7 @@ export class RandomDNUTeams extends RandomTeams {
|
|||
[['dragonpulse', 'spacialrend'], 'dracometeor'],
|
||||
['heavyslam', 'flashcannon'],
|
||||
['alluringvoice', 'dazzlinggleam'],
|
||||
['defog', 'rapidspin'],
|
||||
|
||||
// These status moves are redundant with each other
|
||||
['taunt', 'disable'],
|
||||
|
|
@ -217,34 +218,20 @@ export class RandomDNUTeams extends RandomTeams {
|
|||
['healbell', 'stealthrock'],
|
||||
// Araquanid and Magnezone
|
||||
['mirrorcoat', ['hydropump', 'bodypress']],
|
||||
// Marill
|
||||
['seismictoss', 'liquidation'],
|
||||
// Hatenna
|
||||
['calmmind', 'mysticalfire'],
|
||||
// Jigglypuff
|
||||
[['toxic', 'thunderwave'], 'encore'],
|
||||
['calmmind', 'nastyplot'],
|
||||
// Impidimp
|
||||
['dazzlinggleam', 'thunderwave'],
|
||||
// Combee
|
||||
['lunge', 'bugbuzz'],
|
||||
// Nidoran-F
|
||||
['sludgebomb', 'poisonjab'],
|
||||
// Wattrel
|
||||
['thunder', 'thunderbolt'],
|
||||
['voltswitch', 'uturn'],
|
||||
// Nacli
|
||||
['rockslide', 'stoneedge'],
|
||||
// Cleffa and Impidimp
|
||||
[['alluringvoice', 'dazzlinggleam'], 'drainingkiss'],
|
||||
// Fletchling
|
||||
['bravebird', 'dualwingbeat'],
|
||||
// Gossifleur
|
||||
['sleeppowder', 'stunspore'],
|
||||
// Swablu
|
||||
['defog', 'cottonguard'],
|
||||
// Pidove
|
||||
['nightslash', ['quickattack', 'roost']],
|
||||
// Plasmage
|
||||
['electroshot', 'psychoboost'],
|
||||
// Seaode
|
||||
['stoneedge', 'stoneaxe'],
|
||||
// Geigeramp
|
||||
['willowisp', 'nuzzle'],
|
||||
// Martorse
|
||||
['willowisp', 'encore'],
|
||||
// Faeruin
|
||||
['substitute', 'rapidspin'],
|
||||
// Geoporka
|
||||
['toxic', 'stunspore'],
|
||||
// Blobbiam
|
||||
['spiritbreak', 'playrough'],
|
||||
];
|
||||
|
||||
for (const pair of incompatiblePairs) this.incompatibleMoves(moves, movePool, pair[0], pair[1]);
|
||||
|
|
@ -370,10 +357,18 @@ export class RandomDNUTeams extends RandomTeams {
|
|||
}
|
||||
}
|
||||
|
||||
// Enforce Focus Energy on Spearow
|
||||
if (species.id === 'spearow') {
|
||||
if (movePool.includes('focusenergy')) {
|
||||
counter = this.addMove('focusenergy', moves, types, abilities, teamDetails, species, isLead, isDoubles,
|
||||
// Enforce Roost on Fausteil
|
||||
if (species.id === 'fausteil') {
|
||||
if (movePool.includes('roost')) {
|
||||
counter = this.addMove('roost', moves, types, abilities, teamDetails, species, isLead, isDoubles,
|
||||
movePool, teraType, role);
|
||||
}
|
||||
}
|
||||
|
||||
// Enforce Sunny Day on Wallbreaker Cottentration
|
||||
if (species.id === 'cottentration') {
|
||||
if (movePool.includes('sunnyday')) {
|
||||
counter = this.addMove('sunnyday', moves, types, abilities, teamDetails, species, isLead, isDoubles,
|
||||
movePool, teraType, role);
|
||||
}
|
||||
}
|
||||
|
|
@ -648,20 +643,128 @@ export class RandomDNUTeams extends RandomTeams {
|
|||
}
|
||||
return this.sample(species.requiredItems);
|
||||
}
|
||||
if (role === 'AV Pivot') return 'Assault Vest';
|
||||
if (species.id === 'pikachu') return 'Light Ball';
|
||||
if (species.id === 'regieleki') return 'Magnet';
|
||||
if (species.id === 'smeargle') return 'Focus Sash';
|
||||
if (species.id === 'nickit') return 'Throat Spray';
|
||||
if (species.id === 'lechonk' && moves.has('stuffcheeks')) return 'Salac Berry';
|
||||
if (species.id === 'spearow') return 'Razor Claw';
|
||||
if (species.id === 'pidove' && moves.has('nightslash')) return 'Scope Lens';
|
||||
if (['shedinja', 'luvdisc', 'nymble', 'fletchling'].includes(species.id)) return 'Heavy-Duty Boots';
|
||||
if ((ability === 'Guts' || moves.has('facade')) && !moves.has('sleeptalk')) {
|
||||
return (types.includes('Fire') || ability === 'Toxic Boost') ? 'Toxic Orb' : 'Flame Orb';
|
||||
// buncha BC specific hardcodes
|
||||
if (species.id === 'badjur') return 'Toxic Orb';
|
||||
if (species.id === 'vipult' && role === 'Bulky Support') return this.sample(['Black Sludge', 'Heavy-Duty Boots']);
|
||||
if (
|
||||
(species.id === 'lundicare' && role === 'Fast Bulky Setup' && moves.has('stuffcheeks')) ||
|
||||
(species.id === 'devestial' && role === 'Bulky Setup')
|
||||
) {
|
||||
return 'Petaya Berry';
|
||||
}
|
||||
if (ability === 'Sheer Force' && counter.get('sheerforce')) return 'Life Orb';
|
||||
if (moves.has('raindance') || moves.has('sunnyday')) return 'Life Orb';
|
||||
if (
|
||||
[
|
||||
'goblantern', 'lavalisk', 'eolikopter', 'scarachnid', 'bugswarm', 'leechmonner',
|
||||
'hebicikuga', 'socknbuskn', 'fausteil', 'deadward', 'borealis', 'flarenheit',
|
||||
].includes(species.id) ||
|
||||
(species.id === 'searytch' && role === 'Bulky Attacker') ||
|
||||
(species.id === 'monmothra' && role === 'Bulky Support') ||
|
||||
(['crystuit', 'pinaturbo'].includes(species.id) && role === 'Fast Support')
|
||||
) {
|
||||
return 'Heavy-Duty Boots';
|
||||
}
|
||||
if (
|
||||
['dastard', 'geigeramp', 'arsenstorm', 'jokerpent', 'geoporka'].includes(species.id) ||
|
||||
(species.id === 'maldractice' && role === 'Bulky Support')
|
||||
) {
|
||||
return 'Black Sludge';
|
||||
}
|
||||
if (counter.get('skilllink') && ability !== 'Skill Link') return 'Loaded Dice';
|
||||
if (ability === 'Sand Stream') return 'Smooth Rock';
|
||||
if (ability === 'Drought' && role !== 'Setup Sweeper') return 'Heat Rock';
|
||||
if (moves.has('meteorbeam') || (moves.has('electroshot') && !teamDetails.rain)) return 'Power Herb';
|
||||
if (moves.has('sunnyday') || ['piss', 'sculptera'].includes(species.id)) return 'Life Orb';
|
||||
if (species.id === 'plasmage' && moves.has('psychoboost') && role === 'Setup Sweeper') return 'Eject Pack';
|
||||
if (['craggon', 'jackoswarm'].includes(species.id)) return this.sample(['Rocky Helmet', 'Leftovers']);
|
||||
if (species.id === 'thaumaton') return (moves.has('steelbeam')) ? 'Sitrus Berry' : 'Air Balloon';
|
||||
if (species.id === 'kadraoke' && role === 'Setup Sweeper') return 'Throat Spray';
|
||||
if (species.id === 'sylravage') return this.sample(['Choice Band', 'Choice Scarf']);
|
||||
if (species.id === 'capricorrie') return this.sample(['Heavy-Duty Boots', 'Life Orb']);
|
||||
if (['snabterra', 'maldractice'].includes(species.id) && role === 'Wallbreaker') return 'Choice Band';
|
||||
if (species.id === 'snabterra' && role === 'Bulky Attacker') return 'Heavy-Duty Boots';
|
||||
if (species.id === 'snabterra' && role === 'Bulky Setup') return this.sample(['Leftovers', 'Sitrus Berry']);
|
||||
if (species.id === 'searytch') return (role === 'Bulky Support') ? 'Leftovers' : 'Heavy-Duty Boots';
|
||||
if (species.id === 'lundicare' && role === 'Fast Attacker') return this.sample(['Leftovers', 'Earth Plate']);
|
||||
if (species.id === 'tryonite' && ability === 'Sturdy') return 'Leftovers';
|
||||
if (species.id === 'tryonite' && role === 'Setup Sweeper') return this.sample(['Heavy-Duty Boots', 'Life Orb']);
|
||||
if (species.id === 'ironcrest' && role === 'Setup Sweeper') return 'Booster Energy';
|
||||
if (species.id === 'seaode') return this.sample(['Heavy-Duty Boots', 'Life Orb', 'Choice Band', 'Choice Scarf']);
|
||||
if (['serpvoltidae', 'twinkaton', 'devestial'].includes(species.id) && role === 'Bulky Support') return 'Leftovers';
|
||||
if (species.id === 'serpvoltidae' && role === 'Bulky Attacker' && !moves.has('shoreup')) {
|
||||
return this.sample(['Choice Specs', 'Life Orb']);
|
||||
}
|
||||
if (species.id === 'serpvoltidae' && role === 'Bulky Attacker' && moves.has('shoreup')) return 'Life Orb';
|
||||
if (species.id === 'sheepquake') return this.sample(['Leftovers', 'Life Orb']);
|
||||
if (ability === 'Flare Boost') return 'Flame Orb';
|
||||
if (species.id === 'sorrowcean' && ability !== 'Flare Boost') return 'Leftovers';
|
||||
if (species.id === 'blobbiam' && role === 'Bulky Attacker') {
|
||||
return this.sample(['Heavy-Duty Boots', 'Choice Band', 'Choice Scarf']);
|
||||
}
|
||||
if (
|
||||
(['blobbiam', 'massassin', 'martorse'].includes(species.id) && role === 'Bulky Support') ||
|
||||
['mohawtter', 'arachnode', 'porcupyre', 'bazhigangquan', 'actaniathan'].includes(species.id)
|
||||
) {
|
||||
return this.sample(['Heavy-Duty Boots', 'Leftovers']);
|
||||
}
|
||||
if (species.id === 'hippaint' && !moves.has('calmmind')) return this.sample(['Choice Specs', 'Life Orb']);
|
||||
if (species.id === 'hippaint' && moves.has('calmmind')) return 'Life Orb';
|
||||
if (species.id === 'parasike') return this.sample(['Heavy-Duty Boots', 'Choice Band', 'Silver Powder']);
|
||||
if (species.id === 'llanfairwyrm' && role === 'Bulky Support') return this.sample(['Rocky Helmet', 'Leftovers']);
|
||||
if (species.id === 'llanfairwyrm' && role === 'Bulky Setup') return this.sample(['Heavy-Duty Boots', 'Life Orb']);
|
||||
if (species.id === 'karmalice') {
|
||||
return (moves.has('fakeout') || role === 'Fast Support') ? 'Heavy-Duty Boots' : 'Choice Specs';
|
||||
}
|
||||
if (species.id === 'reversadusa' && !moves.has('substitute')) return this.sample(['Heavy-Duty Boots', 'Life Orb']);
|
||||
if (species.id === 'reversadusa' && moves.has('substitute')) return 'Leftovers';
|
||||
if (species.id === 'primordialith' && ability === 'Vital Spirit') return 'Leftovers';
|
||||
if (['frostengu', 'monmothra', 'drakkannon'].includes(species.id) && role === 'Fast Attacker') {
|
||||
return this.sample(['Choice Specs', 'Choice Scarf']);
|
||||
}
|
||||
if (species.id === 'frostengu' && role === 'Wallbreaker') return this.sample(['Choice Band', 'Choice Scarf']);
|
||||
if (species.id === 'sleetshell' && role === 'Fast Attacker') return this.sample(['Choice Band', 'Choice Scarf']);
|
||||
if (['martorse', 'faeruin'].includes(species.id) && role === 'Fast Support') {
|
||||
return this.sample(['Heavy-Duty Boots', 'Leftovers']);
|
||||
}
|
||||
if (species.id === 'martorse' && role === 'Fast Attacker') return this.sample(['Heavy-Duty Boots', 'Life Orb']);
|
||||
if (species.id === 'freightmare') return (role === 'Fast Support') ? 'Leftovers' : 'Life Orb';
|
||||
if (species.id === 'faeruin' && role === 'Setup Sweeper' && !moves.has('substitute')) {
|
||||
return this.sample(['Heavy-Duty Boots', 'Life Orb']);
|
||||
}
|
||||
if (species.id === 'faeruin' && role === 'Setup Sweeper' && moves.has('substitute')) return 'Leftovers';
|
||||
if (species.id === 'haarstorm') {
|
||||
if (role === 'Fast Attacker') return 'Choice Scarf';
|
||||
if (role === 'Bulky Support') return 'Leftovers';
|
||||
if (role === 'Fast Support') return 'Life Orb';
|
||||
}
|
||||
if (species.id === 'bulionage') return this.sample(['Leftovers', 'Clear Amulet']);
|
||||
if (['fettogre', 'copperhead', 'psyllapse', 'obaki'].includes(species.id)) return 'Leftovers';
|
||||
if (species.id === 'crystuit' && role === 'Fast Attacker') return this.sample(['Choice Specs', 'Choice Scarf']);
|
||||
if (species.id === 'odonata') return this.sample(['Heavy-Duty Boots', 'Lum Berry']);
|
||||
if (species.id === 'yamateraph') return this.sample(['Leftovers', 'Lum Berry']);
|
||||
if (species.id === 'wizhazard') {
|
||||
if (role === 'Wallbreaker') return 'Choice Specs';
|
||||
if (role === 'Bulky Setup') return 'Leftovers';
|
||||
}
|
||||
if (species.id === 'groundead') return (role === 'Wallbreaker') ? 'Choice Band' : 'Leftovers';
|
||||
if (species.id === 'bellolysk') {
|
||||
if (role === 'Bulky Setup') return this.sample(['Leftovers', 'Life Orb']);
|
||||
if (role === 'Bulky Support') return 'Leftovers';
|
||||
if (role === 'Wallbreaker') return 'Life Orb';
|
||||
}
|
||||
if (species.id === 'sorrowcean' && role !== 'AV Pivot') return 'Leftovers';
|
||||
if (species.id === 'versalyre') return 'Choice Scarf';
|
||||
if (species.id === 'pinaturbo' && role === 'Wallbreaker') return 'Life Orb';
|
||||
if (species.id === 'brasspecter') {
|
||||
if (role === 'Bulky Attacker') return 'Choice Band';
|
||||
if (role === 'Bulky Setup') return 'Leftovers';
|
||||
}
|
||||
if (species.id === 'cottentration' && role !== 'Wallbreaker') return 'Leftovers';
|
||||
|
||||
// backups to catch stuff that falls through the cracks
|
||||
if ((ability === 'Guts' || moves.has('facade')) && !moves.has('sleeptalk')) {
|
||||
return (types.includes('Fire') || ability === 'Toxic Boost' || ability === 'Poison Heal') ? 'Toxic Orb' : 'Flame Orb';
|
||||
}
|
||||
if (ability === 'Magic Guard' || (ability === 'Sheer Force' && counter.get('sheerforce'))) return 'Life Orb';
|
||||
if (['healingwish', 'switcheroo', 'trick'].some(m => moves.has(m))) {
|
||||
if (
|
||||
species.baseStats.spe >= 60 && species.baseStats.spe <= 108 &&
|
||||
|
|
@ -683,7 +786,7 @@ export class RandomDNUTeams extends RandomTeams {
|
|||
return 'Choice Specs';
|
||||
}
|
||||
if (ability === 'Poison Heal' || ability === 'Quick Feet') return 'Toxic Orb';
|
||||
if (moves.has('acrobatics') && ability !== 'Protosynthesis') return '';
|
||||
if (moves.has('acrobatics') && ability !== 'Quark Drive' && ability !== 'Protosynthesis') return '';
|
||||
if (moves.has('auroraveil') || moves.has('lightscreen') && moves.has('reflect')) return 'Light Clay';
|
||||
if (ability === 'Gluttony') return `${this.sample(['Aguav', 'Figy', 'Iapapa', 'Mago', 'Wiki'])} Berry`;
|
||||
if (
|
||||
|
|
@ -805,25 +908,6 @@ export class RandomDNUTeams extends RandomTeams {
|
|||
ivs.atk = 0;
|
||||
}
|
||||
|
||||
// Hidden Power Grass IVs
|
||||
if (species.id === 'luvdisc' && moves.has('hiddenpower')) {
|
||||
ivs.atk = 0;
|
||||
ivs.spa = 30;
|
||||
}
|
||||
|
||||
// Hidden Power Psychic IVs
|
||||
if (species.id === 'unown') {
|
||||
ivs.atk = 0;
|
||||
ivs.spe = 30;
|
||||
}
|
||||
|
||||
// Hidden Power Fire IVs
|
||||
if (['fomantis', 'nincada', 'petilil', 'cherubi'].includes(species.id) && moves.has('hiddenpower')) {
|
||||
ivs.atk = 0;
|
||||
ivs.spa = 30;
|
||||
ivs.spe = 30;
|
||||
}
|
||||
|
||||
// Enforce Tera Type after all set generation is done to prevent infinite generation
|
||||
if (this.forceTeraType) teraType = this.forceTeraType;
|
||||
|
||||
|
|
@ -848,7 +932,7 @@ export class RandomDNUTeams extends RandomTeams {
|
|||
|
||||
override randomSets: { [species: string]: RandomTeamsTypes.RandomSpeciesData } = require('./random-sets.json');
|
||||
|
||||
randomDNUTeam() {
|
||||
randomBLCTeam() {
|
||||
this.enforceNoDirectCustomBanlistChanges();
|
||||
|
||||
const seed = this.prng.getSeed();
|
||||
|
|
@ -890,7 +974,7 @@ export class RandomDNUTeams extends RandomTeams {
|
|||
if (['ogerpon', 'ogerponhearthflame', 'terapagos'].includes(species.id) && teamDetails.teraBlast) continue;
|
||||
|
||||
// Illusion shouldn't be on the last slot
|
||||
if (species.baseSpecies === 'Zoroark' && pokemon.length >= (this.maxTeamSize - 1)) continue;
|
||||
if (species.baseSpecies === 'Sorrowcean' && pokemon.length >= (this.maxTeamSize - 1)) continue;
|
||||
|
||||
const types = species.types;
|
||||
const typeCombo = types.slice().sort().join();
|
||||
|
|
@ -1061,4 +1145,4 @@ export class RandomDNUTeams extends RandomTeams {
|
|||
}
|
||||
}
|
||||
|
||||
export default RandomDNUTeams;
|
||||
export default RandomBLCTeams;
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -632,8 +632,6 @@ export const Teams = new class Teams {
|
|||
const formatID = toID(format);
|
||||
if (mod === 'gen9ssb') {
|
||||
TeamGenerator = require(`../data/mods/gen9ssb/random-teams`).default;
|
||||
} else if (formatID.includes('gen9donotuserandombattle')) {
|
||||
TeamGenerator = require(`../data/random-battles/donotuse/teams`).default;
|
||||
} else if (formatID.includes('gen9babyrandombattle')) {
|
||||
TeamGenerator = require(`../data/random-battles/gen9baby/teams`).default;
|
||||
} else if (formatID.includes('gen9randombattle') && format.ruleTable?.has('+pokemontag:cap')) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user