[ Index ] WAROFGENERALS

PHP Cross Reference of WAROFGENERALS MODS SOURCES

title

Body

[close]

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

   1  
   2  ;------------------------------------------------------------------------------
   3  Object ChinaTankBattleMaster
   4  
   5    ; *** ART Parameters ***
   6    SelectPortrait         = SNBattlemaster_L
   7    ButtonImage            = SNBattlemaster
   8    
   9    UpgradeCameo1 = Upgrade_Nationalism
  10    UpgradeCameo2 = Upgrade_ChinaUraniumShells
  11    UpgradeCameo3 = Upgrade_ChinaNuclearTanks
  12    ;UpgradeCameo4 = NONE
  13    ;UpgradeCameo5 = NONE
  14    
  15    Draw = W3DTankDraw ModuleTag_01
  16      OkToChangeModelColor = Yes
  17      DefaultConditionState
  18        Model               = NVBtMstr
  19        Turret              = Turret01
  20        WeaponFireFXBone    = PRIMARY Muzzle
  21        WeaponRecoilBone    = PRIMARY Barrel
  22        WeaponMuzzleFlash   = PRIMARY MuzzleFX
  23        WeaponLaunchBone    = PRIMARY Muzzle
  24      End
  25      ConditionState = REALLYDAMAGED
  26        Model               = NVBtMstr_D
  27        Turret              = Turret01
  28        WeaponFireFXBone    = PRIMARY Muzzle
  29        WeaponRecoilBone    = PRIMARY Barrel
  30        WeaponMuzzleFlash   = PRIMARY MuzzleFX
  31        WeaponLaunchBone    = PRIMARY Muzzle
  32      End
  33      ConditionState = RUBBLE
  34        Model               = NVBtMstr_D
  35        Turret              = Turret01
  36      End
  37  
  38      TrackMarks              = EXTnkTrack.tga
  39    End
  40  
  41    ; ***DESIGN parameters ***
  42    DisplayName      = OBJECT:BattleMaster
  43    Side = China
  44    EditorSorting   = VEHICLE
  45    TransportSlotCount = 3                 ;how many "slots" we take in a transport (0 == not transportable)
  46    WeaponSet
  47      Conditions = None 
  48      Weapon = PRIMARY BattleMasterTankGun
  49    End
  50    ArmorSet
  51      Conditions      = None
  52      Armor           = TankArmor
  53      DamageFX        = TankDamageFX
  54    End
  55    BuildCost       = 800
  56    BuildTime       = 10.0          ;in seconds    
  57    VisionRange     = 150
  58    ShroudClearingRange = 300
  59    Prerequisites
  60      Object = ChinaWarFactory
  61    End
  62  
  63    ExperienceValue = 100 100 200 400    ;Experience point value at each level
  64    ExperienceRequired = 0 200 300 600 ;Experience points needed to gain each level
  65    IsTrainable = Yes             ;Can gain experience
  66    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
  67    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
  68    CommandSet       = ChinaVehicleBattleMasterCommandSet
  69  
  70    ; *** AUDIO Parameters ***
  71    VoiceSelect = BattleMasterTankVoiceSelect
  72    VoiceMove = BattleMasterTankVoiceMove
  73    VoiceGuard = BattleMasterTankVoiceMove
  74    VoiceAttack = BattleMasterTankVoiceAttack
  75    SoundMoveStart = BattleMasterTankMoveStart
  76    SoundMoveStartDamaged = BattleMasterTankMoveStart
  77  
  78    UnitSpecificSounds
  79      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
  80      VoiceCreate          = BattleMasterTankVoiceCreate
  81      TurretMoveStart = NoSound
  82      TurretMoveLoop = TurretMoveLoop
  83      VoiceCrush = BattleMasterTankVoiceCrush
  84      VoiceEnter = BattleMasterTankVoiceMove
  85    End
  86  
  87    ; *** ENGINEERING Parameters ***
  88    RadarPriority = UNIT
  89    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SCORE
  90  
  91    Body = ActiveBody ModuleTag_02
  92      MaxHealth       = 400.0
  93      InitialHealth   = 400.0
  94  
  95      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
  96      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
  97      SubdualDamageCap = 800
  98      SubdualDamageHealRate = 500
  99      SubdualDamageHealAmount = 50
 100    End
 101  
 102    Behavior = AIUpdateInterface ModuleTag_03
 103      Turret
 104        TurretTurnRate = 120   ; turn rate, in degrees per sec
 105        ControlledWeaponSlots = PRIMARY
 106      End
 107      AutoAcquireEnemiesWhenIdle = Yes
 108    End
 109  
 110    Locomotor = SET_NORMAL BattleMasterLocomotor
 111    Locomotor = SET_NORMAL_UPGRADED NuclearBattleMasterLocomotor
 112  
 113    Behavior = HordeUpdate ModuleTag_04
 114      RubOffRadius = 150    ; if I am this close to a real hordesman, I will get to be an honorary hordesman
 115      UpdateRate = 1000     ; how often to recheck horde status (msec)
 116      Radius = 75           ; how close other units must be to us to count towards our horde-ness (~30 feet or so)
 117      KindOf = VEHICLE      ; what KindOf's must match to count towards horde-ness
 118      AlliesOnly = Yes      ; do we only count allies towards horde status? 
 119      ExactMatch = Yes      ; do we only count units of our exact same type towards horde status? (overrides kindof)
 120      Count = 5             ; how many units must be within Radius to grant us horde-ness
 121      Action = HORDE        ; when horde-ing, grant us the HORDE bonus
 122    End
 123  
 124    Behavior = PhysicsBehavior ModuleTag_05
 125      Mass = 40.0
 126    End
 127  
 128    Behavior = FireWeaponWhenDeadBehavior ModuleTag_06
 129      DeathWeapon   = NuclearTankDeathWeapon
 130      StartsActive  = No                        ; turned on by upgrade
 131      TriggeredBy   = Upgrade_ChinaNuclearTanks
 132    End
 133    Behavior = LocomotorSetUpgrade ModuleTag_07
 134      TriggeredBy = Upgrade_ChinaNuclearTanks
 135    End
 136  
 137    Behavior = VeterancyGainCreate ModuleVet_01
 138      StartingLevel = ELITE
 139      ScienceRequired = SCIENCE_BattlemasterTraining
 140    End
 141  
 142    ; A crushing defeat
 143    Behavior = DestroyDie ModuleTag_08
 144      DeathTypes = NONE +CRUSHED +SPLATTED
 145    End
 146    Behavior = FXListDie ModuleTag_09
 147      DeathTypes = NONE +CRUSHED +SPLATTED
 148      DeathFX = FX_CarCrush
 149    End
 150    Behavior = CreateObjectDie ModuleTag_10
 151      DeathTypes = NONE +CRUSHED +SPLATTED
 152      CreationList = OCL_CrusaderTank_CrushEffect
 153    End
 154    Behavior = CreateCrateDie ModuleTag_11
 155      CrateData = SalvageCrateData
 156      ;CrateData = EliteTankCrateData
 157      ;CrateData = HeroicTankCrateData
 158    End
 159  
 160  
 161    Behavior = SlowDeathBehavior ModuleTag_12
 162      DeathTypes = ALL -CRUSHED -SPLATTED
 163      ProbabilityModifier = 25
 164      DestructionDelay = 200
 165      DestructionDelayVariance = 100
 166      OCL = FINAL    OCL_ChinaTankBattleMasterDebris
 167      FX  = FINAL    FX_BattleMasterExplosionOneFinal
 168    End
 169  
 170    Behavior = TransitionDamageFX ModuleTag_13
 171      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01
 172      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
 173    End
 174  
 175    Behavior = FlammableUpdate ModuleTag_21
 176      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
 177      AflameDamageAmount = 3       ; taking this much damage...
 178      AflameDamageDelay = 500       ; this often.
 179    End
 180  
 181    Geometry = BOX
 182    GeometryMajorRadius = 13.0
 183    GeometryMinorRadius = 9.0
 184    GeometryHeight = 10     
 185    GeometryIsSmall = Yes
 186    Shadow = SHADOW_VOLUME    
 187    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
 188  
 189  End
 190  
 191  
 192  
 193  
 194  
 195  
 196  ;------------------------------------------------------------------------------
 197  Object ChinaTankOverlord
 198  
 199    ; *** ART Parameters ***
 200    SelectPortrait         = SNOverlord_L
 201    ButtonImage            = SNOverlord
 202    
 203    UpgradeCameo1 = Upgrade_ChinaUraniumShells
 204    UpgradeCameo2 = Upgrade_ChinaNuclearTanks
 205    UpgradeCameo3 = Upgrade_ChinaOverlordBattleBunker
 206    UpgradeCameo4 = Upgrade_ChinaOverlordGattlingCannon
 207    UpgradeCameo5 = Upgrade_ChinaOverlordPropagandaTower
 208    
 209    
 210    Draw = W3DOverlordTankDraw ModuleTag_01
 211      ConditionState        = NONE
 212        Model               = NVOvrlrd
 213        Animation           = NVOvrlrd.NVOvrlrd
 214        AnimationMode       = LOOP
 215        Turret              = Turret01
 216        WeaponFireFXBone    = PRIMARY Muzzle
 217        WeaponRecoilBone    = PRIMARY Barrel
 218        WeaponMuzzleFlash   = PRIMARY MuzzleFX
 219        WeaponLaunchBone = PRIMARY Muzzle
 220      End
 221      ConditionState        = REALLYDAMAGED
 222        Model               = NVOvrlrd_d
 223        Animation           = NVOvrlrd_d.NVOvrlrd_d
 224        AnimationMode       = LOOP
 225        Turret              = Turret01
 226        WeaponFireFXBone    = PRIMARY Muzzle
 227        WeaponRecoilBone    = PRIMARY Barrel
 228        WeaponMuzzleFlash   = PRIMARY MuzzleFX
 229        WeaponLaunchBone = PRIMARY Muzzle
 230      End
 231  
 232      ConditionState        = RUBBLE
 233        Model               = NVOvrlrd_d
 234        Turret              = Turret01
 235        WeaponFireFXBone    = PRIMARY Muzzle
 236        WeaponRecoilBone    = PRIMARY Barrel
 237        WeaponMuzzleFlash   = PRIMARY MuzzleFX
 238        WeaponLaunchBone = PRIMARY Muzzle
 239      End
 240  
 241      TrackMarks           = EXTnkTrack.tga
 242      OkToChangeModelColor = Yes
 243      TreadAnimationRate = 2.0;  amount of tread texture to move per second
 244      TreadDriveSpeedFraction = 0.3  ; fraction of locomotor speed below which treads stop moving.
 245      TreadPivotSpeedFraction = 0.6  ; fraction of locomotor speed below which we allow pivoting.
 246    End
 247  
 248    ; ***DESIGN parameters ***
 249    DisplayName         = OBJECT:Overlord
 250    Side                = China
 251    EditorSorting       = VEHICLE
 252    TransportSlotCount  = 3                 ;how many "slots" we take in a transport (0 == not transportable)
 253    WeaponSet
 254      Conditions        = None 
 255      Weapon            = PRIMARY OverlordTankGun
 256    End
 257    WeaponSet
 258      Conditions        = PLAYER_UPGRADE
 259      Weapon            = PRIMARY OverlordTankGun
 260      Weapon            = SECONDARY GattlingBuildingGunAirDummy ;Dummy weapon that allows manual targeting of air units outside range
 261                                                                ;gattling cannon upgrade has been made.
 262    End
 263    ArmorSet
 264      Conditions        = None
 265      Armor             = TankArmor
 266      DamageFX          = TankDamageFX
 267    End
 268    BuildCost       = 2000
 269    BuildTime       = 20.0          ;in seconds    
 270    VisionRange     = 150
 271    ShroudClearingRange = 200
 272    Prerequisites
 273      Object = ChinaWarFactory
 274      Object = ChinaPropagandaCenter
 275    End
 276  
 277    ExperienceValue = 200 200 400 600   ;Experience point value at each level
 278    ExperienceRequired = 0 400 600 1200  ;Experience points needed to gain each level
 279    IsTrainable = Yes             ;Can gain experience
 280    CrusherLevel           = 3  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
 281    CrushableLevel         = 3  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
 282    CommandSet = ChinaTankOverlordDefaultCommandSet
 283  
 284    ; *** AUDIO Parameters ***
 285    VoiceSelect = OverlordTankVoiceSelect
 286    SoundMoveStart = OverlordTankMoveStart
 287    SoundMoveStartDamaged = OverlordTankMoveStart
 288    VoiceMove = OverlordTankVoiceMove
 289    VoiceGuard = OverlordTankVoiceMove
 290    VoiceAttack = OverlordTankVoiceAttack
 291  
 292    UnitSpecificSounds
 293      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
 294      VoiceCreate          = OverlordTankVoiceCreate
 295      TurretMoveStart = NoSound
 296      TurretMoveLoop = OverlordTankTurretMoveLoop
 297      VoiceCrush = OverlordTankVoiceCrush
 298      VoiceEnter = OverlordTankVoiceMove
 299      VoiceUnload     = OverlordTankVoiceUnload
 300    End
 301  
 302    ; *** ENGINEERING Parameters ***
 303    RadarPriority = UNIT
 304    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SCORE HUGE_VEHICLE
 305    
 306    Body = ActiveBody ModuleTag_02
 307      MaxHealth       = 1100.0
 308      InitialHealth   = 1100.0
 309  
 310      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
 311      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
 312      SubdualDamageCap = 2200
 313      SubdualDamageHealRate = 500
 314      SubdualDamageHealAmount = 50
 315    End
 316  
 317    Behavior = TransportAIUpdate ModuleTag_03
 318      Turret
 319        TurretTurnRate = 60 ;30 ;15   // turn rate, in degrees per sec
 320        ControlledWeaponSlots = PRIMARY
 321      End
 322      AutoAcquireEnemiesWhenIdle = Yes
 323    End
 324  
 325    Locomotor = SET_NORMAL OverlordLocomotor
 326    Locomotor = SET_NORMAL_UPGRADED NuclearOverlordLocomotor
 327  
 328    Behavior = FireWeaponWhenDeadBehavior ModuleTag_04
 329      DeathWeapon   = NuclearTankDeathWeapon
 330      StartsActive  = No                        ; turned on by upgrade
 331      TriggeredBy   = Upgrade_ChinaNuclearTanks
 332    End
 333    Behavior = LocomotorSetUpgrade ModuleTag_05
 334      TriggeredBy = Upgrade_ChinaNuclearTanks
 335    End
 336  
 337    Behavior = OverlordContain ModuleTag_06 ; Like Transport, but when full, passes transport queries along to first passenger (redirects like tunnel) 
 338      Slots                 = 1
 339      DamagePercentToUnits        = 100%
 340      AllowInsideKindOf     = PORTABLE_STRUCTURE
 341      PassengersAllowedToFire = Yes
 342      PassengersInTurret = Yes ; My passengers ride in my turret, that's where the Firepoint bones are
 343      ExperienceSinkForRider = Yes ; I get the Exp for things my turret friend kills
 344    End
 345  
 346    Behavior = ObjectCreationUpgrade ModuleTag_07
 347      UpgradeObject = OCL_OverlordGattlingCannon
 348      TriggeredBy   = Upgrade_ChinaOverlordGattlingCannon
 349      ConflictsWith = Upgrade_ChinaOverlordPropagandaTower Upgrade_ChinaOverlordBattleBunker
 350    End
 351    Behavior = WeaponSetUpgrade ModuleTag_WeaponSetUpgrade01
 352      TriggeredBy = Upgrade_ChinaOverlordGattlingCannon
 353      ConflictsWith = Upgrade_ChinaOverlordPropagandaTower Upgrade_ChinaOverlordBattleBunker
 354    End
 355    Behavior = ObjectCreationUpgrade ModuleTag_08
 356      UpgradeObject = OCL_OverlordPropagandaTower
 357      TriggeredBy   = Upgrade_ChinaOverlordPropagandaTower
 358      ConflictsWith = Upgrade_ChinaOverlordGattlingCannon Upgrade_ChinaOverlordBattleBunker
 359    End
 360    Behavior = ObjectCreationUpgrade ModuleTag_09
 361      UpgradeObject = OCL_OverlordBattleBunker
 362      TriggeredBy   = Upgrade_ChinaOverlordBattleBunker
 363      ConflictsWith = Upgrade_ChinaOverlordGattlingCannon Upgrade_ChinaOverlordPropagandaTower
 364    End
 365    Behavior = ProductionUpdate ModuleTag_10
 366      MaxQueueEntries = 1; So you can't build multiple upgrades in the same frame
 367    End
 368    Behavior = CommandSetUpgrade ModuleTag_11
 369      CommandSet = ChinaTankOverlordGattlingCannonCommandSet
 370      TriggeredBy   = Upgrade_ChinaOverlordGattlingCannon
 371      ConflictsWith = Upgrade_ChinaOverlordPropagandaTower Upgrade_ChinaOverlordBattleBunker
 372    End
 373    Behavior = CommandSetUpgrade ModuleTag_12
 374      CommandSet = ChinaTankOverlordPropagandaTowerCommandSet
 375      TriggeredBy   = Upgrade_ChinaOverlordPropagandaTower
 376      ConflictsWith = Upgrade_ChinaOverlordGattlingCannon Upgrade_ChinaOverlordBattleBunker
 377    End
 378    Behavior = CommandSetUpgrade ModuleTag_13
 379      CommandSet = ChinaTankOverlordBattleBunkerCommandSet
 380      TriggeredBy   = Upgrade_ChinaOverlordBattleBunker
 381      ConflictsWith = Upgrade_ChinaOverlordGattlingCannon Upgrade_ChinaOverlordPropagandaTower
 382    End
 383  
 384    Behavior = PhysicsBehavior ModuleTag_14
 385      Mass = 50.0
 386    End
 387  
 388  
 389  
 390    ; Smoke for a bit then explode
 391  ;  Behavior = SlowDeathBehavior
 392  ;;    ProbabilityModifier = 25
 393  ;    DestructionDelay = 1500
 394  ;    DestructionDelayVariance = 500
 395  ;    FX  = INITIAL   FX_OverlordSmoke
 396  ;    OCL = FINAL     OCL_ChinaTankOverlordDebris
 397  ;    FX  = FINAL     FX_GenericTankDeathExplosion
 398  ;  End
 399    
 400    ; Catch fire, and explode death
 401  ;  Behavior = SlowDeathBehavior
 402  ;;    ProbabilityModifier = 25
 403  ;    DestructionDelay = 2000
 404  ;    DestructionDelayVariance = 300
 405  ;    FX  = INITIAL  FX_CrusaderCatchFire
 406  ;    OCL = FINAL    OCL_ChinaTankOverlordDebris
 407  ;    FX  = FINAL    FX_GenericTankDeathExplosion 
 408  ;  End
 409  
 410    ; Just explode death
 411    Behavior = SlowDeathBehavior ModuleTag_16
 412      ProbabilityModifier = 25
 413      DestructionDelay = 200
 414      DestructionDelayVariance = 100
 415      OCL = FINAL    OCL_ChinaTankOverlordDebris
 416      FX  = FINAL    FX_OverlordExplosionOneFinal
 417    End
 418    Behavior = CreateCrateDie ModuleTag_17
 419      CrateData = SalvageCrateData
 420      ;CrateData = EliteTankCrateData
 421      ;CrateData = HeroicTankCrateData
 422    End
 423  
 424    Behavior = TransitionDamageFX ModuleTag_18
 425      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01
 426      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_OverlordDamageTransition
 427    End
 428  
 429    Behavior = FlammableUpdate ModuleTag_21
 430      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
 431      AflameDamageAmount = 3       ; taking this much damage...
 432      AflameDamageDelay = 500       ; this often.
 433    End
 434  
 435    Geometry = BOX
 436    GeometryMajorRadius = 26.0
 437    GeometryMinorRadius = 13.0
 438    GeometryHeight = 15.0     
 439    GeometryIsSmall = No
 440    Shadow = SHADOW_VOLUME     
 441    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
 442  
 443  End
 444  
 445  ;------------------------------------------------------------------------------
 446  Object ChinaTankOverlordGattlingCannon
 447  
 448    ; *** ART Parameters ***
 449    SelectPortrait         = SNGatTower_L
 450    ButtonImage            = SNGatTower
 451    
 452    ;UpgradeCameo1 = Upgrade_Nationalism
 453    UpgradeCameo1 = Upgrade_ChinaUraniumShells
 454    UpgradeCameo2 = Upgrade_ChinaNuclearTanks
 455    ;UpgradeCameo4 = NONE
 456    UpgradeCameo5 = Upgrade_ChinaOverlordGattlingCannon
 457    
 458    
 459    Draw                    = W3DDependencyModelDraw ModuleTag_01
 460      OkToChangeModelColor  = Yes
 461      AttachToBoneInContainer = FIREPOINT01
 462  
 463      DefaultConditionState
 464        Model               = NVOvrlrd_G
 465        Turret              = TURRET01
 466        TurretPitch         = TURRETEL
 467        WeaponFireFXBone    = PRIMARY Muzzle
 468        WeaponMuzzleFlash   = PRIMARY MuzzleFX
 469        WeaponFireFXBone    = SECONDARY Muzzle
 470        WeaponMuzzleFlash   = SECONDARY MuzzleFX
 471      End
 472      ConditionState        = CONTINUOUS_FIRE_SLOW
 473        Model               = NVOvrlrd_G
 474        Animation           = NVOvrlrd_G.NVOvrlrd_G
 475        AnimationMode       = LOOP
 476        AnimationSpeedFactorRange = 0.1 0.1 ;set this state to animate  s l o w l y
 477      End
 478       ConditionState       = CONTINUOUS_FIRE_MEAN
 479        Model               = NVOvrlrd_G
 480        Animation           = NVOvrlrd_G.NVOvrlrd_G
 481        AnimationMode       = LOOP
 482        AnimationSpeedFactorRange = 0.2 0.2 ;set this state to animate  medium-fast
 483      End
 484      ConditionState        = CONTINUOUS_FIRE_FAST
 485        Model               = NVOvrlrd_G
 486        Animation           = NVOvrlrd_G.NVOvrlrd_G
 487        AnimationMode       = LOOP
 488        AnimationSpeedFactorRange = 0.3 0.3 ;set this state to animate  vryfst
 489        ParticleSysBone    = Muzzle01 GattlingMuzzleSmoke
 490        ParticleSysBone    = Muzzle02 GattlingMuzzleSmoke
 491      End
 492  
 493      ConditionState        = REALLYDAMAGED 
 494        Model               = NVOvrlrd_GD
 495        Turret              = TURRET01
 496        TurretPitch         = TURRETEL
 497        WeaponFireFXBone    = PRIMARY Muzzle
 498        WeaponMuzzleFlash   = PRIMARY MuzzleFX
 499        WeaponFireFXBone    = SECONDARY Muzzle
 500        WeaponMuzzleFlash   = SECONDARY MuzzleFX
 501        ParticleSysBone     = Smoke01 SmokeFactionMedium
 502        ParticleSysBone     = Smoke02 SmokeFactionMedium
 503        ParticleSysBone     = Smoke03 SmokeFactionMedium
 504        ParticleSysBone     = SparkM01 SparksMedium
 505        ParticleSysBone     = SparkM02 SparksMedium
 506      End
 507      ConditionState        = CONTINUOUS_FIRE_SLOW REALLYDAMAGED 
 508        Model               = NVOvrlrd_GD
 509        Animation           = NVOvrlrd_G.NVOvrlrd_G
 510        AnimationMode       = LOOP
 511        AnimationSpeedFactorRange = 0.1 0.1 ;set this state to animate  s l o w l y
 512      End
 513       ConditionState       = CONTINUOUS_FIRE_MEAN REALLYDAMAGED 
 514        Model               = NVOvrlrd_GD
 515        Animation           = NVOvrlrd_G.NVOvrlrd_G
 516        AnimationMode       = LOOP
 517        AnimationSpeedFactorRange = 0.2 0.2 ;set this state to animate  medium-fast
 518      End
 519      ConditionState        = CONTINUOUS_FIRE_FAST REALLYDAMAGED 
 520        Model               = NVOvrlrd_GD
 521        Animation           = NVOvrlrd_G.NVOvrlrd_G
 522        AnimationMode       = LOOP
 523        AnimationSpeedFactorRange = 0.3 0.3 ;set this state to animate  vryfst
 524        ParticleSysBone    = Muzzle01 GattlingMuzzleSmoke
 525        ParticleSysBone    = Muzzle02 GattlingMuzzleSmoke
 526      End
 527  
 528    End
 529  
 530    ; ***DESIGN parameters ***
 531    Side             = China
 532    EditorSorting    = SYSTEM
 533    TransportSlotCount = 1
 534    WeaponSet
 535      Conditions          = None 
 536      Weapon              = PRIMARY   GattlingBuildingGun
 537      Weapon              = SECONDARY GattlingBuildingGunAir
 538      PreferredAgainst    = SECONDARY BALLISTIC_MISSILE AIRCRAFT
 539    End
 540    
 541    ArmorSet
 542      Conditions     = None
 543      Armor          = InvulnerableAllArmor ; We can't be hurt on the field.  We share damage from the Overlord with his damage module
 544    End
 545    VisionRange     = 200
 546  
 547    ; *** AUDIO Parameters ***
 548    UnitSpecificSounds
 549      TurretMoveStart = NoSound
 550      TurretMoveLoop  = NoSound ;TurretMoveLoop
 551      VoiceRapidFire  = NoSound
 552    End
 553  
 554    ; *** ENGINEERING Parameters ***
 555    KindOf            = PRELOAD PORTABLE_STRUCTURE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CLICK_THROUGH IGNORED_IN_GUI
 556      Body            = StructureBody ModuleTag_02
 557      MaxHealth       = 100.0
 558      InitialHealth   = 100.0
 559    End
 560  
 561    Behavior = AIUpdateInterface ModuleTag_03
 562      Turret
 563        ControlledWeaponSlots = PRIMARY SECONDARY
 564        TurretTurnRate      = 60   // turn rate, in degrees per sec
 565        TurretPitchRate     = 60
 566        AllowsPitch         = Yes
 567      End
 568      AutoAcquireEnemiesWhenIdle = Yes 
 569    End
 570  
 571    Behavior             = DestroyDie ModuleTag_04
 572      ;nothing
 573    End
 574  
 575    Behavior = WeaponBonusUpgrade ModuleTag_05
 576      TriggeredBy = Upgrade_ChinaChainGuns
 577    End
 578  
 579    Behavior = StealthDetectorUpdate ModuleTag_06
 580      DetectionRate   = 500   ; how often to rescan for stealthed things in my sight (msec)
 581      ;DetectionRange = ??? ;   Defaults to VisionRange
 582      CanDetectWhileContained   = Yes
 583    End
 584  
 585    Geometry            = BOX
 586    GeometryMajorRadius = 8.0
 587    GeometryMinorRadius = 8.0
 588    GeometryHeight      = 9.0
 589    GeometryIsSmall     = No      
 590    Shadow              = SHADOW_VOLUME
 591    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
 592  
 593  End
 594  
 595  ;------------------------------------------------------------------------------
 596  Object ChinaTankOverlordPropagandaTower
 597  
 598    ; *** ART Parameters ***
 599    SelectPortrait         = SNPropSpeaker_L
 600    ButtonImage            = SNPropSpeaker
 601    
 602    UpgradeCameo1 = Upgrade_Nationalism
 603    UpgradeCameo2 = Upgrade_ChinaUraniumShells
 604    UpgradeCameo3 = Upgrade_ChinaNuclearTanks
 605    ;UpgradeCameo4 = NONE
 606    UpgradeCameo5 = Upgrade_ChinaOverlordPropagandaTower
 607    
 608    Draw                    = W3DDependencyModelDraw ModuleTag_01
 609      OkToChangeModelColor  = Yes
 610      AttachToBoneInContainer = FIREPOINT01
 611  
 612      ConditionState = NONE
 613        Model         = NVOvrlrd_S
 614        Animation     = NVOvrlrd_S.NVOvrlrd_S
 615        AnimationMode = LOOP
 616      End
 617      ConditionState = REALLYDAMAGED
 618        Model         = NVOvrlrd_SD
 619        ParticleSysBone = Smoke01 SmolderingSmoke
 620        ParticleSysBone = Smoke02 SmolderingSmoke
 621        ParticleSysBone = Flame01 SmolderingFire
 622        ParticleSysBone = Flame01 SmolderingFlameCore
 623        ParticleSysBone = Spark01 LiveWireSparks
 624      End
 625      ; night
 626      ConditionState = NIGHT
 627        Model         = NVOvrlrd_S
 628        Animation     = NVOvrlrd_S.NVOvrlrd_S
 629        AnimationMode = LOOP
 630      End 
 631    End
 632  
 633    PlacementViewAngle = -45
 634  
 635    ; ***DESIGN parameters ***
 636    Side             = China
 637    EditorSorting    = SYSTEM
 638    TransportSlotCount = 1
 639    
 640    ArmorSet
 641      Conditions     = None
 642      Armor          = InvulnerableAllArmor ; We can't be hurt on the field.  We share damage from the Overlord with his damage module
 643    End
 644    VisionRange     = 200
 645  
 646    ; *** AUDIO Parameters ***
 647    UnitSpecificSounds
 648     TurretMoveStart = NoSound
 649      TurretMoveLoop  = NoSound ;TurretMoveLoop
 650    End
 651  
 652    ; *** ENGINEERING Parameters ***
 653    KindOf            = PRELOAD PORTABLE_STRUCTURE CAN_ATTACK CLICK_THROUGH IGNORED_IN_GUI
 654      Body            = StructureBody ModuleTag_02
 655      MaxHealth       = 100.0
 656      InitialHealth   = 100.0
 657    End
 658  
 659    Behavior = AIUpdateInterface ModuleTag_03
 660      ;<No Data>
 661    End
 662    
 663    Behavior        = PropagandaTowerBehavior ModuleTag_04
 664      Radius                = 150.0
 665      DelayBetweenUpdates   = 2000 ; in milliseconds
 666      HealPercentEachSecond = 1%   ; get this % of max health every second 
 667      PulseFX               = FX_OverlordPropagandaTowerPropagandaPulse ;plays as often as DelayBetweenUpdates
 668      UpgradeRequired       = Upgrade_ChinaSubliminalMessaging
 669      UpgradedHealPercentEachSecond = 2%   ; get this % of max health every second 
 670      UpgradedPulseFX       = FX_OverlordPropagandaTowerSubliminalPulse ;plays as often as DelayBetweenUpdates
 671  
 672    End
 673  
 674    Behavior             = DestroyDie ModuleTag_05
 675      ;<No Data>
 676    End
 677  
 678    Geometry            = BOX
 679    GeometryMajorRadius = 6.0
 680    GeometryMinorRadius = 6.0
 681    GeometryHeight      = 10.0
 682    GeometryIsSmall     = No      
 683    Shadow              = SHADOW_VOLUME
 684    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
 685  
 686  End
 687  
 688  ;------------------------------------------------------------------------------
 689  Object ChinaTankOverlordBattleBunker
 690  
 691    ; *** ART Parameters ***
 692    SelectPortrait         = SNBunker_L
 693    ButtonImage            = SNBunker
 694    
 695    ;UpgradeCameo1 = Upgrade_Nationalism
 696    UpgradeCameo1 = Upgrade_ChinaUraniumShells
 697    UpgradeCameo2 = Upgrade_ChinaNuclearTanks
 698    ;UpgradeCameo4 = NONE
 699    UpgradeCameo5 = Upgrade_ChinaOverlordBattleBunker
 700    
 701    Draw                    = W3DDependencyModelDraw ModuleTag_01
 702      OkToChangeModelColor  = Yes
 703      AttachToBoneInContainer = FIREPOINT01
 704  
 705      ConditionState = NONE
 706        Model         = NVOvrlrd_B
 707      End
 708      ConditionState = REALLYDAMAGED
 709        Model         = NVOvrlrd_BD
 710        ParticleSysBone = Smoke01 SmolderingSmoke
 711        ParticleSysBone = Smoke02 SmolderingSmoke
 712        ParticleSysBone = Flame01 SmolderingFire
 713        ParticleSysBone = Flame01 SmolderingFlameCore
 714        ParticleSysBone = Spark01 LiveWireSparks
 715      End
 716      ; night
 717      ConditionState = NIGHT
 718        Model         = NVOvrlrd_B
 719      End 
 720      ConditionState = NIGHT REALLYDAMAGED
 721        Model         = NVOvrlrd_BD
 722        ParticleSysBone = Smoke01 SmolderingSmoke
 723        ParticleSysBone = Smoke02 SmolderingSmoke
 724        ParticleSysBone = Flame01 SmolderingFire
 725        ParticleSysBone = Flame01 SmolderingFlameCore
 726        ParticleSysBone = Spark01 LiveWireSparks
 727      End
 728    End
 729  
 730    PlacementViewAngle = -45
 731  
 732    ; ***DESIGN parameters ***
 733    Side             = China
 734    EditorSorting    = SYSTEM
 735    TransportSlotCount = 1
 736    
 737    ArmorSet
 738      Conditions     = None
 739      Armor          = InvulnerableAllArmor ; We can't be hurt on the field.  We share damage from the Overlord with his damage module
 740    End
 741    VisionRange     = 200
 742  
 743    ; *** AUDIO Parameters ***
 744    UnitSpecificSounds
 745      TurretMoveStart = NoSound
 746      TurretMoveLoop  = NoSound ;TurretMoveLoop
 747      VoiceUnload     = OverlordTankVoiceUnload
 748    End
 749  
 750    ; *** ENGINEERING Parameters ***
 751    KindOf            = PRELOAD PORTABLE_STRUCTURE CLICK_THROUGH IGNORED_IN_GUI
 752      Body            = StructureBody ModuleTag_02
 753      MaxHealth       = 100.0
 754      InitialHealth   = 100.0
 755    End
 756  
 757    Behavior = TransportContain ModuleTag_03
 758      Slots                 = 5
 759      PassengersAllowedToFire = Yes
 760      AllowInsideKindOf  = INFANTRY
 761      EnterSound      = GarrisonEnter
 762      ExitSound       = GarrisonExit
 763      DamagePercentToUnits  = 50%
 764    End
 765  
 766    Behavior             = DestroyDie ModuleTag_04
 767      ;nothing
 768    End
 769  
 770    Geometry            = BOX
 771    GeometryMajorRadius = 6.0
 772    GeometryMinorRadius = 6.0
 773    GeometryHeight      = 10.0
 774    GeometryIsSmall     = No      
 775    Shadow              = SHADOW_VOLUME
 776    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
 777  
 778  End
 779  
 780  
 781  
 782  
 783  ;------------------------------------------------------------------------------
 784  ;China Dragon Tank
 785  Object ChinaTankDragon
 786  
 787    ; *** ART Parameters ***
 788    SelectPortrait         = SNDragonTank_L
 789    ButtonImage            = SNDragonTank
 790    
 791    UpgradeCameo1 = Upgrade_ChinaBlackNapalm
 792    ;UpgradeCameo2 = NONE
 793    ;UpgradeCameo3 = NONE
 794    ;UpgradeCameo4 = NONE
 795    ;UpgradeCameo5 = NONE
 796    
 797    Draw = W3DTankDraw ModuleTag_01
 798      OkToChangeModelColor = Yes
 799  
 800      DefaultConditionState
 801        Model = NVDragon
 802        Turret = Turret
 803        TurretPitch = TURRETEL
 804        WeaponFireFXBone = PRIMARY WeaponA
 805        WeaponLaunchBone = PRIMARY WeaponA
 806        WeaponFireFXBone = SECONDARY WeaponA
 807        WeaponLaunchBone = SECONDARY WeaponA
 808      End
 809      ConditionState = REALLYDAMAGED
 810        Model = NVDragon_D
 811        Turret = Turret
 812        TurretPitch = TURRETEL
 813        WeaponFireFXBone = PRIMARY WeaponA
 814        WeaponLaunchBone = PRIMARY WeaponA
 815        WeaponFireFXBone = SECONDARY WeaponA
 816        WeaponLaunchBone = SECONDARY WeaponA
 817      End
 818      ConditionState = RUBBLE
 819        Model = NVDragon_D
 820        Turret = Turret
 821        TurretPitch = TURRETEL
 822        WeaponFireFXBone = PRIMARY WeaponA
 823        WeaponLaunchBone = PRIMARY WeaponA
 824        WeaponFireFXBone = SECONDARY WeaponA
 825        WeaponLaunchBone = SECONDARY WeaponA
 826      End
 827      
 828      TrackMarks              = EXTnkTrack.tga
 829      TreadAnimationRate      = 2.0  ; amount of tread texture to move per second
 830      TreadDriveSpeedFraction = 0.3  ; fraction of locomotor speed below which treads stop moving.
 831      TreadPivotSpeedFraction = 0.6  ; fraction of locomotor speed below which we allow pivoting.
 832    End
 833  
 834    ; ***DESIGN parameters ***
 835    DisplayName      = OBJECT:Dragon
 836    Side = China
 837    EditorSorting   = VEHICLE
 838    TransportSlotCount = 3                 ;how many "slots" we take in a transport (0 == not transportable)
 839  
 840    WeaponSet
 841      Conditions = None 
 842      Weapon = PRIMARY DragonTankFlameWeapon
 843      Weapon = SECONDARY DragonTankFireWallWeapon
 844      AutoChooseSources = SECONDARY NONE
 845    End
 846    WeaponSet
 847      Conditions = PLAYER_UPGRADE 
 848      Weapon = PRIMARY DragonTankFlameWeaponUpgraded
 849      Weapon = SECONDARY DragonTankFireWallWeaponUpgraded
 850      AutoChooseSources = SECONDARY NONE
 851      WeaponLockSharedAcrossSets = Yes ; This set is so similar to the default set that it can hold the weapon lock
 852    End
 853  
 854    ArmorSet
 855      Conditions      = None
 856      Armor           = DragonTankArmor
 857      DamageFX        = TankDamageFX
 858    End
 859    BuildCost       = 800
 860    BuildTime       = 10.0          ;in seconds    
 861    VisionRange     = 100
 862    ShroudClearingRange = 200
 863    Prerequisites
 864      Object = ChinaWarFactory
 865    End
 866  
 867    ExperienceValue = 50 50 100 150    ;Experience point value at each level
 868    ExperienceRequired = 0 100 150 300  ;Experience points needed to gain each level
 869    IsTrainable = Yes             ;Can gain experience
 870    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
 871    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
 872    CommandSet    = ChinaTankDragonCommandSet
 873  
 874    ; *** AUDIO Parameters ***
 875    VoiceSelect = DragonTankVoiceSelect
 876    VoiceMove = DragonTankVoiceMove
 877    VoiceGuard = DragonTankVoiceMove
 878    VoiceAttack = DragonTankVoiceAttack
 879    SoundMoveStart = DragonTankMoveStart
 880    SoundMoveStartDamaged = DragonTankMoveStart
 881  
 882    UnitSpecificSounds
 883      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
 884      VoiceCreate     = DragonTankVoiceCreate
 885      TurretMoveStart = NoSound
 886      TurretMoveLoop = TurretMoveLoop
 887      VoiceEnter = DragonTankVoiceMove
 888      VoiceFlameLocation = DragonTankVoiceFireStorm
 889    End
 890  
 891  
 892    ; *** ENGINEERING Parameters ***
 893    RadarPriority = UNIT
 894    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SCORE
 895    
 896    Body = ActiveBody ModuleTag_02
 897      MaxHealth       = 280.0
 898      InitialHealth   = 280.0
 899  
 900      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
 901      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
 902      SubdualDamageCap = 560
 903      SubdualDamageHealRate = 500
 904      SubdualDamageHealAmount = 50
 905    End
 906    Behavior = AIUpdateInterface ModuleTag_03
 907      Turret
 908        TurretTurnRate = 120
 909        TurretPitchRate = 120
 910        AllowsPitch = Yes
 911        MinPhysicalPitch = -15
 912  
 913        TurretFireAngleSweep = PRIMARY 10
 914        TurretFireAngleSweep = SECONDARY 60
 915        TurretSweepSpeedModifier = PRIMARY 0.5    ; Sweep slower than you turn (aim for 30 for art)
 916        TurretSweepSpeedModifier = SECONDARY 2.0  ; Sweep faster than you turn
 917        ControlledWeaponSlots = PRIMARY SECONDARY
 918      End
 919      AutoAcquireEnemiesWhenIdle = Yes
 920    End
 921    Locomotor = SET_NORMAL DragonLocomotor
 922    Behavior = PhysicsBehavior ModuleTag_04
 923      Mass = 50.0
 924    End
 925  
 926  
 927    Behavior = WeaponSetUpgrade ModuleTag_05
 928      TriggeredBy = Upgrade_ChinaBlackNapalm
 929    End
 930  
 931    ; A crushing defeat
 932    Behavior = DestroyDie ModuleTag_06
 933      DeathTypes = NONE +CRUSHED +SPLATTED
 934    End
 935    Behavior = FXListDie ModuleTag_07
 936      DeathTypes = NONE +CRUSHED +SPLATTED
 937      DeathFX = FX_CarCrush
 938    End
 939    Behavior = CreateObjectDie ModuleTag_08
 940      DeathTypes = NONE +CRUSHED +SPLATTED
 941      CreationList = OCL_CrusaderTank_CrushEffect
 942    End
 943    Behavior = CreateCrateDie ModuleTag_09
 944      CrateData = SalvageCrateData
 945      ;CrateData = EliteTankCrateData
 946      ;CrateData = HeroicTankCrateData
 947    End
 948  
 949  
 950    ; just explode death
 951    Behavior = SlowDeathBehavior ModuleTag_10
 952      DeathTypes = ALL -CRUSHED -SPLATTED
 953  ;    ProbabilityModifier = 33
 954      DestructionDelay = 500
 955      DestructionDelayVariance = 500
 956      FX  = INITIAL  FX_BattleMasterExplosionOneFinal
 957      OCL = FINAL    OCL_DragonDebris
 958      FX  = FINAL    FX_DragonTankDeathExplosionFinal
 959    End
 960    
 961    ; Catch fire, and explode death
 962  ;  Behavior = SlowDeathBehavior
 963  ;    DeathTypes = ALL -CRUSHED -SPLATTED
 964  ;;    ProbabilityModifier = 33
 965  ;    DestructionDelay = 2000
 966  ;    DestructionDelayVariance = 300
 967  ;    FX  = INITIAL  FX_CrusaderCatchFire
 968  ;    OCL = FINAL    OCL_DragonDebris  
 969  ;    FX  = FINAL    FX_GenericTankDeathExplosion 
 970  ;  End
 971  
 972    ; Napalm spills out, and explode death
 973  ;  Behavior = SlowDeathBehavior
 974  ;    DeathTypes = ALL -CRUSHED -SPLATTED
 975  ;;    ProbabilityModifier = 34
 976  ;    DestructionDelay = 2000
 977  ;    DestructionDelayVariance = 300
 978  ;    FX  = INITIAL  FX_DragonNapalmSpill
 979  ;    OCL = FINAL    OCL_DragonDebris  
 980  ;    FX  = FINAL    FX_DragonTankDeathExplosionFinal
 981  ;  End
 982  
 983    ; Turret fly off death
 984  ;  Behavior = SlowDeathBehavior
 985  ;    DeathTypes = ALL -CRUSHED -SPLATTED
 986  ;;    ProbabilityModifier = 25
 987  ;    DestructionDelay = 500
 988  ;    DestructionDelayVariance = 100
 989  ;    FX  = INITIAL  FX_GenericTankDeathEffect
 990  ;    OCL = MIDPOINT OCL_DragonDebris
 991  ;    FX  = FINAL    FX_GenericTankDeathExplosionFinal
 992  ;  End
 993  
 994  
 995    Behavior = FlammableUpdate ModuleTag_12
 996      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
 997      AflameDamageAmount = 3       ; taking this much damage...
 998      AflameDamageDelay = 500       ; this often.
 999    End
1000  
1001    Behavior = TransitionDamageFX ModuleTag_13
1002  ;   ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes Psys:SmokeSmallContinuous01
1003      ReallyDamagedParticleSystem2 = Bone:Smoke RandomBone:Yes Psys:DragonTransitionFire
1004      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_DragonDamageTransition
1005    End
1006  
1007    Geometry = BOX
1008    GeometryMajorRadius = 15.0
1009    GeometryMinorRadius = 10.0
1010    GeometryHeight = 11.0   ; Height set to allow clear clipping of projectile stream  
1011    GeometryIsSmall = Yes
1012    Shadow = SHADOW_VOLUME    
1013    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
1014  
1015  End
1016  
1017  
1018  
1019  
1020  
1021  ;------------------------------------------------------------------------------
1022  Object ChinaVehicleTroopCrawler
1023  
1024    ; *** ART Parameters ***
1025    SelectPortrait         = SNTransport_L
1026    ButtonImage            = SNTransport
1027    
1028    ;UpgradeCameo1 = NONE
1029    ;UpgradeCameo2 = NONE
1030    ;UpgradeCameo3 = NONE
1031    ;UpgradeCameo4 = NONE
1032    ;UpgradeCameo5 = NONE
1033    
1034    Draw = W3DTruckDraw ModuleTag_01
1035      OkToChangeModelColor = Yes
1036      ConditionState = NONE
1037        Model = NVTCrawler
1038        ;note, the IRSonar particle system is added in StealthDetectorUpdate.cpp, not here
1039      End
1040      ConditionState       = REALLYDAMAGED RUBBLE ; THIS IS VERY IMPORTANT... DO NOT REMOVE 'RUBBLE' 
1041                                                  ; @todo find out why a non-animating model like this has such trouble matching
1042                                                  ; reallydamaged against moving against rubble, etc.
1043        Model              = NVTCrawler_D
1044      End
1045  
1046      TrackMarks = EXTireTrack.tga
1047  
1048      Dust = RocketBuggyDust
1049      DirtSpray = RocketBuggyDirtSpray
1050      ; PowerslideSpray = RocketBuggyDirtPowerSlide doesn't powerslide
1051  
1052      ; These parameters are only used if the model has a separate suspension, 
1053      ; and the locomotor has HasSuspension = Yes.
1054      LeftFrontTireBone     = Wheel01
1055      RightFrontTireBone    = Wheel08
1056      LeftRearTireBone      = Wheel03
1057      RightRearTireBone     = Wheel05
1058      MidLeftFrontTireBone  = Wheel02
1059      MidRightFrontTireBone = Wheel07
1060      MidLeftRearTireBone   = Wheel04
1061      MidRightRearTireBone  = Wheel06
1062  
1063      TireRotationMultiplier      = 0.2   ; this * speed = rotation.
1064      PowerslideRotationAddition  = 0   ; This vehicle doesn't powerslide.
1065  
1066    End
1067  
1068  
1069    ; ***DESIGN parameters ***
1070    DisplayName      = OBJECT:TroopCrawler
1071    Side = China
1072    EditorSorting   = VEHICLE
1073    TransportSlotCount = 8                 ;Just enough to fit into a Chinook.
1074    WeaponSet
1075      Conditions = None 
1076      Weapon = PRIMARY TroopCrawlerAssault
1077    End
1078    ArmorSet
1079      Conditions      = None
1080      Armor           = TankArmor
1081      DamageFX        = TankDamageFX
1082    End
1083    BuildCost       = 1400
1084    BuildTime       = 15.0          ;in seconds    
1085    VisionRange     = 175           ;Needs to see farther and match it's weapon range -- else troop crawlers will get slaughtered against tanks!
1086    ShroudClearingRange = 400
1087    Prerequisites
1088      Object = ChinaWarFactory
1089    End
1090    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
1091    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
1092    CommandSet = ChinaTroopCrawlerCommandSet
1093  
1094    ; *** AUDIO Parameters ***
1095    VoiceSelect = TroopCrawlerVoiceSelect
1096    VoiceMove = TroopCrawlerVoiceMove
1097    VoiceGuard = TroopCrawlerVoiceMove
1098    VoiceAttack = TroopCrawlerVoiceAttack
1099    SoundMoveStart = TroopCrawlerMoveStart
1100    SoundMoveStartDamaged = TroopCrawlerMoveStart
1101    SoundEnter = HumveeEnter
1102    SoundExit = HumveeExit
1103    UnitSpecificSounds
1104      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
1105      VoiceCreate     = TroopCrawlerVoiceCreate
1106      TurretMoveStart = NoSound
1107      TurretMoveLoop = TurretMoveLoop
1108      TruckLandingSound = NoSound ;RocketBuggyLand
1109      TruckPowerslideSound = NoSound ;RocketBuggyPowerslide
1110      VoiceCrush = TroopCrawlerVoiceCrush
1111      VoiceUnload   = TroopCrawlerVoiceUnload
1112      VoiceEnter = TroopCrawlerVoiceMove
1113    End
1114  
1115  
1116    ; *** ENGINEERING Parameters ***
1117    RadarPriority = UNIT
1118    KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS TRANSPORT VEHICLE SCORE
1119    
1120    Body = ActiveBody ModuleTag_02
1121      MaxHealth       = 240.0
1122      InitialHealth   = 240.0
1123  
1124      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
1125      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
1126      SubdualDamageCap = 480
1127      SubdualDamageHealRate = 500
1128      SubdualDamageHealAmount = 50
1129    End
1130    Behavior = StealthDetectorUpdate ModuleTag_03
1131      DetectionRate             = 900   ; how often to rescan for stealthed things in my sight (msec)
1132      ;DetectionRange           = ??? ;Dustin, enable this for independant balancing!
1133      CanDetectWhileGarrisoned  = No ;Garrisoned means being in a structure that you units can shoot out of.
1134      CanDetectWhileContained   = No ;Contained means being in a transport or tunnel network.
1135      PingSound                 = IRPing
1136      LoudPingSound             = IRPingLoud
1137    ;;;  IRParticleSysName         = IRDetectSonar
1138    ;;;  IRBrightParticleSysName   = IRDetectSonarBright
1139    ;;;  IRGridParticleSysName     = IRDetectGrid
1140      IRBeaconParticleSysName   = IRLenzflare
1141      IRParticleSysBone         = IRFX
1142    End
1143  
1144  ;OBSOLETE
1145  ;  Behavior = AIUpdateInterface ModuleTag_04
1146  ;    Turret
1147  ;      ControlledWeaponSlots = PRIMARY
1148  ;    End
1149  ;  End
1150    Behavior = AssaultTransportAIUpdate ModuleTag_NewAI
1151      MembersGetHealedAtLifeRatio = 0.5
1152    End
1153  
1154    Locomotor = SET_NORMAL TroopCrawlerLocomotor
1155    Behavior = PhysicsBehavior ModuleTag_05
1156      Mass = 50.0
1157    End
1158    Behavior = TransportContain ModuleTag_06
1159      Slots                 = 8
1160      InitialPayload        = ChinaInfantryRedguard 8
1161      ScatterNearbyOnExit   = No
1162      HealthRegen%PerSec    = 10
1163      DamagePercentToUnits  = 10%
1164      AllowInsideKindOf     = INFANTRY
1165      ExitDelay         = 250
1166      NumberOfExitPaths = 3 ; Defaults to 1.  Set 0 to not use ExitStart/ExitEnd, set higher than 1 to use ExitStart01-nn/ExitEnd01-nn
1167      GoAggressiveOnExit = Yes ; AI Will tell people to set their mood to Aggressive on exiting
1168    End
1169  
1170    Behavior = SlowDeathBehavior ModuleTag_07
1171      DeathTypes = ALL -CRUSHED -SPLATTED
1172      DestructionDelay = 1
1173      FX  = FINAL    FX_SupplyTruckExplosionOneFinal
1174      OCL = FINAL    OCL_FinalTroopCrawlerDebris
1175    End
1176  
1177    Behavior                 = TransitionDamageFX ModuleTag_08
1178      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
1179      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_NukeCannonDamageTransition
1180    End
1181  
1182    Behavior = DestroyDie ModuleTag_09
1183      DeathTypes = NONE +CRUSHED +SPLATTED
1184    End
1185  
1186    Behavior = FXListDie ModuleTag_10
1187      DeathTypes = NONE +CRUSHED +SPLATTED
1188      DeathFX = FX_CarCrush
1189    End
1190  
1191    ; A crushing defeat
1192    Behavior = FXListDie ModuleTag_11
1193      DeathTypes = NONE +CRUSHED +SPLATTED
1194      DeathFX = FX_CarCrush
1195    End
1196  
1197    Behavior = CreateCrateDie ModuleTag_12
1198      CrateData = SalvageCrateData
1199      ;CrateData = EliteTankCrateData
1200      ;CrateData = HeroicTankCrateData
1201    End
1202  
1203    Behavior = FlammableUpdate ModuleTag_21
1204      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
1205      AflameDamageAmount = 3       ; taking this much damage...
1206      AflameDamageDelay = 500       ; this often.
1207    End
1208  
1209    Geometry = BOX
1210    GeometryMajorRadius = 22.0
1211    GeometryMinorRadius = 9.0
1212    GeometryHeight = 13.0     
1213    GeometryIsSmall = No
1214    Shadow = SHADOW_VOLUME
1215    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length    
1216  
1217  End
1218  
1219  
1220  
1221  
1222  
1223  
1224  ;------------------------------------------------------------------------------
1225  Object ChinaVehicleInfernoCannon
1226  
1227    ; *** ART Parameters ***
1228    SelectPortrait         = SNInferno_L
1229    ButtonImage            = SNInferno
1230    
1231    UpgradeCameo1 = Upgrade_ChinaBlackNapalm
1232    ;UpgradeCameo2 = NONE
1233    ;UpgradeCameo3 = NONE
1234    ;UpgradeCameo4 = NONE
1235    ;UpgradeCameo5 = NONE
1236    
1237    Draw                    = W3DTankDraw ModuleTag_01
1238      OkToChangeModelColor  = Yes
1239      ConditionState        = NONE
1240        Model               = NVInferno
1241        Turret              = Turret
1242        TurretPitch         = TurretEL
1243        WeaponFireFXBone    = PRIMARY Muzzle
1244        WeaponRecoilBone    = PRIMARY Barrel
1245        WeaponMuzzleFlash   = PRIMARY MuzzleFX
1246        WeaponLaunchBone = PRIMARY Muzzle
1247      End
1248      
1249      ConditionState        = RUBBLE REALLYDAMAGED
1250        Model               = NVInferno_D
1251        Turret              = Turret
1252        TurretPitch         = TurretEL
1253        WeaponFireFXBone    = PRIMARY Muzzle
1254        WeaponRecoilBone    = PRIMARY Barrel
1255        WeaponMuzzleFlash   = PRIMARY MuzzleFX
1256        WeaponLaunchBone = PRIMARY Muzzle
1257      End
1258      
1259      TrackMarks           = EXTnkTrack.tga
1260      TreadAnimationRate      = 2.0  ; amount of tread texture to move per second
1261    End
1262  
1263    ; ***DESIGN parameters ***
1264    DisplayName        = OBJECT:InfernoCannon
1265    Side               = China
1266    EditorSorting      = VEHICLE
1267    TransportSlotCount = 3                 ;how many "slots" we take in a transport (0 == not transportable)
1268    WeaponSet
1269      Conditions       = None 
1270      Weapon           = PRIMARY InfernoCannonGun
1271    End
1272    WeaponSet
1273      Conditions       = PLAYER_UPGRADE 
1274      Weapon           = PRIMARY InfernoCannonGunUpgraded
1275    End
1276    ArmorSet
1277      Conditions      = None
1278      Armor           = TankArmor
1279      DamageFX        = TankDamageFX
1280    End
1281    BuildCost          = 900
1282    BuildTime          = 15.0          ;in seconds    
1283    VisionRange        = 180
1284    ShroudClearingRange = 300
1285    Prerequisites
1286      Object           = ChinaWarFactory
1287      Object           = ChinaPropagandaCenter
1288    End
1289  
1290    ExperienceValue = 50 50 100 150    ;Experience point value at each level
1291    ExperienceRequired = 0 100 200 400  ;Experience points needed to gain each level
1292    IsTrainable = Yes             ;Can gain experience
1293    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
1294    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
1295    CommandSet      = ChinaVehicleInfernoCannonCommandSet
1296  
1297    ; *** AUDIO Parameters ***
1298    VoiceSelect       = InfernoCannonVoiceSelect
1299    VoiceMove         = InfernoCannonVoiceMove
1300    VoiceGuard        = InfernoCannonVoiceMove
1301    VoiceAttack       = InfernoCannonVoiceAttack
1302    SoundMoveStart    = InfernoCannonMoveStart
1303    SoundMoveStartDamaged = InfernoCannonMoveStart
1304    UnitSpecificSounds
1305      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
1306      VoiceCreate     = InfernoCannonVoiceCreate
1307      TurretMoveStart = NoSound
1308      TurretMoveLoop  = NoSound
1309      VoiceCrush          = InfernoCannonVoiceCrush
1310      VoiceEnter         = InfernoCannonVoiceMove
1311    End
1312  
1313  
1314    ; *** ENGINEERING Parameters ***
1315    RadarPriority     = UNIT
1316    KindOf            = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS VEHICLE SCORE
1317    
1318    Body              = ActiveBody ModuleTag_02
1319      MaxHealth       = 120.0
1320      InitialHealth   = 120.0
1321  
1322      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
1323      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
1324      SubdualDamageCap = 240
1325      SubdualDamageHealRate = 500
1326      SubdualDamageHealAmount = 50
1327    End
1328  
1329    Behavior = VeterancyGainCreate ModuleTag_03
1330      StartingLevel = VETERAN
1331      ScienceRequired = SCIENCE_ArtilleryTraining
1332    End
1333  
1334    Behavior = AIUpdateInterface ModuleTag_04
1335      Turret
1336        TurretTurnRate = 100
1337        TurretPitchRate = 100
1338        AllowsPitch = Yes
1339        FirePitch = 45
1340        ControlledWeaponSlots = PRIMARY
1341      End
1342      AutoAcquireEnemiesWhenIdle = No NotWhileAttacking
1343    End
1344    Locomotor = SET_NORMAL InfernoLocomotor
1345    Behavior = PhysicsBehavior ModuleTag_05
1346      Mass = 50.0
1347    End
1348  
1349    ; A crushing defeat
1350    Behavior               = FXListDie ModuleTag_06
1351      DeathTypes = NONE +CRUSHED +SPLATTED
1352      DeathFX         = FX_CarCrush
1353    End
1354    Behavior               = CreateObjectDie ModuleTag_07
1355      DeathTypes = NONE +CRUSHED +SPLATTED
1356      CreationList    = OCL_CrusaderTank_CrushEffect
1357    End
1358    Behavior = SlowDeathBehavior ModuleTag_08
1359      DeathTypes = ALL -CRUSHED -SPLATTED
1360      ProbabilityModifier = 50
1361      DestructionDelay = 2000
1362      DestructionDelayVariance = 300
1363      FX  = INITIAL  FX_CrusaderCatchFire  
1364      FX  = FINAL    FX_GenericTankDeathExplosion 
1365      OCL = FINAL    OCL_InfernoCannonDeathEffect
1366    End
1367  
1368    Behavior                 = TransitionDamageFX ModuleTag_09
1369      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
1370      ReallyDamagedFXList1 = Loc: X:-7 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
1371    End
1372  
1373    Behavior         = CreateCrateDie ModuleTag_10
1374      CrateData = SalvageCrateData
1375      ;CrateData = EliteTankCrateData
1376      ;CrateData = HeroicTankCrateData
1377    End
1378  
1379    Behavior      = WeaponSetUpgrade ModuleTag_11
1380      TriggeredBy = Upgrade_ChinaBlackNapalm
1381    End
1382  
1383    Behavior = FlammableUpdate ModuleTag_21
1384      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
1385      AflameDamageAmount = 3       ; taking this much damage...
1386      AflameDamageDelay = 500       ; this often.
1387    End
1388  
1389    Behavior = DestroyDie ModuleTag_22
1390      DeathTypes = NONE +CRUSHED +SPLATTED
1391    End
1392  
1393    Geometry            = BOX
1394    GeometryMajorRadius = 15.0
1395    GeometryMinorRadius = 10.0
1396    GeometryHeight      = 15.0     
1397    GeometryIsSmall     = Yes
1398    Shadow              = SHADOW_VOLUME 
1399    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length   
1400  
1401  End
1402  
1403  
1404  
1405  
1406  
1407  
1408  
1409  ;------------------------------------------------------------------------------
1410  ;Also called NukeCannon
1411  Object ChinaVehicleNukeLauncher
1412  
1413    ; *** ART Parameters ***
1414    SelectPortrait         = SNNukeCannon_L
1415    ButtonImage            = SNNukeCannon
1416    
1417    UpgradeCameo1 = Upgrade_ChinaNeutronShells
1418    ;UpgradeCameo2 = NONE
1419    ;UpgradeCameo3 = NONE
1420    ;UpgradeCameo4 = NONE
1421    ;UpgradeCameo5 = NONE
1422  
1423    Draw = W3DTankDraw ModuleTag_01
1424      
1425      InitialRecoilSpeed   = 120
1426      MaxRecoilDistance    = 8
1427      RecoilSettleSpeed    = 6
1428  
1429      OkToChangeModelColor = Yes
1430  
1431      ExtraPublicBone = Turret01
1432  
1433      DefaultConditionState
1434        Model                           = NVNukeCn
1435        WeaponLaunchBone                = PRIMARY Muzzle
1436        WeaponMuzzleFlash               = PRIMARY MuzzleFX
1437        WeaponFireFXBone                = PRIMARY Muzzle
1438        WeaponRecoilBone                = PRIMARY Barrel
1439        WeaponLaunchBone                = SECONDARY Muzzle
1440        WeaponMuzzleFlash               = SECONDARY MuzzleFX
1441        WeaponFireFXBone                = SECONDARY Muzzle
1442        WeaponRecoilBone                = SECONDARY Barrel
1443        HideSubObject                   = TURRET01      ;Hide controlled turret
1444        ShowSubObject                   = TURRETFRONT TURRETBACK  ;Show pack/unpack animated turret
1445        Turret                          = Turret01
1446        TurretPitch                     = TurretEL
1447      End
1448        
1449      ConditionState                    = RUBBLE
1450        Model                           = NVNukeCn_D1
1451        WeaponLaunchBone                = PRIMARY Muzzle
1452        WeaponMuzzleFlash               = PRIMARY MuzzleFX
1453        WeaponRecoilBone                = PRIMARY Barrel
1454        WeaponLaunchBone                = SECONDARY Muzzle
1455        WeaponMuzzleFlash               = SECONDARY MuzzleFX
1456        WeaponRecoilBone                = SECONDARY Barrel
1457        HideSubObject                   = TURRET01      ;Hide controlled turret
1458        ShowSubObject                   = TURRETFRONT TURRETBACK  ;Show pack/unpack animated turret
1459        Turret                          = Turret01
1460        TurretPitch                     = TurretEL
1461      End
1462  
1463      ;*** PACKED STATE -- ready to move ***
1464      ConditionState    = MOVING
1465        Animation       = NVNukeCn.NVNukeCn
1466        AnimationMode   = ONCE_BACKWARDS
1467        Flags           = START_FRAME_FIRST
1468      End
1469      AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A ;Very long shot delay -- possibly moving
1470      AliasConditionState = BETWEEN_FIRING_SHOTS_A
1471      ;***
1472      ConditionState    = REALLYDAMAGED MOVING
1473        Model           = NVNukeCn_D
1474        Animation       = NVNukeCn_D.NVNukeCn_D
1475        AnimationMode   = ONCE_BACKWARDS
1476        Flags           = START_FRAME_FIRST
1477      End
1478      AliasConditionState = REALLYDAMAGED MOVING BETWEEN_FIRING_SHOTS_A ;Very long shot delay -- possibly moving
1479       
1480  
1481      ;*** UNPACKING STATE  -- preparing to fire ***
1482      ConditionState    = UNPACKING
1483        Animation       = NVNukeCn.NVNukeCn
1484        AnimationMode   = MANUAL
1485      End
1486      AliasConditionState = UNPACKING BETWEEN_FIRING_SHOTS_A ;Very long shot delay
1487      ;***
1488      ConditionState    = REALLYDAMAGED UNPACKING
1489        Model           = NVNukeCn_D
1490        Animation       = NVNukeCn_D.NVNukeCn_D
1491        AnimationMode   = MANUAL
1492      End
1493      AliasConditionState = REALLYDAMAGED UNPACKING BETWEEN_FIRING_SHOTS_A ;Very long shot delay
1494  
1495      ;*** PACKING STATE -- preparing to move ***
1496      ConditionState    = PACKING
1497        Animation       = NVNukeCn.NVNukeCn
1498        AnimationMode   = MANUAL
1499      End
1500  
1501      AliasConditionState = PACKING BETWEEN_FIRING_SHOTS_A ;Very long shot delay
1502      ;***
1503      ConditionState    = REALLYDAMAGED PACKING
1504        Model           = NVNukeCn_D
1505        Animation       = NVNukeCn_D.NVNukeCn_D
1506        AnimationMode   = MANUAL
1507      End
1508      AliasConditionState = REALLYDAMAGED PACKING BETWEEN_FIRING_SHOTS_A ;Very long shot delay
1509  
1510      ;*** DEPLOYED STATE -- ready to fire ***
1511      ConditionState  = DEPLOYED 
1512        Animation       = NVNukeCn.NVNukeCn
1513        AnimationMode   = ONCE
1514        Flags           = START_FRAME_LAST
1515        TransitionKey   = TRANS_FIRING_A
1516        HideSubObject   = TURRETFRONT TURRETBACK   ;Hide pack/unpack animated turret
1517        ShowSubObject   = TURRET01      ;Show controlled turret
1518      End
1519      AliasConditionState = DEPLOYED FIRING_A
1520      AliasConditionState = DEPLOYED BETWEEN_FIRING_SHOTS_A
1521      AliasConditionState = DEPLOYED RELOADING_A
1522      AliasConditionState = DEPLOYED MOVING
1523  
1524      ConditionState  = DEPLOYED REALLYDAMAGED
1525        Model           = NVNukeCn_D
1526        Animation       = NVNukeCn_D.NVNukeCn_D
1527        AnimationMode   = ONCE
1528        Flags           = START_FRAME_LAST
1529        TransitionKey   = TRANS_FIRING_A
1530        HideSubObject   = TURRETFRONT TURRETBACK  ;Hide pack/unpack animated turret
1531        ShowSubObject   = TURRET01      ;Show controlled turret
1532      End
1533      AliasConditionState = DEPLOYED REALLYDAMAGED FIRING_A
1534      AliasConditionState = DEPLOYED REALLYDAMAGED BETWEEN_FIRING_SHOTS_A
1535      AliasConditionState = DEPLOYED REALLYDAMAGED RELOADING_A
1536      AliasConditionState = DEPLOYED REALLYDAMAGED MOVING
1537      
1538      TrackMarks              = EXTnkTrack.tga
1539      TreadAnimationRate      = 4.0  ; amount of tread texture to move per second
1540    End
1541  
1542    ; ***DESIGN parameters ***
1543    DisplayName      = OBJECT:NukeLauncher
1544    Side = China
1545    EditorSorting   = VEHICLE
1546    TransportSlotCount = 10                 ;how many "slots" we take in a transport (0 == not transportable)
1547    WeaponSet
1548      Conditions = None 
1549      Weapon = PRIMARY NukeCannonGun
1550      Weapon = SECONDARY NukeCannonNeutronWeapon
1551      AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
1552      AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI
1553      ShareWeaponReloadTime = Yes
1554    End
1555  
1556    
1557    ArmorSet
1558      Conditions      = None
1559      Armor           = TankArmor
1560      DamageFX        = TankDamageFX
1561    End
1562    BuildCost       = 1600
1563    BuildTime       = 20.0          ;in seconds    
1564    VisionRange     = 180
1565    ShroudClearingRange = 350
1566    Prerequisites
1567      Object = ChinaWarFactory
1568      Object = ChinaPropagandaCenter
1569      Science = SCIENCE_NukeLauncher
1570    End
1571  
1572    ExperienceValue = 50 100 200 400    ;Experience point value at each level
1573    ExperienceRequired = 0 400 600 1000  ;Experience points needed to gain each level
1574    IsTrainable = Yes             ;Can gain experience
1575    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
1576    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
1577    CommandSet    = ChinaVehicleNukeCannonCommandSet
1578  
1579    ; *** AUDIO Parameters ***
1580    VoiceSelect           = NukeCannonVoiceSelect
1581    VoiceMove             = NukeCannonVoiceMove
1582    VoiceGuard            = NukeCannonVoiceMove
1583    VoiceAttack           = NukeCannonVoiceAttack
1584    SoundMoveStart        = NukeCannonMoveStart
1585    SoundMoveStartDamaged = NukeCannonMoveStart
1586    UnitSpecificSounds
1587      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
1588      VoiceCreate         = NukeCannonVoiceCreate
1589      TurretMoveStart     = NoSound
1590      TurretMoveLoop      = NukeCannonTurretMoveLoop
1591      VoiceEnter          = NukeCannonVoiceMove
1592      Deploy              = NukeCannonDeploy
1593      Undeploy            = NukeCannonUnDeploy
1594    End
1595  
1596  
1597    ; *** ENGINEERING Parameters ***
1598    RadarPriority = UNIT
1599    KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS VEHICLE SCORE
1600    
1601    Body = ActiveBody ModuleTag_02
1602      MaxHealth       = 240.0
1603      InitialHealth   = 240.0
1604  
1605      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
1606      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
1607      SubdualDamageCap = 480
1608      SubdualDamageHealRate = 500
1609      SubdualDamageHealAmount = 50
1610    End
1611  
1612    Behavior = VeterancyGainCreate ModuleTag_03
1613      StartingLevel = VETERAN
1614      ScienceRequired = SCIENCE_ArtilleryTraining
1615    End
1616  
1617    Behavior = DeployStyleAIUpdate ModuleTag_04
1618      Turret
1619        TurretTurnRate        = 80
1620        TurretPitchRate       = 80
1621        FirePitch             = 0            ; Instead of aiming pitchwise at the target, it will aim here
1622        AllowsPitch           = Yes
1623        RecenterTime          = 5000         ; how long to wait during idle before recentering
1624        ControlledWeaponSlots = PRIMARY SECONDARY
1625        NaturalTurretAngle    = 0
1626        InitiallyDisabled     = Yes
1627      End
1628      AutoAcquireEnemiesWhenIdle = No
1629      PackTime = 3333
1630      UnpackTime = 3333
1631      TurretsFunctionOnlyWhenDeployed = Yes
1632      TurretsMustCenterBeforePacking = Yes
1633      ManualDeployAnimations = Yes
1634    End
1635  
1636    Locomotor = SET_NORMAL ChinaNukeCannonLocomotor
1637    Behavior = PhysicsBehavior ModuleTag_05
1638      Mass = 50.0
1639    End
1640  
1641    Behavior = SlowDeathBehavior ModuleTag_06
1642      DeathTypes = ALL -CRUSHED -SPLATTED
1643      DestructionDelay  = 500
1644      DestructionDelayVariance  = 100
1645      FX  = INITIAL  FX_BattleMasterExplosionOneFinal
1646      OCL = INITIAL  OCL_RadiationFieldSmall
1647      OCL = MIDPOINT OCL_ChinaVehicleNukeCannonDie
1648      OCL = FINAL    OCL_RadiationFieldSmall
1649      FX  = FINAL    FX_ChinaVehicleNukeCannonDeathExplosion
1650    End
1651      
1652    ; A crushing defeat
1653    Behavior = FXListDie ModuleTag_07
1654      DeathTypes = NONE +CRUSHED +SPLATTED
1655      DeathFX = FX_CarCrush
1656    End
1657    Behavior = CreateObjectDie ModuleTag_08
1658      DeathTypes = NONE +CRUSHED +SPLATTED
1659      CreationList = OCL_CrusaderTank_CrushEffect
1660    End
1661    Behavior = CreateCrateDie ModuleTag_09
1662      CrateData = SalvageCrateData
1663      ;CrateData = EliteTankCrateData
1664      ;CrateData = HeroicTankCrateData
1665    End
1666  
1667    Behavior                 = TransitionDamageFX ModuleTag_10
1668      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
1669      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_NukeCannonDamageTransition
1670    End
1671  
1672    Behavior = DestroyDie ModuleTag_11
1673      DeathTypes = NONE +CRUSHED +SPLATTED
1674    End
1675  
1676    Behavior = FlammableUpdate ModuleTag_21
1677      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
1678      AflameDamageAmount = 3       ; taking this much damage...
1679      AflameDamageDelay = 500       ; this often.
1680    End
1681  
1682    Behavior = ProductionUpdate ModuleTag_12
1683      MaxQueueEntries = 1; So you can't build multiple upgrades in the same frame
1684    End
1685  
1686    Geometry = BOX
1687    GeometryMajorRadius = 32.0
1688    GeometryMinorRadius = 10.0
1689    GeometryHeight = 17.0     
1690    GeometryIsSmall = No
1691    Shadow = SHADOW_VOLUME
1692    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length    
1693  
1694  End
1695  
1696  
1697  
1698  
1699  
1700  ;------------------------------------------------------------------------------
1701  Object ChinaTankGattling
1702  
1703    ; *** ART Parameters ***
1704    SelectPortrait         = SNGatlingTank_L
1705    ButtonImage            = SNGatlingTank
1706    
1707    ;UpgradeCameo1 = Upgrade_Nationalism
1708    UpgradeCameo1 = Upgrade_ChinaChainGuns
1709    ;UpgradeCameo3 = NONE
1710    ;UpgradeCameo4 = NONE
1711    ;UpgradeCameo5 = NONE
1712    
1713    Draw                      = W3DTankDraw ModuleTag_01
1714      OkToChangeModelColor    = Yes
1715      
1716      DefaultConditionState        
1717        Model               = NVGattTank
1718        Animation           = NVGattTank.NVGattTank
1719        AnimationMode       = MANUAL
1720        Turret              = TURRET01
1721        TurretPitch         = TURRETEL01
1722        WeaponMuzzleFlash   = PRIMARY   MuzzleFX
1723        WeaponFireFXBone    = PRIMARY   Muzzle
1724        WeaponMuzzleFlash   = SECONDARY MuzzleFX
1725        WeaponFireFXBone    = SECONDARY Muzzle
1726      End
1727  
1728      ConditionState        = REALLYDAMAGED RUBBLE         
1729        Model               = NVGattTank_D
1730      End
1731  
1732  
1733      ;-----pristine attacking----------------------
1734      ConditionState        = ATTACKING
1735        Model               = NVGattTank
1736        Animation           = NVGattTank.NVGattTank
1737        AnimationMode       = LOOP
1738        AnimationSpeedFactorRange = 0.5 0.5 ;set this state to animate  s l o w l y
1739      End
1740  
1741      ConditionState        = CONTINUOUS_FIRE_SLOW ATTACKING
1742        Model               = NVGattTank
1743        Animation           = NVGattTank.NVGattTank
1744        AnimationMode       = LOOP
1745        AnimationSpeedFactorRange = 0.8 0.8 ;set this state to animate  s l o w l y
1746      End
1747  
1748      ConditionState        = CONTINUOUS_FIRE_MEAN ATTACKING
1749        Model               = NVGattTank
1750        Animation           = NVGattTank.NVGattTank
1751        AnimationMode       = LOOP
1752        AnimationSpeedFactorRange = 1.5 1.5 ;set this state to animate  medium-fast
1753      End
1754  
1755      ConditionState        = CONTINUOUS_FIRE_FAST ATTACKING
1756        Model               = NVGattTank
1757        Animation           = NVGattTank.NVGattTank
1758        AnimationMode       = LOOP
1759        ParticleSysBone     = Muzzle01 GattlingMuzzleSmoke
1760        AnimationSpeedFactorRange = 3.0 3.0 ;set this state to animate  vryfst
1761      End
1762  
1763      ;-----damaged attacking----------------------
1764      ConditionState  REALLYDAMAGED ATTACKING         
1765        Model               = NVGattTank_D
1766        Animation           = NVGattTank_D.NVGattTank_D
1767        AnimationMode       = LOOP
1768        AnimationSpeedFactorRange = 0.5 0.5 ;set this state to animate  extemely sloowly
1769      End
1770      ConditionState        = CONTINUOUS_FIRE_SLOW REALLYDAMAGED ATTACKING
1771        Model               = NVGattTank_D
1772        Animation           = NVGattTank_D.NVGattTank_D
1773        AnimationMode       = LOOP
1774        AnimationSpeedFactorRange = 0.8 0.8 ;set this state to animate  s l o w l y
1775      End
1776  
1777      ConditionState        = CONTINUOUS_FIRE_MEAN REALLYDAMAGED ATTACKING
1778        Model               = NVGattTank_D
1779        Animation           = NVGattTank_D.NVGattTank_D
1780        AnimationMode       = LOOP
1781        AnimationSpeedFactorRange = 1.5 1.5 ;set this state to animate  medium-fast
1782      End
1783  
1784      ConditionState        = CONTINUOUS_FIRE_FAST REALLYDAMAGED ATTACKING
1785        Model               = NVGattTank_D
1786        Animation           = NVGattTank_D.NVGattTank_D
1787        AnimationMode       = LOOP
1788        ParticleSysBone     = Muzzle01 GattlingMuzzleSmoke
1789        AnimationSpeedFactorRange = 3.0 3.0 ;set this state to animate  vryfst
1790      End
1791  
1792  
1793  
1794  
1795      TrackMarks              = EXTnkTrack.tga
1796      TreadAnimationRate      = 2.0  ; amount of tread texture to move per second
1797      TreadDriveSpeedFraction = 0.3  ; fraction of locomotor speed below which treads stop moving.
1798      TreadPivotSpeedFraction = 0.6  ; fraction of locomotor speed below which we allow pivoting.
1799    End
1800  
1801    ; ***DESIGN parameters ***
1802    DisplayName               = OBJECT:GattlingTank
1803    Side                      = China
1804    EditorSorting             = VEHICLE
1805    TransportSlotCount        = 3            ;how many "slots" we take in a transport (0 == not transportable)
1806  
1807    WeaponSet
1808      Conditions              = None 
1809      Weapon                  = PRIMARY   GattlingTankGun
1810      PreferredAgainst        = PRIMARY   AIRCRAFT
1811      Weapon                  = SECONDARY GattlingTankGunAir
1812    End
1813  
1814    ArmorSet
1815      Conditions    = None
1816      Armor         = AntiAirVehicle
1817      DamageFX      = TankDamageFX
1818    End
1819    BuildCost       = 800
1820    BuildTime       = 10.0          ;in seconds    
1821    VisionRange     = 150
1822    ShroudClearingRange = 360
1823    Prerequisites
1824      Object        = ChinaWarFactory
1825    End
1826  
1827    ExperienceValue = 50 50 100 150  ;Experience point value at each level
1828    ExperienceRequired = 0 100 150 300  ;Experience points needed to gain each level
1829    IsTrainable = Yes             ;Can gain experience
1830    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
1831    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
1832    CommandSet      = ChinaVehicleGattlingTankCommandSet
1833  
1834  
1835    ; *** AUDIO Parameters ***
1836    VoiceSelect     = GattlingTankVoiceSelect
1837    VoiceMove       = GattlingTankVoiceMove
1838    VoiceGuard      = GattlingTankVoiceMove
1839    VoiceAttack     = GattlingTankVoiceAttack
1840    SoundMoveStart  = GattlingTankMoveStart
1841    SoundMoveStartDamaged = GattlingTankMoveStart
1842  
1843    UnitSpecificSounds
1844      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
1845      VoiceCreate     = GattlingTankVoiceCreate
1846      TurretMoveStart = NoSound
1847      TurretMoveLoop  = TurretMoveLoopLoud
1848      VoiceCrush      = GattlingTankVoiceCrush
1849      VoiceEnter      = GattlingTankVoiceMove
1850      VoiceRapidFire  = GattlingTankVoiceRapid
1851    End
1852  
1853    ; *** ENGINEERING Parameters ***
1854    RadarPriority     = UNIT
1855    KindOf            = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SCORE
1856    
1857    Body              = ActiveBody ModuleTag_02
1858      MaxHealth       = 300.0
1859      InitialHealth   = 300.0
1860  
1861      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
1862      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
1863      SubdualDamageCap = 600
1864      SubdualDamageHealRate = 500
1865      SubdualDamageHealAmount = 50
1866    End
1867    Behavior = AIUpdateInterface ModuleTag_03
1868      Turret
1869        ControlledWeaponSlots = PRIMARY SECONDARY
1870        TurretTurnRate      = 180   // turn rate, in degrees per sec
1871        TurretPitchRate     = 180
1872        AllowsPitch         = Yes
1873        FiresWhileTurning   = Yes
1874        NaturalTurretPitch  = 45 ; this keeps it aimed half way between land and sky
1875                                 ; since you never know from whence cometh danger
1876      End
1877      AutoAcquireEnemiesWhenIdle = Yes
1878      MoodAttackCheckRate        = 250
1879    End
1880  
1881    Locomotor       = SET_NORMAL GattlingTankLocomotor
1882    Behavior          = PhysicsBehavior ModuleTag_04
1883      Mass            = 40.0
1884    End
1885  
1886  ;  Behavior               = DestroyDie 
1887  ;    ;nothing
1888  ;  End
1889      
1890    ; Just explode death
1891    Behavior = SlowDeathBehavior ModuleTag_05
1892      ProbabilityModifier = 19
1893      DestructionDelay = 200
1894      DestructionDelayVariance = 100
1895  
1896      SinkRate = 0.5     ; in Dist/Sec
1897  
1898      OCL = FINAL    OCL_ChinaTankGattlingDebris
1899      FX  = FINAL    FX_GattlingExplosionOneFinal
1900    End
1901  
1902    Behavior = CreateCrateDie ModuleTag_06
1903      CrateData = SalvageCrateData
1904      ;CrateData = EliteTankCrateData
1905      ;CrateData = HeroicTankCrateData
1906    End
1907  
1908    Behavior = TransitionDamageFX ModuleTag_07
1909      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01
1910      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
1911    End
1912  
1913    Behavior = FlammableUpdate ModuleTag_21
1914      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
1915      AflameDamageAmount = 3       ; taking this much damage...
1916      AflameDamageDelay = 500       ; this often.
1917    End
1918  
1919    Behavior = WeaponBonusUpgrade ModuleTag_22
1920      TriggeredBy = Upgrade_ChinaChainGuns
1921    End
1922  
1923    Geometry            = BOX
1924    GeometryMajorRadius = 15.0
1925    GeometryMinorRadius = 10.0
1926  
1927    GeometryHeight      = 15.0     
1928    GeometryIsSmall     = Yes
1929    Shadow              = SHADOW_VOLUME
1930    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length    
1931  
1932  End
1933  
1934  
1935  
1936  ;------------------------------------------------------------------------------
1937  ;China Supply Truck
1938  Object ChinaVehicleSupplyTruck
1939  
1940    ; *** ART Parameters ***
1941    
1942    SelectPortrait         = SNSupplyTruck_L
1943    ButtonImage            = SNSupplyTruck
1944    
1945    ;UpgradeCameo1 = NONE
1946    ;UpgradeCameo2 = NONE
1947    ;UpgradeCameo3 = NONE
1948    ;UpgradeCameo4 = NONE
1949    ;UpgradeCameo5 = NONE
1950    
1951    Draw = W3DTruckDraw ModuleTag_01
1952      OkToChangeModelColor = Yes
1953      
1954      DefaultConditionState
1955        Model           = NVSSUPPLYTK
1956        HideSubObject   = Cargo01
1957      End
1958      
1959      ConditionState    = REALLYDAMAGED
1960        Model           = NVSSUPPLYTK_D
1961      End
1962      
1963      ConditionState    = RUBBLE
1964        Model           = NVSSUPPLYTK_D
1965      End
1966      
1967      ConditionState    = CARRYING
1968        ShowSubObject   = Cargo01
1969      End
1970      
1971      ConditionState    = REALLYDAMAGED CARRYING
1972        Model           = NVSSUPPLYTK_D
1973        ShowSubObject   = Cargo01
1974      End
1975      
1976      ConditionState    = RUBBLE CARRYING
1977        Model           = NVSSUPPLYTK_D
1978        ShowSubObject   = Cargo01
1979      End
1980      
1981      TrackMarks              = EXTireTrack.tga
1982  
1983      LeftFrontTireBone           = Tire01
1984      RightFrontTireBone          = Tire02
1985      MidLeftRearTireBone         = Tire03
1986      MidRightRearTireBone        = Tire04
1987      LeftRearTireBone            = Tire05
1988      RightRearTireBone           = Tire06
1989      TireRotationMultiplier      = 0.2   ; this * speed = rotation.
1990      PowerslideRotationAddition  = 2.5   ; This speed is added to the rotation speed when powersliding.
1991  
1992      Dust                    = RocketBuggyDust
1993      DirtSpray               = RocketBuggyDirtSpray
1994      PowerslideSpray         = RocketBuggyDirtPowerSlide
1995  
1996    End
1997  
1998    ; ***DESIGN parameters ***
1999    DisplayName         = OBJECT:SupplyTruck
2000    Side                = China
2001    EditorSorting       = VEHICLE
2002    TransportSlotCount  = 2                 ;how many "slots" we take in a transport (0 == not transportable)
2003    BuildCost           = 600
2004    BuildTime           = 10.0      ;in seconds
2005    VisionRange         = 150
2006    ShroudClearingRange = 300
2007    Prerequisites
2008      Object = ChinaSupplyCenter
2009    End
2010  
2011    ArmorSet
2012      Conditions      = None
2013      Armor           = TruckArmor
2014      DamageFX        = TankDamageFX
2015    End
2016    CrusherLevel            = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
2017    CrushableLevel          = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
2018    CommandSet              = ChinaSupplyTruckCommandSet
2019    ; *** AUDIO Parameters ***
2020    VoiceSelect             = SupplyTruckVoiceSelect
2021    VoiceMove               = SupplyTruckVoiceMove
2022    VoiceAttack             = NoSound
2023    SoundMoveStart          = SupplyTruckMoveStart
2024    SoundMoveStartDamaged = SupplyTruckMoveStart
2025    UnitSpecificSounds
2026      VoiceCreate           = SupplyTruckVoiceCreate
2027      TruckLandingSound     = NoSound
2028      TruckPowerslideSound  = NoSound
2029      VoiceSupply           = SupplyTruckVoiceSupply
2030      VoiceCrush            = SupplyTruckVoiceCrush
2031      VoiceEnter            = SupplyTruckVoiceMove
2032  
2033    End
2034  
2035    ; *** ENGINEERING Parameters ***
2036    RadarPriority = UNIT
2037    ;@todo lorenzen removed the CAN_ATTACK from the chinasupplytruck... ok?
2038    KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS VEHICLE HARVESTER SCORE
2039    
2040    Body = ActiveBody ModuleTag_02
2041      MaxHealth       = 300.0
2042      InitialHealth   = 300.0
2043  
2044      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
2045      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
2046      SubdualDamageCap = 600
2047      SubdualDamageHealRate = 500
2048      SubdualDamageHealAmount = 50
2049    End
2050    Behavior = SupplyTruckAIUpdate ModuleTag_03
2051      MaxBoxes = 4
2052      SupplyCenterActionDelay = 400     ; ms for whole thing (one transaction)
2053      SupplyWarehouseActionDelay = 1000 ; ms per box (many small transactions)
2054      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)
2055      SuppliesDepletedVoice = SupplyTruckVoiceSuppliesDepleted
2056    End
2057    Locomotor = SET_NORMAL SupplyTruckLocomotor
2058    Behavior = PhysicsBehavior ModuleTag_04
2059      Mass = 5.0
2060    End
2061  
2062    ExperienceValue    = 50 50 50 50 ;Experience point value at each level
2063  
2064    Behavior = SlowDeathBehavior ModuleTag_05
2065      DeathTypes = ALL -CRUSHED -SPLATTED
2066      DestructionDelay = 200
2067      DestructionDelayVariance = 100
2068      FX  = FINAL    FX_SupplyTruckExplosionOneFinal
2069      OCL = FINAL    OCL_ChinaSupplyTruckDeathEffect
2070    End
2071      
2072    Behavior = FXListDie ModuleTag_06
2073      DeathTypes = NONE +CRUSHED +SPLATTED
2074      DeathFX = FX_CarCrush
2075    End
2076    
2077    Behavior = CreateObjectDie ModuleTag_07
2078      DeathTypes = NONE +CRUSHED +SPLATTED
2079      CreationList = OCL_ChinaSupplyTruck_CrushEffect
2080    End
2081  
2082    Behavior                       = TransitionDamageFX ModuleTag_08
2083      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
2084      ReallyDamagedFXList1         = Loc: X:0 Y:0 Z:0 FXList:FX_NukeCannonDamageTransition
2085    End
2086  
2087    Behavior = FlammableUpdate ModuleTag_10
2088      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
2089      AflameDamageAmount = 3       ; taking this much damage...
2090      AflameDamageDelay = 500       ; this often.
2091    End
2092  
2093    ; A crushing defeat
2094    Behavior = DestroyDie ModuleTag_11
2095      DeathTypes = NONE +CRUSHED +SPLATTED
2096    End
2097  
2098    Behavior        = CreateCrateDie ModuleTag_12
2099      CrateData     = SalvageCrateData
2100    End
2101  
2102    Geometry = BOX
2103    GeometryMajorRadius = 17.0
2104    GeometryMinorRadius = 7.0
2105    GeometryHeight = 14.0     
2106    GeometryIsSmall = No
2107    Shadow = SHADOW_VOLUME
2108    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length    
2109  
2110  End
2111  
2112  
2113  
2114  ;------------------------------------------------------------------------------
2115  ;China Construction Dozer
2116  Object ChinaVehicleDozer
2117  
2118    ; *** ART Parameters ***
2119    SelectPortrait         = SNDozer_L
2120    ButtonImage            = SNDozer
2121    
2122    ;UpgradeCameo1 = NONE
2123    ;UpgradeCameo2 = NONE
2124    ;UpgradeCameo3 = NONE
2125    ;UpgradeCameo4 = NONE
2126    ;UpgradeCameo5 = NONE
2127  
2128    Draw                      = W3DTankDraw ModuleTag_01
2129  
2130      OkToChangeModelColor    = Yes
2131  
2132      DefaultConditionState
2133        Model                 = NVCONSTDOZ_A
2134        ParticleSysBone       = EXHAUST01 DozerSmokeLight
2135      End
2136      ConditionState          = MOVING
2137        ParticleSysBone       = EXHAUST01 DozerSmokeHeavy
2138      End
2139      ConditionState = FIRING_A MOVING PREATTACK_A 
2140        Model = NVCONSTDOZ_A
2141        Animation = NVCONSTDOZ_A.NVCONSTDOZ_A
2142        AnimationMode = ONCE
2143        ParticleSysBone = EXHAUST01 DozerSmokeHeavy
2144        ParticleSysBone = DIRTFX01 DozerDirtFall
2145      End
2146      AliasConditionState = ATTACKING FIRING_A MOVING
2147  
2148      ConditionState          = REALLYDAMAGED RUBBLE
2149        Model                 = NVCONSTDOZ_AD
2150      End
2151      ConditionState          = MOVING REALLYDAMAGED RUBBLE
2152        Model                 = NVCONSTDOZ_AD
2153        ParticleSysBone       = EXHAUST01 DozerSmokeHeavy
2154      End
2155      ConditionState = FIRING_A MOVING PREATTACK_A REALLYDAMAGED RUBBLE
2156        Model = NVCONSTDOZ_AD
2157        Animation = NVCONSTDOZ_AD.NVCONSTDOZ_AD
2158        AnimationMode = ONCE
2159        ParticleSysBone = EXHAUST01 DozerSmokeHeavy
2160        ParticleSysBone = DIRTFX01 DozerDirtFall
2161      End
2162      AliasConditionState = ATTACKING FIRING_A MOVING REALLYDAMAGED RUBBLE
2163      
2164      TrackMarks           = EXTnkTrack.tga
2165      TreadAnimationRate      = 2.0  ; amount of tread texture to move per second
2166    End
2167  
2168    ; ***DESIGN parameters ***
2169    DisplayName         = OBJECT:Dozer
2170    Side                = China
2171    EditorSorting       = VEHICLE
2172    TransportSlotCount  = 5                 ;how many "slots" we take in a transport (0 == not transportable)
2173    BuildCost           = 1000
2174    BuildTime           = 5.0 ;in seconds
2175    VisionRange         = 150
2176    ShroudClearingRange = 300
2177  
2178    WeaponSet
2179      Conditions = None 
2180      Weapon = PRIMARY None
2181    End
2182    WeaponSet
2183      Conditions = MINE_CLEARING_DETAIL 
2184      Weapon = PRIMARY DozerMineDisarmingWeapon
2185    End
2186  
2187    ArmorSet
2188      Conditions        = None
2189      Armor             = DozerArmor ;Special Explosion-Proof Armor
2190      DamageFX          = TankDamageFX
2191    End
2192    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
2193    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
2194    CommandSet          = ChinaDozerCommandSet
2195  
2196    ; *** AUDIO Parameters ***
2197    VoiceSelect         = DozerChinaVoiceSelect
2198    VoiceMove           = DozerChinaVoiceMove
2199    VoiceEnter          = DozerChinaVoiceMove
2200    VoiceTaskComplete   = DozerChinaVoiceBuildComplete
2201    SoundMoveStart      = DozerChinaMoveStart
2202    SoundMoveStartDamaged = DozerChinaMoveStart
2203  
2204    UnitSpecificSounds
2205      VoiceCreate       = DozerChinaVoiceCreate
2206      VoiceCrush        = DozerChinaVoiceCrush
2207      VoiceNoBuild      = DozerChinaVoiceBuildNot
2208      VoiceRepair       = DozerChinaVoiceRepair
2209      VoiceDisarm       = DozerChinaVoiceClearMine
2210      VoiceEnter        = DozerChinaVoiceMove
2211      VoiceBuildResponse = DozerChinaVoiceBuild
2212    End
2213   
2214  
2215  
2216    ; *** ENGINEERING Parameters ***
2217    RadarPriority       = UNIT
2218    KindOf              = PRELOAD VEHICLE SCORE SELECTABLE CAN_CAST_REFLECTIONS DOZER 
2219    
2220    Body                = ActiveBody ModuleTag_02
2221      MaxHealth         = 250.0
2222      InitialHealth     = 250.0
2223  
2224      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
2225      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
2226      SubdualDamageCap = 500
2227      SubdualDamageHealRate = 500
2228      SubdualDamageHealAmount = 50
2229    End
2230    Behavior = DozerAIUpdate ModuleTag_03
2231      RepairHealthPercentPerSecond = 2%    ; % of max health to repair each second
2232      BoredTime                    = 5000  ; in milliseconds
2233      BoredRange                   = 150   ; when bored, we look this far away to do something
2234      ; the only "enemies" that workers can acquire are mines, to be disarmed...
2235      AutoAcquireEnemiesWhenIdle   = Yes
2236    End
2237    Locomotor                    = SET_NORMAL ChinaVehicleDozerLocomotor
2238    Behavior            = PhysicsBehavior ModuleTag_04
2239      Mass              = 75.0
2240    End
2241  
2242    Behavior = StealthDetectorUpdate ModuleTag_05
2243      DetectionRate         = 500   ; how often to rescan for stealthed things in my sight (msec)
2244      ;DetectionRange       = ??? ;Dustin, enable this for independant balancing!
2245      CanDetectWhileGarrisoned  = No ;Garrisoned means being in a structure that you units can shoot out of.
2246      CanDetectWhileContained   = No ;Contained means being in a transport or tunnel network.
2247      ExtraRequiredKindOf   = MINE  ; we can only detect MINES, not other stealthed things
2248    End
2249    
2250    Behavior                 = TransitionDamageFX ModuleTag_06
2251      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
2252      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
2253    End
2254    
2255    ; Catch fire, and explode death
2256    Behavior = SlowDeathBehavior ModuleTag_07
2257      DeathTypes = ALL -CRUSHED -SPLATTED
2258      ProbabilityModifier = 100
2259      DestructionDelay = 1500
2260      DestructionDelayVariance = 600
2261      FX  = INITIAL  FX_CrusaderCatchFire
2262      OCL = FINAL    OCL_ChinaDozerExplode  
2263      FX  = FINAL    FX_BattleMasterExplosionOneFinal
2264    End 
2265  
2266    Behavior = CreateCrateDie ModuleTag_09
2267      CrateData = SalvageCrateData
2268    End
2269      
2270    Behavior = FlammableUpdate ModuleTag_21
2271      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
2272      AflameDamageAmount = 3       ; taking this much damage...
2273      AflameDamageDelay = 500       ; this often.
2274    End
2275  
2276    Behavior               = FXListDie ModuleTag_22
2277      DeathTypes = NONE +CRUSHED +SPLATTED
2278      DeathFX         = FX_CarCrush
2279    End
2280  
2281    Behavior = DestroyDie ModuleTag_23
2282      DeathTypes = NONE +CRUSHED +SPLATTED
2283    End
2284  
2285    Geometry            = BOX
2286    GeometryMajorRadius = 17.0;new radius to align mine sweeping position
2287    ;GeometryMajorRadius = 21.0;old radius
2288    GeometryMinorRadius = 10.0
2289    GeometryHeight      = 15.0     
2290    GeometryIsSmall     = NO
2291    Shadow              = SHADOW_VOLUME
2292    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length    
2293  
2294  End
2295  
2296  ;-------------------- ¸ÄΪT98----------------------------------------------------------
2297  Object ChinaTankECM
2298  
2299    ; *** ART Parameters ***
2300    SelectPortrait         = T13
2301    ButtonImage            = T13
2302  
2303    UpgradeCameo1 = Upgrade_Nationalism
2304    UpgradeCameo2 = Upgrade_ChinaUraniumShells
2305    UpgradeCameo3 = Upgrade_ChinaNuclearTanks
2306    ;UpgradeCameo4 = NONE
2307    ;UpgradeCameo5 = NONE
2308  
2309    Draw = W3DTankDraw ModuleTag_01
2310      OkToChangeModelColor = Yes
2311      DefaultConditionState
2312        Model               = NVT98
2313        Turret              = Turret01
2314        WeaponFireFXBone    = PRIMARY Muzzle
2315        WeaponRecoilBone    = PRIMARY Barrel
2316        WeaponMuzzleFlash   = PRIMARY MuzzleFX
2317        WeaponLaunchBone    = PRIMARY Muzzle
2318        AltTurret       = GUN
2319        WeaponFireFXBone       = SECONDARY GUN
2320        WeaponLaunchBone       = SECONDARY GUN
2321      End
2322  
2323      ConditionState = REALLYDAMAGED
2324        Model               = NVT98
2325        Turret              = Turret01
2326        WeaponFireFXBone    = PRIMARY Muzzle
2327        WeaponRecoilBone    = PRIMARY Barrel
2328        WeaponMuzzleFlash   = PRIMARY MuzzleFX
2329        WeaponLaunchBone    = PRIMARY Muzzle
2330        AltTurret       = GUN
2331        WeaponFireFXBone       = SECONDARY GUN
2332        WeaponLaunchBone       = SECONDARY GUN
2333      End
2334  
2335      ConditionState = WEAPONSET_PLAYER_UPGRADE
2336        Model               = NVT98
2337        Turret              = Turret01
2338        WeaponFireFXBone    = PRIMARY Muzzle
2339        WeaponRecoilBone    = PRIMARY Barrel
2340        WeaponMuzzleFlash   = PRIMARY MuzzleFX
2341        WeaponLaunchBone    = PRIMARY Muzzle
2342        AltTurret       = GUN
2343        WeaponFireFXBone       = SECONDARY GUN
2344        WeaponLaunchBone       = SECONDARY GUN
2345        WeaponFireFXBone       = TERTIARY GUN
2346        WeaponLaunchBone       = TERTIARY GUN
2347  
2348      End
2349  
2350      ConditionState = REALLYDAMAGED WEAPONSET_PLAYER_UPGRADE
2351        Model               = NVT98
2352        Turret              = Turret01
2353        WeaponFireFXBone    = PRIMARY Muzzle
2354        WeaponRecoilBone    = PRIMARY Barrel
2355        WeaponMuzzleFlash   = PRIMARY MuzzleFX
2356        WeaponLaunchBone    = PRIMARY Muzzle
2357        AltTurret       = GUN
2358        WeaponFireFXBone       = SECONDARY GUN
2359        WeaponLaunchBone       = SECONDARY GUN
2360        WeaponFireFXBone       = TERTIARY GUN
2361        WeaponLaunchBone       = TERTIARY GUN
2362      End
2363  
2364      ConditionState = RUBBLE
2365        Model               = NVT98
2366        Turret              = Turret01
2367      End
2368  
2369      TrackMarks              = EXTnkTrack.tga
2370    End
2371  
2372    ; ***DESIGN parameters ***
2373    DisplayName      = OBJECT:ECMTank
2374    Side = China
2375    EditorSorting   = VEHICLE
2376    TransportSlotCount = 3                 ;how many "slots" we take in a transport (0 == not transportable)
2377  
2378    WeaponSet
2379      Conditions          = None
2380      Weapon         = PRIMARY     BattleMasterTankGun
2381     
2382      Weapon         = SECONDARY     ECMTankVehicleDisabler
2383  
2384      
2385    End
2386  
2387    WeaponSet
2388      Conditions = PLAYER_UPGRADE
2389      Weapon         = PRIMARY     BattleMasterTankGun
2390      Weapon         = SECONDARY     ECMTankVehicleDisabler
2391  
2392    End
2393  
2394    ArmorSet
2395      Conditions      = None
2396      Armor           = TankArmor
2397      DamageFX        = TankDamageFX
2398    End
2399  
2400    BuildCost       = 1500
2401    BuildTime       = 20.0          ;in seconds
2402    VisionRange     = 150
2403    ShroudClearingRange = 300
2404  
2405    Prerequisites
2406     Object = ChinaWarFactory
2407     Object = ChinaPropagandaCenter
2408       
2409    End
2410  
2411    ExperienceValue = 100 100 200 400    ;Experience point value at each level
2412    ExperienceRequired = 0 20 30 60 ;Experience points needed to gain each level
2413    IsTrainable = Yes             ;Can gain experience
2414    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
2415    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
2416    CommandSet       = ChinaVehicleECMTankCommandSet
2417  
2418  
2419    ; *** AUDIO Parameters ***
2420    VoiceSelect = BattleMasterTankVoiceSelect
2421    VoiceMove = BattleMasterTankVoiceMove
2422    VoiceGuard = BattleMasterTankVoiceMove
2423    VoiceAttack = BattleMasterTankVoiceAttack
2424    SoundMoveStart = BattleMasterTankMoveStart
2425    SoundMoveStartDamaged = BattleMasterTankMoveStart
2426  
2427    UnitSpecificSounds
2428      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
2429      VoiceCreate          = BattleMasterTankVoiceCreate
2430      TurretMoveStart = NoSound
2431      TurretMoveLoop = TurretMoveLoop
2432      VoiceCrush = BattleMasterTankVoiceCrush
2433      VoiceEnter = BattleMasterTankVoiceMove
2434    End
2435  
2436    ; *** ENGINEERING Parameters ***
2437    RadarPriority = UNIT
2438    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SCORE
2439  
2440    Body = ActiveBody ModuleTag_02
2441      MaxHealth       = 700.0
2442      InitialHealth   = 700.0
2443    End
2444  
2445    Behavior = AIUpdateInterface ModuleTag_03
2446      Turret
2447        TurretTurnRate = 120   ; turn rate, in degrees per sec
2448        ControlledWeaponSlots = PRIMARY
2449      End
2450  
2451      AltTurret
2452        TurretTurnRate = 360   ; turn rate, in degrees per sec
2453        ControlledWeaponSlots = SECONDARY TERTIARY
2454      End
2455      AutoAcquireEnemiesWhenIdle = Yes
2456    End
2457  
2458    Locomotor = SET_NORMAL BattleMasterLocomotor
2459    Locomotor = SET_NORMAL_UPGRADED NuclearBattleMasterLocomotor
2460  
2461    Behavior = HordeUpdate ModuleTag_04
2462      RubOffRadius = 150    ; if I am this close to a real hordesman, I will get to be an honorary hordesman
2463      UpdateRate = 1000     ; how often to recheck horde status (msec)
2464      Radius = 75           ; how close other units must be to us to count towards our horde-ness (~30 feet or so)
2465      KindOf = VEHICLE      ; what KindOf's must match to count towards horde-ness
2466      AlliesOnly = Yes      ; do we only count allies towards horde status?
2467      ExactMatch = Yes      ; do we only count units of our exact same type towards horde status? (overrides kindof)
2468      Count = 5             ; how many units must be within Radius to grant us horde-ness
2469      Action = HORDE        ; when horde-ing, grant us the HORDE bonus
2470    End
2471  
2472    Behavior = PhysicsBehavior ModuleTag_05
2473      Mass = 40.0
2474    End
2475  
2476    Behavior = FireWeaponWhenDeadBehavior ModuleTag_06
2477      DeathWeapon   = NuclearTankDeathWeapon
2478      StartsActive  = No                        ; turned on by upgrade
2479      TriggeredBy   = Upgrade_ChinaNuclearTanks
2480    End
2481    Behavior = LocomotorSetUpgrade ModuleTag_07
2482      TriggeredBy = Upgrade_ChinaNuclearTanks
2483    End
2484  
2485    ; A crushing defeat
2486    Behavior = DestroyDie ModuleTag_08
2487      DeathTypes = NONE +CRUSHED +SPLATTED
2488    End
2489    Behavior = FXListDie ModuleTag_09
2490      DeathTypes = NONE +CRUSHED +SPLATTED
2491      DeathFX = FX_CarCrush
2492    End
2493    Behavior = CreateObjectDie ModuleTag_10
2494      DeathTypes = NONE +CRUSHED +SPLATTED
2495      CreationList = OCL_CrusaderTank_CrushEffect
2496    End
2497    Behavior = CreateCrateDie ModuleTag_11
2498      CrateData = SalvageCrateData
2499      ;CrateData = EliteTankCrateData
2500      ;CrateData = HeroicTankCrateData
2501    End
2502  
2503  
2504    Behavior = SlowDeathBehavior ModuleTag_12
2505      DeathTypes = ALL -CRUSHED -SPLATTED
2506      ProbabilityModifier = 25
2507      DestructionDelay = 200
2508      DestructionDelayVariance = 100
2509      OCL = FINAL    OCL_ChinaTankBattleMasterDebris
2510      FX  = FINAL    FX_BattleMasterExplosionOneFinal
2511    End
2512  
2513    Behavior = TransitionDamageFX ModuleTag_13
2514      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01
2515      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
2516    End
2517  
2518  
2519  
2520    Behavior = FlammableUpdate ModuleTag_21
2521      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
2522      AflameDamageAmount = 3       ; taking this much damage...
2523      AflameDamageDelay = 500       ; this often.
2524    End
2525  
2526    Geometry = BOX
2527    GeometryMajorRadius = 13.0
2528    GeometryMinorRadius = 9.0
2529    GeometryHeight = 10
2530    GeometryIsSmall = Yes
2531    Shadow = SHADOW_VOLUME
2532    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
2533  
2534  End
2535  ;------------------------------------------------------------------------------
2536  Object ChinaVehicleListeningOutpost
2537  
2538    ; *** ART Parameters ***
2539    SelectPortrait         = NVLOutpost_L
2540    ButtonImage            = NVLOutpost
2541    
2542    Draw = W3DTruckDraw ModuleTag_01
2543      OkToChangeModelColor = Yes
2544  
2545      ExtraPublicBone = IRFX
2546      
2547      ConditionState = NONE
2548        Model = NVLOUTPOST
2549      End
2550  
2551      ConditionState       = REALLYDAMAGED  
2552        Model              = NVLOUTPOST_D
2553      End
2554      
2555  
2556      ConditionState       = RUBBLE   
2557        Model              = NVLOUTPOST_D1
2558        HideSubObject      = TURRET01      ;Hide the dish, since an ocl makes an airborne one is slow death behavior
2559      End
2560  
2561      TrackMarks = EXTireTrack.tga
2562  
2563      Dust = RocketBuggyDust
2564      DirtSpray = RocketBuggyDirtSpray
2565      LeftFrontTireBone     = TIRE01
2566      RightFrontTireBone    = TIRE02
2567      LeftRearTireBone      = TIRE03
2568      RightRearTireBone     = TIRE04
2569      TireRotationMultiplier      = 0.2   ; this * speed = rotation.
2570      PowerslideRotationAddition  = 0   ; This vehicle doesn't powerslide.
2571    End
2572  
2573    Draw = W3DModelDraw ModuleTag_33
2574      OkToChangeModelColor = Yes
2575      
2576      ConditionState = NONE
2577        Model = NVLOUTPOST_B
2578        Animation = NVLOUTPOST_B.NVLOUTPOST_B
2579        AnimationMode     = LOOP
2580        TransitionKey = Trans_Deployed
2581      End
2582      ConditionState = REALLYDAMAGED
2583        Model = NVLOUTPOST_BD
2584        Animation = NVLOUTPOST_BD.NVLOUTPOST_BD
2585        AnimationMode     = LOOP
2586        TransitionKey = Trans_Deployed_ReallyDamaged
2587      End
2588      
2589      ConditionState = MOVING
2590        Model = NVLOUTPOST_A
2591        Animation = NVLOUTPOST_A.NVLOUTPOST_A
2592        AnimationMode     = LOOP
2593        TransitionKey = Trans_Moving
2594      End
2595      ConditionState = REALLYDAMAGED MOVING
2596        Model = NVLOUTPOST_AD
2597        Animation = NVLOUTPOST_AD.NVLOUTPOST_AD
2598        AnimationMode     = LOOP
2599        TransitionKey = Trans_Moving_ReallyDamaged
2600      End
2601  
2602      ConditionState = RUBBLE
2603        Model = NONE
2604      End
2605      AliasConditionState = RUBBLE MOVING
2606  
2607      ;**** PACKING AND UNPACKING MODES ***
2608      TransitionState     = Trans_Moving Trans_Deployed
2609        Model = NVLOUTPOST_C
2610        Animation = NVLOUTPOST_C.NVLOUTPOST_C
2611        AnimationMode     = ONCE
2612      End
2613      TransitionState     = Trans_Moving_ReallyDamaged Trans_Deployed_ReallyDamaged
2614        Model = NVLOUTPOST_CD
2615        Animation = NVLOUTPOST_CD.NVLOUTPOST_CD
2616        AnimationMode     = ONCE
2617      End
2618  
2619      TransitionState     = Trans_Deployed Trans_Moving 
2620        Model = NVLOUTPOST_C
2621        Animation = NVLOUTPOST_C.NVLOUTPOST_C
2622        AnimationMode     = ONCE_BACKWARDS
2623      End
2624      TransitionState     = Trans_Deployed_ReallyDamaged Trans_Moving_ReallyDamaged 
2625        Model = NVLOUTPOST_CD
2626        Animation = NVLOUTPOST_CD.NVLOUTPOST_CD
2627        AnimationMode     = ONCE_BACKWARDS
2628      End
2629    End
2630  
2631  
2632    ; ***DESIGN parameters ***
2633    DisplayName      = OBJECT:ListeningOutpost
2634    Side = China
2635    EditorSorting   = VEHICLE
2636    TransportSlotCount = 8                 ;Just enough to fit into a Chinook.
2637  
2638    ;**********************************************************************
2639    WeaponSet
2640      Conditions          = None 
2641      Weapon              = PRIMARY     NONE
2642    End
2643    WeaponSet
2644      Conditions          = PLAYER_UPGRADE 
2645      Weapon              = PRIMARY     ListeningOutpostUpgradedDummyWeapon
2646    End
2647    ;**********************************************************************
2648  
2649    ArmorSet
2650      Conditions      = None
2651      Armor           = TankArmor
2652      DamageFX        = TankDamageFX
2653    End
2654    BuildCost       = 800
2655    BuildTime       = 15.0          ;in seconds    
2656    VisionRange     = 250
2657    ShroudClearingRange = 500
2658    Prerequisites
2659      Object = ChinaWarFactory
2660    End
2661    CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
2662    CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
2663    CommandSet = ChinaListeningOutpostCommandSet
2664  
2665    ; *** AUDIO Parameters ***
2666    VoiceSelect = ListeningOutpostVoiceSelect
2667    VoiceMove = ListeningOutpostVoiceMove
2668    VoiceGuard = ListeningOutpostVoiceMove
2669    VoiceAttack = ListeningOutpostVoiceAttack
2670    SoundMoveStart = RadarVanMoveStart
2671    SoundMoveStartDamaged = RadarVanMoveStart
2672    SoundEnter = HumveeEnter
2673    SoundExit = HumveeExit
2674    UnitSpecificSounds
2675      ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
2676      VoiceCreate     = ListeningOutpostVoiceCreate
2677      TurretMoveStart = NoSound
2678      TurretMoveLoop = TurretMoveLoop
2679      TruckLandingSound = NoSound ;RocketBuggyLand
2680      TruckPowerslideSound = NoSound ;RocketBuggyPowerslide
2681      VoiceCrush = NoSound
2682      VoiceUnload   = NoSound ; nothing recorded
2683      VoiceEnter = ListeningOutpostVoiceMove
2684    End
2685  
2686  
2687    ; *** ENGINEERING Parameters ***
2688    RadarPriority = UNIT
2689    KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS TRANSPORT VEHICLE SCORE REVEALS_ENEMY_PATHS CANNOT_RETALIATE
2690    
2691    Body = ActiveBody ModuleTag_02
2692      MaxHealth       = 240.0
2693      InitialHealth   = 240.0
2694  
2695      ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
2696      ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
2697      SubdualDamageCap = 480
2698      SubdualDamageHealRate = 500
2699      SubdualDamageHealAmount = 50
2700    End
2701    Behavior = StealthDetectorUpdate ModuleTag_03
2702      DetectionRate             = 900   ; how often to rescan for stealthed things in my sight (msec)
2703      DetectionRange            = 300 ;John, enable this for independant balancing!
2704      CanDetectWhileGarrisoned  = No ;Garrisoned means being in a structure that you units can shoot out of.
2705      CanDetectWhileContained   = No ;Contained means being in a transport or tunnel network.
2706      PingSound                 = IRPing
2707      LoudPingSound             = IRPingLoud
2708      ;;;IRParticleSysName         = IRDetectSonar
2709      ;;;IRBrightParticleSysName   = IRDetectSonarBright
2710      ;;;IRGridParticleSysName     = IRDetectGrid
2711      IRBeaconParticleSysName   = IRLenzflare
2712      IRParticleSysBone         = IRFX
2713    End
2714  
2715    Behavior = TransportAIUpdate ModuleTag_99
2716      AutoAcquireEnemiesWhenIdle = No ; let the contained do it for themselves
2717    End
2718  
2719    Behavior = StealthUpdate ModuleTag_04
2720      StealthDelay                = 2000 ; msec
2721      StealthForbiddenConditions  = MOVING RIDERS_ATTACKING
2722      FriendlyOpacityMin          = 50.0%
2723      FriendlyOpacityMax          = 100.0%
2724      InnateStealth               = Yes
2725      OrderIdleEnemiesToAttackMeUponReveal  = Yes
2726    End
2727  
2728    Locomotor = SET_NORMAL ListeningOutpostLocomotor
2729    Behavior = PhysicsBehavior ModuleTag_05
2730      Mass = 90.0
2731    End
2732    Behavior = TransportContain ModuleTag_06
2733      PassengersAllowedToFire = Yes
2734      Slots                 = 2
2735      InitialPayload        = ChinaInfantryTankHunter 2 
2736      ScatterNearbyOnExit   = No
2737      HealthRegen%PerSec    = 10
2738      DamagePercentToUnits  = 10%
2739      AllowInsideKindOf     = INFANTRY
2740      ExitDelay         = 250
2741      NumberOfExitPaths = 3 ; Defaults to 1.  Set 0 to not use ExitStart/ExitEnd, set higher than 1 to use ExitStart01-nn/ExitEnd01-nn
2742      GoAggressiveOnExit = Yes ; AI Will tell people to set their mood to Aggressive on exiting
2743      ArmedRidersUpgradeMyWeaponSet = Yes
2744    End
2745  
2746    Behavior = SlowDeathBehavior ModuleTag_07
2747      DeathTypes = ALL -CRUSHED -SPLATTED
2748      DestructionDelay = 1789
2749      FX  = INITIAL    FX_SupplyTruckExplosionOneFinal
2750      OCL = INITIAL    OCL_InitialListeningOutpostDebris
2751      FX  = FINAL    FX_SupplyTruckExplosionOneFinal
2752      OCL = FINAL    OCL_FinalListeningOutpostDebris
2753    End
2754  
2755    Behavior = TransitionDamageFX ModuleTag_08
2756      ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
2757      ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_NukeCannonDamageTransition
2758    End
2759  
2760    Behavior = DestroyDie ModuleTag_09
2761      DeathTypes = NONE +CRUSHED +SPLATTED
2762    End
2763  
2764    Behavior = FXListDie ModuleTag_10
2765      DeathTypes = NONE +CRUSHED +SPLATTED
2766      DeathFX = FX_CarCrush
2767    End
2768  
2769    ; A crushing defeat
2770    Behavior = FXListDie ModuleTag_11
2771      DeathTypes = NONE +CRUSHED +SPLATTED
2772      DeathFX = FX_CarCrush
2773    End
2774  
2775    Behavior = CreateCrateDie ModuleTag_12
2776      CrateData = SalvageCrateData
2777      ;CrateData = EliteTankCrateData
2778      ;CrateData = HeroicTankCrateData
2779    End
2780  
2781    Behavior = FlammableUpdate ModuleTag_21
2782      AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
2783      AflameDamageAmount = 3       ; taking this much damage...
2784      AflameDamageDelay = 500       ; this often.
2785    End
2786  
2787    Geometry = BOX
2788    GeometryMajorRadius = 20.0
2789    GeometryMinorRadius = 10.0
2790    GeometryHeight = 22.0     
2791    GeometryIsSmall = No
2792    Shadow = SHADOW_VOLUME
2793    ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length    
2794  
2795  End


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