/**
 * This file contains informations about all objectives types in the game
 * They are separated in 2 arrays of objectives objects, one for mercenary camps and the other for map objectives
 */

const BRUISER = {
  type: 'Bruiser',
  initialSpawnTime: 60,
  respawnTime: 240
}
const SIEGE = {
  type: 'Siege',
  initialSpawnTime: 60,
  respawnTime: 180
}
const BOSS = {
  type: 'Boss',
  initialSpawnTime: 300,
  respawnTime: 300
}
const REWARD = {
  type: 'Reward',
  initialSpawnTime: 60,
  respawnTime: 150
}

export const CAMPS = {
  // #################### BRUISER CAMPS ####################
  shamans: {
    ...BRUISER,
    name: 'Shamans'
  },
  knights: {
    ...BRUISER,
    name: 'Knights'
  },
  goliaths: {
    ...BRUISER,
    name: 'Goliaths and Raven'
  },
  // #################### SIEGE CAMPS ####################
  gnolls: {
    ...SIEGE,
    name: 'Armored Gnolls'
  },
  troopers: {
    ...SIEGE,
    name: 'Assault Troopers'
  },
  hellbats: {
    ...SIEGE,
    name: 'Hellbats'
  },
  impalers: {
    ...SIEGE,
    name: 'Impalers'
  },
  sappers: {
    ...SIEGE,
    name: 'Sappers',
    respawnTime: 120
  },
  sentinel: {
    ...SIEGE,
    name: 'Sentinels',
    respawnTime: 150
  },
  giants: {
    ...SIEGE,
    name: 'Giants'
  },
  // #################### BOSS ####################
  archangel: {
    ...BOSS,
    name: 'Archangel',
    respawnTime: 250
  },
  graveGolem: {
    ...BOSS,
    name: 'Grave Golem'
  },
  headlessHorseman: {
    ...BOSS,
    name: 'Headless Horseman'
  },
  iceGiant: {
    ...BOSS,
    name: 'Ice Giant'
  },
  megaEnforcer: {
    ...BOSS,
    name: 'Mega Enforcer'
  },
  sandGolem: {
    ...BOSS,
    name: 'Sand Golem'
  },
  slime: {
    ...BOSS,
    name: 'Slime Boss'
  },
  // #################### REWARD CAMPS ####################
  fortifiaction: {
    ...REWARD,
    name: 'Fortification'
  },
  recon: {
    ...REWARD,
    name: 'Recon',
    respawnTime: 0
  },
  skeletalPirates: {
    ...REWARD,
    name: 'Skeletal Pirates',
    initialSpawnTime: 90
  },
  support: {
    ...REWARD,
    name: 'Support',
    respawnTime: 180
  }
}

export const MAP = {
  shrine: {
    /** Infernal Shrine */
    name: 'Shrine',
    initialSpawnTime: 180,
    respawnTime: 180
  },
  /** Battlefield of Eternity */
  immortals: {
    name: 'Immortals',
    initialSpawnTime: 105,
    respawnTime: 180
  },
  cavalryPrison: {
    /** Alterac Pass */
    name: 'Cavalry Prison',
    initialSpawnTime: 180,
    respawnTime: 180
  },
  capturePoints: {
    /** Volskaya Foundry */
    name: 'Capture Points',
    initialSpawnTime: 180,
    respawnTime: 180
  },
  altars: {
    /** Towers of Doom */
    name: 'Altars',
    initialSpawnTime: 180,
    respawnTime: 110
  },
  temples: {
    /** Sky Temples */
    name: 'Temples',
    initialSpawnTime: 180,
    respawnTime: 180
  },
  dragon: {
    /** Dragon Shire */
    name: 'Dragon',
    initialSpawnTime: 90,
    respawnTime: 180
  }
}
