; The Watcher is a bunch of independantly attacking tenticles. Some hit, some grab and throw, and the one attached to the head
; does the grab and eat so it can find its mouth easily. It's cool.
;---------------------------------------------------------------------------
Object WatcherHead1
SelectPortrait = HPWatcher
ButtonImage = HIWatcher
Draw = W3DScriptedModelDraw ModuleTag_01
ExtraPublicBone = PASSENGER
DefaultModelConditionState
Model = MULrkr_SKN
Skeleton = MULrkr_SKL
End
IdleAnimationState
Animation = Breathe
AnimationName = MULrkr_IDLA
AnimationMode = ONCE
AnimationPriority = 10
End
Animation = Twist
AnimationName = MULrkr_IDLB
AnimationMode = ONCE
AnimationPriority = 1
End
Animation = TwistCloseMouth
AnimationName = MULrkr_IDLC
AnimationMode = ONCE
AnimationPriority = 1
End
Animation = BreatheCloseMouth
AnimationName = MULrkr_IDLD
AnimationMode = ONCE
AnimationPriority = 1
End
AllowRepeatInRandomPick = Yes
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "State_JustBuilt"
then CurDrawableSetTransitionAnimState("TRANS_JustBuilt_To_Idle")
end
EndScript
ParticleSysBone = NONE WatcherRipples FollowBone:Yes
End
AnimationState = JUST_BUILT
StateName = State_JustBuilt
Animation
AnimationName = MULrkr_SPNA
AnimationMode = MANUAL
AnimationBlendTime = 0
End
ParticleSysBone = NONE WatcherRipples FollowBone:Yes
End
TransitionState = TRANS_JustBuilt_To_Idle
Animation = BeingSummoned
AnimationName = MULrkr_SPNA
AnimationMode = ONCE
End
ParticleSysBone = NONE WatcherRipples FollowBone:Yes
End
AnimationState = DYING DEATH_1
Animation = Dying
AnimationName = MULrkr_DWNA
AnimationMode = ONCE
AnimationBlendTime = 15
End
EnteringStateFX = FX_WatcherDeath
End
AnimationState = DYING DEATH_2
Animation = FadingOut
AnimationName = MULrkr_DWNA
AnimationMode = ONCE
AnimationBlendTime = 15
End
EnteringStateFX = FX_WatcherDeath
End
AnimationState = UNPACKING
Animation
AnimationName = MULrkr_EATA1
AnimationMode = ONCE
End
End
AnimationState = PACKING
Animation
AnimationName = MULrkr_EATA2
AnimationMode = ONCE
End
ParticleSysBone = NONE WatcherRipples FollowBone:Yes
End
AnimationState = EATING
Animation
AnimationName = MULrkr_EATA3
AnimationMode = ONCE
End
ParticleSysBone = NONE WatcherRipples FollowBone:Yes
End
End
Side = EvilBeasts
EditorSorting = UNIT
BuildCost = 2000
BuildTime = 1
ShockwaveResistance = SHOCKWAVE_RESISTANCE_ALWAYS
ShroudClearingRange = 300
VisionRange = 200
TransportSlotCount = TRANSPORTSLOTCOUNT_NOT_TRANSPORTABLE
KindOf = SELECTABLE CAN_ATTACK NO_FREEWILL_ENTER SCARY MONSTER SCORE SUMMONED
CommandSet = EmptyCommandSet ; Need this so we can switch context to it, and display the e.g. time remaining.
ThreatLevel = WATCHER_THREAT_LEVEL
CrusherLevel = 2 ; so we crush trees.
RadarPriority = UNIT
CommandPoints = 20
DisplayName = Object:Watcher
Body = ActiveBody ModuleTag_Body
MaxHealth = 5000
End
ArmorSet
Conditions = None
Armor = WatcherArmor
End
; *** AUDIO Parameters ***;
SoundAmbient = WatcherAmbientLoopMS
;#include "..\..\..\includes\StandardUnitEvaEvents.inc" ;
Je suppose que ca vient de là tout comme Sylvebarbe ; Warn the player when the enemy gets a unit. Override the normal sighting event from StandardUnitEvaEvents.inc
EvaEnemyObjectSightedEvent = DiscoveredEnemyWatcher
ClientUpdate = EvaAnnounceClientCreate ModuleTag_CreateAnnounce
AnnouncementEventEnemy = DiscoveredEnemyWatcher
AnnouncementEventAlly = None
AnnouncementEventOwner = None
OnlyIfVisible = Yes ; Don't announce if hidden in the shroud
CountAsFirstSightedAnnoucement = Yes ; Don't re-annouce if going into shroud & back
UseObjectsPosition = No ; Play from central Fortress, not at unit's position
CreateFakeRadarEvent = Yes ; Allow player to jump to unit after hearing annoucement
End
ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
MaxUpdateRangeCap = 800
AnimationSound = Sound: BalrogEatsLift Animation:MULrkr_SKL.MULrkr_EATA1 Frames: 75
AnimationSound = Sound: BalrogEatsHeadShake Animation:MULrkr_SKL.MULrkr_EATA2 Frames: 0
AnimationSound = Sound: BalrogEatsChomp1 Animation:MULrkr_SKL.MULrkr_EATA3 Frames: 0
AnimationSound = Sound: BalrogEatsChomp2 Animation:MULrkr_SKL.MULrkr_EATA3 Frames: 30
AnimationSound = Sound: BalrogEatsChomp3 Animation:MULrkr_SKL.MULrkr_EATA3 Frames: 60
AnimationSound = Sound: BalrogEatsSwallow Animation:MULrkr_SKL.MULrkr_EATA3 Frames: 90
AnimationSound = Sound: BalrogEatsBurp Animation:MULrkr_SKL.MULrkr_EATA3 Frames: 115
End
;-----------------------------------------------------------------------------
; Tunnel
;-----------------------------------------------------------------------------
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_TunnelEnabler
SpecialPowerTemplate = SpecialAbilityWildShelobTunnel1
TriggeredBy = Upgrade_ObjectLevel10
End
Behavior = SpecialPowerModule ModuleTag_TeleportStarter
SpecialPowerTemplate = SpecialAbilityWildShelobTunnel1
UpdateModuleStartsAttack = Yes
StartsPaused = No
InitiateSound = ShelobVoxTunnel
End
Behavior = TeleportSpecialAbilityUpdate ModuleTag_TeleportUpdate
SpecialPowerTemplate = SpecialAbilityWildShelobTunnel1
UnpackTime = 1800
PackTime = 1300
UnpackingVariation = 3
ApproachRequiresLOS = No
BusyForDuration = 1800 ; don't accept any AI for this long... ai commands will be queued (should be at least PackTime)
MaxDistance = WILD_SHELOB_TUNNEL_DISTANCE ; this large so she can teleport to all points on screen
;DestinationWeaponName = SummonDragonBlowBack ; Fires at point of teleport to push people away and down.
End
; *** ENGINEERING Parameters ***
;Behavior = LifetimeUpdate ModuleTag_LifetimeUpdate
;MinLifetime = WATCHER_LIFETIME
;MaxLifetime = WATCHER_LIFETIME
;DeathType = FADED
;End
Behavior = SlowDeathBehavior ModuleTag_NormalDeath
DeathTypes = ALL -FADED
DestructionDelay = 2500
DeathFlags = DEATH_1
End
Behavior = SlowDeathBehavior ModuleTag_FadeDeath
DeathTypes = NONE +FADED
DestructionDelay = 3800
DeathFlags = DEATH_2
End
Behavior = AIUpdateInterface ModuleTag_AI
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
End
Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
GravityMult = 1.0
End
Behavior = AutoPickUpUpdate AutoPickUpForStuffToEat
ScanDelayTime = 10000
ScanDistance = 240
EatObjectEntry = MyHealth:100% TargetHealth:100% Filter:NONE +INFANTRY -HERO -HORDE
End
Behavior = GrabPassengerSpecialPower ModuleTag_GrabBeginning
SpecialPowerTemplate = SpecialAbilityGrabPassenger
UpdateModuleStartsAttack = Yes
End
Behavior = SpecialAbilityUpdate ModuleTag_GrabUpdate
SpecialPowerTemplate = SpecialAbilityGrabPassenger
StartAbilityRange = 240.0
UnpackTime = 3000
PreparationTime = 1
PersistentPrepTime = 1
PackTime = 3400
GrabPassengerAnimAndDuration = AnimState:EATING AnimTime:4000 TriggerTime:200
GrabPassengerHealGainPercent = 10.0
End
Behavior = TransportContain ModuleTag_HoldingInfantry
ObjectStatusOfContained = UNSELECTABLE
PassengerFilter = ANY +INFANTRY -HERO -HORDE
Slots = 1
ShowPips = No
AllowEnemiesInside = Yes
AllowNeutralInside = Yes
AllowAlliesInside = Yes
DamagePercentToUnits = 0%
PassengerBonePrefix = PassengerBone:PASSENGER KindOf:INFANTRY
EjectPassengersOnDeath = No
End
LocomotorSet
Locomotor = WatcherLocomotor
Condition = SET_NORMAL
Speed = 100
End
Geometry = CYLINDER
GeometryMajorRadius = 100
GeometryHeight = 15.0
GeometryIsSmall = No
End