Spaces:
Paused
Paused
| ; | |
| var __defProp = Object.defineProperty; | |
| var __getOwnPropDesc = Object.getOwnPropertyDescriptor; | |
| var __getOwnPropNames = Object.getOwnPropertyNames; | |
| var __hasOwnProp = Object.prototype.hasOwnProperty; | |
| var __export = (target, all) => { | |
| for (var name in all) | |
| __defProp(target, name, { get: all[name], enumerable: true }); | |
| }; | |
| var __copyProps = (to, from, except, desc) => { | |
| if (from && typeof from === "object" || typeof from === "function") { | |
| for (let key of __getOwnPropNames(from)) | |
| if (!__hasOwnProp.call(to, key) && key !== except) | |
| __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); | |
| } | |
| return to; | |
| }; | |
| var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); | |
| var rulesets_exports = {}; | |
| __export(rulesets_exports, { | |
| Rulesets: () => Rulesets | |
| }); | |
| module.exports = __toCommonJS(rulesets_exports); | |
| const Rulesets = { | |
| standard: { | |
| inherit: true, | |
| ruleset: [ | |
| "Obtainable", | |
| "Team Preview", | |
| "Sleep Clause Mod", | |
| "Species Clause", | |
| "Nickname Clause", | |
| "OHKO 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", | |
| "Evasion Moves Clause", | |
| "Gravity Sleep Clause", | |
| "Endless Battle Clause", | |
| "HP Percentage Mod", | |
| "Cancel Mod" | |
| ] | |
| }, | |
| standardoms: { | |
| inherit: true, | |
| ruleset: [ | |
| "Obtainable", | |
| "Team Preview", | |
| "Species Clause", | |
| "Nickname Clause", | |
| "OHKO Clause", | |
| "Evasion Moves Clause", | |
| "Endless Battle Clause", | |
| "Dynamax Clause", | |
| "HP Percentage Mod", | |
| "Cancel Mod", | |
| "Overflow Stat Mod" | |
| ] | |
| }, | |
| teampreview: { | |
| inherit: true, | |
| onTeamPreview() { | |
| this.add("clearpoke"); | |
| for (const pokemon of this.getAllPokemon()) { | |
| const details = pokemon.details.replace(", shiny", "").replace(/(Arceus|Greninja|Gourgeist|Pumpkaboo|Xerneas|Silvally|Urshifu|Dudunsparce)(-[a-zA-Z?-]+)?/g, "$1-*").replace(/(Zacian|Zamazenta)(?!-Crowned)/g, "$1-*"); | |
| this.add("poke", pokemon.side.id, details, ""); | |
| } | |
| this.makeRequest("teampreview"); | |
| } | |
| }, | |
| tiershiftmod: { | |
| inherit: true, | |
| desc: `Pokémon below OU get their stats, excluding HP, boosted. UU/RUBL get +10, RU/NUBL get +20, NU/PUBL get +30, and PU or lower get +40.`, | |
| onModifySpecies(species, target, source, effect) { | |
| if (!species.baseStats) | |
| return; | |
| const boosts = { | |
| uu: 10, | |
| rubl: 10, | |
| ru: 20, | |
| nubl: 20, | |
| nu: 30, | |
| publ: 30, | |
| pu: 40, | |
| zubl: 40, | |
| zu: 40, | |
| nfe: 40, | |
| lc: 40 | |
| }; | |
| let tier = this.toID(species.tier); | |
| if (!(tier in boosts)) | |
| return; | |
| if (target) { | |
| if (target.set.item === "lightclay") | |
| return; | |
| if (["drizzle", "drought", "slushrush"].includes(target.set.ability) && boosts[tier] > 20) | |
| tier = "nubl"; | |
| } | |
| const pokemon = this.dex.deepClone(species); | |
| pokemon.bst = pokemon.baseStats["hp"]; | |
| const boost = boosts[tier]; | |
| let statName; | |
| for (statName in pokemon.baseStats) { | |
| if (statName === "hp") | |
| continue; | |
| pokemon.baseStats[statName] = this.clampIntRange(pokemon.baseStats[statName] + boost, 1, 255); | |
| pokemon.bst += pokemon.baseStats[statName]; | |
| } | |
| return pokemon; | |
| } | |
| }, | |
| bonustypemod: { | |
| inherit: true, | |
| desc: `Pokémon can be nicknamed the name of a type to have that type added onto their current ones.`, | |
| onBegin() { | |
| this.add("rule", "Bonus Type Mod: Pok\xE9mon can be nicknamed the name of a type to have that type added onto their current ones."); | |
| }, | |
| onModifySpecies(species, target, source, effect) { | |
| if (!target) | |
| return; | |
| if (effect && ["imposter", "transform"].includes(effect.id)) | |
| return; | |
| const typesSet = new Set(species.types); | |
| const bonusType = this.dex.types.get(target.set.name); | |
| if (bonusType.exists) | |
| typesSet.add(bonusType.name); | |
| return { ...species, types: [...typesSet] }; | |
| } | |
| }, | |
| godlygiftmod: { | |
| inherit: true, | |
| onValidateTeam(team) { | |
| const gods = /* @__PURE__ */ new Set(); | |
| for (const set of team) { | |
| let species = this.dex.species.get(set.species); | |
| if (typeof species.battleOnly === "string") | |
| species = this.dex.species.get(species.battleOnly); | |
| if (["Zacian", "Zamazenta"].includes(species.baseSpecies) && this.toID(set.item).startsWith("rusted")) { | |
| species = this.dex.species.get(set.species + "-Crowned"); | |
| } | |
| if (set.item && this.dex.items.get(set.item).megaStone) { | |
| const item = this.dex.items.get(set.item); | |
| if (item.megaEvolves === species.baseSpecies) { | |
| species = this.dex.species.get(item.megaStone); | |
| } | |
| } | |
| if (["ag", "uber"].includes(this.toID(this.ruleTable.has("standardnatdex") ? species.natDexTier : species.tier)) || this.toID(set.ability) === "powerconstruct") { | |
| gods.add(species.name); | |
| } | |
| } | |
| if (gods.size > 1) { | |
| return [`You have too many Gods.`, `(${Array.from(gods).join(", ")} are Gods.)`]; | |
| } | |
| }, | |
| onModifySpeciesPriority: 3, | |
| onModifySpecies(species, target, source) { | |
| if (source || !target?.side) | |
| return; | |
| const god = target.side.team.find((set) => { | |
| let godSpecies2 = this.dex.species.get(set.species); | |
| const isNatDex = this.format.ruleTable?.has("standardnatdex"); | |
| const validator = this.dex.formats.getRuleTable( | |
| this.dex.formats.get(`gen${this.gen}${isNatDex && this.gen >= 8 ? "nationaldex" : "ou"}`) | |
| ); | |
| if (this.toID(set.ability) === "powerconstruct") { | |
| return true; | |
| } | |
| if (set.item) { | |
| const item = this.dex.items.get(set.item); | |
| if (item.megaEvolves === set.species) | |
| godSpecies2 = this.dex.species.get(item.megaStone); | |
| if (["Zacian", "Zamazenta"].includes(godSpecies2.baseSpecies) && item.id.startsWith("rusted")) { | |
| godSpecies2 = this.dex.species.get(set.species + "-Crowned"); | |
| } | |
| } | |
| const isBanned = validator.isBannedSpecies(godSpecies2); | |
| return isBanned; | |
| }) || target.side.team[0]; | |
| const stat = Dex.stats.ids()[target.side.team.indexOf(target.set)]; | |
| const newSpecies = this.dex.deepClone(species); | |
| let godSpecies = this.dex.species.get(god.species); | |
| if (typeof godSpecies.battleOnly === "string") { | |
| godSpecies = this.dex.species.get(godSpecies.battleOnly); | |
| } | |
| newSpecies.bst -= newSpecies.baseStats[stat]; | |
| newSpecies.baseStats[stat] = godSpecies.baseStats[stat]; | |
| if (this.gen === 1 && (stat === "spa" || stat === "spd")) { | |
| newSpecies.baseStats["spa"] = newSpecies.baseStats["spd"] = godSpecies.baseStats[stat]; | |
| } | |
| newSpecies.bst += newSpecies.baseStats[stat]; | |
| return newSpecies; | |
| } | |
| } | |
| }; | |
| //# sourceMappingURL=rulesets.js.map | |