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_structures_men_campsandcastles.ini
< prev
next >
Wrap
Text File
|
2006-01-31
|
227KB
|
7,442 lines
;---------------------------------- secondary GondorCitadel ------------------------------------------------------
Object GondorCampKeep
SelectPortrait = BPCMinasTirithKeep
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBCCenter
; ParticleSysBone = glowbone01 TorchGlow
; ParticleSysBone = glowbone02 furnaceSmoke
End
IdleAnimationState
;BeginScript
; Prev = CurDrawablePrevAnimationState()
; if Prev == "BeingConstructed" then
; Don't play completed sound when canceling build-in-progress or when
; destroyed halfway
; if not CurDrawableModelcondition( "DYING" ) then
; CurDrawablePlaySound("CampSoldierCompleteGeneric")
; end
; end
;EndScript
End
;------------Build Up States
;ModelConditionState = ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
; Model = GBCCenter_A
; ParticleSysBone = NONE BuildingDoughnutCloud
; ParticleSysBone = NONE BuildingContructDust
; End
ModelConditionState = ACTIVELY_BEING_CONSTRUCTED
Model = GBCCenter_A
; ParticleSysBone = NONE BuildingDoughnutCloud
ParticleSysBone = NONE BuildingContructDust
End
AnimationState = ACTIVELY_BEING_CONSTRUCTED
Animation
AnimationName = GBCCenter_A.GBCCenter_A
AnimationMode = MANUAL
End
BeginScript
CurDrawablePlaySound("GondorBarracksBeginConstruction")
CurDrawablePlaySound("BuildingTopple")
;CurDrawableHideSubObject("FIRE02")
EndScript
End
;------------Build Up States
ModelConditionState = BASE_BUILD
Model = GBCCenter_A
; ParticleSysBone = NONE BuildingDoughnutCloud
ParticleSysBone = NONE BuildingContructDust
End
AnimationState = BASE_BUILD
Animation
AnimationName = GBCCenter_A.GBCCenter_A
AnimationMode = ONCE
AnimationBlendTime = 0
AnimationSpeedFactorRange = 2.0 2.0 ; 300 frame anim, but need to shrink down to 5 seconds
End
BeginScript
CurDrawablePlaySound("GondorBarracksBeginConstruction")
CurDrawablePlaySound("BuildingTopple")
EndScript
End
ModelConditionState = JUST_BUILT
Model = GBCCenter_A
End
AnimationState = JUST_BUILT
Animation
AnimationName = GBCCenter_A.GBCCenter_A
AnimationMode = MANUAL
AnimationBlendTime = 0
End
Flags = START_FRAME_FIRST
; BeginScript
; CurDrawableHideSubObject("FIRE02")
; EndScript
End
ModelConditionState = DAMAGED
Model = GBCCenter_D1
ParticleSysBone dustbone01 TrebuchetImpactDebris
; ParticleSysBone = glowbone01 TorchGlow
; ParticleSysBone = glowbone02 furnaceSmoke
End
AnimationState = DAMAGED
EnteringStateFX = FX_BuildingDamaged
End
ModelConditionState = REALLYDAMAGED
Model = GBCCenter_D2
ParticleSysBone = glowbone02 TrebuchetImpactDebris
ParticleSysBone = glowbone01 Explosion5
End
AnimationState = REALLYDAMAGED
EnteringStateFX = FX_BuildingReallyDamaged
End
ModelConditionState = RUBBLE
Model = GBCCenter_D2
ParticleSysBone dustbone01 TrebuchetImpactDebris
ParticleSysBone = glowbone01 Explosion5
ParticleSysBone = glowbone02 BuildingChunkDebris
End
AnimationState = RUBBLE
End
ModelConditionState = POST_RUBBLE
Model = GBGenRubble
ParticleSysBone NONE SmokeBuildingMediumRubble
End
AnimationState = POST_RUBBLE
End
ModelConditionState = POST_COLLAPSE
Model = GBGenRubble
ParticleSysBone NONE SmokeBuildingMediumRubble
End
AnimationState = POST_COLLAPSE
End
End
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
VoiceSelect = GondorCitadelSelect
SoundAmbient = CitadelSignalFireLoop
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
VoiceSelectUnderConstruction = BuildingGoodVoiceSelectUnderConstruction
UnitSpecificSounds
UnderConstruction = BuildingBigConstructionLoop ; Built first time
; UnderRepairFromDamage = NoSound ; Repaired No animation on the building, so don't bother playing sound
UnderRepairFromRubble = BuildingBigConstructionLoop ; Repaired from completely destroyed (not used???)
End
EvaEventDieOwner = CitadelDie
CampnessValue = CAMPNESS_FORTRESS
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCampKeep
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = 1000
BuildTime = 30.0 ; in seconds
CommandSet = GenericKeepCommandSet
ArmorSet
Conditions = None
Armor = CitadelArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
//-----------------------------------------------
//Commandset upgrades based on faction. This is so the building will produce the proper units when necessary
Behavior = CommandSetUpgrade ModuleTag_CommandSetDwarven
TriggeredBy = Upgrade_DwarfFaction
CommandSet = DwarvenMonumentFortressCommandSet
End
Behavior = CommandSetUpgrade ModuleTag_CommandSetMen
TriggeredBy = Upgrade_MenFaction
CommandSet = MenMonumentFortressCommandSet
End
Behavior = CommandSetUpgrade ModuleTag_CommandSetElven
TriggeredBy = Upgrade_ElfFaction
CommandSet = ElvenMonumentFortressCommandSet
End
Behavior = CommandSetUpgrade ModuleTag_CommandSetIsengard
TriggeredBy = Upgrade_IsengardFaction
CommandSet = IsengardMonumentFortressCommandSet
End
Behavior = CommandSetUpgrade ModuleTag_CommandSetMordor
TriggeredBy = Upgrade_MordorFaction
CommandSet = MordorMonumentFortressCommandSet
End
Behavior = CommandSetUpgrade ModuleTag_CommandSetWild
TriggeredBy = Upgrade_WildFaction
CommandSet = WildMonumentFortressCommandSet
End
//End Commandset upgrades
KindOf = VITAL_FOR_BASE_SURVIVAL STRUCTURE SELECTABLE IMMOBILE COMMANDCENTER MP_COUNT_FOR_VICTORY FS_FACTORY AUTO_RALLYPOINT MADE_OF_STONE SCORE DOZER_FACTORY //CAMP_KEEP
RadarPriority = STRUCTURE
KeepSelectableWhenDead = Yes
Body = ActiveBody ModuleTag_02
MaxHealth = GONDOR_CENTRAL_CAMP_KEEP_HEALTH
End
Behavior = GettingBuiltBehavior ModuleTag_04
; WorkerName = GondorWorkerNoSelect
; SpawnTimer = 120
; RebuildWhenDead = Yes
SelfBuildingLoop = BuildingBigConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound ; This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = BuildingBigConstructionLoop
End
Behavior = CastleMemberBehavior ModuleTag_CMB
BeingBuiltSound = BuildingBigConstructionLoop
End
;-----------------------------------------------
;Used for hero revival and initial construction
Behavior = ProductionUpdate ProductionUpdateModuleTag
; nothing, but is required if we have any Object-level Upgrades!
End
Behavior = QueueProductionExitUpdate ModuleTag_QueuePEU
UnitCreatePoint = X:0.0 Y:-20.0 Z:0.0
NaturalRallyPoint = X:28.8 Y:-80.0 Z:0.0;NaturalRallyPointX must always match GeometryMajorRadius!
ExitDelay = 300 ; Mainly for the multiple produced Red Guard. Make them come out one at a time.
End
;-----------------------------------------------
Behavior = CitadelSlaughterHordeContain ModuleTag_SlaughterMe
PassengerFilter = GENERIC_FACTION_SLAUGHTERABLE
ObjectStatusOfContained = UNSELECTABLE ENCLOSED
CashBackPercent = 200%
ContainMax = 99 // give it a huge capacity, just in case player sends his whole army in at once
AllowEnemiesInside = No
AllowAlliesInside = No
AllowNeutralInside = No
AllowOwnPlayerInsideOverride = Yes
EnterSound = MordorSlaughterhouseEnterSound
EntryOffset = X:40.0 Y:0.0 Z:0.0
EntryPosition = X:0.0 Y:0.0 Z:0.0
ExitOffset = X:40.0 Y:0.0 Z:0.0
StatusForRingEntry = HOLDING_THE_RING
UpgradeForRingEntry = Upgrade_RingHero Upgrade_FortressRingHero
ObjectToDestroyForRingEntry = NONE +TheDroppedRing
FXForRingEntry = FX_OneRingFlare
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = KeepObjectDie ModuleTag_IWantRubble
End
Behavior = AutoDepositUpdate AutoDepositModuleTag
DepositTiming = GENERIC_KEEP_MONEY_TIME ; in milliseconds
DepositAmount = GENERIC_KEEP_MONEY_AMOUNT ; cash amount to deposit every DepositTiming
InitialCaptureBonus = 0 ; no initial bonus
End
Behavior = StructureCollapseUpdate ModuleTag_06
MinCollapseDelay = 000
MaxCollapseDelay = 000
CollapseDamping = .5
MaxShudder = 0.6
MinBurstDelay = 250
MaxBurstDelay = 800
BigBurstFrequency = 4
FXList = INITIAL FX_StructureMediumCollapse
End
Behavior = RubbleRiseUpdate ModuleTag_07
MinRubbleRiseDelay = 000
MaxRubbleRiseDelay = 000
;RubbleRiseDamping = .5
RubbleHeight = 4.0
MaxShudder = 0.6
MinBurstDelay = 250
MaxBurstDelay = 800
BigBurstFrequency = 4
FXList = INITIAL FX_StructureMediumPostCollapse
End
#include "..\..\..\FortressRingFunc.inc"
Geometry = BOX
GeometryMajorRadius = 7.0
GeometryMinorRadius = 7.0
GeometryHeight = 113.0
AdditionalGeometry = BOX
GeometryMajorRadius = 14.0
GeometryMinorRadius = 14.0
GeometryHeight = 38.0
AdditionalGeometry = CYLINDER ; this is needed so melee units can reach athe citidel to attack it
GeometryMajorRadius = 30.0
GeometryMinorRadius = 30.0
GeometryHeight = 10.0
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
GeometryContactPoint = X:0.407 Y:-0.489 Z:122.392 Swoop
AttackContactPoint = X:0 Y:0 Z:0
End
;----------------------------- primary GondorCitadel -----------------------------------------
Object GondorCastleBaseKeep
SelectPortrait = BPGondorCastle
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
ExtraPublicBone = Arrow_01
ExtraPublicBone = Arrow_02
ExtraPublicBone = Arrow_03
ExtraPublicBone = Arrow_04
ExtraPublicBone = Arrow_05
ExtraPublicBone = Arrow_06
ExtraPublicBone = Arrow_07
ExtraPublicBone = Arrow_08
ExtraPublicBone = Arrow_09
ExtraPublicBone = Arrow_10
ExtraPublicBone = Arrow_11
ExtraPublicBone = Arrow_12
DefaultModelConditionState
Model = GBCastKeep
WeaponLaunchBone = PRIMARY ARROW_
End
;------------Build Up States
ModelConditionState = ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
Model = GBCastKeep_A
ParticleSysBone = NONE BuildingContructDust
End
AnimationState = ACTIVELY_BEING_CONSTRUCTED
Animation
AnimationName = GBCastKeep_A.GBCastKeep_A
AnimationMode = MANUAL
End
End
;---------Damaged---------------------
ModelConditionState = DAMAGED
Model = GBCastKeep_D1
End
AnimationState = DAMAGED
StateName = STATE_None
EnteringStateFX = FX_BuildingDamaged
End
ModelConditionState = REALLYDAMAGED
Model = GBCastKeep_D2
End
AnimationState = REALLYDAMAGED
Animation = ReallyDamagedanimation
AnimationName = GBCastKeep_D2.GBCastKeep_D2
AnimationMode = ONCE
End
StateName = STATE_None
EnteringStateFX = FX_BuildingReallyDamaged
End
ModelConditionState = DESTROYED_WHILST_BEING_CONSTRUCTED
Model = GBCastKeep_A
ParticleSysBone NONE Explosion3
ParticleSysBone NONE ExplosiveMineSmoke02
End
AnimationState = DESTROYED_WHILST_BEING_CONSTRUCTED
StateName = STATE_DetroyedConstructing
Animation
AnimationName = GBCastKeep_A.GBCastKeep_A
AnimationMode = ONCE_BACKWARDS
AnimationBlendTime = 90 ; 3 seconds * 30 frames
End
; Specifically no start last frame flag here.
Flags = START_FRAME_FIRST
End
; RUBBLE--------------------------------------------------------------------------------------------------------
TransitionState = TRANS_U_IntoRubble
Animation = D3
AnimationName = GBCastKeep_D3.GBCastKeep_D3
AnimationMode = ONCE
AnimationBlendTime = 0
End
ParticleSysBone NONE Explosion3
ParticleSysBone NONE ExplosiveMineSmoke02
End
ModelConditionState = RUBBLE
Model = GBCastKeep_D3
End
AnimationState = RUBBLE
StateName = STATE_Rubble
Flags = START_FRAME_LAST
Animation = Death
AnimationName = GBCastKeep_D3.GBCastKeep_D3
AnimationMode = ONCE
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_None"
then
; Only play the rubble anim if we havn't come from another rubble.
CurDrawableSetTransitionAnimState("TRANS_U_IntoRubble")
end
EndScript
End
;------------Build Up States
ModelConditionState = ACTIVELY_BEING_CONSTRUCTED
Model = GBCastKeep_A
ParticleSysBone = NONE BuildingContructDust
End
AnimationState = ACTIVELY_BEING_CONSTRUCTED
StateName = STATE_Rubble
Animation
AnimationName = GBCastKeep_A.GBCastKeep_A
AnimationMode = MANUAL
End
BeginScript
;CurDrawableHideSubObject("FIRE02")
CurDrawablePlaySound("GondorBarracksBeginConstruction")
CurDrawablePlaySound("BuildingTopple")
EndScript
End
;------------Build Up States
ModelConditionState = BASE_BUILD
Model = GBCastKeep_A
ParticleSysBone = NONE BuildingContructDust
End
AnimationState = BASE_BUILD
StateName = STATE_Rubble
Animation
AnimationName = GBCastKeep_A.GBCastKeep_A
AnimationMode = ONCE
AnimationBlendTime = 0
AnimationSpeedFactorRange = 2.0 2.0 ; 300 frame anim, but need to shrink down to 5 seconds
End
BeginScript
CurDrawablePlaySound("GondorBarracksBeginConstruction")
CurDrawablePlaySound("BuildingTopple")
EndScript
End
ModelConditionState = JUST_BUILT
Model = GBCastKeep_A
End
AnimationState = JUST_BUILT
StateName = STATE_Rubble
Animation
AnimationName = GBCastKeep_A.GBCastKeep_A
AnimationMode = MANUAL
AnimationBlendTime = 0
End
Flags = START_FRAME_FIRST
End
End
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
VoiceSelect = GondorCitadelSelect
SoundAmbient = CitadelSignalFireLoop
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
VoiceSelectUnderConstruction = BuildingGoodVoiceSelectUnderConstruction
UnitSpecificSounds
UnderConstruction = BuildingBigConstructionLoop ; Built first time
; UnderRepairFromDamage = NoSound ; Repaired No animation on the building, so don't bother playing sound
UnderRepairFromRubble = BuildingBigConstructionLoop ; Repaired from completely destroyed (not used???)
End
EvaEventDieOwner = CitadelDie
ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
MaxUpdateRangeCap = 800
AnimationSound = Sound:BuildingSink Animation:GBCastKeep_D3.GBCastKeep_D3 Frames:0
AnimationSound = Sound:BuildingHeavyDamageStone Animation:GBCastKeep_D3.GBCastKeep_D3 Frames:40
End
CampnessValue = CAMPNESS_FORTRESS
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleBaseKeep
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = 1000
BuildTime = 30.0 ; in seconds
CommandSet = GondorCastleBaseKeepCommandSet
ArmorSet
Conditions = None
Armor = StructureArmor
DamageFX = MinasWallADamageFX
End
WeaponSet
Conditions = None
Weapon = PRIMARY KeepBow
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
End
; *** ENGINEERING Parameters ***
KindOf = VITAL_FOR_BASE_SURVIVAL STRUCTURE SELECTABLE SCORE IMMOBILE CASTLE_KEEP MP_COUNT_FOR_VICTORY CAN_ATTACK FS_FACTORY MADE_OF_STONE ATTACK_NEEDS_LINE_OF_SIGHT AUTO_RALLYPOINT ; GARRISON GARRISONABLE_UNTIL_DESTROYED
RadarPriority = STRUCTURE
VisionRange = GONDOR_ARCHER_VISION_RANGE
KeepSelectableWhenDead = Yes
Body = ActiveBody ModuleTag_02
MaxHealth = GONDOR_CENTRAL_CAMP_KEEP_HEALTH
End
Behavior = GettingBuiltBehavior ModuleTag_04
SelfBuildingLoop = BuildingBigConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound ; This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = BuildingBigConstructionLoop
End
Behavior = CastleMemberBehavior ModuleTag_CMB
BeingBuiltSound = BuildingBigConstructionLoop
End
;-----------------------------------------------
;Used for hero revival and initial construction
Behavior = ProductionUpdate ProductionUpdateModuleTag
; nothing, but is required if we have any Object-level Upgrades!
End
Behavior = QueueProductionExitUpdate ModuleTag_QueuePEU
UnitCreatePoint = X:0.0 Y:-20.0 Z:0.0
NaturalRallyPoint = X:28.8 Y:-80.0 Z:0.0;NaturalRallyPointX must always match GeometryMajorRadius!
ExitDelay = 300 ;Handles delays between units if multiple produced at a time.
End
;-----------------------------------------------
Behavior = WeaponSetUpgrade ModuleTag_FireArrows
TriggeredBy = Upgrade_BattleTowersToUseFireArrows
End
Behavior = AIUpdateInterface ModuleTag_SoWeCanUseWeapon
AutoAcquireEnemiesWhenIdle = Yes
MoodAttackCheckRate = 250
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = KeepObjectDie ModuleTag_IWantRubble
End
Behavior = AttributeModifierUpgrade ModuleTag_Reinforced
TriggeredBy = Upgrade_NumenorStonework
AttributeModifier = NumenorStoneworkKeep_Bonus
End
Behavior = EvacuateDamage ModuleTag_evacuateDamage
WeaponThatCausesEvacuation = MordorCatapultHumanHeads
End
;-------------Can no longer garrison castle keeps
;
; Behavior = HordeGarrisonContain ModuleTag_hordeGarrison
; ObjectStatusOfContained = UNSELECTABLE CAN_ATTACK
; ContainMax = 4
; DamagePercentToUnits = 0%
; PassengerFilter = ANY +INFANTRY +HORDE -CAVALRY -SUMMONED -WildSpiderling -WildSpiderlingHorde
; AllowEnemiesInside = Yes
; AllowNeutralInside = Yes
; NumberOfExitPaths = 1 ; Defaults to 1. Set 0 to not use ExitStart/ExitEnd, set higher than 1 to use ExitStart01-nn/ExitEnd01-nn
; PassengerBonePrefix = PassengerBone:ARROWBONE KindOf:INFANTRY
; EntryOffset = X:0.0 Y:-45.0 Z:0.0
; ExitOffset = X:0.0 Y:-45.0 Z:0.0
;
; ;PassengersTestCollisionHeight = 80
; ;Slots = 1
; ;EnterSound = GarrisonEnter
; ;ExitSound = GarrisonExit
; ;ExitDelay = 250
; ;GoAggressiveOnExit = Yes ; AI Will tell people to set their mood to Aggressive on exiting
; ;ForceOrientationContainer = No ; otherwise contained units can't orient themselves towards their targets...
; End
Behavior = AutoDepositUpdate AutoDepositModuleTag
DepositTiming = GENERIC_KEEP_MONEY_TIME ; in milliseconds
DepositAmount = GENERIC_KEEP_MONEY_AMOUNT ; cash amount to deposit every DepositTiming
InitialCaptureBonus = 0 ; no initial bonus
End
Geometry = BOX
GeometryMajorRadius = 19.0
GeometryMinorRadius = 19.0
GeometryHeight = 44.0
AdditionalGeometry = CYLINDER
GeometryMajorRadius = 19.0
GeometryMinorRadius = 0
GeometryHeight = 79
AdditionalGeometry = CYLINDER
GeometryMajorRadius = 9.0
GeometryMinorRadius = 0
GeometryHeight = 149
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
AttackContactPoint = X:00.327 Y:-0.28 Z:167.013 Swoop
AttackContactPoint = X:0 Y:0 Z:0
End
;----------------------------- primary GondorCitadel -----------------------------------------
Object WOR_GondorCastleBaseKeep
SelectPortrait = BPCMinasTirithKeep
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
ExtraPublicBone = Arrow_01
ExtraPublicBone = Arrow_02
ExtraPublicBone = Arrow_03
ExtraPublicBone = Arrow_04
ExtraPublicBone = Arrow_05
ExtraPublicBone = Arrow_06
ExtraPublicBone = Arrow_07
ExtraPublicBone = Arrow_08
ExtraPublicBone = Arrow_09
ExtraPublicBone = Arrow_10
ExtraPublicBone = Arrow_11
ExtraPublicBone = Arrow_12
DefaultModelConditionState
Model = GBCastKeep
WeaponLaunchBone = PRIMARY ARROW_
End
;------------Build Up States
ModelConditionState = ACTIVELY_BEING_CONSTRUCTED
Model = GBCastKeep_A
ParticleSysBone = NONE BuildingContructDust
End
AnimationState = ACTIVELY_BEING_CONSTRUCTED
StateName = STATE_Rubble
Animation
AnimationName = GBCastKeep_A.GBCastKeep_A
AnimationMode = MANUAL
End
BeginScript
;CurDrawableHideSubObject("FIRE02")
CurDrawablePlaySound("GondorBarracksBeginConstruction")
CurDrawablePlaySound("BuildingTopple")
EndScript
End
;---------Damaged---------------------
ModelConditionState = DAMAGED
Model = GBCastKeep_D1
End
AnimationState = DAMAGED
StateName = STATE_None
EnteringStateFX = FX_BuildingDamaged
End
ModelConditionState = REALLYDAMAGED
Model = GBCastKeep_D2
End
AnimationState = REALLYDAMAGED
Animation = ReallyDamagedanimation
AnimationName = GBCastKeep_D2.GBCastKeep_D2
AnimationMode = ONCE
End
StateName = STATE_None
EnteringStateFX = FX_BuildingReallyDamaged
End
ModelConditionState = RUBBLE
Model = GBCastKeep_D3
ParticleSysBone NONE Explosion5
End
AnimationState = RUBBLE
Animation = Death
AnimationName = GBCastKeep_D3.GBCastKeep_D3
AnimationMode = ONCE
End
EnteringStateFX = FX_StructureMediumCollapse
End
End
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
VoiceSelect = GondorCitadelSelect
SoundAmbient = CitadelSignalFireLoop
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
VoiceSelectUnderConstruction = BuildingGoodVoiceSelectUnderConstruction
UnitSpecificSounds
UnderConstruction = BuildingBigConstructionLoop ; Built first time
; UnderRepairFromDamage = NoSound ; Repaired No animation on the building, so don't bother playing sound
UnderRepairFromRubble = BuildingBigConstructionLoop ; Repaired from completely destroyed (not used???)
End
EvaEventDieOwner = CitadelDie
ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
MaxUpdateRangeCap = 800
AnimationSound = Sound:BuildingSink Animation:GBCastKeep_D3.GBCastKeep_D3 Frames:0
AnimationSound = Sound:BuildingHeavyDamageStone Animation:GBCastKeep_D3.GBCastKeep_D3 Frames:40
End
CampnessValue = CAMPNESS_FORTRESS
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleBaseKeep
Side = WOR
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = 5000
BuildTime = 120.0 ; in seconds
VisionRange = 400
ShroudClearingRange = 800
ArmorSet
Conditions = None
Armor = StructureArmor
DamageFX = MinasWallADamageFX
End
CommandSet = GondorCastleBaseKeepRebuildCommandSet
WeaponSet
Conditions = None
Weapon = PRIMARY KeepBow
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
End
; *** ENGINEERING Parameters ***
KindOf = VITAL_FOR_BASE_SURVIVAL PRELOAD SELECTABLE STRUCTURE IMMOBILE SCORE CASTLE_KEEP MP_COUNT_FOR_VICTORY CAN_ATTACK FS_FACTORY AUTO_RALLYPOINT DOZER_FACTORY NEVER_CULL_FOR_MP COMMANDCENTER DONT_HIDE_IF_FOGGED ; MADE_OF_STONE
RadarPriority = STRUCTURE
KeepSelectableWhenDead = Yes
//Commandset upgrades based on faction. This is so the building will produce the proper units when necessary
Behavior = CommandSetUpgrade ModuleTag_CommandSetMen
TriggeredBy = Upgrade_MenFaction
CommandSet = MenMonumentFortressRebuildCommandSet
End
Behavior = CommandSetUpgrade ModuleTag_CommandSetElven
TriggeredBy = Upgrade_ElfFaction
CommandSet = ElvenMonumentFortressRebuildCommandSet
End
Behavior = CommandSetUpgrade ModuleTag_CommandSetDwarven
TriggeredBy = Upgrade_DwarfFaction
CommandSet = DwarvenMonumentFortressRebuildCommandSet
End
Behavior = CommandSetUpgrade ModuleTag_CommandSetMordor
TriggeredBy = Upgrade_MordorFaction
CommandSet = MordorMonumentFortressRebuildCommandSet
End
Behavior = CommandSetUpgrade ModuleTag_CommandSetIsengard
TriggeredBy = Upgrade_IsengardFaction
CommandSet = IsengardMonumentFortressRebuildCommandSet
End
Behavior = CommandSetUpgrade ModuleTag_CommandSetWild
TriggeredBy = Upgrade_WildFaction
CommandSet = WildMonumentFortressRebuildCommandSet
End
//End Commandset upgrades
//-----------------------------------------------
//Used for hero revival and initial construction
Behavior = ProductionUpdate ProductionUpdateModuleTag
// nothing, but is required if we have any Object-level Upgrades!
End
Behavior = QueueProductionExitUpdate ModuleTag_QueuePEU
UnitCreatePoint = X:0.0 Y:-20.0 Z:0.0
NaturalRallyPoint = X:28.8 Y:-80.0 Z:0.0 ; NaturalRallyPointX must always match GeometryMajorRadius!
ExitDelay = 300 ; Handles delays between units if multiple produced at a time.
AllowAirborneCreation = Yes
End
//-----------------------------------------------
Behavior = GettingBuiltBehavior GetBuiltBehaviorTag
SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound ; This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = BuildingConstructionLoop
SpawnTimer = -1.0 ; Negative means no 'autoheal'
RebuildTimeSeconds = 120
End
Behavior = CastleMemberBehavior ModuleTag_CMB
BeingBuiltSound = BuildingBigConstructionLoop
End
Body = ActiveBody ModuleTag_02
MaxHealth = MONUMENT_FORTRESS_HEALTH
MaxHealthDamaged = MONUMENT_FORTRESS_HEALTH_DAMAGED
MaxHealthReallyDamaged = MONUMENT_FORTRESS_HEALT_REALLY_DAMAGED
End
// Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
// never truly destroyed, even when reduced to zero health. Also note that garrisonable
// buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = KeepObjectDie ModuleTag_IWantRubble
End
Behavior = AutoDepositUpdate AutoDepositModuleTag
DepositTiming = GENERIC_KEEP_MONEY_TIME
DepositAmount = GENERIC_KEEP_MONEY_AMOUNT
InitialCaptureBonus = 0 // no initial bonus
End
Behavior = TerrainResourceBehavior ModuleTag_NewMoneyDeadSpot
Radius = GENERIC_KEEP_MONEY_RANGE ; How far we try to claim ground
MaxIncome = 0 ; If we were to get all we wanted, how much we would earn. Linear slope to 0 at 0% claim
IncomeInterval = 999999 ; How often (in msec) we give that much money
HighPriority = Yes ; A high priority claim gets to pretend it was there first.
End
; Behavior = WeaponSetUpgrade ModuleTag_FireArrows
; TriggeredBy = Upgrade_BattleTowersToUseFireArrows
; End
; Behavior = AIUpdateInterface ModuleTag_SoWeCanUseWeapon
; AutoAcquireEnemiesWhenIdle = Yes
; MoodAttackCheckRate = 250
; End
; Behavior = AttributeModifierUpgrade ModuleTag_Reinforced
; TriggeredBy = Upgrade_NumenorStonework
; AttributeModifier = NumenorStoneworkKeep_Bonus
; End
; Behavior = EvacuateDamage ModuleTag_evacuateDamage
; WeaponThatCausesEvacuation = MordorCatapultHumanHeads
; End
Behavior = CitadelSlaughterHordeContain ModuleTag_SlaughterMe
PassengerFilter = GENERIC_FACTION_SLAUGHTERABLE
ObjectStatusOfContained = UNSELECTABLE ENCLOSED
CashBackPercent = 200%
ContainMax = 99 ; give it a huge capacity, just in case player sends his whole army in at once
AllowEnemiesInside = No
AllowAlliesInside = No
AllowNeutralInside = No
AllowOwnPlayerInsideOverride = Yes
EnterSound = MordorSlaughterhouseEnterSound
EntryOffset = X:40.0 Y:0.0 Z:0.0
EntryPosition = X:0.0 Y:0.0 Z:0.0
ExitOffset = X:40.0 Y:0.0 Z:0.0
StatusForRingEntry = HOLDING_THE_RING
UpgradeForRingEntry = Upgrade_RingHero Upgrade_FortressRingHero
ObjectToDestroyForRingEntry = NONE +TheDroppedRing
FXForRingEntry = FX_OneRingFlare
End
#include "..\..\..\FortressRingFunc.inc"
Geometry = BOX
GeometryMajorRadius = 23.0
GeometryMinorRadius = 23.0
GeometryHeight = 44.0
AdditionalGeometry = CYLINDER
GeometryMajorRadius = 19.0
GeometryMinorRadius = 0
GeometryHeight = 79
AdditionalGeometry = CYLINDER
GeometryMajorRadius = 9.0
GeometryMinorRadius = 0
GeometryHeight = 149
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
AttackContactPoint = X:00.327 Y:-0.28 Z:167.013 Swoop
AttackContactPoint = X:0 Y:0 Z:0
End
;------------------------------------------------------------------------------
Object GondorCastleWall_temp
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBCWall
End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWall_temp
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = 1
BuildTime = 5.0 ; in seconds
VisionRange = 160.0 ; Shroud clearing distance
ShroudClearingRange = 160
; *** AUDIO Parameters ***
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE NEED_BASE_FOUNDATION CASTLE_KEEP MADE_OF_STONE
Behavior = GettingBuiltBehavior ModuleTag_04
SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound ; This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = BuildingConstructionLoop
End
Behavior = CastleMemberBehavior ModuleTag_CMB
CountsForEvaCastleBreached = Yes
End
Body = StructureBody ModuleTag_05
MaxHealth = 1500.0
End
Behavior = DestroyDie ModuleTag_07
;nothing
End
Geometry = BOX
GeometryMajorRadius = 25.6
GeometryMinorRadius = 35.2
GeometryHeight = 191.2
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
Object GondorCastleKeep_temp
SelectPortrait = BPGKeep
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBCKeep
End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleKeep_temp
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
ThreatBreakdown GondorCastleWall_DetailedThreat
AIKindOf = WALL
End
BuildCost = 1
BuildTime = 5.0 ; in seconds
VisionRange = 160.0 ; Shroud clearing distance
ShroudClearingRange = 160
; *** AUDIO Parameters ***
VoiceSelect = GondorCitadelSelect
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
EvaEventDieOwner = CitadelDie
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE NEED_BASE_FOUNDATION CASTLE_KEEP AUTO_RALLYPOINT MADE_OF_STONE
Behavior = GettingBuiltBehavior ModuleTag_04
SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound ; This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = BuildingConstructionLoop
End
Behavior = CastleMemberBehavior ModuleTag_CMB
End
Body = StructureBody ModuleTag_05
MaxHealth = 1500.0
End
Behavior = DestroyDie ModuleTag_07
;nothing
End
Geometry = BOX
GeometryMajorRadius = 25.6
GeometryMinorRadius = 35.2
GeometryHeight = 191.2
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
Object GondorCastleFoundation_temp
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBCfoundation
End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleFoundation_temp
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = 1
BuildTime = 5.0 ; in seconds
VisionRange = 160.0 ; Shroud clearing distance
ShroudClearingRange = 160
; *** AUDIO Parameters ***
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE NEED_BASE_FOUNDATION CASTLE_KEEP
Behavior = GettingBuiltBehavior ModuleTag_04
SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound ; This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = BuildingConstructionLoop
End
Behavior = CastleMemberBehavior ModuleTag_CMB
End
Body = StructureBody ModuleTag_05
MaxHealth = 1500.0
End
Behavior = DestroyDie ModuleTag_07
;nothing
End
Geometry = BOX
GeometryMajorRadius = 25.6
GeometryMinorRadius = 35.2
GeometryHeight = 191.2
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
Object GondorCastleBarracks_temp
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBCBarracks
End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleBarracks_temp
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = 1
BuildTime = 5.0 ; in seconds
VisionRange = 160.0 ; Shroud clearing distance
ShroudClearingRange = 160
; *** AUDIO Parameters ***
VoiceSelectUnderConstruction = BuildingGoodVoiceSelectUnderConstruction
UnitSpecificSounds
UnderConstruction = BuildingConstructionLoop ; Built first time
; UnderRepairFromDamage = NoSound ; Repaired No animation on the building, so don't bother playing sound
UnderRepairFromRubble = BuildingConstructionLoop ; Repaired from completely destroyed (not used???)
End
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE NEED_BASE_FOUNDATION CASTLE_KEEP MADE_OF_STONE
Behavior = GettingBuiltBehavior ModuleTag_04
SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound ; This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = BuildingConstructionLoop
End
Behavior = CastleMemberBehavior ModuleTag_CMB
End
Body = StructureBody ModuleTag_05
MaxHealth = 1500.0
End
Behavior = DestroyDie ModuleTag_07
;nothing
End
Geometry = BOX
GeometryMajorRadius = 25.6
GeometryMinorRadius = 35.2
GeometryHeight = 191.2
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
;------------------------------------------------------------------------------
;Gondor Building Foundation -- the area where faction gondor buildings can be built on
Object GondorBuildingFoundation
SelectPortrait = BPGCamp_Plot
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw2
DefaultModelConditionState
Model = OBBFoundationX
End
ModelConditionState = WORLD_BUILDER
Model = GBSizeTemplate
End
End
Draw = W3DFloorDraw ModuleTag_Draw
ModelName = GBFoundationX
End
;PlacementViewAngle = 0
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorBuildingFoundation
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = 1
BuildTime = 5.0 ; in seconds
VisionRange = 160.0 ; Shroud clearing distance
ShroudClearingRange = 160
CommandSet = GondorFoundationCommandSet
; *** AUDIO Parameters ***
VoiceSelect = Gui_PlotSelect2 ;Gui_PlotSelect
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = STRUCTURE SELECTABLE IMMOBILE BASE_FOUNDATION UNATTACKABLE MP_COUNT_FOR_VICTORY NO_COLLIDE DO_NOT_CLASSIFY
Behavior = FoundationAIUpdate ModuleTag_foundationAI
End
Behavior = CastleMemberBehavior ModuleTag_CMB
End
Body = ImmortalBody ModuleTag_05
MaxHealth = 15000.0
End
Geometry = BOX
GeometryMajorRadius = 24.0
GeometryMinorRadius = 24.0
GeometryHeight = 0.8
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
;------------------------------------------------------------------------------
;
; This is the foundation that gets created by the spawn foundation spell
;
;------------------------------------------------------------------------------
ChildObject GondorBuildingFoundation_Independant GondorBuildingFoundation
CommandSet = GondorFoundation_IndependantCommandSet
; Quite large to make a big footprint to prevent building structures close tegether.
GeometryMajorRadius = 50.0
GeometryMinorRadius = 50.0
End
;------------------------------------------------------------------------------
Object GBCastleGate
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_01
OkToChangeModelColor = Yes
DefaultModelConditionState
Model = GBCastGate
End
; WallBoundsMesh = GBCastleWallT2
End
Draw = W3DLightDraw ModuleTag_02
Ambient = R:0 G:0 B:0
Diffuse = R:240 G:240 B:100
Radius = 40
Intensity = 1.2
FlickerAmplitude = 0.5
FlickerFrequency = 10
AttachToBoneInAnotherModule = E_Fire_SM
End
; *** AUDIO Parameters ***
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
; ***DESIGN parameters ***
DisplayName = OBJECT:GBCastleGate
Side = Men
EditorSorting = STRUCTURE
; Browser = CINEMATICS UNIT
ArmorSet
Conditions = None
Armor = StructureArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = STRUCTURE SELECTABLE IMMOBILE WALK_ON_TOP_OF_WALL CHUNK_VENDOR NOT_AUTOACQUIRABLE MADE_OF_WOOD WALL_GATE
RadarPriority = STRUCTURE
Body = ActiveBody ModuleTag_03
MaxHealth = 4000.0
GrabObject = EntThrownBuildingRock
GrabFX = FX_WallGrab
GrabDamage = 490
GrabOffset = X:16 Y:0
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
DestructionDelay = 5000
End
Behavior = AttributeModifierAuraUpdate ModuleTag_WallBonus
StartsActive = Yes ;If no, requires upgrade to turn on.
BonusName = WallBonus
RefreshDelay = 2000
;Range = 120 ; Range is overridden to affect people on us since we are a wall
;TargetEnemy = Yes ; Alliances are ignored to affect people on us since we are a wall
End
Geometry = BOX
GeometryMajorRadius = 44.0
GeometryMinorRadius = 88.0
GeometryHeight = 40.0
GeometryIsSmall = No
;GeometryRotationAnchorOffset = X:1037.871 Y:0
Shadow = SHADOW_VOLUME
GeometryContactPoint = X:-8 Y:0 Z:0 Grab
GeometryContactPoint = X:8 Y:0 Z:0 Grab
GeometryContactPoint = X:0 Y:0 Z:5
GeometryContactPoint = X:0 Y:-50 Z:40
GeometryContactPoint = X:0 Y:-30 Z:5
GeometryContactPoint = X:0 Y:0 Z:40
GeometryContactPoint = X:0 Y:30 Z:5
GeometryContactPoint = X:0 Y:50 Z:40
GeometryContactPoint = X:0 Y:50 Z:5
End
;------------------------------------------------------------------------------
Object GBCastleTrebuchet
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_01
OkToChangeModelColor = Yes
DefaultModelConditionState
Model = GBCastTreb
End
; WallBoundsMesh = GBCastleWallT2
End
Draw = W3DLightDraw ModuleTag_02
Ambient = R:0 G:0 B:0
Diffuse = R:240 G:240 B:100
Radius = 40
Intensity = 1.2
FlickerAmplitude = 0.5
FlickerFrequency = 10
AttachToBoneInAnotherModule = E_Fire_SM
End
; *** AUDIO Parameters ***
;SoundOnDamaged = BuildingLightDamageStone
;SoundOnReallyDamaged = BuildingHeavyDamageStone
; ***DESIGN parameters ***
DisplayName = OBJECT:GBCastleTrebuchet
Side = Men
EditorSorting = STRUCTURE
; Browser = CINEMATICS UNIT
ArmorSet
Conditions = None
Armor = StructureArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = STRUCTURE SELECTABLE IMMOBILE WALK_ON_TOP_OF_WALL CHUNK_VENDOR NOT_AUTOACQUIRABLE MADE_OF_STONE
RadarPriority = STRUCTURE
Body = ActiveBody ModuleTag_03
MaxHealth = 2000.0
GrabObject = EntThrownBuildingRock
GrabFX = FX_WallGrab
GrabDamage = 490
GrabOffset = X:16 Y:0
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
DestructionDelay = 5000
End
Behavior = AttributeModifierAuraUpdate ModuleTag_WallBonus
StartsActive = Yes ;If no, requires upgrade to turn on.
BonusName = WallBonus
RefreshDelay = 2000
;Range = 120 ; Range is overridden to affect people on us since we are a wall
;TargetEnemy = Yes ; Alliances are ignored to affect people on us since we are a wall
End
Geometry = BOX
GeometryMajorRadius = 44.0
GeometryMinorRadius = 88.0
GeometryHeight = 40.0
GeometryIsSmall = No
;GeometryRotationAnchorOffset = X:1037.871 Y:0
Shadow = SHADOW_VOLUME
; Regular geometry is all screwy, leave these commented out
;GeometryContactPoint = X:-10 Y:-40 Z:0 Grab
;GeometryContactPoint = X:30 Y:0 Z:0 Grab
;GeometryContactPoint = X:-10 Y:40 Z:0 Grab
;GeometryContactPoint = X:-10 Y:20 Z:40
;GeometryContactPoint = X:15 Y:10 Z:10
;GeometryContactPoint = X:20 Y:0 Z:40
;GeometryContactPoint = X:15 Y:-10 Z:10
;GeometryContactPoint = X:-10 Y:-30 Z:40
;GeometryContactPoint = X:-10 Y:-30 Z:10
End
;------------------------------------------------------------------------------
Object GBCastleElevator
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_01
OkToChangeModelColor = Yes
DefaultModelConditionState
Model = GBCastElev
End
; WallBoundsMesh = GBCastleWallT2
End
Draw = W3DLightDraw ModuleTag_02
Ambient = R:0 G:0 B:0
Diffuse = R:240 G:240 B:100
Radius = 40
Intensity = 1.2
FlickerAmplitude = 0.5
FlickerFrequency = 10
AttachToBoneInAnotherModule = E_Fire_SM
End
; *** AUDIO Parameters ***
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleElevator
Side = Men
EditorSorting = STRUCTURE
; Browser = CINEMATICS UNIT
ArmorSet
Conditions = None
Armor = StructureArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = STRUCTURE SELECTABLE IMMOBILE WALK_ON_TOP_OF_WALL CHUNK_VENDOR NOT_AUTOACQUIRABLE MADE_OF_STONE
RadarPriority = STRUCTURE
Body = ActiveBody ModuleTag_03
MaxHealth = 4000.0
GrabObject = EntThrownBuildingRock
GrabFX = FX_WallGrab
GrabDamage = 490
GrabOffset = X:16 Y:0
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
DestructionDelay = 5000
End
Behavior = AttributeModifierAuraUpdate ModuleTag_WallBonus
StartsActive = Yes ;If no, requires upgrade to turn on.
BonusName = WallBonus
RefreshDelay = 2000
;Range = 120 ; Range is overridden to affect people on us since we are a wall
;TargetEnemy = Yes ; Alliances are ignored to affect people on us since we are a wall
End
Geometry = BOX
GeometryMajorRadius = 44.0
GeometryMinorRadius = 88.0
GeometryHeight = 40.0
GeometryIsSmall = No
;GeometryRotationAnchorOffset = X:1037.871 Y:0
Shadow = SHADOW_VOLUME
; wow this geometry is screwy
GeometryContactPoint = X:-29.397 Y:0.326 Z:108.421 Swoop
GeometryContactPoint = X:0 Y:0 Z:0
GeometryContactPoint = X:40 Y:-20 Z:0 Grab
End
;------------------------------------------------------------------------------
Object GBCastleWallF
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_01
OkToChangeModelColor = Yes
DefaultModelConditionState
Model = GBCastleWallF
End
; WallBoundsMesh = GBCastleWallT2
End
Draw = W3DLightDraw ModuleTag_02
Ambient = R:0 G:0 B:0
Diffuse = R:240 G:240 B:100
Radius = 40
Intensity = 1.2
FlickerAmplitude = 0.5
FlickerFrequency = 10
AttachToBoneInAnotherModule = E_Fire_SM
End
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
CampnessValue = CAMPNESS_WALL
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWall
Side = Men
EditorSorting = STRUCTURE
; Browser = CINEMATICS UNIT
ArmorSet
Conditions = None
Armor = StructureArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = STRUCTURE SELECTABLE IMMOBILE WALK_ON_TOP_OF_WALL CHUNK_VENDOR NOT_AUTOACQUIRABLE MADE_OF_STONE
RadarPriority = STRUCTURE
Body = ActiveBody ModuleTag_03
MaxHealth = 4000.0
GrabObject = EntThrownBuildingRock
GrabFX = FX_WallGrab
GrabDamage = 490
GrabOffset = X:16 Y:0
End
ThreatBreakdown GBCastleWallF_DetailedThreat
AIKindOf = WALL
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
DestructionDelay = 4000
End
Behavior = AttributeModifierAuraUpdate ModuleTag_WallBonus
StartsActive = Yes ;If no, requires upgrade to turn on.
BonusName = WallBonus
RefreshDelay = 2000
;Range = 120 ; Range is overridden to affect people on us since we are a wall
;TargetEnemy = Yes ; Alliances are ignored to affect people on us since we are a wall
End
Geometry = BOX
GeometryMajorRadius = 44.0
GeometryMinorRadius = 88.0
GeometryHeight = 40.0
GeometryIsSmall = No
;GeometryRotationAnchorOffset = X:1037.871 Y:0
Shadow = SHADOW_VOLUME
End
;------------------------------------------------------------------------------
Object GBCastleWallG
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_01
OkToChangeModelColor = Yes
DefaultModelConditionState
Model = GBCastleWallG
End
; WallBoundsMesh = GBCastleWallT2
End
Draw = W3DLightDraw ModuleTag_02
Ambient = R:0 G:0 B:0
Diffuse = R:240 G:240 B:100
Radius = 40
Intensity = 1.2
FlickerAmplitude = 0.5
FlickerFrequency = 10
AttachToBoneInAnotherModule = E_Fire_SM
End
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
CampnessValue = CAMPNESS_WALL
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWall
Side = Men
EditorSorting = STRUCTURE
; Browser = CINEMATICS UNIT
ArmorSet
Conditions = None
Armor = StructureArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = STRUCTURE SELECTABLE IMMOBILE WALK_ON_TOP_OF_WALL CHUNK_VENDOR NOT_AUTOACQUIRABLE MADE_OF_STONE
RadarPriority = STRUCTURE
Body = ActiveBody ModuleTag_03
MaxHealth = 4000.0
GrabObject = EntThrownBuildingRock
GrabFX = FX_WallGrab
GrabDamage = 490
GrabOffset = X:16 Y:0
End
ThreatBreakdown GBCastleWallG_DetailedThreat
AIKindOf = WALL
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
DestructionDelay = 2500
End
Behavior = AttributeModifierAuraUpdate ModuleTag_WallBonus
StartsActive = Yes ;If no, requires upgrade to turn on.
BonusName = WallBonus
RefreshDelay = 2000
;Range = 120 ; Range is overridden to affect people on us since we are a wall
;TargetEnemy = Yes ; Alliances are ignored to affect people on us since we are a wall
End
Geometry = BOX
GeometryMajorRadius = 44.0
GeometryMinorRadius = 88.0
GeometryHeight = 40.0
GeometryIsSmall = No
;GeometryRotationAnchorOffset = X:1037.871 Y:0
Shadow = SHADOW_VOLUME
End
;------------------------------------------------------------------------------
Object GBCastleWallR
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_01
OkToChangeModelColor = Yes
DefaultModelConditionState
Model = GBCastleWallR
End
; WallBoundsMesh = GBCastleWallT2
End
Draw = W3DLightDraw ModuleTag_02
Ambient = R:0 G:0 B:0
Diffuse = R:240 G:240 B:100
Radius = 40
Intensity = 1.2
FlickerAmplitude = 0.5
FlickerFrequency = 10
AttachToBoneInAnotherModule = E_Fire_SM
End
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
CampnessValue = CAMPNESS_WALL
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWall
Side = Men
EditorSorting = STRUCTURE
; Browser = CINEMATICS UNIT
ArmorSet
Conditions = None
Armor = StructureArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = STRUCTURE SELECTABLE IMMOBILE WALK_ON_TOP_OF_WALL CHUNK_VENDOR NOT_AUTOACQUIRABLE MADE_OF_STONE
RadarPriority = STRUCTURE
Body = ActiveBody ModuleTag_03
MaxHealth = 4000.0
GrabObject = EntThrownBuildingRock
GrabFX = FX_WallGrab
GrabDamage = 490
GrabOffset = X:16 Y:0
End
ThreatBreakdown GBCastleWallR_DetailedThreat
AIKindOf = WALL
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
DestructionDelay = 2500
End
Behavior = AttributeModifierAuraUpdate ModuleTag_WallBonus
StartsActive = Yes ;If no, requires upgrade to turn on.
BonusName = WallBonus
RefreshDelay = 2000
;Range = 120 ; Range is overridden to affect people on us since we are a wall
;TargetEnemy = Yes ; Alliances are ignored to affect people on us since we are a wall
End
Geometry = BOX
GeometryMajorRadius = 44.0
GeometryMinorRadius = 88.0
GeometryHeight = 40.0
GeometryIsSmall = No
;GeometryRotationAnchorOffset = X:1037.871 Y:0
Shadow = SHADOW_VOLUME
End
;------------------------------------------------------------------------------
;
Object GondorCastleGateTower
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_01
OkToChangeModelColor = Yes
WallBoundsMesh = P1
RampMesh1 = Ramp1
DefaultModelConditionState
Model = GBCastPed
End
ModelConditionState = WORLD_BUILDER
Model = GBCASTPEDW
End
IdleAnimationState
StateName = STATE_None
Flags = START_FRAME_LAST
Animation
AnimationName = GBCastPed.GBCastPed
AnimationMode = MANUAL
AnimationBlendTime = 0
End
End
ModelConditionState = ACTIVELY_BEING_CONSTRUCTED UPGRADE_NUMENOR_STONEWORK
Model = GBCastPed_UA
End
AnimationState = ACTIVELY_BEING_CONSTRUCTED UPGRADE_NUMENOR_STONEWORK
StateName = STATE_None
Flags = START_FRAME_FIRST
Animation
AnimationName = GBCastPed_UA.GBCastPed_UA
AnimationMode = MANUAL
End
End
ModelConditionState = ACTIVELY_BEING_CONSTRUCTED
Model = GBCastPed
End
AnimationState = ACTIVELY_BEING_CONSTRUCTED
StateName = STATE_None
Flags = START_FRAME_FIRST
Animation
AnimationName = GBCastPed.GBCastPed
AnimationMode = MANUAL
End
End
;------------Build Up States
ModelConditionState = BASE_BUILD
Model = GBCastPed
ParticleSysBone = NONE BuildingContructDust
End
AnimationState = BASE_BUILD
StateName = STATE_None
Animation
AnimationName = GBCastPed.GBCastPed
AnimationMode = ONCE
AnimationSpeedFactorRange = 2.0 2.5 ; keep range wide to avoid lockstep anims
End
End
AnimationState = JUST_BUILT
StateName = STATE_None
Flags = START_FRAME_FIRST
Animation
AnimationName = GBCastPed.GBCastPed
AnimationMode = MANUAL
AnimationBlendTime = 0
End
End
; DAMAGED ----------------------------------------------------------------------------------------------------------------
ModelConditionState = DAMAGED UPGRADE_NUMENOR_STONEWORK
Model = GBCastPed_UD1
End
AnimationState = DAMAGED UPGRADE_NUMENOR_STONEWORK
StateName = STATE_None
EnteringStateFX = FX_BuildingDamaged
End
ModelConditionState = DAMAGED
Model = GBCastPed_D1
End
AnimationState = DAMAGED
StateName = STATE_None
EnteringStateFX = FX_BuildingDamaged
End
; REALLYDAMAGED ----------------------------------------------------------------------------------------------------------------
TransitionState = TRANS_U_IntoReallyDamaged
EnteringStateFX = FX_BuildingReallyDamaged
Animation = D2
AnimationName = GBCastPed_UD2.GBCastPed_UD2
AnimationMode = ONCE
AnimationBlendTime = 0
End
End
ModelConditionState = REALLYDAMAGED UPGRADE_NUMENOR_STONEWORK
Model = GBCastPed_UD2
End
AnimationState = REALLYDAMAGED UPGRADE_NUMENOR_STONEWORK
StateName = STATE_ReallyDamaged
Flags = START_FRAME_LAST
Animation = ReallyDamagedanimation
AnimationName = GBCastPed_UD2.GBCastPed_UD2
AnimationMode = MANUAL
AnimationBlendTime = 0
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_None" or Prev == "STATE_Rubble"
then
; Only play the really damaged anim if we havn't come from another really damaged.
CurDrawableSetTransitionAnimState("TRANS_U_IntoReallyDamaged")
end
EndScript
End
ModelConditionState = REALLYDAMAGED
Model = GBCastPed_D2
End
AnimationState = REALLYDAMAGED
StateName = STATE_ReallyDamaged
Animation = ReallyDamagedanimation
AnimationName = GBCastPed_D2.GBCastPed_D2
AnimationMode = ONCE
AnimationBlendTime = 0
End
EnteringStateFX = FX_BuildingReallyDamaged
End
; RUBBLE ----------------------------------------------------------------------------------------------------------------
TransitionState = TRANS_U_IntoRubble
Animation = D3
AnimationName = GBCastPed_U_D3.GBCastPed_U_D3
AnimationMode = ONCE
AnimationBlendTime = 0
End
End
ModelConditionState = RUBBLE UPGRADE_NUMENOR_STONEWORK
Model = GBCastPed_U_D3
End
AnimationState = RUBBLE UPGRADE_NUMENOR_STONEWORK
StateName = STATE_Rubble
Flags = START_FRAME_LAST
;EnteringStateFX = FX_WallDie ;this plays after the stone sink into the ground
Animation = Death
AnimationName = GBCastPed_U_D3.GBCastPed_U_D3
AnimationMode = MANUAL
AnimationBlendTime = 0
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_ReallyDamaged" or Prev == "STATE_None" or Prev == "TRANS_U_IntoReallyDamaged"
then
; Only play the rubble anim if we havn't come from another rubble.
CurDrawableSetTransitionAnimState("TRANS_U_IntoRubble")
end
EndScript
End
ModelConditionState = RUBBLE
Model = GBCastPed_D3
End
AnimationState = RUBBLE
StateName = STATE_Rubble
Animation = Death
AnimationName = GBCastPed_D3.GBCastPed_D3
AnimationMode = ONCE
AnimationBlendTime = 0
End
EnteringStateFX = FX_WallDie
End
; ----------------------------------------------------------------------------------------------------------------
ModelConditionState = UPGRADE_NUMENOR_STONEWORK
Model = GBCastPed_U
End
AnimationState = UPGRADE_NUMENOR_STONEWORK
StateName = STATE_None
EnteringStateFX = GenericBuildingUpgrade
End
End
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
MaxUpdateRangeCap = 800
AnimationSound = Sound:WallDie Animation:GBCastPed_U_D3.GBCastPed_U_D3 Frames:0
End
CampnessValue = CAMPNESS_WALL
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleGateTower
Side = Men
EditorSorting = STRUCTURE
BuildTime = CASTLE_WALL_REBUILD_TIME
BuildCost = CASTLE_WALL_REBUILD_COST
VisionRange = 160.0 ; Shroud clearing distance
ShroudClearingRange = 160
ArmorSet
Conditions = None
Armor = StructureArmor
DamageFX = MinasWallADamageFX
End
; *** ENGINEERING Parameters ***
KindOf = STRUCTURE IMMOBILE WALK_ON_TOP_OF_WALL CHUNK_VENDOR SELECTABLE MADE_OF_STONE NOT_AUTOACQUIRABLE
RadarPriority = STRUCTURE
KeepSelectableWhenDead = Yes
CommandSet = GenericSelfRepairCommandSet
Body = ActiveBody ModuleTag_03
MaxHealth = 5000.0
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = KeepObjectDie ModuleTag_IWantRubble
End
Behavior = CastleMemberBehavior ModuleTag_CMB
End
Behavior = AttributeModifierUpgrade ModuleTag_Reinforced
TriggeredBy = Upgrade_NumenorStonework
AttributeModifier = NumenorStoneworkKeep_Bonus
CustomAnimAndDuration = AnimState:UPGRADE_NUMENOR_STONEWORK AnimTime:0
End
Behavior = GettingBuiltBehavior ModuleTag_GettingBuilt
SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound ; This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = BuildingConstructionLoop
SpawnTimer = -1.0 ; Negative means no 'autoheal'
RebuildTimeSeconds = CASTLE_WALL_REBUILD_TIME
End
Geometry = BOX
GeometryMajorRadius = 20.0
GeometryMinorRadius = 50.0
GeometryHeight = 45.0
GeometryIsSmall = No
;GeometryRotationAnchorOffset = X:1037.871 Y:0
Shadow = SHADOW_VOLUME
GeometryContactPoint = X:-10 Y:-40 Z:0 Grab
GeometryContactPoint = X:40 Y:0 Z:0 Grab
GeometryContactPoint = X:-10 Y:40 Z:0 Grab
GeometryContactPoint = X:-10 Y:25 Z:45
GeometryContactPoint = X:15 Y:15 Z:5
GeometryContactPoint = X:20 Y:0 Z:45
GeometryContactPoint = X:15 Y:-15 Z:5
GeometryContactPoint = X:-10 Y:-25 Z:45
GeometryContactPoint = X:-10 Y:-25 Z:5
End
;------------------------------------------------------------------------------
Object GBCastleWallsA
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_01
OkToChangeModelColor = Yes
DefaultModelConditionState
Model = GBCastleWallsA
End
; WallBoundsMesh = GBCastleWallT2
End
Draw = W3DLightDraw ModuleTag_02
Ambient = R:0 G:0 B:0
Diffuse = R:240 G:240 B:100
Radius = 40
Intensity = 1.2
FlickerAmplitude = 0.5
FlickerFrequency = 10
AttachToBoneInAnotherModule = E_Fire_SM
End
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
CampnessValue = CAMPNESS_WALL
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWall
Side = Men
EditorSorting = STRUCTURE
; Browser = CINEMATICS UNIT
ArmorSet
Conditions = None
Armor = StructureArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = STRUCTURE SELECTABLE IMMOBILE WALK_ON_TOP_OF_WALL CHUNK_VENDOR NOT_AUTOACQUIRABLE MADE_OF_STONE
RadarPriority = STRUCTURE
Body = ActiveBody ModuleTag_03
MaxHealth = 4000.0
GrabObject = EntThrownBuildingRock
GrabFX = FX_WallGrab
GrabDamage = 490
GrabOffset = X:16 Y:0
End
ThreatBreakdown GBCastleWallsA_DetailedThreat
AIKindOf = WALL
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
DestructionDelay = 2500
End
Behavior = AttributeModifierAuraUpdate ModuleTag_WallBonus
StartsActive = Yes ;If no, requires upgrade to turn on.
BonusName = WallBonus
RefreshDelay = 2000
;Range = 120 ; Range is overridden to affect people on us since we are a wall
;TargetEnemy = Yes ; Alliances are ignored to affect people on us since we are a wall
End
Geometry = BOX
GeometryMajorRadius = 44.0
GeometryMinorRadius = 88.0
GeometryHeight = 40.0
GeometryIsSmall = No
;GeometryRotationAnchorOffset = X:1037.871 Y:0
Shadow = SHADOW_VOLUME
End
;------------------------------------------------------------------------------
Object GBCastleWallsBT
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_01
OkToChangeModelColor = Yes
DefaultModelConditionState
Model = GBCastleWallsBT
End
; WallBoundsMesh = GBCastleWallT2
End
Draw = W3DLightDraw ModuleTag_02
Ambient = R:0 G:0 B:0
Diffuse = R:240 G:240 B:100
Radius = 40
Intensity = 1.2
FlickerAmplitude = 0.5
FlickerFrequency = 10
AttachToBoneInAnotherModule = E_Fire_SM
End
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
CampnessValue = CAMPNESS_WALL
; ***DESIGN parameters ***
DisplayName = OBJECT:GBCampWall
Side = Men
EditorSorting = STRUCTURE
; Browser = CINEMATICS UNIT
ArmorSet
Conditions = None
Armor = StructureArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = STRUCTURE SELECTABLE IMMOBILE WALK_ON_TOP_OF_WALL CHUNK_VENDOR NOT_AUTOACQUIRABLE MADE_OF_STONE
RadarPriority = STRUCTURE
Body = ActiveBody ModuleTag_03
MaxHealth = 4000.0
GrabObject = EntThrownBuildingRock
GrabFX = FX_WallGrab
GrabDamage = 490
GrabOffset = X:16 Y:0
End
ThreatBreakdown GBCastleWallsBT_DetailedThreat
AIKindOf = WALL
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
DestructionDelay = 2500
End
Behavior = AttributeModifierAuraUpdate ModuleTag_WallBonus
StartsActive = Yes ;If no, requires upgrade to turn on.
BonusName = WallBonus
RefreshDelay = 2000
;Range = 120 ; Range is overridden to affect people on us since we are a wall
;TargetEnemy = Yes ; Alliances are ignored to affect people on us since we are a wall
End
Geometry = BOX
GeometryMajorRadius = 44.0
GeometryMinorRadius = 88.0
GeometryHeight = 40.0
GeometryIsSmall = No
;GeometryRotationAnchorOffset = X:1037.871 Y:0
Shadow = SHADOW_VOLUME
End
;------------------------------------------------------------------------------
Object GBCastleWallT1
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_01
OkToChangeModelColor = Yes
DefaultModelConditionState
Model = GBCastleWallT1
End
; WallBoundsMesh = GBCastleWallT2
End
Draw = W3DLightDraw ModuleTag_02
Ambient = R:0 G:0 B:0
Diffuse = R:240 G:240 B:100
Radius = 40
Intensity = 1.2
FlickerAmplitude = 0.5
FlickerFrequency = 10
AttachToBoneInAnotherModule = E_Fire_SM
End
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
CampnessValue = CAMPNESS_WALL
; ***DESIGN parameters ***
DisplayName = OBJECT:GBCampWall
Side = Men
EditorSorting = STRUCTURE
; Browser = CINEMATICS UNIT
ArmorSet
Conditions = None
Armor = StructureArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = STRUCTURE SELECTABLE IMMOBILE WALK_ON_TOP_OF_WALL CHUNK_VENDOR NOT_AUTOACQUIRABLE MADE_OF_STONE
RadarPriority = STRUCTURE
Body = ActiveBody ModuleTag_03
MaxHealth = 4000.0
GrabObject = EntThrownBuildingRock
GrabFX = FX_WallGrab
GrabDamage = 490
GrabOffset = X:16 Y:0
End
ThreatBreakdown GBCastleWallT1_DetailedThreat
AIKindOf = WALL
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
DestructionDelay = 2500
End
Behavior = AttributeModifierAuraUpdate ModuleTag_WallBonus
StartsActive = Yes ;If no, requires upgrade to turn on.
BonusName = WallBonus
RefreshDelay = 2000
;Range = 120 ; Range is overridden to affect people on us since we are a wall
;TargetEnemy = Yes ; Alliances are ignored to affect people on us since we are a wall
End
Geometry = BOX
GeometryMajorRadius = 44.0
GeometryMinorRadius = 88.0
GeometryHeight = 40.0
GeometryIsSmall = No
;GeometryRotationAnchorOffset = X:1037.871 Y:0
Shadow = SHADOW_VOLUME
End
;------------------------------------------------------------------------------
Object GBCastleWallT2
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_01
OkToChangeModelColor = Yes
DefaultModelConditionState
Model = GBCastleWallT2
End
; WallBoundsMesh = GBCastleWallT2
End
Draw = W3DLightDraw ModuleTag_02
Ambient = R:0 G:0 B:0
Diffuse = R:240 G:240 B:100
Radius = 40
Intensity = 1.2
FlickerAmplitude = 0.5
FlickerFrequency = 10
AttachToBoneInAnotherModule = E_Fire_SM
End
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
CampnessValue = CAMPNESS_WALL
; ***DESIGN parameters ***
DisplayName = OBJECT:GBCampWall
Side = Men
EditorSorting = STRUCTURE
; Browser = CINEMATICS UNIT
ArmorSet
Conditions = None
Armor = StructureArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = STRUCTURE SELECTABLE IMMOBILE WALK_ON_TOP_OF_WALL CHUNK_VENDOR NOT_AUTOACQUIRABLE MADE_OF_STONE
RadarPriority = STRUCTURE
Body = ActiveBody ModuleTag_03
MaxHealth = 4000.0
GrabObject = EntThrownBuildingRock
GrabFX = FX_WallGrab
GrabDamage = 490
GrabOffset = X:16 Y:0
End
ThreatBreakdown GBCastleWallT2_DetailedThreat
AIKindOf = WALL
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
DestructionDelay = 2500
End
Behavior = AttributeModifierAuraUpdate ModuleTag_WallBonus
StartsActive = Yes ;If no, requires upgrade to turn on.
BonusName = WallBonus
RefreshDelay = 2000
;Range = 120 ; Range is overridden to affect people on us since we are a wall
;TargetEnemy = Yes ; Alliances are ignored to affect people on us since we are a wall
End
Geometry = BOX
GeometryMajorRadius = 44.0
GeometryMinorRadius = 88.0
GeometryHeight = 40.0
GeometryIsSmall = No
;GeometryRotationAnchorOffset = X:1037.871 Y:0
Shadow = SHADOW_VOLUME
End
;------------------------------------------------------------------------------
Object GBCampFloor
; *** ART Parameters ***
Draw = W3DFloorDraw ModuleTag_01
ModelName = GBCampFloor
ForceToBack = Yes
End
; *** AUDIO Parameters ***
VoiceSelect = Gui_PlotSelect2 ;Gui_PlotSelect
; ***DESIGN parameters ***
DisplayName = OBJECT:CampFloor
Side = Men
EditorSorting = STRUCTURE
; Browser = CINEMATICS UNIT
ArmorSet
Conditions = None
Armor = NoArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
; The STRUCTURE KindOf is needed so this object will be given to the base
; owner when it's unpacked and show up in the right color on the radar map.
KindOf = STRUCTURE IMMOBILE NO_COLLIDE UNATTACKABLE INERT
RadarPriority = NOT_ON_RADAR
Body = ImmortalBody ModuleTag_03
MaxHealth = 2000.0
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
DestructionDelay = 1000
End
Geometry = BOX
GeometryMajorRadius = 0.8
GeometryMinorRadius = 0.8
GeometryHeight = 0.8
GeometryIsSmall = Yes
End
;------------------------------------------------------------------------------
Object GBCastleFloor
; *** ART Parameters ***
Draw = W3DFloorDraw ModuleTag_01
ModelName = GBCastFloor
ForceToBack = Yes
End
; *** AUDIO Parameters ***
; ***DESIGN parameters ***
DisplayName = OBJECT:CastFloor
Side = Men
EditorSorting = STRUCTURE
; Browser = CINEMATICS UNIT
ArmorSet
Conditions = None
Armor = NoArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
; The STRUCTURE KindOf is needed so this object will be given to the base
; owner when it's unpacked and show up in the right color on the radar map.
KindOf = STRUCTURE IMMOBILE NO_COLLIDE UNATTACKABLE INERT
RadarPriority = NOT_ON_RADAR
Body = ImmortalBody ModuleTag_03
MaxHealth = 2000.0
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
DestructionDelay = 1000
End
Geometry = BOX
GeometryMajorRadius = 0.8
GeometryMinorRadius = 0.8
GeometryHeight = 0.8
GeometryIsSmall = Yes
End
;------------------------------------------------------------------------------
Object GBCampWall
SelectPortrait = BPGCampWall
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_01
OkToChangeModelColor = Yes
DefaultModelConditionState
Model = GBCampWall_A
End
IdleAnimationState
Animation
AnimationName = GBCampWall_A.GBCampWall_A
AnimationMode = MANUAL
AnimationBlendTime = 0
End
Flags = START_FRAME_LAST
End
;------------Build Up States
ModelConditionState = BASE_BUILD
Model = GBCampWall_A
; ParticleSysBone = NONE BuildingDoughnutCloud
ParticleSysBone = NONE BuildingContructDust
End
AnimationState = BASE_BUILD
Animation
AnimationName = GBCampWall_A.GBCampWall_A
AnimationMode = ONCE
AnimationSpeedFactorRange = 2.0 2.5 ; keep range wide to avoid lockstep anims
End
End
AnimationState = JUST_BUILT
Animation
AnimationName = GBCampWall_A.GBCampWall_A
AnimationMode = MANUAL
AnimationBlendTime = 0
End
Flags = START_FRAME_FIRST
End
ModelConditionState = DAMAGED UPGRADE_NUMENOR_STONEWORK
Model = GBCampWall_UD1
ParticleSysBone emberBone01 SmokeBuildingLarge
End
ModelConditionState = DAMAGED
Model = GBCampWall_D1
ParticleSysBone emberBone01 SmokeBuildingLarge
End
AnimationState = DAMAGED
EnteringStateFX = FX_BuildingDamaged
End
ModelConditionState = REALLYDAMAGED UPGRADE_NUMENOR_STONEWORK
Model = GBCampWall_UD2
ParticleSysBone emberBone01 SmokeBuildingLarge
End
ModelConditionState = REALLYDAMAGED
Model = GBCampWall_D2
ParticleSysBone emberBone01 SmokeBuildingLarge
End
AnimationState = REALLYDAMAGED
EnteringStateFX = FX_BuildingReallyDamaged
End
ModelConditionState = RUBBLE UPGRADE_NUMENOR_STONEWORK
Model = GBCampWall_UD3
ParticleSysBone emberBone01 GondorWallDebris
ParticleSysBone emberBone01 SmokeBuildingLarge
ParticleSysBone emberBone01 PCTMediumDust
End
AnimationState = RUBBLE UPGRADE_NUMENOR_STONEWORK
EnteringStateFX = FX_WallStoneDie
End
ModelConditionState = RUBBLE
Model = GBCampWall_D3
ParticleSysBone emberBone01 GondorWallDebris
ParticleSysBone emberBone01 SmokeBuildingLarge
ParticleSysBone emberBone01 PCTMediumDust
End
AnimationState = RUBBLE
EnteringStateFX = FX_WallStoneDie
End
ModelConditionState = POST_RUBBLE
Model = None
ParticleSysBone NONE SmokeBuildingMediumRubble
End
ModelConditionState = POST_COLLAPSE
Model = None
ParticleSysBone NONE SmokeBuildingMediumRubble
End
ModelConditionState = UPGRADE_NUMENOR_STONEWORK
Model = GBCampWall_U
End
AnimationState = UPGRADE_NUMENOR_STONEWORK
EnteringStateFX = GenericBuildingUpgrade
End
End
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
;ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
; MaxUpdateRangeCap = 800
; AnimationSound = Sound:BuildingDebris Animation:GBCampWall_A.GBCampWall_D3 Frames:0
; AnimationSound = Sound:BuildingDebris Animation:GBCampWall_A.GBCampWall_UD3 Frames:0
;End
CampnessValue = CAMPNESS_WALL
; ***DESIGN parameters ***
DisplayName = OBJECT:GBCampWall
Side = Men
EditorSorting = STRUCTURE
; Browser = CINEMATICS UNIT
ArmorSet
Conditions = None
Armor = CampWallArmor
DamageFX = None
End
CommandSet = EmptyCommandSet
; *** ENGINEERING Parameters ***
KindOf = STRUCTURE SELECTABLE IMMOBILE DEFENSIVE_WALL NOT_AUTOACQUIRABLE MADE_OF_STONE
RadarPriority = NOT_ON_RADAR
Body = ActiveBody ModuleTag_03
MaxHealth = 3000.0
End
ThreatBreakdown GBCampWall_DetailedThreat
AIKindOf = WALL
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
; Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
; DestructionDelay = 5000
; End
Behavior = StructureCollapseUpdate ModuleTag_06
MinCollapseDelay = 000
MaxCollapseDelay = 000
CollapseDamping = .5
MaxShudder = 0.6
MinBurstDelay = 250
MaxBurstDelay = 800
BigBurstFrequency = 4
; FXList = INITIAL FX_StructureMediumCollapse
; FXList = ALMOST_FINAL FX_StructureAlmostCollapse
DestroyObjectWhenDone = Yes
CollapseHeight = 80
End
Behavior = CastleMemberBehavior ModuleTag_CMB
End
Behavior = AttributeModifierUpgrade ModuleTag_Reinforced
TriggeredBy = Upgrade_NumenorStonework
AttributeModifier = NumenorStoneworkKeep_Bonus
CustomAnimAndDuration = AnimState:UPGRADE_NUMENOR_STONEWORK AnimTime:0
End
Geometry = BOX
GeometryMajorRadius = 4.0
GeometryMinorRadius = 72.0
GeometryHeight = 24.0
GeometryIsSmall = No
;GeometryRotationAnchorOffset = X:1037.871 Y:0
Shadow = SHADOW_VOLUME
End
;------------------------------------------------------------------------------
Object GBCampWallC
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_01
OkToChangeModelColor = Yes
DefaultModelConditionState
Model = GBCampWallC
End
; WallBoundsMesh = GBMTWallAPTop
End
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
CampnessValue = CAMPNESS_WALL
; ***DESIGN parameters ***
DisplayName = OBJECT:GBCampWall
Side = Men
EditorSorting = STRUCTURE
; Browser = CINEMATICS UNIT
ArmorSet
Conditions = None
Armor = StructureArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = STRUCTURE IMMOBILE DEFENSIVE_WALL NOT_AUTOACQUIRABLE MADE_OF_STONE
RadarPriority = NOT_ON_RADAR
Body = ActiveBody ModuleTag_03
MaxHealth = 3000.0
End
ThreatBreakdown GBCampWallC_DetailedThreat
AIKindOf = WALL
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
DestructionDelay = 2100
End
Geometry = BOX
GeometryMajorRadius = 32.0
GeometryMinorRadius = 8.0
GeometryHeight = 8.0
GeometryIsSmall = No
;GeometryRotationAnchorOffset = X:1037.871 Y:0
Shadow = SHADOW_VOLUME
End
;------------------------------------------------------------------------------
;Gondor Buildable Wall Foundation -- the area where faction gondor walls can be built on
Object GondorWallFoundation
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBFoundationL
End
ModelConditionState = WORLD_BUILDER
Model = RBWalls
End
End
;PlacementViewAngle = 0
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorWallFoundation
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = 1
BuildTime = 5.0 ; in seconds
VisionRange = 160.0 ; Shroud clearing distance
ShroudClearingRange = 160
CommandSet = GondorWallFoundationCommandSet
; *** AUDIO Parameters ***
VoiceSelect = Gui_PlotSelect2 ;Gui_PlotSelect
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = STRUCTURE SELECTABLE IMMOBILE BASE_FOUNDATION UNATTACKABLE MP_COUNT_FOR_VICTORY NO_COLLIDE DO_NOT_CLASSIFY MADE_OF_STONE
Behavior = FoundationAIUpdate ModuleTag_foundationAI
End
Behavior = CastleMemberBehavior ModuleTag_CMB
End
Body = StructureBody ModuleTag_05
MaxHealth = 15000.0
End
Geometry = BOX
GeometryMajorRadius = 24.0
GeometryMinorRadius = 16.0
GeometryHeight = 0.8
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
;------------------------------------------------------------------------------------------
;Gondor Great Keep
Object GondorGreatKeep
SelectPortrait = BPGKeep
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
ExtraPublicBone = ARROW_01
ExtraPublicBone = ARROW_02
ExtraPublicBone = ARROW_03
ExtraPublicBone = ARROW_04
ExtraPublicBone = ARROW_05
ExtraPublicBone = ARROW_06
ExtraPublicBone = ARROW_07
ExtraPublicBone = ARROW_08
ExtraPublicBone = ARROW_09
ExtraPublicBone = ARROW_10
ExtraPublicBone = ARROW_11
ExtraPublicBone = ARROW_12
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBWTower
End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:GBKeep
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
CommandSet = BattleTowerCommandSet
; CommandSet = GondorCastleGreatKeepCommandSet
BuildCost = 1
BuildTime = 5.0 ; in seconds
VisionRange = 160.0 ; Shroud clearing distance
ShroudClearingRange = 160
; *** AUDIO Parameters ***
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE NEED_BASE_FOUNDATION CASTLE_KEEP CAN_ATTACK MADE_OF_STONE ; GARRISON GARRISONABLE_UNTIL_DESTROYED
Behavior = ProductionUpdate ProductionUpdateModuleTag
; nothing, but is required if we have any Object-level Upgrades!
End
Behavior = GettingBuiltBehavior ModuleTag_04
WorkerName = GondorWorkerNoSelect
End
Behavior = CastleMemberBehavior ModuleTag_CMB
End
Behavior = ManTheWallsSpecialPower ModuleTag_ManTheWalls
SpecialPowerTemplate = ManTheWallsSpecialPower
End
Behavior = OCLSpecialPower ModuleTag_RangerAmbush
SpecialPowerTemplate = RangerAmbushSpecialPower
OCL = OCL_RangerAmbush
CreateLocation = CREATE_AT_LOCATION
End
Behavior = OCLSpecialPower ModuleTag_OsgiliathVeterans
SpecialPowerTemplate = OsgiliathVeteransSpecialPower
OCL = OCL_OsgiliathVeterans
CreateLocation = CREATE_AT_LOCATION
End
Behavior = OCLSpecialPower ModuleTag_PrinceOfDolArmoth
SpecialPowerTemplate = PrinceOfDolArmothSpecialPower
OCL = OCL_PrinceOfDolArmoth
CreateLocation = CREATE_AT_EDGE_NEAR_TARGET_AND_MOVE_TO_LOCATION
End
Body = StructureBody ModuleTag_05
MaxHealth = 1500.0
End
Behavior = BuildingBehavior BuildingModuleTag
; NightWindowName = WINDOW_N01
; FireWindowName = WINDOW_F01
; GlowWindowName = WINDOW_G01
; FireName = FIRE01
End
; Behavior = HordeGarrisonContain ModuleTag_hordeGarrison
; ObjectStatusOfContained = UNSELECTABLE CAN_ATTACK
; ContainMax = 4
; DamagePercentToUnits = 0%
; PassengerFilter = ANY +INFANTRY +HORDE -SUMMONED -WildSpiderling -WildSpiderlingHorde
; AllowEnemiesInside = No
; AllowNeutralInside = Yes
; NumberOfExitPaths = 1 ; Defaults to 1. Set 0 to not use ExitStart/ExitEnd, set higher than 1 to use ExitStart01-nn/ExitEnd01-nn
; PassengerBonePrefix = PassengerBone:ARROW_ KindOf:INFANTRY
; ;PassengersTestCollisionHeight = 80
; ;Slots = 1
; ;EnterSound = GarrisonEnter
; ;ExitSound = GarrisonExit
; ;ExitDelay = 250
; ;GoAggressiveOnExit = Yes ; AI Will tell people to set their mood to Aggressive on exiting
; ;ForceOrientationContainer = No ; otherwise contained units can't orient themselves towards their targets...
; End
Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
DestructionDelay = 5000
End
Behavior = RefundDie ModuleTag_refund
UpgradeRequired = Upgrade_MarketplaceUpgradeDefiance
BuildingRequired = ANY +GondorMarketPlace
RefundPercent = 50%
End
Behavior = StructureCollapseUpdate ModuleTag_06
MinCollapseDelay = 000
MaxCollapseDelay = 000
CollapseDamping = .5
MaxShudder = 0.6
MinBurstDelay = 250
MaxBurstDelay = 800
BigBurstFrequency = 4
FXList = INITIAL FX_StructureMediumCollapse
End
Geometry = BOX
GeometryMajorRadius = 40.0
GeometryMinorRadius = 40.0
GeometryHeight = 150.0
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
;------------------------------------------------------------------------------
Object GondorCastleKeep
SelectPortrait = BPGKeep
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBWTower
End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorWhiteTower
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = 1
BuildTime = 5.0 ; in seconds
VisionRange = 160.0 ; Shroud clearing distance
ShroudClearingRange = 160
CommandSet = GenericKeepCommandSet
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
VoiceSelect = GondorCitadelSelect
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
VoiceSelectUnderConstruction = BuildingGoodVoiceSelectUnderConstruction
UnitSpecificSounds
UnderConstruction = BuildingConstructionLoop ; Built first time
; UnderRepairFromDamage = NoSound ; Repaired No animation on the building, so don't bother playing sound
UnderRepairFromRubble = BuildingConstructionLoop ; Repaired from completely destroyed (not used???)
End
CampnessValue = CAMPNESS_FORTRESS
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE NEED_BASE_FOUNDATION CASTLE_KEEP MP_COUNT_FOR_VICTORY AUTO_RALLYPOINT FS_FACTORY
Behavior = GettingBuiltBehavior ModuleTag_04
WorkerName = GondorWorkerNoSelect
End
Behavior = CastleMemberBehavior ModuleTag_CMB
End
;-----------------------------------------------
;Used for hero revival and initial construction
Behavior = ProductionUpdate ProductionUpdateModuleTag
; nothing, but is required if we have any Object-level Upgrades!
End
Behavior = QueueProductionExitUpdate ModuleTag_QueuePEU
UnitCreatePoint = X:0.0 Y:-20.0 Z:0.0
NaturalRallyPoint = X:28.8 Y:-80.0 Z:0.0;NaturalRallyPointX must always match GeometryMajorRadius!
ExitDelay = 300 ;Handles delays between units if multiple produced at a time.
End
;-----------------------------------------------
Behavior = GarrisonContain GarrisonContainModuleTag
ObjectStatusOfContained = UNSELECTABLE CAN_ATTACK
ContainMax = 10
PassengerFilter = ANY +INFANTRY +HORDE
AllowAlliesInside = Yes
AllowEnemiesInside = No
; EnterSound = GarrisonEnter
; ExitSound = GarrisonExit
End
Body = StructureBody ModuleTag_05
MaxHealth = GONDOR_CENTRAL_CAMP_KEEP_HEALTH
End
ArmorSet
Conditions = None
Armor = CitadelArmor
DamageFX = None
End
; commented-out, since this keep is being used in MinasTirith, apparently...
; Behavior = DestroyDie ModuleTag_07
; ;nothing
; End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = KeepObjectDie ModuleTag_IWantRubble
End
Geometry = BOX
GeometryMajorRadius = 25.6
GeometryMinorRadius = 35.2
GeometryHeight = 31.2
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
;------------------------------------------------------------------------------
Object GondorBaseTower
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
ExtraPublicBone = Ramp01
ExtraPublicBone = Ramp02
ExtraPublicBone = Ramp03
WallBoundsMesh = P1
;;;;EmbedPortal = ramp Ramp ;;; not yet supported in W3DScriptedModelDraw
DefaultModelConditionState
Model = GBFSTower
End
End
; *** AUDIO Parameters ***
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorBaseTower
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
ArmorSet
Conditions = None
Armor = StructureArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = STRUCTURE IMMOBILE WALK_ON_TOP_OF_WALL CHUNK_VENDOR NOT_AUTOACQUIRABLE ;SELECTABLE;@1
RadarPriority = STRUCTURE
Body = ActiveBody ModuleTag_02
MaxHealth = 2000.0
GrabObject = EntThrownBuildingRock
GrabFX = FX_WallGrab
GrabDamage = 490
GrabOffset = X:16 Y:0
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
DestructionDelay = 4000
End
Behavior = AttributeModifierAuraUpdate ModuleTag_WallBonus
StartsActive = Yes ;If no, requires upgrade to turn on.
BonusName = WallBonus
RefreshDelay = 2000
;Range = 120 ; Range is overridden to affect people on us since we are a wall
;TargetEnemy = Yes ; Alliances are ignored to affect people on us since we are a wall
End
Geometry = BOX
GeometryMajorRadius = 36.0
GeometryMinorRadius = 36.0
GeometryHeight = 88.0
GeometryIsSmall = No
GeometryRotationAnchorOffset = X:372.9936 Y:0.0
Shadow = SHADOW_VOLUME
End
;------------------------------------------------------------------------------------------
Object GondorBaseWall
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
WallBoundsMesh = P1
DefaultModelConditionState
Model = GBFSWall
End
; WallBoundsMesh = P1
; RampMesh1 = P2
; RampMesh2 = P2
; RampMesh3 = P3
End
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
CampnessValue = CAMPNESS_WALL
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorBaseWall
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
ArmorSet
Conditions = None
Armor = StructureArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = STRUCTURE IMMOBILE WALK_ON_TOP_OF_WALL CHUNK_VENDOR NOT_AUTOACQUIRABLE SELECTABLE
RadarPriority = STRUCTURE
Body = ActiveBody ModuleTag_02
MaxHealth = 4000.0
GrabObject = EntThrownBuildingRock
GrabFX = FX_WallGrab
GrabDamage = 490
GrabOffset = X:16 Y:0
End
ThreatBreakdown GondorBaseWall_DetailedThreat
AIKindOf = WALL
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
DestructionDelay = 3000
End
Behavior = AttributeModifierAuraUpdate ModuleTag_WallBonus
StartsActive = Yes ;If no, requires upgrade to turn on.
BonusName = WallBonus
RefreshDelay = 2000
;Range = 120 ; Range is overridden to affect people on us since we are a wall
;TargetEnemy = Yes ; Alliances are ignored to affect people on us since we are a wall
End
Geometry = BOX
GeometryMajorRadius = 36.0
GeometryMinorRadius = 72.0
GeometryHeight = 36.0
GeometryIsSmall = No
GeometryRotationAnchorOffset = X:372.8264 Y:0.0
Shadow = SHADOW_VOLUME
End
;------------------------------------------------------------------------------------------
Object GondorBaseWallTreb
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
WallBoundsMesh = P1
RampMesh1 = P2
DefaultModelConditionState
Model = GBFSWallT
End
End
; *** AUDIO Parameters ***
;SoundOnDamaged = BuildingLightDamageStone
;SoundOnReallyDamaged = BuildingHeavyDamageStone
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorBaseWallTreb
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
ArmorSet
Conditions = None
Armor = StructureArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = STRUCTURE IMMOBILE WALK_ON_TOP_OF_WALL CHUNK_VENDOR NOT_AUTOACQUIRABLE SELECTABLE
RadarPriority = STRUCTURE
Body = ActiveBody ModuleTag_02
MaxHealth = 2000.0
GrabObject = EntThrownBuildingRock
GrabFX = FX_WallGrab
GrabDamage = 490
GrabOffset = X:16 Y:0
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
DestructionDelay = 3000
End
Behavior = AttributeModifierAuraUpdate ModuleTag_WallBonus
StartsActive = Yes ;If no, requires upgrade to turn on.
BonusName = WallBonus
RefreshDelay = 2000
;Range = 120 ; Range is overridden to affect people on us since we are a wall
;TargetEnemy = Yes ; Alliances are ignored to affect people on us since we are a wall
End
Geometry = BOX
GeometryMajorRadius = 36.0
GeometryMinorRadius = 28.0
GeometryHeight = 44.0
GeometryIsSmall = No
GeometryRotationAnchorOffset = X:411.2648 Y:0.0
Shadow = SHADOW_VOLUME
End
;------------------------------------------------------------------------------------------
Object GondorGate
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
WallBoundsMesh = P1
DefaultModelConditionState
Model = GBFSGate
End
AnimationState = NONE
Animation = GBFSGate
AnimationName = GBFSGate.GBFSGate
AnimationMode = LOOP
End
End
End
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
CampnessValue = CAMPNESS_WALL
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorGate
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildTime = 30.0 ; in seconds
ArmorSet
Conditions = None
Armor = StructureArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = STRUCTURE IMMOBILE WALK_ON_TOP_OF_WALL CHUNK_VENDOR NOT_AUTOACQUIRABLE WALL_GATE ;SELECTABLE;@1
RadarPriority = STRUCTURE
Body = ActiveBody ModuleTag_02
MaxHealth = 2000.0
GrabObject = EntThrownBuildingRock
GrabFX = FX_WallGrab
GrabDamage = 490
GrabOffset = X:16 Y:0
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
DestructionDelay = 2500
End
Behavior = AttributeModifierAuraUpdate ModuleTag_WallBonus
StartsActive = Yes ;If no, requires upgrade to turn on.
BonusName = WallBonus
RefreshDelay = 2000
;Range = 120 ; Range is overridden to affect people on us since we are a wall
;TargetEnemy = Yes ; Alliances are ignored to affect people on us since we are a wall
End
Geometry = BOX
GeometryMajorRadius = 36.0
GeometryMinorRadius = 104.0
GeometryHeight = 36.0
GeometryIsSmall = No
GeometryRotationAnchorOffset = X:341.568 Y:0.0
Shadow = SHADOW_VOLUME
End
;------------------------------------------------------------------------------
;Gondor Inner Wall
Object GondorInnerWall
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = RBWalls
End
End
PlacementViewAngle = 0
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorWall
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = 1
BuildTime = 5.0 ; in seconds
VisionRange = 160.0 ; Shroud clearing distance
ShroudClearingRange = 160
; ArmorSet
; Conditions = None
; Armor = StructureArmor
; DamageFX = StructureDamageFXNoShake
; End
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
; VoiceSelect = NuclearReactorSelect
; UnitSpecificSounds
; UnderConstruction = UnderConstructionLoop
; End
CampnessValue = CAMPNESS_WALL
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE NEED_BASE_FOUNDATION
ThreatBreakdown GondorInnerWall_DetailedThreat
AIKindOf = WALL
End
Behavior = GettingBuiltBehavior GetBuiltBehaviorTag
WorkerName = GondorWorkerNoSelect
End
Behavior = CastleMemberBehavior ModuleTag_CMB
End
Body = StructureBody ModuleTag_05
MaxHealth = 1500.0
End
Behavior = DestroyDie ModuleTag_07
;nothing
End
; Behavior = CreateObjectDie ModuleTag_08
; CreationList = OCL_SmallStructureDebris
; End
; Behavior = ProductionUpdate ModuleTag_10
; ; nothing, but is required if we have any Object-level Upgrades!
; End
; Behavior = FlammableUpdate ModuleTag_14
; AflameDuration = 5000 ; If I catch fire, I'll burn for this long...
; AflameDamageAmount = 5 ; taking this much damage...
; AflameDamageDelay = 500 ; this often.
; End
; Behavior = TransitionDamageFX ModuleTag_15
; ;-------------DESIGNED FOR SMALL SIZED FACTION BUILDING TRANSITIONS-------------------
; DamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
; ;---------------------------------------------------------------------------------------
; ReallyDamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
; ReallyDamagedParticleSystem2 = Bone:None RandomBone:No PSys:StructureTransitionSmallExplosion
; ReallyDamagedParticleSystem3 = Bone:None RandomBone:No PSys:StructureTransitionSmallShockwave
; End
; Behavior = FXListDie ModuleTag_16
; DeathFX = FX_BuildingDie
; End
Geometry = BOX
GeometryMajorRadius = 28.0
GeometryMinorRadius = 20.0
GeometryHeight = 24.0
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
;------------------------------------------------------------------------------------------
Object GBMGateDoor
SelectPortrait = BPGondorCastleGate
; *** ART Parameters ***
BuildTime = 180.0 ; in seconds
BuildCost = 1000
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBCASTGATE
End
; Reinforced constructed--------------------------------------------------------------
; Need this so that repairing a reinforced one correctly plays the geting built anim.
ModelConditionState = ACTIVELY_BEING_CONSTRUCTED USER_1
Model = GBCASTGATE_UA
ParticleSysBone = DUSTBONE BuildingContructDust
End
AnimationState = ACTIVELY_BEING_CONSTRUCTED USER_1
StateName = STATE_None
Animation = GBCASTGATE_UA
AnimationName = GBCASTGATE_UA.GBCASTGATE_UA
AnimationMode = MANUAL
End
Flags = START_FRAME_FIRST
End
; Constructed---------------------------------------------------------------------------------------
ModelConditionState = ACTIVELY_BEING_CONSTRUCTED
Model = GBCASTGATE_A
ParticleSysBone = DUSTBONE BuildingContructDust
End
AnimationState = ACTIVELY_BEING_CONSTRUCTED
StateName = STATE_None
Animation = GBCASTGATE_A
AnimationName = GBCASTGATE_A.GBCASTGATE_A
AnimationMode = MANUAL
End
Flags = START_FRAME_FIRST
End
; Reinforced destoyed when being constructed--------------------------------------------------------------
ModelConditionState = DESTROYED_WHILST_BEING_CONSTRUCTED USER_1
Model = GBCASTGATE_UA
ParticleSysBone = DUSTBONE BuildingContructDust
End
AnimationState = DESTROYED_WHILST_BEING_CONSTRUCTED USER_1
StateName = STATE_DetroyedConstructing
EnteringStateFX = FX_GondorCastleGateDestroy
Animation
AnimationName = GBCASTGATE_UA.GBCASTGATE_UA
AnimationMode = ONCE_BACKWARDS
AnimationBlendTime = 90 ; 3 seconds * 30 frames
End
; Specifically no start last frame flag here.
Flags = START_FRAME_FIRST
End
; Destoyed when being constructed--------------------------------------------------------------
ModelConditionState = DESTROYED_WHILST_BEING_CONSTRUCTED
Model = GBCASTGATE_A
ParticleSysBone = DUSTBONE BuildingContructDust
End
AnimationState = DESTROYED_WHILST_BEING_CONSTRUCTED
StateName = STATE_DetroyedConstructing
EnteringStateFX = FX_GondorCastleGateDestroy
Animation
AnimationName = GBCASTGATE_A.GBCASTGATE_A
AnimationMode = ONCE_BACKWARDS
AnimationBlendTime = 90 ; 3 seconds * 30 frames
End
; Specifically no start last frame flag here.
Flags = START_FRAME_FIRST
End
; Reinforced rubble open-------------------------------------------------------------------------
ModelConditionState = RUBBLE DOOR_1_OPENING USER_1
Model = GBCASTGATE_UD4
End
TransitionState = TRANS_IntoRubbleU4
Animation = D3
AnimationName = GBCASTGATE_UD4.GBCASTGATE_UD4
AnimationMode = ONCE
AnimationBlendTime = 0
End
ParticleSysBone NONE FX_GondorCastleGateDestroy
End
AnimationState = RUBBLE DOOR_1_OPENING USER_1
Flags = START_FRAME_LAST
StateName = STATE_Rubble
Animation = Death
AnimationName = GBCASTGATE_UD4.GBCASTGATE_UD4
AnimationMode = ONCE
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_None" or Prev == "STATE_Open" or Prev == "STATE_Closed" or Prev == "TRANS_Closed_To_Open" or Prev == "TRANS_Open_To_Closed"
then
; Only play the rubble anim if we havn't come from another rubble.
CurDrawableSetTransitionAnimState("TRANS_IntoRubbleU4")
end
EndScript
End
; Rubble open-------------------------------------------------------------------------
ModelConditionState = RUBBLE DOOR_1_OPENING
Model = GBCASTGATE_D4
End
TransitionState = TRANS_IntoRubble4
Animation = D3
AnimationName = GBCASTGATE_D4.GBCASTGATE_D4
AnimationMode = ONCE
AnimationBlendTime = 0
End
ParticleSysBone NONE FX_GondorCastleGateDestroy
End
AnimationState = RUBBLE DOOR_1_OPENING
Flags = START_FRAME_LAST
StateName = STATE_Rubble
Animation = Death
AnimationName = GBCASTGATE_D4.GBCASTGATE_D4
AnimationMode = ONCE
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_None" or Prev == "STATE_Open" or Prev == "STATE_Closed" or Prev == "TRANS_Closed_To_Open" or Prev == "TRANS_Open_To_Closed"
then
; Only play the rubble anim if we havn't come from another rubble.
CurDrawableSetTransitionAnimState("TRANS_IntoRubble4")
end
EndScript
End
; Reinforced rubble closed-------------------------------------------------------------------------
ModelConditionState = RUBBLE DOOR_1_CLOSING USER_1
Model = GBCASTGATE_UD3
End
TransitionState = TRANS_IntoRubbleU3
Animation = D4
AnimationName = GBCASTGATE_UD3.GBCASTGATE_UD3
AnimationMode = ONCE
AnimationBlendTime = 0
End
ParticleSysBone NONE FX_GondorCastleGateDestroy
End
AnimationState = RUBBLE DOOR_1_CLOSING USER_1
Flags = START_FRAME_LAST
StateName = STATE_Rubble
Animation = Death
AnimationName = GBCASTGATE_UD3.GBCASTGATE_UD3
AnimationMode = ONCE
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_None" or Prev == "STATE_Open" or Prev == "STATE_Closed" or Prev == "TRANS_Closed_To_Open" or Prev == "TRANS_Open_To_Closed"
then
; Only play the rubble anim if we havn't come from another rubble.
CurDrawableSetTransitionAnimState("TRANS_IntoRubbleU3")
end
EndScript
End
; Rubble open-------------------------------------------------------------------------
ModelConditionState = RUBBLE DOOR_1_CLOSING
Model = GBCASTGATE_D3
End
TransitionState = TRANS_IntoRubble3
Animation = D4
AnimationName = GBCASTGATE_D3.GBCASTGATE_D3
AnimationMode = ONCE
AnimationBlendTime = 0
End
ParticleSysBone NONE FX_GondorCastleGateDestroy
End
AnimationState = RUBBLE DOOR_1_CLOSING
Flags = START_FRAME_LAST
StateName = STATE_Rubble
Animation = Death
AnimationName = GBCASTGATE_D3.GBCASTGATE_D3
AnimationMode = ONCE
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_None" or Prev == "STATE_Open" or Prev == "STATE_Closed" or Prev == "TRANS_Closed_To_Open" or Prev == "TRANS_Open_To_Closed"
then
; Only play the rubble anim if we havn't come from another rubble.
CurDrawableSetTransitionAnimState("TRANS_IntoRubble3")
end
EndScript
End
AnimationState = DOOR_1_OPENING
StateName = STATE_Open
Animation = Open
AnimationName = GBCASTGATE.GBCASTGATE
AnimationMode = ONCE
AnimationBlendTime = 0
End
Flags = START_FRAME_LAST
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Closed" then CurDrawableSetTransitionAnimState("TRANS_Closed_To_Open") end
EndScript
End
TransitionState = TRANS_Closed_To_Open
Animation = Open
AnimationName = GBCASTGATE.GBCASTGATE
AnimationMode = ONCE
End
End
AnimationState = DOOR_1_CLOSING
StateName = STATE_Closed
Animation = Close
AnimationName = GBCASTGATE.GBCASTGATE
AnimationMode = ONCE_BACKWARDS
AnimationBlendTime = 0
End
Flags = START_FRAME_FIRST
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Open" then CurDrawableSetTransitionAnimState("TRANS_Open_To_Closed") end
EndScript
End
TransitionState = TRANS_Open_To_Closed
Animation = Open
AnimationName = GBCASTGATE.GBCASTGATE
AnimationMode = ONCE_BACKWARDS
End
Flags = START_FRAME_LAST
End
ModelConditionState = USER_1
Model = GBCastGate_U
End
End
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
VoiceSelect = GateSelect
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
VoiceSelectUnderConstruction = BuildingGoodVoiceSelectUnderConstruction
UnitSpecificSounds
UnderConstruction = BuildingConstructionLoop ; Built first time
; UnderRepairFromDamage = NoSound ; Repaired No animation on the building, so don't bother playing sound
UnderRepairFromRubble = BuildingConstructionLoop ; Repaired from completely destroyed (not used???)
End
CampnessValue = CAMPNESS_WALL
; ***DESIGN parameters ***
DisplayName = OBJECT:GBMgatedoor
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
KeepSelectableWhenDead = Yes
VisionRange = 400.0 ; Shroud clearing distance
ArmorSet
Conditions = None
Armor = CastleGateArmor
DamageFX = GateDamageFX
End
;ArmorSet
; Conditions = UNBESIEGEABLE
; Armor = CastleGateUnbesiegeableArmor
; DamageFX = None
;End
CommandSet = CastleGateCommandSet
; *** ENGINEERING Parameters ***
KindOf = STRUCTURE IMMOBILE SELECTABLE BLOCKING_GATE
RadarPriority = STRUCTURE
Body = ActiveBody ModuleTag_02
MaxHealth = GONDOR_CASTLE_DOOR_HEALTH
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = KeepObjectDie ModuleTag_IWantRubble
End
ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
MaxUpdateRangeCap = 800
AnimationSound = Sound: MinisTirithGateDie Animation:GBMgatedoorSKL.GBMgatedoorA3 Frames: 1
End
Behavior = TransitionDamageFX ModleTag_hideBustedDoors
PristineShowSubObject RBCASTDRR RBCASTDRL
PristineHideSubObject RBCASTDRR_D1 RBCASTDRR_D2 RBCASTDRL_D1 RBCASTDRL_D2
DamagedShowSubObject RBCASTDRR_D1 RBCASTDRL_D1
DamagedHideSubObject RBCASTDRR_D2 RBCASTDRL_D2 RBCASTDRR RBCASTDRL
ReallyDamagedShowSubObject RBCASTDRR_D2 RBCASTDRL_D2
ReallyDamagedHideSubObject RBCASTDRR_D1 RBCASTDRL_D1 RBCASTDRR RBCASTDRL
DamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BasicSevereScreenShake
ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BasicSevereScreenShake
RubbleFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_HelmsDeepGateRubble
End
Behavior = GateOpenAndCloseBehavior ModuleTag_GATE
ResetTimeInMilliseconds = 12200 ; important! this must be longer than the gates animation, ir it will twitch
OpenByDefault = Yes
PercentOpenForPathing = 50
SoundOpeningGateLoop = GateOpenStart
SoundClosingGateLoop = GateCloseStart
SoundFinishedOpeningGate = GateOpenEnd
SoundFinishedClosingGate = GateCloseEnd
TimeBeforePlayingOpenSound = 9500
TimeBeforePlayingClosedSound = 9500
;Proxy = Munkee
End
Behavior = GettingBuiltBehavior ModuleTag_GettingBuilt
SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound ; This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = BuildingConstructionLoop
SpawnTimer = -1.0 ; Negative means no 'autoheal'
RebuildTimeSeconds = 120 ;30
End
Behavior = AttributeModifierUpgrade ModuleTag_Reinforced
TriggeredBy = Upgrade_ReinforcedGate
AttributeModifier = ReinforcedGate_Bonus
CustomAnimAndDuration = AnimState:USER_1 AnimTime:0 ; - should define special upgrade model condition.
End
// New way -- ReinforcedGate is an attribute modifier that is included by NumenorStonework
Behavior = AttributeModifierUpgrade ModuleTag_ReinforcedNew
TriggeredBy = Upgrade_MenFortressNumenorStonework
AttributeModifier = ReinforcedGate_Bonus
CustomAnimAndDuration = AnimState:USER_1 AnimTime:0 ; - should define special upgrade model condition.
End
Behavior = CastleMemberBehavior ModuleTag_CMB
CountsForEvaCastleBreached = Yes
End
Geometry = BOX
GeometryMajorRadius = 16.0
GeometryMinorRadius = 72.0
GeometryHeight = 56.0
GeometryName = Closed
GeometryIsSmall = No
AdditionalGeometry = BOX
GeometryMajorRadius = 21.0
GeometryMinorRadius = 2.0
GeometryHeight = 56.0
GeometryOffset = X:10 Y:56 Z:0
GeometryName = OpenLeft
AdditionalGeometry = BOX
GeometryMajorRadius = 21.0
GeometryMinorRadius = 2.0
GeometryHeight = 56.0
GeometryOffset = X:10 Y:-56 Z:0
GeometryName = OpenRight
GeometryContactPoint = X:25 Y:-56 Z:0 Ram
GeometryContactPoint = X:12 Y:-56 Z:56 ; do
GeometryContactPoint = X:0 Y:-56 Z:0 ; kindly
GeometryContactPoint = X:0 Y:-25 Z:56 ; note the
GeometryContactPoint = X:0 Y: 0 Z:0 Ram ; butterfly
GeometryContactPoint = X:0 Y: 25 Z:56 ; symmetry
GeometryContactPoint = X:0 Y: 56 Z:0 ; please
GeometryContactPoint = X:12 Y: 56 Z:56 ; ta
GeometryContactPoint = X:25 Y: 56 Z:0 Ram
Shadow = SHADOW_VOLUME
End
;--------------------------------------------------------------------------------------
Object gateProxy
;ART---------------------
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = None
End
End
;DESIGN------------------
DisplayName = OBJECT:GBMgatedoor
Side = Civilian
EditorSorting = SYSTEM
VisionRange = 400.0 ; should match proxy
CommandSet = CastleGateCommandSet
;ENGINEERING-------------
KindOf = IMMOBILE UNATTACKABLE SELECTABLE INERT INERT_SHROUD_REVEALER
Behavior = GateProxyBehavior ModuleTag_GATE
End
Geometry = BOX
GeometryMajorRadius = 0.0
GeometryMinorRadius = 0.0
GeometryHeight = 36.0 ;should be close or same as the gate to which this is proxy
GeometryIsSmall = Yes
End
;Gondor Base Defence Foundation -- the area where faction rohan buildings can be built on
Object GondorBaseDefenceFoundation
SelectPortrait = BPGCamp_Plot
; *** ART Parameters ***
Scale = 0.7
Draw = W3DScriptedModelDraw ModuleTag_Draw2
DefaultModelConditionState
Model = OBBFoundationX
End
ModelConditionState = WORLD_BUILDER
Model = GBBtlTwrM
End
End
Draw = W3DFloorDraw ModuleTag_Draw
ModelName = GBFoundationM
End
;PlacementViewAngle = 0
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorBaseDefenseFoundation
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = 1
BuildTime = 5.0 ; in seconds
VisionRange = 160.0 ; Shroud clearing distance
ShroudClearingRange = 160
CommandSet = GondorBaseDefenceFoundationCommandSet
; *** AUDIO Parameters ***
VoiceSelect = Gui_PlotSelect2 ;Gui_PlotSelect
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = STRUCTURE SELECTABLE IMMOBILE BASE_FOUNDATION BASE_DEFENSE_FOUNDATION UNATTACKABLE MP_COUNT_FOR_VICTORY NO_COLLIDE DO_NOT_CLASSIFY
Behavior = FoundationAIUpdate ModuleTag_foundationAI
End
Behavior = CastleMemberBehavior ModuleTag_CMB
End
Body = ImmortalBody ModuleTag_05
MaxHealth = 15000.0
End
Geometry = BOX
GeometryMajorRadius = 24.0
GeometryMinorRadius = 24.0
GeometryHeight = 0.8
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
;------------------------------------------------------------
Object GondorCampKeepSymbioticBase
SelectPortrait = BPGCamp
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBCCenter_A
; ParticleSysBone = glowbone01 TorchGlow
; ParticleSysBone = glowbone02 furnaceSmoke
End
IdleAnimationState
Animation = Idle
AnimationName = GBCCenter_A.GBCCenter_A
AnimationMode = MANUAL
AnimationBlendTime = 0
End
Flags = START_FRAME_LAST
BeginScript
; CurDrawableShowSubObject("FIRE02")
EndScript
End
;------------Build Up States
ModelConditionState = ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
Model = GBCCenter_A
; ParticleSysBone = NONE BuildingDoughnutCloud
ParticleSysBone = NONE BuildingContructDust
End
AnimationState = ACTIVELY_BEING_CONSTRUCTED
Animation
AnimationName = GBCCenter_A.GBCCenter_A
AnimationMode = MANUAL
End
BeginScript
; CurDrawableHideSubObject("FIRE02")
CurDrawablePlaySound("GondorBarracksBeginConstruction")
EndScript
End
;------------Build Up States
ModelConditionState = BASE_BUILD
Model = GBCCenter_A
; ParticleSysBone = NONE BuildingDoughnutCloud
ParticleSysBone = NONE BuildingContructDust
End
AnimationState = BASE_BUILD
Animation
AnimationName = GBCCenter_A.GBCCenter_A
AnimationMode = ONCE
AnimationBlendTime = 0
AnimationSpeedFactorRange = 2.0 2.0 ; 300 frame anim, but need to shrink down to 5 seconds
End
BeginScript
; CurDrawableHideSubObject("FIRE02")
EndScript
End
AnimationState = JUST_BUILT
Animation
AnimationName = GBCCenter_A.GBCCenter_A
AnimationMode = MANUAL
AnimationBlendTime = 0
End
Flags = START_FRAME_FIRST
BeginScript
; CurDrawableHideSubObject("FIRE02")
EndScript
End
ModelConditionState = DAMAGED
Model = GBCCenter_D1
ParticleSysBone dustbone01 TrebuchetImpactDebris
; ParticleSysBone = glowbone01 TorchGlow
; ParticleSysBone = glowbone02 furnaceSmoke
End
AnimationState = DAMAGED
EnteringStateFX = FX_BuildingDamaged
End
ModelConditionState = REALLYDAMAGED
Model = GBCCenter_D2
ParticleSysBone = glowbone02 TrebuchetImpactDebris
ParticleSysBone = glowbone01 Explosion5
End
AnimationState = REALLYDAMAGED
EnteringStateFX = FX_BuildingReallyDamaged
End
ModelConditionState = RUBBLE
Model = GBCCenter_D2
ParticleSysBone dustbone01 TrebuchetImpactDebris
ParticleSysBone = glowbone01 Explosion5
ParticleSysBone = glowbone02 BuildingChunkDebris
End
AnimationState = RUBBLE
End
ModelConditionState = POST_RUBBLE
Model = GBGenRubble
ParticleSysBone NONE SmokeBuildingMediumRubble
End
AnimationState = POST_RUBBLE
End
ModelConditionState = POST_COLLAPSE
Model = GBGenRubble
ParticleSysBone NONE SmokeBuildingMediumRubble
End
AnimationState = POST_COLLAPSE
End
End
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
VoiceSelect = GondorCitadelSelect
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
VoiceSelectUnderConstruction = BuildingGoodVoiceSelectUnderConstruction
UnitSpecificSounds
UnderConstruction = BuildingConstructionLoop ; Built first time
; UnderRepairFromDamage = NoSound ; Repaired No animation on the building, so don't bother playing sound
UnderRepairFromRubble = BuildingConstructionLoop ; Repaired from completely destroyed (not used???)
End
EvaEventDieOwner = CitadelDie
CampnessValue = CAMPNESS_WALL
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCampKeep
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = 1000
BuildTime = 20.0 ; in seconds
CommandSet = GenericKeepCommandSet
ArmorSet
Conditions = None
Armor = StructureArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = STRUCTURE SELECTABLE IMMOBILE CASTLE_KEEP MP_COUNT_FOR_VICTORY AUTO_RALLYPOINT
RadarPriority = STRUCTURE
Body = ActiveBody ModuleTag_ActiveBody
MaxHealth = 5000.0
End
Behavior = GettingBuiltBehavior ModuleTag_04
WorkerName = GondorWorkerNoSelect
SpawnTimer = 15
RebuildWhenDead = Yes
; SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
;SelfRepairFromDamageLoop = NoSound ; This doesn't cause an animation, so don't bother playing a sound
;SelfRepairFromRubbleLoop = BuildingConstructionLoop
End
Behavior = CastleMemberBehavior ModuleTag_CMB
BeingBuiltSound = BuildingConstructionLoop
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
Behavior = KeepObjectDie ModuleTag_IWantRubble
End
Behavior = StructureCollapseUpdate ModuleTag_06
MinCollapseDelay = 000
MaxCollapseDelay = 000
CollapseDamping = .5
MaxShudder = 0.6
MinBurstDelay = 250
MaxBurstDelay = 800
BigBurstFrequency = 4
FXList = INITIAL FX_StructureMediumCollapse
End
Behavior = RubbleRiseUpdate ModuleTag_07
MinRubbleRiseDelay = 000
MaxRubbleRiseDelay = 000
;RubbleRiseDamping = .5
RubbleHeight = 4.0
MaxShudder = 0.6
MinBurstDelay = 250
MaxBurstDelay = 800
BigBurstFrequency = 4
FXList = INITIAL FX_StructureMediumCollapse
End
Geometry = CYLINDER
GeometryMajorRadius = 16.0
GeometryMinorRadius = 16.0
GeometryHeight = 88.0
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
End
ChildObject GondorCampKeepSymbioticA GondorCampKeepSymbioticBase
Body = ActiveBody ModuleTag_ActiveBody
MaxHealth = 5000.0
End
End
ChildObject GondorCampKeepSymbioticB GondorCampKeepSymbioticBase
Body = SymbioticStructuresBody ModuleTag_SymbioticBody
Symbiote = KeepLeft
End
End
;------------------------------------------------------------------------------
Object CastleBookEnd
SelectPortrait = BRCastleWall
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_01
OkToChangeModelColor = Yes
WallBoundsMesh = P1
DefaultModelConditionState
Model = GBMinwallBE
End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWall
Side = Men
EditorSorting = STRUCTURE
; Browser = CINEMATICS UNIT
VisionRange = 0.0 ; Shroud clearing distance
ShroudClearingRange = 0
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
CampnessValue = CAMPNESS_WALL
; *** ENGINEERING Parameters ***
KindOf = STRUCTURE IMMOBILE WALK_ON_TOP_OF_WALL NOT_AUTOACQUIRABLE IGNORE_FOR_VICTORY NEVER_CULL_FOR_MP
RadarPriority = NOT_ON_RADAR
KeepSelectableWhenDead = Yes
Body = StructureBody ModuleTag_03
MaxHealth = ROHAN_CASTLE_WALL_HEALTH
End
; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are
; never truly destroyed, even when reduced to zero health. Also note that garrisonable
; buildings automatically stick around because GarrisonContain has it's own DieModule
; Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
; DestructionDelay = 5000
; End
Geometry = BOX
GeometryMajorRadius = 35.0
GeometryMinorRadius = 19.0
GeometryHeight = 7.0
GeometryIsSmall = No
;GeometryRotationAnchorOffset = X:1037.871 Y:0
Shadow = SHADOW_VOLUME
End
//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
//;; ;;
//;; CASTLE WALL PIECES FOR THE NEW WALL BUILD SYSTEM ;;
//;; ;;
//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Object GondorCastleWallSegment
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBWallSeg
End
WallBoundsMesh = P1
; IdleAnimationState
; Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
; Animation = ReallyDamagedanimation
; AnimationName = GBWallrampart.GBWallrampart
; AnimationMode = LOOP
; End
; StateName = STATE_None
; End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWallSegment
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = GONDOR_WALL_SEGMENT_COST
BuildTime = 10.0 ; in seconds
VisionRange = 160.0 ; Shroud clearing distance
ShroudClearingRange = 160
CommandSet = MenWallUpgradeNodeCommandSet
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
CampnessValue = CAMPNESS_WALL
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE WALL_SEGMENT SCALEABLE_WALL MADE_OF_STONE WALK_ON_TOP_OF_WALL
ThreatBreakdown GondorCastleWallSegment_DetailedThreat
AIKindOf = WALL
End
Behavior = GettingBuiltBehavior ModuleTag_04
RebuildTimeSeconds = 30
SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound ; This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = BuildingConstructionLoop
End
Body = StructureBody ModuleTag_05
MaxHealth = 1500.0
End
// These should always appear together on wall segments
Behavior = KeepObjectDie ModuleTag_IWantRubble
DeathTypes = ALL -SUICIDED
End
Behavior = SlowDeathBehavior ModuleTag_SlowDeath
DeathTypes = NONE +SUICIDED
DestructionDelay = 5000
End
// These should always appear together on wall segments
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Hub
ReplaceWith = GondorCastleWallHub
TriggeredBy = Upgrade_MenWallHub
ConflictsWith = Upgrade_MenWallRegularGate Upgrade_MenWallPosternGate Upgrade_MenWallTower Upgrade_MenWallTrebuchet
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Gate
ReplaceWith = MenWallGate
TriggeredBy = Upgrade_MenWallRegularGate
ConflictsWith = Upgrade_MenWallHub Upgrade_MenWallPosternGate Upgrade_MenWallTower Upgrade_MenWallTrebuchet
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_PosternGate
ReplaceWith = MenWallPosternGate
TriggeredBy = Upgrade_MenWallPosternGate
ConflictsWith = Upgrade_MenWallHub Upgrade_MenWallRegularGate Upgrade_MenWallTower Upgrade_MenWallTrebuchet
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Tower
ReplaceWith = GondorCastleWallTower
TriggeredBy = Upgrade_MenWallTower
ConflictsWith = Upgrade_MenWallHub Upgrade_MenWallRegularGate Upgrade_MenWallPosternGate Upgrade_MenWallTrebuchet
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Trebuchet
ReplaceWith = GondorCastleWallTrebuchet
TriggeredBy = Upgrade_MenWallTrebuchet
ConflictsWith = Upgrade_MenWallHub Upgrade_MenWallRegularGate Upgrade_MenWallPosternGate Upgrade_MenWallTower
End
Behavior = ProductionUpdate ModuleTag_RequiredForUpgradeProduction
End
Geometry = BOX
GeometryMajorRadius = 25.0
GeometryMinorRadius = 20.0 ; must be a multiple of 20
GeometryHeight = 50
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
Object MenWallRamp
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBWallRamp
End
WallBoundsMesh = P1
RampMesh1 = R1
RampMesh2 = R2
IdleAnimationState
Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
Animation = ReallyDamagedanimation
AnimationName = GBWallrampart.GBWallrampart
AnimationMode = LOOP
End
StateName = STATE_None
End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWallSegment
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = GONDOR_WALL_SEGMENT_COST
BuildTime = 10.0 ; in seconds
VisionRange = 160.0 ; Shroud clearing distance
ShroudClearingRange = 160
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
CampnessValue = CAMPNESS_WALL
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE WALL_SEGMENT SCALEABLE_WALL MADE_OF_STONE WALK_ON_TOP_OF_WALL
ThreatBreakdown MenWallRamp_DetailedThreat
AIKindOf = WALL
End
Behavior = GettingBuiltBehavior ModuleTag_04
RebuildTimeSeconds = 30
SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound ; This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = BuildingConstructionLoop
End
Body = StructureBody ModuleTag_05
MaxHealth = 1500.0
End
// These should always appear together on wall segments
Behavior = KeepObjectDie ModuleTag_IWantRubble
DeathTypes = ALL -SUICIDED
End
Behavior = SlowDeathBehavior ModuleTag_SlowDeath
DeathTypes = NONE +SUICIDED
DestructionDelay = 5000
End
// These should always appear together on wall segments
Geometry = BOX
GeometryMajorRadius = 25.0
GeometryMinorRadius = 60.0 ; must be a multiple of 20
GeometryHeight = 50
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
;---------------------------------------------
Object MenWallGate
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBWallGate
End
; WallBoundsMesh = P1
RampMesh1 = R1
RampMesh2 = R2
IdleAnimationState
Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
Animation = ReallyDamagedanimation
AnimationName = GBWallrampart.GBWallrampart
AnimationMode = LOOP
End
StateName = STATE_None
End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWallSegment
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = 30
BuildTime = 5.0 ; in seconds
VisionRange = 160.0 ; Shroud clearing distance
ShroudClearingRange = 160
CommandSet = CastleGateCommandSet
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
CampnessValue = CAMPNESS_WALL
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE WALL_HUB MADE_OF_STONE BLOCKING_GATE WALL_GATE
Behavior = GettingBuiltBehavior ModuleTag_04
UseSpawnTimerWithoutWorker = Yes
SpawnTimer = DEFAULT_STRUCTURE_HEALDELAY
;RebuildTimeSeconds = 30
SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound ; This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = BuildingConstructionLoop
End
Body = StructureBody ModuleTag_05
MaxHealth = 1500.0
End
Behavior = DestroyDie ModuleTag_07
;nothing
End
Behavior = GateOpenAndCloseBehavior ModuleTag_GATE
ResetTimeInMilliseconds = 3000 ;important! this must be longer than the gates animation, ir it will twitch
OpenByDefault = No
PercentOpenForPathing = 50
SoundOpeningGateLoop = GateOpenStart
SoundClosingGateLoop = GateCloseStart
SoundFinishedOpeningGate = GateOpenEnd
SoundFinishedClosingGate = GateCloseEnd
TimeBeforePlayingOpenSound = 9500
TimeBeforePlayingClosedSound = 9500
End
Behavior = FakePathfindPortalBehaviour ModuleTag_FAKEPATHFIND
AllowEnemies = No
AllowNonSkirmishAIUnits = No
End
// New way -- ReinforcedGate is an attribute modifier that is included by NumenorStonework
Behavior = AttributeModifierUpgrade ModuleTag_ReinforcedNew
TriggeredBy = Upgrade_MenFortressNumenorStonework
AttributeModifier = ReinforcedGate_Bonus
End
Behavior = AIGateUpdate ModuleTage_AIGateUpdate
TriggerWidthX = 200.0
TriggerWidthY = 100.0
End
GeometryIsSmall = No
; Main
AdditionalGeometry = BOX
GeometryName = "Closed"
GeometryMajorRadius = 25.0
GeometryMinorRadius = 95.0
GeometryHeight = 50
; Left open
AdditionalGeometry = BOX
GeometryName = "OpenLeft"
GeometryMajorRadius = 25.0
GeometryMinorRadius = 24.0
GeometryHeight = 50
GeometryOffset = X:0 Y:-70 Z:0
; Right open
AdditionalGeometry = BOX
GeometryName = "OpenRight"
GeometryMajorRadius = 25.0
GeometryMinorRadius = 24.0
GeometryHeight = 50
GeometryOffset = X:0 Y:70 Z:0
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
;---------------------------------------------
Object MenWallPosternGate
; *** ART Parameters ***
SelectPortrait = BPGWall_Wall
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
ExtraPublicBone = Post01
ExtraPublicBone = Post02
ExtraPublicBone = Post03
ExtraPublicBone = Post04
DefaultModelConditionState
Model = GBWallPG
End
WallBoundsMesh = P1
IdleAnimationState
Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
Animation = ReallyDamagedanimation
AnimationName = GBWallrampart.GBWallrampart
AnimationMode = LOOP
End
StateName = STATE_None
End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWallSegment
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = 30
BuildTime = 5.0 ; in seconds
VisionRange = 160.0 ; Shroud clearing distance
ShroudClearingRange = 160
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
CampnessValue = CAMPNESS_WALL
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE WALL_HUB MADE_OF_STONE WALK_ON_TOP_OF_WALL WALL_GATE
Behavior = GettingBuiltBehavior ModuleTag_04
UseSpawnTimerWithoutWorker = Yes
SpawnTimer = DEFAULT_STRUCTURE_HEALDELAY
;RebuildTimeSeconds = 30
SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound ; This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = BuildingConstructionLoop
End
Body = StructureBody ModuleTag_05
MaxHealth = 1500.0
End
Behavior = DestroyDie ModuleTag_07
;nothing
End
Behavior = DynamicPortalBehaviour PosternGatePortal
ActivationDelaySeconds = 0.0
GenerateNow = Yes
ObjectFilter = POSTERNGATE_ALLOWABLE_OBJECTFILTER
BonePrefix = Post
NumberOfBones = 4
WayPoint = Index:0 Type:Walk ; 0
WayPoint = Index:1 Type:Walk ; 1
WayPoint = Index:2 Type:Walk ; 2
WayPoint = Index:3 Type:Walk ; 3
WayPoint = Index:2 Type:Walk ; 4
WayPoint = Index:1 Type:Walk ; 5
Link = From:0 Via:4 Via:5 To:3
Link = From:3 Via:1 Via:2 To:0
End
GeometryIsSmall = No
Geometry = BOX
GeometryMajorRadius = 25.0
GeometryMinorRadius = 98.0 ; must be a multiple of 20
GeometryHeight = 50
AdditionalGeometry = CYLINDER
GeometryMajorRadius = 40.0
GeometryMinorRadius = 40.0
GeometryHeight = 50.0
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
;---------------------------------------------
Object GondorCastleWallTower
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
ExtraPublicBone = Arrow_01
ExtraPublicBone = Arrow_02
ExtraPublicBone = Arrow_03
ExtraPublicBone = Arrow_04
ExtraPublicBone = Arrow_05
ExtraPublicBone = Arrow_06
ExtraPublicBone = Arrow_07
ExtraPublicBone = Arrow_08
ExtraPublicBone = Arrow_09
ExtraPublicBone = Arrow_10
ExtraPublicBone = Arrow_11
ExtraPublicBone = Arrow_12
DefaultModelConditionState
Model = GBWallTwr
End
WallBoundsMesh = P1
; RampMesh1 = R1
; RampMesh2 = R2
IdleAnimationState
Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
Animation = ReallyDamagedanimation
AnimationName = GBWallrampart.GBWallrampart
AnimationMode = LOOP
End
StateName = STATE_None
End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWallSegment
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = MEN_WALLTOWER_SMALL_BUILDCOST
BuildTime = MEN_WALLTOWER_SMALL_BUILDTIME ; in seconds
VisionRange = VISION_BASE_DEFENSE ; Shroud clearing distance
ShroudClearingRange = SHROUD_CLEAR_BASE_DEFENSE
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
CampnessValue = CAMPNESS_WALL
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE WALL_HUB MADE_OF_STONE CAN_ATTACK WALK_ON_TOP_OF_WALL
ThreatBreakdown GondorCastleWallTower_DetailedThreat
AIKindOf = WALL
End
WeaponSet
Weapon = PRIMARY CastleWallUpgradeBow
Conditions = None
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
End
Behavior = AIUpdateInterface ModuleTag_SoWeCanUseWeapon
AutoAcquireEnemiesWhenIdle = Yes
MoodAttackCheckRate = 250
End
Behavior = GettingBuiltBehavior ModuleTag_04
UseSpawnTimerWithoutWorker = Yes
SpawnTimer = DEFAULT_STRUCTURE_HEALDELAY
;RebuildTimeSeconds = 30
SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound ; This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = BuildingConstructionLoop
End
Body = StructureBody ModuleTag_05
MaxHealth = 1500.0
End
Behavior = DestroyDie ModuleTag_07
;nothing
End
GeometryIsSmall = No
Geometry = BOX
GeometryMajorRadius = 25.0
GeometryMinorRadius = 98.0 ; must be a multiple of 20
GeometryHeight = 50
AdditionalGeometry = CYLINDER
GeometryMajorRadius = 40.0
GeometryMinorRadius = 40.0
GeometryHeight = 50.0
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
;---------------------------------------------
Object GondorCastleWallTrebuchet
// *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
WallBoundsMesh = P1
DefaultModelConditionState
Model = GBWallTreb
End
End
// ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWallSegment
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = 30
BuildTime = 5.0 // in seconds
VisionRange = 160.0 // Shroud clearing distance
ShroudClearingRange = 160
CommandSet = SellableCommandSet
// *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
CampnessValue = CAMPNESS_WALL
// *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE WALL_HUB MADE_OF_STONE WALK_ON_TOP_OF_WALL
Behavior = GettingBuiltBehavior ModuleTag_04
UseSpawnTimerWithoutWorker = Yes
SpawnTimer = DEFAULT_STRUCTURE_HEALDELAY
;RebuildTimeSeconds = 30
SelfBuildingLoop = BuildingConstructionLoop // Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound // This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = BuildingConstructionLoop
End
Behavior = OCLUpdate MakeTheTreb
OCL = OCL_TrebuchetUpgrade
MinDelay = 1500
MaxDelay = 1500
Amount = 1
End
Body = StructureBody ModuleTag_05
MaxHealth = 1500.0
End
Behavior = DestroyDie ModuleTag_07
;nothing
End
GeometryIsSmall = No
Geometry = BOX
GeometryMajorRadius = 25.0
GeometryMinorRadius = 98.0 ; must be a multiple of 20
GeometryHeight = 50
AdditionalGeometry = CYLINDER
GeometryMajorRadius = 40.0
GeometryMinorRadius = 40.0
GeometryHeight = 50.0
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
;---------------------------------------------
Object GondorCastleWallHub
Scale = 1.2
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBWallrampart
End
WallBoundsMesh = P1
; RampMesh1 = R1
; RampMesh2 = R2
IdleAnimationState
Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
Animation = ReallyDamagedanimation
AnimationName = GBWallrampart.GBWallrampart
AnimationMode = LOOP
End
StateName = STATE_None
End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWallHub
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = GONDOR_WALL_HUB_COST
BuildTime = MEN_WALLHUB_SMALL_BUILDTIME ; in seconds
VisionRange = 160.0 ; Shroud clearing distance
ShroudClearingRange = 160
CommandSet = GondorCastleWallHubCommandSet
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
CampnessValue = CAMPNESS_WALL
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE WALL_HUB MADE_OF_STONE WALK_ON_TOP_OF_WALL
ThreatBreakdown GondorCastleWallHub_DetailedThreat
AIKindOf = WALL
End
Behavior = GettingBuiltBehavior ModuleTag_04
RebuildTimeSeconds = 30
SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound ; This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = BuildingConstructionLoop
End
Body = StructureBody ModuleTag_05
MaxHealth = 1500.0
End
Behavior = DestroyDie ModuleTag_07
;nothing
End
Behavior = WallHubBehavior ModuleTag_WALL_HUB
Options = OPTION_ONE
MaxBuildoutDistance = MEN_FORTRESS_WALL_EFFECTIVE_RADIUS
;;This defines the pattern built on flat terrain
SegmentTemplateName = GondorCastleWallSegment
SegmentTemplateName = GondorCastleWallSegment
SegmentTemplateName = GondorCastleWallSegment
SegmentTemplateName = GondorCastleWallSegment
SegmentTemplateName = GondorCastleWallSegment
SegmentTemplateName = GondorCastleWallSegment
SegmentTemplateName = GondorCastleWallSegment
SegmentTemplateName = GondorCastleWallSegment
SegmentTemplateName = GondorCastleWallHub
HubCapTemplateName = GondorCastleWallHub
DefaultSegmentTemplateName = GondorCastleWallSegment
;CliffCapTemplateName = [NAME]
;ShoreCapTemplateName = [NAME]
;BorderCapTemplateName = [NAME]
;ElevatedSegmentTemplateName = [NAME]
End
Behavior = WallHubBehavior ModuleTag_Build_A_Ramp
Options = OPTION_TWO
;;This defines the pattern built on flat terrain
SegmentTemplateName = GondorCastleWallSegment
MaxBuildoutDistance = MEN_FORTRESS_WALL_EFFECTIVE_RADIUS
HubCapTemplateName = MenWallRamp
DefaultSegmentTemplateName = GondorCastleWallSegment
End
Behavior = WallHubBehavior ModuleTag_Build_A_NARROW_WALL
Options = OPTION_THREE
MaxBuildoutDistance = MEN_FORTRESS_WALL_EFFECTIVE_RADIUS
SegmentTemplateName = MenWallSegmentSmall
HubCapTemplateName = MenWallHubSmall
DefaultSegmentTemplateName = MenWallSegmentSmall
;CliffCapTemplateName = [NAME]
;ShoreCapTemplateName = [NAME]
;BorderCapTemplateName = [NAME]
;ElevatedSegmentTemplateName = [NAME]
End
Geometry = CYLINDER
GeometryMajorRadius = 50.0
GeometryMinorRadius = 50.0
GeometryHeight = 50.0
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
;---------------------------------------------------------
Object GondorCastleWallUpgradeNode
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBWallUpgrd
End
WallBoundsMesh = P1
RampMesh1 = R1
RampMesh2 = R2
IdleAnimationState
Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
Animation = ReallyDamagedanimation
AnimationName = GBWallrampart.GBWallrampart
AnimationMode = LOOP
End
StateName = STATE_None
End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWallUpgradeNode
Side = Gondor
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = 50
BuildTime = 20.0 ; in seconds
VisionRange = 160.0 ; Shroud clearing distance
ShroudClearingRange = 160
CommandSet = MenWallUpgradeNodeCommandSet
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
CampnessValue = CAMPNESS_WALL
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE WALL_SEGMENT SCALEABLE_WALL MADE_OF_STONE WALK_ON_TOP_OF_WALL
Behavior = GettingBuiltBehavior ModuleTag_04
RebuildTimeSeconds = 30
SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound ; This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = BuildingConstructionLoop
UseSpawnTimerWithoutWorker = Yes
SpawnTimer = DEFAULT_STRUCTURE_HEALDELAY
End
Body = StructureBody ModuleTag_05
MaxHealth = 1500.0
End
// These should always appear together on wall segments
Behavior = KeepObjectDie ModuleTag_IWantRubble
DeathTypes = ALL -SUICIDED
End
Behavior = SlowDeathBehavior ModuleTag_SlowDeath
DeathTypes = NONE +SUICIDED
DestructionDelay = 5000
End
// These should always appear together on wall segments
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Hub
ReplaceWith = GondorCastleWallHub
TriggeredBy = Upgrade_MenWallHub
ConflictsWith = Upgrade_MenWallRegularGate Upgrade_MenWallPosternGate Upgrade_MenWallTower Upgrade_MenWallTrebuchet
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Gate
ReplaceWith = MenWallGate
TriggeredBy = Upgrade_MenWallRegularGate
ConflictsWith = Upgrade_MenWallHub Upgrade_MenWallPosternGate Upgrade_MenWallTower Upgrade_MenWallTrebuchet
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_PosternGate
ReplaceWith = MenWallPosternGate
TriggeredBy = Upgrade_MenWallPosternGate
ConflictsWith = Upgrade_MenWallHub Upgrade_MenWallRegularGate Upgrade_MenWallTower Upgrade_MenWallTrebuchet
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Tower
ReplaceWith = GondorCastleWallTower
TriggeredBy = Upgrade_MenWallTower
ConflictsWith = Upgrade_MenWallHub Upgrade_MenWallRegularGate Upgrade_MenWallPosternGate Upgrade_MenWallTrebuchet
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Trebuchet
ReplaceWith = GondorCastleWallTrebuchet
TriggeredBy = Upgrade_MenWallTrebuchet
ConflictsWith = Upgrade_MenWallHub Upgrade_MenWallRegularGate Upgrade_MenWallPosternGate Upgrade_MenWallTower
End
Behavior = ProductionUpdate ModuleTag_RequiredForUpgradeProduction
End
Geometry = BOX
GeometryMajorRadius = 25.0
GeometryMinorRadius = 98.0 ; must be a multiple of 20
GeometryHeight = 50
AdditionalGeometry = CYLINDER
GeometryMajorRadius = 40.0
GeometryMinorRadius = 40.0
GeometryHeight = 50.0
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
//-------------------AND NOW THE SMALL WALL PIECES ------------------------
Object MenWallSegmentSmall
SelectPortrait = BPGWall_Wall
//ButtonImage = BGWall_Wall
// *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBWallN
End
ModelConditionState = SNOW BUILD_PLACEMENT_CURSOR
Model = GBWallN_CUR
Texture = GBWall.tga GBWall_snow.tga
End
ModelConditionState = BUILD_PLACEMENT_CURSOR
Model = GBWallN_CUR
End
IdleAnimationState
; Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
; Animation = ReallyDamagedanimation
; AnimationName = GBWallrampart.GBWallrampart
; AnimationMode = LOOP
; End
; StateName = STATE_None
BeginScript
CurDrawableShowSubObject("ModuleTag_DrawFloor")
EndScript
End
//------------ New Build Up States coming soon.
ModelConditionState = SNOW AWAITING_CONSTRUCTION
Model = GBWallN_A
Texture = GBWall.tga GBWall_snow.tga
End
ModelConditionState = AWAITING_CONSTRUCTION
Model = GBWallN_A
End
AnimationState = AWAITING_CONSTRUCTION
Animation = GBWallN_A
AnimationName = GBWallN_A.GBWallN_A
AnimationMode = MANUAL
AnimationBlendTime = 0
End
Flags = START_FRAME_FIRST
BeginScript
CurDrawableHideSubObject("ModuleTag_DrawFloor")
EndScript
End
ModelConditionState = UPGRADE_NUMENOR_STONEWORK ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
Model = GBWallN_A
Texture = GBWall.tga GBFortress1_U.tga
End
ModelConditionState = SNOW ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
Model = GBWallN_A
Texture = GBWall.tga GBWall_snow.tga
End
ModelConditionState = ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
Model = GBWallN_A
ParticleSysBone = NONE WallConstructDust FollowBone:Yes
End
AnimationState = ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
Animation = GBWallN_A
AnimationName = GBWallN_A.GBWallN_A
AnimationMode = MANUAL
AnimationBlendTime = 0
End
Flags = START_FRAME_FIRST
StateName = BeingConstructed
BeginScript
CurDrawableHideSubObject("ModuleTag_DrawFloor")
EndScript
End
ModelConditionState = DAMAGED
Model = GBWallN_D1
End
AnimationState = DAMAGED
Animation = DamagedAnimation
AnimationName = GBWallN_D1.GBWallN_D1
AnimationMode = ONCE
End
EnteringStateFX = FX_WallDamaged
End
ModelConditionState = REALLYDAMAGED
Model = GBWallN_D2
End
AnimationState = REALLYDAMAGED
Animation = DamagedAnimation
AnimationName = GBWallN_D2.GBWallN_D2
AnimationMode = ONCE
End
EnteringStateFX = FX_WallDamaged
End
ModelConditionState = COLLAPSING
Model = GBWallN_D3
End
AnimationState = COLLAPSING
Animation = RubbleAnimation
AnimationName = GBWallN_D3.GBWallN_D3
AnimationMode = ONCE
End
ParticleSysBone NONE WallDestructionDust
EnteringStateFX = FX_StructureMediumCollapse
End
ModelConditionState = RUBBLE
Model = None ;GBWall_Rubble
End
AnimationState = RUBBLE
BeginScript
CurDrawableHideSubObject("ModuleTag_DrawFloor")
EndScript
End
ModelConditionState = POST_RUBBLE
Model = None ;GBWall_Rubble
End
ModelConditionState = POST_COLLAPSE
Model = None
End
ModelConditionState = UPGRADE_NUMENOR_STONEWORK
Model = GBWallN
Texture = GBWall.tga GBFortress1_U.tga
End
ModelConditionState = SNOW
Model = GBWallN
Texture = GBWall.tga GBWall_snow.tga
End
End
Draw = W3DScriptedModelDraw ModuleTag_Draw_Rubble
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = None
End
ModelConditionState = COLLAPSING
Model = GBWall_Rubble
End
ModelConditionState = RUBBLE
Model = GBWall_Rubble
End
ModelConditionState = POST_RUBBLE
Model = GBWall_Rubble
End
ModelConditionState = POST_COLLAPSE
Model = None
End
End
Draw = W3DFloorDraw ModuleTag_DrawFloor
//StaticModelLODMode = yes // Will append M or L to the skin name depending on GameLOD
ModelName = GBWallN_Bib
WeatherTexture = SNOWY GBWall_Bib_Snow.tga
End
// ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWallSegment
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
CommandSet = MenWallSegmentCommandSet
ArmorSet
Conditions = None
Armor = MenWallArmor
DamageFX = None
End
BuildCost = MEN_WALLSEGMENT_SMALL_BUILDCOST
BuildTime = MEN_WALLSEGMENT_SMALL_BUILDTIME
VisionRange = MEN_WALLSEGMENT_SMALL_VISION_RANGE
ShroudClearingRange = MEN_WALLSEGMENT_SMALL_SHROUD_CLEAR
// *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
VoiceSelect = Gui_PlotSelect2
VoiceSelectUnderConstruction = BuildingGoodVoiceSelectUnderConstruction
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
UnitSpecificSounds
UnderConstruction = WallConstructionLoop ;Built first time
; UnderRepairFromDamage = NoSound ; Repaired No animation on the building, so don't bother playing sound
UnderRepairFromRubble = WallConstructionLoop ;Repaired from completely destroyed (not used???)
End
CampnessValue = CAMPNESS_WALL
// *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE WALL_SEGMENT DEFENSIVE_WALL SCALEABLE_WALL MADE_OF_STONE CAN_CAST_REFLECTIONS HAS_HEALTH_BAR
ThreatBreakdown MenWallSegmentSmall_DetailedThreat
AIKindOf = WALL
End
//This is important to let the user select the rubble to begin self repair
KeepSelectableWhenDead = Yes
Behavior = GettingBuiltBehavior ModuleTag_04
SelfBuildingLoop = WallConstructionLoop // Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound // This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = WallConstructionLoop
RebuildTimeSeconds = MEN_WALLSEGMENT_SMALL_BUILDTIME
UseSpawnTimerWithoutWorker = Yes
SpawnTimer = DEFAULT_STRUCTURE_HEALDELAY
End
Body = StructureBody ModuleTag_05
MaxHealth = MEN_WALLSEGMENT_SMALL_HEALTH
End
// These should always appear together on wall segments
Behavior = KeepObjectDie ModuleTag_IWantRubble
DeathTypes = ALL -SUICIDED
End
Behavior = SlowDeathBehavior ModuleTag_SlowDeath
DeathTypes = NONE +SUICIDED
DestructionDelay = 5000
End
// These should always appear together on wall segments
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Hub
ReplaceWith = MenWallHubSmall
TriggeredBy = Upgrade_MenWallHub
ConflictsWith = Upgrade_MenWallRegularGate Upgrade_MenWallPosternGate Upgrade_MenWallTower Upgrade_MenWallTrebuchet
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Gate
ReplaceWith = MenWallGateSmall
TriggeredBy = Upgrade_MenWallRegularGate
ConflictsWith = Upgrade_MenWallHub Upgrade_MenWallPosternGate Upgrade_MenWallTower Upgrade_MenWallTrebuchet
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_PosternGate
ReplaceWith = MenWallPosternGateSmall
TriggeredBy = Upgrade_MenWallPosternGate
ConflictsWith = Upgrade_MenWallHub Upgrade_MenWallRegularGate Upgrade_MenWallTower Upgrade_MenWallTrebuchet
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Tower
ReplaceWith = MenWallTowerSmall
TriggeredBy = Upgrade_MenWallTower
ConflictsWith = Upgrade_MenWallHub Upgrade_MenWallRegularGate Upgrade_MenWallPosternGate Upgrade_MenWallTrebuchet
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Trebuchet
ReplaceWith = MenWallTrebuchetSmall
TriggeredBy = Upgrade_MenWallTrebuchet
ConflictsWith = Upgrade_MenWallHub Upgrade_MenWallRegularGate Upgrade_MenWallPosternGate Upgrade_MenWallTower
End
Behavior = ProductionUpdate ModuleTag_RequiredForUpgradeProduction
End
Behavior = InheritUpgradeCreate ModuleTag_InheritNumenorStonework
Radius = MEN_FORTRESS_WALL_EFFECTIVE_RADIUS
Upgrade = Upgrade_MenFortressNumenorStonework
ObjectFilter = ANY +MenFortressCitadel
End
Behavior = AttributeModifierUpgrade ModuleTag_Reinforced
TriggeredBy = Upgrade_MenFortressNumenorStonework
AttributeModifier = NumenorStoneworkKeep_Bonus
CustomAnimAndDuration = AnimState:UPGRADE_NUMENOR_STONEWORK AnimTime:0
End
Behavior = ModelConditionUpgrade ModuleTag_ShowTheStones
TriggeredBy = Upgrade_MenFortressNumenorStonework
AddConditionFlags = UPGRADE_NUMENOR_STONEWORK
Permanent = Yes
End
Geometry = BOX
GeometryMajorRadius = 5.0 ;10.0
GeometryMinorRadius = 20.0
GeometryHeight = 40.0 ; 50.0
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
//---------------------------------------------
Object MenWallGateSmall
// *** ART Parameters ***
SelectPortrait = BPGWall_MainGate
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBWallGateN
End
//-------- Damage States
ModelConditionState = DAMAGED
Model = GBWallGateN_D1
End
ModelConditionState = REALLYDAMAGED
Model = GBWallGateN_D2
End
AnimationState = REALLYDAMAGED
EnteringStateFX = FX_BuildingReallyDamaged
End
ModelConditionState = COLLAPSING
Model = GBWallGateN_D3
End
AnimationState = COLLAPSING
Animation = RubbleAnimation
AnimationName = GBWallGateN_D3.GBWallGateN_D3
AnimationMode = ONCE
End
EnteringStateFX = FX_StructureMediumCollapse
End
ModelConditionState = DYING
Model = GBWallGateN_D3
End
AnimationState = DYING
Animation = RubbleAnimation
AnimationName = GBWallGateN_D3.GBWallGateN_D3
AnimationMode = ONCE
End
EnteringStateFX = FX_StructureMediumCollapse
End
AnimationState = DOOR_1_OPENING
Flags = START_FRAME_LAST
StateName = Door_Open
Animation = Death
AnimationName = GBWallGateN_SKL.GBWallGateN_OP
AnimationMode = ONCE
AnimationBlendTime = 160
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "Door_Close" then CurDrawableSetTransitionAnimState("TRANS_Closed_To_Open") end
EndScript
End
TransitionState = TRANS_Closed_To_Open
Animation = Open
AnimationName = GBWallGateN_SKL.GBWallGateN_OPN
AnimationMode = ONCE
AnimationBlendTime = 160
End
End
AnimationState = DOOR_1_CLOSING
Flags = START_FRAME_LAST
StateName = Door_Close
Animation = Death
AnimationName = GBWallGateN_SKL.GBWallGateN_CL
AnimationMode = ONCE
AnimationBlendTime = 160
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "Door_Open" then CurDrawableSetTransitionAnimState("TRANS_Open_To_Closed") end
EndScript
End
TransitionState = TRANS_Open_To_Closed
Animation = Open
AnimationName = GBWallGateN_SKL.GBWallGateN_CLS
AnimationMode = ONCE
AnimationBlendTime = 160
End
End
ModelConditionState = RUBBLE
Model = None
ParticleSysBone SmokeLarge01 SmokeBuildingLarge
End
AnimationState = RUBBLE
End
ModelConditionState = POST_RUBBLE
Model = None
ParticleSysBone NONE SmokeBuildingMediumRubble
End
ModelConditionState = POST_COLLAPSE
Model = None
ParticleSysBone NONE SmokeBuildingMediumRubble
End
ModelConditionState = UPGRADE_NUMENOR_STONEWORK
Model = GBWallGateN
Texture = GBFortress1.tga GBFortress1_U.tga
End
ModelConditionState = SNOW
Model = GBWallGateN
Texture = GBFortress1.tga GBFortress1_snow.tga
End
End
//***DESIGN parameters ***
DisplayName = OBJECT:GondorWallGate
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = MEN_WALLGATE_SMALL_BUILDCOST
BuildTime = MEN_WALLGATE_SMALL_BUILDTIME
VisionRange = MEN_WALLGATE_SMALL_VISION_RANGE
ShroudClearingRange = MEN_WALLGATE_SMALL_SHROUD_CLEAR
ArmorSet
Conditions = None
Armor = MenWallArmor
DamageFX = None
End
// *** AUDIO Parameters ***
VoiceSelect = GateSelect
VoiceSelectUnderConstruction = BuildingGoodVoiceSelectUnderConstruction
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
UnitSpecificSounds
UnderConstruction = WallConstructionLoop ;Built first time
; UnderRepairFromDamage = NoSound ; Repaired No animation on the building, so don't bother playing sound
UnderRepairFromRubble = WallConstructionLoop ;Repaired from completely destroyed (not used???)
End
CampnessValue = CAMPNESS_WALL
// *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE WALL_UPGRADE MADE_OF_STONE BLOCKING_GATE CAN_CAST_REFLECTIONS WALL_GATE IGNORE_FOR_VICTORY
CommandSet = CastleGateCommandSet
Behavior = GettingBuiltBehavior ModuleTag_04
SelfBuildingLoop = WallConstructionLoop // Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound // This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = WallConstructionLoop
SpawnTimer = -1.0 // Negative means no 'autoheal'
RebuildTimeSeconds = MEN_WALLGATE_SMALL_BUILDTIME
End
Body = StructureBody ModuleTag_05
MaxHealth = MEN_WALLGATE_SMALL_HEALTH
End
Behavior = SlowDeathBehavior ModuleTag_SlowDeath
DeathTypes = ALL
DestructionDelay = 5000
End
Behavior = GateOpenAndCloseBehavior ModuleTag_GATE
ResetTimeInMilliseconds = 3000 //important! this must be longer than the gates animation, ir it will twitch
OpenByDefault = No
PercentOpenForPathing = 50
SoundOpeningGateLoop = GateOpenStart
SoundClosingGateLoop = GateCloseStart
SoundFinishedOpeningGate = GateOpenEnd
SoundFinishedClosingGate = GateCloseEnd
TimeBeforePlayingOpenSound = 9500
TimeBeforePlayingClosedSound = 9500
End
Behavior = InheritUpgradeCreate ModuleTag_InheritNumenorStonework
Radius = MEN_FORTRESS_WALL_EFFECTIVE_RADIUS
Upgrade = Upgrade_MenFortressNumenorStonework
ObjectFilter = ANY +MenFortressCitadel
End
Behavior = AttributeModifierUpgrade ModuleTag_Reinforced
TriggeredBy = Upgrade_MenFortressNumenorStonework
AttributeModifier = NumenorStoneworkKeep_Bonus
CustomAnimAndDuration = AnimState:UPGRADE_NUMENOR_STONEWORK AnimTime:0
End
Behavior = ModelConditionUpgrade ModuleTag_ShowTheStones
TriggeredBy = Upgrade_MenFortressNumenorStonework
AddConditionFlags = UPGRADE_NUMENOR_STONEWORK
Permanent = Yes
End
Behavior = FakePathfindPortalBehaviour ModuleTag_FAKEPATHFIND
AllowEnemies = No
AllowNonSkirmishAIUnits = No
End
Behavior = AIGateUpdate ModuleTage_AIGateUpdate
TriggerWidthX = 200.0
TriggerWidthY = 100.0
End
GeometryIsSmall = No
; right pillar
Geometry = BOX
GeometryMajorRadius = 10.0
GeometryMinorRadius = 10.0
GeometryHeight = 75
GeometryOffset = X:0 Y:50 Z:0
; left pillar
AdditionalGeometry = BOX
GeometryMajorRadius = 10.0
GeometryMinorRadius = 10.0
GeometryHeight = 75
GeometryOffset = X:0 Y:-50 Z:0
; Main
AdditionalGeometry = BOX
GeometryName = "Closed"
GeometryMajorRadius = 9.0
GeometryMinorRadius = 50.0
GeometryHeight = 50
; Left open
AdditionalGeometry = BOX
GeometryName = "OpenLeft"
GeometryMajorRadius = 9.0
GeometryMinorRadius = 10.0
GeometryHeight = 40
GeometryOffset = X:0 Y:-30 Z:0
; Right open
AdditionalGeometry = BOX
GeometryName = "OpenRight"
GeometryMajorRadius = 9.0
GeometryMinorRadius = 10.0
GeometryHeight = 40
GeometryOffset = X:0 Y:30 Z:0
// need some geometry points to tell enemy weapons where to hit.
GeometryContactPoint = X:0 Y:50 Z:75
GeometryContactPoint = X:0 Y:50 Z:10
GeometryContactPoint = X:0 Y:-50 Z:10
GeometryContactPoint = X:0 Y:-50 Z:75
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
//---------------------------------------------
Object MenWallPosternGateSmall
// *** ART Parameters ***
SelectPortrait = BPGWall_PosternGate
Draw = W3DScriptedModelDraw ModuleTag_WallDraw
// Don't want to change the hidden state of this when the postern gate is stealthed.
AffectedByStealth = No
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBWallN
End
ModelConditionState = SNOW BUILD_PLACEMENT_CURSOR
Model = GBWallN_CUR
Texture = GBWall.tga GBWall_snow.tga
End
ModelConditionState = BUILD_PLACEMENT_CURSOR
Model = GBWallN_CUR
End
IdleAnimationState
End
//------------ New Build Up States coming soon.
ModelConditionState = SNOW AWAITING_CONSTRUCTION
Model = GBWallN_A
Texture = GBWall.tga GBWall_snow.tga
End
ModelConditionState = AWAITING_CONSTRUCTION
Model = GBWallN_A
End
AnimationState = AWAITING_CONSTRUCTION
Animation = GBWallN_A
AnimationName = GBWallN_A.GBWallN_A
AnimationMode = MANUAL
AnimationBlendTime = 0
End
Flags = START_FRAME_FIRST
End
ModelConditionState = UPGRADE_NUMENOR_STONEWORK ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
Model = GBWallN_A
Texture = GBWall.tga GBFortress1_U.tga
End
ModelConditionState = SNOW ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
Model = GBWallN_A
Texture = GBWall.tga GBWall_snow.tga
End
ModelConditionState = ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
Model = GBWallN_A
ParticleSysBone = NONE WallConstructDust FollowBone:Yes
End
AnimationState = ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
Animation = GBWallN_A
AnimationName = GBWallN_A.GBWallN_A
AnimationMode = MANUAL
AnimationBlendTime = 0
End
Flags = START_FRAME_FIRST
StateName = BeingConstructed
End
ModelConditionState = DAMAGED
Model = GBWallN_D1
End
AnimationState = DAMAGED
Animation = DamagedAnimation
AnimationName = GBWallN_D1.GBWallN_D1
AnimationMode = ONCE
End
EnteringStateFX = FX_WallDamaged
End
ModelConditionState = REALLYDAMAGED
Model = GBWallN_D2
End
AnimationState = REALLYDAMAGED
Animation = DamagedAnimation
AnimationName = GBWallN_D2.GBWallN_D2
AnimationMode = ONCE
End
EnteringStateFX = FX_WallDamaged
End
ModelConditionState = COLLAPSING
Model = GBWallN_D3
End
AnimationState = COLLAPSING
Animation = RubbleAnimation
AnimationName = GBWallN_D3.GBWallN_D3
AnimationMode = ONCE
End
ParticleSysBone NONE WallDestructionDust
EnteringStateFX = FX_StructureMediumCollapse
End
ModelConditionState = DYING
Model = GBWallN_D3
End
AnimationState = DYING
Animation = RubbleAnimation
AnimationName = GBWallN_D3.GBWallN_D3
AnimationMode = ONCE
End
ParticleSysBone NONE WallDestructionDust
EnteringStateFX = FX_StructureMediumCollapse
End
ModelConditionState = RUBBLE
Model = None ;GBWall_Rubble
End
AnimationState = RUBBLE
End
ModelConditionState = POST_RUBBLE
Model = None ;GBWall_Rubble
End
ModelConditionState = POST_COLLAPSE
Model = None
End
ModelConditionState = UPGRADE_NUMENOR_STONEWORK
Model = GBWallN
Texture = GBWall.tga GBFortress1_U.tga
End
ModelConditionState = SNOW
Model = GBWallN
Texture = GBWall.tga GBWall_snow.tga
End
End
Draw = W3DScriptedModelDraw ModuleTag_Draw_Rubble
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = None
End
ModelConditionState = COLLAPSING
Model = GBWall_Rubble
End
ModelConditionState = RUBBLE
Model = GBWall_Rubble
End
ModelConditionState = POST_RUBBLE
Model = GBWall_Rubble
End
ModelConditionState = POST_COLLAPSE
Model = None
End
End
Draw = W3DScriptedModelDraw ModuleTag_DoorDraw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
ExtraPublicBone = Post01
ExtraPublicBone = Post02
ExtraPublicBone = Post03
ExtraPublicBone = Post04
DefaultModelConditionState
Model = GBWallPGN
End
IdleAnimationState
Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
Animation = ReallyDamagedanimation
AnimationName = GBWallrampart.GBWallrampart
AnimationMode = LOOP
End
StateName = STATE_None
End
;--------- Damage States
ModelConditionState = DAMAGED
Model = GBWallPGN_D1
End
AnimationState = DAMAGED
End
ModelConditionState = REALLYDAMAGED
Model = GBWallPGN_D2
End
AnimationState = REALLYDAMAGED
EnteringStateFX = FX_BuildingReallyDamaged
End
ModelConditionState = COLLAPSING
Model = GBWallPGN_D3
End
AnimationState = COLLAPSING
Animation = RubbleAnimation
AnimationName = GBWallPGN_D3.GBWallPGN_D3
AnimationMode = ONCE
End
EnteringStateFX = FX_StructureMediumCollapse
End
ModelConditionState = DYING
Model = GBWallPGN_D3
End
AnimationState = DYING
Animation = RubbleAnimation
AnimationName = GBWallPGN_D3.GBWallPGN_D3
AnimationMode = ONCE
End
EnteringStateFX = FX_StructureMediumCollapse
End
ModelConditionState = RUBBLE
Model = None
ParticleSysBone SmokeLarge01 SmokeBuildingLarge
End
AnimationState = RUBBLE
End
ModelConditionState = POST_RUBBLE
Model = None
ParticleSysBone NONE SmokeBuildingMediumRubble
End
ModelConditionState = POST_COLLAPSE
Model = None
ParticleSysBone NONE SmokeBuildingMediumRubble
End
ModelConditionState = SNOW
Model = GBWallPGN
Texture = GBFortress1.tga GBFortress1_snow.tga
End
End
// ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWallPosternGate
DisplayNameInvisibleForEnemy = OBJECT:GondorCastleWallSegment
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = 30
BuildTime = 5.0 // in seconds
VisionRange = 160.0 // Shroud clearing distance
ShroudClearingRange = 160
CommandSet = SellableCommandSet
// *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
VoiceSelect = GondorPosternGateSelect
VoiceSelectUnderConstruction = BuildingGoodVoiceSelectUnderConstruction
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
UnitSpecificSounds
UnderConstruction = WallConstructionLoop ;Built first time
; UnderRepairFromDamage = NoSound ; Repaired No animation on the building, so don't bother playing sound
UnderRepairFromRubble = WallConstructionLoop ;Repaired from completely destroyed (not used???)
End
CampnessValue = CAMPNESS_WALL
// *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE MADE_OF_STONE CAN_CAST_REFLECTIONS WALL_UPGRADE WALL_GATE IGNORE_FOR_VICTORY
Behavior = GettingBuiltBehavior ModuleTag_04
UseSpawnTimerWithoutWorker = Yes
SpawnTimer = DEFAULT_STRUCTURE_HEALDELAY
;RebuildTimeSeconds = 30
SelfBuildingLoop = BuildingConstructionLoop // Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = WallConstructionLoop
SelfRepairFromRubbleLoop = BuildingConstructionLoop
End
Body = StructureBody ModuleTag_05
MaxHealth = 1500.0
End
Behavior = SlowDeathBehavior ModuleTag_SlowDeath
DeathTypes = ALL
DestructionDelay = 5000
End
Behavior = DynamicPortalBehaviour PosternGatePortal
ActivationDelaySeconds = 0.0
GenerateNow = Yes
ObjectFilter = POSTERNGATE_ALLOWABLE_OBJECTFILTER
BonePrefix = Post
NumberOfBones = 4
WayPoint = Index:0 Type:Walk ; 0
WayPoint = Index:1 Type:Walk ; 1
WayPoint = Index:2 Type:Walk ; 2
WayPoint = Index:3 Type:Walk ; 3
WayPoint = Index:2 Type:Walk ; 4
WayPoint = Index:1 Type:Walk ; 5
Link = From:0 Via:4 Via:5 To:3
Link = From:3 Via:1 Via:2 To:0
End
#include "..\..\..\includes\DefaultPosternGateInvisibilityUpdate.inc"
Behavior = InheritUpgradeCreate ModuleTag_InheritNumenorStonework
Radius = MEN_FORTRESS_WALL_EFFECTIVE_RADIUS
Upgrade = Upgrade_MenFortressNumenorStonework
ObjectFilter = ANY +MenFortressCitadel
End
Behavior = AttributeModifierUpgrade ModuleTag_Reinforced
TriggeredBy = Upgrade_MenFortressNumenorStonework
AttributeModifier = NumenorStoneworkKeep_Bonus
CustomAnimAndDuration = AnimState:UPGRADE_NUMENOR_STONEWORK AnimTime:0
End
Behavior = ModelConditionUpgrade ModuleTag_ShowTheStones
TriggeredBy = Upgrade_MenFortressNumenorStonework
AddConditionFlags = UPGRADE_NUMENOR_STONEWORK
Permanent = Yes
End
Geometry = BOX
GeometryMajorRadius = 5.0 ;10.0
GeometryMinorRadius = 20.0
GeometryHeight = 40.0 ;50.0
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
//---------------------------------------------
Object MenWallTowerSmall
// *** ART Parameters ***
SelectPortrait = BPGWall_ArrowTower
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
ExtraPublicBone = Arrow_01
ExtraPublicBone = Arrow_02
ExtraPublicBone = Arrow_03
ExtraPublicBone = Arrow_04
ExtraPublicBone = Arrow_05
ExtraPublicBone = Arrow_06
ExtraPublicBone = Arrow_07
ExtraPublicBone = Arrow_08
ExtraPublicBone = Arrow_09
ExtraPublicBone = Arrow_10
ExtraPublicBone = Arrow_11
ExtraPublicBone = Arrow_12
DefaultModelConditionState
Model = GBWallTwrN
WeaponLaunchBone = PRIMARY ARROW_
End
//--------- Damage States
ModelConditionState = DAMAGED
Model = GBWallTwrN_D1
End
AnimationState = DAMAGED
Animation = DamagedAnimation
AnimationName = GBWallTwrN_D1.GBWallTwrN_D1
AnimationMode = ONCE
End
End
ModelConditionState = REALLYDAMAGED
Model = GBWallTwrN_D2
End
AnimationState = REALLYDAMAGED
Animation = DamagedAnimation
AnimationName = GBWallTwrN_D2.GBWallTwrN_D2
AnimationMode = ONCE
End
End
ModelConditionState = COLLAPSING
Model = GBWallTwrN_D3
End
AnimationState = COLLAPSING
Animation = RubbleAnimation
AnimationName = GBWallTwrN_D3.GBWallTwrN_D3
AnimationMode = ONCE
End
EnteringStateFX = FX_StructureMediumCollapse
End
ModelConditionState = DYING
Model = GBWallTwrN_D3
End
AnimationState = DYING
Animation = RubbleAnimation
AnimationName = GBWallTwrN_D3.GBWallTwrN_D3
AnimationMode = ONCE
End
EnteringStateFX = FX_StructureMediumCollapse
End
ModelConditionState = RUBBLE
Model = None
ParticleSysBone SmokeLarge01 SmokeBuildingLarge
End
AnimationState = RUBBLE
End
ModelConditionState = POST_RUBBLE
Model = None
ParticleSysBone NONE SmokeBuildingMediumRubble
End
ModelConditionState = POST_COLLAPSE
Model = None
ParticleSysBone NONE SmokeBuildingMediumRubble
End
ModelConditionState = UPGRADE_NUMENOR_STONEWORK
Model = GBWallTwrN
Texture = GBFortress1.tga GBFortress1_U.tga
End
ModelConditionState = SNOW
Model = GBWallTwrN
Texture = GBFortress1.tga GBFortress1_snow.tga
End
End
// ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWallArrowTower
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = MEN_WALLTOWER_SMALL_BUILDCOST
BuildTime = MEN_WALLTOWER_SMALL_BUILDTIME ; in seconds
VisionRange = VISION_BASE_DEFENSE ; Shroud clearing distance
ShroudClearingRange = SHROUD_CLEAR_BASE_DEFENSE
CommandSet = SellableCommandSet
// *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
VoiceSelect = MenWallTowerSelect
VoiceSelectUnderConstruction = BuildingGoodVoiceSelectUnderConstruction
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
UnitSpecificSounds
UnderConstruction = WallConstructionLoop ;Built first time
; UnderRepairFromDamage = NoSound ; Repaired No animation on the building, so don't bother playing sound
UnderRepairFromRubble = WallConstructionLoop ;Repaired from completely destroyed (not used???)
End
CampnessValue = CAMPNESS_WALL
// *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE WALL_UPGRADE MADE_OF_STONE CAN_ATTACK CAN_CAST_REFLECTIONS
ThreatBreakdown MenWallTowerSmall_DetailedThreat
AIKindOf = WALL
End
WeaponSet
Weapon = PRIMARY CastleWallUpgradeBow
Conditions = None
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
End
Behavior = AIUpdateInterface ModuleTag_SoWeCanUseWeapon
AutoAcquireEnemiesWhenIdle = Yes
MoodAttackCheckRate = 250
End
Behavior = GettingBuiltBehavior ModuleTag_04
UseSpawnTimerWithoutWorker = Yes
SpawnTimer = DEFAULT_STRUCTURE_HEALDELAY
;RebuildTimeSeconds = 30
SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = WallConstructionLoop
SelfRepairFromRubbleLoop = BuildingConstructionLoop
End
Body = StructureBody ModuleTag_05
MaxHealth = MEN_WALLTOWER_SMALL_HEALTH
MaxHealthDamaged = MEN_WALLTOWER_SMALL_HEALTH_DAMAGED
MaxHealthReallyDamaged = MEN_WALLTOWER_SMALL_HEALTH_REALLY_DAMAGED
End
Behavior = SlowDeathBehavior ModuleTag_SlowDeath
DeathTypes = ALL
DestructionDelay = 5000
End
Behavior = InheritUpgradeCreate ModuleTag_InheritNumenorStonework
Radius = MEN_FORTRESS_WALL_EFFECTIVE_RADIUS
Upgrade = Upgrade_MenFortressNumenorStonework
ObjectFilter = ANY +MenFortressCitadel
End
Behavior = AttributeModifierUpgrade ModuleTag_Reinforced
TriggeredBy = Upgrade_MenFortressNumenorStonework
AttributeModifier = NumenorStoneworkKeep_Bonus
CustomAnimAndDuration = AnimState:UPGRADE_NUMENOR_STONEWORK AnimTime:0
End
Behavior = ModelConditionUpgrade ModuleTag_ShowTheStones
TriggeredBy = Upgrade_MenFortressNumenorStonework
AddConditionFlags = UPGRADE_NUMENOR_STONEWORK
Permanent = Yes
End
GeometryIsSmall = No
Geometry = BOX
GeometryMajorRadius = 15.0
GeometryMinorRadius = 15.0
GeometryHeight = 40.0
AdditionalGeometry = BOX
GeometryMajorRadius = 10.0
GeometryMinorRadius = 10.0
GeometryHeight = 50.0
GeometryOffset = X:0 Y:0 Z:40
AdditionalGeometry = BOX
GeometryMajorRadius = 5.0 ;10.0
GeometryMinorRadius = 20.0
GeometryHeight = 40.0 ;50.0
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
//---------------------------------------------
Object MenWallTrebuchetSmall
// *** ART Parameters ***
SelectPortrait = UPGondor_Trebuchet
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBWallTrebN
End
IdleAnimationState
Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
Animation = ReallyDamagedanimation
AnimationName = GBWallrampart.GBWallrampart
AnimationMode = LOOP
End
StateName = STATE_None
End
//--------- Damage States
ModelConditionState = DAMAGED
Model = GBWallTrebN_D1
Texture = GBFortress1.tga GBFortress1D.tga
End
AnimationState = DAMAGED
Animation = DamagedAnimation
AnimationName = GBWallTrebN_D1.GBWallTrebN_D1
AnimationMode = ONCE
End
End
ModelConditionState = REALLYDAMAGED
Model = GBWallTrebN_D2
Texture = GBFortress1.tga GBFortress1D.tga
End
AnimationState = REALLYDAMAGED
Animation = DamagedAnimation
AnimationName = GBWallTrebN_D2.GBWallTrebN_D2
AnimationMode = ONCE
End
End
ModelConditionState = RUBBLE
Model = GBWallTrebN_D3
Texture = GBFortress1.tga GBFortress1D.tga
ParticleSysBone SmokeLarge01 SmokeBuildingLarge
End
AnimationState = RUBBLE
Animation = RubbleAnimation
AnimationName = GBWallTrebN_D3.GBWallTrebN_D3
AnimationMode = ONCE
End
End
ModelConditionState = POST_RUBBLE
Model = None
ParticleSysBone NONE SmokeBuildingMediumRubble
End
ModelConditionState = POST_COLLAPSE
Model = None
ParticleSysBone NONE SmokeBuildingMediumRubble
End
ModelConditionState = UPGRADE_NUMENOR_STONEWORK
Model = GBWallTrebN
Texture = GBFortress1.tga GBFortress1_U.tga
End
ModelConditionState = SNOW
Model = GBWallTrebN
Texture = GBFortress1.tga GBFortress1_snow.tga
End
End
// ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWallTrebuchet
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = MEN_WALLTREBUCHET_SMALL_BUILDCOST
BuildTime = MEN_WALLTREBUCHET_SMALL_BUILDTIME
VisionRange = MEN_WALLTREBUCHET_SMALL_VISION_RANGE // Shroud clearing distance
ShroudClearingRange = MEN_WALLTREBUCHET_SMALL_SHROUD_CLEAR
// *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
VoiceSelect = DwarvenCatapultExpansionSelect
VoiceSelectUnderConstruction = BuildingGoodVoiceSelectUnderConstruction
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
UnitSpecificSounds
UnderConstruction = WallConstructionLoop ;Built first time
; UnderRepairFromDamage = NoSound ; Repaired No animation on the building, so don't bother playing sound
UnderRepairFromRubble = WallConstructionLoop ;Repaired from completely destroyed (not used???)
End
CampnessValue = CAMPNESS_WALL
// *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE WALL_UPGRADE MADE_OF_STONE CAN_CAST_REFLECTIONS
ThreatBreakdown MenWallTrebuchetSmall_DetailedThreat
AIKindOf = WALL
End
Behavior = GettingBuiltBehavior ModuleTag_04
;WorkerName = GondorWorkerNoSelect
UseSpawnTimerWithoutWorker = Yes
SpawnTimer = DEFAULT_STRUCTURE_HEALDELAY
SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound ; This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = BuildingConstructionLoop
End
Body = StructureBody ModuleTag_05
MaxHealth = MEN_WALLTREBUCHET_SMALL_HEALTH
MaxHealthDamaged = MEN_WALLTREBUCHET_SMALL_HEALTH_DAMAGED
MaxHealthReallyDamaged = MEN_WALLTREBUCHET_SMALL_HEALTH_REALLY_DAMAGED
End
Behavior = InheritUpgradeCreate ModuleTag_InheritNumenorStonework
Radius = MEN_FORTRESS_WALL_EFFECTIVE_RADIUS
Upgrade = Upgrade_MenFortressNumenorStonework
ObjectFilter = ANY +MenFortressCitadel
End
Behavior = AttributeModifierUpgrade ModuleTag_Reinforced
TriggeredBy = Upgrade_MenFortressNumenorStonework
AttributeModifier = NumenorStoneworkKeep_Bonus
CustomAnimAndDuration = AnimState:UPGRADE_NUMENOR_STONEWORK AnimTime:0
End
Behavior = ModelConditionUpgrade ModuleTag_ShowTheStones
TriggeredBy = Upgrade_MenFortressNumenorStonework
AddConditionFlags = UPGRADE_NUMENOR_STONEWORK
Permanent = Yes
End
Behavior = SlowDeathBehavior ModuleTag_SlowDeath
DeathTypes = ALL
DestructionDelay = 5000
End
//Trebuchet Behaviors
Behavior = ProductionUpdate ProductionUpdateModuleTag
End
Behavior = GrantUpgradeCreate ModuleTag_ActLikeAnOldUpgrade
UpgradeToGrant = Upgrade_TrebuchetTurret
GiveOnBuildComplete = Yes //The ExemptStatus UnderConstruction hack doesn't work on foundation buildings.
End
Behavior = CommandSetUpgrade ModueTag_TrebCommandSet
TriggeredBy = Upgrade_TrebuchetTurret
ConflictsWith = Upgrade_HasWallTrebuchet
CommandSet = GondorCastleWallUpgradeCommandSetBuyNewTreb
End
Behavior = CommandSetUpgrade ModueTag_TrebCommandSet3
TriggeredBy = Upgrade_HasWallTrebuchet Upgrade_TrebuchetTurret
CommandSet = SellableCommandSet
RequiresAllTriggers = Yes
End
Behavior = ObjectCreationUpgrade MakeTheFreeTreb
TriggeredBy = Upgrade_TrebuchetTurret
Delay = 0
RemoveUpgrade = Upgrade_WallTrebuchetButtonEnable
GrantUpgrade = Upgrade_HasWallTrebuchet
DestroyWhenSold = Yes
DeathAnimAndDuration = AnimState:DEATH_2 AnimTime:999999
Offset = X:0.0 Y:0.0 Z:51.0
End
Behavior = ObjectCreationUpgrade MakeTheFreeTreb2
TriggeredBy = Upgrade_HasWallTrebuchet
ConflictsWith = Upgrade_OpenGarrison Upgrade_PosternGate
Delay = 0.0
RemoveUpgrade = Upgrade_WallTrebuchetButtonEnable
ThingToSpawn = GondorTrebuchetWall
Offset = X:0.0 Y:0.0 Z:51.0
FadeInTime = 600
End
Behavior = SlaveWatcherBehavior WatchTheTreb
RemoveUpgrade = Upgrade_HasWallTrebuchet //when our slave dies, remove this upgrade, so we can get the upgrade again.
GrantUpgrade = Upgrade_WallTrebuchetButtonEnable //when our slave dies, enable the button that allows us to buy a new one
ShareUpgrades = Yes //So He'll get our Flaming Munitions
End
//End Trebuchet Behaviors
GeometryIsSmall = No
AdditionalGeometry = CYLINDER
GeometryMajorRadius = 25.0
GeometryHeight = 50.0
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
GeometryContactPoint = X:25.0 Y:15 Z:0 Repair
End
//---------------------------------------------
Object MenWallHubSmall
// *** ART Parameters ***
SelectPortrait = BPGWall_WallHub
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBWallRmprtN
End
//------------ New Build Up States coming soon.
ModelConditionState = SNOW AWAITING_CONSTRUCTION
Model = GBWallRmprtN_A
Texture = GBFortress1.tga GBFortress1_snow.tga
End
ModelConditionState = AWAITING_CONSTRUCTION
Model = GBWallRmprtN_A
End
AnimationState = AWAITING_CONSTRUCTION
Animation = GBWallRmprtN_A
AnimationName = GBWallRmprtN_A.GBWallRmprtN_A
AnimationMode = MANUAL
AnimationBlendTime = 0
End
Flags = START_FRAME_FIRST
; BeginScript
; CurDrawablePlaySound("GondorBarracksBeginConstruction")
; EndScript
End
ModelConditionState = UPGRADE_NUMENOR_STONEWORK ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
Model = GBWallRmprtN_A
Texture = GBFortress1.tga GBFortress1_U.tga
End
ModelConditionState = SNOW ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
Model = GBWallRmprtN_A
Texture = GBFortress1.tga GBFortress1_snow.tga
End
ModelConditionState = ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
Model = GBWallRmprtN_A
ParticleSysBone = NONE WallConstructDust FollowBone:Yes
End
AnimationState = ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
Animation = GBWallRmprtN_A
AnimationName = GBWallRmprtN_A.GBWallRmprtN_A
AnimationMode = MANUAL
AnimationBlendTime = 0
End
Flags = START_FRAME_FIRST
StateName = BeingConstructed
BeginScript
CurDrawablePlaySound("GondorBarracksBeginConstruction")
EndScript
End
;--------- Damage States
ModelConditionState = DAMAGED
Model = GBWallRmprtN
Texture = GBFortress1.tga GBFortress1D.tga
End
AnimationState = DAMAGED
EnteringStateFX = FX_BuildingDamaged
End
ModelConditionState = REALLYDAMAGED
Model = GBWallRmprtN_D2
End
AnimationState = REALLYDAMAGED
Animation = DamagedAnimation
AnimationName = GBWallRmprtN_D2.GBWallRmprtN_D2
AnimationMode = ONCE
End
EnteringStateFX = FX_BuildingReallyDamaged
End
ModelConditionState = COLLAPSING
Model = GBWallRmprtN_D3
End
AnimationState = COLLAPSING
Animation = RubbleAnimation
AnimationName = GBWallRmprtN_D3.GBWallRmprtN_D3
AnimationMode = ONCE
End
EnteringStateFX = FX_StructureMediumCollapse
ParticleSysBone NONE HubDestructionDust
End
ModelConditionState = DYING
Model = GBWallRmprtN_D3
End
AnimationState = DYING
Animation = RubbleAnimation
AnimationName = GBWallRmprtN_D3.GBWallRmprtN_D3
AnimationMode = ONCE
End
EnteringStateFX = FX_StructureMediumCollapse
ParticleSysBone NONE HubDestructionDust
End
ModelConditionState = RUBBLE
Model = None
;ParticleSysBone SmokeLarge01 SmokeBuildingLarge
End
AnimationState = RUBBLE
End
ModelConditionState = POST_RUBBLE
Model = None
End
ModelConditionState = POST_COLLAPSE
Model = None
End
ModelConditionState = UPGRADE_NUMENOR_STONEWORK
Model = GBWallRmprtN
Texture = GBFortress1.tga GBFortress1_U.tga
End
ModelConditionState = SNOW
Model = GBWallRmprtN
Texture = GBFortress1.tga GBFortress1_snow.tga
End
End
Draw = W3DFloorDraw ModuleTag_DrawFloor
; StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD
ModelName = GBWallRmprtNBib
WeatherTexture = SNOWY GBWall_Bib_Snow.tga
HideIfModelConditions = AWAITING_CONSTRUCTION
HideIfModelConditions = PARTIALLY_CONSTRUCTED
End
; ***DESIGN parameters ***
RadarPriority = STRUCTURE
DisplayName = OBJECT:GondorWallHub
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = MEN_WALLHUB_SMALL_BUILDCOST
BuildTime = MEN_WALLHUB_SMALL_BUILDTIME ; in seconds
VisionRange = MEN_WALLHUB_SMALL_VISION_RANGE ; Shroud clearing distance
ShroudClearingRange = MEN_WALLHUB_SMALL_SHROUD_CLEAR
ArmorSet
Conditions = None
Armor = MenWallArmor
DamageFX = None
End
CommandSet = GondorCastleWallHubSmallCommandSet
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
;VoiceFullyCreated = EVA:GenericBuildingComplete-Builder ;this causes EVA to play when building long wall segments with multiple hubs even when unfinished
VoiceSelect = NeutralWallHubSelect
VoiceSelectUnderConstruction = BuildingGoodVoiceSelectUnderConstruction
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
UnitSpecificSounds
UnderConstruction = BuildingConstructionLoop ;Built first time
UnderRepairFromDamage = NoSound ; Repaired No animation on the building, so don't bother playing sound
UnderRepairFromRubble = BuildingConstructionLoop ;Repaired from completely destroyed (not used???)
End
CampnessValue = CAMPNESS_WALL
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE WALL_HUB WALL_UPGRADE MADE_OF_STONE CAN_CAST_REFLECTIONS
ThreatBreakdown MenWallHubSmall_DetailedThreat
AIKindOf = WALL
End
Behavior = GettingBuiltBehavior ModuleTag_04
UseSpawnTimerWithoutWorker = Yes
SpawnTimer = DEFAULT_STRUCTURE_HEALDELAY
;SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = WallConstructionLoop
;SelfRepairFromRubbleLoop = BuildingConstructionLoop
End
Behavior = TerrainResourceBehavior ModuleTag_NewMoneyDeadSpot
Radius = 100 ;// How far we try to claim ground
MaxIncome = 0 ;// If we were to get all we wanted, how much we would earn. Linear slope to 0 at 0% claim
IncomeInterval = 999999 ;// How often (in msec) we give that much money
HighPriority = Yes ;// A high priority claim gets to pretend it was there first.
Visible = No ;// Don't show decal when a resource building is selected.
End
Body = StructureBody ModuleTag_05
MaxHealth = 1500.0
End
Behavior = SlowDeathBehavior ModuleTag_SlowDeath
DeathTypes = ALL
DestructionDelay = 5000
End
Behavior = WallHubBehavior ModuleTag_Build_A_Span
Options = OPTION_ONE
MaxBuildoutDistance = MEN_FORTRESS_WALL_EFFECTIVE_RADIUS
StaggeredBuildFactor = STANDARD_WALL_STAGGERED_BUILD_FACTOR
;;This defines the pattern built on flat terrain
SegmentTemplateName = MenWallSegmentSmall
SegmentTemplateName = MenWallSegmentSmall
SegmentTemplateName = MenWallSegmentSmall
SegmentTemplateName = MenWallSegmentSmall
SegmentTemplateName = MenWallSegmentSmall
SegmentTemplateName = MenWallSegmentSmall
SegmentTemplateName = MenWallSegmentSmall
SegmentTemplateName = MenWallSegmentSmall
SegmentTemplateName = MenWallHubSmall
BuilderRadius = 20
HubCapTemplateName = MenWallHubSmall
DefaultSegmentTemplateName = MenWallSegmentSmall
CliffCapTemplateName = MenWallCliffCap
;ShoreCapTemplateName = [NAME]
;BorderCapTemplateName = [NAME]
;ElevatedSegmentTemplateName = [NAME]
End
Behavior = InheritUpgradeCreate ModuleTag_InheritNumenorStonework
Radius = MEN_FORTRESS_WALL_EFFECTIVE_RADIUS
Upgrade = Upgrade_MenFortressNumenorStonework
ObjectFilter = ANY +MenFortressCitadel
End
Behavior = AttributeModifierUpgrade ModuleTag_Reinforced
TriggeredBy = Upgrade_MenFortressNumenorStonework
AttributeModifier = NumenorStoneworkKeep_Bonus
CustomAnimAndDuration = AnimState:UPGRADE_NUMENOR_STONEWORK AnimTime:0
End
Behavior = ModelConditionUpgrade ModuleTag_ShowTheStones
TriggeredBy = Upgrade_MenFortressNumenorStonework
AddConditionFlags = UPGRADE_NUMENOR_STONEWORK
Permanent = Yes
End
Geometry = CYLINDER
GeometryMajorRadius = 20.0 ;
GeometryMinorRadius = 20.0 ;
GeometryHeight = 70.0
GeometryIsSmall = No
; additional geometry, exactly same as the wall piece - if this isn't here we might get holes!
AdditionalGeometry = BOX
GeometryMajorRadius = 5.0 ;10.0
GeometryMinorRadius = 20.0
GeometryHeight = 40.0 ; 50.0
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
//---------------------------------------------
Object MenWallHubSmallUpgradeable
// *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBWallUpgrdN
End
IdleAnimationState
Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
Animation = ReallyDamagedanimation
AnimationName = GBWallrampart.GBWallrampart
AnimationMode = LOOP
End
StateName = STATE_None
End
ModelConditionState = UPGRADE_NUMENOR_STONEWORK
Model = GBWallUpgrdN
Texture = GBFortress1.tga GBFortress1_U.tga
End
ModelConditionState = SNOW
Model = GBWallUpgrdN
Texture = GBFortress1.tga GBFortress1_snow.tga
End
End
Draw = W3DFloorDraw ModuleTag_DrawFloor
; StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD
ModelName = GBWallUpgrdNBib
WeatherTexture = SNOWY GBWall_Bib_Snow.tga
End
// ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWallSegment
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = 30
BuildTime = 5.0 ; in seconds
VisionRange = 160.0 ; Shroud clearing distance
ShroudClearingRange = 160
CommandSet = GondorCastleWallHubSmallUpgradeableCommandSet
// *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
VoiceSelect = Gui_PlotSelect2 ;WallHubSelect
VoiceSelectUnderConstruction = BuildingGoodVoiceSelectUnderConstruction
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
UnitSpecificSounds
UnderConstruction = BuildingConstructionLoop ;Built first time
; UnderRepairFromDamage = NoSound ; Repaired No animation on the building, so don't bother playing sound
UnderRepairFromRubble = BuildingConstructionLoop ;Repaired from completely destroyed (not used???)
End
CampnessValue = CAMPNESS_WALL
// *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE WALL_HUB WALL_SEGMENT SCALEABLE_WALL MADE_OF_STONE CAN_CAST_REFLECTIONS
ThreatBreakdown MenWallHubSmallUpgradable_DetailedThreat
AIKindOf = WALL
End
Behavior = GettingBuiltBehavior ModuleTag_04
UseSpawnTimerWithoutWorker = Yes
SpawnTimer = DEFAULT_STRUCTURE_HEALDELAY
SelfBuildingLoop = BuildingConstructionLoop // Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = WallConstructionLoop
SelfRepairFromRubbleLoop = BuildingConstructionLoop
End
Body = StructureBody ModuleTag_05
MaxHealth = 1500.0
End
// These should always appear together on wall segments
Behavior = KeepObjectDie ModuleTag_IWantRubble
DeathTypes = ALL -SUICIDED
End
Behavior = SlowDeathBehavior ModuleTag_SlowDeath
DeathTypes = NONE +SUICIDED
DestructionDelay = 5000
End
// These should always appear together on wall segments
Behavior = WallHubBehavior ModuleTag_Build_A_Span
Options = OPTION_ONE
MaxBuildoutDistance = MEN_FORTRESS_WALL_EFFECTIVE_RADIUS
//This defines the pattern built on flat terrain
SegmentTemplateName = MenWallSegmentSmall
HubCapTemplateName = MenWallHubSmall
DefaultSegmentTemplateName = MenWallSegmentSmall
BuilderRadius = 20.0 ; this matches the cylinder in my objects geometery
;CliffCapTemplateName = [NAME]
;ShoreCapTemplateName = [NAME]
;BorderCapTemplateName = [NAME]
;ElevatedSegmentTemplateName = [NAME]
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Hub
ReplaceWith = GondorCastleWallHub
TriggeredBy = Upgrade_MenWallHub
ConflictsWith = Upgrade_MenWallRegularGate Upgrade_MenWallPosternGate Upgrade_MenWallTower Upgrade_MenWallTrebuchet
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Gate
ReplaceWith = MenWallGateSmall
TriggeredBy = Upgrade_MenWallRegularGate
ConflictsWith = Upgrade_MenWallHub Upgrade_MenWallPosternGate Upgrade_MenWallTower Upgrade_MenWallTrebuchet
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_PosternGate
ReplaceWith = MenWallPosternGateSmall
TriggeredBy = Upgrade_MenWallPosternGate
ConflictsWith = Upgrade_MenWallHub Upgrade_MenWallRegularGate Upgrade_MenWallTower Upgrade_MenWallTrebuchet
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Tower
ReplaceWith = MenWallTowerSmall
TriggeredBy = Upgrade_MenWallTower
ConflictsWith = Upgrade_MenWallHub Upgrade_MenWallRegularGate Upgrade_MenWallPosternGate Upgrade_MenWallTrebuchet
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Trebuchet
ReplaceWith = MenWallTrebuchetSmall
TriggeredBy = Upgrade_MenWallTrebuchet
ConflictsWith = Upgrade_MenWallHub Upgrade_MenWallRegularGate Upgrade_MenWallPosternGate Upgrade_MenWallTower
End
Behavior = ProductionUpdate ModuleTag_RequiredForUpgradeProduction
End
Behavior = InheritUpgradeCreate ModuleTag_InheritNumenorStonework
Radius = MEN_FORTRESS_WALL_EFFECTIVE_RADIUS
Upgrade = Upgrade_MenFortressNumenorStonework
ObjectFilter = ANY +MenFortressCitadel
End
Behavior = AttributeModifierUpgrade ModuleTag_Reinforced
TriggeredBy = Upgrade_MenFortressNumenorStonework
AttributeModifier = NumenorStoneworkKeep_Bonus
CustomAnimAndDuration = AnimState:UPGRADE_NUMENOR_STONEWORK AnimTime:0
End
Behavior = ModelConditionUpgrade ModuleTag_ShowTheStones
TriggeredBy = Upgrade_MenFortressNumenorStonework
AddConditionFlags = UPGRADE_NUMENOR_STONEWORK
Permanent = Yes
End
Geometry = CYLINDER
GeometryMajorRadius = 20.0 ;
GeometryMinorRadius = 20.0 ;
GeometryHeight = 70.0
AdditionalGeometry = BOX
GeometryMajorRadius = 10.0
GeometryMinorRadius = 60.0 ; must be a multiple of 20
GeometryHeight = 40
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
;---------------------------------------------------------
Object MenWallUpgradeNodeSmall
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBWallUpgrd
End
IdleAnimationState
Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
Animation = ReallyDamagedanimation
AnimationName = GBWallrampart.GBWallrampart
AnimationMode = LOOP
End
StateName = STATE_None
End
ModelConditionState = SNOW
Model = GBWallUpgrd
Texture = GBFortress1.tga GBFortress1_snow.tga
End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWallUpgradeNodeSmall
Side = Gondor
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = 50
BuildTime = 20.0 ; in seconds
VisionRange = 160.0 ; Shroud clearing distance
ShroudClearingRange = 160
CommandSet = MenWallUpgradeNodeCommandSet
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
VoiceSelect = Gui_PlotSelect2 ;WallHubSelect
VoiceSelectUnderConstruction = BuildingGoodVoiceSelectUnderConstruction
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
UnitSpecificSounds
UnderConstruction = BuildingConstructionLoop ;Built first time
; UnderRepairFromDamage = NoSound ; Repaired No animation on the building, so don't bother playing sound
UnderRepairFromRubble = BuildingConstructionLoop ;Repaired from completely destroyed (not used???)
End
CampnessValue = CAMPNESS_WALL
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE WALL_SEGMENT SCALEABLE_WALL MADE_OF_STONE CAN_CAST_REFLECTIONS
Behavior = GettingBuiltBehavior ModuleTag_04
UseSpawnTimerWithoutWorker = Yes
SpawnTimer = DEFAULT_STRUCTURE_HEALDELAY
SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound ; This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = BuildingConstructionLoop
End
Body = StructureBody ModuleTag_05
MaxHealth = 1500.0
End
// These should always appear together on wall segments
Behavior = KeepObjectDie ModuleTag_IWantRubble
DeathTypes = ALL -SUICIDED
End
Behavior = SlowDeathBehavior ModuleTag_SlowDeath
DeathTypes = NONE +SUICIDED
DestructionDelay = 5000
End
// These should always appear together on wall segments
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Hub
ReplaceWith = GondorCastleWallSegment
AndThenAddA = GondorCastleWallHub
AndThenAddA = GondorCastleWallSegment
TriggeredBy = Upgrade_MenWallHub
ConflictsWith = Upgrade_MenWallRegularGate Upgrade_MenWallPosternGate Upgrade_MenWallTower Upgrade_MenWallTrebuchet
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Gate
ReplaceWith = MenWallGate
TriggeredBy = Upgrade_MenWallRegularGate
ConflictsWith = Upgrade_MenWallHub Upgrade_MenWallPosternGate Upgrade_MenWallTower Upgrade_MenWallTrebuchet
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_PosternGate
ReplaceWith = MenWallPosternGate
TriggeredBy = Upgrade_MenWallPosternGate
ConflictsWith = Upgrade_MenWallHub Upgrade_MenWallRegularGate Upgrade_MenWallTower Upgrade_MenWallTrebuchet
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Tower
ReplaceWith = GondorCastleWallTower
TriggeredBy = Upgrade_MenWallTower
ConflictsWith = Upgrade_MenWallHub Upgrade_MenWallRegularGate Upgrade_MenWallPosternGate Upgrade_MenWallTrebuchet
End
Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Trebuchet
ReplaceWith = GondorCastleWallTrebuchet
TriggeredBy = Upgrade_MenWallTrebuchet
ConflictsWith = Upgrade_MenWallHub Upgrade_MenWallRegularGate Upgrade_MenWallPosternGate Upgrade_MenWallTower
End
Behavior = ProductionUpdate ModuleTag_RequiredForUpgradeProduction
End
Behavior = InheritUpgradeCreate ModuleTag_InheritNumenorStonework
Radius = MEN_FORTRESS_WALL_EFFECTIVE_RADIUS
Upgrade = Upgrade_MenFortressNumenorStonework
ObjectFilter = ANY +MenFortressCitadel
End
Behavior = AttributeModifierUpgrade ModuleTag_Reinforced
TriggeredBy = Upgrade_MenFortressNumenorStonework
AttributeModifier = NumenorStoneworkKeep_Bonus
CustomAnimAndDuration = AnimState:UPGRADE_NUMENOR_STONEWORK AnimTime:0
End
Geometry = BOX
GeometryMajorRadius = 25.0
GeometryMinorRadius = 98.0 ; must be a multiple of 20
GeometryHeight = 50
AdditionalGeometry = CYLINDER
GeometryMajorRadius = 40.0
GeometryMinorRadius = 40.0
GeometryHeight = 50.0
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
;-----------------------------------------------------------------------
Object MenWallCliffCap
SelectPortrait = BPGWall_Wall
ButtonImage = BGWall_Wall
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
OkToChangeModelColor = Yes
UseStandardModelNames = Yes
DefaultModelConditionState
Model = GBWallNE
End
ModelConditionState = UPGRADE_NUMENOR_STONEWORK AWAITING_CONSTRUCTION
Model = GBWallNE_A
Texture = GBWall.tga GBFortress1_U.tga
End
ModelConditionState = SNOW AWAITING_CONSTRUCTION
Model = GBWallNE_A
Texture = GBWall.tga GBWall_snow.tga
End
ModelConditionState = AWAITING_CONSTRUCTION
Model = GBWallNE_A
End
AnimationState = AWAITING_CONSTRUCTION
Animation = GBWallNE_A
AnimationName = GBWallNE_A.GBWallNE_A
AnimationMode = MANUAL
AnimationBlendTime = 0
End
Flags = START_FRAME_FIRST
End
ModelConditionState = UPGRADE_NUMENOR_STONEWORK ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
Model = GBWallNE_A
Texture = GBWall.tga GBFortress1_U.tga
ParticleSysBone = NONE WallConstructDust FollowBone:Yes
End
ModelConditionState = SNOW ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
Model = GBWallNE_A
Texture = GBWall.tga GBWall_snow.tga
ParticleSysBone = NONE WallConstructDust FollowBone:Yes
End
ModelConditionState = ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
Model = GBWallNE_A
ParticleSysBone = NONE WallConstructDust FollowBone:Yes
End
AnimationState = ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
Animation = GBWallNE_A
AnimationName = GBWallNE_A.GBWallNE_A
AnimationMode = MANUAL
AnimationBlendTime = 0
End
Flags = START_FRAME_FIRST
End
ModelConditionState = DAMAGED
Model = GBWallNE_D1
End
AnimationState = DAMAGED
EnteringStateFX = FX_WallDamaged
End
ModelConditionState = REALLYDAMAGED
Model = GBWallNE_D2
End
AnimationState = REALLYDAMAGED
Animation = DamagedAnimation
AnimationName = GBWallNE_D2.GBWallNE_D2
AnimationMode = ONCE
End
EnteringStateFX = FX_WallDamaged
End
ModelConditionState = COLLAPSING
Model = GBWallN_D3
End
AnimationState = COLLAPSING
Animation = RubbleAnimation
AnimationName = GBWallNE_D3.GBWallNE_D3
AnimationMode = ONCE
End
ParticleSysBone NONE WallDestructionDust
EnteringStateFX = FX_StructureMediumCollapse
End
ModelConditionState = RUBBLE
Model = None ;GBWall_Rubble
End
AnimationState = RUBBLE
BeginScript
CurDrawableHideSubObject("ModuleTag_DrawFloor")
EndScript
End
ModelConditionState = POST_RUBBLE
Model = None ;GBWall_Rubble
End
ModelConditionState = POST_COLLAPSE
Model = None
End
ModelConditionState = UPGRADE_NUMENOR_STONEWORK
Model = GBWallNE
Texture = GBWall.tga GBFortress1_U.tga
End
ModelConditionState = SNOW
Model = GBWallNE
Texture = GBWall.tga GBWall_snow.tga
End
End
; Draw = W3DFloorDraw ModuleTag_DrawFloor
; StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD
; ModelName = GBWallN_Bib
; WeatherTexture = SNOWY GBWall_Bib_Snow.tga
; End
; ***DESIGN parameters ***
DisplayName = OBJECT:GondorCastleWallSegment
Side = Men
EditorSorting = STRUCTURE
ThreatLevel = 1.0
CommandSet = MenWallCliffCapCommandSet
BuildCost = MEN_WALLSEGMENT_SMALL_BUILDCOST
BuildTime = MEN_WALLSEGMENT_SMALL_BUILDTIME
VisionRange = MEN_WALLSEGMENT_SMALL_VISION_RANGE
ShroudClearingRange = MEN_WALLSEGMENT_SMALL_SHROUD_CLEAR
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
VoiceSelectUnderConstruction = BuildingGoodVoiceSelectUnderConstruction
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
UnitSpecificSounds
UnderConstruction = BuildingConstructionLoop ;Built first time
; UnderRepairFromDamage = NoSound ; Repaired No animation on the building, so don't bother playing sound
UnderRepairFromRubble = BuildingConstructionLoop ;Repaired from completely destroyed (not used???)
End
CampnessValue = CAMPNESS_WALL
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE DEFENSIVE_WALL MADE_OF_STONE CAN_CAST_REFLECTIONS
ThreatBreakdown MenWallCliffCap_DetailedThreat
AIKindOf = WALL
End
Behavior = GettingBuiltBehavior ModuleTag_04
UseSpawnTimerWithoutWorker = Yes
SpawnTimer = DEFAULT_STRUCTURE_HEALDELAY
SelfBuildingLoop = WallConstructionLoop ; Only played if we DON'T spawn a worker
SelfRepairFromDamageLoop = NoSound ; This doesn't cause an animation, so don't bother playing a sound
SelfRepairFromRubbleLoop = WallConstructionLoop
End
Body = StructureBody ModuleTag_05
MaxHealth = MEN_WALLSEGMENT_SMALL_HEALTH
End
// These should always appear together on wall segments
Behavior = KeepObjectDie ModuleTag_IWantRubble
DeathTypes = ALL -SUICIDED
End
Behavior = SlowDeathBehavior ModuleTag_SlowDeath
DeathTypes = NONE +SUICIDED
DestructionDelay = 5000
End
// These should always appear together on wall segments
; Behavior = DestroyDie ModuleTag_07
; ;nothing
; End
Behavior = InheritUpgradeCreate ModuleTag_InheritNumenorStonework
Radius = MEN_FORTRESS_WALL_EFFECTIVE_RADIUS
Upgrade = Upgrade_MenFortressNumenorStonework
ObjectFilter = ANY +MenFortressCitadel
End
Behavior = AttributeModifierUpgrade ModuleTag_Reinforced
TriggeredBy = Upgrade_MenFortressNumenorStonework
AttributeModifier = NumenorStoneworkKeep_Bonus
CustomAnimAndDuration = AnimState:UPGRADE_NUMENOR_STONEWORK AnimTime:0
End
Geometry = BOX
GeometryMajorRadius = 10.0
GeometryMinorRadius = 40.0
GeometryHeight = 80
GeometryIsSmall = No
GeometryOffset = X:0 Y:-20 Z:-40
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End