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_gloin.ini
< prev
next >
Wrap
Text File
|
2006-01-31
|
32KB
|
960 lines
;------------------------------------------------------------------------------
;
; Gloin.ini
;
;------------------------------------------------------------------------------
; aka Gloin, Dwarf
Object DwarvenGloin
; *** ART Parameters ***
; SelectPortrait for Heros is portrait behind skill buttons. HP = HeroPortrait.
SelectPortrait = HPGloin
; ButtonImage for Heros is button image on Hero Select UI to select hero. HI = HeroIcon or HeroImage.
ButtonImage = HIGloin
DescriptionStrategic = CONTROLBAR:LW_ToolTip_Gloin
;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 = DUGloin_SKN
Skeleton = DUGloin_SKL
WeaponLaunchBone = TERTIARY AXE02
End
;;================== ANIMATIONS =================================================================
;;------------------ MOVING & DYING ---------------------------
;;======= DYING
AnimationState = STUNNED_FLAILING
Animation = FLYA
AnimationName = DUGloin_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 = DUGloin_LNDA
AnimationMode = ONCE
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "DwarfToss" then CurDrawableSetTransitionAnimState("TRANS_EndDwarfToss") end
EndScript
End
AnimationState = DYING
Animation = DIEA
AnimationName = DUGloin_DTHA
AnimationMode = ONCE
End
End
AnimationState = STUNNED_STANDING_UP
Animation = GTPA
AnimationName = DUGloin_GTPA
AnimationMode = ONCE
End
End
AnimationState = STUNNED
Animation = LNDA
AnimationName = DUGloin_LNDA
AnimationMode = ONCE
End
End
AnimationState = PARALYZED
Animation
AnimationName = DUGloin_IDLA
AnimationMode = LOOP
End
End
// SLAM
AnimationState = SPECIAL_WEAPON_ONE
Animation
AnimationName = DUGloin_ATKC
AnimationMode = ONCE
End
ParticleSysBone = NONE GloinBlastSlam FollowBone:Yes
End
// SHAKE FOUNDATION
AnimationState = SPECIAL_WEAPON_TWO
Animation
AnimationName = DUGloin_SPCB
AnimationMode = ONCE
End
End
// SHATTERHAMMER
AnimationState = SPECIAL_WEAPON_THREE
Animation
AnimationName = DUGloin_SPCA
AnimationMode = ONCE
End
End
;;======= MOVING
; AnimationState = MOVING FIRING_OR_PREATTACK_A
; ShareAnimation = Yes
; Animation = RunAndFire
; AnimationName = DUGloin_ATRA
; AnimationMode = LOOP
; End
; Flags = RANDOMSTART
; End
AnimationState = MOVING ATTACKING
Animation = RUNB
AnimationName = DUGloin_RUNB
AnimationMode = LOOP
End
Flags = RANDOMSTART
End
AnimationState = MOVING
Animation = RUNA
AnimationName = DUGloin_RUNA
AnimationMode = LOOP
End
Flags = RANDOMSTART
End
;;------------------ ATTACKING -------------------------------
AnimationState = FIRING_OR_PREATTACK_A
Animation = ATKA
AnimationName = DUGloin_ATKA
AnimationMode = ONCE
UseWeaponTiming = Yes
End
Animation = ATKB
AnimationName = DUGloin_ATKB
AnimationMode = ONCE
UseWeaponTiming = Yes
End
;ParticleSysBone None MeleeDust
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "DwarfToss" then CurDrawableSetTransitionAnimState("TRANS_EndDwarfToss") end
EndScript
End
;;-------------------- HIT REACTIONS --------------------------
AnimationState = HIT_REACTION
Animation = Hit_Level_1_a
AnimationName = DUGloin_HITA
AnimationMode = ONCE
End
End
;;------------ EMOTIONS ---------------------------------------
;;====== LEVELED
AnimationState = LEVELED ; This state clears itself in 3 seconds
Animation = LevelUp
AnimationName = DUGloin_LVLA
AnimationMode = ONCE
End
End
;;====== CELEBRATING
AnimationState = EMOTION_CELEBRATING
Animation = CHRA
AnimationName = DUGloin_CHRA
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
End
;;====== TAUNTING
AnimationState = EMOTION_TAUNTING
Animation
AnimationName = DUGloin_TNTA
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
End
AnimationState = EMOTION_ALERT
Animation = Ready
AnimationName = DUGloin_IDLA
AnimationMode = LOOP
AnimationBlendTime = 15
End
End
AnimationState = RAISING_FLAG
Animation = CHRA
AnimationName = DUGloin_CHRA
AnimationMode = LOOP
End
End
;;------------------- SELECTED STATES -------------------------
AnimationState = SELECTED
StateName = AtAttentionIdle
SimilarRestart = Yes
Animation = ATNB
AnimationName = DUGloin_ATNB
AnimationMode = LOOP
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Idle" then CurDrawableSetTransitionAnimState("TRANS_Select") end
if Prev == "AtAttentionIdle" then CurDrawableSetTransitionAnimState("TRANS_Select") end
EndScript
End
;;--------------- IDLE STATES ---------------------------------
IdleAnimationState
StateName = STATE_Idle
Animation
AnimationName = DUGloin_IDLB
AnimationMode = ONCE
AnimationPriority = 30
End
Animation
AnimationName = DUGloin_IDLD
AnimationMode = ONCE
AnimationPriority = 4
End
Animation
AnimationName = DUGloin_IDLC
AnimationMode = ONCE
AnimationPriority = 2
End
Animation
AnimationName = DUGloin_IDLE
AnimationMode = ONCE
AnimationPriority = 1
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "DwarfToss" then CurDrawableSetTransitionAnimState("TRANS_EndDwarfToss") end
if Prev == "AtAttentionIdle" then CurDrawableSetTransitionAnimState("TRANS_SelectedToIdle") end
EndScript
End
;---Transitions-------------------------------------
TransitionState = TRANS_EndDwarfToss
Animation = TOS4
AnimationName = DUGloin_TOS4
AnimationMode = ONCE
End
End
TransitionState = TRANS_SelectedToIdle
Animation = ATNC
AnimationName = DUGloin_ATNC
AnimationMode = ONCE
AnimationSpeedFactorRange = 0.7 1.3
End
End
TransitionState = TRANS_Select
Animation = ATNA
AnimationName = DUGloin_ATNA
AnimationMode = ONCE
End
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 = Dwarves
EditorSorting = UNIT
ThreatLevel = GLOIN_THREAT_LEVEL
TransportSlotCount = TRANSPORTSLOTCOUNT_HERO
BuildCost = GLOIN_BUILDCOST
BuildTime = GLOIN_BUILDTIME
ShockwaveResistance = SHOCKWAVE_RESISTANCE_STRONG
;//DisplayMeleeDamage = GLOIN_DAMAGE
HeroSortOrder = 40
WeaponSet
Conditions = None
Weapon = PRIMARY GloinAxe
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 = 30
DisplayName = OBJECT:Gloin
RecruitText = CONTROLBAR:GloinRecruit
ReviveText = CONTROLBAR:GloinRevive
Hotkey = CONTROLBAR:GloinHotkey
CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
; CrusherLevel = 1
CommandSet = GloinCommandSet
CommandPoints = 25
; *** AUTO RESOLVE DATA ***
AutoResolveUnitType = AutoResolveUnit_Hero
AutoResolveCombatChain = AutoResolve_HeroCombatChain
AutoResolveBody = AutoResolve_GloinBody
AutoResolveArmor
Armor = AutoResolve_GloinArmor
End
AutoResolveWeapon
Weapon = AutoResolve_GloinWeapon
End
;AutoResolveLeadership = AutoResolve_GloinBonus
; *** AUDIO Parameters ***;
VoiceAttack = GloinVoiceAttack
VoiceAttackCharge = GloinVoiceAttackCharge
VoiceAttackMachine = GloinVoiceAttack
VoiceAttackStructure = GloinVoiceAttackBuilding
VoiceFear = GloinVoiceHelpMe
VoiceGuard = GloinVoiceMove
VoiceMove = GloinVoiceMove
VoiceMoveToCamp = GloinVoiceMoveCamp
VoiceMoveWhileAttacking = GloinVoiceDisengage
VoicePriority = 78
VoiceRetreatToCastle = GloinVoiceRetreat
VoiceSelect = GloinVoiceSelectMS
VoiceSelectBattle = GloinVoiceSelectBattle
;VoiceEnterStateAttack = GloinVoiceEnterStateAttack
;VoiceEnterStateAttackCharge = GloinVoiceEnterStateAttackCharge
;VoiceEnterStateAttackMachine = GloinVoiceEnterStateAttackBuilding
;VoiceEnterStateAttackStructure = GloinVoiceEnterStateAttackBuilding
;VoiceEnterStateMove = GloinVoiceEnterStateMove
;VoiceEnterStateMoveToCamp = GloinVoiceEnterStateMoveCamp
;VoiceEnterStateMoveWhileAttacking = GloinVoiceEnterStateDisengage
;VoiceEnterStateRetreatToCastle = GloinVoiceEnterStateRetreat
SoundImpact = ImpactHorse
UnitSpecificSounds
VoiceGarrison = GloinVoiceMoveGarrison
VoiceEnterUnitElvenTransportShip = GloinVoiceMoveShip
VoiceInitiateCaptureBuilding = GloinVoiceCaptureBuilding
;VoiceEnterStateInitiateCaptureBuilding =
End
#include "..\..\..\includes\StandardUnitEvaEvents.inc"
EvaEventDieOwner = GloinDie ;Eva event to trigger on unit's death. NOTICE THAT this is only for permanent deaths
CrowdResponseKey = DwarfHero
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:DUGloin_SKL.DUGloin_RUNA Frames:3 14
AnimationSound = Sound:FootstepDirtA Animation:DUGloin_SKL.DUGloin_RUNB Frames:3 12
AnimationSound = Sound:BodyFallSoldier Animation:DUGLOIN_SKL.DUGLOIN_LNDA Frames:7
AnimationSound = Sound:BodyFallSoldier Animation:DUGLOIN_SKL.DUGLOIN_DTHA Frames:55
;AnimationSound = Sound:AxeDropSoundHere! Animation:DUGLOIN_SKL.DUGLOIN_DTHA Frames:42 ;axe falls
AnimationSound = Sound:SwordIntoGroundQuiet Animation:DUGLOIN_SKL.DUGLOIN_SPCA Frames:61 ;striking ground with axe
AnimationSound = Sound:SwordIntoGroundQuiet Animation:DUGLOIN_SKL.DUGLOIN_ATKB Frames:38 ;striking ground with axe
End
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER SCORE THROWN_OBJECT HERO ARMY_SUMMARY ATTACK_NEEDS_LINE_OF_SIGHT HEAVY_MELEE_HITTER
PathfindDiameter = 40.0
Body = RespawnBody ModuleTag_RespawnBody
CheerRadius = EMOTION_CHEER_RADIUS
MaxHealth = GLOIN_HEALTH
PermanentlyKilledByFilter = NONE ;Who kills me permanently?
DodgePercent = 80%
End
Behavior = RespawnUpdate ModuleTag_RespawnUpdate
DeathAnim = DYING ;Model condition to play when killed-to-respawn
DeathFX = FX_GloinDieToRespawn ;FXList to play when killed-to-respawn
DeathAnimationTime = 4100 ;How long DeathAnim will take.
InitialSpawnFX = FX_GloinInitialSpawn
RespawnAnim = LEVELED ;Animation to play when respawning.
RespawnFX = FX_GloinRespawn ;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 = HIGloin_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:1125 Time:60000 Health:100% ;DEFAULT VALUES
End
Behavior = AutoHealBehavior ModuleTag_GloinHealing
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
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 = SlowDeathBehavior ModuleTag_05
DeathTypes = ALL -KNOCKBACK
SinkDelay = 3000
SinkRate = 0.40 ; in Dist/Sec
DestructionDelay = 8000
Sound = INITIAL GloinVoiceDie
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
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 = 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 = 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
;;;; SLAM SPECIAL ABILITY ;;;;;;;;--------------------------------------------------------------------
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_SlamEnabler
SpecialPowerTemplate = SpecialAbilityDwarvenGloinSlam
TriggeredBy = Upgrade_EnableDwarvenGloinSlam
End
Behavior = SpecialPowerModule ModuleTag_SlamStarter
SpecialPowerTemplate = SpecialAbilityDwarvenGloinSlam
UpdateModuleStartsAttack = Yes
StartsPaused = Yes
InitiateSound = GloinVoiceGenericSpecialAbility
End
Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_SlamWeaponFireUpdate
SpecialPowerTemplate = SpecialAbilityDwarvenGloinSlam
SpecialWeapon = DwarvenGloinSlamWeapon
WhichSpecialWeapon = 1 ; Corresponds to SPECIAL_WEAPON_ONE
StartAbilityRange = 10.0
SkipContinue = Yes
UnpackTime = 1000 ; Trigger on frame 30 (of 69)
PackTime = 1300 ; Remaining 39 frames (of 69)
MustFinishAbility = Yes
End
Behavior = AutoAbilityBehavior ModuleTag_SlamAutoAbility
SpecialAbility = SpecialAbilityDwarvenGloinSlam
Query = 1 ANY ENEMIES +STRUCTURE -UNATTACKABLE ; structures as a preference
Query = 1 ALL ENEMIES
End
;;;; SHAKE FOUNDATION SPECIAL ABILITY ;;;;--------------------------------------------------------------------
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_ShakeFoundationEnabler
SpecialPowerTemplate = SpecialAbilityDwarvenGloinShakeFoundation
TriggeredBy = Upgrade_EnableDwarvenGloinShakeFoundation
End
Behavior = SpecialPowerModule ModuleTag_ShakeFoundationStarter
SpecialPowerTemplate = SpecialAbilityDwarvenGloinShakeFoundation
UpdateModuleStartsAttack = Yes
StartsPaused = Yes
InitiateSound = GloinVoiceGenericSpecialAbility
End
Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_ShakeFoundationWeaponFireUpdate
SpecialPowerTemplate = SpecialAbilityDwarvenGloinShakeFoundation
SpecialWeapon = DwarvenGloinShakeFoundationWeapon
WhichSpecialWeapon = 2 ; Corresponds to SPECIAL_WEAPON_TWO
StartAbilityRange = 15.0
SkipContinue = Yes
UnpackTime = 1400 ; Trigger on frame 42 (of 115)
PackTime = 2433 ; Remaining 73 frames (of 115)
MustFinishAbility = Yes
End
Behavior = AutoAbilityBehavior ModuleTag_ShakeFoundationAutoAbility
SpecialAbility = SpecialAbilityDwarvenGloinShakeFoundation
Query = 1 ANY ENEMIES +STRUCTURE -UNATTACKABLE
MaxScanRange = 100
End
;;;; SHATTERHAMMER SPECIAL ABILITY ;;;;;;;;--------------------------------------------------------------------
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_SmashEnabler
SpecialPowerTemplate = SpecialAbilityGloinSmash
TriggeredBy = Upgrade_EnableGloinSmash
End
Behavior = SpecialPowerModule ModuleTag_SmashStarter
SpecialPowerTemplate = SpecialAbilityGloinSmash
UpdateModuleStartsAttack = Yes
StartsPaused = Yes
InitiateSound = GloinVoiceGenericSpecialAbility
End
Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_SmashWeaponFireUpdate
SpecialPowerTemplate = SpecialAbilityGloinSmash
SpecialWeapon = GloinSmashWeapon
WhichSpecialWeapon = 3 ; Corresponds to SPECIAL_WEAPON_THREE
StartAbilityRange = 1.0
SkipContinue = Yes
UnpackTime = 2000 ; Trigger on frame 60 (of 100)
PackTime = 1333 ; Remaining 40 frames (of 100)
MustFinishAbility = Yes
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 SlamAI
CommandButtonName = Command_SpecialAbilityDwarvenGloinSlam
SpecialPowerAIType = AI_SPECIAL_POWER_ENEMY_TYPE_KILLER_STRUCTURES
SpecialPowerRange = 200
End
Behavior = AISpecialPowerUpdate ShakeFoundationAI
CommandButtonName = Command_SpecialAbilityDwarvenGloinShakeFoundation
SpecialPowerAIType = AI_SPECIAL_POWER_ENEMY_TYPE_KILLER_STRUCTURES
SpecialPowerRange = 200
End
;Behavior = AISpecialPowerUpdate SmashAI
; CommandButtonName = Command_SpecialAbilityGloinSmash
; SpecialPowerAIType = AI_SPECIAL_POWER_BASIC_SELF_BUFF
;End
Geometry = CYLINDER
GeometryMajorRadius = 5.6
GeometryMinorRadius = 5.6
GeometryHeight = 16.0
GeometryIsSmall = Yes
Shadow = SHADOW_DECAL
ShadowSizeX = 19;
ShadowSizeY = 19;
ShadowTexture = ShadowI;
End
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
; aka Gloin, Dwarf
Object DwarvenGloin_Temp
; *** ART Parameters ***
; SelectPortrait for Heros is portrait behind skill buttons. HP = HeroPortrait.
SelectPortrait = HPGloin
; ButtonImage for Heros is button image on Hero Select UI to select hero. HI = HeroIcon or HeroImage.
ButtonImage = HIGloin
;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 = EUDwarfGlo
End
;;================== ANIMATIONS =================================================================
;;================== END ANIMATIONS =================================================================
End
; ***DESIGN parameters ***
Side = Dwarves
EditorSorting = UNIT
ThreatLevel = 5.0
TransportSlotCount = TRANSPORTSLOTCOUNT_HERO
BuildCost = GLOIN_BUILDCOST
BuildTime = GLOIN_BUILDTIME
;//DisplayMeleeDamage = GLOIN_DAMAGE
HeroSortOrder = 40
WeaponSet
Conditions = None
Weapon = PRIMARY GloinAxe
End
ArmorSet
Conditions = None
Armor = ToughHeroArmor
DamageFX = NormalDamageFX
End
VisionRange = VISION_STANDARD_MELEE
ShroudClearingRange = SHROUD_CLEAR_STANDARD
BountyValue = 30
DisplayName = OBJECT:Gloin
RecruitText = CONTROLBAR:GloinRecruit
ReviveText = CONTROLBAR:GloinRevive
Hotkey = CONTROLBAR:GloinHotkey
CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
; CrusherLevel = 1
CommandSet = GloinCommandSet
CommandPoints = 0
; *** AUDIO Parameters ***;
; VoiceAmbushed = GloinVoiceAmbushed
; VoiceAttack = GloinVoiceAttack
; VoiceAttackCharge = GloinVoiceAttackCharge
; VoiceAttackMachine = GloinVoiceAttack
; VoiceAttackStructure = GloinVoiceAttack
; ;VoiceCreated = GloinVoiceSalute ;this conflicts with his respawn dialogue line -- rehooked to spawn FX
; VoiceFear = GloinVoiceHelpMe
; VoiceMove = GloinVoiceMove
; VoiceMoveToCamp = GloinVoiceMove
; VoiceMoveWhileAttacking = GloinVoiceDisengage
; VoicePriority = 67
; VoiceRetreatToCastle = GloinVoiceRetreat
; VoiceSelect = GloinVoiceSelectMS
; VoiceSelectBattle = GloinVoiceSelectBattle
; VoiceGuard = GloinVoiceMove
SoundImpact = ImpactHorse
; UnitSpecificSounds
; VoiceGarrison = GloinVoiceGarrison
; End
#include "..\..\..\includes\StandardUnitEvaEvents.inc"
; EvaEventDieOwner = GloinDie ;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 = Dwarf Unit Infantry Hero
End
ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
MaxUpdateRangeCap = 800
AnimationSound = Sound:FootstepDirtA Animation:DUGloin_SKL.DUGloin_RUNA Frames:3 14
AnimationSound = Sound:FootstepDirtA Animation:DUGloin_SKL.DUGloin_RUNB Frames:3 12
AnimationSound = Sound:BodyFallSoldier Animation:DUGloin_SKL.DUGloin_LNDA Frames:2
AnimationSound = Sound:BodyFallGenericNoArmor Animation:DUGloin_SKL.DUGloin_DIEA Frames:11
AnimationSound = Sound:BodyFallGenericNoArmor Animation:DUGloin_SKL.DUGloin_DIEC Frames:59
End
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER SCORE THROWN_OBJECT HERO ARMY_SUMMARY ATTACK_NEEDS_LINE_OF_SIGHT
PathfindDiameter = 40.0
Body = RespawnBody ModuleTag_RespawnBody
CheerRadius = EMOTION_CHEER_RADIUS
MaxHealth = GLOIN_HEALTH
PermanentlyKilledByFilter = NONE ;Who kills me permanently?
DodgePercent = 80%
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 = HIGloin
;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:900 Time:90000 Health:100% ;DEFAULT VALUES
RespawnEntry = Level:2 Cost:1000 Time:90000 ;For other levels, only override what is different.
RespawnEntry = Level:3 Cost:1100 Time:90000
RespawnEntry = Level:4 Cost:1200 Time:90000
RespawnEntry = Level:5 Cost:1300 Time:120000
RespawnEntry = Level:6 Cost:1400 Time:120000
RespawnEntry = Level:7 Cost:1500 Time:120000
RespawnEntry = Level:8 Cost:1600 Time:120000
RespawnEntry = Level:9 Cost:1700 Time:120000
RespawnEntry = Level:10 Cost:1800 Time:120000
End
Behavior = AutoHealBehavior ModuleTag_GloinHealing
StartsActive = Yes
HealingAmount = HERO_HEAL_AMOUNT
HealingDelay = 1000
StartHealingDelay = HERO_HEAL_DELAY
HealOnlyIfNotInCombat = Yes
End
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_GOOD_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 = 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
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 = EmotionTrackerUpdate Module_EmotionTracker
TauntAndPointDistance = 300 ; max distance to taunted/pointed objet
TauntAndPointUpdateDelay = 1000 ; how often scan (milliseconds)
AddEmotion = Alert_Base
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 = UnpauseSpecialPowerUpgrade ModuleTag_SmashEnabler
SpecialPowerTemplate = SpecialAbilityGloinSmash
TriggeredBy = Upgrade_EnableGloinSmash
End
Behavior = SpecialPowerModule ModuleTag_SmashStarter
SpecialPowerTemplate = SpecialAbilityGloinSmash
UpdateModuleStartsAttack = Yes
StartsPaused = Yes
End
Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_SmashWeaponFireUpdate
SpecialPowerTemplate = SpecialAbilityGloinSmash
WhichSpecialWeapon = 1
SkipContinue = Yes
UnpackTime = 1500
PackTime = 1200
FreezeAfterTriggerDuration = 0 ; Hold AI for this long after we fire.
AwardXPForTriggering = 0
SpecialWeapon = GloinSmashWeapon
End
Geometry = CYLINDER
GeometryMajorRadius = 5.6
GeometryMinorRadius = 5.6
GeometryHeight = 16.0
GeometryIsSmall = Yes
Shadow = SHADOW_DECAL
ShadowSizeX = 19;
ShadowSizeY = 19;
ShadowTexture = ShadowI;
End