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_civilian_rohanbuildings.ini < prev    next >
Text File  |  2006-01-31  |  56KB  |  1,959 lines

  1. ;----------------------------------------------------------------------------------------------
  2. ;
  3. ; FILE: RohanBuildings.ini
  4. ;
  5. ;----------------------------------------------------------------------------------------------
  6.  
  7. ;----------------------------------------------------------------------------------------------
  8. ;
  9. ;    Base gate template, note an instance of this type shouldn't be created, use a left or
  10. ;    right version instead.
  11. ;
  12. ;----------------------------------------------------------------------------------------------
  13. Object RohanCastleElevator
  14.  
  15. SelectPortrait = BRCastleWall
  16.   ; *** ART Parameters ***
  17.   Draw = W3DScriptedModelDraw ModuleTag_01
  18.         OkToChangeModelColor = Yes
  19.  
  20.         ExtraPublicBone = Elev01
  21.         ExtraPublicBone = Elev02
  22.         ExtraPublicBone = Elev03
  23.         ExtraPublicBone = Elev04
  24.  
  25.         WallBoundsMesh = P1
  26.  
  27.     DefaultModelConditionState
  28.       Model = RBCastELEV
  29.     End
  30.  
  31.         ModelConditionState = WORLD_BUILDER
  32.               Model = RBCastElevW
  33.           End
  34.  
  35.     IdleAnimationState
  36.         Animation
  37.             AnimationName     = RBCastELEV.RBCastELEV
  38.             AnimationMode     = MANUAL
  39.             AnimationBlendTime = 0
  40.         End
  41.         ;Flags = START_FRAME_LAST ;uses seperate model now.
  42.     End    
  43.  
  44.     ;------------Build Up States
  45.     ModelConditionState   = BASE_BUILD
  46.       Model               = RBCastELEV_A
  47. ;      ParticleSysBone      = NONE BuildingDoughnutCloud
  48.       ParticleSysBone     = NONE BuildingContructDust
  49.     End  
  50.     AnimationState          = BASE_BUILD
  51.         Animation
  52.             AnimationName = RBCastELEV_A.RBCastELEV_A
  53.             AnimationMode = ONCE
  54.             AnimationSpeedFactorRange = 2.0 2.5 ; keep range wide to avoid lockstep anims
  55.         End
  56.     End
  57.     
  58.     ModelConditionState   = JUST_BUILT
  59.       Model               = RBCastELEV_A
  60.     End  
  61.     AnimationState          = JUST_BUILT
  62.         Animation
  63.             AnimationName = RBCastELEV_A.RBCastELEV_A
  64.             AnimationMode = MANUAL
  65.             AnimationBlendTime = 0
  66.         End
  67.         Flags = START_FRAME_FIRST
  68.     End    
  69.     
  70.     ModelConditionState   = ACTIVELY_BEING_CONSTRUCTED
  71.       Model               = RBCastELEV_A
  72.       ParticleSysBone     = NONE BuildingContructDust
  73.     End  
  74.     AnimationState          = ACTIVELY_BEING_CONSTRUCTED
  75.         Animation
  76.             AnimationName = RBCastELEV_A.RBCastELEV_A
  77.             AnimationMode = MANUAL
  78.             AnimationBlendTime = 0
  79.         End
  80.         Flags            = START_FRAME_FIRST
  81.     End    
  82.     
  83.     ModelConditionState  = DAMAGED
  84.       Model         = RBCastElev_D1  
  85.     End
  86.     
  87.     AnimationState = DAMAGED
  88. ;      EnteringStateFX = FX_RohanWallDamaged
  89.     End
  90.  
  91.     ModelConditionState  = REALLYDAMAGED
  92.       Model         = RBCastElev_D2
  93.     End
  94.     AnimationState = REALLYDAMAGED
  95.            Animation                =    ReallyDamagedanimation
  96.             AnimationName        =     RBCastElev_D2.RBCastElev_D2
  97.             AnimationMode        =    ONCE
  98.            End
  99. ;        EnteringStateFX = FX_RohanWallReallyDamaged
  100.     End
  101.  
  102.     ModelConditionState  = RUBBLE
  103.       Model         = RBCastElev_D3
  104.       ParticleSysBone NONE Explosion3
  105.       ParticleSysBone NONE ExplosiveMineSmoke02
  106.     End
  107.     
  108.     AnimationState = RUBBLE
  109.         Animation                =    Death
  110.             AnimationName        =    RBCastElev_D3.RBCastElev_D3
  111.             AnimationMode        =    ONCE
  112.         End
  113.     EnteringStateFX = FX_WallDie    
  114.     ;EnteringStateFX = FX_RohanWallRubble
  115.     End      
  116.  
  117.     ModelConditionState  = POST_RUBBLE
  118.         Model         = None
  119.     End
  120.  
  121.     ModelConditionState  = POST_COLLAPSE
  122.          Model         = None
  123.     End
  124.  
  125.   End
  126.  
  127.     ;----------------------- AUDIO -------------------------
  128.  
  129.     VoiceSelect            = Gui_PlotSelect
  130.  
  131.     SoundOnDamaged            = BuildingLightDamageWood
  132.     SoundOnReallyDamaged        = BuildingHeavyDamageWood
  133.  
  134.     ;VoiceSelectUnderConstruction    = BuildingEvilVoiceSelectUnderConstruction
  135.  
  136.     ;UnitSpecificSounds
  137.     ;    UnderConstruction    = BuildingConstructionLoop
  138.     ;End
  139.  
  140.  
  141.   ; ***DESIGN parameters ***
  142.   DisplayName      = OBJECT:RohanCastleElevator
  143.   Side = Obsolete
  144.   EditorSorting = STRUCTURE
  145. ; Browser = CINEMATICS UNIT
  146.     BuildTime = CASTLE_WALL_REBUILD_TIME
  147.     BuildCost        = CASTLE_WALL_REBUILD_COST
  148.  
  149.   VisionRange         = 160.0          ; Shroud clearing distance
  150.   ShroudClearingRange = 160
  151.  
  152.   ArmorSet
  153.     Conditions        = None
  154.     Armor             = RohanCastleWall
  155.     DamageFX          = RohanWallDamageFX
  156.   End
  157.     
  158.     ; *** ENGINEERING Parameters ***  
  159.     KindOf                    = STRUCTURE SELECTABLE IMMOBILE WALK_ON_TOP_OF_WALL NOT_AUTOACQUIRABLE
  160.     RadarPriority            = NOT_ON_RADAR
  161.     KeepSelectableWhenDead    = Yes
  162.     CommandSet                = GenericSelfRepairCommandSet
  163.     
  164.     Body                = ActiveBody ModuleTag_02
  165.         MaxHealth        = ROHAN_CASTLE_WALL_HEALTH
  166.     End
  167.  
  168.    
  169.     Behavior = DynamicPortalBehaviour Portal
  170.         GenerateNow        = Yes
  171.         ObjectFilter    = ANY +INFANTRY -MONSTER -MACHINE -CAVALRY -ARMY_OF_DEAD
  172.         AllowEnemies    = Yes    ; Normally, only allies can use this
  173.         BonePrefix        = Elev
  174.         NumberOfBones    = 4
  175.         
  176.         WayPoint        = Index:0    Type:PreClimb        ; 0
  177.         WayPoint        = Index:1    Type:PreClimb        ; 1
  178.         WayPoint        = Index:2    Type:Climb            ; 2
  179.         WayPoint        = Index:3    Type:Climb            ; 3    top right
  180.         WayPoint        = Index:2    Type:Climb            ; 4
  181.         WayPoint        = Index:1    Type:Climb            ; 5
  182.  
  183.         Link            = From:0 Via:4 Via:5 To:3    ; up, to centre
  184.         Link            = From:3 Via:1 Via:2 To:0    ; down, from centre
  185.  
  186.     End
  187.  
  188.  
  189.     Behavior = KeepObjectDie ModuleTag_IWantRubble
  190.     End
  191.  
  192.      Behavior = GettingBuiltBehavior ModuleTag_GettingBuilt
  193.         SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
  194.         SelfRepairFromDamageLoop  = NoSound         ; This doesn't cause an animation, so don't bother playing a sound
  195.         SelfRepairFromRubbleLoop  = BuildingConstructionLoop
  196.         SpawnTimer = -1.0 ; Negative means no 'autoheal'
  197.         RebuildTimeSeconds = CASTLE_WALL_REBUILD_TIME
  198.     End
  199.  
  200.       Behavior = AttributeModifierAuraUpdate ModuleTag_WallBonus
  201.         StartsActive    = Yes ;If no, requires upgrade to turn on.
  202.         BonusName        = WallBonus
  203.         RefreshDelay    = 2000
  204.         ;Range            = 120        ; Range is overridden to affect people on us since we are a wall
  205.         ;TargetEnemy        = Yes    ; Alliances are ignored to affect people on us since we are a wall
  206.     End    
  207.  
  208.     Behavior = CastleMemberBehavior ModuleTag_CMB
  209.         CountsForEvaCastleBreached = Yes   ; Visually a part of wall
  210.     End 
  211.  
  212.      Behavior = FireWeaponWhenDeadBehavior FireDeadTag2
  213.         DeathTypes                    = ALL
  214.         StartsActive                = Yes
  215.         ActiveDuringConstruction    = Yes
  216.         DeathWeapon                    = StandardWallDeath
  217.     End    
  218.  
  219.     Geometry                        = BOX
  220.     GeometryMajorRadius                = 50.0
  221.     GeometryMinorRadius                = 20.0
  222.     GeometryHeight                    = 45.0
  223.     
  224.     AdditionalGeometry                = BOX
  225.     GeometryMajorRadius                = 30.0
  226.     GeometryMinorRadius                = 30.0
  227.     GeometryHeight                    = 1.0
  228.     GeometryOffset                    = X:0 Y:55 Z:0
  229.     
  230.     GeometryIsSmall                    = No
  231.     Shadow                            = SHADOW_VOLUME
  232.     
  233.     GeometryContactPoint    = X:-3.287        Y:26.482    Z:56.385        Swoop
  234.     GeometryContactPoint    = X:0            Y:0            Z:0
  235. End
  236.  
  237. ;----------------------------------------------------------------------------------------------
  238. Object RohanCastleWall
  239.  
  240.     SelectPortrait = BRCastleWall
  241.     Draw = W3DScriptedModelDraw Draw_Wall
  242.     
  243.         OkToChangeModelColor = Yes
  244.  
  245.         WallBoundsMesh = P1
  246.  
  247.         DefaultModelConditionState
  248.             Model = RBCastWALL 
  249.         End
  250.  
  251.         ModelConditionState = WORLD_BUILDER
  252.               Model = RBCastWallW
  253.           End
  254.  
  255.         ModelConditionState = BASE_BUILD
  256.               Model = RBCastWall_A
  257.           End
  258.         AnimationState = BASE_BUILD
  259.             Animation
  260.                 AnimationName = RBCastWALL_A.RBCastWALL_A
  261.                 AnimationMode = ONCE
  262.                 AnimationSpeedFactorRange = 1.5 2.5 ; keep range wide to avoid lockstep anims
  263.             End
  264.         End    
  265.  
  266.         ModelConditionState = JUST_BUILT
  267.               Model = RBCastWall_A
  268.           End
  269.         AnimationState = JUST_BUILT
  270.             StateName = STATE_None
  271.             Animation
  272.                 AnimationName = RBCastWALL_A.RBCastWALL_A
  273.                 AnimationMode = MANUAL
  274.             End
  275.             Flags = START_FRAME_FIRST
  276.         End
  277.  
  278.         ModelConditionState = ACTIVELY_BEING_CONSTRUCTED
  279.               Model = RBCastWall_A
  280.           End
  281.         AnimationState = ACTIVELY_BEING_CONSTRUCTED
  282.             Animation
  283.                 AnimationName = RBCastWALL_A.RBCastWALL_A
  284.                 AnimationMode = MANUAL
  285.             End
  286.             Flags = START_FRAME_FIRST
  287.         End    
  288.  
  289.         
  290.         ModelConditionState  = DAMAGED
  291.             Model         = RBCastWALL_D1  
  292.         End
  293.         
  294.         AnimationState = DAMAGED
  295.     ;      EnteringStateFX = FX_RohanWallDamaged
  296.         End
  297.  
  298.         ModelConditionState  = REALLYDAMAGED
  299.             Model         = RBCastWALL_D2
  300.         End
  301.         AnimationState = REALLYDAMAGED
  302.                Animation                =    ReallyDamagedanimation
  303.                 AnimationName        =     RBCastWALL_D2.RBCastWALL_D2
  304.                 AnimationMode        =    ONCE
  305.                End
  306.     ;        EnteringStateFX = FX_RohanWallReallyDamaged
  307.         End
  308.  
  309.         ModelConditionState  = RUBBLE
  310.       Model         = RBCastWall_D3
  311.       ParticleSysBone NONE TrebuchetImpactSplinters
  312.       ParticleSysBone NONE ExplosiveMineFire02
  313.     End
  314.         
  315.         AnimationState = RUBBLE
  316.             Animation                =    Death
  317.                 AnimationName        =    RBCastWALL_D3.RBCastWALL_D3
  318.                 AnimationMode        =    ONCE
  319.             End
  320.             EnteringStateFX = FX_WallDie
  321.             ;EnteringStateFX = FX_RohanWallRubble
  322.         End      
  323.  
  324.         ModelConditionState  = POST_RUBBLE
  325.             Model         = None
  326.         End
  327.  
  328.         ModelConditionState  = POST_COLLAPSE
  329.             Model         = None
  330.         End
  331.  
  332.     End
  333.     
  334.   
  335.     ;----------------------- AUDIO -------------------------
  336.  
  337.     VoiceSelect            = Gui_PlotSelect
  338.  
  339.     SoundOnDamaged            = BuildingLightDamageWood
  340.     SoundOnReallyDamaged        = BuildingHeavyDamageWood
  341.  
  342.  
  343.     ; ***DESIGN parameters ***
  344.     DisplayName        = OBJECT:RohanCastleWall
  345.     EditorSorting    = STRUCTURE
  346.     Side            = Obsolete
  347.     BuildTime        = CASTLE_WALL_REBUILD_TIME
  348.     BuildCost        = CASTLE_WALL_REBUILD_COST
  349.       ShroudClearingRange = 160
  350.  
  351.     ArmorSet
  352.         Conditions    = None
  353.         Armor        = RohanCastleWall            
  354.         DamageFX    = RohanWallDamageFX
  355.     End
  356.     
  357.  
  358.     ; *** ENGINEERING Parameters ***  
  359.     KindOf                    = STRUCTURE IMMOBILE WALK_ON_TOP_OF_WALL CHUNK_VENDOR SELECTABLE NOT_AUTOACQUIRABLE
  360.     RadarPriority            = NOT_ON_RADAR
  361.     KeepSelectableWhenDead    = Yes
  362.     CommandSet                = GenericSelfRepairCommandSet
  363.     
  364.     Body                = ActiveBody ModuleTag_02
  365.         MaxHealth        = ROHAN_CASTLE_WALL_HEALTH
  366.     End
  367.  
  368.     Behavior = SiegeDockingBehavior ModuleTag_SiegeDocking
  369.     End
  370.     
  371.     Behavior = CastleMemberBehavior ModuleTag_CMB
  372.         CountsForEvaCastleBreached = Yes
  373.     End 
  374.  
  375.      Behavior = GettingBuiltBehavior ModuleTag_GettingBuilt
  376.         SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
  377.         SelfRepairFromDamageLoop  = NoSound         ; This doesn't cause an animation, so don't bother playing a sound
  378.         SelfRepairFromRubbleLoop  = BuildingConstructionLoop
  379.         SpawnTimer = -1.0 ; Negative means no 'autoheal'
  380.         RebuildTimeSeconds = CASTLE_WALL_REBUILD_TIME
  381.     End
  382.  
  383. ;    Behavior = FoundationAIUpdate ModuleTag_foundationAI
  384. ;    End
  385.     
  386.     Behavior = KeepObjectDie ModuleTag_IWantRubble
  387.     End
  388.     
  389.       Behavior = AttributeModifierAuraUpdate ModuleTag_WallBonus
  390.         StartsActive    = Yes ;If no, requires upgrade to turn on.
  391.         BonusName        = WallBonus
  392.         RefreshDelay    = 2000
  393.         ;Range            = 120        ; Range is overridden to affect people on us since we are a wall
  394.         ;TargetEnemy        = Yes    ; Alliances are ignored to affect people on us since we are a wall
  395.     End    
  396.  
  397.      Behavior = FireWeaponWhenDeadBehavior FireDeadTag1
  398.         DeathTypes                    = ALL
  399.         StartsActive                = Yes
  400.         ActiveDuringConstruction    = Yes
  401.         DeathWeapon                    = CastleWallDeath
  402.     End    
  403.  
  404.      Behavior = FireWeaponWhenDeadBehavior FireDeadTag2
  405.         DeathTypes                    = ALL
  406.         StartsActive                = Yes
  407.         ActiveDuringConstruction    = Yes
  408.         DeathWeapon                    = StandardWallDeath
  409.     End    
  410.  
  411.     Geometry                        = BOX
  412.     GeometryMajorRadius                = 55.0
  413.     GeometryMinorRadius                = 30.0
  414.     GeometryHeight                    = 45.0
  415.     
  416.     GeometryContactPoint =    X:-50            Y:-40                Z:0 Grab
  417.     GeometryContactPoint =    X:0                Y:-40                Z:40 Grab
  418.     GeometryContactPoint =    X:50            Y:-40                Z:0 Grab
  419.     GeometryContactPoint =    X:-50            Y:40                Z:0 Grab
  420.     GeometryContactPoint =    X:0                Y:40                Z:40 Grab
  421.     GeometryContactPoint =    X:50            Y:40                Z:0 Grab
  422.     
  423.     GeometryIsSmall                    = No
  424.     Shadow                            = SHADOW_VOLUME
  425. End
  426.  
  427. ;----------------------------------------------------------------------------------------------
  428. Object RohanEdorasWall
  429.  
  430.     SelectPortrait = BRCastleWall
  431.     Draw = W3DScriptedModelDraw Draw_Wall
  432.     
  433.         OkToChangeModelColor = Yes
  434.  
  435.         WallBoundsMesh = P1
  436.  
  437.         DefaultModelConditionState
  438.             Model = RBEdorWall 
  439.         End
  440.  
  441.         ModelConditionState = WORLD_BUILDER
  442.             Model = RBCastWallW
  443.         End
  444.  
  445.         ModelConditionState = JUST_BUILT
  446.               Model = RBEdorWall_A
  447.           End
  448.         AnimationState = JUST_BUILT
  449.             Animation
  450.                 AnimationName = RBEdorWall_A.RBEdorWall_A
  451.                 AnimationMode = ONCE
  452.                 AnimationSpeedFactorRange = 1.0 2.5 ; keep range wide to avoid lockstep anims
  453.             End
  454.         End    
  455.  
  456.         ModelConditionState = ACTIVELY_BEING_CONSTRUCTED
  457.               Model = RBEdorWall_A
  458.           End
  459.         AnimationState = ACTIVELY_BEING_CONSTRUCTED
  460.             Animation
  461.                 AnimationName = RBEdorWall_A.RBEdorWall_A
  462.                 AnimationMode = MANUAL
  463.             End
  464.             Flags = START_FRAME_FIRST
  465.         End    
  466.  
  467.         
  468.         ModelConditionState  = DAMAGED
  469.             Model         = RBEdorWall_D1  
  470.         End
  471.         
  472.         AnimationState = DAMAGED
  473.     ;      EnteringStateFX = FX_RohanWallDamaged
  474.         End
  475.  
  476.         ModelConditionState  = REALLYDAMAGED
  477.             Model         = RBEdorWall_D2
  478.         End
  479.         AnimationState = REALLYDAMAGED
  480.                Animation                =    ReallyDamagedanimation
  481.                 AnimationName        =     RBEdorWall_D2.RBEdorWall_D2
  482.                 AnimationMode        =    ONCE
  483.                End
  484.     ;        EnteringStateFX = FX_RohanWallReallyDamaged
  485.         End
  486.  
  487.         ModelConditionState  = RUBBLE
  488.       Model         = RBCastWall_D3
  489.       ParticleSysBone NONE TrebuchetImpactSplinters
  490.       ParticleSysBone NONE ExplosiveMineFire02
  491.     End
  492.         
  493.         AnimationState = RUBBLE
  494.             Animation                =    Death
  495.                 AnimationName        =    RBCastWALL_D3.RBCastWALL_D3
  496.                 AnimationMode        =    ONCE
  497.             End
  498.             EnteringStateFX = FX_WallDie
  499.             ;EnteringStateFX = FX_RohanWallRubble
  500.         End      
  501.  
  502.         ModelConditionState  = POST_RUBBLE
  503.             Model         = None
  504.         End
  505.  
  506.         ModelConditionState  = POST_COLLAPSE
  507.             Model         = None
  508.         End
  509.  
  510.     End
  511.     
  512.   
  513.     ;----------------------- AUDIO -------------------------
  514.  
  515.     VoiceSelect            = Gui_PlotSelect
  516.  
  517.     SoundOnDamaged            = BuildingLightDamageWood
  518.     SoundOnReallyDamaged        = BuildingHeavyDamageWood
  519.  
  520.  
  521.     ; ***DESIGN parameters ***
  522.     DisplayName        = OBJECT:RohanCastleWall
  523.     EditorSorting    = STRUCTURE
  524.     Side            = Obsolete
  525.     BuildTime        = CASTLE_WALL_REBUILD_TIME
  526.     BuildCost        = CASTLE_WALL_REBUILD_COST
  527.       ShroudClearingRange = 160
  528.  
  529.     ArmorSet
  530.         Conditions    = None
  531.         Armor        = RohanCastleWall            
  532.         DamageFX    = RohanWallDamageFX
  533.     End
  534.     
  535.  
  536.     ; *** ENGINEERING Parameters ***  
  537.     KindOf                    = STRUCTURE IMMOBILE WALK_ON_TOP_OF_WALL CHUNK_VENDOR SELECTABLE NOT_AUTOACQUIRABLE
  538.     RadarPriority            = NOT_ON_RADAR
  539.     KeepSelectableWhenDead    = Yes
  540.     CommandSet                = GenericSelfRepairCommandSet
  541.     
  542.     Body                = ActiveBody ModuleTag_02
  543.         MaxHealth        = ROHAN_CASTLE_WALL_HEALTH
  544.     End
  545.  
  546.     Behavior = SiegeDockingBehavior ModuleTag_SiegeDocking
  547.     End
  548.     
  549.     Behavior = CastleMemberBehavior ModuleTag_CMB
  550.         CountsForEvaCastleBreached = Yes
  551.     End 
  552.  
  553.      Behavior = GettingBuiltBehavior ModuleTag_GettingBuilt
  554.         SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
  555.         SelfRepairFromDamageLoop  = NoSound         ; This doesn't cause an animation, so don't bother playing a sound
  556.         SelfRepairFromRubbleLoop  = BuildingConstructionLoop
  557.         SpawnTimer = -1.0 ; Negative means no 'autoheal'
  558.     End
  559.  
  560. ;    Behavior = FoundationAIUpdate ModuleTag_foundationAI
  561. ;    End
  562.     
  563.     Behavior = KeepObjectDie ModuleTag_IWantRubble
  564.     End
  565.     
  566.       Behavior = AttributeModifierAuraUpdate ModuleTag_WallBonus
  567.         StartsActive    = Yes ;If no, requires upgrade to turn on.
  568.         BonusName        = WallBonus
  569.         RefreshDelay    = 2000
  570.         ;Range            = 120        ; Range is overridden to affect people on us since we are a wall
  571.         ;TargetEnemy        = Yes    ; Alliances are ignored to affect people on us since we are a wall
  572.     End    
  573.  
  574.      Behavior = FireWeaponWhenDeadBehavior FireDeadTag1
  575.         DeathTypes                    = ALL
  576.         StartsActive                = Yes
  577.         ActiveDuringConstruction    = Yes
  578.         DeathWeapon                    = CastleWallDeath
  579.     End    
  580.  
  581.      Behavior = FireWeaponWhenDeadBehavior FireDeadTag2
  582.         DeathTypes                    = ALL
  583.         StartsActive                = Yes
  584.         ActiveDuringConstruction    = Yes
  585.         DeathWeapon                    = StandardWallDeath
  586.     End    
  587.  
  588.     Geometry                        = BOX
  589.     GeometryMajorRadius                = 55.0
  590.     GeometryMinorRadius                = 30.0
  591.     GeometryHeight                    = 45.0
  592.     
  593.     
  594.     GeometryContactPoint =    X:-50            Y:-40                Z:0 Grab
  595.     GeometryContactPoint =    X:0                Y:-40                Z:40 Grab
  596.     GeometryContactPoint =    X:50            Y:-40                Z:0 Grab
  597.     GeometryContactPoint =    X:-50            Y:40                Z:0 Grab
  598.     GeometryContactPoint =    X:0                Y:40                Z:40 Grab
  599.     GeometryContactPoint =    X:50            Y:40                Z:0 Grab
  600.     
  601.     GeometryIsSmall                    = No
  602.     Shadow                            = SHADOW_VOLUME
  603. End
  604.  
  605.  
  606.  
  607.  
  608. ;----------------------------------------------------------------------------------------------
  609. Object RohanCastleBridge
  610.  
  611.     ; *** ART Parameters ***
  612.     Draw = W3DScriptedModelDraw ModuleTag_01
  613.  
  614.         ;WallBoundsMesh = P01
  615.         RampMesh1 = Ramp01
  616.         RampMesh2 = Ramp02
  617.         RaisedWallMesh = P01
  618.         
  619.         DefaultModelConditionState
  620.           Model = RBCastBrdg
  621.         End
  622.  
  623.     IdleAnimationState
  624.         Animation
  625.             AnimationName     = RBCastBrdg.RBCastBrdg
  626.             AnimationMode     = MANUAL
  627.             AnimationBlendTime = 0
  628.         End
  629.         Flags = START_FRAME_LAST
  630.     End    
  631.  
  632.     ;------------Build Up States
  633.     ModelConditionState   = BASE_BUILD
  634.       Model               = RBCastBrdg
  635. ;      ParticleSysBone      = NONE BuildingDoughnutCloud
  636.       ParticleSysBone     = NONE BuildingContructDust
  637.     End  
  638.     AnimationState          = BASE_BUILD
  639.         Animation
  640.             AnimationName = RBCastBrdg.RBCastBrdg
  641.             AnimationMode = ONCE
  642.             AnimationSpeedFactorRange = 2.0 2.5 ; keep range wide to avoid lockstep anims
  643.         End
  644.     End
  645.  
  646.     AnimationState          = JUST_BUILT
  647.         Animation
  648.             AnimationName = RBCastBrdg.RBCastBrdg
  649.             AnimationMode = MANUAL
  650.             AnimationBlendTime = 0
  651.         End
  652.         Flags = START_FRAME_FIRST
  653.     End    
  654.  
  655.     ModelConditionState  = DAMAGED
  656.       Model         = RBCastBrdg_D1
  657. ;     ParticleSysBone emberBone01 SmokeBuildingLarge
  658.     End
  659.     AnimationState = DAMAGED
  660.     End
  661.  
  662.     ModelConditionState  = REALLYDAMAGED
  663.       Model         = RBCastBrdg_D2
  664. ;     ParticleSysBone emberBone01 SmokeBuildingLarge
  665.     End
  666.     AnimationState = REALLYDAMAGED
  667.         Animation                =    ReallyDamagedanimation
  668.             AnimationName        =     RBCastBrdg_D2.RBCastBrdg_D2
  669.             AnimationMode        =    ONCE
  670. ;           AnimationSpeedFactorRange = 0.5 0.5
  671.            End
  672.     End    
  673.     
  674.     ModelConditionState  = ACTIVELY_BEING_CONSTRUCTED
  675.       Model         = RBCastBrdg_D1
  676. ;     ParticleSysBone emberBone01 SmokeBuildingLarge
  677.     End
  678.     
  679.     ModelConditionState  = RUBBLE
  680.       Model         = RBCastBrdg_D3  
  681. ;      ParticleSysBone emberBone01 TrebuchetImpactDebris
  682. ;      ParticleSysBone emberBone02 SmokeBuildingLarge
  683. ;      ParticleSysBone emberBone03 PCTMediumDust
  684.     End
  685.     AnimationState = RUBBLE
  686.         Animation                =    Death
  687.             AnimationName        =    RBCastBrdg_D3.RBCastBrdg_D3
  688.             AnimationMode        =    ONCE
  689. ;           AnimationSpeedFactorRange = 0.5 0.5
  690.         End
  691.     EnteringStateFX = FX_WallDie
  692.     End
  693.  
  694.       ModelConditionState  = POST_RUBBLE
  695.         Model         = None
  696.         ParticleSysBone NONE SmokeBuildingMediumRubble
  697.     End
  698.     ModelConditionState  = POST_COLLAPSE
  699.         Model         = None
  700.         ParticleSysBone NONE SmokeBuildingMediumRubble
  701.     End
  702.  
  703.   End
  704.  
  705.     ;----------------------- AUDIO -------------------------
  706.  
  707.     SoundOnDamaged            = BuildingLightDamageWood
  708.     SoundOnReallyDamaged        = BuildingHeavyDamageWood
  709.  
  710.  
  711.   ; ***DESIGN parameters ***
  712.   DisplayName      = OBJECT:RohanCastleGate
  713.   Side = Obsolete
  714.   EditorSorting = STRUCTURE
  715. ; Browser = CINEMATICS UNIT
  716.  
  717.   ArmorSet
  718.     Conditions        = None
  719.     Armor             = RohanCastleWall
  720.     DamageFX          = RohanWallDamageFX
  721.   End
  722.  
  723.   ; *** ENGINEERING Parameters ***  
  724. ;  KindOf                = STRUCTURE SELECTABLE IMMOBILE
  725. ;  RadarPriority = STRUCTURE
  726. ;  Body                  = ActiveBody ModuleTag_03
  727. ;    MaxHealth       = 2000.0
  728. ;  End
  729.     KindOf                    = STRUCTURE IMMOBILE CHUNK_VENDOR SELECTABLE WALK_ON_TOP_OF_WALL NOT_AUTOACQUIRABLE
  730.     KeepSelectableWhenDead    = Yes
  731.     
  732.   RadarPriority = NOT_ON_RADAR    
  733.     Body                    = ActiveBody ModuleTag_03
  734.             MaxHealth                = 6000.0
  735.             MaxHealthDamaged        = 3000.0
  736.             MaxHealthReallyDamaged  = 1000.0
  737.         GrabObject = EntThrownBuildingRock
  738.         GrabFX = FX_WallGrab
  739.         GrabDamage = 490
  740.         GrabOffset = X:16 Y:0
  741.     End
  742.  
  743.   ; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are 
  744.   ; never truly destroyed, even when reduced to zero health. Also note that garrisonable
  745.   ; buildings automatically stick around because GarrisonContain has it's own DieModule
  746. ;  Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
  747. ;      DestructionDelay  = 5000
  748. ;  End
  749.     Behavior = KeepObjectDie ModuleTag_IWantRubble
  750.     End
  751.  
  752.     Behavior = CastleMemberBehavior ModuleTag_CMB
  753.         CountsForEvaCastleBreached = No  ; Even if walkway over gate is gone, enemy cannot enter castle
  754.     End 
  755.  
  756.  
  757.     ; These are bunched-up together on purpose
  758.     BuildCost        = 0  ; for free, since this serves no purpose
  759.       CommandSet                = GenericSelfRepairCommandSet   ;
  760.      Behavior = GettingBuiltBehavior ModuleTag_GettingBuilt
  761.         SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
  762.         SelfRepairFromDamageLoop  = NoSound         ; This doesn't cause an animation, so don't bother playing a sound
  763.         SelfRepairFromRubbleLoop  = BuildingConstructionLoop
  764.         SpawnTimer = -1.0 ; Negative means no 'autoheal'
  765.         RebuildTimeSeconds    = 15 ; nice and fast, so we don;t visually block the gateway
  766.     End
  767.  
  768.  
  769.  
  770.   Geometry                = BOX
  771.   GeometryMajorRadius   = 90.0
  772.   GeometryMinorRadius   = 32.5 
  773.   GeometryHeight        = 15.0
  774.   GeometryOffset        = X:0 Y:10 Z:60  
  775.   
  776.   AdditionalGeometry    = BOX
  777.   GeometryMajorRadius   = 20.0
  778.   GeometryMinorRadius   = 32.5 
  779.   GeometryHeight        = 75.0
  780.   GeometryOffset        = X:70 Y:10 Z:0  
  781.       
  782.   AdditionalGeometry    = BOX
  783.   GeometryMajorRadius   = 20.0
  784.   GeometryMinorRadius   = 32.5 
  785.   GeometryHeight        = 75.0
  786.   GeometryOffset        = X:70 Y:10 Z:0  
  787.  
  788.   GeometryContactPoint =    X:-50        Y:0                Z:60 
  789.   GeometryContactPoint =    X:0            Y:0                Z:60
  790.    GeometryContactPoint =    X:50        Y:0                Z:60
  791.   GeometryContactPoint =    X:60        Y:-40            Z:0 
  792.   GeometryContactPoint =    X:67        Y:0                Z:60
  793.   GeometryContactPoint =    X:75        Y:-40            Z:0 Grab
  794.   GeometryContactPoint =    X:75        Y:65            Z:0 Grab
  795.   GeometryContactPoint =    X:60        Y:65            Z:0 
  796.   
  797.   GeometryIsSmall       = No
  798.   Shadow                = SHADOW_VOLUME
  799. End
  800.  
  801. ;----------------------------------------------------------------------------------------------
  802. Object RohanEdorasBridge
  803.  
  804.     ; *** ART Parameters ***
  805.     Draw = W3DScriptedModelDraw ModuleTag_01
  806.  
  807.         ;WallBoundsMesh = P01
  808.         RampMesh1 = Ramp01
  809.         RampMesh2 = Ramp02
  810.         RaisedWallMesh = P01
  811.         
  812.         DefaultModelConditionState
  813.           Model = RBEdorBrdg
  814.         End
  815.  
  816.         ModelConditionState = WORLD_BUILDER
  817.               Model = RBEdorBrdgW
  818.           End
  819.  
  820.     IdleAnimationState
  821.         Animation
  822.             AnimationName     = RBEdorBrdg.RBEdorBrdg
  823.             AnimationMode     = MANUAL
  824.             AnimationBlendTime = 0
  825.         End
  826.         Flags = START_FRAME_LAST
  827.     End    
  828.  
  829.     ;------------Build Up States
  830.     ModelConditionState   = BASE_BUILD
  831.       Model               = RBEdorBrdg
  832. ;      ParticleSysBone      = NONE BuildingDoughnutCloud
  833.       ParticleSysBone     = NONE BuildingContructDust
  834.     End  
  835.     AnimationState          = BASE_BUILD
  836.         Animation
  837.             AnimationName = RBEdorBrdg.RBEdorBrdg
  838.             AnimationMode = ONCE
  839.             AnimationSpeedFactorRange = 2.0 2.5 ; keep range wide to avoid lockstep anims
  840.         End
  841.     End
  842.  
  843.     AnimationState          = JUST_BUILT
  844.         Animation
  845.             AnimationName = RBEdorBrdg.RBEdorBrdg
  846.             AnimationMode = MANUAL
  847.             AnimationBlendTime = 0
  848.         End
  849.         Flags = START_FRAME_FIRST
  850.     End    
  851.     
  852.  
  853.  
  854.     ModelConditionState  = DAMAGED
  855.       Model         = RBEdorBrdg_D1
  856. ;     ParticleSysBone emberBone01 SmokeBuildingLarge
  857.     End
  858.     AnimationState = DAMAGED
  859.     End
  860.  
  861.     ModelConditionState  = REALLYDAMAGED
  862.       Model         = RBEdorBrdg_D2
  863. ;     ParticleSysBone emberBone01 SmokeBuildingLarge
  864.     End
  865.     AnimationState = REALLYDAMAGED
  866.         Animation                =    ReallyDamagedanimation
  867.             AnimationName        =     RBEdorBrdg_D2.RBEdorBrdg_D2
  868.             AnimationMode        =    ONCE
  869. ;           AnimationSpeedFactorRange = 0.5 0.5
  870.            End
  871.     End    
  872.     
  873.     ModelConditionState  = ACTIVELY_BEING_CONSTRUCTED
  874.       Model         = RBEdorBrdg_D1
  875. ;     ParticleSysBone emberBone01 SmokeBuildingLarge
  876.     End
  877.  
  878.     AnimationState  = ACTIVELY_BEING_CONSTRUCTED
  879.         Animation                =    construct
  880.             AnimationName        =    RBEdorBrdg_D3.RBEdorBrdg_D3
  881.             AnimationMode        =    ONCE
  882.         End
  883.     End
  884.  
  885.  
  886.     
  887.     ModelConditionState  = RUBBLE
  888.       Model         = RBEdorBrdg_D3  
  889. ;      ParticleSysBone emberBone01 TrebuchetImpactDebris
  890. ;      ParticleSysBone emberBone02 SmokeBuildingLarge
  891. ;      ParticleSysBone emberBone03 PCTMediumDust
  892.     End
  893.     AnimationState = RUBBLE
  894.         Animation                =    Death
  895.             AnimationName        =    RBEdorBrdg_D3.RBEdorBrdg_D3
  896.             AnimationMode        =    ONCE
  897. ;           AnimationSpeedFactorRange = 0.5 0.5
  898.         End
  899.     EnteringStateFX = FX_WallDie
  900.     End
  901.  
  902.       ModelConditionState  = POST_RUBBLE
  903.         Model         = None
  904.         ParticleSysBone NONE SmokeBuildingMediumRubble
  905.     End
  906.     ModelConditionState  = POST_COLLAPSE
  907.         Model         = None
  908.         ParticleSysBone NONE SmokeBuildingMediumRubble
  909.     End
  910.  
  911.   End
  912.  
  913.     ;----------------------- AUDIO -------------------------
  914.  
  915.     SoundOnDamaged            = BuildingLightDamageWood
  916.     SoundOnReallyDamaged        = BuildingHeavyDamageWood
  917.  
  918.  
  919.   ; ***DESIGN parameters ***
  920.   DisplayName      = OBJECT:RohanCastleGate
  921.   Side = Obsolete
  922.   EditorSorting = STRUCTURE
  923. ; Browser = CINEMATICS UNIT
  924.  
  925.   ArmorSet
  926.     Conditions        = None
  927.     Armor             = RohanCastleWall
  928.     DamageFX          = RohanWallDamageFX
  929.   End
  930.  
  931.   ; *** ENGINEERING Parameters ***  
  932. ;  KindOf                = STRUCTURE SELECTABLE IMMOBILE
  933. ;  RadarPriority = STRUCTURE
  934. ;  Body                  = ActiveBody ModuleTag_03
  935. ;    MaxHealth       = 2000.0
  936. ;  End
  937.     KindOf                    = STRUCTURE IMMOBILE CHUNK_VENDOR SELECTABLE WALK_ON_TOP_OF_WALL NOT_AUTOACQUIRABLE
  938.     KeepSelectableWhenDead    = Yes
  939.     
  940.   RadarPriority = NOT_ON_RADAR    
  941.     Body                    = ActiveBody ModuleTag_03
  942.             MaxHealth                = 6000.0
  943.             MaxHealthDamaged        = 3000.0
  944.             MaxHealthReallyDamaged  = 1000.0
  945.         GrabObject = EntThrownBuildingRock
  946.         GrabFX = FX_WallGrab
  947.         GrabDamage = 490
  948.         GrabOffset = X:16 Y:0
  949.     End
  950.  
  951.   ; Note that structures with "RUBBLE" states should not use DestroyDie; such buildings are 
  952.   ; never truly destroyed, even when reduced to zero health. Also note that garrisonable
  953.   ; buildings automatically stick around because GarrisonContain has it's own DieModule
  954. ;  Behavior = SlowDeathBehavior ModuleTag_SlowDeathWithoutRubble
  955. ;      DestructionDelay  = 5000
  956. ;  End
  957.     Behavior = KeepObjectDie ModuleTag_IWantRubble
  958.     End
  959.  
  960.     Behavior = CastleMemberBehavior ModuleTag_CMB
  961.         CountsForEvaCastleBreached = No  ; Even if walkway over gate is gone, enemy cannot enter castle
  962.     End 
  963.  
  964.  
  965.     ; These are bunched-up together on purpose
  966.     BuildCost        = 0  ; for free, since this serves no purpose
  967.       CommandSet                = GenericSelfRepairCommandSet   ;
  968.      Behavior = GettingBuiltBehavior ModuleTag_GettingBuilt
  969.         SelfBuildingLoop = BuildingConstructionLoop ; Only played if we DON'T spawn a worker
  970.         SelfRepairFromDamageLoop  = NoSound         ; This doesn't cause an animation, so don't bother playing a sound
  971.         SelfRepairFromRubbleLoop  = BuildingConstructionLoop
  972.         SpawnTimer = -1.0 ; Negative means no 'autoheal'
  973.         RebuildTimeSeconds    = 15 ; nice and fast, so we don;t visually block the gateway
  974.     End
  975.  
  976.  
  977.  
  978.   Geometry                = BOX
  979.   GeometryMajorRadius   = 90.0
  980.   GeometryMinorRadius   = 32.5 
  981.   GeometryHeight        = 15.0
  982.   GeometryOffset        = X:0 Y:10 Z:60  
  983.   
  984.   AdditionalGeometry    = BOX
  985.   GeometryMajorRadius   = 20.0
  986.   GeometryMinorRadius   = 32.5 
  987.   GeometryHeight        = 75.0
  988.   GeometryOffset        = X:108 Y:10 Z:0  
  989.       
  990.   AdditionalGeometry    = BOX
  991.   GeometryMajorRadius   = 20.0
  992.   GeometryMinorRadius   = 32.5 
  993.   GeometryHeight        = 75.0
  994.   GeometryOffset        = X:-108 Y:10 Z:0  
  995.   
  996.   GeometryIsSmall       = No
  997.   Shadow                = SHADOW_VOLUME
  998. End
  999.  
  1000.  
  1001. ;----------------------------------------------------------------------------------------------
  1002. Object RohanCastleUpgrade
  1003. SelectPortrait = BRCastleWall
  1004.     ; *** ART Parameters ***
  1005.     Draw = W3DScriptedModelDraw Draw_Trebuchet
  1006.         OkToChangeModelColor = Yes
  1007.  
  1008.         ; Don't want to change the hidden state of this when the postern gate is stealthed.
  1009.         AffectedByStealth = No
  1010.                 
  1011.         DefaultModelConditionState
  1012.             Model = RBCastFlag_A        
  1013.         End
  1014.  
  1015.         ModelConditionState = WORLD_BUILDER
  1016.               Model = RBCastFlagW
  1017.           End
  1018.  
  1019.         IdleAnimationState
  1020.             StateName = Complete
  1021.             BeginScript
  1022.                 CurDrawableHideModule("Draw_Trebuchet")
  1023.             EndScript
  1024.         End
  1025.  
  1026.         ModelConditionState  = SOLD
  1027.             Model = RBCastFlag_A  
  1028.         End
  1029.          AnimationState = SOLD
  1030.              Animation
  1031.                  AnimationName = RBCastFlag_A.RBCastFlag_A
  1032.                  AnimationMode = ONCE_BACKWARDS
  1033.                  AnimationSpeedFactorRange = 3.0 3.0
  1034.              End
  1035.              Flags = START_FRAME_LAST
  1036.             EnteringStateFX = FX_BuildingContructDustRohanCastles
  1037.         End
  1038.  
  1039.  
  1040.         ModelConditionState  = UPGRADE_TREBUCHET DAMAGED
  1041.             Model         = RBCastFlag_D1  
  1042.             ParticleSysBone        = NONE WallUpgHeroFX
  1043.         End
  1044.         
  1045.         AnimationState = UPGRADE_TREBUCHET DAMAGED
  1046.     ;      EnteringStateFX = FX_RohanWallDamaged
  1047.         End
  1048.  
  1049.         ModelConditionState  = UPGRADE_TREBUCHET REALLYDAMAGED
  1050.             Model = RBCastFlag_D2
  1051.             ParticleSysBone        = NONE WallUpgHeroFX
  1052.         End
  1053.         
  1054.         AnimationState = UPGRADE_TREBUCHET REALLYDAMAGED
  1055.                Animation                =    ReallyDamagedanimation
  1056.                 AnimationName        =    RBCastFlag_D2.RBCastFlag_D2
  1057.                 AnimationMode        =    ONCE
  1058.                End
  1059.     ;        EnteringStateFX = FX_RohanWallReallyDamaged
  1060.         End
  1061.  
  1062.         ModelConditionState  = UPGRADE_TREBUCHET RUBBLE
  1063.         Model         = RBCastFlag_D3
  1064.         End
  1065.         
  1066.         AnimationState = UPGRADE_TREBUCHET RUBBLE
  1067.             StateName = Complete
  1068.             Animation                =    Death
  1069.                 AnimationName        =    RBCastFlag_D3.RBCastFlag_D3
  1070.                 AnimationMode        =    ONCE
  1071.             End
  1072.     ;        EnteringStateFX = FX_RohanWallRubble
  1073.             EnteringStateFX = FX_WallDie
  1074.         End      
  1075.  
  1076.         ModelConditionState  = UPGRADE_TREBUCHET POST_RUBBLE
  1077.             Model         = None
  1078.         End
  1079.  
  1080.         ModelConditionState  = UPGRADE_TREBUCHET POST_COLLAPSE
  1081.             Model         = None
  1082.         End    
  1083.  
  1084.         ModelConditionState = UPGRADE_TREBUCHET
  1085.             Model = RBCastFlag_A
  1086.             ParticleSysBone        = NONE WallUpgHeroFX    
  1087.         End    
  1088.  
  1089.         TransitionState = TRANS_IdleToBuild
  1090.             Animation
  1091.                 AnimationName    =    RBCastFlag_A.RBCastFlag_A
  1092.                 AnimationMode    =    ONCE
  1093.                 AnimationSpeedFactorRange    = GONDOR_WALLTREBUCHET_BUILD_SPEED GONDOR_WALLTREBUCHET_BUILD_SPEED
  1094.             End
  1095.             EnteringStateFX = FX_BuildingContructDustRohanCastles
  1096.         End
  1097.  
  1098.         AnimationState = UPGRADE_TREBUCHET
  1099.             BeginScript
  1100.                 Prev = CurDrawablePrevAnimationState()
  1101.                 if Prev == "Complete" then CurDrawableSetTransitionAnimState("TRANS_IdleToBuild") end
  1102.             EndScript
  1103.             Flags = START_FRAME_LAST
  1104.             Animation
  1105.                 AnimationName = RBCastFlag_A.RBCastFlag_A
  1106.                 AnimationMode = ONCE
  1107.             End
  1108.         End
  1109.     
  1110.     End
  1111.  
  1112.         
  1113.     ;----------------------------------------------------------------------------------------------
  1114.     Draw = W3DScriptedModelDraw Draw_Picker
  1115.     
  1116.         ; Don't want to change the hidden state of this when the postern gate is stealthed.
  1117.         AffectedByStealth = No
  1118.     
  1119.         DefaultModelConditionState
  1120.             Model = RBCastWallOB
  1121.         End
  1122.  
  1123.     End
  1124.     
  1125.     ;----------------------------------------------------------------------------------------------
  1126.     Draw = W3DScriptedModelDraw Draw_Decal
  1127.     
  1128.         ; Don't want to change the hidden state of this when the postern gate is stealthed.
  1129.         AffectedByStealth = No
  1130.     
  1131.         DefaultModelConditionState
  1132.             Model = RBCastWallBF
  1133.         End
  1134.  
  1135.         IdleAnimationState
  1136.             BeginScript
  1137.                 CurDrawableShowModule("Draw_Decal")
  1138.                  CurDrawableShowModule("Draw_Picker")
  1139.              EndScript
  1140.          End
  1141.  
  1142.          AnimationState  = JUST_BUILT
  1143.             BeginScript
  1144.                 CurDrawableHideModule("Draw_Decal")
  1145.                 CurDrawableShowModule("Draw_Picker")
  1146.             EndScript
  1147.         End
  1148.  
  1149.          AnimationState  = SOLD
  1150.              BeginScript
  1151.                  CurDrawableHideModule("Draw_Decal"); since the command is not yet available
  1152.             EndScript
  1153.         End
  1154.  
  1155.          AnimationState  = RUBBLE
  1156.              BeginScript
  1157.                  CurDrawableHideModule("Draw_Decal")
  1158.                  CurDrawableHideModule("Draw_Picker")
  1159.             EndScript
  1160.         End
  1161.  
  1162.         AnimationState  = UPGRADE_POSTERN_GATE
  1163.             BeginScript
  1164.                  CurDrawableShowModule("Draw_PosternGate")
  1165.                  CurDrawableShowModule("Draw_Decal")            ; Don't want to hide the decal cause this would give away our stealthed gate.
  1166.                  ;            
  1167.                  CurDrawableHideModule("Draw_Tower")
  1168.                  CurDrawableHideModule("Draw_Trebuchet")
  1169.                  CurDrawableHideModule("Draw_Picker")
  1170.             EndScript
  1171.         End
  1172.         
  1173.         AnimationState  = UPGRADE_TREBUCHET
  1174.             BeginScript
  1175.                  CurDrawableShowModule("Draw_Trebuchet")
  1176.                  ;            
  1177.                  CurDrawableHideModule("Draw_Decal")
  1178.                  CurDrawableHideModule("Draw_PosternGate")
  1179.                  CurDrawableHideModule("Draw_Tower")
  1180.                  CurDrawableHideModule("Draw_Picker")
  1181.             EndScript
  1182.         End
  1183.         
  1184.         AnimationState  = UPGRADE_GARRISON
  1185.             BeginScript
  1186.                  CurDrawableShowModule("Draw_Tower")
  1187.                  ;            
  1188.                  CurDrawableHideModule("Draw_Decal")
  1189.                  CurDrawableHideModule("Draw_PosternGate")
  1190.                  CurDrawableHideModule("Draw_Trebuchet")
  1191.                  CurDrawableHideModule("Draw_Picker")
  1192.             EndScript
  1193.         End
  1194.  
  1195.     End
  1196.     
  1197.     ;----------------------------------------------------------------------------------------------
  1198.     Draw = W3DScriptedModelDraw Draw_PosternGate
  1199.  
  1200.         ExtraPublicBone = Post01
  1201.         ExtraPublicBone = Post02
  1202.         ExtraPublicBone = Post03
  1203.         ExtraPublicBone = Post04
  1204.  
  1205.         DefaultModelConditionState
  1206.             Model = RBCastPOST
  1207.         End
  1208.  
  1209.         IdleAnimationState
  1210.             BeginScript
  1211.                 CurDrawableHideModule("Draw_PosternGate")
  1212.             EndScript
  1213.         End
  1214.  
  1215.         ModelConditionState  = SOLD
  1216.             Model = RBCastPOST  
  1217.         End
  1218.          AnimationState = SOLD
  1219.              Animation
  1220.                  AnimationName = RBCastPOST.RBCastPOST
  1221.                  AnimationMode = ONCE_BACKWARDS
  1222.                  AnimationSpeedFactorRange = 3.0 3.0
  1223.              End
  1224.             Flags = START_FRAME_LAST
  1225.             EnteringStateFX = FX_BuildingContructDustCastlesCentre
  1226.          End
  1227.  
  1228.         ModelConditionState  = UPGRADE_POSTERN_GATE DAMAGED
  1229.             Model         = RBCastPOST_D1  
  1230.         End
  1231.         
  1232.         AnimationState = UPGRADE_POSTERN_GATE DAMAGED
  1233.     ;      EnteringStateFX = FX_RohanWallDamaged
  1234.         End
  1235.  
  1236.         ModelConditionState  = UPGRADE_POSTERN_GATE REALLYDAMAGED
  1237.             Model = RBCastPOST_D2
  1238.         End
  1239.         
  1240.         AnimationState = UPGRADE_POSTERN_GATE REALLYDAMAGED
  1241.                Animation                =    ReallyDamagedanimation
  1242.                 AnimationName        =     RBCastPOST_D2.RBCastPOST_D2
  1243.                 AnimationMode        =    ONCE
  1244.                End
  1245.     ;        EnteringStateFX = FX_RohanWallReallyDamaged
  1246.         End
  1247.  
  1248.         ModelConditionState  = UPGRADE_POSTERN_GATE RUBBLE
  1249.         Model         = RBCastPOST_D3
  1250.         End
  1251.         
  1252.         AnimationState = UPGRADE_POSTERN_GATE RUBBLE
  1253.             Animation                =    Death
  1254.                 AnimationName        =    RBCastPOST_D3.RBCastPOST_D3
  1255.                 AnimationMode        =    ONCE
  1256.             End
  1257.     ;        EnteringStateFX = FX_RohanWallRubble
  1258.             EnteringStateFX = FX_WallDie
  1259.         End      
  1260.  
  1261.         ModelConditionState  = UPGRADE_POSTERN_GATE POST_RUBBLE
  1262.             Model         = None
  1263.         End
  1264.  
  1265.         ModelConditionState  = UPGRADE_POSTERN_GATE POST_COLLAPSE
  1266.             Model         = None
  1267.         End        
  1268.  
  1269.         AnimationState = UPGRADE_POSTERN_GATE
  1270.             Animation
  1271.                 AnimationName = RBCastPOST.RBCastPOST
  1272.                 AnimationMode = ONCE
  1273.             End
  1274.             EnteringStateFX = FX_BuildingContructDustCastlesCentre
  1275.         End
  1276.     
  1277.     End
  1278.         
  1279.     ;----------------------------------------------------------------------------------------------
  1280.     Draw = W3DScriptedModelDraw Draw_Tower
  1281.  
  1282.         ExtraPublicBone = ARROWBONE01
  1283.         ExtraPublicBone = ARROWBONE02
  1284.         ExtraPublicBone = ARROWBONE03
  1285.         ExtraPublicBone = ARROWBONE04
  1286.         ExtraPublicBone = ARROWBONE05
  1287.         ExtraPublicBone = ARROWBONE06
  1288.         ExtraPublicBone = ARROWBONE07
  1289.         ExtraPublicBone = ARROWBONE08
  1290.         ExtraPublicBone = ARROWBONE09
  1291.         ExtraPublicBone = ARROWBONE10
  1292.         ExtraPublicBone = ARROWBONE11
  1293.         ExtraPublicBone = ARROWBONE12
  1294.         ExtraPublicBone = ARROWBONE13
  1295.         ExtraPublicBone = ARROWBONE14
  1296.  
  1297.         ; Don't want to change the hidden state of this when the postern gate is stealthed.
  1298.         AffectedByStealth = No
  1299.  
  1300.         DefaultModelConditionState
  1301.             Model = RBCastTOWR
  1302.             WeaponLaunchBone    = PRIMARY ARROWBONE
  1303.         End
  1304.  
  1305.         IdleAnimationState
  1306.             StateName = Complete
  1307.             BeginScript
  1308.                 CurDrawableHideModule("Draw_Tower")
  1309.             EndScript
  1310.         End
  1311.  
  1312.  
  1313.         ModelConditionState  = SOLD
  1314.             Model = RBCastTOWR  
  1315.         End
  1316.          AnimationState = SOLD
  1317.              Animation
  1318.                  AnimationName = RBCastTOWR.RBCastTOWR
  1319.                  AnimationMode = ONCE_BACKWARDS
  1320.                  AnimationSpeedFactorRange = 3.0 3.0
  1321.              End
  1322.             Flags = START_FRAME_LAST
  1323.              EnteringStateFX = FX_BuildingContructDustRohanCastles
  1324.         End
  1325.      
  1326.  
  1327.         ModelConditionState  = UPGRADE_GARRISON DAMAGED
  1328.             Model         = RBCastTOWR_D1  
  1329.         End
  1330.         
  1331.         AnimationState = UPGRADE_GARRISON DAMAGED
  1332.     ;      EnteringStateFX = FX_RohanWallDamaged
  1333.         End
  1334.  
  1335.         ModelConditionState  = UPGRADE_GARRISON REALLYDAMAGED
  1336.             Model         = RBCastTOWR_D2
  1337.         End
  1338.         
  1339.         AnimationState = UPGRADE_GARRISON REALLYDAMAGED
  1340.                Animation                =    ReallyDamagedanimation
  1341.                 AnimationName        =     RBCastTOWR_D2.RBCastTOWR_D2
  1342.                 AnimationMode        =    ONCE
  1343.                End
  1344.     ;        EnteringStateFX = FX_RohanWallReallyDamaged
  1345.         End
  1346.  
  1347.         ModelConditionState  = UPGRADE_GARRISON RUBBLE
  1348.             Model         = RBCastTOWR_D3
  1349.         End
  1350.         
  1351.         AnimationState = UPGRADE_GARRISON RUBBLE
  1352.             StateName = Complete
  1353.             Animation                =    Death
  1354.                 AnimationName        =    RBCastTOWR_D3.RBCastTOWR_D3
  1355.                 AnimationMode        =    ONCE
  1356.             End
  1357.             EnteringStateFX = FX_WallDie
  1358.         End      
  1359.  
  1360.         ModelConditionState  = UPGRADE_GARRISON POST_RUBBLE
  1361.             Model         = None
  1362.         End
  1363.  
  1364.         ModelConditionState  = UPGRADE_GARRISON POST_COLLAPSE
  1365.             Model         = None
  1366.         End        
  1367.  
  1368.         TransitionState                =    TRANS_IdleToBuild
  1369.             Animation
  1370.                 AnimationName        =    RBCastTOWR.RBCastTOWR
  1371.                 AnimationMode        =    ONCE
  1372.                 AnimationSpeedFactorRange    = GONDOR_BATTLETOWER_BUILD_SPEED GONDOR_BATTLETOWER_BUILD_SPEED
  1373.             End
  1374.             EnteringStateFX = FX_BuildingContructDustRohanCastles
  1375.         End
  1376.  
  1377.         AnimationState = UPGRADE_GARRISON
  1378.             ; If we're complete then transition via showing and build anim.
  1379.             BeginScript
  1380.                 Prev = CurDrawablePrevAnimationState()
  1381.                 if Prev == "Complete" then CurDrawableSetTransitionAnimState("TRANS_IdleToBuild") end
  1382.             EndScript
  1383.         
  1384.             Flags = START_FRAME_LAST
  1385.             Animation
  1386.                 AnimationName = RBCastTOWR.RBCastTOWR
  1387.                 AnimationMode = ONCE
  1388.             End
  1389.  
  1390.         End
  1391.         
  1392.     End
  1393.  
  1394.  
  1395.     ArmorSet
  1396.         Conditions    = None
  1397.         Armor        = RohanCastleWallUpgrade
  1398.         DamageFX    = RohanWallDamageFX
  1399.     End
  1400.     ArmorSet
  1401.         Conditions    = AS_TOWER
  1402.         Armor        = RohanCastleWallUpgradeAsTower
  1403.         DamageFX    = RohanWallDamageFX
  1404.     End
  1405.  
  1406.  
  1407.  
  1408.     WeaponSet
  1409.         Conditions            = None
  1410.     End
  1411.     WeaponSet
  1412.         Conditions            = PLAYER_UPGRADE
  1413.         Weapon                = PRIMARY CastleWallUpgradeBow
  1414.         AutoChooseSources    = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
  1415.     End
  1416.  
  1417.  
  1418.     ;----------------------- AUDIO -------------------------
  1419.  
  1420.     VoiceSelect                = Gui_PlotSelect
  1421.  
  1422.     SoundOnDamaged            = BuildingLightDamageWood
  1423.     SoundOnReallyDamaged        = BuildingHeavyDamageWood
  1424.  
  1425.     VoiceSelectUnderConstruction    = BuildingGoodVoiceSelectUnderConstruction
  1426.  
  1427.     ;UnitSpecificSounds
  1428.     ;    UnderConstruction        = BuildingConstructionLoop
  1429.     ;    UnderConstruction        = BuildingConstructionLoop  ; Built first time
  1430.     ;    UnderRepairFromDamage    = NoSound                    ; Repaired No animation on the building, so don't bother playing sound
  1431.     ;    UnderRepairFromRubble    = BuildingConstructionLoop    ; Repaired from completely destroyed (not used???)
  1432.     ;End
  1433.  
  1434.     ; Change selection sounds based on upgrades
  1435.     ClientBehavior = UpgradeSoundSelectorClientBehavior ModuleTag_UpgradeSoundSelector
  1436.         SoundUpgrade = Upgrade_PosternGate                                ; EVERYTHING on this line must be present
  1437.             ExcludedUpgrades = Upgrade_OpenGarrison Upgrade_WallBanner            ; NOTHING on this line can be present
  1438.             VoiceSelect = GondorPosternGateSelect
  1439.         End
  1440.         
  1441.         SoundUpgrade = Upgrade_OpenGarrison                                ; EVERYTHING on this line must be present
  1442.             ExcludedUpgrades = Upgrade_PosternGate Upgrade_WallBanner            ; NOTHING on this line can be present
  1443.             VoiceSelect = RohanBattleTowerSelect
  1444.         End
  1445.  
  1446.         SoundUpgrade = Upgrade_WallBanner                                ; EVERYTHING on this line must be present
  1447.             ExcludedUpgrades = Upgrade_PosternGate Upgrade_OpenGarrison            ; NOTHING on this line can be present
  1448.             VoiceSelect = GondorArmorySelect
  1449.         End
  1450.     End
  1451.  
  1452.  
  1453.     ; ***DESIGN parameters ***
  1454.     DisplayName        = OBJECT:RohanCastleWall
  1455.     EditorSorting    = STRUCTURE
  1456.     Side            = Obsolete
  1457.  
  1458.     Body                = ActiveBody ModuleTag_02
  1459.         MaxHealth        = ROHAN_CASTLE_WALL_HEALTH
  1460.     End
  1461.  
  1462.     ; ***ENGINEERING parameters ***
  1463.     Behavior = WallUpgradeUpdate ModuleTag_Update
  1464.     End
  1465.  
  1466.     Behavior = FoundationAIUpdate ModuleTag_FoundationAI
  1467.     End
  1468.  
  1469.     Behavior = AIUpdateInterface ModuleTag_SoWeCanUseWeapon
  1470.          AutoAcquireEnemiesWhenIdle    = Yes
  1471.          MoodAttackCheckRate            = 250
  1472.         AILuaEventsList                = GarrisonableFunctions
  1473.      End
  1474.     
  1475.     Behavior = ProductionUpdate ProductionUpdateModuleTag
  1476.         ; nothing, but is required if we have any Object-level Upgrades!
  1477.     End
  1478.     
  1479. ;    Behavior = GarrisonUpgrade TheGarrisonUpgrade
  1480. ;        TriggeredBy                = Upgrade_OpenGarrison
  1481. ;        ConflictsWith            = Upgrade_PosternGate Upgrade_WallBanner
  1482. ;    End
  1483.     Behavior = WeaponSetUpgrade ModuleTag_Add5ArchersToAllKeepsAndBattleTowers
  1484.         TriggeredBy            = Upgrade_OpenGarrison
  1485.         ConflictsWith        = Upgrade_PosternGate Upgrade_WallBanner
  1486.     End
  1487.     Behavior = CommandSetUpgrade ModueTag_GarrisonCommandSet
  1488.         TriggeredBy            = Upgrade_OpenGarrison
  1489.         ConflictsWith        = Upgrade_PosternGate Upgrade_WallBanner
  1490.         CommandSet            = SellableCommandSet
  1491.     End    
  1492.     Behavior = GeometryUpgrade ModueTag_TowerGeom
  1493.         TriggeredBy            = Upgrade_OpenGarrison
  1494.         ConflictsWith        = Upgrade_PosternGate Upgrade_WallBanner
  1495.         ShowGeometry        = TowerGeom
  1496.         HideGeometry        = DummyGeom TrebGeom
  1497.         CustomAnimAndDuration    = AnimState:UPGRADE_GARRISON AnimTime:0
  1498.     End
  1499.     Behavior = AttributeModifierUpgrade DontShootWhilstBuilding
  1500.         TriggeredBy            = Upgrade_OpenGarrison
  1501.         AttributeModifier    = PreventFromShooting
  1502.     End
  1503.     Behavior = ArmorUpgrade ArmorUpgradeModuleTag1
  1504.         TriggeredBy            = Upgrade_OpenGarrison
  1505.         ArmorSetFlag        = AS_TOWER
  1506.     End
  1507.     Behavior = AudioLoopUpgrade ModuleTag_GarrisonBuildLoop
  1508.         ; Play a "build loop" while the garrison is building up
  1509.         TriggeredBy            = Upgrade_OpenGarrison
  1510.         ConflictsWith        = Upgrade_PosternGate Upgrade_WallBanner
  1511.         SoundToPlay            = BuildingConstructionLoop
  1512.         KillOnDeath         = Yes
  1513.         KillAfterMS            = 6166  ; Should match the length of the build-up animation [Or a little shorter since sounds take a little while to die]
  1514.     End
  1515.     Behavior = TooltipUpgrade ModuleTag_GarrisonTooltip
  1516.         TriggeredBy                = Upgrade_OpenGarrison
  1517.         ConflictsWith            = Upgrade_PosternGate Upgrade_WallBanner
  1518.         DisplayName                = OBJECT:RohanBattleTower
  1519.         Description                = OBJECT:RohanBattleTowerDescription
  1520.     End
  1521.  
  1522.     ; This isn't a geom upgrade, we just need something that doesn't do anything
  1523.     ; to hook onto this upgrade.
  1524.     Behavior = GeometryUpgrade ModuleTag_FireArrows
  1525.         TriggeredBy            = Upgrade_BattleTowersToUseFireArrows
  1526.         ConflictsWith        = Upgrade_PosternGate Upgrade_WallBanner
  1527.     End
  1528.  
  1529.     Behavior = GeometryUpgrade ModueTag_TrebGeom
  1530.         TriggeredBy                = Upgrade_WallBanner
  1531.         ConflictsWith            = Upgrade_PosternGate Upgrade_OpenGarrison
  1532.         CustomAnimAndDuration    = AnimState:UPGRADE_TREBUCHET AnimTime:0
  1533.         ShowGeometry            = TrebGeom
  1534.         HideGeometry            = DummyGeom TowerGeom
  1535.         WallBoundsMesh            = P4
  1536.         RampMesh1                = P2
  1537.         RampMesh2                = P3
  1538.     End
  1539.     Behavior = CommandSetUpgrade ModueTag_TrebCommandSet
  1540.         TriggeredBy            = Upgrade_WallBanner
  1541.         ConflictsWith        = Upgrade_PosternGate Upgrade_OpenGarrison
  1542.         CommandSet            = SellableCommandSet
  1543.     End
  1544.     Behavior = AttributeModifierUpgrade DontShootWhilstBuilding2    ; Required for the buiding canceling - don't ask.
  1545.         TriggeredBy            = Upgrade_WallBanner
  1546.         AttributeModifier    = PreventFromShooting
  1547.     End
  1548.     Behavior = AudioLoopUpgrade ModuleTag_TrebBuildLoop
  1549.         ; Play a "build loop" while the garrison is building up
  1550.         TriggeredBy            = Upgrade_WallBanner 
  1551.         ConflictsWith        = Upgrade_PosternGate Upgrade_OpenGarrison
  1552.         SoundToPlay            = BuildingConstructionLoop
  1553.         KillOnDeath         = Yes
  1554.         KillAfterMS            = 6166  ; Should match the length of the build-up animation [Or a little shorter since sounds take a little while to die]
  1555.     End
  1556.     Behavior = ArmorUpgrade ArmorUpgradeModuleTag2
  1557.         TriggeredBy            = Upgrade_WallBanner
  1558.         ArmorSetFlag        = AS_TOWER
  1559.     End
  1560.     Behavior = TooltipUpgrade ModuleTag_WallBannerTooltip
  1561.         TriggeredBy                = Upgrade_WallBanner
  1562.         ConflictsWith            = Upgrade_PosternGate Upgrade_OpenGarrison
  1563.         DisplayName                = OBJECT:RohanFlagTower
  1564.         Description                = OBJECT:RohanFlagTowerDescription
  1565.     End
  1566.  
  1567.     Behavior = DynamicPortalBehaviour PosternGatePortal
  1568.         TriggeredBy                = Upgrade_PosternGate
  1569.         ConflictsWith            = Upgrade_OpenGarrison Upgrade_WallBanner
  1570.         CustomAnimAndDuration    = AnimState:UPGRADE_POSTERN_GATE AnimTime:0
  1571.         ActivationDelaySeconds    = 7.0
  1572.         
  1573.         ObjectFilter    = POSTERNGATE_ALLOWABLE_OBJECTFILTER
  1574.         BonePrefix        = Post
  1575.         NumberOfBones    = 4
  1576.         WayPoint        = Index:0    Type:Walk    ; 0
  1577.         WayPoint        = Index:1    Type:Walk    ; 1
  1578.         WayPoint        = Index:2    Type:Walk    ; 2
  1579.         WayPoint        = Index:3    Type:Walk    ; 3
  1580.         WayPoint        = Index:2    Type:Walk    ; 4
  1581.         WayPoint        = Index:1    Type:Walk    ; 5
  1582.         Link            = From:0 Via:4 Via:5 To:3
  1583.         Link            = From:3 Via:1 Via:2 To:0
  1584.     End
  1585.  
  1586.     Behavior = CommandSetUpgrade ModueTag_PosternGateCommandSet
  1587.         TriggeredBy            = Upgrade_PosternGate
  1588.         ConflictsWith        = Upgrade_OpenGarrison Upgrade_WallBanner
  1589.         CommandSet            = SellableCommandSet
  1590.     End
  1591.     Behavior = AttributeModifierUpgrade DontShootWhilstBuilding3    ; Required for the buiding canceling - don't ask.
  1592.         TriggeredBy            = Upgrade_PosternGate
  1593.         AttributeModifier    = PreventPosternGateFromShooting
  1594.     End
  1595.     Behavior = AudioLoopUpgrade ModuleTag_GateBuildLoop
  1596.         ; Play a "build loop" while the garrison is building up
  1597.         TriggeredBy            = Upgrade_PosternGate
  1598.         ConflictsWith        = Upgrade_WallBanner Upgrade_OpenGarrison
  1599.         SoundToPlay            = BuildingConstructionLoop
  1600.         KillOnDeath         = Yes
  1601.         KillAfterMS            = 6166  ; Should match the length of the build-up animation [Or a little shorter since sounds take a little while to die]
  1602.     End
  1603.     Behavior = TooltipUpgrade ModuleTag_PosternGateTooltip
  1604.         TriggeredBy                = Upgrade_PosternGate
  1605.         ConflictsWith            = Upgrade_WallBanner Upgrade_OpenGarrison
  1606.         DisplayName                = OBJECT:RohanPosternGate
  1607.         ;Description            = OBJECT:RohanPosternGateDescription
  1608.     End
  1609.  
  1610.  
  1611. ;    Behavior = HordeGarrisonContain GarrisonContainModuleTag
  1612. ;        ContainMax              = 2
  1613. ;        PassengerFilter            = ANY +INFANTRY +HORDE -CAVALRY -SUMMONED -WildSpiderling -WildSpiderlingHorde
  1614. ;        AllowAlliesInside       = Yes
  1615. ;        AllowEnemiesInside      = Yes
  1616. ;        ObjectStatusOfContained = UNSELECTABLE CAN_ATTACK
  1617. ;        EntryOffset                = X:0.0 Y:-45.0 Z:50.0
  1618. ;        EntryOffset                = X:0.0 Y:0.0 Z:50.0
  1619. ;        ExitOffset                = X:0.0 Y:0.0 Z:50.0
  1620. ;        Enabled                    = No
  1621. ;        PassengerBonePrefix        = PassengerBone:Arrow_ KindOf:INFANTRY HORDE
  1622. ;    End
  1623.  
  1624.       Behavior = AttributeModifierAuraUpdate ModuleTag_WallBonus
  1625.         StartsActive    = Yes ;If no, requires upgrade to turn on.
  1626.         BonusName        = WallBonus
  1627.         RefreshDelay    = 2000
  1628.         ;Range            = 120        ; Range is overridden to affect people on us since we are a wall
  1629.         ;TargetEnemy        = Yes    ; Alliances are ignored to affect people on us since we are a wall
  1630.     End
  1631.  
  1632.     Behavior = AttributeModifierAuraUpdate ModuleTag_Leadership
  1633.         TriggeredBy        = Upgrade_WallBanner
  1634.         ConflictsWith    = Upgrade_PosternGate Upgrade_OpenGarrison
  1635.         StartsActive    = No
  1636.         BonusName        = RohanWallPassiveLeadership
  1637.         RefreshDelay    = 2000
  1638.         ObjectFilter    = GENERIC_BUFF_RECIPIENT_OBJECT_FILTER
  1639.     End    
  1640.  
  1641.     Behavior = CastleMemberBehavior ModuleTag_CMB
  1642.         StoreUpgradePrice = Yes ; We want to overload the refund price with any upgrades purchased.
  1643.         CountsForEvaCastleBreached = No  ; This is just the floating button
  1644.     End
  1645.  
  1646.     KindOf                    = STRUCTURE SELECTABLE IMMOBILE WALK_ON_TOP_OF_WALL WALL_UPGRADE CAN_ATTACK NOT_AUTOACQUIRABLE ;;;;;;;;;ATTACK_NEEDS_LINE_OF_SIGHT GARRISON
  1647.   RadarPriority = NOT_ON_RADAR
  1648.     CommandSet                = RohanCastleWallCommandSet
  1649.     KeepSelectableWhenDead    = Yes
  1650.       VisionRange                = GONDOR_ARCHER_VISION_RANGE
  1651.     
  1652.     GeometryIsSmall                    = No
  1653.  
  1654.     Geometry                        = BOX
  1655.     GeometryMajorRadius                = 1.0
  1656.     GeometryMinorRadius                = 1.0
  1657.     GeometryHeight                    = 1.0
  1658.     GeometryName                    = DummyGeom
  1659.     GeometryActive                    = Yes
  1660.  
  1661.     AdditionalGeometry                = BOX
  1662.     GeometryMajorRadius                = 28.0
  1663.     GeometryMinorRadius                = 20.0
  1664.     GeometryHeight                    = 80.0
  1665.     GeometryOffset                    = X:0.0 Y:-50.0 Z:0.0        ; These structures are rotated 90, so 'y' is really the 'x' offset
  1666.     GeometryName                    = TrebGeom
  1667.     GeometryActive                    = No
  1668.  
  1669.     AdditionalGeometry                = BOX
  1670.     GeometryMajorRadius                = 20.0
  1671.     GeometryMinorRadius                = 15.0
  1672.     GeometryHeight                    = 133.0
  1673.     GeometryOffset                    = X:0.0 Y:-38.0 Z:0.0        ; These structures are rotated 90, so 'y' is really the 'x' offset
  1674.     GeometryName                    = TowerGeom
  1675.     GeometryActive                    = No
  1676.  
  1677.     Shadow                            = SHADOW_VOLUME
  1678.     
  1679.     GeometryContactPoint    = X: 12.0    Y:-38.0    Z:133    Swoop
  1680.     GeometryContactPoint    = X:  0.0    Y:-38.0    Z:0
  1681.     GeometryContactPoint    = X:-12.0    Y:-38.0    Z:133    Swoop
  1682.  
  1683.  
  1684. End
  1685.  
  1686. ;------------------------------------------------------------------------------ 
  1687. ;Rohan House01
  1688. Object RohanHouse01
  1689.  
  1690.     SelectPortrait = BPRHelmsDeep
  1691.  
  1692.   ; *** ART Parameters ***
  1693.   Draw = W3DScriptedModelDraw ModuleTag_Draw
  1694.     OkToChangeModelColor  = Yes
  1695.     UseStandardModelNames = Yes
  1696.  
  1697.     DefaultModelConditionState
  1698.       Model = RGenericA    
  1699.       End
  1700.     End
  1701.  
  1702.   ; ***DESIGN parameters ***
  1703.   DisplayName         = OBJECT:Rohan House
  1704.   Side                = Civilian
  1705.   EditorSorting       = STRUCTURE
  1706.   Browser = REGION Shire STRUCTURE
  1707.   ThreatLevel = 1.0
  1708.  
  1709.  
  1710.  
  1711.   ; *** AUDIO Parameters ***
  1712.  
  1713.     SoundOnDamaged        = BuildingLightDamageStone
  1714.     SoundOnReallyDamaged    = BuildingHeavyDamageStone 
  1715.  
  1716.     ; *** ENGINEERING Parameters ***
  1717.  
  1718.       RadarPriority       = NOT_ON_RADAR
  1719.     KindOf              = PRELOAD STRUCTURE IMMOBILE CHUNK_VENDOR   CAN_CAST_REFLECTIONS ;SELECTABLE
  1720.  
  1721.     Body                = ActiveBody ModuleTag_02
  1722.         MaxHealth        = 1000
  1723.     End
  1724.     
  1725.     Geometry              = BOX
  1726.     GeometryMajorRadius   = 25
  1727.     GeometryMinorRadius   = 44
  1728.     GeometryHeight        = 48
  1729.     GeometryOffset        = X:0 Y:0 Z:0
  1730.     
  1731.     GeometryIsSmall       = No
  1732.       
  1733.     Shadow                = SHADOW_VOLUME
  1734. End
  1735.  
  1736. ;------------------------------------------------------------------------------ 
  1737. ;Rohan House02
  1738. Object RohanHouse02
  1739.  
  1740.     SelectPortrait = BPRHelmsDeep
  1741.  
  1742.   ; *** ART Parameters ***
  1743.   Draw = W3DScriptedModelDraw ModuleTag_Draw
  1744.     OkToChangeModelColor  = Yes
  1745.     UseStandardModelNames = Yes
  1746.  
  1747.     DefaultModelConditionState
  1748.       Model = RGenericB
  1749.       End
  1750.     End
  1751.  
  1752.   ; ***DESIGN parameters ***
  1753.   DisplayName         = OBJECT:Rohan House
  1754.   Side                = Civilian
  1755.   EditorSorting       = STRUCTURE
  1756.   Browser = REGION Shire STRUCTURE
  1757.   ThreatLevel = 1.0
  1758.  
  1759.  
  1760.  
  1761.   ; *** AUDIO Parameters ***
  1762.  
  1763.     SoundOnDamaged        = BuildingLightDamageStone
  1764.     SoundOnReallyDamaged    = BuildingHeavyDamageStone 
  1765.  
  1766.     ; *** ENGINEERING Parameters ***
  1767.  
  1768.       RadarPriority       = NOT_ON_RADAR
  1769.     KindOf              = PRELOAD STRUCTURE IMMOBILE CHUNK_VENDOR   CAN_CAST_REFLECTIONS ;SELECTABLE
  1770.  
  1771.     Body                = ActiveBody ModuleTag_02
  1772.         MaxHealth        = 1000
  1773.     End
  1774.         
  1775.     Geometry              = BOX
  1776.     GeometryMajorRadius   = 25
  1777.     GeometryMinorRadius   = 44
  1778.     GeometryHeight        = 48
  1779.     GeometryOffset        = X:-20 Y:12 Z:0
  1780.   
  1781.     AdditionalGeometry    = BOX
  1782.     GeometryMajorRadius   = 28
  1783.     GeometryMinorRadius   = 15 
  1784.     GeometryHeight        = 17
  1785.     GeometryOffset        = X:24 Y:-42 Z:0  
  1786.     
  1787.     GeometryIsSmall       = No
  1788.       
  1789.     Shadow                = SHADOW_VOLUME
  1790. End
  1791.  
  1792. ;------------------------------------------------------------------------------ 
  1793. ;Rohan House03
  1794. Object RohanHouse03
  1795.  
  1796.     SelectPortrait = BPRHelmsDeep
  1797.  
  1798.   ; *** ART Parameters ***
  1799.   Draw = W3DScriptedModelDraw ModuleTag_Draw
  1800.     OkToChangeModelColor  = Yes
  1801.     UseStandardModelNames = Yes
  1802.  
  1803.     DefaultModelConditionState
  1804.       Model = RGenericC
  1805.       End
  1806.     End
  1807.  
  1808.   ; ***DESIGN parameters ***
  1809.   DisplayName         = OBJECT:Rohan House
  1810.   Side                = Civilian
  1811.   EditorSorting       = STRUCTURE
  1812.   Browser = REGION Shire STRUCTURE
  1813.   ThreatLevel = 1.0
  1814.  
  1815.  
  1816.  
  1817.   ; *** AUDIO Parameters ***
  1818.  
  1819.     SoundOnDamaged        = BuildingLightDamageStone
  1820.     SoundOnReallyDamaged    = BuildingHeavyDamageStone 
  1821.  
  1822.     ; *** ENGINEERING Parameters ***
  1823.  
  1824.       RadarPriority       = NOT_ON_RADAR
  1825.  
  1826.     KindOf              = PRELOAD STRUCTURE IMMOBILE CHUNK_VENDOR CAN_CAST_REFLECTIONS; SELECTABLE 
  1827.  
  1828.     Body                = ActiveBody ModuleTag_02
  1829.         MaxHealth        = 1000
  1830.     End
  1831.         
  1832.     Geometry              = BOX
  1833.     GeometryMajorRadius   = 28
  1834.     GeometryMinorRadius   = 28
  1835.     GeometryHeight        = 14
  1836.     GeometryOffset        = X:27 Y:17 Z:0
  1837.   
  1838.     AdditionalGeometry    = BOX
  1839.     GeometryMajorRadius   = 26
  1840.     GeometryMinorRadius   = 45 
  1841.     GeometryHeight        = 49
  1842.     GeometryOffset        = X:-26 Y:0 Z:0  
  1843.     
  1844.     GeometryIsSmall       = No
  1845.       
  1846.     Shadow                = SHADOW_VOLUME
  1847. End
  1848.  
  1849. ;------------------------------------------------------------------------------ 
  1850. ;Rohan House04
  1851. Object RohanHouse04
  1852.  
  1853.     SelectPortrait = BPRHelmsDeep
  1854.  
  1855.   ; *** ART Parameters ***
  1856.   Draw = W3DScriptedModelDraw ModuleTag_Draw
  1857.     OkToChangeModelColor  = Yes
  1858.     UseStandardModelNames = Yes
  1859.  
  1860.     DefaultModelConditionState
  1861.       Model = RGenericD
  1862.       End
  1863.     End
  1864.  
  1865.   ; ***DESIGN parameters ***
  1866.   DisplayName         = OBJECT:Rohan House
  1867.   Side                = Civilian
  1868.   EditorSorting       = STRUCTURE
  1869.   Browser = REGION Shire STRUCTURE
  1870.   ThreatLevel = 1.0
  1871.  
  1872.  
  1873.  
  1874.   ; *** AUDIO Parameters ***
  1875.  
  1876.     SoundOnDamaged        = BuildingLightDamageStone
  1877.     SoundOnReallyDamaged    = BuildingHeavyDamageStone 
  1878.  
  1879.     ; *** ENGINEERING Parameters ***
  1880.  
  1881.       RadarPriority       = NOT_ON_RADAR
  1882.     KindOf              = PRELOAD STRUCTURE IMMOBILE CHUNK_VENDOR   CAN_CAST_REFLECTIONS ;SELECTABLE
  1883.  
  1884.     Body                = ActiveBody ModuleTag_02
  1885.         MaxHealth        = 1000
  1886.     End
  1887.         
  1888.     Geometry              = BOX
  1889.     GeometryMajorRadius   = 30
  1890.     GeometryMinorRadius   = 50
  1891.     GeometryHeight        = 54
  1892.     GeometryOffset        = X:-5 Y:2 Z:0
  1893.   
  1894.     AdditionalGeometry    = BOX
  1895.     GeometryMajorRadius   = 17
  1896.     GeometryMinorRadius   = 10 
  1897.     GeometryHeight        = 37
  1898.     GeometryOffset        = X:40 Y:17 Z:0  
  1899.     
  1900.     GeometryIsSmall       = No
  1901.       
  1902.     Shadow                = SHADOW_VOLUME
  1903. End
  1904.  
  1905. ;------------------------------------------------------------------------------ 
  1906. ;Rohan House05
  1907. Object RohanHouse05
  1908.  
  1909.     SelectPortrait = BPRHelmsDeep
  1910.  
  1911.   ; *** ART Parameters ***
  1912.   Draw = W3DScriptedModelDraw ModuleTag_Draw
  1913.     OkToChangeModelColor  = Yes
  1914.     UseStandardModelNames = Yes
  1915.  
  1916.     DefaultModelConditionState
  1917.       Model = RGenericE
  1918.       End
  1919.     End
  1920.  
  1921.   ; ***DESIGN parameters ***
  1922.   DisplayName         = OBJECT:Rohan House
  1923.   Side                = Civilian
  1924.   EditorSorting       = STRUCTURE
  1925.   Browser = REGION Shire STRUCTURE
  1926.   ThreatLevel = 1.0
  1927.  
  1928.  
  1929.  
  1930.   ; *** AUDIO Parameters ***
  1931.  
  1932.     SoundOnDamaged        = BuildingLightDamageStone
  1933.     SoundOnReallyDamaged    = BuildingHeavyDamageStone 
  1934.  
  1935.     ; *** ENGINEERING Parameters ***
  1936.  
  1937.       RadarPriority       = NOT_ON_RADAR
  1938.     KindOf              = PRELOAD STRUCTURE IMMOBILE CHUNK_VENDOR   CAN_CAST_REFLECTIONS ;SELECTABLE
  1939.  
  1940.     Body                = ActiveBody ModuleTag_02
  1941.         MaxHealth        = 1000
  1942.     End
  1943.         
  1944.     Geometry              = BOX
  1945.     GeometryMajorRadius   = 19
  1946.     GeometryMinorRadius   = 39
  1947.     GeometryHeight        = 50
  1948.     GeometryOffset        = X:-41 Y:-12 Z:0
  1949.   
  1950.     AdditionalGeometry    = BOX
  1951.     GeometryMajorRadius   = 15
  1952.     GeometryMinorRadius   = 18 
  1953.     GeometryHeight        = 43
  1954.     GeometryOffset        = X:-11 Y:-32 Z:0  
  1955.     
  1956.     GeometryIsSmall       = No
  1957.       
  1958.     Shadow                = SHADOW_VOLUME
  1959. End