;----------------------------------------------------------------------------
;|  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)
;}

;-----------------------------
;  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(0)
  }
  SetEfficiencyResource {
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
;  SetEquivalentBuilding(ih1)
  NeedResource(2 100)
  SetSide(0)
  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 15 30)
  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(10004 10006)
    SetMaker()
    SetEquivalence(1001)
    SetTechLevel(4)
  }
  SetEfficiencyResource {
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
  NeedResource(2 200)
  IsUpgradeOf(fh1)
;  SetEquivalentBuilding(ih2)
  SetSide(0)
  SetBay(2 3)
  SetRepairCost(10 8)
  SetHitpoints(2400 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(1000 30)
  SetSell(500 15)
  CanMake()
  MakesCrater(4)
  GivesMiniMap()
  SetShadowImage(bfhqtsh1.spr)
  SetTransportUnit(FGBaseMover 30 60)
  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(10005 10007)
    SetMaker()
    SetEquivalence(1002)
    SetTechLevel(9)
  }
  SetEfficiencyResource {
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
  IsUpgradeOf(fh2)
;  SetEquivalentBuilding(ih3)
  NeedResource(2 300)
  SetSide(0)
  SetBay(2 3)
  SetRepairCost(10 8)
  SetHitpoints(3600 1)
  SetSeeingRange(16)
  SetSeeingHeight(1)
  SetCost(1250 37)
  SetSell(625 19)
  CanMake()
  MakesCrater(4)
  GivesMiniMap()
  SetShadowImage(bfhqtsh2.spr)
  SetTransportUnit(FGBaseMover 30 60)
  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)
}


DefineBuildingType(fh1_decoy)
{
  IsDecoyOf(fh1)
  SetBuildingImages(nfhqt1l0.spr tfhqt1l0.spr dfhqtmn0.spr)
  SetDescription(Decoy_Headquarters_1)
  SetHitpoints(200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(200 6)
  SetSell(100 3)
  IsNotBuilderEater()
  SetRequirements {
    SetType(10101)
    SetPrereqs(10001)
    SetMaker(11)
    SetTechLevel(0)
  }
  MakesCrater(2)
  SetShadowImage(bfhqtsh0.spr)
  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)
}


DefineBuildingType(fh2_decoy)
{
  IsDecoyOf(fh2)
  SetBuildingImages(nfhqt2l0.spr tfhqt2l0.spr dfhqtmn1.spr)
  SetDescription(Decoy_Headquarters_2)
  SetHitpoints(200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(200 6)
  SetSell(100 3)
  IsNotBuilderEater()
  SetRequirements {
    SetType(10102)
    SetPrereqs(10002)
    SetMaker(11)
    SetTechLevel(0)
  }
  MakesCrater(2)
  SetShadowImage(bfhqtsh1.spr)
  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)
}



DefineBuildingType(fh3_decoy)
{
  IsDecoyOf(fh3)
  SetBuildingImages(nfhqt3l0.spr tfhqt3l0.spr dfhqtmn2.spr)
  SetDescription(Decoy_Headquarters_3)
  SetHitpoints(200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(200 6)
  SetSell(100 3)
  IsNotBuilderEater()
  SetRequirements {
    SetType(10103)
    SetPrereqs(10003)
    SetMaker(11)
    SetTechLevel(0)
  }
  MakesCrater(2)
  SetShadowImage(bfhqtsh2.spr)
  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 Water Launch Pad

DefineBuildingType(fglp)
{
  SetBuildingImages(nclnc1l0.spr tclnc1l0.spr bclncmn0.spr)
  SetDescription(Water_Launch_Pad)
  SetRequirements {
    SetType(10019)
    SetPrereqs()
    SetMaker(11)
    SetEquivalence(1008)
    SetTechLevel(0)
  }
  SetSpyType(RESOURCE)
  SetSide(0)
;  SetEquivalentBuilding(implp)
  SetBay(3 2)
  NeedResource(2 100)
  SetRepairCost(10 8)
  SetHitpoints(1300 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetShadowImage(bclncsh0.spr)
  SetResource(0 0 3000 0)
  SetResourceSale(0 100 500)
  SetResourceSaleAnimation(3)
  SetCost(2500 37)
  SetSell(1250 18)
  MakesCrater(1)
  AssociatedUnit(FGGroundTransporter 0)
  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 Taelon Power Generator

DefineBuildingType(fgpp)
{
  SetBuildingImages(ncpow1l0.spr tcpow1l0.spr bcpowmn0.spr)
  SetDescription(Taelon_Power_Generator)
  SetRequirements {
    SetType(10020)
    SetPrereqs()
    SetMaker(11)
    SetEquivalence(1007)
    SetTechLevel(0)
  }
  SetSpyType(RESOURCE)
  SetResource(1 0 1000 500)
  SupplyResource(1 0 2 100)
  SetSide(0)
;  SetEquivalentBuilding(imppp)
  SetBay(1 3)
  SetRepairCost(10 8)
  SetHitpoints(1450 1)
  SetSeeingRange(8)
  SetShadowImage(bcpowsh0.spr)
  SetIdleAnimation(3)
  SetSeeingHeight(1)
  SetCost(2000 30)
  SetSell(1000 15)
  MakesCrater(1)
  AssociatedUnit(FGGroundTransporter 0)
  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)
}


DefineBuildingType(fgpp_decoy)
{
  IsDecoyOf(fgpp)
  SetBuildingImages(ncpow1l0.spr tcpow1l0.spr dcpowmn0.spr)
  SetDescription(Decoy_Taelon_Power_Generator)
  SetHitpoints(200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(200 6)
  SetSell(100 3)
  IsNotBuilderEater()
  SetRequirements {
    SetType(10120)
    SetPrereqs()
    SetMaker(11)
    SetTechLevel(0)
  }
  MakesCrater(1)
  SetShadowImage(bcpowsh0.spr)
  SetIdleAnimation(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 Training Facility

DefineBuildingType(fu1)
{
  SetBuildingImages(nfutf1l0.spr tfutf1l0.spr bfutfmn0.spr)
  SetDescription(FG_Training_Facility)
  SetRequirements {
    SetType(10004)
    SetPrereqs(10001)
    SetMaker(11)
    SetEquivalence(1003)
    SetTechLevel(0)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  SetSpyType(UNITPLAN)
  NeedResource(2 100)
;  SetEquivalentBuilding(iu1)
  SetSide(0)
  SetBay(2 2)
  SetRepairCost(10 8)
  SetHitpoints(750 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetShadowImage(bfutfsh0.spr)
  SetCost(1500 45)
  SetSell(750 23)
  CanMake()
  MakesCrater(3)
  SetTransportUnit(FGBaseMover 15 30)
  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 Advanced Training Facility

DefineBuildingType(fu2)
{
  SetBuildingImages(nfutf2l0.spr tfutf2l0.spr bfutfmn1.spr)
  SetDescription(FG_Advanced_Training_Facility)
  SetRequirements {
    SetType(10005)
    SetPrereqs(10002)
    SetMaker()
    SetEquivalence(1004)
   SetTechLevel(5)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  SetSpyType(UNITPLAN)
  NeedResource(2 200)
  IsUpgradeOf(fu1)
  SetEquivalentBuilding(iu2)
  SetSide(0)
  SetBay(2 2)
  SetRepairCost(10 8)
  SetHitpoints(1500 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 23)
  SetSell(375 11)
  CanMake()
  MakesCrater(2)
  SetTransportUnit(FGBaseMover 30 60)
  SetShadowImage(bfutfsh1.spr)
  SetIdleAnimation(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)
}



DefineBuildingType(fu1_decoy)
{
  IsDecoyOf(fu1)
  SetBuildingImages(nfutf1l0.spr tfutf1l0.spr dfutfmn0.spr)
  SetDescription(Decoy_Training_Facility)
  SetHitpoints(200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(200 6)
  SetSell(100 3)
  IsNotBuilderEater()
  SetRequirements {
    SetType(10121)
    SetPrereqs(10001)
    SetMaker(11)
    SetTechLevel(0)
  }
  MakesCrater(1)
  SetShadowImage(bfutfsh0.spr)
  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)
}



DefineBuildingType(fu2_decoy)
{
  IsDecoyOf(fu2)
  SetBuildingImages(nfutf2l0.spr tfutf2l0.spr dfutfmn1.spr)
  SetDescription(Decoy_Training_Facility_2)
  SetHitpoints(200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(200 6)
  SetSell(100 3)
  IsNotBuilderEater()
  SetRequirements {
    SetType(10105)
    SetPrereqs(10002)
    SetMaker(11)
    SetTechLevel(0)
  }
  MakesCrater(1)
  SetShadowImage(bfutfsh1.spr)
  SetIdleAnimation(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 Assembly Plant

DefineBuildingType(fc1)
{
  SetBuildingImages(nfvcy1l0.spr tfvcy1l0.spr bfvcymn0.spr)
  SetDescription(FG_Assembly_Plant)
  SetRequirements {
    SetType(10006)
    SetPrereqs(10001)
    SetMaker(11)
    SetEquivalence(1005)
    SetTechLevel(0)
  }
  SetEfficiencyResource {
    (10 0)
    (100 90)
  }
  SetSpyType(UNITPLAN)
  NeedResource(2 100)
  SetSide(0)
;  SetEquivalentBuilding(ic1)
  SetBay(2 2)
  SetRepairCost(10 8)
  SetHitpoints(1000 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(2200 66)
  SetSell(1100 33)
  CanMake()
  MakesCrater(3)
  SetShadowImage(bfvcysh0.spr)
  SetTransportUnit(FGBaseMover 15 30)
  SetShadowImage(bfvcysh0.spr)
  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 Advanced Assembly Plant

DefineBuildingType(fc2)
{
  SetBuildingImages(nfvcy2l0.spr tfvcy2l0.spr bfvcymn1.spr)
  SetDescription(FG_Advanced_Assembly_Plant)
  SetRequirements {
    SetType(10007)
    SetPrereqs(10002)
    SetMaker()
    SetEquivalence(1006)
    SetTechLevel(5)
  }
  SetEfficiencyResource {
    (10 0)
    (100 90)
  }
  SetSpyType(UNITPLAN)
  NeedResource(2 200)
  IsUpgradeOf(fc1)
  SetSide(0)
;  SetEquivalentBuilding(ic2)
  SetBay(2 2)
  SetRepairCost(10 8)
  SetHitpoints(2000 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(2500 75)
  SetSell(1250 37)
  CanMake()
  MakesCrater(4)
  SetShadowImage(bfvcysh1.spr)
  SetTransportUnit(FGBaseMover 30 60)
  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)
}

DefineBuildingType(fc1_decoy)
{
  IsDecoyOf(fc1)
  SetBuildingImages(nfvcy1l0.spr tfvcy1l0.spr dfvcymn0.spr)
  SetDescription(Decoy_Assembly_Plant)
  SetHitpoints(200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(200 6)
  SetSell(100 3)
  IsNotBuilderEater()
  SetRequirements {
    SetType(10021)
    SetPrereqs()
    SetMaker(11)
    SetTechLevel(0)
  }
  MakesCrater(2)
  SetShadowImage(bfvcysh0.spr)
  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)
}


DefineBuildingType(fc2_decoy)
{
  IsDecoyOf(fc2)
  SetBuildingImages(nfvcy2l0.spr tfvcy2l0.spr dfvcymn1.spr)
  SetDescription(Decoy_Advanced_Assembly_Plant)
  SetHitpoints(200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(200 6)
  SetSell(100 3)
  IsNotBuilderEater()
  SetRequirements {
    SetType(10022)
    SetPrereqs()
    SetMaker(11)
    SetTechLevel(6)
  }
  MakesCrater(2)
  SetShadowImage(bfvcysh1.spr)
  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 Laser Turret

DefineBuildingType(fg)
{
  SetBuildingImages(nfgdt1l0.spr tfgdt1l0.spr bfgdtmn0.spr)
  SetDescription(FG_Laser_Turret)
  SetRequirements {
    SetType(10013)
    SetPrereqs(10001)
    SetMaker(11)
    SetEquivalence(1012)
    SetTechLevel(0)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 50)
  SetSide(0)
;  SetEquivalentBuilding(ig)
  SetBay(1 1)
  SetRepairCost(10 8)
  SetHitpoints(400 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(500 22)
  SetSell(250 7)
  SetShadowImage(bfgdtsh0.spr)
  MakesCrater(0)
  ActivePart(FGGuardTower 25 13 none 0 0 none 0 0 none 0 0)
  SetTransportUnit(FGBaseMover 15 30)
  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 Heavy Rail Platform

DefineBuildingType(fa)
{
  SetBuildingImages(nfagt1l0.spr tfagt1l0.spr bfagtmn0.spr)
  SetDescription(FG_Heavy_Laser_Platform)
  SetRequirements {
    SetType(10014)
    SetPrereqs(10002)
    SetMaker(11)
    SetEquivalence(1013)
    SetTechLevel(6)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 100)
  SetSide(0)
;  SetEquivalentBuilding(ia)
  SetBay(1 1)
  SetRepairCost(10 8)
  SetHitpoints(550 1)
  SetSeeingRange(12)
  SetSeeingHeight(1)
  SetCost(1700 51)
  SetSell(850 25)
  SetShadowImage(bfagtsh0.spr)
  MakesCrater(1)
  ActivePart(FGAdvancedGuardTower 23 21 FGAdvancedGuardTower 49 21 none 0 0 none 0 0)
  SetTransportUnit(FGBaseMover 15 30)
  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 Air Defense Site

DefineBuildingType(fs)
{
  SetBuildingImages(nfaar1l0.spr tfaar1l0.spr bfaarmn0.spr)
  SetDescription(Air_Defense_Site)
  SetRequirements {
    SetType(10012)
    SetPrereqs(10002)
    SetMaker(11)
    SetEquivalence(1014)
    SetTechLevel(8)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 50)
  SetSide(0)
;  SetEquivalentBuilding(is)
  SetBay(1 1)
  SetRepairCost(10 8)
  SetHitpoints(600 1)
  SetSeeingRange(12)
  SetSeeingHeight(1)
  SetCost(1000 30)
  SetSell(500 15)
  SetShadowImage(bfaarsh0.spr)
  MakesCrater(1)
  ActivePart(FGAntiAirSite 22 6 none 0 0 none 0 0 none 0 0)
  SetTransportUnit(FGBaseMover 15 30)
  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 Camera Tower

DefineBuildingType(fgca)
{
  SetBuildingImages(nccam1l0.spr tccam1l0.spr bccammn0.spr)
  SetDescription(Camera_Tower)
  SetRequirements {
    SetType(10010)
    SetPrereqs(10002)
    SetMaker(11)
    SetEquivalence(1017)
    SetTechLevel(4)
  }
  NeedResource(2 50)
  SetSide(0)
;  SetEquivalentBuilding(impca)
  SetRepairCost(10 8)
  SetHitpoints(150 1)
  SetSeeingRange(16)
  SetSeeingHeight(3)
  SetCost(200 6)
  SetSell(100 3)
  SetShadowImage(bccamsh0.spr)
  MakesCrater(0)
  IsNotBuilderEater()
  IsBuiltFromEdge()
  SetVulnerability(BuildingArmour 100)
  ActivePart(CameraTower 14 11 none 0 0 none 0 0 none 0 0)
  SetHealthExplosion(80 building_80_explosion)
  SetHealthExplosion(60 building_60_explosion)
  ;SetHealthExplosion(33 building_33_explosion)
  SetHealthExplosion(0 building_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc2.wav)
}


;; FREEDOM GUARD Field Hospital

DefineBuildingType(fgho)
{
  SetBuildingImages(nfhsp1l0.spr tfhsp1l0.spr bfhspmn0.spr)
  SetDescription(Field_Hospital)
  SetRequirements {
    SetType(10008)
    SetPrereqs(10004)
    SetMaker(11)
    SetEquivalence(1015)
    SetTechLevel(2)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 100)
  SetSide(0)
;  SetEquivalentBuilding(impho)
  SetBay(3 2)
  SetRepairCost(10 8)
  SetHitpoints(600 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(500 15)
  SetSell(250 7)
  CanHeal()
  MakesCrater(2)
  SetShadowImage(bfhspsh0.spr)
  SetTransportUnit(FGBaseMover 15 30)
  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)
}




DefineBuildingType(fgho_decoy)
{
  IsDecoyOf(fgho)
  SetBuildingImages(nfhsp1l0.spr tfhsp1l0.spr dfhspmn0.spr)
  SetDescription(Decoy_Field_Hospital)
  SetHitpoints(200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(200 6)
  SetSell(100 3)
  IsNotBuilderEater()
  SetRequirements {
    SetType(10108)
    SetPrereqs(10004)
    SetMaker(11)
    SetTechLevel(0)
  }
  MakesCrater(1)
  SetShadowImage(bfhspsh0.spr)
  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 Repair Station

DefineBuildingType(fgre)
{
  SetBuildingImages(nfrep1l0.spr tfrep1l0.spr bfrepmn0.spr)
  SetDescription(Repair_Station)
  SetRequirements {
    SetType(10009)
    SetPrereqs(10006)
    SetMaker(11)
    SetEquivalence(1016)
    SetTechLevel(2)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 100)
  SetSide(0)
;  SetEquivalentBuilding(impre)
  SetBay(2 2)
  SetRepairCost(10 8)
  SetHitpoints(600 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(800 24)
  SetSell(400 12)
  CanRepair()
  MakesCrater(3)
  SetShadowImage(bfrepsh0.spr)
  SetRepairAnimation(3)
  SetIdleAnimation(4)
  SetTransportUnit(FGBaseMover 15 30)
  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)
}


DefineBuildingType(fgre_decoy)
{
  IsDecoyOf(fgre)
  SetBuildingImages(nfrep1l0.spr tfrep1l0.spr dfrepmn0.spr)
  SetDescription(Decoy_Repair_Station)
  SetHitpoints(200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(200 6)
  SetSell(100 3)
  IsNotBuilderEater()
  SetRequirements {
    SetType(10109)
    SetPrereqs(10006)
    SetMaker(11)
    SetTechLevel(0)
  }
  MakesCrater(1)
  SetIdleAnimation(4)
  SetShadowImage(bfrepsh0.spr)
  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 Phasing Facility

DefineBuildingType(ft1)
{
  SetBuildingImages(nfphf1l0.spr tfphf1l0.spr bfphfmn0.spr)
  SetDescription(FG_Phasing_Facility)
  SetRequirements {
    SetType(10015)
    SetPrereqs(10001)
    SetMaker(11)
    SetTechLevel(4)
  }
  NeedResource(2 100)
  SetSide(0)
  SetHitpoints(1000 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetRepairCost(10 8)
  SetCost(1200 36)
  SetSell(600 18)
  MakesCrater(3)
  SetShadowImage(bfphfsh0.spr)
  SetIdleAnimation(4)
  SetTransportUnit(FGBaseMover 15 30)
  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 Phasing Facilty 2

DefineBuildingType(ft2)
{
  SetBuildingImages(nfphf2l0.spr tfphf2l0.spr bfphfmn1.spr)
  SetDescription(FG_Advanced_Phasing_Facility)
  SetRequirements {
    SetType(10016)
    SetPrereqs(10002)
    SetMaker()
    SetTechLevel(7)
  }
  NeedResource(2 200)
  IsUpgradeOf(ft1)
  SetRooms(5 10)
  SetBay(2 2)
  SetSide(0)
;  SetEquivalentBuilding(it)
  SetRepairCost(10 8)
  SetHitpoints(2000 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(1200 36)
  SetSell(600 18)
  AssociatedUnit(FGundergtunnel 1)
  SetShadowImage(bfphfsh1.spr)
  MakesCrater(2)
  SetIdleAnimation(3)
  SetBoardAnimation(3)
  SetTransportUnit(FGBaseMover 30 60)
  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)
}


DefineBuildingType(ft1_decoy)
{
  IsDecoyOf(ft1)
  SetBuildingImages(nfphf1l0.spr tfphf1l0.spr dfphfmn0.spr)
  SetDescription(Decoy_Phasing_Facility)
  SetHitpoints(200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(200 6)
  SetSell(100 3)
  IsNotBuilderEater()
  SetRequirements {
    SetType(10023)
    SetPrereqs(10001)
    SetMaker(11)
    SetTechLevel(6)
  }
  MakesCrater(1)
  SetIdleAnimation(4)
  SetVulnerability(BuildingArmour 100)
  SetShadowImage(bfphfsh0.spr)
  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)
}

DefineBuildingType(ft2_decoy)
{
  IsDecoyOf(ft2)
  SetBuildingImages(nfphf2l0.spr tfphf2l0.spr dfphfmn1.spr)
  SetDescription(Decoy_Advanced_Phasing_Facility)
  SetHitpoints(200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(200 6)
  SetSell(100 3)
  IsNotBuilderEater()
  SetRequirements {
    SetType(10024)
    SetPrereqs(10002)
    SetMaker(11)
    SetTechLevel(7)
  }
  SetShadowImage(bfphfsh1.spr)
  SetIdleAnimation(3)
  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(fgar)
{
  SetBuildingImages(nfrrm1l0.spr tfrrm1l0.spr bfrrmmn0.spr)
  SetDescription(Rearming_Deck)
  SetRequirements {
    SetType(10011)
    SetPrereqs(10003)
    SetMaker(11)
    SetEquivalence(1011)
    SetTechLevel(9)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 120)
  SetSide(0)
;  SetEquivalentBuilding(impar)
  SetBay(1 1)
  SetRepairCost(10 8)
  SetHitpoints(800 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(1000 30)
  SetSell(500 15)
  CanRearmFlyer()
  MakesCrater(1)
  SetShadowImage(bfrrmsh0.spr)
  SetRearmAnimation(3)
  SetIdleAnimation(4)
  SetTransportUnit(FGBaseMover 15 30)
  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)
}


DefineBuildingType(fgar_decoy)
{
  IsDecoyOf(fgar)
  SetBuildingImages(nfrrm1l0.spr tfrrm1l0.spr dfrrmmn0.spr)
  SetDescription(Decoy_Rearming_Deck)
  SetHitpoints(200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(200 6)
  SetSell(100 3)
  IsNotBuilderEater()
  SetRequirements {
    SetType(10111)
    SetPrereqs(10003)
    SetMaker(11)
    SetTechLevel(0)
  }
  MakesCrater(1)
  SetShadowImage(bfrrmsh0.spr)
  SetIdleAnimation(4)
  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)
}


;;; Small Horizontal Bridge
;
;DefineBuildingType(SmallHorizontalBridge1)
;{
;  SetBuildingImages(ncsbh1l0.spr tcsbh1l0.spr bcsbhmn0.spr)
;  SetDescription(Small_Horizontal_Bridge)
; SetRequirements {
;   SetType(10040)
;    SetPrereqs()
;    SetMaker(11)
;    SetTechLevel(1)
;  }
;  SetSide(0)
;  SetBay(0 0)
;;  SetRepairCost(10 8)
;  SetHitpoints(400 1)
;  SetShadowImage(bcsbhsh0.spr)
;  SetSeeingRange(0)
;  SetSeeingHeight(1)
;  SetCost(100 3)
;  SetSell(50 2)
;  MakesCrater(8)
;  IsBridge()
;  IsNotBuilderEater()
;  IsBuiltFromEdge()
;  SetVulnerability(BuildingArmour 100)
;  SetHealthExplosion(0 bridge_explosion)
;}
;
;; Small Vertical Bridge
;
;DefineBuildingType(SmallVerticalBridge1)
;{
;  SetBuildingImages(ncsbv1l0.spr tcsbv1l0.spr bcsbvmn0.spr)
;  SetDescription(Small_Vertical_Bridge)
;  SetRequirements {
;    SetType(10041)
;    SetPrereqs()
;    SetMaker(11)
;    SetTechLevel(1)
;  }
;  SetSide(0)
;  SetBay(0 0)
;;  SetRepairCost(10 8)
;  SetHitpoints(400 1)
;  SetShadowImage(bcsbvsh0.spr)
;  SetSeeingRange(0)
;  SetSeeingHeight(1)
;  SetCost(100 3)
;  SetSell(50 2)
;  MakesCrater(9)
;  IsBridge()
;  IsNotBuilderEater()
;  IsBuiltFromEdge()
;  SetVulnerability(BuildingArmour 100)
;  SetHealthExplosion(0 bridge_explosion)
;}
;; Small Centre Bridge
;
;DefineBuildingType(SmallCentreBridge1)
;{
;  SetBuildingImages(ncsbc1l0.spr tcsbc1l0.spr bcsbcmn0.spr)
;  SetDescription(Small_Centre_Bridge)
;  SetRequirements {
;    SetType(10042)
;    SetPrereqs()
;    SetMaker(11)
;    SetTechLevel(1)
;  }
;  SetSide(0)
;  SetBay(0 0)
;;  SetRepairCost(10 8)
;  SetHitpoints(400 1)
;  SetSeeingRange(0)
;  SetSeeingHeight(1)
;  SetShadowImage(bcsbcsh0.spr)
;  SetCost(150 5)
;  SetSell(75 3)
;  MakesCrater(7)
;  IsBridge()
;  IsNotBuilderEater()
;  IsBuiltFromEdge()
;  SetVulnerability(BuildingArmour 100)
;  SetHealthExplosion(0 bridge_explosion)
;}

;-------------------------
;  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(0)
  }
  SetEfficiencyResource{
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
  NeedResource(2 100)
  SetSide(1)
;  SetEquivalentBuilding(fh1)
  SetBay(2 4)
  SetRepairCost(10 8)
  SetHitpoints(1440 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  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(11004 11006)
    SetMaker()
    SetEquivalence(1001)
    SetTechLevel(4)
  }
  SetEfficiencyResource{
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
  IsUpgradeOf(ih1)
  NeedResource(2 200)
  SetSide(1)
;  SetEquivalentBuilding(fh2)
  SetBay(2 4)
  SetRepairCost(10 8)
  SetHitpoints(2880 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(1000 30)
  SetShadowImage(bihqtsh1.spr)
  SetSell(500 15)
  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(11005 11007)
    SetMaker()
    SetEquivalence(1002)
    SetTechLevel(8)
  }
  SetEfficiencyResource{
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
  IsUpgradeOf(ih2)
  NeedResource(2 300)
  SetSide(1)
;  SetEquivalentBuilding(fh3)
  SetBay(2 4)
  SetRepairCost(10 8)
  SetHitpoints(4330 1)
  SetSeeingRange(16)
  SetSeeingHeight(1)
  SetCost(1250 37)
  SetSell(625 18)
  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 Water Launch Pad

DefineBuildingType(implp)
{
  SetBuildingImages(nclnc1l0.spr tclnc1l0.spr bclncmn0.spr)
  SetDescription(Water_Launch_Pad)
  SetRequirements {
    SetType(11019)
    SetPrereqs()
    SetMaker(1005)
    SetEquivalence(1008)
    SetTechLevel(0)
  }
  SetSpyType(RESOURCE)
  SetSide(1)
  NeedResource(2 100)
;  SetEquivalentBuilding(fglp)
  SetBay(3 2)
  SetRepairCost(10 8)
  SetResource(0 0 3000 0)
  SetResourceSale(0 100 500)
  SetResourceSaleAnimation(3)
  SetHitpoints(1300 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(2500 45)
  SetSell(1250 22)
  SetShadowImage(bclncsh0.spr)
  MakesCrater(1)
  AssociatedUnit(ImpGroundTransporter 0)
  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 Power Plant

DefineBuildingType(imppp)
{
  SetBuildingImages(ncpow1l0.spr tcpow1l0.spr bcpowmn0.spr)
  SetDescription(Taelon_Power_Generator)
  SetRequirements {
    SetType(11020)
    SetPrereqs()
    SetMaker(1005)
    SetEquivalence(1007)
    SetTechLevel(0)
  }
  SetSpyType(RESOURCE)
  SetResource(1 0 1000 500)
  SupplyResource(1 0 2 100)
  SetSide(1)
;  SetEquivalentBuilding(fgpp)
  SetBay(1 3)
  SetRepairCost(10 8)
  SetHitpoints(1450 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(2000 30)
  SetSell(1000 15)
  SetShadowImage(bcpowsh0.spr)
  SetIdleAnimation(3)
  MakesCrater(1)
  AssociatedUnit(ImpGroundTransporter 0)
  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 Unit Training 1

DefineBuildingType(iu1)
{
  SetBuildingImages(niutf1l0.spr tiutf1l0.spr biutfmn0.spr)
  SetDescription(Imp_Training_Facility)
  SetRequirements {
    SetType(11004)
    SetPrereqs(11001)
    SetMaker(1005)
    SetEquivalence(1003)
    SetTechLevel(0)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  SetSpyType(UNITPLAN)
  NeedResource(2 100)
  SetSide(1)
;  SetEquivalentBuilding(fu1)
  SetBay(2 2)
  SetRepairCost(10 8)
  SetHitpoints(900 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(1500 45)
  SetSell(750 23)
  SetShadowImage(biutfsh0.spr)
  CanMake()
  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 Unit Training 2

DefineBuildingType(iu2)
{
  SetBuildingImages(niutf2l0.spr tiutf2l0.spr biutfmn1.spr)
  SetDescription(Imp_Advanced_Training_Facility)
  SetRequirements {
    SetType(11005)
    SetPrereqs(11002)
    SetMaker()
    SetEquivalence(1004)
    SetTechLevel(5)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  SetSpyType(UNITPLAN)
  IsUpgradeOf(iu1)
  NeedResource(2 200)
  SetSide(1)
;  SetEquivalentBuilding(fu2)
  SetBay(2 2)
  SetShadowImage(biutfsh1.spr)
  SetIdleAnimation(3)
  SetRepairCost(10 8)
  SetHitpoints(1800 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 23)
  SetSell(375 11)
  CanMake()
  MakesCrater(2)
  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 Factory 1

DefineBuildingType(ic1)
{
  SetBuildingImages(nivcy1l0.spr tivcy1l0.spr bivcymn0.spr)
  SetDescription(Imp_Assembly_Plant)
  SetRequirements {
    SetType(11006)
    SetPrereqs(11001)
    SetMaker(1005)
    SetEquivalence(1005)
    SetTechLevel(0)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  SetSpyType(UNITPLAN)
  NeedResource(2 100)
  SetSide(1)
;  SetEquivalentBuilding(fc1)
  SetBay(1 3)
  SetRepairCost(10 8)
  SetHitpoints(1200 1)
  SetShadowImage(bivcysh0.spr)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(2200 66)
  SetSell(1100 33)
  CanMake()
  MakesCrater(4)
  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 Factory 2

DefineBuildingType(ic2)
{
  SetBuildingImages(nivcy2l0.spr tivcy2l0.spr bivcymn1.spr)
  SetDescription(Imp_Advanced_Assembly_Plant)
  SetRequirements {
    SetType(11007)
    SetPrereqs(11002)
    SetMaker()
    SetEquivalence(1006)
    SetTechLevel(4)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  SetSpyType(UNITPLAN)
  IsUpgradeOf(ic1)
  NeedResource(2 200)
  SetSide(1)
;  SetEquivalentBuilding(fc2)
  SetBay(1 3)
  SetRepairCost(10 8)
  SetHitpoints(2400 1)
  SetSeeingRange(8)
  SetShadowImage(bivcysh1.spr)
  SetSeeingHeight(1)
  SetCost(2500 75)
  SetSell(1250 37)
  CanMake()
  MakesCrater(4)
  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 Guard Tower

DefineBuildingType(ig)
{
  SetBuildingImages(nigdt1l0.spr tigdt1l0.spr bigdtmn0.spr)
  SetDescription(Imp_Plasma_Turret)
  SetRequirements {
    SetType(11014)
    SetPrereqs(11001)
    SetMaker(1005)
    SetEquivalence(1012)
    SetTechLevel(0)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 50)
  SetSide(1)
;  SetEquivalentBuilding(fg)
  SetRepairCost(10 8)
  SetHitpoints(400 1)
  SetSeeingRange(8)
  SetShadowImage(bigdtsh0.spr)
  MakesCrater(0)
  SetSeeingHeight(1)
  SetCost(500 22)
  SetSell(250 8)
  ActivePart(ImpGuardTower 24 24 none 0 0 none 0 0 none 0 0)
  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 Advanced Guard Tower

DefineBuildingType(ia)
{
  SetBuildingImages(niagt1l0.spr tiagt1l0.spr biagtmn0.spr)
  SetDescription(Imp_Neutron_Accelerator)
  SetRequirements {
    SetType(11015)
    SetPrereqs(11002)
    SetMaker(1005)
    SetEquivalence(1013)
    SetTechLevel(6)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 100)
  SetSide(1)
;  SetEquivalentBuilding(fa)
  SetRepairCost(10 8)
  SetHitpoints(550 1)
  SetSeeingRange(12)
  SetSeeingHeight(1)
  SetCost(1700 51)
  SetSell(850 25)
  SetShadowImage(biagtsh0.spr)
  MakesCrater(1)
  ActivePart(ImpAdvancedGuardTower 35 21 none 0 0 none 0 0 none 0 0)
  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 Anti Aircraft Site

DefineBuildingType(is)
{
  SetBuildingImages(niaar1l0.spr tiaar1l0.spr biaarmn0.spr)
  SetDescription(Air_Defense_Site)
  SetRequirements {
    SetType(11013)
    SetPrereqs(11002)
    SetMaker(1005)
    SetEquivalence(1014)
    SetTechLevel(9)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 50)
  SetSide(1)
;  SetEquivalentBuilding(fs)
  SetBay(1 1)
  SetRepairCost(10 8)
  SetHitpoints(720 1)
  SetSeeingRange(12)
  SetSeeingHeight(1)
  SetCost(1000 30)
  SetSell(500 15)
  SetShadowImage(biaarsh0.spr)
  MakesCrater(1)
  ActivePart(ImpAntiAirSite 48 20 ImpAntiAirSite 20 36 ImpAntiAirSite 54 44 none 0 0)
  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 Camera

DefineBuildingType(impca)
{
  SetBuildingImages(nccam1l0.spr tccam1l0.spr bccammn0.spr)
  SetDescription(Camera_Tower)
  SetRequirements {
    SetType(11011)
    SetPrereqs(11002)
    SetMaker(1005)
    SetEquivalence(1017)
    SetTechLevel(4)
  }
  NeedResource(2 50)
  SetSide(1)
;  SetEquivalentBuilding(fgca)
  SetRepairCost(10 8)
  SetHitpoints(150 1)
  SetSeeingRange(16)
  SetSeeingHeight(3)
  SetCost(200 6)
  SetSell(100 3)
  IsNotBuilderEater()
  SetShadowImage(bccamsh0.spr)
  MakesCrater(0)
  IsBuiltFromEdge()
  SetVulnerability(BuildingArmour 100)
  ActivePart(CameraTower 14 11 none 0 0 none 0 0 none 0 0)
  SetHealthExplosion(80 building_80_explosion)
  SetHealthExplosion(60 building_60_explosion)
  ;SetHealthExplosion(33 building_33_explosion)
  SetHealthExplosion(0 building_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc2.wav)
}

;; IMPERIUM Hospital

DefineBuildingType(impho)
{
  SetBuildingImages(nihsp1l0.spr tihsp1l0.spr bihspmn0.spr)
  SetDescription(Field_Hospital)
  SetRequirements {
    SetType(11009)
    SetPrereqs(11004)
    SetMaker(1005)
    SetEquivalence(1015)
    SetTechLevel(2)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 100)
  SetSide(1)
;  SetEquivalentBuilding(fgho)
  SetBay(0 2)
  SetRepairCost(10 8)
  SetHitpoints(720 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(500 15)
  SetSell(250 7)
  CanHeal()
  SetShadowImage(bihspsh0.spr)
  MakesCrater(2)
  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 Repair Bay

DefineBuildingType(impre)
{
  SetBuildingImages(nirep1l0.spr tirep1l0.spr birepmn0.spr)
  SetDescription(Repair_Station)
  SetRequirements {
    SetType(11010)
    SetPrereqs(11006)
    SetMaker(1005)
    SetEquivalence(1016)
    SetTechLevel(2)
  }
  NeedResource(2 100)
  SetSide(1)
;  SetEquivalentBuilding(fgre)
  SetBay(1 2)
  SetRepairCost(10 8)
  SetHitpoints(720 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(800 24)
  SetSell(400 12)
  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(8)
  }
  SetEfficiencyResource{
    (0 50)
    (100 90)
  }
  NeedResource(2 100)
  SetSide(1)
;  SetEquivalentBuilding(ft2)
  SetBay(1 1)
  SetRepairCost(10 8)
  SetHitpoints(1000 1)
  SetSeeingRange(8)
  SetShadowImage(bitgtsh0.spr)
  SetSeeingHeight(1)
  SetCost(1800 54)
  SetSell(900 27)
  SetRooms(3 10)
  IsTeleport(60 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(8)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 100)
  SetSide(1)
;  SetEquivalentBuilding(fgar)
  SetBay(1 0)
  SetRepairCost(10 8)
  SetHitpoints(960 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(1000 30)
  SetSell(500 15)
  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)
}


;; IMPERIUM Temporal Rift Creator

DefineBuildingType(itrc)
{
  SetBuildingImages(nitrc1l0.spr titrc1l0.spr bitrcmn0.spr)
  SetDescription(Imp_Temporal_Rift_Creator)
  SetRequirements {
    SetType(11021)
    SetPrereqs(11003 11008)
    SetMaker(1005)
    SetTechLevel(10)
  }
  SetEfficiencyResource{
    (0 50)
    (100 90)
  }
  NeedResource(2 200)
  SetSide(1)
  SetRepairCost(10 8)
  SetHitpoints(1000 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(8000 240)
  SetShadowImage(bitrcsh0.spr)
  SetIdleAnimation(3)
  SetSell(4000 120)
  ActivePart(IMPriftCreator 12 12 none 0 0 none 0 0 none 0 0)
  MakesCrater(4)
  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)
}

;;; Small Horizontal Bridge

DefineBuildingType(SmallHorizontalBridge)
{
  SetBuildingImages(ncsbh1l0.spr tcsbh1l0.spr bcsbhmn0.spr)
  SetDescription(Small_Horizontal_Bridge)
  SetRequirements {
    SetType(11040)
    SetPrereqs()
    SetMaker(1005)
    SetTechLevel(1)
  }
  SetSide(1)
  SetBay(0 0)
;  SetRepairCost(10 8)
  SetHitpoints(400 1)
  SetSeeingRange(0)
  SetSeeingHeight(1)
  SetCost(100 3)
  SetSell(50 2)
  MakesCrater(8)
  IsBridge()
  IsNotBuilderEater()
  IsBuiltFromEdge()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(0 bridge_explosion)
}

; Small Vertical Bridge

DefineBuildingType(SmallVerticalBridge)
{
  SetBuildingImages(ncsbv1l0.spr tcsbv1l0.spr bcsbvmn0.spr)
  SetDescription(Small_Vertical_Bridge)
  SetRequirements {
    SetType(11041)
    SetPrereqs()
    SetMaker(1005)
    SetTechLevel(1)
  }
  SetSide(1)
  SetBay(0 0)
;  SetRepairCost(10 8)
  SetHitpoints(400 1)
  SetSeeingRange(0)
  SetSeeingHeight(1)
  SetCost(100 3)
  SetSell(50 2)
  MakesCrater(9)
  IsBridge()
  IsNotBuilderEater()
  IsBuiltFromEdge()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(0 bridge_explosion)
}

; Small Centre Bridge

DefineBuildingType(SmallCentreBridge)
{
  SetBuildingImages(ncsbc1l0.spr tcsbc1l0.spr bcsbcmn0.spr)
  SetDescription(Small_Centre_Bridge)
  SetRequirements {
    SetType(11042)
    SetPrereqs()
    SetMaker(1005)
    SetTechLevel(1)
  }
  SetSide(1)
  SetBay(0 0)
;  SetRepairCost(10 8)
  SetHitpoints(400 1)
  SetSeeingRange(0)
  SetSeeingHeight(1)
  SetShadowImage(bcsbcsh0.spr)
  SetCost(150 5)
  SetSell(75 3)
  MakesCrater(7)
  IsBridge()
  IsNotBuilderEater()
  IsBuiltFromEdge()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(0 bridge_explosion)
}

; Small Wall

DefineBuildingType(SmallWall1)
{
  SetBuildingImages(ncswl1l0.spr tcswl1l0.spr bcswlmn0.spr)
  SetDescription(Small_Wall_1)
  SetRequirements {
    SetType(11044)
    SetPrereqs()
    SetMaker()
  }
  SetSide(2)
  SetBay(0 0)
;  SetRepairCost(10 8)
  SetHitpoints(100 1)
  SetSeeingRange(0)
  SetSeeingHeight(1)
  SetShadowImage(ncswlsh0.spr)
  SetCost(100 3)
  SetSell(50 2)
  MakesCrater(0)
  IsNotBuilderEater()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(0 building_0_explosion)
}


DefineBuildingType(SmallWall2)
{
  SetBuildingImages(ncswm1l0.spr tcswm1l0.spr bcswmmn0.spr)
  SetDescription(Small_Wall_2)
  SetRequirements {
    SetType(11045)
    SetPrereqs()
    SetMaker()
  }
  SetSide(2)
  SetBay(0 0)
;  SetRepairCost(10 8)
  SetHitpoints(100 1)
  SetSeeingRange(0)
  SetSeeingHeight(1)
  SetShadowImage(ncswmsh0.spr)
  SetCost(100 3)
  SetSell(50 2)
  MakesCrater(0)
  IsNotBuilderEater()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(0 building_0_explosion)
}



; Large Wall

DefineBuildingType(LargeWall1)
{
  SetBuildingImages(ncbwl1l0.spr tcbwl1l0.spr bcbwmmn0.spr)
  SetDescription(Large_Wall_1)
  SetRequirements {
    SetType(11046)
    SetPrereqs()
    SetMaker()
  }
  SetSide(2)
  SetBay(0 0)
;  SetRepairCost(10 8)
  SetHitpoints(400 1)
  SetSeeingRange(0)
  SetSeeingHeight(1)
  SetShadowImage(ncbwlsh0.spr)
  SetCost(100 3)
  SetSell(50 2)
  MakesCrater(0)
  IsNotBuilderEater()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(0 building_0_explosion)
}

; Large Wall

DefineBuildingType(LargeWall2)
{
  SetBuildingImages(ncbwm1l0.spr tcbwm1l0.spr bcbwlmn0.spr)
  SetDescription(Large_Wall_1)
  SetRequirements {
    SetType(11047)
    SetPrereqs()
    SetMaker()
  }
  SetSide(2)
  SetBay(0 0)
;  SetRepairCost(10 8)
  SetHitpoints(400 1)
  SetSeeingRange(0)
  SetSeeingHeight(1)
  SetShadowImage(ncbwmsh0.spr)
  SetCost(100 3)
  SetSell(50 2)
  MakesCrater(0)
  IsNotBuilderEater()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(0 building_0_explosion)
}



;-----------------------------
;  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(0)
  }
  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 15 30)
  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)
}

;; TOGRAN FREEDOM GUARD HEADQUARTERS LEVEL 2

DefineBuildingType(tfh2)
{
  SetBuildingImages(nfhqt2l0.spr tfhqt2l0.spr bfhqtmn1.spr)
  SetDescription(Togran_Headquarters_2)
  SetRequirements {
    SetType(40005)
    SetPrereqs(40009 40013)
    SetMaker()
    SetEquivalence(2002)
    SetTechLevel(4)
  }
  SetEfficiencyResource {
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
  NeedResource(2 200)
  IsUpgradeOf(tfh1)
;  SetEquivalentBuilding(ih2)
  SetSide(3)
  SetBay(2 3)
  SetRepairCost(10 8)
  SetHitpoints(2400 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(1000 30)
  SetSell(500 15)
  CanMake()
  MakesCrater(4)
  GivesMiniMap()
  SetShadowImage(bfhqtsh1.spr)
  SetTransportUnit(FGBaseMover 30 60)
  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)
}


;; TOGRAN FREEDOM G HEADQUARTERS LEVEL 3

DefineBuildingType(tfh3)
{
  SetBuildingImages(nfhqt3l0.spr tfhqt3l0.spr bfhqtmn2.spr)
  SetDescription(Togran_Headquarters_3)
  SetRequirements {
    SetType(40006)
    SetPrereqs(40010 40014)
    SetMaker()
    SetEquivalence(2003)
    SetTechLevel(9)
  }
  SetEfficiencyResource {
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
  IsUpgradeOf(tfh2)
;  SetEquivalentBuilding(ih3)
  NeedResource(2 300)
  SetSide(3)
  SetBay(2 3)
  SetRepairCost(10 8)
  SetHitpoints(3600 1)
  SetSeeingRange(16)
  SetSeeingHeight(1)
  SetCost(1250 37)
  SetSell(625 19)
  CanMake()
  MakesCrater(4)
  GivesMiniMap()
  SetShadowImage(bfhqtsh2.spr)
  SetTransportUnit(FGBaseMover 30 60)
  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)
}


;; Togran IMPERIUM Headquarters 1

DefineBuildingType(tih1)
{
  SetBuildingImages(nihqt1l0.spr tihqt1l0.spr bihqtmn0.spr)
  SetDescription(Togran_Headquarters_1)
  SetRequirements {
    SetType(40001)
    SetPrereqs()
    ; SetMaker(1005)
    SetMaker(40500)
    SetEquivalence(2001)
    SetTechLevel(0)
  }
  SetEfficiencyResource{
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
  NeedResource(2 100)
  SetSide(3)
;  SetEquivalentBuilding(fh1)
  SetBay(2 4)
  SetRepairCost(10 8)
  SetHitpoints(1440 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  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)
}


;; Togran IMPERIUM Headquarters 2

DefineBuildingType(tih2)
{
  SetBuildingImages(nihqt2l0.spr tihqt2l0.spr bihqtmn1.spr)
  SetDescription(Togran_Headquarters_2)
  SetRequirements {
    SetType(40002)
    SetPrereqs(40007 40011)
    SetMaker()
    SetEquivalence(2002)
    SetTechLevel(4)
  }
  SetEfficiencyResource{
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
  IsUpgradeOf(tih1)
  NeedResource(2 200)
  SetSide(3)
;  SetEquivalentBuilding(fh2)
  SetBay(2 4)
  SetRepairCost(10 8)
  SetHitpoints(2880 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(1000 30)
  SetShadowImage(bihqtsh1.spr)
  SetSell(500 15)
  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)
}

;; TOGRAN IMPERIUM Headquarters 3

DefineBuildingType(tih3)
{
  SetBuildingImages(nihqt3l0.spr tihqt3l0.spr bihqtmn2.spr)
  SetDescription(Togran_Headquarters_3)
  SetRequirements {
    SetType(40003)
    SetPrereqs(40008 40012)
    SetMaker()
    SetEquivalence(2003)
    SetTechLevel(8)
  }
  SetEfficiencyResource{
    (50 0)
    (100 90)
  }
  SetSpyType(HQ)
  IsUpgradeOf(tih2)
  NeedResource(2 300)
  SetSide(3)
;  SetEquivalentBuilding(fh3)
  SetBay(2 4)
  SetRepairCost(10 8)
  SetHitpoints(4330 1)
  SetSeeingRange(16)
  SetSeeingHeight(1)
  SetCost(1250 37)
  SetSell(625 18)
  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)
}

;; TOGRAN FREEDOM GUARD Water Launch Pad

DefineBuildingType(tfglp)
{
  SetBuildingImages(nclnc1l0.spr tclnc1l0.spr bclncmn0.spr)
  SetDescription(Water_Launch_Pad)
  SetRequirements {
    SetType(40037)
    SetPrereqs()
    SetMaker(40500)
    SetEquivalence(1008)
    SetTechLevel(0)
  }
  SetSpyType(RESOURCE)
  SetSide(3)
;  SetEquivalentBuilding(implp)
  SetBay(3 2)
  NeedResource(2 100)
  SetRepairCost(10 8)
  SetHitpoints(1300 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetShadowImage(bclncsh0.spr)
  SetResource(0 0 3000 0)
  SetResourceSale(0 100 500)
  SetResourceSaleAnimation(3)
  SetCost(2500 37)
  SetSell(1250 18)
  MakesCrater(1)
  AssociatedUnit(TGroundTransporter 0)
  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 Taelon Power Generator

DefineBuildingType(tfgpp)
{
  SetBuildingImages(ncpow1l0.spr tcpow1l0.spr bcpowmn0.spr)
  SetDescription(Taelon_Power_Generator)
  SetRequirements {
    SetType(40016)
    SetPrereqs()
    SetMaker(40500)
    SetEquivalence(1007)
    SetTechLevel(0)
  }
  SetSpyType(RESOURCE)
  SetResource(1 0 1000 500)
  SupplyResource(1 0 2 100)
  SetSide(3)
;  SetEquivalentBuilding(imppp)
  SetBay(1 3)
  SetRepairCost(10 8)
  SetHitpoints(1450 1)
  SetSeeingRange(8)
  SetShadowImage(bcpowsh0.spr)
  SetIdleAnimation(3)
  SetSeeingHeight(1)
  SetCost(2000 30)
  SetSell(1000 15)
  MakesCrater(1)
  AssociatedUnit(TGroundTransporter 0)
  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 Training Facility

DefineBuildingType(tfu1)
{
  SetBuildingImages(nfutf1l0.spr tfutf1l0.spr bfutfmn0.spr)
  SetDescription(Togran_Training_Facility)
  SetRequirements {
    SetType(40009)
    SetPrereqs(40004)
    SetMaker(40500)
    SetEquivalence(2004)
    SetTechLevel(0)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  SetSpyType(UNITPLAN)
  NeedResource(2 100)
;  SetEquivalentBuilding(iu1)
  SetSide(3)
  SetBay(2 2)
  SetRepairCost(10 8)
  SetHitpoints(750 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetShadowImage(bfutfsh0.spr)
  SetCost(1500 45)
  SetSell(750 23)
  CanMake()
  MakesCrater(3)
  SetTransportUnit(FGBaseMover 15 30)
  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)
}

; Togra FREEDOM GUARD Advanced Training Facility

DefineBuildingType(tfu2)
{
  SetBuildingImages(nfutf2l0.spr tfutf2l0.spr bfutfmn1.spr)
  SetDescription(Togran_Advanced_Training_Facility)
  SetRequirements {
    SetType(40010)
    SetPrereqs(40002 40009)
    SetMaker()
    SetEquivalence(2005)
   SetTechLevel(5)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  SetSpyType(UNITPLAN)
  NeedResource(2 200)
  IsUpgradeOf(tfu1)
  SetEquivalentBuilding(iu2)
  SetSide(3)
  SetBay(2 2)
  SetRepairCost(10 8)
  SetHitpoints(1500 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 23)
  SetSell(375 11)
  CanMake()
  MakesCrater(2)
  SetIdleAnimation(3)
  SetTransportUnit(FGBaseMover 30 60)
  SetShadowImage(bfutfsh1.spr)
  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)
}

;; TOGRAN IMPERIUM Unit Training 1

DefineBuildingType(tiu1)
{
  SetBuildingImages(niutf1l0.spr tiutf1l0.spr biutfmn0.spr)
  SetDescription(Togran_Training_Facility)
  SetRequirements {
    SetType(40007)
    SetPrereqs(40001)
    SetMaker(40500)
    SetEquivalence(2004)
    SetTechLevel(0)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  SetSpyType(UNITPLAN)
  NeedResource(2 100)
  SetSide(3)
;  SetEquivalentBuilding(fu1)
  SetBay(2 2)
  SetRepairCost(10 8)
  SetHitpoints(900 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(1500 45)
  SetSell(750 23)
  SetShadowImage(biutfsh0.spr)
  CanMake()
  MakesCrater(2)
  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)
}

;; TOGRAN IMPERIUM Unit Training 2

DefineBuildingType(tiu2)
{
  SetBuildingImages(niutf2l0.spr tiutf2l0.spr biutfmn1.spr)
  SetDescription(Togran_Advanced_Training_Facility)
  SetRequirements {
    SetType(40008)
    SetPrereqs(40002 40007)
    SetMaker()
    SetEquivalence(2005)
    SetTechLevel(5)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  SetSpyType(UNITPLAN)
  IsUpgradeOf(tiu1)
  NeedResource(2 200)
  SetSide(3)
;  SetEquivalentBuilding(fu2)
  SetBay(2 2)
  SetShadowImage(biutfsh1.spr)
  SetRepairCost(10 8)
  SetHitpoints(1800 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 23)
  SetSell(375 11)
  CanMake()
  MakesCrater(3)
  SetIdleAnimation(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)
}


;; TOGRAN FREEDOM GUARD Assembly Plant

DefineBuildingType(tfc1)
{
  SetBuildingImages(nfvcy1l0.spr tfvcy1l0.spr bfvcymn0.spr)
  SetDescription(Togran_Assembly_Plant)
  SetRequirements {
    SetType(40013)
    SetPrereqs(40004)
    SetMaker(40500)
    SetEquivalence(2006)
    SetTechLevel(0)
  }
  SetEfficiencyResource {
    (10 0)
    (100 90)
  }
  SetSpyType(UNITPLAN)
  NeedResource(2 100)
  SetSide(3)
;  SetEquivalentBuilding(ic1)
  SetBay(2 2)
  SetRepairCost(10 8)
  SetHitpoints(1000 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(2200 66)
  SetSell(1100 33)
  CanMake()
  MakesCrater(4)
  SetShadowImage(bfvcysh0.spr)
  SetTransportUnit(FGBaseMover 15 30)
  SetShadowImage(bfvcysh0.spr)
  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)
}

;; TOGRAN FREEDOM GUARD Advanced Assembly Plant

DefineBuildingType(tfc2)
{
  SetBuildingImages(nfvcy2l0.spr tfvcy2l0.spr bfvcymn1.spr)
  SetDescription(Togran_Advanced_Assembly_Plant)
  SetRequirements {
    SetType(40014)
    SetPrereqs(40005 40013)
    SetMaker()
    SetEquivalence(2007)
    SetTechLevel(5)
  }
  SetEfficiencyResource {
    (10 0)
    (100 90)
  }
  SetSpyType(UNITPLAN)
  NeedResource(2 200)
  IsUpgradeOf(tfc1)
  SetSide(3)
;  SetEquivalentBuilding(ic2)
  SetBay(2 2)
  SetRepairCost(10 8)
  SetHitpoints(2000 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(2500 75)
  SetSell(1250 37)
  CanMake()
  MakesCrater(4)
  SetShadowImage(bfvcysh1.spr)
  SetTransportUnit(FGBaseMover 30 60)
  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)
}

;; TOGRAN IMPERIUM Factory 1

DefineBuildingType(tic1)
{
  SetBuildingImages(nivcy1l0.spr tivcy1l0.spr bivcymn0.spr)
  SetDescription(Imp_Assembly_Plant)
  SetRequirements {
    SetType(40011)
    SetPrereqs(40001)
    SetMaker(40500)
    SetEquivalence(2006)
    SetTechLevel(0)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  SetSpyType(UNITPLAN)
  NeedResource(2 100)
  SetSide(3)
;  SetEquivalentBuilding(fc1)
  SetBay(1 3)
  SetRepairCost(10 8)
  SetHitpoints(1200 1)
  SetShadowImage(bivcysh0.spr)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(2200 66)
  SetSell(1100 33)
  CanMake()
  MakesCrater(4)
  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)
}


;; TOGRA IMPERIUM Factory 2

DefineBuildingType(tic2)
{
  SetBuildingImages(nivcy2l0.spr tivcy2l0.spr bivcymn1.spr)
  SetDescription(Imp_Advanced_Assembly_Plant)
  SetRequirements {
    SetType(40012)
    SetPrereqs(40002 40011)
    SetMaker()
    SetEquivalence(2007)
    SetTechLevel(4)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  SetSpyType(UNITPLAN)
  IsUpgradeOf(tic1)
  NeedResource(2 200)
  SetSide(3)
;  SetEquivalentBuilding(fc2)
  SetBay(1 3)
  SetRepairCost(10 8)
  SetHitpoints(2400 1)
  SetSeeingRange(8)
  SetShadowImage(bivcysh1.spr)
  SetSeeingHeight(1)
  SetCost(2500 75)
  SetSell(1250 37)
  CanMake()
  MakesCrater(4)
  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)
}

;; TOGRAN FREEDOM GUARD Laser Turret

DefineBuildingType(tfg)
{
  SetBuildingImages(nfgdt1l0.spr tfgdt1l0.spr bfgdtmn0.spr)
  SetDescription(Togran_Laser_Turret)
  SetRequirements {
    SetType(40020)
    SetPrereqs(40004)
    SetMaker(40500)
    SetEquivalence(2008)
    SetTechLevel(0)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 50)
  SetSide(3)
;  SetEquivalentBuilding(ig)
  SetBay(1 1)
  SetRepairCost(10 8)
  SetHitpoints(400 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(500 22)
  SetSell(250 7)
  SetShadowImage(bfgdtsh0.spr)
  ActivePart(FGGuardTower 25 13 none 0 0 none 0 0 none 0 0)
  MakesCrater(0)
  SetTransportUnit(FGBaseMover 15 30)
  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)
}

;; TOGRAN FREEDOM GUARD Heavy Rail Platform

DefineBuildingType(tfa)
{
  SetBuildingImages(nfagt1l0.spr tfagt1l0.spr bfagtmn0.spr)
  SetDescription(FG_Heavy_Laser_Platform)
  SetRequirements {
    SetType(40021)
    SetPrereqs(40005)
    SetMaker(40500)
    SetEquivalence(2009)
    SetTechLevel(6)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 100)
  SetSide(3)
;  SetEquivalentBuilding(ia)
  SetBay(1 1)
  SetRepairCost(10 8)
  SetHitpoints(550 1)
  SetSeeingRange(12)
  SetSeeingHeight(1)
  SetCost(1700 51)
  SetSell(850 25)
  MakesCrater(2)
  SetShadowImage(bfagtsh0.spr)
  ActivePart(FGAdvancedGuardTower 23 18 FGAdvancedGuardTower 47 18 none 0 0 none 0 0)
  SetTransportUnit(FGBaseMover 15 30)
  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)
}

;; TOGRAN IMPERIUM Guard Tower

DefineBuildingType(tig)
{
  SetBuildingImages(nigdt1l0.spr tigdt1l0.spr bigdtmn0.spr)
  SetDescription(Imp_Plasma_Turret)
  SetRequirements {
    SetType(40022)
    SetPrereqs(40001)
    SetMaker(40500)
    SetEquivalence(2008)
    SetTechLevel(0)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 50)
  SetSide(3)
;  SetEquivalentBuilding(fg)
  SetRepairCost(10 8)
  SetHitpoints(400 1)
  SetSeeingRange(8)
  SetShadowImage(bigdtsh0.spr)
  SetSeeingHeight(1)
  SetCost(500 22)
  SetSell(250 8)
  MakesCrater(1)
  ActivePart(ImpGuardTower 24 24 none 0 0 none 0 0 none 0 0)
  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)
}



;; TOGRAN IMPERIUM Advanced Guard Tower

DefineBuildingType(tia)
{
  SetBuildingImages(niagt1l0.spr tiagt1l0.spr biagtmn0.spr)
  SetDescription(Imp_Neutron_Accelerator)
  SetRequirements {
    SetType(40023)
    SetPrereqs(40002)
    SetMaker(40500)
    SetEquivalence(2009)
    SetTechLevel(6)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 100)
  SetSide(3)
;  SetEquivalentBuilding(fa)
  SetRepairCost(10 8)
  SetHitpoints(550 1)
  SetSeeingRange(12)
  SetSeeingHeight(1)
  SetCost(1700 51)
  SetSell(850 25)
  MakesCrater(3)
  SetShadowImage(biagtsh0.spr)
  ActivePart(ImpAdvancedGuardTower 35 21 none 0 0 none 0 0 none 0 0)
  SetVulnerability(BuildingArmour 100)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}

;; TOGRAN FREEDOM GUARD Air Defense Site

DefineBuildingType(tfs)
{
  SetBuildingImages(nfaar1l0.spr tfaar1l0.spr bfaarmn0.spr)
  SetDescription(Togran_Air_Defense_Site)
  SetRequirements {
    SetType(40024)
    SetPrereqs(40005)
    SetMaker(40500)
    SetEquivalence(2010)
    SetTechLevel(8)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 50)
  SetSide(3)
;  SetEquivalentBuilding(is)
  SetBay(1 1)
  SetRepairCost(10 8)
  SetHitpoints(600 1)
  SetSeeingRange(12)
  SetSeeingHeight(1)
  SetCost(1000 30)
  SetSell(500 15)
  MakesCrater(1)
  SetShadowImage(bfaarsh0.spr)
  ActivePart(FGAntiAirSite 22 6 none 0 0 none 0 0 none 0 0)
  SetTransportUnit(FGBaseMover 15 30)
  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)
}

;; TOGRAN IMPERIUM Anti Aircraft Site

DefineBuildingType(tis)
{
  SetBuildingImages(niaar1l0.spr tiaar1l0.spr biaarmn0.spr)
  SetDescription(Air_Defense_Site)
  SetRequirements {
    SetType(40025)
    SetPrereqs(40002)
    SetMaker(40500)
    SetEquivalence(2010)
    SetTechLevel(9)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 50)
  SetSide(3)
;  SetEquivalentBuilding(fs)
  SetBay(1 1)
  SetRepairCost(10 8)
  SetHitpoints(720 1)
  SetSeeingRange(12)
  SetSeeingHeight(1)
  SetCost(1000 30)
  SetSell(500 15)
  SetShadowImage(bigdtsh0.spr)
  MakesCrater(2)
  ActivePart(ImpAntiAirSite 48 20 ImpAntiAirSite 20 36 ImpAntiAirSite 54 44 none 0 0)
  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)
}

;; TOGRAN FREEDOM GUARD Camera Tower

DefineBuildingType(tfgca)
{
  SetBuildingImages(nccam1l0.spr tccam1l0.spr bccammn0.spr)
  SetDescription(Camera_Tower)
  SetRequirements {
    SetType(40028)
    SetPrereqs(40005)
    SetMaker(40500)
    ;SetEquivalence(1017)
    SetTechLevel(4)
  }
  NeedResource(2 50)
  SetSide(3)
;  SetEquivalentBuilding(impca)
  SetRepairCost(10 8)
  SetHitpoints(150 1)
  SetSeeingRange(16)
  SetSeeingHeight(3)
  SetCost(200 6)
  SetSell(100 3)
  SetShadowImage(bccamsh0.spr)
  MakesCrater(0)
  IsNotBuilderEater()
  IsBuiltFromEdge()
  SetVulnerability(BuildingArmour 100)
  ActivePart(CameraTower 14 11 none 0 0 none 0 0 none 0 0)
  SetHealthExplosion(80 building_80_explosion)
  SetHealthExplosion(60 building_60_explosion)
  ;SetHealthExplosion(33 building_33_explosion)
  SetHealthExplosion(0 building_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc2.wav)
}

;; TOGRAN FREEDOM GUARD Field Hospital

DefineBuildingType(tfgho)
{
  SetBuildingImages(nfhsp1l0.spr tfhsp1l0.spr bfhspmn0.spr)
  SetDescription(Field_Hospital)
  SetRequirements {
    SetType(40029)
    SetPrereqs(40009)
    SetMaker(40500)
    SetEquivalence(2011)
    SetTechLevel(2)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 100)
  SetSide(3)
;  SetEquivalentBuilding(impho)
  SetBay(3 2)
  SetRepairCost(10 8)
  SetHitpoints(600 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(500 15)
  SetSell(250 7)
  CanHeal()
  MakesCrater(1)
  SetShadowImage(bfhspsh0.spr)
  SetTransportUnit(FGBaseMover 15 30)
  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)
}

;; TOGRAN IMPERIUM Hospital

DefineBuildingType(timpho)
{
  SetBuildingImages(nihsp1l0.spr tihsp1l0.spr bihspmn0.spr)
  SetDescription(Field_Hospital)
  SetRequirements {
    SetType(40030)
    SetPrereqs(40007)
    SetMaker(40500)
    SetEquivalence(2011)
    SetTechLevel(2)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 100)
  SetSide(3)
;  SetEquivalentBuilding(fgho)
  SetBay(0 2)
  SetRepairCost(10 8)
  SetHitpoints(720 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(500 15)
  SetSell(250 7)
  CanHeal()
  SetShadowImage(bihspsh0.spr)
  MakesCrater(2)
  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)
}

;; TOGRAN FREEDOM GUARD Repair Station

DefineBuildingType(tfgre)
{
  SetBuildingImages(nfrep1l0.spr tfrep1l0.spr bfrepmn0.spr)
  SetDescription(Repair_Station)
  SetRequirements {
    SetType(40033)
    SetPrereqs(40013)
    SetMaker(40500)
    SetEquivalence(2012)
    SetTechLevel(2)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 100)
  SetSide(3)
;  SetEquivalentBuilding(impre)
  SetBay(2 2)
  SetRepairCost(10 8)
  SetHitpoints(600 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(800 24)
  SetSell(400 12)
  CanRepair()
  MakesCrater(3)
  SetShadowImage(bfrepsh0.spr)
  SetRepairAnimation(3)
  SetIdleAnimation(4)
  SetTransportUnit(FGBaseMover 15 30)
  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)
}

;; TOGRAN IMPERIUM Repair Bay

DefineBuildingType(timpre)
{
  SetBuildingImages(nirep1l0.spr tirep1l0.spr birepmn0.spr)
  SetDescription(Repair_Station)
  SetRequirements {
    SetType(40034)
    SetPrereqs(40011)
    SetMaker(40500)
    SetEquivalence(2012)
    SetTechLevel(2)
  }
  NeedResource(2 100)
  SetSide(3)
;  SetEquivalentBuilding(fgre)
  SetBay(1 2)
  SetRepairCost(10 8)
  SetHitpoints(720 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(800 24)
  SetSell(400 12)
  CanRepair()
  SetShadowImage(birepsh0.spr)
  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)
}

;; TOGRAN FREEDOM GUARD Phasing Facility

DefineBuildingType(tft1)
{
  SetBuildingImages(nfphf1l0.spr tfphf1l0.spr bfphfmn0.spr)
  SetDescription(T_Phasing_Facility)
  SetRequirements {
    SetType(40040)
    SetPrereqs(40004)
    SetMaker(40500)
    SetTechLevel(4)
  }
  NeedResource(2 100)
  SetSide(3)
  SetHitpoints(1000 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetRepairCost(10 8)
  SetCost(1200 36)
  SetSell(600 18)
  MakesCrater(2)
  SetShadowImage(bfphfsh0.spr)
  SetIdleAnimation(4)
  SetTransportUnit(FGBaseMover 15 30)
  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)
}

;; TOGRAN FREEDOM GUARD Phasing Facilty 2

DefineBuildingType(tft2)
{
  SetBuildingImages(nfphf2l0.spr tfphf2l0.spr bfphfmn1.spr)
  SetDescription(FG_Advanced_Phasing_Facility)
  SetRequirements {
    SetType(40041)
    SetPrereqs(40005)
    SetMaker()
    SetTechLevel(7)
  }
  NeedResource(2 200)
  IsUpgradeOf(tft1)
  SetRooms(5 10)
  SetBay(2 2)
  SetSide(3)
;  SetEquivalentBuilding(it)
  SetRepairCost(10 8)
  SetHitpoints(2000 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(1200 36)
  SetSell(600 18)
  AssociatedUnit(Tundergtunnel 1)
  SetShadowImage(bfphfsh1.spr)
  MakesCrater(3)
  SetIdleAnimation(3)
  SetBoardAnimation(3)
  SetTransportUnit(FGBaseMover 30 60)
  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)
}

;; TOGRAN FREEDOM GUARD Rearming Deck;;;

DefineBuildingType(tfgar)
{
  SetBuildingImages(nfrrm1l0.spr tfrrm1l0.spr bfrrmmn0.spr)
  SetDescription(Rearming_Deck)
  SetRequirements {
    SetType(40047)
    SetPrereqs(40006)
    SetMaker(40500)
    SetEquivalence(1011)
    SetTechLevel(9)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 120)
  SetSide(3)
;  SetEquivalentBuilding(impar)
  SetBay(1 1)
  SetRepairCost(10 8)
  SetHitpoints(800 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(1000 30)
  SetSell(500 15)
  CanRearmFlyer()
  MakesCrater(2)
  SetShadowImage(bfrrmsh0.spr)
  SetRearmAnimation(3)
  SetIdleAnimation(4)
  SetTransportUnit(FGBaseMover 15 30)
  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)
}

;; TOGRAN IMPERIUM Temporal Gate

DefineBuildingType(tit)
{
  SetBuildingImages(nitgt1l0.spr titgt1l0.spr bitgtmn0.spr)
  SetDescription(Imp_Temporal_Gate)
  SetRequirements {
    SetType(40050)
    SetPrereqs(40002)
    SetMaker(40500)
    SetTechLevel(8)
  }
  SetEfficiencyResource{
    (0 50)
    (100 90)
  }
  NeedResource(2 100)
  SetSide(3)
;  SetEquivalentBuilding(ft2)
  SetBay(1 1)
  SetRepairCost(10 8)
  SetHitpoints(1000 1)
  SetSeeingRange(8)
  SetShadowImage(bitgtsh0.spr)
  SetSeeingHeight(1)
  SetCost(1800 54)
  SetSell(900 27)
  SetRooms(3 10)
  IsTeleport(60 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)
}

;; TOGRAN IMPERIUM Landing Deck

DefineBuildingType(timpar)
{
  SetBuildingImages(nirrm1l0.spr tirrm1l0.spr birrmmn0.spr)
  SetDescription(Rearming_Deck)
  SetRequirements {
    SetType(40036)
    SetPrereqs(40003)
    SetMaker(40500)
    SetEquivalence(1011)
    SetTechLevel(8)
  }
  SetEfficiencyResource{
    (10 0)
    (100 90)
  }
  NeedResource(2 100)
  SetSide(3)
;  SetEquivalentBuilding(fgar)
  SetBay(2 2)
  SetRepairCost(10 8)
  SetHitpoints(960 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(1000 30)
  SetSell(500 15)
  SetShadowImage(birrmsh0.spr)
  SetIdleAnimation(3)
  CanRearmFlyer()
  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)
}


;; TOGRAN IMPERIUM Temporal Rift Creator

DefineBuildingType(titrc)
{
  SetBuildingImages(nitrc1l0.spr titrc1l0.spr bitrcmn0.spr)
  SetDescription(Imp_Temporal_Rift_Creator)
  SetRequirements {
    SetType(40052)
    SetPrereqs(40003 40050)
    SetMaker(40500)
    SetTechLevel(10)
  }
  SetEfficiencyResource{
    (0 50)
    (100 90)
  }
  NeedResource(2 200)
  SetSide(3)
  SetRepairCost(10 8)
  SetHitpoints(1000 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(8000 240)
  SetShadowImage(bitrcsh0.spr)
  SetSell(4000 120)
  SetIdleAnimation(3)
  ActivePart(IMPriftCreator 24 24 none 0 0 none 0 0 none 0 0)
  MakesCrater(4)
  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)
}

;;; Small Horizontal Bridge

DefineBuildingType(TogranSmallHorizontalBridge1)
{
  SetBuildingImages(ncsbh1l0.spr tcsbh1l0.spr bcsbhmn0.spr)
  SetDescription(TSmall_Horizontal_Bridge)
  SetRequirements {
    SetType(55500)
    SetPrereqs()
    SetMaker(40500)
    SetTechLevel(1)
  }
  SetSide(3)
  SetBay(0 0)
;  SetRepairCost(10 8)
  SetHitpoints(400 1)
  SetShadowImage(bcsbhsh0.spr)
  SetSeeingRange(0)
  SetSeeingHeight(1)
  SetCost(100 3)
  SetSell(50 2)
  MakesCrater(8)
  IsBridge()
  IsNotBuilderEater()
  IsBuiltFromEdge()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(0 bridge_explosion)
}

; Small Vertical Bridge

DefineBuildingType(TogranSmallVerticalBridge1)
{
  SetBuildingImages(ncsbv1l0.spr tcsbv1l0.spr bcsbvmn0.spr)
  SetDescription(TSmall_Vertical_Bridge)
  SetRequirements {
    SetType(55502)
    SetPrereqs()
    SetMaker(40500)
    SetTechLevel(1)
  }
  SetSide(3)
  SetBay(0 0)
;  SetRepairCost(10 8)
  SetHitpoints(400 1)
  SetShadowImage(bcsbvsh0.spr)
  SetSeeingRange(0)
  SetSeeingHeight(1)
  SetCost(100 3)
  SetSell(50 2)
  MakesCrater(9)
  IsBridge()
  IsNotBuilderEater()
  IsBuiltFromEdge()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(0 bridge_explosion)
}
; Small Centre Bridge

DefineBuildingType(TogranSmallCentreBridge1)
{
  SetBuildingImages(ncsbc1l0.spr tcsbc1l0.spr bcsbcmn0.spr)
  SetDescription(TSmall_Centre_Bridge)
  SetRequirements {
    SetType(55504)
    SetPrereqs()
    SetMaker(40500)
    SetTechLevel(1)
  }
  SetSide(3)
  SetBay(0 0)
;  SetRepairCost(10 8)
  SetHitpoints(400 1)
  SetSeeingRange(0)
  SetSeeingHeight(1)
  SetShadowImage(bcsbcsh0.spr)
  SetCost(150 5)
  SetSell(75 3)
  MakesCrater(7)
  IsBridge()
  IsNotBuilderEater()
  IsBuiltFromEdge()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(0 bridge_explosion)
}

;-----------------------
;  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)
}

;; 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)
}

;------------------------
;  CIVILIAN BUILDINGS   |
;------------------------

;; CIVILIAN Entertainment Facility

DefineBuildingType(ce)
{
  SetBuildingImages(nocen1l0.spr tocen1l0.spr bocenmn0.spr)
  SetDescription(Civilian_Entertainment)
  SetRequirements {
    SetType(13004)
    SetPrereqs()
    SetMaker(1005)
  }
  SetSide(2)
  SetBay(2 2)
  SetRepairCost(10 8)
  SetHitpoints(1200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(4000 40)
  SetSell(2000 20)
  CanMake()
  SetShadowImage(bocensh0.spr)
  MakesCrater(2)
  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)
}


;----------------------------------------------------------------------------
;|  Mission specifics
;----------------------------------------------------------------------------

;; Imperium Water Research

DefineBuildingType(impwr)
{
  SetBuildingImages(nowat1l0.spr towat1l0.spr bowatmn0.spr)
  SetDescription(Imp_Water_Research)
  SetRequirements {
    SetType(50005)
    SetPrereqs()
    SetMaker()
    SetEquivalence(3000)
    SetTechLevel(0)
  }
  SetSide(1)
  SetRepairCost(10 8)
  SetHitpoints(1200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  MakesCrater(2)
  SetShadowImage(towatsh0.spr)
;  SetTransportUnit(FGBaseMover 15 30)
  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 Hover Research

DefineBuildingType(imphr)
{
  SetBuildingImages(nohov1l0.spr tohov1l0.spr bohovmn0.spr)
  SetDescription(Imp_Hover_Research)
  SetRequirements {
    SetType(50007)
    SetPrereqs()
    SetMaker()
    SetEquivalence(3000)
    SetTechLevel(0)
  }
  SetSide(1)
  SetRepairCost(10 8)
  SetHitpoints(1200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  MakesCrater(2)
  SetShadowImage(tohovsh0.spr)
;  SetTransportUnit(FGBaseMover 15 30)
  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 Desicator

DefineBuildingType(impdr)
{
  SetBuildingImages(nodes1l0.spr todes1l0.spr bodesmn0.spr)
  SetDescription(Imp_Desicator_Research)
  SetRequirements {
    SetType(50009)
    SetPrereqs()
    SetMaker()
    SetEquivalence(3000)
    SetTechLevel(0)
  }
  SetSide(1)
  SetRepairCost(10 8)
  SetHitpoints(1200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  MakesCrater(2)
  SetShadowImage(todessh0.spr)
;  SetTransportUnit(FGBaseMover 15 30)
  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 Medical research

DefineBuildingType(impmr)
{
  SetBuildingImages(nomdr1l0.spr tomdr1l0.spr bomdrmn0.spr)
  SetDescription(Imp_Genetic_Research_Facility)
  SetRequirements {
    SetType(50011)
    SetPrereqs()
    SetMaker()
    SetEquivalence(3000)
    SetTechLevel(0)
  }
  SetSide(1)
  SetRepairCost(10 8)
  SetHitpoints(1200 1)
  SetSeeingRange(1)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  MakesCrater(2)
  SetShadowImage(tomdrsh0.spr)
;  SetTransportUnit(FGBaseMover 15 30)
  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)
}

;; Civilian PowerStation 1
;
;DefineBuildingType(civps1)
;{
;  SetBuildingImages(nocpw1l0.spr tocpw1l0.spr bospwmn0.spr)
;  SetDescription(Civ_Power_station_1)
;  SetRequirements {
;    SetType(50020)
;    SetPrereqs()
;    SetMaker()
;    SetEquivalence(3000)
;    SetTechLevel(0)
;  }
;  SetEfficiencyResource {
;    (50 0)
;    (100 90)
;  }
;  SetSide(1)
;  SetRepairCost(10 8)
;  SetHitpoints(1200 1)
;  SetSeeingRange(8)
;  SetSeeingHeight(1)
;  SetCost(750 22)
;  SetSell(375 11)
;  MakesCrater(2)
;  SetShadowImage(tocpwsh0.spr)
;;  SetTransportUnit(FGBaseMover 15 30)
;  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)
;}

;; Civilian Public Shelter

DefineBuildingType(civshl)
{
  SetBuildingImages(noshl1l0.spr toshl1l0.spr boshlmn0.spr)
  SetDescription(Civ_Public_Shelter)
  SetRequirements {
    SetType(50026)
    SetPrereqs()
    SetMaker()
    SetEquivalence(3000)
    SetTechLevel(0)
  }
  SetSide(2)
  SetRepairCost(10 8)
  SetHitpoints(600 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  MakesCrater(2)
  SetShadowImage(toshlsh0.spr)
;  SetTransportUnit(FGBaseMover 15 30)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 headquarter_80_explosion)
  SetHealthExplosion(0 headquarter_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}

;; Civilian SubTransit

DefineBuildingType(civsub)
{
  SetBuildingImages(nosub1l0.spr tosub1l0.spr bosubmn0.spr)
  SetDescription(Civ_SubTransit)
  SetRequirements {
    SetType(50028)
    SetPrereqs()
    SetMaker()
    SetEquivalence(3000)
    SetTechLevel(0)
  }
  SetSide(2)
  SetRepairCost(10 8)
  SetHitpoints(600 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  MakesCrater(2)
  SetShadowImage(tosubsh0.spr)
;  SetTransportUnit(FGBaseMover 15 30)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 headquarter_80_explosion)
  SetHealthExplosion(0 headquarter_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}

;; Civilian Transit Centre

DefineBuildingType(civtcn)
{
  SetBuildingImages(notcn1l0.spr totcn1l0.spr botcnmn0.spr)
  SetDescription(Civ_Transit_Centre)
  SetRequirements {
    SetType(50030)
    SetPrereqs()
    SetMaker()
    SetEquivalence(3000)
    SetTechLevel(0)
  }
  SetSide(2)
  SetRepairCost(10 8)
  SetHitpoints(1200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  MakesCrater(2)
  SetShadowImage(totcnsh0.spr)
;  SetTransportUnit(FGBaseMover 15 30)
  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 Treaty Hall

DefineBuildingType(fgth)
{
  SetBuildingImages(notyh1l0.spr totyh1l0.spr botyhmn0.spr)
  SetDescription(FG_Treaty_Hall)
  SetRequirements {
    SetType(50042)
    SetPrereqs()
    SetMaker()
    SetEquivalence(3000)
    SetTechLevel(0)
  }
  SetSide(0)
  SetRepairCost(10 8)
  SetHitpoints(1200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  MakesCrater(2)
  SetShadowImage(totyhsh0.spr)
;  SetTransportUnit(FGBaseMover 15 30)
  SetIdleAnimation(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)
}

;; Togran HQ

DefineBuildingType(thq)
{
  SetBuildingImages(nothq1l0.spr tothq1l0.spr bothqmn0.spr)
  SetDescription(Togran_Landing_Vessel)
  SetRequirements {
    SetType(50050)
    SetPrereqs()
    SetMaker()
    SetEquivalence(3000)
    SetTechLevel(0)
  }
  SetSide(3)
  SetRepairCost(10 8)
  SetHitpoints(1200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  MakesCrater(2)
  SetShadowImage(tothqsh0.spr)
  SetIdleAnimation(3)
;  SetTransportUnit(FGBaseMover 15 30)
  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)
}

;; Togran Monolith

DefineBuildingType(tm)
{
  SetBuildingImages(nomlt1l0.spr tomlt1l0.spr bomltmn0.spr)
  SetDescription(Togran_Monolith)
  SetRequirements {
    SetType(50052)
    SetPrereqs()
    SetMaker()
    SetEquivalence(3000)
    SetTechLevel(0)
  }
  SetSide(3)
  SetRepairCost(10 8)
  SetHitpoints(92000 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  MakesCrater(2)
  SetShadowImage(tomltsh0.spr)
;  SetTransportUnit(FGBaseMover 15 30)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 headquarter_80_explosion)
  SetHealthExplosion(60 headquarter_60_explosion)
  SetHealthExplosion(0 headquarter_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}

;; Togran Door

DefineBuildingType(td)
{
  SetBuildingImages(notdr1l0.spr totdr1l0.spr botdrmn0.spr)
  SetDescription(Togran_Togras_Laboratory)
  SetRequirements {
    SetType(50053)
    SetPrereqs()
    SetMaker()
    SetEquivalence(3000)
    SetTechLevel(0)
  }
  SetSide(3)
  SetRepairCost(10 8)
  SetHitpoints(90000 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  MakesCrater(2)
  ;SetShadowImage(totdrsh0.spr)
;  SetTransportUnit(FGBaseMover 15 30)
  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)
}


;; Rendezvous Point

DefineBuildingType(rp)
{
  SetBuildingImages(norvp1l0.spr torvp1l0.spr borvpmn0.spr)
  SetDescription(Rendezvous_Point)
  SetRequirements {
    SetType(50054)
    SetPrereqs()
    SetMaker()
    SetEquivalence(3000)
    SetTechLevel(0)
  }
  SetSide(3)
  SetRepairCost(10 8)
  SetHitpoints(1000 1)
  SetSeeingRange(1)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  MakesCrater(2)
  SetShadowImage(torvpsh0.spr)
  SetIdleAnimation(3)
;  SetTransportUnit(FGBaseMover 15 30)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(80 headquarter_80_explosion)
  SetHealthExplosion(60 headquarter_60_explosion)
  SetHealthExplosion(0 headquarter_0_explosion)
  SetRepairActionIndicator(repairgraphic)
  SetDeathSfx(gxexpoc1.wav)
}


;; FG Planetary Defence

DefineBuildingType(fpd)
{
  SetBuildingImages(nopld1l0.spr topld1l0.spr bopldmn0.spr)
  SetDescription(FG_Orbital_Defense_Matrix)
  SetRequirements {
    SetType(50055)
    SetPrereqs()
    SetMaker()
    SetEquivalence(3000)
    SetTechLevel(0)
  }
  SetSide(0)
  SetCPUGainPercent(25)
  SetRepairCost(10 8)
  SetHitpoints(2500 1)
  SetSeeingRange(7)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  MakesCrater(2)
  SetShadowImage(topldsh0.spr)
;  SetTransportUnit(FGBaseMover 15 30)
  SetIdleAnimation(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)
}

;; Imperium Prison

DefineBuildingType(imppri)
{
  SetBuildingImages(nopri1l0.spr topri1l0.spr boprimn0.spr)
  SetDescription(Imp_Prison)
  SetRequirements {
    SetType(50059)
    SetPrereqs()
    SetMaker()
    SetEquivalence(3000)
    SetTechLevel(0)
  }
  SetSide(1)
  SetCPUGainPercent(25)
  SetRepairCost(10 8)
  SetHitpoints(2500 1)
  SetSeeingRange(7)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  MakesCrater(2)
  SetShadowImage(toprish0.spr)
;  SetTransportUnit(FGBaseMover 15 30)
  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)
}

;; Civilian Commercial

DefineBuildingType(cc)
{
  SetBuildingImages(nocbs1l0.spr tocbs1l0.spr bocbsmn0.spr)
  SetDescription(Civilian_Commercial)
  SetRequirements {
    SetType(50056)
    SetPrereqs()
    SetMaker()
    SetEquivalence(3000)
    SetTechLevel(0)
  }
  SetSide(2)
  SetRepairCost(10 8)
  SetHitpoints(1200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  MakesCrater(2)
  SetShadowImage(bocbssh0.spr)
;  SetTransportUnit(FGBaseMover 15 30)
  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)
}

;; Civilian Factory

DefineBuildingType(cp)
{
  SetBuildingImages(nowar1l0.spr towar1l0.spr bowarmn0.spr)
  SetDescription(Civilian_Factory)
  SetRequirements {
    SetType(50058)
    SetPrereqs()
    SetMaker()
    SetEquivalence(3000)
    SetTechLevel(0)
  }
  SetSide(2)
  SetRepairCost(10 8)
  SetHitpoints(1200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  MakesCrater(2)
  SetShadowImage(bowarsh0.spr)
;  SetTransportUnit(FGBaseMover 15 30)
  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)
}

;; Civilian Rural

DefineBuildingType(cr)
{
  SetBuildingImages(nochm4l0.spr tochm4l0.spr bochmmn0.spr)
  SetDescription(Civilian_Rural)
  SetRequirements {
    SetType(50060)
    SetPrereqs()
    SetMaker()
    SetEquivalence(3000)
    SetTechLevel(0)
  }
  SetSide(2)
  SetRepairCost(10 8)
  SetHitpoints(1200 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  MakesCrater(2)
  SetShadowImage(bochmsh0.spr)
;  SetTransportUnit(FGBaseMover 15 30)
  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)
}

;; Civilian Grain Farm

DefineBuildingType(cgf)
{
  SetBuildingImages(nofrm1l0.spr tofrm1l0.spr tofrmmn0.spr)
  SetDescription(Civilian_Grain_Farm)
  SetRequirements {
    SetType(50062)
    SetPrereqs()
    SetMaker()
    SetEquivalence(3000)
    SetTechLevel(0)
  }
  SetSide(2)
  SetRepairCost(10 8)
  SetHitpoints(600 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  MakesCrater(2)
  ;SetShadowImage(tofrmsh0.spr)
;  SetTransportUnit(FGBaseMover 15 30)
  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)
}

;; Civilian Hydro Farm

DefineBuildingType(chf)
{
  SetBuildingImages(nofrm1l1.spr tofrm1l1.spr tofrmmn1.spr)
  SetDescription(Civilian_Hydro_Farm)
  SetRequirements {
    SetType(50064)
    SetPrereqs()
    SetMaker()
    SetEquivalence(3000)
    SetTechLevel(0)
  }
  SetSide(2)
  SetRepairCost(10 8)
  SetHitpoints(600 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  MakesCrater(2)
  ;SetShadowImage(tofrmsh1.spr)
  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)
}

;; Civilian bridge

DefineBuildingType(CivilianBridge)
{
  SetBuildingImages(nobrd1l0.spr tobrd1l0.spr bobrdmn0.spr)
  SetDescription(Civilian_Bridge)
  SetRequirements {
    SetType(50070)
    SetPrereqs()
    SetMaker()
  }
  SetSide(2)
  SetBay(0 0)
;  SetRepairCost(10 8)
  SetHitpoints(4000 1)
  SetShadowImage(tobrdsh0.spr)
  SetSeeingRange(0)
  SetSeeingHeight(1)
  SetCost(100 3)
  SetSell(50 2)
  MakesCrater(5)
  IsBridge()
  IsNotBuilderEater()
  IsBuiltFromEdge()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(0 Bridge2_Explosion)
}

;; Civilian Bridge

DefineBuildingType(CivilianVerticalBridge)
{
  SetBuildingImages(nobrd1l1.spr tobrd1l1.spr bobrdmn1.spr)
  SetDescription(Civilian_Vertical_Bridge)
  SetRequirements {
    SetType(50071)
    SetPrereqs()
    SetMaker()
  }
  SetSide(2)
  SetBay(0 0)
;  SetRepairCost(10 8)
  SetHitpoints(4000 1)
  SetShadowImage(tobrdsh1.spr)
  SetSeeingRange(0)
  SetSeeingHeight(1)
  SetCost(100 3)
  SetSell(50 2)
  MakesCrater(6)
  IsBridge()
  IsNotBuilderEater()
  IsBuiltFromEdge()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(0 Bridge2_Explosion)
}


;; Civilian Farmhouse

DefineBuildingType(cf1)
{
  SetBuildingImages(nofrm1l2.spr tofrm1l2.spr tofrmmn2.spr)
  SetDescription(Civilian_Grain_Farm)
  SetRequirements {
    SetType(50066)
    SetPrereqs()
    SetMaker()
    SetEquivalence(3000)
    SetTechLevel(0)
  }
  SetSide(2)
  SetCPUGainPercent(25)
  SetRepairCost(10 8)
  SetHitpoints(600 1)
  SetSeeingRange(8)
  SetSeeingHeight(1)
  SetCost(750 22)
  SetSell(375 11)
  MakesCrater(2)
  ;SetShadowImage(tofrmsh1.spr)
;  SetTransportUnit(FGBaseMover 15 30)
  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)
}

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



;;; Small Horizontal Bridge

DefineBuildingType(TerrSmallHorizontalBridge1)
{
  SetBuildingImages(ncsbh1l0.spr tcsbh1l0.spr bcsbhmn0.spr)
  SetDescription(TSmallHorizontalBridge)
  SetRequirements {
    SetType(40040)
    SetPrereqs()
    SetMaker(11)
    SetTechLevel(1)
  }
  SetSide(0)
  SetBay(0 0)
  SetHitpoints(400 1)
  SetShadowImage(bcsbhsh0.spr)
  SetSeeingRange(0)
  SetSeeingHeight(1)
  SetCost(100 3)
  SetSell(50 2)
  MakesCrater(8)
  IsBridge()
  IsNotBuilderEater()
  IsBuiltFromEdge()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(0 bridge_explosion)
}

;;; Upgraded Small Horizontal Bridge

DefineBuildingType(UpgTerrSmallHorizontalBridge1)
{
  IsUpgradeOf(TerrSmallHorizontalBridge1)
  SetBuildingImages(ncsbh1l0.spr tcsbh1l0.spr bcsbhmn0.spr)
  SetDescription(UpgTSmallHorizontalBridge)
  SetRequirements {
    SetType(49040)
    SetPrereqs(10004 10006)
    SetMaker()
    SetTechLevel(3)
  }
  SetSide(0)
  SetBay(0 0)
  ;SetRepairCost(10 8)
  SetHitpoints(400 1)
  SetShadowImage(bcsbhsh0.spr)
  SetSeeingRange(5)
  SetSeeingHeight(1)
  SetCost(180 15)
  SetSell(70 2)
  MakesCrater(8)
  ActivePart(TBridgeUnit 36 100 none 0 0 none 0 0 none 0 0)
  IsBridge()
  IsNotBuilderEater()
  IsBuiltFromEdge()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(30 building_60_explosion)
  SetHealthExplosion(0 bridge_explosion)
}


; Small Vertical Bridge

DefineBuildingType(TerrSmallVerticalBridge1)
{
  SetBuildingImages(ncsbv1l0.spr tcsbv1l0.spr bcsbvmn0.spr)
  SetDescription(TSmallVerticalBridge)
  SetRequirements {
    SetType(40042)
    SetPrereqs()
    SetMaker(11)
    SetTechLevel(1)
  }
  SetSide(0)
  SetBay(0 0)
  SetHitpoints(400 1)
  SetShadowImage(bcsbvsh0.spr)
  SetSeeingRange(0)
  SetSeeingHeight(1)
  SetCost(100 3)
  SetSell(50 2)
  MakesCrater(9)
  IsBridge()
  IsNotBuilderEater()
  IsBuiltFromEdge()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(0 bridge_explosion)
}

; Upgraded Small Vertical Bridge

DefineBuildingType(UpgTerrSmallVerticalBridge1)
{
  IsUpgradeOf(TerrSmallVerticalBridge1)
  SetBuildingImages(ncsbv1l0.spr tcsbv1l0.spr bcsbvmn0.spr)
  SetDescription(UpgTSmallVerticalBridge)
  SetRequirements {
    SetType(49042)
    SetPrereqs(10004 10006)
    SetMaker()
    SetTechLevel(3)
  }
  SetSide(0)
  SetBay(0 0)
  ;SetRepairCost(10 8)
  SetHitpoints(400 1)
  SetShadowImage(bcsbvsh0.spr)
  SetSeeingRange(5)
  SetSeeingHeight(1)
  SetCost(180 15)
  SetSell(70 2)
  MakesCrater(9)
  IsBridge()
  IsNotBuilderEater()
  IsBuiltFromEdge()
  ActivePart(TBridgeUnit 13 31 none 0 0 none 0 0 none 0 0)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(30 building_60_explosion)
  SetHealthExplosion(0 bridge_explosion)
}



; Small Centre Bridge

DefineBuildingType(TerrSmallCentreBridge1)
{
  SetBuildingImages(ncsbc1l0.spr tcsbc1l0.spr bcsbcmn0.spr)
  SetDescription(TSmallCentreBridge)
  SetRequirements {
    SetType(40044)
    SetPrereqs()
    SetMaker(11)
    SetTechLevel(1)
  }
  SetSide(0)
  SetBay(0 0)
  SetHitpoints(400 1)
  SetSeeingRange(0)
  SetSeeingHeight(1)
  SetShadowImage(bcsbcsh0.spr)
  SetCost(150 5)
  SetSell(75 3)
  MakesCrater(7)
  IsBridge()
  IsNotBuilderEater()
  IsBuiltFromEdge()
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(0 bridge_explosion)
}


; Upgraded Centre Bridge

DefineBuildingType(UpgTerrSmallCentreBridge1)
{
  IsUpgradeOf(TerrSmallCentreBridge1)
  SetBuildingImages(ncsbc1l0.spr tcsbc1l0.spr bcsbcmn0.spr)
  SetDescription(UpgTSmallCentreBridge)
  SetRequirements {
    SetType(49044)
    SetPrereqs(10004 10006)
    SetMaker()
    SetTechLevel(3)
  }
  SetSide(0)
  SetBay(0 0)
  ;SetRepairCost(10 8)
  SetHitpoints(400 1)
  SetSeeingRange(5)
  SetSeeingHeight(1)
  SetShadowImage(bcsbcsh0.spr)
  SetCost(300 18)
  SetSell(105 5)
  MakesCrater(7)
  IsBridge()
  IsNotBuilderEater()
  IsBuiltFromEdge()
  ActivePart(TBridgeUnit 19 5 TBridgeUnit 79 77 none 0 0 none 0 0)
  SetVulnerability(BuildingArmour 100)
  SetHealthExplosion(30 building_60_explosion)
  SetHealthExplosion(0 bridge_explosion)
}