229 lines
6.9 KiB
JavaScript
229 lines
6.9 KiB
JavaScript
"use strict";
|
|
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 abilities_exports = {};
|
|
__export(abilities_exports, {
|
|
Abilities: () => Abilities
|
|
});
|
|
module.exports = __toCommonJS(abilities_exports);
|
|
const Abilities = {
|
|
aerilate: {
|
|
inherit: true,
|
|
onModifyType(move, pokemon) {
|
|
const noModifyType = [
|
|
"judgment",
|
|
"multiattack",
|
|
"naturalgift",
|
|
"revelationdance",
|
|
"technoblast",
|
|
"terrainpulse",
|
|
"weatherball"
|
|
];
|
|
if (move.type === "Normal" && !noModifyType.includes(move.id) && !(move.isZ && move.category !== "Status") && !(move.name === "Tera Blast" && pokemon.terastallized)) {
|
|
move.typeChangerBoosted = this.effect;
|
|
}
|
|
}
|
|
},
|
|
eartheater: {
|
|
inherit: true,
|
|
onTryHit(target, source, move) {
|
|
if (target !== source && move.type === "Fighting") {
|
|
if (!this.heal(target.baseMaxhp / 4)) {
|
|
this.add("-immune", target, "[from] ability: Earth Eater");
|
|
}
|
|
return null;
|
|
}
|
|
}
|
|
},
|
|
fairyaura: {
|
|
inherit: true,
|
|
onAnyBasePower(basePower, source, target, move) {
|
|
if (target === source || move.category === "Status" || move.type !== "Psychic")
|
|
return;
|
|
if (!move.auraBooster?.hasAbility("Fairy Aura"))
|
|
move.auraBooster = this.effectState.target;
|
|
if (move.auraBooster !== this.effectState.target)
|
|
return;
|
|
return this.chainModify([move.hasAuraBreak ? 3072 : 5448, 4096]);
|
|
}
|
|
},
|
|
galewings: {
|
|
inherit: true,
|
|
onModifyPriority(priority, pokemon, target, move) {
|
|
if (move?.type === "Normal" && pokemon.hp === pokemon.maxhp)
|
|
return priority + 1;
|
|
}
|
|
},
|
|
mimicry: {
|
|
inherit: true,
|
|
onTerrainChange(pokemon) {
|
|
let types;
|
|
switch (this.field.terrain) {
|
|
case "electricterrain":
|
|
types = ["Electric"];
|
|
break;
|
|
case "grassyterrain":
|
|
types = ["Grass"];
|
|
break;
|
|
case "mistyterrain":
|
|
case "psychicterrain":
|
|
types = ["Psychic"];
|
|
break;
|
|
default:
|
|
types = pokemon.baseSpecies.types;
|
|
}
|
|
const oldTypes = pokemon.getTypes();
|
|
if (oldTypes.join() === types.join() || !pokemon.setType(types))
|
|
return;
|
|
if (this.field.terrain || pokemon.transformed) {
|
|
this.add("-start", pokemon, "typechange", types.join("/"), "[from] ability: Mimicry");
|
|
if (!this.field.terrain)
|
|
this.hint("Transform Mimicry changes you to your original un-transformed types.");
|
|
} else {
|
|
this.add("-activate", pokemon, "ability: Mimicry");
|
|
this.add("-end", pokemon, "typechange", "[silent]");
|
|
}
|
|
}
|
|
},
|
|
pixilate: {
|
|
inherit: true,
|
|
onModifyType(move, pokemon) {
|
|
const noModifyType = [
|
|
"judgment",
|
|
"multiattack",
|
|
"naturalgift",
|
|
"revelationdance",
|
|
"technoblast",
|
|
"terrainpulse",
|
|
"weatherball"
|
|
];
|
|
if (move.type === "Normal" && !noModifyType.includes(move.id) && !(move.isZ && move.category !== "Status") && !(move.name === "Tera Blast" && pokemon.terastallized)) {
|
|
move.type = "Psychic";
|
|
move.typeChangerBoosted = this.effect;
|
|
}
|
|
}
|
|
},
|
|
purifyingsalt: {
|
|
inherit: true,
|
|
onSourceModifyAtk(atk, attacker, defender, move) {
|
|
if (move.type === "Psychic") {
|
|
this.debug("Purifying Salt weaken");
|
|
return this.chainModify(0.5);
|
|
}
|
|
},
|
|
onSourceModifySpA(spa, attacker, defender, move) {
|
|
if (move.type === "Psychic") {
|
|
this.debug("Purifying Salt weaken");
|
|
return this.chainModify(0.5);
|
|
}
|
|
}
|
|
},
|
|
rattled: {
|
|
inherit: true,
|
|
onDamagingHit(damage, target, source, move) {
|
|
if (["Dark", "Grass", "Psychic"].includes(move.type)) {
|
|
this.boost({ spe: 1 });
|
|
}
|
|
}
|
|
},
|
|
refrigerate: {
|
|
inherit: true,
|
|
onModifyType(move, pokemon) {
|
|
const noModifyType = [
|
|
"judgment",
|
|
"multiattack",
|
|
"naturalgift",
|
|
"revelationdance",
|
|
"technoblast",
|
|
"terrainpulse",
|
|
"weatherball"
|
|
];
|
|
if (move.type === "Normal" && !noModifyType.includes(move.id) && !(move.isZ && move.category !== "Status") && !(move.name === "Tera Blast" && pokemon.terastallized)) {
|
|
move.type = "Water";
|
|
move.typeChangerBoosted = this.effect;
|
|
}
|
|
}
|
|
},
|
|
rockypayload: {
|
|
inherit: true,
|
|
onModifyAtk(atk, attacker, defender, move) {
|
|
if (move.type === "Fighting") {
|
|
this.debug("Rocky Payload boost");
|
|
return this.chainModify(1.5);
|
|
}
|
|
},
|
|
onModifySpA(atk, attacker, defender, move) {
|
|
if (move.type === "Fighting") {
|
|
this.debug("Rocky Payload boost");
|
|
return this.chainModify(1.5);
|
|
}
|
|
}
|
|
},
|
|
sandforce: {
|
|
inherit: true,
|
|
onBasePower(basePower, attacker, defender, move) {
|
|
if (this.field.isWeather("sandstorm")) {
|
|
if (move.type === "Fighting" || move.type === "Steel") {
|
|
this.debug("Sand Force boost");
|
|
return this.chainModify([5325, 4096]);
|
|
}
|
|
}
|
|
}
|
|
},
|
|
swarm: {
|
|
inherit: true,
|
|
onModifyAtk(atk, attacker, defender, move) {
|
|
if (move.type === "Grass" && attacker.hp <= attacker.maxhp / 3) {
|
|
this.debug("Swarm boost");
|
|
return this.chainModify(1.5);
|
|
}
|
|
},
|
|
onModifySpA(atk, attacker, defender, move) {
|
|
if (move.type === "Grass" && attacker.hp <= attacker.maxhp / 3) {
|
|
this.debug("Swarm boost");
|
|
return this.chainModify(1.5);
|
|
}
|
|
}
|
|
},
|
|
thickfat: {
|
|
inherit: true,
|
|
onSourceModifyAtk(atk, attacker, defender, move) {
|
|
if (move.type === "Water" || move.type === "Fire") {
|
|
this.debug("Thick Fat weaken");
|
|
return this.chainModify(0.5);
|
|
}
|
|
},
|
|
onSourceModifySpA(atk, attacker, defender, move) {
|
|
if (move.type === "Water" || move.type === "Fire") {
|
|
this.debug("Thick Fat weaken");
|
|
return this.chainModify(0.5);
|
|
}
|
|
}
|
|
},
|
|
mountaineer: {
|
|
inherit: true,
|
|
onTryHit(target, source, move) {
|
|
if (move.type === "Fighting" && !target.activeTurns) {
|
|
this.add("-immune", target, "[from] ability: Mountaineer");
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
//# sourceMappingURL=abilities.js.map
|