mirror of
https://github.com/smogon/pokemon-showdown.git
synced 2026-05-02 19:47:44 -05:00
79 lines
3.3 KiB
TypeScript
79 lines
3.3 KiB
TypeScript
export const Rulesets: {[k: string]: ModdedFormatData} = {
|
|
standard: {
|
|
effectType: 'ValidatorRule',
|
|
name: 'Standard',
|
|
ruleset: ['Obtainable', 'Desync Clause Mod', 'Sleep Clause Mod', 'Freeze Clause Mod', 'Species Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod'],
|
|
banlist: ['Dig', 'Fly'],
|
|
},
|
|
nintendocup1997movelegality: {
|
|
effectType: 'ValidatorRule',
|
|
name: 'Nintendo Cup 1997 Move Legality',
|
|
desc: "Bans move combinations on Pok\u00e9mon that would only be obtainable in Pok\u00e9mon Yellow.",
|
|
onValidateSet(set) {
|
|
const rgb97Legality: {[speciesid: string]: {[moveid: string]: 'illegal' | number}} = {
|
|
charizard: {fly: 'illegal'},
|
|
butterfree: {
|
|
confusion: 12, poisonpowder: 15, stunspore: 16, sleeppowder: 17, supersonic: 21,
|
|
psybeam: 34, flash: 'illegal', gust: 'illegal',
|
|
},
|
|
fearow: {payday: 'illegal'},
|
|
pikachu: {quickattack: 16, tailwhip: 'illegal', slam: 'illegal', lightscreen: 'illegal'},
|
|
raichu: {quickattack: 16, tailwhip: 'illegal', slam: 'illegal', lightscreen: 'illegal'},
|
|
nidoranf: {doublekick: 43},
|
|
nidorina: {doublekick: 43},
|
|
nidoqueen: {doublekick: 43},
|
|
nidoranm: {doublekick: 43},
|
|
nidorino: {doublekick: 43},
|
|
nidoking: {doublekick: 43},
|
|
venonat: {poisonpowder: 24, supersonic: 'illegal', confusion: 'illegal'},
|
|
venomoth: {poisonpowder: 24, supersonic: 'illegal'},
|
|
diglett: {cut: 'illegal'},
|
|
dugtrio: {cut: 'illegal'},
|
|
psyduck: {amnesia: 'illegal'},
|
|
golduck: {amnesia: 'illegal'},
|
|
mankey: {lowkick: 'illegal', screech: 'illegal'},
|
|
primeape: {lowkick: 'illegal', screech: 'illegal'},
|
|
kadabra: {kinesis: 'illegal'},
|
|
alakazam: {kinesis: 'illegal'},
|
|
rapidash: {payday: 'illegal'},
|
|
cubone: {tailwhip: 'illegal', headbutt: 'illegal'},
|
|
marowak: {tailwhip: 'illegal', headbutt: 'illegal'},
|
|
chansey: {tailwhip: 'illegal'},
|
|
tangela: {absorb: 29, growth: 49, vinewhip: 'illegal'},
|
|
scyther: {wingattack: 'illegal'},
|
|
pinsir: {bind: 'illegal'},
|
|
magikarp: {dragonrage: 'illegal'},
|
|
eevee: {quickattack: 27, tailwhip: 31, bite: 37, growl: 'illegal', focusenergy: 'illegal'},
|
|
vaporeon: {
|
|
quickattack: 27, tailwhip: 31, watergun: 31, bite: 37, acidarmor: 42, haze: 44, mist: 48, hydropump: 54,
|
|
growl: 'illegal', focusenergy: 'illegal', aurorabeam: 'illegal',
|
|
},
|
|
jolteon: {
|
|
quickattack: 27, tailwhip: 31, thundershock: 31, bite: 37, doublekick: 42, agility: 44,
|
|
pinmissile: 48, growl: 'illegal', focusenergy: 'illegal',
|
|
},
|
|
flareon: {
|
|
quickattack: 27, tailwhip: 31, ember: 31, bite: 37, leer: 42, firespin: 44, flamethrower: 54,
|
|
growl: 'illegal', focusenergy: 'illegal', smog: 'illegal',
|
|
},
|
|
};
|
|
const species = this.dex.species.get(set.species || set.name);
|
|
const legalityList = rgb97Legality[species.id];
|
|
if (!legalityList) return;
|
|
const problems = [];
|
|
if (set.moves) {
|
|
for (const moveid of set.moves.map(this.toID)) {
|
|
if (legalityList[moveid]) {
|
|
if (legalityList[moveid] === 'illegal') {
|
|
problems.push(`${set.species} can't learn ${this.dex.moves.get(moveid).name} in 1997.`);
|
|
} else if (set.level < legalityList[moveid]) {
|
|
problems.push(`${set.species} can't learn ${this.dex.moves.get(moveid).name} before level ${legalityList[moveid]} in 1997.`);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return problems;
|
|
},
|
|
},
|
|
};
|