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_hordes_men_menhordes.ini
< prev
next >
Wrap
Text File
|
2006-01-31
|
83KB
|
2,199 lines
//------------------------------------------------------------------------------
//
// WestHordes.ini
//
//------------------------------------------------------------------------------
Object GondorFighterHorde
// This is required for garrisoned objects - please put in all objects.
ButtonImage = WOR_GondorSoldier
SelectPortrait = UPGondor_Soldier
Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER EMOTION_TERROR EMOTION_LOOK_TO_SKY EMOTION_TAUNTING EMOTION_POINTING SELECTED
DefaultModelConditionState
Model = None //InvisHrdeTmp5x2
End
ModelConditionState = HORDE_EMPTY
Model = None
End
ModelConditionState = WORLD_BUILDER
Model = HordeMarkGUSol
End
End
Side = Men
EditorSorting = UNIT
EmotionRange = 240
DisplayName = OBJECT:HordeGondorSoldier
DisplayNameStrategic = CONTROLBAR:LW_Unit_GondorFighterHorde
DescriptionStrategic = CONTROLBAR:LW_ToolTip_GondorFighterHorde
WeaponSet
Conditions = None
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
#include "..\..\..\includes\StandardHordeEvaEvents.inc"
UnitSpecificSounds
VoiceDesperateAttack = GondorSoldierVoiceDesperateCharge
End
BuildCost = GONDOR_SOLDIER_BUILDCOST
BuildTime = GONDOR_SOLDIER_BUILDTIME
ShroudClearingRange = GONDOR_SOLDIER_HORDE_SHROUD_RANGE
VisionRange = GONDOR_SOLDIER_HORDE_VISION_RANGE
VisionSide = 50%
VisionRear = 25%
MaxVisionBonusPercent = 300%
VisionBonusTestRadius = 200
VisionBonusPercentPerFoot = 1.0%
CommandPoints = 60
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 HORDE MELEE_HORDE NOTIFY_OF_PREATTACK ARMY_SUMMARY LARGE_RECTANGLE_PATHFIND //UNATTACKABLE
ThreatLevel = GONDOR_FIGHTER_HORDE_THREAT
ThreatBreakdown GondorFighterHorde_DetailedThreat
AIKindOf = INFANTRY
End
Body = ImmortalBody ModuleTag_ImmortalBody
MaxHealth = 1
End
#include "..\..\..\includes\CaptureBuilding.inc"
Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = FighterHorde
End
Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
MaxCowerTime = 5000
MinCowerTime = 3000
AILuaEventsList = InfantryFunctions
AttackPriority = AttackPriority_Infantry
End
Behavior = HordeContain ModuleTag_HordeContain
FrontAngle = 270
FlankedDelay = 2000
ObjectStatusOfContained =
InitialPayload = GondorFighter GOOD_MEN_GIANT_HORDE_SIZE
Slots = 15
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 = GondorInfantryBanner // types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:GondorFighter Pos:X:70.0 Y:0.0 // (DEFAULT) position of banner carrier
RankInfo = RankNumber:1 UnitType:GondorFighter 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:GondorFighter 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
RankInfo = RankNumber:3 UnitType:GondorFighter Position:X:10 Y:0 Leader 2 0 Position:X:10 Y:20 Leader 2 1 Position:X:10 Y:-20 Leader 2 2 Position:X:10 Y:40 Leader 2 3 Position:X:10 Y:-40 Leader 2 4
RanksToReleaseWhenAttacking = 1
AlternateFormation = GondorFighterHordeBlock
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 = CommandButtonHuntUpdate ModuleTag_CommandButtonHuntUpdate
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 //OVERRIDE
//StartFXList = FX_GondorSoldierDoom //these have been hooked up in the FXList.INI
//End
AddEmotion = BraceForBeingCrushed_Base
AddEmotion = UncontrollableFear_Base //OVERRIDE
//StartFXList = FX_GondorSoldierFear
//End
AddEmotion = FearIdle_Base //OVERRIDE
//StartFXList = FX_GondorSoldierFear
//End
AddEmotion = FearBusy_Base //OVERRIDE
//StartFXList = FX_GondorSoldierFear
//End
AddEmotion = Point_Base //OVERRIDE
//Duration = 13980
//StartFXList = FX_GondorSoldierPoint
//End
AddEmotion = Taunt_Base //OVERRIDE
//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_GOOD_FAST_HORDE_SPEED
End
LocomotorSet
Locomotor = ScaredMeleeHordeLocomotor
Condition = SET_SCARED
Speed = NORMAL_GOOD_FAST_HORDE_SPEED
End
Behavior = ProductionUpdate ProductionUpdateModuleTag
GiveNoXP = Yes
End
Behavior = LevelUpUpgrade ModuleTag_BasicTraining
TriggeredBy = Upgrade_GondorBasicTraining
LevelsToGain = 1
LevelCap = 2
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality
TriggeredBy = Upgrade_GondorForgedBlades
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality2
TriggeredBy = Upgrade_GondorHeavyArmor
End
/////////////////////
// AISpecialPowers
/////////////////////
Behavior = AISpecialPowerUpdate GondorFighterHordeCaptureBuildingAI
CommandButtonName = Command_CaptureBuilding
SpecialPowerAIType = AI_SPECIAL_POWER_CAPTURE_BUILDING
End
Behavior = AISpecialPowerUpdate GondorFighterHordeStanceBattle
CommandButtonName = Command_SetStanceBattle
SpecialPowerAIType = AI_SPECIAL_POWER_STANCEBATTLE
End
Behavior = AISpecialPowerUpdate GondorFighterHordeStanceAggressive
CommandButtonName = Command_SetStanceAggressive
SpecialPowerAIType = AI_SPECIAL_POWER_STANCEAGGRESSIVE
End
Behavior = AISpecialPowerUpdate GondorFighterHordeHoldGround
CommandButtonName = Command_SetStanceHoldGround
SpecialPowerAIType = AI_SPECIAL_POWER_STANCEHOLDGROUND
End
CommandSet = GondorFighterHordeCommandSet
Geometry = BOX
GeometryMajorRadius = 30.0
GeometryMinorRadius = 45.0
GeometryHeight = 20.0
GeometryIsSmall = No
//-------------------------------------------------------------------------------------------------
// World Map specific data
//-------------------------------------------------------------------------------------------------
// *** AUTO RESOLVE DATA ***
AutoResolveUnitType = AutoResolveUnit_Soldier
AutoResolveCombatChain = AutoResolve_SoldierCombatChain
AutoResolveBody = AutoResolve_GondorFighterHordeBody
AutoResolveArmor
RequiredUpgrades = Upgrade_GondorHeavyArmor
Armor = AutoResolve_GondorSoldierHeavyArmor
End
AutoResolveArmor
ExcludedUpgrades = Upgrade_GondorHeavyArmor
Armor = AutoResolve_GondorSoldierArmor
End
AutoResolveWeapon
RequiredUpgrades = Upgrade_GondorForgedBlades
Weapon = AutoResolve_GondorSoldierUpgradedWeapon
End
AutoResolveWeapon
ExcludedUpgrades = Upgrade_GondorForgedBlades
Weapon = AutoResolve_GondorSoldierWeapon
End
WorldMapArmoryUpgradesAllowed = Upgrade_GondorBasicTraining Upgrade_GondorForgedBlades Upgrade_GondorHeavyArmor
End
ChildObject GondorFighterHorde_Summoned GondorFighterHorde
IsTrainable = No
CommandPoints = 0
CommandSet = GondorFighterHordeCommandSet_Summoned
EquivalentTo = GondorFighterHorde
DisplayName = OBJECT:HordeGondorSoldier
Behavior = HordeContain ModuleTag_HordeContain
FrontAngle = 270
FlankedDelay = 2000
ObjectStatusOfContained =
InitialPayload = GondorFighter_Summoned GOOD_MEN_GIANT_HORDE_SIZE
Slots = 15
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
RankInfo = RankNumber:1 UnitType:GondorFighter 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:GondorFighter 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
RankInfo = RankNumber:3 UnitType:GondorFighter Position:X:10 Y:0 Leader 2 0 Position:X:10 Y:20 Leader 2 1 Position:X:10 Y:-20 Leader 2 2 Position:X:10 Y:40 Leader 2 3 Position:X:10 Y:-40 Leader 2 4
RanksToReleaseWhenAttacking = 1
AlternateFormation = GondorFighterHordeBlock
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 = LifetimeUpdate ModuleTag_LifetimeUpdate
// This one displays the timer, but the one in the uint does the work
MinLifetime = CREATE_A_HERO_REINFORCEMENT_LIFETIME
MaxLifetime = CREATE_A_HERO_REINFORCEMENT_LIFETIME
DeathType = FADED
End
End
//------------------------------------------------------------------------------
ChildObject GondorFighterHordeBlock GondorFighterHorde
// 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
FrontAngle = 270
FlankedDelay = 2000
ObjectStatusOfContained =
InitialPayload = GondorFighter GOOD_MEN_GIANT_HORDE_SIZE
Slots = 15
PassengerFilter = NONE +INFANTRY
ShowPips = No
ThisFormationIsTheMainFormation = No //Used to determine which armorset to use (and anything else we want!)
AttributeModifiers = GondorFighterBlock
RandomOffset = X:0 Y:0
MeleeBehavior = Amoeba
End
// Banner Carrier info
BannerCarriersAllowed = GondorInfantryBanner // types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:GondorFighter Pos:X:46.0 Y:0.0 // (DEFAULT) position of banner carrier
RankInfo = RankNumber:1 UnitType:GondorFighter Position:X:34 Y:0 Position:X:34 Y:10 Position:X:34 Y:-10 Position:X:34 Y:20 Position:X:34 Y:-20
RankInfo = RankNumber:2 UnitType:GondorFighter Position:X:22 Y:0 Leader 1 0 Position:X:22 Y:10 Leader 1 1 Position:X:22 Y:-10 Leader 1 2 Position:X:22 Y:20 Leader 1 3 Position:X:22 Y:-20 Leader 1 4
RankInfo = RankNumber:3 UnitType:GondorFighter Position:X:10 Y:0 Leader 2 0 Position:X:10 Y:10 Leader 2 1 Position:X:10 Y:-10 Leader 2 2 Position:X:10 Y:20 Leader 2 3 Position:X:10 Y:-20 Leader 2 4
RanksToReleaseWhenAttacking = 1
AlternateFormation = GondorFighterHorde
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
End
//------------------------------------------------------------------------------
Object GondorTowerShieldGuardHorde
// This is required for garrisoned objects - please put in all objects.
ButtonImage = WOR_GondorTowerGuard
SelectPortrait = UPGondor_TowerGuard
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:HordeGondorTowerGuard
DisplayNameStrategic = CONTROLBAR:LW_Unit_GondorTowerGuardHorde
DescriptionStrategic = CONTROLBAR:LW_ToolTip_GondorTowerGuardHorde
WeaponSet
Conditions = None
Weapon = PRIMARY TowerGuardHordeRangefinder
End
// *** AUDIO Parameters ***//
// Note: Don't put voice parameters here -- they will be ignored. Voice play requests
// are always passed through to members
BuildCost = GONDOR_TOWERGUARD_BUILDCOST
BuildTime = GONDOR_TOWERGUARD_BUILDTIME
VisionRange = GONDOR_TOWERGUARD_HORDE_VISION_RANGE
ShroudClearingRange = GONDOR_TOWERGUARD_HORDE_SHROUD_RANGE
VisionSide = 50%
VisionRear = 25%
MaxVisionBonusPercent = 300%
VisionBonusTestRadius = 200
VisionBonusPercentPerFoot = 1.0%
CommandPoints = 60
CommandSet = GondorTowerShieldGuardCommandSet
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 HORDE ARMY_SUMMARY MELEE_HORDE PIKE LARGE_RECTANGLE_PATHFIND
#include "..\..\..\includes\StandardHordeEvaEvents.inc"
Body = ImmortalBody ModuleTag_ImmortalBody
MaxHealth = 1
End
ThreatLevel = GONDOR_TOWERSHIELDGUARD_HORDE_THREAT
ThreatBreakdown GondorTowerShieldGuardHorde_DetailedThreat
AIKindOf = PIKEMAN
End
#include "..\..\..\includes\CaptureBuilding.inc"
Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = PikeHorde
End
Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
MaxCowerTime = 5000
MinCowerTime = 3000
AILuaEventsList = InfantryFunctions
AttackPriority = AttackPriority_Spearman
End
Behavior = HordeContain ModuleTag_HordeContain
FrontAngle = 180
FlankedDelay = 4000
ObjectStatusOfContained =
InitialPayload = GondorTowerShieldGuard GOOD_MEN_GIANT_HORDE_SIZE
Slots = 15
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
// Banner Carrier info
BannerCarriersAllowed = GondorInfantryBanner // types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:GondorFighter Pos:X:70.0 Y:0.0 // (DEFAULT) position of banner carrier
RankInfo = RankNumber:1 UnitType:GondorTowerShieldGuard 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:GondorTowerShieldGuard 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
RankInfo = RankNumber:3 UnitType:GondorTowerShieldGuard Position:X:10 Y:0 Leader 2 0 Position:X:10 Y:20 Leader 2 1 Position:X:10 Y:-20 Leader 2 2 Position:X:10 Y:40 Leader 2 3 Position:X:10 Y:-40 Leader 2 4
RanksToReleaseWhenAttacking = 1
AlternateFormation = GondorTowerShieldGuardHordePorcupine
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_GOOD_INFANTRY_HORDE_SPEED
End
Behavior = ProductionUpdate ProductionUpdateModuleTag
GiveNoXP = Yes
End
Behavior = LevelUpUpgrade ModuleTag_BasicTraining
TriggeredBy = Upgrade_GondorBasicTraining
LevelsToGain = 1
LevelCap = 2
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality
TriggeredBy = Upgrade_GondorForgedBlades
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality2
TriggeredBy = Upgrade_GondorHeavyArmor
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_Pikemen
AutoResolveCombatChain = AutoResolve_PikemenCombatChain
AutoResolveBody = AutoResolve_GondorTowerGuardHordeBody
AutoResolveArmor
RequiredUpgrades = Upgrade_GondorHeavyArmor
Armor = AutoResolve_GondorTowerGuardHeavyArmor
End
AutoResolveArmor
ExcludedUpgrades = Upgrade_GondorHeavyArmor
Armor = AutoResolve_GondorTowerGuardArmor
End
AutoResolveWeapon
RequiredUpgrades = Upgrade_GondorForgedBlades
Weapon = AutoResolve_GondorTowerGuardUpgradedWeapon
End
AutoResolveWeapon
ExcludedUpgrades = Upgrade_GondorForgedBlades
Weapon = AutoResolve_GondorTowerGuardWeapon
End
WorldMapArmoryUpgradesAllowed = Upgrade_GondorBasicTraining Upgrade_GondorForgedBlades Upgrade_GondorHeavyArmor
End
ChildObject GondorTowerShieldGuardHorde_Summoned GondorTowerShieldGuardHorde
IsTrainable = No
CommandPoints = 0
CommandSet = GondorTowerShieldGuardCommandSet_Summoned
EquivalentTo = GondorTowerShieldGuardHorde
DisplayName = OBJECT:HordeGondorTowerGuard
Behavior = HordeContain ModuleTag_HordeContain
FrontAngle = 180
FlankedDelay = 4000
ObjectStatusOfContained =
InitialPayload = GondorTowerShieldGuard_Summoned GOOD_MEN_GIANT_HORDE_SIZE
Slots = 15
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:GondorTowerShieldGuard 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:GondorTowerShieldGuard 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
RankInfo = RankNumber:3 UnitType:GondorTowerShieldGuard Position:X:10 Y:0 Leader 2 0 Position:X:10 Y:20 Leader 2 1 Position:X:10 Y:-20 Leader 2 2 Position:X:10 Y:40 Leader 2 3 Position:X:10 Y:-40 Leader 2 4
RanksToReleaseWhenAttacking = 1
AlternateFormation = GondorTowerShieldGuardHordePorcupine
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 = LifetimeUpdate ModuleTag_LifetimeUpdate
// This one displays the timer, but the one in the uint does the work
MinLifetime = CREATE_A_HERO_REINFORCEMENT_LIFETIME
MaxLifetime = CREATE_A_HERO_REINFORCEMENT_LIFETIME
DeathType = FADED
End
End
ChildObject GondorTowerShieldGuardHordePorcupine GondorTowerShieldGuardHorde
// 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
FrontAngle = 360 // Can't be flanked
FlankedDelay = 2000
ObjectStatusOfContained =
InitialPayload = GondorTowerShieldGuard GOOD_MEN_HORDE_SIZE
Slots = 15
PassengerFilter = NONE +INFANTRY
ShowPips = No
ThisFormationIsTheMainFormation = No //Used to determine which armorset to use (and anything else we want!)
RandomOffset = X:2 Y:1
RanksToReleaseWhenAttacking = 0
RanksToJustFreeWhenAttacking = 0
AttributeModifiers = GondorTowerShieldGuardHordePorcupine
IsPorcupineFormation = Yes
MinimumHordeSize = 5
AlternateFormation = GondorTowerShieldGuardHorde
NotComboFormation = Yes // this formation is not suitable for combo, so it will switch out of this when combo-ing
// Banner Carrier info
BannerCarriersAllowed = GondorInfantryBanner // types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:GondorTowerShieldGuard Pos:X:0.0 Y:0.0 // (DEFAULT) position of banner carrier
RankInfo = RankNumber:1 UnitType:GondorTowerShieldGuard Position:X:20 Y:0 Position:X:-16.18 Y:11.76 Position:X:6.18 Y:-19.02 Position:X:6.18 Y:19.02 Position:X:-16.18 Y:-11.76 Position:X:36.54 Y:16.27 Position:X:-39.13 Y:8.32 Position:X:26.77 Y:-29.73 Position:X:-4.18 Y:39.78 Position:X:-20 Y:-34.64 Position:X:26.77 Y:29.73 Position:X:-39.13 Y:-8.32 Position:X:36.54 Y:-16.27 Position:X:-20 Y:34.64 Position:X:-4.18 Y:-39.78
End
End
//------------------------------------------------------------------------------
Object GondorArcherHorde
// This is required for garrisoned objects - please put in all objects.
ButtonImage = WOR_GondorArcher
SelectPortrait = UPGondor_Archer
Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
DependencySharedModelFlags = EMOTION_TAUNTING 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 = HordeMarkGUArc
End
End
Side = Men
EditorSorting = UNIT
EmotionRange = 240
DisplayName = OBJECT:HordeGondorArcher
DisplayNameStrategic = CONTROLBAR:LW_Unit_GondorArcherHorde
DescriptionStrategic = CONTROLBAR:LW_ToolTip_GondorArcherHorde
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
#include "..\..\..\includes\StandardHordeEvaEvents.inc"
BuildCost = GONDOR_ARCHER_BUILDCOST
BuildTime = GONDOR_ARCHER_BUILDTIME
VisionRange = GONDOR_ARCHER_HORDE_VISION_RANGE
ShroudClearingRange = GONDOR_ARCHER_HORDE_SHROUD_RANGE
VisionSide = 50%
VisionRear = 25%
MaxVisionBonusPercent = 300%
VisionBonusTestRadius = 200
VisionBonusPercentPerFoot = 1%
CommandPoints = 60
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
UseCrushAttack = No ;Archer hordes cannot crush or Bombard will not work
TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE
KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY HORDE ARCHER ARMY_SUMMARY LARGE_RECTANGLE_PATHFIND// UNATTACKABLE
;KindOf = SELECTABLE CAN_ATTACK INFANTRY HORDE ARCHER ARMY_SUMMARY LARGE_RECTANGLE_PATHFIND// UNATTACKABLE
ThreatLevel = GONDOR_ARCHER_HORDE_THREAT
ThreatBreakdown GondorArcherHorde_DetailedThreat
AIKindOf = ARCHER
End
CommandSet = GondorArcherHordeCommandSet
Body = ImmortalBody ModuleTag_ImmortalBody
MaxHealth = 1
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 = GondorArcher GOOD_MEN_GIANT_HORDE_SIZE
Slots = 15
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 = GondorInfantryBanner // types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:GondorArcher Pos:X:70.0 Y:0.0 // (DEFAULT) position of banner carrier
RankInfo = RankNumber:1 UnitType:GondorArcher 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:GondorArcher 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
RankInfo = RankNumber:3 UnitType:GondorArcher Position:X:10 Y:0 Leader 2 0 Position:X:10 Y:20 Leader 2 1 Position:X:10 Y:-20 Leader 2 2 Position:X:10 Y:40 Leader 2 3 Position:X:10 Y:-40 Leader 2 4
RanksToReleaseWhenAttacking = 1 2 3
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 = ARCHER_FEAR_SCAN_RADIUS
AddEmotion = Terror_Base //OVERRIDE
//StartFXList = FX_GondorArcherTerror
//End
AddEmotion = Doom_Base //OVERRIDE
//StartFXList = FX_GondorArcherDoom
//End
AddEmotion = BraceForBeingCrushed_Base
AddEmotion = UncontrollableFear_Base //OVERRIDE
//StartFXList = FX_GondorArcherFear
//End
AddEmotion = FearIdle_Base //OVERRIDE
//StartFXList = FX_GondorArcherCower
//End
AddEmotion = FearBusy_Base //OVERRIDE
//StartFXList = FX_GondorArcherCower
//End
AddEmotion = Point_Base //OVERRIDE
//Duration = 4000
//StartFXList = FX_GondorArcherPoint
//End
AddEmotion = Taunt_Base //OVERRIDE
//AttributeModifier = GondorFighterTaunt
//End
AddEmotion = CheerIdle_Base
AddEmotion = CheerBusy_Base
AddEmotion = HeroCheerIdle_Base
AddEmotion = HeroCheerBusy_Base
AddEmotion = Alert_Base
End
Behavior = ProductionUpdate ProductionUpdateModuleTag
GiveNoXP = Yes
End
Behavior = LevelUpUpgrade ModuleTag_BasicTraining
TriggeredBy = Upgrade_GondorBasicTraining
LevelsToGain = 1
LevelCap = 2
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality
TriggeredBy = Upgrade_GondorFireArrows
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality2
TriggeredBy = Upgrade_GondorHeavyArmor
End
Behavior = PickupStuffUpdate ModuleTag_PickupStuffUpdate
SkirmishAIOnly = Yes
StuffToPickUp = NONE +CRATE
ScanRange = 200
ScanIntervalSeconds = 0.5
End
LocomotorSet
Locomotor = NormalRangedHordeLocomotor
Condition = SET_NORMAL
Speed = NORMAL_GOOD_INFANTRY_HORDE_SPEED
End
/////////////////////
// AISpecialPowers
/////////////////////
Behavior = AISpecialPowerUpdate GondorArcherHordeCaptureBuildingAI
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_Archer
AutoResolveCombatChain = AutoResolve_ArcherCombatChain
AutoResolveBody = AutoResolve_GondorArcherHordeBody
AutoResolveArmor
RequiredUpgrades = Upgrade_GondorHeavyArmor
Armor = AutoResolve_GondorArcherHeavyArmor
End
AutoResolveArmor
ExcludedUpgrades = Upgrade_GondorHeavyArmor
Armor = AutoResolve_GondorArcherArmor
End
AutoResolveWeapon
RequiredUpgrades = Upgrade_GondorFireArrows
Weapon = AutoResolve_GondorArcherUpgradedWeapon
End
AutoResolveWeapon
ExcludedUpgrades = Upgrade_GondorFireArrows
Weapon = AutoResolve_GondorArcherWeapon
End
WorldMapArmoryUpgradesAllowed = Upgrade_GondorBasicTraining Upgrade_GondorFireArrows Upgrade_GondorHeavyArmor
End
ChildObject GondorArcherHorde_Summoned GondorArcherHorde
IsTrainable = No
CommandPoints = 0
CommandSet = GondorArcherHordeCommandSet_Summoned
EquivalentTo = GondorArcherHorde
DisplayName = OBJECT:HordeGondorArcher
Behavior = HordeContain ModuleTag_HordeContain
FrontAngle = 270
FlankedDelay = 2000
ObjectStatusOfContained =
InitialPayload = GondorArcher_Summoned GOOD_MEN_GIANT_HORDE_SIZE
Slots = 15
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
RankInfo = RankNumber:1 UnitType:GondorArcher 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:GondorArcher 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
RankInfo = RankNumber:3 UnitType:GondorArcher Position:X:10 Y:0 Leader 2 0 Position:X:10 Y:20 Leader 2 1 Position:X:10 Y:-20 Leader 2 2 Position:X:10 Y:40 Leader 2 3 Position:X:10 Y:-40 Leader 2 4
RanksToReleaseWhenAttacking = 1 2 3
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 = LifetimeUpdate ModuleTag_LifetimeUpdate
// This one displays the timer, but the one in the uint does the work
MinLifetime = CREATE_A_HERO_REINFORCEMENT_LIFETIME
MaxLifetime = CREATE_A_HERO_REINFORCEMENT_LIFETIME
DeathType = FADED
End
End
//////////////////////////////////////////////////////////////////////////////////
Object GondorRangerHorde
// This is required for garrisoned objects - please put in all objects.
ButtonImage = WOR_IthilienRangers
SelectPortrait = UPGondor_Ranger
Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER SELECTED EMOTION_TERROR EMOTION_LOOK_TO_SKY EMOTION_TAUNTING
DefaultModelConditionState
Model = None //InvisHrdeTmp5x2
End
ModelConditionState = HORDE_EMPTY
Model = None
End
ModelConditionState = WORLD_BUILDER
Model = HordeMarkGURan
End
End
Side = Men
EditorSorting = UNIT
EmotionRange = 240
DisplayName = OBJECT:HordeGondorRanger
DisplayNameStrategic = CONTROLBAR:LW_Unit_GondorRangerHorde
DescriptionStrategic = CONTROLBAR:LW_ToolTip_GondorRangerHorde
WeaponSet
Conditions = None
Weapon = PRIMARY GondorRangerMissileHordeRangefinder
Weapon = TERTIARY GondorRangerMissileHordeRangefinderBombard
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
#include "..\..\..\includes\StandardHordeEvaEvents.inc"
BuildCost = GONDOR_RANGER_BUILDCOST
BuildTime = GONDOR_RANGER_BUILDTIME
VisionRange = GONDOR_RANGER_HORDE_VISION_RANGE
ShroudClearingRange = GONDOR_RANGER_HORDE_SHROUD_RANGE
VisionSide = 50%
VisionRear = 25%
MaxVisionBonusPercent = 300%
VisionBonusTestRadius = 200
VisionBonusPercentPerFoot = 1.0%
CommandPoints = 60
CrushableLevel = 0 //What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CrusherLevel = 0
UseCrushAttack = No ;Archer hordes cannot crush or Bombard will not work
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 ARMY_SUMMARY LARGE_RECTANGLE_PATHFIND//UNATTACKABLE
Body = ImmortalBody ModuleTag_ImmortalBody
MaxHealth = 1
End
ThreatLevel = GONDOR_RANGER_HORDE_THREAT
ThreatBreakdown GondorRangerHorde_DetailedThreat
AIKindOf = ARCHER
End
#include "..\..\..\includes\CaptureBuilding.inc"
Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = ArcherHorde
End
Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS STEALTHED
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 = GondorRanger GOOD_MEN_HORDE_SIZE
Slots = 10
PassengerFilter = NONE +INFANTRY
ShowPips = No
ThisFormationIsTheMainFormation = Yes //Used to determine which armorset to use (and anything else we want!)
RandomOffset=X:4 Y:4
MeleeBehavior = Amoeba
End
// Banner Carrier info
BannerCarriersAllowed = GondorInfantryBanner // types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:GondorRanger Pos:X:30.0 Y:0.0 // (DEFAULT) position of banner carrier
// Positions for 5
RankInfo = RankNumber:1 UnitType:GondorRanger Position:X:20 Y:0 Position:X:20 Y:25 Position:X:20 Y:-25 Position:X:20 Y:50 Position:X:20 Y:-50
RankInfo = RankNumber:2 UnitType:GondorRanger Position:X:0 Y:0 Leader 1 0 Position:X:0 Y:25 Leader 1 1 Position:X:0 Y:-25 Leader 1 2 Position:X:0 Y:50 Leader 1 3 Position:X:0 Y:-50 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
#include "..\..\..\includes\DefaultInvisibilityUpdate.inc"
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 = ARCHER_FEAR_SCAN_RADIUS
AddEmotion = Terror_Base
AddEmotion = Doom_Base
AddEmotion = BraceForBeingCrushed_Base
AddEmotion = UncontrollableFear_Base
AddEmotion = FearIdle_Base
AddEmotion = FearBusy_Base
AddEmotion = Point_Base
//Rangers are very stoic and do not taunt. -
//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_GOOD_FAST_HORDE_SPEED
End
CommandSet = GondorRangerHordeCommandSet
Behavior = OCLSpecialPower ModuleTag_ArrowVolleyEvil
SpecialPowerTemplate = SpecialAbilityMenLongShot
OCL = OCL_LongShotAbility
CreateLocation = CREATE_AT_LOCATION
UpdateModuleStartsAttack = No
;// Need to set a model condition (unused by the horde anyway) in order to
;// freeze the horde for the duration of the spell
SetModelCondition = ModelConditionState:USER_1
SetModelConditionTime = 5.0
DisableDuringAnimDuration = Yes
End
Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_FireballUpdate
SpecialPowerTemplate = SpecialAbilityMenLongShot
PackTime = 5000 // returning to flap
MustFinishAbility = Yes
SpecialWeapon = MenLongShotWeapon
NeedLivingTargets = No
;PackSound = LongshotRangerCall ;this worked!
;UnpackSound = LongshotRangerCall ;this didn't work
;PrepSoundLoop = LongshotRangerCall ;this worked!
TriggerSound = RangerVoiceLongShot
ApproachRequiresLOS = No
End
Behavior = ProductionUpdate ProductionUpdateModuleTag
GiveNoXP = Yes
End
Behavior = LevelUpUpgrade ModuleTag_BasicTraining
TriggeredBy = Upgrade_GondorBasicTraining
LevelsToGain = 1
LevelCap = 2
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality
TriggeredBy = Upgrade_GondorFireArrows
End
Behavior = PickupStuffUpdate ModuleTag_PickupStuffUpdate
SkirmishAIOnly = Yes
StuffToPickUp = NONE +CRATE
ScanRange = 200
ScanIntervalSeconds = 0.5
End
/////////////////////
// AISpecialPowers
/////////////////////
Behavior = AISpecialPowerUpdate GondorRangerHordeCaptureBuildingAI
CommandButtonName = Command_CaptureBuilding
SpecialPowerAIType = AI_SPECIAL_POWER_CAPTURE_BUILDING
End
Geometry = BOX
GeometryMajorRadius = 20.0
GeometryMinorRadius = 60.0
GeometryHeight = 10.0
GeometryIsSmall = No
// *** AUTO RESOLVE DATA ***
AutoResolveUnitType = AutoResolveUnit_Archer
AutoResolveCombatChain = AutoResolve_ArcherCombatChain
AutoResolveBody = AutoResolve_GondorRangerHordeBody
AutoResolveArmor
Armor = AutoResolve_GondorRangerArmor
End
AutoResolveWeapon
RequiredUpgrades = Upgrade_GondorFireArrows
Weapon = AutoResolve_GondorRangerUpgradedWeapon
End
AutoResolveWeapon
ExcludedUpgrades = Upgrade_GondorFireArrows
Weapon = AutoResolve_GondorRangerWeapon
End
WorldMapArmoryUpgradesAllowed = Upgrade_GondorBasicTraining Upgrade_GondorFireArrows
End
//////////////////////////////////////////////////////////////////////////////////
ChildObject GondorRangerInnHorde GondorRangerHorde
BuildCost = INN_UNIT_BUILDCOST_MEN
Behavior = HordeContain ModuleTag_HordeContain
FrontAngle = 270
FlankedDelay = 2000
ObjectStatusOfContained =
InitialPayload = GondorRangerInn GOOD_MEN_HORDE_SIZE
Slots = 10
PassengerFilter = NONE +INFANTRY
ShowPips = No
ThisFormationIsTheMainFormation = Yes //Used to determine which armorset to use (and anything else we want!)
RandomOffset=X:4 Y:4
MeleeBehavior = Amoeba
End
// Banner Carrier info
BannerCarriersAllowed = GondorInfantryBanner // types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:GondorRangerInn Pos:X:30.0 Y:0.0 // (DEFAULT) position of banner carrier
// Positions for 5
RankInfo = RankNumber:1 UnitType:GondorRangerInn 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:GondorRangerInn 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
End
//////////////////////////////////////////////////////////////////////////////////
ChildObject GondorRangerHorde_Summoned GondorRangerHorde
IsTrainable = No
CommandPoints = 0
CommandSet = GondorRangerHordeCommandSet_Summoned
EquivalentTo = GondorRangerHorde
DisplayName = OBJECT:HordeDunedainRanger
KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY HORDE ARCHER ARMY_SUMMARY LARGE_RECTANGLE_PATHFIND SUMMONED
Behavior = HordeContain ModuleTag_HordeContain
FrontAngle = 270
FlankedDelay = 2000
ObjectStatusOfContained =
InitialPayload = GondorRanger_Summoned GOOD_MEN_HORDE_SIZE
Slots = 10
PassengerFilter = NONE +INFANTRY
ShowPips = No
ThisFormationIsTheMainFormation = Yes //Used to determine which armorset to use (and anything else we want!)
RandomOffset=X:4 Y:4
// Positions for 5
RankInfo = RankNumber:1 UnitType:GondorRanger Position:X:0 Y:0 Position:X:0 Y:20 Position:X:0 Y:-20 Position:X:0 Y:40 Position:X:0 Y:-40
RankInfo = RankNumber:2 UnitType:GondorRanger Position:X:15 Y:0 Position:X:15 Y:20 Position:X:15 Y:-20 Position:X:15 Y:40 Position:X:15 Y:-40
RanksToReleaseWhenAttacking = 1 2
MeleeAttackLeashDistance = 25// How far the hordes can move from the center of the horde when melee attacking.
End
Behavior = LifetimeUpdate ModuleTag_LifetimeUpdate
// This one displays the timer, but the one in the uint does the work
MinLifetime = DUNEDAIN_ALLIES_LIFETIME
MaxLifetime = DUNEDAIN_ALLIES_LIFETIME
DeathType = FADED
End
//Summoned Rangers can detect Stealthed Units
Behavior = StealthDetectorUpdate StealthDetectorUpdateModuleTag
DetectionRange = 100 // range to detect
DetectionRate = 500 // how often to rescan for stealthed things in my sight (msec)
CancelOneRingEffect = Yes // forces uses of one-ring to pop out of it
End
End
//////////////////////////////////////////////////////////////////////////////////
Object GondorKnightHorde
// This is required for garrisoned objects - please put in all objects.
ButtonImage = WOR_GondorKnights
SelectPortrait = UPGondor_Knight
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 //InvisHrdeTmp5x1
End
ModelConditionState = HORDE_EMPTY
Model = None
End
ModelConditionState = WORLD_BUILDER
Model = HordeMarkGUKni
End
End
Side = Men
EditorSorting = UNIT
EmotionRange = 240
DisplayName = OBJECT:HordeGondorKnight
DisplayNameStrategic = CONTROLBAR:LW_Unit_GondorKnightHorde
DescriptionStrategic = CONTROLBAR:LW_ToolTip_GondorKnightHorde
WeaponSet
Conditions = None
Weapon = PRIMARY NormalMeleeHordeRangefinder
End
CommandSet = GondorKnightHordeCommandSet
// *** AUDIO Parameters ***//
// Note: Don't put voice parameters here -- they will be ignored. Voice play requests
// are always passed through to members
#include "..\..\..\includes\StandardHordeEvaEvents.inc"
BuildCost = GONDOR_KNIGHT_BUILDCOST
BuildTime = GONDOR_KNIGHT_BUILDTIME
VisionRange = GONDOR_KNIGHT_HORDE_VISION_RANGE
VisionSide = 35%
VisionRear = 25%
MaxVisionBonusPercent = 300%
VisionBonusTestRadius = 200
VisionBonusPercentPerFoot = 5.0%
ShroudClearingRange = GONDOR_KNIGHT_HORDE_SHROUD_RANGE
CommandPoints = 60
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 = 2 //What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CrusherLevel = 1
MinCrushVelocityPercent = 50% // Has to be moving at at least 25% of full speed.
CrushDecelerationPercent = 50 // Lose 10 percent (100/5 horde members) of max velocity when crushing.
CrushKnockback = 40 // how hard we knock back crushed units.
CrushZFactor = 1.0 // How much we knock upwards.
TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE
KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAVALRY HORDE MELEE_HORDE ARMY_SUMMARY LARGE_RECTANGLE_PATHFIND//UNATTACKABLE
Body = ImmortalBody ModuleTag_ImmortalBody
MaxHealth = 1
End
ThreatLevel = GONDOR_KNIGHT_HORDE_THREAT
ThreatBreakdown GondorKnightHorde_DetailedThreat
AIKindOf = CAVALRY
End
#include "..\..\..\includes\CaptureBuilding.inc"
Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = CavalryHorde
End
Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
MaxCowerTime = 5000
MinCowerTime = 3000
AILuaEventsList = CavalryFunctions
AttackPriority = AttackPriority_Cavalry
End
Behavior = HorseHordeContain ModuleTag_HordeContain
FrontAngle = 270
FlankedDelay = 2000
ObjectStatusOfContained =
InitialPayload = GondorCavalry GOOD_RIDER_LARGE_HORDE_SIZE
Slots = 10
PassengerFilter = NONE +CAVALRY +GondorCavalryBanner
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 = GondorCavalryBanner // types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:GondorCavalry Pos:X:70.0 Y:0.0 // (DEFAULT) position of banner carrier for archer horde
RankInfo = RankNumber:1 UnitType:GondorCavalry Position:X:40 Y:0 Position:X:40 Y:15 Position:X:40 Y:-15 Position:X:40 Y:30 Position:X:40 Y:-30
RankInfo = RankNumber:2 UnitType:GondorCavalry Position:X:10 Y:0 Leader 1 0 Position:X:10 Y:15 Leader 1 1 Position:X:10 Y:-15 Leader 1 2 Position:X:10 Y:30 Leader 1 3 Position:X:10 Y:-30 Leader 1 4
RanksToReleaseWhenAttacking = 1
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 = HordeNotifyTargetsOfImminentProbableCrushingUpdate ModuleTag_NotifyCrushScan
ScanWidth = 70.0 ; A little less than the width of the horde (which is 2 * 40 = 80)
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
AddEmotion = UncontrollableFear_Base
AddEmotion = FearIdle_Base
AddEmotion = FearBusy_Base
AddEmotion = Point_Base
AddEmotion = Taunt_Base
AddEmotion = CheerIdle_Base
AddEmotion = CheerBusy_Base
AddEmotion = HeroCheerIdle_Base
AddEmotion = HeroCheerBusy_Base
AddEmotion = Alert_Base
AddEmotion = CheerForAboutToCrush_Base
End
LocomotorSet
Locomotor = NormalCavalryHordeLocomotor
Condition = SET_NORMAL
Speed = NORMAL_CAVALRY_HORDE_SPEED
End
Behavior = ProductionUpdate ProductionUpdateModuleTag
GiveNoXP = Yes
End
Behavior = LevelUpUpgrade ModuleTag_BasicTraining
TriggeredBy = Upgrade_GondorBasicTraining
LevelsToGain = 1
LevelCap = 2
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality
TriggeredBy = Upgrade_GondorForgedBlades
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality2
TriggeredBy = Upgrade_GondorHeavyArmor
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality3
TriggeredBy = Upgrade_GondorKnightShield
End
Behavior = PickupStuffUpdate ModuleTag_PickupStuffUpdate
SkirmishAIOnly = Yes
StuffToPickUp = NONE +CRATE
ScanRange = 200
ScanIntervalSeconds = 0.5
End
/////////////////////
// AISpecialPowers
/////////////////////
Behavior = AISpecialPowerUpdate GondorKnightHordeCaptureBuildingAI
CommandButtonName = Command_CaptureBuilding
SpecialPowerAIType = AI_SPECIAL_POWER_CAPTURE_BUILDING
End
Geometry = BOX
GeometryMajorRadius = 30.0
GeometryMinorRadius = 40.0
GeometryHeight = 20.0
GeometryIsSmall = No
// *** AUTO RESOLVE DATA ***
AutoResolveUnitType = AutoResolveUnit_Cavalry
AutoResolveCombatChain = AutoResolve_CavalryCombatChain
AutoResolveBody = AutoResolve_GondorKnightHordeBody
AutoResolveArmor
RequiredUpgrades = Upgrade_GondorHeavyArmor
Armor = AutoResolve_GondorKnightHeavyArmor
End
AutoResolveArmor
ExcludedUpgrades = Upgrade_GondorHeavyArmor
Armor = AutoResolve_GondorKnightArmor
End
AutoResolveWeapon
RequiredUpgrades = Upgrade_GondorForgedBlades
Weapon = AutoResolve_GondorKnightUpgradedWeapon
End
AutoResolveWeapon
ExcludedUpgrades = Upgrade_GondorForgedBlades
Weapon = AutoResolve_GondorKnightWeapon
End
WorldMapArmoryUpgradesAllowed = Upgrade_GondorBasicTraining Upgrade_GondorForgedBlades Upgrade_GondorHeavyArmor
End
//////////////////////////////////////////////////////////////////////////////////
ChildObject GondorKnightHorde_Summoned GondorKnightHorde
IsTrainable = No
CommandPoints = 0
CommandSet = GondorKnightHordeCommandSet_Summoned
EquivalentTo = GondorKnightHorde
DisplayName = OBJECT:HordeGondorKnight
Behavior = HorseHordeContain ModuleTag_HordeContain
FrontAngle = 270
FlankedDelay = 2000
ObjectStatusOfContained =
InitialPayload = GondorCavalry_Summoned GOOD_RIDER_LARGE_HORDE_SIZE
Slots = 10
PassengerFilter = NONE +CAVALRY +GondorCavalryBanner
ShowPips = No
ThisFormationIsTheMainFormation = Yes //Used to determine which armorset to use (and anything else we want!)
RandomOffset=X:0 Y:0
MeleeBehavior = Amoeba
End
RankInfo = RankNumber:1 UnitType:GondorCavalry Position:X:40 Y:0 Position:X:40 Y:15 Position:X:40 Y:-15 Position:X:40 Y:30 Position:X:40 Y:-30
RankInfo = RankNumber:2 UnitType:GondorCavalry Position:X:10 Y:0 Leader 1 0 Position:X:10 Y:15 Leader 1 1 Position:X:10 Y:-15 Leader 1 2 Position:X:10 Y:30 Leader 1 3 Position:X:10 Y:-30 Leader 1 4
RanksToReleaseWhenAttacking = 1
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 = LifetimeUpdate ModuleTag_LifetimeUpdate
// This one displays the timer, but the one in the uint does the work
MinLifetime = CREATE_A_HERO_REINFORCEMENT_LIFETIME
MaxLifetime = CREATE_A_HERO_REINFORCEMENT_LIFETIME
DeathType = FADED
End
End
//------------------------------------------------------------------------------
Object RohanRohirrimHorde
// This is required for garrisoned objects - please put in all objects.
ButtonImage = WOR_Rohirrim
SelectPortrait = UPGondor_Rohirrim
Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER SELECTED EMOTION_TERROR EMOTION_CELEBRATING
DefaultModelConditionState
Model = None //InvisHrdeTmp5x1
End
ModelConditionState = HORDE_EMPTY
Model = None
End
ModelConditionState = WORLD_BUILDER
Model = HordeMarkRURoh
End
End
Side = Men
EditorSorting = UNIT
EmotionRange = 240
DisplayName = OBJECT:HordeRohanRohirrim
DisplayNameStrategic = CONTROLBAR:LW_Unit_RohanRohirrimHorde
DescriptionStrategic = CONTROLBAR:LW_ToolTip_RohanRohirrimHorde
WeaponSet
Conditions = None
Weapon = PRIMARY NormalMeleeHordeRangefinder // Spear
End
WeaponSet
Conditions = WEAPONSET_TOGGLE_1
Weapon = PRIMARY NormalMissileHordeRangefinder // Bow
End
// *** AUDIO Parameters ***//
// Note: Don't put voice parameters here -- they will be ignored. Voice play requests
// are always passed through to members
#include "..\..\..\includes\StandardHordeEvaEvents.inc"
BuildCost = ROHAN_ROHIRRIM_BUILDCOST
BuildTime = ROHAN_ROHIRRIM_BUILDTIME
VisionRange = ROHAN_ROHIRRIM_HORDE_VISION_RANGE
ShroudClearingRange = ROHAN_ROHIRRIM_HORDE_SHROUD_RANGE
VisionSide = 50%
VisionRear = 25%
MaxVisionBonusPercent = 300%
VisionBonusTestRadius = 200
VisionBonusPercentPerFoot = 1.0%
CommandPoints = 60
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 = 2 //What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CrusherLevel = 1
MinCrushVelocityPercent = 50% // Has to be moving at at least 25% of full speed.
CrushDecelerationPercent = 30% // Lose 10 percent (100/5 horde members) of max velocity when crushing.
CrushKnockback = 40 // how hard we knock back crushed units.
CrushZFactor = 1.0 // How much we knock upwards.
TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE
KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAVALRY HORDE MELEE_HORDE ARMY_SUMMARY LARGE_RECTANGLE_PATHFIND//UNATTACKABLE
CommandSet = RohirrimHordeCommandSet
Body = ImmortalBody ModuleTag_ImmortalBody
MaxHealth = 1
End
ThreatLevel = ROHAN_ROHIRRIM_HORDE_THREAT
ThreatBreakdown RohanRohirrimHorde_DetailedThreat
AIKindOf = CAVALRY
End
Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = CavalryHorde
End
Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
MaxCowerTime = 5000
MinCowerTime = 3000
AILuaEventsList = CavalryFunctions
AttackPriority = AttackPriority_Cavalry
End
Behavior = HorseHordeContain ModuleTag_HordeContain
FrontAngle = 270
FlankedDelay = 2000
ObjectStatusOfContained =
InitialPayload = RohanRohirrim GOOD_RIDER_LARGE_HORDE_SIZE
Slots = 10
PassengerFilter = NONE +CAVALRY +RohanBanner
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:RohanRohirrim Pos:X:70.0 Y:0.0 // (DEFAULT) position of banner carrier for archer horde
RankInfo = RankNumber:1 UnitType:RohanRohirrim Position:X:40 Y:0 Position:X:40 Y:15 Position:X:40 Y:-15 Position:X:40 Y:30 Position:X:40 Y:-30
RankInfo = RankNumber:2 UnitType:RohanRohirrim Position:X:10 Y:0 Leader 1 0 Position:X:10 Y:15 Leader 1 1 Position:X:10 Y:-15 Leader 1 2 Position:X:10 Y:30 Leader 1 3 Position:X:10 Y:-30 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 = HordeNotifyTargetsOfImminentProbableCrushingUpdate ModuleTag_NotifyCrushScan
ScanWidth = 70.0 ; A little less than the width of the horde (which is 2 * 40 = 80)
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 = CAVALRY_FEAR_SCAN_RADIUS
AddEmotion = Terror_Base
AddEmotion = Doom_Base
AddEmotion = BraceForBeingCrushed_Base
AddEmotion = UncontrollableFear_Base
AddEmotion = FearIdle_Base
AddEmotion = FearBusy_Base
AddEmotion = Point_Base
AddEmotion = Taunt_Base
AddEmotion = CheerIdle_Base
AddEmotion = CheerBusy_Base
AddEmotion = HeroCheerIdle_Base
AddEmotion = HeroCheerBusy_Base
AddEmotion = Alert_Base
AddEmotion = CheerForAboutToCrush_Base
End
LocomotorSet
Locomotor = NormalCavalryHordeLocomotor
Condition = SET_NORMAL
Speed = NORMAL_CAVALRY_FAST_HORDE_SPEED
End
Behavior = ProductionUpdate ProductionUpdateModuleTag
GiveNoXP = Yes
End
Behavior = LevelUpUpgrade ModuleTag_BasicTraining
TriggeredBy = Upgrade_RohanBasicTraining
LevelsToGain = 1
LevelCap = 2
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality
TriggeredBy = Upgrade_RohanForgedBladesForRohirrim
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality2
TriggeredBy = Upgrade_RohanHeavyArmorForRohirrim
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality3
TriggeredBy = Upgrade_RohanHorseShield
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality4
TriggeredBy = Upgrade_RohanFireArrows
End
//Toggle CommandSet Based on Weaponset condition flags
Behavior = MonitorConditionUpdate ModuleTag_CommandSetSwapper
WeaponSetFlags = WEAPONSET_TOGGLE_1
WeaponToggleCommandSet = RohirrimHordeBowCommandSet
End
Behavior = PickupStuffUpdate ModuleTag_PickupStuffUpdate
SkirmishAIOnly = Yes
StuffToPickUp = NONE +CRATE
ScanRange = 200
ScanIntervalSeconds = 0.5
End
#include "..\..\..\includes\CaptureBuilding.inc"
/////////////////////
// AISpecialPowers
/////////////////////
Behavior = AISpecialPowerUpdate MenRohirrimHordeCaptureBuildingAI
CommandButtonName = Command_CaptureBuilding
SpecialPowerAIType = AI_SPECIAL_POWER_CAPTURE_BUILDING
End
Geometry = BOX
GeometryMajorRadius = 30.0
GeometryMinorRadius = 40.0
GeometryHeight = 20.0
GeometryIsSmall = No
// *** AUTO RESOLVE DATA ***
AutoResolveUnitType = AutoResolveUnit_Cavalry
AutoResolveCombatChain = AutoResolve_CavalryCombatChain
AutoResolveBody = AutoResolve_RohanRohirrimHordeBody
AutoResolveArmor
RequiredUpgrades = Upgrade_RohanHeavyArmorForRohirrim
Armor = AutoResolve_RohanRohirrimHeavyArmor
End
AutoResolveArmor
ExcludedUpgrades = Upgrade_RohanHeavyArmorForRohirrim
Armor = AutoResolve_RohanRohirrimArmor
End
AutoResolveWeapon
RequiredUpgrades = Upgrade_RohanForgedBladesForRohirrim Upgrade_RohanFireArrows
Weapon = AutoResolve_RohanRohirrimForgedBladesAndFireArrows
End
AutoResolveWeapon
RequiredUpgrades = Upgrade_RohanFireArrows
Weapon = AutoResolve_RohanRohirrimFireArrows
End
AutoResolveWeapon
RequiredUpgrades = Upgrade_RohanForgedBladesForRohirrim
Weapon = AutoResolve_RohanRohirrimForgedBlades
End
AutoResolveWeapon
ExcludedUpgrades = Upgrade_RohanForgedBladesForRohirrim Upgrade_RohanFireArrows
Weapon = AutoResolve_RohanRohirrimWeapon
End
WorldMapArmoryUpgradesAllowed = Upgrade_RohanBasicTraining Upgrade_RohanForgedBladesForRohirrim Upgrade_RohanFireArrows Upgrade_RohanHeavyArmorForRohirrim
End
//////////////////////////////////////////////////////////////////////////////////
ChildObject RohanRohirrimHorde_Summoned RohanRohirrimHorde
IsTrainable = No
CommandPoints = 0
CommandSet = RohirrimHordeCommandSet_Summoned
EquivalentTo = RohanRohirrimHorde
KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAVALRY HORDE MELEE_HORDE SUMMONED LARGE_RECTANGLE_PATHFIND
Behavior = LifetimeUpdate ModuleTag_LifetimeUpdate
// This one displays the timer, but the one in the uint does the work
MinLifetime = 180000
MaxLifetime = 180000
DeathType = FADED
End
Behavior = HorseHordeContain ModuleTag_HordeContain
ObjectStatusOfContained =
InitialPayload = RohanRohirrim_Summoned GOOD_RIDER_HORDE_SIZE
Slots = 5
PassengerFilter = NONE +CAVALRY //+RohanBanner
ShowPips = No
RandomOffset = X:3 Y:4
ThisFormationIsTheMainFormation = Yes //Used to determine which armorset to use (and anything else we want!)
// Banner Carrier info
// BannerCarriersAllowed = RohanBanner // types of units that are allowed as banner carriers
// BannerCarrierPosition = UnitType:RohanRohirrim Pos:X:75.0 Y:0.0 // (DEFAULT) position of banner carrier for archer horde
RankInfo = RankNumber:1 UnitType:RohanRohirrim_Summoned Position:X:6 Y:0 Position:X:0 Y:25 Position:X:0 Y:-25 Position:X:-7 Y:50 Position:X:-7 Y:-50
RanksToReleaseWhenAttacking = 1
MeleeAttackLeashDistance = 25// How far the hordes can move from the center of the horde when melee attacking.
End
End
//////////////////////////////////////////////////////////////////////////////////
Object RohanOathbreakerHorde
SelectPortrait = UPOathBreakers
Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER SELECTED EMOTION_TERROR
DefaultModelConditionState
Model = None //InvisHrdeTmp
End
ModelConditionState = HORDE_EMPTY
Model = None
End
ModelConditionState = WORLD_BUILDER
Model = HordeMarkRUOat
End
End
Side = Men
EditorSorting = UNIT
EmotionRange = 240
DisplayName = OBJECT:HordeOathBreakers
WeaponSet
Conditions = None
Weapon = PRIMARY OathbreakerSword // NormalMeleeHordeRangefinder
// Weapon = PRIMARY NormalMeleeHordeRangefinder
End
CommandSet = RohanOathbreakerHordeCommandSet
// *** AUDIO Parameters ***//
// Note: Don't put voice parameters here -- they will be ignored. Voice play requests
// are always passed through to members
#include "..\..\..\includes\StandardHordeEvaEvents.inc"
BuildCost = 0 //not build just spawned
BuildTime = 0
VisionRange = 500
VisionSide = 50%
VisionRear = 25%
VisionBonusPercentPerFoot = 1.0%
CommandPoints = 50
// AOD can crush anything.
CrushableLevel = 4 //What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CrusherLevel = 5
MinCrushVelocityPercent = 0% // Always crushes
CrushDecelerationPercent = 0% // Lose 0 percent of max velocity when crushing.
CrushKnockback = 0 // Don't knock back.
CrushZFactor = 100.0 // How much we knock upwards.
TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE
KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY HORDE MELEE_HORDE NO_FORMATION_MOVEMENT ARMY_OF_DEAD SCARY SUMMONED //UNATTACKABLE
Body = ImmortalBody ModuleTag_ImmortalBody
MaxHealth = 1
End
Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
MaxCowerTime = 5000
MinCowerTime = 3000
AttackPriority = DefaultAttackPriority
End
Behavior = LifetimeUpdate ModuleTag_LifetimeUpdate
MinLifetime = OATHBREAKER_LIFETIME
MaxLifetime = OATHBREAKER_LIFETIME
DeathType = FADED
End
Behavior = AODHordeContain ModuleTag_HordeContain
ObjectStatusOfContained =
InitialPayload = RohanOathbreaker OATHBREAKER_HORDE_SIZE
Slots = 40
PassengerFilter = ANY +INFANTRY +CAVALRY
ShowPips = No
ThisFormationIsTheMainFormation = Yes //Used to determine which armorset to use (and anything else we want!)
RandomOffset = X:0 Y:0 // X:25 Y:25
// AOD sine wave movement.
FrequencyScale = 0.3// // how fast they move left to right.
FrequencyRandomness = 0.3// how random - 0==no randomness, 1.0 = very random.
AmplitudeScale = 20// how far they move left to right.
AmplitudeRandomness = 0.4// how random - 0==no randomness, 1.0 = very random.
StillAmplitude = 0.10// // how much they move left to right when not moving. 0==none, 1.0==full movement.
// z movement.
FrequencyScaleZ = 0.2// // how fast they move up&down.
FrequencyRandomnessZ = 0.4// how random - 0==no randomness, 1.0 = very random.
AmplitudeScaleZ = 4// how far they up and down.
AmplitudeRandomnessZ = 0.2// how random - 0==no randomness, 1.0 = very random.
StillAmplitudeZ = 0.15// // how much they move up & down when not moving. 0==none, 1.0==full movement.
// Horde flowing up over large units it kills.
LargeUnitHeightFactor = 0.85 // Start with this * the object's geometry height.
LargeUnitMinHeight = 20.0// Go up at least this amount.
LargeUnitMaxHeight = 300.0// Go up at no more than amount.
LargeUnitTimeout = 12000// How long the horde flows up over the unit, ms. 4000==4 seconds.
LargeUnitTailOff = 2.0f// How quickly the units drop back to the ground.
// Oath fulfilled behavior.
//E3 No up OathFulfilledZFactor = 0.5 // How fast they rise up after oath is fulfilled.
ScatterSpeedFactor = 0.4// How fast they scatter.
ScatterRandomness = 0.1// How random the scatter speed is.
// Positions for 40
RankInfo = RankNumber:1 UnitType:RohanOathbreaker Position:X:45 Y:0 Position:X:45 Y:90 Position:X:45 Y:-45 //Position:X:45 Y:45
RankInfo = RankNumber:6 UnitType:RohanOathbreaker Position:X:45 Y:45
RankInfo = RankNumber:2 UnitType:RohanOathbreaker Position:X:0 Y:0 Position:X:0 Y:45 Position:X:0 Y:90 //Position:X:0 Y:-45
RankInfo = RankNumber:7 UnitType:RohanOathbreaker Position:X:0 Y:-45
RankInfo = RankNumber:3 UnitType:RohanOathbreaker Position:X:-45 Y:0 Position:X:-45 Y:45 Position:X:-45 Y:-45 //Position:X:-45 Y:90
RankInfo = RankNumber:8 UnitType:RohanOathbreaker Position:X:-45 Y:90
RankInfo = RankNumber:4 UnitType:RohanOathbreaker Position:X:-91 Y:45 Position:X:-91 Y:-45 Position:X:-91 Y:90 //Position:X:-91 Y:0
RankInfo = RankNumber:9 UnitType:RohanOathbreaker Position:X:-91 Y:0
RankInfo = RankNumber:5 UnitType:RohanOathbreaker Position:X:-135 Y:0 Position:X:-135 Y:45 Position:X:-135 Y:-45 Position:X:-135 Y:90
RankInfo = RankNumber:10 UnitType:RohanOathbreaker Position:X:-180 Y:0 Position:X:-180 Y:90 Position:X:-180 Y:-45 //Position:X:-180 Y:45
RankInfo = RankNumber:15 UnitType:RohanOathbreaker Position:X:-180 Y:45
RankInfo = RankNumber:11 UnitType:RohanOathbreaker Position:X:-225 Y:0 Position:X:-225 Y:45 Position:X:-225 Y:90 //Position:X:-225 Y:-45
RankInfo = RankNumber:16 UnitType:RohanOathbreaker Position:X:-225 Y:-45
RankInfo = RankNumber:12 UnitType:RohanOathbreaker Position:X:-270 Y:0 Position:X:-270 Y:45 Position:X:-270 Y:-45 //Position:X:-270 Y:90
RankInfo = RankNumber:17 UnitType:RohanOathbreaker Position:X:-270 Y:90
RankInfo = RankNumber:13 UnitType:RohanOathbreaker Position:X:-315 Y:45 Position:X:-315 Y:-45 Position:X:-315 Y:90 //Position:X:-315 Y:0
RankInfo = RankNumber:18 UnitType:RohanOathbreaker Position:X:-315 Y:0
RankInfo = RankNumber:14 UnitType:RohanOathbreaker Position:X:-360 Y:0 Position:X:-360 Y:45 Position:X:-360 Y:-45 Position:X:-360 Y:90
// Positions for 20
//RankInfo = RankNumber:1 UnitType:RohanOathbreaker Position:X:45 Y:0 Position:X:45 Y:90 Position:X:45 Y:-45 //Position:X:45 Y:45
//RankInfo = RankNumber:6 UnitType:RohanOathbreakersCavalry Position:X:45 Y:45
//RankInfo = RankNumber:2 UnitType:RohanOathbreaker Position:X:0 Y:0 Position:X:0 Y:45 Position:X:0 Y:90 //Position:X:0 Y:-45
//RankInfo = RankNumber:7 UnitType:RohanOathbreakersCavalry Position:X:0 Y:-45
//RankInfo = RankNumber:3 UnitType:RohanOathbreaker Position:X:-45 Y:0 Position:X:-45 Y:45 Position:X:-45 Y:-45 //Position:X:-45 Y:90
//RankInfo = RankNumber:8 UnitType:RohanOathbreakersCavalry Position:X:-45 Y:90
//RankInfo = RankNumber:4 UnitType:RohanOathbreaker Position:X:-91 Y:45 Position:X:-91 Y:-45 Position:X:-91 Y:90 //Position:X:-91 Y:0
//RankInfo = RankNumber:9 UnitType:RohanOathbreakersCavalry Position:X:-91 Y:0
//RankInfo = RankNumber:5 UnitType:RohanOathbreaker Position:X:-135 Y:0 Position:X:-135 Y:45 Position:X:-135 Y:-45 Position:X:-135 Y:90
// Positions for 10
// RankInfo = RankNumber:1 UnitType:RohanOathbreaker Position:X:10 Y:0 Position:X:10 Y:20 Position:X:10 Y:-20 Position:X:10 Y:40 Position:X:10 Y:-40
// RankInfo = RankNumber:2 UnitType:RohanOathbreaker Position:X:-10 Y:0 Position:X:-10 Y:20 Position:X:-10 Y:-20 Position:X:-10 Y:40 Position:X:-10 Y:-40
RanksToReleaseWhenAttacking = 1 2
End
Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
GravityMult = 1.0
End
Behavior = OathbreakersFadeAwayBehavior ModuleTag_05
FadeOutTime = 999999 // Hordes don't fade out, members do.
End
Behavior = CommandButtonHuntUpdate ModuleTag_CommandButtonHuntUpdate
End
Behavior = HordeNotifyTargetsOfImminentProbableCrushingUpdate ModuleTag_NotifyCrushScan
ScanWidth = 30.0 ; A little less than the width of the horde (which is 2 * 20 = 40)
End
LocomotorSet
Locomotor = AODHordeLocomotor
Condition = SET_NORMAL
Speed = 65
End
Geometry = BOX
GeometryMajorRadius = 20.0
GeometryMinorRadius = 20.0
GeometryHeight = 10.0
GeometryIsSmall = No
End
//////////////////////////////////////////////////////////////////////////////////
Object RohanOathbreakerHordeSmall // used for Aragorn's oathbreaker summon skill
SelectPortrait = UPOathBreakers
Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER SELECTED EMOTION_TERROR
DefaultModelConditionState
Model = None //InvisHrdeTmp
End
ModelConditionState = HORDE_EMPTY
Model = None
End
ModelConditionState = WORLD_BUILDER
Model = HordeMarkRUOat
End
End
Side = Men
IsTrainable = No
EditorSorting = UNIT
EmotionRange = 240
DisplayName = OBJECT:HordeOathBreakers
WeaponSet
Conditions = None
Weapon = PRIMARY OathbreakerSword // NormalMeleeHordeRangefinder
End
CommandSet = RohanOathbreakerHordeSmallCommandSet
// *** AUDIO Parameters ***//
// Note: Don't put voice parameters here -- they will be ignored. Voice play requests
// are always passed through to members
#include "..\..\..\includes\StandardHordeEvaEvents.inc"
BuildCost = 700
BuildTime = 20.0 //5.0
VisionRange = 500
VisionSide = 50%
VisionRear = 25%
VisionBonusPercentPerFoot = 1.0%
CommandPoints = 7
// AOD can crush anything.
CrushableLevel = 4 //What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CrusherLevel = 5
MinCrushVelocityPercent = 0% // Always crushes
CrushDecelerationPercent = 0% // Lose 0 percent of max velocity when crushing.
CrushKnockback = 0 // Don't knock back.
CrushZFactor = 100.0 // How much we knock upwards.
TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE
KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY HORDE NO_FORMATION_MOVEMENT ARMY_OF_DEAD SCARY SUMMONED LARGE_RECTANGLE_PATHFIND //UNATTACKABLE
Body = ImmortalBody ModuleTag_ImmortalBody
MaxHealth = 1
End
Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = FighterHorde
End
Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
MaxCowerTime = 5000
MinCowerTime = 3000
AttackPriority = DefaultAttackPriority
End
Behavior = LifetimeUpdate ModuleTag_LifetimeUpdate
MinLifetime = OATHBREAKER_LIFETIME
MaxLifetime = OATHBREAKER_LIFETIME
DeathType = FADED
End
Behavior = AODHordeContain ModuleTag_HordeContain
ObjectStatusOfContained =
InitialPayload = RohanOathbreaker OATHBREAKER_SMALL_HORDE_SIZE //7
//InitialPayload = RohanOathbreakersCavalry 8
Slots = 16 //7
PassengerFilter = ANY +INFANTRY +CAVALRY
ShowPips = No
ThisFormationIsTheMainFormation = Yes //Used to determine which armorset to use (and anything else we want!)
RandomOffset = X:0 Y:0 // X:25 Y:25
// AOD sine wave movement.
FrequencyScale = 0.3// // how fast they move left to right.
FrequencyRandomness = 0.3// how random - 0==no randomness, 1.0 = very random.
AmplitudeScale = 20// how far they move left to right.
AmplitudeRandomness = 0.4// how random - 0==no randomness, 1.0 = very random.
StillAmplitude = 0.10// // how much they move left to right when not moving. 0==none, 1.0==full movement.
// z movement.
FrequencyScaleZ = 0.2// // how fast they move up&down.
FrequencyRandomnessZ = 0.4// how random - 0==no randomness, 1.0 = very random.
AmplitudeScaleZ = 4// how far they up and down.
AmplitudeRandomnessZ = 0.2// how random - 0==no randomness, 1.0 = very random.
StillAmplitudeZ = 0.15// // how much they move up & down when not moving. 0==none, 1.0==full movement.
// Horde flowing up over large units it kills.
LargeUnitHeightFactor = 0.85 // Start with this * the object's geometry height.
LargeUnitMinHeight = 20.0// Go up at least this amount.
LargeUnitMaxHeight = 300.0// Go up at no more than amount.
LargeUnitTimeout = 12000// How long the horde flows up over the unit, ms. 4000==4 seconds.
LargeUnitTailOff = 2.0f// How quickly the units drop back to the ground.
// Oath fulfilled behavior.
//E3 No up OathFulfilledZFactor = 0.5 // How fast they rise up after oath is fulfilled.
ScatterSpeedFactor = 0.4// How fast they scatter.
ScatterRandomness = 0.1// How random the scatter speed is.
// Positions for 10
RankInfo = RankNumber:1 UnitType:RohanOathbreaker Position:X:10 Y:0 Position:X:10 Y:30 Position:X:10 Y:-30 Position:X:10 Y:60 //Position:X:10 Y:-60
RankInfo = RankNumber:2 UnitType:RohanOathbreaker Position:X:-10 Y:0 Position:X:-10 Y:30 Position:X:-10 Y:-30 Position:X:-10 Y:60 //Position:X:-10 Y:-60
RankInfo = RankNumber:2 UnitType:RohanOathbreaker Position:X:-30 Y:0 Position:X:-30 Y:30 Position:X:-30 Y:-30 Position:X:-30 Y:60 //Position:X:-30 Y:-60
RankInfo = RankNumber:2 UnitType:RohanOathbreaker Position:X:-50 Y:0 Position:X:-50 Y:30 Position:X:-50 Y:-30 Position:X:-50 Y:60 //Position:X:-50 Y:-60
RanksToReleaseWhenAttacking = 1 2 3 4
//AlternateFormation = GondorFighterHordeWedge
End
Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
GravityMult = 1.0
End
Behavior = HordeNotifyTargetsOfImminentProbableCrushingUpdate ModuleTag_NotifyCrushScan
ScanWidth = 20.0 ; A little less than the width of the horde (which is 2 * 15 = 30)
End
Behavior = OathbreakersFadeAwayBehavior ModuleTag_05
FadeOutTime = 999999 // Hordes don't fade out, members do.
End
Behavior = CommandButtonHuntUpdate ModuleTag_CommandButtonHuntUpdate
End
LocomotorSet
Locomotor = AODHordeLocomotor
Condition = SET_NORMAL
Speed = 65
End
Geometry = BOX
GeometryMajorRadius = 15.0
GeometryMinorRadius = 15.0
GeometryHeight = 10.0
GeometryIsSmall = No
End