pokemon-showdown/data/mods/gen1/rulesets.ts
2020-04-23 09:16:09 -07:00

28 lines
1.2 KiB
TypeScript

export const BattleFormats: {[k: string]: ModdedFormatsData} = {
standard: {
effectType: 'ValidatorRule',
name: 'Standard',
ruleset: ['Obtainable', 'Sleep Clause Mod', 'Freeze Clause Mod', 'Species Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod'],
banlist: ['Dig', 'Fly'],
},
scalemonsmod: {
effectType: 'Rule',
name: 'Scalemons Mod',
desc: "Every Pokémon's stats, barring HP, are scaled to give them a BST as close to 500 as possible",
onBegin() {
this.add('rule', 'Scalemons Mod: Every Pokemon\'s stats, barring HP, are scaled to come as close to a BST of 500 as possible');
},
onModifySpecies(species, target, source) {
const newSpecies = this.dex.deepClone(species);
newSpecies.baseStats = this.dex.deepClone(newSpecies.baseStats);
const stats: StatName[] = ['atk', 'def', 'spa', 'spe'];
const pst: number = stats.map(stat => newSpecies.baseStats[stat]).reduce((x, y) => x + y);
const scale = 500 - newSpecies.baseStats['hp'];
for (const stat of stats) {
newSpecies.baseStats[stat] = this.dex.clampIntRange(newSpecies.baseStats[stat] * scale / pst, 1, 255);
}
return newSpecies;
},
},
};