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

  1. ;------------------------------------------------------------------------------
  2. ; Lurtz
  3. Object IsengardLurtz
  4.     ; *** ART Parameters ***
  5.  
  6.     ; ButtonImage for Heros is button image on Hero Select UI to select hero. HI = HeroIcon or HeroImage.
  7.     ; This is required for garrisoned objects - please put in all objects.
  8.     ButtonImage = HILurtz
  9.  
  10.     ; SelectPortrait for Heros is portrait behind skill buttons. HP = HeroPortrait.
  11.     SelectPortrait = HPLurtz
  12.     
  13.     DescriptionStrategic = CONTROLBAR:LW_ToolTip_Lurtz
  14.    
  15.     Draw = W3DScriptedModelDraw ModuleTag_DRAW
  16.  
  17.     StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD
  18.         
  19.         OkToChangeModelColor = Yes
  20.         
  21.         ExtraPublicBone = arrrow
  22.         
  23.         DefaultModelConditionState
  24.             Model               = IULurtz_SKN
  25.             WeaponLaunchBone    = PRIMARY arrrow
  26.         End
  27.         
  28.         ; --- Idle Anims
  29.         IdleAnimationState
  30.             Animation           = IDLI
  31.                 AnimationName     = IULurtz_SKL.IULurtz_IDLI
  32.                 AnimationMode     = ONCE
  33.                 AnimationPriority = 2
  34.             End
  35.             ;this is his bow out idle
  36.             Animation           = IDLH
  37.                 AnimationName     = IULurtz_SKL.IULurtz_IDLH
  38.                 AnimationMode     = ONCE
  39.                 AnimationPriority = 20
  40.             End
  41.             Animation           = IDLJ
  42.                 AnimationName     = IULurtz_SKL.IULurtz_IDLJ
  43.                 AnimationMode     = ONCE
  44.                 AnimationPriority = 2
  45.             End
  46.             Animation           = IDLK
  47.                 AnimationName     = IULurtz_SKL.IULurtz_IDLK
  48.                 AnimationMode     = ONCE
  49.                 AnimationPriority = 2
  50.             End
  51.             Animation           = IDLP
  52.                 AnimationName     = IULurtz_SKL.IULurtz_IDLP
  53.                 AnimationMode     = ONCE
  54.                 AnimationPriority = 1
  55.             End
  56.             BeginScript
  57.                 Prev = CurDrawablePrevAnimationState()
  58.                 if Prev == "Sword" then CurDrawableSetTransitionAnimState("Trans_Sword_To_Bow") end
  59.                 if Prev == "BowReady" then CurDrawableSetTransitionAnimState("Trans_To_Bored_Bow") end
  60.                 if Prev == "RunningSword" then CurDrawableSetTransitionAnimState("Trans_Sword_To_Bow") end
  61.                 if Prev == "SwordReady" then CurDrawableSetTransitionAnimState("Trans_Sword_To_Bow") end
  62.             EndScript
  63.  
  64.             StateName = BowIdle
  65.         End
  66.  
  67.         TransitionState       = Trans_Bow_To_Sword
  68.  
  69.             Animation           = BtoS2
  70.                 AnimationName     = IULurtz_SKL.IULurtz_IDLM
  71.                 AnimationMode     = ONCE
  72.             End
  73.         End
  74.         TransitionState       = Trans_Sword_To_Bow
  75.  
  76.             Animation           = BtoS2
  77.                 AnimationName     = IULurtz_SKL.IULurtz_IDLL
  78.                 AnimationMode     = ONCE
  79.             End
  80.         End
  81.         
  82.         TransitionState       = Trans_Sword_To_Bow_Running
  83.         
  84.             Animation           = BtoS3
  85.                 AnimationName     = IULurtz_SKL.IULurtz_RUNC
  86.                 AnimationMode     = ONCE
  87.             End        
  88.         End
  89.         
  90.         TransitionState       = Trans_Bow_To_Sword_Running
  91.         
  92.             Animation           = BtoS3
  93.                 AnimationName     = IULurtz_SKL.IULurtz_RUND
  94.                 AnimationMode     = ONCE
  95.             End    
  96.         End
  97.         
  98.         
  99.         TransitionState       = Trans_Bow_To_Sword_Straight
  100.             Animation           = BtoS1
  101.                 AnimationName     = IULurtz_SKL.IULurtz_IDLO
  102.                 AnimationMode     = ONCE
  103.             End
  104.  
  105.         End
  106.         TransitionState       = Trans_Sword_To_Bow_Straight
  107.             Animation           = BtoS1
  108.                 AnimationName     = IULurtz_SKL.IULurtz_IDLN
  109.                 AnimationMode     = ONCE
  110.             End
  111.         End
  112.         
  113.         TransitionState       = Trans_To_Attention_Bow
  114.             Animation           = ATNF
  115.                 AnimationName     = IULurtz_SKL.IULurtz_ATNF
  116.                 AnimationMode     = ONCE
  117.             End
  118.         End
  119.     
  120.         TransitionState       = Trans_To_Attention_Sword
  121.             Animation           = ATNA
  122.                 AnimationName     = IULurtz_SKL.IULurtz_ATNA
  123.                 AnimationMode     = ONCE
  124.             End
  125.         End
  126.         
  127.         TransitionState        = Trans_To_Bored_Sword
  128.             Animation            = TBoredSword
  129.                 AnimationName    = IULurtz_SKL.IULurtz_ATNC
  130.                 AnimationMode    = ONCE
  131.             End
  132.         End
  133.         
  134.         TransitionState        = Trans_To_Bored_Bow
  135.             Animation            = TBoredBow
  136.                 AnimationName    = IULurtz_SKL.IULurtz_ATNH
  137.                 AnimationMode    = ONCE
  138.             End
  139.         End
  140.         
  141.         AnimationState        = STUNNED_FLAILING WEAPONSET_TOGGLE_1
  142.             Flags               = RANDOMSTART
  143.             Animation           = FLYB
  144.                 AnimationName     = IULurtz_SKL.IULurtz_FLYB    ; sword
  145.                 AnimationMode     = LOOP
  146.             End
  147.         End
  148.  
  149.         AnimationState        = STUNNED_FLAILING 
  150.             Flags               = RANDOMSTART
  151.             Animation           = FLYA
  152.                 AnimationName     = IULurtz_SKL.IULurtz_FLYA    ; bow
  153.                 AnimationMode     = LOOP
  154.             End
  155.         End
  156.  
  157.         ; --- Dying anims
  158.         AnimationState        = DYING SPLATTED WEAPONSET_TOGGLE_1
  159.             Animation           = LNDA
  160.                 AnimationName     = IULurtz_SKL.IULurtz_LNDB    ; sword
  161.                 AnimationMode     = ONCE
  162.             End
  163.         End
  164.  
  165.         AnimationState        = DYING SPLATTED
  166.             Animation           = LNDA
  167.                 AnimationName     = IULurtz_SKL.IULurtz_LNDA    ; bow
  168.                 AnimationMode     = ONCE
  169.             End
  170.         End
  171.         
  172.         AnimationState        = DYING WEAPONSET_TOGGLE_1
  173.             Animation           = DIEA
  174.                 AnimationName     = IULurtz_SKL.IULurtz_DIEA    ; sword
  175.                 AnimationMode     = ONCE
  176.             End
  177.         End
  178.  
  179.         AnimationState        = DYING
  180.             Animation           = DIEB
  181.                 AnimationName     = IULurtz_SKL.IULurtz_DIEB    ; bow
  182.                 AnimationMode     = ONCE
  183.             End
  184.         End
  185.  
  186.         ; --- Stunned anims
  187.         
  188.         
  189.         AnimationState        = STUNNED_STANDING_UP WEAPONSET_TOGGLE_1
  190.             Animation           = GTPB
  191.                 AnimationName     = IULurtz_SKL.IULurtz_GTPB    ; sword
  192.                 AnimationMode     = ONCE
  193.                 AnimationSpeedFactorRange = 1.5 1.5
  194.             End
  195.         End
  196.         
  197.         AnimationState        = STUNNED_STANDING_UP
  198.             Animation           = GTPA
  199.                 AnimationName     = IULurtz_SKL.IULurtz_GTPA    ; bow
  200.                 AnimationMode     = ONCE
  201.                 AnimationSpeedFactorRange = 1.5 1.5
  202.             End
  203.         End
  204.  
  205.         AnimationState        = STUNNED WEAPONSET_TOGGLE_1        ; sword
  206.             Animation           = LNDB
  207.                 AnimationName     = IULurtz_SKL.IULurtz_LNDB
  208.                 AnimationMode     = ONCE
  209.             End
  210.         End        
  211.  
  212.         
  213.  
  214.         AnimationState        = STUNNED 
  215.             Animation           = LNDA
  216.                 AnimationName     = IULurtz_SKL.IULurtz_LNDA    ; bow
  217.                 AnimationMode     = ONCE
  218.             End
  219.         End
  220.                     
  221.  
  222.         AnimationState                        = PARALYZED
  223.             Animation
  224.                 AnimationName                = IULurtz_SKL.IULurtz_IDLI
  225.                 AnimationMode                = LOOP
  226.             End
  227.         End
  228.  
  229.  
  230.         ; --- Moving Anims
  231.         
  232.         AnimationState        = MOVING WEAPONSET_TOGGLE_1 FIRING_OR_PREATTACK_A
  233.             Animation           = TrotAndFire
  234.                 AnimationName       = IULurtz_SKL.IULurtz_ATRA
  235.                 AnimationMode       = LOOP
  236.             End
  237.             Flags               = RANDOMSTART
  238.             StateName = RunAndSwing
  239.         End
  240.  
  241.         
  242.         AnimationState                = MOVING BACKING_UP WEAPONSET_TOGGLE_1
  243.             Animation                = BackingUp
  244.                 AnimationName        = IULurtz_SKL.IULurtz_BAKA
  245.                 AnimationMode        = LOOP
  246.             End
  247.             Flags = RANDOMSTART
  248.             StateName = SwordReady
  249.         End
  250.         
  251.         AnimationState                = MOVING BACKING_UP
  252.             Animation                = BackingUp
  253.                 AnimationName        = IULurtz_SKL.IULurtz_BAKA
  254.                 AnimationMode        = LOOP
  255.             End
  256.             Flags = RANDOMSTART
  257.             StateName = BowReady
  258.         End
  259.         
  260.         AnimationState        = MOVING WEAPONSET_TOGGLE_1
  261.             Animation                = RunWithSword
  262.                 AnimationName        = IULurtz_SKL.IULurtz_RUNA
  263.                 AnimationMode        = LOOP
  264.                 AnimationSpeedFactorRange = 1.1 1.1
  265.             End
  266.             Flags               = RANDOMSTART
  267.             BeginScript
  268.                 Prev = CurDrawablePrevAnimationState()
  269.                 if Prev == "RunningBow" then CurDrawableSetTransitionAnimState("Trans_Bow_To_Sword_Running") end
  270.             EndScript
  271.             StateName = RunningSword
  272.         End
  273.         
  274.         AnimationState        = MOVING
  275.             Animation                = RunWithBow
  276.                 AnimationName        = IULurtz_SKL.IULurtz_RUNB
  277.                 AnimationMode        = LOOP
  278.                 AnimationSpeedFactorRange = 1.1 1.1
  279.             End
  280.             Flags               = RANDOMSTART
  281.             BeginScript
  282.                 Prev = CurDrawablePrevAnimationState()
  283.                 if Prev == "RunningSword" then CurDrawableSetTransitionAnimState("Trans_Sword_To_Bow_Running") end
  284.             EndScript
  285.             StateName = RunningBow
  286.         End
  287.         
  288.             ; --- Crippling Special Weapon anim
  289.         AnimationState        = SPECIAL_WEAPON_ONE
  290.             Animation             = ATKE
  291.                 AnimationName     = IULurtz_SKL.IULurtz_CRPL 
  292.                 AnimationMode     = ONCE
  293.             End
  294.             FrameForPristineBonePositions = 35
  295.             StateName = BowReady
  296.         End
  297.                 
  298.         ; --- Attacking Anims [Weapon_A] Carnage
  299.         AnimationState        = FIRING_OR_PREATTACK_A HERO ; Carnage Mode
  300.             Animation             = ATKE
  301.                 AnimationName     = IULurtz_SKL.IULurtz_ATKC 
  302.                 AnimationMode     = ONCE
  303.                 UseWeaponTiming        = Yes
  304.             End
  305.             StateName = SwordReady
  306.          End
  307.                 
  308.         ; Sword - Attacking Anims [Weapon_A]
  309.         AnimationState        = FIRING_OR_PREATTACK_A WEAPONSET_TOGGLE_1
  310.             StateName           = WithSword
  311.             Animation            = ATKH_CLOSE_Range3
  312.                 AnimationName    = IULurtz_SKL.IULurtz_ATKH
  313.                 AnimationMode    = ONCE
  314.                 UseWeaponTiming    = Yes
  315.                 AnimationPriority    =    5
  316.             End
  317.             Animation            = ATKK_CLOSE_Range4
  318.                 AnimationName    = IULurtz_SKL.IULurtz_ATKK
  319.                 AnimationMode    = ONCE
  320.                 UseWeaponTiming    = Yes
  321.                 AnimationPriority    =    1
  322.             End            
  323.             StateName = SwordReady
  324.         End
  325.         
  326.         
  327.         ; Bow Melee - Attacking Anims [Weapon_A]
  328.         AnimationState        = FIRING_OR_PREATTACK_B
  329.             Animation           = ATKI
  330.                 AnimationName     = IULurtz_SKL.IULurtz_ATKI
  331.                 AnimationMode     = ONCE
  332.                 UseWeaponTiming        = Yes
  333.             End
  334.             Animation           = ATKJ
  335.                 AnimationName     = IULurtz_SKL.IULurtz_ATKJ
  336.                 AnimationMode     = ONCE
  337.                 UseWeaponTiming        = Yes
  338.             End
  339.             FrameForPristineBonePositions = 41
  340.             StateName = BowReady
  341.         End
  342.  
  343. ;---------------------------------------------------
  344.         ;New style firing
  345.         AnimationState                        = PREATTACK_A 
  346.             StateName                        = STATE_Firing
  347.             Animation                        = ReadyToDrawn
  348.                 AnimationName                = IULurtz_SKL.IULurtz_ATKA1
  349.                 AnimationMode                = ONCE
  350. ;                UseWeaponTiming                = Yes            ; UseWeaponTiming plus random weapon field equals desync.  Leaving as warning
  351.                 AnimationBlendTime            = 0                ; Must be 0 blend time otherwise the arrow will linger for the duration of the blend!
  352. ;                AnimationSpeedFactorRange    = 1.5 1.5        ; 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
  353.             End
  354.             StateName = BowReady
  355.         End
  356.  
  357.         AnimationState                        = FIRING_OR_RELOADING_A
  358.             StateName                        = STATE_Firing
  359.             Animation                        = OneFrameOfShooting
  360.                 AnimationName                = IULurtz_SKL.IULurtz_ATKA2
  361.                 AnimationMode                = ONCE
  362. ;                UseWeaponTiming                = Yes            ; UseWeaponTiming plus random weapon field equals desync.  Leaving as warning
  363. ;                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
  364.                 AnimationBlendTime            = 10
  365.             End
  366.             StateName = BowReady
  367.         End
  368.  
  369.         ;--- Holding drawn bow while attacking        
  370.         AnimationState                        = CONTINUOUS_FIRE_MEAN
  371.             StateName                        = STATE_Firing
  372.             Animation                        = HangFrameWhileCoasting
  373.                 AnimationName                = IULurtz_SKL.IULurtz_ATKA2
  374.                 AnimationMode                = MANUAL
  375.             End
  376.             StateName = BowReady
  377.         End
  378.         
  379.         AnimationState                        = CONTINUOUS_FIRE_SLOW
  380.             StateName                        = STATE_Idle_Bow
  381.             Animation                        = PutAwayArrow
  382.                 AnimationName                = IULurtz_SKL.IULurtz_ATKA3
  383.                 AnimationMode                = ONCE
  384.             End
  385.             StateName = BowReady
  386.         End
  387.             
  388.         ;End New style firing
  389.         
  390.         ; --- Engaged Anims
  391.         
  392.         AnimationState        = ENGAGED WEAPONSET_TOGGLE_1
  393.             Animation           = IDLG
  394.                 AnimationName     = IULurtz_SKL.IULurtz_IDLA    ; sword idle
  395.                 AnimationMode     = LOOP
  396.                 AnimationBlendTime = 15
  397.             End
  398.             StateName = SwordReady
  399.         End
  400.         
  401.         AnimationState        = ENGAGED
  402.             Animation           = IDLG
  403.                 AnimationName     = IULurtz_SKL.IULurtz_IDLG    ; bow idle
  404.                 AnimationMode     = LOOP
  405.                 AnimationBlendTime = 15
  406.             End
  407.             StateName = BowReady
  408.         End
  409.                         
  410.         ; --------- Click and Hit Reactions ------------
  411.         AnimationState = HIT_REACTION HIT_LEVEL_1 WEAPONSET_TOGGLE_1
  412.             Animation = Hit_Level_1_a
  413.                 AnimationName = IULurtz_SKL.IULurtz_HITA
  414.                 AnimationMode = ONCE
  415.             End
  416.             Animation = Hit_Level_1_b
  417.                 AnimationName = IULurtz_SKL.IULurtz_HITB
  418.                 AnimationMode = ONCE
  419.             End
  420.             StateName = SwordReady
  421.         End
  422.         
  423.         AnimationState = HIT_REACTION HIT_LEVEL_1
  424.             Animation = Hit_Level_1_c
  425.                 AnimationName = IULurtz_SKL.IULurtz_HITC
  426.                 AnimationMode = ONCE
  427.             End
  428.             StateName = BowReady
  429.         End        
  430.         
  431.         AnimationState = WAR_CHANT WEAPONSET_TOGGLE_1
  432.             Animation = Chant
  433.                 AnimationName = IULurtz_SKL.IULurtz_TNTB
  434.                 AnimationMode = LOOP
  435.             End
  436.             StateName = SwordReady
  437.         End
  438.         
  439.         AnimationState = WAR_CHANT
  440.             Animation = Chant
  441.                 AnimationName = IULurtz_SKL.IULurtz_CHRB
  442.                 AnimationMode = LOOP
  443.             End
  444.             StateName = BowReady
  445.         End
  446.  
  447.         AnimationState            =    EMOTION_CELEBRATING WEAPONSET_TOGGLE_1
  448.             Animation           =    CHRB
  449.                 AnimationName   =    IULurtz_SKL.IULurtz_CHRB ;do we have another?
  450.                 AnimationMode   =    LOOP
  451.                 AnimationSpeedFactorRange = 0.8 1.2
  452.             End                        
  453.             StateName = SwordReady
  454.             Flags                = RESTART_ANIM_WHEN_COMPLETE    
  455.         End
  456.  
  457.         
  458.         AnimationState            =    EMOTION_CELEBRATING WEAPONSET_TOGGLE_1
  459.             Animation
  460.                 AnimationName   =    IULurtz_SKL.IULurtz_TNTB
  461.                 AnimationMode   =    LOOP
  462.             End                        
  463.             StateName = SwordReady
  464.         End
  465.  
  466.         AnimationState            =    EMOTION_CELEBRATING
  467.             Animation
  468.                 AnimationName   =    IULurtz_SKL.IULurtz_CHRB
  469.                 AnimationMode   =    LOOP
  470.                 AnimationSpeedFactorRange = 0.8 1.2
  471.             End                        
  472.             StateName = BowReady
  473.         End
  474.  
  475.         AnimationState            =    EMOTION_TAUNTING WEAPONSET_TOGGLE_1
  476.             Animation
  477.                 AnimationName   =    IULurtz_SKL.IULurtz_TNTB
  478.                 AnimationMode   =    LOOP
  479.             End                        
  480.             StateName = SwordReady
  481.         End
  482.  
  483.         AnimationState            =    EMOTION_TAUNTING
  484.             Animation
  485.                 AnimationName   =    IULurtz_SKL.IULurtz_CHRB
  486.                 AnimationMode   =    LOOP
  487.                 AnimationSpeedFactorRange = 0.8 1.2
  488.             End                        
  489.             StateName = BowReady
  490.         End
  491.  
  492.         ; --- Idle
  493.         AnimationState        = WEAPONSET_TOGGLE_1 SELECTED
  494.             Animation           = ATNB
  495.                 AnimationName     = IULurtz_SKL.IULurtz_ATNB
  496.                 AnimationMode     = LOOP
  497.             End
  498.             
  499.             BeginScript
  500.                 Prev = CurDrawablePrevAnimationState()
  501.                 if Prev == "SwordIdle" then CurDrawableSetTransitionAnimState("Trans_To_Attention_Sword") end
  502.                 if Prev == "RunningBow" then CurDrawableSetTransitionAnimState("Trans_Bow_To_Sword_Straight") end
  503.                 if Prev == "BowReady" then CurDrawableSetTransitionAnimState("Trans_Bow_To_Sword_Straight") end
  504.             EndScript
  505.             StateName = SwordReady
  506.         End
  507.         
  508.         AnimationState = RAISING_FLAG
  509.             Animation = Chant
  510.                 AnimationName = IULurtz_SKL.IULurtz_CHRB
  511.                 AnimationMode = LOOP
  512.             End
  513.         End
  514.     
  515.         ; --- Idle
  516.         AnimationState        = SELECTED
  517.             Animation           = ATNB
  518.                 AnimationName     = IULurtz_SKL.IULurtz_ATNG
  519.                 AnimationMode     = LOOP
  520.             End
  521.             
  522.             BeginScript
  523.                 Prev = CurDrawablePrevAnimationState()
  524.                 if Prev == "BowIdle" then CurDrawableSetTransitionAnimState("Trans_To_Attention_Bow") end
  525.                 if Prev == "RunningSword" then CurDrawableSetTransitionAnimState("Trans_Sword_To_Bow_Straight") end
  526.                 if Prev == "SwordReady" then CurDrawableSetTransitionAnimState("Trans_Sword_To_Bow_Straight") end
  527.             EndScript
  528.             StateName = BowReady
  529.         End
  530.         
  531.         ; --- Idle
  532.         AnimationState        = WEAPONSET_TOGGLE_1
  533.             Animation           = IDLF
  534.                 AnimationName     = IULurtz_SKL.IULurtz_IDLF
  535.                 AnimationMode     = ONCE
  536.             End
  537.             Animation           = IDLB
  538.                 AnimationName     = IULurtz_SKL.IULurtz_IDLB
  539.                 AnimationMode     = ONCE
  540.             End
  541.             Animation           = IDLC
  542.                 AnimationName     = IULurtz_SKL.IULurtz_IDLC
  543.                 AnimationMode     = ONCE
  544.             End
  545.             BeginScript
  546.                 Prev = CurDrawablePrevAnimationState()
  547.                 if Prev == "BowReady" then CurDrawableSetTransitionAnimState("Trans_Bow_To_Sword_Straight") end
  548.                 if Prev == "RunningBow" then CurDrawableSetTransitionAnimState("Trans_Bow_To_Sword_Straight") end
  549.                 if Prev == "SwordReady" then CurDrawableSetTransitionAnimState("Trans_To_Bored_Sword") end
  550.             EndScript
  551.             Flags               = RESTART_ANIM_WHEN_COMPLETE
  552.             StateName = SwordIdle
  553.         End            
  554.     End
  555.  
  556.     #include "..\..\..\includes\StunDrawModuleSmall.inc"
  557.  
  558.     ; ***DESIGN parameters ***
  559.     Side = Isengard
  560.     EditorSorting = UNIT
  561.     ThreatLevel = LURTZ_THREAT_LEVEL
  562.     ThingClass = CHARACTER_UNIT
  563.     BuildCost         = LURTZ_BUILDCOST
  564.     BuildTime         = LURTZ_BUILDTIME
  565.     ShockwaveResistance = SHOCKWAVE_RESISTANCE_STRONG
  566.     ;//DisplayMeleeDamage = LURTZ_DAMAGE
  567.     ;//DisplayRangedDamage = LURTZ_BOW_DAMAGE
  568.  
  569.     MaxSimultaneousOfType = 1
  570.   
  571.     TransportSlotCount = TRANSPORTSLOTCOUNT_HERO
  572.     WeaponSet
  573.         Conditions = None
  574.         Weapon = PRIMARY    IsenguardLurtzBow
  575.     End
  576.     WeaponSet
  577.         Conditions = WEAPONSET_TOGGLE_1 CLOSE_RANGE
  578.         Weapon = PRIMARY    LurtzWeapon
  579.     End
  580.     WeaponSet
  581.         Conditions = CLOSE_RANGE
  582.         Weapon = PRIMARY    IsenguardLurtzBow
  583.         Weapon = SECONDARY  IsenguardLurtzBowMelee
  584.         OnlyAgainst = PRIMARY STRUCTURE
  585.     End
  586.     WeaponSet
  587.         Conditions = WEAPONSET_TOGGLE_1
  588.         Weapon = PRIMARY    LurtzWeapon
  589.     End
  590.     
  591.     ;;; SPECIAL CARNAGE MODE, MAKE SURE IT"S THE CARNAGE WEAPON NO MATTER WHAT ;;;
  592.     WeaponSet
  593.         Conditions = WEAPONSET_HERO_MODE
  594.         Weapon = PRIMARY    LurtzCarnageWeapon
  595.     End
  596.     WeaponSet
  597.         Conditions = WEAPONSET_HERO_MODE CLOSE_RANGE
  598.         Weapon = PRIMARY    LurtzCarnageWeapon
  599.     End
  600.     WeaponSet
  601.         Conditions = WEAPONSET_HERO_MODE WEAPONSET_TOGGLE_1
  602.         Weapon = PRIMARY    LurtzCarnageWeapon
  603.     End
  604.     WeaponSet
  605.         Conditions = WEAPONSET_HERO_MODE WEAPONSET_TOGGLE_1 CLOSE_RANGE
  606.         Weapon = PRIMARY    LurtzCarnageWeapon
  607.     End
  608.     
  609.     ;HERO
  610.     
  611.     ArmorSet
  612.         Conditions      = None
  613.         Armor           = HeroArmor
  614.         DamageFX        = NormalDamageFX
  615.     End
  616.  
  617.     VisionRange = VISION_HERO_RANGED
  618.     ShroudClearingRange = SHROUD_CLEAR_RANGED_HERO
  619.     
  620.     MaxVisionBonusPercent = 300%
  621.     VisionBonusTestRadius = 200
  622.     VisionBonusPercentPerFoot = 1.0%
  623.  
  624.     DisplayName = OBJECT:IsengardLurtz
  625.     RecruitText        = CONTROLBAR:IsengardLurtzRecruit
  626.     ReviveText        = CONTROLBAR:IsengardLurtzRevive
  627.     Hotkey            = CONTROLBAR:IsengardLurtzHotkey
  628.     CrushableLevel = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
  629.     CrusherLevel = 0 ;What can I crush?: 0 = small animals, 1 = infantry, 2 = trees, 3 = vehicles
  630.  
  631.     CommandSet = LurtzCommandSet
  632.     CommandPoints = 50
  633.  
  634.  
  635.     ; *** AUTO RESOLVE DATA *** 
  636.     AutoResolveUnitType = AutoResolveUnit_Hero
  637.     AutoResolveCombatChain = AutoResolve_HeroCombatChain
  638.  
  639.     AutoResolveBody = AutoResolve_LurtzBody
  640.     
  641.     AutoResolveArmor
  642.         Armor = AutoResolve_LurtzArmor
  643.     End
  644.  
  645.     AutoResolveWeapon
  646.         Weapon = AutoResolve_LurtzWeapon
  647.     End
  648.     
  649.     AutoResolveLeadership = AutoResolve_LurtzBonus
  650.  
  651.  
  652.     ; *** AUDIO Parameters ***;
  653.  
  654.     VoiceAttack                    = LurtzVoiceAttackMS
  655.     VoiceAttackAir                = LurtzVoiceAttackMS
  656.     VoiceAttackCharge            = LurtzVoiceAttackCharge
  657.     VoiceAttackMachine            = LurtzVoiceAttack
  658.     VoiceAttackStructure        = LurtzVoiceAttackBuilding
  659.     VoiceFear                     = LurtzVoiceHelpMe
  660.     ;VoiceCreated                = CampOrcCreateLurtz    ;LurtzVoiceSalute        ;this conflicts with his respawn dialogue line -- rehooked to spawn FX
  661.     ;VoiceFullyCreated             = CampOrcCreateLurtz    ;LurtzVoiceSalute        ;this conflicts with his respawn dialogue line -- rehooked to spawn FX
  662.     VoiceGuard                    = LurtzVoiceMoveMS
  663.     VoiceMove                    = LurtzVoiceMoveMS
  664.     VoiceMoveToCamp                = LurtzVoiceMoveCamp
  665.     VoiceMoveWhileAttacking        = LurtzVoiceMoveMS
  666.     VoicePriority                = 66
  667.     VoiceSelect                    = LurtzVoiceSelectMS
  668.     VoiceSelectBattle             = LurtzVoiceSelectBattle
  669.     
  670.     VoiceEnterStateAttackCharge    = LurtzVoiceEnterStateAttackCharge
  671.     
  672.     SoundImpact                    = ImpactHorse
  673.  
  674.     UnitSpecificSounds
  675.         VoiceEnterUnitEvilMenTransportShip    = LurtzVoiceMoveMS
  676.         VoiceEnterUnitMordorMumakil            = LurtzVoiceMoveMS
  677.         VoiceEnterUnitSlaughterHouse        = LurtzVoiceMoveMS
  678.         VoiceGarrison                        = LurtzVoiceMoveMS
  679.         VoiceInitiateCaptureBuilding        = LurtzVoiceMoveMS
  680.     End
  681.  
  682.     CrowdResponseKey = Uruk
  683.  
  684.     #include "..\..\..\includes\StandardUnitEvaEvents.inc"
  685.     EvaEventDieOwner            = LurtzDie                ;Eva event to trigger on unit's death. NOTICE THAT this is only for permanent deaths
  686.  
  687.     Behavior = LargeGroupAudioUpdate ModuleTag_LGAU    ;Tie into LargeGroupAudio system
  688.         Key = Hero
  689.     End
  690.  
  691.     ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
  692.         MaxUpdateRangeCap = 800
  693.         AnimationSound = Sound: ArrowDrawBow        Animation: IULurtz_SKL.IULurtz_CRPL        Frames: 0
  694.         AnimationSound = Sound: ArrowDrawBow        Animation: IULurtz_SKL.IULurtz_ATKA1    Frames: 4
  695.         AnimationSound = Sound: ArrowDrawBow        Animation: IULurtz_SKL.IULurtz_ATKA2    Frames: 17
  696.         AnimationSound = Sound: ImpactSword02        Animation: IULurtz_SKL.IULurtz_ATKC        Frames: 21 37
  697.         AnimationSound = Sound: ImpactSword02        Animation: IULurtz_SKL.IULurtz_ATKI        Frames: 28 49
  698.         AnimationSound = Sound: ImpactSword02        Animation: IULurtz_SKL.IULurtz_ATKJ        Frames: 19 39
  699.         AnimationSound = Sound: FootstepDirtA        Animation: IULurtz_SKL.IULurtz_RUNA        Frames: 10 20
  700.         AnimationSound = Sound: FootstepDirtA        Animation: IULurtz_SKL.IULurtz_RUNB        Frames: 8 18
  701.         AnimationSound = Sound: FootstepDirtA        Animation: IULurtz_SKL.IULurtz_RUNC        Frames: 10 20 31 41
  702.         AnimationSound = Sound: FootstepDirtA        Animation: IULurtz_SKL.IULurtz_RUND        Frames: 8 18 27 37
  703.         AnimationSound = Sound: BodyFallOrc            Animation: IULurtz_SKL.IULurtz_DIEA        Frames: 43
  704.         AnimationSound = Sound: BodyFallOrc            Animation: IULurtz_SKL.IULurtz_LNDA        Frames: 3
  705.         AnimationSound = Sound: BodyFallOrc            Animation: IULurtz_SKL.IULurtz_LNDB        Frames: 3
  706.         AnimationSound = Sound: BodyFallGeneric2        Animation: IULurtz_SKL.IULurtz_DIEB        Frames: 82
  707.  
  708.         AnimationSound = Sound: WeaponSwitchBow        Animation: IULurtz_SKL.IULurtz_IDLL        Frames: 59
  709.         AnimationSound = Sound: SwordShingDirty1        Animation: IULurtz_SKL.IULurtz_IDLM        Frames: 56
  710.  
  711.         AnimationSound = Sound: WeaponSwitchBow        Animation: IULurtz_SKL.IULurtz_IDLN        Frames: 10
  712.         AnimationSound = Sound: SwordShingDirty1        Animation: IULurtz_SKL.IULurtz_IDLO        Frames: 3
  713.  
  714.         ;AnimationSound = Sound: ??????            Animation: IULurtz_SKL.IULurtz_TNTB        Frames: 28
  715.     End
  716.  
  717.  
  718.     ; *** ENGINEERING Parameters ***
  719.  
  720.     RadarPriority = UNIT
  721.     KindOf = HERO PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER SCORE ARMY_SUMMARY ARCHER ATTACK_NEEDS_LINE_OF_SIGHT URUK HEAVY_MELEE_HITTER
  722.     PathfindDiameter = 40.0
  723.  
  724.       Body = RespawnBody ModuleTag_RespawnBody
  725.         CheerRadius             = EMOTION_CHEER_RADIUS
  726.            MaxHealth                 = LURTZ_HEALTH    ;BALANCE Lurtz Health
  727.           PermanentlyKilledByFilter    = NONE        ;Who kills me permanently?
  728.            DodgePercent             = HERO_DODGE_PERCENT
  729.       End
  730.  
  731.     Behavior = RespawnUpdate ModuleTag_RespawnUpdate
  732.         DeathAnim                = DYING ;STUNNED            ;Model condition to play when killed-to-respawn
  733.         DeathFX                = FX_LurtzDieToRespawn        ;FXList to play when killed-to-respawn
  734.         DeathAnimationTime        = 6033 ; 1133            ;How long DeathAnim will take.
  735.         InitialSpawnFX            = FX_LurtzInitialSpawn
  736.         RespawnAnim                = LEVELED                ;Animation to play when respawning.
  737.         RespawnFX                = FX_LurtzRespawn            ;FXList to play when respawning.
  738.         RespawnAnimationTime        = 2000                ;Time it takes for respawn to play.
  739.         AutoRespawnAtObjectFilter    = NONE +CASTLE_KEEP        ;Respawn at this location -- and at it's exit production point if possible.
  740.         ButtonImage                = HILurtz_res
  741.     
  742.     ;RespawnEntries determine the ruleset for how a character can be revived. Some units may automatically respawn, others
  743.     ;may require a specific revive action performed on him. You can specify different values for each level... or use Level:Any
  744.         RespawnRules =    AutoSpawn:No    Cost:900        Time:60000        Health:100%        ;DEFAULT VALUES
  745.     End
  746.  
  747.     Behavior = AutoHealBehavior ModuleTag_LurtzHealing
  748.         StartsActive            = Yes
  749.         HealingAmount            = HERO_HEAL_AMOUNT
  750.         HealingDelay            = 1000
  751.         StartHealingDelay        = HERO_HEAL_DELAY
  752.         HealOnlyIfNotInCombat    = Yes
  753.     End
  754.     
  755.     Behavior = StancesBehavior ModuleTag_StancesBehavior
  756.         StanceTemplate = Hero
  757.     End
  758.     
  759.     #include "..\..\..\includes\CaptureBuilding.inc"
  760.  
  761.     Behavior = AIUpdateInterface ModuleTag_03
  762.         AutoAcquireEnemiesWhenIdle    = Yes ATTACK_BUILDINGS
  763.         MoodAttackCheckRate            = 500
  764.         AttackPriority                = AttackPriority_Archer
  765.     End
  766.  
  767.     Behavior = EmotionTrackerUpdate    Module_EmotionTracker
  768.         TauntAndPointDistance                = 300
  769.         TauntAndPointUpdateDelay            = 10000
  770.         AddEmotion            =    Terror_Base
  771.         AddEmotion            =    Doom_Base
  772.         //    AddEmotion            =   BraceForBeingCrushed_Base
  773.         AddEmotion            =    UncontrollableFear_Base
  774.         //    AddEmotion            =    FearIdle_Base
  775.         //    AddEmotion            =    FearBusy_Base
  776.         AddEmotion            =    Point_Base
  777.         AddEmotion            =    Taunt_Base
  778.          AddEmotion            =    CheerIdle_Base
  779.         AddEmotion            =    CheerBusy_Base
  780.         //    AddEmotion            =    HeroCheerIdle_Base
  781.         //    AddEmotion            =    HeroCheerBusy_Base
  782.         AddEmotion            =    Alert_Base
  783.         AddEmotion            =    CheerForAboutToCrush_Base
  784.     End
  785.     
  786.     LocomotorSet
  787.         Locomotor = IsengardLurtzLocomotor
  788.         Condition = SET_NORMAL 
  789.         Speed     = NORMAL_EVIL_HERO_SPEED
  790.     End
  791.     
  792.     LocomotorSet
  793.         Locomotor = HumanWanderLocomotor
  794.         Condition = SET_WANDER 
  795.         Speed     = 55
  796.     End
  797.  
  798.     Behavior = PhysicsBehavior ModuleTag_04
  799.         GravityMult = 1.0
  800.         ShockStandingTime = 2000 ; (2 secs)
  801.     End
  802.     
  803.     Behavior = DualWeaponBehavior ModuleTag_09
  804.         SwitchWeaponOnCloseRangeDistance = 40
  805.     End
  806.     
  807.     Behavior = SlowDeathBehavior ModuleTag_05
  808.         DeathTypes            = ALL 
  809.         SinkDelay            = 6000
  810.         SinkRate            = 1.5     ; in Dist/Sec
  811.         DestructionDelay    = 11000
  812.         Sound                = INITIAL LurtzVoiceDie
  813.     End
  814.  
  815.     Behavior = SquishCollide ModuleTag_06
  816.         ;nothing
  817.     End
  818.  
  819.     ;;; AUTO ABILITY MODULE ;;;
  820.     Behavior = AutoAbilityBehavior ModuleTag_CrippleStrikeAutoAbility
  821.         SpecialAbility    = SpecialAbilityLurtzCripple
  822.         MaxScanRange    = LURTZ_CRIPPLE_RANGE_ABILTY_START
  823.         Query            = 1 CRIPPLE_STRIKE_OBJECT_FILTER ENEMIES
  824.     End        
  825.     Behavior = AutoAbilityBehavior ModuleTag_AutoAbilityBehavior
  826.     End        
  827.     
  828.     
  829.     Behavior = HitReactionBehavior HitReactionBehaviorModuleTag
  830.         HitReactionLifeTimer1 = 2500 ; level 1 (light  damage)  hit reaction animations in frames (5 per sec)
  831.         HitReactionThreshold1 = 0.0   ; level 1 (light  damage) threshold trigger
  832.     End
  833.     
  834.     ;;; LURTZ PASSIVE LEADERSHIP ABILITY ;;;-----------------------------------------------------------------------------
  835.     Behavior = UnpauseSpecialPowerUpgrade ModuleTag_LeadershipUnpause
  836.         SpecialPowerTemplate        = SpecialAbilityFakeLeadership
  837.         TriggeredBy                    = Upgrade_LurtzLeadership
  838.     End
  839.     Behavior = SpecialPowerModule ModuleTag_Leadership
  840.         SpecialPowerTemplate        = SpecialAbilityFakeLeadership
  841.         UpdateModuleStartsAttack    = No
  842.         StartsPaused                = Yes
  843.     End    
  844.     Behavior = AttributeModifierAuraUpdate ModuleTag_LeadershipUpdate
  845.         StartsActive    = No                                        ; If no, requires upgrade to turn on.
  846.         BonusName        = GenericHeroLeadership
  847.         TriggeredBy        = Upgrade_LurtzLeadership
  848.         RefreshDelay    = 2000
  849.         Range            = 200
  850.         AntiCategory    = BUFF
  851.         ObjectFilter    = GENERIC_BUFF_RECIPIENT_OBJECT_FILTER
  852.     End    
  853.     
  854.     ;;; LURTZ PILLAGE ABILITY ;;;-----------------------------------------------------------------------------
  855.      Behavior = UnpauseSpecialPowerUpgrade ModuleTag_Pillage
  856.         SpecialPowerTemplate    = SpecialAbilityFakeLeadership2
  857.         TriggeredBy                = Upgrade_LurtzPillage
  858.     End
  859.     Behavior = SpecialPowerModule ModuleTag_PillageUpdate
  860.         SpecialPowerTemplate        = SpecialAbilityFakeLeadership2
  861.         UpdateModuleStartsAttack    = No
  862.         StartsPaused                = Yes
  863.     End
  864.     Behavior = AttributeModifierAuraUpdate ModuleTag_PillageAura
  865.         StartsActive    = No                                        ; If no, requires upgrade to turn on.
  866.         BonusName        = LurtzPassiveOutlawLeadership
  867.         TriggeredBy        = Upgrade_LurtzPillage
  868.         RefreshDelay    = 2000
  869.         Range            = 200
  870.         AllowSelf        = Yes
  871.         ObjectFilter    = ANY +INFANTRY +CAVALRY -STRUCTURE -BASE_FOUNDATION -HERO -DOZER
  872.     End    
  873.  
  874.     ;;; LURTZ CRIPPLING STRIKE ;;;-----------------------------------------------------------------------------    
  875.     Behavior = UnpauseSpecialPowerUpgrade ModuleTag_CrippleEnabler
  876.         SpecialPowerTemplate    = SpecialAbilityLurtzCripple
  877.         TriggeredBy                = Upgrade_LurtzCrippleTrigger
  878.     End 
  879.     
  880.     Behavior = SpecialPowerModule ModuleTag_CrippleStarter                      
  881.         SpecialPowerTemplate        = SpecialAbilityLurtzCripple
  882.         UpdateModuleStartsAttack    = Yes
  883.         StartsPaused                = Yes
  884.         InitiateSound                = LurtzVoiceAttackCripplingStrike
  885.     End
  886.     Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_CrippleUpdate   
  887.         SpecialPowerTemplate    = SpecialAbilityLurtzCripple
  888.         SkipContinue            = Yes
  889.  
  890.         UnpackTime                = 1100    ; Pull out arrow
  891.         PreparationTime            = 1        ; Quick shot
  892.         PersistentPrepTime        = 500    ; looping the quick shot
  893.         PackTime                = 500    ; back to idle
  894.         MustFinishAbility        = Yes
  895.         
  896.         AwardXPForTriggering    = 0        
  897.         StartAbilityRange        = LURTZ_CRIPPLE_RANGE_ABILTY_START
  898.         
  899.         SpecialWeapon            = IsenguardLurtzBowStun
  900.         WhichSpecialWeapon        = 1
  901.         RejectedConditions        = WEAPON_TOGGLE
  902.     End
  903.     
  904.     ;;; LURTZ CARNAGE (aka rampage) ;;;-----------------------------------------------------------------------------
  905.     Behavior = UnpauseSpecialPowerUpgrade ModuleTag_LurtzCarnage
  906.         SpecialPowerTemplate    = SpecialAbilityLurtzCarnage
  907.         TriggeredBy                = Upgrade_LurtzCarnage
  908.     End
  909.       Behavior = SpecialPowerModule ModuleTag_LurtzCarnageStarter            ; SpecialAbility is a SpecialPower, SpecialPower is anyting special
  910.         SpecialPowerTemplate    = SpecialAbilityLurtzCarnage
  911.         StartsPaused            = Yes
  912.         AttributeModifier        = LurtzCarnage
  913.         AttributeModifierAffectsSelf = Yes
  914.     End
  915.     Behavior = HeroModeSpecialAbilityUpdate ModuleTag_CarnageUpdate        ; So the difference in SpecialAbility is that it takes timing from this Update, instead of simply firing.
  916.         SpecialPowerTemplate    = SpecialAbilityLurtzCarnage
  917.         HeroEffectDuration        = 30000
  918.         UnpackTime              = 1                                        ; how long the weaponset is active
  919.         RequiredConditions        = WEAPON_TOGGLE
  920.     End
  921.     
  922.     ;///////////////////
  923.     ; AISpecialPowers
  924.     ;///////////////////
  925.     
  926.     Behavior = AISpecialPowerUpdate CarnageAI
  927.         CommandButtonName = Command_SpecialAbilityLurtzCarnage
  928.         SpecialPowerAIType = AI_SPECIAL_POWER_BASIC_SELF_BUFF
  929.     End
  930.     
  931.     Behavior = AISpecialPowerUpdate CrippleAI
  932.         CommandButtonName = Command_LurtzCripple
  933.         SpecialPowerAIType = AI_SPECIAL_POWER_ENEMY_TYPE_KILLER
  934.     End
  935.  
  936.     Geometry            = CYLINDER
  937.     GeometryMajorRadius = 8.0
  938.     GeometryHeight        = 19.2
  939.     GeometryIsSmall        = Yes
  940.  
  941.     Shadow                = SHADOW_DECAL
  942.     ShadowSizeX            = 19
  943.     ShadowSizeY            = 19
  944.     ShadowTexture        = ShadowI
  945. End