Spaces:
Running
Running
{ | |
"version": 3, | |
"sources": ["../../../../data/mods/gen2/rulesets.ts"], | |
"sourcesContent": ["import type { Learnset } from \"../../../sim/dex-species\";\n\nexport const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = {\n\tobtainablemoves: {\n\t\tinherit: true,\n\t\tbanlist: [\n\t\t\t// https://www.smogon.com/forums/threads/implementing-all-old-gens-in-ps-testers-required.3483261/post-5420130\n\t\t\t// confirmed by Marty\n\t\t\t'Kakuna + Poison Sting + Harden', 'Kakuna + String Shot + Harden',\n\t\t\t'Beedrill + Poison Sting + Harden', 'Beedrill + String Shot + Harden',\n\n\t\t\t// https://www.smogon.com/forums/threads/rby-and-gsc-illegal-movesets.78638/\n\t\t\t'Nidoking + Fury Attack + Thrash',\n\t\t\t'Exeggutor + Poison Powder + Stomp', 'Exeggutor + Sleep Powder + Stomp', 'Exeggutor + Stun Spore + Stomp',\n\t\t\t'Eevee + Tackle + Growl',\n\t\t\t'Vaporeon + Tackle + Growl',\n\t\t\t'Jolteon + Tackle + Growl', 'Jolteon + Focus Energy + Thunder Shock',\n\t\t\t'Flareon + Tackle + Growl', 'Flareon + Focus Energy + Ember',\n\n\t\t\t// https://github.com/smogon/pokemon-showdown/pull/8869\n\t\t\t'Rapidash + Pay Day + Growl',\n\t\t\t'Rapidash + Pay Day + Tail Whip',\n\t\t\t'Fearow + Pay Day + Peck',\n\t\t\t'Fearow + Pay Day + Mirror Move',\n\t\t\t'Magikarp + Dragon Rage + Tackle',\n\t\t],\n\t},\n\tstandard: {\n\t\teffectType: 'ValidatorRule',\n\t\tname: 'Standard',\n\t\truleset: ['Obtainable', 'Sleep Clause Mod', 'Freeze Clause Mod', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Evasion Items Clause', 'Evasion Moves Clause', 'Endless battle Clause', 'HP Percentage Mod', 'Cancel Mod'],\n\t\tbanlist: [\n\t\t\t'Hypnosis + Mean Look',\n\t\t\t'Hypnosis + Spider Web',\n\t\t\t'Lovely Kiss + Mean Look',\n\t\t\t'Lovely Kiss + Spider Web',\n\t\t\t'Sing + Mean Look',\n\t\t\t'Sing + Spider Web',\n\t\t\t'Sleep Powder + Mean Look',\n\t\t\t'Sleep Powder + Spider Web',\n\t\t\t'Spore + Mean Look',\n\t\t\t'Spore + Spider Web',\n\t\t],\n\t},\n\tnc2000movelegality: {\n\t\teffectType: 'ValidatorRule',\n\t\tname: 'NC 2000 Move Legality',\n\t\tdesc: \"Prevents Pok\\u00e9mon from having moves that would only be obtainable in Pok\\u00e9mon Crystal.\",\n\t\tonValidateSet(set) {\n\t\t\tconst illegalCombos: { [speciesid: string]: { [moveid: string]: 'E' | 'L' | 'S' } } = {\n\t\t\t\tarbok: { crunch: 'E' },\n\t\t\t\tsandslash: { metalclaw: 'E' },\n\t\t\t\tgolduck: { crosschop: 'E' },\n\t\t\t\tmarowak: { swordsdance: 'E' },\n\t\t\t\telectabuzz: { crosschop: 'E' },\n\t\t\t\tmagmar: { crosschop: 'E' },\n\t\t\t\tjolteon: { batonpass: 'L' },\n\t\t\t\tvaporeon: { batonpass: 'L' },\n\t\t\t\tflareon: { batonpass: 'L' },\n\t\t\t\tespeon: { batonpass: 'L' },\n\t\t\t\tumbreon: { batonpass: 'L' },\n\t\t\t\tdragonite: { extremespeed: 'S' },\n\t\t\t\tmeganium: { swordsdance: 'E' },\n\t\t\t\ttyphlosion: { submission: 'E' },\n\t\t\t\tariados: { agility: 'L' },\n\t\t\t\tyanma: { wingattack: 'L' },\n\t\t\t\tmurkrow: { skyattack: 'E' },\n\t\t\t\tqwilfish: { spikes: 'L' },\n\t\t\t\tsneasel: { metalclaw: 'L' },\n\t\t\t\tursaring: { metalclaw: 'E' },\n\t\t\t\tpiloswine: { amnesia: 'L' },\n\t\t\t\tskarmory: { skyattack: 'E' },\n\t\t\t\tdonphan: { watergun: 'E' },\n\t\t\t\tsuicune: { aurorabeam: 'L' },\n\t\t\t\tdugtrio: { triattack: 'L' },\n\t\t\t\tmagneton: { triattack: 'L' },\n\t\t\t\tcloyster: { spikes: 'L' },\n\t\t\t};\n\n\t\t\tconst moveSources: NonNullable<Learnset['learnset']> = Object.fromEntries(\n\t\t\t\tset.moves.map(move => [this.toID(move), []])\n\t\t\t);\n\n\t\t\tconst species = this.dex.species.get(set.species);\n\t\t\tfor (const { learnset } of this.dex.species.getFullLearnset(species.id)) {\n\t\t\t\tfor (const moveid in moveSources) {\n\t\t\t\t\tmoveSources[moveid].push(...(learnset[moveid] || []));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst notUsableAsTM = ['icebeam', 'flamethrower', 'thunderbolt'];\n\t\t\tconst legalityList = illegalCombos[species.id];\n\t\t\tconst problems = [];\n\t\t\tfor (const moveid of set.moves.map(this.toID)) {\n\t\t\t\t// Diglett Magnemite Shellder\n\t\t\t\tif (!moveSources[moveid]) continue;\n\t\t\t\tif (legalityList) {\n\t\t\t\t\tconst list = moveSources[moveid].filter(x => !x.includes(legalityList[moveid]));\n\t\t\t\t\tif (!list.length) {\n\t\t\t\t\t\tswitch (legalityList[moveid]) {\n\t\t\t\t\t\tcase 'L':\n\t\t\t\t\t\t\t// Converted to a set to remove duplicate entries\n\t\t\t\t\t\t\tconst levels = new Set(moveSources[moveid].filter(x => x.includes(legalityList[moveid])).map(x => x.slice(2)));\n\t\t\t\t\t\t\tproblems.push(\n\t\t\t\t\t\t\t\t`${species.name} can't learn ${this.dex.moves.get(moveid).name}.`,\n\t\t\t\t\t\t\t\t`(It learns ${this.dex.moves.get(moveid).name} in Pok\\u00e9mon Crystal at the following levels: ${[...levels].join(', ')})`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'S':\n\t\t\t\t\t\t\tproblems.push(\n\t\t\t\t\t\t\t\t`${species.name} can't learn ${this.dex.moves.get(moveid).name}.`,\n\t\t\t\t\t\t\t\t`(It only learns ${this.dex.moves.get(moveid).name} in Pok\\u00e9mon Crystal via special in-game events.)`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'E':\n\t\t\t\t\t\t\tproblems.push(\n\t\t\t\t\t\t\t\t`${species.name} can't learn ${this.dex.moves.get(moveid).name}.`,\n\t\t\t\t\t\t\t\t`(It only learns ${this.dex.moves.get(moveid).name} as an egg move in Pok\\u00e9mon Crystal.)`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (const id of notUsableAsTM) {\n\t\t\t\t\tif (moveid === id && moveSources[id] && !moveSources[id].filter(x => !x.includes('2T')).length) {\n\t\t\t\t\t\tproblems.push(`${species.name} can't learn ${this.dex.moves.get(id).name}.`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (problems.some(x => notUsableAsTM.map(y => this.dex.moves.get(y).name).some(z => x.includes(z)))) {\n\t\t\t\tproblems.push(\n\t\t\t\t\t`(${notUsableAsTM.map(y => this.dex.moves.get(y).name).join(' / ')} aren't learnable outside of Pok\\u00e9mon Crystal.)`\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn problems;\n\t\t},\n\t},\n};\n"], | |
"mappings": "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", | |
"names": [] | |
} | |