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 conditions_exports = {};
__export(conditions_exports, {
Conditions: () => Conditions
});
module.exports = __toCommonJS(conditions_exports);
const Conditions = {
brn: {
inherit: true,
onResidualOrder: 10,
onResidualSubOrder: 6
},
par: {
inherit: true,
onModifySpe(spe, pokemon) {
if (!pokemon.hasAbility("quickfeet")) {
return this.chainModify(0.25);
}
return spe;
},
onBeforeMove(pokemon) {
if (!pokemon.hasAbility("magicguard") && this.randomChance(1, 4)) {
this.add("cant", pokemon, "par");
return false;
}
}
},
slp: {
name: "slp",
effectType: "Status",
onStart(target, source, sourceEffect) {
if (sourceEffect && sourceEffect.effectType === "Move") {
this.add("-status", target, "slp", `[from] move: ${sourceEffect.name}`);
} else {
this.add("-status", target, "slp");
}
this.effectState.time = this.random(2, 6);
if (target.removeVolatile("nightmare")) {
this.add("-end", target, "Nightmare", "[silent]");
}
},
onBeforeMovePriority: 10,
onBeforeMove(pokemon, target, move) {
if (pokemon.hasAbility("earlybird")) {
pokemon.statusState.time--;
}
pokemon.statusState.time--;
if (pokemon.statusState.time <= 0) {
pokemon.cureStatus();
return;
}
this.add("cant", pokemon, "slp");
if (move.sleepUsable) {
return;
}
return false;
}
},
psn: {
inherit: true,
onResidualOrder: 10,
onResidualSubOrder: 6
},
tox: {
inherit: true,
onResidualOrder: 10,
onResidualSubOrder: 6
},
confusion: {
inherit: true,
onBeforeMove(pokemon) {
pokemon.volatiles["confusion"].time--;
if (!pokemon.volatiles["confusion"].time) {
pokemon.removeVolatile("confusion");
return;
}
this.add("-activate", pokemon, "confusion");
if (this.randomChance(1, 2)) {
return;
}
const damage = this.actions.getDamage(pokemon, pokemon, 40);
if (typeof damage !== "number")
throw new Error("Confusion damage not dealt");
this.damage(damage, pokemon, pokemon, {
id: "confused",
effectType: "Move",
type: "???"
});
return false;
}
},
frz: {
inherit: true,
onBeforeMove(pokemon, target, move) {
if (this.randomChance(1, 5)) {
pokemon.cureStatus();
return;
}
if (move.flags["defrost"])
return;
this.add("cant", pokemon, "frz");
return false;
}
},
substitutebroken: {
noCopy: true
},
trapped: {
inherit: true,
noCopy: false
},
trapper: {
inherit: true,
noCopy: false
},
partiallytrapped: {
inherit: true,
durationCallback(target, source) {
if (source.hasItem("gripclaw"))
return 6;
return this.random(3, 7);
},
onResidualOrder: 10,
onResidualSubOrder: 9
},
choicelock: {
inherit: true,
onStart(pokemon) {
if (!pokemon.lastMove)
return false;
this.effectState.move = pokemon.lastMove.id;
}
},
futuremove: {
inherit: true,
onResidualOrder: 11
},
stall: {
// In gen 3-4, the chance of protect succeeding does not fall below 1/8.
// See http://upokecenter.dreamhosters.com/dex/?lang=en&move=182
inherit: true,
counterMax: 8
},
raindance: {
inherit: true,
onFieldResidualOrder: 8
},
sunnyday: {
inherit: true,
onFieldResidualOrder: 8
},
sandstorm: {
inherit: true,
onFieldResidualOrder: 8
},
hail: {
inherit: true,
onFieldResidualOrder: 8
},
// Arceus's true typing for all its formes is Normal, and it's only Multitype
// that changes its type, but its formes are specified to be their corresponding
// type in the Pokedex, so that needs to be overridden. Without Multitype it
// starts as Normal type, but its type can be changed by other effects.
// This is mainly relevant for Hackmons Cup and Balanced Hackmons.
arceus: {
name: "Arceus",
onBeforeSwitchIn(pokemon) {
pokemon.setType("Normal");
},
onSwitchIn(pokemon) {
if (pokemon.ability === "multitype") {
const item = pokemon.getItem();
const targetForme = item?.onPlate ? "Arceus-" + item.onPlate : "Arceus";
if (pokemon.species.name !== targetForme) {
pokemon.formeChange(targetForme);
}
}
}
}
};
//# sourceMappingURL=conditions.js.map