;----------------------------------------------------------------------------
;|  Build.txt ---- This file defines all buildings in the game.             |
;----------------------------------------------------------------------------

; Sample Building Type Definition
;
;DefineBuildingType(building_identifier)
;{
;  SetBuildingImages(i1.spr i2.spr i3.spr)   ;; Building Images
;  SetDescription(description)               ;; Description of the building
;  SetRequirements {                         ;; Requirements to create this building
;    SetType(1)                              ;; Prerequisite type of this building (0 is reserved, don't use it!)
;    SetPrereqs(2 3 4)                       ;; Prerequisites to build this building type
;    SetMaker(5 6)                           ;; Prereq types of units which can build this building type
;    SetEquivalence(1000)                    ;; Equivalency id to which this building belongs (optional)
;  }
;  SetEfficiencyResource{                    ;; Efficiency based upon resources
;    (10 0)                                  ;; ( Efficiency @ Resource ) Lower End
;    (100 90)                                ;; ( Efficiency @ Resource ) Top End
;  }
;  NeedResource(2 10)                       ;; Needs 10 units of resource 2 to function
;  SetSide(0)                                ;; Side of this Building type
;  SetCPULoad(10)                            ;; Load this Building type places on the CPU
;  SetBay(2 2)                               ;; Location of the Bay in this building type
;  SetRepairCost(50 10)                      ;; The cost of repairing this building type
;  SetHitpoints(1800 1)                      ;; The maximum hitpoints of this building type
;  SetSeeingRange(12)                        ;; Radius in tiles for a building to see
;  SetSeeingHeight(1)                        ;; Height for a building to see from
;  SetCost(4000 40)                          ;; Cost of construction and time it takes to build
;  SetSell(3000 30)                          ;; Maximum price for selling and the time it takes to sell
;  CanMake()                                 ;; This building can make units
;  MakesCrater(2)                            ;; The crater made when this building gets destroyed
;  SetVulnerability(BuildingArmour 100)      ;; The armour class of this building
;  SetHealthExplosion(75 building_stage1_explosion) ;; The explosion/smoke/flames for various stages of health
;  SetHealthExplosion(50 building_stage2_explosion)
;  SetHealthExplosion(25 building_stage3_explosion)
;  SetHealthExplosion(0  building_death_explosion)
;  SetGroup {                                ;; DO NOT SPECIFY THE SAME MASK BIT IN BOTH!! ONLY PUT IN LARGEST RADIUS
;    MaskGivenA   (number)                   ;; The first mask
;    RadiusGivenA (number)                   ;; radius of first supplied mask
;    MaskGivenB   (number)                   ;; The second mask (0 if not used.)
;    RadiusGivenB (number)                   ;; Radius of the second mask (0 if not used.)
;  }
;  SetForbiddenRange (range_tiles)           ;; how close in tiles this building may be built to a non allied building
;  SetForbiddenException()                   ;; this building type is excluded from above calculations
;}

;-----------------------------
;  FREEDOM GUARD BUILDINGS   |
;-----------------------------

;; Freedom Guard HEADQUARTERS LEVEL 1

DefineBuildingType(fh1)
{
  SetBuildingImages(nfhqt1l0.spr tfhqt1l0.spr bfhqtmn0.spr)
  SetDescription(FG_Headquarters_1)
  SetRequirements {
    SetType(10001)
    SetPrereqs()
    SetMaker(11)
    SetEquivalence(1000)
    SetTechLevel(40)
  }
  SetEfficiencyResource {
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
;  SetEquivalentBuilding(ih1)
;  NeedResource(2 0)
  SetSide(0)
  SetBay(2 3)
  SetRepairCost(1 1)
  SetHitpoints(1200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(75 2)
  SetSell(40 1)
  CanMake()
  MakesCrater(4)
  GivesMiniMap()
  SetShadowImage(bfhqtsh0.spr)
  SetTransportUnit(FGBaseMover 2 3)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 headquarter_80_explosion)
  SetHealthExplosion(60 headquarter_60_explosion)
  SetHealthExplosion(33 headquarter_33_explosion)
  SetHealthExplosion(0 headquarter_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}

;; FREEDOM GUARD HEADQUARTERS LEVEL 2

DefineBuildingType(fh2)
{
  SetBuildingImages(nfhqt2l0.spr tfhqt2l0.spr bfhqtmn1.spr)
  SetDescription(FG_Headquarters_2)
  SetRequirements {
    SetType(10002)
    SetPrereqs(10001)
    SetMaker()
    SetEquivalence(1001)
    SetTechLevel(50)
  }
  SetEfficiencyResource {
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
;  NeedResource(2 0)
  IsUpgradeOf(fh1)
;  SetEquivalentBuilding(ih2)
  SetSide(0)
  SetBay(2 3)
  SetRepairCost(1 1)
  SetHitpoints(2400 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(100 3)
  SetSell(50 2)
  CanMake()
  MakesCrater(4)
  GivesMiniMap()
  SetShadowImage(bfhqtsh1.spr)
  SetTransportUnit(FGBaseMover 3 6)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 headquarter_80_explosion)
  SetHealthExplosion(60 headquarter_60_explosion)
  SetHealthExplosion(33 headquarter_33_explosion)
  SetHealthExplosion(0 headquarter_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}

;; FREEDOM GUARD HEADQUARTERS LEVEL 3

DefineBuildingType(fh3)
{
  SetBuildingImages(nfhqt3l0.spr tfhqt3l0.spr bfhqtmn2.spr)
  SetDescription(FG_Headquarters_3)
  SetRequirements {
    SetType(10003)
    SetPrereqs(10002)
    SetMaker()
    SetEquivalence(1002)
    SetTechLevel(70)
  }
  SetEfficiencyResource {
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
  IsUpgradeOf(fh2)
;  SetEquivalentBuilding(ih3)
;  NeedResource(2 0)
  SetSide(0)
  SetBay(2 3)
  SetRepairCost(1 1)
  SetHitpoints(3600 1)
  SetSeeingRange(16)
  SetSeeingHeight(1)
  SetCost(125 4)
  SetSell(63 2)
  CanMake()
  MakesCrater(4)
  GivesMiniMap()
  SetShadowImage(bfhqtsh2.spr)
  SetTransportUnit(FGBaseMover 3 6)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 headquarter_80_explosion)
  SetHealthExplosion(60 headquarter_60_explosion)
  SetHealthExplosion(33 headquarter_33_explosion)
  SetHealthExplosion(0 headquarter_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}

;; FREEDOM GUARD Repair Station

DefineBuildingType(fgre)
{
  SetBuildingImages(nfrep1l0.spr tfrep1l0.spr bfrepmn0.spr)
  SetDescription(Repair_Station)
  SetRequirements {
    SetType(10009)
    SetPrereqs(10001)
    SetMaker(11)
    SetEquivalence(1016)
    SetTechLevel(40)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
;  NeedResource(2 0)
  SetSide(0)
;  SetEquivalentBuilding(impre)
  SetBay(2 2)
  SetRepairCost(1 1)
  SetHitpoints(600 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(80 2)
  SetSell(40 1)
  CanRepair()
  MakesCrater(3)
  SetShadowImage(bfrepsh0.spr)
  SetRepairAnimation(3)
  SetIdleAnimation(4)
  SetTransportUnit(FGBaseMover 2 3)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 building_80_explosion)
  SetHealthExplosion(60 building_60_explosion)
  SetHealthExplosion(33 building_33_explosion)
  SetHealthExplosion(0 building_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}

;; FREEDOM GUARD Rearming Deck;

DefineBuildingType(fgar)
{
  SetBuildingImages(nfrrm1l0.spr tfrrm1l0.spr bfrrmmn0.spr)
  SetDescription(Rearming_Deck)
  SetRequirements {
    SetType(10011)
    SetPrereqs(10003)
    SetMaker(11)
    SetEquivalence(1011)
    SetTechLevel(70)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
;  NeedResource(2 0)
  SetSide(0)
;  SetEquivalentBuilding(impar)
  SetBay(1 1)
  SetRepairCost(1 1)
  SetHitpoints(800 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(100 3)
  SetSell(50 2)
  CanRearmFlyer()
  MakesCrater(1)
  SetShadowImage(bfrrmsh0.spr)
  SetRearmAnimation(3)
  SetIdleAnimation(4)
  SetTransportUnit(FGBaseMover 2 3)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 building_80_explosion)
  SetHealthExplosion(60 building_60_explosion)
  SetHealthExplosion(33 building_33_explosion)
  SetHealthExplosion(0 building_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
  SetForbiddenRange (9)
}

;; FREEDOM GUARD Temporal Gate

DefineBuildingType(fgt)
{
  SetBuildingImages(nitgt1l0.spr titgt1l0.spr bitgtmn0.spr)
  SetDescription(Imp_Temporal_Gate)
  SetRequirements {
    SetType(10008)
    SetPrereqs(10002)
    SetMaker(11)
    SetTechLevel(50)
  }
  SetEfficiencyResource{
    (0 50)
    (100 90)
  }
  SetSide(0)
;  SetEquivalentBuilding(ft2)
  SetBay(1 1)
  SetRepairCost(1 1)
  SetHitpoints(1000 1)
  SetSeeingRange(8)
  SetShadowImage(bitgtsh0.spr)
  SetIdleAnimation(4)
  SetSeeingHeight(1)
  SetCost(180 5)
  SetSell(90 3)
  SetRooms(5 100)
  IsTeleport(6 electric_blue_explosion)
  MakesCrater(1)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 building_80_explosion)
  SetHealthExplosion(60 building_60_explosion)
  SetHealthExplosion(33 building_33_explosion)
  SetHealthExplosion(0 building_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}



;-------------------------
;  IMPERIUM BUILDINGS   |
;-------------------------

;; IMPERIUM Headquarters 1

DefineBuildingType(ih1)
{
  SetBuildingImages(nihqt1l0.spr tihqt1l0.spr bihqtmn0.spr)
  SetDescription(Imp_Headquarters_1)
  SetRequirements {
    SetType(11001)
    SetPrereqs()
    SetMaker(1005)
    SetEquivalence(1000)
    SetTechLevel(40)
  }
  SetEfficiencyResource{
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
;  NeedResource(2 0)
  SetSide(1)
;  SetEquivalentBuilding(fh1)
  SetBay(2 4)
  SetRepairCost(1 1)
  SetHitpoints(1440 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(75 2)
  SetSell(40 1)
  SetShadowImage(bihqtsh0.spr)
  CanMake()
  MakesCrater(4)
  GivesMiniMap()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 headquarter_80_explosion)
  SetHealthExplosion(60 headquarter_60_explosion)
  SetHealthExplosion(33 headquarter_33_explosion)
  SetHealthExplosion(0 headquarter_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}

;; IMPERIUM Headquarters 2

DefineBuildingType(ih2)
{
  SetBuildingImages(nihqt2l0.spr tihqt2l0.spr bihqtmn1.spr)
  SetDescription(Imp_Headquarters_2)
  SetRequirements {
    SetType(11002)
    SetPrereqs(11001)
    SetMaker()
    SetEquivalence(1001)
    SetTechLevel(50)
  }
  SetEfficiencyResource{
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
  IsUpgradeOf(ih1)
;  NeedResource(2 0)
  SetSide(1)
;  SetEquivalentBuilding(fh2)
  SetBay(2 4)
  SetRepairCost(1 1)
  SetHitpoints(2880 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(100 3)
  SetShadowImage(bihqtsh1.spr)
  SetSell(50 2)
  CanMake()
  MakesCrater(4)
  GivesMiniMap()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 headquarter_80_explosion)
  SetHealthExplosion(60 headquarter_60_explosion)
  SetHealthExplosion(33 headquarter_33_explosion)
  SetHealthExplosion(0 headquarter_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}

;; IMPERIUM Headquarters 3

DefineBuildingType(ih3)
{
  SetBuildingImages(nihqt3l0.spr tihqt3l0.spr bihqtmn2.spr)
  SetDescription(Imp_Headquarters_3)
  SetRequirements {
    SetType(11003)
    SetPrereqs(11002)
    SetMaker()
    SetEquivalence(1002)
    SetTechLevel(70)
  }
  SetEfficiencyResource{
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
  IsUpgradeOf(ih2)
;  NeedResource(2 0)
  SetSide(1)
;  SetEquivalentBuilding(fh3)
  SetBay(2 4)
  SetRepairCost(1 1)
  SetHitpoints(4330 1)
  SetSeeingRange(16)
  SetSeeingHeight(1)
  SetCost(125 4)
  SetSell(63 2)
  SetShadowImage(bihqtsh2.spr)
  CanMake()
  MakesCrater(4)
  GivesMiniMap()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 headquarter_80_explosion)
  SetHealthExplosion(60 headquarter_60_explosion)
  SetHealthExplosion(33 headquarter_33_explosion)
  SetHealthExplosion(0 headquarter_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}

;; IMPERIUM Repair Bay

DefineBuildingType(impre)
{
  SetBuildingImages(nirep1l0.spr tirep1l0.spr birepmn0.spr)
  SetDescription(Repair_Station)
  SetRequirements {
    SetType(11010)
    SetPrereqs(11001)
    SetMaker(1005)
    SetEquivalence(1016)
    SetTechLevel(40)
  }
;  NeedResource(2 0)
  SetSide(1)
;  SetEquivalentBuilding(fgre)
  SetBay(1 2)
  SetRepairCost(1 1)
  SetHitpoints(720 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(80 2)
  SetSell(40 1)
  CanRepair()
  SetShadowImage(birepsh0.spr)
  SetRepairAnimation(3)
  MakesCrater(3)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 building_80_explosion)
  SetHealthExplosion(60 building_60_explosion)
  SetHealthExplosion(33 building_33_explosion)
  SetHealthExplosion(0 building_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}

;; IMPERIUM Temporal Gate

DefineBuildingType(it)
{
  SetBuildingImages(nitgt1l0.spr titgt1l0.spr bitgtmn0.spr)
  SetDescription(Imp_Temporal_Gate)
  SetRequirements {
    SetType(11008)
    SetPrereqs(11002)
    SetMaker(1005)
    SetTechLevel(50)
  }
  SetEfficiencyResource{
    (0 50)
    (100 90)
  }
  SetSide(1)
;  SetEquivalentBuilding(ft2)
  SetBay(1 1)
  SetRepairCost(1 1)
  SetHitpoints(1000 1)
  SetSeeingRange(8)
  SetShadowImage(bitgtsh0.spr)
  SetIdleAnimation(4)
  SetSeeingHeight(1)
  SetCost(180 5)
  SetSell(90 3)
  SetRooms(5 100)
  IsTeleport(6 electric_blue_explosion)
  MakesCrater(1)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 building_80_explosion)
  SetHealthExplosion(60 building_60_explosion)
  SetHealthExplosion(33 building_33_explosion)
  SetHealthExplosion(0 building_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}

;; IMPERIUM Landing Deck

DefineBuildingType(impar)
{
  SetBuildingImages(nirrm1l0.spr tirrm1l0.spr birrmmn0.spr)
  SetDescription(Rearming_Deck)
  SetRequirements {
    SetType(11012)
    SetPrereqs(11003)
    SetMaker(1005)
    SetEquivalence(1011)
    SetTechLevel(70)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
;  NeedResource(2 0)
  SetSide(1)
;  SetEquivalentBuilding(fgar)
  SetBay(1 0)
  SetRepairCost(1 1)
  SetHitpoints(960 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(100 3)
  SetSell(50 2)
  SetShadowImage(birrmsh0.spr)
  SetRearmAnimation(3)
  SetIdleAnimation(3)
  CanRearmFlyer()
  MakesCrater(1)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 building_80_explosion)
  SetHealthExplosion(60 building_60_explosion)
  SetHealthExplosion(33 building_33_explosion)
  SetHealthExplosion(0 building_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
  SetForbiddenRange (9)
}


;-----------------------------
;  TOGRA                     |
;-----------------------------

;; TOGRAN FG HEADQUARTERS LEVEL 1

DefineBuildingType(tfh1)
{
  SetBuildingImages(nfhqt1l0.spr tfhqt1l0.spr bfhqtmn0.spr)
  SetDescription(Togran_Headquarters_1)
  SetRequirements {
    SetType(40004)
    SetPrereqs()
    SetMaker(40500)
    SetEquivalence(2001)
    SetTechLevel(40)
  }
  SetEfficiencyResource {
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
;  SetEquivalentBuilding(ih1)
  NeedResource(2 100)
  SetSide(3)
  SetBay(2 3)
  SetRepairCost(10 8)
  SetHitpoints(1200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  CanMake()
  MakesCrater(4)
  GivesMiniMap()
  SetShadowImage(bfhqtsh0.spr)
  SetTransportUnit(FGBaseMover 2 3)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 headquarter_80_explosion)
  SetHealthExplosion(60 headquarter_60_explosion)
  SetHealthExplosion(33 headquarter_33_explosion)
  SetHealthExplosion(0 headquarter_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}
;-----------------------
;  GENERAL BUILDINGS   |
;-----------------------

;; Common Water Well

DefineBuildingType(impww)
{
  SetBuildingImages(ncwel1l0.spr tcwel1l0.spr bcwelmn0.spr)
  SetDescription(Water_Extractor)
  SetRequirements {
    SetType(14005)
    SetPrereqs()
    SetMaker()
;    SetEquivalence(1010)
  }
  SetEfficiencyResource{
    (100 0)
    (100 90)
  }
  SetSide(2)
  SetBay(1 1)
  SetRepairCost(10 0)
  SetResource(0 20 10000 10000)
  SetHitpoints(500 1)
  SetSeeingRange(0)
  SetSeeingHeight(1)
  SetCost(20000 60)
;  SetShadowImage(bcwelsh0.spr)
  SetSell(1000 30)
  MakesCrater(10)
  SetVulnerability(SuperArmour 100)
  SetHealthExplosion(99 wco1_explosion)
  SetHealthExplosion(50 wco2_explosion)
  SetHealthExplosion(0 wco3_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
  SetForbiddenException()
}

;; Common Taelon Mine

DefineBuildingType(impmn)
{
  SetBuildingImages(ncmin1l0.spr tcmin1l0.spr bcminmn0.spr)
  SetDescription(Taelon_Extractor)
  SetRequirements {
    SetType(14006)
    SetPrereqs()
    SetMaker()
    SetEquivalence(1009)
  }
  SetEfficiencyResource {
    (100 0)
    (100 90)
  }
  SetSide(2)
  SetBay(1 1)
  SetResource(1 1 500 40)
  SetRepairCost(10 8)
  SetHitpoints(600 1)
  SetSeeingRange(0)
  SetSeeingHeight(1)
  SetCost(12000 18)
  SetSell(600 9)
;  SetShadowImage(bcminsh0.spr)
  SetVulnerability(SuperArmour2 100)
  SetHealthExplosion(80 building_80_explosion)
  SetHealthExplosion(60 building_60_explosion)
  SetHealthExplosion(33 building_33_explosion)
  SetHealthExplosion(0 building_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
  SetForbiddenException()
}

;-----------------------------
;  FREEDOM GUARD XENITE BUILDINGS   |
;-----------------------------

;; Freedom Guard HEADQUARTERS LEVEL 1

DefineBuildingType(fxh1)
{
  SetBuildingImages(nfhqt1l0.spr tfhqt1l0.spr bfhqtmn0.spr)
  SetDescription(FG_Headquarters_1)
  SetRequirements {
    SetType(20001)
    SetPrereqs()
    SetMaker(21011)
    SetEquivalence(1000)
    SetTechLevel(40)
  }
  SetEfficiencyResource {
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
;  SetEquivalentBuilding(ih1)
;  NeedResource(2 0)
  SetSide(4)
  SetBay(2 3)
  SetRepairCost(1 1)
  SetHitpoints(1200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(75 2)
  SetSell(38 1)
  CanMake()
  MakesCrater(4)
  GivesMiniMap()
  SetShadowImage(bfhqtsh0.spr)
  SetTransportUnit(FGBaseMover 2 3)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 headquarter_80_explosion)
  SetHealthExplosion(60 headquarter_60_explosion)
  SetHealthExplosion(33 headquarter_33_explosion)
  SetHealthExplosion(0 headquarter_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}

;; FREEDOM GUARD HEADQUARTERS LEVEL 2

DefineBuildingType(fxh2)
{
  SetBuildingImages(nfhqt2l0.spr tfhqt2l0.spr bfhqtmn1.spr)
  SetDescription(FG_Headquarters_2)
  SetRequirements {
    SetType(20002)
    SetPrereqs(20001)
    SetMaker()
    SetEquivalence(1001)
    SetTechLevel(50)
  }
  SetEfficiencyResource {
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
;  NeedResource(2 0)
  IsUpgradeOf(fxh1)
;  SetEquivalentBuilding(ih2)
  SetSide(4)
  SetBay(2 3)
  SetRepairCost(1 1)
  SetHitpoints(2400 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(100 3)
  SetSell(50 2)
  CanMake()
  MakesCrater(4)
  GivesMiniMap()
  SetShadowImage(bfhqtsh1.spr)
  SetTransportUnit(FGBaseMover 3 6)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 headquarter_80_explosion)
  SetHealthExplosion(60 headquarter_60_explosion)
  SetHealthExplosion(33 headquarter_33_explosion)
  SetHealthExplosion(0 headquarter_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}

;; FREEDOM GUARD HEADQUARTERS LEVEL 3

DefineBuildingType(fxh3)
{
  SetBuildingImages(nfhqt3l0.spr tfhqt3l0.spr bfhqtmn2.spr)
  SetDescription(FG_Headquarters_3)
  SetRequirements {
    SetType(20003)
    SetPrereqs(20002)
    SetMaker()
    SetEquivalence(1002)
    SetTechLevel(70)
  }
  SetEfficiencyResource {
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
  IsUpgradeOf(fxh2)
;  SetEquivalentBuilding(ih3)
;  NeedResource(2 0)
  SetSide(4)
  SetBay(2 3)
  SetRepairCost(1 1)
  SetHitpoints(3600 1)
  SetSeeingRange(16)
  SetSeeingHeight(1)
  SetCost(125 4)
  SetSell(63 2)
  CanMake()
  MakesCrater(4)
  GivesMiniMap()
  SetShadowImage(bfhqtsh2.spr)
  SetTransportUnit(FGBaseMover 3 6)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 headquarter_80_explosion)
  SetHealthExplosion(60 headquarter_60_explosion)
  SetHealthExplosion(33 headquarter_33_explosion)
  SetHealthExplosion(0 headquarter_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}


;; FREEDOM GUARD Repair Station

DefineBuildingType(fgxre)
{
  SetBuildingImages(nfrep1l0.spr tfrep1l0.spr bfrepmn0.spr)
  SetDescription(Repair_Station)
  SetRequirements {
    SetType(20009)
    SetPrereqs(20001)
    SetMaker(21011)
    SetEquivalence(1016)
    SetTechLevel(40)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
;  NeedResource(2 0)
  SetSide(4)
;  SetEquivalentBuilding(impre)
  SetBay(2 2)
  SetRepairCost(1 1)
  SetHitpoints(600 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(80 2)
  SetSell(40 1)
  CanRepair()
  MakesCrater(3)
  SetShadowImage(bfrepsh0.spr)
  SetRepairAnimation(3)
  SetIdleAnimation(4)
  SetTransportUnit(FGBaseMover 2 3)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 building_80_explosion)
  SetHealthExplosion(60 building_60_explosion)
  SetHealthExplosion(33 building_33_explosion)
  SetHealthExplosion(0 building_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}

;; FREEDOM GUARD XENITE Temporal Gate

DefineBuildingType(fgxit)
{
  SetBuildingImages(nitgt1l0.spr titgt1l0.spr bitgtmn0.spr)
  SetDescription(Imp_Temporal_Gate)
  SetRequirements {
    SetType(20008)
    SetPrereqs(20002)
    SetMaker(21011)
    SetTechLevel(50)
  }
  SetEfficiencyResource{
    (0 50)
    (100 90)
  }
  SetSide(4)
;  SetEquivalentBuilding(ft2)
  SetBay(1 1)
  SetRepairCost(1 1)
  SetHitpoints(1000 1)
  SetSeeingRange(8)
  SetShadowImage(bitgtsh0.spr)
  SetIdleAnimation(4)
  SetSeeingHeight(1)
  SetCost(180 5)
  SetSell(90 3)
  SetRooms(5 100)
  IsTeleport(6 electric_blue_explosion)
  MakesCrater(1)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 building_80_explosion)
  SetHealthExplosion(60 building_60_explosion)
  SetHealthExplosion(33 building_33_explosion)
  SetHealthExplosion(0 building_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}


;; FREEDOM GUARD Rearming Deck;

DefineBuildingType(fgxar)
{
  SetBuildingImages(nfrrm1l0.spr tfrrm1l0.spr bfrrmmn0.spr)
  SetDescription(Rearming_Deck)
  SetRequirements {
    SetType(20011)
    SetPrereqs(20003)
    SetMaker(21011)
    SetEquivalence(1011)
    SetTechLevel(70)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
;  NeedResource(2 0)
  SetSide(4)
;  SetEquivalentBuilding(impar)
  SetBay(1 1)
  SetRepairCost(1 1)
  SetHitpoints(800 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(100 3)
  SetSell(50 2)
  CanRearmFlyer()
  MakesCrater(1)
  SetShadowImage(bfrrmsh0.spr)
  SetRearmAnimation(3)
  SetIdleAnimation(4)
  SetTransportUnit(FGBaseMover 2 3)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 building_80_explosion)
  SetHealthExplosion(60 building_60_explosion)
  SetHealthExplosion(33 building_33_explosion)
  SetHealthExplosion(0 building_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
  SetForbiddenRange (9)
}


;-------------------------
;  SHADOW HAND BUILDINGS   |
;-------------------------

;; IMPERIUM Headquarters 1

DefineBuildingType(shh1)
{
  SetBuildingImages(nihqt1l0.spr tihqt1l0.spr bihqtmn0.spr)
  SetDescription(Imp_Headquarters_1)
  SetRequirements {
    SetType(30001)
    SetPrereqs()
    SetMaker(31005)
    SetEquivalence(1000)
    SetTechLevel(40)
  }
  SetEfficiencyResource{
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
;  NeedResource(2 0)
  SetSide(5)
;  SetEquivalentBuilding(fh1)
  SetBay(2 4)
  SetRepairCost(1 1)
  SetHitpoints(1440 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(75 2)
  SetSell(38 1)
  SetShadowImage(bihqtsh0.spr)
  CanMake()
  MakesCrater(4)
  GivesMiniMap()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 headquarter_80_explosion)
  SetHealthExplosion(60 headquarter_60_explosion)
  SetHealthExplosion(33 headquarter_33_explosion)
  SetHealthExplosion(0 headquarter_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}

;; IMPERIUM Headquarters 2

DefineBuildingType(shh2)
{
  SetBuildingImages(nihqt2l0.spr tihqt2l0.spr bihqtmn1.spr)
  SetDescription(Imp_Headquarters_2)
  SetRequirements {
    SetType(30002)
    SetPrereqs(30001)
    SetMaker()
    SetEquivalence(1001)
    SetTechLevel(50)
  }
  SetEfficiencyResource{
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
  IsUpgradeOf(shh1)
;  NeedResource(2 0)
  SetSide(5)
;  SetEquivalentBuilding(fh2)
  SetBay(2 4)
  SetRepairCost(1 1)
  SetHitpoints(2880 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(100 3)
  SetShadowImage(bihqtsh1.spr)
  SetSell(50 2)
  CanMake()
  MakesCrater(4)
  GivesMiniMap()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 headquarter_80_explosion)
  SetHealthExplosion(60 headquarter_60_explosion)
  SetHealthExplosion(33 headquarter_33_explosion)
  SetHealthExplosion(0 headquarter_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}

;; IMPERIUM Headquarters 3

DefineBuildingType(shh3)
{
  SetBuildingImages(nihqt3l0.spr tihqt3l0.spr bihqtmn2.spr)
  SetDescription(Imp_Headquarters_3)
  SetRequirements {
    SetType(30003)
    SetPrereqs(30002)
    SetMaker()
    SetEquivalence(1002)
    SetTechLevel(70)
  }
  SetEfficiencyResource{
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
  IsUpgradeOf(shh2)
;  NeedResource(2 0)
  SetSide(5)
;  SetEquivalentBuilding(fh3)
  SetBay(2 4)
  SetRepairCost(1 1)
  SetHitpoints(4330 1)
  SetSeeingRange(16)
  SetSeeingHeight(1)
  SetCost(125 4)
  SetSell(63 2)
  SetShadowImage(bihqtsh2.spr)
  CanMake()
  MakesCrater(4)
  GivesMiniMap()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 headquarter_80_explosion)
  SetHealthExplosion(60 headquarter_60_explosion)
  SetHealthExplosion(33 headquarter_33_explosion)
  SetHealthExplosion(0 headquarter_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}

;; IMPERIUM Repair Bay

DefineBuildingType(shre)
{
  SetBuildingImages(nirep1l0.spr tirep1l0.spr birepmn0.spr)
  SetDescription(Repair_Station)
  SetRequirements {
    SetType(30010)
    SetPrereqs(30001)
    SetMaker(31005)
    SetEquivalence(1016)
    SetTechLevel(40)
  }
;  NeedResource(2 0)
  SetSide(5)
;  SetEquivalentBuilding(fgre)
  SetBay(1 2)
  SetRepairCost(1 1)
  SetHitpoints(720 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(80 2)
  SetSell(40 1)
  CanRepair()
  SetShadowImage(birepsh0.spr)
  SetRepairAnimation(3)
  MakesCrater(3)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 building_80_explosion)
  SetHealthExplosion(60 building_60_explosion)
  SetHealthExplosion(33 building_33_explosion)
  SetHealthExplosion(0 building_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}


;; IMPERIUM Landing Deck

DefineBuildingType(shar)
{
  SetBuildingImages(nirrm1l0.spr tirrm1l0.spr birrmmn0.spr)
  SetDescription(Rearming_Deck)
  SetRequirements {
    SetType(30012)
    SetPrereqs(30003)
    SetMaker(31005)
    SetEquivalence(1011)
    SetTechLevel(70)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
;  NeedResource(2 0)
  SetSide(5)
;  SetEquivalentBuilding(fgar)
  SetBay(1 0)
  SetRepairCost(1 1)
  SetHitpoints(960 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(100 3)
  SetSell(50 2)
  SetShadowImage(birrmsh0.spr)
  SetRearmAnimation(3)
  SetIdleAnimation(3)
  CanRearmFlyer()
  MakesCrater(1)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 building_80_explosion)
  SetHealthExplosion(60 building_60_explosion)
  SetHealthExplosion(33 building_33_explosion)
  SetHealthExplosion(0 building_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}

;; SHADOW HAND Temporal Gate

DefineBuildingType(shit)
{
  SetBuildingImages(nitgt1l0.spr titgt1l0.spr bitgtmn0.spr)
  SetDescription(Imp_Temporal_Gate)
  SetRequirements {
    SetType(30008)
    SetPrereqs(30002)
    SetMaker(31005)
    SetTechLevel(50)
  }
  SetEfficiencyResource{
    (0 50)
    (100 90)
  }
  SetSide(5)
;  SetEquivalentBuilding(ft2)
  SetBay(1 1)
  SetRepairCost(1 1)
  SetHitpoints(1000 1)
  SetSeeingRange(8)
  SetShadowImage(bitgtsh0.spr)
  SetIdleAnimation(4)
  SetSeeingHeight(1)
  SetCost(180 5)
  SetSell(90 3)
  SetRooms(5 100)
  IsTeleport(6 electric_blue_explosion)
  MakesCrater(1)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 building_80_explosion)
  SetHealthExplosion(60 building_60_explosion)
  SetHealthExplosion(33 building_33_explosion)
  SetHealthExplosion(0 building_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}


