package ProxyBwapi.Races

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

object Terran {
  def SCV                   = UnitClasses.get(UnitType.Terran_SCV)
  def Marine                = UnitClasses.get(UnitType.Terran_Marine)
  def Firebat               = UnitClasses.get(UnitType.Terran_Firebat)
  def Medic                 = UnitClasses.get(UnitType.Terran_Medic)
  def Ghost                 = UnitClasses.get(UnitType.Terran_Ghost)
  def Vulture               = UnitClasses.get(UnitType.Terran_Vulture)
  def SpiderMine            = UnitClasses.get(UnitType.Terran_Vulture_Spider_Mine)
  def Goliath               = UnitClasses.get(UnitType.Terran_Goliath)
  def SiegeTankUnsieged     = UnitClasses.get(UnitType.Terran_Siege_Tank_Tank_Mode)
  def SiegeTankSieged       = UnitClasses.get(UnitType.Terran_Siege_Tank_Siege_Mode)
  def Wraith                = UnitClasses.get(UnitType.Terran_Wraith)
  def Dropship              = UnitClasses.get(UnitType.Terran_Dropship)
  def Valkyrie              = UnitClasses.get(UnitType.Terran_Valkyrie)
  def ScienceVessel         = UnitClasses.get(UnitType.Terran_Science_Vessel)
  def Battlecruiser         = UnitClasses.get(UnitType.Terran_Battlecruiser)
  def NuclearMissile        = UnitClasses.get(UnitType.Terran_Nuclear_Missile)
  def CommandCenter         = UnitClasses.get(UnitType.Terran_Command_Center)
  def SupplyDepot           = UnitClasses.get(UnitType.Terran_Supply_Depot)
  def Refinery              = UnitClasses.get(UnitType.Terran_Refinery)
  def Barracks              = UnitClasses.get(UnitType.Terran_Barracks)
  def Academy               = UnitClasses.get(UnitType.Terran_Academy)
  def Bunker                = UnitClasses.get(UnitType.Terran_Bunker)
  def EngineeringBay        = UnitClasses.get(UnitType.Terran_Engineering_Bay)
  def MissileTurret         = UnitClasses.get(UnitType.Terran_Missile_Turret)
  def Factory               = UnitClasses.get(UnitType.Terran_Factory)
  def MachineShop           = UnitClasses.get(UnitType.Terran_Machine_Shop)
  def Starport              = UnitClasses.get(UnitType.Terran_Starport)
  def ControlTower          = UnitClasses.get(UnitType.Terran_Control_Tower)
  def Armory                = UnitClasses.get(UnitType.Terran_Armory)
  def ScienceFacility       = UnitClasses.get(UnitType.Terran_Science_Facility)
  def CovertOps             = UnitClasses.get(UnitType.Terran_Covert_Ops)
  def PhysicsLab            = UnitClasses.get(UnitType.Terran_Physics_Lab)
  def Comsat                = UnitClasses.get(UnitType.Terran_Comsat_Station)
  def NuclearSilo           = UnitClasses.get(UnitType.Terran_Nuclear_Silo)
  def SpellScannerSweep     = UnitClasses.get(UnitType.Spell_Scanner_Sweep)
  def WraithEnergy          = Upgrades.get(UpgradeType.Apollo_Reactor)
  def MedicEnergy           = Upgrades.get(UpgradeType.Caduceus_Reactor)
  def GoliathAirRange       = Upgrades.get(UpgradeType.Charon_Boosters)
  def BattlecruiserEnergy   = Upgrades.get(UpgradeType.Colossus_Reactor)
  def VultureSpeed          = Upgrades.get(UpgradeType.Ion_Thrusters)
  def GhostEnergy           = Upgrades.get(UpgradeType.Moebius_Reactor)
  def GhostVisionRange      = Upgrades.get(UpgradeType.Ocular_Implants)
  def BioArmor              = Upgrades.get(UpgradeType.Terran_Infantry_Armor)
  def BioDamage             = Upgrades.get(UpgradeType.Terran_Infantry_Weapons)
  def AirArmor              = Upgrades.get(UpgradeType.Terran_Ship_Plating)
  def AirDamage             = Upgrades.get(UpgradeType.Terran_Ship_Weapons)
  def MechArmor             = Upgrades.get(UpgradeType.Terran_Vehicle_Plating)
  def MechDamage            = Upgrades.get(UpgradeType.Terran_Vehicle_Weapons)
  def ScienceVesselEnergy   = Upgrades.get(UpgradeType.Titan_Reactor)
  def MarineRange           = Upgrades.get(UpgradeType.U_238_Shells)
  def ScannerSweep          = Techs.get(TechType.Scanner_Sweep)
  def WraithCloak           = Techs.get(TechType.Cloaking_Field)
  def DefensiveMatrix       = Techs.get(TechType.Defensive_Matrix)
  def EMP                   = Techs.get(TechType.EMP_Shockwave)
  def Healing               = Techs.get(TechType.Healing)
  def Irradiate             = Techs.get(TechType.Irradiate)
  def Lockdown              = Techs.get(TechType.Lockdown)
  def NuclearStrike         = Techs.get(TechType.Nuclear_Strike)
  def OpticalFlare          = Techs.get(TechType.Optical_Flare)
  def GhostCloak            = Techs.get(TechType.Personnel_Cloaking)
  def Stim                  = Techs.get(TechType.Stim_Packs)
  def Restoration           = Techs.get(TechType.Restoration)
  def Scan                  = Techs.get(TechType.Scanner_Sweep)
  def SpiderMinePlant       = Techs.get(TechType.Spider_Mines)
  def SiegeMode             = Techs.get(TechType.Tank_Siege_Mode)
  def Yamato                = Techs.get(TechType.Yamato_Gun)
}
