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_wild_cavetroll.ini < prev    next >
Text File  |  2006-01-31  |  43KB  |  1,353 lines

  1. ;//------------------------------------------------------------------------------
  2. ;//
  3. Object GoblinCaveTroll
  4.     ;// *** ART Parameters ***
  5.  
  6.     ;// This is required for garrisoned objects - please put in all objects.
  7.     ButtonImage        = WOR_CaveTroll
  8.     SelectPortrait    = UPWild_CaveTroll
  9.     
  10.     DescriptionStrategic = CONTROLBAR:LW_ToolTip_GoblinCaveTroll
  11.  
  12.     Draw = W3DScriptedModelDraw ModuleTag_01
  13.         
  14.         OkToChangeModelColor        = Yes
  15.         ShowShadowWhileContained    = Yes
  16.         StaticModelLODMode            = yes                            ;// Will append M or L to the skin name depending on GameLOD
  17.  
  18.         ExtraPublicBone                = TRUNK01
  19.  
  20.         DefaultModelConditionState
  21.             Model = MuCavTroll_SKN
  22.             WeaponLaunchBone = PRIMARY Firepoint
  23.         End
  24.  
  25.         
  26.         ;// Splatted death goes first, independant of death flags
  27.         ModelConditionState    = DYING DECAY SPLATTED
  28.             Model                = MUCavTroll_DISA
  29.             RetainSubObjects    = Yes
  30.         End
  31.  
  32.         IdleAnimationState
  33.             StateName                = Idle
  34.             AllowRepeatInRandomPick    = Yes
  35.             SimilarRestart            = Yes
  36.  
  37.             Animation = Breathe
  38.                 AnimationName = MuCavTroll_SKL.MuCavTroll_IDLA 
  39.                 AnimationMode = ONCE
  40.                 AnimationPriority = 100
  41.             End
  42.             Animation = BellyScratch
  43.                 AnimationName = MuCavTroll_SKL.MuCavTroll_IDLC 
  44.                 AnimationMode = ONCE
  45.                 AnimationPriority = 5
  46.             End
  47.             Animation = RubHead
  48.                 AnimationName = MuCavTroll_SKL.MuCavTroll_IDLK 
  49.                 AnimationMode = ONCE
  50.                 AnimationPriority = 5
  51.             End
  52.             Animation = WipeNose
  53.                 AnimationName = MuCavTroll_SKL.MuCavTroll_IDLN 
  54.                 AnimationMode = ONCE
  55.                 AnimationPriority = 5
  56.             End
  57.             Animation = LittleRoar
  58.                 AnimationName = MuCavTroll_SKL.MuCavTroll_IDLM 
  59.                 AnimationMode = ONCE
  60.                 AnimationPriority = 3
  61.             End
  62.             Flags                        = RESTART_ANIM_WHEN_COMPLETE
  63.             BeginScript
  64.                 CurDrawableHideSubObjectPermanently("ROCK")
  65.             EndScript
  66.         End
  67.         
  68.         
  69.         AnimationState         = DYING DECAY SPLATTED 
  70.             Animation            = dead1
  71.                 AnimationName       = MUCavTroll_DISA.MUCavTroll_DISA
  72.                 AnimationMode      = ONCE
  73.             End
  74.         End
  75.  
  76.         ModelConditionState    = DYING DECAY WEAPONSET_TOGGLE_1        ; rock throwing always falls forward
  77.             Model                = MUCavTroll_DISC
  78.             RetainSubObjects    = Yes
  79.         End;
  80.  
  81.         AnimationState         = DYING DECAY WEAPONSET_TOGGLE_1
  82.             Animation            = dead1
  83.                 AnimationName       = MUCavTroll_DISC.MUCavTroll_DISC
  84.                 AnimationMode      = ONCE
  85.             End
  86.         End
  87.         
  88.         ModelConditionState    = DYING DECAY DEATH_1
  89.             Model                = MUCavTroll_DISB
  90.             RetainSubObjects    = Yes
  91.         End;
  92.  
  93.         AnimationState         = DYING DECAY DEATH_1 
  94.             Animation            = dead1
  95.                 AnimationName       = MUCavTroll_DISB.MUCavTroll_DISB
  96.                 AnimationMode      = ONCE
  97.             End
  98.         End
  99.  
  100.         ModelConditionState    = DYING DECAY DEATH_2
  101.             Model                = MUCavTroll_DISC
  102.             RetainSubObjects = Yes
  103.         End;
  104.  
  105.         AnimationState         = DYING DECAY DEATH_2 
  106.             Animation            = dead1
  107.                 AnimationName       = MUCavTroll_DISC.MUCavTroll_DISC
  108.                 AnimationMode      = ONCE
  109.             End
  110.         End
  111.  
  112.         ;// Flailing must go before dying in case we are dead in the air
  113.         AnimationState = STUNNED_FLAILING
  114.             Animation
  115.                 AnimationName = MuCavTroll_SKL.MuCavTroll_FLYA
  116.                 AnimationMode = LOOP
  117.             End
  118.         End
  119.  
  120.         ;//;; DYING ANIMATIONS ;;;
  121.         AnimationState = DYING WEAPONSET_TOGGLE_1
  122.             Animation
  123.                 AnimationName = MuCavTroll_SKL.MuCavTroll_DIEE
  124.                 AnimationMode = ONCE
  125.             End
  126.         End
  127.         
  128.         AnimationState = DYING SPLATTED
  129.             Animation
  130.                 AnimationName = MuCavTroll_SKL.MuCavTroll_LNDA
  131.                 AnimationMode = ONCE
  132.             End
  133.         End
  134.  
  135.         AnimationState = DYING DEATH_1
  136.             Animation
  137.                 AnimationName = MuCavTroll_SKL.MuCavTroll_DIEB
  138.                 AnimationMode = ONCE
  139.             End
  140.  
  141.                 ParticleSysBone = B_PELVIS TrollSplatDust
  142.                 ParticleSysBone = BAT_HEAD TrollSplatDust
  143.         End
  144.  
  145.         AnimationState = DYING DEATH_2
  146.             Animation
  147.                 AnimationName = MuCavTroll_SKL.MuCavTroll_DIEC
  148.                 AnimationMode = ONCE
  149.             End
  150.  
  151.                 ParticleSysBone = BAT_SPINE1 TrollSplatDust1
  152.                 ParticleSysBone = BAT_HEAD TrollSplatDust1
  153.         End
  154.  
  155.         ModelConditionState = DYING
  156.             Model = MuCavTroll_SKN        
  157.         End
  158.         AnimationState = DYING
  159.             Animation
  160.                 AnimationName     =  MuCavTroll_SKL.MuCavTroll_DIEC
  161.                 AnimationMode     = ONCE
  162.             End
  163.         End
  164.  
  165.         ModelConditionState = STONED 
  166.             Model            = MuCavTroll_SKN
  167.             Texture            = MuCavTroll.tga MUCavTroll_R.tga
  168.         End         
  169.  
  170.         AnimationState        = STONED
  171.             Animation            = Stoned
  172.                 AnimationName        = MuCavTroll_SKL.MuCavTroll_MFDA
  173.                 AnimationMode        = MANUAL
  174.                 AnimationBlendTime    = 40
  175.             End
  176.             Flags    = RANDOMSTART
  177.         End
  178.                 
  179.         AnimationState                = STUNNED_STANDING_UP
  180.             Animation                = MuCavTroll_GTPA
  181.                 AnimationName        = MuCavTroll_SKL.MuCavTroll_GTPA
  182.                 AnimationMode        = ONCE
  183.             End
  184.         End    
  185.  
  186.         AnimationState                = STUNNED
  187.             Animation
  188.                 AnimationName = MuCavTroll_SKL.MuCavTroll_LNDA
  189.                 AnimationMode = ONCE
  190.             End
  191.             ParticleSysBone = B_PELVIS TrollSplatDust2
  192.             ParticleSysBone = BAT_HEAD TrollSplatDust2
  193.         End
  194.         
  195.         AnimationState                        = PARALYZED
  196.             Animation
  197.                 AnimationName                = MuCavTroll_IDLA
  198.                 AnimationMode                = LOOP
  199.             End
  200.         End
  201.  
  202.  
  203.         ;//;; PASSENGER OF SIEGE TOWER ANIMS ;;;
  204. ;        AnimationState = PASSENGER MOVING BACKING_UP ;// pulling the seige tower or grond
  205. ;                Animation = Passenger_moving
  206. ;                AnimationName = MuCavTroll_SKL.MuCavTroll_PSHA ;// MuCavTroll_PSHA
  207. ;                AnimationMode = LOOP_BACKWARDS
  208. ;                AnimationSpeedFactorRange = 2.0 2.0
  209. ;            End
  210. ;            Flags = RANDOMSTART
  211. ;        End
  212. ;
  213. ;        AnimationState = PASSENGER MOVING ;// pushing the seige tower
  214. ;                Animation = Passenger_moving
  215. ;                AnimationName = MuCavTroll_SKL.MuCavTroll_PSHA
  216. ;                AnimationMode = LOOP
  217. ;                AnimationSpeedFactorRange = 1.5 1.5
  218. ;            End
  219. ;            Flags = RANDOMSTART
  220. ;        End
  221. ;
  222. ;        AnimationState = PASSENGER ;// idling by the grond
  223. ;            Animation = Passenger
  224. ;                AnimationName = MuCavTroll_SKL.MuCavTroll_IDLD
  225. ;                AnimationMode = LOOP
  226. ;                AnimationBlendTime = 15
  227. ;            End
  228. ;            Flags = RANDOMSTART
  229. ;        End
  230.  
  231.         ;//--- bop our friends on the head
  232.         AnimationState = SPECIAL_WEAPON_ONE
  233.             Animation = Punch
  234.                 AnimationName = MuCavTroll_SKL.MuCavTroll_ATKF
  235.                 AnimationMode = ONCE
  236.             End
  237.             Animation = Backhand
  238.                 AnimationName = MuCavTroll_SKL.MuCavTroll_ATKG
  239.                 AnimationMode = ONCE
  240.             End            
  241.         End
  242.                     
  243.         ;//--Troll is angry
  244.         AnimationState = WEAPONSET_RAMPAGE
  245.             Animation = GetMad
  246.                     AnimationName = MuCavTroll_SKL.MuCavTroll_RPGC
  247.                     AnimationMode = LOOP
  248.                 End
  249.             End
  250.  
  251.         ;// --------- With Club ------------
  252.  
  253.         AnimationState = FIRING_OR_PREATTACK_A WEAPONSTATE_ONE
  254.     ;//        Animation
  255.     ;//            ;// Taking this one out since it doesn't work with the logic of the attack, which is a 180 knockback (this one is vertical clubbing, could be used as anti-monster anim, not anti bunch of inf)
  256.     ;//            AnimationName = MuCavTroll_SKL.MuCavTroll_ATKB
  257.     ;//            AnimationMode = ONCE
  258.     ;//            UseWeaponTiming        = Yes
  259.     ;//        End
  260.             Animation
  261.                 AnimationName = MuCavTroll_SKL.MuCavTroll_ATKC
  262.                 AnimationMode = ONCE
  263.                 UseWeaponTiming        = Yes
  264.             End
  265.             Animation
  266.                 AnimationName = MuCavTroll_SKL.MuCavTroll_ATKD
  267.                 AnimationMode = ONCE
  268.                 UseWeaponTiming        = Yes
  269.             End
  270.         End
  271.  
  272.  
  273.         AnimationState = TURN_LEFT WEAPONSTATE_ONE                        ; WEAPONSTATE_ONE = tree as club
  274.             Animation = Moving
  275.                 AnimationName = MuCavTroll_SKL.MuCavTroll_TRNL
  276.                 AnimationMode = LOOP
  277.                 AnimationBlendTime = 10
  278.             End
  279.             ParticleSysBone = None InfantryDustTrails
  280.             BeginScript ; Here since normal Packing state can be skipped with a fast click.
  281.                 CurDrawableShowSubObjectPermanently("Trunk01")
  282.             EndScript
  283.         End
  284.  
  285.         AnimationState = TURN_RIGHT WEAPONSTATE_ONE
  286.             Animation = Moving
  287.                 AnimationName = MuCavTroll_SKL.MuCavTroll_TRNR
  288.                 AnimationMode = LOOP
  289.                 AnimationBlendTime = 10
  290.             End
  291.             ParticleSysBone = None InfantryDustTrails
  292.             BeginScript ; Here since normal Packing state can be skipped with a fast click.
  293.                 CurDrawableShowSubObjectPermanently("Trunk01")
  294.             EndScript
  295.         End
  296.  
  297.         AnimationState = MOVING WEAPONSTATE_ONE                    ; ATTACKING
  298.             Animation
  299.                 AnimationName = MuCavTroll_SKL.MuCavTroll_RUNA  ; Running with club
  300.                 AnimationMode = LOOP
  301.                 ;AnimationSpeedFactorRange = 0.77 0.77
  302.             End
  303.             Flags               = RANDOMSTART
  304.             ParticleSysBone     = None InfantryDustTrails
  305.             FXEvent    = Frame:5 FireWhenSkipped Name:FX_TrollRightFootStep
  306.             FXEvent    = Frame:18 FireWhenSkipped Name:FX_TrollLeftFootStep
  307.         End
  308.  
  309.         ;AnimationState = MOVING WEAPONSTATE_ONE DAMAGED
  310.         ;    Animation
  311.         ;        AnimationName = MuCavTroll_SKL.MuCavTroll_WLKB ; Walking with club
  312.         ;        AnimationMode = LOOP
  313.         ;        AnimationSpeedFactorRange = 1.3 1.3
  314.         ;    End
  315.         ;    Flags               = RANDOMSTART
  316.         ;    ParticleSysBone     = None InfantryDustTrails
  317.         ;    FXEvent    = Frame:0 FireWhenSkipped Name:FX_TrollRightFootStep
  318.         ;    FXEvent    = Frame:20 FireWhenSkipped Name:FX_TrollLeftFootStep
  319.         ;End
  320.  
  321.         ;AnimationState = MOVING WEAPONSTATE_ONE
  322.         ;    Animation
  323.         ;        AnimationName = MuCavTroll_SKL.MuCavTroll_RUNA  ; Running with club
  324.         ;          AnimationName = MuCavTroll_SKL.MuCavTroll_WLKD ; Walking with club 
  325.         ;        AnimationMode = LOOP
  326.         ;          AnimationSpeedFactorRange = 1.36 1.36
  327.         ;    End
  328.         ;    Flags               = RANDOMSTART
  329.         ;    ParticleSysBone     = None InfantryDustTrails
  330.         ;    FXEvent    = Frame:0 FireWhenSkipped Name:FX_TrollRightFootStep
  331.         ;    FXEvent    = Frame:23 FireWhenSkipped Name:FX_TrollLeftFootStep
  332.         ;
  333.         ;
  334.         ;    BeginScript ; Here since normal Packing state can be skipped with a fast click.
  335.         ;        CurDrawableShowSubObjectPermanently("Trunk01")
  336.         ;    EndScript
  337.         ;End
  338.  
  339.         AnimationState = FIRING_OR_PREATTACK_A WEAPONSTATE_ONE
  340.     ;//        Animation
  341.     ;//            ;// Taking this one out since it doesn't work with the logic of the attack, which is a 180 knockback (this one is vertical clubbing, could be used as anti-monster anim, not anti bunch of inf)
  342.     ;//            AnimationName = MuCavTroll_SKL.MuCavTroll_ATKB
  343.     ;//            AnimationMode = ONCE
  344.     ;//            UseWeaponTiming        = Yes
  345.     ;//        End
  346.             Animation
  347.                 AnimationName = MuCavTroll_SKL.MuCavTroll_ATKC
  348.                 AnimationMode = ONCE
  349.                 UseWeaponTiming        = Yes
  350.             End
  351.             Animation
  352.                 AnimationName = MuCavTroll_SKL.MuCavTroll_ATKD
  353.                 AnimationMode = ONCE
  354.                 UseWeaponTiming        = Yes
  355.             End
  356.         End
  357.  
  358.         ;Running attack
  359.         AnimationState = FIRING_OR_PREATTACK_B WEAPONSTATE_ONE
  360.             Animation
  361.                 AnimationName = MuCavTroll_SKL.MuCavTroll_ATRA
  362.                 AnimationMode = ONCE
  363.                 UseWeaponTiming        = Yes
  364.             End
  365.         End
  366.             
  367.         AnimationState = PREPARING                                            ; WEAPONSTATE_ONE not yet set.
  368.             Animation
  369.                 AnimationName = MuCavTroll_SKL.MuCavTroll_GRBC
  370.                 AnimationMode = ONCE
  371.             End
  372.         End
  373.  
  374.         AnimationState = PACKING WEAPONSTATE_ONE
  375.             Animation
  376.                 AnimationName = MuCavTroll_SKL.MuCavTroll_GRBD
  377.                 AnimationMode = ONCE
  378.             End
  379.             BeginScript 
  380.                 CurDrawableShowSubObjectPermanently("Trunk01")
  381.             EndScript
  382.         End
  383.  
  384.         AnimationState = EMOTION_CELEBRATING WEAPONSTATE_ONE
  385.             Animation = DeepRoar
  386.                 AnimationName    =    MuCavTroll_SKL.MuCavTroll_IDLF
  387.                 AnimationMode    =    LOOP
  388.             End
  389.         End
  390.  
  391.         AnimationState = USER_2 WEAPONSTATE_ONE
  392.              Animation = ReactToTrollPoke ; The two comes from the special TrollBored weapon
  393.                  AnimationName = MuCavTroll_SKL.MuCavTroll_HITD
  394.                  AnimationMode = ONCE
  395.              End
  396.         End
  397.      
  398.         AnimationState                    = EMOTION_TAUNTING WEAPONSTATE_ONE
  399.             Animation
  400.                 AnimationName            = MUMntTroll_SKL.MUMntTroll_IDLB
  401.                 AnimationMode            = ONCE
  402.                 AnimationPriority        = 20
  403.             End
  404.             Animation                    = Taunting3
  405.                 AnimationName            = MUMntTroll_SKL.MUMntTroll_IDLM
  406.                 AnimationMode            = ONCE
  407.                 AnimationPriority        = 10
  408.             End
  409.             Animation                    = Taunting4
  410.                 AnimationName            = MUMntTroll_SKL.MUMntTroll_IDLE
  411.                 AnimationMode            = ONCE
  412.                 AnimationPriority        = 5
  413.             End
  414.         End
  415.     
  416.         AnimationState = WEAPONSTATE_ONE    ;Idle with club
  417.             AllowRepeatInRandomPick    = Yes
  418.             SimilarRestart            = Yes
  419.         
  420.             Animation = BreathWithClub
  421.                 AnimationName = MuCavTroll_SKL.MuCavTroll_IDLB
  422.                 AnimationMode = ONCE
  423.                 AnimationPriority = 30
  424.                 AnimationSpeedFactorRange = 0.8 1.0
  425.             End
  426.             Animation = BreathWithClub
  427.                 AnimationName = MuCavTroll_SKL.MuCavTroll_IDLB
  428.                 AnimationMode = ONCE
  429.                 AnimationPriority = 30
  430.                 AnimationSpeedFactorRange = 0.8 1.0
  431.             End
  432.             Animation = RoarAndThumpClub
  433.                 AnimationName = MuCavTroll_SKL.MuCavTroll_IDLE  
  434.                 AnimationMode = ONCE
  435.                 AnimationPriority = 5
  436.                 AnimationBlendTime = 3
  437.             End
  438.             Animation = ScratchButt
  439.                 AnimationName = MuCavTroll_SKL.MuCavTroll_IDLG  
  440.                 AnimationMode = ONCE
  441.                 AnimationPriority = 2
  442.                 AnimationBlendTime = 3
  443.             End
  444.             Flags = RESTART_ANIM_WHEN_COMPLETE
  445.             BeginScript ; Here since normal Packing state can be skipped with a fast click.
  446.                 CurDrawableShowSubObjectPermanently("Trunk01")
  447.             EndScript
  448.         End
  449.  
  450.     ;// --------- With Rock ------------
  451.  
  452.         ;AnimationState = MOVING WEAPONSET_TOGGLE_1 ATTACKING
  453.         ;    Animation
  454.         ;        AnimationName = MuCavTroll_SKL.MuCavTroll_RUNA 
  455.         ;        AnimationMode = LOOP
  456.         ;        AnimationSpeedFactorRange = 0.77 0.77
  457.         ;    End
  458.         ;    Flags = RANDOMSTART
  459.         ;    ParticleSysBone = None InfantryDustTrails
  460.         ;    FXEvent    = Frame:5 FireWhenSkipped Name:FX_TrollRightFootStep
  461.         ;    FXEvent    = Frame:18 FireWhenSkipped Name:FX_TrollLeftFootStep
  462.         ;End
  463.  
  464. ;        AnimationState = MOVING WEAPONSET_TOGGLE_1 DAMAGED
  465. ;            Animation
  466. ;                AnimationName = MuCavTroll_SKL.MuCavTroll_WLKB 
  467. ;                AnimationMode = LOOP
  468. ;                AnimationSpeedFactorRange = 1.3 1.3
  469. ;            End
  470. ;            Flags = RANDOMSTART
  471. ;            ParticleSysBone = None InfantryDustTrails
  472. ;            FXEvent    = Frame:0 FireWhenSkipped Name:FX_TrollRightFootStep
  473. ;            FXEvent    = Frame:20 FireWhenSkipped Name:FX_TrollLeftFootStep
  474. ;        End
  475.  
  476. ;        AnimationState = MOVING WEAPONSET_TOGGLE_1
  477. ;            Animation
  478. ;                AnimationName        = MuCavTroll_SKL.MuCavTroll_WLKD
  479. ;                AnimationMode        = LOOP
  480. ;                Distance            = 35
  481. ;            End
  482. ;            Flags = RANDOMSTART
  483. ;            ParticleSysBone = None InfantryDustTrails
  484. ;            FXEvent    = Frame:0 FireWhenSkipped Name:FX_TrollRightFootStep
  485. ;            FXEvent    = Frame:16 FireWhenSkipped Name:FX_TrollLeftFootStep
  486. ;        End
  487.  
  488. ;        AnimationState = FIRING_OR_PREATTACK_A USING_WEAPON_A
  489. ;            Animation
  490. ;                AnimationName = MuCavTroll_SKL.MuCavTroll_THRA
  491. ;                AnimationMode = ONCE
  492. ;                UseWeaponTiming = Yes
  493. ;                AnimationBlendTime = 0
  494. ;            End
  495. ;            FrameForPristineBonePositions = 16
  496. ;            StateName = Throw
  497. ;        End
  498.         
  499.     
  500.         AnimationState = FIRING_OR_PREATTACK_A WEAPONSET_TOGGLE_1            ; throw rock
  501.             StateName = Throw
  502.             Animation
  503.                 AnimationName        = MuCavTroll_SKL.MuCavTroll_THRA
  504.                 AnimationMode        = ONCE
  505.                 UseWeaponTiming        = Yes
  506.             End
  507.             LuaEvent = Frame:24 Data: hide_rock
  508.             FrameForPristineBonePositions = 24
  509.         End
  510.  
  511.         AnimationState = RELOADING_A WEAPONSET_TOGGLE_1                        ; Pickup rock.
  512.             Animation
  513.                 AnimationName        = MuCavTroll_SKL.MuCavTroll_GRBE
  514.                 AnimationMode        = ONCE
  515.             End
  516.             FXEvent    = Frame:21    Name: FX_CaveTrollRockGrab
  517.             FXEvent    = Frame:38    Name: FX_CaveTrollRockYank
  518.             LuaEvent = Frame:37 Data: show_rock
  519.         End
  520.  
  521. ;        AnimationState = FIRING_OR_PREATTACK_B WEAPONSTATE_TWO
  522. ;            Animation
  523. ;                AnimationName = MuCavTroll_SKL.MuCavTroll_THRA
  524. ;                AnimationMode = ONCE
  525. ;                UseWeaponTiming = Yes
  526. ;                AnimationBlendTime = 0
  527. ;            End
  528. ;            FrameForPristineBonePositions = 21
  529. ;            StateName = Throw
  530. ;        End
  531.  
  532. ;        AnimationState = PACKING WEAPONSTATE_TWO
  533. ;            Animation
  534. ;                AnimationName = MuCavTroll_SKL.MuCavTroll_GRBB
  535. ;                AnimationMode = ONCE
  536. ;            End
  537. ;            ParticleSysBone    = BAT_HANDR TrollRockBounceSmall FollowBone:no
  538. ;            ParticleSysBone    = BAT_HANDR TrollRockPickup FollowBone:no
  539. ;        End
  540.  
  541.         ;//Building attack, which you can do with a rock in yo hand
  542.         AnimationState = FIRING_OR_PREATTACK_B WEAPONSET_TOGGLE_1
  543.             Animation
  544.                 AnimationName = MuCavTroll_SKL.MuCavTroll_ATKJ
  545.                 AnimationMode = ONCE
  546.                 UseWeaponTiming        = Yes
  547.             End
  548.         End
  549.  
  550.         AnimationState = TURN_LEFT WEAPONSET_TOGGLE_1
  551.             Animation = Moving
  552.                 AnimationName = MUCavTroll_SKL.MUCavTroll_TRNL
  553.                 AnimationMode = LOOP
  554.                 AnimationBlendTime = 10
  555.             End
  556.             ParticleSysBone = None InfantryDustTrails
  557.         End
  558.  
  559.         AnimationState = TURN_RIGHT WEAPONSET_TOGGLE_1
  560.             Animation = Moving
  561.                 AnimationName = MUCavTroll_SKL.MUCavTroll_TRNR
  562.                 AnimationMode = LOOP
  563.                 AnimationBlendTime = 10
  564.             End
  565.             ParticleSysBone = None InfantryDustTrails
  566.         End
  567.  
  568.         AnimationState = MOVING WEAPONSET_TOGGLE_1
  569.             Animation
  570.                 AnimationName = MuCavTroll_SKL.MuCavTroll_RUNA 
  571.                 AnimationMode = LOOP
  572.                 ;AnimationSpeedFactorRange = 0.77 0.77
  573.             End
  574.             Flags = RANDOMSTART
  575.             ParticleSysBone = None InfantryDustTrails
  576.             FXEvent    = Frame:5 FireWhenSkipped Name:FX_TrollRightFootStep
  577.             FXEvent    = Frame:18 FireWhenSkipped Name:FX_TrollLeftFootStep
  578.         End
  579.  
  580.         ;AnimationState = MOVING WEAPONSET_TOGGLE_1
  581.         ;    Animation
  582.         ;        AnimationName        = MuCavTroll_SKL.MuCavTroll_WLKD
  583.         ;        AnimationMode        = LOOP
  584.         ;        Distance            = 35
  585.         ;    End
  586.         ;    Flags = RANDOMSTART
  587.         ;    ParticleSysBone = None InfantryDustTrails
  588.         ;    FXEvent    = Frame:0 FireWhenSkipped Name:FX_TrollRightFootStep
  589.         ;    FXEvent    = Frame:16 FireWhenSkipped Name:FX_TrollLeftFootStep
  590.         ;End
  591.  
  592.         ;// --------- Click and Hit Reactions with Rock ------------            
  593.         AnimationState = HIT_REACTION HIT_LEVEL_1 WEAPONSET_TOGGLE_1
  594.             Animation = Hit_Level_1_a
  595.                 AnimationName = MuCavTroll_SKL.MuCavTroll_HITD
  596.                 AnimationMode = ONCE
  597.             End
  598.         End
  599.  
  600.         AnimationState = HIT_REACTION HIT_LEVEL_2 WEAPONSET_TOGGLE_1
  601.             Animation = Hit_Level_2
  602.                 AnimationName = MuCavTroll_SKL.MuCavTroll_HITC
  603.                 AnimationMode = ONCE
  604.             End
  605.         End
  606.  
  607.         AnimationState = HIT_REACTION HIT_LEVEL_3 WEAPONSET_TOGGLE_1
  608.             Animation = Hit_Level_3
  609.                 AnimationName = MuCavTroll_SKL.MuCavTroll_HITA
  610.                 AnimationMode = ONCE
  611.             End
  612.         End
  613.  
  614.         AnimationState = REACT_1 WEAPONSET_TOGGLE_1
  615.             Animation = Click_React_1
  616.                 AnimationName = MuCavTroll_SKL.MuCavTroll_RCTA
  617.                 AnimationMode = ONCE
  618.             End
  619.         End
  620.  
  621.         AnimationState = REACT_2 WEAPONSET_TOGGLE_1
  622.             Animation = Click_React_2
  623.                 AnimationName = MuCavTroll_SKL.MuCavTroll_RCTB
  624.                 AnimationMode = ONCE
  625.             End
  626.         End
  627.  
  628.         AnimationState = REACT_3 WEAPONSET_TOGGLE_1
  629.             Animation = Click_React_3
  630.                 AnimationName = MuCavTroll_SKL.MuCavTroll_RCTC
  631.                 AnimationMode = ONCE
  632.             End
  633.         End
  634.  
  635.         AnimationState = REACT_4 WEAPONSET_TOGGLE_1
  636.             Animation = Click_React_4
  637.                 AnimationName = MuCavTroll_SKL.MuCavTroll_RCTD
  638.                 AnimationMode = ONCE
  639.             End
  640.         End
  641.  
  642.         AnimationState = REACT_5 WEAPONSET_TOGGLE_1
  643.             Animation = Click_React_5
  644.                 AnimationName = MuCavTroll_SKL.MuCavTroll_RCTE
  645.                 AnimationMode = ONCE
  646.             End
  647.         End
  648.         
  649.         AnimationState = USER_2 WEAPONSET_TOGGLE_1
  650.              Animation = ReactToTrollPoke ; The two comes from the special TrollBored weapon
  651.                  AnimationName = MuCavTroll_SKL.MuCavTroll_HITD
  652.                  AnimationMode = ONCE
  653.              End
  654.         End
  655.      
  656.         AnimationState = SWAPPING_TO_WEAPONSET_1 WEAPONSET_TOGGLE_1            ; toggling to rock throwing. This get's the unit into a nice
  657.             Animation                                                        ; pose to blend from, rather than playing an idle for one frame.
  658.                 AnimationName    = MuCavTroll_SKL.MuCavTroll_GRBE
  659.                 AnimationMode    = MANUAL
  660.             End
  661.         End
  662.      
  663.         AnimationState                    = EMOTION_TAUNTING WEAPONSET_TOGGLE_1
  664.             Animation
  665.                 AnimationName            = MUMntTroll_SKL.MUMntTroll_IDLB
  666.                 AnimationMode            = ONCE
  667.                 AnimationPriority        = 20
  668.             End
  669.             Animation                    = Taunting3
  670.                 AnimationName            = MUMntTroll_SKL.MUMntTroll_IDLM
  671.                 AnimationMode            = ONCE
  672.                 AnimationPriority        = 10
  673.             End
  674.         End
  675.             
  676.         AnimationState = WEAPONSET_TOGGLE_1
  677.             AllowRepeatInRandomPick            = Yes
  678.             SimilarRestart                    = Yes
  679.         
  680.             Animation = BreatheWithRock
  681.                 AnimationName                = MuCavTroll_SKL.MuCavTroll_IDLB
  682.                 AnimationMode                = ONCE
  683.                 AnimationPriority            = 10
  684.                 AnimationSpeedFactorRange    = 0.8 1.2
  685.             End
  686. ;            Animation = ScratchButt
  687. ;                AnimationName                = MuCavTroll_SKL.MuCavTroll_IDLG  
  688. ;                AnimationMode                = ONCE
  689. ;                AnimationPriority            = 1
  690. ;            End
  691.             Flags = RESTART_ANIM_WHEN_COMPLETE
  692.             BeginScript
  693.                 CurDrawableShowSubObjectPermanently("ROCK")
  694.             EndScript            
  695.         End
  696.  
  697.  
  698.  
  699.         ;// --------- With Bare Hands ------------
  700.         AnimationState = UNPACKING
  701.             Animation
  702.                 AnimationName = MuCavTroll_SKL.MuCavTroll_GRBA
  703.                 AnimationMode = ONCE
  704.             End
  705.             FrameForPristineBonePositions = 14
  706.         End
  707.  
  708.         AnimationState = TURN_LEFT
  709.             Animation = Moving
  710.                 AnimationName = MuCavTroll_SKL.MuCavTroll_TRNL
  711.                 AnimationMode = LOOP
  712.                 AnimationBlendTime = 10
  713.             End
  714.             ParticleSysBone = None InfantryDustTrails
  715.         End
  716.  
  717.         AnimationState = TURN_RIGHT
  718.             Animation = Moving
  719.                 AnimationName = MuCavTroll_SKL.MuCavTroll_TRNR
  720.                 AnimationMode = LOOP
  721.                 AnimationBlendTime = 10
  722.             End
  723.             ParticleSysBone = None InfantryDustTrails
  724.         End
  725.  
  726.         ;AnimationState = MOVING ATTACKING
  727.         ;    Animation = Charging
  728.         ;        AnimationName = MuCavTroll_SKL.MuCavTroll_RUNB
  729.         ;        AnimationMode = LOOP
  730.         ;        AnimationSpeedFactorRange = 0.8 0.8
  731.         ;    End
  732.         ;    Flags = RANDOMSTART
  733.         ;    ParticleSysBone = None InfantryDustTrails
  734.         ;        FXEvent    = Frame:5 FireWhenSkipped Name:FX_TrollRightFootStep
  735.         ;        FXEvent    = Frame:18 FireWhenSkipped Name:FX_TrollLeftFootStep
  736.         ;End
  737.  
  738.         ;// Normal fist attacks
  739.         AnimationState = FIRING_OR_PREATTACK_A
  740.             Animation
  741.                 AnimationName = MuCavTroll_SKL.MuCavTroll_ATKA
  742.                 AnimationMode = ONCE
  743.                 UseWeaponTiming        = Yes
  744.             End
  745.             Animation
  746.                 AnimationName = MuCavTroll_SKL.MuCavTroll_ATKE
  747.                 AnimationMode = ONCE
  748.                 UseWeaponTiming        = Yes
  749.             End
  750.         End
  751.  
  752.         ;Building attack
  753.         AnimationState = FIRING_OR_PREATTACK_B
  754.             Animation
  755.                 AnimationName = MuCavTroll_SKL.MuCavTroll_ATKJ
  756.                 AnimationMode = ONCE
  757.                 UseWeaponTiming        = Yes
  758.             End
  759.         End
  760.             
  761.         ;Running attack
  762.         AnimationState = FIRING_OR_PREATTACK_C
  763.             Animation
  764.                 AnimationName = MuCavTroll_SKL.MuCavTroll_ATRB
  765.                 AnimationMode = ONCE
  766.                 UseWeaponTiming        = Yes
  767.             End
  768.         End
  769.             
  770.         AnimationState                = MOVING PANICKING
  771.             Animation                = RUNM
  772.                 AnimationName        =  MuCavTroll_SKL.MuCavTroll_MFDA
  773.                 AnimationMode        = LOOP
  774.             End
  775.             Flags                    = RANDOMSTART
  776.         End
  777.         
  778.         ;AnimationState = MOVING DAMAGED
  779.         ;    Animation = Moving_Damaged
  780.         ;        AnimationName = MuCavTroll_SKL.MuCavTroll_WLKB
  781.         ;        AnimationMode = LOOP
  782.         ;    End
  783.         ;    Flags = RANDOMSTART
  784.         ;    ParticleSysBone = None InfantryDustTrails
  785.         ;    FXEvent    = Frame:0 FireWhenSkipped Name:FX_TrollRightFootStep
  786.         ;    FXEvent    = Frame:20 FireWhenSkipped Name:FX_TrollLeftFootStep
  787.         ;End
  788.  
  789.         ;AnimationState = MOVING
  790.         ;    Animation = Moving
  791.         ;        AnimationName        = MuCavTroll_SKL.MuCavTroll_WLKB
  792.         ;        AnimationMode        = LOOP
  793.         ;        Distance            = 35
  794.         ;        AnimationBlendTime    = 10
  795.         ;    End
  796.         ;    Flags = RANDOMSTART
  797.         ;    ParticleSysBone = None InfantryDustTrails
  798.         ;    FXEvent    = Frame:0 FireWhenSkipped Name:FX_TrollRightFootStep
  799.         ;    FXEvent    = Frame:20 FireWhenSkipped Name:FX_TrollLeftFootStep
  800.         ;End
  801.  
  802.         AnimationState = MOVING
  803.             Animation = Charging
  804.                 AnimationName = MuCavTroll_SKL.MuCavTroll_RUNB
  805.                 AnimationMode = LOOP
  806.                 ;AnimationSpeedFactorRange = 0.8 0.8
  807.             End
  808.             Flags = RANDOMSTART
  809.             ParticleSysBone = None InfantryDustTrails
  810.                 FXEvent    = Frame:5 FireWhenSkipped Name:FX_TrollRightFootStep
  811.                 FXEvent    = Frame:18 FireWhenSkipped Name:FX_TrollLeftFootStep
  812.         End
  813.  
  814.         AnimationState = ENGAGED
  815.             Animation
  816.                 AnimationName = MuCavTroll_SKL.MuCavTroll_IDLA
  817.                 AnimationMode = LOOP
  818.             End
  819.         End
  820.         
  821.         ;// --------- Just built ------------            
  822.         AnimationState = JUST_BUILT
  823.             Animation
  824.                 AnimationName = MuCavTroll_SKL.MuCavTroll_WLKD
  825.                 AnimationMode = ONCE
  826.                 AnimationBlendTime = 0
  827.                 AnimationSpeedFactorRange = 0.9 0.9            
  828.             End    
  829.         End    
  830.  
  831.         ;// --------- Click and Hit Reactions ------------            
  832.         AnimationState = HIT_REACTION HIT_LEVEL_1
  833.             Animation = Hit_Level_1_a
  834.                 AnimationName = MuCavTroll_SKL.MuCavTroll_HITD
  835.                 AnimationMode = ONCE
  836.             End
  837.         End
  838.  
  839.         AnimationState = HIT_REACTION HIT_LEVEL_2
  840.             Animation = Hit_Level_2
  841.                 AnimationName = MuCavTroll_SKL.MuCavTroll_HITC
  842.                 AnimationMode = ONCE
  843.             End
  844.         End
  845.  
  846.         AnimationState = HIT_REACTION HIT_LEVEL_3
  847.             Animation = Hit_Level_3
  848.                 AnimationName = MuCavTroll_SKL.MuCavTroll_HITA
  849.                 AnimationMode = ONCE
  850.             End
  851.         End
  852.  
  853.         AnimationState = REACT_1
  854.             Animation = Click_React_1
  855.                 AnimationName = MuCavTroll_SKL.MuCavTroll_RCTA
  856.                 AnimationMode = ONCE
  857.             End
  858.         End
  859.  
  860.         AnimationState = REACT_2
  861.             Animation = Click_React_2
  862.                 AnimationName = MuCavTroll_SKL.MuCavTroll_RCTB
  863.                 AnimationMode = ONCE
  864.             End
  865.         End
  866.  
  867.         AnimationState = REACT_3
  868.             Animation = Click_React_3
  869.                 AnimationName = MuCavTroll_SKL.MuCavTroll_RCTC
  870.                 AnimationMode = ONCE
  871.             End
  872.         End
  873.  
  874.         AnimationState = REACT_4
  875.             Animation = Click_React_4
  876.                 AnimationName = MuCavTroll_SKL.MuCavTroll_RCTD
  877.                 AnimationMode = ONCE
  878.             End
  879.         End
  880.  
  881.         AnimationState = REACT_5
  882.             Animation = Click_React_5
  883.                 AnimationName = MuCavTroll_SKL.MuCavTroll_RCTE
  884.                 AnimationMode = ONCE
  885.             End
  886.         End
  887.         
  888.         AnimationState = USER_2
  889.             Animation = ReactToTrollPoke ; The two comes from the special TrollBored weapon
  890.                 AnimationName = MuCavTroll_SKL.MuCavTroll_HITA
  891.                 AnimationMode = ONCE
  892.             End
  893.         End
  894.  
  895.         ;//-----------------------------------
  896.         ;//Emotion
  897.         AnimationState = EMOTION_CELEBRATING
  898.             Animation
  899.                 AnimationName    =    MuCavTroll_SKL.MuCavTroll_IDLF
  900.                 AnimationMode    =    LOOP
  901.             End
  902.         End
  903.         
  904.         AnimationState                    = EMOTION_TAUNTING
  905.             Animation
  906.                 AnimationName            = MUMntTroll_SKL.MUMntTroll_IDLB
  907.                 AnimationMode            = ONCE
  908.                 AnimationPriority        = 20
  909.             End
  910.             Animation                    = Taunting3
  911.                 AnimationName            = MUMntTroll_SKL.MUMntTroll_IDLM
  912.                 AnimationMode            = ONCE
  913.                 AnimationPriority        = 10
  914.             End
  915.         End
  916.                 
  917.         
  918.     End
  919.  
  920.  
  921.  
  922.     ;// --------------Actual module changes--------------
  923.     ArmorSet
  924.         Conditions      = None
  925.         Armor           = TrollArmor
  926.         DamageFX        = NormalDamageFX
  927.     End
  928.  
  929.     Body = DelayedDeathBody ModuleTag_02
  930.         MaxHealth                = CAVE_TROLL_HEALTH ;BALANCE CaveTroll Health
  931.         MaxHealthDamaged        = 250
  932.         MaxHealthReallyDamaged    = 100
  933.         ;;RecoveryTime            = 5000
  934.         DoHealthCheck            = No            ;// Don't want to get the delayed death behaviour when we die normally.
  935.         DelayedDeathTime        = 5000
  936.         CanRespawn                = No            ;// Unit can't get revived.
  937.     End
  938.     
  939.     Behavior = StancesBehavior ModuleTag_StancesBehavior
  940.         StanceTemplate = Artillery
  941.         End
  942.  
  943.     Behavior = BoredUpdate BoredModuleTagOne
  944.         ScanDelayTime    = 40000
  945.         ScanDistance    = 70    ;//default value is 300 units 
  946.         BoredFilter        = NONE +MordorMountainTroll +MordorCaveTroll +GoblinCaveTroll
  947.         SpecialPowerTemplate = SpecialAbilityMountainTrollBored
  948.     End    
  949.     
  950.     Behavior = AutoPickUpUpdate AutoPickUpForOrcsToHold
  951.         ScanDelayTime        = 0
  952.         ScanDistance        = 300000
  953.         PickUpFilter        = NONE +GoblinFighter +GoblinArcher
  954.         
  955.         RunFromButton        = Yes    ;// No natural scanning, wakes up to run exactly once when hit with a WakeAutoPickup button
  956.         RunFromButtonNumber = 3        ;// In case of multiples, this lines up with the OPTION_(ONE) field in the waking button
  957.     End
  958.  
  959.     // When created, automatically switch to rock-throwing
  960.     Behavior = DoCommandUpgrade Module_DoCommandUpgrade    
  961.         TriggeredBy = Upgrade_SwitchToRockThrowing
  962.         GetUpgradeCommandButtonName = Command_ToggleMountainTrollRockThrow
  963.     End
  964.     
  965.     Draw = W3DScriptedModelDraw DustEffects
  966.         DefaultModelConditionState
  967.           Model = None
  968.         End
  969.         IdleAnimationState
  970.         End
  971.         AnimationState =  MOVING WADING
  972.             ParticleSysBone = None FootstepSlash
  973.         End
  974.         AnimationState = MOVING ACCELERATE
  975.             ParticleSysBone = None GenericSiegeTrailDust
  976.         End
  977.         AnimationState =  MOVING ACCELERATE
  978.             ParticleSysBone = None GenericSiegeTrailDust
  979.         End
  980.         AnimationState = MOUNTED MOVING
  981.         End
  982.     End
  983.   
  984.     #include "..\..\..\includes\StunDrawModuleLarge.inc"
  985.     
  986.     
  987.     
  988.     
  989.  
  990.     ;// ***DESIGN parameters ***
  991.     
  992.     Side                        = Wild    
  993.     EditorSorting                = UNIT
  994.     
  995.     ThreatLevel                    = CAVE_TROLL_THREAT_LEVEL
  996.     ThreatBreakdown MordorCatapult_DetailedThreat
  997.         AIKindOf = CAVALRY
  998.     End
  999.     
  1000.     TransportSlotCount            = TRANSPORTSLOTCOUNT_MONSTER
  1001.     ShowHealthInSelectionDecal    = Yes
  1002.     CommandSet                    = CaveTrollCommandSet
  1003.  
  1004.     WeaponSet
  1005.         Conditions          =  None
  1006.         Weapon              =  PRIMARY        MordorCaveTrollPunch
  1007.         Weapon              =  SECONDARY    MordorCaveTrollBash
  1008.         OnlyAgainst         =  SECONDARY    STRUCTURE BLOCKING_GATE
  1009.         Weapon                =  TERTIARY        MordorCaveTrollPunch
  1010.         OnlyInCondition        =  TERTIARY        MOVING
  1011.     End
  1012.  
  1013.     WeaponSet
  1014.         Conditions          = RAMPAGE WEAPONSET_TOGGLE_1
  1015.         Weapon              = PRIMARY  MordorCaveTrollRampage
  1016.     End
  1017.  
  1018.     WeaponSet
  1019.         Conditions            = WEAPONSET_TOGGLE_1
  1020.         Weapon                = PRIMARY    TrollRockThrow
  1021.     End
  1022.  
  1023.     WeaponSet
  1024.         Conditions          = RAMPAGE
  1025.         Weapon              = PRIMARY  MordorCaveTrollRampage
  1026.     End
  1027.  
  1028.     WeaponSet
  1029.         Conditions          = RAMPAGE PASSENGER_TYPE_ONE
  1030.         Weapon              = PRIMARY  MordorCaveTrollTreeRampage
  1031.     End
  1032.  
  1033.     WeaponSet
  1034.         Conditions          = PASSENGER_TYPE_ONE 
  1035.         Weapon              = PRIMARY     MordorCaveTrollClubSwing
  1036.         Weapon                = SECONDARY      MordorCaveTrollClubSwing
  1037.         OnlyInCondition        = SECONDARY      MOVING
  1038.     End
  1039.         
  1040.     WeaponSet
  1041.         Conditions          = PASSENGER_TYPE_TWO
  1042.         Weapon                = PRIMARY  CaveTrollGoblinThrow
  1043.     End
  1044.         
  1045.     VisionRange            = VISION_STANDARD_MELEE
  1046.     ShroudClearingRange         = SHROUD_CLEAR_TROLL
  1047.     BountyValue            = MORDOR_TROLL_BOUNTY_VALUE
  1048.     DisplayName            = OBJECT:GoblinCaveTroll
  1049.     CrushableLevel        = 2                                ;// What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
  1050.     CrusherLevel        = 0                                ;// What can I crush?: 0 = small animals, 1 = infantry, 2 = trees, 3 = vehicles
  1051.     CommandPoints        = 25
  1052.  
  1053.  
  1054.     ;// *** AUDIO Parameters ***;
  1055.     VoiceAttack                = TrollVoiceAttack
  1056.     VoiceCreated            = EVA:CaveTrollCreated
  1057.     VoiceFullyCreated        = EVA:CaveTrollCreated
  1058.     VoiceMove                = TrollVoiceMove
  1059.     VoicePriority            = 19
  1060.     VoiceSelect                = TrollVoiceSelect
  1061.     VoiceGuard                = TrollVoiceMove
  1062.     
  1063.     SoundImpact                = ImpactHorse            ;TrollDie
  1064.  
  1065.     UnitSpecificSounds
  1066.         VoiceEnterUnitEvilMenTransportShip    = TrollVoiceMove
  1067.         VoiceEnterUnitMordorMumakil            = TrollVoiceMove
  1068.         VoiceEnterUnitSlaughterHouse        = TrollVoiceMove
  1069.         VoiceGarrison                        = TrollVoiceMove
  1070.         VoiceInitiateCaptureBuilding        = TrollVoiceMove
  1071.     End
  1072.  
  1073.     #include "..\..\..\includes\StandardUnitEvaEvents.inc"
  1074.  
  1075.     ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
  1076.         MaxUpdateRangeCap = 800
  1077.         AnimationSound = Sound:TrollBodyfall        Animation:MUCavTroll_SKL.MUCavTroll_DieB Frames:33
  1078.         AnimationSound = Sound:TrollBodyfall        Animation:MUCavTroll_SKL.MUCavTroll_DieC Frames:84
  1079.         AnimationSound = Sound:TrollBodyfall        Animation:MUCavTroll_SKL.MUCavTroll_LndA Frames:3 21
  1080.         AnimationSound = Sound:TrollIdleRubHeadVox    Animation:MUCavTroll_SKL.MUCavTroll_IDLK Frames:0
  1081.         AnimationSound = Sound:TrollBodyfall        Animation:MUCavTroll_SKL.MUCavTroll_RCTB Frames:3
  1082.  
  1083.         AnimationSound = Sound:TrollRoar                Animation:MUCavTroll_SKL.MUCavTroll_IDLE Frames:10 Animation:MUCavTroll_SKL.MUCavTroll_IDLG Frames:78 Animation:MUCavTroll_SKL.MUCavTroll_IDLK Frames:0 Animation:MUCavTroll_SKL.MUCavTroll_IDLM Frames:0 Animation:MUCavTroll_SKL.MUCavTroll_ATKA Frames:12 Animation:MUCavTroll_SKL.MUCavTroll_ATKC Frames:17 Animation:MUCavTroll_SKL.MUCavTroll_ATKD Frames:10 Animation:MUCavTroll_SKL.MUCavTroll_ATKE Frames:14 Animation:MUCavTroll_SKL.MUCavTroll_ATKF Frames:3 Animation:MUCavTroll_SKL.MUCavTroll_ATKG Frames:13 Animation:MUCavTroll_SKL.MUCavTroll_HITC Frames:21 Animation:MUCavTroll_SKL.MUCavTroll_HITD Frames:10 Animation:MUCavTroll_SKL.MUCavTroll_MFDA Frames:47 Animation:MUCavTroll_SKL.MUCavTroll_RCTD Frames:29 Animation:MUCavTroll_SKL.MUCavTroll_RCTE Frames:53 Animation:MUCavTroll_SKL.MUCavTroll_RPGC Frames:0 32 59 88
  1084.         AnimationSound = Sound:TrollIdleYell01            Animation:MUCavTroll_SKL.MUCavTroll_IDLF Frames:37
  1085.         AnimationSound = Sound:TrollTreeShakeYell        Animation:MUCavTroll_SKL.MUCavTroll_GRBA Frames:14  Animation:MUCavTroll_SKL.MUCavTroll_GRBB Frames:12 
  1086.         AnimationSound = Sound:TrollTreeShakeYell        Animation:MUCavTroll_SKL.MUCavTroll_GRBC Frames:26  Animation:MUCavTroll_SKL.MUCavTroll_GRBD Frames:28 
  1087.         AnimationSound = Sound:TrollFootstep            Animation:MUCavTroll_SKL.MUCavTroll_RUNA Frames:4 17  Animation:MUCavTroll_SKL.MUCavTroll_RUNB Frames:4 17  Animation:MUCavTroll_SKL.MUCavTroll_WLKA Frames:0 15  Animation:MUCavTroll_SKL.MUCavTroll_WLKB Frames:0 20  Animation:MUCavTroll_SKL.MUCavTroll_WLKD Frames:0 22 Animation:MUCavTroll_SKL.MUCavTroll_TRNL Frames:15 27 Animation:MUCavTroll_SKL.MUCavTroll_TRNR Frames:15 27 Animation:MUCavTroll_SKL.MUCavTroll_RCTD Frames:7 66 Animation:MUCavTroll_SKL.MUCavTroll_GTPA Frames:12 80 97 Animation:MUCavTroll_SKL.MUCavTroll_MFDA Frames:4 17 29 42 
  1088.         AnimationSound = Sound:TrollFootstepRampage        Animation:MUCavTroll_SKL.MUCavTroll_RPGC Frames:43 61 77 93 100 116 123 139 149
  1089.         AnimationSound = Sound:TrollTreeSwingLight        Animation:MUCavTroll_SKL.MUCavTroll_IDLE Frames:49 Animation:MUCavTroll_SKL.MUCavTroll_RPGC Frames:112 ;Animation:MUCavTroll_SKL.MUCavTroll_THPA Frames:16 Animation:MUCavTroll_SKL.MUCavTroll_MFDA Frames:2 22
  1090.         AnimationSound = Sound:TrollGrabRock            Animation:MuCavTroll_SKL.MuCavTroll_GRBB Frames:0
  1091.         AnimationSound = Sound:TrollGetupShakeHeadVox    Animation:MuCavTroll_SKL.MuCavTroll_GTPA Frames:31
  1092.         AnimationSound = Sound:ImpactTrollTreeLight        Animation:MUCavTroll_SKL.MUCavTroll_IDLE Frames:55
  1093.     End
  1094.  
  1095.     Behavior = LargeGroupAudioUpdate ModuleTag_LGAU            ;//Tie into LargeGroupAudio system
  1096.           Key = Troll
  1097.         ;UnitWeight = 2 ;// Trollsie counts as 2 infantry when computing group size
  1098.     End
  1099.  
  1100.  
  1101.     ;// *** ENGINEERING Parameters ***
  1102.     RadarPriority    = UNIT
  1103.     KindOf            = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS HEAVY_MELEE_HITTER TROLL_BUFF_NUGGET MONSTER SCORE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT NO_FREEWILL_ENTER PATH_THROUGH_INFANTRY SCARY CAN_ATTACK_WALLS ARMY_SUMMARY
  1104.     BuildCost        = MORDOR_TROLL_BUILDCOST
  1105.     BuildTime        = MORDOR_TROLL_BUILDTIME
  1106.  
  1107.      Behavior LifetimeUpdate LifetimeTag
  1108.         WaitForWakeUp    =    Yes
  1109.     End
  1110.    
  1111.     Behavior = AIUpdateInterface ModuleTag_03
  1112.         AutoAcquireEnemiesWhenIdle    = Yes ATTACK_BUILDINGS
  1113.         AILuaEventsList                = TrollFunctions
  1114.         RampageTime                    = 4470
  1115.         AttackPriority                = AttackPriority_Cavalry
  1116.     End
  1117.  
  1118.     Behavior = AutoPickUpUpdate AutoPickUpForTrees
  1119.         ScanDelayTime        = 0
  1120.         ScanDistance        = 300        ;//default value is 300 units    
  1121.         PickUpFilter        = NONE +TREE        ;//Slightly tricky since trees don't exist.  This will trigger the special stuff you have to do to grab a tree.
  1122.         
  1123.         RunFromButton        = Yes        ;// No natural scanning, wakes up to run exactly once when hit with a WakeAutoPickup button
  1124.         RunFromButtonNumber = 2            ;// In case of multiples, this lines up with the OPTION_(ONE) field in the waking button
  1125.     End
  1126.  
  1127.        Behavior = EmotionTrackerUpdate    Module_EmotionTracker
  1128.         AddEmotion            =    Terror_Base
  1129.         AddEmotion            =    Doom_Base
  1130.         AddEmotion            =   BraceForBeingCrushed_Base
  1131.         AddEmotion            =    UncontrollableFear_Base
  1132.         //    AddEmotion            =    FearIdle_Base
  1133.         //    AddEmotion            =    FearBusy_Base
  1134.         AddEmotion            =    Point_Base
  1135.         AddEmotion            =    Taunt_Base
  1136.          AddEmotion            =    CheerIdle_Base
  1137.         AddEmotion            =    CheerBusy_Base
  1138.         AddEmotion            =    HeroCheerIdle_Base
  1139.         AddEmotion            =    HeroCheerBusy_Base
  1140.         AddEmotion            =    Alert_Base
  1141.     End        
  1142.  
  1143.     LocomotorSet
  1144.         Locomotor = TrollLocomotor
  1145.         Condition = SET_NORMAL 
  1146.         Speed     = TROLL_SPEED
  1147.     End
  1148.  
  1149.     Behavior = HitReactionBehavior HitReactionBehaviorModuleTag
  1150.         HitReactionLifeTimer1 = 1500    ;// level 1 (light  damage)  hit reaction animations in frames (5 per sec)
  1151.         HitReactionLifeTimer2 = 3000    ;// level 2 (medium damage)  hit reaction animations in frames (5 per sec)
  1152.         HitReactionLifeTimer3 = 2000    ;// level 3 (heavy  damage)  hit reaction animations in frames (5 per sec)
  1153.  
  1154.         HitReactionThreshold1 = 0.0        ;// level 1 (light  damage) threshold trigger
  1155.         HitReactionThreshold2 = 50.0    ;// level 2 (medium damage) threshold trigger
  1156.         HitReactionThreshold3 = 200.0    ;// level 3 (heavy  damage) threshold trigger
  1157.     End
  1158.  
  1159.     Behavior = ClickReactionBehavior ClickBehaviorModuleTag
  1160.         ClickReactionTimer    = 600    ;// 10 seconds in ticks
  1161.         ReactionFrames1        = 15    ;// in frames (5 per sec)
  1162.         ReactionFrames2        = 7        ;// in frames (5 per sec)
  1163.         ReactionFrames3        = 7        ;// in frames (5 per sec)
  1164.         ReactionFrames4        = 15    ;// in frames (5 per sec)
  1165.         ReactionFrames5        = 18    ;// in frames (5 per sec)
  1166.     End
  1167.  
  1168.     Behavior = PhysicsBehavior ModuleTag_04
  1169.         GravityMult            = 0.0    ;//1.0
  1170.         ShockStandingTime    = 4600    ;//msec ;27800
  1171.         FirstHeight            = 0 
  1172.         SecondHeight        = 0
  1173.     End
  1174.  
  1175.     Behavior = SlowDeathBehavior ModuleTag_50
  1176.         DeathTypes            = ALL
  1177.         DestructionDelay    = 35000
  1178.         DecayBeginTime        = 3000
  1179.         SinkDelay            = 10000
  1180.         SinkRate            = 0.64                    ;// in Dist/Sec
  1181.         Sound                = INITIAL TrollDie
  1182.         ProbabilityModifier = 50
  1183.         DeathFlags            = DEATH_1                ;// Tell model which death animation to play. Sets BOTH model condition and object status bits.
  1184.     End
  1185.  
  1186.     Behavior = SlowDeathBehavior ModuleTag_51
  1187.         DeathTypes            = ALL
  1188.         DestructionDelay    = 35000
  1189.         DecayBeginTime        = 4500
  1190.         SinkDelay            = 11500
  1191.         SinkRate            = 0.64                    ;// in Dist/Sec
  1192.         Sound                = INITIAL TrollDie
  1193.         ProbabilityModifier = 50
  1194.         DeathFlags            = DEATH_2                ;// Tell model which death animation to play. Sets BOTH model condition and object status bits.
  1195.     End
  1196.  
  1197.     Behavior = SquishCollide ModuleTag_06
  1198.         ;//nothing
  1199.     End
  1200.  
  1201.     Behavior = GrabPassengerSpecialPower ModuleTag_07                      
  1202.         SpecialPowerTemplate        = SpecialAbilityGrabPassenger
  1203.         UpdateModuleStartsAttack    = Yes
  1204.         AllowTree                    = Yes
  1205.         InitiateFX                    = FX_TrollGrabInitiate   ;// Evil hack so we can different voices for grab tree or grab rock
  1206.     End
  1207.   
  1208.     Behavior = SpecialAbilityUpdate ModuleTag_08                
  1209.         SpecialPowerTemplate    = SpecialAbilityGrabPassenger
  1210.         StartAbilityRange       = 8.0
  1211.  
  1212.         UnpackTime              = 300    ;// This does not match the animation, but looks good.
  1213.         PreparationTime         = 1        ;// touching it to grabbing it
  1214.         PersistentPrepTime      = 630    ;// grabbing it to whacking it on the ground (if shrubbery)
  1215.         PackTime                = 1000    ;// whacking it to holding it nice
  1216.         GrabPassengerAnimAndDuration   = AnimState:EATING AnimTime:3000 TriggerTime:1400
  1217.         AwardXPForTriggering    = 0
  1218.         
  1219.         RejectedConditions        = WEAPON_TOGGLE        ; Cannot pick things up when already holding a rock to throw
  1220.     End
  1221.   
  1222.      Behavior = SpecialPowerModule ModuleTag_MordorMtTrollBoredAbility                     
  1223.         SpecialPowerTemplate        = SpecialAbilityMountainTrollBored
  1224.         UpdateModuleStartsAttack    = Yes
  1225.     End
  1226.   
  1227.     Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_MordorMtTrollBored   
  1228.         SpecialPowerTemplate    = SpecialAbilityMountainTrollBored
  1229.         UnpackTime              = 800                                ;// hit the guy
  1230.         PackTime                = 1200
  1231.         AwardXPForTriggering    = 0
  1232.         StartAbilityRange        = 12.0
  1233.         SpecialWeapon            = MordorMtTrollBored
  1234.         WhichSpecialWeapon        = 1                                    ; Sets SPECIAL_WEAPON_ONE
  1235.         RejectedConditions        = WEAPON_TOGGLE        ; Can't clock your buddy troll when holding a rock because there's no anim for it
  1236.     End
  1237.  
  1238.     Behavior = TransportContain ModuleTag_09
  1239.         ObjectStatusOfContained = UNSELECTABLE
  1240.         PassengerFilter            = ANY +CLUB +ORC +INFANTRY
  1241.         ManualPickUpFilter        = ANY +CLUB -ORC -INFANTRY                    ; we do not want the user to be able to manually pick up an orc with a troll.
  1242.         Slots                    = 1
  1243.         ShowPips                = No
  1244.         AllowEnemiesInside        = Yes
  1245.         AllowNeutralInside        = Yes
  1246.         AllowAlliesInside        = Yes
  1247.         DamagePercentToUnits    = 0%
  1248.         TypeOneForWeaponSet        = CLUB
  1249.         TypeOneForWeaponState    = CLUB                                ; sets WEAPONSTATE_ONE
  1250.         ForceOrientationContainer    = No
  1251.  
  1252.         TypeOneForWeaponSet        = CLUB
  1253.         TypeTwoForWeaponSet        = INFANTRY
  1254.  
  1255.         PassengerBonePrefix = PassengerBone:TRUNK01        KindOf:CLUB
  1256.         PassengerBonePrefix = PassengerBone:TRUNK01        KindOf:INFANTRY
  1257.  
  1258.         EjectPassengersOnDeath = No
  1259.     End
  1260.  
  1261.     //Toggle CommandSet Based on Weaponset condition flags
  1262.     Behavior = MonitorConditionUpdate ModuleTag_CommandSetSwapper
  1263.         ModelConditionFlags            = ATTACKING_POSITION
  1264.         ModelConditionCommandSet    = CaveTrollRockCommandSetStopBombard
  1265.         WeaponSetFlags                = WEAPONSET_TOGGLE_1
  1266.         WeaponToggleCommandSet        = CaveTrollRockCommandSet
  1267.     End
  1268.     
  1269.     ;///////////////////
  1270.     ; AISpecialPowers
  1271.     ;///////////////////
  1272.     
  1273.     Behavior = AISpecialPowerUpdate ToggleSiegeModeAI
  1274.         CommandButtonName = Command_ToggleMountainTrollRockThrow
  1275.         SpecialPowerAIType = AI_SPECIAL_POWER_TOGGLE_SIEGE
  1276.     End
  1277.  
  1278.     Geometry            = CYLINDER
  1279.     GeometryMajorRadius    = 17.6
  1280.     GeometryHeight        = 32.0
  1281.     GeometryIsSmall        = No
  1282.     Shadow                = SHADOW_VOLUME_NON_SELF_2                    ;// volumetric shadow that doesn't cast onto all objects using SHADOW_VOLUME_NON_SELF_2
  1283.  
  1284.  
  1285.      // *** AUTO RESOLVE DATA *** 
  1286.      AutoResolveUnitType = AutoResolveUnit_Cavalry
  1287.      AutoResolveCombatChain = AutoResolve_CavalryCombatChain
  1288.  
  1289.      AutoResolveBody = AutoResolve_WildCaveTrollBody
  1290.  
  1291.      AutoResolveArmor
  1292.          Armor = AutoResolve_WildCaveTrollArmor
  1293.      End
  1294.  
  1295.      AutoResolveWeapon
  1296.          Weapon = AutoResolve_WildCaveTrollWeapon
  1297.      End
  1298. End
  1299.  
  1300.  
  1301. ;-----------------------------------------------------------------------------------------------------------------------
  1302. ;
  1303. ;    GoblinCaveTroll_FromTrollLair the troll that gets built from a defected troll lair.
  1304. ;
  1305. ;-----------------------------------------------------------------------------------------------------------------------
  1306. ChildObject GoblinCaveTroll_FromTrollLair GoblinCaveTroll
  1307.  
  1308.     ;// They're free!
  1309.     
  1310.     
  1311.     BuildCost        = MORDOR_TROLL_BUILDCOST
  1312.         BuildTime        = MORDOR_TROLL_BUILDTIME
  1313.     
  1314. End
  1315.  
  1316.  
  1317. ;------------------------------------------------------------------------------
  1318. ;
  1319. ;    These child objects are used in the cave troll lair.
  1320. ;
  1321. ChildObject CaveTroll_Slaved GoblinCaveTroll
  1322.  
  1323.       EvaEnemyObjectSightedEvent = CaveTrollCreepSighted ; Special event for cave trolls showing up. Helps distinguish the real enemies from random creeps
  1324.       EvaEnemyObjectSightedAfterRespawnEvent = CaveTrollCreepSighted ; Event to run after the Cave Troll Lair is respawned. WARNING: This INI field only works for "SlavedUpdate.UseSlaverAsControlForEvaObjectSightedEvents = Yes" units
  1325.  
  1326.     ; Should be the same as GoblinCaveTroll except with CREEP.
  1327.     KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS TROLL_BUFF_NUGGET MONSTER CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT NO_FREEWILL_ENTER PATH_THROUGH_INFANTRY SCARY CAN_ATTACK_WALLS CREEP SCORE
  1328.  
  1329.     VisionRange = CREEP_VISION
  1330.     DisplayName = OBJECT:GenericCaveTroll
  1331.     Behavior = SlavedUpdate ModuleTag_Slave
  1332.         GuardMaxRange        = 250
  1333.         GuardWanderRange    = 80
  1334.         UseSlaverAsControlForEvaObjectSightedEvents = Yes
  1335.     End
  1336.  
  1337.     // Different AIUpdateInterface so it can have different AILuaEventsList
  1338.     Behavior = AIUpdateInterface ModuleTag_03
  1339.         AutoAcquireEnemiesWhenIdle    = Yes ATTACK_BUILDINGS
  1340.         AILuaEventsList                = CreepTrollFunctions        // special version of TrollFunctions that does not start with a rock
  1341.         RampageTime                    = 4470
  1342.         AttackPriority                = AttackPriority_Cavalry
  1343.     End
  1344.  
  1345. End
  1346.  
  1347. ChildObject CaveTroll_Huge MordorMountainTroll
  1348.  
  1349.     Scale 1.75
  1350.  
  1351. End
  1352.  
  1353.