home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 April / Gamestar_83_2006-04_dvd.iso / Dema / lotrbfme2_demo.exe / INI.big / data_ini_object_evilfaction_units_isengard_isengardpikeman.ini < prev    next >
Text File  |  2006-01-31  |  24KB  |  857 lines

  1. ; Moved from IsengardInfantry.INI Aug 24 2005
  2.  
  3. ;------------------------------------------------------------------------------
  4. ; aka Isengard Pike Man UrukPikeman UrukHaiPikeman
  5. Object IsengardPikeman              ;BALANCE Isengard Pikeman
  6.   ; *** ART Parameters ***
  7.  
  8.   ; This is required for garrisoned objects - please put in all objects.
  9.   ButtonImage = WOR_UrukPikemen
  10.   SelectPortrait         = UPIsenguard_UrukPikeman
  11.   
  12.   ;SelectPortrait         = SP_OrcAxe
  13.  
  14.   Draw = W3DHordeModelDraw ModuleTag_01
  15.  
  16.     OkToChangeModelColor = Yes
  17.       
  18.     StaticModelLODMode = Yes
  19.     
  20.     ; specify options for static LODs
  21.     LodOptions    = LOW
  22.         AllowMultipleModels        =    ALLOW_MULTIPLE_MODELS_LOW
  23.         MaxRandomTextures        =    MAX_RANDOM_TEXTURES_LOW
  24.         MaxRandomAnimations        =    MAX_RANDOM_ANIMATIONS_LOW
  25.         MaxAnimFrameDelta        =    MAX_ANIM_FRAME_DELTA_LOW
  26.     End
  27.     
  28.     LodOptions    = MEDIUM
  29.         AllowMultipleModels        =    ALLOW_MULTIPLE_MODELS_MED
  30.         MaxRandomTextures        =    MAX_RANDOM_TEXTURES_MED
  31.         MaxRandomAnimations        =    MAX_RANDOM_ANIMATIONS_MED
  32.         MaxAnimFrameDelta        =    MAX_ANIM_FRAME_DELTA_MED
  33.     End
  34.     
  35.     LodOptions    = HIGH
  36.         AllowMultipleModels        =    ALLOW_MULTIPLE_MODELS_HIGH
  37.         MaxRandomTextures        =    MAX_RANDOM_TEXTURES_HIGH
  38.         MaxRandomAnimations        =    MAX_RANDOM_ANIMATIONS_HIGH
  39.         MaxAnimFrameDelta        =    MAX_ANIM_FRAME_DELTA_HIGH
  40.     End
  41.     
  42.     DefaultModelConditionState
  43.       Model = IUPikeman_SKN
  44.       Skeleton = IUPikeman_SKL
  45.     End
  46.  
  47.     ModelConditionState = COMING_OUT_OF_FACTORY
  48.         Model = IUPikeman_SKN
  49.         Skeleton = IUPikeman_SKL
  50.     End
  51.  
  52.        
  53.     IdleAnimationState
  54.         Animation = IDLA
  55.             AnimationName        = IUPikeman_IDLA
  56.             AnimationMode        = ONCE
  57.             AnimationPriority    = 30
  58.             AnimationBlendTime    = 15
  59.         End
  60.         Animation = IDLB
  61.             AnimationName        = IUPikeman_IDLB
  62.             AnimationMode        = ONCE
  63.             AnimationPriority    = 10
  64.             AnimationBlendTime    = 15
  65.         End
  66.         Animation = IDLC
  67.             AnimationName        = IUPikeman_IDLC
  68.             AnimationMode        = ONCE
  69.             AnimationBlendTime    = 15
  70.         End
  71.         StateName = Bored
  72.     BeginScript
  73.         Prev = CurDrawablePrevAnimationState()
  74.         if Prev == "STATE_Planted"    then CurDrawableSetTransitionAnimState("Trans_Down_To_Up") return end
  75.         if Prev == "Selected" or Prev == "Trans_Down_To_Up" then CurDrawableSetTransitionAnimState("TRANS_SB_Normal") end
  76.     EndScript
  77.     End
  78.  
  79.             
  80.     AnimationState                        = PASSENGER
  81.         Animation                        = Grabbed
  82.             AnimationName                = IUPikeman_FLLA
  83.             AnimationMode                = LOOP
  84.         End
  85.     End
  86.     
  87.     AnimationState                        = FREEFALL
  88.         StateName                        = STATE_Falling
  89.         Animation                        = Falling
  90.             AnimationName                = IUPikeman_FLYD
  91.             AnimationMode                = LOOP
  92.             AnimationBlendTime            = 10
  93.         End
  94.     End
  95.     
  96.     
  97.         
  98. ;------special pikeman porcupine formation animations-----------------------------------    
  99.     
  100.     AnimationState = ALTERNATE_FORMATION FIRING_OR_PREATTACK_A
  101.          Animation = ATKC
  102.             AnimationName        = IUPikeman_ATKA
  103.             AnimationMode        = LOOP
  104.             UseWeaponTiming        = Yes    
  105.         End
  106.     End
  107.     
  108.     AnimationState = ALTERNATE_FORMATION FIRING_OR_PREATTACK_A WEAPONSTATE_CLOSE_RANGE ;TEMP
  109.         Animation = ATKC
  110.             AnimationName        = IUPikeman_ATKA
  111.             AnimationMode        = ONCE
  112.             UseWeaponTiming        = Yes
  113.         End
  114.         StateName = PikeUp
  115.     End
  116.     
  117.     AnimationState = ALTERNATE_FORMATION MOVING BACKING_UP
  118.         Animation = Moving_Back
  119.             AnimationName = IUPikeman_BAKA    
  120.             AnimationMode = LOOP
  121.         End    
  122.     End
  123.     
  124.     AnimationState = ALTERNATE_FORMATION MOVING
  125.          Animation = ATKC
  126.             AnimationName        = IUPikeman_RUNB
  127.             AnimationMode        = LOOP
  128.         End
  129.     End
  130.     
  131.         AnimationState = ALTERNATE_FORMATION STUNNED_FLAILING
  132.          Animation = Flying_1
  133.             AnimationName = IUPikeman_FLYD
  134.             AnimationMode = LOOP
  135.         End
  136.         Flags                            = MAINTAIN_FRAME_ACROSS_STATES2
  137.     End
  138.     
  139.     
  140.     AnimationState            = DYING BURNINGDEATH
  141.         Animation
  142.             AnimationName    = IUPikeman_DIEC
  143.             AnimationMode    = ONCE
  144.             AnimationBlendTime = 10
  145.         End
  146.     End
  147.  
  148.     AnimationState                        = ALTERNATE_FORMATION DYING SPLATTED
  149.          Animation                        = Splat
  150.             AnimationName                = IUPikeman_LNDD
  151.             AnimationMode                = ONCE
  152.         End
  153.     End
  154.  
  155.      AnimationState = ALTERNATE_FORMATION DYING AFLAME
  156.         Animation = Flaming_Death
  157.             AnimationName = IUPikeman_MFDA
  158.             AnimationMode = ONCE
  159.         End
  160.     End
  161.  
  162.     AnimationState =  ALTERNATE_FORMATION DYING 
  163.         Animation = Dying_1
  164.             AnimationName = IUPikeman_DIEC
  165.             AnimationMode = ONCE
  166.         End
  167.     End
  168.  
  169.     ; --- stunned anims
  170.     AnimationState = ALTERNATE_FORMATION STUNNED_STANDING_UP
  171.          Animation = Standing_Back_Up
  172.             AnimationName = IUPikeman_GTPA
  173.             AnimationMode = ONCE
  174.             AnimationSpeedFactorRange = 1.5 1.5
  175.         End
  176.     End
  177.  
  178.  
  179.     AnimationState = ALTERNATE_FORMATION STUNNED
  180.          Animation = Splattered_On_Ground
  181.             AnimationName = IUPikeman_LNDD
  182.             AnimationMode = ONCE
  183.         End
  184.     End
  185.  
  186.      AnimationState = ALTERNATE_FORMATION PORCUPINE
  187.          Animation = ATKC
  188.             AnimationName        = IUPikeman_IDLD
  189.             AnimationMode        = LOOP
  190.         End
  191.         StateName = STATE_Planted
  192.         BeginScript
  193.             Prev = CurDrawablePrevAnimationState()
  194.             if Prev ~= "STATE_Planted"    and Prev ~= "Trans_Up_To_Down" then CurDrawableSetTransitionAnimState("Trans_Up_To_Down") return end
  195.         EndScript
  196.     End
  197.     
  198.     
  199.      AnimationState = ALTERNATE_FORMATION
  200.          Animation = ATKC
  201.             AnimationName        = IUPikeman_IDLD
  202.             AnimationMode        = LOOP
  203.         End
  204.     End
  205.     
  206.  
  207.  ;--------------------normal animations---------------------------
  208.  
  209.     
  210.     
  211.     
  212.     
  213.     
  214.     
  215.     ; --- stunned anims --- ;
  216.     
  217.     AnimationState = STUNNED_FLAILING
  218.         Animation = Flying_1
  219.             AnimationName = IUPikeman_FLYD
  220.             AnimationMode = LOOP
  221.         End
  222.         Flags                            = MAINTAIN_FRAME_ACROSS_STATES2
  223.     End
  224.     
  225.      AnimationState = DYING SPLATTED
  226.          Animation = Splat
  227.             AnimationName = IUPikeman_LNDD
  228.             AnimationMode = ONCE
  229.         End
  230.     End
  231.     
  232.     
  233.     ; --- death anims --- ;
  234.  
  235.      AnimationState = DYING AFLAME
  236.         Animation = Flaming_Death
  237.             AnimationName = IUPikeman_MFDA
  238.             AnimationMode = ONCE
  239.         End
  240.     End
  241.     
  242.     AnimationState = DYING EMOTION_ALERT
  243.         Animation = Dying_2
  244.             AnimationName = IUPikeman_DIEC
  245.             AnimationMode = ONCE
  246.         End
  247.     End
  248.  
  249.     AnimationState = DYING
  250.         Animation = Dying_2
  251.             AnimationName = IUPikeman_DTHA
  252.             AnimationMode = ONCE
  253.         End
  254.         Animation = Dying_2
  255.             AnimationName = IUPikeman_DTHB
  256.             AnimationMode = ONCE
  257.         End
  258.     End
  259.  
  260.     AnimationState            = BURNINGDEATH
  261.         Animation
  262.             AnimationName    = IUPikeman_MFDA
  263.             AnimationMode    = LOOP
  264.             Distance        = 40
  265.         End
  266.     End
  267.  
  268.     AnimationState                        = PARALYZED
  269.         Animation
  270.             AnimationName                = IUPikeman_IDLA
  271.             AnimationMode                = LOOP
  272.         End
  273.     End
  274.  
  275.     AnimationState = STUNNED_STANDING_UP
  276.         Animation = Standing_Back_Up
  277.             AnimationName = IUPikeman_GTPA
  278.             AnimationMode = ONCE
  279.             AnimationSpeedFactorRange = 1.5 1.5
  280.         End
  281.     End
  282.  
  283.     AnimationState                        = STUNNED
  284.         StateName                        = STATE_Stunned
  285.         Animation                        = Splattered_On_Ground
  286.             AnimationName                = IUPikeman_LNDD
  287.             AnimationMode                = ONCE
  288.         End
  289.     End
  290.  
  291.     
  292.     AnimationState  = COMING_OUT_OF_FACTORY
  293.         Animation = Being_Built
  294.             AnimationName        = IUPikeman_RUNB
  295.             AnimationMode        = LOOP
  296.             AnimationBlendTime    = 0
  297.         End
  298.     End    
  299.     
  300.     
  301.     AnimationState = MOVING FIRING_OR_PREATTACK_A
  302.         Animation = TrotAndFire
  303.             AnimationName = IUPikeman_ATRA
  304.             AnimationMode = LOOP
  305.         End
  306.         Flags = RANDOMSTART
  307.         ;ParticleSysBone = None InfantryDustTrails
  308.     End
  309.         
  310.         
  311.     AnimationState = MOVING BACKING_UP
  312.         Animation = Moving_Back
  313.             AnimationName = IUPikeman_BAKA
  314.             AnimationMode = LOOP
  315.         End    
  316.     End
  317.     
  318.     AnimationState = MOVING EMOTION_AFRAID
  319.         Animation = Moving_1
  320.             AnimationName = IUPikeman_RUNB
  321.             AnimationMode = LOOP
  322.         End
  323.         Flags = MAINTAIN_FRAME_ACROSS_STATES
  324.         ParticleSysBone = None InfantryDustTrails
  325.     End
  326.     
  327.     AnimationState = MOVING EMOTION_ALERT
  328.         Animation = Moving_1
  329.             AnimationName = IUPikeman_RUNB
  330.             AnimationMode = LOOP
  331.         End
  332.         Flags = MAINTAIN_FRAME_ACROSS_STATES
  333.         ParticleSysBone = None InfantryDustTrails
  334.     End
  335.     
  336.     AnimationState = MOVING ATTACKING
  337.         Animation = Moving_1
  338.             AnimationName = IUPikeman_RUNB
  339.             AnimationMode = LOOP
  340.         End
  341.         Flags = MAINTAIN_FRAME_ACROSS_STATES
  342.         ParticleSysBone = None InfantryDustTrails
  343.     End
  344.     
  345.     AnimationState = MOVING ENGAGED
  346.         Animation = Moving_1
  347.             AnimationName = IUPikeman_RUNB
  348.             AnimationMode = LOOP
  349.         End
  350.         Flags = MAINTAIN_FRAME_ACROSS_STATES
  351.         ParticleSysBone = None InfantryDustTrails
  352.     End
  353.  
  354.     AnimationState = MOVING
  355.         Animation = Moving_1
  356.             AnimationName = IUPikeman_RUNA
  357.             AnimationMode = LOOP
  358.         End
  359.         ParticleSysBone = None InfantryDustTrails
  360.     End
  361.     
  362.  
  363.     ; --- Attacking --- ;
  364.  
  365.     AnimationState =  FIRING_OR_PREATTACK_A
  366.         Animation = KickSinceWeAreMelee
  367.             AnimationName        = IUPikeman_ATKC
  368.             AnimationMode        = ONCE
  369.             UseWeaponTiming        = Yes    
  370.         End
  371.     End
  372.  
  373.     ; --- emotions --- ;
  374.  
  375.     AnimationState                            = WAR_CHANT
  376.         Animation                            = Chant
  377.             AnimationName                    = IUPikeman_IDLC
  378.             AnimationMode                    = LOOP
  379.         End
  380.     End            
  381.  
  382.     AnimationState                            = EMOTION_AFRAID
  383.         Animation                            = FERA
  384.             AnimationName                    = IUPikeman_FERA
  385.             AnimationMode                    = LOOP
  386.         End
  387.         Flags = RANDOMSTART
  388.     End
  389.     
  390.     AnimationState                            = EMOTION_CELEBRATING
  391.         Animation                            = CHRA
  392.             AnimationName                    = IUPikeman_CHRA
  393.             AnimationMode                    = ONCE
  394.             AnimationBlendTime                = 10
  395.         End
  396.         Animation                            = CHRB
  397.             AnimationName                    = IUPikeman_CHRB
  398.             AnimationMode                    = ONCE
  399.             AnimationBlendTime                = 10
  400.         End
  401.         Animation                            = TNTA
  402.             AnimationName                    = IUPikeman_TNTA
  403.             AnimationMode                    = ONCE
  404.             AnimationBlendTime                = 10
  405.         End
  406.         Flags                = RESTART_ANIM_WHEN_COMPLETE
  407.         BeginScript
  408.             Prev = CurDrawablePrevAnimationState()
  409.             if Prev == "STATE_Planted"    then CurDrawableSetTransitionAnimState("Trans_Down_To_Up") return end
  410.         EndScript
  411.     End
  412.     
  413.     AnimationState                            = EMOTION_TAUNTING
  414.         Animation                            = TNTA
  415.             AnimationName                    = IUPikeman_TNTA
  416.             AnimationMode                    = ONCE
  417.             AnimationSpeedFactorRange        = 0.8 1.2
  418.         End
  419.         Animation                            = TNTB
  420.             AnimationName                    = IUPikeman_TNTB
  421.             AnimationMode                    = ONCE
  422.             AnimationSpeedFactorRange        = 0.8 1.2
  423.         End
  424.         Flags                                = RANDOMSTART RESTART_ANIM_WHEN_COMPLETE
  425.         BeginScript
  426.             Prev = CurDrawablePrevAnimationState()
  427.             if Prev == "STATE_Planted"    then CurDrawableSetTransitionAnimState("Trans_Down_To_Up") return end
  428.         EndScript
  429.     End
  430.     
  431.     AnimationState                            = EMOTION_POINTING
  432.         Animation                            = Pointing1
  433.             AnimationName                    = IUPikeman_PNTA
  434.             AnimationMode                    = LOOP
  435.         End
  436.         Flags                                = RANDOMSTART
  437.         BeginScript
  438.             Prev = CurDrawablePrevAnimationState()
  439.             if Prev == "STATE_Planted"    then CurDrawableSetTransitionAnimState("Trans_Down_To_Up") return end
  440.         EndScript
  441.     End
  442.  
  443.     AnimationState                            = EMOTION_ALERT
  444.         Animation                            = ALERT
  445.             AnimationName                    = IUPikeman_IDLE
  446.             AnimationMode                    = LOOP
  447.         End
  448.         Flags                                = RESTART_ANIM_WHEN_COMPLETE MAINTAIN_FRAME_ACROSS_STATES2
  449.         BeginScript
  450.             Prev = CurDrawablePrevAnimationState()
  451.             if Prev == "STATE_Planted"    then CurDrawableSetTransitionAnimState("Trans_Down_To_Up") return end
  452.         EndScript
  453.     End
  454.         
  455.     AnimationState                            = ATTACKING
  456.         Animation                            = ALERT
  457.             AnimationName                    = IUPikeman_IDLE
  458.             AnimationMode                    = LOOP
  459.         End
  460.         Flags                                = RESTART_ANIM_WHEN_COMPLETE MAINTAIN_FRAME_ACROSS_STATES2
  461.         BeginScript
  462.             Prev = CurDrawablePrevAnimationState()
  463.             if Prev == "STATE_Planted"    then CurDrawableSetTransitionAnimState("Trans_Down_To_Up") return end
  464.         EndScript
  465.     End
  466.     
  467.     AnimationState                            = ENGAGED
  468.         Animation                            = ALERT
  469.             AnimationName                    = IUPikeman_IDLE
  470.             AnimationMode                    = LOOP
  471.         End
  472.         Flags                                = RESTART_ANIM_WHEN_COMPLETE MAINTAIN_FRAME_ACROSS_STATES2
  473.         BeginScript
  474.             Prev = CurDrawablePrevAnimationState()
  475.             if Prev == "STATE_Planted"    then CurDrawableSetTransitionAnimState("Trans_Down_To_Up") return end
  476.         EndScript
  477.     End
  478.     
  479.     AnimationState  = JUST_BUILT
  480.       Animation = Being_Built
  481.         AnimationName        = IUPikeman_BLDA
  482.         AnimationMode        = ONCE
  483.         AnimationBlendTime    = 0
  484.       End
  485.     End
  486.  
  487.     AnimationState        = RAISING_FLAG
  488.         Animation
  489.             AnimationName                    = IUPikeman_CHRA
  490.             AnimationMode                    = ONCE
  491.             AnimationSpeedFactorRange        = 0.9 1.1
  492.         End
  493.         Animation
  494.             AnimationName                    = IUPikeman_CHRB
  495.             AnimationMode                    = ONCE
  496.             AnimationSpeedFactorRange        = 0.9 1.1
  497.         End
  498.         Flags                = RESTART_ANIM_WHEN_COMPLETE
  499.     End
  500.         
  501.     AnimationState = SELECTED
  502.         Animation                = Selected_Loop
  503.             AnimationName        = IUPikeman_IDLA
  504.             AnimationMode        = LOOP
  505.             AnimationBlendTime    = 10
  506.         End
  507.         StateName                = Selected
  508.         BeginScript
  509.             Prev = CurDrawablePrevAnimationState()
  510.             if Prev == "STATE_Planted"    then CurDrawableSetTransitionAnimState("Trans_Down_To_Up") return end            
  511.             if Prev == "Bored" then CurDrawableSetTransitionAnimState("TRANS_BS_Normal") end
  512.         EndScript
  513.         Flags = RESTART_ANIM_WHEN_COMPLETE
  514.     End
  515.     
  516.  
  517.     ; --- transition states --- ;
  518.     
  519.     TransitionState = Trans_Down_To_Up
  520.         Animation = Transition
  521.             AnimationName = IUPikeman_PLTB
  522.             AnimationMode = ONCE
  523.         End
  524.     End
  525.     
  526.     TransitionState = Trans_Up_To_Down
  527.         Animation = Transition
  528.             AnimationName = IUPikeman_PLTA
  529.             AnimationMode = ONCE
  530.         End
  531.     End
  532.     
  533.     TransitionState = TRANS_MovingToDown_Alt
  534.         Animation = Transition
  535.             AnimationName = IUPikeman_PLTC
  536.             AnimationMode = ONCE
  537.         End
  538.     End
  539.     
  540.     TransitionState = TRANS_SR_Normal
  541.         Animation = Transition
  542.             AnimationName = IUPikeman_IDLF
  543.             AnimationMode = ONCE
  544.         End
  545.     End
  546.     
  547.     TransitionState = TRANS_RS_Normal
  548.         Animation = Transition
  549.             AnimationName = IUPikeman_IDLF
  550.             AnimationMode = ONCE_BACKWARDS
  551.         End
  552.         Flags = START_FRAME_LAST
  553.     End
  554.         
  555.     TransitionState = TRANS_BS_Normal
  556.         Animation = Transition
  557.             AnimationName                = IUPikeman_IDLC
  558.             AnimationMode                = ONCE
  559.             AnimationBlendTime            = 20
  560.             AnimationMustCompleteBlend    = yes
  561.         End
  562.     End
  563.     
  564.     TransitionState = TRANS_SB_Normal
  565.         Animation = Transition
  566.             AnimationName                = IUPikeman_IDLA
  567.             AnimationMode                = ONCE
  568.             AnimationBlendTime            = 10
  569.             AnimationMustCompleteBlend    = yes
  570.         End
  571.     End
  572.     
  573.     TransitionState = TRANS_BR_Normal
  574.         Animation = Transition
  575.             AnimationName = IUPikeman_IDLF
  576.             AnimationMode = ONCE
  577.         End
  578.     End
  579.     
  580.     TransitionState = TRANS_RB_Normal
  581.         Animation = Transition
  582.             AnimationName = IUPikeman_IDLF
  583.             AnimationMode = ONCE_BACKWARDS
  584.         End
  585.         Flags = START_FRAME_LAST
  586.     End
  587.     
  588.     
  589.     
  590.     TransitionState = TRANS_SR_Alt
  591.     End
  592.     
  593.     TransitionState = TRANS_RS_Alt
  594.     End
  595.     
  596.     TransitionState = TRANS_BS_Alt
  597.     End
  598.     
  599.     TransitionState = TRANS_SB_Alt
  600.     End
  601.     
  602.     TransitionState = TRANS_BR_Alt
  603.     End
  604.     
  605.     TransitionState = TRANS_RB_Alt
  606.     End
  607.     
  608.  End
  609.   
  610.  
  611.     #include "..\..\..\includes\StunDrawModuleSmall.inc"
  612.  
  613.   ; ***DESIGN parameters ***
  614.  
  615.   Side = Isengard
  616.   EditorSorting = UNIT
  617.     ThreatLevel = 1.0
  618.   ThingClass = HORDE_UNIT
  619.   CommandPoints = 4
  620.  
  621.   TransportSlotCount = TRANSPORTSLOTCOUNT_UNIT
  622.   
  623.     WeaponSet
  624.         Conditions = None 
  625.         Weapon = PRIMARY    IsengardPikemanPike ;BALANCE Isengard Pikeman Weapon
  626.     End
  627.     
  628.   ArmorSet
  629.     Conditions      = None
  630.     Armor           = PikemenArmor
  631.     DamageFX        = NormalDamageFX
  632.   End
  633.   ArmorSet
  634.         Conditions      = PLAYER_UPGRADE
  635.         Armor           = PikemenHeavyArmor
  636.         DamageFX        = NormalDamageFX    
  637.   End
  638.  
  639.       ; This is required so that the build phase lasts as long as the anim.
  640.     BuildFadeInOnCreateTime = 0 ; 2.0 ;temporarily set to 0
  641.  
  642.       VisionRange = ISENGARD_URUKPIKEMAN_VISION_RANGE
  643.      ShroudClearingRange = SHROUD_CLEAR_STANDARD
  644.   
  645.       VisionSide = 35%
  646.     VisionRear = 25%
  647.     
  648.     MaxVisionBonusPercent = 300%
  649.     VisionBonusTestRadius = 200
  650.     VisionBonusPercentPerFoot = 2.0%
  651.  
  652.   BountyValue = ISENGARD_URUKPIKEMAN_BOUNTY_VALUE
  653.   DisplayName = OBJECT:IsengardPikeman
  654.   CrushableLevel = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
  655.   CrusherLevel = 0 ;What can I crush?: 0 = small animals, 1 = infantry, 2 = trees, 3 = vehicles
  656.      CrushRevengeWeapon = AntiCavalryInfantryCrushRevenge
  657.  
  658.   CommandSet = IsengardPikemanCommandSet
  659.  
  660.  
  661.   ; *** AUDIO Parameters ***;
  662.  
  663.     ;VoiceAmbushed                = UrukWarriorVoiceAmbushed      OBSOLETE VOICE
  664.     VoiceAttack                = UrukPikemanVoiceAttackMS
  665.     VoiceAttackCharge            = UrukPikemanVoiceAttackCharge
  666.     VoiceAttackStructure            = UrukPikemanVoiceAttackBuilding
  667.     VoiceAttackMachine            = UrukPikemanVoiceAttack
  668.     VoiceCreated                = EVA:UrukPikemanCreated
  669.     VoiceFullyCreated             = EVA:UrukPikemanCreated
  670.     VoiceMove                = UrukPikemanVoiceMoveMS
  671.     VoiceMoveToCamp                = UrukPikemanVoiceMoveCamp
  672.     VoiceMoveWhileAttacking            = UrukPikemanVoiceDisengage
  673.     VoicePriority                = 52
  674.     VoiceRetreatToCastle            = UrukPikemanVoiceRetreat
  675.     VoiceSelect                = UrukPikemanVoiceSelectMS
  676.     VoiceSelectBattle             = UrukPikemanVoiceSelectBattle
  677.     VoiceGuard            = UrukPikemanVoiceMove
  678.     
  679.     VoiceEnterStateAttack            = UrukPikemanVoiceEnterStateAttack
  680.     VoiceEnterStateAttackCharge        = UrukPikemanVoiceEnterStateAttackCharge
  681.     VoiceEnterStateAttackStructure        = UrukPikemanVoiceEnterStateAttackBuilding
  682.     VoiceEnterStateAttackMachine        = UrukPikemanVoiceEnterStateAttackBuilding
  683.     VoiceEnterStateMove            = UrukPikemanVoiceEnterStateMove
  684.     VoiceEnterStateMoveToCamp        = UrukPikemanVoiceEnterStateMoveCamp
  685.     VoiceEnterStateMoveWhileAttacking    = UrukPikemanVoiceEnterStateDisengage
  686.     VoiceEnterStateRetreatToCastle        = UrukPikemanVoiceEnterStateRetreat
  687.     
  688.   UnitSpecificSounds
  689.     VoiceGarrison                        = UrukPikemanVoiceGarrison
  690.     VoiceEnterUnitSlaughterHouse        = UrukPikemanVoiceGarrisonSlaughterHouse
  691.     VoiceEnterUnitEvilMenTransportShip    = UrukPikemanVoiceMoveMS
  692.     VoiceEnterUnitMordorMumakil            = UrukPikemanVoiceMoveMS
  693.     VoiceInitiateCaptureBuilding        = UrukPikemanVoiceMoveMS
  694.   End
  695.  
  696.     CrowdResponseKey = Uruk
  697.  
  698.     #include "..\..\..\includes\StandardUnitEvaEvents.inc"
  699.     ;EvaEventDieOwner            = GroupPikemanDie        ;Eva event to trigger on unit's death. NOTICE THAT this is only for permanent deaths
  700.                                         ;For deaths you can respawn from, use the DeathFX
  701.  
  702.     ClientBehavior = ModelConditionAudioLoopClientBehavior ModuleTag_foo
  703.         ModelCondition = Required:RAISING_FLAG            Excluded:DYING ENGAGED    Sound:EmotionUrukCompilationVoxTauntSinglesLoop
  704.     End
  705.  
  706.     Behavior = LargeGroupAudioUpdate ModuleTag_LGAU                ;Tie into LargeGroupAudio system
  707.         Key = Orc_Infantry UrukHai_Pikeman
  708.     End
  709.  
  710.     ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
  711.         MaxUpdateRangeCap = 800
  712.         AnimationSound = Sound:BodyFallOrc            Animation:IUPikeman_SKL.IUPikeman_DIEC        Frames:56
  713.         AnimationSound = Sound:BodyFallOrc            Animation:IUPikeman_SKL.IUPikeman_DTHA        Frames:23
  714.         AnimationSound = Sound:BodyFallOrc            Animation:IUPikeman_SKL.IUPikeman_DTHB        Frames:34
  715.         AnimationSound = Sound:BodyFallOrc            Animation:IUPikeman_SKL.IUPikeman_LNDD        Frames:2
  716.     End
  717.  
  718.  
  719.   ; *** ENGINEERING Parameters ***
  720.  
  721.   RadarPriority = UNIT
  722.   KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER SCORE THROWN_OBJECT GRAB_AND_DROP URUK ATTACK_NEEDS_LINE_OF_SIGHT CAN_USE_SIEGE_TOWER
  723.  
  724.  
  725.     Body                    =    PorcupineFormationBodyModule ModuleTag_porcupineFormation
  726.         CheerRadius             = EMOTION_CHEER_RADIUS
  727.         MaxHealth            =    ISENGARD_URUKPIKEMAN_HEALTH                ;BALANCE Isengard Pikeman Health
  728.         MaxHealthDamaged        =    ISENGARD_URUKPIKEMAN_HEALTH_DAMAGED        
  729.         ;RecoveryTime            =    ISENGARD_URUKPIKEMAN_HEALTH_RECOVERY_TIME    
  730.         DamageWeaponTemplate        =    PikemenPorcupineDamage
  731.         CrushDamageWeaponTemplate    =    PikemenPorcupineCrushDamage
  732.         CrusherLevelResisted        =    1;    ;What crusher level can I resist?: 1 = infantry, 2 = trees, 3 = vehicles
  733.         BurningDeathBehavior = Yes
  734.         BurningDeathFX       = FX_InfantryBurningFlame
  735.         CheerRadius = EMOTION_CHEER_RADIUS
  736.     End
  737.  
  738.       ;Heavy Armor
  739.     Behavior = ArmorUpgrade ArmorUpgradeModuleTag
  740.         TriggeredBy = Upgrade_IsengardHeavyArmor
  741.         ArmorSetFlag            = PLAYER_UPGRADE
  742.     End
  743.  
  744.     Behavior = SubObjectsUpgrade Armor_Upgrade
  745.         TriggeredBy        = Upgrade_IsengardHeavyArmor
  746.         UpgradeTexture    = IUUrukahi.tga 0 IUUrukahi_HA.tga
  747.         UpgradeTexture    = IUUrukahi_L.tga 0 IUUrukahi_HA.tga
  748.         UpgradeTexture    = IUUrukahi_M.tga 0 IUUrukahi_HA.tga
  749.         RecolorHouse            = Yes
  750.         ExcludeSubobjects        = Forged_Blade
  751.     End
  752.         
  753.     Behavior = SubObjectsUpgrade ForgedBlades_Upgrade
  754.         TriggeredBy        = Upgrade_IsengardForgedBlades
  755.         ShowSubObjects    = Forged_Blade
  756.     End
  757.     
  758.     Behavior = StatusBitsUpgrade ForgedBlades_UpgradeDetection
  759.         TriggeredBy        = Upgrade_IsengardForgedBlades
  760.     End
  761.     
  762.   Behavior = AIUpdateInterface ModuleTag_03
  763.     AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
  764.     AILuaEventsList               = IsengardFighterFunctions    
  765.     MoodAttackCheckRate        = 500
  766.     HoldGroundCloseRangeDistance = 80
  767.     AttackPriority                =     AttackPriority_Spearman
  768.     BurningDeathTime            =    BURNINGDEATH_DURATION_INFANTRY
  769.   End
  770.  
  771.   LocomotorSet
  772.     Locomotor     = HumanLocomotor
  773.     Condition     = SET_NORMAL
  774.     Speed         = NORMAL_EVIL_FAST_MEMBER_SPEED        
  775.   End
  776.  
  777.   LocomotorSet
  778.     Locomotor = BurningDeathLocomotorInfantry
  779.     Condition = SET_BURNINGDEATH
  780.     Speed      = BURNINGDEATH_WANDERSPEED_INFANTRY
  781.   End
  782.  
  783.   Behavior = PhysicsBehavior ModuleTag_04
  784.     GravityMult                = 1.0
  785.     ShockStunnedTimeLow        = 1400  ;msec
  786.     ShockStunnedTimeHigh    = 2400 ;msec
  787.     ShockStandingTime        = 2133 ;msec
  788.   End
  789.   
  790.  ; Doesn't work.  We are a melee horde now.  So we are just gonna have one weapon
  791. ;  Behavior = AimWeaponBehavior AimWeaponModuleTag
  792. ;        AimHighThreshold =  0.15
  793. ;    End
  794.  
  795.   Behavior = SlowDeathBehavior ModuleTag_05
  796.     DeathTypes = ALL -KNOCKBACK
  797.     SinkDelay = 3000
  798.     SinkRate = 0.40     ; in Dist/Sec
  799.     DestructionDelay = 8000
  800.     Sound = INITIAL UrukVoiceDie            ;UrukWarriorVoiceDie
  801.   End
  802.  
  803.   Behavior = SquishCollide ModuleTag_06
  804.     ;nothing
  805.   End
  806.  
  807.   Behavior = SlowDeathBehavior ModuleTag_07
  808.     ; Same as normal death, but no sound (sound already played by SoundImpact = ... )
  809.     DeathTypes = NONE +KNOCKBACK
  810.     SinkDelay = 3000
  811.     SinkRate = 0.40     ; in Dist/Sec
  812.     DestructionDelay = 8000
  813.     Sound = INITIAL UrukVoiceDie
  814.   End
  815.  
  816.  Behavior = BezierProjectileBehavior ModuleTag_08 ; Module starts asleep, and wakes up when thrown.
  817.     ; 
  818.     FirstHeight = 24  ; Height of Bezier control points above highest intervening terrain
  819.     SecondHeight = 24
  820.     FirstPercentIndent = 30% ; Percentage of shot distance control points are placed
  821.     SecondPercentIndent = 70%
  822.     TumbleRandomly = Yes
  823.  
  824.     CrushStyle = Yes ; I don't detonate, I just hit
  825.     DieOnImpact = Yes
  826.     BounceCount = 1   ; When I hit the ground, I'll arc again
  827.     BounceDistance = 40 ; this far
  828.     BounceFirstHeight = 24  ; Height of Bezier control points above highest intervening terrain
  829.     BounceSecondHeight = 24
  830.     BounceFirstPercentIndent = 20% ; Percentage of shot distance control points are placed
  831.     BounceSecondPercentIndent = 80%
  832.  
  833.     GroundHitFX       = FX_ThrownRockGroundHit
  834.     GroundBounceFX    = FX_ThrownRockBounceHit
  835.   End
  836.  
  837.   Behavior = HordeMemberCollide ModuleTag_HMC
  838.     ;nothing
  839.   End
  840.  
  841.  ; Doesn't work.  We are a melee horde now.  So we are just gonna have one weapon
  842. ;  Behavior = DualWeaponBehavior ModuleTag_09
  843.  ;   SwitchWeaponOnCloseRangeDistance = 40
  844.   ;End
  845.  
  846.   Geometry = CYLINDER
  847.   GeometryMajorRadius = 8.0
  848.   GeometryMinorRadius = 8.0
  849.   GeometryHeight = 19.2
  850.   GeometryIsSmall = Yes
  851.  
  852.   Shadow = SHADOW_DECAL
  853.   ShadowSizeX = 21;
  854.   ShadowSizeY = 21;
  855.   ShadowTexture = ShadowI;
  856. End
  857.