Jofthomas's picture
Jofthomas HF staff
Upload 4781 files
5c2ed06 verified
"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