{
    num: 289,
    accuracy: true,
    basePower: 0,
    category: "Status",
    isNonstandard: "Past",
    name: "Snatch",
    pp: 10,
    priority: 4,
    flags: { bypasssub: 1, mustpressure: 1, noassist: 1, failcopycat: 1 },
    volatileStatus: "snatch",
    condition: {
        duration: 1,
        onStart(pokemon) {
            this.add("-singleturn", pokemon, "Snatch");
        },
        onAnyPrepareHitPriority: -1,
        onAnyPrepareHit(source, target, move) {
            const snatchUser = this.effectState.source;
            if (snatchUser.isSkyDropped())
                return;
            if (!move || move.isZ || move.isMax || !move.flags["snatch"] || move.sourceEffect === "snatch") {
                return;
            }
            snatchUser.removeVolatile("snatch");
            this.add("-activate", snatchUser, "move: Snatch", "[of] " + source);
            this.actions.useMove(move.id, snatchUser);
            return null;
        }
    },
    secondary: null,
    target: "self",
    type: "Dark",
    zMove: { boost: { spe: 2 } },
    contestType: "Clever"
}
