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_units_mordor_siegetower.ini < prev    next >
Text File  |  2006-01-31  |  29KB  |  841 lines

  1. ;------------------------------------------------------------------------------
  2. ; aka Siege Tower, MordorSiegeTower, SiegeTowerMordor
  3. Object MordorSiegeTower
  4.  
  5.     ; This is required for garrisoned objects - please put in all objects.
  6.     ButtonImage        = BMGreatSiegeWorks_SiegeTower
  7.     SelectPortrait    = UPMordor_SeigeTower
  8.  
  9.   ; *** ART Parameters ***
  10.   Draw = W3DTruckDraw ModuleTag_01
  11.     OkToChangeModelColor = Yes
  12.     ExtraPublicBone = Crew
  13.     ExtraPublicBone = Ladder01
  14.     ExtraPublicBone = Ladder02
  15.     ExtraPublicBone = Ladder03
  16.     ExtraPublicBone = Ladder04
  17.     ExtraPublicBone = Passenger    
  18.  
  19.     DependencySharedModelFlags = MOVING TURN_LEFT TURN_RIGHT BACKING_UP DYING SIEGE_CONTAIN
  20.     
  21.     StaticModelLODMode = Yes
  22.   
  23.     ; day
  24.     DefaultModelConditionState
  25.       Model         = MUSiegTowr
  26.     End
  27.     
  28.     ModelConditionState = DYING
  29.       Model         = MUSiegTowrDSKN
  30.     End
  31.             
  32.     ModelConditionState = MOVING
  33.         Model    =  MUSiegTowr 
  34.       ParticleSysBone     = WheelL01 SiegeTowerTrailDust
  35.       ParticleSysBone     = WheelR01 SiegeTowerTrailDust
  36.       ParticleSysBone     = WheelL02 SiegeTowerTrailDust
  37.       ParticleSysBone     = WheelR02 SiegeTowerTrailDust
  38.     End
  39.     
  40.     ModelConditionState =JUST_BUILT
  41.         Model    =  MUSiegTowr_A
  42.     End
  43.      
  44.     ;-----------------------------------------------anims--- 
  45.     IdleAnimationState
  46.         StateName = Idle
  47.         Animation = IDLA
  48.             AnimationName     = MUSiegTowr_skl.MUSiegTowr_OPNA
  49.             AnimationMode = Manual
  50.         End
  51.         
  52.     End
  53.     
  54.      AnimationState  = JUST_BUILT
  55.         StateName = JustBuilt
  56.         Animation = Being_Built
  57.             AnimationName     = MUSiegTowr_A.MUSiegTowr_A
  58.             AnimationMode =ONCE
  59.         End
  60.     End
  61.     
  62.     AnimationState  = DYING DEATH_1
  63.       ; killer is north of us, however art is named wrong
  64.       Animation = Dying1
  65.         AnimationName     = MUSiegTowrDSKL.MUSiegTowrDIE_W
  66.         AnimationMode = ONCE
  67.       End
  68.     End
  69.  
  70.     AnimationState  = DYING DEATH_2
  71.       ; killer is east of us, however art is named wrong
  72.       Animation = Dying2
  73.         AnimationName     = MUSiegTowrDSKL.MUSiegTowrDIE_S
  74.         AnimationMode = ONCE
  75.       End
  76.     End
  77.  
  78.     AnimationState  = DYING DEATH_3
  79.       ; killer is south of us, however art is named wrong
  80.       Animation = Dying3
  81.         AnimationName     = MUSiegTowrDSKL.MUSiegTowrDIE_E
  82.         AnimationMode = ONCE
  83.       End
  84.     End
  85.  
  86.     AnimationState  = DYING DEATH_4
  87.       ; killer is west of us, however art is named wrong
  88.       Animation = Dying4
  89.         AnimationName     = MUSiegTowrDSKL.MUSiegTowrDIE_N
  90.         AnimationMode = ONCE
  91.       End
  92.     End
  93.  
  94.     AnimationState  = DYING
  95.       Animation = Dying
  96.         AnimationName     = MUSiegTowrDSKL.MUSiegTowrDIE_C
  97.         AnimationMode = ONCE
  98.       End
  99.     End
  100.  
  101.         AnimationState                        = PARALYZED
  102.             Animation
  103.                 AnimationName                = MUCatapult_SKL.MUCatapult_IDLA
  104.                 AnimationMode                = LOOP
  105.             End
  106.         End
  107.         
  108.     AnimationState  = UNPACKING
  109.       Animation = Unpack
  110.         AnimationName     = MUSiegTowr_skl.MUSiegTowr_OPNA
  111.         AnimationMode = ONCE
  112.       End
  113.       ParticleSysBone = Ladder04 SiegeTowerDeployedDebris
  114.       ParticleSysBone = Ladder04 SiegeTowerDeployedDust
  115.     End
  116.  
  117.     AnimationState  = DEPLOYED
  118.       Animation = Close
  119.         AnimationName     = MUSiegTowr_skl.MUSiegTowr_OPNB
  120.         AnimationMode = ONCE
  121.       End
  122.     End
  123.  
  124.     AnimationState  = PACKING
  125.       Animation = Close
  126.         AnimationName     = MUSiegTowr_skl.MUSiegTowr_CLSA
  127.         AnimationMode = ONCE
  128.       End
  129.     End
  130.  
  131.  
  132.     TrackMarks = EXTireTrack2_Temp.tga
  133.     TrackMarksLeftBone = WheelL02
  134.     TrackMarksRightBone = WheelR02
  135.  
  136.     ; These parameters are only used if the model has a separate suspension,
  137.     ; and the locomotor has HasSuspension = Yes.
  138.     LeftFrontTireBone           = WheelL01
  139.     RightFrontTireBone          = WheelR01
  140.     LeftRearTireBone            = WheelL02
  141.     RightRearTireBone           = WheelR02
  142.     TireRotationMultiplier      = 0.2   ; this * speed = rotation.
  143.     PowerslideRotationAddition  = 2.5   ; This speed is added to the rotation speed when powersliding.
  144.   End
  145.  
  146.     #include "..\..\..\includes\StunDrawModuleLarge.inc"
  147.  
  148.   ; ***DESIGN parameters ***
  149.   Side = Mordor
  150.     IsTrainable        = No
  151.   EditorSorting = UNIT
  152.   ThreatLevel = SIEGETOWER_THREAT_LEVEL
  153.   ThingClass = MACHINE
  154.   TransportSlotCount = TRANSPORTSLOTCOUNT_NOT_TRANSPORTABLE
  155.  
  156.     ArmorSet
  157.         Conditions      = None
  158.         Armor           = SiegeTowerArmor
  159.         DamageFX        = SiegeTowerDamageFX
  160.     End
  161.  
  162.     ; This is required so that the build phase lasts as long as the anim.
  163.     BuildFadeInOnCreateTime = 16.0
  164.     
  165.     
  166.     VisionRange = VISION_STANDARD_MELEE
  167.     ShroudClearingRange = SHROUD_CLEAR_STANDARD
  168.  
  169.     BountyValue = MORDOR_SIEGETOWER_BOUNTY_VALUE
  170.     DisplayName    = OBJECT:MordorSiegeTower
  171.     CrusherLevel   = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
  172.     CrushableLevel = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
  173.     CommandSet = MordorSiegeTowerCommandSet
  174.     CanPathThroughGates    = No
  175.     CommandPoints = 5
  176.  
  177.  
  178.     ; ***AUDIO parameters ***
  179.  
  180.     VoiceAttack            = SiegeTowerVoiceAttackMS            ;CatapultVoiceAttack
  181.     VoiceAttackCharge        = SiegeTowerVoiceAttackMS            ;CatapultVoiceAttack
  182.     VoiceAttackStructure    = SiegeTowerVoiceAttackMS            ;CatapultVoiceAttack
  183.     VoiceCombineWithHorde    = SiegeTowerVoiceMoveMS
  184.     VoiceCreated        = EVA:SiegeTowerCreated
  185.     VoiceFullyCreated     = EVA:SiegeTowerCreated
  186.     VoiceGuard            = SiegeTowerVoiceMove
  187.     VoiceMove            = SiegeTowerVoiceMoveMS            ;CatapultVoiceMove
  188.     VoicePriority        = 16
  189.     VoiceSelect            = SiegeTowerVoiceSelectMS            ;CatapultVoiceSelect
  190.     VoiceSelectBattle    = SiegeTowerVoiceSelectMS            ;CatapultVoiceSelect
  191.  
  192.     SoundAmbient        = SiegeTowerTrollVoxSinglesLoop
  193.     SoundMoveLoop        = SiegeTowerMoveLoop            ;CatapultMoveLoop
  194.  
  195.     #include "..\..\..\includes\StandardUnitEvaEvents.inc"
  196.  
  197.     Behavior = LargeGroupAudioUpdate ModuleTag_LGAU            ; Tie into LargeGroupAudio system
  198.         Key = SiegeWeapon SiegeTower
  199.     End
  200.  
  201.   ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
  202.         MaxUpdateRangeCap = 800
  203.         AnimationSound = Sound:SiegeTowerCreatePart1                         Animation:MUSiegTowr_A.MUSiegTowr_A         Frames:70
  204.         AnimationSound = Sound:SiegeTowerCreatePart2                         Animation:MUSiegTowr_A.MUSiegTowr_A         Frames:140
  205.         AnimationSound = Sound:SiegeTowerCreatePart3                         Animation:MUSiegTowr_A.MUSiegTowr_A         Frames:220
  206.         AnimationSound = Sound:SiegeTowerCreatePart4                         Animation:MUSiegTowr_A.MUSiegTowr_A         Frames:350
  207.         AnimationSound = Sound:SiegeTowerGateLatch                        Animation:MUSiegTowr_A.MUSiegTowr_A            Frames:399
  208.         AnimationSound = Sound:LadderDieCreak                            Animation:MUSiegTowr_A.MUSiegTowr_A            Frames:400
  209.         AnimationSound = Sound:SiegeTowerGateCloseImpact                    Animation:MUSiegTowr_A.MUSiegTowr_A         Frames:445
  210.  
  211.         AnimationSound = Sound:SiegeTowerDieFall                             Animation:MUSiegTowrDSKL.MUSiegTowrDIE_W         Frames: 50
  212.         AnimationSound = Sound:SiegeTowerDieFall                             Animation:MUSiegTowrDSKL.MUSiegTowrDIE_C         Frames: 1
  213.         AnimationSound = Sound:SiegeTowerDieFall                             Animation:MUSiegTowrDSKL.MUSiegTowrDIE_E         Frames: 45
  214.         AnimationSound = Sound:SiegeTowerDieFall                             Animation:MUSiegTowrDSKL.MUSiegTowrDIE_M         Frames: 1
  215.         AnimationSound = Sound:SiegeTowerDieFall                             Animation:MUSiegTowrDSKL.MUSiegTowrDIE_N         Frames: 50
  216.         AnimationSound = Sound:SiegeTowerDieFall                             Animation:MUSiegTowrDSKL.MUSiegTowrDIE_S         Frames: 49
  217.  
  218.         AnimationSound = Sound:LadderDieCreak            RequiredMC:UNPACKING    Animation:MUSiegTowr_skl.MUSiegTowr_OPNA        Frames: 0
  219.         AnimationSound = Sound:SiegeTowerGateLatch                        Animation:MUSiegTowr_skl.MUSiegTowr_OPNA        Frames: 1
  220.         AnimationSound = Sound:SiegeTowerOpen                            Animation:MUSiegTowr_skl.MUSiegTowr_OPNA        Frames: 9
  221.         AnimationSound = Sound:SiegeTowerGateOpenImpact                        Animation:MUSiegTowr_skl.MUSiegTowr_OPNA        Frames: 10
  222.         AnimationSound = Sound:ImpactLadderWall                            Animation:MUSiegTowr_skl.MUSiegTowr_OPNA        Frames: 22
  223.  
  224.         AnimationSound = Sound:SiegeTowerGateLatch                         Animation:MUSiegTowr_skl.MUSiegTowr_CLSA        Frames: 0
  225.         AnimationSound = Sound:LadderDieCreak                            Animation:MUSiegTowr_skl.MUSiegTowr_CLSA        Frames: 1
  226.         AnimationSound = Sound:SiegeTowerGateCloseImpact                     Animation:MUSiegTowr_skl.MUSiegTowr_CLSA        Frames: 31
  227.   End
  228.  
  229.  
  230.   ; *** ENGINEERING Parameters ***  
  231.  
  232.   RadarPriority = UNIT
  233.   KindOf                = SELECTABLE SIEGE_TOWER MACHINE PATH_THROUGH_INFANTRY TRANSPORT SCARY SCORE
  234.   CamouflageDetectionMultiplier = CAMOUFLAGE_DETECTION_DISTANCE_SHORT
  235.   ShockwaveResistance = SHOCKWAVE_RESISTANCE_IMMUNE
  236.  
  237.   Behavior = SiegeAIUpdate ModuleTag_02
  238.     AutoAcquireEnemiesWhenIdle = No
  239.     MoodAttackCheckRate        = 250
  240.   End
  241.  
  242.   LocomotorSet
  243.     Locomotor = SiegeTowerLocomotor
  244.     Condition = SET_NORMAL 
  245.     Speed     = 24
  246.   End
  247.  
  248.   Behavior = PhysicsBehavior ModuleTag_03
  249.   End
  250.  
  251.     BuildCost = MORDOR_SIEGETOWER_BUILDCOST
  252.     BuildTime = MORDOR_SIEGETOWER_BUILDTIME
  253.     
  254.   Body                  = ActiveBody ModuleTag_04
  255.     CheerRadius     = EMOTION_CHEER_RADIUS
  256.     MaxHealth            = MORDOR_SIEGETOWER_HEALTH        ;BALANCE MordorSiegeTower Health
  257.     MaxHealthDamaged    = MORDOR_SIEGETOWER_HEALTH_DAMAGED
  258.   End
  259.   
  260.       ; Death weapons for fall to right
  261.     Behavior = FireWeaponWhenDeadBehavior ModuleTag_Fall1
  262.         RequiredStatus    = DEATH_1
  263.         StartsActive    = Yes
  264.         DelayTime        = 2000 
  265.         DeathWeapon        = MordorSiegeTowerToppleFinal
  266.         WeaponOffset    = X:36 Y:0 Z:0
  267.     End
  268.  
  269.     ; Death weapons for fall forward
  270.     Behavior = FireWeaponWhenDeadBehavior ModuleTag_Fall2
  271.         RequiredStatus    = DEATH_2
  272.         StartsActive    = Yes
  273.         DelayTime        = 2000
  274.         DeathWeapon        = MordorSiegeTowerToppleFinal
  275.         WeaponOffset    = X:0 Y:36 Z:0
  276.     End
  277.     
  278.     ; Death weapons for fall left
  279.     Behavior = FireWeaponWhenDeadBehavior ModuleTag_Fall3
  280.         RequiredStatus    = DEATH_3
  281.         StartsActive    = Yes
  282.         DelayTime        = 2000 
  283.         DeathWeapon        = MordorSiegeTowerToppleFinal
  284.         WeaponOffset    = X:-36 Y:0 Z:0
  285.     End
  286.  
  287.     ; Death weapons for fall down
  288.     Behavior = FireWeaponWhenDeadBehavior ModuleTag_Fall4
  289.         RequiredStatus    = DEATH_4
  290.         StartsActive    = Yes
  291.         DelayTime        =  2000
  292.         DeathWeapon        = MordorSiegeTowerToppleFinal 
  293.         WeaponOffset    = X:0 Y:-36 Z:0
  294.     End
  295.  
  296.   Behavior = SlowDeathBehavior ModuleTag_05
  297.     ProbabilityModifier = 1 ; We only want this one to apply when the directional one is blocked/unpickable
  298.     DeathTypes = ALL 
  299.     SinkDelay = 5000
  300.     SinkRate = 4.0     ; in Dist/Sec
  301.     DestructionDelay = 45000
  302.     FX = INITIAL FX_SiegeTowerDieInitial_N
  303.   End
  304.  
  305.   Behavior = ClearanceTestingSlowDeathBehavior ModuleTag_05_n
  306.     ProbabilityModifier          = 1000
  307.     DeathTypes                = ALL 
  308.     SinkDelay                 = 2200
  309.     SinkRate                  = 4.0     ; in Dist/Sec
  310.     DestructionDelay          = 16000
  311.     DamageAmountRequired      = 15
  312.     MinKillerAngle            = -46
  313.     MaxKillerAngle            = 46
  314.     DeathFlags                = DEATH_1 ; Sets BOTH model condition and object status bits.
  315.     ProbabilityModifier       = 10000
  316.     FX = INITIAL FX_SiegeTowerDieInitial_N
  317.     ;FX = MIDPOINT FX_SiegeTowerDieMidpoint_N
  318.     
  319.     ; This is the area which must be clear for this slow death to go off
  320.     ; Use Control-Shift-Alt-E in game to display this area
  321.     ; Use debug.add l + clearancetestingslowdeathbehavior to get feedback on why test fails
  322.     ClearanceGeometry = Box
  323.     ClearanceGeometryMajorRadius = 32.0
  324.     ClearanceGeometryMinorRadius = 32.0
  325.     ClearanceGeometryHeight = 32.0
  326.     ClearanceGeometryIsSmall = No
  327.     ClearanceGeometryOffset = X:36 Y:0 Z:0
  328.  
  329.     ClearanceMaxHeight = 32
  330.     ClearanceMaxHeightFraction = 0.04 ; If more than 5% of the cells in the clearance geometry are more than 40 units above the Oliphant's base, don't fall (don't fall into cliffs)
  331.     ClearanceMinHeight = -32
  332.     ClearanceMinHeightFraction = 0.40 ; If more than 40% of the cells in the clearance geometry are more than 40 units below the Oliphant's base, don't fall (don't get left hanging over a cliff)    
  333.   End
  334.  
  335.   Behavior = ClearanceTestingSlowDeathBehavior ModuleTag_05_e
  336.     ProbabilityModifier = 1000
  337.     DeathTypes                = ALL 
  338.     SinkDelay                 = 2200
  339.     SinkRate                  = 4.0     ; in Dist/Sec
  340.     DestructionDelay          = 16000
  341.     DamageAmountRequired      = 15
  342.     MinKillerAngle            = 44
  343.     MaxKillerAngle            = 136
  344.     DeathFlags                = DEATH_2 ; Sets BOTH model condition and object status bits.
  345.     ProbabilityModifier       = 10000
  346.     FX = INITIAL FX_SiegeTowerDieInitial_N
  347.     ;FX = MIDPOINT FX_SiegeTowerDieMidpoint_N
  348.     
  349.     ; This is the area which must be clear for this slow death to go off
  350.     ; Use Control-Shift-Alt-E in game to display this area
  351.     ; Use debug.add l + clearancetestingslowdeathbehavior to get feedback on why test fails
  352.     ClearanceGeometry = Box
  353.     ClearanceGeometryMajorRadius = 32.0
  354.     ClearanceGeometryMinorRadius = 32.0
  355.     ClearanceGeometryHeight = 32.0
  356.     ClearanceGeometryIsSmall = No
  357.     ClearanceGeometryOffset = X:0 Y:36 Z:0
  358.  
  359.     ClearanceMaxHeight = 32
  360.     ClearanceMaxHeightFraction = 0.04 ; If more than 5% of the cells in the clearance geometry are more than 40 units above the Oliphant's base, don't fall (don't fall into cliffs)
  361.     ClearanceMinHeightFraction = 0.40 ; If more than 40% of the cells in the clearance geometry are more than 40 units below the Oliphant's base, don't fall (don't get left hanging over a cliff)        
  362.   End
  363.  
  364.   Behavior = ClearanceTestingSlowDeathBehavior ModuleTag_05_s
  365.     ProbabilityModifier = 1000
  366.     DeathTypes                = ALL 
  367.     SinkDelay                 = 2200
  368.     SinkRate                  = 4.0     ; in Dist/Sec
  369.     DestructionDelay          = 16000
  370.     DamageAmountRequired      = 15
  371.     MinKillerAngle            = 134
  372.     MaxKillerAngle            = 226
  373.     DeathFlags                = DEATH_3 ; Sets BOTH model condition and object status bits.
  374.     ProbabilityModifier       = 10000
  375.     FX = INITIAL FX_SiegeTowerDieInitial_N
  376.     ;FX = MIDPOINT FX_SiegeTowerDieMidpoint_N
  377.     
  378.     ; This is the area which must be clear for this slow death to go off
  379.     ; Use Control-Shift-Alt-E in game to display this area
  380.     ; Use debug.add l + clearancetestingslowdeathbehavior to get feedback on why test fails
  381.     ClearanceGeometry = Box
  382.     ClearanceGeometryMajorRadius = 32.0
  383.     ClearanceGeometryMinorRadius = 32.0
  384.     ClearanceGeometryHeight = 32.0
  385.     ClearanceGeometryIsSmall = No
  386.     ClearanceGeometryOffset = X:-36 Y:0 Z:0
  387.  
  388.     ClearanceMaxHeight = 32
  389.     ClearanceMaxHeightFraction = 0.04 ; If more than 5% of the cells in the clearance geometry are more than 40 units above the Oliphant's base, don't fall (don't fall into cliffs)
  390.     ClearanceMinHeight = -32
  391.     ClearanceMinHeightFraction = 0.40 ; If more than 40% of the cells in the clearance geometry are more than 40 units below the Oliphant's base, don't fall (don't get left hanging over a cliff)    
  392.   End
  393.  
  394.   Behavior = ClearanceTestingSlowDeathBehavior ModuleTag_05_w
  395.     ProbabilityModifier = 1000
  396.     DeathTypes                = ALL 
  397.     SinkDelay                 = 2200
  398.     SinkRate                  = 4.0     ; in Dist/Sec
  399.     DestructionDelay          = 16000
  400.     DamageAmountRequired      = 15
  401.     MinKillerAngle            = 224
  402.     MaxKillerAngle            = 316
  403.     DeathFlags                = DEATH_4 ; Sets BOTH model condition and object status bits.
  404.     ProbabilityModifier       = 10000
  405.     FX = INITIAL FX_SiegeTowerDieInitial_N
  406.     ;FX = MIDPOINT FX_SiegeTowerDieMidpoint_N
  407.     
  408.     ; This is the area which must be clear for this slow death to go off
  409.     ; Use Control-Shift-Alt-E in game to display this area
  410.     ; Use debug.add l + clearancetestingslowdeathbehavior to get feedback on why test fails
  411.     ClearanceGeometry = Box
  412.     ClearanceGeometryMajorRadius = 32.0
  413.     ClearanceGeometryMinorRadius = 32.0
  414.     ClearanceGeometryHeight = 32.0
  415.     ClearanceGeometryIsSmall = No
  416.     ClearanceGeometryOffset = X:0 Y:-36 Z:0
  417.  
  418.     ClearanceMaxHeight = 32
  419.     ClearanceMaxHeightFraction = 0.04 ; If more than 5% of the cells in the clearance geometry are more than 40 units above the Oliphant's base, don't fall (don't fall into cliffs)
  420.     ClearanceMinHeight = -32
  421.     ClearanceMinHeightFraction = 0.40 ; If more than 40% of the cells in the clearance geometry are more than 40 units below the Oliphant's base, don't fall (don't get left hanging over a cliff)        
  422.   End
  423.  
  424.   Behavior = HordeSiegeEngineContain ModuleTag_06
  425.     ObjectStatusOfContained    = UNSELECTABLE UNATTACKABLE
  426.     ObjectStatusOfCrew        = UNSELECTABLE UNATTACKABLE
  427.     Slots                    = 0
  428.     ShowPips                = No    
  429.     DamagePercentToUnits    = 0%
  430.     PassengerFilter            = ANY +CAN_USE_SIEGE_TOWER
  431.     AllowAlliesInside        = Yes
  432.     AllowEnemiesInside        = No
  433.     AllowNeutralInside        = No
  434.     CrewFilter                = NONE +MONSTER     ;Crew is always checked first, then Passenger
  435.     CrewMax                    = 2
  436.     InitialCrew                = MordorSiegeTowerCrew 2
  437.     ExitDelay                = 0  ; half second
  438.     NumberOfExitPaths        = 0 ; Defaults to 1.  Set 0 to not use ExitStart/ExitEnd, set higher than 1 to use ExitStart01-nn/ExitEnd01-nn
  439.     GoAggressiveOnExit        = Yes ; AI Will tell people to set their mood to Aggressive on exiting
  440.     EnterSound                = GarrisonEnter
  441.     ExitSound                = GarrisonExit
  442.  
  443.     FadeFilter    = ALL -MONSTER
  444.     FadePassengerOnEnter = Yes
  445.     EnterFadeTime = 2000
  446.     FadePassengerOnExit = Yes
  447.     ExitFadeTime = 1000
  448.     FadeReverse = Yes
  449.  
  450.     PassengerBonePrefix        = PassengerBone:Passenger   KindOf:INFANTRY         
  451.     PassengerBonePrefix        = PassengerBone:Crew        KindOf:MONSTER
  452.  
  453.     BoneSpecificConditionState 1 PASSENGER_VARIATION_1
  454.     BoneSpecificConditionState 2 PASSENGER_VARIATION_2
  455.   End  
  456.   
  457. ;  The bones in the model are:
  458. ;
  459. ;                    02 ------ 03
  460. ;                    |
  461. ;                    |
  462. ;                    |
  463. ;        00 ------ 01   
  464. ;       
  465. ;        where 01 and 02 are attached to the ladder.
  466. ;
  467. ;        The waypoints are connected:
  468. ;            0 -> 2 -> 3 -> 1
  469. ;        and
  470. ;            1 -> 5 -> 4 -> 0
  471.  
  472. ;
  473. ;            bone        wp
  474. ;            00         0 (walk)
  475. ;            01         1 (walk), 5 (climb)
  476. ;            02         2 (climb), 4 (walk)
  477. ;            03         3 (walk)
  478. ;
  479. ;        The waypoints are connected:
  480. ;            0 -> 1 -> 2 -> 3
  481. ;        and
  482. ;            3 -> 4 -> 5 -> 0
  483.  
  484.     Behavior = DynamicPortalBehaviour DynamicPortal
  485.         ObjectFilter    = ANY +CAN_USE_SIEGE_TOWER
  486.         BonePrefix        = Ladder
  487.         NumberOfBones    = 4
  488.         WayPoint        = Index:0    Type:PreClimb; 0
  489.         WayPoint        = Index:1    Type:PreClimb; 1
  490.         WayPoint        = Index:2    Type:Climb    ; 2
  491.         WayPoint        = Index:3    Type:Climb; 3
  492.         WayPoint        = Index:2    Type:Climb; 4
  493.         WayPoint        = Index:1    Type:Climb    ; 5
  494.         Link            = From:0 Via:4 Via:5 To:3
  495.         Link            = From:3 Via:1 Via:2 To:0
  496.         AboveWall        = 3    ; # of waypoint which must be above wall in order to be able to 'dock'
  497.         TopAttackPos    = X:34 Y:0 Z:52
  498.         TopAttackRadius = 25
  499.     End
  500.   
  501.       Behavior = SiegeDeploySpecialPower ModuleTag_07
  502.         SpecialPowerTemplate = SpecialAbilitySiegeDeploy
  503.         LowerDelay = 2000
  504.         RaiseDelay = 2000
  505.         EvacuatePassengersOnDeploy = Yes
  506.         ;EvacuateCrewOnDeploy = Yes
  507.         SkipAdjustPosition = Yes ; have to skip the path find adjust or it this will not go to the right docking position
  508.         InitiateSound = SiegeTowerVoiceAttackMS
  509.     End
  510.  
  511.   Behavior = StopSpecialPower ModuleTag_08
  512.     SpecialPowerTemplate = SpecialAbilityStop
  513.     StopPowerTemplate = SpecialAbilitySiegeDeploy
  514.   End
  515.  
  516.  
  517.     Geometry              = BOX
  518.     GeometryMajorRadius   = 50.0
  519.     GeometryMinorRadius   = 16.0
  520.     GeometryHeight        = 30.0
  521.   GeometryOffset        = X:-15 Y:0 Z:0
  522.   
  523.     AdditionalGeometry    = BOX
  524.     GeometryMajorRadius   = 22.0
  525.     GeometryMinorRadius   = 16.0
  526.     GeometryHeight        = 100.0
  527.   
  528.   GeometryContactPoint    = X:10 Y:-10 Z:95 Swoop
  529.   GeometryContactPoint    = X:5 Y:0 Z:10 
  530.   GeometryContactPoint    = X:10 Y:10 Z:95 Swoop
  531.   GeometryContactPoint    = X:0 Y:0 Z:30 
  532.   GeometryContactPoint    = X:-10 Y:-10 Z:95 Swoop
  533.   GeometryContactPoint    = X:0 Y:5 Z:10 
  534.   GeometryContactPoint    = X:-10 Y:10 Z:95 Swoop
  535.   
  536.   GeometryIsSmall       = No
  537.   Shadow                = SHADOW_VOLUME
  538.  
  539. End
  540.  
  541. ;------------------------------------------------------------------------------
  542. ; aka Crew Troll, MordorCrewTroll, CrewTrollMordor
  543. Object MordorSiegeTowerCrew
  544.     ; *** ART Parameters ***
  545.  
  546.     ; This is required for garrisoned objects - please put in all objects.
  547.     ButtonImage        = BMTrollCages_DrummerTroll
  548.     SelectPortrait    = UPMordor_CaveTroll
  549.  
  550.     Draw = W3DScriptedModelDraw ModuleTag_01
  551.  
  552.         WadingParticleSys = EntRipples
  553.             
  554.         OkToChangeModelColor = Yes
  555.             
  556.         ExtraPublicBone = Trunk
  557.         ShowShadowWhileContained = Yes
  558.  
  559.         StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD
  560.  
  561.         DefaultModelConditionState
  562.             Model = MuCavTroll_SKN
  563.         End
  564.         
  565.         ModelConditionState = JUST_BUILT
  566.             Model = None
  567.         End
  568.  
  569.         IdleAnimationState
  570.             StateName = Idle
  571.             Animation = Breathe
  572.                 AnimationName = MuCavTroll_SKL.MuCavTroll_IDLD 
  573.                 AnimationMode = LOOP
  574.                 AnimationBlendTime = 10
  575.             End
  576.             BeginScript
  577.                 ; Show us as soon as not JUST_BUILT
  578.                 CurDrawableHideSubObject("Trunk01")
  579.             EndScript
  580.         End
  581.  
  582.         AnimationState = JUST_BUILT
  583.         End
  584.  
  585.         ;;; DYING ANIMATIONS ;;;    
  586.         AnimationState = DYING DEATH_1
  587.             Animation
  588.                 AnimationName = MuCavTroll_SKL.MuCavTroll_DIEB
  589.                 AnimationMode = ONCE
  590.             End
  591.             BeginScript
  592.                 CurDrawableHideSubObject("Trunk01")
  593.             EndScript
  594.             ParticleSysBone = B_PELVIS TrollSplatDust
  595.             ParticleSysBone = BAT_HEAD TrollSplatDust
  596.         End
  597.  
  598.         AnimationState = DYING
  599.             Animation
  600.                 AnimationName     =  MuCavTroll_SKL.MuCavTroll_DIEB
  601.                 AnimationMode     = ONCE
  602.                 AnimationSpeedFactorRange = 0.8 1.2
  603.             End
  604.             Animation
  605.                 AnimationName     =  MuCavTroll_SKL.MuCavTroll_DIEC
  606.                 AnimationMode     = ONCE
  607.                 AnimationSpeedFactorRange = 0.8 1.2
  608.             End
  609.              BeginScript
  610.                  CurDrawableHideSubObject("Trunk01")
  611.              EndScript        
  612.         End
  613.                 
  614.         ;;; PASSENGER OF SIEGE TOWER ANIMS ;;;
  615.         ; -- Turn Left Anims
  616.         AnimationState =  TURN_LEFT PASSENGER_VARIATION_1; pushing the seige tower turning left
  617.             Animation = Passenger_moving
  618.                 AnimationName = MuCavTroll_SKL.MuCavTroll_STNL
  619.                 AnimationMode = LOOP_BACKWARDS
  620.                 AnimationSpeedFactorRange = 1.5 1.5
  621.                 AnimationBlendTime = 15
  622.             End
  623.             Flags = RANDOMSTART
  624.             BeginScript
  625.                 CurDrawableHideSubObject("Trunk01")
  626.             EndScript
  627.         End
  628.  
  629.         AnimationState = TURN_LEFT PASSENGER_VARIATION_2; pushing the seige tower turning left
  630.             Animation = Passenger_moving
  631.                 AnimationName = MuCavTroll_SKL.MuCavTroll_STNL
  632.                 AnimationMode = LOOP_BACKWARDS
  633.                 AnimationSpeedFactorRange = 1.5 1.5
  634.                 AnimationBlendTime = 15
  635.             End
  636.             Flags = RANDOMSTART
  637.             BeginScript
  638.                 CurDrawableHideSubObject("Trunk01")
  639.             EndScript
  640.         End
  641.  
  642.         ; -- Turn Right Anims
  643.         AnimationState = TURN_RIGHT PASSENGER_VARIATION_1; pushing the seige tower turning right
  644.             Animation = Passenger_moving
  645.                 AnimationName = MuCavTroll_SKL.MUCavTroll_STNR ; MuCavTroll_PSHA
  646.                 AnimationMode = LOOP
  647.                 AnimationSpeedFactorRange = 1.5 1.5
  648.                 AnimationBlendTime = 15
  649.             End
  650.             Flags = RANDOMSTART
  651.             BeginScript
  652.                 CurDrawableHideSubObject("Trunk01")
  653.             EndScript
  654.         End
  655.  
  656.         AnimationState = TURN_RIGHT PASSENGER_VARIATION_2; pushing the seige tower turning right
  657.             Animation = Passenger_moving
  658.                 AnimationName = MuCavTroll_SKL.MUCavTroll_STNR ; MuCavTroll_PSHA
  659.                 AnimationMode = LOOP
  660.                 AnimationSpeedFactorRange = 1.5 1.5
  661.                 AnimationBlendTime = 15
  662.             End
  663.             Flags = RANDOMSTART
  664.             BeginScript
  665.                 CurDrawableHideSubObject("Trunk01")
  666.             EndScript
  667.         End
  668.  
  669.         ; -- Straight Backing up anim
  670.         AnimationState = MOVING BACKING_UP ; pulling the seige tower
  671.             Animation = Passenger_moving_back
  672.                 AnimationName = MuCavTroll_SKL.MuCavTroll_PSHA
  673.                 AnimationMode = LOOP_BACKWARDS
  674.                 AnimationSpeedFactorRange = 1.5 1.5
  675.                 AnimationBlendTime = 15
  676.             End
  677.             Flags = RANDOMSTART
  678.             BeginScript
  679.                 CurDrawableHideSubObject("Trunk01")
  680.             EndScript
  681.         End
  682.  
  683.         ; -- Straight Ahead anim
  684.         AnimationState = MOVING ; pushing the seige tower
  685.             Animation = Passenger_moving
  686.                 AnimationName = MuCavTroll_SKL.MuCavTroll_PSHA
  687.                 AnimationMode = LOOP
  688.                 AnimationSpeedFactorRange = 1.5 1.5
  689.                 AnimationBlendTime = 15
  690.             End
  691.             Flags = RANDOMSTART
  692.             BeginScript
  693.                 CurDrawableHideSubObject("Trunk01")
  694.             EndScript
  695.         End
  696.  
  697.         AnimationState = PASSENGER ; idling by the grond
  698.             Animation = Passenger
  699.                 AnimationName = MuCavTroll_SKL.MuCavTroll_IDLD
  700.                 AnimationMode = LOOP
  701.                 AnimationBlendTime = 15
  702.             End
  703.             Flags = RANDOMSTART
  704.             BeginScript
  705.                 CurDrawableHideSubObject("Trunk01")
  706.             EndScript
  707.         End
  708.     End
  709.  
  710.     ; --------------Actual module changes--------------
  711.     ArmorSet
  712.         Conditions      = None
  713.         Armor           = CavalryArmor
  714.         DamageFX        = NormalDamageFX
  715.     End
  716.  
  717.     Body = DelayedDeathBody ModuleTag_02
  718.         MaxHealth                = 1000                  ;BALANCE CaveTroll Health
  719.         ;MaxHealthDamaged            = 500
  720.         ;MaxHealthReallyDamaged            = 100
  721.         ;;RecoveryTime                = 5000
  722.         DoHealthCheck                = No            ; Don't want to get the delayed death behaviour when we die normally.
  723.         DelayedDeathTime            = 15000
  724.         CanRespawn                = No            ; Unit can't get revived.
  725.     End
  726.  
  727.     ; --------------Mountain Troll for the rest.  Can't reskin or Child since we have children.--------------
  728.     ; ***DESIGN parameters ***
  729.     Side = Mordor
  730.     EditorSorting = UNIT
  731.     ThreatLevel = 2.0
  732.     TransportSlotCount = TRANSPORTSLOTCOUNT_UNIT
  733.     ShowHealthInSelectionDecal = Yes
  734.  
  735.     WeaponSet
  736.         Conditions          =  None
  737.     End
  738.  
  739.       VisionRange = VISION_STANDARD_MELEE
  740.       ShroudClearingRange = SHROUD_CLEAR_STANDARD
  741.  
  742.     BountyValue = MORDOR_TROLL_BOUNTY_VALUE
  743.     DisplayName = OBJECT:MordorMountainTroll
  744.     CrushableLevel = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
  745.     CrusherLevel = 0 ;What can I crush?: 0 = small animals, 1 = infantry, 2 = trees, 3 = vehicles
  746.     CommandPoints = 1
  747.  
  748.  
  749.     ; *** AUDIO Parameters ***;
  750.  
  751.     VoiceAttack            = TrollVoiceAttack
  752.     ;VoiceCreated        = CampOrcCreateMountainTroll
  753.     ;VoiceFullyCreated     = CampOrcCreateMountainTroll
  754.     VoiceMove            = TrollVoiceMove
  755.     VoicePriority        = 19
  756.     VoiceSelect            = TrollVoiceSelect
  757.     VoiceGuard            = TrollVoiceMove
  758.     
  759.     SoundImpact            = ImpactHorse            ;TrollDie
  760.  
  761.     ;UnitSpecificSounds
  762.       ;    VoiceGarrison            = NoSound
  763.       ;End
  764.  
  765.     #include "..\..\..\includes\StandardUnitEvaEvents.inc"
  766.  
  767.     Behavior = LargeGroupAudioUpdate ModuleTag_LGAU        ;Tie into LargeGroupAudio system
  768.           Key = Troll
  769.         ;UnitWeight = 2 ; Trollsie counts as 2 infantry when computing group size
  770.     End
  771.  
  772.     ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
  773.         MaxUpdateRangeCap = 800
  774.         AnimationSound = Sound:TrollBodyfall        Animation:MuCavTroll_SKL.MuCavTroll_DIEB    Frames:29
  775.         AnimationSound = Sound:TrollBodyfall        Animation:MuCavTroll_SKL.MuCavTroll_DIEC    Frames:85
  776.  
  777.         AnimationSound = Sound:SiegeTowerTrollFootstep    Animation:MuCavTroll_SKL.MuCavTroll_PSHA    Frames:20 22 43 45
  778.         AnimationSound = Sound:SiegeTowerTrollFootstep    Animation:MuCavTroll_SKL.MuCavTroll_STNL    Frames:19 21 41 43
  779.         AnimationSound = Sound:SiegeTowerTrollFootstep    Animation:MuCavTroll_SKL.MuCavTroll_STNR    Frames:19 21 41 43
  780.     End
  781.  
  782.  
  783.   ; *** ENGINEERING Parameters ***
  784.  
  785.     RadarPriority = UNIT
  786.     KindOf = PRELOAD CAN_CAST_REFLECTIONS MONSTER WORKING_PASSENGER PATH_THROUGH_INFANTRY TROLL_BUFF_NUGGET
  787.  
  788.     BuildCost = MORDOR_TROLL_BUILDCOST
  789.     BuildTime = MORDOR_TROLL_BUILDTIME
  790.  
  791.     ; Should match the siege tower value.
  792.     BuildFadeInOnCreateTime = 16.0
  793.  
  794.      Behavior LifetimeUpdate LifetimeTag
  795.         WaitForWakeUp    =    Yes
  796.     End
  797.    
  798.     Behavior = AIUpdateInterface ModuleTag_03
  799.         AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
  800.         AILuaEventsList = TrollFunctions
  801.     End
  802.  
  803.     LocomotorSet
  804.         Locomotor = TrollLocomotor
  805.         Condition = SET_NORMAL 
  806.         Speed     = 33
  807.     End
  808.  
  809.     Behavior = PhysicsBehavior ModuleTag_04
  810.         GravityMult = 0.0 ;1.0
  811.     End
  812.   
  813.  
  814.     Behavior = SlowDeathBehavior ModuleTag_50
  815.         DeathTypes = ALL
  816.         DestructionDelay = 35000
  817.         DecayBeginTime = 3000
  818.         SinkDelay = 10000
  819.         SinkRate = 0.64     ; in Dist/Sec
  820.         Sound = INITIAL TrollDie
  821.         ProbabilityModifier = 50
  822.         DeathFlags   = DEATH_1 ; Tell model which death animation to play. Sets BOTH model condition and object status bits.
  823.     End
  824.  
  825.     Behavior = SlowDeathBehavior ModuleTag_51
  826.         DeathTypes = ALL
  827.         DestructionDelay = 35000
  828.         DecayBeginTime = 3000
  829.         SinkDelay = 10000
  830.         SinkRate = 0.64     ; in Dist/Sec
  831.         Sound = INITIAL TrollDie
  832.         ProbabilityModifier = 50
  833.         DeathFlags   = DEATH_2 ; Tell model which death animation to play. Sets BOTH model condition and object status bits.
  834.     End
  835.  
  836.     Geometry = CYLINDER
  837.     GeometryMajorRadius = 10
  838.     GeometryHeight = 20
  839.     GeometryIsSmall = No
  840.     Shadow                = SHADOW_VOLUME
  841. End