[ Index ] WAROFGENERALS

PHP Cross Reference of WAROFGENERALS MODS SOURCES

title

Body

[close]

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

   1  
   2  ;------------------------------------------------------------------------------
   3  Object ChinaInfantryRedguard
   4  
   5    ; *** ART Parameters ***
   6    SelectPortrait         = SNRedGuard_L  
   7    ButtonImage            = SNRedGuard_L
   8    
   9    UpgradeCameo1 = Upgrade_Nationalism
  10    UpgradeCameo2 = Upgrade_InfantryCaptureBuilding
  11    ;UpgradeCameo3 = NONE
  12    ;UpgradeCameo4 = NONE
  13    ;UpgradeCameo5 = NONE
  14  
  15    Draw = W3DModelDraw ModuleTag_01
  16  
  17      OkToChangeModelColor = Yes
  18  
  19      ; this says "we don't use these condition states at all, so completely
  20      ; ignore them for purposes of matchmaking"... this is useful to help
  21      ; reduce the number of AliasConditionState clauses you must add in
  22      ; order to avoid ambiguity in some cases.
  23      IgnoreConditionStates = PREATTACK_A FIRING_A BETWEEN_FIRING_SHOTS_A RELOADING_A
  24  
  25      ; ------- Standing-Around Animations
  26   
  27      DefaultConditionState
  28        Model               = NICNSC_SKN
  29        IdleAnimation       = NICNSC_SKL.NICNSC_STA 0 35
  30        IdleAnimation       = NICNSC_SKL.NICNSC_IDA
  31        IdleAnimation       = NICNSC_SKL.NICNSC_IDB
  32        AnimationMode       = ONCE
  33        WeaponFireFXBone    = PRIMARY Muzzle
  34        WeaponMuzzleFlash   = PRIMARY MuzzleFX
  35        TransitionKey       = TRANS_Stand
  36      End
  37  
  38      ConditionState        = REALLYDAMAGED
  39        IdleAnimation       = NICNSC_SKL.NICNSC_STB
  40        AnimationMode       = ONCE
  41        TransitionKey       = TRANS_StandDamaged
  42      End
  43  
  44      ; ------- Machine Gun Animations
  45  
  46      ConditionState      = USING_WEAPON_A 
  47        Animation         = NICNSC_SKL.NICNSC_ATA
  48        AnimationMode     = LOOP
  49        TransitionKey     = TRANS_Firing
  50      End
  51  
  52      ConditionState      = USING_WEAPON_A REALLYDAMAGED
  53        Animation         = NICNSC_SKL.NICNSC_ATC
  54        AnimationMode     = LOOP
  55        TransitionKey     = TRANS_FiringDamaged
  56      End
  57  
  58  
  59      ; ------- Firing-related Transitions
  60  
  61      TransitionState   = TRANS_Firing TRANS_FiringDamaged
  62        Animation       = NICNSC_SKL.NICNSC_AA2AC
  63        AnimationMode   = ONCE
  64      End
  65  
  66      TransitionState   = TRANS_Stand TRANS_Firing
  67        Animation       = NICNSC_SKL.NICNSC_SA2AA
  68        AnimationMode   = ONCE
  69      End
  70  
  71      TransitionState   = TRANS_Firing TRANS_Stand
  72        Animation       = NICNSC_SKL.NICNSC_AA2SA
  73        AnimationMode   = ONCE
  74      End
  75  
  76      TransitionState   = TRANS_StandDamaged TRANS_FiringDamaged
  77        Animation       = NICNSC_SKL.NICNSC_ATCST
  78        AnimationMode   = ONCE
  79      End
  80  
  81      TransitionState   = TRANS_FiringDamaged TRANS_StandDamaged
  82        Animation       = NICNSC_SKL.NICNSC_ATCED
  83        AnimationMode   = ONCE
  84      End
  85  
  86  
  87      ; ------------- Damage Transitions --------------------
  88      TransitionState = TRANS_StandDamaged TRANS_RunDamaged
  89        Animation       = NICNSC_SKL.NICNSC_AA2AC
  90        AnimationMode   = ONCE
  91        AnimationSpeedFactorRange = 2 2
  92      End
  93      TransitionState = TRANS_RunDamaged TRANS_StandDamaged 
  94        Animation       = NICNSC_SKL.NICNSC_AA2AC
  95        AnimationMode   = ONCE_BACKWARDS
  96        AnimationSpeedFactorRange = 2 2
  97        Flags           = START_FRAME_LAST
  98      End
  99      TransitionState = TRANS_Stand TRANS_StandDamaged 
 100        Animation       = NICNSC_SKL.NICNSC_AA2SA
 101        AnimationMode   = ONCE_BACKWARDS
 102        AnimationSpeedFactorRange = 4 5
 103        Flags           = START_FRAME_LAST
 104      End
 105  
 106  
 107  
 108  
 109      ; ------- Bayonet Animations
 110  
 111      ConditionState    = PREATTACK_C 
 112        Animation       = NICNSC_SKL.NICNSC_ATB1
 113        AnimationMode   = ONCE
 114        TransitionKey   = TRANS_Stab
 115      End
 116      AliasConditionState = PREATTACK_C MOVING
 117      AliasConditionState = PREATTACK_C FIRING_C
 118      AliasConditionState = PREATTACK_C BETWEEN_FIRING_SHOTS_C
 119  
 120      ConditionState      = FIRING_C
 121        Animation         = NICNSC_SKL.NICNSC_ATB2
 122        AnimationMode     = ONCE
 123        ; this is basically a trick: this guy has a nontrivial animation for firing,
 124        ; and a long recycle time between shots. we want him to finish his fire animation
 125        ; (unless he's ordered to do something else), so this is just a handy trick that
 126        ; says, "if the previous state had this transition key, allow it to finish before
 127        ; switching to us, if possible".
 128        WaitForStateToFinishIfPossible = TRANS_Stab
 129      End
 130      AliasConditionState = BETWEEN_FIRING_SHOTS_C
 131      AliasConditionState = RELOADING_C
 132  
 133      ; ------- Parachuting Animations
 134  
 135      ConditionState    = FREEFALL
 136        Animation       = NICNSC_SKL.NICNSC_POP
 137        AnimationMode   = MANUAL
 138        Flags           = START_FRAME_FIRST
 139        TransitionKey   = TRANS_Falling
 140      End
 141      AliasConditionState = FREEFALL REALLYDAMAGED
 142      AliasConditionState = FREEFALL DYING
 143  
 144      ConditionState    = PARACHUTING
 145        Animation       = NICNSC_SKL.NICNSC_PHG
 146        AnimationMode   = LOOP
 147        Flags           = PRISTINE_BONE_POS_IN_FINAL_FRAME  ; our bone positions should come from the last frame, rather than the first
 148        TransitionKey   = TRANS_Chute
 149      End
 150      AliasConditionState = PARACHUTING REALLYDAMAGED
 151      AliasConditionState = PARACHUTING DYING
 152  
 153      TransitionState   = TRANS_Falling TRANS_Chute
 154        Animation       = NICNSC_SKL.NICNSC_POP
 155        AnimationMode   = ONCE
 156        Flags           = PRISTINE_BONE_POS_IN_FINAL_FRAME  ; our bone positions should come from the last frame, rather than the first
 157      End
 158  
 159      TransitionState   = TRANS_Chute TRANS_Stand
 160        Animation       = NICNSC_SKL.NICNSC_PTD
 161        AnimationMode   = ONCE
 162      End
 163  
 164      ; ------- Movement Animations
 165  
 166      ConditionState      = MOVING
 167        Animation         = NICNSC_SKL.NICNSC_RNA 26
 168        AnimationMode     = LOOP
 169        Flags             = RANDOMSTART
 170        TransitionKey     = None
 171        ParticleSysBone   = None InfantryDustTrails
 172      End
 173      AliasConditionState = MOVING ATTACKING
 174  
 175      ConditionState = MOVING REALLYDAMAGED
 176        Animation         = NICNSC_SKL.NICNSC_RNB 28
 177        AnimationMode     = LOOP
 178        Flags             = RANDOMSTART
 179        TransitionKey     = TRANS_RunDamaged
 180        TransitionKey     = None
 181      End
 182      AliasConditionState = MOVING ATTACKING REALLYDAMAGED
 183  
 184      ; ------- Bldg-capture
 185  
 186      ConditionState      = UNPACKING
 187        Model             = NICNSC_F_SKN
 188        Animation         = NICNSC_F_SKL.NICNSC_F_FDP1
 189        AnimationMode     = ONCE
 190      End
 191      AliasConditionState = UNPACKING REALLYDAMAGED
 192  
 193      ConditionState      = RAISING_FLAG
 194        Model             = NICNSC_F_SKN
 195        Animation         = NICNSC_F_SKL.NICNSC_F_FDP2
 196        AnimationMode     = ONCE
 197        TransitionKey     = TRANS_Raising
 198      End
 199      AliasConditionState = RAISING_FLAG REALLYDAMAGED
 200  
 201      ConditionState      = PACKING
 202        Model             = NICNSC_F_SKN
 203        Animation         = NICNSC_F_SKL.NICNSC_F_FDP1
 204        AnimationMode     = ONCE_BACKWARDS
 205        Flags             = START_FRAME_LAST
 206        TransitionKey     = TRANS_Packing
 207      End
 208      AliasConditionState = PACKING REALLYDAMAGED
 209  
 210      TransitionState     = TRANS_Raising TRANS_Packing
 211        Model             = NICNSC_F_SKN
 212        Animation         = NICNSC_F_SKL.NICNSC_F_FDP2
 213        AnimationMode     = ONCE_BACKWARDS
 214        Flags             = START_FRAME_LAST
 215      End
 216  
 217      ; ------- Dying Animations
 218  
 219      ConditionState      = DYING
 220        Animation         = NICNSC_SKL.NICNSC_DTA
 221        Animation         = NICNSC_SKL.NICNSC_DTB
 222        AnimationMode     = ONCE
 223        TransitionKey     = TRANS_Dying
 224      End
 225  
 226      TransitionState     = TRANS_Dying TRANS_Flailing
 227        Animation         = NICNSC_SKL.NICNSC_ATDE1
 228        AnimationMode     = ONCE
 229      End
 230  
 231      ConditionState      = DYING EXPLODED_FLAILING
 232        Animation         = NICNSC_SKL.NICNSC_ATDE2
 233        AnimationMode     = LOOP
 234        TransitionKey     = TRANS_Flailing
 235      End
 236  
 237      ConditionState      = DYING EXPLODED_BOUNCING
 238        Animation         = NICNSC_SKL.NICNSC_ATDE3
 239        AnimationMode     = ONCE
 240        TransitionKey     = None
 241      End
 242  
 243      ; ------- Misc Animations
 244  
 245      ConditionState      = SPECIAL_CHEERING
 246        Animation         = NICNSC_SKL.NICNSC_CHA
 247        AnimationMode     = LOOP
 248      End
 249  
 250    End
 251  
 252    ; ***DESIGN parameters ***
 253    DisplayName         = OBJECT:Redguard
 254    Side                = China
 255    EditorSorting       = INFANTRY
 256    TransportSlotCount  = 1                 ;how many "slots" we take in a transport (0 == not transportable)
 257    WeaponSet
 258      Conditions = None 
 259      Weapon = PRIMARY RedguardMachineGun
 260    End
 261    ArmorSet
 262      Conditions      = None
 263      Armor           = HumanArmor
 264      DamageFX        = InfantryDamageFX
 265    End
 266    VisionRange = 100
 267    ShroudClearingRange = 200
 268    Prerequisites
 269      Object = ChinaBarracks
 270    End
 271    BuildCost     = 300
 272    BuildTime     = 10.0          ;in seconds      
 273  
 274    ExperienceValue = 5 5 10 20   ;Experience point value at each level
 275    ExperienceRequired = 0 20 40 80  ;Experience points needed to gain each level
 276    IsTrainable = Yes             ;Can gain experience
 277    CrushableLevel         = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
 278    CommandSet    = ChinaInfantryRedguardCommandSet
 279  
 280    ; *** AUDIO Parameters ***
 281    VoiceSelect = RedGuardVoiceSelect
 282    VoiceMove = RedGuardVoiceMove
 283    VoiceGuard = RedGuardVoiceMove
 284    VoiceAttack = RedGuardVoiceAttack
 285    VoiceGroupSelect = BattleCrySound
 286    VoiceFear = RedGuardVoiceFear
 287    VoiceTaskComplete = RedGuardVoiceCaptureComplete
 288    UnitSpecificSounds
 289      VoiceMelee      = RedGuardVoiceAttackBayonet
 290      VoiceGarrison   = RedGuardVoiceGarrison
 291      VoiceCreate     = RedGuardVoiceCreate
 292      VoiceSubdue     = RedGuardVoiceSubdue
 293      VoiceEnter      = RedGuardVoiceMove
 294      VoiceEnterHostile = RedGuardVoiceMove
 295      VoiceGetHealed      = RedGuardVoiceMove
 296    End
 297  
 298    ; *** ENGINEERING Parameters ***
 299    RadarPriority = UNIT
 300    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SCORE PARACHUTABLE
 301  
 302    Body = ActiveBody ModuleTag_02
 303      MaxHealth       = 120.0
 304      InitialHealth   = 120.0
 305    End
 306  
 307    Behavior = VeterancyGainCreate ModuleTag_03
 308      StartingLevel = VETERAN
 309      ScienceRequired = SCIENCE_RedGuardTraining
 310    End
 311  
 312    Behavior = AIUpdateInterface ModuleTag_04
 313      AutoAcquireEnemiesWhenIdle = Yes
 314    End
 315  
 316    Behavior = CommandButtonHuntUpdate  ModuleTag_05 ; allows use of command button hunt script with this unit. 
 317    End
 318  
 319    Locomotor = SET_NORMAL RedguardLocomotor
 320  
 321    Behavior = HordeUpdate ModuleTag_06
 322      RubOffRadius = 60    ; if I am this close to a real hordesman, I will get to be an honorary hordesman
 323      UpdateRate = 1000    ; how often to recheck horde status (msec)
 324      Radius = 30          ; how close other units must be to us to count towards our horde-ness (~30 feet or so)
 325      KindOf = INFANTRY    ; what KindOf's must match to count towards horde-ness
 326      AlliesOnly = Yes     ; do we only count allies towards horde status? 
 327      ExactMatch = No      ; do we only count units of our exact same type towards horde status? (overrides kindof)
 328      Count = 5            ; how many units must be within Radius to grant us horde-ness
 329      Action = HORDE       ; when horde-ing, grant us the HORDE bonus
 330    End
 331    Behavior = PhysicsBehavior ModuleTag_07
 332      Mass = 5.0
 333    End
 334  
 335    Behavior = SquishCollide ModuleTag_10
 336      ;nothing
 337    End
 338  
 339  ; --- begin Death modules ---
 340    Behavior = SlowDeathBehavior ModuleTag_Death01
 341      DeathTypes          = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA
 342      SinkDelay           = 3000
 343      SinkRate            = 0.5     ; in Dist/Sec
 344      DestructionDelay    = 8000
 345      FX                  = INITIAL FX_RedGuardDie
 346    End
 347    Behavior = SlowDeathBehavior ModuleTag_Death02
 348      DeathTypes          = NONE +CRUSHED +SPLATTED
 349      SinkDelay           = 3000
 350      SinkRate            = 0.5     ; in Dist/Sec
 351      DestructionDelay    = 8000
 352      FX                  = INITIAL FX_GIDieCrushed
 353    End
 354    Behavior = SlowDeathBehavior ModuleTag_Death03
 355      DeathTypes          = NONE +EXPLODED
 356      SinkDelay           = 3000
 357      SinkRate            = 0.5     ; in Dist/Sec
 358      DestructionDelay    = 8000
 359      FX                  = INITIAL FX_RedGuardDie
 360      FlingForce          = 8
 361      FlingForceVariance  = 3
 362      FlingPitch          = 60
 363      FlingPitchVariance  = 10
 364    End
 365    Behavior = SlowDeathBehavior ModuleTag_Death04
 366      DeathTypes          = NONE +BURNED
 367      DestructionDelay    = 0
 368      FX                  = INITIAL FX_DieByFireChina
 369      OCL                 = INITIAL OCL_FlamingInfantry
 370    End
 371    Behavior = SlowDeathBehavior ModuleTag_Death05
 372      DeathTypes          = NONE +POISONED
 373      DestructionDelay    = 0
 374      FX                  = INITIAL FX_DieByToxinChina
 375      OCL                 = INITIAL OCL_ToxicInfantry
 376    End
 377    Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag
 378      DeathTypes          = NONE +POISONED_BETA
 379      DestructionDelay    = 0
 380      FX                  = INITIAL FX_DieByToxinChina
 381      OCL                 = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones
 382    End
 383  
 384    Behavior = SlowDeathBehavior ModuleTag_Death07
 385      DeathTypes          = NONE +POISONED_GAMMA
 386      DestructionDelay    = 0
 387      FX                  = INITIAL FX_DieByToxinChina
 388      OCL                 = INITIAL OCL_ToxicInfantryGamma
 389    End
 390  ; --- end Death modules ---
 391  
 392    Behavior = PoisonedBehavior ModuleTag_15
 393      PoisonDamageInterval = 100  ; Every this many msec I will retake the poison damage dealt me...
 394      PoisonDuration = 3000       ; ... for this long after last hit by poison damage
 395    End
 396  
 397    Behavior = SpecialAbility ModuleTag_16
 398      SpecialPowerTemplate      = SpecialAbilityRedGuardCaptureBuilding
 399      UpdateModuleStartsAttack  = Yes
 400      StartsPaused              = Yes
 401      InitiateSound         = RedGuardVoiceCapture
 402    End
 403    Behavior = SpecialAbilityUpdate ModuleTag_17
 404      SpecialPowerTemplate  = SpecialAbilityRedGuardCaptureBuilding
 405      StartAbilityRange  = 5.0
 406      UnpackTime            = 3000  ; (changing this will scale anim speed)
 407      PreparationTime       = 20000 ; time to complete hack once prepared (changing this will scale anim speed)
 408      PackTime              = 2000  ; (changing this will scale anim speed)
 409      DoCaptureFX           = Yes
 410      AwardXPForTriggering  = 4
 411      ;SkillPointsForTriggering = ???  -- Dustin, fill me out if you want different balance values.
 412    End
 413  
 414    Behavior = UnpauseSpecialPowerUpgrade ModuleTag_18
 415      SpecialPowerTemplate = SpecialAbilityRedGuardCaptureBuilding
 416      TriggeredBy = Upgrade_InfantryCaptureBuilding
 417    End
 418  
 419    Geometry = CYLINDER
 420    GeometryMajorRadius = 7.0
 421    GeometryMinorRadius = 7.0
 422    GeometryHeight = 12.0
 423    GeometryIsSmall = Yes
 424    Shadow = SHADOW_DECAL
 425    ShadowSizeX = 14;
 426    ShadowSizeY = 14;
 427    ShadowTexture = ShadowI;
 428    BuildCompletion = APPEARS_AT_RALLY_POINT
 429  
 430  End
 431  
 432  
 433  
 434  
 435  ;------------------------------------------------------------------------------
 436  Object ChinaInfantryBlackLotus
 437  
 438    ; *** ART Parameters ***
 439    SelectPortrait         = SNSprLotus_L
 440    ButtonImage            = SNSprLotus
 441    
 442    ;UpgradeCameo1 = NONE
 443    ;UpgradeCameo2 = NONE
 444    ;UpgradeCameo3 = NONE
 445    ;UpgradeCameo4 = NONE
 446    ;UpgradeCameo5 = NONE
 447    
 448    Draw = W3DModelDraw ModuleTag_01
 449  
 450      OkToChangeModelColor = Yes
 451      
 452      ; --- idle
 453      DefaultConditionState
 454        Model             = NIHERO_SKN
 455        IdleAnimation     = NIHERO_SKL.NIHERO_STA 0 17
 456        IdleAnimation     = NIHERO_SKL.NIHero_IDA
 457        IdleAnimation     = NIHERO_SKL.NIHero_IDB
 458        AnimationMode     = ONCE
 459        TransitionKey     = TRANS_Stand
 460      End
 461  
 462      ConditionState      = REALLYDAMAGED
 463        IdleAnimation     = NIHERO_SKL.NIHERO_ISTA 0 30
 464        IdleAnimation     = NIHERO_SKL.NIHero_IIDA
 465        AnimationMode     = ONCE
 466        TransitionKey     = TRANS_StandInjured
 467      End
 468  
 469      TransitionState     = TRANS_Stand TRANS_StandInjured
 470        Animation         = NIHero_SKL.NIHero_ISTAHIT
 471        AnimationMode     = ONCE
 472      End
 473  
 474      ; --- moving
 475      ConditionState      = MOVING
 476        Animation         = NIHero_SKL.NIHero_RNA
 477        AnimationMode     = LOOP
 478        Flags             = RANDOMSTART
 479        TransitionKey     = None
 480        ParticleSysBone   = None InfantryDustTrails
 481      End
 482      AliasConditionState = MOVING UNPACKING
 483  
 484      ConditionState      = MOVING REALLYDAMAGED
 485        Animation         = NIHero_SKL.NIHero_IRNA
 486        AnimationMode     = LOOP
 487        Flags             = RANDOMSTART
 488        TransitionKey     = None
 489        ParticleSysBone   = None InfantryDustTrails
 490      End
 491      AliasConditionState = MOVING UNPACKING REALLYDAMAGED
 492  
 493      ; --- packing states
 494      ConditionState      = UNPACKING
 495        ;Preparing to attack (unpacking gear)
 496        Animation         = NIHero_SKL.NIHero_ATA1
 497        AnimationMode     = ONCE
 498      End
 499      AliasConditionState = UNPACKING FIRING_A
 500  
 501      ConditionState      = FIRING_A
 502        ;Processing attack (hacking)
 503        Animation         = NIHero_SKL.NIHero_ATA2
 504        AnimationMode     = LOOP
 505        TransitionKey     = TRANS_FiringA
 506      End
 507  
 508      ConditionState      = PACKING
 509        ;Completing attack (packing gear)
 510        Animation         = NIHero_SKL.NIHero_ATA3
 511        AnimationMode     = ONCE
 512      End
 513      AliasConditionState = FIRING_A PACKING 
 514  
 515      TransitionState     = TRANS_FiringA TRANS_FiringAInjured
 516        Animation         = NIHero_SKL.NIHero_IATAHIT
 517        AnimationMode     = ONCE
 518      End
 519  
 520      ; --- injured-packing states
 521      ConditionState      = UNPACKING REALLYDAMAGED
 522        ;Preparing to attack (unpacking gear)
 523        Animation         = NIHero_SKL.NIHero_IATA1
 524        AnimationMode     = ONCE
 525      End
 526      AliasConditionState = UNPACKING FIRING_A REALLYDAMAGED
 527  
 528      ConditionState      = FIRING_A REALLYDAMAGED
 529        ;Processing attack (hacking)
 530        Animation         = NIHero_SKL.NIHero_IATA2
 531        AnimationMode     = LOOP
 532        TransitionKey     = TRANS_FiringAInjured
 533      End
 534  
 535      ConditionState      = PACKING REALLYDAMAGED
 536        ;Completing attack (packing gear)
 537        Animation         = NIHero_SKL.NIHero_IATA3
 538        AnimationMode     = ONCE
 539      End
 540      AliasConditionState = FIRING_A PACKING REALLYDAMAGED
 541  
 542      ; --- packing-dying states
 543  ; code doesn't really support this. Oh well.
 544  ;    ConditionState      = DYING RAISING_FLAG
 545  ;      Animation         = NIHero_SKL.NIHero_IDTA
 546  ;      Animation         = NIHero_SKL.NIHero_IDTB
 547  ;      AnimationMode     = ONCE
 548  ;    End
 549  ;    AliasConditionState = DYING RAISING_FLAG EXPLODED_FLAILING EXPLODED_BOUNCING
 550  
 551      ; --- normal-dying states
 552      ConditionState      = DYING
 553        Animation         = NIHero_SKL.NIHero_DTA
 554        Animation         = NIHero_SKL.NIHero_DTB
 555        AnimationMode     = ONCE
 556        TransitionKey     = TRANS_Dying
 557      End
 558  
 559      TransitionState     = TRANS_Dying TRANS_Flailing
 560        Animation         = NIHero_SKL.NIHero_ADTF1
 561        AnimationMode     = ONCE
 562      End
 563  
 564      ConditionState      = DYING EXPLODED_FLAILING
 565        Animation         = NIHero_SKL.NIHero_ADTF2
 566        AnimationMode     = LOOP
 567        TransitionKey     = TRANS_Flailing
 568      End
 569  
 570      ConditionState      = DYING EXPLODED_BOUNCING
 571        Animation         = NIHero_SKL.NIHero_ADTF3
 572        AnimationMode     = ONCE
 573        TransitionKey     = None
 574      End
 575  
 576      ; --- cheering states
 577      ConditionState      = SPECIAL_CHEERING
 578        Animation         = NIHERO_SKL.NIHERO_CHA
 579        AnimationMode     = ONCE
 580      End
 581  
 582      ConditionState      = SPECIAL_CHEERING REALLYDAMAGED
 583        Animation         = NIHERO_SKL.NIHERO_ICHA
 584        AnimationMode     = ONCE
 585      End
 586  
 587      ; --- falling states
 588      ConditionState      = FREEFALL
 589        Animation         = NIHero_SKL.NIHero_PFL
 590        AnimationMode     = LOOP
 591        TransitionKey     = TRANS_Falling
 592      End
 593      AliasConditionState = FREEFALL REALLYDAMAGED
 594      AliasConditionState = FREEFALL DYING
 595  
 596      ConditionState      = PARACHUTING
 597        Animation         = NIHero_SKL.NIHero_PHG
 598        AnimationMode     = LOOP
 599        TransitionKey     = TRANS_Chute
 600      End
 601      AliasConditionState = PARACHUTING REALLYDAMAGED
 602      AliasConditionState = PARACHUTING DYING
 603  
 604      TransitionState     = TRANS_Falling TRANS_Chute
 605        Animation         = NIHero_SKL.NIHero_POP
 606        AnimationMode     = ONCE
 607        Flags             = PRISTINE_BONE_POS_IN_FINAL_FRAME  ; our bone positions should come from the last frame, rather than the first
 608      End
 609  
 610      TransitionState     = TRANS_Chute TRANS_Stand
 611        Animation         = NIHero_SKL.NIHero_PTD
 612        AnimationMode     = ONCE
 613      End
 614  
 615      TransitionState     = TRANS_Chute TRANS_StandInjured
 616        Animation         = NIHero_SKL.NIHero_PTD
 617        AnimationMode     = ONCE
 618      End
 619  
 620    End
 621  
 622    ; ***DESIGN parameters ***
 623    DisplayName         = OBJECT:BlackLotus
 624    Side                = China
 625    EditorSorting       = INFANTRY
 626    TransportSlotCount  = 1                 ;how many "slots" we take in a transport (0 == not transportable)
 627    WeaponSet
 628      Conditions        = None 
 629      Weapon            = PRIMARY None
 630    End
 631    ArmorSet
 632      Conditions      = None
 633      Armor           = HumanArmor
 634      DamageFX        = InfantryDamageFX
 635    End
 636    VisionRange         = 300
 637    ShroudClearingRange = 400
 638    Prerequisites
 639      Object = ChinaBarracks
 640      Object = ChinaPropagandaCenter
 641    End
 642    BuildCost             = 1500
 643    BuildTime             = 20.0          ;in seconds    
 644    MaxSimultaneousOfType = 1
 645    CommandSet            = ChinaInfantryBlackLotusCommandSet
 646  
 647    ExperienceValue       = 50 100 150 400    ;Experience point value at each level
 648    ExperienceRequired    = 0 150 450 900  ;Experience points needed to gain each level
 649    IsTrainable           = Yes             ;Can gain experience
 650    CrushableLevel        = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
 651    CommandSet            = ChinaInfantryBlackLotusCommandSet
 652  
 653    ; *** AUDIO Parameters ***
 654    VoiceSelect = BlackLotusVoiceSelect
 655    VoiceMove = BlackLotusVoiceMove
 656    VoiceAttack = NoSound ;BlackLotusVoiceAttack
 657    VoiceGuard = BlackLotusVoiceMove
 658    VoiceFear = BlackLotusVoiceFear
 659    VoiceTaskComplete = BlackLotusVoiceCaptureComplete
 660    SoundStealthOn = StealthOn
 661    SoundStealthOff = StealthOff
 662    
 663    UnitSpecificSounds
 664      VoiceCreate          = BlackLotusVoiceCreate
 665      VoiceGarrison = BlackLotusVoiceMove
 666      VoiceEnter = BlackLotusVoiceMove
 667      VoiceEnterHostile = BlackLotusVoiceMove
 668      VoiceStealCashComplete = BlackLotusVoiceCashComplete
 669      VoiceDisableVehicleComplete = BlackLotusVoiceDisableComplete
 670      VoiceCaptureBuildingComplete = BlackLotusVoiceCaptureComplete
 671      VoiceGetHealed      = BlackLotusVoiceMove
 672    End
 673  
 674    ; *** ENGINEERING Parameters ***
 675    RadarPriority = UNIT
 676    KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS INFANTRY SCORE HERO CANNOT_RETALIATE
 677  
 678    Body = ActiveBody ModuleTag_02
 679      MaxHealth       = 200.0
 680      InitialHealth   = 200.0
 681    End
 682  
 683    Behavior = CommandButtonHuntUpdate  ModuleTag_03 ; allows use of command button hunt script with this unit. 
 684    End
 685  
 686    Behavior = AIUpdateInterface ModuleTag_04
 687      AutoAcquireEnemiesWhenIdle = No
 688    End
 689    Locomotor = SET_NORMAL BlackLotusLocomotor
 690    Locomotor = SET_FREEFALL FreeFallLocomotor
 691    Behavior = PhysicsBehavior ModuleTag_05
 692      Mass = 5.0
 693    End
 694    Behavior = StealthUpdate ModuleTag_07
 695      StealthDelay                = 2500 ; msec
 696      StealthForbiddenConditions  = USING_ABILITY
 697      HintDetectableConditions    = USING_ABILITY
 698      InnateStealth               = Yes
 699      OrderIdleEnemiesToAttackMeUponReveal  = Yes
 700      EnemyDetectionEvaEvent      = EnemyBlackLotusDetected
 701      OwnDetectionEvaEvent        = OwnBlackLotusDetected
 702    End
 703  
 704    Behavior = StealthDetectorUpdate ModuleTag_44
 705      DetectionRate   = 500   ; how often to rescan for stealthed things in my sight (msec)
 706      ;DetectionRange = ??? ;Dustin, enable this for independant balancing!
 707      CanDetectWhileGarrisoned  = No ;Garrisoned means being in a structure that you units can shoot out of.
 708      CanDetectWhileContained   = No ;Contained means being in a transport or tunnel network.
 709    End
 710  
 711    Behavior = SpecialAbility ModuleTag_08
 712      SpecialPowerTemplate = SpecialAbilityBlackLotusCaptureBuilding
 713      UpdateModuleStartsAttack = Yes
 714      InitiateSound         = BlackLotusVoiceHackBuilding
 715    End
 716    Behavior = SpecialAbilityUpdate ModuleTag_09
 717      SpecialPowerTemplate  = SpecialAbilityBlackLotusCaptureBuilding
 718      StartAbilityRange     = 150.0
 719      UnpackTime            = 6730 ;animation time is 6730 (changing this will scale anim speed)
 720      PackTime              = 2800 ;animation time is 5800 (changing this will scale anim speed)
 721      PreparationTime       = 6000 ;time to complete hack once prepared (unpacked)
 722      SpecialObject         = BinaryDataStream
 723      DoCaptureFX           = Yes
 724      PackSound             = BlackLotusPack
 725      UnpackSound           = BlackLotusUnpack
 726      TriggerSound          = BlackLotusTrigger
 727      PrepSoundLoop         = BlackLotusPrepLoop
 728      AwardXPForTriggering  = 20
 729      ;SkillPointsForTriggering = ???  -- Dustin, fill me out if you want different balance values.
 730    End
 731    Behavior = SpecialAbility ModuleTag_10
 732      SpecialPowerTemplate      = SpecialAbilityBlackLotusDisableVehicleHack
 733      UpdateModuleStartsAttack  = Yes
 734      InitiateSound           = BlackLotusVoiceHackVehicle
 735    End
 736    Behavior = SpecialAbilityUpdate ModuleTag_11
 737      SpecialPowerTemplate    = SpecialAbilityBlackLotusDisableVehicleHack
 738      StartAbilityRange       = 150.0
 739      UnpackTime              = 2000 ;6730 ;animation time is 6730 (changing this will scale anim speed)
 740      PackTime                = 1000 ;2800 ;animation time is 5800 (changing this will scale anim speed)
 741      PreparationTime         = 2000 ;time to complete hack once prepared (unpacked)
 742      EffectDuration          = 15000 ;duration vehicle is disabled  (30 seconds)
 743      DisableFXParticleSystem = DisabledEffectBinaryShower0
 744      SpecialObject           = BinaryDataStream
 745      PackSound               = BlackLotusPack
 746      UnpackSound             = BlackLotusUnpack
 747      TriggerSound            = BlackLotusTrigger
 748      PrepSoundLoop           = BlackLotusPrepLoop
 749      AwardXPForTriggering    = 0
 750      ;SkillPointsForTriggering = ???  -- Dustin, fill me out if you want different balance values.
 751    End
 752    Behavior = SpecialAbility ModuleTag_12
 753      SpecialPowerTemplate      = SpecialAbilityBlackLotusStealCashHack
 754      UpdateModuleStartsAttack  = Yes
 755      InitiateSound         = BlackLotusVoiceHackCash
 756    End
 757    Behavior = SpecialAbilityUpdate ModuleTag_13
 758      SpecialPowerTemplate  = SpecialAbilityBlackLotusStealCashHack
 759      StartAbilityRange     = 150.0
 760      UnpackTime            = 6730 ;animation time is 6730 (changing this will scale anim speed)
 761      PackTime              = 5800 ;animation time is 5800 (changing this will scale anim speed)
 762      PreparationTime       = 6000 ;time to complete hack once prepared (unpacked)
 763      EffectValue           = 1000 ;amount of cash stolen
 764      SpecialObject         = BinaryDataStream
 765      PackSound             = BlackLotusPack
 766      UnpackSound           = BlackLotusUnpack
 767      TriggerSound          = BlackLotusTrigger
 768      PrepSoundLoop         = BlackLotusPrepLoop
 769      AwardXPForTriggering  = 20
 770      ;SkillPointsForTriggering = ???  -- Dustin, fill me out if you want different balance values.
 771    End
 772   
 773    ;Hero units can't be squished!
 774    ;Behavior = SquishCollide ModuleTag_14
 775    ;  ;nothing
 776    ;End
 777  
 778  
 779  ; --- begin Death modules ---
 780    Behavior = SlowDeathBehavior ModuleTag_Death01
 781      DeathTypes          = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA
 782      SinkDelay           = 3000
 783      SinkRate            = 0.5     ; in Dist/Sec
 784      DestructionDelay    = 8000
 785      FX                  = INITIAL FX_BlackLotusDie
 786    End
 787    Behavior = SlowDeathBehavior ModuleTag_Death02
 788      DeathTypes          = NONE +CRUSHED +SPLATTED
 789      SinkDelay           = 3000
 790      SinkRate            = 0.5     ; in Dist/Sec
 791      DestructionDelay    = 8000
 792      FX                  = INITIAL FX_GIDieCrushed
 793    End
 794    Behavior = SlowDeathBehavior ModuleTag_Death03
 795      DeathTypes          = NONE +EXPLODED
 796      SinkDelay           = 3000
 797      SinkRate            = 0.5     ; in Dist/Sec
 798      DestructionDelay    = 8000
 799      FX                  = INITIAL FX_BlackLotusDie
 800      FlingForce          = 8
 801      FlingForceVariance  = 3
 802      FlingPitch          = 60
 803      FlingPitchVariance  = 10
 804    End
 805    Behavior = SlowDeathBehavior ModuleTag_Death04
 806      DeathTypes          = NONE +BURNED
 807      DestructionDelay    = 0
 808      FX                  = INITIAL FX_DieByFireFemale
 809      OCL                 = INITIAL OCL_FlamingInfantry
 810    End
 811    Behavior = SlowDeathBehavior ModuleTag_Death05
 812      DeathTypes          = NONE +POISONED
 813      DestructionDelay    = 0
 814      FX                  = INITIAL FX_DieByToxinFemale
 815      OCL                 = INITIAL OCL_ToxicInfantry
 816    End
 817    Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag
 818      DeathTypes          = NONE +POISONED_BETA
 819      DestructionDelay    = 0
 820      FX                  = INITIAL FX_DieByToxinFemale
 821      OCL                 = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones
 822    End
 823  
 824    Behavior = SlowDeathBehavior ModuleTag_Death07
 825      DeathTypes          = NONE +POISONED_GAMMA
 826      DestructionDelay    = 0
 827      FX                  = INITIAL FX_DieByToxinFemale
 828      OCL                 = INITIAL OCL_ToxicInfantryGamma
 829    End
 830  ; --- end Death modules ---
 831  
 832    Behavior = PoisonedBehavior ModuleTag_17
 833      PoisonDamageInterval  = 100  ; Every this many msec I will retake the poison damage dealt me...
 834      PoisonDuration        = 3000       ; ... for this long after last hit by poison damage
 835    End
 836   
 837    Geometry = CYLINDER
 838    GeometryMajorRadius = 10.0
 839    GeometryMinorRadius = 10.0
 840    GeometryHeight = 12.0
 841    GeometryIsSmall = Yes
 842    Shadow = SHADOW_DECAL
 843    ShadowSizeX = 14;
 844    ShadowSizeY = 14;
 845    ShadowTexture = ShadowI;
 846    BuildCompletion = APPEARS_AT_RALLY_POINT
 847  
 848  End
 849  
 850  ;------------------------------------------------------------------------------
 851  Object ChinaInfantryTankHunter
 852  
 853    ; *** ART Parameters ***
 854    SelectPortrait         = SNTankHunter_L
 855    ButtonImage            = SNTankHunter
 856    
 857    UpgradeCameo1 = Upgrade_Nationalism
 858    ;UpgradeCameo2 = NONE
 859    ;UpgradeCameo3 = NONE
 860    ;UpgradeCameo4 = NONE
 861    ;UpgradeCameo5 = NONE
 862  
 863    Draw = W3DModelDraw ModuleTag_01
 864      OkToChangeModelColor = Yes
 865    
 866    
 867      DefaultConditionState
 868        Model             = NIMSST_SKN
 869        IdleAnimation     = NIMSST_SKL.NIMSST_STA 0 30
 870        IdleAnimation     = NIMSST_SKL.NIMSST_IDA
 871        IdleAnimation     = NIMSST_SKL.NIMSST_IDB
 872        AnimationMode     = ONCE
 873        AnimationSpeedFactorRange = 0.8 1.2
 874        TransitionKey     = TRANS_Stand
 875        WeaponMuzzleFlash = PRIMARY MuzzleFX
 876        WeaponFireFXBone  = PRIMARY Muzzle
 877        WeaponLaunchBone  = PRIMARY Muzzle
 878        WeaponLaunchBone  = SECONDARY Muzzle
 879      End
 880      AliasConditionState = REALLYDAMAGED
 881  
 882      ConditionState      = FIRING_A 
 883        Animation         = NIMSST_SKL.NIMSST_ATA 
 884        AnimationMode     = ONCE
 885        TransitionKey     = TRANS_START_FIRING
 886      End
 887      AliasConditionState = REALLYDAMAGED FIRING_A
 888      
 889      ConditionState      = BETWEEN_FIRING_SHOTS_A
 890        Animation         = NIMSST_SKL.NIMSST_STA
 891        AnimationMode     = ONCE
 892        ; this is basically a trick: this guy has a nontrivial animation for firing,
 893        ; and a long recycle time between shots. we want him to finish his fire animation
 894        ; (unless he's ordered to do something else), so this is just a handy trick that
 895        ; says, "if the previous state had this transition key, allow it to finish before
 896        ; switching to us, if possible".
 897        WaitForStateToFinishIfPossible = TRANS_START_FIRING
 898      End
 899      AliasConditionState = REALLYDAMAGED BETWEEN_FIRING_SHOTS_A
 900  
 901      ConditionState      = MOVING
 902        Animation         = NIMSST_SKL.NIMSST_RNA 20
 903        AnimationMode     = LOOP
 904        Flags             = RANDOMSTART
 905        TransitionKey     = None
 906        ParticleSysBone   = None InfantryDustTrails
 907      End
 908      AliasConditionState = REALLYDAMAGED MOVING
 909      AliasConditionState = MOVING ATTACKING
 910      AliasConditionState = MOVING ATTACKING REALLYDAMAGED
 911  
 912      ConditionState      = RELOADING_A
 913        Animation         = NIMSST_SKL.NIMSST_ATA 10
 914        AnimationMode     = ONCE
 915        ;WeaponLaunchBone = PRIMARY WeaponA
 916      End
 917      AliasConditionState = MOVING RELOADING_A
 918      AliasConditionState = REALLYDAMAGED MOVING RELOADING_A
 919  
 920      ConditionState      = DYING
 921        Animation         = NIMSST_SKL.NIMSST_DTA
 922        Animation         = NIMSST_SKL.NIMSST_DTB
 923        AnimationSpeedFactorRange = 0.9 1.25
 924        AnimationMode     = ONCE
 925        TransitionKey     = TRANS_Dying
 926      End
 927      AliasConditionState = DYING RUBBLE
 928  
 929      TransitionState     = TRANS_Dying TRANS_Flailing
 930        Animation         = NIMSST_SKL.NIMSST_ADTD1
 931        AnimationMode     = ONCE
 932      End
 933  
 934      ConditionState      = DYING EXPLODED_FLAILING
 935        Animation         = NIMSST_SKL.NIMSST_ADTD2
 936        AnimationMode     = LOOP
 937        TransitionKey     = TRANS_Flailing
 938      End
 939  
 940      ConditionState      = DYING EXPLODED_BOUNCING
 941        Animation         = NIMSST_SKL.NIMSST_ADTD3
 942        AnimationMode     = ONCE
 943        TransitionKey     = None
 944      End
 945  
 946      ;PARACHUTING ANIMATIONS
 947      ConditionState      = FREEFALL
 948        Animation         = NIMSST_SKL.NIMSST_POP
 949        AnimationMode     = ONCE
 950        TransitionKey     = TRANS_Falling
 951      End
 952      AliasConditionState = FREEFALL REALLYDAMAGED
 953      AliasConditionState = FREEFALL DYING
 954      
 955      ConditionState      = PARACHUTING
 956        Animation         = NIMSST_SKL.NIMSST_PHG
 957        AnimationMode     = LOOP
 958        Flags             = PRISTINE_BONE_POS_IN_FINAL_FRAME  ; our bone positions should come from the last frame, rather than the first
 959        TransitionKey     = TRANS_Chute
 960      End
 961      AliasConditionState = PARACHUTING REALLYDAMAGED
 962      AliasConditionState = PARACHUTING DYING
 963      
 964     ; TransitionState     = TRANS_Falling TRANS_Chute
 965     ;   Animation         = NIMSST_SKL.NIMSST_POP
 966     ;   AnimationMode     = ONCE
 967     ;   Flags             = PRISTINE_BONE_POS_IN_FINAL_FRAME  ; our bone positions should come from the last frame, rather than the first
 968     ; End
 969      
 970      TransitionState     = TRANS_Chute TRANS_Stand
 971        Animation         = NIMSST_SKL.NIMSST_PDN
 972        AnimationMode     = ONCE
 973      End
 974  
 975    End
 976  
 977  
 978    ; ***DESIGN parameters ***
 979    DisplayName      = OBJECT:TankHunter
 980    Side = China
 981    EditorSorting = INFANTRY
 982    TransportSlotCount = 1                 ;how many "slots" we take in a transport (0 == not transportable)
 983    WeaponSet
 984      Conditions = None 
 985      Weapon = PRIMARY ChinaInfantryTankHunterMissileLauncher
 986    End
 987    ArmorSet
 988      Conditions      = None
 989      Armor           = HumanArmor
 990      DamageFX        = InfantryDamageFX
 991    End
 992    VisionRange = 150
 993    ShroudClearingRange = 400
 994    Prerequisites
 995      Object = ChinaBarracks
 996    End
 997    BuildCost = 300
 998    BuildTime = 5.0          ;in seconds    
 999  
1000    ExperienceValue = 20 20 40 60    ;Experience point value at each level
1001    ExperienceRequired = 0 100 200 400  ;Experience points needed to gain each level
1002    IsTrainable = Yes             ;Can gain experience
1003    CrushableLevel         = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
1004    CommandSet      = ChinaInfantryTankHunterCommandSet
1005  
1006    ; *** AUDIO Parameters ***
1007    VoiceSelect = TankHunterVoiceSelect
1008    VoiceMove = TankHunterVoiceMove
1009    VoiceAttack = TankHunterVoiceAttack
1010    VoiceAttackAir = TankHunterVoiceAttack
1011    VoiceGuard = TankHunterVoiceMove
1012    VoiceFear = TankHunterVoiceFear
1013    UnitSpecificSounds
1014      VoiceCreate          = TankHunterVoiceCreate
1015      VoiceGarrison = TankHunterVoiceGarrison
1016      VoiceEnter = TankHunterVoiceMove
1017      VoiceEnterHostile = TankHunterVoiceMove
1018      VoiceGetHealed      = TankHunterVoiceMove
1019    End
1020  
1021    ; *** ENGINEERING Parameters ***
1022    RadarPriority = UNIT
1023    KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SCORE
1024  
1025    Body = ActiveBody ModuleTag_02
1026      MaxHealth       = 100.0
1027      InitialHealth   = 100.0
1028    End
1029  
1030    Behavior = AIUpdateInterface ModuleTag_03
1031      AutoAcquireEnemiesWhenIdle = Yes
1032    End
1033    Locomotor = SET_NORMAL MissileDefenderLocomotor
1034    Behavior = HordeUpdate ModuleTag_04
1035      UpdateRate = 1000    ; how often to recheck horde status (msec)
1036      RubOffRadius = 60    ; if I am this close to a real hordesman, I will get to be an honorary hordesman
1037      Radius = 30          ; how close other units must be to us to count towards our horde-ness (~30 feet or so)
1038      KindOf = INFANTRY    ; what KindOf's must match to count towards horde-ness
1039      AlliesOnly = Yes     ; do we only count allies towards horde status? 
1040      ExactMatch = No      ; do we only count units of our exact same type towards horde status? (overrides kindof)
1041      Count = 5            ; how many units must be within Radius to grant us horde-ness
1042      Action = HORDE       ; when horde-ing, grant us the HORDE bonus
1043    End
1044    Behavior = PhysicsBehavior ModuleTag_05
1045      Mass = 5.0
1046    End
1047  
1048    Behavior = SpecialAbility ModuleTag_07
1049      SpecialPowerTemplate = SpecialAbilityTankHunterTNTAttack
1050      UpdateModuleStartsAttack = Yes
1051      InitiateSound = TankHunterVoiceTNT
1052    End
1053    Behavior = SpecialAbilityUpdate ModuleTag_08
1054      SpecialPowerTemplate = SpecialAbilityTankHunterTNTAttack
1055      StartAbilityRange = 5.0
1056      PreparationTime = 0
1057      SpecialObject = TNTStickyBomb
1058      MaxSpecialObjects = 8
1059      SpecialObjectsPersistWhenOwnerDies = No ;Charges are removed instantly when owner dies (nobody can detonate).
1060      SpecialObjectsPersistent = Yes          ;Charges are persistent till lifetime expires or owner detonates them.
1061      UniqueSpecialObjectTargets = Yes        ;This prevents multiple charges placed on the same object.
1062      FleeRangeAfterCompletion = 100.0         ;Runs away after finishing ability
1063    End
1064  
1065   
1066    Behavior = SquishCollide ModuleTag_09
1067      ;nothing
1068    End
1069  
1070  
1071  ; --- begin Death modules ---
1072    Behavior = SlowDeathBehavior ModuleTag_Death01
1073      DeathTypes          = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA
1074      SinkDelay           = 3000
1075      SinkRate            = 0.5     ; in Dist/Sec
1076      DestructionDelay    = 8000
1077      FX                  = INITIAL FX_TankHunterDie
1078    End
1079    Behavior = SlowDeathBehavior ModuleTag_Death02
1080      DeathTypes          = NONE +CRUSHED +SPLATTED
1081      SinkDelay           = 3000
1082      SinkRate            = 0.5     ; in Dist/Sec
1083      DestructionDelay    = 8000
1084      FX                  = INITIAL FX_GIDieCrushed
1085    End
1086    Behavior = SlowDeathBehavior ModuleTag_Death03
1087      DeathTypes          = NONE +EXPLODED
1088      SinkDelay           = 3000
1089      SinkRate            = 0.5     ; in Dist/Sec
1090      DestructionDelay    = 8000
1091      FX                  = INITIAL FX_TankHunterDie
1092      FlingForce          = 8
1093      FlingForceVariance  = 3
1094      FlingPitch          = 60
1095      FlingPitchVariance  = 10
1096    End
1097    Behavior = SlowDeathBehavior ModuleTag_Death04
1098      DeathTypes          = NONE +BURNED
1099      DestructionDelay    = 0
1100      FX                  = INITIAL FX_DieByFireChina
1101      OCL                 = INITIAL OCL_FlamingInfantry
1102    End
1103    Behavior = SlowDeathBehavior ModuleTag_Death05
1104      DeathTypes          = NONE +POISONED
1105      DestructionDelay    = 0
1106      FX                  = INITIAL FX_DieByToxinChina
1107      OCL                 = INITIAL OCL_ToxicInfantry
1108    End
1109    Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag
1110      DeathTypes          = NONE +POISONED_BETA
1111      DestructionDelay    = 0
1112      FX                  = INITIAL FX_DieByToxinChina
1113      OCL                 = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones
1114    End
1115  
1116    Behavior = SlowDeathBehavior ModuleTag_Death07
1117      DeathTypes          = NONE +POISONED_GAMMA
1118      DestructionDelay    = 0
1119      FX                  = INITIAL FX_DieByToxinChina
1120      OCL                 = INITIAL OCL_ToxicInfantryGamma
1121    End
1122  ; --- end Death modules ---
1123  
1124    Behavior = PoisonedBehavior ModuleTag_12
1125      PoisonDamageInterval = 100  ; Every this many msec I will retake the poison damage dealt me...
1126      PoisonDuration = 3000       ; ... for this long after last hit by poison damage
1127    End
1128   
1129    Geometry = CYLINDER
1130    GeometryMajorRadius = 10.0
1131    GeometryMinorRadius = 10.0
1132    GeometryHeight = 12.0
1133    GeometryIsSmall = Yes
1134    Shadow = SHADOW_DECAL
1135    ShadowSizeX = 14;
1136    ShadowSizeY = 14;
1137    ShadowTexture = ShadowI;
1138    BuildCompletion = APPEARS_AT_RALLY_POINT
1139  
1140  End
1141  
1142  
1143  
1144  ;------------------------------------------------------------------------------
1145  Object ChinaInfantryHacker
1146  
1147    ; *** ART Parameters ***
1148    SelectPortrait         = SNHacker2_L
1149    ButtonImage            = SNHacker2
1150    
1151    ;UpgradeCameo1 = NONE
1152    ;UpgradeCameo2 = NONE
1153    ;UpgradeCameo3 = NONE
1154    ;UpgradeCameo4 = NONE
1155    ;UpgradeCameo5 = NONE
1156  
1157    Draw = W3DModelDraw ModuleTag_01
1158      OkToChangeModelColor = Yes
1159  
1160      ;NORMAL STANDING
1161      DefaultConditionState
1162        Model = NIHCKR_SKN
1163        IdleAnimation = NIHCKR_SKL.NIHCKR_STA 0 25
1164        ;Regular spice animations
1165        IdleAnimation = NIHCKR_SKL.NIHCKR_IDA
1166        IdleAnimation = NIHCKR_SKL.NIHCKR_IDB
1167        AnimationMode = ONCE
1168        WeaponFireFXBone = PRIMARY Bone_SatCom
1169        TransitionKey = TRANS_Stand
1170      End
1171      AliasConditionState = REALLYDAMAGED
1172  
1173      ConditionState = MOVING
1174        Animation = NIHCKR_SKL.NIHCKR_RNA 14
1175        AnimationMode = LOOP
1176        Flags = RANDOMSTART
1177        TransitionKey = None
1178        ParticleSysBone   = None InfantryDustTrails
1179      End
1180      AliasConditionState = MOVING UNPACKING
1181      AliasConditionState = MOVING UNPACKING REALLYDAMAGED
1182  
1183      ConditionState = UNPACKING
1184        Animation = NIHCKR_SKL.NIHCKR_ATB1
1185        AnimationMode = ONCE
1186      End
1187      AliasConditionState = UNPACKING FIRING_A
1188      AliasConditionState = UNPACKING REALLYDAMAGED
1189      AliasConditionState = UNPACKING FIRING_A REALLYDAMAGED
1190  
1191      ;HACKING ATTACK
1192      ConditionState = FIRING_A
1193        Animation = NIHCKR_SKL.NIHCKR_ATB2
1194        AnimationMode = LOOP
1195        TransitionKey = TRANS_FiringA
1196      End
1197      AliasConditionState = FIRING_A REALLYDAMAGED
1198  
1199      ConditionState = PACKING
1200        Animation = NIHCKR_SKL.NIHCKR_ATB3
1201        AnimationMode = ONCE
1202      End
1203      AliasConditionState = PACKING FIRING_A
1204      AliasConditionState = PACKING REALLYDAMAGED
1205      AliasConditionState = PACKING FIRING_A REALLYDAMAGED
1206  
1207  
1208  
1209      TransitionState = TRANS_FiringA TRANS_Stand ; I was stopped by a stop command, so I get no proper PACKING state
1210        Animation = NIHCKR_SKL.NIHCKR_ATB3
1211        AnimationMode = ONCE
1212      End
1213  
1214  
1215      ConditionState = FREEFALL
1216        Animation = NIHCKR_SKL.NIHCKR_PFL
1217        AnimationMode = LOOP
1218        TransitionKey = TRANS_Falling
1219      End
1220      AliasConditionState = FREEFALL REALLYDAMAGED
1221      AliasConditionState = FREEFALL DYING
1222  
1223      ConditionState = PARACHUTING
1224        Animation = NIHCKR_SKL.NIHCKR_PHG
1225        AnimationMode = LOOP
1226        Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME  ; our bone positions should come from the last frame, rather than the first
1227        TransitionKey = TRANS_Chute
1228      End
1229      AliasConditionState = PARACHUTING REALLYDAMAGED
1230      AliasConditionState = PARACHUTING DYING
1231  
1232  
1233      ConditionState = DYING
1234        Animation = NIHCKR_SKL.NIHCKR_DTA
1235        Animation = NIHCKR_SKL.NIHCKR_DTB
1236        AnimationMode = ONCE
1237        TransitionKey = TRANS_Dying
1238      End
1239  
1240      TransitionState = TRANS_Dying TRANS_Flailing
1241        Animation = NIHCKR_SKL.NIHCKR_ADTG1
1242        AnimationMode = ONCE
1243      End
1244  
1245      ConditionState = DYING EXPLODED_FLAILING
1246        Animation = NIHCKR_SKL.NIHCKR_ADTG2
1247        AnimationMode = LOOP
1248        TransitionKey = TRANS_Flailing
1249      End
1250  
1251      ConditionState = DYING EXPLODED_BOUNCING
1252        Animation = NIHCKR_SKL.NIHCKR_ADTG3
1253        AnimationMode = ONCE
1254        TransitionKey = None
1255      End
1256  
1257      ConditionState = SPECIAL_CHEERING
1258        Animation = NIHCKR_SKL.NIHCKR_CHA
1259        AnimationMode = LOOP
1260      End
1261  
1262      TransitionState = TRANS_Falling TRANS_Chute
1263        Animation = NIHCKR_SKL.NIHCKR_POP
1264        AnimationMode = ONCE
1265        Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME  ; our bone positions should come from the last frame, rather than the first
1266      End
1267  
1268      TransitionState = TRANS_Chute TRANS_Stand
1269        Animation = NIHCKR_SKL.NIHCKR_PTD
1270        AnimationMode = ONCE
1271      End
1272  
1273    End
1274  
1275    ; ***DESIGN parameters ***
1276    DisplayName      = OBJECT:Hacker
1277    Side = China
1278    EditorSorting = INFANTRY
1279    TransportSlotCount = 1                 ;how many "slots" we take in a transport (0 == not transportable)
1280  
1281    ArmorSet
1282      Conditions      = None
1283      Armor           = HumanArmor
1284      DamageFX        = InfantryDamageFX
1285    End
1286    VisionRange = 150
1287    ShroudClearingRange = 300
1288    Prerequisites
1289      Object = ChinaBarracks
1290      Object = ChinaPropagandaCenter
1291    End
1292    BuildCost = 625
1293    BuildTime = 20.0          ;in seconds    
1294    ExperienceValue = 50 100 150 400    ;Experience point value at each level
1295    ExperienceRequired = 0 100 300 500  ;Experience points needed to gain each level
1296    IsTrainable = Yes             ;Can gain experience
1297  
1298    CrushableLevel         = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
1299    CommandSet      = ChinaInfantryHackerCommandSet
1300  
1301    ; *** AUDIO Parameters ***
1302    VoiceSelect = HackerVoiceSelect
1303    VoiceMove = HackerVoiceMove
1304    VoiceAttack = NoSound
1305    VoiceGuard = HackerVoiceMove
1306    VoiceFear = HackerVoiceFear
1307    VoiceTaskComplete = HackerVoiceHackComplete
1308    UnitSpecificSounds
1309      VoiceGarrison = HackerVoiceGarrison
1310      VoiceCreate     = HackerVoiceCreate
1311      UnitPack        = HackerPack
1312      UnitUnpack      = HackerUnpack
1313      UnitCashPing    = HackerCashPing
1314      VoiceEnter = HackerVoiceMove
1315      VoiceEnterHostile = HackerVoiceMove
1316      VoiceGetHealed      = HackerVoiceMove
1317      VoiceHackInternet   = HackerVoiceModeInternet
1318    End
1319  
1320    ; *** ENGINEERING Parameters ***
1321    RadarPriority = UNIT
1322    KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS INFANTRY SCORE IGNORES_SELECT_ALL MONEY_HACKER
1323  
1324    Body = ActiveBody ModuleTag_02
1325      MaxHealth       = 100.0
1326      InitialHealth   = 100.0
1327    End
1328  
1329    Behavior = HackInternetAIUpdate ModuleTag_03
1330      UnpackTime          = 7300 ;animation time is 7300 (changing this will scale anim speed)
1331      PackTime            = 5133 ;animation time is 5133 (changing this will scale anim speed)
1332      CashUpdateDelay     = 2000
1333      CashUpdateDelayFast = 1800  ; Fast speed used inside a container (can only hack inside an Internet Center)
1334      RegularCashAmount   = 5
1335      VeteranCashAmount   = 6
1336      EliteCashAmount     = 8
1337      HeroicCashAmount    = 10
1338      XpPerCashUpdate     = 1
1339      PackUnpackVariationFactor = 0.5 ;Adds + or - 20% to pack and unpack time randomly.
1340    End
1341    Locomotor = SET_NORMAL BasicHumanLocomotor
1342   
1343    Behavior = SpecialAbility ModuleTag_04
1344      SpecialPowerTemplate = SpecialAbilityHackerDisableBuilding
1345      UpdateModuleStartsAttack = Yes
1346      InitiateSound         = HackerVoiceHack
1347    End
1348  
1349    Behavior = SpecialAbilityUpdate ModuleTag_05
1350      SpecialPowerTemplate = SpecialAbilityHackerDisableBuilding
1351      StartAbilityRange = 150.0
1352      UnpackTime      = 7300 ;animation time is 7300 (changing this will scale anim speed)
1353      PackTime        = 5133 ;animation time is 5133 (changing this will scale anim speed)
1354      PreparationTime = 3000
1355  
1356      ;PersistentPrepTime = 500 ; old setting
1357      PersistentPrepTime = 333 ; NOTE! This drives how often the disable effect gets triggered
1358                               ; This is also how often a new particle system effect is spawned
1359      EffectDuration = 2000
1360      SpecialObject = BinaryDataStream
1361      DisableFXParticleSystem = DisabledEffectBinaryShower0
1362      PackSound       = HackerPack
1363      UnpackSound     = HackerUnpack
1364      PrepSoundLoop   = HackerPrepLoop
1365      AwardXPForTriggering  = 0    ;Careful, this is persistant so it's a DoT xp gain!
1366      ;SkillPointsForTriggering = ???  -- Dustin, fill me out if you want different balance values.
1367    End
1368  
1369  
1370    Behavior = PhysicsBehavior ModuleTag_06
1371      Mass = 5.0
1372    End
1373  
1374    Behavior = SquishCollide ModuleTag_08
1375      ;nothing
1376    End
1377  
1378  
1379  ; --- begin Death modules ---
1380    Behavior = SlowDeathBehavior ModuleTag_Death01
1381      DeathTypes          = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA
1382      SinkDelay           = 3000
1383      SinkRate            = 0.5     ; in Dist/Sec
1384      DestructionDelay    = 8000
1385      FX                  = INITIAL FX_HackerDie
1386    End
1387    Behavior = SlowDeathBehavior ModuleTag_Death02
1388      DeathTypes          = NONE +CRUSHED +SPLATTED
1389      SinkDelay           = 3000
1390      SinkRate            = 0.5     ; in Dist/Sec
1391      DestructionDelay    = 8000
1392      FX                  = INITIAL FX_GIDieCrushed
1393    End
1394    Behavior = SlowDeathBehavior ModuleTag_Death03
1395      DeathTypes          = NONE +EXPLODED
1396      SinkDelay           = 3000
1397      SinkRate            = 0.5     ; in Dist/Sec
1398      DestructionDelay    = 8000
1399      FX                  = INITIAL FX_HackerDie
1400      FlingForce          = 8
1401      FlingForceVariance  = 3
1402      FlingPitch          = 60
1403      FlingPitchVariance  = 10
1404    End
1405    Behavior = SlowDeathBehavior ModuleTag_Death04
1406      DeathTypes          = NONE +BURNED
1407      DestructionDelay    = 0
1408      FX                  = INITIAL FX_DieByFireChina
1409      OCL                 = INITIAL OCL_FlamingInfantry
1410    End
1411    Behavior = SlowDeathBehavior ModuleTag_Death05
1412      DeathTypes          = NONE +POISONED
1413      DestructionDelay    = 0
1414      FX                  = INITIAL FX_DieByToxinChina
1415      OCL                 = INITIAL OCL_ToxicInfantry
1416    End
1417    Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag
1418      DeathTypes          = NONE +POISONED_BETA
1419      DestructionDelay    = 0
1420      FX                  = INITIAL FX_DieByToxinChina
1421      OCL                 = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones
1422    End
1423  
1424    Behavior = SlowDeathBehavior ModuleTag_Death07
1425      DeathTypes          = NONE +POISONED_GAMMA
1426      DestructionDelay    = 0
1427      FX                  = INITIAL FX_DieByToxinChina
1428      OCL                 = INITIAL OCL_ToxicInfantryGamma
1429    End
1430  ; --- end Death modules ---
1431  
1432    Behavior = PoisonedBehavior ModuleTag_11
1433      PoisonDamageInterval = 100  ; Every this many msec I will retake the poison damage dealt me...
1434      PoisonDuration = 3000       ; ... for this long after last hit by poison damage
1435    End
1436   
1437    Geometry = CYLINDER
1438    GeometryMajorRadius = 10.0
1439    GeometryMinorRadius = 10.0
1440    GeometryHeight = 12.0
1441    GeometryIsSmall = Yes
1442    Shadow = SHADOW_DECAL
1443    ShadowSizeX = 14;
1444    ShadowSizeY = 14;
1445    ShadowTexture = ShadowI;
1446    BuildCompletion = APPEARS_AT_RALLY_POINT
1447  
1448  End


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