pokemon-showdown/config/formats.js
2015-05-26 23:57:31 +04:00

961 lines
30 KiB
JavaScript

// Note: This is the list of formats
// The rules that formats use are stored in data/rulesets.js
exports.Formats = [
// XY Singles
///////////////////////////////////////////////////////////////////
{
name: "Random Battle",
section: "ORAS Singles",
team: 'random',
ruleset: ['PotD', 'Pokemon', 'Sleep Clause Mod', 'HP Percentage Mod', 'Cancel Mod']
},
{
name: "Unrated Random Battle",
section: "ORAS Singles",
team: 'random',
challengeShow: false,
rated: false,
ruleset: ['PotD', 'Pokemon', 'Sleep Clause Mod', 'HP Percentage Mod', 'Cancel Mod']
},
{
name: "OU",
section: "ORAS Singles",
searchShow: false,
ruleset: ['Pokemon', 'Standard', 'Team Preview', 'Swagger Clause', 'Baton Pass Clause'],
banlist: ['Uber', 'Soul Dew', 'Gengarite', 'Kangaskhanite', 'Lucarionite', 'Mawilite', 'Salamencite']
},
{
name: "OU (suspect test)",
section: "ORAS Singles",
ruleset: ['Pokemon', 'Standard', 'Team Preview', 'Swagger Clause', 'Baton Pass Clause'],
banlist: ['Uber', 'Soul Dew', 'Gengarite', 'Kangaskhanite', 'Lucarionite', 'Mawilite', 'Salamencite', 'Landorus']
},
{
name: "OU (no Mega)",
section: "ORAS Singles",
ruleset: ['OU'],
onBegin: function () {
for (var i = 0; i < this.p1.pokemon.length; i++) {
this.p1.pokemon[i].canMegaEvo = false;
}
for (var i = 0; i < this.p2.pokemon.length; i++) {
this.p2.pokemon[i].canMegaEvo = false;
}
}
},
{
name: "Ubers",
section: "ORAS Singles",
ruleset: ['Pokemon', 'Standard', 'Swagger Clause', 'Team Preview', 'Mega Rayquaza Ban Mod'],
banlist: []
},
{
name: "UU",
section: "ORAS Singles",
searchShow: false,
ruleset: ['OU'],
banlist: ['OU', 'BL', 'Alakazite', 'Altarianite', 'Diancite', 'Heracronite', 'Galladite', 'Gardevoirite', 'Lopunnite', 'Medichamite',
'Metagrossite', 'Pinsirite', 'Drizzle', 'Drought', 'Shadow Tag'
]
},
{
name: "UU (suspect test)",
section: "ORAS Singles",
ruleset: ['OU'],
banlist: ['OU', 'Alakazite', 'Altarianite', 'Diancite', 'Heracronite', 'Galladite', 'Gardevoirite', 'Lopunnite', 'Medichamite',
'Metagrossite', 'Pinsirite', 'Drizzle', 'Drought', 'Shadow Tag', 'Crawdaunt', 'Diggersby', 'Hawlucha', 'Klefki', 'Scolipede',
'Smeargle', 'Staraptor', 'Terrakion', 'Thundurus-Therian', 'Togekiss', 'Venomoth', 'Volcarona', 'Weavile', 'Zygarde'
]
},
{
name: "RU",
section: "ORAS Singles",
searchShow: false,
ruleset: ['UU'],
banlist: ['UU', 'BL2', 'Galladite', 'Houndoominite', 'Pidgeotite']
},
{
name: "RU (suspect test)",
section: "ORAS Singles",
challengeShow: false,
ruleset: ['UU'],
banlist: ['UU', 'BL2', 'Galladite', 'Houndoominite', 'Pidgeotite']
},
{
name: "NU",
section: "ORAS Singles",
searchShow: false,
ruleset: ['RU'],
banlist: ['RU', 'BL3', 'Cameruptite', 'Glalitite', 'Steelixite']
},
{
name: "NU (suspect test)",
section: "ORAS Singles",
challengeShow: false,
ruleset: ['RU'],
banlist: ['RU', 'BL3', 'Cameruptite', 'Glalitite', 'Steelixite']
},
{
name: "LC",
section: "ORAS Singles",
maxLevel: 5,
ruleset: ['Pokemon', 'Standard', 'Team Preview', 'Little Cup'],
banlist: ['LC Uber', 'Gligar', 'Misdreavus', 'Scyther', 'Sneasel', 'Tangela', 'Dragon Rage', 'Sonic Boom', 'Swagger']
},
{
name: "Anything Goes",
section: "ORAS Singles",
ruleset: ['Pokemon', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod', 'Team Preview'],
banlist: ['Unreleased', 'Illegal']
},
/*{
name: "CAP Plasmanta Playtest",
section: "ORAS Singles",
ruleset: ['CAP Pokemon', 'Standard', 'Team Preview', 'Swagger Clause', 'Baton Pass Clause'],
banlist: ['Uber', 'Gengarite', 'Kangaskhanite', 'Lucarionite', 'Soul Dew',
'Tomohawk', 'Necturna', 'Mollux', 'Aurumoth', 'Malaconda', 'Cawmodore', 'Volkraken', 'Syclant', 'Revenankh', 'Pyroak', 'Fidgit', 'Stratagem', 'Arghonaut', 'Kitsunoh', 'Cyclohm', 'Colossoil', 'Krilowatt', 'Voodoom'
]
},*/
{
name: "Battle Spot Singles",
section: "ORAS Singles",
maxForcedLevel: 50,
ruleset: ['Pokemon', 'Standard GBU', 'Team Preview GBU'],
requirePentagon: true,
validateTeam: function (team, format) {
if (team.length < 3) return ['You must bring at least three Pokémon.'];
},
onBegin: function () {
this.debug('cutting down to 3');
this.p1.pokemon = this.p1.pokemon.slice(0, 3);
this.p1.pokemonLeft = this.p1.pokemon.length;
this.p2.pokemon = this.p2.pokemon.slice(0, 3);
this.p2.pokemonLeft = this.p2.pokemon.length;
}
},
{
name: "Battle Spot Special 10",
section: "ORAS Singles",
maxForcedLevel: 50,
ruleset: ['Battle Spot Singles'],
requirePentagon: true,
validateTeam: function (team, format) {
if (team.length < 3) return ['You must bring at least three Pokémon.'];
},
onBegin: function () {
this.debug('cutting down to 3');
this.p1.pokemon = this.p1.pokemon.slice(0, 3);
this.p1.pokemonLeft = this.p1.pokemon.length;
this.p2.pokemon = this.p2.pokemon.slice(0, 3);
this.p2.pokemonLeft = this.p2.pokemon.length;
},
onModifyPokemon: function (pokemon) {
pokemon.negateImmunity['Type'] = true;
},
onEffectiveness: function (typeMod, target, type, move) {
// The effectiveness of Freeze Dry on Water isn't reverted
if (move && move.id === 'freezedry' && type === 'Water') return;
if (move && !this.getImmunity(move, type)) return 1;
return -typeMod;
}
},
{
name: "Custom Game",
section: "ORAS Singles",
searchShow: false,
canUseRandomTeam: true,
debug: true,
maxLevel: 9999,
defaultLevel: 100,
// no restrictions, for serious (other than team preview)
ruleset: ['Team Preview', 'Cancel Mod']
},
// XY Doubles
///////////////////////////////////////////////////////////////////
{
name: "Random Doubles Battle",
section: "ORAS Doubles",
gameType: 'doubles',
team: 'randomDoubles',
ruleset: ['PotD', 'Pokemon', 'HP Percentage Mod', 'Cancel Mod']
},
{
name: "Doubles OU",
section: "ORAS Doubles",
gameType: 'doubles',
searchShow: false,
ruleset: ['Pokemon', 'Standard Doubles', 'Team Preview'],
banlist: ['Arceus', 'Dialga', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kyogre', 'Kyurem-White', 'Lugia', 'Mewtwo',
'Palkia', 'Rayquaza', 'Reshiram', 'Xerneas', 'Yveltal', 'Zekrom', 'Salamencite', 'Soul Dew', 'Dark Void',
'Gravity ++ Grass Whistle', 'Gravity ++ Hypnosis', 'Gravity ++ Lovely Kiss', 'Gravity ++ Sing', 'Gravity ++ Sleep Powder', 'Gravity ++ Spore'
]
},
{
name: "Doubles OU (suspect test)",
section: "ORAS Doubles",
gameType: 'doubles',
ruleset: ['Pokemon', 'Standard Doubles', 'Team Preview'],
banlist: ['Arceus', 'Dialga', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kyogre', 'Kyurem-White', 'Lugia', 'Mewtwo',
'Palkia', 'Rayquaza', 'Reshiram', 'Xerneas', 'Yveltal', 'Zekrom', 'Soul Dew', 'Dark Void',
'Gravity ++ Grass Whistle', 'Gravity ++ Hypnosis', 'Gravity ++ Lovely Kiss', 'Gravity ++ Sing', 'Gravity ++ Sleep Powder', 'Gravity ++ Spore'
]
},
{
name: "Doubles Ubers",
section: "ORAS Doubles",
gameType: 'doubles',
ruleset: ['Pokemon', 'Species Clause', 'Moody Clause', 'OHKO Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod', 'Team Preview'],
banlist: ['Unreleased', 'Illegal', 'Dark Void']
},
{
name: "Doubles UU",
section: "ORAS Doubles",
gameType: 'doubles',
ruleset: ['Doubles OU'],
banlist: ['Aegislash', 'Amoonguss', 'Azumarill', 'Bisharp', 'Breloom', 'Camerupt', 'Chandelure', 'Charizard', 'Conkeldurr',
'Cresselia', 'Diancie', 'Dragonite', 'Excadrill', 'Ferrothorn', 'Garchomp', 'Gardevoir',
'Gengar', 'Greninja', 'Gyarados', 'Heatran', 'Hitmontop', 'Hydreigon', 'Kangaskhan', 'Keldeo',
'Kyurem-Black', 'Landorus', 'Landorus-Therian', 'Latios', 'Ludicolo', 'Mamoswine', 'Mawile', 'Metagross', 'Mew',
'Politoed', 'Rotom-Wash', 'Sableye', 'Scizor', 'Scrafty', 'Shaymin-Sky',
'Suicune', 'Sylveon', 'Talonflame', 'Terrakion', 'Thundurus', 'Togekiss',
'Tyranitar', 'Venusaur', 'Weavile', 'Whimsicott', 'Zapdos'
]
},
{
name: "Doubles NU",
section: "ORAS Doubles",
gameType: 'doubles',
searchShow: false,
ruleset: ['Doubles UU'],
banlist: ['Snorlax', 'Machamp', 'Lopunny', 'Galvantula', 'Mienshao', 'Infernape', 'Aromatisse',
'Clawitzer', 'Kyurem', 'Flygon', 'Lucario', 'Alakazam', 'Gastrodon', 'Bronzong', 'Chandelure',
'Dragalge', 'Mamoswine', 'Genesect', 'Arcanine', 'Volcarona', 'Aggron', 'Manectric', 'Salamence',
'Tornadus', 'Porygon2', 'Latias', 'Meowstic', 'Ninetales', 'Crobat', 'Blastoise', 'Darmanitan',
'Sceptile', 'Jirachi', 'Goodra', 'Deoxys-Attack', 'Milotic', 'Victini', 'Hariyama', 'Crawdaunt',
'Aerodactyl', 'Abomasnow', 'Krookodile', 'Cofagrigus', 'Druddigon', 'Escavalier', 'Dusclops',
'Slowbro', 'Slowking', 'Eelektross', 'Spinda', 'Cloyster', 'Raikou', 'Thundurus-Therian', 'Swampert',
'Nidoking', 'Aurorus', 'Granbull', 'Braviary'
]
},
{
name: "Battle Spot Doubles (VGC 2015)",
section: "ORAS Doubles",
gameType: 'doubles',
maxForcedLevel: 50,
ruleset: ['Pokemon', 'Standard GBU', 'Team Preview VGC'],
banlist: ['Tornadus + Defiant', 'Thundurus + Defiant', 'Landorus + Sheer Force'],
requirePentagon: true,
validateTeam: function (team, format) {
if (team.length < 4) return ['You must bring at least four Pokémon.'];
},
onBegin: function () {
this.debug('cutting down to 4');
this.p1.pokemon = this.p1.pokemon.slice(0, 4);
this.p1.pokemonLeft = this.p1.pokemon.length;
this.p2.pokemon = this.p2.pokemon.slice(0, 4);
this.p2.pokemonLeft = this.p2.pokemon.length;
}
},
{
name: "Doubles Challenge Cup",
section: "ORAS Doubles",
gameType: 'doubles',
team: 'randomCC',
searchShow: false,
ruleset: ['Pokemon', 'HP Percentage Mod', 'Cancel Mod']
},
{
name: "Doubles Custom Game",
section: "ORAS Doubles",
gameType: 'doubles',
searchShow: false,
canUseRandomTeam: true,
maxLevel: 9999,
defaultLevel: 100,
debug: true,
// no restrictions, for serious (other than team preview)
ruleset: ['Team Preview', 'Cancel Mod']
},
// XY Triples
///////////////////////////////////////////////////////////////////
{
name: "Random Triples Battle",
section: "ORAS Triples",
gameType: 'triples',
team: 'randomDoubles',
ruleset: ['PotD', 'Pokemon', 'HP Percentage Mod', 'Cancel Mod']
},
{
name: "Smogon Triples",
section: "ORAS Triples",
gameType: 'triples',
ruleset: ['Pokemon', 'Species Clause', 'OHKO Clause', 'Moody Clause', 'Evasion Moves Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod', 'Team Preview'],
banlist: ['Illegal', 'Unreleased', 'Arceus', 'Dialga', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kyogre', 'Kyurem-White',
'Lugia', 'Mewtwo', 'Palkia', 'Rayquaza', 'Reshiram', 'Xerneas', 'Yveltal', 'Zekrom',
'Soul Dew', 'Dark Void', 'Perish Song'
]
},
{
name: "Battle Spot Triples",
section: "ORAS Triples",
gameType: 'triples',
maxForcedLevel: 50,
ruleset: ['Pokemon', 'Standard GBU', 'Team Preview'],
requirePentagon: true,
validateTeam: function (team, format) {
if (team.length < 6) return ['You must have six Pokémon.'];
}
},
{
name: "Triples Challenge Cup",
section: "ORAS Triples",
gameType: 'triples',
team: 'randomCC',
searchShow: false,
ruleset: ['Pokemon', 'HP Percentage Mod', 'Cancel Mod']
},
{
name: "Triples Custom Game",
section: "ORAS Triples",
gameType: 'triples',
searchShow: false,
canUseRandomTeam: true,
maxLevel: 9999,
defaultLevel: 100,
debug: true,
// no restrictions, for serious (other than team preview)
ruleset: ['Team Preview', 'Cancel Mod']
},
// Other Metagames
///////////////////////////////////////////////////////////////////
{
name: "2v2 Doubles",
section: "OM of the Month",
column: 2,
gameType: 'doubles',
ruleset: ['Doubles OU'],
banlist: ['Perish Song'],
validateTeam: function (team, format) {
if (team.length > 4) return ['You may only bring up to four Pokémon.'];
},
onBegin: function () {
this.p1.pokemon = this.p1.pokemon.slice(0, 2);
this.p1.pokemonLeft = this.p1.pokemon.length;
this.p2.pokemon = this.p2.pokemon.slice(0, 2);
this.p2.pokemonLeft = this.p2.pokemon.length;
}
},
{
name: "[Seasonal] You are (not) prepared",
section: 'OM of the Month',
team: 'randomSeasonalMay2015',
mod: 'seasonal',
gameType: 'triples',
ruleset: ['HP Percentage Mod', 'Sleep Clause Mod', 'Cancel Mod'],
onBegin: function () {
this.add('raw|<b><font color="red">IMPORTANT!</font></b> All moves on this seasonal are custom. Use the command <b>/seasonaldata</b>, <b>/sdata</b>, or <b>/sdt</b> to know what they do.');
this.add('raw|More information can be found <a href="http://www.smogon.com/forums/threads/3491902/page-12#post-6202283">here</a>');
},
onModifyMove: function (move) {
// Shows legit name after use...
var legitNames = {
recover: "Cura", softboiled: "Curaga", reflect: "Wild Growth", acupressure: "Power Shield",
holdhands: "Rejuvenation", luckychant: "Fairy Ward", followme: "Taunt", meditate: "Sacrifice",
helpinghand: "Cooperation", spite: "Slow Down", aromaticmist: "Healing Touch", healbell: "Penance",
fakeout: "Stop", endure: "Last Stand", withdraw: "Barkskin", seismictoss: "Punishment",
flamethrower: "Flamestrike", fireblast: "Conflagration", thunderbolt: "Moonfire", thunder: "Starfire",
toxic: "Corruption", leechseed: "Soul Leech", icebeam: "Ice Lance", freezeshock: "Frostbite",
aircutter: "Hurricane", muddywater: "Storm", furyswipes: "Fury", scratch: "Garrote", slash: "Mutilate",
smog: "Poison Gas", protect: "Evasion", matblock: "Sacred Shield"
};
if (move.id in legitNames) {
move.name = legitNames[move.id];
}
},
onFaint: function (pokemon) {
var message = {
'Amy': 'French?', 'Princess Leia': 'Why, you stuck up, half-witted, scruffy-looking Nerf herder.',
'Scruffy': "Scruffy's gonna die the way he lived. [Turns page of Zero-G Juggs magazine.] Mmhm.",
'Yoda': 'Wrath leads to the dark side.', 'Bender': 'DEATH TO ALL HUMANS!', 'Gurren Lagann': 'Later, buddy.',
'Lagann': "Eh, I guess I'm no one.", 'Rei Ayanami': 'Man fears the darkness, and so he scrapes away at the edges of it with fire.',
'Slurms McKenzie': 'I will keep partying until the end.', 'C3PO': 'Oh, dear!',
'Hermes': 'I can still... limbo...', 'Professor Farnsworth': 'Bad news, everyone!', 'Kif': 'Sigh.',
'Jar Jar Binks': "Better dead here than deader in the Core. Ye gods, whatta meesa sayin'?",
'R2D2': '*beep boop*', 'Asuka Langley': 'Disgusting.', 'Chewy': 'GRARARWOOWRALWRL',
'Fry': 'Huh. Did everything just taste purple for a second?', 'Han Solo': 'I should have shot first...',
'Leela': 'Yeeee-hAW!', 'Luke Skywalker': 'I could not use the force...',
'Nibbler': 'I hereby place an order for one cheese pizza.',
'Shinji Ikari': 'It would be better if I never existed. I should just die too.', 'Zoidberg': 'Why not Zoidberg?',
'Anti-Spiral': 'If this is how it must be, protect the universe at all costs.', 'Gendo Ikari': 'Everything goes according to the plan.',
'Kaworu Nagisa': 'Dying of your own will. That is the one and only absolute freedom there is.',
'Jabba the Hut': 'Han, ma bukee.', 'Lilith': '...', 'Lrrr': "But I'm emperor of Omicron Persei 8!",
'Mommy': 'Stupid!', 'Bobba Fett': "I see now I've done terrible things.", 'Zapp Brannigan': "Oh, God, I'm pathetic. Sorry. Just go...",
'An angel': ',,,', 'Darth Vader': "I'm sorry, son.", 'Emperor Palpatine': 'What the hell is an "Aluminum Falcon"?',
'Fender': '*beeps*', 'Storm Trooper': 'But my aim is perfect!'
}[pokemon.name];
this.add('-message', pokemon.name + ': ' + message);
}
},
{
name: "CAP",
section: "Other Metagames",
column: 2,
ruleset: ['OU'],
banlist: ['Allow CAP']
},
{
name: "Battle Factory",
section: "Other Metagames",
team: 'randomFactory',
ruleset: ['Pokemon', 'Sleep Clause Mod', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod']
},
{
name: "Battle Cup 1v1",
section: "Other Metagames",
team: 'randomBC',
ruleset: ['Pokemon', 'HP Percentage Mod', 'Cancel Mod', 'Team Preview 1v1'],
onBegin: function () {
this.debug('Cutting down to 1');
this.p1.pokemon = this.p1.pokemon.slice(0, 1);
this.p1.pokemonLeft = this.p1.pokemon.length;
this.p2.pokemon = this.p2.pokemon.slice(0, 1);
this.p2.pokemonLeft = this.p2.pokemon.length;
}
},
{
name: "Challenge Cup",
section: "Other Metagames",
team: 'randomCC',
ruleset: ['Pokemon', 'HP Percentage Mod', 'Cancel Mod']
},
{
name: "Balanced Hackmons",
section: "Other Metagames",
ruleset: ['Pokemon', 'Ability Clause', '-ate Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod'],
banlist: ['Arena Trap', 'Huge Power', 'Parental Bond', 'Pure Power', 'Shadow Tag', 'Wonder Guard', 'Assist', 'Chatter']
},
{
name: "1v1",
section: 'Other Metagames',
ruleset: ['Pokemon', 'Moody Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Swagger Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod', 'Team Preview 1v1'],
banlist: ['Illegal', 'Unreleased', 'Arceus', 'Blaziken', 'Darkrai', 'Deoxys', 'Deoxys-Attack', 'Dialga', 'Giratina', 'Giratina-Origin',
'Groudon', 'Ho-Oh', 'Kyogre', 'Kyurem-White', 'Lugia', 'Mewtwo', 'Palkia', 'Rayquaza', 'Reshiram', 'Shaymin-Sky',
'Xerneas', 'Yveltal', 'Zekrom', 'Focus Sash', 'Kangaskhanite', 'Soul Dew'
],
validateTeam: function (team, format) {
if (team.length > 3) return ['You may only bring up to three Pokémon.'];
},
onBegin: function () {
this.p1.pokemon = this.p1.pokemon.slice(0, 1);
this.p1.pokemonLeft = this.p1.pokemon.length;
this.p2.pokemon = this.p2.pokemon.slice(0, 1);
this.p2.pokemonLeft = this.p2.pokemon.length;
}
},
{
name: "Monotype",
section: "Other Metagames",
ruleset: ['Pokemon', 'Standard', 'Baton Pass Clause', 'Swagger Clause', 'Same Type Clause', 'Team Preview'],
banlist: ['Arceus', 'Blaziken', 'Darkrai', 'Deoxys', 'Deoxys-Attack', 'Dialga', 'Giratina', 'Giratina-Origin', 'Greninja', 'Groudon', 'Ho-Oh',
'Kyogre', 'Kyurem-White', 'Lugia', 'Mewtwo', 'Palkia', 'Rayquaza', 'Reshiram', 'Talonflame', 'Xerneas', 'Yveltal', 'Zekrom',
'Gengarite', 'Kangaskhanite', 'Lucarionite', 'Mawilite', 'Metagrossite', 'Salamencite', 'Shaymin-Sky', 'Slowbronite', 'Soul Dew'
]
},
{
name: "Tier Shift",
section: "Other Metagames",
mod: 'tiershift',
ruleset: ['OU'],
banlist: ['Shadow Tag', 'Chatter']
},
{
name: "PU",
section: "Other Metagames",
ruleset: ['NU'],
banlist: ['NU', 'BL4', 'Altarianite', 'Beedrillite', 'Lopunnite', 'Chatter', 'Shell Smash + Baton Pass']
},
{
name: "Inverse Battle",
section: "Other Metagames",
ruleset: ['Pokemon', 'Standard', 'Baton Pass Clause', 'Swagger Clause', 'Team Preview'],
banlist: ['Arceus', 'Blaziken', 'Darkrai', 'Deoxys', 'Deoxys-Attack', 'Deoxys-Defense', 'Deoxys-Speed', 'Diggersby', 'Giratina-Origin', 'Groudon',
'Ho-Oh', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Mewtwo', 'Palkia', 'Rayquaza', 'Reshiram', 'Serperior',
'Shaymin-Sky', 'Snorlax', 'Xerneas', 'Yveltal', 'Zekrom', 'Gengarite', 'Kangaskhanite', 'Salamencite', 'Soul Dew'
],
onModifyPokemon: function (pokemon) {
pokemon.negateImmunity['Type'] = true;
},
onEffectiveness: function (typeMod, target, type, move) {
// The effectiveness of Freeze Dry on Water isn't reverted
if (move && move.id === 'freezedry' && type === 'Water') return;
if (move && !this.getImmunity(move, type)) return 1;
return -typeMod;
}
},
{
name: "Almost Any Ability",
section: "Other Metagames",
ruleset: ['Pokemon', 'Standard', 'Baton Pass Clause', 'Swagger Clause', 'Team Preview'],
banlist: ['Ignore Illegal Abilities', 'Arceus', 'Archeops', 'Bisharp', 'Darkrai', 'Deoxys', 'Deoxys-Attack', 'Dialga', 'Giratina', 'Giratina-Origin',
'Groudon', 'Ho-Oh', 'Keldeo', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Mamoswine', 'Mewtwo', 'Palkia',
'Rayquaza', 'Regigigas', 'Reshiram', 'Shedinja + Sturdy', 'Slaking', 'Smeargle + Prankster', 'Terrakion', 'Weavile', 'Xerneas', 'Yveltal',
'Zekrom', 'Blazikenite', 'Gengarite', 'Kangaskhanite', 'Lucarionite', 'Mawilite', 'Salamencite', 'Soul Dew', 'Chatter'
],
validateSet: function (set) {
var bannedAbilities = {'Aerilate': 1, 'Arena Trap': 1, 'Contrary': 1, 'Fur Coat': 1, 'Huge Power': 1, 'Imposter': 1, 'Parental Bond': 1, 'Protean': 1, 'Pure Power': 1, 'Shadow Tag': 1, 'Simple':1, 'Speed Boost': 1, 'Wonder Guard': 1};
if (set.ability in bannedAbilities) {
var template = this.getTemplate(set.species || set.name);
var legalAbility = false;
for (var i in template.abilities) {
if (set.ability === template.abilities[i]) legalAbility = true;
}
if (!legalAbility) return ['The ability ' + set.ability + ' is banned on Pokémon that do not naturally have it.'];
}
}
},
{
name: "STABmons",
section: "Other Metagames",
ruleset: ['Pokemon', 'Standard', 'Baton Pass Clause', 'Swagger Clause', 'Team Preview'],
banlist: ['Ignore STAB Moves', 'Arceus', 'Blaziken', 'Deoxys', 'Deoxys-Attack', 'Dialga', 'Diggersby', 'Genesect', 'Giratina', 'Giratina-Origin',
'Greninja', 'Groudon', 'Ho-Oh', 'Keldeo', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Mewtwo', 'Palkia',
'Porygon-Z', 'Rayquaza', 'Reshiram', 'Shaymin-Sky', 'Sylveon', 'Xerneas', 'Yveltal', 'Zekrom', 'Aerodactylite', 'Altarianite',
'Gengarite', 'Kangaskhanite', "King's Rock", 'Lopunnite', 'Lucarionite', 'Mawilite', 'Metagrossite', 'Razor Fang', 'Salamencite', 'Slowbronite',
'Soul Dew'
]
},
{
name: "LC UU",
section: "Other Metagames",
maxLevel: 5,
ruleset: ['LC'],
banlist: ['Abra', 'Aipom', 'Archen', 'Bunnelby', 'Carvanha', 'Chinchou', 'Cottonee', 'Croagunk', 'Diglett',
'Drilbur', 'Dwebble', 'Elekid', 'Ferroseed', 'Fletchling', 'Foongus', 'Gastly', 'Gothita', 'Houndour', 'Larvesta', 'Magnemite', 'Mienfoo',
'Munchlax', 'Omanyte', 'Onix', 'Pawniard', 'Ponyta', 'Porygon', 'Pumpkaboo-Super', 'Scraggy', 'Shellder', 'Skrelp', 'Snivy',
'Snubbull', 'Spritzee', 'Staryu', 'Surskit', 'Timburr', 'Tirtouga', 'Vullaby', 'Vulpix', 'Zigzagoon', 'Shell Smash'
]
},
{
name: "Averagemons",
section: "Other Metagames",
mod: 'averagemons',
searchShow: false,
ruleset: ['Pokemon', 'Standard', 'Baton Pass Clause', 'Evasion Abilities Clause', 'Swagger Clause', 'Team Preview'],
banlist: ['Sableye + Prankster', 'Shedinja', 'Smeargle',
'DeepSeaScale', 'DeepSeaTooth', 'Eviolite', 'Gengarite', 'Kangaskhanite', 'Light Ball', 'Mawilite', 'Medichamite', 'Soul Dew', 'Thick Club',
'Arena Trap', 'Huge Power', 'Pure Power', 'Shadow Tag'
]
},
{
name: "Hidden Type",
section: "Other Metagames",
searchShow: false,
mod: 'hiddentype',
ruleset: ['OU']
},
{
name: "Middle Cup",
section: "Other Metagames",
searchShow: false,
maxLevel: 50,
defaultLevel: 50,
validateSet: function (set) {
var template = this.getTemplate(set.species || set.name);
if (!template.evos || template.evos.length === 0 || !template.prevo) {
return [set.species + " is not the middle Pokémon in an evolution chain."];
}
},
ruleset: ['Pokemon', 'Standard', 'Team Preview'],
banlist: ['Chansey', 'Frogadier', 'Eviolite']
},
{
name: "OU Theorymon",
section: "Other Metagames",
mod: 'theorymon',
searchShow: false,
ruleset: ['OU']
},
{
name: "Gen-NEXT OU",
section: "Other Metagames",
mod: 'gennext',
searchShow: false,
ruleset: ['Pokemon', 'Standard NEXT', 'Team Preview'],
banlist: ['Uber']
},
{
name: "Monotype Random Battle",
section: "Other Metagames",
team: 'randomMonotype',
searchShow: false,
ruleset: ['Pokemon', 'Same Type Clause', 'Sleep Clause Mod', 'HP Percentage Mod', 'Cancel Mod']
},
// BW2 Singles
///////////////////////////////////////////////////////////////////
{
name: "[Gen 5] OU",
section: "BW2 Singles",
column: 3,
mod: 'gen5',
ruleset: ['Pokemon', 'Standard', 'Evasion Abilities Clause', 'Team Preview'],
banlist: ['Uber', 'Drizzle ++ Swift Swim', 'Soul Dew']
},
{
name: "[Gen 5] Ubers",
section: "BW2 Singles",
mod: 'gen5',
ruleset: ['Pokemon', 'Team Preview', 'Standard Ubers'],
banlist: []
},
{
name: "[Gen 5] UU",
section: "BW2 Singles",
mod: 'gen5',
ruleset: ['[Gen 5] OU'],
banlist: ['OU', 'BL', 'Drought', 'Sand Stream', 'Snow Warning']
},
{
name: "[Gen 5] RU",
section: "BW2 Singles",
mod: 'gen5',
ruleset: ['[Gen 5] UU'],
banlist: ['UU', 'BL2', 'Shell Smash + Baton Pass', 'Snow Warning']
},
{
name: "[Gen 5] NU",
section: "BW2 Singles",
mod: 'gen5',
ruleset: ['[Gen 5] RU'],
banlist: ['RU', 'BL3', 'Prankster + Assist']
},
{
name: "[Gen 5] LC",
section: "BW2 Singles",
mod: 'gen5',
maxLevel: 5,
ruleset: ['Pokemon', 'Standard', 'Team Preview', 'Little Cup'],
banlist: ['Berry Juice', 'Soul Dew', 'Dragon Rage', 'Sonic Boom', 'LC Uber', 'Gligar', 'Scyther', 'Sneasel', 'Tangela']
},
{
name: "[Gen 5] GBU Singles",
section: "BW2 Singles",
mod: 'gen5',
validateSet: function (set) {
if (!set.level || set.level >= 50) set.forcedLevel = 50;
return [];
},
onBegin: function () {
this.debug('cutting down to 3');
this.p1.pokemon = this.p1.pokemon.slice(0, 3);
this.p1.pokemonLeft = this.p1.pokemon.length;
this.p2.pokemon = this.p2.pokemon.slice(0, 3);
this.p2.pokemonLeft = this.p2.pokemon.length;
},
ruleset: ['Pokemon', 'Standard GBU', 'Team Preview GBU'],
banlist: ['Sky Drop', 'Dark Void']
},
{
name: "[Gen 5] Custom Game",
section: "BW2 Singles",
mod: 'gen5',
searchShow: false,
canUseRandomTeam: true,
debug: true,
maxLevel: 9999,
defaultLevel: 100,
// no restrictions, for serious (other than team preview)
ruleset: ['Team Preview', 'Cancel Mod']
},
// BW2 Doubles
///////////////////////////////////////////////////////////////////
{
name: "[Gen 5] Doubles OU",
section: 'BW2 Doubles',
column: 3,
mod: 'gen5',
gameType: 'doubles',
ruleset: ['Pokemon', 'Standard', 'Evasion Abilities Clause', 'Team Preview'],
banlist: ['Unreleased', 'Illegal', 'Dark Void', 'Soul Dew', 'Sky Drop',
'Mewtwo',
'Lugia',
'Ho-Oh',
'Kyogre',
'Groudon',
'Rayquaza',
'Dialga',
'Palkia',
'Giratina', 'Giratina-Origin',
'Arceus',
'Reshiram',
'Zekrom',
'Kyurem-White'
]
},
{
name: "[Gen 5] GBU Doubles",
section: 'BW2 Doubles',
mod: 'gen5',
gameType: 'doubles',
onBegin: function () {
this.debug('cutting down to 4');
this.p1.pokemon = this.p1.pokemon.slice(0, 4);
this.p1.pokemonLeft = this.p1.pokemon.length;
this.p2.pokemon = this.p2.pokemon.slice(0, 4);
this.p2.pokemonLeft = this.p2.pokemon.length;
},
maxForcedLevel: 50,
ruleset: ['Pokemon', 'Standard GBU', 'Team Preview VGC'],
banlist: ['Sky Drop', 'Dark Void']
},
{
name: "[Gen 5] Doubles Custom Game",
section: 'BW2 Doubles',
mod: 'gen5',
gameType: 'doubles',
searchShow: false,
canUseRandomTeam: true,
debug: true,
maxLevel: 9999,
defaultLevel: 100,
// no restrictions, for serious (other than team preview)
ruleset: ['Team Preview', 'Cancel Mod']
},
// Past Generations
///////////////////////////////////////////////////////////////////
{
name: "[Gen 4] OU",
section: "Past Generations",
column: 3,
mod: 'gen4',
ruleset: ['Pokemon', 'Standard'],
banlist: ['Uber']
},
{
name: "[Gen 4] Ubers",
section: "Past Generations",
mod: 'gen4',
ruleset: ['Pokemon', 'Standard'],
banlist: ['Arceus']
},
{
name: "[Gen 4] UU",
section: "Past Generations",
mod: 'gen4',
ruleset: ['Pokemon', 'Standard'],
banlist: ['Uber', 'OU', 'BL']
},
{
name: "[Gen 4] LC",
section: "Past Generations",
mod: 'gen4',
maxLevel: 5,
ruleset: ['Pokemon', 'Standard', 'Little Cup'],
banlist: ['Berry Juice', 'DeepSeaTooth', 'Dragon Rage', 'Sonic Boom', 'Meditite', 'Misdreavus', 'Murkrow', 'Scyther', 'Sneasel', 'Tangela', 'Yanma']
},
{
name: "[Gen 4] Custom Game",
section: "Past Generations",
mod: 'gen4',
searchShow: false,
canUseRandomTeam: true,
debug: true,
maxLevel: 9999,
defaultLevel: 100,
// no restrictions
ruleset: ['Cancel Mod']
},
{
name: "[Gen 3] OU",
section: "Past Generations",
mod: 'gen3',
ruleset: ['Pokemon', 'Standard'],
banlist: ['Uber', 'Smeargle + Ingrain']
},
{
name: "[Gen 3] Ubers",
section: "Past Generations",
mod: 'gen3',
ruleset: ['Pokemon', 'Standard'],
banlist: ['Wobbuffet + Leftovers']
},
{
name: "[Gen 3] Custom Game",
section: "Past Generations",
mod: 'gen3',
searchShow: false,
debug: true,
ruleset: ['Pokemon', 'HP Percentage Mod', 'Cancel Mod']
},
{
name: "[Gen 2] OU",
section: "Past Generations",
mod: 'gen2',
ruleset: ['Pokemon', 'Standard'],
banlist: ['Uber']
},
{
name: "[Gen 2] Random Battle",
section: "Past Generations",
mod: 'gen2',
searchShow: false,
team: 'random',
ruleset: ['Pokemon', 'Standard']
},
{
name: "[Gen 2] Custom Game",
section: "Past Generations",
mod: 'gen2',
searchShow: false,
debug: true,
ruleset: ['Pokemon', 'HP Percentage Mod', 'Cancel Mod']
},
{
name: "[Gen 1] OU",
section: "Past Generations",
mod: 'gen1',
ruleset: ['Pokemon', 'Standard'],
banlist: ['Uber']
},
{
name: "[Gen 1] OU (tradeback)",
section: "Past Generations",
mod: 'gen1',
searchShow: false,
ruleset: ['Pokemon', 'Sleep Clause Mod', 'Freeze Clause Mod', 'Species Clause', 'OHKO Clause', 'Evasion Moves Clause', 'HP Percentage Mod', 'Cancel Mod'],
banlist: ['Uber', 'Unreleased', 'Illegal',
'Nidoking + Fury Attack + Thrash', 'Exeggutor + Poison Powder + Stomp', 'Exeggutor + Sleep Powder + Stomp',
'Exeggutor + Stun Spore + Stomp', 'Jolteon + Focus Energy + Thunder Shock', 'Flareon + Focus Energy + Ember'
]
},
{
name: "[Gen 1] Random Battle",
section: "Past Generations",
mod: 'gen1',
team: 'random',
ruleset: ['Pokemon', 'Sleep Clause Mod', 'Freeze Clause Mod', 'HP Percentage Mod', 'Cancel Mod']
},
/*{
name: "[Gen 1] Challenge Cup",
section: "Past Generations",
mod: 'gen1',
team: 'randomCC',
searchShow: false,
ruleset: ['Pokemon', 'Sleep Clause Mod', 'Freeze Clause Mod', 'HP Percentage Mod', 'Cancel Mod']
},*/
{
name: "[Gen 1] Stadium",
section: "Past Generations",
mod: 'stadium',
searchShow: false,
ruleset: ['Pokemon', 'Standard', 'Team Preview'],
banlist: ['Uber',
'Nidoking + Fury Attack + Thrash', 'Exeggutor + Poison Powder + Stomp', 'Exeggutor + Sleep Powder + Stomp',
'Exeggutor + Stun Spore + Stomp', 'Jolteon + Focus Energy + Thunder Shock', 'Flareon + Focus Energy + Ember'
]
},
{
name: "[Gen 1] Custom Game",
section: "Past Generations",
mod: 'gen1',
searchShow: false,
debug: true,
ruleset: ['Pokemon', 'HP Percentage Mod', 'Cancel Mod']
}
];