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_men_faramir.ini < prev    next >
Text File  |  2006-01-31  |  44KB  |  1,376 lines

  1. ;------------------------------------------------------------------------------
  2. ;
  3. ;    Faramir.ini
  4. ;
  5. ;------------------------------------------------------------------------------
  6.  
  7. ; Faramir
  8. Object GondorFaramir
  9.     ; *** ART Parameters ***
  10.  
  11.     ; SelectPortrait for Heros is portrait behind skill buttons. HP = HeroPortrait.
  12.     SelectPortrait = HPFaramir
  13.     
  14.     ; ButtonImage for Heros is button image on Hero Select UI to select hero. HI = HeroIcon or HeroImage.
  15.     ButtonImage = HIFaramir
  16.     
  17.     DescriptionStrategic = CONTROLBAR:LW_ToolTip_Faramir    
  18.     
  19.     Draw = W3DScriptedModelDraw ModuleTag_DRAW
  20.     OkToChangeModelColor = Yes
  21.     StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD
  22.  
  23.     ExtraPublicBone = arrow
  24.     ExtraPublicBone = PASSENGERBONE
  25.         
  26.      DependencySharedModelFlags = TURN_LEFT_HIGH_SPEED TURN_RIGHT_HIGH_SPEED MOVING ACCELERATE DECELERATE TURN_LEFT TURN_RIGHT ATTACKING BACKING_UP
  27.  
  28. ;;====================== MODELS ================================================================
  29.         DefaultModelConditionState
  30.             Model               = GUFaramir_SKN
  31.             WeaponLaunchBone    = PRIMARY arrow
  32.         End
  33.  
  34. ; --------- On Horseback ------------
  35.         ModelConditionState        = MOUNTED
  36.             Model               = GUFrmrHrs_SKN
  37.             WeaponLaunchBone    = PRIMARY PASSENGERBONE
  38.         End
  39.  
  40. ;;================== ANIMATIONS =================================================================
  41.     
  42. ;;----------- Captain of Gondor Mounted
  43.         AnimationState        = PACKING_TYPE_2 MOUNTED
  44.             StateName          =    STATE_CaptainMounted
  45.             
  46.             Animation           = GUFaramir_IDLC
  47.                 AnimationName     = RUHHs_Theo_SKL.RUHHs_Theo_IDLC
  48.                 AnimationMode     = ONCE
  49.                 AnimationSpeedFactorRange = 0.5 0.5
  50.             End
  51.         End
  52.  
  53. ;;----------- Captain of Gondor - Sword
  54.         AnimationState        = PACKING_TYPE_2 WEAPONSET_TOGGLE_1
  55.             StateName          =    CaptainPower
  56.             Animation           = GUFaramir_CHRC
  57.                 AnimationName     = GUFaramir_SKL.GUFaramir_CHRC
  58.                 AnimationMode     = ONCE
  59.                 AnimationSpeedFactorRange = 1.2 1.2
  60.             End
  61.         End
  62.  
  63. ;;----------- Captain of Gondor - Bow
  64.         AnimationState        = PACKING_TYPE_2
  65.             StateName          =    STATE_CaptainBow
  66.             Animation           = GUFaramir_CHRD
  67.                 AnimationName     = GUFaramir_SKL.GUFaramir_CHRD
  68.                 AnimationMode     = ONCE
  69.                 AnimationSpeedFactorRange = 0.75 0.75
  70.             End
  71.         End
  72.  
  73.  
  74. ; --------- MOUNTED  ------------        
  75.  
  76. ; --- Dying Anims
  77.         AnimationState                =    MOUNTED FREEFALL 
  78.             Animation                =    freefall
  79.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_FLYC
  80.                 AnimationMode        =    LOOP
  81.             End
  82.             Flags                    =    RANDOMSTART
  83.         End
  84.  
  85.         AnimationState                =    MOUNTED STUNNED_FLAILING 
  86.             Animation                =    JustDie
  87.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_FLYC
  88.                 AnimationMode        =    LOOP
  89.             End
  90.             Flags                    =    RANDOMSTART
  91.         End
  92.         
  93.         AnimationState                =    MOUNTED DYING SPLATTED
  94.             Animation                =    Land
  95.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_LNDA
  96.                 AnimationMode        =    ONCE
  97.             End
  98.         End
  99.         
  100.         ; This is the no-spawn-horse type of death
  101.         AnimationState                =    MOUNTED DYING
  102.             Animation                =    JustDie
  103.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_DIEA
  104.                 AnimationMode        =    ONCE
  105.             End
  106.         End
  107.         
  108.         AnimationState                =    MOUNTED STUNNED_STANDING_UP
  109.             Animation                =    StandUp
  110.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_GTPA
  111.                 AnimationMode        =    ONCE
  112.                 AnimationSpeedFactorRange = 1.5 1.5
  113.             End
  114.         End
  115.  
  116.         AnimationState                =    MOUNTED STUNNED
  117.             Animation                =    Land
  118.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_LNDA
  119.                 AnimationMode        =    ONCE
  120.             End
  121.         End
  122.         
  123.         AnimationState                        = PARALYZED MOUNTED
  124.             Animation
  125.                 AnimationName                = RUHHs_Theo_SKL.RUHHs_Theo_IDLA
  126.                 AnimationMode                = LOOP
  127.             End
  128.         End
  129.  
  130.  
  131. ; --- Attacking Anims        
  132.         AnimationState        =  MOUNTED FIRING_OR_PREATTACK_A ATTACKING_STRUCTURE
  133.             StateName = Attacking
  134.             Animation = attackinga  building while mounted.
  135.                 AnimationName           = RUHHs_Theo_SKL.RUHHs_Theo_ATKA  ;ATKB looked pretty silly.
  136.                 AnimationMode       = ONCE
  137.                 UseWeaponTiming = Yes
  138.             End
  139.         End
  140.         
  141.         
  142.         
  143.         AnimationState        = MOUNTED MOVING FIRING_OR_PREATTACK_A
  144.             ShareAnimation        = Yes
  145.             Animation           = MountedRunAndFire
  146.                 AnimationName       = RUHHs_Theo_SKL.RUHHs_Theo_ATRA
  147.                 AnimationMode       = LOOP
  148.             End
  149.             Flags               = RANDOMSTART  
  150.         End
  151.  
  152.         AnimationState                =    MOUNTED FIRING_OR_PREATTACK_A
  153.             Animation                =    AttackA
  154.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_ATKA
  155.                 AnimationMode        =    ONCE
  156.                 UseWeaponTiming        = Yes
  157.             End
  158.             Animation                =    AttackB
  159.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_ATKB
  160.                 AnimationMode        =    ONCE
  161.                 UseWeaponTiming        = Yes
  162.             End
  163.         End
  164.  
  165. ; --- Moving Anims
  166.         AnimationState                =    MOUNTED TURN_LEFT_HIGH_SPEED
  167.             Animation                =    TurnLeft
  168.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_TNL1
  169.                 AnimationMode        =    LOOP
  170.                 AnimationSpeedFactorRange= 1.2 1.2
  171.                 AnimationBlendTime    =    20
  172.             End
  173.         End
  174.         
  175.         AnimationState                =    MOUNTED TURN_RIGHT_HIGH_SPEED
  176.             Animation                =    TurnLeft
  177.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_TNR1
  178.                 AnimationMode        =    LOOP
  179.                 AnimationSpeedFactorRange= 1.2 1.2
  180.                 AnimationBlendTime    =    20
  181.             End
  182.         End
  183.         
  184.         
  185.         
  186.  
  187.         AnimationState                =    MOUNTED MOVING TURN_LEFT 
  188.             Animation                =    TurnLeft
  189.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_TRNL
  190.                 AnimationMode        =    LOOP
  191.                 AnimationSpeedFactorRange= 1.5 1.5
  192.             End
  193. ;            ;ParticleSysBone            =    None CalvaryDustTrails
  194.         End
  195.  
  196.         AnimationState                =    MOUNTED MOVING TURN_RIGHT 
  197.             Animation                =    TurnRight
  198.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_TRNR
  199.                 AnimationMode        =    LOOP
  200.                 AnimationSpeedFactorRange= 1.5 1.5
  201.             End
  202. ;            ;ParticleSysBone            =    None CalvaryDustTrails
  203.         End
  204.  
  205.         AnimationState                =    MOUNTED MOVING ACCELERATE
  206.             Animation                =    Accelerate
  207.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_ACCL
  208.                 AnimationMode        =    LOOP
  209.             End
  210.             ;ParticleSysBone            =    None CalvaryDustTrails
  211.         End
  212.  
  213.         AnimationState                =    MOUNTED MOVING DECELERATE
  214.             Animation                =    Decelerate
  215.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_DECL
  216.                 AnimationMode        =    ONCE
  217.                 AnimationSpeedFactorRange    = 0.55 0.55
  218.             End
  219.             ;ParticleSysBone            =    None CalvaryDustTrails
  220.         End
  221.  
  222.         AnimationState                =    MOUNTED MOVING WALKING
  223.             Animation                =    Walk
  224.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_WLKA
  225.                 AnimationMode        =    LOOP
  226.             End
  227.             Flags                    =    RANDOMSTART
  228.             ;ParticleSysBone            =    None InfantryDustTrails  
  229.         End
  230.         
  231.         AnimationState                =    MOUNTED MOVING BACKING_UP
  232.             Animation                =    BackingUp
  233.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_BAKA
  234.                 AnimationMode        =    LOOP
  235.             End
  236.             Flags                    =    RANDOMSTART
  237.             ;ParticleSysBone            =    None InfantryDustTrails  
  238.         End
  239.  
  240.  
  241.         AnimationState                =    MOUNTED MOVING
  242.             Animation                =    RunA
  243.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_RUNA
  244.                 AnimationMode        =    LOOP
  245.             End
  246.              Flags                    =    RANDOMSTART
  247.             ;ParticleSysBone            =    None CalvaryDustTrails  
  248.         End
  249.  
  250. ; --- Selected Anims        
  251.         AnimationState                =    MOUNTED SELECTED
  252.             SimilarRestart            =   Yes            
  253.             StateName                =    AtAttentionIdle
  254.             Animation                =    ATNB
  255.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_IDLH
  256.                 AnimationMode        =    LOOP
  257.             End
  258.             BeginScript
  259.                 Prev = CurDrawablePrevAnimationState()
  260.                 if Prev == "Idle" then CurDrawableSetTransitionAnimState("TRANS_MountedSelect") end
  261.                 if Prev == "AtAttentionIdle" then CurDrawableSetTransitionAnimState("TRANS_MountedSelect") end
  262.                 if Prev == "STATE_CaptainMounted" then CurDrawableSetTransitionAnimState("TRANS_MountedSelect") end
  263.             EndScript
  264.         End
  265.  
  266.         TransitionState                =    TRANS_MountedSelect
  267.             Animation                =    ATNA
  268.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_ATNA
  269.                 AnimationMode        =    ONCE
  270.             End
  271.         End
  272.  
  273. ; HITA not available on Theoden
  274. ;        AnimationState = MOUNTED HIT_REACTION
  275. ;            Animation = Hit_Level_1_a
  276. ;                AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_HITA
  277. ;                AnimationMode = ONCE
  278. ;            End
  279. ;        End
  280.  
  281. ; --- Idle Anims        
  282.         AnimationState = MOUNTED
  283.             StateName = Idle
  284.             Animation    =    IdleA
  285.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_IDLA
  286.                 AnimationPriority    =    30
  287.                 AnimationMode        =    ONCE
  288.                 AnimationBlendTime    =    15
  289.             End
  290.             Animation                =    IdleC
  291.                 AnimationName        =    RUHHs_Theo_SKL.RUHHs_Theo_IDLC
  292.                 AnimationMode        =    ONCE
  293.                 AnimationBlendTime    =    15
  294.             End
  295.             Flags                    =    RESTART_ANIM_WHEN_COMPLETE
  296.         End
  297.  
  298. ;;------------------  DYING -------------------------------------------------------------
  299.  
  300. ; --- Flying through the air.
  301.         AnimationState        = STUNNED_FLAILING WEAPONSET_TOGGLE_1
  302.             StateName           = STATE_Sword
  303.             Animation           = GUFaramir_FLYB
  304.                 AnimationName     = GUFaramir_SKL.GUFaramir_FLYB
  305.                 AnimationMode     = LOOP
  306.                 AnimationSpeedFactorRange    = 0.4 0.6
  307.             End
  308.             Flags               = RANDOMSTART
  309.         End
  310.         
  311.         AnimationState        = STUNNED_FLAILING 
  312.             StateName           = STATE_Bow
  313.             Animation           = GUFaramir_FLYA
  314.                 AnimationName     = GUFaramir_SKL.GUFaramir_FLYA
  315.                 AnimationMode     = LOOP
  316.                 AnimationSpeedFactorRange    = 0.4 0.6
  317.             End
  318.             Flags               = RANDOMSTART
  319.         End
  320.         
  321. ; --- Dying anims
  322.         AnimationState        = DYING SPLATTED WEAPONSET_TOGGLE_1
  323.             StateName           = STATE_Sword
  324.             Animation           = GUFaramir_LNDB
  325.                 AnimationName     = GUFaramir_SKL.GUFaramir_LNDB
  326.                 AnimationMode     = ONCE
  327.             End
  328.         End
  329.  
  330.         AnimationState        = DYING SPLATTED
  331.             StateName           = STATE_Bow
  332.             Animation           = GUFaramir_LNDA
  333.                 AnimationName     = GUFaramir_SKL.GUFaramir_LNDA
  334.                 AnimationMode     = ONCE
  335.             End
  336.         End
  337.         
  338.         ; with sword
  339.         AnimationState        = DYING WEAPONSET_TOGGLE_1    ;WEAPONSTATE_CLOSE_RANGE
  340.             StateName           = STATE_Sword
  341.  
  342.             Animation           = GUFaramir_DIEA
  343.                 AnimationName     = GUFaramir_SKL.GUFaramir_DIEA
  344.                 AnimationMode     = ONCE
  345.             End
  346.             
  347.             Animation           = GUFaramir_DIEB
  348.                 AnimationName     = GUFaramir_SKL.GUFaramir_DIEB
  349.                 AnimationMode     = ONCE
  350.             End
  351.         End
  352.         
  353.         ; with bow
  354.         AnimationState        = DYING
  355.             StateName           = STATE_Bow
  356.             Animation           = GUFaramir_DIEC
  357.                 AnimationName     = GUFaramir_SKL.GUFaramir_DIEC
  358.                 AnimationMode     = ONCE
  359.             End
  360.         End
  361.  
  362.         AnimationState                        = PARALYZED
  363.             Animation
  364.                 AnimationName                = GUFaramir_IDLC
  365.                 AnimationMode                = LOOP
  366.             End
  367.         End
  368.  
  369.  
  370. ; --- Stunned anims
  371.  
  372.  
  373.         AnimationState        = STUNNED_STANDING_UP WEAPONSET_TOGGLE_1
  374.             StateName           = STATE_Sword
  375.             Animation           = GUFaramir_GTPB
  376.                 AnimationName     = GUFaramir_SKL.GUFaramir_GTPB
  377.                 AnimationMode     = ONCE
  378.                 AnimationSpeedFactorRange = 1.5 1.5
  379.             End
  380.         End
  381.         
  382.         AnimationState        = STUNNED_STANDING_UP
  383.             StateName           = STATE_Bow
  384.             Animation           = GUFaramir_GTPA
  385.                 AnimationName     = GUFaramir_SKL.GUFaramir_GTPA
  386.                 AnimationMode     = ONCE
  387.                 AnimationSpeedFactorRange = 1.5 1.5
  388.             End
  389.         End
  390.  
  391.         AnimationState        = STUNNED WEAPONSET_TOGGLE_1
  392.             StateName           = STATE_Sword
  393.             
  394.             Animation           = GUFaramir_LNDB
  395.                 AnimationName     = GUFaramir_SKL.GUFaramir_LNDB
  396.                 AnimationMode     = ONCE
  397.             End
  398.         End
  399.  
  400.         AnimationState        = STUNNED 
  401.             StateName           = STATE_Bow
  402.             
  403.             Animation           = GUFaramir_LNDA
  404.                 AnimationName     = GUFaramir_SKL.GUFaramir_LNDA
  405.                 AnimationMode     = ONCE
  406.             End
  407.         End                
  408.  
  409. ;;----------- pose         
  410.         AnimationState        = USER_1
  411.         ;*****************************************************************
  412.             ;ParticleSysBone     = B_SWORDBONE AndruilEfxParent FollowBone:yes
  413.         ;*****************************************************************
  414.             Animation           = GUFaramir_POSA
  415.                 AnimationName     = GUFaramir_SKL.GUFaramir_POSA
  416.                 AnimationMode     = ONCE
  417.             End
  418.         End
  419.  
  420.         ;--------------------- Wound Arrow anim
  421.         AnimationState        =  SPECIAL_WEAPON_ONE
  422.             StateName = STATE_Bow
  423.             Animation
  424.                 AnimationName           = GUFaramir_SKL.GUFaramir_ATKC
  425.                 AnimationMode       = ONCE
  426.             End
  427.             FrameForPristineBonePositions = 59
  428.             BeginScript
  429.                 CurDrawableShowSubObject("arrow")
  430.             EndScript
  431.         End
  432.         
  433. ;;------------------ ATTACKING --------------------------------------------------------------------
  434.         ; Attacking Anims [Weapon_A]
  435.         
  436.         
  437.         
  438.         AnimationState        = MOVING WEAPONSET_TOGGLE_1 FIRING_OR_PREATTACK_A
  439.             Animation           = TrotAndFire
  440.                 AnimationName       = GUFaramir_SKL.GUFaramir_ATRA
  441.                 AnimationMode       = LOOP
  442.             End
  443.             Flags               = RANDOMSTART
  444.             StateName = RunAndSwing
  445.         End
  446.         
  447.         AnimationState        = FIRING_OR_PREATTACK_A WEAPONSET_TOGGLE_1
  448.             StateName           = STATE_Sword
  449.             
  450.             Animation           = ATKD
  451.                 AnimationName     = GUFaramir_SKL.GUFaramir_ATKD
  452.                 AnimationMode     = ONCE
  453.                 UseWeaponTiming        = Yes
  454.                 AnimationSpeedFactorRange = 1.149 1.149
  455.             End
  456.             
  457.             Animation           = ATKE
  458.                 AnimationName    = GUFaramir_SKL.GUFaramir_ATKE
  459.                 AnimationMode     = ONCE
  460.                 UseWeaponTiming        = Yes
  461.                 AnimationSpeedFactorRange = 1.149 1.149
  462.             End
  463.             
  464.             Animation           = ATKF
  465.                 AnimationName    = GUFaramir_SKL.GUFaramir_ATKF
  466.                 AnimationMode     = ONCE
  467.                 AnimationSpeedFactorRange = 1.47 1.47
  468.             End
  469.             Flags                =    RESTART_ANIM_WHEN_COMPLETE
  470.             ;    FrameForPristineBonePositions = 59
  471.             BeginScript
  472.                 Prev = CurDrawablePrevAnimationState()
  473.                 if Prev == "STATE_Bow" then CurDrawableSetTransitionAnimState("TRANS_BowToSword") end
  474.             EndScript
  475.         End
  476.  
  477. ;;------------------ MOVING -------------------------------------------------------------
  478.  
  479.         AnimationState        = MOVING USER_4                 ; Moving slaughter
  480.             StateName           = Slaughter
  481.             Flags               = RANDOMSTART
  482.             ;ParticleSysBone     = None InfantryDustTrails
  483.             Animation           = GUFaramir_ATKE
  484.                 AnimationName     = GUFaramir_SKL.GUFaramir_ATKE
  485.                 AnimationMode     = LOOP
  486.             End
  487.             StateName           = NoSword
  488.             BeginScript
  489.                 Prev = CurDrawablePrevAnimationState()
  490.                 if Prev == "Sword" then CurDrawableSetTransitionAnimState("TRANS_SwordToBow") end
  491.             EndScript
  492.         End
  493.  
  494.         ;--- Running with sword
  495.         AnimationState            = MOVING WEAPONSET_TOGGLE_1        ;WEAPONSTATE_CLOSE_RANGE
  496.             StateName           = STATE_RunningSword
  497.             Flags               = RANDOMSTART
  498.             ;ParticleSysBone    = None InfantryDustTrails
  499.             
  500.             Animation           = GUFaramir_RUNB
  501.                 AnimationName   = GUFaramir_SKL.GUFaramir_RUNB
  502. ;                AnimationMode   = LOOP
  503.                 AnimationSpeedFactorRange = 0.85 0.85
  504.                 Distance        = 28
  505.             End
  506.             BeginScript
  507.                 Prev = CurDrawablePrevAnimationState()
  508.                 if Prev == "STATE_Bow" then CurDrawableSetTransitionAnimState("TRANS_BowToSword") end
  509.                 if Prev == "STATE_RunningBow" then CurDrawableSetTransitionAnimState("TRANS_BowToSword_Running") end
  510.             EndScript
  511.         End
  512.  
  513.         ;--- Running with bow
  514.         AnimationState            = MOVING
  515.             StateName           = STATE_RunningBow
  516.             Flags               = RANDOMSTART
  517.             ;ParticleSysBone    = None InfantryDustTrails
  518.             
  519.             Animation           = GUFaramir_RUNA
  520.                 AnimationName   = GUFaramir_SKL.GUFaramir_RUNA
  521. ;                AnimationMode   = LOOP
  522.                 AnimationSpeedFactorRange = 0.85 0.85
  523.                 Distance = 28
  524.             End
  525.             BeginScript
  526.                 Prev = CurDrawablePrevAnimationState()
  527.                 if Prev == "STATE_Sword" then CurDrawableSetTransitionAnimState("TRANS_SwordToBow") end
  528.                 if Prev == "STATE_RunningSword" then CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Running") end
  529.             EndScript
  530.         End
  531.  
  532.         ;---------------------------------------------------
  533.         ;New style firing with bow
  534.         AnimationState                    =    PREATTACK_A 
  535.             StateName                    =    STATE_Firing
  536.             Animation                    =    ReadyToDrawn
  537.                 AnimationName            =    GUFaramir_SKL.GUFaramir_ATKA1
  538.                 AnimationMode            =    ONCE
  539. ;                UseWeaponTiming            =    Yes            ; UseWeaponTiming plus random weapon field equals desync.  Leaving as warning
  540.                 ;AnimationBlendTime        =    10
  541.             End
  542.         End
  543.  
  544.         AnimationState                    =    FIRING_OR_RELOADING_A 
  545.             StateName                    =    STATE_Firing
  546.             Animation                    =    LooseReloadDraw
  547.                 AnimationName            =    GUFaramir_SKL.GUFaramir_ATKA2
  548.                 AnimationMode            =    ONCE
  549. ;                UseWeaponTiming            =    Yes            ; UseWeaponTiming plus random weapon field equals desync.  Leaving as warning
  550.                 AnimationSpeedFactorRange = 1.1 1.1        ; Therefore, this is all you get.  A slight speed up so that the animation can always finish before any possible random value Design sets the range for
  551.                 ;AnimationBlendTime        =    10
  552.             End
  553.         End
  554.         ;---------------------End New style firing
  555.  
  556.         AnimationState                    =    CONTINUOUS_FIRE_MEAN
  557.             Animation                    =    HangFrameWhileCoasting
  558.                 AnimationName            =    GUFaramir_SKL.GUFaramir_ATKA2
  559.                 AnimationMode            =    MANUAL
  560.             End
  561.         End
  562.         
  563.         AnimationState                        = CONTINUOUS_FIRE_SLOW
  564.             ;StateName                        = STATE_Idle_Bow
  565.             Animation                        = PutAwayArrow
  566.                 AnimationName                = GUFaramir_SKL.GUFaramir_ATKA3
  567.                 AnimationMode                = ONCE
  568.             End
  569.         End
  570.                 
  571.         ;End New style firing
  572.         ;---------------------------------------------------
  573.  
  574.  
  575.         
  576. ;;-------------------- HIT REACTIONS -----------------------------------------------------------
  577.  
  578. ; this hit animation attack stance
  579.         AnimationState = EMOTION_ALERT HIT_REACTION WEAPONSET_TOGGLE_1
  580.             Animation = Hit_Level_1_d
  581.                 AnimationName = GUFaramir_SKL.GUFaramir_HITD
  582.                 AnimationMode = ONCE
  583.             End
  584.         End
  585.  
  586.         AnimationState = HIT_REACTION WEAPONSET_TOGGLE_1
  587.             Animation = Hit_Level_1_b
  588.                 AnimationName = GUFaramir_SKL.GUFaramir_HITB
  589.                 AnimationMode = ONCE
  590.             End
  591.         End
  592.  
  593.         AnimationState = HIT_REACTION
  594.             Animation = Hit_Level_1_c
  595.                 AnimationName = GUFaramir_SKL.GUFaramir_HITC
  596.                 AnimationMode = ONCE
  597.             End
  598.         End
  599.  
  600. ;;------------ EMOTIONS ------------------------------------------------------------------        
  601.  
  602.  
  603. ;;====== LEVELED
  604.         AnimationState                = LEVELED WEAPONSET_TOGGLE_1    ; This state clears itself in 3 seconds
  605.             Animation                = LevelUp
  606.                 AnimationName        = GUFaramir_SKL.GUFaramir_CHRC
  607.                 AnimationMode        = ONCE
  608.             End
  609.         End
  610.  
  611.         AnimationState                = LEVELED                         ; This state clears itself in 3 seconds
  612.             Animation                = LevelUp
  613.                 AnimationName        = GUFaramir_SKL.GUFaramir_CHRD
  614.                 AnimationMode        = ONCE
  615.             End
  616.         End
  617.  
  618. ;;====== CELEBRATING    
  619.  
  620.         AnimationState                =    EMOTION_CELEBRATING WEAPONSET_TOGGLE_1        ; sword cheer
  621.             Animation
  622.                 AnimationName        =    GUFaramir_SKL.GUFaramir_CHRC
  623.                 AnimationMode        =    LOOP
  624.             End
  625.         End
  626.  
  627.         AnimationState                =    EMOTION_CELEBRATING                            ; bow cheer
  628.             Animation
  629.                 AnimationName        =    GUFaramir_SKL.GUFaramir_CHRD
  630.                 AnimationMode        =    LOOP
  631.             End
  632.         End
  633.  
  634. ;;====== TAUNTING
  635.  
  636.         AnimationState                =    EMOTION_TAUNTING WEAPONSET_TOGGLE_1        ; sword taunt
  637.             Animation
  638.                 AnimationName        =    GUFaramir_SKL.GUFaramir_TNTC
  639.                 AnimationMode        =    ONCE
  640.             End
  641.             Animation
  642.                 AnimationName        =    GUFaramir_SKL.GUFaramir_TNTD
  643.                 AnimationMode        =    ONCE
  644.             End
  645.             Flags                        = RESTART_ANIM_WHEN_COMPLETE
  646.         End
  647.  
  648.         AnimationState                =    EMOTION_TAUNTING                            ; bow taunt
  649.             Animation
  650.                 AnimationName        =    GUFaramir_SKL.GUFaramir_CHRD
  651.                 AnimationMode        =    LOOP
  652.             End
  653.         End
  654.  
  655. ;;------------------- SELECTED STATES ------------------------------------------------------------
  656.  
  657.         AnimationState        = ATTACKING WEAPONSET_TOGGLE_1
  658.             StateName           = STATE_Sword
  659.             Animation           = ATKD
  660.                 AnimationName     = GUFaramir_SKL.GUFaramir_ATKD
  661.                 AnimationMode     = MANUAL
  662.             End            
  663.         End
  664.  
  665. ;;------------------- SELECTED STATES ------------------------------------------------------------
  666.  
  667.         AnimationState                    = SELECTED WEAPONSET_TOGGLE_1
  668.             StateName                    = STATE_Selected_Sword
  669.             
  670.             Animation                    = ATNE
  671.                 AnimationName            = GUFaramir_SKL.GUFaramir_ATNE
  672.                 AnimationMode            = LOOP
  673.                 AnimationBlendTime        = 15
  674.             End
  675.             Flags                        = RESTART_ANIM_WHEN_COMPLETE
  676.             BeginScript
  677.                 CurDrawableHideSubObject("arrow")
  678.                 Prev = CurDrawablePrevAnimationState()
  679.                 if Prev == "STATE_Selected_Bow" then CurDrawableSetTransitionAnimState("TRANS_BowToSword") end
  680.                 if Prev == "STATE_Idle_Sword" then CurDrawableSetTransitionAnimState("TRANS_BoredToSelectedSword") return end
  681.             EndScript
  682.         End
  683.         
  684. ;;====== ALERT
  685.         AnimationState                =    EMOTION_ALERT WEAPONSET_TOGGLE_1
  686.             StateName                =    STATE_READY
  687.             Animation                =    ready
  688.                 AnimationName        =    GUFaramir_SKL.GUFaramir_IDLA
  689.                 AnimationMode        =    LOOP
  690.                 AnimationBlendTime    =    20
  691.             End
  692.         End
  693.         
  694.         AnimationState                =    RAISING_FLAG
  695.             Animation
  696.                 AnimationName        =    GUFaramir_SKL.GUFaramir_CHRD
  697.                 AnimationMode        =    LOOP
  698.             End
  699.         End
  700.  
  701.         AnimationState                =    SELECTED 
  702.             StateName                =    STATE_Selected_Bow
  703.             
  704.             Animation                =    ATNB
  705.                 AnimationName        =    GUFaramir_SKL.GUFaramir_ATNB
  706.                 AnimationMode        =    LOOP
  707.                 AnimationBlendTime  = 15
  708.             End
  709.             BeginScript
  710.                 Prev = CurDrawablePrevAnimationState()
  711.                 if Prev == "STATE_Selected_Sword" then CurDrawableSetTransitionAnimState("TRANS_SwordToBow") end
  712.                 if Prev == "STATE_Idle_Bow"    then CurDrawableSetTransitionAnimState("TRANS_BoredToSelectedBow") return end
  713.                 if Prev == "STATE_CaptainBow" then CurDrawableSetTransitionAnimState("TRANS_CaptainBowToSelectedBow") end
  714.             EndScript
  715.         End
  716.     
  717.  
  718.  
  719. ;;--------------- IDLE STATES -----------------------------------------------------------------    
  720.         
  721.         AnimationState                    = WEAPONSET_TOGGLE_1
  722.             StateName                    = STATE_Idle_Sword    
  723.  
  724.             Animation                   = IDLE
  725.                 AnimationName           = GUFaramir_SKL.GUFaramir_IDLE
  726.                 AnimationMode           = LOOP
  727.                 AnimationPriority        = 20
  728.                 AnimationBlendTime  = 15
  729.             End
  730.             
  731.             Animation                   = IDLF
  732.                 AnimationName           = GUFaramir_SKL.GUFaramir_IDLF
  733.                 AnimationMode           = LOOP
  734.                 AnimationPriority        = 1
  735.             End
  736.  
  737.             Animation                   = IDLG
  738.                 AnimationName           = GUFaramir_SKL.GUFaramir_IDLG
  739.                 AnimationMode           = LOOP
  740.                 AnimationPriority        = 1
  741.             End
  742.             
  743.             BeginScript
  744.                 CurDrawableHideSubObject("arrow")
  745.                 Prev = CurDrawablePrevAnimationState()
  746.                 if Prev == "STATE_Idle_Bow" then CurDrawableSetTransitionAnimState("TRANS_BowToSword") end
  747.                 if Prev == "STATE_Selected_Sword" then CurDrawableSetTransitionAnimState("TRANS_SelectedToBoredSword") end
  748.             EndScript
  749.         End
  750.         
  751.         IdleAnimationState
  752.             StateName           = STATE_Idle_Bow
  753.             
  754.             Animation           = IdleBow
  755.                 AnimationName     = GUFaramir_SKL.GUFaramir_IDLC
  756.                 AnimationMode     = ONCE
  757.                 AnimationBlendTime  = 15
  758.             End
  759.             BeginScript
  760.                 CurDrawableShowSubObject("arrow")
  761.                 Prev = CurDrawablePrevAnimationState()
  762.                 if Prev == "STATE_Idle_Sword" then CurDrawableSetTransitionAnimState("TRANS_SwordToBow") end
  763.                 if Prev == "STATE_Selected_Bow" then CurDrawableSetTransitionAnimState("TRANS_SelectedToBoredBow") end
  764.             EndScript
  765.         End
  766.  
  767.     ;---transitions--------------------------------------------
  768.  
  769.         TransitionState = TRANS_BoredToSelectedSword
  770.             Animation = ANTD
  771.                 AnimationName        = GUFaramir_SKL.GUFaramir_ANTD
  772.                 AnimationMode        = ONCE
  773.             End        
  774.         End
  775.         
  776.         TransitionState = TRANS_SelectedToBoredSword
  777.             Animation            = ATNF
  778.                 AnimationName    = GUFaramir_SKL.GUFaramir_ATNF
  779.                 AnimationMode    = ONCE
  780.             End        
  781.         End    
  782.  
  783.         TransitionState = TRANS_BoredToSelectedBow
  784.             Animation = ATNC
  785.                 AnimationName        = GUFaramir_SKL.GUFaramir_ATNC
  786.                 AnimationMode        = ONCE
  787.             End        
  788.         End
  789.         
  790.         TransitionState = TRANS_CaptainBowToSelectedBow
  791.             Animation = ATNC
  792.                 AnimationName        = GUFaramir_SKL.GUFaramir_ATNC
  793.                 AnimationMode        = ONCE
  794.                 AnimationBlendTime    = 10
  795.                 AnimationSpeedFactorRange = 1.5 1.5
  796.             End        
  797.         End
  798.         
  799.         TransitionState = TRANS_SelectedToBoredBow
  800.             Animation            = ATNA
  801. ;                AnimationName    = GUFaramir_SKL.GUFaramir_ATNA
  802.                 AnimationName    = GUFaramir_SKL.GUFaramir_ATND
  803.                 AnimationMode    = ONCE
  804.             End        
  805.         End    
  806.  
  807.  
  808.         TransitionState       = TRANS_BowToSword
  809.             Animation           = GUFaramir_STHA
  810.                 AnimationName     = GUFaramir_SKL.GUFaramir_STHA 
  811.                 AnimationMode     = ONCE
  812.             End
  813.         End
  814.  
  815.         TransitionState       = TRANS_SwordToBow
  816.             Animation           = GUFaramir_STHB
  817.                 AnimationName     = GUFaramir_SKL.GUFaramir_STHB 
  818.                 AnimationMode     = ONCE
  819.             End
  820.         End    
  821.  
  822.         TransitionState               = TRANS_BowToSword_Running
  823.             Animation               = DrawSwords
  824.                 AnimationName       = GUFaramir_SKL.GUFaramir_STHD
  825.                 AnimationMode       = ONCE
  826.             End
  827.         End
  828.         
  829.         TransitionState               = TRANS_SwordToBow_Running
  830.             Animation               = DrawBow
  831.                 AnimationName       = GUFaramir_SKL.GUFaramir_STHC
  832.                 AnimationMode       = ONCE
  833.             End
  834.         End        
  835.  
  836.     End
  837.  
  838.     Draw = W3DScriptedModelDraw DustEffects
  839.         DefaultModelConditionState
  840.           Model = None
  841.         End
  842.         IdleAnimationState
  843.         End
  844.         AnimationState = MOUNTED MOVING WADING
  845.             ParticleSysBone = None FootstepSlash
  846.         End
  847.         AnimationState = MOUNTED MOVING ACCELERATE
  848.             ParticleSysBone = None GenericSiegeTrailDust
  849.         End
  850.         AnimationState = MOUNTED MOVING ACCELERATE
  851.             ParticleSysBone = None GenericSiegeTrailDust
  852.         End
  853.         AnimationState = MOUNTED MOVING
  854.         End
  855.     End
  856.  
  857.     #include "..\..\..\includes\StunDrawModuleSmall.inc"
  858.  
  859.     ; ***DESIGN parameters ***
  860.     Side = Men
  861.     EditorSorting = UNIT
  862.     ThreatLevel = FARAMIR_THREAT_LEVEL
  863.     ThingClass = CHARACTER_UNIT
  864.       BuildCost = FARAMIR_BUILDCOST                
  865.       BuildTime = FARAMIR_BUILDTIME            
  866.       ShockwaveResistance = SHOCKWAVE_RESISTANCE_STRONG    
  867.     TransportSlotCount = TRANSPORTSLOTCOUNT_HERO
  868.  
  869.     ;//DisplayMeleeDamage = FARAMIR_DAMAGE
  870.     ;//DisplayRangedDamage = FARAMIR_BOW_DAMAGE
  871.  
  872.     WeaponSet
  873.         Conditions = None 
  874.         Weapon = PRIMARY    FaramirBow
  875.         AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
  876.     End    
  877.     WeaponSet
  878.         Conditions            = MOUNTED
  879.         Weapon                = PRIMARY    FaramirSword
  880.     End
  881.     WeaponSet
  882.         Conditions = WEAPONSET_TOGGLE_1        ;CLOSE_RANGE CONTESTING_BUILDING
  883.         Weapon = PRIMARY    FaramirSword
  884.         AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
  885.     End
  886.     
  887.     ArmorSet
  888.         Conditions      = None
  889.         Armor           = HeroArmor
  890.         DamageFX        = NormalDamageFX
  891.     End
  892.     ArmorSet
  893.         Conditions      = MOUNTED
  894.         Armor           = HeroArmorMounted
  895.         DamageFX        = NormalDamageFX
  896.     End
  897.  
  898.     VisionRange = VISION_HERO_RANGED
  899.     ShroudClearingRange = SHROUD_CLEAR_RANGED_HERO
  900.     
  901.     MaxVisionBonusPercent = 300%
  902.     VisionBonusTestRadius = 200
  903.     VisionBonusPercentPerFoot = 1.0%
  904.  
  905.     BountyValue = GONDOR_FARAMIR_BOUNTY_VALUE
  906.     DisplayName = OBJECT:GondorFaramir
  907.     RecruitText = CONTROLBAR:GondorFaramirRecruit
  908.     ReviveText    = CONTROLBAR:GondorFaramirRevive
  909.     Hotkey        = CONTROLBAR:GondorFaramirHotkey
  910.     CrusherLevel = 0            ;Can I crush anything?
  911.     MountedCrusherLevel = 1        ;Crush level when mounted.
  912.     CrushableLevel = 2            ;What am I?:        0 = for infantry, 1 = for trees, 2 = cavalry/heroes
  913.     MountedCrushableLevel = 2    ;Crusable level when mounted.
  914.  
  915.     CrushWeapon        = HeroCrush  
  916.  
  917.     MinCrushVelocityPercent = 50 ; Has to be moving at at least 50% of full speed.
  918.     CrushDecelerationPercent = 30 ; Lose xx percent of max velocity when crushing.
  919.     
  920.     CrushKnockback = 40
  921.     CrushZFactor = 1.0
  922.  
  923.     CommandSet = GondorFaramirCommandSet
  924.     CommandPoints = 50
  925.  
  926.  
  927.     ; *** AUTO RESOLVE DATA *** 
  928.     AutoResolveUnitType = AutoResolveUnit_Hero
  929.     AutoResolveCombatChain = AutoResolve_HeroCombatChain
  930.  
  931.     AutoResolveBody = AutoResolve_FaramirBody
  932.     
  933.     AutoResolveArmor
  934.         Armor = AutoResolve_FaramirArmor
  935.     End
  936.  
  937.     AutoResolveWeapon
  938.         Weapon = AutoResolve_FaramirWeapon
  939.     End
  940.     
  941.     AutoResolveLeadership = AutoResolve_FaramirBonus
  942.  
  943.  
  944.     ; *** AUDIO Parameters ***;
  945.  
  946.     VoiceAttack                = FaramirRangerVoiceAttack
  947.     VoiceAttackAir                = FaramirRangerVoiceAttack
  948.     VoiceAttackCharge            = FaramirRangerVoiceAttackCharge
  949.     VoiceAttackMachine        = FaramirRangerVoiceAttack
  950.     VoiceAttackStructure        = FaramirRangerVoiceAttackBuilding
  951.     ;VoiceCreated            = FaramirRangerVoiceSalute    ;this conflicts with his respawn dialogue line -- rehooked to spawn FX
  952.     ;VoiceFullyCreated         = FaramirRangerVoiceSalute    ;this conflicts with his respawn dialogue line -- rehooked to spawn FX
  953.     VoiceMove                = FaramirRangerVoiceMove
  954.     VoiceMoveToCamp            = FaramirRangerVoiceMoveCamp
  955.     VoiceMoveWhileAttacking        = FaramirRangerVoiceDisengage
  956.     VoicePriority            = 82
  957.     VoiceRetreatToCastle        = FaramirRangerVoiceRetreat
  958.     VoiceSelect                = FaramirRangerVoiceSelectMS
  959.     VoiceSelectBattle         = FaramirRangerVoiceSelectBattle
  960.     VoiceGuard                = FaramirRangerVoiceMove
  961.  
  962.     SoundImpact                = ImpactHorse
  963.  
  964. ;FaramirRangerVoiceModeKnight
  965. ;FaramirRangerVoiceMoveTrees
  966.  
  967.     UnitSpecificSounds
  968.         VoiceGarrison        = FaramirRangerVoiceGarrison
  969.         VoiceEnterUnitElvenTransportShip    = FaramirRangerVoiceMove
  970.         VoiceInitiateCaptureBuilding        = FaramirRangerVoiceMove
  971.         VoiceMoveToTrees    = FaramirRangerVoiceMoveTrees                
  972.     End
  973.  
  974.     ClientBehavior = ModelConditionSoundSelectorClientBehavior ModuleTag_MCSoundSelector
  975.         SoundState = MOUNTED
  976.             VoiceAttack                = FaramirKnightVoiceAttack
  977.             VoiceAttackCharge            = FaramirKnightVoiceAttackCharge
  978.             VoiceAttackMachine        = FaramirKnightVoiceAttackBuilding
  979.             VoiceAttackStructure        = FaramirKnightVoiceAttackBuilding
  980.             ;VoiceCreated            = FaramirRangerVoiceSalute    ;this conflicts with his respawn dialogue line
  981.             ;VoiceFullyCreated         = FaramirRangerVoiceSalute    ;this conflicts with his respawn dialogue line
  982.             VoiceFear                 = FaramirKnightVoiceHelpMe
  983.             VoiceMove                = FaramirKnightVoiceMove
  984.             VoiceMoveToCamp            = FaramirKnightVoiceMoveCamp
  985.             VoiceMoveWhileAttacking        = FaramirKnightVoiceDisengage
  986.             VoiceRetreatToCastle        = FaramirKnightVoiceRetreat
  987.             VoiceSelect                = FaramirKnightVoiceSelectMS
  988.             VoiceSelectBattle         = FaramirKnightVoiceSelectBattle
  989.             VoiceGuard                = FaramirKnightVoiceMove
  990.  
  991.             ;SoundMoveStart            = GondorHorseMoveStart        ;this is for horse hordes
  992.             SoundImpact                = ImpactHorse
  993.  
  994.             VoicePriority            = 82   ; You could do this if you wanted to... 
  995.  
  996.             UnitSpecificSounds
  997.                 VoiceGarrison        = FaramirKnightVoiceMove  ; Just double-checking we don't play a ranger voice here            
  998.                 VoiceMoveToTrees    = FaramirKnightVoiceMove  ; So we don't play a ranger voice here
  999.             End
  1000.         End
  1001.     End
  1002.  
  1003.     CrowdResponseKey = GoodMen
  1004.  
  1005.     #include "..\..\..\includes\DefaultInvisibilityUpdate.inc"
  1006.     #include "..\..\..\includes\StandardUnitEvaEvents.inc"
  1007.     EvaEventDieOwner                    = FaramirDie    ;Eva event to trigger on unit's death. NOTICE THAT this is only for permanent deaths
  1008.  
  1009.     Behavior = LargeGroupAudioUpdate ModuleTag_LGAU            ; Tie into LargeGroupAudio system
  1010.         Key = Humanoid_Male Man Man_Male Unit Infantry Hero
  1011.         ;UnitWeight = 2
  1012.     End
  1013.  
  1014.     ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
  1015.         MaxUpdateRangeCap = 800
  1016.         AnimationSound = Sound:FootstepDirtA        Animation:GUFaramir_SKL.GUFaramir_RUNA        Frames:2 12
  1017.         AnimationSound = Sound:FootstepDirtA        Animation:GUFaramir_SKL.GUFaramir_RUNB        Frames:2 12
  1018.  
  1019.         AnimationSound = Sound:WeaponSwitchBow        Animation:GUFaramir_SKL.GUFaramir_ATKC        Frames:18        ;wounding arrow
  1020.  
  1021.         AnimationSound = Sound:SwordShingClean1        Animation:GUFaramir_SKL.GUFaramir_STHA        Frames:21
  1022.         AnimationSound = Sound:SwordIntoScabbard1        Animation:GUFaramir_SKL.GUFaramir_STHB        Frames:11
  1023.         AnimationSound = Sound:WeaponSwitchBow        Animation:GUFaramir_SKL.GUFaramir_STHB        Frames:28
  1024.  
  1025.         AnimationSound = Sound:SwordIntoScabbard1        Animation:GUFaramir_SKL.GUFaramir_STHC        Frames:2
  1026.         AnimationSound = Sound:WeaponSwitchBow        Animation:GUFaramir_SKL.GUFaramir_STHC        Frames:3
  1027.         AnimationSound = Sound:SwordShingClean1        Animation:GUFaramir_SKL.GUFaramir_STHD        Frames:6
  1028.  
  1029.         AnimationSound = Sound:BodyFallGenericNoArmor    Animation:GUFaramir_SKL.GUFaramir_DIEA        Frames:88
  1030.         AnimationSound = Sound:BodyFallGenericNoArmor    Animation:GUFaramir_SKL.GUFaramir_DIEB        Frames:85
  1031.         AnimationSound = Sound:BodyFallGenericNoArmor    Animation:GUFaramir_SKL.GUFaramir_DIEC        Frames:49
  1032.         AnimationSound = Sound:BodyFallSoldier        Animation:GUFaramir_SKL.GUFaramir_LNDA        Frames:3
  1033.         AnimationSound = Sound:BodyFallSoldier        Animation:GUFaramir_SKL.GUFaramir_LNDB        Frames:2
  1034.  
  1035.         AnimationSound = Sound:HorseMoveFootsteps        Animation:RUHHs_Theo_SKL.RUHHs_Theo_ACCL        Frames:14 32
  1036.         AnimationSound = Sound:HorseMoveFootsteps        Animation:RUHHs_Theo_SKL.RUHHs_Theo_RUNA        Frames:0
  1037.         AnimationSound = Sound:HorseMoveFootsteps        Animation:RUHHs_Theo_SKL.RUHHs_Theo_TNL1        Frames:0
  1038.         AnimationSound = Sound:HorseMoveFootsteps        Animation:RUHHs_Theo_SKL.RUHHs_Theo_TNR1        Frames:0
  1039.  
  1040.         AnimationSound = Sound:HorseWhinny50Percent    Animation:RUHHs_Theo_SKL.RUHHs_Theo_IDLC        Frames:0
  1041.  
  1042.         AnimationSound = Sound:HorseDieForHero        Animation:RUHHs_Theo_SKL.RUHHs_Theo_LNDA        Frames:0
  1043.         AnimationSound = Sound:BodyFallSoldier        Animation:RUHHs_Theo_SKL.RUHHs_Theo_LNDA        Frames:1 9
  1044.  
  1045.         AnimationSound = Sound:HorseDieForHero        Animation:RUHHs_Theo_SKL.RUHHs_Theo_DIEA        Frames:0
  1046.         AnimationSound = Sound:BodyFallGenericNoArmor    Animation:RUHHs_Theo_SKL.RUHHs_Theo_DIEA        Frames:4
  1047.         AnimationSound = Sound:BodyFallSoldier        Animation:RUHHs_Theo_SKL.RUHHs_Theo_DIEA        Frames:42
  1048.     End
  1049.  
  1050.  
  1051.     ; *** ENGINEERING Parameters ***
  1052.  
  1053.     RadarPriority = UNIT
  1054.     KindOf = HERO PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER SCORE ARMY_SUMMARY ATTACK_NEEDS_LINE_OF_SIGHT HEAVY_MELEE_HITTER
  1055.     PathfindDiameter = 40.0
  1056.     CamouflageDetectionMultiplier = CAMOUFLAGE_DETECTION_DISTANCE_SHEDIUM
  1057.  
  1058.  
  1059.     Body = RespawnBody ModuleTag_RespawnBody
  1060.         CheerRadius             = EMOTION_CHEER_RADIUS
  1061.         MaxHealth                 = FARAMIR_HEALTH    ;BALANCE Faramir Health
  1062.         PermanentlyKilledByFilter    = NONE        ;Who kills me permanently?
  1063.            DodgePercent              = HERO_DODGE_PERCENT
  1064.     End
  1065.     Behavior = RespawnUpdate ModuleTag_RespawnUpdate
  1066.         DeathAnim                = DYING                ;Model condition to play when killed-to-respawn
  1067.         DeathFX                = FX_FaramirDieToRespawn    ;FXList to play when killed-to-respawn
  1068.         DeathAnimationTime        = 5000                ;How long DeathAnim will take.
  1069.         InitialSpawnFX            = FX_FaramirInitialSpawn
  1070.         RespawnAnim                = LEVELED                ;Animation to play when respawning.
  1071.         RespawnFX                = FX_FaramirRespawn        ;FXList to play when respawning.
  1072.         RespawnAnimationTime        = 2000                ;Time it takes for respawn to play.
  1073.         AutoRespawnAtObjectFilter    = NONE +CASTLE_KEEP        ;Respawn at this location -- and at it's exit production point if possible.
  1074.         ButtonImage                = HIFaramir_res
  1075.         
  1076.         ;RespawnEntries determine the ruleset for how a character can be revived. Some units may automatically respawn, others
  1077.         ;may require a specific revive action performed on him. You can specify different values for each level... or use Level:Any
  1078.         RespawnRules =            AutoSpawn:No    Cost:600        Time:60000        Health:100%        ;DEFAULT VALUES    
  1079.     End
  1080.     
  1081.     Behavior = AutoHealBehavior ModuleTag_FaramirHealing
  1082.         StartsActive = Yes
  1083.         HealingAmount = HERO_HEAL_AMOUNT
  1084.         HealingDelay = 1000
  1085.         StartHealingDelay = HERO_HEAL_DELAY
  1086.         HealOnlyIfNotInCombat = Yes
  1087.     End
  1088.     
  1089.     Behavior = NotifyTargetsOfImminentProbableCrushingUpdate ModuleTag_NotifyCrushScan
  1090.     End
  1091.  
  1092.     Behavior = StancesBehavior ModuleTag_StancesBehavior
  1093.         StanceTemplate = Hero
  1094.     End
  1095.     
  1096.     #include "..\..\..\includes\CaptureBuilding.inc"
  1097.  
  1098.     Behavior = AIUpdateInterface ModuleTag_03
  1099.         AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS STEALTHED
  1100.         MoodAttackCheckRate        = 500
  1101.         HoldGroundCloseRangeDistance = 41
  1102.     End
  1103.  
  1104.     LocomotorSet
  1105.         Locomotor = HeroHumanLocomotor
  1106.         Condition = SET_NORMAL 
  1107.         Speed     = NORMAL_GOOD_HERO_SPEED
  1108.     End
  1109.  
  1110.     ;;; KINGS FAVOUR ;;;    
  1111.     Behavior = UnpauseSpecialPowerUpgrade ModuleTag_KingsFavorEnabler
  1112.         SpecialPowerTemplate = SpecialAbilityKingsFavor
  1113.         TriggeredBy = Upgrade_FaramirCaptainOfGondor
  1114.     End
  1115.      Behavior = SpecialPowerModule ModuleTag_KingsFavorSpecialPowerModule
  1116.         SpecialPowerTemplate        = SpecialAbilityKingsFavor 
  1117.         StartsPaused                = Yes
  1118.         UpdateModuleStartsAttack    = Yes
  1119.         InitiateSound                = FaramirKnightVoiceCaptain
  1120.     End
  1121.      Behavior = LevelGrantSpecialPower ModuleTag_KingsFavor
  1122.         SpecialPowerTemplate        = SpecialAbilityKingsFavor
  1123.         UnpackingVariation            = 2
  1124.         StartAbilityRange            = 200.0
  1125. ;        LevelFX = FX_PorterDeliver
  1126.         LevelFX                        = FX_LevelUp
  1127.  
  1128.         Experience                    = 50
  1129.         RadiusEffect                = 150
  1130.         AcceptanceFilter            = KINGSFAVOR_OBJECTFILTER
  1131.  
  1132.         UnpackTime                    = 2000
  1133.         PreparationTime                = 1   
  1134.         FreezeAfterTriggerDuration    = 2000 ; Hold AI for this long after we fire.        
  1135.     End    
  1136.  
  1137.     Behavior = AttributeModifierAuraUpdate ModuleTag_FaramirLeadership
  1138.         StartsActive    = No ;If no, requires upgrade to turn on.
  1139.         BonusName        = GenericHeroLeadership
  1140.         TriggeredBy        = Upgrade_FaramirLeadership
  1141.         RefreshDelay    = 2500
  1142.         Range            = 200
  1143.         AntiCategory    = BUFF
  1144.         ObjectFilter    = GENERIC_BUFF_RECIPIENT_OBJECT_FILTER
  1145.     End    
  1146.     
  1147.     Behavior = UnpauseSpecialPowerUpgrade ModuleTag_TheodenLeadership
  1148.         SpecialPowerTemplate = SpecialAbilityFakeLeadership
  1149.         TriggeredBy = Upgrade_FaramirLeadership
  1150.     End
  1151.     Behavior = SpecialPowerModule ModuleTag_TheodenLeadershipUpdate   
  1152.         SpecialPowerTemplate      = SpecialAbilityFakeLeadership
  1153.         UpdateModuleStartsAttack  = No
  1154.         StartsPaused = Yes
  1155.     End    
  1156.     
  1157.     Behavior = UnpauseSpecialPowerUpgrade ModuleTag_FaramirSpeechThing
  1158.         SpecialPowerTemplate        = SpecialAbilityRousingSpeech
  1159.         TriggeredBy                    = Upgrade_FaramirWarSpeech
  1160.     End
  1161.     Behavior = SpecialPowerModule ModuleTag_10   
  1162.         SpecialPowerTemplate      = SpecialAbilityRousingSpeech
  1163.         UpdateModuleStartsAttack  = Yes
  1164.         InitiateSound             = TheodenRousingSpeech
  1165.         StartsPaused                = Yes
  1166.     End    
  1167.     Behavior = RousingSpeechUpdate ModuleTag_11
  1168.         SpecialPowerTemplate    = SpecialAbilityRousingSpeech
  1169.         RequiredConditions        = MOUNTED
  1170.         StartAbilityRange        = 1.0
  1171.         UpdateInterval            = 500
  1172.         ApproachRequiresLOS        = No
  1173.         BonusRadius                = 250
  1174.         SpeechDuration          = 2500
  1175.         LeaderFX                = FX_TheodenSpeechFX
  1176.         FollowerFX                = FX_TheodenFollowerFX    
  1177.         CreateWave                = Yes
  1178.         WaveWidth                = 50
  1179.         ModifierName            = RohanCharge 
  1180.     End        
  1181.  
  1182.     Behavior = EmotionTrackerUpdate    Module_EmotionTracker
  1183.         TauntAndPointDistance        =    300        ; max distance to taunted/pointed objet
  1184.         TauntAndPointUpdateDelay    =    1000    ; how often scan (milliseconds)
  1185.  
  1186.         AddEmotion            =    Terror_Base
  1187.         AddEmotion            =    Doom_Base
  1188.         //    AddEmotion            =   BraceForBeingCrushed_Base
  1189.         AddEmotion            =    UncontrollableFear_Base
  1190.         //    AddEmotion            =    FearIdle_Base
  1191.         //    AddEmotion            =    FearBusy_Base
  1192.         AddEmotion            =    Point_Base
  1193.         AddEmotion            =    Taunt_Base
  1194.          AddEmotion            =    CheerIdle_Base
  1195.         AddEmotion            =    CheerBusy_Base
  1196.         //    AddEmotion            =    HeroCheerIdle_Base
  1197.         //    AddEmotion            =    HeroCheerBusy_Base
  1198.         AddEmotion            =    Alert_Base
  1199.         AddEmotion            =    CheerForAboutToCrush_Base
  1200.     End    
  1201.  
  1202.     LocomotorSet
  1203.         Locomotor = HeroHorseLocomotor
  1204.         Condition = SET_MOUNTED 
  1205.         Speed     = NORMAL_CAVALRY_HORDE_SPEED
  1206.     End
  1207.     
  1208. ;    Behavior = DualWeaponBehavior ModuleTag_13
  1209. ;        SwitchWeaponOnCloseRangeDistance = 81
  1210. ;        UseCloseRangeWhileMounted = yes
  1211. ;    End
  1212.  
  1213.     Behavior = PhysicsBehavior ModuleTag_04
  1214.         GravityMult = 1.0
  1215.         ShockStandingTime        = 2533    ;msec
  1216.     End
  1217.      
  1218.     Behavior = SlowDeathBehavior ModuleTag_05
  1219.         DeathTypes = ALL 
  1220.         SinkDelay = 30000
  1221.         SinkRate = 0.40     ; in Dist/Sec
  1222.         DestructionDelay = 8000
  1223.         Sound = INITIAL FaramirRangerVoiceDie
  1224.     End
  1225.     
  1226.     Behavior = SquishCollide ModuleTag_06
  1227.         ;nothing
  1228.     End
  1229.     
  1230.     Behavior = HitReactionBehavior HitReactionBehaviorModuleTag
  1231.         HitReactionLifeTimer1 = 1500 ; level 1 (light  damage)  hit reaction animations in ms
  1232.         HitReactionLifeTimer2 = 1500 ; level 2 (medium damage)  hit reaction animations in ms
  1233.         HitReactionLifeTimer3 = 1500 ; level 3 (heavy  damage)  hit reaction animations in ms
  1234.  
  1235.         HitReactionThreshold1 = 5.0   ; level 1 (light  damage) threshold trigger
  1236.         HitReactionThreshold2 = 25.0  ; level 2 (medium damage) threshold trigger
  1237.         HitReactionThreshold3 = 50.0  ; level 3 (heavy  damage) threshold trigger
  1238.         
  1239.         FastHitsResetReaction = Yes    If set -- when hits occur faster than the reaction animations, it will reset the animation. (like getting riddled with machine gun bullets)
  1240.     End
  1241.     
  1242.     
  1243.     Behavior = UnpauseSpecialPowerUpgrade ModuleTag_UnpauseHorseToggle
  1244.         SpecialPowerTemplate        = SpecialAbilityToggleMounted
  1245.         TriggeredBy                    = Upgrade_FaramirKnightRangerToggle
  1246.     End
  1247.  
  1248.      Behavior = SpecialPowerModule ModuleTag_HorseToggleStarter
  1249.          SpecialPowerTemplate      = SpecialAbilityToggleMounted
  1250.          UpdateModuleStartsAttack  = Yes
  1251.          ;InitiateSound           = 
  1252.          StartsPaused = Yes
  1253.      End
  1254.  
  1255.     Behavior = ToggleMountedSpecialAbilityUpdate ModuleTag_HorseToggle
  1256.          SpecialPowerTemplate    = SpecialAbilityToggleMounted
  1257.  
  1258.          UnpackTime              = 2000
  1259.          PreparationTime         = 1  
  1260.          PersistentPrepTime      = 250
  1261.          PackTime                = 2000
  1262.          
  1263.          OpacityTarget            = .3        ; How see-thru to be at peak of change
  1264.    
  1265.  ;    PackSound               = 
  1266.  ;    UnpackSound             = 
  1267.  ;    TriggerSound            = 
  1268.  ;    PrepSoundLoop           = 
  1269.          AwardXPForTriggering    = 0
  1270.     End
  1271.  
  1272. ;--------------------------------------------------------------------------
  1273. ; Faramir Wounding Arrow - AKA: FaramirWoundArrow
  1274. ;--------------------------------------------------------------------------
  1275.     
  1276.     Behavior = UnpauseSpecialPowerUpgrade ModuleTag_UnpauseWoundArrow
  1277.         SpecialPowerTemplate        = SpecialAbilityWoundArrow
  1278.         TriggeredBy                    = Upgrade_ObjectLevel2
  1279.     End
  1280.     Behavior = SpecialPowerModule ModuleTag_WoundArrow
  1281.         SpecialPowerTemplate        = SpecialAbilityWoundArrow
  1282.         UpdateModuleStartsAttack    = Yes
  1283.         InitiateSound                = FaramirRangerVoiceWoundingArrow
  1284.         StartsPaused                = Yes
  1285.     End
  1286.     Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_WoundArrowUpdate
  1287.         SpecialPowerTemplate        = SpecialAbilityWoundArrow
  1288.         SkipContinue                = Yes
  1289.         UnpackTime                    = 2000 
  1290.         PreparationTime                = 1   
  1291.         PersistentPrepTime            = 1000 
  1292.         PackTime                    = 1
  1293.         AwardXPForTriggering        = 0
  1294.         StartAbilityRange            = #SUBTRACT( FARAMIR_WOUNDING_ARROW_RANGE 25 )
  1295.         ApproachRequiresLOS            = Yes
  1296.         SpecialWeapon                = FaramirWoundArrow
  1297.         WhichSpecialWeapon            = 1
  1298.     End
  1299.     Behavior = AutoAbilityBehavior ModuleTag_WoundArrowAutoAbility
  1300.         SpecialAbility                = SpecialAbilityWoundArrow
  1301.         MaxScanRange                = #SUBTRACT( FARAMIR_WOUNDING_ARROW_RANGE 25 )
  1302.         Query                        = 1 ALL ENEMIES -STRUCTURE
  1303.     End
  1304.     
  1305.     ; Generic
  1306.     Behavior = AutoAbilityBehavior ModuleTag_AutoAbilityBehavior
  1307.     End
  1308.  
  1309.     ;///////////////////
  1310.     ; AISpecialPowers
  1311.     ;///////////////////
  1312.     
  1313.     Behavior = AISpecialPowerUpdate SpecialPowerFaramirGiveXPAoE
  1314.         CommandButtonName = Command_SpecialAbilityCaptainOfGondor
  1315.         SpecialPowerAIType = AI_SPECIAL_POWER_GIVEXP_AOE
  1316.         SpecialPowerRadius = 30.0
  1317.     End
  1318.     
  1319.     Behavior = AISpecialPowerUpdate SpecialWoundingArrowAoE
  1320.         CommandButtonName = Command_SpecialAbilityWoundArrow
  1321.         SpecialPowerAIType = AI_SPECIAL_POWER_ENEMY_TYPE_KILLER
  1322.     End
  1323.     
  1324.     Behavior = AISpecialPowerUpdate ToggleMountedAI
  1325.         CommandButtonName = Command_ToggleMounted
  1326.         SpecialPowerAIType = AI_SPECIAL_POWER_TOGGLE_MOUNTED
  1327.     End
  1328.     
  1329.  
  1330.     Geometry            = CYLINDER
  1331.     GeometryMajorRadius = 8.0
  1332.     GeometryHeight        = 25
  1333.     GeometryIsSmall        = Yes
  1334.     
  1335.     Shadow                = SHADOW_DECAL
  1336.     ShadowSizeX            = 20
  1337.     ShadowSizeY            = 20
  1338.     ShadowTexture        = ShadowI
  1339. End
  1340.  
  1341. ;------------------------------------------------------------------------------
  1342. ChildObject GondorFaramirCavalry GondorFaramir
  1343.  
  1344.     Draw = W3DScriptedModelDraw ModuleTag_W3DModelDrawInWorldBuilder
  1345.         ;When in Worldbuilder, show the mounted version of Theoden!
  1346.         
  1347.               OkToChangeModelColor = Yes
  1348.         
  1349.         DefaultModelConditionState
  1350.             Model    = None
  1351.         End
  1352.         ModelConditionState = WORLD_BUILDER
  1353.             Model = GUFrmrHrs_SKN
  1354.         End        
  1355.     End
  1356.  
  1357.     Behavior = ToggleMountedSpecialAbilityUpdate ModuleTag_HorseToggle
  1358.          SpecialPowerTemplate    = SpecialAbilityToggleMounted
  1359.          
  1360.          TriggerInstantlyOnCreate = Yes  ;Instantly puts Theoden on a horse.
  1361.  
  1362.          UnpackTime              = 2000
  1363.          PreparationTime         = 1  
  1364.          PersistentPrepTime      = 250
  1365.          PackTime                = 2000
  1366.          
  1367.          OpacityTarget            = .3        ; How see-thru to be at peak of change
  1368.    
  1369.  ;    PackSound               = 
  1370.  ;    UnpackSound             = 
  1371.  ;    TriggerSound            = 
  1372.  ;    PrepSoundLoop           = 
  1373.          AwardXPForTriggering    = 0
  1374.     End
  1375. End
  1376.