Spaces:
Running
Running
export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = { | |
standard: { | |
effectType: 'ValidatorRule', | |
name: 'Standard', | |
ruleset: ['Obtainable', 'Desync Clause Mod', 'Sleep Clause Mod', 'Freeze Clause Mod', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod'], | |
banlist: ['Dig', 'Fly'], | |
}, | |
nc1997movelegality: { | |
effectType: 'ValidatorRule', | |
name: 'NC 1997 Move Legality', | |
desc: "Bans move combinations on Pok\u00e9mon that would only be obtainable in Pok\u00e9mon Yellow.", | |
banlist: [ | |
// https://www.smogon.com/forums/threads/rby-and-gsc-illegal-movesets.78638/ | |
// https://www.smogon.com/forums/threads/rby-tradebacks-bug-report-thread.3524844/post-9235903 | |
// Due to Yellow learnset modifications not applying, there are a few more incompatibilities than usual. | |
'Nidoking + Fury Attack + Thrash', 'Nidoking + Double Kick + Thrash', | |
'Butterfree + Tackle + Harden', 'Butterfree + String Shot + Harden', | |
'Exeggutor + Poison Powder + Stomp', 'Exeggutor + Sleep Powder + Stomp', 'Exeggutor + Stun Spore + Stomp', | |
'Eevee + Tackle + Growl', | |
'Vaporeon + Tackle + Growl', | |
'Jolteon + Tackle + Growl', 'Jolteon + Focus Energy + Thunder Shock', | |
'Flareon + Tackle + Growl', 'Flareon + Focus Energy + Ember', | |
], | |
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)) { | |
const legality = legalityList[moveid]; | |
if (legality) { | |
if (legality === 'illegal') { | |
problems.push(`${set.species} can't learn ${this.dex.moves.get(moveid).name} in 1997.`); | |
} else if (set.level < legality) { | |
problems.push(`${set.species} can't learn ${this.dex.moves.get(moveid).name} before level ${legalityList[moveid]} in 1997.`); | |
} | |
} | |
} | |
} | |
return problems; | |
}, | |
}, | |
}; | |