home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 April / Gamestar_83_2006-04_dvd.iso / Dema / lotrbfme2_demo.exe / INI.big / data_ini_object_goodfaction_units_men_gondortowershieldguard.ini < prev    next >
Text File  |  2006-01-31  |  22KB  |  756 lines

  1. // Moved from MenInfantry.INI Aug 24 2005
  2.  
  3. //------------------------------------------------------------------------------
  4. // aka GondorTowerGuard TowerShieldGuard GuardTowerShield
  5. Object GondorTowerShieldGuard
  6.     // *** ART Parameters ***
  7.  
  8.     SelectPortrait         = UPGondor_TowerGuard
  9.     ButtonImage             = WOR_GondorTowerGuard
  10.  
  11.     Draw = W3DHordeModelDraw ModuleTag_01
  12.         OkToChangeModelColor = Yes
  13.  
  14.         StaticModelLODMode = Yes
  15.         
  16.         // specify options for static LODs
  17.         LodOptions    = LOW
  18.             AllowMultipleModels        =    ALLOW_MULTIPLE_MODELS_LOW
  19.             MaxRandomTextures        =    MAX_RANDOM_TEXTURES_LOW
  20.             MaxRandomAnimations        =    MAX_RANDOM_ANIMATIONS_LOW
  21.             MaxAnimFrameDelta        =    MAX_ANIM_FRAME_DELTA_LOW
  22.         End
  23.         
  24.         LodOptions    = MEDIUM
  25.             AllowMultipleModels        =    ALLOW_MULTIPLE_MODELS_MED
  26.             MaxRandomTextures        =    MAX_RANDOM_TEXTURES_MED
  27.             MaxRandomAnimations        =    MAX_RANDOM_ANIMATIONS_MED
  28.             MaxAnimFrameDelta        =    MAX_ANIM_FRAME_DELTA_MED
  29.         End
  30.         
  31.         LodOptions    = HIGH
  32.             AllowMultipleModels        =    ALLOW_MULTIPLE_MODELS_HIGH
  33.             MaxRandomTextures        =    MAX_RANDOM_TEXTURES_HIGH
  34.             MaxRandomAnimations        =    MAX_RANDOM_ANIMATIONS_HIGH
  35.             MaxAnimFrameDelta        =    MAX_ANIM_FRAME_DELTA_HIGH
  36.         End
  37.  
  38.         DefaultModelConditionState
  39.             Model               = GUTwrGrd_SKN
  40.             Skeleton            = GUTwrGrd_SKL
  41.         End
  42.  
  43.         ModelConditionState WEAPONSET_PLAYER_UPGRADE
  44.             Model               = GUTwrGrd_SKN
  45.             Skeleton            = GUTwrGrd_SKL
  46.         End
  47.         
  48.         AnimationState        = THROWN_PROJECTILE
  49.             Animation           = FLYA
  50.                 AnimationName     = GUTwrGrd_FLYA
  51.                 AnimationMode     = LOOP
  52.             End
  53.         End
  54.  
  55.         AnimationState                            = PASSENGER FREEFALL
  56.             Animation                            = Grabbed
  57.                 AnimationName                    = GUTwrGrd_FLLA
  58.                 AnimationMode                    = LOOP
  59.             End
  60.         End
  61.         
  62.         AnimationState                            = FREEFALL
  63.             Animation                            = Falling
  64.                 AnimationName                    = GUTwrGrd_FLYA
  65.                 AnimationMode                    = LOOP
  66.                 AnimationBlendTime                = 10
  67.             End
  68.         End
  69.  
  70.         
  71.         AnimationState                        = PARALYZED
  72.             Animation
  73.                 AnimationName                = GUTwrGrd_IDLA
  74.                 AnimationMode                = LOOP
  75.             End
  76.         End
  77.  
  78.         AnimationState                = DYING BURNINGDEATH
  79.             Animation                = DIEA
  80.                 AnimationName         = GUTwrGrd_DIEA
  81.                 AnimationMode         = ONCE
  82.                 AnimationBlendTime    = 10
  83.             End
  84.             Animation                = DIEA
  85.                 AnimationName         = GUTwrGrd_DIEB
  86.                 AnimationMode         = ONCE
  87.                 AnimationBlendTime    = 10
  88.             End
  89.             Animation                = DIEA
  90.                 AnimationName         = GUTwrGrd_DIEC
  91.                 AnimationMode         = ONCE
  92.                 AnimationBlendTime    = 10
  93.             End
  94.         End
  95.  
  96.         AnimationState        = DYING SPLATTED
  97.             Animation           = LNDA
  98.                 AnimationName     = GUTwrGrd_LNDA
  99.                 AnimationMode     = ONCE
  100.             End
  101.         End
  102.         
  103.         AnimationState        = DYING
  104.             Animation           = DIEA
  105.                 AnimationName     = GUTwrGrd_DIEA
  106.                 AnimationMode     = ONCE
  107.                 AnimationSpeedFactorRange = 0.8 1.2
  108.             End
  109.             Animation           = DIEA
  110.                 AnimationName     = GUTwrGrd_DIEB
  111.                 AnimationMode     = ONCE
  112.                 AnimationSpeedFactorRange = 0.8 1.2
  113.             End
  114.             Animation           = DIEA
  115.                 AnimationName     = GUTwrGrd_DIEC
  116.                 AnimationMode     = ONCE
  117.                 AnimationSpeedFactorRange = 0.8 1.2
  118.             End
  119.         End
  120.         
  121.  
  122.         AnimationState                        = BURNINGDEATH
  123.             Animation
  124.                 AnimationName                = GUTwrGrd_MFDA
  125.                 AnimationMode                = LOOP
  126.                 Distance                    = 60
  127.             End
  128.         End
  129.         
  130.         
  131.         AnimationState        = MOVING FIRING_OR_PREATTACK_A
  132.             ShareAnimation        = Yes
  133.             Animation           = RunAndFire
  134.                 AnimationName       = GUTwrGrd_ATRA
  135.                 AnimationMode       = LOOP
  136.             End
  137.             Flags               = RANDOMSTART  
  138.         End
  139.  
  140. //=======TERROR
  141.         AnimationState                    = MOVING EMOTION_TERROR EMOTION_LOOK_TO_SKY
  142.             ShareAnimation                = Yes
  143.             Animation                    = TerrorFromTheSky
  144.                 AnimationName            = GUTwrGrd_RUNE
  145.                 AnimationMode            = LOOP
  146.             End
  147.         End
  148.         AnimationState                    = MOVING EMOTION_TERROR
  149.             ShareAnimation                = Yes
  150.             Animation                    = Terror
  151.                 AnimationName            = GUTwrGrd_RUNE
  152.                 AnimationMode            = LOOP
  153.             End
  154.         End
  155. //----------------
  156. //=======BACK UP
  157.         AnimationState                =    MOVING BACKING_UP
  158.             ShareAnimation = Yes
  159.             Animation                =    BackingUp
  160.                 AnimationName        =    GUTwrGrd_BAKA
  161.                 AnimationMode        =    LOOP
  162.             End
  163.             Animation                =    BackingUp
  164.                 AnimationName        =    GUTwrGrd_BAKB
  165.                 AnimationMode        =    LOOP
  166.             End            
  167.             Flags                    =    RANDOMSTART 
  168.         End
  169. //--------------------
  170.         
  171.         AnimationState        = MOVING ALTERNATE_FORMATION
  172.             //ShareAnimation = Yes
  173.             StateName            = STATE_EnrouteToPorcupine
  174.             Animation
  175.                 AnimationName     = GUTwrGrd_RUNA
  176.                 AnimationMode     = LOOP
  177.             End
  178.             Animation
  179.                 AnimationName     = GUTwrGrd_RUNB
  180.                 AnimationMode     = LOOP
  181.             End
  182.             Flags               = RANDOMSTART
  183.             //ParticleSysBone     = None InfantryDustTrails
  184.         End
  185.  
  186.         AnimationState        = MOVING
  187.             ShareAnimation = Yes
  188.             Animation           = RUNA
  189.                 AnimationName     = GUTwrGrd_RUNA
  190.                 AnimationMode     = LOOP
  191.             End
  192.             Animation
  193.                 AnimationName     = GUTwrGrd_RUNB
  194.                 AnimationMode     = LOOP
  195.             End
  196.             Flags               = RANDOMSTART
  197.             //ParticleSysBone     = None InfantryDustTrails
  198.         End
  199.  
  200.         AnimationState        =  FIRING_OR_PREATTACK_A
  201.             Animation           = ATKA
  202.                 AnimationName     = GUTwrGrd_ATKA
  203.                 AnimationMode     = ONCE
  204.                 UseWeaponTiming        = Yes
  205.             End
  206.             Animation           = ATKA
  207.                 AnimationName     = GUTwrGrd_ATKB
  208.                 AnimationMode     = ONCE
  209.                 UseWeaponTiming        = Yes
  210.             End
  211.             //ParticleSysBone     = None MeleeDust
  212.         End
  213.  
  214.  
  215.         AnimationState        = STUNNED_FLAILING
  216.             Animation           = FLYA
  217.                 AnimationName     = GUTwrGrd_FLYA
  218.                 AnimationMode     = LOOP
  219.             End
  220.             Flags               = RANDOMSTART
  221.         End
  222.  
  223.         AnimationState        = STUNNED_STANDING_UP
  224.             Animation           = GTPA
  225.                 AnimationName     = GUTwrGrd_GTPA
  226.                 AnimationMode     = ONCE
  227.                 AnimationSpeedFactorRange = 1.5 1.5
  228.             End
  229.         End
  230.  
  231.         AnimationState        = STUNNED
  232.             Animation           = LNDA
  233.                 AnimationName     = GUTwrGrd_LNDA
  234.                 AnimationMode     = ONCE
  235.             End
  236.         End
  237.  
  238.         TransitionState       = TRANS_Plant
  239.             Animation           = PLTA
  240.                 AnimationName     = GUTwrGrd_PLTA
  241.                 AnimationMode     = ONCE
  242.                 AnimationSpeedFactorRange = 0.8 1.2
  243.             End
  244.         End
  245.  
  246.         TransitionState       = TRANS_Unplant
  247.             Animation           = PLTB
  248.                 AnimationName     = GUTwrGrd_PLTC
  249.                 AnimationMode     = ONCE
  250.                 AnimationSpeedFactorRange = 0.5 1.2
  251.             End
  252.         End
  253. //------------------ Hit Reaction ---------------------------------------
  254.         AnimationState                        = HIT_REACTION
  255.             Animation                        = HIT REACTION
  256.                 AnimationName                = GUTwrGrd_HITA
  257.                 AnimationMode                = ONCE
  258.             End
  259.         End
  260. //------------------ EMOTIONS -------------------------------------------
  261. //======= APPREHENSIVE
  262.         AnimationState                    = EMOTION_ALERT EMOTION_AFRAID
  263.             ShareAnimation                = Yes
  264.             Animation                    = Apprehensive
  265.                 AnimationName            = GUTwrGrd_FERA
  266.                 AnimationMode            = LOOP    //Change this to ONCE if adding additional anims
  267.             End
  268.             Flags                        = RANDOMSTART
  269.         End
  270.  
  271. //======= AFRAID
  272.  
  273.         AnimationState                    = EMOTION_AFRAID
  274.             ShareAnimation                = Yes
  275.             Animation                    = FERA
  276.                 AnimationName            = GUTwrGrd_FERA
  277.                 AnimationMode            = LOOP
  278.             End
  279.             Flags                        = RANDOMSTART
  280.         End
  281.  
  282. //======= TAUNTING
  283.  
  284.         AnimationState                    = EMOTION_TAUNTING ALTERNATE_FORMATION
  285.             Animation                    = TNTA
  286.                 AnimationName            = GUTwrGrd_TNTA
  287.                 AnimationMode            = LOOP
  288.             End
  289.             Animation                    = TNTA
  290.                 AnimationName            = GUTwrGrd_TNTB
  291.                 AnimationMode            = LOOP
  292.             End
  293.         End
  294.         AnimationState                    = EMOTION_TAUNTING
  295.             Animation                    = Taunting
  296.                 AnimationName            = GUTwrGrd_TNTA
  297.                 AnimationMode            = ONCE
  298.             End
  299.             Animation                    = Taunting2
  300.                 AnimationName            = GUTwrGrd_TNTB
  301.                 AnimationMode            = ONCE
  302.             End
  303.             Flags                        = RESTART_ANIM_WHEN_COMPLETE
  304.         End
  305.  
  306. //======= POINTING
  307.  
  308.         AnimationState                    = EMOTION_POINTING
  309.             Animation                    = Pointing1
  310.                 AnimationName            = GUTwrGrd_PNTA
  311.                 AnimationMode            = LOOP
  312.             End
  313.             Animation                    = Pointing1
  314.                 AnimationName            = GUTwrGrd_PNTB
  315.                 AnimationMode            = LOOP
  316.             End
  317.             Flags                        = RANDOMSTART
  318.         End
  319.  
  320. //======= CELEBRATING
  321.  
  322.         AnimationState                    = EMOTION_CELEBRATING
  323.             Animation                    = CHRA
  324.                 AnimationName            = GUTwrGrd_CHRA
  325.                 AnimationMode            = LOOP
  326.             End
  327.             Animation                    = CHRA
  328.                 AnimationName            = GUTwrGrd_CHRB
  329.                 AnimationMode            = LOOP
  330.             End
  331.             Animation                    = CHRA
  332.                 AnimationName            = GUTwrGrd_CHRC
  333.                 AnimationMode            = LOOP
  334.             End
  335.         End
  336. //-------------- ALERT STATE ------------------------------------------------------------
  337.  
  338.         AnimationState                    = EMOTION_ALERT
  339.             Animation                    = CHRA
  340.                 AnimationName            = GUTwrGrd_IDLA
  341.                 AnimationMode            = LOOP
  342.             End
  343.         End
  344.         
  345. //-------------- SELECTED & IDLE --------------------------------------------------------
  346. //======== SELECTED
  347.  
  348.         AnimationState                    = SELECTED ALTERNATE_FORMATION PORCUPINE
  349.             //ShareAnimation                = Yes
  350.             StateName                    = STATE_SelectedAlternateFormation
  351.             Animation
  352.                 AnimationName            = GUTwrGrd_PLTB
  353.                 AnimationMode            = LOOP
  354.             End
  355.             BeginScript
  356.                 Prev = CurDrawablePrevAnimationState()
  357.                 if Prev ~= "STATE_SelectedAlternateFormation" and Prev ~= "STATE_Planted" and Prev ~= "TRANS_Plant" then CurDrawableSetTransitionAnimState("TRANS_Plant") end
  358.             EndScript
  359.         End
  360.         AnimationState                    = SELECTED ALTERNATE_FORMATION
  361.             //ShareAnimation                = Yes
  362.             StateName                    = STATE_SelectedAlternateFormation
  363.             Animation
  364.                 AnimationName            = GUTwrGrd_ATNB
  365.                 AnimationMode            = LOOP
  366.             End
  367.         End
  368.  
  369.         AnimationState                    = RAISING_FLAG
  370.             Animation                    = CHRA
  371.                 AnimationName            = GUTwrGrd_CHRA
  372.                 AnimationMode            = ONCE
  373.                 AnimationSpeedFactorRange = 0.9 1.1
  374.             End
  375.             Animation                    = CHRA
  376.                 AnimationName            = GUTwrGrd_CHRB
  377.                 AnimationMode            = ONCE
  378.                 AnimationSpeedFactorRange = 0.9 1.1
  379.             End
  380.             Animation                    = CHRA
  381.                 AnimationName            = GUTwrGrd_CHRC
  382.                 AnimationMode            = ONCE
  383.                 AnimationSpeedFactorRange = 0.9 1.1
  384.             End
  385.             Flags                        = RESTART_ANIM_WHEN_COMPLETE
  386.         End
  387.         
  388.         AnimationState                    = SELECTED
  389.             StateName                    = STATE_Selected
  390.             
  391.             ShareAnimation                = Yes
  392.             Animation                    = ATNB
  393.                 AnimationName            = GUTwrGrd_ATNB
  394.                 AnimationMode            = LOOP
  395.             End
  396.             BeginScript
  397.                 Prev = CurDrawablePrevAnimationState()
  398.                 if Prev == "STATE_Planted" then CurDrawableSetTransitionAnimState("TRANS_Unplant") end
  399.             EndScript
  400.         End
  401.  
  402. //======== IDLE
  403.  
  404.         AnimationState                    = ALTERNATE_FORMATION PORCUPINE    //    aka Porcupine formation
  405.             StateName                    = STATE_Planted
  406.             
  407.             //ShareAnimation                = Yes
  408.             Animation                    = IDLB
  409.                 AnimationName            = GUTwrGrd_PLTB
  410.                 AnimationMode            = LOOP
  411.             End
  412.             BeginScript
  413.                 Prev = CurDrawablePrevAnimationState()
  414.                 if Prev ~= "STATE_SelectedAlternateFormation" and Prev ~= "STATE_Planted" and Prev ~= "TRANS_Plant" then CurDrawableSetTransitionAnimState("TRANS_Plant") end
  415.             EndScript
  416.         End
  417.         IdleAnimationState
  418.             StateName                    = STATE_Idle
  419.             Animation                    = IDLB
  420.                 AnimationName            = GUTwrGrd_IDLB
  421.                 AnimationMode            = ONCE
  422.                 AnimationBlendTime        = 15
  423.                 AnimationSpeedFactorRange = 0.8 1.2
  424.             End
  425.             Animation                    = IDLC
  426.                 AnimationName            = GUTwrGrd_IDLC
  427.                 AnimationMode            = ONCE
  428.                 AnimationBlendTime        = 9
  429.                 AnimationSpeedFactorRange = 0.8 1.2
  430.             End
  431.             Animation                    = IDLD
  432.                 AnimationName            = GUTwrGrd_IDLD
  433.                 AnimationMode            = ONCE
  434.                 AnimationBlendTime        = 9
  435.                 AnimationSpeedFactorRange = 0.8 1.2
  436.             End
  437.             Animation                    = IDLE
  438.                 AnimationName            = GUTwrGrd_IDLE
  439.                 AnimationMode            = ONCE
  440.                 AnimationBlendTime        = 9
  441.                 AnimationSpeedFactorRange = 0.8 1.2
  442.             End
  443.             BeginScript
  444.                 Prev = CurDrawablePrevAnimationState()
  445.                 if Prev == "STATE_Planted" then CurDrawableSetTransitionAnimState("TRANS_Unplant") end
  446.             EndScript
  447.         End
  448.         
  449. //-------------------------------------------------------------------------------------------------------------
  450.     End
  451.     
  452.     #include "..\..\..\includes\StunDrawModuleSmall.inc"
  453.  
  454.     // ***DESIGN parameters ***
  455.     Side = Men
  456.     EditorSorting = UNIT
  457.     ThreatLevel = 1.0
  458.     ThingClass = HORDE_UNIT
  459.     CommandPoints = 4
  460.     BountyValue = GONDOR_TOWERGUARD_BOUNTY_VALUE
  461.  
  462.     TransportSlotCount = TRANSPORTSLOTCOUNT_UNIT
  463.     WeaponSet
  464.         Conditions = None 
  465.         Weapon = PRIMARY    GondorTowerShieldGuardSword
  466.         AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
  467.     End
  468. //    WeaponSet
  469. //        Conditions = PLAYER_UPGRADE
  470. //        Weapon = PRIMARY    GondorTowerShieldGuardSwordUpgraded
  471. //        AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
  472. //    End
  473.     
  474.     
  475.     ArmorSet
  476.         Conditions      = None
  477.         Armor           = TowerGuardArmor
  478.         DamageFX        = NormalDamageFX
  479.     End
  480.     
  481.     ArmorSet
  482.         Conditions        = PLAYER_UPGRADE
  483.         Armor            = TowerGuardHeavyArmor
  484.         DamageFX        = NormalDamageFX
  485.     End
  486.     
  487.     VisionRange = GONDOR_TOWERGUARD_VISION_RANGE
  488.     ShroudClearingRange = SHROUD_CLEAR_STANDARD
  489.     
  490.     VisionSide = 35%
  491.     VisionRear = 25%
  492.     
  493.     MaxVisionBonusPercent = 300%
  494.     VisionBonusTestRadius = 200
  495.     VisionBonusPercentPerFoot = 2.0%
  496.  
  497.     DisplayName = OBJECT:GondorTowerShieldGuard
  498.     CrushableLevel = 0  //What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
  499.  
  500.     CrushRevengeWeapon = SuperInfantryCrushRevenge
  501.     
  502.     CommandSet = GondorTowerShieldGuardCommandSet
  503.  
  504.  
  505.     // *** AUDIO Parameters ***//
  506.  
  507.     ;VoiceAmbushed                =    TowerGuardVoiceAmbushed      OBSOLETE VOICE
  508.     VoiceAttack                =    TowerGuardVoiceAttack
  509.     VoiceAttackCharge            =    TowerGuardVoiceAttackCharge
  510.     VoiceAttackMachine            =    TowerGuardVoiceAttack
  511.     VoiceAttackStructure            =    TowerGuardVoiceAttackBuilding
  512.     VoiceEnterStateAttack            =    TowerGuardVoiceEnterStateAttack
  513.     VoiceEnterStateAttackCharge        =    TowerGuardVoiceEnterStateAttackCharge
  514.     VoiceEnterStateAttackMachine        =    TowerGuardVoiceEnterStateAttackBuilding
  515.     VoiceEnterStateAttackStructure        =    TowerGuardVoiceEnterStateAttackBuilding
  516.     VoiceCreated                =    TowerGuardVoiceSalute        //GondorSoldierVoiceCreated
  517.     VoiceFullyCreated            =    TowerGuardVoiceSalute
  518.     VoiceMove                =    TowerGuardVoiceMove
  519.     VoiceMoveToCamp                =    TowerGuardVoiceMoveCamp
  520.     VoiceMoveWhileAttacking            =    TowerGuardVoiceDisengage
  521.     VoiceEnterStateMove            =    TowerGuardVoiceEnterStateMove
  522.     VoiceEnterStateMoveToCamp        =    TowerGuardVoiceEnterStateMoveCamp
  523.     VoiceEnterStateMoveWhileAttacking    =    TowerGuardVoiceEnterStateDisengage
  524.     VoicePriority                =     56
  525.     VoiceRetreatToCastle            =    TowerGuardVoiceRetreat
  526.     VoiceEnterStateRetreatToCastle        =    TowerGuardVoiceEnterStateRetreat
  527.     VoiceSelect                =    TowerGuardVoiceSelectMS
  528.     VoiceSelectBattle            =    TowerGuardVoiceSelectBattle    //GondorSoldierVoiceSelect     //GondorSoldierVoiceSelectBattle
  529.     VoiceGuard            = TowerGuardVoiceMove
  530.  
  531.     SoundImpact                =    ImpactHorse
  532.  
  533.     CrowdResponseKey = GoodMen
  534.  
  535.     UnitSpecificSounds
  536.         VoiceGarrison            =     TowerGuardVoiceGarrison
  537.         VoiceEnterUnitElvenTransportShip    = TowerGuardVoiceMove
  538.         VoiceInitiateCaptureBuilding        = TowerGuardVoiceMove
  539.     End
  540.  
  541.     #include "..\..\..\includes\StandardUnitEvaEvents.inc"
  542.  
  543.     ClientBehavior = ModelConditionAudioLoopClientBehavior ModuleTag_foo
  544.         ModelCondition = Required:RAISING_FLAG            Excluded:DYING ENGAGED    Sound:EmotionMenGoodCompilationBFME1and2VoxTauntSinglesLoop
  545.     End
  546.  
  547.     // Tie into LargeGroupAudio system
  548.     Behavior = LargeGroupAudioUpdate ModuleTag_LGAU
  549.         Key = Humanoid_Male Man Man_Male Unit Infantry Gondor_Guard
  550.     End
  551.  
  552.     ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
  553.         MaxUpdateRangeCap = 800
  554.         AnimationSound = Sound:TauntHitShieldPitchShifted    Animation:GUTwrGrd_SKL.GUTwrGrd_TNTB    Frames: 23 43
  555.         AnimationSound = Sound:BodyFallGeneric1        Animation:GUTWRGRD_SKL.GUTWRGRD_DIEA    Frames:30 51
  556.         AnimationSound = Sound:BodyFallGeneric1        Animation:GUTWRGRD_SKL.GUTWRGRD_DIEB    Frames:57
  557.         AnimationSound = Sound:BodyFallGeneric1        Animation:GUTWRGRD_SKL.GUTWRGRD_DIEC    Frames:38
  558.         AnimationSound = Sound:BodyFallSoldier        Animation:GUTWRGRD_SKL.GUTWRGRD_LNDA    Frames:4
  559.         AnimationSound = Sound:BodyFallSoldier        Animation:GUTwrGrd_SKL.GUTwrGrd_LNDB    Frames:2
  560.     End
  561.  
  562.     // *** ENGINEERING Parameters ***
  563.     RadarPriority = UNIT
  564.     KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER SCORE THROWN_OBJECT GRAB_AND_DROP
  565.     
  566.     Body = ActiveBody ModuleTag_02
  567.         CheerRadius       = EMOTION_CHEER_RADIUS
  568.         MaxHealth         = GONDOR_TOWERGUARD_HEALTH             
  569.         MaxHealthDamaged  = GONDOR_TOWERGUARD_HEALTH_DAMAGED
  570.         BurningDeathBehavior = Yes
  571.         BurningDeathFX       = FX_InfantryBurningFlame
  572.     End
  573.  
  574.     Behavior = WeaponSetUpgrade WeaponSetUpgradeModuleTag
  575.         TriggeredBy = Upgrade_GondorForgedBlades
  576.     End
  577.  
  578.     Behavior = ArmorUpgrade ArmorUpgradeModuleTag
  579.         TriggeredBy = Upgrade_GondorHeavyArmor
  580.         //KillArmorUpgrade = Yes //This cancels any previous armor upgrade.
  581.         ArmorSetFlag            = PLAYER_UPGRADE
  582.     End
  583.     
  584.     //-----------------------------------------------------------------------
  585.     //
  586.     //    Sub objects
  587.     //
  588.     Behavior = SubObjectsUpgrade Armor_Upgrade
  589.         TriggeredBy        = Upgrade_GondorHeavyArmor
  590.         UpgradeTexture    = GUTowrGrd.tga 0 GUTowrGrd_HA.tga
  591.         UpgradeTexture    = GUTowrGrd_L.tga 0 GUTowrGrd_HA.tga
  592.         RecolorHouse    = Yes
  593.         ExcludeSubobjects = Forged_Blade
  594.     End
  595.     
  596.     Behavior = SubObjectsUpgrade ForgedBlade_Upgrade
  597.         TriggeredBy        = Upgrade_GondorForgedBlades
  598.         ShowSubObjects    = Forged_Blade
  599.     End        
  600.     //-----------------------------------------------------------------------
  601.     
  602.     Behavior = AIUpdateInterface ModuleTag_03
  603.         AutoAcquireEnemiesWhenIdle    = Yes ATTACK_BUILDINGS
  604.         MoodAttackCheckRate            = 500
  605.         AILuaEventsList                = GondorFighterFunctions
  606.         AttackPriority                =     AttackPriority_Spearman
  607.         BurningDeathTime            =    BURNINGDEATH_DURATION_INFANTRY
  608.     End
  609.  
  610.     LocomotorSet
  611.         Locomotor = GondorTowerShieldGuardLocomotor
  612.         Condition = SET_NORMAL 
  613.         Speed     = NORMAL_GOOD_INFANTRY_MEMBER_SPEED    
  614.     End
  615.  
  616.     LocomotorSet
  617.         Locomotor = GondorTowerShieldGuardDeployedLocomotor
  618.         Condition = SET_NORMAL_UPGRADED
  619.         Speed     = NORMAL_GOOD_INFANTRY_MEMBER_SPEED    
  620.     End
  621.     
  622.     LocomotorSet
  623.         Locomotor = GondorTowerShieldGuardLocomotor
  624.         Condition = SET_COMBO
  625.         Speed     = NORMAL_GOOD_INFANTRY_MEMBER_SPEED
  626.     End
  627.     
  628.     LocomotorSet
  629.         Locomotor = BurningDeathLocomotorInfantry
  630.         Condition = SET_BURNINGDEATH
  631.         Speed      = BURNINGDEATH_WANDERSPEED_INFANTRY
  632.     End
  633.  
  634.     Behavior = PhysicsBehavior ModuleTag_04
  635.         GravityMult = 1.0
  636.         ShockStunnedTimeLow        = 1400    //msec
  637.         ShockStunnedTimeHigh    = 2400    //msec
  638.         ShockStandingTime        = 1333    //msec
  639.     End
  640.     
  641.     Behavior = SlowDeathBehavior ModuleTag_05
  642.         DeathTypes = ALL -KNOCKBACK -FADED
  643.         SinkDelay = 3000
  644.         SinkRate = 0.40     // in Dist/Sec
  645.         DestructionDelay = 8000
  646.         Sound = INITIAL HumanVoiceDie// TowerGuardVoiceDie
  647.     End
  648.     
  649.     Behavior = SlowDeathBehavior ModuleTag_FadeDeath
  650.         DeathTypes = NONE +FADED
  651.         SinkDelay = 3000
  652.         SinkRate = 0.40     // in Dist/Sec
  653.         DestructionDelay = 8000
  654.         Sound = INITIAL SpellGenericUnsummonFasterMS
  655.     End
  656.  
  657.     Behavior = SquishCollide ModuleTag_06
  658.         //nothing
  659.     End
  660.     
  661.     Behavior = HordeMemberCollide ModuleTag_HMC
  662.         //nothing
  663.     End
  664.     
  665.     Behavior = SlowDeathBehavior ModuleTag_07
  666.         // Same as normal death, but no sound (sound already played by SoundImpact = ... )
  667.         DeathTypes = NONE +KNOCKBACK
  668.         SinkDelay = 3000
  669.         SinkRate = 0.40     // in Dist/Sec
  670.         DestructionDelay = 8000
  671.     End
  672.  
  673.     Behavior = BezierProjectileBehavior ModuleTag_08 // Module starts asleep, and wakes up when thrown.
  674.         // To tweak a Bezier path
  675.         FirstHeight = 24  // Height of Bezier control points above highest intervening terrain
  676.         SecondHeight = 24
  677.         FirstPercentIndent = 30% // Percentage of shot distance control points are placed
  678.         SecondPercentIndent = 70%
  679.         TumbleRandomly = Yes
  680.  
  681.         CrushStyle = Yes // I don't detonate, I just hit
  682.         DieOnImpact = Yes
  683.         BounceCount = 1   // When I hit the ground, I'll arc again
  684.         BounceDistance = 40 // this far
  685.         BounceFirstHeight = 24  // Height of Bezier control points above highest intervening terrain
  686.         BounceSecondHeight = 24
  687.         BounceFirstPercentIndent = 20% // Percentage of shot distance control points are placed
  688.         BounceSecondPercentIndent = 80%
  689.  
  690.         GroundHitFX       = FX_ThrownRockGroundHit
  691.         GroundBounceFX    = FX_ThrownRockBounceHit
  692.     End
  693.  
  694.     // The below is a good start to the actual implementation of the unit, 
  695.     // if someone wants to revert back to the exact state
  696.     
  697.     //Normal mode (shield is raised and unit is able to move normally)
  698. //  Behavior = GrantUpgradeCreate ModuleTag_09
  699. //    UpgradeToGrant = Upgrade_RaiseShield
  700. //  End
  701. //  Behavior = ModelConditionUpgrade ModuleTag_10
  702. //    TriggeredBy = Upgrade_RaiseShield
  703. //    RemovesUpgrades = Upgrade_PlantShield
  704. //    RemoveConditionFlags = DEPLOYED
  705. //  End
  706. //  Behavior = LocomotorSetUpgrade ModuleTag_11
  707. //    TriggeredBy = Upgrade_RaiseShield
  708. //    RemovesUpgrades = Upgrade_PlantShield
  709. //    KillLocomotorUpgrade = Yes //Removes the PlantShield locomotor.
  710. //  End
  711. //  Behavior = ArmorUpgrade ModuleTag_12
  712. //    TriggeredBy = Upgrade_RaiseShield
  713. //    RemovesUpgrades = Upgrade_PlantShield
  714. //    KillArmorUpgrade = Yes //This cancels any previous armor upgrade.
  715. //  End
  716. //
  717. //  //Defensive mode (shield is planted -- the unit can move but much more slowly)
  718. //  Behavior = ModelConditionUpgrade ModuleTag_13
  719. //    TriggeredBy = Upgrade_PlantShield
  720. //    RemovesUpgrades = Upgrade_RaiseShield
  721. //    AddConditionFlags = DEPLOYED
  722. //  End
  723. //  Behavior = LocomotorSetUpgrade ModuleTag_14
  724. //    TriggeredBy = Upgrade_PlantShield
  725. //    RemovesUpgrades = Upgrade_RaiseShield
  726. //  End
  727. //  Behavior = ArmorUpgrade ModuleTag_15
  728. //    TriggeredBy = Upgrade_PlantShield
  729. //    RemovesUpgrades = Upgrade_RaiseShield
  730. //  End
  731.  
  732.     Geometry = CYLINDER
  733.     GeometryMajorRadius = 8.0
  734.     GeometryMinorRadius = 8.0
  735.     GeometryHeight = 19.2
  736.     GeometryIsSmall = Yes
  737.  
  738.     Shadow = SHADOW_DECAL
  739.     ShadowSizeX = 19//
  740.     ShadowSizeY = 19//
  741.     ShadowTexture = ShadowI//
  742. End
  743.  
  744. //------------------------------------------------------------------------------
  745. ChildObject GondorTowerShieldGuard_Summoned GondorTowerShieldGuard
  746.     IsTrainable = No
  747.     CommandPoints = 0
  748.     EquivalentTo = GondorTowerShieldGuard
  749.     Behavior = LifetimeUpdate ModuleTag_LifetimeUpdate
  750.     // This one does the work, but the one in the horde displays the timer
  751.         MinLifetime        = CREATE_A_HERO_REINFORCEMENT_LIFETIME
  752.         MaxLifetime        = CREATE_A_HERO_REINFORCEMENT_LIFETIME
  753.         DeathType        = FADED
  754.     End    
  755. End
  756.