@[member='Thranduil'], ты о чём?@Akhorahil, только название должно отличаться?
Object RohanSpeerwerfer
// *** ART Parameters ***
SelectPortrait = UPRohanSpearmanPortrait
ButtonImage = BGBarracks_RohanSpearmenIcon
Draw = W3DHordeModelDraw ModuleTag_01
OkToChangeModelColor = Yes
StaticModelLODMode = Yes
;specify options for static LODs
LodOptions = LOW
AllowMultipleModels = ALLOW_MULTIPLE_MODELS_LOW
MaxRandomTextures = MAX_RANDOM_TEXTURES_LOW
MaxRandomAnimations = MAX_RANDOM_ANIMATIONS_LOW
MaxAnimFrameDelta = MAX_ANIM_FRAME_DELTA_LOW
End
LodOptions = MEDIUM
AllowMultipleModels = ALLOW_MULTIPLE_MODELS_MED
MaxRandomTextures = MAX_RANDOM_TEXTURES_MED
MaxRandomAnimations = MAX_RANDOM_ANIMATIONS_MED
MaxAnimFrameDelta = MAX_ANIM_FRAME_DELTA_MED
End
LodOptions = HIGH
AllowMultipleModels = ALLOW_MULTIPLE_MODELS_HIGH
MaxRandomTextures = MAX_RANDOM_TEXTURES_HIGH
MaxRandomAnimations = MAX_RANDOM_ANIMATIONS_HIGH
MaxAnimFrameDelta = MAX_ANIM_FRAME_DELTA_HIGH
End
DefaultModelConditionState
Model = ruspeerwerf_skn
Model = ruspeerwerf_skb ExtraMesh:Yes
Model = ruspeerwerf_skc ExtraMesh:Yes
Model = ruspeerwerf_skd ExtraMesh:Yes
WeaponLaunchBone = PRIMARY LANCEBONE
End
IdleAnimationState
StateName = Idle
Animation = IDLC
AnimationName = MUHaraLnc_SKL.MUHaraLnc_IDLC
AnimationMode = ONCE
AnimationPriority = 25
AnimationBlendTime = 15
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Selected" then CurDrawableSetTransitionAnimState("TRANS_Selected_to_Idle") return end
if Prev == "STATE_Emotion"; or Prev == "CloseRange" or Prev == "FarRange"
then
CurDrawableAllowToContinue();
end
CurDrawableSetTransitionAnimState("TRANS_Selected_NoHitch")
EndScript
StateName = Idle
End
AnimationState = THROWN_PROJECTILE
Animation = Thrown
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FLYA
AnimationMode = LOOP
End
End
AnimationState = PASSENGER FREEFALL
Animation = Wiggling
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FLLA
AnimationMode = LOOP
End
EnteringStateFX = FX_ThrownRockPickUp
End
AnimationState = FREEFALL
Animation = Falling
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FLYA
AnimationMode = LOOP
AnimationBlendTime = 10
AnimationSpeedFactorRange = 0.4 0.4
End
End
; --- stunned anims
AnimationState = STUNNED_FLAILING
Animation = Flying
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FLYA
AnimationMode = LOOP
End
End
AnimationState = DYING SPLATTED
Animation = Splattered_On_Ground
AnimationName = MUHaraLnc_SKL.MUHaraLnc_LNDA
AnimationMode = ONCE
End
EnteringStateFX = FX_HaradrimHitGround
End
AnimationState = DYING STUNNED_FLAILING
Animation = Flying
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FLYA
AnimationMode = LOOP
End
End
AnimationState = DYING AFLAME
Animation = Flaming_Death
AnimationName = MUHaraLnc_SKL.MUHaraLnc_DIEA
AnimationMode = ONCE
End
ParticleSysBone = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_HEAD FireSmall FollowBone:yes
ParticleSysBone = BAT_SPINE1 FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_SPINE1 FireSmall FollowBone:yes
ParticleSysBone = BAT_SPINE2 FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_SPINE2 FireSmall FollowBone:yes
End
AnimationState = AFLAME
Animation = Flaming_Death
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FLLA
AnimationMode = LOOP
End
ParticleSysBone = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_HEAD FireSmall FollowBone:yes
ParticleSysBone = BAT_SPINE1 FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_SPINE1 FireSmall FollowBone:yes
ParticleSysBone = BAT_SPINE2 FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_SPINE2 FireSmall FollowBone:yes
End
AnimationState = DYING
StateName = STATE_Dying
Animation = dead
AnimationName = MUHaraLnc_SKL.MUHaraLnc_DIEA
AnimationMode = MANUAL
End
Animation = dead_landed
AnimationName = MUHaraLnc_SKL.MUHaraLnc_LNDA
AnimationMode = MANUAL
End
Flags = START_FRAME_LAST
BeginScript
CurDrawableShowSubObject("LANCE")
Prev = CurDrawablePrevAnimation()
if Prev == "DyingTrans"
then
return "dead"
elseif Prev == "Flying"
then
CurDrawableSetTransitionAnimState("DIE_LAND")
elseif Prev == "Die_Land"
then
return "dead_landed"
end
CurDrawableSetTransitionAnimState("DIE_TRANSITION")
EndScript
End
TransitionState = DIE_TRANSITION
Animation = DyingTrans
AnimationName = MUHaraLnc_SKL.MUHaraLnc_DIEA
AnimationMode = ONCE
End
End
TransitionState = DIE_LAND
Animation = Die_Land
AnimationName = MUHaraLnc_SKL.MUHaraLnc_LNDA
AnimationMode = ONCE
End
End
AnimationState = MOVING CLIMBING
Animation = Climbing
AnimationName = MUHaraLnc_SKL.MUHaraLnc_CLMA
AnimationMode = LOOP
End
End
AnimationState = MOVING DAMAGED AFLAME
ShareAnimation = Yes
Animation = Moving_Damaged
AnimationName = MUHaraLnc_SKL.MUHaraLnc_RUNA
AnimationMode = LOOP
End
ParticleSysBone = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_HEAD FireSmall FollowBone:yes
ParticleSysBone = BAT_SPINE1 FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_SPINE1 FireSmall FollowBone:yes
ParticleSysBone = BAT_SPINE2 FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_SPINE2 FireSmall FollowBone:yes
End
AnimationState = MOVING AFLAME
ShareAnimation = Yes
Animation = Moving
AnimationName = MUHaraLnc_SKL.MUHaraLnc_RUNA
AnimationMode = LOOP
End
ParticleSysBone = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_HEAD FireSmall FollowBone:yes
ParticleSysBone = BAT_SPINE1 FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_SPINE1 FireSmall FollowBone:yes
ParticleSysBone = BAT_SPINE2 FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_SPINE2 FireSmall FollowBone:yes
End
AnimationState = MOVING PANICKING
ShareAnimation = Yes
Animation = RUNM
AnimationName = MUHaraLnc_SKL.MUHaraLnc_MFDA
AnimationMode = LOOP
End
End
AnimationState = MOVING BACKING_UP
ShareAnimation = Yes
Animation = BackingUp
AnimationName = MUHaraLnc_SKL.MUHaraLnc_BAKA
AnimationMode = LOOP
End
End
AnimationState = MOVING EMOTION_TERROR
ShareAnimation = Yes
Animation = Moving
AnimationName = MUHaraLnc_SKL.MUHaraLnc_RUNA
AnimationMode = LOOP
End
ParticleSysBone = None InfantryDustTrails
End
AnimationState = MOVING
ShareAnimation = Yes
Animation = Moving
AnimationName = MUHaraLnc_SKL.MUHaraLnc_RUNA
AnimationMode = LOOP
AnimationSpeedFactorRange = 0.8 1.2
End
ParticleSysBone = None InfantryDustTrails
End
AnimationState = COMING_OUT_OF_FACTORY
Animation = Being_Built
AnimationName = MUHaraLnc_SKL.MUHaraLnc_RUNA
AnimationMode = LOOP
AnimationBlendTime = 0
End
End
AnimationState = PASSENGER
Animation = Wiggling
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FLLA
AnimationMode = LOOP
End
EnteringStateFX = FX_ThrownRockPickUp
End
AnimationState = TRANSPORT_MOVING
Animation = wobbling_on_transport
AnimationName = MUHaraLnc_SKL.MUHaraLnc_IDLC
AnimationMode = LOOP
End
End
AnimationState = STUNNED_STANDING_UP
Animation = Standing_Back_Up
AnimationName = MUHaraLnc_SKL.MUHaraLnc_GTPA
AnimationMode = ONCE
AnimationSpeedFactorRange = 1.5 1.5
End
End
AnimationState = STUNNED
Animation = Splattered_On_Ground
AnimationName = MUHaraLnc_SKL.MUHaraLnc_LNDA
AnimationMode = ONCE
End
EnteringStateFX = FX_HaradrimHitGround
End
AnimationState = RELOADING_A
StateName = STATE_Ready
Animation = ALERT
AnimationName = MUHaraLnc_SKL.MUHaraLnc_IDLA
AnimationMode = LOOP
AnimationBlendTime = 0
End
BeginScript
CurDrawableAllowToContinue()
EndScript
End
AnimationState = FIRING_OR_PREATTACK_A
StateName = FarRange
Animation = FarAttack
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATKB
AnimationMode = ONCE
End
Animation = BIG_BLEND_A
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATKB
AnimationMode = ONCE
AnimationBlendTime = 20
End
FrameForPristineBonePositions = 44
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "CloseRange"
then
return "BIG_BLEND_A"
else
return "FarAttack"
end
EndScript
End
AnimationState = FIRING_OR_PREATTACK_A WEAPONSTATE_CLOSE_RANGE
Animation = CloseAttack
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATKA
AnimationMode = ONCE
UseWeaponTiming = Yes
End
End
AnimationState = FIRING_OR_PREATTACK_B
StateName = CloseRange
Animation = CloseAttack
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATKA
AnimationMode = ONCE
UseWeaponTiming = Yes
End
Animation = BIG_BLEND_B
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATKA
AnimationMode = ONCE
UseWeaponTiming = Yes
AnimationBlendTime = 20
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "FarRange"
then
return "BIG_BLEND_B"
else
return "CloseAttack"
end
EndScript
End
AnimationState = FIRING_OR_PREATTACK_C
StateName = FarRange
Animation = FarAttack
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATKB
AnimationMode = ONCE
End
Animation = BIG_BLEND_A
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATKB
AnimationMode = ONCE
AnimationBlendTime = 20
End
FrameForPristineBonePositions = 44
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "CloseRange"
then
return "BIG_BLEND_A"
else
return "FarAttack"
end
EndScript
End
; --- emotion animations --- ;
AnimationState = WAR_CHANT
Animation = Chant
AnimationName = MUHaraLnc_SKL.MUHaraLnc_TNTA
AnimationMode = ONCE
End
Animation = A
AnimationName = MUHaraLnc_SKL.MUHaraLnc_TNTA
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Emotion"
then
CurDrawableAllowToContinue();
end
EndScript
End
AnimationState = EMOTION_UNCONTROLLABLY_AFRAID
ShareAnimation = Yes
StateName = STATE_Emotion
Animation = FERA
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FERA
AnimationMode = ONCE
End
Animation = A
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FERA
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Emotion"
then
CurDrawableAllowToContinue();
end
EndScript
End
AnimationState = ATTACKING
Animation = IdleAllAttacksComeFrom
AnimationName = MUHaraLnc_SKL.MUHaraLnc_IDLA
AnimationMode = LOOP
End
End
AnimationState = EMOTION_AFRAID
ShareAnimation = Yes
StateName = STATE_Emotion
Animation = FERA
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FERA
AnimationMode = ONCE
End
Animation = A
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FERA
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Emotion"
then
CurDrawableAllowToContinue();
end
EndScript
End
AnimationState = EMOTION_TAUNTING
StateName = STATE_Emotion
Animation = TNTA
AnimationName = MUHaraLnc_SKL.MUHaraLnc_TNTA
AnimationMode = ONCE
End
Animation = A
AnimationName = MUHaraLnc_SKL.MUHaraLnc_TNTA
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Emotion"
then
CurDrawableAllowToContinue();
end
EndScript
End
AnimationState = EMOTION_POINTING
StateName = STATE_Emotion
Animation = Pointing1
AnimationName = MUHaraLnc_SKL.MUHaraLnc_PNTA
AnimationMode = ONCE
End
Animation = A
AnimationName = MUHaraLnc_SKL.MUHaraLnc_PNTA
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Emotion"
then
CurDrawableAllowToContinue();
end
EndScript
End
AnimationState = EMOTION_CELEBRATING
StateName = STATE_Emotion
Animation = CHRA
AnimationName = MUHaraLnc_SKL.MUHaraLnc_CHRA
AnimationMode = ONCE
AnimationPriority = 10
End
Animation = CHRB
AnimationName = MUHaraLnc_SKL.MUHaraLnc_CHRA
AnimationMode = ONCE
AnimationPriority = 10
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Emotion"
then
CurDrawableAllowToContinue();
end
EndScript
End
AnimationState = EMOTION_ALERT
StateName = STATE_Emotion
Animation = ALERT
AnimationName = MUHaraLnc_SKL.MUHaraLnc_IDLA
AnimationMode = ONCE
End
Animation = A
AnimationName = MUHaraLnc_SKL.MUHaraLnc_IDLA
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Emotion"
then
CurDrawableAllowToContinue();
end
EndScript
End
; --- hit reactions
AnimationState = HIT_REACTION HIT_LEVEL_1
Animation = GotHit
AnimationName = MUHaraLnc_SKL.MUHaraLnc_HITA
AnimationMode = ONCE
End
End
AnimationState = SELECTED
StateName = STATE_Selected
SimilarRestart = Yes
Animation = AtAttention
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATNB
AnimationMode = LOOP
End
Animation = BIG_BLEND_Selected
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATNB
AnimationMode = LOOP
AnimationBlendTime = 20
End
BeginScript
Prev = CurDrawablePrevAnimationState()
CurDrawableShowSubObject("LANCE")
if Prev == "Idle" then CurDrawableSetTransitionAnimState("TRANS_Idle_to_Selected") return end
if Prev == "STATE_Emotion"; or Prev == "CloseRange" or Prev == "FarRange"
then
CurDrawableAllowToContinue();
end
if Prev == "GotHit"
then
return "BIG_BLEND_Selected"
end
return "AtAttention"
EndScript
End
TransitionState = TRANS_Idle_to_Selected
Animation = ATNA
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATNA
AnimationMode = ONCE
End
End
TransitionState = TRANS_Selected_to_Idle
Animation = ATNA
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATNC
AnimationMode = ONCE
End
End
End
Draw = W3DScriptedModelDraw Icon
ModelConditionState = NONE
Model = bbox
End
End
; ***DESIGN parameters ***
Side = Rohan
EditorSorting = UNIT
ThreatLevel = 1.0
EmotionRange = EMOTION_CHEER_RADIUS
TransportSlotCount = TRANSPORTSLOTCOUNT_UNIT
CommandPoints = 3
WeaponSet
Conditions = None
Weapon = PRIMARY RohanSpeerwerferWeapon
Weapon = TERTIARY RohanSpeerwerferWeaponHeroMode
AutoChooseSources = TERTIARY NONE
ShareWeaponReloadTime = Yes
End
WeaponSet
Conditions = CLOSE_RANGE CONTESTING_BUILDING
Weapon = PRIMARY RohanSpeerwerferWeapon
Weapon = SECONDARY RohanSpeerwerferLance
Weapon = TERTIARY RohanSpeerwerferWeaponHeroMode
OnlyAgainst = PRIMARY STRUCTURE
AutoChooseSources = TERTIARY FROM_PLAYER FROM_SCRIPT
AutoChooseSources = TERTIARY NONE
ShareWeaponReloadTime = Yes
End
WeaponSet
Conditions = CONTAINED
Weapon = PRIMARY RohanSpeerwerferWeapon
End
WeaponSet
Conditions = HIDDEN
End
ArmorSet
Conditions = None
Armor = EdainPikemanArmor
DamageFX = NormalDamageFX
End
ArmorSet
Conditions = PLAYER_UPGRADE
Armor = EdainPikemanHeavyArmor
DamageFX = NormalDamageFX
End
MaxVisionBonusPercent = 300%
VisionBonusTestRadius = 200
VisionBonusPercentPerFoot = 2.0%
BountyValue = 8
CrusherLevel = 0 ;What can I crush?: 0 = small animals, 1 = infantry, 2 = trees, 3 = vehicles
VisionRange = 300 ;GONDOR_ARCHER_HORDE_VISION_RANGE
ShroudClearingRange = 350 ;GONDOR_ARCHER_HORDE_SHROUD_RANGE
VisionSide = 35%
VisionRear = 25%
DisplayName = OBJECT:RohanYeomanSpearThrower
CrushableLevel = 0 //What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CrushRevengeWeapon = AntiCavalryInfantryCrushRevenge
CommandSet = MordorHaradrimLancerCommandSet
; *** AUDIO Parameters ***;
VoiceAttack = PeasantMaleVoiceAttack
VoiceAttackCharge = PeasantMaleVoiceAttackCharge
VoiceAttackStructure = PeasantMaleVoiceAttackBuilding
VoiceAttackMachine = PeasantMaleVoiceAttack
VoiceCreated = PeasantMaleVoiceSalute
VoiceFullyCreated = PeasantMaleVoiceSalute
VoiceGuard = PeasantMaleVoiceMove
VoiceMove = PeasantMaleVoiceMove
VoiceMoveToCamp = PeasantMaleVoiceMoveCamp
VoiceMoveWhileAttacking = PeasantMaleVoiceDisengage
VoicePriority = 30
VoiceRetreatToCastle = PeasantMaleVoiceRetreat
VoiceSelect = PeasantMaleVoiceSelectMS
VoiceSelectBattle = PeasantMaleVoiceSelectBattle
VoiceEnterStateAttack = PeasantMaleVoiceEnterStateAttack
VoiceEnterStateAttackCharge = PeasantMaleVoiceEnterStateAttackCharge
VoiceEnterStateAttackStructure = PeasantMaleVoiceEnterStateAttackBuilding
VoiceEnterStateAttackMachine = PeasantMaleVoiceEnterStateAttackBuilding
VoiceEnterStateMove = PeasantMaleVoiceEnterStateMove
VoiceEnterStateMoveToCamp = PeasantMaleVoiceEnterStateMoveCamp
VoiceEnterStateMoveWhileAttacking = PeasantMaleVoiceEnterStateDisengage
VoiceEnterStateRetreatToCastle = PeasantMaleVoiceEnterStateRetreat
SoundImpact = ImpactHorse
UnitSpecificSounds
VoiceGarrison = YeomanArcherVoiceGarrisonMod
End
;#include "..\includes\StandardUnitEvaEvents.inc"
;EvaEventDieOwner = GroupHaradrimDie ;Eva event to trigger on unit's death. NOTICE THAT this is only for permanent deaths
;For deaths you can respawn from, use the DeathFX
ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
MaxUpdateRangeCap = 800
AnimationSound = Sound:BodyFallSoldier Animation:MUHaraLnc_SKL.MUHaraLnc_LNDA Frames:3
AnimationSound = Sound:BodyFallGeneric1 Animation:MUHaraLnc_SKL.MUHaraLnc_DIEA Frames:47
End
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS NOTIFY_OF_PREATTACK INFANTRY PATH_THROUGH_EACH_OTHER PIKE SCORE GRAB_AND_DROP ATTACK_NEEDS_LINE_OF_SIGHT ;THROWN_OBJECT
Body = PorcupineFormationBodyModule ModuleTag_porcupineFormation
CheerRadius = EMOTION_CHEER_RADIUS
MaxHealth = ROHAN_WДCHTERMEDUSELDS_HEALTH
MaxHealthDamaged = ROHAN_WДCHTERMEDUSELDS_HEALTH_DAMAGED
DamageWeaponTemplate = EasterlingPorcupineDamage
CrushDamageWeaponTemplate = EasterlingPorcupineCrushDamage
CrusherLevelResisted = 1; ;What crusher level can I resist?: 1 = infantry, 2 = trees, 3 = vehicles
BurningDeathBehavior = Yes
BurningDeathFX = FX_InfantryBurningFlame
End
Behavior = DeflectSpecialPower ModuleTag_02b
SpecialPowerTemplate = SpecialAbilityDeflectProjectiles
End
Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = FighterHorde
End
Behavior = AIUpdateInterface ModuleTag_03
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
StopChaseDistance = 674
CanAttackWhileContained = Yes
AttackPriority = AttackPriority_Archer
End
Behavior = HitReactionBehavior HitReactionBehaviorModuleTag
HitReactionLifeTimer1 = 1500 ; level 1 (light damage) hit reaction animations in frames (5 per sec)
HitReactionLifeTimer2 = 1500 ; level 2 (medium damage) hit reaction animations in frames (5 per sec)
HitReactionLifeTimer3 = 1500 ; level 3 (heavy damage) hit reaction animations in frames (5 per sec)
HitReactionThreshold1 = 0.0 ; level 1 (light damage) threshold trigger
HitReactionThreshold2 = 9999.0 ; level 2 (medium damage) threshold trigger
HitReactionThreshold3 = 9999.0 ; level 3 (heavy damage) threshold trigger
End
LocomotorSet
Locomotor = HumanLocomotor
Condition = SET_NORMAL
Speed = NORMAL_EVIL_INFANTRY_MEMBER_SPEED
End
Behavior = DualWeaponBehavior ModuleTag_13
SwitchWeaponOnCloseRangeDistance = MORDOR_HARADRIM_LANCER_SWITCH_RANGE
End
Behavior = PhysicsBehavior ModuleTag_04
GravityMult = 1.0
End
Behavior = SlowDeathBehavior ModuleTag_05
DeathTypes = ALL -KNOCKBACK -EXTRA_8
SinkDelay = 5000
SinkRate = 1.0 ; in Dist/Sec
DestructionDelay = 17000
Sound = INITIAL HaradrimVoiceDie ;CivMaleDie
End
Behavior = SquishCollide ModuleTag_06
;nothing
End
Behavior = HordeMemberCollide ModuleTag_HMC
;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.8 ; in Dist/Sec
DestructionDelay = 13000
Sound = INITIAL HaradrimVoiceDie ;CivMaleDie
End
;;; Infos Ea: Orientiert am Tod der Ents (Kein schweres Module, einfach mal durchblдttern)
Behavior = SlowDeathBehavior ModuleTag_GrabandDrop
DeathTypes = NONE +EXTRA_8 ;;;Deathweapon wird bisher noch nicht genutzt, also passend fьr Grab and Drop death weapon der fliegenden Einheiten
SinkDelay = 3000 ;;;Uninteressant
SinkRate = 0.60 ;;;Uninteressant
DestructionDelay = 10000 ;;;Sollte mцglichst hoch sein
DeathFlags = DEATH_4 ;;;Die Ani dazu gibt es nicht und wird auch nihct benцtigt, es ist automatisch an de Passenger der fliegenden Unit geknьpft
ShadowWhenDead = Yes ;;;Sollte klar sein
End
Behavior = FireWeaponWhenDeadBehavior ModuleTag_GrabandDropImpact
RequiredStatus = DEATH_4
StartsActive = Yes
DelayTime = 0
DeathWeapon = GrabandDropInfantryImpactWarhead
WeaponOffset = X:0 Y:0 Z:0
End
Behavior = BezierProjectileBehavior ModuleTag_BodyHitHuman
FirstHeight = 24
SecondHeight = 24
FirstPercentIndent = 30%
SecondPercentIndent = 70%
TumbleRandomly = Yes
CrushStyle = Yes
DieOnImpact = Yes
BounceCount = 1
BounceDistance = 40
BounceFirstHeight = 24
BounceSecondHeight = 24
BounceFirstPercentIndent = 20%
BounceSecondPercentIndent = 80%
GroundHitFX = FX_GrabandDropInfantryGroundHit
GroundBounceFX = FX_GrabandDropInfantryGroundHit
End
; Tie into LargeGroupAudio system
Behavior = LargeGroupAudioUpdate ModuleTag_LGAU
Key = Haradrim_Lancer
End
Behavior = WeaponSetUpgrade WeaponSetUpgradeModuleTag
TriggeredBy = Upgrade_RohanModForgedBlades
End
Behavior = ArmorUpgrade ArmorUpgradeModuleTag
TriggeredBy = Upgrade_RohanModHeavyArmor
ArmorSetFlag = PLAYER_UPGRADE
End
//-----------------------------------------------------------------------
//
// Sub objects
//
Behavior = SubObjectsUpgrade Armor_Upgrade
TriggeredBy = Upgrade_RohanModHeavyArmor
UpgradeTexture = ruspearman.tga 0 ruspearman_ha.tga
UpgradeTexture = ruspearman2.tga 0 ruspearman_ha.tga
UpgradeTexture = ruspearman3.tga 0 ruspearman3_ha.tga
UpgradeTexture = rusoldier4.tga 0 rusoldier4_ha.tga
RecolorHouse = Yes
ExcludeSubobjects = Forged_Blade
End
Behavior = SubObjectsUpgrade ForgedBlade_Upgrade1
TriggeredBy = Upgrade_AllFactionUpgrade
HideSubObjects = Forged_Blade
End
Behavior = SubObjectsUpgrade ForgedBlade_Upgrade
TriggeredBy = Upgrade_RohanModForgedBlades
ShowSubObjects = Forged_Blade
End
Behavior = FireWeaponWhenDeadBehavior FireDeadTag
DeathTypes = NONE +CRUSHED
StartsActive = Yes
DelayTime = 0
DeathWeapon = HaradrimCrushedWeapon
WeaponOffset = X:0 Y:0 Z:0
End
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_Enabler
SpecialPowerTemplate = SpecialAbilityHammerschlдge
TriggeredBy = Upgrade_AllFactionUpgrade
End
Behavior = WeaponModeSpecialPowerUpdate ModuleTag_PowerUpdate
SpecialPowerTemplate = SpecialAbilityHammerschlдge
Duration = 20000
AttributeModifier = RohanSpeerwerferBonus
LockWeaponSlot = TERTIARY
StartsPaused = No
End
Scale = 1.04
Geometry = CYLINDER
GeometryMajorRadius = 8.0
GeometryMinorRadius = 8.0
GeometryHeight = 19.2
GeometryIsSmall = Yes
Shadow = SHADOW_DECAL
ShadowSizeX = 11;
ShadowSizeY = 11;
ShadowTexture = ShadowI;
End
ChildObject RohanSpeerwerfer_Slaved RohanSpeerwerfer
VisionSide = 100%
VisionRear = 100%
ShroudClearingRange = 300
ShockwaveResistance = SHOCKWAVE_RESISTANCE_ALWAYS
KindOf = UNATTACKABLE NOT_AUTOACQUIRABLE
Behavior = SubObjectsUpgrade ForgedBlade_Upgrade1
TriggeredBy = Upgrade_AllFactionUpgrade Upgrade_RohanFaction
HideSubObjects = Forged_Blade
End
CommandPoints = 0
LocomotorSet
Locomotor = FloatingLichtbringerLocomotor
Condition = SET_NORMAL
Speed = 0
End
Behavior = SlavedUpdate ModuleTag_Slave
DieOnMastersDeath = Yes
MarkUnselectable = No
End
Behavior = AIUpdateInterface ModuleTag_03
AutoAcquireEnemiesWhenIdle = Yes
End
WeaponSet
Conditions = None
Weapon = PRIMARY RohanSpeerwerferWeaponSlaved
End
VoiceCreated = ElfWarriorVoiceSaluteBow_Slaved
VoiceFullyCreated = ElfWarriorVoiceSaluteBow_Slaved
CommandSet = EmptyCommandSet
Behavior = WeaponSetUpgrade ModuleTag_FlamingAttack ;// Doesn't really use a weaponset swap, the swap is in the weapon itself. But this helps debugging more than a fake status bit upgrade
TriggeredBy = Upgrade_GoodFortressFlamingMunitions
End
Scale = 0.8
Behavior = SlavedUpdate ModuleTag_Slave
DieOnMastersDeath = Yes
MarkUnselectable = No
End
End
ChildObject RohanSpeerwerferCreep RohanSpeerwerfer
IsTrainable = No
CommandPoints = 0
EquivalentTo = RohanSpeerwerfer
Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = FighterHorde
End
KindOf = +CREEP
VisionRange = CREEP_VISION
ThreatBreakdown MordorGoblinSwordsmanSlaved_ThreatBreakdown
AIKindOf = CREEP
End
Behavior = SlavedUpdate ModuleTag_Slave
GuardMaxRange = 280
GuardWanderRange = 60
UseSlaverAsControlForEvaObjectSightedEvents = Yes
End
End
Object RohanSpeerwerferHordeStandard
// This is required for garrisoned objects - please put in all objects.
SelectPortrait = UPRohanSpearmanPortrait
ButtonImage = BGBarracks_RohanSpearmenIcon
Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER SELECTED EMOTION_TERROR EMOTION_LOOK_TO_SKY
DefaultModelConditionState
Model = None //InvisHrdeTmp5x2
End
ModelConditionState = HORDE_EMPTY
Model = None
End
ModelConditionState = WORLD_BUILDER
Model = HordeMarkGUTow
End
End
Side = Men
EditorSorting = UNIT
EmotionRange = 240
DisplayName = OBJECT:RohanSpeerwerferHorde
DisplayNameStrategic = CONTROLBAR:LW_Unit_RohanSpeerwerferHorde
DescriptionStrategic = CONTROLBAR:LW_ToolTip_RohanSpeerwerferHorde
WeaponSet
Conditions = None
Weapon = PRIMARY GoodArcherMissileHordeRangefinder
Weapon = TERTIARY GoodArcherMissileHordeRangefinder
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT
AutoChooseSources = TERTIARY FROM_PLAYER FROM_SCRIPT ; Not AI.
ShareWeaponReloadTime = Yes
End
// *** AUDIO Parameters ***//
// Note: Don't put voice parameters here -- they will be ignored. Voice play requests
// are always passed through to members
BuildCost = 350 ;ROHAN_WДCHTERMEDUSELDS_BUILDCOST
BuildTime = 30
VisionRange = 300 ;GONDOR_ARCHER_HORDE_VISION_RANGE
ShroudClearingRange = 350 ;GONDOR_ARCHER_HORDE_SHROUD_RANGE
VisionSide = 50%
VisionRear = 25%
MaxVisionBonusPercent = 300%
VisionBonusTestRadius = 200
VisionBonusPercentPerFoot = 1.0%
CommandPoints = 30
CommandSet = RohanSpeerwerferHordeCommandSet_Standard
FormationWidth = 2 // Width it occupies in formations. Current choices are 1 or 2.
FormationDepth = 1 // Depth it occupies in formations. Current choices are 1 or 2.
CrushableLevel = 0 //What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CrusherLevel = 0
TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE
KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY ARCHER HORDE ARMY_SUMMARY MELEE_HORDE LARGE_RECTANGLE_PATHFIND
#include "..\..\..\includes\StandardHordeEvaEvents.inc"
Body = ImmortalBody ModuleTag_ImmortalBody
MaxHealth = 1
End
ThreatLevel = GONDOR_TOWERSHIELDGUARD_HORDE_THREAT
ThreatBreakdown GondorTowerShieldGuardHorde_DetailedThreat
AIKindOf = ARCHER
End
#include "..\..\..\includes\CaptureBuilding.inc"
Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = ArcherHorde
End
Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
MaxCowerTime = 5000
MinCowerTime = 3000
CanAttackWhileContained = Yes // Can fire out of garrisoned building
AILuaEventsList = InfantryFunctions
AttackPriority = AttackPriority_Archer
End
Behavior = HordeContain ModuleTag_HordeContain
FrontAngle = 270
FlankedDelay = 2000
ObjectStatusOfContained =
InitialPayload = RohanSpeerwerfer 10
Slots = 10
PassengerFilter = NONE +INFANTRY
ShowPips = No
ThisFormationIsTheMainFormation = Yes //Used to determine which armorset to use (and anything else we want!)
RandomOffset=X:0 Y:0
MeleeBehavior = Amoeba
End
// Banner Carrier info
BannerCarriersAllowed = RohanBanner// types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:RohanSpeerwerfer Pos:X:70.0 Y:0.0 // (DEFAULT) position of banner carrier
RankInfo = RankNumber:1 UnitType:RohanSpeerwerfer Position:X:50 Y:0 Position:X:50 Y:20 Position:X:50 Y:-20 Position:X:50 Y:40 Position:X:50 Y:-40
RankInfo = RankNumber:2 UnitType:RohanSpeerwerfer Position:X:30 Y:0 Leader 1 0 Position:X:30 Y:20 Leader 1 1 Position:X:30 Y:-20 Leader 1 2 Position:X:30 Y:40 Leader 1 3 Position:X:30 Y:-40 Leader 1 4
RanksToReleaseWhenAttacking = 1 2
MeleeAttackLeashDistance = 1 //How far the hordes can move from the center of the horde when melee attacking.
BackUpMinDelayTime = 1 //The minimum amount of time to delay before backing up
BackUpMaxDelayTime = 3000 //The maximum amount of time to delay before backing up
BackUpMinDistance = 1 //The minimum number of cells to backup
BackUpMaxDistance = 3 //The maximum number of cells to backup
BackupPercentage = 80% //The amount of chance that a unit will back up.
End
Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
GravityMult = 1.0
End
Behavior = EmotionTrackerUpdate Module_EmotionTracker
TauntAndPointDistance = INFANTRY_TAUNT_POINT_RADIUS // max distance to taunted/pointed objet
TauntAndPointUpdateDelay = 1000 // how often scan (milliseconds)
TauntAndPointExcluded = NONE
AfraidOf = EMOTION_AFRAIDOF_OBJECTFILTER
AlwaysAfraidOf = EMOTION_ALWAYS_AFRAIDOF_OBJECTFILTER
PointAt = EMOTION_POINTAT_OBJECTFILTER
HeroScanDistance = 150
FearScanDistance = INFANTRY_FEAR_SCAN_RADIUS
AddEmotion = Terror_Base
AddEmotion = Doom_Base
// AddEmotion = BraceForBeingCrushed_Base // Pikemen don't fear getting crushed
AddEmotion = UncontrollableFear_Base
AddEmotion = FearIdle_Base
AddEmotion = FearBusy_Base
AddEmotion = Point_Base
AddEmotion = OVERRIDE Taunt_Base
// AttributeModifier = GondorFighterTaunt
End
AddEmotion = CheerIdle_Base
AddEmotion = CheerBusy_Base
AddEmotion = HeroCheerIdle_Base
AddEmotion = HeroCheerBusy_Base
AddEmotion = Alert_Base
End
Behavior = PickupStuffUpdate ModuleTag_PickupStuffUpdate
SkirmishAIOnly = Yes
StuffToPickUp = NONE +CRATE
ScanRange = 200
ScanIntervalSeconds = 0.5
End
LocomotorSet
Locomotor = NormalMeleeHordeLocomotor
Condition = SET_NORMAL
Speed = NORMAL_FOOT_MED_HORDE_SPEED ;NORMAL_GOOD_INFANTRY_HORDE_SPEED
End
Behavior = ProductionUpdate ProductionUpdateModuleTag
GiveNoXP = Yes
End
Behavior = LevelUpUpgrade ModuleTag_BasicTraining
TriggeredBy = Upgrade_RohanModBasicTraining
LevelsToGain = 1
LevelCap = 2
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality
TriggeredBy = Upgrade_RohanModForgedBlades
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality2
TriggeredBy = Upgrade_RohanModHeavyArmor
End
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_Enabler
SpecialPowerTemplate = SpecialAbilityHammerschlдge
TriggeredBy = Upgrade_AllFactionUpgrade
End
Behavior = WeaponModeSpecialPowerUpdate ModuleTag_PowerUpdate
SpecialPowerTemplate = SpecialAbilityHammerschlдge
Duration = 20000
AttributeModifier = RohanSpeerwerferBonus
LockWeaponSlot = TERTIARY
StartsPaused = No
End
/////////////////////
// AISpecialPowers
/////////////////////
Behavior = AISpecialPowerUpdate GondorTowerShieldGuardHordeCaptureBuildingAI
CommandButtonName = Command_CaptureBuilding
SpecialPowerAIType = AI_SPECIAL_POWER_CAPTURE_BUILDING
End
Geometry = BOX
GeometryMajorRadius = 30.0
GeometryMinorRadius = 45.0
GeometryHeight = 20.0
GeometryIsSmall = No
// *** AUTO RESOLVE DATA ***
AutoResolveUnitType = AutoResolveUnit_Soldier
AutoResolveCombatChain = AutoResolve_SoldierCombatChain
AutoResolveBody = AutoResolve_GondorFighterHordeBody
AutoResolveArmor
RequiredUpgrades = Upgrade_RohanModHeavyArmor
Armor = AutoResolve_GondorSoldierHeavyArmor
End
AutoResolveArmor
ExcludedUpgrades = Upgrade_RohanModHeavyArmor
Armor = AutoResolve_GondorSoldierArmor
End
AutoResolveWeapon
RequiredUpgrades = Upgrade_RohanModForgedBlades
Weapon = AutoResolve_GondorSoldierUpgradedWeapon
End
AutoResolveWeapon
ExcludedUpgrades = Upgrade_RohanModForgedBlades
Weapon = AutoResolve_GondorSoldierWeapon
End
WorldMapArmoryUpgradesAllowed = Upgrade_RohanModBasicTraining Upgrade_RohanModForgedBlades Upgrade_RohanModHeavyArmor
End
Object RohanSpeerwerferHorde
// This is required for garrisoned objects - please put in all objects.
SelectPortrait = UPRohanSpearmanPortrait
ButtonImage = BGBarracks_RohanSpearmenIcon
Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER SELECTED EMOTION_TERROR EMOTION_LOOK_TO_SKY
DefaultModelConditionState
Model = None //InvisHrdeTmp5x2
End
ModelConditionState = HORDE_EMPTY
Model = None
End
ModelConditionState = WORLD_BUILDER
Model = HordeMarkGUTow
End
End
Side = Men
EditorSorting = UNIT
EmotionRange = 240
DisplayName = OBJECT:RohanSpeerwerferHorde
DisplayNameStrategic = CONTROLBAR:LW_Unit_RohanSpeerwerferHorde
DescriptionStrategic = CONTROLBAR:LW_ToolTip_RohanSpeerwerferHorde
WeaponSet
Conditions = None
Weapon = PRIMARY GoodArcherMissileHordeRangefinder
Weapon = TERTIARY GoodArcherMissileHordeRangefinderBombard
AutoChooseSources = TERTIARY FROM_PLAYER FROM_SCRIPT ; Not AI.
End
// *** AUDIO Parameters ***//
// Note: Don't put voice parameters here -- they will be ignored. Voice play requests
// are always passed through to members
BuildCost = 350 ;ROHAN_WДCHTERMEDUSELDS_BUILDCOST
BuildTime = 30
VisionRange = 300 ;GONDOR_ARCHER_HORDE_VISION_RANGE
ShroudClearingRange = 350 ;GONDOR_ARCHER_HORDE_SHROUD_RANGE
VisionSide = 50%
VisionRear = 25%
MaxVisionBonusPercent = 300%
VisionBonusTestRadius = 200
VisionBonusPercentPerFoot = 1.0%
CommandPoints = 30
CommandSet = RohanFighterHordeCommandSet
FormationWidth = 2 // Width it occupies in formations. Current choices are 1 or 2.
FormationDepth = 1 // Depth it occupies in formations. Current choices are 1 or 2.
CrushableLevel = 0 //What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CrusherLevel = 0
TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE
KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY ARCHER HORDE ARMY_SUMMARY MELEE_HORDE LARGE_RECTANGLE_PATHFIND
#include "..\..\..\includes\StandardHordeEvaEvents.inc"
Body = ImmortalBody ModuleTag_ImmortalBody
MaxHealth = 1
End
ThreatLevel = GONDOR_TOWERSHIELDGUARD_HORDE_THREAT
ThreatBreakdown GondorTowerShieldGuardHorde_DetailedThreat
AIKindOf = ARCHER
End
#include "..\..\..\includes\CaptureBuilding.inc"
Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = ArcherHorde
End
Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
MaxCowerTime = 5000
MinCowerTime = 3000
CanAttackWhileContained = Yes // Can fire out of garrisoned building
AILuaEventsList = InfantryFunctions
AttackPriority = AttackPriority_Archer
End
Behavior = HordeContain ModuleTag_HordeContain
FrontAngle = 180
FlankedDelay = 4000
ObjectStatusOfContained =
InitialPayload = RohanSpeerwerfer 10
Slots = 10
PassengerFilter = NONE +INFANTRY
ShowPips = No
ThisFormationIsTheMainFormation = Yes //Used to determine which armorset to use (and anything else we want!)
RandomOffset=X:0 Y:0
MeleeBehavior = Amoeba
FacingBonus = 30.0
AngleLimitCos = -0.17
InnerRange = 30
OuterRange = 80
OuterRangeBuildings = 140
End
BannerCarriersAllowed = RohanHeroldBanner ; types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:RohanSpeerwerfer Pos:X:70.0 Y:0.0 ; (DEFAULT) position of banner carrier for fighter horde
BannerCarrierMinLevel = 0
BannerCarrierDestroyHordeOnDeath = No
BannerCarrierHordeDeathType = +NORMAL ;NORMAL, NONE, CRUSHED, BURNED, EXPLODED, POISONED, TOPPLED, FLOODED, SUICIDED, LASERED, DETONATED, SPLATTED, POISONED_BETA, EXTRA_2, EXTRA_3, EXTRA_4, EXTRA_5, EXTRA_6, EXTRA_7, EXTRA_8, KNOCKBACK, SUPERNATURAL, FADED, SLAUGHTERED
RankInfo = RankNumber:1 UnitType:RohanSpeerwerfer Position:X:50 Y:0 Position:X:50 Y:20 Position:X:50 Y:-20 Position:X:50 Y:40 Position:X:50 Y:-40
RankInfo = RankNumber:2 UnitType:RohanSpeerwerfer Position:X:30 Y:0 Leader 1 0 Position:X:30 Y:20 Leader 1 1 Position:X:30 Y:-20 Leader 1 2 Position:X:30 Y:40 Leader 1 3 Position:X:30 Y:-40 Leader 1 4
RanksToReleaseWhenAttacking = 1 2
MeleeAttackLeashDistance = 1 //How far the hordes can move from the center of the horde when melee attacking.
BackUpMinDelayTime = 1 //The minimum amount of time to delay before backing up
BackUpMaxDelayTime = 3000 //The maximum amount of time to delay before backing up
BackUpMinDistance = 1 //The minimum number of cells to backup
BackUpMaxDistance = 3 //The maximum number of cells to backup
BackupPercentage = 80% //The amount of chance that a unit will back up.
End
Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
GravityMult = 1.0
End
Behavior = EmotionTrackerUpdate Module_EmotionTracker
TauntAndPointDistance = INFANTRY_TAUNT_POINT_RADIUS // max distance to taunted/pointed objet
TauntAndPointUpdateDelay = 1000 // how often scan (milliseconds)
TauntAndPointExcluded = NONE
AfraidOf = EMOTION_AFRAIDOF_OBJECTFILTER
AlwaysAfraidOf = EMOTION_ALWAYS_AFRAIDOF_OBJECTFILTER
PointAt = EMOTION_POINTAT_OBJECTFILTER
HeroScanDistance = 150
FearScanDistance = INFANTRY_FEAR_SCAN_RADIUS
AddEmotion = Terror_Base
AddEmotion = Doom_Base
// AddEmotion = BraceForBeingCrushed_Base // Pikemen don't fear getting crushed
AddEmotion = UncontrollableFear_Base
AddEmotion = FearIdle_Base
AddEmotion = FearBusy_Base
AddEmotion = Point_Base
AddEmotion = OVERRIDE Taunt_Base
// AttributeModifier = GondorFighterTaunt
End
AddEmotion = CheerIdle_Base
AddEmotion = CheerBusy_Base
AddEmotion = HeroCheerIdle_Base
AddEmotion = HeroCheerBusy_Base
AddEmotion = Alert_Base
End
Behavior = PickupStuffUpdate ModuleTag_PickupStuffUpdate
SkirmishAIOnly = Yes
StuffToPickUp = NONE +CRATE
ScanRange = 200
ScanIntervalSeconds = 0.5
End
LocomotorSet
Locomotor = NormalMeleeHordeLocomotor
Condition = SET_NORMAL
Speed = NORMAL_FOOT_MED_HORDE_SPEED ;NORMAL_GOOD_INFANTRY_HORDE_SPEED
End
Behavior = ProductionUpdate ProductionUpdateModuleTag
GiveNoXP = Yes
End
Behavior = LevelUpUpgrade ModuleTag_BasicTraining
TriggeredBy = Upgrade_RohanModBasicTraining
LevelsToGain = 1
LevelCap = 2
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality
TriggeredBy = Upgrade_RohanModForgedBlades
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality2
TriggeredBy = Upgrade_RohanModHeavyArmor
End
/////////////////////
// AISpecialPowers
/////////////////////
Behavior = AISpecialPowerUpdate GondorTowerShieldGuardHordeCaptureBuildingAI
CommandButtonName = Command_CaptureBuilding
SpecialPowerAIType = AI_SPECIAL_POWER_CAPTURE_BUILDING
End
Geometry = BOX
GeometryMajorRadius = 30.0
GeometryMinorRadius = 45.0
GeometryHeight = 20.0
GeometryIsSmall = No
// *** AUTO RESOLVE DATA ***
AutoResolveUnitType = AutoResolveUnit_Soldier
AutoResolveCombatChain = AutoResolve_SoldierCombatChain
AutoResolveBody = AutoResolve_GondorFighterHordeBody
AutoResolveArmor
RequiredUpgrades = Upgrade_RohanModHeavyArmor
Armor = AutoResolve_GondorSoldierHeavyArmor
End
AutoResolveArmor
ExcludedUpgrades = Upgrade_RohanModHeavyArmor
Armor = AutoResolve_GondorSoldierArmor
End
AutoResolveWeapon
RequiredUpgrades = Upgrade_RohanModForgedBlades
Weapon = AutoResolve_GondorSoldierUpgradedWeapon
End
AutoResolveWeapon
ExcludedUpgrades = Upgrade_RohanModForgedBlades
Weapon = AutoResolve_GondorSoldierWeapon
End
WorldMapArmoryUpgradesAllowed = Upgrade_RohanModBasicTraining Upgrade_RohanModForgedBlades Upgrade_RohanModHeavyArmor
End
Object RohanSpeerwerferHordeForAI
// This is required for garrisoned objects - please put in all objects.
SelectPortrait = UPRohanSpearmanPortrait
ButtonImage = BGBarracks_RohanSpearmenIcon
Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER SELECTED EMOTION_TERROR EMOTION_LOOK_TO_SKY
DefaultModelConditionState
Model = None //InvisHrdeTmp5x2
End
ModelConditionState = HORDE_EMPTY
Model = None
End
ModelConditionState = WORLD_BUILDER
Model = HordeMarkGUTow
End
End
Side = Men
EditorSorting = UNIT
EmotionRange = 240
DisplayName = OBJECT:RohanSpeerwerferHorde
DisplayNameStrategic = CONTROLBAR:LW_Unit_RohanSpeerwerferHorde
DescriptionStrategic = CONTROLBAR:LW_ToolTip_RohanSpeerwerferHorde
WeaponSet
Conditions = None
Weapon = PRIMARY GoodArcherMissileHordeRangefinder
Weapon = TERTIARY GoodArcherMissileHordeRangefinderBombard
AutoChooseSources = TERTIARY FROM_PLAYER FROM_SCRIPT ; Not AI.
End
// *** AUDIO Parameters ***//
// Note: Don't put voice parameters here -- they will be ignored. Voice play requests
// are always passed through to members
BuildCost = 200 ;ROHAN_WДCHTERMEDUSELDS_BUILDCOST
BuildTime = 20
VisionRange = 300 ;GONDOR_ARCHER_HORDE_VISION_RANGE
ShroudClearingRange = 350 ;GONDOR_ARCHER_HORDE_SHROUD_RANGE
VisionSide = 50%
VisionRear = 25%
MaxVisionBonusPercent = 300%
VisionBonusTestRadius = 200
VisionBonusPercentPerFoot = 1.0%
CommandPoints = 30
CommandSet = RohanFighterHordeCommandSet
FormationWidth = 2 // Width it occupies in formations. Current choices are 1 or 2.
FormationDepth = 1 // Depth it occupies in formations. Current choices are 1 or 2.
CrushableLevel = 0 //What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CrusherLevel = 0
TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE
KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY ARCHER HORDE ARMY_SUMMARY MELEE_HORDE LARGE_RECTANGLE_PATHFIND
#include "..\..\..\includes\StandardHordeEvaEvents.inc"
Body = ImmortalBody ModuleTag_ImmortalBody
MaxHealth = 1
End
ThreatLevel = GONDOR_TOWERSHIELDGUARD_HORDE_THREAT
ThreatBreakdown GondorTowerShieldGuardHorde_DetailedThreat
AIKindOf = ARCHER
End
#include "..\..\..\includes\CaptureBuilding.inc"
Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = ArcherHorde
End
Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
MaxCowerTime = 5000
MinCowerTime = 3000
CanAttackWhileContained = Yes // Can fire out of garrisoned building
AILuaEventsList = InfantryFunctions
AttackPriority = AttackPriority_Archer
End
Behavior = HordeContain ModuleTag_HordeContain
FrontAngle = 180
FlankedDelay = 4000
ObjectStatusOfContained =
InitialPayload = RohanSpeerwerfer 10
Slots = 10
PassengerFilter = NONE +INFANTRY
ShowPips = No
ThisFormationIsTheMainFormation = Yes //Used to determine which armorset to use (and anything else we want!)
RandomOffset=X:0 Y:0
MeleeBehavior = Amoeba
FacingBonus = 30.0
AngleLimitCos = -0.17
InnerRange = 30
OuterRange = 80
OuterRangeBuildings = 140
End
RankInfo = RankNumber:1 UnitType:RohanSpeerwerfer Position:X:50 Y:0 Position:X:50 Y:20 Position:X:50 Y:-20 Position:X:50 Y:40 Position:X:50 Y:-40
RankInfo = RankNumber:2 UnitType:RohanSpeerwerfer Position:X:30 Y:0 Leader 1 0 Position:X:30 Y:20 Leader 1 1 Position:X:30 Y:-20 Leader 1 2 Position:X:30 Y:40 Leader 1 3 Position:X:30 Y:-40 Leader 1 4
RanksToReleaseWhenAttacking = 1 2
MeleeAttackLeashDistance = 1 //How far the hordes can move from the center of the horde when melee attacking.
BackUpMinDelayTime = 1 //The minimum amount of time to delay before backing up
BackUpMaxDelayTime = 3000 //The maximum amount of time to delay before backing up
BackUpMinDistance = 1 //The minimum number of cells to backup
BackUpMaxDistance = 3 //The maximum number of cells to backup
BackupPercentage = 80% //The amount of chance that a unit will back up.
End
Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
GravityMult = 1.0
End
Behavior = EmotionTrackerUpdate Module_EmotionTracker
TauntAndPointDistance = INFANTRY_TAUNT_POINT_RADIUS // max distance to taunted/pointed objet
TauntAndPointUpdateDelay = 1000 // how often scan (milliseconds)
TauntAndPointExcluded = NONE
AfraidOf = EMOTION_AFRAIDOF_OBJECTFILTER
AlwaysAfraidOf = EMOTION_ALWAYS_AFRAIDOF_OBJECTFILTER
PointAt = EMOTION_POINTAT_OBJECTFILTER
HeroScanDistance = 150
FearScanDistance = INFANTRY_FEAR_SCAN_RADIUS
AddEmotion = Terror_Base
AddEmotion = Doom_Base
// AddEmotion = BraceForBeingCrushed_Base // Pikemen don't fear getting crushed
AddEmotion = UncontrollableFear_Base
AddEmotion = FearIdle_Base
AddEmotion = FearBusy_Base
AddEmotion = Point_Base
AddEmotion = OVERRIDE Taunt_Base
// AttributeModifier = GondorFighterTaunt
End
AddEmotion = CheerIdle_Base
AddEmotion = CheerBusy_Base
AddEmotion = HeroCheerIdle_Base
AddEmotion = HeroCheerBusy_Base
AddEmotion = Alert_Base
End
Behavior = PickupStuffUpdate ModuleTag_PickupStuffUpdate
SkirmishAIOnly = Yes
StuffToPickUp = NONE +CRATE
ScanRange = 200
ScanIntervalSeconds = 0.5
End
LocomotorSet
Locomotor = NormalMeleeHordeLocomotor
Condition = SET_NORMAL
Speed = NORMAL_FOOT_MED_HORDE_SPEED ;NORMAL_GOOD_INFANTRY_HORDE_SPEED
End
Behavior = ProductionUpdate ProductionUpdateModuleTag
GiveNoXP = Yes
End
Behavior = LevelUpUpgrade ModuleTag_BasicTraining
TriggeredBy = Upgrade_RohanModBasicTraining
LevelsToGain = 1
LevelCap = 2
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality
TriggeredBy = Upgrade_RohanModForgedBlades
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality2
TriggeredBy = Upgrade_RohanModHeavyArmor
End
/////////////////////
// AISpecialPowers
/////////////////////
Behavior = AISpecialPowerUpdate GondorTowerShieldGuardHordeCaptureBuildingAI
CommandButtonName = Command_CaptureBuilding
SpecialPowerAIType = AI_SPECIAL_POWER_CAPTURE_BUILDING
End
Geometry = BOX
GeometryMajorRadius = 30.0
GeometryMinorRadius = 45.0
GeometryHeight = 20.0
GeometryIsSmall = No
// *** AUTO RESOLVE DATA ***
AutoResolveUnitType = AutoResolveUnit_Soldier
AutoResolveCombatChain = AutoResolve_SoldierCombatChain
AutoResolveBody = AutoResolve_GondorFighterHordeBody
AutoResolveArmor
RequiredUpgrades = Upgrade_RohanModHeavyArmor
Armor = AutoResolve_GondorSoldierHeavyArmor
End
AutoResolveArmor
ExcludedUpgrades = Upgrade_RohanModHeavyArmor
Armor = AutoResolve_GondorSoldierArmor
End
AutoResolveWeapon
RequiredUpgrades = Upgrade_RohanModForgedBlades
Weapon = AutoResolve_GondorSoldierUpgradedWeapon
End
AutoResolveWeapon
ExcludedUpgrades = Upgrade_RohanModForgedBlades
Weapon = AutoResolve_GondorSoldierWeapon
End
WorldMapArmoryUpgradesAllowed = Upgrade_RohanModBasicTraining Upgrade_RohanModForgedBlades Upgrade_RohanModHeavyArmor
End
Object RohanSpeerwerferHorde
// This is required for garrisoned objects - please put in all objects.
SelectPortrait = UPRohanSpearmanPortrait
ButtonImage = BGBarracks_RohanSpearmenIcon
Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER SELECTED EMOTION_TERROR EMOTION_LOOK_TO_SKY
DefaultModelConditionState
Model = None //InvisHrdeTmp5x2
End
ModelConditionState = HORDE_EMPTY
Model = None
End
ModelConditionState = WORLD_BUILDER
Model = HordeMarkGUTow
End
End
Side = Men
EditorSorting = UNIT
EmotionRange = 240
DisplayName = OBJECT:RohanSpeerwerferHorde
DisplayNameStrategic = CONTROLBAR:LW_Unit_RohanSpeerwerferHorde
DescriptionStrategic = CONTROLBAR:LW_ToolTip_RohanSpeerwerferHorde
WeaponSet
Conditions = None
Weapon = PRIMARY GoodArcherMissileHordeRangefinder
Weapon = TERTIARY GoodArcherMissileHordeRangefinderBombard
AutoChooseSources = TERTIARY FROM_PLAYER FROM_SCRIPT ; Not AI.
End
// *** AUDIO Parameters ***//
// Note: Don't put voice parameters here -- they will be ignored. Voice play requests
// are always passed through to members
BuildCost = 350 ;ROHAN_WДCHTERMEDUSELDS_BUILDCOST
BuildTime = 30
VisionRange = 300 ;GONDOR_ARCHER_HORDE_VISION_RANGE
ShroudClearingRange = 350 ;GONDOR_ARCHER_HORDE_SHROUD_RANGE
VisionSide = 50%
VisionRear = 25%
MaxVisionBonusPercent = 300%
VisionBonusTestRadius = 200
VisionBonusPercentPerFoot = 1.0%
CommandPoints = 30
CommandSet = RohanFighterHordeCommandSet
FormationWidth = 2 // Width it occupies in formations. Current choices are 1 or 2.
FormationDepth = 1 // Depth it occupies in formations. Current choices are 1 or 2.
CrushableLevel = 0 //What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CrusherLevel = 0
TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE
KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY ARCHER HORDE ARMY_SUMMARY MELEE_HORDE LARGE_RECTANGLE_PATHFIND
#include "..\..\..\includes\StandardHordeEvaEvents.inc"
Body = ImmortalBody ModuleTag_ImmortalBody
MaxHealth = 1
End
ThreatLevel = GONDOR_TOWERSHIELDGUARD_HORDE_THREAT
ThreatBreakdown GondorTowerShieldGuardHorde_DetailedThreat
AIKindOf = ARCHER
End
#include "..\..\..\includes\CaptureBuilding.inc"
Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = ArcherHorde
End
Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
MaxCowerTime = 5000
MinCowerTime = 3000
CanAttackWhileContained = Yes // Can fire out of garrisoned building
AILuaEventsList = InfantryFunctions
AttackPriority = AttackPriority_Archer
End
Behavior = HordeContain ModuleTag_HordeContain
FrontAngle = 180
FlankedDelay = 4000
ObjectStatusOfContained =
InitialPayload = RohanSpeerwerfer 10
Slots = 10
PassengerFilter = NONE +INFANTRY
ShowPips = No
ThisFormationIsTheMainFormation = Yes //Used to determine which armorset to use (and anything else we want!)
RandomOffset=X:0 Y:0
MeleeBehavior = Amoeba
FacingBonus = 30.0
AngleLimitCos = -0.17
InnerRange = 30
OuterRange = 80
OuterRangeBuildings = 140
End
BannerCarriersAllowed = RohanHeroldBanner ; types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:RohanSpeerwerfer Pos:X:70.0 Y:0.0 ; (DEFAULT) position of banner carrier for fighter horde
BannerCarrierMinLevel = 0
BannerCarrierDestroyHordeOnDeath = No
BannerCarrierHordeDeathType = +NORMAL ;NORMAL, NONE, CRUSHED, BURNED, EXPLODED, POISONED, TOPPLED, FLOODED, SUICIDED, LASERED, DETONATED, SPLATTED, POISONED_BETA, EXTRA_2, EXTRA_3, EXTRA_4, EXTRA_5, EXTRA_6, EXTRA_7, EXTRA_8, KNOCKBACK, SUPERNATURAL, FADED, SLAUGHTERED
RankInfo = RankNumber:1 UnitType:RohanSpeerwerfer Position:X:50 Y:0 Position:X:50 Y:20 Position:X:50 Y:-20 Position:X:50 Y:40 Position:X:50 Y:-40
RankInfo = RankNumber:2 UnitType:RohanSpeerwerfer Position:X:30 Y:0 Leader 1 0 Position:X:30 Y:20 Leader 1 1 Position:X:30 Y:-20 Leader 1 2 Position:X:30 Y:40 Leader 1 3 Position:X:30 Y:-40 Leader 1 4
RanksToReleaseWhenAttacking = 1 2
MeleeAttackLeashDistance = 1 //How far the hordes can move from the center of the horde when melee attacking.
BackUpMinDelayTime = 1 //The minimum amount of time to delay before backing up
BackUpMaxDelayTime = 3000 //The maximum amount of time to delay before backing up
BackUpMinDistance = 1 //The minimum number of cells to backup
BackUpMaxDistance = 3 //The maximum number of cells to backup
BackupPercentage = 80% //The amount of chance that a unit will back up.
End
Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
GravityMult = 1.0
End
Behavior = EmotionTrackerUpdate Module_EmotionTracker
TauntAndPointDistance = INFANTRY_TAUNT_POINT_RADIUS // max distance to taunted/pointed objet
TauntAndPointUpdateDelay = 1000 // how often scan (milliseconds)
TauntAndPointExcluded = NONE
AfraidOf = EMOTION_AFRAIDOF_OBJECTFILTER
AlwaysAfraidOf = EMOTION_ALWAYS_AFRAIDOF_OBJECTFILTER
PointAt = EMOTION_POINTAT_OBJECTFILTER
HeroScanDistance = 150
FearScanDistance = INFANTRY_FEAR_SCAN_RADIUS
AddEmotion = Terror_Base
AddEmotion = Doom_Base
// AddEmotion = BraceForBeingCrushed_Base // Pikemen don't fear getting crushed
AddEmotion = UncontrollableFear_Base
AddEmotion = FearIdle_Base
AddEmotion = FearBusy_Base
AddEmotion = Point_Base
AddEmotion = OVERRIDE Taunt_Base
// AttributeModifier = GondorFighterTaunt
End
AddEmotion = CheerIdle_Base
AddEmotion = CheerBusy_Base
AddEmotion = HeroCheerIdle_Base
AddEmotion = HeroCheerBusy_Base
AddEmotion = Alert_Base
End
Behavior = PickupStuffUpdate ModuleTag_PickupStuffUpdate
SkirmishAIOnly = Yes
StuffToPickUp = NONE +CRATE
ScanRange = 200
ScanIntervalSeconds = 0.5
End
LocomotorSet
Locomotor = NormalMeleeHordeLocomotor
Condition = SET_NORMAL
Speed = NORMAL_FOOT_MED_HORDE_SPEED ;NORMAL_GOOD_INFANTRY_HORDE_SPEED
End
Behavior = ProductionUpdate ProductionUpdateModuleTag
GiveNoXP = Yes
End
Behavior = LevelUpUpgrade ModuleTag_BasicTraining
TriggeredBy = Upgrade_RohanModBasicTraining
LevelsToGain = 1
LevelCap = 2
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality
TriggeredBy = Upgrade_RohanModForgedBlades
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality2
TriggeredBy = Upgrade_RohanModHeavyArmor
End
/////////////////////
// AISpecialPowers
/////////////////////
Behavior = AISpecialPowerUpdate GondorTowerShieldGuardHordeCaptureBuildingAI
CommandButtonName = Command_CaptureBuilding
SpecialPowerAIType = AI_SPECIAL_POWER_CAPTURE_BUILDING
End
Geometry = BOX
GeometryMajorRadius = 30.0
GeometryMinorRadius = 45.0
GeometryHeight = 20.0
GeometryIsSmall = No
// *** AUTO RESOLVE DATA ***
AutoResolveUnitType = AutoResolveUnit_Soldier
AutoResolveCombatChain = AutoResolve_SoldierCombatChain
AutoResolveBody = AutoResolve_GondorFighterHordeBody
AutoResolveArmor
RequiredUpgrades = Upgrade_RohanModHeavyArmor
Armor = AutoResolve_GondorSoldierHeavyArmor
End
AutoResolveArmor
ExcludedUpgrades = Upgrade_RohanModHeavyArmor
Armor = AutoResolve_GondorSoldierArmor
End
AutoResolveWeapon
RequiredUpgrades = Upgrade_RohanModForgedBlades
Weapon = AutoResolve_GondorSoldierUpgradedWeapon
End
AutoResolveWeapon
ExcludedUpgrades = Upgrade_RohanModForgedBlades
Weapon = AutoResolve_GondorSoldierWeapon
End
WorldMapArmoryUpgradesAllowed = Upgrade_RohanModBasicTraining Upgrade_RohanModForgedBlades Upgrade_RohanModHeavyArmor
End
Object MordorHaradrimLancerModHorde
; This is required for garrisoned objects - please put in all objects.
ButtonImage = BMHaradrimPalace_Haradrim
SelectPortrait = UPHaradrimLancer
Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER SELECTED EMOTION_TERROR EMOTION_LOOK_TO_SKY
DefaultModelConditionState
Model = None ;InvisHrdeTmp
End
ModelConditionState = HORDE_EMPTY
Model = None
End
ModelConditionState = WORLD_BUILDER
Model = HordeMarkMUHar
End
End
Side = Mordor
EditorSorting = UNIT
EmotionRange = 240
DisplayName = OBJECT:HordeMordorHaradrimLancer
DisplayNameStrategic = CONTROLBAR:LW_Unit_MordorHaradrimLancer
DescriptionStrategic = CONTROLBAR:LW_ToolTip_MordorHaradrimLancer
WeaponSet
Conditions = None
Weapon = PRIMARY ShortRangedMissileHordeRangefinder
End
WeaponSet
Conditions = CLOSE_RANGE; Haradrim switch weapon on contain, so we need to too.
Weapon = PRIMARY NormalMeleeHordeRangefinder
End
; *** AUDIO Parameters ***;
; Note: Don't put voice parameters here -- they will be ignored. Voice play requests
; are always passed through to members
BuildCost = MORDOR_HARADRIM_BUILDCOST
BuildTime = MORDOR_HARADRIM_BUILDTIME
VisionRange = MORDOR_HARADRIM_HORDE_VISION_RANGE
CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CrusherLevel = 0 ;What can I crush?: 0 = small animals, 1 = infantry, 2 = trees, 3 = vehicles
CommandPoints = 30
TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE
CommandSet = MordorHaradrimLancerHordeModCommandSet
FormationWidth = 2 ; Width it occupies in formations. Current choices are 1 or 2.
FormationDepth = 1 ; Depth it occupies in formations. Current choices are 1 or 2.
TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE
KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY HORDE ARCHER MELEE_HORDE CAN_USE_SIEGE_TOWER ;UNATTACKABLE
Body = ImmortalBody ModuleTag_ImmortalBody
MaxHealth = 1
End
Behavior = DualWeaponBehavior ModuleTag_13
SwitchWeaponOnCloseRangeDistance = MORDOR_HARADRIM_LANCER_SWITCH_RANGE_HORDE
End
Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = FighterHorde
End
Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
MaxCowerTime = 5000
MinCowerTime = 3000
CanAttackWhileContained = Yes ; Can fire out of garrisoned building
AILuaEventsList = InfantryFunctions
AttackPriority = AttackPriority_Archer
End
Behavior = HordeContain ModuleTag_HordeContain
ObjectStatusOfContained =
InitialPayload = MordorHaradrimLancerMod 10
Slots = 10
PassengerFilter = NONE +INFANTRY
ShowPips = No
ThisFormationIsTheMainFormation = Yes ;Used to determine which armorset to use (and anything else we want!)
RandomOffset=X:3 Y:3
; Banner Carrier info
BannerCarriersAllowed = MordorBannerOrc ; types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:MordorHaradrimLancerMod Pos:X:30.0 Y:0.0 ; (DEFAULT) position of banner carrier for archer horde
; Positions for 10
RankInfo = RankNumber:1 UnitType:MordorHaradrimLancerMod Position:X:0 Y:0 Position:X:0 Y:25 Position:X:0 Y:-25 Position:X:0 Y:50 Position:X:0 Y:-50
RankInfo = RankNumber:1 UnitType:MordorHaradrimLancerMod Position:X:30 Y:0 Position:X:30 Y:25 Position:X:30 Y:-25 Position:X:30 Y:50 Position:X:30 Y:-50
RanksToReleaseWhenAttacking = 1 2
MeleeAttackLeashDistance = 25; How far the hordes can move from the center of the horde when melee attacking.
AlternateFormation = MordorHaradrimLancerModHordeWedge
End
Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
GravityMult = 1.0
End
Behavior = EmotionTrackerUpdate Module_EmotionTracker
TauntAndPointDistance = INFANTRY_TAUNT_POINT_RADIUS; 350 ; max distance to taunted/pointed objet
TauntAndPointUpdateDelay = 1000 ; how often scan (milliseconds)
TauntAndPointExcluded = NONE
AfraidOf = EMOTION_AFRAIDOF_OBJECTFILTER
AlwaysAfraidOf = EMOTION_ALWAYS_AFRAIDOF_OBJECTFILTER
PointAt = EMOTION_POINTAT_OBJECTFILTER
HeroScanDistance = 150
FearScanDistance = INFANTRY_FEAR_SCAN_RADIUS; 250
AddEmotion = Terror_Base
AddEmotion = Doom_Base
AddEmotion = BraceForBeingCrushed_Base
AddEmotion = UncontrollableFear_Base_Evil
AddEmotion = FearIdle_Base
AddEmotion = FearBusy_Base
AddEmotion = Point_Base
AddEmotion = OVERRIDE Taunt_Base
; AttributeModifier = GondorFighterTaunt
End
AddEmotion = CheerIdle_Base
AddEmotion = CheerBusy_Base
AddEmotion = HeroCheerIdle_Base
AddEmotion = HeroCheerBusy_Base
AddEmotion = Alert_Base
End
LocomotorSet
Locomotor = NormalRangedHordeLocomotor
Condition = SET_NORMAL
Speed = NORMAL_EVIL_INFANTRY_HORDE_SPEED
End
Behavior = ProductionUpdate ProductionUpdateModuleTag
GiveNoXP = Yes
End
Behavior = LevelUpUpgrade ModuleTag_BasicTraining
TriggeredBy = Upgrade_MordorBasicTraining
LevelsToGain = 1
LevelCap = 2
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality ; Added for BFME Expansion
TriggeredBy = Upgrade_MordorHeavyArmor
End
Geometry = BOX
GeometryMajorRadius = 8.0
GeometryMinorRadius = 8.0
GeometryHeight = 12.0
GeometryIsSmall = No
// *** AUTO RESOLVE DATA ***
AutoResolveUnitType = AutoResolveUnit_Archer
AutoResolveCombatChain = AutoResolve_ArcherCombatChain
AutoResolveBody = AutoResolve_MordorHaradrimArcherHordeBody
AutoResolveArmor
RequiredUpgrades = Upgrade_MordorHeavyArmor
Armor = AutoResolve_MordorHaradrimArcherHeavyArmor
End
AutoResolveArmor
ExcludedUpgrades = Upgrade_MordorHeavyArmor
Armor = AutoResolve_MordorHaradrimArcherArmor
End
AutoResolveWeapon
Weapon = AutoResolve_MordorHaradrimArcherUpgradedWeapon
End
WorldMapArmoryUpgradesAllowed = Upgrade_MordorBasicTraining Upgrade_MordorHeavyArmor
End
;---------------------------------------------------------------------------------
ChildObject MordorHaradrimLancerModHordeWedge MordorHaradrimLancerModHorde
; Note - for alternate formations, all info outside of the Contain Behavior module is ignored.
; Any modifications need to be done via the Attribute Modifiers in the contain module.
Behavior = HordeContain ModuleTag_HordeContain
ObjectStatusOfContained =
InitialPayload = MordorHaradrimLancerMod 10
Slots = 10
PassengerFilter = NONE +INFANTRY
ShowPips = No
ThisFormationIsTheMainFormation = No ;Used to determine which armorset to use (and anything else we want!)
; Banner Carrier info
BannerCarriersAllowed = MordorBannerOrc ; types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:MordorHaradrimLancerMod Pos:X:0.0 Y:0.0 ; (DEFAULT) position of banner carrier for archer horde
RandomOffset = X:2 Y:2
RankInfo = RankNumber:1 UnitType:MordorHaradrimLancerMod Position:X:-20 Y:-60 Position:X:-10 Y:-45 Position:X:0 Y:-30 Position:X:10 Y:-15 Position:X:20 Y:0 Position:X:20 Y:-20 Position:X:10 Y:15 Position:X:0 Y:30 Position:X:-10 Y:45 Position:X:-20 Y:60
RanksToReleaseWhenAttacking = 1 2
AlternateFormation = MordorHaradrimLancerModHorde
AttributeModifiers = MordorEasterlingHordePorcupine
End
End
Что вы думаете об этом?[background=rgb(18, 17, 15)]Убрать Халдира из таверны и добавить туда Радагаста(из крепости. Он герой кольца)[/background]
Норм.Убрать Халдира из таверны и добавить туда Радагаста(из крепости. Он герой кольца).
Попробуй заменить аналогичный кусок кода этим:Копейщики Рохана
Behavior = HordeContain ModuleTag_HordeContain
ObjectStatusOfContained =
InitialPayload = RohanSpeerwerfer 10
Slots = 10
PassengerFilter = NONE +INFANTRY
ShowPips = No
ThisFormationIsTheMainFormation = Yes //Used to determine which armorset to use (and anything else we want!)
RandomOffset = X:2 Y:2
MeleeBehavior = Amoeba
End
// Banner Carrier info
BannerCarriersAllowed = MordorBannerOrc // types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:MordorHaradrimArcher Pos:X:40.0 Y:0.0 // (DEFAULT) position of banner carrier for archer horde
RankInfo = RankNumber:1 UnitType:MordorHaradrimArcher Position:X:0 Y:0 Position:X:0 Y:25 Position:X:0 Y:-25 Position:X:0 Y:50 Position:X:0 Y:-50
RankInfo = RankNumber:2 UnitType:MordorHaradrimArcher Position:X:20 Y:0 Position:X:15 Y:25 Position:X:20 Y:-25 Position:X:20 Y:50 Position:X:20 Y:-50
BannerCarriersAllowed = RohanHeroldBanner ; types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:RohanSpeerwerfer Pos:X:40.0 Y:0.0 ; (DEFAULT) position of banner carrier for fighter horde
RankInfo = RankNumber:1 UnitType:RohanSpeerwerfer Position:X:0 Y:0 Position:X:0 Y:25 Position:X:0 Y:-25 Position:X:0 Y:50 Position:X:0 Y:-50
RankInfo = RankNumber:2 UnitType:RohanSpeerwerfer Position:X:20 Y:0 Position:X:15 Y:25 Position:X:20 Y:-25 Position:X:20 Y:50 Position:X:20 Y:-50
RanksToReleaseWhenAttacking = 1 2
MeleeAttackLeashDistance = 1 //How far the hordes can move from the center of the horde when melee attacking.
BackUpMinDelayTime = 1 //The minimum amount of time to delay before backing up
BackUpMaxDelayTime = 3000 //The maximum amount of time to delay before backing up
BackUpMinDistance = 1 //The minimum number of cells to backup
BackUpMaxDistance = 3 //The maximum number of cells to backup
BackupPercentage = 80% //The amount of chance that a unit will back up.
End
Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
GravityMult = 1.0
End
Автор темы | Похожие темы | Форум | Ответы | Дата |
---|---|---|---|---|
![]() |
Ofermod | Толкиновские Обсуждения | 3 | |
![]() |
Ferm Submod 0.4 | Субмоды | 150 | |
![]() |
Farm Submod 3.0 - Release | Субмоды | 124 |
Похожие темы |
---|
Ofermod |
Ferm Submod 0.4 |
Farm Submod 3.0 - Release |