Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 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: "XY Singles",
- team: 'random',
- ruleset: ['PotD', 'Pokemon', 'Sleep Clause Mod', 'HP Percentage Mod']
- },
- {
- name: "Unrated Random Battle",
- section: "XY Singles",
- team: 'random',
- challengeShow: false,
- rated: false,
- ruleset: ['PotD', 'Pokemon', 'Sleep Clause Mod', 'HP Percentage Mod']
- },
- {
- name: "OU",
- section: "XY Singles",
- ruleset: ['Pokemon', 'Standard', 'Team Preview', 'Swagger Clause', 'Baton Pass Clause'],
- banlist: ['Uber', 'Soul Dew', 'Gengarite', 'Kangaskhanite', 'Lucarionite', 'Mawilite']
- },
- {
- name: "Ubers",
- section: "XY Singles",
- searchShow: false,
- ruleset: ['Pokemon', 'Standard Ubers', 'Swagger Clause', 'Team Preview'],
- banlist: []
- },
- {
- name: "Ubers (suspect test)",
- section: "XY Singles",
- challengeShow: false,
- ruleset: ['Pokemon', 'Standard Ubers', 'Swagger Clause', 'Team Preview'],
- banlist: []
- },
- {
- name: "UU",
- section: "XY Singles",
- ruleset: ['OU'],
- banlist: ['OU', 'BL', 'Heracronite', 'Gardevoirite', 'Medichamite', 'Drizzle', 'Drought', 'Shadow Tag']
- },
- {
- name: "RU",
- section: "XY Singles",
- ruleset: ['UU'],
- banlist: ['UU', 'BL2']
- },
- {
- name: "NU",
- section: "XY Singles",
- ruleset: ['RU'],
- banlist: ['RU', 'BL3']
- },
- {
- name: "LC",
- section: "XY Singles",
- maxLevel: 5,
- ruleset: ['Pokemon', 'Standard', 'Team Preview', 'Little Cup'],
- banlist: ['Dragon Rage', 'Sonic Boom', 'Swagger', 'LC Uber', 'Gligar']
- },
- {
- name: "CAP Plasmanta Playtest",
- section: "XY 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: "XY Singles",
- 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;
- },
- maxForcedLevel: 50,
- ruleset: ['Pokemon', 'Standard GBU', 'Team Preview GBU'],
- banlist: [], // The necessary bans are in Standard GBU
- validateTeam: function (team, format) {
- if (team.length < 3) return ['You must bring at least three Pokémon.'];
- }
- },
- {
- name: "Custom Game",
- section: "XY Singles",
- searchShow: false,
- canUseRandomTeam: true,
- debug: true,
- maxLevel: 9999,
- defaultLevel: 100,
- // no restrictions, for serious (other than team preview)
- ruleset: ['Team Preview']
- },
- // XY Doubles
- ///////////////////////////////////////////////////////////////////
- {
- name: "Random Doubles Battle",
- section: "XY Doubles",
- gameType: 'doubles',
- team: 'randomDoubles',
- ruleset: ['PotD', 'Pokemon', 'Sleep Clause Mod', 'HP Percentage Mod']
- },
- {
- name: "Smogon Doubles",
- section: "XY Doubles",
- gameType: 'doubles',
- ruleset: ['Pokemon', 'Standard Doubles', 'Team Preview'],
- banlist: ['Soul Dew', 'Dark Void',
- 'Mewtwo', 'Lugia', 'Ho-Oh', 'Kyogre', 'Groudon', 'Rayquaza', 'Dialga', 'Palkia', 'Giratina', 'Giratina-Origin',
- 'Arceus', 'Reshiram', 'Zekrom', 'Kyurem-White', 'Xerneas', 'Yveltal'
- ]
- },
- {
- name: "Smogon Doubles Ubers",
- section: "XY Doubles",
- gameType: 'doubles',
- ruleset: ['Pokemon', 'Species Clause', 'Moody Clause', 'OHKO Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Team Preview'],
- banlist: ['Unreleased', 'Illegal', 'Dark Void']
- },
- {
- name: "Smogon Doubles UU",
- section: "XY Doubles",
- gameType: 'doubles',
- ruleset: ['Smogon Doubles'],
- banlist: ['Abomasnow', 'Aegislash', 'Amoonguss', 'Aromatisse', 'Azumarill', 'Bisharp', 'Breloom', 'Chandelure', 'Charizard', 'Conkeldurr',
- 'Cresselia', 'Diancie', 'Dragonite', 'Dusclops', 'Excadrill', 'Ferrothorn', 'Garchomp', 'Gardevoir', 'Gengar', 'Greninja',
- 'Gyarados', 'Heatran', 'Hitmontop', 'Hydreigon', 'Jellicent', 'Kangaskhan', 'Keldeo', 'Kyurem-Black', 'Landorus-Therian', 'Latios',
- 'Ludicolo', 'Mamoswine', 'Manectric', 'Mawile', 'Politoed', 'Rhyperior', 'Rotom-Heat', 'Rotom-Wash', 'Sableye', 'Salamence',
- 'Scizor', 'Scrafty', 'Shaymin-Sky', 'Sylveon', 'Talonflame', 'Terrakion', 'Thundurus', 'Thundurus-Therian', 'Togekiss', 'Tyranitar',
- 'Venusaur', 'Weavile', 'Whimsicott', 'Zapdos'
- ]
- },
- {
- name: "Battle Spot Doubles",
- section: "XY Doubles",
- 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'],
- validateTeam: function (team, format) {
- if (team.length < 4) return ['You must bring at least four Pokémon.'];
- }
- },
- {
- name: "Battle Spot Special 6",
- section: "XY Doubles",
- 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: ['Aegislash', 'Amoonguss', 'Charizard', 'Cresselia', 'Garchomp', 'Gengar', 'Greninja', 'Gyarados', 'Kangaskhan', 'Landorus',
- 'Landorus-Therian', 'Mawile', 'Meowstic', 'Meowstic-F', 'Rotom', 'Rotom-Fan', 'Rotom-Frost', 'Rotom-Heat', 'Rotom-Mow', 'Rotom-Wash',
- 'Salamence', 'Sylveon', 'Talonflame', 'Thundurus', 'Thundurus-Therian', 'Togekiss', 'Tyranitar'
- ],
- validateTeam: function (team, format) {
- if (team.length < 4) return ['You must bring at least four Pokémon.'];
- }
- },
- {
- name: "VGC 2014",
- section: "XY Doubles",
- 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', 'Kalos Pokedex'],
- requirePentagon: true,
- banlist: [], // The necessary bans are in Standard GBU
- validateTeam: function (team, format) {
- if (team.length < 4) return ['You must bring at least four Pokémon.'];
- }
- },
- {
- name: "Doubles Challenge Cup",
- section: 'XY Doubles',
- gameType: 'doubles',
- team: 'randomCC',
- searchShow: false,
- ruleset: ['Pokemon', 'HP Percentage Mod']
- },
- {
- name: "Doubles Custom Game",
- section: "XY Doubles",
- gameType: 'doubles',
- searchShow: false,
- canUseRandomTeam: true,
- maxLevel: 9999,
- defaultLevel: 100,
- debug: true,
- // no restrictions, for serious (other than team preview)
- ruleset: ['Team Preview']
- },
- // XY Triples
- ///////////////////////////////////////////////////////////////////
- {
- name: "Random Triples Battle",
- section: "XY Triples",
- gameType: 'triples',
- team: 'randomDoubles',
- ruleset: ['PotD', 'Pokemon', 'Sleep Clause Mod', 'HP Percentage Mod']
- },
- {
- name: "Smogon Triples",
- section: "XY Triples",
- gameType: 'triples',
- ruleset: ['Pokemon', 'Species Clause', 'OHKO Clause', 'Moody Clause', 'Endless Battle Clause', 'HP Percentage 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: "XY Triples",
- gameType: 'triples',
- maxForcedLevel: 50,
- ruleset: ['Pokemon', 'Standard GBU', 'Team Preview'],
- validateTeam: function (team, format) {
- if (team.length < 6) return ['You must have six Pokémon.'];
- }
- },
- {
- name: "Triples Challenge Cup",
- section: "XY Triples",
- gameType: 'triples',
- team: 'randomCC',
- searchShow: false,
- ruleset: ['Pokemon', 'HP Percentage Mod']
- },
- {
- name: "Triples Custom Game",
- section: "XY Triples",
- gameType: 'triples',
- searchShow: false,
- canUseRandomTeam: true,
- maxLevel: 9999,
- defaultLevel: 100,
- debug: true,
- // no restrictions, for serious (other than team preview)
- ruleset: ['Team Preview']
- },
- // Other Metagames
- ///////////////////////////////////////////////////////////////////
- {
- name: "350 Cup",
- section: "OM of the Month",
- column: 2,
- mod: '350cup',
- ruleset: ['Ubers', 'Evasion Moves Clause'],
- banlist: ['Darumaka', 'Pawniard', 'Spritzee', 'DeepSeaScale', 'DeepSeaTooth', 'Light Ball', 'Thick Club'],
- validateSet: function (set) {
- var template = Tools.getTemplate(set.species);
- var item = this.getItem(set.item);
- if (item.name === 'Eviolite' && Object.values(template.baseStats).sum() <= 350) {
- return ['Eviolite is banned on Pokémon with 350 or lower BST.'];
- }
- }
- },
- {
- name: "ORAS OU",
- section: "OM of the Month",
- mod: 'oras',
- ruleset: ['Pokemon', 'Sleep Clause Mod', 'Species Clause', 'OHKO Clause', 'Moody Clause', 'Evasion Moves Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Team Preview', 'Swagger Clause', 'Baton Pass Clause'],
- banlist: ['Illegal', 'Uber', 'Floette-Eternal-Flower', 'Hoopa', 'Volcanion', 'Gengarite', 'Kangaskhanite', 'Lucarionite', 'Mawilite', 'Soul Dew',
- 'Bug Gem', 'Custap Berry', 'Dark Gem', 'Dragon Gem', 'Electric Gem', 'Fairy Gem', 'Fighting Gem', 'Fire Gem', 'Flying Gem', 'Ghost Gem',
- 'Grass Gem', 'Ground Gem', 'Ice Gem', 'Mail', 'Poison Gem', 'Psychic Gem', 'Rock Gem', 'Steel Gem', 'Water Gem'
- ]
- },
- {
- name: "[Seasonal] Strikes Back",
- section: "OM of the Month",
- gameType: 'triples',
- team: 'randomSeasonalSB',
- ruleset: ['HP Percentage Mod', 'Sleep Clause Mod'],
- onBegin: function() {
- this.add('-message', "V4 is a big poo-poo!");
- },
- onModifyMove: function (move) {
- // Change present mechanics
- if (move.id === 'present') {
- move.category = 'Status';
- move.basePower = 0;
- delete move.heal;
- move.accuracy = 100;
- switch (this.random(16)) {
- case 0:
- move.onTryHit = function() {
- this.add('-message', "The present was a bomb!");
- };
- move.category = 'Physical';
- move.basePower = 250;
- break;
- case 1:
- move.onTryHit = function() {
- this.add('-message', "The present was confusion!");
- };
- move.volatileStatus = 'confusion';
- break;
- case 2:
- move.onTryHit = function() {
- this.add('-message', "The present was Disable!");
- };
- move.volatileStatus = 'disable';
- break;
- case 3:
- move.onTryHit = function() {
- this.add('-message', "The present was a taunt!");
- };
- move.volatileStatus = 'taunt';
- break;
- case 4:
- move.onTryHit = function() {
- this.add('-message', "The present was some seeds!");
- };
- move.volatileStatus = 'leechseed';
- break;
- case 5:
- move.onTryHit = function() {
- this.add('-message', "The present was an embargo!");
- };
- move.volatileStatus = 'embargo';
- break;
- case 6:
- move.onTryHit = function() {
- this.add('-message', "The present was a music box!");
- };
- move.volatileStatus = 'perishsong';
- break;
- case 7:
- move.onTryHit = function() {
- this.add('-message', "The present was a curse!");
- };
- move.volatileStatus = 'curse';
- break;
- case 8:
- move.onTryHit = function() {
- this.add('-message', "The present was Torment!");
- };
- move.volatileStatus = 'torment';
- break;
- case 9:
- move.onTryHit = function() {
- this.add('-message', "The present was a trap!");
- };
- move.volatileStatus = 'partiallytrapped';
- break;
- case 10:
- move.onTryHit = function() {
- this.add('-message', "The present was a root!");
- };
- move.volatileStatus = 'ingrain';
- break;
- case 11:
- move.onTryHit = function() {
- this.add('-message', "The present was a makeover!");
- };
- var boosts = {};
- var possibleBoosts = ['atk','def','spa','spd','spe','accuracy','evasion'].randomize();
- boosts[possibleBoosts[0]] = 1;
- boosts[possibleBoosts[1]] = -1;
- boosts[possibleBoosts[2]] = -1;
- move.boosts = boosts;
- break;
- case 12:
- move.onTryHit = function() {
- this.add('-message', "The present was psychic powers!");
- };
- move.volatileStatus = 'telekinesis';
- break;
- case 13:
- move.onTryHit = function() {
- this.add('-message', "The present was fatigue!");
- };
- move.volatileStatus = 'mustrecharge';
- break;
- case 14:
- case 15:
- move.onTryHit = function() {
- this.add('-message', "The present was a snowball hit!");
- };
- move.category = 'Ice';
- move.basePower = 250;
- break;
- }
- } else {
- // Change move type time to time only when the move is not present.
- if (this.random(100) < 40 && move.target !== 'self') {
- var type = '';
- switch (move.type.toLowerCase()){
- case 'rock':
- case 'ground':
- type = 'Grass';
- break;
- case 'fire':
- case 'bug':
- type = 'Water';
- break;
- case 'water':
- case 'grass':
- type = 'Fire';
- break;
- case 'flying':
- type = 'Fighting';
- break;
- case 'fighting':
- type = 'Flying';
- break;
- case 'dark':
- type = 'Bug';
- break;
- case 'dragon':
- case 'electric':
- type = 'Ice';
- break;
- case 'ghost':
- type = 'Normal';
- break;
- case 'ice':
- type = 'Electric';
- break;
- case 'normal':
- case 'poison':
- type = 'Ghost';
- break;
- case 'psychic':
- type = 'Dark';
- break;
- case 'steel':
- type = 'Poison';
- break;
- }
- move.type = type;
- this.add('-message', 'lol trolled I changed yer move type hahaha');
- }
- }
- },
- onSwitchIn: function (pokemon) {
- if (this.random(100) < 33) {
- this.add('-message', pokemon.name + " drank way too much!");
- pokemon.addVolatile('confusion');
- pokemon.statusData.time = 0;
- }
- },
- onFaint: function (pokemon) {
- // A poem every time a Pokemon faints
- var haikus = ["You suck a lot / You are a bad trainer / let a mon faint", "they see me driving / round town with the girl i love / and I'm like, haikou",
- "Ain't no Pokemon tough enough / ain't no bulk decent enough / ain't no recovery good enough / to keep me from fainting you, babe",
- "Roses are red / violets are blue / you must be on some med / 'coz as a trainer you suck",
- "You're gonna be the very worst / like no one ever was / to lose all the battles is your test / to faint them all is your cause",
- 'Twinkle twinkle little star / screw you that was my best sweeper', "I'm wheezy and I'm sleezy / but as a trainer you're measly",
- "You're sharp as a rock / you're bright as a hole / you're one to mock / you could be beaten by a maimed mole",
- "Alas, poor trainer! I knew him, your Pokémon, a fellow of infinite jest, of most excellent fancy."];
- haikus = haikus.randomize();
- this.add('-message', haikus[0]);
- }
- },
- {
- name: "CAP",
- section: "Other Metagames",
- column: 2,
- searchShow: false,
- ruleset: ['CAP Pokemon', 'Standard', 'Baton Pass Clause', 'Swagger Clause', 'Team Preview'],
- banlist: ['Uber', 'Soul Dew', 'Gengarite', 'Kangaskhanite', 'Lucarionite', 'Mawilite']
- },
- {
- name: "Challenge Cup",
- section: "Other Metagames",
- team: 'randomCC',
- ruleset: ['Pokemon', 'HP Percentage Mod']
- },
- {
- name: "Balanced Hackmons Challenge Cup",
- section: 'Other Metagames',
- team: 'randomCCBH',
- searchShow: false,
- ruleset: ['Pokemon', 'HP Percentage Mod']
- },
- {
- name: "Challenge Cup 1-vs-1",
- section: "Other Metagames",
- team: 'randomCC',
- ruleset: ['Pokemon', 'Team Preview 1v1', 'HP Percentage Mod'],
- 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: "Balanced Hackmons",
- section: "Other Metagames",
- ruleset: ['Pokemon', 'Ability Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Team Preview', 'HP Percentage Mod'],
- banlist: ['Arena Trap', 'Huge Power', 'Parental Bond', 'Pure Power', 'Shadow Tag', 'Wonder Guard']
- },
- {
- name: "1v1",
- section: 'Other Metagames',
- ruleset: ['Pokemon', 'Standard', 'Swagger Clause', 'Team Preview 1v1'],
- banlist: ['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', 'Groudon', 'Ho-Oh',
- 'Kyogre', 'Lugia', 'Mewtwo', 'Palkia', 'Rayquaza', 'Reshiram', 'Talonflame', 'Xerneas', 'Yveltal', 'Zekrom',
- 'Gengarite', 'Kangaskhanite', 'Lucarionite'
- ]
- },
- {
- name: "Tier Shift",
- section: "Other Metagames",
- mod: 'tiershift',
- ruleset: ['OU']
- },
- {
- name: "PU",
- section: "Other Metagames",
- ruleset: ['NU'],
- banlist: ['NU']
- },
- {
- name: "Inverse Battle",
- section: "Other Metagames",
- ruleset: ['OU'],
- banlist: ['Kyurem-Black', 'Snorlax'],
- 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, target)) 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', 'Darkrai', 'Deoxys', 'Deoxys-Attack', 'Dialga', 'Giratina', 'Giratina-Origin', 'Groudon',
- 'Ho-Oh', 'Keldeo', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Mewtwo', 'Palkia', 'Rayquaza', 'Regigigas',
- 'Reshiram', 'Shedinja + Sturdy', 'Slaking', 'Smeargle + Prankster', 'Weavile', 'Xerneas', 'Yveltal', 'Zekrom',
- 'Gengarite', 'Kangaskhanite', 'Lucarionite', 'Soul Dew'
- ],
- 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', 'Genesect', 'Giratina', 'Giratina-Origin', 'Groudon',
- 'Ho-Oh', 'Kyogre', 'Kyurem-White', 'Lugia', 'Mewtwo', 'Palkia', 'Porygon-Z', 'Rayquaza', 'Reshiram', 'Shaymin-Sky',
- 'Sylveon', 'Xerneas', 'Yveltal', 'Zekrom', 'Gengarite', 'Kangaskhanite', 'Lucarionite', 'Mawilite', 'Soul Dew'
- ]
- },
- {
- name: "LC UU",
- section: "Other Metagames",
- maxLevel: 5,
- ruleset: ['LC'],
- banlist: ['Abra', 'Aipom', 'Archen', 'Bellsprout', 'Bunnelby', 'Carvanha', 'Chinchou', 'Corphish', 'Cottonee', 'Cranidos',
- 'Croagunk', 'Diglett', 'Drilbur', 'Dwebble', 'Ferroseed', 'Fletchling', 'Foongus', 'Gastly', 'Honedge', 'Houndour',
- 'Larvesta', 'Lileep', 'Magnemite', 'Mienfoo', 'Misdreavus', 'Munchlax', 'Onix', 'Pawniard', 'Ponyta', 'Porygon',
- 'Scraggy', 'Snubbull', 'Spritzee', 'Staryu', 'Timburr', 'Tirtouga', 'Trubbish', 'Vullaby', 'Vulpix', 'Zigzagoon',
- 'Omanyte'
- ]
- },
- {
- name: "Averagemons",
- section: "Other Metagames",
- mod: 'averagemons',
- searchShow: false,
- ruleset: ['Pokemon', 'Standard', 'Baton Pass Clause', 'Evasion Abilities Clause', 'Swagger Clause', 'Team Preview'],
- banlist: ['Shedinja', 'Smeargle', 'DeepSeaScale', 'DeepSeaTooth', 'Eviolite', 'Light Ball', 'Mawilite', 'Medichamite', 'Soul Dew', 'Thick Club', 'Huge Power', 'Pure Power']
- },
- {
- name: "Classic Hackmons",
- section: "Other Metagames",
- searchShow: false,
- ruleset: ['HP Percentage Mod'],
- validateSet: function (set) {
- var template = this.getTemplate(set.species);
- var item = this.getItem(set.item);
- var problems = [];
- if (set.species === set.name) delete set.name;
- if (template.isNonstandard) {
- problems.push(set.species + ' is not a real Pokemon.');
- }
- if (item.isNonstandard) {
- problems.push(item.name + ' is not a real item.');
- }
- var ability = {};
- if (set.ability) ability = this.getAbility(set.ability);
- if (ability.isNonstandard) {
- problems.push(ability.name + ' is not a real ability.');
- }
- if (set.moves) {
- for (var i = 0; i < set.moves.length; i++) {
- var move = this.getMove(set.moves[i]);
- if (move.isNonstandard) {
- problems.push(move.name + ' is not a real move.');
- }
- }
- if (set.moves.length > 4) {
- problems.push((set.name || set.species) + ' has more than four moves.');
- }
- }
- if (set.level && set.level > 100) {
- problems.push((set.name || set.species) + ' is higher than level 100.');
- }
- return problems;
- }
- },
- {
- 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: ['Eviolite']
- },
- {
- name: "Sky Battle",
- section: "Other Metagames",
- searchShow: false,
- validateSet: function (set) {
- var template = this.getTemplate(set.species || set.name);
- if (template.types.indexOf('Flying') === -1 && set.ability !== 'Levitate') {
- return [set.species + " is not a Flying type and does not have the ability Levitate."];
- }
- },
- ruleset: ['Pokemon', 'Standard', 'Evasion Abilities Clause', 'Team Preview'],
- banlist: ['Uber', 'Archen', 'Chatot', 'Delibird', 'Dodrio', 'Doduo', 'Ducklett', "Farfetch'd", 'Fletchling', 'Gastly',
- 'Gengar', 'Hawlucha', 'Hoothoot', 'Murkrow', 'Natu', 'Pidgey', 'Pidove', 'Rufflet', 'Shaymin-Sky', 'Spearow',
- 'Starly', 'Taillow', 'Vullaby', 'Iron Ball', 'Pinsirite', 'Soul Dew',
- 'Body Slam', 'Bulldoze', 'Dig', 'Dive', 'Earth Power', 'Earthquake', 'Electric Terrain', 'Fire Pledge', 'Fissure', 'Flying Press',
- 'Frenzy Plant', 'Geomancy', 'Grass Knot', 'Grass Pledge', 'Grassy Terrain', 'Gravity', 'Heat Crash', 'Heavy Slam', 'Ingrain', "Land's Wrath",
- 'Magnitude', 'Mat Block', 'Misty Terrain', 'Mud Sport', 'Muddy Water', 'Rototiller', 'Seismic Toss', 'Slam', 'Smack Down', 'Spikes',
- 'Stomp', 'Substitute', 'Surf', 'Toxic Spikes', 'Water Pledge', 'Water Sport'
- ]
- },
- {
- name: "Gen-NEXT OU",
- section: "Other Metagames",
- mod: 'gennext',
- searchShow: false,
- ruleset: ['Pokemon', 'Standard NEXT', 'Team Preview'],
- banlist: ['Uber']
- },
- {
- name: "Stat Switch",
- section: "New Other Metagames",
- column: 3,
- mod: "statswitch",
- ruleset: ['OU'],
- banlist: []
- },
- {
- name: "Reliablemons",
- section: "New Other Metagames",
- ruleset: ['Pokemon', 'Standard', 'Team Preview'],
- banlist: ['Uber', 'Soul Dew', 'Gengarite', 'Kangaskhanite', 'Lucarionite'],
- onModifyMove: function(move, pokemon) {
- var moves = pokemon.moves;
- if (move.id === moves[0]) {
- var cheese = 0;
- var crackers = true;
- } else if (move.id === moves[1] && pokemon.typesData[1]) {
- var cheese = 1;
- var crackers = true;
- } else {
- var crackers = false;
- }
- if (crackers) {
- move.type = pokemon.typesData[cheese].type;
- }
- }
- },
- {
- name: "Immunimons",
- section: "New Other Metagames",
- ruleset: ['OU'],
- banlist: [],
- onTryHit: function (target, source, move) {
- if (target === source || move.type === '???' || move.id === 'struggle') return;
- if (target.hasType(move.type)) {
- this.add('-debug','immunimons immunity [' + move.id + ']');
- return null;
- }
- },
- onDamage: function (damage, target, source, effect) {
- if ((source.hasType('Rock') && effect.id === 'stealthrock') || (source.hasType('Ground') && effect.id === 'spikes')) {
- this.add('-debug','immunimons immunity [' + effect.id + ']');
- return false;
- }
- },
- },
- {
- name: "Playstyle Reversal",
- section: "New Other Metagames",
- ruleset: ['Pokemon', 'Standard', 'Team Preview', 'Swagger Clause', 'Baton Pass Clause'],
- banlist: ['Uber', 'Soul Dew', 'Gengarite', 'Kangaskhanite', 'Lucarionite', 'Mawilite'],
- onModifyMove: function (move) {
- if (move && move.self) {
- if (move.category === "Status") {
- move.onHit = function(source) {
- return this.boost({atk: 1, spa: 1, def: -1, spd: -1});
- }
- } else {
- move.onHit = function(attacker, defender) {
- return this.boost({atk: -1, spa: -1, def: 1, spd: 1}, defender, attacker);
- }
- }
- } else if (move && move.category === "Status") {
- if (move.target === "self" && move.boosts) {
- move.self = {boosts: {atk: -1, spa: -1, def: 1, spd: 1}};
- } else {
- move.self = {boosts: {atk: 1, spa: 1, def: -1, spd: -1}};
- }
- } else if (move) {
- move.self = {boosts: {atk: -1, spa: -1, def: 1, spd: 1}};
- }
- }
- }
- ];
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement