{
  onPrepareHit(source, target, move) {
    if (move.hasBounced || move.flags["futuremove"] || move.sourceEffect === "snatch")
      return;
    const type = move.type;
    if (type && type !== "???" && source.getTypes().join() !== type) {
      if (!source.setType(type))
        return;
      this.add("-start", source, "typechange", type, "[from] ability: Protean");
    }
  },
  flags: {},
  name: "Protean",
  rating: 4,
  num: 168
}