Did you make the .bse file?
Didn't know you had to. So...no. >_> XD
Did you change the builder in playertemplate.ini?
Yeps.
Code from atalantefortress.ini:
Object AtalanteFortressCenterGeneric
SelectPortrait = BPGFortress
Draw = W3DScriptedModelDraw ModuleTag_01
DefaultModelConditionState
Model = None
End
ModelConditionState = WORLD_BUILDER
Model = NBasePin
End
End
Side = Atalante
EditorSorting = STRUCTURE
KindOf = IMMOBILE BASE_FOUNDATION CASTLE_CENTER CAN_CAST_REFLECTIONS CAN_CAST_REFLECTIONS
Behavior = CastleBehavior ModuleTag_castle
FilterValidOwnedEntries = ANY +STRUCTURE +WALK_ON_TOP_OF_WALL +BASE_FOUNDATION +TACTICAL_MARKER ;Anything that does not fit this filter will be given to the neutral player, so the template can have rocks and props.
End
End
Object AtalanteFortressExpansionPadCorner
SelectPortrait = BPGFortress_BuildPlot
// *** ART Parameters ***
Draw = W3DFloorDraw DrawFloorBase
ModelName = GBFoundationB
End
Draw = W3DScriptedModelDraw ModuleTag_DrawMain
DefaultModelConditionState
Model = WBFoundationP
End
ModelConditionState = CONSTRUCTION_COMPLETE
Model = None
End
End
//PlacementViewAngle = 0
// ***DESIGN parameters ***
DisplayName = OBJECT:MenBuildingFoundation
Description = OBJECT:MenFortressDescription
Side = Atalante
EditorSorting = STRUCTURE
ThreatLevel = 1.0
BuildCost = 1
BuildTime = 5.0 // in seconds
VisionRange = 0.0 // Shroud clearing distance
ShroudClearingRange = 0
CommandSet = MenFortressExpansionPadCornerCommandSet
// *** AUDIO Parameters ***
VoiceSelect = Gui_PlotSelect ;GondorCitadelSelect ;MenFortressSelect
// *** ENGINEERING Parameters ***
KindOf = STRUCTURE SELECTABLE IMMOBILE BASE_FOUNDATION UNATTACKABLE MP_COUNT_FOR_VICTORY NO_COLLIDE DO_NOT_CLASSIFY CAN_CAST_REFLECTIONS EXPANSION_PAD
Behavior = FoundationAIUpdate ModuleTag_foundationAI
BuildVariation = 2 // Will give BUILD_VARIATION_TWO to anything built on it
End
Behavior = CastleMemberBehavior ModuleTag_CMB
End
Body = ImmortalBody ModuleTag_05
MaxHealth = 15000.0
End
Geometry = BOX
GeometryMajorRadius = 5.0
GeometryMinorRadius = 5.0
GeometryHeight = 0.8
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
ChildObject AtalanteFortressExpansionPadSide AtalanteFortressExpansionPadCorner
CommandSet = MenFortressExpansionPadSideCommandSet
Behavior = FoundationAIUpdate ModuleTag_foundationAI
BuildVariation = 1 // Will give BUILD_VARIATION_ONE to anything built on it
End
End
Object AtalanteFortressCitadel
// *** ART Parameters ***
ButtonImage = BGFortress
SelectPortrait = BPGFortress
Draw = W3DScriptedModelDraw ModuleTag_MainDraw
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
ExtraPublicBone = ARROW_13
ExtraPublicBone = ARROW_14
ExtraPublicBone = ARROW_15
ExtraPublicBone = ARROW_16
ExtraPublicBone = ARROW_17
ExtraPublicBone = ARROW_18
ExtraPublicBone = ARROW_19
ExtraPublicBone = ARROW_20
ExtraPublicBone = ARROW_21
ExtraPublicBone = ARROW_22
ExtraPublicBone = ARROW_23
ExtraPublicBone = ARROW_24
OkToChangeModelColor = Yes
StaticModelLODMode = Yes // Will append M or L to the skin name depending on GameLOD
DefaultModelConditionState
Model = GBFortress
WeaponLaunchBone = PRIMARY ARROW_
End
;// Animation state for build placement cursor
AnimationState = BUILD_PLACEMENT_CURSOR
BeginScript
CurDrawableHideSubObject("FIREGLOW")
CurDrawableHideSubObject("FLAMES")
CurDrawableHideSubObject("GBFFLAG")
CurDrawableHideSubObject("GBFFLAMING")
EndScript
End
;// Animation state for phantom structure
AnimationState = PHANTOM_STRUCTURE
BeginScript
CurDrawableHideSubObject("FIREGLOW")
CurDrawableHideSubObject("FLAMES")
CurDrawableHideSubObject("GBFFLAG")
CurDrawableHideSubObject("GBFFLAMING")
EndScript
End
//--Damage States---
ModelConditionState = DAMAGED
Model = GBFortress
Texture = GBFortress1.tga GBFortress1D.tga
End
AnimationState = DAMAGED
EnteringStateFX = FX_FortressDamaged
End
ModelConditionState = REALLYDAMAGED
Model = GBFortress_D2
End
AnimationState = REALLYDAMAGED
Animation = Fortress_ReallyDamaged
AnimationName = GBFortress_D2SK.GBFortress_D2AN
AnimationMode = ONCE
End
EnteringStateFX = FX_FortressReallyDamaged
End
ModelConditionState = RUBBLE
Model = GBFortress_D3
End
AnimationState = RUBBLE
Animation = Fortress_Rubble
AnimationName = GBFortress_D3SK.GBFortress_D3AN
AnimationMode = ONCE
End
EnteringStateFX = FX_FortressCollapse
End
//---Stonework---
ModelConditionState = UPGRADE_NUMENOR_STONEWORK
Model = GBFortress
Texture = GBFortress1.tga GBFortress1_U.tga
End
//---Snow---
ModelConditionState = SNOW
Model = GBFortress
Texture = GBFortress1.tga GBFortress1_Snow.tga
End
End
Draw = W3DScriptedModelDraw ModuleTag_Draw_HCBanner
OkToChangeModelColor = Yes
DefaultModelConditionState
Model = GBHCFortress
End
MultiPlayerOnly = Yes
End
//--------------------------------
Draw = W3DScriptedModelDraw ModuleTag_OilDraw
OkToChangeModelColor = Yes
StaticModelLODMode = Yes // Will append M or L to the skin name depending on GameLOD
DefaultModelConditionState
Model = None
End
//---Build up Damaged---
ModelConditionState = UPGRADE_BOILING_OIL DAMAGED USER_1
Model = GBFBOil_A
Texture = GBFortress1.tga GBFortress1D.tga
End
ModelConditionState = UPGRADE_BOILING_OIL REALLYDAMAGED USER_1
Model = GBFBOil_A
Texture = GBFortress1.tga GBFortress1D.tga
End
//---Build Up and Default Idle---
ModelConditionState = UPGRADE_BOILING_OIL USER_1
Model = GBFBOil_A
End
AnimationState = UPGRADE_BOILING_OIL USER_1
Animation = RiseUp
AnimationName = GBFBoil_ASKL.GBFBoil_ABLD
AnimationMode = ONCE
End
End
//---Damage States---
ModelConditionState = UPGRADE_BOILING_OIL DAMAGED
Model = GBFBoil
Texture = GBFortress1.tga GBFortress1D.tga
End
ModelConditionState = UPGRADE_BOILING_OIL REALLYDAMAGED
Model = GBFBoil_D2
End
AnimationState = UPGRADE_BOILING_OIL REALLYDAMAGED
Animation = ReallyDamaged
AnimationName = GBFBoil_D2SKL.GBFBoil_D2AN
AnimationMode = ONCE
End
End
ModelConditionState = UPGRADE_BOILING_OIL RUBBLE
Model = GBFBoil_D3
End
AnimationState = UPGRADE_BOILING_OIL RUBBLE
Animation = Destroyed
AnimationName = GBFBoil_D3SKL.GBFBoil_D3AN
AnimationMode = ONCE
End
End
//---Normal State---
ModelConditionState = UPGRADE_BOILING_OIL
Model = GBFBOil
End
End
//--------------------------------
Draw = W3DScriptedModelDraw ModuleTag_OilGuyDraw
AttachToBoneInAnotherModule = PositionBone
OkToChangeModelColor = Yes
StaticModelLODMode = Yes // Will append M or L to the skin name depending on GameLOD
DefaultModelConditionState
Model = None
End
IdleAnimationState
StateName = NoTower
End
//---Build Up and Default Idle---
ModelConditionState = UPGRADE_BOILING_OIL USER_1
Model = None
End
ModelConditionState = UPGRADE_BOILING_OIL RUBBLE
Model = NONE
End
//---Attacking---
AnimationState = SPECIAL_WEAPON_ONE UNPACKING UPGRADE_BOILING_OIL
Animation = Pouring
AnimationName = GBFBOil_SKL.GBFBOil_ATKA
AnimationMode = ONCE
End
EnteringStateFX = FX_BoilingOilAttack
ParticleSysBone = Steam_Bone02 MenFortressSpray FOLLOWBONE:YES
ParticleSysBone = Steam_Bone03 MenFortressSpray FOLLOWBONE:YES
ParticleSysBone = Steam_Bone04 MenFortressSpray FOLLOWBONE:YES
ParticleSysBone = Steam_Bone05 MenFortressSpray FOLLOWBONE:YES
ParticleSysBone = Steam_Bone06 MenFortressSpray FOLLOWBONE:YES
ParticleSysBone = Steam_Bone07 MenFortressSpray FOLLOWBONE:YES
ParticleSysBone = Steam_Bone08 MenFortressSpray FOLLOWBONE:YES
ParticleSysBone = Steam_Bone09 MenFortressSpray FOLLOWBONE:YES
ParticleSysBone = Steam_Bone02 MenFortressSpray02 FOLLOWBONE:YES
ParticleSysBone = Steam_Bone03 MenFortressSpray02 FOLLOWBONE:YES
ParticleSysBone = Steam_Bone04 MenFortressSpray02 FOLLOWBONE:YES
ParticleSysBone = Steam_Bone05 MenFortressSpray02 FOLLOWBONE:YES
ParticleSysBone = Steam_Bone06 MenFortressSpray02 FOLLOWBONE:YES
ParticleSysBone = Steam_Bone07 MenFortressSpray02 FOLLOWBONE:YES
ParticleSysBone = Steam_Bone08 MenFortressSpray02 FOLLOWBONE:YES
ParticleSysBone = Steam_Bone09 MenFortressSpray02 FOLLOWBONE:YES
ParticleSysBone = Steam_Bone02 MenFortressSteam FOLLOWBONE:YES
ParticleSysBone = Steam_Bone03 MenFortressSteam FOLLOWBONE:YES
ParticleSysBone = Steam_Bone04 MenFortressSteam FOLLOWBONE:YES
ParticleSysBone = Steam_Bone05 MenFortressSteam FOLLOWBONE:YES
ParticleSysBone = Steam_Bone06 MenFortressSteam FOLLOWBONE:YES
ParticleSysBone = Steam_Bone07 MenFortressSteam FOLLOWBONE:YES
ParticleSysBone = Steam_Bone08 MenFortressSteam FOLLOWBONE:YES
ParticleSysBone = Steam_Bone09 MenFortressSteam FOLLOWBONE:YES
ParticleSysBone = Steam_Bone02 MenFortressProxy FOLLOWBONE:YES
ParticleSysBone = Steam_Bone03 MenFortressProxy FOLLOWBONE:YES
ParticleSysBone = Steam_Bone04 MenFortressProxy FOLLOWBONE:YES
ParticleSysBone = Steam_Bone05 MenFortressProxy FOLLOWBONE:YES
ParticleSysBone = Steam_Bone06 MenFortressProxy FOLLOWBONE:YES
ParticleSysBone = Steam_Bone07 MenFortressProxy FOLLOWBONE:YES
ParticleSysBone = Steam_Bone08 MenFortressProxy FOLLOWBONE:YES
ParticleSysBone = Steam_Bone09 MenFortressProxy FOLLOWBONE:YES
End
//---Normal State---
ModelConditionState = UPGRADE_BOILING_OIL
Model = GBFBOil_SKN
End
AnimationState = UPGRADE_BOILING_OIL
Animation = Idle
AnimationName = GBFBOil_SKL.GBFBOil_IDLA
AnimationMode = LOOP
End
End
End
//--------------------------------
Draw = W3DScriptedModelDraw ModuleTag_IvoryTowerDraw
OkToChangeModelColor = Yes
StaticModelLODMode = Yes // Will append M or L to the skin name depending on GameLOD
DefaultModelConditionState
Model = None
End
//---Damage States---
ModelConditionState = UPGRADE_IVORY_TOWER DAMAGED
Model = GBFITower_A
Texture = GBFortress1.tga GBFortress1D.tga
End
ModelConditionState = UPGRADE_IVORY_TOWER REALLYDAMAGED
Model = GBFITower_D2
End
AnimationState = UPGRADE_IVORY_TOWER REALLYDAMAGED
Animation = ReallyDamaged
AnimationName = GBFITower_D2SK.GBFITower_D2AN
AnimationMode = ONCE
End
End
ModelConditionState = UPGRADE_IVORY_TOWER RUBBLE
Model = GBFITower_D3
End
AnimationState = UPGRADE_IVORY_TOWER RUBBLE
Animation = Destroyed
AnimationName = GBFITower_D3SK.GBFITower_D3AN
AnimationMode = ONCE
End
End
//---Default Purchased States---
ModelConditionState = UPGRADE_IVORY_TOWER USER_2
Model = GBFITower_A
End
//---Build Up---
AnimationState = UPGRADE_IVORY_TOWER USER_2
Animation = RiseUp
AnimationName = GBFITower_ASKL.GBFITower_ABLD
AnimationMode = ONCE
AnimationSpeedFactorRange = 8.0 8.0
End
End
//---Snow---
ModelConditionState = SNOW UPGRADE_IVORY_TOWER
Model = GBFITower
Texture = GBFortress1.tga GBFortress1_Snow.tga
End
ModelConditionState = UPGRADE_IVORY_TOWER
Model = GBFITower
End
End
;--------------------------------
Draw = W3DScriptedModelDraw ModuleTag_HouseOfHealingDraw
OkToChangeModelColor = Yes
StaticModelLODMode = Yes // Will append M or L to the skin name depending on GameLOD
DefaultModelConditionState
Model = None
End
//---Build Up---
ModelConditionState = UPGRADE_HOUSE_OF_HEALING USER_3 DAMAGED
Model = GBFHeal_A
Texture = GBFortress1.tga GBFortress1D.tga
End
ModelConditionState = UPGRADE_HOUSE_OF_HEALING USER_3 REALLYDAMAGED
Model = GBFHeal_A
Texture = GBFortress1.tga GBFortress1D.tga
End
ModelConditionState = UPGRADE_HOUSE_OF_HEALING USER_3 UPGRADE_NUMENOR_STONEWORK
Model = GBFHeal_A
Texture = GBFortress1.tga GBFortress1_U.tga
End
ModelConditionState = UPGRADE_HOUSE_OF_HEALING USER_3 SNOW
Model = GBFHeal_A
Texture = GBFortress1.tga GBFortress1_Snow.tga
End
ModelConditionState = UPGRADE_HOUSE_OF_HEALING USER_3
Model = GBFHeal_A
End
AnimationState = UPGRADE_HOUSE_OF_HEALING USER_3
Animation = RiseUp
AnimationName = GBFHeal_ASKL.GBFHeal_ABLD
AnimationMode = ONCE
AnimationSpeedFactorRange = 5.0 5.0
End
End
//---Damage States---
ModelConditionState = UPGRADE_HOUSE_OF_HEALING DAMAGED
Model = GBFHeal
Texture = GBFortress1.tga GBFortress1D.tga
End
ModelConditionState = UPGRADE_HOUSE_OF_HEALING REALLYDAMAGED
Model = GBFHeal_D2
End
AnimationState = UPGRADE_HOUSE_OF_HEALING REALLYDAMAGED
Animation = ReallyDamaged
AnimationName = GBFHeal_D2SKL.GBFHeal_D2AN
AnimationMode = ONCE
End
End
ModelConditionState = UPGRADE_HOUSE_OF_HEALING RUBBLE
Model = GBFHeal_D3
End
AnimationState = UPGRADE_HOUSE_OF_HEALING RUBBLE
Animation = Destroyed
AnimationName = GBFHeal_D3SKL.GBFHeal_D3AN
AnimationMode = ONCE
End
End
//---Stonework upgrade
ModelConditionState = UPGRADE_NUMENOR_STONEWORK UPGRADE_HOUSE_OF_HEALING
Model = GBFHeal
Texture = GBFortress1.tga GBFortress1_U.tga
End
//---Snow---
ModelConditionState = SNOW UPGRADE_HOUSE_OF_HEALING
Model = GBFHeal
Texture = GBFortress1.tga GBFortress1_Snow.tga
End
//---Default Purchased States
ModelConditionState = UPGRADE_HOUSE_OF_HEALING
Model = GBFHeal
End
End
;--------------------------------
Draw = W3DScriptedModelDraw ModuleTag_DrawDoor
DefaultModelConditionState
Model = GBFDoor_DRC
End
//---Damage States---
ModelConditionState = DAMAGED DOOR_1_WAITING_OPEN
Model = GBFDoor_DRO
Texture = GBFortress1.tga GBFortress1D.tga
End
ModelConditionState = REALLYDAMAGED DOOR_1_WAITING_OPEN
Model = GBFDoor_DRO
Texture = GBFortress1.tga GBFortress1D.tga
End
ModelConditionState = DAMAGED DOOR_1_CLOSING
Model = GBFDoor_DRCA
Texture = GBFortress1.tga GBFortress1D.tga
End
ModelConditionState = REALLYDAMAGED DOOR_1_CLOSING
Model = GBFDoor_DRCA
Texture = GBFortress1.tga GBFortress1D.tga
End
ModelConditionState = DAMAGED
Model = GBFDoor_DRC
Texture = GBFortress1.tga GBFortress1D.tga
End
ModelConditionState = REALLYDAMAGED
Model = GBFDoor_DRC
Texture = GBFortress1.tga GBFortress1D.tga
End
ModelConditionState = RUBBLE
Model = GBFDoor_D3
End
AnimationState = RUBBLE
Animation = Door_Destroyed
AnimationName = GBFDoor_D3.GBFDoor_D3
AnimationMode = ONCE
AnimationBlendTime = 50
End
End
//---Normal States---
ModelConditionState = DOOR_1_OPENING
Model = GBFDoor_DROA
End
AnimationState = DOOR_1_OPENING
Animation = GBFDoor_DRO
AnimationName = GBFDoor_DROA.GBFDoor_DROA
AnimationMode = ONCE
End
End
ModelConditionState = DOOR_1_CLOSING
Model = GBFDoor_DRCA
ParticleSysBone = NONE trollCageDust
End
AnimationState = DOOR_1_CLOSING
Animation = GBFDoor_DRCA
AnimationName = GBFDoor_DRCA.GBFDoor_DRCA
AnimationMode = ONCE
End
End
ModelConditionState = DOOR_1_WAITING_OPEN
Model = GBFDoor_DRO
End
AnimationState = DOOR_1_WAITING_OPEN
End
ModelConditionState = POST_RUBBLE
Model = None
End
ModelConditionState = POST_COLLAPSE
Model = None
End
End
//----------the Bib
Draw = W3DFloorDraw ModuleTag_DrawFloor
ModelName = GBFortress_Bib
WeatherTexture SNOWY GBFortress_bib_snow.tga
End
// ***DESIGN parameters ***
DisplayName = OBJECT:MenFortress
Description = OBJECT:MenFortressDescription
Side = Atalante
EditorSorting = STRUCTURE
ThreatLevel = 1.0
CommandPointBonus = SH_GENERIC_FORTRESS_COMMAND_POINT_BONUS
BuildCost = SH_MEN_FORTRESS_BUILDCOST
BuildTime = SH_MEN_FORTRESS_BUILDTIME
VisionRange = SH_MEN_FORTRESS_VISION_RANGE
ShroudClearingRange = SH_MEN_FORTRESS_SHROUD_CLEAR
WeaponSet
Weapon = PRIMARY FortressArrowTowerBow
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
End
ArmorSet
Conditions = None
Armor = FortressArmor
; DamageFX = StructureDamageFXNoShake
End
CommandSet = AtalanteFortressCommandSet
; *** AUDIO Parameters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
EvaEventDieOwner = EvaFortressDie
VoiceSelect = MenFortressSelect
VoiceSelectUnderConstruction = BuildingGoodVoiceSelectUnderConstruction
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
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
CampnessValue = CAMPNESS_FORTRESS
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD COMMANDCENTER VITAL_FOR_BASE_SURVIVAL STRUCTURE IMMOBILE CASTLE_KEEP MP_COUNT_FOR_VICTORY SELECTABLE FS_FACTORY AUTO_RALLYPOINT MADE_OF_WOOD SCORE DOZER_FACTORY CAN_CAST_REFLECTIONS
Behavior = GettingBuiltBehavior ModuleTag_GettingBuiltBehavior
WorkerName = GondorWorkerNoSelect
SpawnTimer = SH_DEFAULT_STRUCTURE_HEALDELAY
End
Behavior = CastleMemberBehavior ModuleTag_CMB
BeingBuiltSound = BuildingBigConstructionLoop
End
;-----------------------------------------------
;Used for hero revival and initial construction
Behavior = ProductionUpdate ProductionUpdateModuleTag
ProductionModifier ; An object-local discount.
RequiredUpgrade = Upgrade_MenFortressBanners
CostMultiplier = 0.80
ModifierFilter = NONE +AtalanteBuilder
End
ProductionModifier
RequiredUpgrade = Upgrade_MenFortressBanners
CostMultiplier = 0.90
TimeMultiplier = 0.90
HeroPurchase = Yes ; Instead of an object filter, needs to be explicitly hero-revival-system compatible
ModifierFilter = NONE +HERO
End
ProductionModifier
RequiredUpgrade = Upgrade_MenFortressHouseOfHealing
CostMultiplier = 0.80
TimeMultiplier = 0.80
HeroRevive = Yes
ModifierFilter = NONE +HERO
End
NumDoorAnimations = 1
DoorOpeningTime = 3000 ;in mSeconds how long you want doors to be in open state
DoorWaitOpenTime = 3000 ;in mSeconds time the door stays open, so units can exit
DoorCloseTime = 3000 ;in mSeconds how long you want doors to be in open state
End
Behavior = QueueProductionExitUpdate ModuleTag_QueuePEU
UnitCreatePoint = X:0.0 Y:0.0 Z:0.0
NaturalRallyPoint = X:80.0 Y:0.0 Z:0.0;NaturalRallyPointX must always match GeometryMajorRadius!
ExitDelay = 400 ; Mainly for the multiple produced Red Guard. Make them come out one at a time.
End
;-----------------------------------------------
Body = StructureBody ModuleTag_05
MaxHealth = SH_MEN_FORTRESS_HEALTH
MaxHealthDamaged = SH_MEN_FORTRESS_HEALTH_DAMAGED
MaxHealthReallyDamaged = SH_MEN_FORTRESS_HEALTH_REALLY_DAMAGED
End
Behavior = StructureCollapseUpdate ModuleTag_08
MinCollapseDelay = 000
MaxCollapseDelay = 000
CollapseDamping = .5
MaxShudder = 0.6
MinBurstDelay = 250
MaxBurstDelay = 800
BigBurstFrequency = 4
FXList = INITIAL FX_FortressCollapse
;FXList = ALMOST_FINAL FX_FortressCollapse
DestroyObjectWhenDone = Yes
CollapseHeight = 155
End
Behavior = CitadelSlaughterHordeContain ModuleTag_SlaughterMe
PassengerFilter = SH_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:125.0 Y:0.0 Z:0.0
EntryPosition = X:30.0 Y:0.0 Z:0.0 // entry position needs to be offset from the root transform, otherwise fortress obscures point.
ExitOffset = X:125.0 Y:0.0 Z:0.0
StatusForRingEntry = HOLDING_THE_RING
UpgradeForRingEntry = Upgrade_RingHero Upgrade_FortressRingHero
ObjectToDestroyForRingEntry = NONE +TheDroppedRing
FXForRingEntry = FX_OneRingFlare
End
// Hide all the Improvements by default
Behavior = SubObjectsUpgrade ModuleTag_HideAll
TriggeredBy = Upgrade_StructureLevel1
HideSubObjects = GBFFLAMING GBFFLAG
End
// Boiling Oil special power, bought as improvement ;;;
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_OilEnabler
SpecialPowerTemplate = SpecialAbilityMenFortressBoilingOil
TriggeredBy = Upgrade_MenFortressBoilingOil
End
Behavior = SpecialPowerModule ModuleTag_OilStarter
SpecialPowerTemplate = SpecialAbilityMenFortressBoilingOil
UpdateModuleStartsAttack = Yes
StartsPaused = Yes
End
Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_OilWeaponFireUpdate
SpecialPowerTemplate = SpecialAbilityMenFortressBoilingOil
WhichSpecialWeapon = 1
UnpackTime = 5200
PackTime = 4600
SpecialWeapon = MenFortressBoilingOilWeapon
End
Behavior = ModelConditionUpgrade ModuleTag_ShowTheOil
TriggeredBy = Upgrade_MenFortressBoilingOil
AddConditionFlags = UPGRADE_BOILING_OIL
AddTempConditionFlag = ModelConditionState:USER_1 //For buildup
TempConditionTime = 5.0 //try to match buildup anim time
Permanent = Yes
End
Behavior = AudioLoopUpgrade ModuleTag_BoilingOilBuildLoop
TriggeredBy = Upgrade_MenFortressBoilingOil
SoundToPlay = WallConstructionLoop
KillOnDeath = Yes
KillAfterMS = 4000 ; Should match the length of the build-up animation [Or a little shorter since sounds take a little while to die]
End
// Numeror Stonework improvement, just an upgrade
Behavior = CastleUpgrade ModuleTag_PassOutNumenorStoneworkUpgrade
TriggeredBy = Upgrade_MenFortressNumenorStoneworkTrigger
Upgrade = Upgrade_MenFortressNumenorStonework
WallUpgradeRadius = SH_MEN_FORTRESS_WALL_EFFECTIVE_RADIUS
End
Behavior = AttributeModifierUpgrade ModuleTag_Reinforced
TriggeredBy = Upgrade_MenFortressNumenorStonework
AttributeModifier = NumenorStoneworkKeep_Bonus
End
Behavior = ModelConditionUpgrade ModuleTag_ShowTheStones
TriggeredBy = Upgrade_MenFortressNumenorStonework
AddConditionFlags = UPGRADE_NUMENOR_STONEWORK
Permanent = Yes
End
// Flaming Munitions improvement, just an upgrade, but doesn't do anything for us.
Behavior = CastleUpgrade ModuleTag_PassOutFlamingMunitionsUpgrade
TriggeredBy = Upgrade_GoodFortressFlamingMunitionsTrigger
Upgrade = Upgrade_GoodFortressFlamingMunitions
End
Behavior = StatusBitsUpgrade ModuleTag_FakeOut ; I need to react to the upgrade, so I can have it for when new construction asks me for all the upgrades
TriggeredBy = Upgrade_GoodFortressFlamingMunitions
End
Behavior = SubObjectsUpgrade ModuleTag_ShowTorches
TriggeredBy = Upgrade_GoodFortressFlamingMunitions
ShowSubObjects = GBFFLAMING
End
// Banners improvement, the half that gives an aura bonus, not the purchase discount part (that is in the ProductionUpdate)
Behavior = AttributeModifierAuraUpdate ModuleTag_BannerLeadership
StartsActive = No ;If no, requires upgrade to turn on.
BonusName = MenFortressBannersLeadership
TriggeredBy = Upgrade_MenFortressBanners
RefreshDelay = 2000
Range = 300
ObjectFilter = SH_GENERIC_BUFF_RECIPIENT_OBJECT_FILTER
End
Behavior = SubObjectsUpgrade ModuleTag_ShowBanners
TriggeredBy = Upgrade_MenFortressBanners
ShowSubObjects = GBFFLAG
End
// House of Healing improvement, Purchase discount is in ProductionUpdate
Behavior = ModelConditionUpgrade ModuleTag_ShowHouseOfHealing
TriggeredBy = Upgrade_MenFortressHouseOfHealing
AddConditionFlags = UPGRADE_HOUSE_OF_HEALING
AddTempConditionFlag = ModelConditionState:USER_3 //For buildup
TempConditionTime = 7.0 //try to matc
Permanent = Yes
End
Behavior = PassiveAreaEffectBehavior ModuleTag_HouseOfHealingHealer
UpgradeRequired = Upgrade_MenFortressHouseOfHealing
EffectRadius = 200 // please update the decal size in experience lvl INI if you change this... the value there is about 2.2x the value here
PingDelay = 2000
HealPercentPerSecond = 3%
AllowFilter = ANY +INFANTRY +CAVALRY +HERO -MACHINE +MONSTER -IMMOBILE +DOZER
NonStackable = Yes
HealFX = FX_SpellHealUnitHealBuff
End
Behavior = BannerCarrierUpdate BannerCarrierUpdateModuleTag
UpgradeRequired = Upgrade_MenFortressHouseOfHealing
IdleSpawnRate = 5000 // spawn a new member every n seconds when idle (in miliseconds)
UnitSpawnFX = FX_BannerCarrierSpawnUnit // name of particle FX to use when the BannerCarrier spawns a new unit
// This well object acts like a banner carrier except it spawns unit on nearby hordes instead of itself.
ReplenishNearbyHorde = Yes
ScanHordeDistance = 200
End
Behavior = AudioLoopUpgrade ModuleTag_HouseOfHealingBuildLoop
// Play a "build loop" while the House of Healing is building up
TriggeredBy = Upgrade_MenFortressHouseOfHealing
//ConflictsWith = Upgrade_PosternGate Upgrade_WallBanner
SoundToPlay = BuildingConstructionLoop
KillOnDeath = Yes
KillAfterMS = 5000 ; Should match the length of the build-up animation [Or a little shorter since sounds take a little while to die]
End
Behavior = CastleUpgrade ModuleTag_PassOutHouseOfHealingUpgrade
TriggeredBy = Upgrade_MenFortressHouseOfHealing
Upgrade = Upgrade_MenFortressHouseOfHealing
End
// Ivory Tower improvement, Gives a bonus to me, as well as unlocking a spell
Behavior = AttributeModifierUpgrade ModuleTag_IvoryTowerBonus
AttributeModifier = MenFortressIvoryTowerBonus
TriggeredBy = Upgrade_MenFortressIvoryTower Upgrade_MenFortressNumenorStonework
RequiresAllTriggers = Yes
End
Behavior = GeometryUpgrade TowerGeom
TriggeredBy = Upgrade_MenFortressIvoryTower Upgrade_MenFortressNumenorStonework
RequiresAllTriggers = Yes
ShowGeometry = HighTowerGeom
End
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_IvoryTowerVisionEnabler
SpecialPowerTemplate = SpecialAbilityMenFortressIvoryTowerVision
TriggeredBy = Upgrade_MenFortressIvoryTower Upgrade_MenFortressNumenorStonework
RequiresAllTriggers = Yes
End
Behavior = OCLSpecialPower ModuleTag_IvoryTowerVision
SpecialPowerTemplate = SpecialAbilityMenFortressIvoryTowerVision
StartsPaused = Yes
OCL = SpecialPowerIvoryTowerVision
CreateLocation = CREATE_AT_LOCATION
End
Behavior = AudioLoopUpgrade ModuleTag_IvoryTowerBuildLoop
; Play a "build loop" while the IvoryTower is building up
TriggeredBy = Upgrade_MenFortressIvoryTower ;Upgrade_MenFortressNumenorStonework
;ConflictsWith = Upgrade_PosternGate Upgrade_WallBanner
SoundToPlay = BuildingBigConstructionLoop
KillOnDeath = Yes
KillAfterMS = 2500 ; Should match the length of the build-up animation [Or a little shorter since sounds take a little while to die]
End
Behavior = ModelConditionUpgrade ModuleTag_ShowTheTower
TriggeredBy = Upgrade_MenFortressIvoryTower Upgrade_MenFortressNumenorStonework
RequiresAllTriggers = Yes
AddConditionFlags = UPGRADE_IVORY_TOWER
AddTempConditionFlag = ModelConditionState:USER_2 //For buildup
TempConditionTime = 10.0 //try to match buildup anim time
Permanent = Yes
End
#include "..\..\..\FortressRingFunc.inc"
Behavior = AIUpdateInterface ModuleTag_AI
AILuaEventsList = FortressFunctions
AutoAcquireEnemiesWhenIdle = Yes
MoodAttackCheckRate = 250
End
//Money Maker
Behavior = AutoDepositUpdate AutoDepositModuleTag
DepositTiming = SH_GENERIC_KEEP_MONEY_TIME
DepositAmount = SH_GENERIC_KEEP_MONEY_AMOUNT
InitialCaptureBonus = 0 // no initial bonus
End
Behavior = TerrainResourceBehavior ModuleTag_NewMoneyDeadSpot
Radius = SH_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
GeometryIsSmall = No
Geometry = BOX // Main body
GeometryMajorRadius = 49
GeometryMinorRadius = 49
GeometryHeight = 50
AdditionalGeometry = BOX // 4 towers
GeometryMajorRadius = 12.0
GeometryMinorRadius = 12.0
GeometryHeight = 100.0
GeometryOffset = X:-40 Y:-40 Z:0
AdditionalGeometry = BOX
GeometryMajorRadius = 12.0
GeometryMinorRadius = 12.0
GeometryHeight = 100.0
GeometryOffset = X:-40 Y:40 Z:0
AdditionalGeometry = BOX
GeometryMajorRadius = 12.0
GeometryMinorRadius = 12.0
GeometryHeight = 100.0
GeometryOffset = X:40 Y:-40 Z:0
AdditionalGeometry = BOX
GeometryMajorRadius = 12.0
GeometryMinorRadius = 12.0
GeometryHeight = 100.0
GeometryOffset = X:40 Y:40 Z:0
AdditionalGeometry = BOX
GeometryName = HighTowerGeom
GeometryMajorRadius = 12
GeometryMinorRadius = 12
GeometryHeight = 175
GeometryOffset = X:0 Y:0 Z:0
GeometryUsedForHealthBox = No
GeometryContactPoint = X:-57 Y:57 Z:0 Repair
GeometryContactPoint = X:57 Y:-57 Z:0 Repair
GeometryContactPoint = X:49 Y:36.435 Z:0
GeometryContactPoint = X:-32.763 Y:-46.121 Z:0
GeometryContactPoint = X:0 Y:0 Z:180 Swoop
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER
End
//------------------------------------------------------------------------------
// This is the one object that you would place on a map and that the porter builds.
// It unpacks in to the citadel and the buildplots. It's an old CampFlag.
Object AtalanteFortress
SelectPortrait = BPGFortress
Draw = W3DScriptedModelDraw ModuleTag_01
OkToChangeModelColor = Yes
StaticModelLODMode = Yes ;// Will append M or L to the skin name depending on GameLOD
DefaultModelConditionState
Model = None
End
IdleAnimationState
End
;//Need this since the default condition is none
ModelConditionState = WORLD_BUILDER
Model = GBFortress
End
;//Phantom structure when placing a new building to be build
ModelConditionState = BUILD_PLACEMENT_CURSOR
Model = None //GBFortress
End
;//Structure that stays where you will be building until the porter reaches the place to start building.
ModelConditionState = PHANTOM_STRUCTURE
Model = GBFortress
End
;// Animation state for build placement cursor
AnimationState = BUILD_PLACEMENT_CURSOR
BeginScript
CurDrawableHideSubObject("FIREGLOW")
CurDrawableHideSubObject("FLAMES")
CurDrawableHideSubObject("GBFFLAG")
CurDrawableHideSubObject("GBFFLAMING")
EndScript
End
;// Animation state for phantom structure
AnimationState = PHANTOM_STRUCTURE
BeginScript
CurDrawableHideSubObject("FIREGLOW")
CurDrawableHideSubObject("FLAMES")
CurDrawableHideSubObject("GBFFLAG")
CurDrawableHideSubObject("GBFFLAMING")
EndScript
End
ModelConditionState = RUBBLE
Model = GBFortress_D3
End
AnimationState = RUBBLE
Animation = Fortress_Rubble
AnimationName = GBFortress_D3SK.GBFortress_D3AN
AnimationMode = ONCE
End
EnteringStateFX = FX_FortressCollapse
End
ModelConditionState = ACTIVELY_BEING_CONSTRUCTED SNOW ;//UNPACKING
Model = GBFortress_A
Texture = GBFortress1.tga GBFortress1_Snow.tga
End
ModelConditionState = ACTIVELY_BEING_CONSTRUCTED ;//UNPACKING
Model = GBFortress_A
End
AnimationState = ACTIVELY_BEING_CONSTRUCTED
Animation = UpAndStill
AnimationName = GBFortress_ASK.GBFortress_ABL
AnimationMode = MANUAL
End
BeginScript
CurDrawablePlaySound("GondorBarracksBeginConstruction")
EndScript
ParticleSysBone = NONE BuildingContructDustCastles FollowBone:YES
StateName = BeingConstructed
End
End
//Door
Draw = W3DScriptedModelDraw ModuleTag_DrawDoor
DefaultModelConditionState
Model = None
End
//---Build Up---
ModelConditionState = ACTIVELY_BEING_CONSTRUCTED
Model = GBFDoor_A
End
AnimationState = ACTIVELY_BEING_CONSTRUCTED
Animation = GBFDoor_A
AnimationName = GBFDoor_A.GBFDoor_A
AnimationMode = MANUAL
End
End
End
ArmorSet
Conditions = None
Armor = FortressArmor
DamageFX = EmptyDamageFX ; just to avoid an assert
End
Side = Atalante
EditorSorting = STRUCTURE
PlacementViewAngle = -45 ; A -90 makes the door of the base face natural south. 0 would have it to the East.
BuildCost = SH_MEN_FORTRESS_BUILDCOST
BuildTime = SH_MEN_FORTRESS_BUILDTIME
DisplayName = OBJECT:MenFortress
// *** AUTO RESOLVE DATA ***
; When fighting an auto-resolve battle, a World Map castle actually becomes this unit
AutoResolveUnitType = AutoResolveUnit_Fortress
AutoResolveBody = AutoResolve_MenFortressBody
AutoResolveArmor
Armor = AutoResolve_MenFortressArmor
End
AutoResolveWeapon
Weapon = AutoResolve_MenFortressWeapon
End
; *** AUDIO Paraeters ***
#include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
VoiceFullyCreated = EVA:FortressComplete-Builder
VoiceSelect = MenFortressSelect
VoiceSelectUnderConstruction = BuildingGoodVoiceSelectUnderConstruction
SoundOnDamaged = BuildingLightDamageStone
SoundOnReallyDamaged = BuildingHeavyDamageStone
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
ClientBehavior = ModelConditionAudioLoopClientBehavior ModuleTag_PlayCollapseSound
ModelCondition = REQUIRED:RUBBLE Sound:BuildingSink
End
; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = STRUCTURE SELECTABLE IMMOBILE BASE_FOUNDATION MP_COUNT_FOR_VICTORY BASE_SITE CAN_SEE_THROUGH_STRUCTURE LIVING_WORLD_BUILDING_MIRROR CAN_CAST_REFLECTIONS
Body = StructureBody ModuleTag_05
MaxHealth = SH_MEN_FORTRESS_HEALTH
End
Behavior = CastleBehavior ModuleTag_castle
CastleToUnpackForFaction = Atalante Fortress_Men
FilterValidOwnedEntries = ANY +STRUCTURE +WALK_ON_TOP_OF_WALL +BASE_FOUNDATION +TACTICAL_MARKER ;Anything that does not fit this filter will be given to the neutral player, so the template can have rocks and props.
MaxCastleRadius = 120.0
InstantUnpack = Yes
KeepDeathKillsEverything = Yes
EvaEnemyCastleSightedEvent = EnemyFortressSighted
End
Behavior = StructureCollapseUpdate ModuleTag_08
MinCollapseDelay = 000
MaxCollapseDelay = 000
CollapseDamping = .5
MaxShudder = 0.6
MinBurstDelay = 250
MaxBurstDelay = 800
BigBurstFrequency = 4
FXList = INITIAL FX_FortressCollapse
;FXList = ALMOST_FINAL FX_FortressCollapse
DestroyObjectWhenDone = Yes
CollapseHeight = 155
End
Behavior = GettingBuiltBehavior ModuleTag_GettingBuiltBehavior
WorkerName = GondorWorkerNoSelect
SpawnTimer = SH_DEFAULT_STRUCTURE_HEALDELAY
End
Behavior = AIUpdateInterface ModuleTag_AI
AILuaEventsList = FortressFunctions
End
//Main
Geometry = BOX
GeometryMajorRadius = 64
GeometryMinorRadius = 64
GeometryHeight = 50
//Plot locations
AdditionalGeometry = BOX
GeometryName = Plots
GeometryMajorRadius = 10.0
GeometryMinorRadius = 10.0
GeometryHeight = 0.8
GeometryOffset = X:64.0 Y:-64.0 Z:0
AdditionalGeometry = BOX
GeometryName = Plots
GeometryMajorRadius = 10.0
GeometryMinorRadius = 10.0
GeometryHeight = 0.8
GeometryOffset = X:00 Y:-62.0 Z:0
AdditionalGeometry = BOX
GeometryName = Plots
GeometryMajorRadius = 10.0
GeometryMinorRadius = 10.0
GeometryHeight = 0.8
GeometryOffset = X:-64.0 Y:-64.0 Z:0
AdditionalGeometry = BOX
GeometryName = Plots
GeometryMajorRadius = 10.0
GeometryMinorRadius = 10.0
GeometryHeight = 0.8
GeometryOffset = X:-64.0 Y:64.0 Z:0
AdditionalGeometry = BOX
GeometryName = Plots
GeometryMajorRadius = 10.0
GeometryMinorRadius = 10.0
GeometryHeight = 0.8
GeometryOffset = X:0 Y:62.0 Z:0
AdditionalGeometry = BOX
GeometryName = Plots
GeometryMajorRadius = 10.0
GeometryMinorRadius = 10.0
GeometryHeight = 0.8
GeometryOffset = X:64.0 Y:64.0 Z:0
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
GeometryContactPoint = X:-90 Y:82 Z:0 Repair
GeometryContactPoint = X:84 Y:-79 Z:0 Repair
GeometryContactPoint = X:5.576 Y:44.987 Z:0
GeometryContactPoint = X:-38.348 Y:-42.113 Z:0
GeometryContactPoint = X:-28.448 Y:-0.003 Z:75.14 Swoop
End
Code from commandset.ini:
CommandSet AtalanteFortressCommandSet
InitialVisible = 7
1 = Command_ConstructAtalanteBuilder
2 = Command_SelectRevivablesMenFortress
3 = Command_FireWeaponMenFortressBoilingOil
4 = Command_SpecialAbilityIvoryTowerVision
6 = Command_Sell
5 = Command_SelectUpgradesMenFortress
8 = Command_PurchaseUpgradeMenFortressBanners
9 = Command_PurchaseUpgradeMenFortressHouseOfHealing
10 = Command_PurchaseUpgradeMenFortressFlamingMunitions
11 = Command_PurchaseUpgradeMenFortressBoilingOil
12 = Command_PurchaseUpgradeMenFortressNumenorStonework
13 = Command_PurchaseUpgradeMenFortressIvoryTower
14 = Command_RadialBack
15 = Command_RingHeroReviveSlot
16 = Command_CreateAHeroReviveSlot
17 = Command_GenericReviveSlot1
18 = Command_GenericReviveSlot2
19 = Command_GenericReviveSlot3
20 = Command_GenericReviveSlot4
21 = Command_GenericReviveSlot5
22 = Command_GenericReviveSlot6
23 = Command_GenericReviveSlot7
24 = Command_RadialBack
End
Code from playertemplate.ini:
PlayerTemplate FactionAtalante
Side = Atalante
PlayableSide = Yes
Evil = No
StartMoney = 0
MaxLevelMP = #DIVIDE( SH_PLAYER_MAX_PURCHASE_POINTS_DEFAULT SH_PLAYER_PURCHASE_POINTS_GRANTED )
MaxLevelSP = #DIVIDE( SH_PLAYER_MAX_PURCHASE_POINTS_GOOD SH_PLAYER_PURCHASE_POINTS_GRANTED )
PreferredColor = R:0 G:123 B:167
StartingBuilding = AtalanteFortress
StartingUnit1 = AtalanteBuilder
StartingUnitOffset1 = X:30 Y:200 Z:0
StartingUnit0 = AtalanteBuilder
StartingUnitOffset0 = X:1 Y:130 Z:0
StartingUnitTacticalWOTR = AtalanteBuilder
StartingUnitTacticalWOTR = AtalanteBuilder
IntrinsicSciences = SCIENCE_GOOD
IntrinsicSciencesMP = SCIENCE_MEN_R
SpellBook = GoodSpellBook
SpellBookMp = MenRevisedSpellBook
PurchaseScienceCommandSet = GoodSpellStoreCommandSet
PurchaseScienceCommandSetMP = MenRevisedSpellStoreCommandSet
DisplayName = INI:FactionAtalante
DefaultPlayerAIType = MenSkirmishAI
BeaconName = MultiplayerBeacon
LightPointsUpSound = GondorLightPointsUp
ObjectiveAddedSound = Gui_MissionObjectiveNew
ObjectiveCompletedSound = Gui_MissionObjectiveCompleted
InitialUpgrades = Upgrade_AtalanteFaction
// NOTE: It is very important that the create-a-hero be the first buildable hero, to ensure that the create-a-hero and the ring hero are always
// attached to the first two buttons in the command set.
BuildableHeroesMP = CreateAHero
BuildableRingHeroesMP = ElvenGaladriel_RingHero
SpellStoreCurrentPowerLabel = APT:SpellStoreCurrentEvenstarPower
SpellStoreMaximumPowerLabel = APT:SpellStoreMaximumEvenstarPower
ResourceModifierObjectFilter = RESOURCE_MODIFIER_OBJECT_FILTER
ResourceModifierValues = 100 100 100 100 100 100 100 100 100 100 100
MultiSelectionPortrait = UPGondor_Army
LoadScreenMusic = Shell2MusicForLoadScreen
End
So...I need to make a .bse file? Anything else while I'm at it? >_0
EDIT: Made a .bse file. Referenced it in CastleToUnpackForFaction in the fortress (changed it to "fortress_atalante" instead of "fortress_men") and now when I start the game, no fortress at all shows up (and then I'm instantly defeated). Is there some other step I missed?
Edited by acidRain, 05 July 2013 - 03:49 PM.