{
  num: -2013,
  accuracy: true,
  basePower: 0,
  category: "Status",
  name: "Streamshift",
  pp: 10,
  priority: 0,
  flags: {},
  onTryHit(source) {
    if (!this.canSwitch(source.side) || source.volatiles["commanded"]) {
      this.add("-fail", source);
      return this.NOT_FAIL;
    }
  },
  self: {
    onHit(source) {
      if (!source.side.addSlotCondition(source, "streamshift")) return;
      source.skipBeforeSwitchOutEventFlag = true;
    }
  },
  selfSwitch: true,
  condition: {
    duration: 1,
    onStart(side, source) {
      this.add("-activate", source, "move: Streamshift");
    },
    onSwitchIn(pokemon) {
      if (!pokemon.volatiles["aquaring"]) {
        pokemon.addVolatile("aquaring");
        this.add("-start", pokemon, "move: Aqua Ring", "[from] move: Streamshift");
      }
      if (pokemon.volatiles["aquaring"]) {
        pokemon.volatiles["aquaring"].duration = 3;
      }
    }
  },
  secondary: null,
  target: "self",
  type: "Water"
}
