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_obsolete_evilmenharadrim.ini < prev    next >
Text File  |  2006-01-31  |  55KB  |  1,870 lines

  1. ;------------------------------------------------------------------------------
  2. ; OBSOLETE OBJECTS (the only Haradrim unit for BFME2 is the HaradrimArcher, found in the MORDOR side)
  3.  
  4.  
  5. ;------------------------------------------------------------------------------
  6. ;Haradrim Lancer, HaradrimLancer, HaradrimSpearmen, HaradrimSpears, HaradrimSpearman
  7. Object MordorHaradrimObsolete
  8.  
  9.   SelectPortrait         = SP_Haradrim
  10.  
  11.     ; This is required for garrisoned objects - please put in all objects.
  12.     ButtonImage = BMHaradrimPalace_Haradrim
  13.   
  14.   ; *** ART Parameters ***
  15.   Draw = W3DHordeModelDraw ModuleTag_01
  16.  
  17.     OkToChangeModelColor = Yes
  18.         
  19.     StaticModelLODMode = Yes
  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.  
  43.     DefaultModelConditionState
  44.       Model = MUHaraLnc_SKN
  45.       WeaponLaunchBone = PRIMARY LANCEBONE
  46.     End
  47.  
  48.     IdleAnimationState
  49.         StateName                =    Idle
  50.         Animation = IDLC
  51.             AnimationName = MUHaraLnc_SKL.MUHaraLnc_IDLC
  52.             AnimationMode = ONCE
  53.             AnimationPriority = 25
  54.             AnimationBlendTime    =    15
  55.         End
  56.         
  57.         BeginScript
  58.             Prev = CurDrawablePrevAnimationState()
  59.             if Prev == "STATE_Selected"  then CurDrawableSetTransitionAnimState("TRANS_Selected_to_Idle") return end
  60.             if Prev == "STATE_Emotion"; or Prev == "CloseRange" or Prev == "FarRange"
  61.             then
  62.                 CurDrawableAllowToContinue();
  63.             end
  64.             CurDrawableSetTransitionAnimState("TRANS_Selected_NoHitch")        
  65.         EndScript
  66.         StateName = Idle
  67.     End
  68.  
  69.     ;-- CONTAINED ANIMATIONS
  70.     ModelConditionState = WEAPONSTATE_CONTAINED
  71.         Model = MUHaradim_SKN
  72.         WeaponLaunchBone = PRIMARY ARRROW
  73.     End
  74.  
  75.     AnimationState                    =    FIRING_OR_PREATTACK_A AIM_HIGH WEAPONSTATE_CONTAINED
  76.         Animation                    =    ATKB
  77.             AnimationName            =    MUHaradim_SKL.MUHaradim_ATKC 
  78.             AnimationMode            =    ONCE
  79.             UseWeaponTiming            =    Yes
  80.         End
  81.     End
  82.  
  83.     AnimationState                    =    FIRING_OR_PREATTACK_A AIM_LOW WEAPONSTATE_CONTAINED
  84.         Animation                    =    ATKC
  85.             AnimationName            =    MUHaradim_SKL.MUHaradim_ATKB 
  86.             AnimationMode            =    ONCE
  87.             UseWeaponTiming            =    Yes
  88.         End
  89.     End
  90.     
  91.     AnimationState = FIRING_OR_PREATTACK_A WEAPONSTATE_CONTAINED
  92.          Animation = Attacking
  93.             AnimationName = MUHaradim_SKL.MUHaradim_ATKA
  94.             AnimationMode = ONCE
  95.             UseWeaponTiming        = Yes
  96.         End
  97.         FrameForPristineBonePositions = 64
  98.     End
  99.  
  100.     AnimationState = AFLAME WEAPONSTATE_CONTAINED
  101.         Animation = Flaming_Death
  102.             AnimationName = MUHaradim_SKL.MUHaradim_FLLA
  103.             AnimationMode = LOOP
  104.         End
  105.         ParticleSysBone     = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes
  106.         ParticleSysBone     = BAT_HEAD FireSmall FollowBone:yes
  107.         ParticleSysBone     = BAT_SPINE1 FireBuildingLargeSmoke FollowBone:yes
  108.         ParticleSysBone     = BAT_SPINE1 FireSmall FollowBone:yes
  109.         ParticleSysBone     = BAT_SPINE2 FireBuildingLargeSmoke FollowBone:yes
  110.         ParticleSysBone     = BAT_SPINE2 FireSmall FollowBone:yes
  111.     End
  112.  
  113.     AnimationState = WEAPONSTATE_CONTAINED
  114.         Animation = IDLA
  115.             AnimationName = MUHaradim_SKL.MUHaradim_IDLA
  116.             AnimationMode = ONCE
  117.             AnimationBlendTime = 10
  118.             AnimationPriority = 25
  119.         End
  120.         Animation = IDLB
  121.             AnimationName = MUHaradim_SKL.MUHaradim_IDLB
  122.             AnimationMode = ONCE
  123.             AnimationBlendTime = 10
  124.         End
  125.         Animation = IDLC
  126.             AnimationName = MUHaradim_SKL.MUHaradim_IDLC
  127.             AnimationMode = ONCE
  128.             AnimationBlendTime = 10
  129.         End
  130.         Flags =    RESTART_ANIM_WHEN_COMPLETE    
  131.         StateName = Idle
  132.         BeginScript
  133.             CurDrawableShowSubObject("arrrow")
  134.         EndScript
  135.     End
  136.  
  137.     ;-- ON THE GROUND ANIMATIONS
  138.     
  139.     AnimationState = THROWN_PROJECTILE
  140.             Animation = Thrown
  141.           AnimationName = MUHaraLnc_SKL.MUHaraLnc_FLYA
  142.             AnimationMode = LOOP
  143.             End
  144.     End
  145.     
  146.     AnimationState                = PASSENGER FREEFALL
  147.         Animation                = Wiggling
  148.             AnimationName        = MUHaraLnc_SKL.MUHaraLnc_FLLA
  149.             AnimationMode        = LOOP
  150.         End
  151.         EnteringStateFX            = FX_ThrownRockPickUp
  152.      End
  153.      
  154.      AnimationState                        = FREEFALL
  155.         Animation                        = Falling
  156.             AnimationName                = MUHaraLnc_SKL.MUHaraLnc_FLYA
  157.             AnimationMode                = LOOP
  158.             AnimationBlendTime            = 10
  159.             AnimationSpeedFactorRange    = 0.4    0.4
  160.         End
  161.     End
  162.     
  163.     ; --- stunned anims
  164.     AnimationState                = STUNNED_FLAILING
  165.         Animation                = Flying
  166.             AnimationName        = MUHaraLnc_SKL.MUHaraLnc_FLYA
  167.             AnimationMode        = LOOP
  168.         End
  169.     End
  170.     
  171.     AnimationState = DYING SPLATTED
  172.          Animation = Splattered_On_Ground
  173.             AnimationName = MUHaraLnc_SKL.MUHaraLnc_LNDA
  174.             AnimationMode = ONCE
  175.         End
  176.         EnteringStateFX = FX_HaradrimHitGround
  177.     End
  178.     
  179.     AnimationState            = DYING STUNNED_FLAILING
  180.          Animation            = Flying
  181.             AnimationName    = MUHaraLnc_SKL.MUHaraLnc_FLYA
  182.             AnimationMode    = LOOP
  183.         End
  184.     End  
  185.  
  186.     AnimationState = DYING AFLAME
  187.         Animation = Flaming_Death
  188.             AnimationName = MUHaraLnc_SKL.MUHaraLnc_DIEA
  189.             AnimationMode = ONCE
  190.         End
  191.         ParticleSysBone     = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes
  192.         ParticleSysBone     = BAT_HEAD FireSmall FollowBone:yes
  193.         ParticleSysBone     = BAT_SPINE1 FireBuildingLargeSmoke FollowBone:yes
  194.         ParticleSysBone     = BAT_SPINE1 FireSmall FollowBone:yes
  195.         ParticleSysBone     = BAT_SPINE2 FireBuildingLargeSmoke FollowBone:yes
  196.         ParticleSysBone     = BAT_SPINE2 FireSmall FollowBone:yes
  197.     End
  198.  
  199.     AnimationState = AFLAME
  200.         Animation = Flaming_Death
  201.             AnimationName = MUHaraLnc_SKL.MUHaraLnc_FLLA
  202.             AnimationMode = LOOP
  203.         End
  204.         ParticleSysBone     = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes
  205.         ParticleSysBone     = BAT_HEAD FireSmall FollowBone:yes
  206.         ParticleSysBone     = BAT_SPINE1 FireBuildingLargeSmoke FollowBone:yes
  207.         ParticleSysBone     = BAT_SPINE1 FireSmall FollowBone:yes
  208.         ParticleSysBone     = BAT_SPINE2 FireBuildingLargeSmoke FollowBone:yes
  209.         ParticleSysBone     = BAT_SPINE2 FireSmall FollowBone:yes
  210.     End
  211.  
  212.     AnimationState = DYING
  213.         StateName            = STATE_Dying
  214.         Animation = dead
  215.             AnimationName = MUHaraLnc_SKL.MUHaraLnc_DIEA
  216.             AnimationMode = MANUAL
  217.         End
  218.         Animation = dead_landed
  219.             AnimationName = MUHaraLnc_SKL.MUHaraLnc_LNDA
  220.             AnimationMode = MANUAL
  221.         End
  222.         Flags = START_FRAME_LAST
  223.         BeginScript
  224.             CurDrawableShowSubObject("LANCE")
  225.             Prev = CurDrawablePrevAnimation()
  226.             if Prev == "DyingTrans"
  227.             then
  228.                 return "dead"
  229.             elseif Prev == "Flying"
  230.             then
  231.                 CurDrawableSetTransitionAnimState("DIE_LAND")
  232.             elseif Prev == "Die_Land"
  233.             then
  234.                 return "dead_landed"
  235.             end
  236.             
  237.             CurDrawableSetTransitionAnimState("DIE_TRANSITION")
  238.             
  239.         EndScript
  240.     End
  241.     
  242.     TransitionState = DIE_TRANSITION
  243.            Animation = DyingTrans
  244.             AnimationName = MUHaraLnc_SKL.MUHaraLnc_DIEA
  245.             AnimationMode = ONCE
  246.         End
  247.     End
  248.     
  249.     TransitionState = DIE_LAND
  250.            Animation = Die_Land
  251.             AnimationName = MUHaraLnc_SKL.MUHaraLnc_LNDA
  252.             AnimationMode = ONCE
  253.         End
  254.     End
  255.  
  256.      
  257.     
  258.     
  259.     AnimationState                = MOVING CLIMBING
  260.         Animation                = Climbing
  261.             AnimationName        = MUHaraLnc_SKL.MUHaraLnc_CLMA
  262.             AnimationMode        = LOOP
  263.         End
  264.     End
  265.     
  266.     AnimationState                = MOVING DAMAGED AFLAME
  267.         ShareAnimation            = Yes
  268.         Animation                = Moving_Damaged
  269.             AnimationName        = MUHaraLnc_SKL.MUHaraLnc_RUNA
  270.             AnimationMode        = LOOP
  271.         End
  272.         ParticleSysBone            = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes
  273.         ParticleSysBone            = BAT_HEAD FireSmall FollowBone:yes
  274.         ParticleSysBone            = BAT_SPINE1 FireBuildingLargeSmoke FollowBone:yes
  275.         ParticleSysBone            = BAT_SPINE1 FireSmall FollowBone:yes
  276.         ParticleSysBone            = BAT_SPINE2 FireBuildingLargeSmoke FollowBone:yes
  277.         ParticleSysBone            = BAT_SPINE2 FireSmall FollowBone:yes
  278.     End
  279.  
  280.     AnimationState                = MOVING AFLAME
  281.         ShareAnimation            = Yes
  282.         Animation                = Moving
  283.             AnimationName        = MUHaraLnc_SKL.MUHaraLnc_RUNA
  284.             AnimationMode        = LOOP
  285.         End
  286.         ParticleSysBone            = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes
  287.         ParticleSysBone            = BAT_HEAD FireSmall FollowBone:yes
  288.         ParticleSysBone            = BAT_SPINE1 FireBuildingLargeSmoke FollowBone:yes
  289.         ParticleSysBone            = BAT_SPINE1 FireSmall FollowBone:yes
  290.         ParticleSysBone            = BAT_SPINE2 FireBuildingLargeSmoke FollowBone:yes
  291.         ParticleSysBone            = BAT_SPINE2 FireSmall FollowBone:yes
  292.     End
  293.     
  294.     AnimationState                = MOVING PANICKING
  295.         ShareAnimation            = Yes
  296.         Animation                = RUNM
  297.             AnimationName        = MUHaraLnc_SKL.MUHaraLnc_MFDA
  298.             AnimationMode        = LOOP
  299.         End
  300.     End
  301.         
  302.     AnimationState                = MOVING BACKING_UP
  303.         ShareAnimation            = Yes
  304.         Animation                = BackingUp
  305.             AnimationName        = MUHaraLnc_SKL.MUHaraLnc_BAKA
  306.             AnimationMode        = LOOP
  307.         End
  308.     End
  309.     
  310.     AnimationState                = MOVING EMOTION_TERROR
  311.         ShareAnimation            = Yes
  312.         Animation                = Moving
  313.             AnimationName        = MUHaraLnc_SKL.MUHaraLnc_RUNA
  314.             AnimationMode        = LOOP
  315.         End
  316.         ParticleSysBone            = None InfantryDustTrails
  317.     End
  318.  
  319.     AnimationState                = MOVING
  320.         ShareAnimation            = Yes
  321.         Animation                = Moving
  322.             AnimationName        = MUHaraLnc_SKL.MUHaraLnc_RUNA
  323.             AnimationMode        = LOOP
  324.             AnimationSpeedFactorRange = 0.8 1.2
  325.         End
  326.         ParticleSysBone            = None InfantryDustTrails
  327.     End
  328.     
  329.     AnimationState                = PASSENGER
  330.         Animation                = Wiggling
  331.             AnimationName        = MUHaraLnc_SKL.MUHaraLnc_FLLA
  332.             AnimationMode        = LOOP
  333.         End
  334.         EnteringStateFX            = FX_ThrownRockPickUp
  335.      End
  336.  
  337.     AnimationState                = TRANSPORT_MOVING
  338.         Animation                = wobbling_on_transport
  339.             AnimationName        = MUHaraLnc_SKL.MUHaraLnc_IDLC
  340.             AnimationMode        = LOOP
  341.         End
  342.     End
  343.   
  344.  
  345.     
  346.     AnimationState                = STUNNED_STANDING_UP
  347.          Animation                = Standing_Back_Up
  348.             AnimationName        = MUHaraLnc_SKL.MUHaraLnc_GTPA
  349.             AnimationMode        = ONCE
  350.             AnimationSpeedFactorRange = 1.5 1.5
  351.         End
  352.     End
  353.     
  354.     AnimationState                = STUNNED
  355.          Animation                = Splattered_On_Ground
  356.             AnimationName        = MUHaraLnc_SKL.MUHaraLnc_LNDA
  357.             AnimationMode        = ONCE
  358.         End
  359.         EnteringStateFX = FX_HaradrimHitGround
  360.     End
  361.  
  362.     
  363.     
  364.         AnimationState                            = RELOADING_A
  365.         StateName                            = STATE_Ready
  366.         Animation                            = ALERT
  367.             AnimationName                    = MUHaraLnc_SKL.MUHaraLnc_IDLA
  368.             AnimationMode                    = LOOP
  369.             AnimationBlendTime                = 0
  370.         End
  371.         BeginScript
  372.             CurDrawableAllowToContinue()
  373.         EndScript
  374.     End
  375.     
  376.     AnimationState = FIRING_OR_PREATTACK_A WEAPONSTATE_CLOSE_RANGE
  377.         Animation = CloseAttack
  378.             AnimationName            = MUHaraLnc_SKL.MUHaraLnc_ATKA
  379.             AnimationMode            = ONCE
  380.             UseWeaponTiming            = Yes
  381.         End
  382.         ;Animation = BIG_BLEND_B
  383.         ;    AnimationName            = MUHaraLnc_SKL.MUHaraLnc_ATKA
  384.         ;    AnimationMode            = ONCE
  385.         ;    UseWeaponTiming            = Yes
  386.         ;    AnimationBlendTime        = 20
  387.         ;End
  388.     End
  389.  
  390.     AnimationState = FIRING_OR_PREATTACK_B
  391.         StateName = CloseRange
  392.         Animation = CloseAttack
  393.             AnimationName            = MUHaraLnc_SKL.MUHaraLnc_ATKA
  394.             AnimationMode            = ONCE
  395.             UseWeaponTiming            = Yes
  396.         End
  397.         Animation = BIG_BLEND_B
  398.             AnimationName            = MUHaraLnc_SKL.MUHaraLnc_ATKA
  399.             AnimationMode            = ONCE
  400.             UseWeaponTiming            = Yes
  401.             AnimationBlendTime        = 20
  402.         End
  403.         
  404.         BeginScript
  405.             Prev = CurDrawablePrevAnimationState()
  406.             if Prev == "FarRange"
  407.             then
  408.                 return "BIG_BLEND_B"
  409.             else
  410.                 return "CloseAttack"
  411.             end
  412.         EndScript
  413.     End
  414.  
  415.     AnimationState = FIRING_OR_PREATTACK_A
  416.         StateName = FarRange
  417.         Animation = FarAttack
  418.             AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATKB
  419.             AnimationMode = ONCE
  420.         End
  421.         Animation = BIG_BLEND_A
  422.             AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATKB
  423.             AnimationMode = ONCE
  424.             AnimationBlendTime = 20
  425.         End
  426.         FrameForPristineBonePositions = 44
  427.         BeginScript
  428.             Prev = CurDrawablePrevAnimationState()
  429.             if Prev == "CloseRange"
  430.             then
  431.                 return "BIG_BLEND_A"
  432.             else
  433.                 return "FarAttack"
  434.             end
  435.         EndScript
  436.     End    
  437.     
  438. ;    AnimationState                            = ATTACKING
  439. ;        StateName                            = STATE_Ready
  440. ;        Animation                            = ALERT
  441. ;            AnimationName                    = MUHaraLnc_SKL.MUHaraLnc_IDLA
  442. ;            AnimationMode                    = LOOP
  443. ;            AnimationBlendTime                = 0
  444. ;        End
  445. ;    End
  446.     
  447.     
  448.     
  449.     ; --- emotion animations --- ;
  450.         
  451.     AnimationState = WAR_CHANT
  452.         Animation                = Chant
  453.             AnimationName        = MUHaraLnc_SKL.MUHaraLnc_TNTA
  454.             AnimationMode        = ONCE
  455.         End
  456.         Animation                = A
  457.             AnimationName        = MUHaraLnc_SKL.MUHaraLnc_TNTA
  458.             AnimationMode        = ONCE
  459.         End
  460.         Flags                    = RESTART_ANIM_WHEN_COMPLETE
  461.         BeginScript
  462.             Prev = CurDrawablePrevAnimationState()
  463.             if Prev == "STATE_Emotion"
  464.             then
  465.                 CurDrawableAllowToContinue();
  466.             end
  467.         EndScript
  468.     End
  469.     
  470.     AnimationState                            = EMOTION_UNCONTROLLABLY_AFRAID
  471.         ShareAnimation                        = Yes
  472.         StateName                            = STATE_Emotion
  473.         Animation                            = FERA
  474.             AnimationName                    = MUHaraLnc_SKL.MUHaraLnc_FERA
  475.             AnimationMode                    = ONCE
  476.         End
  477.         Animation                            = A
  478.             AnimationName                    = MUHaraLnc_SKL.MUHaraLnc_FERA
  479.             AnimationMode                    = ONCE
  480.         End
  481.         Flags                                = RESTART_ANIM_WHEN_COMPLETE
  482.         BeginScript
  483.             Prev = CurDrawablePrevAnimationState()
  484.             if Prev == "STATE_Emotion"
  485.             then
  486.                 CurDrawableAllowToContinue();
  487.             end
  488.         EndScript
  489.     End        
  490.     
  491.     AnimationState = ATTACKING
  492.         Animation = IdleAllAttacksComeFrom
  493.             AnimationName = MUHaraLnc_SKL.MUHaraLnc_IDLA
  494.             AnimationMode = LOOP
  495.         End
  496.     End
  497.     
  498.     AnimationState                            = EMOTION_AFRAID
  499.         ShareAnimation                        = Yes
  500.         StateName                            = STATE_Emotion
  501.         Animation                            = FERA
  502.             AnimationName                    = MUHaraLnc_SKL.MUHaraLnc_FERA
  503.             AnimationMode                    = ONCE
  504.         End
  505.         Animation                            = A
  506.             AnimationName                    = MUHaraLnc_SKL.MUHaraLnc_FERA
  507.             AnimationMode                    = ONCE
  508.         End
  509.         Flags                                = RESTART_ANIM_WHEN_COMPLETE
  510.         BeginScript
  511.             Prev = CurDrawablePrevAnimationState()
  512.             if Prev == "STATE_Emotion"
  513.             then
  514.                 CurDrawableAllowToContinue();
  515.             end
  516.         EndScript
  517.     End        
  518.     
  519.     AnimationState                            = EMOTION_TAUNTING
  520.         StateName                            = STATE_Emotion
  521.         Animation                            = TNTA
  522.             AnimationName                    = MUHaraLnc_SKL.MUHaraLnc_TNTA
  523.             AnimationMode                    = ONCE
  524.         End
  525.         Animation                            = A
  526.             AnimationName                    = MUHaraLnc_SKL.MUHaraLnc_TNTA
  527.             AnimationMode                    = ONCE
  528.         End
  529.         Flags                                = RESTART_ANIM_WHEN_COMPLETE
  530.         BeginScript
  531.             Prev = CurDrawablePrevAnimationState()
  532.             if Prev == "STATE_Emotion"
  533.             then
  534.                 CurDrawableAllowToContinue();
  535.             end
  536.         EndScript
  537.     End
  538.     
  539.     AnimationState                            = EMOTION_POINTING
  540.         StateName                            = STATE_Emotion
  541.         Animation                            = Pointing1
  542.             AnimationName                    = MUHaraLnc_SKL.MUHaraLnc_PNTA
  543.             AnimationMode                    = ONCE
  544.         End
  545.         Animation                            = A
  546.             AnimationName                    = MUHaraLnc_SKL.MUHaraLnc_PNTA
  547.             AnimationMode                    = ONCE
  548.         End
  549.         Flags                                = RESTART_ANIM_WHEN_COMPLETE
  550.         BeginScript
  551.             Prev = CurDrawablePrevAnimationState()
  552.             if Prev == "STATE_Emotion"
  553.             then
  554.                 CurDrawableAllowToContinue();
  555.             end
  556.         EndScript
  557.     End
  558.     
  559.     AnimationState                            = EMOTION_CELEBRATING
  560.         StateName                            = STATE_Emotion
  561.         Animation                            = CHRA
  562.             AnimationName                    = MUHaraLnc_SKL.MUHaraLnc_CHRA
  563.             AnimationMode                    = ONCE
  564.             AnimationPriority                = 10
  565.         End
  566.         Animation                            = CHRB
  567.             AnimationName                    = MUHaraLnc_SKL.MUHaraLnc_CHRA
  568.             AnimationMode                    = ONCE
  569.             AnimationPriority                = 10
  570.         End
  571.         Flags                                = RESTART_ANIM_WHEN_COMPLETE    
  572.         BeginScript
  573.             Prev = CurDrawablePrevAnimationState()
  574.             if Prev == "STATE_Emotion"
  575.             then
  576.                 CurDrawableAllowToContinue();
  577.             end
  578.         EndScript
  579.     End
  580.     
  581.     AnimationState                            = EMOTION_ALERT
  582.         StateName                            = STATE_Emotion
  583.         Animation                            = ALERT
  584.             AnimationName                    = MUHaraLnc_SKL.MUHaraLnc_IDLA
  585.             AnimationMode                    = ONCE
  586.         End
  587.         Animation                            = A
  588.             AnimationName                    = MUHaraLnc_SKL.MUHaraLnc_IDLA
  589.             AnimationMode                    = ONCE
  590.         End
  591.         Flags                                = RESTART_ANIM_WHEN_COMPLETE
  592.         BeginScript
  593.             Prev = CurDrawablePrevAnimationState()            
  594.             if Prev == "STATE_Emotion"
  595.             then
  596.                 CurDrawableAllowToContinue();
  597.             end        
  598.         EndScript
  599.     End
  600.     
  601.         ; --- hit reactions
  602.     AnimationState = HIT_REACTION HIT_LEVEL_1
  603.         Animation = GotHit
  604.             AnimationName = MUHaraLnc_SKL.MUHaraLnc_HITA
  605.             AnimationMode = ONCE
  606.         End
  607.     End    
  608.  
  609.             
  610.     AnimationState                            = SELECTED
  611.         StateName                            = STATE_Selected
  612.         SimilarRestart                        = Yes
  613.         Animation                            = AtAttention
  614.             AnimationName                    = MUHaraLnc_SKL.MUHaraLnc_ATNB
  615.             AnimationMode                    = LOOP
  616.         End
  617.         Animation                            = BIG_BLEND_Selected
  618.             AnimationName                    = MUHaraLnc_SKL.MUHaraLnc_ATNB
  619.             AnimationMode                    = LOOP
  620.             AnimationBlendTime                = 20
  621.         End
  622.         BeginScript
  623.             Prev = CurDrawablePrevAnimationState()
  624.             CurDrawableShowSubObject("LANCE")
  625.             if Prev == "Idle"  then CurDrawableSetTransitionAnimState("TRANS_Idle_to_Selected") return end
  626.             if Prev == "STATE_Emotion"; or Prev == "CloseRange" or Prev == "FarRange"
  627.             then
  628.                 CurDrawableAllowToContinue();
  629.             end
  630.             if Prev == "GotHit"
  631.             then
  632.                 return "BIG_BLEND_Selected"
  633.             end
  634.             return "AtAttention"
  635.         EndScript
  636.     End
  637.     
  638.         TransitionState                    =    TRANS_Idle_to_Selected
  639.             Animation                    =    ATNA
  640.                 AnimationName            =    MUHaraLnc_SKL.MUHaraLnc_ATNA
  641.                 AnimationMode            =    ONCE
  642.             End
  643.         End
  644.         
  645.         TransitionState                    =    TRANS_Selected_to_Idle
  646.             Animation                    =    ATNA
  647.                 AnimationName            =    MUHaraLnc_SKL.MUHaraLnc_ATNC
  648.                 AnimationMode            =    ONCE
  649.             End
  650.         End
  651.     
  652.     
  653.   End
  654.  
  655.   ; ***DESIGN parameters ***
  656.   Side = Obsolete
  657.   EditorSorting = UNIT
  658.     ThreatLevel = 1.0
  659.   TransportSlotCount = TRANSPORTSLOTCOUNT_UNIT
  660.   CommandPoints = 2
  661.   
  662.   WeaponSet
  663.    Conditions = None 
  664.     Weapon = PRIMARY MordorLanceThrown
  665.   End
  666.   WeaponSet
  667.     Conditions = CLOSE_RANGE
  668.     Weapon = PRIMARY MordorLance
  669.   End
  670.   WeaponSet
  671.     Conditions = CONTAINED
  672.     Weapon = PRIMARY HaradrimBow
  673.   End
  674.   ;WeaponSet
  675.   ;  Conditions = CLOSE_RANGE
  676.   ;  Weapon = PRIMARY MordorLanceThrown
  677.   ;  Weapon = SECONDARY MordorLance
  678.   ;  OnlyAgainst = PRIMARY STRUCTURE
  679.   ;End
  680.   
  681.   ArmorSet
  682.     Conditions      = None
  683.     Armor           = HaradrimArmor
  684.     DamageFX        = NormalDamageFX
  685.   End
  686.  
  687.   ShroudClearingRange = SHROUD_CLEAR_STANDARD
  688.   VisionRange = MORDOR_HARADRIM_VISION_RANGE
  689.  
  690.   BountyValue = MORDOR_HARADRIM_BOUNTY_VALUE
  691.   DisplayName = OBJECT:MordorHaradrimLancer
  692.   CrushableLevel = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
  693.   CrusherLevel = 0 ;What can I crush?: 0 = small animals, 1 = infantry, 2 = trees, 3 = vehicles
  694.      CrushRevengeWeapon = RangedInfantryCrushRevenge
  695.  
  696.   CommandSet = MordorHaradrimLancerCommandSet
  697.  
  698.  
  699.   ; *** AUDIO Parameters ***;
  700.  
  701.     VoiceAttack                = HaradrimVoiceAttack
  702.     VoiceAttackAir                = HaradrimVoiceAttack
  703.     VoiceAttackCharge            = HaradrimVoiceAttackCharge
  704.     VoiceAttackMachine            = HaradrimVoiceAttack
  705.     VoiceAttackStructure            = HaradrimVoiceAttackBuilding
  706.     VoiceCreated                = CampOrcCreateHaradrim
  707.     VoiceFullyCreated             = CampOrcCreateHaradrim
  708.     VoiceGuard                = HaradrimVoiceMove
  709.     VoiceMove                = HaradrimVoiceMove
  710.     VoiceMoveToCamp                = HaradrimVoiceMoveCamp
  711.     VoicePriority                = 34
  712.     VoiceRetreatToCastle            = HaradrimVoiceRetreat
  713.     VoiceSelect                = HaradrimVoiceSelectMS
  714.     VoiceSelectBattle             = HaradrimVoiceSelectBattle
  715.  
  716.     VoiceEnterStateAttack            = HaradrimVoiceEnterStateAttack
  717.     VoiceEnterStateAttackCharge        = HaradrimVoiceEnterStateAttackCharge
  718.     VoiceEnterStateAttackMachine        = HaradrimVoiceEnterStateAttackBuilding
  719.     VoiceEnterStateAttackStructure        = HaradrimVoiceEnterStateAttackBuilding
  720.     VoiceEnterStateMove            = HaradrimVoiceEnterStateMove
  721.     VoiceEnterStateMoveToCamp        = HaradrimVoiceEnterStateMoveCamp
  722.     VoiceEnterStateRetreatToCastle        = HaradrimVoiceEnterStateRetreat
  723.     
  724.     UnitSpecificSounds
  725.         VoiceEnter                = HaradrimVoiceGarrison
  726.         VoiceEnterHostile            = HaradrimVoiceGarrison
  727.         VoiceGarrison            = HaradrimVoiceGarrison            
  728.         VoiceEnterUnitMordorMumakil    = HaradrimVoiceGarrisonMumakil        
  729.     End
  730.  
  731.     #include "..\includes\StandardUnitEvaEvents.inc"
  732.     ;EvaEventDieOwner = GroupHaradrimDie        ;Eva event to trigger on unit's death. NOTICE THAT this is only for permanent deaths
  733.                             ;For deaths you can respawn from, use the DeathFX
  734.  
  735.     ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
  736.           MaxUpdateRangeCap = 800
  737.             AnimationSound = Sound:BodyFallSoldier         Animation:MUHaraLnc_SKL.MUHaraLnc_LNDA     Frames:3
  738.             AnimationSound = Sound:BodyFallGeneric1         Animation:MUHaraLnc_SKL.MUHaraLnc_DIEA     Frames:47
  739.     End
  740.  
  741.  
  742.   ; *** ENGINEERING Parameters ***
  743.   RadarPriority = UNIT
  744.   KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER CAN_USE_SIEGE_TOWER SCORE GRAB_AND_DROP ATTACK_NEEDS_LINE_OF_SIGHT ;THROWN_OBJECT
  745.  
  746.   Body = ActiveBody ModuleTag_porcupineFormation
  747.     CheerRadius       = EMOTION_CHEER_RADIUS
  748.     MaxHealth         = MORDOR_HARADRIM_HEALTH
  749.     MaxHealthDamaged  = MORDOR_HARADRIM_HEALTH_DAMAGED
  750.     ;RecoveryTime      = MORDOR_HARADRIM_HEALTH_RECOVERY_TIME
  751.   End
  752.  
  753.     Behavior = DeflectSpecialPower ModuleTag_02b
  754.         SpecialPowerTemplate = SpecialAbilityDeflectProjectiles
  755.     End
  756.  
  757.     Behavior = StancesBehavior ModuleTag_StancesBehavior
  758.         StanceTemplate = FighterHorde
  759.     End
  760.  
  761.  
  762.   Behavior = AIUpdateInterface ModuleTag_03
  763.     AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
  764.     StopChaseDistance = 674
  765.     CanAttackWhileContained = Yes
  766.     AttackPriority                =     AttackPriority_Archer
  767.   End
  768.  
  769.     Behavior = HitReactionBehavior HitReactionBehaviorModuleTag
  770.         HitReactionLifeTimer1 = 1500    ; level 1 (light  damage)  hit reaction animations in frames (5 per sec)
  771.         HitReactionLifeTimer2 = 1500    ; level 2 (medium damage)  hit reaction animations in frames (5 per sec)
  772.         HitReactionLifeTimer3 = 1500    ; level 3 (heavy  damage)  hit reaction animations in frames (5 per sec)
  773.  
  774.         HitReactionThreshold1 = 0.0        ; level 1 (light  damage) threshold trigger
  775.         HitReactionThreshold2 = 9999.0    ; level 2 (medium damage) threshold trigger
  776.         HitReactionThreshold3 = 9999.0    ; level 3 (heavy  damage) threshold trigger
  777.     End
  778.     
  779.     
  780.   LocomotorSet
  781.     Locomotor = HumanLocomotor
  782.     Condition = SET_NORMAL
  783.     Speed     = NORMAL_EVIL_INFANTRY_MEMBER_SPEED
  784.   End
  785.  
  786.   Behavior = DualWeaponBehavior ModuleTag_13
  787.           SwitchWeaponOnCloseRangeDistance = MORDOR_HARADRIM_LANCER_SWITCH_RANGE
  788.   End
  789.  
  790. ;  Behavior = FlammableUpdate FlameModuleTag_03a
  791. ;    AflameDuration        = 100000    ;If I catch fire, I'll burn for this long...
  792. ;    AflameDamageAmount    = 1    ; taking this much damage...
  793. ;    AflameDamageDelay    = 1000   ; this often.
  794. ;    FlameDamageLimit    = 1
  795. ;  End
  796.  
  797.   Behavior = PhysicsBehavior ModuleTag_04
  798.     GravityMult = 1.0
  799.   End
  800.  
  801.   Behavior = SlowDeathBehavior ModuleTag_05
  802.     DeathTypes = ALL -KNOCKBACK
  803.     SinkDelay = 5000
  804.     SinkRate = 1.0     ; in Dist/Sec
  805.     DestructionDelay = 17000
  806.     Sound = INITIAL HaradrimVoiceDie        ;CivMaleDie
  807.   End
  808.  
  809.   Behavior = SquishCollide ModuleTag_06
  810.     ;nothing
  811.   End
  812.  
  813.   Behavior = HordeMemberCollide ModuleTag_HMC
  814.     ;nothing
  815.   End
  816.  
  817.   Behavior = SlowDeathBehavior ModuleTag_07
  818.     ; Same as normal death, but no sound (sound already played by SoundImpact = ... )
  819.     DeathTypes = NONE +KNOCKBACK
  820.     SinkDelay = 3000
  821.     SinkRate = 0.8     ; in Dist/Sec
  822.     DestructionDelay = 13000
  823.     Sound = INITIAL HaradrimVoiceDie            ;CivMaleDie
  824.   End
  825.  
  826. ;  Behavior = BezierProjectileBehavior ModuleTag_08 ; Module starts asleep, and wakes up when thrown.
  827. ;    FirstHeight = 30  ; Height of Bezier control points above highest intervening terrain
  828. ;    SecondHeight = 30
  829. ;    FirstPercentIndent = 30% ; Percentage of shot distance control points are placed
  830. ;    SecondPercentIndent = 70%
  831. ;    TumbleRandomly = Yes
  832. ;
  833. ;    CrushStyle = Yes ; I don't detonate, I just hit
  834. ;    DieOnImpact = Yes
  835. ;    BounceCount = 1   ; When I hit the ground, I'll arc again
  836. ;    BounceDistance = 50 ; this far
  837. ;    BounceFirstHeight = 20  ; Height of Bezier control points above highest intervening terrain
  838. ;    BounceSecondHeight = 20
  839. ;    BounceFirstPercentIndent = 20% ; Percentage of shot distance control points are placed
  840. ;    BounceSecondPercentIndent = 80%
  841. ;
  842. ;    GroundHitFX       = FX_ThrownRockGroundHit
  843. ;    GroundBounceFX    = FX_ThrownRockBounceHit
  844. ;  End
  845.  
  846.   ; Tie into LargeGroupAudio system
  847.   Behavior = LargeGroupAudioUpdate ModuleTag_LGAU
  848.     Key = Haradrim_Lancer
  849.   End
  850.   
  851.     Behavior = FireWeaponWhenDeadBehavior FireDeadTag
  852.         DeathTypes    = NONE +CRUSHED
  853.         StartsActive    = Yes
  854.         DelayTime        = 0
  855.         DeathWeapon        = HaradrimCrushedWeapon
  856.         WeaponOffset    = X:0 Y:0 Z:0    
  857.     End    
  858.  
  859.   Geometry = CYLINDER
  860.   GeometryMajorRadius = 8.0
  861.   GeometryMinorRadius = 8.0
  862.   GeometryHeight = 19.2
  863.   GeometryIsSmall = Yes
  864.   Shadow = SHADOW_DECAL
  865.   ShadowSizeX = 11;
  866.   ShadowSizeY = 11;
  867.   ShadowTexture = ShadowI;
  868. End
  869.  
  870.  
  871.  
  872. ;------------------------------------------------------------------------------
  873. Object MordorHaradrimSandboxObsolete
  874.  
  875.   SelectPortrait         = SP_Haradrim
  876.  
  877.   ; *** ART Parameters ***
  878.    ;note all file names are MUHaradim, not MUHaradrim, so as not to exceed character limits
  879.   Draw = W3DScriptedModelDraw ModuleTag_01
  880.  
  881.     DefaultModelConditionState
  882.       Model = MUHaradim_SKN
  883.       WeaponLaunchBone = PRIMARY ARRROW
  884.     End
  885.  
  886.         IdleAnimationState
  887.             Animation = IDLA
  888.           AnimationName = MUHaradim_SKL.MUHaradim_IDLA
  889.           AnimationMode = ONCE
  890.                 AnimationPriority = 25
  891.             End
  892.             Animation = IDLB
  893.           AnimationName = MUHaradim_SKL.MUHaradim_IDLB
  894.           AnimationMode = ONCE
  895.             End
  896.             Animation = IDLC
  897.           AnimationName = MUHaradim_SKL.MUHaradim_IDLC
  898.           AnimationMode = ONCE
  899.             End
  900.             StateName = Idle
  901.         End
  902.  
  903. ; this unit has no FLLA animations... needs one --- LORENZEN 11/3/03 <<<<<<<<<<<<<<<<<<<<<<<<<<<<
  904. ;    AnimationState = PASSENGER
  905. ;            Animation = Wiggling
  906. ;          AnimationName = MUHaradim_SKL.MUHaradim_FLLA
  907. ;            AnimationMode = LOOP
  908. ;            End
  909. ;     EnteringStateFX = FX_ThrownRockPickUp
  910. ;   End
  911.  
  912.     AnimationState = THROWN_PROJECTILE
  913.             Animation = Thrown
  914.           AnimationName = MUHaradim_SKL.MUHaradim_FLYA
  915.             AnimationMode = LOOP
  916.             End
  917.     End
  918.  
  919. ;    AnimationState = MOVING DAMAGED
  920. ;            Animation = Moving_Damaged
  921. ;          AnimationName = MUHaradim_SKL.MUHaradim_IWKA
  922. ;            AnimationMode = LOOP
  923. ;            End
  924. ;      Flags               = RANDOMSTART
  925. ;      ParticleSysBone     = None InfantryDustTrails
  926. ;    End
  927.  
  928.     AnimationState = MOVING
  929.             Animation = Moving
  930.           AnimationName = MUHaradim_SKL.MUHaradim_RUNA
  931.             AnimationMode = LOOP
  932.             End
  933.       Flags               = RANDOMSTART
  934.       ParticleSysBone     = None InfantryDustTrails
  935.     End
  936.  
  937. ;    AnimationState = PREATTACK_A AIM_LOW
  938. ;            Animation = Pre_Attacking
  939. ;          AnimationName = MUHaradim_SKL.MUHaradim_ATB1
  940. ;            AnimationMode = ONCE
  941. ;            End
  942. ;   End
  943.  
  944. ;    AnimationState = FIRING_A AIM_LOW
  945. ;            Animation = Attacking
  946. ;          AnimationName = MUHaradim_SKL.MUHaradim_ATB2
  947. ;            AnimationMode = ONCE
  948. ;            End
  949. ;     HideSubObject = arrrow
  950. ;   End
  951.  
  952.     AnimationState = FIRING_OR_PREATTACK_A ;AIM_STRAIGHT
  953.         Animation = Attacking
  954.             AnimationName = MUHaradim_SKL.MUHaradim_ATA1
  955.             AnimationMode = ONCE
  956.             UseWeaponTiming        = Yes
  957.         End
  958.         FrameForPristineBonePositions = 64
  959.     End
  960.  
  961. ;    AnimationState = PREATTACK_A AIM_HIGH
  962. ;            Animation = Pre_Attacking
  963. ;          AnimationName = MUHaradim_SKL.MUHaradim_ATC1
  964. ;            AnimationMode = ONCE
  965. ;            End
  966. ;   End
  967.  
  968. ;    AnimationState = FIRING_A AIM_HIGH
  969. ;            Animation = Attacking
  970. ;          AnimationName = MUHaradim_SKL.MUHaradim_ATC2
  971. ;            AnimationMode = ONCE
  972. ;            End
  973. ;     HideSubObject = arrrow
  974. ;    End
  975.  
  976.     AnimationState = DYING SPLATTED
  977.              Animation = Splattered_On_Ground
  978.                 AnimationName = MUHaradim_SKL.MUHaradim_LNDA
  979.                 AnimationMode = ONCE
  980.             End
  981.             EnteringStateFX = FX_HaradrimHitGround
  982.     End
  983.  
  984.      AnimationState = DYING AFLAME
  985.             Animation = Flaming_Death
  986.           AnimationName = MUHaradim_SKL.MUHaradim_MFDA
  987.             AnimationMode = ONCE
  988.             End
  989.     End
  990.  
  991.     AnimationState = DYING
  992.             Animation = Dying_1
  993.           AnimationName = MUHaradim_SKL.MUHaradim_DIEA
  994.             AnimationMode = ONCE
  995.             End
  996.             Animation = Dying_2
  997.           AnimationName = MUHaradim_SKL.MUHaradim_DIEB
  998.             AnimationMode = ONCE
  999.             End
  1000.     End
  1001.  
  1002.     ; --- stunned anims
  1003.     AnimationState = STUNNED_FLAILING
  1004.              Animation = Flying
  1005.                 AnimationName = MUHaradim_SKL.MUHaradim_FLYA
  1006.           AnimationMode = LOOP
  1007.             End
  1008.       Flags = RANDOMSTART
  1009.     End
  1010.  
  1011.     AnimationState = STUNNED
  1012.              Animation = Splattered_On_Ground
  1013.                 AnimationName = MUHaradim_SKL.MUHaradim_LNDA
  1014.                 AnimationMode = ONCE
  1015.             End
  1016.             EnteringStateFX = FX_HaradrimHitGround
  1017.     End
  1018.  
  1019.     AnimationState = STUNNED_STANDING_UP
  1020.              Animation = Standing_Back_Up
  1021.                 AnimationName = MUHaradim_SKL.MUHaradim_LNDA
  1022.           AnimationMode = ONCE_BACKWARDS
  1023.           AnimationSpeedFactorRange = 1.5 1.5
  1024.             End
  1025.     End
  1026.     
  1027.     AnimationState = WAR_CHANT
  1028.         Animation = Chant
  1029.             AnimationName = MUHaradim_SKL.MUHaradim_TNTA
  1030.             AnimationMode = LOOP
  1031.         End
  1032.     End
  1033.   End
  1034.  
  1035.   ; ***DESIGN parameters ***
  1036.   Side = Obsolete
  1037.   EditorSorting = UNIT
  1038.     ThreatLevel = 1.0
  1039.   ThingClass = HORDE_UNIT
  1040.   CommandPoints = 1
  1041.  
  1042.   TransportSlotCount = TRANSPORTSLOTCOUNT_UNIT
  1043.   WeaponSet
  1044.     Conditions = None 
  1045.     Weapon = PRIMARY    MordorArcherBow
  1046.     AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
  1047.   End
  1048.   ArmorSet
  1049.     Conditions      = None
  1050.     Armor           = NoArmor
  1051.     DamageFX        = NormalDamageFX
  1052.   End
  1053.   VisionRange = 120.0
  1054.   DisplayName = OBJECT:MordorHaradrimArcher
  1055.   CrushableLevel = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
  1056.   CrusherLevel = 0 ;What can I crush?: 0 = small animals, 1 = infantry, 2 = trees, 3 = vehicles
  1057.      CrushRevengeWeapon = RangedInfantryCrushRevenge
  1058.  
  1059.   ; *** AUDIO Parameters ***;
  1060.  
  1061.     VoiceAttack            = HaradrimVoiceAttack
  1062.     VoiceAttackCharge        = HaradrimVoiceAttackCharge
  1063.     VoiceAttackMachine        = HaradrimVoiceAttack
  1064.     VoiceAttackStructure        = HaradrimVoiceAttackBuilding
  1065.     VoiceCreated            = CampOrcCreateHaradrim
  1066.     VoiceFullyCreated         = CampOrcCreateHaradrim
  1067.     VoiceMove            = HaradrimVoiceMove
  1068.     VoiceMoveToCamp            = HaradrimVoiceMoveCamp
  1069.     VoicePriority            = 34
  1070.     VoiceRetreatToCastle        = HaradrimVoiceRetreat
  1071.     VoiceSelect            = HaradrimVoiceSelect
  1072.     VoiceSelectBattle         = HaradrimVoiceSelectBattle
  1073.     VoiceGuard            = HaradrimVoiceMove
  1074.  
  1075.  
  1076.     UnitSpecificSounds
  1077.         VoiceEnter            = HaradrimVoiceGarrison
  1078.         VoiceEnterHostile        = HaradrimVoiceGarrison
  1079.         VoiceGarrison            = HaradrimVoiceGarrison            ;TEMP_HaradrimVoiceEnter_TEMP
  1080.         VoiceEnterUnitMordorMumakil    = HaradrimVoiceGarrisonMumakil        ;TEMP_HaradrimVoiceEnterMumakil_TEMP
  1081.     End
  1082.  
  1083.     #include "..\includes\StandardUnitEvaEvents.inc"
  1084.  
  1085.  
  1086.   ; *** ENGINEERING Parameters ***
  1087.   RadarPriority = UNIT
  1088.   KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER CAN_USE_SIEGE_TOWER SCORE THROWN_OBJECT
  1089.  
  1090.   Body = ActiveBody ModuleTag_02
  1091.     MaxHealth         = 10                  ;BALANCE Orc Archer Health
  1092.     MaxHealthDamaged  = 5
  1093.     ;RecoveryTime      = 5000
  1094.   End
  1095.  
  1096.     Behavior = StancesBehavior ModuleTag_StancesBehavior
  1097.         StanceTemplate = FighterHorde
  1098.     End
  1099.  
  1100.   Behavior = AIUpdateInterface ModuleTag_03
  1101.     AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
  1102.     CanAttackWhileContained = Yes
  1103.   End
  1104.  
  1105.  
  1106.   LocomotorSet
  1107.     Locomotor = HumanLocomotor
  1108.     Condition = SET_NORMAL 
  1109.     Speed     = 32
  1110.   End
  1111.  
  1112.   LocomotorSet
  1113.     Locomotor = HumanWanderLocomotor
  1114.     Condition = SET_WANDER
  1115.     Speed     = 32
  1116.   End
  1117.  
  1118.   Behavior = PhysicsBehavior ModuleTag_04
  1119.     GravityMult = 1.0
  1120.   End
  1121.  
  1122.   Behavior = SlowDeathBehavior ModuleTag_05
  1123.     DeathTypes = ALL -KNOCKBACK
  1124.     SinkDelay = 3000
  1125.     SinkRate = 0.40     ; in Dist/Sec
  1126.     DestructionDelay = 8000
  1127.     Sound = INITIAL HaradrimVoiceDie
  1128.   End
  1129.  
  1130.   Behavior = SquishCollide ModuleTag_06
  1131.     ;nothing
  1132.   End
  1133.  
  1134.   Behavior = SlowDeathBehavior ModuleTag_07
  1135.     ; Same as normal death, but no sound (sound already played by SoundImpact = ... )
  1136.     DeathTypes = NONE +KNOCKBACK
  1137.     SinkDelay = 3000
  1138.     SinkRate = 0.40     ; in Dist/Sec
  1139.     DestructionDelay = 8000
  1140.     Sound = INITIAL HaradrimVoiceDie
  1141.   End
  1142.  
  1143.   Behavior = BezierProjectileBehavior ModuleTag_08 ; Module starts asleep, and wakes up when thrown.
  1144.     ; 
  1145.     FirstHeight = 24  ; Height of Bezier control points above highest intervening terrain
  1146.     SecondHeight = 24
  1147.     FirstPercentIndent = 30% ; Percentage of shot distance control points are placed
  1148.     SecondPercentIndent = 70%
  1149.     TumbleRandomly = Yes
  1150.  
  1151.     CrushStyle = Yes ; I don't detonate, I just hit
  1152.     DieOnImpact = Yes
  1153.     BounceCount = 1   ; When I hit the ground, I'll arc again
  1154.     BounceDistance = 40 ; this far
  1155.     BounceFirstHeight = 16  ; Height of Bezier control points above highest intervening terrain
  1156.     BounceSecondHeight = 16
  1157.     BounceFirstPercentIndent = 20% ; Percentage of shot distance control points are placed
  1158.     BounceSecondPercentIndent = 80%
  1159.  
  1160.     GroundHitFX       = FX_ThrownRockGroundHit
  1161.     GroundBounceFX    = FX_ThrownRockBounceHit
  1162.   End
  1163.  
  1164.   ; Tie into LargeGroupAudio system
  1165.   Behavior = LargeGroupAudioUpdate ModuleTag_LGAU
  1166.       Key = Human Unit Infantry
  1167.   End
  1168.  
  1169.   Geometry = CYLINDER
  1170.   GeometryMajorRadius = 8.0
  1171.   GeometryMinorRadius = 8.0
  1172.   GeometryHeight = 19.2
  1173.   GeometryIsSmall = Yes
  1174.   Shadow = SHADOW_DECAL
  1175.   ShadowSizeX = 11;
  1176.   ShadowSizeY = 11;
  1177.   ShadowTexture = ShadowI;
  1178. End
  1179.  
  1180. ;------------------------------------------------------------------------------
  1181. Object MordorHaradrimOverlordObsolete                 ;BALANCE Overlord
  1182.  
  1183.   SelectPortrait         = SP_Haradrim
  1184.  
  1185.     ; This is required for garrisoned objects - please put in all objects.
  1186.     ButtonImage = BMHaradrimPalace_Haradrim
  1187.   
  1188.   ; *** ART Parameters ***
  1189.   Draw = W3DScriptedModelDraw ModuleTag_01
  1190.           
  1191.           OkToChangeModelColor = Yes
  1192.           
  1193.     StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD
  1194.  
  1195.     DefaultModelConditionState
  1196.       Model = MUHarOvr_SKN
  1197.     End
  1198.  
  1199.         IdleAnimationState
  1200.             Animation = IDLA
  1201.           AnimationName = MUHarOvr_SKL.MUHarOvr_IDLA
  1202.           AnimationMode = ONCE
  1203.                 AnimationPriority = 25
  1204.             End
  1205.             StateName = Idle
  1206.         End
  1207.  
  1208.  
  1209.     AnimationState = THROWN_PROJECTILE
  1210.             Animation = Thrown
  1211.           AnimationName = MUHarOvr_SKL.MUHarOvr_FLYA
  1212.             AnimationMode = LOOP
  1213.             End
  1214.     End
  1215.     
  1216.     AnimationState = MOVING FIRING_OR_PREATTACK_A
  1217.         Animation = TrotAndFire
  1218.             AnimationName = MUHarOvr_SKL.MUHarOvr_ATRA
  1219.             AnimationMode = LOOP
  1220.         End
  1221.         Flags = RANDOMSTART
  1222.         ;ParticleSysBone = None InfantryDustTrails
  1223.     End
  1224.     
  1225.     AnimationState = MOVING BACKING_UP
  1226.         Animation = BackingUp
  1227.             AnimationName = MUHarOvr_SKL.MUHarOvr_BAKA
  1228.             AnimationMode = LOOP
  1229.         End
  1230.         Flags = RANDOMSTART
  1231.     End
  1232.  
  1233.     AnimationState = MOVING EMOTION_TERROR
  1234.             Animation = Moving
  1235.           AnimationName = MUHarOvr_SKL.MUHarOvr_RUNA
  1236.             AnimationMode = LOOP
  1237.             End
  1238.       Flags = RANDOMSTART
  1239.       ParticleSysBone = None InfantryDustTrails
  1240.     End
  1241.  
  1242.     AnimationState = MOVING
  1243.             Animation = Moving
  1244.           AnimationName = MUHarOvr_SKL.MUHarOvr_RUNA
  1245.             AnimationMode = LOOP
  1246.             End
  1247.       Flags = RANDOMSTART
  1248.       ParticleSysBone = None InfantryDustTrails
  1249.     End
  1250.  
  1251.     AnimationState = FIRING_OR_PREATTACK_A
  1252.         Animation = ATKA
  1253.             AnimationName = MUHarOvr_SKL.MUHarOvr_ATKA
  1254.             AnimationMode = ONCE
  1255.             UseWeaponTiming        = Yes
  1256.         End
  1257.     End
  1258.     
  1259.     AnimationState = STUNNED_FLAILING
  1260.              Animation = Flying
  1261.                 AnimationName = MUHarOvr_SKL.MUHarOvr_FLYA
  1262.           AnimationMode = LOOP
  1263.             End
  1264.       Flags = RANDOMSTART
  1265.     End
  1266.  
  1267.     AnimationState = DYING SPLATTED
  1268.              Animation = Splattered_On_Ground
  1269.                 AnimationName = MUHarOvr_SKL.MUHarOvr_LNDA
  1270.                 AnimationMode = ONCE
  1271.             End
  1272.             EnteringStateFX = FX_HaradrimHitGround
  1273.     End
  1274.  
  1275.  
  1276.     AnimationState = DYING
  1277.             Animation = Dying
  1278.           AnimationName = MUHarOvr_SKL.MUHarOvr_DIEA
  1279.             AnimationMode = ONCE
  1280.             End
  1281.     End
  1282.  
  1283.     ; --- stunned anims
  1284.     
  1285.     
  1286.     AnimationState = STUNNED_STANDING_UP
  1287.              Animation = Standing_Back_Up
  1288.                 AnimationName = MUHarOvr_SKL.MUHarOvr_GTPA
  1289.           AnimationMode = ONCE
  1290.           AnimationSpeedFactorRange = 1.5 1.5
  1291.             End
  1292.     End
  1293.  
  1294.     AnimationState = STUNNED
  1295.              Animation = Splattered_On_Ground
  1296.                 AnimationName = MUHarOvr_SKL.MUHarOvr_LNDA
  1297.                 AnimationMode = ONCE
  1298.             End
  1299.             EnteringStateFX = FX_HaradrimHitGround
  1300.     End
  1301.     
  1302.     
  1303.     
  1304.        AnimationState = WAR_CHANT
  1305.         Animation = Chant
  1306.             AnimationName = MUHarOvr_SKL.MUHarOvr_IDLA ;_TNTA if we get it
  1307.             AnimationMode = LOOP
  1308.         End
  1309.     End
  1310.     
  1311.             
  1312.     ;-emotions--
  1313.     AnimationState                            = EMOTION_AFRAID
  1314.         Animation                            = FERA
  1315.             AnimationName                    = MUHarOvr_SKL.MUHarOvr_FERA
  1316.             AnimationMode                    = LOOP
  1317.         End
  1318.         Flags = RANDOMSTART
  1319.     End
  1320.     AnimationState                            = EMOTION_TAUNTING
  1321.         Animation                            = TNTA
  1322.             AnimationName                    = MUHarOvr_SKL.MUHarOvr_TNTA
  1323.             AnimationMode                    = LOOP
  1324.         End
  1325.     End
  1326.     AnimationState                            = EMOTION_POINTING
  1327.         Animation                            = Pointing1
  1328.             AnimationName                    = MUHarOvr_SKL.MUHarOvr_PNTA
  1329.             AnimationMode                    = LOOP
  1330.         End
  1331.     End
  1332.     AnimationState                            = EMOTION_CELEBRATING
  1333.         Animation                           = CHRA
  1334.             AnimationName                    = MUHarOvr_SKL.MUHarOvr_CHRA
  1335.             AnimationMode                    = ONCE
  1336.         End
  1337.     End    
  1338.   End
  1339.  
  1340.   ; ***DESIGN parameters ***
  1341.   Side = Obsolete
  1342.   EditorSorting = UNIT
  1343.     ThreatLevel = 1.0
  1344.   TransportSlotCount = TRANSPORTSLOTCOUNT_UNIT
  1345.   WeaponSet
  1346.     Conditions = None 
  1347.     Weapon = PRIMARY  MordorLance                               ;BALANCE Overlord Weapon
  1348.     AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
  1349.   End
  1350.   ArmorSet
  1351.     Conditions      = None
  1352.     Armor           = NoArmor
  1353.     DamageFX        = NormalDamageFX
  1354.   End
  1355.   VisionRange = 120.0
  1356.   DisplayName = OBJECT:MordorHaradrimOverlord
  1357.   CrushableLevel = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
  1358.   CrusherLevel = 0 ;What can I crush?: 0 = small animals, 1 = infantry, 2 = trees, 3 = vehicles
  1359.      CrushRevengeWeapon = BasicInfantryCrushRevenge
  1360.  
  1361.   CommandSet = GenericCommandSet
  1362.   CommandPoints = 1
  1363.  
  1364.  
  1365.   ; *** AUDIO Parameters ***;
  1366.  
  1367.     VoiceAttack                = HaradrimVoiceAttack
  1368.     VoiceAttackAir                = HaradrimVoiceAttack
  1369.     VoiceAttackCharge            = HaradrimVoiceAttackCharge
  1370.     VoiceAttackMachine            = HaradrimVoiceAttack
  1371.     VoiceAttackStructure            = HaradrimVoiceAttackBuilding
  1372.     VoiceCreated                = CampOrcCreateHaradrim
  1373.     VoiceFullyCreated             = CampOrcCreateHaradrim
  1374.     VoiceMove                = HaradrimVoiceMove
  1375.     VoiceMoveToCamp                = HaradrimVoiceMoveCamp
  1376.     VoicePriority                = 34
  1377.     VoiceRetreatToCastle            = HaradrimVoiceRetreat
  1378.     VoiceSelect                = HaradrimVoiceSelect
  1379.     VoiceSelectBattle             = HaradrimVoiceSelectBattle
  1380.     VoiceGuard            = HaradrimVoiceMove
  1381.     
  1382.  
  1383.  
  1384.     UnitSpecificSounds
  1385.         VoiceEnter            = HaradrimVoiceGarrison
  1386.         VoiceEnterHostile        = HaradrimVoiceGarrison
  1387.         VoiceGarrison            = HaradrimVoiceGarrison            ;TEMP_HaradrimVoiceEnter_TEMP
  1388.         VoiceEnterUnitMordorMumakil    = HaradrimVoiceGarrisonMumakil        ;TEMP_HaradrimVoiceEnterMumakil_TEMP
  1389.     End
  1390.  
  1391.     #include "..\includes\StandardUnitEvaEvents.inc"
  1392.  
  1393.   ; *** ENGINEERING Parameters ***
  1394.  
  1395.   RadarPriority = UNIT
  1396.   KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER CAN_USE_SIEGE_TOWER SCORE THROWN_OBJECT
  1397.  
  1398.   Body = ActiveBody ModuleTag_02
  1399.     MaxHealth         = 10                  ;BALANCE Overlord Health
  1400.     MaxHealthDamaged  = 5
  1401.     ;RecoveryTime      = 5000
  1402.   End
  1403.  
  1404.     Behavior = StancesBehavior ModuleTag_StancesBehavior
  1405.         StanceTemplate = FighterHorde
  1406.     End
  1407.  
  1408.   Behavior = AIUpdateInterface ModuleTag_03
  1409.     AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
  1410.     CanAttackWhileContained = Yes
  1411.     HoldGroundCloseRangeDistance = 80
  1412.     AttackPriority                =     AttackPriority_Archer
  1413.   End
  1414.  
  1415.   LocomotorSet
  1416.     Locomotor = HumanLocomotor
  1417.     Condition = SET_NORMAL
  1418.     Speed     = 32
  1419.   End
  1420.  
  1421.   LocomotorSet
  1422.     Locomotor = HumanWanderLocomotor
  1423.     Condition = SET_WANDER
  1424.     Speed     = 32
  1425.   End 
  1426.  
  1427.   Behavior = PhysicsBehavior ModuleTag_04
  1428.     GravityMult = 1.0
  1429.   End
  1430.  
  1431.   Behavior = SlowDeathBehavior ModuleTag_05
  1432.     DeathTypes = ALL -KNOCKBACK
  1433.     SinkDelay = 3000
  1434.     SinkRate = 0.8     ; in Dist/Sec
  1435.     DestructionDelay = 8000
  1436.     Sound = INITIAL HaradrimVoiceDie            ;CivMaleDie
  1437.   End
  1438.  
  1439.   Behavior = SquishCollide ModuleTag_06
  1440.     ;nothing
  1441.   End
  1442.  
  1443.   Behavior = SlowDeathBehavior ModuleTag_07
  1444.     ; Same as normal death, but no sound (sound already played by SoundImpact = ... )
  1445.     DeathTypes = NONE +KNOCKBACK
  1446.     SinkDelay = 3000
  1447.     SinkRate = 0.8     ; in Dist/Sec
  1448.     DestructionDelay = 8000
  1449.     Sound = INITIAL HaradrimVoiceDie            ;CivMaleDie
  1450.   End
  1451.  
  1452.   Behavior = BezierProjectileBehavior ModuleTag_08 ; Module starts asleep, and wakes up when thrown.
  1453.     FirstHeight = 24  ; Height of Bezier control points above highest intervening terrain
  1454.     SecondHeight = 24
  1455.     FirstPercentIndent = 30% ; Percentage of shot distance control points are placed
  1456.     SecondPercentIndent = 70%
  1457.     TumbleRandomly = Yes
  1458.  
  1459.     CrushStyle = Yes ; I don't detonate, I just hit
  1460.     DieOnImpact = Yes
  1461.     BounceCount = 1   ; When I hit the ground, I'll arc again
  1462.     BounceDistance = 40 ; this far
  1463.     BounceFirstHeight = 16  ; Height of Bezier control points above highest intervening terrain
  1464.     BounceSecondHeight = 16
  1465.     BounceFirstPercentIndent = 20% ; Percentage of shot distance control points are placed
  1466.     BounceSecondPercentIndent = 80%
  1467.  
  1468.     GroundHitFX       = FX_ThrownRockGroundHit
  1469.     GroundBounceFX    = FX_ThrownRockBounceHit
  1470.   End
  1471.  
  1472.   ; Tie into LargeGroupAudio system
  1473.   Behavior = LargeGroupAudioUpdate ModuleTag_LGAU
  1474.     Key = Haradrim_Lancer
  1475.   End
  1476.  
  1477.   Geometry = CYLINDER
  1478.   GeometryMajorRadius = 8.0
  1479.   GeometryMinorRadius = 8.0
  1480.   GeometryHeight = 19.2
  1481.   GeometryIsSmall = Yes
  1482.   Shadow = SHADOW_DECAL
  1483.   ShadowSizeX = 11;
  1484.   ShadowSizeY = 11;
  1485.   ShadowTexture = ShadowI;
  1486. End
  1487.  
  1488.  
  1489. ;////////////////////////////////////////////////////////////////////////////////
  1490. Object MordorHaradrimHordeObsolete
  1491.  
  1492.       ; This is required for garrisoned objects - please put in all objects.
  1493.     ButtonImage        = BMHaradrimPalace_Haradrim
  1494.     SelectPortrait    = UPMordor_Haradrim
  1495.  
  1496.     Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
  1497.         DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER SELECTED EMOTION_TERROR EMOTION_LOOK_TO_SKY
  1498.         DefaultModelConditionState
  1499.             Model = None ;InvisHrdeTmp
  1500.         End
  1501.         ModelConditionState = HORDE_EMPTY
  1502.             Model = None
  1503.         End        
  1504.         ModelConditionState = WORLD_BUILDER
  1505.             Model = HordeMarkMUHar
  1506.         End
  1507.     End
  1508.     
  1509.     Side = Mordor
  1510.     EditorSorting = UNIT
  1511.     EmotionRange = 240
  1512.     DisplayName = OBJECT:HordeMordorHaradrim
  1513.     
  1514.     WeaponSet
  1515.         Conditions = None 
  1516.         Weapon = PRIMARY    ShortRangedMissileHordeRangefinder
  1517.     End
  1518.  
  1519.     WeaponSet
  1520.         Conditions = CLOSE_RANGE; Haradrim switch weapon on contain, so we need to too. 
  1521.         Weapon = PRIMARY    NormalMeleeHordeRangefinder
  1522.     End
  1523.     
  1524.     WeaponSet
  1525.         Conditions = CONTAINED ; Haradrim switch weapon on contain, so we need to too. 
  1526.         Weapon = PRIMARY    HaradrimMountedHordeRangefinder
  1527.     End
  1528.     
  1529.     WeaponSet
  1530.         Conditions = CONTAINED CLOSE_RANGE; Haradrim switch weapon on contain, so we need to too. 
  1531.         Weapon = PRIMARY    HaradrimMountedHordeRangefinder
  1532.     End
  1533.     
  1534.     ; *** AUDIO Parameters ***;
  1535.     ; Note: Don't put voice parameters here -- they will be ignored. Voice play requests
  1536.     ; are always passed through to members
  1537.  
  1538.  
  1539.     BuildCost = MORDOR_HARADRIM_BUILDCOST
  1540.     BuildTime = MORDOR_HARADRIM_BUILDTIME           
  1541.     VisionRange = MORDOR_HARADRIM_HORDE_VISION_RANGE
  1542.     CrushableLevel = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
  1543.     CrusherLevel = 0 ;What can I crush?: 0 = small animals, 1 = infantry, 2 = trees, 3 = vehicles 
  1544.     CommandPoints = 10
  1545.     TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE
  1546.     
  1547.     CommandSet = MordorHaradrimHordeCommandSet
  1548.  
  1549.     FormationWidth = 2 ; Width it occupies in formations. Current choices are 1 or 2.
  1550.     FormationDepth = 1 ; Depth it occupies in formations. Current choices are 1 or 2.
  1551.     
  1552.         
  1553.     TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE
  1554.     KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY HORDE ARCHER MELEE_HORDE CAN_USE_SIEGE_TOWER ;UNATTACKABLE 
  1555.     
  1556.     Body = ImmortalBody ModuleTag_ImmortalBody
  1557.         MaxHealth = 1
  1558.     End
  1559.     
  1560.     Behavior = DualWeaponBehavior ModuleTag_13
  1561.         SwitchWeaponOnCloseRangeDistance = MORDOR_HARADRIM_LANCER_SWITCH_RANGE_HORDE
  1562.     End
  1563.  
  1564.     Behavior = StancesBehavior ModuleTag_StancesBehavior
  1565.         StanceTemplate = FighterHorde
  1566.     End
  1567.  
  1568.     Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
  1569.         AutoAcquireEnemiesWhenIdle    = Yes ATTACK_BUILDINGS
  1570.         MoodAttackCheckRate            = 500
  1571.         MaxCowerTime                = 5000
  1572.         MinCowerTime                = 3000
  1573.         CanAttackWhileContained        = Yes  ; Can fire out of garrisoned building        
  1574.         AILuaEventsList                = InfantryFunctions
  1575.         AttackPriority                =     AttackPriority_Archer
  1576.     End
  1577.  
  1578.     Behavior = HordeContain ModuleTag_HordeContain
  1579.         ObjectStatusOfContained = 
  1580.         InitialPayload = MordorHaradrim EVIL_MEN_NORMAL_HORDE_SIZE
  1581.         Slots = 5
  1582.         PassengerFilter = NONE +INFANTRY
  1583.         ShowPips = No
  1584.         ThisFormationIsTheMainFormation = Yes    ;Used to determine which armorset to use (and anything else we want!)
  1585.         RandomOffset=X:3 Y:3
  1586.         
  1587.         ; Banner Carrier info        
  1588.         BannerCarriersAllowed    = MordorBannerOrc        ; types of units that are allowed as banner carriers
  1589.         BannerCarrierPosition    = UnitType:MordorHaradrim    Pos:X:40.0 Y:0.0    ; (DEFAULT) position of banner carrier for archer horde
  1590.         
  1591.         ; Positions for 5
  1592.         RankInfo = RankNumber:1 UnitType:MordorHaradrim Position:X:0 Y:0    Position:X:0 Y:25    Position:X:0 Y:-25    Position:X:0 Y:50    Position:X:0 Y:-50 
  1593.  
  1594.         RanksToReleaseWhenAttacking = 1 
  1595.         MeleeAttackLeashDistance = 25; How far the hordes can move from the center of the horde when melee attacking.                
  1596.         AlternateFormation = MordorHaradrimHordeWedge
  1597.         End
  1598.  
  1599.     Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
  1600.         GravityMult = 1.0
  1601.     End
  1602.     
  1603.      Behavior = EmotionTrackerUpdate    Module_EmotionTracker
  1604.         TauntAndPointDistance        =    INFANTRY_TAUNT_POINT_RADIUS; 350        ; max distance to taunted/pointed objet
  1605.         TauntAndPointUpdateDelay    =    1000    ; how often scan (milliseconds)
  1606.         TauntAndPointExcluded        =    NONE
  1607.         AfraidOf                    =    EMOTION_AFRAIDOF_OBJECTFILTER
  1608.         AlwaysAfraidOf                =    EMOTION_ALWAYS_AFRAIDOF_OBJECTFILTER
  1609.         PointAt                        =    EMOTION_POINTAT_OBJECTFILTER
  1610.         HeroScanDistance            =    150
  1611.         FearScanDistance            =    INFANTRY_FEAR_SCAN_RADIUS;    250
  1612.  
  1613.         AddEmotion    =    Terror_Base
  1614.         AddEmotion    =    Doom_Base
  1615.         AddEmotion    =   BraceForBeingCrushed_Base
  1616.         AddEmotion    =    UncontrollableFear_Base_Evil
  1617.         AddEmotion    =    FearIdle_Base
  1618.         AddEmotion    =    FearBusy_Base
  1619.         AddEmotion    =    Point_Base
  1620.  
  1621.         AddEmotion    =    OVERRIDE Taunt_Base    
  1622.          ;    AttributeModifier        =    GondorFighterTaunt
  1623.          End        
  1624.  
  1625.         AddEmotion    =    CheerIdle_Base
  1626.         AddEmotion    =    CheerBusy_Base
  1627.         AddEmotion    =    HeroCheerIdle_Base
  1628.         AddEmotion    =    HeroCheerBusy_Base
  1629.         AddEmotion    =    Alert_Base
  1630.     End        
  1631.     
  1632.     LocomotorSet
  1633.         Locomotor     = NormalRangedHordeLocomotor
  1634.         Condition     = SET_NORMAL
  1635.         Speed         = NORMAL_EVIL_INFANTRY_HORDE_SPEED
  1636.     End
  1637.  
  1638.     Behavior = ProductionUpdate ProductionUpdateModuleTag
  1639.         GiveNoXP = Yes
  1640.     End
  1641.  
  1642.     Behavior = LevelUpUpgrade ModuleTag_BasicTraining
  1643.         TriggeredBy = Upgrade_MordorBasicTraining
  1644.         LevelsToGain = 1
  1645.         LevelCap = 2
  1646.     End
  1647.     
  1648.     Geometry = BOX
  1649.     GeometryMajorRadius = 8.0
  1650.     GeometryMinorRadius = 8.0
  1651.     GeometryHeight = 12.0
  1652.     GeometryIsSmall = No
  1653.     
  1654.  
  1655. End
  1656.  
  1657. ;---------------------------------------------------------------------------------
  1658.  
  1659. ChildObject MordorHaradrimHordeInnObsolete MordorHaradrimHordeObsolete
  1660.     BuildCost = INN_UNIT_BUILDCOST_MORDOR
  1661. End
  1662.  
  1663. ;---------------------------------------------------------------------------------
  1664.  
  1665. ChildObject MordorHaradrimHordeWedgeObsolete MordorHaradrimHordeObsolete
  1666.     ; Note - for alternate formations, all info outside of the Contain Behavior module is ignored.
  1667.     ; Any modifications need to be done via the Attribute Modifiers in the contain module.  
  1668.     Behavior = HordeContain ModuleTag_HordeContain
  1669.         ObjectStatusOfContained = 
  1670.         InitialPayload = MordorHaradrim EVIL_MEN_NORMAL_HORDE_SIZE
  1671.         
  1672.         Slots = 5
  1673.         PassengerFilter = NONE +INFANTRY
  1674.         ShowPips = No
  1675.         ThisFormationIsTheMainFormation = No    ;Used to determine which armorset to use (and anything else we want!)
  1676.         
  1677.         ; Banner Carrier info        
  1678.         BannerCarriersAllowed    = MordorBannerOrc                                                ; types of units that are allowed as banner carriers
  1679.         BannerCarrierPosition    = UnitType:MordorHaradrim        Pos:X:0.0 Y:0.0                ; (DEFAULT) position of banner carrier for archer horde
  1680.         
  1681.         RandomOffset = X:2 Y:2
  1682.         RankInfo = RankNumber:1 UnitType:MordorHaradrim Position:X:0 Y:-30    Position:X:10 Y:-15     Position:X:20 Y:0    Position:X:10 Y:15    Position:X:0 Y:30        
  1683.         
  1684.         RanksToReleaseWhenAttacking = 1 
  1685.         
  1686.         AlternateFormation = MordorHaradrimHorde
  1687.         AttributeModifiers = HaradrimHordeWedge
  1688.     End        
  1689.  End
  1690.  
  1691. ;////////////////////////////////////////////////////////////////////////////////
  1692. Object MordorHaradrimLancerHordeObsolete
  1693.  
  1694.       ; This is required for garrisoned objects - please put in all objects.
  1695.     ButtonImage        = BMHaradrimPalace_Haradrim
  1696.     SelectPortrait    = UPMordor_Haradrim
  1697.  
  1698.     Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
  1699.         DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER SELECTED EMOTION_TERROR EMOTION_LOOK_TO_SKY
  1700.         DefaultModelConditionState
  1701.             Model = None ;InvisHrdeTmp5x2
  1702.         End
  1703.         ModelConditionState = HORDE_EMPTY
  1704.             Model = None
  1705.         End        
  1706.         ModelConditionState = WORLD_BUILDER
  1707.             Model = HordeMarkMUHLa
  1708.         End
  1709.     End
  1710.     
  1711.     Side = Mordor
  1712.     EditorSorting = UNIT
  1713.     EmotionRange = 240
  1714.     DisplayName = OBJECT:HordeMordorHaradrim
  1715.     
  1716.     WeaponSet
  1717.         Conditions = None 
  1718.         Weapon = PRIMARY    ShortRangedMissileHordeRangefinder
  1719.     End
  1720.     WeaponSet
  1721.         Conditions = CONTAINED ; Haradrim switch weapon on contain, so we need to too. 
  1722.         Weapon = PRIMARY    MovingArcherMissileHordeRangefinder
  1723.     End
  1724.  
  1725.     BuildCost = 50
  1726.     BuildTime = 5.0           
  1727.     VisionRange = 320
  1728.     CrushableLevel = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
  1729.     CrusherLevel = 0 ;What can I crush?: 0 = small animals, 1 = infantry, 2 = trees, 3 = vehicles
  1730.     CommandPoints = 10
  1731.     CommandSet = MordorHaradrimLancerHordeCommandSet
  1732.         
  1733.     FormationWidth = 2 ; Width it occupies in formations. Current choices are 1 or 2.
  1734.     FormationDepth = 1 ; Depth it occupies in formations. Current choices are 1 or 2.
  1735.     
  1736.     TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE
  1737.     KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY HORDE MELEE_HORDE ;UNATTACKABLE 
  1738.     
  1739.     Body = ImmortalBody ModuleTag_ImmortalBody
  1740.         MaxHealth = 1
  1741.     End
  1742.     
  1743.     Behavior = StancesBehavior ModuleTag_StancesBehavior
  1744.         StanceTemplate = FighterHorde
  1745.     End
  1746.  
  1747.     Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
  1748.         AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
  1749.         MoodAttackCheckRate        = 500
  1750.         MaxCowerTime                =    5000
  1751.         MinCowerTime                =    3000
  1752.         AILuaEventsList                = InfantryFunctions
  1753.         AttackPriority                =     AttackPriority_Archer  
  1754.     End
  1755.  
  1756.     Behavior = HordeContain ModuleTag_HordeContainOverride
  1757.         ObjectStatusOfContained = 
  1758.         InitialPayload = MordorHaradrim EVIL_MEN_NORMAL_HORDE_SIZE
  1759.         Slots = 5
  1760.         PassengerFilter = NONE +INFANTRY
  1761.         ShowPips = No
  1762.         ThisFormationIsTheMainFormation = yes    ;Used to determine which armorset to use (and anything else we want!)
  1763.         RandomOffset=X:5 Y:5
  1764.         
  1765.         ; Banner Carrier info        
  1766.         BannerCarriersAllowed    = MordorBannerOrc        ; types of units that are allowed as banner carriers
  1767.         BannerCarrierPosition    = UnitType:MordorHaradrim    Pos:X:50.0 Y:0.0    ; (DEFAULT) position of banner carrier for archer horde
  1768.         
  1769.         RankInfo = RankNumber:1 UnitType:MordorHaradrim Position:X:30 Y:0    Position:X:30 Y:20    Position:X:30 Y:-20    Position:X:30 Y:40    Position:X:30 Y:-40 
  1770.         MeleeAttackLeashDistance = 25; How far the hordes can move from the center of the horde when melee attacking.        
  1771.         RanksToReleaseWhenAttacking = 1
  1772.     End
  1773.   
  1774.     Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
  1775.         GravityMult = 1.0
  1776.     End
  1777.     
  1778.      Behavior = EmotionTrackerUpdate    Module_EmotionTracker
  1779.         TauntAndPointDistance        =    INFANTRY_TAUNT_POINT_RADIUS        ; max distance to taunted/pointed objet
  1780.         TauntAndPointUpdateDelay    =    1000    ; how often scan (milliseconds)
  1781.         TauntAndPointExcluded        =    NONE
  1782.         AfraidOf                    =    EMOTION_AFRAIDOF_OBJECTFILTER
  1783.         AlwaysAfraidOf                =    EMOTION_ALWAYS_AFRAIDOF_OBJECTFILTER
  1784.         PointAt                        =    EMOTION_POINTAT_OBJECTFILTER
  1785.         HeroScanDistance            =    150
  1786.         FearScanDistance            =    INFANTRY_FEAR_SCAN_RADIUS
  1787.  
  1788.         AddEmotion    =    Terror_Base
  1789.         AddEmotion    =    Doom_Base
  1790.         AddEmotion    =   BraceForBeingCrushed_Base
  1791.         AddEmotion    =    UncontrollableFear_Base_Evil
  1792.         AddEmotion    =    FearIdle_Base
  1793.         AddEmotion    =    FearBusy_Base
  1794.         AddEmotion    =    Point_Base
  1795.         AddEmotion    =    Taunt_Base    
  1796.         AddEmotion    =    CheerIdle_Base
  1797.         AddEmotion    =    CheerBusy_Base
  1798.         AddEmotion    =    HeroCheerIdle_Base
  1799.         AddEmotion    =    HeroCheerBusy_Base
  1800.         AddEmotion    =    Alert_Base
  1801.     End        
  1802.     
  1803.     LocomotorSet
  1804.         Locomotor     = NormalMeleeHordeLocomotor
  1805.         Condition     = SET_NORMAL
  1806.         Speed         = NORMAL_EVIL_INFANTRY_HORDE_SPEED
  1807.     End
  1808.  
  1809.     Behavior = ProductionUpdate ProductionUpdateModuleTag
  1810.         GiveNoXP = Yes
  1811.     End
  1812.  
  1813.     Behavior = LevelUpUpgrade ModuleTag_BasicTraining
  1814.         TriggeredBy = Upgrade_MordorBasicTraining
  1815.         LevelsToGain = 1
  1816.         LevelCap = 2
  1817.     End
  1818.     
  1819.     Geometry = BOX
  1820.     GeometryMajorRadius = 16.0
  1821.     GeometryMinorRadius = 16.0
  1822.     GeometryHeight = 12.0
  1823.     GeometryIsSmall = No
  1824.     
  1825.         Shadow = SHADOW_DECAL
  1826.         ShadowSizeX = 23;
  1827.         ShadowSizeY = 23;
  1828.         ShadowTexture = ShadowI;
  1829.  
  1830. End
  1831.  
  1832.  
  1833.  
  1834.  
  1835. ;------------------------------------------------------------------------------
  1836. ; REFERENCES TO NEW OBJECTS USING OLD NAMES (to not break existing maps just yet)
  1837.  
  1838. ChildObject MordorHaradrim MordorHaradrimObsolete
  1839.     Side = Obsolete
  1840. End
  1841.  
  1842. ChildObject MordorHaradrimSandbox MordorHaradrimSandboxObsolete
  1843.     Side = Obsolete
  1844. End
  1845.  
  1846. ChildObject MordorHaradrimOverlord MordorHaradrimOverlordObsolete
  1847.     Side = Obsolete
  1848. End
  1849.  
  1850. ChildObject MordorHaradrimHorde MordorHaradrimHordeObsolete
  1851.     Side = Obsolete
  1852. End
  1853.  
  1854. ChildObject MordorHaradrimLancerHorde MordorHaradrimLancerHordeObsolete
  1855.     Side = Obsolete
  1856. End
  1857.  
  1858. ChildObject MordorHaradrimHordeInn MordorHaradrimHordeInnObsolete
  1859.     Side = Obsolete
  1860. End
  1861.  
  1862. ChildObject MordorHaradrimHordeWedge MordorHaradrimHordeWedgeObsolete
  1863.     Side = Obsolete
  1864. End
  1865.  
  1866.  
  1867.  
  1868.