[ Index ] WAROFGENERALS

PHP Cross Reference of WAROFGENERALS MODS SOURCES

title

Body

[close]

/Command and conquer Heure H/Light of five stars/INI/Object/ -> DemoGeneral.ini (source)

   1  
   2  
   3  
   4  ;------------------------------------------------------------------------------
   5  Object Demo_ScudStormMissile
   6  
   7    ; *** ART Parameters ***
   8    Draw               = W3DModelDraw ModuleTag_01
   9      OkToChangeModelColor = Yes
  10      DefaultConditionState
  11        Model          = UBScudStrm_M
  12      End
  13      ConditionState   = DAMAGED REALLYDAMAGED RUBBLE
  14        Model          = NONE
  15      End
  16      
  17    End
  18  
  19    ; ***DESIGN parameters ***
  20    KindOf = PROJECTILE ;BALLISTIC_MISSILE
  21    EditorSorting       = SYSTEM
  22    VisionRange         = 300.0  
  23    ShroudClearingRange = 0
  24    TransportSlotCount  = 10
  25    ArmorSet
  26      Conditions       = None
  27      Armor            = ProjectileArmor
  28      DamageFX         = None
  29    End
  30  
  31    ; *** AUDIO Parameters ***
  32    ; SoundFallingFromPlane = DaisyCutterWeapon
  33      
  34    ; *** ENGINEERING Parameters ***
  35    Body = ActiveBody ModuleTag_02
  36      MaxHealth        = 10000.0
  37      InitialHealth    = 10000.0
  38    End
  39  
  40    Behavior = PhysicsBehavior ModuleTag_03
  41      Mass = 500.0
  42    End
  43  
  44    Behavior = MissileAIUpdate ModuleTag_04
  45      TryToFollowTarget             = No 
  46      FuelLifetime                  = 0 ; zero is infinite
  47      InitialVelocity               = 0                ; in dist/sec
  48      IgnitionFX                    = FX_ScudStormIgnition
  49      DistanceToTravelBeforeTurning = 500
  50      DistanceToTargetBeforeDiving  = 200 ; When I hit this close to target, I ignore PreferredHeight.
  51    End
  52    Locomotor = SET_NORMAL SCUDStormMissileLocomotor
  53  
  54    Behavior = HeightDieUpdate ModuleTag_05
  55      TargetHeight                    = 15.0
  56      TargetHeightIncludesStructures  = No
  57      OnlyWhenMovingDown              = Yes
  58      SnapToGroundOnDeath             = Yes
  59      InitialDelay                    = 1000 ; Can't explode in the first second so we don't explode on the pad
  60    End
  61  
  62    Behavior = DestroyDie ModuleTag_06
  63      ;nothing
  64    End
  65  
  66    Behavior = SpecialPowerCompletionDie ModuleTag_07
  67      SpecialPowerTemplate = SuperweaponScudStorm
  68    End
  69  
  70    Behavior = FireWeaponWhenDeadBehavior ModuleTag_08
  71      DeathWeapon   = Demo_ScudStormDamageWeapon
  72      StartsActive  = Yes
  73    End
  74  
  75  
  76  
  77    Geometry = Cylinder
  78    GeometryIsSmall = Yes
  79    GeometryMajorRadius = 7.0
  80    GeometryHeight = 30.0
  81  
  82  End
  83  
  84  
  85  
  86  
  87  
  88  
  89  
  90  
  91  
  92  
  93  
  94  
  95  
  96  
  97  
  98  
  99  
 100  
 101  
 102  
 103  
 104  
 105  
 106  
 107  
 108  
 109  
 110  
 111  
 112  
 113  
 114  
 115  
 116  
 117  
 118  
 119  
 120  
 121  
 122  
 123  
 124  
 125  
 126  
 127  
 128  
 129  
 130  
 131  
 132  
 133  
 134  Object Demo_GLAHole
 135  
 136    ; *** ART Parameters ***
 137    SelectPortrait           = SUHole_L
 138    ButtonImage              = SUHole_L
 139    Draw                     = W3DModelDraw  ModuleTag_01
 140      OkToChangeModelColor   = Yes
 141      ConditionState         = NONE
 142        Model                = UBHole
 143      End
 144      ConditionState         = DAMAGED
 145        Model                = UBHole_D
 146        ParticleSysBone      = Smoke01 SteamVent
 147      End
 148      ConditionState         = REALLYDAMAGED
 149        Model                = UBHole_E
 150        ParticleSysBone      = Smoke01 SteamVent
 151        ParticleSysBone      = Smoke02 SteamVent
 152        ParticleSysBone      = Fire01 GLAPowerPlantFlame
 153        ParticleSysBone      = Fire02 GLAPowerPlantFlame
 154        ParticleSysBone      = Fire03 GLAPowerPlantFlame
 155      End
 156    End
 157    
 158  ; ----------------- the door -------------------
 159    Draw                = W3DModelDraw ModuleTag_02
 160      OkToChangeModelColor   = Yes
 161      DefaultConditionState
 162        Model           = UBHole_A1
 163        Animation       = UBHole_A1.UBHole_A1
 164        AnimationMode   = MANUAL
 165        Flags           = START_FRAME_FIRST
 166      End
 167      ConditionState    = SOLD
 168        Model           = NONE
 169      End   
 170      ConditionState  = SOLD SNOW
 171         Model   = NONE
 172      End    
 173  
 174      ConditionState  = SOLD NIGHT
 175         Model   = NONE
 176      End    
 177  
 178      ConditionState  = SOLD NIGHT SNOW
 179         Model   = NONE
 180      End   
 181      ConditionState    = DAMAGED
 182        Model           = UBHole_A1D
 183        Animation       = UBHole_A1D.UBHole_A1D
 184        AnimationMode   = MANUAL
 185        Flags           = START_FRAME_FIRST
 186      End
 187      ConditionState    = DOOR_1_OPENING
 188        Model           = UBHole_A1
 189        Animation       = UBHole_A1.UBHole_A1
 190        AnimationMode   = ONCE
 191        Flags           = START_FRAME_FIRST
 192      End   
 193      ConditionState    = DOOR_1_OPENING DAMAGED
 194        Model           = UBHole_A1D
 195        Animation       = UBHole_A1D.UBHole_A1D
 196        AnimationMode   = ONCE
 197        Flags           = START_FRAME_FIRST
 198      End
 199      ConditionState    = DOOR_1_CLOSING
 200        Model           = UBHole_A1
 201        Animation       = UBHole_A1.UBHole_A1
 202        AnimationMode   = ONCE_BACKWARDS
 203        Flags           = START_FRAME_LAST
 204      End   
 205      ConditionState    = DOOR_1_CLOSING DAMAGED
 206        Model           = UBHole_A1D
 207        Animation       = UBHole_A1D.UBHole_A1D
 208        AnimationMode   = ONCE_BACKWARDS
 209        Flags           = START_FRAME_LAST
 210      End   
 211      ConditionState    = DOOR_1_WAITING_OPEN
 212        Model           = UBHole_A1
 213        Animation       = UBHole_A1.UBHole_A1
 214        AnimationMode   = MANUAL
 215        Flags           = START_FRAME_LAST
 216      End   
 217      ConditionState    = DOOR_1_WAITING_OPEN DAMAGED
 218        Model           = UBHole_A1D
 219        Animation       = UBHole_A1D.UBHole_A1D
 220        AnimationMode   = MANUAL
 221        Flags           = START_FRAME_LAST
 222      End
 223    End  
 224       
 225    PlacementViewAngle       = -135
 226  
 227    ; ***DESIGN parameters ***
 228    DisplayName       = OBJECT:GLAHole
 229    Side              = GLADemolitionGeneral
 230    EditorSorting     = SYSTEM
 231    Prerequisites
 232      Object = Demo_GLACommandCenter
 233    End
 234    BuildCost         = 100
 235    BuildTime         = 10.0           ; in seconds
 236    EnergyProduction  = 0
 237    VisionRange       = 50.0           ; Shroud clearing distance
 238    ShroudClearingRange = 50
 239    ArmorSet
 240      Conditions      = None
 241      Armor           = StructureArmor
 242      DamageFX        = StructureDamageFXNoShake
 243    End
 244  
 245    ; *** AUDIO Parameters ***
 246    VoiceSelect = TunnelNetworkSelect
 247    SoundOnDamaged        = BuildingDamagedStateLight
 248    SoundOnReallyDamaged  = BuildingDestroy
 249  
 250    UnitSpecificSounds
 251      UnderConstruction     = UnderConstructionLoop
 252    End
 253  
 254    ; *** ENGINEERING Parameters ***
 255    RadarPriority     = STRUCTURE
 256    KindOf            = PRELOAD STRUCTURE SELECTABLE IMMOBILE REBUILD_HOLE CAN_SEE_THROUGH_STRUCTURE IMMUNE_TO_CAPTURE SCORE_DESTROY MP_COUNT_FOR_VICTORY
 257    Body              = StructureBody ModuleTag_03
 258      ; To set the health for a particular hole, edit the entry in the object
 259      ; that will leave the hole behind (edit the RebuildHoleExposeDie entry)
 260      MaxHealth       = 9999999.9  ;bigger than anything realistic we use
 261      InitialHealth   = 9999999.9  ;bigger than anything realistic we use
 262    End
 263    Behavior                    = RebuildHoleBehavior ModuleTag_04
 264      WorkerObjectName          = Demo_GLAInfantryWorker
 265      WorkerRespawnDelay        = 20000 ;in milliseconds
 266      HoleHealthRegen%PerSecond = 0.5%    ;regen this % of HoleMaxHealth per second
 267    End 
 268    
 269    Behavior             = CreateObjectDie ModuleTag_13
 270      CreationList  = OCL_LargeStructureDebris
 271    End
 272    Behavior             = FXListDie ModuleTag_14
 273      DeathFX       = FX_StructureSmallDeath
 274    End
 275    
 276    
 277    
 278    Geometry            = CYLINDER
 279    GeometryMajorRadius = 25.0
 280    GeometryHeight      = 5.0    
 281    GeometryIsSmall     = No
 282    Shadow              = SHADOW_VOLUME
 283    BuildCompletion     = PLACED_BY_PLAYER
 284  
 285  End
 286  
 287  
 288  
 289  
 290  
 291  
 292  ;------------------------------------------------------------------------------
 293  ;GLA Command Center
 294  Object Demo_GLACommandCenter
 295  
 296    ; *** ART Parameters ***
 297    SelectPortrait         = SUHeadquarters_L
 298    ButtonImage            = SUHeadquarters
 299  
 300  ;  UpgradeCameo1 = Upgrade_GLAFortifiedStructure
 301  
 302    ; ----- The actual command center
 303    Draw                   = W3DModelDraw ModuleTag_01
 304       
 305      OkToChangeModelColor = Yes
 306      
 307      ; day
 308      ConditionState       = NONE
 309        Model              = UBCmdHQD
 310        ParticleSysBone    = Smoke01 SteamVent
 311        ParticleSysBone    = Fire01 SmolderingFire
 312        ParticleSysBone    = Fire01 SmolderingSmoke
 313        Animation          = UBCmdHQD.UBCmdHQD
 314        AnimationMode      = LOOP
 315      End
 316      
 317      ConditionState       = DAMAGED
 318        Model              = UBCmdHQD_D
 319        Animation          = UBCmdHQD_D.UBCmdHQD_D
 320        AnimationMode      = LOOP
 321      End
 322      ConditionState       = REALLYDAMAGED RUBBLE
 323        Model              = UBCmdHQD_E
 324        Animation          = UBCmdHQD_E.UBCmdHQD_E
 325        AnimationMode      = LOOP
 326      End    
 327      ConditionState         = GARRISONED
 328        Model                = UBCmdHQDE
 329        ParticleSysBone      = Smoke01 SmolderingSmoke
 330        Animation            = UBCmdHQDE.UBCmdHQDE
 331        AnimationMode        = LOOP
 332      End
 333      ConditionState         = DAMAGED GARRISONED
 334        Model                = UBCmdHQDE_D
 335        ParticleSysBone      = Smoke01 SmolderingSmoke
 336        Animation            = UBCmdHQDE_D.UBCmdHQDE_D
 337        AnimationMode        = LOOP
 338      End
 339      ConditionState         = REALLYDAMAGED GARRISONED
 340        Model                = UBCmdHQDE_E
 341        ParticleSysBone      = Smoke01 SmolderingSmoke
 342        Animation            = UBCmdHQDE_E.UBCmdHQDE_E
 343        AnimationMode        = LOOP
 344      End
 345  
 346      ; night    
 347      ConditionState       = NIGHT
 348        Model              = UBCmdHQD_N
 349        ParticleSysBone    = Smoke01 SteamVent
 350        ParticleSysBone    = Fire01 SmolderingFire
 351        ParticleSysBone    = Fire01 SmolderingSmoke
 352        Animation          = UBCmdHQD_N.UBCmdHQD_N
 353        AnimationMode      = LOOP
 354      End
 355      ConditionState       = DAMAGED NIGHT
 356        Model              = UBCmdHQD_DN
 357        Animation          = UBCmdHQD_DN.UBCmdHQD_DN
 358        AnimationMode      = LOOP
 359      End
 360      ConditionState       = REALLYDAMAGED RUBBLE NIGHT
 361        Model              = UBCmdHQD_EN
 362        Animation          = UBCmdHQD_EN.UBCmdHQD_EN
 363        AnimationMode      = LOOP
 364      End
 365      ConditionState         = GARRISONED NIGHT
 366        Model                = UBCmdHQDE_N
 367        ParticleSysBone      = Smoke01 SmolderingSmoke
 368        Animation            = UBCmdHQDE_N.UBCmdHQDE_N
 369        AnimationMode        = LOOP
 370      End
 371      ConditionState         = DAMAGED GARRISONED NIGHT
 372        Model                = UBCmdHQDE_DN
 373        ParticleSysBone      = Smoke01 SmolderingSmoke
 374        Animation            = UBCmdHQDE_DN.UBCmdHQDE_DN
 375        AnimationMode        = LOOP
 376      End
 377      ConditionState         = REALLYDAMAGED GARRISONED NIGHT
 378        Model                = UBCmdHQDE_EN
 379        ParticleSysBone      = Smoke01 SmolderingSmoke
 380        Animation            = UBCmdHQDE_EN.UBCmdHQDE_EN
 381        AnimationMode        = LOOP
 382      End
 383      
 384          ; day snow
 385      ConditionState       = SNOW
 386        Model              = UBCmdHQD_S
 387        ParticleSysBone    = Smoke01 SteamVent
 388        ParticleSysBone    = Fire01 SmolderingFire
 389        ParticleSysBone    = Fire01 SmolderingSmoke
 390        Animation          = UBCmdHQD_S.UBCmdHQD_S
 391        AnimationMode      = LOOP
 392      End   
 393      ConditionState       = DAMAGED SNOW
 394        Model              = UBCmdHQD_DS
 395        Animation          = UBCmdHQD_DS.UBCmdHQD_DS
 396        AnimationMode      = LOOP
 397      End
 398      ConditionState       = REALLYDAMAGED RUBBLE SNOW
 399        Model              = UBCmdHQD_ES
 400        Animation          = UBCmdHQD_ES.UBCmdHQD_ES
 401        AnimationMode      = LOOP
 402      End
 403      ConditionState         = GARRISONED SNOW
 404        Model                = UBCmdHQDE_S
 405        ParticleSysBone      = Smoke01 SmolderingSmoke
 406        Animation            = UBCmdHQDE_S.UBCmdHQDE_S
 407        AnimationMode        = LOOP
 408      End
 409      ConditionState         = DAMAGED GARRISONED SNOW
 410        Model                = UBCmdHQDE_DS
 411        ParticleSysBone      = Smoke01 SmolderingSmoke
 412        Animation            = UBCmdHQDE_DS.UBCmdHQDE_DS
 413        AnimationMode        = LOOP
 414      End
 415      ConditionState         = REALLYDAMAGED GARRISONED SNOW
 416        Model                = UBCmdHQDE_ES
 417        ParticleSysBone      = Smoke01 SmolderingSmoke
 418        Animation            = UBCmdHQDE_ES.UBCmdHQDE_ES
 419        AnimationMode        = LOOP
 420      End
 421      
 422      ; night snow
 423      ConditionState       = NIGHT SNOW
 424        Model              = UBCmdHQD_NS
 425        ParticleSysBone    = Smoke01 SteamVent
 426        ParticleSysBone    = Fire01 SmolderingFire
 427        ParticleSysBone    = Fire01 SmolderingSmoke
 428        Animation          = UBCmdHQD_NS.UBCmdHQD_NS
 429        AnimationMode      = LOOP
 430      End
 431      ConditionState       = DAMAGED NIGHT SNOW
 432        Model              = UBCmdHQD_DNS
 433        Animation          = UBCmdHQD_DNS.UBCmdHQD_DNS
 434        AnimationMode      = LOOP
 435      End
 436      ConditionState       = REALLYDAMAGED RUBBLE NIGHT SNOW
 437        Model              = UBCmdHQD_ENS
 438        Animation          = UBCmdHQD_ENS.UBCmdHQD_ENS
 439        AnimationMode      = LOOP
 440      End
 441      ConditionState         = GARRISONED NIGHT SNOW
 442        Model                = UBCmdHQDE_NS
 443        ParticleSysBone      = Smoke01 SmolderingSmoke
 444        Animation            = UBCmdHQDE_NS.UBCmdHQDE_NS
 445        AnimationMode        = LOOP
 446      End
 447      ConditionState         = DAMAGED GARRISONED NIGHT SNOW
 448        Model                = UBCmdHQDE_DNS
 449        ParticleSysBone      = Smoke01 SmolderingSmoke
 450        Animation            = UBCmdHQDE_DNS.UBCmdHQDE_DNS
 451        AnimationMode        = LOOP
 452      End
 453      ConditionState         = REALLYDAMAGED GARRISONED NIGHT SNOW
 454        Model                = UBCmdHQDE_ENS
 455        ParticleSysBone      = Smoke01 SmolderingSmoke
 456        Animation            = UBCmdHQDE_ENS.UBCmdHQDE_ENS
 457        AnimationMode        = LOOP
 458      End
 459  
 460  
 461          ;**************************************************************************************************************************
 462      ;This block handles every possible case with construction process, selling process, awaiting construction, and sold states
 463      ;for this draw module
 464      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
 465        Model              = UBCmdHQD
 466        Animation          = UBCmdHQ.UBCmdHQ
 467        AnimationMode      = LOOP
 468        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
 469      End
 470      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
 471        Model              = UBCmdHQD_D
 472        Animation          = UBCmdHQD_D.UBCmdHQD_D
 473        AnimationMode      = LOOP
 474        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
 475      End
 476      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED
 477        Model              = UBCmdHQD_E
 478        Animation          = UBCmdHQD_E.UBCmdHQD_E
 479        AnimationMode      = LOOP
 480        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
 481      End
 482      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT
 483        Model              = UBCmdHQD_N
 484        Animation          = UBCmdHQD_N.UBCmdHQD_N
 485        AnimationMode      = LOOP
 486        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
 487      End
 488      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT DAMAGED
 489        Model              = UBCmdHQD_DN
 490        Animation          = UBCmdHQD_DN.UBCmdHQD_DN
 491        AnimationMode      = LOOP
 492        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
 493      End
 494      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT REALLYDAMAGED
 495        Model              = UBCmdHQD_EN
 496        Animation          = UBCmdHQD_EN.UBCmdHQD_EN
 497        AnimationMode      = LOOP
 498        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
 499      End
 500      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW
 501        Model              = UBCmdHQD_S
 502        Animation          = UBCmdHQD_S.UBCmdHQD_S
 503        AnimationMode      = LOOP
 504        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
 505      End
 506      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW DAMAGED
 507        Model              = UBCmdHQD_DS
 508        Animation          = UBCmdHQD_DS.UBCmdHQD_DS
 509        AnimationMode      = LOOP
 510        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
 511      End
 512      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW REALLYDAMAGED
 513        Model              = UBCmdHQD_ES
 514        Animation          = UBCmdHQD_ES.UBCmdHQD_ES
 515        AnimationMode      = LOOP
 516        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
 517      End
 518  
 519      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW
 520        Model              = UBCmdHQD_NS
 521        Animation          = UBCmdHQD_NS.UBCmdHQD_NS
 522        AnimationMode      = LOOP
 523        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
 524      End
 525      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW DAMAGED
 526        Model              = UBCmdHQD_DNS
 527        Animation          = UBCmdHQD_DNS.UBCmdHQD_DNS
 528        AnimationMode      = LOOP
 529        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
 530      End
 531      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW REALLYDAMAGED
 532        Model              = UBCmdHQD_ENS
 533        Animation          = UBCmdHQD_ENS.UBCmdHQD_ENS
 534        AnimationMode      = LOOP
 535        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
 536      End
 537  
 538      ConditionState       = AWAITING_CONSTRUCTION 
 539        Model              = NONE
 540      End
 541      AliasConditionState  = AWAITING_CONSTRUCTION DAMAGED
 542      AliasConditionState  = AWAITING_CONSTRUCTION REALLYDAMAGED
 543      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT
 544      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT DAMAGED
 545      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT REALLYDAMAGED
 546      AliasConditionState  = AWAITING_CONSTRUCTION SNOW
 547      AliasConditionState  = AWAITING_CONSTRUCTION SNOW DAMAGED
 548      AliasConditionState  = AWAITING_CONSTRUCTION SNOW REALLYDAMAGED
 549      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW
 550      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW DAMAGED
 551      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW REALLYDAMAGED
 552      AliasConditionState  = SOLD 
 553      AliasConditionState  = SOLD DAMAGED
 554      AliasConditionState  = SOLD REALLYDAMAGED
 555      AliasConditionState  = SOLD NIGHT
 556      AliasConditionState  = SOLD NIGHT DAMAGED
 557      AliasConditionState  = SOLD NIGHT REALLYDAMAGED
 558      AliasConditionState  = SOLD SNOW
 559      AliasConditionState  = SOLD SNOW DAMAGED
 560      AliasConditionState  = SOLD SNOW REALLYDAMAGED
 561      AliasConditionState  = SOLD NIGHT SNOW
 562      AliasConditionState  = SOLD NIGHT SNOW DAMAGED
 563      AliasConditionState  = SOLD NIGHT SNOW REALLYDAMAGED
 564      AliasConditionState  = GARRISONED SOLD 
 565      AliasConditionState  = GARRISONED SOLD DAMAGED
 566      AliasConditionState  = GARRISONED SOLD REALLYDAMAGED
 567      AliasConditionState  = GARRISONED SOLD NIGHT
 568      AliasConditionState  = GARRISONED SOLD NIGHT DAMAGED
 569      AliasConditionState  = GARRISONED SOLD NIGHT REALLYDAMAGED
 570      AliasConditionState  = GARRISONED SOLD SNOW
 571      AliasConditionState  = GARRISONED SOLD SNOW DAMAGED
 572      AliasConditionState  = GARRISONED SOLD SNOW REALLYDAMAGED
 573      AliasConditionState  = GARRISONED SOLD NIGHT SNOW
 574      AliasConditionState  = GARRISONED SOLD NIGHT SNOW DAMAGED
 575      AliasConditionState  = GARRISONED SOLD NIGHT SNOW REALLYDAMAGED
 576      ;**************************************************************************************************************************
 577    End
 578  
 579    PlacementViewAngle = -135
 580  
 581    ; ------------ construction done flashing lights ----------
 582  ;  Draw = W3DModelDraw
 583  ;    DefaultConditionState
 584  ;      Model           = None
 585  ;    End
 586  ;    ConditionState    = SOLD
 587  ;      Model           = NONE
 588  ;    End    
 589  ;    ConditionState    = CONSTRUCTION_COMPLETE
 590  ;      Model           = ABWarFact_A2
 591  ;      Animation       = ABWarFact_A2.ABWarFact_A2
 592  ;      AnimationMode   = LOOP
 593  ;      Flags           = START_FRAME_FIRST
 594  ;    End  
 595  ;  End
 596      
 597    ; ------------ construction-zone fence -----------------
 598    Draw                = W3DModelDraw ModuleTag_02
 599    AnimationsRequirePower = No
 600      DefaultConditionState
 601        Model           = None
 602        TransitionKey   = DOWN_DEFAULT
 603      End
 604      ConditionState    = NIGHT
 605        Model           = None
 606        TransitionKey   = DOWN_DEFAULT
 607      End
 608      ConditionState    = SNOW
 609        Model           = None
 610        TransitionKey   = DOWN_DEFAULT
 611      End
 612      ConditionState    = SNOW NIGHT
 613        Model           = None
 614        TransitionKey   = DOWN_DEFAULT
 615      End
 616      ConditionState    = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
 617        Model           = UBCmdHQ_A4
 618        Animation       = UBCmdHQ_A4.UBCmdHQ_A4
 619        AnimationMode   = MANUAL
 620        Flags           = START_FRAME_LAST
 621        TransitionKey   = UP_DAY
 622      End
 623      ConditionState    = NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
 624        Model           = UBCmdHQ_A4N
 625        Animation       = UBCmdHQ_A4N.UBCmdHQ_A4N
 626        AnimationMode   = MANUAL
 627        Flags           = START_FRAME_LAST
 628        TransitionKey   = UP_NIGHT
 629      End
 630      ConditionState    = SNOW AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
 631        Model           = UBCmdHQ_A4S
 632        Animation       = UBCmdHQ_A4S.UBCmdHQ_A4S
 633        AnimationMode   = MANUAL
 634        Flags           = START_FRAME_LAST
 635        TransitionKey   = UP_SNOW
 636      End
 637      ConditionState    = SNOW NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
 638        Model           = UBCmdHQ_A4SN
 639        Animation       = UBCmdHQ_A4SN.UBCmdHQ_A4SN
 640        AnimationMode   = MANUAL
 641        Flags           = START_FRAME_LAST
 642        TransitionKey   = UP_SNOWNIGHT
 643      End
 644      TransitionState   = DOWN_DEFAULT UP_DAY
 645        Model           = UBCmdHQ_A4
 646        Animation       = UBCmdHQ_A4.UBCmdHQ_A4
 647        AnimationMode   = ONCE
 648        AnimationSpeedFactorRange = 1.0 1.0
 649        Flags           = START_FRAME_FIRST
 650      End
 651      TransitionState   = DOWN_DEFAULT UP_NIGHT
 652        Model           = UBCmdHQ_A4N
 653        Animation       = UBCmdHQ_A4N.UBCmdHQ_A4N
 654        AnimationMode   = ONCE
 655        AnimationSpeedFactorRange = 1.0 1.0
 656        Flags           = START_FRAME_FIRST
 657      End
 658      TransitionState   = DOWN_DEFAULT UP_SNOW
 659        Model           = UBCmdHQ_A4S
 660        Animation       = UBCmdHQ_A4S.UBCmdHQ_A4S
 661        AnimationMode   = ONCE
 662        AnimationSpeedFactorRange = 1.0 1.0
 663        Flags           = START_FRAME_FIRST
 664      End
 665      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
 666        Model           = UBCmdHQ_A4SN
 667        Animation       = UBCmdHQ_A4SN.UBCmdHQ_A4SN
 668        AnimationMode   = ONCE
 669        AnimationSpeedFactorRange = 1.0 1.0
 670        Flags           = START_FRAME_FIRST
 671      End
 672      TransitionState   = UP_DAY DOWN_DEFAULT
 673        Model           = UBCmdHQ_A4
 674        Animation       = UBCmdHQ_A4.UBCmdHQ_A4
 675        AnimationMode   = ONCE_BACKWARDS
 676        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
 677        Flags           = START_FRAME_LAST
 678      End
 679      TransitionState   = UP_NIGHT DOWN_DEFAULT
 680        Model           = UBCmdHQ_A4N
 681        Animation       = UBCmdHQ_A4N.UBCmdHQ_A4N
 682        AnimationMode   = ONCE_BACKWARDS
 683        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
 684        Flags           = START_FRAME_LAST
 685      End
 686      TransitionState   = UP_SNOW DOWN_DEFAULT
 687        Model           = UBCmdHQ_A4S
 688        Animation       = UBCmdHQ_A4S.UBCmdHQ_A4S
 689        AnimationMode   = ONCE_BACKWARDS
 690        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
 691        Flags           = START_FRAME_LAST
 692      End
 693      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
 694        Model           = UBCmdHQ_A4SN
 695        Animation       = UBCmdHQ_A4SN.UBCmdHQ_A4SN
 696        AnimationMode   = ONCE_BACKWARDS
 697        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
 698        Flags           = START_FRAME_LAST
 699      End
 700    End
 701  
 702    ; ------------ under-construction scaffolding -----------------
 703    Draw                = W3DModelDraw ModuleTag_03
 704    AnimationsRequirePower = No
 705      MinLODRequired = MEDIUM
 706      DefaultConditionState
 707        Model           = None
 708        TransitionKey   = DOWN_DEFAULT
 709      End
 710      ConditionState    = NIGHT
 711        Model           = None
 712        TransitionKey   = DOWN_DEFAULT
 713      End
 714      ConditionState    = SNOW
 715        Model           = None
 716        TransitionKey   = DOWN_DEFAULT
 717      End
 718      ConditionState    = SNOW NIGHT
 719        Model           = None
 720        TransitionKey   = DOWN_DEFAULT
 721      End
 722      ConditionState    = PARTIALLY_CONSTRUCTED
 723        Model           = UBCmdHQ_A6
 724        Animation       = UBCmdHQ_A6.UBCmdHQ_A6
 725        AnimationMode   = MANUAL
 726        Flags           = START_FRAME_LAST
 727        TransitionKey   = UP_DAY
 728        ParticleSysBone = Dust01 BuildingDust
 729        ParticleSysBone = Smoke01 BuildUpSmoke
 730        ParticleSysBone = Smoke02 BuildUpSmoke
 731        ParticleSysBone = Smoke03 BuildUpSmoke
 732      End
 733      ConditionState    = SNOW PARTIALLY_CONSTRUCTED
 734        Model           = UBCmdHQ_A6S
 735        Animation       = UBCmdHQ_A6S.UBCmdHQ_A6S
 736        AnimationMode   = MANUAL
 737        Flags           = START_FRAME_LAST
 738        TransitionKey   = UP_SNOW
 739        ParticleSysBone = Dust01 BuildingSnowDust
 740        ParticleSysBone = Smoke01 BuildUpSnowSmoke
 741        ParticleSysBone = Smoke02 BuildUpSnowSmoke
 742        ParticleSysBone = Smoke03 BuildUpSnowSmoke
 743      End
 744      ConditionState    = NIGHT PARTIALLY_CONSTRUCTED
 745        Model           = UBCmdHQ_A6N
 746        Animation       = UBCmdHQ_A6N.UBCmdHQ_A6N
 747        AnimationMode   = MANUAL
 748        Flags           = START_FRAME_LAST
 749        TransitionKey   = UP_NIGHT
 750        ParticleSysBone = Dust01 BuildingDust
 751        ParticleSysBone = Smoke01 BuildUpSmoke
 752        ParticleSysBone = Smoke02 BuildUpSmoke
 753        ParticleSysBone = Smoke03 BuildUpSmoke
 754      End
 755      ConditionState    = SNOW NIGHT PARTIALLY_CONSTRUCTED
 756        Model           = UBCmdHQ_A6SN
 757        Animation       = UBCmdHQ_A6SN.UBCmdHQ_A6SN
 758        AnimationMode   = MANUAL
 759        Flags           = START_FRAME_LAST
 760        TransitionKey   = UP_SNOWNIGHT
 761        ParticleSysBone = Dust01 BuildingNightSnowDust
 762        ParticleSysBone = Smoke01 BuildUpNightSnowSmoke
 763        ParticleSysBone = Smoke02 BuildUpNightSnowSmoke
 764        ParticleSysBone = Smoke03 BuildUpNightSnowSmoke
 765      End
 766      TransitionState   = DOWN_DEFAULT UP_DAY
 767       Model            = UBCmdHQ_A6
 768        Animation       = UBCmdHQ_A6.UBCmdHQ_A6
 769        AnimationMode   = ONCE
 770        AnimationSpeedFactorRange = 1.0 1.0
 771        Flags           = START_FRAME_FIRST
 772      End
 773      TransitionState   = DOWN_DEFAULT UP_NIGHT
 774       Model            = UBCmdHQ_A6N
 775        Animation       = UBCmdHQ_A6N.UBCmdHQ_A6N
 776        AnimationMode   = ONCE
 777        AnimationSpeedFactorRange = 1.0 1.0
 778        Flags           = START_FRAME_FIRST
 779      End
 780      TransitionState   = DOWN_DEFAULT UP_SNOW
 781       Model            = UBCmdHQ_A6S
 782        Animation       = UBCmdHQ_A6S.UBCmdHQ_A6S
 783        AnimationMode   = ONCE
 784        AnimationSpeedFactorRange = 1.0 1.0
 785        Flags           = START_FRAME_FIRST
 786      End
 787      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
 788       Model            = UBCmdHQ_A6SN
 789        Animation       = UBCmdHQ_A6SN.UBCmdHQ_A6SN
 790        AnimationMode   = ONCE
 791        AnimationSpeedFactorRange = 1.0 1.0
 792        Flags           = START_FRAME_FIRST
 793      End
 794      TransitionState   = UP_DAY DOWN_DEFAULT
 795        Model           = UBCmdHQ_A6
 796        Animation       = UBCmdHQ_A6.UBCmdHQ_A6
 797        AnimationMode   = ONCE_BACKWARDS
 798        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
 799        Flags           = START_FRAME_LAST
 800      End
 801      TransitionState   = UP_NIGHT DOWN_DEFAULT
 802        Model           = UBCmdHQ_A6N
 803        Animation       = UBCmdHQ_A6N.UBCmdHQ_A6N
 804        AnimationMode   = ONCE_BACKWARDS
 805        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
 806        Flags           = START_FRAME_LAST
 807      End
 808      TransitionState   = UP_SNOW DOWN_DEFAULT
 809        Model           = UBCmdHQ_A6S
 810        Animation       = UBCmdHQ_A6S.UBCmdHQ_A6S
 811        AnimationMode   = ONCE_BACKWARDS
 812        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
 813        Flags           = START_FRAME_LAST
 814      End
 815      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
 816        Model           = UBCmdHQ_A6SN
 817        Animation       = UBCmdHQ_A6SN.UBCmdHQ_A6SN
 818        AnimationMode   = ONCE_BACKWARDS
 819        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
 820        Flags           = START_FRAME_LAST
 821      End
 822    End
 823  
 824    ; Officers club flag
 825    Draw = W3DModelDraw ModuleTag_OfficersClub
 826      OkToChangeModelColor = No
 827  
 828      ConditionState       = NONE
 829        Model              = None
 830      End
 831      AliasConditionState  = DAMAGED
 832      AliasConditionState  = REALLYDAMAGED
 833      AliasConditionState  = RUBBLE
 834      AliasConditionState  = REALLYDAMAGED RUBBLE
 835      ConditionState       = PREORDER
 836        Model              = OCFlagGLA
 837        Animation          = OCFlagGLA.OCFlagGLA
 838        AnimationMode      = LOOP
 839        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
 840      End
 841  ;    ConditionState       = PREORDER DAMAGED
 842  ;      Model              = OCFlagGLA_D
 843  ;      Animation          = OCFlagGLA_D.OCFlagGLA_D
 844  ;      AnimationMode      = LOOP
 845  ;      Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
 846  ;    End
 847  ;    ConditionState       = PREORDER REALLYDAMAGED RUBBLE
 848  ;      Model              = OCFlagGLA_E
 849  ;      Animation          = OCFlagGLA_E.OCFlagGLA_E
 850  ;      AnimationMode      = LOOP
 851  ;      Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
 852  ;    End
 853    End
 854  
 855    ; ***DESIGN parameters ***
 856    DisplayName         = OBJECT:CommandCenter
 857    Side                = GLADemolitionGeneral
 858    EditorSorting       = STRUCTURE
 859    BuildCost           = 2000
 860    BuildTime           = 45.0           ; in seconds
 861    EnergyProduction    = 0  ;Command center should be free
 862    CommandSet          = Demo_GLACommandCenterCommandSet
 863    VisionRange         = 300.0           ; Shroud clearing distance
 864    ShroudClearingRange = 300
 865    ArmorSet
 866      Conditions        = None
 867      Armor             = StructureArmorTough
 868      DamageFX          = StructureDamageFXNoShake
 869    End
 870    ArmorSet
 871      Conditions        = PLAYER_UPGRADE
 872      Armor             = GLAUpgradedStructureArmorTough
 873      DamageFX          = StructureDamageFXNoShake
 874    End
 875  
 876    ExperienceValue     = 200 200 200 200  ; Experience point value at each level
 877  
 878    ; *** AUDIO Parameters ***
 879    VoiceSelect         = CommandCenterGLASelect
 880    SoundOnDamaged        = BuildingDamagedStateLight
 881    SoundOnReallyDamaged  = BuildingDestroy
 882  
 883    UnitSpecificSounds
 884      UnderConstruction     = UnderConstructionLoop
 885    End
 886  
 887  
 888    ; *** ENGINEERING Parameters ***
 889    RadarPriority       = STRUCTURE
 890    KindOf              = PRELOAD STRUCTURE SELECTABLE IMMOBILE COMMANDCENTER CAPTURABLE FS_FACTORY AUTO_RALLYPOINT MP_COUNT_FOR_VICTORY SCORE_CREATE
 891    Body                = StructureBody ModuleTag_04
 892      MaxHealth         = 5000.0
 893      InitialHealth     = 5000.0
 894  
 895      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
 896      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
 897      SubdualDamageCap = 5200
 898      SubdualDamageHealRate = 500
 899      SubdualDamageHealAmount = 100
 900    End
 901  
 902    Behavior        = ArmorUpgrade ModuleTag_Armor01
 903      TriggeredBy   = Upgrade_GLAFortifiedStructure
 904    End
 905  
 906    Behavior        = ModelConditionUpgrade ModuleTag_Armor01Visual
 907      ConditionFlag = GARRISONED
 908      TriggeredBy   = Upgrade_GLAFortifiedStructure
 909    End
 910  
 911    Behavior = PreorderCreate ModuleTag_PreorderCreate
 912    End
 913  
 914    Behavior = ProductionUpdate ModuleTag_05
 915      ; nothing
 916    End
 917    Behavior = DefaultProductionExitUpdate ModuleTag_06
 918      UnitCreatePoint   = X: 25.0  Y:  0.0   Z:0.0
 919      NaturalRallyPoint = X: 65.0  Y:  0.0   Z:0.0;NaturalRallyPointX must always match GeometryMajorRadius! -ML
 920    End
 921    Behavior             = RebuildHoleExposeDie ModuleTag_07
 922      HoleName      = GLAHoleCommandCenter
 923      HoleMaxHealth = 500.0
 924    End
 925    Behavior             = DestroyDie ModuleTag_08
 926      ;nothing
 927    End  
 928    Behavior             = CreateObjectDie ModuleTag_09
 929      CreationList  = OCL_LargeStructureDebris
 930    End
 931    Behavior             = FXListDie ModuleTag_10
 932      DeathFX       = FX_StructureMediumDeath
 933    End
 934  
 935    Behavior           = OCLSpecialPower ModuleTag_11
 936      SpecialPowerTemplate = SuperweaponRebelAmbush
 937      UpgradeOCL           = SCIENCE_RebelAmbush3 Demo_SUPERWEAPON_RebelAmbush3
 938      UpgradeOCL           = SCIENCE_RebelAmbush2 Demo_SUPERWEAPON_RebelAmbush2
 939      OCL                  = Demo_SUPERWEAPON_RebelAmbush1
 940      CreateLocation       = CREATE_AT_LOCATION
 941      OCLAdjustPositionToPassable = Yes ;Like RA2, shift target to passable cell so we don't land in water and on cliffs.
 942    End
 943  
 944    Behavior           = OCLSpecialPower ModuleTag_12
 945      SpecialPowerTemplate = SuperweaponBlackMarketNuke
 946      OCL                  = SUPERWEAPON_BlackMarketNuke
 947      CreateLocation       = CREATE_AT_EDGE_NEAR_SOURCE
 948    End
 949  
 950    Behavior           = OCLSpecialPower ModuleTag_13
 951      SpecialPowerTemplate = SuperweaponAnthraxBomb
 952      OCL                  = SUPERWEAPON_AnthraxBomb
 953      CreateLocation       = CREATE_AT_EDGE_NEAR_SOURCE
 954    End
 955    Behavior           = OCLSpecialPower ModuleTag_14
 956      SpecialPowerTemplate = SuperweaponEmergencyRepair
 957      UpgradeOCL           = SCIENCE_EmergencyRepair3 SUPERWEAPON_RepairVehicles3
 958      UpgradeOCL           = SCIENCE_EmergencyRepair2 SUPERWEAPON_RepairVehicles2
 959      OCL                  = SUPERWEAPON_RepairVehicles1
 960      CreateLocation       = CREATE_AT_LOCATION
 961    End
 962    Behavior           = OCLSpecialPower ModuleTag_21
 963      SpecialPowerTemplate = SuperweaponSneakAttack
 964      OCL                  = OCL_CreateSneakAttackTunnelStart
 965      CreateLocation       = CREATE_AT_LOCATION
 966      ReferenceObject      = GLASneakAttackTunnelNetwork ;So we know what the final product is for script placement calculations
 967    End
 968    Behavior           = OCLSpecialPower ModuleTag_22
 969      SpecialPowerTemplate = SuperweaponGPSScrambler
 970      OCL                  = SUPERWEAPON_GPSScrambler
 971      CreateLocation       = CREATE_AT_LOCATION
 972    End
 973  
 974  
 975    Behavior = CashBountyPower ModuleTag_15
 976      SpecialPowerTemplate    = SpecialAbilityCashBounty1
 977      Bounty                  = 5%
 978    End
 979    Behavior = CashBountyPower ModuleTag_16
 980      SpecialPowerTemplate    = SpecialAbilityCashBounty2
 981      Bounty                  = 10%
 982    End
 983    Behavior = CashBountyPower ModuleTag_17
 984      SpecialPowerTemplate    = SpecialAbilityCashBounty3
 985      Bounty                  = 20%
 986    End
 987   
 988    Behavior = FlammableUpdate ModuleTag_19
 989      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
 990      AflameDamageAmount = 5       ; taking this much damage...
 991      AflameDamageDelay = 500       ; this often.
 992    End
 993  
 994    Behavior = TransitionDamageFX ModuleTag_20
 995      ;-------------DESIGNED FOR MEDIUM SIZED FACTION BUILDING TRANSITIONS-------------------
 996      DamagedParticleSystem1       = Bone:None RandomBone:No PSys:StructureTransitionMediumSmoke
 997      ;---------------------------------------------------------------------------------------
 998      ReallyDamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionMediumSmoke
 999      ReallyDamagedParticleSystem2 = Bone:None RandomBone:No PSys:StructureTransitionMediumExplosion
1000      ReallyDamagedParticleSystem3 = Bone:None RandomBone:No PSys:StructureTransitionMediumShockwave
1001    End
1002  
1003  ; DemoGen gets free booby trap power.
1004    Behavior = GrantUpgradeCreate ModuleTag_23
1005      UpgradeToGrant           = Upgrade_GLAInfantryRebelBoobyTrapAttack
1006      ExemptStatus      = UNDER_CONSTRUCTION
1007    End
1008  
1009    Geometry            = BOX
1010    GeometryMajorRadius = 65.0
1011    GeometryMinorRadius = 65.0
1012    GeometryHeight      = 54.0
1013    FactoryExitWidth    = 25 
1014    GeometryIsSmall     = No
1015    Shadow              = SHADOW_VOLUME
1016    BuildCompletion     = PLACED_BY_PLAYER
1017  
1018  End
1019  
1020  ;------------------------------------------------------------------------------
1021  ObjectReskin Demo_GLAHoleCommandCenter Demo_GLAHole
1022    Draw                     = W3DModelDraw ModuleTag_01
1023      OkToChangeModelColor   = Yes
1024      ConditionState         = NONE
1025        Model                = UBHole
1026      End
1027      ConditionState         = DAMAGED
1028        Model                = UBHole_D
1029        ParticleSysBone      = Smoke01 SteamVent
1030      End
1031      ConditionState         = REALLYDAMAGED RUBBLE
1032        Model                = UBHole_E
1033        ParticleSysBone      = Smoke01 SteamVent
1034        ParticleSysBone      = Smoke02 SteamVent
1035        ParticleSysBone      = Fire01 GLAPowerPlantFlame
1036        ParticleSysBone      = Fire02 GLAPowerPlantFlame
1037        ParticleSysBone      = Fire03 GLAPowerPlantFlame
1038      End
1039    End
1040    Draw                     = W3DModelDraw ModuleTag_02
1041      OkToChangeModelColor   = Yes
1042      ConditionState         = NONE
1043        Model                = UBCmdHQ_R
1044        ParticleSysBone      = Smoke01 SmolderingSmoke
1045        ParticleSysBone      = Smoke02 SmolderingSmoke
1046        ParticleSysBone      = Smoke03 SmolderingSmoke
1047        ParticleSysBone      = Smoke04 SmolderingSmoke
1048      End
1049      ConditionState         = DAMAGED REALLYDAMAGED RUBBLE
1050        Model                = UBCmdHQ_R
1051        ParticleSysBone      = Smoke01 SmolderingSmoke
1052        ParticleSysBone      = Smoke02 SmolderingSmoke
1053        ParticleSysBone      = Smoke03 SmolderingSmoke
1054        ParticleSysBone      = Smoke04 SmolderingSmoke
1055      End
1056    End
1057  End
1058  
1059  
1060  
1061  
1062  ;------------------------------------------------------------------------------
1063  ;Fake GLA Command Center
1064  Object Demo_FakeGLACommandCenter
1065  
1066    ; *** ART Parameters ***
1067    SelectPortrait         = SUHeadquarters_L
1068    ButtonImage            = SUHeadquarters
1069  
1070  ;  UpgradeCameo1 = Upgrade_GLAFortifiedStructure
1071  
1072    ; ----- The actual command center
1073    Draw                   = W3DModelDraw ModuleTag_01
1074       
1075      OkToChangeModelColor = Yes
1076      
1077      ; day
1078      ConditionState       = NONE
1079        Model              = UBCmdHQD
1080        ParticleSysBone    = Smoke01 SteamVent
1081        ParticleSysBone    = Fire01 SmolderingFire
1082        ParticleSysBone    = Fire01 SmolderingSmoke
1083        Animation          = UBCmdHQD.UBCmdHQD
1084        AnimationMode      = LOOP
1085      End
1086      
1087      ConditionState       = DAMAGED
1088        Model              = UBCmdHQD_D
1089        Animation          = UBCmdHQD_D.UBCmdHQD_D
1090        AnimationMode      = LOOP
1091      End
1092      ConditionState       = REALLYDAMAGED RUBBLE
1093        Model              = UBCmdHQD_E
1094        Animation          = UBCmdHQD_E.UBCmdHQD_E
1095        AnimationMode      = LOOP
1096      End    
1097      ConditionState         = GARRISONED
1098        Model                = UBCmdHQEG
1099        ParticleSysBone      = Smoke01 SmolderingSmoke
1100        Animation            = UBCmdHQEG.UBCmdHQEG
1101        AnimationMode        = LOOP
1102      End
1103      ConditionState         = DAMAGED GARRISONED
1104        Model                = UBCmdHQEG_D
1105        ParticleSysBone      = Smoke01 SmolderingSmoke
1106        Animation            = UBCmdHQEG_D.UBCmdHQEG_D
1107        AnimationMode        = LOOP
1108      End
1109      ConditionState         = REALLYDAMAGED GARRISONED
1110        Model                = UBCmdHQEG_E
1111        ParticleSysBone      = Smoke01 SmolderingSmoke
1112        Animation            = UBCmdHQEG_E.UBCmdHQEG_E
1113        AnimationMode        = LOOP
1114      End
1115  
1116      ; night    
1117      ConditionState       = NIGHT
1118        Model              = UBCmdHQD_N
1119        ParticleSysBone    = Smoke01 SteamVent
1120        ParticleSysBone    = Fire01 SmolderingFire
1121        ParticleSysBone    = Fire01 SmolderingSmoke
1122        Animation          = UBCmdHQD_N.UBCmdHQD_N
1123        AnimationMode      = LOOP
1124      End
1125      ConditionState       = DAMAGED NIGHT
1126        Model              = UBCmdHQD_DN
1127        Animation          = UBCmdHQD_DN.UBCmdHQD_DN
1128        AnimationMode      = LOOP
1129      End
1130      ConditionState       = REALLYDAMAGED RUBBLE NIGHT
1131        Model              = UBCmdHQD_EN
1132        Animation          = UBCmdHQD_EN.UBCmdHQD_EN
1133        AnimationMode      = LOOP
1134      End
1135      ConditionState         = GARRISONED NIGHT
1136        Model                = UBCmdHQEG_N
1137        ParticleSysBone      = Smoke01 SmolderingSmoke
1138        Animation            = UBCmdHQEG_N.UBCmdHQEG_N
1139        AnimationMode        = LOOP
1140      End
1141      ConditionState         = DAMAGED GARRISONED NIGHT
1142        Model                = UBCmdHQEG_DN
1143        ParticleSysBone      = Smoke01 SmolderingSmoke
1144        Animation            = UBCmdHQEG_DN.UBCmdHQEG_DN
1145        AnimationMode        = LOOP
1146      End
1147      ConditionState         = REALLYDAMAGED GARRISONED NIGHT
1148        Model                = UBCmdHQEG_EN
1149        ParticleSysBone      = Smoke01 SmolderingSmoke
1150        Animation            = UBCmdHQEG_EN.UBCmdHQEG_EN
1151        AnimationMode        = LOOP
1152      End
1153      
1154          ; day snow
1155      ConditionState       = SNOW
1156        Model              = UBCmdHQD_S
1157        ParticleSysBone    = Smoke01 SteamVent
1158        ParticleSysBone    = Fire01 SmolderingFire
1159        ParticleSysBone    = Fire01 SmolderingSmoke
1160        Animation          = UBCmdHQD_S.UBCmdHQD_S
1161        AnimationMode      = LOOP
1162      End   
1163      ConditionState       = DAMAGED SNOW
1164        Model              = UBCmdHQD_DS
1165        Animation          = UBCmdHQD_DS.UBCmdHQD_DS
1166        AnimationMode      = LOOP
1167      End
1168      ConditionState       = REALLYDAMAGED RUBBLE SNOW
1169        Model              = UBCmdHQD_ES
1170        Animation          = UBCmdHQD_ES.UBCmdHQD_ES
1171        AnimationMode      = LOOP
1172      End
1173      ConditionState         = GARRISONED SNOW
1174        Model                = UBCmdHQEG_S
1175        ParticleSysBone      = Smoke01 SmolderingSmoke
1176        Animation            = UBCmdHQEG_S.UBCmdHQEG_S
1177        AnimationMode        = LOOP
1178      End
1179      ConditionState         = DAMAGED GARRISONED SNOW
1180        Model                = UBCmdHQEG_DS
1181        ParticleSysBone      = Smoke01 SmolderingSmoke
1182        Animation            = UBCmdHQEG_DS.UBCmdHQEG_DS
1183        AnimationMode        = LOOP
1184      End
1185      ConditionState         = REALLYDAMAGED GARRISONED SNOW
1186        Model                = UBCmdHQEG_ES
1187        ParticleSysBone      = Smoke01 SmolderingSmoke
1188        Animation            = UBCmdHQEG_ES.UBCmdHQEG_ES
1189        AnimationMode        = LOOP
1190      End
1191      
1192      ; night snow
1193      ConditionState       = NIGHT SNOW
1194        Model              = UBCmdHQD_NS
1195        ParticleSysBone    = Smoke01 SteamVent
1196        ParticleSysBone    = Fire01 SmolderingFire
1197        ParticleSysBone    = Fire01 SmolderingSmoke
1198        Animation          = UBCmdHQD_NS.UBCmdHQD_NS
1199        AnimationMode      = LOOP
1200      End
1201      ConditionState       = DAMAGED NIGHT SNOW
1202        Model              = UBCmdHQD_DNS
1203        Animation          = UBCmdHQD_DNS.UBCmdHQD_DNS
1204        AnimationMode      = LOOP
1205      End
1206      ConditionState       = REALLYDAMAGED RUBBLE NIGHT SNOW
1207        Model              = UBCmdHQD_ENS
1208        Animation          = UBCmdHQD_ENS.UBCmdHQD_ENS
1209        AnimationMode      = LOOP
1210      End
1211      ConditionState         = GARRISONED NIGHT SNOW
1212        Model                = UBCmdHQEG_NS
1213        ParticleSysBone      = Smoke01 SmolderingSmoke
1214        Animation            = UBCmdHQEG_NS.UBCmdHQEG_NS
1215        AnimationMode        = LOOP
1216      End
1217      ConditionState         = DAMAGED GARRISONED NIGHT SNOW
1218        Model                = UBCmdHQEG_DNS
1219        ParticleSysBone      = Smoke01 SmolderingSmoke
1220        Animation            = UBCmdHQEG_DNS.UBCmdHQEG_DNS
1221        AnimationMode        = LOOP
1222      End
1223      ConditionState         = REALLYDAMAGED GARRISONED NIGHT SNOW
1224        Model                = UBCmdHQEG_ENS
1225        ParticleSysBone      = Smoke01 SmolderingSmoke
1226        Animation            = UBCmdHQEG_ENS.UBCmdHQEG_ENS
1227        AnimationMode        = LOOP
1228      End
1229  
1230  
1231          ;**************************************************************************************************************************
1232      ;This block handles every possible case with construction process, selling process, awaiting construction, and sold states
1233      ;for this draw module
1234      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
1235        Model              = UBCmdHQD
1236        Animation          = UBCmdHQ.UBCmdHQ
1237        AnimationMode      = LOOP
1238        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
1239      End
1240      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
1241        Model              = UBCmdHQD_D
1242        Animation          = UBCmdHQD_D.UBCmdHQD_D
1243        AnimationMode      = LOOP
1244        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
1245      End
1246      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED
1247        Model              = UBCmdHQD_E
1248        Animation          = UBCmdHQD_E.UBCmdHQD_E
1249        AnimationMode      = LOOP
1250        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
1251      End
1252      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT
1253        Model              = UBCmdHQD_N
1254        Animation          = UBCmdHQD_N.UBCmdHQD_N
1255        AnimationMode      = LOOP
1256        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
1257      End
1258      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT DAMAGED
1259        Model              = UBCmdHQD_DN
1260        Animation          = UBCmdHQD_DN.UBCmdHQD_DN
1261        AnimationMode      = LOOP
1262        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
1263      End
1264      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT REALLYDAMAGED
1265        Model              = UBCmdHQD_EN
1266        Animation          = UBCmdHQD_EN.UBCmdHQD_EN
1267        AnimationMode      = LOOP
1268        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
1269      End
1270      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW
1271        Model              = UBCmdHQD_S
1272        Animation          = UBCmdHQD_S.UBCmdHQD_S
1273        AnimationMode      = LOOP
1274        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
1275      End
1276      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW DAMAGED
1277        Model              = UBCmdHQD_DS
1278        Animation          = UBCmdHQD_DS.UBCmdHQD_DS
1279        AnimationMode      = LOOP
1280        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
1281      End
1282      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW REALLYDAMAGED
1283        Model              = UBCmdHQD_ES
1284        Animation          = UBCmdHQD_ES.UBCmdHQD_ES
1285        AnimationMode      = LOOP
1286        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
1287      End
1288  
1289      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW
1290        Model              = UBCmdHQD_NS
1291        Animation          = UBCmdHQD_NS.UBCmdHQD_NS
1292        AnimationMode      = LOOP
1293        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
1294      End
1295      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW DAMAGED
1296        Model              = UBCmdHQD_DNS
1297        Animation          = UBCmdHQD_DNS.UBCmdHQD_DNS
1298        AnimationMode      = LOOP
1299        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
1300      End
1301      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW REALLYDAMAGED
1302        Model              = UBCmdHQD_ENS
1303        Animation          = UBCmdHQD_ENS.UBCmdHQD_ENS
1304        AnimationMode      = LOOP
1305        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
1306      End
1307  
1308      ConditionState       = AWAITING_CONSTRUCTION 
1309        Model              = NONE
1310      End
1311      AliasConditionState  = AWAITING_CONSTRUCTION DAMAGED
1312      AliasConditionState  = AWAITING_CONSTRUCTION REALLYDAMAGED
1313      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT
1314      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT DAMAGED
1315      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT REALLYDAMAGED
1316      AliasConditionState  = AWAITING_CONSTRUCTION SNOW
1317      AliasConditionState  = AWAITING_CONSTRUCTION SNOW DAMAGED
1318      AliasConditionState  = AWAITING_CONSTRUCTION SNOW REALLYDAMAGED
1319      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW
1320      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW DAMAGED
1321      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW REALLYDAMAGED
1322      AliasConditionState  = SOLD 
1323      AliasConditionState  = SOLD DAMAGED
1324      AliasConditionState  = SOLD REALLYDAMAGED
1325      AliasConditionState  = SOLD NIGHT
1326      AliasConditionState  = SOLD NIGHT DAMAGED
1327      AliasConditionState  = SOLD NIGHT REALLYDAMAGED
1328      AliasConditionState  = SOLD SNOW
1329      AliasConditionState  = SOLD SNOW DAMAGED
1330      AliasConditionState  = SOLD SNOW REALLYDAMAGED
1331      AliasConditionState  = SOLD NIGHT SNOW
1332      AliasConditionState  = SOLD NIGHT SNOW DAMAGED
1333      AliasConditionState  = SOLD NIGHT SNOW REALLYDAMAGED
1334      AliasConditionState  = GARRISONED SOLD 
1335      AliasConditionState  = GARRISONED SOLD DAMAGED
1336      AliasConditionState  = GARRISONED SOLD REALLYDAMAGED
1337      AliasConditionState  = GARRISONED SOLD NIGHT
1338      AliasConditionState  = GARRISONED SOLD NIGHT DAMAGED
1339      AliasConditionState  = GARRISONED SOLD NIGHT REALLYDAMAGED
1340      AliasConditionState  = GARRISONED SOLD SNOW
1341      AliasConditionState  = GARRISONED SOLD SNOW DAMAGED
1342      AliasConditionState  = GARRISONED SOLD SNOW REALLYDAMAGED
1343      AliasConditionState  = GARRISONED SOLD NIGHT SNOW
1344      AliasConditionState  = GARRISONED SOLD NIGHT SNOW DAMAGED
1345      AliasConditionState  = GARRISONED SOLD NIGHT SNOW REALLYDAMAGED
1346      ;**************************************************************************************************************************
1347    End
1348  
1349    PlacementViewAngle = -135
1350  
1351    ; ------------ construction done flashing lights ----------
1352  ;  Draw = W3DModelDraw
1353  ;    DefaultConditionState
1354  ;      Model           = None
1355  ;    End
1356  ;    ConditionState    = SOLD
1357  ;      Model           = NONE
1358  ;    End    
1359  ;    ConditionState    = CONSTRUCTION_COMPLETE
1360  ;      Model           = ABWarFact_A2
1361  ;      Animation       = ABWarFact_A2.ABWarFact_A2
1362  ;      AnimationMode   = LOOP
1363  ;      Flags           = START_FRAME_FIRST
1364  ;    End  
1365  ;  End
1366      
1367    ; ------------ construction-zone fence -----------------
1368    Draw                = W3DModelDraw ModuleTag_02
1369    AnimationsRequirePower = No
1370      DefaultConditionState
1371        Model           = None
1372        TransitionKey   = DOWN_DEFAULT
1373      End
1374      ConditionState    = NIGHT
1375        Model           = None
1376        TransitionKey   = DOWN_DEFAULT
1377      End
1378      ConditionState    = SNOW
1379        Model           = None
1380        TransitionKey   = DOWN_DEFAULT
1381      End
1382      ConditionState    = SNOW NIGHT
1383        Model           = None
1384        TransitionKey   = DOWN_DEFAULT
1385      End
1386      ConditionState    = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
1387        Model           = UBCmdHQ_A4
1388        Animation       = UBCmdHQ_A4.UBCmdHQ_A4
1389        AnimationMode   = MANUAL
1390        Flags           = START_FRAME_LAST
1391        TransitionKey   = UP_DAY
1392      End
1393      ConditionState    = NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
1394        Model           = UBCmdHQ_A4N
1395        Animation       = UBCmdHQ_A4N.UBCmdHQ_A4N
1396        AnimationMode   = MANUAL
1397        Flags           = START_FRAME_LAST
1398        TransitionKey   = UP_NIGHT
1399      End
1400      ConditionState    = SNOW AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
1401        Model           = UBCmdHQ_A4S
1402        Animation       = UBCmdHQ_A4S.UBCmdHQ_A4S
1403        AnimationMode   = MANUAL
1404        Flags           = START_FRAME_LAST
1405        TransitionKey   = UP_SNOW
1406      End
1407      ConditionState    = SNOW NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
1408        Model           = UBCmdHQ_A4SN
1409        Animation       = UBCmdHQ_A4SN.UBCmdHQ_A4SN
1410        AnimationMode   = MANUAL
1411        Flags           = START_FRAME_LAST
1412        TransitionKey   = UP_SNOWNIGHT
1413      End
1414      TransitionState   = DOWN_DEFAULT UP_DAY
1415        Model           = UBCmdHQ_A4
1416        Animation       = UBCmdHQ_A4.UBCmdHQ_A4
1417        AnimationMode   = ONCE
1418        AnimationSpeedFactorRange = 1.0 1.0
1419        Flags           = START_FRAME_FIRST
1420      End
1421      TransitionState   = DOWN_DEFAULT UP_NIGHT
1422        Model           = UBCmdHQ_A4N
1423        Animation       = UBCmdHQ_A4N.UBCmdHQ_A4N
1424        AnimationMode   = ONCE
1425        AnimationSpeedFactorRange = 1.0 1.0
1426        Flags           = START_FRAME_FIRST
1427      End
1428      TransitionState   = DOWN_DEFAULT UP_SNOW
1429        Model           = UBCmdHQ_A4S
1430        Animation       = UBCmdHQ_A4S.UBCmdHQ_A4S
1431        AnimationMode   = ONCE
1432        AnimationSpeedFactorRange = 1.0 1.0
1433        Flags           = START_FRAME_FIRST
1434      End
1435      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
1436        Model           = UBCmdHQ_A4SN
1437        Animation       = UBCmdHQ_A4SN.UBCmdHQ_A4SN
1438        AnimationMode   = ONCE
1439        AnimationSpeedFactorRange = 1.0 1.0
1440        Flags           = START_FRAME_FIRST
1441      End
1442      TransitionState   = UP_DAY DOWN_DEFAULT
1443        Model           = UBCmdHQ_A4
1444        Animation       = UBCmdHQ_A4.UBCmdHQ_A4
1445        AnimationMode   = ONCE_BACKWARDS
1446        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
1447        Flags           = START_FRAME_LAST
1448      End
1449      TransitionState   = UP_NIGHT DOWN_DEFAULT
1450        Model           = UBCmdHQ_A4N
1451        Animation       = UBCmdHQ_A4N.UBCmdHQ_A4N
1452        AnimationMode   = ONCE_BACKWARDS
1453        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
1454        Flags           = START_FRAME_LAST
1455      End
1456      TransitionState   = UP_SNOW DOWN_DEFAULT
1457        Model           = UBCmdHQ_A4S
1458        Animation       = UBCmdHQ_A4S.UBCmdHQ_A4S
1459        AnimationMode   = ONCE_BACKWARDS
1460        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
1461        Flags           = START_FRAME_LAST
1462      End
1463      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
1464        Model           = UBCmdHQ_A4SN
1465        Animation       = UBCmdHQ_A4SN.UBCmdHQ_A4SN
1466        AnimationMode   = ONCE_BACKWARDS
1467        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
1468        Flags           = START_FRAME_LAST
1469      End
1470    End
1471  
1472    ; ------------ under-construction scaffolding -----------------
1473    Draw                = W3DModelDraw ModuleTag_03
1474    AnimationsRequirePower = No
1475      MinLODRequired = MEDIUM
1476      DefaultConditionState
1477        Model           = None
1478        TransitionKey   = DOWN_DEFAULT
1479      End
1480      ConditionState    = NIGHT
1481        Model           = None
1482        TransitionKey   = DOWN_DEFAULT
1483      End
1484      ConditionState    = SNOW
1485        Model           = None
1486        TransitionKey   = DOWN_DEFAULT
1487      End
1488      ConditionState    = SNOW NIGHT
1489        Model           = None
1490        TransitionKey   = DOWN_DEFAULT
1491      End
1492      ConditionState    = PARTIALLY_CONSTRUCTED
1493        Model           = UBCmdHQ_A6
1494        Animation       = UBCmdHQ_A6.UBCmdHQ_A6
1495        AnimationMode   = MANUAL
1496        Flags           = START_FRAME_LAST
1497        TransitionKey   = UP_DAY
1498        ParticleSysBone = Dust01 BuildingDust
1499        ParticleSysBone = Smoke01 BuildUpSmoke
1500        ParticleSysBone = Smoke02 BuildUpSmoke
1501        ParticleSysBone = Smoke03 BuildUpSmoke
1502      End
1503      ConditionState    = SNOW PARTIALLY_CONSTRUCTED
1504        Model           = UBCmdHQ_A6S
1505        Animation       = UBCmdHQ_A6S.UBCmdHQ_A6S
1506        AnimationMode   = MANUAL
1507        Flags           = START_FRAME_LAST
1508        TransitionKey   = UP_SNOW
1509        ParticleSysBone = Dust01 BuildingSnowDust
1510        ParticleSysBone = Smoke01 BuildUpSnowSmoke
1511        ParticleSysBone = Smoke02 BuildUpSnowSmoke
1512        ParticleSysBone = Smoke03 BuildUpSnowSmoke
1513      End
1514      ConditionState    = NIGHT PARTIALLY_CONSTRUCTED
1515        Model           = UBCmdHQ_A6N
1516        Animation       = UBCmdHQ_A6N.UBCmdHQ_A6N
1517        AnimationMode   = MANUAL
1518        Flags           = START_FRAME_LAST
1519        TransitionKey   = UP_NIGHT
1520        ParticleSysBone = Dust01 BuildingDust
1521        ParticleSysBone = Smoke01 BuildUpSmoke
1522        ParticleSysBone = Smoke02 BuildUpSmoke
1523        ParticleSysBone = Smoke03 BuildUpSmoke
1524      End
1525      ConditionState    = SNOW NIGHT PARTIALLY_CONSTRUCTED
1526        Model           = UBCmdHQ_A6SN
1527        Animation       = UBCmdHQ_A6SN.UBCmdHQ_A6SN
1528        AnimationMode   = MANUAL
1529        Flags           = START_FRAME_LAST
1530        TransitionKey   = UP_SNOWNIGHT
1531        ParticleSysBone = Dust01 BuildingNightSnowDust
1532        ParticleSysBone = Smoke01 BuildUpNightSnowSmoke
1533        ParticleSysBone = Smoke02 BuildUpNightSnowSmoke
1534        ParticleSysBone = Smoke03 BuildUpNightSnowSmoke
1535      End
1536      TransitionState   = DOWN_DEFAULT UP_DAY
1537       Model            = UBCmdHQ_A6
1538        Animation       = UBCmdHQ_A6.UBCmdHQ_A6
1539        AnimationMode   = ONCE
1540        AnimationSpeedFactorRange = 1.0 1.0
1541        Flags           = START_FRAME_FIRST
1542      End
1543      TransitionState   = DOWN_DEFAULT UP_NIGHT
1544       Model            = UBCmdHQ_A6N
1545        Animation       = UBCmdHQ_A6N.UBCmdHQ_A6N
1546        AnimationMode   = ONCE
1547        AnimationSpeedFactorRange = 1.0 1.0
1548        Flags           = START_FRAME_FIRST
1549      End
1550      TransitionState   = DOWN_DEFAULT UP_SNOW
1551       Model            = UBCmdHQ_A6S
1552        Animation       = UBCmdHQ_A6S.UBCmdHQ_A6S
1553        AnimationMode   = ONCE
1554        AnimationSpeedFactorRange = 1.0 1.0
1555        Flags           = START_FRAME_FIRST
1556      End
1557      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
1558       Model            = UBCmdHQ_A6SN
1559        Animation       = UBCmdHQ_A6SN.UBCmdHQ_A6SN
1560        AnimationMode   = ONCE
1561        AnimationSpeedFactorRange = 1.0 1.0
1562        Flags           = START_FRAME_FIRST
1563      End
1564      TransitionState   = UP_DAY DOWN_DEFAULT
1565        Model           = UBCmdHQ_A6
1566        Animation       = UBCmdHQ_A6.UBCmdHQ_A6
1567        AnimationMode   = ONCE_BACKWARDS
1568        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
1569        Flags           = START_FRAME_LAST
1570      End
1571      TransitionState   = UP_NIGHT DOWN_DEFAULT
1572        Model           = UBCmdHQ_A6N
1573        Animation       = UBCmdHQ_A6N.UBCmdHQ_A6N
1574        AnimationMode   = ONCE_BACKWARDS
1575        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
1576        Flags           = START_FRAME_LAST
1577      End
1578      TransitionState   = UP_SNOW DOWN_DEFAULT
1579        Model           = UBCmdHQ_A6S
1580        Animation       = UBCmdHQ_A6S.UBCmdHQ_A6S
1581        AnimationMode   = ONCE_BACKWARDS
1582        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
1583        Flags           = START_FRAME_LAST
1584      End
1585      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
1586        Model           = UBCmdHQ_A6SN
1587        Animation       = UBCmdHQ_A6SN.UBCmdHQ_A6SN
1588        AnimationMode   = ONCE_BACKWARDS
1589        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
1590        Flags           = START_FRAME_LAST
1591      End
1592    End
1593  
1594    ; Officers club flag
1595    Draw = W3DModelDraw ModuleTag_OfficersClub
1596      OkToChangeModelColor = No
1597  
1598      ConditionState       = NONE
1599        Model              = None
1600      End
1601      AliasConditionState  = DAMAGED
1602      AliasConditionState  = REALLYDAMAGED
1603      AliasConditionState  = RUBBLE
1604      AliasConditionState  = REALLYDAMAGED RUBBLE
1605      ConditionState       = PREORDER
1606        Model              = OCFlagGLA
1607        Animation          = OCFlagGLA.OCFlagGLA
1608        AnimationMode      = LOOP
1609        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
1610      End
1611  ;    ConditionState       = PREORDER DAMAGED
1612  ;      Model              = OCFlagGLA_D
1613  ;      Animation          = OCFlagGLA_D.OCFlagGLA_D
1614  ;      AnimationMode      = LOOP
1615  ;      Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
1616  ;    End
1617  ;    ConditionState       = PREORDER REALLYDAMAGED RUBBLE
1618  ;      Model              = OCFlagGLA_E
1619  ;      Animation          = OCFlagGLA_E.OCFlagGLA_E
1620  ;      AnimationMode      = LOOP
1621  ;      Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
1622  ;    End
1623    End
1624  
1625    ; ***DESIGN parameters ***
1626    DisplayName         = OBJECT:CommandCenter
1627    Side                = GLADemolitionGeneral
1628    EditorSorting       = STRUCTURE
1629    Prerequisites
1630      Object = Demo_GLACommandCenter
1631    End
1632    BuildCost           = 500
1633    BuildTime           = 30.0           ; in seconds
1634    EnergyProduction    = 0  ;Command center should be free
1635    CommandSet          = FakeGLACommandCenterCommandSet
1636    VisionRange         = 300.0           ; Shroud clearing distance
1637    ShroudClearingRange = 300
1638    WeaponSet
1639      Conditions          = None 
1640      Weapon = PRIMARY SuicideWeapon
1641      AutoChooseSources = PRIMARY None
1642    End
1643  
1644    ArmorSet
1645      Conditions        = None
1646      Armor             = StructureArmorTough
1647      DamageFX          = StructureDamageFXNoShake
1648    End
1649    ExperienceValue     = 50 50 50 50  ; Experience point value at each level
1650  
1651    ; *** AUDIO Parameters ***
1652    VoiceSelect         = CommandCenterGLASelect
1653    SoundOnDamaged        = BuildingDamagedStateLight
1654    SoundOnReallyDamaged  = BuildingDestroy
1655  
1656    UnitSpecificSounds
1657      UnderConstruction     = UnderConstructionLoop
1658    End
1659  
1660  
1661    ; *** ENGINEERING Parameters ***
1662    RadarPriority       = STRUCTURE
1663    KindOf          = PRELOAD STRUCTURE SELECTABLE IMMOBILE CAPTURABLE MP_COUNT_FOR_VICTORY SCORE_CREATE CAN_ATTACK FS_FAKE
1664    Body                = StructureBody ModuleTag_04
1665      MaxHealth         = 1250.0
1666      InitialHealth     = 1250.0
1667  
1668      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
1669      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
1670      SubdualDamageCap = 1450
1671      SubdualDamageHealRate = 500
1672      SubdualDamageHealAmount = 100
1673    End
1674  
1675    Behavior = PreorderCreate ModuleTag_PreorderCreate
1676    End
1677  
1678    Behavior = ProductionUpdate ModuleTag_05
1679      ; nothing
1680    End
1681    Behavior = AIUpdateInterface ModuleTag_06
1682      AutoAcquireEnemiesWhenIdle = No
1683    End
1684  
1685    Behavior             = CreateObjectDie ModuleTag_09
1686      CreationList  = OCL_LargeStructureDebris
1687    End
1688    Behavior             = FXListDie ModuleTag_10
1689      DeathFX       = FX_StructureMediumDeath
1690    End
1691  
1692    Behavior = SlowDeathBehavior ModuleTag_11
1693      ExemptStatus = UNDER_CONSTRUCTION
1694      DestructionDelay = 0
1695      Weapon = FINAL FakeStructureDetonationWeapon
1696    End
1697    Behavior = DestroyDie ModuleTag_SlowDeathException
1698      RequiredStatus = UNDER_CONSTRUCTION
1699    End
1700  
1701    Behavior = ReplaceObjectUpgrade ModuleTag_12
1702      ReplaceObject = Demo_GLACommandCenter
1703      TriggeredBy = Upgrade_BecomeRealGLACommandCenter
1704    End
1705  
1706    Behavior        = ModelConditionUpgrade ModuleTag_Armor01Visual
1707      ConditionFlag = GARRISONED
1708      TriggeredBy   = Upgrade_GLAFortifiedStructure
1709    End
1710  
1711    Behavior = FlammableUpdate ModuleTag_13
1712      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
1713      AflameDamageAmount = 5       ; taking this much damage...
1714      AflameDamageDelay = 500       ; this often.
1715    End
1716  
1717    Behavior = TransitionDamageFX ModuleTag_14
1718      ;-------------DESIGNED FOR MEDIUM SIZED FACTION BUILDING TRANSITIONS-------------------
1719      DamagedParticleSystem1       = Bone:None RandomBone:No PSys:StructureTransitionMediumSmoke
1720      ;---------------------------------------------------------------------------------------
1721      ReallyDamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionMediumSmoke
1722      ReallyDamagedParticleSystem2 = Bone:None RandomBone:No PSys:StructureTransitionMediumExplosion
1723      ReallyDamagedParticleSystem3 = Bone:None RandomBone:No PSys:StructureTransitionMediumShockwave
1724    End
1725  
1726    Geometry            = BOX
1727    GeometryMajorRadius = 65.0
1728    GeometryMinorRadius = 65.0
1729    GeometryHeight      = 54.0
1730    FactoryExitWidth    = 25 
1731    GeometryIsSmall     = No
1732    Shadow              = SHADOW_VOLUME
1733    ShadowTexture = fake_supply; this is not really a shadow, it's used for decal to indicate fake structure.
1734    ShadowSizeX = 165
1735    ShadowSizeY = 145
1736    BuildCompletion     = PLACED_BY_PLAYER
1737  
1738  End
1739  
1740  
1741  
1742  
1743  
1744  ;------------------------------------------------------------------------------
1745  Object Demo_GLABlackMarket
1746  
1747    ; *** ART Parameters ***
1748    SelectPortrait         = SUBlackMarket_L
1749    ButtonImage            = SUBlackMarket
1750  
1751  ;  UpgradeCameo1 = Upgrade_GLAFortifiedStructure
1752  
1753    Draw                = W3DModelDraw ModuleTag_01
1754      OkToChangeModelColor = Yes
1755  
1756      ; day
1757      ConditionState    = NONE
1758        Model           = UBBlackMkt
1759        Animation       = UBBlackMkt.UBBlackMkt
1760        AnimationMode   = LOOP
1761        ParticleSysBone = Smoke01 SmolderingSmoke      
1762      End
1763      ConditionState    = DAMAGED
1764        Model           = UBBlackMkt_D
1765        Animation       = UBBlackMkt_D.UBBlackMkt_D
1766        AnimationMode   = LOOP
1767        ParticleSysBone = Smoke01 SmolderingSmoke
1768        ParticleSysBone = Smoke02 SmolderingSmoke
1769        ParticleSysBone = Smoke03 SmolderingSmoke
1770        ParticleSysBone = Smoke04 SmolderingSmoke
1771        ParticleSysBone = Smoke05 SmolderingSmoke
1772        ParticleSysBone = Smoke06 SmolderingSmoke
1773        ParticleSysBone = Fire02 SmolderingFire
1774        ParticleSysBone = Fire03 SmolderingFire
1775        ParticleSysBone = Fire04 SmolderingFire
1776        ParticleSysBone = Fire05 SmolderingFire
1777        ParticleSysBone = Fire06 SmolderingFire
1778      End
1779      ConditionState    = REALLYDAMAGED RUBBLE
1780        Model           = UBBlackMkt_E
1781        Animation       = UBBlackMkt_E.UBBlackMkt_E
1782        AnimationMode   = LOOP
1783        ParticleSysBone = Smoke01 SmolderingSmoke
1784        ParticleSysBone = Smoke02 SmolderingSmoke
1785        ParticleSysBone = Smoke03 SmolderingSmoke
1786        ParticleSysBone = Smoke04 SmolderingSmoke
1787        ParticleSysBone = Smoke05 SmolderingSmoke
1788        ParticleSysBone = Smoke06 SmolderingSmoke
1789        ParticleSysBone = Smoke07 SmolderingSmoke
1790        ParticleSysBone = Fire02 SmolderingFire
1791        ParticleSysBone = Fire03 SmolderingFire
1792        ParticleSysBone = Fire04 SmolderingFire
1793        ParticleSysBone = Fire05 SmolderingFire
1794        ParticleSysBone = Fire06 SmolderingFire
1795        ParticleSysBone = Fire07 SmolderingFire
1796      End
1797      ConditionState         = GARRISONED
1798        Model                = UBBlkMktEG
1799        ParticleSysBone      = Smoke01 SmolderingSmoke
1800        Animation            = UBBlkMktEG.UBBlkMktEG
1801        AnimationMode        = LOOP
1802      End
1803      ConditionState         = DAMAGED GARRISONED
1804        Model                = UBBlkMktEG_D
1805        ParticleSysBone      = Smoke01 SmolderingSmoke
1806        Animation            = UBBlkMktEG_D.UBBlkMktEG_D
1807        AnimationMode        = LOOP
1808      End
1809      ConditionState         = REALLYDAMAGED GARRISONED
1810        Model                = UBBlkMktEG_E
1811        ParticleSysBone      = Smoke01 SmolderingSmoke
1812        Animation            = UBBlkMktEG_E.UBBlkMktEG_E
1813        AnimationMode        = LOOP
1814      End
1815  
1816      ; day snow
1817      ConditionState    = SNOW
1818        Model           = UBBlackMkt_S
1819        Animation       = UBBlackMkt_S.UBBlackMkt_S
1820        AnimationMode   = LOOP
1821        ParticleSysBone = Smoke01 SmolderingSmoke      
1822      End
1823      ConditionState    = DAMAGED SNOW
1824        Model           = UBBlackMkt_DS
1825        Animation       = UBBlackMkt_DS.UBBlackMkt_DS
1826        AnimationMode   = LOOP
1827        ParticleSysBone = Smoke01 SmolderingSmoke
1828        ParticleSysBone = Smoke02 SmolderingSmoke
1829        ParticleSysBone = Smoke03 SmolderingSmoke
1830        ParticleSysBone = Smoke04 SmolderingSmoke
1831        ParticleSysBone = Smoke05 SmolderingSmoke
1832        ParticleSysBone = Smoke06 SmolderingSmoke
1833        ParticleSysBone = Fire02 SmolderingFire
1834        ParticleSysBone = Fire03 SmolderingFire
1835        ParticleSysBone = Fire04 SmolderingFire
1836        ParticleSysBone = Fire05 SmolderingFire
1837        ParticleSysBone = Fire06 SmolderingFire
1838      End
1839      ConditionState    = REALLYDAMAGED RUBBLE SNOW
1840        Model           = UBBlackMkt_ES
1841        Animation       = UBBlackMkt_ES.UBBlackMkt_ES
1842        AnimationMode   = LOOP
1843        ParticleSysBone = Smoke01 SmolderingSmoke
1844        ParticleSysBone = Smoke02 SmolderingSmoke
1845        ParticleSysBone = Smoke03 SmolderingSmoke
1846        ParticleSysBone = Smoke04 SmolderingSmoke
1847        ParticleSysBone = Smoke05 SmolderingSmoke
1848        ParticleSysBone = Smoke06 SmolderingSmoke
1849        ParticleSysBone = Smoke07 SmolderingSmoke
1850        ParticleSysBone = Fire02 SmolderingFire
1851        ParticleSysBone = Fire03 SmolderingFire
1852        ParticleSysBone = Fire04 SmolderingFire
1853        ParticleSysBone = Fire05 SmolderingFire
1854        ParticleSysBone = Fire06 SmolderingFire
1855        ParticleSysBone = Fire07 SmolderingFire
1856      End
1857      ConditionState         = GARRISONED SNOW
1858        Model                = UBBlkMktEG_S
1859        ParticleSysBone      = Smoke01 SmolderingSmoke
1860        Animation            = UBBlkMktEG_S.UBBlkMktEG_S
1861        AnimationMode        = LOOP
1862      End
1863      ConditionState         = DAMAGED GARRISONED SNOW
1864        Model                = UBBlkMktEG_DS
1865        ParticleSysBone      = Smoke01 SmolderingSmoke
1866        Animation            = UBBlkMktEG_DS.UBBlkMktEG_DS
1867        AnimationMode        = LOOP
1868      End
1869      ConditionState         = REALLYDAMAGED GARRISONED SNOW
1870        Model                = UBBlkMktEG_ES
1871        ParticleSysBone      = Smoke01 SmolderingSmoke
1872        Animation            = UBBlkMktEG_ES.UBBlkMktEG_ES
1873        AnimationMode        = LOOP
1874      End
1875  
1876      ; night
1877      ConditionState    = NIGHT 
1878        Model           = UBBlackMkt_N
1879        Animation       = UBBlackMkt_N.UBBlackMkt_N
1880        AnimationMode   = LOOP
1881        ParticleSysBone = Smoke01 SmolderingSmoke      
1882      End
1883      ConditionState    = DAMAGED NIGHT
1884        Model           = UBBlackMkt_DN
1885        Animation       = UBBlackMkt_DN.UBBlackMkt_DN
1886        AnimationMode   = LOOP
1887        ParticleSysBone = Smoke01 SmolderingSmoke
1888        ParticleSysBone = Smoke02 SmolderingSmoke
1889        ParticleSysBone = Smoke03 SmolderingSmoke
1890        ParticleSysBone = Smoke04 SmolderingSmoke
1891        ParticleSysBone = Smoke05 SmolderingSmoke
1892        ParticleSysBone = Smoke06 SmolderingSmoke
1893        ParticleSysBone = Fire02 SmolderingFire
1894        ParticleSysBone = Fire03 SmolderingFire
1895        ParticleSysBone = Fire04 SmolderingFire
1896        ParticleSysBone = Fire05 SmolderingFire
1897        ParticleSysBone = Fire06 SmolderingFire
1898      End
1899      ConditionState    = REALLYDAMAGED RUBBLE NIGHT
1900        Model           = UBBlackMkt_EN
1901        Animation       = UBBlackMkt_EN.UBBlackMkt_EN
1902        AnimationMode   = LOOP
1903        ParticleSysBone = Smoke01 SmolderingSmoke
1904        ParticleSysBone = Smoke02 SmolderingSmoke
1905        ParticleSysBone = Smoke03 SmolderingSmoke
1906        ParticleSysBone = Smoke04 SmolderingSmoke
1907        ParticleSysBone = Smoke05 SmolderingSmoke
1908        ParticleSysBone = Smoke06 SmolderingSmoke
1909        ParticleSysBone = Smoke07 SmolderingSmoke
1910        ParticleSysBone = Fire02 SmolderingFire
1911        ParticleSysBone = Fire03 SmolderingFire
1912        ParticleSysBone = Fire04 SmolderingFire
1913        ParticleSysBone = Fire05 SmolderingFire
1914        ParticleSysBone = Fire06 SmolderingFire
1915        ParticleSysBone = Fire07 SmolderingFire
1916      End
1917      ConditionState         = GARRISONED NIGHT
1918        Model                = UBBlkMktEG_N
1919        ParticleSysBone      = Smoke01 SmolderingSmoke
1920        Animation            = UBBlkMktEG_N.UBBlkMktEG_N
1921        AnimationMode        = LOOP
1922      End
1923      ConditionState         = DAMAGED GARRISONED NIGHT
1924        Model                = UBBlkMktEG_DN
1925        ParticleSysBone      = Smoke01 SmolderingSmoke
1926        Animation            = UBBlkMktEG_DN.UBBlkMktEG_DN
1927        AnimationMode        = LOOP
1928      End
1929      ConditionState         = REALLYDAMAGED GARRISONED NIGHT
1930        Model                = UBBlkMktEG_EN
1931        ParticleSysBone      = Smoke01 SmolderingSmoke
1932        Animation            = UBBlkMktEG_EN.UBBlkMktEG_EN
1933        AnimationMode        = LOOP
1934      End
1935  
1936      ; night snow
1937      ConditionState    = NIGHT SNOW
1938        Model           = UBBlackMkt_NS
1939        Animation       = UBBlackMkt_NS.UBBlackMkt_NS
1940        AnimationMode   = LOOP
1941        ParticleSysBone = Smoke01 SmolderingSmoke      
1942      End
1943      ConditionState    = DAMAGED NIGHT SNOW
1944        Model           = UBBlackMkt_DNS
1945        Animation       = UBBlackMkt_DNS.UBBlackMkt_DNS
1946        AnimationMode   = LOOP
1947        ParticleSysBone = Smoke01 SmolderingSmoke
1948        ParticleSysBone = Smoke02 SmolderingSmoke
1949        ParticleSysBone = Smoke03 SmolderingSmoke
1950        ParticleSysBone = Smoke04 SmolderingSmoke
1951        ParticleSysBone = Smoke05 SmolderingSmoke
1952        ParticleSysBone = Smoke06 SmolderingSmoke
1953        ParticleSysBone = Fire02 SmolderingFire
1954        ParticleSysBone = Fire03 SmolderingFire
1955        ParticleSysBone = Fire04 SmolderingFire
1956        ParticleSysBone = Fire05 SmolderingFire
1957        ParticleSysBone = Fire06 SmolderingFire
1958      End
1959      ConditionState    = REALLYDAMAGED RUBBLE NIGHT SNOW
1960        Model           = UBBlackMkt_ENS
1961        Animation       = UBBlackMkt_ENS.UBBlackMkt_ENS
1962        AnimationMode   = LOOP
1963        ParticleSysBone = Smoke01 SmolderingSmoke
1964        ParticleSysBone = Smoke02 SmolderingSmoke
1965        ParticleSysBone = Smoke03 SmolderingSmoke
1966        ParticleSysBone = Smoke04 SmolderingSmoke
1967        ParticleSysBone = Smoke05 SmolderingSmoke
1968        ParticleSysBone = Smoke06 SmolderingSmoke
1969        ParticleSysBone = Smoke07 SmolderingSmoke
1970        ParticleSysBone = Fire02 SmolderingFire
1971        ParticleSysBone = Fire03 SmolderingFire
1972        ParticleSysBone = Fire04 SmolderingFire
1973        ParticleSysBone = Fire05 SmolderingFire
1974        ParticleSysBone = Fire06 SmolderingFire
1975        ParticleSysBone = Fire07 SmolderingFire
1976      End
1977      ConditionState         = GARRISONED NIGHT SNOW
1978        Model                = UBBlkMktEG_NS
1979        ParticleSysBone      = Smoke01 SmolderingSmoke
1980        Animation            = UBBlkMktEG_NS.UBBlkMktEG_NS
1981        AnimationMode        = LOOP
1982      End
1983      ConditionState         = DAMAGED GARRISONED NIGHT SNOW
1984        Model                = UBBlkMktEG_DNS
1985        ParticleSysBone      = Smoke01 SmolderingSmoke
1986        Animation            = UBBlkMktEG_DNS.UBBlkMktEG_DNS
1987        AnimationMode        = LOOP
1988      End
1989      ConditionState         = REALLYDAMAGED GARRISONED NIGHT SNOW
1990        Model                = UBBlkMktEG_ENS
1991        ParticleSysBone      = Smoke01 SmolderingSmoke
1992        Animation            = UBBlkMktEG_ENS.UBBlkMktEG_ENS
1993        AnimationMode        = LOOP
1994      End
1995  
1996      ;**************************************************************************************************************************
1997      ;This block handles every possible case with construction process, selling process, awaiting construction, and sold states
1998      ;for this draw module
1999      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
2000        Model              = UBBlackMkt
2001        Animation          = UBBlackMkt.UBBlackMkt
2002        AnimationMode      = LOOP
2003        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2004      End
2005      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
2006        Model              = UBBlackMkt_D
2007        Animation          = UBBlackMkt_D.UBBlackMkt_D
2008        AnimationMode      = LOOP
2009        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2010      End
2011      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED
2012        Model              = UBBlackMkt_E
2013        Animation          = UBBlackMkt_E.UBBlackMkt_E
2014        AnimationMode      = LOOP
2015        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2016      End
2017      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT
2018        Model              = UBBlackMkt_N
2019        Animation          = UBBlackMkt_N.UBBlackMkt_N
2020        AnimationMode      = LOOP
2021        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2022      End
2023      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT DAMAGED
2024        Model              = UBBlackMkt_DN
2025        Animation          = UBBlackMkt_DN.UBBlackMkt_DN
2026        AnimationMode      = LOOP
2027        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2028      End
2029      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT REALLYDAMAGED
2030        Model              = UBBlackMkt_EN
2031        Animation          = UBBlackMkt_EN.UBBlackMkt_EN
2032        AnimationMode      = LOOP
2033        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2034      End
2035      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW
2036        Model              = UBBlackMkt_S
2037        Animation          = UBBlackMkt_S.UBBlackMkt_S
2038        AnimationMode      = LOOP
2039        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2040      End
2041      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW DAMAGED
2042        Model              = UBBlackMkt_DS
2043        Animation          = UBBlackMkt_DS.UBBlackMkt_DS
2044        AnimationMode      = LOOP
2045        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2046      End
2047      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW REALLYDAMAGED
2048        Model              = UBBlackMkt_ES
2049        Animation          = UBBlackMkt_ES.UBBlackMkt_ES
2050        AnimationMode      = LOOP
2051        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2052      End
2053      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW
2054        Model              = UBBlackMkt_NS
2055        Animation          = UBBlackMkt_NS.UBBlackMkt_NS
2056        AnimationMode      = LOOP
2057        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2058      End
2059      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW DAMAGED
2060        Model              = UBBlackMkt_DNS
2061        Animation          = UBBlackMkt_DNS.UBBlackMkt_DNS
2062        AnimationMode      = LOOP
2063        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2064      End
2065      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW REALLYDAMAGED
2066        Model              = UBBlackMkt_ENS
2067        Animation          = UBBlackMkt_ENS.UBBlackMkt_ENS
2068        AnimationMode      = LOOP
2069        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2070      End
2071  
2072      ConditionState       = AWAITING_CONSTRUCTION 
2073        Model              = NONE
2074      End
2075      AliasConditionState  = AWAITING_CONSTRUCTION DAMAGED
2076      AliasConditionState  = AWAITING_CONSTRUCTION REALLYDAMAGED
2077      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT
2078      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT DAMAGED
2079      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT REALLYDAMAGED
2080      AliasConditionState  = AWAITING_CONSTRUCTION SNOW
2081      AliasConditionState  = AWAITING_CONSTRUCTION SNOW DAMAGED
2082      AliasConditionState  = AWAITING_CONSTRUCTION SNOW REALLYDAMAGED
2083      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW
2084      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW DAMAGED
2085      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW REALLYDAMAGED
2086      AliasConditionState  = SOLD 
2087      AliasConditionState  = SOLD DAMAGED
2088      AliasConditionState  = SOLD REALLYDAMAGED
2089      AliasConditionState  = SOLD NIGHT
2090      AliasConditionState  = SOLD NIGHT DAMAGED
2091      AliasConditionState  = SOLD NIGHT REALLYDAMAGED
2092      AliasConditionState  = SOLD SNOW
2093      AliasConditionState  = SOLD SNOW DAMAGED
2094      AliasConditionState  = SOLD SNOW REALLYDAMAGED
2095      AliasConditionState  = SOLD NIGHT SNOW
2096      AliasConditionState  = SOLD NIGHT SNOW DAMAGED
2097      AliasConditionState  = SOLD NIGHT SNOW REALLYDAMAGED
2098      AliasConditionState  = GARRISONED SOLD 
2099      AliasConditionState  = GARRISONED SOLD DAMAGED
2100      AliasConditionState  = GARRISONED SOLD REALLYDAMAGED
2101      AliasConditionState  = GARRISONED SOLD NIGHT
2102      AliasConditionState  = GARRISONED SOLD NIGHT DAMAGED
2103      AliasConditionState  = GARRISONED SOLD NIGHT REALLYDAMAGED
2104      AliasConditionState  = GARRISONED SOLD SNOW
2105      AliasConditionState  = GARRISONED SOLD SNOW DAMAGED
2106      AliasConditionState  = GARRISONED SOLD SNOW REALLYDAMAGED
2107      AliasConditionState  = GARRISONED SOLD NIGHT SNOW
2108      AliasConditionState  = GARRISONED SOLD NIGHT SNOW DAMAGED
2109      AliasConditionState  = GARRISONED SOLD NIGHT SNOW REALLYDAMAGED
2110      ;**************************************************************************************************************************
2111      
2112    End  
2113  
2114    ; ------------ construction-zone fence -----------------
2115    Draw = W3DModelDraw ModuleTag_02
2116    AnimationsRequirePower = No
2117      DefaultConditionState
2118        Model           = None
2119        TransitionKey   = DOWN_DEFAULT
2120  
2121      End
2122      ConditionState    = NIGHT
2123        Model           = None
2124        TransitionKey   = DOWN_DEFAULT
2125      End
2126      ConditionState    = SNOW
2127        Model           = None
2128        TransitionKey   = DOWN_DEFAULT
2129      End   
2130      ConditionState    = SNOW NIGHT
2131        Model           = None
2132        TransitionKey   = DOWN_DEFAULT
2133      End
2134      ConditionState    = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
2135        Model           = UBBlackMkt_A4
2136        Animation       = UBBlackMkt_A4.UBBlackMkt_A4
2137        AnimationMode   = MANUAL
2138        Flags           = START_FRAME_LAST
2139        TransitionKey   = UP_DAY
2140      End
2141      ConditionState    = NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
2142        Model           = UBBlackMkt_A4N
2143        Animation       = UBBlackMkt_A4N.UBBlackMkt_A4N
2144        AnimationMode   = MANUAL
2145        Flags           = START_FRAME_LAST
2146        TransitionKey   = UP_NIGHT
2147      End
2148      ConditionState    = SNOW AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
2149        Model           = UBBlackMkt_A4S
2150        Animation       = UBBlackMkt_A4S.UBBlackMkt_A4S
2151        AnimationMode   = MANUAL
2152        Flags           = START_FRAME_LAST
2153        TransitionKey   = UP_SNOW
2154      End   
2155      ConditionState    = SNOW NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
2156        Model           = UBBlackMkt_A4SN
2157        Animation       = UBBlackMkt_A4SN.UBBlackMkt_A4SN
2158        AnimationMode   = MANUAL
2159        Flags           = START_FRAME_LAST
2160        TransitionKey   = UP_SNOWNIGHT
2161      End 
2162      TransitionState   = DOWN_DEFAULT UP_DAY
2163        Model           = UBBlackMkt_A4
2164        Animation       = UBBlackMkt_A4.UBBlackMkt_A4
2165        AnimationMode   = ONCE
2166        AnimationSpeedFactorRange = 1.0 1.0
2167        Flags           = START_FRAME_FIRST
2168      End
2169      TransitionState   = DOWN_DEFAULT UP_NIGHT
2170        Model           = UBBlackMkt_A4N
2171        Animation       = UBBlackMkt_A4N.UBBlackMkt_A4N
2172        AnimationMode   = ONCE
2173        AnimationSpeedFactorRange = 1.0 1.0
2174        Flags           = START_FRAME_FIRST
2175      End
2176      TransitionState   = DOWN_DEFAULT UP_SNOW
2177        Model           = UBBlackMkt_A4S
2178        Animation       = UBBlackMkt_A4S.UBBlackMkt_A4S
2179        AnimationMode   = ONCE
2180        AnimationSpeedFactorRange = 1.0 1.0
2181        Flags           = START_FRAME_FIRST
2182      End
2183      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
2184        Model           = UBBlackMkt_A4SN
2185        Animation       = UBBlackMkt_A4SN.UBBlackMkt_A4SN
2186        AnimationMode   = ONCE
2187        AnimationSpeedFactorRange = 1.0 1.0
2188        Flags           = START_FRAME_FIRST
2189      End
2190      TransitionState   = UP_DAY DOWN_DEFAULT
2191        Model           = UBBlackMkt_A4
2192        Animation       = UBBlackMkt_A4.UBBlackMkt_A4
2193        AnimationMode   = ONCE_BACKWARDS
2194        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
2195        Flags           = START_FRAME_LAST
2196      End
2197      TransitionState   = UP_NIGHT DOWN_DEFAULT
2198        Model           = UBBlackMkt_A4N
2199        Animation       = UBBlackMkt_A4N.UBBlackMkt_A4N
2200        AnimationMode   = ONCE_BACKWARDS
2201        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
2202        Flags           = START_FRAME_LAST
2203      End
2204      TransitionState   = UP_SNOW DOWN_DEFAULT
2205        Model           = UBBlackMkt_A4S
2206        Animation       = UBBlackMkt_A4S.UBBlackMkt_A4S
2207        AnimationMode   = ONCE_BACKWARDS
2208        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
2209        Flags           = START_FRAME_LAST
2210      End
2211      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
2212        Model           = UBBlackMkt_A4SN
2213        Animation       = UBBlackMkt_A4SN.UBBlackMkt_A4SN
2214        AnimationMode   = ONCE_BACKWARDS
2215        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
2216        Flags           = START_FRAME_LAST
2217      End
2218    End
2219  
2220    ; ------------ under-construction scaffolding -----------------
2221    Draw = W3DModelDraw ModuleTag_03
2222    AnimationsRequirePower = No
2223      MinLODRequired = MEDIUM
2224      DefaultConditionState
2225        Model           = None
2226        TransitionKey   = DOWN_DEFAULT
2227      End
2228      ConditionState    = NIGHT
2229        Model           = None
2230        TransitionKey   = DOWN_DEFAULT
2231      End
2232      ConditionState    = SNOW
2233        Model           = None
2234        TransitionKey   = DOWN_DEFAULT
2235      End 
2236      ConditionState    = SNOW NIGHT
2237        Model           = None
2238        TransitionKey   = DOWN_DEFAULT
2239      End 
2240      ConditionState    = PARTIALLY_CONSTRUCTED
2241        Model           = UBBlackMkt_A6
2242        Animation       = UBBlackMkt_A6.UBBlackMkt_A6
2243        AnimationMode   = MANUAL
2244        Flags           = START_FRAME_LAST
2245        TransitionKey   = UP_DAY
2246        ParticleSysBone = Dust01 BuildingDust
2247        ParticleSysBone = Smoke01 BuildUpSmoke
2248        ParticleSysBone = Smoke02 BuildUpSmoke
2249        ParticleSysBone = Smoke03 BuildUpSmoke
2250        ParticleSysBone = Smoke04 BuildUpSmoke
2251      End
2252      ConditionState    = NIGHT PARTIALLY_CONSTRUCTED
2253        Model           = UBBlackMkt_A6N
2254        Animation       = UBBlackMkt_A6N.UBBlackMkt_A6N
2255        AnimationMode   = MANUAL
2256        Flags           = START_FRAME_LAST
2257        TransitionKey   = UP_NIGHT
2258        ParticleSysBone = Dust01 BuildingDust
2259        ParticleSysBone = Smoke01 BuildUpSmoke
2260        ParticleSysBone = Smoke02 BuildUpSmoke
2261        ParticleSysBone = Smoke03 BuildUpSmoke
2262        ParticleSysBone = Smoke04 BuildUpSmoke
2263      End
2264      ConditionState    = SNOW PARTIALLY_CONSTRUCTED
2265        Model           = UBBlackMkt_A6S
2266        Animation       = UBBlackMkt_A6S.UBBlackMkt_A6S
2267        AnimationMode   = MANUAL
2268        Flags           = START_FRAME_LAST
2269        TransitionKey   = UP_SNOW
2270        ParticleSysBone = Dust01 BuildingSnowDust
2271        ParticleSysBone = Smoke01 BuildUpSnowSmoke
2272        ParticleSysBone = Smoke02 BuildUpSnowSmoke
2273        ParticleSysBone = Smoke03 BuildUpSnowSmoke
2274        ParticleSysBone = Smoke04 BuildUpSnowSmoke
2275      End
2276      ConditionState    = SNOW NIGHT PARTIALLY_CONSTRUCTED
2277        Model           = UBBlackMkt_A6SN
2278        Animation       = UBBlackMkt_A6SN.UBBlackMkt_A6SN
2279        AnimationMode   = MANUAL
2280        Flags           = START_FRAME_LAST
2281        TransitionKey   = UP_SNOWNIGHT
2282        ParticleSysBone = Dust01 BuildingNightSnowDust
2283        ParticleSysBone = Smoke01 BuildUpNightSnowSmoke
2284        ParticleSysBone = Smoke02 BuildUpNightSnowSmoke
2285        ParticleSysBone = Smoke03 BuildUpNightSnowSmoke
2286        ParticleSysBone = Smoke04 BuildUpNightSnowSmoke
2287      End
2288      TransitionState   = DOWN_DEFAULT UP_DAY
2289       Model            = UBBlackMkt_A6
2290        Animation       = UBBlackMkt_A6.UBBlackMkt_A6
2291        AnimationMode   = ONCE
2292        AnimationSpeedFactorRange = 1.0 1.0
2293        Flags           = START_FRAME_FIRST
2294      End
2295      TransitionState   = DOWN_DEFAULT UP_NIGHT
2296       Model            = UBBlackMkt_A6N
2297        Animation       = UBBlackMkt_A6N.UBBlackMkt_A6N
2298        AnimationMode   = ONCE
2299        AnimationSpeedFactorRange = 1.0 1.0
2300        Flags           = START_FRAME_FIRST
2301      End
2302      TransitionState   = DOWN_DEFAULT UP_SNOW
2303       Model            = UBBlackMkt_A6S
2304        Animation       = UBBlackMkt_A6S.UBBlackMkt_A6S
2305        AnimationMode   = ONCE
2306        AnimationSpeedFactorRange = 1.0 1.0
2307        Flags           = START_FRAME_FIRST
2308      End
2309      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
2310       Model            = UBBlackMkt_A6SN
2311        Animation       = UBBlackMkt_A6SN.UBBlackMkt_A6SN
2312        AnimationMode   = ONCE
2313        AnimationSpeedFactorRange = 1.0 1.0
2314        Flags           = START_FRAME_FIRST
2315      End
2316      TransitionState   = UP_DAY DOWN_DEFAULT
2317        Model           = UBBlackMkt_A6
2318        Animation       = UBBlackMkt_A6.UBBlackMkt_A6
2319        AnimationMode   = ONCE_BACKWARDS
2320        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
2321        Flags           = START_FRAME_LAST
2322      End
2323      TransitionState   = UP_NIGHT DOWN_DEFAULT
2324        Model           = UBBlackMkt_A6N
2325        Animation       = UBBlackMkt_A6N.UBBlackMkt_A6N
2326        AnimationMode   = ONCE_BACKWARDS
2327        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
2328        Flags           = START_FRAME_LAST
2329      End
2330      TransitionState   = UP_SNOW DOWN_DEFAULT
2331        Model           = UBBlackMkt_A6S
2332        Animation       = UBBlackMkt_A6S.UBBlackMkt_A6S
2333        AnimationMode   = ONCE_BACKWARDS
2334        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
2335        Flags           = START_FRAME_LAST
2336      End
2337      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
2338        Model           = UBBlackMkt_A6SN
2339        Animation       = UBBlackMkt_A6SN.UBBlackMkt_A6SN
2340        AnimationMode   = ONCE_BACKWARDS
2341        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
2342        Flags           = START_FRAME_LAST
2343      End
2344    End
2345    PlacementViewAngle  = -45
2346  
2347    ; ***DESIGN parameters ***
2348    DisplayName         = OBJECT:BlackMarket
2349    Side                = GLADemolitionGeneral
2350    EditorSorting       = STRUCTURE
2351    Prerequisites
2352      Object = Demo_GLAPalace
2353    End
2354    BuildCost           = 2500
2355    BuildTime           = 30.0           ; in seconds
2356    EnergyProduction    = 0
2357    CommandSet          = Demo_GLABlackMarketCommandSet
2358    VisionRange         = 200.0           ; Shroud clearing distance
2359    ShroudClearingRange = 200
2360    ArmorSet
2361      Conditions        = None
2362      Armor             = StructureArmor
2363      DamageFX          = StructureDamageFXNoShake
2364    End
2365    ArmorSet
2366      Conditions        = PLAYER_UPGRADE
2367      Armor             = GLAUpgradedStructureArmor
2368      DamageFX          = StructureDamageFXNoShake
2369    End
2370    ExperienceValue     = 200 200 200 200  ; Experience point value at each level
2371  
2372    ; *** AUDIO Parameters ***
2373    VoiceSelect         = BlackMarketSelect
2374    SoundOnDamaged        = BuildingDamagedStateLight
2375    SoundOnReallyDamaged  = BuildingDestroy
2376  
2377    UnitSpecificSounds
2378      UnderConstruction     = UnderConstructionLoop
2379    End
2380  
2381    ; *** ENGINEERING Parameters ***
2382    RadarPriority       = STRUCTURE
2383    KindOf              = PRELOAD STRUCTURE SELECTABLE IMMOBILE CAPTURABLE FS_TECHNOLOGY MP_COUNT_FOR_VICTORY SCORE_CREATE FS_BLACK_MARKET
2384    Body                = StructureBody ModuleTag_04
2385      MaxHealth         = 1000.0
2386      InitialHealth     = 1000.0
2387  
2388      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
2389      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
2390      SubdualDamageCap = 1200
2391      SubdualDamageHealRate = 500
2392      SubdualDamageHealAmount = 100
2393    End
2394  
2395    Behavior        = ArmorUpgrade ModuleTag_Armor01
2396      TriggeredBy   = Upgrade_GLAFortifiedStructure
2397    End
2398  
2399    Behavior        = ModelConditionUpgrade ModuleTag_Armor01Visual
2400      ConditionFlag = GARRISONED
2401      TriggeredBy   = Upgrade_GLAFortifiedStructure
2402    End
2403  
2404    Behavior = AutoDepositUpdate ModuleTag_05
2405      DepositTiming       = 2000   ; in milliseconds
2406      DepositAmount       = 20   ; cash amount to deposit every DepositTiming
2407      InitialCaptureBonus = 0  ; no initial bonus
2408    End
2409  
2410    Behavior = ProductionUpdate ModuleTag_06
2411      ; nothing
2412    End
2413  
2414    Behavior                 = DestroyDie ModuleTag_07
2415      ;nothing
2416    End
2417    Behavior                 = RebuildHoleExposeDie ModuleTag_08
2418      HoleName          = GLAHoleBlackMarket
2419      HoleMaxHealth     = 500.0
2420    End 
2421    Behavior                 = CreateObjectDie ModuleTag_09
2422      CreationList      = OCL_ABPowerPlantExplode
2423    End
2424    Behavior                 = FXListDie ModuleTag_10
2425      DeathFX           = FX_StructureSmallDeath
2426    End
2427  
2428    Behavior = FlammableUpdate ModuleTag_12
2429      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
2430      AflameDamageAmount = 5       ; taking this much damage...
2431      AflameDamageDelay = 500       ; this often.
2432    End
2433  
2434    Behavior = TransitionDamageFX ModuleTag_13
2435      ;-------------DESIGNED FOR SMALL SIZED FACTION BUILDING TRANSITIONS-------------------
2436      DamagedParticleSystem1       = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
2437      ;---------------------------------------------------------------------------------------
2438      ReallyDamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
2439      ReallyDamagedParticleSystem2 = Bone:None RandomBone:No PSys:StructureTransitionSmallExplosion
2440      ReallyDamagedParticleSystem3 = Bone:None RandomBone:No PSys:StructureTransitionSmallShockwave
2441    End
2442  
2443    Geometry            = BOX
2444    GeometryMajorRadius = 35.0
2445    GeometryMinorRadius = 35.0
2446    GeometryHeight      = 35.0
2447    GeometryIsSmall     = No
2448    Shadow              = SHADOW_VOLUME
2449    BuildCompletion     = PLACED_BY_PLAYER
2450  
2451  End
2452  
2453  ;------------------------------------------------------------------------------
2454  ObjectReskin Demo_GLAHoleBlackMarket Demo_GLAHole
2455    Draw                     = W3DModelDraw ModuleTag_01
2456      OkToChangeModelColor   = Yes
2457      ConditionState         = NONE
2458        Model                = UBHole
2459      End
2460      ConditionState         = DAMAGED
2461        Model                = UBHole_D
2462        ParticleSysBone      = Smoke01 SteamVent
2463      End
2464      ConditionState         = REALLYDAMAGED RUBBLE
2465        Model                = UBHole_E
2466        ParticleSysBone      = Smoke01 SteamVent
2467        ParticleSysBone      = Smoke02 SteamVent
2468        ParticleSysBone      = Fire01 GLAPowerPlantFlame
2469        ParticleSysBone      = Fire02 GLAPowerPlantFlame
2470        ParticleSysBone      = Fire03 GLAPowerPlantFlame
2471      End
2472    End
2473    Draw                     = W3DModelDraw ModuleTag_02
2474      OkToChangeModelColor   = Yes
2475      ConditionState         = NONE
2476        Model                = UBBlackMkt_R
2477        ParticleSysBone      = Smoke01 SmolderingSmoke
2478        ParticleSysBone      = Smoke03 SmolderingSmoke
2479        ParticleSysBone      = Smoke04 SmolderingSmoke
2480      End
2481      ConditionState         = DAMAGED REALLYDAMAGED RUBBLE
2482        Model                = UBBlackMkt_R
2483        ParticleSysBone      = Smoke01 SmolderingSmoke
2484        ParticleSysBone      = Smoke03 SmolderingSmoke
2485        ParticleSysBone      = Smoke04 SmolderingSmoke
2486      End
2487    End
2488  End
2489  
2490  ;------------------------------------------------------------------------------
2491  Object Demo_FakeGLABlackMarket
2492  
2493    ; *** ART Parameters ***
2494    SelectPortrait         = SUBlackMarket_L
2495    ButtonImage            = SUBlackMarket
2496  
2497  ;  UpgradeCameo1 = Upgrade_GLAFortifiedStructure
2498  
2499    Draw                = W3DModelDraw ModuleTag_01
2500      OkToChangeModelColor = Yes
2501  
2502      ; day
2503      ConditionState    = NONE
2504        Model           = UBBlackMkt
2505        Animation       = UBBlackMkt.UBBlackMkt
2506        AnimationMode   = LOOP
2507        ParticleSysBone = Smoke01 SmolderingSmoke      
2508      End
2509      ConditionState    = DAMAGED
2510        Model           = UBBlackMkt_D
2511        Animation       = UBBlackMkt_D.UBBlackMkt_D
2512        AnimationMode   = LOOP
2513        ParticleSysBone = Smoke01 SmolderingSmoke
2514        ParticleSysBone = Smoke02 SmolderingSmoke
2515        ParticleSysBone = Smoke03 SmolderingSmoke
2516        ParticleSysBone = Smoke04 SmolderingSmoke
2517        ParticleSysBone = Smoke05 SmolderingSmoke
2518        ParticleSysBone = Smoke06 SmolderingSmoke
2519        ParticleSysBone = Fire02 SmolderingFire
2520        ParticleSysBone = Fire03 SmolderingFire
2521        ParticleSysBone = Fire04 SmolderingFire
2522        ParticleSysBone = Fire05 SmolderingFire
2523        ParticleSysBone = Fire06 SmolderingFire
2524      End
2525      ConditionState    = REALLYDAMAGED RUBBLE
2526        Model           = UBBlackMkt_E
2527        Animation       = UBBlackMkt_E.UBBlackMkt_E
2528        AnimationMode   = LOOP
2529        ParticleSysBone = Smoke01 SmolderingSmoke
2530        ParticleSysBone = Smoke02 SmolderingSmoke
2531        ParticleSysBone = Smoke03 SmolderingSmoke
2532        ParticleSysBone = Smoke04 SmolderingSmoke
2533        ParticleSysBone = Smoke05 SmolderingSmoke
2534        ParticleSysBone = Smoke06 SmolderingSmoke
2535        ParticleSysBone = Smoke07 SmolderingSmoke
2536        ParticleSysBone = Fire02 SmolderingFire
2537        ParticleSysBone = Fire03 SmolderingFire
2538        ParticleSysBone = Fire04 SmolderingFire
2539        ParticleSysBone = Fire05 SmolderingFire
2540        ParticleSysBone = Fire06 SmolderingFire
2541        ParticleSysBone = Fire07 SmolderingFire
2542      End
2543      ConditionState         = GARRISONED
2544        Model                = UBBlkMktEG
2545        ParticleSysBone      = Smoke01 SmolderingSmoke
2546        Animation            = UBBlkMktEG.UBBlkMktEG
2547        AnimationMode        = LOOP
2548      End
2549      ConditionState         = DAMAGED GARRISONED
2550        Model                = UBBlkMktEG_D
2551        ParticleSysBone      = Smoke01 SmolderingSmoke
2552        Animation            = UBBlkMktEG_D.UBBlkMktEG_D
2553        AnimationMode        = LOOP
2554      End
2555      ConditionState         = REALLYDAMAGED GARRISONED
2556        Model                = UBBlkMktEG_E
2557        ParticleSysBone      = Smoke01 SmolderingSmoke
2558        Animation            = UBBlkMktEG_E.UBBlkMktEG_E
2559        AnimationMode        = LOOP
2560      End
2561  
2562      ; day snow
2563      ConditionState    = SNOW
2564        Model           = UBBlackMkt_S
2565        Animation       = UBBlackMkt_S.UBBlackMkt_S
2566        AnimationMode   = LOOP
2567        ParticleSysBone = Smoke01 SmolderingSmoke      
2568      End
2569      ConditionState    = DAMAGED SNOW
2570        Model           = UBBlackMkt_DS
2571        Animation       = UBBlackMkt_DS.UBBlackMkt_DS
2572        AnimationMode   = LOOP
2573        ParticleSysBone = Smoke01 SmolderingSmoke
2574        ParticleSysBone = Smoke02 SmolderingSmoke
2575        ParticleSysBone = Smoke03 SmolderingSmoke
2576        ParticleSysBone = Smoke04 SmolderingSmoke
2577        ParticleSysBone = Smoke05 SmolderingSmoke
2578        ParticleSysBone = Smoke06 SmolderingSmoke
2579        ParticleSysBone = Fire02 SmolderingFire
2580        ParticleSysBone = Fire03 SmolderingFire
2581        ParticleSysBone = Fire04 SmolderingFire
2582        ParticleSysBone = Fire05 SmolderingFire
2583        ParticleSysBone = Fire06 SmolderingFire
2584      End
2585      ConditionState    = REALLYDAMAGED RUBBLE SNOW
2586        Model           = UBBlackMkt_ES
2587        Animation       = UBBlackMkt_ES.UBBlackMkt_ES
2588        AnimationMode   = LOOP
2589        ParticleSysBone = Smoke01 SmolderingSmoke
2590        ParticleSysBone = Smoke02 SmolderingSmoke
2591        ParticleSysBone = Smoke03 SmolderingSmoke
2592        ParticleSysBone = Smoke04 SmolderingSmoke
2593        ParticleSysBone = Smoke05 SmolderingSmoke
2594        ParticleSysBone = Smoke06 SmolderingSmoke
2595        ParticleSysBone = Smoke07 SmolderingSmoke
2596        ParticleSysBone = Fire02 SmolderingFire
2597        ParticleSysBone = Fire03 SmolderingFire
2598        ParticleSysBone = Fire04 SmolderingFire
2599        ParticleSysBone = Fire05 SmolderingFire
2600        ParticleSysBone = Fire06 SmolderingFire
2601        ParticleSysBone = Fire07 SmolderingFire
2602      End
2603      ConditionState         = GARRISONED SNOW
2604        Model                = UBBlkMktEG_S
2605        ParticleSysBone      = Smoke01 SmolderingSmoke
2606        Animation            = UBBlkMktEG_S.UBBlkMktEG_S
2607        AnimationMode        = LOOP
2608      End
2609      ConditionState         = DAMAGED GARRISONED SNOW
2610        Model                = UBBlkMktEG_DS
2611        ParticleSysBone      = Smoke01 SmolderingSmoke
2612        Animation            = UBBlkMktEG_DS.UBBlkMktEG_DS
2613        AnimationMode        = LOOP
2614      End
2615      ConditionState         = REALLYDAMAGED GARRISONED SNOW
2616        Model                = UBBlkMktEG_ES
2617        ParticleSysBone      = Smoke01 SmolderingSmoke
2618        Animation            = UBBlkMktEG_ES.UBBlkMktEG_ES
2619        AnimationMode        = LOOP
2620      End
2621  
2622      ; night
2623      ConditionState    = NIGHT 
2624        Model           = UBBlackMkt_N
2625        Animation       = UBBlackMkt_N.UBBlackMkt_N
2626        AnimationMode   = LOOP
2627        ParticleSysBone = Smoke01 SmolderingSmoke      
2628      End
2629      ConditionState    = DAMAGED NIGHT
2630        Model           = UBBlackMkt_DN
2631        Animation       = UBBlackMkt_DN.UBBlackMkt_DN
2632        AnimationMode   = LOOP
2633        ParticleSysBone = Smoke01 SmolderingSmoke
2634        ParticleSysBone = Smoke02 SmolderingSmoke
2635        ParticleSysBone = Smoke03 SmolderingSmoke
2636        ParticleSysBone = Smoke04 SmolderingSmoke
2637        ParticleSysBone = Smoke05 SmolderingSmoke
2638        ParticleSysBone = Smoke06 SmolderingSmoke
2639        ParticleSysBone = Fire02 SmolderingFire
2640        ParticleSysBone = Fire03 SmolderingFire
2641        ParticleSysBone = Fire04 SmolderingFire
2642        ParticleSysBone = Fire05 SmolderingFire
2643        ParticleSysBone = Fire06 SmolderingFire
2644      End
2645      ConditionState    = REALLYDAMAGED RUBBLE NIGHT
2646        Model           = UBBlackMkt_EN
2647        Animation       = UBBlackMkt_EN.UBBlackMkt_EN
2648        AnimationMode   = LOOP
2649        ParticleSysBone = Smoke01 SmolderingSmoke
2650        ParticleSysBone = Smoke02 SmolderingSmoke
2651        ParticleSysBone = Smoke03 SmolderingSmoke
2652        ParticleSysBone = Smoke04 SmolderingSmoke
2653        ParticleSysBone = Smoke05 SmolderingSmoke
2654        ParticleSysBone = Smoke06 SmolderingSmoke
2655        ParticleSysBone = Smoke07 SmolderingSmoke
2656        ParticleSysBone = Fire02 SmolderingFire
2657        ParticleSysBone = Fire03 SmolderingFire
2658        ParticleSysBone = Fire04 SmolderingFire
2659        ParticleSysBone = Fire05 SmolderingFire
2660        ParticleSysBone = Fire06 SmolderingFire
2661        ParticleSysBone = Fire07 SmolderingFire
2662      End
2663      ConditionState         = GARRISONED NIGHT
2664        Model                = UBBlkMktEG_N
2665        ParticleSysBone      = Smoke01 SmolderingSmoke
2666        Animation            = UBBlkMktEG_N.UBBlkMktEG_N
2667        AnimationMode        = LOOP
2668      End
2669      ConditionState         = DAMAGED GARRISONED NIGHT
2670        Model                = UBBlkMktEG_DN
2671        ParticleSysBone      = Smoke01 SmolderingSmoke
2672        Animation            = UBBlkMktEG_DN.UBBlkMktEG_DN
2673        AnimationMode        = LOOP
2674      End
2675      ConditionState         = REALLYDAMAGED GARRISONED NIGHT
2676        Model                = UBBlkMktEG_EN
2677        ParticleSysBone      = Smoke01 SmolderingSmoke
2678        Animation            = UBBlkMktEG_EN.UBBlkMktEG_EN
2679        AnimationMode        = LOOP
2680      End
2681  
2682      ; night snow
2683      ConditionState    = NIGHT SNOW
2684        Model           = UBBlackMkt_NS
2685        Animation       = UBBlackMkt_NS.UBBlackMkt_NS
2686        AnimationMode   = LOOP
2687        ParticleSysBone = Smoke01 SmolderingSmoke      
2688      End
2689      ConditionState    = DAMAGED NIGHT SNOW
2690        Model           = UBBlackMkt_DNS
2691        Animation       = UBBlackMkt_DNS.UBBlackMkt_DNS
2692        AnimationMode   = LOOP
2693        ParticleSysBone = Smoke01 SmolderingSmoke
2694        ParticleSysBone = Smoke02 SmolderingSmoke
2695        ParticleSysBone = Smoke03 SmolderingSmoke
2696        ParticleSysBone = Smoke04 SmolderingSmoke
2697        ParticleSysBone = Smoke05 SmolderingSmoke
2698        ParticleSysBone = Smoke06 SmolderingSmoke
2699        ParticleSysBone = Fire02 SmolderingFire
2700        ParticleSysBone = Fire03 SmolderingFire
2701        ParticleSysBone = Fire04 SmolderingFire
2702        ParticleSysBone = Fire05 SmolderingFire
2703        ParticleSysBone = Fire06 SmolderingFire
2704      End
2705      ConditionState    = REALLYDAMAGED RUBBLE NIGHT SNOW
2706        Model           = UBBlackMkt_ENS
2707        Animation       = UBBlackMkt_ENS.UBBlackMkt_ENS
2708        AnimationMode   = LOOP
2709        ParticleSysBone = Smoke01 SmolderingSmoke
2710        ParticleSysBone = Smoke02 SmolderingSmoke
2711        ParticleSysBone = Smoke03 SmolderingSmoke
2712        ParticleSysBone = Smoke04 SmolderingSmoke
2713        ParticleSysBone = Smoke05 SmolderingSmoke
2714        ParticleSysBone = Smoke06 SmolderingSmoke
2715        ParticleSysBone = Smoke07 SmolderingSmoke
2716        ParticleSysBone = Fire02 SmolderingFire
2717        ParticleSysBone = Fire03 SmolderingFire
2718        ParticleSysBone = Fire04 SmolderingFire
2719        ParticleSysBone = Fire05 SmolderingFire
2720        ParticleSysBone = Fire06 SmolderingFire
2721        ParticleSysBone = Fire07 SmolderingFire
2722      End
2723      ConditionState         = GARRISONED NIGHT SNOW
2724        Model                = UBBlkMktEG_NS
2725        ParticleSysBone      = Smoke01 SmolderingSmoke
2726        Animation            = UBBlkMktEG_NS.UBBlkMktEG_NS
2727        AnimationMode        = LOOP
2728      End
2729      ConditionState         = DAMAGED GARRISONED NIGHT SNOW
2730        Model                = UBBlkMktEG_DNS
2731        ParticleSysBone      = Smoke01 SmolderingSmoke
2732        Animation            = UBBlkMktEG_DNS.UBBlkMktEG_DNS
2733        AnimationMode        = LOOP
2734      End
2735      ConditionState         = REALLYDAMAGED GARRISONED NIGHT SNOW
2736        Model                = UBBlkMktEG_ENS
2737        ParticleSysBone      = Smoke01 SmolderingSmoke
2738        Animation            = UBBlkMktEG_ENS.UBBlkMktEG_ENS
2739        AnimationMode        = LOOP
2740      End
2741  
2742      ;**************************************************************************************************************************
2743      ;This block handles every possible case with construction process, selling process, awaiting construction, and sold states
2744      ;for this draw module
2745      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
2746        Model              = UBBlackMkt
2747        Animation          = UBBlackMkt.UBBlackMkt
2748        AnimationMode      = LOOP
2749        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2750      End
2751      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
2752        Model              = UBBlackMkt_D
2753        Animation          = UBBlackMkt_D.UBBlackMkt_D
2754        AnimationMode      = LOOP
2755        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2756      End
2757      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED
2758        Model              = UBBlackMkt_E
2759        Animation          = UBBlackMkt_E.UBBlackMkt_E
2760        AnimationMode      = LOOP
2761        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2762      End
2763      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT
2764        Model              = UBBlackMkt_N
2765        Animation          = UBBlackMkt_N.UBBlackMkt_N
2766        AnimationMode      = LOOP
2767        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2768      End
2769      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT DAMAGED
2770        Model              = UBBlackMkt_DN
2771        Animation          = UBBlackMkt_DN.UBBlackMkt_DN
2772        AnimationMode      = LOOP
2773        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2774      End
2775      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT REALLYDAMAGED
2776        Model              = UBBlackMkt_EN
2777        Animation          = UBBlackMkt_EN.UBBlackMkt_EN
2778        AnimationMode      = LOOP
2779        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2780      End
2781      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW
2782        Model              = UBBlackMkt_S
2783        Animation          = UBBlackMkt_S.UBBlackMkt_S
2784        AnimationMode      = LOOP
2785        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2786      End
2787      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW DAMAGED
2788        Model              = UBBlackMkt_DS
2789        Animation          = UBBlackMkt_DS.UBBlackMkt_DS
2790        AnimationMode      = LOOP
2791        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2792      End
2793      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW REALLYDAMAGED
2794        Model              = UBBlackMkt_ES
2795        Animation          = UBBlackMkt_ES.UBBlackMkt_ES
2796        AnimationMode      = LOOP
2797        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2798      End
2799      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW
2800        Model              = UBBlackMkt_NS
2801        Animation          = UBBlackMkt_NS.UBBlackMkt_NS
2802        AnimationMode      = LOOP
2803        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2804      End
2805      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW DAMAGED
2806        Model              = UBBlackMkt_DNS
2807        Animation          = UBBlackMkt_DNS.UBBlackMkt_DNS
2808        AnimationMode      = LOOP
2809        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2810      End
2811      ConditionState       =  PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW REALLYDAMAGED
2812        Model              = UBBlackMkt_ENS
2813        Animation          = UBBlackMkt_ENS.UBBlackMkt_ENS
2814        AnimationMode      = LOOP
2815        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
2816      End
2817  
2818      ConditionState       = AWAITING_CONSTRUCTION 
2819        Model              = NONE
2820      End
2821      AliasConditionState  = AWAITING_CONSTRUCTION DAMAGED
2822      AliasConditionState  = AWAITING_CONSTRUCTION REALLYDAMAGED
2823      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT
2824      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT DAMAGED
2825      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT REALLYDAMAGED
2826      AliasConditionState  = AWAITING_CONSTRUCTION SNOW
2827      AliasConditionState  = AWAITING_CONSTRUCTION SNOW DAMAGED
2828      AliasConditionState  = AWAITING_CONSTRUCTION SNOW REALLYDAMAGED
2829      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW
2830      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW DAMAGED
2831      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW REALLYDAMAGED
2832      AliasConditionState  = SOLD 
2833      AliasConditionState  = SOLD DAMAGED
2834      AliasConditionState  = SOLD REALLYDAMAGED
2835      AliasConditionState  = SOLD NIGHT
2836      AliasConditionState  = SOLD NIGHT DAMAGED
2837      AliasConditionState  = SOLD NIGHT REALLYDAMAGED
2838      AliasConditionState  = SOLD SNOW
2839      AliasConditionState  = SOLD SNOW DAMAGED
2840      AliasConditionState  = SOLD SNOW REALLYDAMAGED
2841      AliasConditionState  = SOLD NIGHT SNOW
2842      AliasConditionState  = SOLD NIGHT SNOW DAMAGED
2843      AliasConditionState  = SOLD NIGHT SNOW REALLYDAMAGED
2844      AliasConditionState  = GARRISONED SOLD 
2845      AliasConditionState  = GARRISONED SOLD DAMAGED
2846      AliasConditionState  = GARRISONED SOLD REALLYDAMAGED
2847      AliasConditionState  = GARRISONED SOLD NIGHT
2848      AliasConditionState  = GARRISONED SOLD NIGHT DAMAGED
2849      AliasConditionState  = GARRISONED SOLD NIGHT REALLYDAMAGED
2850      AliasConditionState  = GARRISONED SOLD SNOW
2851      AliasConditionState  = GARRISONED SOLD SNOW DAMAGED
2852      AliasConditionState  = GARRISONED SOLD SNOW REALLYDAMAGED
2853      AliasConditionState  = GARRISONED SOLD NIGHT SNOW
2854      AliasConditionState  = GARRISONED SOLD NIGHT SNOW DAMAGED
2855      AliasConditionState  = GARRISONED SOLD NIGHT SNOW REALLYDAMAGED
2856      ;**************************************************************************************************************************
2857      
2858    End  
2859  
2860    ; ------------ construction-zone fence -----------------
2861    Draw = W3DModelDraw ModuleTag_02
2862    AnimationsRequirePower = No
2863      DefaultConditionState
2864        Model           = None
2865        TransitionKey   = DOWN_DEFAULT
2866  
2867      End
2868      ConditionState    = NIGHT
2869        Model           = None
2870        TransitionKey   = DOWN_DEFAULT
2871      End
2872      ConditionState    = SNOW
2873        Model           = None
2874        TransitionKey   = DOWN_DEFAULT
2875      End   
2876      ConditionState    = SNOW NIGHT
2877        Model           = None
2878        TransitionKey   = DOWN_DEFAULT
2879      End
2880      ConditionState    = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
2881        Model           = UBBlackMkt_A4
2882        Animation       = UBBlackMkt_A4.UBBlackMkt_A4
2883        AnimationMode   = MANUAL
2884        Flags           = START_FRAME_LAST
2885        TransitionKey   = UP_DAY
2886      End
2887      ConditionState    = NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
2888        Model           = UBBlackMkt_A4N
2889        Animation       = UBBlackMkt_A4N.UBBlackMkt_A4N
2890        AnimationMode   = MANUAL
2891        Flags           = START_FRAME_LAST
2892        TransitionKey   = UP_NIGHT
2893      End
2894      ConditionState    = SNOW AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
2895        Model           = UBBlackMkt_A4S
2896        Animation       = UBBlackMkt_A4S.UBBlackMkt_A4S
2897        AnimationMode   = MANUAL
2898        Flags           = START_FRAME_LAST
2899        TransitionKey   = UP_SNOW
2900      End   
2901      ConditionState    = SNOW NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
2902        Model           = UBBlackMkt_A4SN
2903        Animation       = UBBlackMkt_A4SN.UBBlackMkt_A4SN
2904        AnimationMode   = MANUAL
2905        Flags           = START_FRAME_LAST
2906        TransitionKey   = UP_SNOWNIGHT
2907      End 
2908      TransitionState   = DOWN_DEFAULT UP_DAY
2909        Model           = UBBlackMkt_A4
2910        Animation       = UBBlackMkt_A4.UBBlackMkt_A4
2911        AnimationMode   = ONCE
2912        AnimationSpeedFactorRange = 1.0 1.0
2913        Flags           = START_FRAME_FIRST
2914      End
2915      TransitionState   = DOWN_DEFAULT UP_NIGHT
2916        Model           = UBBlackMkt_A4N
2917        Animation       = UBBlackMkt_A4N.UBBlackMkt_A4N
2918        AnimationMode   = ONCE
2919        AnimationSpeedFactorRange = 1.0 1.0
2920        Flags           = START_FRAME_FIRST
2921      End
2922      TransitionState   = DOWN_DEFAULT UP_SNOW
2923        Model           = UBBlackMkt_A4S
2924        Animation       = UBBlackMkt_A4S.UBBlackMkt_A4S
2925        AnimationMode   = ONCE
2926        AnimationSpeedFactorRange = 1.0 1.0
2927        Flags           = START_FRAME_FIRST
2928      End
2929      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
2930        Model           = UBBlackMkt_A4SN
2931        Animation       = UBBlackMkt_A4SN.UBBlackMkt_A4SN
2932        AnimationMode   = ONCE
2933        AnimationSpeedFactorRange = 1.0 1.0
2934        Flags           = START_FRAME_FIRST
2935      End
2936      TransitionState   = UP_DAY DOWN_DEFAULT
2937        Model           = UBBlackMkt_A4
2938        Animation       = UBBlackMkt_A4.UBBlackMkt_A4
2939        AnimationMode   = ONCE_BACKWARDS
2940        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
2941        Flags           = START_FRAME_LAST
2942      End
2943      TransitionState   = UP_NIGHT DOWN_DEFAULT
2944        Model           = UBBlackMkt_A4N
2945        Animation       = UBBlackMkt_A4N.UBBlackMkt_A4N
2946        AnimationMode   = ONCE_BACKWARDS
2947        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
2948        Flags           = START_FRAME_LAST
2949      End
2950      TransitionState   = UP_SNOW DOWN_DEFAULT
2951        Model           = UBBlackMkt_A4S
2952        Animation       = UBBlackMkt_A4S.UBBlackMkt_A4S
2953        AnimationMode   = ONCE_BACKWARDS
2954        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
2955        Flags           = START_FRAME_LAST
2956      End
2957      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
2958        Model           = UBBlackMkt_A4SN
2959        Animation       = UBBlackMkt_A4SN.UBBlackMkt_A4SN
2960        AnimationMode   = ONCE_BACKWARDS
2961        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
2962        Flags           = START_FRAME_LAST
2963      End
2964    End
2965  
2966    ; ------------ under-construction scaffolding -----------------
2967    Draw = W3DModelDraw ModuleTag_03
2968    AnimationsRequirePower = No
2969      MinLODRequired = MEDIUM
2970      DefaultConditionState
2971        Model           = None
2972        TransitionKey   = DOWN_DEFAULT
2973      End
2974      ConditionState    = NIGHT
2975        Model           = None
2976        TransitionKey   = DOWN_DEFAULT
2977      End
2978      ConditionState    = SNOW
2979        Model           = None
2980        TransitionKey   = DOWN_DEFAULT
2981      End 
2982      ConditionState    = SNOW NIGHT
2983        Model           = None
2984        TransitionKey   = DOWN_DEFAULT
2985      End 
2986      ConditionState    = PARTIALLY_CONSTRUCTED
2987        Model           = UBBlackMkt_A6
2988        Animation       = UBBlackMkt_A6.UBBlackMkt_A6
2989        AnimationMode   = MANUAL
2990        Flags           = START_FRAME_LAST
2991        TransitionKey   = UP_DAY
2992        ParticleSysBone = Dust01 BuildingDust
2993        ParticleSysBone = Smoke01 BuildUpSmoke
2994        ParticleSysBone = Smoke02 BuildUpSmoke
2995        ParticleSysBone = Smoke03 BuildUpSmoke
2996        ParticleSysBone = Smoke04 BuildUpSmoke
2997      End
2998      ConditionState    = NIGHT PARTIALLY_CONSTRUCTED
2999        Model           = UBBlackMkt_A6N
3000        Animation       = UBBlackMkt_A6N.UBBlackMkt_A6N
3001        AnimationMode   = MANUAL
3002        Flags           = START_FRAME_LAST
3003        TransitionKey   = UP_NIGHT
3004        ParticleSysBone = Dust01 BuildingDust
3005        ParticleSysBone = Smoke01 BuildUpSmoke
3006        ParticleSysBone = Smoke02 BuildUpSmoke
3007        ParticleSysBone = Smoke03 BuildUpSmoke
3008        ParticleSysBone = Smoke04 BuildUpSmoke
3009      End
3010      ConditionState    = SNOW PARTIALLY_CONSTRUCTED
3011        Model           = UBBlackMkt_A6S
3012        Animation       = UBBlackMkt_A6S.UBBlackMkt_A6S
3013        AnimationMode   = MANUAL
3014        Flags           = START_FRAME_LAST
3015        TransitionKey   = UP_SNOW
3016        ParticleSysBone = Dust01 BuildingSnowDust
3017        ParticleSysBone = Smoke01 BuildUpSnowSmoke
3018        ParticleSysBone = Smoke02 BuildUpSnowSmoke
3019        ParticleSysBone = Smoke03 BuildUpSnowSmoke
3020        ParticleSysBone = Smoke04 BuildUpSnowSmoke
3021      End
3022      ConditionState    = SNOW NIGHT PARTIALLY_CONSTRUCTED
3023        Model           = UBBlackMkt_A6SN
3024        Animation       = UBBlackMkt_A6SN.UBBlackMkt_A6SN
3025        AnimationMode   = MANUAL
3026        Flags           = START_FRAME_LAST
3027        TransitionKey   = UP_SNOWNIGHT
3028        ParticleSysBone = Dust01 BuildingNightSnowDust
3029        ParticleSysBone = Smoke01 BuildUpNightSnowSmoke
3030        ParticleSysBone = Smoke02 BuildUpNightSnowSmoke
3031        ParticleSysBone = Smoke03 BuildUpNightSnowSmoke
3032        ParticleSysBone = Smoke04 BuildUpNightSnowSmoke
3033      End
3034      TransitionState   = DOWN_DEFAULT UP_DAY
3035       Model            = UBBlackMkt_A6
3036        Animation       = UBBlackMkt_A6.UBBlackMkt_A6
3037        AnimationMode   = ONCE
3038        AnimationSpeedFactorRange = 1.0 1.0
3039        Flags           = START_FRAME_FIRST
3040      End
3041      TransitionState   = DOWN_DEFAULT UP_NIGHT
3042       Model            = UBBlackMkt_A6N
3043        Animation       = UBBlackMkt_A6N.UBBlackMkt_A6N
3044        AnimationMode   = ONCE
3045        AnimationSpeedFactorRange = 1.0 1.0
3046        Flags           = START_FRAME_FIRST
3047      End
3048      TransitionState   = DOWN_DEFAULT UP_SNOW
3049       Model            = UBBlackMkt_A6S
3050        Animation       = UBBlackMkt_A6S.UBBlackMkt_A6S
3051        AnimationMode   = ONCE
3052        AnimationSpeedFactorRange = 1.0 1.0
3053        Flags           = START_FRAME_FIRST
3054      End
3055      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
3056       Model            = UBBlackMkt_A6SN
3057        Animation       = UBBlackMkt_A6SN.UBBlackMkt_A6SN
3058        AnimationMode   = ONCE
3059        AnimationSpeedFactorRange = 1.0 1.0
3060        Flags           = START_FRAME_FIRST
3061      End
3062      TransitionState   = UP_DAY DOWN_DEFAULT
3063        Model           = UBBlackMkt_A6
3064        Animation       = UBBlackMkt_A6.UBBlackMkt_A6
3065        AnimationMode   = ONCE_BACKWARDS
3066        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
3067        Flags           = START_FRAME_LAST
3068      End
3069      TransitionState   = UP_NIGHT DOWN_DEFAULT
3070        Model           = UBBlackMkt_A6N
3071        Animation       = UBBlackMkt_A6N.UBBlackMkt_A6N
3072        AnimationMode   = ONCE_BACKWARDS
3073        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
3074        Flags           = START_FRAME_LAST
3075      End
3076      TransitionState   = UP_SNOW DOWN_DEFAULT
3077        Model           = UBBlackMkt_A6S
3078        Animation       = UBBlackMkt_A6S.UBBlackMkt_A6S
3079        AnimationMode   = ONCE_BACKWARDS
3080        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
3081        Flags           = START_FRAME_LAST
3082      End
3083      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
3084        Model           = UBBlackMkt_A6SN
3085        Animation       = UBBlackMkt_A6SN.UBBlackMkt_A6SN
3086        AnimationMode   = ONCE_BACKWARDS
3087        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
3088        Flags           = START_FRAME_LAST
3089      End
3090    End
3091    PlacementViewAngle  = -45
3092  
3093    ; ***DESIGN parameters ***
3094    DisplayName         = OBJECT:BlackMarket
3095    Side                = GLADemolitionGeneral
3096    EditorSorting       = STRUCTURE
3097    Prerequisites
3098      Object = Demo_GLAPalace
3099    End
3100    BuildCost           = 625
3101    BuildTime           = 20.0           ; in seconds
3102    EnergyProduction    = 0
3103    CommandSet          = FakeGLABlackMarketCommandSet
3104    VisionRange         = 200.0           ; Shroud clearing distance
3105    ShroudClearingRange = 200
3106  
3107    WeaponSet
3108      Conditions          = None 
3109      Weapon = PRIMARY SuicideWeapon
3110      AutoChooseSources = PRIMARY None
3111    End
3112  
3113    ArmorSet
3114      Conditions        = None
3115      Armor             = StructureArmor
3116      DamageFX          = StructureDamageFXNoShake
3117    End
3118    ExperienceValue     = 50 50 50 50  ; Experience point value at each level
3119  
3120    ; *** AUDIO Parameters ***
3121    VoiceSelect         = BlackMarketSelect
3122    SoundOnDamaged        = BuildingDamagedStateLight
3123    SoundOnReallyDamaged  = BuildingDestroy
3124  
3125    UnitSpecificSounds
3126      UnderConstruction     = UnderConstructionLoop
3127    End
3128  
3129    ; *** ENGINEERING Parameters ***
3130    RadarPriority       = STRUCTURE
3131    KindOf          = PRELOAD STRUCTURE SELECTABLE IMMOBILE CAPTURABLE MP_COUNT_FOR_VICTORY SCORE_CREATE CAN_ATTACK FS_FAKE
3132    Body                = StructureBody ModuleTag_04
3133      MaxHealth         = 125.0
3134      InitialHealth     = 125.0
3135  
3136      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
3137      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
3138      SubdualDamageCap = 325
3139      SubdualDamageHealRate = 500
3140      SubdualDamageHealAmount = 100
3141    End
3142  
3143    Behavior = AIUpdateInterface ModuleTag_05
3144      AutoAcquireEnemiesWhenIdle = No
3145    End
3146  
3147    Behavior = ProductionUpdate ModuleTag_06
3148      ; nothing
3149    End
3150  
3151    Behavior = SlowDeathBehavior ModuleTag_07
3152      ExemptStatus = UNDER_CONSTRUCTION
3153      DestructionDelay = 0
3154      Weapon = FINAL FakeStructureDetonationWeapon
3155    End
3156    Behavior = DestroyDie ModuleTag_SlowDeathException
3157      RequiredStatus = UNDER_CONSTRUCTION
3158    End
3159  
3160    Behavior = ReplaceObjectUpgrade ModuleTag_08
3161      ReplaceObject = Demo_GLABlackMarket
3162      TriggeredBy = Upgrade_BecomeRealGLABlackMarket
3163    End
3164  
3165    Behavior        = ModelConditionUpgrade ModuleTag_Armor01Visual
3166      ConditionFlag = GARRISONED
3167      TriggeredBy   = Upgrade_GLAFortifiedStructure
3168    End
3169  
3170    Behavior                 = CreateObjectDie ModuleTag_09
3171      CreationList      = OCL_ABPowerPlantExplode
3172    End
3173    Behavior                 = FXListDie ModuleTag_10
3174      DeathFX           = FX_StructureSmallDeath
3175    End
3176  
3177    Behavior = FlammableUpdate ModuleTag_12
3178      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
3179      AflameDamageAmount = 5       ; taking this much damage...
3180      AflameDamageDelay = 500       ; this often.
3181    End
3182  
3183    Behavior = TransitionDamageFX ModuleTag_13
3184      ;-------------DESIGNED FOR SMALL SIZED FACTION BUILDING TRANSITIONS-------------------
3185      DamagedParticleSystem1       = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
3186      ;---------------------------------------------------------------------------------------
3187      ReallyDamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
3188      ReallyDamagedParticleSystem2 = Bone:None RandomBone:No PSys:StructureTransitionSmallExplosion
3189      ReallyDamagedParticleSystem3 = Bone:None RandomBone:No PSys:StructureTransitionSmallShockwave
3190    End
3191  
3192    Behavior = AutoDepositUpdate ModuleTag_FakeMoney
3193      DepositTiming       = 2000   ; in milliseconds
3194      DepositAmount       = 20   ; cash amount to deposit every DepositTiming
3195      InitialCaptureBonus = 0  ; no initial bonus
3196      ActualMoney = No ; Display only so I look like a BlackMarket
3197    End
3198  
3199    Geometry            = BOX
3200    GeometryMajorRadius = 35.0
3201    GeometryMinorRadius = 35.0
3202    GeometryHeight      = 35.0
3203    GeometryIsSmall     = No
3204    Shadow              = SHADOW_VOLUME
3205    ShadowTexture = fake_supply; this is not really a shadow, it's used for decal to indicate fake structure.
3206    ShadowSizeX = 108
3207    ShadowSizeY = 96
3208    BuildCompletion     = PLACED_BY_PLAYER
3209  
3210  End
3211  
3212  ;------------------------------------------------------------------------------
3213  Object Demo_GLAScudStorm
3214  
3215    ; *** ART Parameters ***
3216    SelectPortrait         = SUScudStorm_L
3217    ButtonImage            = SUScudStorm
3218    Draw = W3DModelDraw ModuleTag_01
3219      OkToChangeModelColor = Yes
3220      ProjectileBoneFeedbackEnabledSlots = PRIMARY ; WeaponLaunchBone will be shown/hidden, not just used for firing offset
3221  
3222      ; day
3223      ConditionState = NONE ; lying around
3224        Model         = UBScudStrm_A1
3225        Animation     = UBScudStrm_A1.UBScudStrm_A1
3226        AnimationMode = MANUAL
3227        Flags         = START_FRAME_FIRST
3228        WeaponLaunchBone = PRIMARY WeaponA
3229        ShowSubObject = WeaponA01 WeaponA02 WeaponA03 WeaponA04 WeaponA05 WeaponA06 WeaponA07 WeaponA08 WeaponA09 
3230        TransitionKey = Trans_READY
3231  
3232        ParticleSysBone      = SteamM01 SteamLarge
3233        ParticleSysBone      = SteamS01 SteamMedium
3234      End
3235  
3236      TransitionState = Trans_READY Trans_ATTACKING ; from lying around to straight up
3237        Model         = UBScudStrm_A1
3238        Animation     = UBScudStrm_A1.UBScudStrm_A1
3239        AnimationMode = ONCE
3240        Flags         = MAINTAIN_FRAME_ACROSS_STATES
3241        WeaponLaunchBone = PRIMARY WeaponA
3242  
3243        ParticleSysBone      = SteamM01 SteamLarge
3244        ParticleSysBone      = SteamS01 SteamMedium
3245  
3246        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3247        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3248        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3249      End
3250  
3251      ConditionState = ATTACKING  ; Projectile feedback code selectively hiding missiles as they shoot
3252        Model         = UBScudStrm_A2
3253        Animation     = UBScudStrm_A2.UBScudStrm_A2
3254        AnimationMode = MANUAL
3255        Flags         = START_FRAME_FIRST
3256        WeaponLaunchBone = PRIMARY WeaponA
3257        TransitionKey = Trans_ATTACKING
3258  
3259        ParticleSysBone      = SteamM01 SteamLarge
3260        ParticleSysBone      = SteamS01 SteamMedium
3261  
3262        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3263        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3264        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3265      End
3266      AliasConditionState = ATTACKING FIRING_A
3267      AliasConditionState = ATTACKING BETWEEN_FIRING_SHOTS_A
3268  
3269      TransitionState = Trans_ATTACKING Trans_READY ; empty arms going underground, coming up with presents for bad people
3270        Model         = UBScudStrm_A3
3271        Animation     = UBScudStrm_A3.UBScudStrm_A3
3272        AnimationMode = ONCE
3273        Flags         = MAINTAIN_FRAME_ACROSS_STATES2
3274  
3275        ParticleSysBone      = SteamM01 SteamVent
3276        ParticleSysBone      = SteamS01 SteamVent
3277      End
3278      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
3279        Model              = UBScudStrm
3280        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
3281      End
3282      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
3283        Model              = UBScudStrm_D
3284        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
3285      End
3286      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED
3287        Model              = UBScudStrm_E
3288        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
3289      End
3290  
3291      ;-------------------------------------------------------------------------------------------------------------------------
3292      ; day
3293      ConditionState = DAMAGED
3294        Model         = UBScudStrm_DA1
3295        Animation     = UBScudStrm_DA1.UBScudStrm_DA1
3296        AnimationMode = MANUAL
3297        Flags         = START_FRAME_FIRST
3298        WeaponLaunchBone = PRIMARY WeaponA
3299        ShowSubObject = WeaponA01 WeaponA02 WeaponA03 WeaponA04 WeaponA05 WeaponA06 WeaponA07 WeaponA08 WeaponA09 
3300        TransitionKey = Trans_READY_DAMAGED
3301  
3302        ParticleSysBone      = SteamM01 SteamLarge
3303        ParticleSysBone      = SteamS01 SteamMedium
3304      End
3305  
3306      TransitionState = Trans_READY_DAMAGED Trans_ATTACKING_DAMAGED
3307        Model         = UBScudStrm_DA1
3308        Animation     = UBScudStrm_DA1.UBScudStrm_DA1
3309        AnimationMode = ONCE
3310        Flags         = MAINTAIN_FRAME_ACROSS_STATES
3311        WeaponLaunchBone = PRIMARY WeaponA
3312  
3313        ParticleSysBone      = SteamM01 SteamLarge
3314        ParticleSysBone      = SteamS01 SteamMedium
3315  
3316        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3317        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3318        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3319      End
3320  
3321      ConditionState = ATTACKING DAMAGED
3322        Model         = UBScudStrm_DA2
3323        Animation     = UBScudStrm_DA2.UBScudStrm_DA2
3324        AnimationMode = MANUAL
3325        Flags         = START_FRAME_FIRST
3326        WeaponLaunchBone = PRIMARY WeaponA
3327        TransitionKey = Trans_ATTACKING_DAMAGED
3328  
3329        ParticleSysBone      = SteamM01 SteamLarge
3330        ParticleSysBone      = SteamS01 SteamMedium
3331  
3332        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3333        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3334        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3335      End
3336      AliasConditionState = ATTACKING FIRING_A DAMAGED
3337      AliasConditionState = ATTACKING BETWEEN_FIRING_SHOTS_A DAMAGED
3338  
3339      TransitionState = Trans_ATTACKING_DAMAGED Trans_READY_DAMAGED
3340        Model         = UBScudStrm_DA3
3341        Animation     = UBScudStrm_DA3.UBScudStrm_DA3
3342        AnimationMode = ONCE
3343        Flags         = MAINTAIN_FRAME_ACROSS_STATES2
3344  
3345        ParticleSysBone      = SteamM01 SteamVent
3346        ParticleSysBone      = SteamS01 SteamVent
3347      End
3348  
3349      ;-------------------------------------------------------------------------------------------------------------------------
3350      ConditionState = REALLYDAMAGED RUBBLE
3351        Model         = UBScudStrm_EA1
3352        Animation     = UBScudStrm_EA1.UBScudStrm_EA1
3353        AnimationMode = MANUAL
3354        Flags         = START_FRAME_FIRST
3355        WeaponLaunchBone = PRIMARY WeaponA
3356        ShowSubObject = WeaponA01 WeaponA02 WeaponA03 WeaponA04 WeaponA05 WeaponA06 WeaponA07 WeaponA08 WeaponA09 
3357        TransitionKey = Trans_READY_REALLYDAMAGED
3358  
3359        ParticleSysBone      = SteamM01 SteamLarge
3360        ParticleSysBone      = SteamS01 SteamMedium
3361      End
3362  
3363      TransitionState = Trans_READY_REALLYDAMAGED Trans_ATTACKING_REALLYDAMAGED
3364        Model         = UBScudStrm_EA1
3365        Animation     = UBScudStrm_EA1.UBScudStrm_EA1
3366        AnimationMode = ONCE
3367        Flags         = MAINTAIN_FRAME_ACROSS_STATES
3368        WeaponLaunchBone = PRIMARY WeaponA
3369  
3370        ParticleSysBone      = SteamM01 SteamLarge
3371        ParticleSysBone      = SteamS01 SteamMedium
3372  
3373        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3374        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3375        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3376      End
3377  
3378      ConditionState = ATTACKING REALLYDAMAGED RUBBLE
3379        Model         = UBScudStrm_EA2
3380        Animation     = UBScudStrm_EA2.UBScudStrm_EA2
3381        AnimationMode = MANUAL
3382        Flags         = START_FRAME_FIRST
3383        WeaponLaunchBone = PRIMARY WeaponA
3384        TransitionKey = Trans_ATTACKING_REALLYDAMAGED
3385  
3386        ParticleSysBone      = SteamM01 SteamLarge
3387        ParticleSysBone      = SteamS01 SteamMedium
3388  
3389        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3390        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3391        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3392      End
3393      AliasConditionState = ATTACKING FIRING_A REALLYDAMAGED RUBBLE
3394      AliasConditionState = ATTACKING BETWEEN_FIRING_SHOTS_A REALLYDAMAGED RUBBLE
3395  
3396      TransitionState = Trans_ATTACKING_REALLYDAMAGED Trans_READY_REALLYDAMAGED
3397        Model         = UBScudStrm_EA3
3398        Animation     = UBScudStrm_EA3.UBScudStrm_EA3
3399        AnimationMode = ONCE
3400        Flags         = MAINTAIN_FRAME_ACROSS_STATES2
3401  
3402        ParticleSysBone      = SteamM01 SteamVent
3403        ParticleSysBone      = SteamS01 SteamVent
3404      End
3405      
3406          ;-------------------------------------------------------------------------------------------------------------------------
3407          ;  SNOW
3408      ConditionState =  SNOW ; from underground to lying around
3409        Model         = UBScudStrm_A1S
3410        Animation     = UBScudStrm_A1S.UBScudStrm_A1S
3411        AnimationMode = MANUAL
3412        Flags         = START_FRAME_FIRST
3413        WeaponLaunchBone = PRIMARY WeaponA
3414        ShowSubObject = WeaponA01 WeaponA02 WeaponA03 WeaponA04 WeaponA05 WeaponA06 WeaponA07 WeaponA08 WeaponA09 
3415        TransitionKey = Trans_READY_SNOW
3416  
3417        ParticleSysBone      = SteamM01 SteamLarge
3418        ParticleSysBone      = SteamS01 SteamMedium
3419      End
3420  
3421      TransitionState = Trans_READY_SNOW Trans_ATTACKING_SNOW
3422        Model         = UBScudStrm_A1S
3423        Animation     = UBScudStrm_A1S.UBScudStrm_A1S
3424        AnimationMode = ONCE
3425        Flags         = MAINTAIN_FRAME_ACROSS_STATES
3426        WeaponLaunchBone = PRIMARY WeaponA
3427  
3428        ParticleSysBone      = SteamM01 SteamLarge
3429        ParticleSysBone      = SteamS01 SteamMedium
3430  
3431        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3432        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3433        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3434      End
3435  
3436      ConditionState = ATTACKING  SNOW ; Projectile feedback code selectively hiding missiles as they shoot
3437        Model         = UBScudStrm_A2S
3438        Animation     = UBScudStrm_A2S.UBScudStrm_A2S
3439        AnimationMode = MANUAL
3440        Flags         = START_FRAME_FIRST
3441        WeaponLaunchBone = PRIMARY WeaponA
3442        TransitionKey = Trans_ATTACKING_SNOW
3443  
3444        ParticleSysBone      = SteamM01 SteamLarge
3445        ParticleSysBone      = SteamS01 SteamMedium
3446  
3447        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3448        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3449        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3450      End
3451      AliasConditionState = ATTACKING FIRING_A  SNOW
3452      AliasConditionState = ATTACKING BETWEEN_FIRING_SHOTS_A  SNOW
3453  
3454      TransitionState = Trans_ATTACKING_SNOW Trans_READY_SNOW ; empty arms going underground
3455        Model         = UBScudStrm_A3S
3456        Animation     = UBScudStrm_A3S.UBScudStrm_A3S
3457        AnimationMode = ONCE
3458        Flags         = MAINTAIN_FRAME_ACROSS_STATES2
3459  
3460        ParticleSysBone      = SteamM01 SteamVent
3461        ParticleSysBone      = SteamS01 SteamVent
3462      End
3463  
3464      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED  SNOW
3465        Model              = UBScudStrm
3466        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
3467      End
3468      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED  SNOW
3469        Model              = UBScudStrm_D
3470        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
3471      End
3472      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED  SNOW
3473        Model              = UBScudStrm_E
3474        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
3475      End
3476  
3477      ;-------------------------------------------------------------------------------------------------------------------------
3478      ConditionState = DAMAGED SNOW
3479        Model         = UBScudStrm_DA1
3480        Animation     = UBScudStrm_DA1.UBScudStrm_DA1
3481        AnimationMode = MANUAL
3482        Flags         = START_FRAME_FIRST
3483        WeaponLaunchBone = PRIMARY WeaponA
3484        ShowSubObject = WeaponA01 WeaponA02 WeaponA03 WeaponA04 WeaponA05 WeaponA06 WeaponA07 WeaponA08 WeaponA09 
3485        TransitionKey = Trans_READY_DAMAGED_SNOW
3486  
3487        ParticleSysBone      = SteamM01 SteamLarge
3488        ParticleSysBone      = SteamS01 SteamMedium
3489      End
3490  
3491      TransitionState = Trans_READY_DAMAGED_SNOW Trans_ATTACKING_DAMAGED_SNOW
3492        Model         = UBScudStrm_DA1
3493        Animation     = UBScudStrm_DA1.UBScudStrm_DA1
3494        AnimationMode = ONCE
3495        Flags         = MAINTAIN_FRAME_ACROSS_STATES
3496        WeaponLaunchBone = PRIMARY WeaponA
3497  
3498        ParticleSysBone      = SteamM01 SteamLarge
3499        ParticleSysBone      = SteamS01 SteamMedium
3500  
3501        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3502        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3503        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3504      End
3505  
3506      ConditionState = ATTACKING DAMAGED SNOW
3507        Model         = UBScudStrm_DA2
3508        Animation     = UBScudStrm_DA2.UBScudStrm_DA2
3509        AnimationMode = MANUAL
3510        Flags         = START_FRAME_FIRST
3511        WeaponLaunchBone = PRIMARY WeaponA
3512        TransitionKey = Trans_ATTACKING_DAMAGED_SNOW
3513  
3514        ParticleSysBone      = SteamM01 SteamLarge
3515        ParticleSysBone      = SteamS01 SteamMedium
3516  
3517        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3518        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3519        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3520      End
3521      AliasConditionState = ATTACKING FIRING_A DAMAGED SNOW
3522      AliasConditionState = ATTACKING BETWEEN_FIRING_SHOTS_A DAMAGED SNOW
3523  
3524      TransitionState = Trans_ATTACKING_DAMAGED_SNOW Trans_READY_DAMAGED_SNOW
3525        Model         = UBScudStrm_DA3
3526        Animation     = UBScudStrm_DA3.UBScudStrm_DA3
3527        AnimationMode = ONCE
3528        Flags         = MAINTAIN_FRAME_ACROSS_STATES2
3529  
3530        ParticleSysBone      = SteamM01 SteamVent
3531        ParticleSysBone      = SteamS01 SteamVent
3532      End
3533         
3534      ;-------------------------------------------------------------------------------------------------------------------------
3535      
3536      ConditionState = REALLYDAMAGED RUBBLE SNOW
3537        Model         = UBScudStrm_EA1
3538        Animation     = UBScudStrm_EA1.UBScudStrm_EA1
3539        AnimationMode = MANUAL
3540        Flags         = START_FRAME_FIRST
3541        WeaponLaunchBone = PRIMARY WeaponA
3542        ShowSubObject = WeaponA01 WeaponA02 WeaponA03 WeaponA04 WeaponA05 WeaponA06 WeaponA07 WeaponA08 WeaponA09 
3543        TransitionKey = Trans_READY_REALLYDAMAGED_SNOW
3544  
3545        ParticleSysBone      = SteamM01 SteamLarge
3546        ParticleSysBone      = SteamS01 SteamMedium
3547      End
3548  
3549      TransitionState = Trans_READY_REALLYDAMAGED_SNOW Trans_ATTACKING_REALLYDAMAGED_SNOW
3550        Model         = UBScudStrm_EA1
3551        Animation     = UBScudStrm_EA1.UBScudStrm_EA1
3552        AnimationMode = ONCE
3553        Flags         = MAINTAIN_FRAME_ACROSS_STATES
3554        WeaponLaunchBone = PRIMARY WeaponA
3555  
3556        ParticleSysBone      = SteamM01 SteamLarge
3557        ParticleSysBone      = SteamS01 SteamMedium
3558  
3559        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3560        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3561        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3562      End
3563  
3564  
3565      ConditionState = ATTACKING REALLYDAMAGED RUBBLE SNOW
3566        Model         = UBScudStrm_EA2
3567        Animation     = UBScudStrm_EA2.UBScudStrm_EA2
3568        AnimationMode = MANUAL
3569        Flags         = START_FRAME_FIRST
3570        WeaponLaunchBone = PRIMARY WeaponA
3571        TransitionKey = Trans_ATTACKING_REALLYDAMAGED_SNOW
3572  
3573        ParticleSysBone      = SteamM01 SteamLarge
3574        ParticleSysBone      = SteamS01 SteamMedium
3575  
3576        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3577        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3578        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3579      End
3580      AliasConditionState = ATTACKING FIRING_A REALLYDAMAGED RUBBLE SNOW
3581      AliasConditionState = ATTACKING BETWEEN_FIRING_SHOTS_A REALLYDAMAGED RUBBLE SNOW
3582  
3583      TransitionState = Trans_ATTACKING_REALLYDAMAGED_SNOW Trans_READY_REALLYDAMAGED_SNOW
3584        Model         = UBScudStrm_EA3
3585        Animation     = UBScudStrm_EA3.UBScudStrm_EA3
3586        AnimationMode = ONCE
3587        Flags         = MAINTAIN_FRAME_ACROSS_STATES2
3588  
3589        ParticleSysBone      = SteamM01 SteamVent
3590        ParticleSysBone      = SteamS01 SteamVent
3591      End
3592      
3593      ;-------------------------------------------------------------------------------------------------------------------------
3594          ; NIGHT
3595      ConditionState = NIGHT ; from underground to lying around
3596        Model         = UBScudStrm_A1
3597        Animation     = UBScudStrm_A1.UBScudStrm_A1
3598        AnimationMode = MANUAL
3599        Flags         = START_FRAME_FIRST
3600        WeaponLaunchBone = PRIMARY WeaponA
3601        ShowSubObject = WeaponA01 WeaponA02 WeaponA03 WeaponA04 WeaponA05 WeaponA06 WeaponA07 WeaponA08 WeaponA09 
3602        TransitionKey = Trans_READY_NIGHT
3603  
3604        ParticleSysBone      = SteamM01 SteamLarge
3605        ParticleSysBone      = SteamS01 SteamMedium
3606      End
3607  
3608      TransitionState = Trans_READY_NIGHT Trans_ATTACKING_NIGHT
3609        Model         = UBScudStrm_A1
3610        Animation     = UBScudStrm_A1.UBScudStrm_A1
3611        AnimationMode = ONCE
3612        Flags         = MAINTAIN_FRAME_ACROSS_STATES
3613        WeaponLaunchBone = PRIMARY WeaponA
3614  
3615        ParticleSysBone      = SteamM01 SteamLarge
3616        ParticleSysBone      = SteamS01 SteamMedium
3617  
3618        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3619        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3620        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3621      End
3622  
3623      ConditionState = ATTACKING NIGHT  ; Projectile feedback code selectively hiding missiles as they shoot
3624        Model         = UBScudStrm_A2
3625        Animation     = UBScudStrm_A2.UBScudStrm_A2
3626        AnimationMode = MANUAL
3627        Flags         = START_FRAME_FIRST
3628        WeaponLaunchBone = PRIMARY WeaponA
3629        TransitionKey = Trans_ATTACKING_NIGHT
3630  
3631        ParticleSysBone      = SteamM01 SteamLarge
3632        ParticleSysBone      = SteamS01 SteamMedium
3633  
3634        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3635        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3636        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3637      End
3638      AliasConditionState = ATTACKING FIRING_A NIGHT
3639      AliasConditionState = ATTACKING BETWEEN_FIRING_SHOTS_A NIGHT
3640  
3641      TransitionState = Trans_ATTACKING_NIGHT Trans_READY_NIGHT ; empty arms going underground
3642        Model         = UBScudStrm_A3
3643        Animation     = UBScudStrm_A3.UBScudStrm_A3
3644        AnimationMode = ONCE
3645        Flags         = MAINTAIN_FRAME_ACROSS_STATES2
3646  
3647        ParticleSysBone      = SteamM01 SteamVent
3648        ParticleSysBone      = SteamS01 SteamVent
3649      End
3650  
3651      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT
3652        Model              = UBScudStrm
3653        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
3654      End
3655      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED NIGHT
3656        Model              = UBScudStrm_D
3657        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
3658      End
3659      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED NIGHT
3660        Model              = UBScudStrm_E
3661        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
3662      End
3663  
3664      ;-------------------------------------------------------------------------------------------------------------------------
3665      ConditionState = DAMAGED NIGHT
3666        Model         = UBScudStrm_DA1N
3667        Animation     = UBScudStrm_DA1N.UBScudStrm_DA1N
3668        AnimationMode = MANUAL
3669        Flags         = START_FRAME_FIRST
3670        WeaponLaunchBone = PRIMARY WeaponA
3671        ShowSubObject = WeaponA01 WeaponA02 WeaponA03 WeaponA04 WeaponA05 WeaponA06 WeaponA07 WeaponA08 WeaponA09 
3672        TransitionKey = Trans_READY_DAMAGED_NIGHT
3673  
3674        ParticleSysBone      = SteamM01 SteamLarge
3675        ParticleSysBone      = SteamS01 SteamMedium
3676      End
3677  
3678      TransitionState = Trans_READY_DAMAGED_NIGHT Trans_ATTACKING_DAMAGED_NIGHT
3679        Model         = UBScudStrm_DA1N
3680        Animation     = UBScudStrm_DA1N.UBScudStrm_DA1N
3681        AnimationMode = ONCE
3682        Flags         = MAINTAIN_FRAME_ACROSS_STATES
3683        WeaponLaunchBone = PRIMARY WeaponA
3684  
3685        ParticleSysBone      = SteamM01 SteamLarge
3686        ParticleSysBone      = SteamS01 SteamMedium
3687  
3688        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3689        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3690        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3691      End
3692  
3693      ConditionState = ATTACKING DAMAGED NIGHT
3694        Model         = UBScudStrm_DA2N
3695        Animation     = UBScudStrm_DA2N.UBScudStrm_DA2N
3696        AnimationMode = MANUAL
3697        Flags         = START_FRAME_FIRST
3698        WeaponLaunchBone = PRIMARY WeaponA
3699        TransitionKey = Trans_ATTACKING_DAMAGED_NIGHT
3700  
3701        ParticleSysBone      = SteamM01 SteamLarge
3702        ParticleSysBone      = SteamS01 SteamMedium
3703  
3704        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3705        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3706        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3707      End
3708      AliasConditionState = ATTACKING FIRING_A NIGHT DAMAGED
3709      AliasConditionState = ATTACKING BETWEEN_FIRING_SHOTS_A NIGHT DAMAGED
3710  
3711      TransitionState = Trans_ATTACKING_DAMAGED_NIGHT Trans_READY_DAMAGED_NIGHT
3712        Model         = UBScudStrm_DA3N
3713        Animation     = UBScudStrm_DA3N.UBScudStrm_DA3N
3714        AnimationMode = ONCE
3715        Flags         = MAINTAIN_FRAME_ACROSS_STATES2
3716  
3717        ParticleSysBone      = SteamM01 SteamVent
3718        ParticleSysBone      = SteamS01 SteamVent
3719      End
3720         
3721      ;-------------------------------------------------------------------------------------------------------------------------
3722      
3723      ConditionState = REALLYDAMAGED RUBBLE NIGHT
3724        Model         = UBScudStrm_EA1N
3725        Animation     = UBScudStrm_EA1N.UBScudStrm_EA1N
3726        AnimationMode = MANUAL
3727        Flags         = START_FRAME_FIRST
3728        WeaponLaunchBone = PRIMARY WeaponA
3729        ShowSubObject = WeaponA01 WeaponA02 WeaponA03 WeaponA04 WeaponA05 WeaponA06 WeaponA07 WeaponA08 WeaponA09 
3730        TransitionKey = Trans_READY_REALLYDAMAGED_NIGHT
3731  
3732        ParticleSysBone      = SteamM01 SteamLarge
3733        ParticleSysBone      = SteamS01 SteamMedium
3734      End
3735  
3736      TransitionState = Trans_READY_REALLYDAMAGED_NIGHT Trans_ATTACKING_REALLYDAMAGED_NIGHT
3737        Model         = UBScudStrm_EA1N
3738        Animation     = UBScudStrm_EA1N.UBScudStrm_EA1N
3739        AnimationMode = ONCE
3740        Flags         = MAINTAIN_FRAME_ACROSS_STATES
3741        WeaponLaunchBone = PRIMARY WeaponA
3742  
3743        ParticleSysBone      = SteamM01 SteamLarge
3744        ParticleSysBone      = SteamS01 SteamMedium
3745  
3746        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3747        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3748        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3749      End
3750  
3751  
3752      ConditionState = ATTACKING REALLYDAMAGED RUBBLE NIGHT
3753        Model         = UBScudStrm_EA2N
3754        Animation     = UBScudStrm_EA2N.UBScudStrm_EA2N
3755        AnimationMode = MANUAL
3756        Flags         = START_FRAME_FIRST
3757        WeaponLaunchBone = PRIMARY WeaponA
3758        TransitionKey = Trans_ATTACKING_REALLYDAMAGED_NIGHT
3759  
3760        ParticleSysBone      = SteamM01 SteamLarge
3761        ParticleSysBone      = SteamS01 SteamMedium
3762  
3763        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3764        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3765        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3766      End
3767      AliasConditionState = ATTACKING FIRING_A NIGHT REALLYDAMAGED RUBBLE
3768      AliasConditionState = ATTACKING BETWEEN_FIRING_SHOTS_A NIGHT REALLYDAMAGED RUBBLE
3769  
3770      TransitionState = Trans_ATTACKING_REALLYDAMAGED_NIGHT Trans_READY_REALLYDAMAGED_NIGHT
3771        Model         = UBScudStrm_EA3N
3772        Animation     = UBScudStrm_EA3N.UBScudStrm_EA3N
3773        AnimationMode = ONCE
3774        Flags         = MAINTAIN_FRAME_ACROSS_STATES2
3775  
3776        ParticleSysBone      = SteamM01 SteamVent
3777        ParticleSysBone      = SteamS01 SteamVent
3778      End
3779      
3780          ;-------------------------------------------------------------------------------------------------------------------------
3781          ; NIGHT SNOW
3782      ConditionState = NIGHT SNOW ; from underground to lying around
3783        Model         = UBScudStrm_A1NS
3784        Animation     = UBScudStrm_A1NS.UBScudStrm_A1NS
3785        AnimationMode = MANUAL
3786        Flags         = START_FRAME_FIRST
3787        WeaponLaunchBone = PRIMARY WeaponA
3788        ShowSubObject = WeaponA01 WeaponA02 WeaponA03 WeaponA04 WeaponA05 WeaponA06 WeaponA07 WeaponA08 WeaponA09 
3789        TransitionKey = Trans_READY_NIGHTSNOW
3790  
3791        ParticleSysBone      = SteamM01 SteamLarge
3792        ParticleSysBone      = SteamS01 SteamMedium
3793      End
3794  
3795      TransitionState = Trans_READY_NIGHTSNOW Trans_ATTACKING_NIGHTSNOW
3796        Model         = UBScudStrm_A1NS
3797        Animation     = UBScudStrm_A1NS.UBScudStrm_A1NS
3798        AnimationMode = ONCE
3799        Flags         = MAINTAIN_FRAME_ACROSS_STATES
3800        WeaponLaunchBone = PRIMARY WeaponA
3801  
3802        ParticleSysBone      = SteamM01 SteamLarge
3803        ParticleSysBone      = SteamS01 SteamMedium
3804  
3805        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3806        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3807        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3808      End
3809  
3810      ConditionState = ATTACKING NIGHT SNOW ; Projectile feedback code selectively hiding missiles as they shoot
3811        Model         = UBScudStrm_A2NS
3812        Animation     = UBScudStrm_A2NS.UBScudStrm_A2NS
3813        AnimationMode = MANUAL
3814        Flags         = START_FRAME_FIRST
3815        WeaponLaunchBone = PRIMARY WeaponA
3816        TransitionKey = Trans_ATTACKING_NIGHTSNOW
3817  
3818        ParticleSysBone      = SteamM01 SteamLarge
3819        ParticleSysBone      = SteamS01 SteamMedium
3820  
3821        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3822        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3823        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3824      End
3825      AliasConditionState = ATTACKING FIRING_A NIGHT SNOW
3826      AliasConditionState = ATTACKING BETWEEN_FIRING_SHOTS_A NIGHT SNOW
3827  
3828      TransitionState = Trans_ATTACKING_NIGHTSNOW Trans_READY_NIGHTSNOW ; empty arms going underground
3829        Model         = UBScudStrm_A3NS
3830        Animation     = UBScudStrm_A3NS.UBScudStrm_A3NS
3831        AnimationMode = ONCE
3832        Flags         = MAINTAIN_FRAME_ACROSS_STATES2
3833  
3834        ParticleSysBone      = SteamM01 SteamVent
3835        ParticleSysBone      = SteamS01 SteamVent
3836      End
3837  
3838      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW
3839        Model              = UBScudStrm
3840        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
3841      End
3842      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED NIGHT SNOW
3843        Model              = UBScudStrm_D
3844        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
3845      End
3846      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED NIGHT SNOW
3847        Model              = UBScudStrm_E
3848        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
3849      End
3850  
3851      ;-------------------------------------------------------------------------------------------------------------------------
3852      ConditionState = DAMAGED NIGHT SNOW
3853        Model         = UBScudStrm_DA1N
3854        Animation     = UBScudStrm_DA1N.UBScudStrm_DA1N
3855        AnimationMode = MANUAL
3856        Flags         = START_FRAME_FIRST
3857        WeaponLaunchBone = PRIMARY WeaponA
3858        ShowSubObject = WeaponA01 WeaponA02 WeaponA03 WeaponA04 WeaponA05 WeaponA06 WeaponA07 WeaponA08 WeaponA09 
3859        TransitionKey = Trans_READY_DAMAGED_NIGHTSNOW
3860  
3861        ParticleSysBone      = SteamM01 SteamLarge
3862        ParticleSysBone      = SteamS01 SteamMedium
3863      End
3864  
3865      TransitionState = Trans_READY_DAMAGED_NIGHTSNOW Trans_ATTACKING_DAMAGED_NIGHTSNOW
3866        Model         = UBScudStrm_DA1N
3867        Animation     = UBScudStrm_DA1N.UBScudStrm_DA1N
3868        AnimationMode = ONCE
3869        Flags         = MAINTAIN_FRAME_ACROSS_STATES
3870        WeaponLaunchBone = PRIMARY WeaponA
3871  
3872        ParticleSysBone      = SteamM01 SteamLarge
3873        ParticleSysBone      = SteamS01 SteamMedium
3874  
3875        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3876        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3877        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3878      End
3879  
3880      ConditionState = ATTACKING DAMAGED NIGHT SNOW
3881        Model         = UBScudStrm_DA2N
3882        Animation     = UBScudStrm_DA2N.UBScudStrm_DA2N
3883        AnimationMode = MANUAL
3884        Flags         = START_FRAME_FIRST
3885        WeaponLaunchBone = PRIMARY WeaponA
3886        TransitionKey = Trans_ATTACKING_DAMAGED_NIGHTSNOW
3887  
3888        ParticleSysBone      = SteamM01 SteamLarge
3889        ParticleSysBone      = SteamS01 SteamMedium
3890  
3891        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3892        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3893        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3894      End
3895      AliasConditionState = ATTACKING FIRING_A NIGHT DAMAGED SNOW
3896      AliasConditionState = ATTACKING BETWEEN_FIRING_SHOTS_A NIGHT DAMAGED SNOW
3897  
3898      TransitionState = Trans_ATTACKING_DAMAGED_NIGHTSNOW Trans_READY_DAMAGED_NIGHTSNOW
3899        Model         = UBScudStrm_DA3N
3900        Animation     = UBScudStrm_DA3N.UBScudStrm_DA3N
3901        AnimationMode = ONCE
3902        Flags         = MAINTAIN_FRAME_ACROSS_STATES2
3903  
3904        ParticleSysBone      = SteamM01 SteamVent
3905        ParticleSysBone      = SteamS01 SteamVent
3906      End
3907         
3908      ;-------------------------------------------------------------------------------------------------------------------------
3909      
3910      ConditionState = REALLYDAMAGED RUBBLE NIGHT SNOW
3911        Model         = UBScudStrm_EA1N
3912        Animation     = UBScudStrm_EA1N.UBScudStrm_EA1N
3913        AnimationMode = MANUAL
3914        Flags         = START_FRAME_FIRST
3915        WeaponLaunchBone = PRIMARY WeaponA
3916        ShowSubObject = WeaponA01 WeaponA02 WeaponA03 WeaponA04 WeaponA05 WeaponA06 WeaponA07 WeaponA08 WeaponA09 
3917        TransitionKey = Trans_READY_REALLYDAMAGED_NIGHTSNOW
3918  
3919        ParticleSysBone      = SteamM01 SteamLarge
3920        ParticleSysBone      = SteamS01 SteamMedium
3921      End
3922  
3923      TransitionState = Trans_READY_REALLYDAMAGED_NIGHTSNOW Trans_ATTACKING_REALLYDAMAGED_NIGHTSNOW
3924        Model         = UBScudStrm_EA1N
3925        Animation     = UBScudStrm_EA1N.UBScudStrm_EA1N
3926        AnimationMode = ONCE
3927        Flags         = MAINTAIN_FRAME_ACROSS_STATES
3928        WeaponLaunchBone = PRIMARY WeaponA
3929  
3930        ParticleSysBone      = SteamM01 SteamLarge
3931        ParticleSysBone      = SteamS01 SteamMedium
3932  
3933        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3934        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3935        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3936      End
3937  
3938  
3939      ConditionState = ATTACKING REALLYDAMAGED RUBBLE NIGHT SNOW
3940        Model         = UBScudStrm_EA2N
3941        Animation     = UBScudStrm_EA2N.UBScudStrm_EA2N
3942        AnimationMode = MANUAL
3943        Flags         = START_FRAME_FIRST
3944        WeaponLaunchBone = PRIMARY WeaponA
3945        TransitionKey = Trans_ATTACKING_REALLYDAMAGED_NIGHTSNOW
3946  
3947        ParticleSysBone      = SteamM01 SteamLarge
3948        ParticleSysBone      = SteamS01 SteamMedium
3949  
3950        ParticleSysBone      = FXBone01 ScudStormBuildingGoo
3951        ParticleSysBone      = FXBone02 ScudStormBuildingGoo
3952        ParticleSysBone      = FXBone03 ScudStormBuildingGoo
3953      End
3954      AliasConditionState = ATTACKING FIRING_A NIGHT REALLYDAMAGED RUBBLE SNOW
3955      AliasConditionState = ATTACKING BETWEEN_FIRING_SHOTS_A NIGHT REALLYDAMAGED RUBBLE SNOW
3956  
3957      TransitionState = Trans_ATTACKING_REALLYDAMAGED_NIGHTSNOW Trans_READY_REALLYDAMAGED_NIGHTSNOW
3958        Model         = UBScudStrm_EA3N
3959        Animation     = UBScudStrm_EA3N.UBScudStrm_EA3N
3960        AnimationMode = ONCE
3961        Flags         = MAINTAIN_FRAME_ACROSS_STATES2
3962  
3963        ParticleSysBone      = SteamM01 SteamVent
3964        ParticleSysBone      = SteamS01 SteamVent
3965      End
3966      
3967      
3968      ConditionState       = SOLD
3969        Model              = NONE
3970      End    
3971      AliasConditionState       = SOLD DAMAGED
3972      AliasConditionState       = SOLD REALLYDAMAGED
3973      AliasConditionState       = SOLD SNOW
3974      AliasConditionState       = SOLD DAMAGED SNOW
3975      AliasConditionState       = SOLD REALLYDAMAGED SNOW
3976      AliasConditionState       = SOLD NIGHT
3977      AliasConditionState       = SOLD DAMAGED NIGHT
3978      AliasConditionState       = SOLD REALLYDAMAGED NIGHT
3979      AliasConditionState       = SOLD NIGHT SNOW
3980      AliasConditionState       = SOLD DAMAGED NIGHT SNOW
3981      AliasConditionState       = SOLD REALLYDAMAGED NIGHT SNOW
3982    End
3983  
3984      ;-------------------------------------------------------------------------------------------------------------------------
3985      ;-------------------------------------------------------------------------------------------------------------------------
3986      ;-------------------------------------------------------------------------------------------------------------------------
3987    Draw = W3DModelDraw ModuleTag_02
3988      OkToChangeModelColor = Yes
3989    
3990      ConditionState = None
3991        Model         = UBScudStrm_A5
3992        Animation     = UBScudStrm_A5.UBScudStrm_A5
3993        AnimationMode = MANUAL
3994        Flags         = START_FRAME_FIRST
3995      End
3996  
3997      ConditionState       = SOLD
3998        Model              = NONE
3999      End    
4000      ConditionState       = SOLD SNOW
4001         Model             = NONE
4002      End   
4003      ConditionState       = SOLD NIGHT
4004         Model             = NONE
4005      End    
4006      ConditionState       = SOLD NIGHT SNOW
4007         Model             = NONE
4008      End  
4009    
4010      ConditionState = PREATTACK_A ATTACKING
4011        Model         = UBScudStrm_A5
4012        Animation     = UBScudStrm_A5.UBScudStrm_A5
4013        AnimationMode = LOOP
4014        Flags         = START_FRAME_FIRST
4015      End
4016  
4017      ConditionState = ATTACKING
4018        Model         = UBScudStrm_A5
4019        Animation     = UBScudStrm_A5.UBScudStrm_A5
4020        AnimationMode = LOOP
4021        Flags         = START_FRAME_FIRST
4022      End
4023      
4024      ;These assets are missing (KM: removed to get rid of assert)
4025      ;ConditionState =  DAMAGED
4026      ;  Model         = UBScudStrm_DA5
4027      ;  Animation     = UBScudStrm_DA5.UBScudStrm_DA5
4028      ;  AnimationMode = MANUAL
4029      ;  Flags         = START_FRAME_FIRST
4030      ;End
4031  
4032      ;These assets are missing (KM: removed to get rid of assert)
4033      ;ConditionState = PREATTACK_A ATTACKING DAMAGED
4034      ;  Model         = UBScudStrm_DA5
4035      ;  Animation     = UBScudStrm_DA5.UBScudStrm_DA5
4036      ;  AnimationMode = LOOP
4037      ;  Flags         = START_FRAME_FIRST
4038      ;End
4039  
4040      ;These assets are missing (KM: removed to get rid of assert)
4041      ;ConditionState = ATTACKING DAMAGED
4042      ;  Model         = UBScudStrm_DA5
4043      ;  Animation     = UBScudStrm_DA5.UBScudStrm_DA5
4044      ;  AnimationMode = LOOP
4045      ;  Flags         = START_FRAME_FIRST
4046      ;End
4047      
4048      ;These assets are missing (KM: removed to get rid of assert)
4049      ;ConditionState =  REALLYDAMAGED
4050      ;  Model         = UBScudStrm_EA5
4051      ;  Animation     = UBScudStrm_EA5.UBScudStrm_EA5
4052      ;  AnimationMode = MANUAL
4053      ;  Flags         = START_FRAME_FIRST
4054      ;End
4055  
4056      ;These assets are missing (KM: removed to get rid of assert)
4057      ;ConditionState = PREATTACK_A ATTACKING REALLYDAMAGED
4058      ;  Model         = UBScudStrm_EA5
4059      ;  Animation     = UBScudStrm_EA5.UBScudStrm_EA5
4060      ;  AnimationMode = LOOP
4061      ;  Flags         = START_FRAME_FIRST
4062      ;End
4063  
4064      ;These assets are missing (KM: removed to get rid of assert)
4065      ;ConditionState = ATTACKING REALLYDAMAGED
4066      ;  Model         = UBScudStrm_EA5
4067      ;  Animation     = UBScudStrm_EA5.UBScudStrm_EA5
4068      ;  AnimationMode = LOOP
4069      ;  Flags         = START_FRAME_FIRST
4070      ;End
4071      
4072    End
4073  
4074    Draw = W3DModelDraw ModuleTag_03
4075      OkToChangeModelColor = Yes
4076    
4077      ConditionState = None
4078        Model         = UBScudStrm_A6
4079        Animation     = UBScudStrm_A6.UBScudStrm_A6
4080        AnimationMode = LOOP
4081        Flags         = MAINTAIN_FRAME_ACROSS_STATES
4082      End
4083      
4084      ConditionState =  DAMAGED
4085        Model         = UBScudStrm_DA6
4086        Animation     = UBScudStrm_DA6.UBScudStrm_DA6
4087        AnimationMode = LOOP
4088        Flags         = MAINTAIN_FRAME_ACROSS_STATES
4089      End
4090      
4091      ConditionState =  REALLYDAMAGED RUBBLE
4092        Model         = UBScudStrm_EA6
4093        Animation     = UBScudStrm_EA6.UBScudStrm_EA6
4094        AnimationMode = LOOP
4095        Flags         = MAINTAIN_FRAME_ACROSS_STATES
4096      End
4097      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
4098        Model              = UBScudStrm_A6
4099        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
4100      End
4101      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
4102  
4103        Model              = UBScudStrm_DA6
4104        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
4105      End
4106      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED RUBBLE
4107        Model              = UBScudStrm_EA6
4108        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
4109      End
4110  
4111      ConditionState       = SOLD
4112        Model              = NONE
4113      End    
4114      ConditionState       = SOLD SNOW
4115         Model             = NONE
4116      End   
4117      ConditionState       = SOLD NIGHT
4118         Model             = NONE
4119      End    
4120      ConditionState       = SOLD NIGHT SNOW
4121         Model             = NONE
4122      End  
4123      
4124    End
4125  
4126    Draw = W3DModelDraw ModuleTag_04
4127      OkToChangeModelColor = Yes
4128    
4129      ConditionState = None
4130        Model         = UBScudStrm_F
4131        Animation     = UBScudStrm_F.UBScudStrm_F
4132        AnimationMode = LOOP
4133        Flags         = MAINTAIN_FRAME_ACROSS_STATES
4134      End
4135      
4136      ConditionState =  DAMAGED
4137        Model         = UBScudStrm_DF
4138        Animation     = UBScudStrm_DF.UBScudStrm_DF
4139        AnimationMode = LOOP
4140        Flags         = MAINTAIN_FRAME_ACROSS_STATES
4141      End
4142      
4143      ConditionState =  REALLYDAMAGED RUBBLE
4144        Model         = UBScudStrm_EF
4145        Animation     = UBScudStrm_EF.UBScudStrm_EF
4146        AnimationMode = LOOP
4147        Flags         = MAINTAIN_FRAME_ACROSS_STATES
4148      End
4149      
4150      ConditionState       = SOLD
4151        Model              = NONE
4152      End    
4153      AliasConditionState       = SOLD DAMAGED
4154      AliasConditionState       = SOLD REALLYDAMAGED
4155      AliasConditionState       = SOLD SNOW
4156      AliasConditionState       = SOLD DAMAGED SNOW
4157      AliasConditionState       = SOLD REALLYDAMAGED SNOW
4158      AliasConditionState       = SOLD NIGHT
4159      AliasConditionState       = SOLD DAMAGED NIGHT
4160      AliasConditionState       = SOLD REALLYDAMAGED NIGHT
4161      AliasConditionState       = SOLD NIGHT SNOW
4162      AliasConditionState       = SOLD DAMAGED NIGHT SNOW
4163      AliasConditionState       = SOLD REALLYDAMAGED NIGHT SNOW
4164    End
4165     
4166    ; ------------ construction-zone fence -----------------
4167    Draw = W3DModelDraw ModuleTag_05
4168    AnimationsRequirePower = No
4169      DefaultConditionState
4170        Model           = None
4171        TransitionKey   = DOWN_DEFAULT
4172      End
4173      ConditionState    = NIGHT
4174        Model           = None
4175        TransitionKey   = DOWN_DEFAULT
4176      End
4177      ConditionState    = SNOW
4178        Model           = None
4179        TransitionKey   = DOWN_DEFAULT
4180      End
4181      ConditionState    = SNOW NIGHT
4182        Model           = None
4183        TransitionKey   = DOWN_DEFAULT
4184      End
4185      ConditionState    = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
4186        Model           = UBScudStrm_AB
4187        Animation       = UBScudStrm_AB.UBScudStrm_AB
4188        AnimationMode   = MANUAL
4189        Flags           = START_FRAME_LAST
4190        TransitionKey   = UP_DAY
4191      End
4192      ConditionState    = NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
4193        Model           = UBScudStrm_ABN
4194        Animation       = UBScudStrm_ABN.UBScudStrm_ABN
4195        AnimationMode   = MANUAL
4196        Flags           = START_FRAME_LAST
4197        TransitionKey   = UP_NIGHT
4198      End
4199      ConditionState    = SNOW AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
4200        Model           = UBScudStrm_ABS
4201        Animation       = UBScudStrm_ABS.UBScudStrm_ABS
4202        AnimationMode   = MANUAL
4203        Flags           = START_FRAME_LAST
4204        TransitionKey   = UP_SNOW
4205      End
4206      ConditionState    = SNOW NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
4207        Model           = UBScudStrm_ABSN
4208        Animation       = UBScudStrm_ABSN.UBScudStrm_ABSN
4209        AnimationMode   = MANUAL
4210        Flags           = START_FRAME_LAST
4211        TransitionKey   = UP_SNOWNIGHT
4212      End
4213      TransitionState   = DOWN_DEFAULT UP_DAY
4214        Model           = UBScudStrm_AB
4215        Animation       = UBScudStrm_AB.UBScudStrm_AB
4216        AnimationMode   = ONCE
4217        AnimationSpeedFactorRange = 1.0 1.0
4218        Flags           = START_FRAME_FIRST
4219      End
4220      TransitionState   = DOWN_DEFAULT UP_NIGHT
4221        Model           = UBScudStrm_ABN
4222        Animation       = UBScudStrm_ABN.UBScudStrm_ABN
4223        AnimationMode   = ONCE
4224        AnimationSpeedFactorRange = 1.0 1.0
4225        Flags           = START_FRAME_FIRST
4226      End
4227      TransitionState   = DOWN_DEFAULT UP_SNOW
4228        Model           = UBScudStrm_ABS
4229        Animation       = UBScudStrm_ABS.UBScudStrm_ABS
4230        AnimationMode   = ONCE
4231        AnimationSpeedFactorRange = 1.0 1.0
4232        Flags           = START_FRAME_FIRST
4233      End
4234      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
4235        Model           = UBScudStrm_ABSN
4236        Animation       = UBScudStrm_ABSN.UBScudStrm_ABSN
4237        AnimationMode   = ONCE
4238        AnimationSpeedFactorRange = 1.0 1.0
4239        Flags           = START_FRAME_FIRST
4240      End
4241      TransitionState   = UP_DAY DOWN_DEFAULT
4242        Model           = UBScudStrm_AB
4243        Animation       = UBScudStrm_AB.UBScudStrm_AB
4244        AnimationMode   = ONCE_BACKWARDS
4245        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
4246        Flags           = START_FRAME_LAST
4247      End
4248      TransitionState   = UP_NIGHT DOWN_DEFAULT
4249        Model           = UBScudStrm_ABN
4250        Animation       = UBScudStrm_ABN.UBScudStrm_ABN
4251        AnimationMode   = ONCE_BACKWARDS
4252        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
4253        Flags           = START_FRAME_LAST
4254      End
4255      TransitionState   = UP_SNOW DOWN_DEFAULT
4256        Model           = UBScudStrm_ABS
4257        Animation       = UBScudStrm_ABS.UBScudStrm_ABS
4258        AnimationMode   = ONCE_BACKWARDS
4259        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
4260        Flags           = START_FRAME_LAST
4261      End
4262      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
4263        Model           = UBScudStrm_ABSN
4264        Animation       = UBScudStrm_ABSN.UBScudStrm_ABSN
4265        AnimationMode   = ONCE_BACKWARDS
4266        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
4267        Flags           = START_FRAME_LAST
4268      End
4269    End
4270  
4271    ; ------------ under-construction scaffolding -----------------
4272    Draw = W3DModelDraw ModuleTag_06
4273    AnimationsRequirePower = No
4274      MinLODRequired = MEDIUM
4275      DefaultConditionState
4276        Model           = None
4277        TransitionKey   = DOWN_DEFAULT
4278      End
4279      ConditionState    = NIGHT
4280        Model           = None
4281        TransitionKey   = DOWN_DEFAULT
4282      End
4283      ConditionState    = SNOW
4284        Model           = None
4285        TransitionKey   = DOWN_DEFAULT
4286      End
4287      ConditionState    = SNOW NIGHT
4288        Model           = None
4289        TransitionKey   = DOWN_DEFAULT
4290      End
4291      ConditionState    = PARTIALLY_CONSTRUCTED
4292        Model           = UBScudStrm_AC
4293        Animation       = UBScudStrm_AC.UBScudStrm_AC
4294        AnimationMode   = MANUAL
4295        Flags           = START_FRAME_LAST
4296        TransitionKey   = UP_DAY
4297        ParticleSysBone = Dust01 BuildingDust
4298        ParticleSysBone = Smoke01 BuildUpSmoke
4299        ParticleSysBone = Smoke02 BuildUpSmoke
4300        ParticleSysBone = Smoke03 BuildUpSmoke
4301        ParticleSysBone = Smoke04 BuildUpSmoke
4302      End
4303      ConditionState    = NIGHT PARTIALLY_CONSTRUCTED
4304        Model           = UBScudStrm_ACN
4305        Animation       = UBScudStrm_ACN.UBScudStrm_ACN
4306        AnimationMode   = MANUAL
4307        Flags           = START_FRAME_LAST
4308        TransitionKey   = UP_NIGHT
4309        ParticleSysBone = Dust01 BuildingDust
4310        ParticleSysBone = Smoke01 BuildUpSmoke
4311        ParticleSysBone = Smoke02 BuildUpSmoke
4312        ParticleSysBone = Smoke03 BuildUpSmoke
4313        ParticleSysBone = Smoke04 BuildUpSmoke
4314      End    
4315      ConditionState    = SNOW PARTIALLY_CONSTRUCTED
4316        Model           = UBScudStrm_ACS
4317        Animation       = UBScudStrm_ACS.UBScudStrm_ACS
4318        AnimationMode   = MANUAL
4319        Flags           = START_FRAME_LAST
4320        TransitionKey   = UP_SNOW
4321        ParticleSysBone = Dust01 BuildingSnowDust
4322        ParticleSysBone = Smoke01 BuildUpSnowSmoke
4323        ParticleSysBone = Smoke02 BuildUpSnowSmoke
4324        ParticleSysBone = Smoke03 BuildUpSnowSmoke
4325        ParticleSysBone = Smoke04 BuildUpSnowSmoke
4326      End   
4327      ConditionState    = SNOW NIGHT PARTIALLY_CONSTRUCTED
4328        Model           = UBScudStrm_ACSN
4329        Animation       = UBScudStrm_ACSN.UBScudStrm_ACSN
4330        AnimationMode   = MANUAL
4331        Flags           = START_FRAME_LAST
4332        TransitionKey   = UP_SNOWNIGHT
4333        ParticleSysBone = Dust01 BuildingNightSnowDust
4334        ParticleSysBone = Smoke01 BuildUpNightSnowSmoke
4335        ParticleSysBone = Smoke02 BuildUpNightSnowSmoke
4336        ParticleSysBone = Smoke03 BuildUpNightSnowSmoke
4337        ParticleSysBone = Smoke04 BuildUpNightSnowSmoke
4338      End 
4339      TransitionState   = DOWN_DEFAULT UP_DAY
4340       Model            = UBScudStrm_AC
4341        Animation       = UBScudStrm_AC.UBScudStrm_AC
4342        AnimationMode   = ONCE
4343        AnimationSpeedFactorRange = 1.0 1.0
4344        Flags           = START_FRAME_FIRST
4345      End
4346      TransitionState   = DOWN_DEFAULT UP_NIGHT
4347       Model            = UBScudStrm_ACN
4348        Animation       = UBScudStrm_ACN.UBScudStrm_ACN
4349        AnimationMode   = ONCE
4350        AnimationSpeedFactorRange = 1.0 1.0
4351        Flags           = START_FRAME_FIRST
4352      End
4353      TransitionState   = DOWN_DEFAULT UP_SNOW
4354       Model            = UBScudStrm_ACS
4355        Animation       = UBScudStrm_ACS.UBScudStrm_ACS
4356        AnimationMode   = ONCE
4357        AnimationSpeedFactorRange = 1.0 1.0
4358        Flags           = START_FRAME_FIRST
4359      End
4360      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
4361       Model            = UBScudStrm_ACSN
4362        Animation       = UBScudStrm_ACSN.UBScudStrm_ACSN
4363        AnimationMode   = ONCE
4364        AnimationSpeedFactorRange = 1.0 1.0
4365        Flags           = START_FRAME_FIRST
4366      End
4367      TransitionState   = UP_DAY DOWN_DEFAULT
4368        Model           = UBScudStrm_AC
4369        Animation       = UBScudStrm_AC.UBScudStrm_AC
4370        AnimationMode   = ONCE_BACKWARDS
4371        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
4372        Flags           = START_FRAME_LAST
4373      End
4374      TransitionState   = UP_NIGHT DOWN_DEFAULT
4375        Model           = UBScudStrm_ACN
4376        Animation       = UBScudStrm_ACN.UBScudStrm_ACN
4377        AnimationMode   = ONCE_BACKWARDS
4378        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
4379        Flags           = START_FRAME_LAST
4380      End
4381      TransitionState   = UP_SNOW DOWN_DEFAULT
4382        Model           = UBScudStrm_ACS
4383        Animation       = UBScudStrm_ACS.UBScudStrm_ACS
4384        AnimationMode   = ONCE_BACKWARDS
4385        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
4386        Flags           = START_FRAME_LAST
4387      End
4388      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
4389        Model           = UBScudStrm_ACSN
4390        Animation       = UBScudStrm_ACSN.UBScudStrm_ACSN
4391        AnimationMode   = ONCE_BACKWARDS
4392        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
4393        Flags           = START_FRAME_LAST
4394      End
4395    End
4396  
4397    PlacementViewAngle = -45
4398  
4399    ; ***DESIGN parameters ***
4400    DisplayName      = OBJECT:ScudStorm
4401    Side = GLADemolitionGeneral
4402    EditorSorting    = STRUCTURE
4403    Prerequisites
4404      Object = Demo_GLAPalace
4405    End
4406    BuildCost        = 5000
4407    BuildTime        = 60.0           ; in seconds
4408    EnergyProduction = 0
4409    CommandSet       = Demo_GLAScudStormCommandSet
4410    VisionRange     = 200.0           ; Shroud clearing distance
4411    ShroudClearingRange = 200
4412    ShroudRevealToAllRange = 60  ; Reveals shroud to all players at a specific amount which can be different. 
4413                                 ; Using same value? Then use KINDOF_REVEAL_TO_ALL instead!
4414    WeaponSet
4415      Conditions = None 
4416      Weapon = PRIMARY Demo_ScudStormWeapon
4417      AutoChooseSources = PRIMARY NONE
4418    End
4419    ArmorSet
4420      Conditions      = None
4421      Armor           = StructureArmorTough
4422      DamageFX        = StructureDamageFXNoShake
4423    End
4424    ExperienceValue     = 400 400 400 400  ; Experience point value at each level
4425    MaxSimultaneousOfType = DeterminedBySuperweaponRestriction ; Normally unlimited, but can be selected by players in multiplayer games
4426    MaxSimultaneousLinkKey = Superweapon  ; Count all superweapons **AND THE GLA SCUD STORM REBUILD HOLE** as one "type" for MaxSimultaneousOfType
4427  
4428    ; *** AUDIO Parameters ***
4429    VoiceSelect = ScudStormSelect
4430    SoundOnDamaged        = BuildingDamagedStateLight
4431    SoundOnReallyDamaged  = BuildingDestroy
4432  
4433    UnitSpecificSounds
4434      UnderConstruction     = UnderConstructionLoop
4435    End
4436  
4437    UnitSpecificSounds
4438    ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
4439      TurretMoveStart = NoSound
4440      TurretMoveLoop = NoSound ;These aren't playing properly, will revisit (mp) TurretMoveLoopLoud
4441    End
4442  
4443    ; *** ENGINEERING Parameters ***
4444    RadarPriority   = STRUCTURE
4445    KindOf          = PRELOAD STRUCTURE SELECTABLE IMMOBILE CAPTURABLE FS_TECHNOLOGY MP_COUNT_FOR_VICTORY SCORE_CREATE FS_SUPERWEAPON
4446    Body            = StructureBody ModuleTag_07
4447      MaxHealth       = 4000.0
4448      InitialHealth   = 4000.0
4449  
4450      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
4451      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
4452      SubdualDamageCap = 4200
4453      SubdualDamageHealRate = 500
4454      SubdualDamageHealAmount = 100
4455    End
4456    Behavior        = RebuildHoleExposeDie ModuleTag_08
4457      HoleName      = GLAHoleScudStorm
4458      HoleMaxHealth = 500.0
4459    End 
4460  
4461    Behavior = AIUpdateInterface ModuleTag_09
4462    End
4463  
4464    Behavior    = OCLSpecialPower ModuleTag_10
4465      SpecialPowerTemplate = SuperweaponScudStorm
4466      OCL                  = SUPERWEAPON_ScudStorm
4467    End
4468    Behavior = SpecialPowerCreate ModuleTag_11
4469      ;nothing
4470    End
4471  
4472    Behavior = DestroyDie ModuleTag_12
4473      ;nothing
4474    End
4475    Behavior        = CreateObjectDie ModuleTag_13
4476      CreationList  = OCL_PoisonFieldMedium
4477      ExemptStatus  = UNDER_CONSTRUCTION
4478    End
4479    Behavior        = FXListDie ModuleTag_14
4480      DeathFX       = WeaponFX_BombTruckHighExplosiveBioBombDetonation
4481      ExemptStatus  = UNDER_CONSTRUCTION
4482    End
4483  
4484    Behavior = FlammableUpdate ModuleTag_16
4485      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
4486      AflameDamageAmount = 5       ; taking this much damage...
4487      AflameDamageDelay = 500       ; this often.
4488    End
4489  
4490    Behavior = RadiusDecalUpdate ModuleTag_17
4491      ; nothing
4492    End
4493  
4494    Behavior = TransitionDamageFX ModuleTag_18
4495      ;-------------DESIGNED FOR MEDIUM SIZED FACTION BUILDING TRANSITIONS-------------------
4496      DamagedParticleSystem1       = Bone:None RandomBone:No PSys:StructureTransitionMediumSmoke
4497      ;---------------------------------------------------------------------------------------
4498      ReallyDamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionMediumSmoke
4499      ReallyDamagedParticleSystem2 = Bone:None RandomBone:No PSys:StructureTransitionMediumExplosion
4500      ReallyDamagedParticleSystem3 = Bone:None RandomBone:No PSys:StructureTransitionMediumShockwave
4501    End
4502  
4503    Behavior        = FXListDie ModuleTag_19
4504      DeathFX       = FX_BuildingDie
4505    End
4506  
4507    Geometry            = BOX
4508    GeometryMajorRadius = 71.0
4509    GeometryMinorRadius = 67.0
4510    GeometryHeight      = 25.0
4511    GeometryIsSmall     = No
4512    Shadow          = SHADOW_VOLUME
4513    BuildCompletion = PLACED_BY_PLAYER
4514  
4515  End
4516  
4517  
4518  
4519  ;------------------------------------------------------------------------------
4520  ;GLA Demo Trap
4521  
4522  Object Demo_GLADemoTrap
4523  
4524    ; *** ART Parameters ***
4525    SelectPortrait         = SUAdvDeTrap_L
4526    ButtonImage            = SUAdvDeTrap
4527    Draw = W3DModelDraw ModuleTag_01
4528      OkToChangeModelColor = Yes
4529      DefaultConditionState
4530        Model         = EXHideBombD
4531      End
4532      AliasConditionState = DAMAGED
4533      AliasConditionState = REALLYDAMAGED
4534      AliasConditionState = RUBBLE
4535      AliasConditionState = NIGHT
4536      AliasConditionState = SNOW
4537      AliasConditionState = NIGHT SNOW
4538      AliasConditionState = NIGHT DAMAGED
4539      AliasConditionState = SNOW DAMAGED
4540      AliasConditionState = NIGHT SNOW DAMAGED
4541      AliasConditionState = NIGHT REALLYDAMAGED RUBBLE
4542      AliasConditionState = SNOW REALLYDAMAGED RUBBLE
4543      AliasConditionState = NIGHT SNOW REALLYDAMAGED RUBBLE
4544      
4545      ;**************************************************************************************************************************
4546      ;This block handles every possible case with construction process, selling process, awaiting construction, and sold states
4547      ;for this draw module
4548      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
4549        Model              = EXHideBomb
4550        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
4551      End
4552      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT
4553      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW
4554      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW
4555      
4556      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
4557        Model              = EXHideBomb
4558        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
4559      End
4560      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED NIGHT
4561      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED SNOW
4562      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED NIGHT SNOW
4563      
4564      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED
4565        Model              = EXHideBomb
4566        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
4567      End
4568      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED NIGHT
4569      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED SNOW
4570      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED NIGHT SNOW
4571      
4572      ConditionState       = AWAITING_CONSTRUCTION 
4573        Model              = NONE
4574      End
4575      AliasConditionState  = AWAITING_CONSTRUCTION DAMAGED
4576      AliasConditionState  = AWAITING_CONSTRUCTION REALLYDAMAGED
4577      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT
4578      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT DAMAGED
4579      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT REALLYDAMAGED
4580      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW
4581      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW DAMAGED
4582      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW REALLYDAMAGED
4583      AliasConditionState  = SOLD DAMAGED
4584      AliasConditionState  = SOLD REALLYDAMAGED
4585      AliasConditionState  = SOLD NIGHT
4586      AliasConditionState  = SOLD NIGHT DAMAGED
4587      AliasConditionState  = SOLD NIGHT REALLYDAMAGED
4588      AliasConditionState  = SOLD NIGHT SNOW
4589      AliasConditionState  = SOLD NIGHT SNOW DAMAGED
4590      AliasConditionState  = SOLD NIGHT SNOW REALLYDAMAGED
4591      ;**************************************************************************************************************************
4592      
4593      
4594    End
4595    PlacementViewAngle = -45
4596  
4597    ; ***DESIGN parameters ***
4598    DisplayName      = OBJECT:Demo_DemoTrap
4599    Side             = GLADemolitionGeneral
4600    EditorSorting    = STRUCTURE
4601    Prerequisites 
4602      Object = Demo_GLASupplyStash
4603    End
4604    BuildCost        = 200
4605    BuildTime        = 3.0           ; in seconds
4606    EnergyProduction = 0
4607    VisionRange     = 150.0           ; Shroud clearing distance
4608    ShroudClearingRange     = 150.0           ; Shroud clearing distance
4609    ExperienceValue     = 50 50 50 50  ; Experience point value at each level
4610  
4611    WeaponSet
4612      ;The weapon set is used to determine detonation mode
4613      Conditions = None 
4614      Weapon = PRIMARY    DummyWeapon ;Used for mode matching only (when to detonate)
4615      Weapon = SECONDARY  DummyWeapon ;Used for mode matching only (when to detonate)
4616      Weapon = TERTIARY   DummyWeapon ;Used for mode matching only (when to detonate)
4617      AutoChooseSources = PRIMARY   NONE
4618      AutoChooseSources = SECONDARY NONE
4619      AutoChooseSources = TERTIARY  NONE
4620    End
4621    ArmorSet
4622      Conditions      = None
4623      Armor           = StructureArmor
4624      DamageFX        = DefaultDamageFX ; Too small for normal building FX, but if we do make dedicated one it should be silent
4625    End
4626  
4627    CommandSet = Demo_GLADemoTrapCommandSet
4628  
4629    ; *** AUDIO Parameters ***
4630    VoiceSelect = UndergroundGeneratorSelect
4631    SoundOnDamaged        = NoSound
4632    SoundOnReallyDamaged  = NoSound
4633  
4634    UnitSpecificSounds
4635      UnderConstruction     = UnderConstructionLoop
4636    End
4637  
4638    ; *** ENGINEERING Parameters ***
4639    RadarPriority   = STRUCTURE
4640    KindOf          = PRELOAD STRUCTURE SELECTABLE IMMOBILE IMMUNE_TO_CAPTURE DEMOTRAP
4641    Body            = StructureBody ModuleTag_02
4642      MaxHealth       = 100.0   
4643      InitialHealth   = 100.0
4644    End
4645  
4646    Behavior = StealthUpdate ModuleTag_03
4647      StealthDelay = 0 ; msec
4648      StealthForbiddenConditions = NONE
4649      FriendlyOpacityMin = 100.0%
4650      OrderIdleEnemiesToAttackMeUponReveal  = Yes
4651    End
4652  
4653    Behavior = DemoTrapUpdate ModuleTag_04
4654      DefaultProximityMode      = Yes       ;If yes, defaults to proximity mode, otherwise defaults to manual.
4655      DetonationWeaponSlot      = PRIMARY   ;The slot the weapon is in when it detonates.
4656      ProximityModeWeaponSlot   = SECONDARY ;The slot proximity mode is determined by (bogus weapon)
4657      ManualModeWeaponSlot      = TERTIARY  ;The slot manual mode is determined by (bogus weapon)
4658      TriggerDetonationRange    = 40.0      ;Detonation range when in proximity mode (and must be on ground)
4659      IgnoreTargetTypes         = PROJECTILE UNATTACKABLE
4660      AutoDetonationWithFriendsInvolved = Yes ;GLA are low tech 
4661  ;    DetonationWeapon          = DemoTrapDetonationWeapon
4662      DetonateWhenKilled        = Yes
4663    End
4664  
4665    Behavior = SlowDeathBehavior ModuleTag_05
4666      ExemptStatus = UNDER_CONSTRUCTION
4667      DestructionDelay = 1000
4668      FX = INITIAL FX_GLADemoTrapWarning
4669      Weapon = FINAL Demo_DemoTrapDetonationWeapon
4670    End
4671  
4672    Behavior = FlammableUpdate ModuleTag_07
4673      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
4674      AflameDamageAmount = 5       ; taking this much damage...
4675      AflameDamageDelay = 500       ; this often.
4676    End
4677  
4678    Behavior = InstantDeathBehavior ModuleTag_08
4679      ; if we are under construction, use this death instead
4680      RequiredStatus = UNDER_CONSTRUCTION
4681      ; no effect
4682    End
4683  
4684    BuildCompletion = PLACED_BY_PLAYER
4685    
4686    Shadow          = SHADOW_VOLUME
4687    Geometry = CYLINDER
4688    GeometryMajorRadius = 4.0
4689    GeometryHeight = 9    
4690    GeometryIsSmall = Yes 
4691  
4692  End
4693  
4694  ;------------------------------------------------------------------------------
4695  ObjectReskin Demo_GLAHoleDemoTrap Demo_GLAHole
4696    Draw                     = W3DModelDraw ModuleTag_01
4697      OkToChangeModelColor   = Yes
4698      ConditionState         = NONE
4699        Model                = UBHole
4700      End
4701      ConditionState         = DAMAGED
4702        Model                = UBHole_D
4703        ParticleSysBone      = Smoke01 SteamVent
4704      End
4705      ConditionState         = REALLYDAMAGED
4706        Model                = UBHole_E
4707        ParticleSysBone      = Smoke01 SteamVent
4708        ParticleSysBone      = Smoke02 SteamVent
4709        ParticleSysBone      = Fire01 GLAPowerPlantFlame
4710        ParticleSysBone      = Fire02 GLAPowerPlantFlame
4711        ParticleSysBone      = Fire03 GLAPowerPlantFlame
4712      End
4713    End
4714  ;Remove comments for this section and replace the model entries for the
4715  ;pristine, and damage/reallydamaged rubble around the GLA hole below
4716  ;  Draw                     = W3DModelDraw
4717  ;    OkToChangeModelColor   = Yes
4718  ;    ConditionState         = NONE
4719  ;      Model                = UBSupply_R
4720  ;    End
4721  ;    ConditionState         = DAMAGED REALLYDAMAGED
4722  ;      Model                = UBSupply_R
4723  ;    End
4724  ;  End
4725  End
4726  
4727  
4728  
4729  
4730  
4731  ; -----------------------------------------------------------------------------
4732  Object Demo_GLATunnelNetwork
4733  
4734    ; *** ART Parameters ***
4735    SelectPortrait         = SUTunnel_L
4736    ButtonImage            = SUTunnel
4737  
4738    ;UpgradeCameo1           = Upgrade_GLACamoNetting
4739    ;UpgradeCameo2           = NONE
4740    ;UpgradeCameo3           = NONE
4741    ;UpgradeCameo4           = NONE
4742    ;UpgradeCameo5           = NONE
4743  
4744    Draw = W3DModelDraw ModuleTag_01
4745      OkToChangeModelColor = Yes
4746      
4747      DefaultConditionState
4748        Model             = UBUndTunn
4749        Turret            = Turret01
4750        WeaponFireFXBone  = PRIMARY BarrelMS
4751        WeaponMuzzleFlash = PRIMARY BarrelFX
4752      End
4753      ConditionState      = DAMAGED
4754        Model             = UBUndTunn_D
4755      End
4756      ConditionState      = REALLYDAMAGED RUBBLE
4757        Model             = UBUndTunn_E
4758        ParticleSysBone   = Steam01 SteamVent
4759      End
4760      
4761      
4762      ConditionState      = SNOW
4763        Model             = UBUndTunn_S
4764      End
4765      ConditionState      = DAMAGED SNOW
4766        Model             = UBUndTunn_DS
4767      End
4768      ConditionState      = REALLYDAMAGED RUBBLE SNOW
4769        Model             = UBUndTunn_ES
4770        ParticleSysBone   = Steam01 SteamVent
4771      End
4772      
4773      
4774      
4775      
4776      ConditionState      = NIGHT
4777        Model             = UBUndTunn_N
4778      End
4779      ConditionState      = DAMAGED NIGHT
4780        Model             = UBUndTunn_DN
4781      End
4782      ConditionState      = REALLYDAMAGED RUBBLE NIGHT
4783        Model             = UBUndTunn_EN
4784        ParticleSysBone   = Steam01 SteamVent
4785      End
4786      
4787      
4788      ConditionState      = SNOW NIGHT
4789        Model             = UBUndTunn_NS
4790      End
4791      ConditionState      = DAMAGED SNOW NIGHT
4792        Model             = UBUndTunn_DNS
4793      End
4794      ConditionState      = REALLYDAMAGED RUBBLE SNOW NIGHT
4795        Model             = UBUndTunn_ENS
4796        ParticleSysBone   = Steam01 SteamVent
4797      End
4798  
4799      ;**************************************************************************************************************************
4800      ;This block handles every possible case with construction process, selling process, awaiting construction, and sold states
4801      ;for this draw module
4802      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
4803        Model              = UBUndTunn
4804        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
4805      End
4806      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
4807        Model              = UBUndTunn_D
4808        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
4809      End
4810      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED
4811        Model              = UBUndTunn_E
4812        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
4813      End
4814      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT
4815        Model              = UBUndTunn_N
4816        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
4817      End
4818      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT DAMAGED
4819        Model              = UBUndTunn_DN
4820        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
4821      End
4822      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT REALLYDAMAGED
4823        Model              = UBUndTunn_EN
4824        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
4825      End
4826      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW
4827        Model              = UBUndTunn_S
4828        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
4829      End
4830      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW DAMAGED
4831        Model              = UBUndTunn_DS
4832        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
4833      End
4834      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW REALLYDAMAGED
4835        Model              = UBUndTunn_ES
4836        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
4837      End
4838      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW
4839        Model              = UBUndTunn_NS
4840        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
4841      End
4842      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW DAMAGED
4843        Model              = UBUndTunn_DNS
4844        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
4845      End
4846      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW REALLYDAMAGED
4847        Model              = UBUndTunn_ENS
4848        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
4849      End
4850  
4851      ConditionState       = AWAITING_CONSTRUCTION 
4852        Model              = NONE
4853      End
4854      AliasConditionState  = AWAITING_CONSTRUCTION DAMAGED
4855      AliasConditionState  = AWAITING_CONSTRUCTION REALLYDAMAGED
4856      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT
4857      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT DAMAGED
4858      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT REALLYDAMAGED
4859      AliasConditionState  = AWAITING_CONSTRUCTION SNOW
4860      AliasConditionState  = AWAITING_CONSTRUCTION SNOW DAMAGED
4861      AliasConditionState  = AWAITING_CONSTRUCTION SNOW REALLYDAMAGED
4862      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW
4863      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW DAMAGED
4864      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW REALLYDAMAGED
4865      AliasConditionState  = SOLD 
4866      AliasConditionState  = SOLD DAMAGED
4867      AliasConditionState  = SOLD REALLYDAMAGED
4868      AliasConditionState  = SOLD NIGHT
4869      AliasConditionState  = SOLD NIGHT DAMAGED
4870      AliasConditionState  = SOLD NIGHT REALLYDAMAGED
4871      AliasConditionState  = SOLD SNOW
4872      AliasConditionState  = SOLD SNOW DAMAGED
4873      AliasConditionState  = SOLD SNOW REALLYDAMAGED
4874      AliasConditionState  = SOLD NIGHT SNOW
4875      AliasConditionState  = SOLD NIGHT SNOW DAMAGED
4876      AliasConditionState  = SOLD NIGHT SNOW REALLYDAMAGED
4877      ;**************************************************************************************************************************
4878      
4879    End
4880    
4881    ; ------------ construction-zone fence -----------------
4882    Draw = W3DModelDraw ModuleTag_02
4883    AnimationsRequirePower = No
4884      DefaultConditionState
4885        Model           = None
4886        TransitionKey   = DOWN_DEFAULT
4887      End
4888      ConditionState    = NIGHT
4889        Model           = None
4890        TransitionKey   = DOWN_DEFAULT
4891      End
4892      ConditionState    = SNOW
4893        Model           = None
4894        TransitionKey   = DOWN_DEFAULT
4895      End
4896      ConditionState    = SNOW NIGHT
4897        Model           = None
4898        TransitionKey   = DOWN_DEFAULT
4899      End
4900      ConditionState    = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
4901        Model           = UBUndTunn_A4
4902        Animation       = UBUndTunn_A4.UBUndTunn_A4
4903        AnimationMode   = MANUAL
4904        Flags           = START_FRAME_LAST
4905        TransitionKey   = UP_DAY
4906      End
4907      ConditionState    = NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
4908        Model           = UBUndTunn_A4N
4909        Animation       = UBUndTunn_A4N.UBUndTunn_A4N
4910        AnimationMode   = MANUAL
4911        Flags           = START_FRAME_LAST
4912        TransitionKey   = UP_NIGHT
4913      End
4914      ConditionState    = SNOW AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
4915        Model           = UBUndTunn_A4S
4916        Animation       = UBUndTunn_A4S.UBUndTunn_A4S
4917        AnimationMode   = MANUAL
4918        Flags           = START_FRAME_LAST
4919        TransitionKey   = UP_SNOW
4920      End
4921      ConditionState    = SNOW NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
4922        Model           = UBUndTunn_A4SN
4923        Animation       = UBUndTunn_A4SN.UBUndTunn_A4SN
4924        AnimationMode   = MANUAL
4925        Flags           = START_FRAME_LAST
4926        TransitionKey   = UP_SNOWNIGHT
4927      End
4928      TransitionState   = DOWN_DEFAULT UP_DAY
4929        Model           = UBUndTunn_A4
4930        Animation       = UBUndTunn_A4.UBUndTunn_A4
4931        AnimationMode   = ONCE
4932        AnimationSpeedFactorRange = 1.0 1.0
4933        Flags           = START_FRAME_FIRST
4934      End
4935      TransitionState   = DOWN_DEFAULT UP_NIGHT
4936        Model           = UBUndTunn_A4N
4937        Animation       = UBUndTunn_A4N.UBUndTunn_A4N
4938        AnimationMode   = ONCE
4939        AnimationSpeedFactorRange = 1.0 1.0
4940        Flags           = START_FRAME_FIRST
4941      End
4942      TransitionState   = DOWN_DEFAULT UP_SNOW
4943        Model           = UBUndTunn_A4S
4944        Animation       = UBUndTunn_A4S.UBUndTunn_A4S
4945        AnimationMode   = ONCE
4946        AnimationSpeedFactorRange = 1.0 1.0
4947        Flags           = START_FRAME_FIRST
4948      End
4949      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
4950        Model           = UBUndTunn_A4SN
4951        Animation       = UBUndTunn_A4SN.UBUndTunn_A4SN
4952        AnimationMode   = ONCE
4953        AnimationSpeedFactorRange = 1.0 1.0
4954        Flags           = START_FRAME_FIRST
4955      End
4956      TransitionState   = UP_DAY DOWN_DEFAULT
4957        Model           = UBUndTunn_A4
4958        Animation       = UBUndTunn_A4.UBUndTunn_A4
4959        AnimationMode   = ONCE_BACKWARDS
4960        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
4961        Flags           = START_FRAME_LAST
4962      End
4963      TransitionState   = UP_NIGHT DOWN_DEFAULT
4964        Model           = UBUndTunn_A4N
4965        Animation       = UBUndTunn_A4N.UBUndTunn_A4N
4966        AnimationMode   = ONCE_BACKWARDS
4967        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
4968        Flags           = START_FRAME_LAST
4969      End
4970      TransitionState   = UP_SNOW DOWN_DEFAULT
4971        Model           = UBUndTunn_A4S
4972        Animation       = UBUndTunn_A4S.UBUndTunn_A4S
4973        AnimationMode   = ONCE_BACKWARDS
4974        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
4975        Flags           = START_FRAME_LAST
4976      End
4977      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
4978        Model           = UBUndTunn_A4SN
4979        Animation       = UBUndTunn_A4SN.UBUndTunn_A4SN
4980        AnimationMode   = ONCE_BACKWARDS
4981        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
4982        Flags           = START_FRAME_LAST
4983      End
4984    End
4985  
4986    ; ------------ under-construction scaffolding -----------------
4987    Draw = W3DModelDraw ModuleTag_03
4988    AnimationsRequirePower = No
4989      DefaultConditionState
4990        Model           = None
4991        TransitionKey   = DOWN_DEFAULT
4992      End
4993      ConditionState    = NIGHT
4994        Model           = None
4995        TransitionKey   = DOWN_DEFAULT
4996      End
4997      ConditionState    = SNOW
4998        Model           = None
4999        TransitionKey   = DOWN_DEFAULT
5000      End
5001      ConditionState    = SNOW NIGHT
5002        Model           = None
5003        TransitionKey   = DOWN_DEFAULT
5004      End
5005      ConditionState    =  PARTIALLY_CONSTRUCTED 
5006        Model           = UBUndTunn_A6
5007        Animation       = UBUndTunn_A6.UBUndTunn_A6
5008        AnimationMode   = MANUAL
5009        Flags           = START_FRAME_LAST
5010        TransitionKey   = UP_DAY
5011      End
5012      ConditionState    = NIGHT  PARTIALLY_CONSTRUCTED 
5013        Model           = UBUndTunn_A6N
5014        Animation       = UBUndTunn_A6N.UBUndTunn_A6N
5015        AnimationMode   = MANUAL
5016        Flags           = START_FRAME_LAST
5017        TransitionKey   = UP_NIGHT
5018      End
5019      ConditionState    = SNOW  PARTIALLY_CONSTRUCTED 
5020        Model           = UBUndTunn_A6S
5021        Animation       = UBUndTunn_A6S.UBUndTunn_A6S
5022        AnimationMode   = MANUAL
5023        Flags           = START_FRAME_LAST
5024        TransitionKey   = UP_SNOW
5025      End
5026      ConditionState    = SNOW NIGHT  PARTIALLY_CONSTRUCTED 
5027        Model           = UBUndTunn_A6SN
5028        Animation       = UBUndTunn_A6SN.UBUndTunn_A6SN
5029        AnimationMode   = MANUAL
5030        Flags           = START_FRAME_LAST
5031        TransitionKey   = UP_SNOWNIGHT
5032      End
5033      TransitionState   = DOWN_DEFAULT UP_DAY
5034        Model           = UBUndTunn_A6
5035        Animation       = UBUndTunn_A6.UBUndTunn_A6
5036        AnimationMode   = ONCE
5037        AnimationSpeedFactorRange = 1.0 1.0
5038        Flags           = START_FRAME_FIRST
5039      End
5040      TransitionState   = DOWN_DEFAULT UP_NIGHT
5041        Model           = UBUndTunn_A6N
5042        Animation       = UBUndTunn_A6N.UBUndTunn_A6N
5043        AnimationMode   = ONCE
5044        AnimationSpeedFactorRange = 1.0 1.0
5045        Flags           = START_FRAME_FIRST
5046      End
5047      TransitionState   = DOWN_DEFAULT UP_SNOW
5048        Model           = UBUndTunn_A6S
5049        Animation       = UBUndTunn_A6S.UBUndTunn_A6S
5050        AnimationMode   = ONCE
5051        AnimationSpeedFactorRange = 1.0 1.0
5052        Flags           = START_FRAME_FIRST
5053      End
5054      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
5055        Model           = UBUndTunn_A6SN
5056        Animation       = UBUndTunn_A6SN.UBUndTunn_A6SN
5057        AnimationMode   = ONCE
5058        AnimationSpeedFactorRange = 1.0 1.0
5059        Flags           = START_FRAME_FIRST
5060      End
5061      TransitionState   = UP_DAY DOWN_DEFAULT
5062        Model           = UBUndTunn_A6
5063        Animation       = UBUndTunn_A6.UBUndTunn_A6
5064        AnimationMode   = ONCE_BACKWARDS
5065        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
5066        Flags           = START_FRAME_LAST
5067      End
5068      TransitionState   = UP_NIGHT DOWN_DEFAULT
5069        Model           = UBUndTunn_A6N
5070        Animation       = UBUndTunn_A6N.UBUndTunn_A6N
5071        AnimationMode   = ONCE_BACKWARDS
5072        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
5073        Flags           = START_FRAME_LAST
5074      End
5075      TransitionState   = UP_SNOW DOWN_DEFAULT
5076        Model           = UBUndTunn_A6S
5077        Animation       = UBUndTunn_A6S.UBUndTunn_A6S
5078        AnimationMode   = ONCE_BACKWARDS
5079        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
5080        Flags           = START_FRAME_LAST
5081      End
5082      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
5083        Model           = UBUndTunn_A6SN
5084        Animation       = UBUndTunn_A6SN.UBUndTunn_A6SN
5085        AnimationMode   = ONCE_BACKWARDS
5086        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
5087        Flags           = START_FRAME_LAST
5088      End
5089    End
5090  
5091    PlacementViewAngle = -135
5092  
5093    ; ***DESIGN parameters ***
5094    DisplayName      = OBJECT:TunnelNetwork
5095    Side = GLADemolitionGeneral
5096    EditorSorting    = STRUCTURE
5097    Prerequisites
5098      Object = Demo_GLABarracks
5099    End
5100    BuildCost        = 800
5101    RefundValue      = 100 ; With nothing (or zero) listed, we sell for half price. 
5102    BuildTime        = 5.0           ; in seconds
5103    EnergyProduction = 0
5104    VisionRange     = 200.0           ; Shroud clearing distance
5105    ShroudClearingRange = 200
5106    ArmorSet
5107      Conditions      = None
5108      Armor           = StructureArmor
5109      DamageFX        = StructureDamageFXNoShake
5110    End
5111    WeaponSet
5112      Conditions = None 
5113      Weapon = PRIMARY TunnelNetworkGun
5114      Weapon = SECONDARY None
5115      Weapon = TERTIARY TerroristSuicideNotARealWeapon
5116      AutoChooseSources = TERTIARY NONE
5117    End
5118  
5119    CommandSet       = Demo_GLATunnelNetworkCommandSet
5120    ExperienceValue     = 100 100 100 100  ; Experience point value at each level
5121  
5122    ; *** AUDIO Parameters ***
5123    VoiceSelect = TunnelNetworkSelect
5124    SoundOnDamaged        = BuildingDamagedStateLight
5125    SoundOnReallyDamaged  = BuildingDestroy
5126    SoundEnter = GarrisonEnter
5127    SoundExit = GarrisonExit
5128  
5129    UnitSpecificSounds
5130      UnderConstruction     = UnderConstructionLoop
5131      TurretMoveLoop        = NoSound
5132    End
5133  
5134    ; *** ENGINEERING Parameters ***
5135    RadarPriority   = STRUCTURE
5136    KindOf          = PRELOAD STRUCTURE SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT IMMOBILE FS_BASE_DEFENSE IMMUNE_TO_CAPTURE SCORE_CREATE AUTO_RALLYPOINT
5137    Body            = StructureBody ModuleTag_04
5138      MaxHealth       = 1000.0
5139      InitialHealth   = 1000.0
5140  
5141      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
5142      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
5143      SubdualDamageCap = 1200
5144      SubdualDamageHealRate = 500
5145      SubdualDamageHealAmount = 100
5146    End
5147  
5148    Behavior = StealthDetectorUpdate ModuleTag_13
5149      DetectionRate     = 500   ; how often to rescan for stealthed things in my sight (msec)
5150      DetectionRange   = 150   ;Dustin, enable this for independant balancing!
5151      CanDetectWhileGarrisoned  = No ;Garrisoned means being in a structure that you units can shoot out of.
5152      CanDetectWhileContained   = No ;Contained means being in a transport or tunnel network.
5153    End
5154  
5155    Behavior = AIUpdateInterface ModuleTag_16
5156      Turret
5157        TurretTurnRate        = 180   // turn rate, in degrees per sec
5158        ControlledWeaponSlots = PRIMARY
5159      End
5160  
5161      AutoAcquireEnemiesWhenIdle = Yes Stealthed; defensive weapon
5162    End
5163  
5164    Behavior = TunnelContain ModuleTag_05
5165      TimeForFullHeal     = 5000   ;(in milliseconds)
5166    End
5167  
5168    ;Kris: Removed this module from because units exiting the container would extract information 
5169    ;from the wrong exit interface. And we don't appear to need it for the spawns because they
5170    ;use OpenContain instead.
5171    ;Behavior = DefaultProductionExitUpdate ModuleTag_06
5172    ;  UnitCreatePoint   = X:  5.0  Y:  0.0   Z:0.0
5173    ;  NaturalRallyPoint = X: 35.0  Y:  0.0   Z:0.0
5174    ;End
5175  
5176    Behavior            = SpawnBehavior ModuleTag_07
5177      SpawnNumber       = 2
5178      SpawnReplaceDelay = 9999
5179      SpawnTemplateName = Demo_GLAInfantryTunnelDefender
5180      OneShot           = Yes
5181      CanReclaimOrphans = No
5182      SlavesHaveFreeWill = Yes
5183    End
5184    Behavior             = RebuildHoleExposeDie ModuleTag_09
5185      HoleName      = GLAHoleTunnelNetwork
5186      HoleMaxHealth = 500.0
5187    End
5188    Behavior = DestroyDie ModuleTag_10
5189      ;nothing
5190    End
5191    Behavior             = CreateObjectDie ModuleTag_11
5192      CreationList  = OCL_ABTunnelNetworkDebris
5193    End
5194    Behavior             = FXListDie ModuleTag_12
5195      DeathFX       = FX_StructureSmallDeath
5196    End
5197  
5198    Behavior = FlammableUpdate ModuleTag_15
5199  
5200      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
5201      AflameDamageAmount = 5       ; taking this much damage...
5202      AflameDamageDelay = 500       ; this often.
5203    End
5204  
5205    ;Kris: Cut camo-netting from Demo General
5206    ;Behavior = StealthUpdate ModuleTag_17
5207    ;  StealthDelay                = 2500 ; msec
5208    ;  StealthForbiddenConditions  = ATTACKING USING_ABILITY NO_BLACK_MARKET TAKING_DAMAGE
5209    ;  MoveThresholdSpeed          = 3
5210    ;  InnateStealth               = No ;Requires upgrade first
5211    ;  OrderIdleEnemiesToAttackMeUponReveal  = Yes
5212    ;End
5213    ;Behavior = StealthUpgrade ModuleTag_18
5214    ;  TriggeredBy = Upgrade_GLACamoNetting
5215    ;End
5216    ;Behavior = ProductionUpdate ModuleTag_19
5217    ;End
5218  
5219    Behavior = TransitionDamageFX ModuleTag_20
5220      ;-------------DESIGNED FOR SMALL SIZED FACTION BUILDING TRANSITIONS-------------------
5221      DamagedParticleSystem1       = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
5222      ;---------------------------------------------------------------------------------------
5223      ReallyDamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
5224      ReallyDamagedParticleSystem2 = Bone:None RandomBone:No PSys:StructureTransitionSmallExplosion
5225      ReallyDamagedParticleSystem3 = Bone:None RandomBone:No PSys:StructureTransitionSmallShockwave
5226    End
5227  
5228  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death24
5229  ;    DeathWeapon   = Demo_SuicideDynamitePack
5230  ;    StartsActive  = Yes                      ; turned on by upgrade
5231  ;    DeathTypes = NONE +SUICIDED
5232  ;  End
5233  ;
5234  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag999
5235  ;    DeathWeapon   = Demo_SuicideDynamitePackPlusFire
5236  ;    StartsActive  = No
5237  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
5238  ;    RequiresAllTriggers = Yes; 
5239  ;    DeathTypes = ALL -SUICIDED -POISONED -POISONED_BETA -POISONED_GAMMA
5240  ;  End
5241  ;
5242  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag998
5243  ;    DeathWeapon   = Demo_SuicideDynamitePack
5244  ;    StartsActive  = No
5245  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
5246  ;    RequiresAllTriggers = Yes; 
5247  ;    DeathTypes = NONE +SUICIDED
5248  ;  End
5249  
5250    Behavior = FireWeaponWhenDeadBehavior ModuleTag_George 
5251      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
5252      StartsActive  = No
5253      TriggeredBy   = Demo_Upgrade_SuicideBomb
5254      DeathTypes = ALL
5255    End;
5256  
5257    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Bob
5258      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
5259      StartsActive  = No
5260      TriggeredBy   = Demo_Upgrade_SuicideBomb
5261      DeathTypes = NONE 
5262    End
5263  
5264    Behavior = CommandSetUpgrade ModuleTag_22
5265      CommandSet = Demo_GLATunnelNetworkCommandSetUpgrade
5266      TriggeredBy = Demo_Upgrade_SuicideBomb
5267    End
5268  
5269  
5270    Geometry = CYLINDER
5271    GeometryMajorRadius = 25.0
5272    GeometryHeight = 20.0    
5273    GeometryIsSmall     = No
5274    Shadow          = SHADOW_VOLUME
5275    BuildCompletion = PLACED_BY_PLAYER
5276  
5277  End
5278  
5279  ;------------------------------------------------------------------------------
5280  ObjectReskin Demo_GLAHoleTunnelNetwork Demo_GLAHole
5281    Draw                     = W3DModelDraw ModuleTag_01
5282      OkToChangeModelColor   = Yes
5283      ConditionState         = NONE
5284        Model                = UBHole
5285      End
5286      ConditionState         = DAMAGED
5287        Model                = UBHole_D
5288        ParticleSysBone      = Smoke01 SteamVent
5289      End
5290      ConditionState         = REALLYDAMAGED
5291        Model                = UBHole_E
5292        ParticleSysBone      = Smoke01 SteamVent
5293        ParticleSysBone      = Smoke02 SteamVent
5294        ParticleSysBone      = Fire01 GLAPowerPlantFlame
5295        ParticleSysBone      = Fire02 GLAPowerPlantFlame
5296        ParticleSysBone      = Fire03 GLAPowerPlantFlame
5297      End
5298    End
5299    Draw                     = W3DModelDraw ModuleTag_02
5300      OkToChangeModelColor   = Yes
5301      ConditionState         = NONE
5302        Model                = UBUndTunn_R
5303      End
5304      ConditionState         = DAMAGED REALLYDAMAGED
5305        Model                = UBUndTunn_R
5306      End
5307    End
5308  End
5309  
5310  
5311  
5312  
5313  ;------------------------------------------------------------------------------
5314  Object Demo_GLAStingerSite
5315  
5316    ; *** ART Parameters ***
5317    SelectPortrait         = SUStinger_L
5318    ButtonImage            = SUStinger
5319    UpgradeCameo1          = Upgrade_GLAAPRockets
5320    ;UpgradeCameo2          = Upgrade_GLACamoNetting
5321    ;UpgradeCameo3          = NONE
5322    ;UpgradeCameo4          = NONE
5323    ;UpgradeCameo5          = NONE
5324  
5325    Draw = W3DModelDraw ModuleTag_01
5326      OkToChangeModelColor = Yes
5327      
5328      ; day ************************************
5329      ConditionState = NONE
5330        Model = UBStingerS
5331      End
5332      
5333      ConditionState = DAMAGED
5334        Model = UBStingerS_D
5335      End
5336      
5337      ConditionState = REALLYDAMAGED RUBBLE
5338        Model = UBStingerS_E
5339      End
5340  
5341      ; day snow ************************************
5342      ConditionState = SNOW
5343        Model = UBStingerS_S
5344      End
5345      
5346      ConditionState = DAMAGED SNOW
5347        Model = UBStingerS_DS
5348      End
5349      
5350      ConditionState = REALLYDAMAGED SNOW RUBBLE
5351        Model = UBStingerS_ES
5352      End
5353      
5354      ; night  **********************************
5355      ConditionState       = NIGHT 
5356        Model              = UBStingerS_N
5357      End
5358      
5359      ConditionState       = DAMAGED NIGHT 
5360        Model              = UBStingerS_DN
5361      End
5362      
5363      ConditionState       = REALLYDAMAGED NIGHT  RUBBLE
5364        Model              = UBStingerS_EN
5365      End
5366         
5367      ; night snow **********************************
5368      ConditionState       = NIGHT SNOW
5369        Model              = UBStingerS_NS
5370      End
5371      
5372      ConditionState       = DAMAGED NIGHT SNOW
5373        Model              = UBStingerS_DNS
5374      End
5375      
5376      ConditionState       = REALLYDAMAGED NIGHT SNOW RUBBLE
5377        Model              = UBStingerS_ENS
5378      End
5379      
5380      
5381          ;**************************************************************************************************************************
5382      ;This block handles every possible case with construction process, selling process, awaiting construction, and sold states
5383      ;for this draw module
5384      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
5385        Model              = UBStingerS
5386       ; Animation          = UBStingerS.UBStingerS
5387       ; AnimationMode      = LOOP
5388        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
5389      End
5390      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
5391        Model              = UBStingerS_D
5392       ; Animation          = UBStingerS_D.UBStingerS_D
5393       ; AnimationMode      = LOOP
5394        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
5395      End
5396      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED
5397        Model              = UBStingerS_E
5398       ; Animation          = UBStingerS_E.UBStingerS_E
5399       ; AnimationMode      = LOOP
5400        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
5401      End
5402      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT
5403        Model              = UBStingerS_N
5404       ; Animation          = UBStingerS_N.UBStingerS_N
5405       ; AnimationMode      = LOOP
5406        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
5407      End
5408      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT DAMAGED
5409        Model              = UBStingerS_DN
5410       ; Animation          = UBStingerS_DN.UBStingerS_DN
5411       ; AnimationMode      = LOOP
5412        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
5413      End
5414      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT REALLYDAMAGED
5415        Model              = UBStingerS_EN
5416       ; Animation          = UBStingerS_EN.UBStingerS_EN
5417       ; AnimationMode      = LOOP
5418        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
5419      End
5420      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW
5421        Model              = UBStingerS_S
5422       ; Animation          = UBStingerS_S.UBStingerS_S
5423       ; AnimationMode      = LOOP
5424        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
5425      End
5426      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW DAMAGED
5427        Model              = UBStingerS_DS
5428       ; Animation          = UBStingerS_DS.UBStingerS_DS
5429       ; AnimationMode      = LOOP
5430        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
5431      End
5432      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW REALLYDAMAGED
5433        Model              = UBStingerS_ES
5434       ; Animation          = UBStingerS_ES.UBStingerS_ES
5435       ; AnimationMode      = LOOP
5436        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
5437      End
5438      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW
5439        Model              = UBStingerS_NS
5440       ; Animation          = UBStingerS_NS.UBStingerS_NS
5441       ; AnimationMode      = LOOP
5442        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
5443      End
5444      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW DAMAGED
5445        Model              = UBStingerS_DNS
5446       ; Animation          = UBStingerS_DNS.UBStingerS_DNS
5447       ; AnimationMode      = LOOP
5448        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
5449      End
5450      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW REALLYDAMAGED
5451        Model              = UBStingerS_ENS
5452       ; Animation          = UBStingerS_ENS.UBStingerS_ENS
5453       ; AnimationMode      = LOOP
5454        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
5455      End
5456  
5457      ConditionState       = AWAITING_CONSTRUCTION 
5458        Model              = NONE
5459      End
5460      AliasConditionState  = AWAITING_CONSTRUCTION DAMAGED
5461      AliasConditionState  = AWAITING_CONSTRUCTION REALLYDAMAGED
5462      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT
5463      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT DAMAGED
5464      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT REALLYDAMAGED
5465      AliasConditionState  = AWAITING_CONSTRUCTION SNOW
5466      AliasConditionState  = AWAITING_CONSTRUCTION SNOW DAMAGED
5467      AliasConditionState  = AWAITING_CONSTRUCTION SNOW REALLYDAMAGED
5468      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW
5469      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW DAMAGED
5470      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW REALLYDAMAGED
5471      AliasConditionState  = SOLD 
5472      AliasConditionState  = SOLD DAMAGED
5473      AliasConditionState  = SOLD REALLYDAMAGED
5474      AliasConditionState  = SOLD NIGHT
5475      AliasConditionState  = SOLD NIGHT DAMAGED
5476      AliasConditionState  = SOLD NIGHT REALLYDAMAGED
5477      AliasConditionState  = SOLD SNOW
5478      AliasConditionState  = SOLD SNOW DAMAGED
5479      AliasConditionState  = SOLD SNOW REALLYDAMAGED
5480      AliasConditionState  = SOLD NIGHT SNOW
5481      AliasConditionState  = SOLD NIGHT SNOW DAMAGED
5482      AliasConditionState  = SOLD NIGHT SNOW REALLYDAMAGED
5483      ;**************************************************************************************************************************
5484  
5485    
5486    End
5487    ; ------------ construction-zone fence -----------------
5488    Draw = W3DModelDraw ModuleTag_02
5489    AnimationsRequirePower = No
5490      DefaultConditionState
5491        Model           = None
5492        TransitionKey   = DOWN_DEFAULT
5493      End
5494      ConditionState    = NIGHT
5495        Model           = None
5496        TransitionKey   = DOWN_DEFAULT
5497      End
5498      ConditionState    = SNOW
5499        Model           = None
5500        TransitionKey   = DOWN_DEFAULT
5501      End
5502      ConditionState    = SNOW NIGHT
5503        Model           = None
5504        TransitionKey   = DOWN_DEFAULT
5505      End
5506      ConditionState    = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
5507        Model           = UBStingerS_A4
5508        Animation       = UBStingerS_A4.UBStingerS_A4
5509        AnimationMode   = MANUAL
5510        Flags           = START_FRAME_LAST
5511        TransitionKey   = UP_DAY
5512      End
5513      ConditionState    = NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
5514        Model           = UBStingerS_A4N
5515        Animation       = UBStingerS_A4N.UBStingerS_A4N
5516        AnimationMode   = MANUAL
5517        Flags           = START_FRAME_LAST
5518        TransitionKey   = UP_NIGHT
5519      End
5520      ConditionState    = SNOW AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
5521        Model           = UBStingerS_A4S
5522        Animation       = UBStingerS_A4S.UBStingerS_A4S
5523        AnimationMode   = MANUAL
5524        Flags           = START_FRAME_LAST
5525        TransitionKey   = UP_SNOW
5526      End
5527      ConditionState    = SNOW NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
5528        Model           = UBStingerS_A4SN
5529        Animation       = UBStingerS_A4SN.UBStingerS_A4SN
5530        AnimationMode   = MANUAL
5531        Flags           = START_FRAME_LAST
5532        TransitionKey   = UP_SNOWNIGHT
5533      End
5534      TransitionState   = DOWN_DEFAULT UP_DAY
5535        Model           = UBStingerS_A4
5536        Animation       = UBStingerS_A4.UBStingerS_A4
5537        AnimationMode   = ONCE
5538        AnimationSpeedFactorRange = 1.0 1.0
5539        Flags           = START_FRAME_FIRST
5540      End
5541      TransitionState   = DOWN_DEFAULT UP_NIGHT
5542        Model           = UBStingerS_A4N
5543        Animation       = UBStingerS_A4N.UBStingerS_A4N
5544        AnimationMode   = ONCE
5545        AnimationSpeedFactorRange = 1.0 1.0
5546        Flags           = START_FRAME_FIRST
5547      End
5548      TransitionState   = DOWN_DEFAULT UP_SNOW
5549        Model           = UBStingerS_A4S
5550        Animation       = UBStingerS_A4S.UBStingerS_A4S
5551        AnimationMode   = ONCE
5552        AnimationSpeedFactorRange = 1.0 1.0
5553        Flags           = START_FRAME_FIRST
5554      End
5555      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
5556        Model           = UBStingerS_A4SN
5557        Animation       = UBStingerS_A4SN.UBStingerS_A4SN
5558        AnimationMode   = ONCE
5559        AnimationSpeedFactorRange = 1.0 1.0
5560        Flags           = START_FRAME_FIRST
5561      End
5562      TransitionState   = UP_DAY DOWN_DEFAULT
5563        Model           = UBStingerS_A4
5564        Animation       = UBStingerS_A4.UBStingerS_A4
5565        AnimationMode   = ONCE_BACKWARDS
5566        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
5567        Flags           = START_FRAME_LAST
5568      End
5569      TransitionState   = UP_NIGHT DOWN_DEFAULT
5570        Model           = UBStingerS_A4N
5571        Animation       = UBStingerS_A4N.UBStingerS_A4N
5572        AnimationMode   = ONCE_BACKWARDS
5573        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
5574        Flags           = START_FRAME_LAST
5575      End
5576      TransitionState   = UP_SNOW DOWN_DEFAULT
5577        Model           = UBStingerS_A4S
5578        Animation       = UBStingerS_A4S.UBStingerS_A4S
5579        AnimationMode   = ONCE_BACKWARDS
5580        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
5581        Flags           = START_FRAME_LAST
5582      End
5583      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
5584        Model           = UBStingerS_A4SN
5585        Animation       = UBStingerS_A4SN.UBStingerS_A4SN
5586        AnimationMode   = ONCE_BACKWARDS
5587        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
5588        Flags           = START_FRAME_LAST
5589      End
5590    End
5591  
5592    ; ------------ under-construction scaffolding -----------------
5593    Draw = W3DModelDraw ModuleTag_03
5594    AnimationsRequirePower = No
5595      MinLODRequired = MEDIUM
5596      DefaultConditionState
5597        Model           = None
5598        TransitionKey   = DOWN_DEFAULT
5599      End
5600      ConditionState    = NIGHT
5601        Model           = None
5602        TransitionKey   = DOWN_DEFAULT
5603      End
5604      ConditionState    = SNOW
5605        Model           = None
5606        TransitionKey   = DOWN_DEFAULT
5607      End
5608      ConditionState    = SNOW NIGHT
5609        Model           = None
5610        TransitionKey   = DOWN_DEFAULT
5611      End
5612      ConditionState    = PARTIALLY_CONSTRUCTED
5613        Model           = UBStingerS_A6
5614        Animation       = UBStingerS_A6.UBStingerS_A6
5615        AnimationMode   = MANUAL
5616        Flags           = START_FRAME_LAST
5617        TransitionKey   = UP_DAY
5618        ParticleSysBone = Smoke01 BuildUpSmoke
5619        ParticleSysBone = Smoke02 BuildUpSmoke
5620        ParticleSysBone = Smoke03 BuildUpSmoke
5621      End
5622      ConditionState    = NIGHT PARTIALLY_CONSTRUCTED
5623        Model           = UBStingerS_A6N
5624        Animation       = UBStingerS_A6N.UBStingerS_A6N
5625        AnimationMode   = MANUAL
5626        Flags           = START_FRAME_LAST
5627        TransitionKey   = UP_NIGHT
5628        ParticleSysBone = Smoke01 BuildUpSmoke
5629        ParticleSysBone = Smoke02 BuildUpSmoke
5630        ParticleSysBone = Smoke03 BuildUpSmoke
5631      End
5632      ConditionState    = SNOW PARTIALLY_CONSTRUCTED
5633        Model           = UBStingerS_A6S
5634        Animation       = UBStingerS_A6S.UBStingerS_A6S
5635        AnimationMode   = MANUAL
5636        Flags           = START_FRAME_LAST
5637        TransitionKey   = UP_SNOW
5638        ParticleSysBone = Smoke01 BuildUpSnowSmoke
5639        ParticleSysBone = Smoke02 BuildUpSnowSmoke
5640        ParticleSysBone = Smoke03 BuildUpSnowSmoke
5641      End
5642      ConditionState    = SNOW NIGHT PARTIALLY_CONSTRUCTED
5643        Model           = UBStingerS_A6SN
5644        Animation       = UBStingerS_A6SN.UBStingerS_A6SN
5645        AnimationMode   = MANUAL
5646        Flags           = START_FRAME_LAST
5647        TransitionKey   = UP_SNOWNIGHT
5648        ParticleSysBone = Smoke01 BuildUpNightSnowSmoke
5649        ParticleSysBone = Smoke02 BuildUpNightSnowSmoke
5650        ParticleSysBone = Smoke03 BuildUpNightSnowSmoke
5651      End
5652      TransitionState   = DOWN_DEFAULT UP_DAY
5653       Model            = UBStingerS_A6
5654        Animation       = UBStingerS_A6.UBStingerS_A6
5655        AnimationMode   = ONCE
5656        AnimationSpeedFactorRange = 1.0 1.0
5657        Flags           = START_FRAME_FIRST
5658      End
5659      TransitionState   = DOWN_DEFAULT UP_NIGHT
5660       Model            = UBStingerS_A6N
5661        Animation       = UBStingerS_A6N.UBStingerS_A6N
5662        AnimationMode   = ONCE
5663        AnimationSpeedFactorRange = 1.0 1.0
5664        Flags           = START_FRAME_FIRST
5665      End
5666      TransitionState   = DOWN_DEFAULT UP_SNOW
5667       Model            = UBStingerS_A6S
5668        Animation       = UBStingerS_A6S.UBStingerS_A6S
5669        AnimationMode   = ONCE
5670        AnimationSpeedFactorRange = 1.0 1.0
5671        Flags           = START_FRAME_FIRST
5672      End
5673      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
5674       Model            = UBStingerS_A6SN
5675        Animation       = UBStingerS_A6SN.UBStingerS_A6SN
5676        AnimationMode   = ONCE
5677        AnimationSpeedFactorRange = 1.0 1.0
5678        Flags           = START_FRAME_FIRST
5679      End
5680      TransitionState   = UP_DAY DOWN_DEFAULT
5681        Model           = UBStingerS_A6
5682        Animation       = UBStingerS_A6.UBStingerS_A6
5683        AnimationMode   = ONCE_BACKWARDS
5684        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
5685        Flags           = START_FRAME_LAST
5686      End
5687      TransitionState   = UP_NIGHT DOWN_DEFAULT
5688        Model           = UBStingerS_A6N
5689        Animation       = UBStingerS_A6N.UBStingerS_A6N
5690        AnimationMode   = ONCE_BACKWARDS
5691        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
5692        Flags           = START_FRAME_LAST
5693      End
5694      TransitionState   = UP_SNOW DOWN_DEFAULT
5695        Model           = UBStingerS_A6S
5696        Animation       = UBStingerS_A6S.UBStingerS_A6S
5697        AnimationMode   = ONCE_BACKWARDS
5698        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
5699        Flags           = START_FRAME_LAST
5700      End
5701      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
5702        Model           = UBStingerS_A6SN
5703        Animation       = UBStingerS_A6SN.UBStingerS_A6SN
5704        AnimationMode   = ONCE_BACKWARDS
5705        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
5706        Flags           = START_FRAME_LAST
5707      End
5708    End
5709    
5710    PlacementViewAngle = -45
5711  
5712    ; ***DESIGN parameters ***
5713    DisplayName         = OBJECT:StingerSite
5714    Side                = GLADemolitionGeneral
5715    EditorSorting       = STRUCTURE
5716    Prerequisites
5717      Object            = Demo_GLABarracks
5718    End
5719    BuildCost           = 900
5720    BuildTime           = 15.0           ; in seconds
5721    EnergyProduction    = 0
5722    VisionRange         = 600.0           ; Shroud clearing distance
5723    ShroudClearingRange = 400
5724    WeaponSet
5725      Weapon = TERTIARY TerroristSuicideNotARealWeapon
5726      AutoChooseSources = TERTIARY NONE
5727    End
5728    ArmorSet
5729      Conditions        = None
5730      Armor             = StingerSiteArmor
5731      DamageFX          = StructureDamageFXNoShake
5732    End
5733    CommandSet          = Demo_GLAStingerSiteCommandSet
5734    ExperienceValue     = 200 200 200 200  ; Experience point value at each level
5735  
5736    ; *** AUDIO Parameters ***
5737    VoiceSelect         = StingerSiteSelect
5738    SoundOnDamaged        = BuildingDamagedStateLight
5739    SoundOnReallyDamaged  = BuildingDestroy
5740  
5741    UnitSpecificSounds
5742      UnderConstruction     = UnderConstructionLoop
5743    End
5744  
5745    ; *** ENGINEERING Parameters ***
5746    RadarPriority        = STRUCTURE
5747    KindOf               = PRELOAD STRUCTURE SELECTABLE IMMOBILE FS_BASE_DEFENSE IMMUNE_TO_CAPTURE SPAWNS_ARE_THE_WEAPONS SCORE_CREATE
5748  
5749    Body                 = HiveStructureBody ModuleTag_04 ;Requires SpawnBehavior!
5750      MaxHealth          = 1000.0
5751      InitialHealth      = 1000.0
5752      ;**Careful with these damage types -- because area damage types will already
5753      ;**damage slaves.
5754      PropagateDamageTypesToSlavesWhenExisting = NONE +SMALL_ARMS +SNIPER +POISON +RADIATION +SURRENDER
5755      SwallowDamageTypesIfSlavesNotExisting = NONE +SNIPER +POISON +SURRENDER; Take no damage if no one to pass this to
5756  
5757      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
5758      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
5759      SubdualDamageCap = 1200
5760      SubdualDamageHealRate = 500
5761      SubdualDamageHealAmount = 100
5762    End
5763  
5764    Behavior = SpawnPointProductionExitUpdate ModuleTag_05
5765      SpawnPointBoneName = SpawnPoint
5766    End
5767  
5768    Behavior                = SpawnBehavior ModuleTag_06
5769      SpawnNumber           = 3
5770      SpawnReplaceDelay     = 30000 ;msec
5771      SpawnTemplateName     = GLAInfantryStingerSoldier
5772      CanReclaimOrphans     = No
5773      SpawnedRequireSpawner = Yes
5774    End
5775    Behavior        = RebuildHoleExposeDie ModuleTag_08
5776      HoleName      = GLAHoleStingerSite
5777      HoleMaxHealth = 500.0
5778    End
5779    Behavior        = DestroyDie ModuleTag_09
5780      ;<NO DATA>
5781    End
5782    Behavior        = CreateObjectDie ModuleTag_10
5783      CreationList  = OCL_ABStingerSiteDebris
5784    End
5785    Behavior        = FXListDie ModuleTag_11
5786      DeathFX       = FX_StructureSmallDeath
5787    End
5788    Behavior        = FireWeaponWhenDeadBehavior ModuleTag_12
5789      DeathWeapon   = StingerSiteDeathConcussion
5790      StartsActive  = Yes
5791    End
5792  
5793    ;Kris: Cut camo-netting from Demo General
5794    ;Behavior = StealthUpdate ModuleTag_13
5795    ;  StealthDelay                = 2500 ; msec
5796    ;  StealthForbiddenConditions  = ATTACKING USING_ABILITY NO_BLACK_MARKET TAKING_DAMAGE
5797    ;  MoveThresholdSpeed          = 3
5798    ;  InnateStealth               = No ;Requires upgrade first
5799    ;  OrderIdleEnemiesToAttackMeUponReveal  = Yes
5800    ;End
5801    ;Behavior = StealthUpgrade ModuleTag_14
5802    ;  TriggeredBy = Upgrade_GLACamoNetting
5803    ;End
5804    ;Behavior = ProductionUpdate ModuleTag_15
5805    ;End
5806    
5807    Behavior                = FlammableUpdate ModuleTag_16
5808      AflameDuration        = 5000         ; If I catch fire, I'll burn for this long...
5809      AflameDamageAmount    = 5       ; taking this much damage...
5810      AflameDamageDelay     = 500       ; this often.
5811    End
5812  
5813    Behavior = TransitionDamageFX ModuleTag_17
5814      ;-------------DESIGNED FOR SMALL SIZED FACTION BUILDING TRANSITIONS-------------------
5815      DamagedParticleSystem1       = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
5816      ;---------------------------------------------------------------------------------------
5817      ReallyDamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
5818      ReallyDamagedParticleSystem2 = Bone:None RandomBone:No PSys:StructureTransitionSmallExplosion
5819      ReallyDamagedParticleSystem3 = Bone:None RandomBone:No PSys:StructureTransitionSmallShockwave
5820    End
5821  
5822    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death18
5823      DeathWeapon   = Demo_SuicideDynamitePack
5824      StartsActive  = Yes                      ; turned on by upgrade
5825      DeathTypes = NONE +SUICIDED
5826    End
5827  
5828    Behavior = FireWeaponWhenDeadBehavior ModuleTag999
5829      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
5830      StartsActive  = No
5831      TriggeredBy   = Demo_Upgrade_SuicideBomb
5832      RequiresAllTriggers = Yes; 
5833      DeathTypes = ALL -SUICIDED -POISONED -POISONED_BETA -POISONED_GAMMA
5834    End;
5835  
5836    Behavior = FireWeaponWhenDeadBehavior ModuleTag998
5837      DeathWeapon   = Demo_SuicideDynamitePack
5838      StartsActive  = No
5839      TriggeredBy   = Demo_Upgrade_SuicideBomb
5840      RequiresAllTriggers = Yes; 
5841      DeathTypes = NONE +SUICIDED
5842    End;
5843  
5844    Behavior = CommandSetUpgrade ModuleTag_19
5845      CommandSet = Demo_GLAStingerSiteCommandSetUpgrade
5846      TriggeredBy = Demo_Upgrade_SuicideBomb
5847    End
5848  
5849    Behavior = AIUpdateInterface ModuleTag_20
5850      AutoAcquireEnemiesWhenIdle = No
5851    End
5852  
5853    Geometry            = CYLINDER
5854    GeometryMajorRadius = 36.0
5855    GeometryHeight      = 9.0    
5856    GeometryIsSmall     = No
5857    Shadow              = SHADOW_VOLUME
5858    BuildCompletion     = PLACED_BY_PLAYER
5859  
5860  End
5861  
5862  ;------------------------------------------------------------------------------
5863  ObjectReskin Demo_GLAHoleStingerSite Demo_GLAHole
5864    Draw                     = W3DModelDraw ModuleTag_01
5865      OkToChangeModelColor   = Yes
5866      ConditionState         = NONE
5867        Model                = UBHole
5868      End
5869      ConditionState         = DAMAGED
5870        Model                = UBHole_D
5871        ParticleSysBone      = Smoke01 SteamVent
5872      End
5873      ConditionState         = REALLYDAMAGED
5874        Model                = UBHole_E
5875        ParticleSysBone      = Smoke01 SteamVent
5876        ParticleSysBone      = Smoke02 SteamVent
5877        ParticleSysBone      = Fire01 GLAPowerPlantFlame
5878        ParticleSysBone      = Fire02 GLAPowerPlantFlame
5879        ParticleSysBone      = Fire03 GLAPowerPlantFlame
5880      End
5881    End
5882    Draw                     = W3DModelDraw ModuleTag_02
5883      OkToChangeModelColor   = Yes
5884      ConditionState         = NONE
5885        Model                = UBStingerS_R
5886      End
5887      ConditionState         = DAMAGED REALLYDAMAGED
5888        Model                = UBStingerS_R
5889      End
5890    End
5891  End
5892  
5893  ;------------------------------------------------------------------------------
5894  Object Demo_GLAPalace
5895  
5896    ; *** ART Parameters ***
5897    SelectPortrait         = SUPalace_L
5898    ButtonImage            = SUPalace
5899    Draw                     = W3DModelDraw ModuleTag_01
5900      OkToChangeModelColor   = Yes
5901      
5902      
5903      ; day  
5904      ConditionState         = NONE
5905        Model                = UBPalace
5906        ParticleSysBone      = Smoke01 SmolderingSmoke
5907        Animation            = UBPalace.UBPalace
5908        AnimationMode        = LOOP
5909      End
5910      ConditionState         = DAMAGED
5911        Model                = UBPalace_D
5912        ParticleSysBone      = Smoke01 SmolderingSmoke
5913        Animation            = UBPalace_D.UBPalace_D
5914        AnimationMode        = LOOP
5915      End
5916      ConditionState         = REALLYDAMAGED RUBBLE
5917        Model                = UBPalace_E
5918        ParticleSysBone      = Smoke01 SmolderingSmoke
5919      End
5920      
5921      ConditionState         = GARRISONED
5922        Model                = UBPalace_G
5923        ParticleSysBone      = Smoke01 SmolderingSmoke
5924        Animation            = UBPalace_G.UBPalace_G
5925        AnimationMode        = LOOP
5926      End
5927      ConditionState         = USER_1
5928        Model                = UBPalaceEG
5929        ParticleSysBone      = Smoke01 SmolderingSmoke
5930        Animation            = UBPalaceEG.UBPalaceEG
5931        AnimationMode        = LOOP
5932      End
5933      ConditionState         = USER_1 GARRISONED
5934        Model                = UBPalaceEGX
5935        ParticleSysBone      = Smoke01 SmolderingSmoke
5936         Animation            = UBPalaceEGX.UBPalaceEGX
5937        AnimationMode        = LOOP
5938      End
5939      ConditionState         = DAMAGED GARRISONED
5940        Model                = UBPalace_DG
5941        ParticleSysBone      = Smoke01 SmolderingSmoke
5942        Animation            = UBPalace_DG.UBPalace_DG
5943        AnimationMode        = LOOP
5944      End
5945      ConditionState         = DAMAGED USER_1
5946        Model                = UBPalaceEG_D
5947        ParticleSysBone      = Smoke01 SmolderingSmoke
5948        Animation            = UBPalaceEG_D.UBPalaceEG_D
5949        AnimationMode        = LOOP
5950      End
5951      ConditionState         = DAMAGED USER_1 GARRISONED
5952       Model                = UBPalaceEGX_D
5953        ParticleSysBone      = Smoke01 SmolderingSmoke
5954        Animation            = UBPalaceEGX_D.UBPalaceEGX_D
5955        AnimationMode        = LOOP
5956      End
5957      
5958      ConditionState         = REALLYDAMAGED GARRISONED
5959        Model                = UBPalace_EG
5960        ParticleSysBone      = Smoke01 SmolderingSmoke
5961      End
5962      ConditionState         = REALLYDAMAGED USER_1
5963        Model                = UBPalaceEG_E
5964        ParticleSysBone      = Smoke01 SmolderingSmoke
5965      End
5966      ConditionState         = REALLYDAMAGED USER_1 GARRISONED
5967        Model                = UBPalaceEGX_E
5968        ParticleSysBone      = Smoke01 SmolderingSmoke
5969      End
5970      
5971      ; day snow
5972      ConditionState         = SNOW
5973        Model                = UBPalace_S
5974        ParticleSysBone      = Smoke01 SmolderingSmoke
5975        Animation            = UBPalace_S.UBPalace_S
5976        AnimationMode        = LOOP
5977      End
5978      ConditionState         = DAMAGED SNOW
5979        Model                = UBPalace_DS
5980        ParticleSysBone      = Smoke01 SmolderingSmoke
5981        Animation            = UBPalace_DS.UBPalace_DS
5982        AnimationMode        = LOOP
5983      End
5984      ConditionState         = REALLYDAMAGED RUBBLE SNOW
5985        Model                = UBPalace_ES
5986        ParticleSysBone      = Smoke01 SmolderingSmoke
5987      End
5988      
5989      ConditionState         = GARRISONED SNOW
5990        Model                = UBPalace_SG
5991        ParticleSysBone      = Smoke01 SmolderingSmoke
5992        Animation            = UBPalace_SG.UBPalace_SG
5993        AnimationMode        = LOOP
5994      End
5995      ConditionState         = USER_1 SNOW
5996        Model                = UBPalaceEG_S
5997        ParticleSysBone      = Smoke01 SmolderingSmoke
5998        Animation            = UBPalaceEG_S.UBPalaceEG_S
5999        AnimationMode        = LOOP
6000      End
6001      ConditionState         = USER_1 SNOW GARRISONED
6002        Model                = UBPalaceEGX_S
6003        ParticleSysBone      = Smoke01 SmolderingSmoke
6004        Animation            = UBPalaceEGX_S.UBPalaceEGX_S
6005        AnimationMode        = LOOP
6006      End
6007      
6008      ConditionState         = DAMAGED GARRISONED SNOW
6009        Model                = UBPalace_DSG
6010        ParticleSysBone      = Smoke01 SmolderingSmoke
6011        Animation            = UBPalace_DSG.UBPalace_DSG
6012        AnimationMode        = LOOP
6013      End
6014      ConditionState         = DAMAGED USER_1 SNOW
6015        Model                = UBPalaceEG_DS
6016        ParticleSysBone      = Smoke01 SmolderingSmoke
6017        Animation            = UBPalaceEG_DS.UBPalaceEG_DS
6018        AnimationMode        = LOOP
6019      End
6020      ConditionState         = DAMAGED USER_1 SNOW GARRISONED
6021        Model                = UBPalaceEGX_DS
6022        ParticleSysBone      = Smoke01 SmolderingSmoke
6023        Animation            = UBPalaceEGX_DSG.UBPalaceEGX_DS
6024        AnimationMode        = LOOP
6025      End
6026          
6027      ConditionState         = REALLYDAMAGED GARRISONED SNOW
6028        Model                = UBPalace_ESG
6029        ParticleSysBone      = Smoke01 SmolderingSmoke
6030      End
6031      ConditionState         = REALLYDAMAGED USER_1 SNOW
6032        Model                = UBPalaceEG_ES
6033        ParticleSysBone      = Smoke01 SmolderingSmoke
6034      End
6035      ConditionState         = REALLYDAMAGED USER_1 GARRISONED SNOW
6036        Model                = UBPalaceEGX_ES
6037       ParticleSysBone      = Smoke01 SmolderingSmoke
6038      End
6039  
6040      ; night  
6041      ConditionState         = NIGHT
6042        Model                = UBPalace_N
6043        ParticleSysBone      = Smoke01 SmolderingSmoke
6044        Animation            = UBPalace_N.UBPalace_N
6045        AnimationMode        = LOOP
6046      End
6047      ConditionState         = DAMAGED NIGHT
6048        Model                = UBPalace_DN
6049        ParticleSysBone      = Smoke01 SmolderingSmoke
6050        Animation            = UBPalace_DN.UBPalace_DN
6051        AnimationMode        = LOOP
6052      End
6053      ConditionState         = REALLYDAMAGED RUBBLE NIGHT
6054        Model                = UBPalace_EN
6055        ParticleSysBone      = Smoke01 SmolderingSmoke
6056      End
6057          
6058      ConditionState         = GARRISONED NIGHT
6059        Model                = UBPalace_NG
6060        ParticleSysBone      = Smoke01 SmolderingSmoke
6061        Animation            = UBPalace_NG.UBPalace_NG
6062        AnimationMode        = LOOP
6063      End
6064      ConditionState         = USER_1 NIGHT
6065        Model                = UBPalaceEG_N
6066        ParticleSysBone      = Smoke01 SmolderingSmoke
6067        Animation            = UBPalaceEG_N.UBPalaceEG_N
6068        AnimationMode        = LOOP
6069      End
6070  
6071      ConditionState         = USER_1 NIGHT GARRISONED
6072        Model                = UBPalaceEGX_N
6073        ParticleSysBone      = Smoke01 SmolderingSmoke
6074        Animation            = UBPalaceEGX_N.UBPalaceEGX_N
6075        AnimationMode        = LOOP
6076      End
6077          
6078      ConditionState         = DAMAGED GARRISONED NIGHT
6079        Model                = UBPalace_DGN
6080        ParticleSysBone      = Smoke01 SmolderingSmoke
6081        Animation            = UBPalace_DGN.UBPalace_DGN
6082        AnimationMode        = LOOP
6083      End
6084      ConditionState         = DAMAGED USER_1 NIGHT
6085        Model                = UBPalaceEG_DN
6086        ParticleSysBone      = Smoke01 SmolderingSmoke
6087        Animation            = UBPalaceEG_DN.UBPalaceEG_DN
6088        AnimationMode        = LOOP
6089      End
6090      ConditionState         = DAMAGED USER_1 NIGHT GARRISONED
6091        Model                = UBPalaceEGX_DN
6092        ParticleSysBone      = Smoke01 SmolderingSmoke
6093        Animation            = UBPalaceEGX_DN.UBPalaceEGX_DN
6094        AnimationMode        = LOOP
6095      End    
6096      
6097      ConditionState         = REALLYDAMAGED GARRISONED NIGHT
6098        Model                = UBPalace_ENG
6099        ParticleSysBone      = Smoke01 SmolderingSmoke
6100      End
6101      ConditionState         = REALLYDAMAGED USER_1 NIGHT
6102        Model                = UBPalaceEG_EN
6103        ParticleSysBone      = Smoke01 SmolderingSmoke
6104      End
6105      ConditionState         = REALLYDAMAGED USER_1 NIGHT GARRISONED
6106        Model                = UBPalaceEGX_EN
6107        ParticleSysBone      = Smoke01 SmolderingSmoke
6108      End
6109  
6110      ; night snow
6111      ConditionState         = SNOW NIGHT
6112        Model                = UBPalace_NS
6113        ParticleSysBone      = Smoke01 SmolderingSmoke
6114        Animation            = UBPalace_NS.UBPalace_NS
6115        AnimationMode        = LOOP
6116      End
6117      ConditionState         = DAMAGED SNOW NIGHT
6118        Model                = UBPalace_DNS
6119        ParticleSysBone      = Smoke01 SmolderingSmoke
6120        Animation            = UBPalace_DNS.UBPalace_DNS
6121        AnimationMode        = LOOP
6122      End
6123      ConditionState         = REALLYDAMAGED RUBBLE SNOW NIGHT
6124        Model                = UBPalace_ENS
6125        ParticleSysBone      = Smoke01 SmolderingSmoke
6126      End
6127      
6128      ConditionState         = GARRISONED SNOW NIGHT
6129        Model                = UBPalace_GNS
6130        ParticleSysBone      = Smoke01 SmolderingSmoke
6131        Animation            = UBPalace_GNS.UBPalace_GNS
6132        AnimationMode        = LOOP
6133      End
6134      ConditionState         = USER_1 SNOW NIGHT
6135        Model                = UBPalaceEG_NS
6136        ParticleSysBone      = Smoke01 SmolderingSmoke
6137        Animation            = UBPalaceEG_NS.UBPalaceEG_NS
6138        AnimationMode        = LOOP
6139      End
6140      ConditionState         = USER_1 SNOW NIGHT GARRISONED
6141        Model                = UBPalaceEGX_NS
6142        ParticleSysBone      = Smoke01 SmolderingSmoke
6143        Animation            = UBPalaceEGX_NS.UBPalaceEGX_NS
6144        AnimationMode        = LOOP
6145      End
6146  
6147      ConditionState         = DAMAGED GARRISONED SNOW NIGHT
6148        Model                = UBPalace_DGNS
6149        ParticleSysBone      = Smoke01 SmolderingSmoke
6150        Animation            = UBPalace_DGNS.UBPalace_DGNS
6151        AnimationMode        = LOOP
6152      End
6153      ConditionState         = DAMAGED USER_1 SNOW NIGHT
6154        Model                = UBPalaceEG_DNS
6155        ParticleSysBone      = Smoke01 SmolderingSmoke
6156        Animation            = UBPalaceEG_DNS.UBPalaceEG_DNS
6157        AnimationMode        = LOOP
6158      End
6159      ConditionState         = DAMAGED USER_1 SNOW NIGHT GARRISONED
6160        Model                = UBPalaceEGX_DNS
6161        ParticleSysBone      = Smoke01 SmolderingSmoke
6162        Animation            = UBPalaceEGX_DNS.UBPalaceEGX_DNS
6163        AnimationMode        = LOOP
6164      End    
6165      
6166      ConditionState         = REALLYDAMAGED GARRISONED SNOW NIGHT
6167        Model                = UBPalace_ENSG
6168        ParticleSysBone      = Smoke01 SmolderingSmoke
6169      End
6170      ConditionState         = REALLYDAMAGED USER_1 SNOW NIGHT
6171        Model                = UBPalaceEG_ENS
6172        ParticleSysBone      = Smoke01 SmolderingSmoke
6173      End
6174      ConditionState         = REALLYDAMAGED USER_1 SNOW NIGHT GARRISONED
6175        Model                = UBPalaceEGX_ENS
6176        ParticleSysBone      = Smoke01 SmolderingSmoke
6177      End
6178      
6179      ;**************************************************************************************************************************
6180      ;This block handles every possible case with construction process, selling process, awaiting construction, and sold states
6181      ;for this draw module
6182      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
6183        Model              = UBPalace
6184        Animation          = UBPalace.UBPalace
6185        AnimationMode      = LOOP
6186        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6187      End
6188      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
6189        Model              = UBPalace_D
6190        Animation          = UBPalace_D.UBPalace_D
6191        AnimationMode      = LOOP
6192        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6193      End
6194      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED
6195        Model              = UBPalace_E
6196        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6197      End
6198      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT
6199        Model              = UBPalace_N
6200        Animation          = UBPalace_N.UBPalace_N
6201        AnimationMode      = LOOP
6202        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6203      End
6204      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT DAMAGED
6205        Model              = UBPalace_DN
6206        Animation          = UBPalace_DN.UBPalace_DN
6207        AnimationMode      = LOOP
6208        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6209      End
6210      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT REALLYDAMAGED
6211        Model              = UBPalace_EN
6212        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6213      End
6214      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW
6215        Model              = UBPalace_S
6216        Animation          = UBPalace_S.UBPalace_S
6217        AnimationMode      = LOOP
6218        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6219      End
6220      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW DAMAGED
6221        Model              = UBPalace_DS
6222        Animation          = UBPalace_DS.UBPalace_DS
6223        AnimationMode      = LOOP
6224        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6225      End
6226      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW REALLYDAMAGED
6227        Model              = UBPalace_ES
6228        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6229      End
6230      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW
6231        Model              = UBPalace_NS
6232        Animation          = UBPalace_NS.UBPalace_NS
6233        AnimationMode      = LOOP
6234        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6235      End
6236      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW DAMAGED
6237        Model              = UBPalace_DNS
6238        Animation          = UBPalace_DNS.UBPalace_DNS
6239        AnimationMode      = LOOP
6240        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6241      End
6242      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW REALLYDAMAGED
6243        Model              = UBPalace_ENS
6244        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6245      End
6246  
6247      ConditionState       = AWAITING_CONSTRUCTION 
6248        Model              = NONE
6249      End
6250      AliasConditionState  = AWAITING_CONSTRUCTION DAMAGED
6251      AliasConditionState  = AWAITING_CONSTRUCTION REALLYDAMAGED
6252      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT
6253      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT DAMAGED
6254      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT REALLYDAMAGED
6255      AliasConditionState  = AWAITING_CONSTRUCTION SNOW
6256      AliasConditionState  = AWAITING_CONSTRUCTION SNOW DAMAGED
6257      AliasConditionState  = AWAITING_CONSTRUCTION SNOW REALLYDAMAGED
6258      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW
6259      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW DAMAGED
6260      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW REALLYDAMAGED
6261      AliasConditionState  = SOLD 
6262      AliasConditionState  = SOLD DAMAGED
6263      AliasConditionState  = SOLD REALLYDAMAGED
6264      AliasConditionState  = SOLD NIGHT
6265      AliasConditionState  = SOLD NIGHT DAMAGED
6266      AliasConditionState  = SOLD NIGHT REALLYDAMAGED
6267      AliasConditionState  = SOLD SNOW
6268      AliasConditionState  = SOLD SNOW DAMAGED
6269      AliasConditionState  = SOLD SNOW REALLYDAMAGED
6270      AliasConditionState  = SOLD NIGHT SNOW
6271      AliasConditionState  = SOLD NIGHT SNOW DAMAGED
6272      AliasConditionState  = SOLD NIGHT SNOW REALLYDAMAGED
6273      AliasConditionState  = AWAITING_CONSTRUCTION DAMAGED USER_1
6274      AliasConditionState  = AWAITING_CONSTRUCTION REALLYDAMAGED USER_1
6275      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT USER_1
6276      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT DAMAGED USER_1
6277      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT REALLYDAMAGED USER_1
6278      AliasConditionState  = AWAITING_CONSTRUCTION SNOW USER_1
6279      AliasConditionState  = AWAITING_CONSTRUCTION SNOW DAMAGED USER_1
6280      AliasConditionState  = AWAITING_CONSTRUCTION SNOW REALLYDAMAGED USER_1
6281      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW USER_1
6282      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW DAMAGED USER_1
6283      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW REALLYDAMAGED USER_1
6284      AliasConditionState  = SOLD USER_1
6285      AliasConditionState  = SOLD DAMAGED USER_1
6286      AliasConditionState  = SOLD REALLYDAMAGED USER_1
6287      AliasConditionState  = SOLD NIGHT USER_1
6288      AliasConditionState  = SOLD NIGHT DAMAGED USER_1
6289      AliasConditionState  = SOLD NIGHT REALLYDAMAGED USER_1
6290      AliasConditionState  = SOLD SNOW USER_1
6291      AliasConditionState  = SOLD SNOW DAMAGED USER_1
6292      AliasConditionState  = SOLD SNOW REALLYDAMAGED USER_1
6293      AliasConditionState  = SOLD NIGHT SNOW USER_1
6294      AliasConditionState  = SOLD NIGHT SNOW DAMAGED USER_1
6295      AliasConditionState  = SOLD NIGHT SNOW REALLYDAMAGED USER_1
6296      AliasConditionState  = GARRISONED SOLD 
6297      AliasConditionState  = GARRISONED SOLD DAMAGED
6298      AliasConditionState  = GARRISONED SOLD REALLYDAMAGED
6299      AliasConditionState  = GARRISONED SOLD NIGHT
6300      AliasConditionState  = GARRISONED SOLD NIGHT DAMAGED
6301      AliasConditionState  = GARRISONED SOLD NIGHT REALLYDAMAGED
6302      AliasConditionState  = GARRISONED SOLD SNOW
6303      AliasConditionState  = GARRISONED SOLD SNOW DAMAGED
6304      AliasConditionState  = GARRISONED SOLD SNOW REALLYDAMAGED
6305      AliasConditionState  = GARRISONED SOLD NIGHT SNOW
6306      AliasConditionState  = GARRISONED SOLD NIGHT SNOW DAMAGED
6307      AliasConditionState  = GARRISONED SOLD NIGHT SNOW REALLYDAMAGED
6308      AliasConditionState  = GARRISONED SOLD USER_1
6309      AliasConditionState  = GARRISONED SOLD DAMAGED USER_1
6310      AliasConditionState  = GARRISONED SOLD REALLYDAMAGED USER_1
6311      AliasConditionState  = GARRISONED SOLD NIGHT USER_1
6312      AliasConditionState  = GARRISONED SOLD NIGHT DAMAGED USER_1
6313      AliasConditionState  = GARRISONED SOLD NIGHT REALLYDAMAGED USER_1
6314      AliasConditionState  = GARRISONED SOLD SNOW USER_1
6315      AliasConditionState  = GARRISONED SOLD SNOW DAMAGED USER_1
6316      AliasConditionState  = GARRISONED SOLD SNOW REALLYDAMAGED USER_1
6317      AliasConditionState  = GARRISONED SOLD NIGHT SNOW USER_1
6318      AliasConditionState  = GARRISONED SOLD NIGHT SNOW DAMAGED USER_1
6319      AliasConditionState  = GARRISONED SOLD NIGHT SNOW REALLYDAMAGED USER_1
6320      ;**************************************************************************************************************************
6321  
6322    End
6323    PlacementViewAngle = -45
6324  
6325    ; ------------ construction-zone fence -----------------
6326    Draw = W3DModelDraw ModuleTag_02
6327    AnimationsRequirePower = No
6328      DefaultConditionState
6329        Model           = None
6330        TransitionKey   = DOWN_DEFAULT
6331      End
6332      ConditionState    = NIGHT
6333        Model           = None
6334        TransitionKey   = DOWN_DEFAULT
6335      End
6336      ConditionState    = SNOW
6337        Model           = None
6338        TransitionKey   = DOWN_DEFAULT
6339      End
6340      ConditionState    = SNOW NIGHT
6341        Model           = None
6342        TransitionKey   = DOWN_DEFAULT
6343      End
6344      ConditionState    = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
6345        Model           = UBPalace_A4
6346        Animation       = UBPalace_A4.UBPalace_A4
6347        AnimationMode   = MANUAL
6348        Flags           = START_FRAME_LAST
6349        TransitionKey   = UP_DAY
6350      End
6351      ConditionState    = NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
6352        Model           = UBPalace_A4N
6353        Animation       = UBPalace_A4N.UBPalace_A4N
6354        AnimationMode   = MANUAL
6355        Flags           = START_FRAME_LAST
6356        TransitionKey   = UP_NIGHT
6357      End
6358      ConditionState    = SNOW AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
6359        Model           = UBPalace_A4S
6360        Animation       = UBPalace_A4S.UBPalace_A4S
6361        AnimationMode   = MANUAL
6362        Flags           = START_FRAME_LAST
6363        TransitionKey   = UP_SNOW
6364      End
6365      ConditionState    = SNOW NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
6366        Model           = UBPalace_A4SN
6367        Animation       = UBPalace_A4SN.UBPalace_A4SN
6368        AnimationMode   = MANUAL
6369        Flags           = START_FRAME_LAST
6370        TransitionKey   = UP_SNOWNIGHT
6371      End
6372      TransitionState   = DOWN_DEFAULT UP_DAY
6373        Model           = UBPalace_A4
6374        Animation       = UBPalace_A4.UBPalace_A4
6375        AnimationMode   = ONCE
6376        AnimationSpeedFactorRange = 1.0 1.0
6377        Flags           = START_FRAME_FIRST
6378      End
6379      TransitionState   = DOWN_DEFAULT UP_NIGHT
6380        Model           = UBPalace_A4N
6381        Animation       = UBPalace_A4N.UBPalace_A4N
6382        AnimationMode   = ONCE
6383        AnimationSpeedFactorRange = 1.0 1.0
6384        Flags           = START_FRAME_FIRST
6385      End
6386      TransitionState   = DOWN_DEFAULT UP_SNOW
6387        Model           = UBPalace_A4S
6388        Animation       = UBPalace_A4S.UBPalace_A4S
6389        AnimationMode   = ONCE
6390        AnimationSpeedFactorRange = 1.0 1.0
6391        Flags           = START_FRAME_FIRST
6392      End
6393      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
6394        Model           = UBPalace_A4SN
6395        Animation       = UBPalace_A4SN.UBPalace_A4SN
6396        AnimationMode   = ONCE
6397        AnimationSpeedFactorRange = 1.0 1.0
6398        Flags           = START_FRAME_FIRST
6399      End
6400      TransitionState   = UP_DAY DOWN_DEFAULT
6401        Model           = UBPalace_A4
6402        Animation       = UBPalace_A4.UBPalace_A4
6403        AnimationMode   = ONCE_BACKWARDS
6404        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
6405        Flags           = START_FRAME_LAST
6406      End
6407      TransitionState   = UP_NIGHT DOWN_DEFAULT
6408        Model           = UBPalace_A4N
6409        Animation       = UBPalace_A4N.UBPalace_A4N
6410        AnimationMode   = ONCE_BACKWARDS
6411        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
6412        Flags           = START_FRAME_LAST
6413      End
6414      TransitionState   = UP_SNOW DOWN_DEFAULT
6415        Model           = UBPalace_A4S
6416        Animation       = UBPalace_A4S.UBPalace_A4S
6417        AnimationMode   = ONCE_BACKWARDS
6418        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
6419        Flags           = START_FRAME_LAST
6420      End
6421      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
6422        Model           = UBPalace_A4SN
6423        Animation       = UBPalace_A4SN.UBPalace_A4SN
6424        AnimationMode   = ONCE_BACKWARDS
6425        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
6426        Flags           = START_FRAME_LAST
6427      End
6428    End
6429  
6430    ; ------------ under-construction scaffolding -----------------
6431    Draw = W3DModelDraw ModuleTag_03
6432    AnimationsRequirePower = No
6433      MinLODRequired = MEDIUM
6434      DefaultConditionState
6435        Model           = None
6436        TransitionKey   = DOWN_DEFAULT
6437      End
6438      ConditionState    = NIGHT
6439        Model           = None
6440        TransitionKey   = DOWN_DEFAULT
6441      End
6442      ConditionState    = SNOW
6443        Model           = None
6444        TransitionKey   = DOWN_DEFAULT
6445      End
6446      ConditionState    = SNOW NIGHT
6447        Model           = None
6448        TransitionKey   = DOWN_DEFAULT
6449      End
6450      ConditionState    = PARTIALLY_CONSTRUCTED
6451        Model           = UBPalace_A6
6452        Animation       = UBPalace_A6.UBPalace_A6
6453        AnimationMode   = MANUAL
6454        Flags           = START_FRAME_LAST
6455        TransitionKey   = UP_DAY
6456        ParticleSysBone = Dust01 BuildingDust
6457        ParticleSysBone = Smoke01 BuildUpSmoke
6458        ParticleSysBone = Smoke02 BuildUpSmoke
6459        ParticleSysBone = Smoke03 BuildUpSmoke
6460        ParticleSysBone = Smoke04 BuildUpSmoke
6461        ParticleSysBone = Smoke05 BuildUpSmoke
6462      End
6463      ConditionState    = NIGHT PARTIALLY_CONSTRUCTED
6464        Model           = UBPalace_A6N
6465        Animation       = UBPalace_A6N.UBPalace_A6N
6466        AnimationMode   = MANUAL
6467        Flags           = START_FRAME_LAST
6468        TransitionKey   = UP_NIGHT
6469        ParticleSysBone = Dust01 BuildingDust
6470        ParticleSysBone = Smoke01 BuildUpSmoke
6471        ParticleSysBone = Smoke02 BuildUpSmoke
6472        ParticleSysBone = Smoke03 BuildUpSmoke
6473        ParticleSysBone = Smoke04 BuildUpSmoke
6474        ParticleSysBone = Smoke05 BuildUpSmoke
6475      End
6476      ConditionState    = SNOW PARTIALLY_CONSTRUCTED
6477        Model           = UBPalace_A6S
6478        Animation       = UBPalace_A6S.UBPalace_A6S
6479        AnimationMode   = MANUAL
6480        Flags           = START_FRAME_LAST
6481        TransitionKey   = UP_SNOW
6482        ParticleSysBone = Dust01 BuildingSnowDust
6483        ParticleSysBone = Smoke01 BuildUpSnowSmoke
6484        ParticleSysBone = Smoke02 BuildUpSnowSmoke
6485        ParticleSysBone = Smoke03 BuildUpSnowSmoke
6486        ParticleSysBone = Smoke04 BuildUpSnowSmoke
6487        ParticleSysBone = Smoke05 BuildUpSnowSmoke
6488      End
6489      ConditionState    = SNOW NIGHT PARTIALLY_CONSTRUCTED
6490        Model           = UBPalace_A6SN
6491        Animation       = UBPalace_A6SN.UBPalace_A6SN
6492        AnimationMode   = MANUAL
6493        Flags           = START_FRAME_LAST
6494        TransitionKey   = UP_SNOWNIGHT
6495        ParticleSysBone = Dust01 BuildingNightSnowDust
6496        ParticleSysBone = Smoke01 BuildUpNightSnowSmoke
6497        ParticleSysBone = Smoke02 BuildUpNightSnowSmoke
6498        ParticleSysBone = Smoke03 BuildUpNightSnowSmoke
6499        ParticleSysBone = Smoke04 BuildUpNightSnowSmoke
6500        ParticleSysBone = Smoke05 BuildUpNightSnowSmoke
6501      End
6502      TransitionState   = DOWN_DEFAULT UP_DAY
6503       Model            = UBPalace_A6
6504        Animation       = UBPalace_A6.UBPalace_A6
6505        AnimationMode   = ONCE
6506        AnimationSpeedFactorRange = 1.0 1.0
6507        Flags           = START_FRAME_FIRST
6508      End
6509      TransitionState   = DOWN_DEFAULT UP_NIGHT
6510       Model            = UBPalace_A6N
6511        Animation       = UBPalace_A6N.UBPalace_A6N
6512        AnimationMode   = ONCE
6513        AnimationSpeedFactorRange = 1.0 1.0
6514        Flags           = START_FRAME_FIRST
6515      End
6516      TransitionState   = DOWN_DEFAULT UP_SNOW
6517       Model            = UBPalace_A6S
6518        Animation       = UBPalace_A6S.UBPalace_A6S
6519        AnimationMode   = ONCE
6520        AnimationSpeedFactorRange = 1.0 1.0
6521        Flags           = START_FRAME_FIRST
6522      End
6523      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
6524       Model            = UBPalace_A6SN
6525        Animation       = UBPalace_A6SN.UBPalace_A6SN
6526        AnimationMode   = ONCE
6527        AnimationSpeedFactorRange = 1.0 1.0
6528        Flags           = START_FRAME_FIRST
6529      End
6530      TransitionState   = UP_DAY DOWN_DEFAULT
6531        Model           = UBPalace_A6
6532        Animation       = UBPalace_A6.UBPalace_A6
6533        AnimationMode   = ONCE_BACKWARDS
6534        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
6535        Flags           = START_FRAME_LAST
6536      End
6537      TransitionState   = UP_NIGHT DOWN_DEFAULT
6538        Model           = UBPalace_A6N
6539        Animation       = UBPalace_A6N.UBPalace_A6N
6540        AnimationMode   = ONCE_BACKWARDS
6541        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
6542        Flags           = START_FRAME_LAST
6543      End
6544      TransitionState   = UP_SNOW DOWN_DEFAULT
6545        Model           = UBPalace_A6S
6546        Animation       = UBPalace_A6S.UBPalace_A6S
6547        AnimationMode   = ONCE_BACKWARDS
6548        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
6549        Flags           = START_FRAME_LAST
6550      End
6551      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
6552        Model           = UBPalace_A6SN
6553        Animation       = UBPalace_A6SN.UBPalace_A6SN
6554        AnimationMode   = ONCE_BACKWARDS
6555        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
6556        Flags           = START_FRAME_LAST
6557      End
6558    End
6559    
6560  ; ***DESIGN parameters ***
6561    DisplayName      = OBJECT:Palace
6562    Side = GLADemolitionGeneral
6563    EditorSorting    = STRUCTURE
6564    Prerequisites
6565      Object = Demo_GLAArmsDealer
6566    End
6567    BuildCost        = 2500
6568    BuildTime        = 45.0           ; in seconds
6569    EnergyProduction = 0
6570    VisionRange     = 300.0           ; Shroud clearing distance
6571    ShroudClearingRange = 300
6572    ArmorSet
6573      Conditions      = None
6574      Armor           = StructureArmor
6575      DamageFX        = StructureDamageFXNoShake
6576    End
6577    ArmorSet
6578      Conditions        = PLAYER_UPGRADE
6579      Armor             = GLAUpgradedStructureArmor
6580      DamageFX          = StructureDamageFXNoShake
6581    End
6582    CommandSet = Demo_GLAPalaceCommandSet
6583    ExperienceValue     = 300 300 300 300  ; Experience point value at each level
6584  
6585    ; *** AUDIO Parameters ***
6586    VoiceSelect = PalaceSelect
6587    SoundOnDamaged        = BuildingDamagedStateLight
6588    SoundOnReallyDamaged  = BuildingDestroy
6589  
6590    UnitSpecificSounds
6591      UnderConstruction     = UnderConstructionLoop
6592    End
6593  
6594    ; *** ENGINEERING Parameters ***
6595    RadarPriority   = STRUCTURE
6596    KindOf          = PRELOAD STRUCTURE SELECTABLE IMMOBILE FS_TECHNOLOGY GARRISONABLE_UNTIL_DESTROYED IMMUNE_TO_CAPTURE MP_COUNT_FOR_VICTORY SCORE_CREATE FS_ADVANCED_TECH
6597    Body            = StructureBody ModuleTag_04
6598      MaxHealth       = 3000.0
6599      InitialHealth   = 3000.0
6600  
6601      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
6602      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
6603      SubdualDamageCap = 3200
6604      SubdualDamageHealRate = 500
6605      SubdualDamageHealAmount = 100
6606    End
6607    Behavior        = ArmorUpgrade ModuleTag_Armor01
6608      TriggeredBy   = Upgrade_GLAFortifiedStructure
6609    End
6610  
6611    Behavior        = ModelConditionUpgrade ModuleTag_Armor01Visual
6612      ConditionFlag = USER_1
6613      TriggeredBy   = Upgrade_GLAFortifiedStructure
6614    End
6615    Behavior = ProductionUpdate ModuleTag_05
6616      ; nothing
6617    End
6618  
6619    Behavior             = CreateObjectDie ModuleTag_08
6620      CreationList  = OCL_SmallStructureDebris
6621    End
6622    Behavior             = FXListDie ModuleTag_09
6623      DeathFX       = FX_StructureMediumDeath
6624    End
6625  
6626    Behavior = GarrisonContain ModuleTag_10
6627      ContainMax                    = 5
6628      EnterSound                    = GarrisonEnter
6629      ExitSound                     = GarrisonExit
6630      ImmuneToClearBuildingAttacks  = Yes
6631    End
6632  
6633    Behavior = FlammableUpdate ModuleTag_11
6634      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
6635      AflameDamageAmount = 5       ; taking this much damage...
6636      AflameDamageDelay = 500       ; this often.
6637    End
6638  
6639    Behavior             = RebuildHoleExposeDie ModuleTag_06
6640      HoleName      = GLAHolePalace
6641      HoleMaxHealth = 500.0
6642    End
6643    Behavior = DestroyDie ModuleTag_07
6644      ;nothing
6645    End
6646  
6647    Behavior = TransitionDamageFX ModuleTag_12
6648      ;-------------DESIGNED FOR MEDIUM SIZED FACTION BUILDING TRANSITIONS-------------------
6649      DamagedParticleSystem1       = Bone:None RandomBone:No PSys:StructureTransitionMediumSmoke
6650      ;---------------------------------------------------------------------------------------
6651      ReallyDamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionMediumSmoke
6652      ReallyDamagedParticleSystem2 = Bone:None RandomBone:No PSys:StructureTransitionMediumExplosion
6653      ReallyDamagedParticleSystem3 = Bone:None RandomBone:No PSys:StructureTransitionMediumShockwave
6654    End
6655  
6656    Geometry            = BOX
6657    GeometryMajorRadius = 43.0
6658    GeometryMinorRadius = 58.0
6659    GeometryHeight      = 30.0
6660    GeometryIsSmall     = No
6661    Shadow          = SHADOW_VOLUME
6662    BuildCompletion = PLACED_BY_PLAYER
6663  
6664  End
6665  
6666  ;------------------------------------------------------------------------------
6667  ObjectReskin Demo_GLAHolePalace Demo_GLAHole
6668    Draw                     = W3DModelDraw ModuleTag_01
6669      OkToChangeModelColor   = Yes
6670      ConditionState         = NONE
6671        Model                = UBHole
6672      End
6673      ConditionState         = DAMAGED
6674        Model                = UBHole_D
6675        ParticleSysBone      = Smoke01 SteamVent
6676      End
6677      ConditionState         = REALLYDAMAGED RUBBLE
6678        Model                = UBHole_E
6679        ParticleSysBone      = Smoke01 SteamVent
6680        ParticleSysBone      = Smoke02 SteamVent
6681        ParticleSysBone      = Fire01 GLAPowerPlantFlame
6682        ParticleSysBone      = Fire02 GLAPowerPlantFlame
6683        ParticleSysBone      = Fire03 GLAPowerPlantFlame
6684      End
6685    End
6686    Draw                     = W3DModelDraw ModuleTag_02
6687      OkToChangeModelColor   = Yes
6688      ConditionState         = NONE
6689        Model                = UBPalace_R
6690        ParticleSysBone      = Smoke01 SmolderingSmoke
6691        ParticleSysBone      = Smoke02 SmolderingSmoke
6692        ParticleSysBone      = Flame01 FireBurningBarricade01
6693      End
6694      ConditionState         = DAMAGED REALLYDAMAGED
6695        Model                = UBPalace_R
6696        ParticleSysBone      = Smoke01 SmolderingSmoke
6697      End
6698    End
6699  End
6700  
6701  
6702  
6703  
6704  ;------------------------------------------------------------------------------
6705  Object Demo_GLASupplyStash
6706  
6707    ; *** ART Parameters ***
6708    SelectPortrait         = SUSupplyCenter_L
6709    ButtonImage            = SUSupplyCenter
6710  
6711  ;  UpgradeCameo1 = Upgrade_GLAFortifiedStructure
6712  
6713    Draw = W3DModelDraw ModuleTag_01
6714      OkToChangeModelColor = Yes
6715      ; day
6716      ConditionState = NONE
6717        Model = UBSupply
6718        ParticleSysBone = Smoke01 SteamVent
6719        Animation     = UBSupply.UBSupply
6720        AnimationMode = LOOP
6721      End
6722      ConditionState = DAMAGED
6723        Model = UBSupply_D
6724        ParticleSysBone = Smoke01 SteamVent
6725        Animation     = UBSupply_D.UBSupply_D
6726        AnimationMode = LOOP
6727      End
6728      ConditionState = REALLYDAMAGED RUBBLE
6729        Model = UBSupply_E
6730        ParticleSysBone = Smoke01 SteamVent
6731      End
6732      ConditionState         = GARRISONED
6733        Model                = UBSpplyEG
6734        ParticleSysBone      = Smoke01 SmolderingSmoke
6735        Animation            = UBSpplyEG.UBSpplyEG
6736        AnimationMode        = LOOP
6737      End
6738      ConditionState         = DAMAGED GARRISONED
6739        Model                = UBSpplyEG_D
6740        ParticleSysBone      = Smoke01 SmolderingSmoke
6741        Animation            = UBSpplyEG_D.UBSpplyEG_D
6742        AnimationMode        = LOOP
6743      End
6744      ConditionState         = REALLYDAMAGED GARRISONED
6745        Model                = UBSpplyEG_E
6746        ParticleSysBone      = Smoke01 SmolderingSmoke
6747        Animation            = UBSpplyEG_E.UBSpplyEG_E
6748        AnimationMode        = LOOP
6749      End
6750      
6751      ; SNOW
6752      ConditionState = SNOW
6753        Model = UBSupply_S
6754        ParticleSysBone = Smoke01 SteamVent
6755        Animation     = UBSupply_S.UBSupply_S
6756        AnimationMode = LOOP
6757      End
6758      ConditionState = DAMAGED SNOW
6759        Model = UBSupply_DS
6760        ParticleSysBone = Smoke01 SteamVent
6761        Animation     = UBSupply_DS.UBSupply_DS
6762        AnimationMode = LOOP
6763      End
6764      ConditionState = REALLYDAMAGED RUBBLE SNOW
6765        Model = UBSupply_ES
6766        ParticleSysBone = Smoke01 SteamVent
6767      End
6768      ConditionState         = GARRISONED SNOW
6769        Model                = UBSpplyEG_S
6770        ParticleSysBone      = Smoke01 SmolderingSmoke
6771        Animation            = UBSpplyEG_S.UBSpplyEG_S
6772        AnimationMode        = LOOP
6773      End
6774      ConditionState         = DAMAGED GARRISONED SNOW
6775        Model                = UBSpplyEG_DS
6776        ParticleSysBone      = Smoke01 SmolderingSmoke
6777        Animation            = UBSpplyEG_DS.UBSpplyEG_DS
6778        AnimationMode        = LOOP
6779      End
6780      ConditionState         = REALLYDAMAGED GARRISONED SNOW
6781        Model                = UBSpplyEG_ES
6782        ParticleSysBone      = Smoke01 SmolderingSmoke
6783        Animation            = UBSpplyEG_ES.UBSpplyEG_ES
6784        AnimationMode        = LOOP
6785      End
6786  
6787      ; night
6788      ConditionState = NIGHT
6789        Model = UBSupply_N
6790        Animation     = UBSupply_N.UBSupply_N
6791        AnimationMode = LOOP
6792        ParticleSysBone = Smoke01 SteamVent
6793      End
6794      ConditionState = DAMAGED NIGHT
6795        Model = UBSupply_DN
6796        Animation     = UBSupply_DN.UBSupply_DN
6797        AnimationMode = LOOP
6798        ParticleSysBone = Smoke01 SteamVent
6799        ParticleSysBone = Smoke02 SmolderingSmoke
6800        ParticleSysBone = Smoke03 SmolderingSmoke
6801        ParticleSysBone = Smoke04 SmolderingSmoke
6802        ParticleSysBone = Fire01 SmolderingFire
6803      End
6804      ConditionState = REALLYDAMAGED RUBBLE NIGHT
6805        Model = UBSupply_EN
6806        ParticleSysBone = Smoke01 SteamVent
6807        ParticleSysBone = Smoke02 SmolderingSmoke
6808        ParticleSysBone = Smoke03 SmolderingSmoke
6809        ParticleSysBone = Smoke04 SmolderingSmoke
6810        ParticleSysBone = Smoke05 SmolderingSmoke
6811        ParticleSysBone = Smoke06 SmolderingSmoke
6812        ParticleSysBone = Fire01 SmolderingFire
6813        ParticleSysBone = Fire02 SmolderingFire
6814        ParticleSysBone = Fire03 SmolderingFire
6815      End
6816      ConditionState         = GARRISONED NIGHT
6817        Model                = UBSpplyEG_N
6818        ParticleSysBone      = Smoke01 SmolderingSmoke
6819        Animation            = UBSpplyEG_N.UBSpplyEG_N
6820        AnimationMode        = LOOP
6821      End
6822      ConditionState         = DAMAGED GARRISONED NIGHT
6823        Model                = UBSpplyEG_DN
6824        ParticleSysBone      = Smoke01 SmolderingSmoke
6825        Animation            = UBSpplyEG_DN.UBSpplyEG_DN
6826        AnimationMode        = LOOP
6827      End
6828      ConditionState         = REALLYDAMAGED GARRISONED NIGHT
6829        Model                = UBSpplyEG_EN
6830        ParticleSysBone      = Smoke01 SmolderingSmoke
6831        Animation            = UBSpplyEG_EN.UBSpplyEG_EN
6832        AnimationMode        = LOOP
6833      End
6834       
6835      ; night snow
6836      ConditionState = NIGHT SNOW
6837        Model = UBSupply_NS
6838        Animation     = UBSupply_NS.UBSupply_NS
6839        AnimationMode = LOOP
6840        ParticleSysBone = Smoke01 SteamVent
6841      End
6842      ConditionState = DAMAGED NIGHT SNOW
6843        Model = UBSupply_DNS
6844        Animation     = UBSupply_DNS.UBSupply_DNS
6845        AnimationMode = LOOP
6846        ParticleSysBone = Smoke01 SteamVent
6847        ParticleSysBone = Smoke02 SmolderingSmoke
6848        ParticleSysBone = Smoke03 SmolderingSmoke
6849        ParticleSysBone = Smoke04 SmolderingSmoke
6850        ParticleSysBone = Fire01 SmolderingFire
6851      End
6852      ConditionState = REALLYDAMAGED RUBBLE NIGHT SNOW
6853        Model = UBSupply_ENS
6854        ParticleSysBone = Smoke01 SteamVent
6855        ParticleSysBone = Smoke02 SmolderingSmoke
6856        ParticleSysBone = Smoke03 SmolderingSmoke
6857        ParticleSysBone = Smoke04 SmolderingSmoke
6858        ParticleSysBone = Smoke05 SmolderingSmoke
6859        ParticleSysBone = Smoke06 SmolderingSmoke
6860        ParticleSysBone = Fire01 SmolderingFire
6861        ParticleSysBone = Fire02 SmolderingFire
6862        ParticleSysBone = Fire03 SmolderingFire
6863      End
6864      ConditionState         = GARRISONED SNOW NIGHT
6865        Model                = UBSpplyEG_NS
6866        ParticleSysBone      = Smoke01 SmolderingSmoke
6867        Animation            = UBSpplyEG_NS.UBSpplyEG_NS
6868        AnimationMode        = LOOP
6869      End
6870      ConditionState         = DAMAGED GARRISONED SNOW NIGHT
6871        Model                = UBSpplyEG_DNS
6872        ParticleSysBone      = Smoke01 SmolderingSmoke
6873        Animation            = UBSpplyEG_DNS.UBSpplyEG_DNS
6874        AnimationMode        = LOOP
6875      End
6876      ConditionState         = REALLYDAMAGED GARRISONED SNOW NIGHT
6877        Model                = UBSpplyEG_ENS
6878        ParticleSysBone      = Smoke01 SmolderingSmoke
6879        Animation            = UBSpplyEG_ENS.UBSpplyEG_ENS
6880        AnimationMode        = LOOP
6881      End
6882  
6883          ;**************************************************************************************************************************
6884      ;This block handles every possible case with construction process, selling process, awaiting construction, and sold states
6885      ;for this draw module
6886      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
6887        Model              = UBSupply
6888        Animation          = UBSupply.UBSupply
6889        AnimationMode      = LOOP
6890        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6891      End
6892      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
6893        Model              = UBSupply_D
6894        Animation          = UBSupply_D.UBSupply_D
6895        AnimationMode      = LOOP
6896        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6897      End
6898      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED
6899        Model              = UBSupply_E
6900        ;Animation          = UBSupply_E.UBSupply_E
6901        ;AnimationMode      = LOOP
6902        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6903      End
6904      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT
6905        Model              = UBSupply_N
6906        Animation          = UBSupply_N.UBSupply_N
6907        AnimationMode      = LOOP
6908        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6909      End
6910      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT DAMAGED
6911        Model              = UBSupply_DN
6912        Animation          = UBSupply_DN.UBSupply_DN
6913        AnimationMode      = LOOP
6914        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6915      End
6916      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT REALLYDAMAGED
6917        Model              = UBSupply_EN
6918        ;Animation          = UBSupply_EN.UBSupply_EN
6919        ;AnimationMode      = LOOP
6920        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6921      End
6922      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW
6923        Model              = UBSupply_S
6924        Animation          = UBSupply_S.UBSupply_S
6925        AnimationMode      = LOOP
6926        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6927      End
6928      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW DAMAGED
6929        Model              = UBSupply_DS
6930        Animation          = UBSupply_DS.UBSupply_DS
6931        AnimationMode      = LOOP
6932        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6933      End
6934      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW REALLYDAMAGED
6935        Model              = UBSupply_ES
6936        ;Animation          = UBSupply_ES.UBSupply_ES
6937        ;AnimationMode      = LOOP
6938        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6939      End
6940      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW
6941        Model              = UBSupply_NS
6942        Animation          = UBSupply_NS.UBSupply_NS
6943        AnimationMode      = LOOP
6944        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6945      End
6946      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW DAMAGED
6947        Model              = UBSupply_DNS
6948        Animation          = UBSupply_DNS.UBSupply_DNS
6949        AnimationMode      = LOOP
6950        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6951      End
6952      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW REALLYDAMAGED
6953        Model              = UBSupply_ENS
6954        ;Animation          = UBSupply_ENS.UBSupply_ENS
6955        ;AnimationMode      = LOOP
6956        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
6957      End
6958  
6959      ConditionState       = AWAITING_CONSTRUCTION 
6960        Model              = NONE
6961      End
6962      AliasConditionState  = AWAITING_CONSTRUCTION DAMAGED
6963      AliasConditionState  = AWAITING_CONSTRUCTION REALLYDAMAGED
6964      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT
6965      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT DAMAGED
6966      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT REALLYDAMAGED
6967      AliasConditionState  = AWAITING_CONSTRUCTION SNOW
6968      AliasConditionState  = AWAITING_CONSTRUCTION SNOW DAMAGED
6969      AliasConditionState  = AWAITING_CONSTRUCTION SNOW REALLYDAMAGED
6970      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW
6971      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW DAMAGED
6972      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW REALLYDAMAGED
6973      AliasConditionState  = SOLD 
6974      AliasConditionState  = SOLD DAMAGED
6975      AliasConditionState  = SOLD REALLYDAMAGED
6976      AliasConditionState  = SOLD NIGHT
6977      AliasConditionState  = SOLD NIGHT DAMAGED
6978      AliasConditionState  = SOLD NIGHT REALLYDAMAGED
6979      AliasConditionState  = SOLD SNOW
6980      AliasConditionState  = SOLD SNOW DAMAGED
6981      AliasConditionState  = SOLD SNOW REALLYDAMAGED
6982      AliasConditionState  = SOLD NIGHT SNOW
6983      AliasConditionState  = SOLD NIGHT SNOW DAMAGED
6984      AliasConditionState  = SOLD NIGHT SNOW REALLYDAMAGED
6985      AliasConditionState  = GARRISONED SOLD 
6986      AliasConditionState  = GARRISONED SOLD DAMAGED
6987      AliasConditionState  = GARRISONED SOLD REALLYDAMAGED
6988      AliasConditionState  = GARRISONED SOLD NIGHT
6989      AliasConditionState  = GARRISONED SOLD NIGHT DAMAGED
6990      AliasConditionState  = GARRISONED SOLD NIGHT REALLYDAMAGED
6991      AliasConditionState  = GARRISONED SOLD SNOW
6992      AliasConditionState  = GARRISONED SOLD SNOW DAMAGED
6993      AliasConditionState  = GARRISONED SOLD SNOW REALLYDAMAGED
6994      AliasConditionState  = GARRISONED SOLD NIGHT SNOW
6995      AliasConditionState  = GARRISONED SOLD NIGHT SNOW DAMAGED
6996      AliasConditionState  = GARRISONED SOLD NIGHT SNOW REALLYDAMAGED
6997      ;**************************************************************************************************************************
6998  
6999    End
7000  
7001     ; ------------ construction-zone fence -----------------
7002    Draw = W3DModelDraw ModuleTag_02
7003    AnimationsRequirePower = No
7004      DefaultConditionState
7005        Model           = None
7006        TransitionKey   = DOWN_DEFAULT
7007      End
7008      ConditionState    = NIGHT
7009        Model           = None
7010        TransitionKey   = DOWN_DEFAULT
7011      End
7012      ConditionState    = SNOW
7013        Model           = None
7014        TransitionKey   = DOWN_DEFAULT
7015      End
7016      ConditionState    = SNOW NIGHT
7017        Model           = None
7018        TransitionKey   = DOWN_DEFAULT
7019      End
7020      ConditionState    = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
7021        Model           = UBSupply_A4
7022        Animation       = UBSupply_A4.UBSupply_A4
7023        AnimationMode   = MANUAL
7024        Flags           = START_FRAME_LAST
7025        TransitionKey   = UP_DAY
7026      End
7027      ConditionState    = NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
7028        Model           = UBSupply_A4N
7029        Animation       = UBSupply_A4N.UBSupply_A4N
7030        AnimationMode   = MANUAL
7031        Flags           = START_FRAME_LAST
7032        TransitionKey   = UP_NIGHT
7033      End
7034      ConditionState    = SNOW AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
7035        Model           = UBSupply_A4S
7036        Animation       = UBSupply_A4S.UBSupply_A4S
7037        AnimationMode   = MANUAL
7038        Flags           = START_FRAME_LAST
7039        TransitionKey   = UP_SNOW
7040      End
7041      ConditionState    = SNOW NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
7042        Model           = UBSupply_A4SN
7043        Animation       = UBSupply_A4SN.UBSupply_A4SN
7044        AnimationMode   = MANUAL
7045        Flags           = START_FRAME_LAST
7046        TransitionKey   = UP_SNOWNIGHT
7047      End
7048      TransitionState   = DOWN_DEFAULT UP_DAY
7049        Model           = UBSupply_A4
7050        Animation       = UBSupply_A4.UBSupply_A4
7051        AnimationMode   = ONCE
7052        AnimationSpeedFactorRange = 1.0 1.0
7053        Flags           = START_FRAME_FIRST
7054      End
7055      TransitionState   = DOWN_DEFAULT UP_NIGHT
7056        Model           = UBSupply_A4N
7057        Animation       = UBSupply_A4N.UBSupply_A4N
7058        AnimationMode   = ONCE
7059        AnimationSpeedFactorRange = 1.0 1.0
7060        Flags           = START_FRAME_FIRST
7061      End
7062      TransitionState   = DOWN_DEFAULT UP_SNOW
7063        Model           = UBSupply_A4S
7064        Animation       = UBSupply_A4S.UBSupply_A4S
7065        AnimationMode   = ONCE
7066        AnimationSpeedFactorRange = 1.0 1.0
7067        Flags           = START_FRAME_FIRST
7068      End
7069      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
7070        Model           = UBSupply_A4SN
7071        Animation       = UBSupply_A4SN.UBSupply_A4SN
7072        AnimationMode   = ONCE
7073        AnimationSpeedFactorRange = 1.0 1.0
7074        Flags           = START_FRAME_FIRST
7075      End
7076      TransitionState   = UP_DAY DOWN_DEFAULT
7077        Model           = UBSupply_A4
7078        Animation       = UBSupply_A4.UBSupply_A4
7079        AnimationMode   = ONCE_BACKWARDS
7080        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
7081        Flags           = START_FRAME_LAST
7082      End
7083      TransitionState   = UP_NIGHT DOWN_DEFAULT
7084        Model           = UBSupply_A4N
7085        Animation       = UBSupply_A4N.UBSupply_A4N
7086        AnimationMode   = ONCE_BACKWARDS
7087        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
7088        Flags           = START_FRAME_LAST
7089      End
7090      TransitionState   = UP_SNOW DOWN_DEFAULT
7091        Model           = UBSupply_A4S
7092        Animation       = UBSupply_A4S.UBSupply_A4S
7093        AnimationMode   = ONCE_BACKWARDS
7094        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
7095        Flags           = START_FRAME_LAST
7096      End
7097      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
7098        Model           = UBSupply_A4SN
7099        Animation       = UBSupply_A4SN.UBSupply_A4SN
7100        AnimationMode   = ONCE_BACKWARDS
7101        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
7102        Flags           = START_FRAME_LAST
7103      End
7104    End
7105  
7106    ; ------------ under-construction scaffolding -----------------
7107    Draw = W3DModelDraw ModuleTag_03
7108    AnimationsRequirePower = No
7109      MinLODRequired = MEDIUM
7110      DefaultConditionState
7111        Model           = None
7112        TransitionKey   = DOWN_DEFAULT
7113      End
7114      ConditionState    = NIGHT
7115        Model           = None
7116        TransitionKey   = DOWN_DEFAULT
7117      End
7118      ConditionState    = SNOW
7119        Model           = None
7120        TransitionKey   = DOWN_DEFAULT
7121      End
7122      ConditionState    = SNOW NIGHT
7123        Model           = None
7124        TransitionKey   = DOWN_DEFAULT
7125      End
7126      ConditionState    = PARTIALLY_CONSTRUCTED
7127        Model           = UBSupply_A6
7128        Animation       = UBSupply_A6.UBSupply_A6
7129        AnimationMode   = MANUAL
7130        Flags           = START_FRAME_LAST
7131        TransitionKey   = UP_DAY
7132        ParticleSysBone = Dust01 BuildingDust
7133        ParticleSysBone = Smoke01 BuildUpSmoke
7134        ParticleSysBone = Smoke02 BuildUpSmoke
7135        ParticleSysBone = Smoke03 BuildUpSmoke
7136        ParticleSysBone = Smoke04 BuildUpSmoke
7137      End
7138      ConditionState    = NIGHT PARTIALLY_CONSTRUCTED
7139        Model           = UBSupply_A6N
7140        Animation       = UBSupply_A6N.UBSupply_A6N
7141        AnimationMode   = MANUAL
7142        Flags           = START_FRAME_LAST
7143        TransitionKey   = UP_NIGHT
7144        ParticleSysBone = Dust01 BuildingDust
7145        ParticleSysBone = Smoke01 BuildUpSmoke
7146        ParticleSysBone = Smoke02 BuildUpSmoke
7147        ParticleSysBone = Smoke03 BuildUpSmoke
7148        ParticleSysBone = Smoke04 BuildUpSmoke
7149      End
7150      ConditionState    = SNOW PARTIALLY_CONSTRUCTED
7151        Model           = UBSupply_A6S
7152        Animation       = UBSupply_A6S.UBSupply_A6S
7153        AnimationMode   = MANUAL
7154        Flags           = START_FRAME_LAST
7155        TransitionKey   = UP_SNOW
7156        ParticleSysBone = Dust01 BuildingSnowDust
7157        ParticleSysBone = Smoke01 BuildUpSnowSmoke
7158        ParticleSysBone = Smoke02 BuildUpSnowSmoke
7159        ParticleSysBone = Smoke03 BuildUpSnowSmoke
7160        ParticleSysBone = Smoke04 BuildUpSnowSmoke
7161      End
7162      ConditionState    = SNOW NIGHT PARTIALLY_CONSTRUCTED
7163        Model           = UBSupply_A6SN
7164        Animation       = UBSupply_A6SN.UBSupply_A6SN
7165        AnimationMode   = MANUAL
7166        Flags           = START_FRAME_LAST
7167        TransitionKey   = UP_SNOWNIGHT
7168        ParticleSysBone = Dust01 BuildingNightSnowDust
7169        ParticleSysBone = Smoke01 BuildUpNightSnowSmoke
7170        ParticleSysBone = Smoke02 BuildUpNightSnowSmoke
7171        ParticleSysBone = Smoke03 BuildUpNightSnowSmoke
7172        ParticleSysBone = Smoke04 BuildUpNightSnowSmoke
7173      End
7174      TransitionState   = DOWN_DEFAULT UP_DAY
7175       Model            = UBSupply_A6
7176        Animation       = UBSupply_A6.UBSupply_A6
7177        AnimationMode   = ONCE
7178        AnimationSpeedFactorRange = 1.0 1.0
7179        Flags           = START_FRAME_FIRST
7180      End
7181      TransitionState   = DOWN_DEFAULT UP_NIGHT
7182       Model            = UBSupply_A6N
7183        Animation       = UBSupply_A6N.UBSupply_A6N
7184        AnimationMode   = ONCE
7185        AnimationSpeedFactorRange = 1.0 1.0
7186        Flags           = START_FRAME_FIRST
7187      End
7188      TransitionState   = DOWN_DEFAULT UP_SNOW
7189       Model            = UBSupply_A6S
7190        Animation       = UBSupply_A6S.UBSupply_A6S
7191        AnimationMode   = ONCE
7192        AnimationSpeedFactorRange = 1.0 1.0
7193        Flags           = START_FRAME_FIRST
7194      End
7195      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
7196       Model            = UBSupply_A6SN
7197        Animation       = UBSupply_A6SN.UBSupply_A6SN
7198        AnimationMode   = ONCE
7199        AnimationSpeedFactorRange = 1.0 1.0
7200        Flags           = START_FRAME_FIRST
7201      End
7202      TransitionState   = UP_DAY DOWN_DEFAULT
7203        Model           = UBSupply_A6
7204        Animation       = UBSupply_A6.UBSupply_A6
7205        AnimationMode   = ONCE_BACKWARDS
7206        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
7207        Flags           = START_FRAME_LAST
7208      End
7209      TransitionState   = UP_NIGHT DOWN_DEFAULT
7210        Model           = UBSupply_A6N
7211        Animation       = UBSupply_A6N.UBSupply_A6N
7212        AnimationMode   = ONCE_BACKWARDS
7213        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
7214        Flags           = START_FRAME_LAST
7215  
7216      End
7217      TransitionState   = UP_SNOW DOWN_DEFAULT
7218        Model           = UBSupply_A6S
7219        Animation       = UBSupply_A6S.UBSupply_A6S
7220        AnimationMode   = ONCE_BACKWARDS
7221        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
7222        Flags           = START_FRAME_LAST
7223      End
7224      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
7225        Model           = UBSupply_A6SN
7226        Animation       = UBSupply_A6SN.UBSupply_A6SN
7227        AnimationMode   = ONCE_BACKWARDS
7228        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
7229        Flags           = START_FRAME_LAST
7230      End
7231    End
7232  
7233    PlacementViewAngle = -45
7234  
7235    ; ***DESIGN parameters ***
7236    DisplayName         = OBJECT:SupplyStash
7237    Side                = GLADemolitionGeneral
7238    EditorSorting       = STRUCTURE
7239    BuildCost           = 1500
7240    RefundValue         = 650 ; With nothing (or zero) listed, we sell for half price. 
7241    BuildTime           = 10.0           ; in seconds
7242    EnergyProduction    = 0
7243    CommandSet          = Demo_GLASupplyStashCommandSet
7244    VisionRange         = 200.0           ; Shroud clearing distance
7245    ShroudClearingRange = 200
7246    ArmorSet
7247      Conditions        = None
7248      Armor             = StructureArmor
7249      DamageFX          = StructureDamageFXNoShake
7250    End
7251    ArmorSet
7252      Conditions        = PLAYER_UPGRADE
7253      Armor             = GLAUpgradedStructureArmor
7254      DamageFX          = StructureDamageFXNoShake
7255    End
7256    ExperienceValue     = 200 200 200 200  ; Experience point value at each level
7257  
7258    ; *** AUDIO Parameters ***
7259    VoiceSelect = SupplyCenterGLASelect
7260    SoundOnDamaged        = BuildingDamagedStateLight
7261    SoundOnReallyDamaged  = BuildingDestroy
7262  
7263    UnitSpecificSounds
7264      UnderConstruction     = UnderConstructionLoop
7265    End
7266  
7267    ; *** ENGINEERING Parameters ***
7268    RadarPriority       = STRUCTURE
7269    KindOf              = PRELOAD STRUCTURE SELECTABLE IMMOBILE CASH_GENERATOR CAPTURABLE AUTO_RALLYPOINT MP_COUNT_FOR_VICTORY SCORE_CREATE CANNOT_BUILD_NEAR_SUPPLIES FS_SUPPLY_CENTER
7270    Body                = StructureBody ModuleTag_04
7271      MaxHealth       = 2000.0
7272      InitialHealth   = 2000.0
7273  
7274      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
7275      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
7276      SubdualDamageCap = 2200
7277      SubdualDamageHealRate = 500
7278      SubdualDamageHealAmount = 100
7279    End
7280  
7281    Behavior        = ArmorUpgrade ModuleTag_Armor01
7282      TriggeredBy   = Upgrade_GLAFortifiedStructure
7283    End
7284  
7285    Behavior        = ModelConditionUpgrade ModuleTag_Armor01Visual
7286      ConditionFlag = GARRISONED
7287      TriggeredBy   = Upgrade_GLAFortifiedStructure
7288    End
7289  
7290    Behavior = SupplyCenterCreate ModuleTag_05
7291      ;nothing
7292    End
7293  
7294    Behavior             = RebuildHoleExposeDie ModuleTag_06
7295      HoleName      = GLAHoleSupplyStash
7296      HoleMaxHealth = 500.0
7297    End 
7298    Behavior = DestroyDie ModuleTag_07
7299      ;nothing
7300    End
7301    Behavior                 = CreateObjectDie ModuleTag_08
7302      CreationList      = OCL_SmallStructureDebris
7303    End
7304    Behavior                 = FXListDie ModuleTag_09
7305      DeathFX           = FX_StructureSmallDeath
7306    End
7307    Behavior = ProductionUpdate ModuleTag_10
7308      ; nothing
7309    End
7310    Behavior = SupplyCenterProductionExitUpdate ModuleTag_11
7311      UnitCreatePoint   = X:  0.0  Y:  0.0   Z:0.0
7312      NaturalRallyPoint = X: 36.0  Y:  0.0   Z:0.0;NaturalRallyPointX must always match GeometryMajorRadius! -ML
7313    End
7314  
7315    Behavior            = SpawnBehavior ModuleTag_12
7316      SpawnNumber       = 1
7317      SpawnReplaceDelay = 9999
7318      SpawnTemplateName = Demo_GLAInfantryWorker
7319      OneShot           = Yes
7320      CanReclaimOrphans = No
7321    End
7322  
7323    Behavior = SupplyCenterDockUpdate ModuleTag_13
7324      AllowsPassthrough = No ;You can't drive through this guy while docking.  Use this when the dock points are all outside
7325      NumberApproachPositions = -1 ; This is a Boneless dock, so this means infinite can approach
7326    End
7327  
7328    Behavior = FlammableUpdate ModuleTag_15
7329      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
7330      AflameDamageAmount = 5       ; taking this much damage...
7331      AflameDamageDelay = 500       ; this often.
7332    End
7333  
7334    Behavior = TransitionDamageFX ModuleTag_16
7335      ;-------------DESIGNED FOR SMALL SIZED FACTION BUILDING TRANSITIONS-------------------
7336      DamagedParticleSystem1       = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
7337      ;---------------------------------------------------------------------------------------
7338      ReallyDamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
7339      ReallyDamagedParticleSystem2 = Bone:None RandomBone:No PSys:StructureTransitionSmallExplosion
7340      ReallyDamagedParticleSystem3 = Bone:None RandomBone:No PSys:StructureTransitionSmallShockwave
7341    End
7342  
7343    ;Dont forget to edit the GLA Hole geometry for this object too
7344    Geometry            = BOX
7345    GeometryMajorRadius = 36.0
7346    GeometryMinorRadius = 35.0
7347    GeometryHeight      = 30.0
7348    GeometryIsSmall     = No
7349    ;FactoryExtraBibWidth= 1.0     ; extra placement border.
7350    Shadow              = SHADOW_VOLUME
7351    BuildCompletion     = PLACED_BY_PLAYER
7352  
7353  End
7354  
7355  ;------------------------------------------------------------------------------
7356  ObjectReskin Demo_GLAHoleSupplyStash Demo_GLAHole
7357    Draw                     = W3DModelDraw ModuleTag_01
7358      OkToChangeModelColor   = Yes
7359      ConditionState         = NONE
7360        Model                = UBHole
7361      End
7362      ConditionState         = DAMAGED
7363        Model                = UBHole_D
7364        ParticleSysBone      = Smoke01 SteamVent
7365      End
7366      ConditionState         = REALLYDAMAGED RUBBLE
7367        Model                = UBHole_E
7368        ParticleSysBone      = Smoke01 SteamVent
7369        ParticleSysBone      = Smoke02 SteamVent
7370        ParticleSysBone      = Fire01 GLAPowerPlantFlame
7371        ParticleSysBone      = Fire02 GLAPowerPlantFlame
7372        ParticleSysBone      = Fire03 GLAPowerPlantFlame
7373      End
7374    End
7375    Draw                     = W3DModelDraw ModuleTag_02
7376      OkToChangeModelColor   = Yes
7377      ConditionState         = NONE
7378        Model                = UBSupply_R
7379        ParticleSysBone      = Smoke02 SmolderingSmoke
7380        ParticleSysBone      = Smoke03 SmolderingSmoke
7381        ParticleSysBone      = Smoke04 SmolderingSmoke
7382        ParticleSysBone      = Smoke05 SmolderingSmoke
7383        ParticleSysBone      = Smoke06 SmolderingSmoke
7384      End
7385      ConditionState         = DAMAGED REALLYDAMAGED RUBBLE
7386        Model                = UBSupply_R
7387        ParticleSysBone      = Smoke02 SmolderingSmoke
7388        ParticleSysBone      = Smoke03 SmolderingSmoke
7389        ParticleSysBone      = Smoke04 SmolderingSmoke
7390        ParticleSysBone      = Smoke05 SmolderingSmoke
7391        ParticleSysBone      = Smoke06 SmolderingSmoke
7392      End
7393    End
7394  End
7395  
7396  ;------------------------------------------------------------------------------
7397  Object Demo_FakeGLASupplyStash
7398  
7399    ; *** ART Parameters ***
7400    SelectPortrait         = SUSupplyCenter_L
7401    ButtonImage            = SUSupplyCenter
7402  
7403  ;  UpgradeCameo1 = Upgrade_GLAFortifiedStructure
7404  
7405    Draw = W3DModelDraw ModuleTag_01
7406      OkToChangeModelColor = Yes
7407      ; day
7408      ConditionState = NONE
7409        Model = UBSupply
7410        ParticleSysBone = Smoke01 SteamVent
7411        Animation     = UBSupply.UBSupply
7412        AnimationMode = LOOP
7413      End
7414      ConditionState = DAMAGED
7415        Model = UBSupply_D
7416        ParticleSysBone = Smoke01 SteamVent
7417        Animation     = UBSupply_D.UBSupply_D
7418        AnimationMode = LOOP
7419      End
7420      ConditionState = REALLYDAMAGED RUBBLE
7421        Model = UBSupply_E
7422        ParticleSysBone = Smoke01 SteamVent
7423      End
7424      ConditionState         = GARRISONED
7425        Model                = UBSpplyEG
7426        ParticleSysBone      = Smoke01 SmolderingSmoke
7427        Animation            = UBSpplyEG.UBSpplyEG
7428        AnimationMode        = LOOP
7429      End
7430      ConditionState         = DAMAGED GARRISONED
7431        Model                = UBSpplyEG_D
7432        ParticleSysBone      = Smoke01 SmolderingSmoke
7433        Animation            = UBSpplyEG_D.UBSpplyEG_D
7434        AnimationMode        = LOOP
7435      End
7436      ConditionState         = REALLYDAMAGED GARRISONED
7437        Model                = UBSpplyEG_E
7438        ParticleSysBone      = Smoke01 SmolderingSmoke
7439        Animation            = UBSpplyEG_E.UBSpplyEG_E
7440        AnimationMode        = LOOP
7441      End
7442      
7443      ; SNOW
7444      ConditionState = SNOW
7445        Model = UBSupply_S
7446        ParticleSysBone = Smoke01 SteamVent
7447        Animation     = UBSupply_S.UBSupply_S
7448        AnimationMode = LOOP
7449      End
7450      ConditionState = DAMAGED SNOW
7451        Model = UBSupply_DS
7452        ParticleSysBone = Smoke01 SteamVent
7453        Animation     = UBSupply_DS.UBSupply_DS
7454        AnimationMode = LOOP
7455      End
7456      ConditionState = REALLYDAMAGED RUBBLE SNOW
7457        Model = UBSupply_ES
7458        ParticleSysBone = Smoke01 SteamVent
7459      End
7460      ConditionState         = GARRISONED SNOW
7461        Model                = UBSpplyEG_S
7462        ParticleSysBone      = Smoke01 SmolderingSmoke
7463        Animation            = UBSpplyEG_S.UBSpplyEG_S
7464        AnimationMode        = LOOP
7465      End
7466      ConditionState         = DAMAGED GARRISONED SNOW
7467        Model                = UBSpplyEG_DS
7468        ParticleSysBone      = Smoke01 SmolderingSmoke
7469        Animation            = UBSpplyEG_DS.UBSpplyEG_DS
7470        AnimationMode        = LOOP
7471      End
7472      ConditionState         = REALLYDAMAGED GARRISONED SNOW
7473        Model                = UBSpplyEG_ES
7474        ParticleSysBone      = Smoke01 SmolderingSmoke
7475        Animation            = UBSpplyEG_ES.UBSpplyEG_ES
7476        AnimationMode        = LOOP
7477      End
7478  
7479      ; night
7480      ConditionState = NIGHT
7481        Model = UBSupply_N
7482        Animation     = UBSupply_N.UBSupply_N
7483        AnimationMode = LOOP
7484        ParticleSysBone = Smoke01 SteamVent
7485      End
7486      ConditionState = DAMAGED NIGHT
7487        Model = UBSupply_DN
7488        Animation     = UBSupply_DN.UBSupply_DN
7489        AnimationMode = LOOP
7490        ParticleSysBone = Smoke01 SteamVent
7491        ParticleSysBone = Smoke02 SmolderingSmoke
7492        ParticleSysBone = Smoke03 SmolderingSmoke
7493        ParticleSysBone = Smoke04 SmolderingSmoke
7494        ParticleSysBone = Fire01 SmolderingFire
7495      End
7496      ConditionState = REALLYDAMAGED RUBBLE NIGHT
7497        Model = UBSupply_EN
7498        ParticleSysBone = Smoke01 SteamVent
7499        ParticleSysBone = Smoke02 SmolderingSmoke
7500        ParticleSysBone = Smoke03 SmolderingSmoke
7501        ParticleSysBone = Smoke04 SmolderingSmoke
7502        ParticleSysBone = Smoke05 SmolderingSmoke
7503        ParticleSysBone = Smoke06 SmolderingSmoke
7504        ParticleSysBone = Fire01 SmolderingFire
7505        ParticleSysBone = Fire02 SmolderingFire
7506        ParticleSysBone = Fire03 SmolderingFire
7507      End
7508      ConditionState         = GARRISONED NIGHT
7509        Model                = UBSpplyEG_N
7510        ParticleSysBone      = Smoke01 SmolderingSmoke
7511        Animation            = UBSpplyEG_N.UBSpplyEG_N
7512        AnimationMode        = LOOP
7513      End
7514      ConditionState         = DAMAGED GARRISONED NIGHT
7515        Model                = UBSpplyEG_DN
7516        ParticleSysBone      = Smoke01 SmolderingSmoke
7517        Animation            = UBSpplyEG_DN.UBSpplyEG_DN
7518        AnimationMode        = LOOP
7519      End
7520      ConditionState         = REALLYDAMAGED GARRISONED NIGHT
7521        Model                = UBSpplyEG_EN
7522        ParticleSysBone      = Smoke01 SmolderingSmoke
7523        Animation            = UBSpplyEG_EN.UBSpplyEG_EN
7524        AnimationMode        = LOOP
7525      End
7526       
7527      ; night snow
7528      ConditionState = NIGHT SNOW
7529        Model = UBSupply_NS
7530        Animation     = UBSupply_NS.UBSupply_NS
7531        AnimationMode = LOOP
7532        ParticleSysBone = Smoke01 SteamVent
7533      End
7534      ConditionState = DAMAGED NIGHT SNOW
7535        Model = UBSupply_DNS
7536        Animation     = UBSupply_DNS.UBSupply_DNS
7537        AnimationMode = LOOP
7538        ParticleSysBone = Smoke01 SteamVent
7539        ParticleSysBone = Smoke02 SmolderingSmoke
7540        ParticleSysBone = Smoke03 SmolderingSmoke
7541        ParticleSysBone = Smoke04 SmolderingSmoke
7542        ParticleSysBone = Fire01 SmolderingFire
7543      End
7544      ConditionState = REALLYDAMAGED RUBBLE NIGHT SNOW
7545        Model = UBSupply_ENS
7546        ParticleSysBone = Smoke01 SteamVent
7547        ParticleSysBone = Smoke02 SmolderingSmoke
7548        ParticleSysBone = Smoke03 SmolderingSmoke
7549        ParticleSysBone = Smoke04 SmolderingSmoke
7550        ParticleSysBone = Smoke05 SmolderingSmoke
7551        ParticleSysBone = Smoke06 SmolderingSmoke
7552        ParticleSysBone = Fire01 SmolderingFire
7553        ParticleSysBone = Fire02 SmolderingFire
7554        ParticleSysBone = Fire03 SmolderingFire
7555      End
7556      ConditionState         = GARRISONED SNOW NIGHT
7557        Model                = UBSpplyEG_NS
7558        ParticleSysBone      = Smoke01 SmolderingSmoke
7559        Animation            = UBSpplyEG_S.UBSpplyEG_S
7560        AnimationMode        = LOOP
7561      End
7562      ConditionState         = DAMAGED GARRISONED SNOW NIGHT
7563        Model                = UBSpplyEG_DNS
7564        ParticleSysBone      = Smoke01 SmolderingSmoke
7565        Animation            = UBSpplyEG_DNS.UBSpplyEG_DNS
7566        AnimationMode        = LOOP
7567      End
7568      ConditionState         = REALLYDAMAGED GARRISONED SNOW NIGHT
7569        Model                = UBSpplyEG_ENS
7570        ParticleSysBone      = Smoke01 SmolderingSmoke
7571        Animation            = UBSpplyEG_ENS.UBSpplyEG_ENS
7572        AnimationMode        = LOOP
7573      End
7574  
7575          ;**************************************************************************************************************************
7576      ;This block handles every possible case with construction process, selling process, awaiting construction, and sold states
7577      ;for this draw module
7578      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
7579        Model              = UBSupply
7580        Animation          = UBSupply.UBSupply
7581        AnimationMode      = LOOP
7582        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
7583      End
7584      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
7585        Model              = UBSupply_D
7586        Animation          = UBSupply_D.UBSupply_D
7587        AnimationMode      = LOOP
7588        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
7589      End
7590      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED
7591        Model              = UBSupply_E
7592        ;Animation          = UBSupply_E.UBSupply_E
7593        ;AnimationMode      = LOOP
7594        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
7595      End
7596      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT
7597        Model              = UBSupply_N
7598        Animation          = UBSupply_N.UBSupply_N
7599        AnimationMode      = LOOP
7600        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
7601      End
7602      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT DAMAGED
7603        Model              = UBSupply_DN
7604        Animation          = UBSupply_DN.UBSupply_DN
7605        AnimationMode      = LOOP
7606        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
7607      End
7608      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT REALLYDAMAGED
7609        Model              = UBSupply_EN
7610        ;Animation          = UBSupply_EN.UBSupply_EN
7611        ;AnimationMode      = LOOP
7612        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
7613      End
7614      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW
7615        Model              = UBSupply_S
7616        Animation          = UBSupply_S.UBSupply_S
7617        AnimationMode      = LOOP
7618        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
7619      End
7620      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW DAMAGED
7621        Model              = UBSupply_DS
7622        Animation          = UBSupply_DS.UBSupply_DS
7623        AnimationMode      = LOOP
7624        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
7625      End
7626      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW REALLYDAMAGED
7627        Model              = UBSupply_ES
7628        ;Animation          = UBSupply_ES.UBSupply_ES
7629        ;AnimationMode      = LOOP
7630        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
7631      End
7632      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW
7633        Model              = UBSupply_NS
7634        Animation          = UBSupply_NS.UBSupply_NS
7635        AnimationMode      = LOOP
7636        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
7637      End
7638      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW DAMAGED
7639        Model              = UBSupply_DNS
7640        Animation          = UBSupply_DNS.UBSupply_DNS
7641        AnimationMode      = LOOP
7642        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
7643      End
7644      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW REALLYDAMAGED
7645        Model              = UBSupply_ENS
7646        ;Animation          = UBSupply_ENS.UBSupply_ENS
7647        ;AnimationMode      = LOOP
7648        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
7649      End
7650  
7651      ConditionState       = AWAITING_CONSTRUCTION 
7652        Model              = NONE
7653      End
7654      AliasConditionState  = AWAITING_CONSTRUCTION DAMAGED
7655      AliasConditionState  = AWAITING_CONSTRUCTION REALLYDAMAGED
7656      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT
7657      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT DAMAGED
7658      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT REALLYDAMAGED
7659      AliasConditionState  = AWAITING_CONSTRUCTION SNOW
7660      AliasConditionState  = AWAITING_CONSTRUCTION SNOW DAMAGED
7661      AliasConditionState  = AWAITING_CONSTRUCTION SNOW REALLYDAMAGED
7662      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW
7663      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW DAMAGED
7664      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW REALLYDAMAGED
7665      AliasConditionState  = SOLD 
7666      AliasConditionState  = SOLD DAMAGED
7667      AliasConditionState  = SOLD REALLYDAMAGED
7668      AliasConditionState  = SOLD NIGHT
7669      AliasConditionState  = SOLD NIGHT DAMAGED
7670      AliasConditionState  = SOLD NIGHT REALLYDAMAGED
7671      AliasConditionState  = SOLD SNOW
7672      AliasConditionState  = SOLD SNOW DAMAGED
7673      AliasConditionState  = SOLD SNOW REALLYDAMAGED
7674      AliasConditionState  = SOLD NIGHT SNOW
7675      AliasConditionState  = SOLD NIGHT SNOW DAMAGED
7676      AliasConditionState  = SOLD NIGHT SNOW REALLYDAMAGED
7677      AliasConditionState  = GARRISONED SOLD 
7678      AliasConditionState  = GARRISONED SOLD DAMAGED
7679      AliasConditionState  = GARRISONED SOLD REALLYDAMAGED
7680      AliasConditionState  = GARRISONED SOLD NIGHT
7681      AliasConditionState  = GARRISONED SOLD NIGHT DAMAGED
7682      AliasConditionState  = GARRISONED SOLD NIGHT REALLYDAMAGED
7683      AliasConditionState  = GARRISONED SOLD SNOW
7684      AliasConditionState  = GARRISONED SOLD SNOW DAMAGED
7685      AliasConditionState  = GARRISONED SOLD SNOW REALLYDAMAGED
7686      AliasConditionState  = GARRISONED SOLD NIGHT SNOW
7687      AliasConditionState  = GARRISONED SOLD NIGHT SNOW DAMAGED
7688      AliasConditionState  = GARRISONED SOLD NIGHT SNOW REALLYDAMAGED
7689      ;**************************************************************************************************************************
7690  
7691    End
7692  
7693     ; ------------ construction-zone fence -----------------
7694    Draw = W3DModelDraw ModuleTag_02
7695    AnimationsRequirePower = No
7696      DefaultConditionState
7697        Model           = None
7698        TransitionKey   = DOWN_DEFAULT
7699      End
7700      ConditionState    = NIGHT
7701        Model           = None
7702        TransitionKey   = DOWN_DEFAULT
7703      End
7704      ConditionState    = SNOW
7705        Model           = None
7706        TransitionKey   = DOWN_DEFAULT
7707      End
7708      ConditionState    = SNOW NIGHT
7709        Model           = None
7710        TransitionKey   = DOWN_DEFAULT
7711      End
7712      ConditionState    = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
7713        Model           = UBSupply_A4
7714        Animation       = UBSupply_A4.UBSupply_A4
7715        AnimationMode   = MANUAL
7716        Flags           = START_FRAME_LAST
7717        TransitionKey   = UP_DAY
7718      End
7719      ConditionState    = NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
7720        Model           = UBSupply_A4N
7721        Animation       = UBSupply_A4N.UBSupply_A4N
7722        AnimationMode   = MANUAL
7723        Flags           = START_FRAME_LAST
7724        TransitionKey   = UP_NIGHT
7725      End
7726      ConditionState    = SNOW AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
7727        Model           = UBSupply_A4S
7728        Animation       = UBSupply_A4S.UBSupply_A4S
7729        AnimationMode   = MANUAL
7730        Flags           = START_FRAME_LAST
7731        TransitionKey   = UP_SNOW
7732      End
7733      ConditionState    = SNOW NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
7734        Model           = UBSupply_A4SN
7735        Animation       = UBSupply_A4SN.UBSupply_A4SN
7736        AnimationMode   = MANUAL
7737        Flags           = START_FRAME_LAST
7738        TransitionKey   = UP_SNOWNIGHT
7739      End
7740      TransitionState   = DOWN_DEFAULT UP_DAY
7741        Model           = UBSupply_A4
7742        Animation       = UBSupply_A4.UBSupply_A4
7743        AnimationMode   = ONCE
7744        AnimationSpeedFactorRange = 1.0 1.0
7745        Flags           = START_FRAME_FIRST
7746      End
7747      TransitionState   = DOWN_DEFAULT UP_NIGHT
7748        Model           = UBSupply_A4N
7749        Animation       = UBSupply_A4N.UBSupply_A4N
7750        AnimationMode   = ONCE
7751        AnimationSpeedFactorRange = 1.0 1.0
7752        Flags           = START_FRAME_FIRST
7753      End
7754      TransitionState   = DOWN_DEFAULT UP_SNOW
7755        Model           = UBSupply_A4S
7756        Animation       = UBSupply_A4S.UBSupply_A4S
7757        AnimationMode   = ONCE
7758        AnimationSpeedFactorRange = 1.0 1.0
7759        Flags           = START_FRAME_FIRST
7760      End
7761      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
7762        Model           = UBSupply_A4SN
7763        Animation       = UBSupply_A4SN.UBSupply_A4SN
7764        AnimationMode   = ONCE
7765        AnimationSpeedFactorRange = 1.0 1.0
7766        Flags           = START_FRAME_FIRST
7767      End
7768      TransitionState   = UP_DAY DOWN_DEFAULT
7769        Model           = UBSupply_A4
7770        Animation       = UBSupply_A4.UBSupply_A4
7771        AnimationMode   = ONCE_BACKWARDS
7772        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
7773        Flags           = START_FRAME_LAST
7774      End
7775      TransitionState   = UP_NIGHT DOWN_DEFAULT
7776        Model           = UBSupply_A4N
7777        Animation       = UBSupply_A4N.UBSupply_A4N
7778        AnimationMode   = ONCE_BACKWARDS
7779        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
7780        Flags           = START_FRAME_LAST
7781      End
7782      TransitionState   = UP_SNOW DOWN_DEFAULT
7783        Model           = UBSupply_A4S
7784        Animation       = UBSupply_A4S.UBSupply_A4S
7785        AnimationMode   = ONCE_BACKWARDS
7786        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
7787        Flags           = START_FRAME_LAST
7788      End
7789      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
7790        Model           = UBSupply_A4SN
7791        Animation       = UBSupply_A4SN.UBSupply_A4SN
7792        AnimationMode   = ONCE_BACKWARDS
7793        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
7794        Flags           = START_FRAME_LAST
7795      End
7796    End
7797  
7798    ; ------------ under-construction scaffolding -----------------
7799    Draw = W3DModelDraw ModuleTag_03
7800    AnimationsRequirePower = No
7801      MinLODRequired = MEDIUM
7802      DefaultConditionState
7803        Model           = None
7804        TransitionKey   = DOWN_DEFAULT
7805      End
7806      ConditionState    = NIGHT
7807        Model           = None
7808        TransitionKey   = DOWN_DEFAULT
7809      End
7810      ConditionState    = SNOW
7811        Model           = None
7812        TransitionKey   = DOWN_DEFAULT
7813      End
7814      ConditionState    = SNOW NIGHT
7815        Model           = None
7816        TransitionKey   = DOWN_DEFAULT
7817      End
7818      ConditionState    = PARTIALLY_CONSTRUCTED
7819        Model           = UBSupply_A6
7820        Animation       = UBSupply_A6.UBSupply_A6
7821        AnimationMode   = MANUAL
7822        Flags           = START_FRAME_LAST
7823        TransitionKey   = UP_DAY
7824        ParticleSysBone = Dust01 BuildingDust
7825        ParticleSysBone = Smoke01 BuildUpSmoke
7826        ParticleSysBone = Smoke02 BuildUpSmoke
7827        ParticleSysBone = Smoke03 BuildUpSmoke
7828        ParticleSysBone = Smoke04 BuildUpSmoke
7829      End
7830      ConditionState    = NIGHT PARTIALLY_CONSTRUCTED
7831        Model           = UBSupply_A6N
7832        Animation       = UBSupply_A6N.UBSupply_A6N
7833        AnimationMode   = MANUAL
7834        Flags           = START_FRAME_LAST
7835        TransitionKey   = UP_NIGHT
7836        ParticleSysBone = Dust01 BuildingDust
7837        ParticleSysBone = Smoke01 BuildUpSmoke
7838        ParticleSysBone = Smoke02 BuildUpSmoke
7839        ParticleSysBone = Smoke03 BuildUpSmoke
7840        ParticleSysBone = Smoke04 BuildUpSmoke
7841      End
7842      ConditionState    = SNOW PARTIALLY_CONSTRUCTED
7843        Model           = UBSupply_A6S
7844        Animation       = UBSupply_A6S.UBSupply_A6S
7845        AnimationMode   = MANUAL
7846        Flags           = START_FRAME_LAST
7847        TransitionKey   = UP_SNOW
7848        ParticleSysBone = Dust01 BuildingSnowDust
7849        ParticleSysBone = Smoke01 BuildUpSnowSmoke
7850        ParticleSysBone = Smoke02 BuildUpSnowSmoke
7851        ParticleSysBone = Smoke03 BuildUpSnowSmoke
7852        ParticleSysBone = Smoke04 BuildUpSnowSmoke
7853      End
7854      ConditionState    = SNOW NIGHT PARTIALLY_CONSTRUCTED
7855        Model           = UBSupply_A6SN
7856        Animation       = UBSupply_A6SN.UBSupply_A6SN
7857        AnimationMode   = MANUAL
7858        Flags           = START_FRAME_LAST
7859        TransitionKey   = UP_SNOWNIGHT
7860        ParticleSysBone = Dust01 BuildingNightSnowDust
7861        ParticleSysBone = Smoke01 BuildUpNightSnowSmoke
7862        ParticleSysBone = Smoke02 BuildUpNightSnowSmoke
7863        ParticleSysBone = Smoke03 BuildUpNightSnowSmoke
7864        ParticleSysBone = Smoke04 BuildUpNightSnowSmoke
7865      End
7866      TransitionState   = DOWN_DEFAULT UP_DAY
7867       Model            = UBSupply_A6
7868        Animation       = UBSupply_A6.UBSupply_A6
7869        AnimationMode   = ONCE
7870        AnimationSpeedFactorRange = 1.0 1.0
7871        Flags           = START_FRAME_FIRST
7872      End
7873      TransitionState   = DOWN_DEFAULT UP_NIGHT
7874       Model            = UBSupply_A6N
7875        Animation       = UBSupply_A6N.UBSupply_A6N
7876        AnimationMode   = ONCE
7877        AnimationSpeedFactorRange = 1.0 1.0
7878        Flags           = START_FRAME_FIRST
7879      End
7880      TransitionState   = DOWN_DEFAULT UP_SNOW
7881       Model            = UBSupply_A6S
7882        Animation       = UBSupply_A6S.UBSupply_A6S
7883        AnimationMode   = ONCE
7884        AnimationSpeedFactorRange = 1.0 1.0
7885        Flags           = START_FRAME_FIRST
7886      End
7887      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
7888       Model            = UBSupply_A6SN
7889        Animation       = UBSupply_A6SN.UBSupply_A6SN
7890        AnimationMode   = ONCE
7891        AnimationSpeedFactorRange = 1.0 1.0
7892        Flags           = START_FRAME_FIRST
7893      End
7894      TransitionState   = UP_DAY DOWN_DEFAULT
7895        Model           = UBSupply_A6
7896        Animation       = UBSupply_A6.UBSupply_A6
7897        AnimationMode   = ONCE_BACKWARDS
7898        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
7899        Flags           = START_FRAME_LAST
7900      End
7901      TransitionState   = UP_NIGHT DOWN_DEFAULT
7902        Model           = UBSupply_A6N
7903        Animation       = UBSupply_A6N.UBSupply_A6N
7904        AnimationMode   = ONCE_BACKWARDS
7905        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
7906        Flags           = START_FRAME_LAST
7907  
7908      End
7909      TransitionState   = UP_SNOW DOWN_DEFAULT
7910        Model           = UBSupply_A6S
7911        Animation       = UBSupply_A6S.UBSupply_A6S
7912        AnimationMode   = ONCE_BACKWARDS
7913        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
7914        Flags           = START_FRAME_LAST
7915      End
7916      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
7917        Model           = UBSupply_A6SN
7918        Animation       = UBSupply_A6SN.UBSupply_A6SN
7919        AnimationMode   = ONCE_BACKWARDS
7920        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
7921        Flags           = START_FRAME_LAST
7922      End
7923    End
7924  
7925    PlacementViewAngle = -45
7926  
7927    ; ***DESIGN parameters ***
7928    DisplayName         = OBJECT:SupplyStash
7929    Side                = GLADemolitionGeneral
7930    EditorSorting       = STRUCTURE
7931    Prerequisites
7932      Object = Demo_GLACommandCenter
7933    End
7934    BuildCost           = 375
7935    BuildTime           = 5.0           ; in seconds
7936    EnergyProduction    = 0
7937    CommandSet          = FakeGLASupplyStashCommandSet
7938    VisionRange         = 200.0           ; Shroud clearing distance
7939    ShroudClearingRange = 200
7940  
7941    WeaponSet
7942      Conditions          = None 
7943      Weapon = PRIMARY SuicideWeapon
7944      AutoChooseSources = PRIMARY None
7945    End
7946  
7947    ArmorSet
7948      Conditions        = None
7949      Armor             = StructureArmor
7950      DamageFX          = StructureDamageFXNoShake
7951    End
7952    ExperienceValue     = 50 50 50 50  ; Experience point value at each level
7953  
7954    ; *** AUDIO Parameters ***
7955    VoiceSelect = SupplyCenterGLASelect
7956    SoundOnDamaged        = BuildingDamagedStateLight
7957    SoundOnReallyDamaged  = BuildingDestroy
7958  
7959    UnitSpecificSounds
7960      UnderConstruction     = UnderConstructionLoop
7961    End
7962  
7963    ; *** ENGINEERING Parameters ***
7964    RadarPriority       = STRUCTURE
7965    KindOf          = PRELOAD STRUCTURE SELECTABLE IMMOBILE CAPTURABLE MP_COUNT_FOR_VICTORY SCORE_CREATE CAN_ATTACK FS_FAKE
7966    Body                = StructureBody ModuleTag_04
7967      MaxHealth       = 250.0
7968      InitialHealth   = 250.0
7969  
7970      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
7971      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
7972      SubdualDamageCap = 450
7973      SubdualDamageHealRate = 500
7974      SubdualDamageHealAmount = 100
7975    End
7976  
7977    Behavior                 = CreateObjectDie ModuleTag_08
7978      CreationList      = OCL_SmallStructureDebris
7979    End
7980    Behavior                 = FXListDie ModuleTag_09
7981      DeathFX           = FX_StructureSmallDeath
7982    End
7983    Behavior = ProductionUpdate ModuleTag_10
7984      ; nothing
7985    End
7986    Behavior = AIUpdateInterface ModuleTag_11
7987      AutoAcquireEnemiesWhenIdle = No
7988    End
7989  
7990    Behavior = SlowDeathBehavior ModuleTag_12
7991      ExemptStatus = UNDER_CONSTRUCTION
7992      DestructionDelay = 0
7993      Weapon = FINAL FakeStructureDetonationWeapon
7994    End
7995    Behavior = DestroyDie ModuleTag_SlowDeathException
7996      RequiredStatus = UNDER_CONSTRUCTION
7997    End
7998  
7999    Behavior = ReplaceObjectUpgrade ModuleTag_13
8000      ReplaceObject = Demo_GLASupplyStash
8001      TriggeredBy = Upgrade_BecomeRealGLASupplyStash
8002    End
8003  
8004    Behavior        = ModelConditionUpgrade ModuleTag_Armor01Visual
8005      ConditionFlag = GARRISONED
8006      TriggeredBy   = Upgrade_GLAFortifiedStructure
8007    End
8008  
8009    Behavior = FlammableUpdate ModuleTag_15
8010      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
8011      AflameDamageAmount = 5       ; taking this much damage...
8012      AflameDamageDelay = 500       ; this often.
8013    End
8014  
8015    Behavior = TransitionDamageFX ModuleTag_16
8016      ;-------------DESIGNED FOR SMALL SIZED FACTION BUILDING TRANSITIONS-------------------
8017      DamagedParticleSystem1       = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
8018      ;---------------------------------------------------------------------------------------
8019      ReallyDamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
8020      ReallyDamagedParticleSystem2 = Bone:None RandomBone:No PSys:StructureTransitionSmallExplosion
8021      ReallyDamagedParticleSystem3 = Bone:None RandomBone:No PSys:StructureTransitionSmallShockwave
8022    End
8023  
8024    ;Dont forget to edit the GLA Hole geometry for this object too
8025    Geometry            = BOX
8026    GeometryMajorRadius = 36.0
8027    GeometryMinorRadius = 35.0
8028    GeometryHeight      = 30.0
8029    GeometryIsSmall     = No
8030    ;FactoryExtraBibWidth= 1.0     ; extra placement border.
8031    Shadow              = SHADOW_VOLUME
8032    ShadowTexture = fake_supply; this is not really a shadow, it's used for decal to indicate fake structure.
8033    ShadowSizeX = 105
8034    ShadowSizeY = 105
8035    BuildCompletion     = PLACED_BY_PLAYER
8036  
8037  End
8038  
8039  
8040  
8041  
8042  
8043  
8044  ;------------------------------------------------------------------------------
8045  ;GLA Barracks
8046  Object Demo_GLABarracks
8047  
8048    ; *** ART Parameters ***
8049    SelectPortrait         = SUBarracks_L
8050    ButtonImage            = SUBarracks
8051  
8052  ;  UpgradeCameo1 = Upgrade_GLAFortifiedStructure
8053  
8054    Draw = W3DModelDraw ModuleTag_01
8055      OkToChangeModelColor = Yes
8056      ; day
8057      ConditionState = NONE
8058        Model = UBBARRACKS
8059        ParticleSysBone = Smoke01 ChimneySmokeSmall
8060        ParticleSysBone = Smoke02 SteamVent
8061        Animation     = UBBarracks.UBBarracks
8062        AnimationMode = LOOP
8063      End
8064      ConditionState = DAMAGED
8065        Model = UBBarracks_D
8066        ParticleSysBone = Smoke01 ChimneySmokeSmall
8067        ParticleSysBone = Smoke02 SteamVent
8068  ;     ParticleSysBone = Smoke03 SmokeFactionMedium
8069  ;     ParticleSysBone = Flame01 FireFactionMedium
8070        Animation     = UBBarracks_D.UBBarracks_D
8071        AnimationMode = LOOP
8072      End
8073      ConditionState = REALLYDAMAGED RUBBLE
8074        Model = UBBarracks_E
8075        ParticleSysBone = Smoke01 ChimneySmokeSmall
8076  ;     ParticleSysBone = Smoke02 SteamVent
8077  ;     ParticleSysBone = Smoke03 SmokeFactionMedium
8078  ;     ParticleSysBone = Smoke04 SmokeFactionLarge
8079  ;     ParticleSysBone = Smoke05 SmokeFactionLarge
8080  ;     ParticleSysBone = Flame01 FireFactionMedium
8081  ;     ParticleSysBone = Flame02 FireFactionLarge
8082        Animation     = UBBarracks_E.UBBarracks_E
8083        AnimationMode = LOOP
8084      End
8085      ConditionState         = GARRISONED
8086        Model                = UBBarrksEG
8087        ParticleSysBone      = Smoke01 SmolderingSmoke
8088        Animation            = UBBarrksEG.UBBarrksEG
8089        AnimationMode        = LOOP
8090      End
8091      ConditionState         = DAMAGED GARRISONED
8092        Model                = UBBarrksEG_D
8093        ParticleSysBone      = Smoke01 SmolderingSmoke
8094        Animation            = UBBarrksEG_D.UBBarrksEG_D
8095        AnimationMode        = LOOP
8096      End
8097      ConditionState         = REALLYDAMAGED GARRISONED
8098        Model                = UBBarrksEG_E
8099        ParticleSysBone      = Smoke01 SmolderingSmoke
8100        Animation            = UBBarrksEG_E.UBBarrksEG_E
8101        AnimationMode        = LOOP
8102      End
8103          
8104          ; day
8105      ConditionState = SNOW
8106        Model = UBBARRACKS_S
8107        ParticleSysBone = Smoke01 ChimneySmokeSmall
8108        ParticleSysBone = Smoke02 SteamVent
8109        Animation     = UBBarracks_S.UBBarracks_S
8110        AnimationMode = LOOP
8111      End
8112      ConditionState = DAMAGED SNOW
8113        Model = UBBarracks_DS
8114        ParticleSysBone = Smoke01 ChimneySmokeSmall
8115        ParticleSysBone = Smoke02 SteamVent
8116  ;     ParticleSysBone = Smoke03 SmokeFactionMedium
8117  ;     ParticleSysBone = Flame01 FireFactionMedium
8118        Animation     = UBBarracks_DS.UBBarracks_DS
8119        AnimationMode = LOOP
8120      End
8121      ConditionState = REALLYDAMAGED RUBBLE SNOW
8122        Model = UBBarracks_ES
8123        ParticleSysBone = Smoke01 ChimneySmokeSmall
8124  ;     ParticleSysBone = Smoke02 SteamVent
8125  ;     ParticleSysBone = Smoke03 SmokeFactionMedium
8126  ;     ParticleSysBone = Smoke04 SmokeFactionLarge
8127  ;     ParticleSysBone = Smoke05 SmokeFactionLarge
8128  ;     ParticleSysBone = Flame01 FireFactionMedium
8129  ;     ParticleSysBone = Flame02 FireFactionLarge
8130        Animation     = UBBarracks_ES.UBBarracks_ES
8131        AnimationMode = LOOP
8132      End
8133      ConditionState         = GARRISONED SNOW
8134        Model                = UBBarrksEG_S
8135        ParticleSysBone      = Smoke01 SmolderingSmoke
8136        Animation            = UBBarrksEG_S.UBBarrksEG_S
8137        AnimationMode        = LOOP
8138      End
8139      ConditionState         = DAMAGED GARRISONED SNOW
8140        Model                = UBBarrksEG_DS
8141        ParticleSysBone      = Smoke01 SmolderingSmoke
8142        Animation            = UBBarrksEG_DS.UBBarrksEG_DS
8143        AnimationMode        = LOOP
8144      End
8145      ConditionState         = REALLYDAMAGED GARRISONED SNOW
8146        Model                = UBBarrksEG_ES
8147        ParticleSysBone      = Smoke01 SmolderingSmoke
8148        Animation            = UBBarrksEG_ES.UBBarrksEG_ES
8149        AnimationMode        = LOOP
8150      End
8151  
8152      ; night
8153      ConditionState = NIGHT
8154        Model = UBBARRACKS_N
8155        ParticleSysBone = Smoke01 ChimneySmokeSmall
8156        ParticleSysBone = Smoke02 SteamVent
8157        Animation     = UBBarracks_N.UBBarracks_N
8158        AnimationMode = LOOP
8159      End
8160      ConditionState = DAMAGED NIGHT
8161        Model = UBBarracks_DN
8162        ParticleSysBone = Smoke01 ChimneySmokeSmall
8163        ParticleSysBone = Smoke02 SteamVent
8164        ParticleSysBone = Smoke03 GLAPowerPlantSmoke
8165        ParticleSysBone = Flame01 GLAPowerPlantFlame
8166        Animation     = UBBarracks_DN.UBBarracks_DN
8167        AnimationMode = LOOP
8168      End
8169      ConditionState = REALLYDAMAGED RUBBLE NIGHT
8170        Model = UBBarracks_EN
8171        ParticleSysBone = Smoke01 ChimneySmokeSmall
8172        ParticleSysBone = Smoke02 SteamVent
8173        ParticleSysBone = Smoke03 GLAPowerPlantSmoke
8174        ParticleSysBone = Smoke04 GLAPowerPlantSmoke
8175        ParticleSysBone = Smoke05 GLAPowerPlantSmoke
8176        ParticleSysBone = Flame01 FireSmallContinuous
8177        ParticleSysBone = Flame02 GLAPowerPlantFlame
8178        Animation     = UBBarracks_EN.UBBarracks_EN
8179        AnimationMode = LOOP
8180      End
8181      ConditionState         = GARRISONED NIGHT
8182        Model                = UBBarrksEG_N
8183        ParticleSysBone      = Smoke01 SmolderingSmoke
8184        Animation            = UBBarrksEG_N.UBBarrksEG_N
8185        AnimationMode        = LOOP
8186      End
8187      ConditionState         = DAMAGED GARRISONED NIGHT
8188        Model                = UBBarrksEG_DN
8189        ParticleSysBone      = Smoke01 SmolderingSmoke
8190        Animation            = UBBarrksEG_DN.UBBarrksEG_DN
8191        AnimationMode        = LOOP
8192      End
8193      ConditionState         = REALLYDAMAGED GARRISONED NIGHT
8194        Model                = UBBarrksEG_EN
8195        ParticleSysBone      = Smoke01 SmolderingSmoke
8196        Animation            = UBBarrksEG_EN.UBBarrksEG_EN
8197        AnimationMode        = LOOP
8198      End
8199  
8200      ; night snow
8201      ConditionState = NIGHT SNOW
8202        Model = UBBARRACKS_NS
8203        ParticleSysBone = Smoke01 ChimneySmokeSmall
8204        ParticleSysBone = Smoke02 SteamVent
8205        Animation     = UBBarracks_NS.UBBarracks_NS
8206        AnimationMode = LOOP
8207      End
8208      ConditionState = DAMAGED NIGHT SNOW
8209        Model = UBBarracks_DNS
8210        ParticleSysBone = Smoke01 ChimneySmokeSmall
8211        ParticleSysBone = Smoke02 SteamVent
8212        ParticleSysBone = Smoke03 GLAPowerPlantSmoke
8213        ParticleSysBone = Flame01 GLAPowerPlantFlame
8214        Animation     = UBBarracks_DNS.UBBarracks_DNS
8215        AnimationMode = LOOP
8216      End
8217      ConditionState = REALLYDAMAGED RUBBLE NIGHT SNOW
8218        Model = UBBarracks_ENS
8219        ParticleSysBone = Smoke01 ChimneySmokeSmall
8220        ParticleSysBone = Smoke02 SteamVent
8221        ParticleSysBone = Smoke03 GLAPowerPlantSmoke
8222        ParticleSysBone = Smoke04 GLAPowerPlantSmoke
8223        ParticleSysBone = Smoke05 GLAPowerPlantSmoke
8224        ParticleSysBone = Flame01 FireSmallContinuous
8225        ParticleSysBone = Flame02 GLAPowerPlantFlame
8226        Animation     = UBBarracks_ENS.UBBarracks_ENS
8227        AnimationMode = LOOP
8228      End
8229      ConditionState         = GARRISONED NIGHT SNOW
8230        Model                = UBBarrksEG_NS
8231        ParticleSysBone      = Smoke01 SmolderingSmoke
8232        Animation            = UBBarrksEG_NS.UBBarrksEG_NS
8233        AnimationMode        = LOOP
8234      End
8235      ConditionState         = DAMAGED GARRISONED NIGHT SNOW
8236        Model                = UBBarrksEG_DNS
8237        ParticleSysBone      = Smoke01 SmolderingSmoke
8238        Animation            = UBBarrksEG_DNS.UBBarrksEG_DNS
8239        AnimationMode        = LOOP
8240      End
8241      ConditionState         = REALLYDAMAGED GARRISONED NIGHT SNOW
8242        Model                = UBBarrksEG_ENS
8243        ParticleSysBone      = Smoke01 SmolderingSmoke
8244        Animation            = UBBarrksEG_ENS.UBBarrksEG_ENS
8245        AnimationMode        = LOOP
8246      End
8247  
8248      ;**************************************************************************************************************************
8249      ;This block handles every possible case with construction process, selling process, awaiting construction, and sold states
8250      ;for this draw module
8251      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
8252        Model              = UBBarracks
8253        Animation          = UBBarracks.UBBarracks
8254        AnimationMode      = LOOP
8255        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
8256      End
8257      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
8258        Model              = UBBarracks_D
8259        Animation          = UBBarracks_D.UBBarracks_D
8260        AnimationMode      = LOOP
8261        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
8262      End
8263      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED
8264        Model              = UBBarracks_E
8265        Animation          = UBBarracks_E.UBBarracks_E
8266        AnimationMode      = LOOP
8267        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
8268      End
8269      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT
8270        Model              = UBBarracks_N
8271        Animation          = UBBarracks_N.UBBarracks_N
8272        AnimationMode      = LOOP
8273        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
8274      End
8275      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT DAMAGED
8276        Model              = UBBarracks_DN
8277        Animation          = UBBarracks_DN.UBBarracks_DN
8278        AnimationMode      = LOOP
8279        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
8280      End
8281      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT REALLYDAMAGED
8282        Model              = UBBarracks_EN
8283        Animation          = UBBarracks_EN.UBBarracks_EN
8284        AnimationMode      = LOOP
8285        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
8286      End
8287      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW
8288        Model              = UBBarracks_S
8289        Animation          = UBBarracks_S.UBBarracks_S
8290        AnimationMode      = LOOP
8291        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
8292      End
8293      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW DAMAGED
8294        Model              = UBBarracks_DS
8295        Animation          = UBBarracks_DS.UBBarracks_DS
8296        AnimationMode      = LOOP
8297        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
8298      End
8299      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW REALLYDAMAGED
8300        Model              = UBBarracks_ES
8301        Animation          = UBBarracks_ES.UBBarracks_ES
8302        AnimationMode      = LOOP
8303        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
8304      End
8305      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW
8306        Model              = UBBarracks_NS
8307        Animation          = UBBarracks_NS.UBBarracks_NS
8308        AnimationMode      = LOOP
8309        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
8310      End
8311      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW DAMAGED
8312        Model              = UBBarracks_DNS
8313        Animation          = UBBarracks_DNS.UBBarracks_DNS
8314        AnimationMode      = LOOP
8315        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
8316      End
8317      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW REALLYDAMAGED
8318        Model              = UBBarracks_ENS
8319        Animation          = UBBarracks_ENS.UBBarracks_ENS
8320        AnimationMode      = LOOP
8321        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
8322      End
8323  
8324      ConditionState       = AWAITING_CONSTRUCTION 
8325        Model              = NONE
8326      End
8327      AliasConditionState  = AWAITING_CONSTRUCTION DAMAGED
8328      AliasConditionState  = AWAITING_CONSTRUCTION REALLYDAMAGED
8329      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT
8330      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT DAMAGED
8331      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT REALLYDAMAGED
8332      AliasConditionState  = AWAITING_CONSTRUCTION SNOW
8333      AliasConditionState  = AWAITING_CONSTRUCTION SNOW DAMAGED
8334      AliasConditionState  = AWAITING_CONSTRUCTION SNOW REALLYDAMAGED
8335      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW
8336      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW DAMAGED
8337      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW REALLYDAMAGED
8338      AliasConditionState  = SOLD 
8339      AliasConditionState  = SOLD DAMAGED
8340      AliasConditionState  = SOLD REALLYDAMAGED
8341      AliasConditionState  = SOLD NIGHT
8342      AliasConditionState  = SOLD NIGHT DAMAGED
8343      AliasConditionState  = SOLD NIGHT REALLYDAMAGED
8344      AliasConditionState  = SOLD SNOW
8345      AliasConditionState  = SOLD SNOW DAMAGED
8346      AliasConditionState  = SOLD SNOW REALLYDAMAGED
8347      AliasConditionState  = SOLD NIGHT SNOW
8348      AliasConditionState  = SOLD NIGHT SNOW DAMAGED
8349      AliasConditionState  = SOLD NIGHT SNOW REALLYDAMAGED
8350      AliasConditionState  = GARRISONED SOLD 
8351      AliasConditionState  = GARRISONED SOLD DAMAGED
8352      AliasConditionState  = GARRISONED SOLD REALLYDAMAGED
8353      AliasConditionState  = GARRISONED SOLD NIGHT
8354      AliasConditionState  = GARRISONED SOLD NIGHT DAMAGED
8355      AliasConditionState  = GARRISONED SOLD NIGHT REALLYDAMAGED
8356      AliasConditionState  = GARRISONED SOLD SNOW
8357      AliasConditionState  = GARRISONED SOLD SNOW DAMAGED
8358      AliasConditionState  = GARRISONED SOLD SNOW REALLYDAMAGED
8359      AliasConditionState  = GARRISONED SOLD NIGHT SNOW
8360      AliasConditionState  = GARRISONED SOLD NIGHT SNOW DAMAGED
8361      AliasConditionState  = GARRISONED SOLD NIGHT SNOW REALLYDAMAGED
8362      ;**************************************************************************************************************************
8363    End
8364    ; ------------ construction-zone fence -----------------
8365    Draw = W3DModelDraw ModuleTag_02
8366    AnimationsRequirePower = No
8367      DefaultConditionState
8368        Model           = None
8369        TransitionKey   = DOWN_DEFAULT
8370      End
8371      ConditionState    = NIGHT
8372        Model           = None
8373        TransitionKey   = DOWN_DEFAULT
8374      End
8375      ConditionState    = SNOW
8376        Model           = None
8377        TransitionKey   = DOWN_DEFAULT
8378      End
8379      ConditionState    = SNOW NIGHT
8380        Model           = None
8381        TransitionKey   = DOWN_DEFAULT
8382      End
8383      ConditionState    = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
8384        Model           = UBBarracks_A4
8385        Animation       = UBBarracks_A4.UBBarracks_A4
8386        AnimationMode   = MANUAL
8387        Flags           = START_FRAME_LAST
8388        TransitionKey   = UP_DAY
8389      End
8390      ConditionState    = NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
8391        Model           = UBBarracks_A4N
8392        Animation       = UBBarracks_A4N.UBBarracks_A4N
8393        AnimationMode   = MANUAL
8394        Flags           = START_FRAME_LAST
8395        TransitionKey   = UP_NIGHT
8396      End
8397      ConditionState    = SNOW AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
8398        Model           = UBBarracks_A4S
8399        Animation       = UBBarracks_A4S.UBBarracks_A4S
8400        AnimationMode   = MANUAL
8401        Flags           = START_FRAME_LAST
8402        TransitionKey   = UP_SNOW
8403      End
8404      ConditionState    = SNOW NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
8405        Model           = UBBarracks_A4SN
8406        Animation       = UBBarracks_A4SN.UBBarracks_A4SN
8407        AnimationMode   = MANUAL
8408        Flags           = START_FRAME_LAST
8409        TransitionKey   = UP_SNOWNIGHT
8410      End
8411      TransitionState   = DOWN_DEFAULT UP_DAY
8412        Model           = UBBarracks_A4
8413        Animation       = UBBarracks_A4.UBBarracks_A4
8414        AnimationMode   = ONCE
8415        AnimationSpeedFactorRange = 1.0 1.0
8416        Flags           = START_FRAME_FIRST
8417      End
8418      TransitionState   = DOWN_DEFAULT UP_NIGHT
8419        Model           = UBBarracks_A4N
8420        Animation       = UBBarracks_A4N.UBBarracks_A4N
8421        AnimationMode   = ONCE
8422        AnimationSpeedFactorRange = 1.0 1.0
8423        Flags           = START_FRAME_FIRST
8424      End
8425      TransitionState   = DOWN_DEFAULT UP_SNOW
8426        Model           = UBBarracks_A4S
8427        Animation       = UBBarracks_A4S.UBBarracks_A4S
8428        AnimationMode   = ONCE
8429        AnimationSpeedFactorRange = 1.0 1.0
8430        Flags           = START_FRAME_FIRST
8431      End
8432      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
8433        Model           = UBBarracks_A4SN
8434        Animation       = UBBarracks_A4SN.UBBarracks_A4SN
8435        AnimationMode   = ONCE
8436        AnimationSpeedFactorRange = 1.0 1.0
8437        Flags           = START_FRAME_FIRST
8438      End
8439      TransitionState   = UP_DAY DOWN_DEFAULT
8440        Model           = UBBarracks_A4
8441        Animation       = UBBarracks_A4.UBBarracks_A4
8442        AnimationMode   = ONCE_BACKWARDS
8443        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
8444        Flags           = START_FRAME_LAST
8445      End
8446      TransitionState   = UP_NIGHT DOWN_DEFAULT
8447        Model           = UBBarracks_A4N
8448        Animation       = UBBarracks_A4N.UBBarracks_A4N
8449        AnimationMode   = ONCE_BACKWARDS
8450        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
8451        Flags           = START_FRAME_LAST
8452      End
8453      TransitionState   = UP_SNOW DOWN_DEFAULT
8454        Model           = UBBarracks_A4S
8455        Animation       = UBBarracks_A4S.UBBarracks_A4S
8456        AnimationMode   = ONCE_BACKWARDS
8457        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
8458        Flags           = START_FRAME_LAST
8459      End
8460      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
8461        Model           = UBBarracks_A4SN
8462        Animation       = UBBarracks_A4SN.UBBarracks_A4SN
8463        AnimationMode   = ONCE_BACKWARDS
8464        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
8465        Flags           = START_FRAME_LAST
8466      End
8467    End
8468  
8469    ; ------------ under-construction scaffolding -----------------
8470    Draw = W3DModelDraw ModuleTag_03
8471    AnimationsRequirePower = No
8472      MinLODRequired = MEDIUM
8473      DefaultConditionState
8474        Model           = None
8475        TransitionKey   = DOWN_DEFAULT
8476      End
8477      ConditionState    = NIGHT
8478        Model           = None
8479        TransitionKey   = DOWN_DEFAULT
8480      End
8481      ConditionState    = SNOW
8482        Model           = None
8483        TransitionKey   = DOWN_DEFAULT
8484      End
8485      ConditionState    = SNOW NIGHT
8486        Model           = None
8487        TransitionKey   = DOWN_DEFAULT
8488      End
8489      ConditionState    = PARTIALLY_CONSTRUCTED
8490        Model           = UBBarracks_A6
8491        Animation       = UBBarracks_A6.UBBarracks_A6
8492        AnimationMode   = MANUAL
8493        Flags           = START_FRAME_LAST
8494        TransitionKey   = UP_DAY
8495        ParticleSysBone = Dust01 BuildingDust
8496        ParticleSysBone = Smoke01 BuildUpSmoke
8497        ParticleSysBone = Smoke02 BuildUpSmoke
8498        ParticleSysBone = Smoke03 BuildUpSmoke
8499        ParticleSysBone = Smoke04 BuildUpSmoke
8500        ParticleSysBone = Smoke05 BuildUpSmoke
8501        ParticleSysBone = Smoke06 BuildUpSmoke
8502      End
8503      ConditionState    = NIGHT PARTIALLY_CONSTRUCTED
8504        Model           = UBBarracks_A6N
8505        Animation       = UBBarracks_A6N.UBBarracks_A6N
8506        AnimationMode   = MANUAL
8507        Flags           = START_FRAME_LAST
8508        TransitionKey   = UP_NIGHT
8509        ParticleSysBone = Dust01 BuildingDust
8510        ParticleSysBone = Smoke01 BuildUpSmoke
8511        ParticleSysBone = Smoke02 BuildUpSmoke
8512        ParticleSysBone = Smoke03 BuildUpSmoke
8513        ParticleSysBone = Smoke04 BuildUpSmoke
8514        ParticleSysBone = Smoke05 BuildUpSmoke
8515        ParticleSysBone = Smoke06 BuildUpSmoke
8516      End
8517      ConditionState    = SNOW PARTIALLY_CONSTRUCTED
8518        Model           = UBBarracks_A6S
8519        Animation       = UBBarracks_A6S.UBBarracks_A6S
8520        AnimationMode   = MANUAL
8521        Flags           = START_FRAME_LAST
8522        TransitionKey   = UP_SNOW
8523        ParticleSysBone = Dust01 BuildingSnowDust
8524        ParticleSysBone = Smoke01 BuildUpSnowSmoke
8525        ParticleSysBone = Smoke02 BuildUpSnowSmoke
8526        ParticleSysBone = Smoke03 BuildUpSnowSmoke
8527        ParticleSysBone = Smoke04 BuildUpSnowSmoke
8528        ParticleSysBone = Smoke05 BuildUpSnowSmoke
8529        ParticleSysBone = Smoke06 BuildUpSnowSmoke
8530      End
8531      ConditionState    = SNOW NIGHT PARTIALLY_CONSTRUCTED
8532        Model           = UBBarracks_A6SN
8533        Animation       = UBBarracks_A6SN.UBBarracks_A6SN
8534        AnimationMode   = MANUAL
8535        Flags           = START_FRAME_LAST
8536        TransitionKey   = UP_SNOWNIGHT
8537        ParticleSysBone = Dust01 BuildingNightSnowDust
8538        ParticleSysBone = Smoke01 BuildUpNightSnowSmoke
8539        ParticleSysBone = Smoke02 BuildUpNightSnowSmoke
8540        ParticleSysBone = Smoke03 BuildUpNightSnowSmoke
8541        ParticleSysBone = Smoke04 BuildUpNightSnowSmoke
8542        ParticleSysBone = Smoke05 BuildUpNightSnowSmoke
8543        ParticleSysBone = Smoke06 BuildUpNightSnowSmoke
8544      End
8545      TransitionState   = DOWN_DEFAULT UP_DAY
8546       Model            = UBBarracks_A6
8547        Animation       = UBBarracks_A6.UBBarracks_A6
8548        AnimationMode   = ONCE
8549        AnimationSpeedFactorRange = 1.0 1.0
8550        Flags           = START_FRAME_FIRST
8551      End
8552      TransitionState   = DOWN_DEFAULT UP_NIGHT
8553       Model            = UBBarracks_A6N
8554        Animation       = UBBarracks_A6N.UBBarracks_A6N
8555        AnimationMode   = ONCE
8556        AnimationSpeedFactorRange = 1.0 1.0
8557        Flags           = START_FRAME_FIRST
8558      End
8559      TransitionState   = DOWN_DEFAULT UP_SNOW
8560       Model            = UBBarracks_A6S
8561        Animation       = UBBarracks_A6S.UBBarracks_A6S
8562        AnimationMode   = ONCE
8563        AnimationSpeedFactorRange = 1.0 1.0
8564        Flags           = START_FRAME_FIRST
8565      End
8566      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
8567       Model            = UBBarracks_A6SN
8568        Animation       = UBBarracks_A6SN.UBBarracks_A6SN
8569        AnimationMode   = ONCE
8570        AnimationSpeedFactorRange = 1.0 1.0
8571        Flags           = START_FRAME_FIRST
8572      End
8573      TransitionState   = UP_DAY DOWN_DEFAULT
8574        Model           = UBBarracks_A6
8575        Animation       = UBBarracks_A6.UBBarracks_A6
8576        AnimationMode   = ONCE_BACKWARDS
8577        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
8578        Flags           = START_FRAME_LAST
8579      End
8580      TransitionState   = UP_NIGHT DOWN_DEFAULT
8581        Model           = UBBarracks_A6N
8582        Animation       = UBBarracks_A6N.UBBarracks_A6N
8583        AnimationMode   = ONCE_BACKWARDS
8584        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
8585        Flags           = START_FRAME_LAST
8586      End
8587      TransitionState   = UP_SNOW DOWN_DEFAULT
8588        Model           = UBBarracks_A6S
8589        Animation       = UBBarracks_A6S.UBBarracks_A6S
8590        AnimationMode   = ONCE_BACKWARDS
8591        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
8592        Flags           = START_FRAME_LAST
8593      End
8594      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
8595        Model           = UBBarracks_A6SN
8596        Animation       = UBBarracks_A6SN.UBBarracks_A6SN
8597        AnimationMode   = ONCE_BACKWARDS
8598        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
8599        Flags           = START_FRAME_LAST
8600      End
8601    End
8602  
8603    PlacementViewAngle = -135
8604  
8605    ; ***DESIGN parameters ***
8606    DisplayName      = OBJECT:Barracks
8607    Side             = GLADemolitionGeneral
8608    EditorSorting    = STRUCTURE
8609    BuildCost        = 500
8610    BuildTime        = 10.0           ; in seconds
8611    EnergyProduction = 0
8612    CommandSet       = Demo_GLABarracksCommandSet
8613    VisionRange      = 200.0           ; Shroud clearing distance
8614    ShroudClearingRange = 200
8615    WeaponSet
8616      Conditions = None 
8617      Weapon = PRIMARY None
8618      Weapon = SECONDARY None
8619    End
8620    ArmorSet
8621      Conditions      = None
8622      Armor           = StructureArmor
8623      DamageFX        = StructureDamageFXNoShake
8624    End
8625    ArmorSet
8626      Conditions      = PLAYER_UPGRADE
8627      Armor           = GLAUpgradedStructureArmor
8628      DamageFX        = StructureDamageFXNoShake
8629    End
8630    ExperienceValue     = 100 100 100 100  ; Experience point value at each level
8631  
8632    Prerequisites
8633  ;    Object = Demo_GLASupplyStash
8634    End
8635  
8636  
8637    ; *** AUDIO Parameters ***
8638    VoiceSelect = BarracksGLASelect
8639    SoundOnDamaged        = BuildingDamagedStateLight
8640    SoundOnReallyDamaged  = BuildingDestroy
8641  
8642    UnitSpecificSounds
8643      UnderConstruction     = UnderConstructionLoop
8644    End
8645  
8646    ; *** ENGINEERING Parameters ***
8647    RadarPriority   = STRUCTURE
8648    KindOf          = PRELOAD STRUCTURE SELECTABLE IMMOBILE HEAL_PAD CAPTURABLE FS_FACTORY AUTO_RALLYPOINT MP_COUNT_FOR_VICTORY SCORE_CREATE FS_BARRACKS
8649    Body            = StructureBody ModuleTag_04
8650      MaxHealth     = 1000.0
8651      InitialHealth = 1000.0
8652  
8653      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
8654      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
8655      SubdualDamageCap = 1200
8656      SubdualDamageHealRate = 500
8657      SubdualDamageHealAmount = 100
8658    End
8659  
8660    Behavior        = ArmorUpgrade ModuleTag_Armor01
8661      TriggeredBy   = Upgrade_GLAFortifiedStructure
8662    End
8663  
8664    Behavior        = ModelConditionUpgrade ModuleTag_Armor01Visual
8665      ConditionFlag = GARRISONED
8666      TriggeredBy   = Upgrade_GLAFortifiedStructure
8667    End
8668  
8669    Behavior = HealContain ModuleTag_05
8670      ContainMax          = 10 ;way bigger than the # of objects we can have  
8671      TimeForFullHeal     = 2000   ;(in milliseconds)
8672      AllowInsideKindOf   = INFANTRY
8673      AllowAlliesInside   = Yes
8674      AllowNeutralInside  = No
8675      AllowEnemiesInside  = No
8676    End
8677  
8678    Behavior        = RebuildHoleExposeDie ModuleTag_06
8679      HoleName      = GLAHoleBarracks
8680      HoleMaxHealth = 500.0
8681    End
8682    Behavior = DestroyDie ModuleTag_07
8683      ;nothing
8684    End
8685    Behavior        = CreateObjectDie ModuleTag_08
8686      CreationList  = OCL_LargeStructureDebris
8687    End
8688    Behavior        = FXListDie ModuleTag_09
8689      DeathFX       = FX_StructureSmallDeath
8690    End
8691    Behavior = ProductionUpdate ModuleTag_10
8692      ; nothing
8693    End
8694    Behavior = DefaultProductionExitUpdate ModuleTag_11
8695      UnitCreatePoint   = X:  0.0  Y:  0.0   Z:0.0
8696      NaturalRallyPoint = X: 42.0  Y:  0.0   Z:0.0;NaturalRallyPointX must always match GeometryMajorRadius! -ML
8697    End
8698  
8699    Behavior = FlammableUpdate ModuleTag_13
8700      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
8701      AflameDamageAmount = 5       ; taking this much damage...
8702      AflameDamageDelay = 500       ; this often.
8703    End
8704  
8705    Behavior = TransitionDamageFX ModuleTag_16
8706      ;-------------DESIGNED FOR SMALL MEDIUM FACTION BUILDING TRANSITIONS-------------------
8707      DamagedParticleSystem1       = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
8708      ;---------------------------------------------------------------------------------------
8709      ReallyDamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
8710      ReallyDamagedParticleSystem2 = Bone:None RandomBone:No PSys:StructureTransitionSmallExplosion
8711      ReallyDamagedParticleSystem3 = Bone:None RandomBone:No PSys:StructureTransitionSmallShockwave
8712    End
8713  
8714    ;I have just pulled my ripcord, and this ain't no parachute!
8715    Behavior = SlowDeathBehavior ModuleTag_Death17
8716      DeathTypes          = NONE +SUICIDED +EXPLODED
8717      SinkDelay           = 3000
8718      SinkRate            = 0.5     ; in Dist/Sec
8719      DestructionDelay    = 8000
8720      FX                  = INITIAL FX_TerroristExplode
8721      FlingForce          = 8
8722      FlingForceVariance  = 3
8723      FlingPitch          = 60
8724      FlingPitchVariance  = 10
8725    End
8726  
8727    Behavior = CommandSetUpgrade ModuleTag_18
8728      TriggeredBy = Upgrade_GLAWorkerFakeCommandSet
8729      RemovesUpgrades = Upgrade_GLAWorkerRealCommandSet
8730      CommandSet = Demo_GLAWorkerFakeBuildingsCommandSet
8731    End
8732   
8733    Behavior = CommandSetUpgrade ModuleTag_19
8734      TriggeredBy = Upgrade_GLAWorkerRealCommandSet
8735      RemovesUpgrades = Upgrade_GLAWorkerFakeCommandSet Upgrade_GLAWorkerRealCommandSet
8736      CommandSet = Demo_GLAWorkerCommandSet
8737    End
8738  
8739    Geometry            = BOX
8740    GeometryMajorRadius = 42.0
8741    GeometryMinorRadius = 52.0
8742    GeometryHeight      = 20.0
8743    GeometryIsSmall     = No
8744    FactoryExitWidth    = 25 
8745    Shadow          = SHADOW_VOLUME
8746    BuildCompletion = PLACED_BY_PLAYER
8747  
8748  End
8749  
8750  ;------------------------------------------------------------------------------
8751  ;Fake GLA Barracks
8752  Object Demo_FakeGLABarracks
8753  
8754    ; *** ART Parameters ***
8755    SelectPortrait         = SUBarracks_L
8756    ButtonImage            = SUBarracks
8757  
8758  ;  UpgradeCameo1 = Upgrade_GLAFortifiedStructure
8759  
8760    Draw = W3DModelDraw ModuleTag_01
8761      OkToChangeModelColor = Yes
8762      ; day
8763      ConditionState = NONE
8764        Model = UBBARRACKS
8765        ParticleSysBone = Smoke01 ChimneySmokeSmall
8766        ParticleSysBone = Smoke02 SteamVent
8767        Animation     = UBBarracks.UBBarracks
8768        AnimationMode = LOOP
8769      End
8770      ConditionState = DAMAGED
8771        Model = UBBarracks_D
8772        ParticleSysBone = Smoke01 ChimneySmokeSmall
8773        ParticleSysBone = Smoke02 SteamVent
8774  ;     ParticleSysBone = Smoke03 SmokeFactionMedium
8775  ;     ParticleSysBone = Flame01 FireFactionMedium
8776        Animation     = UBBarracks_D.UBBarracks_D
8777        AnimationMode = LOOP
8778      End
8779      ConditionState = REALLYDAMAGED RUBBLE
8780        Model = UBBarracks_E
8781        ParticleSysBone = Smoke01 ChimneySmokeSmall
8782  ;     ParticleSysBone = Smoke02 SteamVent
8783  ;     ParticleSysBone = Smoke03 SmokeFactionMedium
8784  ;     ParticleSysBone = Smoke04 SmokeFactionLarge
8785  ;     ParticleSysBone = Smoke05 SmokeFactionLarge
8786  ;     ParticleSysBone = Flame01 FireFactionMedium
8787  ;     ParticleSysBone = Flame02 FireFactionLarge
8788        Animation     = UBBarracks_E.UBBarracks_E
8789        AnimationMode = LOOP
8790      End
8791      ConditionState         = GARRISONED
8792        Model                = UBBarrksEG
8793        ParticleSysBone      = Smoke01 SmolderingSmoke
8794        Animation            = UBBarrksEG.UBBarrksEG
8795        AnimationMode        = LOOP
8796      End
8797      ConditionState         = DAMAGED GARRISONED
8798        Model                = UBBarrksEG_D
8799        ParticleSysBone      = Smoke01 SmolderingSmoke
8800        Animation            = UBBarrksEG_D.UBBarrksEG_D
8801        AnimationMode        = LOOP
8802      End
8803      ConditionState         = REALLYDAMAGED GARRISONED
8804        Model                = UBBarrksEG_E
8805        ParticleSysBone      = Smoke01 SmolderingSmoke
8806        Animation            = UBBarrksEG_E.UBBarrksEG_E
8807        AnimationMode        = LOOP
8808      End
8809          
8810          ; day
8811      ConditionState = SNOW
8812        Model = UBBARRACKS_S
8813        ParticleSysBone = Smoke01 ChimneySmokeSmall
8814        ParticleSysBone = Smoke02 SteamVent
8815        Animation     = UBBarracks_S.UBBarracks_S
8816        AnimationMode = LOOP
8817      End
8818      ConditionState = DAMAGED SNOW
8819        Model = UBBarracks_DS
8820        ParticleSysBone = Smoke01 ChimneySmokeSmall
8821        ParticleSysBone = Smoke02 SteamVent
8822  ;     ParticleSysBone = Smoke03 SmokeFactionMedium
8823  ;     ParticleSysBone = Flame01 FireFactionMedium
8824        Animation     = UBBarracks_DS.UBBarracks_DS
8825        AnimationMode = LOOP
8826      End
8827      ConditionState = REALLYDAMAGED RUBBLE SNOW
8828        Model = UBBarracks_ES
8829        ParticleSysBone = Smoke01 ChimneySmokeSmall
8830  ;     ParticleSysBone = Smoke02 SteamVent
8831  ;     ParticleSysBone = Smoke03 SmokeFactionMedium
8832  ;     ParticleSysBone = Smoke04 SmokeFactionLarge
8833  ;     ParticleSysBone = Smoke05 SmokeFactionLarge
8834  ;     ParticleSysBone = Flame01 FireFactionMedium
8835  ;     ParticleSysBone = Flame02 FireFactionLarge
8836        Animation     = UBBarracks_ES.UBBarracks_ES
8837        AnimationMode = LOOP
8838      End
8839      ConditionState         = GARRISONED SNOW
8840        Model                = UBBarrksEG_S
8841        ParticleSysBone      = Smoke01 SmolderingSmoke
8842        Animation            = UBBarrksEG_S.UBBarrksEG_S
8843        AnimationMode        = LOOP
8844      End
8845      ConditionState         = DAMAGED GARRISONED SNOW
8846        Model                = UBBarrksEG_DS
8847        ParticleSysBone      = Smoke01 SmolderingSmoke
8848        Animation            = UBBarrksEG_DS.UBBarrksEG_DS
8849        AnimationMode        = LOOP
8850      End
8851      ConditionState         = REALLYDAMAGED GARRISONED SNOW
8852        Model                = UBBarrksEG_ES
8853        ParticleSysBone      = Smoke01 SmolderingSmoke
8854        Animation            = UBBarrksEG_ES.UBBarrksEG_ES
8855        AnimationMode        = LOOP
8856      End
8857  
8858      ; night
8859      ConditionState = NIGHT
8860        Model = UBBARRACKS_N
8861        ParticleSysBone = Smoke01 ChimneySmokeSmall
8862        ParticleSysBone = Smoke02 SteamVent
8863        Animation     = UBBarracks_N.UBBarracks_N
8864        AnimationMode = LOOP
8865      End
8866      ConditionState = DAMAGED NIGHT
8867        Model = UBBarracks_DN
8868        ParticleSysBone = Smoke01 ChimneySmokeSmall
8869        ParticleSysBone = Smoke02 SteamVent
8870        ParticleSysBone = Smoke03 GLAPowerPlantSmoke
8871        ParticleSysBone = Flame01 GLAPowerPlantFlame
8872        Animation     = UBBarracks_DN.UBBarracks_DN
8873        AnimationMode = LOOP
8874      End
8875      ConditionState = REALLYDAMAGED RUBBLE NIGHT
8876        Model = UBBarracks_EN
8877        ParticleSysBone = Smoke01 ChimneySmokeSmall
8878        ParticleSysBone = Smoke02 SteamVent
8879        ParticleSysBone = Smoke03 GLAPowerPlantSmoke
8880        ParticleSysBone = Smoke04 GLAPowerPlantSmoke
8881        ParticleSysBone = Smoke05 GLAPowerPlantSmoke
8882        ParticleSysBone = Flame01 FireSmallContinuous
8883        ParticleSysBone = Flame02 GLAPowerPlantFlame
8884        Animation     = UBBarracks_EN.UBBarracks_EN
8885        AnimationMode = LOOP
8886      End
8887      ConditionState         = GARRISONED NIGHT
8888        Model                = UBBarrksEG_N
8889        ParticleSysBone      = Smoke01 SmolderingSmoke
8890        Animation            = UBBarrksEG_N.UBBarrksEG_N
8891        AnimationMode        = LOOP
8892      End
8893      ConditionState         = DAMAGED GARRISONED NIGHT
8894        Model                = UBBarrksEG_DN
8895        ParticleSysBone      = Smoke01 SmolderingSmoke
8896        Animation            = UBBarrksEG_DN.UBBarrksEG_DN
8897        AnimationMode        = LOOP
8898      End
8899      ConditionState         = REALLYDAMAGED GARRISONED NIGHT
8900        Model                = UBBarrksEG_EN
8901        ParticleSysBone      = Smoke01 SmolderingSmoke
8902        Animation            = UBBarrksEG_EN.UBBarrksEG_EN
8903        AnimationMode        = LOOP
8904      End
8905  
8906      ; night snow
8907      ConditionState = NIGHT SNOW
8908        Model = UBBARRACKS_NS
8909        ParticleSysBone = Smoke01 ChimneySmokeSmall
8910        ParticleSysBone = Smoke02 SteamVent
8911        Animation     = UBBarracks_NS.UBBarracks_NS
8912        AnimationMode = LOOP
8913      End
8914      ConditionState = DAMAGED NIGHT SNOW
8915        Model = UBBarracks_DNS
8916        ParticleSysBone = Smoke01 ChimneySmokeSmall
8917        ParticleSysBone = Smoke02 SteamVent
8918        ParticleSysBone = Smoke03 GLAPowerPlantSmoke
8919        ParticleSysBone = Flame01 GLAPowerPlantFlame
8920        Animation     = UBBarracks_DNS.UBBarracks_DNS
8921        AnimationMode = LOOP
8922      End
8923      ConditionState = REALLYDAMAGED RUBBLE NIGHT SNOW
8924        Model = UBBarracks_ENS
8925        ParticleSysBone = Smoke01 ChimneySmokeSmall
8926        ParticleSysBone = Smoke02 SteamVent
8927        ParticleSysBone = Smoke03 GLAPowerPlantSmoke
8928        ParticleSysBone = Smoke04 GLAPowerPlantSmoke
8929        ParticleSysBone = Smoke05 GLAPowerPlantSmoke
8930        ParticleSysBone = Flame01 FireSmallContinuous
8931        ParticleSysBone = Flame02 GLAPowerPlantFlame
8932        Animation     = UBBarracks_ENS.UBBarracks_ENS
8933        AnimationMode = LOOP
8934      End
8935      ConditionState         = GARRISONED NIGHT SNOW
8936        Model                = UBBarrksEG_NS
8937        ParticleSysBone      = Smoke01 SmolderingSmoke
8938        Animation            = UBBarrksEG_NS.UBBarrksEG_NS
8939        AnimationMode        = LOOP
8940      End
8941      ConditionState         = DAMAGED GARRISONED NIGHT SNOW
8942        Model                = UBBarrksEG_DNS
8943        ParticleSysBone      = Smoke01 SmolderingSmoke
8944        Animation            = UBBarrksEG_DNS.UBBarrksEG_DNS
8945        AnimationMode        = LOOP
8946      End
8947      ConditionState         = REALLYDAMAGED GARRISONED NIGHT SNOW
8948        Model                = UBBarrksEG_ENS
8949        ParticleSysBone      = Smoke01 SmolderingSmoke
8950        Animation            = UBBarrksEG_ENS.UBBarrksEG_ENS
8951        AnimationMode        = LOOP
8952      End
8953  
8954      ;**************************************************************************************************************************
8955      ;This block handles every possible case with construction process, selling process, awaiting construction, and sold states
8956      ;for this draw module
8957      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
8958        Model              = UBBarracks
8959        Animation          = UBBarracks.UBBarracks
8960        AnimationMode      = LOOP
8961        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
8962      End
8963      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
8964        Model              = UBBarracks_D
8965        Animation          = UBBarracks_D.UBBarracks_D
8966        AnimationMode      = LOOP
8967        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
8968      End
8969      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED
8970        Model              = UBBarracks_E
8971        Animation          = UBBarracks_E.UBBarracks_E
8972        AnimationMode      = LOOP
8973        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
8974      End
8975      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT
8976        Model              = UBBarracks_N
8977        Animation          = UBBarracks_N.UBBarracks_N
8978        AnimationMode      = LOOP
8979        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
8980      End
8981      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT DAMAGED
8982        Model              = UBBarracks_DN
8983        Animation          = UBBarracks_DN.UBBarracks_DN
8984        AnimationMode      = LOOP
8985        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
8986      End
8987      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT REALLYDAMAGED
8988        Model              = UBBarracks_EN
8989        Animation          = UBBarracks_EN.UBBarracks_EN
8990        AnimationMode      = LOOP
8991        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
8992      End
8993      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW
8994        Model              = UBBarracks_S
8995        Animation          = UBBarracks_S.UBBarracks_S
8996        AnimationMode      = LOOP
8997        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
8998      End
8999      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW DAMAGED
9000        Model              = UBBarracks_DS
9001        Animation          = UBBarracks_DS.UBBarracks_DS
9002        AnimationMode      = LOOP
9003        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
9004      End
9005      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW REALLYDAMAGED
9006        Model              = UBBarracks_ES
9007        Animation          = UBBarracks_ES.UBBarracks_ES
9008        AnimationMode      = LOOP
9009        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
9010      End
9011      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW
9012        Model              = UBBarracks_NS
9013        Animation          = UBBarracks_NS.UBBarracks_NS
9014        AnimationMode      = LOOP
9015        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
9016      End
9017      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW DAMAGED
9018        Model              = UBBarracks_DNS
9019        Animation          = UBBarracks_DNS.UBBarracks_DNS
9020        AnimationMode      = LOOP
9021        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
9022      End
9023      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW REALLYDAMAGED
9024        Model              = UBBarracks_ENS
9025        Animation          = UBBarracks_ENS.UBBarracks_ENS
9026        AnimationMode      = LOOP
9027        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
9028      End
9029  
9030      ConditionState       = AWAITING_CONSTRUCTION 
9031        Model              = NONE
9032      End
9033      AliasConditionState  = AWAITING_CONSTRUCTION DAMAGED
9034      AliasConditionState  = AWAITING_CONSTRUCTION REALLYDAMAGED
9035      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT
9036      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT DAMAGED
9037      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT REALLYDAMAGED
9038      AliasConditionState  = AWAITING_CONSTRUCTION SNOW
9039      AliasConditionState  = AWAITING_CONSTRUCTION SNOW DAMAGED
9040      AliasConditionState  = AWAITING_CONSTRUCTION SNOW REALLYDAMAGED
9041      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW
9042      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW DAMAGED
9043      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW REALLYDAMAGED
9044      AliasConditionState  = SOLD 
9045      AliasConditionState  = SOLD DAMAGED
9046      AliasConditionState  = SOLD REALLYDAMAGED
9047      AliasConditionState  = SOLD NIGHT
9048      AliasConditionState  = SOLD NIGHT DAMAGED
9049      AliasConditionState  = SOLD NIGHT REALLYDAMAGED
9050      AliasConditionState  = SOLD SNOW
9051      AliasConditionState  = SOLD SNOW DAMAGED
9052      AliasConditionState  = SOLD SNOW REALLYDAMAGED
9053      AliasConditionState  = SOLD NIGHT SNOW
9054      AliasConditionState  = SOLD NIGHT SNOW DAMAGED
9055      AliasConditionState  = SOLD NIGHT SNOW REALLYDAMAGED
9056      AliasConditionState  = GARRISONED SOLD 
9057      AliasConditionState  = GARRISONED SOLD DAMAGED
9058      AliasConditionState  = GARRISONED SOLD REALLYDAMAGED
9059      AliasConditionState  = GARRISONED SOLD NIGHT
9060      AliasConditionState  = GARRISONED SOLD NIGHT DAMAGED
9061      AliasConditionState  = GARRISONED SOLD NIGHT REALLYDAMAGED
9062      AliasConditionState  = GARRISONED SOLD SNOW
9063      AliasConditionState  = GARRISONED SOLD SNOW DAMAGED
9064      AliasConditionState  = GARRISONED SOLD SNOW REALLYDAMAGED
9065      AliasConditionState  = GARRISONED SOLD NIGHT SNOW
9066      AliasConditionState  = GARRISONED SOLD NIGHT SNOW DAMAGED
9067      AliasConditionState  = GARRISONED SOLD NIGHT SNOW REALLYDAMAGED
9068      ;**************************************************************************************************************************
9069    End
9070    ; ------------ construction-zone fence -----------------
9071    Draw = W3DModelDraw ModuleTag_02
9072    AnimationsRequirePower = No
9073      DefaultConditionState
9074        Model           = None
9075        TransitionKey   = DOWN_DEFAULT
9076      End
9077      ConditionState    = NIGHT
9078        Model           = None
9079        TransitionKey   = DOWN_DEFAULT
9080      End
9081      ConditionState    = SNOW
9082        Model           = None
9083        TransitionKey   = DOWN_DEFAULT
9084      End
9085      ConditionState    = SNOW NIGHT
9086        Model           = None
9087        TransitionKey   = DOWN_DEFAULT
9088      End
9089      ConditionState    = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
9090        Model           = UBBarracks_A4
9091        Animation       = UBBarracks_A4.UBBarracks_A4
9092        AnimationMode   = MANUAL
9093        Flags           = START_FRAME_LAST
9094        TransitionKey   = UP_DAY
9095      End
9096      ConditionState    = NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
9097        Model           = UBBarracks_A4N
9098        Animation       = UBBarracks_A4N.UBBarracks_A4N
9099        AnimationMode   = MANUAL
9100        Flags           = START_FRAME_LAST
9101        TransitionKey   = UP_NIGHT
9102      End
9103      ConditionState    = SNOW AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
9104        Model           = UBBarracks_A4S
9105        Animation       = UBBarracks_A4S.UBBarracks_A4S
9106        AnimationMode   = MANUAL
9107        Flags           = START_FRAME_LAST
9108        TransitionKey   = UP_SNOW
9109      End
9110      ConditionState    = SNOW NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
9111        Model           = UBBarracks_A4SN
9112        Animation       = UBBarracks_A4SN.UBBarracks_A4SN
9113        AnimationMode   = MANUAL
9114        Flags           = START_FRAME_LAST
9115        TransitionKey   = UP_SNOWNIGHT
9116      End
9117      TransitionState   = DOWN_DEFAULT UP_DAY
9118        Model           = UBBarracks_A4
9119        Animation       = UBBarracks_A4.UBBarracks_A4
9120        AnimationMode   = ONCE
9121        AnimationSpeedFactorRange = 1.0 1.0
9122        Flags           = START_FRAME_FIRST
9123      End
9124      TransitionState   = DOWN_DEFAULT UP_NIGHT
9125        Model           = UBBarracks_A4N
9126        Animation       = UBBarracks_A4N.UBBarracks_A4N
9127        AnimationMode   = ONCE
9128        AnimationSpeedFactorRange = 1.0 1.0
9129        Flags           = START_FRAME_FIRST
9130      End
9131      TransitionState   = DOWN_DEFAULT UP_SNOW
9132        Model           = UBBarracks_A4S
9133        Animation       = UBBarracks_A4S.UBBarracks_A4S
9134        AnimationMode   = ONCE
9135        AnimationSpeedFactorRange = 1.0 1.0
9136        Flags           = START_FRAME_FIRST
9137      End
9138      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
9139        Model           = UBBarracks_A4SN
9140        Animation       = UBBarracks_A4SN.UBBarracks_A4SN
9141        AnimationMode   = ONCE
9142        AnimationSpeedFactorRange = 1.0 1.0
9143        Flags           = START_FRAME_FIRST
9144      End
9145      TransitionState   = UP_DAY DOWN_DEFAULT
9146        Model           = UBBarracks_A4
9147        Animation       = UBBarracks_A4.UBBarracks_A4
9148        AnimationMode   = ONCE_BACKWARDS
9149        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
9150        Flags           = START_FRAME_LAST
9151      End
9152      TransitionState   = UP_NIGHT DOWN_DEFAULT
9153        Model           = UBBarracks_A4N
9154        Animation       = UBBarracks_A4N.UBBarracks_A4N
9155        AnimationMode   = ONCE_BACKWARDS
9156        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
9157        Flags           = START_FRAME_LAST
9158      End
9159      TransitionState   = UP_SNOW DOWN_DEFAULT
9160        Model           = UBBarracks_A4S
9161        Animation       = UBBarracks_A4S.UBBarracks_A4S
9162        AnimationMode   = ONCE_BACKWARDS
9163        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
9164        Flags           = START_FRAME_LAST
9165      End
9166      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
9167        Model           = UBBarracks_A4SN
9168        Animation       = UBBarracks_A4SN.UBBarracks_A4SN
9169        AnimationMode   = ONCE_BACKWARDS
9170        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
9171        Flags           = START_FRAME_LAST
9172      End
9173    End
9174  
9175    ; ------------ under-construction scaffolding -----------------
9176    Draw = W3DModelDraw ModuleTag_03
9177    AnimationsRequirePower = No
9178      MinLODRequired = MEDIUM
9179      DefaultConditionState
9180        Model           = None
9181        TransitionKey   = DOWN_DEFAULT
9182      End
9183      ConditionState    = NIGHT
9184        Model           = None
9185        TransitionKey   = DOWN_DEFAULT
9186      End
9187      ConditionState    = SNOW
9188        Model           = None
9189        TransitionKey   = DOWN_DEFAULT
9190      End
9191      ConditionState    = SNOW NIGHT
9192        Model           = None
9193        TransitionKey   = DOWN_DEFAULT
9194      End
9195      ConditionState    = PARTIALLY_CONSTRUCTED
9196        Model           = UBBarracks_A6
9197        Animation       = UBBarracks_A6.UBBarracks_A6
9198        AnimationMode   = MANUAL
9199        Flags           = START_FRAME_LAST
9200        TransitionKey   = UP_DAY
9201        ParticleSysBone = Dust01 BuildingDust
9202        ParticleSysBone = Smoke01 BuildUpSmoke
9203        ParticleSysBone = Smoke02 BuildUpSmoke
9204        ParticleSysBone = Smoke03 BuildUpSmoke
9205        ParticleSysBone = Smoke04 BuildUpSmoke
9206        ParticleSysBone = Smoke05 BuildUpSmoke
9207        ParticleSysBone = Smoke06 BuildUpSmoke
9208      End
9209      ConditionState    = NIGHT PARTIALLY_CONSTRUCTED
9210        Model           = UBBarracks_A6N
9211        Animation       = UBBarracks_A6N.UBBarracks_A6N
9212        AnimationMode   = MANUAL
9213        Flags           = START_FRAME_LAST
9214        TransitionKey   = UP_NIGHT
9215        ParticleSysBone = Dust01 BuildingDust
9216        ParticleSysBone = Smoke01 BuildUpSmoke
9217        ParticleSysBone = Smoke02 BuildUpSmoke
9218        ParticleSysBone = Smoke03 BuildUpSmoke
9219        ParticleSysBone = Smoke04 BuildUpSmoke
9220        ParticleSysBone = Smoke05 BuildUpSmoke
9221        ParticleSysBone = Smoke06 BuildUpSmoke
9222      End
9223      ConditionState    = SNOW PARTIALLY_CONSTRUCTED
9224        Model           = UBBarracks_A6S
9225        Animation       = UBBarracks_A6S.UBBarracks_A6S
9226        AnimationMode   = MANUAL
9227        Flags           = START_FRAME_LAST
9228        TransitionKey   = UP_SNOW
9229        ParticleSysBone = Dust01 BuildingSnowDust
9230        ParticleSysBone = Smoke01 BuildUpSnowSmoke
9231        ParticleSysBone = Smoke02 BuildUpSnowSmoke
9232        ParticleSysBone = Smoke03 BuildUpSnowSmoke
9233        ParticleSysBone = Smoke04 BuildUpSnowSmoke
9234        ParticleSysBone = Smoke05 BuildUpSnowSmoke
9235        ParticleSysBone = Smoke06 BuildUpSnowSmoke
9236      End
9237      ConditionState    = SNOW NIGHT PARTIALLY_CONSTRUCTED
9238        Model           = UBBarracks_A6SN
9239        Animation       = UBBarracks_A6SN.UBBarracks_A6SN
9240        AnimationMode   = MANUAL
9241        Flags           = START_FRAME_LAST
9242        TransitionKey   = UP_SNOWNIGHT
9243        ParticleSysBone = Dust01 BuildingNightSnowDust
9244        ParticleSysBone = Smoke01 BuildUpNightSnowSmoke
9245        ParticleSysBone = Smoke02 BuildUpNightSnowSmoke
9246        ParticleSysBone = Smoke03 BuildUpNightSnowSmoke
9247        ParticleSysBone = Smoke04 BuildUpNightSnowSmoke
9248        ParticleSysBone = Smoke05 BuildUpNightSnowSmoke
9249        ParticleSysBone = Smoke06 BuildUpNightSnowSmoke
9250      End
9251      TransitionState   = DOWN_DEFAULT UP_DAY
9252       Model            = UBBarracks_A6
9253        Animation       = UBBarracks_A6.UBBarracks_A6
9254        AnimationMode   = ONCE
9255        AnimationSpeedFactorRange = 1.0 1.0
9256        Flags           = START_FRAME_FIRST
9257      End
9258      TransitionState   = DOWN_DEFAULT UP_NIGHT
9259       Model            = UBBarracks_A6N
9260        Animation       = UBBarracks_A6N.UBBarracks_A6N
9261        AnimationMode   = ONCE
9262        AnimationSpeedFactorRange = 1.0 1.0
9263        Flags           = START_FRAME_FIRST
9264      End
9265      TransitionState   = DOWN_DEFAULT UP_SNOW
9266       Model            = UBBarracks_A6S
9267        Animation       = UBBarracks_A6S.UBBarracks_A6S
9268        AnimationMode   = ONCE
9269        AnimationSpeedFactorRange = 1.0 1.0
9270        Flags           = START_FRAME_FIRST
9271      End
9272      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
9273       Model            = UBBarracks_A6SN
9274        Animation       = UBBarracks_A6SN.UBBarracks_A6SN
9275        AnimationMode   = ONCE
9276        AnimationSpeedFactorRange = 1.0 1.0
9277        Flags           = START_FRAME_FIRST
9278      End
9279      TransitionState   = UP_DAY DOWN_DEFAULT
9280        Model           = UBBarracks_A6
9281        Animation       = UBBarracks_A6.UBBarracks_A6
9282        AnimationMode   = ONCE_BACKWARDS
9283        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
9284        Flags           = START_FRAME_LAST
9285      End
9286      TransitionState   = UP_NIGHT DOWN_DEFAULT
9287        Model           = UBBarracks_A6N
9288        Animation       = UBBarracks_A6N.UBBarracks_A6N
9289        AnimationMode   = ONCE_BACKWARDS
9290        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
9291        Flags           = START_FRAME_LAST
9292      End
9293      TransitionState   = UP_SNOW DOWN_DEFAULT
9294        Model           = UBBarracks_A6S
9295        Animation       = UBBarracks_A6S.UBBarracks_A6S
9296        AnimationMode   = ONCE_BACKWARDS
9297        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
9298        Flags           = START_FRAME_LAST
9299      End
9300      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
9301        Model           = UBBarracks_A6SN
9302        Animation       = UBBarracks_A6SN.UBBarracks_A6SN
9303        AnimationMode   = ONCE_BACKWARDS
9304        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
9305        Flags           = START_FRAME_LAST
9306      End
9307    End
9308  
9309    PlacementViewAngle = -135
9310  
9311    ; ***DESIGN parameters ***
9312    DisplayName      = OBJECT:Barracks
9313    Side             = GLADemolitionGeneral
9314    EditorSorting    = STRUCTURE
9315    Prerequisites
9316      Object = Demo_GLACommandCenter
9317    End
9318    BuildCost        = 125
9319    BuildTime        = 5.0           ; in seconds
9320    EnergyProduction = 0
9321    CommandSet       = FakeGLABarracksCommandSet
9322    VisionRange      = 200.0           ; Shroud clearing distance
9323    ShroudClearingRange = 200
9324  
9325    WeaponSet
9326      Conditions          = None 
9327      Weapon = PRIMARY SuicideWeapon
9328      AutoChooseSources = PRIMARY None
9329    End
9330  
9331    ArmorSet
9332      Conditions      = None
9333      Armor           = StructureArmor
9334      DamageFX        = StructureDamageFXNoShake
9335    End
9336    ExperienceValue     = 25 25 25 25  ; Experience point value at each level
9337  
9338    ; *** AUDIO Parameters ***
9339    VoiceSelect = BarracksGLASelect
9340    SoundOnDamaged        = BuildingDamagedStateLight
9341    SoundOnReallyDamaged  = BuildingDestroy
9342  
9343    UnitSpecificSounds
9344      UnderConstruction     = UnderConstructionLoop
9345    End
9346  
9347    ; *** ENGINEERING Parameters ***
9348    RadarPriority   = STRUCTURE
9349    KindOf          = PRELOAD STRUCTURE SELECTABLE IMMOBILE CAPTURABLE MP_COUNT_FOR_VICTORY SCORE_CREATE CAN_ATTACK FS_FAKE
9350    Body            = StructureBody ModuleTag_04
9351      MaxHealth     = 125.0
9352      InitialHealth = 125.0
9353  
9354      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
9355      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
9356      SubdualDamageCap = 325
9357      SubdualDamageHealRate = 500
9358      SubdualDamageHealAmount = 100
9359    End
9360  
9361    Behavior = AIUpdateInterface ModuleTag_06
9362      AutoAcquireEnemiesWhenIdle = No
9363    End
9364  
9365    Behavior        = CreateObjectDie ModuleTag_08
9366      CreationList  = OCL_LargeStructureDebris
9367    End
9368    Behavior        = FXListDie ModuleTag_09
9369      DeathFX       = FX_StructureSmallDeath
9370    End
9371  
9372    Behavior = ProductionUpdate ModuleTag_10
9373      ; nothing
9374    End
9375  
9376    Behavior = FlammableUpdate ModuleTag_11
9377      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
9378      AflameDamageAmount = 5       ; taking this much damage...
9379      AflameDamageDelay = 500       ; this often.
9380    End
9381  
9382    Behavior = TransitionDamageFX ModuleTag_12
9383      ;-------------DESIGNED FOR SMALL MEDIUM FACTION BUILDING TRANSITIONS-------------------
9384      DamagedParticleSystem1       = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
9385      ;---------------------------------------------------------------------------------------
9386      ReallyDamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
9387      ReallyDamagedParticleSystem2 = Bone:None RandomBone:No PSys:StructureTransitionSmallExplosion
9388      ReallyDamagedParticleSystem3 = Bone:None RandomBone:No PSys:StructureTransitionSmallShockwave
9389    End
9390  
9391    Behavior = SlowDeathBehavior ModuleTag_13
9392      ExemptStatus = UNDER_CONSTRUCTION
9393      DestructionDelay = 0
9394      Weapon = FINAL FakeStructureDetonationWeapon
9395    End
9396    Behavior = DestroyDie ModuleTag_SlowDeathException
9397      RequiredStatus = UNDER_CONSTRUCTION
9398    End
9399  
9400    Behavior = ReplaceObjectUpgrade ModuleTag_14
9401      ReplaceObject = Demo_GLABarracks
9402      TriggeredBy = Upgrade_BecomeRealGLABarracks
9403    End
9404  
9405    Behavior        = ModelConditionUpgrade ModuleTag_Armor01Visual
9406      ConditionFlag = GARRISONED
9407      TriggeredBy   = Upgrade_GLAFortifiedStructure
9408    End
9409  
9410    Geometry            = BOX
9411    GeometryMajorRadius = 42.0
9412    GeometryMinorRadius = 52.0
9413    GeometryHeight      = 20.0
9414    GeometryIsSmall     = No
9415    FactoryExitWidth    = 25 
9416    Shadow          = SHADOW_VOLUME
9417    ShadowTexture = fake_supply; this is not really a shadow, it's used for decal to indicate fake structure.
9418    ShadowSizeX = 120
9419    ShadowSizeY = 110
9420    BuildCompletion = PLACED_BY_PLAYER
9421  
9422  End
9423  
9424  ;------------------------------------------------------------------------------
9425  ObjectReskin Demo_GLAHoleBarracks Demo_GLAHole
9426    Draw                     = W3DModelDraw ModuleTag_01
9427      OkToChangeModelColor   = Yes
9428      ConditionState         = NONE
9429        Model                = UBHole
9430      End
9431      ConditionState         = DAMAGED
9432        Model                = UBHole_D
9433        ParticleSysBone      = Smoke01 SteamVent
9434      End
9435      ConditionState         = REALLYDAMAGED
9436        Model                = UBHole_E
9437        ParticleSysBone      = Smoke01 SteamVent
9438        ParticleSysBone      = Smoke02 SteamVent
9439        ParticleSysBone      = Fire01 GLAPowerPlantFlame
9440        ParticleSysBone      = Fire02 GLAPowerPlantFlame
9441        ParticleSysBone      = Fire03 GLAPowerPlantFlame
9442      End
9443    End
9444    Draw                     = W3DModelDraw ModuleTag_02
9445      OkToChangeModelColor   = Yes
9446      ConditionState         = NONE
9447        Model                = UBBarracks_R
9448        ParticleSysBone      = FLame01 FireSmallContinuous
9449        ParticleSysBone      = Flame02 FireSmallContinuous
9450        ParticleSysBone      = Smoke01 SmolderingSmoke
9451        ParticleSysBone      = Smoke02 SmolderingSmoke
9452        ParticleSysBone      = Smoke04 SmolderingSmoke
9453        ParticleSysBone      = Smoke05 SmolderingSmoke
9454      End
9455      ConditionState         = DAMAGED REALLYDAMAGED
9456        Model                = UBBarracks_R
9457        ParticleSysBone      = FLame01 FireSmallContinuous
9458        ParticleSysBone      = Flame02 FireSmallContinuous
9459        ParticleSysBone      = Smoke01 SmolderingSmoke
9460        ParticleSysBone      = Smoke02 SmolderingSmoke
9461        ParticleSysBone      = Smoke04 SmolderingSmoke
9462        ParticleSysBone      = Smoke05 SmolderingSmoke
9463      End
9464    End
9465  End
9466  
9467  
9468  
9469  
9470  ;------------------------------------------------------------------------------
9471  ;GLA Arms Dealer
9472  Object Demo_GLAArmsDealer
9473  
9474    ; *** ART Parameters ***
9475    SelectPortrait         = SUArmsDealer_L
9476    ButtonImage            = SUArmsDealer
9477  
9478  ;  UpgradeCameo1 = Upgrade_GLAFortifiedStructure
9479  
9480    ; ----------------- Main Building -------------------
9481    Draw = W3DModelDraw ModuleTag_01
9482      OkToChangeModelColor = Yes
9483      ; day
9484      ConditionState       = NONE
9485        Model              = UBArmDeal
9486        Animation          = UBArmDeal.UBArmDeal
9487        AnimationMode      = LOOP
9488        ParticleSysBone    = Smoke01 SmolderingSmoke
9489        ParticleSysBone    = Steam01 SteamVent
9490      End
9491      ;damaged
9492      ConditionState    = DAMAGED
9493        Model           = UBArmDeal_D
9494        Animation       = UBArmDeal_D.UBArmDeal_D
9495        AnimationMode   = LOOP
9496        ParticleSysBone = Smoke01 SmolderingSmoke
9497  ;     ParticleSysBone = Smoke02 SmolderingSmoke
9498  ;     ParticleSysBone = Smoke03 SmolderingSmoke
9499  ;     ParticleSysBone = Smoke04 SmolderingSmoke
9500  ;     ParticleSysBone = Smoke05 SmolderingSmoke
9501  ;     ParticleSysBone = Smoke06 SmolderingSmoke
9502  ;     ParticleSysBone = Fire02 SmolderingFire
9503  ;     ParticleSysBone = Fire03 SmolderingFire
9504  ;     ParticleSysBone = Fire04 SmolderingFire
9505  ;     ParticleSysBone = Fire05 SmolderingFire
9506  ;     ParticleSysBone = Fire06 SmolderingFire
9507      End
9508      ;really damaged
9509      ConditionState    = REALLYDAMAGED RUBBLE
9510        Model           = UBArmDeal_E
9511        Animation       = UBArmDeal_E.UBArmDeal_E
9512        AnimationMode   = LOOP
9513        ParticleSysBone = Smoke01 SmolderingSmoke
9514  ;     ParticleSysBone = Smoke02 SmolderingSmoke
9515  ;     ParticleSysBone = Smoke03 SmolderingSmoke
9516  ;     ParticleSysBone = Smoke04 SmolderingSmoke
9517  ;     ParticleSysBone = Smoke05 SmokeFactionLarge
9518  ;     ParticleSysBone = Smoke06 SmolderingSmoke
9519  ;     ParticleSysBone = Smoke07 SmolderingSmoke
9520  ;     ParticleSysBone = Fire02 SmolderingFire
9521  ;     ParticleSysBone = Fire03 SmolderingFire
9522  ;     ParticleSysBone = Fire04 SmolderingFire
9523  ;     ParticleSysBone = Fire05 FireFactionLarge
9524  ;     ParticleSysBone = Fire06 SmolderingFire
9525  ;     ParticleSysBone = Fire07 SmolderingFire
9526       End
9527      ConditionState         = GARRISONED
9528        Model                = UBArmDlEG
9529        ParticleSysBone      = Smoke01 SmolderingSmoke
9530        Animation            = UBArmDlEG.UBArmDlEG
9531        AnimationMode        = LOOP
9532      End
9533      ConditionState         = DAMAGED GARRISONED
9534        Model                = UBArmDlEG_D
9535        ParticleSysBone      = Smoke01 SmolderingSmoke
9536        Animation            = UBArmDlEG_D.UBArmDlEG_D
9537        AnimationMode        = LOOP
9538      End
9539      ConditionState         = REALLYDAMAGED GARRISONED
9540        Model                = UBArmDlEG_E
9541        ParticleSysBone      = Smoke01 SmolderingSmoke
9542        Animation            = UBArmDlEG_E.UBArmDlEG_E
9543        AnimationMode        = LOOP
9544      End
9545  
9546      ; snow
9547      ConditionState       = SNOW
9548        Model              = UBArmDeal_S
9549        Animation          = UBArmDeal_S.UBArmDeal_S
9550        AnimationMode      = LOOP
9551        ParticleSysBone    = Smoke01 SmolderingSmoke
9552        ParticleSysBone    = Steam01 SteamVent
9553      End
9554      ;damaged
9555      ConditionState    = DAMAGED SNOW
9556        Model           = UBArmDeal_DS
9557        Animation       = UBArmDeal_DS.UBArmDeal_DS
9558        AnimationMode   = LOOP
9559        ParticleSysBone = Smoke01 SmolderingSmoke
9560  ;     ParticleSysBone = Smoke02 SmolderingSmoke
9561  ;     ParticleSysBone = Smoke03 SmolderingSmoke
9562  ;     ParticleSysBone = Smoke04 SmolderingSmoke
9563  ;     ParticleSysBone = Smoke05 SmolderingSmoke
9564  ;     ParticleSysBone = Smoke06 SmolderingSmoke
9565  ;     ParticleSysBone = Fire02 SmolderingFire
9566  ;     ParticleSysBone = Fire03 SmolderingFire
9567  ;     ParticleSysBone = Fire04 SmolderingFire
9568  ;     ParticleSysBone = Fire05 SmolderingFire
9569  ;     ParticleSysBone = Fire06 SmolderingFire
9570      End
9571      ;really damaged
9572      ConditionState    = REALLYDAMAGED RUBBLE SNOW
9573        Model           = UBArmDeal_ES
9574        Animation       = UBArmDeal_ES.UBArmDeal_ES
9575        AnimationMode   = LOOP
9576        ParticleSysBone = Smoke01 SmolderingSmoke
9577  ;     ParticleSysBone = Smoke02 SmolderingSmoke
9578  ;     ParticleSysBone = Smoke03 SmolderingSmoke
9579  ;     ParticleSysBone = Smoke04 SmolderingSmoke
9580  ;     ParticleSysBone = Smoke05 SmokeFactionLarge
9581  ;     ParticleSysBone = Smoke06 SmolderingSmoke
9582  ;     ParticleSysBone = Smoke07 SmolderingSmoke
9583  ;     ParticleSysBone = Fire02 SmolderingFire
9584  ;     ParticleSysBone = Fire03 SmolderingFire
9585  ;     ParticleSysBone = Fire04 SmolderingFire
9586  ;     ParticleSysBone = Fire05 FireFactionLarge
9587  ;     ParticleSysBone = Fire06 SmolderingFire
9588  ;     ParticleSysBone = Fire07 SmolderingFire
9589       End
9590      ConditionState         = GARRISONED SNOW
9591        Model                = UBArmDlEG_S
9592        ParticleSysBone      = Smoke01 SmolderingSmoke
9593        Animation            = UBArmDlEG_S.UBArmDlEG_S
9594        AnimationMode        = LOOP
9595      End
9596      ConditionState         = DAMAGED GARRISONED SNOW
9597        Model                = UBArmDlEG_DS
9598        ParticleSysBone      = Smoke01 SmolderingSmoke
9599        Animation            = UBArmDlEG_DS.UBArmDlEG_DS
9600        AnimationMode        = LOOP
9601      End
9602      ConditionState         = REALLYDAMAGED GARRISONED SNOW
9603        Model                = UBArmDlEG_ES
9604        ParticleSysBone      = Smoke01 SmolderingSmoke
9605        Animation            = UBArmDlEG_ES.UBArmDlEG_ES
9606        AnimationMode        = LOOP
9607      End
9608  
9609      ; night
9610      ConditionState    = NIGHT
9611        Model           = UBArmDeal_N
9612        Animation       = UBArmDeal_N.UBArmDeal_N
9613        AnimationMode   = LOOP
9614        ParticleSysBone = Smoke01 SmolderingSmoke
9615        ParticleSysBone = Steam01 SteamVent
9616      End
9617      ConditionState    = DAMAGED NIGHT
9618        Model           = UBArmDeal_DN
9619        Animation       = UBArmDeal_DN.UBArmDeal_DN
9620        AnimationMode   = LOOP
9621        ParticleSysBone = Smoke01 SmolderingSmoke
9622      End
9623      ConditionState    = REALLYDAMAGED RUBBLE NIGHT
9624        Model           = UBArmDeal_EN
9625        Animation       = UBArmDeal_EN.UBArmDeal_EN
9626        AnimationMode   = LOOP
9627        ParticleSysBone = Smoke01 SmolderingSmoke
9628      End
9629      ConditionState         = GARRISONED NIGHT
9630        Model                = UBArmDlEG_N
9631        ParticleSysBone      = Smoke01 SmolderingSmoke
9632        Animation            = UBArmDlEG_N.UBArmDlEG_N
9633        AnimationMode        = LOOP
9634      End
9635      ConditionState         = DAMAGED GARRISONED NIGHT
9636        Model                = UBArmDlEG_DN
9637        ParticleSysBone      = Smoke01 SmolderingSmoke
9638        Animation            = UBArmDlEG_DN.UBArmDlEG_DN
9639        AnimationMode        = LOOP
9640      End
9641      ConditionState         = REALLYDAMAGED GARRISONED NIGHT
9642        Model                = UBArmDlEG_EN
9643        ParticleSysBone      = Smoke01 SmolderingSmoke
9644        Animation            = UBArmDlEG_EN.UBArmDlEG_EN
9645        AnimationMode        = LOOP
9646      End
9647       
9648       ; night snow
9649      ConditionState    = NIGHT SNOW
9650        Model           = UBArmDeal_NS
9651        Animation       = UBArmDeal_NS.UBArmDeal_NS
9652        AnimationMode   = LOOP
9653        ParticleSysBone = Smoke01 SmolderingSmoke
9654        ParticleSysBone = Steam01 SteamVent
9655      End
9656      ConditionState    = DAMAGED NIGHT SNOW
9657        Model           = UBArmDeal_DNS
9658        Animation       = UBArmDeal_DNS.UBArmDeal_DNS
9659        AnimationMode   = LOOP
9660        ParticleSysBone = Smoke01 SmolderingSmoke
9661      End
9662      ConditionState    = REALLYDAMAGED RUBBLE NIGHT SNOW
9663        Model           = UBArmDeal_ENS
9664        Animation       = UBArmDeal_ENS.UBArmDeal_ENS
9665        AnimationMode   = LOOP
9666        ParticleSysBone = Smoke01 SmolderingSmoke
9667      End
9668      ConditionState         = GARRISONED NIGHT SNOW
9669        Model                = UBArmDlEG_NS
9670        ParticleSysBone      = Smoke01 SmolderingSmoke
9671        Animation            = UBArmDlEG_NS.UBArmDlEG_NS
9672        AnimationMode        = LOOP
9673      End
9674      ConditionState         = DAMAGED GARRISONED NIGHT SNOW
9675        Model                = UBArmDlEG_DNS
9676        ParticleSysBone      = Smoke01 SmolderingSmoke
9677        Animation            = UBArmDlEG_DNS.UBArmDlEG_DNS
9678        AnimationMode        = LOOP
9679      End
9680      ConditionState         = REALLYDAMAGED GARRISONED NIGHT SNOW
9681        Model                = UBArmDlEG_ENS
9682        ParticleSysBone      = Smoke01 SmolderingSmoke
9683        Animation            = UBArmDlEG_ENS.UBArmDlEG_ENS
9684        AnimationMode        = LOOP
9685      End
9686      
9687      ;**************************************************************************************************************************
9688      ;This block handles every possible case with construction process, selling process, awaiting construction, and sold states
9689      ;for this draw module
9690      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
9691        Model              = UBArmDeal
9692        Animation          = UBArmDeal.UBArmDeal
9693        AnimationMode      = LOOP
9694        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
9695      End
9696      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
9697        Model              = UBArmDeal_D
9698        Animation          = UBArmDeal_D.UBArmDeal_D
9699        AnimationMode      = LOOP
9700        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
9701      End
9702      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED
9703        Model              = UBArmDeal_E
9704        Animation          = UBArmDeal_E.UBArmDeal_E
9705        AnimationMode      = LOOP
9706        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
9707      End
9708      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT
9709        Model              = UBArmDeal_N
9710        Animation          = UBArmDeal_N.UBArmDeal_N
9711        AnimationMode      = LOOP
9712        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
9713      End
9714      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT DAMAGED
9715        Model              = UBArmDeal_DN
9716        Animation          = UBArmDeal_DN.UBArmDeal_DN
9717        AnimationMode      = LOOP
9718        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
9719      End
9720      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT REALLYDAMAGED
9721        Model              = UBArmDeal_EN
9722        Animation          = UBArmDeal_EN.UBArmDeal_EN
9723        AnimationMode      = LOOP
9724        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
9725      End
9726      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW
9727        Model              = UBArmDeal_S
9728        Animation          = UBArmDeal_S.UBArmDeal_S
9729        AnimationMode      = LOOP
9730        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
9731      End
9732      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW DAMAGED
9733        Model              = UBArmDeal_DS
9734        Animation          = UBArmDeal_DS.UBArmDeal_DS
9735        AnimationMode      = LOOP
9736        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
9737      End
9738      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW REALLYDAMAGED
9739        Model              = UBArmDeal_ES
9740        Animation          = UBArmDeal_ES.UBArmDeal_ES
9741        AnimationMode      = LOOP
9742        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
9743      End
9744      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW
9745        Model              = UBArmDeal_NS
9746        Animation          = UBArmDeal_NS.UBArmDeal_NS
9747        AnimationMode      = LOOP
9748        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
9749      End
9750      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW DAMAGED
9751        Model              = UBArmDeal_DNS
9752        Animation          = UBArmDeal_DNS.UBArmDeal_DNS
9753        AnimationMode      = LOOP
9754        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
9755      End
9756      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW REALLYDAMAGED
9757        Model              = UBArmDeal_ENS
9758        Animation          = UBArmDeal_ENS.UBArmDeal_ENS
9759        AnimationMode      = LOOP
9760        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
9761      End
9762  
9763      ConditionState       = AWAITING_CONSTRUCTION 
9764        Model              = NONE
9765      End
9766      AliasConditionState  = AWAITING_CONSTRUCTION DAMAGED
9767      AliasConditionState  = AWAITING_CONSTRUCTION REALLYDAMAGED
9768      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT
9769      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT DAMAGED
9770      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT REALLYDAMAGED
9771      AliasConditionState  = AWAITING_CONSTRUCTION SNOW
9772      AliasConditionState  = AWAITING_CONSTRUCTION SNOW DAMAGED
9773      AliasConditionState  = AWAITING_CONSTRUCTION SNOW REALLYDAMAGED
9774      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW
9775      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW DAMAGED
9776      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW REALLYDAMAGED
9777      AliasConditionState  = SOLD 
9778      AliasConditionState  = SOLD DAMAGED
9779      AliasConditionState  = SOLD REALLYDAMAGED
9780      AliasConditionState  = SOLD NIGHT
9781      AliasConditionState  = SOLD NIGHT DAMAGED
9782      AliasConditionState  = SOLD NIGHT REALLYDAMAGED
9783      AliasConditionState  = SOLD SNOW
9784      AliasConditionState  = SOLD SNOW DAMAGED
9785      AliasConditionState  = SOLD SNOW REALLYDAMAGED
9786      AliasConditionState  = SOLD NIGHT SNOW
9787      AliasConditionState  = SOLD NIGHT SNOW DAMAGED
9788      AliasConditionState  = SOLD NIGHT SNOW REALLYDAMAGED
9789      AliasConditionState  = GARRISONED SOLD 
9790      AliasConditionState  = GARRISONED SOLD DAMAGED
9791      AliasConditionState  = GARRISONED SOLD REALLYDAMAGED
9792      AliasConditionState  = GARRISONED SOLD NIGHT
9793      AliasConditionState  = GARRISONED SOLD NIGHT DAMAGED
9794      AliasConditionState  = GARRISONED SOLD NIGHT REALLYDAMAGED
9795      AliasConditionState  = GARRISONED SOLD SNOW
9796      AliasConditionState  = GARRISONED SOLD SNOW DAMAGED
9797      AliasConditionState  = GARRISONED SOLD SNOW REALLYDAMAGED
9798      AliasConditionState  = GARRISONED SOLD NIGHT SNOW
9799      AliasConditionState  = GARRISONED SOLD NIGHT SNOW DAMAGED
9800      AliasConditionState  = GARRISONED SOLD NIGHT SNOW REALLYDAMAGED
9801      ;**************************************************************************************************************************
9802      
9803   
9804    End
9805    
9806    ; ------------ construction-zone fence -----------------
9807    Draw = W3DModelDraw ModuleTag_02
9808    AnimationsRequirePower = No
9809      DefaultConditionState
9810        Model           = None
9811        TransitionKey   = DOWN_DEFAULT
9812      End
9813      ConditionState    = NIGHT
9814        Model           = None
9815        TransitionKey   = DOWN_DEFAULT
9816      End
9817      ConditionState    = SNOW
9818        Model           = None
9819        TransitionKey   = DOWN_DEFAULT
9820      End
9821      ConditionState    = SNOW NIGHT
9822        Model           = None
9823        TransitionKey   = DOWN_DEFAULT
9824      End
9825      ConditionState    = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
9826        Model           = UBArmDeal_A4
9827        Animation       = UBArmDeal_A4.UBArmDeal_A4
9828        AnimationMode   = MANUAL
9829        Flags           = START_FRAME_LAST
9830        TransitionKey   = UP_DAY
9831      End
9832      ConditionState    = NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
9833        Model           = UBArmDeal_A4N
9834        Animation       = UBArmDeal_A4N.UBArmDeal_A4N
9835        AnimationMode   = MANUAL
9836        Flags           = START_FRAME_LAST
9837        TransitionKey   = UP_NIGHT
9838      End
9839      ConditionState    = SNOW AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
9840        Model           = UBArmDeal_A4S
9841        Animation       = UBArmDeal_A4S.UBArmDeal_A4S
9842        AnimationMode   = MANUAL
9843        Flags           = START_FRAME_LAST
9844        TransitionKey   = UP_SNOW
9845      End
9846      ConditionState    = SNOW NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
9847        Model           = UBArmDeal_A4SN
9848        Animation       = UBArmDeal_A4SN.UBArmDeal_A4SN
9849        AnimationMode   = MANUAL
9850        Flags           = START_FRAME_LAST
9851        TransitionKey   = UP_SNOWNIGHT
9852      End
9853      TransitionState   = DOWN_DEFAULT UP_DAY
9854        Model           = UBArmDeal_A4
9855        Animation       = UBArmDeal_A4.UBArmDeal_A4
9856        AnimationMode   = ONCE
9857        AnimationSpeedFactorRange = 1.0 1.0
9858        Flags           = START_FRAME_FIRST
9859      End
9860      TransitionState   = DOWN_DEFAULT UP_NIGHT
9861        Model           = UBArmDeal_A4N
9862        Animation       = UBArmDeal_A4N.UBArmDeal_A4N
9863        AnimationMode   = ONCE
9864        AnimationSpeedFactorRange = 1.0 1.0
9865        Flags           = START_FRAME_FIRST
9866      End
9867      TransitionState   = DOWN_DEFAULT UP_SNOW
9868        Model           = UBArmDeal_A4S
9869        ; @todo srj -- anim missing
9870        Animation       = UBArmDeal_A4S.UBArmDeal_A4S
9871        AnimationMode   = ONCE
9872        AnimationSpeedFactorRange = 1.0 1.0
9873        Flags           = START_FRAME_FIRST
9874      End
9875      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
9876        Model           = UBArmDeal_A4SN
9877        ; @todo srj -- anim missing
9878        Animation       = UBArmDeal_A4SN.UBArmDeal_A4SN
9879        AnimationMode   = ONCE
9880        AnimationSpeedFactorRange = 1.0 1.0
9881        Flags           = START_FRAME_FIRST
9882      End
9883      TransitionState   = UP_DAY DOWN_DEFAULT
9884        Model           = UBArmDeal_A4
9885        Animation       = UBArmDeal_A4.UBArmDeal_A4
9886        AnimationMode   = ONCE_BACKWARDS
9887        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
9888        Flags           = START_FRAME_LAST
9889      End
9890      TransitionState   = UP_NIGHT DOWN_DEFAULT
9891        Model           = UBArmDeal_A4N
9892        Animation       = UBArmDeal_A4N.UBArmDeal_A4N
9893        AnimationMode   = ONCE_BACKWARDS
9894        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
9895        Flags           = START_FRAME_LAST
9896      End
9897  
9898      TransitionState   = UP_SNOW DOWN_DEFAULT
9899        Model           = UBArmDeal_A4S
9900        ; @todo srj -- anim missing
9901        Animation       = UBArmDeal_A4S.UBArmDeal_A4S
9902        AnimationMode   = ONCE_BACKWARDS
9903        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
9904        Flags           = START_FRAME_LAST
9905      End
9906      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
9907        Model           = UBArmDeal_A4SN
9908        Animation       = UBArmDeal_A4SN.UBArmDeal_A4SN
9909        AnimationMode   = ONCE_BACKWARDS
9910        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
9911        Flags           = START_FRAME_LAST
9912      End
9913    End
9914  
9915    ; ------------ under-construction scaffolding -----------------
9916    Draw = W3DModelDraw ModuleTag_03
9917    AnimationsRequirePower = No
9918      MinLODRequired = MEDIUM
9919      DefaultConditionState
9920        Model           = None
9921        TransitionKey   = DOWN_DEFAULT
9922      End
9923      ConditionState    = NIGHT
9924        Model           = None
9925        TransitionKey   = DOWN_DEFAULT
9926      End
9927      ConditionState    = SNOW
9928        Model           = None
9929        TransitionKey   = DOWN_DEFAULT
9930      End
9931      ConditionState    = SNOW NIGHT
9932        Model           = None
9933        TransitionKey   = DOWN_DEFAULT
9934      End
9935      ConditionState    = PARTIALLY_CONSTRUCTED
9936        Model           = UBArmDeal_A6
9937        Animation       = UBArmDeal_A6.UBArmDeal_A6
9938        AnimationMode   = MANUAL
9939        Flags           = START_FRAME_LAST
9940        TransitionKey   = UP_DAY
9941        ParticleSysBone = Dust01 BuildingDust
9942        ParticleSysBone = Smoke01 BuildUpSmoke
9943        ParticleSysBone = Smoke02 BuildUpSmoke
9944        ParticleSysBone = Smoke03 BuildUpSmoke
9945        ParticleSysBone = Smoke04 BuildUpSmoke
9946      End
9947      ConditionState    = NIGHT PARTIALLY_CONSTRUCTED
9948        Model           = UBArmDeal_A6N
9949        Animation       = UBArmDeal_A6N.UBArmDeal_A6N
9950        AnimationMode   = MANUAL
9951        Flags           = START_FRAME_LAST
9952        TransitionKey   = UP_NIGHT
9953        ParticleSysBone = Dust01 BuildingDust
9954        ParticleSysBone = Smoke01 BuildUpSmoke
9955        ParticleSysBone = Smoke02 BuildUpSmoke
9956        ParticleSysBone = Smoke03 BuildUpSmoke
9957        ParticleSysBone = Smoke04 BuildUpSmoke
9958      End
9959      ConditionState    = SNOW PARTIALLY_CONSTRUCTED
9960        Model           = UBArmDeal_A6S
9961        Animation       = UBArmDeal_A6S.UBArmDeal_A6S
9962        AnimationMode   = MANUAL
9963        Flags           = START_FRAME_LAST
9964        TransitionKey   = UP_SNOW
9965        ParticleSysBone = Dust01 BuildingSnowDust
9966        ParticleSysBone = Smoke01 BuildUpSnowSmoke
9967        ParticleSysBone = Smoke02 BuildUpSnowSmoke
9968        ParticleSysBone = Smoke03 BuildUpSnowSmoke
9969        ParticleSysBone = Smoke04 BuildUpSnowSmoke
9970      End
9971      ConditionState    = SNOW NIGHT PARTIALLY_CONSTRUCTED
9972        Model           = UBArmDeal_A6SN
9973        Animation       = UBArmDeal_A6SN.UBArmDeal_A6SN
9974        AnimationMode   = MANUAL
9975        Flags           = START_FRAME_LAST
9976        TransitionKey   = UP_SNOWNIGHT
9977        ParticleSysBone = Dust01 BuildingNightSnowDust
9978        ParticleSysBone = Smoke01 BuildUpNightSnowSmoke
9979        ParticleSysBone = Smoke02 BuildUpNightSnowSmoke
9980        ParticleSysBone = Smoke03 BuildUpNightSnowSmoke
9981        ParticleSysBone = Smoke04 BuildUpNightSnowSmoke
9982      End
9983      TransitionState   = DOWN_DEFAULT UP_DAY
9984       Model            = UBArmDeal_A6
9985        Animation       = UBArmDeal_A6.UBArmDeal_A6
9986        AnimationMode   = ONCE
9987        AnimationSpeedFactorRange = 1.0 1.0
9988        Flags           = START_FRAME_FIRST
9989      End
9990      TransitionState   = DOWN_DEFAULT UP_NIGHT
9991       Model            = UBArmDeal_A6N
9992        Animation       = UBArmDeal_A6N.UBArmDeal_A6N
9993        AnimationMode   = ONCE
9994        AnimationSpeedFactorRange = 1.0 1.0
9995        Flags           = START_FRAME_FIRST
9996      End
9997      TransitionState   = DOWN_DEFAULT UP_SNOW
9998       Model            = UBArmDeal_A6S
9999        Animation       = UBArmDeal_A6S.UBArmDeal_A6S
10000        AnimationMode   = ONCE
10001        AnimationSpeedFactorRange = 1.0 1.0
10002        Flags           = START_FRAME_FIRST
10003      End
10004      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
10005       Model            = UBArmDeal_A6SN
10006        Animation       = UBArmDeal_A6SN.UBArmDeal_A6SN
10007        AnimationMode   = ONCE
10008        AnimationSpeedFactorRange = 1.0 1.0
10009        Flags           = START_FRAME_FIRST
10010      End
10011      TransitionState   = UP_DAY DOWN_DEFAULT
10012        Model           = UBArmDeal_A6
10013        Animation       = UBArmDeal_A6.UBArmDeal_A6
10014        AnimationMode   = ONCE_BACKWARDS
10015        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
10016        Flags           = START_FRAME_LAST
10017      End
10018      TransitionState   = UP_NIGHT DOWN_DEFAULT
10019        Model           = UBArmDeal_A6N
10020        Animation       = UBArmDeal_A6N.UBArmDeal_A6N
10021        AnimationMode   = ONCE_BACKWARDS
10022        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
10023        Flags           = START_FRAME_LAST
10024      End
10025      TransitionState   = UP_SNOW DOWN_DEFAULT
10026        Model           = UBArmDeal_A6S
10027        Animation       = UBArmDeal_A6S.UBArmDeal_A6S
10028        AnimationMode   = ONCE_BACKWARDS
10029        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
10030        Flags           = START_FRAME_LAST
10031      End
10032      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
10033        Model           = UBArmDeal_A6SN
10034        Animation       = UBArmDeal_A6SN.UBArmDeal_A6SN
10035        AnimationMode   = ONCE_BACKWARDS
10036        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
10037        Flags           = START_FRAME_LAST
10038      End
10039    End
10040  
10041    ; ----------------- the door -----------------------
10042    Draw = W3DModelDraw ModuleTag_04
10043      DefaultConditionState
10044        Model           = UBArmDeal_A7
10045        Animation       = UBArmDeal_A7.UBArmDeal_A7
10046        AnimationMode   = MANUAL
10047        Flags           = START_FRAME_FIRST
10048      End
10049      AliasConditionState = NIGHT 
10050      AliasConditionState = SNOW
10051      AliasConditionState = NIGHT SNOW
10052      
10053      ConditionState    = DAMAGED
10054        Model           = UBArmDeal_A7D
10055        Animation       = UBArmDeal_A7D.UBArmDeal_A7D
10056        AnimationMode   = MANUAL
10057        Flags           = START_FRAME_FIRST
10058      End
10059      AliasConditionState = NIGHT DAMAGED
10060      AliasConditionState = SNOW DAMAGED
10061      AliasConditionState = SNOW NIGHT DAMAGED
10062  
10063      ConditionState    = REALLYDAMAGED RUBBLE
10064        Model           = UBArmDeal_A7E
10065        Animation       = UBArmDeal_A7E.UBArmDeal_A7E
10066        AnimationMode   = MANUAL
10067        Flags           = START_FRAME_FIRST
10068      End
10069      AliasConditionState = NIGHT REALLYDAMAGED RUBBLE
10070      AliasConditionState = SNOW REALLYDAMAGED RUBBLE
10071      AliasConditionState = NIGHT SNOW REALLYDAMAGED RUBBLE
10072      
10073      
10074      
10075      ConditionState    = DOOR_1_OPENING
10076        Model           = UBArmDeal_A7
10077        Animation       = UBArmDeal_A7.UBArmDeal_A7
10078        AnimationMode   = ONCE
10079        Flags           = START_FRAME_FIRST
10080      End   
10081      AliasConditionState = NIGHT DOOR_1_OPENING
10082      AliasConditionState = SNOW DOOR_1_OPENING
10083      AliasConditionState = SNOW NIGHT DOOR_1_OPENING
10084      
10085      ConditionState    = DOOR_1_OPENING DAMAGED
10086        Model           = UBArmDeal_A7D
10087        Animation       = UBArmDeal_A7D.UBArmDeal_A7D
10088        AnimationMode   = ONCE
10089        Flags           = START_FRAME_FIRST
10090      End   
10091      AliasConditionState = NIGHT DOOR_1_OPENING DAMAGED
10092      AliasConditionState = SNOW DOOR_1_OPENING DAMAGED
10093      AliasConditionState = NIGHT SNOW DOOR_1_OPENING DAMAGED
10094      
10095      ConditionState    = DOOR_1_OPENING REALLYDAMAGED RUBBLE
10096        Model           = UBArmDeal_A7E
10097        Animation       = UBArmDeal_A7E.UBArmDeal_A7E
10098        AnimationMode   = ONCE
10099        Flags           = START_FRAME_FIRST
10100      End
10101      AliasConditionState = NIGHT DOOR_1_OPENING REALLYDAMAGED RUBBLE
10102      AliasConditionState = SNOW DOOR_1_OPENING REALLYDAMAGED RUBBLE
10103      AliasConditionState = SNOW NIGHT DOOR_1_OPENING REALLYDAMAGED RUBBLE
10104      
10105      
10106      
10107      ConditionState    = DOOR_1_CLOSING
10108        Model           = UBArmDeal_A7
10109        Animation       = UBArmDeal_A7.UBArmDeal_A7
10110        AnimationMode   = ONCE_BACKWARDS
10111        Flags           = START_FRAME_LAST
10112      End   
10113      AliasConditionState = NIGHT DOOR_1_CLOSING
10114      AliasConditionState = SNOW DOOR_1_CLOSING
10115      AliasConditionState = SNOW NIGHT DOOR_1_CLOSING
10116      
10117      ConditionState    = DOOR_1_CLOSING DAMAGED
10118        Model           = UBArmDeal_A7D
10119        Animation       = UBArmDeal_A7D.UBArmDeal_A7D
10120        AnimationMode   = ONCE_BACKWARDS
10121        Flags           = START_FRAME_LAST
10122      End   
10123      AliasConditionState = NIGHT DOOR_1_CLOSING DAMAGED
10124      AliasConditionState = SNOW NIGHT DOOR_1_CLOSING DAMAGED
10125      AliasConditionState = SNOW DOOR_1_CLOSING DAMAGED
10126      
10127      ConditionState    = DOOR_1_CLOSING REALLYDAMAGED RUBBLE
10128        Model           = UBArmDeal_A7E
10129        Animation       = UBArmDeal_A7E.UBArmDeal_A7E
10130        AnimationMode   = ONCE_BACKWARDS
10131        Flags           = START_FRAME_LAST
10132      End   
10133      AliasConditionState = NIGHT DOOR_1_CLOSING REALLYDAMAGED RUBBLE
10134      AliasConditionState = SNOW DOOR_1_CLOSING REALLYDAMAGED RUBBLE
10135      AliasConditionState = NIGHT SNOW DOOR_1_CLOSING REALLYDAMAGED RUBBLE
10136      
10137      
10138      
10139      ConditionState    = DOOR_1_WAITING_OPEN
10140        Model           = UBArmDeal_A7
10141        Animation       = UBArmDeal_A7.UBArmDeal_A7
10142        AnimationMode   = MANUAL
10143        Flags           = START_FRAME_LAST
10144      End   
10145      AliasConditionState = NIGHT DOOR_1_WAITING_OPEN
10146      AliasConditionState = SNOW DOOR_1_WAITING_OPEN
10147      AliasConditionState = SNOW NIGHT DOOR_1_WAITING_OPEN
10148      
10149      ConditionState    = DOOR_1_WAITING_OPEN DAMAGED
10150        Model           = UBArmDeal_A7D
10151        Animation       = UBArmDeal_A7D.UBArmDeal_A7D
10152        AnimationMode   = MANUAL
10153        Flags           = START_FRAME_LAST
10154      End   
10155      AliasConditionState = NIGHT DOOR_1_WAITING_OPEN DAMAGED
10156      AliasConditionState = SNOW DOOR_1_WAITING_OPEN DAMAGED
10157      AliasConditionState = SNOW NIGHT DOOR_1_WAITING_OPEN DAMAGED
10158      
10159      ConditionState    = DOOR_1_WAITING_OPEN REALLYDAMAGED RUBBLE
10160        Model           = UBArmDeal_A7E
10161        Animation       = UBArmDeal_A7E.UBArmDeal_A7E
10162        AnimationMode   = MANUAL
10163        Flags           = START_FRAME_LAST
10164      End
10165      AliasConditionState = NIGHT DOOR_1_WAITING_OPEN REALLYDAMAGED RUBBLE
10166      AliasConditionState = SNOW DOOR_1_WAITING_OPEN REALLYDAMAGED RUBBLE
10167      AliasConditionState = NIGHT SNOW DOOR_1_WAITING_OPEN REALLYDAMAGED RUBBLE
10168         
10169      ;**************************************************************************************************************************
10170      ;This block handles every possible case with construction process, selling process, awaiting construction, and sold states
10171      ;for this draw module
10172      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
10173        Model              = UBArmDeal_A7
10174        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
10175      End
10176      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT
10177      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW
10178      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW
10179      
10180      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
10181        Model              = UBArmDeal_A7D
10182        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
10183      End
10184      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED NIGHT
10185      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED SNOW
10186      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED NIGHT SNOW
10187      
10188      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED
10189        Model              = UBArmDeal_A7E
10190        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
10191      End
10192      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED NIGHT
10193      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED SNOW
10194      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED NIGHT SNOW
10195      
10196      ConditionState       = AWAITING_CONSTRUCTION 
10197        Model              = NONE
10198      End
10199      AliasConditionState  = AWAITING_CONSTRUCTION DAMAGED
10200      AliasConditionState  = AWAITING_CONSTRUCTION REALLYDAMAGED
10201      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT
10202      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT DAMAGED
10203      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT REALLYDAMAGED
10204      AliasConditionState  = AWAITING_CONSTRUCTION SNOW
10205      AliasConditionState  = AWAITING_CONSTRUCTION SNOW DAMAGED
10206      AliasConditionState  = AWAITING_CONSTRUCTION SNOW REALLYDAMAGED
10207      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW
10208      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW DAMAGED
10209      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW REALLYDAMAGED
10210      AliasConditionState  = SOLD DAMAGED
10211      AliasConditionState  = SOLD REALLYDAMAGED
10212      AliasConditionState  = SOLD NIGHT
10213      AliasConditionState  = SOLD NIGHT DAMAGED
10214      AliasConditionState  = SOLD NIGHT REALLYDAMAGED
10215      AliasConditionState  = SOLD SNOW
10216      AliasConditionState  = SOLD SNOW DAMAGED
10217      AliasConditionState  = SOLD SNOW REALLYDAMAGED
10218      AliasConditionState  = SOLD NIGHT SNOW
10219      AliasConditionState  = SOLD NIGHT SNOW DAMAGED
10220      AliasConditionState  = SOLD NIGHT SNOW REALLYDAMAGED
10221      ;**************************************************************************************************************************  
10222         
10223         
10224    End
10225    
10226    PlacementViewAngle  = -135
10227    
10228    ; ***DESIGN parameters ***
10229    DisplayName      = OBJECT:ArmsDealer
10230    Side             = GLADemolitionGeneral
10231    EditorSorting    = STRUCTURE
10232    Prerequisites
10233      Object = Demo_GLASupplyStash
10234    End
10235    BuildCost        = 2500
10236    BuildTime        = 15.0           ; in seconds
10237    EnergyProduction = 0
10238    CommandSet       = Demo_GLAArmsDealerCommandSet
10239    VisionRange     = 200.0           ; Shroud clearing distance
10240    ShroudClearingRange = 200
10241    ArmorSet
10242      Conditions          = None
10243      Armor               = StructureArmor
10244      DamageFX            = StructureDamageFXNoShake
10245    End
10246    ArmorSet
10247      Conditions        = PLAYER_UPGRADE
10248      Armor             = GLAUpgradedStructureArmor
10249      DamageFX          = StructureDamageFXNoShake
10250    End
10251  
10252    ExperienceValue     = 200 200 200 200  ; Experience point value at each level
10253  
10254    ; *** AUDIO Parameters ***
10255    VoiceSelect = WarFactoryGLASelect
10256    SoundOnDamaged        = BuildingDamagedStateLight
10257    SoundOnReallyDamaged  = BuildingDestroy
10258  
10259    UnitSpecificSounds
10260      UnderConstruction     = UnderConstructionLoop
10261    End
10262  
10263    ; *** ENGINEERING Parameters ***
10264    RadarPriority     = STRUCTURE
10265    KindOf            = PRELOAD STRUCTURE SELECTABLE IMMOBILE REPAIR_PAD CAPTURABLE FS_TECHNOLOGY AUTO_RALLYPOINT MP_COUNT_FOR_VICTORY SCORE_CREATE  FS_FACTORY FS_WARFACTORY
10266    Body              = StructureBody ModuleTag_05
10267      MaxHealth       = 2000.0
10268      InitialHealth   = 2000.0
10269  
10270      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
10271      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
10272      SubdualDamageCap = 2200
10273      SubdualDamageHealRate = 500
10274      SubdualDamageHealAmount = 100
10275    End
10276    
10277    Behavior        = ArmorUpgrade ModuleTag_Armor01
10278      TriggeredBy   = Upgrade_GLAFortifiedStructure
10279    End
10280  
10281    Behavior        = ModelConditionUpgrade ModuleTag_Armor01Visual
10282      ConditionFlag = GARRISONED
10283      TriggeredBy   = Upgrade_GLAFortifiedStructure
10284    End
10285  
10286    Behavior               = RebuildHoleExposeDie ModuleTag_06
10287      HoleName        = GLAHoleArmsDealer
10288      HoleMaxHealth   = 500.0
10289    End 
10290    Behavior             = DestroyDie ModuleTag_07
10291      ;nothing
10292    End
10293    Behavior             = CreateObjectDie ModuleTag_08
10294      CreationList  = OCL_LargeStructureDebris
10295    End
10296    Behavior             = FXListDie ModuleTag_09
10297      DeathFX       = FX_StructureMediumDeath
10298    End
10299    Behavior = ProductionUpdate ModuleTag_10
10300      NumDoorAnimations            = 1
10301      DoorOpeningTime              = 2000  ;in mSeconds
10302      DoorWaitOpenTime             = 3000  ;in mSeconds
10303      DoorCloseTime                = 2000  ;in mSeconds
10304      ConstructionCompleteDuration = 1500  ;in mSeconds
10305    End
10306    Behavior = DefaultProductionExitUpdate ModuleTag_11
10307      UnitCreatePoint   = X: -20.0  Y:-15.0   Z:0.0
10308      NaturalRallyPoint = X: 40.0  Y:-15.0   Z:0.0 ;NaturalRallyPointX must always match GeometryMajorRadius! -ML
10309    End
10310    Behavior = RepairDockUpdate ModuleTag_12
10311      TimeForFullHeal   = 5000   ;(in milliseconds)     
10312      NumberApproachPositions = 5
10313    End
10314  
10315    Behavior = FlammableUpdate ModuleTag_14
10316      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
10317      AflameDamageAmount = 5       ; taking this much damage...
10318      AflameDamageDelay = 500       ; this often.
10319    End
10320  
10321    Behavior = TransitionDamageFX ModuleTag_31
10322      ;-------------DESIGNED FOR MEDIUM SIZED FACTION BUILDING TRANSITIONS-------------------
10323      DamagedParticleSystem1       = Bone:None RandomBone:No PSys:StructureTransitionMediumSmoke
10324      ;---------------------------------------------------------------------------------------
10325      ReallyDamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionMediumSmoke
10326      ReallyDamagedParticleSystem2 = Bone:None RandomBone:No PSys:StructureTransitionMediumExplosion
10327      ReallyDamagedParticleSystem3 = Bone:None RandomBone:No PSys:StructureTransitionMediumShockwave
10328    End
10329  
10330    Geometry            = BOX
10331    GeometryMajorRadius = 40.0
10332    GeometryMinorRadius = 62.0
10333    GeometryHeight      = 25.0
10334    GeometryIsSmall     = No
10335    FactoryExitWidth    = 25
10336    Shadow              = SHADOW_VOLUME
10337    BuildCompletion     = PLACED_BY_PLAYER
10338  
10339  End
10340  
10341  
10342  ;------------------------------------------------------------------------------
10343  ObjectReskin Demo_GLAHoleArmsDealer Demo_GLAHole
10344    Draw                     = W3DModelDraw ModuleTag_01
10345      OkToChangeModelColor   = Yes
10346      ConditionState         = NONE
10347        Model                = UBHole
10348      End
10349      ConditionState         = DAMAGED
10350        Model                = UBHole_D
10351        ParticleSysBone      = Smoke01 SteamVent
10352      End
10353      ConditionState         = REALLYDAMAGED
10354        Model                = UBHole_E
10355        ParticleSysBone      = Smoke01 SteamVent
10356        ParticleSysBone      = Smoke02 SteamVent
10357        ParticleSysBone      = Fire01 GLAPowerPlantFlame
10358        ParticleSysBone      = Fire02 GLAPowerPlantFlame
10359        ParticleSysBone      = Fire03 GLAPowerPlantFlame
10360      End
10361    End
10362    Draw                     = W3DModelDraw ModuleTag_02
10363      OkToChangeModelColor   = Yes
10364      ConditionState         = NONE
10365        Model                = UBArmDeal_R
10366        ParticleSysBone      = Smoke04 SmolderingSmoke
10367        ParticleSysBone      = Smoke01 SmolderingSmoke
10368        ParticleSysBone      = Smoke03 SmolderingSmoke
10369      End
10370      ConditionState         = DAMAGED REALLYDAMAGED
10371        Model                = UBArmDeal_R
10372        ParticleSysBone      = Smoke04 SmolderingSmoke
10373        ParticleSysBone      = Smoke01 SmolderingSmoke
10374        ParticleSysBone      = Smoke03 SmolderingSmoke
10375      End
10376    End
10377  End
10378  
10379  ;------------------------------------------------------------------------------
10380  ;GLA Arms Dealer
10381  Object Demo_FakeGLAArmsDealer
10382  
10383    ; *** ART Parameters ***
10384    SelectPortrait         = SUArmsDealer_L
10385    ButtonImage            = SUArmsDealer
10386  
10387  ;  UpgradeCameo1 = Upgrade_GLAFortifiedStructure
10388  
10389    ; ----------------- Main Building -------------------
10390    Draw = W3DModelDraw ModuleTag_01
10391      OkToChangeModelColor = Yes
10392      ; day
10393      ConditionState       = NONE
10394        Model              = UBArmDeal
10395        Animation          = UBArmDeal.UBArmDeal
10396        AnimationMode      = LOOP
10397        ParticleSysBone    = Smoke01 SmolderingSmoke
10398        ParticleSysBone    = Steam01 SteamVent
10399      End
10400      ;damaged
10401      ConditionState    = DAMAGED
10402        Model           = UBArmDeal_D
10403        Animation       = UBArmDeal_D.UBArmDeal_D
10404        AnimationMode   = LOOP
10405        ParticleSysBone = Smoke01 SmolderingSmoke
10406  ;     ParticleSysBone = Smoke02 SmolderingSmoke
10407  ;     ParticleSysBone = Smoke03 SmolderingSmoke
10408  ;     ParticleSysBone = Smoke04 SmolderingSmoke
10409  ;     ParticleSysBone = Smoke05 SmolderingSmoke
10410  ;     ParticleSysBone = Smoke06 SmolderingSmoke
10411  ;     ParticleSysBone = Fire02 SmolderingFire
10412  ;     ParticleSysBone = Fire03 SmolderingFire
10413  ;     ParticleSysBone = Fire04 SmolderingFire
10414  ;     ParticleSysBone = Fire05 SmolderingFire
10415  ;     ParticleSysBone = Fire06 SmolderingFire
10416      End
10417      ;really damaged
10418      ConditionState    = REALLYDAMAGED RUBBLE
10419        Model           = UBArmDeal_E
10420        Animation       = UBArmDeal_E.UBArmDeal_E
10421        AnimationMode   = LOOP
10422        ParticleSysBone = Smoke01 SmolderingSmoke
10423  ;     ParticleSysBone = Smoke02 SmolderingSmoke
10424  ;     ParticleSysBone = Smoke03 SmolderingSmoke
10425  ;     ParticleSysBone = Smoke04 SmolderingSmoke
10426  ;     ParticleSysBone = Smoke05 SmokeFactionLarge
10427  ;     ParticleSysBone = Smoke06 SmolderingSmoke
10428  ;     ParticleSysBone = Smoke07 SmolderingSmoke
10429  ;     ParticleSysBone = Fire02 SmolderingFire
10430  ;     ParticleSysBone = Fire03 SmolderingFire
10431  ;     ParticleSysBone = Fire04 SmolderingFire
10432  ;     ParticleSysBone = Fire05 FireFactionLarge
10433  ;     ParticleSysBone = Fire06 SmolderingFire
10434  ;     ParticleSysBone = Fire07 SmolderingFire
10435       End
10436      ConditionState         = GARRISONED
10437        Model                = UBArmDlEG
10438        ParticleSysBone      = Smoke01 SmolderingSmoke
10439        Animation            = UBArmDlEG.UBArmDlEG
10440        AnimationMode        = LOOP
10441      End
10442      ConditionState         = DAMAGED GARRISONED
10443        Model                = UBArmDlEG_D
10444        ParticleSysBone      = Smoke01 SmolderingSmoke
10445        Animation            = UBArmDlEG_D.UBArmDlEG_D
10446        AnimationMode        = LOOP
10447      End
10448      ConditionState         = REALLYDAMAGED GARRISONED
10449        Model                = UBArmDlEG_E
10450        ParticleSysBone      = Smoke01 SmolderingSmoke
10451        Animation            = UBArmDlEG_E.UBArmDlEG_E
10452        AnimationMode        = LOOP
10453      End
10454  
10455      ; snow
10456      ConditionState       = SNOW
10457        Model              = UBArmDeal_S
10458        Animation          = UBArmDeal_S.UBArmDeal_S
10459        AnimationMode      = LOOP
10460        ParticleSysBone    = Smoke01 SmolderingSmoke
10461        ParticleSysBone    = Steam01 SteamVent
10462      End
10463      ;damaged
10464      ConditionState    = DAMAGED SNOW
10465        Model           = UBArmDeal_DS
10466        Animation       = UBArmDeal_DS.UBArmDeal_DS
10467        AnimationMode   = LOOP
10468        ParticleSysBone = Smoke01 SmolderingSmoke
10469  ;     ParticleSysBone = Smoke02 SmolderingSmoke
10470  ;     ParticleSysBone = Smoke03 SmolderingSmoke
10471  ;     ParticleSysBone = Smoke04 SmolderingSmoke
10472  ;     ParticleSysBone = Smoke05 SmolderingSmoke
10473  ;     ParticleSysBone = Smoke06 SmolderingSmoke
10474  ;     ParticleSysBone = Fire02 SmolderingFire
10475  ;     ParticleSysBone = Fire03 SmolderingFire
10476  ;     ParticleSysBone = Fire04 SmolderingFire
10477  ;     ParticleSysBone = Fire05 SmolderingFire
10478  ;     ParticleSysBone = Fire06 SmolderingFire
10479      End
10480      ;really damaged
10481      ConditionState    = REALLYDAMAGED RUBBLE SNOW
10482        Model           = UBArmDeal_ES
10483        Animation       = UBArmDeal_ES.UBArmDeal_ES
10484        AnimationMode   = LOOP
10485        ParticleSysBone = Smoke01 SmolderingSmoke
10486  ;     ParticleSysBone = Smoke02 SmolderingSmoke
10487  ;     ParticleSysBone = Smoke03 SmolderingSmoke
10488  ;     ParticleSysBone = Smoke04 SmolderingSmoke
10489  ;     ParticleSysBone = Smoke05 SmokeFactionLarge
10490  ;     ParticleSysBone = Smoke06 SmolderingSmoke
10491  ;     ParticleSysBone = Smoke07 SmolderingSmoke
10492  ;     ParticleSysBone = Fire02 SmolderingFire
10493  ;     ParticleSysBone = Fire03 SmolderingFire
10494  ;     ParticleSysBone = Fire04 SmolderingFire
10495  ;     ParticleSysBone = Fire05 FireFactionLarge
10496  ;     ParticleSysBone = Fire06 SmolderingFire
10497  ;     ParticleSysBone = Fire07 SmolderingFire
10498       End
10499      ConditionState         = GARRISONED SNOW
10500        Model                = UBArmDlEG_S
10501        ParticleSysBone      = Smoke01 SmolderingSmoke
10502        Animation            = UBArmDlEG_S.UBArmDlEG_S
10503        AnimationMode        = LOOP
10504      End
10505      ConditionState         = DAMAGED GARRISONED SNOW
10506        Model                = UBArmDlEG_DS
10507        ParticleSysBone      = Smoke01 SmolderingSmoke
10508        Animation            = UBArmDlEG_DS.UBArmDlEG_DS
10509        AnimationMode        = LOOP
10510      End
10511      ConditionState         = REALLYDAMAGED GARRISONED SNOW
10512        Model                = UBArmDlEG_ES
10513        ParticleSysBone      = Smoke01 SmolderingSmoke
10514        Animation            = UBArmDlEG_ES.UBArmDlEG_ES
10515        AnimationMode        = LOOP
10516      End
10517  
10518      ; night
10519      ConditionState    = NIGHT
10520        Model           = UBArmDeal_N
10521        Animation       = UBArmDeal_N.UBArmDeal_N
10522        AnimationMode   = LOOP
10523        ParticleSysBone = Smoke01 SmolderingSmoke
10524        ParticleSysBone = Steam01 SteamVent
10525      End
10526      ConditionState    = DAMAGED NIGHT
10527        Model           = UBArmDeal_DN
10528        Animation       = UBArmDeal_DN.UBArmDeal_DN
10529        AnimationMode   = LOOP
10530        ParticleSysBone = Smoke01 SmolderingSmoke
10531      End
10532      ConditionState    = REALLYDAMAGED RUBBLE NIGHT
10533        Model           = UBArmDeal_EN
10534        Animation       = UBArmDeal_EN.UBArmDeal_EN
10535        AnimationMode   = LOOP
10536        ParticleSysBone = Smoke01 SmolderingSmoke
10537      End
10538      ConditionState         = GARRISONED NIGHT
10539        Model                = UBArmDlEG_N
10540        ParticleSysBone      = Smoke01 SmolderingSmoke
10541        Animation            = UBArmDlEG_N.UBArmDlEG_N
10542        AnimationMode        = LOOP
10543      End
10544      ConditionState         = DAMAGED GARRISONED NIGHT
10545        Model                = UBArmDlEG_DN
10546        ParticleSysBone      = Smoke01 SmolderingSmoke
10547        Animation            = UBArmDlEG_DN.UBArmDlEG_DN
10548        AnimationMode        = LOOP
10549      End
10550      ConditionState         = REALLYDAMAGED GARRISONED NIGHT
10551        Model                = UBArmDlEG_EN
10552        ParticleSysBone      = Smoke01 SmolderingSmoke
10553        Animation            = UBArmDlEG_EN.UBArmDlEG_EN
10554        AnimationMode        = LOOP
10555      End
10556       
10557       ; night snow
10558      ConditionState    = NIGHT SNOW
10559        Model           = UBArmDeal_NS
10560        Animation       = UBArmDeal_NS.UBArmDeal_NS
10561        AnimationMode   = LOOP
10562        ParticleSysBone = Smoke01 SmolderingSmoke
10563        ParticleSysBone = Steam01 SteamVent
10564      End
10565      ConditionState    = DAMAGED NIGHT SNOW
10566        Model           = UBArmDeal_DNS
10567        Animation       = UBArmDeal_DNS.UBArmDeal_DNS
10568        AnimationMode   = LOOP
10569        ParticleSysBone = Smoke01 SmolderingSmoke
10570      End
10571      ConditionState    = REALLYDAMAGED RUBBLE NIGHT SNOW
10572        Model           = UBArmDeal_ENS
10573        Animation       = UBArmDeal_ENS.UBArmDeal_ENS
10574        AnimationMode   = LOOP
10575        ParticleSysBone = Smoke01 SmolderingSmoke
10576      End
10577      ConditionState         = GARRISONED NIGHT SNOW
10578        Model                = UBArmDlEG_NS
10579        ParticleSysBone      = Smoke01 SmolderingSmoke
10580        Animation            = UBArmDlEG_NS.UBArmDlEG_NS
10581        AnimationMode        = LOOP
10582      End
10583      ConditionState         = DAMAGED GARRISONED NIGHT SNOW
10584        Model                = UBArmDlEG_DNS
10585        ParticleSysBone      = Smoke01 SmolderingSmoke
10586        Animation            = UBArmDlEG_DNS.UBArmDlEG_DNS
10587        AnimationMode        = LOOP
10588      End
10589      ConditionState         = REALLYDAMAGED GARRISONED NIGHT SNOW
10590        Model                = UBArmDlEG_ENS
10591        ParticleSysBone      = Smoke01 SmolderingSmoke
10592        Animation            = UBArmDlEG_ENS.UBArmDlEG_ENS
10593        AnimationMode        = LOOP
10594      End
10595      
10596      ;**************************************************************************************************************************
10597      ;This block handles every possible case with construction process, selling process, awaiting construction, and sold states
10598      ;for this draw module
10599      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
10600        Model              = UBArmDeal
10601        Animation          = UBArmDeal.UBArmDeal
10602        AnimationMode      = LOOP
10603        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
10604      End
10605      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
10606        Model              = UBArmDeal_D
10607        Animation          = UBArmDeal_D.UBArmDeal_D
10608        AnimationMode      = LOOP
10609        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
10610      End
10611      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED
10612        Model              = UBArmDeal_E
10613        Animation          = UBArmDeal_E.UBArmDeal_E
10614        AnimationMode      = LOOP
10615        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
10616      End
10617      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT
10618        Model              = UBArmDeal_N
10619        Animation          = UBArmDeal_N.UBArmDeal_N
10620        AnimationMode      = LOOP
10621        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
10622      End
10623      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT DAMAGED
10624        Model              = UBArmDeal_DN
10625        Animation          = UBArmDeal_DN.UBArmDeal_DN
10626        AnimationMode      = LOOP
10627        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
10628      End
10629      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT REALLYDAMAGED
10630        Model              = UBArmDeal_EN
10631        Animation          = UBArmDeal_EN.UBArmDeal_EN
10632        AnimationMode      = LOOP
10633        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
10634      End
10635      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW
10636        Model              = UBArmDeal_S
10637        Animation          = UBArmDeal_S.UBArmDeal_S
10638        AnimationMode      = LOOP
10639        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
10640      End
10641      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW DAMAGED
10642        Model              = UBArmDeal_DS
10643        Animation          = UBArmDeal_DS.UBArmDeal_DS
10644        AnimationMode      = LOOP
10645        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
10646      End
10647      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW REALLYDAMAGED
10648        Model              = UBArmDeal_ES
10649        Animation          = UBArmDeal_ES.UBArmDeal_ES
10650        AnimationMode      = LOOP
10651        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
10652      End
10653      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW
10654        Model              = UBArmDeal_NS
10655        Animation          = UBArmDeal_NS.UBArmDeal_NS
10656        AnimationMode      = LOOP
10657        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
10658      End
10659      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW DAMAGED
10660        Model              = UBArmDeal_DNS
10661        Animation          = UBArmDeal_DNS.UBArmDeal_DNS
10662        AnimationMode      = LOOP
10663        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
10664      End
10665      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW REALLYDAMAGED
10666        Model              = UBArmDeal_ENS
10667        Animation          = UBArmDeal_ENS.UBArmDeal_ENS
10668        AnimationMode      = LOOP
10669        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
10670      End
10671  
10672      ConditionState       = AWAITING_CONSTRUCTION 
10673        Model              = NONE
10674      End
10675      AliasConditionState  = AWAITING_CONSTRUCTION DAMAGED
10676      AliasConditionState  = AWAITING_CONSTRUCTION REALLYDAMAGED
10677      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT
10678      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT DAMAGED
10679      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT REALLYDAMAGED
10680      AliasConditionState  = AWAITING_CONSTRUCTION SNOW
10681      AliasConditionState  = AWAITING_CONSTRUCTION SNOW DAMAGED
10682      AliasConditionState  = AWAITING_CONSTRUCTION SNOW REALLYDAMAGED
10683      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW
10684      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW DAMAGED
10685      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW REALLYDAMAGED
10686      AliasConditionState  = SOLD 
10687      AliasConditionState  = SOLD DAMAGED
10688      AliasConditionState  = SOLD REALLYDAMAGED
10689      AliasConditionState  = SOLD NIGHT
10690      AliasConditionState  = SOLD NIGHT DAMAGED
10691      AliasConditionState  = SOLD NIGHT REALLYDAMAGED
10692      AliasConditionState  = SOLD SNOW
10693      AliasConditionState  = SOLD SNOW DAMAGED
10694      AliasConditionState  = SOLD SNOW REALLYDAMAGED
10695      AliasConditionState  = SOLD NIGHT SNOW
10696      AliasConditionState  = SOLD NIGHT SNOW DAMAGED
10697      AliasConditionState  = SOLD NIGHT SNOW REALLYDAMAGED
10698      AliasConditionState  = GARRISONED SOLD 
10699      AliasConditionState  = GARRISONED SOLD DAMAGED
10700      AliasConditionState  = GARRISONED SOLD REALLYDAMAGED
10701      AliasConditionState  = GARRISONED SOLD NIGHT
10702      AliasConditionState  = GARRISONED SOLD NIGHT DAMAGED
10703      AliasConditionState  = GARRISONED SOLD NIGHT REALLYDAMAGED
10704      AliasConditionState  = GARRISONED SOLD SNOW
10705      AliasConditionState  = GARRISONED SOLD SNOW DAMAGED
10706      AliasConditionState  = GARRISONED SOLD SNOW REALLYDAMAGED
10707      AliasConditionState  = GARRISONED SOLD NIGHT SNOW
10708      AliasConditionState  = GARRISONED SOLD NIGHT SNOW DAMAGED
10709      AliasConditionState  = GARRISONED SOLD NIGHT SNOW REALLYDAMAGED
10710      ;**************************************************************************************************************************
10711      
10712   
10713    End
10714    
10715    ; ------------ construction-zone fence -----------------
10716    Draw = W3DModelDraw ModuleTag_02
10717    AnimationsRequirePower = No
10718      DefaultConditionState
10719        Model           = None
10720        TransitionKey   = DOWN_DEFAULT
10721      End
10722      ConditionState    = NIGHT
10723        Model           = None
10724        TransitionKey   = DOWN_DEFAULT
10725      End
10726      ConditionState    = SNOW
10727        Model           = None
10728        TransitionKey   = DOWN_DEFAULT
10729      End
10730      ConditionState    = SNOW NIGHT
10731        Model           = None
10732        TransitionKey   = DOWN_DEFAULT
10733      End
10734      ConditionState    = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
10735        Model           = UBArmDeal_A4
10736        Animation       = UBArmDeal_A4.UBArmDeal_A4
10737        AnimationMode   = MANUAL
10738        Flags           = START_FRAME_LAST
10739        TransitionKey   = UP_DAY
10740      End
10741      ConditionState    = NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
10742        Model           = UBArmDeal_A4N
10743        Animation       = UBArmDeal_A4N.UBArmDeal_A4N
10744        AnimationMode   = MANUAL
10745        Flags           = START_FRAME_LAST
10746        TransitionKey   = UP_NIGHT
10747      End
10748      ConditionState    = SNOW AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
10749        Model           = UBArmDeal_A4S
10750        Animation       = UBArmDeal_A4S.UBArmDeal_A4S
10751        AnimationMode   = MANUAL
10752        Flags           = START_FRAME_LAST
10753        TransitionKey   = UP_SNOW
10754      End
10755      ConditionState    = SNOW NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
10756        Model           = UBArmDeal_A4SN
10757        Animation       = UBArmDeal_A4SN.UBArmDeal_A4SN
10758        AnimationMode   = MANUAL
10759        Flags           = START_FRAME_LAST
10760        TransitionKey   = UP_SNOWNIGHT
10761      End
10762      TransitionState   = DOWN_DEFAULT UP_DAY
10763        Model           = UBArmDeal_A4
10764        Animation       = UBArmDeal_A4.UBArmDeal_A4
10765        AnimationMode   = ONCE
10766        AnimationSpeedFactorRange = 1.0 1.0
10767        Flags           = START_FRAME_FIRST
10768      End
10769      TransitionState   = DOWN_DEFAULT UP_NIGHT
10770        Model           = UBArmDeal_A4N
10771        Animation       = UBArmDeal_A4N.UBArmDeal_A4N
10772        AnimationMode   = ONCE
10773        AnimationSpeedFactorRange = 1.0 1.0
10774        Flags           = START_FRAME_FIRST
10775      End
10776      TransitionState   = DOWN_DEFAULT UP_SNOW
10777        Model           = UBArmDeal_A4S
10778        ; @todo srj -- anim missing
10779        Animation       = UBArmDeal_A4S.UBArmDeal_A4S
10780        AnimationMode   = ONCE
10781        AnimationSpeedFactorRange = 1.0 1.0
10782        Flags           = START_FRAME_FIRST
10783      End
10784      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
10785        Model           = UBArmDeal_A4SN
10786        ; @todo srj -- anim missing
10787        Animation       = UBArmDeal_A4SN.UBArmDeal_A4SN
10788        AnimationMode   = ONCE
10789        AnimationSpeedFactorRange = 1.0 1.0
10790        Flags           = START_FRAME_FIRST
10791      End
10792      TransitionState   = UP_DAY DOWN_DEFAULT
10793        Model           = UBArmDeal_A4
10794        Animation       = UBArmDeal_A4.UBArmDeal_A4
10795        AnimationMode   = ONCE_BACKWARDS
10796        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
10797        Flags           = START_FRAME_LAST
10798      End
10799      TransitionState   = UP_NIGHT DOWN_DEFAULT
10800        Model           = UBArmDeal_A4N
10801        Animation       = UBArmDeal_A4N.UBArmDeal_A4N
10802        AnimationMode   = ONCE_BACKWARDS
10803        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
10804        Flags           = START_FRAME_LAST
10805      End
10806  
10807      TransitionState   = UP_SNOW DOWN_DEFAULT
10808        Model           = UBArmDeal_A4S
10809        ; @todo srj -- anim missing
10810        Animation       = UBArmDeal_A4S.UBArmDeal_A4S
10811        AnimationMode   = ONCE_BACKWARDS
10812        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
10813        Flags           = START_FRAME_LAST
10814      End
10815      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
10816        Model           = UBArmDeal_A4SN
10817        Animation       = UBArmDeal_A4SN.UBArmDeal_A4SN
10818        AnimationMode   = ONCE_BACKWARDS
10819        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
10820        Flags           = START_FRAME_LAST
10821      End
10822    End
10823  
10824    ; ------------ under-construction scaffolding -----------------
10825    Draw = W3DModelDraw ModuleTag_03
10826    AnimationsRequirePower = No
10827      MinLODRequired = MEDIUM
10828      DefaultConditionState
10829        Model           = None
10830        TransitionKey   = DOWN_DEFAULT
10831      End
10832      ConditionState    = NIGHT
10833        Model           = None
10834        TransitionKey   = DOWN_DEFAULT
10835      End
10836      ConditionState    = SNOW
10837        Model           = None
10838        TransitionKey   = DOWN_DEFAULT
10839      End
10840      ConditionState    = SNOW NIGHT
10841        Model           = None
10842        TransitionKey   = DOWN_DEFAULT
10843      End
10844      ConditionState    = PARTIALLY_CONSTRUCTED
10845        Model           = UBArmDeal_A6
10846        Animation       = UBArmDeal_A6.UBArmDeal_A6
10847        AnimationMode   = MANUAL
10848        Flags           = START_FRAME_LAST
10849        TransitionKey   = UP_DAY
10850        ParticleSysBone = Dust01 BuildingDust
10851        ParticleSysBone = Smoke01 BuildUpSmoke
10852        ParticleSysBone = Smoke02 BuildUpSmoke
10853        ParticleSysBone = Smoke03 BuildUpSmoke
10854        ParticleSysBone = Smoke04 BuildUpSmoke
10855      End
10856      ConditionState    = NIGHT PARTIALLY_CONSTRUCTED
10857        Model           = UBArmDeal_A6N
10858        Animation       = UBArmDeal_A6N.UBArmDeal_A6N
10859        AnimationMode   = MANUAL
10860        Flags           = START_FRAME_LAST
10861        TransitionKey   = UP_NIGHT
10862        ParticleSysBone = Dust01 BuildingDust
10863        ParticleSysBone = Smoke01 BuildUpSmoke
10864        ParticleSysBone = Smoke02 BuildUpSmoke
10865        ParticleSysBone = Smoke03 BuildUpSmoke
10866        ParticleSysBone = Smoke04 BuildUpSmoke
10867      End
10868      ConditionState    = SNOW PARTIALLY_CONSTRUCTED
10869        Model           = UBArmDeal_A6S
10870        Animation       = UBArmDeal_A6S.UBArmDeal_A6S
10871        AnimationMode   = MANUAL
10872        Flags           = START_FRAME_LAST
10873        TransitionKey   = UP_SNOW
10874        ParticleSysBone = Dust01 BuildingSnowDust
10875        ParticleSysBone = Smoke01 BuildUpSnowSmoke
10876        ParticleSysBone = Smoke02 BuildUpSnowSmoke
10877        ParticleSysBone = Smoke03 BuildUpSnowSmoke
10878        ParticleSysBone = Smoke04 BuildUpSnowSmoke
10879      End
10880      ConditionState    = SNOW NIGHT PARTIALLY_CONSTRUCTED
10881        Model           = UBArmDeal_A6SN
10882        Animation       = UBArmDeal_A6SN.UBArmDeal_A6SN
10883        AnimationMode   = MANUAL
10884        Flags           = START_FRAME_LAST
10885        TransitionKey   = UP_SNOWNIGHT
10886        ParticleSysBone = Dust01 BuildingNightSnowDust
10887        ParticleSysBone = Smoke01 BuildUpNightSnowSmoke
10888        ParticleSysBone = Smoke02 BuildUpNightSnowSmoke
10889        ParticleSysBone = Smoke03 BuildUpNightSnowSmoke
10890        ParticleSysBone = Smoke04 BuildUpNightSnowSmoke
10891      End
10892      TransitionState   = DOWN_DEFAULT UP_DAY
10893       Model            = UBArmDeal_A6
10894        Animation       = UBArmDeal_A6.UBArmDeal_A6
10895        AnimationMode   = ONCE
10896        AnimationSpeedFactorRange = 1.0 1.0
10897        Flags           = START_FRAME_FIRST
10898      End
10899      TransitionState   = DOWN_DEFAULT UP_NIGHT
10900       Model            = UBArmDeal_A6N
10901        Animation       = UBArmDeal_A6N.UBArmDeal_A6N
10902        AnimationMode   = ONCE
10903        AnimationSpeedFactorRange = 1.0 1.0
10904        Flags           = START_FRAME_FIRST
10905      End
10906      TransitionState   = DOWN_DEFAULT UP_SNOW
10907       Model            = UBArmDeal_A6S
10908        Animation       = UBArmDeal_A6S.UBArmDeal_A6S
10909        AnimationMode   = ONCE
10910        AnimationSpeedFactorRange = 1.0 1.0
10911        Flags           = START_FRAME_FIRST
10912      End
10913      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
10914       Model            = UBArmDeal_A6SN
10915        Animation       = UBArmDeal_A6SN.UBArmDeal_A6SN
10916        AnimationMode   = ONCE
10917        AnimationSpeedFactorRange = 1.0 1.0
10918        Flags           = START_FRAME_FIRST
10919      End
10920      TransitionState   = UP_DAY DOWN_DEFAULT
10921        Model           = UBArmDeal_A6
10922        Animation       = UBArmDeal_A6.UBArmDeal_A6
10923        AnimationMode   = ONCE_BACKWARDS
10924        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
10925        Flags           = START_FRAME_LAST
10926      End
10927      TransitionState   = UP_NIGHT DOWN_DEFAULT
10928        Model           = UBArmDeal_A6N
10929        Animation       = UBArmDeal_A6N.UBArmDeal_A6N
10930        AnimationMode   = ONCE_BACKWARDS
10931        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
10932        Flags           = START_FRAME_LAST
10933      End
10934      TransitionState   = UP_SNOW DOWN_DEFAULT
10935        Model           = UBArmDeal_A6S
10936        Animation       = UBArmDeal_A6S.UBArmDeal_A6S
10937        AnimationMode   = ONCE_BACKWARDS
10938        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
10939        Flags           = START_FRAME_LAST
10940      End
10941      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
10942        Model           = UBArmDeal_A6SN
10943        Animation       = UBArmDeal_A6SN.UBArmDeal_A6SN
10944        AnimationMode   = ONCE_BACKWARDS
10945        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
10946        Flags           = START_FRAME_LAST
10947      End
10948    End
10949  
10950    ; ----------------- the door -----------------------
10951    Draw = W3DModelDraw ModuleTag_04
10952      DefaultConditionState
10953        Model           = UBArmDeal_A7
10954        Animation       = UBArmDeal_A7.UBArmDeal_A7
10955        AnimationMode   = MANUAL
10956        Flags           = START_FRAME_FIRST
10957      End
10958      AliasConditionState = NIGHT 
10959      AliasConditionState = SNOW
10960      AliasConditionState = NIGHT SNOW
10961      
10962      ConditionState    = DAMAGED
10963        Model           = UBArmDeal_A7D
10964        Animation       = UBArmDeal_A7D.UBArmDeal_A7D
10965        AnimationMode   = MANUAL
10966        Flags           = START_FRAME_FIRST
10967      End
10968      AliasConditionState = NIGHT DAMAGED
10969      AliasConditionState = SNOW DAMAGED
10970      AliasConditionState = SNOW NIGHT DAMAGED
10971  
10972      ConditionState    = REALLYDAMAGED RUBBLE
10973        Model           = UBArmDeal_A7E
10974        Animation       = UBArmDeal_A7E.UBArmDeal_A7E
10975        AnimationMode   = MANUAL
10976        Flags           = START_FRAME_FIRST
10977      End
10978      AliasConditionState = NIGHT REALLYDAMAGED RUBBLE
10979      AliasConditionState = SNOW REALLYDAMAGED RUBBLE
10980      AliasConditionState = NIGHT SNOW REALLYDAMAGED RUBBLE
10981      
10982      
10983      
10984      ConditionState    = DOOR_1_OPENING
10985        Model           = UBArmDeal_A7
10986        Animation       = UBArmDeal_A7.UBArmDeal_A7
10987        AnimationMode   = ONCE
10988        Flags           = START_FRAME_FIRST
10989      End   
10990      AliasConditionState = NIGHT DOOR_1_OPENING
10991      AliasConditionState = SNOW DOOR_1_OPENING
10992      AliasConditionState = SNOW NIGHT DOOR_1_OPENING
10993      
10994      ConditionState    = DOOR_1_OPENING DAMAGED
10995        Model           = UBArmDeal_A7D
10996        Animation       = UBArmDeal_A7D.UBArmDeal_A7D
10997        AnimationMode   = ONCE
10998        Flags           = START_FRAME_FIRST
10999      End   
11000      AliasConditionState = NIGHT DOOR_1_OPENING DAMAGED
11001      AliasConditionState = SNOW DOOR_1_OPENING DAMAGED
11002      AliasConditionState = NIGHT SNOW DOOR_1_OPENING DAMAGED
11003      
11004      ConditionState    = DOOR_1_OPENING REALLYDAMAGED RUBBLE
11005        Model           = UBArmDeal_A7E
11006        Animation       = UBArmDeal_A7E.UBArmDeal_A7E
11007        AnimationMode   = ONCE
11008        Flags           = START_FRAME_FIRST
11009      End
11010      AliasConditionState = NIGHT DOOR_1_OPENING REALLYDAMAGED RUBBLE
11011      AliasConditionState = SNOW DOOR_1_OPENING REALLYDAMAGED RUBBLE
11012      AliasConditionState = SNOW NIGHT DOOR_1_OPENING REALLYDAMAGED RUBBLE
11013      
11014      
11015      
11016      ConditionState    = DOOR_1_CLOSING
11017        Model           = UBArmDeal_A7
11018        Animation       = UBArmDeal_A7.UBArmDeal_A7
11019        AnimationMode   = ONCE_BACKWARDS
11020        Flags           = START_FRAME_LAST
11021      End   
11022      AliasConditionState = NIGHT DOOR_1_CLOSING
11023      AliasConditionState = SNOW DOOR_1_CLOSING
11024      AliasConditionState = SNOW NIGHT DOOR_1_CLOSING
11025      
11026      ConditionState    = DOOR_1_CLOSING DAMAGED
11027        Model           = UBArmDeal_A7D
11028        Animation       = UBArmDeal_A7D.UBArmDeal_A7D
11029        AnimationMode   = ONCE_BACKWARDS
11030        Flags           = START_FRAME_LAST
11031      End   
11032      AliasConditionState = NIGHT DOOR_1_CLOSING DAMAGED
11033      AliasConditionState = SNOW NIGHT DOOR_1_CLOSING DAMAGED
11034      AliasConditionState = SNOW DOOR_1_CLOSING DAMAGED
11035      
11036      ConditionState    = DOOR_1_CLOSING REALLYDAMAGED RUBBLE
11037        Model           = UBArmDeal_A7E
11038        Animation       = UBArmDeal_A7E.UBArmDeal_A7E
11039        AnimationMode   = ONCE_BACKWARDS
11040        Flags           = START_FRAME_LAST
11041      End   
11042      AliasConditionState = NIGHT DOOR_1_CLOSING REALLYDAMAGED RUBBLE
11043      AliasConditionState = SNOW DOOR_1_CLOSING REALLYDAMAGED RUBBLE
11044      AliasConditionState = NIGHT SNOW DOOR_1_CLOSING REALLYDAMAGED RUBBLE
11045      
11046      
11047      
11048      ConditionState    = DOOR_1_WAITING_OPEN
11049        Model           = UBArmDeal_A7
11050        Animation       = UBArmDeal_A7.UBArmDeal_A7
11051        AnimationMode   = MANUAL
11052        Flags           = START_FRAME_LAST
11053      End   
11054      AliasConditionState = NIGHT DOOR_1_WAITING_OPEN
11055      AliasConditionState = SNOW DOOR_1_WAITING_OPEN
11056      AliasConditionState = SNOW NIGHT DOOR_1_WAITING_OPEN
11057      
11058      ConditionState    = DOOR_1_WAITING_OPEN DAMAGED
11059        Model           = UBArmDeal_A7D
11060        Animation       = UBArmDeal_A7D.UBArmDeal_A7D
11061        AnimationMode   = MANUAL
11062        Flags           = START_FRAME_LAST
11063      End   
11064      AliasConditionState = NIGHT DOOR_1_WAITING_OPEN DAMAGED
11065      AliasConditionState = SNOW DOOR_1_WAITING_OPEN DAMAGED
11066      AliasConditionState = SNOW NIGHT DOOR_1_WAITING_OPEN DAMAGED
11067      
11068      ConditionState    = DOOR_1_WAITING_OPEN REALLYDAMAGED RUBBLE
11069        Model           = UBArmDeal_A7E
11070        Animation       = UBArmDeal_A7E.UBArmDeal_A7E
11071        AnimationMode   = MANUAL
11072        Flags           = START_FRAME_LAST
11073      End
11074      AliasConditionState = NIGHT DOOR_1_WAITING_OPEN REALLYDAMAGED RUBBLE
11075      AliasConditionState = SNOW DOOR_1_WAITING_OPEN REALLYDAMAGED RUBBLE
11076      AliasConditionState = NIGHT SNOW DOOR_1_WAITING_OPEN REALLYDAMAGED RUBBLE
11077         
11078      ;**************************************************************************************************************************
11079      ;This block handles every possible case with construction process, selling process, awaiting construction, and sold states
11080      ;for this draw module
11081      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
11082        Model              = UBArmDeal_A7
11083        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
11084      End
11085      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT
11086      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW
11087      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW
11088      
11089      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
11090        Model              = UBArmDeal_A7D
11091        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
11092      End
11093      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED NIGHT
11094      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED SNOW
11095      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED NIGHT SNOW
11096      
11097      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED
11098        Model              = UBArmDeal_A7E
11099        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
11100      End
11101      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED NIGHT
11102      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED SNOW
11103      AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED NIGHT SNOW
11104      
11105      ConditionState       = AWAITING_CONSTRUCTION 
11106        Model              = NONE
11107      End
11108      AliasConditionState  = AWAITING_CONSTRUCTION DAMAGED
11109      AliasConditionState  = AWAITING_CONSTRUCTION REALLYDAMAGED
11110      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT
11111      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT DAMAGED
11112      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT REALLYDAMAGED
11113      AliasConditionState  = AWAITING_CONSTRUCTION SNOW
11114      AliasConditionState  = AWAITING_CONSTRUCTION SNOW DAMAGED
11115      AliasConditionState  = AWAITING_CONSTRUCTION SNOW REALLYDAMAGED
11116      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW
11117      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW DAMAGED
11118      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT SNOW REALLYDAMAGED
11119      AliasConditionState  = SOLD DAMAGED
11120      AliasConditionState  = SOLD REALLYDAMAGED
11121      AliasConditionState  = SOLD NIGHT
11122      AliasConditionState  = SOLD NIGHT DAMAGED
11123      AliasConditionState  = SOLD NIGHT REALLYDAMAGED
11124      AliasConditionState  = SOLD SNOW
11125      AliasConditionState  = SOLD SNOW DAMAGED
11126      AliasConditionState  = SOLD SNOW REALLYDAMAGED
11127      AliasConditionState  = SOLD NIGHT SNOW
11128      AliasConditionState  = SOLD NIGHT SNOW DAMAGED
11129      AliasConditionState  = SOLD NIGHT SNOW REALLYDAMAGED
11130      ;**************************************************************************************************************************  
11131         
11132         
11133    End
11134    
11135    PlacementViewAngle  = -135
11136    
11137    ; ***DESIGN parameters ***
11138    DisplayName      = OBJECT:ArmsDealer
11139    Side             = GLADemolitionGeneral
11140    EditorSorting    = STRUCTURE
11141    Prerequisites
11142      Object = Demo_GLASupplyStash
11143    End
11144    BuildCost        = 625
11145    BuildTime        = 10.0           ; in seconds
11146    EnergyProduction = 0
11147    CommandSet       = FakeGLAArmsDealerCommandSet
11148    VisionRange     = 200.0           ; Shroud clearing distance
11149    ShroudClearingRange = 200
11150  
11151    WeaponSet
11152      Conditions          = None 
11153      Weapon = PRIMARY SuicideWeapon
11154      AutoChooseSources = PRIMARY None
11155    End
11156  
11157    ArmorSet
11158      Conditions          = None
11159      Armor               = StructureArmor
11160      DamageFX            = StructureDamageFXNoShake
11161    End
11162  
11163    ExperienceValue     = 50 50 50 50  ; Experience point value at each level
11164  
11165    ; *** AUDIO Parameters ***
11166    VoiceSelect = WarFactoryGLASelect
11167    SoundOnDamaged        = BuildingDamagedStateLight
11168    SoundOnReallyDamaged  = BuildingDestroy
11169  
11170    UnitSpecificSounds
11171      UnderConstruction     = UnderConstructionLoop
11172    End
11173  
11174    ; *** ENGINEERING Parameters ***
11175    RadarPriority     = STRUCTURE
11176    KindOf          = PRELOAD STRUCTURE SELECTABLE IMMOBILE CAPTURABLE MP_COUNT_FOR_VICTORY SCORE_CREATE CAN_ATTACK FS_FAKE
11177    Body              = StructureBody ModuleTag_05
11178      MaxHealth       = 500.0
11179      InitialHealth   = 500.0
11180  
11181      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
11182      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
11183      SubdualDamageCap = 700
11184      SubdualDamageHealRate = 500
11185      SubdualDamageHealAmount = 100
11186    End
11187    
11188    Behavior             = CreateObjectDie ModuleTag_08
11189      CreationList  = OCL_LargeStructureDebris
11190    End
11191    Behavior             = FXListDie ModuleTag_09
11192      DeathFX       = FX_StructureMediumDeath
11193    End
11194    Behavior = AIUpdateInterface ModuleTag_10
11195      AutoAcquireEnemiesWhenIdle = No
11196    End
11197  
11198    Behavior = ProductionUpdate ModuleTag_11
11199      ; nothing
11200    End
11201  
11202    Behavior = SlowDeathBehavior ModuleTag_12
11203      ExemptStatus = UNDER_CONSTRUCTION
11204      DestructionDelay = 0
11205      Weapon = FINAL FakeStructureDetonationWeapon
11206    End
11207    Behavior = DestroyDie ModuleTag_SlowDeathException
11208      RequiredStatus = UNDER_CONSTRUCTION
11209    End
11210  
11211    Behavior = ReplaceObjectUpgrade ModuleTag_13
11212      ReplaceObject = Demo_GLAArmsDealer
11213      TriggeredBy = Upgrade_BecomeRealGLAArmsDealer
11214    End
11215  
11216    Behavior        = ModelConditionUpgrade ModuleTag_Armor01Visual
11217      ConditionFlag = GARRISONED
11218      TriggeredBy   = Upgrade_GLAFortifiedStructure
11219    End
11220  
11221    Behavior = FlammableUpdate ModuleTag_14
11222      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
11223      AflameDamageAmount = 5       ; taking this much damage...
11224      AflameDamageDelay = 500       ; this often.
11225    End
11226  
11227    Behavior = TransitionDamageFX ModuleTag_31
11228      ;-------------DESIGNED FOR MEDIUM SIZED FACTION BUILDING TRANSITIONS-------------------
11229      DamagedParticleSystem1       = Bone:None RandomBone:No PSys:StructureTransitionMediumSmoke
11230      ;---------------------------------------------------------------------------------------
11231      ReallyDamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionMediumSmoke
11232      ReallyDamagedParticleSystem2 = Bone:None RandomBone:No PSys:StructureTransitionMediumExplosion
11233      ReallyDamagedParticleSystem3 = Bone:None RandomBone:No PSys:StructureTransitionMediumShockwave
11234    End
11235  
11236    Geometry            = BOX
11237    GeometryMajorRadius = 40.0
11238    GeometryMinorRadius = 62.0
11239    GeometryHeight      = 25.0
11240    GeometryIsSmall     = No
11241    FactoryExitWidth    = 25
11242    Shadow              = SHADOW_VOLUME
11243    ShadowTexture = fake_supply; this is not really a shadow, it's used for decal to indicate fake structure.
11244    ShadowSizeX = 127
11245    ShadowSizeY = 144
11246    BuildCompletion     = PLACED_BY_PLAYER
11247  
11248  End
11249  
11250  
11251  
11252  ; -----------------------------------------------------------------------------
11253  
11254  Object Demo_GLASneakAttackTunnelNetworkStart
11255  
11256    ; *** ART Parameters ***
11257  
11258    SelectPortrait         = SUTunnel_L
11259    ButtonImage            = SUTunnel
11260    Draw = W3DModelDraw ModuleTag_01
11261      OkToChangeModelColor = Yes
11262  
11263      ;***NONE
11264  
11265       ConditionState     = NONE
11266        Model             = UBSNKATK_1ANM
11267        Animation         = UBSNKATK_1ANM.UBSNKATK_1ANM
11268        AnimationMode     = ONCE
11269        ParticleSysBone   = DIRT SneakAttackCrackDust 
11270     ;;;ParticleSysBone   = DIRT SneakAttackDirt       ;steveM commented out 8.4.03
11271        ParticleSysBone   = DIRT SneakAttackCrackDust1 
11272        ParticleSysBone   = DIRT SneakAttackDebris
11273        ParticleSysBone   = DIRT SneakAttackDebris0
11274        ParticleSysBone   = DIRT SneakAttackDebris1     
11275        ParticleSysBone   = DIRT SneakAttackCrackDust0
11276        ParticleSysBone   = DIRT SneakAttackSteamVent 
11277      End
11278  
11279  ;    ConditionState
11280  ;      Model             = UBSNKATK_1ANM
11281  ;      Animation         = UBSNKATK_1ANM.UBSNKATK_1ANM
11282  ;      AnimationMode     = ONCE
11283  ;    End
11284   
11285      ConditionState      = DAMAGED
11286        Model             = UBSNATK_E
11287        ParticleSysBone   = DIRT SneakAttackCrackDust 
11288        ParticleSysBone   = DIRT SneakAttackDirt
11289        ParticleSysBone   = DIRT SneakAttackCrackDust1 
11290        ParticleSysBone   = DIRT SneakAttackDebris
11291        ParticleSysBone   = DIRT SneakAttackDebris0
11292        ParticleSysBone   = DIRT SneakAttackDebris1     
11293        ParticleSysBone   = DIRT SneakAttackCrackDust0
11294        ParticleSysBone   = DIRT SneakAttackSteamVent 
11295      End
11296      ConditionState      = REALLYDAMAGED RUBBLE
11297        Model             = UBSNATK_R
11298      End
11299      ConditionState      = SNOW
11300        Model             = UBSNATK_Sanm
11301        Animation         = UBSNATK_Sanm.UBSNATK_Sanm
11302        AnimationMode     = ONCE
11303        ParticleSysBone   = DIRT SneakAttackCrackDustSnow  
11304        ParticleSysBone   = DIRT SneakAttackDirtSnow       
11305        ParticleSysBone   = DIRT SneakAttackCrackDust1Snow 
11306        ParticleSysBone   = DIRT SneakAttackDebrisSnow     
11307        ParticleSysBone   = DIRT SneakAttackDebris0Snow    
11308        ParticleSysBone   = DIRT SneakAttackDebris1Snow       
11309        ParticleSysBone   = DIRT SneakAttackCrackDust0Snow 
11310        ParticleSysBone   = DIRT SneakAttackSteamVent 
11311      End
11312      ConditionState      = DAMAGED SNOW
11313        Model             = UBSNATK_ES
11314        ParticleSysBone   = DIRT SneakAttackCrackDustSnow  
11315        ParticleSysBone   = DIRT SneakAttackDirtSnow       
11316        ParticleSysBone   = DIRT SneakAttackCrackDust1Snow 
11317        ParticleSysBone   = DIRT SneakAttackDebrisSnow     
11318        ParticleSysBone   = DIRT SneakAttackDebris0Snow    
11319        ParticleSysBone   = DIRT SneakAttackDebris1Snow       
11320        ParticleSysBone   = DIRT SneakAttackCrackDust0Snow 
11321        ParticleSysBone   = DIRT SneakAttackSteamVent 
11322      End
11323      ConditionState      = REALLYDAMAGED RUBBLE SNOW
11324        Model             = UBSNATK_RS
11325        ParticleSysBone   = DIRT SneakAttackCrackDustSnow  
11326        ParticleSysBone   = DIRT SneakAttackDirtSnow       
11327        ParticleSysBone   = DIRT SneakAttackCrackDust1Snow 
11328        ParticleSysBone   = DIRT SneakAttackDebrisSnow     
11329        ParticleSysBone   = DIRT SneakAttackDebris0Snow    
11330        ParticleSysBone   = DIRT SneakAttackDebris1Snow       
11331        ParticleSysBone   = DIRT SneakAttackCrackDust0Snow 
11332        ParticleSysBone   = DIRT SneakAttackSteamVent 
11333      End
11334      ConditionState      = NIGHT
11335        Model             = UBSNKATK_1ANM
11336        Animation         = UBSNKATK_1ANM.UBSNKATK_1ANM
11337        AnimationMode     = ONCE
11338      End
11339      ConditionState      = DAMAGED NIGHT
11340        Model             = UBSNATK_E
11341      End
11342      ConditionState      = REALLYDAMAGED RUBBLE NIGHT
11343        Model             = UBSNATK_R
11344      End    
11345      ConditionState      = SNOW NIGHT
11346        Model             = UBSNATK_Sanm
11347        Animation         = UBSNATK_Sanm.UBSNATK_Sanm
11348        AnimationMode     = ONCE
11349      End
11350      ConditionState      = DAMAGED SNOW NIGHT
11351        Model             = UBSNATK_ES
11352      End
11353      ConditionState      = REALLYDAMAGED RUBBLE SNOW NIGHT
11354        Model             = UBSNATK_RS
11355      End
11356    End
11357    PlacementViewAngle = -44
11358  
11359    ; ***DESIGN parameters ***
11360    DisplayName      = OBJECT:TunnelNetwork
11361    Side = GLADemolitionGeneral
11362    EditorSorting    = STRUCTURE
11363    Prerequisites
11364     ;None
11365    End
11366    EnergyProduction = 0
11367    VisionRange     = 200.0           ; Shroud clearing distance
11368    ShroudClearingRange = 200
11369    
11370    ArmorSet        
11371      Conditions      = None
11372      Armor           = StructureArmor
11373      DamageFX        = DamageFX_Empty
11374    End
11375    
11376    ExperienceValue     = 100 100 100 100  ; Experience point value at each level
11377  
11378    ; *** AUDIO Parameters ***
11379    VoiceSelect = TunnelNetworkSelect
11380    SoundOnDamaged        = BuildingDamagedStateLight
11381    SoundOnReallyDamaged  = BuildingDestroy
11382    SoundEnter = GarrisonEnter
11383    SoundExit = GarrisonExit
11384  
11385    ; *** ENGINEERING Parameters ***
11386    RadarPriority   = STRUCTURE
11387    KindOf          = PRELOAD STRUCTURE IMMOBILE IMMUNE_TO_CAPTURE
11388    Body = ActiveBody ModuleTag_04
11389      MaxHealth       = 99999.0
11390      InitialHealth   = 99999.0
11391    End
11392  
11393  
11394    Behavior = DestroyDie ModuleTag_10
11395      ;nothing
11396    End
11397    Behavior             = CreateObjectDie ModuleTag_11
11398      CreationList  = OCL_CreateSneakAttackTunnel
11399    End
11400  
11401    Behavior = FlammableUpdate ModuleTag_15
11402  
11403      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
11404      AflameDamageAmount = 5       ; taking this much damage...
11405      AflameDamageDelay = 500       ; this often.
11406    End
11407  
11408    Behavior = LifetimeUpdate ModuleTag_16
11409      MinLifetime = 5000   ; min lifetime in msec
11410      MaxLifetime = 5000   ; max lifetime in msec
11411    End
11412  
11413    Behavior = FireWeaponUpdate ModuleTag_17
11414      Weapon = SneakAttackShockwaveWeaponSmall
11415      InitialDelay = 10;
11416    End
11417  
11418    Behavior = FireWeaponUpdate ModuleTag_18
11419      Weapon = SneakAttackShockwaveWeaponBig
11420      InitialDelay = 1000;
11421    End
11422  
11423    Behavior = FireWeaponUpdate ModuleTag_19
11424      Weapon = SneakAttackShockwaveWeaponBig
11425      InitialDelay = 2500;
11426    End
11427  
11428  
11429    ; IMPORTANT: DO NOT GIVE THIS OBJECT ANY EXTENTS -ML
11430  
11431    Geometry = CYLINDER
11432    GeometryMajorRadius = 25.0
11433    GeometryHeight = 20.0    
11434    GeometryIsSmall     = No
11435    FactoryExtraBibWidth = 25.0
11436    Shadow          = SHADOW_VOLUME
11437    BuildCompletion = PLACED_BY_PLAYER
11438  
11439  End
11440  
11441  
11442  ; -----------------------------------------------------------------------------
11443  Object Demo_GLASneakAttackTunnelNetwork
11444  
11445    ; *** ART Parameters ***
11446    SelectPortrait         = SUSneakAttack_L
11447    ButtonImage            = SUSneakAttack
11448    Draw = W3DModelDraw ModuleTag_01
11449      OkToChangeModelColor = Yes
11450      ;***DEFAULT
11451      ;DefaultConditionState
11452      ConditionState
11453        Model             = UBSNATK_1
11454      End
11455      ConditionState      = DAMAGED
11456        Model             = UBSNATK_E
11457      End
11458      ConditionState      = REALLYDAMAGED RUBBLE
11459        Model             = UBSNATK_R
11460        ;ParticleSysBone   = Mound SteamVent
11461      End
11462      ConditionState      = SNOW
11463        Model             = UBSNATK_S
11464      End
11465      ConditionState      = DAMAGED SNOW
11466        Model             = UBSNATK_ES
11467      End
11468      ConditionState      = REALLYDAMAGED RUBBLE SNOW
11469        Model             = UBSNATK_RS
11470        ;ParticleSysBone   = Mound SteamVent
11471      End
11472      ConditionState      = NIGHT
11473        Model             = UBSNATK_N
11474      End
11475      ConditionState      = DAMAGED NIGHT
11476        Model             = UBSNATK_E
11477      End
11478      ConditionState      = REALLYDAMAGED RUBBLE NIGHT
11479        Model             = UBSNATK_R
11480        ;ParticleSysBone   = Mound SteamVent
11481      End    
11482      ConditionState      = SNOW NIGHT
11483        Model             = UBSNATK_NS
11484      End
11485      ConditionState      = DAMAGED SNOW NIGHT
11486        Model             = UBSNATK_ES
11487      End
11488      ConditionState      = REALLYDAMAGED RUBBLE SNOW NIGHT
11489        Model             = UBSNATK_RS
11490        ;ParticleSysBone   = Mound SteamVent
11491      End
11492    End
11493  
11494    PlacementViewAngle = -44
11495  
11496    ; ***DESIGN parameters ***
11497    DisplayName      = OBJECT:TunnelNetwork
11498    Side = GLADemolitionGeneral
11499    EditorSorting    = STRUCTURE
11500    Prerequisites
11501     ;None
11502    End
11503    EnergyProduction = 0
11504    VisionRange     = 200.0           ; Shroud clearing distance
11505    ShroudClearingRange = 200
11506    WeaponSet
11507      Conditions = None 
11508      Weapon = PRIMARY TunnelNetworkGunDUMMY ;So AI can attack from it in guard mode.
11509    End
11510    ArmorSet
11511      Conditions      = None
11512      Armor           = StructureArmor
11513      DamageFX        = StructureDamageFXNoShake
11514    End
11515    CommandSet       = GLASneakAttackTunnelCommandSet
11516    ExperienceValue     = 100 100 100 100  ; Experience point value at each level
11517  
11518    ; *** AUDIO Parameters ***
11519    VoiceSelect = TunnelNetworkSelect
11520    SoundOnDamaged        = BuildingDamagedStateLight
11521    SoundOnReallyDamaged  = BuildingDestroy
11522    SoundEnter = GarrisonEnter
11523    SoundExit = GarrisonExit
11524  
11525    ; *** ENGINEERING Parameters ***
11526    RadarPriority   = STRUCTURE
11527    KindOf          = PRELOAD STRUCTURE SELECTABLE IMMOBILE FS_BASE_DEFENSE IMMUNE_TO_CAPTURE SCORE_CREATE AUTO_RALLYPOINT
11528    Body            = StructureBody ModuleTag_04
11529      MaxHealth       = 1000.0
11530      InitialHealth   = 1000.0
11531  
11532      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
11533      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
11534      SubdualDamageCap = 1200
11535      SubdualDamageHealRate = 500
11536      SubdualDamageHealAmount = 100
11537    End
11538  
11539    Behavior = StealthDetectorUpdate ModuleTag_13
11540      DetectionRate     = 500   ; how often to rescan for stealthed things in my sight (msec)
11541      DetectionRange   = 150   ;Dustin, enable this for independant balancing!
11542      CanDetectWhileGarrisoned  = No ;Garrisoned means being in a structure that you units can shoot out of.
11543      CanDetectWhileContained   = No ;Contained means being in a transport or tunnel network.
11544    End
11545  
11546    Behavior = TunnelContain ModuleTag_05
11547      TimeForFullHeal     = 5000   ;(in milliseconds)
11548    End
11549  
11550    Behavior = AIUpdateInterface ModuleTag_AI
11551      Turret
11552        TurretTurnRate        = 180   // turn rate, in degrees per sec
11553        ControlledWeaponSlots = PRIMARY
11554      End
11555      AutoAcquireEnemiesWhenIdle = Yes Stealthed; defensive weapon
11556    End
11557  
11558    ;Kris: Removed this module because units exiting the container would extract information from
11559    ;the wrong exit interface. Because TunnelContain has the proper information for exiting properly
11560    ;we don't need this one. Plus sneak attack tunnels don't produce units anyway.
11561    ;Behavior = DefaultProductionExitUpdate ModuleTag_06
11562    ;  UnitCreatePoint   = X:  5.0  Y:  0.0   Z:0.0
11563    ;  NaturalRallyPoint = X: 35.0  Y:  0.0   Z:0.0
11564    ;End
11565  
11566    Behavior = DestroyDie ModuleTag_10
11567      ;nothing
11568    End
11569    Behavior             = CreateObjectDie ModuleTag_11
11570      CreationList  = OCL_ABTunnelNetworkDebris
11571    End
11572    Behavior             = FXListDie ModuleTag_12
11573      DeathFX       = FX_StructureSmallDeath
11574    End
11575  
11576    Behavior = FlammableUpdate ModuleTag_15
11577  
11578      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
11579      AflameDamageAmount = 5       ; taking this much damage...
11580      AflameDamageDelay = 500       ; this often.
11581    End
11582  
11583  
11584    Behavior = TransitionDamageFX ModuleTag_17
11585      ;-------------DESIGNED FOR SMALL SIZED FACTION BUILDING TRANSITIONS-------------------
11586      DamagedParticleSystem1       = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
11587      ;---------------------------------------------------------------------------------------
11588      ReallyDamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
11589      ReallyDamagedParticleSystem2 = Bone:None RandomBone:No PSys:StructureTransitionSmallExplosion
11590      ReallyDamagedParticleSystem3 = Bone:None RandomBone:No PSys:StructureTransitionSmallShockwave
11591    End
11592  
11593    Geometry = CYLINDER
11594    GeometryMajorRadius = 25.0
11595    GeometryHeight = 20.0    
11596    GeometryIsSmall     = No
11597    FactoryExtraBibWidth = 25.0
11598    Shadow          = SHADOW_VOLUME
11599    BuildCompletion = PLACED_BY_PLAYER
11600  
11601  End
11602  
11603  
11604  
11605  
11606  
11607  
11608  
11609  
11610  
11611  
11612  
11613  
11614  
11615  
11616  
11617  
11618  
11619  
11620  
11621  
11622  
11623  
11624  
11625  
11626  
11627  
11628  
11629  
11630  
11631  
11632  
11633  
11634  
11635  ;------------------------------------------------------------------------------
11636  Object Demo_GLAInfantryRebel
11637  
11638    ; *** ART Parameters ***
11639    SelectPortrait         = SURebel_L
11640    ButtonImage            = SURebel
11641  
11642    UpgradeCameo1 = Upgrade_GLAAPBullets
11643    UpgradeCameo2 = Upgrade_GLACamouflage
11644    UpgradeCameo3 = Upgrade_InfantryCaptureBuilding
11645    ;UpgradeCameo4 = NONE
11646    ;UpgradeCameo5 = NONE
11647  
11648    Draw = W3DModelDraw ModuleTag_01
11649  
11650      OkToChangeModelColor = Yes
11651      
11652      ; this says "we don't use these condition states at all, so completely
11653      ; ignore them for purposes of matchmaking"... this is useful to help
11654      ; reduce the number of AliasConditionState clauses you must add in
11655      ; order to avoid ambiguity in some cases.
11656      IgnoreConditionStates = PREATTACK_A FIRING_A BETWEEN_FIRING_SHOTS_A RELOADING_A
11657  
11658      ; ---- standing
11659      DefaultConditionState
11660        Model               = UIRGrd_SKN
11661        IdleAnimation       = UIRGrd_SKL.UIRGrd_STN 0 35
11662        IdleAnimation       = UIRGrd_SKL.UIRGrd_IDA 
11663        IdleAnimation       = UIRGrd_SKL.UIRGrd_IDB 
11664        AnimationMode       = ONCE
11665        WeaponFireFXBone    = PRIMARY Muzzle
11666        WeaponMuzzleFlash   = PRIMARY MuzzleFX
11667        TransitionKey       = TRANS_Standing
11668      End
11669  
11670      ConditionState        = REALLYDAMAGED
11671        IdleAnimation       = UIRGrd_SKL.UIRGrd_STB 0 35
11672        IdleAnimation       = UIRGrd_SKL.UIRGrd_IDC
11673        IdleAnimation       = UIRGrd_SKL.UIRGrd_IDD 
11674        AnimationMode       = ONCE
11675        TransitionKey       = TRANS_StandingHurt
11676      End
11677  
11678      ; ---- moving
11679      ConditionState        = MOVING
11680        Animation           = UIRGrd_SKL.UIRGrd_RNA 15
11681        AnimationMode       = LOOP
11682        TransitionKey       = TRANS_Walking
11683        ParticleSysBone     = None InfantryDustTrails
11684      End
11685      AliasConditionState   = MOVING ATTACKING
11686  
11687      ConditionState        = MOVING REALLYDAMAGED
11688        Animation           = UIRGrd_SKL.UIRGrd_RNB 25
11689        AnimationMode       = LOOP
11690        TransitionKey       = TRANS_WalkingHurt
11691        ParticleSysBone     = None InfantryDustTrails
11692      End
11693      AliasConditionState   = MOVING ATTACKING REALLYDAMAGED
11694      
11695      ; ---- dying 
11696      ConditionState        = DYING
11697        Animation           = UIRGrd_SKL.UIRGrd_DTA 
11698        Animation           = UIRGrd_SKL.UIRGrd_DTB 
11699        AnimationMode       = ONCE
11700        TransitionKey       = TRANS_Dying
11701      End
11702  
11703      TransitionState = TRANS_Dying TRANS_Flailing
11704        Animation = UIRGrd_SKL.UIRGrd_ADTE1
11705        AnimationMode = ONCE
11706      End
11707  
11708      ConditionState = DYING EXPLODED_FLAILING
11709        Animation = UIRGrd_SKL.UIRGrd_ADTE2
11710        AnimationMode = LOOP
11711        TransitionKey = TRANS_Flailing
11712      End
11713  
11714      ConditionState = DYING EXPLODED_BOUNCING
11715        Animation = UIRGrd_SKL.UIRGrd_ADTE3
11716        AnimationMode = ONCE
11717        TransitionKey = None
11718      End
11719      
11720      ConditionState = SPECIAL_CHEERING
11721        Animation = UIRGrd_SKL.UIRGrd_IDB
11722      End
11723  
11724      ; ---- firing
11725      ConditionState = USING_WEAPON_A
11726        Animation = UIRGrd_SKL.UIRGrd_ATA
11727        AnimationMode = LOOP
11728        TransitionKey = TRANS_Firing
11729      End
11730  
11731      ConditionState = USING_WEAPON_A REALLYDAMAGED
11732        Animation = UIRGrd_SKL.UIRGrd_ATA2
11733        AnimationMode = LOOP
11734        TransitionKey = TRANS_FiringHurt
11735      End
11736  
11737      TransitionState = TRANS_Standing TRANS_Firing
11738        Animation = UIRGrd_SKL.UIRGrd_ATAST
11739        AnimationMode = ONCE
11740      End
11741  
11742      TransitionState = TRANS_Firing TRANS_Standing
11743        Animation = UIRGrd_SKL.UIRGrd_ATAED
11744        AnimationMode = ONCE
11745      End
11746  
11747      TransitionState = TRANS_StandingHurt TRANS_FiringHurt
11748        Animation = UIRGrd_SKL.UIRGrd_ATA2ED
11749        AnimationMode = ONCE_BACKWARDS
11750      End
11751  
11752      TransitionState = TRANS_FiringHurt TRANS_StandingHurt
11753        Animation = UIRGrd_SKL.UIRGrd_ATA2ED
11754        AnimationMode = ONCE
11755      End
11756  
11757      TransitionState = TRANS_Standing TRANS_StandingHurt
11758        Animation = UIRGrd_SKL.UIRGrd_ATA2ED
11759        AnimationMode = ONCE
11760      End
11761  
11762      
11763  
11764      ; ------- Bldg-capture
11765  
11766      ConditionState = UNPACKING
11767        Model             = UIRGrd_F_SKN
11768        Animation         = UIRGrd_F_SKL.UIRGrd_F_FDP1
11769        AnimationMode     = ONCE
11770      End
11771      AliasConditionState = UNPACKING REALLYDAMAGED
11772  
11773      ConditionState = RAISING_FLAG
11774        Model             = UIRGrd_F_SKN
11775        Animation         = UIRGrd_F_SKL.UIRGrd_F_FDP2
11776        AnimationMode     = ONCE
11777        TransitionKey     = TRANS_Raising
11778      End
11779      AliasConditionState = RAISING_FLAG REALLYDAMAGED
11780  
11781      ConditionState = PACKING
11782        Model             = UIRGrd_F_SKN
11783        Animation         = UIRGrd_F_SKL.UIRGrd_F_FDP1
11784        AnimationMode     = ONCE_BACKWARDS
11785        Flags             = START_FRAME_LAST
11786        TransitionKey     = TRANS_Packing
11787      End
11788      AliasConditionState = PACKING REALLYDAMAGED
11789  
11790      TransitionState = TRANS_Raising TRANS_Packing
11791        Model             = UIRGrd_F_SKN
11792        Animation         = UIRGrd_F_SKL.UIRGrd_F_FDP2
11793        AnimationMode     = ONCE_BACKWARDS
11794        Flags             = START_FRAME_LAST
11795      End
11796  
11797    End
11798  
11799    ; ***DESIGN parameters ***
11800    DisplayName         = OBJECT:Rebel
11801    Side                = GLADemolitionGeneral
11802    EditorSorting       = INFANTRY
11803    TransportSlotCount  = 1                 ;how many "slots" we take in a transport (0 == not transportable)
11804   
11805    WeaponSet
11806      Conditions = None 
11807      Weapon = PRIMARY GLARebelMachineGun
11808      Weapon = SECONDARY None
11809      Weapon = TERTIARY TerroristSuicideNotARealWeapon
11810      AutoChooseSources = TERTIARY NONE
11811    End
11812    ArmorSet
11813      Conditions      = None
11814      Armor           = HumanArmor
11815      DamageFX        = InfantryDamageFX
11816    End
11817    VisionRange         = 150
11818    ShroudClearingRange = 300
11819    Prerequisites
11820      Object = Demo_GLABarracks
11821    End
11822    BuildCost = 150
11823    BuildTime = 5.0          ;in seconds  
11824  
11825    ExperienceValue     = 15 15 30 40     ;Experience point value at each level
11826    ExperienceRequired  = 0 40 60 120     ;Experience points needed to gain each level
11827    IsTrainable         = Yes             ;Can gain experience
11828    CrushableLevel      = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
11829    CommandSet          = Demo_GLAInfantryRebelCommandSet
11830  
11831    ; *** AUDIO Parameters ***
11832    VoiceSelect = RebelVoiceSelect
11833    VoiceMove = RebelVoiceMove
11834    VoiceGuard = RebelVoiceMove
11835    VoiceAttack = RebelVoiceAttack
11836    SoundStealthOn = StealthOn
11837    SoundStealthOff = StealthOff
11838    VoiceFear = RebelVoiceFear
11839    VoiceTaskComplete = RebelVoiceCaptureComplete
11840    UnitSpecificSounds
11841      VoiceCreate = RebelVoiceCreate
11842      VoiceSubdue = RebelVoiceSubdue
11843      VoiceGarrison = RebelVoiceGarrison
11844      VoiceEnter = RebelVoiceMove
11845      VoiceEnterHostile = RebelVoiceMove
11846      VoiceGetHealed      = RebelVoiceMove
11847    End
11848  
11849    ; *** ENGINEERING Parameters ***
11850    RadarPriority = UNIT
11851    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SALVAGER SCORE 
11852  
11853    Body = ActiveBody ModuleTag_02
11854      MaxHealth       = 120.0
11855      InitialHealth   = 120.0
11856    End
11857  
11858    Behavior = AIUpdateInterface ModuleTag_03
11859      AutoAcquireEnemiesWhenIdle = Yes
11860    End
11861  
11862    Behavior = CommandButtonHuntUpdate  ModuleTag_04 ; allows use of command button hunt script with this unit. 
11863    End
11864  
11865    Locomotor = SET_NORMAL BasicHumanLocomotor
11866  
11867    Behavior = PhysicsBehavior ModuleTag_05
11868      Mass = 5.0
11869    End
11870    Behavior = StealthUpdate ModuleTag_07
11871      StealthDelay                = 2500 ; msec
11872      StealthForbiddenConditions  = ATTACKING USING_ABILITY
11873      MoveThresholdSpeed          = 3
11874      InnateStealth               = No ;Requires upgrade first
11875      OrderIdleEnemiesToAttackMeUponReveal  = Yes
11876    End
11877  
11878    Behavior = WeaponBonusUpgrade ModuleTag_09
11879      TriggeredBy = Upgrade_GLAAPBullets
11880    End
11881    Behavior = StealthUpgrade ModuleTag_10
11882      TriggeredBy = Upgrade_GLACamouflage
11883    End
11884  
11885   
11886    Behavior = SquishCollide ModuleTag_11
11887      ;nothing
11888    End
11889  
11890  
11891  ; --- begin Death modules ---
11892    Behavior = SlowDeathBehavior ModuleTag_Death01
11893      DeathTypes          = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA -SUICIDED
11894      SinkDelay           = 3000
11895      SinkRate            = 0.5     ; in Dist/Sec
11896      DestructionDelay    = 8000
11897      FX                  = INITIAL FX_RebelDie
11898    End
11899    Behavior = SlowDeathBehavior ModuleTag_Death02
11900      DeathTypes          = NONE +CRUSHED +SPLATTED
11901      SinkDelay           = 3000
11902      SinkRate            = 0.5     ; in Dist/Sec
11903      DestructionDelay    = 8000
11904      FX                  = INITIAL FX_GIDieCrushed
11905    End
11906    Behavior = SlowDeathBehavior ModuleTag_Death03
11907      DeathTypes          = NONE +EXPLODED -SUICIDED
11908      SinkDelay           = 3000
11909      SinkRate            = 0.5     ; in Dist/Sec
11910      DestructionDelay    = 8000
11911      FX                  = INITIAL FX_RebelDie
11912      FlingForce          = 8
11913      FlingForceVariance  = 3
11914      FlingPitch          = 60
11915      FlingPitchVariance  = 10
11916    End
11917    Behavior = SlowDeathBehavior ModuleTag_Death04
11918      DeathTypes          = NONE +BURNED
11919      DestructionDelay    = 0
11920      FX                  = INITIAL FX_DieByFireGLA
11921      OCL                 = INITIAL OCL_FlamingInfantry
11922    End
11923    Behavior = SlowDeathBehavior ModuleTag_Death05
11924      DeathTypes          = NONE +POISONED
11925      DestructionDelay    = 0
11926      FX                  = INITIAL FX_DieByToxinGLA
11927      OCL                 = INITIAL OCL_ToxicInfantry
11928    End
11929    Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag
11930      DeathTypes          = NONE +POISONED_BETA
11931      DestructionDelay    = 0
11932      FX                  = INITIAL FX_DieByToxinGLA
11933      OCL                 = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones
11934    End
11935    Behavior = SlowDeathBehavior ModuleTag_Death07
11936      DeathTypes          = NONE +POISONED_GAMMA
11937      DestructionDelay    = 0
11938      FX                  = INITIAL FX_DieByToxinGLA
11939      OCL                 = INITIAL OCL_ToxicInfantryGamma
11940    End
11941  ; --- end Death modules ---
11942  
11943    Behavior = PoisonedBehavior ModuleTag_16
11944      PoisonDamageInterval = 100  ; Every this many msec I will retake the poison damage dealt me...
11945      PoisonDuration = 3000       ; ... for this long after last hit by poison damage
11946    End
11947  
11948    Behavior = SpecialAbility ModuleTag_17
11949      SpecialPowerTemplate      = SpecialAbilityRebelCaptureBuilding
11950      UpdateModuleStartsAttack  = Yes
11951      StartsPaused              = Yes
11952      InitiateSound         = RebelVoiceCapture
11953    End
11954    Behavior = SpecialAbilityUpdate ModuleTag_18
11955      SpecialPowerTemplate  = SpecialAbilityRebelCaptureBuilding
11956      StartAbilityRange  = 5.0
11957      UnpackTime            = 3000  ; (changing this will scale anim speed)
11958      PreparationTime       = 20000 ; time to complete hack once prepared (changing this will scale anim speed)
11959      PackTime              = 2000  ; (changing this will scale anim speed)
11960      DoCaptureFX           = Yes
11961      AwardXPForTriggering  = 12
11962      ;SkillPointsForTriggering = ???  -- Dustin, fill me out if you want different balance values.
11963    End
11964  
11965    Behavior = UnpauseSpecialPowerUpgrade ModuleTag_19
11966      SpecialPowerTemplate = SpecialAbilityRebelCaptureBuilding
11967      TriggeredBy = Upgrade_InfantryCaptureBuilding
11968    End
11969  
11970    Behavior = SpecialAbility ModuleTag_20
11971      SpecialPowerTemplate = SpecialAbilityBoobyTrap
11972      UpdateModuleStartsAttack = Yes
11973      StartsPaused              = Yes
11974  ;    InitiateSound = TankHunterVoiceTNT
11975    End
11976    Behavior = SpecialAbilityUpdate ModuleTag_21
11977      SpecialPowerTemplate = SpecialAbilityBoobyTrap
11978      StartAbilityRange = 5.0
11979      PreparationTime = 0
11980      SpecialObject = BoobyTrap
11981      MaxSpecialObjects = 100
11982      SpecialObjectsPersistWhenOwnerDies = Yes
11983      SpecialObjectsPersistent = Yes          ;Charges are persistent till lifetime expires or owner detonates them.
11984  ; Not implemented    UniqueSpecialObjectTargets = Yes        ;This prevents multiple charges placed on the same object.
11985    End
11986  
11987    Behavior = UnpauseSpecialPowerUpgrade ModuleTag_22
11988      SpecialPowerTemplate = SpecialAbilityBoobyTrap
11989      TriggeredBy = Upgrade_GLAInfantryRebelBoobyTrapAttack
11990    End
11991  
11992  ; Module 23 commented out because it crashes saved games if the Rebel is Elite.  GrantUpgradeCreate is a twitchy module.
11993  ;  Behavior = GrantUpgradeCreate ModuleTag_23
11994  ;    UpgradeToGrant           = Upgrade_GLAInfantryRebelBoobyTrapAttack
11995  ;    ExemptStatus      = UNDER_CONSTRUCTION
11996  ;  End
11997  
11998    ; I have just pulled my ripcord, and this ain't no parachute!
11999    Behavior = SlowDeathBehavior ModuleTag_Death17
12000      DeathTypes          = NONE +SUICIDED +EXPLODED
12001      SinkDelay           = 3000
12002      SinkRate            = 0.5     ; in Dist/Sec
12003      DestructionDelay    = 8000
12004      FX                  = INITIAL FX_TerroristExplode
12005      FlingForce          = 8
12006      FlingForceVariance  = 3
12007      FlingPitch          = 60
12008      FlingPitchVariance  = 10
12009    End
12010  
12011  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death24
12012  ;    DeathWeapon   = Demo_SuicideDynamitePack
12013  ;    StartsActive  = Yes                      ; turned on by upgrade
12014  ;    DeathTypes = NONE +SUICIDED
12015  ;  End
12016  ;
12017  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag999
12018  ;    DeathWeapon   = Demo_SuicideDynamitePackPlusFire
12019  ;    StartsActive  = No
12020  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
12021  ;    RequiresAllTriggers = Yes; 
12022  ;    DeathTypes = ALL -SUICIDED -POISONED -POISONED_BETA -POISONED_GAMMA
12023  ;  End
12024  ;
12025  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag998
12026  ;    DeathWeapon   = Demo_SuicideDynamitePack
12027  ;    StartsActive  = No
12028  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
12029  ;    RequiresAllTriggers = Yes; 
12030  ;    DeathTypes = NONE +SUICIDED
12031  ;  End
12032  
12033    Behavior = FireWeaponWhenDeadBehavior ModuleTag_George 
12034      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
12035      StartsActive  = No
12036      TriggeredBy   = Demo_Upgrade_SuicideBomb
12037      DeathTypes = ALL
12038    End;
12039  
12040    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Bob
12041      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
12042      StartsActive  = No
12043      TriggeredBy   = Demo_Upgrade_SuicideBomb
12044      DeathTypes = NONE 
12045    End
12046  
12047    Behavior = CommandSetUpgrade ModuleTag_25
12048      CommandSet = Demo_GLAInfantryRebelCommandSetUpgrade
12049      TriggeredBy = Demo_Upgrade_SuicideBomb
12050    End
12051  
12052    Geometry = CYLINDER
12053    GeometryMajorRadius = 10.0
12054    GeometryMinorRadius = 10.0
12055    GeometryHeight = 12.0
12056    GeometryIsSmall = Yes
12057    Shadow = SHADOW_DECAL
12058    ShadowSizeX = 14;
12059    ShadowSizeY = 14;
12060    ShadowTexture = ShadowI;
12061    BuildCompletion = APPEARS_AT_RALLY_POINT
12062  
12063  End
12064  
12065  ;----------------------------------------------------------------------------
12066  Object Demo_GLAInfantryJarmenKell
12067  
12068    ; *** ART Parameters ***
12069    SelectPortrait         = SUJermanKell1_L  ;NOTE: Asset spelling mistake
12070    ButtonImage            = SUJermanKell1
12071    
12072    UpgradeCameo1 = Upgrade_GLAAPBullets
12073    ;UpgradeCameo2 = NONE
12074    ;UpgradeCameo3 = NONE
12075    ;UpgradeCameo4 = NONE
12076    ;UpgradeCameo5 = NONE
12077    
12078    Draw = W3DModelDraw ModuleTag_01
12079      OkToChangeModelColor = Yes
12080  
12081      ; --- idle
12082      DefaultConditionState
12083        Model             = UIHERO_SKN
12084        IdleAnimation     = UIHERO_SKL.UIHERO_STA 0 21
12085        IdleAnimation     = UIHERO_SKL.UIHERO_IDA
12086        IdleAnimation     = UIHERO_SKL.UIHERO_IDB
12087        AnimationMode     = ONCE
12088        WeaponFireFXBone  = PRIMARY Muzzle
12089        WeaponMuzzleFlash = PRIMARY MuzzleFX
12090        TransitionKey     = TRANS_Stand
12091      End
12092  
12093      ConditionState      = REALLYDAMAGED
12094        IdleAnimation     = UIHERO_SKL.UIHERO_ISTA 0 30
12095        IdleAnimation     = UIHERO_SKL.UIHERO_IIDA
12096        IdleAnimation     = UIHERO_SKL.UIHERO_IIDB
12097        AnimationMode     = ONCE
12098        TransitionKey     = TRANS_StandInjured
12099      End
12100  
12101      TransitionState     = TRANS_Stand TRANS_StandInjured
12102        Animation         = UIHERO_SKL.UIHERO_ISTAHIT
12103        AnimationMode     = ONCE
12104      End
12105  
12106      ; --- attack
12107  
12108      ConditionState      = FIRING_A 
12109        Animation         = UIHERO_SKL.UIHERO_ATA 
12110        AnimationMode     = ONCE
12111        TransitionKey     = TRANS_FiringA
12112        AnimationSpeedFactorRange = 1.5 1.5
12113      End
12114  
12115      ConditionState      = BETWEEN_FIRING_SHOTS_A
12116        Animation         = UIHERO_SKL.UIHERO_STA
12117        AnimationMode     = ONCE
12118        WaitForStateToFinishIfPossible = TRANS_FiringA
12119      End
12120      AliasConditionState = RELOADING_A
12121    
12122      ConditionState      = FIRING_A REALLYDAMAGED
12123        Animation         = UIHERO_SKL.UIHERO_IATA2
12124        AnimationMode     = ONCE
12125        TransitionKey     = TRANS_FiringAInjured
12126        AnimationSpeedFactorRange = 1.5 1.5
12127      End
12128  
12129      ConditionState      = BETWEEN_FIRING_SHOTS_A REALLYDAMAGED
12130        Animation         = UIHERO_SKL.UIHERO_IATA2
12131        AnimationMode     = MANUAL
12132        Flags             = START_FRAME_LAST
12133        WaitForStateToFinishIfPossible = TRANS_FiringAInjured
12134      End
12135      AliasConditionState = RELOADING_A REALLYDAMAGED
12136  
12137      TransitionState     = TRANS_FiringA TRANS_FiringAInjured
12138        Animation         = UIHERO_SKL.UIHERO_IATAHIT
12139        AnimationMode     = ONCE
12140      End
12141  
12142      ; --- moving
12143      ConditionState      = MOVING
12144        Animation         = UIHERO_SKL.UIHERO_RNA2 30
12145        AnimationMode     = LOOP
12146        Flags             = RANDOMSTART
12147        TransitionKey     = None
12148        ParticleSysBone   = None InfantryDustTrails
12149      End
12150      AliasConditionState = MOVING FIRING_A
12151      AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A
12152      AliasConditionState = MOVING RELOADING_A
12153      AliasConditionState = MOVING DOCKING
12154      AliasConditionState = MOVING DOCKING_BEGINNING
12155      AliasConditionState = MOVING DOCKING_ACTIVE
12156  
12157      ConditionState      = MOVING REALLYDAMAGED
12158        Animation         = UIHERO_SKL.UIHERO_IRNA 30
12159        AnimationMode     = LOOP
12160        Flags             = RANDOMSTART
12161        TransitionKey     = None
12162        ParticleSysBone   = None InfantryDustTrails
12163      End
12164      AliasConditionState = MOVING FIRING_A REALLYDAMAGED
12165      AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A REALLYDAMAGED
12166      AliasConditionState = MOVING RELOADING_A REALLYDAMAGED
12167      
12168      ; --- cheering
12169      ConditionState      = SPECIAL_CHEERING
12170        Animation         = UIHERO_SKL.UIHERO_CHA
12171        AnimationMode     = LOOP
12172      End
12173  
12174      ConditionState      = SPECIAL_CHEERING REALLYDAMAGED
12175        Animation         = UIHERO_SKL.UIHERO_ICHA
12176        AnimationMode     = LOOP
12177      End
12178      
12179      ; --- dying
12180      ConditionState      = DYING
12181        Animation         = UIHERO_SKL.UIHERO_DTA
12182        Animation         = UIHERO_SKL.UIHERO_DTB
12183        Animation         = UIHERO_SKL.UIHERO_IDTA
12184        Animation         = UIHERO_SKL.UIHERO_IDTB
12185        AnimationMode     = ONCE
12186        TransitionKey     = TRANS_Dying
12187      End
12188  
12189      TransitionState     = TRANS_Dying TRANS_Flailing
12190        Animation         = UIHERO_SKL.UIHERO_ADTG21
12191        AnimationMode     = ONCE
12192      End
12193  
12194      ConditionState      = DYING EXPLODED_FLAILING
12195        Animation         = UIHERO_SKL.UIHERO_ADTG22
12196        AnimationMode     = LOOP
12197        TransitionKey     = TRANS_Flailing
12198      End
12199  
12200      ConditionState      = DYING EXPLODED_BOUNCING
12201        Animation         = UIHERO_SKL.UIHERO_ADTG23
12202        AnimationMode     = ONCE
12203        TransitionKey     = None
12204      End
12205      
12206      ; --- falling
12207      ConditionState      = FREEFALL
12208        Animation         = UIHERO_SKL.UIHERO_PFL
12209        AnimationMode     = LOOP
12210        TransitionKey     = TRANS_Falling
12211      End
12212      AliasConditionState = FREEFALL REALLYDAMAGED
12213      AliasConditionState = FREEFALL DYING
12214  
12215      ConditionState      = PARACHUTING
12216        Animation         = UIHERO_SKL.UIHERO_PHG
12217        AnimationMode     = LOOP
12218        Flags             = PRISTINE_BONE_POS_IN_FINAL_FRAME  ; our bone positions should come from the last frame, rather than the first
12219        TransitionKey     = TRANS_Chute
12220      End
12221      AliasConditionState = PARACHUTING REALLYDAMAGED
12222      AliasConditionState = PARACHUTING DYING
12223  
12224      TransitionState     = TRANS_Falling TRANS_Chute
12225        Animation         = UIHERO_SKL.UIHERO_POP
12226        AnimationMode     = ONCE
12227        Flags             = PRISTINE_BONE_POS_IN_FINAL_FRAME  ; our bone positions should come from the last frame, rather than the first
12228      End
12229  
12230      TransitionState     = TRANS_Chute TRANS_Stand
12231        Animation         = UIHERO_SKL.UIHERO_PTD
12232        AnimationMode     = ONCE
12233      End
12234  
12235      TransitionState     = TRANS_Chute TRANS_StandInjured
12236        Animation         = UIHERO_SKL.UIHERO_PTD
12237        AnimationMode     = ONCE
12238      End
12239      
12240    End
12241  
12242    ; ***DESIGN parameters ***
12243    DisplayName           = OBJECT:JarmenKell
12244    Side                  = GLADemolitionGeneral
12245    EditorSorting         = INFANTRY
12246    TransportSlotCount    = 1                 ;how many "slots" we take in a transport (0 == not transportable)
12247    MaxSimultaneousOfType = 1
12248   
12249    WeaponSet
12250      Conditions = None 
12251      Weapon = PRIMARY GLAJarmenKellRifle
12252      Weapon = SECONDARY GLAJarmenKellVehiclePilotSniperRifle
12253      Weapon = TERTIARY TerroristSuicideNotARealWeapon
12254      AutoChooseSources = TERTIARY NONE
12255      AutoChooseSources = SECONDARY NONE
12256    End
12257  
12258    ArmorSet
12259      Conditions      = None
12260      Armor           = HumanArmor
12261      DamageFX        = InfantryDamageFX
12262    End
12263    VisionRange         = 200
12264    ShroudClearingRange = 400
12265    Prerequisites
12266      Object = Demo_GLABarracks
12267      Object = Demo_GLAPalace
12268    End
12269    BuildCost = 1500
12270    BuildTime = 20.0          ;in seconds  
12271  
12272    ExperienceValue     = 50 50 100 150    ;Experience point value at each level
12273    ExperienceRequired  = 0 100 200 400  ;Experience points needed to gain each level
12274    IsTrainable         = Yes             ;Can gain experience
12275    CrushableLevel      = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
12276    CommandSet          = Demo_GLAInfantryJarmenKellCommandSet
12277  
12278    ; *** AUDIO Parameters ***
12279    VoiceSelect = DemoKellVoiceSelect
12280    VoiceMove = JarmenKellVoiceMove
12281    VoiceGuard = JarmenKellVoiceMove
12282    VoiceAttack = JarmenKellVoiceAttack
12283    VoiceFear = JarmenKellVoiceFear
12284    SoundStealthOn = StealthOn
12285    SoundStealthOff = StealthOff
12286    
12287    UnitSpecificSounds
12288      VoiceCreate          = DemoKellVoiceCreate
12289      VoiceSnipePilot      = JarmenKellVoiceSnipe
12290      VoiceGarrison = JarmenKellVoiceGarrison
12291      VoiceEnter = JarmenKellVoiceMove
12292      VoiceEnterHostile = JarmenKellVoiceMove
12293      VoiceGetHealed      = JarmenKellVoiceMove
12294    End
12295  
12296  
12297    ; *** ENGINEERING Parameters ***
12298    RadarPriority = UNIT
12299    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SALVAGER STEALTH_GARRISON SCORE HERO CANNOT_RETALIATE
12300  
12301    Body = ActiveBody ModuleTag_02
12302      MaxHealth       = 200.0
12303      InitialHealth   = 200.0
12304    End
12305  
12306    Behavior = AIUpdateInterface ModuleTag_03
12307      AutoAcquireEnemiesWhenIdle = Yes
12308    End
12309    Locomotor = SET_NORMAL JarmenKellLocomotor
12310  
12311    Behavior = PhysicsBehavior ModuleTag_04
12312      Mass = 5.0
12313    End
12314   
12315    Behavior = StealthDetectorUpdate ModuleTag_StealthDetect
12316      DetectionRate             = 750 ;How often to rescan for stealthed things in my sight (msec)
12317      DetectionRange            = 150 ;Enable this for independant balancing!
12318      CanDetectWhileGarrisoned  = No  ;Garrisoned means being in a structure that you units can shoot out of.
12319      CanDetectWhileContained   = No  ;Contained means being in a transport or tunnel network.
12320    End
12321    Behavior = StealthUpdate ModuleTag_06
12322      StealthDelay                = 2000 ; msec
12323      StealthForbiddenConditions  = ATTACKING
12324      InnateStealth               = Yes
12325      OrderIdleEnemiesToAttackMeUponReveal  = Yes
12326      EnemyDetectionEvaEvent      = EnemyJarmenKellDetected
12327      OwnDetectionEvaEvent        = OwnJarmenKellDetected
12328    End
12329  
12330    Behavior = CommandButtonHuntUpdate  ModuleTag_07 ; allows use of command button hunt script with this unit. 
12331    End
12332  
12333    Behavior = WeaponBonusUpgrade ModuleTag_08
12334      TriggeredBy = Upgrade_GLAAPBullets
12335    End
12336   
12337    ;Hero units can't be squished!
12338    ;Behavior = SquishCollide ModuleTag_09
12339    ;  ;nothing
12340    ;End
12341  
12342  
12343  ; --- begin Death modules ---
12344    Behavior = SlowDeathBehavior ModuleTag_Death01
12345      DeathTypes          = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA
12346      SinkDelay           = 3000
12347      SinkRate            = 0.5     ; in Dist/Sec
12348      DestructionDelay    = 8000
12349      FX                  = INITIAL FX_JarmenKellDie
12350    End
12351    Behavior = SlowDeathBehavior ModuleTag_Death02
12352      DeathTypes          = NONE +CRUSHED +SPLATTED
12353      SinkDelay           = 3000
12354      SinkRate            = 0.5     ; in Dist/Sec
12355      DestructionDelay    = 8000
12356      FX                  = INITIAL FX_GIDieCrushed
12357    End
12358    Behavior = SlowDeathBehavior ModuleTag_Death03
12359      DeathTypes          = NONE +EXPLODED
12360      SinkDelay           = 3000
12361      SinkRate            = 0.5     ; in Dist/Sec
12362      DestructionDelay    = 8000
12363      FX                  = INITIAL FX_JarmenKellDie
12364      FlingForce          = 8
12365      FlingForceVariance  = 3
12366      FlingPitch          = 60
12367      FlingPitchVariance  = 10
12368    End
12369    Behavior = SlowDeathBehavior ModuleTag_Death04
12370      DeathTypes          = NONE +BURNED
12371      DestructionDelay    = 0
12372      FX                  = INITIAL FX_DieByFireGLA
12373      OCL                 = INITIAL OCL_FlamingInfantry
12374    End
12375    Behavior = SlowDeathBehavior ModuleTag_Death05
12376      DeathTypes          = NONE +POISONED
12377      DestructionDelay    = 0
12378      FX                  = INITIAL FX_DieByToxinGLA
12379      OCL                 = INITIAL OCL_ToxicInfantry
12380    End
12381    Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag
12382      DeathTypes          = NONE +POISONED_BETA
12383      DestructionDelay    = 0
12384      FX                  = INITIAL FX_DieByToxinGLA
12385      OCL                 = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones
12386    End
12387    Behavior = SlowDeathBehavior ModuleTag_Death07
12388      DeathTypes          = NONE +POISONED_GAMMA
12389      DestructionDelay    = 0
12390      FX                  = INITIAL FX_DieByToxinGLA
12391      OCL                 = INITIAL OCL_ToxicInfantryGamma
12392    End
12393  ; --- end Death modules ---
12394  
12395    Behavior = PoisonedBehavior ModuleTag_14
12396      PoisonDamageInterval = 100  ; Every this many msec I will retake the poison damage dealt me...
12397      PoisonDuration = 3000       ; ... for this long after last hit by poison damage
12398    End
12399  
12400    Behavior = SlowDeathBehavior ModuleTag_Death15
12401      DeathTypes          = NONE +SUICIDED +EXPLODED
12402      SinkDelay           = 3000
12403      SinkRate            = 0.5     ; in Dist/Sec
12404      DestructionDelay    = 8000
12405      FX                  = INITIAL FX_TerroristExplode
12406      FlingForce          = 8
12407      FlingForceVariance  = 3
12408      FlingPitch          = 60
12409      FlingPitchVariance  = 10
12410    End
12411  
12412  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death24
12413  ;    DeathWeapon   = Demo_SuicideDynamitePack
12414  ;    StartsActive  = Yes                      ; turned on by upgrade
12415  ;    DeathTypes = NONE +SUICIDED
12416  ;  End
12417  ;
12418  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag999
12419  ;    DeathWeapon   = Demo_SuicideDynamitePackPlusFire
12420  ;    StartsActive  = No
12421  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
12422  ;    RequiresAllTriggers = Yes; 
12423  ;    DeathTypes = ALL -SUICIDED -POISONED -POISONED_BETA -POISONED_GAMMA
12424  ;  End
12425  ;
12426  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag998
12427  ;    DeathWeapon   = Demo_SuicideDynamitePack
12428  ;    StartsActive  = No
12429  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
12430  ;    RequiresAllTriggers = Yes; 
12431  ;    DeathTypes = NONE +SUICIDED
12432  ;  End
12433  
12434    Behavior = FireWeaponWhenDeadBehavior ModuleTag_George 
12435      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
12436      StartsActive  = No
12437      TriggeredBy   = Demo_Upgrade_SuicideBomb
12438      DeathTypes = ALL
12439    End;
12440  
12441    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Bob
12442      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
12443      StartsActive  = No
12444      TriggeredBy   = Demo_Upgrade_SuicideBomb
12445      DeathTypes = NONE 
12446    End
12447  
12448    Behavior = CommandSetUpgrade ModuleTag_17
12449      CommandSet = Demo_GLAInfantryJarmenKellCommandSetUpgrade
12450      TriggeredBy = Demo_Upgrade_SuicideBomb
12451    End
12452  
12453    Behavior = SpecialAbility ModuleTag_18
12454      SpecialPowerTemplate = Demo_SpecialAbilityKellRemoteCharges
12455      UpdateModuleStartsAttack = Yes
12456      InitiateSound             = DemoKellVoiceAttackDemo
12457    End
12458  
12459    Behavior = SpecialAbilityUpdate ModuleTag_19
12460      SpecialPowerTemplate = Demo_SpecialAbilityKellRemoteCharges
12461      StartAbilityRange = 0.0
12462      PreparationTime = 0
12463      SpecialObject = RemoteC4Charge
12464      MaxSpecialObjects = 8
12465      SpecialObjectsPersistWhenOwnerDies = No ;Charges are removed instantly when owner dies (nobody can detonate).
12466      AlwaysValidateSpecialObjects = Yes      ;Coupled with the above setting, this one is necessary for code optimization.
12467      SpecialObjectsPersistent = Yes          ;Charges are persistent till lifetime expires or owner detonates them.
12468      UniqueSpecialObjectTargets = Yes        ;This prevents multiple charges placed on the same object.
12469      UnpackTime              = 5500          ;NOTE: Modifying this value will require modifying the delay for ColonelBurtonPlantCharge
12470      PackTime                = 0
12471      SkipPackingWithNoTarget = Yes           ;When yes, the packing/unpacking will be ignored when detonating charges.
12472      FlipOwnerAfterUnpacking = Yes
12473      FleeRangeAfterCompletion = 100.0         ;Runs away after finishing ability
12474      UnpackSound               = ColonelBurtonPlantCharge
12475      LoseStealthOnTrigger      = Yes
12476      PreTriggerUnstealthTime   = 5000 ; in milliseconds
12477    End
12478  
12479    Behavior = SpecialAbility ModuleTag_20
12480      SpecialPowerTemplate = Demo_SpecialAbilityDemoKellTimedCharges
12481      UpdateModuleStartsAttack = Yes
12482      InitiateSound             = DemoKellVoiceAttackDemo
12483    End
12484  
12485    Behavior = SpecialAbilityUpdate ModuleTag_11
12486      SpecialPowerTemplate = Demo_SpecialAbilityDemoKellTimedCharges
12487      StartAbilityRange = 0.0
12488      PreparationTime = 0
12489      SpecialObject = TimedC4Charge
12490      MaxSpecialObjects = 10
12491      SpecialObjectsPersistWhenOwnerDies = Yes 
12492      SpecialObjectsPersistent = Yes          ;Charges are persistent till lifetime expires or owner detonates them.
12493      UniqueSpecialObjectTargets = Yes        ;This prevents multiple charges placed on the same object.
12494      UnpackTime              = 5500          ;NOTE: Modifying this value will require modifying the delay for ColonelBurtonPlantCharge
12495      FlipOwnerAfterUnpacking = Yes
12496      FleeRangeAfterCompletion = 100.0         ;Runs away after finishing ability
12497      UnpackSound               = DemoKellVoiceAttackDemo
12498      LoseStealthOnTrigger      = Yes
12499      PreTriggerUnstealthTime   = 5000 ; in milliseconds
12500    End
12501   
12502    Geometry = CYLINDER
12503    GeometryMajorRadius = 10.0
12504    GeometryMinorRadius = 10.0
12505    GeometryHeight = 12.0
12506    GeometryIsSmall = Yes
12507    Shadow = SHADOW_DECAL
12508    ShadowSizeX = 14;
12509    ShadowSizeY = 14;
12510    ShadowTexture = ShadowI;
12511    BuildCompletion = APPEARS_AT_RALLY_POINT
12512  
12513  End
12514  
12515  
12516  
12517  
12518  
12519  
12520  
12521  ;------------------------------------------------------------------------------
12522  ;Tunnel Fanatic ;Now called the RPG Trooper
12523  Object Demo_GLAInfantryTunnelDefender
12524  
12525    ; *** ART Parameters ***
12526    SelectPortrait         = SURPG_L
12527    ButtonImage            = SURPG
12528    
12529    UpgradeCameo1 = Upgrade_GLAAPRockets
12530    ;UpgradeCameo2 = NONE
12531    ;UpgradeCameo3 = NONE
12532    ;UpgradeCameo4 = NONE
12533    ;UpgradeCameo5 = NONE
12534  
12535    Draw = W3DModelDraw ModuleTag_01
12536      OkToChangeModelColor = Yes
12537  
12538      DefaultConditionState
12539        Model = UITunF_SKN
12540        IdleAnimation = UITunF_SKL.UITunF_STA 0 20
12541        IdleAnimation = UITunF_SKL.UITunF_IDA 
12542        IdleAnimation = UITunF_SKL.UITunF_IDB 
12543        IdleAnimation = UITunF_SKL.UITunF_IDC 
12544        AnimationMode = ONCE
12545        WeaponMuzzleFlash = PRIMARY MuzzleFX
12546        WeaponFireFXBone = PRIMARY Muzzle
12547        WeaponLaunchBone = PRIMARY Muzzle
12548      End
12549  
12550      ConditionState = MOVING
12551        Animation = UITunF_SKL.UITunF_WKA 16
12552        Animation = UITunF_SKL.UITunF_WKB 30
12553        Animation = UITunF_SKL.UITunF_WKC 30
12554        Animation = UITunF_SKL.UITunF_RNA 15
12555        Animation = UITunF_SKL.UITunF_RNB 25   
12556        AnimationMode = LOOP
12557        ParticleSysBone   = None InfantryDustTrails
12558      End
12559  
12560      ConditionState = DYING
12561        Animation = UITunF_SKL.UITunF_DTA 
12562        Animation = UITunF_SKL.UITunF_DTB 
12563        AnimationMode = ONCE
12564        TransitionKey = TRANS_Dying
12565      End
12566  
12567      TransitionState = TRANS_Dying TRANS_Flailing
12568        Animation = UITunF_SKL.UITunF_ADTA1
12569        Animation = UITunF_SKL.UITunF_ADTE1
12570        Animation = UITunF_SKL.UITunF_ADTF1
12571        AnimationMode = ONCE
12572      End
12573  
12574      ConditionState = DYING EXPLODED_FLAILING
12575        Animation = UITunF_SKL.UITunF_ADTA2
12576        Animation = UITunF_SKL.UITunF_ADTE2
12577        Animation = UITunF_SKL.UITunF_ADTF2
12578        AnimationMode = LOOP
12579        TransitionKey = TRANS_Flailing
12580      End
12581  
12582      ConditionState = DYING EXPLODED_BOUNCING
12583        Animation = UITunF_SKL.UITunF_ADTA3
12584        Animation = UITunF_SKL.UITunF_ADTE3
12585        Animation = UITunF_SKL.UITunF_ADTF3
12586        AnimationMode = ONCE
12587        TransitionKey = None
12588      End
12589  
12590      ConditionState = FIRING_A 
12591        Animation = UITunF_SKL.UITunF_ATA 
12592        AnimationMode = ONCE
12593        TransitionKey = TRANS_START_FIRING
12594      End
12595      ConditionState = BETWEEN_FIRING_SHOTS_A
12596        Animation = UITunF_SKL.UITunF_STA
12597        AnimationMode = ONCE
12598        ; this is basically a trick: this guy has a nontrivial animation for firing,
12599        ; and a long recycle time between shots. we want him to finish his fire animation
12600        ; (unless he's ordered to do something else), so this is just a handy trick that
12601        ; says, "if the previous state had this transition key, allow it to finish before
12602        ; switching to us, if possible".
12603        WaitForStateToFinishIfPossible = TRANS_START_FIRING
12604      End
12605      AliasConditionState = RELOADING_A
12606  
12607      ConditionState = SPECIAL_CHEERING
12608        Animation = UITUNF_SKL.UITUNF_CHA
12609        AnimationMode = LOOP
12610      End
12611  
12612    End
12613  
12614    ; ***DESIGN parameters ***
12615    DisplayName      = OBJECT:TunnelDefender
12616    Side = GLADemolitionGeneral
12617    EditorSorting = INFANTRY
12618    TransportSlotCount = 1                 ;how many "slots" we take in a transport (0 == not transportable)
12619    WeaponSet
12620      Conditions = None 
12621      Weapon = PRIMARY DemoTunnelDefenderRocketWeapon
12622      Weapon = SECONDARY None
12623      Weapon = TERTIARY TerroristSuicideNotARealWeapon
12624      AutoChooseSources = TERTIARY NONE
12625    End
12626    ArmorSet
12627      Conditions      = None
12628      Armor           = HumanArmor
12629      DamageFX        = InfantryDamageFX
12630    End
12631    VisionRange = 150
12632    ShroudClearingRange = 400
12633   ; Prerequisites
12634   ;   Object = Demo_GLATunnelNetwork
12635   ; End
12636    BuildCost = 300
12637    BuildTime = 5.0          ;in seconds  
12638  
12639    ExperienceValue = 20 20 40 60    ;Experience point value at each level
12640    ExperienceRequired = 0 100 200 400  ;Experience points needed to gain each level
12641    IsTrainable = Yes             ;Can gain experience
12642    CrushableLevel         = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
12643    CommandSet      = Demo_GLAInfantryTunnelDefenderCommandSet
12644  
12645    ; *** AUDIO Parameters ***
12646    VoiceSelect = RPGTrooperVoiceSelect
12647    VoiceMove = RPGTrooperVoiceMove
12648    VoiceGuard = RPGTrooperVoiceMove
12649    VoiceAttack = RPGTrooperVoiceAttack
12650    VoiceFear = RPGTrooperVoiceFear
12651    UnitSpecificSounds
12652      VoiceCreate          = RPGTrooperVoiceCreate
12653      VoiceGarrison = RPGTrooperVoiceGarrison
12654      VoiceEnter = RPGTrooperVoiceMove
12655      VoiceEnterHostile = RPGTrooperVoiceMove
12656      VoiceGetHealed      = RPGTrooperVoiceMove
12657    End
12658  
12659  
12660    ; *** ENGINEERING Parameters ***
12661    RadarPriority = UNIT
12662    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SALVAGER SCORE
12663  
12664    Body = ActiveBody ModuleTag_02
12665      MaxHealth       = 100.0
12666      InitialHealth   = 100.0
12667    End
12668  
12669    Behavior = AIUpdateInterface ModuleTag_03
12670      AutoAcquireEnemiesWhenIdle = Yes
12671    End
12672    Locomotor = SET_NORMAL MissileDefenderLocomotor
12673  
12674    Behavior = PhysicsBehavior ModuleTag_04
12675      Mass = 5.0
12676    End
12677   
12678    Behavior = SquishCollide ModuleTag_06
12679      ;nothing
12680    End
12681  
12682  ; --- begin Death modules ---
12683    Behavior = SlowDeathBehavior ModuleTag_Death01
12684      DeathTypes          = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA
12685      SinkDelay           = 3000
12686      SinkRate            = 0.5     ; in Dist/Sec
12687      DestructionDelay    = 8000
12688      FX                  = INITIAL FX_RPGTrooperDie
12689    End
12690    Behavior = SlowDeathBehavior ModuleTag_Death02
12691      DeathTypes          = NONE +CRUSHED +SPLATTED
12692      SinkDelay           = 3000
12693      SinkRate            = 0.5     ; in Dist/Sec
12694      DestructionDelay    = 8000
12695      FX                  = INITIAL FX_GIDieCrushed
12696    End
12697    Behavior = SlowDeathBehavior ModuleTag_Death03
12698      DeathTypes          = NONE +EXPLODED
12699      SinkDelay           = 3000
12700      SinkRate            = 0.5     ; in Dist/Sec
12701      DestructionDelay    = 8000
12702      FX                  = INITIAL FX_RPGTrooperDie
12703      FlingForce          = 8
12704      FlingForceVariance  = 3
12705      FlingPitch          = 60
12706      FlingPitchVariance  = 10
12707    End
12708    Behavior = SlowDeathBehavior ModuleTag_Death04
12709      DeathTypes          = NONE +BURNED
12710      DestructionDelay    = 0
12711      FX                  = INITIAL FX_DieByFireGLA
12712      OCL                 = INITIAL OCL_FlamingInfantry
12713    End
12714    Behavior = SlowDeathBehavior ModuleTag_Death05
12715      DeathTypes          = NONE +POISONED
12716      DestructionDelay    = 0
12717      FX                  = INITIAL FX_DieByToxinGLA
12718      OCL                 = INITIAL OCL_ToxicInfantry
12719    End
12720    Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag
12721      DeathTypes          = NONE +POISONED_BETA
12722      DestructionDelay    = 0
12723      FX                  = INITIAL FX_DieByToxinGLA
12724      OCL                 = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones
12725    End
12726    Behavior = SlowDeathBehavior ModuleTag_Death07
12727      DeathTypes          = NONE +POISONED_GAMMA
12728      DestructionDelay    = 0
12729      FX                  = INITIAL FX_DieByToxinGLA
12730      OCL                 = INITIAL OCL_ToxicInfantryGamma
12731    End
12732  ; --- end Death modules ---
12733  
12734    Behavior = PoisonedBehavior ModuleTag_12
12735      PoisonDamageInterval = 100  ; Every this many msec I will retake the poison damage dealt me...
12736      PoisonDuration = 3000       ; ... for this long after last hit by poison damage
12737    End
12738    
12739    Behavior = SlowDeathBehavior ModuleTag_Death13
12740      DeathTypes          = NONE +SUICIDED +EXPLODED
12741      SinkDelay           = 3000
12742      SinkRate            = 0.5     ; in Dist/Sec
12743      DestructionDelay    = 8000
12744      FX                  = INITIAL FX_TerroristExplode
12745      FlingForce          = 8
12746      FlingForceVariance  = 3
12747      FlingPitch          = 60
12748      FlingPitchVariance  = 10
12749    End
12750  
12751  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death24
12752  ;    DeathWeapon   = Demo_SuicideDynamitePack
12753  ;    StartsActive  = Yes                      ; turned on by upgrade
12754  ;    DeathTypes = NONE +SUICIDED
12755  ;  End
12756  ;
12757  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag999
12758  ;    DeathWeapon   = Demo_SuicideDynamitePackPlusFire
12759  ;    StartsActive  = No
12760  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
12761  ;    RequiresAllTriggers = Yes; 
12762  ;    DeathTypes = ALL -SUICIDED -POISONED -POISONED_BETA -POISONED_GAMMA
12763  ;  End
12764  ;
12765  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag998
12766  ;    DeathWeapon   = Demo_SuicideDynamitePack
12767  ;    StartsActive  = No
12768  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
12769  ;    RequiresAllTriggers = Yes; 
12770  ;    DeathTypes = NONE +SUICIDED
12771  ;  End
12772  
12773    Behavior = FireWeaponWhenDeadBehavior ModuleTag_George 
12774      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
12775      StartsActive  = No
12776      TriggeredBy   = Demo_Upgrade_SuicideBomb
12777      DeathTypes = ALL
12778    End;
12779  
12780    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Bob
12781      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
12782      StartsActive  = No
12783      TriggeredBy   = Demo_Upgrade_SuicideBomb
12784      DeathTypes = NONE 
12785    End
12786  
12787    Behavior = CommandSetUpgrade ModuleTag_15
12788      CommandSet = Demo_GLAInfantryTunnelDefenderCommandSetUpgrade
12789      TriggeredBy = Demo_Upgrade_SuicideBomb
12790    End
12791   
12792    Geometry = CYLINDER
12793    GeometryMajorRadius = 10.0
12794    GeometryMinorRadius = 10.0
12795    GeometryHeight = 12.0
12796    GeometryIsSmall = Yes
12797    Shadow = SHADOW_DECAL
12798    ShadowSizeX = 14;
12799    ShadowSizeY = 14;
12800    ShadowTexture = ShadowI;
12801    BuildCompletion = APPEARS_AT_RALLY_POINT
12802  
12803  End
12804  
12805  ;------------------------------------------------------------------------------
12806  ;***THESE UNITS ARE NOT SELECTABLE ANYMORE! To kill them, you must target
12807  ;   the stinger site. If the weapon does particular types of damage, it'll
12808  ;   kill guys inside first, then the site.
12809  Object Demo_GLAInfantryStingerSoldier
12810  
12811    ; *** ART Parameters ***
12812    SelectPortrait         = SUStinger_L
12813    ButtonImage            = SUStinger
12814  
12815    Draw = W3DModelDraw ModuleTag_01
12816      OkToChangeModelColor = Yes
12817  
12818      DefaultConditionState
12819        Model = UISmsd_SKN
12820        IdleAnimation = UISmsd_SKL.UISmsd_STA 0 45
12821        IdleAnimation = UISmsd_SKL.UISmsd_IDA 
12822        IdleAnimation = UISmsd_SKL.UISmsd_IDB 
12823        IdleAnimation = UISmsd_SKL.UISmsd_IDC 
12824        IdleAnimation = UISmsd_SKL.UISmsd_IDD 
12825        AnimationMode = ONCE
12826        WeaponMuzzleFlash = PRIMARY MuzzleFX
12827        WeaponFireFXBone = PRIMARY Exhaust
12828        WeaponLaunchBone = PRIMARY Muzzle
12829        WeaponFireFXBone = SECONDARY Exhaust
12830        WeaponLaunchBone = SECONDARY Muzzle
12831  
12832        WaitForStateToFinishIfPossible = TRANS_START_FIRING
12833  
12834      End
12835      AliasConditionState = BETWEEN_FIRING_SHOTS_A
12836      AliasConditionState = BETWEEN_FIRING_SHOTS_B
12837      AliasConditionState = RELOADING_A
12838      AliasConditionState = RELOADING_B
12839  
12840      ConditionState = MOVING
12841        Animation = UISmsd_SKL.UISmsd_WKB 25
12842        AnimationMode = LOOP
12843      End
12844  
12845      ConditionState = DYING
12846        Animation = UISmsd_SKL.UISmsd_DTA 
12847        Animation = UISmsd_SKL.UISmsd_DTB 
12848        AnimationMode = ONCE
12849        TransitionKey = TRANS_Dying
12850        WaitForStateToFinishIfPossible = NONE ; We got a Key from Default state, but Death does not need to wait for firing to finish
12851      End
12852  
12853      TransitionState = TRANS_Dying TRANS_Flailing
12854        Animation = UISmsd_SKL.UISmsd_ADTF1
12855        Animation = UISmsd_SKL.UISmsd_ADTG21
12856        AnimationMode = ONCE
12857      End
12858  
12859      ConditionState = DYING EXPLODED_FLAILING
12860        Animation = UISmsd_SKL.UISmsd_ADTF2
12861        Animation = UISmsd_SKL.UISmsd_ADTG22
12862        AnimationMode = LOOP
12863        TransitionKey = TRANS_Flailing
12864        WaitForStateToFinishIfPossible = NONE ; We got a Key from Default state, but Death does not need to wait for firing to finish
12865      End
12866  
12867      ConditionState = DYING EXPLODED_BOUNCING
12868        Animation = UISmsd_SKL.UISmsd_ADTF3
12869        Animation = UISmsd_SKL.UISmsd_ADTG23
12870        AnimationMode = ONCE
12871        TransitionKey = None
12872        WaitForStateToFinishIfPossible = NONE ; We got a Key from Default state, but Death does not need to wait for firing to finish
12873      End
12874  
12875      ConditionState = FIRING_A
12876        Animation = UISmsd_SKL.UISmsd_ATA
12877        AnimationMode = ONCE
12878        TransitionKey = TRANS_START_FIRING
12879      End
12880      ; AliasConditionState is a new keyword that says,
12881      ; "give me another ConditionState exactly like the previous
12882      ; one, except with different conditions". Useful when you
12883      ; have several states that are the same with only different condition bits.
12884      ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.).
12885      AliasConditionState = MOVING FIRING_A
12886      AliasConditionState = MOVING RELOADING_A
12887  
12888      ConditionState = FIRING_B
12889        Animation = UISmsd_SKL.UISmsd_ATB
12890        AnimationMode = ONCE
12891        TransitionKey = TRANS_START_FIRINGB
12892      End
12893      ; AliasConditionState is a new keyword that says,
12894      ; "give me another ConditionState exactly like the previous
12895      ; one, except with different conditions". Useful when you
12896      ; have several states that are the same with only different condition bits.
12897      ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.).
12898      AliasConditionState = MOVING FIRING_B
12899      AliasConditionState = MOVING RELOADING_B
12900  
12901  
12902      ConditionState = SPECIAL_CHEERING
12903        Animation = UISMSD_SKL.UISMSD_CHA
12904        AnimationMode = LOOP
12905      End
12906  
12907    End
12908  
12909    ; ***DESIGN parameters ***
12910    DisplayName      = OBJECT:StingerSoldier
12911    Side = GLADemolitionGeneral
12912    EditorSorting = INFANTRY
12913    TransportSlotCount = 1                 ;how many "slots" we take in a transport (0 == not transportable)
12914    WeaponSet
12915      Conditions          = None 
12916      Weapon              = PRIMARY   StingerMissileWeapon
12917      AutoChooseSources   = PRIMARY   FROM_PLAYER FROM_AI FROM_SCRIPT
12918      Weapon              = SECONDARY StingerMissileWeaponAir
12919      PreferredAgainst    = SECONDARY BALLISTIC_MISSILE AIRCRAFT
12920      Weapon = TERTIARY TerroristSuicideNotARealWeapon
12921      AutoChooseSources = TERTIARY NONE
12922    End
12923    ArmorSet
12924      Conditions      = None
12925      Armor           = StingerSoldierArmor ;Extra protection due to being enclosed by the stinger site.
12926      DamageFX        = None
12927    End
12928    VisionRange = 400.0
12929    ShroudClearingRange = 400
12930  
12931    Prerequisites
12932      Object = Demo_GLABarracks
12933    End
12934    BuildCost = 100
12935    BuildTime = 1.0          ;in seconds    
12936    CrushableLevel         = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
12937  
12938    CommandSet      = Demo_GLAInfantryRebelCommandSet
12939  
12940    ; *** AUDIO Parameters ***
12941    VoiceSelect = StingerSoldierVoiceSelect
12942    VoiceMove = StingerSoldierVoiceMove
12943    VoiceAttack = StingerSoldierVoiceAttack
12944  
12945    ; *** ENGINEERING Parameters ***
12946    RadarPriority = UNIT
12947    KindOf = PRELOAD CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SALVAGER CLICK_THROUGH SPAWNS_ARE_THE_WEAPONS
12948  
12949    Body = ActiveBody ModuleTag_02
12950      MaxHealth       = 100.0
12951      InitialHealth   = 100.0
12952    End
12953  
12954    Behavior = StealthDetectorUpdate ModuleTag_16
12955      DetectionRate   = 500   ; how often to rescan for stealthed things in my sight (msec)
12956      DetectionRange = 200 ;Dustin, enable this for independant balancing!
12957      CanDetectWhileGarrisoned  = No ;Garrisoned means being in a structure that you units can shoot out of.
12958      CanDetectWhileContained   = No ;Contained means being in a transport or tunnel network.
12959    End
12960  
12961    Behavior = AIUpdateInterface ModuleTag_03
12962      AutoAcquireEnemiesWhenIdle = Yes Stealthed ATTACK_BUILDINGS
12963      MoodAttackCheckRate        = 250
12964    End
12965    Locomotor = SET_NORMAL BasicHumanLocomotor
12966    Behavior = PhysicsBehavior ModuleTag_04
12967      Mass = 5.0
12968    End
12969    Behavior = SlavedUpdate ModuleTag_06
12970      ;nothing
12971    End
12972  ;  Behavior = ProneUpdate ModuleTag_07
12973  ;    DamageToFramesRatio = 5.0 ; I take 20 damage, I go prone for 100.  For this guy, if any of my buds or my building take damage too (I have SlaveUpdate + ProneUpdate) Prone may get cut by itself though
12974  ;  End
12975  
12976    Behavior = SquishCollide ModuleTag_08
12977      ;nothing
12978    End
12979  
12980    ;Kris: Cut camo-netting from Demo General
12981    ;Behavior = StealthUpdate ModuleTag_09
12982    ;  StealthDelay                = 2500 ; msec
12983    ;  StealthForbiddenConditions  = ATTACKING USING_ABILITY NO_BLACK_MARKET TAKING_DAMAGE
12984    ;  MoveThresholdSpeed          = 3
12985    ;  InnateStealth               = No ;Requires upgrade first
12986    ;  OrderIdleEnemiesToAttackMeUponReveal  = Yes
12987    ;End
12988    ;Behavior = StealthUpgrade ModuleTag_10
12989    ;  TriggeredBy = Upgrade_GLACamoNetting
12990    ;End
12991  
12992  
12993  ; --- begin Death modules ---
12994    Behavior = SlowDeathBehavior ModuleTag_Death01
12995      DeathTypes          = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA
12996      SinkDelay           = 3000
12997      SinkRate            = 0.5     ; in Dist/Sec
12998      DestructionDelay    = 8000
12999      FX                  = INITIAL FX_StingerSoldierDie
13000    End
13001    Behavior = SlowDeathBehavior ModuleTag_Death02
13002      DeathTypes          = NONE +CRUSHED +SPLATTED
13003      SinkDelay           = 3000
13004      SinkRate            = 0.5     ; in Dist/Sec
13005      DestructionDelay    = 8000
13006      FX                  = INITIAL FX_GIDieCrushed
13007    End
13008    Behavior = SlowDeathBehavior ModuleTag_Death03
13009      DeathTypes          = NONE +EXPLODED
13010      SinkDelay           = 3000
13011      SinkRate            = 0.5     ; in Dist/Sec
13012      DestructionDelay    = 8000
13013      FX                  = INITIAL FX_StingerSoldierDie
13014      FlingForce          = 8
13015      FlingForceVariance  = 3
13016      FlingPitch          = 60
13017      FlingPitchVariance  = 10
13018    End
13019    Behavior = SlowDeathBehavior ModuleTag_Death04
13020      DeathTypes          = NONE +BURNED
13021      DestructionDelay    = 0
13022      FX                  = INITIAL FX_DieByFireGLA
13023      OCL                 = INITIAL OCL_FlamingInfantry
13024    End
13025    Behavior = SlowDeathBehavior ModuleTag_Death05
13026      DeathTypes          = NONE +POISONED
13027      DestructionDelay    = 0
13028      FX                  = INITIAL FX_DieByToxinGLA
13029      OCL                 = INITIAL OCL_ToxicInfantry
13030    End
13031    Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag
13032      DeathTypes          = NONE +POISONED_BETA
13033      DestructionDelay    = 0
13034      FX                  = INITIAL FX_DieByToxinGLA
13035      OCL                 = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones
13036    End
13037    Behavior = SlowDeathBehavior ModuleTag_Death07
13038      DeathTypes          = NONE +POISONED_GAMMA
13039      DestructionDelay    = 0
13040      FX                  = INITIAL FX_DieByToxinGLA
13041      OCL                 = INITIAL OCL_ToxicInfantryGamma
13042    End
13043  ; --- end Death modules ---
13044  
13045    Behavior = PoisonedBehavior ModuleTag_14
13046      PoisonDamageInterval = 100  ; Every this many msec I will retake the poison damage dealt me...
13047      PoisonDuration = 3000       ; ... for this long after last hit by poison damage
13048    End
13049  
13050    Behavior = SlowDeathBehavior ModuleTag_Death15
13051      DeathTypes          = NONE +SUICIDED +EXPLODED
13052      SinkDelay           = 3000
13053      SinkRate            = 0.5     ; in Dist/Sec
13054      DestructionDelay    = 8000
13055      FX                  = INITIAL FX_TerroristExplode
13056      FlingForce          = 8
13057      FlingForceVariance  = 3
13058      FlingPitch          = 60
13059      FlingPitchVariance  = 10
13060    End
13061  
13062  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death24
13063  ;    DeathWeapon   = Demo_SuicideDynamitePack
13064  ;    StartsActive  = Yes                      ; turned on by upgrade
13065  ;    DeathTypes = NONE +SUICIDED
13066  ;  End
13067  ;
13068  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag999
13069  ;    DeathWeapon   = Demo_SuicideDynamitePackPlusFire
13070  ;    StartsActive  = No
13071  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
13072  ;    RequiresAllTriggers = Yes; 
13073  ;    DeathTypes = ALL -SUICIDED -POISONED -POISONED_BETA -POISONED_GAMMA
13074  ;  End
13075  ;
13076  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag998
13077  ;    DeathWeapon   = Demo_SuicideDynamitePack
13078  ;    StartsActive  = No
13079  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
13080  ;    RequiresAllTriggers = Yes; 
13081  ;    DeathTypes = NONE +SUICIDED
13082  ;  End
13083  
13084    Behavior = FireWeaponWhenDeadBehavior ModuleTag_George 
13085      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
13086      StartsActive  = No
13087      TriggeredBy   = Demo_Upgrade_SuicideBomb
13088      DeathTypes = ALL
13089    End;
13090  
13091    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Bob
13092      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
13093      StartsActive  = No
13094      TriggeredBy   = Demo_Upgrade_SuicideBomb
13095      DeathTypes = NONE 
13096    End
13097  
13098    Behavior = CommandSetUpgrade ModuleTag_17
13099      CommandSet = Demo_GLAInfantryRebelCommandSetUpgrade         
13100      TriggeredBy = Demo_Upgrade_SuicideBomb
13101    End
13102   
13103    Geometry = CYLINDER
13104    GeometryMajorRadius = 10.0
13105    GeometryMinorRadius = 10.0
13106    GeometryHeight = 12.0
13107    GeometryIsSmall = Yes
13108    Shadow = SHADOW_DECAL
13109    ShadowSizeX = 14
13110    ShadowSizeY = 14
13111    ShadowTexture = ShadowI;
13112    BuildCompletion = APPEARS_AT_RALLY_POINT
13113  
13114  End
13115  
13116  
13117  
13118  
13119  
13120  
13121  ;------------------------------------------------------------------------------
13122  Object Demo_GLAInfantryTerrorist
13123  
13124  ; *** ART Parameters ***
13125    SelectPortrait         = SUTerrorist_L
13126    ButtonImage            = SUTerrorist
13127    
13128    UpgradeCameo1 = Demo_Upgrade_SuicideBomb
13129    ;UpgradeCameo2 = NONE
13130    ;UpgradeCameo3 = NONE
13131    ;UpgradeCameo4 = NONE
13132    ;UpgradeCameo5 = NONE
13133  
13134    Draw = W3DModelDraw ModuleTag_01
13135      OkToChangeModelColor = Yes
13136      DefaultConditionState
13137        Model = UITRST_SKN
13138        IdleAnimation = UITRST_SKL.UITRST_STA 0 25
13139        ;Regular spice animations
13140        IdleAnimation = UITRST_SKL.UITRST_IDA
13141        IdleAnimation = UITRST_SKL.UITRST_IDB
13142        AnimationMode = ONCE
13143        TransitionKey = TRANS_Stand
13144      End
13145  
13146      ConditionState = REALLYDAMAGED
13147        Animation = UITRST_SKL.UITRST_STA
13148        AnimationMode = LOOP
13149        TransitionKey = TRANS_Stand
13150      End
13151  
13152      ConditionState = FREEFALL
13153        Animation = UITRST_SKL.UITRST_PFL
13154        AnimationMode = LOOP
13155        TransitionKey = TRANS_Falling
13156      End
13157      AliasConditionState = FREEFALL REALLYDAMAGED
13158      AliasConditionState = FREEFALL DYING
13159  
13160      ConditionState = PARACHUTING
13161        Animation = UITRST_SKL.UITRST_PHG
13162        AnimationMode = LOOP
13163        Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME  ; our bone positions should come from the last frame, rather than the first
13164        TransitionKey = TRANS_Chute
13165      End
13166      AliasConditionState = PARACHUTING REALLYDAMAGED
13167      AliasConditionState = PARACHUTING DYING
13168  
13169      ConditionState = MOVING
13170        Animation = UITRST_SKL.UITRST_RNA 15
13171        AnimationMode = LOOP
13172        Flags = RANDOMSTART
13173        TransitionKey = None
13174        ParticleSysBone   = None InfantryDustTrails
13175      End
13176      AliasConditionState = MOVING REALLYDAMAGED
13177  
13178      ConditionState = ATTACKING MOVING
13179        Animation = UITRST_SKL.UITRST_RNB 10
13180        AnimationMode = LOOP
13181        Flags = RANDOMSTART
13182        TransitionKey = None
13183      End
13184      AliasConditionState = ATTACKING MOVING REALLYDAMAGED
13185  
13186      ConditionState = PREATTACK_A
13187        Animation = UITRST_SKL.UITRST_ATA
13188        AnimationMode = ONCE
13189      End
13190      AliasConditionState = PREATTACK_A MOVING
13191   
13192      ConditionState = DYING
13193        Animation = UITRST_SKL.UITRST_DTA
13194        Animation = UITRST_SKL.UITRST_DTC
13195        AnimationMode = ONCE
13196        TransitionKey = TRANS_Dying
13197      End
13198  
13199      TransitionState = TRANS_Dying TRANS_Flailing
13200        Animation = UITRST_SKL.UITRST_ADTE1
13201        AnimationMode = ONCE
13202      End
13203  
13204      ConditionState = DYING EXPLODED_FLAILING
13205        Animation = UITRST_SKL.UITRST_ADTE2
13206        AnimationMode = LOOP
13207        TransitionKey = TRANS_Flailing
13208      End
13209  
13210      ConditionState = DYING EXPLODED_BOUNCING
13211        Animation = UITRST_SKL.UITRST_ADTE3
13212        AnimationMode = ONCE
13213        TransitionKey = None
13214      End
13215  
13216      ConditionState = SPECIAL_CHEERING
13217        Animation = UITRST_SKL.UITRST_CHA
13218        AnimationMode = LOOP
13219      End
13220  
13221      TransitionState = TRANS_Falling TRANS_Chute
13222        Animation = UITRST_SKL.UITRST_POP
13223        AnimationMode = ONCE
13224        Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME  ; our bone positions should come from the last frame, rather than the first
13225      End
13226  
13227      TransitionState = TRANS_Chute TRANS_Stand
13228        Animation = UITRST_SKL.UITRST_PTD
13229        AnimationMode = ONCE
13230      End
13231  
13232    End
13233  
13234    ; ***DESIGN parameters ***
13235    DisplayName      = OBJECT:Terrorist
13236    Side = GLADemolitionGeneral
13237    EditorSorting = INFANTRY
13238    TransportSlotCount = 1                 ;how many "slots" we take in a transport (0 == not transportable)
13239    WeaponSet
13240      Conditions = None 
13241      ;Kill himself so we can use FireWeaponWhenDead to fire the real weapon -- and use UNRESISTABLE
13242      ;damage to do ini logic for type of death to play -- unresistable for success.
13243      Weapon = PRIMARY TerroristSuicideWeapon 
13244    End
13245    ArmorSet
13246      Conditions      = None
13247      Armor           = DemoGenTerroristArmor
13248      DamageFX        = InfantryDamageFX
13249    End
13250    VisionRange = 150
13251    ShroudClearingRange = 200
13252    Prerequisites
13253      Object = Demo_GLABarracks
13254    End
13255    BuildCost = 200
13256    BuildTime = 5.0          ;in seconds    
13257    CrushableLevel         = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
13258    CommandSet    = Demo_GLAInfantryTerroristCommandSet
13259  
13260    ; *** AUDIO Parameters ***
13261    VoiceSelect = TerroristVoiceSelect
13262    VoiceMove = TerroristVoiceMove
13263    VoiceAttack = TerroristVoiceAttack
13264    VoiceFear = TerroristVoiceFear
13265    VoiceGuard = TerroristVoiceMove
13266    UnitSpecificSounds
13267      VoiceGarrison         = TerroristVoiceMove
13268      VoiceCreate           = TerroristVoiceCreate
13269      VoiceEnter            = TerroristVoiceEnter
13270      VoiceEnterHostile     = TerroristVoiceEnterHostile
13271      VoiceGetHealed      = TerroristVoiceMove
13272    End
13273  
13274    ; *** ENGINEERING Parameters ***
13275    RadarPriority = UNIT
13276    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SALVAGER SCORE
13277  
13278    Body = ActiveBody ModuleTag_02
13279      MaxHealth       = 120.0
13280      InitialHealth   = 120.0
13281    End
13282  
13283    ExperienceValue     = 20 20 20 20  ; Experience point value at each level
13284  
13285    Behavior = AIUpdateInterface ModuleTag_03
13286      AutoAcquireEnemiesWhenIdle = Yes
13287    End
13288    Behavior = CommandButtonHuntUpdate  ModuleTag_CBH01 ; allows use of command button hunt script with this unit. 
13289    End
13290    Locomotor = SET_NORMAL FastHumanLocomotor
13291    Behavior = PhysicsBehavior ModuleTag_04
13292      Mass = 5.0
13293    End
13294  
13295    ;Kris
13296    Behavior = ConvertToCarBombCrateCollide       ModuleTag_06
13297      RequiredKindOf    = VEHICLE      ; we only give our bonus to VEHICLEs we collide with
13298      ;ForbiddenKindOf  = TRANSPORT DOZER  ; but not to TRANSPORTs or DOZERs!
13299      FXList            = FX_MakeCarBombSuccess
13300    End
13301   
13302    Behavior = SquishCollide ModuleTag_07
13303      ;nothing
13304    End
13305  
13306  ; --- begin Death modules ---
13307    Behavior = SlowDeathBehavior ModuleTag_Death01
13308      DeathTypes          = ALL  -SUICIDED -POISONED -POISONED_BETA -POISONED_GAMMA
13309      SinkDelay           = 3000
13310      SinkRate            = 0.5     ; in Dist/Sec
13311      DestructionDelay    = 8000
13312      FX                  = INITIAL FX_TerroristDie
13313    End
13314  
13315  
13316    ;POISON_DEATHS POISON_DEATHS POISON_DEATHS POISON_DEATHS
13317    Behavior = SlowDeathBehavior ModuleTag_Death02
13318      DeathTypes          = NONE +POISONED
13319      DestructionDelay    = 0
13320      FX                  = INITIAL FX_DieByToxinGLA
13321      OCL                 = INITIAL OCL_ToxicInfantry_TerroristOnly
13322    End
13323    Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag
13324      DeathTypes          = NONE +POISONED_BETA
13325      DestructionDelay    = 0
13326      FX                  = INITIAL FX_DieByToxinGLA
13327      OCL                 = INITIAL OCL_ToxicInfantryBeta_TerroristOnly ;you'll have to create this OCL and make it use the blue guys instead of green ones
13328    End
13329    Behavior = SlowDeathBehavior ModuleTag_Death77
13330      DeathTypes          = NONE +POISONED_GAMMA
13331      DestructionDelay    = 0
13332      FX                  = INITIAL FX_DieByToxinGLA
13333      OCL                 = INITIAL OCL_ToxicInfantryGamma_TerroristOnly
13334    End
13335    ;POISON_DEATHS POISON_DEATHS POISON_DEATHS POISON_DEATHS
13336  
13337  
13338    ; I have just pulled my ripcord, and this ain't no parachute!
13339    Behavior = SlowDeathBehavior ModuleTag_Death07
13340      DeathTypes          = NONE +SUICIDED
13341      SinkDelay           = 3000
13342      SinkRate            = 0.5     ; in Dist/Sec
13343      DestructionDelay    = 8000
13344      FX                  = INITIAL FX_TerroristExplode
13345      FlingForce          = 8
13346      FlingForceVariance  = 3
13347      FlingPitch          = 60
13348      FlingPitchVariance  = 10
13349    End
13350  
13351    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death08
13352      DeathWeapon   = Demo_SuicideDynamitePack
13353      StartsActive  = Yes                      ; turned on by upgrade
13354      DeathTypes = NONE +SUICIDED
13355    End
13356  
13357  
13358  ; --- end Death modules ---
13359  
13360    Behavior = PoisonedBehavior ModuleTag_14
13361      PoisonDamageInterval = 100  ; Every this many msec I will retake the poison damage dealt me...
13362      PoisonDuration = 3000       ; ... for this long after last hit by poison damage
13363    End
13364   
13365    Geometry = CYLINDER
13366    GeometryMajorRadius = 10.0
13367    GeometryMinorRadius = 10.0
13368    GeometryHeight = 12.0
13369    GeometryIsSmall = Yes
13370    Shadow = SHADOW_DECAL
13371    ShadowSizeX = 14;
13372    ShadowSizeY = 14;
13373    ShadowTexture = ShadowI;
13374    BuildCompletion = APPEARS_AT_RALLY_POINT
13375  
13376  End
13377  
13378  
13379  
13380  
13381  
13382  
13383  
13384  
13385  ;------------------------------------------------------------------------------
13386  ;------------------------------------------------------------------------------
13387  Object Demo_GLAInfantryAngryMobNexus 
13388  
13389  ;**** ART Parameters **************************
13390    SelectPortrait         = SUAngryMob_L
13391    ButtonImage            = SUAngryMob
13392    
13393    UpgradeCameo1 = Upgrade_GLAArmTheMob
13394    ;UpgradeCameo2 = NONE
13395    ;UpgradeCameo3 = NONE
13396    ;UpgradeCameo4 = NONE
13397    ;UpgradeCameo5 = NONE
13398    
13399    Draw = W3DModelDraw ModuleTag_01
13400      OkToChangeModelColor = Yes
13401      DefaultConditionState
13402        Model = None
13403  ;      Model = AVBomber_B
13404      End
13405    End
13406  
13407  
13408  ;****DESIGN parameters **************************
13409  
13410    DisplayName      = OBJECT:AngryMobNexus
13411    Side = GLADemolitionGeneral
13412  
13413    RadarPriority       = NOT_ON_RADAR
13414  
13415    EditorSorting   = INFANTRY
13416    TransportSlotCount = 0                 ;how many "slots" we take in a transport (0 == not transportable)
13417  
13418    WeaponSet
13419      Conditions = None 
13420      Weapon = PRIMARY GLAAngryMobNexusHarmlessWeapon
13421      Weapon = SECONDARY GLAAngryMobNexusHarmlessWeapon
13422      Weapon = TERTIARY GLAAngryMobNexusHarmlessWeapon
13423    End
13424  
13425  
13426    ArmorSet
13427      Conditions      = None
13428      Armor           = InvulnerableAllArmor
13429      DamageFX        = None
13430    End
13431  
13432    BuildCost       = 800
13433    BuildTime       = 15.0          ;in seconds    
13434    VisionRange     = 150  ; it can scout for the spawn
13435    ShroudClearingRange = 0
13436  
13437    Prerequisites
13438      Object = Demo_GLABarracks
13439      Object = Demo_GLAPalace
13440    End
13441  
13442    ExperienceValue    = 5 5 5 5 ;Experience point value at each level
13443  
13444    IsTrainable     = No
13445  
13446  
13447  
13448    CommandSet    = Demo_GLAInfantryAngryMobCommandSet;
13449  
13450  ;**** AUDIO Parameters *****************************
13451    VoiceSelect = AngryMobVoiceSelect
13452    VoiceMove = AngryMobVoiceMove
13453    VoiceGuard = AngryMobVoiceMove
13454    VoiceAttack = AngryMobVoiceAttack
13455    SoundMoveStart = NoSound
13456    SoundAmbient = AngryMobAmbientLoop
13457    SoundAmbientRubble = NoSound
13458    UnitSpecificSounds
13459      VoiceCreate          = AngryMobVoiceCreate
13460    End
13461  
13462  
13463  ;**** ENGINEERING Parameters ******************************
13464  
13465    RadarPriority = UNIT
13466    KindOf = PRELOAD CAN_ATTACK INFANTRY MOB_NEXUS ATTACK_NEEDS_LINE_OF_SIGHT NO_COLLIDE SELECTABLE SCORE
13467    Body = ImmortalBody ModuleTag_02
13468      MaxHealth       = 99999.0
13469      InitialHealth   = 99999.0
13470    End
13471  
13472    Behavior = AIUpdateInterface ModuleTag_03
13473      AutoAcquireEnemiesWhenIdle = Yes
13474    End
13475  
13476    Locomotor = SET_NORMAL AngryMobNexusLocomotor ;Important! don't make the Nexus any faster!
13477    Locomotor = SET_WANDER AngryMobNexusLocomotor ;Important! don't make the Nexus any faster!
13478    Locomotor = SET_PANIC AngryMobNexusLocomotor ;Important! don't make the Nexus any faster!
13479  
13480  ;  Locomotor = SET_NORMAL WanderHumanLocomotor ;Important! don't make the Nexus any faster!
13481  ;  Locomotor = SET_WANDER WanderHumanLocomotor ;Important! don't make the Nexus any faster!
13482  ;  Locomotor = SET_PANIC WanderHumanLocomotor ;Important! don't make the Nexus any faster!
13483  
13484    Behavior = PhysicsBehavior ModuleTag_04
13485      Mass = 50.0
13486    End
13487  
13488    Behavior            = SpawnBehavior ModuleTag_05
13489      SpawnNumber       = 10
13490      SpawnReplaceDelay = 30000 ; 30 seconds
13491  
13492          SpawnTemplateName = GLAInfantryAngryMobPistol01 ; Aladdin
13493          SpawnTemplateName = GLAInfantryAngryMobRock02 ; Woman in the Gypsy Costume
13494          SpawnTemplateName = GLAInfantryAngryMobMolotov02 ; The Lady with the hot sauce
13495          SpawnTemplateName = GLAInfantryAngryMobPistol03 ; Skinny Guy with the Green Beret
13496          SpawnTemplateName = GLAInfantryAngryMobRock04 ; Fat guy with the tank top
13497          SpawnTemplateName = GLAInfantryAngryMobMolotov02 ; The Lady with the hot sauce
13498          SpawnTemplateName = GLAInfantryAngryMobPistol05 ; The robed dude with the Man-Veil
13499  
13500  
13501  
13502      ExitByBudding = Yes;!
13503  
13504      InitialBurst = 5 ; the first set of 5 will not delay
13505      OneShot     = No
13506      AggregateHealth = Yes
13507      SlavesHaveFreeWill = No
13508    End
13509  
13510    Behavior = QueueProductionExitUpdate ModuleTag_06
13511      UnitCreatePoint   = X:  0.0  Y:  0.0   Z:0.0
13512      NaturalRallyPoint = X: 0.0  Y:  0.0   Z:0.0
13513      ExitDelay     = 5000 ; 5 sec
13514      InitialBurst = 5 ; the first set of 5 will not delay
13515    End
13516  
13517    Behavior = DestroyDie ModuleTag_07
13518      DeathTypes = ALL
13519    End
13520  
13521    Geometry = CYLINDER
13522    GeometryMajorRadius = 1.0
13523    GeometryMinorRadius = 1.0
13524    GeometryHeight = 1.0     
13525    GeometryIsSmall = Yes 
13526    Shadow = SHADOW_VOLUME
13527  
13528  End
13529  
13530  
13531  
13532  
13533  
13534  ;------------------------------------------------------------------------------
13535  ;------------------------------------------------------------------------------
13536  Object Demo_GLAInfantryAngryMobPistol01
13537  
13538  ;**** ART Parameters ***
13539    Draw = W3DModelDraw DrawTag_01
13540      OkToChangeModelColor = Yes
13541  
13542      ; WHILE CARRYING PISTOL
13543      ;---------------------------------------------------------
13544      DefaultConditionState ;Idle with Pistol Holstered
13545        Model = UIMOB01_SKN
13546        IdleAnimation = UIMOB01_SKL.UIMOB01_IDA1 0 12
13547        IdleAnimation = UIMOB01_SKL.UIMOB01_IDA2 0 5
13548        IdleAnimation = UIMOB01_SKL.UIMOB01_CHA  0 5
13549        IdleAnimation = UIMOB01_SKL.UIMOB01_STA  0 5
13550        AnimationMode = ONCE
13551        AnimationSpeedFactorRange 0.9 1.1
13552        TransitionKey = TRANS_STAND_A
13553  
13554        WeaponFireFXBone = PRIMARY Muzzle
13555        WeaponMuzzleFlash = PRIMARY MuzzleFX
13556        WeaponFireFXBone = SECONDARY MuzzleAK
13557        WeaponMuzzleFlash = SECONDARY MuzzleAKFX
13558      End
13559  
13560      ; Drawing pistol
13561      ConditionState  = PREATTACK_A
13562        Animation     = UIMOB01_SKL.UIMOB01_ATA1_ST ; start firing
13563        AnimationMode = ONCE
13564      End
13565      AliasConditionState = PREATTACK_A FIRING_A
13566      AliasConditionState = PREATTACK_A BETWEEN_FIRING_SHOTS_A
13567  
13568      ; Firing pistol
13569      ConditionState = FIRING_A
13570        Animation = UIMOB01_SKL.UIMOB01_ATA1_LP ; looping firing
13571        AnimationMode = LOOP
13572        TransitionKey = TRANS_FIRING_A
13573      End
13574      AliasConditionState  = BETWEEN_FIRING_SHOTS_A
13575      
13576      ConditionState  = RELOADING_A
13577        Animation     = UIMOB01_SKL.UIMOB01_ATA1_ED ; end firing
13578        AnimationMode = ONCE
13579      End
13580  
13581      ; This transition allows him to put his gun away when he's finished attacking.
13582      TransitionState = TRANS_FIRING_A TRANS_STAND_A
13583        Animation     = UIMOB01_SKL.UIMOB01_ATA1_ED ; end firing
13584        AnimationMode = ONCE
13585      End
13586  
13587      ConditionState = MOVING
13588        Animation = UIMOB01_SKL.UIMOB01_RNA 
13589        AnimationMode = LOOP
13590        Flags = RANDOMSTART
13591        TransitionKey   = MOVING
13592        ParticleSysBone   = None InfantryDustTrails
13593      End
13594      AliasConditionState = MOVING RELOADING_A
13595      AliasConditionState = MOVING PREATTACK_A
13596      AliasConditionState = MOVING FIRING_A
13597      AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A
13598      AliasConditionState = MOVING RELOADING_C RELOADING_A 
13599      AliasConditionState = MOVING PREATTACK_C BETWEEN_FIRING_SHOTS_A 
13600  
13601      ConditionState = DYING
13602        Animation = UIMOB01_SKL.UIMOB01_DA1    
13603        Animation = UIMOB01_SKL.UIMOB01_DA2
13604        AnimationMode = ONCE
13605        TransitionKey = TRANS_Dying
13606      End
13607  
13608  
13609      ConditionState = SPECIAL_CHEERING
13610        Animation = UIMOB01_SKL.UIMOB01_CHA
13611        AnimationMode = ONCE
13612      End
13613  
13614      ;--------------------------------------------------------
13615      ; TRANSITION FROM PISTOL TO AK47
13616      TransitionState = TRANS_STAND_A TRANS_STAND_AK
13617        Animation = UIMOB01_SKL.UIMOB01_TA-D
13618        AnimationMode = ONCE
13619      End
13620  
13621      ; WHILE CARRYING AK47 
13622      ;---------------------------------------------------------
13623      ConditionState WEAPONSET_PLAYER_UPGRADE ;Idle with AK Slung
13624        Model = UIMOB01_SKN
13625        IdleAnimation = UIMOB01_SKL.UIMOB01_IDD1 0 6
13626        IdleAnimation = UIMOB01_SKL.UIMOB01_IDD2 0 6
13627        IdleAnimation = UIMOB01_SKL.UIMOB01_CHD  0 6
13628        IdleAnimation = UIMOB01_SKL.UIMOB01_STD
13629        AnimationMode = ONCE
13630        AnimationSpeedFactorRange 0.9 1.1
13631        TransitionKey = TRANS_STAND_AK
13632      End
13633  
13634      ConditionState = MOVING WEAPONSET_PLAYER_UPGRADE
13635        Animation = UIMOB01_SKL.UIMOB01_RND 
13636        AnimationMode = LOOP
13637        Flags = RANDOMSTART
13638        TransitionKey   = MOVING_AK
13639      End
13640  
13641      ConditionState = DYING WEAPONSET_PLAYER_UPGRADE
13642        Animation = UIMOB01_SKL.UIMOB01_DD1    
13643        Animation = UIMOB01_SKL.UIMOB01_DD2
13644        AnimationMode = ONCE
13645        TransitionKey = TRANS_Dying
13646      End
13647  
13648      ConditionState = SPECIAL_CHEERING WEAPONSET_PLAYER_UPGRADE
13649        Animation = UIMOB01_SKL.UIMOB01_CHD
13650        AnimationMode = ONCE
13651      End
13652  
13653      ; Drawing AK47
13654      ConditionState  = PREATTACK_B WEAPONSET_PLAYER_UPGRADE
13655        Animation     = UIMOB01_SKL.UIMOB01_ATD1_ST ; start firing
13656        AnimationMode = ONCE
13657      End
13658      AliasConditionState = PREATTACK_B FIRING_B WEAPONSET_PLAYER_UPGRADE
13659      AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B WEAPONSET_PLAYER_UPGRADE
13660  
13661      ; Firing Gun
13662      ConditionState = FIRING_B WEAPONSET_PLAYER_UPGRADE
13663        Animation = UIMOB01_SKL.UIMOB01_ATD1_LP ; looping firing
13664        AnimationMode = LOOP
13665        WeaponFireFXBone = SECONDARY MuzzleAK
13666        WeaponMuzzleFlash = SECONDARY MuzzleAKFX
13667        TransitionKey = TRANS_FIRING_AK
13668      End
13669      AliasConditionState  = BETWEEN_FIRING_SHOTS_B WEAPONSET_PLAYER_UPGRADE
13670  
13671  
13672      ConditionState  = RELOADING_B WEAPONSET_PLAYER_UPGRADE
13673        Animation     = UIMOB01_SKL.UIMOB01_ATD1_ED ; end firing
13674        AnimationMode = ONCE
13675      End
13676  
13677  
13678      ; This transition allows him to put his gun away when he's finished attacking.
13679      TransitionState = TRANS_FIRING_AK TRANS_STAND_AK
13680        Animation     = UIMOB01_SKL.UIMOB01_ATD1_ED ; end firing
13681        AnimationMode = ONCE
13682      End
13683  
13684  ;    ;Throwing bottle----------------------------------------------------------------
13685  ;    ConditionState = PREATTACK_C 
13686  ;      Animation     = UIMOB01_SKL.UIMOB01_ATCA_BF ; the wind up
13687  ;    End
13688  ;    AliasConditionState = PREATTACK_C FIRING_A
13689  ;    AliasConditionState = PREATTACK_C RELOADING_A
13690  ;    AliasConditionState = PREATTACK_C BETWEEN_FIRING_SHOTS_A 
13691  ;
13692  ;    ConditionState = FIRING_C 
13693  ;      Animation     = UIMOB01_SKL.UIMOB01_ATCA_AF ; the release and follow-thru
13694  ;      TransitionKey = TRANS_THROW
13695  ;    End
13696  ;    AliasConditionState = FIRING_C BETWEEN_FIRING_SHOTS_A
13697  ;
13698  ;    ConditionState RELOADING_C
13699  ;      Animation =UIMOB01_SKL.UIMOB01_IDA1
13700  ;      WaitForStateToFinishIfPossible = TRANS_THROW ; universal hub for follow-thru
13701  ;    End
13702  ;    AliasConditionState = RELOADING_C RELOADING_A
13703  ;    AliasConditionState = RELOADING_C FIRING_A
13704  ;    AliasConditionState = RELOADING_C BETWEEN_FIRING_SHOTS_A
13705  
13706  
13707  ;    TransitionState = TRANSXXX TRANS_THROW
13708  ;      Animation     = UIMOB01_SKL.UIMOB01_XXXXXXXXputaway gun and take out bottle
13709  ;    End
13710  
13711  ;    TransitionState = TRANS_THROW TRANS_FIRING_A
13712  ;      Animation     = UIMOB01_SKL.UIMOB01_XXXXXXXXputaway bottle and get PISTOL
13713  ;    End
13714  
13715  ;    TransitionState = TRANSXXXAK TRANS_THROW
13716  ;      Animation     = UIMOB01_SKL.UIMOB01_XXXXXXXXputaway AK and take out bottle
13717  ;    End
13718  
13719  ;    TransitionState = TRANS_THROW TRANS_FIRING_AK
13720  ;      Animation     = UIMOB01_SKL.UIMOB01_XXXXXXXXputaway bottle and get AK
13721  ;    End
13722  
13723      ;--------------------------------------------------------
13724  
13725      TransitionState = TRANS_Dying TRANS_Flailing
13726        Animation = UIMOB01_SKL.UIMOB01_A_ADTE1
13727        Animation = UIMOB01_SKL.UIMOB01_D_ADTE1
13728        AnimationMode = ONCE
13729      End
13730  
13731      ConditionState = DYING EXPLODED_FLAILING
13732        Animation = UIMOB01_SKL.UIMOB01_A_ADTE2
13733        Animation = UIMOB01_SKL.UIMOB01_D_ADTE2
13734        AnimationMode = LOOP
13735        TransitionKey = TRANS_Flailing
13736      End
13737  
13738      ConditionState = DYING EXPLODED_BOUNCING
13739        Animation = UIMOB01_SKL.UIMOB01_A_ADTE3
13740        Animation = UIMOB01_SKL.UIMOB01_D_ADTE3
13741        AnimationMode = ONCE
13742        TransitionKey = None
13743      End
13744    End
13745  
13746  ;**** DESIGN parameters ***
13747  
13748    DisplayName      = OBJECT:AngryMob
13749    Side = GLADemolitionGeneral
13750    EditorSorting = INFANTRY
13751    TransportSlotCount = 0                 ;how many "slots" we take in a transport (0 == not transportable)
13752  
13753    WeaponSet
13754      Conditions = None 
13755      Weapon = PRIMARY GLAAngryMobPistolWeapon
13756      Weapon = SECONDARY None
13757      Weapon = TERTIARY TerroristSuicideNotARealWeapon
13758      AutoChooseSources = TERTIARY NONE
13759    End
13760  
13761    WeaponSet
13762      Conditions = PLAYER_UPGRADE 
13763      Weapon = PRIMARY GLAAngryMobAK47NoDamageWeapon ; for atttacking in AK-proof conditions
13764      Weapon = SECONDARY GLAAngryMobAK47Weapon
13765      Weapon = TERTIARY TerroristSuicideNotARealWeapon
13766      AutoChooseSources = TERTIARY NONE
13767    End
13768  
13769    ArmorSet
13770      Conditions      = None
13771      Armor           = HumanArmor
13772      DamageFX        = InfantryDamageFX
13773    End
13774  
13775    VisionRange = 150
13776    ShroudClearingRange = 150
13777    Prerequisites
13778      Object = Demo_GLABarracks
13779    End
13780    BuildCost = 100
13781    BuildTime = 0.0           
13782  
13783    ExperienceValue = 5 5 5 5    ;Experience point value at each level
13784    ExperienceRequired = 0 150 450 900  ;Experience points needed to gain each level
13785    IsTrainable = Yes             ;Can gain experience
13786    CrushableLevel         = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
13787  
13788    ; *** AUDIO Parameters ***
13789    VoiceSelect = NoSound 
13790    VoiceMove = NoSound   
13791    VoiceAttack = NoSound 
13792  
13793  ;**** ENGINEERING Parameters *** ;MOB01
13794    RadarPriority = UNIT
13795    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SALVAGER IGNORED_IN_GUI  ;NO_COLLIDE ;Lorenzen disables 
13796  
13797    Body = ActiveBody BodyTag_01
13798      MaxHealth       = 50.0
13799      InitialHealth   = 50.0
13800    End
13801  
13802    Behavior = AIUpdateInterface ModuleTag_03
13803      AutoAcquireEnemiesWhenIdle = Yes
13804    End
13805  
13806    Behavior = MobMemberSlavedUpdate ModuleTag_04
13807      MustCatchUpRadius   = 40
13808      NoNeedToCatchUpRadius = 15
13809      Squirrelliness = 0.05
13810      CatchUpCrisisBailTime = 30; this is in calls to this update, not in frames
13811    End
13812  
13813    Locomotor = SET_NORMAL AngryMobNormalLocomotor
13814    Locomotor = SET_WANDER AngryMobWanderLocomotor
13815    Locomotor = SET_PANIC AngryMobPanicLocomotor
13816  
13817    Behavior = PhysicsBehavior BehaviorTag_01
13818      Mass = 5.0
13819    End
13820  
13821    Behavior = SquishCollide ModuleTag_08
13822      ;nothing
13823    End
13824  
13825    Behavior = WeaponSetUpgrade UpgradeTag_01
13826      TriggeredBy = Upgrade_GLAArmTheMob
13827    End
13828  
13829  
13830  ; --- begin Death modules ---
13831    Behavior = SlowDeathBehavior DeathTag_01
13832      DeathTypes          = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA
13833      SinkDelay           = 3000
13834      SinkRate            = 0.5     ; in Dist/Sec
13835      DestructionDelay    = 8000
13836      FX                  = INITIAL FX_CivilianArabMaleDie
13837    End
13838    Behavior = SlowDeathBehavior DeathTag_02
13839      DeathTypes          = NONE +CRUSHED +SPLATTED
13840      SinkDelay           = 3000
13841      SinkRate            = 0.5     ; in Dist/Sec
13842      DestructionDelay    = 8000
13843      FX                  = INITIAL FX_GIDieCrushed
13844    End
13845    Behavior = SlowDeathBehavior DeathTag_03
13846      DeathTypes          = NONE +EXPLODED
13847      SinkDelay           = 3000
13848      SinkRate            = 0.5     ; in Dist/Sec
13849      DestructionDelay    = 8000
13850      FX                  = INITIAL FX_CivilianArabMaleDie
13851      FlingForce          = 8
13852      FlingForceVariance  = 3
13853      FlingPitch          = 60
13854      FlingPitchVariance  = 10
13855    End
13856    Behavior = SlowDeathBehavior DeathTag_04
13857      DeathTypes          = NONE +BURNED
13858      DestructionDelay    = 0
13859      FX                  = INITIAL FX_GIDie
13860      OCL                 = INITIAL OCL_FlamingInfantry
13861    End
13862    Behavior = SlowDeathBehavior ModuleTag_Death05
13863      DeathTypes          = NONE +POISONED
13864      DestructionDelay    = 0
13865      FX                  = INITIAL FX_DieByToxinGLA
13866      OCL                 = INITIAL OCL_ToxicInfantry
13867    End
13868    Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag
13869      DeathTypes          = NONE +POISONED_BETA
13870      DestructionDelay    = 0
13871      FX                  = INITIAL FX_DieByToxinGLA
13872      OCL                 = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones
13873    End
13874    Behavior = SlowDeathBehavior ModuleTag_Death77
13875      DeathTypes          = NONE +POISONED_GAMMA
13876      DestructionDelay    = 0
13877      FX                  = INITIAL FX_DieByToxinGLA
13878      OCL                 = INITIAL OCL_ToxicInfantryGamma
13879    End
13880  ; --- end Death modules ---
13881  
13882    Behavior = PoisonedBehavior BehaviorTag_02
13883      PoisonDamageInterval = 100  ; Every this many msec I will retake the poison damage dealt me...
13884      PoisonDuration = 3000       ; ... for this long after last hit by poison damage
13885    End
13886  
13887    Behavior = SlowDeathBehavior ModuleTag_Death_06
13888      DeathTypes          = NONE +SUICIDED +EXPLODED
13889      SinkDelay           = 3000
13890      SinkRate            = 0.5     ; in Dist/Sec
13891      DestructionDelay    = 8000
13892      FX                  = INITIAL FX_TerroristExplode
13893      FlingForce          = 8
13894      FlingForceVariance  = 3
13895      FlingPitch          = 60
13896      FlingPitchVariance  = 10
13897    End
13898  
13899    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death07
13900      DeathWeapon   = Demo_SuicideDynamitePack
13901      StartsActive  = Yes                      ; turned on by upgrade
13902      DeathTypes = NONE +SUICIDED
13903    End
13904  
13905  
13906    Geometry = CYLINDER
13907    GeometryMajorRadius = 4.0 ; very thin
13908    GeometryHeight = 12.0
13909    GeometryIsSmall = Yes
13910    Shadow = SHADOW_DECAL
13911    ShadowSizeX = 14;
13912    ShadowSizeY = 14;
13913    ShadowTexture = ShadowI;
13914    BuildCompletion = APPEARS_AT_RALLY_POINT
13915  
13916  End
13917  
13918  
13919  ;------------------------------------------------------------------------------
13920  ;------------------------------------------------------------------------------
13921  Object Demo_GLAInfantryAngryMobRock02
13922  
13923  ;**** ART Parameters ***
13924    Draw = W3DModelDraw ModuleTag_01
13925      OkToChangeModelColor = Yes
13926  
13927      ; WHILE CARRYING ROCK
13928      ;---------------------------------------------------------
13929      DefaultConditionState
13930        Model = UIMOB02_SKN
13931        IdleAnimation = UIMOB02_SKL.UIMOB02_IDB1 0 12
13932        IdleAnimation = UIMOB02_SKL.UIMOB02_IDB2 0 5
13933        IdleAnimation = UIMOB02_SKL.UIMOB02_CHB  0 5
13934        IdleAnimation = UIMOB02_SKL.UIMOB02_STB  0 12
13935        AnimationMode = ONCE
13936        AnimationSpeedFactorRange 0.9 1.1
13937        TransitionKey = TRANS_STAND_A
13938  
13939        ;WeaponFireFXBone  = PRIMARY   "UIMOB02 R HAND"
13940        ;WeaponMuzzleFlash = PRIMARY   "UIMOB02 R HAND"
13941        WeaponFireFXBone =  SECONDARY MuzzleAK
13942        WeaponMuzzleFlash = SECONDARY MuzzleAKFX
13943      End
13944  
13945  
13946      ; Drawing rock
13947      ConditionState  = PREATTACK_A
13948        Animation     = UIMOB02_SKL.UIMOB02_ATB2_BF ; wind up
13949        AnimationMode = ONCE
13950      End
13951      AliasConditionState = PREATTACK_A FIRING_A
13952      AliasConditionState = PREATTACK_A BETWEEN_FIRING_SHOTS_A
13953  
13954      ; throwing rock
13955      ConditionState = FIRING_A
13956        Animation = UIMOB02_SKL.UIMOB02_ATB1_AF ; throw
13957        Animation = UIMOB02_SKL.UIMOB02_ATB2_AF ; throw
13958        AnimationMode = ONCE
13959        TransitionKey = TRANS_FIRING_A
13960      End
13961      
13962      ConditionState = BETWEEN_FIRING_SHOTS_A
13963        Animation         = UIMOB02_SKL.UIMOB02_STB
13964        AnimationMode     = ONCE
13965        ; this is basically a trick: this guy has a nontrivial animation for firing,
13966        ; and a long recycle time between shots. we want him to finish his fire animation
13967        ; (unless he's ordered to do something else), so this is just a handy trick that
13968        ; says, "if the previous state had this transition key, allow it to finish before
13969        ; switching to us, if possible".
13970        WaitForStateToFinishIfPossible = TRANS_FIRING_A
13971      End
13972      AliasConditionState = RELOADING_A
13973  
13974  
13975      ConditionState = MOVING
13976        Animation = UIMOB02_SKL.UIMOB02_RNB 
13977        AnimationMode = LOOP
13978        Flags = RANDOMSTART
13979        TransitionKey   = MOVING
13980        ParticleSysBone   = None InfantryDustTrails
13981      End
13982  
13983      ConditionState = DYING
13984        Animation = UIMOB02_SKL.UIMOB02_DB1    
13985        Animation = UIMOB02_SKL.UIMOB02_DB2
13986        AnimationMode = ONCE
13987        TransitionKey = TRANS_Dying
13988      End
13989  
13990      ConditionState = SPECIAL_CHEERING
13991        Animation = UIMOB02_SKL.UIMOB02_CHB
13992        Flags = RANDOMSTART
13993        AnimationMode = LOOP
13994      End
13995  
13996  
13997      ;--------------------------------------------------------
13998      ; TRANSITION FROM PISTOL TO AK47
13999      TransitionState = TRANS_STAND_A TRANS_STAND_AK
14000        Animation = UIMOB02_SKL.UIMOB02_TB-D
14001        AnimationMode = ONCE
14002      End
14003  
14004  
14005      ; WHILE CARRYING AK47 
14006      ;---------------------------------------------------------
14007      ConditionState WEAPONSET_PLAYER_UPGRADE ;Idle with AK Slung
14008        Model = UIMOB02_SKN
14009        IdleAnimation = UIMOB02_SKL.UIMOB02_IDD1 0 6
14010        IdleAnimation = UIMOB02_SKL.UIMOB02_IDD2 0 6
14011        IdleAnimation = UIMOB02_SKL.UIMOB02_CHD  0 6
14012        IdleAnimation = UIMOB02_SKL.UIMOB02_STD
14013        AnimationMode = ONCE
14014        AnimationSpeedFactorRange 0.9 1.1
14015        TransitionKey = TRANS_STAND_AK
14016      End
14017  
14018      ConditionState = MOVING WEAPONSET_PLAYER_UPGRADE
14019        Animation = UIMOB02_SKL.UIMOB02_RND 
14020        AnimationMode = LOOP
14021        Flags = RANDOMSTART
14022        TransitionKey   = MOVING_AK
14023      End
14024  
14025      ConditionState = DYING WEAPONSET_PLAYER_UPGRADE
14026        Animation = UIMOB02_SKL.UIMOB02_DD1    
14027        Animation = UIMOB02_SKL.UIMOB02_DD2
14028        AnimationMode = ONCE
14029        TransitionKey = TRANS_Dying
14030      End
14031  
14032      ConditionState = SPECIAL_CHEERING WEAPONSET_PLAYER_UPGRADE
14033        Animation = UIMOB02_SKL.UIMOB02_CHD
14034        AnimationMode = ONCE
14035      End
14036  
14037      ; Drawing AK47
14038      ConditionState  = PREATTACK_B WEAPONSET_PLAYER_UPGRADE
14039        Animation     = UIMOB02_SKL.UIMOB02_ATD1_ST ; start firing
14040        AnimationMode = ONCE
14041      End
14042      AliasConditionState = PREATTACK_B FIRING_B WEAPONSET_PLAYER_UPGRADE
14043      AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B WEAPONSET_PLAYER_UPGRADE
14044  
14045      ; Firing Gun
14046      ConditionState = FIRING_B WEAPONSET_PLAYER_UPGRADE
14047        Animation = UIMOB02_SKL.UIMOB02_ATD1_LP ; looping firing
14048        AnimationMode = LOOP
14049        WeaponFireFXBone = SECONDARY MuzzleAK
14050        WeaponMuzzleFlash = SECONDARY MuzzleAKFX
14051        TransitionKey = TRANS_FIRING_AK
14052      End
14053      AliasConditionState  = BETWEEN_FIRING_SHOTS_B WEAPONSET_PLAYER_UPGRADE
14054  
14055  
14056      ConditionState  = RELOADING_B WEAPONSET_PLAYER_UPGRADE
14057        Animation     = UIMOB02_SKL.UIMOB02_ATD1_ED ; end firing
14058        AnimationMode = ONCE
14059      End
14060  
14061  
14062      ; This transition allows him to put his gun away when he's finished attacking.
14063      TransitionState = TRANS_FIRING_AK TRANS_STAND_AK
14064        Animation     = UIMOB02_SKL.UIMOB02_ATD1_ED ; end firing
14065        AnimationMode = ONCE
14066      End
14067  
14068  
14069  
14070  
14071      TransitionState = TRANS_Dying TRANS_Flailing
14072        Animation = UIMOB02_SKL.UIMOB02_B_ADTA1
14073        Animation = UIMOB02_SKL.UIMOB02_D_ADTA1
14074        AnimationMode = ONCE
14075      End
14076  
14077      ConditionState = DYING EXPLODED_FLAILING
14078        Animation = UIMOB02_SKL.UIMOB02_B_ADTA2
14079        Animation = UIMOB02_SKL.UIMOB02_D_ADTA2
14080        AnimationMode = LOOP
14081        TransitionKey = TRANS_Flailing
14082      End
14083  
14084      ConditionState = DYING EXPLODED_BOUNCING
14085        Animation = UIMOB02_SKL.UIMOB02_B_ADTA3
14086        Animation = UIMOB02_SKL.UIMOB02_D_ADTA3
14087        AnimationMode = ONCE
14088        TransitionKey = None
14089      End
14090  
14091  
14092    End
14093  
14094  
14095  ;**** DESIGN parameters ***
14096  
14097    DisplayName      = OBJECT:AngryMob
14098    Side = GLADemolitionGeneral
14099    EditorSorting = INFANTRY
14100    TransportSlotCount = 0                 ;how many "slots" we take in a transport (0 == not transportable)
14101  
14102    WeaponSet
14103      Conditions = None 
14104      Weapon = PRIMARY GLAAngryMobRockProjectileWeapon
14105      Weapon = SECONDARY None
14106      Weapon = TERTIARY TerroristSuicideNotARealWeapon
14107      AutoChooseSources = TERTIARY NONE
14108    End
14109  
14110    WeaponSet
14111      Conditions = PLAYER_UPGRADE 
14112      Weapon = PRIMARY GLAAngryMobAK47NoDamageWeapon ; for atttacking in AK-proof conditions
14113      Weapon = SECONDARY GLAAngryMobAK47Weapon
14114      Weapon = TERTIARY TerroristSuicideNotARealWeapon
14115      AutoChooseSources = TERTIARY NONE
14116    End
14117  
14118    ArmorSet
14119      Conditions      = None
14120      Armor           = HumanArmor
14121      DamageFX        = InfantryDamageFX
14122    End
14123  
14124    VisionRange = 150
14125    ShroudClearingRange = 150
14126    Prerequisites
14127      Object = Demo_GLABarracks
14128    End
14129    BuildCost = 100
14130    BuildTime = 0.0            
14131  
14132    ExperienceValue = 5 5 5 5    ;Experience point value at each level
14133    ExperienceRequired = 0 150 450 900  ;Experience points needed to gain each level
14134    IsTrainable = Yes             ;Can gain experience
14135    CrushableLevel         = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
14136  
14137    ; *** AUDIO Parameters ***
14138    VoiceSelect = NoSound 
14139    VoiceMove = NoSound   
14140    VoiceAttack = NoSound 
14141  
14142  ;**** ENGINEERING Parameters *** ;MOB02
14143    RadarPriority = UNIT
14144    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SALVAGER IGNORED_IN_GUI  ;NO_COLLIDE ;Lorenzen disables 
14145  
14146    Body = ActiveBody BodyTag_01
14147      MaxHealth       = 50.0
14148      InitialHealth   = 50.0
14149    End
14150  
14151    Behavior = AIUpdateInterface ModuleTag_03
14152      AutoAcquireEnemiesWhenIdle = Yes
14153    End
14154  
14155    Behavior = MobMemberSlavedUpdate ModuleTag_04
14156      MustCatchUpRadius   = 40
14157      NoNeedToCatchUpRadius = 15
14158      Squirrelliness = 0.05
14159      CatchUpCrisisBailTime = 30; this is in calls to this update, not in frames
14160    End
14161  
14162    Locomotor = SET_NORMAL AngryMobNormalLocomotor
14163    Locomotor = SET_WANDER AngryMobWanderLocomotor
14164    Locomotor = SET_PANIC AngryMobPanicLocomotor
14165  
14166    Behavior = PhysicsBehavior ModuleTag_05
14167      Mass = 5.0
14168    End
14169  
14170    Behavior = SquishCollide ModuleTag_08
14171      ;nothing
14172    End
14173  
14174    Behavior = WeaponSetUpgrade UpgradeTag_01
14175      TriggeredBy = Upgrade_GLAArmTheMob
14176    End
14177  
14178  
14179  ; --- begin Death modules ---
14180    Behavior = SlowDeathBehavior ModuleTag_Death01
14181      DeathTypes          = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA
14182      SinkDelay           = 3000
14183      SinkRate            = 0.5     ; in Dist/Sec
14184      DestructionDelay    = 8000
14185      FX                  = INITIAL FX_CivilianArabFemaleDie
14186    End
14187    Behavior = SlowDeathBehavior ModuleTag_Death02
14188      DeathTypes          = NONE +CRUSHED +SPLATTED
14189      SinkDelay           = 3000
14190      SinkRate            = 0.5     ; in Dist/Sec
14191      DestructionDelay    = 8000
14192      FX                  = INITIAL FX_GIDieCrushed
14193    End
14194    Behavior = SlowDeathBehavior ModuleTag_Death03
14195      DeathTypes          = NONE +EXPLODED
14196      SinkDelay           = 3000
14197      SinkRate            = 0.5     ; in Dist/Sec
14198      DestructionDelay    = 8000
14199      FX                  = INITIAL FX_CivilianArabFemaleDie
14200      FlingForce          = 8
14201      FlingForceVariance  = 3
14202      FlingPitch          = 60
14203      FlingPitchVariance  = 10
14204    End
14205    Behavior = SlowDeathBehavior ModuleTag_Death04
14206      DeathTypes          = NONE +BURNED
14207      DestructionDelay    = 0
14208      FX                  = INITIAL FX_GIDie
14209      OCL                 = INITIAL OCL_FlamingInfantry
14210    End
14211    Behavior = SlowDeathBehavior ModuleTag_Death05
14212      DeathTypes          = NONE +POISONED
14213      DestructionDelay    = 0
14214      FX                  = INITIAL FX_DieByToxinGLA
14215      OCL                 = INITIAL OCL_ToxicInfantry
14216    End
14217    Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag
14218      DeathTypes          = NONE +POISONED_BETA
14219      DestructionDelay    = 0
14220      FX                  = INITIAL FX_DieByToxinGLA
14221      OCL                 = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones
14222    End
14223    Behavior = SlowDeathBehavior ModuleTag_Death07
14224      DeathTypes          = NONE +POISONED_GAMMA
14225      DestructionDelay    = 0
14226      FX                  = INITIAL FX_DieByToxinGLA
14227      OCL                 = INITIAL OCL_ToxicInfantryGamma
14228    End
14229  ; --- end Death modules ---
14230  
14231    Behavior = PoisonedBehavior ModuleTag_13
14232      PoisonDamageInterval = 100  ; Every this many msec I will retake the poison damage dealt me...
14233      PoisonDuration = 3000       ; ... for this long after last hit by poison damage
14234    End
14235  
14236    Behavior = SlowDeathBehavior ModuleTag_Death17
14237      DeathTypes          = NONE +SUICIDED +EXPLODED
14238      SinkDelay           = 3000
14239      SinkRate            = 0.5     ; in Dist/Sec
14240      DestructionDelay    = 8000
14241      FX                  = INITIAL FX_TerroristExplode
14242      FlingForce          = 8
14243      FlingForceVariance  = 3
14244      FlingPitch          = 60
14245      FlingPitchVariance  = 10
14246    End
14247  
14248    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death18
14249      DeathWeapon   = Demo_SuicideDynamitePack
14250      StartsActive  = Yes                      ; turned on by upgrade
14251      DeathTypes = NONE +SUICIDED
14252    End
14253  
14254   
14255    Geometry = CYLINDER
14256    GeometryMajorRadius = 4.0 ; very thin
14257    GeometryHeight = 12.0
14258    GeometryIsSmall = Yes
14259    Shadow = SHADOW_DECAL
14260    ShadowSizeX = 14;
14261    ShadowSizeY = 14;
14262    ShadowTexture = ShadowI;
14263    BuildCompletion = APPEARS_AT_RALLY_POINT
14264  
14265  End
14266  
14267  ;------------------------------------------------------------------------------
14268  ;------------------------------------------------------------------------------
14269  
14270  ObjectReskin Demo_GLAInfantryAngryMobPistol03 Demo_GLAInfantryAngryMobPistol01
14271  
14272  ;**** ART Parameters ***
14273    Draw = W3DModelDraw DrawTag_01
14274      OkToChangeModelColor = Yes
14275  
14276  
14277  
14278      ; WHILE CARRYING PISTOL
14279      ;---------------------------------------------------------
14280      DefaultConditionState ;Idle with Pistol Holstered
14281        Model = UIMOB03_SKN
14282        IdleAnimation = UIMOB03_SKL.UIMOB03_IDA1 0 12
14283        IdleAnimation = UIMOB03_SKL.UIMOB03_IDA2 0 5
14284        IdleAnimation = UIMOB03_SKL.UIMOB03_CHA  0 5
14285        IdleAnimation = UIMOB03_SKL.UIMOB03_STA  0 5
14286        AnimationMode = ONCE
14287        AnimationSpeedFactorRange 0.9 1.1
14288        TransitionKey = TRANS_STAND_A
14289  
14290        WeaponFireFXBone = PRIMARY Muzzle
14291        WeaponMuzzleFlash = PRIMARY MuzzleFX
14292        WeaponFireFXBone = SECONDARY MuzzleAK
14293        WeaponMuzzleFlash = SECONDARY MuzzleAKFX
14294        WeaponFireFXBone = TERTIARY "UIMOB03 R HAND"
14295      End
14296  
14297      ; Drawing pistol
14298      ConditionState  = PREATTACK_A
14299        Animation     = UIMOB03_SKL.UIMOB03_ATA1_ST ; start firing
14300        AnimationMode = ONCE
14301      End
14302      AliasConditionState = PREATTACK_A FIRING_A
14303      AliasConditionState = PREATTACK_A BETWEEN_FIRING_SHOTS_A
14304  
14305      ; Firing pistol
14306      ConditionState = FIRING_A
14307        Animation = UIMOB03_SKL.UIMOB03_ATA1_LP ; looping firing
14308        AnimationMode = LOOP
14309        TransitionKey = TRANS_FIRING_A
14310      End
14311      AliasConditionState  = BETWEEN_FIRING_SHOTS_A
14312  
14313      ConditionState  = RELOADING_A
14314        Animation     = UIMOB03_SKL.UIMOB03_ATA1_ED ; end firing
14315        AnimationMode = ONCE
14316      End
14317  
14318      ; This transition allows him to put his gun away when he's finished attacking.
14319      TransitionState = TRANS_FIRING_A TRANS_STAND_A
14320        Animation     = UIMOB03_SKL.UIMOB03_ATA1_ED ; end firing
14321        AnimationMode = ONCE
14322      End
14323  
14324      ConditionState = MOVING
14325        Animation = UIMOB03_SKL.UIMOB03_RNA 
14326        AnimationMode = LOOP
14327        Flags = RANDOMSTART
14328        TransitionKey   = MOVING
14329        ParticleSysBone   = None InfantryDustTrails
14330      End
14331      AliasConditionState = MOVING RELOADING_A
14332      AliasConditionState = MOVING PREATTACK_A
14333      AliasConditionState = MOVING FIRING_A
14334      AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A
14335      AliasConditionState = MOVING RELOADING_C RELOADING_A 
14336      AliasConditionState = MOVING PREATTACK_C BETWEEN_FIRING_SHOTS_A 
14337  
14338      ConditionState = DYING
14339        Animation = UIMOB03_SKL.UIMOB03_DA1    
14340        Animation = UIMOB03_SKL.UIMOB03_DA2
14341        AnimationMode = ONCE
14342        TransitionKey = TRANS_Dying
14343      End
14344  
14345  
14346      ConditionState = SPECIAL_CHEERING
14347        Animation = UIMOB03_SKL.UIMOB03_CHA
14348        AnimationMode = ONCE
14349      End
14350  
14351      ;--------------------------------------------------------
14352      ; TRANSITION FROM PISTOL TO AK47
14353      TransitionState = TRANS_STAND_A TRANS_STAND_AK
14354        Animation = UIMOB03_SKL.UIMOB03_TA-D
14355        AnimationMode = ONCE
14356      End
14357  
14358  
14359      ; WHILE CARRYING AK47 
14360      ;---------------------------------------------------------
14361      ConditionState WEAPONSET_PLAYER_UPGRADE ;Idle with AK Slung
14362        Model = UIMOB03_SKN
14363        IdleAnimation = UIMOB03_SKL.UIMOB03_IDD1 0 6
14364        IdleAnimation = UIMOB03_SKL.UIMOB03_IDD2 0 6
14365        IdleAnimation = UIMOB03_SKL.UIMOB03_CHD  0 6
14366        IdleAnimation = UIMOB03_SKL.UIMOB03_STD
14367        AnimationMode = ONCE
14368        AnimationSpeedFactorRange 0.9 1.1
14369        TransitionKey = TRANS_STAND_AK
14370      End
14371  
14372      ConditionState = MOVING WEAPONSET_PLAYER_UPGRADE
14373        Animation = UIMOB03_SKL.UIMOB03_RND 
14374        AnimationMode = LOOP
14375        Flags = RANDOMSTART
14376        TransitionKey   = MOVING_AK
14377      End
14378  
14379      ConditionState = DYING WEAPONSET_PLAYER_UPGRADE
14380        Animation = UIMOB03_SKL.UIMOB03_DD1    
14381        Animation = UIMOB03_SKL.UIMOB03_DD2
14382        AnimationMode = ONCE
14383        TransitionKey = TRANS_Dying
14384      End
14385  
14386      ConditionState = SPECIAL_CHEERING WEAPONSET_PLAYER_UPGRADE
14387        Animation = UIMOB03_SKL.UIMOB03_CHD
14388        AnimationMode = ONCE
14389      End
14390  
14391      ; Drawing AK47
14392      ConditionState  = PREATTACK_B WEAPONSET_PLAYER_UPGRADE
14393        Animation     = UIMOB03_SKL.UIMOB03_ATD_ST ; start firing
14394        AnimationMode = ONCE
14395      End
14396      AliasConditionState = PREATTACK_B FIRING_B WEAPONSET_PLAYER_UPGRADE
14397      AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B WEAPONSET_PLAYER_UPGRADE
14398  
14399      ; Firing Gun
14400      ConditionState = FIRING_B WEAPONSET_PLAYER_UPGRADE
14401        Animation = UIMOB03_SKL.UIMOB03_ATD_LP ; looping firing
14402        AnimationMode = LOOP
14403        WeaponFireFXBone = SECONDARY MuzzleAK
14404        WeaponMuzzleFlash = SECONDARY MuzzleAKFX
14405        TransitionKey = TRANS_FIRING_AK
14406      End
14407      AliasConditionState  = BETWEEN_FIRING_SHOTS_B WEAPONSET_PLAYER_UPGRADE
14408  
14409  
14410      ConditionState  = RELOADING_B WEAPONSET_PLAYER_UPGRADE
14411        Animation     = UIMOB03_SKL.UIMOB03_ATD_ED ; end firing
14412        AnimationMode = ONCE
14413      End
14414  
14415  
14416      ; This transition allows him to put his gun away when he's finished attacking.
14417      TransitionState = TRANS_FIRING_AK TRANS_STAND_AK
14418        Animation     = UIMOB03_SKL.UIMOB03_ATD_ED ; end firing
14419        AnimationMode = ONCE
14420      End
14421  
14422  
14423  ;    ;Throwing bottle----------------------------------------------------------------
14424  ;    ConditionState = PREATTACK_C 
14425  ;      Animation     = UIMOB03_SKL.UIMOB03_ATCA_BF ; the wind up
14426  ;    End
14427  ;    AliasConditionState = PREATTACK_C FIRING_A
14428  ;    AliasConditionState = PREATTACK_C RELOADING_A
14429  ;    AliasConditionState = PREATTACK_C BETWEEN_FIRING_SHOTS_A 
14430  ;
14431  ;    ConditionState = FIRING_C 
14432  ;      Animation     = UIMOB03_SKL.UIMOB03_ATCA_AF ; the release and follow-thru
14433  ;      TransitionKey = TRANS_THROW
14434  ;    End
14435  ;    AliasConditionState = FIRING_C BETWEEN_FIRING_SHOTS_A
14436  ;
14437  ;    ConditionState RELOADING_C
14438  ;      Animation =UIMOB03_SKL.UIMOB03_IDA1
14439  ;      WaitForStateToFinishIfPossible = TRANS_THROW ; universal hub for follow-thru
14440  ;
14441  ;    End
14442  ;    AliasConditionState = RELOADING_C RELOADING_A
14443  ;    AliasConditionState = RELOADING_C FIRING_A
14444  ;    AliasConditionState = RELOADING_C BETWEEN_FIRING_SHOTS_A
14445  
14446  
14447  ;    TransitionState = TRANSXXX TRANS_THROW
14448  ;      Animation     = UIMOB03_SKL.UIMOB03_XXXXXXXXputaway gun and take out bottle
14449  ;    End
14450  
14451  ;    TransitionState = TRANS_THROW TRANS_FIRING_A
14452  ;      Animation     = UIMOB03_SKL.UIMOB03_XXXXXXXXputaway bottle and get PISTOL
14453  ;    End
14454  
14455  ;    TransitionState = TRANSXXXAK TRANS_THROW
14456  ;      Animation     = UIMOB03_SKL.UIMOB03_XXXXXXXXputaway AK and take out bottle
14457  ;    End
14458  
14459  ;    TransitionState = TRANS_THROW TRANS_FIRING_AK
14460  ;      Animation     = UIMOB03_SKL.UIMOB03_XXXXXXXXputaway bottle and get AK
14461  ;    End
14462  
14463  
14464  
14465  
14466  
14467      ;--------------------------------------------------------
14468  
14469  
14470  
14471  
14472  
14473  
14474      TransitionState = TRANS_Dying TRANS_Flailing
14475        Animation = UIMOB03_SKL.UIMOB03_A_ADTD1
14476        Animation = UIMOB03_SKL.UIMOB03_D_ADTD1
14477        AnimationMode = ONCE
14478      End
14479  
14480      ConditionState = DYING EXPLODED_FLAILING
14481        Animation = UIMOB03_SKL.UIMOB03_A_ADTD2
14482        Animation = UIMOB03_SKL.UIMOB03_D_ADTD2
14483        AnimationMode = LOOP
14484        TransitionKey = TRANS_Flailing
14485      End
14486  
14487      ConditionState = DYING EXPLODED_BOUNCING
14488        Animation = UIMOB03_SKL.UIMOB03_A_ADTD3
14489        Animation = UIMOB03_SKL.UIMOB03_D_ADTD3
14490        AnimationMode = ONCE
14491        TransitionKey = None
14492      End
14493  
14494  
14495    End
14496  
14497  
14498    Geometry = CYLINDER
14499    GeometryMajorRadius = 3.0 ; very thin
14500    GeometryMinorRadius = 3.0 ; very thinD
14501    GeometryHeight = 12.0
14502    GeometryIsSmall = Yes
14503  
14504  End
14505  
14506  ;------------------------------------------------------------------------------
14507  ;------------------------------------------------------------------------------
14508  ObjectReskin Demo_GLAInfantryAngryMobRock04 Demo_GLAInfantryAngryMobRock02
14509  
14510  ;**** ART Parameters ***
14511    Draw = W3DModelDraw ModuleTag_01
14512      OkToChangeModelColor = Yes
14513  
14514      ; WHILE CARRYING ROCK
14515      ;---------------------------------------------------------
14516      DefaultConditionState
14517        Model = UIMOB04_SKN
14518        IdleAnimation = UIMOB04_SKL.UIMOB04_IDB1 0 12
14519        IdleAnimation = UIMOB04_SKL.UIMOB04_IDB2 0 5 
14520        IdleAnimation = UIMOB04_SKL.UIMOB04_CHB  0 5 
14521        IdleAnimation = UIMOB04_SKL.UIMOB04_STB  0 12
14522        AnimationMode = ONCE
14523        AnimationSpeedFactorRange 0.9 1.1
14524        TransitionKey = TRANS_STAND_A
14525        WaitForStateToFinishIfPossible TRANS_FIRING_A
14526  
14527        ;WeaponFireFXBone  = PRIMARY   "UIMOB04 R HAND"
14528        ;WeaponMuzzleFlash = PRIMARY   "UIMOB04 R HAND"
14529        WeaponFireFXBone =  SECONDARY MuzzleAK
14530        WeaponMuzzleFlash = SECONDARY MuzzleAKFX
14531      End
14532  
14533  
14534      ; Drawing rock
14535      ConditionState  = PREATTACK_A
14536        Animation     = UIMOB04_SKL.UIMOB04_ATB2_BF ; wind up
14537        AnimationMode = ONCE
14538        AnimationSpeedFactorRange 1.0 1.0
14539      End
14540      AliasConditionState = PREATTACK_A FIRING_A
14541      AliasConditionState = PREATTACK_A BETWEEN_FIRING_SHOTS_A
14542  
14543      ; throwing rock
14544      ConditionState = FIRING_A
14545        Animation = UIMOB04_SKL.UIMOB04_ATB1_AF ; throw
14546        Animation = UIMOB04_SKL.UIMOB04_ATB2_AF ; throw
14547        AnimationMode = ONCE
14548        TransitionKey = TRANS_FIRING_A
14549      End
14550  
14551      ConditionState = BETWEEN_FIRING_SHOTS_A
14552        Animation         = UIMOB04_SKL.UIMOB04_STB
14553        AnimationMode     = ONCE
14554        ; this is basically a trick: this guy has a nontrivial animation for firing,
14555        ; and a long recycle time between shots. we want him to finish his fire animation
14556        ; (unless he's ordered to do something else), so this is just a handy trick that
14557        ; says, "if the previous state had this transition key, allow it to finish before
14558        ; switching to us, if possible".
14559        WaitForStateToFinishIfPossible = TRANS_FIRING_A
14560      End
14561      AliasConditionState = RELOADING_A
14562  
14563      ConditionState = MOVING
14564        Animation = UIMOB04_SKL.UIMOB04_RUN 
14565        AnimationMode = LOOP
14566        Flags = RANDOMSTART
14567        TransitionKey   = MOVING
14568        ParticleSysBone   = None InfantryDustTrails
14569      End
14570  
14571      ConditionState = DYING
14572        Animation = UIMOB04_SKL.UIMOB04_DB1    
14573        Animation = UIMOB04_SKL.UIMOB04_DB2
14574        AnimationMode = ONCE
14575        TransitionKey = TRANS_Dying
14576      End
14577  
14578      ConditionState = SPECIAL_CHEERING
14579        Animation = UIMOB04_SKL.UIMOB04_CHB
14580        Flags = RANDOMSTART
14581        AnimationMode = LOOP
14582      End
14583  
14584  
14585  
14586  
14587  
14588  
14589  
14590  
14591      ;--------------------------------------------------------
14592      ; TRANSITION FROM PISTOL TO AK47
14593      TransitionState = TRANS_STAND_A TRANS_STAND_AK
14594        Animation = UIMOB04_SKL.UIMOB04_TB-D
14595        AnimationMode = ONCE
14596      End
14597  
14598  
14599      ; WHILE CARRYING AK47 
14600      ;---------------------------------------------------------
14601      ConditionState WEAPONSET_PLAYER_UPGRADE ;Idle with AK Slung
14602        Model = UIMOB04_SKN
14603        IdleAnimation = UIMOB04_SKL.UIMOB04_IDD1 0 6
14604        IdleAnimation = UIMOB04_SKL.UIMOB04_IDD2 0 6
14605        IdleAnimation = UIMOB04_SKL.UIMOB04_CHD  0 6
14606        IdleAnimation = UIMOB04_SKL.UIMOB04_STD
14607        AnimationMode = ONCE
14608        AnimationSpeedFactorRange 0.9 1.1
14609        TransitionKey = TRANS_STAND_AK
14610        WeaponFireFXBone = SECONDARY MuzzleAK
14611        WeaponMuzzleFlash = SECONDARY MuzzleAKFX
14612      End
14613  
14614      ConditionState = MOVING WEAPONSET_PLAYER_UPGRADE
14615        Animation = UIMOB04_SKL.UIMOB04_RND 
14616        AnimationMode = LOOP
14617        Flags = RANDOMSTART
14618        TransitionKey   = MOVING_AK
14619      End
14620  
14621      ConditionState = DYING WEAPONSET_PLAYER_UPGRADE
14622        Animation = UIMOB04_SKL.UIMOB04_DD1    
14623        Animation = UIMOB04_SKL.UIMOB04_DD2
14624        AnimationMode = ONCE
14625        TransitionKey = TRANS_Dying
14626      End
14627  
14628      ConditionState = SPECIAL_CHEERING WEAPONSET_PLAYER_UPGRADE
14629        Animation = UIMOB04_SKL.UIMOB04_CHD
14630        AnimationMode = ONCE
14631      End
14632  
14633      ; Drawing AK47
14634      ConditionState  = PREATTACK_B WEAPONSET_PLAYER_UPGRADE
14635        Animation     = UIMOB04_SKL.UIMOB04_ATD1_ST ; start firing
14636        AnimationMode = ONCE
14637      End
14638      AliasConditionState = PREATTACK_B FIRING_B WEAPONSET_PLAYER_UPGRADE
14639      AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B WEAPONSET_PLAYER_UPGRADE
14640  
14641      ; Firing Gun
14642      ConditionState = FIRING_B WEAPONSET_PLAYER_UPGRADE
14643        Animation = UIMOB04_SKL.UIMOB04_ATD1_LP ; looping firing
14644        AnimationMode = LOOP
14645        WeaponFireFXBone = PRIMARY MuzzleAK
14646        WeaponMuzzleFlash = PRIMARY MuzzleAKFX
14647        TransitionKey = TRANS_FIRING_AK
14648      End
14649      AliasConditionState  = BETWEEN_FIRING_SHOTS_B WEAPONSET_PLAYER_UPGRADE
14650  
14651  
14652      ConditionState  = RELOADING_B WEAPONSET_PLAYER_UPGRADE
14653        Animation     = UIMOB04_SKL.UIMOB04_ATD1_ED ; end firing
14654        AnimationMode = ONCE
14655      End
14656  
14657  
14658      ; This transition allows him to put his gun away when he's finished attacking.
14659      TransitionState = TRANS_FIRING_AK TRANS_STAND_AK
14660        Animation     = UIMOB04_SKL.UIMOB04_ATD1_ED ; end firing
14661        AnimationMode = ONCE
14662      End
14663  
14664  
14665  
14666  
14667  
14668  
14669  
14670  
14671  
14672  
14673      TransitionState = TRANS_Dying TRANS_Flailing
14674        Animation = UIMOB04_SKL.UIMOB04_B_ADTF1
14675        Animation = UIMOB04_SKL.UIMOB04_D_ADTF1
14676        AnimationMode = ONCE
14677      End
14678  
14679      ConditionState = DYING EXPLODED_FLAILING
14680        Animation = UIMOB04_SKL.UIMOB04_B_ADTF2
14681        Animation = UIMOB04_SKL.UIMOB04_D_ADTF2
14682        AnimationMode = LOOP
14683        TransitionKey = TRANS_Flailing
14684      End
14685  
14686      ConditionState = DYING EXPLODED_BOUNCING
14687        Animation = UIMOB04_SKL.UIMOB04_B_ADTF3
14688        Animation = UIMOB04_SKL.UIMOB04_D_ADTF3
14689        AnimationMode = ONCE
14690        TransitionKey = None
14691      End
14692  
14693  
14694    End
14695  
14696    Geometry = CYLINDER
14697    GeometryMajorRadius = 5.0 ; kinda thin
14698    GeometryMinorRadius = 5.0 ; kinda thinD
14699    GeometryHeight = 12.0
14700    GeometryIsSmall = Yes
14701  
14702  End
14703  
14704  ;------------------------------------------------------------------------------
14705  ;------------------------------------------------------------------------------
14706  ObjectReskin Demo_GLAInfantryAngryMobPistol05 Demo_GLAInfantryAngryMobPistol01
14707  
14708  ;**** ART Parameters ***
14709    Draw = W3DModelDraw DrawTag_01
14710      OkToChangeModelColor = Yes
14711  
14712  
14713  
14714      ; WHILE CARRYING PISTOL
14715      ;---------------------------------------------------------
14716      DefaultConditionState ;Idle with Pistol Holstered
14717        Model = UIMOB05_SKN
14718        IdleAnimation = UIMOB05_SKL.UIMOB05_IDA1 0 12
14719        IdleAnimation = UIMOB05_SKL.UIMOB05_IDA2 0 5
14720        IdleAnimation = UIMOB05_SKL.UIMOB05_CHA  0 5
14721        IdleAnimation = UIMOB05_SKL.UIMOB05_STA  0 5
14722        AnimationMode = ONCE
14723        AnimationSpeedFactorRange 0.9 1.1
14724        TransitionKey = TRANS_STAND_A
14725  
14726        WeaponFireFXBone = PRIMARY Muzzle01
14727        WeaponMuzzleFlash = PRIMARY Muzzle01
14728      End
14729  
14730      ; Drawing pistol
14731      ConditionState  = PREATTACK_A
14732        Animation     = UIMOB05_SKL.UIMOB05_ATA1_ST ; start firing
14733        AnimationMode = ONCE
14734      End
14735      AliasConditionState = PREATTACK_A FIRING_A
14736      AliasConditionState = PREATTACK_A BETWEEN_FIRING_SHOTS_A
14737  
14738      ; Firing pistol
14739      ConditionState = FIRING_A
14740        Animation = UIMOB05_SKL.UIMOB05_ATA1_LP ; looping firing
14741        AnimationMode = LOOP
14742        TransitionKey = TRANS_FIRING_A
14743      End
14744      AliasConditionState  = BETWEEN_FIRING_SHOTS_A
14745      
14746      ConditionState  = RELOADING_A
14747        Animation     = UIMOB05_SKL.UIMOB05_ATA1_ED ; end firing
14748        AnimationMode = ONCE
14749      End
14750  
14751      ; This transition allows him to put his gun away when he's finished attacking.
14752      TransitionState = TRANS_FIRING_A TRANS_STAND_A
14753        Animation     = UIMOB05_SKL.UIMOB05_ATA1_ED ; end firing
14754        AnimationMode = ONCE
14755      End
14756  
14757      ConditionState = MOVING
14758        Animation = UIMOB05_SKL.UIMOB05_RNA 
14759        AnimationMode = LOOP
14760        Flags = RANDOMSTART
14761        TransitionKey   = MOVING
14762        ParticleSysBone   = None InfantryDustTrails
14763      End
14764      AliasConditionState = MOVING RELOADING_A
14765      AliasConditionState = MOVING PREATTACK_A
14766      AliasConditionState = MOVING FIRING_A
14767      AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A
14768      AliasConditionState = MOVING RELOADING_C RELOADING_A 
14769      AliasConditionState = MOVING PREATTACK_C BETWEEN_FIRING_SHOTS_A 
14770  
14771      ConditionState = DYING
14772        Animation = UIMOB05_SKL.UIMOB05_DA1    
14773        Animation = UIMOB05_SKL.UIMOB05_DA2
14774        AnimationMode = ONCE
14775        TransitionKey = TRANS_Dying
14776      End
14777  
14778  
14779      ConditionState = SPECIAL_CHEERING
14780        Animation = UIMOB05_SKL.UIMOB05_CHA
14781        AnimationMode = ONCE
14782      End
14783  
14784      ;--------------------------------------------------------
14785  
14786      ; TRANSITION FROM PISTOL TO AK47
14787      TransitionState = TRANS_STAND_A TRANS_STAND_AK
14788        Animation = UIMOB05_SKL.UIMOB05_TA-D
14789        AnimationMode = ONCE
14790      End
14791  
14792  
14793      ; WHILE CARRYING AK47 
14794      ;---------------------------------------------------------
14795      ConditionState WEAPONSET_PLAYER_UPGRADE ;Idle with AK Slung
14796        Model = UIMOB05_SKN
14797        IdleAnimation = UIMOB05_SKL.UIMOB05_IDD1 0 6
14798        IdleAnimation = UIMOB05_SKL.UIMOB05_IDD2 0 6
14799        IdleAnimation = UIMOB05_SKL.UIMOB05_CHD  0 6
14800        IdleAnimation = UIMOB05_SKL.UIMOB05_STD
14801        AnimationMode = ONCE
14802        AnimationSpeedFactorRange 0.9 1.1
14803        TransitionKey = TRANS_STAND_AK
14804        WeaponFireFXBone = SECONDARY MuzzleAK
14805        WeaponMuzzleFlash = SECONDARY MuzzleAKFX
14806      End
14807  
14808      ConditionState = MOVING WEAPONSET_PLAYER_UPGRADE
14809        Animation = UIMOB05_SKL.UIMOB05_RND 
14810        AnimationMode = LOOP
14811        Flags = RANDOMSTART
14812        TransitionKey   = MOVING_AK
14813      End
14814  
14815      ConditionState = DYING WEAPONSET_PLAYER_UPGRADE
14816        Animation = UIMOB05_SKL.UIMOB05_DD1    
14817        Animation = UIMOB05_SKL.UIMOB05_DD2
14818        AnimationMode = ONCE
14819        TransitionKey = TRANS_Dying
14820      End
14821  
14822      ConditionState = SPECIAL_CHEERING WEAPONSET_PLAYER_UPGRADE
14823        Animation = UIMOB05_SKL.UIMOB05_CHD
14824        AnimationMode = ONCE
14825      End
14826  
14827      ; Drawing AK47
14828      ConditionState  = PREATTACK_B WEAPONSET_PLAYER_UPGRADE
14829        Animation     = UIMOB05_SKL.UIMOB05_ATD1_ST ; start firing
14830        AnimationMode = ONCE
14831      End
14832      AliasConditionState = PREATTACK_B FIRING_B WEAPONSET_PLAYER_UPGRADE
14833      AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B WEAPONSET_PLAYER_UPGRADE
14834  
14835      ; Firing Gun
14836      ConditionState = FIRING_B WEAPONSET_PLAYER_UPGRADE
14837        Animation = UIMOB05_SKL.UIMOB05_ATD1_LP ; looping firing
14838        AnimationMode = LOOP
14839        WeaponFireFXBone = PRIMARY MuzzleAK
14840        WeaponMuzzleFlash = PRIMARY MuzzleAKFX
14841        TransitionKey = TRANS_FIRING_AK
14842      End
14843      AliasConditionState  = BETWEEN_FIRING_SHOTS_B WEAPONSET_PLAYER_UPGRADE
14844  
14845  
14846      ConditionState  = RELOADING_B WEAPONSET_PLAYER_UPGRADE
14847        Animation     = UIMOB05_SKL.UIMOB05_ATD1_ED ; end firing
14848        AnimationMode = ONCE
14849      End
14850  
14851  
14852      ; This transition allows him to put his gun away when he's finished attacking.
14853      TransitionState = TRANS_FIRING_AK TRANS_STAND_AK
14854        Animation     = UIMOB05_SKL.UIMOB05_ATD1_ED ; end firing
14855        AnimationMode = ONCE
14856      End
14857  
14858  
14859  ;    ;Throwing bottle----------------------------------------------------------------
14860  ;    ConditionState = PREATTACK_C 
14861  ;      Animation     = UIMOB05_SKL.UIMOB05_ATCA_BF ; the wind up
14862  ;    End
14863  ;    AliasConditionState = PREATTACK_C FIRING_A
14864  ;    AliasConditionState = PREATTACK_C RELOADING_A
14865  ;    AliasConditionState = PREATTACK_C BETWEEN_FIRING_SHOTS_A 
14866  ;
14867  ;    ConditionState = FIRING_C 
14868  ;      Animation     = UIMOB05_SKL.UIMOB05_ATCA_AF ; the release and follow-thru
14869  ;      TransitionKey = TRANS_THROW
14870  ;    End
14871  ;    AliasConditionState = FIRING_C BETWEEN_FIRING_SHOTS_A
14872  ;
14873  ;    ConditionState RELOADING_C
14874  ;      Animation =UIMOB05_SKL.UIMOB05_IDA1
14875  ;      WaitForStateToFinishIfPossible = TRANS_THROW ; universal hub for follow-thru
14876  ;    End
14877  ;    AliasConditionState = RELOADING_C RELOADING_A
14878  ;    AliasConditionState = RELOADING_C FIRING_A
14879  ;    AliasConditionState = RELOADING_C BETWEEN_FIRING_SHOTS_A
14880  
14881  
14882  ;    TransitionState = TRANSXXX TRANS_THROW
14883  ;      Animation     = UIMOB05_SKL.UIMOB05_XXXXXXXXputaway gun and take out bottle
14884  ;    End
14885  
14886  ;    TransitionState = TRANS_THROW TRANS_FIRING_A
14887  ;      Animation     = UIMOB05_SKL.UIMOB05_XXXXXXXXputaway bottle and get PISTOL
14888  ;    End
14889  
14890  ;    TransitionState = TRANSXXXAK TRANS_THROW
14891  ;      Animation     = UIMOB05_SKL.UIMOB05_XXXXXXXXputaway AK and take out bottle
14892  ;    End
14893  
14894  
14895  ;    TransitionState = TRANS_THROW TRANS_FIRING_AK
14896  ;      Animation     = UIMOB05_SKL.UIMOB05_XXXXXXXXputaway bottle and get AK
14897  ;    End
14898  
14899  
14900  
14901  
14902  
14903      ;--------------------------------------------------------
14904  
14905  
14906  
14907  
14908  
14909  
14910      TransitionState = TRANS_Dying TRANS_Flailing
14911        Animation = UIMOB05_SKL.UIMOB05_A_ADTA1
14912        Animation = UIMOB05_SKL.UIMOB05_D_ADTA1
14913        AnimationMode = ONCE
14914      End
14915  
14916      ConditionState = DYING EXPLODED_FLAILING
14917        Animation = UIMOB05_SKL.UIMOB05_A_ADTA2
14918        Animation = UIMOB05_SKL.UIMOB05_D_ADTA2
14919        AnimationMode = LOOP
14920        TransitionKey = TRANS_Flailing
14921      End
14922  
14923      ConditionState = DYING EXPLODED_BOUNCING
14924        Animation = UIMOB05_SKL.UIMOB05_A_ADTA3
14925        Animation = UIMOB05_SKL.UIMOB05_D_ADTA3
14926        AnimationMode = ONCE
14927        TransitionKey = None
14928      End
14929  
14930  
14931    End
14932  
14933  
14934  
14935    Geometry = CYLINDER
14936    GeometryMajorRadius = 3.0 ; very thin
14937    GeometryMinorRadius = 3.0 ; very thinD
14938    GeometryHeight = 12.0
14939    GeometryIsSmall = Yes
14940  
14941  End
14942  
14943  
14944  ;------------------------------------------------------------------------------
14945  ;------------------------------------------------------------------------------
14946  Object Demo_GLAInfantryAngryMobMolotov02
14947  
14948  ;**** ART Parameters ***
14949    Draw = W3DModelDraw ModuleTag_01
14950      OkToChangeModelColor = Yes
14951  
14952      ; WHILE CARRYING ROCK
14953      ;---------------------------------------------------------
14954      DefaultConditionState
14955        Model = UIMOB02_SKN
14956        IdleAnimation = UIMOB02_SKL.UIMOB02_IDB1 0 12
14957        IdleAnimation = UIMOB02_SKL.UIMOB02_IDB2 0 5
14958        IdleAnimation = UIMOB02_SKL.UIMOB02_CHB  0 5
14959        IdleAnimation = UIMOB02_SKL.UIMOB02_STB  0 12
14960        AnimationMode = ONCE
14961        AnimationSpeedFactorRange 0.9 1.1
14962        TransitionKey = TRANS_STAND_B
14963  
14964        WeaponFireFXBone  = SECONDARY   "UIMOB02 R HAND"
14965  
14966      End
14967  
14968  
14969      ; Drawing rock
14970      ConditionState  = PREATTACK_B
14971        Animation     = UIMOB02_SKL.UIMOB02_ATCB_BF ; wind up
14972        AnimationMode = ONCE
14973      End
14974      AliasConditionState = PREATTACK_B FIRING_B
14975      AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B
14976  
14977      ; throwing rock
14978      ConditionState = FIRING_B
14979        Animation = UIMOB02_SKL.UIMOB02_ATCB_AF ; throw
14980        AnimationMode = ONCE
14981        TransitionKey = TRANS_FIRING_B
14982      End
14983  
14984      ConditionState = BETWEEN_FIRING_SHOTS_B
14985        Animation         = UIMOB02_SKL.UIMOB02_STB
14986        AnimationMode     = ONCE
14987        ; this is basically a trick: this guy has a nontrivial animation for firing,
14988        ; and a long recycle time between shots. we want him to finish his fire animation
14989        ; (unless he's ordered to do something else), so this is just a handy trick that
14990        ; says, "if the previous state had this transition key, allow it to finish before
14991        ; switching to us, if possible".
14992        WaitForStateToFinishIfPossible = TRANS_FIRING_B
14993      End
14994      AliasConditionState = RELOADING_B
14995  
14996  
14997      ConditionState = MOVING
14998        Animation = UIMOB02_SKL.UIMOB02_RNB 
14999        AnimationMode = LOOP
15000        Flags = RANDOMSTART
15001        TransitionKey   = MOVING
15002        ParticleSysBone   = None InfantryDustTrails
15003      End
15004  
15005      ConditionState = DYING
15006        Animation = UIMOB02_SKL.UIMOB02_DB1    
15007        Animation = UIMOB02_SKL.UIMOB02_DB2
15008        AnimationMode = ONCE
15009        TransitionKey = TRANS_Dying
15010      End
15011  
15012      ConditionState = SPECIAL_CHEERING
15013        Animation = UIMOB02_SKL.UIMOB02_CHB
15014        Flags = RANDOMSTART
15015        AnimationMode = LOOP
15016      End
15017  
15018  
15019  
15020  
15021  
15022  
15023      TransitionState = TRANS_Dying TRANS_Flailing
15024        Animation = UIMOB02_SKL.UIMOB02_B_ADTA1
15025        Animation = UIMOB02_SKL.UIMOB02_D_ADTA1
15026        AnimationMode = ONCE
15027      End
15028  
15029      ConditionState = DYING EXPLODED_FLAILING
15030        Animation = UIMOB02_SKL.UIMOB02_B_ADTA2
15031        Animation = UIMOB02_SKL.UIMOB02_D_ADTA2
15032        AnimationMode = LOOP
15033        TransitionKey = TRANS_Flailing
15034      End
15035  
15036      ConditionState = DYING EXPLODED_BOUNCING
15037        Animation = UIMOB02_SKL.UIMOB02_B_ADTA3
15038        Animation = UIMOB02_SKL.UIMOB02_D_ADTA3
15039        AnimationMode = ONCE
15040        TransitionKey = None
15041      End
15042  
15043  
15044    End
15045  
15046  
15047  ;**** DESIGN parameters ***
15048  
15049    DisplayName      = OBJECT:AngryMob
15050    Side = GLADemolitionGeneral
15051    EditorSorting = INFANTRY
15052    TransportSlotCount = 0                 ;how many "slots" we take in a transport (0 == not transportable)
15053  
15054    WeaponSet
15055      Conditions = None 
15056      Weapon = PRIMARY GLAAngryMobMolotovCocktailProjectileWeapon ; all she does is throw molotovs
15057      Weapon = SECONDARY None
15058      Weapon = TERTIARY TerroristSuicideNotARealWeapon
15059      AutoChooseSources = TERTIARY NONE
15060    End
15061  
15062    ArmorSet
15063      Conditions      = None
15064      Armor           = HumanArmor
15065      DamageFX        = InfantryDamageFX
15066    End
15067  
15068    VisionRange = 150
15069    ShroudClearingRange = 150
15070    Prerequisites
15071      Object = Demo_GLABarracks
15072  
15073    End
15074    BuildCost = 100
15075    BuildTime = 0.0            
15076  
15077    ExperienceValue = 5 5 5 5    ;Experience point value at each level
15078    ExperienceRequired = 0 150 450 900  ;Experience points needed to gain each level
15079    IsTrainable = Yes             ;Can gain experience
15080    CrushableLevel         = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
15081  
15082    ; *** AUDIO Parameters ***
15083    VoiceSelect = NoSound 
15084    VoiceMove = NoSound   
15085    VoiceAttack = NoSound 
15086  
15087  ;**** ENGINEERING Parameters *** ;MOB02
15088    RadarPriority = UNIT
15089    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SALVAGER IGNORED_IN_GUI  ;NO_COLLIDE ;Lorenzen disables 
15090  
15091    Body = ActiveBody BodyTag_01
15092      MaxHealth       = 50.0
15093      InitialHealth   = 50.0
15094    End
15095  
15096    Behavior = AIUpdateInterface ModuleTag_03
15097      AutoAcquireEnemiesWhenIdle = Yes
15098    End
15099  
15100    Behavior = MobMemberSlavedUpdate ModuleTag_04
15101      MustCatchUpRadius   = 40
15102      NoNeedToCatchUpRadius = 15
15103      Squirrelliness = 0.05
15104      CatchUpCrisisBailTime = 30; this is in calls to this update, not in frames
15105    End
15106  
15107    Locomotor = SET_NORMAL AngryMobNormalLocomotor
15108    Locomotor = SET_WANDER AngryMobWanderLocomotor
15109    Locomotor = SET_PANIC AngryMobPanicLocomotor
15110  
15111    Behavior = PhysicsBehavior ModuleTag_05
15112      Mass = 5.0
15113    End
15114  
15115    Behavior = SquishCollide ModuleTag_08
15116      ;nothing
15117    End
15118  
15119    Behavior = WeaponSetUpgrade UpgradeTag_01
15120      TriggeredBy = Upgrade_GLAArmTheMob
15121    End
15122  
15123  
15124  ; --- begin Death modules ---
15125    Behavior = SlowDeathBehavior ModuleTag_Death01
15126      DeathTypes          = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA
15127      SinkDelay           = 3000
15128      SinkRate            = 0.5     ; in Dist/Sec
15129      DestructionDelay    = 8000
15130      FX                  = INITIAL FX_CivilianArabFemaleDie
15131    End
15132    Behavior = SlowDeathBehavior ModuleTag_Death02
15133      DeathTypes          = NONE +CRUSHED +SPLATTED
15134      SinkDelay           = 3000
15135      SinkRate            = 0.5     ; in Dist/Sec
15136      DestructionDelay    = 8000
15137      FX                  = INITIAL FX_GIDieCrushed
15138    End
15139    Behavior = SlowDeathBehavior ModuleTag_Death03
15140      DeathTypes          = NONE +EXPLODED
15141      SinkDelay           = 3000
15142      SinkRate            = 0.5     ; in Dist/Sec
15143      DestructionDelay    = 8000
15144      FX                  = INITIAL FX_CivilianArabFemaleDie
15145      FlingForce          = 8
15146      FlingForceVariance  = 3
15147      FlingPitch          = 60
15148      FlingPitchVariance  = 10
15149    End
15150    Behavior = SlowDeathBehavior ModuleTag_Death04
15151      DeathTypes          = NONE +BURNED
15152      DestructionDelay    = 0
15153      FX                  = INITIAL FX_GIDie
15154      OCL                 = INITIAL OCL_FlamingInfantry
15155    End
15156    Behavior = SlowDeathBehavior ModuleTag_Death05
15157      DeathTypes          = NONE +POISONED
15158      DestructionDelay    = 0
15159      FX                  = INITIAL FX_DieByToxinGLA
15160      OCL                 = INITIAL OCL_ToxicInfantry
15161    End
15162    Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag
15163      DeathTypes          = NONE +POISONED_BETA
15164      DestructionDelay    = 0
15165      FX                  = INITIAL FX_DieByToxinGLA
15166      OCL                 = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones
15167    End
15168    Behavior = SlowDeathBehavior ModuleTag_Death07
15169      DeathTypes          = NONE +POISONED_GAMMA
15170      DestructionDelay    = 0
15171      FX                  = INITIAL FX_DieByToxinGLA
15172      OCL                 = INITIAL OCL_ToxicInfantryGamma
15173    End
15174  ; --- end Death modules ---
15175  
15176    Behavior = PoisonedBehavior ModuleTag_13
15177      PoisonDamageInterval = 100  ; Every this many msec I will retake the poison damage dealt me...
15178      PoisonDuration = 3000       ; ... for this long after last hit by poison damage
15179    End
15180  
15181    Behavior = SlowDeathBehavior ModuleTag_Death17
15182      DeathTypes          = NONE +SUICIDED +EXPLODED
15183      SinkDelay           = 3000
15184      SinkRate            = 0.5     ; in Dist/Sec
15185      DestructionDelay    = 8000
15186      FX                  = INITIAL FX_TerroristExplode
15187      FlingForce          = 8
15188      FlingForceVariance  = 3
15189      FlingPitch          = 60
15190      FlingPitchVariance  = 10
15191    End
15192  
15193    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death18
15194      DeathWeapon   = Demo_SuicideDynamitePack
15195      StartsActive  = Yes                      ; turned on by upgrade
15196      DeathTypes = NONE +SUICIDED
15197    End
15198  
15199   
15200    Geometry = CYLINDER
15201    GeometryMajorRadius = 4.0 ; very thin
15202    GeometryHeight = 12.0
15203    GeometryIsSmall = Yes
15204    Shadow = SHADOW_DECAL
15205    ShadowSizeX = 14;
15206    ShadowSizeY = 14;
15207    ShadowTexture = ShadowI;
15208    BuildCompletion = APPEARS_AT_RALLY_POINT
15209  
15210  End
15211  
15212  ;------------------------------------------------------------------------------
15213  ;------------------------------------------------------------------------------
15214  
15215  
15216  
15217  ;------------------------------------------------------------------------------
15218  ;------------------------------------------------------------------------------
15219  ;------------------------------------------------------------------------------
15220  Object Demo_GLAInfantryHijacker
15221  
15222    ; *** ART Parameters ***
15223    SelectPortrait         = SUHijacker_L
15224    ButtonImage            = SUHijacker
15225    
15226    ;UpgradeCameo1 = NONE
15227    ;UpgradeCameo2 = NONE
15228    ;UpgradeCameo3 = NONE
15229    ;UpgradeCameo4 = NONE
15230    ;UpgradeCameo5 = NONE
15231  
15232    Draw = W3DModelDraw ModuleTag_01
15233      OkToChangeModelColor = Yes
15234  
15235      DefaultConditionState
15236        Model = UIHJCK_SKN
15237        IdleAnimation = UIHJCK_SKL.UIHJCK_STA 0 25
15238        IdleAnimation = UIHJCK_SKL.UIHJCK_IDA
15239        IdleAnimation = UIHJCK_SKL.UIHJCK_IDB
15240        AnimationMode = ONCE
15241        TransitionKey = TRANS_Stand
15242      End
15243      AliasConditionState = REALLYDAMAGED
15244  
15245      ConditionState = MOVING
15246        Animation = UIHJCK_SKL.UIHJCK_RUN 
15247        AnimationMode = LOOP
15248        Flags = RANDOMSTART
15249        TransitionKey = None
15250        ParticleSysBone   = None InfantryDustTrails
15251      End
15252      AliasConditionState = REALLYDAMAGED MOVING
15253  
15254  
15255      ConditionState = DYING
15256        Animation = UIHJCK_SKL.UIHJCK_DTA
15257        Animation = UIHJCK_SKL.UIHJCK_DTB
15258        AnimationMode = ONCE
15259        TransitionKey = TRANS_Dying
15260      End
15261  
15262      TransitionState = TRANS_Dying TRANS_Flailing
15263        Animation = UIHJCK_SKL.UIHJCK_ADTE1
15264        AnimationMode = ONCE
15265      End
15266  
15267      ConditionState = DYING EXPLODED_FLAILING
15268        Animation = UIHJCK_SKL.UIHJCK_ADTE2
15269        AnimationMode = LOOP
15270        TransitionKey = TRANS_Flailing
15271      End
15272  
15273      ConditionState = DYING EXPLODED_BOUNCING
15274        Animation = UIHJCK_SKL.UIHJCK_ADTE3
15275        AnimationMode = ONCE
15276        TransitionKey = None
15277      End
15278  
15279      ConditionState = SPECIAL_CHEERING
15280        Animation = UIHJCK_SKL.UIHJCK_CHA
15281        AnimationMode = LOOP
15282      End
15283  
15284  
15285      ConditionState = PARACHUTING
15286        Animation = UIHJCK_SKL.UIHJCK_PHG
15287        AnimationMode = LOOP
15288        Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME  ; our bone positions should come from the last frame, rather than the first
15289        TransitionKey = TRANS_Chute
15290      End
15291      AliasConditionState = PARACHUTING REALLYDAMAGED
15292      AliasConditionState = PARACHUTING DYING
15293      TransitionState = TRANS_Falling TRANS_Chute
15294        Animation = UIHJCK_SKL.UIHJCK_POP
15295        AnimationMode = ONCE
15296        Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME  ; our bone positions should come from the last frame, rather than the first
15297      End
15298      TransitionState = TRANS_Chute TRANS_Stand
15299        Animation = UIHJCK_SKL.UIHJCK_PTD
15300        AnimationMode = ONCE
15301      End
15302  
15303  
15304    End
15305  
15306    ; ***DESIGN parameters ***
15307    DisplayName      = OBJECT:Hijacker
15308    Side = GLADemolitionGeneral
15309    EditorSorting = INFANTRY
15310    TransportSlotCount = 1                 ;how many "slots" we take in a transport (0 == not transportable)
15311    
15312    WeaponSet
15313      Weapon = PRIMARY None
15314      Weapon = SECONDARY None
15315      Weapon = TERTIARY TerroristSuicideNotARealWeapon
15316      AutoChooseSources = TERTIARY NONE
15317    End
15318  
15319    ArmorSet
15320      Conditions      = None
15321      Armor           = HumanArmor
15322      DamageFX        = InfantryDamageFX
15323    End
15324  
15325    VisionRange = 100
15326    ShroudClearingRange = 200
15327    Prerequisites
15328      Object = Demo_GLABarracks
15329      Object = Demo_GLAPalace
15330      Science = SCIENCE_Hijacker
15331    End
15332  
15333    BuildCost = 400
15334    BuildTime = 10.0          ;in seconds    
15335  
15336  
15337  
15338  
15339    ExperienceValue = 50 100 150 400    ;Experience point value at each level
15340    ExperienceRequired = 0 150 450 900  ;Experience points needed to gain each level
15341    IsTrainable = No                    ;Can gain experience
15342    CrushableLevel         = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
15343    CommandSet    = Demo_GLAInfantryHijackerCommandSet
15344  
15345    ; *** AUDIO Parameters ***
15346    VoiceSelect =    HijackerVoiceSelect
15347    VoiceMove =      HijackerVoiceMove
15348    VoiceGuard =      HijackerVoiceMove
15349    VoiceAttack =    HijackerVoiceAttack
15350    VoiceFear =      HijackerVoiceFear
15351    UnitSpecificSounds
15352      VoiceGarrison =  HijackerVoiceGarrison
15353      VoiceCreate           = HijackerVoiceCreate
15354      VoiceEnter            = HijackerVoiceEnter
15355      VoiceEnterHostile     = HijackerVoiceEnterHostile
15356      VoiceGetHealed      = HijackerVoiceMove
15357    End
15358    
15359  
15360    ; *** ENGINEERING Parameters ***
15361    RadarPriority = UNIT
15362    EnterGuard = Yes
15363    HijackGuard = Yes
15364    KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY SALVAGER SCORE STEALTH_GARRISON
15365    ;STEALTH_GARRISON Added per Dustin, 12/14--ML
15366  
15367  
15368    Behavior = StealthUpdate ModuleTag_02
15369      StealthDelay                = 500                    ; half second delay before stealthy
15370      StealthForbiddenConditions  = MOVING ; only stealthy while stationary
15371      MoveThresholdSpeed          = 3
15372      InnateStealth               = Yes
15373      OrderIdleEnemiesToAttackMeUponReveal  = Yes
15374    End
15375  
15376    Body = ActiveBody ModuleTag_03
15377      MaxHealth       = 100.0
15378      InitialHealth   = 100.0
15379    End
15380  
15381    Behavior = HijackerUpdate ModuleTag_04
15382      ParachuteName = AmericaParachute
15383    End
15384  
15385    Behavior = AIUpdateInterface ModuleTag_05
15386      AutoAcquireEnemiesWhenIdle = Yes
15387    End
15388    Behavior = CommandButtonHuntUpdate  ModuleTag_CBH01 ; allows use of command button hunt script with this unit. 
15389    End
15390    Locomotor = SET_NORMAL JarmenKellLocomotor
15391  
15392    Behavior = PhysicsBehavior ModuleTag_06
15393      Mass = 5.0
15394    End
15395  
15396    Behavior = ConvertToHijackedVehicleCrateCollide       ModuleTag_08
15397      RequiredKindOf = VEHICLE      ; This is my car now, infidel!
15398    End
15399  
15400    Behavior = SquishCollide ModuleTag_09
15401      ;nothing
15402    End
15403  
15404  
15405  ; --- begin Death modules ---
15406    Behavior = SlowDeathBehavior ModuleTag_Death01
15407      DeathTypes          = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA
15408      SinkDelay           = 3000
15409      SinkRate            = 0.5     ; in Dist/Sec
15410      DestructionDelay    = 8000
15411      FX                  = INITIAL FX_HijackerDie
15412    End
15413    Behavior = SlowDeathBehavior ModuleTag_Death02
15414      DeathTypes          = NONE +CRUSHED +SPLATTED
15415      SinkDelay           = 3000
15416      SinkRate            = 0.5     ; in Dist/Sec
15417      DestructionDelay    = 8000
15418      FX                  = INITIAL FX_GIDieCrushed
15419    End
15420    Behavior = SlowDeathBehavior ModuleTag_Death03
15421      DeathTypes          = NONE +EXPLODED
15422      SinkDelay           = 3000
15423      SinkRate            = 0.5     ; in Dist/Sec
15424      DestructionDelay    = 8000
15425      FX                  = INITIAL FX_HijackerDie
15426      FlingForce          = 8
15427      FlingForceVariance  = 3
15428      FlingPitch          = 60
15429      FlingPitchVariance  = 10
15430    End
15431    Behavior = SlowDeathBehavior ModuleTag_Death04
15432      DeathTypes          = NONE +BURNED
15433      DestructionDelay    = 0
15434      FX                  = INITIAL FX_DieByFireGLA
15435      OCL                 = INITIAL OCL_FlamingInfantry
15436    End
15437    Behavior = SlowDeathBehavior ModuleTag_Death05
15438      DeathTypes          = NONE +POISONED
15439      DestructionDelay    = 0
15440      FX                  = INITIAL FX_DieByToxinGLA
15441      OCL                 = INITIAL OCL_ToxicInfantry
15442    End
15443    Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag
15444      DeathTypes          = NONE +POISONED_BETA
15445      DestructionDelay    = 0
15446      FX                  = INITIAL FX_DieByToxinGLA
15447      OCL                 = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones
15448    End
15449    Behavior = SlowDeathBehavior ModuleTag_Death07
15450      DeathTypes          = NONE +POISONED_GAMMA
15451      DestructionDelay    = 0
15452      FX                  = INITIAL FX_DieByToxinGLA
15453      OCL                 = INITIAL OCL_ToxicInfantryGamma
15454    End
15455  ; --- end Death modules ---
15456  
15457    Behavior = PoisonedBehavior ModuleTag_14
15458      PoisonDamageInterval = 100  ; Every this many msec I will retake the poison damage dealt me...
15459      PoisonDuration = 3000       ; ... for this long after last hit by poison damage
15460    End
15461  
15462    Behavior = SlowDeathBehavior ModuleTag_Death_17
15463      DeathTypes          = NONE +SUICIDED +EXPLODED
15464      SinkDelay           = 3000
15465      SinkRate            = 0.5     ; in Dist/Sec
15466      DestructionDelay    = 8000
15467      FX                  = INITIAL FX_TerroristExplode
15468      FlingForce          = 8
15469      FlingForceVariance  = 3
15470      FlingPitch          = 60
15471      FlingPitchVariance  = 10
15472    End
15473  
15474  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death24
15475  ;    DeathWeapon   = Demo_SuicideDynamitePack
15476  ;    StartsActive  = Yes                      ; turned on by upgrade
15477  ;    DeathTypes = NONE +SUICIDED
15478  ;  End
15479  ;
15480  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag999
15481  ;    DeathWeapon   = Demo_SuicideDynamitePackPlusFire
15482  ;    StartsActive  = No
15483  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
15484  ;    RequiresAllTriggers = Yes; 
15485  ;    DeathTypes = ALL -SUICIDED -POISONED -POISONED_BETA -POISONED_GAMMA
15486  ;  End
15487  ;
15488  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag998
15489  ;    DeathWeapon   = Demo_SuicideDynamitePack
15490  ;    StartsActive  = No
15491  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
15492  ;    RequiresAllTriggers = Yes; 
15493  ;    DeathTypes = NONE +SUICIDED
15494  ;  End
15495  
15496    Behavior = FireWeaponWhenDeadBehavior ModuleTag_George 
15497      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
15498      StartsActive  = No
15499      TriggeredBy   = Demo_Upgrade_SuicideBomb
15500      DeathTypes = ALL
15501    End;
15502  
15503    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Bob
15504      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
15505      StartsActive  = No
15506      TriggeredBy   = Demo_Upgrade_SuicideBomb
15507      DeathTypes = NONE 
15508    End
15509  
15510    Behavior = CommandSetUpgrade ModuleTag_19
15511      CommandSet = Demo_GLAInfantryHijackerCommandSetUpgrade
15512      TriggeredBy = Demo_Upgrade_SuicideBomb
15513    End
15514   
15515    Geometry = CYLINDER
15516    GeometryMajorRadius = 10.0
15517    GeometryMinorRadius = 10.0
15518    GeometryHeight = 12.0
15519    GeometryIsSmall = Yes
15520    Shadow = SHADOW_DECAL
15521    ShadowSizeX = 14;
15522    ShadowSizeY = 14;
15523    ShadowTexture = ShadowI;
15524    BuildCompletion = APPEARS_AT_RALLY_POINT
15525  
15526  End
15527  
15528  
15529  
15530  
15531  
15532  ;------------------------------------------------------------------------------
15533  Object Demo_GLAInfantryWorker
15534  
15535    ; *** ART Parameters ***
15536    SelectPortrait         = SUWorker_L
15537    ButtonImage            = SUWorker
15538    
15539    UpgradeCameo1 = Upgrade_GLAWorkerShoes
15540    ;UpgradeCameo2 = NONE
15541    ;UpgradeCameo3 = NONE
15542    ;UpgradeCameo4 = NONE
15543    ;UpgradeCameo5 = NONE
15544  
15545    Draw = W3DModelDraw ModuleTag_01
15546      OkToChangeModelColor = Yes
15547  
15548      DefaultConditionState
15549        Model         = UIWRKR_SKN
15550        IdleAnimation = UIWRKR_SKL.UIWRKR_STA 0 9
15551        IdleAnimation = UIWRKR_SKL.UIWRKR_IDA
15552        AnimationMode = ONCE
15553        TransitionKey = TRANS_Stand
15554      End
15555  
15556      ConditionState  = MOVING
15557        Animation     = UIWRKR_SKL.UIWRKR_RNA 16
15558        AnimationMode = LOOP
15559        Flags         = RANDOMSTART
15560        TransitionKey = TRANS_Moving
15561        ParticleSysBone = None InfantryDustTrails
15562      End
15563      ; it is legal to be ACTIVELY_CONSTRUCTING and MOVING at the same time,
15564      ; since we flip the bit once we get pretty close to the target. but it looks
15565      ; funky to do the construction animation while moving. 
15566      ; so just use the normal move animation in that case.
15567      AliasConditionState = ACTIVELY_CONSTRUCTING MOVING
15568  
15569      ConditionState = ATTACKING
15570        ShowSubObject = MINED_SKIN
15571        Animation = UIWRKR_SKL.UIWRKR_MS
15572        AnimationMode = LOOP
15573        Flags = RANDOMSTART
15574        TransitionKey = TRANS_MetalDetector_Standing
15575      End
15576  
15577      ConditionState = MOVING ATTACKING
15578        ShowSubObject = MINED_SKIN
15579        Animation = UIWRKR_SKL.UIWRKR_MSW 50
15580        AnimationMode = LOOP
15581        Flags = RANDOMSTART
15582        TransitionKey = TRANS_MetalDetector_Moving
15583        ParticleSysBone = None InfantryDustTrails
15584      End
15585      AliasConditionState = MOVING ATTACKING CARRYING
15586  
15587      TransitionState = TRANS_Stand TRANS_MetalDetector_Standing    ;STANDING -> ATTACKING
15588        ShowSubObject = MINED_SKIN
15589        Animation     = UIWRKR_SKL.UIWRKR_TRB1;take out standing
15590        AnimationMode = ONCE
15591      End
15592      TransitionState = TRANS_MetalDetector_Standing TRANS_Stand    ;ATTACKING -> STANDING
15593        ShowSubObject = MINED_SKIN
15594        Animation     = UIWRKR_SKL.UIWRKR_TRB2;put away standing
15595        AnimationMode = ONCE
15596      End
15597  
15598      TransitionState = TRANS_Carry TRANS_MetalDetector_Standing    ;CARRYING -> ATTACKING
15599        ShowSubObject = MINED_SKIN
15600        Animation     = UIWRKR_SKL.UIWRKR_TRB1;take out standing
15601        AnimationMode = ONCE
15602      End
15603      TransitionState = TRANS_MetalDetector_Standing TRANS_Carry    ;ATTACKING -> CARRYING
15604        ShowSubObject = MINED_SKIN
15605        Animation     = UIWRKR_SKL.UIWRKR_TRB2;put away standing
15606        AnimationMode = ONCE
15607      End
15608      TransitionState = TRANS_Carry TRANS_MetalDetector_Moving      ;CARRYING -> MOVING ATTACKING
15609        ShowSubObject = MINED_SKIN
15610        Animation     = UIWRKR_SKL.UIWRKR_TRC1;take out moving [NEW NON-SKATING ANIMATION]
15611        AnimationMode = ONCE
15612        AnimationSpeedFactorRange = 2.0 2.0
15613      End
15614  
15615      TransitionState = TRANS_MetalDetector_Moving TRANS_Stand      ;MOVING ATTACKING -> STANDING
15616        ShowSubObject = MINED_SKIN
15617        Animation     = UIWRKR_SKL.UIWRKR_TRB2;put away moving
15618        AnimationMode = ONCE
15619      End
15620      TransitionState = TRANS_Stand TRANS_MetalDetector_Moving      ;STANDING -> MOVING ATTACKING
15621        ShowSubObject = MINED_SKIN
15622        Animation     = UIWRKR_SKL.UIWRKR_TRC1;take out moving [NEW NON-SKATING ANIMATION]
15623        AnimationMode = ONCE
15624        AnimationSpeedFactorRange = 2.0 2.0
15625      End
15626  
15627      TransitionState = TRANS_Moving TRANS_MetalDetector_Standing   ;MOVING -> ATTACKING [STANDING]
15628        ShowSubObject = MINED_SKIN
15629        Animation     = UIWRKR_SKL.UIWRKR_TRB1;take out standing
15630        AnimationMode = ONCE
15631      End
15632      TransitionState = TRANS_MetalDetector_Standing TRANS_Moving   ;ATTACKING [STANDING] -> MOVING
15633        ShowSubObject = MINED_SKIN
15634        Animation     = UIWRKR_SKL.UIWRKR_TRC2;put away moving [NEW NON-SKATING ANIMATION]
15635        AnimationMode = ONCE
15636        AnimationSpeedFactorRange = 2.0 2.0
15637      End
15638  
15639      TransitionState = TRANS_Moving TRANS_MetalDetector_Moving     ;MOVING -> MOVING ATTACKING
15640        ShowSubObject = MINED_SKIN
15641        Animation     = UIWRKR_SKL.UIWRKR_TRC1;take out moving [NEW NON-SKATING ANIMATION]
15642        AnimationMode = ONCE
15643        AnimationSpeedFactorRange = 2.0 2.0
15644      End
15645      TransitionState = TRANS_MetalDetector_Moving TRANS_Moving     ;MOVING ATTACKING -> MOVING
15646        ShowSubObject = MINED_SKIN
15647        Animation     = UIWRKR_SKL.UIWRKR_TRC2;put away moving [NEW NON-SKATING ANIMATION]
15648        AnimationMode = ONCE
15649        AnimationSpeedFactorRange = 2.0 2.0
15650      End
15651  
15652  
15653      ConditionState = MOVING CARRYING
15654        ShowSubObject = BOX
15655        Animation = UIWRKR_SKL.UIWRKR_CARY 12
15656        AnimationMode = LOOP
15657        Flags = RANDOMSTART
15658        TransitionKey = TRANS_Carry
15659        ParticleSysBone = None InfantryDustTrails
15660      End
15661      ; it is legal to be ACTIVELY_CONSTRUCTING and MOVING at the same time,
15662      ; since we flip the bit once we get pretty close to the target. but it looks
15663      ; funky to do the construction animation while moving. 
15664      ; so just use the normal move animation in that case.
15665      AliasConditionState = ACTIVELY_CONSTRUCTING MOVING CARRYING
15666  
15667      ConditionState = CARRYING
15668        ShowSubObject = BOX
15669        Animation = UIWRKR_SKL.UIWRKR_CARST 30 
15670        AnimationMode = LOOP
15671        Flags = RANDOMSTART
15672        TransitionKey = TRANS_Carry
15673      End
15674  
15675      ConditionState = DYING
15676        Animation = UIWRKR_SKL.UIWRKR_DTA
15677        AnimationMode = ONCE
15678        TransitionKey = TRANS_Dying
15679      End
15680      AliasConditionState = DYING CARRYING
15681  
15682      TransitionState = TRANS_Dying TRANS_Flailing
15683        Animation = UIWRKR_SKL.UIWRKR_ADTE1
15684        AnimationMode = ONCE
15685      End
15686  
15687      ConditionState = DYING EXPLODED_FLAILING
15688        Animation = UIWRKR_SKL.UIWRKR_ADTE2
15689        AnimationMode = LOOP
15690        TransitionKey = TRANS_Flailing
15691      End
15692  
15693      ConditionState = DYING EXPLODED_BOUNCING
15694        Animation = UIWRKR_SKL.UIWRKR_ADTE3
15695        AnimationMode = ONCE
15696        TransitionKey = None
15697      End
15698  
15699      ConditionState  = SPECIAL_CHEERING
15700        Animation     = UIWRKR_SKL.UIWRKR_CHA
15701        AnimationMode = ONCE
15702      End
15703      
15704      ConditionState  = ACTIVELY_CONSTRUCTING
15705        Animation     = UIWRKR_SKL.UIWRKR_BDA
15706        AnimationMode = LOOP
15707        TransitionKey = TRANS_Constructing
15708      End
15709      AliasConditionState = ACTIVELY_CONSTRUCTING CARRYING
15710  
15711      ; --------------------
15712  
15713      TransitionState = TRANS_Stand TRANS_Carry
15714        ShowSubObject = BOX
15715        Animation     = UIWRKR_SKL.UIWRKR_PIK
15716        AnimationMode = ONCE
15717      End
15718  
15719      TransitionState = TRANS_Carry TRANS_Stand
15720        ShowSubObject = BOX
15721        Animation     = UIWRKR_SKL.UIWRKR_PIK
15722        AnimationMode = ONCE_BACKWARDS
15723        Flags         = START_FRAME_LAST
15724      End
15725      
15726      TransitionState = TRANS_Stand TRANS_Constructing
15727        Animation     = UIWRKR_SKL.UIWRKR_TRA1
15728        AnimationMode = ONCE
15729      End
15730  
15731      TransitionState = TRANS_Constructing TRANS_Stand
15732        Animation     = UIWRKR_SKL.UIWRKR_TRA2
15733        AnimationMode = ONCE
15734      End
15735    End
15736  
15737    ; ***DESIGN parameters ***
15738    DisplayName = OBJECT:Worker
15739    Side = GLADemolitionGeneral
15740    EditorSorting = INFANTRY
15741    TransportSlotCount = 1                 ;how many "slots" we take in a transport (0 == not transportable)
15742  
15743  
15744    WeaponSet
15745      Conditions = None 
15746      Weapon = PRIMARY None
15747      Weapon = SECONDARY None
15748      Weapon = TERTIARY None
15749    End
15750    WeaponSet
15751      Conditions = MINE_CLEARING_DETAIL 
15752      Weapon = PRIMARY WorkerMineDisarmingWeapon
15753      Weapon = SECONDARY None
15754      Weapon = TERTIARY None
15755    End
15756    WeaponSet
15757      Conditions = PLAYER_UPGRADE
15758      Weapon = PRIMARY None
15759      Weapon = SECONDARY None
15760      Weapon = TERTIARY TerroristSuicideNotARealWeapon
15761      AutoChooseSources = TERTIARY NONE
15762    End
15763    WeaponSet
15764      Conditions = PLAYER_UPGRADE MINE_CLEARING_DETAIL
15765      Weapon = PRIMARY WorkerMineDisarmingWeapon
15766      Weapon = SECONDARY None
15767      Weapon = TERTIARY TerroristSuicideNotARealWeapon
15768      AutoChooseSources = TERTIARY NONE
15769    End
15770  
15771    ArmorSet
15772      Conditions      = None
15773      Armor           = HumanArmor
15774      DamageFX        = InfantryDamageFX
15775    End
15776    VisionRange = 100
15777    ShroudClearingRange = 200
15778   ;Prerequisites
15779   ;  Object = Demo_GLABarracks GLASupplyStash ;commented out, or else you can't build from Con Yard as Dozer.
15780   ;End
15781    BuildCost = 200
15782    BuildTime = 3.0          ;in seconds    
15783    CrushableLevel         = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
15784    CommandSet = Demo_GLAWorkerCommandSet
15785  
15786    ; *** AUDIO Parameters ***
15787    VoiceSelect = WorkerVoiceSelect
15788    VoiceMove = WorkerVoiceMove
15789    VoiceAttack = WorkerVoiceMove
15790    VoiceGuard = WorkerVoiceMove
15791    VoiceFear = WorkerVoiceFear
15792    VoiceTaskComplete = WorkerVoiceBuildComplete
15793    UnitSpecificSounds
15794      VoiceEnter        = WorkerVoiceMoveUpgraded
15795      VoiceEnterHostile = WorkerVoiceMoveUpgraded
15796      VoiceGarrison     = WorkerVoiceGarrison
15797      VoiceCreate       = WorkerVoiceCreate
15798      VoiceSupply       = WorkerVoiceSupply
15799      VoiceNoBuild      = WorkerVoiceBuildNot
15800      VoiceRepair       = WorkerVoiceRepair
15801      VoiceDisarm       = WorkerVoiceClearMine
15802      VoiceBuildResponse = WorkerVoiceBuild
15803      VoiceGetHealed    = WorkerVoiceMoveUpgraded
15804      VoiceMoveUpgraded = WorkerVoiceMoveUpgraded
15805    End
15806  
15807    ; *** ENGINEERING Parameters ***
15808    RadarPriority = UNIT
15809    KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY SALVAGER DOZER HARVESTER SCORE
15810  
15811    Body = ActiveBody ModuleTag_02
15812      MaxHealth       = 100.0
15813      InitialHealth   = 100.0
15814    End
15815  
15816    Behavior = WorkerAIUpdate ModuleTag_03
15817      RepairHealthPercentPerSecond  = 2%    ; % of max health to repair each second
15818      BoredTime                     = 5000  ; in milliseconds
15819      BoredRange                    = 150   ; when bored, we look this far away to do something 
15820      MaxBoxes                      = 1
15821      UpgradedSupplyBoost           = 8 ; gives this much more cash for every box collected
15822      SupplyCenterActionDelay       = 150 ;400 ; ms for whole thing (one transaction)
15823      SupplyWarehouseActionDelay    = 150 ;400 ;ms per box (many small transactions)
15824      SupplyWarehouseScanDistance   = 700 ;350 ; Max distance to look for a warehouse, or we go home.  (Direct dock command on warehouse overrides, and no max on Center Scan)
15825      SuppliesDepletedVoice = WorkerVoiceSuppliesDepleted
15826      ; the only "enemies" that workers can acquire are mines, to be disarmed...
15827      AutoAcquireEnemiesWhenIdle    = Yes
15828    End
15829    Locomotor = SET_NORMAL FastHumanLocomotor
15830    Locomotor = SET_NORMAL_UPGRADED WorkerShoesLocomotor
15831    Behavior = PhysicsBehavior ModuleTag_04
15832      Mass = 5.0
15833    End
15834   
15835    Behavior = SquishCollide ModuleTag_06
15836      ;nothing
15837    End
15838    Behavior = LocomotorSetUpgrade ModuleTag_07
15839      TriggeredBy = Upgrade_GLAWorkerShoes
15840    End
15841  
15842  ; --- begin Death modules ---
15843    Behavior = SlowDeathBehavior ModuleTag_Death01
15844      DeathTypes          = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA -SUICIDED
15845      SinkDelay           = 3000
15846      SinkRate            = 0.5     ; in Dist/Sec
15847      DestructionDelay    = 8000
15848      FX                  = INITIAL FX_WorkerDie
15849    End
15850    Behavior = SlowDeathBehavior ModuleTag_Death02
15851      DeathTypes          = NONE +CRUSHED +SPLATTED
15852      SinkDelay           = 3000
15853      SinkRate            = 0.5     ; in Dist/Sec
15854      DestructionDelay    = 8000
15855      FX                  = INITIAL FX_GIDieCrushed
15856    End
15857    Behavior = SlowDeathBehavior ModuleTag_Death03
15858      DeathTypes          = NONE +EXPLODED -SUICIDED
15859      SinkDelay           = 3000
15860      SinkRate            = 0.5     ; in Dist/Sec
15861      DestructionDelay    = 8000
15862      FX                  = INITIAL FX_WorkerDie
15863      FlingForce          = 8
15864      FlingForceVariance  = 3
15865      FlingPitch          = 60
15866      FlingPitchVariance  = 10
15867    End
15868    Behavior = SlowDeathBehavior ModuleTag_Death04
15869      DeathTypes          = NONE +BURNED
15870      DestructionDelay    = 0
15871      FX                  = INITIAL FX_DieByFireGLA
15872      OCL                 = INITIAL OCL_FlamingInfantry
15873    End
15874    Behavior = SlowDeathBehavior ModuleTag_Death05
15875      DeathTypes          = NONE +POISONED
15876      DestructionDelay    = 0
15877      FX                  = INITIAL FX_DieByToxinGLA
15878      OCL                 = INITIAL OCL_ToxicInfantry
15879    End
15880    Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag
15881      DeathTypes          = NONE +POISONED_BETA
15882      DestructionDelay    = 0
15883      FX                  = INITIAL FX_DieByToxinGLA
15884      OCL                 = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones
15885    End
15886    Behavior = SlowDeathBehavior ModuleTag_Death07
15887      DeathTypes          = NONE +POISONED_GAMMA
15888      DestructionDelay    = 0
15889      FX                  = INITIAL FX_DieByToxinGLA
15890      OCL                 = INITIAL OCL_ToxicInfantryGamma
15891    End
15892  ; --- end Death modules ---
15893  
15894    Behavior = StealthDetectorUpdate ModuleTag_12
15895      DetectionRate         = 500   ; how often to rescan for stealthed things in my sight (msec)
15896      ;DetectionRange       = ??? ;Dustin, enable this for independant balancing!
15897      CanDetectWhileGarrisoned  = No ;Garrisoned means being in a structure that you units can shoot out of.
15898      CanDetectWhileContained   = No ;Contained means being in a transport or tunnel network.
15899      ExtraRequiredKindOf   = MINE  ; we can only detect MINES, not other stealthed things
15900    End
15901  
15902    Behavior = PoisonedBehavior ModuleTag_13
15903      PoisonDamageInterval = 100  ; Every this many msec I will retake the poison damage dealt me...
15904      PoisonDuration = 3000       ; ... for this long after last hit by poison damage
15905    End
15906  
15907    Behavior = CommandSetUpgrade ModuleTag_14
15908      TriggeredBy = Upgrade_GLAWorkerFakeCommandSet
15909      RemovesUpgrades = Upgrade_GLAWorkerRealCommandSet
15910      CommandSet = Demo_GLAWorkerFakeBuildingsCommandSet
15911    End
15912   
15913    Behavior = CommandSetUpgrade ModuleTag_15
15914      TriggeredBy = Upgrade_GLAWorkerRealCommandSet
15915      RemovesUpgrades = Upgrade_GLAWorkerFakeCommandSet Upgrade_GLAWorkerRealCommandSet
15916      CommandSet = Demo_GLAWorkerCommandSet
15917    End
15918   
15919    Behavior = ProductionUpdate ModuleTag_16
15920      MaxQueueEntries = 1; For the command set switching upgrade
15921    End
15922  
15923    Behavior = SlowDeathBehavior ModuleTag_Death_17
15924      DeathTypes          = NONE +SUICIDED +EXPLODED
15925      SinkDelay           = 3000
15926      SinkRate            = 0.5     ; in Dist/Sec
15927      DestructionDelay    = 8000
15928      FX                  = INITIAL FX_TerroristExplode
15929      FlingForce          = 8
15930      FlingForceVariance  = 3
15931      FlingPitch          = 60
15932      FlingPitchVariance  = 10
15933    End
15934  
15935  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death24
15936  ;    DeathWeapon   = Demo_SuicideDynamitePack
15937  ;    StartsActive  = Yes                      ; turned on by upgrade
15938  ;    DeathTypes = NONE +SUICIDED
15939  ;  End
15940  ;
15941  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag999
15942  ;    DeathWeapon   = Demo_SuicideDynamitePackPlusFire
15943  ;    StartsActive  = No
15944  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
15945  ;    RequiresAllTriggers = Yes; 
15946  ;    DeathTypes = ALL -SUICIDED -POISONED -POISONED_BETA -POISONED_GAMMA
15947  ;  End
15948  ;
15949  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag998
15950  ;    DeathWeapon   = Demo_SuicideDynamitePack
15951  ;    StartsActive  = No
15952  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
15953  ;    RequiresAllTriggers = Yes; 
15954  ;    DeathTypes = NONE +SUICIDED
15955  ;  End
15956  
15957    Behavior = FireWeaponWhenDeadBehavior ModuleTag_George 
15958      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
15959      StartsActive  = No
15960      TriggeredBy   = Demo_Upgrade_SuicideBomb
15961      DeathTypes = ALL
15962    End;
15963  
15964    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Bob
15965      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
15966      StartsActive  = No
15967      TriggeredBy   = Demo_Upgrade_SuicideBomb
15968      DeathTypes = NONE 
15969    End
15970  
15971    Behavior = WeaponSetUpgrade ModuleTag_19
15972      TriggeredBy = Demo_Upgrade_SuicideBomb
15973    End
15974  
15975  
15976    Geometry = CYLINDER
15977    GeometryMajorRadius = 10.0
15978    GeometryMinorRadius = 10.0
15979    GeometryHeight = 12.0
15980    GeometryIsSmall = Yes
15981    Shadow = SHADOW_DECAL
15982    ShadowSizeX = 14;
15983    ShadowSizeY = 14;
15984    ShadowTexture = ShadowI;
15985    BuildCompletion = APPEARS_AT_RALLY_POINT
15986  
15987  End
15988  
15989  ;------------------------------------------------------------------------------
15990  Object Demo_GLAInfantrySaboteur
15991  
15992    ; *** ART Parameters ***
15993    SelectPortrait         = SUSaboteur_L
15994    ButtonImage            = SUSaboteur
15995  
15996    ;UpgradeCameo1 = NONE
15997    ;UpgradeCameo2 = NONE
15998    ;UpgradeCameo3 = NONE
15999    ;UpgradeCameo4 = NONE
16000    ;UpgradeCameo5 = NONE
16001  
16002    Draw = W3DModelDraw ModuleTag_01
16003  
16004      OkToChangeModelColor = Yes
16005      
16006      ; this says "we don't use these condition states at all, so completely
16007      ; ignore them for purposes of matchmaking"... this is useful to help
16008      ; reduce the number of AliasConditionState clauses you must add in
16009      ; order to avoid ambiguity in some cases.
16010      IgnoreConditionStates = PREATTACK_A FIRING_A BETWEEN_FIRING_SHOTS_A RELOADING_A
16011  
16012      ; ---- standing
16013      DefaultConditionState
16014        Model = UISabotr_SKN
16015        IdleAnimation = UIWRKR_SKL.UIWRKR_STA 0 9
16016        IdleAnimation = UIWRKR_SKL.UIWRKR_IDA
16017        AnimationMode = ONCE
16018        TransitionKey = TRANS_Stand
16019      End
16020  
16021      ConditionState  = MOVING
16022        Animation     = UIWRKR_SKL.UIWRKR_RNA 16
16023        AnimationMode = LOOP
16024        Flags         = RANDOMSTART
16025        TransitionKey = TRANS_Moving
16026        ParticleSysBone = None InfantryDustTrails
16027      End
16028  
16029      ConditionState = DYING
16030        Animation = UIWRKR_SKL.UIWRKR_DTA
16031        AnimationMode = ONCE
16032        TransitionKey = TRANS_Dying
16033      End
16034  
16035      TransitionState = TRANS_Dying TRANS_Flailing
16036        Animation = UIWRKR_SKL.UIWRKR_ADTE1
16037        AnimationMode = ONCE
16038      End
16039  
16040      ConditionState = DYING EXPLODED_FLAILING
16041        Animation = UIWRKR_SKL.UIWRKR_ADTE2
16042        AnimationMode = LOOP
16043        TransitionKey = TRANS_Flailing
16044      End
16045  
16046      ConditionState = DYING EXPLODED_BOUNCING
16047        Animation = UIWRKR_SKL.UIWRKR_ADTE3
16048        AnimationMode = ONCE
16049        TransitionKey = None
16050      End
16051  
16052      ConditionState  = SPECIAL_CHEERING
16053        Animation     = UIWRKR_SKL.UIWRKR_CHA
16054        AnimationMode = ONCE
16055      End
16056      
16057    End
16058  
16059    ; ***DESIGN parameters ***
16060    DisplayName         = OBJECT:Saboteur
16061    Side                = GLADemolitionGeneral
16062    EditorSorting       = INFANTRY
16063    TransportSlotCount  = 1                 ;how many "slots" we take in a transport (0 == not transportable)
16064   
16065    ArmorSet
16066      Conditions      = None
16067      Armor           = HumanArmor
16068      DamageFX        = InfantryDamageFX
16069    End
16070    VisionRange         = 150
16071    ShroudClearingRange = 300
16072    Prerequisites
16073      Object = Demo_GLAPalace
16074    End
16075    BuildCost = 800
16076    BuildTime = 15.0          ;in seconds  
16077  
16078    ExperienceValue     = 15 15 30 40     ;Experience point value at each level
16079    ExperienceRequired  = 0 40 60 120     ;Experience points needed to gain each level
16080    IsTrainable         = Yes             ;Can gain experience
16081    CrushableLevel      = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
16082    CommandSet          = GLAInfantrySaboteurCommandSet
16083  
16084    ; *** AUDIO Parameters ***
16085    VoiceSelect = SaboteurVoiceSelect
16086    VoiceMove = SaboteurVoiceMove
16087    VoiceGuard = SaboteurVoiceMove
16088    VoiceAttack = SaboteurVoiceAttack
16089    SoundStealthOn = StealthOn
16090    SoundStealthOff = StealthOff
16091    VoiceFear = SaboteurVoiceFear
16092    VoiceTaskComplete = NoSound
16093    UnitSpecificSounds
16094      VoiceCreate = SaboteurVoiceCreate
16095      VoiceSubdue = SaboteurVoiceMove
16096      VoiceGarrison = SaboteurVoiceMove
16097      VoiceEnter = SaboteurVoiceMove
16098      VoiceEnterHostile = SaboteurVoiceAttack
16099      VoiceGetHealed      = SaboteurVoiceMove
16100    End
16101  
16102    ; *** ENGINEERING Parameters ***
16103    RadarPriority = UNIT
16104    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SALVAGER SCORE 
16105  
16106    Body = ActiveBody ModuleTag_02
16107      MaxHealth       = 120.0
16108      InitialHealth   = 120.0
16109    End
16110  
16111    Behavior = AIUpdateInterface ModuleTag_03
16112      AutoAcquireEnemiesWhenIdle = Yes
16113    End
16114  
16115    Behavior = CommandButtonHuntUpdate  ModuleTag_04 ; allows use of command button hunt script with this unit. 
16116    End
16117  
16118    Locomotor = SET_NORMAL SaboteurGroundLocomotor SaboteurCliffLocomotor
16119  
16120    Behavior = PhysicsBehavior ModuleTag_05
16121      Mass = 5.0
16122    End
16123    Behavior = StealthUpdate ModuleTag_07
16124      StealthDelay                = 2500 ; msec
16125      StealthForbiddenConditions  = None
16126      InnateStealth               = Yes ;Requires upgrade first
16127      OrderIdleEnemiesToAttackMeUponReveal  = Yes
16128    End
16129  
16130    Behavior = SquishCollide ModuleTag_11
16131      ;nothing
16132    End
16133  
16134    Behavior = SabotagePowerPlantCrateCollide       SabotageTag_01
16135      BuildingPickup = Yes
16136      SabotagePowerDuration = 30000
16137    End
16138    ;Behavior = SabotageSupplyDropzoneCrateCollide   SabotageTag_02
16139    ;  BuildingPickup  = Yes
16140    ;  StealCashAmount = 800
16141    ;End
16142    Behavior = SabotageSuperweaponCrateCollide      SabotageTag_03
16143      BuildingPickup = Yes
16144    End
16145    Behavior = SabotageCommandCenterCrateCollide    SabotageTag_04
16146      BuildingPickup = Yes
16147    End
16148    Behavior = SabotageSupplyCenterCrateCollide     SabotageTag_05
16149      BuildingPickup  = Yes
16150      StealCashAmount = 1000
16151    End
16152    Behavior = SabotageMilitaryFactoryCrateCollide  SabotageTag_06
16153      BuildingPickup = Yes
16154      SabotageDuration = 30000
16155    End
16156  
16157  ; --- begin Death modules ---
16158    Behavior = SlowDeathBehavior ModuleTag_Death01
16159      DeathTypes          = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA -SUICIDED
16160      SinkDelay           = 3000
16161      SinkRate            = 0.5     ; in Dist/Sec
16162      DestructionDelay    = 8000
16163      FX                  = INITIAL FX_RebelDie
16164    End
16165    Behavior = SlowDeathBehavior ModuleTag_Death02
16166      DeathTypes          = NONE +CRUSHED +SPLATTED
16167      SinkDelay           = 3000
16168      SinkRate            = 0.5     ; in Dist/Sec
16169      DestructionDelay    = 8000
16170      FX                  = INITIAL FX_GIDieCrushed
16171    End
16172    Behavior = SlowDeathBehavior ModuleTag_Death03
16173      DeathTypes          = NONE +EXPLODED
16174      SinkDelay           = 3000
16175      SinkRate            = 0.5     ; in Dist/Sec
16176      DestructionDelay    = 8000
16177      FX                  = INITIAL FX_RebelDie
16178      FlingForce          = 8
16179      FlingForceVariance  = 3
16180      FlingPitch          = 60
16181      FlingPitchVariance  = 10
16182    End
16183    Behavior = SlowDeathBehavior ModuleTag_Death04
16184      DeathTypes          = NONE +BURNED
16185      DestructionDelay    = 0
16186      FX                  = INITIAL FX_DieByFireGLA
16187      OCL                 = INITIAL OCL_FlamingInfantry
16188    End
16189    Behavior = SlowDeathBehavior ModuleTag_Death05
16190      DeathTypes          = NONE +POISONED
16191      DestructionDelay    = 0
16192      FX                  = INITIAL FX_DieByToxinGLA
16193      OCL                 = INITIAL OCL_ToxicInfantry
16194    End
16195    Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag
16196      DeathTypes          = NONE +POISONED_BETA
16197      DestructionDelay    = 0
16198      FX                  = INITIAL FX_DieByToxinGLA
16199      OCL                 = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones
16200    End
16201    Behavior = SlowDeathBehavior ModuleTag_Death07
16202      DeathTypes          = NONE +POISONED_GAMMA
16203      DestructionDelay    = 0
16204      FX                  = INITIAL FX_DieByToxinGLA
16205      OCL                 = INITIAL OCL_ToxicInfantryGamma
16206    End
16207  ; --- end Death modules ---
16208  
16209    Behavior = PoisonedBehavior ModuleTag_16
16210      PoisonDamageInterval = 100  ; Every this many msec I will retake the poison damage dealt me...
16211      PoisonDuration = 3000       ; ... for this long after last hit by poison damage
16212    End
16213    
16214    
16215  
16216  ;  Behavior = SpecialAbility ModuleTag_17
16217  ;    SpecialPowerTemplate      = SpecialAbilityRebelCaptureBuilding
16218  ;    UpdateModuleStartsAttack  = Yes
16219  ;    StartsPaused              = Yes
16220  ;    InitiateSound         = RebelVoiceCapture
16221  ;  End
16222  ;  Behavior = SpecialAbilityUpdate ModuleTag_18
16223  ;    SpecialPowerTemplate  = SpecialAbilityRebelCaptureBuilding
16224  ;    StartAbilityRange  = 5.0
16225  ;    UnpackTime            = 3000  ; (changing this will scale anim speed)
16226  ;    PreparationTime       = 20000 ; time to complete hack once prepared (changing this will scale anim speed)
16227  ;    PackTime              = 2000  ; (changing this will scale anim speed)
16228  ;    DoCaptureFX           = Yes
16229  ;    AwardXPForTriggering  = 12
16230  ;    ;SkillPointsForTriggering = ???  -- Dustin, fill me out if you want different balance values.
16231  ;  End
16232  
16233    Geometry = CYLINDER
16234    GeometryMajorRadius = 10.0
16235    GeometryMinorRadius = 10.0
16236    GeometryHeight = 12.0
16237    GeometryIsSmall = Yes
16238    Shadow = SHADOW_DECAL
16239    ShadowSizeX = 14;
16240    ShadowSizeY = 14;
16241    ShadowTexture = ShadowI;
16242    BuildCompletion = APPEARS_AT_RALLY_POINT
16243  
16244  End
16245  
16246  
16247  
16248  ;----------------------------¸ÄΪT72--------------------------------------------------
16249  Object Demo_GLATankScorpion
16250  
16251    ; *** ART Parameters ***
16252    SelectPortrait         = T16
16253    ButtonImage            = T16
16254    UpgradeCameo1 = NONE
16255    UpgradeCameo2 = Upgrade_GLAAPRockets
16256    UpgradeCameo3 = Upgrade_GLAToxinShells
16257    UpgradeCameo4 = Upgrade_GLAJunkRepair
16258    ;UpgradeCameo5 = NONE
16259  
16260    Draw = W3DTankDraw ModuleTag_01
16261      OkToChangeModelColor = Yes
16262  
16263      ProjectileBoneFeedbackEnabledSlots = SECONDARY ; WeaponLaunchBone will be shown/hidden, not just used for firing offset
16264  
16265      DefaultConditionState
16266        Model = T-72
16267        Turret = Turret01
16268        ; note, order-dependent: we must hide/show Missile AFTER we hide/show MissileRack!
16269        HideSubObject = MissleRack01 Missile ; MissileRack misspelled in the Art
16270        WeaponFireFXBone = PRIMARY Muzzle
16271        WeaponRecoilBone = PRIMARY Barrel
16272        WeaponMuzzleFlash = PRIMARY MuzzleFX
16273        WeaponLaunchBone = PRIMARY Muzzle
16274      End
16275  
16276      ConditionState = REALLYDAMAGED
16277        Model = T-72
16278      End
16279  
16280      ConditionState = RUBBLE
16281        Model = UVLiteTank_d
16282      End
16283  
16284      ConditionState = WEAPONSET_PLAYER_UPGRADE
16285        ShowSubObject = MissleRack01
16286        WeaponFireFXBone = SECONDARY WeaponA
16287        WeaponLaunchBone = SECONDARY WeaponA
16288        WeaponHideShowBone = SECONDARY Missile
16289      End
16290  
16291      ConditionState = WEAPONSET_PLAYER_UPGRADE REALLYDAMAGED
16292        Model = T-72
16293        ShowSubObject = MissleRack01
16294        WeaponFireFXBone = SECONDARY WeaponA
16295        WeaponLaunchBone = SECONDARY WeaponA
16296        WeaponHideShowBone = SECONDARY Missile
16297      End
16298  
16299      TrackMarks = EXTnkTrack.tga
16300      TreadAnimationRate      = 2.0  ; amount of tread texture to move per second
16301    End
16302  
16303    ; ***DESIGN parameters ***
16304    DisplayName           = OBJECT:t72
16305    Side                  = GLADemolitionGeneral
16306    EditorSorting         = VEHICLE
16307    TransportSlotCount    = 3                 ;how many "slots" we take in a transport (0 == not transportable)
16308    WeaponSet
16309      Conditions = None
16310      Weapon = PRIMARY  t72TankGun  
16311      Weapon = SECONDARY  DozerMineDisarmingWeapon
16312      Conditions = MINE_CLEARING_DETAIL
16313     
16314  
16315    End
16316  
16317    ArmorSet
16318      Conditions      = None
16319      Armor           = T72TankArmor
16320      DamageFX        = TankDamageFX
16321    End
16322    BuildCost       = 850
16323    BuildTime       = 10.0          ;in seconds
16324    VisionRange     = 125
16325    ShroudClearingRange = 300
16326    Prerequisites
16327      Object = Demo_GLAArmsDealer
16328  
16329     
16330      
16331    End
16332  
16333    ExperienceValue = 60 60 120 200    ;Experience point value at each level
16334    ExperienceRequired = 0 100 200 400  ;Experience points needed to gain each level
16335    IsTrainable = Yes             ;Can gain experience
16336    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
16337    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
16338    CommandSet      = GLATankt72CommandSet
16339  
16340    ; *** AUDIO Parameters ***
16341    VoiceSelect = ScorpionTankVoiceSelect
16342    VoiceMove = ScorpionTankVoiceMove
16343    VoiceAttack = ScorpionTankVoiceAttack
16344    SoundMoveStart = ScorpionTankMoveStart
16345    SoundMoveStartDamaged = ScorpionTankMoveStart
16346    VoiceGuard = ScorpionTankVoiceMove
16347  
16348    UnitSpecificSounds
16349      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
16350      VoiceCreate          = ScorpionTankVoiceCreate
16351      ;TurretMoveStart = NoSound
16352      TurretMoveLoop = TurretMoveLoop
16353      VoiceEnter = ScorpionTankVoiceMove
16354    End
16355  
16356    ; *** ENGINEERING Parameters ***
16357    RadarPriority = UNIT
16358    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE
16359  
16360    Body = ActiveBody ModuleTag_02
16361      MaxHealth       = 450.0
16362      InitialHealth   = 450.0
16363    End
16364  
16365    Behavior = AIUpdateInterface ModuleTag_03
16366      Turret
16367        TurretTurnRate = 100
16368        RecenterTime = 5000   ; how long to wait during idle before recentering
16369        ControlledWeaponSlots = PRIMARY SECONDARY
16370      End
16371      AutoAcquireEnemiesWhenIdle = Yes
16372    End
16373    Locomotor = SET_NORMAL NuclearBattleMasterLocomotor
16374    Behavior = PhysicsBehavior ModuleTag_04
16375      Mass = 50.0
16376    End
16377    Behavior = AutoHealBehavior ModuleTag_05
16378      HealingAmount = 2
16379      HealingDelay = 1000 ; msec
16380      TriggeredBy = Upgrade_GLAJunkRepair
16381    End
16382  
16383    ; Catch fire, and explode death
16384    Behavior = SlowDeathBehavior ModuleTag_06
16385      DeathTypes = ALL -CRUSHED -SPLATTED
16386      ProbabilityModifier = 50
16387      DestructionDelay = 2000
16388      DestructionDelayVariance = 300
16389      FX  = INITIAL  FX_CrusaderCatchFire
16390      OCL = FINAL    OCL_GenericTankDeathEffect
16391      FX  = FINAL    FX_BattleMasterExplosionOneFinal
16392    End
16393  
16394    Behavior = WeaponSetUpgrade ModuleTag_07
16395      TriggeredBy = Upgrade_GLAScorpionRocket
16396    End
16397  
16398    Behavior = DestroyDie ModuleTag_09
16399      DeathTypes = NONE +CRUSHED +SPLATTED
16400    End
16401  
16402    ; A crushing defeat
16403    Behavior = FXListDie ModuleTag_10
16404      DeathTypes = NONE +CRUSHED +SPLATTED
16405      DeathFX = FX_CarCrush
16406    End
16407    Behavior = CreateObjectDie ModuleTag_11
16408      DeathTypes = NONE +CRUSHED +SPLATTED
16409      CreationList = OCL_CrusaderTank_CrushEffect
16410    End
16411    Behavior = CreateCrateDie ModuleTag_12
16412      CrateData = SalvageCrateData
16413      ;CrateData = EliteTankCrateData
16414      ;CrateData = HeroicTankCrateData
16415    End
16416  
16417    Behavior                 = TransitionDamageFX ModuleTag_13
16418      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
16419      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
16420    End
16421  
16422    Behavior = FlammableUpdate ModuleTag_21
16423      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
16424      AflameDamageAmount = 3       ; taking this much damage...
16425      AflameDamageDelay = 500       ; this often.
16426    End
16427      Behavior = StealthDetectorUpdate ModuleTag_08
16428      DetectionRate   = 500   ; how often to rescan for stealthed things in my sight (msec)
16429      ;DetectionRange = ??? ;Dustin, enable this for independant balancing!
16430      CanDetectWhileGarrisoned  = No ;Garrisoned means being in a structure that you units can shoot out of.
16431      CanDetectWhileContained   = No ;Contained means being in a transport or tunnel network.
16432    End
16433  
16434    Geometry = BOX
16435    GeometryMajorRadius = 14.0
16436    GeometryMinorRadius = 9.0
16437    GeometryHeight = 10.5
16438    GeometryIsSmall = Yes
16439    Shadow = SHADOW_VOLUME
16440    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
16441  
16442  End
16443  
16444  ;------------------------------------------------------------------------------
16445  ;GLA Rocket Buggy
16446  Object Demo_GLAVehicleRocketBuggy
16447  
16448    ; *** ART Parameters ***
16449    SelectPortrait         = SURocketBuggy_L
16450    ButtonImage            = SURocketBuggy
16451    
16452    UpgradeCameo1 = Upgrade_GLABuggyAmmo
16453    UpgradeCameo2 = Upgrade_GLAAPRockets
16454    UpgradeCameo3 = Upgrade_GLAJunkRepair
16455    ;UpgradeCameo4 = NONE
16456    ;UpgradeCameo5 = NONE
16457    
16458    Draw = W3DTruckDraw ModuleTag_01
16459      OkToChangeModelColor = Yes
16460  
16461      DefaultConditionState
16462        Model = UVRockBug
16463        Turret = Turret
16464        ShowSubObject = Turret
16465        HideSubObject = TurretUp01 
16466        WeaponFireFXBone = PRIMARY WeaponA
16467        WeaponLaunchBone = PRIMARY WeaponA
16468      End
16469      
16470      ConditionState = REALLYDAMAGED
16471        Model = UVRockBug_D
16472        Turret = Turret
16473        ShowSubObject = Turret
16474        HideSubObject = TurretUp01 
16475        WeaponFireFXBone = PRIMARY WeaponA
16476        WeaponLaunchBone = PRIMARY WeaponA
16477      End
16478      
16479      ConditionState = RUBBLE
16480        Model = UVRockBug_D
16481        Turret = Turret
16482        ShowSubObject = Turret
16483        HideSubObject = TurretUp01 
16484        WeaponFireFXBone = PRIMARY WeaponA
16485        WeaponLaunchBone = PRIMARY WeaponA
16486      End
16487  
16488      ConditionState =   WEAPONSET_PLAYER_UPGRADE
16489        Model = UVRockBug
16490        Turret = TurretUp01
16491        ShowSubObject = TurretUp01 
16492        HideSubObject = Turret
16493        WeaponFireFXBone = PRIMARY WeaponB
16494        WeaponLaunchBone = PRIMARY WeaponB
16495      End
16496      
16497      ConditionState =   WEAPONSET_PLAYER_UPGRADE REALLYDAMAGED
16498        Model = UVRockBug_D
16499        Turret = TurretUp01
16500        ShowSubObject = TurretUp01 
16501        HideSubObject = Turret
16502        WeaponFireFXBone = PRIMARY WeaponB
16503        WeaponLaunchBone = PRIMARY WeaponB
16504      End
16505      
16506      ConditionState =   WEAPONSET_PLAYER_UPGRADE RUBBLE
16507        Model = UVRockBug_D
16508        Turret = TurretUp01
16509        ShowSubObject = TurretUp01 
16510        HideSubObject = Turret
16511        WeaponFireFXBone = PRIMARY WeaponB
16512        WeaponLaunchBone = PRIMARY WeaponB
16513      End
16514  
16515      TrackMarks = EXTireTrack.tga
16516  
16517      Dust                        = RocketBuggyDust
16518      DirtSpray                   = RocketBuggyDirtSpray
16519      PowerslideSpray             = RocketBuggyDirtPowerSlide
16520  
16521      ; These parameters are only used if the model has a separate suspension, 
16522      ; and the locomotor has HasSuspension = Yes.
16523      LeftFrontTireBone           = Tire01
16524      RightFrontTireBone          = Tire02
16525      LeftRearTireBone            = Tire03
16526      RightRearTireBone           = Tire04
16527      TireRotationMultiplier      = 0.2   ; this * speed = rotation.
16528      PowerslideRotationAddition  = 2.5   ; This speed is added to the rotation speed when powersliding.
16529  
16530    End
16531  
16532    ; ***DESIGN parameters ***
16533    DisplayName         = OBJECT:RocketBuggy
16534    Side                = GLADemolitionGeneral
16535    EditorSorting       = VEHICLE
16536    TransportSlotCount  = 3                 ;how many "slots" we take in a transport (0 == not transportable)
16537    WeaponSet
16538      Conditions = None 
16539      Weapon = PRIMARY BuggyRocketREDWeapon
16540      Weapon = TERTIARY TerroristSuicideNotARealWeapon
16541      AutoChooseSources = TERTIARY NONE
16542    End
16543    WeaponSet
16544      Conditions = PLAYER_UPGRADE 
16545      Weapon = PRIMARY BuggyRocketWeaponUpgraded
16546      Weapon = TERTIARY TerroristSuicideNotARealWeapon
16547      AutoChooseSources = TERTIARY NONE
16548    End
16549    ArmorSet
16550      Conditions      = None
16551      Armor           = TruckArmor
16552      DamageFX        = TankDamageFX
16553    End
16554    BuildCost       = 1000
16555    BuildTime       = 10.0          ;in seconds    
16556    VisionRange     = 180
16557    ShroudClearingRange = 300
16558    Prerequisites
16559      Object = Demo_GLAArmsDealer
16560      Object = Demo_GLAPalace
16561    End
16562  
16563    ExperienceValue       = 50 50 100 150    ;Experience point value at each level
16564    ExperienceRequired    = 0 200 400 800  ;Experience points needed to gain each level
16565    IsTrainable           = Yes             ;Can gain experience
16566    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
16567    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
16568    CommandSet            = Demo_GLAVehicleRocketBuggyCommandSet
16569  
16570    ; *** AUDIO Parameters ***
16571    VoiceSelect = RocketBuggyVoiceSelect
16572    VoiceMove = RocketBuggyVoiceMove
16573    VoiceAttack = RocketBuggyVoiceAttack
16574    SoundMoveStart = RocketBuggyMoveStart
16575    SoundMoveStartDamaged = RocketBuggyMoveStart
16576    VoiceGuard = RocketBuggyVoiceMove
16577  
16578  
16579    UnitSpecificSounds
16580      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
16581      VoiceCreate          = RocketBuggyVoiceCreate
16582      TurretMoveStart = NoSound
16583      TurretMoveLoop = TurretMoveLoop  
16584    ; Required for the W3DTruckDraw module
16585      TruckLandingSound = RocketBuggyLand
16586      TruckPowerslideSound = RocketBuggyPowerslide
16587      VoiceCrush      = RocketBuggyVoiceCrush
16588      VoiceEnter = RocketBuggyVoiceMove
16589    End
16590  
16591    ; *** ENGINEERING Parameters ***
16592    RadarPriority = UNIT
16593    KindOf = PRELOAD SELECTABLE CAN_ATTACK DONT_AUTO_CRUSH_INFANTRY ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE
16594  
16595    Body = ActiveBody ModuleTag_02
16596      MaxHealth       = 120
16597      InitialHealth   = 120
16598  
16599      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
16600      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
16601      SubdualDamageCap = 240
16602      SubdualDamageHealRate = 500
16603      SubdualDamageHealAmount = 50
16604    End
16605    Behavior = AIUpdateInterface ModuleTag_03
16606      Turret
16607        TurretTurnRate = 90
16608        ControlledWeaponSlots = PRIMARY
16609      End
16610      AutoAcquireEnemiesWhenIdle = Yes
16611    End
16612    Locomotor = SET_NORMAL RocketBuggyLocomotor
16613    Behavior = PhysicsBehavior ModuleTag_04
16614      Mass = 50.0
16615    End
16616  
16617  ; The pop up AirDeath 
16618    Behavior = SlowDeathBehavior ModuleTag_05
16619      DeathTypes = ALL -CRUSHED -SPLATTED
16620      ProbabilityModifier = 5
16621      ModifierBonusPerOverkillPercent = 20%  ; negative means less likely to pick this in the face of much damage, positive means more likely
16622      DestructionDelay = 0
16623      FX = INITIAL FX_BuggyNewDeathExplosion
16624      OCL = FINAL OCL_RocketBuggyAirDeathStart
16625    End
16626  
16627    Behavior = AutoHealBehavior ModuleTag_08
16628      HealingAmount = 2
16629      HealingDelay = 1000 ; msec
16630      TriggeredBy = Upgrade_GLAJunkRepair
16631    End
16632  
16633    Behavior = WeaponSetUpgrade ModuleTag_09
16634      TriggeredBy = Upgrade_GLABuggyAmmo
16635    End
16636  
16637    Behavior = DestroyDie ModuleTag_11
16638      DeathTypes = NONE +CRUSHED +SPLATTED
16639    End
16640  
16641    ; A crushing defeat
16642    Behavior = FXListDie ModuleTag_12
16643      DeathTypes = NONE +CRUSHED +SPLATTED
16644      DeathFX = FX_CarCrush
16645    End
16646    Behavior = CreateObjectDie ModuleTag_13
16647      DeathTypes = NONE +CRUSHED +SPLATTED
16648      CreationList = OCL_RocketBuggy_CrushEffect
16649    End
16650    Behavior = CreateCrateDie ModuleTag_14
16651      CrateData = SalvageCrateData
16652      ;CrateData = EliteTankCrateData
16653      ;CrateData = HeroicTankCrateData
16654    End
16655    
16656    Behavior                 = TransitionDamageFX ModuleTag_15
16657      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
16658      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
16659    End
16660  
16661    Behavior = FlammableUpdate ModuleTag_21
16662      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
16663      AflameDamageAmount = 3       ; taking this much damage...
16664      AflameDamageDelay = 500       ; this often.
16665    End
16666  
16667    Behavior = SlowDeathBehavior ModuleTag_Death17
16668      DeathTypes          = NONE +SUICIDED +EXPLODED
16669      SinkDelay           = 3000
16670      SinkRate            = 0.5     ; in Dist/Sec
16671      DestructionDelay    = 8000
16672      FX                  = INITIAL FX_TerroristExplode
16673      FlingForce          = 8
16674      FlingForceVariance  = 3
16675      FlingPitch          = 60
16676      FlingPitchVariance  = 10
16677    End
16678  
16679  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death24
16680  ;    DeathWeapon   = Demo_SuicideDynamitePack
16681  ;    StartsActive  = Yes                      ; turned on by upgrade
16682  ;    DeathTypes = NONE +SUICIDED
16683  ;  End
16684  ;
16685  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag999
16686  ;    DeathWeapon   = Demo_SuicideDynamitePackPlusFire
16687  ;    StartsActive  = No
16688  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
16689  ;    RequiresAllTriggers = Yes; 
16690  ;    DeathTypes = ALL -SUICIDED -POISONED -POISONED_BETA -POISONED_GAMMA
16691  ;  End
16692  ;
16693  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag998
16694  ;    DeathWeapon   = Demo_SuicideDynamitePack
16695  ;    StartsActive  = No
16696  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
16697  ;    RequiresAllTriggers = Yes; 
16698  ;    DeathTypes = NONE +SUICIDED
16699  ;  End
16700  
16701    Behavior = FireWeaponWhenDeadBehavior ModuleTag_George 
16702      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
16703      StartsActive  = No
16704      TriggeredBy   = Demo_Upgrade_SuicideBomb
16705      DeathTypes = ALL
16706    End;
16707  
16708    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Bob
16709      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
16710      StartsActive  = No
16711      TriggeredBy   = Demo_Upgrade_SuicideBomb
16712      DeathTypes = NONE 
16713    End
16714  
16715    Behavior = CommandSetUpgrade ModuleTag_19
16716      CommandSet = Demo_GLAVehicleRocketBuggyCommandSetUpgrade
16717      TriggeredBy = Demo_Upgrade_SuicideBomb
16718    End
16719  
16720    Geometry = BOX
16721    GeometryMajorRadius = 13.0
16722    GeometryMinorRadius = 9.0
16723    GeometryHeight = 7.5     
16724    GeometryIsSmall = Yes    
16725  
16726    Shadow = SHADOW_VOLUME
16727    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
16728  
16729  End
16730  
16731  
16732  
16733  
16734  ;------------------------------------------------------------------------------
16735  ;GLA Combat Bike
16736  Object Demo_GLAVehicleCombatBike
16737  
16738    ; *** ART Parameters ***
16739    SelectPortrait         = SUComBike_L
16740    ButtonImage            = SUComBike_L
16741    
16742    UpgradeCameo1 = Upgrade_GLAJunkRepair
16743    ;UpgradeCameo2 = NONE
16744    ;UpgradeCameo3 = NONE
16745    ;UpgradeCameo4 = NONE
16746    ;UpgradeCameo5 = NONE
16747  
16748    
16749    Draw = W3DTruckDraw ModuleTag_01
16750      OkToChangeModelColor = Yes
16751  
16752      ;Normal Bike
16753      ;------------------------------
16754      DefaultConditionState
16755        Model = UVComBike
16756        WeaponFireFXBone    = PRIMARY Muzzle_B
16757        WeaponLaunchBone    = PRIMARY RocketFX03
16758        WeaponMuzzleFlash   = PRIMARY MuzzleFX_B
16759        ParticleSysBone     = SMOKE CombatBikeSmokeLight
16760  
16761        HideSubObject = BOMBBIKE ; Hide from all states except terrorist (rider 5)
16762  
16763  
16764      End
16765      AliasConditionState RIDER1
16766      AliasConditionState RIDER1 MOVING
16767      AliasConditionState RIDER6
16768      AliasConditionState RIDER6 MOVING
16769      AliasConditionState RIDER7
16770      AliasConditionState RIDER7 MOVING
16771      ConditionState = REALLYDAMAGED
16772        Model = UVComBike_d
16773      End
16774      AliasConditionState RIDER1 REALLYDAMAGED
16775      AliasConditionState RIDER1 MOVING REALLYDAMAGED
16776      AliasConditionState RIDER6 REALLYDAMAGED
16777      AliasConditionState RIDER6 MOVING REALLYDAMAGED
16778      AliasConditionState RIDER7 REALLYDAMAGED
16779      AliasConditionState RIDER7 MOVING REALLYDAMAGED
16780    
16781      ConditionState = TOPPLED
16782        Model = UVComBike_F
16783        Animation           = UVComBike_F.UVComBike_F
16784        AnimationMode       = ONCE
16785      End
16786      ConditionState = TOPPLED REALLYDAMAGED
16787        Model = UVComBike_dF
16788        Animation           = UVComBike_DF.UVComBike_DF
16789        AnimationMode       = ONCE
16790      End
16791  
16792      ConditionState = RIDER1 MOVING CENTER_TO_LEFT
16793        Model = UVComBike_A1
16794        Animation           = UVComBike_A1.UVComBike_A1
16795        AnimationMode       = ONCE
16796        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
16797      End
16798      AliasConditionState RIDER6 MOVING CENTER_TO_LEFT
16799      AliasConditionState RIDER7 MOVING CENTER_TO_LEFT
16800      ConditionState = RIDER1 MOVING CENTER_TO_LEFT REALLYDAMAGED
16801        Model = UVComBike_A1d
16802        Animation           = UVComBike_A1D.UVComBike_A1D
16803        AnimationMode       = ONCE
16804        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
16805      End
16806      AliasConditionState RIDER6 MOVING CENTER_TO_LEFT REALLYDAMAGED
16807      AliasConditionState RIDER7 MOVING CENTER_TO_LEFT REALLYDAMAGED
16808  
16809      ConditionState = RIDER1 MOVING LEFT_TO_CENTER
16810        Model = UVComBike_A1
16811        Animation           = UVComBike_A1.UVComBike_A1
16812        AnimationMode       = ONCE_BACKWARDS
16813        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
16814      End
16815      AliasConditionState RIDER6 MOVING LEFT_TO_CENTER
16816      AliasConditionState RIDER7 MOVING LEFT_TO_CENTER
16817      ConditionState = RIDER1 MOVING LEFT_TO_CENTER REALLYDAMAGED
16818        Model = UVComBike_A1d
16819        Animation           = UVComBike_A1D.UVComBike_A1D
16820        AnimationMode       = ONCE_BACKWARDS
16821        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
16822      End
16823      AliasConditionState RIDER6 MOVING LEFT_TO_CENTER REALLYDAMAGED
16824      AliasConditionState RIDER7 MOVING LEFT_TO_CENTER REALLYDAMAGED
16825  
16826      ConditionState = RIDER1 MOVING CENTER_TO_RIGHT
16827        Model = UVComBike_A2
16828        Animation           = UVComBike_A2.UVComBike_A2
16829        AnimationMode       = ONCE
16830        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
16831      End
16832      AliasConditionState  RIDER6 MOVING CENTER_TO_RIGHT
16833      AliasConditionState  RIDER7 MOVING CENTER_TO_RIGHT
16834      ConditionState = RIDER1 MOVING CENTER_TO_RIGHT REALLYDAMAGED
16835        Model = UVComBike_A2d
16836        Animation           = UVComBike_A2D.UVComBike_A2D
16837        AnimationMode       = ONCE
16838        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
16839      End
16840      AliasConditionState  RIDER6 MOVING CENTER_TO_RIGHT REALLYDAMAGED
16841      AliasConditionState  RIDER7 MOVING CENTER_TO_RIGHT REALLYDAMAGED
16842  
16843      ConditionState = RIDER1 MOVING RIGHT_TO_CENTER
16844        Model = UVComBike_A2
16845        Animation           = UVComBike_A2.UVComBike_A2
16846        AnimationMode       = ONCE_BACKWARDS
16847        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
16848      End
16849      AliasConditionState RIDER6 MOVING RIGHT_TO_CENTER
16850      AliasConditionState RIDER7 MOVING RIGHT_TO_CENTER
16851      ConditionState = RIDER1 MOVING RIGHT_TO_CENTER REALLYDAMAGED
16852        Model = UVComBike_A2d
16853        Animation           = UVComBike_A2D.UVComBike_A2D
16854        AnimationMode       = ONCE_BACKWARDS
16855        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
16856      End
16857      AliasConditionState RIDER6 MOVING RIGHT_TO_CENTER REALLYDAMAGED
16858      AliasConditionState RIDER7 MOVING RIGHT_TO_CENTER REALLYDAMAGED
16859  
16860  
16861  
16862  
16863  
16864  
16865      ;Terror Bike
16866      ;------------------------------
16867      ConditionState  RIDER5
16868        Model = UVComBike
16869        WeaponFireFXBone    = PRIMARY Muzzle_B
16870        WeaponLaunchBone    = PRIMARY RocketFX03
16871        WeaponMuzzleFlash   = PRIMARY MuzzleFX_B
16872        ParticleSysBone     = SMOKE CombatBikeSmokeLight
16873        ShowSubObject = BOMBBIKE
16874      End
16875      AliasConditionState RIDER5 MOVING
16876  
16877      ConditionState = REALLYDAMAGED RIDER5
16878        Model = UVComBike_d
16879        ShowSubObject = BOMBBIKE
16880      End
16881      AliasConditionState RIDER5 MOVING REALLYDAMAGED
16882    
16883      ConditionState = TOPPLED RIDER5
16884        Model = UVComBike_F
16885        Animation           = UVComBike_F.UVComBike_F
16886        AnimationMode       = ONCE
16887        ShowSubObject = BOMBBIKE
16888      End
16889      ConditionState = TOPPLED REALLYDAMAGED RIDER5
16890        Model = UVComBike_dF
16891        Animation           = UVComBike_DF.UVComBike_DF
16892        AnimationMode       = ONCE
16893        ShowSubObject = BOMBBIKE
16894      End
16895  
16896      ConditionState = RIDER5 MOVING CENTER_TO_LEFT
16897        Model = UVComBike_A1
16898        Animation           = UVComBike_A1.UVComBike_A1
16899        AnimationMode       = ONCE
16900        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
16901        ShowSubObject = BOMBBIKE
16902      End
16903  
16904      ConditionState = RIDER5 MOVING CENTER_TO_LEFT REALLYDAMAGED
16905        Model = UVComBike_A1d
16906        Animation           = UVComBike_A1D.UVComBike_A1D
16907        AnimationMode       = ONCE
16908        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
16909        ShowSubObject = BOMBBIKE
16910      End
16911  
16912      ConditionState = RIDER5 MOVING LEFT_TO_CENTER
16913        Model = UVComBike_A1
16914        Animation           = UVComBike_A1.UVComBike_A1
16915        AnimationMode       = ONCE_BACKWARDS
16916        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
16917        ShowSubObject = BOMBBIKE
16918      End
16919  
16920      ConditionState = RIDER5 MOVING LEFT_TO_CENTER REALLYDAMAGED
16921        Model = UVComBike_A1d
16922        Animation           = UVComBike_A1D.UVComBike_A1D
16923        AnimationMode       = ONCE_BACKWARDS
16924        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
16925        ShowSubObject = BOMBBIKE
16926      End
16927  
16928      ConditionState = RIDER5 MOVING CENTER_TO_RIGHT
16929        Model = UVComBike_A2
16930        Animation           = UVComBike_A2.UVComBike_A2
16931        AnimationMode       = ONCE
16932        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
16933        ShowSubObject = BOMBBIKE
16934      End
16935  
16936      ConditionState = RIDER5 MOVING CENTER_TO_RIGHT REALLYDAMAGED
16937        Model = UVComBike_A2d
16938        Animation           = UVComBike_A2D.UVComBike_A2D
16939        AnimationMode       = ONCE
16940        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
16941        ShowSubObject = BOMBBIKE
16942      End
16943  
16944      ConditionState = RIDER5 MOVING RIGHT_TO_CENTER
16945        Model = UVComBike_A2
16946        Animation           = UVComBike_A2.UVComBike_A2
16947        AnimationMode       = ONCE_BACKWARDS
16948        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
16949        ShowSubObject = BOMBBIKE
16950      End
16951  
16952      ConditionState = RIDER5 MOVING RIGHT_TO_CENTER REALLYDAMAGED
16953        Model = UVComBike_A2d
16954        Animation           = UVComBike_A2D.UVComBike_A2D
16955        AnimationMode       = ONCE_BACKWARDS
16956        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
16957        ShowSubObject = BOMBBIKE
16958      End
16959  
16960  
16961  
16962      ;Gun Bike
16963      ;------------------------------
16964      ConditionState = RIDER2
16965        Model = UVComBikeG
16966      End
16967      AliasConditionState RIDER2 MOVING
16968      AliasConditionState RIDER4
16969      AliasConditionState RIDER4 MOVING
16970      ConditionState = RIDER2 REALLYDAMAGED
16971        Model = UVComBikeG_d
16972      End
16973      AliasConditionState RIDER2 MOVING REALLYDAMAGED
16974      AliasConditionState RIDER4 REALLYDAMAGED
16975      AliasConditionState RIDER4 MOVING REALLYDAMAGED
16976     
16977      ConditionState = RIDER2 MOVING CENTER_TO_LEFT
16978        Model = UVComBikeG
16979        Animation           = UVComBikeG_A1.UVComBikeG_A1
16980        AnimationMode       = ONCE
16981        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
16982      End
16983      AliasConditionState RIDER4 MOVING CENTER_TO_LEFT
16984      ConditionState = RIDER2 MOVING CENTER_TO_LEFT REALLYDAMAGED
16985        Model = UVComBikeG_d
16986        Animation           = UVComBikeG_A1.UVComBikeG_A1
16987        AnimationMode       = ONCE
16988        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
16989      End
16990      AliasConditionState RIDER4 MOVING CENTER_TO_LEFT REALLYDAMAGED
16991  
16992      ConditionState = RIDER2 MOVING LEFT_TO_CENTER
16993        Model = UVComBikeG
16994        Animation           = UVComBikeG_A1.UVComBikeG_A1
16995        AnimationMode       = ONCE_BACKWARDS
16996        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
16997      End
16998      AliasConditionState RIDER4 MOVING LEFT_TO_CENTER
16999      ConditionState = RIDER2 MOVING LEFT_TO_CENTER REALLYDAMAGED
17000        Model = UVComBikeG_d
17001        Animation           = UVComBikeG_A1.UVComBikeG_A1
17002        AnimationMode       = ONCE_BACKWARDS
17003        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
17004      End
17005      AliasConditionState RIDER4 MOVING LEFT_TO_CENTER REALLYDAMAGED
17006  
17007      ConditionState = RIDER2 MOVING CENTER_TO_RIGHT
17008        Model = UVComBikeG
17009        Animation           = UVComBikeG_A2.UVComBikeG_A2
17010        AnimationMode       = ONCE
17011        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
17012      End
17013      AliasConditionState RIDER4 MOVING CENTER_TO_RIGHT
17014      ConditionState = RIDER2 MOVING CENTER_TO_RIGHT REALLYDAMAGED
17015        Model = UVComBikeG_d
17016        Animation           = UVComBikeG_A2.UVComBikeG_A2
17017        AnimationMode       = ONCE
17018        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
17019      End
17020      AliasConditionState RIDER4 MOVING CENTER_TO_RIGHT REALLYDAMAGED
17021  
17022      ConditionState = RIDER2 MOVING RIGHT_TO_CENTER
17023        Model = UVComBikeG
17024        Animation           = UVComBikeG_A2.UVComBikeG_A2
17025        AnimationMode       = ONCE_BACKWARDS
17026        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
17027      End
17028      AliasConditionState RIDER4 MOVING RIGHT_TO_CENTER
17029      ConditionState = RIDER2 MOVING RIGHT_TO_CENTER REALLYDAMAGED
17030        Model = UVComBikeG_d
17031        Animation           = UVComBikeG_A2.UVComBikeG_A2
17032        AnimationMode       = ONCE_BACKWARDS
17033        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
17034      End
17035      AliasConditionState RIDER4 MOVING RIGHT_TO_CENTER REALLYDAMAGED
17036  
17037      ;Missile Bike
17038      ;------------------------------
17039      ConditionState = RIDER3
17040        Model = UVComBikeTN
17041      End
17042      AliasConditionState RIDER3 MOVING
17043      ConditionState = RIDER3 REALLYDAMAGED
17044        Model = UVComBikeTN_d
17045      End
17046      AliasConditionState RIDER3 MOVING REALLYDAMAGED
17047    
17048      ConditionState = RIDER3 MOVING CENTER_TO_LEFT
17049        Model = UVComBikeTN_A1
17050        Animation           = UVComBikeTN_A1.UVComBikeTN_A1
17051        AnimationMode       = ONCE
17052        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
17053      End
17054      ConditionState = RIDER3 MOVING CENTER_TO_LEFT REALLYDAMAGED
17055        Model = UVComBikeTN_A1d
17056        Animation           = UVComBikeTN_A1D.UVComBikeTN_A1D
17057        AnimationMode       = ONCE
17058        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
17059      End
17060  
17061      ConditionState = RIDER3 MOVING LEFT_TO_CENTER
17062        Model = UVComBikeTN_A1
17063        Animation           = UVComBikeTN_A1.UVComBikeTN_A1
17064        AnimationMode       = ONCE_BACKWARDS
17065        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
17066      End
17067      ConditionState = RIDER3 MOVING LEFT_TO_CENTER REALLYDAMAGED
17068        Model = UVComBikeTN_A1d
17069        Animation           = UVComBikeTN_A1D.UVComBikeTN_A1D
17070        AnimationMode       = ONCE_BACKWARDS
17071        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
17072      End
17073  
17074      ConditionState = RIDER3 MOVING CENTER_TO_RIGHT
17075        Model = UVComBikeTN_A2
17076        Animation           = UVComBikeTN_A2D.UVComBikeTN_A2D
17077        AnimationMode       = ONCE
17078        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
17079      End
17080      ConditionState = RIDER3 MOVING CENTER_TO_RIGHT REALLYDAMAGED
17081        Model = UVComBikeTN_A2d
17082        Animation           = UVComBikeTN_A2D.UVComBikeTN_A2D
17083        AnimationMode       = ONCE
17084        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
17085      End
17086  
17087      ConditionState = RIDER3 MOVING RIGHT_TO_CENTER
17088        Model = UVComBikeTN_A2
17089        Animation           = UVComBikeTN_A2.UVComBikeTN_A2
17090        AnimationMode       = ONCE_BACKWARDS
17091        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
17092      End
17093      ConditionState = RIDER3 MOVING RIGHT_TO_CENTER REALLYDAMAGED
17094        Model = UVComBikeTN_A2d
17095        Animation           = UVComBikeTN_A2D.UVComBikeTN_A2D
17096        AnimationMode       = ONCE_BACKWARDS
17097        ParticleSysBone     = SMOKE CombatBikeSmokeHeavy
17098      End
17099  
17100      TrackMarks = EXTireTrack03.tga
17101  
17102      Dust                        = CombatBikeDust
17103      DirtSpray                   = CombatBikeDirtSpray
17104      PowerslideSpray             = CombatBikeDirtPowerSlide
17105  
17106      ; These parameters are only used if the model has a separate suspension, 
17107      ; and the locomotor has HasSuspension = Yes.
17108      LeftFrontTireBone           = Tire01
17109      LeftRearTireBone            = Tire00
17110      TireRotationMultiplier      = 0.2   ; this * speed = rotation.
17111      PowerslideRotationAddition  = 2.5   ; This speed is added to the rotation speed when powersliding.
17112  
17113    End
17114  
17115    Draw = W3DModelDraw ModuleTag_Rider01
17116      OkToChangeModelColor = Yes
17117  
17118      DefaultConditionState
17119        ;**************************************************
17120        ;*** Must have a default model in order to see
17121        ;*** house color!!!
17122        ;**************************************************
17123        Model = UIWrkr_SKN
17124        ;WeaponFireFXBone    = PRIMARY Muzzle
17125        ;WeaponLaunchBone    = PRIMARY Muzzle
17126        WeaponMuzzleFlash   = PRIMARY MuzzleFX
17127      End
17128      AliasConditionState MOVING
17129  
17130      ;Worker animations
17131      ;-----------------------
17132      ConditionState = RIDER1 
17133        Model = UIWrkr_SKN
17134        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A5
17135        AnimationMode = LOOP
17136      End
17137      ConditionState = RIDER1 MOVING
17138        Model = UIWrkr_SKN
17139        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A4
17140        AnimationMode = LOOP
17141      End
17142      ConditionState = RIDER1 MOVING CENTER_TO_LEFT
17143        Model = UIWrkr_SKN
17144        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A1
17145        AnimationMode       = ONCE
17146      End
17147      ConditionState = RIDER1 MOVING LEFT_TO_CENTER
17148        Model = UIWrkr_SKN
17149        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A1
17150        AnimationMode       = ONCE_BACKWARDS
17151      End
17152      ConditionState = RIDER1 MOVING CENTER_TO_RIGHT
17153        Model = UIWrkr_SKN
17154        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A2
17155        AnimationMode       = ONCE
17156      End
17157      ConditionState = RIDER1 MOVING RIGHT_TO_CENTER
17158        Model = UIWrkr_SKN
17159        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A2
17160        AnimationMode       = ONCE_BACKWARDS
17161      End
17162  
17163  
17164      ;Rebel animations
17165      ;-----------------------
17166      ConditionState = RIDER2 
17167        Model = UIRGrd_SKN
17168        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A5
17169        AnimationMode = LOOP
17170      End
17171      ConditionState = RIDER2 MOVING
17172        Model = UIRGrd_SKN
17173        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A4
17174        AnimationMode = LOOP
17175      End
17176      ConditionState = RIDER2 MOVING CENTER_TO_LEFT
17177        Model = UIRGrd_SKN
17178        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A1
17179        AnimationMode       = ONCE
17180      End
17181      ConditionState = RIDER2 MOVING LEFT_TO_CENTER
17182        Model = UIRGrd_SKN
17183        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A1
17184        AnimationMode       = ONCE_BACKWARDS
17185      End
17186      ConditionState = RIDER2 MOVING CENTER_TO_RIGHT
17187        Model = UIRGrd_SKN
17188        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A2
17189        AnimationMode       = ONCE
17190      End
17191      ConditionState = RIDER2 MOVING RIGHT_TO_CENTER
17192        Model = UIRGrd_SKN
17193        Animation           = UIRGrd_SKL.UIRGrd_CmBk_A2
17194        AnimationMode       = ONCE_BACKWARDS
17195      End
17196  
17197      ;RPG Trooper animations
17198      ;-----------------------
17199      ConditionState = RIDER3 
17200        Model = UITunF_SKN2
17201        Animation           = UITunF_SKL.UITunF_CmBk_A5
17202        AnimationMode = LOOP
17203      End
17204      ConditionState = RIDER3 MOVING
17205        Model = UITunF_SKN2
17206        Animation           = UITunF_SKL.UITunF_CmBk_A4
17207        AnimationMode = LOOP
17208      End
17209      ConditionState = RIDER3 MOVING CENTER_TO_LEFT
17210        Model = UITunF_SKN2
17211        Animation           = UITunF_SKL.UITunF_CmBk_A1
17212        AnimationMode       = ONCE
17213      End
17214      ConditionState = RIDER3 MOVING LEFT_TO_CENTER
17215        Model = UITunF_SKN2
17216        Animation           = UITunF_SKL.UITunF_CmBk_A1
17217        AnimationMode       = ONCE_BACKWARDS
17218      End
17219      ConditionState = RIDER3 MOVING CENTER_TO_RIGHT
17220        Model = UITunF_SKN2
17221        Animation           = UITunF_SKL.UITunF_CmBk_A2
17222        AnimationMode       = ONCE
17223      End
17224      ConditionState = RIDER3 MOVING RIGHT_TO_CENTER
17225        Model = UITunF_SKN2
17226        Animation           = UITunF_SKL.UITunF_CmBk_A2
17227        AnimationMode       = ONCE_BACKWARDS
17228      End
17229  
17230      ;Jarmen Kell animations
17231      ;-----------------------
17232      ConditionState = RIDER4 
17233        Model = UIHERO_SKN
17234        Animation           = UIHERO_SKL.UIHERO_CmBk_A5
17235        AnimationMode = LOOP
17236      End
17237      ConditionState = RIDER4 MOVING
17238        Model = UIHERO_SKN
17239        Animation           = UIHERO_SKL.UIHERO_CmBk_A4
17240        AnimationMode = LOOP
17241      End
17242      ConditionState = RIDER4 MOVING CENTER_TO_LEFT
17243        Model = UIHERO_SKN
17244        Animation           = UIHERO_SKL.UIHERO_CmBk_A1
17245        AnimationMode       = ONCE
17246      End
17247      ConditionState = RIDER4 MOVING LEFT_TO_CENTER
17248        Model = UIHERO_SKN
17249        Animation           = UIHERO_SKL.UIHERO_CmBk_A1
17250        AnimationMode       = ONCE_BACKWARDS
17251      End
17252      ConditionState = RIDER4 MOVING CENTER_TO_RIGHT
17253        Model = UIHERO_SKN
17254        Animation           = UIHERO_SKL.UIHERO_CmBk_A2
17255        AnimationMode       = ONCE
17256      End
17257      ConditionState = RIDER4 MOVING RIGHT_TO_CENTER
17258        Model = UIHERO_SKN
17259        Animation           = UIHERO_SKL.UIHERO_CmBk_A2
17260        AnimationMode       = ONCE_BACKWARDS
17261      End
17262  
17263      ;Terrorist animations
17264      ;-----------------------
17265      ConditionState = RIDER5 
17266        Model = UITer_Local_SKN
17267        Animation           = UITer_Local_SKL.UITER_Local_A5
17268        AnimationMode = LOOP
17269      End
17270      ConditionState = RIDER5 MOVING
17271        Model = UITer_Local_SKN
17272        Animation           = UITer_Local_SKL.UITER_Local_A4
17273        AnimationMode = LOOP
17274      End
17275      ConditionState = RIDER5 MOVING CENTER_TO_LEFT
17276        Model = UITer_Local_SKN
17277        Animation           = UITer_Local_SKL.UITER_Local_A1
17278        AnimationMode       = ONCE
17279      End
17280      ConditionState = RIDER5 MOVING LEFT_TO_CENTER
17281        Model = UITer_Local_SKN
17282        Animation           = UITer_Local_SKL.UITER_Local_A1
17283        AnimationMode       = ONCE_BACKWARDS
17284      End
17285      ConditionState = RIDER5 MOVING CENTER_TO_RIGHT
17286        Model = UITer_Local_SKN
17287        Animation           = UITer_Local_SKL.UITER_Local_A2
17288        AnimationMode       = ONCE
17289      End
17290      ConditionState = RIDER5 MOVING RIGHT_TO_CENTER
17291        Model = UITer_Local_SKN
17292        Animation           = UITer_Local_SKL.UITER_Local_A2
17293        AnimationMode       = ONCE_BACKWARDS
17294      End
17295  
17296      ;Hijacker animations
17297      ;-----------------------
17298      ConditionState = RIDER6 
17299        Model = UIHJCK_SKN
17300        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A5
17301        AnimationMode = LOOP
17302      End
17303      ConditionState = RIDER6 MOVING
17304        Model = UIHJCK_SKN
17305        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A4
17306        AnimationMode = LOOP
17307      End
17308      ConditionState = RIDER6 MOVING CENTER_TO_LEFT
17309        Model = UIHJCK_SKN
17310        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A1
17311        AnimationMode       = ONCE
17312      End
17313      ConditionState = RIDER6 MOVING LEFT_TO_CENTER
17314        Model = UIHJCK_SKN
17315        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A1
17316        AnimationMode       = ONCE_BACKWARDS
17317      End
17318      ConditionState = RIDER6 MOVING CENTER_TO_RIGHT
17319        Model = UIHJCK_SKN
17320        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A2
17321        AnimationMode       = ONCE
17322      End
17323      ConditionState = RIDER6 MOVING RIGHT_TO_CENTER
17324        Model = UIHJCK_SKN
17325        Animation           = UIHJCK_SKL.UIHJACK_CmBk_A2
17326        AnimationMode       = ONCE_BACKWARDS
17327      End
17328  
17329      ;Saboteur animations
17330      ;-----------------------
17331      ConditionState = RIDER7 
17332        Model = UISabotr_SKN
17333        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A5
17334        AnimationMode = LOOP
17335      End
17336      ConditionState = RIDER7 MOVING
17337        Model = UISabotr_SKN
17338        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A4
17339        AnimationMode = LOOP
17340      End
17341      ConditionState = RIDER7 MOVING CENTER_TO_LEFT
17342        Model = UISabotr_SKN
17343        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A1
17344        AnimationMode       = ONCE
17345      End
17346      ConditionState = RIDER7 MOVING LEFT_TO_CENTER
17347        Model = UISabotr_SKN
17348        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A1
17349        AnimationMode       = ONCE_BACKWARDS
17350      End
17351      ConditionState = RIDER7 MOVING CENTER_TO_RIGHT
17352        Model = UISabotr_SKN
17353        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A2
17354        AnimationMode       = ONCE
17355      End
17356      ConditionState = RIDER7 MOVING RIGHT_TO_CENTER
17357        Model = UISabotr_SKN
17358        Animation           = UIWrkr_SKL.UIWrkr_CmBk_A2
17359        AnimationMode       = ONCE_BACKWARDS
17360      End
17361  
17362      ConditionState = TOPPLED
17363        Model = None
17364      End
17365      AliasConditionState TOPPLED MOVING
17366    End
17367  
17368    ; ***DESIGN parameters ***
17369    DisplayName         = OBJECT:CombatBike
17370    Side                = GLADemolitionGeneral
17371    EditorSorting       = VEHICLE
17372    TransportSlotCount  = 1                 ;how many "slots" we take in a transport (0 == not transportable)
17373    WeaponSet
17374      Conditions = None
17375      Weapon = PRIMARY NONE
17376    End
17377    WeaponSet
17378      Conditions = WEAPON_RIDER2
17379      Weapon = PRIMARY GLARebelBikerMachineGun
17380    End
17381    WeaponSet
17382      Conditions = WEAPON_RIDER3
17383      Weapon = PRIMARY DEMO_TunnelDefenderBikerRocketWeapon
17384    End
17385    WeaponSet
17386      Conditions = WEAPON_RIDER4
17387      Weapon = PRIMARY GLABikerKellSniperRifle
17388      Weapon = SECONDARY GLAJarmenKellVehiclePilotSniperRifle
17389      AutoChooseSources = SECONDARY NONE
17390    End
17391    WeaponSet
17392      ;Kill himself so we can use FireWeaponWhenDead to fire the real weapon -- and use UNRESISTABLE
17393      ;damage to do ini logic for type of death to play -- unresistable for success.
17394      Conditions = WEAPON_RIDER5
17395      Weapon = PRIMARY TerroristSuicideWeapon 
17396    End
17397    ArmorSet
17398      Conditions      = None
17399      Armor           = TruckArmor
17400      DamageFX        = TankDamageFX
17401    End
17402    BuildCost       = 550
17403    BuildTime       = 5.0          ;in seconds    
17404    VisionRange     = 180
17405    ShroudClearingRange = 300
17406    Prerequisites
17407      Object = Demo_GLAArmsDealer
17408    End
17409  
17410    ExperienceValue       = 50 50 100 150    ;Experience point value at each level
17411    ExperienceRequired    = 0 200 400 800  ;Experience points needed to gain each level
17412    IsTrainable           = Yes             ;Can gain experience
17413    ;CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
17414    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
17415    CommandSet            = Demo_GLAVehicleCombatBikeDefaultCommandSet
17416  
17417    ; *** AUDIO Parameters ***
17418    VoiceSelect = CombatCycleVoiceSelect
17419    VoiceMove = CombatCycleVoiceMove
17420    VoiceAttack = CombatCycleVoiceAttack
17421    SoundMoveStart = CombatBikeMoveStart
17422    SoundMoveStartDamaged = CombatBikeMoveStart
17423    VoiceGuard = CombatCycleVoiceMove
17424    SoundEnter = CombatCycleSwitchRider
17425  
17426    UnitSpecificSounds
17427      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
17428      VoiceCreate          = CombatCycleVoiceCreate
17429      TurretMoveStart = NoSound
17430      TurretMoveLoop = TurretMoveLoop  
17431    ; Required for the W3DTruckDraw module
17432      TruckLandingSound = RocketBuggyLand
17433      TruckPowerslideSound = CombatBikeMoveStart
17434      VoiceCrush      = CombatCycleVoiceMove
17435      VoiceEnter = CombatCycleVoiceMove
17436    End
17437  
17438    ; *** ENGINEERING Parameters ***
17439    RadarPriority = UNIT
17440    KindOf = PRELOAD SELECTABLE CAN_ATTACK DONT_AUTO_CRUSH_INFANTRY ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE CLIFF_JUMPER
17441  
17442    Body = ActiveBody ModuleTag_02
17443      MaxHealth       = 100
17444      InitialHealth   = 100
17445  
17446      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
17447      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
17448      SubdualDamageCap = 200
17449      SubdualDamageHealRate = 500
17450      SubdualDamageHealAmount = 50
17451    End
17452    Behavior = AIUpdateInterface ModuleTag_03
17453      Turret
17454        TurretTurnRate = 0       ; turn rate, in degrees per sec
17455        NaturalTurretAngle = 0
17456        ControlledWeaponSlots = PRIMARY SECONDARY
17457      End
17458      AutoAcquireEnemiesWhenIdle = No
17459    End
17460    Locomotor = SET_NORMAL CombatBikeGroundLocomotor CombatBikeCliffLocomotor
17461    Locomotor = SET_SLUGGISH CombatBikeTerroristGroundLocomotor CombatBikeTerroristCliffLocomotor
17462    Behavior = PhysicsBehavior ModuleTag_04
17463      Mass = 15.0
17464    End
17465  
17466    Behavior = SlowDeathBehavior DeathTag_04
17467      ExemptStatus = STATUS_RIDER1 STATUS_RIDER2 STATUS_RIDER3 STATUS_RIDER4 STATUS_RIDER5 STATUS_RIDER6 STATUS_RIDER7
17468      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
17469      DestructionDelay = 0
17470      FX = INITIAL FX_DEMOBuggyNewDeathExplosion
17471      OCL = FINAL OCL_CombatBikeAirDeathStart
17472    End
17473    Behavior = SlowDeathBehavior DeathTag_05
17474      RequiredStatus = STATUS_RIDER1
17475      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
17476      DestructionDelay = 0
17477      FX = INITIAL FX_BuggyNewDeathExplosion
17478      OCL = INITIAL OCL_WorkerFlyingOffBikeDeathStart
17479      OCL = FINAL OCL_CombatBikeAirDeathStart
17480    End
17481    Behavior = SlowDeathBehavior DeathTag_06
17482      RequiredStatus = STATUS_RIDER2
17483      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
17484      DestructionDelay = 0
17485      FX = INITIAL FX_DEMOBuggyNewDeathExplosion
17486      OCL = INITIAL OCL_RebelFlyingOffBikeDeathStart
17487      OCL = FINAL OCL_CombatBikeAirDeathStart
17488    End
17489    Behavior = SlowDeathBehavior DeathTag_07
17490      RequiredStatus = STATUS_RIDER3
17491      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
17492      DestructionDelay = 0
17493      FX = INITIAL FX_DEMOBuggyNewDeathExplosion
17494      OCL = INITIAL OCL_TunnelDefenderFlyingOffBikeDeathStart
17495      OCL = FINAL OCL_CombatBikeAirDeathStart
17496    End
17497    Behavior = SlowDeathBehavior DeathTag_08
17498      RequiredStatus = STATUS_RIDER4
17499      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
17500      DestructionDelay = 0
17501      FX = INITIAL FX_DEMOBuggyNewDeathExplosion
17502      OCL = INITIAL OCL_JarmenKellFlyingOffBikeDeathStart
17503      OCL = FINAL OCL_CombatBikeAirDeathStart
17504    End
17505    Behavior = SlowDeathBehavior DeathTag_09
17506      RequiredStatus = STATUS_RIDER5
17507      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
17508      DestructionDelay = 0
17509      FX = INITIAL FX_DEMOBuggyNewDeathExplosion
17510      OCL = INITIAL OCL_TerroristFlyingOffBikeDeathStart
17511      OCL = FINAL OCL_CombatBikeAirDeathStart
17512    End
17513    Behavior = SlowDeathBehavior DeathTag_10
17514      RequiredStatus = STATUS_RIDER6
17515      DeathTypes = ALL -CRUSHED -SPLATTED -TOPPLED
17516      DestructionDelay = 0
17517      FX = INITIAL FX_DEMOBuggyNewDeathExplosion
17518      OCL = INITIAL OCL_HijackerFlyingOffBikeDeathStart
17519      OCL = FINAL OCL_CombatBikeAirDeathStart
17520    End
17521  
17522    Behavior = AutoHealBehavior ModuleTag_08
17523      HealingAmount = 2
17524      HealingDelay = 1000 ; msec
17525      TriggeredBy = Upgrade_GLAJunkRepair
17526    End
17527  
17528    Behavior = WeaponSetUpgrade ModuleTag_09
17529      TriggeredBy = Upgrade_GLABuggyAmmo
17530    End
17531  
17532    ;Create the hulk after the toppling is complete (not killed until topple anim finished).
17533    Behavior = CreateObjectDie ModuleTag_10
17534      DeathTypes = NONE +TOPPLED
17535      CreationList = OCL_CombatBike_ToppledHulk
17536    End
17537  
17538    Behavior = DestroyDie ModuleTag_11
17539      DeathTypes = NONE +CRUSHED +SPLATTED +TOPPLED
17540    End
17541  
17542    ; A crushing defeat
17543    Behavior = FXListDie ModuleTag_12
17544      DeathTypes = NONE +CRUSHED +SPLATTED
17545      DeathFX = FX_CarCrush
17546    End
17547    Behavior = CreateObjectDie ModuleTag_13
17548      DeathTypes = NONE +CRUSHED +SPLATTED
17549      CreationList = OCL_RocketBuggy_CrushEffect
17550    End
17551    Behavior = CreateCrateDie ModuleTag_14
17552      CrateData = SalvageCrateData
17553      ;CrateData = EliteTankCrateData
17554      ;CrateData = HeroicTankCrateData
17555    End
17556  
17557    Behavior                 = TransitionDamageFX ModuleTag_15
17558      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
17559      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
17560    End
17561  
17562    Behavior = RiderChangeContain ModuleTag_16
17563      ;A list of each valid rider that is allowed to ride this object. Each rider is
17564      ;assigned a modelcondition state, a weaponset flag, an object status bit, and
17565      ;a commandset override. The actual object is hidden inside the container so the 
17566      ;visible rider is fluff. Also riders are deleted (not killed) when the bike is
17567      ;destroyed, so all deaths must be OCLs on the bike.
17568      Rider1 = Demo_GLAInfantryWorker         RIDER1 WEAPON_RIDER1 STATUS_RIDER1 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL
17569      Rider2 = Demo_GLAInfantryRebel          RIDER2 WEAPON_RIDER2 STATUS_RIDER2 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL
17570      Rider3 = Demo_GLAInfantryTunnelDefender RIDER3 WEAPON_RIDER3 STATUS_RIDER3 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL
17571      Rider4 = Demo_GLAInfantryJarmenKell     RIDER4 WEAPON_RIDER4 STATUS_RIDER4 GLAVehicleCombatBikeJarmenKellCommandSet SET_NORMAL
17572      Rider5 = Demo_GLAInfantryTerrorist      RIDER5 WEAPON_RIDER5 STATUS_RIDER5 GLAVehicleCombatBikeDefaultCommandSet SET_SLUGGISH
17573      Rider6 = Demo_GLAInfantryHijacker       RIDER6 WEAPON_RIDER6 STATUS_RIDER6 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL
17574      Rider7 = Demo_GLAInfantrySaboteur       RIDER7 WEAPON_RIDER7 STATUS_RIDER7 GLAVehicleCombatBikeDefaultCommandSet SET_NORMAL
17575      ScuttleDelay          = 1500
17576      ScuttleStatus         = TOPPLED
17577  
17578      ;Standard TransportContain stuff
17579      Slots                 = 1
17580      InitialPayload        = Demo_GLAInfantryTerrorist 1
17581      ScatterNearbyOnExit   = No
17582      HealthRegen%PerSec    = 0
17583      DamagePercentToUnits  = 100%  ; This module will Delete the rider on death, but we need to kill him as well so he doesn't pick up the bike's salvage crate.
17584      BurnedDeathToUnits    = No    ; And no Burned death.
17585      AllowInsideKindOf     = INFANTRY
17586      ExitDelay         = 250
17587      NumberOfExitPaths = 1 ; Defaults to 1.  Set 0 to not use ExitStart/ExitEnd, set higher than 1 to use ExitStart01-nn/ExitEnd01-nn
17588      GoAggressiveOnExit = Yes ; AI Will tell people to set their mood to Aggressive on exiting
17589    End
17590  
17591    Behavior = AnimationSteeringUpdate ModuleTag_17
17592      MinTransitionTime = 300
17593    End
17594  
17595    Behavior = StealthUpdate ModuleTag_19
17596      UseRiderStealth             = Yes
17597      ;StealthDelay                = 2000 ; msec
17598      ;StealthForbiddenConditions  = ATTACKING
17599      ;InnateStealth               = Yes
17600      ;OrderIdleEnemiesToAttackMeUponReveal  = Yes
17601    End
17602  
17603    Behavior = FlammableUpdate ModuleTag_21
17604      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
17605      AflameDamageAmount = 3       ; taking this much damage...
17606      AflameDamageDelay = 500       ; this often.
17607    End
17608  
17609  ;Kris: The slowdeath's above handle this case. This was causing a 50% chance 
17610  ;      of the bike lingering after the terrorist bike suicided.
17611  ;  Behavior = SlowDeathBehavior ModuleTag_Death_22
17612  ;    DeathTypes          = NONE +SUICIDED +EXPLODED
17613  ;    SinkDelay           = 3000
17614  ;    SinkRate            = 0.5     ; in Dist/Sec
17615  ;    DestructionDelay    = 8000
17616  ;    FX                  = INITIAL FX_TerroristExplode
17617  ;    FlingForce          = 8
17618  ;    FlingForceVariance  = 3
17619  ;    FlingPitch          = 60
17620  ;    FlingPitchVariance  = 10
17621  ;  End
17622  
17623    ;Terrorist without suicide bomb upgrade
17624    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death18
17625      RequiredStatus  = STATUS_RIDER5
17626      DeathWeapon     = SuicideBikeBomb
17627      StartsActive    = Yes
17628      DeathTypes      = NONE +SUICIDED +CRUSHED +SPLATTED +LASERED +BURNED +EXPLODED
17629      ConflictsWith = Demo_Upgrade_SuicideBomb
17630    End
17631  
17632    ;Non-terrorist with suicide bomb upgrade (fire)
17633    Behavior = FireWeaponWhenDeadBehavior ModuleTag999
17634      ExemptStatus  = STATUS_RIDER5
17635      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
17636      StartsActive  = No
17637      TriggeredBy   = Demo_Upgrade_SuicideBomb
17638      RequiresAllTriggers = Yes; 
17639      DeathTypes = ALL -SUICIDED -POISONED -POISONED_BETA -POISONED_GAMMA
17640    End;
17641  
17642    ;Non-terrorist with suicide bomb upgrade (no fire)
17643    Behavior = FireWeaponWhenDeadBehavior ModuleTag998
17644      ExemptStatus  = STATUS_RIDER5
17645      DeathWeapon   = Demo_SuicideDynamitePack
17646      StartsActive  = No
17647      TriggeredBy   = Demo_Upgrade_SuicideBomb
17648      RequiresAllTriggers = Yes; 
17649      DeathTypes = NONE +SUICIDED
17650    End;
17651  
17652    ;Terrorist with suicide bomb upgrade (fire)
17653    Behavior = FireWeaponWhenDeadBehavior ModuleTag997
17654      RequiredStatus = STATUS_RIDER5
17655      DeathWeapon    = Demo_TerroristOnCombatBikeSuicideDynamitePackPlusFire
17656      StartsActive   = No
17657      TriggeredBy    = Demo_Upgrade_SuicideBomb
17658      RequiresAllTriggers = Yes; 
17659      DeathTypes     = ALL -SUICIDED -POISONED -POISONED_BETA -POISONED_GAMMA
17660    End;
17661  
17662    ;Terrorist with suicide bomb upgrade (no fire)
17663    Behavior = FireWeaponWhenDeadBehavior ModuleTag996
17664      RequiredStatus = STATUS_RIDER5
17665      DeathWeapon    = Demo_TerroristOnCombatBikeSuicideDynamitePack
17666      StartsActive   = No
17667      TriggeredBy    = Demo_Upgrade_SuicideBomb
17668      RequiresAllTriggers = Yes; 
17669      DeathTypes     = NONE +SUICIDED +POISONED +POISONED_BETA
17670    End;
17671  
17672    Behavior = CommandSetUpgrade ModuleTag_23
17673      CommandSet = Demo_GLAVehicleCombatBikeDefaultCommandSetUpgrade
17674      TriggeredBy = Demo_Upgrade_SuicideBomb
17675    End
17676  
17677  
17678    Geometry = BOX
17679    GeometryMajorRadius = 11.0
17680    GeometryMinorRadius = 2.5
17681    GeometryHeight = 7.5     
17682    GeometryIsSmall = Yes    
17683  
17684    Shadow = SHADOW_VOLUME
17685    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
17686  
17687  End
17688  
17689  
17690  ;------------------------------------------------------------------------------
17691  Object Demo_GLAVehicleQuadCannon
17692  
17693    ; *** ART Parameters ***
17694    SelectPortrait         = SUQuadCannon_L
17695    ButtonImage            = SUQuadCannon
17696    
17697    UpgradeCameo1 = Upgrade_GLAAPBullets
17698    UpgradeCameo2 = Upgrade_GLAJunkRepair
17699    ;UpgradeCameo3 = XXX
17700    ;UpgradeCameo4 = XXX
17701    ;UpgradeCameo5 = XXX
17702    
17703    Draw = W3DTankTruckDraw ModuleTag_01
17704      OkToChangeModelColor = Yes
17705  
17706      ConditionState = NONE
17707        Model = UVQuadCann
17708        Turret = TURRET
17709        TurretPitch = TURRETEL
17710        WeaponFireFXBone  = PRIMARY   BarrelMS
17711        WeaponMuzzleFlash = PRIMARY   BarrelFX
17712        WeaponRecoilBone  = PRIMARY   Barrel
17713        WeaponFireFXBone  = SECONDARY BarrelMS
17714        WeaponMuzzleFlash = SECONDARY BarrelFX
17715        WeaponRecoilBone  = SECONDARY Barrel
17716        ShowSubObject = TURRET
17717        HideSubObject = TURRETUP01 TURRETUP02 BarrelFX01 BarrelFX02 BarrelFX03 BarrelFX04  ; Since we are showing one of three turrets, we need to then hide the subobject muzzleflash
17718      End
17719        
17720      ConditionState = REALLYDAMAGED
17721        Model = UVQuadCann_D
17722        Turret = TURRET
17723        TurretPitch = TURRETEL
17724        WeaponFireFXBone  = PRIMARY   BarrelMS
17725        WeaponMuzzleFlash = PRIMARY   BarrelFX
17726        WeaponRecoilBone  = PRIMARY   Barrel
17727        WeaponFireFXBone  = SECONDARY BarrelMS
17728        WeaponMuzzleFlash = SECONDARY BarrelFX
17729        WeaponRecoilBone  = SECONDARY Barrel
17730        ShowSubObject = TURRET
17731        HideSubObject = TURRETUP01 TURRETUP02 BarrelFX01 BarrelFX02 BarrelFX03 BarrelFX04
17732      End
17733      
17734      ConditionState = RUBBLE
17735        Model = UVQuadCann_D
17736        Turret = TURRET
17737        TurretPitch = TURRETEL
17738        WeaponFireFXBone  = PRIMARY   BarrelMS
17739        WeaponMuzzleFlash = PRIMARY   BarrelFX
17740        WeaponRecoilBone  = PRIMARY   Barrel
17741        WeaponFireFXBone  = SECONDARY BarrelMS
17742        WeaponMuzzleFlash = SECONDARY BarrelFX
17743        WeaponRecoilBone  = SECONDARY Barrel
17744        ShowSubObject = TURRET
17745        HideSubObject = TURRETUP01 TURRETUP02 BarrelFX01 BarrelFX02 BarrelFX03 BarrelFX04
17746      End
17747  
17748      ConditionState = WEAPONSET_CRATEUPGRADE_ONE
17749        Model = UVQuadCann
17750        Turret = TURRETUP01
17751        TurretPitch = TURRETEL01
17752        WeaponFireFXBone  = PRIMARY   BarrelUp01MS
17753        WeaponMuzzleFlash = PRIMARY   BarrelUp01FX
17754        WeaponRecoilBone  = PRIMARY   BarrelUp01
17755        WeaponFireFXBone  = SECONDARY BarrelUp01MS
17756        WeaponMuzzleFlash = SECONDARY BarrelUp01FX
17757        WeaponRecoilBone  = SECONDARY BarrelUp01
17758        ShowSubObject = TURRETUP01
17759        HideSubObject = TURRET TURRETUP02 BarrelUp01FX01 BarrelUp01FX02 BarrelUp01FX03 BarrelUp01FX04
17760      End
17761      
17762      ConditionState = WEAPONSET_CRATEUPGRADE_ONE REALLYDAMAGED
17763        Model = UVQuadCann
17764        Turret = TURRETUP01
17765        TurretPitch = TURRETEL01
17766        WeaponFireFXBone  = PRIMARY   BarrelUp01MS
17767        WeaponMuzzleFlash = PRIMARY   BarrelUp01FX
17768        WeaponRecoilBone  = PRIMARY   BarrelUp01
17769        WeaponFireFXBone  = SECONDARY BarrelUp01MS
17770        WeaponMuzzleFlash = SECONDARY BarrelUp01FX
17771        WeaponRecoilBone  = SECONDARY BarrelUp01
17772        ShowSubObject = TURRETUP01
17773        HideSubObject = TURRET TURRETUP02 BarrelUp01FX01 BarrelUp01FX02 BarrelUp01FX03 BarrelUp01FX04
17774      End
17775      
17776      ConditionState = WEAPONSET_CRATEUPGRADE_ONE RUBBLE
17777        Model = UVQuadCann
17778        Turret = TURRETUP01
17779        TurretPitch = TURRETEL01
17780        WeaponFireFXBone  = PRIMARY   BarrelUp01MS
17781        WeaponMuzzleFlash = PRIMARY   BarrelUp01FX
17782        WeaponRecoilBone  = PRIMARY   BarrelUp01
17783        WeaponFireFXBone  = SECONDARY BarrelUp01MS
17784        WeaponMuzzleFlash = SECONDARY BarrelUp01FX
17785        WeaponRecoilBone  = SECONDARY BarrelUp01
17786        ShowSubObject = TURRETUP01
17787        HideSubObject = TURRET TURRETUP02 BarrelUp01FX01 BarrelUp01FX02 BarrelUp01FX03 BarrelUp01FX04
17788      End
17789  
17790      ConditionState = WEAPONSET_CRATEUPGRADE_TWO
17791        Model = UVQuadCann
17792        Turret = TURRETUP02
17793        TurretPitch = TURRETEL02
17794        WeaponFireFXBone  = PRIMARY   BarrelUp02MS
17795        WeaponMuzzleFlash = PRIMARY   BarrelUp02FX
17796        WeaponRecoilBone  = PRIMARY   BarrelUp02
17797        WeaponFireFXBone  = SECONDARY BarrelUp02MS
17798        WeaponMuzzleFlash = SECONDARY BarrelUp02FX
17799        WeaponRecoilBone  = SECONDARY BarrelUp02
17800        ShowSubObject = TURRETUP02
17801        HideSubObject = TURRETUP01 TURRET BarrelUp02FX01 BarrelUp02FX02 BarrelUp02FX03 BarrelUp02FX04
17802      End
17803      
17804      ConditionState = WEAPONSET_CRATEUPGRADE_TWO REALLYDAMAGED
17805        Model = UVQuadCann_D
17806        Turret = TURRETUP02
17807        TurretPitch = TURRETEL02
17808        WeaponFireFXBone  = PRIMARY   BarrelUp02MS
17809        WeaponMuzzleFlash = PRIMARY   BarrelUp02FX
17810        WeaponRecoilBone  = PRIMARY   BarrelUp02
17811        WeaponFireFXBone  = SECONDARY BarrelUp02MS
17812        WeaponMuzzleFlash = SECONDARY BarrelUp02FX
17813        WeaponRecoilBone  = SECONDARY BarrelUp02
17814        ShowSubObject = TURRETUP02
17815        HideSubObject = TURRETUP01 TURRET BarrelUp02FX01 BarrelUp02FX02 BarrelUp02FX03 BarrelUp02FX04
17816      End
17817      
17818      ConditionState = WEAPONSET_CRATEUPGRADE_TWO RUBBLE
17819        Model = UVQuadCann_D
17820        Turret = TURRETUP02
17821        TurretPitch = TURRETEL02
17822        WeaponFireFXBone  = PRIMARY   BarrelUp02MS
17823        WeaponMuzzleFlash = PRIMARY   BarrelUp02FX
17824        WeaponRecoilBone  = PRIMARY   BarrelUp02
17825        WeaponFireFXBone  = SECONDARY BarrelUp02MS
17826        WeaponMuzzleFlash = SECONDARY BarrelUp02FX
17827        WeaponRecoilBone  = SECONDARY BarrelUp02
17828        ShowSubObject = TURRETUP02
17829        HideSubObject = TURRETUP01 TURRET BarrelUp02FX01 BarrelUp02FX02 BarrelUp02FX03 BarrelUp02FX04
17830      End
17831  
17832      TrackMarks = EXTnkTrack.tga
17833  
17834      TreadAnimationRate = 2.0;  amount of tread texture to move per second
17835      TreadDriveSpeedFraction = 0.3  ; fraction of locomotor speed below which treads stop moving.
17836      TreadPivotSpeedFraction = 0.6  ; fraction of locomotor speed below which we allow pivoting.
17837  
17838      Dust = RocketBuggyDust
17839      DirtSpray = RocketBuggyDirtSpray
17840   
17841      ; These parameters are only used if the model has a separate suspension, 
17842      ; and the locomotor has HasSuspension = Yes.
17843      LeftFrontTireBone = Tire01
17844      RightFrontTireBone = Tire02
17845      TireRotationMultiplier = 0.2   ; this * speed = rotation.
17846      PowerslideRotationAddition = 0   ; This unit doesn't powerslide.
17847    End
17848  
17849    ; ***DESIGN parameters ***
17850    DisplayName      = OBJECT:QuadCannon
17851    Side = GLADemolitionGeneral
17852    EditorSorting   = VEHICLE
17853    TransportSlotCount = 3                 ;how many "slots" we take in a transport (0 == not transportable)
17854    WeaponSet
17855      Conditions = None 
17856      Weapon = PRIMARY QuadCannonGun
17857      Weapon = SECONDARY QuadCannonGunAir
17858      Weapon = TERTIARY TerroristSuicideNotARealWeapon
17859      AutoChooseSources = TERTIARY NONE
17860    End
17861    WeaponSet
17862      Conditions = CRATEUPGRADE_ONE 
17863      Weapon = PRIMARY QuadCannonGunUpgradeOne
17864      Weapon = SECONDARY QuadCannonGunUpgradeOneAir
17865      Weapon = TERTIARY TerroristSuicideNotARealWeapon
17866      AutoChooseSources = TERTIARY NONE
17867    End
17868    WeaponSet
17869      Conditions = CRATEUPGRADE_TWO 
17870      Weapon = PRIMARY QuadCannonGunUpgradeTwo
17871      Weapon = SECONDARY QuadCannonGunUpgradeTwoAir
17872      Weapon = TERTIARY TerroristSuicideNotARealWeapon
17873      AutoChooseSources = TERTIARY NONE
17874    End
17875    ArmorSet
17876      Conditions      = None
17877      Armor           = HumveeArmor
17878      DamageFX        = TankDamageFX
17879    End
17880    BuildCost       = 750
17881    BuildTime       = 6.0          ;in seconds    
17882    VisionRange     = 150
17883    ShroudClearingRange = 300
17884    Prerequisites
17885      Object = Demo_GLAArmsDealer
17886    End
17887  
17888    CommandSet          = Demo_GLAVehicleQuadCannon
17889  
17890    ExperienceValue = 50 50 100 150    ;Experience point value at each level
17891    ExperienceRequired = 0 100 150 300  ;Experience points needed to gain each level
17892    IsTrainable = Yes             ;Can gain experience
17893    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
17894    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
17895  
17896    ; *** AUDIO Parameters ***
17897    VoiceSelect           = QuadCannonVoiceSelect
17898    VoiceMove             = QuadCannonVoiceMove
17899    VoiceAttack           = QuadCannonVoiceAttack
17900    VoiceAttackAir        = QuadCannonVoiceAttackAir
17901    SoundMoveStart        = QuadCannonMoveStart
17902    SoundMoveStartDamaged = QuadCannonMoveStart
17903    VoiceGuard             = QuadCannonVoiceMove
17904    UnitSpecificSounds
17905     ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
17906      VoiceCreate         = QuadCannonVoiceCreate
17907     TurretMoveStart      = NoSound
17908     TurretMoveLoop       = TurretMoveLoop
17909     ; Required for the W3DTruckDraw module
17910     TruckLandingSound    = NoSound
17911     TruckPowerslideSound = NoSound
17912     VoiceSalvage         = QuadCannonVoiceSalvage
17913     VoiceCrush           = QuadCannonVoiceCrush
17914     VoiceEnter             = QuadCannonVoiceMove
17915    End
17916  
17917  
17918    ; *** ENGINEERING Parameters ***
17919    RadarPriority = UNIT
17920    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS SALVAGER WEAPON_SALVAGER VEHICLE SCORE
17921  
17922    Body = ActiveBody ModuleTag_02
17923      MaxHealth       = 300.0
17924      InitialHealth   = 300.0
17925  
17926      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
17927      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
17928      SubdualDamageCap = 440
17929      SubdualDamageHealRate = 500
17930      SubdualDamageHealAmount = 50
17931    End
17932    
17933    Behavior = AIUpdateInterface ModuleTag_03
17934      Turret
17935        TurretTurnRate = 360
17936        TurretPitchRate = 360
17937        AllowsPitch = Yes
17938        ControlledWeaponSlots = PRIMARY SECONDARY
17939      End
17940      AutoAcquireEnemiesWhenIdle = Yes Stealthed
17941      MoodAttackCheckRate        = 250
17942    End
17943    
17944    Locomotor = SET_NORMAL QuadCannonLocomotor
17945    
17946    Behavior = PhysicsBehavior ModuleTag_04
17947      Mass = 40.0
17948    End
17949    
17950    ; Catch fire, and explode death
17951    Behavior = SlowDeathBehavior ModuleTag_05
17952      DeathTypes = ALL -CRUSHED -SPLATTED
17953      ProbabilityModifier = 411
17954      DestructionDelay = 150
17955      DestructionDelayVariance = 250
17956      OCL = FINAL    OCL_QuadCannonDeathEffect  
17957      FX  = FINAL    FX_BattleMasterExplosionOneFinal
17958    End
17959    
17960    Behavior = AutoHealBehavior ModuleTag_06
17961      HealingAmount = 2
17962      HealingDelay = 1000 ; msec
17963      TriggeredBy = Upgrade_GLAJunkRepair
17964    End
17965  
17966    Behavior = FlammableUpdate ModuleTag_08
17967      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
17968      AflameDamageAmount = 3       ; taking this much damage...
17969      AflameDamageDelay = 500       ; this often.
17970    End
17971  
17972    Behavior                 = TransitionDamageFX ModuleTag_09
17973      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
17974      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
17975    End
17976  
17977  
17978    ; A crushing defeat
17979    Behavior = FXListDie ModuleTag_10
17980      DeathTypes = NONE +CRUSHED +SPLATTED
17981      DeathFX = FX_CarCrush
17982    End
17983  
17984    Behavior = CreateCrateDie ModuleTag_11
17985      CrateData = SalvageCrateData
17986      ;CrateData = EliteTankCrateData
17987      ;CrateData = HeroicTankCrateData
17988    End
17989  
17990    Behavior = WeaponBonusUpgrade ModuleTag_12
17991      TriggeredBy = Upgrade_GLAAPBullets
17992    End 
17993  
17994    Behavior = DestroyDie ModuleTag_13
17995      DeathTypes = NONE +CRUSHED +SPLATTED
17996    End
17997  
17998    Behavior = SlowDeathBehavior ModuleTag_Death_14
17999      DeathTypes          = NONE +SUICIDED +EXPLODED
18000      SinkDelay           = 3000
18001      SinkRate            = 0.5     ; in Dist/Sec
18002      DestructionDelay    = 8000
18003      FX                  = INITIAL FX_TerroristExplode
18004      FlingForce          = 8
18005      FlingForceVariance  = 3
18006      FlingPitch          = 60
18007      FlingPitchVariance  = 10
18008    End
18009  
18010  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death24
18011  ;    DeathWeapon   = Demo_SuicideDynamitePack
18012  ;    StartsActive  = Yes                      ; turned on by upgrade
18013  ;    DeathTypes = NONE +SUICIDED
18014  ;  End
18015  ;
18016  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag999
18017  ;    DeathWeapon   = Demo_SuicideDynamitePackPlusFire
18018  ;    StartsActive  = No
18019  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
18020  ;    RequiresAllTriggers = Yes; 
18021  ;    DeathTypes = ALL -SUICIDED -POISONED -POISONED_BETA -POISONED_GAMMA
18022  ;  End
18023  ;
18024  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag998
18025  ;    DeathWeapon   = Demo_SuicideDynamitePack
18026  ;    StartsActive  = No
18027  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
18028  ;    RequiresAllTriggers = Yes; 
18029  ;    DeathTypes = NONE +SUICIDED
18030  ;  End
18031  
18032    Behavior = FireWeaponWhenDeadBehavior ModuleTag_George 
18033      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
18034      StartsActive  = No
18035      TriggeredBy   = Demo_Upgrade_SuicideBomb
18036      DeathTypes = ALL
18037    End;
18038  
18039    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Bob
18040      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
18041      StartsActive  = No
18042      TriggeredBy   = Demo_Upgrade_SuicideBomb
18043      DeathTypes = NONE 
18044    End
18045  
18046    Behavior = CommandSetUpgrade ModuleTag_16
18047      CommandSet = Demo_GLAVehicleQuadCannonUpgrade
18048      TriggeredBy = Demo_Upgrade_SuicideBomb
18049    End
18050  
18051    Geometry = BOX
18052    GeometryMajorRadius = 18.0
18053    GeometryMinorRadius = 7.0
18054    GeometryHeight = 11.5     
18055    GeometryIsSmall = No
18056    Shadow = SHADOW_VOLUME
18057    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
18058  
18059  End
18060  
18061  ;------------------------------------------------------------------------------
18062  ;Also called Toxin Tractor && ToxinTractor
18063  Object Demo_GLAVehicleToxinTruck
18064  
18065    ; *** ART Parameters ***
18066    SelectPortrait         = SUToxinTractor_L
18067    ButtonImage            = SUToxinTractor
18068    
18069    UpgradeCameo1 = Upgrade_GLAAnthraxBeta
18070    UpgradeCameo2 = Upgrade_GLAJunkRepair
18071    ;UpgradeCameo3 = NONE
18072    ;UpgradeCameo4 = NONE
18073    ;UpgradeCameo5 = NONE
18074    
18075    Draw = W3DTruckDraw ModuleTag_01
18076      OkToChangeModelColor = Yes
18077  
18078      DefaultConditionState 
18079        Model = UVToxinTrk
18080        Turret = Turret
18081        TurretPitch = TurretEL
18082        ShowSubObject = Turret
18083        HideSubObject = TurretUP01 TurretUP02
18084        WeaponFireFXBone = PRIMARY WeaponA
18085        WeaponLaunchBone = PRIMARY WeaponA
18086        WeaponFireFXBone = SECONDARY Spigot
18087        WeaponLaunchBone = SECONDARY Spigot
18088      End
18089      AliasConditionState WEAPONSET_PLAYER_UPGRADE
18090  
18091      ConditionState = USING_WEAPON_B 
18092        Model = UVToxinTrk
18093        ParticleSysBone = none ToxinPuddleContinuous
18094      END
18095      ConditionState = USING_WEAPON_B WEAPONSET_PLAYER_UPGRADE
18096        Model = UVToxinTrk
18097        ParticleSysBone = none AnthraxPuddleContinuous
18098      END
18099  
18100      ConditionState = REALLYDAMAGED
18101        Model = UVToxinTrk_D
18102      End
18103      AliasConditionState REALLYDAMAGED WEAPONSET_PLAYER_UPGRADE
18104      AliasConditionState RUBBLE
18105      AliasConditionState WEAPONSET_PLAYER_UPGRADE RUBBLE
18106  
18107      ConditionState = USING_WEAPON_B REALLYDAMAGED
18108        Model = UVToxinTrk_D
18109        ParticleSysBone = none ToxinPuddleContinuous
18110      END
18111      ConditionState = USING_WEAPON_B REALLYDAMAGED WEAPONSET_PLAYER_UPGRADE 
18112        Model = UVToxinTrk_D
18113        ParticleSysBone = none AnthraxPuddleContinuous
18114      END
18115  
18116  ; -------------- Turret change #1
18117      ConditionState = WEAPONSET_CRATEUPGRADE_ONE
18118        Turret = TurretUP01
18119        TurretPitch = TurretEL01
18120        ShowSubObject = TurretUP01
18121        HideSubObject = Turret TurretUP02
18122        WeaponFireFXBone = PRIMARY WeaponB
18123        WeaponLaunchBone = PRIMARY WeaponB
18124      End
18125      AliasConditionState WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_ONE
18126  
18127      ConditionState = USING_WEAPON_B WEAPONSET_CRATEUPGRADE_ONE
18128        Turret = TurretUP01
18129        TurretPitch = TurretEL01
18130        ShowSubObject = TurretUP01
18131        HideSubObject = Turret TurretUP02
18132        WeaponFireFXBone = PRIMARY WeaponB
18133        WeaponLaunchBone = PRIMARY WeaponB
18134        ParticleSysBone = none ToxinPuddleContinuous
18135      END
18136      ConditionState = USING_WEAPON_B WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_ONE
18137        Turret = TurretUP01
18138        TurretPitch = TurretEL01
18139        ShowSubObject = TurretUP01
18140        HideSubObject = Turret TurretUP02
18141        WeaponFireFXBone = PRIMARY WeaponB
18142        WeaponLaunchBone = PRIMARY WeaponB
18143        ParticleSysBone = none AnthraxPuddleContinuous
18144      END
18145  
18146      ConditionState = REALLYDAMAGED WEAPONSET_CRATEUPGRADE_ONE
18147        Model = UVToxinTrk_D
18148        Turret = TurretUP01
18149        TurretPitch = TurretEL01
18150        ShowSubObject = TurretUP01
18151        HideSubObject = Turret TurretUP02
18152        WeaponFireFXBone = PRIMARY WeaponB
18153        WeaponLaunchBone = PRIMARY WeaponB
18154      End
18155      AliasConditionState REALLYDAMAGED WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_ONE
18156      AliasConditionState RUBBLE WEAPONSET_CRATEUPGRADE_ONE
18157      AliasConditionState WEAPONSET_PLAYER_UPGRADE RUBBLE WEAPONSET_CRATEUPGRADE_ONE
18158  
18159      ConditionState = USING_WEAPON_B REALLYDAMAGED WEAPONSET_CRATEUPGRADE_ONE
18160        Model = UVToxinTrk_D
18161        Turret = TurretUP01
18162        TurretPitch = TurretEL01
18163        ShowSubObject = TurretUP01
18164        HideSubObject = Turret TurretUP02
18165        WeaponFireFXBone = PRIMARY WeaponB
18166        WeaponLaunchBone = PRIMARY WeaponB
18167        ParticleSysBone = none ToxinPuddleContinuous
18168      END
18169      ConditionState = USING_WEAPON_B REALLYDAMAGED WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_ONE 
18170        Model = UVToxinTrk_D
18171        Turret = TurretUP01
18172        TurretPitch = TurretEL01
18173        ShowSubObject = TurretUP01
18174        HideSubObject = Turret TurretUP02
18175        WeaponFireFXBone = PRIMARY WeaponB
18176        WeaponLaunchBone = PRIMARY WeaponB
18177        ParticleSysBone = none AnthraxPuddleContinuous
18178      END
18179  
18180  ; -------------- Turret change #2
18181      ConditionState = WEAPONSET_CRATEUPGRADE_TWO
18182        Turret = TurretUP02
18183        TurretPitch = TurretEL02
18184        ShowSubObject = TurretUP02
18185        HideSubObject = TurretUP01 Turret
18186        WeaponFireFXBone = PRIMARY WeaponC
18187        WeaponLaunchBone = PRIMARY WeaponC
18188      End
18189      AliasConditionState WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_TWO
18190  
18191      ConditionState = USING_WEAPON_B WEAPONSET_CRATEUPGRADE_TWO
18192        Turret = TurretUP02
18193        TurretPitch = TurretEL02
18194        ShowSubObject = TurretUP02
18195        HideSubObject = TurretUP01 Turret
18196        WeaponFireFXBone = PRIMARY WeaponC
18197        WeaponLaunchBone = PRIMARY WeaponC
18198        ParticleSysBone = none ToxinPuddleContinuous
18199      END
18200      ConditionState = USING_WEAPON_B WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_TWO
18201        Turret = TurretUP02
18202        TurretPitch = TurretEL02
18203        ShowSubObject = TurretUP02
18204        HideSubObject = TurretUP01 Turret
18205        WeaponFireFXBone = PRIMARY WeaponC
18206        WeaponLaunchBone = PRIMARY WeaponC
18207        ParticleSysBone = none AnthraxPuddleContinuous
18208      END
18209  
18210      ConditionState = REALLYDAMAGED WEAPONSET_CRATEUPGRADE_TWO
18211        Model = UVToxinTrk_D
18212        Turret = TurretUP02
18213        TurretPitch = TurretEL02
18214        ShowSubObject = TurretUP02
18215        HideSubObject = TurretUP01 Turret
18216        WeaponFireFXBone = PRIMARY WeaponC
18217        WeaponLaunchBone = PRIMARY WeaponC
18218      End
18219      AliasConditionState REALLYDAMAGED WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_TWO
18220      AliasConditionState RUBBLE WEAPONSET_CRATEUPGRADE_TWO
18221      AliasConditionState WEAPONSET_PLAYER_UPGRADE RUBBLE WEAPONSET_CRATEUPGRADE_TWO
18222  
18223      ConditionState = USING_WEAPON_B REALLYDAMAGED WEAPONSET_CRATEUPGRADE_TWO
18224        Model = UVToxinTrk_D
18225        Turret = TurretUP02
18226        TurretPitch = TurretEL02
18227        ShowSubObject = TurretUP02
18228        HideSubObject = TurretUP01 Turret
18229        WeaponFireFXBone = PRIMARY WeaponC
18230        WeaponLaunchBone = PRIMARY WeaponC
18231        ParticleSysBone = none ToxinPuddleContinuous
18232      END
18233      ConditionState = USING_WEAPON_B REALLYDAMAGED WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_TWO 
18234        Model = UVToxinTrk_D
18235        Turret = TurretUP02
18236        TurretPitch = TurretEL02
18237        ShowSubObject = TurretUP02
18238        HideSubObject = TurretUP01 Turret
18239        WeaponFireFXBone = PRIMARY WeaponC
18240        WeaponLaunchBone = PRIMARY WeaponC
18241        ParticleSysBone = none AnthraxPuddleContinuous
18242      END
18243  
18244      TrackMarks = EXTireTrack.tga
18245      LeftFrontTireBone = Tire01
18246      RightFrontTireBone = Tire02
18247      LeftRearTireBone = Tire03
18248      RightRearTireBone = Tire04
18249  
18250      TireRotationMultiplier = 0.2   ; this * speed = rotation.
18251      PowerslideRotationAddition = 0   ; This vehicle doesn't powerslide.
18252  
18253      Dust = RocketBuggyDust
18254      DirtSpray = RocketBuggyDirtSpray
18255  
18256    End
18257  
18258    ; ***DESIGN parameters ***
18259    DisplayName         = OBJECT:ToxinTruck
18260    Side                = GLADemolitionGeneral
18261    EditorSorting       = VEHICLE
18262    TransportSlotCount  = 3                 ;how many "slots" we take in a transport (0 == not transportable)
18263  
18264    WeaponSet 
18265      Conditions        = None 
18266      Weapon            = PRIMARY     ToxinTruckGun
18267      Weapon            = SECONDARY   ToxinTruckSprayer
18268      Weapon            = TERTIARY TerroristSuicideNotARealWeapon
18269      AutoChooseSources = TERTIARY NONE
18270      AutoChooseSources = SECONDARY   NONE ;Special attack only
18271    End
18272    WeaponSet
18273      Conditions        = PLAYER_UPGRADE 
18274      Weapon            = PRIMARY     ToxinTruckGunUpgraded
18275      Weapon            = SECONDARY   ToxinTruckSprayerUpgraded
18276      Weapon            = TERTIARY TerroristSuicideNotARealWeapon
18277      AutoChooseSources = TERTIARY NONE
18278      AutoChooseSources = SECONDARY   NONE ;Special attack only
18279    End
18280    WeaponSet 
18281      Conditions        = CRATEUPGRADE_ONE 
18282      Weapon            = PRIMARY     ToxinTruckGunPlusOne
18283      Weapon            = SECONDARY   ToxinTruckSprayerPlusOne
18284      Weapon            = TERTIARY TerroristSuicideNotARealWeapon
18285      AutoChooseSources = TERTIARY NONE
18286      AutoChooseSources = SECONDARY   NONE ;Special attack only
18287    End
18288    WeaponSet
18289      Conditions        = CRATEUPGRADE_ONE PLAYER_UPGRADE 
18290      Weapon            = PRIMARY     ToxinTruckGunUpgradedPlusOne
18291      Weapon            = SECONDARY   ToxinTruckSprayerUpgradedPlusOne
18292      Weapon            = TERTIARY TerroristSuicideNotARealWeapon
18293      AutoChooseSources = TERTIARY NONE
18294      AutoChooseSources = SECONDARY   NONE ;Special attack only
18295    End
18296    WeaponSet 
18297      Conditions        = CRATEUPGRADE_TWO 
18298      Weapon            = PRIMARY     ToxinTruckGunPlusTwo
18299      Weapon            = SECONDARY   ToxinTruckSprayerPlusTwo
18300      Weapon            = TERTIARY TerroristSuicideNotARealWeapon
18301      AutoChooseSources = TERTIARY NONE
18302      AutoChooseSources = SECONDARY   NONE ;Special attack only
18303    End
18304    WeaponSet
18305      Conditions        = CRATEUPGRADE_TWO PLAYER_UPGRADE 
18306      Weapon            = PRIMARY     ToxinTruckGunUpgradedPlusTwo
18307      Weapon            = SECONDARY   ToxinTruckSprayerUpgradedPlusTwo
18308      Weapon            = TERTIARY TerroristSuicideNotARealWeapon
18309      AutoChooseSources = TERTIARY NONE
18310      AutoChooseSources = SECONDARY   NONE ;Special attack only
18311    End
18312  
18313    ArmorSet
18314      Conditions        = None
18315      Armor             = ToxinTruckArmor
18316      DamageFX          = TruckDamageFX
18317    End
18318    BuildCost           = 750
18319    BuildTime           = 5.0          ;in seconds    
18320    VisionRange         = 100
18321    ShroudClearingRange = 200
18322    Prerequisites
18323      Object = Demo_GLAArmsDealer
18324    End
18325  
18326    ExperienceValue     = 50 50 100 150    ;Experience point value at each level
18327    ExperienceRequired  = 0 100 150 300  ;Experience points needed to gain each level
18328    IsTrainable         = Yes             ;Can gain experience
18329    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
18330    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
18331    CommandSet          = Demo_GLAVehicleToxinTruckCommandSet
18332  
18333    ; *** AUDIO Parameters ***
18334    VoiceSelect         = ToxinTractorVoiceSelect
18335    VoiceMove           = ToxinTractorVoiceMove
18336    VoiceGuard          = ToxinTractorVoiceMove
18337    VoiceAttack         = ToxinTractorVoiceAttack
18338    SoundMoveStart      = ToxinTractorMoveStart
18339    SoundMoveStartDamaged = ToxinTractorMoveStart
18340  
18341    UnitSpecificSounds
18342      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
18343      VoiceCreate         = ToxinTractorVoiceCreate
18344      TurretMoveStart     = NoSound
18345      TurretMoveLoop      = TurretMoveLoop
18346     TruckLandingSound    = NoSound
18347     TruckPowerslideSound = NoSound
18348      VoiceCrush      = ToxinTractorVoiceCrush
18349      VoiceEnter           = ToxinTractorVoiceMove
18350      VoicePoisonLocation = ToxinTractorVoiceAttackContam
18351  
18352    End
18353  
18354    ; *** ENGINEERING Parameters ***
18355    RadarPriority         = UNIT
18356    KindOf                = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SALVAGER WEAPON_SALVAGER SCORE
18357  
18358    Body = ActiveBody ModuleTag_02
18359      MaxHealth           = 240.0
18360      InitialHealth       = 240.0
18361  
18362      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
18363      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
18364      SubdualDamageCap = 480
18365      SubdualDamageHealRate = 500
18366      SubdualDamageHealAmount = 50
18367    End
18368  
18369    Behavior = AIUpdateInterface ModuleTag_03
18370      AutoAcquireEnemiesWhenIdle = Yes
18371      Turret
18372        TurretTurnRate            = 180
18373        TurretPitchRate           = 180
18374        AllowsPitch               = Yes
18375        MinPhysicalPitch          = -20 ; If allows pitch, the lowest I can dip down to shoot.  defaults to 0 (horizontal)
18376        TurretFireAngleSweep      = PRIMARY 8
18377        TurretSweepSpeedModifier  = PRIMARY 0.5    ; Sweep slower than you turn
18378        ControlledWeaponSlots     = PRIMARY
18379      End
18380    End
18381    Locomotor             = SET_NORMAL ToxinTruckLocomotor
18382    Behavior              = PhysicsBehavior ModuleTag_04
18383      Mass                = 50.0
18384    End
18385  
18386    Behavior                    = SlowDeathBehavior  ModuleTag_05
18387      DeathTypes                = ALL -CRUSHED -SPLATTED
18388      ProbabilityModifier       = 5
18389      ModifierBonusPerOverkillPercent = 20%  ; negative means less likely to pick this in the face of much damage, positive means more likely
18390      DestructionDelay          = 0
18391      DestructionDelayVariance  = 200
18392      FX                        = INITIAL FX_ToxinTractorDie
18393      OCL                       = INITIAL OCL_ToxinTractorDeathEffect
18394      FX                        = FINAL FX_ToxinTruckExplosionOneFinal
18395    End
18396    Behavior                    = InstantDeathBehavior  ModuleTag_06
18397      DeathTypes                = NONE +CRUSHED +SPLATTED
18398      FX                        = FX_CarCrush
18399      OCL                       = OCL_CrusaderTank_CrushEffect
18400    End
18401      
18402    Behavior = CreateCrateDie ModuleTag_07
18403      CrateData   = SalvageCrateData
18404      ;CrateData  = EliteTankCrateData
18405      ;CrateData  = HeroicTankCrateData
18406    End
18407  
18408    Behavior = WeaponSetUpgrade ModuleTag_08
18409      ; the Toxin Tractor gets this upgrade if we either buy the upgrade,
18410      ; or if it gets HEROIC status
18411      TriggeredBy   = Upgrade_GLAAnthraxBeta Upgrade_Veterancy_HEROIC
18412    End
18413    
18414    Behavior                          = TransitionDamageFX ModuleTag_11
18415      ReallyDamagedParticleSystem1  = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
18416      ReallyDamagedFXList1          = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
18417    End
18418    
18419    Behavior = AutoHealBehavior ModuleTag_12
18420      HealingAmount   = 2
18421      HealingDelay    = 1000 ; msec
18422      TriggeredBy     = Upgrade_GLAJunkRepair
18423    End
18424  
18425    Behavior = FlammableUpdate ModuleTag_21
18426      AflameDuration          = 5000         ; If I catch fire, I'll burn for this long...
18427      AflameDamageAmount      = 3       ; taking this much damage...
18428      AflameDamageDelay       = 500       ; this often.
18429    End
18430  
18431    Behavior = FireOCLAfterWeaponCooldownUpdate ModuleTag_13
18432      WeaponSlot            = SECONDARY
18433      ConflictsWith         = Upgrade_GLAAnthraxBeta Upgrade_Veterancy_HEROIC
18434      OCL                   = OCL_PoisonFieldMedium
18435      MinShotsToCreateOCL   = 4
18436      OCLLifetimePerSecond  = 10000
18437      OCLLifetimeMaxCap     = 180000
18438    End
18439    Behavior = FireOCLAfterWeaponCooldownUpdate ModuleTag_14
18440      WeaponSlot            = SECONDARY
18441      TriggeredBy           = Upgrade_GLAAnthraxBeta Upgrade_Veterancy_HEROIC
18442      OCL                   = OCL_PoisonFieldUpgradedMedium
18443      MinShotsToCreateOCL   = 4
18444      OCLLifetimePerSecond  = 10000
18445      OCLLifetimeMaxCap     = 180000
18446    End
18447  
18448    Behavior = FireWeaponWhenDeadBehavior ModuleTag_15    ;These two make the right damage field at death
18449      DeathWeapon   = ToxinShellWeapon
18450      StartsActive  = Yes   
18451      ConflictsWith = Upgrade_GLAAnthraxBeta
18452    End
18453    Behavior = FireWeaponWhenDeadBehavior ModuleTag_16
18454      DeathWeapon   = ToxinShellWeaponUpgraded
18455      StartsActive  = No   
18456      TriggeredBy = Upgrade_GLAAnthraxBeta
18457    End
18458  
18459    Behavior = SlowDeathBehavior ModuleTag_Death_14
18460      DeathTypes          = NONE +SUICIDED +EXPLODED
18461      SinkDelay           = 3000
18462      SinkRate            = 0.5     ; in Dist/Sec
18463      DestructionDelay    = 8000
18464      FX                  = INITIAL FX_TerroristExplode
18465      FlingForce          = 8
18466      FlingForceVariance  = 3
18467      FlingPitch          = 60
18468      FlingPitchVariance  = 10
18469    End
18470  
18471  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death24
18472  ;    DeathWeapon   = Demo_SuicideDynamitePack
18473  ;    StartsActive  = Yes                      ; turned on by upgrade
18474  ;    DeathTypes = NONE +SUICIDED
18475  ;  End
18476  ;
18477  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag999
18478  ;    DeathWeapon   = Demo_SuicideDynamitePackPlusFire
18479  ;    StartsActive  = No
18480  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
18481  ;    RequiresAllTriggers = Yes; 
18482  ;    DeathTypes = ALL -SUICIDED -POISONED -POISONED_BETA -POISONED_GAMMA
18483  ;  End
18484  ;
18485  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag998
18486  ;    DeathWeapon   = Demo_SuicideDynamitePack
18487  ;    StartsActive  = No
18488  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
18489  ;    RequiresAllTriggers = Yes; 
18490  ;    DeathTypes = NONE +SUICIDED
18491  ;  End
18492  
18493    Behavior = FireWeaponWhenDeadBehavior ModuleTag_George 
18494      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
18495      StartsActive  = No
18496      TriggeredBy   = Demo_Upgrade_SuicideBomb
18497      DeathTypes = ALL
18498    End;
18499  
18500    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Bob
18501      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
18502      StartsActive  = No
18503      TriggeredBy   = Demo_Upgrade_SuicideBomb
18504      DeathTypes = NONE 
18505    End
18506  
18507    Behavior = CommandSetUpgrade ModuleTag_17
18508      CommandSet = Demo_GLAVehicleToxinTruckCommandSetUpgrade
18509      TriggeredBy = Demo_Upgrade_SuicideBomb
18510    End
18511  
18512    Geometry = BOX
18513    GeometryMajorRadius = 13.0
18514    GeometryMinorRadius = 9.0
18515    GeometryHeight = 10.0   ; set to make the projectile stream look right  
18516    GeometryIsSmall = Yes    
18517    Shadow = SHADOW_VOLUME
18518    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
18519  
18520  End
18521  
18522  
18523  
18524  
18525  ;------------------------------------------------------------------------------
18526  Object Demo_GLAVehicleBombTruck
18527  
18528    ; *** ART Parameters ***
18529    SelectPortrait         = SSConvoy_L
18530    ButtonImage            = SSConvoy_L
18531    
18532    ;UpgradeCameo1 = NONE
18533    ;UpgradeCameo2 = NONE
18534    ;UpgradeCameo3 = NONE
18535    ;UpgradeCameo4 = NONE
18536    ;UpgradeCameo5 = NONE
18537    
18538    
18539    Draw = W3DTruckDraw ModuleTag_01
18540      OkToChangeModelColor = Yes
18541      ConditionState  = NONE
18542        Model         = NVConvoy
18543      End
18544      ConditionState  = LOADED
18545        Model         = NVConvoy
18546      End  
18547      CabRotationMultiplier = 1.5
18548  
18549      TrailerRotationMultiplier = 0.2
18550      ;CabBone = CAB
18551      ;TrailerBone = TRAILER
18552      RotationDamping = 0.7
18553  
18554      RightFrontTireBone = Tire01
18555      LeftFrontTireBone = Tire02
18556      ;MidRightFrontTireBone = Tire03
18557      ;MidLeftFrontTireBone = Tire04
18558      ;MidRightMidTireBone = Tire05
18559      ;MidLeftMidTireBone = Tire06
18560      MidRightRearTireBone = Tire07
18561      MidLeftRearTireBone = Tire08
18562      RightRearTireBone = Tire09
18563      LeftRearTireBone = Tire10
18564  
18565      TireRotationMultiplier = 0.2   ; this * speed = rotation.
18566      
18567      TrackMarks = EXTireTrack.tga
18568      Dust = RocketBuggyDust
18569      DirtSpray = RocketBuggyDirtSpray
18570    End
18571  
18572    ; ***DESIGN parameters ***
18573    DisplayName      = OBJECT:NukeTruck
18574    Side = GLADemolitionGeneral
18575    EditorSorting   = VEHICLE
18576    TransportSlotCount = 3                 ;how many "slots" we take in a transport (0 == not transportable)
18577    WeaponSet
18578      Conditions      = CARBOMB
18579      Weapon          = PRIMARY NukeTruck
18580    End
18581    ArmorSet
18582      Conditions      = None
18583      Armor           = TruckArmor
18584      DamageFX        = TruckDamageFX
18585    End
18586    BuildCost       = 1400
18587    BuildTime       = 20.0          ;in seconds    
18588    VisionRange     = 150 ; Used in attack move targeting
18589    ShroudClearingRange     = 350
18590  
18591    Prerequisites
18592      Object = Demo_GLAArmsDealer
18593      Object = Demo_GLAPalace
18594      
18595    End
18596  
18597    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
18598    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
18599    CommandSet = CivilianTransportWithNukeCommandSet
18600  
18601    ; *** AUDIO Parameters ***
18602    VoiceSelect             = SupplyTruckVoiceSelect
18603    VoiceMove               = SupplyTruckVoiceMove
18604    VoiceAttack             = SupplyTruckVoiceAttack
18605    SoundMoveStart          = SupplyTruckMoveStart
18606    SoundMoveStartDamaged   = SupplyTruckMoveStart
18607    UnitSpecificSounds
18608      VoiceCreate           = SupplyTruckVoiceCreate
18609      TruckLandingSound     = NoSound
18610      TruckPowerslideSound  = NoSound
18611    End
18612  
18613    ; *** ENGINEERING Parameters ***
18614    RadarPriority          = UNIT
18615    KindOf            = SELECTABLE CAN_ATTACK VEHICLE SHOW_PORTRAIT_WHEN_CONTROLLED 
18616  
18617    Body              = ActiveBody ModuleTag_02
18618      MaxHealth       = 300.0
18619      InitialHealth   = 300.0
18620    End
18621  
18622    Behavior               = DestroyDie ModuleTag_03
18623                      ;nothing
18624    End
18625    Behavior               = CreateObjectDie ModuleTag_04
18626      DeathTypes = ALL 
18627      CreationList    = OCL_GenericCarExplode
18628    End
18629    Behavior               = CreateObjectDie ModuleTag_05
18630      DeathTypes = NONE +SUICIDED
18631      CreationList    = OCL_BurnedCarHull
18632    End
18633  
18634    Behavior = AIUpdateInterface ModuleTag_06
18635    End
18636    Locomotor       = SET_NORMAL CINE_SupplyTruckLocomotor
18637    Locomotor       = SET_WANDER WanderCarLocomotor
18638    Locomotor       = SET_PANIC PanicCarLocomotor
18639  
18640    Behavior          = PhysicsBehavior ModuleTag_07
18641      Mass            = 30.0
18642    End
18643  
18644    Behavior           = OCLSpecialPower ModuleTag_08
18645      SpecialPowerTemplate = SuperweaponDetonateDirtyNuke
18646      OCL                  = SUPERWEAPON_DetonateDirtyNuke
18647      CreateLocation       = USE_OWNER_OBJECT
18648    End
18649  
18650    Behavior = FlammableUpdate ModuleTag_21
18651      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
18652      AflameDamageAmount = 5       ; taking this much damage...
18653      AflameDamageDelay = 500       ; this often.
18654    End
18655  
18656    Geometry            = BOX
18657    GeometryIsSmall     = NO
18658    GeometryMajorRadius = 20.0
18659    GeometryMinorRadius = 8.0
18660    GeometryHeight      = 16.0
18661    Shadow              = SHADOW_VOLUME
18662  
18663  End
18664  
18665  
18666  ;------------------------------------------------------------------------------
18667  Object Demo_GLAVehicleScudLauncher
18668  
18669    ; *** ART Parameters ***
18670    SelectPortrait         = SUScudLauncher_L
18671    ButtonImage            = SUScudLauncher
18672  
18673    UpgradeCameo1 = Upgrade_GLAJunkRepair
18674    UpgradeCameo2 = Upgrade_GLAAnthraxBeta
18675    ;UpgradeCameo3 = NONE
18676    ;UpgradeCameo4 = NONE
18677    ;UpgradeCameo5 = NONE
18678  
18679    Draw = W3DTruckDraw ModuleTag_01
18680      OkToChangeModelColor = Yes
18681  
18682      ProjectileBoneFeedbackEnabledSlots = PRIMARY SECONDARY ; WeaponLaunchBone will be shown/hidden, not just used for firing offset
18683    
18684      DefaultConditionState
18685        Model = UVScudLchr
18686        Turret = TURRET
18687        TurretPitch = TURRETEL
18688        ShowSubObject = TURRET
18689        HideSubObject = TURRETUP01 TURRETUP02
18690        WeaponLaunchBone = PRIMARY WeaponA
18691        WeaponLaunchBone = SECONDARY WeaponA
18692      End
18693  
18694      ConditionState = REALLYDAMAGED
18695        Model = UVScudLchr_d
18696      End
18697      AliasConditionState = RUBBLE
18698  
18699      ConditionState = WEAPONSET_CRATEUPGRADE_ONE
18700        Model = UVScudLchr
18701        Turret = TURRETUP01
18702        TurretPitch = TURRETEL01
18703        ShowSubObject = TURRETUP01
18704        HideSubObject = TURRET TURRETUP02
18705        WeaponLaunchBone = PRIMARY WeaponB
18706        WeaponLaunchBone = SECONDARY WeaponB
18707      End
18708  
18709      ConditionState = WEAPONSET_CRATEUPGRADE_ONE REALLYDAMAGED
18710        Model = UVScudLchr_d
18711        Turret = TURRETUP01
18712        TurretPitch = TURRETEL01
18713        ShowSubObject = TURRETUP01
18714        HideSubObject = TURRET TURRETUP02
18715        WeaponLaunchBone = PRIMARY WeaponB
18716        WeaponLaunchBone = SECONDARY WeaponB
18717      End
18718  
18719      ConditionState = WEAPONSET_CRATEUPGRADE_TWO
18720        Model = UVScudLchr
18721        Turret = TURRETUP02
18722        TurretPitch = TURRETEL02
18723        ShowSubObject = TURRETUP02
18724        HideSubObject = TURRET TURRETUP01
18725        WeaponLaunchBone = PRIMARY WeaponC
18726        WeaponLaunchBone = SECONDARY WeaponC
18727      End
18728  
18729      ConditionState = WEAPONSET_CRATEUPGRADE_TWO REALLYDAMAGED
18730        Model = UVScudLchr_d
18731        Turret = TURRETUP02
18732        TurretPitch = TURRETEL02
18733        ShowSubObject = TURRETUP02
18734        HideSubObject = TURRET TURRETUP01
18735        WeaponLaunchBone = PRIMARY WeaponC
18736        WeaponLaunchBone = SECONDARY WeaponC
18737      End
18738  
18739      TrackMarks = EXTireTrack.tga
18740  
18741      Dust = ScudLauncherDust
18742      DirtSpray = RocketBuggyDirtSpray
18743      PowerslideSpray = RocketBuggyDirtPowerSlide
18744  
18745      ; These parameters are only used if the model has a separate suspension, 
18746      ; and the locomotor has HasSuspension = Yes.
18747      LeftFrontTireBone = Tire01
18748      RightFrontTireBone = Tire05
18749      LeftRearTireBone = Tire04
18750      RightRearTireBone = Tire08
18751      MidLeftFrontTireBone = Tire02
18752      MidRightFrontTireBone = Tire06
18753      MidLeftRearTireBone = Tire03
18754      MidRightRearTireBone = Tire07
18755  
18756      TireRotationMultiplier = 0.2   ; this * speed = rotation.
18757      ;PowerslideRotationAddition = 0.0   ; This speed is added to the rotation speed when powersliding.
18758  
18759    End
18760  
18761  
18762    ; ***DESIGN parameters ***
18763  
18764    DisplayName      = OBJECT:ScudLauncher
18765    Side = GLADemolitionGeneral
18766    EditorSorting   = VEHICLE
18767    TransportSlotCount = 3                 ;how many "slots" we take in a transport (0 == not transportable)
18768  
18769    WeaponSet
18770      Conditions = None
18771      Weapon = PRIMARY DEMO_SCUDLauncherGunExplosive
18772      Weapon = TERTIARY TerroristSuicideNotARealWeapon
18773      AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI
18774      AutoChooseSources = TERTIARY None
18775    End
18776    WeaponSet
18777      Conditions = CRATEUPGRADE_ONE
18778      Weapon = PRIMARY DEMO_SCUDLauncherGunExplosivePlusOne
18779      Weapon = TERTIARY TerroristSuicideNotARealWeapon
18780      AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI 
18781      AutoChooseSources = TERTIARY None
18782    End
18783    WeaponSet
18784      Conditions = CRATEUPGRADE_TWO
18785      Weapon = PRIMARY DEMO_SCUDLauncherGunExplosivePlusTwo
18786      Weapon = TERTIARY TerroristSuicideNotARealWeapon
18787      AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI 
18788      AutoChooseSources = TERTIARY None
18789    End
18790  
18791    ArmorSet
18792      Conditions      = None
18793      Armor           = TruckArmor
18794      DamageFX        = TankDamageFX
18795    End
18796    BuildCost       = 1200
18797    BuildTime       = 15.0          ;in seconds    
18798    VisionRange     = 180
18799    ShroudClearingRange = 300
18800    Prerequisites
18801      Object = Demo_GLAArmsDealer
18802      Object = Demo_GLAPalace
18803      Science = SCIENCE_ScudLauncher
18804    End
18805  
18806    ExperienceValue = 50 50 100 150   ;Experience point value at each level
18807    ExperienceRequired = 0 100 200 400  ;Experience points needed to gain each level
18808    IsTrainable = Yes             ;Can gain experience
18809    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
18810    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
18811    CommandSet           = Demo_GLAVehicleScudLauncherCommandSet
18812  
18813    ; *** AUDIO Parameters ***
18814    VoiceSelect = ScudLauncherVoiceSelect
18815    VoiceMove = ScudLauncherVoiceMove
18816    VoiceGuard = ScudLauncherVoiceMove
18817    VoiceAttack = ScudLauncherVoiceAttack
18818    SoundMoveStart = ScudLauncherMoveStart
18819    SoundMoveStartDamaged = ScudLauncherMoveStart
18820    UnitSpecificSounds
18821      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
18822      VoiceCreate       = ScudLauncherVoiceCreate
18823      TurretMoveStart = NoSound
18824      TurretMoveLoop = TurretMoveLoop
18825      TruckLandingSound = NoSound
18826      TruckPowerslideSound = NoSound
18827      VoiceCrush = ScudLauncherVoiceCrush
18828      VoiceEnter = ScudLauncherVoiceMove
18829      VoicePrimaryWeaponMode = ScudLauncherVoiceModeHiEx
18830      VoiceSecondaryWeaponMode = ScudLauncherVoiceModeAnthrax
18831    End
18832  
18833    ; *** ENGINEERING Parameters ***
18834    RadarPriority = UNIT
18835    KindOf = PRELOAD SELECTABLE CAN_ATTACK DONT_AUTO_CRUSH_INFANTRY CAN_CAST_REFLECTIONS VEHICLE SALVAGER WEAPON_SALVAGER SCORE
18836  
18837    Body = ActiveBody ModuleTag_02
18838      MaxHealth       = 180.0
18839      InitialHealth   = 180.0
18840  
18841      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
18842      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
18843      SubdualDamageCap = 360
18844      SubdualDamageHealRate = 500
18845      SubdualDamageHealAmount = 50
18846    End
18847  
18848    Behavior = AIUpdateInterface ModuleTag_03
18849      Turret
18850        TurretTurnRate = 60   ; turn rate, in degrees per sec
18851        TurretPitchRate = 60
18852        FirePitch = 90  ; Instead of aiming pitchwise at the target, it will aim here
18853        AllowsPitch = Yes
18854        ControlledWeaponSlots = PRIMARY 
18855      End
18856      AutoAcquireEnemiesWhenIdle = No NotWhileAttacking
18857    End  
18858  
18859    Behavior = CommandButtonHuntUpdate  ModuleTag_04 ; allows use of command button hunt script with this unit. 
18860    End
18861  
18862    Locomotor = SET_NORMAL ScudLauncherLocomotor
18863    Behavior = PhysicsBehavior ModuleTag_05
18864      Mass = 40.0
18865    End
18866  
18867    Behavior = AutoHealBehavior ModuleTag_06
18868      HealingAmount = 2
18869      HealingDelay = 1000 ; msec
18870      TriggeredBy = Upgrade_GLAJunkRepair
18871    End
18872  
18873    Behavior = TransitionDamageFX ModuleTag_08
18874      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01
18875      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_ScudLauncherDamageTransition
18876    End
18877  
18878    ; Catch fire, and explode death
18879    Behavior = SlowDeathBehavior ModuleTag_09
18880      DeathTypes = ALL -CRUSHED -SPLATTED
18881      ProbabilityModifier = 50
18882      DestructionDelay = 2000
18883      DestructionDelayVariance = 300
18884      FX  = INITIAL  FX_CrusaderCatchFire
18885      OCL = FINAL    OCL_SCUDLauncherDeathEffect  
18886      FX  = FINAL    FX_ScudLauncherExplosionOneFinal
18887    End
18888  
18889    ; A crushing defeat
18890    Behavior = FXListDie ModuleTag_10
18891      DeathTypes = NONE +CRUSHED +SPLATTED
18892      DeathFX = FX_CarCrush
18893    End
18894  
18895    Behavior = CreateObjectDie ModuleTag_11
18896      DeathTypes = NONE +CRUSHED +SPLATTED
18897      CreationList = OCL_CrusaderTank_CrushEffect
18898    End
18899  
18900    Behavior = FlammableUpdate ModuleTag_21
18901      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
18902      AflameDamageAmount = 3       ; taking this much damage...
18903      AflameDamageDelay = 500       ; this often.
18904    End
18905  
18906    Behavior = DestroyDie ModuleTag_22
18907      DeathTypes = NONE +CRUSHED +SPLATTED
18908    End
18909  
18910  ;  Behavior = WeaponSetUpgrade ModuleTag_23
18911  ;    TriggeredBy = Upgrade_GLAAnthraxBeta
18912  ;  End
18913  ;
18914  ;  Behavior = LockWeaponCreate ModuleTag_24
18915  ;    SlotToLock = PRIMARY ; Prevents indeterminate state plus two unpickable weapons equaling no attack.
18916  ;  End
18917  ;
18918  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death24
18919  ;    DeathWeapon   = Demo_SuicideDynamitePack
18920  ;    StartsActive  = Yes                      ; turned on by upgrade
18921  ;    DeathTypes = NONE +SUICIDED
18922  ;  End
18923  ;
18924  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag999
18925  ;    DeathWeapon   = Demo_SuicideDynamitePackPlusFire
18926  ;    StartsActive  = No
18927  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
18928  ;    RequiresAllTriggers = Yes; 
18929  ;    DeathTypes = ALL -SUICIDED -POISONED -POISONED_BETA -POISONED_GAMMA
18930  ;  End
18931  ;
18932  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag998
18933  ;    DeathWeapon   = Demo_SuicideDynamitePack
18934  ;    StartsActive  = No
18935  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
18936  ;    RequiresAllTriggers = Yes; 
18937  ;    DeathTypes = NONE +SUICIDED
18938  ;  End
18939  
18940    Behavior = FireWeaponWhenDeadBehavior ModuleTag_George 
18941      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
18942      StartsActive  = No
18943      TriggeredBy   = Demo_Upgrade_SuicideBomb
18944    End;
18945  
18946    Behavior = CommandSetUpgrade ModuleTag_26
18947      CommandSet = Demo_GLAVehicleScudLauncherCommandSetUpgrade
18948      TriggeredBy = Demo_Upgrade_SuicideBomb
18949    End
18950  
18951  
18952    Geometry = BOX
18953    GeometryMajorRadius = 14.0
18954    GeometryMinorRadius = 7.0
18955    GeometryHeight = 11.5     
18956    GeometryIsSmall = No
18957    Shadow = SHADOW_VOLUME   
18958    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length 
18959  
18960  End
18961  
18962  
18963  
18964  
18965  
18966  ;------------------------------------------------------------------------------
18967  ; this unit is never really "built"; building one triggers the random building of
18968  ; one of the other chassis. If you want a *specific* chassis, choose it explicitly;
18969  ; if you want a chassis at random, specify this.
18970  Object Demo_GLAVehicleTechnical
18971  
18972    ; *** ART Parameters ***
18973    SelectPortrait         = SUTechnical_L 
18974    ButtonImage            = SUTechnical
18975  
18976    Draw = W3DModelDraw ModuleTag_01
18977      DefaultConditionState
18978        ; give it a model so it'll show up in WB
18979        Model = UVTechTrck
18980      End
18981    End
18982  
18983    ; set cost and time fields here or else they won't work
18984    BuildCost       = 550
18985    BuildTime       = 3.0          ;in seconds    
18986  
18987    ; Needed to get the Veterancy Overlays on top of the Technical with his build variations.
18988    ;------------------------------------------------------------
18989    Behavior = VeterancyGainCreate ModuleTag_03
18990      StartingLevel = VETERAN
18991      ScienceRequired = SCIENCE_TechnicalTraining
18992    End
18993  
18994    Side = GLADemolitionGeneral
18995    EditorSorting = VEHICLE
18996    BuildVariations = Demo_GLAVehicleTechnicalChassisOne Demo_GLAVehicleTechnicalChassisTwo Demo_GLAVehicleTechnicalChassisThree
18997  
18998    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS SALVAGER WEAPON_SALVAGER VEHICLE TRANSPORT
18999  
19000  End
19001  
19002  ;------------------------------------------------------------------------------
19003  Object Demo_GLAVehicleTechnicalChassisOne
19004  
19005    ; *** ART Parameters ***
19006    SelectPortrait         = SUTechnical_L 
19007    ButtonImage            = SUTechnical
19008  
19009    UpgradeCameo1 = Upgrade_GLAAPBullets
19010    UpgradeCameo2 = Upgrade_GLAJunkRepair
19011    ;UpgradeCameo3 = NONE
19012    ;UpgradeCameo4 = NONE
19013    ;UpgradeCameo5 = NONE
19014  
19015    Draw = W3DTruckDraw ModuleTag_01
19016  
19017      ExtraPublicBone = Dum_Turret 
19018  
19019      DefaultConditionState
19020        Model         = UVTechTrck
19021      End
19022      ConditionState  = REALLYDAMAGED
19023        Model         = UVTechTrck_d
19024      End
19025      ConditionState  = RUBBLE
19026        Model         = UVTechTrck_d
19027      End
19028  
19029      OkToChangeModelColor        = Yes
19030      TrackMarks                  = EXTireTrack.tga
19031      Dust                        = TechnicalDust
19032      DirtSpray                   = RocketBuggyDirtSpray
19033      PowerslideSpray             = RocketBuggyDirtPowerSlide
19034  
19035      ; These parameters are only used if the model has a separate suspension, 
19036      ; and the locomotor has HasSuspension = Yes.
19037      LeftFrontTireBone           = Tire01
19038      RightFrontTireBone          = Tire02
19039      LeftRearTireBone            = Tire03
19040      RightRearTireBone           = Tire04
19041      TireRotationMultiplier      = 0.2        ; this * speed = rotation.
19042      PowerslideRotationAddition  = 2.5    ; This speed is added to the rotation speed when powersliding.
19043    End
19044  
19045    Draw = W3DModelDraw ModuleTag_02
19046  
19047      OkToChangeModelColor        = Yes
19048      AttachToBoneInAnotherModule = Dum_Turret
19049  
19050      ; ------------------ basic technical ------------------------
19051      DefaultConditionState
19052        Model = UITech_SKN
19053        Turret = Dum-TurManMVR
19054        TurretArtAngle = 180  ; this turret has art pointed 180 degrees backward
19055        HideSubObject = 20Cal 50Cal RPG MuzzleFX01 MuzzleFX02 MuzzleFX03
19056        IdleAnimation = UITech_SKL.UITech_STA 0 6
19057        IdleAnimation = UITech_SKL.UITech_IDA
19058        IdleAnimation = UITech_SKL.UITech_IDB
19059        AnimationMode = ONCE
19060        ShowSubObject = 20Cal
19061        WeaponMuzzleFlash = PRIMARY MuzzleFX01
19062        WeaponFireFXBone = PRIMARY Muzzle01
19063      End
19064  
19065      ConditionState = RUBBLE MOVING TURRET_ROTATE
19066        Animation = None
19067        HideSubObject = UITech-SKN
19068        ShowSubObject = 20Cal
19069        WeaponMuzzleFlash = PRIMARY MuzzleFX01
19070        WeaponFireFXBone = PRIMARY Muzzle01
19071      End
19072  
19073      ConditionState = MOVING
19074        Animation = UITech_SKL.UITech_MVB
19075        AnimationMode = LOOP
19076        ShowSubObject = 20Cal
19077        WeaponMuzzleFlash = PRIMARY MuzzleFX01
19078        WeaponFireFXBone = PRIMARY Muzzle01
19079      End
19080  
19081      ConditionState = TURRET_ROTATE
19082        Animation = UITech_SKL.UITech_TNA
19083        AnimationMode = LOOP
19084        ShowSubObject = 20Cal
19085        WeaponMuzzleFlash = PRIMARY MuzzleFX01
19086        WeaponFireFXBone = PRIMARY Muzzle01
19087      End
19088      AliasConditionState = TURRET_ROTATE MOVING
19089      AliasConditionState = TURRET_ROTATE FIRING_A
19090      AliasConditionState = TURRET_ROTATE BETWEEN_FIRING_SHOTS_A
19091      AliasConditionState = TURRET_ROTATE RELOADING_A
19092      AliasConditionState = TURRET_ROTATE MOVING FIRING_A
19093      AliasConditionState = TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A
19094      AliasConditionState = TURRET_ROTATE MOVING RELOADING_A
19095  
19096      ConditionState = FIRING_A 
19097        Animation = UITech_SKL.UITech_ATA
19098        AnimationMode = LOOP
19099        ShowSubObject = 20Cal
19100        WeaponMuzzleFlash = PRIMARY MuzzleFX01
19101        WeaponFireFXBone = PRIMARY Muzzle01
19102      End
19103  
19104      ; AliasConditionState is a new keyword that says,
19105      ; "give me another ConditionState exactly like the previous
19106      ; one, except with different conditions". Useful when you
19107      ; have several states that are the same with only different condition bits.
19108      AliasConditionState = BETWEEN_FIRING_SHOTS_A
19109      AliasConditionState = RELOADING_A
19110  
19111      ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.).
19112      AliasConditionState = MOVING FIRING_A
19113      AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A
19114      AliasConditionState = MOVING RELOADING_A
19115  
19116      ; ------------------ technical with WEAPONSET_CRATEUPGRADE_ONE ------------------------
19117      ConditionState = WEAPONSET_CRATEUPGRADE_ONE
19118        IdleAnimation = UITech_SKL.UITech_STA 0 6
19119        IdleAnimation = UITech_SKL.UITech_IDA
19120        IdleAnimation = UITech_SKL.UITech_IDB
19121        AnimationMode = ONCE
19122        ShowSubObject = 50Cal
19123        WeaponMuzzleFlash = PRIMARY MuzzleFX02
19124        WeaponFireFXBone = PRIMARY Muzzle02
19125        WeaponLaunchBone = PRIMARY Muzzle02
19126      End
19127  
19128      ConditionState = WEAPONSET_CRATEUPGRADE_ONE RUBBLE MOVING TURRET_ROTATE
19129        Animation = None
19130        HideSubObject = UITech-SKN
19131        ShowSubObject = 50Cal
19132        WeaponMuzzleFlash = PRIMARY MuzzleFX02
19133        WeaponFireFXBone = PRIMARY Muzzle02
19134        WeaponLaunchBone = PRIMARY Muzzle02
19135      End
19136  
19137      ConditionState = MOVING WEAPONSET_CRATEUPGRADE_ONE
19138        Animation = UITech_SKL.UITech_MVB
19139        AnimationMode = LOOP
19140        ShowSubObject = 50Cal
19141        WeaponMuzzleFlash = PRIMARY MuzzleFX02
19142        WeaponFireFXBone = PRIMARY Muzzle02
19143        WeaponLaunchBone = PRIMARY Muzzle02
19144      End
19145  
19146      ConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE
19147        Animation = UITech_SKL.UITech_TNA
19148        AnimationMode = LOOP
19149        ShowSubObject = 50Cal
19150        WeaponMuzzleFlash = PRIMARY MuzzleFX02
19151        WeaponFireFXBone = PRIMARY Muzzle02
19152        WeaponLaunchBone = PRIMARY Muzzle02
19153      End
19154      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING
19155      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE FIRING_A
19156      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE BETWEEN_FIRING_SHOTS_A
19157      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE RELOADING_A
19158      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING FIRING_A
19159      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A
19160      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING RELOADING_A
19161  
19162      ConditionState = WEAPONSET_CRATEUPGRADE_ONE FIRING_A 
19163        Animation = UITech_SKL.UITech_ATA
19164        AnimationMode = LOOP
19165        ShowSubObject = 50Cal
19166        WeaponMuzzleFlash = PRIMARY MuzzleFX02
19167        WeaponFireFXBone = PRIMARY Muzzle02
19168        WeaponLaunchBone = PRIMARY Muzzle02
19169      End
19170  
19171      ; AliasConditionState is a new keyword that says,
19172      ; "give me another ConditionState exactly like the previous
19173      ; one, except with different conditions". Useful when you
19174      ; have several states that are the same with only different condition bits.
19175      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE BETWEEN_FIRING_SHOTS_A
19176      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE RELOADING_A
19177  
19178      ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.).
19179      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING FIRING_A
19180      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING BETWEEN_FIRING_SHOTS_A
19181      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING RELOADING_A
19182  
19183      ; ------------------ technical with WEAPONSET_CRATEUPGRADE_TWO ------------------------
19184      ConditionState = WEAPONSET_CRATEUPGRADE_TWO
19185        IdleAnimation = UITech_SKL.UITech_STA 0 6
19186        IdleAnimation = UITech_SKL.UITech_IDA
19187        IdleAnimation = UITech_SKL.UITech_IDB
19188        AnimationMode = ONCE
19189        ShowSubObject = RPG
19190        WeaponFireFXBone = PRIMARY Muzzle03
19191        WeaponLaunchBone = PRIMARY Muzzle03
19192      End
19193  
19194      ConditionState = WEAPONSET_CRATEUPGRADE_TWO RUBBLE MOVING TURRET_ROTATE
19195        Animation = None
19196        HideSubObject = UITech-SKN
19197        ShowSubObject = RPG
19198        WeaponFireFXBone = PRIMARY Muzzle03
19199        WeaponLaunchBone = PRIMARY Muzzle03
19200      End
19201  
19202      ConditionState = MOVING WEAPONSET_CRATEUPGRADE_TWO
19203        Animation = UITech_SKL.UITech_MVB
19204        AnimationMode = LOOP
19205        ShowSubObject = RPG
19206        WeaponFireFXBone = PRIMARY Muzzle03
19207        WeaponLaunchBone = PRIMARY Muzzle03
19208      End
19209  
19210      ConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE
19211        Animation = UITech_SKL.UITech_TNA
19212        AnimationMode = LOOP
19213        ShowSubObject = RPG
19214        WeaponFireFXBone = PRIMARY Muzzle03
19215        WeaponLaunchBone = PRIMARY Muzzle03
19216      End
19217      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING
19218      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE FIRING_A
19219      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE BETWEEN_FIRING_SHOTS_A
19220      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE RELOADING_A
19221      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING FIRING_A
19222      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A
19223      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING RELOADING_A
19224  
19225      ConditionState = WEAPONSET_CRATEUPGRADE_TWO FIRING_A 
19226        Animation = UITech_SKL.UITech_ATA
19227        AnimationMode = LOOP
19228        ShowSubObject = RPG
19229        WeaponFireFXBone = PRIMARY Muzzle03
19230        WeaponLaunchBone = PRIMARY Muzzle03
19231      End
19232  
19233      ; AliasConditionState is a new keyword that says,
19234      ; "give me another ConditionState exactly like the previous
19235      ; one, except with different conditions". Useful when you
19236      ; have several states that are the same with only different condition bits.
19237      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO BETWEEN_FIRING_SHOTS_A
19238      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO RELOADING_A
19239  
19240      ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.).
19241      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING FIRING_A
19242      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING BETWEEN_FIRING_SHOTS_A
19243      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING RELOADING_A
19244  
19245    End
19246  
19247    ; ***DESIGN parameters ***
19248    DisplayName         = OBJECT:Technical
19249    Side                = GLADemolitionGeneral
19250    EditorSorting       = VEHICLE
19251    TransportSlotCount  = 3                 ;how many "slots" we take in a transport (0 == not transportable)
19252  
19253    WeaponSet
19254      Conditions = None 
19255      Weapon = PRIMARY TechnicalMachineGunWeapon
19256      Weapon = TERTIARY TerroristSuicideNotARealWeapon
19257      AutoChooseSources = TERTIARY None
19258    End
19259    WeaponSet
19260      Conditions = CRATEUPGRADE_ONE 
19261      Weapon = PRIMARY TechnicalCannonWeapon
19262      Weapon = TERTIARY TerroristSuicideNotARealWeapon
19263      AutoChooseSources = TERTIARY None
19264    End
19265    WeaponSet
19266      Conditions = CRATEUPGRADE_TWO 
19267      Weapon = PRIMARY TechnicalRPGWeapon
19268      Weapon = TERTIARY TerroristSuicideNotARealWeapon
19269      AutoChooseSources = TERTIARY None
19270    End
19271    ArmorSet
19272      Conditions      = None
19273      Armor           = TruckArmor
19274      DamageFX        = TruckDamageFX
19275    End
19276    ;update cost and time fields in Object GLAVehicleTechnical, or else they won't work
19277    ;BuildCost            = 300
19278    ;BuildTime            = 5.0          ;in seconds    
19279    VisionRange           = 150
19280    ShroudClearingRange   = 300
19281    Prerequisites
19282      Object = Demo_GLAArmsDealer
19283    End
19284  
19285    ExperienceValue         = 25 25 50 100    ;Experience point value at each level
19286    ExperienceRequired      = 0 50 75 150  ;Experience points needed to gain each level
19287    IsTrainable             = Yes             ;Can gain experience
19288    CrusherLevel            = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
19289    CrushableLevel          = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
19290    CommandSet              = Demo_GLAVehicleTechnicalCommandSet
19291    
19292    ; *** AUDIO Parameters ***
19293    VoiceSelect = TechnicalVoiceSelect
19294    VoiceMove = TechnicalVoiceMove
19295    VoiceGuard = TechnicalVoiceMove
19296    VoiceAttack = TechnicalVoiceAttack
19297    SoundMoveStart = TechnicalMoveStart
19298    SoundMoveStartDamaged = TechnicalMoveStart
19299    SoundEnter = HumveeEnter
19300    SoundExit = HumveeExit
19301  
19302    UnitSpecificSounds
19303    ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
19304      VoiceCreate          = TechnicalVoiceCreate
19305      TurretMoveStart = NoSound
19306      TurretMoveLoop = TurretMoveLoop
19307      TruckLandingSound = RocketBuggyLand
19308      TruckPowerslideSound = RocketBuggyPowerslide
19309      VoiceSalvage = TechnicalVoiceSalvage
19310      VoiceCrush      = TechnicalVoiceCrush
19311      VoiceUnload     = TechnicalVoiceUnload
19312      VoiceEnter = TechnicalVoiceMove
19313    End
19314  
19315    ; *** ENGINEERING Parameters ***
19316    RadarPriority = UNIT
19317    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS SALVAGER WEAPON_SALVAGER VEHICLE SCORE TRANSPORT
19318  
19319    Behavior = VeterancyGainCreate ModuleTag_03
19320      StartingLevel = VETERAN
19321      ScienceRequired = SCIENCE_TechnicalTraining
19322    End
19323  
19324    Body = ActiveBody ModuleTag_04
19325      MaxHealth       = 180
19326      InitialHealth   = 180
19327  
19328      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
19329      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
19330      SubdualDamageCap = 360
19331      SubdualDamageHealRate = 500
19332      SubdualDamageHealAmount = 50
19333    End
19334    Behavior = AIUpdateInterface ModuleTag_05
19335      Turret
19336        TurretTurnRate = 240       ; turn rate, in degrees per sec
19337        NaturalTurretAngle = 0
19338        MinIdleScanAngle = 30      ; in degrees off the natural turret angle
19339        MaxIdleScanAngle = 60      ; in degrees off the natural turret angle
19340        MinIdleScanInterval = 5000 ; in milliseconds
19341        MaxIdleScanInterval = 10000 ; in milliseconds
19342        ControlledWeaponSlots = PRIMARY SECONDARY TERTIARY
19343      End
19344      AutoAcquireEnemiesWhenIdle = Yes
19345    End
19346    Locomotor = SET_NORMAL TechnicalLocomotor
19347    Behavior = PhysicsBehavior ModuleTag_06
19348      Mass = 40.0
19349    End
19350    Behavior = AutoHealBehavior ModuleTag_07
19351      HealingAmount = 2
19352      HealingDelay = 1000 ; msec
19353      TriggeredBy = Upgrade_GLAJunkRepair
19354    End
19355  
19356    Behavior = FlammableUpdate ModuleTag_09
19357      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
19358      AflameDamageAmount = 3       ; taking this much damage...
19359      AflameDamageDelay = 500       ; this often.
19360    End
19361  
19362    Behavior                 = TransitionDamageFX ModuleTag_10
19363      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
19364      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
19365    End
19366  
19367    Behavior = DestroyDie ModuleTag_11
19368      DeathTypes = NONE +CRUSHED +SPLATTED
19369    End
19370  
19371    ; A crushing defeat
19372    Behavior = FXListDie ModuleTag_12
19373      DeathTypes = NONE +CRUSHED +SPLATTED
19374      DeathFX = FX_CarCrush
19375    End
19376    Behavior = CreateObjectDie ModuleTag_13
19377      DeathTypes = NONE +CRUSHED +SPLATTED
19378      CreationList = OCL_TechnicalJeep_CrushEffect
19379    End
19380    Behavior = CreateCrateDie ModuleTag_14
19381      CrateData = SalvageCrateData
19382      ;CrateData = EliteTankCrateData
19383      ;CrateData = HeroicTankCrateData
19384    End
19385  
19386    Behavior = SlowDeathBehavior ModuleTag_15
19387      DeathTypes = ALL -CRUSHED -SPLATTED
19388      DestructionDelay = 500
19389      DestructionDelayVariance = 1500
19390      OCL = INITIAL OCL_TechnicalAirDeathStart
19391      FX = INITIAL FX_TechnicalAirDeathGroundPart
19392      OCL = FINAL OCL_RocketBuggyAirDeath
19393      FX = FINAL FX_RocketBuggyAirDeathAirPart    ; This happens in the air
19394    End
19395  
19396    Behavior = TransportContain ModuleTag_16
19397      Slots = 5
19398      AllowInsideKindOf   = INFANTRY
19399      DamagePercentToUnits = 10%
19400      GoAggressiveOnExit = Yes ; AI Will tell people to set their mood to Aggressive on exiting
19401     End
19402  
19403    Behavior = WeaponBonusUpgrade ModuleTag_17 ; Not a full weapon set switch, just a number tweak reflected in a weapon. 
19404      TriggeredBy = Upgrade_GLAAPBullets
19405    End 
19406    
19407    Behavior = SlowDeathBehavior ModuleTag_Death_18
19408      DeathTypes          = NONE +SUICIDED +EXPLODED
19409      SinkDelay           = 3000
19410      SinkRate            = 0.5     ; in Dist/Sec
19411      DestructionDelay    = 8000
19412      FX                  = INITIAL FX_TerroristExplode
19413      FlingForce          = 8
19414      FlingForceVariance  = 3
19415      FlingPitch          = 60
19416      FlingPitchVariance  = 10
19417    End
19418  
19419  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death24
19420  ;    DeathWeapon   = Demo_SuicideDynamitePack
19421  ;    StartsActive  = Yes                      ; turned on by upgrade
19422  ;    DeathTypes = NONE +SUICIDED
19423  ;  End
19424  ;
19425  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag999
19426  ;    DeathWeapon   = Demo_SuicideDynamitePackPlusFire
19427  ;    StartsActive  = No
19428  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
19429  ;    RequiresAllTriggers = Yes; 
19430  ;    DeathTypes = ALL -SUICIDED -POISONED -POISONED_BETA -POISONED_GAMMA
19431  ;  End
19432  ;
19433  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag998
19434  ;    DeathWeapon   = Demo_SuicideDynamitePack
19435  ;    StartsActive  = No
19436  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
19437  ;    RequiresAllTriggers = Yes; 
19438  ;    DeathTypes = NONE +SUICIDED
19439  ;  End
19440  
19441    Behavior = FireWeaponWhenDeadBehavior ModuleTag_George 
19442      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
19443      StartsActive  = No
19444      TriggeredBy   = Demo_Upgrade_SuicideBomb
19445      DeathTypes = ALL
19446    End;
19447  
19448    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Bob
19449      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
19450      StartsActive  = No
19451      TriggeredBy   = Demo_Upgrade_SuicideBomb
19452      DeathTypes = NONE 
19453    End
19454  
19455    Behavior = CommandSetUpgrade ModuleTag_20
19456      CommandSet = Demo_GLAVehicleTechnicalCommandSetUpgrade
19457      TriggeredBy = Demo_Upgrade_SuicideBomb
19458    End
19459  
19460    Geometry = BOX
19461    GeometryMajorRadius = 18.0
19462    GeometryMinorRadius = 9.0
19463    GeometryHeight = 7.5     
19464    GeometryIsSmall = No    
19465    Shadow = SHADOW_VOLUME
19466    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
19467  
19468  End
19469  
19470  ;------------------------------------------------------------------------------
19471  ObjectReskin Demo_GLAVehicleTechnicalChassisTwo Demo_GLAVehicleTechnicalChassisOne
19472  
19473    ; *** ART Parameters ***
19474    Draw = W3DTruckDraw ModuleTag_01
19475  
19476      ExtraPublicBone = Dum_Turret 
19477  
19478      DefaultConditionState
19479        Model = UVTechVan
19480      End
19481  
19482      ConditionState = REALLYDAMAGED
19483        Model = UVTechVan_d
19484      End
19485      ConditionState = RUBBLE
19486        Model = UVTechVan_d
19487      End
19488  
19489      OkToChangeModelColor = Yes
19490      TrackMarks = EXTireTrack.tga
19491      Dust = TechnicalDust
19492  
19493      ;DirtSpray = RocketBuggyDirtSpray
19494      PowerslideSpray = RocketBuggyDirtPowerSlide
19495  
19496      ; These parameters are only used if the model has a separate suspension, 
19497      ; and the locomotor has HasSuspension = Yes.
19498      LeftFrontTireBone = Tire01
19499      RightFrontTireBone = Tire02
19500      LeftRearTireBone = Tire03
19501      RightRearTireBone = Tire04
19502      TireRotationMultiplier = 0.2        ; this * speed = rotation.
19503      PowerslideRotationAddition = 2.5    ; This speed is added to the rotation speed when powersliding.
19504    End
19505  
19506    Draw = W3DModelDraw ModuleTag_02
19507      OkToChangeModelColor = Yes
19508      AttachToBoneInAnotherModule = Dum_Turret
19509  
19510      ; ------------------ basic technical ------------------------
19511      DefaultConditionState
19512        Model = UITech_SKN
19513        Turret = Dum-TurManMVR
19514        TurretArtAngle = 180  ; this turret has art pointed 180 degrees backward
19515        HideSubObject = 20Cal 50Cal RPG MuzzleFX01 MuzzleFX02 MuzzleFX03
19516        IdleAnimation = UITech_SKL.UITech_STA 0 6
19517        IdleAnimation = UITech_SKL.UITech_IDA
19518        IdleAnimation = UITech_SKL.UITech_IDB
19519        AnimationMode = ONCE
19520        ShowSubObject = 20Cal
19521        WeaponMuzzleFlash = PRIMARY MuzzleFX01
19522        WeaponFireFXBone = PRIMARY Muzzle01
19523      End
19524  
19525      ConditionState = RUBBLE MOVING TURRET_ROTATE
19526        Animation = None
19527        HideSubObject = UITech-SKN
19528        ShowSubObject = 20Cal
19529        WeaponMuzzleFlash = PRIMARY MuzzleFX01
19530        WeaponFireFXBone = PRIMARY Muzzle01
19531      End
19532  
19533      ConditionState = MOVING
19534        Animation = UITech_SKL.UITech_MVB
19535        AnimationMode = LOOP
19536        ShowSubObject = 20Cal
19537        WeaponMuzzleFlash = PRIMARY MuzzleFX01
19538        WeaponFireFXBone = PRIMARY Muzzle01
19539      End
19540  
19541      ConditionState = TURRET_ROTATE
19542        Animation = UITech_SKL.UITech_TNA
19543        AnimationMode = LOOP
19544        ShowSubObject = 20Cal
19545        WeaponMuzzleFlash = PRIMARY MuzzleFX01
19546        WeaponFireFXBone = PRIMARY Muzzle01
19547      End
19548      AliasConditionState = TURRET_ROTATE MOVING
19549      AliasConditionState = TURRET_ROTATE FIRING_A
19550      AliasConditionState = TURRET_ROTATE BETWEEN_FIRING_SHOTS_A
19551      AliasConditionState = TURRET_ROTATE RELOADING_A
19552      AliasConditionState = TURRET_ROTATE MOVING FIRING_A
19553      AliasConditionState = TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A
19554      AliasConditionState = TURRET_ROTATE MOVING RELOADING_A
19555  
19556      ConditionState = FIRING_A 
19557        Animation = UITech_SKL.UITech_ATA
19558        AnimationMode = LOOP
19559        ShowSubObject = 20Cal
19560        WeaponMuzzleFlash = PRIMARY MuzzleFX01
19561        WeaponFireFXBone = PRIMARY Muzzle01
19562      End
19563  
19564      ; AliasConditionState is a new keyword that says,
19565      ; "give me another ConditionState exactly like the previous
19566      ; one, except with different conditions". Useful when you
19567      ; have several states that are the same with only different condition bits.
19568      AliasConditionState = BETWEEN_FIRING_SHOTS_A
19569      AliasConditionState = RELOADING_A
19570  
19571      ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.).
19572      AliasConditionState = MOVING FIRING_A
19573      AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A
19574      AliasConditionState = MOVING RELOADING_A
19575  
19576      ; ------------------ technical with WEAPONSET_CRATEUPGRADE_ONE ------------------------
19577      ConditionState = WEAPONSET_CRATEUPGRADE_ONE
19578        IdleAnimation = UITech_SKL.UITech_STA 0 6
19579        IdleAnimation = UITech_SKL.UITech_IDA
19580        IdleAnimation = UITech_SKL.UITech_IDB
19581        AnimationMode = ONCE
19582        ShowSubObject = 50Cal
19583        WeaponMuzzleFlash = PRIMARY MuzzleFX02
19584        WeaponFireFXBone = PRIMARY Muzzle02
19585        WeaponLaunchBone = PRIMARY Muzzle02
19586      End
19587  
19588      ConditionState = WEAPONSET_CRATEUPGRADE_ONE RUBBLE MOVING TURRET_ROTATE
19589        Animation = None
19590        HideSubObject = UITech-SKN
19591        ShowSubObject = 50Cal
19592        WeaponMuzzleFlash = PRIMARY MuzzleFX02
19593        WeaponFireFXBone = PRIMARY Muzzle02
19594        WeaponLaunchBone = PRIMARY Muzzle02
19595      End
19596  
19597      ConditionState = MOVING WEAPONSET_CRATEUPGRADE_ONE
19598        Animation = UITech_SKL.UITech_MVB
19599        AnimationMode = LOOP
19600        ShowSubObject = 50Cal
19601        WeaponMuzzleFlash = PRIMARY MuzzleFX02
19602        WeaponFireFXBone = PRIMARY Muzzle02
19603        WeaponLaunchBone = PRIMARY Muzzle02
19604      End
19605  
19606      ConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE
19607        Animation = UITech_SKL.UITech_TNA
19608        AnimationMode = LOOP
19609        ShowSubObject = 50Cal
19610        WeaponMuzzleFlash = PRIMARY MuzzleFX02
19611        WeaponFireFXBone = PRIMARY Muzzle02
19612        WeaponLaunchBone = PRIMARY Muzzle02
19613      End
19614      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING
19615      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE FIRING_A
19616      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE BETWEEN_FIRING_SHOTS_A
19617      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE RELOADING_A
19618      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING FIRING_A
19619      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A
19620      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING RELOADING_A
19621  
19622      ConditionState = WEAPONSET_CRATEUPGRADE_ONE FIRING_A
19623        Animation = UITech_SKL.UITech_ATA
19624        AnimationMode = LOOP
19625        ShowSubObject = 50Cal
19626        WeaponMuzzleFlash = PRIMARY MuzzleFX02
19627        WeaponFireFXBone = PRIMARY Muzzle02
19628        WeaponLaunchBone = PRIMARY Muzzle02
19629      End
19630  
19631      ; AliasConditionState is a new keyword that says,
19632      ; "give me another ConditionState exactly like the previous
19633      ; one, except with different conditions". Useful when you
19634      ; have several states that are the same with only different condition bits.
19635      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE BETWEEN_FIRING_SHOTS_A
19636      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE RELOADING_A
19637  
19638      ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.).
19639      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING FIRING_A
19640      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING BETWEEN_FIRING_SHOTS_A
19641      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING RELOADING_A
19642  
19643  
19644      ; ------------------ technical with WEAPONSET_CRATEUPGRADE_TWO ------------------------
19645      ConditionState = WEAPONSET_CRATEUPGRADE_TWO
19646        IdleAnimation = UITech_SKL.UITech_STA 0 6
19647        IdleAnimation = UITech_SKL.UITech_IDA
19648        IdleAnimation = UITech_SKL.UITech_IDB
19649        AnimationMode = ONCE
19650        ShowSubObject = RPG
19651        WeaponFireFXBone = PRIMARY Muzzle03
19652        WeaponLaunchBone = PRIMARY Muzzle03
19653      End
19654  
19655      ConditionState = WEAPONSET_CRATEUPGRADE_TWO RUBBLE MOVING TURRET_ROTATE
19656        Animation = None
19657        HideSubObject = UITech-SKN
19658        ShowSubObject = RPG
19659        WeaponFireFXBone = PRIMARY Muzzle03
19660        WeaponLaunchBone = PRIMARY Muzzle03
19661      End
19662  
19663      ConditionState = MOVING WEAPONSET_CRATEUPGRADE_TWO
19664        Animation = UITech_SKL.UITech_MVB
19665        AnimationMode = LOOP
19666        ShowSubObject = RPG
19667        WeaponFireFXBone = PRIMARY Muzzle03
19668        WeaponLaunchBone = PRIMARY Muzzle03
19669      End
19670  
19671      ConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE
19672        Animation = UITech_SKL.UITech_TNA
19673        AnimationMode = LOOP
19674        ShowSubObject = RPG
19675        WeaponFireFXBone = PRIMARY Muzzle03
19676        WeaponLaunchBone = PRIMARY Muzzle03
19677      End
19678      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING
19679      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE FIRING_A
19680      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE BETWEEN_FIRING_SHOTS_A
19681      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE RELOADING_A
19682      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING FIRING_A
19683      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A
19684      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING RELOADING_A
19685  
19686      ConditionState = WEAPONSET_CRATEUPGRADE_TWO FIRING_A
19687        Animation = UITech_SKL.UITech_ATA
19688        AnimationMode = LOOP
19689        ShowSubObject = RPG
19690        WeaponFireFXBone = PRIMARY Muzzle03
19691        WeaponLaunchBone = PRIMARY Muzzle03
19692      End
19693  
19694      ; AliasConditionState is a new keyword that says,
19695      ; "give me another ConditionState exactly like the previous
19696      ; one, except with different conditions". Useful when you
19697      ; have several states that are the same with only different condition bits.
19698      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO BETWEEN_FIRING_SHOTS_A
19699      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO RELOADING_A
19700  
19701      ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.).
19702      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING FIRING_A
19703      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING BETWEEN_FIRING_SHOTS_A
19704      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING RELOADING_A
19705  
19706    End 
19707    
19708   ; Behavior = CreateObjectDie ModuleTag_13
19709   ;   DeathTypes = NONE +CRUSHED +SPLATTED
19710   ;   CreationList = OCL_TechnicalVan_CrushEffect
19711   ; End
19712  
19713    Geometry = BOX
19714    GeometryMajorRadius = 16.0
19715    GeometryMinorRadius = 8.0
19716    GeometryHeight = 7.5     
19717    GeometryIsSmall = Yes  
19718    
19719  
19720  End
19721  
19722  ;------------------------------------------------------------------------------
19723  ObjectReskin Demo_GLAVehicleTechnicalChassisThree Demo_GLAVehicleTechnicalChassisOne
19724  
19725    ; *** ART Parameters ***
19726    Draw = W3DTruckDraw ModuleTag_01
19727  
19728      ExtraPublicBone = Dum_Turret 
19729  
19730      DefaultConditionState
19731        Model = UVTechJeep
19732      End
19733  
19734      ConditionState = REALLYDAMAGED
19735        Model = UVTechJeep_d
19736      End
19737      ConditionState = RUBBLE
19738        Model = UVTechJeep_d
19739      End
19740  
19741      OkToChangeModelColor = Yes
19742      TrackMarks = EXTireTrack.tga
19743      Dust = TechnicalDust
19744  
19745      ;DirtSpray = RocketBuggyDirtSpray
19746      PowerslideSpray = RocketBuggyDirtPowerSlide
19747  
19748      ; These parameters are only used if the model has a separate suspension, 
19749      ; and the locomotor has HasSuspension = Yes.
19750      LeftFrontTireBone = Tire01
19751      RightFrontTireBone = Tire02
19752      LeftRearTireBone = Tire03
19753      RightRearTireBone = Tire04
19754      TireRotationMultiplier = 0.2        ; this * speed = rotation.
19755      PowerslideRotationAddition = 2.5    ; This speed is added to the rotation speed when powersliding.
19756    End
19757  
19758    Draw = W3DModelDraw ModuleTag_02
19759      OkToChangeModelColor = Yes
19760      AttachToBoneInAnotherModule = Dum_Turret
19761  
19762      ; ------------------ basic technical ------------------------
19763      DefaultConditionState
19764        Model = UITech_SKN
19765        Turret = Dum-TurManMVR
19766        TurretArtAngle = 180  ; this turret has art pointed 180 degrees backward
19767        HideSubObject = 20Cal 50Cal RPG MuzzleFX01 MuzzleFX02 MuzzleFX03
19768        IdleAnimation = UITech_SKL.UITech_STA 0 6
19769        IdleAnimation = UITech_SKL.UITech_IDA
19770        IdleAnimation = UITech_SKL.UITech_IDB
19771        AnimationMode = ONCE
19772        ShowSubObject = 20Cal
19773        WeaponMuzzleFlash = PRIMARY MuzzleFX01
19774        WeaponFireFXBone = PRIMARY Muzzle01
19775      End
19776  
19777      ConditionState = RUBBLE MOVING TURRET_ROTATE
19778        Animation = None
19779        HideSubObject = UITech-SKN
19780        ShowSubObject = 20Cal
19781        WeaponMuzzleFlash = PRIMARY MuzzleFX01
19782        WeaponFireFXBone = PRIMARY Muzzle01
19783      End
19784  
19785      ConditionState = MOVING
19786        Animation = UITech_SKL.UITech_MVB
19787        AnimationMode = LOOP
19788        ShowSubObject = 20Cal
19789        WeaponMuzzleFlash = PRIMARY MuzzleFX01
19790        WeaponFireFXBone = PRIMARY Muzzle01
19791      End
19792  
19793      ConditionState = TURRET_ROTATE
19794        Animation = UITech_SKL.UITech_TNA
19795        AnimationMode = LOOP
19796        ShowSubObject = 20Cal
19797        WeaponMuzzleFlash = PRIMARY MuzzleFX01
19798        WeaponFireFXBone = PRIMARY Muzzle01
19799      End
19800      AliasConditionState = TURRET_ROTATE MOVING
19801      AliasConditionState = TURRET_ROTATE FIRING_A
19802      AliasConditionState = TURRET_ROTATE BETWEEN_FIRING_SHOTS_A
19803      AliasConditionState = TURRET_ROTATE RELOADING_A
19804      AliasConditionState = TURRET_ROTATE MOVING FIRING_A
19805      AliasConditionState = TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A
19806      AliasConditionState = TURRET_ROTATE MOVING RELOADING_A
19807  
19808      ConditionState = FIRING_A
19809        Animation = UITech_SKL.UITech_ATA
19810        AnimationMode = LOOP
19811        ShowSubObject = 20Cal
19812        WeaponMuzzleFlash = PRIMARY MuzzleFX01
19813        WeaponFireFXBone = PRIMARY Muzzle01
19814      End
19815  
19816      ; AliasConditionState is a new keyword that says,
19817      ; "give me another ConditionState exactly like the previous
19818      ; one, except with different conditions". Useful when you
19819      ; have several states that are the same with only different condition bits.
19820      AliasConditionState = BETWEEN_FIRING_SHOTS_A
19821      AliasConditionState = RELOADING_A
19822  
19823      ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.).
19824      AliasConditionState = MOVING FIRING_A
19825      AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A
19826      AliasConditionState = MOVING RELOADING_A
19827  
19828      ; ------------------ technical with WEAPONSET_CRATEUPGRADE_ONE ------------------------
19829      ConditionState = WEAPONSET_CRATEUPGRADE_ONE
19830        IdleAnimation = UITech_SKL.UITech_STA 0 6
19831        IdleAnimation = UITech_SKL.UITech_IDA
19832        IdleAnimation = UITech_SKL.UITech_IDB
19833        AnimationMode = ONCE
19834        ShowSubObject = 50Cal
19835        WeaponMuzzleFlash = PRIMARY MuzzleFX02
19836        WeaponFireFXBone = PRIMARY Muzzle02
19837        WeaponLaunchBone = PRIMARY Muzzle02
19838      End
19839  
19840      ConditionState = WEAPONSET_CRATEUPGRADE_ONE RUBBLE MOVING TURRET_ROTATE
19841        Animation = None
19842        HideSubObject = UITech-SKN
19843        ShowSubObject = 50Cal
19844        WeaponMuzzleFlash = PRIMARY MuzzleFX02
19845        WeaponFireFXBone = PRIMARY Muzzle02
19846        WeaponLaunchBone = PRIMARY Muzzle02
19847      End
19848  
19849      ConditionState = MOVING WEAPONSET_CRATEUPGRADE_ONE
19850        Animation = UITech_SKL.UITech_MVB
19851        AnimationMode = LOOP
19852        ShowSubObject = 50Cal
19853        WeaponMuzzleFlash = PRIMARY MuzzleFX02
19854        WeaponFireFXBone = PRIMARY Muzzle02
19855        WeaponLaunchBone = PRIMARY Muzzle02
19856      End
19857  
19858      ConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE
19859        Animation = UITech_SKL.UITech_TNA
19860        AnimationMode = LOOP
19861        ShowSubObject = 50Cal
19862        WeaponMuzzleFlash = PRIMARY MuzzleFX02
19863        WeaponFireFXBone = PRIMARY Muzzle02
19864        WeaponLaunchBone = PRIMARY Muzzle02
19865      End
19866      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING
19867      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE FIRING_A
19868      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE BETWEEN_FIRING_SHOTS_A
19869      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE RELOADING_A
19870      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING FIRING_A
19871      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A
19872      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE TURRET_ROTATE MOVING RELOADING_A
19873  
19874      ConditionState = WEAPONSET_CRATEUPGRADE_ONE FIRING_A
19875        Animation = UITech_SKL.UITech_ATA
19876        AnimationMode = LOOP
19877        ShowSubObject = 50Cal
19878        WeaponMuzzleFlash = PRIMARY MuzzleFX02
19879        WeaponFireFXBone = PRIMARY Muzzle02
19880        WeaponLaunchBone = PRIMARY Muzzle02
19881      End
19882  
19883      ; AliasConditionState is a new keyword that says,
19884      ; "give me another ConditionState exactly like the previous
19885      ; one, except with different conditions". Useful when you
19886      ; have several states that are the same with only different condition bits.
19887      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE BETWEEN_FIRING_SHOTS_A
19888      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE RELOADING_A
19889  
19890      ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.).
19891      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING FIRING_A
19892      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING BETWEEN_FIRING_SHOTS_A
19893      AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE MOVING RELOADING_A
19894  
19895      ; ------------------ technical with WEAPONSET_CRATEUPGRADE_TWO ------------------------
19896      ConditionState = WEAPONSET_CRATEUPGRADE_TWO
19897        IdleAnimation = UITech_SKL.UITech_STA 0 6
19898        IdleAnimation = UITech_SKL.UITech_IDA
19899        IdleAnimation = UITech_SKL.UITech_IDB
19900        AnimationMode = ONCE
19901        ShowSubObject = RPG
19902        WeaponFireFXBone = PRIMARY Muzzle03
19903        WeaponLaunchBone = PRIMARY Muzzle03
19904      End
19905  
19906      ConditionState = WEAPONSET_CRATEUPGRADE_TWO RUBBLE MOVING TURRET_ROTATE
19907        Animation = None
19908        HideSubObject = UITech-SKN
19909        ShowSubObject = RPG
19910        WeaponFireFXBone = PRIMARY Muzzle03
19911        WeaponLaunchBone = PRIMARY Muzzle03
19912      End
19913  
19914      ConditionState = MOVING WEAPONSET_CRATEUPGRADE_TWO
19915        Animation = UITech_SKL.UITech_MVB
19916        AnimationMode = LOOP
19917        ShowSubObject = RPG
19918        WeaponFireFXBone = PRIMARY Muzzle03
19919        WeaponLaunchBone = PRIMARY Muzzle03
19920      End
19921  
19922      ConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE
19923        Animation = UITech_SKL.UITech_TNA
19924        AnimationMode = LOOP
19925        ShowSubObject = RPG
19926        WeaponFireFXBone = PRIMARY Muzzle03
19927        WeaponLaunchBone = PRIMARY Muzzle03
19928      End
19929      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING
19930      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE FIRING_A
19931      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE BETWEEN_FIRING_SHOTS_A
19932      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE RELOADING_A
19933      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING FIRING_A
19934      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A
19935      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO TURRET_ROTATE MOVING RELOADING_A
19936  
19937      ConditionState = WEAPONSET_CRATEUPGRADE_TWO FIRING_A
19938        Animation = UITech_SKL.UITech_ATA
19939        AnimationMode = LOOP
19940        ShowSubObject = RPG
19941        WeaponFireFXBone = PRIMARY Muzzle03
19942        WeaponLaunchBone = PRIMARY Muzzle03
19943      End
19944  
19945      ; AliasConditionState is a new keyword that says,
19946      ; "give me another ConditionState exactly like the previous
19947      ; one, except with different conditions". Useful when you
19948      ; have several states that are the same with only different condition bits.
19949      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO BETWEEN_FIRING_SHOTS_A
19950      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO RELOADING_A
19951  
19952      ; these aliases handle the moving-between-shots case. (we can't actually move-and-fire at the same time.).
19953      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING FIRING_A
19954      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING BETWEEN_FIRING_SHOTS_A
19955      AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO MOVING RELOADING_A
19956  
19957    End  
19958    
19959   ; Behavior = CreateObjectDie ModuleTag_13
19960   ;   DeathTypes = NONE +CRUSHED +SPLATTED
19961   ;   CreationList = OCL_TechnicalJeep_CrushEffect
19962   ; End
19963    
19964    Geometry = BOX
19965    GeometryMajorRadius = 14.0
19966    GeometryMinorRadius = 9.0
19967    GeometryHeight = 9.5     
19968    GeometryIsSmall = Yes    
19969    
19970  
19971  End
19972  
19973  
19974  
19975  
19976  
19977  
19978  ;------------------------------------------------------------------------------
19979  ;The Marauder Tank, for the Warlord General.  
19980  Object Demo_GLATankMarauder
19981  
19982    ; *** ART Parameters ***
19983    SelectPortrait         = SUMarauder_L
19984    ButtonImage            = SUMarauder
19985    
19986    UpgradeCameo1 = Upgrade_GLAToxinShells
19987    UpgradeCameo2 = Upgrade_GLAJunkRepair
19988    ;UpgradeCameo3 = NONE
19989    ;UpgradeCameo4 = NONE
19990    ;UpgradeCameo5 = NONE
19991    
19992    Draw = W3DTankDraw ModuleTag_01
19993      OkToChangeModelColor = Yes
19994  
19995  ; no crate upgrade
19996      ConditionState = NONE
19997        Model = UVMarauder
19998        Turret = Turret
19999        ShowSubObject = Turret
20000        HideSubObject = TurretUp01 TurretUp02 BarrelFX01 ; Since we are showing one of three turrets, we need to then hide the subobject muzzleflash
20001        WeaponFireFXBone = PRIMARY BarrelMS
20002        WeaponRecoilBone = PRIMARY Barrel
20003        WeaponMuzzleFlash = PRIMARY BarrelFX
20004        WeaponLaunchBone = PRIMARY BarrelMS
20005      End
20006  
20007      ConditionState = REALLYDAMAGED
20008        Model = UVMarauder_d
20009        Turret = Turret
20010        ShowSubObject = Turret
20011        HideSubObject = TurretUp01 TurretUp02 BarrelFX01
20012        WeaponFireFXBone = PRIMARY BarrelMS
20013        WeaponRecoilBone = PRIMARY Barrel
20014        WeaponMuzzleFlash = PRIMARY BarrelFX
20015        WeaponLaunchBone = PRIMARY BarrelMS
20016      End
20017  
20018      ConditionState = RUBBLE
20019        Model = UVMarauder_d
20020        Turret = Turret
20021        ShowSubObject = Turret
20022        HideSubObject = TurretUp01 TurretUp02 BarrelFX01
20023        WeaponFireFXBone = PRIMARY BarrelMS
20024        WeaponRecoilBone = PRIMARY Barrel
20025        WeaponMuzzleFlash = PRIMARY BarrelFX
20026        WeaponLaunchBone = PRIMARY BarrelMS
20027      End
20028  
20029  ; crate upgrade 1
20030      ConditionState = WEAPONSET_CRATEUPGRADE_ONE
20031        Model = UVMarauder
20032        Turret = TurretUp01
20033        ShowSubObject = TurretUp01
20034        HideSubObject = Turret TurretUp02 BarrelUp01FX01
20035        WeaponFireFXBone = PRIMARY BarrelUp01MS
20036        WeaponRecoilBone = PRIMARY BarrelUp01
20037        WeaponMuzzleFlash = PRIMARY BarrelUp01FX
20038        WeaponLaunchBone = PRIMARY BarrelUp01MS
20039      End
20040  
20041      ConditionState = REALLYDAMAGED WEAPONSET_CRATEUPGRADE_ONE
20042        Model = UVMarauder_d
20043        Turret = TurretUp01
20044        ShowSubObject = TurretUp01
20045        HideSubObject = Turret TurretUp02 BarrelUp01FX01
20046        WeaponFireFXBone = PRIMARY BarrelUp01MS
20047        WeaponRecoilBone = PRIMARY BarrelUp01
20048        WeaponMuzzleFlash = PRIMARY BarrelUp01FX
20049        WeaponLaunchBone = PRIMARY BarrelUp01MS
20050      End
20051  
20052      ConditionState = RUBBLE WEAPONSET_CRATEUPGRADE_ONE
20053        Model = UVMarauder_d
20054        Turret = TurretUp01
20055        ShowSubObject = TurretUp01
20056        HideSubObject = Turret TurretUp02 BarrelUp01FX01
20057        WeaponFireFXBone = PRIMARY BarrelUp01MS
20058        WeaponRecoilBone = PRIMARY BarrelUp01
20059        WeaponMuzzleFlash = PRIMARY BarrelUp01FX
20060        WeaponLaunchBone = PRIMARY BarrelUp01MS
20061      End
20062  
20063  ; crate upgrade 2
20064      ConditionState = WEAPONSET_CRATEUPGRADE_TWO
20065        Model = UVMarauder
20066        Turret = TurretUp02
20067        ShowSubObject = TurretUp02
20068        HideSubObject = Turret TurretUp01 BarrelUp02FX01 BarrelUp02FX02
20069        WeaponFireFXBone = PRIMARY BarrelUp02MS
20070        WeaponRecoilBone = PRIMARY BarrelUp02
20071        WeaponMuzzleFlash = PRIMARY BarrelUp02FX
20072        WeaponLaunchBone = PRIMARY BarrelUp02MS
20073      End
20074  
20075      ConditionState = REALLYDAMAGED WEAPONSET_CRATEUPGRADE_TWO
20076        Model = UVMarauder_d
20077        Turret = TurretUp02
20078        ShowSubObject = TurretUp02
20079        HideSubObject = Turret TurretUp01 BarrelUp02FX01 BarrelUp02FX02
20080        WeaponFireFXBone = PRIMARY BarrelUp02MS
20081        WeaponRecoilBone = PRIMARY BarrelUp02
20082        WeaponMuzzleFlash = PRIMARY BarrelUp02FX
20083        WeaponLaunchBone = PRIMARY BarrelUp02MS
20084      End
20085  
20086      ConditionState = RUBBLE WEAPONSET_CRATEUPGRADE_TWO
20087        Model = UVMarauder_d
20088        Turret = TurretUp02
20089        ShowSubObject = TurretUp02
20090        HideSubObject = Turret TurretUp01 BarrelUp02FX01 BarrelUp02FX02
20091        WeaponFireFXBone = PRIMARY BarrelUp02MS
20092        WeaponRecoilBone = PRIMARY BarrelUp02
20093        WeaponMuzzleFlash = PRIMARY BarrelUp02FX
20094        WeaponLaunchBone = PRIMARY BarrelUp02MS
20095      End
20096  
20097      TrackMarks = EXTnkTrack.tga
20098      TreadAnimationRate = 2.0;  amount of tread texture to move per second
20099      TreadDriveSpeedFraction = 0.3  ; fraction of locomotor speed below which treads stop moving.
20100      TreadPivotSpeedFraction = 0.6  ; fraction of locomotor speed below which we allow pivoting.
20101  
20102    End
20103  
20104    ; ***DESIGN parameters ***
20105    DisplayName           = OBJECT:Marauder
20106    Side                  = GLADemolitionGeneral
20107    EditorSorting         = VEHICLE
20108    TransportSlotCount    = 3                 ;how many "slots" we take in a transport (0 == not transportable)
20109    WeaponSet
20110      Conditions = None 
20111      Weapon = PRIMARY REDMarauderTankGun
20112      Weapon = TERTIARY TerroristSuicideNotARealWeapon
20113      AutoChooseSources = TERTIARY None
20114    End
20115    WeaponSet
20116      Conditions = CRATEUPGRADE_ONE
20117      Weapon = PRIMARY REDMarauderTankGunUpgradeOne
20118      Weapon = TERTIARY TerroristSuicideNotARealWeapon
20119      AutoChooseSources = TERTIARY None
20120  
20121    End
20122    WeaponSet
20123      Conditions = CRATEUPGRADE_TWO 
20124      Weapon = PRIMARY REDMarauderTankGunUpgradeTwo
20125      Weapon = TERTIARY TerroristSuicideNotARealWeapon
20126      AutoChooseSources = TERTIARY None
20127    End
20128    ArmorSet
20129      Conditions      = None
20130      Armor           = TankArmor
20131      DamageFX        = TankDamageFX
20132    End
20133    BuildCost       = 900
20134    BuildTime       = 10.0          ;in seconds    
20135    VisionRange     = 125
20136    ShroudClearingRange = 300
20137    Prerequisites
20138      Object = Demo_GLAArmsDealer
20139      Science = SCIENCE_MarauderTank
20140    End
20141  
20142    ExperienceValue = 100 100 200 300    ;Experience point value at each level
20143    ExperienceRequired = 0 200 300 600  ;Experience points needed to gain each level
20144    IsTrainable = Yes             ;Can gain experience
20145    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
20146    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
20147    CommandSet           = Demo_GLATankMarauderCommandSet
20148  
20149    ; *** AUDIO Parameters ***
20150    VoiceSelect = MarauderTankVoiceSelect
20151    VoiceMove = MarauderTankVoiceMove
20152    VoiceGuard = MarauderTankVoiceMove
20153    VoiceAttack = MarauderTankVoiceAttack
20154    SoundMoveStart = MarauderTankMoveStart
20155    SoundMoveStartDamaged = MarauderTankMoveStart
20156  
20157    UnitSpecificSounds
20158      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
20159      VoiceCreate     = MarauderTankVoiceCreate
20160      ;TurretMoveStart = NoSound
20161      TurretMoveLoop = TurretMoveLoop
20162      VoiceSalvage = MarauderTankVoiceSalvage      
20163      VoiceCrush = MarauderTankVoiceCrush
20164      VoiceEnter = MarauderTankVoiceMove
20165    End
20166  
20167    ; *** ENGINEERING Parameters ***
20168    RadarPriority = UNIT
20169    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS SALVAGER WEAPON_SALVAGER VEHICLE SCORE
20170  
20171    Body = ActiveBody ModuleTag_02
20172      MaxHealth       = 430.0
20173      InitialHealth   = 430.0
20174  
20175      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
20176      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
20177      SubdualDamageCap = 860
20178      SubdualDamageHealRate = 500
20179      SubdualDamageHealAmount = 50
20180    End
20181  
20182    Behavior = AIUpdateInterface ModuleTag_03
20183      AutoAcquireEnemiesWhenIdle = Yes
20184    End
20185    Locomotor = SET_NORMAL MarauderLocomotor
20186    Behavior = PhysicsBehavior ModuleTag_04
20187      Mass = 50.0
20188    End
20189    Behavior = AutoHealBehavior ModuleTag_05
20190      HealingAmount = 2
20191      HealingDelay = 1000 ; msec
20192      TriggeredBy = Upgrade_GLAJunkRepair
20193    End
20194  
20195    ; Catch fire, and explode death
20196    Behavior = SlowDeathBehavior ModuleTag_06
20197      DeathTypes = ALL -CRUSHED -SPLATTED
20198      ProbabilityModifier = 50
20199      DestructionDelay = 1000
20200      DestructionDelayVariance = 300
20201      FX  = INITIAL  FX_CrusaderCatchFire
20202      OCL = FINAL    OCL_MarauderTankDeathEffect  
20203      FX  = FINAL    FX_BattleMasterExplosionOneFinal
20204    End
20205  
20206  
20207    Behavior = CreateCrateDie ModuleTag_07
20208      CrateData = SalvageCrateData
20209      ;CrateData = EliteTankCrateData
20210      ;CrateData = HeroicTankCrateData
20211    End
20212    
20213    Behavior                 = TransitionDamageFX ModuleTag_08
20214      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
20215      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
20216    End
20217    
20218    ; A crushing defeat
20219    Behavior = FXListDie ModuleTag_09
20220      DeathTypes = NONE +CRUSHED +SPLATTED
20221      DeathFX = FX_CarCrush
20222    End
20223  
20224    Behavior = FlammableUpdate ModuleTag_21
20225      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
20226      AflameDamageAmount = 3       ; taking this much damage...
20227      AflameDamageDelay = 500       ; this often.
20228    End
20229  
20230    Behavior = SlowDeathBehavior ModuleTag_Death_22
20231      DeathTypes          = NONE +SUICIDED +EXPLODED
20232      SinkDelay           = 3000
20233      SinkRate            = 0.5     ; in Dist/Sec
20234      DestructionDelay    = 8000
20235      FX                  = INITIAL FX_TerroristExplode
20236      FlingForce          = 8
20237      FlingForceVariance  = 3
20238      FlingPitch          = 60
20239      FlingPitchVariance  = 10
20240    End
20241  
20242  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death24
20243  ;    DeathWeapon   = Demo_SuicideDynamitePack
20244  ;    StartsActive  = Yes                      ; turned on by upgrade
20245  ;    DeathTypes = NONE +SUICIDED
20246  ;  End
20247  ;
20248  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag999
20249  ;    DeathWeapon   = Demo_SuicideDynamitePackPlusFire
20250  ;    StartsActive  = No
20251  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
20252  ;    RequiresAllTriggers = Yes; 
20253  ;    DeathTypes = ALL -SUICIDED -POISONED -POISONED_BETA -POISONED_GAMMA
20254  ;  End
20255  ;
20256  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag998
20257  ;    DeathWeapon   = Demo_SuicideDynamitePack
20258  ;    StartsActive  = No
20259  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
20260  ;    RequiresAllTriggers = Yes; 
20261  ;    DeathTypes = NONE +SUICIDED
20262  ;  End
20263  
20264    Behavior = FireWeaponWhenDeadBehavior ModuleTag_George 
20265      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
20266      StartsActive  = No
20267      TriggeredBy   = Demo_Upgrade_SuicideBomb
20268      DeathTypes = ALL
20269    End;
20270  
20271    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Bob
20272      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
20273      StartsActive  = No
20274      TriggeredBy   = Demo_Upgrade_SuicideBomb
20275      DeathTypes = NONE 
20276    End
20277  
20278    Behavior = CommandSetUpgrade ModuleTag_24
20279      CommandSet = Demo_GLATankMarauderCommandSetUpgrade
20280      TriggeredBy = Demo_Upgrade_SuicideBomb
20281    End
20282  
20283    Geometry = BOX
20284    GeometryMajorRadius = 17.0
20285    GeometryMinorRadius = 10.0
20286    GeometryHeight = 9.5     
20287    GeometryIsSmall = Yes 
20288    Shadow = SHADOW_VOLUME   
20289    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
20290  
20291  End
20292  
20293  
20294  
20295  ;------------------------------------------------------------------------------
20296  ;GLA Radar Van
20297  Object Demo_GLAVehicleRadarVan
20298  
20299    ; *** ART Parameters ***
20300    SelectPortrait         = SURadarVan_L
20301    ButtonImage            = SURadarVan
20302    
20303    UpgradeCameo1 = Upgrade_GLARadarVanScan
20304    UpgradeCameo2 = Upgrade_GLAJunkRepair
20305    ;UpgradeCameo3 = NONE
20306    ;UpgradeCameo4 = NONE
20307    ;UpgradeCameo5 = NONE
20308    
20309    Draw = W3DTruckDraw ModuleTag_01
20310      OkToChangeModelColor = Yes
20311  
20312      DefaultConditionState
20313        Model = UVRadarVan
20314        Animation = UVRadarVan.UVRadarVan
20315        AnimationMode = LOOP
20316      End
20317      
20318      ConditionState = REALLYDAMAGED
20319        Model = UVRadarVan_D
20320        Animation = UVRadarVan_D.UVRadarVan_D
20321        AnimationMode = LOOP
20322      End
20323      
20324      ConditionState = RUBBLE
20325        Model = UVRadarVan_D
20326        Animation = UVRadarVan_D.UVRadarVan_D
20327        AnimationMode = LOOP
20328      End
20329      
20330      TrackMarks = EXTireTrack.tga
20331      
20332      ; These parameters are only used if the model has a separate suspension, 
20333      ; and the locomotor has HasSuspension = Yes.
20334      LeftFrontTireBone = Tire01
20335      RightFrontTireBone = Tire02
20336      LeftRearTireBone = Tire03
20337      RightRearTireBone = Tire04
20338      TireRotationMultiplier = 0.2   ; this * speed = rotation.
20339      PowerslideRotationAddition = 2.5   ; This speed is added to the rotation speed when powersliding.
20340    End
20341  
20342    ; ***DESIGN parameters ***
20343    DisplayName      = OBJECT:RadarVan
20344    Side = GLADemolitionGeneral
20345    EditorSorting   = VEHICLE
20346    TransportSlotCount = 3                 ;how many "slots" we take in a transport (0 == not transportable)
20347    WeaponSet
20348      Weapon = PRIMARY None
20349      Weapon = SECONDARY None
20350      Weapon = TERTIARY TerroristSuicideNotARealWeapon
20351      AutoChooseSources = TERTIARY None
20352      AutoChooseSources = PRIMARY None
20353    End
20354    ArmorSet
20355      Conditions      = None
20356      Armor           = TruckArmor
20357      DamageFX        = TankDamageFX
20358    End
20359    BuildCost       = 500
20360    BuildTime       = 10.0          ;in seconds    
20361    VisionRange     = 200
20362    ShroudClearingRange = 500
20363    Prerequisites
20364      Object = Demo_GLAArmsDealer
20365    End
20366    IsTrainable = No
20367    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
20368    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
20369    CommandSet      = Demo_GLAVehicleRadarVanCommandSet
20370  
20371    ; *** AUDIO Parameters ***
20372    VoiceSelect = RadarVanVoiceSelect
20373    VoiceMove = RadarVanVoiceMove
20374    VoiceAttack = RadarVanVoiceMove
20375    SoundMoveStart = RadarVanMoveStart
20376    SoundMoveStartDamaged = RadarVanMoveStart
20377  
20378    UnitSpecificSounds
20379      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
20380      VoiceCreate     = RadarVanVoiceCreate
20381      TurretMoveStart = NoSound
20382      TurretMoveLoop = TurretMoveLoop  
20383    ; Required for the W3DTruckDraw module
20384      TruckLandingSound = NoSound ;RocketBuggyLand
20385      TruckPowerslideSound = NoSound ;RocketBuggyPowerslide
20386      VoiceCrush      = RadarVanVoiceCrush
20387      VoiceEnter = RadarVanVoiceMove
20388    End
20389  
20390    ; *** ENGINEERING Parameters ***
20391    RadarPriority = UNIT
20392    KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS VEHICLE SALVAGER SCORE IGNORES_SELECT_ALL
20393  
20394    Body = ActiveBody ModuleTag_02
20395      MaxHealth       = 200
20396      InitialHealth   = 200
20397  
20398      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
20399      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
20400      SubdualDamageCap = 400
20401      SubdualDamageHealRate = 500
20402      SubdualDamageHealAmount = 50
20403    End
20404  
20405    ExperienceValue     = 20 20 20 20  ; Experience point value at each level
20406  
20407    Behavior = GrantUpgradeCreate ModuleTag_03
20408      UpgradeToGrant     = Upgrade_GLARadar
20409    End
20410    Behavior        = RadarUpgrade ModuleTag_05
20411      TriggeredBy   = Upgrade_GLARadar
20412      DisableProof  = Yes ; Won't be disabled by power low
20413    End
20414  
20415    Behavior           = OCLSpecialPower ModuleTag_06
20416      SpecialPowerTemplate = SpecialPowerRadarVanScan
20417      OCL                  = SUPERWEAPON_RadarVanScan
20418      CreateLocation       = CREATE_AT_LOCATION
20419      StartsPaused         = Yes ; Unpaused by upgrade module
20420    End
20421  
20422    Behavior = UnpauseSpecialPowerUpgrade ModuleTag_07
20423      SpecialPowerTemplate = SpecialPowerRadarVanScan
20424      TriggeredBy = Upgrade_GLARadarVanScan
20425    End
20426  
20427    Behavior = AutoHealBehavior ModuleTag_08
20428      HealingAmount = 2
20429      HealingDelay = 1000 ; msec
20430      TriggeredBy = Upgrade_GLAJunkRepair
20431    End
20432  
20433    Behavior = AIUpdateInterface ModuleTag_09
20434      Turret
20435        TurretTurnRate = 100
20436        ControlledWeaponSlots = PRIMARY
20437      End
20438    End
20439    Locomotor = SET_NORMAL RadarVanLocomotor
20440  
20441    Behavior = PhysicsBehavior ModuleTag_10
20442      Mass = 50.0
20443    End
20444  
20445  ; The default explosion
20446    Behavior = SlowDeathBehavior  ModuleTag_11
20447      DeathTypes = ALL -CRUSHED -SPLATTED
20448      ProbabilityModifier = 5
20449      ModifierBonusPerOverkillPercent = 20%  ; negative means less likely to pick this in the face of much damage, positive means more likely
20450      DestructionDelay = 0
20451      DestructionDelayVariance = 200
20452      FX = FINAL FX_BuggyNewDeathExplosion
20453      OCL = FINAL OCL_RadarVanDeathEffect
20454    End
20455  
20456  
20457    Behavior = FlammableUpdate ModuleTag_13
20458      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
20459      AflameDamageAmount = 3       ; taking this much damage...
20460      AflameDamageDelay = 500       ; this often.
20461    End
20462  
20463    Behavior = DestroyDie ModuleTag_14
20464      DeathTypes = NONE +CRUSHED +SPLATTED
20465    End
20466    Behavior = CreateCrateDie ModuleTag_15
20467      CrateData = SalvageCrateData
20468      ;CrateData = EliteTankCrateData
20469      ;CrateData = HeroicTankCrateData
20470    End
20471  
20472    Behavior = StealthDetectorUpdate ModuleTag_16
20473      DetectionRate   = 500   ; how often to rescan for stealthed things in my sight (msec)
20474      ;DetectionRange = ??? ;Dustin, enable this for independant balancing!
20475      CanDetectWhileGarrisoned  = No ;Garrisoned means being in a structure that you units can shoot out of.
20476      CanDetectWhileContained   = No ;Contained means being in a transport or tunnel network.
20477    End
20478  
20479    ; A crushing defeat
20480    Behavior = FXListDie ModuleTag_17
20481      DeathTypes = NONE +CRUSHED +SPLATTED
20482      DeathFX = FX_CarCrush
20483    End
20484    Behavior = CreateObjectDie ModuleTag_18
20485      DeathTypes = NONE +CRUSHED +SPLATTED
20486      CreationList = OCL_CrusaderTank_CrushEffect
20487    End
20488  
20489    Behavior                 = TransitionDamageFX ModuleTag_19
20490      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
20491      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_CrusaderDamageTransition
20492    End
20493  
20494    Behavior = SlowDeathBehavior ModuleTag_Death_20
20495      DeathTypes          = NONE +SUICIDED +EXPLODED
20496      SinkDelay           = 3000
20497      SinkRate            = 0.5     ; in Dist/Sec
20498      DestructionDelay    = 8000
20499      FX                  = INITIAL FX_TerroristExplode
20500      FlingForce          = 8
20501      FlingForceVariance  = 3
20502      FlingPitch          = 60
20503      FlingPitchVariance  = 10
20504    End
20505  
20506  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag_Death24
20507  ;    DeathWeapon   = Demo_SuicideDynamitePack
20508  ;    StartsActive  = Yes                      ; turned on by upgrade
20509  ;    DeathTypes = NONE +SUICIDED
20510  ;  End
20511  ;
20512  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag999
20513  ;    DeathWeapon   = Demo_SuicideDynamitePackPlusFire
20514  ;    StartsActive  = No
20515  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
20516  ;    RequiresAllTriggers = Yes; 
20517  ;    DeathTypes = ALL -SUICIDED -POISONED -POISONED_BETA -POISONED_GAMMA
20518  ;  End
20519  ;
20520  ;  Behavior = FireWeaponWhenDeadBehavior ModuleTag998
20521  ;    DeathWeapon   = Demo_SuicideDynamitePack
20522  ;    StartsActive  = No
20523  ;    TriggeredBy   = Demo_Upgrade_SuicideBomb
20524  ;    RequiresAllTriggers = Yes; 
20525  ;    DeathTypes = NONE +SUICIDED
20526  ;  End
20527  
20528    Behavior = FireWeaponWhenDeadBehavior ModuleTag_George 
20529      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
20530      StartsActive  = No
20531      TriggeredBy   = Demo_Upgrade_SuicideBomb
20532      DeathTypes = ALL
20533    End;
20534  
20535    Behavior = FireWeaponWhenDeadBehavior ModuleTag_Bob
20536      DeathWeapon   = Demo_SuicideDynamitePackPlusFire
20537      StartsActive  = No
20538      TriggeredBy   = Demo_Upgrade_SuicideBomb
20539      DeathTypes = NONE 
20540    End
20541  
20542    Behavior = CommandSetUpgrade ModuleTag_22
20543      CommandSet = Demo_GLAVehicleRadarVanCommandSetUpgrade
20544      TriggeredBy = Demo_Upgrade_SuicideBomb
20545    End
20546    
20547    Geometry = BOX
20548    GeometryMajorRadius = 16.0
20549    GeometryMinorRadius = 6.0
20550    GeometryHeight = 12.5     
20551    GeometryIsSmall = Yes    
20552    Shadow = SHADOW_VOLUME
20553    ShadowSizeX = 45  ;minimum elevation angle above horizon. Used to limit shadow length
20554  
20555  End
20556  
20557  ;------------------------------------------------------------------------------
20558  Object Demo_GLAVehicleBattleBus
20559  
20560    ; *** ART Parameters ***
20561    SelectPortrait         = SUbattlebus_L
20562    ButtonImage            = SUbattlebus
20563    
20564    UpgradeCameo1 = Upgrade_GLAJunkRepair
20565    
20566    
20567    Draw = W3DTruckDraw ModuleTag_01
20568      OkToChangeModelColor = Yes
20569      TrackMarks = EXTireTrack.tga
20570      ExtraPublicBone = BUSUP01
20571      ExtraPublicBone = BUSUP02
20572      
20573      DefaultConditionState
20574        Model = UVBATTBUS
20575        HideSubObject = BUSUP01 BUSUP02
20576        Animation = UVBATTBUS.UVBATTBUS
20577        AnimationMode = MANUAL
20578      End
20579      ConditionState = MOVING
20580        Model = UVBATTBUS
20581        Animation = UVBATTBUS.UVBATTBUS
20582        AnimationMode = LOOP
20583      End
20584  
20585      ConditionState = REALLYDAMAGED
20586        Model = UVBATTBUS_D
20587        Animation = UVBATTBUS_D.UVBATTBUS_D
20588        AnimationMode = MANUAL
20589      End
20590      ConditionState = REALLYDAMAGED MOVING
20591        Model = UVBATTBUS_D
20592        Animation = UVBATTBUS_D.UVBATTBUS_D
20593        AnimationMode = LOOP
20594      End
20595  
20596      ConditionState = SECOND_LIFE ; Set after our first death, natch
20597        Model = UVBATTBUS_D1
20598        Animation = UVBATTBUS_D1.UVBATTBUS_D1
20599        AnimationMode = MANUAL
20600      End
20601      AliasConditionState = REALLYDAMAGED SECOND_LIFE
20602      AliasConditionState = RUBBLE SECOND_LIFE
20603      
20604      ConditionState = RUBBLE
20605        Model = UVBATTBUS_D
20606      End
20607  
20608  ;--------- One crates
20609      ConditionState = ARMORSET_CRATEUPGRADE_ONE
20610        Model = UVBATTBUS
20611        ShowSubObject = BUSUP01
20612        HideSubObject = BUSUP02
20613        Animation = UVBATTBUS.UVBATTBUS
20614        AnimationMode = MANUAL
20615      End
20616      ConditionState = MOVING ARMORSET_CRATEUPGRADE_ONE
20617        Model = UVBATTBUS
20618        ShowSubObject = BUSUP01
20619        HideSubObject = BUSUP02
20620        Animation = UVBATTBUS.UVBATTBUS
20621        AnimationMode = LOOP
20622      End
20623  
20624      ConditionState = REALLYDAMAGED ARMORSET_CRATEUPGRADE_ONE
20625        Model = UVBATTBUS_D
20626        ShowSubObject = BUSUP01
20627        HideSubObject = BUSUP02
20628        Animation = UVBATTBUS_D.UVBATTBUS_D
20629        AnimationMode = MANUAL
20630      End
20631      ConditionState = REALLYDAMAGED MOVING ARMORSET_CRATEUPGRADE_ONE
20632        Model = UVBATTBUS_D
20633        ShowSubObject = BUSUP01
20634        HideSubObject = BUSUP02
20635        Animation = UVBATTBUS_D.UVBATTBUS_D
20636        AnimationMode = LOOP
20637      End
20638  
20639      ConditionState = SECOND_LIFE ARMORSET_CRATEUPGRADE_ONE
20640        Model = UVBATTBUS_D1
20641        ShowSubObject = BUSUP01
20642        HideSubObject = BUSUP02
20643        Animation = UVBATTBUS_D1.UVBATTBUS_D1
20644        AnimationMode = MANUAL
20645      End
20646      AliasConditionState = REALLYDAMAGED SECOND_LIFE ARMORSET_CRATEUPGRADE_ONE
20647      AliasConditionState = RUBBLE SECOND_LIFE ARMORSET_CRATEUPGRADE_ONE
20648      
20649      ConditionState = RUBBLE ARMORSET_CRATEUPGRADE_ONE
20650        Model = UVBATTBUS_D
20651        ShowSubObject = BUSUP01
20652        HideSubObject = BUSUP02
20653      End
20654  
20655  ;--------- Two crates
20656      ConditionState = ARMORSET_CRATEUPGRADE_TWO
20657        Model = UVBATTBUS
20658        ShowSubObject = BUSUP01 BUSUP02
20659        Animation = UVBATTBUS.UVBATTBUS
20660        AnimationMode = MANUAL
20661      End
20662      ConditionState = MOVING ARMORSET_CRATEUPGRADE_TWO
20663        Model = UVBATTBUS
20664        ShowSubObject = BUSUP01 BUSUP02
20665        Animation = UVBATTBUS.UVBATTBUS
20666        AnimationMode = LOOP
20667      End
20668  
20669      ConditionState = REALLYDAMAGED ARMORSET_CRATEUPGRADE_TWO
20670        Model = UVBATTBUS_D
20671        ShowSubObject = BUSUP01 BUSUP02
20672        Animation = UVBATTBUS_D.UVBATTBUS_D
20673        AnimationMode = MANUAL
20674      End
20675      ConditionState = REALLYDAMAGED MOVING ARMORSET_CRATEUPGRADE_TWO
20676        Model = UVBATTBUS_D
20677        ShowSubObject = BUSUP01 BUSUP02
20678        Animation = UVBATTBUS_D.UVBATTBUS_D
20679        AnimationMode = LOOP
20680      End
20681  
20682      ConditionState = SECOND_LIFE ARMORSET_CRATEUPGRADE_TWO
20683        Model = UVBATTBUS_D1
20684        ShowSubObject = BUSUP01 BUSUP02
20685        Animation = UVBATTBUS_D1.UVBATTBUS_D1
20686        AnimationMode = MANUAL
20687      End
20688      AliasConditionState = REALLYDAMAGED SECOND_LIFE ARMORSET_CRATEUPGRADE_TWO 
20689      AliasConditionState = RUBBLE SECOND_LIFE ARMORSET_CRATEUPGRADE_TWO
20690      
20691      ConditionState = RUBBLE ARMORSET_CRATEUPGRADE_TWO
20692        Model = UVBATTBUS_D
20693        ShowSubObject = BUSUP01 BUSUP02
20694      End
20695  
20696      LeftFrontTireBone = Tire01
20697      RightFrontTireBone = Tire04
20698      LeftRearTireBone = Tire02
20699      RightRearTireBone = Tire03
20700    
20701      TireRotationMultiplier = 0.2   ; this * speed = rotation.
20702  
20703      Dust = RocketBuggyDust
20704      DirtSpray = RocketBuggyDirtSpray
20705      PowerslideSpray = RocketBuggyDirtPowerSlide
20706  
20707    End
20708    PlacementViewAngle = 180
20709    ; ***DESIGN parameters ***
20710    DisplayName      = OBJECT:BattleBus
20711    Side = GLADemolitionGeneral
20712    EditorSorting   = VEHICLE
20713    TransportSlotCount = 8                 ;how many "slots" we take in a transport (0 == not transportable)
20714    WeaponSet
20715      Conditions = None 
20716      Weapon = PRIMARY None 
20717      Weapon = TERTIARY TerroristSuicideNotARealWeapon
20718      AutoChooseSources = TERTIARY None
20719      AutoChooseSources = PRIMARY None
20720    End
20721    WeaponSet
20722      Conditions          = PLAYER_UPGRADE 
20723      Weapon              = PRIMARY     BattleBusPassengerDummyWeapon
20724      Weapon              = TERTIARY TerroristSuicideNotARealWeapon
20725      AutoChooseSources = TERTIARY None
20726    End
20727  
20728    ArmorSet
20729      Conditions      = None
20730      Armor           = BattleBusTruckArmor
20731      DamageFX        = TruckDamageFX
20732    End
20733    ArmorSet
20734      Conditions      = SECOND_LIFE ; Set after our first death, natch
20735      Armor           = BattleBusStructureArmorTough
20736      DamageFX        = StructureDamageFX
20737    End
20738  
20739    ArmorSet
20740      Conditions      = CRATE_UPGRADE_ONE
20741      Armor           = BattleBusTruckArmorPlusOne
20742      DamageFX        = TruckDamageFX
20743    End
20744    ArmorSet
20745      Conditions      = CRATE_UPGRADE_ONE SECOND_LIFE ; Set after our first death, natch
20746      Armor           = BattleBusStructureArmorToughPlusOne
20747      DamageFX        = StructureDamageFX
20748    End
20749  
20750    ArmorSet
20751      Conditions      = CRATE_UPGRADE_TWO
20752      Armor           = BattleBusTruckArmorPlusTwo
20753      DamageFX        = TruckDamageFX
20754    End
20755    ArmorSet
20756      Conditions      = CRATE_UPGRADE_TWO SECOND_LIFE ; Set after our first death, natch
20757      Armor           = BattleBusStructureArmorToughPlusTwo
20758      DamageFX        = StructureDamageFX
20759    End
20760  
20761    BuildCost       = 1000
20762    BuildTime       = 15.0          ;in seconds    
20763    VisionRange     = 150 ; Used in attack move targeting
20764    ShroudClearingRange     = 200
20765    Prerequisites
20766      Object = Demo_GLAArmsDealer
20767      Object = Demo_GLAPalace
20768    End
20769    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
20770    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
20771    CommandSet = Demo_GLAVehicleBattleBusCommandSet
20772  
20773    ; *** AUDIO Parameters ***
20774    VoiceSelect = BattleBusVoiceSelect
20775    VoiceMove = BattleBusVoiceMove
20776    VoiceGuard = BattleBusVoiceMove
20777    VoiceAttack = BattleBusVoiceAttack
20778    SoundMoveStart = BattleBusMoveStart
20779    SoundMoveStartDamaged = BattleBusMoveStart
20780    SoundEnter = HumveeEnter
20781    SoundExit = HumveeExit
20782    UnitSpecificSounds
20783      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
20784      VoiceCreate                   = BattleBusVoiceCreate
20785      TurretMoveStart               = NoSound
20786      TurretMoveLoop                = NoSound
20787      TruckLandingSound             = RocketBuggyLand
20788      TruckPowerslideSound          = RocketBuggyPowerslide
20789      VoiceUnload                   = BattleBusVoiceUnload
20790    End
20791  
20792    ; *** ENGINEERING Parameters ***
20793    RadarPriority = UNIT
20794    KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS VEHICLE SALVAGER ARMOR_SALVAGER SCORE
20795  
20796    Body = UndeadBody ModuleTag_02 ; Body module that treats the first death as a state change
20797      MaxHealth           = 400.0
20798      InitialHealth       = 400.0
20799  
20800      SecondLifeMaxHealth = 650.0
20801  
20802      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
20803      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
20804      SubdualDamageCap = 750
20805      SubdualDamageHealRate = 500
20806      SubdualDamageHealAmount = 50
20807    End
20808  
20809    IsTrainable = No
20810    ExperienceValue     = 50 50 50 50  ; Experience point value at each level
20811  
20812    Behavior = AIUpdateInterface ModuleTag_04
20813      AutoAcquireEnemiesWhenIdle = No ATTACK_BUILDINGS
20814    End
20815  
20816    Behavior = PhysicsBehavior ModuleTag_05
20817      Mass = 40.0
20818    End
20819  
20820    Behavior = AutoHealBehavior ModuleTag_06
20821      HealingAmount = 2
20822      HealingDelay = 1000 ; msec
20823      TriggeredBy = Upgrade_GLAJunkRepair
20824    End
20825  
20826    Locomotor = SET_NORMAL BattleBusLocomotor
20827  
20828    Behavior = BattleBusSlowDeathBehavior  ModuleTag_08
20829      DeathTypes = ALL -CRUSHED -SPLATTED -EXTRA_4 -SUICIDED ;Crushed and splatted are cover by a DestroyDie.  Extra4(loneliness) and Suicide(DemoBomb) are covered in a normal slowdeath
20830      ProbabilityModifier = 5
20831      ModifierBonusPerOverkillPercent = 20%  ; negative means less likely to pick this in the face of much damage, positive means more likely
20832  
20833      ; Part the first, uses when killed the first time from non-system (unresistable) damage
20834      FXStartUndeath = FX_BattleBusStartUndeath
20835      OCLStartUndeath = OCL_BattleBusStartUndeath
20836      FXHitGround = FX_BattleBusHitGround
20837      OCLHitGround = OCL_BattleBusHitGround
20838      ThrowForce = 100.0
20839      PercentDamageToPassengers = 50%
20840      EmptyHulkDestructionDelay = 1000 ; If non-zero, msec of emptiness before we kill ourselves with Penalty damage, EXTRA_4 death
20841  
20842      ; Part the second, normal fields of a SlowDeathBehavior
20843      DestructionDelay = 0
20844      DestructionDelayVariance = 200
20845      FX = FINAL FX_BuggyNewDeathExplosion
20846      OCL = FINAL OCL_BattleBusDeath
20847    End
20848  
20849    Behavior = TransportContain  ModuleTag_10
20850      PassengersAllowedToFire = Yes
20851      Slots             = 8
20852      DamagePercentToUnits = 100%
20853      AllowInsideKindOf  = INFANTRY
20854      ExitDelay = 250
20855      NumberOfExitPaths = 5 ; Defaults to 1.  Set 0 to not use ExitStart/ExitEnd, set higher than 1 to use ExitStart01-nn/ExitEnd01-nn
20856      GoAggressiveOnExit = Yes ; AI Will tell people to set their mood to Aggressive on exiting
20857      WeaponBonusPassedToPassengers = Yes
20858      DelayExitInAir = Yes
20859      DelayExitInAir = Yes
20860      ArmedRidersUpgradeMyWeaponSet = Yes
20861    End
20862  
20863  ; Module 11 cut.
20864  ;  Behavior = HordeUpdate ModuleTag_11
20865  ;    RubOffRadius = 150    ; if I am this close to a real hordesman, I will get to be an honorary hordesman
20866  ;    UpdateRate = 1000     ; how often to recheck horde status (msec)
20867  ;    Radius = 75           ; how close other units must be to us to count towards our horde-ness (~30 feet or so)
20868  ;    AlliesOnly = Yes      ; do we only count allies towards horde status? 
20869  ;    ExactMatch = Yes      ; do we only count units of our exact same type towards horde status? (overrides kindof)
20870  ;    Count = 5             ; how many units must be within Radius to grant us horde-ness
20871  ;    Action = HORDE        ; when horde-ing, grant us the HORDE bonus
20872  ;  End
20873  
20874    ; A crushing defeat
20875    Behavior = FXListDie ModuleTag_23
20876      DeathTypes = NONE +CRUSHED +SPLATTED
20877      DeathFX = FX_CarCrush
20878    End
20879    Behavior = CreateObjectDie ModuleTag_24
20880      DeathTypes = NONE +CRUSHED +SPLATTED
20881      CreationList = OCL_CrusaderTank_CrushEffect
20882    End
20883    Behavior = CreateCrateDie ModuleTag_25
20884      CrateData = SalvageCrateData
20885    End
20886    
20887    Behavior = FlammableUpdate ModuleTag_28
20888      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
20889      AflameDamageAmount = 3       ; taking this much damage...
20890      AflameDamageDelay = 500       ; this often.
20891    End
20892  
20893    Behavior = DestroyDie ModuleTag_29
20894      DeathTypes = NONE +CRUSHED +SPLATTED
20895    End
20896  
20897    Behavior = FireWeaponWhenDeadBehavior ModuleTag998
20898      DeathWeapon   = Demo_SuicideDynamitePack
20899      StartsActive  = No
20900      TriggeredBy   = Demo_Upgrade_SuicideBomb
20901    End
20902  
20903    Behavior = CommandSetUpgrade ModuleTag_33
20904      CommandSet = Demo_GLAVehicleBattleBusCommandSetUpgrade
20905      TriggeredBy = Demo_Upgrade_SuicideBomb
20906    End
20907  
20908    Behavior = SlowDeathBehavior ModuleTag_34 // Empty Hulk sinking away
20909      DeathTypes = NONE +EXTRA_4
20910  
20911      SinkDelay = 1
20912      SinkRate = 2.5
20913      DestructionDelay = 5000
20914    End
20915  
20916    Behavior = SlowDeathBehavior ModuleTag_35 // Sorry, because the terrorist does Suicide damage to others, we cannot tell if it is a legit suicide (us killing self)
20917      DeathTypes = NONE +SUICIDED
20918      DestructionDelay = 1
20919      FX = FINAL FX_BuggyNewDeathExplosion
20920    End
20921  
20922    Behavior                 = TransitionDamageFX ModuleTag_36
20923      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
20924      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
20925    End
20926  
20927    Geometry = BOX
20928    GeometryMajorRadius = 19.0
20929    GeometryMinorRadius = 8.0
20930    GeometryHeight = 11.5     
20931    GeometryIsSmall = No    
20932    Shadow = SHADOW_VOLUME
20933    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
20934  
20935  End
20936  
20937  
20938  
20939  
20940  
20941  Object Demo_GLAAirport
20942  
20943    ; *** ART Parameters ***
20944    SelectPortrait         = T4
20945    ButtonImage            = T4
20946    Draw = W3DModelDraw ModuleTag_01
20947  
20948      ExtraPublicBone = Runway1Parking1 
20949      ExtraPublicBone = Runway1Parking2 
20950      ExtraPublicBone = Runway2Parking1 
20951      ExtraPublicBone = Runway2Parking2 
20952      ExtraPublicBone = Runway1Park1Han
20953      ExtraPublicBone = Runway1Park2Han
20954      ExtraPublicBone = Runway2Park1Han
20955      ExtraPublicBone = Runway2Park2Han 
20956      ExtraPublicBone = Runway1Prep1 
20957      ExtraPublicBone = Runway1Prep2 
20958      ExtraPublicBone = Runway2Prep1 
20959      ExtraPublicBone = Runway2Prep2 
20960      ExtraPublicBone = RunwayStart1 
20961      ExtraPublicBone = RunwayStart2 
20962      ExtraPublicBone = RunwayEnd1 
20963      ExtraPublicBone = RunwayEnd2
20964      ExtraPublicBone = HeliPark01
20965  
20966      OkToChangeModelColor = Yes
20967  
20968      ; day ********************************************
20969      DefaultConditionState
20970        Model              = UBArFrcCmd
20971        Animation          = UBArFrcCmd.UBArFrcCmd
20972        AnimationMode      = LOOP
20973      End
20974      ConditionState       = DAMAGED
20975        Model              = UBArFrcCmd_D
20976        Animation          = UBArFrcCmd_D.UBArFrcCmd_D
20977        AnimationMode      = LOOP
20978        ParticleSysBone    = Smoke01 SmolderingSmoke
20979        ParticleSysBone    = Fire01 SmolderingFire
20980      End
20981      ConditionState       = REALLYDAMAGED RUBBLE
20982        Model              = UBArFrcCmd_E
20983        Animation          = UBArFrcCmd_E.UBArFrcCmd_E
20984        AnimationMode      = LOOP
20985        ParticleSysBone    = Smoke01 SmolderingSmoke
20986        ParticleSysBone    = Fire01 SmolderingFire
20987        ParticleSysBone    = Spark01 SparksLarge
20988      End
20989      
20990  
20991      ; night ******************************************
20992      ConditionState       = NIGHT
20993        Model              = UBArFrcCmd_N
20994        Animation          = UBArFrcCmd_N.UBArFrcCmd_N
20995        AnimationMode      = LOOP
20996      End
20997      ConditionState       = DAMAGED NIGHT
20998        Model              = UBArFrcCmd_DN
20999        Animation          = UBArFrcCmd_DN.UBArFrcCmd_DN
21000        AnimationMode      = LOOP
21001      End
21002      ConditionState       = REALLYDAMAGED RUBBLE NIGHT
21003        Model              = UBArFrcCmd_EN
21004        Animation          = UBArFrcCmd_EN.UBArFrcCmd_EN
21005        AnimationMode      = LOOP
21006      End
21007      
21008      
21009         ;**************************************************************************************************************************
21010      ;This block handles every possible case with construction process, selling process, awaiting construction, and sold states
21011      ;for this draw module
21012      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
21013        Model              = UBArFrcCmd
21014        Animation          = UBArFrcCmd.UBArFrcCmd
21015        AnimationMode      = LOOP
21016        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
21017      End
21018      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
21019        Model              = UBArFrcCmd_D
21020        Animation          = UBArFrcCmd_D.UBArFrcCmd_D
21021        AnimationMode      = LOOP
21022        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
21023      End
21024      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED
21025        Model              = UBArFrcCmd_E
21026        Animation          = UBArFrcCmd_E.UBArFrcCmd_E
21027        AnimationMode      = LOOP
21028        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
21029      End
21030      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT
21031        Model              = UBArFrcCmd_N
21032        Animation          = UBArFrcCmd_N.UBArFrcCmd_N
21033        AnimationMode      = LOOP
21034        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
21035      End
21036      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT DAMAGED
21037        Model              = UBArFrcCmd_DN
21038        Animation          = UBArFrcCmd_DN.UBArFrcCmd_DN
21039        AnimationMode      = LOOP
21040        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
21041      End
21042      ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT REALLYDAMAGED
21043        Model              = UBArFrcCmd_EN
21044        Animation          = UBArFrcCmd_EN.UBArFrcCmd_EN
21045        AnimationMode      = LOOP
21046        Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
21047      End
21048  
21049      ConditionState       = AWAITING_CONSTRUCTION 
21050        Model              = NONE
21051      End
21052      AliasConditionState  = AWAITING_CONSTRUCTION DAMAGED
21053      AliasConditionState  = AWAITING_CONSTRUCTION REALLYDAMAGED
21054      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT
21055      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT DAMAGED
21056      AliasConditionState  = AWAITING_CONSTRUCTION NIGHT REALLYDAMAGED
21057      AliasConditionState  = SOLD 
21058      AliasConditionState  = SOLD DAMAGED
21059      AliasConditionState  = SOLD REALLYDAMAGED
21060      AliasConditionState  = SOLD NIGHT
21061      AliasConditionState  = SOLD NIGHT DAMAGED
21062      AliasConditionState  = SOLD NIGHT REALLYDAMAGED
21063      ;**************************************************************************************************************************
21064  
21065    End
21066  
21067    ; ------------ construction-zone fence -----------------
21068    Draw = W3DModelDraw ModuleTag_07
21069    AnimationsRequirePower = No
21070      DefaultConditionState
21071        Model           = None
21072        TransitionKey   = DOWN_DEFAULT
21073      End
21074      ConditionState    = NIGHT
21075        Model           = None
21076        TransitionKey   = DOWN_DEFAULT
21077      End
21078  
21079      ConditionState    = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
21080        Model           = UBArFrcCmd_A4
21081        Animation       = UBArFrcCmd_A4.UBArFrcCmd_A4
21082        AnimationMode   = MANUAL
21083        Flags           = START_FRAME_LAST
21084        TransitionKey   = UP_DAY
21085        ParticleSysBone = SmokeS01 SmokeBuildingSmall
21086        ParticleSysBone = SparksS01 LiveWireSparks02
21087      End
21088  
21089      TransitionState   = DOWN_DEFAULT UP_DAY
21090        Model           = UBArFrcCmd_A4
21091        Animation       = UBArFrcCmd_A4.UBArFrcCmd_A4
21092        AnimationMode   = ONCE
21093        AnimationSpeedFactorRange = 1.0 1.0
21094        Flags           = START_FRAME_FIRST
21095      End
21096  
21097      TransitionState   = UP_DAY DOWN_DEFAULT
21098        Model           = UBArFrcCmd_A4
21099        Animation       = UBArFrcCmd_A4.UBArFrcCmd_A4
21100        AnimationMode   = ONCE_BACKWARDS
21101        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
21102        Flags           = START_FRAME_LAST
21103      End
21104   End
21105  
21106    ; ------------ under-construction scaffolding -----------------
21107    Draw = W3DModelDraw ModuleTag_08
21108    AnimationsRequirePower = No
21109      MinLODRequired = MEDIUM
21110      DefaultConditionState
21111        Model           = None
21112        TransitionKey   = DOWN_DEFAULT
21113      End
21114      ConditionState    = NIGHT
21115        Model           = None
21116        TransitionKey   = DOWN_DEFAULT
21117      End
21118      ConditionState    = SNOW
21119        Model           = None
21120        TransitionKey   = DOWN_DEFAULT
21121      End
21122      ConditionState    = SNOW NIGHT
21123        Model           = None
21124        TransitionKey   = DOWN_DEFAULT
21125      End
21126      ConditionState    = PARTIALLY_CONSTRUCTED
21127        Model           = UBPalace_A6
21128        Animation       = UBPalace_A6.UBPalace_A6
21129        AnimationMode   = MANUAL
21130        Flags           = START_FRAME_LAST
21131        TransitionKey   = UP_DAY
21132        ParticleSysBone = Dust01 BuildingDust
21133        ParticleSysBone = Smoke01 BuildUpSmoke
21134        ParticleSysBone = Smoke02 BuildUpSmoke
21135        ParticleSysBone = Smoke03 BuildUpSmoke
21136        ParticleSysBone = Smoke04 BuildUpSmoke
21137        ParticleSysBone = Smoke05 BuildUpSmoke
21138      End
21139      ConditionState    = NIGHT PARTIALLY_CONSTRUCTED
21140        Model           = UBPalace_A6N
21141        Animation       = UBPalace_A6N.UBPalace_A6N
21142        AnimationMode   = MANUAL
21143        Flags           = START_FRAME_LAST
21144        TransitionKey   = UP_NIGHT
21145        ParticleSysBone = Dust01 BuildingDust
21146        ParticleSysBone = Smoke01 BuildUpSmoke
21147        ParticleSysBone = Smoke02 BuildUpSmoke
21148        ParticleSysBone = Smoke03 BuildUpSmoke
21149        ParticleSysBone = Smoke04 BuildUpSmoke
21150        ParticleSysBone = Smoke05 BuildUpSmoke
21151      End
21152      ConditionState    = SNOW PARTIALLY_CONSTRUCTED
21153        Model           = UBPalace_A6S
21154        Animation       = UBPalace_A6S.UBPalace_A6S
21155        AnimationMode   = MANUAL
21156        Flags           = START_FRAME_LAST
21157        TransitionKey   = UP_SNOW
21158        ParticleSysBone = Dust01 BuildingSnowDust
21159        ParticleSysBone = Smoke01 BuildUpSnowSmoke
21160        ParticleSysBone = Smoke02 BuildUpSnowSmoke
21161        ParticleSysBone = Smoke03 BuildUpSnowSmoke
21162        ParticleSysBone = Smoke04 BuildUpSnowSmoke
21163        ParticleSysBone = Smoke05 BuildUpSnowSmoke
21164      End
21165      ConditionState    = SNOW NIGHT PARTIALLY_CONSTRUCTED
21166        Model           = UBPalace_A6SN
21167        Animation       = UBPalace_A6SN.UBPalace_A6SN
21168        AnimationMode   = MANUAL
21169        Flags           = START_FRAME_LAST
21170        TransitionKey   = UP_SNOWNIGHT
21171        ParticleSysBone = Dust01 BuildingNightSnowDust
21172        ParticleSysBone = Smoke01 BuildUpNightSnowSmoke
21173        ParticleSysBone = Smoke02 BuildUpNightSnowSmoke
21174        ParticleSysBone = Smoke03 BuildUpNightSnowSmoke
21175        ParticleSysBone = Smoke04 BuildUpNightSnowSmoke
21176        ParticleSysBone = Smoke05 BuildUpNightSnowSmoke
21177      End
21178      TransitionState   = DOWN_DEFAULT UP_DAY
21179       Model            = UBPalace_A6
21180        Animation       = UBPalace_A6.UBPalace_A6
21181        AnimationMode   = ONCE
21182        AnimationSpeedFactorRange = 1.0 1.0
21183        Flags           = START_FRAME_FIRST
21184      End
21185      TransitionState   = DOWN_DEFAULT UP_NIGHT
21186       Model            = UBPalace_A6N
21187        Animation       = UBPalace_A6N.UBPalace_A6N
21188        AnimationMode   = ONCE
21189        AnimationSpeedFactorRange = 1.0 1.0
21190        Flags           = START_FRAME_FIRST
21191      End
21192      TransitionState   = DOWN_DEFAULT UP_SNOW
21193       Model            = UBPalace_A6S
21194        Animation       = UBPalace_A6S.UBPalace_A6S
21195        AnimationMode   = ONCE
21196        AnimationSpeedFactorRange = 1.0 1.0
21197        Flags           = START_FRAME_FIRST
21198      End
21199      TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
21200       Model            = UBPalace_A6SN
21201        Animation       = UBPalace_A6SN.UBPalace_A6SN
21202        AnimationMode   = ONCE
21203        AnimationSpeedFactorRange = 1.0 1.0
21204        Flags           = START_FRAME_FIRST
21205      End
21206      TransitionState   = UP_DAY DOWN_DEFAULT
21207        Model           = UBPalace_A6
21208        Animation       = UBPalace_A6.UBPalace_A6
21209        AnimationMode   = ONCE_BACKWARDS
21210        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
21211        Flags           = START_FRAME_LAST
21212      End
21213      TransitionState   = UP_NIGHT DOWN_DEFAULT
21214        Model           = UBPalace_A6N
21215        Animation       = UBPalace_A6N.UBPalace_A6N
21216        AnimationMode   = ONCE_BACKWARDS
21217        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
21218        Flags           = START_FRAME_LAST
21219      End
21220      TransitionState   = UP_SNOW DOWN_DEFAULT
21221        Model           = UBPalace_A6S
21222        Animation       = UBPalace_A6S.UBPalace_A6S
21223        AnimationMode   = ONCE_BACKWARDS
21224        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
21225        Flags           = START_FRAME_LAST
21226      End
21227      TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
21228        Model           = UBPalace_A6SN
21229        Animation       = UBPalace_A6SN.UBPalace_A6SN
21230        AnimationMode   = ONCE_BACKWARDS
21231        AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
21232        Flags           = START_FRAME_LAST
21233      End
21234    End
21235  
21236    ; ------------ being-constructed crane -----------------
21237    Draw = W3DModelDraw ModuleTag_09
21238    AnimationsRequirePower = No
21239      DefaultConditionState
21240        Model           = None
21241        TransitionKey   = DOWN_DEFAULT
21242      End
21243      ConditionState    = NIGHT
21244        Model           = None
21245        TransitionKey   = DOWN_DEFAULT
21246      End
21247  
21248      ConditionState    = SOLD
21249        Model           = NONE
21250      End
21251  
21252      ConditionState    = ACTIVELY_BEING_CONSTRUCTED
21253        Model           = UBArFrcCmd_A5
21254        Animation       = UBArFrcCmd_A5.UBArFrcCmd_A5
21255        AnimationMode   = LOOP
21256        TransitionKey   = UP_DAY
21257      End
21258  
21259    End
21260  
21261    PlacementViewAngle = -45
21262  
21263    ; ***DESIGN parameters ***
21264    DisplayName      = OBJECT:Airfield
21265    Side             = GLADemolitionGeneral
21266    EditorSorting    = STRUCTURE
21267    Prerequisites
21268      Object = Demo_GLASupplyStash
21269    End
21270  
21271    BuildCost           = 1000
21272    BuildTime           = 30.0           ; in seconds
21273    EnergyProduction    = 0
21274    CommandSet          = Demo_GLAAirPortCommandSet
21275    VisionRange         = 200.0           ; Shroud clearing distance
21276    ShroudClearingRange = 200
21277    ArmorSet
21278      Conditions        = None
21279      Armor             = StructureArmor
21280      DamageFX          = StructureDamageFXNoShake
21281    End
21282    ExperienceValue     = 150 150 150 150  ; Experience point value at each level
21283  
21284    ; *** AUDIO Parameters ***
21285    VoiceSelect = WarFactoryGLASelect
21286    SoundOnDamaged        = BuildingDamagedStateLight
21287    SoundOnReallyDamaged  = BuildingDestroy
21288  
21289    UnitSpecificSounds
21290      UnderConstruction     = UnderConstructionLoop
21291    End
21292  
21293    ; *** ENGINEERING Parameters ***
21294    RadarPriority       = STRUCTURE
21295    KindOf              = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE CAPTURABLE FS_FACTORY MP_COUNT_FOR_VICTORY AUTO_RALLYPOINT FS_AIRFIELD
21296    Body                = StructureBody ModuleTag_10
21297      MaxHealth         = 2000.0
21298      InitialHealth     = 2000.0
21299  
21300      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
21301      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
21302      SubdualDamageCap = 1700
21303      SubdualDamageHealRate = 500
21304      SubdualDamageHealAmount = 100
21305    End
21306    
21307    Behavior = ParkingPlaceBehavior ModuleTag_11
21308      HealAmountPerSecond     = 20
21309      NumRows                 = 2
21310      NumCols                 = 2
21311      HasRunways              = Yes
21312      ApproachHeight          = 50
21313      ParkInHangars           = Yes
21314    End
21315  
21316    Behavior = ProductionUpdate ModuleTag_12
21317      NumDoorAnimations            = 4
21318  ;    DoorOpeningTime              = 2000  ;in mSeconds
21319  ;    DoorWaitOpenTime             = 3000  ;in mSeconds
21320  ;    DoorCloseTime                = 2000  ;in mSeconds
21321      ConstructionCompleteDuration = 100  ;in mSeconds
21322    End
21323  
21324    Behavior = BaseRegenerateUpdate ModuleTag_13
21325      ;No data
21326    End 
21327  
21328    Behavior = DestroyDie ModuleTag_14
21329      ;nothing
21330    End
21331    Behavior             = CreateObjectDie ModuleTag_15
21332      CreationList  = OCL_ABPowerPlantExplode
21333    End
21334  
21335    Behavior             = FXListDie ModuleTag_17
21336      DeathFX       = FX_StructureMediumDeath
21337    End
21338  
21339    Behavior = FlammableUpdate ModuleTag_19
21340      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
21341      AflameDamageAmount = 5       ; taking this much damage...
21342      AflameDamageDelay = 500       ; this often.
21343    End
21344  
21345    Behavior = TransitionDamageFX ModuleTag_31
21346      ;-------------DESIGNED FOR MEDIUM SIZED FACTION BUILDING TRANSITIONS-------------------
21347      DamagedParticleSystem1       = Bone:None RandomBone:No PSys:StructureTransitionMediumSmoke
21348      ;---------------------------------------------------------------------------------------
21349      ReallyDamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionMediumSmoke
21350      ReallyDamagedParticleSystem2 = Bone:None RandomBone:No PSys:StructureTransitionMediumExplosion
21351      ReallyDamagedParticleSystem3 = Bone:None RandomBone:No PSys:StructureTransitionMediumShockwave
21352    End
21353  
21354    Geometry            = BOX
21355    GeometryMajorRadius = 75.0
21356    GeometryMinorRadius = 60.0
21357    GeometryHeight      = 30.0
21358    GeometryIsSmall     = No
21359    FactoryExitWidth    = 25
21360    Shadow          = SHADOW_VOLUME
21361    BuildCompletion = PLACED_BY_PLAYER
21362  
21363  End
21364  
21365  ;-------------------------------------------------------------------------------
21366  
21367  Object GLAVehicleToxinPlane
21368  
21369    ; *** ART Parameters ***
21370    SelectPortrait         = T6
21371    ButtonImage            = T6
21372  
21373    UpgradeCameo1 = Upgrade_GLAJunkRepair
21374  ;  UpgradeCameo2 = Upgrade_GLAJunkRepair
21375  ;  UpgradeCameo3 = Upgrade_Sunnykit
21376    ;UpgradeCameo4 = NONE
21377    ;UpgradeCameo5 = NONE
21378   
21379  
21380    Draw                   = W3DModelDraw ModuleTag_01
21381   
21382      ConditionState = NONE
21383        Model = CVCDTPLN
21384        Animation           = CVCDTPLN.CVCDTPLN
21385        AnimationMode       = LOOP
21386      End
21387      
21388      ConditionState = REALLYDAMAGED
21389        Model = CVCDTPLN_D
21390      End
21391      
21392      ConditionState = RUBBLE
21393        Model = CVCDTPLN
21394      End
21395  
21396    End
21397  
21398    Scale =0.8
21399  
21400    ; ***DESIGN parameters ***
21401    DisplayName             = CONTROLBAR:TooltipGLAToxinPlane
21402    EditorSorting           = VEHICLE
21403    Side                    = GLADemolitionGeneral
21404    TransportSlotCount      = 0 ;how many "slots" we take in a transport (0 == not transportable)
21405    VisionRange             = 300.0 
21406    ShroudClearingRange     = 350
21407  
21408  ;  Prerequisites
21409  ;    Object = Demo_GLAPalace
21410  ;   
21411  ;  End
21412  
21413     WeaponSet 
21414      Conditions        = None 
21415      Weapon            = PRIMARY   ToxinPlaneDrop ;ToxinPlaneSprayer
21416      Weapon            = SECONDARY   SuicidePWeapon     ;PlaneSuicideBomb
21417      
21418      AutoChooseSources = SECONDARY    NONE
21419     End
21420  
21421  
21422    ArmorSet
21423      Conditions      = None
21424      Armor                = AirplaneArmor
21425      DamageFX             = None
21426    End
21427  
21428    BuildCost               = 1000
21429    BuildTime               = 10   
21430    ExperienceValue = 200 200 400 600   ;Experience point value at each level
21431    ExperienceRequired = 0 200 400 600  ;Experience points needed to gain each level
21432    IsTrainable = Yes             ;Can gain experience
21433    CrusherLevel            = 1  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
21434    CrushableLevel          = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
21435    CommandSet              = ToxinPlaneCommandSet
21436  
21437    ; *** AUDIO Parameters ***
21438    SoundAmbient = CivPropPlaneAmbientLoop
21439    
21440    ; *** ENGINEERING Parameters ***
21441    ; *** ENGINEERING Parameters ***
21442    RadarPriority          = UNIT
21443    KindOf                 = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK SELECTABLE VEHICLE SCORE AIRCRAFT
21444  
21445    Body                   = ActiveBody ModuleTag_02
21446      MaxHealth            = 100.0
21447      InitialHealth        = 100.0
21448    End
21449  
21450  
21451    Behavior                          = JetSlowDeathBehavior ModuleTag_05
21452      FXOnGroundDeath                 = FX_JetOnGroundDeath
21453      OCLOnGroundDeath                = OCL_RaptorDeathFinalBlowUp
21454      DestructionDelay                = 99999999; destruction will happen when we
21455      RollRate                        = 0.2
21456      RollRateDelta                   = 100% ;each frame, rollrate = rollrate * rollrateDelta
21457      PitchRate                       = 0.0
21458      FallHowFast                     = 110.0%  ;Bigger is faster (can be over 100%,it's a fraction of gravity)
21459      FXInitialDeath                  = FX_RaptorDeathInitial
21460      OCLInitialDeath                 = OCL_RaptorDeathInitial
21461      DelaySecondaryFromInitialDeath  = 500  ; in milliseconds
21462      FXSecondary                     = FX_JetDeathSecondary
21463      OCLSecondary                    = OCL_RaptorDeathSecondary
21464      FXHitGround                     = FX_JetDeathHitGround
21465      OCLHitGround                    = OCL_RaptorDeathHitGround
21466      DelayFinalBlowUpFromHitGround   = 200 ; in milliseconds
21467      FXFinalBlowUp                   = FX_JetDeathFinalBlowUp
21468      OCLFinalBlowUp                  = OCL_RaptorDeathFinalBlowUp
21469  ;   DeathLoopSound                  = MICAL NEEDS TO MAKE ME
21470    End
21471    
21472    Behavior               = PhysicsBehavior ModuleTag_07
21473      Mass                 = 500.0
21474    End
21475  
21476    Behavior                 = TransitionDamageFX ModuleTag_08
21477      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes Psys:SmokeSmallContinuous01
21478      ReallyDamagedFXList1         = Loc: X:0 Y:0 Z:0 FXList:FX_MIGDamageTransition
21479    End
21480  
21481    Behavior = JetAIUpdate ModuleTag_09
21482      OutOfAmmoDamagePerSecond  = 10%  ; amount of damage to take per SEC (not per frame) when out of ammo
21483                                      ; note that it's expressed as a percent of max health, not an absolute
21484      TakeoffDistForMaxLift     = 50%   ; larger numbers give more lift sooner when taking off
21485      TakeoffPause              = 1500
21486      MinHeight                 = 5
21487      ParkingOffset             = 3             ; scooch it a little forward so the tail doesn't hit the doors
21488      ReturnToBaseIdleTime      = 10000         ; if idle for this long, return to base, even if not out of ammo
21489    End
21490    Locomotor = SET_NORMAL TerrorPlaneLocomotor
21491    Locomotor = SET_TAXIING BasicJetTaxiLocomotor
21492  
21493    Behavior = FlammableUpdate ModuleTag_21
21494      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
21495      AflameDamageAmount = 3       ; taking this much damage...
21496      AflameDamageDelay = 500       ; this often.
21497    End
21498  
21499    Behavior = CreateCrateDie ModuleTag_25
21500      CrateData = SalvageCrateData
21501      ;CrateData = EliteTankCrateData
21502      ;CrateData = HeroicTankCrateData
21503    End
21504    
21505    Behavior = FireWeaponWhenDeadBehavior ModuleTag_14
21506      DeathWeapon   = PlaneSuicideBomb
21507      StartsActive  = Yes                      ; turned on by upgrade
21508    End
21509  
21510    Behavior = AutoHealBehavior ModuleTag_26
21511      HealingAmount = 5
21512      HealingDelay = 1000 ; msec
21513      TriggeredBy = Upgrade_GLAJunkRepair
21514    End
21515  
21516  
21517    Geometry = Cylinder
21518    GeometryIsSmall          = Yes
21519    GeometryMajorRadius      = 10.0
21520    GeometryMinorRadius      = 10.0
21521    GeometryHeight           = 5.0
21522    Shadow                   = SHADOW_VOLUME
21523    ShadowSizeX = 89  ; minimum elevation angle above horizon. Used to limit shadow length.
21524  
21525  End
21526  


Generated: Sat Mar 28 08:18:23 2009 Cross-referenced by PHPXref 0.7