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

  1. ;------------------------------------------------------------------------------
  2. ;
  3. ;    Elrond.ini
  4. ;
  5. ;------------------------------------------------------------------------------
  6.  
  7. ; Elrond
  8. Object ElvenElrond
  9.  
  10.     ; *** ART Parameters ***
  11.     SelectPortrait         = HPElrond
  12.     ButtonImage = HIElrond
  13.     
  14.     DescriptionStrategic = CONTROLBAR:LW_ToolTip_Elrond
  15.     
  16.     Draw = W3DScriptedModelDraw ModuleTag_DRAW
  17.  
  18.         OkToChangeModelColor    = Yes
  19.         StaticModelLODMode        = Yes
  20.  
  21.         DefaultModelConditionState
  22.             Model                        =    RUElrond_SKN
  23.         End
  24.  
  25.  
  26.     
  27.         ; ------ Flying ------- ;
  28.  
  29.         AnimationState                    = STUNNED_STANDING_UP
  30.             StateName                    = GetUp
  31.             Animation                   = GetUpSword
  32.                 AnimationName           = RUElrond_SKL.RUElrond_GTPSX1
  33.                 AnimationMode           = ONCE
  34.             End
  35.             BeginScript
  36.                 Prev = CurDrawablePrevAnimation()
  37.                 if Prev == "FallWithSword"
  38.                 then
  39.                     return "GetUpSword"
  40.                 end
  41.             EndScript
  42.         End
  43.  
  44.         AnimationState                    = STUNNED
  45.             Animation                   = FallWithSword
  46.                 AnimationName           = RUElrond_SKL.RUElrond_LNDB
  47.                 AnimationMode           = ONCE
  48.             End
  49.             Flags = MAINTAIN_FRAME_ACROSS_STATES
  50.             
  51.             
  52.             BeginScript
  53.                 CurDrawableHideSubObject("ArrowNock")
  54.                 CurDrawableHideSubObject("arrow")
  55.                 Prev = CurDrawablePrevAnimation()
  56.             
  57.                 return "FallWithSword"
  58.             EndScript
  59.         End
  60.         
  61.         AnimationState                    = STUNNED_FLAILING
  62.             Animation                   = DieWithSword
  63.                 AnimationName           = RUElrond_SKL.RUElrond_FLYB
  64.                 AnimationMode           = LOOP
  65.                 AnimationSpeedFactorRange    = 0.4 0.6
  66.             End
  67.             
  68.             BeginScript
  69.                 CurDrawableHideSubObject("ArrowNock")
  70.                 CurDrawableHideSubObject("arrow")
  71.             EndScript
  72.         End
  73.         
  74.         
  75.         ; ------ Dying ------- ;
  76.  
  77.         AnimationState                    = DYING
  78.             Animation                   = DieWithSword
  79.                 AnimationName           = RUElrond_SKL.RUElrond_DIESv5
  80.                 AnimationMode           = ONCE
  81.             End
  82.             ;Animation                   = DieWithSword
  83.             ;    AnimationName           = RUElrond_SKL.RUElrond_DIESV4
  84.             ;    AnimationMode           = ONCE
  85.             ;End
  86.             
  87.             BeginScript
  88.                 CurDrawableHideSubObject("ArrowNock")
  89.                 CurDrawableHideSubObject("arrow")
  90.             EndScript
  91.         End
  92.         
  93.         AnimationState                        = PARALYZED
  94.             Animation
  95.                 AnimationName                = RUElrond_SKL.RUElrond_IDLF
  96.                 AnimationMode                = LOOP
  97.             End
  98.         End
  99.  
  100.         
  101.         ; ------------ Moving ------------- ;
  102.         
  103.         AnimationState                    = MOVING
  104.             StateName                    = Moving_Sword
  105.             SimilarRestart                = Yes
  106.             Animation                   = run_s
  107.                 AnimationName           = RUElrond_SKL.RUElrond_RUNS
  108.                 AnimationMode           = LOOP
  109.                 Distance                = 40
  110.             End
  111.             Animation                    = finishrun_b
  112.                 AnimationName           = RUElrond_SKL.RUElrond_RUNB
  113.                 AnimationMode           = ONCE
  114.                 AnimationBlendTime        = 0
  115.                 Distance                = 40
  116.             End
  117.             Animation                    = runtrans_bs
  118.                 AnimationName           = RUElrond_SKL.RUElrond_RUNC
  119.                 AnimationMode           = ONCE
  120.                 AnimationBlendTime        = 0
  121.                 Distance                = 70
  122.             End
  123.             Animation                    = runtrans_sb_finish
  124.                 AnimationName           = RUElrond_SKL.RUElrond_RUNT
  125.                 AnimationMode           = ONCE
  126.                 AnimationBlendTime        = 0
  127.                 Distance                = 70
  128.             End
  129.             Animation                    = runnoblend_s
  130.                 AnimationName           = RUElrond_SKL.RUElrond_RUNS
  131.                 AnimationMode           = LOOP
  132.                 AnimationBlendTime        = 0
  133.                 Distance                = 40
  134.             End
  135.             Flags = MAINTAIN_FRAME_ACROSS_STATES RESTART_ANIM_WHEN_COMPLETE
  136.             
  137.             BeginScript
  138.                 PrevAnim    = CurDrawablePrevAnimation()
  139.                 PrevState    = CurDrawablePrevAnimationState()
  140.                 
  141.                 if PrevState == "GetUp"  or PrevAnim == "DrawSwords"
  142.                 then
  143.                     if PrevAnim == "DrawSwords"
  144.                     then
  145.                         return "runtrans_bs"
  146.                     else
  147.                         return
  148.                     end
  149.                 elseif PrevAnim == "finishrun_b" or PrevAnim == "runtrans_sb_finish"
  150.                 then
  151.                     return "runtrans_bs"
  152.                 elseif PrevAnim == "runtrans_bs" or PrevAnim == "run_s" or PrevAnim == "runnoblend_s"
  153.                 then
  154.                     return "runnoblend_s"
  155.                 else
  156.                     return "run_s"
  157.                 end                
  158.             EndScript
  159.         End
  160.         
  161.         ; ------ Attacking ------- ;
  162.         
  163.         AnimationState                    = FIRING_OR_PREATTACK_A
  164.             StateName                    = Ready_Sword
  165.             
  166.             Animation                   = AttackWithSwordA
  167.                 AnimationName           = RUElrond_SKL.RUElrond_ATKSV2
  168.                 AnimationMode           = ONCE
  169.                 UseWeaponTiming            = Yes
  170.             End
  171.             Animation                   = AttackWithSwordB
  172.                 AnimationName           = RUElrond_SKL.RUElrond_ATKS
  173.                 AnimationMode           = ONCE
  174.                 UseWeaponTiming            = Yes
  175.             End
  176.             Animation                   = AttackWithSwordD
  177.                 AnimationName           = RUElrond_SKL.RUElrond_ATKSV4
  178.                 AnimationMode           = ONCE
  179.                 UseWeaponTiming            = Yes
  180.             End
  181.             BeginScript
  182.                 CurDrawableHideSubObject("ArrowNock")
  183.                 CurDrawableHideSubObject("arrow")
  184.             EndScript
  185.         End
  186.  
  187.         AnimationState                    = USER_1
  188.             Animation
  189.                 AnimationName            = RUElrond_SKL.RUElrond_TNTSV1
  190.                 AnimationMode            = ONCE
  191.             End
  192.         End
  193.  
  194.         AnimationState                = LEVELED
  195.             Animation                = LevelUp
  196.                 AnimationName        = RUElrond_SKL.RUElrond_CHRST2
  197.                 AnimationMode        = ONCE
  198.                 AnimationBlendTime    = 20
  199.             End
  200.         End
  201.         
  202.         ; -------- Alert ------- ;
  203.         
  204.         AnimationState                    = EMOTION_ALERT
  205.             StateName                    = Ready_Sword
  206.             
  207.             Animation                    = Alert_1
  208.                 AnimationName            = RUElrond_SKL.RUElrond_IDLST1
  209.                 AnimationMode            = ONCE
  210.                 AnimationPriority        = 20
  211.             End
  212.             Animation                    = Alert_1
  213.                 AnimationName            = RUElrond_SKL.RUElrond_IDLST1    ; Secondary to solve the 'no play last anim' feature.
  214.                 AnimationMode            = ONCE
  215.                 AnimationPriority        = 20
  216.             End
  217.             Animation                    = Alert_2
  218.                 AnimationName            = RUElrond_SKL.RUElrond_TNTSV1
  219.                 AnimationMode            = ONCE
  220.                 AnimationPriority        = 5
  221.             End
  222.             Flags                        = RESTART_ANIM_WHEN_COMPLETE
  223.             
  224.             BeginScript
  225.                 Prev = CurDrawablePrevAnimationState()
  226.                 PrevName = CurDrawablePrevAnimation()
  227.                 
  228.                 CurDrawableHideSubObject("ArrowNock")
  229.                 CurDrawableHideSubObject("arrow")
  230.  
  231.                 if        Prev == "Bored_Sword"        then CurDrawableSetTransitionAnimState("TRANS_BR_Sword")
  232.                 elseif    Prev == "Selected_Sword"        then CurDrawableSetTransitionAnimState("TRANS_SR_Sword")
  233.                 end
  234.             EndScript
  235.         End
  236.         
  237.         ; --------- Hit Reactions ---------- ;
  238.         
  239.         AnimationState = HIT_REACTION HIT_LEVEL_1
  240.             StateName                    = Bored_Sword
  241.             Animation                    = Hit_Level_1_a
  242.                 AnimationName            = RUElrond_SKL.RUElrond_HITSv1
  243.                 AnimationMode            = ONCE
  244.                 AnimationBlendTime        = 20
  245.             End
  246.         End
  247.  
  248.         
  249.         AnimationState                = RAISING_FLAG
  250.             Animation                    = Alert_1
  251.                 AnimationName            = RUElrond_SKL.RUElrond_CHRST2
  252.                 AnimationMode            = LOOP
  253.                 AnimationBlendTime    = 10
  254.             End
  255.         End
  256.     
  257.         ; ------ Emotions ------ ;
  258.         AnimationState                    = EMOTION_TAUNTING
  259.             Animation
  260.                 AnimationName            = RUElrond_SKL.RUElrond_TNTSV1
  261.                 AnimationMode            = LOOP
  262.                 AnimationBlendTime    = 10
  263.             End
  264.         End
  265.  
  266.         AnimationState                =    EMOTION_CELEBRATING
  267.             Animation
  268.                 AnimationName        =    RUElrond_SKL.RUElrond_CHRST2
  269.                 AnimationMode        =    LOOP
  270.                 AnimationBlendTime    = 10
  271.             End
  272.         End
  273.         
  274.         ; ------ Selected ------ ;
  275.  
  276.         AnimationState                =    SELECTED
  277.             StateName                =    Selected_Sword
  278.             
  279.             Animation                =    ATNA
  280.                 AnimationName        =    RUElrond_SKL.RUElrond_ATNS
  281.                 AnimationMode        =    LOOP
  282.             End
  283.             
  284.             BeginScript
  285.                 CurDrawableHideSubObject("ARROW")
  286.                 CurDrawableHideSubObject("ARROWNOCK")
  287.                 
  288.                 Prev = CurDrawablePrevAnimationState()
  289.                 PrevName = CurDrawablePrevAnimation()
  290.                 if Prev == "Bored_Sword"        then CurDrawableSetTransitionAnimState("TRANS_BS_Sword")
  291.                 elseif Prev == "Ready_Sword"        then CurDrawableSetTransitionAnimState("TRANS_RS_Sword")
  292.                 end    
  293.             EndScript
  294.         End
  295.  
  296.         
  297.         ; ------- Bored -------- ;
  298.         
  299.         IdleAnimationState
  300.             StateName                    = Bored_Sword
  301.             
  302.             Animation                   = IDLCX1
  303.                 AnimationName           = RUElrond_SKL.RUElrond_IDLF
  304.                 AnimationMode           = ONCE
  305.                 AnimationPriority        = 20
  306.             End
  307.             Animation                   = IDLCX1
  308.                 AnimationName           = RUElrond_SKL.RUElrond_IDLF    ; Secondary to solve the 'no play last anim' feature.
  309.                 AnimationMode           = ONCE
  310.                 AnimationPriority        = 20
  311.             End
  312.             Animation                   = IDLCt3
  313.                 AnimationName           = RUElrond_SKL.RUElrond_IDLCT3
  314.                 AnimationMode           = ONCE
  315.                 AnimationPriority        = 10
  316.             End
  317.             Animation                   = IDLCT1
  318.                 AnimationName           = RUElrond_SKL.RUElrond_IDLCT1
  319.                 AnimationMode           = ONCE
  320.                 AnimationPriority        = 5
  321.             End
  322.             
  323.             Flags                        = RESTART_ANIM_WHEN_COMPLETE
  324.  
  325.             BeginScript
  326.                 CurDrawableHideSubObject("ARROW")
  327.                 CurDrawableHideSubObject("ARROWNOCK")                
  328.  
  329.                 Prev = CurDrawablePrevAnimationState()
  330.                 PrevName = CurDrawablePrevAnimation()
  331.                 if Prev == "Selected_Sword"        then CurDrawableSetTransitionAnimState("TRANS_SB_Sword")
  332.                 elseif Prev == "Ready_Sword"        then CurDrawableSetTransitionAnimState("TRANS_RB_Sword")
  333.                 end    
  334.             EndScript
  335.         End
  336.         
  337.         ;----------------- Sword Transitions -------------------------;
  338.         
  339.         TransitionState                   = TRANS_BS_Sword
  340.             Animation                   = TRANS_BS_Sword
  341.                 AnimationName             = RUElrond_SKL.RUElrond_ATNA
  342.                 AnimationMode             = ONCE
  343.             End
  344.             Animation                   = ATNAX1
  345.                 AnimationName             = RUElrond_SKL.RUElrond_ATNX1
  346.                 AnimationMode             = ONCE
  347.             End
  348.         End
  349.         
  350.         TransitionState                   = TRANS_SR_Sword
  351.             Animation                   = TRANS_SR_Sword
  352.                 AnimationName             = RUElrond_SKL.RUElrond_ATNC
  353.                 AnimationMode             = ONCE
  354.             End
  355.         End
  356.         
  357.         TransitionState                   = TRANS_SB_Sword
  358.             Animation                   = TRANS_SB_Sword
  359.                 AnimationName             = RUElrond_SKL.RUElrond_ATNA
  360.                 AnimationMode             = ONCE_BACKWARDS
  361.             End
  362.             Flags = START_FRAME_LAST
  363.         End
  364.         
  365.         TransitionState                   = TRANS_RS_Sword
  366.             Animation                   = TRANS_RS_Sword
  367.                 AnimationName             = RUElrond_SKL.RUElrond_ATNC
  368.                 AnimationMode             = ONCE_BACKWARDS
  369.             End
  370.             Flags = START_FRAME_LAST
  371.         End
  372.         
  373.         TransitionState                   = TRANS_BR_Sword
  374.             Animation                   = TRANS_BR_Sword
  375.                 AnimationName             = RUElrond_SKL.RUElrond_ATNS
  376.                 AnimationMode             = ONCE
  377.                 AnimationBlendTime        = 20
  378.             End
  379.         End
  380.         
  381.         TransitionState                   = TRANS_RB_Sword
  382.             Animation                   = TRANS_RB_Sword
  383.                 AnimationName             = RUElrond_SKL.RUElrond_IDLG
  384.                 AnimationMode             = ONCE
  385.                 AnimationBlendTime        = 20
  386.             End
  387.         End
  388.         
  389.     End
  390.  
  391.     #include "..\..\..\includes\StunDrawModuleSmall.inc"
  392.  
  393.     ; ***DESIGN parameters ***
  394.     Side = Elves
  395.     EditorSorting = UNIT
  396.     ThreatLevel = ELROND_THREAT
  397.     ThingClass = CHARACTER_UNIT
  398.  
  399.     TransportSlotCount = TRANSPORTSLOTCOUNT_HERO
  400.     WeaponSet
  401.         Conditions = None
  402.         Weapon = PRIMARY    ElrondSword
  403.         AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
  404.     End
  405.     WeaponSet
  406.         Conditions            = CONTAINED
  407.         Weapon                = SECONDARY GarrisonedUnitBow
  408.         AutoChooseSources    = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
  409.     End
  410.     
  411.  
  412.     
  413.     ArmorSet
  414.         Conditions      = None
  415.         Armor           = HeroArmor
  416.         DamageFX        = NormalDamageFX
  417.     End
  418.     VisionRange = VISION_HERO_STANDARD
  419.     ShroudClearingRange = SHROUD_CLEAR_HERO    
  420.     
  421.     MaxVisionBonusPercent = 300%
  422.     VisionBonusTestRadius = 200
  423.     VisionBonusPercentPerFoot = 1.0%
  424.     
  425.     
  426.     BountyValue = ELVEN_ELROND_BOUNTY_VALUE
  427.     RecruitText                     = CONTROLBAR:ElrondRecruit
  428.     ReviveText                    = CONTROLBAR:ElrondRevive
  429.     Hotkey        = CONTROLBAR:ElvenElrondHotkey
  430.     DisplayName = OBJECT:ElvenElrond
  431.     CrushableLevel = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
  432.  
  433.     CommandSet = ElrondCommandSet 
  434.     CommandPoints = 50
  435.  
  436.     ; *** AUTO RESOLVE DATA *** 
  437.     AutoResolveUnitType = AutoResolveUnit_Hero
  438.     AutoResolveCombatChain = AutoResolve_HeroCombatChain
  439.  
  440.     AutoResolveBody = AutoResolve_ElrondBody
  441.     
  442.     AutoResolveArmor
  443.         Armor = AutoResolve_ElrondArmor
  444.     End
  445.  
  446.     AutoResolveWeapon
  447.         Weapon = AutoResolve_ElrondWeapon
  448.     End
  449.     
  450.     AutoResolveLeadership = AutoResolve_ElrondBonus
  451.  
  452.  
  453.     ; *** AUDIO Parameters ***;
  454.  
  455.     VoiceAttack                                    = ElrondVoiceAttack
  456.     VoiceAttackCharge                            = ElrondVoiceAttackCharge
  457.     VoiceAttackMachine                            = ElrondVoiceAttack
  458.     VoiceAttackStructure                        = ElrondVoiceAttackBuilding
  459.     VoiceFear                                     = ElrondVoiceHelpMe
  460.     VoiceGuard                                    = ElrondVoiceMove
  461.     VoiceMove                                    = ElrondVoiceMove
  462.     VoiceMoveToCamp                                = ElrondVoiceMoveCamp
  463.     VoiceMoveWhileAttacking                        = ElrondVoiceDisengage
  464.     VoicePriority                                = 78
  465.     VoiceRetreatToCastle                         = ElrondVoiceRetreat
  466.     VoiceSelect                                    = ElrondVoiceSelectMS
  467.     VoiceSelectBattle                             = ElrondVoiceSelectBattle
  468.  
  469.     SoundImpact                                    = ImpactHorse
  470.  
  471.     UnitSpecificSounds
  472.         VoiceEnterUnitElvenTransportShip        = ElrondVoiceMoveShip
  473.         VoiceGarrison                            = ElrondVoiceMoveGarrison
  474.         VoiceInitiateCaptureBuilding            = ElrondVoiceCaptureBuilding    ; From SpecialPower SpecialAbilityCaptureBuilding
  475.     End
  476.  
  477.     CrowdResponseKey = ElfHero
  478.  
  479.     #include "..\..\..\includes\StandardUnitEvaEvents.inc"
  480.     EvaEventDieOwner            = ElrondDie        ;Eva event to trigger on unit's death. NOTICE THAT this is only for permanent deaths
  481.  
  482.     ; Tie into LargeGroupAudio system
  483.     Behavior = LargeGroupAudioUpdate ModuleTag_LGAU
  484.         Key = Humanoid_Male Elf_Male Unit Infantry Hero                ;Human
  485.         ;UnitWeight = 2
  486.     End
  487.     
  488.     ; *** ENGINEERING Parameters ***
  489.     RadarPriority = UNIT
  490.     KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER SCORE ARMY_SUMMARY HERO HEAVY_MELEE_HITTER
  491.     PathfindDiameter = 40.0
  492.     CamouflageDetectionMultiplier = CAMOUFLAGE_DETECTION_DISTANCE_MEDIUM
  493.     BuildCost = ELROND_BUILDCOST                
  494.     BuildTime = ELROND_BUILDTIME                
  495.     ShockwaveResistance = SHOCKWAVE_RESISTANCE_STRONG
  496.     
  497.     ;//DisplayMeleeDamage = ELROND_DAMAGE
  498.     Body = RespawnBody ModuleTag_RespawnBody
  499.         CheerRadius                 = EMOTION_CHEER_RADIUS
  500.         MaxHealth                     = ELROND_HEALTH ; balance
  501.         PermanentlyKilledByFilter    = NONE
  502.            DodgePercent                  = HERO_DODGE_PERCENT
  503.     End
  504.     Behavior = RespawnUpdate ModuleTag_RespawnUpdate
  505.         DeathAnim                    = DYING
  506.         DeathFX                        = FX_ElrondDieToRespawn
  507.         DeathAnimationTime            = 4000
  508.         InitialSpawnFX                = FX_ElrondInitialSpawn
  509.         RespawnAnim                    = LEVELED
  510.         RespawnFX                    = FX_ElrondRespawn
  511.         RespawnAnimationTime        = 2000
  512.         AutoRespawnAtObjectFilter    = NONE +CASTLE_KEEP
  513.         ButtonImage                    = HIElrond_res
  514.         
  515.         ;RespawnEntries determine the ruleset for how a character can be revived. Some units may automatically respawn, others
  516.         ;may require a specific revive action performed on him. You can specify different values for each level... or use Level:Any
  517.         RespawnRules =    AutoSpawn:No    Cost:1875  Time:60000    Health:100%
  518.     End
  519.  
  520.     #include "..\..\..\includes\DefaultInvisibilityUpdate.inc"
  521.     
  522.     Behavior = StancesBehavior ModuleTag_StancesBehavior
  523.         StanceTemplate = Hero
  524.     End
  525.     
  526.      
  527.     ; Elven Grace ---------------------------------------------------------------------------------------------------------------------
  528.     // used by Elven Grace to heal nearby units
  529.     Behavior = AutoHealBehavior ModuleTag_ElvenGraceHealing
  530.         StartsActive                = No
  531.         ButtonTriggered                = Yes                                        ; But doesn't actually run on its own.
  532.         HealingAmount                = ATHELAS_HEAL_AMOUNT
  533.         Radius                        = 200
  534.         UnitHealPulseFX                = FX_AragornAthelas
  535.         KindOf                        = HERO
  536.         HealingDelay                = 200
  537.         SingleBurst                    = Yes
  538.     End
  539.        Behavior = SpecialPowerModule ModuleTag_ElrondElvenGrace
  540.         SpecialPowerTemplate        = SpecialAbilityElrondElvenGrace
  541.         AttributeModifierAffects    = NONE +HERO ALLIES
  542.         AffectAllies                = Yes
  543.         UpdateModuleStartsAttack    = Yes
  544.     End
  545.     Behavior = SpecialAbilityUpdate ModuleTag_ElrondElvenGraceUpdate
  546.         SpecialPowerTemplate        = SpecialAbilityElrondElvenGrace
  547.         UnpackTime                    = 1
  548.         PackTime                    = 3000
  549.     End
  550.     Behavior = AutoAbilityBehavior ModuleTag_ElrondElvenGraceAutoAbility
  551.         SpecialAbility                = SpecialAbilityElrondElvenGrace
  552.         MaxScanRange                = 200
  553.         Query                        = 2 NONE +HERO ALLIES
  554.     End
  555.  
  556.     ; Leadership ---------------------------------------------------------------------------------------------------------------------
  557.     Behavior = UnpauseSpecialPowerUpgrade ModuleTag_TheodenLeadership
  558.         SpecialPowerTemplate = SpecialAbilityFakeLeadership
  559.         TriggeredBy = Upgrade_ElrondLeadership
  560.     End
  561.  
  562.     Behavior = SpecialPowerModule ModuleTag_TheodenLeadershipUpdate   
  563.         SpecialPowerTemplate      = SpecialAbilityFakeLeadership
  564.         UpdateModuleStartsAttack  = No
  565.         StartsPaused = Yes
  566.     End    
  567.     Behavior = AttributeModifierAuraUpdate ModuleTag_Leadership
  568.         StartsActive            = No
  569.         BonusName                = GenericHeroLeadership
  570.         TriggeredBy                = Upgrade_ElrondLeadership
  571.         RefreshDelay            = 2000
  572.         Range                    = 200
  573.         AntiCategory            = BUFF
  574.         ObjectFilter            = GENERIC_BUFF_RECIPIENT_OBJECT_FILTER
  575.     End    
  576.  
  577.     ; Farsight ---------------------------------------------------------------------------------------------------------------------
  578.     Behavior = UnpauseSpecialPowerUpgrade ModuleTag_FarsightUnpause
  579.         SpecialPowerTemplate    = SpecialAbilityElrondFarsight
  580.         TriggeredBy                = Upgrade_ElrondFarsight
  581.     End
  582.     Behavior = OCLSpecialPower ModuleTag_FarsightOCL
  583.         StartsPaused            = Yes
  584.         SpecialPowerTemplate    = SpecialAbilityElrondFarsight
  585.         OCL                        = OCL_SpecialPowerFarSeeing
  586.         CreateLocation            = CREATE_AT_LOCATION
  587.     End
  588.  
  589.     ; Restoration ---------------------------------------------------------------------------------------------------------------------
  590.     Behavior = UnpauseSpecialPowerUpgrade ModuleTag_RestorationUnpause
  591.         SpecialPowerTemplate        = SpecialAbilityElrondRestoration
  592.         TriggeredBy                    = Upgrade_ElrondRestoration
  593.     End
  594.     Behavior = SpecialPowerTimerRefreshSpecialPower ModuleTag_RestorationRefresh
  595.         SpecialPowerTemplate        = SpecialAbilityElrondRestoration
  596.         StartsPaused                = Yes
  597.         UpdateModuleStartsAttack    = No
  598.         AffectAllies                = Yes
  599.         AttributeModifierRange        = 150
  600.         AttributeModifierAffects    = ALL -ElvenElrond ALLIES
  601.         SetModelCondition            = ModelConditionState:USER_1
  602.         SetModelConditionTime        = 3.66
  603.     End
  604.       Behavior = PlayerHealSpecialPower ModuleTag_RestorationHeal
  605.         SpecialPowerTemplate        = SpecialAbilityElrondRestorationHeal
  606.         HealAffects                    = INFANTRY CAVALRY MONSTER
  607.         HealAmount                    = 0.2 ; percent of max health
  608.         HealRadius                    = 150
  609.         HealFX                        = FX_ElrondHealSpecialPower
  610.     End    
  611.  
  612.     Behavior = AutoHealBehavior ModuleTag_ElrondHealing
  613.         StartsActive = Yes
  614.         HealingAmount = HERO_HEAL_AMOUNT
  615.         HealingDelay = 1000
  616.         StartHealingDelay = HERO_HEAL_DELAY
  617.         HealOnlyIfNotInCombat = Yes
  618.     End
  619.     
  620.     #include "..\..\..\includes\CaptureBuilding.inc"
  621.  
  622.     ;// AKA Whirlwind
  623.     Behavior = UnpauseSpecialPowerUpgrade ModulTag_ElrondTornadoEnabler
  624.         SpecialPowerTemplate    = SpecialPowerSpawnTornado
  625.         TriggeredBy                = Upgrade_ElrondTornado
  626.     End
  627.     Behavior = OCLSpecialPower    ModuleTag_OCLSpawnTornado
  628.         SpecialPowerTemplate    = SpecialPowerSpawnTornado
  629.         OCL                        = SUPERWEAPON_SpawnWhirlwind
  630.         CreateLocation            = CREATE_AT_LOCATION
  631.         StartsPaused            = Yes
  632.     End
  633.  
  634.     Behavior = AIUpdateInterface ModuleTag_03
  635.         AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
  636.         MoodAttackCheckRate        = 500
  637.     End
  638.  
  639.     Behavior = EmotionTrackerUpdate    Module_EmotionTracker
  640.         TauntAndPointDistance        =    250        ; max distance to taunted/pointed objet
  641.          TauntAndPointUpdateDelay    =    1000    ; how often scan (milliseconds)
  642.          
  643.         AddEmotion            =    Terror_Base
  644.         AddEmotion            =    Doom_Base
  645.         //    AddEmotion            =   BraceForBeingCrushed_Base
  646.         AddEmotion            =    UncontrollableFear_Base
  647.         //    AddEmotion            =    FearIdle_Base
  648.         //    AddEmotion            =    FearBusy_Base
  649.         AddEmotion            =    Point_Base
  650.         AddEmotion            =    Taunt_Base
  651.          AddEmotion            =    CheerIdle_Base
  652.         AddEmotion            =    CheerBusy_Base
  653.         //    AddEmotion            =    HeroCheerIdle_Base
  654.         //    AddEmotion            =    HeroCheerBusy_Base
  655.         AddEmotion            =    Alert_Base
  656.         AddEmotion            =    CheerForAboutToCrush_Base
  657.      End
  658.  
  659.     LocomotorSet
  660.         Locomotor = IsildurHumanLocomotor
  661.         Condition = SET_NORMAL 
  662.         Speed     = NORMAL_ELVEN_FAST_MEMBER_SPEED
  663.     End
  664.  
  665.     Behavior = PhysicsBehavior ModuleTag_04
  666.         GravityMult            = 1.0
  667.         ShockStandingTime    = 3000
  668.         ShockStunnedTimeLow    = 1000
  669.         ShockStunnedTimeHigh= 1200
  670.     End
  671.     
  672.     Behavior = SlowDeathBehavior ModuleTag_05
  673.         DeathTypes = ALL 
  674.         SinkDelay = 4300
  675.         SinkRate = 3.0     ; in Dist/Sec
  676.         DestructionDelay = 8000
  677.         Sound = INITIAL    ElrondVoiceDie
  678.     End
  679.     
  680.     Behavior = SquishCollide ModuleTag_06
  681.         ;nothing
  682.     End
  683.     
  684.     Behavior = HitReactionBehavior HitReactionBehaviorModuleTag
  685.         HitReactionLifeTimer1 = 7 ; level 1 (light  damage)  hit reaction animations in frames (5 per sec)
  686.         HitReactionLifeTimer2 = 15 ; level 2 (medium damage)  hit reaction animations in frames (5 per sec)
  687.         HitReactionLifeTimer3 = 10 ; level 3 (heavy  damage)  hit reaction animations in frames (5 per sec)
  688.  
  689.         HitReactionThreshold1 = 0.0   ; level 1 (light  damage) threshold trigger
  690.         HitReactionThreshold2 = 25.0  ; level 2 (medium damage) threshold trigger
  691.         HitReactionThreshold3 = 50.0  ; level 3 (heavy  damage) threshold trigger
  692.     End
  693.     
  694.     Behavior = AutoHealBehavior ModuleTag_ElvenGiftHealing
  695.         StartsActive                = No
  696.         TriggeredBy                    = Upgrade_ElvenGift
  697.         HealingAmount                = ELVEN_GIFT_REGEN_AMOUNT
  698.         HealingDelay                = ELVEN_GIFT_REGEN_DELAY
  699.         StartHealingDelay = HERO_HEAL_DELAY
  700.         HealOnlyIfNotInCombat = Yes
  701.     End
  702.     
  703.     Behavior = AttributeModifierUpgrade ModuleTag_ElvenGiftBonus
  704.         TriggeredBy = Upgrade_ElvenGift
  705.         AttributeModifier = SpellBookElvenGifts
  706.     End
  707.     
  708.  
  709.     ;///////////////////
  710.     ; AISpecialPowers
  711.     ;///////////////////
  712.  
  713.     Behavior = AISpecialPowerUpdate AthelasAI
  714.         CommandButtonName = Command_SpecialAbilityElrondElvenGrace
  715.         SpecialPowerAIType = AI_SPECIAL_POWER_SELFAOEHEALHEROS
  716.     End
  717.     
  718.     Behavior = AISpecialPowerUpdate FarsightAI
  719.         CommandButtonName = Command_SpecialAbilityElrondFarsight
  720.         SpecialPowerAIType = AI_SPELLBOOK_SHROUD_REVEAL
  721.     End
  722.     
  723.     Behavior = AISpecialPowerUpdate WhirlwindAI
  724.         CommandButtonName = Command_SpecialPowerSpawnWhirlwind
  725.         SpecialPowerAIType = AI_SPECIAL_POWER_TARGETAOE_SUMMON
  726.         SpecialPowerRadius = 30.0
  727.     End
  728.     
  729.     Behavior = AISpecialPowerUpdate RestorationAI
  730.         CommandButtonName = Command_SpecialAbilityElrondRestoration
  731.         SpecialPowerAIType = AI_SPECIAL_POWER_SELFAOEHEALHEROS
  732.     End
  733.  
  734.     Geometry = CYLINDER
  735.     GeometryMajorRadius = 8.0
  736.     GeometryMinorRadius = 8.0
  737.     GeometryHeight = 19.2
  738.     GeometryIsSmall = Yes
  739.     Shadow = SHADOW_DECAL
  740.     ShadowSizeX = 20;
  741.     ShadowSizeY = 20;
  742.     ShadowTexture = ShadowI;
  743. End
  744.  
  745.  
  746. ;------------------------------------------------------------------------------
  747. ;
  748. ;    Celeborn
  749. ;
  750. ;    Because celeborn is a child, must be defined after elrond.
  751. ;
  752. ;------------------------------------------------------------------------------
  753.  
  754. ChildObject ElvenCeleborn ElvenElrond
  755.  
  756.     SelectPortrait  =  HPCeleborn
  757.     ButtonImage  =  HICeleborn
  758.  
  759.     ; *** ART Parameters ***
  760.  
  761.     Draw = W3DScriptedModelDraw ModuleTag_DRAW
  762.  
  763.         OkToChangeModelColor    = Yes
  764.         StaticModelLODMode        = Yes
  765.  
  766.         DefaultModelConditionState
  767.             Model                        =    EUCELEB_SKN
  768.         End
  769.     
  770.         ; ------ Flying ------- ;
  771.  
  772.         AnimationState                    = STUNNED_STANDING_UP
  773.             StateName                    = GetUp
  774.             Animation                   = GetUpSword
  775.                 AnimationName           = RUElrond_SKL.RUElrond_GTPSX1
  776.                 AnimationMode           = ONCE
  777.             End
  778.             BeginScript
  779.                 Prev = CurDrawablePrevAnimation()
  780.                 if Prev == "FallWithSword"
  781.                 then
  782.                     return "GetUpSword"
  783.                 end
  784.             EndScript
  785.         End
  786.  
  787.         AnimationState                    = STUNNED
  788.             Animation                   = FallWithSword
  789.                 AnimationName           = RUElrond_SKL.RUElrond_LNDB
  790.                 AnimationMode           = ONCE
  791.             End
  792.             Flags = MAINTAIN_FRAME_ACROSS_STATES
  793.             
  794.             
  795.             BeginScript
  796.                 CurDrawableHideSubObject("ArrowNock")
  797.                 CurDrawableHideSubObject("arrow")
  798.                 Prev = CurDrawablePrevAnimation()
  799.             
  800.                 return "FallWithSword"
  801.             EndScript
  802.         End
  803.         
  804.         AnimationState                    = STUNNED_FLAILING
  805.             Animation                   = DieWithSword
  806.                 AnimationName           = RUElrond_SKL.RUElrond_FLYB
  807.                 AnimationMode           = LOOP
  808.             End
  809.             
  810.             BeginScript
  811.                 CurDrawableHideSubObject("ArrowNock")
  812.                 CurDrawableHideSubObject("arrow")
  813.             EndScript
  814.         End
  815.         
  816.         
  817.         ; ------ Dying ------- ;
  818.  
  819.         AnimationState                    = DYING
  820.             Animation                   = DieWithSword
  821.                 AnimationName           = RUElrond_SKL.RUElrond_DIESv5
  822.                 AnimationMode           = ONCE
  823.             End
  824.             ;Animation                   = DieWithSword
  825.             ;    AnimationName           = RUElrond_SKL.RUElrond_DIESV4
  826.             ;    AnimationMode           = ONCE
  827.             ;End
  828.             
  829.             BeginScript
  830.                 CurDrawableHideSubObject("ArrowNock")
  831.                 CurDrawableHideSubObject("arrow")
  832.             EndScript
  833.         End
  834.         
  835.         AnimationState                        = PARALYZED
  836.             Animation
  837.                 AnimationName                = RUElrond_SKL.RUElrond_IDLF
  838.                 AnimationMode                = LOOP
  839.             End
  840.         End
  841.     
  842.     
  843.         ; ------------ Moving ------------- ;
  844.         
  845.         AnimationState                    = MOVING
  846.             StateName                    = Moving_Sword
  847.             SimilarRestart                = Yes
  848.             Animation                   = run_s
  849.                 AnimationName           = RUElrond_SKL.RUElrond_RUNS
  850.                 AnimationMode           = LOOP
  851.                 Distance                = 40
  852.             End
  853.             Animation                    = finishrun_b
  854.                 AnimationName           = RUElrond_SKL.RUElrond_RUNB
  855.                 AnimationMode           = ONCE
  856.                 AnimationBlendTime        = 0
  857.                 Distance                = 40
  858.             End
  859.             Animation                    = runtrans_bs
  860.                 AnimationName           = RUElrond_SKL.RUElrond_RUNC
  861.                 AnimationMode           = ONCE
  862.                 AnimationBlendTime        = 0
  863.                 Distance                = 70
  864.             End
  865.             Animation                    = runtrans_sb_finish
  866.                 AnimationName           = RUElrond_SKL.RUElrond_RUNT
  867.                 AnimationMode           = ONCE
  868.                 AnimationBlendTime        = 0
  869.                 Distance                = 70
  870.             End
  871.             Animation                    = runnoblend_s
  872.                 AnimationName           = RUElrond_SKL.RUElrond_RUNS
  873.                 AnimationMode           = LOOP
  874.                 AnimationBlendTime        = 0
  875.                 Distance                = 40
  876.             End
  877.             Flags = MAINTAIN_FRAME_ACROSS_STATES RESTART_ANIM_WHEN_COMPLETE
  878.             
  879.             BeginScript
  880.                 PrevAnim    = CurDrawablePrevAnimation()
  881.                 PrevState    = CurDrawablePrevAnimationState()
  882.                 
  883.                 if PrevState == "GetUp"  or PrevAnim == "DrawSwords"
  884.                 then
  885.                     if PrevAnim == "DrawSwords"
  886.                     then
  887.                         return "runtrans_bs"
  888.                     else
  889.                         return
  890.                     end
  891.                 elseif PrevAnim == "finishrun_b" or PrevAnim == "runtrans_sb_finish"
  892.                 then
  893.                     return "runtrans_bs"
  894.                 elseif PrevAnim == "runtrans_bs" or PrevAnim == "run_s" or PrevAnim == "runnoblend_s"
  895.                 then
  896.                     return "runnoblend_s"
  897.                 else
  898.                     return "run_s"
  899.                 end                
  900.             EndScript
  901.         End
  902.         
  903.         ; ------ Attacking ------- ;
  904.         
  905.         AnimationState                    = FIRING_OR_PREATTACK_A
  906.             StateName                    = Ready_Sword
  907.             
  908.             Animation                   = AttackWithSwordA
  909.                 AnimationName           = RUElrond_SKL.RUElrond_ATKSV2
  910.                 AnimationMode           = ONCE
  911.                 UseWeaponTiming            = Yes
  912.             End
  913.             Animation                   = AttackWithSwordB
  914.                 AnimationName           = RUElrond_SKL.RUElrond_ATKS
  915.                 AnimationMode           = ONCE
  916.                 UseWeaponTiming            = Yes
  917.             End
  918.             Animation                   = AttackWithSwordD
  919.                 AnimationName           = RUElrond_SKL.RUElrond_ATKSV4
  920.                 AnimationMode           = ONCE
  921.                 UseWeaponTiming            = Yes
  922.             End
  923.             BeginScript
  924.                 CurDrawableHideSubObject("ArrowNock")
  925.                 CurDrawableHideSubObject("arrow")
  926.             EndScript
  927.         End
  928.  
  929.         AnimationState                    = USER_1
  930.             Animation
  931.                 AnimationName            = RUElrond_SKL.RUElrond_TNTSV1
  932.                 AnimationMode            = ONCE
  933.             End
  934.         End
  935.  
  936.         AnimationState                = LEVELED
  937.             Animation                = LevelUp
  938.                 AnimationName        = RUElrond_SKL.RUElrond_CHRST2
  939.                 AnimationMode        = ONCE
  940.                 AnimationBlendTime    = 20
  941.             End
  942.         End
  943.         
  944.         ; -------- Alert ------- ;
  945.         
  946.         AnimationState                    = EMOTION_ALERT
  947.             StateName                    = Ready_Sword
  948.             
  949.             Animation                    = Alert_1
  950.                 AnimationName            = RUElrond_SKL.RUElrond_IDLST1
  951.                 AnimationMode            = ONCE
  952.                 AnimationPriority        = 20
  953.             End
  954.             Animation                    = Alert_1
  955.                 AnimationName            = RUElrond_SKL.RUElrond_IDLST1    ; Secondary to solve the 'no play last anim' feature.
  956.                 AnimationMode            = ONCE
  957.                 AnimationPriority        = 20
  958.             End
  959.             Animation                    = Alert_2
  960.                 AnimationName            = RUElrond_SKL.RUElrond_TNTSV1
  961.                 AnimationMode            = ONCE
  962.                 AnimationPriority        = 5
  963.             End
  964.             Flags                        = RESTART_ANIM_WHEN_COMPLETE
  965.             
  966.             BeginScript
  967.                 Prev = CurDrawablePrevAnimationState()
  968.                 PrevName = CurDrawablePrevAnimation()
  969.                 
  970.                 CurDrawableHideSubObject("ArrowNock")
  971.                 CurDrawableHideSubObject("arrow")
  972.  
  973.                 if        Prev == "Bored_Sword"        then CurDrawableSetTransitionAnimState("TRANS_BR_Sword")
  974.                 elseif    Prev == "Selected_Sword"        then CurDrawableSetTransitionAnimState("TRANS_SR_Sword")
  975.                 end
  976.             EndScript
  977.         End
  978.         
  979.         ; --------- Hit Reactions ---------- ;
  980.         
  981.         AnimationState = HIT_REACTION HIT_LEVEL_1
  982.             StateName                    = Bored_Sword
  983.             Animation                    = Hit_Level_1_a
  984.                 AnimationName            = RUElrond_SKL.RUElrond_HITSv1
  985.                 AnimationMode            = ONCE
  986.                 AnimationBlendTime        = 20
  987.             End
  988.         End
  989.  
  990.         
  991.         ; ------ Selected ------ ;
  992.  
  993.         AnimationState                =    SELECTED
  994.             StateName                =    Selected_Sword
  995.             
  996.             Animation                =    ATNA
  997.                 AnimationName        =    RUElrond_SKL.RUElrond_ATNS
  998.                 AnimationMode        =    LOOP
  999.             End
  1000.             
  1001.             BeginScript
  1002.                 CurDrawableHideSubObject("ARROW")
  1003.                 CurDrawableHideSubObject("ARROWNOCK")
  1004.                 
  1005.                 Prev = CurDrawablePrevAnimationState()
  1006.                 PrevName = CurDrawablePrevAnimation()
  1007.                 if Prev == "Bored_Sword"        then CurDrawableSetTransitionAnimState("TRANS_BS_Sword")
  1008.                 elseif Prev == "Ready_Sword"        then CurDrawableSetTransitionAnimState("TRANS_RS_Sword")
  1009.                 end    
  1010.             EndScript
  1011.         End
  1012.  
  1013.         
  1014.         ; ------- Bored -------- ;
  1015.         
  1016.         IdleAnimationState
  1017.             StateName                    = Bored_Sword
  1018.             
  1019.             Animation                   = IDLCX1
  1020.                 AnimationName           = RUElrond_SKL.RUElrond_IDLF
  1021.                 AnimationMode           = ONCE
  1022.                 AnimationPriority        = 20
  1023.             End
  1024.             Animation                   = IDLCX1
  1025.                 AnimationName           = RUElrond_SKL.RUElrond_IDLF    ; Secondary to solve the 'no play last anim' feature.
  1026.                 AnimationMode           = ONCE
  1027.                 AnimationPriority        = 20
  1028.             End
  1029.             Animation                   = IDLCt3
  1030.                 AnimationName           = RUElrond_SKL.RUElrond_IDLCT3
  1031.                 AnimationMode           = ONCE
  1032.                 AnimationPriority        = 10
  1033.             End
  1034.             Animation                   = IDLCT1
  1035.                 AnimationName           = RUElrond_SKL.RUElrond_IDLCT1
  1036.                 AnimationMode           = ONCE
  1037.                 AnimationPriority        = 5
  1038.             End
  1039.             
  1040.             Flags                        = RESTART_ANIM_WHEN_COMPLETE
  1041.  
  1042.             BeginScript
  1043.                 CurDrawableHideSubObject("ARROW")
  1044.                 CurDrawableHideSubObject("ARROWNOCK")                
  1045.  
  1046.                 Prev = CurDrawablePrevAnimationState()
  1047.                 PrevName = CurDrawablePrevAnimation()
  1048.                 if Prev == "Selected_Sword"        then CurDrawableSetTransitionAnimState("TRANS_SB_Sword")
  1049.                 elseif Prev == "Ready_Sword"        then CurDrawableSetTransitionAnimState("TRANS_RB_Sword")
  1050.                 end    
  1051.             EndScript
  1052.         End
  1053.         
  1054.         ;----------------- Sword Transitions -------------------------;
  1055.         
  1056.         TransitionState                   = TRANS_BS_Sword
  1057.             Animation                   = TRANS_BS_Sword
  1058.                 AnimationName             = RUElrond_SKL.RUElrond_ATNA
  1059.                 AnimationMode             = ONCE
  1060.             End
  1061.             Animation                   = ATNAX1
  1062.                 AnimationName             = RUElrond_SKL.RUElrond_ATNX1
  1063.                 AnimationMode             = ONCE
  1064.             End
  1065.         End
  1066.         
  1067.         TransitionState                   = TRANS_SR_Sword
  1068.             Animation                   = TRANS_SR_Sword
  1069.                 AnimationName             = RUElrond_SKL.RUElrond_ATNC
  1070.                 AnimationMode             = ONCE
  1071.             End
  1072.         End
  1073.         
  1074.         TransitionState                   = TRANS_SB_Sword
  1075.             Animation                   = TRANS_SB_Sword
  1076.                 AnimationName             = RUElrond_SKL.RUElrond_ATNA
  1077.                 AnimationMode             = ONCE_BACKWARDS
  1078.             End
  1079.             Flags = START_FRAME_LAST
  1080.         End
  1081.         
  1082.         TransitionState                   = TRANS_RS_Sword
  1083.             Animation                   = TRANS_RS_Sword
  1084.                 AnimationName             = RUElrond_SKL.RUElrond_ATNC
  1085.                 AnimationMode             = ONCE_BACKWARDS
  1086.             End
  1087.             Flags = START_FRAME_LAST
  1088.         End
  1089.         
  1090.         TransitionState                   = TRANS_BR_Sword
  1091.             Animation                   = TRANS_BR_Sword
  1092.                 AnimationName             = RUElrond_SKL.RUElrond_ATNS
  1093.                 AnimationMode             = ONCE
  1094.                 AnimationBlendTime        = 20
  1095.             End
  1096.         End
  1097.         
  1098.         TransitionState                   = TRANS_RB_Sword
  1099.             Animation                   = TRANS_RB_Sword
  1100.                 AnimationName             = RUElrond_SKL.RUElrond_IDLG
  1101.                 AnimationMode             = ONCE
  1102.                 AnimationBlendTime        = 20
  1103.             End
  1104.         End
  1105.         
  1106.     End
  1107.  
  1108.     DisplayName = OBJECT:ElvenCeleborn
  1109.  
  1110. End
  1111.