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_gimli.ini
< prev
next >
Wrap
Text File
|
2006-01-31
|
30KB
|
973 lines
;------------------------------------------------------------------------------
;
; Gimli.ini
;
;------------------------------------------------------------------------------
; aka Gimli, Dwarf
Object RohanGimli
; *** ART Parameters ***
; SelectPortrait for Heros is portrait behind skill buttons. HP = HeroPortrait.
SelectPortrait = HPGimli
; ButtonImage for Heros is button image on Hero Select UI to select hero. HI = HeroIcon or HeroImage.
ButtonImage = HIGimli
DescriptionStrategic = CONTROLBAR:LW_ToolTip_Gimli
;ShadowMaxHeight = 999 ;this is causing 2 shadows to be cast when the unit is under a bridge. Taking it out!
Draw = W3DScriptedModelDraw ModuleTag_01
OkToChangeModelColor = Yes
StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD
;;====================== MODELS ================================================================
DefaultModelConditionState
Model = RUGimli_SKN
Skeleton = RUGimli_SKL
WeaponLaunchBone = TERTIARY AXE02
End
ModelConditionState = WEAPONSET_TOGGLE_1
Model = RUGimli_SKN
Skeleton = RUGimli_SKL
ParticleSysBone = BAT_HEAD Slayer FollowBone:Yes
End
;;================== ANIMATIONS =================================================================
;;------------------ MOVING & DYING ---------------------------
;;======= DYING
AnimationState = STUNNED_FLAILING
Animation = FLYA
AnimationName = RUGimli_FLYA
AnimationMode = LOOP
AnimationSpeedFactorRange = 0.3 0.5
End
Flags = RANDOMSTART
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "DwarfToss" then CurDrawableSetTransitionAnimState("TRANS_EndDwarfToss") end
EndScript
End
AnimationState = DYING SPLATTED
Animation = LNDB
AnimationName = RUGimli_LNDA
AnimationMode = ONCE
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "DwarfToss" then CurDrawableSetTransitionAnimState("TRANS_EndDwarfToss") end
EndScript
End
AnimationState = DYING
Animation = DIEA
AnimationName = RUGimli_DIEA
AnimationMode = ONCE
End
Animation = DIEC
AnimationName = RUGimli_DIEC
AnimationMode = ONCE
End
; Animation = DIEB
; AnimationName = RUGimli_DIEB
; AnimationMode = ONCE
; End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "DwarfToss" then CurDrawableSetTransitionAnimState("TRANS_EndDwarfToss") end
EndScript
End
AnimationState = STUNNED_STANDING_UP
Animation = GTPA
AnimationName = RUGimli_GTPA
AnimationMode = ONCE
End
End
AnimationState = STUNNED
Animation = LNDA
AnimationName = RUGimli_LNDA
AnimationMode = ONCE
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "DwarfToss" then CurDrawableSetTransitionAnimState("TRANS_EndDwarfToss") end
EndScript
End
AnimationState = PARALYZED
Animation
AnimationName = RUGimli_IDLA
AnimationMode = LOOP
End
End
; OBSOLETE - Dwarven Grudge
; AnimationState = RESURRECTED
; Animation = REZA
; AnimationName = RUGimli_REZA
; AnimationMode = ONCE
; End
; ;Some FX to show we have risen from the dead
; EnteringStateFX = FX_Resurrect
; End
;;======= MOVING
AnimationState = MOVING FIRING_OR_PREATTACK_A
ShareAnimation = Yes
Animation = RunAndFire
AnimationName = RUGimli_ATRA
AnimationMode = LOOP
End
Flags = RANDOMSTART
End
; TODO: Slayer Moving
; AnimationState = MOVING HERO
; Animation = slayer
; AnimationName = RUGimli_ATKE
; AnimationMode = LOOP
; End
; End
; TODO: Replace with SLAYER IDLE animation
; AnimationState = HERO
; Animation = slayer standing still
; AnimationName = RUGimli_IDLA ; RUGimli_ATKF
; AnimationMode = LOOP
; End
; End
; OBSOLETE
; AnimationState = MOVING WANDER
; Animation = WLKA
; AnimationName = RUGimli_WLKA
; AnimationMode = LOOP
; End
; Flags = RANDOMSTART
; End
; OBSOLETE
; AnimationState = MOVING USER_4
; Animation = ATKF
; AnimationName = RUGimli_ATKF
; AnimationMode = LOOP
; End
; Animation = ATKE
; AnimationName = RUGimli_ATKE
; AnimationMode = LOOP
; End
; ;ParticleSysBone = None InfantryDustTrails
; BeginScript
; Prev = CurDrawablePrevAnimationState()
; if Prev == "DwarfToss" then CurDrawableSetTransitionAnimState("TRANS_EndDwarfToss") end
; EndScript
; ;FXEvent = Frame:6 Name: FX_BladeMasterHitOrient
; ;FXEvent = Frame:19 Name: FX_BladeMasterHitOrient
; End
AnimationState = MOVING ATTACKING
Animation = RUNB
AnimationName = RUGimli_RUNB
AnimationMode = LOOP
End
Flags = RANDOMSTART
;ParticleSysBone = None InfantryDustTrails
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "DwarfToss" then CurDrawableSetTransitionAnimState("TRANS_EndDwarfToss") end
EndScript
End
AnimationState = MOVING
Animation = RUNA
AnimationName = RUGimli_RUNA
AnimationMode = LOOP
End
Flags = RANDOMSTART
;ParticleSysBone = None InfantryDustTrails
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "DwarfToss" then CurDrawableSetTransitionAnimState("TRANS_EndDwarfToss") end
EndScript
End
;;------------------ ATTACKING -------------------------------
; AXE THROW
AnimationState = FIRING_OR_PREATTACK_C
Animation = SPCA
AnimationName = RUGimli_SPCA
AnimationMode = ONCE
; UseWeaponTiming = Yes
End
FrameForPristineBonePositions = 42;44
;ParticleSysBone = None MeleeDust
BeginScript
CurDrawableShowSubObject("AXE02")
Prev = CurDrawablePrevAnimationState()
if Prev == "DwarfToss" then CurDrawableSetTransitionAnimState("TRANS_EndDwarfToss") end
EndScript
End
AnimationState = FIRING_OR_PREATTACK_B; WEAPONLOCK_SECONDARY
Animation = ATKA
AnimationName = RUGimli_ATKD
AnimationMode = ONCE
UseWeaponTiming = Yes
End
;ParticleSysBone None MeleeDust
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "DwarfToss" then CurDrawableSetTransitionAnimState("TRANS_EndDwarfToss") end
EndScript
End
AnimationState = FIRING_OR_PREATTACK_A
Animation = ATKA
AnimationName = RUGimli_ATKA
AnimationMode = ONCE
UseWeaponTiming = Yes
End
Animation = ATKB
AnimationName = RUGimli_ATKB
AnimationMode = ONCE
UseWeaponTiming = Yes
End
Animation = ATKC
AnimationName = RUGimli_ATKC
AnimationMode = ONCE
UseWeaponTiming = Yes
End
;ParticleSysBone None MeleeDust
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "DwarfToss" then CurDrawableSetTransitionAnimState("TRANS_EndDwarfToss") end
EndScript
End
;leap animations
AnimationState = SPECIAL_WEAPON_TWO UNPACKING
Animation = GettingReadyToLeap
AnimationName = RUGimli_LEPA
AnimationMode = ONCE
End
End
AnimationState = ABOUT_TO_HIT ;using Gimli Leap
StateName = State_AboutToHitGround
Animation = Leap
AnimationName = RUGimli_LEPC
AnimationMode = ONCE
; UseWeaponTiming = Yes
End
End
AnimationState = THROWN_PROJECTILE
Animation = LEPB
AnimationName = RUGimli_LEPB
AnimationMode = LOOP
AnimationBlendTime = 20
End
End
;;; REMOVED
; AnimationState = WEAPONSET_RAMPAGE ;WEAPONSTATE_ONE
; Animation = RPGA
; AnimationName = RUGimli_RPGA
; AnimationMode = LOOP
; AnimationBlendTime = 10
; End
; BeginScript
; Prev = CurDrawablePrevAnimationState()
; if Prev == "DwarfToss" then CurDrawableSetTransitionAnimState("TRANS_EndDwarfToss") end
; EndScript
; End
; AnimationState = USER_1
; Animation = TOS1
; AnimationName = RUGimli_TOS1
; AnimationMode = ONCE
; End
; BeginScript
; Prev = CurDrawablePrevAnimationState()
; if Prev == "DwarfToss" then CurDrawableSetTransitionAnimState("TRANS_EndDwarfToss") end
; EndScript
; End
; AnimationState = USER_1 PASSENGER
; Animation = TOS2
; AnimationName = RUGimli_TOS2
; AnimationMode = ONCE
; End
; BeginScript
; Prev = CurDrawablePrevAnimationState()
; if Prev == "DwarfToss" then CurDrawableSetTransitionAnimState("TRANS_EndDwarfToss") end
; EndScript
; End
; AnimationState = PASSENGER
; Animation = TOS1
; AnimationName = RUGimli_TOS1
; AnimationMode = MANUAL
; End
; Flags = START_FRAME_LAST
; BeginScript
; Prev = CurDrawablePrevAnimationState()
; if Prev == "DwarfToss" then CurDrawableSetTransitionAnimState("TRANS_EndDwarfToss") end
; EndScript
; End
;;-------------------- HIT REACTIONS --------------------------
AnimationState = HIT_REACTION
Animation = Hit_Level_1_a
AnimationName = RUGimli_HITA
AnimationMode = ONCE
End
End
;;------------ EMOTIONS ---------------------------------------
;;====== LEVELED
AnimationState = LEVELED ; This state clears itself in 3 seconds
Animation = LevelUp
AnimationName = RUGimli_CHRB
AnimationMode = ONCE
End
End
;;====== CELEBRATING
AnimationState = EMOTION_CELEBRATING
Animation = CHRA
AnimationName = RUGimli_CHRA
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
End
;;====== TAUNTING
AnimationState = EMOTION_TAUNTING
Animation = TNTA
AnimationName = RUGimli_TNTA
AnimationMode = ONCE
End
Animation = TNTB
AnimationName = RUGimli_TNTB
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
End
AnimationState = EMOTION_ALERT
Animation = Ready
AnimationName = RUGimli_IDLA
AnimationMode = LOOP
AnimationBlendTime = 15
End
BeginScript
CurDrawableHideSubObject("AXE02")
; Prev = CurDrawablePrevAnimationState()
; if Prev == "BORED" then CurDrawableSetTransitionAnimState("Transition_BoredToReady") end
; if Prev == "SELECTED" then CurDrawableSetTransitionAnimState("Transition_SelectedToReady") end
if Prev == "State_AboutToHitGround" then CurDrawableSetTransitionAnimState("TRANS_AboutToHitGround_To_Idle") end
EndScript
End
AnimationState = RAISING_FLAG
Animation = CHRA
AnimationName = RUGimli_CHRA
AnimationMode = LOOP
End
End
;;------------------- SELECTED STATES -------------------------
AnimationState = SELECTED
StateName = AtAttentionIdle
SimilarRestart = Yes
Animation = ATNB
AnimationName = RUGimli_ATNB
AnimationMode = LOOP
End
BeginScript
CurDrawableHideSubObject("AXE02")
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Idle" then CurDrawableSetTransitionAnimState("TRANS_Select") end
if Prev == "AtAttentionIdle" then CurDrawableSetTransitionAnimState("TRANS_Select") end
if Prev == "State_AboutToHitGround" then CurDrawableSetTransitionAnimState("TRANS_AboutToHitGround_To_Idle") end
EndScript
End
;;--------------- IDLE STATES ---------------------------------
IdleAnimationState
StateName = STATE_Idle
Animation = IDLB
AnimationName = RUGimli_IDLB
AnimationMode = ONCE
AnimationPriority = 30
End
Animation = IDLF
AnimationName = RUGimli_IDLF
AnimationMode = ONCE
AnimationPriority = 5
End
Animation = IDLD
AnimationName = RUGimli_IDLD
AnimationMode = ONCE
AnimationPriority = 4
End
Animation = IDLG
AnimationName = RUGimli_IDLG
AnimationMode = ONCE
AnimationPriority = 2
End
Animation = IDLH
AnimationName = RUGimli_IDLH
AnimationMode = ONCE
AnimationPriority = 1
End
Animation = IDLC
AnimationName = RUGimli_IDLC
AnimationMode = ONCE
AnimationPriority = 1
End
Animation = IDLE
AnimationName = RUGimli_IDLE
AnimationMode = ONCE
AnimationPriority = 1
End
BeginScript
CurDrawableHideSubObject("AXE02")
Prev = CurDrawablePrevAnimationState()
if Prev == "DwarfToss" then CurDrawableSetTransitionAnimState("TRANS_EndDwarfToss") end
if Prev == "AtAttentionIdle" then CurDrawableSetTransitionAnimState("TRANS_SelectedToIdle") end
if Prev == "State_AboutToHitGround" then CurDrawableSetTransitionAnimState("TRANS_AboutToHitGround_To_Idle") end
EndScript
End
;---Transitions-------------------------------------
TransitionState = TRANS_EndDwarfToss
Animation = TOS4
AnimationName = RUGimli_TOS4
AnimationMode = ONCE
End
End
TransitionState = TRANS_SelectedToIdle
Animation = ATNC
AnimationName = RUGimli_ATNC
AnimationMode = ONCE
AnimationSpeedFactorRange = 0.7 1.3
End
End
TransitionState = TRANS_Select
Animation = ATNA
AnimationName = RUGimli_ATNA
AnimationMode = ONCE
End
End
TransitionState = TRANS_AboutToHitGround_To_Idle
Animation = SplashAtEndOfJump
AnimationName = RUGimli_LEPC
AnimationMode = ONCE
;AnimationBlendTime = 0
End
Flags = MAINTAIN_FRAME_ACROSS_STATES
End
End
;Draw module just for the HeroSelection
Draw = W3DScriptedModelDraw Icon
ModelConditionState = NONE
Model = Icon02
End
End
;;================== END ANIMATIONS =================================================================
#include "..\..\..\includes\StunDrawModuleSmall.inc"
; ***DESIGN parameters ***
Side = Obsolete
EditorSorting = UNIT
ThreatLevel = GIMLI_THREAT_LEVEL
TransportSlotCount = TRANSPORTSLOTCOUNT_HERO
BuildCost = GIMLI_BUILDCOST
BuildTime = GIMLI_BUILDTIME
ShockwaveResistance = SHOCKWAVE_RESISTANCE_STRONG
;//DisplayMeleeDamage = GIMLI_DAMAGE
HeroSortOrder = 40
WeaponSet
Conditions = None
Weapon = PRIMARY RohanGimliAxe
Weapon = TERTIARY RohanGimliAxeThrown
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
AutoChooseSources = TERTIARY NONE
ShareWeaponReloadTime = Yes
End
WeaponSet
Conditions = WEAPONSET_TOGGLE_1
Weapon = SECONDARY RohanGimliSuperAxe
Weapon = TERTIARY RohanGimliAxeThrown
AutoChooseSources = SECONDARY FROM_PLAYER FROM_SCRIPT FROM_AI
AutoChooseSources = TERTIARY NONE
ShareWeaponReloadTime = Yes
End
ArmorSet
Conditions = None
Armor = ToughHeroArmor
DamageFX = NormalDamageFX
End
VisionRange = VISION_STANDARD_MELEE
ShroudClearingRange = SHROUD_CLEAR_HERO
MaxVisionBonusPercent = 300%
VisionBonusTestRadius = 200
VisionBonusPercentPerFoot = 1.0%
BountyValue = ROHAN_GIMLI_BOUNTY_VALUE
DisplayName = OBJECT:RohanGimli
RecruitText = CONTROLBAR:RohanGimliRecruit
ReviveText = CONTROLBAR:RohanGimliRevive
Hotkey = CONTROLBAR:RohanGimliHotkey
CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
; CrusherLevel = 1
CommandSet = RohanGimliCommandSet
CommandPoints = 75
; *** AUTO RESOLVE DATA ***
AutoResolveUnitType = AutoResolveUnit_Hero
AutoResolveCombatChain = AutoResolve_HeroCombatChain
AutoResolveBody = AutoResolve_GimliBody
AutoResolveArmor
Armor = AutoResolve_GimliArmor
End
AutoResolveWeapon
Weapon = AutoResolve_GimliWeapon
End
;AutoResolveLeadership = AutoResolve_GimliBonus
; *** AUDIO Parameters ***;
;VoiceAmbushed = GimliVoiceAmbushed OBSOLETE VOICE
VoiceAttack = GimliVoiceAttack
VoiceAttackCharge = GimliVoiceAttackCharge
VoiceAttackMachine = GimliVoiceAttack
VoiceAttackStructure = GimliVoiceAttack
;VoiceCreated = GimliVoiceSalute ;this conflicts with his respawn dialogue line -- rehooked to spawn FX
VoiceFear = GimliVoiceHelpMe
VoiceGuard = GimliVoiceMove
VoiceMove = GimliVoiceMove
VoiceMoveToCamp = GimliVoiceMove
VoiceMoveWhileAttacking = GimliVoiceDisengage
VoicePriority = 67
VoiceRetreatToCastle = GimliVoiceRetreat
VoiceSelect = GimliVoiceSelectMS
VoiceSelectBattle = GimliVoiceSelectBattle
SoundImpact = ImpactHorse
;GimliVoiceJoinAnybody
UnitSpecificSounds
VoiceGarrison = GimliVoiceGarrison
VoiceEnterUnitElvenTransportShip = GimliVoiceMove
VoiceInitiateCaptureBuilding = GimliVoiceMove
;VoiceEnterStateInitiateCaptureBuilding =
End
CrowdResponseKey = DwarfHero
#include "..\..\..\Includes\StandardUnitEvaEvents.inc"
EvaEventDieOwner = GimliDie ;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 Dwarf Dwarf_Male Unit Infantry Hero
End
ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
MaxUpdateRangeCap = 800
AnimationSound = Sound:FootstepDirtA Animation:RUGimli_SKL.RUGimli_RUNA Frames:3 14
AnimationSound = Sound:FootstepDirtA Animation:RUGimli_SKL.RUGimli_RUNB Frames:3 12
AnimationSound = Sound:BodyFallSoldier Animation:RUGimli_SKL.RUGimli_LNDA Frames:2
AnimationSound = Sound:BodyFallGenericNoArmor Animation:RUGimli_SKL.RUGimli_DIEA Frames:11
AnimationSound = Sound:BodyFallGenericNoArmor Animation:RUGimli_SKL.RUGimli_DIEC Frames:59
End
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER SCORE THROWN_OBJECT GIMLI HERO ARMY_SUMMARY ATTACK_NEEDS_LINE_OF_SIGHT HEAVY_MELEE_HITTER
PathfindDiameter = 40.0
; Behavior = WeaponSetUpgrade ModuleTag_AxeThrow
; TriggeredBy = Upgrade_GimliAxeThrow
; End
;; REMOVED - DWARVEN GRUDGE ABILITY (replaced with RespawnBody)
; Body = FreeLifeBody ModuleTag_FreeLifeBody ;FreeLifeBody is a variation of RespawnBody
; CheerRadius = EMOTION_CHEER_RADIUS
; MaxHealth = GIMLI_HEALTH ;BALANCE Gimli Health
;
; FreeLifeHealthPercent = 50 ;percentage of MaxHealth health to recover
; FreeLifeTime = 10000 ;amount of time until we can rise from the dead again
; FreeLifeInvincible = Yes
; FreeLifePrerequisiteUpgrade = Upgrade_GimliFreeLife
; FreeLifeAnimAndDuration = AnimState:RESURRECTED AnimTime:3000
;
; PermanentlyKilledByFilter = NONE ;Who kills me permanently?
; DodgePercent = HERO_DODGE_PERCENT
; End
Body = RespawnBody ModuleTag_RespawnBody
CheerRadius = EMOTION_CHEER_RADIUS
MaxHealth = GIMLI_HEALTH ;BALANCE Gimli Health
PermanentlyKilledByFilter = NONE ;Who kills me permanently?
DodgePercent = 80%
End
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_TheodenLeadership
SpecialPowerTemplate = SpecialAbilityFakeLeadership
TriggeredBy = Upgrade_GimliFreeLife
End
Behavior = SpecialPowerModule ModuleTag_TheodenLeadershipUpdate
SpecialPowerTemplate = SpecialAbilityFakeLeadership
UpdateModuleStartsAttack = No
StartsPaused = Yes
End
Behavior = RespawnUpdate ModuleTag_RespawnUpdate
DeathAnim = DYING ;Model condition to play when killed-to-respawn
DeathFX = FX_GimliDieToRespawn ;FXList to play when killed-to-respawn
DeathAnimationTime = 4100 ;How long DeathAnim will take.
InitialSpawnFX = FX_GimliInitialSpawn
RespawnAnim = LEVELED ;Animation to play when respawning.
RespawnFX = FX_GimliRespawn ;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 = HIGimli_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:3000 Time:60000 Health:100% ;DEFAULT VALUES
End
Behavior = AutoHealBehavior ModuleTag_GimliHealing
StartsActive = Yes
HealingAmount = HERO_HEAL_AMOUNT
HealingDelay = 1000
StartHealingDelay = HERO_HEAL_DELAY
HealOnlyIfNotInCombat = Yes
End
Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = Hero
End
#include "..\..\..\includes\CaptureBuilding.inc"
Behavior = AIUpdateInterface ModuleTag_03
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
HoldGroundCloseRangeDistance = 60
End
Behavior = AutoAbilityBehavior ModuleTag_AutoAbilityBehavior
End
LocomotorSet
Locomotor = RohanGimliLocomotor
Condition = SET_NORMAL
Speed = NORMAL_DWARF_HERO_SPEED
End
; Locomotor = SET_WANDER HumanWanderLocomotor
Behavior = PhysicsBehavior ModuleTag_04
GravityMult = 1.0
AllowBouncing = No
ShockStunnedTimeLow = 1400 ;msec
ShockStunnedTimeHigh = 2400 ;msec
ShockStandingTime = 2600 ;msec
End
; Behavior = RampageBehavior RampageBehaviorModuleTag
; RampageHealthThreshold = 25 ; 25% of health left will trigger rampage mode
; RampageLifeTimer = 130 ; 5 seconds in ticks (1 round of rampage)
; RampageAngryLifeTimer = 90 ; 3 seconds in ticks (1 round of angry animation)
; RampageResetTimer = 900 ; 30 seconds in ticks
; RampageEnemyCheckRange = 100.0 ; look for enemies around this range
; RampageEnemyThreshold = 0 ; need to have atleast 3 enemies around before rampage is triggered
; End
Behavior = SlowDeathBehavior ModuleTag_05
DeathTypes = ALL -KNOCKBACK
SinkDelay = 3000
SinkRate = 0.40 ; in Dist/Sec
DestructionDelay = 8000
Sound = INITIAL GimliVoiceDie
End
Behavior = SquishCollide ModuleTag_06
;nothing
End
Behavior = SlowDeathBehavior ModuleTag_07
; Same as normal death, but no sound (sound already played by SoundImpact = ... )
DeathTypes = NONE +KNOCKBACK
SinkDelay = 3000
SinkRate = 0.40 ; in Dist/Sec
DestructionDelay = 8000
End
Behavior = BezierProjectileBehavior ModuleTag_08 ; Module starts asleep, and wakes up when thrown.
; To tweak a Bezier path
FirstHeight = 50 ; Height of Bezier control points above highest intervening terrain
SecondHeight = 20
FirstPercentIndent = 20% ; Percentage of shot distance control points are placed
SecondPercentIndent = 70%
TumbleRandomly = Yes
CrushStyle = Yes ; I don't detonate, I just hit
; Note, this flag shouldn't be in here. Death is caused by the intent of the thrower, not the ability of an object to land.
; Both a troll and Aragorn can throw Gimli.
; Actually, that means a lot of this is bad. For two different throw behaviors you need two different modules I think.
; DieOnImpact = Yes
BounceCount = 0 ; When I hit the ground, I'll arc again
FinalStuckTime = 1200 ; Can't move for this long afterwards
GroundHitFX = FX_GimliLeapLand
GroundHitWeapon = RohanGimliLeapWarhead
PreLandingStateTime = 75; Look ahead to the end of the arc, and get the ABOUT_TO_HIT flag this far in advance
End
; Behavior = SpecialPowerModule ModuleTag_GimliAxeStarter
; SpecialPowerTemplate = SpecialAbilityGimliAxe
; UpdateModuleStartsAttack = Yes
; ;GimliAxeStartsPaused = Yes
; ;InitiateSound =
; End
; Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_GimliAxeUpdate
; SpecialPowerTemplate = SpecialAbilityGimliAxe
;
;; UnpackTime = 300
;; PackTime = 300 ; Putting horn away
;
; UnpackTime = 1467 ;1430
; PackTime = 1567 ; 1570
;
;
;; PackSound =
;; UnpackSound =
; ; TriggerSound =
;; PrepSoundLoop =
; AwardXPForTriggering = 0
;
; StartAbilityRange = 150.0
;
; SpecialWeapon = RohanGimliAxeThrown
; WhichSpecialWeapon = 1
; 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
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_LeapEnabler
SpecialPowerTemplate = SpecialAbilityGimliLeap
TriggeredBy = Upgrade_GimliLeapTrigger
End
Behavior = SpecialPowerModule ModuleTag_LeapStarter
SpecialPowerTemplate = SpecialAbilityGimliLeap
UpdateModuleStartsAttack = Yes
StartsPaused = Yes
InitiateSound = GimliVoiceAttackLeap
End
Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_LeapUpdate
SpecialPowerTemplate = SpecialAbilityGimliLeap
UnpackTime = 600
PackTime = 300 ; Putting horn away
AwardXPForTriggering = 0
StartAbilityRange = 100.0
SpecialWeapon = RohanGimliLeap
BusyForDuration = 2000 ; don't accept any AI for this long... ai commands will be queued
; ApproachRequiresLOS = No
WhichSpecialWeapon = 2
TriggerSound = GimliLeapVoice
End
; Behavior = UnpauseSpecialPowerUpgrade ModuleTag_SlayerEnabler
; SpecialPowerTemplate = SpecialAbilityGimliHeroMode
; TriggeredBy = Upgrade_GimliSlayerTrigger
; End
; Behavior = SpecialPowerModule ModuleTag_SlayerStarter
; SpecialPowerTemplate = SpecialAbilityGimliHeroMode
; UpdateModuleStartsAttack = Yes
; StartsPaused = Yes
; End
; Behavior = HeroModeSpecialAbilityUpdate ModuleTag_Slayer
; SpecialPowerTemplate = SpecialAbilityGimliHeroMode
; UnpackingVariation = 1
;
; UnpackTime = 0 ;no special animations
; PreparationTime = 0 ;
; PackTime = 0 ;
;
; ;PackSound =
; ;UnpackSound =
; ;TriggerSound =
; ;PrepSoundLoop =
; AwardXPForTriggering = 0
;
; HeroAttributeModifier = Slayer
; HeroEffectDuration = 10000
; End
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_KnifeEnabler
SpecialPowerTemplate = SpecialAbilityGimliHeroMode
TriggeredBy = Upgrade_GimliSlayerTrigger
End
Behavior = WeaponModeSpecialPowerUpdate ModuleTag_KnifeFighterPowerUpdate
SpecialPowerTemplate = SpecialAbilityGimliHeroMode
Duration = 30000 ; Needs to match SpecialAbilityGimliHeroMode
AttributeModifier = Slayer
;LockWeaponSlot = SECONDARY
WeaponSetFlags = WEAPONSET_TOGGLE_1
StartsPaused = Yes
;InitiateSound = AragornBladeMaster ;this doesn't work
End
Behavior = HitReactionBehavior HitReactionBehaviorModuleTag
HitReactionLifeTimer1 = 2200 ; level 1 (light damage) hit reaction animations in frames (5 per sec)
HitReactionLifeTimer2 = 15 ; level 2 (medium damage) hit reaction animations in frames (5 per sec)
HitReactionLifeTimer3 = 10 ; level 3 (heavy damage) hit reaction animations in frames (5 per sec)
HitReactionThreshold1 = 1.0 ; level 1 (light damage) threshold trigger
HitReactionThreshold2 = 2500.0 ; level 2 (medium damage) threshold trigger
HitReactionThreshold3 = 5000.0 ; level 3 (heavy damage) threshold trigger
End
Behavior = AutoHealBehavior ModuleTag_ElvenGiftHealing
StartsActive = No
TriggeredBy = Upgrade_ElvenGift
HealingAmount = ELVEN_GIFT_REGEN_AMOUNT
HealingDelay = ELVEN_GIFT_REGEN_DELAY
StartHealingDelay = HERO_HEAL_DELAY
HealOnlyIfNotInCombat = Yes
End
Behavior = AttributeModifierUpgrade ModuleTag_ElvenGiftBonus
TriggeredBy = Upgrade_ElvenGift
AttributeModifier = SpellBookElvenGifts
End
;///////////////////
; AISpecialPowers
;///////////////////
Behavior = AISpecialPowerUpdate GimliSlayerAI
CommandButtonName = Command_SpecialAbilitySlayer
SpecialPowerAIType = AI_SPECIAL_POWER_BASIC_SELF_BUFF
End
Behavior = AISpecialPowerUpdate GimliLeapAttackAI
CommandButtonName = Command_RohanGimliLeap
SpecialPowerAIType = AI_SPECIAL_POWER_RANGED_AOE_ATTACK
SpecialPowerRadius = 100
End
Behavior = AISpecialPowerUpdate GimliAxeThrowAI
CommandButtonName = Command_GimliAxeThrow
SpecialPowerAIType = AI_SPECIAL_POWER_ENEMY_TYPE_KILLER
End
Geometry = CYLINDER
GeometryMajorRadius = 5.6
GeometryMinorRadius = 5.6
GeometryHeight = 16.0
GeometryIsSmall = Yes
Shadow = SHADOW_DECAL
ShadowSizeX = 19;
ShadowSizeY = 19;
ShadowTexture = ShadowI;
End
ChildObject DwarvenGimli RohanGimli
Side = Dwarves
End