import { BlackOperation } from "./BlackOperation";
import { IMap } from "../types";

export const BlackOperations: IMap<BlackOperation> = {};

(function () {
  BlackOperations["Operation Typhoon"] = new BlackOperation({
    name: "Operation Typhoon",
    baseDifficulty: 2000,
    reqdRank: 2.5e3,
    rankGain: 50,
    rankLoss: 10,
    hpLoss: 100,
    weights: {
      hack: 0.1,
      str: 0.2,
      def: 0.2,
      dex: 0.2,
      agi: 0.2,
      cha: 0,
      int: 0.1,
    },
    decays: {
      hack: 0.6,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
    isKill: true,
  });
  BlackOperations["Operation Zero"] = new BlackOperation({
    name: "Operation Zero",
    baseDifficulty: 2500,
    reqdRank: 5e3,
    rankGain: 60,
    rankLoss: 15,
    hpLoss: 50,
    weights: {
      hack: 0.2,
      str: 0.15,
      def: 0.15,
      dex: 0.2,
      agi: 0.2,
      cha: 0,
      int: 0.1,
    },
    decays: {
      hack: 0.6,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
    isStealth: true,
  });
  BlackOperations["Operation X"] = new BlackOperation({
    name: "Operation X",
    baseDifficulty: 3000,
    reqdRank: 7.5e3,
    rankGain: 75,
    rankLoss: 15,
    hpLoss: 100,
    weights: {
      hack: 0.1,
      str: 0.2,
      def: 0.2,
      dex: 0.2,
      agi: 0.2,
      cha: 0,
      int: 0.1,
    },
    decays: {
      hack: 0.6,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
    isKill: true,
  });
  BlackOperations["Operation Titan"] = new BlackOperation({
    name: "Operation Titan",
    baseDifficulty: 4000,
    reqdRank: 10e3,
    rankGain: 100,
    rankLoss: 20,
    hpLoss: 100,
    weights: {
      hack: 0.1,
      str: 0.2,
      def: 0.2,
      dex: 0.2,
      agi: 0.2,
      cha: 0,
      int: 0.1,
    },
    decays: {
      hack: 0.6,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
    isKill: true,
  });
  BlackOperations["Operation Ares"] = new BlackOperation({
    name: "Operation Ares",
    baseDifficulty: 5000,
    reqdRank: 12.5e3,
    rankGain: 125,
    rankLoss: 20,
    hpLoss: 200,
    weights: {
      hack: 0,
      str: 0.25,
      def: 0.25,
      dex: 0.25,
      agi: 0.25,
      cha: 0,
      int: 0,
    },
    decays: {
      hack: 0,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
    isKill: true,
  });
  BlackOperations["Operation Archangel"] = new BlackOperation({
    name: "Operation Archangel",
    baseDifficulty: 7500,
    reqdRank: 15e3,
    rankGain: 200,
    rankLoss: 20,
    hpLoss: 25,
    weights: {
      hack: 0,
      str: 0.2,
      def: 0.2,
      dex: 0.3,
      agi: 0.3,
      cha: 0,
      int: 0,
    },
    decays: {
      hack: 0,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
    isKill: true,
  });
  BlackOperations["Operation Juggernaut"] = new BlackOperation({
    name: "Operation Juggernaut",
    baseDifficulty: 10e3,
    reqdRank: 20e3,
    rankGain: 300,
    rankLoss: 40,
    hpLoss: 300,
    weights: {
      hack: 0,
      str: 0.25,
      def: 0.25,
      dex: 0.25,
      agi: 0.25,
      cha: 0,
      int: 0,
    },
    decays: {
      hack: 0,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
    isKill: true,
  });
  BlackOperations["Operation Red Dragon"] = new BlackOperation({
    name: "Operation Red Dragon",
    baseDifficulty: 12.5e3,
    reqdRank: 25e3,
    rankGain: 500,
    rankLoss: 50,
    hpLoss: 500,
    weights: {
      hack: 0.05,
      str: 0.2,
      def: 0.2,
      dex: 0.25,
      agi: 0.25,
      cha: 0,
      int: 0.05,
    },
    decays: {
      hack: 0.6,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
    isKill: true,
  });
  BlackOperations["Operation K"] = new BlackOperation({
    name: "Operation K",
    baseDifficulty: 15e3,
    reqdRank: 30e3,
    rankGain: 750,
    rankLoss: 60,
    hpLoss: 1000,
    weights: {
      hack: 0.05,
      str: 0.2,
      def: 0.2,
      dex: 0.25,
      agi: 0.25,
      cha: 0,
      int: 0.05,
    },
    decays: {
      hack: 0.6,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
    isKill: true,
  });
  BlackOperations["Operation Deckard"] = new BlackOperation({
    name: "Operation Deckard",
    baseDifficulty: 20e3,
    reqdRank: 40e3,
    rankGain: 1e3,
    rankLoss: 75,
    hpLoss: 200,
    weights: {
      hack: 0,
      str: 0.24,
      def: 0.24,
      dex: 0.24,
      agi: 0.24,
      cha: 0,
      int: 0.04,
    },
    decays: {
      hack: 0,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
    isKill: true,
  });
  BlackOperations["Operation Tyrell"] = new BlackOperation({
    name: "Operation Tyrell",
    baseDifficulty: 25e3,
    reqdRank: 50e3,
    rankGain: 1.5e3,
    rankLoss: 100,
    hpLoss: 500,
    weights: {
      hack: 0.1,
      str: 0.2,
      def: 0.2,
      dex: 0.2,
      agi: 0.2,
      cha: 0,
      int: 0.1,
    },
    decays: {
      hack: 0.6,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
    isKill: true,
  });
  BlackOperations["Operation Wallace"] = new BlackOperation({
    name: "Operation Wallace",
    baseDifficulty: 30e3,
    reqdRank: 75e3,
    rankGain: 2e3,
    rankLoss: 150,
    hpLoss: 1500,
    weights: {
      hack: 0,
      str: 0.24,
      def: 0.24,
      dex: 0.24,
      agi: 0.24,
      cha: 0,
      int: 0.04,
    },
    decays: {
      hack: 0.6,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
    isKill: true,
  });
  BlackOperations["Operation Shoulder of Orion"] = new BlackOperation({
    name: "Operation Shoulder of Orion",
    baseDifficulty: 35e3,
    reqdRank: 100e3,
    rankGain: 2.5e3,
    rankLoss: 500,
    hpLoss: 1500,
    weights: {
      hack: 0.1,
      str: 0.2,
      def: 0.2,
      dex: 0.2,
      agi: 0.2,
      cha: 0,
      int: 0.1,
    },
    decays: {
      hack: 0.6,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
    isStealth: true,
  });
  BlackOperations["Operation Hyron"] = new BlackOperation({
    name: "Operation Hyron",
    baseDifficulty: 40e3,
    reqdRank: 125e3,
    rankGain: 3e3,
    rankLoss: 1e3,
    hpLoss: 500,
    weights: {
      hack: 0.1,
      str: 0.2,
      def: 0.2,
      dex: 0.2,
      agi: 0.2,
      cha: 0,
      int: 0.1,
    },
    decays: {
      hack: 0.6,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
    isKill: true,
  });
  BlackOperations["Operation Morpheus"] = new BlackOperation({
    name: "Operation Morpheus",
    baseDifficulty: 45e3,
    reqdRank: 150e3,
    rankGain: 4e3,
    rankLoss: 1e3,
    hpLoss: 100,
    weights: {
      hack: 0.05,
      str: 0.15,
      def: 0.15,
      dex: 0.3,
      agi: 0.3,
      cha: 0,
      int: 0.05,
    },
    decays: {
      hack: 0.6,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
    isStealth: true,
  });
  BlackOperations["Operation Ion Storm"] = new BlackOperation({
    name: "Operation Ion Storm",
    baseDifficulty: 50e3,
    reqdRank: 175e3,
    rankGain: 5e3,
    rankLoss: 1e3,
    hpLoss: 5000,
    weights: {
      hack: 0,
      str: 0.24,
      def: 0.24,
      dex: 0.24,
      agi: 0.24,
      cha: 0,
      int: 0.04,
    },
    decays: {
      hack: 0.6,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
    isKill: true,
  });
  BlackOperations["Operation Annihilus"] = new BlackOperation({
    name: "Operation Annihilus",
    baseDifficulty: 55e3,
    reqdRank: 200e3,
    rankGain: 7.5e3,
    rankLoss: 1e3,
    hpLoss: 10e3,
    weights: {
      hack: 0,
      str: 0.24,
      def: 0.24,
      dex: 0.24,
      agi: 0.24,
      cha: 0,
      int: 0.04,
    },
    decays: {
      hack: 0.6,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
    isKill: true,
  });
  BlackOperations["Operation Ultron"] = new BlackOperation({
    name: "Operation Ultron",
    baseDifficulty: 60e3,
    reqdRank: 250e3,
    rankGain: 10e3,
    rankLoss: 2e3,
    hpLoss: 10e3,
    weights: {
      hack: 0.1,
      str: 0.2,
      def: 0.2,
      dex: 0.2,
      agi: 0.2,
      cha: 0,
      int: 0.1,
    },
    decays: {
      hack: 0.6,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
    isKill: true,
  });
  BlackOperations["Operation Centurion"] = new BlackOperation({
    name: "Operation Centurion",
    baseDifficulty: 70e3,
    reqdRank: 300e3,
    rankGain: 15e3,
    rankLoss: 5e3,
    hpLoss: 10e3,
    weights: {
      hack: 0.1,
      str: 0.2,
      def: 0.2,
      dex: 0.2,
      agi: 0.2,
      cha: 0,
      int: 0.1,
    },
    decays: {
      hack: 0.6,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
  });
  BlackOperations["Operation Vindictus"] = new BlackOperation({
    name: "Operation Vindictus",
    baseDifficulty: 75e3,
    reqdRank: 350e3,
    rankGain: 20e3,
    rankLoss: 20e3,
    hpLoss: 20e3,
    weights: {
      hack: 0.1,
      str: 0.2,
      def: 0.2,
      dex: 0.2,
      agi: 0.2,
      cha: 0,
      int: 0.1,
    },
    decays: {
      hack: 0.6,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
  });
  BlackOperations["Operation Daedalus"] = new BlackOperation({
    name: "Operation Daedalus",
    baseDifficulty: 80e3,
    reqdRank: 400e3,
    rankGain: 40e3,
    rankLoss: 10e3,
    hpLoss: 100e3,
    weights: {
      hack: 0.1,
      str: 0.2,
      def: 0.2,
      dex: 0.2,
      agi: 0.2,
      cha: 0,
      int: 0.1,
    },
    decays: {
      hack: 0.6,
      str: 0.8,
      def: 0.8,
      dex: 0.8,
      agi: 0.8,
      cha: 0,
      int: 0.75,
    },
  });
})();
