{
    num: -32043,
    accuracy: true,
    basePower: 0,
    category: "Status",
    name: "Flood",
    pp: 15,
    priority: -6,
    flags: { protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1, noassist: 1, failcopycat: 1 },
    onHit(target, source, move) {
      let success = false;
      const removeTarget = [
        "spikes",
        "toxicspikes",
        "stealthrock",
        "stickyweb",
        "gmaxsteelsurge",
        "icespikes",
        "echoshards"
      ];
      const removeAll = [
        "spikes",
        "toxicspikes",
        "stealthrock",
        "stickyweb",
        "gmaxsteelsurge",
        "icespikes",
        "echoshards"
      ];
      for (const targetCondition of removeTarget) {
        if (target.side.removeSideCondition(targetCondition)) {
          if (!removeAll.includes(targetCondition))
            continue;
          this.add("-sideend", target.side, this.dex.conditions.get(targetCondition).name, "[from] move: Flood", "[of] " + source);
          success = true;
        }
      }
      for (const sideCondition of removeAll) {
        if (source.side.removeSideCondition(sideCondition)) {
          this.add("-sideend", source.side, this.dex.conditions.get(sideCondition).name, "[from] move: Flood", "[of] " + source);
          success = true;
        }
      }
      this.field.clearTerrain();
      return success;
    },
    forceSwitch: true,
    secondary: null,
    target: "normal",
    type: "Water",
    zMove: { boost: { spd: 1 } },
    contestType: "Cool"
}