;Ŀ
; UNITS.TXT : Defines all units which are in the game                       
;

;
; Sample Unit Type Definition

;DefineUnitType(unitident)
;{
;  SetDescription(string)             ; description of the unit
;
;  SetMenuImage(sprite)               ; image which is displayed on the menu
;  SetSelectSounds(wav wav wav wav)   ; sounds used when unit is selected
;  SetResponseSounds(wav wav wav wav) ; sounds used when unit responds to orders
;  SetCommandPointLoad(3)             ; number of command points this loads the system with
;  SetSide(1)                         ; side this unit belongs to
;  SetCost(cost time)                 ; cost to build and time to build
;  UseEffects(Hover)                  ; effects this unit uses when moving
;  SetMoveMode(Hover)                 ; movement mode of this unit (Ground, Hover, Fly, Fixed)
;  SetStrength(hitpoints)             ; number of hitpoints the unit has
;  SetSelfHeal(wait rate)             ; wait is cycles to wait since last damage, rate is cycles to get 100% health.  SetStrength must be issued first!
;  SetPhysics(mass speed)             ; mass and maxspeed of the unit
;  SetHitSize(radius)                 ; damage radius of the unit (pixels)
;  SetSeeingRange(radius)             ; seeing range of the radius (tiles)
;  SetVulnerability(type strength)    ; defense type and strength
;  SetCarry(units mass)               ; hold units/mass
;
;  SetBuildingSrcAndDst {             ; building src and dst pairs for auto resource pathing
;    (src dest)
;    (src dest)
;    (src dest)
;    (src dest)
;  }
;  SetResourceTransport(id max)       ; can store max of id resource
;
;  SetRequirements {
;    SetType(1014)                    ; prereq type of this unit
;    SetPrereqs(11012)                ; required prereqs for this unit
;    SetMaker(11003)                  ; possible makers of this unit
;    SetEquivalence()                 ; defaults to no equivalence (optional)
;    SetTechLevel()                   ; defaults to tech level 0   (optional)
;  }
;
;  IsHuman()                          ; is unit human this?
;  CanGrab(unittypesym time)          ; can this unit grab other units ? (what does it convert them to and in what time)
;  CanMorph()                         ; can this unit morph ?
;  CanSpy(mintime maxtime busttime)   ; can this unit spy ? (also has mintime and maxtime which are used as bounds to get a random time before unit gets busted while spying and a busttime which defines how long the unit must wait before it can reenter a building after being busted)
;  CanPowerSpike(spike_time immune_time animsection recharge)  ; is this unit blessed with power spiking ability?
;  CanSabotage()                      ; can this unit sabotage ?
;  CanBoomerang()                     ; can this unit boomerang ?
;  CanAlternate(unittypesym)          ; can this unit alternate ? (what does it alternate to)
;  CanVeteran(unittypesym exp)        ; can this unit become a veteran ? (what does it become when its verteran, how much xp does it need)
;  ChargeWeapon(unit_cycles_to_charge_for)
;  SetTactAI (tenacity damage_tolerance autonomy) ; 0 = low, 1 = medium; 2 = high; -1 = use player setting (default) - override player / general.txt settings
;  CanEMPPulse {
;    SetAnimSection (firing_frame)    ; firing frame number
;    SetSound (firing_sound.wav)      ; sound effect played
;    SetExplosion (explosion)         ; the explosion to play
;    SetBlastDelay (delay)            ; delay in frames before the blast hits
;    SetDisableTime (time)            ; time in frames the enemy is disabled for
;    SetRefireDelay (time)            ; time after recovering from an emp before susceptable to the next one
;    SetRange (tile)                  ; range in tiles of the emp blast
;  }
;  CanTerraform {
;    SetAnimSection (firing_frame)    ; firing frame number
;    SetSound (firing_sound.wav)      ; sound effect played
;    SetExplosion (explosion)         ; the explosion to play
;    SetTile (tilenumber)             ; tilenumber to terraform to
;    SetRadius (radius)               ; radius in tiles of the terraform.
;  }
;  SetRundownInfo {                   ; rundown information
;    SetAttack()                      ; the rundown attack of this unit
;    SetDefence()                     ; the rundown defence of this unit
;    SetSquishSound()                 ; the sound made when run over
;  }
;
;                                     ; note there are 16 supported special groups, occupying bit positions 0..15
;  SetGroup {
;    ProcessEvery (number)            ; nr game cycles to process these requirements for this unit type
;    MaskGiven (number)               ; Give this / these mask(s) to a radius of RadiusGiven
;    RadiusGiven (number)             ; Radius of effect for this mask
;
;    LOSMaskRequired (number)         ; One of these masks must be within range of a mask giver from the same team to get LOS
;    LOSMaskRequiredAlly (number)     ; One of these masks must be within range of a mask giver from any allied team to get LOS
;    LOSMaskLasts (number)            ; Number of process_every cycles after a valid mask is removed that you still have LOS
;
;    ControlMaskRequired (number)     ; One of these masks must be within range of a mask giver from the same team to get control
;    ControlMaskRequiredAlly (number) ; One of these masks must be within range of a mask giver from any allied team to get control  (control is by the owning team)
;    ControlMaskLasts (number)        ; Number of process_every cycles after a valid mask is removed that you still have control
;    ControlMaskTakenByAlly (number)  ; If uncontrolled and this mask is within range from allied team, give unit to player of taker
;    ControlMaskTakenByNeutral (number); If uncontrolled and this mask is within range from neutral team, give unit to player of taker
;    ControlMaskTakenByEnemy (number) ; If uncontrolled and this mask is within range from enemy team, give unit to player of taker
;    RetrainingTime (number)          ; Number of Process_Every cycles between being the only controller and fully converting.  If the owner comes back, training ceases
;
;    UncontrolledProvokedBehaviour (number) ; If uncontrolled and attacked, (if a mask of given type from ALLY is nearby, fight / attack.  Otherwise flee (0 = always flee. -1 = always attack))
;    Wander (delay tiles random pause range) ; delay before start to wander when uncontrolled (+/- 50%), number of tiles to move closer to closest building, random NR of tiles on top of that, pause time before next wander (+/- 50%), how close to building to be before stop wandering.
;  }
;
;  IsSequentialFire()                 ; Weapons on individual parts may only fire sequentially
;
;  AddPart {
;    SetRotationRate(10)              ; rotational rate of this part
;    SetRotationalArc(180)            ; rotational arc of this part
;    SetScanDelay(500)                ; delay between rescanning
;    SetImage(tacmrow.spr)            ; image of this part
;    SetMoveAnimation(0)              ; move animation frame
;    ;SetHealthExplosion(0 expl attached)  ; health explosions
;    AddWeapon(name spriteframe fireframe); weapon name, sprite frame, fireframe (delay before projectile appears)
;  }
;}

;Ŀ
; FREEDOM GUARD Unit Definitions                                            
;

;
; FREEDOM GUARD SUPPORT UNITS

;
; FREEDOM GUARD : Construction Rig

DefineUnitType(FGConstructionCrew)
{
  SetDescription(Construction_Rig)
  SetMenuImage(ucfcnmn0.spr)
  SetSelectSounds(gvfg1sl0.wav gvfg1sl1.wav gvfg1sl2.wav)
  SetResponseSounds(gvfg1rl0.wav gvfg1rl1.wav gvfg1rl2.wav)
  SetDefaultUnit(3)
  SetEquivalentUnit(IMPConstructionCrew)
  SetSide(0)
  SetCost(30 1)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(1 6)
  SetHitSize(5)
  SetSeeingRange(9)
  CanMorphIntoOverlay(electric_blue_explosion 1)
  CanBlend()
  SetVulnerability(TankPlatingWet 100)
  SetShadowImage(ucfcnsh0.spr)
 ;SetHealthExplosion(0 eodeblg3_explosion attached)
  SetRequirements {
    SetType(11)
    SetPrereqs(10001)
    SetMaker(10001 10002 10003)
    SetEquivalence(1)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ucfcnst0.spr)
    SetMoveAnimation(0)
    SetStandingAnimation(1)
    SetHealthExplosion(0 splatd_explosion unattached)
  }
}

;
; FREEDOM GUARD : Raider

DefineUnitType(FGFreedomFighter)
{
  SetDescription(Raider)
  SetMenuImage(ufradmn0.spr)
  SetSelectSounds(gvfg2sl0.wav gvfg2sl1.wav gvfg2sl2.wav gvfg2sl3.wav)
  SetResponseSounds(gvfg2rl0.wav gvfg2rl1.wav gvfg2rl2.wav gvfg2rl4.wav)
;  SetEquivalentUnit(IMPStrikeMarine)
  SetSide(0)
  SetCost(15 1)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(1 8)
  SetHitSize(5)
  SetSeeingRange(8)
  SetVulnerability(ToughHumanWet 100)
  IsHuman()
  CanBeMorphedInto()
  ;SetHealthExplosion(0 eodeblg3_explosion)
  CanPhase(3 2 fh1 0)
  SetIdleAnimation(100 200 2 2)
  SetRequirements {
    SetType(9)
    SetPrereqs(10001)
    SetMaker(10001 10002 10003)
    SetEquivalence(2)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufradst0.spr)
    SetMoveAnimation(0)
    AddWeapon(LaserRifle 1 0)
    SetStandingAnimation(3)
    SetHealthExplosion(0 splata_explosion unattached)
  }
}
;
; FREEDOM GUARD : Mercenary

DefineUnitType(FGMercenary)
{
  SetDescription(Mercenary)
  SetMenuImage(ufmrcmn0.spr)
  SetSelectSounds(gvmrcsl0.wav gvmrcsl1.wav gvmrcsl2.wav gvmrcsl3.wav)
  SetResponseSounds(gvmrcrl0.wav gvmrcrl1.wav gvmrcrl2.wav gvmrcrl4.wav)
;  SetEquivalentUnit(IMPFireSupportMarine)
  SetSide(0)
  SetCost(30 1)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(125)
  SetPhysics(1 8)
  SetHitSize(5)
  SetSeeingRange(8)
  SetVulnerability(ToughHumanWet 100)
  IsHuman()
  CanPhase(3 3 fh1 0)
  CanBeMorphedInto()
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(10)
    SetPrereqs(10001)
    SetMaker(10001 10002 10003)
    SetEquivalence(3)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
   SetShadowImage(ucmensh0.spr)
   AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufmrcst0.spr)
    SetMoveAnimation(0)
    AddWeapon(RailGun 1 0)
    SetHealthExplosion(0 splatc_explosion unattached)
  }
}

;
; FREEDOM GUARD : Scout

DefineUnitType(FGScout)
{
  SetDescription(Scout)
  SetMenuImage(ufsctmn0.spr)
  SetSelectSounds(gvfg4sl0.wav gvfg4sl1.wav gvfg4sl2.wav)
  SetResponseSounds(gvfg4rl0.wav gvfg4rl1.wav gvfg4rl2.wav)
;  SetEquivalentUnit(IMPReconSaucer)
  SetSide(0)
  SetCost(30 1)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(66)
  SetPhysics(1 12)
  SetHitSize(5)
  SetSeeingRange(12)
  SetVulnerability(ToughHumanWet 100)
  IsHuman()
  CanBeMorphedInto()
  CanMorphIntoOverlay(electric_blue_explosion 1)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(6)
    SetPrereqs(10001)
    SetMaker(10001 10002 10003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
    AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufsctst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(0 splatc_explosion unattached)
  }
}

;
; FREEDOM GUARD : Martyr

DefineUnitType(FGSuicideNuker)
{
  SetDescription(Martyr)
  SetMenuImage(ufmtrmn0.spr)
  SetSelectSounds(gvmtrsl0.wav gvmtrsl1.wav gvmtrsl2.wav gvmtrsl3.wav)
  SetResponseSounds(gvmtral0.wav gvmtral4.wav gvmtral5.wav gvmtral6.wav)
;  SetEquivalentUnit(IMPHostageTaker)
  SetSide(0)
  SetCost(60 2)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(1 16)
  SetHitSize(5)
  SetSeeingRange(8)
  SetVulnerability(ToughHumanWet 100)
  CanBeMorphedInto()
  SetIdleAnimation(150 300 2 2)
  IsHuman()
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(5)
    SetPrereqs(10001)
    SetMaker(10001 10002 10003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufmtrst0.spr)
    SetMoveAnimation(0)
    SetStandingAnimation(3)
    AddWeapon(SuicideNuke 1 1)
    SetHealthExplosion(0 splatc_explosion unattached)
  }
}

;
; FREEDOM GUARD : Field Medic

DefineUnitType(FGMedic)
{
  SetDescription(Field_Medic)
  SetMenuImage(ufmedmn0.spr)
  SetSelectSounds(gvmedsl0.wav gvmedsl1.wav gvmedsl2.wav gvmedsl3.wav)
  SetResponseSounds(gvmedrl0.wav gvmedrl1.wav gvmedrl2.wav)
;  SetEquivalentUnit(IMPAmper)
  SetSide(0)
  SetCost(50 2)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(66)
  SetPhysics(1 8)
  SetHitSize(5)
  SetSeeingRange(8)
  SetVulnerability(ToughHumanWet 100)
  IsHuman()
  CanBeMorphedInto()
  SetIdleAnimation(150 300 2 2)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(7)
    SetPrereqs(10002)
    SetMaker(10002 10003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufmedst0.spr)
    SetMoveAnimation(0)
    AddWeapon(MedicHeal 1 0)
    SetStandingAnimation(3)
    SetHealthExplosion(0 splata_explosion unattached)
  }
}

;
; FREEDOM GUARD : Mechanic

DefineUnitType(FGMechanic)
{
  SetDescription(Mechanic)
  SetMenuImage(ufmecmn0.spr)
  SetSelectSounds(gvfg5sl0.wav gvfg5sl1.wav gvfg5sl2.wav gvfg5sl3.wav)
  SetResponseSounds(gvfg5rl0.wav gvfg5rl1.wav gvfg5rl4.wav gvfg5rl5.wav)
  SetSide(0)
  SetCost(50 2)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(66)
  SetPhysics(1 12)
  SetHitSize(5)
  SetSeeingRange(8)
  SetVulnerability(ToughHumanWet 100)
  IsHuman()
  CanBeMorphedInto()
  SetIdleAnimation(150 300 2 2)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(2)
    SetPrereqs(10002)
    SetMaker(10002 10003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufmecst0.spr)
    SetMoveAnimation(0)
    SetStandingAnimation(3)
    AddWeapon(MechanicRepair 1 0)
    SetHealthExplosion(0 splata_explosion unattached)
  }
}

;
; FREEDOM GUARD: Infiltrator

DefineUnitType(FGSpy)
{
  SetDescription(Infiltrator)
  SetMenuImage(ucinfmn0.spr)
  SetSelectSounds(gvfinsl0.wav gvfinsl1.wav gvfinsl2.wav)
  SetResponseSounds(gvfinrl0.wav gvfinrl1.wav gvfinrl2.wav)
;  SetEquivalentUnit(IMPSpy)
  SetSide(0)
  NoAutoTarget()
  SetCost(100 3)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(66)
  SetPhysics(1 12)
  SetHitSize(5)
  SetSeeingRange(9)
  SetVulnerability(ToughHumanWet 100)
  IsHuman()
  CanBeMorphedInto()
  SetIdleAnimation(150 300 1 1)
  CanMorphIntoUnit(electric_blue_explosion 1)
  CanSpy(300 1200 500)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(4)
    SetPrereqs(10002)
    SetMaker(10002 10003)
    SetEquivalence(4)
    SetTechLevel(90)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
    AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ucinfst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(0 splata_explosion unattached)
  }
}



;
; FREEDOM GUARD : Saboteur

DefineUnitType(FGSaboteur)
{
  SetDescription(Saboteur)
  SetMenuImage(ufsabmn0.spr)
  SetSelectSounds(gvfg5sl0.wav gvfg5sl1.wav gvfg5sl2.wav gvfg5sl3.wav)
  SetResponseSounds(gvfg5rl0.wav gvfg5rl1.wav gvfg5rl2.wav)
  SetSide(0)
  SetCost(80 2)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(1 12)
  SetHitSize(5)
  SetSeeingRange(9)
  SetVulnerability(ToughHumanWet 100)
  IsHuman()
  CanBeMorphedInto()
  SetIdleAnimation(150 300 2 2)
  CanMorphIntoOverlay(electric_blue_explosion 1)
  CanSabotage(120 1 0)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(3)
    SetPrereqs(10002)
    SetMaker(10002 10003)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufsabst0.spr)
    SetMoveAnimation(0)
    SetStandingAnimation(3)
    SetHealthExplosion(0 splatc_explosion unattached)
  }
}

;
; FREEDOM GUARD : Sniper

DefineUnitType(FGSniper)
{
  SetDescription(Sniper)
  SetMenuImage(ufsnpmn0.spr)
  SetSelectSounds(gvfg4sl0.wav gvfg4sl1.wav gvfg4sl2.wav gvsnpsl0.wav)
  SetResponseSounds(gvfg4rl0.wav gvfg4rl1.wav gvfg4rl2.wav gvsnprl0.wav)
  SetSide(0)
  NoAutoTarget()
  SetCost(70 2)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(1 12)
  SetHitSize(5)
  SetSeeingRange(12)
  SetVulnerability(ToughHumanWet 100)
  IsHuman()
  CanBeMorphedInto()
  CanMorphIntoOverlay(electric_blue_explosion 1)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(8)
    SetPrereqs(10002)
    SetMaker(10002 10003)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufsnpst0.spr)
    SetMoveAnimation(0)
    AddWeapon(SniperRifle 1 0)
    SetHealthExplosion(0 splata_explosion unattached)
  }
}
;
; FREEDOM GUARD NON-HUMAN UNITS

;


;
; FREEDOM GUARD: Skirmish Tank


DefineUnitType(FGMediumTank)
{
  SetDescription(Skirmish_Tank)
  SetMenuImage(ufsktmn0.spr)
  SetSelectSounds(gvfg2sl0.wav gvfg2sl1.wav gvfg2sl2.wav gvfg2sl3.wav)
  SetResponseSounds(gvfg2rl0.wav gvfg2rl1.wav gvfg2rl2.wav gvfg2rl4.wav)
;  SetEquivalentUnit(IMPPlasmaTank)
  SetSide(0)
  SetCost(60 2)
  UseEffects(Track)
  SetMoveMode(Ground)
  SetStrength(133)
  SetPhysics(10 16)
  SetHitSize(15)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(20)
    SetPrereqs(10001)
    SetMaker(10001 10002 10003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ufsktst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufsktst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(0 eobpfsm0_explosion unattached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufsktac0.spr)
    SetMoveAnimation(0)
    AddWeapon(SkirmishGun1 1 0)
    SetHealthExplosion(30 eobpfsm0_explosion unattached)
  }
 AddPart {
   SetRotationRate(10)
   SetRotationalArc(0)
   SetScanDelay(500)
   SetImage(ufsktac1.spr)
   SetMoveAnimation(0)
   AddWeapon(SkirmishGun2 1 0)
   SetHealthExplosion(75 eobpfsm0_explosion unattached)
 }
}



;
; FREEDOM GUARD: SPIDER BIKE


DefineUnitType(FGSpiderBike)
{
  SetDescription(Spider_Bike)
  SetMenuImage(ufspbmn0.spr)
  SetSelectSounds()
  SetSelectSounds(gvfg2sl0.wav gvfg2sl1.wav gvfg2sl2.wav gvfg2sl3.wav)
  SetResponseSounds(gvfg2rl0.wav gvfg2rl1.wav gvfg2rl2.wav gvfg2rl4.wav)
;  SetEquivalentUnit(IMPScoutTank)
  SetSide(0)
  SetCost(50 2)
  UseEffects(Wheela)
  SetMoveMode(Ground)
  SetStrength(133)
  SetPhysics(10 24)
  SetHitSize(10)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(1)
    SetPrereqs(10001)
    SetMaker(10001 10002 10003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ufspbsh0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufspbst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(DoubleRailGun 0 0)
  }
}

;
; FREEDOM GUARD: Tank Hunter Tank

DefineUnitType(FGTankHunterTank)
{
  SetDescription(Tank_Hunter)
  SetMenuImage(ufthnmn0.spr)
  SetSelectSounds(gvfg2sl0.wav gvfg2sl1.wav gvfg2sl2.wav gvfg2sl3.wav)
  SetResponseSounds(gvfg2rl0.wav gvfg2rl1.wav gvfg2rl2.wav gvfg2rl4.wav)
;  SetEquivalentUnit(IMPShredder)
  SetSide(0)
  SetCost(70 2)
  UseEffects(Track)
  SetMoveMode(Ground)
  SetStrength(150)
  SetPhysics(10 20)
  SetHitSize(15)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(17)
    SetPrereqs(10001)
    SetMaker(10001 10002 10003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ufthnst0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufthnst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(TankHunterGun 1 0)
  }
}


;
; FREEDOM GUARD: Rapid Armored Transport  RAT

DefineUnitType(FGIFV)
{
  SetDescription(Rapid_Armored_Transport)
  SetMenuImage(ufratmn0.spr)
  SetSelectSounds()
  SetSelectSounds(gvfg2sl0.wav gvfg2sl1.wav gvfg2sl2.wav gvfg2sl3.wav)
  SetResponseSounds(gvfg2rl0.wav gvfg2rl1.wav gvfg2rl2.wav gvfg2rl4.wav)
;  SetEquivalentUnit(IMPAssaultVehicle)
  SetSide(0)
  SetCost(45 1)
  UseEffects(Wheelf)
  SetMoveMode(Ground)
  SetStrength(200)
  SetPhysics(100 18)
  SetHitSize(18)
  SetSeeingRange(9)
  SetVulnerability(TankPlating 100)
  SetCarry(5 4)
  CanBlend()
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(15)
    SetPrereqs(10001)
    SetMaker(10001 10002 10003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ufratst0.spr)
  AddPart {
    SetRotationRate(12)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufratst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
}


;
; FREEDOM GUARD: Phase Tank

DefineUnitType(FGAmbushTank)
{
  SetDescription(Phase_Tank)
  SetMenuImage(ufphtmn0.spr)
  SetSelectSounds(gxphtsc0.wav gxphtsc1.wav)
  SetResponseSounds(gxphtrc0.wav gxphtrc1.wav)
;  SetEquivalentUnit(IMPHoverMarine)
  SetSide(0)
  SetCost(60 2)
  UseEffects(Track)
  SetMoveMode(Ground)
  SetStrength(166)
  SetPhysics(10 12)
  SetHitSize(15)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  CanPhase(30 25 fh1 0)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetIdleAnimation(0 0 2 2)
  SetRequirements {
    SetType(21)
    SetPrereqs(10002)
    SetMaker(10002 10003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ufphtst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufphtst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(PhaseTankCannon 1 0)
    SetStandingAnimation(3)
  }
}


;
; FREEDOM GUARD : Flak Jack

DefineUnitType(FGConstructionMAD)
{
  SetDescription(Flak_Jack)
  SetMenuImage(ufflkmn0.spr)
  SetSelectSounds(gvflksl0.wav gvflksl1.wav gvflksl3.wav gvflksl4.wav)
  SetResponseSounds(gvflkrl0.wav gvflkrl1.wav gvflkrl4.wav gvflkrl5.wav)
;  SetEquivalentUnit(IMPMAD)
  SetSide(0)
  SetCost(50 2)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(1 12)
  SetHitSize(5)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
;  IsHuman()
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(12)
    SetPrereqs(10002)
    SetMaker(10002 10003)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ufflksh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufflkst0.spr)
    SetMoveAnimation(0)
    AddWeapon(Chaff 1 0)
    SetHealthExplosion(0 splatd_explosion unattached)
  }
}



;
; FREEDOM GUARD: Triple Rail Hover Tank


DefineUnitType(FGTripleRailHoverTank)
{
  SetDescription(Triple_Rail_Hover_Tank)
  SetMenuImage(uftrtmn0.spr)
  SetResponseSounds(gvtrtrl0.wav gvtrtrl1.wav gvtrtrl2.wav gvtrtrl3.wav)
  SetSelectSounds(gvtrtsl1.wav gvtrtsl2.wav gvtrtsl3.wav gvtrtal0.wav)
;  SetEquivalentUnit(IMPTachyonTank)
  SetSide(0)
  SetCost(130 4)
  UseEffects(Hover)
  SetMoveMode(Hover)
  SetStrength(200)
  SetPhysics(10 12)
  SetHitSize(15)
  SetSeeingRange(9)
  SetVulnerability(TankPlating 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(16)
    SetPrereqs(10002)
    SetMaker(10002 10003)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(uftrtst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uftrtst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(0 eobpfsm3_explosion unattached)
  }
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uftrtac0.spr)
    SetMoveAnimation(0)
    AddWeapon(TripleRailGun 1 0)
  }
}


;
; FREEDOM GUARD: SPA


DefineUnitType(FGSPA)
{
  SetDescription(Hellstorm_Artillery)
  SetMenuImage(uffarmn0.spr)
  SetSelectSounds(gvfarsl0.wav gvfarsl1.wav gvfarsl2.wav gvfarsl3.wav)
  SetResponseSounds(gvfarrl0.wav gvfarrl1.wav gvfarrl2.wav gvfarrl3.wav)
;  SetEquivalentUnit(IMPSPA)
  SetSide(0)
  SetCost(110 3)
  UseEffects(Track)
  SetMoveMode(Ground)
  SetStrength(133)
  SetPhysics(10 8)
  SetHitSize(15)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(19)
    SetPrereqs(10002)
    SetMaker(10002 10003)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(uffarst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uffarst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(ArtilleryShell 1 0)
  }
}



;
; FREEDOM GUARD: Single Man SKY BIKE

DefineUnitType(FGSkyBike)
{
  SetDescription(Sky_Bike)
  SetMenuImage(ufskbmn0.spr)
  SetResponseSounds(gvfg3rl0.wav gvfg3rl1.wav gvfg3rl2.wav gvfg3rl3.wav)
  SetSelectSounds(gvfg3sl0.wav gvfg3sl1.wav gvfg3sl2.wav gvfg3sl3.wav)
;  SetEquivalentUnit(ImpVTOL)
  SetSide(0)
  NoAutoTarget()
  SetCost(80 2)
  UseEffects(Flying)
  SetMoveMode(Fly)
  SetStrength(100)
  SetPhysics(10 28)
  SetHitSize(16)
  SetSeeingRange(9)
  SetVulnerability(FlyingArmour 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(23)
    SetPrereqs(10003)
    SetMaker(10003)
    SetTechLevel(70)
  }
  SetShadowImage(ufskbst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufskbst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(BkLaser 1 0)
  }
}

;
; FREEDOM GUARD: Outrider


DefineUnitType(FGDualSkyBike)
{
  SetDescription(Outrider)
  SetMenuImage(ufoutmn0.spr)
  SetResponseSounds(gvfg3rl0.wav gvfg3rl2.wav gvfg3rl3.wav gvfg3rl4.wav)
  SetSelectSounds(gvfg3sl1.wav gvfg3sl2.wav gvfg3sl0.wav gvfg3al0.wav)
;  SetEquivalentUnit(ImpVTOL)
  SetSide(0)
  NoAutoTarget()
  SetCost(140 4)
  UseEffects(Flying)
  SetMoveMode(Fly)
  SetStrength(200)
  SetPhysics(10 24)
  SetHitSize(16)
  SetSeeingRange(9)
  SetVulnerability(FlyingArmour 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(24)
    SetPrereqs(10003)
    SetMaker(10003)
    SetTechLevel(70)
  }
  SetShadowImage(ufoutst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufoutst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(OutriderMissile 1 0)
  }
}

;;
; FREEDOM GUARD: Base Mover;

DefineUnitType(FGBaseMover)
{
  SetDescription(Base_Mover)
  SetMenuImage(ufbammn0.spr)
  SetSelectSounds()
  SetSelectSounds(gvfg2sl0.wav gvfg2sl1.wav gvfg2sl2.wav gvfg2sl3.wav)
  SetResponseSounds(gvfg2rl0.wav gvfg2rl1.wav gvfg2rl2.wav gvfg2rl4.wav)
  SetSide(0)
  SetCost(5 5)
  UseEffects(Track)
  SetMoveMode(Ground)
  SetStrength(500)
  SetPhysics(100 8)
  SetHitSize(15)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  SetRequirements {
    SetType(25)
    SetPrereqs()
    SetMaker()
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ufbamst0.spr)
  AddPart {
    SetRotationRate(5)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufbamst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
}

;Ŀ
; IMPERIUM Unit Definitions                                                 
;

;
; IMPERIUM : Construction Rig

DefineUnitType(IMPConstructionCrew)
{
  SetDescription(Construction_Rig)
  SetMenuImage(ucfcnmn0.spr)
  SetSelectSounds(gvicnsl0.wav gvicnsl1.wav gvicnsl2.wav)
  SetResponseSounds(gvicnrl0.wav gvicnrl1.wav gvicnrl2.wav)
  SetEquivalentUnit(FGConstructionCrew)
  SetSide(1)
  SetCost(30 1)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(1 6)
  SetHitSize(5)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  CanMorphIntoOverlay(electric_blue_explosion 1)
  CanBlend()
 ;SetHealthExplosion(0 eodeblg3_explosion)
 SetRequirements {
    SetType(1005)
    SetPrereqs(11001)
    SetMaker(11001 11002 11003)
    SetEquivalence(1)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucfcnsh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ucfcnst0.spr)
    SetMoveAnimation(0)
    SetStandingAnimation(1)
    SetHealthExplosion(0 splatd_explosion unattached)
  }
}


;
; IMPERIUM : Guardian

DefineUnitType(IMPStrikeMarine)
{
  SetDescription(Guardian)
  SetMenuImage(uigrdmn0.spr)
  SetSelectSounds(gvig1sl0.wav gvig1sl1.wav gvig1sl2.wav gvig1sl3.wav)
  SetResponseSounds(gvig1rl0.wav gvig1rl1.wav gvig1rl2.wav gvig1rl6.wav)
;  SetEquivalentUnit(FGFreedomFighter)
  SetSide(1)
  SetCost(15 1)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(1 8)
  SetHitSize(5)
  SetSeeingRange(8)
  SetVulnerability(PowerHumanWet 100)
  CanBeMorphedInto()
  IsHuman()
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(1002)
    SetPrereqs(11001)
    SetMaker(11001 11001 11002)
    SetEquivalence(2)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uigrdst0.spr)
    SetMoveAnimation(0)
    AddWeapon(LaserRifle 1 0)
    SetStandingAnimation(2)
    SetHealthExplosion(0 splata_explosion unattached)
  }
}

;
; IMPERIUM : Bion

DefineUnitType(IMPFireSupportMarine)
{
  SetDescription(Bion)
  SetMenuImage(uibonmn0.spr)
  SetSelectSounds(gxbonsc0.wav gxbonsc1.wav)
  SetResponseSounds(gxbonrc0.wav gxbonrc1.wav)
;  SetEquivalentUnit(FGMercenary)
  SetSide(1)
  SetCost(35 1)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(150)
  SetPhysics(1 6)
  SetHitSize(5)
  SetSeeingRange(8)
  SetVulnerability(PowerHumanWet 100)
  CanBeMorphedInto()
  IsHuman()
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(1003)
    SetPrereqs(11001)
    SetMaker(11001 11002 11003)
    SetEquivalence(3)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uibonst0.spr)
    SetMoveAnimation(0)
    SetStandingAnimation(4)
    AddWeapon(PlasmaRifle 1 0)
    SetHealthExplosion(0 splatb_explosion unattached)
  }
}

;
; IMPERIUM : Exterminator

DefineUnitType(IMPHoverMarine)
{
  SetDescription(Exterminator)
  SetMenuImage(uiextmn0.spr)
  SetSelectSounds(gvextsl0.wav gvextsl1.wav gvextsl2.wav)
  SetResponseSounds(gvextrl0.wav gvextrl1.wav gvextrl2.wav gvextal3.wav)
;  SetEquivalentUnit(FGTankHunterTank)
  SetSide(1)
  SetCost(50 2)
  UseEffects(Hovers)
  SetMoveMode(Hover)
  SetStrength(75)
  SetPhysics(1 16)
  SetHitSize(5)
  SetSeeingRange(8)
  SetVulnerability(PowerHuman 100)
  CanBeMorphedInto()
  IsHuman()
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(1004)
    SetPrereqs(11002)
    SetMaker(11002 11003)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uiextst0.spr)
    SetMoveAnimation(0)
    AddWeapon(PolyAcid 1 0)
    SetHealthExplosion(0 splatb_explosion unattached)
  }
}

;
; IMPERIUM : Infiltrator

DefineUnitType(IMPSpy)
{
  SetDescription(Infiltrator)
  SetMenuImage(ucinfmn0.spr)
  SetSelectSounds(gviinsl0.wav gviinsl1.wav gviinsl2.wav gviinsl2.wav)
  SetResponseSounds(gviinrl0.wav gviinrl1.wav gviinal0.wav gviinal2.wav)
;  SetEquivalentUnit(FGSpy)
  SetSide(1)
  SetCost(100 3)
  NoAutoTarget()
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(66)
  SetPhysics(1 12)
  SetHitSize(5)
  SetSeeingRange(9)
  SetVulnerability(ToughHumanWet 100)
  CanMorphIntoUnit(electric_blue_explosion 1)
  CanBeMorphedInto()
  SetIdleAnimation(150 300 1 1)
  IsHuman()
  CanSpy(300 1200 500)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(1001)
    SetPrereqs(11002)
    SetMaker(11002 11003)
    SetEquivalence(4)
    SetTechLevel(90)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ucinfst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(0 splatc_explosion unattached)
  }
}

;
; Imperial : Suicide Zombie

DefineUnitType(IMPSuicideZombie)
{
  SetDescription(Suicide_Zombie)
  SetMenuImage(ufmtrmn0.spr)
  SetSelectSounds(gvszmsl0.wav)
  SetResponseSounds(gvszmrl0.wav)
;  SetEquivalentUnit(IMPHostageTaker)
  SetSide(1)
  SetCost(60 2)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(1 6)
  SetHitSize(5)
  SetSeeingRange(8)
  SetVulnerability(ToughHumanWet 100)
  CanBeMorphedInto()
  IsHuman()
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(1099)
    SetPrereqs()
    SetMaker()
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufmtrst0.spr)
    SetMoveAnimation(0)
    AddWeapon(SuicideNuke 1 1)
  }
}


;
; IMPERIUM: SCOUT TANK


DefineUnitType(IMPScoutTank)
{
  SetDescription(Scout_Tank)
  SetMenuImage(uisttmn0.spr)
  SetSelectSounds(gvig1sl0.wav gvig1sl1.wav gvig1sl2.wav gvig1sl3.wav)
  SetResponseSounds(gvig1rl0.wav gvig1rl1.wav gvig1rl2.wav gvig1rl6.wav)
;  SetEquivalentUnitlentUnit(FGSpiderBike)
  SetSide(1)
  SetCost(50 2)
  UseEffects(Hover)
  SetMoveMode(Hover)
  SetStrength(150)
  SetPhysics(10 20)
  SetHitSize(11)
  SetSeeingRange(13)
  SetVulnerability(TankPlating 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(1010)
    SetPrereqs(11001)
    SetMaker(11001 11002 11003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(uisttst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uisttst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(LaserCannon 1 0)
  }
}


;
; IMPERIUM: Invader Troop Transport

;; FIX MEE!!!!!!!!!!!!MY SPRITE IS WRONG!!!!!!!!!!!!!!!!


DefineUnitType(IMPAssaultVehicle)
{
  SetDescription(Invader_Troop_Transport)
  SetMenuImage(uiittmn0.spr)
  SetSelectSounds()
  SetSelectSounds(gvig1sl0.wav gvig1sl1.wav gvig1sl2.wav gvig1sl3.wav)
  SetResponseSounds(gvig1rl0.wav gvig1rl1.wav gvig1rl2.wav gvig1rl6.wav)
;  SetEquivalentUnit(FGIFV)
  SetSide(1)
  SetCost(60 2)
  UseEffects(Hover)
  SetMoveMode(Hover)
  SetStrength(150)
  SetPhysics(100 20)
  SetHitSize(10)
  SetSeeingRange(9)
  SetVulnerability(TankPlating 100)
  SetCarry(5 4)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(1009)
    SetPrereqs(11001)
    SetMaker(11001 11002 11003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(uiittst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uiittst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uchfrac0.spr)
    SetMoveAnimation(0)
    AddWeapon(LaserRifle 0 0 )
  }

}


;
; IMPERIUM: Plasma Tank


DefineUnitType(IMPPlasmaTank)
{
  SetDescription(Plasma_Tank)
  SetMenuImage(uipltmn0.spr)
  SetSelectSounds(gvig1sl0.wav gvig1sl1.wav gvig1sl2.wav gvig1sl3.wav)
  SetResponseSounds(gvig1rl0.wav gvig1rl1.wav gvig1rl2.wav gvig1rl6.wav)
;  SetEquivalentUnit(FGMediumTank)
  SetSide(1)
  SetCost(70 3)
  UseEffects(Hover)
  SetMoveMode(Hover)
  SetStrength(250)
  SetPhysics(10 16)
  SetHitSize(15)
  SetSeeingRange(9)
  SetVulnerability(TankPlating 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(1011)
    SetPrereqs(11001)
    SetMaker(11001 11002 11003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(uipltst0.spr)
  AddPart {
    SetRotationRate(8)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uipltst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uipltac0.spr)
    SetMoveAnimation(0)
    AddWeapon(PlasmaCannon 1 0)
  }
}

;
; IMPERIUM: Shredder

DefineUnitType(IMPShredder)
{
  SetDescription(Shredder)
  SetMenuImage(uishrmn0.spr)
  SetSelectSounds(gxshrsc0.wav gxshrsc1.wav gxshrsc2.wav)
  SetResponseSounds(gxshrrc0.wav gxshrrc1.wav)
;  SetEquivalentUnit(FGSuicideNuker)
  SetSide(1)
  SetCost(70 2)
  UseEffects(Hover)
  SetMoveMode(Hover)
  SetStrength(100)
  SetPhysics(10 20)
  SetHitSize(10)
  SetSeeingRange(9)
  SetVulnerability(ForcePlating 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(1015)
    SetPrereqs(11001)
    SetMaker(11001 11002 11003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(50)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(uishrst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uishrst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(Shredder 1 0)
    SetStandingAnimation(0)
  }
}

;
; IMPERIUM: MAD


DefineUnitType(IMPMAD)
{
  SetDescription(MAD)
  SetMenuImage(uimadmn0.spr)
  SetSelectSounds(gvig1sl0.wav gvig1sl1.wav gvig1sl2.wav gvig1sl3.wav)
  SetResponseSounds(gvig1rl0.wav gvig1rl1.wav gvig1rl2.wav gvig1rl6.wav)
;  SetEquivalentUnit(FGConstructionMAD)
  SetSide(1)
  SetCost(80 2)
  UseEffects(Hover)
  SetMoveMode(Hover)
  SetStrength(150)
  SetPhysics(10 16)
  SetHitSize(15)
  SetSeeingRange(9)
  SetVulnerability(TankPlating 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(1013)
    SetPrereqs(11002)
    SetMaker(11002 11003)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(uimadst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uimadst0.spr)
    SetMoveAnimation(0)
    AddWeapon(GroundToAirLaser 0 0 )
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
}
;
; IMPERIUM: Recon Drone


DefineUnitType(IMPReconSaucer)
{
  SetDescription(Recon_Drone)
  SetMenuImage(uirdrmn0.spr)
  SetSelectSounds(gxrdrsc0.wav gxrdrsc1.wav gxrdrsc2.wav)
  SetResponseSounds(gxrdrrc0.wav gxrdrrc1.wav gxrdrrc2.wav)
;  SetEquivalentUnit(FGScout)
  SetSide(1)
  SetCost(40 1)
  UseEffects(Flying)
  SetMoveMode(Fly)
  SetStrength(66)
  SetPhysics(10 16)
  SetHitSize(12)
  SetSeeingRange(9)
  SetVulnerability(FlyingArmour 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(1019)
    SetPrereqs(11002)
    SetMaker(11002 11003)
    SetTechLevel(50)
  }
  SetShadowImage(uirdrst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uirdrst0.spr)
    SetMoveAnimation(0)
    ;SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
}

;
; IMPERIUM: AMPER

DefineUnitType(IMPAmper)
{
  SetDescription(Amper)
  SetMenuImage(uiampmn0.spr)
  SetSelectSounds(gvampsl1.wav gvampsl2.wav gvampsl3.wav)
  SetResponseSounds(gvamprl0.wav gvamprl2.wav gvampal0.wav)
;  SetEquivalentUnit(FGMedic)
  SetSide(1)
  SetCost(50 2)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(66)
  SetPhysics(1 8)
  SetHitSize(8)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  CanBoost()
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(1008)
    SetPrereqs(11002)
    SetMaker(11002 11003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(uiampsh0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uiampst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(AmperAmp 1 0)
  }
}

;
; IMPERIUM:Hostage Taker


DefineUnitType(IMPHostageTaker)
{
  SetDescription(Hostage_Taker)
  SetMenuImage(uihosmn0.spr)
  SetSelectSounds()
  SetResponseSounds(gvhosrl0.wav gvhosrl2.wav gvhosal0.wav)
  SetSelectSounds(gvhossl0.wav gvhossl1.wav)
;  SetEquivalentUnit(FGSuicideNuker)
  SetSide(1)
  SetCost(60 2)
  UseEffects(Wheel)
  SetMoveMode(Ground)
  SetStrength(450)
  SetPhysics(10 20)
  SetHitSize(10)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  SetCarry(5 4)
  CanGrab(IMPSuicideZombie 30)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(1014)
    SetPrereqs(11002)
    SetMaker(11002 11003)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(uihosst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uihosst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
}


;
; IMPERIUM: Tachyon Tank


DefineUnitType(IMPTachyonTank)
{
  SetDescription(Tachyon_Tank)
  SetMenuImage(uitctmn0.spr)
  SetResponseSounds(gvtctrl0.wav gvtctal2.wav gvtctrl2.wav gvtctrl3.wav)
  SetSelectSounds(gvtctsl0.wav gvtctsl1.wav gvtctsl2.wav)
;  SetEquivalentUnit(FGTripleRailHoverTank)
  SetSide(1)
  SetCost(150 6)
  UseEffects(Hover)
  SetMoveMode(Hover)
  SetStrength(410)
  SetPhysics(10 12)
  SetHitSize(15)
  SetSeeingRange(9)
  SetVulnerability(TankPlating 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(1012)
    SetPrereqs(11002)
    SetMaker(11002 11003)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(uitctst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uitctst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(0 eobpfsm4_explosion unattached)
  }
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uitctac0.spr)
    SetMoveAnimation(0)
    AddWeapon(TachyonCannon 1 0 )
    AddWeapon(SelfDestruct1 1 0)
  }
}

;
; IMPERIUM: SCARAB SHIELD


DefineUnitType(IMPShieldedSPA)
{
  SetDescription(S_C_A_R_A_B_Shield)
  SetMenuImage(uiiarmn0.spr)
  SetSelectSounds(gvig1sl0.wav gvig1sl1.wav gvig1sl2.wav gvig1sl3.wav)
  SetResponseSounds(gvig1rl0.wav gvig1rl1.wav gvig1rl2.wav gvig1rl6.wav)
  SetSide(1)
  SetCost(80 2)
  UseEffects(Fixed)
  SetMoveMode(Ground)
  SetStrength(133)
  SetPhysics(10 12)
  SetHitSize(15)
  NoEdit()
  SetSeeingRange(6)
  SetVulnerability(TankPlating 10)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(1026)
    SetPrereqs()
    SetMaker()
  }
  SetShadowImage(uiiarac0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uiiarac0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
}

;
; IMPERIUM: SCARAB


DefineUnitType(IMPSPA)
{
  SetDescription(S_C_A_R_A_B)
  SetMenuImage(uiiarmn0.spr)
  SetSelectSounds(gvig1sl0.wav gvig1sl1.wav gvig1sl2.wav gvig1sl3.wav)
  SetResponseSounds(gvig1rl0.wav gvig1rl1.wav gvig1rl2.wav gvig1rl6.wav)
;  SetEquivalentUnit(FGSPA)
  SetSide(1)
  SetCost(130 5)
  UseEffects(Hover)
  SetMoveMode(Hover)
  SetStrength(133)
  SetPhysics(10 6)
  SetHitSize(15)
  SetSeeingRange(9)
  SetVulnerability(TankPlating 100)
  CanAlternate(ImpShieldedSPA 2)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(1017)
    SetPrereqs(11002)
    SetMaker(11002 11003)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(uiiarst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uiiarst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(IMPArtilleryShell 1 0)
  }
}


;
; IMPERIUM: Cyclone


DefineUnitType(ImpVTOL)
{
  SetDescription(Cyclone)
  SetMenuImage(uicycmn0.spr)
  SetSelectSounds()
  SetResponseSounds(gvcycrl0.wav gvcycrl1.wav gvcycrl2.wav gvcycrl3.wav)
  SetSelectSounds(gvcycsl0.wav gvcycsl1.wav gvcycsl2.wav)
;  SetEquivalentUnit(FGSkyBike)
  SetSide(1)
  NoAutoTarget()
  SetCost(150 5)
  UseEffects(Flying)
  SetMoveMode(Fly)
  SetStrength(150)
  SetPhysics(10 24)
  SetHitSize(16)
  SetSeeingRange(9)
  SetVulnerability(FlyingArmour 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(1020)
    SetPrereqs(11003)
    SetMaker(11003)
    SetTechLevel(70)
  }
  SetShadowImage(uicycst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uicycst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(CycloneCannon 1 0)
  }
}


;
; IMPERIUM: Sky Fortress


DefineUnitType(IMPSkyFortress)
{
  SetDescription(Sky_Fortress)
  SetMenuImage(uiskymn0.spr)
  SetResponseSounds(gvskyrl0.wav gvskyrl1.wav gvskyrl2.wav gvskyrl3.wav)
  SetSelectSounds(gvskysl0.wav gvskysl2.wav gvskyal3.wav gvskyal4.wav)
;  SetEquivalentUnit(FGDualSkyBike)
  SetSide(1)
  NoAutoTarget()
  SetCost(250 12)
  UseEffects(Flying)
  SetMoveMode(Fly)
  SetStrength(266)
  SetPhysics(10 10)
  SetHitSize(10)
  SetSeeingRange(9)
  ChargeWeapon(700)
  SetVulnerability(FlyingArmour 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(1018)
    SetPrereqs(11003)
    SetMaker(11003)
    SetTechLevel(70)
  }
  SetShadowImage(uiskyst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uiskyst0.spr)
    SetMoveAnimation(0)
    AddWeapon(FortressCannon 1 0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
}

; -----------------
; TOGRA TEST STUFF
; -----------------


;
; Togra : Construction Rig

DefineUnitType(TConstructionCrew)
{
  SetDescription(Construction_Rig)
  SetMenuImage(ucfcnmn0.spr)
  SetSelectSounds(gvfg1sl0.wav gvfg1sl1.wav gvfg1sl2.wav)
  SetResponseSounds(gvfg1rl0.wav gvfg1rl1.wav gvfg1rl2.wav)
  SetDefaultUnit(3)
;  SetEquivalentUnit(IMPConstructionCrew)
;  SetEquivalentUnit(TogConstructionCrew)
  SetSide(3)
  SetCost(30 1)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(1 6)
  SetHitSize(5)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  SetShadowImage(ucfcnsh0.spr)
;  ;SetHealthExplosion(0 eodeblg3_explosion attached)
  SetRequirements {
    SetType(40500)
    SetPrereqs(40001)
    SetMaker(40001 40002 40003)
    SetEquivalence(1)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ucfcnst0.spr)
    SetMoveAnimation(0)
    SetStandingAnimation(1)
    SetHealthExplosion(0 splatd_explosion unattached)
  }
}
;Ŀ
; FREEDOM GUARD XENITE
;

;
; XENITE SUPPORT UNITS

;
; FREEDOM GUARD : Construction Rig

DefineUnitType(FGXConstructionCrew)
{
  SetDescription(Construction_Rig)
  SetMenuImage(ucfcnmn0.spr)
  SetSelectSounds(gvfg1sl0.wav gvfg1sl1.wav gvfg1sl2.wav)
  SetResponseSounds(gvfg1rl0.wav gvfg1rl1.wav gvfg1rl2.wav)
  SetDefaultUnit(3)
  SetEquivalentUnit(IMPConstructionCrew)
  SetSide(4)
  SetCost(30 1)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(1 6)
  SetHitSize(5)
  CanMorphIntoOverlay(electric_blue_explosion 1)
  CanBlend()
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  SetShadowImage(ucfcnsh0.spr)
 ;SetHealthExplosion(0 eodeblg3_explosion attached)
  SetRequirements {
    SetType(21011)
    SetPrereqs(20001)
    SetMaker(20001 20002 20003)
    SetEquivalence(1)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ucfcnst0.spr)
    SetMoveAnimation(0)
    SetStandingAnimation(1)
    SetHealthExplosion(0 splatd_explosion unattached)
  }
}

;
; FREEDOM GUARD : Raider

DefineUnitType(FGXFreedomFighter)
{
  SetDescription(Raider)
  SetMenuImage(ufradmn0.spr)
  SetSelectSounds(gvfg2sl0.wav gvfg2sl1.wav gvfg2sl2.wav gvfg2sl3.wav)
  SetResponseSounds(gvfg2rl0.wav gvfg2rl1.wav gvfg2rl2.wav gvfg2rl4.wav)
;  SetEquivalentUnit(IMPStrikeMarine)
  SetSide(4)
  SetCost(15 1)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(1 8)
  SetHitSize(5)
  SetSeeingRange(8)
  SetVulnerability(ToughHumanWet 100)
  IsHuman()
  CanBeMorphedInto()
  ;SetHealthExplosion(0 eodeblg3_explosion)
  CanPhase(3 2 fxh1 0)
  SetIdleAnimation(100 200 2 2)
  SetRequirements {
    SetType(21009)
    SetPrereqs(20001)
    SetMaker(20001 20002 20003)
    SetEquivalence(2)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufradst0.spr)
    SetMoveAnimation(0)
    AddWeapon(LaserRifle 1 0)
    SetStandingAnimation(3)
    SetHealthExplosion(0 splata_explosion unattached)
  }
}

;
; FREEDOM GUARD : Scout

DefineUnitType(FGXScout)
{
  SetDescription(Scout)
  SetMenuImage(ufsctmn0.spr)
  SetSelectSounds(gvfg4sl0.wav gvfg4sl1.wav gvfg4sl2.wav)
  SetResponseSounds(gvfg4rl0.wav gvfg4rl1.wav gvfg4rl2.wav)
;  SetEquivalentUnit(IMPReconSaucer)
  SetSide(4)
  SetCost(30 1)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(66)
  SetPhysics(1 12)
  SetHitSize(5)
  SetSeeingRange(12)
  SetVulnerability(ToughHumanWet 100)
  IsHuman()
  CanBeMorphedInto()
  CanMorphIntoOverlay(electric_blue_explosion 10)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(21006)
    SetPrereqs(20001)
    SetMaker(20001 20002 20003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
    AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufsctst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(0 splatc_explosion unattached)
  }
}

;
; FREEDOM GUARD : Field Medic

DefineUnitType(FGXMedic)
{
  SetDescription(Field_Medic)
  SetMenuImage(ufmedmn0.spr)
  SetSelectSounds(gvmedsl0.wav gvmedsl1.wav gvmedsl2.wav gvmedsl3.wav)
  SetResponseSounds(gvmedrl0.wav gvmedrl1.wav gvmedrl2.wav)
;  SetEquivalentUnit(IMPAmper)
  SetSide(4)
  SetCost(50 2)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(66)
  SetPhysics(1 8)
  SetHitSize(5)
  SetSeeingRange(8)
  SetVulnerability(ToughHumanWet 100)
  IsHuman()
  CanBeMorphedInto()
  SetIdleAnimation(150 300 2 2)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(21007)
    SetPrereqs(20002)
    SetMaker(20002 20003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufmedst0.spr)
    SetMoveAnimation(0)
    AddWeapon(MedicHeal 1 0)
    SetStandingAnimation(3)
    SetHealthExplosion(0 splata_explosion unattached)
  }
}

;
; FREEDOM GUARD : Gant

DefineUnitType(FGX_Gant)
{
  SetDescription(Gant)
  SetMenuImage(ufganmn0.spr)
  SetSelectSounds(gxgansc1.wav gxgansc2.wav gxgansc4.wav)
  SetResponseSounds(gxganrc1.wav gxganrc2.wav)
  ;SetSelectSounds(gant1.wav gant2.wav gant3.wav)
  ;SetResponseSounds(gant1.wav gant2.wav gant3.wav)
;  SetEquivalentUnit(IMPStrikeMarine)
  SetSide(4)
  SetCost(25 1)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(150)
  SetSelfHeal(30 1300)             ; wait is cycles to wait since last damage, rate is cycles to get 100% health.  SetStrength must be issued first!
  SetPhysics(10 14)
  SetHitSize(6)
  IsHuman()
  SetSeeingRange(8)
  SetVulnerability(Creature 100)
  SetIdleAnimation(100 200 2 2)
  SetRequirements {
    SetType(21902)
    SetPrereqs(20001)
    SetMaker(20001 20002 20003)
;    SetEquivalence(2)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }

  SetGroup {
    ProcessEvery (15)           ; nr game cycles to process these requirements for this unit type

    ControlMaskLasts (3) 
    RetrainingTime (3) 
;   MaskGiven (number)          ; Does not give a mask
;   RadiusGiven (number)        ; Does not give a mask

    LOSMaskRequired (1)         ; Need mask bit #0 for LOS (Supplied by Nest, Grendel Rider and Trainer)
    LOSMaskRequiredAlly (0)     ; Must have your own nest or Grendel Rider, cannot use an allies.

    ControlMaskRequired (2)     ; Need mask bit #1 for Control (Supplied by Grendel Rider and Trainer)
    ControlMaskRequiredAlly (0) ; Must have own Grendel Rider or Trainer, cannot rely on an allies.

    ControlMaskTakenByAlly (2)  ; Allies can take your Gants and Grendels if they have a Grendel Rider or Trainer and you Don't
    ControlMaskTakenByNeutral(2); Neutrals can take your Gants and Grendels if they have a Grendel Rider or Trainer and you Don't
    ControlMaskTakenByEnemy (2) ; Enemies can take your Gants and Grendels if they have a Grendel Rider or Trainer and you Don't

;   UncontrolledBehaviour (number)   ; NOT YET IMPLEMENTED - Herding Behaviour (?)
    UncontrolledProvokedBehaviour (4); Get violent towards enemy if Allied Grendel is about, otherwise flee.

    Wander (20 4 3 12 6) 
  }
    SetShadowImage(ufgansh0.spr)
    AddPart {
    SetRotationRate(20)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufganst0.spr)
    SetMoveAnimation(0)
    SetStandingAnimation(3)
    SetHealthExplosion(60 Bloody_explosion attached)
  }
   AddPart {
    SetRotationRate(40)
    SetRotationalArc(55)
    SetScanDelay(500)
    SetImage(ufganac0.spr)
    SetMoveAnimation(0)
    AddWeapon(Claws 1 0)
    SetHealthExplosion(0 splatc_explosion unattached)
  }
}
;
; FREEDOM GUARD: Animal Trainer

DefineUnitType(AnimalTrainer)
{
  SetDescription(Trainer)
  SetMenuImage(uftramn0.spr)
  SetSelectSounds()
  SetSelectSounds(gvranrl3.wav gvransl2.wav gvransl3.wav gvransl4.wav)
  SetResponseSounds(gvranrl1.wav gvranrl2.wav gvranrl5.wav gvranrl6.wav)
;  SetEquivalentUnit(IMPAssaultVehicle)
  SetSide(4)
  SetCost(30 1)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(1 12)
  SetHitSize(18)
  SetSeeingRange(8)
  IsHuman()
  CanBeMorphedInto()
  SetIdleAnimation(150 300 2 2)
  SetVulnerability(ToughHumanWet 100)
  SetRequirements {
    SetType(21905)
    SetPrereqs(20001)
    SetMaker(20001 20002 20003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
  AddPart {
    SetRotationRate(12)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uftrast0.spr)
    SetMoveAnimation(0)
    SetStandingAnimation(1)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(NoWeapon2 0 0)
  }

  SetGroup {
    ProcessEvery (15)           ; nr game cycles to process these requirements for this unit type
    MaskGiven (3)               ; Gives Mask #0 (LOS) and Mask #1 (Control)
    RadiusGiven (8)             ; Tiles of influence

;   LOSMaskRequired (0)         ; Always has Line of Sight
;   LOSMaskRequiredAlly (0)     ; Always has Line of Sight

;   ControlMaskRequired (0)     ; Always has self control
;   ControlMaskRequiredAlly (0) ; Always has self control

;   ControlMaskTakenByAlly (0)  ; Can never be taken away
;   ControlMaskTakenByNeutral(0); Can never be taken away
;   ControlMaskTakenByEnemy (0) ; Can never be taken away

;   UncontrolledBehaviour (number)         ; Can never be uncontrolled
;   UncontrolledProvokedBehaviour (number) ; Can never be uncontrolled
  }
}

;
; FREEDOM GUARD : Mechanic

DefineUnitType(FGXMechanic)
{
  SetDescription(Mechanic)
  SetMenuImage(ufmecmn0.spr)
  SetSelectSounds(gvfg5sl0.wav gvfg5sl1.wav gvfg5sl2.wav gvfg5sl3.wav)
  SetResponseSounds(gvfg5rl0.wav gvfg5rl1.wav gvfg5rl4.wav gvfg5rl5.wav)
  SetSide(4)
  SetCost(50 2)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(66)
  SetPhysics(1 12)
  SetHitSize(5)
  SetSeeingRange(8)
  SetVulnerability(ToughHumanWet 100)
  IsHuman()
  CanBeMorphedInto()
  SetIdleAnimation(150 300 2 2)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(21002)
    SetPrereqs(20002)
    SetMaker(20002 20003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufmecst0.spr)
    SetMoveAnimation(0)
    SetStandingAnimation(3)
    AddWeapon(MechanicRepair 1 0)
    SetHealthExplosion(0 splata_explosion unattached)
  }
}

;
; FREEDOM GUARD : Grendel

DefineUnitType(Grendel)
{
  SetDescription(Grendel)
  SetMenuImage(ufgremn0.spr)
  SetSelectSounds(gxgresc1.wav gxgresc2.wav gxgresc3.wav)
  SetResponseSounds(gxgrerc1.wav gxgrerc2.wav gxgrerc3.wav)
  ;SetSelectSounds(grend1.wav grend2.wav grend3.wav)
  ;SetResponseSounds(grend1.wav grend2.wav grend3.wav)
;  SetEquivalentUnit(IMPFireSupportMarine)
  SetSide(4)
  SetCost(110 3)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(250)
  SetPhysics(10 10)
  SetHitSize(6)
  IsHuman()
  SetIdleAnimation(100 200 1 3)
  SetSeeingRange(9)
  SetVulnerability(Creature 100)
  SetSelfHeal(30 1400)             ; wait is cycles to wait since last damage, rate is cycles to get 100% health.  
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(21903)
    SetPrereqs(20002)
    SetMaker(20002 20003)
;    SetEquivalence(3)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }

  SetShadowImage(ufgresh0.spr)
   AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufgrest0.spr)
    SetMoveAnimation(0)
    SetStandingAnimation(2)
;    AddWeapon(ElectroBlast 1 0)
    SetHealthExplosion(60 bloody_explosion attached)
  }
   AddPart {
    SetRotationRate(25)
    SetRotationalArc(45)
    SetScanDelay(500)
    SetImage(ufgreac0.spr)
    SetMoveAnimation(0)
    AddWeapon(ElectroBlast 1 0)
  ;  SetHealthExplosion(60 bloody_explosion attached)
  }

  SetGroup {
    ProcessEvery (15)           ; nr game cycles to process these requirements for this unit type
    MaskGiven (4)               ; gives Mask #2 (violent Gant assault mask)
    RadiusGiven (10)            ;

    ControlMaskLasts (3) 
    RetrainingTime (3) 

    LOSMaskRequired (1)         ; Need mask bit #0 for LOS (Supplied by Nest, Grendel Rider and Trainer)
    LOSMaskRequiredAlly (0)     ; Must have your own nest or Grendel Rider, cannot use an allies.

    ControlMaskRequired (2)     ; Need mask bit #1 for Control (Supplied by Grendel Rider and Trainer)
    ControlMaskRequiredAlly (0) ; Must have own Grendel Rider or Trainer, cannot rely on an allies.

    ControlMaskTakenByAlly (2)  ; Allies can take your Gants and Grendels if they have a Grendel Rider or Trainer and you Don't
    ControlMaskTakenByNeutral(2); Neutrals can take your Gants and Grendels if they have a Grendel Rider or Trainer and you Don't
    ControlMaskTakenByEnemy (2) ; Enemies can take your Gants and Grendels if they have a Grendel Rider or Trainer and you Don't

;   UncontrolledBehaviour (number)   ; NOT YET IMPLEMENTED (Herding Behaviour ?)
    UncontrolledProvokedBehaviour (-1) ; Always attack (It IS a grendel)

    Wander (20 4 3 12 6) 
  }
}

;
; FREEDOM GUARD: Grendel Rider


DefineUnitType(FGXGrendelRider)
{
  SetDescription(GrendelRider)
  SetMenuImage(ufridmn0.spr)
  SetSelectSounds()
  SetSelectSounds(gvgrrsl1.wav gvgrrsl2.wav gvgrrsl3.wav gvgrrsl4.wav)
  SetResponseSounds(gvgrrrl1.wav gvgrrrl2.wav gvgrrrl3.wav gvgrrrl4.wav)
;  SetEquivalentUnit(IMPScoutTank)
  SetSide(4)
  SetCost(170 5)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(300)
  SetPhysics(10 10)
  SetHitSize(10)
  IsHuman()
  SetIdleAnimation(150 300 1 1)
  SetSeeingRange(9)
  SetVulnerability(Creature 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetSelfHeal(30 1400)             ; wait is cycles to wait since last damage, rate is cycles to get 100% health.  
  SetRequirements {
    SetType(21904)
    SetPrereqs(20002)
    SetMaker(20002 20003)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ufridsh0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufridst0.spr)
    SetMoveAnimation(0)
    SetStandingAnimation(2)
    SetHealthExplosion(60 bloody_explosion attached)
   ; SetHealthExplosion(30 smallfired_explosion attached)
   ; SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
  AddPart {
    SetRotationRate(25)
    SetRotationalArc(45)
    SetScanDelay(500)
    SetImage(ufgreac0.spr)
    SetMoveAnimation(0)
   ; SetHealthExplosion(60 bloody_explosion attached)
   ; SetHealthExplosion(30 smallfired_explosion attached)
   ; SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(ElectroBlast 1 0)
  }


  SetGroup {
    ProcessEvery (15)           ; nr game cycles to process these requirements for this unit type
    MaskGiven (3)               ; Gives Mask #0 (LOS) and Mask #1 (Control)
    RadiusGiven (9)             ; Tiles of influence

;   LOSMaskRequired (0)         ; Always has Line of Sight
;   LOSMaskRequiredAlly (0)     ; Always has Line of Sight

;   ControlMaskRequired (0)     ; Always has self control
;   ControlMaskRequiredAlly (0) ; Always has self control

;   ControlMaskTakenByAlly (0)  ; Can never be taken away
;   ControlMaskTakenByNeutral(0); Can never be taken away
;   ControlMaskTakenByEnemy (0) ; Can never be taken away

;   UncontrolledBehaviour (number)         ; Can never be uncontrolled
;   UncontrolledProvokedBehaviour (number) ; Can never be uncontrolled
  }
}

;
; FREEDOM GUARD : Sniper

DefineUnitType(FGXSniper)
{
  SetDescription(Sniper)
  SetMenuImage(ufsnpmn0.spr)
  SetSelectSounds(gvfg4sl0.wav gvfg4sl1.wav gvfg4sl2.wav gvsnpsl0.wav)
  SetResponseSounds(gvfg4rl0.wav gvfg4rl1.wav gvfg4rl2.wav gvsnprl0.wav)
  SetSide(4)
  NoAutoTarget()
  SetCost(70 2)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(1 12)
  SetHitSize(5)
  SetSeeingRange(12)
  SetVulnerability(ToughHumanWet 100)
  IsHuman()
  CanBeMorphedInto()
  CanMorphIntoOverlay(electric_blue_explosion 1)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(21008)
    SetPrereqs(20002)
    SetMaker(20002 20003)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufsnpst0.spr)
    SetMoveAnimation(0)
    AddWeapon(SniperRifle 1 0)
    SetHealthExplosion(0 splata_explosion unattached)
  }
}

;
; FREEDOM GUARD: Skirmish Tank


DefineUnitType(FGXMediumTank)
{
  SetDescription(Skirmish_Tank)
  SetMenuImage(ufsktmn0.spr)
  SetSelectSounds(gvfg2sl0.wav gvfg2sl1.wav gvfg2sl2.wav gvfg2sl3.wav)
  SetResponseSounds(gvfg2rl0.wav gvfg2rl1.wav gvfg2rl2.wav gvfg2rl4.wav)
;  SetEquivalentUnit(IMPPlasmaTank)
  SetSide(4)
  SetCost(60 2)
  UseEffects(Track)
  SetMoveMode(Ground)
  SetStrength(133)
  SetPhysics(10 16)
  SetHitSize(15)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(21020)
    SetPrereqs(20001)
    SetMaker(20001 20002 20003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ufsktst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufsktst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(0 eobpfsm0_explosion unattached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufsktac0.spr)
    SetMoveAnimation(0)
    AddWeapon(SkirmishGun1 1 0)
    SetHealthExplosion(30 eobpfsm0_explosion unattached)
  }
 AddPart {
   SetRotationRate(10)
   SetRotationalArc(0)
   SetScanDelay(500)
   SetImage(ufsktac1.spr)
   SetMoveAnimation(0)
   AddWeapon(SkirmishGun2 1 0)
   SetHealthExplosion(75 eobpfsm0_explosion unattached)
 }
}


;
; FREEDOM GUARD: SPIDER BIKE


DefineUnitType(FGXSpiderBike)
{
  SetDescription(Spider_Bike)
  SetMenuImage(ufspbmn0.spr)
  SetSelectSounds()
  SetSelectSounds(gvfg2sl0.wav gvfg2sl1.wav gvfg2sl2.wav gvfg2sl3.wav)
  SetResponseSounds(gvfg2rl0.wav gvfg2rl1.wav gvfg2rl2.wav gvfg2rl4.wav)
;  SetEquivalentUnit(IMPScoutTank)
  SetSide(4)
  SetCost(50 2)
  UseEffects(Wheela)
  SetMoveMode(Ground)
  SetStrength(133)
  SetPhysics(10 24)
  SetHitSize(10)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(21001)
    SetPrereqs(20001)
    SetMaker(20001 20002 20003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ufspbsh0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufspbst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(DoubleRailGun 0 0)
  }
}


;
; FREEDOM GUARD: Infiltrator

DefineUnitType(FGXSpy)
{
  SetDescription(Infiltrator)
  SetMenuImage(ucinfmn0.spr)
  SetSelectSounds(gvfinsl0.wav gvfinsl1.wav gvfinsl2.wav)
  SetResponseSounds(gvfinrl0.wav gvfinrl1.wav gvfinrl2.wav)
;  SetEquivalentUnit(IMPSpy)
  SetSide(4)
  NoAutoTarget()
  SetCost(100 3)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(66)
  SetPhysics(1 12)
  SetHitSize(5)
  SetSeeingRange(9)
  SetVulnerability(ToughHumanWet 100)
  IsHuman()
  CanBeMorphedInto()
  SetIdleAnimation(150 300 1 1)
  CanMorphIntoUnit(electric_blue_explosion 1)
  CanSpy(300 1200 500)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(21004)
    SetPrereqs(20002)
    SetMaker(20002 20003)
    SetEquivalence(4)
    SetTechLevel(90)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
    AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ucinfst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(0 splata_explosion unattached)
  }
}

;
; Most FREEDOM GUARD NON-HUMAN UNITS

;

;
; FREEDOM GUARD: Rapid Armored Transport  RAT2

DefineUnitType(FGXIFV)
{
  SetDescription(RAT)
  SetMenuImage(ufrt2mn0.spr)
  SetSelectSounds()
  SetSelectSounds(gvfg2sl0.wav gvfg2sl1.wav gvfg2sl2.wav gvfg2sl3.wav)
  SetResponseSounds(gvfg2rl0.wav gvfg2rl1.wav gvfg2rl2.wav gvfg2rl4.wav)
;  SetEquivalentUnit(IMPAssaultVehicle)
  SetSide(4)
  SetCost(45 1)
  UseEffects(Wheelf)
  SetMoveMode(Ground)
  SetStrength(200)
  SetPhysics(100 18)
  SetHitSize(18)
  SetSeeingRange(9)
  SetVulnerability(TankPlating 100)
  SetCarry(5 4)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(21015)
    SetPrereqs(20001)
    SetMaker(20001 20002 20003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  ; SetShadowImage(ufratst0.spr)
  AddPart {
    SetRotationRate(12)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufrt2st0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
  AddPart {
    SetRotationRate(12)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufrt2ac0.spr)
    SetMoveAnimation(0)
    AddWeapon(LaserRifle 1 0)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }

}

;
; FREEDOM GUARD: Phase Tank

DefineUnitType(FGXAmbushTank)
{
  SetDescription(Phase_Tank)
  SetMenuImage(ufphtmn0.spr)
  SetSelectSounds(gxphtsc0.wav gxphtsc1.wav)
  SetResponseSounds(gxphtrc0.wav gxphtrc1.wav)
;  SetEquivalentUnit(IMPHoverMarine)
  SetSide(4)
  SetCost(60 2)
  UseEffects(Track)
  SetMoveMode(Ground)
  SetStrength(166)
  SetPhysics(10 12)
  SetHitSize(15)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  CanPhase(3 2 fxh1 0)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetIdleAnimation(0 0 2 2)
  SetRequirements {
    SetType(21021)
    SetPrereqs(20002)
    SetMaker(20002 20003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ufphtst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufphtst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(PhaseTankCannon 1 0)
    SetStandingAnimation(3)
  }
}


;
; FREEDOM GUARD : Flak Jack

DefineUnitType(FGXConstructionMAD)
{
  SetDescription(Flak_Jack)
  SetMenuImage(ufflkmn0.spr)
  SetSelectSounds(gvflksl0.wav gvflksl1.wav gvflksl3.wav gvflksl4.wav)
  SetResponseSounds(gvflkrl0.wav gvflkrl1.wav gvflkrl4.wav gvflkrl5.wav)
;  SetEquivalentUnit(IMPMAD)
  SetSide(4)
  SetCost(50 2)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(1 12)
  SetHitSize(5)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
;  IsHuman()
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(21012)
    SetPrereqs(20002)
    SetMaker(20002 20003)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ufflksh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufflkst0.spr)
    SetMoveAnimation(0)
    AddWeapon(Chaff 1 0)
    SetHealthExplosion(0 splatd_explosion unattached)
  }
}

;
; FREEDOM GUARD : Road Terraformer

DefineUnitType(FGXTerraformRoad)
{
  SetDescription(TerraformRoad)
  SetMenuImage(uitermn0.spr)
  SetSelectSounds(gxtersc0.wav gxtersc0.wav gxtersc0.wav gxtersc0.wav)
  SetResponseSounds(gxterrc1.wav gxterrc1.wav gxterrc1.wav gxterrc1.wav)
  SetSide(4)
  SetCost(40 1)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(100 8)
  SetHitSize(5)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  SetShadowImage(uitersh0.spr)
 ;SetHealthExplosion(0 eodeblg3_explosion attached)
  SetRequirements {
    SetType(21900)
    SetPrereqs(20002)
    SetMaker(20002 20003)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uiterst0.spr)
    SetMoveAnimation(0)
; SetStandingAnimation(1)
    SetHealthExplosion(0 splatd_explosion unattached)
  }
  CanTerraform {
    SetAnimSection (1)            ; firing frame number
    SetSound (gvfg1sl0.wav)       ; sound effect played
    SetExplosion (death_with_sparks_explosion) ; the explosion to play
    SetTile (8)                   ; tilenumber to terraform to
    SetRadius (5)                 ; radius in tiles of the terraform.
  }
}

;
; FREEDOM GUARD : Marsh Terraformer

DefineUnitType(FGXTerraformMarsh)
{
  SetDescription(TerraformMarsh)
  SetMenuImage(uitermn1.spr)
  SetSelectSounds(gxtersc0.wav gxtersc0.wav gxtersc0.wav gxtersc0.wav)
  SetResponseSounds(gxterrc1.wav gxterrc1.wav gxterrc1.wav gxterrc1.wav)
  SetSide(4)
  SetCost(60 2)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(100 8)
  SetHitSize(5)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  SetShadowImage(uitersh0.spr)
; SetHealthExplosion(0 eodeblg3_explosion attached)
  SetRequirements {
    SetType(21901)
    SetPrereqs(20002)
    SetMaker(20002 20003)
 ;   SetEquivalence(1)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uiterst1.spr)
    SetMoveAnimation(0)
 ;  SetStandingAnimation(1)
    SetHealthExplosion(0 splatd_explosion unattached)
  }
  CanTerraform {
    SetAnimSection (1)            ; firing frame number
    SetSound (gvfg1sl0.wav)       ; sound effect played
    SetExplosion (death_with_sparks_explosion) ; the explosion to play
    SetTile (6)                   ; tilenumber to terraform to
    SetRadius (5)                 ; radius in tiles of the terraform.
  }
}




;
; FREEDOM GUARD: SPA


DefineUnitType(FGXSPA)
{
  SetDescription(Hellstorm_Artillery)
  SetMenuImage(uffarmn0.spr)
  SetSelectSounds(gvfarsl0.wav gvfarsl1.wav gvfarsl2.wav gvfarsl3.wav)
  SetResponseSounds(gvfarrl0.wav gvfarrl1.wav gvfarrl2.wav gvfarrl3.wav)
;  SetEquivalentUnit(IMPSPA)
  SetSide(4)
  SetCost(110 3)
  UseEffects(Track)
  SetMoveMode(Ground)
  SetStrength(133)
  SetPhysics(10 8)
  SetHitSize(15)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(21019)
    SetPrereqs(20002)
    SetMaker(20002 20003)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(uffarst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uffarst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(ArtilleryShell 1 0)
  }
}



;
; FREEDOM GUARD: Single Man SKY BIKE

DefineUnitType(FGXSkyBike)
{
  SetDescription(Sky_Bike)
  SetMenuImage(ufskbmn0.spr)
  SetResponseSounds(gvfg3rl0.wav gvfg3rl1.wav gvfg3rl2.wav gvfg3rl3.wav)
  SetSelectSounds(gvfg3sl0.wav gvfg3sl1.wav gvfg3sl2.wav gvfg3sl3.wav)
;  SetEquivalentUnit(ImpVTOL)
  SetSide(4)
  NoAutoTarget()
  SetCost(80 2)
  UseEffects(Flying)
  SetMoveMode(Fly)
  SetStrength(100)
  SetPhysics(10 28)
  SetHitSize(16)
  SetSeeingRange(9)
  SetVulnerability(FlyingArmour 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(21023)
    SetPrereqs(20003)
    SetMaker(20003)
    SetTechLevel(70)
  }
  SetShadowImage(ufskbst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufskbst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(BkLaser 1 0)
  }
}

;
; FREEDOM GUARD: Outrider2


DefineUnitType(FGXDualSkyBike)
{
  SetDescription(Avenger)
  SetMenuImage(ufomkmn0.spr)
  SetResponseSounds(gvaverl1.wav gvavesl3.wav gvavesl4.wav gvaverl5.wav)
  SetSelectSounds(gvavesl1.wav gvavesl2.wav gvaverl3.wav gvavesl5.wav)
;  SetEquivalentUnit(ImpVTOL)
  SetSide(4)
  NoAutoTarget()
  SetCost(220 7)
  UseEffects(Flying)
  SetMoveMode(Fly)
  SetStrength(115)
  SetPhysics(10 18)
  SetHitSize(16)
  SetSeeingRange(9)
  SetVulnerability(FlyingArmour 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(21024)
    SetPrereqs(20003)
    SetMaker(20003)
    SetTechLevel(70)
  }
  SetShadowImage(ufomksh0.spr)
  AddPart {
    SetRotationRate(5)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufomkst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(OutriderMissileMk2 1 0)
  }
}
;;
; FREEDOM GUARD: Base Mover;

DefineUnitType(FGXBaseMover)
{
  SetDescription(Base_Mover)
  SetMenuImage(ufbammn0.spr)
  SetSelectSounds()
  SetSelectSounds(gvfg2sl0.wav gvfg2sl1.wav gvfg2sl2.wav gvfg2sl3.wav)
  SetResponseSounds(gvfg2rl0.wav gvfg2rl1.wav gvfg2rl2.wav gvfg2rl4.wav)
  SetSide(4)
  SetCost(5 5)
  UseEffects(Track)
  SetMoveMode(Ground)
  SetStrength(500)
  SetPhysics(100 8)
  SetHitSize(15)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  SetRequirements {
    SetType(21025)
    SetPrereqs()
    SetMaker()
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ufbamst0.spr)
  AddPart {
    SetRotationRate(5)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufbamst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
}

;Ŀ
; IMPERIUM Unit Definitions                                                 
;

;
; IMPERIUM : Construction Rig

DefineUnitType(SHConstructionCrew)
{
  SetDescription(Construction_Rig)
  SetMenuImage(ucfcnmn0.spr)
  SetSelectSounds(gvicnsl0.wav gvicnsl1.wav gvicnsl2.wav)
  SetResponseSounds(gvicnrl0.wav gvicnrl1.wav gvicnrl2.wav)
  SetEquivalentUnit(FGXConstructionCrew)
  SetSide(5)
  SetCost(30 1)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(1 6)
  SetHitSize(5)
  SetSeeingRange(9)
  CanMorphIntoOverlay(electric_blue_explosion 1)
  CanBlend()
  SetVulnerability(TankPlatingWet 100)
 ;SetHealthExplosion(0 eodeblg3_explosion)
 SetRequirements {
    SetType(31005)
    SetPrereqs(30001)
    SetMaker(30001 30002 30003)
    SetEquivalence(1)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucfcnsh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ucfcnst0.spr)
    SetMoveAnimation(0)
    SetStandingAnimation(1)
    SetHealthExplosion(0 splatd_explosion unattached)
  }
}


;
; IMPERIUM : Bion

DefineUnitType(SHFireSupportMarine)
{
  SetDescription(Bion)
  SetMenuImage(uibonmn0.spr)
  SetSelectSounds(gxbonsc0.wav gxbonsc1.wav)
  SetResponseSounds(gxbonrc0.wav gxbonrc1.wav)
;  SetEquivalentUnit(FGMercenary)
  SetSide(5)
  SetCost(35 1)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(150)
  SetPhysics(1 6)
  SetHitSize(5)
  SetSeeingRange(8)
  SetVulnerability(PowerHumanWet 100)
  CanBeMorphedInto()
  IsHuman()
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(31003)
    SetPrereqs(30001)
    SetMaker(30001 30002 30003)
    SetEquivalence(3)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uibonst0.spr)
    SetMoveAnimation(0)
    SetStandingAnimation(4)
    AddWeapon(PlasmaRifle 1 0)
    SetHealthExplosion(0 splatb_explosion unattached)
  }
}

;
; IMPERIUM : Reaper

DefineUnitType(SHReaper)
{
  SetDescription(Reaper)
  SetMenuImage(uireamn0.spr)
  SetSelectSounds(gvreasl1.wav gvreasl2.wav gvrearl3.wav)
  SetResponseSounds(gvrearl1.wav gvrearl2.wav gvreasl4.wav gvrearl4.wav)
;  SetEquivalentUnit(FGFreedomFighter)
  SetSide(5)
  SetCost(40 2)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(175)
  SetPhysics(1 8)
  SetHitSize(5)
  SetSeeingRange(8)
  SetVulnerability(PowerHumanWet 100)
  CanBeMorphedInto()
  SetIdleAnimation(150 300 2 2)
  IsHuman()
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(31002)
    SetPrereqs(30001)
    SetMaker(30001 30002 30003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ufflksh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uireast0.spr)
    SetMoveAnimation(0)
    AddWeapon(HunterGun 1 0)
    SetStandingAnimation(3)
    SetHealthExplosion(0 splata_explosion unattached)
  }
}

;
; IMPERIUM : Exterminator

DefineUnitType(SHHoverMarine)
{
  SetDescription(Exterminator)
  SetMenuImage(uiextmn0.spr)
  SetSelectSounds(gvextsl0.wav gvextsl1.wav gvextsl2.wav)
  SetResponseSounds(gvextrl0.wav gvextrl1.wav gvextrl2.wav gvextal3.wav)
;  SetEquivalentUnit(FGTankHunterTank)
  SetSide(5)
  SetCost(50 2)
  UseEffects(Hovers)
  SetMoveMode(Hover)
  SetStrength(75)
  SetPhysics(1 16)
  SetHitSize(5)
  SetSeeingRange(8)
  SetVulnerability(PowerHuman 100)
  CanBeMorphedInto()
  IsHuman()
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(31004)
    SetPrereqs(30002)
    SetMaker(30002 30003)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uiextst0.spr)
    SetMoveAnimation(0)
    AddWeapon(PolyAcid 1 0)
    SetHealthExplosion(0 splatb_explosion unattached)
  }
}

;
; IMPERIUM : Infiltrator

DefineUnitType(SHSpy)
{
  SetDescription(Infiltrator)
  SetMenuImage(ucinfmn0.spr)
  SetSelectSounds(gviinsl0.wav gviinsl1.wav gviinsl2.wav gviinsl2.wav)
  SetResponseSounds(gviinrl0.wav gviinrl1.wav gviinal0.wav gviinal2.wav)
;  SetEquivalentUnit(FGSpy)
  SetSide(5)
  SetCost(100 3)
  NoAutoTarget()
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(66)
  SetPhysics(1 12)
  SetHitSize(5)
  SetSeeingRange(9)
  SetVulnerability(ToughHumanWet 100)
  CanMorphIntoUnit(electric_blue_explosion 1)
  CanBeMorphedInto()
  SetIdleAnimation(150 300 1 1)
  IsHuman()
  CanSpy(300 1200 500)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(31001)
    SetPrereqs(30002)
    SetMaker(30002 30003)
    SetEquivalence(4)
    SetTechLevel(90)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ucinfst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(0 splatc_explosion unattached)
  }
}

;
; Imperial : Suicide Zombie

DefineUnitType(SHSuicideZombie)
{
  SetDescription(Suicide_Zombie)
  SetMenuImage(ufmtrmn0.spr)
  SetSelectSounds(gvszmsl0.wav)
  SetResponseSounds(gvszmrl0.wav)
;  SetEquivalentUnit(IMPHostageTaker)
  SetSide(5)
  SetCost(60 2)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(1 6)
  SetHitSize(5)
  SetSeeingRange(8)
  SetVulnerability(ToughHumanWet 100)
  CanBeMorphedInto()
  IsHuman()
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(31099)
    SetPrereqs()
    SetMaker()
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(20)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(ucmensh0.spr)
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(ufmtrst0.spr)
    SetMoveAnimation(0)
    AddWeapon(SuicideNuke 1 1)
  }
}


;
; IMPERIUM: SCOUT TANK


DefineUnitType(SHScoutTank)
{
  SetDescription(Scout_Tank)
  SetMenuImage(uisttmn0.spr)
  SetSelectSounds(gvig1sl0.wav gvig1sl1.wav gvig1sl2.wav gvig1sl3.wav)
  SetResponseSounds(gvig1rl0.wav gvig1rl1.wav gvig1rl2.wav gvig1rl6.wav)
;  SetEquivalentUnitlentUnit(FGSpiderBike)
  SetSide(5)
  SetCost(50 2)
  UseEffects(Hover)
  SetMoveMode(Hover)
  SetStrength(150)
  SetPhysics(10 20)
  SetHitSize(11)
  SetSeeingRange(13)
  SetVulnerability(TankPlating 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(31010)
    SetPrereqs(30001)
    SetMaker(30001 30002 30003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(uisttst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uisttst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(LaserCannon 1 0)
  }
}


;
; IMPERIUM: Invader Troop Transport

DefineUnitType(SHAssaultVehicle)
{
  SetDescription(Invader_Troop_Transport)
  SetMenuImage(uiittmn0.spr)
  SetSelectSounds()
  SetSelectSounds(gvig1sl0.wav gvig1sl1.wav gvig1sl2.wav gvig1sl3.wav)
  SetResponseSounds(gvig1rl0.wav gvig1rl1.wav gvig1rl2.wav gvig1rl6.wav)
;  SetEquivalentUnit(FGIFV)
  SetSide(5)
  SetCost(60 2)
  UseEffects(Hover)
  SetMoveMode(Hover)
  SetStrength(150)
  SetPhysics(100 20)
  SetHitSize(10)
  SetSeeingRange(9)
  SetVulnerability(TankPlating 100)
  SetCarry(5 4)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(31009)
    SetPrereqs(30001)
    SetMaker(30001 30002 30003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(uiittst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uiittst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uchfrac0.spr)
    SetMoveAnimation(0)
    AddWeapon(LaserRifle 0 0 )
  }

}
;
; SH: Gemini Speed


DefineUnitType(SHGeminiSpeed)
{
  SetDescription(Gemini)
  SetMenuImage(uigemmn0.spr)
  SetSelectSounds(gvgemsl1.wav gvgemsl2.wav gvgemsl3.wav gvgemsl5.wav)
  SetResponseSounds(gvgemrl1.wav gvgemrl2.wav gvgemrl3.wav gvgemrl4.wav)
  SetSide(5)
  SetCost(70 3)
  UseEffects(Hover)
  SetMoveMode(Hover)
  SetStrength(170)
  SetPhysics(10 20)
  SetHitSize(15)
  NoEdit()
  SetSeeingRange(9)
  SetVulnerability(TankPlating 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(31067)
    SetPrereqs()
    SetMaker()
  }
  SetShadowImage(uigemsh0.spr)
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  AddPart {
    SetRotationRate(8)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uigemst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uigemac0.spr)    
    SetMoveAnimation(0)
    AddWeapon(GeminiHalf 1 0)
  }}



;
; SH: Gemini Tank


DefineUnitType(SHGemini)
{
  SetDescription(Gemini)
  SetMenuImage(uigemmn1.spr)
  SetSelectSounds(gvgemsl1.wav gvgemsl2.wav gvgemsl3.wav gvgemsl5.wav)
  SetResponseSounds(gvgemrl1.wav gvgemrl2.wav gvgemrl3.wav gvgemrl4.wav)
  SetSide(5)
  SetCost(70 3)
  UseEffects(Hover)
  SetMoveMode(Hover)
  SetStrength(340)
  SetPhysics(10 10)
  SetHitSize(15)
  SetSeeingRange(9)
  SetVulnerability(TankPlating 100)
  CanAlternate(SHGeminiSpeed 2)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(31066)
    SetPrereqs(30001)
    SetMaker(30001 30002 30003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(uigemsh1.spr)
  AddPart {
    SetRotationRate(8)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uigemst1.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uigemac1.spr)
    SetMoveAnimation(0)
    AddWeapon(GeminiFull 1 0)
  }
}


;
; IMPERIUM: Shredder

DefineUnitType(SHShredder)
{
  SetDescription(Shredder2)
  SetMenuImage(uishrmn1.spr)
  SetSelectSounds(gxshrsc0.wav gxshrsc1.wav gxshrsc2.wav)
  SetResponseSounds(gxshrrc0.wav gxshrrc1.wav)
;  SetEquivalentUnit(FGSuicideNuker)
  SetSide(5)
  SetCost(70 2)
  UseEffects(Hover)
  SetMoveMode(Hover)
  SetStrength(115)
  SetPhysics(10 20)
  SetHitSize(10)
  SetSeeingRange(9)
  SetVulnerability(ForcePlating 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(31015)
    SetPrereqs(30001)
    SetMaker(30001 30002 30003)
    SetTechLevel(40)
  }
  SetRundownInfo {
    SetAttack(50)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(uishrst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uishrst1.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(Shredder 1 0)
    SetStandingAnimation(0)
  }
}

;
; IMPERIUM: MAD


DefineUnitType(SHMAD)
{
  SetDescription(MAD)
  SetMenuImage(uimadmn0.spr)
  SetSelectSounds(gvig1sl0.wav gvig1sl1.wav gvig1sl2.wav gvig1sl3.wav)
  SetResponseSounds(gvig1rl0.wav gvig1rl1.wav gvig1rl2.wav gvig1rl6.wav)
;  SetEquivalentUnit(FGConstructionMAD)
  SetSide(5)
  SetCost(80 2)
  UseEffects(Hover)
  SetMoveMode(Hover)
  SetStrength(150)
  SetPhysics(10 16)
  SetHitSize(15)
  SetSeeingRange(9)
  SetVulnerability(TankPlating 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(31013)
    SetPrereqs(30002)
    SetMaker(30002 30003)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(uimadst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uimadst0.spr)
    SetMoveAnimation(0)
    AddWeapon(GroundToAirLaser 0 0 )
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
}


;
; IMPERIUM: Recon Drone


DefineUnitType(SHReconSaucer)
{
  SetDescription(Recon_Drone)
  SetMenuImage(uirdrmn0.spr)
  SetSelectSounds(gxrdrsc0.wav gxrdrsc1.wav gxrdrsc2.wav)
  SetResponseSounds(gxrdrrc0.wav gxrdrrc1.wav gxrdrrc2.wav)
;  SetEquivalentUnit(FGScout)
  SetSide(5)
  SetCost(40 1)
  UseEffects(Flying)
  SetMoveMode(Fly)
  SetStrength(66)
  SetPhysics(10 16)
  SetHitSize(12)
  SetSeeingRange(9)
  SetVulnerability(FlyingArmour 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(31019)
    SetPrereqs(30002)
    SetMaker(30002 30003)
    SetTechLevel(50)
  }
  SetShadowImage(uirdrst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uirdrst0.spr)
    SetMoveAnimation(0)
    ;SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
}


;
; SH : Road Terraformer

DefineUnitType(SHTerraformRoad)
{
  SetDescription(TerraformRoad)
  SetMenuImage(uitermn0.spr)
  SetSelectSounds(gxtersc0.wav gxtersc0.wav gxtersc0.wav gxtersc0.wav)
  SetResponseSounds(gxterrc1.wav gxterrc1.wav gxterrc1.wav gxterrc1.wav)
  SetSide(5)
  SetCost(40 1)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(100 8)
  SetHitSize(5)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  SetShadowImage(uitersh0.spr)
 ;SetHealthExplosion(0 eodeblg3_explosion attached)
  SetRequirements {
    SetType(31882)
    SetPrereqs(30002)
    SetMaker(30002 30003)
;    SetEquivalence(1)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uiterst0.spr)
    SetMoveAnimation(0)
   ; SetStandingAnimation(1)
    SetHealthExplosion(0 splatd_explosion unattached)
  }
  CanTerraform {
    SetAnimSection (1)            ; firing frame number
    SetSound (gvfg1sl0.wav)       ; sound effect played
    SetExplosion (death_with_sparks_explosion) ; the explosion to play
    SetTile (8)                   ; tilenumber to terraform to
    SetRadius (5)                 ; radius in tiles of the terraform.
  }
}

;
; SH : Marsh Terraformer

DefineUnitType(SHTerraformMarsh)
{
  SetDescription(TerraformMarsh)
  SetMenuImage(uitermn1.spr)
  SetSelectSounds(gxtersc0.wav gxtersc0.wav gxtersc0.wav gxtersc0.wav)
  SetResponseSounds(gxterrc1.wav gxterrc1.wav gxterrc1.wav gxterrc1.wav)
  SetSide(5)
  SetCost(60 2)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(100)
  SetPhysics(100 8)
  SetHitSize(5)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  SetShadowImage(uitersh0.spr)
 ;SetHealthExplosion(0 eodeblg3_explosion attached)
  SetRequirements {
    SetType(31881)
    SetPrereqs(30002)
    SetMaker(30002 30003)
 ;   SetEquivalence(1)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  AddPart {
    SetRotationRate(30)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uiterst1.spr)
    SetMoveAnimation(0)
   ; SetStandingAnimation(1)
    SetHealthExplosion(0 splatd_explosion unattached)
  }
  CanTerraform {
    SetAnimSection (1)            ; firing frame number
    SetSound (gvfg1sl0.wav)       ; sound effect played
    SetExplosion (death_with_sparks_explosion) ; the explosion to play
    SetTile (6)                   ; tilenumber to terraform to
    SetRadius (5)                 ; radius in tiles of the terraform.
  }
}


;;
;; IMPERIUM:Hostage Taker
;
;
;DefineUnitType(SHHostageTaker)
;{
;  SetDescription(Hostage_Taker)
;  SetMenuImage(uihosmn0.spr)
;  SetSelectSounds()
;  SetResponseSounds(gvhosrl0.wav gvhosrl2.wav gvhosal0.wav)
;  SetSelectSounds(gvhossl0.wav gvhossl1.wav)
;;  SetEquivalentUnit(FGSuicideNuker)
;  SetSide(5)
;  SetCost(60 2)
;  UseEffects(Wheel)
;  SetMoveMode(Ground)
;  SetStrength(450)
;  SetPhysics(10 20)
;  SetHitSize(10)
;  SetSeeingRange(9)
;  SetVulnerability(TankPlatingWet 100)
;  SetCarry(5 4)
;  CanGrab(SHSuicideZombie 30)
;  ;SetHealthExplosion(0 eodeblg3_explosion)
;  SetRequirements {
;    SetType(31014)
;    SetPrereqs(30002)
;    SetMaker(30002 30003)
;    SetTechLevel(14)
;  }
;  SetRundownInfo {
;    SetAttack(0)
;    SetDefence(100)
;    SetSquishSound("gxscmdc0.wav")
;  }
;  SetShadowImage(uihosst0.spr)
;  AddPart {
;    SetRotationRate(10)
;    SetRotationalArc(180)
;    SetScanDelay(500)
;    SetImage(uihosst0.spr)
;    SetMoveAnimation(0)
;    SetHealthExplosion(0 death_with_sparks_explosion unattached)
;  }
;}


;
; SH: Fury


DefineUnitType(SHFury)
{
  SetDescription(Fury)
  SetMenuImage(uifurmn0.spr)
  SetSelectSounds(gxfursc0.wav gxfursc1.wav gxfursc2.wav)
  SetResponseSounds(gxfurrc0.wav)
;  SetEquivalentUnit(IMPPlasmaTank)
  SetSide(5)
  SetCost(160 6)
  UseEffects(Foot)
  SetMoveMode(Ground)
  SetStrength(400)
  SetPhysics(10 10)
  SetHitSize(15)
  SetSeeingRange(9)
  SetVulnerability(TankPlatingWet 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(31901)
    SetPrereqs(30002)
    SetMaker(30002 30003)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uifurst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(0 eobpfsm0_explosion unattached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(90)
    SetScanDelay(500)
    SetImage(uifurac0.spr)
    SetMoveAnimation(0)
    AddWeapon(FuryGun2 1 0)
    SetHealthExplosion(30 eobpfsm0_explosion unattached)
  }
   SetShadowImage(uffurst0.SPR)
 AddPart {
   SetRotationRate(10)
   SetRotationalArc(0)
   SetScanDelay(500)
   SetImage(uifurac1.spr)
   SetMoveAnimation(0)
   AddWeapon(FuryGun1 1 0)
   SetHealthExplosion(75 eobpfsm0_explosion unattached)
 }
}


;
; IMPERIUM: SCARAB SHIELD


DefineUnitType(SHShieldedSPA)
{
  SetDescription(S_C_A_R_A_B_Shield)
  SetMenuImage(uiiarmn0.spr)
  SetSelectSounds(gvig1sl0.wav gvig1sl1.wav gvig1sl2.wav gvig1sl3.wav)
  SetResponseSounds(gvig1rl0.wav gvig1rl1.wav gvig1rl2.wav gvig1rl6.wav)
  SetSide(5)
  SetCost(80 3)
  UseEffects(Fixed)
  SetMoveMode(Ground)
  SetStrength(133)
  SetPhysics(10 12)
  SetHitSize(15)
  NoEdit()
  SetSeeingRange(6)
  SetVulnerability(TankPlating 10)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(31026)
    SetPrereqs()
    SetMaker()
  }
  SetShadowImage(uiiarac0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uiiarac0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
}



;
; IMPERIUM: SCARAB


DefineUnitType(SHSPA)
{
  SetDescription(S_C_A_R_A_B)
  SetMenuImage(uiiarmn0.spr)
  SetSelectSounds(gvig1sl0.wav gvig1sl1.wav gvig1sl2.wav gvig1sl3.wav)
  SetResponseSounds(gvig1rl0.wav gvig1rl1.wav gvig1rl2.wav gvig1rl6.wav)
;  SetEquivalentUnit(FGSPA)
  SetSide(5)
  SetCost(130 5)
  UseEffects(Hover)
  SetMoveMode(Hover)
  SetStrength(133)
  SetPhysics(10 6)
  SetHitSize(15)
  SetSeeingRange(9)
  SetVulnerability(TankPlating 100)
  CanAlternate(SHShieldedSPA 2)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(31017)
    SetPrereqs(30002)
    SetMaker(30002 30003)
    SetTechLevel(50)
  }
  SetRundownInfo {
    SetAttack(0)
    SetDefence(100)
    SetSquishSound("gxscmdc0.wav")
  }
  SetShadowImage(uiiarst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uiiarst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(IMPArtilleryShell 1 0)
  }
}



;
; IMPERIUM: Cyclone


DefineUnitType(SHVTOL)
{
  SetDescription(Cyclone)
  SetMenuImage(uicycmn0.spr)
  SetSelectSounds()
  SetResponseSounds(gvcycrl0.wav gvcycrl1.wav gvcycrl2.wav gvcycrl3.wav)
  SetSelectSounds(gvcycsl0.wav gvcycsl1.wav gvcycsl2.wav)
;  SetEquivalentUnit(FGSkyBike)
  SetSide(5)
  NoAutoTarget()
  SetCost(150 5)
  UseEffects(Flying)
  SetMoveMode(Fly)
  SetStrength(150)
  SetPhysics(10 24)
  SetHitSize(16)
  SetSeeingRange(9)
  SetVulnerability(FlyingArmour 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(31020)
    SetPrereqs(30003)
    SetMaker(30003)
    SetTechLevel(70)
  }
  SetShadowImage(uicycst0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uicycst0.spr)
    SetMoveAnimation(0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
    AddWeapon(CycloneCannon 1 0)
  }
}


;
; SH Hades Bomber


DefineUnitType(SHHades)
{
  SetDescription(Hades)
  SetMenuImage(uiarbmn0.spr)
  SetResponseSounds(gvhadsl1.wav gvhadsl2.wav gvhadrl3.wav gvhadsl4.wav)
  SetSelectSounds(gvhadrl1.wav gvhadrl6.wav gvhadsl3.wav gvhadrl8.wav)
  SetSide(5)
  NoAutoTarget()
  SetCost(220 9)
  UseEffects(Flying)
  SetMoveMode(Fly)
  SetStrength(150)
  SetPhysics(10 20)
  SetHitSize(10)
  SetSeeingRange(9)
  SetVulnerability(FlyingArmour 100)
  ;SetHealthExplosion(0 eodeblg3_explosion)
  SetRequirements {
    SetType(31018)
    SetPrereqs(30003)
    SetMaker(30003)
    SetTechLevel(70)
  }
  SetShadowImage(uiarbsh0.spr)
  AddPart {
    SetRotationRate(10)
    SetRotationalArc(180)
    SetScanDelay(500)
    SetImage(uiarbst0.spr)
    SetMoveAnimation(0)
    AddWeapon(HadesBomb 1 0)
    SetHealthExplosion(60 smor_explosion attached)
    SetHealthExplosion(30 smallfired_explosion attached)
    SetHealthExplosion(0 death_with_sparks_explosion unattached)
  }
}
