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_evilfaction_structures_isengard_isengardcastlewalls.ini < prev    next >
Text File  |  2006-01-31  |  32KB  |  1,093 lines

  1.  
  2.  
  3.  
  4. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  5. ;;                                                            ;;
  6. ;;    CASTLE WALL PIECES FOR THE NEW WALL BUILD SYSTEM        ;;
  7. ;;                                                            ;;
  8. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  9.  
  10. Object IsengardCastleWallSegment
  11.   
  12.     // *** ART Parameters ***  
  13.       SelectPortrait = BPIWall
  14.   
  15.     Draw = W3DScriptedModelDraw ModuleTag_Draw
  16.         OkToChangeModelColor  = Yes
  17.         UseStandardModelNames = Yes
  18.         DefaultModelConditionState
  19.             Model = IBWallN
  20.         End
  21.         
  22.         IdleAnimationState
  23. ;            Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
  24. ;            Animation                =    ReallyDamagedanimation
  25. ;                ;AnimationName        =     IBWallRamp2.IBWallRamp2
  26. ;                AnimationName        =     GBWallN.GBWallN
  27. ;                AnimationMode        =    LOOP
  28. ;              End
  29.                StateName = STATE_None
  30.         End
  31.  
  32.  
  33.  
  34.         //------------ New Build Up States coming soon.         
  35.         ModelConditionState = SNOW AWAITING_CONSTRUCTION
  36.             Model = IBWallN_A
  37.             Texture    = IBFortress.tga IBFortress_snow.tga
  38.         End
  39.                 
  40.         ModelConditionState   = AWAITING_CONSTRUCTION 
  41.             Model               = IBWallN_A
  42.         End
  43.         AnimationState        = AWAITING_CONSTRUCTION
  44.             Animation           =  DBWallN_A
  45.                 AnimationName     =  IBWallN_A.IBWallN_A
  46.                 AnimationMode     = MANUAL
  47.                 AnimationBlendTime = 0
  48.             End
  49.             Flags                  = START_FRAME_FIRST
  50.         End
  51.  
  52.         ModelConditionState    = UPGRADE_NUMENOR_STONEWORK ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
  53.             Model    = IBWallN_A
  54.             Texture    = IBFortress.tga IBFortress_U.tga
  55.         End
  56.         
  57.         ModelConditionState = SNOW ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
  58.             Model = IBWallN_A
  59.             Texture    = IBFortress.tga IBFortress_snow.tga
  60.         End
  61.         
  62.         ModelConditionState   = ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
  63.             Model               = IBWallN_A
  64.         End
  65.         
  66.         AnimationState        = ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
  67.             Animation           = DBWallN_A
  68.                 AnimationName     = IBWallN_A.IBWallN_A
  69.                 AnimationMode     = MANUAL
  70.                 AnimationBlendTime = 0
  71.             End
  72.             Flags                  = START_FRAME_FIRST
  73.             StateName              = BeingConstructed
  74.             ParticleSysBone   = NONE WallConstructDust FollowBone:Yes
  75.         End
  76.         
  77.  
  78.         //--damaged building      
  79.         ModelConditionState  = DAMAGED
  80.             Model         = IBWallN_D1  
  81.         End
  82.         AnimationState = DAMAGED
  83.             EnteringStateFX    = FX_WallDamaged
  84.         End        
  85.         
  86.         ModelConditionState  = REALLYDAMAGED
  87.             Model         = IBWallN_D2
  88.         End
  89.         
  90.         AnimationState = REALLYDAMAGED
  91.               Animation                =    RubbleAnimation
  92.                 AnimationName        =     IBWallN_D2.IBWallN_D2
  93.                 AnimationMode        =    ONCE
  94.               End
  95.             EnteringStateFX    = FX_WallDamaged
  96.         End
  97.  
  98.         ModelConditionState  = COLLAPSING
  99.             Model         = IBWallN_D3
  100.         End
  101.         
  102.         AnimationState = COLLAPSING
  103.               Animation                =    RubbleAnimation
  104.                 AnimationName        =     IBWallN_D3.IBWallN_D3
  105.                 AnimationMode        =    ONCE
  106.               End
  107.               ParticleSysBone NONE WallDestructionDust
  108.         End
  109.  
  110.         ModelConditionState  = RUBBLE
  111.             Model         = None    ;GBWall_Rubble  
  112.         End  
  113.         
  114.         ModelConditionState  = POST_RUBBLE
  115.             Model         = None    ;GBWall_Rubble
  116.         End
  117.         AnimationState = POST_RUBBLE
  118.         End
  119.  
  120.         ModelConditionState  = POST_COLLAPSE
  121.             Model         = None
  122.         End
  123.         AnimationState = POST_COLLAPSE
  124.         End 
  125.  
  126.         ModelConditionState = UPGRADE_NUMENOR_STONEWORK
  127.             Model    = IBWallN
  128.             Texture    = IBFortress.tga IBFortress_U.tga
  129.         End
  130.         ModelConditionState = SNOW  
  131.             Model = IBWallN
  132.             Texture    = IBFortress.tga IBFortress_snow.tga
  133.         End     
  134.                 
  135.     End
  136.  
  137.     Draw = W3DScriptedModelDraw ModuleTag_Draw_Rubble
  138.         OkToChangeModelColor  = Yes
  139.         UseStandardModelNames = Yes
  140.         DefaultModelConditionState
  141.             Model = None
  142.         End
  143.     
  144.         ModelConditionState  = COLLAPSING
  145.             Model         = GBWall_Rubble
  146.         End
  147.         
  148.         ModelConditionState  = RUBBLE
  149.             Model         = GBWall_Rubble
  150.         End
  151.         
  152.         ModelConditionState  = POST_RUBBLE
  153.             Model         = GBWall_Rubble
  154.         End
  155.  
  156.         ModelConditionState  = POST_COLLAPSE
  157.             Model         = None
  158.         End
  159.     End
  160.        
  161.     // ***DESIGN parameters ***
  162.     DisplayName         = OBJECT:IsengardCastleWallSegment
  163.     Side                = Isengard
  164.     EditorSorting       = STRUCTURE
  165.     ThreatLevel = 1.0
  166.      
  167.     BuildCost           = ISENGARD_CASTLE_WALLSEGMENT_BUILDCOST
  168.     BuildTime           = ISENGARD_CASTLE_WALLSEGMENT_BUILDTIME
  169.     VisionRange         = 160.0          // Shroud clearing distance
  170.     ShroudClearingRange = 160
  171.     CommandSet            = IsengardWallUpgradeNodeCommandSet
  172.  
  173.     // *** AUDIO Parameters ***
  174.  
  175.     #include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
  176.  
  177.     VoiceSelect                        = Gui_PlotSelect2
  178.     VoiceSelectUnderConstruction    = BuildingEvilVoiceSelectUnderConstruction
  179.  
  180.     SoundOnDamaged                    = BuildingLightDamageStone
  181.     SoundOnReallyDamaged            = BuildingHeavyDamageStone
  182.  
  183.     UnitSpecificSounds
  184.         UnderConstruction        = WallConstructionLoop  ; Built first time
  185.         ; UnderRepairFromDamage    = NoSound                    ; Repaired No animation on the building, so don't bother playing sound
  186.         UnderRepairFromRubble    = WallConstructionLoop    ; Repaired from completely destroyed (not used???)
  187.     End
  188.  
  189.     ClientBehavior = ModelConditionAudioLoopClientBehavior ModuleTag_PlayCollapseSound
  190.         ModelCondition = REQUIRED:RUBBLE Sound:BuildingSink
  191.     End
  192.  
  193.     CampnessValue = CAMPNESS_WALL
  194.  
  195.     // *** ENGINEERING Parameters ***
  196.     RadarPriority       = STRUCTURE
  197.     KindOf              = PRELOAD STRUCTURE SELECTABLE IMMOBILE WALL_SEGMENT SCALEABLE_WALL MADE_OF_STONE
  198.     ThreatBreakdown ThreatBreakdown_ModuleTag
  199.         AIKindOf = WALL
  200.     End
  201.      
  202.     //This is important to let the user select the rubble to begin self repair
  203.     KeepSelectableWhenDead    = Yes
  204.  
  205.     Behavior            = GettingBuiltBehavior ModuleTag_04
  206.         SelfBuildingLoop            = WallConstructionLoop            // Only played if we DON'T spawn a worker
  207.         SelfRepairFromDamageLoop    = NoSound                        // This doesn't cause an animation, so don't bother playing a sound
  208.         SelfRepairFromRubbleLoop    = WallConstructionLoop
  209.         UseSpawnTimerWithoutWorker         = Yes
  210.         SpawnTimer    = DEFAULT_STRUCTURE_HEALDELAY
  211.         RebuildTimeSeconds            = ISENGARD_CASTLE_WALLSEGMENT_BUILDTIME
  212.     End
  213.  
  214.     Body                = StructureBody ModuleTag_05
  215.         MaxHealth                = ISENGARD_CASTLE_WALLSEGMENT_HEALTH
  216.         MaxHealthDamaged        = ISENGARD_CASTLE_WALLSEGMENT_HEALTH_DAMAGED
  217.         MaxHealthReallyDamaged    = ISENGARD_CASTLE_WALLSEGMENT_HEALTH_REALLY_DAMAGED
  218.     End
  219.  
  220.     // These should always appear together on wall segments
  221.     Behavior = KeepObjectDie ModuleTag_IWantRubble 
  222.         DeathTypes            = ALL -SUICIDED
  223.     End
  224.     Behavior            = SlowDeathBehavior ModuleTag_SlowDeath
  225.         DeathTypes            = NONE +SUICIDED
  226.         DestructionDelay = 5000
  227.     End                                                
  228.     // These should always appear together on wall segments
  229.  
  230.     Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Hub
  231.         ReplaceWith = IsengardCastleWallHub
  232.         TriggeredBy = Upgrade_IsengardWallHub
  233.         ConflictsWith = Upgrade_IsengardWallRegularGate
  234.     End
  235.         
  236.     Behavior = ReplaceSelfUpgrade ModuleTag_Replace_With_Gate
  237.         ReplaceWith = IsengardCastleWallGate
  238.         TriggeredBy = Upgrade_IsengardWallRegularGate
  239.         ConflictsWith = Upgrade_IsengardWallHub
  240.     End
  241.  
  242.     Behavior = ProductionUpdate ModuleTag_RequiredForUpgradeProduction
  243.     End
  244.  
  245.     Behavior = InheritUpgradeCreate ModuleTag_InheritStonework
  246.         Radius = ISENGARD_FORTRESS_WALL_EFFECTIVE_RADIUS
  247.         Upgrade = Upgrade_IsengardFortressIronPlating
  248.         ObjectFilter = ANY +IsengardFortressCitadel
  249.     End
  250.  
  251.     Behavior = AttributeModifierUpgrade ModuleTag_Reinforced
  252.         TriggeredBy                = Upgrade_IsengardFortressIronPlating
  253.         AttributeModifier        = IronPlatingExpansion_Bonus        
  254.     End
  255.  
  256.     Behavior = ModelConditionUpgrade ModuleTag_ShowThePlating
  257.         TriggeredBy            = Upgrade_IsengardFortressIronPlating        
  258.         AddConditionFlags    = UPGRADE_NUMENOR_STONEWORK
  259.         Permanent            = Yes
  260.     End
  261.     
  262.     ArmorSet
  263.         Conditions        = None
  264.         Armor             = IsenWallArmor
  265.         DamageFX          = None
  266.     End
  267.  
  268.     ;//    Geometry for the temp men small wall segment
  269.     Geometry              = BOX
  270.     GeometryMajorRadius   = 5.0        ;10.0 
  271.     GeometryMinorRadius   = 20.0
  272.     GeometryHeight        = 40.0    ;47
  273.     GeometryIsSmall       = No
  274.       
  275.     ;Geometry              = BOX
  276.     ;GeometryMajorRadius   = 25.0
  277.     ;GeometryMinorRadius   = 20.0
  278.     ;GeometryHeight        = 50
  279.     ;GeometryIsSmall       = No
  280.   
  281.     Shadow                = SHADOW_VOLUME
  282.     BuildCompletion     = PLACED_BY_PLAYER
  283. End
  284.  
  285. ;---------------------------------------------
  286. Object IsengardCastleWallHub
  287.   
  288.   ; *** ART Parameters ***
  289.   
  290.       SelectPortrait = BPIWall_WallHub
  291.   
  292.     Draw = W3DScriptedModelDraw ModuleTag_Draw
  293.         OkToChangeModelColor  = Yes
  294.         UseStandardModelNames = Yes
  295.         DefaultModelConditionState
  296.             Model = IBWallRmprtN
  297.         End
  298.         
  299.         IdleAnimationState
  300. ;            Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
  301. ;            Animation                =    ReallyDamagedanimation
  302. ;                ;AnimationName        =     IBWallRmprt.IBWallRmprt
  303. ;                AnimationName        =     GBWallRmprtN.GBWallRmprtN
  304. ;                AnimationMode        =    LOOP
  305. ;             End
  306.                StateName = STATE_None
  307.         End
  308.  
  309.  
  310.  
  311.         ;------------ New Build Up States coming soon. 
  312.         
  313.         ModelConditionState = SNOW AWAITING_CONSTRUCTION
  314.             Model = IBWallRmprtN_A
  315.             Texture    = IBFortress.tga IBFortress_snow.tga
  316.         End
  317.                 
  318.         ModelConditionState   = AWAITING_CONSTRUCTION 
  319.             Model               = IBWallRmprtN_A
  320.         End
  321.         AnimationState        = AWAITING_CONSTRUCTION
  322.             Animation           =  DBWallN_A
  323.                 AnimationName     =  IBWallRmprtN_A.IBWallRmprtN_A
  324.                 AnimationMode     = MANUAL
  325.                 AnimationBlendTime = 0
  326.             End
  327.             Flags                  = START_FRAME_FIRST
  328.         End
  329.  
  330.         ModelConditionState = UPGRADE_NUMENOR_STONEWORK ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
  331.             Model    = IBWallRmprtN_A
  332.             Texture    = IBFortress.tga IBFortress_U.tga
  333.         End
  334.  
  335.         ModelConditionState = SNOW ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
  336.             Model = IBWallRmprtN_A
  337.             Texture    = IBFortress.tga IBFortress_snow.tga
  338.         End
  339.         
  340.         ModelConditionState   = ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
  341.             Model               = IBWallRmprtN_A
  342.         End
  343.         
  344.         AnimationState        = ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
  345.             Animation           = IBWallRmprtN_A
  346.                 AnimationName     = IBWallRmprtN_A.IBWallRmprtN_A
  347.                 AnimationMode     = MANUAL
  348.                 AnimationBlendTime = 0
  349.             End
  350.             Flags                  = START_FRAME_FIRST
  351.             StateName              = BeingConstructed
  352.             ParticleSysBone   = NONE WallConstructDust FollowBone:Yes
  353.             BeginScript
  354.                 CurDrawablePlaySound("GondorBarracksBeginConstruction")
  355.             EndScript
  356.         End
  357.         
  358.  
  359.         ;--damaged building
  360.       
  361.         ModelConditionState  = DAMAGED
  362.             Model         = IBWallRmprtN_D1  
  363.         End
  364.         AnimationState = DAMAGED
  365.             EnteringStateFX    = FX_HubDamaged
  366.         End        
  367.         
  368.         ModelConditionState  = REALLYDAMAGED
  369.             Model         = IBWallRmprtN_D2
  370.         End
  371.         
  372.         AnimationState = REALLYDAMAGED
  373.               Animation                =    RubbleAnimation
  374.                 AnimationName        =     IBWallRmprtN_D2.IBWallRmprtN_D2
  375.                 AnimationMode        =    ONCE
  376.               End
  377.             EnteringStateFX    = FX_HubDamaged
  378.         End
  379.  
  380.         ModelConditionState  = COLLAPSING
  381.             Model         = IBWallRmprtN_D3
  382.         End
  383.         
  384.         AnimationState = COLLAPSING
  385.               Animation                =    RubbleAnimation
  386.                 AnimationName        =     IBWallRmprtN_D3.IBWallRmprtN_D3
  387.                 AnimationMode        =    ONCE
  388.               End
  389.               ParticleSysBone NONE HubDestructionDust
  390.               EnteringStateFX    = FX_StructureMediumCollapse
  391.         End
  392.  
  393.  
  394.         ModelConditionState  = DYING
  395.             Model         = IBWallRmprtN_D3
  396.         End
  397.         
  398.         AnimationState = DYING
  399.               Animation                =    RubbleAnimation
  400.                 AnimationName        =     IBWallRmprtN_D3.IBWallRmprtN_D3
  401.                 AnimationMode        =    ONCE
  402.               End
  403.               ParticleSysBone NONE HubDestructionDust
  404.               EnteringStateFX    = FX_StructureMediumCollapse
  405.         End
  406.  
  407.  
  408.  
  409.         ModelConditionState  = RUBBLE
  410.             Model         = None  
  411.         End  
  412.         
  413.         ModelConditionState  = POST_RUBBLE
  414.             Model         = NONE
  415.         End
  416.         AnimationState = POST_RUBBLE
  417.         End
  418.  
  419.         ModelConditionState  = POST_COLLAPSE
  420.         Model         = None
  421.         End
  422.         AnimationState = POST_COLLAPSE
  423.         End 
  424.  
  425.         ModelConditionState = UPGRADE_NUMENOR_STONEWORK
  426.             Model    = IBWallRmprtN
  427.             Texture    = IBFortress.tga IBFortress_U.tga
  428.         End
  429.  
  430.         ModelConditionState = SNOW  
  431.             Model = IBWallRmprtN
  432.             Texture    = IBFortress.tga IBFortress_snow.tga
  433.         End     
  434.  
  435.     End
  436.  
  437.     ; ***DESIGN parameters ***
  438.     RadarPriority       = STRUCTURE    
  439.     DisplayName         = OBJECT:IsengardCastleWallHub
  440.     Side                = Isengard
  441.     EditorSorting       = STRUCTURE
  442.     ThreatLevel = 1.0
  443.      
  444.     BuildCost           = ISENGARD_CASTLE_WALLHUB_BUILDCOST
  445.     BuildTime           = ISENGARD_CASTLE_WALLHUB_BUILDTIME
  446.     VisionRange         = 160.0          ; Shroud clearing distance
  447.     ShroudClearingRange = 160
  448.  
  449.  
  450.  
  451.     CommandSet = IsengardCastleWallHubCommandSet
  452.     
  453.  
  454.     ; *** AUDIO Parameters ***
  455.     #include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
  456.  
  457.     VoiceSelect                        = NeutralWallHubSelect    ;Gui_PlotSelect2
  458.     VoiceSelectUnderConstruction    = BuildingEvilVoiceSelectUnderConstruction
  459.  
  460.     SoundOnDamaged                    = BuildingLightDamageStone
  461.     SoundOnReallyDamaged            = BuildingHeavyDamageStone
  462.  
  463.     UnitSpecificSounds
  464.         UnderConstruction        = BuildingConstructionLoop  ; Built first time
  465.         ; UnderRepairFromDamage    = NoSound                    ; Repaired No animation on the building, so don't bother playing sound
  466.         UnderRepairFromRubble    = BuildingConstructionLoop    ; Repaired from completely destroyed (not used???)
  467.     End
  468.  
  469.     ClientBehavior = ModelConditionAudioLoopClientBehavior ModuleTag_PlayCollapseSound
  470.         ModelCondition = REQUIRED:COLLAPSING     Sound:BuildingSink
  471.     End
  472.  
  473.     CampnessValue = CAMPNESS_WALL
  474.  
  475.     ; *** ENGINEERING Parameters ***
  476.     RadarPriority       = STRUCTURE
  477.     KindOf              = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE WALL_HUB MADE_OF_STONE WALL_UPGRADE
  478.     ThreatBreakdown ThreatBreakdown_ModuleTag
  479.         AIKindOf = WALL
  480.     End
  481.      
  482.     Behavior            = GettingBuiltBehavior ModuleTag_04
  483.         UseSpawnTimerWithoutWorker         = Yes
  484.            SpawnTimer    = DEFAULT_STRUCTURE_HEALDELAY
  485.         ;SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
  486.         SelfRepairFromDamageLoop  = WallConstructionLoop
  487.         SelfRepairFromRubbleLoop  = BuildingConstructionLoop
  488.     End
  489.  
  490.     Body                = StructureBody ModuleTag_05
  491.         MaxHealth                = ISENGARD_CASTLE_WALLHUB_HEALTH
  492.         MaxHealthDamaged        = ISENGARD_CASTLE_WALLHUB_HEALTH_DAMAGED
  493.         MaxHealthReallyDamaged    = ISENGARD_CASTLE_WALLHUB_HEALTH_REALLY_DAMAGED
  494.     End
  495.  
  496.  
  497.     Behavior                = SlowDeathBehavior ModuleTag_SlowDeath
  498.         DeathTypes            = ALL
  499.         DestructionDelay    = 5000
  500.         ;Sound                = INITIAL BuildingSink
  501.     End
  502.     
  503.     Behavior = WallHubBehavior ModuleTag_WALL_HUB
  504.  
  505.         Options = OPTION_ONE
  506.         MaxBuildoutDistance = MEN_FORTRESS_WALL_EFFECTIVE_RADIUS
  507.         StaggeredBuildFactor = STANDARD_WALL_STAGGERED_BUILD_FACTOR
  508.  
  509.         ;;This defines the pattern built on flat terrain
  510.         SegmentTemplateName = IsengardCastleWallSegment
  511.         SegmentTemplateName = IsengardCastleWallSegment
  512.         SegmentTemplateName = IsengardCastleWallSegment
  513.         SegmentTemplateName = IsengardCastleWallSegment
  514.         SegmentTemplateName = IsengardCastleWallSegment
  515.         SegmentTemplateName = IsengardCastleWallSegment
  516.         SegmentTemplateName = IsengardCastleWallSegment
  517.         SegmentTemplateName = IsengardCastleWallSegment
  518.         SegmentTemplateName = IsengardCastleWallHub
  519.         
  520.         BuilderRadius = 20
  521.         
  522.         HubCapTemplateName = IsengardCastleWallHub
  523.         DefaultSegmentTemplateName = IsengardCastleWallSegment
  524.  
  525.         CliffCapTemplateName = IsengardWallCliffCap        
  526.         ;ShoreCapTemplateName = [NAME]        
  527.         ;BorderCapTemplateName = [NAME]        
  528.         ;ElevatedSegmentTemplateName = [NAME]
  529.  
  530.     End
  531.  
  532.     Behavior = TerrainResourceBehavior ModuleTag_NewMoneyDeadSpot
  533.         Radius            = 60        ;// How far we try to claim ground
  534.         MaxIncome        = 0            ;// If we were to get all we wanted, how much we would earn.  Linear slope to 0 at 0% claim
  535.         IncomeInterval    = 999999    ;// How often (in msec) we give that much money
  536.         HighPriority    = Yes        ;// A high priority claim gets to pretend it was there first.
  537.         Visible = No         ;// Don't show decal when a resource building is selected.
  538.     End
  539.  
  540.     Behavior = InheritUpgradeCreate ModuleTag_InheritStonework
  541.         Radius = ISENGARD_FORTRESS_WALL_EFFECTIVE_RADIUS
  542.         Upgrade = Upgrade_IsengardFortressIronPlating
  543.         ObjectFilter = ANY +IsengardFortressCitadel
  544.     End
  545.  
  546.     Behavior = AttributeModifierUpgrade ModuleTag_Reinforced
  547.         TriggeredBy                = Upgrade_IsengardFortressIronPlating
  548.         AttributeModifier        = IronPlatingExpansion_Bonus        
  549.     End
  550.  
  551.     Behavior = ModelConditionUpgrade ModuleTag_ShowThePlating
  552.         TriggeredBy            = Upgrade_IsengardFortressIronPlating        
  553.         AddConditionFlags    = UPGRADE_NUMENOR_STONEWORK
  554.         Permanent            = Yes
  555.     End    
  556.     
  557.     ArmorSet
  558.         Conditions        = None
  559.         Armor             = IsenWallArmor
  560.         DamageFX          = None
  561.     End
  562.  
  563.     ;//    Geometry for the temp small men wall hub
  564.     Geometry              = CYLINDER
  565.     GeometryMajorRadius   = 20.0 ; 
  566.     GeometryMinorRadius   = 20.0 ; 
  567.     GeometryHeight        = 70.0
  568.     GeometryIsSmall       = No
  569.  
  570.     AdditionalGeometry    = BOX
  571.     GeometryMajorRadius   = 5.0        ;10.0 
  572.     GeometryMinorRadius   = 20.0
  573.     GeometryHeight        = 40.0    ;47
  574.     GeometryIsSmall       = No
  575.     
  576.     Shadow                = SHADOW_VOLUME
  577.     BuildCompletion     = PLACED_BY_PLAYER
  578.     
  579.     GeometryContactPoint = X:-21        Y:22        Z:0            Repair
  580.     GeometryContactPoint = X:23        Y:-20        Z:0            Repair
  581.     GeometryContactPoint = X:5.576        Y:44.987    Z:0
  582.     GeometryContactPoint = X:-38.348    Y:-42.113    Z:0
  583.     GeometryContactPoint = X:-28.448    Y:-0.003    Z:75.14        Swoop
  584. End
  585.  
  586.  
  587. ;---------------------------------------------------------
  588. Object IsengardCastleWallGate
  589.    
  590.    ; *** ART Parameters ***
  591.    
  592.        SelectPortrait = BPIWall_MainGate
  593.    
  594.      Draw = W3DScriptedModelDraw ModuleTag_Draw
  595.          OkToChangeModelColor  = Yes
  596.          UseStandardModelNames = Yes
  597.          DefaultModelConditionState
  598.              Model = IBWallGateN_SKN
  599.          End
  600.  
  601.  
  602. ;--------- damage states for the gate
  603.  
  604.         ModelConditionState   = DAMAGED
  605.             Model               = IBWallGateN_D1
  606.         End
  607.         
  608.         ModelConditionState   = REALLYDAMAGED
  609.             Model               = IBWallGateN_D2
  610.         End
  611.  
  612.         ModelConditionState  = COLLAPSING DOOR_1_OPENING
  613.             Model         = IBWallGateN_D4
  614.         End
  615.         AnimationState = COLLAPSING DOOR_1_OPENING
  616.               Animation                =    RubbleAnimation
  617.                 AnimationName        =     IBWallGateN_D4.IBWallGateN_D4
  618.                 AnimationMode        =    ONCE
  619.               End
  620.         End
  621.         
  622.         ModelConditionState  = COLLAPSING
  623.             Model         = IBWallGateN_D3
  624.         End
  625.         AnimationState = COLLAPSING
  626.               Animation                =    RubbleAnimation
  627.                 AnimationName        =     IBWallGateN_D3.IBWallGateN_D3
  628.                 AnimationMode        =    ONCE
  629.               End
  630.         End
  631.  
  632.         ModelConditionState  = DYING
  633.             Model         = IBWallGateN_D3
  634.         End
  635.         AnimationState = DYING
  636.               Animation                =    RubbleAnimation
  637.                 AnimationName        =     IBWallGateN_D3.IBWallGateN_D3
  638.                 AnimationMode        =    ONCE
  639.               End
  640.               EnteringStateFX    = FX_StructureMediumCollapse
  641.               ParticleSysBone NONE HubDestructionDust
  642.  
  643.         End
  644.  
  645.  
  646.         ModelConditionState  = RUBBLE
  647.             Model         = None  
  648.         End  
  649.         
  650.         ModelConditionState  = POST_RUBBLE
  651.             Model         = NONE
  652.             ParticleSysBone NONE SmokeBuildingMediumRubble
  653.         End
  654.         AnimationState = POST_RUBBLE
  655.         End
  656.  
  657.         ModelConditionState  = POST_COLLAPSE
  658.         Model         = None
  659.             ParticleSysBone NONE SmokeBuildingMediumRubble
  660.         End
  661.         AnimationState = POST_COLLAPSE
  662.         End 
  663.  
  664.                 
  665. ;------ Door Animations
  666.         
  667.         AnimationState = DOOR_1_OPENING 
  668.             Flags = START_FRAME_LAST
  669.             StateName = Door_Open
  670.             Animation                =    Death
  671.                 AnimationName        =    IBWallGateN_SKL.IBWallGateN_OP
  672.                 AnimationMode        =    ONCE
  673.             End
  674.             BeginScript
  675.                 Prev = CurDrawablePrevAnimationState()
  676.                 if Prev == "Door_Close" then CurDrawableSetTransitionAnimState("TRANS_Closed_To_Open") end
  677.             EndScript
  678.         End
  679.         TransitionState = TRANS_Closed_To_Open
  680.             Animation = Open 
  681.                 AnimationName    =    IBWallGateN_SKL.IBWallGateN_OPN
  682.                 AnimationMode    =    ONCE 
  683.             End
  684.         End
  685.     
  686.         AnimationState = DOOR_1_CLOSING 
  687.             Flags = START_FRAME_LAST
  688.             StateName = Door_Close
  689.             Animation                =    Death
  690.                 AnimationName        =    IBWallGateN_SKL.IBWallGateN_CL
  691.                 AnimationMode        =    ONCE
  692.             End
  693.             BeginScript
  694.                 Prev = CurDrawablePrevAnimationState()
  695.                 if Prev == "Door_Open" then CurDrawableSetTransitionAnimState("TRANS_Open_To_Closed") end
  696.             EndScript
  697.         End
  698.         TransitionState = TRANS_Open_To_Closed
  699.             Animation = Open 
  700.                 AnimationName    =    IBWallGateN_SKL.IBWallGateN_CLS
  701.                 AnimationMode    =    ONCE 
  702.             End
  703.         End
  704.         
  705.         ModelConditionState = UPGRADE_NUMENOR_STONEWORK
  706.             Model    = IBWallGateN_SKN
  707.             Texture    = IBFortress.tga IBFortress_U.tga
  708.         End
  709.  
  710.         ModelConditionState = SNOW
  711.             Model = IBWallGateN_SKN
  712.             Texture    = IBFortress.tga IBFortress_snow.tga
  713.         End
  714.         
  715.      End
  716.       
  717.    ; ***DESIGN parameters ***
  718.    DisplayName         = OBJECT:IsengardCastleWallGate
  719.    Side                = Isengard
  720.    EditorSorting       = STRUCTURE
  721.    ThreatLevel = 1.0
  722.   
  723.    BuildCost           = ISENGARD_CASTLE_WALLGATE_BUILDCOST
  724.    BuildTime           = ISENGARD_CASTLE_WALLGATE_BUILDTIME
  725.    VisionRange         = 160.0          ; Shroud clearing distance
  726.    ShroudClearingRange = 160
  727.    
  728.    CommandSet            = CastleGateCommandSet
  729.  
  730.    ; *** AUDIO Parameters ***
  731.  
  732.     #include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
  733.  
  734.     VoiceSelect                        = GateSelect
  735.     VoiceSelectUnderConstruction    = BuildingEvilVoiceSelectUnderConstruction
  736.  
  737.      SoundOnDamaged                    = BuildingLightDamageStone
  738.      SoundOnReallyDamaged            = BuildingHeavyDamageStone
  739.  
  740.     UnitSpecificSounds
  741.         UnderConstruction        = BuildingConstructionLoop  ; Built first time
  742.         ; UnderRepairFromDamage    = NoSound                    ; Repaired No animation on the building, so don't bother playing sound
  743.         UnderRepairFromRubble    = BuildingConstructionLoop    ; Repaired from completely destroyed (not used???)
  744.     End
  745.  
  746.     ;ClientBehavior = ModelConditionAudioLoopClientBehavior ModuleTag_PlayCollapseSound
  747.     ;    ModelCondition = REQUIRED:RUBBLE Sound:BuildingSink
  748.     ;End
  749.  
  750.     CampnessValue = CAMPNESS_WALL
  751.  
  752.    ; *** ENGINEERING Parameters ***
  753.    RadarPriority       = STRUCTURE
  754.    KindOf              = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE WALL_UPGRADE MADE_OF_STONE BLOCKING_GATE WALL_GATE
  755.   
  756.     Behavior            = GettingBuiltBehavior ModuleTag_04
  757.         SelfBuildingLoop            = WallConstructionLoop            // Only played if we DON'T spawn a worker
  758.         SelfRepairFromDamageLoop    = NoSound                        // This doesn't cause an animation, so don't bother playing a sound
  759.         SelfRepairFromRubbleLoop    = WallConstructionLoop
  760.         SpawnTimer                    = -1.0                            // Negative means no 'autoheal'
  761.         RebuildTimeSeconds            = ISENGARD_CASTLE_WALLGATE_BUILDTIME
  762.     End
  763.  
  764.     Body                = StructureBody ModuleTag_05
  765.         MaxHealth                = ISENGARD_CASTLE_WALLGATE_HEALTH
  766.         MaxHealthDamaged        = ISENGARD_CASTLE_WALLGATE_HEALTH_DAMAGED
  767.         MaxHealthReallyDamaged    = ISENGARD_CASTLE_WALLGATE_HEALTH_REALLY_DAMAGED
  768.     End
  769.   
  770.     Behavior            = SlowDeathBehavior ModuleTag_SlowDeath
  771.         DeathTypes            = ALL
  772.         DestructionDelay = 5000 
  773.     End                                                
  774.     
  775.     Behavior = GateOpenAndCloseBehavior ModuleTag_GATE
  776.         ResetTimeInMilliseconds            = 3000                ;important! this must be longer than the gates animation, ir it will twitch
  777.         OpenByDefault                    = No
  778.         PercentOpenForPathing            = 50
  779.         SoundOpeningGateLoop            = GateOpenStart
  780.         SoundClosingGateLoop            = GateCloseStart
  781.         SoundFinishedOpeningGate        = GateOpenEnd
  782.         SoundFinishedClosingGate        = GateCloseEnd
  783.         TimeBeforePlayingOpenSound        = 9500
  784.         TimeBeforePlayingClosedSound    = 9500
  785.     End
  786.     
  787.     Behavior = FakePathfindPortalBehaviour ModuleTag_FAKEPATHFIND
  788.         AllowEnemies            = No
  789.         AllowNonSkirmishAIUnits    = No
  790.     End
  791.     
  792.     Behavior = AIGateUpdate ModuleTage_AIGateUpdate
  793.         TriggerWidthX = 200.0
  794.         TriggerWidthY = 100.0
  795.     End
  796.  
  797.     Behavior = InheritUpgradeCreate ModuleTag_InheritStonework
  798.         Radius = ISENGARD_FORTRESS_WALL_EFFECTIVE_RADIUS
  799.         Upgrade = Upgrade_IsengardFortressIronPlating
  800.         ObjectFilter = ANY +IsengardFortressCitadel
  801.     End
  802.  
  803.     Behavior = AttributeModifierUpgrade ModuleTag_Reinforced
  804.         TriggeredBy                = Upgrade_IsengardFortressIronPlating
  805.         AttributeModifier        = IronPlatingExpansion_Bonus        
  806.     End
  807.  
  808.     Behavior = ModelConditionUpgrade ModuleTag_ShowThePlating
  809.         TriggeredBy            = Upgrade_IsengardFortressIronPlating        
  810.         AddConditionFlags    = UPGRADE_NUMENOR_STONEWORK
  811.         Permanent            = Yes
  812.     End
  813.     
  814.     ArmorSet
  815.         Conditions        = None
  816.         Armor             = IsenWallArmor
  817.         DamageFX          = None
  818.     End
  819.     
  820.     ;//    Geometry from small men wall gate
  821.     GeometryIsSmall          = No
  822.  
  823.     ; right pillar
  824.     Geometry              = BOX
  825.     GeometryMajorRadius   = 10.0  
  826.     GeometryMinorRadius   = 10.0  
  827.     GeometryHeight        = 75
  828.     GeometryOffset        = X:0 Y:50 Z:0
  829.     
  830.     ; left pillar
  831.     AdditionalGeometry    = BOX
  832.     GeometryMajorRadius   = 10.0  
  833.     GeometryMinorRadius   = 10.0  
  834.     GeometryHeight        = 75
  835.     GeometryOffset        = X:0 Y:-50 Z:0
  836.  
  837.     ; Main
  838.     AdditionalGeometry    = BOX
  839.     GeometryName          = "Closed"
  840.     GeometryMajorRadius   = 9.0  
  841.     GeometryMinorRadius   = 50.0  
  842.     GeometryHeight        = 50
  843.     
  844.     ; Left open
  845.     AdditionalGeometry    = BOX
  846.     GeometryName          = "OpenLeft"
  847.     GeometryMajorRadius   = 9.0  
  848.     GeometryMinorRadius   = 10.0  
  849.     GeometryHeight        = 40
  850.     GeometryOffset        = X:0 Y:-30 Z:0
  851.     
  852.     ; Right open
  853.     AdditionalGeometry    = BOX
  854.     GeometryName          = "OpenRight"
  855.     GeometryMajorRadius   = 9.0  
  856.     GeometryMinorRadius   = 10.0  
  857.     GeometryHeight        = 40
  858.     GeometryOffset        = X:0 Y:30 Z:0
  859.     
  860.     // need some geometry points to tell enemy weapons where to hit.
  861.     GeometryContactPoint = X:0    Y:50 Z:75
  862.     GeometryContactPoint = X:0    Y:50 Z:10
  863.     GeometryContactPoint = X:0    Y:-50 Z:10
  864.     GeometryContactPoint = X:0    Y:-50 Z:75
  865.     
  866.  
  867.     Shadow                = SHADOW_VOLUME
  868.     BuildCompletion     = PLACED_BY_PLAYER
  869. End
  870.    
  871.    
  872. ;----------------------------------------------------------------------
  873.    
  874. Object IsengardWallCliffCap
  875.  
  876.     SelectPortrait  =  BPIWall
  877.   
  878.   ; *** ART Parameters ***
  879.     
  880.        Draw = W3DScriptedModelDraw ModuleTag_Draw
  881.         OkToChangeModelColor  = Yes
  882.         UseStandardModelNames = Yes
  883.         DefaultModelConditionState
  884.             Model = IBWallNE
  885.         End
  886.         
  887.         IdleAnimationState
  888.                StateName = STATE_None
  889.         End
  890.  
  891.  
  892.  
  893.         //------------ New Build Up States coming soon.         
  894.         ModelConditionState = SNOW AWAITING_CONSTRUCTION
  895.             Model = IBWallNE_A
  896.             Texture    = IBFortress.tga IBFortress_snow.tga
  897.         End
  898.         ModelConditionState   = AWAITING_CONSTRUCTION 
  899.             Model               = IBWallNE_A
  900.         End
  901.         AnimationState        = AWAITING_CONSTRUCTION
  902.             Animation           =  IBWallNE_A
  903.                 AnimationName     =  IBWallNE_A.IBWallNE_A
  904.                 AnimationMode     = MANUAL
  905.                 AnimationBlendTime = 0
  906.             End
  907.             Flags                  = START_FRAME_FIRST
  908.         End
  909.  
  910.         ModelConditionState    = UPGRADE_NUMENOR_STONEWORK ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
  911.             Model    = IBWallNE_A
  912.             Texture    = IBFortress.tga IBFortress_U.tga
  913.         End
  914.         
  915.         ModelConditionState = SNOW ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
  916.             Model = IBWallNE_A
  917.             Texture    = IBFortress.tga IBFortress_snow.tga
  918.         End
  919.         
  920.         ModelConditionState   = ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
  921.             Model               = IBWallNE_A
  922.         End
  923.         
  924.         AnimationState        = ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED
  925.             Animation           = IBWallNE_A
  926.                 AnimationName     = IBWallNE_A.IBWallNE_A
  927.                 AnimationMode     = MANUAL
  928.                 AnimationBlendTime = 0
  929.             End
  930.             Flags                  = START_FRAME_FIRST
  931.             StateName              = BeingConstructed
  932.             ParticleSysBone   = NONE WallConstructDust FollowBone:Yes
  933.         End
  934.         
  935.  
  936.         ;--damaged building
  937.       
  938.         ModelConditionState  = DAMAGED
  939.             Model         = IBWallNE_D1
  940.         End
  941.         
  942.         AnimationState = DAMAGED
  943.             EnteringStateFX    = FX_WallDamaged
  944.         End        
  945.         
  946.         ModelConditionState  = REALLYDAMAGED
  947.             Model         = IBWallNE_D2
  948.         End
  949.         AnimationState = REALLYDAMAGED
  950.               Animation                =    RubbleAnimation
  951.                 AnimationName        =     IBWallNE_D2.IBWallNE_D2
  952.                 AnimationMode        =    ONCE
  953.               End
  954.             EnteringStateFX    = FX_WallDamaged
  955.         End
  956.  
  957.         ModelConditionState  = COLLAPSING
  958.             Model         = IBWallNE_D3
  959.         End
  960.         AnimationState = COLLAPSING
  961.               Animation                =    RubbleAnimation
  962.                 AnimationName        =     IBWallNE_D3.IBWallNE_D3
  963.                 AnimationMode        =    ONCE
  964.               End
  965.               ParticleSysBone NONE WallDestructionDust
  966.             EnteringStateFX            = FX_StructureMediumCollapse
  967.         End
  968.  
  969.         ModelConditionState  = RUBBLE
  970.             Model         = None    ;GBWall_Rubble  
  971.         End  
  972.         AnimationState = RUBBLE
  973.         End
  974.         
  975.         ModelConditionState  = POST_RUBBLE
  976.             Model         = None    ;GBWall_Rubble
  977.         End
  978.         AnimationState = POST_RUBBLE
  979.         End
  980.  
  981.         ModelConditionState  = POST_COLLAPSE
  982.             Model         = None
  983.         End
  984.         AnimationState = POST_COLLAPSE
  985.         End 
  986.         
  987.  
  988.         ModelConditionState = UPGRADE_NUMENOR_STONEWORK
  989.             Model    = IBWallNE
  990.             Texture    = IBFortress.tga IBFortress_U.tga
  991.         End
  992.         ModelConditionState = SNOW  
  993.             Model = IBWallNE
  994.             Texture    = IBFortress.tga IBFortress_snow.tga
  995.         End     
  996.                 
  997.     End
  998.     
  999. ;    Draw = W3DFloorDraw ModuleTag_DrawFloor    
  1000. ;;            StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD
  1001. ;          ModelName = GBWallN_Bib
  1002. ;    End
  1003.   
  1004.   ; ***DESIGN parameters ***
  1005.   DisplayName         = OBJECT:IsengardWallCliffCap
  1006.   Side                = Isengard
  1007.   EditorSorting       = STRUCTURE
  1008.   ThreatLevel = 1.0
  1009.  
  1010.  
  1011.     CommandSet            = IsengardWallCliffCapCommandSet
  1012.  
  1013.  
  1014.   BuildCost           = MEN_WALLSEGMENT_SMALL_BUILDCOST
  1015.   BuildTime           = MEN_WALLSEGMENT_SMALL_BUILDTIME
  1016.   VisionRange         = MEN_WALLSEGMENT_SMALL_VISION_RANGE
  1017.   ShroudClearingRange = MEN_WALLSEGMENT_SMALL_SHROUD_CLEAR
  1018.  
  1019.   ; *** AUDIO Parameters ***
  1020.     #include "..\..\..\Includes\StandardBuildingEvaEvents.inc"
  1021.     SoundOnDamaged        = BuildingLightDamageStone
  1022.     SoundOnReallyDamaged    = BuildingHeavyDamageStone
  1023.     VoiceSelectUnderConstruction    = BuildingEvilVoiceSelectUnderConstruction
  1024.  
  1025.     UnitSpecificSounds
  1026.         UnderConstruction        = WallConstructionLoop  ; Built first time
  1027.         ; UnderRepairFromDamage    = NoSound                    ; Repaired No animation on the building, so don't bother playing sound
  1028.         UnderRepairFromRubble    = WallConstructionLoop    ; Repaired from completely destroyed (not used???)
  1029.     End
  1030.  
  1031.     ;ClientBehavior = ModelConditionAudioLoopClientBehavior ModuleTag_PlayCollapseSound
  1032.     ;    ModelCondition = REQUIRED:RUBBLE Sound:BuildingSink
  1033.     ;End
  1034.  
  1035.     CampnessValue = CAMPNESS_WALL
  1036.  
  1037.   ; *** ENGINEERING Parameters ***
  1038.   RadarPriority       = STRUCTURE
  1039.   KindOf              = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE DEFENSIVE_WALL MADE_OF_STONE CAN_CAST_REFLECTIONS
  1040.    ThreatBreakdown ThreatBreakdown_ModuleTag
  1041.     AIKindOf = WALL
  1042.    End
  1043.  
  1044.   Behavior            = GettingBuiltBehavior ModuleTag_04
  1045.     UseSpawnTimerWithoutWorker         = Yes
  1046.        SpawnTimer    = DEFAULT_STRUCTURE_HEALDELAY
  1047.     SelfBuildingLoop = WallConstructionLoop ; Only played if we DON'T spawn a worker
  1048.     SelfRepairFromDamageLoop  = NoSound         ; This doesn't cause an animation, so don't bother playing a sound
  1049.     SelfRepairFromRubbleLoop  = WallConstructionLoop
  1050.   End
  1051.  
  1052.   Body                = StructureBody ModuleTag_05
  1053.     MaxHealth         = MEN_WALLSEGMENT_SMALL_HEALTH
  1054.   End
  1055.  
  1056. ;  Behavior            = DestroyDie ModuleTag_07
  1057. ;    ;nothing
  1058. ;  End
  1059.     
  1060.     // These should always appear together on wall segments
  1061.     Behavior = KeepObjectDie ModuleTag_IWantRubble 
  1062.         DeathTypes            = ALL -SUICIDED
  1063.     End
  1064.     Behavior            = SlowDeathBehavior ModuleTag_SlowDeath
  1065.         DeathTypes            = NONE +SUICIDED
  1066.         DestructionDelay = 5000
  1067.     End    
  1068.       
  1069.   ArmorSet
  1070.         Conditions        = None
  1071.         Armor             = IsenWallArmor
  1072.         DamageFX          = None
  1073.     End
  1074.  
  1075.  
  1076.     Geometry                  = BOX
  1077.     GeometryMajorRadius       = 10.0 
  1078.     GeometryMinorRadius       = 40.0   
  1079.     GeometryHeight            = 80
  1080.     GeometryIsSmall            = No
  1081.     GeometryOffset            = X:0 Y:-20 Z:-40
  1082.   
  1083.   Shadow                = SHADOW_VOLUME
  1084.   BuildCompletion     = PLACED_BY_PLAYER
  1085. End
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.    
  1092.    
  1093.