{
    num: 291,
    accuracy: 100,
    basePower: 80,
    category: "Physical",
    name: "Dive",
    pp: 10,
    priority: 0,
    flags: {
        contact: 1,
        charge: 1,
        mirror: 1,
        nonsky: 1,
        allyanim: 1,
        metronome: 1,
        nosleeptalk: 1,
        noassist: 1,
        failinstruct: 1
    },
    onTryMove(attacker, defender, move) {
        if (attacker.removeVolatile(move.id)) {
            return;
        }
        if (attacker.hasAbility("gulpmissile") && attacker.species.name === "Cramorant" && !attacker.transformed) {
            const forme = attacker.hp <= attacker.maxhp / 2 ? "cramorantgorging" : "cramorantgulping";
            attacker.formeChange(forme, move);
        }
        this.add("-prepare", attacker, move.name);
        if (!this.runEvent("ChargeMove", attacker, defender, move)) {
            return;
        }
        attacker.addVolatile("twoturnmove", defender);
        return null;
    },
    condition: {
        duration: 2,
        onImmunity(type, pokemon) {
            if (type === "sandstorm" || type === "hail")
                return false;
        },
        onInvulnerability(target, source, move) {
            if (["surf", "whirlpool"].includes(move.id)) {
                return;
            }
            return false;
        },
        onSourceModifyDamage(damage, source, target, move) {
            if (move.id === "surf" || move.id === "whirlpool") {
                return this.chainModify(2);
            }
        }
    },
    secondary: null,
    target: "normal",
    type: "Water",
    contestType: "Beautiful"
}
