package ProxyBwapi.Races

import ProxyBwapi.Techs.Techs
import ProxyBwapi.UnitClasses.UnitClasses
import ProxyBwapi.Upgrades.Upgrades
import bwapi.{TechType, UnitType, UpgradeType}

object Protoss {
  def Probe               = UnitClasses.get(UnitType.Protoss_Probe)
  def Zealot              = UnitClasses.get(UnitType.Protoss_Zealot)
  def Dragoon             = UnitClasses.get(UnitType.Protoss_Dragoon)
  def HighTemplar         = UnitClasses.get(UnitType.Protoss_High_Templar)
  def Archon              = UnitClasses.get(UnitType.Protoss_Archon)
  def DarkTemplar         = UnitClasses.get(UnitType.Protoss_Dark_Templar)
  def DarkArchon          = UnitClasses.get(UnitType.Protoss_Dark_Archon)
  def Shuttle             = UnitClasses.get(UnitType.Protoss_Shuttle)
  def Reaver              = UnitClasses.get(UnitType.Protoss_Reaver)
  def Scarab              = UnitClasses.get(UnitType.Protoss_Scarab)
  def Observer            = UnitClasses.get(UnitType.Protoss_Observer)
  def Scout               = UnitClasses.get(UnitType.Protoss_Scout)
  def Corsair             = UnitClasses.get(UnitType.Protoss_Corsair)
  def Carrier             = UnitClasses.get(UnitType.Protoss_Carrier)
  def Interceptor         = UnitClasses.get(UnitType.Protoss_Interceptor)
  def Arbiter             = UnitClasses.get(UnitType.Protoss_Arbiter)
  def Nexus               = UnitClasses.get(UnitType.Protoss_Nexus)
  def Pylon               = UnitClasses.get(UnitType.Protoss_Pylon)
  def Assimilator         = UnitClasses.get(UnitType.Protoss_Assimilator)
  def Forge               = UnitClasses.get(UnitType.Protoss_Forge)
  def ShieldBattery       = UnitClasses.get(UnitType.Protoss_Shield_Battery)
  def PhotonCannon        = UnitClasses.get(UnitType.Protoss_Photon_Cannon)
  def Gateway             = UnitClasses.get(UnitType.Protoss_Gateway)
  def CyberneticsCore     = UnitClasses.get(UnitType.Protoss_Cybernetics_Core)
  def RoboticsFacility    = UnitClasses.get(UnitType.Protoss_Robotics_Facility)
  def RoboticsSupportBay  = UnitClasses.get(UnitType.Protoss_Robotics_Support_Bay)
  def Observatory         = UnitClasses.get(UnitType.Protoss_Observatory)
  def Stargate            = UnitClasses.get(UnitType.Protoss_Stargate)
  def FleetBeacon         = UnitClasses.get(UnitType.Protoss_Fleet_Beacon)
  def CitadelOfAdun       = UnitClasses.get(UnitType.Protoss_Citadel_of_Adun)
  def TemplarArchives     = UnitClasses.get(UnitType.Protoss_Templar_Archives)
  def ArbiterTribunal     = UnitClasses.get(UnitType.Protoss_Arbiter_Tribunal)
  def GroundDamage        = Upgrades.get(UpgradeType.Protoss_Ground_Weapons)
  def GroundArmor         = Upgrades.get(UpgradeType.Protoss_Ground_Armor)
  def AirDamage           = Upgrades.get(UpgradeType.Protoss_Air_Weapons)
  def AirArmor            = Upgrades.get(UpgradeType.Protoss_Air_Armor)
  def Shields             = Upgrades.get(UpgradeType.Protoss_Plasma_Shields)
  def DragoonRange        = Upgrades.get(UpgradeType.Singularity_Charge)
  def ZealotSpeed         = Upgrades.get(UpgradeType.Leg_Enhancements)
  def ShuttleSpeed        = Upgrades.get(UpgradeType.Gravitic_Drive)
  def ScarabDamage        = Upgrades.get(UpgradeType.Scarab_Damage)
  def ReaverCapacity      = Upgrades.get(UpgradeType.Reaver_Capacity)
  def ObserverSpeed       = Upgrades.get(UpgradeType.Gravitic_Boosters)
  def ObserverVisionRange = Upgrades.get(UpgradeType.Sensor_Array)
  def ScoutSpeed          = Upgrades.get(UpgradeType.Gravitic_Thrusters)
  def ScoutVisionRange    = Upgrades.get(UpgradeType.Apial_Sensors)
  def CarrierCapacity     = Upgrades.get(UpgradeType.Carrier_Capacity)
  def HighTemplarEnergy   = Upgrades.get(UpgradeType.Khaydarin_Amulet)
  def DarkArchonEnergy    = Upgrades.get(UpgradeType.Argus_Talisman)
  def CorsairEnergy       = Upgrades.get(UpgradeType.Argus_Jewel)
  def ArbiterEnergy       = Upgrades.get(UpgradeType.Khaydarin_Core)
  def PsionicStorm        = Techs.get(TechType.Psionic_Storm)
  def Hallucination       = Techs.get(TechType.Hallucination)
  def ArchonMeld          = Techs.get(TechType.Archon_Warp)
  def DarkArchonMeld      = Techs.get(TechType.Dark_Archon_Meld)
  def Feedback            = Techs.get(TechType.Feedback)
  def Maelstrom           = Techs.get(TechType.Maelstrom)
  def MindControl         = Techs.get(TechType.Mind_Control)
  def DisruptionWeb       = Techs.get(TechType.Disruption_Web)
  def Recall              = Techs.get(TechType.Recall)
  def Stasis              = Techs.get(TechType.Stasis_Field)
}



