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

  1. ;------------------------------------------------------------------------------
  2. ;------------------------------------------------------------------------------
  3. ; Dwarven Men of Dale
  4. ;------------------------------------------------------------------------------
  5. ;------------------------------------------------------------------------------
  6.  
  7.  
  8. ; aka Rohan Archer Yeoman
  9. Object DwarvenMenOfDale
  10.     ; *** ART Parameters ***
  11.     UpgradeCameo1                        =    Upgrade_RohanFireArrows
  12.     SelectPortrait                        =    UPDwarven_MenofDale
  13.     ButtonImage            =    WOR_MenofDale
  14.     
  15.     Draw    =    W3DHordeModelDraw ModuleTag_01
  16.  
  17.         OkToChangeModelColor = Yes
  18.       
  19.         ;    ---Test entry for the time of day texture swap test---
  20.         ;    TimeOfDayTexture = twwater01.tga AFTERNOON 0 ROHANWARRIOR01
  21.             
  22.         ;    RandomTexture = guarcher.tga 0
  23.         ;    RandomTexture = twwater01.tga 0
  24.         ;    RandomTexture = rbgen01.tga 0
  25.  
  26.         StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD
  27.  
  28.         ; specify options for static LODs
  29.         LodOptions    = LOW
  30.             AllowMultipleModels        =    ALLOW_MULTIPLE_MODELS_LOW
  31.             MaxRandomTextures        =    MAX_RANDOM_TEXTURES_LOW
  32.             MaxRandomAnimations        =    MAX_RANDOM_ANIMATIONS_LOW
  33.             MaxAnimFrameDelta        =    MAX_ANIM_FRAME_DELTA_LOW
  34.         End
  35.         
  36.         LodOptions    = MEDIUM
  37.             AllowMultipleModels        =    ALLOW_MULTIPLE_MODELS_MED
  38.             MaxRandomTextures        =    MAX_RANDOM_TEXTURES_MED
  39.             MaxRandomAnimations        =    MAX_RANDOM_ANIMATIONS_MED
  40.             MaxAnimFrameDelta        =    MAX_ANIM_FRAME_DELTA_MED
  41.         End
  42.         
  43.         LodOptions    = HIGH
  44.             AllowMultipleModels        =    ALLOW_MULTIPLE_MODELS_HIGH
  45.             MaxRandomTextures        =    MAX_RANDOM_TEXTURES_HIGH
  46.             MaxRandomAnimations        =    MAX_RANDOM_ANIMATIONS_HIGH
  47.             MaxAnimFrameDelta        =    MAX_ANIM_FRAME_DELTA_HIGH
  48.         End
  49.  
  50.         ParticlesAttachedToAnimatedBones = yes
  51.  
  52. ; --------- With Bow ------------
  53.         DefaultModelConditionState
  54.             Model                        =    RUArcher_SKN ;DUMenDale_SKN
  55.             Skeleton                    =   GUArcher_SKL
  56.             Texture                        =    DUMenDale.tga RUArcher.tga
  57.             WeaponLaunchBone            =    PRIMARY ARROW
  58.             WeaponLaunchBone            =    SECONDARY ARROWNOCK    ; when upgraded to flaming arrow
  59.             WeaponLaunchBone            =    QUINARY ARROW
  60.         End
  61.         
  62. ; --------- With Bow Upgrade  ------------
  63.  
  64.         ModelConditionState WEAPONSET_PLAYER_UPGRADE
  65.             Model                        =    RUArcher_SKN ;DUMenDale_SKN
  66.             Skeleton                    =   GUArcher_SKL
  67.             Texture                        =    DUMenDale.tga RUArcher.tga
  68.             WeaponLaunchBone            =    PRIMARY ARROW
  69.             WeaponLaunchBone            =    SECONDARY ARROWNOCK    ; when upgraded to flaming arrow
  70.             WeaponLaunchBone            =    QUINARY ARROW
  71. ;            ParticleSysBone                =   FireArowTip arrowFire FollowBone:Yes
  72. ;            ParticleSysBone                =   FireArowTip arrowFire FollowBone:Yes
  73.         End
  74.         
  75. ;----------- Default Idle animations -------
  76.         IdleAnimationState
  77.             StateName                    =   STATE_Idle
  78.             Animation = IdleA
  79.                 AnimationName            =    GUArcher_IDLA 
  80.                 AnimationPriority        =    6
  81.                 AnimationSpeedFactorRange = 0.7 1.3
  82.             End
  83.             ;*** Repeat IDLA because animation priorities will not choose same animation twice so it can alternate between first two mostly.
  84.             Animation = IdleA    
  85.                 AnimationName            =    GUArcher_IDLA 
  86.                 AnimationPriority        =    6
  87.                 AnimationSpeedFactorRange = 0.7 1.3
  88.             End
  89.             Animation = IdleH
  90.                 AnimationName            =    GUArcher_IDLH
  91.                 AnimationPriority        =    1
  92.                 AnimationSpeedFactorRange = 0.7 1.3
  93.                 AnimationBlendTime        = 8
  94.             End
  95.             Animation = IdleI
  96.                 AnimationName            =    GUArcher_IDLI
  97.                 AnimationPriority        =    1
  98.                 AnimationSpeedFactorRange = 0.7 1.3
  99.                 AnimationBlendTime        = 8
  100.             End
  101.             Animation = IdleJ
  102.                 AnimationName            =    GUArcher_IDLJ
  103.                 AnimationPriority        =    1
  104.                 AnimationSpeedFactorRange = 0.7 1.3
  105.                 AnimationBlendTime        = 8
  106.             End            
  107.             
  108.             BeginScript
  109.                   Prev = CurDrawablePrevAnimationState()
  110.                   if Prev == "STATE_Selected" then CurDrawableSetTransitionAnimState("TRANS_Selected_To_Idle") end
  111.               EndScript
  112.             
  113.         End
  114.         
  115. ;----------- Flying through air -------
  116.         AnimationState                        = PASSENGER
  117.             Animation                        = FLLA
  118.                 AnimationName                = GUArcher_FLLA
  119.                 AnimationMode                = LOOP
  120.             End
  121.         End
  122.         
  123.         
  124.         AnimationState        = THROWN_PROJECTILE
  125.             Animation           = FLYA
  126.                 AnimationName     = GUArcher_FLYA
  127.                 AnimationMode     = LOOP
  128.             End
  129.         End
  130.         
  131.         AnimationState                        = FREEFALL
  132.             Animation                        = Falling
  133.                 AnimationName                = GUArcher_FLYA
  134.                 AnimationMode                = LOOP
  135.                 AnimationBlendTime            = 10
  136.                 AnimationSpeedFactorRange    = 0.35    0.35
  137.             End
  138.         End
  139.         
  140.         AnimationState                    =    STUNNED_FLAILING 
  141.             Animation                    =    StunFlail
  142.                 AnimationName            =    GUArcher_FLLA 
  143.                 AnimationMode            =    LOOP
  144.             End
  145.             Flags                        =    RANDOMSTART
  146.         End
  147.         
  148.         
  149.  
  150. ;----------- Dying -------
  151.         AnimationState                    = DYING DEATH_1
  152.             Animation
  153.                 AnimationName            = GUArcher_IDLA 
  154.                 AnimationMode            = ONCE
  155.                 AnimationBlendTime        = 10
  156.             End
  157.         End
  158.  
  159.         AnimationState                    = DYING BURNINGDEATH
  160.             Animation
  161.                 AnimationName            = GUArcher_DIEA
  162.                 AnimationMode            = ONCE
  163.                 AnimationBlendTime        = 10
  164.             End
  165.             Animation
  166.                 AnimationName            = GUArcher_DIEB
  167.                 AnimationMode            = ONCE
  168.                 AnimationBlendTime        = 10
  169.             End
  170.             Animation
  171.                 AnimationName            = GUArcher_DIED
  172.                 AnimationMode            = ONCE
  173.                 AnimationBlendTime        = 10
  174.             End
  175.         End
  176.  
  177.         AnimationState                    =    DYING SPLATTED
  178.             Animation                    =    Fire
  179.                 AnimationName            =    GUArcher_LNDA 
  180.                 AnimationMode            =    ONCE
  181.                 AnimationSpeedFactorRange = 0.7 1.3
  182.             End
  183.             EnteringStateFX = FX_SoldierHitGround
  184.         End
  185.  
  186.         AnimationState                    =    DYING AFLAME
  187.             Animation                    =    Fire
  188.                 AnimationName            =    GUArcher_MFDA 
  189.                 AnimationSpeedFactorRange = 0.9 1.1
  190.             End
  191.             Animation                    =    Fire
  192.                 AnimationName            =    GUArcher_MFDB 
  193.                 AnimationSpeedFactorRange = 0.9 1.1
  194.             End
  195.         End
  196.  
  197.         AnimationState                    =    DYING
  198.             Animation                    =    Die2
  199.                 AnimationName            =    GUArcher_DIEB 
  200.                 AnimationMode            =    ONCE
  201.                 AnimationSpeedFactorRange = 0.7 1.3
  202.             End
  203.             Animation                    =    Die3
  204.                 AnimationName            =    GUArcher_DIED 
  205.                 AnimationMode            =    ONCE
  206.                 AnimationSpeedFactorRange = 0.7 1.3
  207.             End
  208.         End
  209.  
  210.         AnimationState                        = BURNINGDEATH
  211.             Animation
  212.                 AnimationName                = GUArcher_MFDA
  213.                 AnimationMode                = LOOP
  214.                 Distance                    = 60
  215.             End
  216.         End
  217.  
  218.         AnimationState                        = PARALYZED
  219.             Animation
  220.                 AnimationName                = GUArcher_IDLA
  221.                 AnimationMode                = LOOP
  222.             End
  223.         End
  224.  
  225. ;------ Stunned anims -----------
  226.         AnimationState                    =    STUNNED_STANDING_UP 
  227.             Animation                    =    GTPA
  228.                 AnimationName            =    GUArcher_GTPA
  229.                 AnimationMode            =    ONCE
  230.                 AnimationSpeedFactorRange = 1.5 1.5
  231.             End
  232.         End
  233.  
  234.         
  235.  
  236.         AnimationState                    =    STUNNED 
  237.             Animation                    =    StunFlail
  238.                 AnimationName            =    GUArcher_LNDA 
  239.                 AnimationMode            =    ONCE
  240.             End
  241.             EnteringStateFX = FX_SoldierHitGround
  242.         End
  243.  
  244. ;------- Close range melee fighting ------------
  245.         AnimationState                    =    FIRING_OR_PREATTACK_A WEAPONSTATE_CLOSE_RANGE
  246.             Animation                    =    ATKD
  247.                 AnimationName            =    GUArcher_ATKD
  248.                 AnimationMode            =    ONCE
  249.                 UseWeaponTiming            =    Yes
  250.             End
  251.         End
  252.  
  253. ;------- New Style Archery --------------------------------------------
  254.         AnimationState                    =    PREATTACK_E
  255.             StateName                    =    STATE_Firing
  256.             Animation                    =    ReadyToDrawn
  257.                 AnimationName            =    GUArcher_ATKF1
  258.                 AnimationMode            =    ONCE
  259.                 AnimationBlendTime        =    10
  260.             End
  261.         End
  262.  
  263.         AnimationState                    =    PREATTACK_A 
  264.             StateName                    =    STATE_Firing
  265.             Animation                    =    ReadyToDrawn
  266.                 AnimationName            =    GUArcher_ATKF1
  267.                 AnimationMode            =    ONCE
  268. ;                UseWeaponTiming            =    NoNONONOO!!!    ; UseWeaponTiming plus random weapon field equals desync.  Leaving as warning
  269.                 AnimationBlendTime        =    10
  270.             End
  271.         End
  272.  
  273.         AnimationState                    =    FIRING_OR_RELOADING_E
  274.             StateName                    =    STATE_Firing
  275.             Animation                    =    LooseReloadDraw
  276.                 AnimationName            =    GUArcher_ATKF2
  277.                 AnimationMode            =    ONCE
  278.                 AnimationSpeedFactorRange = 1.1 1.1
  279.                 AnimationBlendTime        =    0
  280.             End
  281.         End
  282.  
  283.         AnimationState                    =    FIRING_OR_RELOADING_A 
  284.             StateName                    =    STATE_Firing
  285.             Animation                    =    LooseReloadDraw
  286.                 AnimationName            =    GUArcher_ATKF2
  287.                 AnimationMode            =    ONCE
  288. ;                UseWeaponTiming            =    NoNONONOO!!!    ; Left in as reminder why not to use: UseWeaponTiming does not work for archers. Do not attempt to use this!
  289.                 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
  290.                 AnimationBlendTime        =    0                ; Blend time needs to be zero or else the arrow subobject lingers length of blend.
  291.             End
  292.         End
  293.         
  294.         AnimationState                    =    PREATTACK_C
  295.             StateName                    =    STATE_Firing
  296.             Animation                    =    ReadyToDrawn
  297.                 AnimationName            =    GUArcher_ATKF1
  298.                 AnimationMode            =    ONCE
  299. ;                UseWeaponTiming            =    NoNONONOO!!!    ; UseWeaponTiming plus random weapon field equals desync.  Leaving as warning
  300.                 AnimationBlendTime        =    10
  301.             End
  302.         End
  303.  
  304.         AnimationState                    =    FIRING_OR_RELOADING_C
  305.             StateName                    =    STATE_Firing
  306.             Animation                    =    LooseReloadDraw
  307.                 AnimationName            =    GUArcher_ATKF2
  308.                 AnimationMode            =    ONCE
  309. ;                UseWeaponTiming            =    NoNONONOO!!!    ; Left in as reminder why not to use: UseWeaponTiming does not work for archers. Do not attempt to use this!
  310.                 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
  311.                 AnimationBlendTime        =    0                ; Blend time needs to be zero or else the arrow subobject lingers length of blend.
  312.             End
  313.         End
  314.         
  315. ;---------- Black Arrows ----------------------
  316.         AnimationState = UNPACKING SPECIAL_WEAPON_ONE
  317.             Animation
  318.                 AnimationName    = GUArcher_ATKF1
  319.                 AnimationMode    = ONCE
  320.                 UseWeaponTiming    = Yes
  321.             End
  322.         End
  323.  
  324.     
  325. ;;========= TERROR
  326.         AnimationState                    = MOVING EMOTION_TERROR EMOTION_LOOK_TO_SKY
  327.             Animation                    = TerrorFromTheSky
  328.                 AnimationName            = GUArcher_RUNC
  329.                 AnimationMode            = LOOP
  330.             End
  331.         End
  332.  
  333. ;;========= BACKING UP
  334.         AnimationState                =    MOVING BACKING_UP
  335.             Animation                =    BackingUp
  336.                 AnimationName        =    GUArcher_BAKA
  337.                 AnimationMode        =    LOOP
  338.             End
  339.             Flags                    =    RANDOMSTART
  340.         End
  341.  
  342. ;;========= MOVING
  343.  
  344.         AnimationState                    =    MOVING ATTACKING
  345.             Animation                    =    AMove
  346.                 AnimationName            =    GUArcher_RUNB 
  347.                 AnimationMode            =    LOOP
  348.                 Distance                =    28
  349.             End
  350.             Flags                        =    RANDOMSTART
  351.         End
  352.         
  353.         AnimationState                    =    MOVING WANDER
  354.             Animation                    =    Wander1
  355.                 AnimationName            =    GUArcher_WLKA 
  356.             End
  357.             Animation                    =    Wander2
  358.                 AnimationName            =    GUArcher_WLKB ;20
  359.             End
  360.             Flags                        =    RANDOMSTART
  361.         End
  362.  
  363.         AnimationState                    =    MOVING
  364.             Animation                    =    Move
  365.                 AnimationName            =    GUArcher_RUNA 
  366.                 AnimationMode            =    LOOP
  367.                 Distance                =    28
  368.             End
  369.             Flags                        =    RANDOMSTART
  370.         End
  371.  
  372. ;-------- Persistant firing (keep bow drawn ) ------------
  373.         AnimationState                    = CONTINUOUS_FIRE_MEAN
  374.             StateName                    =    STATE_Firing
  375.             Animation                    =    HangFrameWhileCoasting
  376.                 AnimationName            =    GUArcher_ATKF2
  377.                 AnimationMode            =    MANUAL
  378.             End
  379.         End
  380.         
  381.         AnimationState                        = CONTINUOUS_FIRE_SLOW
  382.             StateName                        = STATE_Idle
  383.             Animation                        = PutAwayArrow
  384.                 AnimationName                = GUArcher_ATKF3
  385.                 AnimationMode                = ONCE
  386.             End
  387.         End
  388.         
  389. ;------------ HIT REACTION -----------------------------------------------------
  390.         AnimationState = HIT_REACTION
  391.             Animation = Hit_Level_1_a
  392.                 AnimationName = GUArcher_HITA
  393.                 AnimationMode = ONCE
  394.             End
  395.         End
  396.         
  397. ;--------------------- EMOTIONS -----------------------------
  398.  
  399. ;;======= TERROR
  400.  
  401.         AnimationState                    = EMOTION_AFRAID
  402.             Animation                    = FERA
  403.                 AnimationName            = GUArcher_FERA
  404.                 AnimationMode            = LOOP
  405.             End
  406.             Animation                    = FERB
  407.                 AnimationName            = GUArcher_FERB
  408.                 AnimationMode            = LOOP
  409.             End
  410.             Animation                    = FERC
  411.                 AnimationName            = GUArcher_FERC
  412.                 AnimationMode            = LOOP
  413.             End
  414.             Animation                    = FERD
  415.                 AnimationName            = GUArcher_FERD
  416.                 AnimationMode            = LOOP
  417.             End
  418.         End
  419.         
  420. ;;======= CELEBRATING
  421.  
  422.         AnimationState                    = EMOTION_CELEBRATING
  423.             Animation                    = CHRB
  424.                 AnimationName            = GUArcher_CHRB
  425.                 AnimationMode            = Once
  426.                 AnimationBlendTime        = 15
  427.                 AnimationPriority        = 2
  428.             End
  429.             Animation                    = SLTA
  430.                 AnimationName            = GUArcher_SLTA
  431.                 AnimationMode            = Once
  432.                 AnimationBlendTime        = 15
  433.                 AnimationPriority        = 2
  434.             End
  435.             Animation                    = CHRA
  436.                 AnimationName            = GUArcher_CHRA
  437.                 AnimationMode            = Once
  438.                 AnimationBlendTime        = 15        
  439.                 AnimationPriority        = 1;Use least often of cheers (Eugene)
  440.             End
  441.             Flags                        =    RESTART_ANIM_WHEN_COMPLETE
  442.         End
  443.         
  444. ;;======== TAUNTING
  445.  
  446.         AnimationState                    = EMOTION_TAUNTING
  447.             Animation                    = Taunting2
  448.                 AnimationName            = GUArcher_IDLE
  449.                 AnimationMode            = ONCE
  450.                 AnimationBlendTime        = 15
  451.             End
  452.             Animation                    = Taunting3
  453.                 AnimationName            = GUArcher_IDLF
  454.                 AnimationMode            = ONCE
  455.                 AnimationBlendTime        = 15
  456.             End
  457.             Animation                    = Taunting4
  458.                 AnimationName            = GUArcher_IDLG
  459.                 AnimationMode            = ONCE
  460.                 AnimationBlendTime        = 15
  461.             End
  462.  
  463.             Flags                        = RESTART_ANIM_WHEN_COMPLETE
  464.         End
  465.  
  466. ;;======== POINTING
  467.  
  468.         AnimationState                        = EMOTION_POINTING
  469.             ShareAnimation                    = Yes
  470.             Animation                        = pointing
  471.                 AnimationName                = GUArcher_PNTA
  472.                 AnimationPriority            = 2
  473.                 AnimationSpeedFactorRange    = 0.9 1.1
  474.                 AnimationMode                = LOOP
  475.             End
  476.         End
  477.         
  478.  
  479. ;;======== ALERT
  480.         
  481.         AnimationState                    = EMOTION_ALERT
  482.             Animation                    = Ready
  483.                 AnimationName            = GUArcher_IDLA
  484.                 AnimationMode            = LOOP
  485.                 AnimationPriority        = 3
  486.                 AnimationBlendTime        = 15
  487.             End
  488.             Animation                    = Ready
  489.                 AnimationName            = GUArcher_IDLA
  490.                 AnimationMode            = LOOP
  491.                 AnimationPriority        = 3
  492.                 AnimationBlendTime        = 15
  493.             End
  494.             Animation                    = Point
  495.                 AnimationName            = GUArcher_PNTA
  496.                 AnimationMode            = LOOP
  497.                 AnimationPriority        = 1
  498.                 AnimationBlendTime        = 15
  499.             End
  500.         End
  501.  
  502. ; Turn off fire arrow visuals -- will be redone like Peasant drafting.
  503. ;;----------------- FIRE ARROW UPGRADE --------------------------------------------
  504.         AnimationState        =  USER_4 ;Fire arrow upgrade
  505.             Animation = IdleB
  506.                 AnimationName            =    GUArcher_IDLB 
  507.                 AnimationPriority        =    2 ;10
  508.                 AnimationSpeedFactorRange = 0.7 1.3
  509.             End
  510.             Animation = IdleC
  511.                 AnimationName            =    GUArcher_IDLC
  512.                 AnimationPriority        =    1 ;5
  513.                 AnimationSpeedFactorRange = 0.7 1.3
  514.             End
  515.             Animation = IdleD
  516.                 AnimationName            =    GUArcher_IDLD
  517.                 AnimationPriority        =    1 ;5
  518.                 AnimationSpeedFactorRange = 0.7 1.3
  519.             End
  520.             BeginScript
  521.                 CurDrawableShowSubObject("ArrowNock")
  522.                 CurDrawableShowSubObject("FireArowTip")
  523.             EndScript
  524.             StateName           = Bow
  525.         End
  526.  
  527.  
  528.         AnimationState                    = RAISING_FLAG
  529.             Animation                    = CHRB
  530.                 AnimationName            = GUArcher_CHRB
  531.                 AnimationMode            = Once
  532.                 AnimationSpeedFactorRange = 0.9 1.1
  533.             End
  534.             Animation                    = SLTA
  535.                 AnimationName            = GUArcher_SLTA
  536.                 AnimationMode            = Once
  537.                 AnimationSpeedFactorRange = 0.9 1.1
  538.             End
  539.             Animation                    = CHRA
  540.                 AnimationName            = GUArcher_CHRA
  541.                 AnimationMode            = Once
  542.                 AnimationSpeedFactorRange = 0.9 1.1
  543.             End
  544.             Flags                        =    RESTART_ANIM_WHEN_COMPLETE
  545.         End
  546.         
  547. ;;----------------- SELECTED --------------------------------------------
  548.         AnimationState                    =    SELECTED
  549.             StateName                    =    STATE_Selected
  550.             Animation                    =    ATNB
  551.                 AnimationName            =    GUArcher_ATNB
  552.                 AnimationMode            =    LOOP
  553.                 AnimationSpeedFactorRange = 0.9 1.1
  554.             End
  555.             Animation                    =    IDLA
  556.                 AnimationName            =    GUArcher_IDLA 
  557.                 AnimationPriority        =    10
  558.                 AnimationSpeedFactorRange = 0.7 1.3
  559.             End
  560.  
  561.             BeginScript
  562.                 Prev = CurDrawablePrevAnimationState()
  563.                 if Prev == "STATE_Idle" 
  564.                 then 
  565.                     CurDrawableSetTransitionAnimState("TRANS_Idle_to_Selected") 
  566.                 end
  567.                 if CurDrawableModelcondition("ATTACKING")
  568.                 then
  569.                     return "IDLA"
  570.                 else
  571.                     return "ATNB"
  572.                 end
  573.             EndScript
  574.         End
  575.         
  576.     
  577. ;;----------------- Transitions ------------------------------------------------------
  578.         TransitionState                    =    TRANS_Idle_to_Selected
  579.             Animation                    =    ATNA
  580.                 AnimationName            =    GUArcher_ATNA
  581.                 AnimationMode            =    ONCE
  582.                 AnimationSpeedFactorRange = 0.8 1.2
  583.             End
  584.         End
  585.         TransitionState                    =    TRANS_Selected_To_Idle
  586.             Animation                    =    ATNC
  587.                 AnimationName            =    GUArcher_ATNC
  588.                 AnimationMode            =    ONCE
  589.                 AnimationSpeedFactorRange = 1.0 2.0 ;Kind of a slow animation
  590.             End
  591.         End
  592.  
  593.     End
  594.  
  595.     #include "..\..\..\includes\StunDrawModuleSmall.inc"
  596.  
  597.     ; ***DESIGN parameters ***
  598.     Side = Dwarves
  599.     EditorSorting = UNIT
  600.     ThreatLevel = 1.0
  601.     ThingClass = HORDE_UNIT
  602.     CommandPoints = 6
  603.     
  604.     CommandSet = DwarvenMenOfDaleCommandSet
  605.  
  606.     TransportSlotCount = TRANSPORTSLOTCOUNT_UNIT
  607.     WeaponSet
  608.         Conditions = None 
  609.         Weapon = PRIMARY    DwarvenArcherBow
  610.         Weapon = TERTIARY   DwarvenArcherBowBombard
  611.         Weapon = QUINARY    DwarvenMenOfDaleBlackArrows
  612.         AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
  613.         AutoChooseSources = QUINARY FROM_PLAYER FROM_SCRIPT ; not from ai
  614.     End
  615.     WeaponSet
  616.         Conditions = CLOSE_RANGE CONTESTING_BUILDING
  617.         Weapon = PRIMARY    DwarvenArcherBow
  618.           ;Weapon = SECONDARY   GondorArcherBowMelee
  619.         Weapon = TERTIARY   DwarvenArcherBowBombard
  620.           ;OnlyAgainst = PRIMARY STRUCTURE
  621.     End
  622.     
  623.     ArmorSet
  624.         Conditions      = None
  625.         Armor           = ArcherArmor
  626.         DamageFX        = NormalDamageFX
  627.     End
  628.     
  629.     ArmorSet
  630.         Conditions        = PLAYER_UPGRADE
  631.         Armor            = ArcherHeavyArmor
  632.         DamageFX        = NormalDamageFX
  633.     End
  634.     
  635.     BountyValue = ROHAN_YEOMAN_BOUNTY_VALUE
  636.  
  637.     VisionRange = ROHAN_YEOMAN_VISION_RANGE
  638.     
  639.     VisionSide = 35%
  640.     VisionRear = 25%
  641.     VisionBonusPercentPerFoot = 2.0%
  642.     MaxVisionBonusPercent = 300%
  643.     VisionBonusTestRadius = 200
  644.         
  645.     ShroudClearingRange = SHROUD_CLEAR_STANDARD            
  646.  
  647.     DisplayName = OBJECT:DwarvenMenOfDale
  648.     CrushableLevel = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
  649.     CrushRevengeWeapon = RangedInfantryCrushRevenge
  650.     
  651.  
  652.     ; *** AUDIO Parameters ***;
  653.  
  654.     VoiceAttack                                = MenOfDaleVoiceAttack
  655.     VoiceAttackCharge                        = MenOfDaleVoiceAttackCharge
  656.     VoiceAttackMachine                        = MenOfDaleVoiceAttack
  657.     VoiceAttackStructure                    = MenOfDaleVoiceAttackBuilding
  658.     VoiceCreated                            = MenOfDaleVoiceSalute
  659.     VoiceFullyCreated                         = MenOfDaleVoiceSalute
  660.     VoiceGuard                                = MenOfDaleVoiceMove
  661.     VoiceMove                                = MenOfDaleVoiceMove
  662.     VoiceMoveToCamp                            = MenOfDaleVoiceMoveCamp
  663.     VoiceMoveToHigherGround                    = MenOfDaleVoiceMoveHighGround
  664.     VoiceMoveWhileAttacking                    = MenOfDaleVoiceDisengage
  665.     VoicePriority                            = 45
  666.     VoiceRetreatToCastle                    = MenOfDaleVoiceRetreat        
  667.     VoiceSelect                                = MenOfDaleVoiceSelectMS
  668.     VoiceSelectBattle                         = MenOfDaleVoiceSelectBattle            
  669.  
  670.     MinZIncreaseForVoiceMoveToHigherGround    = 45
  671.  
  672.     VoiceEnterStateAttack                    = MenOfDaleVoiceEnterStateAttack
  673.     VoiceEnterStateAttackCharge                = MenOfDaleVoiceEnterStateAttackCharge
  674.     VoiceEnterStateAttackMachine            = MenOfDaleVoiceEnterStateAttackBuilding
  675.     VoiceEnterStateAttackStructure            = MenOfDaleVoiceEnterStateAttackBuilding
  676.     VoiceEnterStateMove                        = MenOfDaleVoiceEnterStateMove
  677.     VoiceEnterStateMoveToCamp                = MenOfDaleVoiceEnterStateMoveCamp
  678.     VoiceEnterStateMoveToHigherGround        = MenOfDaleVoiceEnterStateMoveHighGround
  679.     VoiceEnterStateMoveWhileAttacking        = MenOfDaleVoiceEnterStateDisengage
  680.     VoiceEnterStateRetreatToCastle            = MenOfDaleVoiceEnterStateRetreat
  681.  
  682.     SoundImpact                                = ImpactHorse
  683.  
  684.     UnitSpecificSounds
  685.         VoiceCreatedFromInn                    = MenOfDaleVoiceSalute-Inn
  686.         VoiceEnterUnitElvenTransportShip    = MenOfDaleVoiceMoveShip
  687.         VoiceFullyCreatedFromInn             = MenOfDaleVoiceSalute-Inn
  688.         VoiceGarrison                        = MenOfDaleVoiceMoveGarrison
  689.         VoiceInitiateCaptureBuilding        = MenOfDaleVoiceCaptureBuilding
  690.         VoiceInitiateBlackArrowsAttack        = MenOfDaleVoiceAttack
  691.     End
  692.  
  693.     #include "..\..\..\includes\StandardUnitEvaEvents.inc"
  694.  
  695.     CrowdResponseKey = GoodMen
  696.  
  697.     ClientBehavior = ModelConditionAudioLoopClientBehavior ModuleTag_foo
  698.         ModelCondition = Required:EMOTION_CELEBRATING    Excluded:DYING ENGAGED    Sound:EmotionMenGoodCompilationVoxCheerSinglesLoop    ;MOVING ATTACKING
  699.         ModelCondition = Required:EMOTION_POINTING        Excluded:DYING ENGAGED    Sound:EmotionMenGoodCompilationBFME1and2VoxTauntSinglesLoop    ;MOVING ATTACKING
  700.         ModelCondition = Required:EMOTION_TAUNTING        Excluded:DYING ENGAGED    Sound:EmotionMenGoodCompilationBFME1and2VoxTauntSinglesLoop    ;MOVING ATTACKING
  701.         ModelCondition = Required:RAISING_FLAG            Excluded:DYING ENGAGED    Sound:EmotionMenGoodCompilationBFME1and2VoxTauntSinglesLoop
  702.     End
  703.  
  704.     Behavior = LargeGroupAudioUpdate ModuleTag_LGAU
  705.         Key = Humanoid_Male Man Man_Male Dwarf_MenOfDale
  706.     End
  707.  
  708.     ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
  709.         MaxUpdateRangeCap = 800
  710.         AnimationSound = Sound:BodyFallGeneric1        Animation:GUArcher_SKL.GUArcher_DIEB    Frames:19
  711.         AnimationSound = Sound:BodyFallGeneric1        Animation:GUArcher_SKL.GUArcher_DIED    Frames:53
  712.         AnimationSound = Sound:BodyFallGeneric1        Animation:GUArcher_SKL.GUArcher_LNDA    Frames:1
  713.         AnimationSound = Sound:BodyFallGenericNoArmor    Animation:GUArcher_SKL.GUArcher_LNDA    Frames:14
  714.     End
  715.  
  716.  
  717.     ; *** ENGINEERING Parameters ***
  718.  
  719.     RadarPriority = UNIT
  720.     KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER SCORE THROWN_OBJECT ARCHER GRAB_AND_DROP ATTACK_NEEDS_LINE_OF_SIGHT ;GRAB_AND_KILL
  721.     
  722.     Body = ActiveBody ModuleTag_02
  723.         CheerRadius       = EMOTION_CHEER_RADIUS
  724.         MaxHealth         = DWARVEN_MENOFDALE_HEALTH                ;BALANCE Archer Health
  725.         MaxHealthDamaged  = DWARVEN_MENOFDALE_HEALTH_DAMAGED            
  726.         BurningDeathBehavior    =    Yes
  727.         BurningDeathFX           =    FX_InfantryBurningFlame
  728.     End
  729.     
  730.     Behavior = AIUpdateInterface ModuleTag_03
  731.         AutoAcquireEnemiesWhenIdle    = Yes ATTACK_BUILDINGS
  732.         CanAttackWhileContained        = Yes
  733.         AILuaEventsList                = RohanArcherFunctions
  734.         AttackPriority                =     AttackPriority_Archer
  735.         BurningDeathTime            = BURNINGDEATH_DURATION_INFANTRY
  736.     End
  737.  
  738.  
  739.     LocomotorSet
  740.         Locomotor = HumanLocomotor
  741.         Condition = SET_NORMAL
  742.         Speed     = NORMAL_GOOD_INFANTRY_MEMBER_SPEED    
  743.     End
  744.  
  745.     LocomotorSet
  746.         Locomotor = HumanWanderLocomotor
  747.         Condition = SET_WANDER 
  748.         Speed     = NORMAL_GOOD_INFANTRY_MEMBER_SPEED    
  749.     End
  750.  
  751.     LocomotorSet
  752.         Locomotor = BurningDeathLocomotorInfantry
  753.         Condition = SET_BURNINGDEATH
  754.         Speed      = BURNINGDEATH_WANDERSPEED_INFANTRY
  755.     End
  756.  
  757.     Behavior = PhysicsBehavior ModuleTag_04
  758.         GravityMult = 1.0
  759.     End
  760.  
  761.     Behavior = AimWeaponBehavior AimWeaponModuleTag
  762.         AimLowThreshold  = -0.15
  763.         AimHighThreshold =  0.15
  764.     End
  765.     
  766.     Behavior = SlowDeathBehavior ModuleTag_05
  767.         DeathTypes = ALL -FADED
  768.         SinkDelay = 3000
  769.         SinkRate = 0.600     ; in Dist/Sec
  770.         DestructionDelay = 12000
  771.         Sound = INITIAL HumanVoiceDie
  772.     End
  773.     Behavior = SlowDeathBehavior ModuleTag_SlowDeathFaded
  774.         DeathTypes = NONE +FADED
  775.         FadeDelay        = 0
  776.         FadeTime        = 4000
  777.         DestructionDelay = 4000
  778.         DeathFlags        = DEATH_1
  779.     End
  780.     
  781.     Behavior = SquishCollide ModuleTag_06
  782.         ;nothing
  783.     End
  784.     
  785.     ; RohanArcher
  786.     Behavior = HordeMemberCollide ModuleTag_HMC
  787.         ;nothing
  788.     End
  789.     
  790.     Behavior = BezierProjectileBehavior ModuleTag_07 ; Module starts asleep, and wakes up when thrown.
  791.         FirstHeight = 24  ; Height of Bezier control points above highest intervening terrain
  792.         SecondHeight = 24
  793.         FirstPercentIndent = 30% ; Percentage of shot distance control points are placed
  794.         SecondPercentIndent = 70%
  795.         TumbleRandomly = Yes
  796.  
  797.         CrushStyle = Yes ; I don't detonate, I just hit
  798.         DieOnImpact = Yes
  799.         BounceCount = 1   ; When I hit the ground, I'll arc again
  800.         BounceDistance = 40 ; this far
  801.         BounceFirstHeight = 24  ; Height of Bezier control points above highest intervening terrain
  802.         BounceSecondHeight = 24
  803.         BounceFirstPercentIndent = 20% ; Percentage of shot distance control points are placed
  804.         BounceSecondPercentIndent = 80%
  805.  
  806.         GroundHitFX       = FX_ThrownRockGroundHit
  807.         GroundBounceFX    = FX_ThrownRockBounceHit
  808.     End
  809.  
  810.  
  811.  
  812.     ;--------------------------------------------------------------------------
  813.     ;    Upgrades.
  814.     ;--------------------------------------------------------------------------
  815.     
  816.       Behavior = ArmorUpgrade ModuleTag_ArmorUpgrade
  817.         TriggeredBy = Upgrade_DwarvenMithrilMail
  818.         ;ArmorSetFlag = PLAYER_UPGRADE
  819.     End
  820.     
  821.       Behavior = SubObjectsUpgrade Armor_Upgrade
  822.           TriggeredBy        = Upgrade_DwarvenMithrilMail
  823.           UpgradeTexture    = RUArcher.tga 0 RUArcherHA.tga
  824.           UpgradeTexture    = RUArcher_M.tga 0 RUArcherHA.tga
  825.           ShowSubObjects    = ARMOR
  826.          RecolorHouse    = Yes
  827.         ExcludeSubobjects = FireArowTip
  828.       End
  829.       
  830.       ; Fire arrow upgrade
  831.     Behavior = WeaponSetUpgrade ModuleTag_08
  832.         TriggeredBy = Upgrade_DwarvenFireArrows
  833.         ; Turn off fire arrow visuals -- will be redone like Peasant drafting.
  834.         ;CustomAnimAndDuration   = AnimState:USER_4 AnimTime:0 TriggerTime:0 ;set flag forever        
  835.     End
  836.     
  837.       Behavior = SubObjectsUpgrade FireArrows_Upgrade
  838.           TriggeredBy        = Upgrade_DwarvenFireArrows
  839.           ShowSubObjects    = FireArowTip ;ArrowNock            ; yes, it's a typo.
  840.           ;HideSubObjects    = arrow
  841.       End
  842.     
  843.     ;--------------------------------------------------------------------------
  844.  
  845. ;    Behavior = DualWeaponBehavior ModuleTag_09
  846. ;        SwitchWeaponOnCloseRangeDistance = 40
  847. ;    End
  848.     
  849.     Behavior = HitReactionBehavior HitReactionBehaviorModuleTag
  850.         HitReactionLifeTimer1 = 1993 ; level 1 (light  damage)  hit reaction animations in ms
  851.         HitReactionLifeTimer2 = 1993 ; level 2 (medium damage)  hit reaction animations in ms
  852.         HitReactionLifeTimer3 = 1993 ; level 3 (heavy  damage)  hit reaction animations in ms
  853.  
  854.         HitReactionThreshold1 = 5.0   ; level 1 (light  damage) threshold trigger
  855.         HitReactionThreshold2 = 25.0  ; level 2 (medium damage) threshold trigger
  856.         HitReactionThreshold3 = 50.0  ; level 3 (heavy  damage) threshold trigger
  857.  
  858.         FastHitsResetReaction = Yes    ;If set -- when hits occur faster than the reaction animations, it will reset the animation. (like getting riddled with machine gun bullets)
  859.     End
  860.     
  861.     Geometry = CYLINDER
  862.     GeometryMajorRadius = 8.0
  863.     GeometryMinorRadius = 8.0
  864.     GeometryHeight = 19.2
  865.     GeometryIsSmall = Yes
  866.  
  867.   Shadow = SHADOW_DECAL
  868.   ShadowSizeX = 19;
  869.   ShadowSizeY = 19;
  870.   ShadowTexture = ShadowI;
  871. End
  872.  
  873. ;------------------------------------------------------------------------------
  874. ChildObject DwarvenMenOfDale_Summoned DwarvenMenOfDale
  875.     IsTrainable = No
  876.     CommandPoints = 0
  877.     EquivalentTo = DwarvenMenOfDale
  878.     Behavior = LifetimeUpdate ModuleTag_LifetimeUpdate
  879.     ; This one does the work, but the one in the horde displays the timer
  880.         MinLifetime        = 180000
  881.         MaxLifetime        = 180000
  882.         DeathType        = FADED
  883.     End    
  884.  
  885.     Behavior = SlowDeathBehavior ModuleTag_SlowDeathFaded
  886.         DeathTypes = NONE +FADED
  887.         FadeDelay        = 0
  888.         FadeTime        = 4000
  889.         DestructionDelay = 4000
  890.         DeathFlags        = DEATH_1
  891.         Sound = INITIAL SpellGenericUnsummonFasterMS
  892.     End
  893. End
  894.  
  895. ;-----------------------------------------------------------------------------------------
  896. Object DwarvenMenOfDaleAlliesSummonEgg
  897.     Draw = W3DScriptedModelDraw ModuleTag_Draw
  898.         DefaultModelConditionState
  899.             Model = None
  900.         End
  901.     End
  902.     KindOf = INERT IMMOBILE UNATTACKABLE
  903.     
  904.     Body = ActiveBody ModuleTag_MakesKillWork
  905.         MaxHealth = 1
  906.     End
  907.     Behavior = LifetimeUpdate ModuleTag_HatchTrigger
  908.         MinLifetime = 0.0
  909.         MaxLifetime = 0.0
  910.     End
  911.     Behavior = SlowDeathBehavior ModuleTag_HatchProcess
  912.         DestructionDelay = 2000
  913.         OCL = FINAL OCL_SpawnMenOfDale
  914.     End
  915. End