Files
pokemon-showdown/data/mods/gen7/rulesets.ts
Guangcong Luo 88be8d7b3c Refactor types for Lowercase<string> (#10377)
TypeScript 4.8+ supports Lowercase for lowercase strings, which isn't
exactly what ID is, but can be used to type IDs in object keys and data
entries that previously required string. I'm calling it IDEntry in places
where it should be an ID but TypeScript doesn't support that.

Very conveniently, no additional casts will be needed when using ID
where IDEntry is expected.

It's caught at least a few bugs, which is also why I'm PRing: I didn't
write the code for the bugs it found, and don't know if it's the right
way to fix them.

This ballooned into several other type refactors.
2024-07-01 15:57:14 -07:00

48 lines
2.1 KiB
TypeScript

export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = {
standard: {
inherit: true,
ruleset: ['Obtainable', 'Team Preview', 'Sleep Clause Mod', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Moody Clause', 'Evasion Items Clause', 'Evasion Moves Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod'],
},
standarddoubles: {
inherit: true,
ruleset: ['Obtainable', 'Team Preview', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Moody Clause', 'Evasion Abilities Clause', 'Evasion Moves Clause', 'Gravity Sleep Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod'],
},
obtainablemoves: {
inherit: true,
banlist: [
// Leaf Blade: Gen 6+ Nuzleaf level-up
// Sucker Punch: Gen 4 Shiftry tutor
'Shiftry + Leaf Blade + Sucker Punch',
// Aura Break Zygarde can't be changed to 10% forme in gen 7
// making moves only obtainable from gen 6 illegal
'Zygarde-10% + Aura Break + Rock Smash',
'Zygarde-10% + Aura Break + Secret Power',
'Zygarde-10% + Aura Break + Strength',
],
},
gravitysleepclause: {
effectType: 'ValidatorRule',
name: 'Gravity Sleep Clause',
desc: "Bans Gravity + sleep moves below 100% accuracy",
banlist: ['Gravity ++ Grass Whistle', 'Gravity ++ Hypnosis', 'Gravity ++ Lovely Kiss', 'Gravity ++ Sing', 'Gravity ++ Sleep Powder'],
onBegin() {
this.add('rule', 'Gravity Sleep Clause: The combination of Gravity and sleep-inducing moves with imperfect accuracy are banned');
},
},
teampreview: {
inherit: true,
onTeamPreview() {
this.add('clearpoke');
for (const pokemon of this.getAllPokemon()) {
const details = pokemon.details.replace(', shiny', '')
.replace(/(Arceus|Genesect|Gourgeist|Pumpkaboo|Xerneas|Silvally|Urshifu|Dudunsparce)(-[a-zA-Z?-]+)?/g, '$1-*')
.replace(/(Zacian|Zamazenta)(?!-Crowned)/g, '$1-*') // Hacked-in Crowned formes will be revealed
.replace(/(Greninja)(?!-Ash)/g, '$1-*'); // Hacked-in Greninja-Ash will be revealed
this.add('poke', pokemon.side.id, details, pokemon.item ? 'item' : '');
}
this.makeRequest('teampreview');
},
},
};