{
    onTryHitPriority: 1,
    onTryHit(target, source, move) {
      if (target === source || move.hasBounced || !move.flags["light"]) {
        return;
      }
      const newMove = this.dex.getActiveMove(move.id);
      newMove.hasBounced = true;
      newMove.pranksterBoosted = false;
      this.actions.useMove(newMove, target, source);
      return null;
    },
    onAllyTryHitSide(target, source, move) {
      if (target.isAlly(source) || move.hasBounced || !move.flags["light"]) {
        return;
      }
      const newMove = this.dex.getActiveMove(move.id);
      newMove.hasBounced = true;
      newMove.pranksterBoosted = false;
      this.actions.useMove(newMove, this.effectState.target, source);
      return null;
    },
    onChargeMove(pokemon, target, move) {
    	if (move.hasBounced) {
    		this.debug('reflector - remove charge turn for ' + move.id);
    		this.attrLastMove('[still]');
    		this.addMove('-anim', pokemon, move.name, target);
    		return false;
    	}
    },
    onModifyMove(move) {
      if (move.hasBounced && move.flags["recharge"])
        delete move.flags["recharge"];
        delete move.self;
    },
    condition: {
      duration: 1
    },
    flags: { breakable: 1 },
    name: "Reflector",
    rating: 2.5,
    num: -32112
}