Posted 08 May 2006 - 05:14 PM
[codebox]
;------------------------------------------------------------------------------
;
; Strider.ini
;
;------------------------------------------------------------------------------
; Strider Aragorn
Object Strider
; *** ART Parameters ***
; SelectPortrait for Heros is portrait behind skill buttons. HP = HeroPortrait.
SelectPortrait = HPAragorn
; ButtonImage for Heros is button image on Hero Select UI to select hero. HI = HeroIcon or HeroImage.
ButtonImage = HIStrider
DescriptionStrategic = CONTROLBAR:LW_ToolTip_Faramir
Draw = W3DScriptedModelDraw ModuleTag_DRAW
OkToChangeModelColor = Yes
StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD
ExtraPublicBone = arrow
ExtraPublicBone = PASSENGERBONE
DependencySharedModelFlags = TURN_LEFT_HIGH_SPEED TURN_RIGHT_HIGH_SPEED MOVING ACCELERATE DECELERATE TURN_LEFT TURN_RIGHT ATTACKING BACKING_UP
;;====================== MODELS ================================================================
DefaultModelConditionState
Model = GUFaramir_SKN
WeaponLaunchBone = PRIMARY arrow
End
ModelConditionState = WEAPONSET_HERO_MODE USER_3
ParticleSysBone = BAT_RIBS BladeMaster FollowBone:Yes
End
ModelConditionState = WEAPONSET_HERO_MODE
ParticleSysBone = BAT_RIBS BladeMaster FollowBone:Yes
End
;;================== ANIMATIONS =================================================================
;;----------- Captain of Gondor Mounted
AnimationState = PACKING_TYPE_2 MOUNTED
StateName = STATE_CaptainMounted
Animation = GUFaramir_IDLC
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_IDLC
AnimationMode = ONCE
AnimationSpeedFactorRange = 0.5 0.5
End
;;----------- Captain of Gondor - Sword
AnimationState = PACKING_TYPE_2 WEAPONSET_TOGGLE_1
StateName = CaptainPower
Animation = GUFaramir_CHRC
AnimationName = GUFaramir_SKL.GUFaramir_CHRC
AnimationMode = ONCE
AnimationSpeedFactorRange = 1.2 1.2
End
;;----------- Captain of Gondor - Bow
AnimationState = PACKING_TYPE_2
StateName = STATE_CaptainBow
Animation = GUFaramir_CHRD
AnimationName = GUFaramir_SKL.GUFaramir_CHRD
AnimationMode = ONCE
AnimationSpeedFactorRange = 0.75 0.75
End
End
;;------------------ DYING -------------------------------------------------------------
; --- Flying through the air.
AnimationState = STUNNED_FLAILING WEAPONSET_TOGGLE_1
StateName = STATE_Sword
Animation = GUFaramir_FLYB
AnimationName = GUFaramir_SKL.GUFaramir_FLYB
AnimationMode = LOOP
AnimationSpeedFactorRange = 0.4 0.6
End
Flags = RANDOMSTART
End
AnimationState = STUNNED_FLAILING
StateName = STATE_Bow
Animation = GUFaramir_FLYA
AnimationName = GUFaramir_SKL.GUFaramir_FLYA
AnimationMode = LOOP
AnimationSpeedFactorRange = 0.4 0.6
End
Flags = RANDOMSTART
End
; --- Dying anims
AnimationState = DYING SPLATTED WEAPONSET_TOGGLE_1
StateName = STATE_Sword
Animation = GUFaramir_LNDB
AnimationName = GUFaramir_SKL.GUFaramir_LNDB
AnimationMode = ONCE
End
End
AnimationState = DYING SPLATTED
StateName = STATE_Bow
Animation = GUFaramir_LNDA
AnimationName = GUFaramir_SKL.GUFaramir_LNDA
AnimationMode = ONCE
End
End
; with sword
AnimationState = DYING WEAPONSET_TOGGLE_1 ;WEAPONSTATE_CLOSE_RANGE
StateName = STATE_Sword
Animation = GUFaramir_DIEA
AnimationName = GUFaramir_SKL.GUFaramir_DIEA
AnimationMode = ONCE
End
Animation = GUFaramir_DIEB
AnimationName = GUFaramir_SKL.GUFaramir_DIEB
AnimationMode = ONCE
End
End
; with bow
AnimationState = DYING
StateName = STATE_Bow
Animation = GUFaramir_DIEC
AnimationName = GUFaramir_SKL.GUFaramir_DIEC
AnimationMode = ONCE
End
End
AnimationState = PARALYZED
Animation
AnimationName = GUFaramir_IDLC
AnimationMode = LOOP
End
End
; --- Stunned anims
AnimationState = STUNNED_STANDING_UP WEAPONSET_TOGGLE_1
StateName = STATE_Sword
Animation = GUFaramir_GTPB
AnimationName = GUFaramir_SKL.GUFaramir_GTPB
AnimationMode = ONCE
AnimationSpeedFactorRange = 1.5 1.5
End
End
AnimationState = STUNNED_STANDING_UP
StateName = STATE_Bow
Animation = GUFaramir_GTPA
AnimationName = GUFaramir_SKL.GUFaramir_GTPA
AnimationMode = ONCE
AnimationSpeedFactorRange = 1.5 1.5
End
End
AnimationState = STUNNED WEAPONSET_TOGGLE_1
StateName = STATE_Sword
Animation = GUFaramir_LNDB
AnimationName = GUFaramir_SKL.GUFaramir_LNDB
AnimationMode = ONCE
End
End
AnimationState = STUNNED
StateName = STATE_Bow
Animation = GUFaramir_LNDA
AnimationName = GUFaramir_SKL.GUFaramir_LNDA
AnimationMode = ONCE
End
End
;;----------- pose
AnimationState = USER_1
;*****************************************************************
;ParticleSysBone = B_SWORDBONE AndruilEfxParent FollowBone:yes
;*****************************************************************
Animation = GUFaramir_POSA
AnimationName = GUFaramir_SKL.GUFaramir_POSA
AnimationMode = ONCE
End
End
;--------------------- Wound Arrow anim
AnimationState = SPECIAL_WEAPON_ONE
StateName = STATE_Bow
Animation
AnimationName = GUFaramir_SKL.GUFaramir_ATKC
AnimationMode = ONCE
End
FrameForPristineBonePositions = 59
BeginScript
CurDrawableShowSubObject("arrow")
EndScript
End
;;------------------ ATTACKING --------------------------------------------------------------------
; Attacking Anims [Weapon_A]
AnimationState = MOVING WEAPONSET_TOGGLE_1 FIRING_OR_PREATTACK_A
Animation = TrotAndFire
AnimationName = GUFaramir_SKL.GUFaramir_ATRA
AnimationMode = LOOP
End
Flags = RANDOMSTART
StateName = RunAndSwing
End
AnimationState = FIRING_OR_PREATTACK_A WEAPONSET_TOGGLE_1
StateName = STATE_Sword
Animation = ATKD
AnimationName = GUFaramir_SKL.GUFaramir_ATKD
AnimationMode = ONCE
UseWeaponTiming = Yes
AnimationSpeedFactorRange = 1.149 1.149
End
Animation = ATKE
AnimationName = GUFaramir_SKL.GUFaramir_ATKE
AnimationMode = ONCE
UseWeaponTiming = Yes
AnimationSpeedFactorRange = 1.149 1.149
End
Animation = ATKF
AnimationName = GUFaramir_SKL.GUFaramir_ATKF
AnimationMode = ONCE
AnimationSpeedFactorRange = 1.47 1.47
End
Flags = RESTART_ANIM_WHEN_COMPLETE
; FrameForPristineBonePositions = 59
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Bow" then CurDrawableSetTransitionAnimState("TRANS_BowToSword") end
EndScript
End
;;------------------ MOVING -------------------------------------------------------------
AnimationState = MOVING USER_4 ; Moving slaughter
StateName = Slaughter
Flags = RANDOMSTART
;ParticleSysBone = None InfantryDustTrails
Animation = GUFaramir_ATKE
AnimationName = GUFaramir_SKL.GUFaramir_ATKE
AnimationMode = LOOP
End
StateName = NoSword
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "Sword" then CurDrawableSetTransitionAnimState("TRANS_SwordToBow") end
EndScript
End
;--- Running with sword
AnimationState = MOVING WEAPONSET_TOGGLE_1 ;WEAPONSTATE_CLOSE_RANGE
StateName = STATE_RunningSword
Flags = RANDOMSTART
;ParticleSysBone = None InfantryDustTrails
Animation = GUFaramir_RUNB
AnimationName = GUFaramir_SKL.GUFaramir_RUNB
; AnimationMode = LOOP
AnimationSpeedFactorRange = 0.85 0.85
Distance = 28
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Bow" then CurDrawableSetTransitionAnimState("TRANS_BowToSword") end
if Prev == "STATE_RunningBow" then CurDrawableSetTransitionAnimState("TRANS_BowToSword_Running") end
EndScript
End
;--- Running with bow
AnimationState = MOVING
StateName = STATE_RunningBow
Flags = RANDOMSTART
;ParticleSysBone = None InfantryDustTrails
Animation = GUFaramir_RUNA
AnimationName = GUFaramir_SKL.GUFaramir_RUNA
; AnimationMode = LOOP
AnimationSpeedFactorRange = 0.85 0.85
Distance = 28
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Sword" then CurDrawableSetTransitionAnimState("TRANS_SwordToBow") end
if Prev == "STATE_RunningSword" then CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Running") end
EndScript
End
;---------------------------------------------------
;New style firing with bow
AnimationState = PREATTACK_A
StateName = STATE_Firing
Animation = ReadyToDrawn
AnimationName = GUFaramir_SKL.GUFaramir_ATKA1
AnimationMode = ONCE
; UseWeaponTiming = Yes ; UseWeaponTiming plus random weapon field equals desync. Leaving as warning
;AnimationBlendTime = 10
End
End
AnimationState = FIRING_OR_RELOADING_A
StateName = STATE_Firing
Animation = LooseReloadDraw
AnimationName = GUFaramir_SKL.GUFaramir_ATKA2
AnimationMode = ONCE
; UseWeaponTiming = Yes ; UseWeaponTiming plus random weapon field equals desync. Leaving as warning
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
;AnimationBlendTime = 10
End
End
;---------------------End New style firing
AnimationState = CONTINUOUS_FIRE_MEAN
Animation = HangFrameWhileCoasting
AnimationName = GUFaramir_SKL.GUFaramir_ATKA2
AnimationMode = MANUAL
End
End
AnimationState = CONTINUOUS_FIRE_SLOW
;StateName = STATE_Idle_Bow
Animation = PutAwayArrow
AnimationName = GUFaramir_SKL.GUFaramir_ATKA3
AnimationMode = ONCE
End
End
;End New style firing
;---------------------------------------------------
;;-------------------- HIT REACTIONS -----------------------------------------------------------
; this hit animation attack stance
AnimationState = EMOTION_ALERT HIT_REACTION WEAPONSET_TOGGLE_1
Animation = Hit_Level_1_d
AnimationName = GUFaramir_SKL.GUFaramir_HITD
AnimationMode = ONCE
End
End
AnimationState = HIT_REACTION WEAPONSET_TOGGLE_1
Animation = Hit_Level_1_b
AnimationName = GUFaramir_SKL.GUFaramir_HITB
AnimationMode = ONCE
End
End
AnimationState = HIT_REACTION
Animation = Hit_Level_1_c
AnimationName = GUFaramir_SKL.GUFaramir_HITC
AnimationMode = ONCE
End
End
;;------------ EMOTIONS ------------------------------------------------------------------
;;====== LEVELED
AnimationState = LEVELED WEAPONSET_TOGGLE_1 ; This state clears itself in 3 seconds
Animation = LevelUp
AnimationName = GUFaramir_SKL.GUFaramir_CHRC
AnimationMode = ONCE
End
End
AnimationState = LEVELED ; This state clears itself in 3 seconds
Animation = LevelUp
AnimationName = GUFaramir_SKL.GUFaramir_CHRD
AnimationMode = ONCE
End
End
;;====== CELEBRATING
AnimationState = EMOTION_CELEBRATING WEAPONSET_TOGGLE_1 ; sword cheer
Animation
AnimationName = GUFaramir_SKL.GUFaramir_CHRC
AnimationMode = LOOP
End
End
AnimationState = EMOTION_CELEBRATING ; bow cheer
Animation
AnimationName = GUFaramir_SKL.GUFaramir_CHRD
AnimationMode = LOOP
End
End
;;====== TAUNTING
AnimationState = EMOTION_TAUNTING WEAPONSET_TOGGLE_1 ; sword taunt
Animation
AnimationName = GUFaramir_SKL.GUFaramir_TNTC
AnimationMode = ONCE
End
Animation
AnimationName = GUFaramir_SKL.GUFaramir_TNTD
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
End
AnimationState = EMOTION_TAUNTING ; bow taunt
Animation
AnimationName = GUFaramir_SKL.GUFaramir_CHRD
AnimationMode = LOOP
End
End
;;------------------- SELECTED STATES ------------------------------------------------------------
AnimationState = ATTACKING WEAPONSET_TOGGLE_1
StateName = STATE_Sword
Animation = ATKD
AnimationName = GUFaramir_SKL.GUFaramir_ATKD
AnimationMode = MANUAL
End
End
;;------------------- SELECTED STATES ------------------------------------------------------------
AnimationState = SELECTED WEAPONSET_TOGGLE_1
StateName = STATE_Selected_Sword
Animation = ATNE
AnimationName = GUFaramir_SKL.GUFaramir_ATNE
AnimationMode = LOOP
AnimationBlendTime = 15
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
CurDrawableHideSubObject("arrow")
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Selected_Bow" then CurDrawableSetTransitionAnimState("TRANS_BowToSword") end
if Prev == "STATE_Idle_Sword" then CurDrawableSetTransitionAnimState("TRANS_BoredToSelectedSword") return end
EndScript
End
;;====== ALERT
AnimationState = EMOTION_ALERT WEAPONSET_TOGGLE_1
StateName = STATE_READY
Animation = ready
AnimationName = GUFaramir_SKL.GUFaramir_IDLA
AnimationMode = LOOP
AnimationBlendTime = 20
End
End
AnimationState = RAISING_FLAG
Animation
AnimationName = GUFaramir_SKL.GUFaramir_CHRD
AnimationMode = LOOP
End
End
AnimationState = SELECTED
StateName = STATE_Selected_Bow
Animation = ATNB
AnimationName = GUFaramir_SKL.GUFaramir_ATNB
AnimationMode = LOOP
AnimationBlendTime = 15
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Selected_Sword" then CurDrawableSetTransitionAnimState("TRANS_SwordToBow") end
if Prev == "STATE_Idle_Bow" then CurDrawableSetTransitionAnimState("TRANS_BoredToSelectedBow") return end
if Prev == "STATE_CaptainBow" then CurDrawableSetTransitionAnimState("TRANS_CaptainBowToSelectedBow") end
EndScript
End
;;--------------- IDLE STATES -----------------------------------------------------------------
AnimationState = WEAPONSET_TOGGLE_1
StateName = STATE_Idle_Sword
Animation = IDLE
AnimationName = GUFaramir_SKL.GUFaramir_IDLE
AnimationMode = LOOP
AnimationPriority = 20
AnimationBlendTime = 15
End
Animation = IDLF
AnimationName = GUFaramir_SKL.GUFaramir_IDLF
AnimationMode = LOOP
AnimationPriority = 1
End
Animation = IDLG
AnimationName = GUFaramir_SKL.GUFaramir_IDLG
AnimationMode = LOOP
AnimationPriority = 1
End
BeginScript
CurDrawableHideSubObject("arrow")
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Idle_Bow" then CurDrawableSetTransitionAnimState("TRANS_BowToSword") end
if Prev == "STATE_Selected_Sword" then CurDrawableSetTransitionAnimState("TRANS_SelectedToBoredSword") end
EndScript
End
IdleAnimationState
StateName = STATE_Idle_Bow
Animation = IdleBow
AnimationName = GUFaramir_SKL.GUFaramir_IDLC
AnimationMode = ONCE
AnimationBlendTime = 15
End
BeginScript
CurDrawableShowSubObject("arrow")
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Idle_Sword" then CurDrawableSetTransitionAnimState("TRANS_SwordToBow") end
if Prev == "STATE_Selected_Bow" then CurDrawableSetTransitionAnimState("TRANS_SelectedToBoredBow") end
EndScript
End
;---transitions--------------------------------------------
TransitionState = TRANS_BoredToSelectedSword
Animation = ANTD
AnimationName = GUFaramir_SKL.GUFaramir_ANTD
AnimationMode = ONCE
End
End
TransitionState = TRANS_SelectedToBoredSword
Animation = ATNF
AnimationName = GUFaramir_SKL.GUFaramir_ATNF
AnimationMode = ONCE
End
End
TransitionState = TRANS_BoredToSelectedBow
Animation = ATNC
AnimationName = GUFaramir_SKL.GUFaramir_ATNC
AnimationMode = ONCE
End
End
TransitionState = TRANS_CaptainBowToSelectedBow
Animation = ATNC
AnimationName = GUFaramir_SKL.GUFaramir_ATNC
AnimationMode = ONCE
AnimationBlendTime = 10
AnimationSpeedFactorRange = 1.5 1.5
End
End
TransitionState = TRANS_SelectedToBoredBow
Animation = ATNA
; AnimationName = GUFaramir_SKL.GUFaramir_ATNA
AnimationName = GUFaramir_SKL.GUFaramir_ATND
AnimationMode = ONCE
End
End
TransitionState = TRANS_BowToSword
Animation = GUFaramir_STHA
AnimationName = GUFaramir_SKL.GUFaramir_STHA
AnimationMode = ONCE
End
End
TransitionState = TRANS_SwordToBow
Animation = GUFaramir_STHB
AnimationName = GUFaramir_SKL.GUFaramir_STHB
AnimationMode = ONCE
End
End
TransitionState = TRANS_BowToSword_Running
Animation = DrawSwords
AnimationName = GUFaramir_SKL.GUFaramir_STHD
AnimationMode = ONCE
End
End
TransitionState = TRANS_SwordToBow_Running
Animation = DrawBow
AnimationName = GUFaramir_SKL.GUFaramir_STHC
AnimationMode = ONCE
End
End
End
Draw = W3DScriptedModelDraw DustEffects
DefaultModelConditionState
Model = None
End
IdleAnimationState
End
AnimationState = MOUNTED MOVING WADING
ParticleSysBone = None FootstepSlash
End
AnimationState = MOUNTED MOVING ACCELERATE
ParticleSysBone = None GenericSiegeTrailDust
End
AnimationState = MOUNTED MOVING ACCELERATE
ParticleSysBone = None GenericSiegeTrailDust
End
AnimationState = MOUNTED MOVING
End
End
#include "..\..\..\includes\StunDrawModuleSmall.inc"
; ***DESIGN parameters ***
Side = Men
EditorSorting = UNIT
ThreatLevel = FARAMIR_THREAT_LEVEL
ThingClass = CHARACTER_UNIT
BuildCost = FARAMIR_BUILDCOST
BuildTime = FARAMIR_BUILDTIME
ShockwaveResistance = SHOCKWAVE_RESISTANCE_STRONG
TransportSlotCount = TRANSPORTSLOTCOUNT_HERO
MaxSimultaneousOfType = 1
;//DisplayMeleeDamage = FARAMIR_DAMAGE
;//DisplayRangedDamage = FARAMIR_BOW_DAMAGE
WeaponSet
Conditions = None
Weapon = PRIMARY FaramirBow
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
End
WeaponSet
Conditions = MOUNTED
Weapon = PRIMARY FaramirSword
End
WeaponSet
Conditions = WEAPONSET_TOGGLE_1 ;CLOSE_RANGE CONTESTING_BUILDING
Weapon = PRIMARY FaramirSword
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
End
ArmorSet
Conditions = None
Armor = HeroArmor
DamageFX = NormalDamageFX
End
ArmorSet
Conditions = MOUNTED
Armor = HeroArmorMounted
DamageFX = NormalDamageFX
End
VisionRange = VISION_HERO_RANGED
ShroudClearingRange = SHROUD_CLEAR_RANGED_HERO
MaxVisionBonusPercent = 300%
VisionBonusTestRadius = 200
VisionBonusPercentPerFoot = 1.0%
BountyValue = GONDOR_FARAMIR_BOUNTY_VALUE
DisplayName = OBJECT:AragonRanger
RecruitText = CONTROLBAR:AragonRangerRecruit
ReviveText = CONTROLBAR:AragonRangerRevive
Hotkey = CONTROLBAR:AragonRangerHotkey
CrusherLevel = 0 ;Can I crush anything?
MountedCrusherLevel = 1 ;Crush level when mounted.
CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = cavalry/heroes
MountedCrushableLevel = 2 ;Crusable level when mounted.
CrushWeapon = HeroCrush
MinCrushVelocityPercent = 50 ; Has to be moving at at least 50% of full speed.
CrushDecelerationPercent = 30 ; Lose xx percent of max velocity when crushing.
CrushKnockback = 40
CrushZFactor = 1.0
CommandSet = FaramirCommandSet
CommandPoints = 50
; *** AUTO RESOLVE DATA ***
AutoResolveUnitType = AutoResolveUnit_Hero
AutoResolveCombatChain = AutoResolve_HeroCombatChain
AutoResolveBody = AutoResolve_FaramirBody
AutoResolveArmor
Armor = AutoResolve_FaramirArmor
End
AutoResolveWeapon
Weapon = AutoResolve_FaramirWeapon
End
AutoResolveLeadership = AutoResolve_FaramirBonus
; *** AUDIO Parameters ***;
VoiceAttack = FaramirRangerVoiceAttack
VoiceAttackAir = FaramirRangerVoiceAttack
VoiceAttackCharge = FaramirRangerVoiceAttackCharge
VoiceAttackMachine = FaramirRangerVoiceAttack
VoiceAttackStructure = FaramirRangerVoiceAttackBuilding
;VoiceCreated = FaramirRangerVoiceSalute ;this conflicts with his respawn dialogue line -- rehooked to spawn FX
;VoiceFullyCreated = FaramirRangerVoiceSalute ;this conflicts with his respawn dialogue line -- rehooked to spawn FX
VoiceMove = FaramirRangerVoiceMove
VoiceMoveToCamp = FaramirRangerVoiceMoveCamp
VoiceMoveWhileAttacking = FaramirRangerVoiceDisengage
VoicePriority = 82
VoiceRetreatToCastle = FaramirRangerVoiceRetreat
VoiceSelect = FaramirRangerVoiceSelectMS
VoiceSelectBattle = FaramirRangerVoiceSelectBattle
VoiceGuard = FaramirRangerVoiceMove
SoundImpact = ImpactHorse
;FaramirRangerVoiceModeKnight
;FaramirRangerVoiceMoveTrees
UnitSpecificSounds
VoiceGarrison = FaramirRangerVoiceGarrison
VoiceEnterUnitElvenTransportShip = FaramirRangerVoiceMove
VoiceInitiateCaptureBuilding = FaramirRangerVoiceMove
VoiceMoveToTrees = FaramirRangerVoiceMoveTrees
End
ClientBehavior = ModelConditionSoundSelectorClientBehavior ModuleTag_MCSoundSelector
SoundState = MOUNTED
VoiceAttack = FaramirKnightVoiceAttack
VoiceAttackCharge = FaramirKnightVoiceAttackCharge
VoiceAttackMachine = FaramirKnightVoiceAttackBuilding
VoiceAttackStructure = FaramirKnightVoiceAttackBuilding
;VoiceCreated = FaramirRangerVoiceSalute ;this conflicts with his respawn dialogue line
;VoiceFullyCreated = FaramirRangerVoiceSalute ;this conflicts with his respawn dialogue line
VoiceFear = FaramirKnightVoiceHelpMe
VoiceMove = FaramirKnightVoiceMove
VoiceMoveToCamp = FaramirKnightVoiceMoveCamp
VoiceMoveWhileAttacking = FaramirKnightVoiceDisengage
VoiceRetreatToCastle = FaramirKnightVoiceRetreat
VoiceSelect = FaramirKnightVoiceSelectMS
VoiceSelectBattle = FaramirKnightVoiceSelectBattle
VoiceGuard = FaramirKnightVoiceMove
;SoundMoveStart = GondorHorseMoveStart ;this is for horse hordes
SoundImpact = ImpactHorse
VoicePriority = 82 ; You could do this if you wanted to...
UnitSpecificSounds
VoiceGarrison = FaramirKnightVoiceMove ; Just double-checking we don't play a ranger voice here
VoiceMoveToTrees = FaramirKnightVoiceMove ; So we don't play a ranger voice here
End
End
End
CrowdResponseKey = GoodMen
#include "..\..\..\includes\DefaultInvisibilityUpdate.inc"
#include "..\..\..\includes\StandardUnitEvaEvents.inc"
EvaEventDieOwner = FaramirDie ;Eva event to trigger on unit's death. NOTICE THAT this is only for permanent deaths
Behavior = LargeGroupAudioUpdate ModuleTag_LGAU ; Tie into LargeGroupAudio system
Key = Humanoid_Male Man Man_Male Unit Infantry Hero
;UnitWeight = 2
End
ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
MaxUpdateRangeCap = 800
AnimationSound = Sound:FootstepDirtA Animation:GUFaramir_SKL.GUFaramir_RUNA Frames:2 12
AnimationSound = Sound:FootstepDirtA Animation:GUFaramir_SKL.GUFaramir_RUNB Frames:2 12
AnimationSound = Sound:WeaponSwitchBow Animation:GUFaramir_SKL.GUFaramir_ATKC Frames:18 ;wounding arrow
AnimationSound = Sound:SwordShingClean1 Animation:GUFaramir_SKL.GUFaramir_STHA Frames:21
AnimationSound = Sound:SwordIntoScabbard1 Animation:GUFaramir_SKL.GUFaramir_STHB Frames:11
AnimationSound = Sound:WeaponSwitchBow Animation:GUFaramir_SKL.GUFaramir_STHB Frames:28
AnimationSound = Sound:SwordIntoScabbard1 Animation:GUFaramir_SKL.GUFaramir_STHC Frames:2
AnimationSound = Sound:WeaponSwitchBow Animation:GUFaramir_SKL.GUFaramir_STHC Frames:3
AnimationSound = Sound:SwordShingClean1 Animation:GUFaramir_SKL.GUFaramir_STHD Frames:6
AnimationSound = Sound:BodyFallGenericNoArmor Animation:GUFaramir_SKL.GUFaramir_DIEA Frames:88
AnimationSound = Sound:BodyFallGenericNoArmor Animation:GUFaramir_SKL.GUFaramir_DIEB Frames:85
AnimationSound = Sound:BodyFallGenericNoArmor Animation:GUFaramir_SKL.GUFaramir_DIEC Frames:49
AnimationSound = Sound:BodyFallSoldier Animation:GUFaramir_SKL.GUFaramir_LNDA Frames:3
AnimationSound = Sound:BodyFallSoldier Animation:GUFaramir_SKL.GUFaramir_LNDB Frames:2
AnimationSound = Sound:HorseMoveFootsteps Animation:RUHHs_Theo_SKL.RUHHs_Theo_ACCL Frames:14 32
AnimationSound = Sound:HorseMoveFootsteps Animation:RUHHs_Theo_SKL.RUHHs_Theo_RUNA Frames:0
AnimationSound = Sound:HorseMoveFootsteps Animation:RUHHs_Theo_SKL.RUHHs_Theo_TNL1 Frames:0
AnimationSound = Sound:HorseMoveFootsteps Animation:RUHHs_Theo_SKL.RUHHs_Theo_TNR1 Frames:0
AnimationSound = Sound:HorseWhinny50Percent Animation:RUHHs_Theo_SKL.RUHHs_Theo_IDLC Frames:0
AnimationSound = Sound:HorseDieForHero Animation:RUHHs_Theo_SKL.RUHHs_Theo_LNDA Frames:0
AnimationSound = Sound:BodyFallSoldier Animation:RUHHs_Theo_SKL.RUHHs_Theo_LNDA Frames:1 9
AnimationSound = Sound:HorseDieForHero Animation:RUHHs_Theo_SKL.RUHHs_Theo_DIEA Frames:0
AnimationSound = Sound:BodyFallGenericNoArmor Animation:RUHHs_Theo_SKL.RUHHs_Theo_DIEA Frames:4
AnimationSound = Sound:BodyFallSoldier Animation:RUHHs_Theo_SKL.RUHHs_Theo_DIEA Frames:42
End
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = HERO PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER SCORE ARMY_SUMMARY ATTACK_NEEDS_LINE_OF_SIGHT HEAVY_MELEE_HITTER
PathfindDiameter = 40.0
CamouflageDetectionMultiplier = CAMOUFLAGE_DETECTION_DISTANCE_SHEDIUM
Body = RespawnBody ModuleTag_RespawnBody
CheerRadius = EMOTION_CHEER_RADIUS
MaxHealth = FARAMIR_HEALTH ;BALANCE Faramir Health
PermanentlyKilledByFilter = NONE ;Who kills me permanently?
DodgePercent = HERO_DODGE_PERCENT
End
Behavior = RespawnUpdate ModuleTag_RespawnUpdate
DeathAnim = DYING ;Model condition to play when killed-to-respawn
DeathFX = FX_FaramirDieToRespawn ;FXList to play when killed-to-respawn
DeathAnimationTime = 5000 ;How long DeathAnim will take.
InitialSpawnFX = FX_FaramirInitialSpawn
RespawnAnim = LEVELED ;Animation to play when respawning.
RespawnFX = FX_FaramirRespawn ;FXList to play when respawning.
RespawnAnimationTime = 2000 ;Time it takes for respawn to play.
AutoRespawnAtObjectFilter = NONE +CASTLE_KEEP ;Respawn at this location -- and at it's exit production point if possible.
ButtonImage = HIFaramir_res
;RespawnEntries determine the ruleset for how a character can be revived. Some units may automatically respawn, others
;may require a specific revive action performed on him. You can specify different values for each level... or use Level:Any
RespawnRules = AutoSpawn:No Cost:600 Time:60000 Health:100% ;DEFAULT VALUES
End
Behavior = AutoHealBehavior ModuleTag_FaramirHealing
StartsActive = Yes
HealingAmount = HERO_HEAL_AMOUNT
HealingDelay = 1000
StartHealingDelay = HERO_HEAL_DELAY
HealOnlyIfNotInCombat = Yes
End
Behavior = NotifyTargetsOfImminentProbableCrushingUpdate ModuleTag_NotifyCrushScan
End
Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = Hero
End
#include "..\..\..\includes\CaptureBuilding.inc"
Behavior = AIUpdateInterface ModuleTag_03
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS STEALTHED
MoodAttackCheckRate = 500
HoldGroundCloseRangeDistance = 41
End
LocomotorSet
Locomotor = HeroHumanLocomotor
Condition = SET_NORMAL
Speed = NORMAL_GOOD_HERO_SPEED
End
;;; KINGS FAVOUR ;;;
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_KingsFavorEnabler
SpecialPowerTemplate = SpecialAbilityKingsFavor
TriggeredBy = Upgrade_FaramirCaptainOfGondor
End
Behavior = SpecialPowerModule ModuleTag_KingsFavorSpecialPowerModule
SpecialPowerTemplate = SpecialAbilityKingsFavor
StartsPaused = Yes
UpdateModuleStartsAttack = Yes
InitiateSound = FaramirKnightVoiceCaptain
End
Behavior = LevelGrantSpecialPower ModuleTag_KingsFavor
SpecialPowerTemplate = SpecialAbilityKingsFavor
UnpackingVariation = 2
StartAbilityRange = 200.0
; LevelFX = FX_PorterDeliver
LevelFX = FX_LevelUp
Experience = 50
RadiusEffect = 150
AcceptanceFilter = KINGSFAVOR_OBJECTFILTER
UnpackTime = 2000
PreparationTime = 1
FreezeAfterTriggerDuration = 2000 ; Hold AI for this long after we fire.
End
Behavior = AttributeModifierAuraUpdate ModuleTag_FaramirLeadership
StartsActive = No ;If no, requires upgrade to turn on.
BonusName = GenericHeroLeadership
TriggeredBy = Upgrade_FaramirLeadership
RefreshDelay = 2500
Range = 200
AntiCategory = BUFF
ObjectFilter = GENERIC_BUFF_RECIPIENT_OBJECT_FILTER
End
Behavior = SubObjectsUpgrade Costume_01
TriggeredBy = Upgrade_MerryHeavyArmor
UpgradeTexture = gufaramir.tga 0 gustrider.tga
RecolorHouse = Yes
End
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_TheodenLeadership
SpecialPowerTemplate = SpecialAbilityFakeLeadership
TriggeredBy = Upgrade_FaramirLeadership
End
Behavior = SpecialPowerModule ModuleTag_TheodenLeadershipUpdate
SpecialPowerTemplate = SpecialAbilityFakeLeadership
UpdateModuleStartsAttack = No
StartsPaused = Yes
End
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_FaramirSpeechThing
SpecialPowerTemplate = SpecialAbilityRousingSpeech
TriggeredBy = Upgrade_FaramirWarSpeech
End
Behavior = SpecialPowerModule ModuleTag_10
SpecialPowerTemplate = SpecialAbilityRousingSpeech
UpdateModuleStartsAttack = Yes
InitiateSound = TheodenRousingSpeech
StartsPaused = Yes
End
Behavior = RousingSpeechUpdate ModuleTag_11
SpecialPowerTemplate = SpecialAbilityRousingSpeech
RequiredConditions = MOUNTED
StartAbilityRange = 1.0
UpdateInterval = 500
ApproachRequiresLOS = No
BonusRadius = 250
SpeechDuration = 2500
LeaderFX = FX_TheodenSpeechFX
FollowerFX = FX_TheodenFollowerFX
CreateWave = Yes
WaveWidth = 50
ModifierName = RohanCharge
End
Behavior = EmotionTrackerUpdate Module_EmotionTracker
TauntAndPointDistance = 300 ; max distance to taunted/pointed objet
TauntAndPointUpdateDelay = 1000 ; how often scan (milliseconds)
AddEmotion = Terror_Base
AddEmotion = Doom_Base
// AddEmotion = BraceForBeingCrushed_Base
AddEmotion = UncontrollableFear_Base
// AddEmotion = FearIdle_Base
// AddEmotion = FearBusy_Base
AddEmotion = Point_Base
AddEmotion = Taunt_Base
AddEmotion = CheerIdle_Base
AddEmotion = CheerBusy_Base
// AddEmotion = HeroCheerIdle_Base
// AddEmotion = HeroCheerBusy_Base
AddEmotion = Alert_Base
AddEmotion = CheerForAboutToCrush_Base
End
LocomotorSet
Locomotor = HeroHorseLocomotor
Condition = SET_MOUNTED
Speed = NORMAL_CAVALRY_HORDE_SPEED
End
; Behavior = DualWeaponBehavior ModuleTag_13
; SwitchWeaponOnCloseRangeDistance = 81
; UseCloseRangeWhileMounted = yes
; End
Behavior = PhysicsBehavior ModuleTag_04
GravityMult = 1.0
ShockStandingTime = 2533 ;msec
End
Behavior = SlowDeathBehavior ModuleTag_05
DeathTypes = ALL
SinkDelay = 30000
SinkRate = 0.40 ; in Dist/Sec
DestructionDelay = 8000
Sound = INITIAL FaramirRangerVoiceDie
End
Behavior = SquishCollide ModuleTag_06
;nothing
End
Behavior = HitReactionBehavior HitReactionBehaviorModuleTag
HitReactionLifeTimer1 = 1500 ; level 1 (light damage) hit reaction animations in ms
HitReactionLifeTimer2 = 1500 ; level 2 (medium damage) hit reaction animations in ms
HitReactionLifeTimer3 = 1500 ; level 3 (heavy damage) hit reaction animations in ms
HitReactionThreshold1 = 5.0 ; level 1 (light damage) threshold trigger
HitReactionThreshold2 = 25.0 ; level 2 (medium damage) threshold trigger
HitReactionThreshold3 = 50.0 ; level 3 (heavy damage) threshold trigger
FastHitsResetReaction = Yes If set -- when hits occur faster than the reaction animations, it will reset the animation. (like getting riddled with machine gun bullets)
End
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_UnpauseHorseToggle
SpecialPowerTemplate = SpecialAbilityToggleMounted
TriggeredBy = Upgrade_FaramirKnightRangerToggle
End
Behavior = SpecialPowerModule ModuleTag_HorseToggleStarter
SpecialPowerTemplate = SpecialAbilityToggleMounted
UpdateModuleStartsAttack = Yes
;InitiateSound =
StartsPaused = Yes
End
Behavior = ToggleMountedSpecialAbilityUpdate ModuleTag_HorseToggle
SpecialPowerTemplate = SpecialAbilityToggleMounted
UnpackTime = 2000
PreparationTime = 1
PersistentPrepTime = 250
PackTime = 2000
OpacityTarget = .3 ; How see-thru to be at peak of change
; PackSound =
; UnpackSound =
; TriggerSound =
; PrepSoundLoop =
AwardXPForTriggering = 0
End
;--------------------------------------------------------------------------
;----------------------Haldir Blade Master---------------------------------
;--------------------------------------------------------------------------
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_HaldirBladeMasterEnabler
SpecialPowerTemplate = SpecialAbilityAragornBladeMaster
TriggeredBy = Upgrade_HaldirBladeMaster
End
Behavior = SpecialPowerModule ModuleTag_HaldirBladeMasterStarter ; SpecialAbility is a SpecialPower, SpecialPower is anyting special
SpecialPowerTemplate = SpecialAbilityAragornBladeMaster
StartsPaused = Yes
End
Behavior = HeroModeSpecialAbilityUpdate ModuleTag_HaldirBladeMasterUpdate ; So the difference in SpecialAbility is that it takes timing from this Update, instead of simply firing.
SpecialPowerTemplate = SpecialAbilityAragornBladeMaster
HeroAttributeModifier = HaldirBladeMaster
HeroEffectDuration = 30000 ; this should sync with the auto ability delay re-fire time in commandButtons.ini
UnpackTime = 1 ; insant unpack
;TriggerSound = AragornBladeMaster
End
;--------------------------------------------------------------------------
; Faramir Wounding Arrow - AKA: FaramirWoundArrow
;--------------------------------------------------------------------------
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_UnpauseWoundArrow
SpecialPowerTemplate = SpecialAbilityWoundArrow
TriggeredBy = Upgrade_ObjectLevel2
End
Behavior = SpecialPowerModule ModuleTag_WoundArrow
SpecialPowerTemplate = SpecialAbilityWoundArrow
UpdateModuleStartsAttack = Yes
InitiateSound = FaramirRangerVoiceWoundingArrow
StartsPaused = Yes
End
Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_WoundArrowUpdate
SpecialPowerTemplate = SpecialAbilityWoundArrow
SkipContinue = Yes
UnpackTime = 2000
PreparationTime = 1
PersistentPrepTime = 1000
PackTime = 1
AwardXPForTriggering = 0
StartAbilityRange = #SUBTRACT( FARAMIR_WOUNDING_ARROW_RANGE 25 )
ApproachRequiresLOS = Yes
SpecialWeapon = FaramirWoundArrow
WhichSpecialWeapon = 1
End
Behavior = AutoAbilityBehavior ModuleTag_WoundArrowAutoAbility
SpecialAbility = SpecialAbilityWoundArrow
MaxScanRange = #SUBTRACT( FARAMIR_WOUNDING_ARROW_RANGE 25 )
Query = 1 ALL ENEMIES -STRUCTURE
End
; Generic
Behavior = AutoAbilityBehavior ModuleTag_AutoAbilityBehavior
End
;///////////////////
; AISpecialPowers
;///////////////////
Behavior = AISpecialPowerUpdate SpecialPowerFaramirGiveXPAoE
CommandButtonName = Command_SpecialAbilityCaptainOfGondor
SpecialPowerAIType = AI_SPECIAL_POWER_GIVEXP_AOE
SpecialPowerRadius = 30.0
End
Behavior = AISpecialPowerUpdate SpecialWoundingArrowAoE
CommandButtonName = Command_SpecialAbilityWoundArrow
SpecialPowerAIType = AI_SPECIAL_POWER_ENEMY_TYPE_KILLER
End
Behavior = AISpecialPowerUpdate ToggleMountedAI
CommandButtonName = Command_ToggleMounted
SpecialPowerAIType = AI_SPECIAL_POWER_TOGGLE_MOUNTED
End
Geometry = CYLINDER
GeometryMajorRadius = 8.0
GeometryHeight = 25
GeometryIsSmall = Yes
Shadow = SHADOW_DECAL
ShadowSizeX = 20
ShadowSizeY = 20
ShadowTexture = ShadowI
End
[/codebox]
a mod for rotwk, includes Harad, Rhun, Rohan and Southern Fiefdoms Factions, beta released, site/forums for the mod is
here.