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_goodfaction_units_elven_elvenlorienarcher.ini < prev    next >
Text File  |  2006-01-31  |  36KB  |  1,189 lines

  1. ; Moved from ElvenInfantry.INI Aug 24 2005
  2.  
  3. ;------------------------------------------------------------------------------
  4. Object ElvenLorienArcher
  5.  
  6.     UpgradeCameo1        =    Upgrade_RohanFireArrows    
  7.     
  8.     ButtonImage        =    WOR_LorienArcher
  9.     SelectPortrait        =    UPElven_LorienArcher
  10.  
  11.     Draw = W3DHordeModelDraw ModuleTag_01
  12.  
  13.       OkToChangeModelColor = Yes
  14.       
  15.     StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD
  16.     LodOptions                            = LOW
  17.         AllowMultipleModels                = ALLOW_MULTIPLE_MODELS_LOW
  18.         MaxRandomTextures                = MAX_RANDOM_TEXTURES_LOW
  19.         MaxRandomAnimations                = MAX_RANDOM_ANIMATIONS_LOW
  20.         MaxAnimFrameDelta                = MAX_ANIM_FRAME_DELTA_LOW
  21.     End
  22.     
  23.     LodOptions                            = MEDIUM
  24.         AllowMultipleModels                = ALLOW_MULTIPLE_MODELS_MED
  25.         MaxRandomTextures                = MAX_RANDOM_TEXTURES_MED
  26.         MaxRandomAnimations                = MAX_RANDOM_ANIMATIONS_MED
  27.         MaxAnimFrameDelta                = MAX_ANIM_FRAME_DELTA_MED
  28.     End
  29.     
  30.     LodOptions                            = HIGH
  31.         AllowMultipleModels                = ALLOW_MULTIPLE_MODELS_HIGH
  32.         MaxRandomTextures                = MAX_RANDOM_TEXTURES_HIGH
  33.         MaxRandomAnimations                = MAX_RANDOM_ANIMATIONS_HIGH
  34.         MaxAnimFrameDelta                = MAX_ANIM_FRAME_DELTA_HIGH
  35.     End
  36.     
  37. ;;====================== MODELS ================================================================
  38.         DefaultModelConditionState
  39.             Model                        = EULorArch_SKN
  40.             Skeleton                    = RUElfWar_SKL
  41.             WeaponLaunchBone            = PRIMARY ARROW
  42.             WeaponLaunchBone            = SECONDARY ARROWNOCK    ; when upgraded to flaming arrow
  43.             WeaponLaunchBone            = TERTIARY ARROW
  44.         End
  45.  
  46. ; --------- With Fire arrows Upgrade  ------------
  47.         ModelConditionState                = WEAPONSET_PLAYER_UPGRADE USER_4
  48.             Model                        = EULorArch_SKN
  49.             Skeleton                    = RUElfWar_SKL
  50.             WeaponLaunchBone            = PRIMARY ARROW
  51.             WeaponLaunchBone            = SECONDARY ARROWNOCK    ; when upgraded to flaming arrow
  52.             WeaponLaunchBone            = TERTIARY ARROW
  53.         ;    ParticleSysBone                = FireArowTip arrowFire FollowBone:Yes
  54.         ;    ParticleSysBone                = FireArowTip arrowFire FollowBone:Yes
  55.         End
  56.  
  57.  
  58. ;;================== ANIMATIONS =================================================================
  59.  
  60.         ; ------ Flying ------- ;    
  61.         AnimationState                    = PASSENGER
  62.             StateName                    = STATE_Grabbed
  63.             Animation                    = Bow
  64.                 AnimationName            = RUElfWar_FLLB
  65.                 AnimationMode            = LOOP
  66.             End
  67.         End    
  68.         
  69.         AnimationState                    = FREEFALL
  70.             StateName                    = STATE_Falling
  71.             Animation                    = Bow
  72.                 AnimationName            = RUElfWar_FLYA
  73.                 AnimationMode            = LOOP
  74.                 AnimationBlendTime        = 10
  75.                 AnimationSpeedFactorRange    = 0.5    0.5
  76.             End
  77.         End
  78.         
  79.         AnimationState                    = STUNNED_FLAILING
  80.             StateName                    = STATE_Fly
  81.             Animation                   = Sword
  82.                 AnimationName           = RUElfWar_FLYB
  83.                 AnimationMode           = LOOP
  84.                 AnimationSpeedFactorRange    = 0.4 0.6
  85.             End
  86.             Flags                        = MAINTAIN_FRAME_ACROSS_STATES2
  87.             BeginScript
  88.                 PrevState = CurDrawablePrevAnimationState()
  89.                 PrevAnim = CurDrawablePrevAnimation()
  90.                 if PrevState == "Ready_Bow" or PrevState == "Moving_Bow" or PrevState == "Bored_Bow"                                ;;;;;;#TODO put in various bow states here
  91.                 then
  92.                     CurDrawableShowSubObject("arrownock")
  93.                     return "WantSword"
  94.                 elseif PrevState == "STATE_Fly"
  95.                 then
  96.                     if PrevAnim == "Bow" or PrevAnim == "WantSword"
  97.                     then
  98.                         CurDrawableShowSubObject("arrownock")
  99.                         return "WantSword"
  100.                     end
  101.                 end
  102.                     
  103.                 CurDrawableHideSubObject("ArrowNock")
  104.                 return "Sword"
  105.             EndScript
  106.         End
  107.         
  108.         AnimationState                    = DYING BURNINGDEATH
  109.             Animation
  110.                 AnimationName           = RUElfWar_DIEB
  111.                 AnimationMode           = ONCE
  112.                 AnimationBlendTime        = 10
  113.             End
  114.         End
  115.         
  116.         AnimationState                    = DYING DEATH_1 SPLATTED
  117.             StateName                    = STATE_Dead
  118.             Animation                    = Bow
  119.                 AnimationName            = RUElfWar_LNDA
  120.                 AnimationMode            = ONCE
  121.             End
  122.         End
  123.         
  124.                 ; ------ Dying ------- ;
  125.         
  126.         AnimationState                    = DYING DEATH_1
  127.             Animation                   = Bow1
  128.                 AnimationName           = RUElfWar_DIEB
  129.                 AnimationMode           = ONCE
  130.             End
  131.             Animation                   = Bow2
  132.                 AnimationName           = RUElfWar_DIEBV5
  133.                 AnimationMode           = ONCE
  134.             End
  135.             Animation                   = WantBow
  136.                 AnimationName           = RUElfWar_LNDB
  137.                 AnimationMode           = ONCE
  138.             End
  139.             BeginScript
  140.                 PrevState = CurDrawablePrevAnimationState()
  141.                 PrevAnim = CurDrawablePrevAnimation()
  142.                 
  143.                 if PrevState == "STATE_Fly"
  144.                 then
  145.                     CurDrawableHideSubObject("ArrowNock")
  146.                     return "WantBow"
  147.                 end
  148.                 
  149.                 if GetClientRandomNumberReal(0,2) < 1
  150.                 then
  151.                     CurDrawableShowSubObject("arrownock")
  152.                     return "Bow1"
  153.                 else
  154.                     CurDrawableShowSubObject("arrownock")
  155.                     return "Bow2"
  156.                 end
  157.             EndScript
  158.         End
  159.     
  160.         AnimationState                    = DYING DEATH_2
  161.             Animation                    = FadeOut
  162.                 AnimationName            = RUElfWar_IDLDX1
  163.                 AnimationMode            = ONCE
  164.             End
  165.         End        
  166.         
  167.         AnimationState                        = PARALYZED
  168.             Animation
  169.                 AnimationName                = RUElfWar_IDLE
  170.                 AnimationMode                = LOOP
  171.             End
  172.         End
  173.  
  174.         AnimationState                    = BURNINGDEATH
  175.             Animation
  176.                 AnimationName            = RUElfWar_MFDA
  177.                 AnimationMode            = LOOP
  178.                 Distance                = 40
  179.             End
  180.  
  181.         End
  182.  
  183.         AnimationState                    = STUNNED_STANDING_UP
  184.             StateName                    = STATE_GetUp
  185.             Animation                   = Bow
  186.                 AnimationName           = RUElfWar_GTPB
  187.                 AnimationMode           = ONCE
  188.             End
  189.             Animation                   = WantBow
  190.                 AnimationName           = RUElfWar_GTPSX1
  191.                 AnimationMode           = ONCE
  192.             End
  193.             Flags                        = MAINTAIN_FRAME_ACROSS_STATES4
  194.             BeginScript
  195.                 PrevState = CurDrawablePrevAnimationState()
  196.                 PrevAnim = CurDrawablePrevAnimation()
  197.                 if PrevState == "STATE_GetUp" or PrevState == "STATE_Land"
  198.                 then
  199.                     if PrevAnim == "WantBow" or PrevAnim == "Sword"
  200.                     then
  201.                         CurDrawableHideSubObject("ArrowNock")
  202.                         return "WantBow"
  203.                     end
  204.                 else
  205.                     CurDrawableShowSubObject("arrownock")
  206.                     return "Bow"
  207.                 end
  208.             EndScript
  209.         End
  210.         
  211.         AnimationState                    = STUNNED
  212.             StateName                    = STATE_Land
  213.             Animation                   = Bow
  214.                 AnimationName           = RUElfWar_LNDA
  215.                 AnimationMode           = ONCE
  216.             End
  217.             Animation                   = WantBow
  218.                 AnimationName           = RUElfWar_LNDB
  219.                 AnimationMode           = ONCE
  220.             End
  221.             Flags                        = MAINTAIN_FRAME_ACROSS_STATES3
  222.             BeginScript
  223.                 PrevState = CurDrawablePrevAnimationState()
  224.                 PrevAnim = CurDrawablePrevAnimation()
  225.                 if PrevState == "STATE_Fly"
  226.                 then
  227.                     if PrevAnim == "WantBow" or PrevAnim == "Sword"
  228.                     then
  229.                         CurDrawableHideSubObject("ArrowNock")
  230.                         return "WantBow"
  231.                     end
  232.                 end
  233.                 
  234.                 CurDrawableShowSubObject("arrownock")
  235.                 return "Bow"
  236.             EndScript
  237.         End
  238.  
  239.  
  240.                 
  241. ;;======== TERROR
  242.         
  243.         AnimationState                    = MOVING EMOTION_TERROR
  244.             StateName                    = Moving_Bow
  245.             Animation                    = RunAway_3
  246.                 AnimationName            = RUElfWar_RUNOT3
  247.                 AnimationMode            = ONCE
  248.                 Distance                = 40
  249.             End
  250.             Animation                    = RunAway_2
  251.                 AnimationName            = RUElfWar_RUNOT4
  252.                 AnimationMode            = ONCE
  253.                 Distance                = 40
  254.             End
  255.             Animation                    = RunAway
  256.                 AnimationName            = RUElfWar_RUNB
  257.                 AnimationMode            = ONCE
  258.                 Distance                = 40
  259.             End
  260.             Animation                    = finishrun_s
  261.                 AnimationName           = RUElfWar_RUNN
  262.                 AnimationMode           = ONCE
  263.                 AnimationBlendTime        = 0
  264.                 Distance                = 40
  265.             End
  266.             Animation                    = runtrans_sb
  267.                 AnimationName           = RUElfWar_RUNT
  268.                 AnimationMode           = ONCE
  269.                 AnimationBlendTime        = 5
  270.                 Distance                = 70
  271.             End
  272.             Animation                    = runtrans_bs_finish
  273.                 AnimationName           = RUElfWar_RUNC
  274.                 AnimationMode           = ONCE
  275.                 AnimationBlendTime        = 0
  276.                 Distance                = 70
  277.             End
  278.             Animation                    = RunAway_noblend
  279.                 AnimationName            = RUElfWar_RUNB
  280.                 AnimationMode            = ONCE
  281.                 AnimationBlendTime        = 0
  282.                 Distance                = 40
  283.             End
  284.             Flags                        = RESTART_ANIM_WHEN_COMPLETE MAINTAIN_FRAME_ACROSS_STATES
  285.             BeginScript
  286.                 PrevAnim    = CurDrawablePrevAnimation()
  287.                 PrevState    = CurDrawablePrevAnimationState()
  288.                 CurDrawableShowSubObject("arrownock")
  289.                 
  290.                 if PrevState == "Moving_Sword"
  291.                 then
  292.                     if PrevAnim == "runtrans_bs"
  293.                     then
  294.                         return "runtrans_bs_finish"
  295.                     elseif PrevAnim == "finishrun_b"
  296.                     then
  297.                         return "RunAway_noblend"
  298.                     else
  299.                         return "finishrun_s"
  300.                     end
  301.                 elseif PrevAnim == "finishrun_s" or PrevAnim == "runtrans_bs_finish"
  302.                 then
  303.                     return "runtrans_sb"
  304.                 elseif PrevAnim == "runtrans_sb" or PrevAnim == "run_b" or PrevAnim == "runnoblend_b"
  305.                 then
  306.                     return "RunAway_noblend"
  307.                 else
  308.                     Num = GetClientRandomNumberReal(0,7)
  309.                     if Num < 1 
  310.                     then
  311.                         return "RunAway_2"
  312.                     elseif Num > 6
  313.                     then
  314.                         return "RunAway_3"
  315.                     else
  316.                         return "RunAway"
  317.                     end
  318.                 end            
  319.             EndScript
  320.         End
  321.  
  322.  
  323.         ; ------ Attacking ------- ;
  324.         
  325.         AnimationState                    = PREATTACK_A 
  326.             Animation                    = ReadyToDrawn
  327.                 AnimationName            = RUElfWar_ATKA1
  328.                 AnimationMode            = ONCE
  329.                 AnimationBlendTime        = 20                ; Must be 0 blend time otherwise the arrow will linger for the duration of the blend!
  330.             End
  331.             BeginScript
  332.                 CurDrawableShowSubObject("ArrowNock")
  333.             EndScript
  334.         End
  335.  
  336.         AnimationState                    = FIRING_OR_RELOADING_A
  337.             StateName                    = STATE_Firing
  338.             Animation                    = OneFrameOfShooting
  339.                 AnimationName            = RUElfWar_ATKA2
  340.                 AnimationMode            = ONCE
  341.                 AnimationBlendTime        = 0
  342.                 AnimationSpeedFactorRange    = 1.5 1.5
  343.             End
  344.             Flags                        = START_FRAME_FIRST            
  345.             BeginScript
  346.                 CurDrawableShowSubObject("ArrowNock")
  347.             EndScript
  348.         End
  349.         
  350.         AnimationState                    = PREATTACK_C
  351.             Animation                    = ReadyToDrawn
  352.                 AnimationName            = RUElfWar_ATKA1
  353.                 AnimationMode            = ONCE
  354.                 AnimationBlendTime        = 20                ; Must be 0 blend time otherwise the arrow will linger for the duration of the blend!
  355.             End
  356.             BeginScript
  357.                 CurDrawableShowSubObject("ArrowNock")
  358.             EndScript
  359.         End
  360.  
  361.         AnimationState                    = FIRING_OR_RELOADING_C
  362.             StateName                    = STATE_Firing
  363.             Animation                    = OneFrameOfShooting
  364.                 AnimationName            = RUElfWar_ATKA2
  365.                 AnimationMode            = ONCE
  366.                 AnimationBlendTime        = 0
  367.                 AnimationSpeedFactorRange    = 1.5 1.5
  368.             End
  369.             Flags                        = START_FRAME_FIRST            
  370.             BeginScript
  371.                 CurDrawableShowSubObject("ArrowNock")
  372.             EndScript
  373.         End
  374.         
  375. ;;------------------------- BACKUP --------------------------------------------------------------------
  376.  
  377.         AnimationState                    = MOVING BACKING_UP
  378.             StateName                    = STATE_BackingUp
  379.             Animation                    = Bow
  380.                 AnimationName            = RUElfWar_BAKB
  381.                 AnimationMode            = LOOP
  382.             End
  383.             Animation                    = WantBow
  384.                 AnimationName            = RUElfWar_BAKS
  385.                 AnimationMode            = LOOP
  386.             End
  387.             Flags                        = MAINTAIN_FRAME_ACROSS_STATES4
  388.             BeginScript
  389.                 CurDrawableShowSubObject("arrownock")
  390.                 PrevAnim    = CurDrawablePrevAnimation()
  391.                 PrevState    = CurDrawablePrevAnimationState()
  392.                 if PrevState == "STATE_BackingUp"
  393.                 then
  394.                     if PrevAnim == "WantBow" or PrevAnim == "Sword"
  395.                     then
  396.                         return "WantBow"
  397.                     end
  398.                 end
  399.                 
  400.                 return "Bow"
  401.             EndScript
  402.         End
  403.     
  404.         ; ------------ Moving ------------- ;
  405.  
  406.         AnimationState                    = MOVING
  407.             StateName                    = Moving_Bow
  408.             SimilarRestart                = Yes
  409.             Animation                   = run_b
  410.                 AnimationName           = RUElfWar_RUNB
  411.                 AnimationMode           = LOOP
  412.                 Distance                = 40
  413.             End
  414.             Animation                    = finishrun_s
  415.                 AnimationName           = RUElfWar_RUNS
  416.                 AnimationMode           = ONCE
  417.                 AnimationBlendTime        = 0
  418.                 Distance                = 40
  419.             End
  420.             Animation                    = runtrans_sb
  421.                 AnimationName           = RUElfWar_RUNT
  422.                 AnimationMode           = ONCE
  423.                 AnimationBlendTime        = 0
  424.                 Distance                = 70
  425.             End
  426.             Animation                    = runtrans_bs_finish
  427.                 AnimationName           = RUElfWar_RUNC
  428.                 AnimationMode           = ONCE
  429.                 AnimationBlendTime        = 0
  430.                 Distance                = 70
  431.             End
  432.             Animation                    = runnoblend_b
  433.                 AnimationName           = RUElfWar_RUNB
  434.                 AnimationMode           = LOOP
  435.                 AnimationBlendTime        = 0
  436.                 Distance                = 40
  437.             End
  438.             Flags = MAINTAIN_FRAME_ACROSS_STATES RESTART_ANIM_WHEN_COMPLETE
  439.             
  440.             BeginScript
  441.                 CurDrawableShowSubObject("arrownock")
  442.                 PrevAnim    = CurDrawablePrevAnimation()
  443.                 PrevState    = CurDrawablePrevAnimationState()
  444.                 
  445.                 if PrevState == "Moving_Sword"
  446.                 then
  447.                     if PrevAnim == "runtrans_bs"
  448.                     then
  449.                         return "runtrans_bs_finish"
  450.                     elseif PrevAnim == "finishrun_b"
  451.                     then
  452.                         return "runnoblend_b"
  453.                     else
  454.                         return "finishrun_s"
  455.                     end
  456.                 elseif PrevAnim == "finishrun_s" or PrevAnim == "runtrans_bs_finish" or PrevAnim == "WantBow"
  457.                 then
  458.                     return "runtrans_sb"
  459.                 elseif PrevAnim == "runtrans_sb" or PrevAnim == "run_b" or PrevAnim == "runnoblend_b"
  460.                 then
  461.                     return "runnoblend_b"
  462.                 else
  463.                     return "run_b"
  464.                 end                
  465.             EndScript
  466.         End
  467.  
  468.         
  469. ;;-----------------------------------------------------------------------------------<<<<<<<<<<<<<<<<<<<<<<<<<<<
  470.  
  471. ;        AnimationState                    = CONTINUOUS_FIRE_MEAN        ;;;;;;;;;HACK TO STOP JITTERS
  472. ;            Animation                    = HangFrameWhileCoasting
  473. ;                AnimationName            = RUElfWar_ATKA2
  474. ;                AnimationMode            = MANUAL
  475. ;                AnimationBlendTime        = 0
  476. ;            End
  477. ;            Flags                        = START_FRAME_LAST
  478. ;                        
  479. ;            BeginScript
  480. ;                CurDrawableShowSubObject("ARROWNOCK")
  481. ;                if CurDrawablePrevAnimationState() == "STATE_Firing" then CurDrawableAllowToContinue() end
  482. ;            EndScript
  483. ;            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  484. ;            ;;;;
  485. ;            ;;;;    VERY IMPORTANT ARCHER INFORMATION
  486. ;            ;;;;    THIS WILL STOP THE JITTERS, AND BEST
  487. ;            ;;;;    YET, IT'S A COMPLETE HACK! Just look above.
  488. ;            ;;;;    We say that if we get into this state
  489. ;            ;;;;    from firing, just continue to fire. DONE.
  490. ;            ;;;;
  491. ;            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  492. ;        End
  493.         
  494. ;        AnimationState                    = CONTINUOUS_FIRE_SLOW
  495. ;            StateName                    = Ready_Bow
  496. ;            Animation                    = PutAwayArrow
  497. ;                AnimationName            = RUElfWar_ATKA3
  498. ;                AnimationMode            = ONCE
  499. ;            End
  500. ;                        
  501. ;            BeginScript
  502. ;                CurDrawableShowSubObject("ARROWNOCK")
  503. ;            EndScript
  504. ;        End
  505. ;;;--------------------------------------------------------------------------------------<<<<<<<<<<<<<<<<<<<<<<<        
  506.  
  507.         AnimationState                    = EMOTION_UNCONTROLLABLY_AFRAID 
  508.             StateName                    = STATE_Emotion_Bow
  509.             Animation                    = Bow
  510.                 AnimationName            = RUElfWar_FERB
  511.                 AnimationMode            = ONCE
  512.                 AnimationBlendTime        = 15
  513.             End    
  514.             Animation                    = Bow2
  515.                 AnimationName            = RUElfWar_FERB
  516.                 AnimationMode            = ONCE
  517.                 AnimationBlendTime        = 15
  518.             End
  519.             Flags                        = MAINTAIN_FRAME_ACROSS_STATES RESTART_ANIM_WHEN_COMPLETE
  520.             BeginScript
  521.                 PrevState = CurDrawablePrevAnimationState()
  522.                 CurDrawableShowSubObject("arrownock")
  523.                 
  524.                 if PrevState == "STATE_Emotion_Sword"
  525.                 then
  526.                     CurDrawableAllowToContinue()
  527.                     if( CurDrawablePrevAnimFraction() > .89 )
  528.                     then
  529.                         CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Ready")
  530.                     end
  531.                 end
  532.             EndScript    
  533.         End
  534.         
  535.     
  536.         ; -------- Alert ------- ;
  537.             
  538.         AnimationState                    = EMOTION_ALERT
  539.             StateName                    = Ready_Bow
  540.             
  541.             Animation                    = IDLB
  542.                 AnimationName            = RUElfWar_IDLB
  543.                 AnimationMode            = LOOP
  544.             End
  545.             
  546.             BeginScript
  547.                 CurDrawableShowSubObject("arrownock")
  548.                 PrevAnim = CurDrawablePrevAnimation()
  549.                 Prev = CurDrawablePrevAnimationState()
  550.                 if Prev == "Bored_Bow"        then CurDrawableSetTransitionAnimState("TRANS_BR_Bow")                end
  551.                 if Prev == "Selected_Bow"    then CurDrawableSetTransitionAnimState("TRANS_SR_Bow")                end
  552.                 if Prev == "Selected_Sword" or Prev == "Moving_Sword" or Prev == "Ready_Sword" or Prev == "Bored_Sword" or PrevAnim == "WantBow"
  553.                 then 
  554.                     CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Ready")    
  555.                 end                
  556.             EndScript
  557.         End 
  558.         
  559.         AnimationState                    = ENGAGED
  560.             StateName                    = Ready_Bow
  561.             
  562.             Animation                    = IDLB
  563.                 AnimationName            = RUElfWar_IDLB
  564.                 AnimationMode            = LOOP
  565.             End
  566.             
  567.             BeginScript
  568.                 CurDrawableShowSubObject("arrownock")
  569.                 PrevAnim = CurDrawablePrevAnimation()
  570.                 Prev = CurDrawablePrevAnimationState()
  571.                 if Prev == "Bored_Bow"        then CurDrawableSetTransitionAnimState("TRANS_BR_Bow")                end
  572.                 if Prev == "Selected_Bow"    then CurDrawableSetTransitionAnimState("TRANS_SR_Bow")                end
  573.                 if Prev == "Selected_Sword" or Prev == "Moving_Sword" or Prev == "Ready_Sword" or Prev == "Bored_Sword" or PrevAnim == "WantBow"
  574.                 then 
  575.                     CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Ready")    
  576.                 end                
  577.             EndScript
  578.         End
  579.         
  580.         AnimationState                    = ATTACKING
  581.             StateName                    = Ready_Bow
  582.             
  583.             Animation                    = IDLB
  584.                 AnimationName            = RUElfWar_IDLB
  585.                 AnimationMode            = LOOP
  586.             End
  587.             
  588.             BeginScript
  589.                 CurDrawableShowSubObject("arrownock")
  590.                 PrevAnim = CurDrawablePrevAnimation()
  591.                 Prev = CurDrawablePrevAnimationState()
  592.                 if Prev == "Bored_Bow"        then CurDrawableSetTransitionAnimState("TRANS_BR_Bow")                end
  593.                 if Prev == "Selected_Bow"    then CurDrawableSetTransitionAnimState("TRANS_SR_Bow")                end
  594.                 if Prev == "Selected_Sword" or Prev == "Moving_Sword" or Prev == "Ready_Sword" or Prev == "Bored_Sword" or PrevAnim == "WantBow"
  595.                 then 
  596.                     CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Ready")    
  597.                 end                
  598.             EndScript
  599.         End
  600.         
  601.         
  602. ;;------------ EMOTIONS ------------------------------------------------------------------
  603. ;;======= AFRAID
  604.  
  605.         AnimationState                    = EMOTION_AFRAID 
  606.             StateName                    = STATE_Emotion_Bow
  607.             Animation                    = Bow
  608.                 AnimationName            = RUElfWar_FERB
  609.                 AnimationMode            = ONCE
  610.                 AnimationBlendTime        = 15
  611.             End    
  612.             Animation                    = Bow2
  613.                 AnimationName            = RUElfWar_FERB
  614.                 AnimationMode            = ONCE
  615.                 AnimationBlendTime        = 15
  616.             End
  617.             Flags                        = MAINTAIN_FRAME_ACROSS_STATES RESTART_ANIM_WHEN_COMPLETE
  618.             BeginScript
  619.                 PrevState = CurDrawablePrevAnimationState()
  620.                 CurDrawableShowSubObject("arrownock")
  621.                 
  622.                 if PrevState == "STATE_Emotion_Sword"
  623.                 then
  624.                     CurDrawableAllowToContinue()
  625.                     if( CurDrawablePrevAnimFraction() > .89 )
  626.                     then
  627.                         CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Ready")
  628.                     end
  629.                 end
  630.             EndScript    
  631.         End
  632.         
  633. ;;====== CELEBRATING        
  634.  
  635.         AnimationState                    = EMOTION_CELEBRATING
  636.             StateName                    = STATE_Emotion_Bow
  637.             Animation                    = Bow
  638.                 AnimationName            = RUElfWar_CHRB
  639.                 AnimationMode            = ONCE
  640.             End
  641.             Animation                    = Bow2
  642.                 AnimationName            = RUElfWar_CHRB
  643.                 AnimationMode            = ONCE
  644.             End
  645.             Flags                        = MAINTAIN_FRAME_ACROSS_STATES RESTART_ANIM_WHEN_COMPLETE
  646.             BeginScript
  647.                 PrevState = CurDrawablePrevAnimationState()
  648.                 CurDrawableShowSubObject("arrownock")
  649.                 
  650.                 if PrevState == "STATE_Emotion_Sword"
  651.                 then
  652.                     CurDrawableAllowToContinue()
  653.                     if( CurDrawablePrevAnimFraction() > .89 )
  654.                     then
  655.                         CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Ready")
  656.                     end
  657.                 elseif PrevState == "STATE_Emotion_Bow"
  658.                 then
  659.                     CurDrawableAllowToContinue()
  660.                 elseif PrevState == "Selected_Bow"
  661.                 then
  662.                     CurDrawableSetTransitionAnimState("TRANS_SR_Bow")
  663.                 elseif PrevState == "Bored_Bow"
  664.                 then
  665.                     CurDrawableSetTransitionAnimState("TRANS_BR_Bow")
  666.                 end
  667.             EndScript    
  668.         End
  669.  
  670. ;;====== TAUNTING
  671.  
  672.         AnimationState                    = EMOTION_TAUNTING
  673.             StateName                    = STATE_Emotion_Bow
  674.             Animation                    = Bow1
  675.                 AnimationName            = RUElfWar_TNTB
  676.                 AnimationMode            = ONCE
  677.             End
  678.             Animation                    = Bow2
  679.                 AnimationName            = RUElfWar_TNTB        ; RUElfWar_TNTBX anim does not exist
  680.                 AnimationMode            = ONCE
  681.             End
  682.             Flags                        = RESTART_ANIM_WHEN_COMPLETE ;MAINTAIN_FRAME_ACROSS_STATES
  683.             BeginScript
  684.                 PrevState = CurDrawablePrevAnimationState()
  685.                 CurDrawableShowSubObject("arrownock")
  686.                 
  687.                 if PrevState == "STATE_Emotion_Sword"
  688.                 then
  689.                     CurDrawableAllowToContinue()
  690.                     if( CurDrawablePrevAnimFraction() > .89 )
  691.                     then
  692.                         CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Ready")
  693.                     end
  694.                 elseif PrevState == "STATE_Emotion_Bow"
  695.                 then
  696.                     CurDrawableAllowToContinue()
  697.                 elseif PrevState == "Selected_Bow"
  698.                 then
  699.                     CurDrawableSetTransitionAnimState("TRANS_SR_Bow")
  700.                 elseif PrevState == "Bored_Bow"
  701.                 then
  702.                     CurDrawableSetTransitionAnimState("TRANS_BR_Bow")
  703.                 end
  704.             EndScript
  705.         End
  706.  
  707. ;;====== POINTING
  708.  
  709.         AnimationState                    = EMOTION_POINTING
  710.             StateName                    = STATE_Emotion_Bow
  711.             Animation                    = Bow
  712.                 AnimationName            = RUElfWar_PNTA
  713.                 AnimationMode            = ONCE
  714.             End
  715.             Animation                    = Bow2
  716.                 AnimationName            = RUElfWar_PNTA
  717.                 AnimationMode            = ONCE
  718.             End
  719.             Flags                        = MAINTAIN_FRAME_ACROSS_STATES RESTART_ANIM_WHEN_COMPLETE
  720.             BeginScript
  721.                 PrevState = CurDrawablePrevAnimationState()
  722.                 CurDrawableShowSubObject("arrownock")
  723.                 
  724.                 if PrevState == "STATE_Emotion_Sword"
  725.                 then
  726.                     CurDrawableAllowToContinue()
  727.                     if( CurDrawablePrevAnimFraction() > .89 )
  728.                     then
  729.                         CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Ready")
  730.                     end
  731.                 elseif PrevState == "STATE_Emotion_Bow"
  732.                 then
  733.                     CurDrawableAllowToContinue()
  734.                 elseif PrevState == "Selected_Bow"
  735.                 then
  736.                     CurDrawableSetTransitionAnimState("TRANS_SR_Bow")
  737.                 elseif PrevState == "Bored_Bow"
  738.                 then
  739.                     CurDrawableSetTransitionAnimState("TRANS_BR_Bow")
  740.                 end
  741.             EndScript
  742.         End
  743.         
  744.         AnimationState                    = RAISING_FLAG
  745.             StateName                    = STATE_Emotion_Bow
  746.             Animation                    = Bow
  747.                 AnimationName            = RUElfWar_CHRB
  748.                 AnimationMode            = ONCE
  749.                 AnimationSpeedFactorRange = 0.9 1.1
  750.             End
  751.             Animation                    = Bow2
  752.                 AnimationName            = RUElfWar_CHRB
  753.                 AnimationMode            = ONCE
  754.                 AnimationSpeedFactorRange = 0.9 1.1
  755.             End
  756.             Flags                        = RESTART_ANIM_WHEN_COMPLETE
  757.         End
  758.  
  759.         ; ------ Selected ------ ;
  760.  
  761.         AnimationState                =    SELECTED 
  762.             StateName               =    Selected_Bow
  763.             
  764.             Animation                =    ATNE
  765.                 AnimationName        =    RUElfWar_ATNE
  766.                 AnimationMode        =    LOOP
  767.             End
  768.             
  769.             BeginScript
  770.                 CurDrawableShowSubObject("arrownock")
  771.                 PrevAnim = CurDrawablePrevAnimation()
  772.                 Prev = CurDrawablePrevAnimationState()
  773.                 if Prev == "STATE_Emotion_Bow" or Prev == "STATE_Emotion_Sword" then CurDrawableAllowToContinue() end
  774.                 if Prev == "Bored_Bow" then CurDrawableSetTransitionAnimState("TRANS_BS_Bow")                end
  775.                 if Prev == "Ready_Bow" then CurDrawableSetTransitionAnimState("TRANS_RS_Bow")                end
  776.                 if Prev == "Selected_Sword" or Prev == "Moving_Sword" or Prev == "Ready_Sword" or Prev == "Bored_Sword" or PrevAnim == "WantBow"
  777.                 then 
  778.                     CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Selected")    
  779.                 end    
  780.             EndScript
  781.         End
  782.         
  783.         
  784.         ; --------- Hit Reactions ---------- ;
  785.  
  786. ;        AnimationState                         = HIT_REACTION HIT_LEVEL_1
  787. ;            StateName                        = Bored_Bow
  788. ;            Animation                         = Hit_Level_1_a
  789. ;                AnimationName                = RUElfWar_HITB
  790. ;                AnimationMode                 = ONCE
  791. ;                AnimationSpeedFactorRange    = .9 .9
  792. ;            End
  793. ;        End
  794.         
  795.         
  796.         ; ------- Bored -------- ;
  797.         
  798.         
  799.         IdleAnimationState
  800.             StateName                    = Bored_Bow
  801.             
  802.             Animation                    = IdleBowB
  803.                 AnimationName            = RUElfWar_IDLDX1
  804.                 AnimationMode            = ONCE
  805.             End
  806.             Animation                    = IdleBowD
  807.                 AnimationName            = RUElfWar_IDLD
  808.                 AnimationMode            = ONCE
  809.             End
  810.             Animation                    = IdleNoFidget
  811.                 AnimationName            = RUElfWar_IDLE
  812.                 AnimationMode            = ONCE
  813.                 AnimationPriority        = 20
  814.             End
  815.             Animation                    = IdleNoFidget2
  816.                 AnimationName            = RUElfWar_IDLE
  817.                 AnimationMode            = ONCE
  818.                 AnimationPriority        = 10
  819.             End
  820.             Flags                        = RESTART_ANIM_WHEN_COMPLETE
  821.             BeginScript    
  822.                 CurDrawableShowSubObject("arrownock")            
  823.                 PrevAnim = CurDrawablePrevAnimation()
  824.                 Prev = CurDrawablePrevAnimationState()
  825.                 if Prev == "TRANS_SB_Bow" or Prev == "TRANS_RB_Bow" then return "IdleNoFidget" end
  826.                 if Prev == "Selected_Bow"        then CurDrawableSetTransitionAnimState("TRANS_SB_Bow")        end
  827.                 if Prev == "Ready_Bow"            then CurDrawableSetTransitionAnimState("TRANS_RB_Bow")        end
  828.                 if Prev == "Selected_Sword" or Prev == "Moving_Sword" or Prev == "Ready_Sword" or Prev == "Bored_Sword" or PrevAnim == "WantBow"
  829.                 then 
  830.                     CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Selected")    
  831.                 end    
  832.             EndScript
  833.         End
  834.  
  835.         
  836.         ;----------------- Bow Transitions -------------------------;
  837.  
  838.         TransitionState                   = TRANS_BS_Bow
  839.             Animation                   = ATND
  840.                 AnimationName             = RUElfWar_ATND
  841.                 AnimationMode             = ONCE
  842.                 AnimationBlendTime        = 10
  843.             End
  844.         End
  845.         
  846.         TransitionState                   = TRANS_SR_Bow
  847.             Animation                   = ATNE
  848.                 AnimationName             = RUElfWar_ATNF
  849.                 AnimationMode             = ONCE
  850.             End
  851.         End
  852.         
  853.         TransitionState                   = TRANS_SB_Bow
  854.             Animation                   = ATND
  855.                 AnimationName             = RUElfWar_ATND
  856.                 AnimationMode             = ONCE_BACKWARDS
  857.             End
  858.             Flags                        = START_FRAME_LAST
  859.         End
  860.         
  861.         TransitionState                   = TRANS_RS_Bow
  862.             Animation                   = ATNF
  863.                 AnimationName             = RUElfWar_ATNF
  864.                 AnimationMode             = ONCE_BACKWARDS
  865.             End
  866.             Flags                        = START_FRAME_LAST
  867.         End
  868.         
  869.         TransitionState                   = TRANS_BR_Bow
  870.             Animation                   = IDLB
  871.                 AnimationName             = RUElfWar_IDLB
  872.                 AnimationMode             = ONCE
  873.                 AnimationBlendTime        = 20
  874.             End
  875.         End
  876.         
  877.         TransitionState                   = TRANS_RB_Bow
  878.             Animation                   = IDLD
  879.                 AnimationName             = RUElfWar_IDLD
  880.                 AnimationMode             = ONCE
  881.                 AnimationBlendTime        = 20
  882.             End
  883.         End
  884.  
  885.     End
  886.     
  887.     #include "..\..\..\includes\StunDrawModuleSmall.inc"
  888.  
  889.     ; ***DESIGN parameters ***
  890.     Side = Elves
  891.     EditorSorting = UNIT
  892.     ThreatLevel = 1.0
  893.     ThingClass = HORDE_UNIT
  894.     CommandPoints = 4
  895.  
  896.     TransportSlotCount = TRANSPORTSLOTCOUNT_UNIT
  897.     
  898.     WeaponSet
  899.         Conditions = None 
  900.         Weapon = PRIMARY    LorienElvenBow
  901.         Weapon = TERTIARY   LorienElvenBowBombard
  902.         AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
  903.         AutoChooseSources = TERTIARY FROM_PLAYER FROM_SCRIPT                ; Not AI.
  904.     End
  905.         
  906.     ArmorSet
  907.         Conditions      = None
  908.         Armor           = LorienArcherArmor
  909.         DamageFX        = NormalDamageFX
  910.     End
  911.  
  912.     ArmorSet
  913.         Conditions      = PLAYER_UPGRADE
  914.         Armor           = LorienArcherHeavyArmor
  915.         DamageFX        = NormalDamageFX
  916.     End
  917.     
  918.     VisionRange = ELVEN_LORIENARCHER_VISION_RANGE
  919.     VisionSide = 35%
  920.     VisionRear = 25%
  921.     VisionBonusPercentPerFoot = 5.0%
  922.         ShroudClearingRange = SHROUD_CLEAR_STANDARD
  923.  
  924.     BountyValue = ELVEN_LORIENWARRIOR_BOUNTY_VALUE         
  925.     DisplayName = OBJECT:ElvenLorienArcher
  926.     CrushableLevel = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
  927.  
  928.     CrushRevengeWeapon = RangedInfantryCrushRevenge
  929.     CommandSet = ElvenLorienArcherHordeCommandSet
  930.     
  931.  
  932.     ; *** AUDIO Parameters ***;
  933.  
  934.     VoiceAttack                                    = ElfWarriorVoiceAttackBow
  935.     VoiceAttackAir                                = ElfWarriorVoiceAttackBow
  936.     VoiceAttackCharge                            = ElfWarriorVoiceAttackCharge
  937.     VoiceAttackMachine                            = ElfWarriorVoiceAttackBow
  938.     VoiceAttackStructure                        = ElfWarriorVoiceAttackBuilding
  939.     VoiceCreated                                = ElfWarriorVoiceSaluteBow
  940.     VoiceFullyCreated                             = ElfWarriorVoiceSaluteBow
  941.     VoiceGuard                                    = ElfWarriorVoiceMove
  942.     VoiceMove                                    = ElfWarriorVoiceMove
  943.     VoiceMoveToCamp                                = ElfWarriorVoiceMoveCamp
  944.     VoiceMoveWhileAttacking                        = ElfWarriorVoiceDisengage
  945.     VoicePriority                                = 39
  946.     VoiceRetreatToCastle                        = ElfWarriorVoiceRetreat
  947.     VoiceSelect                                    = ElfWarriorVoiceSelectMS
  948.     VoiceSelectBattle                             = ElfWarriorVoiceSelectBattle
  949.  
  950.     VoiceEnterStateAttack                        = ElfWarriorVoiceEnterStateAttackBow
  951.     VoiceEnterStateAttackAir                    = ElfWarriorVoiceEnterStateAttackBow
  952.     VoiceEnterStateAttackCharge                    = ElfWarriorVoiceEnterStateAttackCharge
  953.     VoiceEnterStateAttackMachine                = ElfWarriorVoiceEnterStateAttack
  954.     VoiceEnterStateAttackStructure                = ElfWarriorVoiceEnterStateAttack
  955.     VoiceEnterStateMove                            = ElfWarriorVoiceEnterStateMove
  956.     VoiceEnterStateMoveToCamp                    = ElfWarriorVoiceEnterStateMoveCamp
  957.     VoiceEnterStateMoveWhileAttacking            = ElfWarriorVoiceEnterStateDisengage
  958.     VoiceEnterStateRetreatToCastle                = ElfWarriorVoiceEnterStateRetreat
  959.  
  960.     SoundImpact                                 = ImpactHorse
  961.  
  962.     UnitSpecificSounds
  963.         VoiceEnterUnitElvenTransportShip        = ElfWarriorVoiceMoveShip
  964.         VoiceGarrison                            = ElfWarriorVoiceMoveGarrison    
  965.         VoicePrimaryWeaponMode                    = ElvenWarriorVoiceModeBow
  966.         VoiceSecondaryWeaponMode                = ElvenWarriorVoiceModeSword
  967.         VoiceInitiateCaptureBuilding            = ElfWarriorVoiceCaptureBuilding            ; From SpecialPower SpecialAbilityCaptureBuilding
  968.         VoiceEnterStateInitiateCaptureBuilding    = ElfWarriorVoiceEnterStateCaptureBuilding
  969.         VoiceMoveToTrees                        = ElfWarriorVoiceMoveForest
  970.         VoiceEnterStateMoveToTrees                = ElfWarriorVoiceEnterStateMoveForest
  971.     End
  972.  
  973.     CrowdResponseKey = Elf
  974.  
  975.     #include "..\..\..\includes\StandardUnitEvaEvents.inc"
  976.  
  977.     Behavior = LargeGroupAudioUpdate ModuleTag_LGAU                    ; Tie into LargeGroupAudio system
  978.         Key = Humanoid_Male Elf Elf_Male Unit Infantry Elf_LorienArcher
  979.     End
  980.  
  981.     ClientBehavior = ModelConditionAudioLoopClientBehavior ModuleTag_foo
  982.         ModelCondition = Required:EMOTION_CELEBRATING    Excluded:DYING ENGAGED    Sound:EmotionElfCompilationVoxCheerSinglesLoop    ;MOVING ATTACKING 
  983.         ModelCondition = Required:EMOTION_TAUNTING        Excluded:DYING ENGAGED    Sound:EmotionElfCompilationVoxTauntSinglesLoop    ;MOVING ATTACKING
  984.         ModelCondition = Required:EMOTION_POINTING        Excluded:DYING ENGAGED    Sound:EmotionElfCompilationVoxTauntSinglesLoop
  985.         ModelCondition = Required:RAISING_FLAG            Excluded:DYING ENGAGED    Sound:EmotionElfCompilationVoxTauntSinglesLoop
  986.     End
  987.  
  988.     ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
  989.         MaxUpdateRangeCap = 800
  990.         AnimationSound = Sound:ArrowDrawBow                    Animation:RUElfWar_SKL.RUElfWar_ATKA1    Frames:6
  991.         AnimationSound = Sound:ArrowDrawBow                    Animation:RUElfWar_SKL.RUElfWar_ATKA2    Frames:18
  992.  
  993.         AnimationSound = Sound:SwordShingClean1ForHordes         Animation:RUElfWar_SKL.RUElfWar_STHA     Frames:24
  994.         AnimationSound = Sound:SwordIntoScabbard1ForHordes        Animation:RUElfWar_SKL.RUElfWar_STHB     Frames:9
  995.         AnimationSound = Sound:WeaponSwitchBowForHordes             Animation:RUElfWar_SKL.RUElfWar_STHB     Frames:15
  996.  
  997.         AnimationSound = Sound:SwordShingClean1ForHordes         Animation:RUElfWar_SKL.RUElfWar_STHC     Frames:20
  998.         AnimationSound = Sound:SwordIntoScabbard1ForHordes        Animation:RUElfWar_SKL.RUElfWar_STHD     Frames:5
  999.         AnimationSound = Sound:WeaponSwitchBowForHordes         Animation:RUElfWar_SKL.RUElfWar_STHD     Frames:8
  1000.  
  1001.         AnimationSound = Sound:SwordShingClean1ForHordes         Animation:RUElfWar_SKL.RUElfWar_RUNC     Frames:14
  1002.         AnimationSound = Sound:SwordIntoScabbard1ForHordes         Animation:RUElfWar_SKL.RUElfWar_RUNT     Frames:4
  1003.         AnimationSound = Sound:WeaponSwitchBowForHordes         Animation:RUElfWar_SKL.RUElfWar_RUNT     Frames:16
  1004.  
  1005.         AnimationSound = Sound:BodyFallSoldier                Animation:RUElfWar_SKL.RUElfWar_LNDA    Frames:9
  1006.         AnimationSound = Sound:BodyFallSoldier                Animation:RUElfWar_SKL.RUElfWar_LNDB    Frames:1
  1007.  
  1008.         AnimationSound = Sound:BodyFallGenericNoArmor            Animation:RUElfWar_SKL.RUElfWar_DIEB     Frames:82
  1009.         AnimationSound = Sound:BodyFallSoldier                Animation:RUElfWar_SKL.RUElfWar_DIEBV5     Frames:25
  1010.         AnimationSound = Sound:BodyFallSoldier                Animation:RUElfWar_SKL.RUElfWar_DIESV4     Frames:26
  1011.         AnimationSound = Sound:BodyFallGenericNoArmor            Animation:RUElfWar_SKL.RUElfWar_DIESV5    Frames:100
  1012.     End
  1013.  
  1014.     ; *** ENGINEERING Parameters ***
  1015.  
  1016.     RadarPriority = UNIT
  1017.     KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY SCORE THROWN_OBJECT PATH_THROUGH_EACH_OTHER ATTACK_NEEDS_LINE_OF_SIGHT GRAB_AND_DROP
  1018.     
  1019.     Body = ActiveBody ModuleTag_02
  1020.         CheerRadius       = EMOTION_CHEER_RADIUS
  1021.         MaxHealth         = ELVEN_LORIENARCHER_HEALTH            ;BALANCE RohanElvenWarrior
  1022.         MaxHealthDamaged  = ELVEN_LORIENARCHER_HEALTH_DAMAGED        
  1023.         BurningDeathBehavior = Yes
  1024.         BurningDeathFX       = FX_InfantryBurningFlame
  1025.     End
  1026.     
  1027.     ;Fire arrow upgrade
  1028.     Behavior = WeaponSetUpgrade ModuleTag_WeaponSetUpgradeTag
  1029.         TriggeredBy = Upgrade_ElvenSilverthornArrows
  1030.         CustomAnimAndDuration   = AnimState:USER_4 AnimTime:0 TriggerTime:0 ;set flag forever
  1031.     End
  1032.     
  1033.     ;Switch arrows being displayed.
  1034.     Behavior = SubObjectsUpgrade ModuleTag_FireArrowSwapUpgrade
  1035.         TriggeredBy        = Upgrade_ElvenSilverthornArrows
  1036.         ShowSubObjects    = FireArowTip
  1037.     End    
  1038.         
  1039.     Behavior = SubObjectsUpgrade Armor_Upgrade
  1040.         TriggeredBy        = Upgrade_ElvenHeavyArmor
  1041.         UpgradeTexture    = EULorArch.tga 0 EULorArch_HA.tga
  1042.         RecolorHouse    = Yes
  1043.     End
  1044.     
  1045.     Behavior = ArmorUpgrade ArmorUpgradeModuleTag
  1046.         TriggeredBy = Upgrade_ElvenHeavyArmor
  1047.     End
  1048.  
  1049.     Behavior = AIUpdateInterface ModuleTag_03
  1050.         AutoAcquireEnemiesWhenIdle        = Yes ATTACK_BUILDINGS
  1051.         MoodAttackCheckRate                = 500
  1052.         CanAttackWhileContained            = Yes        
  1053. ;        HoldGroundCloseRangeDistance    = 41
  1054.         AILuaEventsList                    = RohanElvenWarriorFunctions
  1055.         BurningDeathTime                = BURNINGDEATH_DURATION_INFANTRY
  1056.     End
  1057.  
  1058.     LocomotorSet
  1059.         Locomotor = HumanLocomotor
  1060.         Condition = SET_NORMAL 
  1061.         Speed     = NORMAL_ELVEN_FAST_MEMBER_SPEED
  1062.     End
  1063.  
  1064.     LocomotorSet
  1065.         Locomotor = HumanWanderLocomotor
  1066.         Condition = SET_WANDER
  1067.         Speed     = NORMAL_ELVEN_FAST_MEMBER_SPEED
  1068.     End
  1069.  
  1070.     LocomotorSet
  1071.         Locomotor = HumanPanicLocomotor
  1072.         Condition = SET_PANIC
  1073.         Speed      = NORMAL_ELVEN_FAST_MEMBER_SPEED
  1074.     End
  1075.     
  1076.     LocomotorSet
  1077.         Locomotor = HumanScaredLocomotor
  1078.         Condition = SET_SCARED
  1079.         Speed      = NORMAL_ELVEN_FAST_MEMBER_SPEED
  1080.     End
  1081.         
  1082.     LocomotorSet
  1083.         Locomotor = BurningDeathLocomotorInfantry
  1084.         Condition = SET_BURNINGDEATH
  1085.         Speed      = BURNINGDEATH_WANDERSPEED_INFANTRY
  1086.     End
  1087.  
  1088.     ; Fire arrow upgrade
  1089.     Behavior = WeaponSetUpgrade ModuleTag_14
  1090.         TriggeredBy = Upgrade_ElvenSilverthornArrows
  1091.     End
  1092.  
  1093.     Behavior = PhysicsBehavior ModuleTag_04
  1094.         GravityMult = 1.0
  1095.     End
  1096.     
  1097.     Behavior = SlowDeathBehavior ModuleTag_05
  1098.         DeathTypes = ALL -FADED
  1099.         SinkDelay = 3000
  1100.         SinkRate = 0.5     ; in Dist/Sec
  1101.         DestructionDelay = 15000
  1102.         Sound = INITIAL ElfGenericVoiceDie
  1103.         DeathFlags = DEATH_1
  1104.     End
  1105.     
  1106.       Behavior = SlowDeathBehavior ModuleTag_FadeDeath
  1107.         DeathTypes = NONE +FADED
  1108.         FadeDelay = 0
  1109.         FadeTime = 5000
  1110.         DestructionDelay = 5000
  1111.         DeathFlags = DEATH_2
  1112.         FX = INITIAL FX_UnSummonElvenAllies
  1113.     End
  1114.   
  1115.     Behavior = SquishCollide ModuleTag_06
  1116.         ;nothing
  1117.     End
  1118.  
  1119.     Behavior = BezierProjectileBehavior ModuleTag_08 ; Module starts asleep, and wakes up when thrown.
  1120.         ; 
  1121.         FirstHeight = 25  ; Height of Bezier control points above highest intervening terrain
  1122.         SecondHeight = 25
  1123.         FirstPercentIndent = 30% ; Percentage of shot distance control points are placed
  1124.         SecondPercentIndent = 70%
  1125.         TumbleRandomly = Yes
  1126.  
  1127.         CrushStyle = Yes ; I don't detonate, I just hit
  1128.         DieOnImpact = Yes
  1129.         BounceCount = 1   ; When I hit the ground, I'll arc again
  1130.         BounceDistance = 41 ; this far
  1131.         BounceFirstHeight = 25  ; Height of Bezier control points above highest intervening terrain
  1132.         BounceSecondHeight = 25
  1133.         BounceFirstPercentIndent = 20% ; Percentage of shot distance control points are placed
  1134.         BounceSecondPercentIndent = 80%
  1135.  
  1136.         GroundHitFX       = FX_ThrownRockGroundHit
  1137.         GroundBounceFX    = FX_ThrownRockBounceHit
  1138.     End
  1139.  
  1140.     Geometry = CYLINDER
  1141.     GeometryMajorRadius = 8.0
  1142.     GeometryMinorRadius = 8.0
  1143.     GeometryHeight = 19.2
  1144.     GeometryIsSmall = Yes
  1145.     Shadow = SHADOW_DECAL
  1146.     ShadowSizeX = 14;
  1147.     ShadowSizeY = 14;
  1148.     ShadowTexture = ShadowI;
  1149. End
  1150.  
  1151.  
  1152. ChildObject ElvenLorienArcher_Slaved ElvenLorienArcher
  1153.  
  1154.     ; make sure we can see all round.
  1155.     VisionSide            = 100%
  1156.     VisionRear            = 100%
  1157.     ShroudClearingRange    = ELVEN_MALLORN_TREE_SHROUD_CLEAR
  1158.     ShockwaveResistance    = SHOCKWAVE_RESISTANCE_ALWAYS
  1159.  
  1160.     LocomotorSet
  1161.         Locomotor   = HumanLocomotor
  1162.         Condition   = SET_NORMAL
  1163.         Speed       = 0
  1164.     End
  1165.  
  1166.     WeaponSet
  1167.         Conditions    = None 
  1168.         Weapon        = PRIMARY LorienMallornTreeBow
  1169.     End
  1170.  
  1171.     ;//These guys are stuck in the barricade can't move and can't be attacked
  1172.     KindOf =  UNATTACKABLE NOT_AUTOACQUIRABLE
  1173.  
  1174.     Behavior = SlavedUpdate ModuleTag_Slave
  1175.         GuardMaxRange        = 0
  1176.         GuardWanderRange    = 0
  1177.         UseSlaverAsControlForEvaObjectSightedEvents = No ; Not a creep
  1178.     End
  1179.     
  1180.     Behavior = SlowDeathBehavior ModuleTag_05                ; overriden to be faster, so we fall with the barricade rubble.
  1181.         DeathTypes            = ALL -KNOCKBACK
  1182.         SinkDelay            = 10
  1183.         SinkRate            = 1.50                            ; in Dist/Sec
  1184.         DestructionDelay    = 10000
  1185.         Sound                = INITIAL ElfGenericVoiceDie
  1186.         DeathFlags            = DEATH_1
  1187.     End
  1188.  
  1189. End