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

  1. ;//////////////////////////////////////////////////////////////////////////////
  2. ;FILE: Weapon.ini (SYSTEM) ////////////////////////////////////////////////////
  3. ;//////////////////////////////////////////////////////////////////////////////
  4.  
  5. #define INFINITE_CLIP_SIZE 0
  6.  
  7. ;------------------------------------------------------------------------------
  8. ;------------------------------------------------------------------------------
  9.  
  10. ; Weapons now work with Nuggets (like ObjectCreationLists) where each type of nugget
  11. ; does one thing, instead of Weapon doing all things itself.  So here are the Nuggets,
  12. ; and their syntax.
  13. ;  DamageFieldNugget                   ; A Nugget that lays down an area of damage that persists independantly
  14. ;    WeaponTemplateName = SmallFireFieldWeapon  
  15. ;    Duration = 3000                            
  16. ;  End
  17. ;  DamageNugget                        ; A basic Nugget that just does damage
  18. ;    Damage        = 1      ;Damage for a normal hit    
  19. ;    Radius        = 0.0    ;Radius of damage
  20. ;    DelayTime     = 0      ;How long from hit till the damage is applied
  21. ;    DamageType    = SLASH  ;Used to cross reference with victim's armor to determine if hurt
  22. ;    DamageFXType  = SWORD_SLASH  ;used to cross with their DamageFX listing to determine what effect to play
  23. ;    DeathType     = NORMAL ;Used as index to their Death Modules to determine which one to play
  24. ;  End
  25. ;  MetaImpactNugget                    ; A Nugget that throws things back with force
  26. ;     HeroResist           = .75        ;only knocks heroes down 75% of the time
  27. ;    ShockWaveAmount   = 50.0
  28. ;    ShockWaveRadius   = 10.0
  29. ;    ShockWaveArc      = 90 ; in degrees to each side 180 is full circle
  30. ;    ShockWaveTaperOff = 1.0
  31. ;    ShockWaveSpeed    = 0.0
  32. ;    ShockWaveZMult    = 1.0
  33. ;    InvertShockWave = Yes            ; Pull instead of push
  34. ;  End
  35. ;  ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  36. ;    ProjectileTemplateName = GimliAxeProjectile
  37. ;    WarheadTemplateName = RohanGimliAxeThrownWarhead
  38. ;  End
  39. ;  WeaponOCLNugget                        ; A Nugget that should only be used for the rarest of super special weapons.  I better not catch a Fire Field in here.
  40. ;    WeaponOCLName = OCL_SuperComplicatedFivePartMovingDeathBlossom
  41. ;  End
  42. ;  AttributeModifierNugget
  43. ;    AttributeModifier = WitchKingMorgulBladeEffect
  44. ;    DamageFXType = SWORD_SLASH  ;used to cross with their DamageFX listing to determine what effect to play
  45. ;  End
  46. ;  StealMoneyNugget
  47. ;    AmountStolenPerAttack = 3.14
  48. ;  End
  49.  
  50. ;------------------------------------------------------------------------------
  51. ;------------------------------------------------------------------------------
  52. ;------------------------------------------------------------------------------
  53. ;------------------------------------------------------------------------------
  54. ;
  55. ;  Rohan
  56. ;
  57. ;------------------------------------------------------------------------------
  58. ;------------------------------------------------------------------------------
  59. ;------------------------------------------------------------------------------
  60.  
  61. ;------------------------------------------------------------------------------
  62. Weapon LegolasBow
  63.     AttackRange            = LEGOLAS_BOW_RANGE
  64.     
  65.     RangeBonusMinHeight    = 10
  66.     RangeBonus        = 1
  67.     RangeBonusPerFoot    = #MULTIPLY( LEGOLAS_BOW_RANGE .01 )
  68.                     
  69.     WeaponSpeed            = 321         ; dist/sec 
  70.     MinWeaponSpeed        = 241
  71.     MaxWeaponSpeed        = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  72.     FireFX                = FX_RohanArcherBowWeapon
  73.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  74.     HitPercentage        = 100     ;When this weapon is used it will hit exactly 100% of the time.
  75.     ScatterRadius        = 5.0     ;When this weapon misses it can randomly miss by as much as this distance.
  76.  
  77.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  78.     DelayBetweenShots    = LEGOLAS_DELAYBETWEENSHOTS     ; time between shots, msec
  79.     PreAttackDelay      = LEGOLAS_PREATTACKDELAY         ; 1467 is the prep time for archer.
  80.     PreAttackType       = PER_POSITION ; Do the delay each time we attack a new target
  81.     FiringDuration      = LEGOLAS_FIRINGDURATION     ; Duration of the archer firing shot is 500ms.
  82.  
  83.     ClipSize            = 1
  84.     AutoReloadsClip        = Yes
  85.     AutoReloadWhenIdle    = 1    
  86.     ClipReloadTime        = Min:LEGOLAS_RELOADTIME_MIN Max:LEGOLAS_RELOADTIME_MAX
  87.     ContinuousFireOne    = 0
  88.     ContinuousFireCoast    = LEGOLAS_RELOADTIME_MAX
  89.  
  90.     AntiAirborneVehicle    = Yes
  91.     AntiAirborneMonster    = Yes
  92.     CanFireWhileMoving    = Yes
  93.     
  94.     ProjectileNugget                    ; Default Arrow
  95.         ProjectileTemplateName  = GoodFactionArrow
  96.         WarheadTemplateName     = LegolasBowWarhead
  97.     End
  98. End
  99.  
  100. ;-----------------------------------
  101. Weapon LegolasBowWarhead
  102.   ProjectileCollidesWith = ALLIES ENEMIES NEUTRAL STRUCTURES WALLS 
  103.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR
  104.   HitStoredTarget = Yes    ; Always hits initial target.
  105.   DamageNugget                        ; A basic Nugget that just does damage
  106.     Damage        = LEGOLAS_BOW_DAMAGE
  107.     ;DamageScalar  = 25000% NONE +MordorMumakil
  108.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  109.     DelayTime     = 0
  110.     DamageType    = HERO_RANGED
  111.     DamageFXType  = GOOD_ARROW_PIERCE
  112.     DeathType     = NORMAL
  113.   End
  114. End
  115.  
  116. ;------------------------------------------------------------------------------
  117. Weapon LegolasHawkStrike
  118.     AttackRange = LEGOLAS_HAWKSTRIKE_RANGE
  119.     WeaponSpeed = 321         ; dist/sec 
  120.     MinWeaponSpeed = 241
  121.     MaxWeaponSpeed = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  122.     FireFX = FX_RohanArcherBowWeapon
  123.     ScaleWeaponSpeed = Yes ; Used for lob weapons, scales speed proportional to range
  124.     HitPercentage     = 100     ;When this weapon is used it will hit exactly 75% of the time.
  125.  
  126.     ;All these delays are controlled by the special power. Basically the special power can
  127.     ;launch whenever it's ready.
  128.     DelayBetweenShots        = 0                                            ; time between shots, msec
  129.     PreAttackDelay            = 3000                                        ; we want isntant
  130.     PreAttackType            = PER_POSITION
  131.     FiringDuration            = 1000                                        ; Duration of the archer firing shot is 500ms.
  132.     ClipSize = 1
  133.     AutoReloadsClip = Yes
  134.     AutoReloadWhenIdle = 1    
  135.     ClipReloadTime = Min:1 Max:1
  136.  
  137.     AntiAirborneVehicle        = Yes
  138.     AntiAirborneMonster        = Yes
  139.     
  140.     PreferredTargetBone = B_LLLID ; Likes to shoot things in their left eye.
  141.  
  142.     ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  143.         ProjectileTemplateName = LegolasSpecialArrow
  144.         WarheadTemplateName = LegolasHawkStrikeWarhead
  145.     End
  146.     ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  147.         ProjectileTemplateName = LegolasSpecialArrow2ndArrow
  148.         WarheadTemplateName = LegolasHawkStrikeWarhead
  149.     End
  150. End
  151.  
  152. ;------------------------------
  153. Weapon LegolasHawkStrikeWarhead
  154.     ProjectileCollidesWith = ALLIES ENEMIES NEUTRAL STRUCTURES WALLS 
  155.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR
  156.     HitStoredTarget = Yes    ; Always hits initial target.
  157.     DamageNugget                        ; A basic Nugget that just does damage
  158.             DamageScalar  = 10% NONE +STRUCTURE +MordorCatapult +IsengardBallista +GondorTrebuchet +GondorTrebuchetWall 
  159.         Damage        = LEGOLAS_HAWKSTRIKE_DAMAGE
  160.         Radius        = 20
  161.         DelayTime     = 0
  162.         DamageType    = HERO
  163.         DamageFXType  = GOOD_ARROW_PIERCE
  164.         DeathType     = NORMAL
  165.            DamageScalar  = 250% NONE +MordorFellBeast +MordorWitchKingOnFellBeast +GondorGwaihir +Drogoth
  166.         End
  167. End
  168.  
  169. ;------------------------------------------------------------------------------
  170. Weapon LegolasSword  ; BALANCE Legolas Sword Weapon
  171.     LeechRangeWeapon      = Yes
  172.     AttackRange           = 20.0
  173.     MeleeWeapon           = Yes
  174.     DelayBetweenShots     = LEGOLAS_KNIFE_DELAYBETWEENSHOTS            ; time between shots, msec
  175.     PreAttackDelay        = LEGOLAS_KNIFE_PREATTACKDELAY     ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  176.     PreAttackType         = PER_SHOT 
  177.     FireFX                = FX_GondorSwordHit
  178.     FiringDuration        = LEGOLAS_KNIFE_FIRINGDURATION             ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  179.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR
  180.     DamageNugget                        ; A basic Nugget that just does damage
  181.         Damage        = LEGOLAS_KNIFE_DAMAGE
  182.         Radius        = 10.0
  183.         DelayTime     = 0
  184.         DamageType    = HERO
  185.         DamageFXType  = SWORD_SLASH
  186.         DeathType     = NORMAL
  187.     End
  188. End
  189.  
  190. ;------------------------------------------------------------------------------
  191. Weapon RohirrimCrush  ; Used when the rohirrim crush an enemy.
  192.   LeechRangeWeapon      = Yes
  193.   AttackRange           = 9999999.0
  194.   MeleeWeapon           = No
  195.   DelayBetweenShots     = 0            ; time between shots, msec
  196.   PreAttackDelay        = 0 ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  197.   PreAttackType         = PER_SHOT 
  198.   FiringDuration        = 0
  199.   FireFX                = FX_GenericCrushImpactSound
  200.  
  201.   DamageNugget                  ; A basic Nugget that just does damage
  202.     Damage        = ROHIRRIM_CRUSH_DAMAGE        ; A whole lot of damage.
  203.     Radius        = 0.0
  204.     DelayTime     = 0
  205.     DamageType    = CRUSH
  206.     DeathType     = CRUSHED
  207.     FlankingBonus = 200%
  208.   End
  209. End
  210.  
  211. ;------------------------------------------------------------------------------
  212. Weapon SpiderRiderCrush  ; Used when the rohirrim crush an enemy.
  213.   LeechRangeWeapon      = Yes
  214.   AttackRange           = 9999999.0
  215.   MeleeWeapon           = No
  216.   DelayBetweenShots     = 0            ; time between shots, msec
  217.   PreAttackDelay        = 0 ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  218.   PreAttackType         = PER_SHOT 
  219.   FiringDuration        = 0 
  220.   FireFX                = FX_GenericCrushImpactSound
  221.  
  222.   DamageNugget                  ; A basic Nugget that just does damage
  223.     Damage        = SPIDERRIDER_CRUSH_DAMAGE        ; A whole lot of damage.
  224.     Radius        = 0.0
  225.     DelayTime     = 0
  226.     DamageType    = CRUSH
  227.     DeathType     = CRUSHED
  228.     FlankingBonus = 200%
  229.   End
  230. End
  231.  
  232. ;------------------------------------------------------------------------------
  233. Weapon RivendellLancerCrush
  234.   LeechRangeWeapon      = Yes
  235.   AttackRange           = 9999999.0
  236.   MeleeWeapon           = No
  237.   DelayBetweenShots     = 0                ; time between shots, msec
  238.   PreAttackDelay        = 0                ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  239.   PreAttackType         = PER_SHOT 
  240.   FiringDuration        = 0
  241.   FireFX                = FX_GenericCrushImpactSound
  242.  
  243.   DamageNugget
  244.     Damage        = RIVENDELLLANCER_CRUSH_DAMAGE
  245.     Radius        = 0.0
  246.     DelayTime     = 0
  247.     DamageType    = CRUSH
  248.     DeathType     = NORMAL
  249.     FlankingBonus = 200%
  250.   End
  251. End
  252.  
  253. ;------------------------------------------------------------------------------
  254. Weapon TrollCrush  ; Used when the rohirrim crush an enemy.
  255.   LeechRangeWeapon      = Yes
  256.   AttackRange           = 9999999.0
  257.   MeleeWeapon           = No
  258.   DelayBetweenShots     = 0            ; time between shots, msec
  259.   PreAttackDelay        = 0 ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  260.   PreAttackType         = PER_SHOT 
  261.   FiringDuration        = 0
  262.   FireFX                = FX_GenericCrushImpactSound
  263.  
  264.   DamageNugget                  ; A basic Nugget that just does damage
  265.     Damage        = TROLL_CRUSH_DAMAGE        ; A whole lot of damage.
  266.     Radius        = 0.0
  267.     DelayTime     = 0
  268.     DamageType    = CRUSH
  269.     DeathType     = CRUSHED
  270.     
  271.   End
  272. End
  273.  
  274.  
  275. ;------------------------------------------------------------------------------
  276. Weapon SpiderCrush
  277.   LeechRangeWeapon      = Yes
  278.   AttackRange           = 9999999.0
  279.   MeleeWeapon           = No
  280.   DelayBetweenShots     = 0            ; time between shots, msec
  281.   PreAttackDelay        = 0 ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  282.   PreAttackType         = PER_SHOT 
  283.   FiringDuration        = 0 ;
  284.   FireFX                = FX_GenericCrushImpactSound
  285.  
  286.   DamageNugget                  ; A basic Nugget that just does damage
  287.     Damage        = SPIDER_CRUSH_DAMAGE        ; A whole lot of damage.
  288.     Radius        = 0.0
  289.     DelayTime     = 0
  290.     DamageType    = CRUSH
  291.     DeathType     = CRUSHED
  292.     FlankingBonus = 200%
  293.   End
  294. End
  295.  
  296. ;------------------------------------------------------------------------------
  297. Weapon KnightCrush
  298.   LeechRangeWeapon      = Yes
  299.   AttackRange           = 9999999.0
  300.   MeleeWeapon           = No
  301.   DelayBetweenShots     = 0            ; time between shots, msec
  302.   PreAttackDelay        = 0 ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  303.   PreAttackType         = PER_SHOT 
  304.   FiringDuration        = 0 ;
  305.   FireFX                = FX_GenericCrushImpactSound
  306.  
  307.   DamageNugget                  ; A basic Nugget that just does damage
  308.     Damage        = KNIGHT_CRUSH_DAMAGE        ; A whole lot of damage.
  309.     Radius        = 0.0
  310.     DelayTime     = 0
  311.     DamageType    = CRUSH
  312.     DeathType     = CRUSHED
  313.     FlankingBonus = 200%
  314.   End
  315. End
  316.  
  317. ;------------------------------------------------------------------------------
  318. Weapon TomBombadilCrush
  319.   LeechRangeWeapon      = Yes
  320.   AttackRange           = 9999999.0
  321.   MeleeWeapon           = No
  322.   DelayBetweenShots     = 0            ; time between shots, msec
  323.   PreAttackDelay        = 0 ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  324.   PreAttackType         = PER_SHOT 
  325.   FiringDuration        = 0 ;
  326.   FireFX                = FX_TomBombadilCrushImpactSound
  327.  
  328.   DamageNugget                                    ; A basic Nugget that just does damage
  329.     Damage        = TOM_BOMBADIL_CRUSH_DAMAGE    ; A whole lot of damage.
  330.     Radius        = 0.0
  331.     DelayTime     = 0
  332.     DamageType    = CRUSH
  333.     DeathType     = CRUSHED
  334.   End
  335. End
  336.  
  337. ;------------------------------------------------------------------------------
  338. Weapon TomBombadilPunch  ; BALANCE CaveTroll Weapon Normal
  339.   LeechRangeWeapon            = Yes
  340.   RadiusDamageAffects        = ENEMIES 
  341.   AttackRange               = 30.0
  342.   MeleeWeapon               = Yes
  343.   DelayBetweenShots         = TOM_BOMBADIL_PUNCH_DELAYBETWEENSHOTS
  344.   FiringDuration            = TOM_BOMBADIL_PUNCH_FIRINGDURATION
  345.   PreAttackDelay            = TOM_BOMBADIL_PUNCH_PREATTACKDELAY
  346.   PreAttackType             = PER_SHOT ; Do the delay each time we attack a new target
  347.   PreAttackFX                = FX_TomBombadilHit
  348.   FireFX                    = FX_TomBombadilPunchImpactSound  
  349.   DamageDealtAtSelfPosition = Yes ; A melee based AoE.  Arc radiates from me, not them
  350.   AcceptableAimDelta        = 15.0 
  351.  
  352.   DamageNugget              ; A basic Nugget that just does damage
  353.     Damage                    = TOM_BOMBADIL_PUNCH_DAMAGE
  354.     Radius                    = 50.0
  355.     DamageArc                 = 45
  356.     DamageType                = MAGIC
  357.     DamageFXType              = CLUBBING
  358.     DeathType                 = NORMAL
  359.   End
  360.   MetaImpactNugget          ; A Nugget that throws things back with force
  361.     ShockWaveAmount           = 30.0
  362.     ShockWaveRadius           = 50.0
  363.     ShockWaveTaperOff         = 1.0
  364.     ShockWaveArc              = 45
  365.     ShockWaveZMult            = 1.20
  366.  ;   HeroResist                  = 0.90        ; 90% resistance to heroes
  367.   End
  368. End
  369.  
  370. ;------------------------------------------------------------------------------
  371. Weapon WargCrush
  372.   LeechRangeWeapon      = Yes
  373.   AttackRange           = 9999999.0
  374.   MeleeWeapon           = No
  375.   DelayBetweenShots     = 0            ; time between shots, msec
  376.   PreAttackDelay        = 0 ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  377.   PreAttackType         = PER_SHOT 
  378.   FiringDuration        = 0 ;
  379.   FireFX                = FX_GenericCrushImpactSound
  380.  
  381.   DamageNugget                        ; A basic Nugget that just does damage
  382.     Damage        = WARG_CRUSH_DAMAGE                ; A whole lot of damage.
  383.     Radius        = 0.0
  384.     DelayTime     = 0
  385.     DamageType    = CRUSH
  386.     DeathType     = CRUSHED
  387.     FlankingBonus = 200%
  388.   End
  389. End
  390.  
  391. ;------------------------------------------------------------------------------
  392. Weapon MumakilCrush  ; Used when the Mumakil crush an enemy.
  393.   LeechRangeWeapon      = Yes
  394.   AttackRange           = 9999999.0
  395.   MeleeWeapon           = No
  396.   DelayBetweenShots     = 0            ; time between shots, msec
  397.   PreAttackDelay        = 0 ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  398.   PreAttackType         = PER_SHOT 
  399.   FiringDuration        = 0 ;
  400.   FireFX                = FX_GenericCrushImpactSound
  401.  
  402.   DamageNugget                        ; A basic Nugget that just does damage
  403.     Damage        = MUMAKIL_CRUSH_DAMAGE                ; A whole lot of damage.
  404.     Radius        = 0.0
  405.     DelayTime     = 0
  406.     DamageType    = CRUSH
  407.     DeathType     = CRUSHED
  408.   End
  409. End
  410.  
  411. ;//------------------------------------------------------------------------------
  412. Weapon ShelobCrush ;// Used when the BattleWagon crushes an enemy.
  413.   LeechRangeWeapon      = Yes
  414.   AttackRange           = 9999999.0
  415.   MeleeWeapon           = No
  416.   DelayBetweenShots     = 0         ;//time between shots, msec
  417.   PreAttackDelay        = 0            ;//PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  418.   PreAttackType         = PER_SHOT 
  419.   FiringDuration        = 0 
  420.   FireFX                = FX_GenericCrushImpactSound
  421.  
  422.   DamageNugget                        ;// A basic Nugget that just does damage
  423.     Damage        = SHELOB_CRUSH_DAMAGE                ;// A whole lot of damage.
  424.     Radius        = 0.0
  425.     DelayTime     = 0
  426.     DamageType    = CRUSH
  427.     DeathType     = CRUSHED
  428.     FlankingBonus = 300%
  429.   End
  430. End
  431.  
  432. ;//------------------------------------------------------------------------------
  433. Weapon BattleWagonCrush ;// Used when the BattleWagon crushes an enemy.
  434.   LeechRangeWeapon      = Yes
  435.   AttackRange           = 9999999.0
  436.   MeleeWeapon           = No
  437.   DelayBetweenShots     = 0         ;//time between shots, msec
  438.   PreAttackDelay        = 0            ;//PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  439.   PreAttackType         = PER_SHOT 
  440.   FiringDuration        = 0 
  441.   FireFX                = FX_GenericCrushImpactSound
  442.  
  443.   DamageNugget                        ;// A basic Nugget that just does damage
  444.     Damage        = DWARVEN_BATTLEWAGON_CRUSH_DAMAGE                ;// A whole lot of damage.
  445.     Radius        = 0.0
  446.     DelayTime     = 0
  447.     DamageType    = CRUSH
  448.     DeathType     = CRUSHED
  449.     FlankingBonus = 300%
  450.   End
  451. End
  452.  
  453. ;//------------------------------------------------------------------------------
  454. Weapon GuardianCrush ;// Used when the BattleWagon crushes an enemy.
  455.   LeechRangeWeapon      = Yes
  456.   AttackRange           = 9999999.0
  457.   MeleeWeapon           = No
  458.   DelayBetweenShots     = 0         ;//time between shots, msec
  459.   PreAttackDelay        = 0            ;//PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  460.   PreAttackType         = PER_SHOT 
  461.   FiringDuration        = 0 
  462.   FireFX                = FX_GenericCrushImpactSound
  463.  
  464.   DamageNugget                        ;// A basic Nugget that just does damage
  465.     Damage        = DWARVEN_GUARDIAN_AXE                ;// A whole lot of damage.
  466.     Radius        = 0.0
  467.     DelayTime     = 0
  468.     DamageType    = CRUSH
  469.     DeathType     = CRUSHED
  470.     FlankingBonus = 300%
  471.   End
  472. End
  473.  
  474. ;------------------------------------------------------------------------------
  475. Weapon BalrogCrush  ; Used when the Balrog crush an enemy.
  476.   LeechRangeWeapon      = Yes
  477.   AttackRange           = 9999999.0
  478.   MeleeWeapon           = No
  479.   DelayBetweenShots     = 0            ; time between shots, msec
  480.   PreAttackDelay        = 0 ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  481.   PreAttackType         = PER_SHOT 
  482.   FiringDuration        = 0 ;
  483.   FireFX                = FX_GenericCrushImpactSound
  484.  
  485.   DamageNugget                        ; A basic Nugget that just does damage
  486.     Damage        = BALROG_CRUSH_DAMAGE                ; A whole lot of damage.
  487.     Radius        = 0.0
  488.     DelayTime     = 0
  489.     DamageType    = CRUSH
  490.     DeathType     = CRUSHED
  491.   End
  492. End
  493.  
  494. ;------------------------------------------------------------------------------
  495. Weapon BalrogDeathCrush  ; Used when the Balrog crush enemies when it dies.
  496.     LeechRangeWeapon      = Yes
  497.     AttackRange           = 9999.0
  498.     MeleeWeapon           = No
  499.     DelayBetweenShots     = 0                            ; time between shots, msec
  500.     PreAttackDelay        = 0
  501.     PreAttackType         = PER_SHOT 
  502.     FiringDuration        = 0
  503.     FireFX                = FX_GenericCrushImpactSound
  504.  
  505.     DamageNugget                                       ; A basic Nugget that just does damage
  506.         Damage        = BALROG_CRUSH_DAMAGE                ; A whole lot of damage.
  507.         Radius        = 75.0
  508.         DamageType    = CRUSH
  509.         DeathType     = CRUSHED
  510.     End
  511.     
  512.     MetaImpactNugget                    ; A Nugget that throws things back with force
  513. ;        HeroResist            = .75
  514.         ShockWaveAmount        = 70
  515.         ShockWaveRadius        = 100.0
  516.         ShockWaveTaperOff    = 0.9
  517.         ShockWaveZMult        = 1.20
  518.     End
  519. End
  520.  
  521. ;------------------------------------------------------------------------------
  522. Weapon BasicInfantryCrushRevenge
  523.   ShouldPlayUnderAttackEvaEvent = No ; The units hit by this are not "under attack", they're just getting hurt a little
  524.   AttackRange      = 10.0
  525.   DamageNugget                        
  526.     Damage        = BASIC_INFANTRY_CRUSH_REVENGE_DAMAGE                
  527.     Radius        = 0.0
  528.     DelayTime     = 0
  529.     DamageType    = SLASH
  530.     DeathType     = NORMAL
  531.   End
  532. End
  533.  
  534. ;------------------------------------------------------------------------------
  535. Weapon RangedInfantryCrushRevenge
  536.   ShouldPlayUnderAttackEvaEvent = No ; The units hit by this are not "under attack", they're just getting hurt a little
  537.   AttackRange      = 10.0
  538.   DamageNugget                        
  539.     Damage        = RANGED_INFANTRY_CRUSH_REVENGE_DAMAGE                
  540.     Radius        = 0.0
  541.     DelayTime     = 0
  542.     DamageType    = PIERCE
  543.     DeathType     = NORMAL
  544.   End
  545. End
  546.  
  547. ;------------------------------------------------------------------------------
  548. Weapon AntiCavalryInfantryCrushRevenge
  549.   AttackRange      = 10.0
  550.   DamageNugget                        
  551.     Damage        = ANTI_CAVALRY_INFANTRY_CRUSH_REVENGE_DAMAGE    
  552.     DamageScalar  = 10% NONE +DwarvenBattleWagon
  553.     Radius      = 0.0
  554.     DelayTime     = 0
  555.     DamageType    = SPECIALIST
  556.     DeathType     = NORMAL
  557.   End
  558. End
  559.  
  560. ;------------------------------------------------------------------------------
  561. Weapon SuperInfantryCrushRevenge
  562.   AttackRange       = 10.0
  563.   DamageNugget                        
  564.     Damage          = SUPER_INFANTRY_CRUSH_REVENGE_DAMAGE
  565.     DamageScalar  = 10% NONE +DwarvenBattleWagon    
  566.     Radius      = 0.0
  567.     DelayTime     = 0
  568.     DamageType    = SPECIALIST
  569.     DeathType     = NORMAL
  570.   End
  571. End
  572.  
  573.  
  574. ;------------------------------------------------------------------------------------------------------------------------------
  575. Weapon LegolasBowArrowStorm
  576.   AttackRange = LEGOLAS_ARROWSTORM_RANGE
  577.   WeaponSpeed = 561         ; dist/sec 
  578.   MinWeaponSpeed = 481
  579.   MaxWeaponSpeed = 641      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  580.   FireFX = FX_RohanArcherBowWeapon
  581.   HitPercentage     = 100     ;When this weapon is used it will hit exactly all of the time.
  582.  
  583.   ProjectileNugget                    ; Default arrow
  584.     ProjectileTemplateName = LegolasBowArrowStormProjectile
  585.     WarheadTemplateName = LegolasBowArrowStormWarhead
  586.   End
  587. End
  588.  
  589. ;------------------------------
  590. Weapon LegolasBowArrowStormWarhead
  591.   ProjectileCollidesWith =   STRUCTURES WALLS  
  592.   RadiusDamageAffects =   ENEMIES NEUTRALS NOT_SIMILAR
  593.   HitStoredTarget = Yes    ; Always hits initial target.
  594.   DamageNugget                        ; A basic Nugget that just does damage
  595.     Damage        = LEGOLAS_ARROWSTORM_DAMAGE
  596.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  597.     DelayTime     = 0
  598.     DamageType    = HERO_RANGED
  599.     DamageFXType  = GOOD_ARROW_PIERCE
  600.     DeathType     = NORMAL
  601.     AcceptDamageAdd = No
  602.   End
  603. End
  604.  
  605. ;------------------------------------------------------------------------------------------------------------------------------
  606. Weapon LegolasBowArrowStormHigh
  607.   AttackRange = 1680.0
  608.   WeaponSpeed = 481         ; dist/sec 
  609.   MinWeaponSpeed = 481
  610.   MaxWeaponSpeed = 641      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  611.   FireFX = FX_RohanArcherBowWeapon
  612.   HitPercentage     = 100     ;When this weapon is used it will hit exactly all of the time.
  613.  
  614.   ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  615.     ProjectileTemplateName = LegolasBowArrowStormProjectile
  616.     WarheadTemplateName = LegolasBowArrowStormWarhead
  617.   End
  618. End
  619.  
  620. ;------------------------------------------------------------------------------------------------------------------------------
  621. Weapon DamrodBowDeadlySniper
  622.   AttackRange = DAMROD_DEADLYSHOT_RANGE
  623.   WeaponSpeed = 561         ; dist/sec 
  624.   MinWeaponSpeed = 481
  625.   MaxWeaponSpeed = 641      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  626.   FireFX = FX_RohanArcherBowWeapon
  627.   HitPercentage     = 100     ;When this weapon is used it will hit exactly all of the time.
  628.  
  629.   ProjectileNugget                    ; Default arrow
  630.     ProjectileTemplateName = LegolasBowArrowStormProjectile
  631.     WarheadTemplateName = LegolasBowArrowStormWarhead
  632.   End
  633. End
  634.  
  635. ;------------------------------------------------------------------------------
  636. Weapon HobbitPunch  ; BALANCE Hobbit Punch
  637.   LeechRangeWeapon      = Yes
  638.   AttackRange           = 20.0
  639.   MeleeWeapon           = Yes
  640.   DelayBetweenShots     = 833            ; time between shots, msec
  641.   PreAttackDelay        = 367             ; 433 is natural time of the stabbing animation.
  642.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  643.   FiringDuration        = 833            ; min 600 for anim
  644.   DamageNugget                        ; A basic Nugget that just does damage
  645.     Damage        = 1
  646.     Radius        = 0.0
  647.     DelayTime     = 0
  648.     DamageType    = HERO
  649.     DamageFXType  = SWORD_SLASH
  650.     DeathType     = NORMAL
  651.   End
  652. End
  653.  
  654. ;------------------------------------------------------------------------------
  655. Weapon HobbitSword  ; BALANCE Hobbit Sword Weapon
  656.   LeechRangeWeapon      = Yes
  657.   AttackRange           = 20.0
  658.   MeleeWeapon           = Yes
  659.   DelayBetweenShots     = HOBBIT_SWORD_DELAYBETWEENSHOTS             ; time between shots, msec
  660.   PreAttackDelay        = HOBBIT_SWORD_PREATTACKDELAY              ; 433 is natural time of the stabbing animation.
  661.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  662.   FiringDuration        = HOBBIT_SWORD_FIRINGDURATION            ; min 600 for anim
  663.   FireFX                = FX_GondorSwordHit
  664.   FireFlankFX        = FX_Flanking
  665.   DamageNugget                        ; A basic Nugget that just does damage
  666.     Damage        = HOBBIT_SWORD_DAMAGE
  667.     Radius        = 0.0
  668.     DelayTime     = 0
  669.     DamageType    = HERO
  670.     DamageFXType  = SWORD_SLASH
  671.     DeathType     = NORMAL
  672.     FlankingBonus = 50%
  673.   End
  674. End
  675.  
  676. ;------------------------------------------------------------------------------
  677. Weapon Sting
  678.   LeechRangeWeapon      = Yes
  679.   AttackRange           = 20.0
  680.   MeleeWeapon           = Yes
  681.   DelayBetweenShots     = FRODO_DELAYBETWEENSHOTS            ; time between shots, msec
  682.   PreAttackDelay        = FRODO_PREATTACKDELAY              ; 433 is natural time of the stabbing animation.
  683.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  684.   FiringDuration        = FRODO_FIRINGDURATION           ; min 600 for anim
  685.   FireFX                = FX_GondorSwordHit
  686.   DamageNugget                        ; A basic Nugget that just does damage
  687.     Damage        = FRODO_DAMAGE
  688.     Radius        = 0.0
  689.     DelayTime     = 0
  690.     DamageType    = HERO
  691.     DamageFXType  = SWORD_SLASH
  692.     DeathType     = NORMAL
  693.   End
  694. End
  695.  
  696. ;------------------------------------------------------------------------------
  697. ;Weapon SamFryingPanBonk
  698. ;    LeechRangeWeapon    = Yes
  699. ;    AttackRange         = 20.0
  700. ;    MeleeWeapon         = Yes
  701. ;    PreAttackType       = PER_SHOT ; Do the delay each time we attack a new target
  702. ;
  703. ;    DelayBetweenShots   = SAM_PAN_DELAYBETWEENSHOTS             ; time between shots, msec
  704. ;    PreAttackDelay      = SAM_PAN_PREATTACKDELAY                 
  705. ;    FiringDuration      = SAM_PAN_FIRINGDURATION                 
  706. ;    
  707. ;    ClipReloadTime        = 10000
  708. ;    ClipSize            = 1
  709. ;    AutoReloadsClip        = Yes
  710. ;
  711. ;    DamageNugget                        ; A basic Nugget that just does damage
  712. ;        Damage        = SAM_PAN_DAMAGE                    
  713. ;        Radius        = 0.0
  714. ;        DelayTime     = 0
  715. ;        DamageType    = HERO
  716. ;        DamageFXType  = CLUBBING
  717. ;        DeathType     = NORMAL
  718. ;    End
  719. ;End
  720.  
  721. ;------------------------------------------------------------------------------
  722. Weapon RohanGimliAxe  ; BALANCE Gimli Axe Weapon
  723.   LeechRangeWeapon      = Yes
  724.   AttackRange           = 20.0
  725.   MeleeWeapon           = Yes
  726.   WeaponSpeed           = 799999.2        ; dist/sec (huge value == effectively instant)
  727.   DelayBetweenShots     = GIMLI_DELAYBETWEENSHOTS     ; time between shots, msec
  728.   PreAttackDelay        = GIMLI_PREATTACKDELAY     ; 433 is natural time of the stabbing animation.
  729.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  730.   FiringDuration        = GIMLI_FIRINGDURATION         ; min 600 for anim
  731.   FireFX                = FX_GondorSwordHit
  732.  
  733.   DamageNugget
  734.     Damage        = GIMLI_DAMAGE
  735.     Radius        = 0.0
  736.     DelayTime     = 0
  737.     DamageType    = HERO
  738.     DamageFXType  = SWORD_SLASH
  739.     DeathType     = NORMAL
  740.   End
  741. End
  742.  
  743. ;------------------------------------------------------------------------------
  744. Weapon RohanGimliSuperAxe  ; BALANCE Gimli Axe Weapon
  745.   LeechRangeWeapon      = Yes
  746.   AttackRange           = 20.0
  747.   MeleeWeapon           = Yes
  748.   WeaponSpeed           = 799999.2        ; dist/sec (huge value == effectively instant)
  749.   DelayBetweenShots     = GIMLI_DELAYBETWEENSHOTS_SUPER     ; time between shots, msec
  750.   PreAttackDelay        = GIMLI_PREATTACKDELAY_SUPER     ; 433 is natural time of the stabbing animation.
  751.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  752.   FiringDuration        = GIMLI_FIRINGDURATION_SUPER         ; min 600 for anim
  753.   FireFX                = FX_GondorSwordHit
  754.  
  755.   DamageNugget
  756.     Damage            = GIMLI_DAMAGE_SUPER
  757.     DamageArc         = 180
  758.     Radius            = 10.0
  759.     DelayTime        = 0
  760.     DamageType        = HERO
  761.     DamageFXType    = SWORD_SLASH
  762.     DeathType        = NORMAL
  763.   End
  764.  
  765.   MetaImpactNugget                    ; A Nugget that throws things back with force
  766. ;    HeroResist            = .99
  767.     ShockWaveAmount        = 30.0
  768.     ShockWaveRadius        = 10
  769.     ShockWaveArc        = 180
  770.     ShockWaveTaperOff = 1
  771.   End
  772. End
  773.  
  774.  
  775. ;------------------------------------------------------------------------------
  776. Weapon RohanGimliAxeThrown 
  777.     AttackRange         = GIMLI_THROW_RANGE
  778.     WeaponSpeed = 161         ; dist/sec 
  779.     MinWeaponSpeed = 201
  780.     MaxWeaponSpeed = 241      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  781.     FireFX = FX_GimliAxeThrow
  782.     ScaleWeaponSpeed = Yes ; Used for lob weapons, scales speed proportional to range
  783.     HitPercentage = 100
  784.     ScatterRadius     = 0.0      ;When this weapon misses it can randomly miss by as much as this distance.
  785.     DelayBetweenShots = 0        ; time between shots, msec
  786.       
  787.     AntiAirborneVehicle    = Yes ; added so he can attack fellbeast and birds
  788.     AntiAirborneMonster    = Yes ; added so he can attack fellbeast and birds
  789.       
  790.       ClipSize            = 1            ; how many shots in a Clip (0 == infinite)
  791.     ClipReloadTime        = 10000     ; how long to reload a Clip, msec
  792.     AutoReloadsClip        = Yes
  793.     ;IdleAfterFiringDelay = 2500;
  794.     ;HoldAfterFiringDelay = 2500 ; So I don't move while the weapon needs to complete
  795.     InstantLoadClipOnActivate = Yes
  796.  
  797.     PreAttackDelay        = 1500; 1467             ; 1467 is the prep time for archer.
  798.     PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  799.     FiringDuration      = 1600; 1567    ; Duration of the archer firing shot is 500ms.
  800.  
  801.     ProjectileNugget
  802.         ProjectileTemplateName = GimliAxeProjectile
  803.         WarheadTemplateName = RohanGimliAxeThrownWarhead
  804.     End
  805. End
  806.  
  807. ;------------------------------------------------------------------------------
  808. Weapon RohanGimliAxeThrownWarhead
  809.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  810.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR
  811.   FireFX                = FX_GondorSwordHit
  812.   HitStoredTarget = Yes    ; Always hits initial target.
  813.   DamageNugget
  814.     Damage        = GIMLI_THROW_DAMAGE
  815.     DamageScalar  = 10% NONE +STRUCTURE +MordorCatapult +IsengardBallista +GondorTrebuchet +GondorTrebuchetWall 
  816.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  817.     DelayTime     = 0
  818.     DamageType    = HERO
  819.     DamageFXType  = SWORD_SLASH
  820.     DeathType     = NORMAL
  821.   End
  822. End
  823.  
  824. ;------------------------------------------------------------------------------
  825. ;Weapon RohanGimliDwarfTossGroundPound
  826. ; DamageNugget                        ; A basic Nugget that just does damage
  827. ;    Damage        = 100
  828. ;    Radius        = 40.0
  829. ;    DelayTime     = 0
  830. ;    DamageType    = SLASH
  831. ;    DamageFXType  = SWORD_SLASH
  832. ;    DeathType     = NORMAL
  833. ;  End
  834. ;  MetaImpactNugget                    ; A Nugget that throws things back with force
  835. ;    HeroResist            = .75
  836. ;    ShockWaveAmount   = 20.0
  837. ;    ShockWaveRadius   = 40.0
  838. ;    ShockWaveTaperOff = 0.5
  839. ;  End
  840. ;End
  841.  
  842. ;------------------------------------------------------------------------------
  843. Weapon RohanGimliLeap  ; BALANCE RohanGimliLeap
  844.   IdleAfterFiringDelay = 0
  845.   AttackRange           = 100.0
  846.   MinimumAttackRange    = 8.0
  847.   WeaponSpeed           = 100.0        ; dist/sec (huge value == effectively instant)
  848.   ProjectileSelf        = Yes ; We don't make the projectile throw ourself
  849.   ClipSize              = 1               ; how many shots in a Clip (0 == infinite)
  850.   ClipReloadTime        = 2200   ;1467 min for animation           ; how long to reload a Clip, msec
  851.   AutoReloadsClip        = Yes    
  852.   PreAttackDelay        = 600
  853.   FiringDuration        = 1500            
  854.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  855.   HitPercentage       = 0 ; Never auto hits, always shoots at a ground position
  856.   ScatterRadius       = 0.0     ;When this weapon misses it can randomly miss by as much as this distance.
  857.   FireFX                = FX_GimliLeap
  858.   ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  859.     WarheadTemplateName = RohanGimliLeapWarhead
  860.   End
  861. End
  862.  
  863. ;-----------------------------------
  864. Weapon RohanGimliLeapWarhead
  865.   ProjectileCollidesWith = ENEMIES
  866.   RadiusDamageAffects = ENEMIES
  867.   
  868.   FireFX                = FX_GimliLeapNoVoice
  869.   DamageNugget                        ; A basic Nugget that just does damage
  870.     Damage        = GIMLI_LEAP_DAMAGE
  871.     Radius        = 30.0
  872.     DelayTime     = 0
  873.     DamageType            = HERO
  874.     DamageFXType          = GIMLI_LEAP
  875.     DeathType             = NORMAL
  876.   End
  877.   MetaImpactNugget                    ; A Nugget that throws things back with force
  878. ;    HeroResist            = .75
  879.     ShockWaveAmount   = 70.0
  880.     ShockWaveRadius   = 40.0
  881.     ShockWaveTaperOff = 0.5
  882.     ShockWaveZMult    = 1.20
  883.   End
  884. End
  885.  
  886. ;------------------------------------------------------------------------------
  887. ;Weapon RohanGimliWhirlWind  ; BALANCE RohanGimliWhirlWind
  888. ;  IdleAfterFiringDelay    = 0
  889. ;  AttackRange           = 20.0 ;150.0
  890. ;  MinimumAttackRange    = 4.0
  891. ;  WeaponSpeed           = 160.0        ; dist/sec (huge value == effectively instant)
  892. ;  ClipSize              = INFINITE_CLIP_SIZE               ; how many shots in a Clip (0 == infinite)
  893. ;  ClipReloadTime        = 2000   ;1467 min for animation           ; how long to reload a Clip, msec
  894. ;  AutoReloadsClip        = Yes    ;We need a rock explicitly picked up.
  895. ;  PreAttackDelay        = 600
  896. ;  FiringDuration        = 2500            
  897. ;  PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  898. ;  HitPercentage       = 0 ; Never auto hits, always shoots at a ground position
  899. ;  ScatterRadius       = 1  ;When this weapon misses it can randomly miss by as much as this distance.
  900. ;  
  901. ;  DamageNugget                        ; A basic Nugget that just does damage
  902. ;    Damage        = 100
  903. ;    Radius        = 25.0
  904. ;    DelayTime     = 0
  905. ;    DamageType    = HERO
  906. ;    DamageFXType  = SWORD_SLASH
  907. ;    DeathType             = NORMAL
  908. ;  End
  909. ;End
  910.  
  911. ;------------------------------------------------------------------------------
  912. Weapon RohanFighterSword  ; BALANCE Militia Weapon
  913.   LeechRangeWeapon      = Yes
  914.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  915.   MeleeWeapon           = Yes
  916.   DelayBetweenShots     = ROHAN_PEASANT_DELAYBETWEENSHOTS  ;2000        ; Bad Things happen if delay between shots is less than Preattack+Firing times.  You are ready to fire before you are done firing.
  917.   PreAttackDelay        = ROHAN_PEASANT_PREATTACKDELAY             ; 400 is sword swing delay time before contact with target.
  918.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  919.   FireFX                = FX_GondorSwordHit
  920.   FireFlankFX        = FX_Flanking
  921.   FiringDuration        = ROHAN_PEASANT_FIRINGDURATION     ; Duration of the sword swing
  922.   DamageNugget                        ; A basic Nugget that just does damage
  923.     Damage        = ROHAN_FIGHTER_SWORD_DAMAGE
  924.     Radius        = 0.0
  925.     DelayTime     = 0
  926.     DamageType    = SLASH
  927.     DamageFXType  = SWORD_SLASH
  928.     DeathType     = NORMAL
  929.     FlankingBonus = 50%
  930.   End
  931. End
  932.  
  933. ;------------------------------------------------------------------------------
  934. Weapon RohanFighterSwordUpgraded  ; BALANCE Militia Weapon
  935.   LeechRangeWeapon      = Yes
  936.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  937.   MeleeWeapon           = Yes
  938.   DelayBetweenShots     = ROHAN_PEASANT_DELAYBETWEENSHOTS  ;2000        ; Bad Things happen if delay between shots is less than Preattack+Firing times.  You are ready to fire before you are done firing.
  939.   PreAttackDelay        = ROHAN_PEASANT_PREATTACKDELAY             ; 400 is sword swing delay time before contact with target.
  940.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  941.   FireFX                = FX_GondorSwordHit
  942.   FireFlankFX        = FX_Flanking
  943.   FiringDuration        = ROHAN_PEASANT_FIRINGDURATION     ; Duration of the sword swing
  944.   DamageNugget                        ; A basic Nugget that just does damage
  945.     Damage        = ROHAN_FIGHTER_SWORD_DAMAGE_FORGED_UPGRADE
  946.     Radius        = 0.0
  947.     DelayTime     = 0
  948.     DamageType    = SLASH
  949.     DamageFXType  = SWORD_SLASH
  950.     DeathType     = NORMAL
  951.     FlankingBonus = 50%
  952.   End
  953. End
  954.  
  955. ;------------------------------------------------------------------------------
  956. ;Weapon RohanFighterRock  ; BALANCE Militia Weapon
  957. ;  ScatterRadiusVsInfantry     = 8.0     ;When this weapon is used against infantry, it will always miss by as much as this distance.
  958. ;  AttackRange = 240.0
  959. ;  MinimumAttackRange = 40.0
  960. ;  WeaponSpeed = 201         ; dist/sec 
  961. ;  MinWeaponSpeed = 61
  962. ;  MaxWeaponSpeed = 301      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  963. ;  ScaleWeaponSpeed = Yes ; Used for lob weapons, scales speed proportional to range
  964. ;  DelayBetweenShots = 4000               ; time between shots, msec
  965. ;
  966. ;  ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  967. ;    ProjectileTemplateName = RohanFighterRockProjectile
  968. ;    WarheadTemplateName = RohanFighterRockWarhead
  969. ;  End
  970. ;End
  971.  
  972. ;----------------------------
  973. ;Weapon RohanFighterRockWarhead
  974. ;  RadiusDamageAffects = ENEMIES NEUTRALS ALLIES NOT_SIMILAR
  975. ;  DamageNugget                        ; A basic Nugget that just does damage
  976. ;    Damage        = 20
  977. ;    Radius        = 4.0
  978. ;    DelayTime     = 0
  979. ;    DamageType    = CRUSH
  980. ;    DamageFXType  = SMALL_ROCK
  981. ;    DeathType     = EXPLODED
  982. ;  End
  983. ;End
  984.  
  985. ;------------------------------------------------------------------------------
  986. Weapon RohanArcherBowMelee       ; BALANCE Archer Weapon
  987.   LeechRangeWeapon      = Yes
  988.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  989.   MeleeWeapon           = Yes
  990. ;  FireFX                = FX_RohanArcherBowWeapon;
  991.   DelayBetweenShots     = 2000            ; time between shots, msec
  992.   PreAttackDelay        = 666             ; 400 is sword swing delay time before contact with target.
  993.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  994.   FiringDuration        = 1000    ; Duration of the sword swing
  995.  
  996.   DamageNugget                        ; A basic Nugget that just does damage
  997.     Damage        = ROHAN_YEOMAN_MELEE_DAMAGE
  998.     Radius        = 0.0
  999.     DelayTime     = 0
  1000.     DamageType    = SLASH
  1001.     DamageFXType  = SWORD_SLASH
  1002.     DeathType     = NORMAL
  1003.   End
  1004. End
  1005. ;------------------------------------------------------------------------------
  1006. Weapon RohanArcherBow
  1007.     AttackRange         = ROHAN_YEOMAN_RANGE
  1008.     
  1009.     RangeBonusMinHeight    = 10
  1010.     RangeBonus        = 1
  1011.     RangeBonusPerFoot    = #MULTIPLY( ROHAN_YEOMAN_RANGE .01 )
  1012.     
  1013.     WeaponSpeed            = 321         ; dist/sec 
  1014.     MinWeaponSpeed      = 241
  1015.     MaxWeaponSpeed      = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  1016.     FireFX              = FX_RohanArcherBowWeapon
  1017.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  1018.     HitPercentage       = 100     ;When this weapon is used it will hit exactly 50% of the time.
  1019.     ScatterRadius       = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  1020.  
  1021.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  1022.     DelayBetweenShots   = 0
  1023.     PreAttackDelay      = ROHAN_YEOMAN_PREATTACKDELAY  
  1024.     PreAttackRandomAmount     = 200  
  1025.     PreAttackType       = PER_POSITION
  1026.     FiringDuration      = 0   
  1027.  
  1028.     ClipSize            = 1
  1029.     AutoReloadsClip        = Yes
  1030.     AutoReloadWhenIdle    = 1    
  1031.     ClipReloadTime        = Min:ROHAN_YEOMAN_BOW_RELOADTIME_MIN Max:ROHAN_YEOMAN_BOW_RELOADTIME_MAX
  1032.     ContinuousFireOne    = 0
  1033.     ContinuousFireCoast    = ROHAN_YEOMAN_BOW_RELOADTIME_MAX 
  1034.  
  1035.     AntiAirborneVehicle    = Yes
  1036.     AntiAirborneMonster    = Yes
  1037.     HitPassengerPercentage    = 20%
  1038.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  1039.  
  1040.     ProjectileNugget    ; Default arrow
  1041.         ProjectileTemplateName  = GoodFactionArrow
  1042.         WarheadTemplateName     = RohanArcherBowWarhead
  1043.         ForbiddenUpgradeNames   = Upgrade_RohanFireArrows
  1044.     End
  1045.     ProjectileNugget    ; Fire arrow avialble through fire upgrade
  1046.         ProjectileTemplateName  = GoodFactionFireArrow
  1047.         WarheadTemplateName     = RohanArcherBowFireWarhead
  1048.         RequiredUpgradeNames    = Upgrade_RohanFireArrows
  1049.     End
  1050. End
  1051.  
  1052. ;------------------------------------------------------------------------------
  1053. Weapon MirkwoodArcherBow
  1054.     AttackRange         = ELVEN_MIRKWOOD_ARCHER_RANGE
  1055.     
  1056.     
  1057.     RangeBonusMinHeight    = 10
  1058.     RangeBonus        = 1
  1059.     RangeBonusPerFoot    = #MULTIPLY( ELVEN_MIRKWOOD_ARCHER_RANGE .01 )
  1060.     
  1061.     WeaponSpeed            = 321         ; dist/sec 
  1062.     MinWeaponSpeed      = 241
  1063.     MaxWeaponSpeed      = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  1064.     FireFX              = FX_RohanArcherBowWeapon
  1065.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  1066.     HitPercentage       = 100     ;When this weapon is used it will hit exactly 50% of the time.
  1067.     ScatterRadius       = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  1068.  
  1069.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  1070.     DelayBetweenShots   = 0
  1071.     PreAttackDelay      = ELVEN_MIRKWOOD_ARCHER_BOW_PREATTACKDELAY  
  1072.     PreAttackRandomAmount     = 200  
  1073.     PreAttackType       = PER_POSITION
  1074.     FiringDuration      = 0   
  1075.  
  1076.     ClipSize            = 1
  1077.     AutoReloadsClip        = Yes
  1078.     AutoReloadWhenIdle    = 1    
  1079.     ClipReloadTime        = Min:ELVEN_MIRKWOOD_ARCHER_BOW_RELOADTIME_MIN Max:ELVEN_MIRKWOOD_ARCHER_BOW_RELOADTIME_MAX
  1080.     ContinuousFireOne    = 0
  1081.     ContinuousFireCoast    = ELVEN_MIRKWOOD_ARCHER_BOW_RELOADTIME_MAX 
  1082.  
  1083.     AntiAirborneVehicle    = Yes
  1084.     AntiAirborneMonster    = Yes
  1085.     HitPassengerPercentage    = 20%
  1086.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  1087.  
  1088.     ProjectileNugget    ; Default arrow
  1089.         ProjectileTemplateName  = GoodFactionArrow
  1090.         WarheadTemplateName     = ElvenMirkwoodArcherBowWarhead
  1091.         ForbiddenUpgradeNames   = Upgrade_RohanFireArrows
  1092.     End
  1093.     ProjectileNugget    ; Fire arrow avialble through fire upgrade
  1094.         ProjectileTemplateName  = GoodFactionFireArrow
  1095.         WarheadTemplateName     = RohanArcherBowFireWarhead
  1096.         RequiredUpgradeNames    = Upgrade_RohanFireArrows
  1097.     End
  1098. End
  1099.  
  1100. Weapon MirkwoodArcherBowBombard
  1101.     AttackRange         = ELVEN_MIRKWOOD_ARCHER_BOMBARD_MAXRANGE
  1102.     MinimumAttackRange  = #SUBTRACT( ELVEN_MIRKWOOD_ARCHER_BOMBARD_MINRANGE 75 )
  1103.     
  1104.     RangeBonusMinHeight    = 10
  1105.     RangeBonus        = 1
  1106.     RangeBonusPerFoot    = #MULTIPLY( ELVEN_MIRKWOOD_ARCHER_BOMBARD_MAXRANGE .01 )
  1107.     
  1108.     WeaponSpeed            = 321         ; dist/sec 
  1109.     MinWeaponSpeed      = 241
  1110.     MaxWeaponSpeed      = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  1111.     FireFX              = FX_RohanArcherBowWeapon
  1112.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  1113.     HitPercentage       = 0     ;Always scatter
  1114.     ScatterRadius       = ARCHER_BOMBARD_SCATTER_RADIUS     ;When this weapon misses it can randomly miss by as much as this distance.
  1115.  
  1116.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  1117.     DelayBetweenShots   = 0
  1118.     PreAttackDelay      = ELVEN_MIRKWOOD_ARCHER_BOW_PREATTACKDELAY  
  1119.     PreAttackRandomAmount     = 200  
  1120.     PreAttackType       = PER_POSITION
  1121.     FiringDuration      = 0   
  1122.  
  1123.     ClipSize            = 1
  1124.     AutoReloadsClip        = Yes
  1125.     AutoReloadWhenIdle    = 1    
  1126.     ClipReloadTime        = Min:ELVEN_MIRKWOOD_ARCHER_BOW_RELOADTIME_MIN Max:ELVEN_MIRKWOOD_ARCHER_BOW_RELOADTIME_MAX
  1127.     ContinuousFireOne    = 0
  1128.     ContinuousFireCoast    = ELVEN_MIRKWOOD_ARCHER_BOW_RELOADTIME_MAX 
  1129.  
  1130.     AntiAirborneVehicle    = Yes
  1131.     AntiAirborneMonster    = Yes
  1132.     HitPassengerPercentage    = 20%
  1133.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  1134.     
  1135.     NoVictimNeeded        = Yes
  1136.     BombardType            = Yes
  1137.  
  1138.     ProjectileNugget    ; Default arrow
  1139.         ProjectileTemplateName  = GoodFactionArrowBombard
  1140.         WarheadTemplateName     = ElvenArcherBowBombardWarhead
  1141.         ForbiddenUpgradeNames   = Upgrade_RohanFireArrows
  1142.     End
  1143.     ProjectileNugget    ; Fire arrow avialble through fire upgrade
  1144.         ProjectileTemplateName  = GoodFactionFireArrowBombard
  1145.         WarheadTemplateName     = RohanArcherBowBombardFireWarhead
  1146.         RequiredUpgradeNames    = Upgrade_RohanFireArrows
  1147.     End
  1148. End
  1149.  
  1150. ;------------------------------------------------------------------------------
  1151. Weapon MirkwoodArcherSilverthornBow ;from RohanArcherBow
  1152.     AttackRange         = ELVEN_MIRKWOOD_ARCHER_RANGE    ; increased range
  1153.     
  1154.     RangeBonusMinHeight    = 10
  1155.     RangeBonus        = 1
  1156.     RangeBonusPerFoot    = #MULTIPLY( ELVEN_MIRKWOOD_ARCHER_RANGE .01 )
  1157.     
  1158.     WeaponSpeed            = 321         ; dist/sec 
  1159.     MinWeaponSpeed      = 241
  1160.     MaxWeaponSpeed      = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  1161.     FireFX              = FX_RohanArcherBowWeapon
  1162.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  1163.     HitPercentage       = 100     ;When this weapon is used it will hit exactly 50% of the time.
  1164.     ScatterRadius       = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  1165.  
  1166.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  1167.     DelayBetweenShots   = 0
  1168.     PreAttackDelay      = ROHAN_YEOMAN_PREATTACKDELAY  
  1169.     PreAttackRandomAmount     = 200  
  1170.     PreAttackType       = PER_POSITION
  1171.     FiringDuration      = 0   
  1172.  
  1173.     ClipSize            = 1
  1174.     AutoReloadsClip        = Yes
  1175.     AutoReloadWhenIdle    = 1    
  1176.     ClipReloadTime        = Min:ROHAN_YEOMAN_BOW_RELOADTIME_MIN Max:ROHAN_YEOMAN_BOW_RELOADTIME_MAX
  1177.     ContinuousFireOne    = 0
  1178.     ContinuousFireCoast    = ROHAN_YEOMAN_BOW_RELOADTIME_MAX 
  1179.  
  1180.     AntiAirborneVehicle    = Yes
  1181.     AntiAirborneMonster    = Yes
  1182.     HitPassengerPercentage    = 20%
  1183.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  1184.  
  1185.     ProjectileNugget    ; Default arrow
  1186.         ProjectileTemplateName  = MirkwoodArcherSilverthornProjectile
  1187.         WarheadTemplateName     = MirkwoodArcherSilverthornBowWarhead
  1188.     End
  1189. End
  1190.  
  1191. Weapon MirkwoodArcherSilverthornBowBombard ;from RohanArcherBow
  1192.     AttackRange         = ELVEN_MIRKWOOD_ARCHER_BOMBARD_MAXRANGE
  1193.     MinimumAttackRange  = #SUBTRACT( ELVEN_MIRKWOOD_ARCHER_BOMBARD_MINRANGE 75 )
  1194.     
  1195.     RangeBonusMinHeight    = 10
  1196.     RangeBonus        = 1
  1197.     RangeBonusPerFoot    = #MULTIPLY( ELVEN_MIRKWOOD_ARCHER_RANGE .01 )
  1198.     
  1199.     WeaponSpeed            = 321         ; dist/sec 
  1200.     MinWeaponSpeed      = 241
  1201.     MaxWeaponSpeed      = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  1202.     FireFX              = FX_RohanArcherBowWeapon
  1203.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  1204.     HitPercentage       = 100     ;When this weapon is used it will hit exactly 50% of the time.
  1205.     ScatterRadius       = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  1206.  
  1207.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  1208.     DelayBetweenShots   = 0
  1209.     PreAttackDelay      = ROHAN_YEOMAN_PREATTACKDELAY  
  1210.     PreAttackRandomAmount     = 200  
  1211.     PreAttackType       = PER_POSITION
  1212.     FiringDuration      = 0   
  1213.  
  1214.     ClipSize            = 1
  1215.     AutoReloadsClip        = Yes
  1216.     AutoReloadWhenIdle    = 1    
  1217.     ClipReloadTime        = Min:ROHAN_YEOMAN_BOW_RELOADTIME_MIN Max:ROHAN_YEOMAN_BOW_RELOADTIME_MAX
  1218.     ContinuousFireOne    = 0
  1219.     ContinuousFireCoast    = ROHAN_YEOMAN_BOW_RELOADTIME_MAX 
  1220.  
  1221.     AntiAirborneVehicle    = Yes
  1222.     AntiAirborneMonster    = Yes
  1223.     HitPassengerPercentage    = 20%
  1224.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  1225.     
  1226.     NoVictimNeeded        = Yes
  1227.     BombardType            = Yes
  1228.  
  1229.     ProjectileNugget    ; Default arrow
  1230.         ProjectileTemplateName  = MirkwoodArcherSilverthornProjectileBombard
  1231.         WarheadTemplateName     = MirkwoodArcherSilverthornBowBombardWarhead
  1232.     End
  1233. End
  1234.  
  1235. ;----------------------------
  1236. Weapon MirkwoodArcherSilverthornBowWarheadStructural
  1237.       RadiusDamageAffects = ENEMIES 
  1238.     HitStoredTarget = Yes    ; Always hits initial target.
  1239.     
  1240.     DamageNugget                        ; A basic Nugget that just does damage
  1241.            Damage        = STRUCTURE_BOW_DAMAGE
  1242.             Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  1243.             DelayTime     = 0
  1244.             DamageType    = STRUCTURAL ; Moving all structure-based weapons over to Structural Damage for balance reasons - GB
  1245.             DamageFXType  = GOOD_ARROW_PIERCE
  1246.             DeathType     = NORMAL
  1247.             DamageScalar  = 0% NONE +EntMoot +ElvenEntMoot
  1248.       End
  1249.     
  1250.  
  1251.  
  1252.     ; Damage to everything else is increased
  1253.       DamageNugget
  1254.             Damage                = STRUCTURE_BOW_DAMAGE
  1255.         Radius                = 0.0
  1256.             DelayTime             = 0
  1257.         DamageType        = MAGIC
  1258.         DamageFXType        = MAGIC
  1259.             DeathType             = EXPLODED
  1260.     End
  1261.     
  1262.  
  1263.     ; ..and meta impact damage on infantry
  1264.     MetaImpactNugget
  1265.         SpecialObjectFilter = NONE +INFANTRY
  1266.         ShockWaveAmount   = 50.0
  1267.         ShockWaveRadius   = 10.0
  1268.         ShockWaveArc      = 90 ; in degrees to each side 180 is full circle
  1269.         ShockWaveTaperOff = 1.0
  1270.         ShockWaveSpeed    = 0.0
  1271.         ShockWaveZMult    = 1.0
  1272.         OnlyWhenJustDied = Yes
  1273.     End
  1274.  
  1275. End
  1276.  
  1277.  
  1278. ;----------------------------
  1279. Weapon MirkwoodArcherSilverthornBowWarhead
  1280.       RadiusDamageAffects = ENEMIES 
  1281.     HitStoredTarget = Yes    ; Always hits initial target.
  1282.     
  1283.     ; Damage to structures is the same as before
  1284.       DamageNugget
  1285.           ;SpecialObjectFilter = NONE +STRUCTURE
  1286.             Damage        = ELVEN_MIRKWOOD_ARCHER_DAMAGE
  1287.         Radius        = 0.0
  1288.            DelayTime     = 0
  1289.             DamageType    = PIERCE
  1290.             DamageFXType  = GOOD_ARROW_PIERCE
  1291.             DeathType     = EXPLODED
  1292.     End
  1293.  
  1294.     ; Damage to everything else is increased
  1295.       DamageNugget
  1296.           ;SpecialObjectFilter     = ALL -STRUCTURE
  1297.             Damage                = ELVEN_MIRKWOOD_ARCHER_DAMAGE_UPGRADE
  1298.         Radius                = 0.0
  1299.             DelayTime             = 0
  1300.         DamageType        = MAGIC
  1301.         DamageFXType        = MAGIC
  1302.             DeathType             = EXPLODED
  1303.             DamageScalar  = 25% NONE +STRUCTURE
  1304.     End
  1305.     
  1306.     ; ..and meta impact damage on infantry
  1307.     MetaImpactNugget
  1308.         SpecialObjectFilter = NONE +INFANTRY
  1309.         ShockWaveAmount   = 50.0
  1310.         ShockWaveRadius   = 10.0
  1311.         ShockWaveArc      = 90 ; in degrees to each side 180 is full circle
  1312.         ShockWaveTaperOff = 1.0
  1313.         ShockWaveSpeed    = 0.0
  1314.         ShockWaveZMult    = 1.0
  1315.         OnlyWhenJustDied = Yes
  1316.     End
  1317.  
  1318. End
  1319.  
  1320. Weapon MirkwoodArcherSilverthornBowBombardWarhead
  1321.       RadiusDamageAffects = ENEMIES 
  1322.     HitStoredTarget = No
  1323.     
  1324.     ; Damage to structures is the same as before
  1325.       DamageNugget
  1326.           ;SpecialObjectFilter = NONE +STRUCTURE
  1327.             Damage        = ELVEN_MIRKWOOD_ARCHER_DAMAGE
  1328.         Radius        = 0.0
  1329.            DelayTime     = 0
  1330.             DamageType    = PIERCE
  1331.             DamageFXType  = GOOD_ARROW_PIERCE
  1332.             DeathType     = EXPLODED
  1333.     End
  1334.  
  1335.     ; Damage to everything else is increased
  1336.       DamageNugget
  1337.           ;SpecialObjectFilter     = ALL -STRUCTURE
  1338.             Damage                = ELVEN_MIRKWOOD_ARCHER_DAMAGE_UPGRADE
  1339.         Radius                = 0.0
  1340.             DelayTime             = 0
  1341.         DamageType        = MAGIC
  1342.         DamageFXType        = MAGIC
  1343.             DeathType             = EXPLODED
  1344.             DamageScalar  = 25% NONE +STRUCTURE
  1345.     End
  1346.     
  1347.     ; ..and meta impact damage on infantry
  1348.     MetaImpactNugget
  1349.         SpecialObjectFilter = NONE +INFANTRY
  1350.         ShockWaveAmount   = 50.0
  1351.         ShockWaveRadius   = 10.0
  1352.         ShockWaveArc      = 90 ; in degrees to each side 180 is full circle
  1353.         ShockWaveTaperOff = 1.0
  1354.         ShockWaveSpeed    = 0.0
  1355.         ShockWaveZMult    = 1.0
  1356.         OnlyWhenJustDied = Yes
  1357.     End
  1358.  
  1359. End
  1360.  
  1361. Weapon DwarvenAxeThrowWarhead
  1362.       RadiusDamageAffects = ENEMIES 
  1363.     HitStoredTarget = Yes
  1364.       
  1365.       DamageNugget
  1366.         Damage                    = DWARVEN_AXETHROWER_DAMAGE
  1367.         Radius                    = 0.0
  1368.         DelayTime                 = 0
  1369.         DamageType                = PIERCE
  1370.         DamageFXType              = SWORD_SLASH                    ; Not GOOD_ARROW_PIERCE as this creates arrows in the victim :)
  1371.         DeathType                 = EXPLODED
  1372.         DamageScalar  = 5000% NONE +STRUCTURE ; We want to do extra structure damage per JB's request.
  1373.         ForbiddenUpgradeNames    = Upgrade_DwarvenForgedBlades
  1374.     End
  1375.  
  1376.     DamageNugget
  1377.         Damage                    = DWARVEN_AXETHROWER_DAMAGE_FORGEDBLADES
  1378.         Radius                    = 0.0
  1379.         DelayTime                 = 0
  1380.         DamageType                = PIERCE
  1381.         DamageFXType              = SWORD_SLASH                    ; Not GOOD_ARROW_PIERCE as this creates arrows in the victim :)
  1382.         DeathType                 = EXPLODED
  1383.         DamageScalar  = 5000% NONE +STRUCTURE ; We want to do extra structure damage per JB's request.
  1384.         RequiredUpgradeNames    = Upgrade_DwarvenForgedBlades
  1385.     End
  1386. End
  1387.  
  1388. Weapon StructureDwarvenAxeThrowWarhead
  1389.       RadiusDamageAffects = ENEMIES 
  1390.     HitStoredTarget        = Yes
  1391.       DamageNugget
  1392.         Damage                    = KEEP_BOW_DAMAGE
  1393.         Radius                    = 0.0
  1394.         DelayTime                 = 0
  1395.         DamageType                = STRUCTURAL                    ; Moving all structure-based weapons over to Structural Damage for balance reasons - GB
  1396.         DamageFXType              = SWORD_SLASH                    ; Not GOOD_ARROW_PIERCE as this creates arrows in the victim :)
  1397.         DeathType                 = EXPLODED
  1398.     End
  1399. End
  1400.  
  1401. Weapon StructureDwarvenAxeThrowForgedBladeUpgradedWarhead
  1402.       RadiusDamageAffects = ENEMIES 
  1403.     HitStoredTarget        = Yes
  1404.       DamageNugget
  1405.         Damage                    = KEEP_BOW_UPGRADED_DAMAGE
  1406.         Radius                    = 0.0
  1407.         DelayTime                 = 0
  1408.         DamageType                = STRUCTURAL                    ; Moving all structure-based weapons over to Structural Damage for balance reasons - GB
  1409.         DamageFXType              = SWORD_SLASH                    ; Not GOOD_ARROW_PIERCE as this creates arrows in the victim :)
  1410.         DeathType                 = EXPLODED
  1411.     End
  1412.  
  1413.     DamageNugget
  1414.         Damage                    = KEEP_BOW_DAMAGE
  1415.         Radius                    = 0.0
  1416.         DelayTime                 = 0
  1417.         DamageType                = STRUCTURAL                    ; Moving all structure-based weapons over to Structural Damage for balance reasons - GB
  1418.         DamageFXType              = SWORD_SLASH                    ; Not GOOD_ARROW_PIERCE as this creates arrows in the victim :)
  1419.         DeathType                 = EXPLODED
  1420.         
  1421.     End
  1422. End
  1423.  
  1424.  
  1425. Weapon DwarvenAxeThrowBombardWarhead
  1426.       RadiusDamageAffects            = ENEMIES 
  1427.       DamageNugget
  1428.         Damage                    = DWARVEN_AXETHROWER_DAMAGE
  1429.         Radius                    = 0.0
  1430.         DelayTime                 = 0
  1431.         DamageType                = PIERCE
  1432.         DamageFXType              = SWORD_SLASH                    ; Not GOOD_ARROW_PIERCE as this creates arrows in the victim :)
  1433.         DeathType                 = EXPLODED
  1434.         DamageScalar  = 5000% NONE +STRUCTURE ; We want to do extra structure damage per JB's request.
  1435.         ForbiddenUpgradeNames    = Upgrade_DwarvenForgedBlades
  1436.     End
  1437.       DamageNugget
  1438.         Damage                    = DWARVEN_AXETHROWER_DAMAGE_FORGEDBLADES
  1439.         Radius                    = 0.0
  1440.         DelayTime                 = 0
  1441.         DamageType                = PIERCE
  1442.         DamageFXType              = SWORD_SLASH                    ; Not GOOD_ARROW_PIERCE as this creates arrows in the victim :)
  1443.         DeathType                 = EXPLODED
  1444.         DamageScalar  = 5000% NONE +STRUCTURE ; We want to do extra structure damage per JB's request.
  1445.         RequiredUpgradeNames    = Upgrade_DwarvenForgedBlades
  1446.     End
  1447. End
  1448.  
  1449. ;----------------------------
  1450. Weapon RohanArcherBowWarhead
  1451.       RadiusDamageAffects = ENEMIES 
  1452.     HitStoredTarget = Yes    ; Always hits initial target.
  1453.       DamageNugget                        ; A basic Nugget that just does damage
  1454.         Damage        = ROHAN_YEOMAN_DAMAGE
  1455.       Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  1456.         DelayTime     = 0
  1457.         DamageType    = PIERCE
  1458.         DamageFXType  = GOOD_ARROW_PIERCE
  1459.         DeathType     = EXPLODED
  1460.     End
  1461. End
  1462.  
  1463. Weapon RohanArcherBowFireWarhead
  1464.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  1465.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  1466.     HitStoredTarget = Yes    ; Always hits initial target.
  1467.     
  1468.     DamageNugget                        ; A basic Nugget that just does damage
  1469.         Damage        = ROHAN_YEOMAN_FIRE_UPGRADE_DAMAGE_FIRE
  1470.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  1471.         DelayTime     = 0
  1472.         DamageType    = FLAME
  1473.         DamageFXType  = GOOD_ARROW_PIERCE
  1474.         DeathType     = BURNED
  1475.         AcceptDamageAdd = No
  1476.         DamageScalar  = 25% ALL -STRUCTURE
  1477.     End
  1478.  
  1479.     DamageNugget                        ; A basic Nugget that just does damage
  1480.         Damage        = 1
  1481.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  1482.         DamageType    = FLAME
  1483.         DamageFXType  = FLAME
  1484.         DeathType     = BURNED
  1485.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  1486.     End
  1487.  
  1488.     DamageNugget                        ; A basic Nugget that just does damage
  1489.         Damage        = ROHAN_YEOMAN_FIRE_UPGRADE_DAMAGE
  1490.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  1491.         DelayTime     = 0
  1492.         DamageType    = PIERCE
  1493.         DamageFXType  = GOOD_ARROW_PIERCE
  1494.         DeathType     = NORMAL
  1495.     End
  1496. End
  1497.  
  1498. Weapon RohanArcherBowBombardFireWarhead
  1499.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  1500.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  1501.     
  1502.     DamageNugget                        ; A basic Nugget that just does damage
  1503.         Damage        = ROHAN_YEOMAN_FIRE_UPGRADE_DAMAGE_FIRE
  1504.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  1505.         DelayTime     = 0
  1506.         DamageType    = FLAME
  1507.         DamageFXType  = GOOD_ARROW_PIERCE
  1508.         DeathType     = BURNED
  1509.         AcceptDamageAdd = No
  1510.         DamageScalar  = 25% ALL -STRUCTURE
  1511.     End
  1512.  
  1513.     DamageNugget                        ; A basic Nugget that just does damage
  1514.         Damage        = 1
  1515.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  1516.         DamageType    = FLAME
  1517.         DamageFXType  = FLAME
  1518.         DeathType     = BURNED
  1519.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  1520.     End
  1521.     DamageNugget                        ; A basic Nugget that just does damage
  1522.         Damage        = ROHAN_YEOMAN_FIRE_UPGRADE_DAMAGE
  1523.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  1524.         DelayTime     = 0
  1525.         DamageType    = PIERCE
  1526.         DamageFXType  = GOOD_ARROW_PIERCE
  1527.         DeathType     = NORMAL
  1528.     End
  1529. End
  1530. ;------------------------------------------------------------------------------
  1531. ;Weapon RohanArcherBowFireArrow       ; BALANCE Archer Weapon
  1532. ;    AttackRange               = ROHAN_YEOMAN_RANGE
  1533. ;    WeaponSpeed               = 321         ; dist/sec 
  1534. ;    MinWeaponSpeed            = 241
  1535. ;    MaxWeaponSpeed            = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  1536. ;    FireFX                    = FX_RohanArcherBowWeapon
  1537. ;    ScaleWeaponSpeed          = Yes ; Used for lob weapons, scales speed proportional to range
  1538. ;    HitPercentage             = 100     ;When this weapon is used it will hit exactly 50% of the time.
  1539. ;    ScatterRadius             = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  1540. ;    DelayBetweenShots         = Min:1000  Max:1100
  1541. ;    PreAttackDelay            = 400    
  1542. ;    PreAttackRandomAmount     = 200    ; amount of additional preattack variance for archer type attacks only  
  1543. ;    PreAttackType             = PER_SHOT ; Do the delay each time we attack a new target
  1544. ;    FiringDuration            = 800    ; Duration of the archer firing shot is 500ms.
  1545. ;    IsAimingWeapon            = Yes
  1546. ;     AntiAirborneVehicle      = Yes
  1547. ;    AntiAirborneMonster        = Yes
  1548. ;    ProjectileNugget          ; Fire arrow available through fire upgrade
  1549. ;        ProjectileTemplateName  = GoodFactionFireArrow
  1550. ;        WarheadTemplateName     = GondorArcherBowFireWarhead
  1551. ;      End
  1552. ;End
  1553.  
  1554.  
  1555. ;------------------------------------------------------------------------------
  1556. Weapon RohanElvenBow     ; BALANCE Elven warrior bow Weapon
  1557.     AttackRange         = ROHAN_ELVEN_RANGE
  1558.     
  1559.     RangeBonusMinHeight    = 10
  1560.     RangeBonus        = 1
  1561.     RangeBonusPerFoot    = #MULTIPLY( ROHAN_ELVEN_RANGE .01 )
  1562.     
  1563.     WeaponSpeed         = 321         ; dist/sec 
  1564.     MinWeaponSpeed      = 241
  1565.     MaxWeaponSpeed      = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  1566.     FireFX              = FX_RohanArcherBowWeapon
  1567.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  1568.     HitPercentage       = 100     ;When this weapon is used it will hit exactly 50% of the time.
  1569.     ScatterRadius       = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  1570.       
  1571.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  1572.     DelayBetweenShots   = 0
  1573.     PreAttackDelay      = ROHAN_ELVENWARRIOR_BOW_PREATTACKDELAY 
  1574.     ;PreAttackRandomAmount     = 200   
  1575.     PreAttackType       = PER_POSITION
  1576.     FiringDuration      = 0
  1577.  
  1578.     OverrideVoiceAttackSound            = ElvenWarriorVoiceAttackBow
  1579.     OverrideVoiceEnterStateAttackSound    = ElvenWarriorVoiceEnterStateAttackBow
  1580.     ;OverrideVoiceAttackAirSound        = ElvenWarriorVoiceAttackBow
  1581.     ;OverrideVoiceAttackStructureSound    = ElvenWarriorVoiceAttackBow
  1582.     ;OverrideVoiceAttackMachineSound    = ElvenWarriorVoiceAttackBow
  1583.       
  1584.     ClipSize            = 1
  1585.     AutoReloadsClip        = Yes
  1586.     AutoReloadWhenIdle    = 1    
  1587.     ClipReloadTime        = Min:ROHAN_ELVENWARRIOR_BOW_RELOADTIME_MIN Max:ROHAN_ELVENWARRIOR_BOW_RELOADTIME_MAX
  1588.     ContinuousFireOne    = 0
  1589.     ContinuousFireCoast    = ROHAN_ELVENWARRIOR_BOW_RELOADTIME_MAX
  1590.       
  1591.     AntiAirborneVehicle    = Yes
  1592.     AntiAirborneMonster    = Yes
  1593.     HitPassengerPercentage    = 20%
  1594.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  1595.  
  1596.     ProjectileNugget                    ; Default arrow
  1597.         ProjectileTemplateName    = GoodFactionArrow
  1598.         WarheadTemplateName       = ElvenBowWarhead
  1599.         ForbiddenUpgradeNames     = Upgrade_ElvenSilverthornArrows
  1600.     End
  1601.     ProjectileNugget                    ; Fire arrow available from fire arrow upgrade
  1602.         ProjectileTemplateName    = GoodFactionFireArrow
  1603.         WarheadTemplateName       = ElvenBowSilverthorneWarhead
  1604.         RequiredUpgradeNames      = Upgrade_ElvenSilverthornArrows
  1605.       End
  1606. End
  1607.  
  1608. ;----------------------------
  1609. Weapon ElvenBowWarhead
  1610.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS ;ALLIES (4/23/04 removed friendly fire)
  1611.   RadiusDamageAffects = ENEMIES NEUTRALS ALLIES NOT_SIMILAR
  1612.   HitStoredTarget = Yes    ; Always hits initial target.
  1613.   DamageNugget                        ; A basic Nugget that just does damage
  1614.     Damage        = ROHAN_ELVEN_DAMAGE
  1615.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  1616.     DelayTime     = 0
  1617.     DamageType    = PIERCE
  1618.     DamageFXType  = GOOD_ARROW_PIERCE
  1619.     DeathType     = NORMAL
  1620.   End
  1621. End
  1622.  
  1623. ;------------------------------------------------------------------------------
  1624. Weapon LorienElvenBow     ; BALANCE Lorien Archer weapon
  1625.     AttackRange         = ELVEN_LORIENARCHER_ARCHER_RANGE
  1626.     
  1627.     RangeBonusMinHeight    = 10
  1628.     RangeBonus        = 1
  1629.     RangeBonusPerFoot    = #MULTIPLY( ELVEN_LORIENARCHER_ARCHER_RANGE .01 )
  1630.     
  1631.     WeaponSpeed         = 321         ; dist/sec 
  1632.     MinWeaponSpeed      = 241
  1633.     MaxWeaponSpeed      = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  1634.     FireFX              = FX_RohanArcherBowWeapon
  1635.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  1636.     HitPercentage       = 100     ;When this weapon is used it will hit exactly 50% of the time.
  1637.     ScatterRadius       = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  1638.       
  1639.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  1640.     DelayBetweenShots   = 0
  1641.     PreAttackDelay      = ROHAN_ELVENWARRIOR_BOW_PREATTACKDELAY 
  1642.     ;PreAttackRandomAmount     = 200   
  1643.     PreAttackType       = PER_POSITION
  1644.     FiringDuration      = 0
  1645.  
  1646.     OverrideVoiceAttackSound            = ElvenWarriorVoiceAttackBow
  1647.     OverrideVoiceEnterStateAttackSound    = ElvenWarriorVoiceEnterStateAttackBow
  1648.     ;OverrideVoiceAttackAirSound        = ElvenWarriorVoiceAttackBow
  1649.     ;OverrideVoiceAttackStructureSound    = ElvenWarriorVoiceAttackBow
  1650.     ;OverrideVoiceAttackMachineSound    = ElvenWarriorVoiceAttackBow
  1651.       
  1652.     ClipSize            = 1
  1653.     AutoReloadsClip        = Yes
  1654.     AutoReloadWhenIdle    = 1    
  1655.     ClipReloadTime        = Min:ROHAN_ELVENWARRIOR_BOW_RELOADTIME_MIN Max:ROHAN_ELVENWARRIOR_BOW_RELOADTIME_MAX
  1656.     ContinuousFireOne    = 0
  1657.     ContinuousFireCoast    = ROHAN_ELVENWARRIOR_BOW_RELOADTIME_MAX
  1658.       
  1659.     AntiAirborneVehicle    = Yes
  1660.     AntiAirborneMonster    = Yes
  1661.     HitPassengerPercentage    = 20%
  1662.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  1663.  
  1664.     ProjectileNugget                    ; Default arrow
  1665.         ProjectileTemplateName    = GoodFactionArrow
  1666.         WarheadTemplateName       = LorienBowWarhead
  1667.         ForbiddenUpgradeNames     = Upgrade_ElvenSilverthornArrows
  1668.     End
  1669.     ProjectileNugget                    ; Fire arrow available from fire arrow upgrade
  1670.         ProjectileTemplateName    = MirkwoodArcherSilverthornProjectile
  1671.         WarheadTemplateName       = LorienBowSilverthorneWarhead
  1672.         RequiredUpgradeNames      = Upgrade_ElvenSilverthornArrows
  1673.       End
  1674. End
  1675.  
  1676. ;------------------------------------------------------------------------------
  1677. Weapon LorienMallornTreeBow     ; BALANCE Lorien Archer weapon
  1678.     AttackRange         = ELVEN_LORIENARCHER_ARCHER_RANGE
  1679.  
  1680.     WeaponSpeed         = 321         ; dist/sec 
  1681.     MinWeaponSpeed      = 241
  1682.     MaxWeaponSpeed      = 481        ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  1683.     FireFX              = FX_RohanArcherBowWeapon
  1684.     ScaleWeaponSpeed    = Yes        ; Used for lob weapons, scales speed proportional to range
  1685.     HitPercentage       = 100        ;When this weapon is used it will hit exactly 50% of the time.
  1686.     ScatterRadius       = 16.0        ;When this weapon misses it can randomly miss by as much as this distance.
  1687.       
  1688.     AcceptableAimDelta    = 20        ; prevent twitchy reaiming in horde on horde
  1689.     DelayBetweenShots   = 10
  1690.     PreAttackDelay      = ROHAN_ELVENWARRIOR_BOW_PREATTACKDELAY 
  1691.     PreAttackType       = PER_POSITION
  1692.     FiringDuration      = 100
  1693.  
  1694.     OverrideVoiceAttackSound            = ElvenWarriorVoiceAttackBow
  1695.       
  1696.     ClipSize            = 1
  1697.     AutoReloadsClip        = Yes
  1698.     AutoReloadWhenIdle    = 1    
  1699.     ClipReloadTime        = 800
  1700.     ContinuousFireOne    = 0
  1701.     ContinuousFireCoast    = ROHAN_ELVENWARRIOR_BOW_RELOADTIME_MAX
  1702.       
  1703.     AntiAirborneVehicle    = Yes
  1704.     AntiAirborneMonster    = Yes
  1705.     HitPassengerPercentage    = 20%
  1706.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  1707.  
  1708.     ProjectileNugget                    ; Default arrow
  1709.         ProjectileTemplateName    = GoodFactionArrow
  1710.         WarheadTemplateName       = StructureBowWarhead
  1711.     End
  1712. End
  1713.  
  1714. ;------------------------------------------------------------------------------
  1715. Weapon GarrisonedUnitBow     ; BALANCE
  1716.     AttackRange         = ELVEN_LORIENARCHER_ARCHER_RANGE
  1717.     CanFireWhileMoving    = Yes
  1718.     RangeBonusMinHeight    = 10
  1719.     RangeBonus        = 1
  1720.     RangeBonusPerFoot    = #MULTIPLY( ELVEN_LORIENARCHER_ARCHER_RANGE .01 )
  1721.     
  1722.     WeaponSpeed         = 321         ; dist/sec 
  1723.     MinWeaponSpeed      = 241
  1724.     MaxWeaponSpeed      = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  1725.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  1726.     HitPercentage       = 100     ;When this weapon is used it will hit exactly 50% of the time.
  1727.     ScatterRadius       = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  1728.       
  1729.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  1730.     DelayBetweenShots   = 0
  1731.     PreAttackDelay      = ROHAN_ELVENWARRIOR_BOW_PREATTACKDELAY 
  1732.     PreAttackType       = PER_POSITION
  1733.     FiringDuration      = 0
  1734.  
  1735.     ClipSize            = 1
  1736.     AutoReloadsClip        = Yes
  1737.     AutoReloadWhenIdle    = 1    
  1738.     ClipReloadTime        = Min:ROHAN_ELVENWARRIOR_BOW_RELOADTIME_MIN Max:ROHAN_ELVENWARRIOR_BOW_RELOADTIME_MAX
  1739.     ContinuousFireOne    = 0
  1740.     ContinuousFireCoast    = ROHAN_ELVENWARRIOR_BOW_RELOADTIME_MAX
  1741.       
  1742.     AntiAirborneVehicle    = Yes
  1743.     AntiAirborneMonster    = Yes
  1744.     HitPassengerPercentage    = 20%
  1745.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  1746.  
  1747.     ProjectileNugget
  1748.         ProjectileTemplateName    = GoodFactionArrow
  1749.         WarheadTemplateName       = LorienBowWarhead
  1750.     End
  1751. End
  1752.  
  1753. Weapon GarrisonedUnitBowHordeRangefinder
  1754.     AttackRange            = #SUBTRACT( ELVEN_LORIENARCHER_ARCHER_RANGE 100 )  ; Slightly shorter than the archer's actual weapon
  1755.     
  1756.     RangeBonusMinHeight    = 10
  1757.     RangeBonus        = 1
  1758.     RangeBonusPerFoot    = #MULTIPLY( ELVEN_LORIENARCHER_ARCHER_RANGE .01 )
  1759.     
  1760.     DelayBetweenShots        = 1000
  1761.     LeechRangeWeapon        = Yes
  1762.     AcceptableAimDelta        = 45
  1763.     AntiAirborneVehicle        = Yes
  1764.     AntiAirborneMonster        = Yes
  1765.     CanFireWhileMoving        = Yes        ; When aboard a ship.
  1766.     FinishAttackOnceStarted = No
  1767.     HordeAttackNugget
  1768.     End
  1769. End
  1770.  
  1771. Weapon LorienElvenBowBombard     ; BALANCE Lorien Archer weapon
  1772.     AttackRange         = ELVEN_LORIENARCHER_ARCHER_BOMBARD_MAXRANGE
  1773.     MinimumAttackRange  = #SUBTRACT( ELVEN_LORIENARCHER_ARCHER_BOMBARD_MINRANGE 75 )
  1774.     
  1775.     RangeBonusMinHeight    = 10
  1776.     RangeBonus        = 1
  1777.     RangeBonusPerFoot    = #MULTIPLY( ELVEN_LORIENARCHER_ARCHER_BOMBARD_MAXRANGE .01 )
  1778.     
  1779.     WeaponSpeed         = 321         ; dist/sec 
  1780.     MinWeaponSpeed      = 241
  1781.     MaxWeaponSpeed      = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  1782.     FireFX              = FX_RohanArcherBowWeapon
  1783.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  1784.     HitPercentage       = 0     ;Always scatter
  1785.     ScatterRadius       = ARCHER_BOMBARD_SCATTER_RADIUS     ;When this weapon misses it can randomly miss by as much as this distance.
  1786.       
  1787.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  1788.     DelayBetweenShots   = 0
  1789.     PreAttackDelay      = ROHAN_ELVENWARRIOR_BOW_PREATTACKDELAY 
  1790.     ;PreAttackRandomAmount     = 200   
  1791.     PreAttackType       = PER_POSITION
  1792.     FiringDuration      = 0
  1793.  
  1794.     OverrideVoiceAttackSound            = ElvenWarriorVoiceAttackBow
  1795.     OverrideVoiceEnterStateAttackSound    = ElvenWarriorVoiceEnterStateAttackBow
  1796.     ;OverrideVoiceAttackAirSound        = ElvenWarriorVoiceAttackBow
  1797.     ;OverrideVoiceAttackStructureSound    = ElvenWarriorVoiceAttackBow
  1798.     ;OverrideVoiceAttackMachineSound    = ElvenWarriorVoiceAttackBow
  1799.       
  1800.     ClipSize            = 1
  1801.     AutoReloadsClip        = Yes
  1802.     AutoReloadWhenIdle    = 1    
  1803.     ClipReloadTime        = Min:ROHAN_ELVENWARRIOR_BOW_RELOADTIME_MIN Max:ROHAN_ELVENWARRIOR_BOW_RELOADTIME_MAX
  1804.     ContinuousFireOne    = 0
  1805.     ContinuousFireCoast    = ROHAN_ELVENWARRIOR_BOW_RELOADTIME_MAX
  1806.       
  1807.     AntiAirborneVehicle    = Yes
  1808.     AntiAirborneMonster    = Yes
  1809.     HitPassengerPercentage    = 20%
  1810.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  1811.     
  1812.     NoVictimNeeded        = Yes
  1813.     BombardType            = Yes
  1814.  
  1815.     ProjectileNugget                    ; Default arrow
  1816.         ProjectileTemplateName    = GoodFactionArrowBombard
  1817.         WarheadTemplateName       = LorienBowBombardWarhead
  1818.         ForbiddenUpgradeNames     = Upgrade_ElvenSilverthornArrows
  1819.     End
  1820.     ProjectileNugget                    ; Fire arrow available from fire arrow upgrade
  1821.         ProjectileTemplateName    = MirkwoodArcherSilverthornProjectileBombard
  1822.         WarheadTemplateName       = LorienBowBombardSilverthorneWarhead
  1823.         RequiredUpgradeNames      = Upgrade_ElvenSilverthornArrows
  1824.       End
  1825. End
  1826.  
  1827. ;----------------------------
  1828. Weapon LorienBowWarhead
  1829.   ; ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS ;ALLIES (4/23/04 removed friendly fire)
  1830.   RadiusDamageAffects = ENEMIES ;(12/15/05 removed everything buy ENEMIES since that's how most other bows work) NEUTRALS ALLIES NOT_SIMILAR
  1831.   HitStoredTarget = Yes    ; Always hits initial target.
  1832.   DamageNugget                        ; A basic Nugget that just does damage
  1833.     Damage        = ELVEN_LORIENARCHER_ARCHER_DAMAGE
  1834.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  1835.     DelayTime     = 0
  1836.     DamageType    = PIERCE
  1837.     DamageFXType  = GOOD_ARROW_PIERCE
  1838.     DeathType     = NORMAL
  1839.   End
  1840. End
  1841.  
  1842. Weapon LorienBowBombardWarhead
  1843.   ; ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS ;ALLIES (4/23/04 removed friendly fire)
  1844.   RadiusDamageAffects = ENEMIES ;(12/15/05 removed everything buy ENEMIES since that's how most other bows work)  NEUTRALS ALLIES NOT_SIMILAR
  1845.   DamageNugget                        ; A basic Nugget that just does damage
  1846.     Damage        = ELVEN_LORIENARCHER_ARCHER_DAMAGE
  1847.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  1848.     DelayTime     = 0
  1849.     DamageType    = PIERCE
  1850.     DamageFXType  = GOOD_ARROW_PIERCE
  1851.     DeathType     = NORMAL
  1852.   End
  1853. End
  1854.  
  1855. ;----------------------------
  1856. Weapon LorienBowSilverthorneWarhead
  1857.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  1858.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  1859.     HitStoredTarget = Yes    ; Always hits initial target.
  1860.     
  1861.     DamageNugget                        ; A basic Nugget that just does damage
  1862.         Damage        = ELVEN_LORIENARCHER_ARCHER_DAMAGE
  1863.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  1864.         DelayTime     = 0
  1865.         DamageType    = PIERCE
  1866.         DamageFXType  = GOOD_ARROW_PIERCE
  1867.         DeathType     = NORMAL
  1868.     End
  1869.  
  1870.     ; Damage to everything else is increased
  1871.       DamageNugget
  1872.           ;SpecialObjectFilter = ALL -STRUCTURE
  1873.             Damage            = ELVEN_LORIENARCHER_ARCHER_DAMAGE_UPGRADE
  1874.         Radius            = 0.0
  1875.             DelayTime         = 0
  1876.         DamageType    = MAGIC
  1877.         DamageFXType    = MAGIC
  1878.         DeathType         = EXPLODED
  1879.         DamageScalar  = 25% NONE +STRUCTURE
  1880.     End
  1881.     
  1882.     ; ..and meta impact damage on infantry
  1883.     MetaImpactNugget
  1884.         SpecialObjectFilter = NONE +INFANTRY
  1885.         ShockWaveAmount   = 50.0
  1886.         ShockWaveRadius   = 10.0
  1887.         ShockWaveArc      = 90 ; in degrees to each side 180 is full circle
  1888.         ShockWaveTaperOff = 1.0
  1889.         ShockWaveSpeed    = 0.0
  1890.         ShockWaveZMult    = 1.0
  1891.         OnlyWhenJustDied = Yes
  1892.     End
  1893.     
  1894. End
  1895.  
  1896. Weapon LorienBowBombardSilverthorneWarhead
  1897.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  1898.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  1899.     
  1900.     DamageNugget                        ; A basic Nugget that just does damage
  1901.         Damage        = ELVEN_LORIENARCHER_ARCHER_DAMAGE
  1902.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  1903.         DelayTime     = 0
  1904.         DamageType    = PIERCE
  1905.         DamageFXType  = GOOD_ARROW_PIERCE
  1906.         DeathType     = NORMAL
  1907.     End
  1908.  
  1909.     ; Damage to everything else is increased
  1910.       DamageNugget
  1911.           ;SpecialObjectFilter = ALL -STRUCTURE
  1912.             Damage            = ELVEN_LORIENARCHER_ARCHER_DAMAGE_UPGRADE
  1913.         Radius            = 0.0
  1914.             DelayTime         = 0
  1915.         DamageType    = MAGIC
  1916.         DamageFXType    = MAGIC
  1917.         DeathType         = EXPLODED
  1918.         DamageScalar  = 25% NONE +STRUCTURE
  1919.     End
  1920.     
  1921.     ; ..and meta impact damage on infantry
  1922.     MetaImpactNugget
  1923.         SpecialObjectFilter = NONE +INFANTRY
  1924.         ShockWaveAmount   = 50.0
  1925.         ShockWaveRadius   = 10.0
  1926.         ShockWaveArc      = 90 ; in degrees to each side 180 is full circle
  1927.         ShockWaveTaperOff = 1.0
  1928.         ShockWaveSpeed    = 0.0
  1929.         ShockWaveZMult    = 1.0
  1930.         OnlyWhenJustDied = Yes
  1931.     End
  1932.     
  1933. End
  1934.  
  1935. ;----------------------------
  1936. Weapon ElvenBowSilverthorneWarhead
  1937.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  1938.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  1939.     HitStoredTarget = Yes    ; Always hits initial target.
  1940.     
  1941.     DamageNugget                        ; A basic Nugget that just does damage
  1942.         Damage        = ROHAN_ELVEN_FIRE_UPGRADE_DAMAGE
  1943.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  1944.         DelayTime     = 0
  1945.         DamageType    = PIERCE
  1946.         DamageFXType  = GOOD_ARROW_PIERCE
  1947.         DeathType     = NORMAL
  1948.     End
  1949.  
  1950.     ; Damage to everything else is increased
  1951.       DamageNugget
  1952.           SpecialObjectFilter = ALL -STRUCTURE
  1953.         Damage        = 5
  1954.         Radius        = 0.0
  1955.         DelayTime     = 0
  1956.         DamageType        = MAGIC
  1957.         DamageFXType    = MAGIC
  1958.         DeathType     = EXPLODED
  1959.     End
  1960.     
  1961.     ; ..and meta impact damage on infantry
  1962.     MetaImpactNugget
  1963.         SpecialObjectFilter = NONE +INFANTRY
  1964.         ShockWaveAmount   = 50.0
  1965.         ShockWaveRadius   = 10.0
  1966.         ShockWaveArc      = 90 ; in degrees to each side 180 is full circle
  1967.         ShockWaveTaperOff = 1.0
  1968.         ShockWaveSpeed    = 0.0
  1969.         ShockWaveZMult    = 1.0
  1970.         OnlyWhenJustDied = Yes
  1971.     End
  1972.     
  1973. End
  1974.  
  1975.  
  1976.  
  1977. ;----------------------------
  1978. Weapon RohanElvenBowWarhead
  1979.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS ;ALLIES (4/23/04 removed friendly fire)
  1980.   RadiusDamageAffects = ENEMIES NEUTRALS ALLIES NOT_SIMILAR
  1981.   HitStoredTarget = Yes    ; Always hits initial target.
  1982.   DamageNugget                        ; A basic Nugget that just does damage
  1983.     Damage        = ROHAN_ELVEN_DAMAGE
  1984.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  1985.     DelayTime     = 0
  1986.     DamageType    = PIERCE
  1987.     DamageFXType  = GOOD_ARROW_PIERCE
  1988.     DeathType     = NORMAL
  1989.   End
  1990. End
  1991.  
  1992.  
  1993. ;----------------------------
  1994. Weapon RohanElvenBowFireWarhead
  1995.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  1996.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  1997.     HitStoredTarget = Yes    ; Always hits initial target.
  1998.     
  1999.     DamageNugget                        
  2000.         Damage        = ROHAN_ELVEN_FIRE_UPGRADE_DAMAGE_FLAME
  2001.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  2002.         DelayTime     = 0
  2003.         DamageType    = FLAME
  2004.         DamageFXType  = GOOD_ARROW_PIERCE
  2005.         DeathType     = BURNED
  2006.         AcceptDamageAdd = No
  2007.         DamageScalar  = 25% ALL -STRUCTURE
  2008.     End
  2009.  
  2010.     DamageNugget                        ; A basic Nugget that just does damage
  2011.         Damage        = 1
  2012.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  2013.         DamageType    = FLAME
  2014.         DamageFXType  = FLAME
  2015.         DeathType     = BURNED
  2016.         AcceptDamageAdd = No
  2017.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  2018.     End
  2019.  
  2020.     DamageNugget                        ; A basic Nugget that just does damage
  2021.         Damage        = ROHAN_ELVEN_FIRE_UPGRADE_DAMAGE
  2022.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  2023.         DelayTime     = 0
  2024.         DamageType    = PIERCE
  2025.         DamageFXType  = GOOD_ARROW_PIERCE
  2026.         DeathType     = NORMAL
  2027.     End
  2028. End
  2029.  
  2030. //-----------------------------------------------------------------------------
  2031. // This is the attack with rock in hand
  2032. Weapon ElvenVigilantEntRockThrow // BALANCE VigilantEnt Weapon Rock
  2033.     HoldDuringReload            = Yes                            // Cache any commands during the reload so we don't wander off half way through reload.
  2034.     AttackRange                    = ELVEN_VIGILANTENT_ROCK_RANGE
  2035.     MinimumAttackRange             = ELVEN_VIGILANTENT_ROCK_RANGE_MIN
  2036.     
  2037.     WeaponSpeed                    = 200.0                            // dist/sec (huge value == effectively instant)
  2038.     FireFX                        = FX_EntThrowSmallRock
  2039.     PreAttackDelay                = 800
  2040.     FiringDuration                = 3200
  2041.     PreAttackType                = PER_SHOT                        // Do the delay each time we attack a new target
  2042.     DelayBetweenShots            = 6000
  2043.     HitPercentage                = 0                                // never auto hits, always hits ground
  2044.     ScatterRadius                = 4.0                            // When this weapon misses it can randomly miss by as much as this distance.
  2045.     IsAimingWeapon                = Yes                            // Shooter will use his AimWeaponBehavior to get extra model condition flags
  2046.     NoVictimNeeded                = Yes                            // Need no target
  2047.     LeechRangeWeapon            = Yes
  2048.     AcceptableAimDelta            = 90
  2049.  
  2050.     HoldAfterFiringDelay        = 4000
  2051.     AutoReloadWhenIdle            = 2500
  2052.     AutoReloadsClip             = No
  2053.     ClipReloadTime                 = 4250
  2054.     
  2055.     // A Nugget that creates an Object and sends it to the target with a Warhead
  2056.     ProjectileNugget                                
  2057.         ProjectileTemplateName    = VigilantEntRock
  2058.         WarheadTemplateName        = VigilantEntRockWarhead
  2059.     End
  2060.     
  2061.     ProjectileNugget                                                    ; This nugget is to create a revealing object, so fire
  2062.         AlwaysAttackHereOffset    = X:0 Y:0 Z:0                            ; it directly on top of us, and just use an empty warhead
  2063.         UseAlwaysAttackOffset    = Yes                                    ; so we don't assert.
  2064.         ProjectileTemplateName  = ShroudRevealer_Bombard
  2065.         WarheadTemplateName     = ShipRevealBombardWarhead_Dummy
  2066.     End
  2067. End
  2068.  
  2069. //----------------------------
  2070. Weapon VigilantEntRockWarhead
  2071.     //FireFX                = FX_ImpactEntRock
  2072.     ProjectileCollidesWith    = ENEMIES NEUTRAL STRUCTURES WALLS ALLIES
  2073.     RadiusDamageAffects        = ENEMIES NEUTRALS ALLIES
  2074.   
  2075.     // A basic Nugget that just does damage
  2076.     DamageNugget                        
  2077.         Damage        = ELVEN_VIGILANTENT_ROCK_DAMAGE
  2078.         Radius        = 20.0
  2079.         DelayTime     = 0
  2080.         DamageType    = SIEGE ; BALANCE BABY -GB
  2081.         DamageFXType  = SMALL_ROCK
  2082.         DeathType     = NORMAL
  2083.     End
  2084.  
  2085.     // A Nugget that throws things back with force
  2086.     MetaImpactNugget                    
  2087. ;        HeroResist            = .75
  2088.         ShockWaveAmount   = 25.0
  2089.         ShockWaveRadius   = 20.0
  2090.         ShockWaveTaperOff = 0.75
  2091.         //ShockWaveZMult    = 1.20
  2092.     End
  2093. End
  2094.  
  2095. ;------------------------------------------------------------------------------
  2096. ; This is the attack with rock in hand
  2097. ; Treebeard
  2098. Weapon RohanTreeBeardRockThrow  ; BALANCE TreeBeard Weapon Rock
  2099.     IdleAfterFiringDelay        = 2000                            ; Yes if I want to throw rock, then wait until the followthrough is complete, then go idle.
  2100.     AttackRange                    = ROHAN_TREEBEARD_ROCK_RANGE
  2101.     
  2102.     RangeBonusMinHeight    = 10
  2103.     RangeBonus        = 1
  2104.     RangeBonusPerFoot    = #MULTIPLY( ROHAN_TREEBEARD_ROCK_RANGE .01 )
  2105.     
  2106.     WeaponSpeed                    = 200.0                            ; dist/sec (huge value == effectively instant)
  2107.     ProjectileFilterInContainer    = ANY +ROCK +INFANTRY            ; We don't make the projectile, it is in our Contain module.
  2108.     FireFX                        = FX_EntThrowSmallRock
  2109.     PreAttackDelay                = 1400
  2110.     PreAttackType                = PER_SHOT                        ; Do the delay each time we attack a new target
  2111.     HitPercentage                = 0                                ; never auto hits, always hits ground
  2112.     ScatterRadius                = 4.0                            ; When this weapon misses it can randomly miss by as much as this distance.
  2113.     FiringDuration                = 2000
  2114.     DelayBetweenShots            = 4000
  2115.     IsAimingWeapon                = Yes                            ; Shooter will use his AimWeaponBehavior to get extra model condition flags
  2116.     NoVictimNeeded                = Yes                            ; Need no target
  2117.     LeechRangeWeapon            = Yes
  2118.  
  2119.     ProjectileNugget                        ; A Nugget that creates an Object and sends it to the target with a Warhead
  2120.         WarheadTemplateName         = RohanTreeBeardRockThrowWarhead
  2121.     End
  2122.     
  2123.     ProjectileNugget                                                    ; This nugget is to create a revealing object, so fire
  2124.         AlwaysAttackHereOffset    = X:0 Y:0 Z:0                            ; it directly on top of us, and just use an empty warhead
  2125.         UseAlwaysAttackOffset    = Yes                                    ; so we don't assert.
  2126.         ProjectileTemplateName  = ShroudRevealer_Bombard
  2127.         WarheadTemplateName     = ShipRevealBombardWarhead_Dummy
  2128.     End
  2129. End
  2130.  
  2131. ;----------------------------------------------------------------------------------------------------------------
  2132. ;
  2133. ;    This is the toggle weapon for ents. They will reload, throw, reload straight away, and constantly hold a rock.
  2134. ;
  2135. Weapon RohanEntRockThrow
  2136.     HoldDuringReload            = Yes                            ; Cache any commands during the reload so we don't wander off half way through reload.
  2137.     AttackRange                    = ROHAN_TREEBEARD_ROCK_RANGE
  2138.     
  2139.     RangeBonusMinHeight            = 10
  2140.     RangeBonus                    = 1
  2141.     RangeBonusPerFoot            = #MULTIPLY( ROHAN_TREEBEARD_ROCK_RANGE .01 )
  2142.     
  2143.     WeaponSpeed                    = 200.0                            ; dist/sec (huge value == effectively instant)
  2144.     FireFX                        = FX_EntThrowSmallRock
  2145.     PreAttackDelay                = 2200
  2146.     FiringDuration                = 3000
  2147.     PreAttackType                = PER_SHOT                        ; Do the delay each time we attack a new target
  2148.     DelayBetweenShots            = 6000
  2149.     HitPercentage                = 0                                ; never auto hits, always hits ground
  2150.     ScatterRadius                = 4.0                            ; When this weapon misses it can randomly miss by as much as this distance.
  2151.     IsAimingWeapon                = Yes                            ; Shooter will use his AimWeaponBehavior to get extra model condition flags
  2152.     NoVictimNeeded                = Yes                            ; Need no target
  2153.     LeechRangeWeapon            = Yes
  2154.  
  2155.     HoldAfterFiringDelay        = 5200
  2156.     AutoReloadWhenIdle            = 2000
  2157.     AutoReloadsClip             = No
  2158.     ClipReloadTime                 = 3000
  2159.  
  2160.     ProjectileNugget                                ; A Nugget that creates an Object and sends it to the target with a Warhead
  2161.         ProjectileTemplateName    = RockBigTreeberd
  2162.         WarheadTemplateName        = RohanTreeBeardRockFromThinAirWarhead
  2163.     End
  2164.     
  2165.     ProjectileNugget                                                    ; This nugget is to create a revealing object, so fire
  2166.         AlwaysAttackHereOffset    = X:0 Y:0 Z:0                            ; it directly on top of us, and just use an empty warhead
  2167.         UseAlwaysAttackOffset    = Yes                                    ; so we don't assert.
  2168.         ProjectileTemplateName  = ShroudRevealer_Bombard
  2169.         WarheadTemplateName     = ShipRevealBombardWarhead_Dummy
  2170.     End
  2171. End
  2172.  
  2173. ;----------------------------
  2174. Weapon RohanTreeBeardRockThrowWarhead
  2175.   ;FireFX= FX_ImpactEntRock
  2176.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS ; Remember, the projectile is a rock, who has no allies
  2177.   RadiusDamageAffects    = ENEMIES NEUTRALS
  2178.   DamageNugget                        ; A basic Nugget that just does damage
  2179.     Damage        = ROHAN_TREEBEARD_ROCK_DAMAGE
  2180.     Radius        = 25.0
  2181.     DelayTime     = 0
  2182.     DamageType    = SIEGE
  2183.     DamageFXType  = SMALL_ROCK
  2184.     DeathType     = NORMAL
  2185.   End
  2186.   MetaImpactNugget                    ; A Nugget that throws things back with force
  2187. ;    HeroResist            = .75
  2188.     ShockWaveAmount   = 25.0
  2189.     ShockWaveRadius   = 20.0
  2190.     ShockWaveTaperOff = 0.75
  2191. ;    ShockWaveZMult    = 1.20
  2192.   End
  2193. End
  2194.  
  2195. ;------------------------------------------------------------------------------
  2196. ; This is the normal punch, not the AOE, rock, siege or tree
  2197. Weapon RohanTreeBeardPunch  ; BALANCE TreeBeard Weapon Normal
  2198.   LeechRangeWeapon = Yes
  2199.   AttackRange                = 30.0
  2200.   MeleeWeapon                = Yes
  2201.   DelayBetweenShots            = 2000            ; time between shots, msec
  2202.   FiringDuration            = 1900            ; min 1900 for anim
  2203.   PreAttackDelay            = 1100
  2204.   PreAttackType                = PER_SHOT ; Do the delay each time we attack a new target
  2205.   FireFX                    = FX_TreeBeardPunch
  2206.   RadiusDamageAffects        = ENEMIES NEUTRALS
  2207.   DamageDealtAtSelfPosition = Yes ; A melee based AoE.  Arc radiates from me, not them
  2208.  
  2209.   DamageNugget                        ; A basic Nugget that just does damage
  2210.     Damage        = ROHAN_TREEBEARD_PUNCH_DAMAGE
  2211.     Radius        = ROHAN_TREEBEARD_PUNCH_RADIUS
  2212.     DelayTime     = 0
  2213.     DamageType    = SIEGE
  2214.     DamageFXType  = CLUBBING
  2215.     DeathType     = NORMAL
  2216.     DamageArc      = 40
  2217.   End
  2218.   MetaImpactNugget                    ; A Nugget that throws things back with force
  2219.     ShockWaveAmount   = 50.0
  2220.     ShockWaveRadius   = ROHAN_TREEBEARD_PUNCH_RADIUS
  2221.     ShockWaveTaperOff = 1.0
  2222.     ShockWaveArc      = 40
  2223. ;    ShockWaveZMult   = 0.75
  2224. ;    HeroResist          = 0.90        ; 90% resistance to heroes
  2225.   End
  2226. End
  2227.  
  2228. ;----------------------------
  2229. Weapon RohanTreeBeardRockFromThinAir  ; BALANCE TreeBeard Weapon Rock
  2230.     AttackRange                    = ROHAN_TREEBEARD_ROCK_RANGE
  2231.     WeaponSpeed                    = 200.0        ; dist/sec (huge value == effectively instant)
  2232.     FireFX                        = FX_TrollTreeSwing
  2233.     PreAttackDelay                = 6200
  2234.     FiringDuration                = 1800
  2235.     PreAttackType                = PER_SHOT ; Do the delay each time we attack a new target
  2236.     DelayBetweenShots            = 4000
  2237.     HitPercentage                = 0 ; never auto hits, always hits ground
  2238.     ScatterRadius                = 4.0     ;When this weapon misses it can randomly miss by as much as this distance.
  2239.     IsAimingWeapon                = Yes    ; Shooter will use his AimWeaponBehavior to get extra model condition flags
  2240.     NoVictimNeeded                = Yes ; Need no target
  2241.     LeechRangeWeapon            = Yes
  2242.  
  2243.     ProjectileNugget                                ; A Nugget that creates an Object and sends it to the target with a Warhead
  2244.         ProjectileTemplateName        = RockBigTreeberd
  2245.         WarheadTemplateName        = RohanTreeBeardRockFromThinAirWarhead
  2246.     End
  2247. End
  2248.  
  2249. ;----------------------------
  2250. Weapon RohanTreeBeardRockFromThinAirWarhead
  2251.   ;FireFX= FX_ImpactEntRock
  2252.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS ALLIES
  2253.   RadiusDamageAffects    = ENEMIES NEUTRALS ALLIES
  2254.   DamageNugget                        ; A basic Nugget that just does damage
  2255.     Damage        = ROHAN_TREEBEARD_ROCK_DAMAGE
  2256.     Radius         = 20.0
  2257.     DelayTime     = 0
  2258.     DamageType    = SIEGE
  2259.     DamageFXType  = SMALL_ROCK
  2260.     DeathType     = NORMAL
  2261.   End
  2262.   
  2263.        DamageNugget                        ; A basic Nugget that just does damage
  2264.         Damage        = ROHAN_TREEBEARD_ROCK_DAMAGE  ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  2265.         DamageTaperOff = 50
  2266.         Radius        = 100.0
  2267.         DelayTime     = 0
  2268.         DamageType    = SIEGE
  2269.         DamageFXType  = BIG_ROCK
  2270.         DeathType     = EXPLODED
  2271.         DamageScalar  = 0% ALL -WALL_UPGRADE -WALL_HUB -WALL_SEGMENT -DEFENSIVE_WALL            ; No damage to allied structures.
  2272.         ;DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  2273.     End
  2274.   
  2275.   
  2276.   
  2277.   MetaImpactNugget                    ; A Nugget that throws things back with force
  2278. ;    HeroResist            = .75
  2279.     ShockWaveAmount   = 50.0
  2280.     ShockWaveRadius   = 30.0
  2281.     ShockWaveTaperOff = 0.75
  2282. ;    ShockWaveZMult    = 1.20
  2283.   End
  2284. End
  2285.  
  2286. ;------------------------------------------------------------------------------
  2287. Weapon RohanEntDeath  ; BALANCE Ent Death toppling over units
  2288.   RadiusDamageAffects = ENEMIES NEUTRALS
  2289.   DamageNugget                        ; A basic Nugget that just does damage
  2290.     Damage        = 80
  2291.     Radius        = 40.0
  2292.     DelayTime     = 0
  2293.     DamageType    = FORCE
  2294.     DeathType     = NORMAL
  2295.   End
  2296.   MetaImpactNugget                    ; A Nugget that throws things back with force
  2297. ;    HeroResist            = .75
  2298.     ShockWaveAmount   = 40.0
  2299.     ShockWaveRadius   = 40.0
  2300.     ShockWaveTaperOff = 1.0
  2301.   End
  2302. End
  2303.  
  2304. ;------------------------------------------------------------------------------
  2305. ; This is the building tear down attack
  2306. Weapon RohanBuildingTeardown  ; BALANCE TreeBeard building teardown attack
  2307.   RadiusDamageAffects = ENEMIES NEUTRALS
  2308.   CanFireWhileMoving    = No
  2309.       LeechRangeWeapon = Yes    ;Just like the troll, this needs to go with Melee to let me hurt round buildings.
  2310.   AttackRange           = 20.0
  2311.   AntiStructure         = Yes            ; Ram ONLY affects structures -- buildings, walls, gates
  2312.   AntiGround            = No             ; ditto
  2313.   MeleeWeapon           = Yes
  2314.   AcceptableAimDelta    = 20             ; Can't ram sideways (but give a little slack)
  2315.   FireFX                = FX_TreeBeardBash
  2316.   DelayBetweenShots            = 3900            ; time between shots, msec
  2317.   FiringDuration            = 1900            ; min 1900 for anim
  2318.   PreAttackDelay            = 1100
  2319.   PreAttackType         = PER_SHOT        ; Do the delay each time we attack a new target
  2320.  
  2321.   DamageNugget                        ; A basic Nugget that just does damage
  2322.     Damage        = ROHAN_TREEBEARD_BUILDINGATTACK_DAMAGE
  2323.     Radius        = 0.0
  2324.     DelayTime     = 0
  2325.     DamageType    = SIEGE
  2326.     DamageFXType  = CLUBBING
  2327.     DeathType     = NORMAL
  2328.   End
  2329. ;  MetaImpactNugget                    ; A Nugget that throws things back with force
  2330. ;    HeroResist            = .75
  2331. ;   ShockWaveAmount   = 10.0
  2332. ;    ShockWaveRadius   = 8.0
  2333. ;    ShockWaveTaperOff = 1.0
  2334. ;    ShockWaveZMult    = 0.40
  2335. ;  End
  2336. End
  2337.  
  2338.  
  2339. ;------------------------------------------------------------------------------
  2340. Weapon RohanRohirrimSpear       ; BALANCE Rohirrim Weapon
  2341.   LeechRangeWeapon      = Yes
  2342.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  2343.   MeleeWeapon           = Yes
  2344.   FireFX                = FX_GondorSwordHit
  2345.   FireFlankFX        = FX_Flanking
  2346.   DelayBetweenShots     = ROHAN_ROHIRRIM_DELAYBETWEENSHOTS           ; time between shots, msec
  2347.   PreAttackDelay        = ROHAN_ROHIRRIM_PREATTACKDELAY             ; 400 is sword swing delay time before contact with target.
  2348.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  2349.   FiringDuration        = ROHAN_ROHIRRIM_FIRINGDURATION     ; Duration of the sword swing
  2350.  
  2351.     DamageNugget                        ; A basic Nugget that just does damage
  2352.         Damage                    = ROHAN_ROHIRRIM_SWORD_DAMAGE
  2353.         Radius                    = 0.0
  2354.         DelayTime                = 0
  2355.         DamageType                = CAVALRY
  2356.         DamageFXType                = SWORD_SLASH
  2357.         DeathType                = NORMAL
  2358.         ForbiddenUpgradeNames            = Upgrade_RohanForgedBladesForRohirrim
  2359.         FlankingBonus = 50%
  2360.     End
  2361.  
  2362.  
  2363.        DamageNugget
  2364.         Damage                    = ROHAN_ROHIRRIM_SWORD_DAMAGE_FORGED_UPGRADE
  2365.         Radius                    = 0.0
  2366.         DelayTime                = 0
  2367.         DamageType                = CAVALRY
  2368.         DamageFXType                = SWORD_SLASH
  2369.         DeathType                = NORMAL
  2370.         RequiredUpgradeNames            = Upgrade_RohanForgedBladesForRohirrim
  2371.         FlankingBonus = 50%
  2372.     End
  2373.  
  2374. End
  2375.  
  2376. ;------------------------------------------------------------------------------
  2377. Weapon RohanRohirrimBow       ; BALANCE Archer Weapon
  2378.   AttackRange               = ROHAN_HORSEBOW_RANGE
  2379.   
  2380.     RangeBonusMinHeight    = 10
  2381.     RangeBonus        = 1
  2382.     RangeBonusPerFoot    = #MULTIPLY( ROHAN_HORSEBOW_RANGE .01 )
  2383.     
  2384.     
  2385.   WeaponSpeed               = 321         ; dist/sec 
  2386.   MinWeaponSpeed            = 241
  2387.   MaxWeaponSpeed            = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  2388.   FireFX                    = FX_RohanArcherBowWeapon
  2389.   ScaleWeaponSpeed          = Yes ; Used for lob weapons, scales speed proportional to range
  2390.   HitPercentage             = 100     ;When this weapon is used it will hit exactly 50% of the time.
  2391.   ScatterRadius             = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  2392.   
  2393.   PreAttackDelay            = 700
  2394.   PreAttackType             = PER_SHOT  ; Do the delay each time we attack a new target
  2395.   PreAttackRandomAmount     = 200 
  2396.   FiringDuration            = 1500        ; Duration of the archer firing shot is 1000ms.
  2397.   RequireFollowThru            = Yes
  2398.  
  2399.   ClipSize                     = 1
  2400.   AutoReloadsClip             = Yes
  2401.   ClipReloadTime             = 1500
  2402.  
  2403.   IsAimingWeapon            = Yes
  2404.   AntiAirborneVehicle        = Yes
  2405.   AntiAirborneMonster        = Yes
  2406.  
  2407. ; CanFireWhileMoving        = Yes
  2408. ; CanFireWhileCharging        = Yes
  2409.  
  2410.   CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  2411.  
  2412.   HitPassengerPercentage    = 20%
  2413.  
  2414.   ProjectileNugget          ; Default arrow
  2415.     ProjectileTemplateName  = GoodFactionArrow
  2416.     WarheadTemplateName     = RohirrimBowWarhead
  2417.     ForbiddenUpgradeNames   = Upgrade_RohanFireArrows
  2418.   End
  2419.  
  2420.   ProjectileNugget          ; Fire arrow available through fire upgrade
  2421.     ProjectileTemplateName  = GoodFactionFireArrow
  2422.     WarheadTemplateName     = RohirrimBowFireWarhead
  2423.     RequiredUpgradeNames    = Upgrade_RohanFireArrows
  2424.   End
  2425. End
  2426.  
  2427. ;----------------------------
  2428. Weapon RohirrimBowWarhead
  2429.       RadiusDamageAffects = ENEMIES 
  2430.     HitStoredTarget = Yes    ; Always hits initial target.
  2431.       DamageNugget                        ; A basic Nugget that just does damage
  2432.         Damage        = ROHAN_ROHIRRIM_BOW_DAMAGE
  2433.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  2434.         DelayTime     = 0
  2435.         DamageType    = PIERCE
  2436.         DamageFXType  = GOOD_ARROW_PIERCE
  2437.         DeathType     = EXPLODED
  2438.     End
  2439. End
  2440.  
  2441. Weapon RohirrimBowFireWarhead
  2442.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  2443.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  2444.     HitStoredTarget = Yes    ; Always hits initial target.
  2445.     
  2446.     DamageNugget                        ; A basic Nugget that just does damage
  2447.         Damage        = ROHAN_ROHIRRIM_BOW_FIRE_DAMAGE
  2448.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  2449.         DelayTime     = 0
  2450.         DamageType    = FLAME
  2451.         DamageFXType  = GOOD_ARROW_PIERCE
  2452.         DeathType     = BURNED
  2453.         AcceptDamageAdd = No
  2454.         DamageScalar  = 25% ALL -STRUCTURE
  2455.     End
  2456.  
  2457.     DamageNugget                        ; A basic Nugget that just does damage
  2458.         Damage        = 1
  2459.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  2460.         DamageType    = FLAME
  2461.         DamageFXType  = FLAME
  2462.         DeathType     = BURNED
  2463.         AcceptDamageAdd = No
  2464.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  2465.     End
  2466.  
  2467.     DamageNugget                        ; A basic Nugget that just does damage
  2468.         Damage        = ROHAN_ROHIRRIM_BOW_DAMAGE
  2469.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  2470.         DelayTime     = 0
  2471.         DamageType    = PIERCE
  2472.         DamageFXType  = GOOD_ARROW_PIERCE
  2473.         DeathType     = NORMAL
  2474.     End
  2475. End
  2476.  
  2477.  
  2478. ;------------------------------------------------------------------------------
  2479. Weapon ElvenRivendellLancerLance       ; BALANCE
  2480.   LeechRangeWeapon      = Yes
  2481.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  2482.   MeleeWeapon           = Yes
  2483.   FireFX                = FX_GondorSwordHit
  2484.   DelayBetweenShots     = ELVEN_RIVENDELLLANCER_DELAYBETWEENSHOTS           ; time between shots, msec
  2485.   PreAttackDelay        = ELVEN_RIVENDELLLANCER_PREATTACKDELAY                ; 400 is sword swing delay time before contact with target.
  2486.   FiringDuration        = ELVEN_RIVENDELLLANCER_FIRINGDURATION                ; Duration of the sword swing
  2487.   PreAttackType         = PER_SHOT                                            ; Do the delay each time we attack a new target
  2488.  
  2489.     DamageNugget
  2490.         Damage            = ELVEN_RIVENDELLLANCER_LANCE_DAMAGE
  2491.         Radius            = 0.0
  2492.         DelayTime        = 0
  2493.         DamageType        = CAVALRY
  2494.         DamageFXType    = SWORD_SLASH
  2495.         DeathType        = NORMAL
  2496.         ForbiddenUpgradeNames    = Upgrade_ElvenForgedBlades
  2497.     End
  2498.  
  2499.     DamageNugget
  2500.         Damage            = ELVEN_RIVENDELLLANCER_LANCE_DAMAGE_UPGRADE
  2501.         Radius            = 0.0
  2502.         DelayTime        = 0
  2503.         DamageType        = CAVALRY
  2504.         DamageFXType        = SWORD_SLASH
  2505.         DeathType        = NORMAL
  2506.         RequiredUpgradeNames    = Upgrade_ElvenForgedBlades
  2507.     End
  2508.  
  2509. End
  2510.  
  2511. ;------------------------------------------------------------------------------
  2512. Weapon MithlondSentryPike     ; BALANCE
  2513.   LeechRangeWeapon      = Yes
  2514.   AttackRange           = 30
  2515.   MeleeWeapon           = Yes    ; Sorry, stand off doesn't work.  This is just a melee weapon.
  2516.   DelayBetweenShots     = ELVEN_MITHLONDSENTRY_PIKE_DELAYBETWEENSHOTS                ; time between shots, msec
  2517.   PreAttackDelay        = ELVEN_MITHLONDSENTRY_PIKE_PREATTACKDELAY                
  2518.   PreAttackType         = PER_SHOT            ; Do the delay each time we attack
  2519.   FireFX                = FX_GondorSwordHit
  2520.   FireFlankFX        = FX_Flanking
  2521.   FiringDuration        = ELVEN_MITHLONDSENTRY_PIKE_FIRINGDURATION                
  2522.   
  2523.     DamageNugget                                ; A basic Nugget that just does damage
  2524.         Damage        = ELVEN_MITHLONDSENTRY_PIKE_DAMAGE
  2525.         DamageType    = SPECIALIST
  2526.         DamageFXType  = SWORD_SLASH
  2527.         DeathType     = NORMAL
  2528.         ;LostLeadershipUselessAgainst = CAVALRY ; Useless when under the CloudBreak spell against Cavalry type units
  2529.         ForbiddenUpgradeNames    = Upgrade_ElvenForgedBlades
  2530.         FlankingBonus = 50%
  2531.     End
  2532.  
  2533.     DamageNugget                                ; A basic Nugget that just does damage
  2534.         Damage        = ELVEN_MITHLONDSENTRY_PIKE_DAMAGE_UPGRADE
  2535.         DamageType    = SPECIALIST
  2536.         DamageFXType  = SWORD_SLASH
  2537.         DeathType     = NORMAL
  2538.         ;LostLeadershipUselessAgainst = CAVALRY ; Useless when under the CloudBreak spell against Cavalry type units
  2539.         RequiredUpgradeNames    = Upgrade_ElvenForgedBlades
  2540.         FlankingBonus = 50%
  2541.     End
  2542. End
  2543.  
  2544. ;------------------------------------------------------------------------------
  2545. Weapon ZephyrStrikeWeapon     ; BALANCE
  2546.     IdleAfterFiringDelay = 0
  2547.     AttackRange = ZEPHYR_STRIKE_RANGE
  2548.     MinimumAttackRange = 0.8
  2549.     WeaponSpeed = 401         ; dist/sec 
  2550.     MinWeaponSpeed = 241
  2551.     MaxWeaponSpeed = 601      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  2552.     ScaleWeaponSpeed = Yes ; Used for lob weapons, scales speed proportional to range
  2553.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  2554.     DelayBetweenShots = 5000               ; time between shots, msec
  2555.     PreAttackDelay        = 2600
  2556.     PreAttackType         = PER_ATTACK ; Do the delay each time we attack a new target
  2557.     PreAttackFX           = FX_GandalfPreAttackBlast
  2558.     FireFX                = FX_GandalfBlast
  2559.     FiringDuration      = 1400
  2560.   
  2561.     DamageNugget                        ; A basic Nugget that just does damage
  2562.         Damage            = ZEPHYR_STRIKE_DAMAGE
  2563.         Radius            = ZEPHYR_STRIKE_RADIUS
  2564.         DamageType        = FORCE
  2565.         DamageFXType    = SWORD_SLASH
  2566.         DeathType        = EXPLODED
  2567.         DamageSpeed        = ZEPHYR_STRIKE_SHOCKWAVE_SPEED ; must match the ShockWaveSpeed below
  2568.     End
  2569.     
  2570.     MetaImpactNugget                    ; A Nugget that throws things back with force
  2571. ;        HeroResist            = .75
  2572.         ShockWaveAmount   = ZEPHYR_STRIKE_SHOCKWAVE_AMOUNT
  2573.         ShockWaveRadius   = ZEPHYR_STRIKE_SHOCKWAVE_RADIUS
  2574.         ShockWaveTaperOff = 1.0
  2575.         ShockWaveZMult    = 1.000
  2576.         ShockWaveSpeed      = ZEPHYR_STRIKE_SHOCKWAVE_SPEED
  2577.     End
  2578. End
  2579.  
  2580.  
  2581.  
  2582.  
  2583. ;------------------------------------------------------------------------------
  2584. ;------------------------------------------------------------------------------
  2585. ;------------------------------------------------------------------------------
  2586. ;------------------------------------------------------------------------------
  2587. ;
  2588. ;  Gondor
  2589. ;
  2590. ;------------------------------------------------------------------------------
  2591. ;------------------------------------------------------------------------------
  2592. ;------------------------------------------------------------------------------
  2593.  
  2594. //------------------------------------------------------------------------------
  2595. //Fake weapon so that the expansion will pick targets that the slaved catapult can attack
  2596. Weapon GondorTrebuchetExpansionWeapon        
  2597.     AttackRange                    = GONDOR_TREBUCHET_RANGE
  2598.     MinimumAttackRange            = GONDOR_TREBUCHET_MINRANGE
  2599.     LeechRangeWeapon            = Yes
  2600.     DelayBetweenShots            = GONDOR_TREBUCHET_DELAYBETWEENSHOTS  
  2601.     PreAttackDelay                = GONDOR_TREBUCHET_PREATTACKDELAY
  2602.     FiringDuration              = GONDOR_TREBUCHET_FIRINGDURATION
  2603.     AcceptableAimDelta            = GONDOR_TREBUCHET_EXPANSION_AIM_DELTA  
  2604.     FinishAttackOnceStarted        = Yes    
  2605.  
  2606.     //This nugget tells the objects slave to perform the attack
  2607.     SlaveAttackNugget
  2608.     End
  2609. End
  2610.  
  2611. //------------------------------------------------------------------------------
  2612. //Fake weapon so that the expansion will pick targets that the slaved catapult can attack
  2613. Weapon GondorTrebuchetSideExpansionWeapon
  2614.     AttackRange                    = GONDOR_TREBUCHET_RANGE
  2615.     MinimumAttackRange            = GONDOR_TREBUCHET_MINRANGE
  2616.     LeechRangeWeapon            = Yes
  2617.     DelayBetweenShots            = GONDOR_TREBUCHET_DELAYBETWEENSHOTS  
  2618.     PreAttackDelay                = GONDOR_TREBUCHET_PREATTACKDELAY
  2619.     FiringDuration              = GONDOR_TREBUCHET_FIRINGDURATION
  2620.     AcceptableAimDelta            = GONDOR_TREBUCHET_EXPANSION_SIDE_AIM_DELTA  
  2621.     FinishAttackOnceStarted        = Yes    
  2622.  
  2623.     //This nugget tells the objects slave to perform the attack
  2624.     SlaveAttackNugget
  2625.     End
  2626. End
  2627.  
  2628.  
  2629. ;------------------------------------------------------------------------------
  2630. Weapon GondorTrebuchetRock  ; BALANCE Trebuchet Weapon
  2631. ; For the demo, we are giving trebs 100% accurate tracking rocks.  This'll be balanced out eventually
  2632.   ScatterRadiusVsInfantry     = 40.0     ;When this weapon is used against infantry, it will always randomly miss by as much as this distance.
  2633.   AttackRange = GONDOR_TREBUCHET_RANGE
  2634.   MinimumAttackRange = GONDOR_TREBUCHET_MINRANGE
  2635.   
  2636.       RangeBonusMinHeight    = 10
  2637.     RangeBonus        = 1
  2638.     RangeBonusPerFoot    = #MULTIPLY( GONDOR_TREBUCHET_RANGE .01 )
  2639.     
  2640.     
  2641.   WeaponSpeed = 321         ; dist/sec 
  2642.   MinWeaponSpeed = 321
  2643.   FireFX = FX_TrebuchetWeapon
  2644.   HitPercentage             = 0     ;Make sure that scatter radius is called so that multiple projectiles will land separately.
  2645.   ScatterRadius             = 0.0     ;When this weapon misses it can randomly miss by as much as this distance.
  2646.   ScatterIndependently        = Yes        ;Each projectile fired at once from this weapon should scatter independently of each other.
  2647.   DelayBetweenShots         = GONDOR_TREBUCHET_DELAYBETWEENSHOTS               ; time between shots, msec
  2648.   PreAttackDelay              = GONDOR_TREBUCHET_PREATTACKDELAY
  2649.   PreAttackType               = PER_SHOT
  2650.   FiringDuration              = GONDOR_TREBUCHET_FIRINGDURATION
  2651.   NoVictimNeeded            = Yes ; Need no target
  2652.   LeechRangeWeapon      = Yes
  2653.  
  2654.   ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  2655.     ProjectileTemplateName = GondorTrebuchetRockProjectile
  2656.     WarheadTemplateName = GondorTrebuchetRockWarhead
  2657.   End
  2658.   
  2659.   ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  2660.     ProjectileTemplateName = GondorTrebuchetRockProjectile
  2661.     WarheadTemplateName = GondorTrebuchetRockWarhead
  2662.     RequiredUpgradeNames = Upgrade_TrebuchetTripleAmmo
  2663.   End
  2664.   
  2665.   ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  2666.     ProjectileTemplateName = GondorTrebuchetRockProjectile
  2667.     WarheadTemplateName = GondorTrebuchetRockWarhead
  2668.     RequiredUpgradeNames = Upgrade_TrebuchetTripleAmmo
  2669.   End
  2670.   
  2671.   ProjectileNugget                                                    ; This nugget is to create a revealing object, so fire
  2672.         AlwaysAttackHereOffset    = X:0 Y:0 Z:0                            ; it directly on top of us, and just use an empty warhead
  2673.         UseAlwaysAttackOffset    = Yes                                    ; so we don't assert.
  2674.         ProjectileTemplateName  = ShroudRevealer_Bombard
  2675.         WarheadTemplateName     = ShipRevealBombardWarhead_Dummy
  2676.   End
  2677.   
  2678. End
  2679.  
  2680. ;----------------------------
  2681. Weapon GondorTrebuchetRockWarhead
  2682.     ;FireFX= FX_RockDetonation
  2683.     ProjectileCollidesWith = MONSTERS    STRUCTURES    ; Structures is the default, btw.
  2684.     RadiusDamageAffects = ENEMIES NEUTRALS ALLIES
  2685.     HitPassengerPercentage = 50%
  2686.     
  2687.     DamageNugget                        ; A basic Nugget that just does damage
  2688.         Damage         = GONDOR_TREBUCHET_DAMAGE  ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  2689.         Radius         = 20.0
  2690.         DelayTime      = 0
  2691.         DamageType     = SIEGE
  2692.         DamageFXType   = BIG_ROCK
  2693.         DeathType      = EXPLODED
  2694.         DamageScalar   = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  2695.     End
  2696.     
  2697.      DamageNugget                        ; A basic Nugget that just does damage
  2698.         Damage        = GONDOR_TREBUCHET_DAMAGE  ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  2699.         DamageTaperOff = 50
  2700.         Radius        = 100.0
  2701.         DelayTime     = 0
  2702.         DamageType    = SIEGE
  2703.         DamageFXType  = BIG_ROCK
  2704.         DeathType     = EXPLODED
  2705.         
  2706.         ;DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  2707.     End
  2708.  
  2709.     MetaImpactNugget                    ; A Nugget that throws things back with force 
  2710. ;        HeroResist            = .75
  2711.         ShockWaveAmount   = 25.0
  2712.         ShockWaveRadius   = 20.0
  2713.         ShockWaveTaperOff = 0.75
  2714.     End
  2715. End
  2716.  
  2717. ;----------------------------
  2718. Weapon GondorTrebuchetRockWarheadFlaming
  2719.     ;FireFX= FX_Weapon
  2720.     RadiusDamageAffects = ENEMIES ALLIES
  2721.     HitPassengerPercentage = 50%
  2722.  
  2723.     FireLogicNugget ;@@@ fire logic testing
  2724.         LogicType    =    INCREASE_BURN_RATE
  2725.         Radius        =    GONDOR_TREBUCHET_FIRE_RADIUS 
  2726.         Damage        =    GONDOR_TREBUCHET_FIRE_DAMAGE 
  2727.     End
  2728.     
  2729.     DamageNugget                        ; A basic Nugget that just does damage
  2730.         Damage        = GONDOR_TREBUCHET_FIRE_UPGRADE_DAMAGE_FLAME  
  2731.         Radius = 20
  2732.         DelayTime     = 0
  2733.         DamageType    = FLAME            ; Just a little flame damage in case they want to light on fire.  Main damage must be siege to knock bits out of buildings
  2734.         DamageFXType  = FLAME
  2735.         DeathType     = BURNED
  2736.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  2737.         DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  2738.         AcceptDamageAdd = No
  2739.     End
  2740.  
  2741.     DamageNugget                        ; A basic Nugget that just does damage
  2742.         Damage        = GONDOR_TREBUCHET_FIRE_UPGRADE_DAMAGE      ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  2743.         Radius = 20
  2744.         DelayTime     = 0
  2745.         DamageType    = SIEGE
  2746.         DamageFXType  = BIG_ROCK
  2747.         DeathType     = EXPLODED
  2748.         ;DamageScalar  = 200% NONE +MordorMumakil
  2749.         DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  2750.     End
  2751.     
  2752.     DamageNugget                        ; A basic Nugget that just does damage
  2753.         Damage        = GONDOR_TREBUCHET_FIRE_UPGRADE_DAMAGE  ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  2754.         DamageTaperOff = 50
  2755.         Radius        = 100.0
  2756.         DelayTime     = 0
  2757.         DamageType    = SIEGE
  2758.         DamageFXType  = BIG_ROCK
  2759.         DeathType     = EXPLODED
  2760.         DamageScalar  = 0% ALL -WALL_UPGRADE -WALL_HUB -WALL_SEGMENT -DEFENSIVE_WALL            ; No damage to allied structures.
  2761.         ;DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  2762.     End
  2763.  
  2764.     MetaImpactNugget                    ; A Nugget that throws things back with force 
  2765. ;        HeroResist            = .75
  2766.         ShockWaveAmount   = 25.0
  2767.         ShockWaveRadius   = 20.0
  2768.         ShockWaveTaperOff = 0.75
  2769.     End
  2770.     
  2771.     
  2772.  
  2773.     ;;;;;;; Self perpetuating fire is BAD;;;;;;;;;;;;;;;;;;;;;;;;;;
  2774.     ;FireLogicNugget ;@@@ fire logic testing
  2775.     ;    LogicType        =    INCREASE_FUEL
  2776.     ;    Radius            =    GONDOR_TREBUCHET_FUEL_RADIUS
  2777.     ;    Damage            =    GONDOR_TREBUCHET_FUEL_DAMAGE
  2778.     ;    MinMaxBurnRate    =    GONDOR_TREBUCHET_FUEL_MAX_BURNRATE
  2779.     ;    MinDecay        =    GONDOR_TREBUCHET_FUEL_MIN_DECAY
  2780.     ;    MaxResistance    =    GONDOR_TREBUCHET_FUEL_MAX_RESISTANCE
  2781.     ;End
  2782.     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2783.     
  2784. End
  2785. ;------------------------------------------------------------------------------
  2786. Weapon GondorTrebuchetRockFlaming  ; BALANCE Trebuchet Weapon
  2787.     ;For the demo, we are giving trebs 100% accurate tracking rocks.  This'll be balanced out eventually
  2788.     ;ScatterRadiusVsInfantry    = 30.0     ;When this weapon is used against infantry, it will always randomly miss by as much as this distance.
  2789.     AttackRange                    = GONDOR_TREBUCHET_FLAME_RANGE
  2790.     
  2791.     RangeBonusMinHeight    = 10
  2792.     RangeBonus        = 1
  2793.     RangeBonusPerFoot    = #MULTIPLY( GONDOR_TREBUCHET_FLAME_RANGE .01 )
  2794.     
  2795.     MinimumAttackRange            = 150.0
  2796.     WeaponSpeed                    = 321         ; dist/sec 
  2797.     MinWeaponSpeed                = 321
  2798.     FireFX                        = FX_TrebuchetWeapon
  2799.     HitPercentage                = 0     ;Make sure that scatter radius is called so that multiple projectiles will land separately.
  2800.     ScatterRadius                = 0.0     ;When this weapon misses it can randomly miss by as much as this distance.
  2801.     ScatterIndependently        = Yes        ;Each projectile fired at once from this weapon should scatter independently of each other.
  2802.     DelayBetweenShots            = GONDOR_TREBUCHET_DELAYBETWEENSHOTS         ; time between shots, msec
  2803.     PreAttackDelay                = GONDOR_TREBUCHET_PREATTACKDELAY         
  2804.     PreAttackType                = PER_SHOT
  2805.     FiringDuration                = GONDOR_TREBUCHET_FIRINGDURATION         
  2806.     NoVictimNeeded                = Yes ; Need no target
  2807.     LeechRangeWeapon            = Yes
  2808.   
  2809.     ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  2810.         ProjectileTemplateName = GondorTrebuchetRockProjectileFlaming
  2811.         WarheadTemplateName = GondorTrebuchetRockWarheadFlaming
  2812.     End
  2813.   
  2814.     ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  2815.         ProjectileTemplateName = GondorTrebuchetRockProjectileFlaming
  2816.         WarheadTemplateName = GondorTrebuchetRockWarheadFlaming
  2817.         RequiredUpgradeNames = Upgrade_TrebuchetTripleAmmo
  2818.     End
  2819.   
  2820.     ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  2821.         ProjectileTemplateName = GondorTrebuchetRockProjectileFlaming
  2822.         WarheadTemplateName = GondorTrebuchetRockWarheadFlaming
  2823.         RequiredUpgradeNames = Upgrade_TrebuchetTripleAmmo
  2824.     End
  2825.     
  2826.     ProjectileNugget                                                    ; This nugget is to create a revealing object, so fire
  2827.         AlwaysAttackHereOffset    = X:0 Y:0 Z:0                            ; it directly on top of us, and just use an empty warhead
  2828.         UseAlwaysAttackOffset    = Yes                                    ; so we don't assert.
  2829.         ProjectileTemplateName  = ShroudRevealer_Bombard
  2830.         WarheadTemplateName     = ShipRevealBombardWarhead_Dummy
  2831.     End
  2832.   
  2833. End
  2834.  
  2835. ;----------------------- STRUCTURAL TREBUCHET WEAPONS -------------------------
  2836. ;------------Need to balance defensive vs offensive trebs hence----------------
  2837. ;------------------------------------------------------------------------------
  2838. Weapon GondorTrebuchetRock_Structural  ; BALANCE Trebuchet Weapon - Defensive
  2839. ; For the demo, we are giving trebs 100% accurate tracking rocks.  This'll be balanced out eventually
  2840.   ScatterRadiusVsInfantry     = 40.0     ;When this weapon is used against infantry, it will always randomly miss by as much as this distance.
  2841.   AttackRange = GONDOR_TREBUCHET_RANGE
  2842.   MinimumAttackRange = GONDOR_TREBUCHET_MINRANGE
  2843.   
  2844.       ;RangeBonusMinHeight    = 10
  2845.     ;RangeBonus        = 1
  2846.     ;RangeBonusPerFoot    = #MULTIPLY( GONDOR_TREBUCHET_RANGE .01 )
  2847.     
  2848.     
  2849.   WeaponSpeed = 321         ; dist/sec 
  2850.   MinWeaponSpeed = 321
  2851.   FireFX = FX_TrebuchetWeapon
  2852.   HitPercentage             = 0     ;Make sure that scatter radius is called so that multiple projectiles will land separately.
  2853.   ScatterRadius             = 0.0     ;When this weapon misses it can randomly miss by as much as this distance.
  2854.   ScatterIndependently        = Yes        ;Each projectile fired at once from this weapon should scatter independently of each other.
  2855.   DelayBetweenShots         = GONDOR_TREBUCHET_DELAYBETWEENSHOTS               ; time between shots, msec
  2856.   PreAttackDelay              = GONDOR_TREBUCHET_PREATTACKDELAY
  2857.   PreAttackType               = PER_SHOT
  2858.   FiringDuration              = GONDOR_TREBUCHET_FIRINGDURATION
  2859.   NoVictimNeeded            = Yes ; Need no target
  2860.   LeechRangeWeapon      = Yes
  2861.  
  2862.   ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  2863.     ProjectileTemplateName = GondorTrebuchetRockProjectile
  2864.     WarheadTemplateName = GondorTrebuchetRockWarhead_Structural
  2865.   End
  2866.   
  2867.   ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  2868.     ProjectileTemplateName = GondorTrebuchetRockProjectile
  2869.     WarheadTemplateName = GondorTrebuchetRockWarhead_Structural
  2870.     RequiredUpgradeNames = Upgrade_TrebuchetTripleAmmo
  2871.   End
  2872.   
  2873.   ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  2874.     ProjectileTemplateName = GondorTrebuchetRockProjectile
  2875.     WarheadTemplateName = GondorTrebuchetRockWarhead_Structural
  2876.     RequiredUpgradeNames = Upgrade_TrebuchetTripleAmmo
  2877.   End
  2878.   
  2879.   ProjectileNugget                                                    ; This nugget is to create a revealing object, so fire
  2880.         AlwaysAttackHereOffset    = X:0 Y:0 Z:0                            ; it directly on top of us, and just use an empty warhead
  2881.         UseAlwaysAttackOffset    = Yes                                    ; so we don't assert.
  2882.         ProjectileTemplateName  = ShroudRevealer_Bombard
  2883.         WarheadTemplateName     = ShipRevealBombardWarhead_Dummy
  2884.   End
  2885.   
  2886. End
  2887.  
  2888. ;--------------------------------------------------------------    
  2889.     Weapon GondorTrebuchetRockWarhead_Structural
  2890.     ;FireFX= FX_RockDetonation
  2891.     ProjectileCollidesWith = MONSTERS    STRUCTURES    ; Structures is the default, btw.
  2892.     RadiusDamageAffects = ENEMIES NEUTRALS ALLIES
  2893.     HitPassengerPercentage = 50%
  2894.     
  2895.     DamageNugget                        ; A basic Nugget that just does damage
  2896.         Damage        = GONDOR_TREBUCHET_DAMAGE  ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  2897.         Radius = 20
  2898.         DelayTime     = 0
  2899.         DamageType    = SIEGE
  2900.         DamageFXType  = BIG_ROCK
  2901.         DeathType     = EXPLODED
  2902.         DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  2903.     End
  2904.  
  2905.     MetaImpactNugget                    ; A Nugget that throws things back with force 
  2906. ;        HeroResist            = .75
  2907.         ShockWaveAmount   = 25.0
  2908.         ShockWaveRadius   = 20.0
  2909.         ShockWaveTaperOff = 0.75
  2910.     End
  2911. End
  2912.  
  2913. ;----------------------------
  2914. Weapon GondorTrebuchetRockWarheadFlaming_Structural
  2915.     ;FireFX= FX_Weapon
  2916.     RadiusDamageAffects = ENEMIES ALLIES
  2917.     HitPassengerPercentage = 50%
  2918.  
  2919.     FireLogicNugget ;@@@ fire logic testing
  2920.         LogicType    =    INCREASE_BURN_RATE
  2921.         Radius        =    GONDOR_TREBUCHET_FIRE_RADIUS 
  2922.         Damage        =    GONDOR_TREBUCHET_FIRE_DAMAGE 
  2923.     End
  2924.     
  2925.     DamageNugget                        ; A basic Nugget that just does damage
  2926.         Damage        = GONDOR_TREBUCHET_FIRE_UPGRADE_DAMAGE_FLAME  
  2927.         Radius = 20
  2928.         DelayTime     = 0
  2929.         DamageType    = FLAME            ; Just a little flame damage in case they want to light on fire.  Main damage must be siege to knock bits out of buildings
  2930.         DamageFXType  = FLAME
  2931.         DeathType     = BURNED
  2932.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  2933.         DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  2934.         AcceptDamageAdd = No
  2935.     End
  2936.  
  2937.     DamageNugget                        ; A basic Nugget that just does damage
  2938.         Damage        = GONDOR_TREBUCHET_FIRE_UPGRADE_DAMAGE      ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  2939.         Radius          = 20
  2940.         DelayTime     = 0
  2941.         DamageType    = SIEGE
  2942.         DamageFXType  = BIG_ROCK
  2943.         DeathType     = EXPLODED
  2944.         ;DamageScalar  = 200% NONE +MordorMumakil
  2945.         DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  2946.     End
  2947.  
  2948.     MetaImpactNugget                    ; A Nugget that throws things back with force 
  2949. ;        HeroResist            = .75
  2950.         ShockWaveAmount   = 25.0
  2951.         ShockWaveRadius   = 20.0
  2952.         ShockWaveTaperOff = 0.75
  2953.     End
  2954.     
  2955.     
  2956.  
  2957.     ;;;;;;; Self perpetuating fire is BAD;;;;;;;;;;;;;;;;;;;;;;;;;;
  2958.     ;FireLogicNugget ;@@@ fire logic testing
  2959.     ;    LogicType        =    INCREASE_FUEL
  2960.     ;    Radius            =    GONDOR_TREBUCHET_FUEL_RADIUS
  2961.     ;    Damage            =    GONDOR_TREBUCHET_FUEL_DAMAGE
  2962.     ;    MinMaxBurnRate    =    GONDOR_TREBUCHET_FUEL_MAX_BURNRATE
  2963.     ;    MinDecay        =    GONDOR_TREBUCHET_FUEL_MIN_DECAY
  2964.     ;    MaxResistance    =    GONDOR_TREBUCHET_FUEL_MAX_RESISTANCE
  2965.     ;End
  2966.     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2967.     
  2968. End
  2969. ;------------------------------------------------------------------------------
  2970. Weapon GondorTrebuchetRockFlaming_Structural  ; BALANCE Trebuchet Weapon - Defensive
  2971.     ;For the demo, we are giving trebs 100% accurate tracking rocks.  This'll be balanced out eventually
  2972.     ;ScatterRadiusVsInfantry    = 30.0     ;When this weapon is used against infantry, it will always randomly miss by as much as this distance.
  2973.     AttackRange                    = GONDOR_TREBUCHET_FLAME_RANGE
  2974.     
  2975.     ;RangeBonusMinHeight    = 10
  2976.     ;RangeBonus        = 1
  2977.     ;RangeBonusPerFoot    = #MULTIPLY( GONDOR_TREBUCHET_FLAME_RANGE .01 )
  2978.     
  2979.     MinimumAttackRange            = 150.0
  2980.     WeaponSpeed                    = 321         ; dist/sec 
  2981.     MinWeaponSpeed                = 321
  2982.     FireFX                        = FX_TrebuchetWeapon
  2983.     HitPercentage                = 0     ;Make sure that scatter radius is called so that multiple projectiles will land separately.
  2984.     ScatterRadius                = 0.0     ;When this weapon misses it can randomly miss by as much as this distance.
  2985.     ScatterIndependently        = Yes        ;Each projectile fired at once from this weapon should scatter independently of each other.
  2986.     DelayBetweenShots            = GONDOR_TREBUCHET_DELAYBETWEENSHOTS         ; time between shots, msec
  2987.     PreAttackDelay                = GONDOR_TREBUCHET_PREATTACKDELAY         
  2988.     PreAttackType                = PER_SHOT
  2989.     FiringDuration                = GONDOR_TREBUCHET_FIRINGDURATION         
  2990.     NoVictimNeeded                = Yes ; Need no target
  2991.     LeechRangeWeapon            = Yes
  2992.   
  2993.     ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  2994.         ProjectileTemplateName = GondorTrebuchetRockProjectileFlaming
  2995.         WarheadTemplateName = GondorTrebuchetRockWarheadFlaming_Structural
  2996.     End
  2997.   
  2998.     ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  2999.         ProjectileTemplateName = GondorTrebuchetRockProjectileFlaming
  3000.         WarheadTemplateName = GondorTrebuchetRockWarheadFlaming_Structural
  3001.         RequiredUpgradeNames = Upgrade_TrebuchetTripleAmmo
  3002.     End
  3003.   
  3004.     ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  3005.         ProjectileTemplateName = GondorTrebuchetRockProjectileFlaming
  3006.         WarheadTemplateName = GondorTrebuchetRockWarheadFlaming_Structural
  3007.         RequiredUpgradeNames = Upgrade_TrebuchetTripleAmmo
  3008.     End
  3009.     
  3010.     ProjectileNugget                                                    ; This nugget is to create a revealing object, so fire
  3011.         AlwaysAttackHereOffset    = X:0 Y:0 Z:0                            ; it directly on top of us, and just use an empty warhead
  3012.         UseAlwaysAttackOffset    = Yes                                    ; so we don't assert.
  3013.         ProjectileTemplateName  = ShroudRevealer_Bombard
  3014.         WarheadTemplateName     = ShipRevealBombardWarhead_Dummy
  3015.     End
  3016.   
  3017. End
  3018.  
  3019. ;------------------------------------------------------------------------------
  3020. Weapon GondorStructureBow       ; BALANCE Archer Weapon
  3021.   AttackRange               = GONDOR_STRUCTURE_ARCHER_RANGE
  3022.   WeaponSpeed               = 321       ; dist/sec 
  3023.   MinWeaponSpeed            = 241
  3024.   MaxWeaponSpeed            = 481        ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  3025.   FireFX                    = FX_RohanArcherBowWeapon
  3026.   ScaleWeaponSpeed          = Yes        ; Used for lob weapons, scales speed proportional to range
  3027.   HitPercentage             = 100        ;When this weapon is used it will hit exactly 50% of the time.
  3028.   ScatterRadius             = 16.0        ;When this weapon misses it can randomly miss by as much as this distance.
  3029.   DelayBetweenShots         = Min:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MIN Max:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX
  3030.   PreAttackDelay            = GONDOR_STRUCTURE_ARCHER_BOW_PREATTACKDELAY   ; 1467 is the prep time for archer.
  3031.   PreAttackType             = PER_SHOT    ; Do the delay each time we attack a new target
  3032.   FiringDuration            = GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX    ; Duration of the archer firing shot is 500ms.
  3033.   IsAimingWeapon            = Yes
  3034.   AntiAirborneVehicle        = Yes
  3035.   AntiAirborneMonster        = Yes
  3036.   HitPassengerPercentage    = 20%
  3037.   AcceptableAimDelta        = 180.0    ; We want to be able to shoot all round, as we canit move.
  3038.  
  3039.   CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  3040.  
  3041.  
  3042.   ProjectileNugget          ; Default arrow
  3043.     ProjectileTemplateName  = GoodFactionArrow
  3044.     WarheadTemplateName     = StructureBowWarhead
  3045.   End
  3046. End
  3047.  
  3048.  
  3049. ;------------------------------------------------------------------------------
  3050. Weapon RohanStructureBow       ; BALANCE Mini-Tower Weapon
  3051.   AttackRange               = GONDOR_STRUCTURE_ARCHER_RANGE
  3052.   WeaponSpeed               = 321       ; dist/sec 
  3053.   MinWeaponSpeed            = 241
  3054.   MaxWeaponSpeed            = 481        ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  3055.   FireFX                    = FX_RohanArcherBowWeapon
  3056.   ScaleWeaponSpeed          = Yes        ; Used for lob weapons, scales speed proportional to range
  3057.   HitPercentage             = 100        ;When this weapon is used it will hit exactly 50% of the time.
  3058.   ScatterRadius             = 16.0        ;When this weapon misses it can randomly miss by as much as this distance.
  3059.   DelayBetweenShots         = Min:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MIN Max:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX
  3060.   PreAttackDelay            = GONDOR_STRUCTURE_ARCHER_BOW_PREATTACKDELAY   ; 1467 is the prep time for archer.
  3061.   PreAttackType             = PER_SHOT    ; Do the delay each time we attack a new target
  3062.   FiringDuration            = GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX    ; Duration of the archer firing shot is 500ms.
  3063.   IsAimingWeapon            = Yes
  3064.   AntiAirborneVehicle        = Yes
  3065.   AntiAirborneMonster        = Yes
  3066.   HitPassengerPercentage    = 20%
  3067.   AcceptableAimDelta        = 180.0    ; We want to be able to shoot all round, as we canit move.
  3068.  
  3069.   CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  3070.  
  3071.  
  3072.   ProjectileNugget          ; Default arrow
  3073.     ProjectileTemplateName  = GoodFactionArrow
  3074.     WarheadTemplateName     = StructureBowWarhead
  3075.   End
  3076. End
  3077.  
  3078.  
  3079.  
  3080. ;------------------------------------------------------------------------------
  3081. Weapon GoodStructureBow       ; BALANCE Archer Weapon
  3082.   AttackRange               = GONDOR_STRUCTURE_ARCHER_RANGE
  3083.   WeaponSpeed               = 321       ; dist/sec 
  3084.   MinWeaponSpeed            = 241
  3085.   MaxWeaponSpeed            = 481        ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  3086.   FireFX                    = FX_RohanArcherBowWeapon
  3087.   ScaleWeaponSpeed          = Yes        ; Used for lob weapons, scales speed proportional to range
  3088.   HitPercentage             = 100        ;When this weapon is used it will hit exactly 50% of the time.
  3089.   ScatterRadius             = 16.0        ;When this weapon misses it can randomly miss by as much as this distance.
  3090.   DelayBetweenShots         = Min:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MIN Max:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX
  3091.   PreAttackDelay            = GONDOR_STRUCTURE_ARCHER_BOW_PREATTACKDELAY   ; 1467 is the prep time for archer.
  3092.   PreAttackType             = PER_SHOT    ; Do the delay each time we attack a new target
  3093.   FiringDuration            = GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX    ; Duration of the archer firing shot is 500ms.
  3094.   IsAimingWeapon            = Yes
  3095.   AntiAirborneVehicle        = Yes
  3096.   AntiAirborneMonster        = Yes
  3097.   HitPassengerPercentage    = 20%
  3098.   AcceptableAimDelta        = 360.0    ; We want to be able to shoot all round, as we canit move.
  3099.  
  3100.   CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  3101.  
  3102.  
  3103.   ProjectileNugget          ; Default arrow
  3104.     ProjectileTemplateName  = GoodFactionArrow
  3105.     WarheadTemplateName     = StructureBowWarhead
  3106.   End
  3107. End
  3108.  
  3109. ;------------------------------------------------------------------------------
  3110. Weapon ElvenBattleTowerBow       ; BALANCE Archer Weapon
  3111.   AttackRange               = GONDOR_STRUCTURE_ARCHER_RANGE
  3112.   WeaponSpeed               = 321       ; dist/sec 
  3113.   MinWeaponSpeed            = 241
  3114.   MaxWeaponSpeed            = 481        ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  3115.   FireFX                    = FX_RohanArcherBowWeapon
  3116.   ScaleWeaponSpeed          = Yes        ; Used for lob weapons, scales speed proportional to range
  3117.   HitPercentage             = 100        ;When this weapon is used it will hit exactly 50% of the time.
  3118.   ScatterRadius             = 16.0        ;When this weapon misses it can randomly miss by as much as this distance.
  3119.   DelayBetweenShots         = Min:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MIN Max:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX
  3120.   PreAttackDelay            = GONDOR_STRUCTURE_ARCHER_BOW_PREATTACKDELAY   ; 1467 is the prep time for archer.
  3121.   PreAttackType             = PER_SHOT    ; Do the delay each time we attack a new target
  3122.   FiringDuration            = GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX    ; Duration of the archer firing shot is 500ms.
  3123.   IsAimingWeapon            = Yes
  3124.   AntiAirborneVehicle        = Yes
  3125.   AntiAirborneMonster        = Yes
  3126.   HitPassengerPercentage    = 20%
  3127.   AcceptableAimDelta        = 360.0    ; We want to be able to shoot all round, as we canit move.
  3128.  
  3129.   CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  3130.  
  3131.  
  3132.   ProjectileNugget          ; Default arrow
  3133.     ProjectileTemplateName  = GoodFactionArrow
  3134.     WarheadTemplateName     = StructureBowWarhead
  3135.     ForbiddenUpgradeNames   = Upgrade_ElvenSilverthornArrowsTower
  3136.   End
  3137.  
  3138.   ProjectileNugget          ; Upgraded arrow
  3139.     ProjectileTemplateName  = MirkwoodArcherSilverthornProjectile
  3140.     WarheadTemplateName     = MirkwoodArcherSilverthornBowWarheadStructural
  3141.     RequiredUpgradeNames    = Upgrade_ElvenSilverthornArrowsTower
  3142.   End
  3143. End
  3144. ;------------------------------------------------------------------------------
  3145. Weapon EvilStructureBow       ; BALANCE Archer Weapon
  3146.   AttackRange               = GONDOR_STRUCTURE_ARCHER_RANGE
  3147.   WeaponSpeed               = 321       ; dist/sec 
  3148.   MinWeaponSpeed            = 241
  3149.   MaxWeaponSpeed            = 481        ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  3150.   FireFX                    = FX_RohanArcherBowWeapon
  3151.   ScaleWeaponSpeed          = Yes        ; Used for lob weapons, scales speed proportional to range
  3152.   HitPercentage             = 100        ;When this weapon is used it will hit exactly 50% of the time.
  3153.   ScatterRadius             = 16.0        ;When this weapon misses it can randomly miss by as much as this distance.
  3154.   DelayBetweenShots         = Min:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MIN Max:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX
  3155.   PreAttackDelay            = GONDOR_STRUCTURE_ARCHER_BOW_PREATTACKDELAY   ; 1467 is the prep time for archer.
  3156.   PreAttackType             = PER_SHOT    ; Do the delay each time we attack a new target
  3157.   FiringDuration            = GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX    ; Duration of the archer firing shot is 500ms.
  3158.   IsAimingWeapon            = Yes
  3159.   AntiAirborneVehicle        = Yes
  3160.   AntiAirborneMonster        = Yes
  3161.   HitPassengerPercentage    = 20%
  3162.   AcceptableAimDelta        = 180.0    ; We want to be able to shoot all round, as we canit move.
  3163.  
  3164.   CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  3165.  
  3166.  
  3167.   ProjectileNugget          ; Default arrow
  3168.     ProjectileTemplateName  = GoodFactionArrow
  3169.     WarheadTemplateName     = StructureBowWarhead
  3170.   End
  3171.  
  3172. End
  3173.  
  3174. ;------------------------------------------------------------------------------
  3175. Weapon HaradrimPalaceBow       ; BALANCE Archer Weapon
  3176.   AttackRange               = GONDOR_STRUCTURE_ARCHER_RANGE
  3177.   WeaponSpeed               = 321       ; dist/sec 
  3178.   MinWeaponSpeed            = 241
  3179.   MaxWeaponSpeed            = 481        ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  3180.   FireFX                    = FX_RohanArcherBowWeapon
  3181.   ScaleWeaponSpeed          = Yes        ; Used for lob weapons, scales speed proportional to range
  3182.   HitPercentage             = 100        ;When this weapon is used it will hit exactly 50% of the time.
  3183.   ScatterRadius             = 16.0        ;When this weapon misses it can randomly miss by as much as this distance.
  3184.   DelayBetweenShots         = Min:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MIN Max:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX
  3185.   PreAttackDelay            = GONDOR_STRUCTURE_ARCHER_BOW_PREATTACKDELAY   ; 1467 is the prep time for archer.
  3186.   PreAttackType             = PER_SHOT    ; Do the delay each time we attack a new target
  3187.   FiringDuration            = GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX    ; Duration of the archer firing shot is 500ms.
  3188.   IsAimingWeapon            = Yes
  3189.   AntiAirborneVehicle        = Yes
  3190.   AntiAirborneMonster        = Yes
  3191.   HitPassengerPercentage    = 20%
  3192.   AcceptableAimDelta        = 180.0    ; We want to be able to shoot all round, as we canit move.
  3193.  
  3194.   CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  3195.  
  3196.  
  3197.   ProjectileNugget          ; Default arrow
  3198.     ProjectileTemplateName  = EvilFactionArrow
  3199.     WarheadTemplateName     = FortressArrowTowerBowWarhead
  3200.     ForbiddenUpgradeNames    = Upgrade_MordorHaradrimPalaceLevel3
  3201.   End
  3202.   ProjectileNugget          ; Default arrow
  3203.     ProjectileTemplateName  = EvilFactionFireArrow
  3204.     WarheadTemplateName     = FortressArrowTowerBowUpgradedWarhead
  3205.     RequiredUpgradeNames    = Upgrade_MordorHaradrimPalaceLevel3
  3206.   End
  3207.  
  3208. End
  3209.  
  3210. ;------------------------------------------------------------------------------
  3211. Weapon TreasureTroveBow       ; BALANCE Archer Weapon
  3212.   AttackRange               = GONDOR_STRUCTURE_ARCHER_RANGE
  3213.   WeaponSpeed               = 321       ; dist/sec 
  3214.   MinWeaponSpeed            = 241
  3215.   MaxWeaponSpeed            = 481        ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  3216.   FireFX                    = FX_RohanArcherBowWeapon
  3217.   ScaleWeaponSpeed          = Yes        ; Used for lob weapons, scales speed proportional to range
  3218.   HitPercentage             = 100        ;When this weapon is used it will hit exactly 50% of the time.
  3219.   ScatterRadius             = 16.0        ;When this weapon misses it can randomly miss by as much as this distance.
  3220.   DelayBetweenShots         = Min:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MIN Max:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX
  3221.   PreAttackDelay            = GONDOR_STRUCTURE_ARCHER_BOW_PREATTACKDELAY   ; 1467 is the prep time for archer.
  3222.   PreAttackType             = PER_SHOT    ; Do the delay each time we attack a new target
  3223.   FiringDuration            = GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX    ; Duration of the archer firing shot is 500ms.
  3224.   IsAimingWeapon            = Yes
  3225.   AntiAirborneVehicle        = Yes
  3226.   AntiAirborneMonster        = Yes
  3227.   HitPassengerPercentage    = 20%
  3228.   AcceptableAimDelta        = 180.0    ; We want to be able to shoot all round, as we canit move.
  3229.  
  3230.   CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  3231.  
  3232.  
  3233.   ProjectileNugget          ; Default arrow
  3234.     ProjectileTemplateName  = EvilFactionArrow
  3235.     WarheadTemplateName     = FortressArrowTowerBowWarhead
  3236.     ForbiddenUpgradeNames    = Upgrade_WildTreasureTroveLevel3
  3237.   End
  3238.   ProjectileNugget          ; Default arrow
  3239.     ProjectileTemplateName  = EvilFactionFireArrow
  3240.     WarheadTemplateName     = FortressArrowTowerBowUpgradedWarhead
  3241.     RequiredUpgradeNames    = Upgrade_WildTreasureTroveLevel3
  3242.   End
  3243.  
  3244. End
  3245.  
  3246. ;------------------------------------------------------------------------------
  3247. Weapon SentryTowerBow
  3248.     AttackRange               = GONDOR_STRUCTURE_ARCHER_RANGE
  3249.     WeaponSpeed               = 321                                                    ; dist/sec 
  3250.     MinWeaponSpeed            = 241
  3251.     MaxWeaponSpeed            = 481                                                    ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  3252.     FireFX                    = FX_RohanArcherBowWeapon
  3253.     ScaleWeaponSpeed          = Yes                                                    ; Used for lob weapons, scales speed proportional to range
  3254.     HitPercentage             = 100                                                    ;When this weapon is used it will hit exactly 50% of the time.
  3255.     ScatterRadius             = 16.0                                                ;When this weapon misses it can randomly miss by as much as this distance.
  3256.     DelayBetweenShots         = Min:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MIN Max:GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX
  3257.     PreAttackDelay            = GONDOR_STRUCTURE_ARCHER_BOW_PREATTACKDELAY            ; 1467 is the prep time for archer.
  3258.     PreAttackType             = PER_SHOT                                            ; Do the delay each time we attack a new target
  3259.     FiringDuration            = GONDOR_STRUCTURE_ARCHER_BOW_DELAYBETWEENSHOTS_MAX    ; Duration of the archer firing shot is 500ms.
  3260.     IsAimingWeapon            = Yes
  3261.     AntiAirborneVehicle        = Yes
  3262.     AntiAirborneMonster        = Yes
  3263.     HitPassengerPercentage    = 20%
  3264.     AcceptableAimDelta        = 180.0    ; We want to be able to shoot all round, as we canit move.
  3265.  
  3266.     CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  3267.  
  3268.     ProjectileNugget                                                    ; Default arrow
  3269.         ProjectileTemplateName  = GoodFactionArrow
  3270.         WarheadTemplateName     = StructureBowWarhead
  3271.         ForbiddenUpgradeNames   = Upgrade_SentryTowerFireArrows
  3272.     End
  3273.  
  3274.     ProjectileNugget                                                    ; Upgraded arrow
  3275.         ProjectileTemplateName  = GoodFactionFireArrow
  3276.         WarheadTemplateName     = StructureBowWarheadFire
  3277.         RequiredUpgradeNames    = Upgrade_SentryTowerFireArrows
  3278.     End
  3279.  
  3280. End
  3281.  
  3282. ;----------------------------
  3283. Weapon StructureBowWarhead
  3284.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  3285.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  3286.   HitStoredTarget = Yes    ; Always hits initial target.
  3287.   DamageNugget                        ; A basic Nugget that just does damage
  3288.     Damage        = STRUCTURE_BOW_DAMAGE
  3289.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  3290.     DelayTime     = 0
  3291.     DamageType    = STRUCTURAL ; Moving all structure-based weapons over to Structural Damage for balance reasons - GB
  3292.     DamageFXType  = GOOD_ARROW_PIERCE
  3293.     DeathType     = NORMAL
  3294.     DamageScalar  = 0% NONE +EntMoot +ElvenEntMoot
  3295.   End
  3296. End
  3297.  
  3298. ;----------------------------
  3299. Weapon StructureBowWarheadFire
  3300.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  3301.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  3302.   HitStoredTarget = Yes    ; Always hits initial target.
  3303.   
  3304.   DamageNugget                        ; A basic Nugget that just does damage
  3305.     Damage        = STRUCTURE_BOW_DAMAGE
  3306.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  3307.     DelayTime     = 0
  3308.     DamageType    = STRUCTURAL ; Moving all structure-based weapons over to Structural Damage for balance reasons - GB
  3309.     DamageFXType  = GOOD_ARROW_PIERCE
  3310.     DeathType     = NORMAL
  3311.     DamageScalar  = 0% NONE +EntMoot +ElvenEntMoot
  3312.   End
  3313.   
  3314.   DamageNugget                        
  3315.      Damage        = KEEP_BOW_UPGRADED_DAMAGE
  3316.     Radius        = 0.0    // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  3317.     DelayTime     = 0
  3318.     DamageType    = FLAME
  3319.     DamageFXType  = FLAME
  3320.     DeathType     = BURNED
  3321.   End
  3322.   
  3323.   
  3324.   
  3325.   
  3326.   
  3327. End
  3328.  
  3329.  
  3330. ;------------------------------------------------------------------------------
  3331. Weapon KeepBow       ; BALANCE Archer Weapon
  3332.     AttackRange               = KEEP_ARCHER_RANGE
  3333.     WeaponSpeed               = 321       ; dist/sec 
  3334.     MinWeaponSpeed            = 241
  3335.     MaxWeaponSpeed            = 481        ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  3336.     FireFX                    = FX_RohanArcherBowWeapon
  3337.     ScaleWeaponSpeed          = Yes        ; Used for lob weapons, scales speed proportional to range
  3338.     HitPercentage             = 100        ;When this weapon is used it will hit exactly 50% of the time.
  3339.     ScatterRadius             = 16.0        ;When this weapon misses it can randomly miss by as much as this distance.
  3340.     DelayBetweenShots         = Min:KEEP_BOW_DELAYBETWEENSHOTS_MIN Max:KEEP_BOW_DELAYBETWEENSHOTS_MAX
  3341.     PreAttackDelay            = KEEP_BOW_PREATTACKDELAY   ; 1467 is the prep time for archer.
  3342.     PreAttackType             = PER_SHOT    ; Do the delay each time we attack a new target
  3343.     FiringDuration            = KEEP_BOW_DELAYBETWEENSHOTS_MAX    ; Duration of the archer firing shot is 500ms.
  3344.     IsAimingWeapon            = Yes
  3345.     AntiAirborneVehicle        = Yes
  3346.     AntiAirborneMonster        = Yes
  3347.     HitPassengerPercentage    = 20%
  3348.     AcceptableAimDelta        = 180.0    ; We want to be able to shoot all round, as we canit move.
  3349.  
  3350.     CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  3351.  
  3352.  
  3353.     ProjectileNugget          ; Default arrow
  3354.         ProjectileTemplateName  = GoodFactionArrow
  3355.         WarheadTemplateName     = KeepBowWarhead
  3356.         ForbiddenUpgradeNames   = Upgrade_BattleTowersToUseFireArrows
  3357.     End
  3358.  
  3359.     ProjectileNugget          ; Upgraded arrow
  3360.         ProjectileTemplateName  = UpgradedGoodFactionArrow
  3361.         WarheadTemplateName     = KeepBowUpgradedWarhead
  3362.         RequiredUpgradeNames    = Upgrade_BattleTowersToUseFireArrows
  3363.     End
  3364.  
  3365. End
  3366.  
  3367. ;----------------------------
  3368. Weapon KeepBowWarhead
  3369.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  3370.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  3371.   HitStoredTarget = Yes    ; Always hits initial target.
  3372.   DamageNugget                        ; A basic Nugget that just does damage
  3373.     Damage        = KEEP_BOW_DAMAGE
  3374.     DamageScalar  = 0% NONE +EntMoot +ElvenEntMoot
  3375.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  3376.     DelayTime     = 0
  3377.     DamageType    = STRUCTURAL ; Moving all structure-based weapons over to Structural Damage for balance reasons - GB
  3378.     DamageFXType  = GOOD_ARROW_PIERCE
  3379.     DeathType     = NORMAL
  3380.   End
  3381. End
  3382.  
  3383.  
  3384. ;------------------------------------------------------------------------------
  3385. Weapon FortressArrowTowerBow       ; BALANCE Archer Weapon
  3386.   AttackRange               = KEEP_ARCHER_RANGE
  3387.   WeaponSpeed               = 321       ; dist/sec 
  3388.   MinWeaponSpeed            = 241
  3389.   MaxWeaponSpeed            = 481        ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  3390.   FireFX                    = FX_RohanArcherBowWeapon
  3391.   ScaleWeaponSpeed          = Yes        ; Used for lob weapons, scales speed proportional to range
  3392.   HitPercentage             = 100        ;When this weapon is used it will hit exactly 50% of the time.
  3393.   ScatterRadius             = 16.0        ;When this weapon misses it can randomly miss by as much as this distance.
  3394.   DelayBetweenShots         = Min:KEEP_BOW_DELAYBETWEENSHOTS_MIN Max:KEEP_BOW_DELAYBETWEENSHOTS_MAX
  3395.   PreAttackDelay            = KEEP_BOW_PREATTACKDELAY   ; 1467 is the prep time for archer.
  3396.   PreAttackType             = PER_SHOT    ; Do the delay each time we attack a new target
  3397.   FiringDuration            = KEEP_BOW_DELAYBETWEENSHOTS_MAX    ; Duration of the archer firing shot is 500ms.
  3398.   IsAimingWeapon            = Yes
  3399.   AntiAirborneVehicle        = Yes
  3400.   AntiAirborneMonster        = Yes
  3401.   HitPassengerPercentage    = 20%
  3402.   AcceptableAimDelta        = 180.0    ; We want to be able to shoot all round, as we canit move.
  3403.  
  3404.   CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  3405.  
  3406.  
  3407.   ProjectileNugget          ; Default arrow
  3408.     ProjectileTemplateName  = GoodFactionArrow
  3409.     WarheadTemplateName     = FortressArrowTowerBowWarhead
  3410.     ForbiddenUpgradeNames   = Upgrade_GoodFortressFlamingMunitions 
  3411.   End
  3412.  
  3413.   ProjectileNugget          ; Upgraded arrow
  3414.     ProjectileTemplateName  = GoodFactionFireArrow
  3415.     WarheadTemplateName     = FortressArrowTowerBowUpgradedWarhead
  3416.     RequiredUpgradeNames    = Upgrade_GoodFortressFlamingMunitions 
  3417.   End
  3418. End
  3419.  
  3420. ;------------------------------------------------------------------------------
  3421. Weapon FortressStructureAxeWeapon        // BALANCE Axe Weapon
  3422.     AttackRange                   = KEEP_ARCHER_RANGE
  3423.     WeaponSpeed                   = 50      // dist/sec 
  3424.     MinWeaponSpeed                = 241
  3425.     MaxWeaponSpeed                = 481        // dist/sec Upper limit on scaling, when attacking past nominal "max" range
  3426.     FireFX                        = FX_DwarfAxeThrowerWeapon
  3427.     ScaleWeaponSpeed              = Yes        // Used for lob weapons, scales speed proportional to range
  3428.     HitPercentage                 = 100        //When this weapon is used it will hit exactly 50% of the time.
  3429.     ScatterRadius                 = 16.0    //When this weapon misses it can randomly miss by as much as this distance.
  3430.     DelayBetweenShots             = Min:KEEP_BOW_DELAYBETWEENSHOTS_MIN Max:KEEP_BOW_DELAYBETWEENSHOTS_MAX
  3431.     PreAttackDelay                = KEEP_BOW_PREATTACKDELAY            // 1467 is the prep time for archer.
  3432.     PreAttackType                 = PER_SHOT                        //Do the delay each time we attack a new target
  3433.     FiringDuration                = KEEP_BOW_DELAYBETWEENSHOTS_MAX  // Duration of the archer firing shot is 500ms.
  3434.     IsAimingWeapon                = Yes
  3435.     AntiAirborneVehicle            = Yes
  3436.     AntiAirborneMonster            = Yes
  3437.     HitPassengerPercentage        = 20%
  3438.     AcceptableAimDelta            = 180.0        // We want to be able to shoot all round, as we canit move.
  3439.  
  3440.     CanBeDodged = Yes                        // Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  3441.  
  3442.  
  3443.     ProjectileNugget                                                    // Default axe
  3444.         ProjectileTemplateName  = StructureDwarvenAxe
  3445.         WarheadTemplateName     = StructureDwarvenAxeThrowWarhead
  3446.         ForbiddenUpgradeNames   = Upgrade_GoodFortressFlamingMunitions  
  3447.     End
  3448.  
  3449.     ProjectileNugget                                                    // Upgraded axe
  3450.         ProjectileTemplateName  = StructureUpgradedDwarvenAxe
  3451.         WarheadTemplateName     = StructureDwarvenAxeThrowForgedBladeUpgradedWarhead
  3452.         RequiredUpgradeNames    = Upgrade_GoodFortressFlamingMunitions 
  3453.     End
  3454. End
  3455.  
  3456. ;------------------------------------------------------------------------------
  3457. Weapon StructureAxeWeapon       ; BALANCE Axe Weapon
  3458.     AttackRange               = KEEP_ARCHER_RANGE
  3459.     WeaponSpeed               = 50       ; dist/sec 
  3460.     MinWeaponSpeed            = 241
  3461.     MaxWeaponSpeed            = 481        ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  3462.     FireFX                    = FX_DwarfAxeThrowerWeapon
  3463.     ScaleWeaponSpeed          = Yes        ; Used for lob weapons, scales speed proportional to range
  3464.     HitPercentage             = 100        ;When this weapon is used it will hit exactly 50% of the time.
  3465.     ScatterRadius             = 16.0        ;When this weapon misses it can randomly miss by as much as this distance.
  3466.     DelayBetweenShots         = Min:KEEP_BOW_DELAYBETWEENSHOTS_MIN Max:KEEP_BOW_DELAYBETWEENSHOTS_MAX
  3467.     PreAttackDelay            = KEEP_BOW_PREATTACKDELAY   ; 1467 is the prep time for archer.
  3468.     PreAttackType             = PER_SHOT    ; Do the delay each time we attack a new target
  3469.     FiringDuration            = KEEP_BOW_DELAYBETWEENSHOTS_MAX    ; Duration of the archer firing shot is 500ms.
  3470.     IsAimingWeapon            = Yes
  3471.     AntiAirborneVehicle        = Yes
  3472.     AntiAirborneMonster        = Yes
  3473.     HitPassengerPercentage    = 20%
  3474.     AcceptableAimDelta        = 180.0    ; We want to be able to shoot all round, as we canit move.
  3475.  
  3476.     CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  3477.  
  3478.  
  3479.     ProjectileNugget                                                    ; Default axe
  3480.         ProjectileTemplateName  = StructureDwarvenAxe
  3481.         WarheadTemplateName     = StructureDwarvenAxeThrowWarhead
  3482.         ForbiddenUpgradeNames   = Upgrade_DwarvenTowerForgedBlades 
  3483.     End
  3484.  
  3485.     ProjectileNugget                                                    ; Upgraded axe
  3486.         ProjectileTemplateName  = StructureUpgradedDwarvenAxe
  3487.         WarheadTemplateName     = StructureDwarvenAxeThrowForgedBladeUpgradedWarhead
  3488.         RequiredUpgradeNames    = Upgrade_DwarvenTowerForgedBlades 
  3489.     End
  3490. End
  3491.  
  3492. ;----------------------------
  3493. Weapon FortressArrowTowerBowWarhead
  3494.     ProjectileCollidesWith    = ENEMIES NEUTRAL STRUCTURES WALLS 
  3495.     RadiusDamageAffects        = ENEMIES NEUTRALS NOT_SIMILAR
  3496.     HitStoredTarget            = Yes        ; Always hits initial target.
  3497.     DamageNugget                        ; A basic Nugget that just does damage
  3498.         Damage        = KEEP_BOW_DAMAGE
  3499.         ;DamageScalar  = 0% NONE +EntMoot +ElvenEntMoot
  3500.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  3501.         DelayTime     = 0
  3502.         DamageType    = STRUCTURAL ; Moving all structure-based weapons over to Structural Damage for balance reasons - GB
  3503.         DamageFXType  = GOOD_ARROW_PIERCE
  3504.         DeathType     = NORMAL
  3505.     End
  3506. End
  3507.  
  3508. //----------------------------
  3509. Weapon FortressArrowTowerBowUpgradedWarhead
  3510.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  3511.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  3512.     HitStoredTarget = Yes                // Always hits initial target.
  3513.     DamageNugget                        
  3514.         Damage        = KEEP_BOW_UPGRADED_DAMAGE
  3515.         Radius        = 0.0    // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  3516.         DelayTime     = 0
  3517.         DamageType    = FLAME
  3518.         DamageFXType  = FLAME
  3519.         DeathType     = BURNED
  3520.     End
  3521.     DamageNugget                        // A basic Nugget that just does damage
  3522.         Damage        = KEEP_BOW_DAMAGE
  3523.         ;DamageScalar  = 0% NONE +EntMoot +ElvenEntMoot
  3524.         Radius        = 0.0            // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  3525.         DelayTime     = 0
  3526.         DamageType    = STRUCTURAL    // Moving all structure-based weapons over to Structural Damage for balance reasons - GB
  3527.         DamageFXType  = GOOD_ARROW_PIERCE
  3528.         DeathType     = NORMAL
  3529.     End
  3530. End
  3531.  
  3532. ;------------------------------------------------------------------------------
  3533. Weapon EvilFortressArrowTowerBow       ;// BALANCE Arrow Tower bow
  3534.     AttackRange                   = KEEP_ARCHER_RANGE
  3535.     WeaponSpeed                   = 321        ;// dist/sec 
  3536.     MinWeaponSpeed                = 241
  3537.     MaxWeaponSpeed                = 481        ;// dist/sec Upper limit on scaling, when attacking past nominal "max" range
  3538.     FireFX                        = FX_RohanArcherBowWeapon
  3539.     ScaleWeaponSpeed              = Yes        ;// Used for lob weapons, scales speed proportional to range
  3540.     HitPercentage                 = 100        ;// When this weapon is used it will hit exactly 50% of the time.
  3541.     ScatterRadius                 = 16.0        ;// When this weapon misses it can randomly miss by as much as this distance.
  3542.     DelayBetweenShots             = Min:KEEP_BOW_DELAYBETWEENSHOTS_MIN Max:KEEP_BOW_DELAYBETWEENSHOTS_MAX
  3543.     PreAttackDelay                = KEEP_BOW_PREATTACKDELAY   ;// 1467 is the prep time for archer.
  3544.     PreAttackType                 = PER_SHOT    ;// Do the delay each time we attack a new target
  3545.     FiringDuration                = KEEP_BOW_DELAYBETWEENSHOTS_MAX    ;// Duration of the archer firing shot is 500ms.
  3546.     IsAimingWeapon                = Yes
  3547.     AntiAirborneVehicle            = Yes
  3548.     AntiAirborneMonster            = Yes
  3549.     HitPassengerPercentage        = 20%
  3550.     AcceptableAimDelta            = 180.0    ;// We want to be able to shoot all round, as we canit move.
  3551.  
  3552.     CanBeDodged                    = Yes            ;// Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  3553.  
  3554.  
  3555.     ProjectileNugget          ;// Default arrow
  3556.         ProjectileTemplateName  = EvilFactionArrow
  3557.         WarheadTemplateName     = FortressArrowTowerBowWarhead
  3558.         ForbiddenUpgradeNames   = Upgrade_EvilFortressFlamingMunitions
  3559.     End
  3560.  
  3561.     ProjectileNugget          ;// Upgraded arrow
  3562.         ProjectileTemplateName  = EvilFactionFireArrow
  3563.         WarheadTemplateName     = FortressArrowTowerBowUpgradedWarhead
  3564.         RequiredUpgradeNames    = Upgrade_EvilFortressFlamingMunitions
  3565.     End
  3566. End
  3567.  
  3568. ;------------------------------------------------------------------------------
  3569. Weapon CastleWallUpgradeBow      ; BALANCE Archer Weapon
  3570.   AttackRange               = KEEP_ARCHER_RANGE
  3571.   WeaponSpeed               = 321       ; dist/sec 
  3572.   MinWeaponSpeed            = 241
  3573.   MaxWeaponSpeed            = 481        ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  3574.   FireFX                    = FX_RohanArcherBowWeapon
  3575.   ScaleWeaponSpeed          = Yes        ; Used for lob weapons, scales speed proportional to range
  3576.   HitPercentage             = 100        ;When this weapon is used it will hit exactly 50% of the time.
  3577.   ScatterRadius             = 16.0        ;When this weapon misses it can randomly miss by as much as this distance.
  3578.   DelayBetweenShots         = Min:KEEP_BOW_DELAYBETWEENSHOTS_MIN Max:KEEP_BOW_DELAYBETWEENSHOTS_MAX
  3579.   PreAttackDelay            = KEEP_BOW_PREATTACKDELAY   ; 1467 is the prep time for archer.
  3580.   PreAttackType             = PER_SHOT    ; Do the delay each time we attack a new target
  3581.   FiringDuration            = KEEP_BOW_DELAYBETWEENSHOTS_MAX    ; Duration of the archer firing shot is 500ms.
  3582.   IsAimingWeapon            = No
  3583.   AntiAirborneVehicle        = Yes
  3584.   AntiAirborneMonster        = Yes
  3585.   HitPassengerPercentage    = 20%
  3586.   AcceptableAimDelta        = 180.0    ; We want to be able to shoot all round, as we canit move.
  3587.  
  3588.   CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  3589.  
  3590.  
  3591.   ProjectileNugget          ; Default arrow
  3592.     ProjectileTemplateName  = GoodFactionArrow
  3593.     WarheadTemplateName     = CastleWallUpgradeBowWarhead
  3594.     ForbiddenUpgradeNames   = Upgrade_BattleTowersToUseFireArrows
  3595.   End
  3596.  
  3597. ;    The fire arrow upgrades - one nugget per faction, because they have one each.
  3598.  
  3599.   ProjectileNugget          ; Fire arrow from gondor
  3600.     ProjectileTemplateName  = GoodFactionFireArrow
  3601.     WarheadTemplateName     = CastleWallUpgradeBowWarheadFire
  3602.     RequiredUpgradeNames    = Upgrade_GondorFireArrows
  3603.   End
  3604.   ProjectileNugget          ; Fire arrow from mordor
  3605.     ProjectileTemplateName  = GoodFactionFireArrow
  3606.     WarheadTemplateName     = CastleWallUpgradeBowWarheadFire
  3607.     RequiredUpgradeNames    = Upgrade_MordorFireArrows
  3608.   End
  3609.   ProjectileNugget          ; Fire arrow from isengard
  3610.     ProjectileTemplateName  = GoodFactionFireArrow
  3611.     WarheadTemplateName     = CastleWallUpgradeBowWarheadFire
  3612.     RequiredUpgradeNames    = Upgrade_IsengardFireArrows
  3613.   End
  3614.   ProjectileNugget          ; Fire arrow from rohan
  3615.     ProjectileTemplateName  = GoodFactionFireArrow
  3616.     WarheadTemplateName     = CastleWallUpgradeBowWarheadFire
  3617.     RequiredUpgradeNames    = Upgrade_RohanFireArrows
  3618.   End
  3619.     
  3620.   ProjectileNugget          ; Fire arrow from corrupted wild
  3621.     ProjectileTemplateName  = GoodFactionFireArrow
  3622.     WarheadTemplateName     = CastleWallUpgradeBowWarheadFire
  3623.     RequiredUpgradeNames    = Upgrade_WildFireArrows
  3624.   End
  3625.   
  3626.   ProjectileNugget          ; Upgraded arrow
  3627.     ProjectileTemplateName  = UpgradedGoodFactionArrow
  3628.     WarheadTemplateName     = CastleWallUpgradeBowWarheadUpgrade
  3629.     RequiredUpgradeNames    = Upgrade_BattleTowersToUseFireArrows
  3630.   End
  3631.  
  3632. End
  3633.  
  3634. ;----------------------------
  3635. Weapon CastleWallUpgradeBowWarhead
  3636.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  3637.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  3638.   HitStoredTarget = Yes    ; Always hits initial target.
  3639.   DamageNugget                        ; A basic Nugget that just does damage
  3640.     Damage        = WALL_TOWER_BOW_DAMAGE
  3641.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  3642.     DelayTime     = 0
  3643.     DamageType    = PIERCE
  3644.     DamageFXType  = GOOD_ARROW_PIERCE
  3645.     DeathType     = NORMAL
  3646.   End
  3647. End
  3648.  
  3649. ;----------------------------
  3650. Weapon CastleWallUpgradeBowWarheadUpgrade
  3651.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  3652.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  3653.   HitStoredTarget = Yes    ; Always hits initial target.
  3654.   DamageNugget                        ; A basic Nugget that just does damage
  3655.     Damage        = WALL_TOWER_BOW_DAMAGE_UPGRADE
  3656.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  3657.     DelayTime     = 0
  3658.     DamageType    = PIERCE
  3659.     DamageFXType  = GOOD_ARROW_PIERCE
  3660.     DeathType     = NORMAL
  3661.   End
  3662. End
  3663.  
  3664. ;----------------------------
  3665. Weapon CastleWallUpgradeBowWarheadFire
  3666.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  3667.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  3668.     HitStoredTarget = Yes    ; Always hits initial target.
  3669.     DamageNugget                        
  3670.         Damage        = GONDOR_ARCHER_FIRE_UPGRADE_FLAME
  3671.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  3672.         DelayTime     = 0
  3673.         DamageType    = FLAME
  3674.         DamageFXType  = GOOD_ARROW_PIERCE
  3675.         DeathType     = BURNED
  3676.         AcceptDamageAdd = No
  3677.     End
  3678.     DamageNugget                        ; A basic Nugget that just does damage
  3679.         Damage        = WALL_TOWER_BOW_DAMAGE_UPGRADE
  3680.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  3681.         DelayTime     = 0
  3682.         DamageType    = PIERCE
  3683.         DamageFXType  = GOOD_ARROW_PIERCE
  3684.         DeathType     = NORMAL
  3685.     End
  3686. End
  3687.  
  3688. ;------------------------------------------------------------------------------
  3689. ;
  3690. ;    Not needed at this point, as the KeepBow swaps warhead on the upgrade, rather than weaponsets.
  3691. ;
  3692. ;Weapon KeepBowFire       ; BALANCE Archer Weapon
  3693. ;  AttackRange               = KEEP_ARCHER_RANGE
  3694. ;  WeaponSpeed               = 321       ; dist/sec 
  3695. ;  MinWeaponSpeed            = 241
  3696. ;  MaxWeaponSpeed            = 481        ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  3697. ;  FireFX                    = FX_RohanArcherBowWeapon
  3698. ;  ScaleWeaponSpeed          = Yes        ; Used for lob weapons, scales speed proportional to range
  3699. ;  HitPercentage             = 100        ;When this weapon is used it will hit exactly 50% of the time.
  3700. ;  ScatterRadius             = 16.0        ;When this weapon misses it can randomly miss by as much as this distance.
  3701. ;  DelayBetweenShots         = Min:KEEP_BOW_DELAYBETWEENSHOTS_MIN Max:KEEP_BOW_DELAYBETWEENSHOTS_MAX
  3702. ;  PreAttackDelay            = KEEP_BOW_PREATTACKDELAY   ; 1467 is the prep time for archer.
  3703. ;  PreAttackType             = PER_SHOT    ; Do the delay each time we attack a new target
  3704. ;  FiringDuration            = KEEP_BOW_DELAYBETWEENSHOTS_MAX    ; Duration of the archer firing shot is 500ms.
  3705. ;  IsAimingWeapon            = Yes
  3706. ;  AntiAirborneVehicle        = Yes
  3707. ;  AntiAirborneMonster        = Yes
  3708. ;  HitPassengerPercentage    = 20%
  3709. ;  AcceptableAimDelta        = 360.0    ; We want to be able to shoot all round, as we canit move.;
  3710. ;
  3711. ;  CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  3712. ;
  3713. ;
  3714. ;  ProjectileNugget          ; Default arrow
  3715. ;    ProjectileTemplateName  = GoodFactionFireArrow
  3716. ;    WarheadTemplateName     = KeepBowFireWarhead
  3717. ;    ForbiddenUpgradeNames   = Upgrade_FireArrows
  3718. ;  End
  3719. ;End
  3720.  
  3721. ;----------------------------
  3722. Weapon KeepBowUpgradedWarhead
  3723.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  3724.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  3725.   HitStoredTarget = Yes    ; Always hits initial target.
  3726.   DamageNugget                        
  3727.     Damage        = KEEP_BOW_UPGRADED_DAMAGE
  3728.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  3729.     DelayTime     = 0
  3730.     DamageType    = PIERCE
  3731.     DamageFXType  = GOOD_ARROW_PIERCE
  3732.     DeathType     = NORMAL
  3733.   End
  3734. End
  3735.  
  3736. ;------------------------------------------------------------------------------
  3737. Weapon GondorArcherBow  
  3738.     AttackRange         = GONDOR_ARCHER_RANGE
  3739.     
  3740.     RangeBonusMinHeight    = 10
  3741.     RangeBonus        = 1
  3742.     RangeBonusPerFoot    = #MULTIPLY( GONDOR_ARCHER_RANGE .01 )
  3743.     
  3744.     LeechRangeWeapon    = Yes
  3745.     WeaponSpeed         = 321         ; dist/sec 
  3746.     MinWeaponSpeed      = 241
  3747.     MaxWeaponSpeed      = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  3748.     FireFX              = FX_RohanArcherBowWeapon
  3749.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  3750.     HitPercentage       = 100     ;When this weapon is used it will hit exactly 50% of the time.
  3751.     ScatterRadius       = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  3752.       
  3753.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  3754.     DelayBetweenShots   = 0
  3755.     PreAttackDelay      = GONDOR_ARCHER_BOW_PREATTACKDELAY  
  3756.     PreAttackRandomAmount     = 200  
  3757.     PreAttackType       = PER_POSITION
  3758.     FiringDuration      = 0
  3759.       
  3760.     ClipSize            = 1
  3761.     AutoReloadsClip        = Yes
  3762.     AutoReloadWhenIdle    = 1    
  3763.     ClipReloadTime        = Min:GONDOR_ARCHER_BOW_RELOADTIME_MIN Max:GONDOR_ARCHER_BOW_RELOADTIME_MAX
  3764.     ContinuousFireOne    = 0
  3765.     ContinuousFireCoast    = GONDOR_ARCHER_BOW_RELOADTIME_MAX 
  3766.       
  3767.     AntiAirborneVehicle    = Yes
  3768.     AntiAirborneMonster    = Yes
  3769.     HitPassengerPercentage    = 20%
  3770.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  3771.  
  3772.     ProjectileNugget    ; Default arrow
  3773.         ProjectileTemplateName  = GondorArcherArrow
  3774.         WarheadTemplateName     = GondorArcherBowWarhead
  3775.         ForbiddenUpgradeNames   = Upgrade_GondorFireArrows
  3776.     End
  3777.     ProjectileNugget    ; Fire arrow available through fire upgrade
  3778.         ProjectileTemplateName  = GondorArcherFireArrow
  3779.         WarheadTemplateName     = GondorArcherBowFireWarhead
  3780.         RequiredUpgradeNames    = Upgrade_GondorFireArrows
  3781.     End
  3782. End
  3783.  
  3784. Weapon GondorArcherBowBombard
  3785.     AttackRange         = GONDOR_ARCHER_BOMBARD_MAXRANGE
  3786.     MinimumAttackRange    = #SUBTRACT( GONDOR_ARCHER_BOMBARD_MINRANGE 75 )
  3787.     
  3788.     RangeBonusMinHeight    = 10
  3789.     RangeBonus        = 1
  3790.     RangeBonusPerFoot    = #MULTIPLY( GONDOR_ARCHER_BOMBARD_MAXRANGE .01 )
  3791.     
  3792.     LeechRangeWeapon    = Yes
  3793.     WeaponSpeed         = 321         ; dist/sec 
  3794.     MinWeaponSpeed      = 241
  3795.     MaxWeaponSpeed      = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  3796.     FireFX              = FX_RohanArcherBowWeapon
  3797.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  3798.     HitPercentage       = 0     ; Always miss and get scattered
  3799.     ScatterRadius       = ARCHER_BOMBARD_SCATTER_RADIUS     ;When this weapon misses it can randomly miss by as much as this distance.
  3800.       
  3801.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  3802.     DelayBetweenShots   = 0
  3803.     PreAttackDelay      = GONDOR_ARCHER_BOW_PREATTACKDELAY  
  3804.     PreAttackRandomAmount     = 200  
  3805.     PreAttackType       = PER_POSITION
  3806.     FiringDuration      = 0
  3807.       
  3808.     ClipSize            = 1
  3809.     AutoReloadsClip        = Yes
  3810.     AutoReloadWhenIdle    = 1    
  3811.     ClipReloadTime        = Min:GONDOR_ARCHER_BOW_RELOADTIME_MIN Max:GONDOR_ARCHER_BOW_RELOADTIME_MAX
  3812.     ContinuousFireOne    = 0
  3813.     ContinuousFireCoast    = GONDOR_ARCHER_BOW_RELOADTIME_MAX 
  3814.       
  3815.     AntiAirborneVehicle    = Yes
  3816.     AntiAirborneMonster    = Yes
  3817.     HitPassengerPercentage    = 20%
  3818.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  3819.  
  3820.     NoVictimNeeded            = Yes ; For use with Bombard
  3821.     BombardType                = Yes
  3822.  
  3823.     ProjectileNugget    ; Default arrow
  3824.         ProjectileTemplateName  = GondorArcherArrowBombard
  3825.         WarheadTemplateName     = GondorArcherBowBombardWarhead
  3826.         ForbiddenUpgradeNames   = Upgrade_GondorFireArrows
  3827.     End
  3828.     ProjectileNugget    ; Fire arrow available through fire upgrade
  3829.         ProjectileTemplateName  = GondorArcherFireArrowBombard
  3830.         WarheadTemplateName     = GondorArcherBowBombardFireWarhead
  3831.         RequiredUpgradeNames    = Upgrade_GondorFireArrows
  3832.     End
  3833. End
  3834.  
  3835. ;----------------------------
  3836. Weapon GondorArcherBowWarhead
  3837.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  3838.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  3839.   HitStoredTarget = Yes    ; Always hits initial target.
  3840.   DamageNugget                        ; A basic Nugget that just does damage
  3841.     Damage        = GONDOR_ARCHER_DAMAGE
  3842.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  3843.     DelayTime     = 0
  3844.     DamageType    = PIERCE
  3845.     DamageFXType  = GOOD_ARROW_PIERCE
  3846.     DeathType     = NORMAL
  3847.   End
  3848. End
  3849.  
  3850. Weapon GondorArcherBowBombardWarhead
  3851.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  3852.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  3853.   DamageNugget                        ; A basic Nugget that just does damage
  3854.     Damage        = GONDOR_ARCHER_DAMAGE
  3855.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  3856.     DelayTime     = 0
  3857.     DamageType    = PIERCE
  3858.     DamageFXType  = GOOD_ARROW_PIERCE
  3859.     DeathType     = NORMAL
  3860.   End
  3861. End
  3862.  
  3863.  
  3864. Weapon GondorArcherBowFireWarhead
  3865.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  3866.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  3867.     HitStoredTarget = Yes    ; Always hits initial target.
  3868.  
  3869.     DamageNugget                        ; A basic Nugget that just does damage
  3870.         Damage          = 1
  3871.         Radius          = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  3872.         DamageType      = FLAME
  3873.         DamageFXType    = FLAME
  3874.         DeathType       = BURNED
  3875.         AcceptDamageAdd = No
  3876.         DamageScalar    = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  3877.     End
  3878.  
  3879.     DamageNugget                        
  3880.         Damage          = GONDOR_ARCHER_FIRE_UPGRADE_DAMAGE
  3881.         Radius          = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  3882.         DelayTime       = 0
  3883.         DamageType      = FLAME
  3884.         DamageFXType    = GOOD_ARROW_PIERCE
  3885.         DeathType       = BURNED
  3886.         AcceptDamageAdd = No
  3887.         DamageScalar  = 25% ALL -STRUCTURE
  3888.     End
  3889.     
  3890.     DamageNugget                        ; A basic Nugget that just does damage
  3891.         Damage          = GONDOR_ARCHER_DAMAGE
  3892.         Radius          = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  3893.         DelayTime       = 0
  3894.         DamageType      = PIERCE
  3895.         DamageFXType    = GOOD_ARROW_PIERCE
  3896.         DeathType       = NORMAL
  3897.     End
  3898. End
  3899.  
  3900. Weapon GondorArcherBowBombardFireWarhead
  3901.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  3902.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  3903.  
  3904.     DamageNugget                        ; A basic Nugget that just does damage
  3905.         Damage          = 1
  3906.         Radius          = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  3907.         DamageType      = FLAME
  3908.         DamageFXType    = FLAME
  3909.         DeathType       = BURNED
  3910.         AcceptDamageAdd = No
  3911.         DamageScalar    = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  3912.     End
  3913.  
  3914.     DamageNugget                        
  3915.         Damage          = GONDOR_ARCHER_FIRE_UPGRADE_DAMAGE
  3916.         Radius          = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  3917.         DelayTime       = 0
  3918.         DamageType      = FLAME
  3919.         DamageFXType    = GOOD_ARROW_PIERCE
  3920.         DeathType       = BURNED
  3921.         AcceptDamageAdd = No
  3922.         DamageScalar  = 25% ALL -STRUCTURE
  3923.     End
  3924.     
  3925.     DamageNugget                        ; A basic Nugget that just does damage
  3926.         Damage          = GONDOR_ARCHER_DAMAGE
  3927.         Radius          = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  3928.         DelayTime       = 0
  3929.         DamageType      = PIERCE
  3930.         DamageFXType    = GOOD_ARROW_PIERCE
  3931.         DeathType       = NORMAL
  3932.     End
  3933.     
  3934.     FireLogicNugget
  3935.         LogicType    = INCREASE_BURN_RATE
  3936.         Radius        = 1.0
  3937.         Damage        = ARCHER_BOMBARD_FIREARROW_BURNRATEINCREASE
  3938.     End
  3939. End
  3940.  
  3941. ;------------------------------------------------------------------------------
  3942. Weapon GondorRangerBow  
  3943.     AttackRange         = GONDOR_RANGER_RANGE
  3944.     
  3945.     RangeBonusMinHeight    = 10
  3946.     RangeBonus        = 1
  3947.     RangeBonusPerFoot    = #MULTIPLY( GONDOR_RANGER_RANGE .01 )
  3948.     
  3949.     LeechRangeWeapon    = Yes
  3950.     WeaponSpeed         = 321         ; dist/sec 
  3951.     MinWeaponSpeed         = 241
  3952.     MaxWeaponSpeed         = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  3953.     FireFX                 = FX_RohanArcherBowWeapon
  3954.     PlayFXWhenStealthed = Yes
  3955.     ScaleWeaponSpeed     = Yes ; Used for lob weapons, scales speed proportional to range
  3956.     HitPercentage         = 100     ;When this weapon is used it will hit exactly 80% of the time.
  3957.     ScatterRadius         = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  3958.     
  3959.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  3960.     DelayBetweenShots     = 0
  3961.     PreAttackDelay      = GONDOR_RANGER_BOW_PREATTACKDELAY
  3962.     PreAttackType       = PER_POSITION
  3963.     PreAttackRandomAmount     = 200 
  3964.     FiringDuration      = 0
  3965.     
  3966.     ClipSize             = 1
  3967.     AutoReloadsClip     = Yes
  3968.     AutoReloadWhenIdle     = 1    
  3969.     ClipReloadTime         = Min:GONDOR_RANGER_BOW_RELOADTIME_MIN Max:GONDOR_RANGER_BOW_RELOADTIME_MAX
  3970.     ContinuousFireOne    = 0
  3971.     ContinuousFireCoast    = GONDOR_RANGER_BOW_RELOADTIME_MAX
  3972.     
  3973.     AntiAirborneVehicle    = Yes
  3974.     AntiAirborneMonster    = Yes
  3975.     HitPassengerPercentage    = 20%
  3976.       CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  3977.     
  3978.     ProjectileNugget                    ; Default arrow
  3979.         ProjectileTemplateName    = GoodFactionArrow
  3980.         WarheadTemplateName       = GondorRangerBowWarhead
  3981.         ForbiddenUpgradeNames     = Upgrade_GondorFireArrows
  3982.     End
  3983.     ProjectileNugget                    ; Fire arrow available from fire arrow upgrade
  3984.         ProjectileTemplateName    = GoodFactionFireArrow
  3985.         WarheadTemplateName       = GondorRangerBowFireWarhead
  3986.         RequiredUpgradeNames      = Upgrade_GondorFireArrows
  3987.     End
  3988. End
  3989.  
  3990. Weapon GondorRangerBowBombard  
  3991.     AttackRange         = GONDOR_RANGER_BOMBARD_MAXRANGE
  3992.     MinimumAttackRange    = #SUBTRACT( GONDOR_RANGER_BOMBARD_MINRANGE 75 )
  3993.     
  3994.     RangeBonusMinHeight    = 10
  3995.     RangeBonus        = 1
  3996.     RangeBonusPerFoot    = #MULTIPLY( GONDOR_RANGER_BOMBARD_MAXRANGE .01 )
  3997.     
  3998.     LeechRangeWeapon    = Yes
  3999.     WeaponSpeed         = 321         ; dist/sec 
  4000.     MinWeaponSpeed         = 241
  4001.     MaxWeaponSpeed         = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  4002.     FireFX                 = FX_RohanArcherBowWeapon
  4003.     PlayFXWhenStealthed = Yes
  4004.     ScaleWeaponSpeed     = Yes ; Used for lob weapons, scales speed proportional to range
  4005.     HitPercentage         = 0     ; Always scatter
  4006.     ScatterRadius         = ARCHER_BOMBARD_SCATTER_RADIUS     ;When this weapon misses it can randomly miss by as much as this distance.
  4007.     
  4008.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  4009.     DelayBetweenShots     = 0
  4010.     PreAttackDelay      = GONDOR_RANGER_BOW_PREATTACKDELAY
  4011.     PreAttackType       = PER_POSITION
  4012.     PreAttackRandomAmount     = 200 
  4013.     FiringDuration      = 0
  4014.     
  4015.     ClipSize             = 1
  4016.     AutoReloadsClip     = Yes
  4017.     AutoReloadWhenIdle     = 1    
  4018.     ClipReloadTime         = Min:GONDOR_RANGER_BOW_RELOADTIME_MIN Max:GONDOR_RANGER_BOW_RELOADTIME_MAX
  4019.     ContinuousFireOne    = 0
  4020.     ContinuousFireCoast    = GONDOR_RANGER_BOW_RELOADTIME_MAX
  4021.     
  4022.     AntiAirborneVehicle    = Yes
  4023.     AntiAirborneMonster    = Yes
  4024.     HitPassengerPercentage    = 20%
  4025.       CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  4026.  
  4027.     NoVictimNeeded            = Yes ; For use with Bombard
  4028.     BombardType                = Yes
  4029.     
  4030.     ProjectileNugget                    ; Default arrow
  4031.         ProjectileTemplateName    = GoodFactionArrowBombard
  4032.         WarheadTemplateName       = GondorRangerBowBombardWarhead
  4033.         ForbiddenUpgradeNames     = Upgrade_GondorFireArrows
  4034.     End
  4035.     ProjectileNugget                    ; Fire arrow available from fire arrow upgrade
  4036.         ProjectileTemplateName    = GoodFactionFireArrowBombard
  4037.         WarheadTemplateName       = GondorRangerBowBombardFireWarhead
  4038.         RequiredUpgradeNames      = Upgrade_GondorFireArrows
  4039.     End
  4040. End
  4041.  
  4042. ;----------------------------
  4043. Weapon GondorRangerBowWarhead
  4044.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS ;ALLIES ( 4/23/04 removed friendly fire)
  4045.   RadiusDamageAffects = ENEMIES NEUTRALS ALLIES NOT_SIMILAR
  4046.   HitStoredTarget = Yes    ; Always hits initial target.
  4047.   DamageNugget                        ; A basic Nugget that just does damage
  4048.     Damage        = GONDOR_RANGER_DAMAGE
  4049.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  4050.     DelayTime     = 0
  4051.     DamageType    = PIERCE
  4052.     DamageFXType  = GOOD_ARROW_PIERCE
  4053.     DeathType     = NORMAL
  4054.   End
  4055. End
  4056.  
  4057. Weapon GondorRangerBowBombardWarhead
  4058.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS ;ALLIES ( 4/23/04 removed friendly fire)
  4059.   RadiusDamageAffects = ENEMIES NEUTRALS ALLIES NOT_SIMILAR
  4060.   DamageNugget                        ; A basic Nugget that just does damage
  4061.     Damage        = GONDOR_RANGER_DAMAGE
  4062.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  4063.     DelayTime     = 0
  4064.     DamageType    = PIERCE
  4065.     DamageFXType  = GOOD_ARROW_PIERCE
  4066.     DeathType     = NORMAL
  4067.   End
  4068. End
  4069.  
  4070.  
  4071. Weapon GondorRangerBowFireWarhead
  4072.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  4073.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  4074.     HitStoredTarget = Yes    ; Always hits initial target.
  4075.  
  4076.     DamageNugget                        
  4077.         Damage        = GONDOR_RANGER_FIRE_UPGRADE_DAMAGE_FLAME
  4078.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  4079.         DelayTime     = 0
  4080.         DamageType    = FLAME
  4081.         DamageFXType  = GOOD_ARROW_PIERCE
  4082.         DeathType     = BURNED
  4083.         AcceptDamageAdd = No
  4084.         DamageScalar  = 25% ALL -STRUCTURE
  4085.     End
  4086.  
  4087.     DamageNugget                        ; A basic Nugget that just does damage
  4088.         Damage        = 1
  4089.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  4090.         DamageType    = FLAME
  4091.         DamageFXType  = FLAME
  4092.         DeathType     = BURNED
  4093.         AcceptDamageAdd = No
  4094.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  4095.     End
  4096.     
  4097.     DamageNugget                        ; A basic Nugget that just does damage
  4098.         Damage        = GONDOR_RANGER_FIRE_UPGRADE_DAMAGE
  4099.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  4100.         DelayTime     = 0
  4101.         DamageType    = PIERCE
  4102.         DamageFXType  = GOOD_ARROW_PIERCE
  4103.         DeathType     = NORMAL
  4104.     End
  4105. End
  4106.  
  4107. Weapon GondorRangerBowBombardFireWarhead
  4108.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  4109.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  4110.  
  4111.     DamageNugget                        
  4112.         Damage        = GONDOR_RANGER_FIRE_UPGRADE_DAMAGE_FLAME
  4113.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  4114.         DelayTime     = 0
  4115.         DamageType    = FLAME
  4116.         DamageFXType  = GOOD_ARROW_PIERCE
  4117.         DeathType     = BURNED
  4118.         AcceptDamageAdd = No
  4119.         DamageScalar  = 25% ALL -STRUCTURE
  4120.     End
  4121.  
  4122.     DamageNugget                        ; A basic Nugget that just does damage
  4123.         Damage        = 1
  4124.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  4125.         DamageType    = FLAME
  4126.         DamageFXType  = FLAME
  4127.         DeathType     = BURNED
  4128.         AcceptDamageAdd = No
  4129.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  4130.     End
  4131.     
  4132.     DamageNugget                        ; A basic Nugget that just does damage
  4133.         Damage        = GONDOR_RANGER_FIRE_UPGRADE_DAMAGE
  4134.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  4135.         DelayTime     = 0
  4136.         DamageType    = PIERCE
  4137.         DamageFXType  = GOOD_ARROW_PIERCE
  4138.         DeathType     = NORMAL
  4139.     End
  4140.  
  4141.     FireLogicNugget
  4142.         LogicType    = INCREASE_BURN_RATE
  4143.         Radius        = 1.0
  4144.         Damage        = ARCHER_BOMBARD_FIREARROW_BURNRATEINCREASE
  4145.     End
  4146. End
  4147.  
  4148. ;------------------------------------------------------------------------------
  4149. Weapon GondorAragornSword
  4150.   LeechRangeWeapon      = Yes
  4151.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  4152.   MeleeWeapon           = Yes
  4153.  
  4154.   DelayBetweenShots     = ARAGORN_DELAYBETWEENSHOTS         ; time between shots, msec
  4155.   PreAttackDelay        = ARAGORN_PREATTACKDELAY             ; 400 is sword swing delay time before contact with target.
  4156.   PreAttackType         = PER_SHOT                        ; Do the delay each time we attack a new target
  4157.   FireFX                = FX_GondorSwordHit
  4158.   ;FireFX                = FX_IsildurSword
  4159.   FiringDuration        = ARAGORN_FIRINGDURATION             ; Duration of the sword swing
  4160.  
  4161.   DamageNugget                                                ; A basic Nugget that just does damage
  4162.     Damage        = ARAGORN_DAMAGE
  4163.     DamageScalar  = 50000% NONE +RohanOathbreaker
  4164.     Radius        = 0.0
  4165.     DelayTime     = 0
  4166.     DamageType    = HERO
  4167.     DamageFXType  = SWORD_SLASH
  4168.     DeathType     = NORMAL
  4169.   End
  4170. End
  4171.  
  4172. ;------------------------------------------------------------------------------
  4173. Weapon GondorAragornHeroSword
  4174.     LeechRangeWeapon    = Yes
  4175.     AttackRange            = STANDARD_MELEE_ATTACK_RANGE
  4176.     MeleeWeapon            = Yes
  4177.   
  4178.     DelayBetweenShots     = ARAGORN_DELAYBETWEENSHOTS         ; time between shots, msec
  4179.     PreAttackDelay        = ARAGORN_PREATTACKDELAY             ; 400 is sword swing delay time before contact with target.
  4180.     PreAttackType         = PER_SHOT                        ; Do the delay each time we attack a new target
  4181.     FireFX                = FX_GondorSwordHit
  4182.     ;FireFX                = FX_IsildurSword
  4183.     FiringDuration        = ARAGORN_FIRINGDURATION             ; Duration of the sword swing
  4184.  
  4185.       RadiusDamageAffects = ENEMIES NEUTRALS
  4186.  
  4187.     DamageNugget                                                ; A basic Nugget that just does damage
  4188.         Damage            = ARAGORN_DAMAGE
  4189.             DamageScalar          = 50000% NONE +RohanOathbreaker
  4190.         Radius            = 10
  4191.         DelayTime        = 0
  4192.         DamageType        = HERO
  4193.         DeathType        = NORMAL
  4194.     End
  4195. End
  4196.  
  4197. ;------------------------------------------------------------------------------
  4198. Weapon GondorIsildurNarsil
  4199.     LeechRangeWeapon    = Yes
  4200.     AttackRange            = STANDARD_MELEE_ATTACK_RANGE
  4201.     MeleeWeapon            = Yes
  4202.     DelayBetweenShots     = ARAGORN_DELAYBETWEENSHOTS         ; time between shots, msec
  4203.     PreAttackDelay        = 2333             ; 400 is sword swing delay time before contact with target.
  4204.     PreAttackType         = PER_SHOT                        ; Do the delay each time we attack a new target
  4205.     FireFX                = FX_GondorSwordHit
  4206.     FiringDuration        = 1333             ; Duration of the sword swing
  4207.    
  4208.   DamageNugget                                                ; A basic Nugget that just does damage
  4209.     Damage            = 10000
  4210.     Radius            = 10
  4211.     DelayTime        = 0
  4212.     DamageType        = HERO
  4213.     DeathType        = NORMAL
  4214.   End
  4215.  
  4216. End
  4217.  
  4218.  
  4219. ;------------------------------------------------------------------------------
  4220. ;Weapon GondorAragornKnifeThrow
  4221. ;  AttackRange = 300
  4222. ;  WeaponSpeed = 321         ; dist/sec 
  4223. ;  MinWeaponSpeed = 241
  4224. ;  MaxWeaponSpeed = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  4225. ;  FireFX = FX_HaradrimSpearThrow
  4226. ;  PlayFXWhenStealthed = Yes
  4227. ;  ScaleWeaponSpeed = Yes ; Used for lob weapons, scales speed proportional to range
  4228. ;  HitPercentage     = 100     ;When this weapon is used it will hit exactly 80% of the time.
  4229. ;  ScatterRadius     = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  4230. ;  DelayBetweenShots = 1000        ; time between shots, msec
  4231. ;  PreAttackDelay        = 2000             ; 1467 is the prep time for archer.
  4232. ;  PreAttackRandomAmount = 0     ; amount of additional preattack variance for archer type attacks only  
  4233. ;  PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  4234. ;  FiringDuration      = 1000    ; Duration of the archer firing shot is 500ms.
  4235. ;  AntiAirborneVehicle        = Yes
  4236. ;  AntiAirborneMonster        = Yes
  4237. ;
  4238. ;  ProjectileNugget            ; Default knife
  4239. ;    ProjectileTemplateName    = AragornKnife
  4240. ;    WarheadTemplateName       = AragornKnifeWarhead
  4241. ;  End
  4242. ;End
  4243.  
  4244. ;----------------------------
  4245. ;Weapon AragornKnifeWarhead
  4246. ;  RadiusDamageAffects = ENEMIES 
  4247. ;  DamageNugget                        ; A basic Nugget that just does damage
  4248. ;    Damage        = 200
  4249. ;    Radius        = 1.6
  4250. ;    DelayTime     = 0
  4251. ;    DamageType    = HERO
  4252. ;    DamageFXType  = GOOD_ARROW_PIERCE
  4253. ;    DeathType     = EXPLODED
  4254. ;  End
  4255. ;End
  4256.  
  4257. ;------------------------------------------------------------------------------
  4258. Weapon GondorAragornDwarfToss
  4259.   IdleAfterFiringDelay  = 0 ; So I don't chuck Gimli, and then chase him because the target doesn't die until he hits him
  4260.   AttackRange           = 4000.0
  4261.   MinimumAttackRange    = 40.0
  4262.   WeaponSpeed           = 120.0        ; dist/sec (huge value == effectively instant)
  4263.   ProjectileFilterInContainer = NONE +GIMLI ; We don't make the projectile, it is in our Contain module.
  4264.   ClipSize              = 1               ; how many shots in a Clip (0 == infinite)
  4265.   ClipReloadTime        = 5400 
  4266.   PreAttackDelay        = 1633             
  4267.   FiringDuration        = 2700
  4268.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  4269.   HitPercentage       = 0 ; never auto hits, always aims at ground
  4270.   ScatterRadius       = 4.0     ;When this weapon is used it can randomly miss by as much as this distance.
  4271.  
  4272.   ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  4273.     WarheadTemplateName = GondorAragornDwarfTossWarhead
  4274.   End
  4275. End
  4276.  
  4277. ;----------------------------
  4278. Weapon GondorAragornDwarfTossWarhead
  4279.   ProjectileCollidesWith = ALLIES ENEMIES NEUTRAL STRUCTURES WALLS 
  4280.   DamageNugget                        ; A basic Nugget that just does damage
  4281.     Damage        = 1
  4282.     Radius        = 0.8
  4283.     DelayTime     = 0
  4284.   End
  4285. End
  4286.  
  4287. ;------------------------------------------------------------------------------
  4288. Weapon FaramirBow       
  4289.     AttackRange            = FARAMIR_BOW_RANGE
  4290.     
  4291.     RangeBonusMinHeight    = 10
  4292.     RangeBonus        = 1
  4293.     RangeBonusPerFoot    = #MULTIPLY( FARAMIR_BOW_RANGE .01 )
  4294.                     
  4295.     LeechRangeWeapon    = Yes
  4296.     WeaponSpeed            = 321         ; dist/sec 
  4297.     MinWeaponSpeed        = 241
  4298.     MaxWeaponSpeed        = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  4299.     FireFX                = FX_RohanArcherBowWeapon
  4300.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  4301.     HitPercentage        = 100     ;When this weapon is used it will hit exactly 75% of the time.
  4302.     ScatterRadius        = 0.0     ;When this weapon misses it can randomly miss by as much as this distance.
  4303.    
  4304.     DelayBetweenShots    = FARAMIR_BOW_DELAYBETWEENSHOTS        ; time between shots, msec
  4305.     PreAttackDelay        = FARAMIR_BOW_PREATTACKDELAY             ; 1467 is the prep time for archer.
  4306.     PreAttackType        = PER_POSITION
  4307.     FiringDuration        = FARAMIR_BOW_FIRINGDURATION   ; Duration of the archer firing shot is 500ms.
  4308.  
  4309.     ClipSize            = 1
  4310.     AutoReloadsClip        = Yes
  4311.     AutoReloadWhenIdle    = 1    
  4312.     ClipReloadTime        = Min:FARAMIR_BOW_RELOADTIME_MIN Max:FARAMIR_BOW_RELOADTIME_MAX
  4313.     ContinuousFireOne    = 0
  4314.     ContinuousFireCoast    = FARAMIR_BOW_RELOADTIME_MAX
  4315.        
  4316.     AntiAirborneVehicle    = Yes
  4317.     AntiAirborneMonster    = Yes  
  4318.     
  4319.     CanFireWhileMoving        = Yes
  4320.    
  4321.     ProjectileNugget                    ; Default arrow
  4322.        ProjectileTemplateName    = GoodFactionArrow
  4323.        WarheadTemplateName       = FaramirBowWarhead
  4324.     End
  4325. End
  4326.  
  4327.  
  4328. ;----------------------------
  4329. Weapon FaramirBowWarhead
  4330.   ProjectileCollidesWith = ALLIES ENEMIES NEUTRAL STRUCTURES WALLS ; Remember, the projectile is a rock, who has no allies
  4331.   RadiusDamageAffects = ENEMIES NEUTRALS ALLIES NOT_SIMILAR
  4332.   HitStoredTarget = Yes    ; Always hits initial target.
  4333.   DamageNugget                        ; A basic Nugget that just does damage
  4334.     Damage        = FARAMIR_BOW_DAMAGE
  4335.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  4336.     DelayTime     = 0
  4337.     DamageType    = HERO_RANGED
  4338.     ;DamageScalar  = 25000% NONE +MordorMumakil
  4339.     DamageFXType  = GOOD_ARROW_PIERCE
  4340.     DeathType     = NORMAL
  4341.   End
  4342. End
  4343.  
  4344. ;------------------------------------------------------------------------------
  4345. Weapon GondorArcherBowMelee       ; BALANCE Archer Weapon
  4346.   LeechRangeWeapon      = Yes
  4347.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  4348.   MeleeWeapon           = Yes
  4349.   FireFX                = FX_RohanArcherBowWeapon;
  4350.   DelayBetweenShots     = 1700            ; time between shots, msec
  4351.   PreAttackDelay        = 666             ; 400 is sword swing delay time before contact with target.
  4352.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  4353.   FiringDuration        = 1000    ; Duration of the sword swing
  4354.  
  4355.   DamageNugget                        ; A basic Nugget that just does damage
  4356.     Damage        = 5
  4357.     Radius        = 0.0
  4358.     DelayTime     = 0
  4359.     DamageType    = PIERCE
  4360.     DamageFXType  = SWORD_SLASH
  4361.     DeathType     = NORMAL
  4362.   End
  4363. End
  4364.  
  4365. ;------------------------------------------------------------------------------
  4366. Weapon GondorCavalrySword
  4367.   LeechRangeWeapon = Yes
  4368.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  4369.   MeleeWeapon           = Yes
  4370.   FireFX                = FX_GondorSwordHit
  4371.   FireFlankFX        = FX_Flanking
  4372.   DelayBetweenShots         = GONDOR_KNIGHT_DELAYBETWEENSHOTS
  4373.   PreAttackDelay            = GONDOR_KNIGHT_PREATTACKDELAY   ; 1467 is the prep time for archer.
  4374.   PreAttackType             = PER_SHOT ; Do the delay each time we attack a new target
  4375.   FiringDuration            = GONDOR_KNIGHT_FIRINGDURATION    ; Duration of the archer firing shot is 500ms.
  4376.  
  4377.   DamageNugget                        ; A basic Nugget that just does damage
  4378.     Damage        = GONDOR_KNIGHT_DAMAGE
  4379.     Radius        = 0.0
  4380.     DelayTime     = 0
  4381.     DamageType    = CAVALRY
  4382.     DamageFXType  = SWORD_SLASH
  4383.     DeathType     = NORMAL
  4384.     FlankingBonus = 50%
  4385.   End
  4386. End
  4387.  
  4388.  
  4389. ;------------------------------------------------------------------------------
  4390. Weapon GondorCavalrySwordUpgraded
  4391.   LeechRangeWeapon = Yes
  4392.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  4393.   MeleeWeapon           = Yes
  4394.   DelayBetweenShots         = GONDOR_KNIGHT_DELAYBETWEENSHOTS
  4395.   PreAttackDelay            = GONDOR_KNIGHT_PREATTACKDELAY   ; 1467 is the prep time for archer.
  4396.   PreAttackType             = PER_SHOT ; Do the delay each time we attack a new target
  4397.   FiringDuration            = GONDOR_KNIGHT_FIRINGDURATION    ; Duration of the archer firing shot is 500ms.
  4398.   FireFX                = FX_GondorSwordHit
  4399.   FireFlankFX        = FX_Flanking
  4400.   DamageNugget                        ; A basic Nugget that just does damage
  4401.     Damage        = GONDOR_KNIGHT_FORGEDBLADES_UPGRADE
  4402.     Radius        = 0.0
  4403.     DelayTime     = 0
  4404.     DamageType    = CAVALRY
  4405.     DamageFXType  = SWORD_SLASH
  4406.     DeathType     = NORMAL
  4407.     FlankingBonus = 50%
  4408.   End
  4409. End
  4410.  
  4411. ;------------------------------------------------------------------------------
  4412. Weapon EvilMenBlackRiderSword
  4413.   LeechRangeWeapon = Yes
  4414.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  4415.   MeleeWeapon           = Yes
  4416.   FireFX                = FX_GondorSwordHit
  4417.   DelayBetweenShots         = EVILMEN_BLACKRIDER_DELAYBETWEENSHOTS
  4418.   PreAttackDelay            = EVILMEN_BLACKRIDER_PREATTACKDELAY   ; 1467 is the prep time for archer.
  4419.   PreAttackType             = PER_SHOT ; Do the delay each time we attack a new target
  4420.   FiringDuration            = EVILMEN_BLACKRIDER_FIRINGDURATION    ; Duration of the archer firing shot is 500ms.
  4421.  
  4422.   DamageNugget                        ; A basic Nugget that just does damage
  4423.     Damage        = EVILMEN_BLACKRIDER_DAMAGE
  4424.     Radius        = 0.0
  4425.     DelayTime     = 0
  4426.     DamageType    = HERO
  4427.     DamageFXType  = SWORD_SLASH
  4428.     DeathType     = NORMAL
  4429.   End
  4430. End
  4431.  
  4432. ;------------------------------------------------------------------------------
  4433. Weapon MouthOfSauronSword
  4434.   LeechRangeWeapon = Yes
  4435.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  4436.   MeleeWeapon           = Yes
  4437.   FireFX                = FX_GondorSwordHit
  4438.   DelayBetweenShots         = MOUTH_OF_SAURON_DELAYBETWEENSHOTS
  4439.   PreAttackDelay            = MOUTH_OF_SAURON_PREATTACKDELAY   ; 1467 is the prep time for archer.
  4440.   PreAttackType             = PER_SHOT ; Do the delay each time we attack a new target
  4441.   FiringDuration            = MOUTH_OF_SAURON_FIRINGDURATION    ; Duration of the archer firing shot is 500ms.
  4442.  
  4443.   DamageNugget                        ; A basic Nugget that just does damage
  4444.     Damage        = MOUTH_OF_SAURON_DAMAGE
  4445.     Radius        = 0.0
  4446.     DelayTime     = 0
  4447.     DamageType    = HERO
  4448.     DamageFXType  = SWORD_SLASH
  4449.     DeathType     = NORMAL
  4450.   End
  4451. End
  4452.  
  4453. ;------------------------------------------------------------------------------
  4454. Weapon EvilMenBlackRiderMorgulBlade
  4455.     LeechRangeWeapon = Yes
  4456.     AttackRange                = 30.0
  4457.     MeleeWeapon                = Yes
  4458.     ;FireFX                    = FX_BlackRiderMorgulBladeTempAudio        ;FX_BlackRiderMorgulBlade
  4459.     DelayBetweenShots        = EVILMEN_BLACKRIDER_DELAYBETWEENSHOTS
  4460.     PreAttackDelay            = EVILMEN_BLACKRIDER_PREATTACKDELAY   ; 1467 is the prep time for archer.
  4461.     PreAttackType            = PER_SHOT ; Do the delay each time we attack a new target
  4462.     FiringDuration            = EVILMEN_BLACKRIDER_FIRINGDURATION    ; Duration of the archer firing shot is 500ms.
  4463.  
  4464.     DamageNugget                        ; A basic Nugget that just does damage
  4465.         Damage        = EVILMEN_BLACKRIDER_MORGULBLADE_DAMAGE
  4466.         Radius        = 0.0
  4467.         DelayTime     = 0
  4468.         DamageType    = MAGIC
  4469.         DamageSubType = BECOME_UNDEAD
  4470.         DamageFXType  = MAGIC
  4471.         DeathType     = NORMAL
  4472.     End
  4473.  
  4474.     DOTNugget                        ; A basic Nugget that just does damage
  4475.         Damage        = DEFAULT_POISON_DAMAGE
  4476.         AcceptDamageAdd = No
  4477.         Radius        = 0.0
  4478.         DelayTime     = 0
  4479.         DamageType    = POISON
  4480.         DamageFXType  = POISON
  4481.         DeathType     = NORMAL
  4482.         DamageInterval = 1000
  4483.         DamageDuration = 10000
  4484.         SpecialObjectFilter = AFFECTED_BY_POISON_OBJECTFILTER
  4485.     End
  4486.  
  4487.     AttributeModifierNugget
  4488.         AttributeModifier        = BlackRiderMorgulBlade
  4489.         DamageFXType             = SWORD_SLASH
  4490.         SpecialObjectFilter      = MORGULBLADE_OBJECT_FILTER
  4491.     End
  4492. End
  4493.  
  4494. ;------------------------------------------------------------------------------
  4495. Weapon WildGoblinKingPoisonedStinger
  4496.   LeechRangeWeapon = Yes
  4497.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  4498.   MeleeWeapon           = Yes
  4499.   FireFX                = FX_GoblinKingPoisonedStingerHit
  4500.   DelayBetweenShots         = WILD_GOBLIN_KING_STINGER_DELAYBETWEENSHOTS
  4501.   PreAttackDelay            = WILD_GOBLIN_KING_STINGER_PREATTACKDELAY   ; 1467 is the prep time for archer.
  4502.   PreAttackType             = PER_SHOT ; Do the delay each time we attack a new target
  4503.   FiringDuration            = WILD_GOBLIN_KING_STINGER_FIRINGDURATION    ; Duration of the archer firing shot is 500ms.
  4504.  
  4505.     DamageNugget                        ; A basic Nugget that just does damage
  4506.         Damage        = WILD_GOBLIN_KING_STINGER_DAMAGE
  4507.         Radius        = 0.0
  4508.         DelayTime     = 0
  4509.         DamageType    = SLASH
  4510.         DamageFXType  = SWORD_SLASH
  4511.         DeathType     = NORMAL
  4512.     End
  4513.  
  4514.     DOTNugget                        ; A basic Nugget that just does damage
  4515.         Damage        = GORKIL_POISON_DAMAGE
  4516.         AcceptDamageAdd = No
  4517.         Radius        = 0.0
  4518.         DelayTime     = 0
  4519.         DamageType    = POISON
  4520.         DamageFXType  = POISON
  4521.         DeathType     = NORMAL
  4522.         DamageInterval = 1000
  4523.         DamageDuration = 30000
  4524.         SpecialObjectFilter = AFFECTED_BY_POISON_OBJECTFILTER
  4525.     End
  4526.  
  4527.     ParalyzeNugget
  4528.         Radius                = 0.0
  4529.         Duration            = POISONED_STINGER_DURATION
  4530.         SpecialObjectFilter    = CRIPPLE_STRIKE_OBJECT_FILTER
  4531.         ParalyzeFX            = FX_PoisonedStunEffect
  4532.     End
  4533. End
  4534.  
  4535. ;------------------------------------------------------------------------------
  4536. Weapon WildShelobPoisonedStinger
  4537.   LeechRangeWeapon = Yes
  4538.   AttackRange            = 30.0
  4539.   MeleeWeapon            = Yes
  4540.   FireFX                = FX_ShelobPoisonStingerStrike        ;FX_GondorSwordHit
  4541.   DelayBetweenShots         = WILD_SHELOB_STINGER_DELAYBETWEENSHOTS
  4542.   PreAttackDelay            = WILD_SHELOB_STINGER_PREATTACKDELAY   ; 1467 is the prep time for archer.
  4543.   PreAttackType             = PER_SHOT ; Do the delay each time we attack a new target
  4544.   FiringDuration            = WILD_SHELOB_STINGER_FIRINGDURATION    ; Duration of the archer firing shot is 500ms.
  4545.  
  4546. ;    DamageNugget                        ; A basic Nugget that just does damage
  4547. ;        Damage        = WILD_SHELOB_STINGER_DAMAGE
  4548. ;        Radius        = 0.0
  4549. ;        DelayTime     = 0
  4550. ;        DamageType    = SLASH
  4551. ;        DamageFXType  = SWORD_SLASH
  4552. ;        DeathType     = NORMAL
  4553. ;    End
  4554.  
  4555.     DOTNugget                        ; A basic Nugget that just does damage
  4556.         Damage        = SHELOB_POISON_DAMAGE
  4557.         AcceptDamageAdd = No
  4558.         Radius        = 0.0
  4559.         DelayTime     = 0
  4560.         DamageType    = POISON
  4561.         DamageFXType  = POISON
  4562.         DeathType     = NORMAL
  4563.         DamageInterval = 1000
  4564.         DamageDuration = 30000
  4565.         SpecialObjectFilter = AFFECTED_BY_POISON_OBJECTFILTER
  4566.     End
  4567.  
  4568.     ParalyzeNugget
  4569.         Radius                = 0.0
  4570.         Duration            = POISONED_STINGER_DURATION
  4571.         SpecialObjectFilter    = CRIPPLE_STRIKE_OBJECT_FILTER
  4572.         ParalyzeFX            = FX_PoisonedStunEffect
  4573.     End
  4574. End
  4575.  
  4576.  
  4577.  
  4578. ;------------------------------------------------------------------------------
  4579. Weapon RiderlessWeapon
  4580.   LeechRangeWeapon = Yes
  4581.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  4582.   MeleeWeapon           = Yes
  4583.   DelayBetweenShots     = 1333            ; time between shots, msec
  4584.   DamageNugget                        ; A basic Nugget that just does damage
  4585.     Damage        = 0.0001
  4586.     Radius        = 0.0
  4587.     DelayTime     = 0
  4588.     DamageType    = SLASH
  4589.     ;DamageFXType  = SWORD_SLASH
  4590.     DeathType     = NORMAL
  4591.   End
  4592. End
  4593.  
  4594. ;------------------------------------------------------------------------------
  4595. Weapon OathbreakerSword ;BALANCE OathbreakerSword
  4596.   RadiusDamageAffects = ENEMIES NEUTRALS
  4597.   LeechRangeWeapon      = Yes
  4598.   AttackRange           = 20.0
  4599.   MeleeWeapon           = Yes
  4600.   DelayBetweenShots     = OATHBREAKER_SWORD_DELAYBETWEENSHOTS  ; Bad Things happen if delay between shots is less than Preattack+Firing times.  You are ready to fire before you are done firing.
  4601.   PreAttackDelay        = OATHBREAKER_SWORD_PREATTACKDELAY             ; 400 is sword swing delay time before contact with target.
  4602.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  4603.   FireFX                = FX_GondorSwordHit
  4604.   FiringDuration        = OATHBREAKER_SWORD_FIRINGDURATION    ; Duration of the sword swing
  4605.  
  4606.   DamageNugget                        ; A basic Nugget that just does damage
  4607.     Damage        = OATHBREAKER_SWORD
  4608.     DamageScalar  = 10% NONE +GondorAragorn +STRUCTURE
  4609.     Radius        = 10.0
  4610.     DelayTime     = 0
  4611.     DamageType    = MAGIC
  4612.     DamageFXType  = SWORD_SLASH
  4613.     DeathType     = NORMAL
  4614.   End
  4615. End
  4616.  
  4617. ;------------------------------------------------------------------------------
  4618. Weapon BarrowWightTouch ;BALANCE BarrowWightTouch
  4619.     RadiusDamageAffects    = ENEMIES NEUTRALS
  4620.     LeechRangeWeapon      = Yes
  4621.     AttackRange           = 20.0
  4622.     MeleeWeapon           = Yes
  4623.     DelayBetweenShots     = BARROWWIGHT_SWORD_DELAYBETWEENSHOTS  ; Bad Things happen if delay between shots is less than Preattack+Firing times.  You are ready to fire before you are done firing.
  4624.     PreAttackDelay        = BARROWWIGHT_SWORD_PREATTACKDELAY             ; 400 is sword swing delay time before contact with target.
  4625.     PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  4626.     FireFX                = FX_BarrowWightHit    ;FX_GondorSwordHit
  4627.     FiringDuration        = BARROWWIGHT_SWORD_FIRINGDURATION    ; Duration of the sword swing
  4628.  
  4629.     DamageNugget                        ; A basic Nugget that just does damage
  4630.         Damage                = BARROWWIGHT_SWORD
  4631.         Radius                = 10.0
  4632.         DelayTime             = 0
  4633.         DamageType            = MAGIC
  4634.         DamageFXType          = SWORD_SLASH
  4635.         DeathType             = NORMAL
  4636.         DrainLife             = Yes
  4637.         DrainLifeMultiplier    = 0.5
  4638.     End
  4639.     AttributeModifierNugget
  4640.         AttributeModifier    = BarrowWightTouchDebuff
  4641.         AntiCategories        = LEADERSHIP BUFF
  4642.         SpecialObjectFilter = GENERIC_BUFF_RECIPIENT_OBJECT_FILTER
  4643.     End
  4644. End
  4645.  
  4646. ;------------------------------------------------------------------------------
  4647. Weapon GondorSword
  4648.   LeechRangeWeapon      = Yes
  4649.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  4650.   MeleeWeapon           = Yes
  4651.   DelayBetweenShots     = GONDOR_SOLDIER_SWORD_DELAYBETWEENSHOTS  ; Bad Things happen if delay between shots is less than Preattack+Firing times.  You are ready to fire before you are done firing.
  4652.   PreAttackDelay        = GONDOR_SOLDIER_SWORD_PREATTACKDELAY             ; 400 is sword swing delay time before contact with target.
  4653.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  4654.   FireFX                = FX_GondorSwordHit
  4655.   FireFlankFX        = FX_Flanking
  4656.   FiringDuration        = GONDOR_SOLDIER_SWORD_FIRINGDURATION    ; Duration of the sword swing
  4657.  
  4658.   DamageNugget                        ; A basic Nugget that just does damage
  4659.     Damage        = GONDOR_SOLDIER_SWORD
  4660.     Radius        = 0.0
  4661.     DelayTime     = 0
  4662.     DamageType    = SLASH
  4663.     DamageFXType  = SWORD_SLASH
  4664.     DeathType     = NORMAL
  4665.     FlankingBonus = 50%
  4666.   End
  4667. End
  4668.  
  4669. ;------------------------------------------------------------------------------
  4670. Weapon GondorSwordUpgraded
  4671.   LeechRangeWeapon      = Yes
  4672.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  4673.   MeleeWeapon           = Yes
  4674.   DelayBetweenShots     = GONDOR_SOLDIER_SWORD_DELAYBETWEENSHOTS  ; Bad Things happen if delay between shots is less than Preattack+Firing times.  You are ready to fire before you are done firing.
  4675.   PreAttackDelay        = GONDOR_SOLDIER_SWORD_PREATTACKDELAY             ; 400 is sword swing delay time before contact with target.
  4676.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  4677.   FireFX                = FX_GondorSwordHit
  4678.   FireFlankFX        = FX_Flanking
  4679.   FiringDuration        = GONDOR_SOLDIER_SWORD_FIRINGDURATION    ; Duration of the sword swing
  4680.  
  4681.   DamageNugget                        ; A basic Nugget that just does damage
  4682.     Damage        = GONDOR_SOLDIER_SWORD_UPGRADE
  4683.     Radius        = 0.0
  4684.     DelayTime     = 0
  4685.     DamageType    = SLASH
  4686.     DamageFXType  = SWORD_SLASH
  4687.     DeathType     = NORMAL
  4688.     FlankingBonus = 50%
  4689.   End
  4690. End
  4691.  
  4692.  
  4693.  
  4694. ;------------------------------------------------------------------------------
  4695. Weapon GondorTowerShieldGuardSword
  4696.     LeechRangeWeapon        = Yes
  4697.     AttackRange                = 35.0
  4698.     MeleeWeapon                = Yes
  4699.     DelayBetweenShots        = GONDOR_TOWERGUARD_DELAYBETWEENSHOTS
  4700.     ClipSize                = INFINITE_CLIP_SIZE
  4701.     PreAttackDelay            = GONDOR_TOWERGUARD_PREATTACKDELAY             ; 400 is sword swing delay time before contact with target.
  4702.     PreAttackType            = PER_SHOT ; Do the delay each time we attack a new target
  4703.     FireFX                    = FX_GondorSwordHit
  4704.     FireFlankFX        = FX_Flanking
  4705.     FiringDuration            = GONDOR_TOWERGUARD_FIRINGDURATION    ; Duration of the sword swing
  4706.  
  4707.     DamageNugget
  4708.         Damage                = GONDOR_TOWERGUARD_DAMAGE
  4709.         DelayTime                = 40
  4710.         DamageType                = SPECIALIST
  4711.         DamageFXType            = SWORD_SLASH
  4712.         DeathType                = NORMAL
  4713.         FlankingBonus = 50%
  4714.         ForbiddenUpgradeNames    = Upgrade_GondorForgedBlades
  4715.     End
  4716.     
  4717.     DamageNugget
  4718.         Damage                    = GONDOR_TOWERGUARD_FORGEDBLADES_UPGRADE_DAMAGE
  4719.         DelayTime                = 40
  4720.         DamageType                = SPECIALIST
  4721.         DamageFXType                = SWORD_SLASH
  4722.         DeathType                = NORMAL
  4723.         FlankingBonus = 50%
  4724.         RequiredUpgradeNames    = Upgrade_GondorForgedBlades
  4725.     End  
  4726.   
  4727. End
  4728.  
  4729. ;------------------------------------------------------------------------------
  4730. Weapon FaramirSword
  4731.   LeechRangeWeapon      = Yes
  4732.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  4733.   MeleeWeapon           = Yes
  4734.   FireFX                = FX_GondorSwordHit
  4735.   DelayBetweenShots     = FARAMIR_DELAYBETWEENSHOTS             ; time between shots, msec
  4736.   PreAttackDelay        = FARAMIR_PREATTACKDELAY     ; 400 is sword swing delay time before contact with target.
  4737.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  4738.   FiringDuration        = FARAMIR_FIRINGDURATION     ; Duration of the sword swing
  4739.  
  4740.   DamageNugget                        ; A basic Nugget that just does damage
  4741.     Damage        = FARAMIR_DAMAGE
  4742.     Radius        = 0.0
  4743.     DelayTime     = 0
  4744.     DamageType    = HERO
  4745.     DamageFXType  = SWORD_SLASH
  4746.     DeathType     = NORMAL
  4747.   End
  4748. End
  4749.  
  4750. ;------------------------------------------------------------------------------
  4751. Weapon BoromirSword
  4752.   LeechRangeWeapon      = Yes
  4753.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  4754.   MeleeWeapon           = Yes
  4755.   DelayBetweenShots     = BOROMIR_DELAYBETWEENSHOTS             
  4756.              ; time between shots, msec
  4757.   PreAttackDelay        = BOROMIR_PREATTACKDELAY                 ; 400 is sword swing delay time before contact with target.
  4758.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  4759.   FireFX                = FX_GondorSwordHit
  4760.   FiringDuration        = BOROMIR_FIRINGDURATION                 ; Duration of the sword swing
  4761.  
  4762.   DamageNugget                        ; A basic Nugget that just does damage
  4763.     Damage        = BOROMIR_DAMAGE                    
  4764.     Radius        = 0.0
  4765.     DelayTime     = 0
  4766.     DamageType    = HERO
  4767.     DamageFXType  = SWORD_SLASH
  4768.     DeathType     = NORMAL
  4769.   End
  4770. End
  4771.  
  4772. ;------------------------------------------------------------------------------
  4773. Weapon ElvenWarriorSword 
  4774.     LeechRangeWeapon      = Yes
  4775.     AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  4776.     MeleeWeapon           = Yes
  4777.     DelayBetweenShots     = 800            ; time between shots, msec
  4778.     PreAttackDelay        = 700             ; 567 is sword swing delay time before contact with target.
  4779.     PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  4780.     FireFX                = FX_GondorSwordHit
  4781.     FireFlankFX            = FX_Flanking
  4782.     FiringDuration        = 800    ; Duration of the sword swing
  4783.     ;OverrideVoiceAttackSound = ElvenWarriorVoiceAttack
  4784.  
  4785.     DamageNugget                        ; A basic Nugget that just does damage
  4786.         Damage        = ELVEN_FIGHTER_MELEE_DAMAGE
  4787.         Radius        = 0.0
  4788.         DelayTime     = 0
  4789.         DamageType    = SLASH
  4790.         DamageFXType  = SWORD_SLASH
  4791.         DeathType     = NORMAL
  4792.         FlankingBonus = 50%
  4793.            ForbiddenUpgradeNames      = Upgrade_ElvenForgedBlades
  4794.     End
  4795.  
  4796.     DamageNugget                        ; A basic Nugget that just does damage
  4797.         Damage        = ELVEN_FIGHTER_MELEE_DAMAGE_UPGRADE
  4798.         Radius        = 0.0
  4799.         DelayTime     = 0
  4800.         DamageType    = SLASH
  4801.         DamageFXType  = SWORD_SLASH
  4802.         DeathType     = NORMAL
  4803.         FlankingBonus = 50%
  4804.         RequiredUpgradeNames      = Upgrade_ElvenForgedBlades
  4805.     End
  4806. End
  4807.  
  4808. ;------------------------------------------------------------------------------
  4809. Weapon GondorRangerSword 
  4810.     LeechRangeWeapon      = Yes
  4811.     AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  4812.     MeleeWeapon           = Yes
  4813.     DelayBetweenShots     = 800            ; time between shots, msec
  4814.     PreAttackDelay        = 700             ; 567 is sword swing delay time before contact with target.
  4815.     PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  4816.     FireFX                = FX_GondorSwordHit
  4817.     FireFlankFX        = FX_Flanking
  4818.     FiringDuration        = 800    ; Duration of the sword swing
  4819.     ;OverrideVoiceAttackSound = ElvenWarriorVoiceAttack   ;RangerVoiceAttackSword
  4820.  
  4821.  
  4822.     DamageNugget                        ; A basic Nugget that just does damage
  4823.         Damage        = GONDOR_RANGER_SWORD_DAMAGE
  4824.         Radius        = 0.0
  4825.         DelayTime     = 0
  4826.         DamageType    = SLASH
  4827.         DamageFXType  = SWORD_SLASH
  4828.         DeathType     = NORMAL
  4829.         FlankingBonus = 50%
  4830.     End
  4831. End
  4832.  
  4833. ;------------------------------------------------------------------------------
  4834. Weapon GandalfSword
  4835.   LeechRangeWeapon = Yes
  4836.   AttackRange           = 20.0
  4837.   MeleeWeapon           = Yes
  4838.   FireFX                = FX_GandalfSwordHit
  4839.   DelayBetweenShots     = GANDALF_THE_GREY_DELAYBETWEENSHOTS         ; time between shots, msec
  4840.   PreAttackDelay        = GANDALF_THE_GREY_PREATTACKDELAY 
  4841.   FiringDuration        = GANDALF_THE_GREY_FIRINGDURATION         
  4842.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  4843.  
  4844.   DamageNugget                        ; A basic Nugget that just does damage
  4845.     Damage        = GANDALF_THE_GREY_DAMAGE                
  4846.     Radius        = 0.0
  4847.     DelayTime     = 0
  4848.     DamageType    = HERO
  4849.     DamageFXType  = SWORD_SLASH
  4850.     DeathType     = NORMAL
  4851.   End
  4852. End
  4853.  
  4854. ;------------------------------------------------------------------------------
  4855. Weapon GandalfWizardBlast ; small microwave push
  4856.     IdleAfterFiringDelay = 0
  4857.     LeechRangeWeapon     = Yes
  4858.     AttackRange = GANDALF_FORCE_ATTACK_RANGE
  4859.     WeaponSpeed = 401         ; dist/sec 
  4860.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR
  4861.     DelayBetweenShots = 5000               ; time between shots, msec
  4862.     PreAttackDelay        = 100
  4863.     PreAttackType         = PER_ATTACK ; Do the delay each time we attack a new target
  4864.     FireFX                = FX_TelekinesisAtBone
  4865.     FiringDuration        = 100
  4866.     DamageDealtAtSelfPosition = Yes 
  4867.     IsAimingWeapon        = Yes
  4868.     AcceptableAimDelta    = 15
  4869.     AntiAirborneVehicle    = No
  4870.     AntiAirborneMonster    = No
  4871.  
  4872.     DamageNugget                        ; A basic Nugget that just does damage
  4873.         Damage            = GANDALF_FORCE_ATTACK_DAMAGE
  4874.         DamageArc         = 75
  4875.         Radius            = 110.0
  4876.         DamageType        = MAGIC
  4877.         DamageFXType    = MAGIC
  4878.         DeathType        = EXPLODED
  4879.         DamageSpeed        = 700.0 ; must match the ShockWaveSpeed below
  4880.     End
  4881.     MetaImpactNugget                    ; A Nugget that throws things back with force
  4882. ;        HeroResist            = .75
  4883.         ShockWaveAmount   = 70.0
  4884.         ShockWaveArc      = 75
  4885.         ShockWaveRadius   = 110.0
  4886.         ShockWaveTaperOff = 0.75
  4887.         ShockWaveZMult    = 1.000
  4888.         ShockWaveSpeed      = 700.0 
  4889.     End
  4890. End
  4891.  
  4892. ;------------------------------------------------------------------------------
  4893. Weapon SarumanWizardBlast ; small microwave push
  4894.     IdleAfterFiringDelay = 0
  4895.     LeechRangeWeapon     = Yes
  4896.     AttackRange = GANDALF_FORCE_ATTACK_RANGE
  4897.     WeaponSpeed = 401         ; dist/sec 
  4898.     RadiusDamageAffects      = ENEMIES NEUTRALS NOT_SIMILAR
  4899.     DelayBetweenShots      = 5000               ; time between shots, msec
  4900.     PreAttackDelay        = 1
  4901.     PreAttackType         = PER_ATTACK ; Do the delay each time we attack a new target
  4902.     FireFX                = FX_TelekinesisAtBoneSaruman
  4903.     FiringDuration        = 1
  4904.     DamageDealtAtSelfPosition = Yes 
  4905.     IsAimingWeapon        = Yes
  4906.     AcceptableAimDelta    = 15
  4907.     AntiAirborneVehicle    = No
  4908.     AntiAirborneMonster    = No
  4909.  
  4910.     DamageNugget                        ; A basic Nugget that just does damage
  4911.         Damage            = SARUMAN_FORCE_ATTACK_DAMAGE
  4912.         DamageArc         = 75
  4913.         Radius            = 110.0
  4914.         DamageType        = MAGIC
  4915.         DamageFXType    = MAGIC
  4916.         DeathType        = EXPLODED
  4917.         DamageSpeed        = 700.0 ; must match the ShockWaveSpeed below
  4918.     End
  4919.     MetaImpactNugget                    ; A Nugget that throws things back with force
  4920. ;        HeroResist            = .75
  4921.         ShockWaveAmount   = 70.0
  4922.         ShockWaveArc      = 75
  4923.         ShockWaveRadius   = 110.0
  4924.         ShockWaveTaperOff = 0.75
  4925.         ShockWaveZMult    = 1.000
  4926.         ShockWaveSpeed      = 700.0 
  4927.     End
  4928. End
  4929.  
  4930. ;------------------------------------------------------------------------------
  4931. Weapon TomBombadilSonicSong ; small microwave push
  4932.     IdleAfterFiringDelay        = 0
  4933.     LeechRangeWeapon            = Yes
  4934.     AttackRange                    = TOM_BOMBADIL_SONIC_SONG_RANGE
  4935.     WeaponSpeed                    = 401         ; dist/sec 
  4936.     RadiusDamageAffects            = ENEMIES NEUTRALS NOT_SIMILAR
  4937.     DelayBetweenShots            = 5000               ; time between shots, msec
  4938.     PreAttackDelay                = 100
  4939.     PreAttackType                 = PER_ATTACK ; Do the delay each time we attack a new target
  4940.     FireFX                        = FX_SonicSong
  4941.     FiringDuration                = 100
  4942.     DamageDealtAtSelfPosition    = Yes 
  4943.     IsAimingWeapon                = Yes
  4944.     AcceptableAimDelta            = 15
  4945.     AntiAirborneVehicle            = No
  4946.     AntiAirborneMonster            = No
  4947.  
  4948.     DamageNugget                ; A basic Nugget that just does damage
  4949.         Damage                    = TOM_BOMBADIL_SONIC_SONG_DAMAGE
  4950.         DamageArc                 = 75
  4951.         Radius                    = 110.0
  4952.         DamageType                = MAGIC
  4953.         DamageFXType            = MAGIC
  4954.         DeathType                = EXPLODED
  4955.         DamageSpeed                = 700.0 ; must match the ShockWaveSpeed below
  4956.     End
  4957.     MetaImpactNugget            ; A Nugget that throws things back with force
  4958. ;        HeroResist                = .75
  4959.         ShockWaveAmount           = 50.0
  4960.         ShockWaveArc              = 75
  4961.         ShockWaveRadius           = 110.0
  4962.         ShockWaveTaperOff         = 0.75
  4963.         ShockWaveZMult            = 1.000
  4964.         ShockWaveSpeed              = 700.0 
  4965.     End
  4966. End
  4967.  
  4968. ;------------------------------------------------------------------------------
  4969. Weapon GandalfWordOfPower ; Big Blue Ring Blast
  4970.     IdleAfterFiringDelay = 0
  4971.     AttackRange = GANDALF_WORD_OF_POWER_RANGE
  4972.     MinimumAttackRange = 0.8
  4973.     WeaponSpeed = 401         ; dist/sec 
  4974.     MinWeaponSpeed = 241
  4975.     MaxWeaponSpeed = 601      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  4976.     ScaleWeaponSpeed = Yes ; Used for lob weapons, scales speed proportional to range
  4977.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  4978.     DelayBetweenShots = 5000               ; time between shots, msec
  4979.     PreAttackDelay        = 2600
  4980.     PreAttackType         = PER_ATTACK ; Do the delay each time we attack a new target
  4981.     PreAttackFX           = FX_GandalfPreAttackBlastReal
  4982.     FireFX                = FX_GandalfBlast
  4983.     FiringDuration      = 1400
  4984.     DamageNugget                        ; A basic Nugget that just does damage
  4985.         Damage            = GANDALF_WORD_OF_POWER_DAMAGE
  4986.         Radius            = 250.0
  4987.         DamageType        = MAGIC
  4988.         DamageFXType    = MAGIC
  4989.         DeathType        = EXPLODED
  4990.         DamageSpeed        = 700.0 ; must match the ShockWaveSpeed below
  4991.     End
  4992.     MetaImpactNugget                    ; A Nugget that throws things back with force
  4993. ;        HeroResist            = .75
  4994.         ShockWaveAmount   = 75.0
  4995.         ShockWaveRadius   = 500.0
  4996.         ShockWaveTaperOff = 1.0
  4997.         ShockWaveZMult    = 1.000
  4998.         ShockWaveSpeed      = 700.0 
  4999.     End
  5000. End
  5001.  
  5002. ;------------------------------------------------------------------------------
  5003. Weapon GandalfStaffWeapon  ; BALANCE GandalfStaffWeapon
  5004.     AttackRange            = GANDALF_PHASER_RANGE                ;600
  5005.     LeechRangeWeapon    = Yes
  5006.     WeaponSpeed            = 801      ; dist/sec 
  5007.     HitPercentage        = 100        ; When this weapon is used it will hit exactly 100% of the time.
  5008.     DelayBetweenShots    = 4500        ; time between shots, msec
  5009.     FireFX              = FX_GandalfBeamWeapon
  5010.     FiringDuration      = 1
  5011.     AntiAirborneVehicle    = Yes
  5012.     AntiAirborneMonster    = Yes
  5013.     AcceptableAimDelta    = 15
  5014.  
  5015.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  5016.  
  5017.     DamageNugget                        ; A basic Nugget that just does damage
  5018.         Damage        = GANDALF_PHASER_DAMAGE    
  5019.         DamageScalar  = 200% NONE +MordorWitchKingOnFellBeast +GondorGwaihir +Drogoth
  5020.         DamageScalar  = 180% NONE +MordorFellBeast
  5021.         Radius        = 17.6
  5022.         DelayTime     = 200           ;The target is dying before the laser appears in the new laser tweak, so try to kill when the laser turns on
  5023.         DamageType    = MAGIC
  5024.         DamageFXType  = FLAME
  5025.         DeathType     = NORMAL
  5026.     End
  5027.     MetaImpactNugget                    ; A Nugget that throws things back with force
  5028. ;        HeroResist          =   0.75
  5029.         ShockWaveAmount        = 50.0
  5030.         ShockWaveRadius        = 17.6
  5031.         ShockWaveTaperOff    = 0.5
  5032.         DelayTime            = 200        ;The target is dying before the laser appears in the new laser tweak, so try to kill when the laser turns on
  5033.     End
  5034. End
  5035.  
  5036. ;------------------------------------------------------------------------------
  5037. Weapon GandalfLightningSwordBlastWeapon  ; BALANCE GandalfStaffWeapon
  5038.     AttackRange            = GANDALF_LIGHTNING_RANGE                ;600
  5039.     WeaponSpeed            = 801      ; dist/sec 
  5040.     HitPercentage            = 100        ; When this weapon is used it will hit exactly 100% of the time.
  5041.     DelayBetweenShots        = 500    ; time between shots, msec
  5042.     PreAttackDelay              = 200    
  5043.     PreAttackType               = PER_SHOT    ; Do the delay each time we attack a new target
  5044.     FireFX                      = FX_GandalfLightningSwordBlastWeapon
  5045.     
  5046.     FiringDuration              = 1
  5047.     AntiAirborneVehicle        = Yes
  5048.     AntiAirborneMonster        = Yes
  5049.  
  5050.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  5051.  
  5052.     DamageNugget                        ; A basic Nugget that just does damage
  5053.         Damage                = GANDALF_LIGHTNING_DAMAGE_FLAME            
  5054.         DamageType            = FLAME
  5055.         DamageFXType          = ELECTRIC
  5056.         DeathType             = BURNED
  5057.     End
  5058.  
  5059.     DamageNugget                        ; A basic Nugget that just does damage
  5060.         Damage                = GANDALF_LIGHTNING_DAMAGE            
  5061.         DamageType            = MAGIC
  5062.         DamageFXType          = ELECTRIC
  5063.         DeathType             = BURNED
  5064.     End
  5065. End
  5066.  
  5067. ;------------------------------------------------------------------------------
  5068. Weapon GandalfSwordMounted            ;Mounted sword is the same as normal sword except it bends to the left
  5069.   LeechRangeWeapon = Yes
  5070.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  5071.   MeleeWeapon           = Yes
  5072.   FireFX                = FX_GandalfSwordMountedHit
  5073.   DelayBetweenShots     = 2000            ; time between shots, msec
  5074.   PreAttackDelay        = 750
  5075.   FiringDuration        = 750
  5076.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  5077.   AimDirection            = 270        ; In order to aim at something, we aim this far off (to the right would be aiming at 270 degrees).
  5078.  
  5079.   DamageNugget                        ; A basic Nugget that just does damage
  5080.     Damage        = 150
  5081.     Radius        = 0.0
  5082.     DelayTime     = 0
  5083.     DamageType    = HERO
  5084.     DamageFXType  = SWORD_SLASH
  5085.     DeathType     = NORMAL
  5086.   End
  5087. End
  5088.  
  5089. ;------------------------------------------------------------------------------
  5090. ;Weapon GandalfStaffWeaponMounted  ; BALANCE GandalfStaffWeapon
  5091. ;    AttackRange            = GANDALF_PHASER_RANGE ;200
  5092. ;    LeechRangeWeapon    = Yes
  5093. ;    WeaponSpeed            = 801      ; dist/sec 
  5094. ;    HitPercentage        = 100        ; When this weapon is used it will hit exactly 100% of the time.
  5095. ;    
  5096. ;    DelayBetweenShots    = 4500        ; time between shots, msec
  5097. ;    PreAttackDelay      = 2000
  5098. ;    PreAttackType       = PER_SHOT    ; Do the delay each time we attack a new target
  5099. ;    FireFX              = FX_GandalfBeamWeaponMounted
  5100. ;    FiringDuration      = 2500
  5101. ;        
  5102. ;    AntiAirborneVehicle    = Yes
  5103. ;    AntiAirborneMonster = Yes
  5104. ;    ClipSize            = 1            ; how many shots in a Clip (0 == infinite)
  5105. ;    ClipReloadTime        = 30000     ; how long to reload a Clip, msec
  5106. ;    AutoReloadsClip        = Yes
  5107. ;    IdleAfterFiringDelay = 2500;
  5108. ;    HoldAfterFiringDelay = 2500;
  5109. ;
  5110. ;    RadiusDamageAffects = ENEMIES NOT_SIMILAR
  5111. ;
  5112. ;    DamageNugget                        ; A basic Nugget that just does damage
  5113. ;        Damage        = 120
  5114. ;        Radius        = 17.6
  5115. ;        DelayTime     = 600                ;The target is dying before the laser appears in the new laser tweak, so try to kill when the laser turns on
  5116. ;        DamageType    = MAGIC
  5117. ;        DamageFXType  = FLAME
  5118. ;        DeathType     = NORMAL
  5119. ;    End
  5120. ;    MetaImpactNugget                    ; A Nugget that throws things back with force
  5121. ;        HeroResist            = .75
  5122. ;        ShockWaveAmount        = 50.0
  5123. ;        ShockWaveRadius        = 17.6
  5124. ;        ShockWaveTaperOff    = 0.5
  5125. ;        DelayTime            = 600        ;The target is dying before the laser appears in the new laser tweak, so try to kill when the laser turns on
  5126. ;    End
  5127. ;
  5128. ;End
  5129.  
  5130. ;------------------------------------------------------------------------------
  5131.  
  5132. Weapon FaramirWoundArrow
  5133.     AttackRange                = FARAMIR_WOUNDING_ARROW_RANGE
  5134.     LeechRangeWeapon            = Yes
  5135.     WeaponSpeed                = 321                 ; dist/sec 
  5136.     MinWeaponSpeed            = 241
  5137.     MaxWeaponSpeed            = 481            ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  5138.     FireFX                = FX_FaramirWoundingArrow
  5139.     ScaleWeaponSpeed            = Yes ; Used for lob weapons, scales speed proportional to range
  5140.     HitPercentage            = 100         ;When this weapon is used it will hit exactly 75% of the time.
  5141.     ScatterRadius            = 0.0         ;When this weapon misses it can randomly miss by as much as this distance.
  5142.     DelayBetweenShots            = 15000                                    ; time between shots, msec
  5143.     PreAttackDelay            = 1                                        ; we want isntant
  5144.     PreAttackType            = PER_POSITION
  5145.     FiringDuration            = 1                                        ; Duration of the archer firing shot is 500ms.
  5146.     ClipSize                = 1
  5147.     AutoReloadsClip            = Yes
  5148.     AutoReloadWhenIdle        = 1    
  5149.     ClipReloadTime            = Min:FARAMIR_BOW_RELOADTIME_MIN Max:FARAMIR_BOW_RELOADTIME_MAX
  5150.     AntiAirborneVehicle        = Yes
  5151.     AntiAirborneMonster        = Yes
  5152.     PreferredTargetBone        = B_LLLID ; Likes to shoot things in their left eye.
  5153.     ProjectileNugget                                        ; A Nugget that creates an Object and sends it to the target with a Warhead
  5154.         ProjectileTemplateName    = FaramirSpecialArrow
  5155.         WarheadTemplateName    = FaramirWoundArrowWarhead
  5156.     End
  5157. End
  5158.  
  5159. ;------------------------------
  5160.  
  5161. Weapon FaramirWoundArrowWarhead
  5162.  
  5163.     ProjectileCollidesWith = ALLIES ENEMIES NEUTRAL STRUCTURES WALLS 
  5164.     RadiusDamageAffects = ENEMIES NEUTRALS ALLIES NOT_SIMILAR
  5165.     HitStoredTarget = Yes    ; Always hits initial target.
  5166.  
  5167.     DamageNugget                        ; A basic Nugget that just does damage
  5168.         Damage        = FARAMIR_WOUNDING_ARROW_DAMAGE
  5169.         DamageScalar  = 10% NONE +STRUCTURE +MordorCatapult +IsengardBallista +GondorTrebuchet +GondorTrebuchetWall 
  5170.         DamageScalar  = 300% NONE +MordorFellBeast +MordorWitchKingOnFellBeast +GondorGwaihir
  5171.         DamageScalar  = 150% NONE +MordorMountainTroll +MordorCaveTroll +MordorDrummerTroll
  5172.         DamageScalar  = 200% NONE +RohanTreeBerd +RohanEntFir +RohanEntBirch +RohanEntFir_Summoned +RohanEntBirch_Summoned 
  5173.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  5174.         DelayTime     = 0
  5175.         DamageType    = HERO
  5176.         DamageFXType  = GOOD_ARROW_PIERCE
  5177.         DeathType     = NORMAL
  5178.     End
  5179.  
  5180.     EmotionWeaponNugget
  5181.         EmotionType            = TERROR
  5182.         Radius                = 0
  5183.         Duration            = 5
  5184.         SpecialObjectFilter    = ANY ENEMIES +MONSTER
  5185.     End
  5186.  
  5187. End
  5188.  
  5189. ;------------------------------------------------------------------------------
  5190. ;------------------------------------------------------------------------------
  5191. ;------------------------------------------------------------------------------
  5192. ;
  5193. ;  Elves
  5194. ;
  5195. ;------------------------------------------------------------------------------
  5196. ;------------------------------------------------------------------------------
  5197. ;------------------------------------------------------------------------------
  5198.  
  5199. ;------------------------------------------------------------------------------
  5200. Weapon HaldirBow
  5201.     AttackRange            = HALDIR_BOW_RANGE
  5202.     
  5203.     RangeBonusMinHeight    = 10
  5204.     RangeBonus        = 1
  5205.     RangeBonusPerFoot    = #MULTIPLY( HALDIR_BOW_RANGE .01 )
  5206.     
  5207.                     
  5208.     WeaponSpeed            = 321         ; dist/sec 
  5209.     MinWeaponSpeed        = 241
  5210.     MaxWeaponSpeed        = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  5211.     FireFX                = FX_RohanArcherBowWeapon
  5212.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  5213.     HitPercentage        = 100     ;When this weapon is used it will hit exactly 100% of the time.
  5214.     ScatterRadius        = 5.0     ;When this weapon misses it can randomly miss by as much as this distance.
  5215.  
  5216.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  5217.     DelayBetweenShots    = HALDIR_DELAYBETWEENSHOTS     ; time between shots, msec
  5218.     PreAttackDelay      = HALDIR_PREATTACKDELAY     ; 1467 is the prep time for archer.
  5219.     PreAttackType       = PER_POSITION ; Do the delay each time we attack a new target
  5220.     FiringDuration      = HALDIR_FIRINGDURATION     ; Duration of the archer firing shot is 500ms.
  5221.  
  5222.     ClipSize            = 1
  5223.     AutoReloadsClip        = Yes
  5224.     AutoReloadWhenIdle    = 1    
  5225.     ClipReloadTime        = Min:HALDIR_RELOADTIME_MIN Max:HALDIR_RELOADTIME_MAX
  5226.     ContinuousFireOne    = 0
  5227.     ContinuousFireCoast    = HALDIR_RELOADTIME_MAX
  5228.     InstantLoadClipOnActivate = Yes
  5229.  
  5230.     AntiAirborneVehicle    = Yes
  5231.     AntiAirborneMonster    = Yes
  5232.     
  5233.     ProjectileNugget                    ; Default Arrow
  5234.         ProjectileTemplateName  = GoodFactionArrow
  5235.         WarheadTemplateName     = HaldirBowWarhead
  5236.     End
  5237. End
  5238.  
  5239. ;-----------------------------------
  5240. Weapon HaldirBowWarhead
  5241.   ProjectileCollidesWith = ALLIES ENEMIES NEUTRAL STRUCTURES WALLS 
  5242.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR
  5243.   HitStoredTarget = Yes    ; Always hits initial target.
  5244.   DamageNugget                        ; A basic Nugget that just does damage
  5245.     Damage        = HALDIR_BOW_DAMAGE
  5246.     ;DamageScalar  = 25000% NONE +MordorMumakil
  5247.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  5248.     DelayTime     = 0
  5249.     DamageType    = HERO_RANGED
  5250.     DamageFXType  = GOOD_ARROW_PIERCE
  5251.     DeathType     = NORMAL
  5252.   End
  5253. End
  5254.  
  5255. ;------------------------------------------------------------------------------
  5256. Weapon HaldirGoldenArrow
  5257.     AttackRange                    = HALDIR_BOW_RANGE                
  5258.     LeechRangeWeapon            = Yes
  5259.     WeaponSpeed                    = 321
  5260.     MinWeaponSpeed                = 241
  5261.     MaxWeaponSpeed                = 481
  5262.     FireFX                        = FX_RohanArcherBowWeapon
  5263.     ScaleWeaponSpeed            = Yes
  5264.     HitPercentage                = 100
  5265.     ScatterRadius                = 5.0
  5266.  
  5267.     DelayBetweenShots            = HALDIR_DELAYBETWEENSHOTS
  5268.     PreAttackDelay                = HALDIR_PREATTACKDELAY
  5269.     PreAttackType                = PER_SHOT
  5270.     FiringDuration                = HALDIR_FIRINGDURATION
  5271.  
  5272.     ProjectileNugget
  5273.         ProjectileTemplateName    = HaldirGoldenArrowProjectile
  5274.         WarheadTemplateName        = HaldirGoldenArrowWarhead
  5275.     End
  5276. End
  5277.  
  5278. ;-----------------------------------
  5279. Weapon HaldirGoldenArrowWarhead
  5280.     ProjectileCollidesWith    = ENEMIES NEUTRAL
  5281.     RadiusDamageAffects        = ENEMIES NEUTRALS NOT_SIMILAR
  5282.     HitStoredTarget            = Yes
  5283.     DamageNugget
  5284.         Damage                = HALDIR_GOLDENARROW_DAMAGE
  5285.         Radius                = 0.0
  5286.         DelayTime            = 0
  5287.         DamageType            = HERO_RANGED
  5288.         DamageFXType        = GOOD_ARROW_PIERCE
  5289.         DeathType            = NORMAL
  5290.     End
  5291. End
  5292.  
  5293.  
  5294. ;------------------------------------------------------------------------------
  5295. Weapon HaldirSword  ; BALANCE Haldir Sword Weapon
  5296.     LeechRangeWeapon      = Yes
  5297.     AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  5298.     MeleeWeapon           = Yes
  5299.     DelayBetweenShots     = HALDIR_SWORD_DELAYBETWEENSHOTS            ; time between shots, msec
  5300.     PreAttackDelay        = HALDIR_SWORD_PREATTACKDELAY     ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  5301.     PreAttackType         = PER_SHOT 
  5302.     FireFX                = FX_GondorSwordHit
  5303.     FiringDuration        = HALDIR_SWORD_FIRINGDURATION             ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  5304.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR
  5305.     DamageNugget                        ; A basic Nugget that just does damage
  5306.         Damage        = HALDIR_SWORD_DAMAGE
  5307.         Radius        = 10.0
  5308.         DelayTime     = 0
  5309.         DamageType    = HERO
  5310.         DamageFXType  = SWORD_SLASH
  5311.         DeathType     = NORMAL
  5312.     End
  5313. End
  5314.  
  5315. ;//------------------------------------------------------------------------------
  5316. ;//------------------------------------------------------------------------------
  5317. ;//------------------------------------------------------------------------------
  5318. ;
  5319. ;//  Dwarves
  5320. ;
  5321. ;//------------------------------------------------------------------------------
  5322. ;//------------------------------------------------------------------------------
  5323. ;//------------------------------------------------------------------------------
  5324.  
  5325. ;------------------------------------------------------------------------------
  5326. Weapon DwarvenArcherBowMelee       ; BALANCE Archer Weapon
  5327.   LeechRangeWeapon      = Yes
  5328.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  5329.   MeleeWeapon           = Yes
  5330. ;  FireFX                = FX_DwarvenArcherBowWeapon;
  5331.   DelayBetweenShots     = 2000            ; time between shots, msec
  5332.   PreAttackDelay        = 666             ; 400 is sword swing delay time before contact with target.
  5333.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  5334.   FiringDuration        = 1000    ; Duration of the sword swing
  5335.  
  5336.   DamageNugget                        ; A basic Nugget that just does damage
  5337.     Damage        = DWARVEN_MENOFDALE_MELEE_DAMAGE    
  5338.     Radius        = 0.0
  5339.     DelayTime     = 0
  5340.     DamageType    = SLASH
  5341.     DamageFXType  = SWORD_SLASH
  5342.     DeathType     = NORMAL
  5343.   End
  5344. End
  5345. ;------------------------------------------------------------------------------
  5346. Weapon DwarvenArcherBow
  5347.     AttackRange         = DWARVEN_MENOFDALE_RANGE
  5348.     
  5349.     RangeBonusMinHeight    = 10
  5350.     RangeBonus        = 1
  5351.     RangeBonusPerFoot    = #MULTIPLY( DWARVEN_MENOFDALE_RANGE .01 )
  5352.     
  5353.     
  5354.     WeaponSpeed            = 321         ; dist/sec 
  5355.     MinWeaponSpeed      = 241
  5356.     MaxWeaponSpeed      = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  5357.     FireFX              = FX_RohanArcherBowWeapon
  5358.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  5359.     HitPercentage       = 100     ;When this weapon is used it will hit exactly 50% of the time.
  5360.     ScatterRadius       = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  5361.  
  5362.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  5363.     DelayBetweenShots   = 0
  5364.     PreAttackDelay      = DWARVEN_MENOFDALE_PREATTACKDELAY  
  5365.     PreAttackRandomAmount     = 200  
  5366.     PreAttackType       = PER_POSITION
  5367.     FiringDuration      = 0   
  5368.  
  5369.     ClipSize            = 1
  5370.     AutoReloadsClip        = Yes
  5371.     AutoReloadWhenIdle    = 1    
  5372.     ClipReloadTime        = Min:DWARVEN_MENOFDALE_BOW_RELOADTIME_MIN Max:DWARVEN_MENOFDALE_BOW_RELOADTIME_MAX
  5373.     ContinuousFireOne    = 0
  5374.     ContinuousFireCoast    = DWARVEN_MENOFDALE_BOW_RELOADTIME_MAX 
  5375.  
  5376.     AntiAirborneVehicle    = Yes
  5377.     AntiAirborneMonster    = Yes
  5378.     HitPassengerPercentage    = 20%
  5379.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  5380.  
  5381.     ProjectileNugget    ; Default arrow
  5382.         ProjectileTemplateName  = GoodFactionArrow
  5383.         WarheadTemplateName     = DwarvenArcherBowWarhead
  5384.         ForbiddenUpgradeNames   = Upgrade_DwarvenFireArrows
  5385.     End
  5386.     ProjectileNugget    ; Fire arrow avialble through fire upgrade
  5387.         ProjectileTemplateName  = GoodFactionFireArrow
  5388.         WarheadTemplateName     = DwarvenArcherBowFireWarhead
  5389.         RequiredUpgradeNames    = Upgrade_DwarvenFireArrows
  5390.     End
  5391. End
  5392.  
  5393. Weapon DwarvenArcherBowBombard
  5394.     AttackRange         = DWARVEN_MENOFDALE_BOMBARD_MAXRANGE
  5395.     MinimumAttackRange  = #SUBTRACT( DWARVEN_MENOFDALE_BOMBARD_MINRANGE 75 )
  5396.     
  5397.     
  5398.     RangeBonusMinHeight    = 10
  5399.     RangeBonus        = 1
  5400.     RangeBonusPerFoot    = #MULTIPLY( DWARVEN_MENOFDALE_BOMBARD_MAXRANGE .01 )
  5401.     
  5402.     WeaponSpeed            = 321         ; dist/sec 
  5403.     MinWeaponSpeed      = 241
  5404.     MaxWeaponSpeed      = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  5405.     FireFX              = FX_RohanArcherBowWeapon
  5406.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  5407.     HitPercentage       = 0     ;Always scatter
  5408.     ScatterRadius       = ARCHER_BOMBARD_SCATTER_RADIUS     ;When this weapon misses it can randomly miss by as much as this distance.
  5409.  
  5410.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  5411.     DelayBetweenShots   = 0
  5412.     PreAttackDelay      = DWARVEN_MENOFDALE_PREATTACKDELAY  
  5413.     PreAttackRandomAmount     = 200  
  5414.     PreAttackType       = PER_POSITION
  5415.     FiringDuration      = 0   
  5416.  
  5417.     ClipSize            = 1
  5418.     AutoReloadsClip        = Yes
  5419.     AutoReloadWhenIdle    = 1    
  5420.     ClipReloadTime        = Min:DWARVEN_MENOFDALE_BOW_RELOADTIME_MIN Max:DWARVEN_MENOFDALE_BOW_RELOADTIME_MAX
  5421.     ContinuousFireOne    = 0
  5422.     ContinuousFireCoast    = DWARVEN_MENOFDALE_BOW_RELOADTIME_MAX 
  5423.  
  5424.     AntiAirborneVehicle    = Yes
  5425.     AntiAirborneMonster    = Yes
  5426.     HitPassengerPercentage    = 20%
  5427.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  5428.     
  5429.     NoVictimNeeded        = Yes
  5430.     BombardType            = Yes
  5431.  
  5432.     ProjectileNugget    ; Default arrow
  5433.         ProjectileTemplateName  = GoodFactionArrowBombard
  5434.         WarheadTemplateName     = DwarvenArcherBowBombardWarhead
  5435.         ForbiddenUpgradeNames   = Upgrade_DwarvenFireArrows
  5436.     End
  5437.     ProjectileNugget    ; Fire arrow avialble through fire upgrade
  5438.         ProjectileTemplateName  = GoodFactionFireArrowBombard
  5439.         WarheadTemplateName     = DwarvenArcherBowBombardFireWarhead
  5440.         RequiredUpgradeNames    = Upgrade_DwarvenFireArrows
  5441.     End
  5442. End
  5443.  
  5444. ;----------------------------
  5445. Weapon DwarvenArcherBowWarhead
  5446.       RadiusDamageAffects = ENEMIES 
  5447.     HitStoredTarget = Yes    ; Always hits initial target.
  5448.       DamageNugget                        ; A basic Nugget that just does damage
  5449.         Damage        = DWARVEN_MENOFDALE_DAMAGE
  5450.       Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  5451.         DelayTime     = 0
  5452.         DamageType    = PIERCE
  5453.         DamageFXType  = GOOD_ARROW_PIERCE
  5454.         DeathType     = EXPLODED
  5455.     End
  5456. End
  5457.  
  5458. Weapon DwarvenArcherBowBombardWarhead
  5459.       RadiusDamageAffects = ENEMIES 
  5460.     HitStoredTarget = No
  5461.       DamageNugget                        ; A basic Nugget that just does damage
  5462.         Damage        = DWARVEN_MENOFDALE_DAMAGE
  5463.       Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  5464.         DelayTime     = 0
  5465.         DamageType    = PIERCE
  5466.         DamageFXType  = GOOD_ARROW_PIERCE
  5467.         DeathType     = EXPLODED
  5468.     End
  5469. End
  5470.  
  5471. Weapon DwarvenArcherBowFireWarhead
  5472.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  5473.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  5474.     HitStoredTarget = Yes    ; Always hits initial target.
  5475.  
  5476.     DamageNugget                        ; A basic Nugget that just does damage
  5477.         Damage        = DWARVEN_MENOFDALE_FIRE_UPGRADE_DAMAGE_FIRE
  5478.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  5479.         DelayTime     = 0
  5480.         DamageType    = FLAME
  5481.         DamageFXType  = GOOD_ARROW_PIERCE
  5482.         DeathType     = BURNED
  5483.         AcceptDamageAdd = No
  5484.         DamageScalar  = 25% ALL -STRUCTURE
  5485.     End
  5486.  
  5487.     DamageNugget                        ; A basic Nugget that just does damage
  5488.         Damage        = 1
  5489.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  5490.         DamageType    = FLAME
  5491.         DamageFXType  = FLAME
  5492.         DeathType     = BURNED
  5493.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  5494.     End
  5495.     
  5496.     DamageNugget                        ; A basic Nugget that just does damage
  5497.         Damage        = DWARVEN_MENOFDALE_FIRE_UPGRADE_DAMAGE
  5498.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  5499.         DelayTime     = 0
  5500.         DamageType    = PIERCE
  5501.         DamageFXType  = GOOD_ARROW_PIERCE
  5502.         DeathType     = NORMAL
  5503.     End
  5504. End
  5505.  
  5506. Weapon DwarvenArcherBowBombardFireWarhead
  5507.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  5508.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  5509.     HitStoredTarget = No
  5510.  
  5511.     DamageNugget                        ; A basic Nugget that just does damage
  5512.         Damage        = DWARVEN_MENOFDALE_FIRE_UPGRADE_DAMAGE_FIRE
  5513.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  5514.         DelayTime     = 0
  5515.         DamageType    = FLAME
  5516.         DamageFXType  = GOOD_ARROW_PIERCE
  5517.         DeathType     = BURNED
  5518.         AcceptDamageAdd = No
  5519.         DamageScalar  = 25% ALL -STRUCTURE
  5520.     End
  5521.  
  5522.     DamageNugget                        ; A basic Nugget that just does damage
  5523.         Damage        = 1
  5524.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  5525.         DamageType    = FLAME
  5526.         DamageFXType  = FLAME
  5527.         DeathType     = BURNED
  5528.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  5529.     End
  5530.     
  5531.     DamageNugget                        ; A basic Nugget that just does damage
  5532.         Damage        = DWARVEN_MENOFDALE_FIRE_UPGRADE_DAMAGE
  5533.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  5534.         DelayTime     = 0
  5535.         DamageType    = PIERCE
  5536.         DamageFXType  = GOOD_ARROW_PIERCE
  5537.         DeathType     = NORMAL
  5538.     End
  5539.  
  5540.     FireLogicNugget
  5541.         LogicType    = INCREASE_BURN_RATE
  5542.         Radius        = 1.0
  5543.         Damage        = ARCHER_BOMBARD_FIREARROW_BURNRATEINCREASE
  5544.     End
  5545. End
  5546.  
  5547. ;//-----------------------------------
  5548. Weapon DwarvenMenOfDaleBlackArrowsRangeFinder
  5549.     AttackRange            = #SUBTRACT( DWARVEN_MENOFDALE_RANGE 100 ) 
  5550.     RangeBonusMinHeight    = 10
  5551.     RangeBonus            = 1
  5552.     RangeBonusPerFoot    = #MULTIPLY( DWARVEN_MENOFDALE_RANGE .01 )
  5553.     DelayBetweenShots        = 1000
  5554.     LeechRangeWeapon        = Yes
  5555.     AcceptableAimDelta        = 45
  5556.     AntiAirborneVehicle        = Yes
  5557.     AntiAirborneMonster        = Yes
  5558.     FinishAttackOnceStarted = No
  5559.     HordeAttackNugget
  5560.         LockWeaponSlot        = QUINARY
  5561.     End
  5562. End
  5563.  
  5564. ;//-----------------------------------
  5565. Weapon DwarvenMenOfDaleBlackArrows
  5566.     AttackRange         = DWARVEN_MENOFDALE_RANGE
  5567.     
  5568.     RangeBonusMinHeight    = 10
  5569.     RangeBonus        = 1
  5570.     RangeBonusPerFoot    = #MULTIPLY( DWARVEN_MENOFDALE_RANGE .01 )
  5571.     
  5572.     WeaponSpeed            = 321         ; dist/sec 
  5573.     MinWeaponSpeed      = 241
  5574.     MaxWeaponSpeed      = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  5575.     FireFX              = FX_RohanArcherBowWeapon
  5576.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  5577.     HitPercentage       = 100     ;When this weapon is used it will hit exactly 50% of the time.
  5578.     ScatterRadius       = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  5579.  
  5580.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  5581.     DelayBetweenShots   = 0
  5582.     PreAttackDelay      = DWARVEN_MENOFDALE_PREATTACKDELAY  
  5583.     PreAttackRandomAmount     = 200  
  5584.     PreAttackType       = PER_POSITION
  5585.     FiringDuration      = 0   
  5586.  
  5587.     ClipSize            = 1
  5588.     AutoReloadsClip        = Yes
  5589.     AutoReloadWhenIdle    = 1    
  5590.     ClipReloadTime        = Min:DWARVEN_MENOFDALE_BOW_RELOADTIME_MIN Max:DWARVEN_MENOFDALE_BOW_RELOADTIME_MAX
  5591.  
  5592.     AntiAirborneVehicle    = Yes
  5593.     AntiAirborneMonster    = Yes
  5594.     HitPassengerPercentage    = 20%
  5595.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  5596.  
  5597.     ProjectileNugget    ; Default arrow
  5598.         ProjectileTemplateName  = BlackArrowsProjectile
  5599.         WarheadTemplateName     = DwarvenMenOfDaleBlackArrowWarhead
  5600.     End
  5601. End
  5602.  
  5603. Weapon DwarvenMenOfDaleBlackArrowWarhead
  5604.     RadiusDamageAffects    = ENEMIES 
  5605.     HitStoredTarget        = Yes
  5606.     DamageNugget
  5607.         Damage            = DWARVEN_MENOFDALE_DAMAGE_BLACKARROWS
  5608.         Radius            = 0.0
  5609.         DelayTime        = 0
  5610.         DamageType        = PIERCE
  5611.         DamageFXType    = GOOD_ARROW_PIERCE
  5612.         DeathType        = EXPLODED
  5613.     End
  5614.     EmotionWeaponNugget
  5615.         EmotionType            = TERROR
  5616.         Radius                = 0
  5617.         Duration            = 5
  5618.         SpecialObjectFilter    = ANY ENEMIES +MONSTER
  5619.     End
  5620. End
  5621.  
  5622. ;//-----------------------------------
  5623. Weapon DwarvenIronHillsCatapultRock  ;// BALANCE Catapult Weapon
  5624.   AttackRange = DWARVEN_CATAPULT_ROCK_RANGE
  5625.   MinimumAttackRange    = DWARVEN_CATAPULT_ROCK_MINRANGE
  5626.   
  5627.   RangeBonusMinHeight    = 10
  5628.     RangeBonus        = 1
  5629.     RangeBonusPerFoot    = #MULTIPLY( DWARVEN_CATAPULT_ROCK_RANGE .01 )
  5630.   
  5631.   WeaponSpeed            = 201         ;// dist/sec 
  5632.   MinWeaponSpeed        = 201
  5633.   FireFX                = FX_DwarvenCatapultWeapon
  5634.   DelayBetweenShots        = DWARVEN_CATAPULT_ROCK_DELAYBETWEENSHOTS    ;// time between shots, msec
  5635.   FXTrigger                = CATAPULT_ROCK
  5636.   PreAttackDelay        = DWARVEN_CATAPULT_ROCK_PREATTACKDELAY
  5637.   PreAttackType            = PER_SHOT                                    ;// Do the delay each time we attack a new target
  5638.   FiringDuration        = DWARVEN_CATAPULT_ROCK_FIRINGDURATION        ;// Catapult firing animation takes 3.0 secs.
  5639.   RequireFollowThru        = Yes
  5640.   ShareTimers            = Yes ;// share timer with catapult heads to you can't fire both in quick succession
  5641.   NoVictimNeeded        = Yes ;// Need no target
  5642.   LeechRangeWeapon        = Yes
  5643.   
  5644.   ScatterRadiusVsInfantry            = 40.0  
  5645.   DisableScatterForTargetsOnWall    = Yes
  5646.   HitPercentage                        = 100 ;//always hits.
  5647. ;//ScatterRadius                    = 50.0 ;When this weapon misses it can randomly miss by as much as this distance.
  5648.  
  5649.   ProjectileNugget                    ;// A Nugget that creates an Object and sends it to the target with a Warhead
  5650.     ProjectileTemplateName = DwarvenCatapultRockProjectile        ;MordorCatapultRockProjectile
  5651.     WarheadTemplateName = DwarvenIronHillsCatapultRockWarhead
  5652.   End
  5653.  
  5654.   ProjectileNugget                    ;// A Nugget that creates an Object and sends it to the target with a Warhead
  5655.     ProjectileTemplateName = DwarvenCatapultRockProjectile2        ;MordorCatapultRockProjectile
  5656.     WarheadTemplateName = DwarvenIronHillsCatapultRockWarhead
  5657.     WeaponLaunchBoneSlotOverride = SECONDARY
  5658.   End
  5659.   
  5660.   ProjectileNugget                                                    ; This nugget is to create a revealing object, so fire
  5661.         AlwaysAttackHereOffset    = X:0 Y:0 Z:0                            ; it directly on top of us, and just use an empty warhead
  5662.         UseAlwaysAttackOffset    = Yes                                    ; so we don't assert.
  5663.         ProjectileTemplateName  = ShroudRevealer_Bombard
  5664.         WarheadTemplateName     = ShipRevealBombardWarhead_Dummy
  5665.     End
  5666.     
  5667. End
  5668.  
  5669. ;//-----------------------------------
  5670. Weapon DwarvenIronHillsCatapultRockWarhead
  5671.     ;FireFX= FX_RockDetonation
  5672.     ProjectileCollidesWith = MONSTERS    STRUCTURES    ; Structures is the default, btw.
  5673.     RadiusDamageAffects = ENEMIES NEUTRALS ALLIES
  5674.     HitPassengerPercentage = 50%
  5675.     
  5676.     DamageNugget                        ; A basic Nugget that just does damage
  5677.         Damage        = DWARVEN_CATAPULT_ROCK_DAMAGE  ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  5678.         Radius     = 20
  5679.         DelayTime     = 0
  5680.         DamageType    = SIEGE
  5681.         DamageFXType  = BIG_ROCK
  5682.         DeathType     = EXPLODED
  5683.         DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  5684.     End
  5685.     
  5686.     DamageNugget                        ; A basic Nugget that just does damage
  5687.         Damage        = DWARVEN_CATAPULT_ROCK_DAMAGE  ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  5688.         DamageTaperOff = 50
  5689.         Radius        = 100.0
  5690.         DelayTime     = 0
  5691.         DamageType    = SIEGE
  5692.         DamageFXType  = BIG_ROCK
  5693.         DeathType     = EXPLODED
  5694.         DamageScalar  = 0% ALL -WALL_UPGRADE -WALL_HUB -WALL_SEGMENT -DEFENSIVE_WALL            ; No damage to allied structures.
  5695.         ;DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  5696.     End
  5697.  
  5698.     MetaImpactNugget                    ; A Nugget that throws things back with force 
  5699. ;        HeroResist            = .75
  5700.         ShockWaveAmount   = 25.0
  5701.         ShockWaveRadius   = 20.0
  5702.         ShockWaveTaperOff = 0.75
  5703.     End
  5704. End
  5705.  
  5706. ;//-----------------------------------
  5707. Weapon DwarvenIronHillsCatapultFlamingShot  ;// BALANCE Catapult Weapon
  5708.   AttackRange = DWARVEN_CATAPULT_ROCK_RANGE
  5709.   MinimumAttackRange    = DWARVEN_CATAPULT_ROCK_MINRANGE
  5710.   
  5711.   RangeBonusMinHeight    = 10
  5712.     RangeBonus        = 1
  5713.     RangeBonusPerFoot    = #MULTIPLY( DWARVEN_CATAPULT_ROCK_RANGE .01 )
  5714.   
  5715.   WeaponSpeed            = 201         ;// dist/sec 
  5716.   MinWeaponSpeed        = 201
  5717.   FireFX                = FX_DwarvenCatapultWeapon
  5718.   DelayBetweenShots        = DWARVEN_CATAPULT_ROCK_DELAYBETWEENSHOTS    ;// time between shots, msec
  5719.   FXTrigger                = CATAPULT_ROCK
  5720.   PreAttackDelay        = DWARVEN_CATAPULT_ROCK_PREATTACKDELAY
  5721.   PreAttackType            = PER_SHOT                                    ;// Do the delay each time we attack a new target
  5722.   FiringDuration        = DWARVEN_CATAPULT_ROCK_FIRINGDURATION        ;// Catapult firing animation takes 3.0 secs.
  5723.   RequireFollowThru        = Yes
  5724.   ShareTimers            = Yes ;// share timer with catapult heads to you can't fire both in quick succession
  5725.   NoVictimNeeded        = Yes ;// Need no target
  5726.   LeechRangeWeapon        = Yes
  5727.   
  5728.   ScatterRadiusVsInfantry            = 40.0  
  5729.   DisableScatterForTargetsOnWall    = Yes
  5730.   HitPercentage                        = 100 ;//always hits.
  5731. ;//ScatterRadius                    = 50.0 ;When this weapon misses it can randomly miss by as much as this distance.
  5732.  
  5733.   ProjectileNugget                    ;// A Nugget that creates an Object and sends it to the target with a Warhead
  5734.     ProjectileTemplateName = DwarvenCatapultFlamingShotProjectile
  5735.     WarheadTemplateName = DwarvenCatapultFlamingShotWarhead
  5736. ;    ForbiddenUpgradeNames   = Upgrade_AllFactionUpgrade
  5737.   End
  5738.  
  5739.   ProjectileNugget                    ;// A Nugget that creates an Object and sends it to the target with a Warhead
  5740.     ProjectileTemplateName = DwarvenCatapultFlamingShotProjectile
  5741.     WarheadTemplateName = DwarvenCatapultFlamingShotWarhead
  5742.     WeaponLaunchBoneSlotOverride = SECONDARY
  5743. ;    ForbiddenUpgradeNames   = Upgrade_AllFactionUpgrade
  5744.   End
  5745.   
  5746. ;   ProjectileNugget                    ;// A Nugget that creates an Object and sends it to the target with a Warhead
  5747. ;    ProjectileTemplateName = DwarvenCatapultFlamingShotProjectileMith
  5748. ;    WarheadTemplateName = DwarvenCatapultFlamingShotWarhead
  5749. ;    RequiredUpgradeNames    = Upgrade_AllFactionUpgrade
  5750. ;  End
  5751.  
  5752. ;  ProjectileNugget                    ;// A Nugget that creates an Object and sends it to the target with a Warhead
  5753. ;    ProjectileTemplateName = DwarvenCatapultFlamingShotProjectileMith
  5754. ;    WarheadTemplateName = DwarvenCatapultFlamingShotWarhead
  5755. ;    WeaponLaunchBoneSlotOverride = SECONDARY
  5756. ;    RequiredUpgradeNames    = Upgrade_AllFactionUpgrade
  5757. ;  End
  5758.   
  5759.   
  5760.  
  5761.   
  5762.   
  5763.   
  5764.       ProjectileNugget                                                    ; This nugget is to create a revealing object, so fire
  5765.         AlwaysAttackHereOffset    = X:0 Y:0 Z:0                            ; it directly on top of us, and just use an empty warhead
  5766.         UseAlwaysAttackOffset    = Yes                                    ; so we don't assert.
  5767.         ProjectileTemplateName  = ShroudRevealer_Bombard
  5768.         WarheadTemplateName     = ShipRevealBombardWarhead_Dummy
  5769.     End
  5770. End
  5771.  
  5772. ;//-----------------------------------
  5773. Weapon DwarvenIronHillsCatapultOilBarrel  ;// BALANCE Catapult Weapon
  5774.     AttackRange                    = DWARVEN_CATAPULT_OILBARREL_RANGE
  5775.     MinimumAttackRange            = DWARVEN_CATAPULT_ROCK_MINRANGE
  5776.     
  5777.     RangeBonusMinHeight    = 10
  5778.     RangeBonus        = 1
  5779.     RangeBonusPerFoot    = #MULTIPLY( DWARVEN_CATAPULT_OILBARREL_RANGE .01 )
  5780.     
  5781.     
  5782.     WeaponSpeed                    = 100
  5783.     MinWeaponSpeed                = 80
  5784.     MaxWeaponSpeed                = 150
  5785.     ScaleWeaponSpeed            = Yes
  5786.     HitPercentage                = 100
  5787.     PreAttackType                = PER_SHOT
  5788.     ;FireFX                        = FX_DwarvenCatapultWeapon    ;sound played by triggersound
  5789.     DamageType                    = FLAME
  5790.     AcceptableAimDelta            = 180.0
  5791.     DelayBetweenShots            = DWARVEN_CATAPULT_ROCK_DELAYBETWEENSHOTS    ;// time between shots, msec
  5792.     FXTrigger                    = CATAPULT_ROCK
  5793.     PreAttackDelay                = DWARVEN_CATAPULT_ROCK_PREATTACKDELAY
  5794.     FiringDuration                = DWARVEN_CATAPULT_ROCK_FIRINGDURATION        ;// Catapult firing animation takes 3.0 secs.
  5795.     RequireFollowThru            = Yes
  5796.     ShareTimers                    = Yes ;// share timer with catapult heads to you can't fire both in quick succession
  5797.     NoVictimNeeded                = Yes ;// Need no target
  5798.     LeechRangeWeapon            = Yes
  5799.   
  5800.     ScatterRadiusVsInfantry            = 40.0  
  5801.     DisableScatterForTargetsOnWall    = Yes
  5802.  
  5803.     ProjectileNugget                    ;// A Nugget that creates an Object and sends it to the target with a Warhead
  5804.         ProjectileTemplateName = DwarvenIronHillsCatapultOilBarrelProjectile
  5805.         WarheadTemplateName = BattleWagonOilBarrelWarhead
  5806.     End
  5807.  
  5808.     ProjectileNugget                    ;// A Nugget that creates an Object and sends it to the target with a Warhead
  5809.         ProjectileTemplateName = DwarvenIronHillsCatapultOilBarrelProjectile2
  5810.         WarheadTemplateName = BattleWagonOilBarrelWarhead
  5811.         WeaponLaunchBoneSlotOverride = SECONDARY
  5812.     End
  5813.     
  5814.     ProjectileNugget                                                    ; This nugget is to create a revealing object, so fire
  5815.         AlwaysAttackHereOffset    = X:0 Y:0 Z:0                            ; it directly on top of us, and just use an empty warhead
  5816.         UseAlwaysAttackOffset    = Yes                                    ; so we don't assert.
  5817.         ProjectileTemplateName  = ShroudRevealer_Bombard
  5818.         WarheadTemplateName     = ShipRevealBombardWarhead_Dummy
  5819.     End
  5820. End
  5821.  
  5822. //-----------------------------------
  5823. Weapon DwarvenMightyCatapultFortressWeapon ;// BALANCE Catapult Weapon
  5824.     AttackRange                    = DWARVEN_MIGHTYCATAPULT_RANGE
  5825.     MinimumAttackRange            = 200.0
  5826.     LeechRangeWeapon            = Yes
  5827.     DelayBetweenShots            = DWARVEN_MIGHTYCATAPULT_DELAYBETWEENSHOTS  
  5828.     PreAttackDelay                = DWARVEN_MIGHTYCATAPULT_PREATTACKDELAY
  5829.     FiringDuration              = DWARVEN_MIGHTYCATAPULT_FIRINGDURATION    
  5830.     FinishAttackOnceStarted        = Yes    
  5831.  
  5832.     //This nugget tells the objects slave to perform the attack
  5833.     SlaveAttackNugget
  5834.     End
  5835. End
  5836.  
  5837. //-----------------------------------
  5838. Weapon DwarvenMightyCatapultRock  ;// BALANCE Catapult Weapon
  5839.     AttackRange                        = DWARVEN_MIGHTYCATAPULT_RANGE
  5840.     MinimumAttackRange                = 200.0
  5841.     WeaponSpeed                        = 201         ;// dist/sec 
  5842.     MinWeaponSpeed                    = 180
  5843.     FireFX                            = FX_DwarvenMightyCatapultWeapon    ;FX_DwarvenCatapultWeapon
  5844.     DelayBetweenShots                = DWARVEN_MIGHTYCATAPULT_DELAYBETWEENSHOTS    ;// time between shots, msec
  5845.     FXTrigger                        = CATAPULT_ROCK
  5846.     PreAttackDelay                    = DWARVEN_MIGHTYCATAPULT_PREATTACKDELAY
  5847.     PreAttackType                    = PER_SHOT                                    ;// Do the delay each time we attack a new target
  5848.     FiringDuration                    = DWARVEN_MIGHTYCATAPULT_FIRINGDURATION        ;// Catapult firing animation takes 3.0 secs.
  5849.     RequireFollowThru                = Yes
  5850.     ShareTimers                        = Yes ;// share timer with catapult heads to you can't fire both in quick succession
  5851.     NoVictimNeeded                    = Yes ;// Need no target
  5852.     LeechRangeWeapon                = Yes
  5853.     //AcceptableAimDelta                = 180
  5854.       
  5855.     ScatterRadiusVsInfantry                = 40.0  
  5856.     DisableScatterForTargetsOnWall            = Yes
  5857.     HitPercentage                    = 1  ;//always hits.
  5858.     ScatterRadius                    = 100.0            ; When this weapon misses it can randomly miss by as much as this distance.
  5859.     ScatterIndependently                = Yes
  5860.         
  5861.  
  5862.     // A Nugget that creates an Object and sends it to the target with a Warhead
  5863.     ProjectileNugget                    
  5864.         ProjectileTemplateName = DwarvenMightyCatapultProjectile
  5865.         WarheadTemplateName = DwarvenMightyCatapultFlamingShotWarhead
  5866. ;        ForbiddenUpgradeNames   = Upgrade_AllFactionUpgrade
  5867.     End
  5868.  
  5869.     // A Nugget that creates an Object and sends it to the target with a Warhead
  5870.     ProjectileNugget                    
  5871.         ProjectileTemplateName = DwarvenMightyCatapultProjectile2    
  5872.         WarheadTemplateName = DwarvenMightyCatapultFlamingShotWarhead
  5873.         WeaponLaunchBoneSlotOverride = SECONDARY
  5874. ;        ForbiddenUpgradeNames   = Upgrade_AllFactionUpgrade
  5875.     End
  5876.  
  5877.     // A Nugget that creates an Object and sends it to the target with a Warhead
  5878.     ProjectileNugget                   
  5879.         ProjectileTemplateName = DwarvenMightyCatapultProjectile3    
  5880.         WarheadTemplateName = DwarvenMightyCatapultFlamingShotWarhead
  5881.         WeaponLaunchBoneSlotOverride = TERTIARY
  5882. ;        ForbiddenUpgradeNames   = Upgrade_AllFactionUpgrade
  5883.     End
  5884.     
  5885.     // A Nugget that creates an Object and sends it to the target with a Warhead
  5886. ;    ProjectileNugget                    
  5887. ;        ProjectileTemplateName = DwarvenMightyCatapultMith    
  5888. ;        WarheadTemplateName = DwarvenMightyCatapultFlamingShotWarhead
  5889. ;        RequiredUpgradeNames    = Upgrade_AllFactionUpgrade
  5890. ;    End
  5891.  
  5892.     // A Nugget that creates an Object and sends it to the target with a Warhead
  5893. ;    ProjectileNugget                    
  5894. ;        ProjectileTemplateName = DwarvenMightyCatapultMith2     
  5895. ;        WarheadTemplateName = DwarvenMightyCatapultFlamingShotWarhead
  5896. ;        WeaponLaunchBoneSlotOverride = SECONDARY
  5897. ;        RequiredUpgradeNames    = Upgrade_AllFactionUpgrade
  5898. ;    End
  5899.  
  5900.     // A Nugget that creates an Object and sends it to the target with a Warhead
  5901. ;    ProjectileNugget                   
  5902. ;        ProjectileTemplateName = DwarvenMightyCatapultMith3    
  5903. ;        WarheadTemplateName = DwarvenMightyCatapultFlamingShotWarhead
  5904. ;        WeaponLaunchBoneSlotOverride = TERTIARY
  5905. ;        RequiredUpgradeNames    = Upgrade_AllFactionUpgrade
  5906. ;    End
  5907.     
  5908.     
  5909. End
  5910.  
  5911. //-----------------------------------
  5912. Weapon DwarvenMightyCatapultFlamingShotWarhead
  5913.     ProjectileCollidesWith    = MONSTERS    STRUCTURES    // Structures is the default, btw.
  5914.     RadiusDamageAffects        = ENEMIES ALLIES NOT_SIMILAR
  5915.  
  5916.     // Increase the burn rate in the area
  5917.     FireLogicNugget 
  5918.         LogicType    =    INCREASE_BURN_RATE
  5919.         Radius        =    DWARVEN_MIGHTYCATAPULT_DAMAGE_RADIUS
  5920.         Damage        =    3
  5921.     End
  5922.  
  5923.     // A basic Nugget that just does damage to trigger explosive mine
  5924.     DamageNugget                        
  5925.         Damage        = 1
  5926.         Radius        = 20
  5927.         DamageType    = FLAME
  5928.         DamageFXType  = FLAME
  5929.         DeathType     = BURNED
  5930.         DamageScalar  = 50000% NONE +MINE // Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  5931.     End
  5932.  
  5933.     // A Nugget that throws things back with force 
  5934.     MetaImpactNugget             
  5935. ;        HeroResist            = .75
  5936.         ShockWaveAmount        = 50.0
  5937.         ShockWaveRadius        = DWARVEN_MIGHTYCATAPULT_DAMAGE_RADIUS
  5938.         ShockWaveTaperOff    = 0.75
  5939.     End
  5940.     
  5941.     // A basic Nugget that just does damage
  5942.     DamageNugget                        
  5943.         Damage        = DWARVEN_MIGHTYCATAPULT_ROCK_DAMAGE    // Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  5944.         Radius        = DWARVEN_MIGHTYCATAPULT_DAMAGE_RADIUS 
  5945.         DelayTime     = 0
  5946.         DamageType    = SIEGE
  5947.         DamageFXType  = BIG_ROCK
  5948.         DeathType     = EXPLODED
  5949.         DamageScalar  = 0% ANY ALLIES +STRUCTURE            // No damage to allied structures.
  5950.     End
  5951.  
  5952.     // A basic Nugget that just does damage
  5953.     DamageNugget                        
  5954.         Damage            = DWARVEN_MIGHTYCATAPULT_FLAME_DAMAGE
  5955.         Radius            = DWARVEN_MIGHTYCATAPULT_DAMAGE_RADIUS 
  5956.         DelayTime         = 0
  5957.         DamageType        = FLAME
  5958.         DamageFXType      = BIG_ROCK
  5959.         DeathType         = BURNED
  5960.         AcceptDamageAdd = No
  5961.         DamageScalar    = 0% ANY ALLIES +STRUCTURE            // No damage to allied structures.
  5962.     End
  5963. End
  5964.  
  5965. ;//---------------------------------- STRUCTURAL CATAPULT WEAPONS -------------
  5966. ;--------------------------- For teh balance stuff! ---------------------------
  5967.  
  5968. //------------------------------------------------------------------------------
  5969. //Fake weapon so that the expansion will pick targets that the slaved catapult can attack
  5970. Weapon DwarvenCatapultExpansionWeapon        
  5971.     AttackRange                    = DWARVEN_CATAPULT_ROCK_RANGE
  5972.     MinimumAttackRange            = DWARVEN_CATAPULT_ROCK_MINRANGE
  5973.     LeechRangeWeapon            = Yes
  5974.     DelayBetweenShots            = DWARVEN_CATAPULT_ROCK_DELAYBETWEENSHOTS  
  5975.     PreAttackDelay                = DWARVEN_CATAPULT_ROCK_PREATTACKDELAY
  5976.     FiringDuration              = DWARVEN_CATAPULT_ROCK_FIRINGDURATION
  5977.     AcceptableAimDelta            = DWARVEN_CATAPULT_EXPANSION_AIM_DELTA  
  5978.     FinishAttackOnceStarted        = Yes    
  5979.  
  5980.     //This nugget tells the objects slave to perform the attack
  5981.     SlaveAttackNugget
  5982.     End
  5983. End
  5984.  
  5985. //-----------------------------------
  5986. Weapon DwarvenIronHillsCatapultRock_Structural  ;// BALANCE Catapult Weapon
  5987.     AttackRange                = DWARVEN_CATAPULT_ROCK_RANGE
  5988.     MinimumAttackRange        = DWARVEN_CATAPULT_ROCK_MINRANGE
  5989.       
  5990.         ;RangeBonusMinHeight        = 10
  5991.         ;RangeBonus            = 1
  5992.         ;RangeBonusPerFoot    = #MULTIPLY( DWARVEN_CATAPULT_ROCK_RANGE .01 )
  5993.       
  5994.     WeaponSpeed                = 201         ;// dist/sec 
  5995.     MinWeaponSpeed            = 201
  5996.     FireFX                    = FX_DwarvenCatapultWeapon
  5997.     DelayBetweenShots        = DWARVEN_CATAPULT_ROCK_DELAYBETWEENSHOTS    ;// time between shots, msec
  5998.     FXTrigger                = CATAPULT_ROCK
  5999.     PreAttackDelay            = DWARVEN_CATAPULT_ROCK_PREATTACKDELAY
  6000.     PreAttackType            = PER_SHOT                                    ;// Do the delay each time we attack a new target
  6001.     FiringDuration            = DWARVEN_CATAPULT_ROCK_FIRINGDURATION        ;// Catapult firing animation takes 3.0 secs.
  6002.     RequireFollowThru        = Yes
  6003.     ShareTimers                = Yes ;// share timer with catapult heads to you can't fire both in quick succession
  6004.     NoVictimNeeded            = Yes ;// Need no target
  6005.     LeechRangeWeapon        = Yes
  6006.     IsAimingWeapon            = Yes
  6007.       
  6008.     ScatterRadiusVsInfantry            = 40.0  
  6009.     DisableScatterForTargetsOnWall    = Yes
  6010.     HitPercentage                    = 100 ;//always hits.
  6011.     ;//ScatterRadius                    = 50.0 ;When this weapon misses it can randomly miss by as much as this distance.
  6012.  
  6013.     // A Nugget that creates an Object and sends it to the target with a Warhead
  6014.     ProjectileNugget                    
  6015.         ProjectileTemplateName    = DwarvenCatapultRockProjectile    
  6016.         WarheadTemplateName        = DwarvenIronHillsCatapultRockWarhead_Structural
  6017.     End
  6018.  
  6019.     // A Nugget that creates an Object and sends it to the target with a Warhead
  6020.     ProjectileNugget                    
  6021.         ProjectileTemplateName = DwarvenCatapultRockProjectile2        ;MordorCatapultRockProjectile
  6022.         WarheadTemplateName = DwarvenIronHillsCatapultRockWarhead_Structural
  6023.         WeaponLaunchBoneSlotOverride = SECONDARY
  6024.     End
  6025.   
  6026.       ProjectileNugget                                                    // This nugget is to create a revealing object, so fire
  6027.         AlwaysAttackHereOffset    = X:0 Y:0 Z:0                            // it directly on top of us, and just use an empty warhead
  6028.         UseAlwaysAttackOffset    = Yes                                    // so we don't assert.
  6029.         ProjectileTemplateName  = ShroudRevealer_Bombard
  6030.         WarheadTemplateName     = ShipRevealBombardWarhead_Dummy
  6031.     End
  6032. End
  6033.  
  6034. ;//-----------------------------------
  6035. Weapon DwarvenIronHillsCatapultRockWarhead_Structural
  6036.     ;FireFX= FX_RockDetonation
  6037.     ProjectileCollidesWith = MONSTERS    STRUCTURES    ; Structures is the default, btw.
  6038.     RadiusDamageAffects = ENEMIES NEUTRALS ALLIES
  6039.     HitPassengerPercentage = 50%
  6040.     
  6041.     DamageNugget                        ; A basic Nugget that just does damage
  6042.         Damage        = DWARVEN_CATAPULT_ROCK_DAMAGE  ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  6043.         Radius        = 20.0
  6044.         DelayTime     = 0
  6045.         DamageType    = SIEGE
  6046.         DamageFXType  = BIG_ROCK
  6047.         DeathType     = EXPLODED
  6048.         DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  6049.     End
  6050.  
  6051.     MetaImpactNugget                    ; A Nugget that throws things back with force 
  6052. ;        HeroResist            = .75
  6053.         ShockWaveAmount   = 25.0
  6054.         ShockWaveRadius   = 20.0
  6055.         ShockWaveTaperOff = 0.75
  6056.     End
  6057. End
  6058.  
  6059. ;//-----------------------------------
  6060. Weapon DwarvenIronHillsCatapultFlamingShot_Structural  ;// BALANCE Catapult Weapon
  6061.   AttackRange = DWARVEN_CATAPULT_ROCK_RANGE
  6062.   MinimumAttackRange    = DWARVEN_CATAPULT_ROCK_MINRANGE
  6063.   
  6064.       ;RangeBonusMinHeight    = 10
  6065.     ;RangeBonus        = 1
  6066.     ;RangeBonusPerFoot    = #MULTIPLY( DWARVEN_CATAPULT_ROCK_RANGE .01 )
  6067.   
  6068.   WeaponSpeed            = 201         ;// dist/sec 
  6069.   MinWeaponSpeed        = 201
  6070.   FireFX                = FX_DwarvenCatapultWeapon
  6071.   DelayBetweenShots        = DWARVEN_CATAPULT_ROCK_DELAYBETWEENSHOTS    ;// time between shots, msec
  6072.   FXTrigger                = CATAPULT_ROCK
  6073.   PreAttackDelay        = DWARVEN_CATAPULT_ROCK_PREATTACKDELAY
  6074.   PreAttackType            = PER_SHOT                                    ;// Do the delay each time we attack a new target
  6075.   FiringDuration        = DWARVEN_CATAPULT_ROCK_FIRINGDURATION        ;// Catapult firing animation takes 3.0 secs.
  6076.   RequireFollowThru        = Yes
  6077.   ShareTimers            = Yes ;// share timer with catapult heads to you can't fire both in quick succession
  6078.   NoVictimNeeded        = Yes ;// Need no target
  6079.   LeechRangeWeapon        = Yes
  6080.   
  6081.   ScatterRadiusVsInfantry            = 40.0  
  6082.   DisableScatterForTargetsOnWall    = Yes
  6083.   HitPercentage                        = 100 ;//always hits.
  6084. ;//ScatterRadius                    = 50.0 ;When this weapon misses it can randomly miss by as much as this distance.
  6085.  
  6086.   ProjectileNugget                    ;// A Nugget that creates an Object and sends it to the target with a Warhead
  6087.     ProjectileTemplateName = DwarvenCatapultFlamingShotProjectile
  6088.     WarheadTemplateName = DwarvenCatapultFlamingShotWarhead_Structural
  6089. ;    ForbiddenUpgradeNames   = Upgrade_AllFactionUpgrade
  6090.   End
  6091.  
  6092.   ProjectileNugget                    ;// A Nugget that creates an Object and sends it to the target with a Warhead
  6093.     ProjectileTemplateName = DwarvenCatapultFlamingShotProjectile
  6094.     WarheadTemplateName = DwarvenCatapultFlamingShotWarhead_Structural
  6095.     WeaponLaunchBoneSlotOverride = SECONDARY
  6096. ;    ForbiddenUpgradeNames   = Upgrade_AllFactionUpgrade
  6097.   End
  6098.   
  6099. ;  ProjectileNugget                    ;// A Nugget that creates an Object and sends it to the target with a Warhead
  6100. ;    ProjectileTemplateName = DwarvenCatapultFlamingShotProjectileMith
  6101. ;    WarheadTemplateName = DwarvenCatapultFlamingShotWarhead_Structural
  6102. ;    RequiredUpgradeNames    = Upgrade_AllFactionUpgrade
  6103. ;  End
  6104.  
  6105. ;  ProjectileNugget                    ;// A Nugget that creates an Object and sends it to the target with a Warhead
  6106. ;    ProjectileTemplateName = DwarvenCatapultFlamingShotProjectileMith
  6107. ;    WarheadTemplateName = DwarvenCatapultFlamingShotWarhead_Structural
  6108. ;    WeaponLaunchBoneSlotOverride = SECONDARY
  6109. ;    RequiredUpgradeNames    = Upgrade_AllFactionUpgrade
  6110. ;  End
  6111.   
  6112.   
  6113.       ProjectileNugget                                                    ; This nugget is to create a revealing object, so fire
  6114.         AlwaysAttackHereOffset    = X:0 Y:0 Z:0                            ; it directly on top of us, and just use an empty warhead
  6115.         UseAlwaysAttackOffset    = Yes                                    ; so we don't assert.
  6116.         ProjectileTemplateName  = ShroudRevealer_Bombard
  6117.         WarheadTemplateName     = ShipRevealBombardWarhead_Dummy
  6118.     End
  6119.     
  6120.     
  6121. End
  6122.  
  6123.  
  6124. ;-----------------------------------
  6125. Weapon DwarvenCatapultFlamingShotWarhead_Structural
  6126.     ProjectileCollidesWith = MONSTERS    STRUCTURES    ; Structures is the default, btw.
  6127.     RadiusDamageAffects = ENEMIES ALLIES NOT_SIMILAR
  6128.  
  6129.     FireLogicNugget ;@@@ fire logic testing
  6130.         LogicType    =    INCREASE_BURN_RATE
  6131.         Radius        =    40
  6132.         Damage        =    3
  6133.     End
  6134.  
  6135.     DamageNugget                        ; A basic Nugget that just does damage to trigger explosive mine
  6136.         Damage        = 1
  6137.         Radius        = 20
  6138.         DamageType    = FLAME
  6139.         DamageFXType  = FLAME
  6140.         DeathType     = BURNED
  6141.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  6142.     End
  6143.     
  6144.     DamageNugget                        ; A basic Nugget that just does damage
  6145.         Damage        = DWARVEN_CATAPULT_ROCK_DAMAGE    ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  6146.         Radius        = 30 ;20.0
  6147.         DelayTime     = 0
  6148.         DamageType    = SIEGE
  6149.         DamageFXType  = BIG_ROCK
  6150.         DeathType     = EXPLODED
  6151.         DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  6152.     End
  6153.  
  6154.     DamageNugget                        ; A basic Nugget that just does damage
  6155.         Damage        = DWARVEN_CATAPULT_FLAME_DAMAGE
  6156.         Radius        = 30 ;20.0
  6157.         DelayTime     = 0
  6158.         DamageType    = FLAME
  6159.         DamageFXType  = BIG_ROCK
  6160.         DeathType     = BURNED
  6161.         AcceptDamageAdd = No
  6162.         DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  6163.     End
  6164.     
  6165.     
  6166.     
  6167.     
  6168.  
  6169. End
  6170.  
  6171. ;-----------------------------------
  6172. Weapon DwarvenCatapultFlamingShotWarhead
  6173.     ProjectileCollidesWith = MONSTERS    STRUCTURES    ; Structures is the default, btw.
  6174.     RadiusDamageAffects = ENEMIES ALLIES NOT_SIMILAR
  6175.  
  6176.     FireLogicNugget ;@@@ fire logic testing
  6177.         LogicType    =    INCREASE_BURN_RATE
  6178.         Radius        =    40
  6179.         Damage        =    3
  6180.     End
  6181.  
  6182.     DamageNugget                        ; A basic Nugget that just does damage to trigger explosive mine
  6183.         Damage        = 1
  6184.         Radius        = 20
  6185.         DamageType    = FLAME
  6186.         DamageFXType  = FLAME
  6187.         DeathType     = BURNED
  6188.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  6189.     End
  6190.     
  6191.     DamageNugget                        ; A basic Nugget that just does damage
  6192.         Damage        = DWARVEN_CATAPULT_ROCK_DAMAGE    ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  6193.         Radius        = 30 ;20.0
  6194.         DelayTime     = 0
  6195.         DamageType    = SIEGE
  6196.         DamageFXType  = BIG_ROCK
  6197.         DeathType     = EXPLODED
  6198.         DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  6199.     End
  6200.  
  6201.     DamageNugget                        ; A basic Nugget that just does damage
  6202.         Damage        = DWARVEN_CATAPULT_FLAME_DAMAGE
  6203.         Radius        = 30 ;20.0
  6204.         DelayTime     = 0
  6205.         DamageType    = FLAME
  6206.         DamageFXType  = BIG_ROCK
  6207.         DeathType     = BURNED
  6208.         AcceptDamageAdd = No
  6209.         DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  6210.     End
  6211.     
  6212.      DamageNugget                        ; A basic Nugget that just does damage
  6213.         Damage        = DWARVEN_CATAPULT_ROCK_DAMAGE  ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  6214.         DamageTaperOff = 50
  6215.         Radius        = 100.0
  6216.         DelayTime     = 0
  6217.         DamageType    = SIEGE
  6218.         DamageFXType  = BIG_ROCK
  6219.         DeathType     = EXPLODED
  6220.         DamageScalar  = 0% ALL -WALL_UPGRADE -WALL_HUB -WALL_SEGMENT -DEFENSIVE_WALL            ; No damage to allied structures.
  6221.         ;DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  6222.     End
  6223. End
  6224.  
  6225.  
  6226. ;------------------------------------------------------------------------------
  6227.  
  6228. Weapon DwarvenGuardianThrowingAxe
  6229.     AttackRange         = DWARVEN_AXETHROWER_RANGE
  6230.     
  6231.     RangeBonusMinHeight    = 10
  6232.     RangeBonus        = 1
  6233.     RangeBonusPerFoot    = #MULTIPLY( DWARVEN_AXETHROWER_RANGE .01 )
  6234.     
  6235.     WeaponSpeed            = 120 ;321         ; dist/sec 
  6236.     MinWeaponSpeed      = 120
  6237.     MaxWeaponSpeed      = 300      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  6238.     FireFX              = FX_DwarfAxeThrowerWeapon
  6239.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  6240.     HitPercentage       = 100     ;When this weapon is used it will hit exactly 50% of the time.
  6241.     ScatterRadius       = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  6242.     PreAttackRandomAmount     = 400  
  6243.  
  6244.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  6245.     PreAttackType       = PER_SHOT
  6246.     PreAttackDelay      = 666 ; time from start of anim to axe release
  6247.     FiringDuration      = 2000 ; duration of firing cycle
  6248.     DelayBetweenShots   = 500;
  6249.     CanFireWhileMoving    = No
  6250.   
  6251.     AntiAirborneVehicle    = Yes
  6252.     AntiAirborneMonster    = Yes
  6253.     HitPassengerPercentage    = 20%
  6254.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  6255.  
  6256.     ProjectileNugget    ; Default arrow
  6257.         ProjectileTemplateName  = DwarvenAxe
  6258.         WarheadTemplateName     = DwarvenAxeThrowWarhead
  6259.         ForbiddenUpgradeNames   = Upgrade_DwarvenForgedBlades
  6260.     End
  6261.     ProjectileNugget    ; Fire arrow available through fire upgrade
  6262.         ProjectileTemplateName  = DwarvenAxeForgedBlade
  6263.         WarheadTemplateName     = DwarvenAxeThrowWarhead
  6264.         RequiredUpgradeNames    = Upgrade_DwarvenForgedBlades
  6265.     End
  6266. End
  6267.  
  6268. Weapon DwarvenGuardianThrowingAxeBombard
  6269.     AttackRange         = DWARVEN_AXETHROWER_BOMBARD_MAXRANGE
  6270.     MinimumAttackRange  = #SUBTRACT( DWARVEN_AXETHROWER_BOMBARD_MINRANGE 75 )
  6271.     
  6272.     RangeBonusMinHeight    = 10
  6273.     RangeBonus        = 1
  6274.     RangeBonusPerFoot    = #MULTIPLY( DWARVEN_AXETHROWER_BOMBARD_MAXRANGE .01 )
  6275.     
  6276.     WeaponSpeed            = 150 ;321         ; dist/sec 
  6277.     MinWeaponSpeed      = 100
  6278.     MaxWeaponSpeed      = 300      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  6279.     FireFX              = FX_DwarfAxeThrowerWeapon
  6280.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  6281.     HitPercentage       = 0     ;Always scatter
  6282.     ScatterRadius       = ARCHER_BOMBARD_SCATTER_RADIUS     ;When this weapon misses it can randomly miss by as much as this distance.
  6283.  
  6284.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  6285.     PreAttackType       = PER_SHOT
  6286.     PreAttackDelay      = 666 ; time from start of anim to axe release
  6287.     FiringDuration      = 2500 ; duration of firing cycle
  6288.     DelayBetweenShots   = 1000;
  6289.     CanFireWhileMoving    = No
  6290.   
  6291.     AntiAirborneVehicle    = Yes
  6292.     AntiAirborneMonster    = Yes
  6293.     HitPassengerPercentage    = 20%
  6294.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  6295.     NoVictimNeeded            = Yes
  6296.     BombardType                = Yes
  6297.  
  6298.     ProjectileNugget    ; Default arrow
  6299.         ProjectileTemplateName  = DwarvenAxeBombard
  6300.         WarheadTemplateName     = DwarvenAxeThrowBombardWarhead
  6301.     End
  6302. End
  6303.  
  6304.  
  6305. ;//------------------------------------------------------------------------------
  6306. Weapon DwarvenGuardianAxe
  6307.   LeechRangeWeapon      = Yes
  6308.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  6309.   MeleeWeapon           = Yes
  6310.   DelayBetweenShots     = DWARVEN_GUARDIAN_AXE_DELAYBETWEENSHOTS  ; Bad Things happen if delay between shots is less than Preattack+Firing times.  You are ready to fire before you are done firing.
  6311.   PreAttackDelay        = DWARVEN_GUARDIAN_AXE_PREATTACKDELAY             ; 400 is sword swing delay time before contact with target.
  6312.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  6313.   FireFX                = FX_GondorSwordHit
  6314.   FireFlankFX        = FX_Flanking
  6315.   FiringDuration        = DWARVEN_GUARDIAN_AXE_FIRINGDURATION    ; Duration of the sword swing
  6316.  
  6317.     ; base damage against everything, siegehammer or forgedblades not present
  6318.     DamageNugget
  6319.         Damage                    = DWARVEN_GUARDIAN_AXE
  6320.         Radius                    = 0.0
  6321.         DelayTime                = 0
  6322.         DamageType                = SLASH
  6323.         DamageFXType            = SWORD_SLASH
  6324.         DeathType                = NORMAL
  6325.         FlankingBonus            = 50%
  6326.         ForbiddenUpgradeNames    = Upgrade_DwarvenSiegeHammer
  6327.     End
  6328.   
  6329.     ; base damage against units, siege hammer present
  6330.     DamageNugget
  6331.         Damage                    = DWARVEN_GUARDIAN_AXE_SIEGEHAMMER_VS_UNIT
  6332.         Radius                    = 0.0
  6333.         DelayTime                = 0
  6334.         DamageType                = SLASH
  6335.         DamageFXType            = SWORD_SLASH
  6336.         DeathType                = NORMAL
  6337.         FlankingBonus            = 50%
  6338.         SpecialObjectFilter        = ALL -STRUCTURE
  6339.         RequiredUpgradeNames    = Upgrade_DwarvenSiegeHammer
  6340.     End
  6341.  
  6342.     ; base damage against structures, siege hammer present
  6343.     DamageNugget
  6344.         Damage                    = DWARVEN_GUARDIAN_AXE_SIEGEHAMMER_VS_STRUCTURE
  6345.         Radius                    = 0.0
  6346.         DelayTime                = 0
  6347.         DamageType                = SLASH
  6348.         DamageFXType            = SWORD_SLASH
  6349.         DeathType                = NORMAL
  6350.         FlankingBonus            = 50%
  6351.         SpecialObjectFilter        = NONE +STRUCTURE
  6352.         RequiredUpgradeNames    = Upgrade_DwarvenSiegeHammer
  6353.     End
  6354.  
  6355.     ; forged blade increment, add this damage to everything we attack
  6356.     DamageNugget
  6357.         Damage                    = DWARVEN_GUARDIAN_AXE_UPGRADE_INCREMENT
  6358.         Radius                    = 0.0
  6359.         DelayTime                = 0
  6360.         DamageType                = SLASH
  6361.         DeathType                = NORMAL
  6362.         FlankingBonus            = 50%
  6363.         RequiredUpgradeNames    = Upgrade_DwarvenForgedBlades
  6364.     End
  6365. End
  6366.  
  6367.  
  6368. ;//------------------------------------------------------------------------------
  6369. Weapon DwarvenPhalanxPike     ;// BALANCE Dwarven Phalanx Weapon
  6370.   LeechRangeWeapon      = Yes
  6371.   AttackRange           = 30
  6372.   MeleeWeapon           = Yes    ;// Sorry, stand off doesn't work.  This is just a melee weapon.
  6373.   DelayBetweenShots     = DWARVEN_PHALANX_STAB_DELAYBETWEENSHOTS                ;// time between shots, msec
  6374.   PreAttackDelay        = DWARVEN_PHALANX_STAB_PREATTACKDELAY                
  6375.   PreAttackType         = PER_SHOT            ;// Do the delay each time we attack
  6376.   FireFX                = FX_GondorSwordHit
  6377.   FireFlankFX        = FX_Flanking
  6378.   FiringDuration        = DWARVEN_PHALANX_STAB_FIRINGDURATION                
  6379.   
  6380.     DamageNugget                                ;// A basic Nugget that just does damage
  6381.         Damage                            = DWARVEN_PHALANX_STAB_DAMAGE
  6382.         DamageType                        = SPECIALIST
  6383.         DamageFXType                      = SWORD_SLASH
  6384.         DeathType                         = NORMAL        
  6385.         ForbiddenUpgradeNames            = Upgrade_DwarvenForgedBlades ;// Need to replace with Dwarven equivalent
  6386.         FlankingBonus = 50%
  6387.     End
  6388.  
  6389.     DamageNugget                                ;// A basic Nugget that just does damage
  6390.         Damage                            = DWARVEN_PHALANX_DAMAGE_UPGRADE
  6391.         DamageType                        = SPECIALIST
  6392.         DamageFXType                      = SWORD_SLASH
  6393.         DeathType                         = NORMAL
  6394.         FlankingBonus = 50%        
  6395.         RequiredUpgradeNames            = Upgrade_DwarvenForgedBlades ;// Need to replace with Dwarven equivalent
  6396.     End
  6397. End
  6398.  
  6399. ;//------------------------------------------------------------------------------
  6400. Weapon DwarvenDainAxe  ;// BALANCE Dain Axe Weapon
  6401.   LeechRangeWeapon      = Yes
  6402.   AttackRange           = 20.0
  6403.   MeleeWeapon           = Yes
  6404.   WeaponSpeed           = 799999.2                    ;// dist/sec (huge value == effectively instant)
  6405.   DelayBetweenShots     = DAIN_DELAYBETWEENSHOTS     ;// time between shots, msec
  6406.   PreAttackDelay        = DAIN_PREATTACKDELAY         ;// 433 is natural time of the stabbing animation.
  6407.   PreAttackType         = PER_SHOT                    ;// Do the delay each time we attack a new target
  6408.   FiringDuration        = DAIN_FIRINGDURATION         ;// min 600 for anim
  6409.   FireFX                = FX_GondorSwordHit
  6410.  
  6411.   DamageNugget
  6412.     Damage        = DAIN_DAMAGE
  6413.     Radius        = 0.0
  6414.     DelayTime     = 0
  6415.     DamageType    = HERO
  6416.     DamageFXType  = SWORD_SLASH
  6417.     DeathType     = NORMAL
  6418.   End
  6419. End
  6420.  
  6421.  
  6422. ;//------------------------------------------------------------------------------
  6423. Weapon YurgHorn        ;//Used by the BattleWagon
  6424.   LeechRangeWeapon        = Yes
  6425.   AttackRange           = 0.0
  6426.   MeleeWeapon           = Yes
  6427.   FireFX                = FX_YurgHornAttackImpactSound
  6428.   DelayBetweenShots     = DWARVEN_BATTLEWAGON_DELAYBETWEENSHOTS
  6429.   PreAttackDelay        = DWARVEN_BATTLEWAGON_PREATTACKDELAY    ;// 1467 is the prep time for archer.
  6430.   PreAttackType         = PER_SHOT                                ;// Do the delay each time we attack a new target
  6431.   FiringDuration        = DWARVEN_BATTLEWAGON_FIRINGDURATION    ;// Duration of the archer firing shot is 500ms.
  6432.  
  6433.   DamageNugget                        ;// A basic Nugget that just does damage
  6434.     Damage        = DWARVEN_BATTLEWAGON_DAMAGE
  6435.     Radius        = 0.0
  6436.     DelayTime     = 0
  6437.     DamageType    = CAVALRY
  6438.     ;DamageFXType  = SWORD_SLASH
  6439.     DeathType     = NORMAL
  6440.     FlankingBonus = 300%
  6441.   End
  6442. End
  6443.  
  6444. ;//------------------------------------------------------------------------------
  6445. Weapon DwarvenBattleWagonPassengerPike      ;// BALANCE BattleWagon Pike Weapon
  6446.     AttackRange                   = DWARVEN_BATTLEWAGON_PASSENGER_RANGE
  6447.     WeaponSpeed                   = 321       ;// dist/sec 
  6448.     MinWeaponSpeed                = 241
  6449.     MaxWeaponSpeed                = 481        ;// dist/sec Upper limit on scaling, when attacking past nominal "max" range
  6450.     AcceptableAimDelta            = 180
  6451.     FireFX                        = FX_GondorSwordHit    
  6452.     HitPercentage                 = 100        ;//When this weapon is used it will hit exactly 50% of the time.    
  6453.     DelayBetweenShots             = DWARVEN_BATTLEWAGON_PASSENGER_DELAYBETWEENSHOTS
  6454.     PreAttackDelay                = DWARVEN_BATTLEWAGON_PASSENGER_PREATTACKDELAY    
  6455.     PreAttackType                 = PER_SHOT    ;// Do the delay each time we attack a new target
  6456.     FiringDuration                = DWARVEN_BATTLEWAGON_PASSENGER_FIRINGDURATION    ;// Duration of the archer firing shot is 500ms.
  6457.     CanFireWhileMoving              = Yes    
  6458.     CanBeDodged                    = No
  6459.  
  6460.       ProjectileNugget
  6461.         ProjectileTemplateName    = BattleWagonArrow
  6462.         WarheadTemplateName     = DwarvenBattleWagonPassengerPikeWarhead
  6463.         ;ForbiddenUpgradeNames     = Upgrade_DwarvenForgedBlade
  6464.       End
  6465.        
  6466.       ;ProjectileNugget                    ; Default arrow
  6467.     ;    ProjectileTemplateName    = BattleWagonArrow
  6468.     ;    RequiredUpgradeNames      = Upgrade_DwarvenForgedBlade
  6469.     ;End
  6470.  
  6471. End
  6472.  
  6473. ;//-----------------------------------
  6474. Weapon DwarvenBattleWagonPassengerPikeWarhead
  6475.     RadiusDamageAffects        = ENEMIES
  6476.     HitStoredTarget            = Yes    ;// Always hits initial target.
  6477.     DamageNugget                    ;// A basic Nugget that just does damage
  6478.         Damage            = DWARVEN_BATTLEWAGON_PASSENGER_DAMAGE            
  6479.         Radius            = 0.0    ;// HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  6480.         DelayTime        = 0
  6481.         DamageType        = SLASH    
  6482.         DamageFXType    = SWORD_SLASH
  6483.         DeathType        = NORMAL
  6484.       End
  6485. End
  6486. ;//------------------------------------------------------------------------------
  6487. Weapon DwarvenBattleWagonPassengerPikeUpgraded      ;// BALANCE BattleWagon Pike Weapon
  6488.     AttackRange                   = DWARVEN_BATTLEWAGON_PASSENGER_RANGE
  6489.     WeaponSpeed                   = 321       ;// dist/sec 
  6490.     MinWeaponSpeed                = 241
  6491.     MaxWeaponSpeed                = 481        ;// dist/sec Upper limit on scaling, when attacking past nominal "max" range
  6492.     AcceptableAimDelta            = 180
  6493.     FireFX                        = FX_GondorSwordHit    
  6494.     HitPercentage                 = 100        ;//When this weapon is used it will hit exactly 50% of the time.    
  6495.     DelayBetweenShots             = DWARVEN_BATTLEWAGON_PASSENGER_DELAYBETWEENSHOTS
  6496.     PreAttackDelay                = DWARVEN_BATTLEWAGON_PASSENGER_PREATTACKDELAY    
  6497.     PreAttackType                 = PER_SHOT    ;// Do the delay each time we attack a new target
  6498.     FiringDuration                = DWARVEN_BATTLEWAGON_PASSENGER_FIRINGDURATION    ;// Duration of the archer firing shot is 500ms.
  6499.     CanFireWhileMoving              = Yes    
  6500.     CanBeDodged                    = No
  6501.  
  6502.     ProjectileNugget                    ; Default arrow
  6503.         ProjectileTemplateName    = BattleWagonArrow
  6504.         WarheadTemplateName     = DwarvenBattleWagonPassengerPikeWarheadUpgraded
  6505.         ;RequiredUpgradeNames      = Upgrade_DwarvenForgedBlade
  6506.     End
  6507.  
  6508. End
  6509.  
  6510. ;//-----------------------------------
  6511. Weapon DwarvenBattleWagonPassengerPikeWarheadUpgraded
  6512.     RadiusDamageAffects        = ENEMIES
  6513.     HitStoredTarget            = Yes    ;// Always hits initial target.
  6514.     DamageNugget                    ;// A basic Nugget that just does damage
  6515.         Damage            = DWARVEN_BATTLEWAGON_PASSENGER_DAMAGE_UPGRADED        
  6516.         Radius            = 0.0    ;// HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  6517.         DelayTime        = 0
  6518.         DamageType        = SLASH    
  6519.         DamageFXType    = SWORD_SLASH
  6520.         DeathType        = NORMAL
  6521.       End
  6522. End
  6523.  
  6524. ;------------------------------------------------------------------------------
  6525. Weapon GloinAxe  ; BALANCE Gimli Axe Weapon
  6526.   LeechRangeWeapon      = Yes
  6527.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  6528.   MeleeWeapon           = Yes
  6529.   WeaponSpeed           = 799999.2        ; dist/sec (huge value == effectively instant)
  6530.   DelayBetweenShots     = GLOIN_DELAYBETWEENSHOTS     ; time between shots, msec
  6531.   PreAttackDelay        = GLOIN_PREATTACKDELAY     ; 433 is natural time of the stabbing animation.
  6532.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  6533.   FiringDuration        = GLOIN_FIRINGDURATION         ; min 600 for anim
  6534.   FireFX                = FX_GondorSwordHit
  6535.  
  6536.   DamageNugget
  6537.     Damage        = GLOIN_DAMAGE
  6538.     Radius        = 0.0
  6539.     DelayTime     = 0
  6540.     DamageType    = HERO
  6541.     DamageFXType  = SWORD_SLASH
  6542.     DeathType     = NORMAL
  6543.   End
  6544. End
  6545.  
  6546. ;------------------------------------------------------------------------------
  6547. Weapon DwarvenGloinSlamWeapon
  6548.     RadiusDamageAffects        = ENEMIES
  6549.     LeechRangeWeapon        = Yes
  6550.     CanFireWhileMoving        = No
  6551.     AttackRange            = 30.0
  6552.     MeleeWeapon            = Yes
  6553.     WeaponSpeed           = 799999.2        ; dist/sec (huge value == effectively instant)
  6554.     FireFX                = FX_GloinSlam
  6555.     DelayBetweenShots     = GLOIN_DELAYBETWEENSHOTS     ; time between shots, msec
  6556.     PreAttackDelay        = GLOIN_PREATTACKDELAY     ; 433 is natural time of the stabbing animation.
  6557.     PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  6558.     FiringDuration        = GLOIN_FIRINGDURATION         ; min 600 for anim
  6559.     DamageDealtAtSelfPosition = Yes                ; A melee based AoE.  Arc radiates from me, not them
  6560.  
  6561.     ; Crush damage.
  6562.     DamageNugget                                ; A basic Nugget that just does damage
  6563.         Damage            = GLOIN_SLAM_DAMAGE
  6564.         Radius            = 50.0
  6565.         DamageArc        = 75
  6566.         DelayTime        = 0
  6567.         DamageType        = CRUSH
  6568.         DamageFXType    = MAGIC
  6569.         DeathType        = NORMAL
  6570.     End
  6571.  
  6572.     ; SIEGE damage. - Changing all structural to siege damage. -GB
  6573.     DamageNugget                                ; A basic Nugget that just does damage
  6574.         Damage            = GLOIN_SLAM_DAMAGE_STRUCTURAL
  6575.         Radius            = 50.0
  6576.         DamageArc        = 75
  6577.         DelayTime        = 0
  6578.         DamageType        = SIEGE
  6579.         DamageFXType    = MAGIC
  6580.         DeathType        = NORMAL
  6581.     End
  6582.  
  6583.     ; Push back
  6584.     MetaImpactNugget                            ; A Nugget that throws things back with force
  6585. ;        HeroResist            = .75
  6586.         ShockWaveAmount        = 50
  6587.         ShockWaveRadius        = 45
  6588.         ShockWaveArc        = 75                ; Should generally be equal to damage arc
  6589.         ShockWaveTaperOff    = 1.0
  6590.         ShockWaveSpeed        = 0.0
  6591.         ShockWaveZMult        = 1.6
  6592.     End
  6593. End
  6594.  
  6595. ;------------------------------------------------------------------------------
  6596. Weapon DwarvenGloinShakeFoundationWeapon
  6597.     LeechRangeWeapon        = Yes
  6598.     CanFireWhileMoving        = No
  6599.     AttackRange            = 30.0
  6600.     AntiStructure         = Yes                                      ; ShakeFoundation ONLY affects structures -- buildings, walls, gates
  6601.     AntiGround            = No                                       ; ditto
  6602.     MeleeWeapon            = Yes
  6603.     WeaponSpeed           = 799999.2        ; dist/sec (huge value == effectively instant)
  6604.     FireFX                = FX_GloinShake
  6605.     DelayBetweenShots     = GLOIN_DELAYBETWEENSHOTS     ; time between shots, msec
  6606.     PreAttackDelay        = GLOIN_PREATTACKDELAY     ; 433 is natural time of the stabbing animation.
  6607.     PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  6608.     FiringDuration        = GLOIN_FIRINGDURATION         ; min 600 for anim
  6609.  
  6610.     ; Structural damage.
  6611.     DamageNugget                                ; A basic Nugget that just does damage
  6612.         Damage            = GLOIN_SHAKEFOUNDATION_DAMAGE
  6613.         Radius            = 0.0
  6614.         DelayTime        = 0
  6615.         DamageType        = SIEGE
  6616.         DamageFXType    = MAGIC
  6617.         DeathType        = NORMAL
  6618.     End
  6619.  
  6620.     ; Temporarily disable the target building
  6621.     ParalyzeNugget
  6622.         Radius            = 0.0
  6623.         Duration        = 30000
  6624.         ParalyzeFX            = FX_ParalyzeStructure
  6625.     End
  6626.  
  6627.     ; Force open any gate hit by this (which will also be paralyzed, so it will be stuck open for the duration)
  6628.     OpenGateNugget
  6629.         Radius            = 0.0
  6630.     End
  6631. End
  6632.  
  6633. ;------------------------------------------------------------------------------
  6634. Weapon GloinSmashWeapon ; Big Blue Ring Blast
  6635.     IdleAfterFiringDelay = 0
  6636.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  6637.     DelayBetweenShots = 5000               ; time between shots, msec
  6638.     PreAttackDelay        = 2600
  6639.     PreAttackType         = PER_ATTACK ; Do the delay each time we attack a new target
  6640.     PreAttackFX           = FX_GloinShatterPre
  6641.     FireFX                = FX_GloinShatterhammer
  6642.     FiringDuration      = 1400
  6643.     DamageNugget                        ; A basic Nugget that just does damage
  6644.         Damage            = GANDALF_WORD_OF_POWER_DAMAGE
  6645.         Radius            = GLOIN_SMASH_WEAPON_RADIUS
  6646.         DamageType        = MAGIC
  6647.         DamageFXType    = MAGIC
  6648.         DeathType        = EXPLODED
  6649.         DamageSpeed        = 700.0 ; must match the ShockWaveSpeed below
  6650.     End
  6651.     MetaImpactNugget                    ; A Nugget that throws things back with force
  6652. ;        HeroResist            = .75
  6653.         ShockWaveAmount   = 70.0
  6654.         ShockWaveRadius   = 500.0
  6655.         ShockWaveTaperOff = 1.0
  6656.         ShockWaveZMult    = 1.000
  6657.         ShockWaveSpeed      = 700.0 
  6658.     End
  6659. End
  6660.  
  6661. ;------------------------------------------------------------------------------
  6662. Weapon DwarvenBatteringRam ; BALANCE Battering Ram
  6663.     CanFireWhileMoving    = No
  6664.     AttackRange           = STANDARD_MELEE_ATTACK_RANGE           ; Note - needs to be at least 30 to approach walls at a 45 degree angle to path grid. 
  6665.     AntiStructure         = Yes                                      ; Ram ONLY affects structures -- buildings, walls, gates
  6666.     AntiGround            = No                                       ; ditto
  6667.     MeleeWeapon           = Yes                                        ; Try Melee to get close to door
  6668.     AcceptableAimDelta    = 20                                       ; Can't ram sideways (but give a little slack)
  6669.     DelayBetweenShots     = DWARVEN_BATTERINGRAM_DELAYBETWEENSHOTS  ; time between shots, msec. 
  6670.     PreAttackDelay        = DWARVEN_BATTERINGRAM_PREATTACKDELAY        
  6671.     PreAttackType         = PER_SHOT                                 ; Do the delay each time we attack
  6672.     FiringDuration        = DWARVEN_BATTERINGRAM_FIRINGDURATION
  6673.     FireFX                = FX_BatteringRamHit
  6674.     LeechRangeWeapon      = Yes
  6675.  
  6676.     DamageNugget
  6677.         Damage        = DWARVEN_BATTERINGRAM_DAMAGE
  6678.         Radius        = 0.0                                        ; Contact of nose.  Preattack is being used by trolls putting hands on ram
  6679.         DamageType    = SIEGE
  6680.         DeathType     = NORMAL
  6681.     End
  6682. End
  6683.  
  6684. ;------------------------------------------------------------------------------
  6685. Weapon DwarvenBatteringRamGate ; BALANCE Battering Ram
  6686.     CanFireWhileMoving    = No
  6687.     AttackRange           = 58.0 ; Make sure this is greater than the distance between obj center and the Ram contact points in the gate
  6688.     AntiStructure         = Yes                                                ; Ram ONLY affects structures -- buildings, walls, gates
  6689.     AntiGround            = No                                                 ; ditto
  6690.     MeleeWeapon           = Yes                                               ; Try Melee to get close to door
  6691.     AcceptableAimDelta    = 20                                                 ; Can't ram sideways (but give a little slack)
  6692.     DelayBetweenShots     = DWARVEN_BATTERINGRAM_DELAYBETWEENSHOTS           ; time between shots, msec. 
  6693.     PreAttackDelay        = DWARVEN_BATTERINGRAM_PREATTACKDELAY        
  6694.     PreAttackType         = PER_SHOT                                        ; Do the delay each time we attack
  6695.     FiringDuration        = DWARVEN_BATTERINGRAM_FIRINGDURATION
  6696.     FireFX                = FX_BatteringRamHitGate
  6697.     LeechRangeWeapon      = Yes
  6698.  
  6699.     DamageNugget
  6700.         Damage        = DWARVEN_BATTERINGRAM_DAMAGE
  6701.         Radius        = 0.0
  6702.         DamageType    = SIEGE
  6703.         DeathType     = NORMAL
  6704.     End
  6705. End
  6706.  
  6707.  
  6708. ;------------------------------------------------------------------------------
  6709. Weapon DwarvenBatteringRamWall ; BALANCE Battering Ram
  6710.     CanFireWhileMoving    = No
  6711.     AttackRange           = 20.0
  6712.     AntiStructure         = Yes                                                ; Ram ONLY affects structures -- buildings, walls, gates
  6713.     AntiGround            = No                                                 ; ditto
  6714.     MeleeWeapon           = Yes                                                 ; Try Melee to get close to door
  6715.     AcceptableAimDelta    = 40                                                 ; give a lot of slack !!!!!!!!!!!!!!!! 
  6716.     DelayBetweenShots     = DWARVEN_BATTERINGRAM_DELAYBETWEENSHOTS           ; time between shots, msec. 
  6717.     PreAttackDelay        = DWARVEN_BATTERINGRAM_PREATTACKDELAY        
  6718.     PreAttackType         = PER_SHOT                                    ; Do the delay each time we attack
  6719.     FiringDuration        = DWARVEN_BATTERINGRAM_FIRINGDURATION
  6720.     FireFX                = FX_BatteringRamHitGate
  6721.     LeechRangeWeapon      = Yes
  6722.  
  6723.     DamageNugget
  6724.         Damage        = DWARVEN_BATTERINGRAM_DAMAGE
  6725.         Radius        = 0.0
  6726.         DamageType    = SIEGE
  6727.         DeathType     = NORMAL
  6728.     End
  6729. End
  6730.  
  6731. ;------------------------------------------------------------------------------
  6732. ;------------------------------------------------------------------------------
  6733. ;------------------------------------------------------------------------------
  6734. ;
  6735. ;  Isengard
  6736. ;
  6737. ;------------------------------------------------------------------------------
  6738. ;------------------------------------------------------------------------------
  6739. ;------------------------------------------------------------------------------
  6740.  
  6741. ;------------------------------------------------------------------------------
  6742. Weapon IsengardArcherHordeRangeFinder
  6743.     AttackRange                = #SUBTRACT( ISENGARD_URUKCROSSBOW_RANGE 100 )
  6744.     
  6745.     RangeBonusMinHeight    = 10
  6746.     RangeBonus        = 1
  6747.     RangeBonusPerFoot    = #MULTIPLY( ISENGARD_URUKCROSSBOW_RANGE .01 )
  6748.     
  6749.     LeechRangeWeapon        = Yes
  6750.     DelayBetweenShots        = 1500
  6751.     AcceptableAimDelta        = 45
  6752.     AntiAirborneVehicle        = Yes
  6753.     AntiAirborneMonster        = Yes
  6754.     FinishAttackOnceStarted = No
  6755.     CanFireWhileMoving        = No
  6756.     HordeAttackNugget
  6757.     End
  6758. End
  6759.  
  6760. Weapon IsengardArcherHordeRangeFinderBombard
  6761.     AttackRange                = #SUBTRACT( ISENGARD_URUKCROSSBOW_BOMBARD_MAXRANGE 100 )
  6762.     MinimumAttackRange        = ISENGARD_URUKCROSSBOW_BOMBARD_MINRANGE
  6763.     
  6764.     RangeBonusMinHeight    = 10
  6765.     RangeBonus        = 1
  6766.     RangeBonusPerFoot    = #MULTIPLY( ISENGARD_URUKCROSSBOW_BOMBARD_MAXRANGE .01 )
  6767.     
  6768.     LeechRangeWeapon        = Yes
  6769.     DelayBetweenShots        = 1500
  6770.     AcceptableAimDelta        = 45
  6771.     AntiAirborneVehicle        = Yes
  6772.     AntiAirborneMonster        = Yes
  6773.     FinishAttackOnceStarted = No
  6774.     CanFireWhileMoving        = No
  6775.     NoVictimNeeded            = Yes
  6776.     BombardType                = Yes
  6777.     ScatterRadius            = ARCHER_BOMBARD_SCATTER_RADIUS        ; Only used for cursor radius
  6778.     HordeAttackNugget
  6779.     End
  6780. End
  6781.  
  6782. ;------------------------------------------------------------------------------
  6783. Weapon IsengardArcherBow         ; BALANCE Archer Weapon
  6784.   AttackRange                = ISENGARD_URUKCROSSBOW_RANGE 
  6785.   
  6786.       RangeBonusMinHeight    = 10
  6787.     RangeBonus        = 1
  6788.     RangeBonusPerFoot    = #MULTIPLY( ISENGARD_URUKCROSSBOW_RANGE .01 )
  6789.     
  6790.     
  6791.   LeechRangeWeapon            = Yes
  6792.   WeaponSpeed                = 321         ; dist/sec 
  6793.   MinWeaponSpeed            = 61
  6794.   MaxWeaponSpeed            = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range    
  6795.   FireFX = FX_RohanArcherBowWeapon 
  6796.   ScaleWeaponSpeed            = Yes ; Used for lob weapons, scales speed proportional to range
  6797.   HitPercentage                = 100     ;When this weapon is used it will hit exactly 50% of the time.
  6798.   ScatterRadius                = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  6799.   PreAttackRandomAmount     = 200     ; amount of additional preattack variance for archer type attacks only 
  6800.   DelayBetweenShots            = ISENGARD_URUKCROSSBOW_DELAYBETWEENSHOTS     ; time between shots, msec
  6801.   PreAttackDelay            = ISENGARD_URUKCROSSBOW_PREATTACKDELAY     ; 733 is the prep time for archer.
  6802.   PreAttackType                = PER_SHOT ; Do the delay each time we attack a new target
  6803.   FiringDuration            = ISENGARD_URUKCROSSBOW_FIRINGDURATION         ; Duration of the archer firing shot is 500ms.
  6804.   CanFireWhileMoving        = No
  6805.   IsAimingWeapon            = Yes
  6806.   
  6807.   AcceptableAimDelta        = 20    ; prevent twitchy reaiming in horde on horde
  6808.   AntiAirborneVehicle        = Yes
  6809.   AntiAirborneMonster        = Yes
  6810.  
  6811.   CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  6812.  
  6813.   ProjectileNugget                    ; Default arrow
  6814.     ProjectileTemplateName    = GoodFactionArrow
  6815.     WarheadTemplateName       = IsengardArcherBowWarhead
  6816.     ForbiddenUpgradeNames     = Upgrade_IsengardFireArrows
  6817.   End
  6818.  
  6819.   ProjectileNugget                    ; Fire arrow available from fire arrow upgrade
  6820.     ProjectileTemplateName    = GoodFactionFireArrow
  6821.     WarheadTemplateName       = IsengardArcherBowFireWarhead
  6822.     RequiredUpgradeNames      = Upgrade_IsengardFireArrows
  6823.   End
  6824.  
  6825. End
  6826.  
  6827. Weapon IsengardArcherBowBombard         ; BALANCE Archer Weapon
  6828.   AttackRange                = ISENGARD_URUKCROSSBOW_BOMBARD_MAXRANGE
  6829.   MinimumAttackRange        = #SUBTRACT( ISENGARD_URUKCROSSBOW_BOMBARD_MINRANGE 75 )
  6830.   
  6831.       RangeBonusMinHeight    = 10
  6832.     RangeBonus        = 1
  6833.     RangeBonusPerFoot    = #MULTIPLY( ISENGARD_URUKCROSSBOW_BOMBARD_MAXRANGE .01 )
  6834.     
  6835.     
  6836.   LeechRangeWeapon            = Yes
  6837.   WeaponSpeed                = 321         ; dist/sec 
  6838.   MinWeaponSpeed            = 61
  6839.   MaxWeaponSpeed            = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range    
  6840.   FireFX = FX_RohanArcherBowWeapon 
  6841.   ScaleWeaponSpeed            = Yes ; Used for lob weapons, scales speed proportional to range
  6842.   HitPercentage                = 0     ;Always scatter
  6843.   ScatterRadius                = ARCHER_BOMBARD_SCATTER_RADIUS     ;When this weapon misses it can randomly miss by as much as this distance.
  6844.   PreAttackRandomAmount     = 200     ; amount of additional preattack variance for archer type attacks only 
  6845.   DelayBetweenShots            = ISENGARD_URUKCROSSBOW_DELAYBETWEENSHOTS     ; time between shots, msec
  6846.   PreAttackDelay            = ISENGARD_URUKCROSSBOW_PREATTACKDELAY     ; 733 is the prep time for archer.
  6847.   PreAttackType                = PER_SHOT ; Do the delay each time we attack a new target
  6848.   FiringDuration            = ISENGARD_URUKCROSSBOW_FIRINGDURATION         ; Duration of the archer firing shot is 500ms.
  6849.   CanFireWhileMoving        = No
  6850.   IsAimingWeapon            = Yes
  6851.   
  6852.   AcceptableAimDelta        = 20    ; prevent twitchy reaiming in horde on horde
  6853.   AntiAirborneVehicle        = Yes
  6854.   AntiAirborneMonster        = Yes
  6855.  
  6856.   CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  6857.   
  6858.   NoVictimNeeded            = Yes
  6859.     BombardType                = Yes
  6860.  
  6861.   ProjectileNugget                    ; Default arrow
  6862.     ProjectileTemplateName    = GoodFactionArrowBombard
  6863.     WarheadTemplateName       = IsengardArcherBowBombardWarhead
  6864.     ForbiddenUpgradeNames     = Upgrade_IsengardFireArrows
  6865.   End
  6866.  
  6867.   ProjectileNugget                    ; Fire arrow available from fire arrow upgrade
  6868.     ProjectileTemplateName    = GoodFactionFireArrowBombard
  6869.     WarheadTemplateName       = IsengardArcherBowBombardFireWarhead
  6870.     RequiredUpgradeNames      = Upgrade_IsengardFireArrows
  6871.   End
  6872.  
  6873. End
  6874.  
  6875.  
  6876. ;------------------------------------------------------------------------------
  6877. Weapon IsengardArcherBowFireArrow       ; BALANCE Archer Weapon
  6878.     AttackRange               = ISENGARD_URUKCROSSBOW_RANGE
  6879.     
  6880.     RangeBonusMinHeight    = 10
  6881.     RangeBonus        = 1
  6882.     RangeBonusPerFoot    = #MULTIPLY( ISENGARD_URUKCROSSBOW_RANGE .01 )
  6883.     
  6884.     
  6885.     WeaponSpeed               = 321         ; dist/sec 
  6886.     MinWeaponSpeed            = 241
  6887.     MaxWeaponSpeed            = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  6888.     FireFX                    = FX_RohanArcherBowWeapon
  6889.     ScaleWeaponSpeed          = Yes ; Used for lob weapons, scales speed proportional to range
  6890.     HitPercentage             = 100     ;When this weapon is used it will hit exactly 50% of the time.
  6891.     ScatterRadius             = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  6892.     DelayBetweenShots         = ISENGARD_URUKCROSSBOW_DELAYBETWEENSHOTS
  6893.     PreAttackDelay            = ISENGARD_URUKCROSSBOW_PREATTACKDELAY    ; 1467 is the prep time for archer.
  6894.     PreAttackRandomAmount     = 200    ; amount of additional preattack variance for archer type attacks only  
  6895.     PreAttackType             = PER_SHOT ; Do the delay each time we attack a new target
  6896.     FiringDuration            = ISENGARD_URUKCROSSBOW_FIRINGDURATION    ; Duration of the archer firing shot is 500ms.
  6897.     CanFireWhileMoving          = No    
  6898.     IsAimingWeapon            = Yes
  6899.     
  6900.     AntiAirborneVehicle        = Yes
  6901.     AntiAirborneMonster        = Yes
  6902.     AcceptableAimDelta        = 20    ; prevent twitchy reaiming in horde on horde
  6903.  
  6904.       CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  6905.     
  6906.     DamageType                  = FLAME
  6907.  
  6908.       ProjectileNugget          ; Fire arrow available through fire upgrade
  6909.         ProjectileTemplateName  = GoodFactionFireArrow
  6910.         WarheadTemplateName     = IsengardArcherBowFireWarhead
  6911.       End
  6912. End
  6913.  
  6914. Weapon IsengardArcherBowBombardFireArrow       ; BALANCE Archer Weapon
  6915.     AttackRange               = ISENGARD_URUKCROSSBOW_BOMBARD_MAXRANGE
  6916.     MinimumAttackRange        = #SUBTRACT( ISENGARD_URUKCROSSBOW_BOMBARD_MINRANGE 75 )
  6917.     
  6918.     RangeBonusMinHeight    = 10
  6919.     RangeBonus        = 1
  6920.     RangeBonusPerFoot    = #MULTIPLY( ISENGARD_URUKCROSSBOW_BOMBARD_MAXRANGE .01 )
  6921.     
  6922.     
  6923.     WeaponSpeed               = 321         ; dist/sec 
  6924.     MinWeaponSpeed            = 241
  6925.     MaxWeaponSpeed            = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  6926.     FireFX                    = FX_RohanArcherBowWeapon
  6927.     ScaleWeaponSpeed          = Yes ; Used for lob weapons, scales speed proportional to range
  6928.     HitPercentage             = 100     ;When this weapon is used it will hit exactly 50% of the time.
  6929.     ScatterRadius             = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  6930.     DelayBetweenShots         = ISENGARD_URUKCROSSBOW_DELAYBETWEENSHOTS
  6931.     PreAttackDelay            = ISENGARD_URUKCROSSBOW_PREATTACKDELAY    ; 1467 is the prep time for archer.
  6932.     PreAttackRandomAmount     = 200    ; amount of additional preattack variance for archer type attacks only  
  6933.     PreAttackType             = PER_SHOT ; Do the delay each time we attack a new target
  6934.     FiringDuration            = ISENGARD_URUKCROSSBOW_FIRINGDURATION    ; Duration of the archer firing shot is 500ms.
  6935.     CanFireWhileMoving          = No    
  6936.     IsAimingWeapon            = Yes
  6937.     
  6938.     AntiAirborneVehicle        = Yes
  6939.     AntiAirborneMonster        = Yes
  6940.     AcceptableAimDelta        = 20    ; prevent twitchy reaiming in horde on horde
  6941.  
  6942.       CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  6943.       
  6944.       NoVictimNeeded            = Yes
  6945.     BombardType                = Yes    
  6946.     DamageType                  = FLAME
  6947.  
  6948.       ProjectileNugget          ; Fire arrow available through fire upgrade
  6949.         ProjectileTemplateName  = GoodFactionFireArrow
  6950.         WarheadTemplateName     = IsengardArcherBowBombardFireWarhead
  6951.       End
  6952. End
  6953.  
  6954. ;-----------------------------------
  6955. Weapon IsengardArcherBowWarhead
  6956.     RadiusDamageAffects = ENEMIES
  6957.     HitStoredTarget = Yes    ; Always hits initial target.
  6958.     DamageNugget                        ; A basic Nugget that just does damage
  6959.         Damage        = ISENGARD_URUKCROSSBOW_DAMAGE            
  6960.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  6961.         DelayTime     = 0
  6962.         DamageType    = PIERCE
  6963.         DamageFXType  = EVIL_ARROW_PIERCE
  6964.         DeathType     = NORMAL
  6965.       End
  6966. End
  6967.  
  6968. Weapon IsengardArcherBowBombardWarhead
  6969.     RadiusDamageAffects = ENEMIES
  6970.     DamageNugget                        ; A basic Nugget that just does damage
  6971.         Damage        = ISENGARD_URUKCROSSBOW_DAMAGE            
  6972.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  6973.         DelayTime     = 0
  6974.         DamageType    = PIERCE
  6975.         DamageFXType  = EVIL_ARROW_PIERCE
  6976.         DeathType     = NORMAL
  6977.       End
  6978. End
  6979.  
  6980.  
  6981. Weapon IsengardArcherBowFireWarhead
  6982.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  6983.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  6984.     HitStoredTarget = Yes    ; Always hits initial target.
  6985.  
  6986.     DamageNugget                        ; A basic Nugget that just does damage
  6987.         Damage        = ISENGARD_URUKCROSSBOW_DAMAGE_UPGRADE_FLAME
  6988.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  6989.         DelayTime     = 0
  6990.         DamageType    = FLAME
  6991.         DamageFXType  = EVIL_ARROW_PIERCE
  6992.         DeathType     = BURNED
  6993.         AcceptDamageAdd = No
  6994.         DamageScalar  = 25% ALL -STRUCTURE
  6995.     End
  6996.  
  6997.     DamageNugget                        ; A basic Nugget that just does damage
  6998.         Damage        = 1
  6999.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  7000.         DamageType    = FLAME
  7001.         DamageFXType  = FLAME
  7002.         DeathType     = BURNED
  7003.         AcceptDamageAdd = No
  7004.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  7005.     End
  7006.     
  7007.     DamageNugget                        ; A basic Nugget that just does damage
  7008.         Damage        = ISENGARD_URUKCROSSBOW_DAMAGE_UPGRADE
  7009.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  7010.         DelayTime     = 0
  7011.         DamageType    = PIERCE
  7012.         DamageFXType  = EVIL_ARROW_PIERCE
  7013.         DeathType     = NORMAL
  7014.     End
  7015. End
  7016.  
  7017. Weapon IsengardArcherBowBombardFireWarhead
  7018.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  7019.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  7020.  
  7021.     DamageNugget                        ; A basic Nugget that just does damage
  7022.         Damage        = ISENGARD_URUKCROSSBOW_DAMAGE_UPGRADE_FLAME
  7023.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  7024.         DelayTime     = 0
  7025.         DamageType    = FLAME
  7026.         DamageFXType  = EVIL_ARROW_PIERCE
  7027.         DeathType     = BURNED
  7028.         AcceptDamageAdd = No
  7029.     End
  7030.  
  7031.     DamageNugget                        ; A basic Nugget that just does damage
  7032.         Damage        = 1
  7033.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  7034.         DamageType    = FLAME
  7035.         DamageFXType  = FLAME
  7036.         DeathType     = BURNED
  7037.         AcceptDamageAdd = No
  7038.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  7039.     End
  7040.     
  7041.     DamageNugget                        ; A basic Nugget that just does damage
  7042.         Damage        = ISENGARD_URUKCROSSBOW_DAMAGE_UPGRADE
  7043.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  7044.         DelayTime     = 0
  7045.         DamageType    = PIERCE
  7046.         DamageFXType  = EVIL_ARROW_PIERCE
  7047.         DeathType     = NORMAL
  7048.     End
  7049.  
  7050.     FireLogicNugget
  7051.         LogicType    = INCREASE_BURN_RATE
  7052.         Radius        = 1.0
  7053.         Damage        = ARCHER_BOMBARD_FIREARROW_BURNRATEINCREASE
  7054.     End
  7055. End
  7056.  
  7057. ;------------------------------------------------------------------------------
  7058. Weapon IsengardBannerSword  ; BALANCE Banner Urak-hai Sword Weapon
  7059.   LeechRangeWeapon      = Yes
  7060.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  7061.   MeleeWeapon           = Yes
  7062.   DelayBetweenShots     = ISENGARD_URUKFIGHTER_DELAYBETWEENSHOTS            ; time between shots, msec
  7063.   PreAttackDelay        = ISENGARD_URUKFIGHTER_PREATTACKDELAY             ; 433 is natural time of the stabbing animation.
  7064.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  7065.   FiringDuration        = ISENGARD_URUKFIGHTER_FIRINGDURATION            ; min 600 for anim
  7066.   FireFX                    = FX_GondorSwordHit
  7067.   FireFlankFX        = FX_Flanking
  7068.  
  7069.   DamageNugget                        ; A basic Nugget that just does damage
  7070.     Damage        = ISENGARD_URUKFIGHTER_DAMAGE
  7071.     Radius        = 0.0
  7072.     DelayTime     = 0
  7073.     DamageType    = SLASH
  7074.     DamageFXType  = SWORD_SLASH
  7075.     DeathType     = NORMAL
  7076.     FlankingBonus = 50%
  7077.   End
  7078. End
  7079.  
  7080. ;------------------------------------------------------------------------------
  7081. Weapon GollumAttack  ; BALANCE Gollum weapon.
  7082.   LeechRangeWeapon      = Yes
  7083.   AttackRange           = 2.0
  7084.   MeleeWeapon           = Yes
  7085.   DelayBetweenShots     = GOLLUM_DELAYBETWEENSHOTS            ; time between shots, msec
  7086.   PreAttackDelay        = GOLLUM_PREATTACKDELAY             ; 433 is natural time of the stabbing animation.
  7087.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  7088.   FiringDuration        = GOLLUM_FIRINGDURATION            ; min 600 for anim
  7089.   FireFX                = FX_GollumAttack
  7090.  
  7091.   DamageNugget                        ; A basic Nugget that just does damage
  7092.     Damage        = GOLLUM_DAMAGE
  7093.     Radius        = 0.0
  7094.     DelayTime     = 0
  7095.     DamageType    = SLASH
  7096.     DamageFXType  = SWORD_SLASH
  7097.     DeathType     = NORMAL
  7098.   End
  7099. End
  7100.  
  7101. ;------------------------------------------------------------------------------
  7102. Weapon IsengardBannerSwordUpgrade  ; BALANCE Banner Urak-hai Sword Weapon
  7103.   LeechRangeWeapon      = Yes
  7104.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  7105.   MeleeWeapon           = Yes
  7106.   DelayBetweenShots     = 1200            ; time between shots, msec
  7107.   PreAttackDelay        = 567             ; 433 is natural time of the stabbing animation.
  7108.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  7109.   FiringDuration        = 633            ; min 600 for anim
  7110.   FireFX                    = FX_GondorSwordHit
  7111.   FireFlankFX        = FX_Flanking
  7112.  
  7113.   DamageNugget                        ; A basic Nugget that just does damage
  7114.     Damage        = ISENGARD_URUKFIGHTER_DAMAGE_UPGRADE
  7115.     Radius        = 0.0
  7116.     DelayTime     = 0
  7117.     DamageType    = SLASH
  7118.     DamageFXType  = SWORD_SLASH
  7119.     DeathType     = NORMAL
  7120.     FlankingBonus = 50%
  7121.   End
  7122. End
  7123.  
  7124.  
  7125. ;------------------------------------------------------------------------------
  7126. Weapon IsengardExplosiveMineDroppingWeapon   ; BALANCE Mine Weapon
  7127.     AttackRange           = 15.0
  7128.     MeleeWeapon           = Yes; Melee should work now, and you get Bomb too. 10/30/2004; so the demo team will seek the melee contact point "Bomb"
  7129.     DelayBetweenShots     = 3000            ; time between shots, msec
  7130.     PreAttackDelay        = 1466             ; 433 is natural time of the stabbing animation.
  7131.     PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  7132.     FiringDuration        = 733            ; min 600 for anim
  7133.     AcceptableAimDelta    = 15             ; Give it a little leeway
  7134.  
  7135.     SpawnAndFadeNugget    
  7136.         ObjectTargetFilter = ANY +STRUCTURE +INFANTRY +CAVALRY +MONSTER -ROCK_VENDOR; Used to have no check at all, so just do a basic "game unit" check to keep out rocks and such
  7137.         SpawnedObjectName = IsengardDeployedExplosiveMine
  7138.         SpawnOffset = X:8 Y:1 Z:0
  7139.     End
  7140. End
  7141.  
  7142. ;------------------------------------------------------------------------------
  7143. Weapon IsengardExplosiveMineDroppingWeaponPosition            ; BALANCE Mine Weapon
  7144.     AttackRange                = 15.0
  7145.     MeleeWeapon                = No
  7146.     DelayBetweenShots            = 3000                ; time between shots, msec
  7147.     PreAttackDelay            = 1466                ; 433 is natural time of the stabbing animation.
  7148.     PreAttackType            = PER_SHOT                ; Do the delay each time we attack a new target
  7149.     FiringDuration            = 733                    ; min 600 for anim
  7150.     AcceptableAimDelta        = 15                    ; Give it a little leeway
  7151.     NoVictimNeeded            = Yes                    ; Need no target
  7152.     OverrideVoiceAttackSound    = ExplosiveMineVoiceDeploy    ;Play Special "leave it there voice"
  7153.  
  7154.     SpawnAndFadeNugget    
  7155.         ObjectTargetFilter = ANY +STRUCTURE +INFANTRY +CAVALRY +MONSTER -ROCK_VENDOR; And funny thing, even though this has Position in the name, nothing actually makes it be Position based.  So when the object one fails on a rock, this one get picked.  So filter goes here too.
  7156.         SpawnedObjectName = IsengardDeployedExplosiveMine
  7157.         SpawnOffset = X:8 Y:1 Z:0
  7158.     End
  7159. End
  7160.  
  7161. ;------------------------------------------------------------------------------
  7162. Weapon IsengardExplosiveMineExplosionWeapon   ; BALANCE Mine Weapon
  7163.     AttackRange           = 4.0
  7164.     DelayBetweenShots     = 2000            ; time between shots, msec
  7165.     FireFX                = FX_ExplosiveMine
  7166.     RadiusDamageAffects = ALLIES ENEMIES NEUTRALS SELF ; SELF so mine affects siegeworks that made it 
  7167.  
  7168.     ; The highly destructive exposion that destroys everything. Consentrated to a small radius
  7169.     ; so that it doesn't destroy objects with awkward bounding boxes, like walls.
  7170.     DamageNugget
  7171.         Damage        = ISENGARD_EXPLOSIVEMINE_MAIN_DAMAGE
  7172.         Radius        = 125.0
  7173.         DelayTime     = 0
  7174.         DamageType    = SIEGE
  7175.         DamageFXType  = FLAME
  7176.         DeathType     = BURNED
  7177.         DamageScalar  = 50000% NONE +HelmsDeepCulvert ; Make sure we one shot kill Culvert but Ballista have to shoot alot
  7178.     End
  7179.  
  7180.     MetaImpactNugget                    ; A Nugget that throws things back with force 
  7181. ;        HeroResist            = .75
  7182.         ShockWaveAmount   = 90.0        
  7183.         ShockWaveRadius   = 125.0
  7184.         ShockWaveTaperOff = 0.66
  7185.     End
  7186. End
  7187.  
  7188. ;------------------------------------------------------------------------------
  7189. Weapon IsengardBurningPileofLeavesWeapon   ; BALANCE Level Effects
  7190.     AttackRange           = 4.0
  7191.     DelayBetweenShots     = 2000            ; time between shots, msec
  7192.     FireFX                = FX_LeafPileFire
  7193.  
  7194.     DamageNugget                        ; A basic Nugget that just does damage
  7195.         Damage        = 200
  7196.         Radius        = 75.0
  7197.         DelayTime     = 0
  7198.         DamageType    = SIEGE
  7199.         DamageFXType  = FLAME
  7200.         DeathType     = BURNED
  7201.         DamageScalar  = 50000% NONE +HelmsDeepCulvert ; Make sure we one shot kill Culvert but Ballista have to shoot alot
  7202.     End
  7203.     
  7204. ;    MetaImpactNugget                    ; A Nugget that throws things back with force 
  7205. ;        HeroResist            = .75
  7206. ;        ShockWaveAmount   = 50.0        
  7207. ;        ShockWaveRadius   = 75.0
  7208. ;        ShockWaveTaperOff = 0.5
  7209. ;    End
  7210. End
  7211.  
  7212. ;------------------------------------------------------------------------------
  7213. Weapon IsengardBerserkerSword   ; BALANCE Berserker Weapon
  7214.   LeechRangeWeapon      = Yes
  7215.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  7216.   MeleeWeapon           = Yes
  7217.   DelayBetweenShots     = ISENGARD_BERSERKER_DELAYBETWEENSHOTS            ; time between shots, msec
  7218.   PreAttackDelay        = ISENGARD_BERSERKER_PREATTACKDELAY             ; 433 is natural time of the stabbing animation.
  7219.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  7220.   FiringDuration        = ISENGARD_BERSERKER_FIRINGDURATION            ; min 600 for anim
  7221.   FireFX                = FX_GondorSwordHit
  7222.   
  7223.  
  7224.   DamageNugget                        ; A basic Nugget that just does damage
  7225.     Damage        = ISENGARD_BERSERKER_DAMAGE
  7226.     Radius        = ISENGARD_BERSERKER_RADIUS
  7227.     DelayTime     = 0
  7228.     DamageType    = HERO
  7229.     DamageFXType  = SWORD_SLASH
  7230.     DeathType     = NORMAL
  7231.     DamageArc      = ISENGARD_BERSERKER_ARC
  7232.   End    
  7233.  
  7234. ;  MetaImpactNugget      ; A Nugget that throws things back with force
  7235. ;    ShockWaveAmount   = 20.0
  7236. ;    ShockWaveRadius   = 10.0
  7237. ;    ShockWaveTaperOff = 1.0
  7238. ;    ShockWaveArc      = 90
  7239. ;    HeroResist          = 0.90        ; 90% resistance to heroes
  7240. ;  End
  7241.  
  7242.  
  7243. End
  7244.  
  7245. ;------------------------------------------------------------------------------
  7246. Weapon IsengardBerserkerTorch   ; BALANCE Berserker Weapon
  7247.   LeechRangeWeapon      = Yes
  7248.   AttackRange           = 20.0
  7249. ;  MeleeWeapon           = Yes
  7250.   DelayBetweenShots     = 10000 ; This shot will kill us, btw.
  7251.   PreAttackDelay        = 1666
  7252.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  7253.   FiringDuration        = 100           
  7254.  
  7255.   DamageNugget                        ; A basic Nugget that just does damage
  7256.     Damage        = 25    ; uped to 25 so that it can light ents on fire
  7257.     Radius        = 0.0
  7258.     DelayTime     = 0
  7259.     DamageType    = FLAME
  7260.     DamageFXType  = FLAME
  7261.     DeathType     = BURNED
  7262.     DamageScalar  = 200000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  7263.   End
  7264.   
  7265.     FireLogicNugget
  7266.         LogicType    = INCREASE_BURN_RATE
  7267.         Radius        = 0.0
  7268.         Damage        = 25
  7269.     End
  7270. End
  7271.  
  7272. ;------------------------------------------------------------------------------
  7273. Weapon IsengardPikemanPike     ; BALANCE Isengard Pikeman Weapon
  7274.   LeechRangeWeapon      = Yes
  7275.   AttackRange           = 35
  7276.   MeleeWeapon           = Yes    ; Sorry, stand off doesn't work.  This is just a melee weapon.
  7277.   DelayBetweenShots     = ISENGARD_URUKPIKEMAN_STAB_DELAYBETWEENSHOTS                ; time between shots, msec
  7278.   PreAttackDelay        = ISENGARD_URUKPIKEMAN_STAB_PREATTACKDELAY                
  7279.   PreAttackType         = PER_SHOT            ; Do the delay each time we attack
  7280.   FireFX                = FX_GondorSwordHit
  7281.   FireFlankFX        = FX_Flanking
  7282.   FiringDuration        = ISENGARD_URUKPIKEMAN_STAB_FIRINGDURATION                
  7283.   
  7284.     DamageNugget                                ; A basic Nugget that just does damage
  7285.         Damage        = ISENGARD_URUKPIKEMAN_STAB_DAMAGE
  7286.         DamageType    = SPECIALIST
  7287.         DamageFXType  = SWORD_SLASH
  7288.         DeathType     = NORMAL
  7289.         ;LostLeadershipUselessAgainst = CAVALRY ; Useless when under the CloudBreak spell against Cavalry type units
  7290.         ForbiddenUpgradeNames    = Upgrade_IsengardForgedBlades
  7291.         FlankingBonus = 50%
  7292.     End
  7293.  
  7294.     DamageNugget                                ; A basic Nugget that just does damage
  7295.         Damage        = ISENGARD_URUKPIKEMAN_DAMAGE_UPGRADE
  7296.         DamageType    = SPECIALIST
  7297.         DamageFXType  = SWORD_SLASH
  7298.         DeathType     = NORMAL
  7299.         ;LostLeadershipUselessAgainst = CAVALRY ; Useless when under the CloudBreak spell against Cavalry type units
  7300.         RequiredUpgradeNames    = Upgrade_IsengardForgedBlades
  7301.         FlankingBonus = 50%
  7302.     End
  7303. End
  7304.  
  7305. //-----------------------------------
  7306. Weapon MineLauncherWeapon
  7307.     AttackRange                    = ISENGARD_MINELAUNCHER_RANGE    
  7308.     WeaponSpeed                    = 100                                        // dist/sec 
  7309.     MinWeaponSpeed                = 100
  7310.     FireFX                        = FX_CatapultWeapon
  7311.     FXTrigger                    = CATAPULT_ROCK    
  7312.     DelayBetweenShots            = ISENGARD_MINELAUNCHER_DELAYBETWEENSHOTS    // time between shots, msec    
  7313.     PreAttackDelay                = ISENGARD_MINELAUNCHER_PREATTACKDELAY
  7314.     PreAttackType                = PER_SHOT                                    // Do the delay each time we attack a new target
  7315.     FiringDuration                = ISENGARD_MINELAUNCHER_FIRINGDURATION        // Catapult firing animation takes 3.0 secs.    
  7316.     NoVictimNeeded                = Yes                                        // Need no target
  7317.     LeechRangeWeapon            = Yes
  7318.     AcceptableAimDelta            = 45
  7319.       
  7320.     ScatterRadiusVsInfantry        = 40.0  
  7321.     
  7322.     HitPercentage       = 100        // always hits.
  7323.     
  7324.     ProjectileNugget                    
  7325.         ProjectileTemplateName            = IsengardMineLauncherProjectile 
  7326.         WarheadTemplateName                = MineLauncherWarHead
  7327.         UseAlwaysAttackOffset            = Yes                    //Causes project to always target an offset from the attacker
  7328.         AlwaysAttackHereOffset            = X:150 Y:0 Z:0            //Used with UseAlwaysAttackOffset, this specifies the offset from the attacker to strike
  7329.     End
  7330.     ProjectileNugget                    
  7331.         ProjectileTemplateName            = IsengardMineLauncherProjectile 
  7332.         WarheadTemplateName                = MineLauncherWarHead
  7333.         WeaponLaunchBoneSlotOverride    = SECONDARY
  7334.         UseAlwaysAttackOffset            = Yes                    //Causes project to always target an offset from the attacker
  7335.         AlwaysAttackHereOffset            = X:130 Y:-100 Z:0        //Used with UseAlwaysAttackOffset, this specifies the offset from the attacker to strike
  7336.     End
  7337.     ProjectileNugget                    
  7338.         ProjectileTemplateName            = IsengardMineLauncherProjectile 
  7339.         WarheadTemplateName                = MineLauncherWarHead
  7340.         WeaponLaunchBoneSlotOverride    = TERTIARY
  7341.         UseAlwaysAttackOffset            = Yes                    //Causes project to always target an offset from the attacker
  7342.         AlwaysAttackHereOffset            = X:130 Y:100 Z:0        //Used with UseAlwaysAttackOffset, this specifies the offset from the attacker to strike
  7343.     End
  7344. End
  7345.  
  7346. ;//-----------------------------------
  7347. Weapon MineLauncherWarHead
  7348.     ProjectileCollidesWith    = MONSTERS    STRUCTURES    // Structures is the default, btw.
  7349.     RadiusDamageAffects        = ENEMIES ALLIES NOT_SIMILAR
  7350.  
  7351.     ;// The highly destructive exposion that destroys everything. Consentrated to a small radius
  7352.     ;// so that it doesn't destroy objects with awkward bounding boxes, like walls.
  7353.     DamageNugget
  7354.         Damage        = ISENGARD_MINELAUNCHER_DAMAGE
  7355.         Radius        = ISENGARD_MINELAUNCHER_RADIUS
  7356.         DelayTime     = 0
  7357.         DamageType    = SIEGE
  7358.         DamageFXType  = FLAME
  7359.         DeathType     = BURNED        
  7360.         DamageScalar  = 0% NONE +IsengardFortressCitadel +IsengardBallistaExpansion +IsengardTowerExpansion
  7361.     End
  7362.  
  7363.     MetaImpactNugget                    // A Nugget that throws things back with force 
  7364. ;        HeroResist            = .75
  7365.         ShockWaveAmount        = 50.0        
  7366.         ShockWaveRadius        = 30.0
  7367.         ShockWaveTaperOff    = 0.75
  7368.     End
  7369. End
  7370.  
  7371. ;//------------------------------------------------------------------------------
  7372. Weapon WizardTowerLightningWeapon  ;// BALANCE WizardTowerLightning        
  7373.     AttackRange                = ISENGARD_WIZARDSTOWER_LIGHTNING_RANGE
  7374.     WeaponSpeed                = 900        ;// dist/sec 
  7375.     HitPercentage            = 100        ;// When this weapon is used it will hit exactly 100% of the time.
  7376.     DelayBetweenShots        = 500        ;// time between shots, msec
  7377.     PreAttackDelay          = 3000    
  7378.     PreAttackType           = PER_ATTACK    ;// Do the delay each time we attack a new target
  7379.     AcceptableAimDelta        = 0
  7380.     FireFX                        = FX_WizardTowerClouds
  7381.     FiringDuration          = 1
  7382.     AntiAirborneVehicle        = Yes
  7383.     AntiAirborneMonster        = Yes
  7384.  
  7385.     ProjectileNugget                    
  7386.         ProjectileTemplateName            = WizardTowerProjectile 
  7387.         WarheadTemplateName                = WizardTowerWarHead
  7388.         WeaponLaunchBoneSlotOverride    = SECONDARY
  7389.     ;    UseAlwaysAttackOffset            = Yes                    //Causes project to always target an offset from the attacker
  7390.     ;    AlwaysAttackHereOffset            = X:0 Y:0 Z:400            //Used with UseAlwaysAttackOffset, this specifies the offset from the attacker to strike
  7391.     End
  7392. End    
  7393. ;---------------------------------------------------------------------------------------
  7394. Weapon WizardTowerWarHead
  7395.  
  7396.     ProjectileCollidesWith    = MONSTERS    STRUCTURES    // Structures is the default, btw.
  7397.     RadiusDamageAffects        = ENEMIES ALLIES NOT_SIMILAR
  7398.  
  7399.     // A Nugget that throws things back with force
  7400.     MetaImpactNugget                    ;// A Nugget that throws things back with force
  7401. ;        HeroResist            = .75
  7402.         ShockWaveAmount        = 150.0
  7403.         ShockWaveRadius        = ISENGARD_WIZARDSTOWER_LIGHTNING_SHOT_DMG_RADIUS
  7404.         ShockWaveTaperOff    = 0.2
  7405.         ShockWaveZMult        = 1.50        
  7406.         KillObjectFilter    = INSTANT_DEATH_ON_METAIMPACT_OBJFILTER
  7407.     End
  7408.  
  7409.     //Start a fire
  7410.     FireLogicNugget 
  7411.         LogicType    =    INCREASE_BURN_RATE
  7412.         Radius        =    ISENGARD_WIZARDSTOWER_LIGHTNING_FIRE_RADIUS
  7413.         Damage        =    ISENGARD_WIZARDSTOWER_LIGHTNING_FIRE_START_RAD
  7414.     End
  7415.  
  7416.     // A basic Nugget that just does damage
  7417.     DamageNugget                        
  7418.         Damage                = ISENGARD_WIZARDSTOWER_LIGHTNING_DAMAGE_FLAME
  7419.         Radius                = ISENGARD_WIZARDSTOWER_LIGHTNING_SHOT_DMG_RADIUS    //Radius of damage            
  7420.         DamageType            = FLAME
  7421.         DamageFXType          = BOLT
  7422.         DeathType             = NORMAL //BURNED
  7423.     End
  7424.  
  7425.     // A basic Nugget that just does damage
  7426.     DamageNugget                        
  7427.         Damage                = ISENGARD_WIZARDSTOWER_LIGHTNING_DAMAGE
  7428.         Radius                = ISENGARD_WIZARDSTOWER_LIGHTNING_SHOT_DMG_RADIUS    //Radius of damage            
  7429.         DamageType            = MAGIC
  7430.         DamageFXType          = BOLT
  7431.         DeathType             = NORMAL //BURNED
  7432.     End
  7433. End
  7434.  
  7435.  
  7436. ;------------------------------------------------------------------------------
  7437. ;------------------------------------------------------------------------------
  7438. ;------------------------------------------------------------------------------
  7439. ;------------------------------------------------------------------------------
  7440. ;
  7441. ;  Mordor
  7442. ;
  7443. ;------------------------------------------------------------------------------
  7444. ;------------------------------------------------------------------------------
  7445. ;------------------------------------------------------------------------------
  7446.  
  7447. ;------------------------------------------------------------------------------
  7448.  
  7449. Weapon ShelobWebbing ;taken from Legolas' bow - needs designer love
  7450.     AttackRange            = LEGOLAS_BOW_RANGE                
  7451.     WeaponSpeed            = 321         ; dist/sec 
  7452.     MinWeaponSpeed        = 241
  7453.     MaxWeaponSpeed        = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  7454.     FireFX                = FX_RohanArcherBowWeapon
  7455.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  7456.     HitPercentage        = 100     ;When this weapon is used it will hit exactly 100% of the time.
  7457.     ScatterRadius        = 5.0     ;When this weapon misses it can randomly miss by as much as this distance.
  7458.  
  7459.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  7460.     DelayBetweenShots    = LEGOLAS_DELAYBETWEENSHOTS     ; time between shots, msec
  7461.     PreAttackDelay      = LEGOLAS_PREATTACKDELAY         ; 1467 is the prep time for archer.
  7462.     PreAttackType       = PER_POSITION ; Do the delay each time we attack a new target
  7463.     FiringDuration      = LEGOLAS_FIRINGDURATION     ; Duration of the archer firing shot is 500ms.
  7464.  
  7465.     ClipSize            = 1
  7466.     AutoReloadsClip        = Yes
  7467.     AutoReloadWhenIdle    = 1    
  7468.     ClipReloadTime        = Min:LEGOLAS_RELOADTIME_MIN Max:LEGOLAS_RELOADTIME_MAX
  7469.     ContinuousFireOne    = 0
  7470.     ContinuousFireCoast    = LEGOLAS_RELOADTIME_MAX
  7471.  
  7472.     AntiAirborneVehicle    = Yes
  7473.     AntiAirborneMonster    = Yes
  7474.     
  7475.     ProjectileNugget                    ; Shelob's Web throw
  7476.         ProjectileTemplateName  = ShelobWebbingProjectile 
  7477.         WarheadTemplateName     = ShelobWebbingWarhead
  7478.     End
  7479. End
  7480.  
  7481. ;-----------------------------------
  7482. Weapon ShelobWebbingWarhead
  7483.   ProjectileCollidesWith = ALLIES ENEMIES NEUTRAL ;STRUCTURES WALLS 
  7484.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR
  7485.   HitStoredTarget = Yes    ; Always hits initial target.
  7486.   DamageNugget   ; A basic Nugget that just does damage
  7487.     Damage        = LURTZ_BOW_STUN_DAMAGE
  7488.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  7489.     DelayTime     = 0
  7490.     DamageType    = HERO_RANGED
  7491.     DamageFXType  = GOOD_ARROW_PIERCE
  7492.     DeathType     = NORMAL
  7493.   End
  7494.  
  7495.       AttributeModifierNugget
  7496.         AttributeModifier        = ShelobWebbing
  7497.         DamageFXType             = EVIL_ARROW_PIERCE 
  7498.         SpecialObjectFilter      = NONE +HERO -MordorBalrog -GondorGwaihir -MordorFellBeast -MordorWitchKingOnFellBeast -RohanTreeBerd -RohanEntFir -RohanEntFir_Summoned -RohanEntBirch_Summoned -TomBombadil -TomBombadil_Summoned
  7499.     End         
  7500. End
  7501.  
  7502. //------------------------------------------------------------------------------
  7503. //Fake weapon so that the expansion will pick targets that the slaved catapult can attack
  7504. Weapon MordorCatapultExpansionWeapon        
  7505.     AttackRange                    = MORDOR_CATAPULT_ROCK_RANGE
  7506.     MinimumAttackRange            = MORDOR_CATAPULT_ROCK_MINRANGE
  7507.     LeechRangeWeapon            = Yes
  7508.     DelayBetweenShots            = MORDOR_CATAPULT_ROCK_DELAYBETWEENSHOTS  
  7509.     PreAttackDelay                = MORDOR_CATAPULT_ROCK_PREATTACKDELAY
  7510.     FiringDuration              = MORDOR_CATAPULT_ROCK_FIRINGDURATION
  7511.     AcceptableAimDelta            = MORDOR_CATAPULT_EXPANSION_AIM_DELTA  
  7512.     FinishAttackOnceStarted        = Yes    
  7513.  
  7514.     //This nugget tells the objects slave to perform the attack
  7515.     SlaveAttackNugget
  7516.     End
  7517. End
  7518.  
  7519. ;-----------------------------------
  7520. Weapon MordorCatapultRock  ; BALANCE Catapult Weapon
  7521.   AttackRange = MORDOR_CATAPULT_ROCK_RANGE
  7522.   
  7523.   RangeBonusMinHeight    = 10
  7524.     RangeBonus        = 1
  7525.     RangeBonusPerFoot    = #MULTIPLY( MORDOR_CATAPULT_ROCK_RANGE .01 )
  7526.     
  7527.     
  7528.   MinimumAttackRange    = 100.0
  7529.   WeaponSpeed            = 201         ; dist/sec 
  7530.   MinWeaponSpeed        = 201
  7531.   FireFX                = FX_CatapultWeapon
  7532.   DelayBetweenShots        = MORDOR_CATAPULT_ROCK_DELAYBETWEENSHOTS; time between shots, msec
  7533.   FXTrigger                = CATAPULT_ROCK
  7534.   PreAttackDelay        = MORDOR_CATAPULT_ROCK_PREATTACKDELAY
  7535.   PreAttackType            = PER_SHOT ; Do the delay each time we attack a new target
  7536.   FiringDuration        = MORDOR_CATAPULT_ROCK_FIRINGDURATION    ; Catapult firing animation takes 3.0 secs.
  7537.   RequireFollowThru        = Yes
  7538.   ShareTimers            = Yes ; share timer with catapult heads to you can't fire both in quick succession
  7539.   NoVictimNeeded        = Yes ; Need no target
  7540.   LeechRangeWeapon        = Yes
  7541.   
  7542.   ScatterRadiusVsInfantry     = 40.0 ; 
  7543.   DisableScatterForTargetsOnWall = Yes
  7544.   HitPercentage       = 100 ; always hits.
  7545. ;  ScatterRadius       = 50.0     ;When this weapon misses it can randomly miss by as much as this distance.
  7546.  
  7547.   ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  7548.     ProjectileTemplateName = MordorCatapultRockProjectile
  7549.     WarheadTemplateName = MordorCatapultRockWarhead
  7550.   End
  7551. End
  7552.  
  7553. ;------------------------------------------------------------------------------
  7554. Weapon MordorCatapultHumanHeads
  7555.     AttackRange            = MORDOR_CATAPULT_HEADS_RANGE
  7556.     
  7557.     RangeBonusMinHeight    = 10
  7558.     RangeBonus        = 1
  7559.     RangeBonusPerFoot    = #MULTIPLY( MORDOR_CATAPULT_HEADS_RANGE .01 )
  7560.     
  7561.     MinimumAttackRange    = 100.0
  7562.     WeaponSpeed            = 201         ; dist/sec 
  7563.     MinWeaponSpeed        = 201
  7564.     FireFX                = FX_CatapultWeapon
  7565.     DelayBetweenShots    = MORDOR_CATAPULT_HEADS_DELAYBETWEENSHOTS; time between shots, msec
  7566.     FXTrigger            = CATAPULT_ROCK
  7567.     PreAttackDelay        = MORDOR_CATAPULT_HEADS_PREATTACKDELAY
  7568.     PreAttackType        = PER_SHOT ; Do the delay each time we attack a new target
  7569.     FiringDuration        = MORDOR_CATAPULT_HEADS_FIRINGDURATION    ; Catapult firing animation takes 3.0 secs.
  7570.      RequireFollowThru    = Yes
  7571.     ShareTimers            = Yes ; share timer with catapult rocks to you can't fire both in quick succession
  7572.     NoVictimNeeded        = Yes ; Need no target
  7573.     LeechRangeWeapon    = Yes
  7574.  
  7575.     ;HitPercentage            = 50 ;misses 50%
  7576.     ;ScatterRadius          = 50.0     ;When this weapon misses it can randomly miss by as much as this distance.
  7577.  
  7578.     
  7579.     ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  7580.         ProjectileTemplateName    = MordorCatapultHumanHeadsProjectile
  7581.         WarheadTemplateName        = MordorCatapultHumanHeadsWarhead
  7582.     End    
  7583. End
  7584.  
  7585. ;-----------------------------------
  7586. Weapon MordorCatapultRockWarhead
  7587.     ProjectileCollidesWith = MONSTERS NEUTRAL    STRUCTURES    ; Structures is the default, btw.
  7588.     RadiusDamageAffects = ENEMIES NEUTRALS ALLIES NOT_SIMILAR
  7589.  
  7590.     FireLogicNugget ;@@@ fire logic testing
  7591.         LogicType    =    INCREASE_BURN_RATE
  7592.         Radius        =    40
  7593.         Damage        =    3
  7594.     End
  7595.  
  7596.     DamageNugget                        ; A basic Nugget that just does damage to trigger explosive mine
  7597.         Damage        = 1
  7598.         Radius        = 20
  7599.         DamageType    = FLAME
  7600.         DamageFXType  = FLAME
  7601.         DeathType     = BURNED
  7602.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  7603.     End
  7604.  
  7605.     // A Nugget that throws things back with force 
  7606.     MetaImpactNugget                    
  7607.         ShockWaveAmount   = 35.0
  7608.         ShockWaveRadius   = 30.0
  7609.         ShockWaveTaperOff = 0.75
  7610.     End
  7611.     
  7612.     DamageNugget                        ; A basic Nugget that just does damage
  7613.         Damage        = MORDOR_CATAPULT_ROCK_DAMAGE    ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  7614.         Radius        = 30 ;20.0
  7615.         DelayTime     = 0
  7616.         DamageType    = SIEGE
  7617.         DamageFXType  = BIG_ROCK
  7618.         DeathType     = EXPLODED
  7619.         DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  7620.     End
  7621.     
  7622.     
  7623.  
  7624.     DamageNugget                        ; A basic Nugget that just does damage
  7625.         Damage        = MORDOR_CATAPULT_FLAME_DAMAGE
  7626.         Radius        = 30 ;20.0
  7627.         DelayTime     = 0
  7628.         DamageType    = FLAME
  7629.         DamageFXType  = BIG_ROCK
  7630.         DeathType     = BURNED
  7631.         AcceptDamageAdd = No
  7632.         DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  7633.     End
  7634.     
  7635.     
  7636.      DamageNugget                        ; A basic Nugget that just does damage
  7637.         Damage        = MORDOR_CATAPULT_ROCK_DAMAGE  ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  7638.         DamageTaperOff = 50
  7639.         Radius        = 100.0
  7640.         DelayTime     = 0
  7641.         DamageType    = SIEGE
  7642.         DamageFXType  = BIG_ROCK
  7643.         DeathType     = EXPLODED
  7644.         DamageScalar  = 0% ALL -WALL_UPGRADE -WALL_HUB -WALL_SEGMENT -DEFENSIVE_WALL            ; No damage to allied structures.
  7645.         ;DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  7646.     End
  7647. End
  7648.  
  7649.  
  7650. Weapon MordorCatapultHumanHeadsWarhead
  7651.     RadiusDamageAffects = ENEMIES ALLIES NOT_SIMILAR
  7652.     
  7653.     FireLogicNugget ;@@@ fire logic testing
  7654.         LogicType        =    INCREASE_FUEL
  7655.         Radius            =    80
  7656.         Damage            =    40
  7657.         MinMaxBurnRate    =    100
  7658.         MinDecay        =    1
  7659.         MaxResistance    =    0
  7660.     End
  7661.     
  7662.     DamageNugget                        ; A basic Nugget that just does damage
  7663.         Damage        = MORDOR_CATAPULT_HEADS_DAMAGE   ;Reduced damage for heads. Heads don't break stone.
  7664.         Radius        = 4.0
  7665.         DelayTime     = 0
  7666.         DamageType    = SIEGE
  7667.         DamageFXType  = BIG_ROCK
  7668.         DeathType     = EXPLODED
  7669.         DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  7670.     End
  7671.     
  7672.     DamageNugget                        ; A basic Nugget that just does damage
  7673.         Damage        = 40 ;50
  7674.         Radius        = 20.0
  7675.         DelayTime     = 0
  7676.         DamageType    = SIEGE
  7677.         DamageFXType  = BIG_ROCK
  7678.         DeathType     = EXPLODED
  7679.         DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  7680.     End
  7681.  
  7682. ;    MetaImpactNugget                    ; A Nugget that throws things back with force - E4 Hacked
  7683. ;        HeroResist            = .75
  7684. ;        ShockWaveAmount   = 50.0
  7685. ;        ShockWaveRadius   = 20.0
  7686. ;        ShockWaveTaperOff = 0.5
  7687. ;    End
  7688. End
  7689.  
  7690.  
  7691. ;-----------------------------------
  7692. Weapon MordorCatapultRock_Structural  ; BALANCE Catapult Weapon
  7693.   AttackRange = MORDOR_CATAPULT_ROCK_RANGE
  7694.   
  7695.       ;RangeBonusMinHeight    = 10
  7696.     ;RangeBonus        = 1
  7697.     ;RangeBonusPerFoot    = #MULTIPLY( MORDOR_CATAPULT_ROCK_RANGE .01 )
  7698.     
  7699.     
  7700.   MinimumAttackRange        = 100.0
  7701.   WeaponSpeed            = 201         ; dist/sec 
  7702.   MinWeaponSpeed        = 201
  7703.   FireFX                = FX_CatapultWeapon
  7704.   DelayBetweenShots        = MORDOR_CATAPULT_ROCK_DELAYBETWEENSHOTS; time between shots, msec
  7705.   FXTrigger                = CATAPULT_ROCK
  7706.   PreAttackDelay        = MORDOR_CATAPULT_ROCK_PREATTACKDELAY
  7707.   PreAttackType            = PER_SHOT ; Do the delay each time we attack a new target
  7708.   FiringDuration        = MORDOR_CATAPULT_ROCK_FIRINGDURATION    ; Catapult firing animation takes 3.0 secs.
  7709.   RequireFollowThru        = Yes
  7710.   ShareTimers            = Yes ; share timer with catapult heads to you can't fire both in quick succession
  7711.   NoVictimNeeded        = Yes ; Need no target
  7712.   LeechRangeWeapon        = Yes
  7713.   
  7714.   ScatterRadiusVsInfantry     = 40.0 ; 
  7715.   DisableScatterForTargetsOnWall = Yes
  7716.   HitPercentage       = 100 ; always hits.
  7717. ;  ScatterRadius       = 50.0     ;When this weapon misses it can randomly miss by as much as this distance.
  7718.  
  7719.   ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  7720.     ProjectileTemplateName = MordorCatapultRockProjectile
  7721.     WarheadTemplateName = MordorCatapultRockWarhead_Structural
  7722.   End
  7723. End
  7724.  
  7725. ;-----------------------------------
  7726. Weapon MordorCatapultRockWarhead_Structural
  7727.     ProjectileCollidesWith = MONSTERS    STRUCTURES    // Structures is the default, btw.
  7728.     RadiusDamageAffects = ENEMIES ALLIES NOT_SIMILAR
  7729.  
  7730.     FireLogicNugget ;@@@ fire logic testing
  7731.         LogicType    =    INCREASE_BURN_RATE
  7732.         Radius        =    40
  7733.         Damage        =    3
  7734.     End
  7735.  
  7736.     // A basic Nugget that just does damage to trigger explosive mine
  7737.     DamageNugget                        
  7738.         Damage        = 1
  7739.         Radius        = 20
  7740.         DamageType    = FLAME
  7741.         DamageFXType  = FLAME
  7742.         DeathType     = BURNED
  7743.         DamageScalar  = 50000% NONE +MINE // Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  7744.     End
  7745.  
  7746.     // A Nugget that throws things back with force 
  7747.     MetaImpactNugget                    
  7748. ;        HeroResist          = .75
  7749.         ShockWaveAmount   = 35.0
  7750.         ShockWaveRadius   = 30.0
  7751.         ShockWaveTaperOff = 0.75
  7752.     End
  7753.     
  7754.     // A basic Nugget that just does damage
  7755.     DamageNugget                        
  7756.         Damage        = MORDOR_CATAPULT_ROCK_DAMAGE    // Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  7757.         Radius        = 30 ;20.0
  7758.         DelayTime     = 0
  7759.         DamageType    = SIEGE
  7760.         DamageFXType  = BIG_ROCK
  7761.         DeathType     = EXPLODED
  7762.         DamageScalar  = 0% ANY ALLIES +STRUCTURE            // No damage to allied structures.
  7763.     End
  7764.  
  7765.     // A basic Nugget that just does damage
  7766.     DamageNugget                        
  7767.         Damage        = MORDOR_CATAPULT_FLAME_DAMAGE
  7768.         Radius        = 30 ;20.0
  7769.         DelayTime     = 0
  7770.         DamageType    = FLAME
  7771.         DamageFXType  = BIG_ROCK
  7772.         DeathType     = BURNED
  7773.         AcceptDamageAdd = No
  7774.         DamageScalar  = 0% ANY ALLIES +STRUCTURE            // No damage to allied structures.
  7775.     End
  7776. End
  7777.  
  7778. ;-----------------------------------
  7779.  
  7780. Weapon MordorCatapultRock_Celduin  ; CUSTOM Catapult Rock for Good 6 Celduin
  7781.   AttackRange = 5000
  7782.   MinimumAttackRange    = 100.0
  7783.   WeaponSpeed            = 201 ; dist/sec 
  7784.   MinWeaponSpeed        = 201
  7785.   FireFX                = FX_CatapultWeapon
  7786.   DelayBetweenShots        = 6000; time between shots, msec
  7787.   FXTrigger                = CATAPULT_ROCK
  7788.   PreAttackDelay        = MORDOR_CATAPULT_ROCK_PREATTACKDELAY
  7789.   PreAttackType            = PER_SHOT ; Do the delay each time we attack a new target
  7790.   FiringDuration        = MORDOR_CATAPULT_ROCK_FIRINGDURATION    ; Catapult firing animation takes 3.0 secs.
  7791.   RequireFollowThru        = Yes
  7792.   ShareTimers            = Yes ; share timer with catapult heads to you can't fire both in quick succession
  7793.   NoVictimNeeded        = Yes ; Need no target
  7794.   LeechRangeWeapon        = Yes
  7795.   
  7796.   ScatterRadiusVsInfantry     = 40.0 ; 
  7797.   DisableScatterForTargetsOnWall = Yes
  7798.   HitPercentage       = 100 ; always hits.
  7799. ;  ScatterRadius       = 50.0     ;When this weapon misses it can randomly miss by as much as this distance.
  7800.  
  7801.   ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  7802.     ProjectileTemplateName = MordorCatapultRockProjectile
  7803.     WarheadTemplateName = MordorCatapultRockWarhead
  7804.   End
  7805. End
  7806.  
  7807. ;//-----------------------------------
  7808. Weapon MordorGorgorothSpireWeapon        ;// BALANCE Spire Weapon
  7809.       AttackRange            = MORDOR_GORGOROTHSPIRE_ROCK_RANGE
  7810.       MinimumAttackRange    = 100.0
  7811.       WeaponSpeed            = 201            ;// dist/sec 
  7812.       MinWeaponSpeed        = 201
  7813.       DelayBetweenShots    = MORDOR_GORGOROTHSPIRE_ROCK_DELAYBETWEENSHOTS    ;// time between shots, msec
  7814.       FXTrigger            = CATAPULT_ROCK
  7815.       PreAttackDelay        = MORDOR_GORGOROTHSPIRE_ROCK_PREATTACKDELAY
  7816.       PreAttackType        = PER_SHOT        ;// Do the delay each time we attack a new target
  7817.       FiringDuration        = MORDOR_GORGOROTHSPIRE_ROCK_FIRINGDURATION        ;// Catapult firing animation takes 3.0 secs.
  7818.       RequireFollowThru    = Yes
  7819.       ShareTimers            = Yes            ;// share timer with catapult heads to you can't fire both in quick succession
  7820.       NoVictimNeeded        = Yes            ;// Need no target
  7821.       LeechRangeWeapon    = Yes
  7822.       
  7823.       ScatterRadiusVsInfantry            = 40.0  
  7824.       DisableScatterForTargetsOnWall    = Yes
  7825.       HitPercentage                    = 100    ;// always hits.
  7826.  
  7827.     ProjectileNugget                    ;// A Nugget that creates an Object and sends it to the target with a Warhead
  7828.         ProjectileTemplateName    = MordorGorgorothSpireProjectile
  7829.         WarheadTemplateName        = MordorGorgorothSpireWarhead
  7830.         WeaponLaunchBoneSlotOverride = SECONDARY    
  7831.     End                                                           
  7832. End
  7833.  
  7834. ;//-----------------------------------
  7835. Weapon MordorGorgorothSpireWarhead
  7836.     ProjectileCollidesWith    = MONSTERS    STRUCTURES    ; Structures is the default, btw.
  7837.     RadiusDamageAffects        = ENEMIES ALLIES NOT_SIMILAR
  7838.  
  7839.     FireLogicNugget
  7840.         LogicType        = INCREASE_FUEL
  7841.         Radius            = 50
  7842.         Damage            = 400
  7843.         MinMaxBurnRate    = 12
  7844.         MaxResistance    = 5
  7845.     End
  7846.     
  7847.     FireLogicNugget ;//@@@ fire logic testing
  7848.         LogicType    =    INCREASE_BURN_RATE
  7849.         Radius        =    50
  7850.         Damage        =    5
  7851.     End
  7852.  
  7853.     DamageNugget                        ; A basic Nugget that just does damage to trigger explosive mine
  7854.         Damage        = 1
  7855.         Radius        = 150
  7856.         DamageType    = FLAME
  7857.         DamageFXType  = FLAME
  7858.         DeathType     = BURNED
  7859.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  7860.     End
  7861.     
  7862.     DamageNugget                        ; A basic Nugget that just does damage
  7863.         Damage        = MORDOR_GORGOROTHSPIRE_ROCK_DAMAGE    ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  7864.         Radius        = 150 ;20.0
  7865.         DelayTime     = 0
  7866.         DamageType    = SIEGE
  7867.         DamageFXType  = BIG_ROCK
  7868.         DeathType     = EXPLODED
  7869.         DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  7870.     End
  7871.  
  7872.     DamageNugget                        ; A basic Nugget that just does damage
  7873.         Damage            = MORDOR_GORGOROTHSPIRE_FLAME_DAMAGE
  7874.         Radius            = 150 ;20.0
  7875.         DelayTime        = 0
  7876.         DamageType        = FLAME
  7877.         DamageFXType    = BIG_ROCK
  7878.         DeathType        = BURNED
  7879.         AcceptDamageAdd = No
  7880.         DamageScalar    = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  7881.     End
  7882.  
  7883.     MetaImpactNugget                    ;// A Nugget that throws things back with force
  7884. ;        HeroResist            = .75
  7885.         ShockWaveAmount        = 50.0
  7886.         ShockWaveRadius        = 150.0
  7887.         ShockWaveTaperOff    = 0.2
  7888.         ShockWaveZMult        = 1.20        
  7889.     End
  7890. End
  7891.  
  7892.  
  7893. ;------------------------------------------------------------------------------
  7894. Weapon MordorCatapultRockDemo  ; BALANCE Catapult Weapon
  7895.   ScatterRadiusVsInfantry     = 0.08     ;When this weapon is used against infantry, it will always randomly miss by as much as this distance.
  7896.   AttackRange = 480.0; 1500
  7897.   MinimumAttackRange = 100.0
  7898.   WeaponSpeed = 321         ; dist/sec 
  7899.   MinWeaponSpeed = 321
  7900.   FireFX = FX_CatapultWeapon
  7901.   DelayBetweenShots = 9000               ; time between shots, msec
  7902.   PreAttackDelay      = 1166      ; 1.166 is the prep time for trebuchet
  7903.   PreAttackType       = PER_SHOT ; Do the delay each time we attack a new target
  7904.   FiringDuration      = 5500    ; Trebuchet firing animation takes 5.5 secs.
  7905.  
  7906.   ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  7907.     ProjectileTemplateName = GondorTrebuchetRockProjectile
  7908.     WarheadTemplateName = MordorCatapultRockWarheadDemo
  7909.   End
  7910. End
  7911.  
  7912. ;-------------------------------------------------------------------------------
  7913. Weapon MordorCatapultRockWarheadDemo
  7914.   FireFX= FX_RockDetonation
  7915.   RadiusDamageAffects = ENEMIES ALLIES NOT_SIMILAR
  7916.   DamageNugget                        ; A basic Nugget that just does damage
  7917.     Damage        = 100
  7918.     Radius        = 68.0
  7919.     DelayTime     = 0
  7920.     DamageType    = SIEGE
  7921.     DamageFXType  = BIG_ROCK
  7922.     DeathType     = EXPLODED
  7923.   End
  7924.   DamageNugget                        ; A basic Nugget that just does damage
  7925.     Damage        = 1
  7926.     Radius        = 20.0
  7927.     DelayTime     = 0
  7928.     DamageType    = SIEGE
  7929.     DamageFXType  = BIG_ROCK
  7930.     DeathType     = EXPLODED
  7931.   End
  7932.   MetaImpactNugget                    ; A Nugget that throws things back with force
  7933. ;    HeroResist            = .75
  7934.     ShockWaveAmount   = 25.0
  7935.     ShockWaveRadius   = 20.0
  7936.     ShockWaveTaperOff = 0.75
  7937.   End
  7938. End
  7939.  
  7940. ;-------------------------------------------------------------------------------
  7941. Weapon WitchKingMorgulBlade     ; BALANCE Witch King Weapon
  7942.     LeechRangeWeapon      = Yes
  7943.     AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  7944.     MeleeWeapon           = Yes
  7945.     DelayBetweenShots     = WITCHKING_DELAYBETWEENSHOTS     ; time between shots, msec
  7946.     PreAttackDelay        = WITCHKING_SWORD_PREATTACKDELAY     ; 300 is mace swing delay time before contact with target.
  7947.     PreAttackType         = PER_SHOT ; Do the delay each time we attack
  7948.     FireFX                = FX_GondorSwordHit
  7949.     FiringDuration        = WITCHKING_FIRINGDURATION     ; Duration of the mace swing 
  7950.  
  7951.     DamageNugget                        ; A basic Nugget that just does damage
  7952.         Damage        = WITCHKING_DAMAGE                
  7953.         Radius        = 0.0
  7954.         DelayTime     = 0
  7955.         DamageType    = SLASH
  7956.         ;DamageFXType  = NONE
  7957.         DeathType     = NORMAL
  7958.         DamageScalar  = 10% NONE +RohanEowyn
  7959.     End
  7960. End
  7961.  
  7962. ;-------------------------------------------------------------------------------
  7963. ; this weapon is the same as WitchKingMorgulBlade with an added AttributeModifierNugget used for his special attack
  7964. Weapon WitchKingMorgulBladeSpecialPower     ; BALANCE Orc Warrior Weapon
  7965.     LeechRangeWeapon      = Yes
  7966.     AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  7967.     MeleeWeapon           = Yes
  7968.     DelayBetweenShots     = WITCHKING_MORGULBLADE_DELAYBETWEENSHOTS     ; time between shots, msec
  7969.     PreAttackDelay        = WITCHKING_MORGULBLADE_PREATTACKDELAY         ; 300 is mace swing delay time before contact with target.
  7970.     PreAttackType         = PER_SHOT ; Do the delay each time we attack
  7971.     FireFX                = FX_GondorSwordHit
  7972.     FiringDuration        = WITCHKING_MORGULBLADE_FIRINGDURATION         ; Duration of the mace swing
  7973.     ;ClipSize                = 1
  7974.     ;AutoReloadsClip            = Yes
  7975.     ;ClipReloadTime            = 5000 
  7976.  
  7977.     DamageNugget                        ; A basic Nugget that just does damage
  7978.         Damage        = WITCHKING_MORGULBLADE_DAMAGE
  7979.         Radius        = 0.0
  7980.         DelayTime     = 0
  7981.         DamageType    = SLASH
  7982.         DamageFXType  = WITCH_KING_MORGUL_BLADE
  7983.         DeathType     = NORMAL
  7984.         DamageScalar  = 10% NONE +RohanEowyn
  7985.     End
  7986.     AttributeModifierNugget
  7987.         SpecialObjectFilter = ALL -TomBombadil -TomBombadil_Summoned
  7988.         AttributeModifier = WitchKingMorgulBladeEffect
  7989.     End
  7990. End
  7991.  
  7992. ;-------------------------------------------------------------------------------
  7993. Weapon WitchKingWarMace
  7994.     LeechRangeWeapon        = Yes
  7995.     AttackRange                = STANDARD_MELEE_ATTACK_RANGE
  7996.     MeleeWeapon                = Yes
  7997.     DelayBetweenShots        = WITCHKING_MACE_DELAYBETWEENSHOTS         ; time between shots, msec
  7998.     PreAttackDelay            = WITCHKING_MACE_PREATTACKDELAY             ; 300 is mace swing delay time before contact with target.
  7999.     PreAttackType            = PER_SHOT ; Do the delay each time we attack
  8000.     FireFX                    = FX_GondorSwordHit
  8001.     FiringDuration            = WITCHKING_MACE_FIRINGDURATION             ; Duration of the mace swing 
  8002.     ;ClipSize                = 1  ;  Commented out, don't see why we need clips for the mace. - 7/9/04
  8003.     ;AutoReloadsClip            = Yes
  8004.     ;ClipReloadTime            = 5000
  8005.  
  8006.     DamageNugget                        ; A basic Nugget that just does damage
  8007.         Damage        = WITCHKING_MACE_DAMAGE                        
  8008.         Radius            = 40.0
  8009.         ;DamageArc        = 40
  8010.         DelayTime        = 0
  8011.         DamageType        = HERO
  8012.         DamageFXType        = MAGIC
  8013.         DeathType        = NORMAL
  8014.         DamageScalar  = 10% NONE +RohanEowyn
  8015.     End
  8016.     MetaImpactNugget                    ; A Nugget that throws things back with force
  8017. ;        HeroResist            = .75
  8018.         ShockWaveAmount        = 35
  8019.         ShockWaveRadius        = 40
  8020.         ShockWaveArc        = 40                ; Should generally be equal to damage arc
  8021.         ShockWaveTaperOff    = 1.0
  8022.         ShockWaveSpeed        = 0.0
  8023.         ShockWaveZMult        = 1.6
  8024.     End
  8025. End
  8026.  
  8027. ;-------------------------------------------------------------------------------
  8028. ;Weapon NazgulCrashingOnBuildingWeapon
  8029. ;  FireFX= FX_RockDetonation
  8030. ;  RadiusDamageAffects = ENEMIES NEUTRALS ALLIES NOT_SIMILAR
  8031. ;  DamageNugget                        ; A basic Nugget that just does damage
  8032. ;    Damage        = 5000        ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  8033. ;    Radius        = 4.0
  8034. ;    DelayTime     = 0
  8035. ;    DamageType    = SIEGE
  8036. ;    DamageFXType  = BIG_ROCK
  8037. ;    DeathType     = EXPLODED
  8038. ;  End
  8039. ;  DamageNugget                        ; A basic Nugget that just does damage
  8040. ;    Damage        = 5
  8041. ;    Radius        = 20.0
  8042. ;    DelayTime     = 0
  8043. ;    DamageType    = SIEGE
  8044. ;    DamageFXType  = BIG_ROCK
  8045. ;    DeathType     = EXPLODED
  8046. ;  End
  8047. ;  MetaImpactNugget                    ; A Nugget that throws things back with force
  8048. ;    HeroResist            = .75
  8049. ;    ShockWaveAmount   = 50.0
  8050. ;    ShockWaveRadius   = 20.0
  8051. ;    ShockWaveTaperOff = 0.75
  8052. ;  End
  8053. ;End
  8054.  
  8055. ;-------------------------------------------------------------------------------
  8056. ;Weapon NazgulCrashingOnNonBuildingWeapon
  8057. ;  FireFX= FX_RockDetonation
  8058. ;  RadiusDamageAffects = ENEMIES NEUTRALS ALLIES NOT_SIMILAR
  8059. ;  DamageNugget                        ; A basic Nugget that just does damage
  8060. ;    Damage        = 10        ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  8061. ;    Radius        = 4.0
  8062. ;    DelayTime     = 0
  8063. ;    DamageType    = SIEGE
  8064. ;    DamageFXType  = BIG_ROCK
  8065. ;    DeathType     = EXPLODED
  8066. ;  End
  8067. ;  DamageNugget                        ; A basic Nugget that just does damage
  8068. ;    Damage        = 5
  8069. ;    Radius        = 20.0
  8070. ;    DelayTime     = 0
  8071. ;    DamageType    = SIEGE
  8072. ;    DamageFXType  = BIG_ROCK
  8073. ;    DeathType     = EXPLODED
  8074. ;  End
  8075. ;  MetaImpactNugget                    ; A Nugget that throws things back with force
  8076. ;    HeroResist            = .75
  8077. ;    ShockWaveAmount   = 50.0
  8078. ;    ShockWaveRadius   = 20.0
  8079. ;    ShockWaveTaperOff = 0.75
  8080. ;  End
  8081. ;End
  8082.  
  8083. ;------------------------------------------------------------------------------
  8084. Weapon MinisGateDoorExplosion  ; BALANCE Minis Gate Explosion causing damage and meta impact
  8085.   DamageNugget                        ; A basic Nugget that just does damage
  8086.     Damage        = 10
  8087.     Radius        = 160.0
  8088.     DelayTime     = 0
  8089.     DamageType    = FORCE
  8090.     DeathType     = NORMAL
  8091.   End
  8092.   MetaImpactNugget                    ; A Nugget that throws things back with force
  8093. ;    HeroResist            = .75
  8094.     ShockWaveAmount   = 35.0
  8095.     ShockWaveArc      = 60
  8096.     ShockWaveRadius   = 160.0
  8097.     ShockWaveTaperOff = 0.5
  8098.     FlipDirection = Yes
  8099.   End
  8100. End
  8101.  
  8102. ;------------------------------------------------------------------------------
  8103. Weapon MordorOliphantDeathStraightInitial  ; BALANCE Oliphant Death Knealing down over units
  8104.   DamageNugget                        ; A basic Nugget that just does damage
  8105.     Damage        = 10
  8106.     Radius        = 24.0
  8107.     DelayTime     = 0
  8108.     DamageType    = FORCE
  8109.     DeathType     = NORMAL
  8110.   End
  8111.   MetaImpactNugget                    ; A Nugget that throws things back with force
  8112. ;    HeroResist            = .75
  8113.     ShockWaveAmount   = 40.0
  8114.     ShockWaveRadius   = 24.0
  8115.     ShockWaveTaperOff = 0.5
  8116.   End
  8117. End
  8118.  
  8119. ;------------------------------------------------------------------------------
  8120. Weapon StandardWallDeath  ; BALANCE wall blown up death killing units under it
  8121.   ShouldPlayUnderAttackEvaEvent = No ; The units hit by this are not "under attack", they're just getting hurt
  8122.   DamageNugget                        ; A basic Nugget that just does damage
  8123.     Damage        = 100
  8124.     Radius        = 80.0
  8125.     DelayTime     = 0
  8126.     DamageType    = FORCE
  8127.     DeathType     = NORMAL
  8128.     DamageScalar  = 500% NONE +MINE      ; Needs to kill a mine if placed in top of wall.
  8129.   End
  8130.   MetaImpactNugget                    ; A Nugget that throws things back with force
  8131. ;    HeroResist            = .75
  8132.     ShockWaveAmount   = 50.0
  8133.     ShockWaveRadius   = 80.0
  8134.     ShockWaveTaperOff = 0.75
  8135.   End
  8136. End
  8137.  
  8138. ;------------------------------------------------------------------------------
  8139. ; Special weapon for taking out wall upgrades.
  8140. Weapon CastleWallDeath
  8141.     RadiusDamageAffects    = ALLIES
  8142.     DamageNugget
  8143.         Damage        = 10000
  8144.         Radius        = 40.0    ; Only needs to be small as the upgrades will be right on us.
  8145.         DelayTime     = 0
  8146.         DamageType    = SIEGE    ; ffs
  8147.         DeathType     = NORMAL
  8148.         DamageScalar  = 10000% NONE +GondorCastleUpgrade +RohanCastleUpgrade    ; Affect these...
  8149.         DamageScalar  = 0% ALL -GondorCastleUpgrade -RohanCastleUpgrade            ; ...and nothing else
  8150.     End
  8151. End
  8152.  
  8153. ;------------------------------------------------------------------------------
  8154. ; Special weapon for taking out the trebuchet on top of the wall.
  8155. Weapon CastleUpgradeDeath
  8156.     RadiusDamageAffects    = ALLIES
  8157.     DamageNugget
  8158.         Damage        = 1000
  8159.         Radius        = 80.0
  8160.         DelayTime     = 0
  8161.         DamageType    = FORCE
  8162.         DeathType     = EXTRA_2
  8163.         DamageScalar  = 10000% NONE +MACHINE    ; Affect these...
  8164.         DamageScalar  = 0% ALL -MACHINE            ; ...and nothing else
  8165.     End
  8166. End
  8167.  
  8168. ;------------------------------------------------------------------------------
  8169. Weapon SiegeLadderDeath  ; BALANCE Sige ladder death killing units under it
  8170.   DamageNugget                        ; A basic Nugget that just does damage
  8171.     Damage        = 150
  8172.     Radius        = 24.0
  8173.     DelayTime     = 0
  8174.     DamageType    = FORCE
  8175.     DeathType     = NORMAL
  8176.   End
  8177.   MetaImpactNugget                    ; A Nugget that throws things back with force
  8178. ;    HeroResist            = .75
  8179.     ShockWaveAmount   = 40.0
  8180.     ShockWaveRadius   = 24.0
  8181.     ShockWaveTaperOff = 0.5
  8182.   End
  8183. End
  8184.  
  8185. ;------------------------------------------------------------------------------
  8186. Weapon FellbeastGrabWeapon  ; BALANCE Fellbeast grabbing victim fire weapon
  8187.   CanSwoop        = Yes  
  8188.   DamageNugget                        ; A basic Nugget that just does damage
  8189.     Damage        = NAZGUL_GRAB_SPLASH_DAMAGE
  8190.     Radius        = NAZGUL_GRAB_RADIUS_OF_DAMAGE
  8191.     DelayTime     = 0
  8192.     DamageType    = FORCE
  8193.     DeathType     = NORMAL
  8194.   End
  8195.   MetaImpactNugget                    ; A Nugget that throws things back with force
  8196. ;    HeroResist            = 0.0        ;knock down heroes too
  8197.     ShockWaveArc        = NAZGUL_GRAB_ARC_OF_SHOCK
  8198.     ShockWaveAmount        = NAZGUL_GRAB_AMOUNT_OF_SHOCK
  8199.     ShockWaveRadius        = NAZGUL_GRAB_RADIUS_OF_SHOCK
  8200.     ShockWaveTaperOff    = 0.75
  8201.   End
  8202. End
  8203.  
  8204. ;------------------------------------------------------------------------------
  8205. ;Weapon MordorOliphantDeathStraightFinal  ; BALANCE Oliphant Death toppling over units
  8206. ;  DamageNugget                        ; A basic Nugget that just does damage
  8207. ;    Damage        = 10
  8208. ;    Radius        = 40.0
  8209. ;    DelayTime     = 0
  8210. ;    DamageType    = FORCE
  8211. ;    DeathType     = NORMAL
  8212. ;  End
  8213. ;  MetaImpactNugget                    ; A Nugget that throws things back with force
  8214. ;    HeroResist            = .75
  8215. ;    ShockWaveAmount   = 75.0
  8216. ;    ShockWaveRadius   = 40.0
  8217. ;    ShockWaveTaperOff = 0.6
  8218. ;  End
  8219. ;End
  8220.  
  8221.  
  8222. ;------------------------------------------------------------------------------
  8223. Weapon MordorOliphantToppleFinal  ; BALANCE Oliphant Death toppling over units
  8224.   DamageNugget                        ; A basic Nugget that just does damage
  8225.     Damage        = 10
  8226.     Radius        = 72.0
  8227.     DelayTime     = 0
  8228.     DamageType    = FORCE
  8229.     DeathType     = NORMAL
  8230.   End
  8231.   MetaImpactNugget                    ; A Nugget that throws things back with force
  8232. ;    HeroResist            = .75
  8233.     ShockWaveAmount   = 50.0
  8234.     ShockWaveRadius   = 72.0
  8235.     ShockWaveTaperOff = 0.6
  8236.   End
  8237. End
  8238.  
  8239. ;------------------------------------------------------------------------------
  8240. Weapon MordorSiegeTowerToppleFinal  ; BALANCE Oliphant Death toppling over units
  8241.   DamageNugget                        ; A basic Nugget that just does damage
  8242.     Damage        = 30
  8243.     Radius        = 35.0
  8244.     DelayTime     = 0
  8245.     DamageType    = FORCE
  8246.     DeathType     = NORMAL
  8247.   End
  8248.   MetaImpactNugget                    ; A Nugget that throws things back with force
  8249. ;    HeroResist            = .75
  8250.     ShockWaveAmount   = 45.0
  8251.     ShockWaveRadius   = 35.0
  8252.     ShockWaveTaperOff = 0.6
  8253.   End
  8254. End
  8255.  
  8256.  
  8257. Weapon MordorOliphantE3Death
  8258.   DamageNugget                        ; A basic Nugget that just does damage
  8259.     Damage                = 500
  8260.     Radius                = 80.0
  8261.     DelayTime            = 0
  8262.     DamageType            = FORCE
  8263.     DeathType            = NORMAL
  8264.   End
  8265.   MetaImpactNugget                    ; A Nugget that throws things back with force
  8266. ;    HeroResist            = .75
  8267.     ShockWaveAmount        = 50.0
  8268.     ShockWaveRadius        = 80.0
  8269.     ShockWaveTaperOff    = 0.6
  8270.   End
  8271. End
  8272.  
  8273. ;------------------------------------------------------------------------------
  8274. Weapon MordorCatapultRockFlame  ; BALANCE Catapult Weapon
  8275.   RadiusDamageAffects = ENEMIES NEUTRALS
  8276.   DamageFieldNugget                   ; A Nugget that lays down an area of damage that persists independantly
  8277.     WeaponTemplateName = SmallFireFieldWeapon  
  8278.     Duration = 3000                            
  8279.   End
  8280. End
  8281.  
  8282. ;------------------------------------------------------------------------------
  8283. Weapon SmallFireFieldWeapon
  8284.   DelayBetweenShots           = 250                ; time between shots, msec
  8285.   DamageNugget                        ; A basic Nugget that just does damage
  8286.     Damage        = 1
  8287.     Radius        = 24.0
  8288.     DelayTime     = 0
  8289.     DamageType    = FLAME
  8290.     DamageFXType  = FLAME
  8291.     DeathType     = BURNED
  8292.   End
  8293. End
  8294.  
  8295. ;------------------------------------------------------------------------------
  8296. Weapon MordorGrondRam
  8297.   LeechRangeWeapon      = Yes
  8298.   CanFireWhileMoving    = No
  8299.   AttackRange           = 5.0
  8300.   AntiStructure         = Yes            ; Ram ONLY affects structures -- buildings, walls, gates
  8301.   AntiGround            = No             ; ditto
  8302.   MeleeWeapon           = No             ; Need to have some range to look right.
  8303.   AcceptableAimDelta    = 20             ; Can't ram sideways (but give a little slack) -- actually a little more!
  8304.   DelayBetweenShots     = 5500           ; time between shots, msec. Placeholder until animations are in
  8305.   PreAttackDelay        = 3000        
  8306.   PreAttackType         = PER_ATTACK       ; Do the delay each time we attack
  8307.   FiringDuration        = 4500      
  8308.   HoldAfterFiringDelay  = 3000 ; So I don't move while the weapon needs to complete
  8309.  
  8310.   DamageNugget                        ; A basic Nugget that just does damage
  8311.     Damage        = MORDOR_GROND_DAMAGE
  8312.     Radius        = 5.0
  8313.     DelayTime     = 2500                ; Contact of nose.  Preattack is being used by trolls putting hands on ram
  8314.     DamageType    = SIEGE
  8315.     DamageFXType  = STRUCTURAL
  8316.     DeathType     = NORMAL
  8317.   End
  8318. End
  8319.  
  8320. ;------------------------------------------------------------------------------
  8321. Weapon MordorGrondRamBuilding
  8322.   LeechRangeWeapon      = Yes
  8323.   CanFireWhileMoving    = No
  8324.   AttackRange           = 40.0
  8325.   AntiStructure         = Yes            ; Ram ONLY affects structures -- buildings, walls, gates
  8326.   AntiGround            = No             ; ditto
  8327.   MeleeWeapon           = No             ; Need to have some range to look right.
  8328.   AcceptableAimDelta    = 20             ; Can't ram sideways (but give a little slack)
  8329.   DelayBetweenShots     = 5500           ; time between shots, msec. Placeholder until animations are in
  8330.   PreAttackDelay        = 3000        
  8331.   PreAttackType         = PER_ATTACK       ; Do the delay each time we attack
  8332.   FiringDuration        = 4500      
  8333.   HoldAfterFiringDelay  = 3000 ; So I don't move while the weapon needs to complete
  8334.  
  8335.   DamageNugget                        ; A basic Nugget that just does damage
  8336.     Damage        = MORDOR_GROND_DAMAGE
  8337.     Radius        = 5.0
  8338.     DelayTime     = 2500                ; Contact of nose.  Preattack is being used by trolls putting hands on ram
  8339.     DamageType    = SIEGE
  8340.     DamageFXType  = STRUCTURAL
  8341.     DeathType     = NORMAL
  8342.   End
  8343. End
  8344.  
  8345. ;------------------------------------------------------------------------------
  8346. Weapon IsengardBatteringRam ; BALANCE Battering Ram
  8347.     CanFireWhileMoving    = No
  8348.     AttackRange           = 10.0           ; Note - needs to be at least 30 to approach walls at a 45 degree angle to path grid. 
  8349.     AntiStructure         = Yes                                      ; Ram ONLY affects structures -- buildings, walls, gates
  8350.     AntiGround            = No                                       ; ditto
  8351.     MeleeWeapon           = Yes                                   ; Try Melee to get close to door
  8352.     AcceptableAimDelta    = 20                                       ; Can't ram sideways (but give a little slack)
  8353.     DelayBetweenShots     = ISENGARD_BATTERINGRAM_DELAYBETWEENSHOTS  ; time between shots, msec. 
  8354.     PreAttackDelay        = ISENGARD_BATTERINGRAM_PREATTACKDELAY        
  8355.     PreAttackType         = PER_SHOT                                 ; Do the delay each time we attack
  8356.     FiringDuration        = ISENGARD_BATTERINGRAM_FIRINGDURATION
  8357.     FireFX                = FX_BatteringRamHit
  8358.     LeechRangeWeapon      = Yes
  8359.  
  8360.     DamageNugget                                                     ; A basic Nugget that just does damage
  8361.         Damage        = ISENGARD_BATTERINGRAM_DAMAGE
  8362.         Radius        = 0.0
  8363.         ;DelayTime    = 2800                                 ; Contact of nose.  Preattack is being used by trolls putting hands on ram
  8364.         DamageType    = SIEGE
  8365.         DeathType     = NORMAL
  8366.         DamageScalar  = 0% NONE +HelmsDeepdoSectionB1 +HelmsDeepdoSectionA2 +HelmsDeepdoSectionD +HelmsDeepTower +HelmsDeepdoStairsA5 +HelmsDeepGatehouseRight +HelmsDeepGatehouseCenter +HelmsDeepGatehouseLeft +HelmsDeepdoSectionA5 +HelmsDeepdoStairsA4 +HelmsDeepkiSectionA3 +HelmsDeepRampart05 +HelmsDeepkiSectionA5 +HelmsDeepdiSectionA6 +HelmsDeepdiSectionA7 +HelmsDeepdiSectionA8 +HelmsDeepkiSectionB +HelmsDeepRampart04 +HelmsDeepRampart03 +HelmsDeepRampart02 +HelmsDeepdoStairsA1
  8367.     End
  8368. End
  8369.  
  8370. ;------------------------------------------------------------------------------
  8371. Weapon IsengardBatteringRamGate ; BALANCE Battering Ram
  8372.     CanFireWhileMoving    = No
  8373.     AttackRange           = 58.0 ; Make sure this is greater than the distance between obj center and the Ram contact points in the gate
  8374.     AntiStructure         = Yes            ; Ram ONLY affects structures -- buildings, walls, gates
  8375.     AntiGround            = No             ; ditto
  8376.     MeleeWeapon           = Yes               ; Try Melee to get close to door
  8377.     AcceptableAimDelta    = 20             ; Can't ram sideways (but give a little slack)
  8378.     DelayBetweenShots     = ISENGARD_BATTERINGRAM_DELAYBETWEENSHOTS           ; time between shots, msec. 
  8379.     PreAttackDelay        = ISENGARD_BATTERINGRAM_PREATTACKDELAY        
  8380.     PreAttackType         = PER_SHOT       ; Do the delay each time we attack
  8381.     FiringDuration        = ISENGARD_BATTERINGRAM_FIRINGDURATION
  8382.     FireFX                = FX_BatteringRamHitGate
  8383.     LeechRangeWeapon      = Yes
  8384.  
  8385.     DamageNugget                        ; A basic Nugget that just does damage
  8386.         Damage        = ISENGARD_BATTERINGRAM_DAMAGE
  8387.         Radius        = 0.0
  8388.         ;DelayTime     = 2800                ; Contact of nose.  Preattack is being used by trolls putting hands on ram
  8389.         DamageType    = SIEGE
  8390.         DeathType     = NORMAL
  8391.     End
  8392. End
  8393.  
  8394.  
  8395. ;------------------------------------------------------------------------------
  8396. Weapon IsengardBatteringRamWall ; BALANCE Battering Ram
  8397.     CanFireWhileMoving    = No
  8398.     AttackRange           = 20.0
  8399.     AntiStructure         = Yes            ; Ram ONLY affects structures -- buildings, walls, gates
  8400.     AntiGround            = No             ; ditto
  8401.     MeleeWeapon           = Yes               ; Try Melee to get close to door
  8402.     AcceptableAimDelta    = 40             ; give a lot of slack !!!!!!!!!!!!!!!! 
  8403.     DelayBetweenShots     = ISENGARD_BATTERINGRAM_DELAYBETWEENSHOTS           ; time between shots, msec. 
  8404.     PreAttackDelay        = ISENGARD_BATTERINGRAM_PREATTACKDELAY        
  8405.     PreAttackType         = PER_SHOT       ; Do the delay each time we attack
  8406.     FiringDuration        = ISENGARD_BATTERINGRAM_FIRINGDURATION
  8407.     FireFX                = FX_BatteringRamHitGate
  8408.     LeechRangeWeapon      = Yes
  8409.  
  8410.     DamageNugget                        ; A basic Nugget that just does damage
  8411.         Damage        = ISENGARD_BATTERINGRAM_DAMAGE
  8412.         Radius        = 0.0
  8413.         ;DelayTime     = 2800                ; Contact of nose.  Preattack is being used by trolls putting hands on ram
  8414.         DamageType    = SIEGE
  8415.         DeathType     = NORMAL
  8416.     End
  8417. End
  8418.  
  8419. ;------------------------------------------------------------------------------
  8420. Weapon IsengardBatteringRamWithMine ; BALANCE Battering Ram
  8421.     CanFireWhileMoving    = No
  8422.     RadiusDamageAffects = ALLIES ENEMIES NEUTRALS SELF SUICIDE; Turning off friendly fire for all allies, but ya know, this could say NotSimilar and then he could hit friendlies except for trolls
  8423.     AttackRange           = 40.0
  8424.     AntiStructure         = Yes            ; Ram ONLY affects structures -- buildings, walls, gates
  8425.     AntiGround            = No             ; ditto
  8426.     MeleeWeapon           = No    ; Need to have some range to look right.
  8427.     AcceptableAimDelta    = 20             ; Can't ram sideways (but give a little slack)
  8428.     DelayBetweenShots     = 3000           ; time between shots, msec. 
  8429.     PreAttackDelay        = 1300        
  8430.     PreAttackType         = PER_SHOT       ; Do the delay each time we attack
  8431.     FiringDuration        = 1100      
  8432.     PassengerProportionalAttack = Yes  
  8433.     MaxAttackPassengers   = 4
  8434.     ProjectileFilterInContainer = NONE +MINE ; We don't make the projectile, it is in our Contain module.
  8435.     FireFX                = FX_BatteringRamHitUpgrade
  8436.     LeechRangeWeapon      = Yes
  8437.  
  8438.     DamageNugget                        ; A basic Nugget that just does damage
  8439.         Damage        = 2000
  8440.         Radius        = 50.0
  8441.         DelayTime   = 1                ; Contact of nose.  Preattack is being used by trolls putting hands on ram
  8442.         DamageType  = SIEGE
  8443.         DeathType   = NORMAL
  8444.     End
  8445.     MetaImpactNugget                    ; A Nugget that throws things back with force
  8446. ;        HeroResist            = .75
  8447.         ShockWaveAmount        = 60.0
  8448.         ShockWaveRadius        = 24.0
  8449.         ShockWaveTaperOff    = 0.7
  8450.     End
  8451. End
  8452.  
  8453. ;------------------------------------------------------------------------------
  8454. ; This is the normal attack now
  8455. Weapon MordorMumakilKnockback  ; BALANCE Mumakil Weapon
  8456.     AttackRange                    = 44.0    ; Should be less than the damage radius, so we don't just barely catch the bad guy.
  8457.     DelayBetweenShots            = 4000            ; time between shots, msec
  8458.         FiringDuration            = 2600    ;2600 ;min 933 for anim              ; how long to reload a Clip, msec
  8459.         PreAttackDelay            = 1400
  8460.         PreAttackType            = PER_SHOT ; Do the delay each time we attack a new target
  8461.     FireFX                        = FX_MUMStructureAtk
  8462.     DamageDealtAtSelfPosition    = Yes ; A melee based AoE.  Arc radiates from me, not them
  8463.     AcceptableAimDelta            = 15.0 
  8464.     ChaseWeapon                    = Yes ; Not full melee, but we get to move to attack a passive acquire, even if player owned.
  8465.     ;CannotTargetCastleVictims    = Yes
  8466.     
  8467.     DamageNugget                        ; A basic Nugget that just does damage
  8468.         Damage                    = MUMAKIL_NORMAL_ATTACK
  8469.         Radius                    = 140.0
  8470.         DamageArc                = 30
  8471.         DamageType                = SIEGE
  8472.         DamageFXType            = CLUBBING
  8473.         DeathType                = NORMAL
  8474.         DamageScalar            = 0% NONE +WALK_ON_TOP_OF_WALL +BLOCKING_GATE ; This is a trick.  Marked as CanAttackWalls so he won't think he can walk on them, but then told he can't do damage to them so he won't attack.
  8475.     End
  8476.     
  8477.     DamageNugget                        ; A basic Nugget that just does damage
  8478.         Damage                    = MUMAKIL_NORMAL_ATTACK
  8479.         Radius                    = 140.0
  8480.         DamageTaperOff                 = 70
  8481.         DamageArc                = 30
  8482.         DamageType                = SIEGE
  8483.         DamageFXType            = CLUBBING
  8484.         DeathType                = NORMAL
  8485.         DamageScalar              = 0% ALL -WALL_UPGRADE -WALL_HUB -WALL_SEGMENT -DEFENSIVE_WALL            ; No damage to allied structures.
  8486.         DamageScalar            = 0% NONE +WALK_ON_TOP_OF_WALL +BLOCKING_GATE ; This is a trick.  Marked as CanAttackWalls so he won't think he can walk on them, but then told he can't do damage to them so he won't attack.
  8487.     End
  8488.     
  8489.     MetaImpactNugget                    ; A Nugget that throws things back with force
  8490.         ;HeroResist            = .75
  8491.         ShockWaveAmount            = 60.0
  8492.         ShockWaveRadius            = 100.0
  8493.         ShockWaveTaperOff        = 0.7
  8494.         ShockWaveArc            = 30
  8495.     End
  8496. End
  8497.  
  8498. ;-------------------------------------------------------------------------------
  8499. Weapon MordorMumakilCharge ; This is the rangefinding weapon for charging
  8500.     RadiusDamageAffects            = ENEMIES 
  8501.     AttackRange                    = 300.0
  8502.     DelayBetweenShots            = 30000            ; time between shots, msec
  8503.     FiringDuration                = 0 
  8504.     ;PreAttackDelay                = 1400
  8505.     PreAttackType                = PER_SHOT ; Do the delay each time we attack a new target
  8506.     ;PreAttackFX                = FX_TrollTreeSwing
  8507.     CanFireWhileCharging        = yes
  8508.     ;MeleeWeapon                    = Yes
  8509.     ;CannotTargetCastleVictims    = Yes
  8510.     AcceptableAimDelta    = 15        
  8511.         
  8512.     DamageNugget                        ; A basic Nugget that just does damage
  8513.         Damage                    = 1.0
  8514.         Radius                    = 1.0
  8515.         DamageType                = CRUSH
  8516.         DamageFXType            = CLUBBING
  8517.         DeathType                = NORMAL
  8518.         DamageScalar            = 0% NONE +STRUCTURE    
  8519.     End
  8520. End
  8521.  
  8522. ;-------------------------------------------------------------------------------
  8523. Weapon MordorMumakilChargeSpecial ; This is a special script driven version of the rangefinder
  8524.     AttackRange                    = 5000.0
  8525.     DelayBetweenShots            = 0            ; time between shots, msec
  8526.     FiringDuration                = 0 ;min 933 for anim              ; how long to reload a Clip, msec
  8527.     ;PreAttackDelay                = 1400
  8528.     PreAttackType                = PER_SHOT ; Do the delay each time we attack a new target
  8529.     ;PreAttackFX                = FX_TrollTreeSwing
  8530.     CanFireWhileCharging        = yes
  8531.     MeleeWeapon                    = Yes
  8532.     ;CannotTargetCastleVictims    = Yes
  8533.     
  8534.     DamageNugget                        ; A basic Nugget that just does damage
  8535.         Damage                    = 300
  8536.         Radius                    = 24.0
  8537.         DamageType                = CRUSH
  8538.         DamageFXType            = CLUBBING
  8539.         DeathType                = NORMAL
  8540.     End
  8541.     MetaImpactNugget                    ; A Nugget that throws things back with force
  8542. ;        HeroResist            = .75
  8543.         ShockWaveAmount            = 60.0
  8544.         ShockWaveRadius            = 24.0
  8545.         ShockWaveTaperOff        = 0.7
  8546.     End
  8547. End
  8548.  
  8549. ;------------------------------------------------------------------------------
  8550. Weapon MordorMumakilHeroEffect     ; This is the weapon that does the actual charge damage.  Fired from the ChargeOnly labeled FireWeaponUpdate.
  8551.   LeechRangeWeapon      = No
  8552.   RadiusDamageAffects = ENEMIES 
  8553.   AttackRange           = 20.0
  8554.   MeleeWeapon           = No
  8555.   DelayBetweenShots     = 500            ; time between shots, msec
  8556.   PreAttackDelay        = 166             ; 300 is mace swing delay time before contact with target.
  8557.   PreAttackType         = PER_SHOT ; Do the delay each time we attack
  8558. ;  FireFX                = FX_TrebuchetImpactHit
  8559. ;  FireFX                = FX_TrollTreeHit
  8560.   FiringDuration        = 333    ; Duration of the mace swing 
  8561.  
  8562.   DamageNugget                        ; A basic Nugget that just does damage
  8563.     Damage        = 50
  8564.     Radius        = 50.0
  8565.     DamageType      = CRUSH
  8566.     DamageFXType  = CLUBBING
  8567.     DeathType      = NORMAL
  8568. ;    DamageType    = FLAME
  8569. ;    DamageFXType    = FLAME
  8570. ;    DeathType        = BURNED
  8571.  End
  8572.   MetaImpactNugget                    ; A Nugget that throws things back with force
  8573. ;    HeroResist            = .75
  8574.     ShockWaveAmount   = 40.0
  8575.     ShockWaveRadius   = 40.0
  8576.     ShockWaveTaperOff = 0.66
  8577.   End
  8578. End
  8579.  
  8580. ;------------------------------------------------------------------------------
  8581. ; This is the normal punch, not the AOE, rock, siege or tree
  8582. Weapon MordorCaveTrollPunch  ; BALANCE CaveTroll Weapon Normal
  8583.   LeechRangeWeapon        = Yes
  8584.   RadiusDamageAffects = ENEMIES 
  8585.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  8586.   MeleeWeapon           = Yes
  8587.   DelayBetweenShots     = MORDOR_TROLL_PUNCH_DELAYBETWEENSHOTS
  8588.   FiringDuration        = MORDOR_TROLL_PUNCH_FIRINGDURATION
  8589.   PreAttackDelay        = MORDOR_TROLL_PUNCH_PREATTACKDELAY
  8590.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  8591.   PreAttackFX              = FX_TrollTreeSwing
  8592.   FireFX                   = FX_TrollPunchGeneric
  8593.   DamageDealtAtSelfPosition = Yes ; A melee based AoE.  Arc radiates from me, not them
  8594.   AcceptableAimDelta    = 15.0 
  8595.  
  8596.   DamageNugget                        ; A basic Nugget that just does damage
  8597.     Damage        = MORDOR_TROLL_PUNCH_DAMAGE
  8598.     Radius        = 50.0
  8599.     DamageArc      = 45
  8600.     DamageType    = SIEGE
  8601.     DamageFXType  = CLUBBING
  8602.     DeathType     = NORMAL
  8603.   End
  8604.   MetaImpactNugget                    ; A Nugget that throws things back with force
  8605.     ShockWaveAmount   = 20.0
  8606.     ShockWaveRadius   = 40.0
  8607.     ShockWaveTaperOff = 1.0
  8608.     ShockWaveArc      = 45
  8609.     ShockWaveZMult    = 1.20
  8610.  ;   HeroResist          = 0.90        ; 90% resistance to heroes
  8611.   End
  8612. End
  8613.  
  8614. ;------------------------------------------------------------------------------
  8615. ; This is the building attack bash, not the AOE, rock, siege or tree
  8616. Weapon MordorCaveTrollBash  ; BALANCE CaveTroll Weapon Normal
  8617.     LeechRangeWeapon      = Yes
  8618.     AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  8619.     RadiusDamageAffects      = ENEMIES 
  8620.     MeleeWeapon           = Yes
  8621.     FireFX                = FX_TrollBash
  8622.     DelayBetweenShots     = MORDOR_TROLL_SHOULDER_DELAYBETWEENSHOTS            ; time between shots, msec
  8623.     FiringDuration        = MORDOR_TROLL_SHOULDER_FIRINGDURATION
  8624.     PreAttackDelay        = MORDOR_TROLL_SHOULDER_PREATTACKDELAY
  8625.     PreAttackType         = PER_SHOT
  8626.     PreAttackFX           = FX_TrollTreeSwing
  8627.     AcceptableAimDelta      = 35.0 
  8628.  
  8629.     DamageNugget                        ; A basic Nugget that just does damage
  8630.         Damage        = MORDOR_TROLL_SHOULDER_DAMAGE
  8631.         Radius        = 0.0
  8632.         DelayTime     = 0
  8633.         DamageType    = SIEGE
  8634.         DamageFXType  = CLUBBING
  8635.         DeathType     = NORMAL
  8636.     End
  8637. End
  8638.  
  8639. ;------------------------------------------------------------------------------
  8640. ; This is the attack with a tree in hand
  8641. ; BALANCE CaveTroll Weapon Club
  8642. ;
  8643. Weapon MordorCaveTrollClubSwing
  8644.     LeechRangeWeapon            = Yes
  8645.     RadiusDamageAffects            = ENEMIES                                ; Turning off friendly fire for all allies, but ya know, this could say NotSimilar and then he could hit friendlies except for trolls
  8646.     MeleeWeapon                    = Yes
  8647.     AttackRange                    = 20                                    ; this was tuned with the Damage and shock wave nugget so it looks good with club
  8648.     FireFX                        = FX_TrollClubHit
  8649.     DelayBetweenShots            = MORDOR_TROLL_TREE_DELAYBETWEENSHOTS    ; time between shots, msec
  8650.     FiringDuration                = MORDOR_TROLL_TREE_FIRINGDURATION
  8651.     PreAttackDelay                = MORDOR_TROLL_TREE_PREATTACKDELAY
  8652.     PreAttackType                = PER_SHOT                                ; Do the delay each time we attack a new target
  8653.     PreAttackFX                    = FX_TrollTreeSwing
  8654.     DamageDealtAtSelfPosition    = Yes                                    ; A melee based AoE.  Arc radiates from me, not them
  8655.     AcceptableAimDelta            = 35.0 
  8656.  
  8657.     DamageNugget                                    ; A basic Nugget that just does damage
  8658.         Damage            = MORDOR_TROLL_TREE_DAMAGE  ; kill gondor troops in 1 hit
  8659.         ;DamageScalar        = 200% NONE +HERO
  8660.         Radius            = 60.0                        ; matches impact nugget so it throws them back and hurts them
  8661.         DamageArc        = 90
  8662.         DamageType        = SIEGE
  8663.         DamageFXType        = CLUBBING
  8664.         DeathType        = NORMAL
  8665.     End
  8666.  
  8667.     MetaImpactNugget                                ; A Nugget that throws things back with force
  8668.         ShockWaveAmount   = 40.0
  8669.         ShockWaveRadius   = 50.0
  8670.         ShockWaveTaperOff = 0.75
  8671.         ShockWaveArc      = 90
  8672.         ShockWaveZMult    = 1.20
  8673. ;        HeroResist          = 0.90                    ; 90% resistance to heroes
  8674.     End
  8675. End
  8676.  
  8677. ;------------------------------------------------------------------------------
  8678. ; This is the attack with a tree in hand
  8679. ; BALANCE CaveTroll Weapon Club
  8680. ;
  8681. Weapon MordorAttackTrollClubSwing
  8682.     LeechRangeWeapon            = Yes
  8683.     RadiusDamageAffects            = ENEMIES                                ; Turning off friendly fire for all allies, but ya know, this could say NotSimilar and then he could hit friendlies except for trolls
  8684.     MeleeWeapon                    = Yes
  8685.     AttackRange                    = 30                                    ; this was tuned with the Damage and shock wave nugget so it looks good with club
  8686.     FireFX                        = FX_TrollClubHit
  8687.     ClipSize                    = INFINITE_CLIP_SIZE                    ; how many shots in a Clip (0 == infinite)
  8688.     AutoReloadsClip                = No                                    ; We need a rock explicitly picked up.
  8689.     DelayBetweenShots            = MORDOR_ATTACKTROLL_TREE_DELAYBETWEENSHOTS    ; time between shots, msec
  8690.     FiringDuration                = MORDOR_ATTACKTROLL_TREE_FIRINGDURATION
  8691.     PreAttackDelay                = MORDOR_ATTACKTROLL_TREE_PREATTACKDELAY
  8692.     PreAttackType                = PER_SHOT                                ; Do the delay each time we attack a new target
  8693.     PreAttackFX                    = FX_TrollTreeSwing
  8694.     DamageDealtAtSelfPosition    = Yes                                    ; A melee based AoE.  Arc radiates from me, not them
  8695.     AcceptableAimDelta            = 35.0 
  8696.  
  8697.     DamageNugget                                    ; A basic Nugget that just does damage
  8698.         Damage            = MORDOR_ATTACKTROLL_TREE_DAMAGE  ; kill gondor troops in 1 hit
  8699.         DamageScalar        = 50% NONE +HERO +PIKE
  8700.         Radius            = 60.0                        ; matches impact nugget so it throws them back and hurts them
  8701.         DamageArc        = 90
  8702.         DamageType        = SIEGE
  8703.         DamageFXType        = CLUBBING
  8704.         DeathType        = NORMAL
  8705.     End
  8706.  
  8707.     MetaImpactNugget                                ; A Nugget that throws things back with force
  8708.         ShockWaveAmount   = 50.0
  8709.         ShockWaveRadius   = 60.0
  8710.         ShockWaveTaperOff = 0.75
  8711.         ShockWaveArc      = 90
  8712.         ShockWaveZMult    = 1.20
  8713. ;        HeroResist          = 0.90                    ; 90% resistance to heroes
  8714.     End
  8715. End
  8716.  
  8717. ;------------------------------------------------------------------------------
  8718. ; This is the attack with rock in hand
  8719. Weapon MordorCaveTrollRockThrow  ; BALANCE CaveTroll Weapon Rock
  8720.     IdleAfterFiringDelay    = 2167 ; So I don't chuck rock, and then chase it because the target doesn't die until the rock hits him
  8721.     AttackRange                = MORDOR_TROLL_ROCK_RANGE    
  8722.     WeaponSpeed                = 240.0        ; dist/sec (huge value == effectively instant)
  8723.     ProjectileFilterInContainer    = ANY +ROCK +INFANTRY; We don't make the projectile, it is in our Contain module.
  8724.     ;FireFX                    = FX_TrollTreeHit
  8725.     PreAttackDelay            = MORDOR_TROLL_ROCK_PREATTACKDELAY
  8726.     PreAttackType            = PER_SHOT ; Do the delay each time we attack a new target
  8727.     HitPercentage            = 0 ; never auto hits, always hits ground
  8728.     ScatterRadius            = 4.0     ;When this weapon misses it can randomly miss by as much as this distance.
  8729.     FiringDuration            = MORDOR_TROLL_ROCK_FIRINGDURATION
  8730.     DelayBetweenShots        = MORDOR_TROLL_ROCK_DELAYBETWEENSHOTS
  8731.     NoVictimNeeded            = Yes ; Need no target
  8732.     LeechRangeWeapon        = Yes
  8733.  
  8734.     ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  8735.         WarheadTemplateName = MordorCaveTrollRockThrowWarhead
  8736.     End
  8737. End
  8738.  
  8739. ;----------------------------------------------------------------------------------------------------------------
  8740. ;
  8741. ;    This is the toggle weapon for troll. They will reload, throw, reload straight away, and constantly hold a rock.
  8742. ;
  8743. Weapon TrollRockThrow
  8744.     ;IdleAfterFiringDelay        = 2000                            ; Do NOT idle after throwing or Bombard will break
  8745.     HoldDuringReload            = Yes
  8746.     AttackRange                    = MORDOR_TROLL_ROCK_RANGE
  8747.     WeaponSpeed                    = 200.0                            ; dist/sec (huge value == effectively instant)
  8748.     FireFX                        = FX_EntThrowSmallRock
  8749.     PreAttackDelay                = 1400
  8750.     FiringDuration                = 2000
  8751.     PreAttackType                = PER_SHOT                        ; Do the delay each time we attack a new target
  8752.     DelayBetweenShots            = 6100
  8753.     HitPercentage                = 0                                ; never auto hits, always hits ground
  8754.     ScatterRadius                = 4.0                            ; When this weapon misses it can randomly miss by as much as this distance.
  8755.     IsAimingWeapon                = Yes                            ; Shooter will use his AimWeaponBehavior to get extra model condition flags
  8756.     NoVictimNeeded                = Yes                            ; Need no target
  8757.     LeechRangeWeapon            = Yes
  8758.  
  8759.     AutoReloadWhenIdle            = 1500                            ; should be a bit less than IdleAfterFiringDelay
  8760.     ClipSize                     = 1
  8761.     AutoReloadsClip             = Yes
  8762.     ClipReloadTime                 = 2100
  8763.  
  8764.     ProjectileNugget                                ; A Nugget that creates an Object and sends it to the target with a Warhead
  8765.         ProjectileTemplateName    = RockBigTroll
  8766.         WarheadTemplateName        = MordorCaveTrollRockThrowWarhead
  8767.     End
  8768. End
  8769.  
  8770. ;-----------------------------------
  8771. Weapon MordorCaveTrollRockThrowWarhead
  8772.     ProjectileCollidesWith = ALLIES ENEMIES NEUTRAL STRUCTURES WALLS            ; Remember, the projectile is a rock, who has no allies
  8773. ;        FireFX = FX_RockDetonation
  8774.         DamageNugget                                                            ; A basic Nugget that just does damage
  8775.         Damage            = MORDOR_CAVE_TROLL_ROCK_DAMAGE
  8776.         Radius            = 12.0
  8777.         DamageType        = SIEGE
  8778.         DamageFXType    = SMALL_ROCK
  8779.         DeathType        = NORMAL
  8780.     End
  8781.     MetaImpactNugget                                                            ; A Nugget that throws things back with force
  8782. ;        HeroResist            = .75
  8783.         ShockWaveAmount        = 50.0
  8784.         ShockWaveRadius        = 12.0
  8785.         ShockWaveTaperOff    = 0.5
  8786.         ShockWaveZMult        = 1.20
  8787.     End
  8788. End
  8789.  
  8790. ;----------------------------------------------------------------------------------------------------------------
  8791. ;
  8792. ;    This is the weapon for a troll picking up a nearby goblin and throwing him. 
  8793. ;
  8794. Weapon CaveTrollGoblinThrow
  8795.     ;IdleAfterFiringDelay        = 2000                            ; Do NOT idle after throwing or Bombard will break
  8796.     HoldDuringReload            = Yes
  8797.     AttackRange                    = ROHAN_TREEBEARD_ROCK_RANGE
  8798.     WeaponSpeed                    = 200.0                            ; dist/sec (huge value == effectively instant)
  8799.     FireFX                        = FX_EntThrowSmallRock
  8800.     PreAttackDelay                = 1400
  8801.     FiringDuration                = 2000
  8802.     PreAttackType                = PER_SHOT                        ; Do the delay each time we attack a new target
  8803.     DelayBetweenShots            = 6100
  8804.     HitPercentage                = 0                                ; never auto hits, always hits ground
  8805.     ScatterRadius                = 4.0                            ; When this weapon misses it can randomly miss by as much as this distance.
  8806.     IsAimingWeapon                = Yes                            ; Shooter will use his AimWeaponBehavior to get extra model condition flags
  8807.     NoVictimNeeded                = Yes                            ; Need no target
  8808.     LeechRangeWeapon            = Yes
  8809.  
  8810.     AutoReloadWhenIdle            = 1500                            ; should be a bit less than IdleAfterFiringDelay
  8811.     ClipSize                     = 1
  8812.     AutoReloadsClip             = No
  8813.     ClipReloadTime                 = 2100
  8814.     
  8815.     ProjectileFilterInContainer = NONE +INFANTRY                ; Throw out contained infantry
  8816.  
  8817.     ProjectileNugget                                ; A Nugget that creates an Object and sends it to the target with a Warhead
  8818.         WarheadTemplateName            = CaveTrollGoblinThrowWarhead
  8819.     End
  8820. End
  8821.  
  8822. ;-----------------------------------
  8823. Weapon CaveTrollGoblinThrowWarhead
  8824.     ProjectileCollidesWith = ALLIES ENEMIES NEUTRAL STRUCTURES WALLS            ; Remember, the projectile is a rock, who has no allies
  8825. ;        FireFX = FX_RockDetonation
  8826.         DamageNugget                                                            ; A basic Nugget that just does damage
  8827.         Damage            = MORDOR_CAVE_TROLL_ROCK_DAMAGE
  8828.         Radius            = 12.0
  8829.         DamageType        = SIEGE
  8830.         DamageFXType    = SMALL_ROCK
  8831.         DeathType        = NORMAL
  8832.     End
  8833.     MetaImpactNugget                                                            ; A Nugget that throws things back with force
  8834. ;        HeroResist            = .75
  8835.         ShockWaveAmount        = 50.0
  8836.         ShockWaveRadius        = 12.0
  8837.         ShockWaveTaperOff    = 0.5
  8838.         ShockWaveZMult        = 1.20
  8839.     End
  8840. End
  8841.  
  8842. ;------------------------------------------------------------------------------
  8843. Weapon MordorCaveTrollRampage
  8844.   AttackRange = 160.0
  8845.   FireFX           = FX_RampageDust
  8846.   RadiusDamageAffects = ALLIES ENEMIES SAME_HEIGHT_ONLY
  8847.   DelayBetweenShots = 1000                 ; time between shots, msec
  8848.   ClipSize = 5                            ; how many shots in a Clip (0 == infinite)
  8849.   ClipReloadTime = 1000                      ; how long to reload a Clip, msec
  8850.  
  8851.   ; Sequential order of the target positions to follow this list
  8852.   IgnoreLinearFirstTarget = Yes
  8853.   LinearTarget = X: 0.0   Y: 0.0    T:5
  8854.   LinearTarget = X: 20.0  Y: 10.0    T:4
  8855.   LinearTarget = X: 0.0   Y: 20.0    T:5
  8856.   LinearTarget = X:-20.0  Y: 0.0    T:5
  8857.   LinearTarget = X: 0.0   Y:-20.0    T:0
  8858.   LinearTarget = X: 0.0   Y: 0.0    T:5
  8859.  
  8860.   DamageNugget                        ; A basic Nugget that just does damage
  8861.     Damage        = 100
  8862.     Radius        = 20.0
  8863.     DamageType            = CRUSH
  8864.     DeathType             = NORMAL
  8865.   End
  8866.   MetaImpactNugget                    ; A Nugget that throws things back with force
  8867. ;    HeroResist            = .75
  8868.     ShockWaveAmount   = 50.0
  8869.     ShockWaveRadius   = 20.0
  8870.     ShockWaveTaperOff = 1.0
  8871.   End
  8872. End
  8873.  
  8874. ;------------------------------------------------------------------------------
  8875. Weapon MordorCaveTrollTreeRampage
  8876.   AttackRange = 160.0
  8877.   FireFX           = FX_RampageDust
  8878.   RadiusDamageAffects = ALLIES ENEMIES SAME_HEIGHT_ONLY
  8879.   DelayBetweenShots = 1000                 ; time between shots, msec
  8880.   ClipSize = 5                            ; how many shots in a Clip (0 == infinite)
  8881.   ClipReloadTime = 1000                      ; how long to reload a Clip, msec
  8882.  
  8883.   ; Sequential order of the target positions to follow this list
  8884.   IgnoreLinearFirstTarget = Yes
  8885.   LinearTarget = X: 0.0   Y: 0.0    T:5
  8886.   
  8887.   LinearTarget = X: 20.0  Y: 10.0    T:4 ;punch
  8888.  
  8889.   LinearTarget = X: 0.0   Y: 30.0    T:5 ;tree
  8890.  
  8891.   LinearTarget = X:-20.0  Y: 0.0    T:5 ;punch
  8892.  
  8893.   LinearTarget = X: 0.0   Y:-30.0    T:0 ;tree
  8894.   LinearTarget = X: 0.0   Y: 0.0    T:5 ;clearout
  8895.  
  8896.   DamageNugget                        ; A basic Nugget that just does damage
  8897.     Damage        = 100
  8898.     Radius        = 20.0
  8899.     DamageType            = CRUSH
  8900.     DeathType             = NORMAL
  8901.   End
  8902.   MetaImpactNugget                    ; A Nugget that throws things back with force
  8903. ;    HeroResist            = .75
  8904.     ShockWaveAmount   = 50.0
  8905.     ShockWaveRadius   = 20.0
  8906.     ShockWaveTaperOff = 1.0
  8907.   End
  8908. End
  8909.  
  8910. ;------------------------------------------------------------------------------
  8911. Weapon MumakilRampage
  8912.     AttackRange = 160.0
  8913. ;    FireFX           = FX_RampageDust
  8914.     RadiusDamageAffects = ALLIES ENEMIES NOT_SIMILAR
  8915.     DelayBetweenShots = 0                ; time between shots, msec
  8916.     ClipSize = INFINITE_CLIP_SIZE                            ; how many shots in a Clip (0 == infinite)
  8917.     ClipReloadTime = 0                      ; how long to reload a Clip, msec
  8918.    
  8919.      ; Sequential order of the target positions to follow this list
  8920.     
  8921.     LinearTarget = X: 0            Y: 0        T: 7        ; T: 43 -42    +1
  8922.     LinearTarget = X: 72.272    Y: 7.216    T: 6        ; T: 43    -42    +2
  8923.     LinearTarget = X: 84.496    Y: 9.25     T: 1        ; T: 6    -6    +2
  8924.     LinearTarget = X: 80.55         Y: 48.24     T: 0        ; T: 3    -6    -1
  8925.     LinearTarget = X: 60.88        Y: 64.00    T: 1        ; T: 3    -0    +2
  8926.     LinearTarget = X: 29.13       Y: 78.37    T: 0        ; T: 2        +4
  8927.     LinearTarget = X: -2.55     Y: 85.55    T: 1        ; T: 3        +1
  8928.     LinearTarget = X:-34.80      Y: 76.95    T: 0        ; T: 3    
  8929.     LinearTarget = X: -66.8      Y: 62.64    T: 1        ; T: 3        +1
  8930.     LinearTarget = X:-81.65     Y: 30.48    T: 0        ; T: 1        +2
  8931.     LinearTarget = X: -92.18    Y: -2.72    T: 1        ; T: 4        +0
  8932.     LinearTarget = X:-81.2         Y: -31.48    T: 0        ; T: 4        +4
  8933.     LinearTarget = X: -58.93      Y: -63.19    T: 1        ; T: 4        +2
  8934.     LinearTarget = X:-35.4        Y: -82.56    T: 1        ; T: 4        +0
  8935.     LinearTarget = X: -13.91    Y: -80.33    T: 2        ; T: 14        +2
  8936.     LinearTarget = X: -13.91    Y: -80.33    T: 1        ; T: 5        +1
  8937.     LinearTarget = X:-35.404      Y: -82.56    T: 0        ; T: 2        +3
  8938.     LinearTarget = X: -58.93    Y: -63.19    T: 1        ; T: 1        -2
  8939.     LinearTarget = X:-81.17     Y: -31.48    T: 0        ; T: 2        +0
  8940.     LinearTarget = X: -92.18     Y: -2.72    T: 0        ; T: 2        +2
  8941.     LinearTarget = X:-81.65     Y: 30.48    T: 1        ; T: 3        -1
  8942.     LinearTarget = X: -66.80    Y: 62.64    T: 1        ; T: 5        -2
  8943.     LinearTarget = X:-34.80      Y: 76.95    T: 1        ; T: 6        -2
  8944. ;    LinearTarget = X: -2.554      Y: 85.56    T: 1        ; T: 8        +0
  8945.     LinearTarget = X:-34.80      Y: 76.95    T: 1        ; T: 2    
  8946.     LinearTarget = X: -66.80    Y: 62.64    T: 1        ; T: 3        -1
  8947.     LinearTarget = X:-81.65     Y: 30.48    T: 0        ; T: 4        +3
  8948.     LinearTarget = X: -92.18    Y: -2.72    T: 1        ; T: 2        -1
  8949.     LinearTarget = X:-81.18     Y: -31.48    T: 0        ; T: 3        +2
  8950.     LinearTarget = X: -58.94    Y: -63.19    T: 1        ; T: 3        -1
  8951.     LinearTarget = X:-35.40        Y: -82.56    T: 0        ; T: 3        +2
  8952.     LinearTarget = X: -13.9     Y: -80.33    T: 1        ; T: 2        -2
  8953.     LinearTarget = X:20.14        Y: -80.38    T: 0        ; T: 3        +1
  8954.     LinearTarget = X:52.44        Y: -60.40    T: 0        ; T: 2        +3
  8955.     LinearTarget = X:79.11        Y:-46.74    T: 1        ; T: 3        +0
  8956.     LinearTarget = X:92.25         Y: -19.45    T: 0        ; T: 3        +3
  8957.     LinearTarget = X:98.89        Y:9.25        T: 3        ; T: 5        +2
  8958. ;    LinearTarget = X:90.95         Y: 48.24    T: 1        ; T: 7        +3
  8959. ;    LinearTarget = X:60.89        Y:64.01        T: 1        ; T: 9        +0
  8960.     LinearTarget = X:90.95         Y: 48.24    T: 2        ; T: 6        +-
  8961.     LinearTarget = X:98.99        Y:9.25        T: 3.2        ; T: 3        +3
  8962.   
  8963.    
  8964.     DamageNugget                        ; A basic Nugget that just does damage
  8965.         Damage                = 100
  8966.         Radius                = 25.6
  8967.         DelayTime            = 0
  8968.         DamageType            = FORCE
  8969.         DeathType            = NORMAL
  8970.     End
  8971.  
  8972.     MetaImpactNugget                    ; A Nugget that throws things back with force
  8973. ;        HeroResist            = .75
  8974.         ShockWaveAmount        = 50.0
  8975.         ShockWaveRadius        = 25.6
  8976.         ShockWaveTaperOff    = 0.8
  8977.         ;ShockWaveSpeed        = 0.0
  8978.         ShockWaveZMult        = 0.920
  8979.     End
  8980.  
  8981. End
  8982.  
  8983. ;------------------------------------------------------------------------------
  8984. Weapon CorsairSword
  8985.     LeechRangeWeapon      = Yes
  8986.     AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  8987.     MeleeWeapon           = Yes
  8988.     DelayBetweenShots     = GONDOR_SOLDIER_SWORD_DELAYBETWEENSHOTS  ; Bad Things happen if delay between shots is less than Preattack+Firing times.  You are ready to fire before you are done firing.
  8989.     PreAttackDelay        = GONDOR_SOLDIER_SWORD_PREATTACKDELAY             ; 400 is sword swing delay time before contact with target.
  8990.     PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  8991.     FireFX                = FX_GondorSwordHit
  8992.     FireFlankFX            = FX_Flanking
  8993.     FiringDuration        = GONDOR_SOLDIER_SWORD_FIRINGDURATION    ; Duration of the sword swing
  8994.  
  8995.     DamageNugget                        ; A basic Nugget that just does damage
  8996.         Damage                    = GONDOR_SOLDIER_SWORD
  8997.         Radius                    = 0.0
  8998.         DelayTime                = 0
  8999.         DamageType                = SLASH
  9000.         DamageFXType            = SWORD_SLASH
  9001.         DeathType                = NORMAL
  9002.         FlankingBonus            = 50%
  9003.         ForbiddenUpgradeNames    = Upgrade_MordorForgedBlades Upgrade_WildForgedBlades ;// Corsair used by both Mordor and Wild
  9004.     End
  9005.     
  9006.     DamageNugget                        ; A basic Nugget that just does damage
  9007.         Damage                    = GONDOR_SOLDIER_SWORD_UPGRADE
  9008.         Radius                    = 0.0
  9009.         DelayTime                 = 0
  9010.         DamageType                = SLASH
  9011.         DamageFXType              = SWORD_SLASH
  9012.         DeathType                 = NORMAL
  9013.         FlankingBonus             = 50%
  9014.         RequiredUpgradeNames    = Upgrade_MordorForgedBlades
  9015.     End
  9016.  
  9017.     DamageNugget                        ; A basic Nugget that just does damage
  9018.         Damage                    = GONDOR_SOLDIER_SWORD_UPGRADE
  9019.         Radius                    = 0.0
  9020.         DelayTime                 = 0
  9021.         DamageType                = SLASH
  9022.         DamageFXType              = SWORD_SLASH
  9023.         DeathType                 = NORMAL
  9024.         FlankingBonus             = 50%
  9025.         RequiredUpgradeNames    = Upgrade_WildForgedBlades
  9026.     End
  9027. End
  9028.  
  9029. ;------------------------------------------------------------------------------
  9030. Weapon CorsairFireBomb
  9031.     AttackRange            = MORDOR_CORSAIR_FIRE_BOMB_RANGE            ; Horde member so it needs to be bigger than the horde weapon attack range.
  9032.     WeaponSpeed            = 100                                        ; dist/sec 
  9033.     MinWeaponSpeed        = 121
  9034.     MaxWeaponSpeed        = 100                                        ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  9035.     FireFX                = FX_FirebombThrow
  9036.     HitPercentage        = MORDOR_CORSAIR_FIRE_BOMB_HIT_PERCENTAGE    ; When this weapon is used it will hit exactly 50% of the time.
  9037.     ScatterRadius        = MORDOR_CORSAIR_FIRE_BOMB_SCATTER_RADIUS    ; When this weapon misses it can randomly miss by as much as this distance.
  9038.     ;NoVictimNeeded        = Yes
  9039.  
  9040.     OverrideVoiceAttackSound = CorsairVoiceAttackFirebomb
  9041.     OverrideVoiceEnterStateAttackSound = CorsairVoiceEnterStateAttackFirebomb
  9042.  
  9043.     AcceptableAimDelta        = 20                                    ; prevent twitchy reaiming in horde on horde
  9044.     DelayBetweenShots        = 0
  9045.     PreAttackDelay            = MORDOR_CORSAIR_FIRE_BOMB_PREATTACKDELAY
  9046.     PreAttackType            = PER_SHOT
  9047.     FiringDuration            = MORDOR_CORSAIR_FIRE_BOMB_FIRING_DURATION
  9048.     PreAttackRandomAmount    = MORDOR_CORSAIR_FIRE_BOMB_RANDOM_PREATTACK
  9049.  
  9050.     ClipSize            = INFINITE_CLIP_SIZE
  9051.     AutoReloadsClip        = Yes
  9052.     
  9053.     ProjectileNugget
  9054.         ProjectileTemplateName  = CorsairFireBombProjectile
  9055.         WarheadTemplateName     = CorsairFireBombWarhead
  9056.     End
  9057. End
  9058.  
  9059. ;------------------------------------------------------------------------------
  9060. Weapon CorsairFireBombBombard
  9061.     AttackRange            = MORDOR_CORSAIR_FIRE_BOMB_RANGE            ; Horde member so it needs to be bigger than the horde weapon attack range.
  9062.     MinimumAttackRange    = MORDOR_CORSAIR_FIRE_BOMB_MIN_RANGE
  9063.     WeaponSpeed            = 100                                        ; dist/sec 
  9064.     MinWeaponSpeed        = 121
  9065.     MaxWeaponSpeed        = 100                                        ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  9066.     FireFX                = FX_FirebombThrow
  9067.     AcceptableAimDelta    = 20                                        ; prevent twitchy reaiming in horde on horde
  9068.     DelayBetweenShots    = 0
  9069.     PreAttackDelay        = MORDOR_CORSAIR_FIRE_BOMB_PREATTACKDELAY
  9070.     PreAttackType        = PER_SHOT
  9071.     FiringDuration        = MORDOR_CORSAIR_FIRE_BOMB_FIRING_DURATION
  9072.     PreAttackRandomAmount    = MORDOR_CORSAIR_FIRE_BOMB_RANDOM_PREATTACK
  9073.  
  9074.     HitPercentage        = 0                                            ; Always scatter
  9075.     ScatterRadius        = ARCHER_BOMBARD_SCATTER_RADIUS
  9076.     NoVictimNeeded        = Yes
  9077.     BombardType            = Yes
  9078.  
  9079.     ClipSize            = INFINITE_CLIP_SIZE
  9080.     AutoReloadsClip        = Yes
  9081.     
  9082.     ProjectileNugget
  9083.         ProjectileTemplateName  = CorsairFireBombProjectile
  9084.         WarheadTemplateName     = CorsairFireBombWarhead
  9085.     End
  9086. End
  9087.  
  9088. ;------------------------------------------------------------------------------
  9089. Weapon CorsairFireBombWarhead
  9090.     FireFX                      = FX_ImpactCorsairFireBomb
  9091.     ProjectileCollidesWith    = ENEMIES
  9092.     RadiusDamageAffects        = ENEMIES NOT_SIMILAR 
  9093.  
  9094.     DamageNugget
  9095.         Damage            = MORDOR_CORSAIR_FIRE_BOMB_DAMAGE
  9096.         Radius            = MORDOR_CORSAIR_FIRE_BOMB_RADIUS
  9097.         DamageType        = FLAME
  9098.         DamageFXType    = FLAME
  9099.         DeathType        = BURNED
  9100.         AcceptDamageAdd = No
  9101.         DamageScalar    = 200% NONE +STRUCTURE        ; more damage to buildings.
  9102.         DamageScalar    = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  9103.     End
  9104.     
  9105.     FireLogicNugget
  9106.         LogicType        = INCREASE_BURN_RATE
  9107.         Radius            = 5
  9108.         Damage            = 20
  9109.     End    
  9110.  
  9111.     FireLogicNugget
  9112.         LogicType        = INCREASE_FUEL
  9113.         Radius            = 5; 25
  9114.         Damage            = 4 ;30
  9115.         MinMaxBurnRate        = 20
  9116.         MinDecay        = 25
  9117.         MaxResistance        = 0
  9118.     End    
  9119.  
  9120. End
  9121.  
  9122. ;------------------------------------------------------------------------------
  9123. Weapon CorsairFireBombMissileHordeRangefinder
  9124.     AttackRange                = MORDOR_CORSAIR_HORDE_FIRE_BOMB_RANGE
  9125.     DelayBetweenShots        = 1000
  9126.     LeechRangeWeapon        = Yes
  9127.     AcceptableAimDelta        = 45
  9128.     AntiAirborneVehicle        = Yes
  9129.     AntiAirborneMonster        = Yes
  9130.     CanFireWhileMoving        = Yes        ; When aboard a mumakil.
  9131.     FinishAttackOnceStarted = No
  9132.     HordeAttackNugget
  9133.     End
  9134. End
  9135.  
  9136. ;------------------------------------------------------------------------------
  9137. Weapon CorsairFireBombMissileHordeRangefinderBombard
  9138.     AttackRange                = MORDOR_CORSAIR_HORDE_FIRE_BOMB_RANGE
  9139.     MinimumAttackRange        = MORDOR_CORSAIR_HORDE_FIRE_BOMB_MIN_RANGE
  9140.     DelayBetweenShots        = 1000
  9141.     LeechRangeWeapon        = Yes
  9142.     AcceptableAimDelta        = 45
  9143.     AntiAirborneVehicle        = Yes
  9144.     AntiAirborneMonster        = Yes
  9145.     CanFireWhileMoving        = Yes        ; When aboard a mumakil.
  9146.     FinishAttackOnceStarted = No
  9147.     NoVictimNeeded            = Yes
  9148.     BombardType                = Yes    
  9149.     ScatterRadius            = ARCHER_BOMBARD_SCATTER_RADIUS
  9150.     HordeAttackNugget
  9151.     End
  9152. End
  9153.  
  9154. ;------------------------------------------------------------------------------
  9155. Weapon MordorArcherBow       ; BALANCE Archer Weapon ;orc archer
  9156.     AttackRange            = MORDOR_ARCHER_RANGE   ;Horde member so it needs to be bigger than the horde weapon attack range.
  9157.  
  9158.     RangeBonusMinHeight    = 10
  9159.     RangeBonus        = 1
  9160.     RangeBonusPerFoot    = #MULTIPLY( MORDOR_ARCHER_RANGE .01 )   
  9161.    
  9162.     LeechRangeWeapon    = Yes
  9163.     WeaponSpeed            = 300         ; dist/sec 
  9164.     MinWeaponSpeed        = 121
  9165.     MaxWeaponSpeed        = 400      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  9166.     FireFX                = FX_RohanArcherBowWeapon  
  9167.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  9168.     HitPercentage        = 100     ;When this weapon is used it will hit exactly 50% of the time.
  9169.     ScatterRadius        = 20.0     ;When this weapon misses it can randomly miss by as much as this distance.
  9170.     
  9171.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  9172.     DelayBetweenShots    = 0
  9173.     PreAttackDelay      = MORDOR_ARCHER_PREATTACKDELAY
  9174.     PreAttackType       = PER_POSITION
  9175.     PreAttackRandomAmount     = 200 
  9176.     FiringDuration      = 0
  9177.     
  9178.     ClipSize            = 1
  9179.     AutoReloadsClip        = Yes
  9180.     AutoReloadWhenIdle    = 1    
  9181.     ClipReloadTime        = Min:MORDOR_ARCHER_BOW_RELOADTIME_MIN Max:MORDOR_ARCHER_BOW_RELOADTIME_MAX
  9182.     ContinuousFireOne    = 0
  9183.     ContinuousFireCoast    = MORDOR_ARCHER_BOW_RELOADTIME_MAX 
  9184.     
  9185.     AntiAirborneVehicle    = Yes
  9186.     AntiAirborneMonster    = Yes
  9187.     HitPassengerPercentage    = 20%
  9188.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  9189.  
  9190.     ProjectileNugget    ; Default arrow
  9191.         ProjectileTemplateName  = EvilFactionArrow
  9192.         WarheadTemplateName     = MordorArcherBowWarhead
  9193.         ForbiddenUpgradeNames   = Upgrade_MordorFireArrows
  9194.     End
  9195.     ProjectileNugget    ; Fire arrow available through fire upgrade
  9196.         ProjectileTemplateName  = EvilFactionFireArrow
  9197.         WarheadTemplateName     = MordorArcherBowFireWarhead
  9198.         RequiredUpgradeNames    = Upgrade_MordorFireArrows
  9199.     End
  9200. End
  9201.  
  9202. Weapon MordorArcherBowBombard       ; BALANCE Archer Weapon ;orc archer
  9203.     AttackRange            = MORDOR_ARCHER_BOMBARD_MAXRANGE   ;Horde member so it needs to be bigger than the horde weapon attack range.
  9204.     MinimumAttackRange    = #SUBTRACT( MORDOR_ARCHER_BOMBARD_MINRANGE 75 )
  9205.     
  9206.     RangeBonusMinHeight    = 10
  9207.     RangeBonus        = 1
  9208.     RangeBonusPerFoot    = #MULTIPLY( MORDOR_ARCHER_BOMBARD_MAXRANGE .01 )   
  9209.     
  9210.     
  9211.     LeechRangeWeapon    = Yes
  9212.     WeaponSpeed            = 300         ; dist/sec 
  9213.     MinWeaponSpeed        = 121
  9214.     MaxWeaponSpeed        = 400      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  9215.     FireFX                = FX_RohanArcherBowWeapon  
  9216.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  9217.     HitPercentage        = 0     ;Always scatter
  9218.     ScatterRadius        = ARCHER_BOMBARD_SCATTER_RADIUS     ;When this weapon misses it can randomly miss by as much as this distance.
  9219.     
  9220.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  9221.     DelayBetweenShots    = 0
  9222.     PreAttackDelay      = MORDOR_ARCHER_PREATTACKDELAY
  9223.     PreAttackType       = PER_POSITION
  9224.     PreAttackRandomAmount     = 200 
  9225.     FiringDuration      = 0
  9226.     
  9227.     ClipSize            = 1
  9228.     AutoReloadsClip        = Yes
  9229.     AutoReloadWhenIdle    = 1    
  9230.     ClipReloadTime        = Min:MORDOR_ARCHER_BOW_RELOADTIME_MIN Max:MORDOR_ARCHER_BOW_RELOADTIME_MAX
  9231.     ContinuousFireOne    = 0
  9232.     ContinuousFireCoast    = MORDOR_ARCHER_BOW_RELOADTIME_MAX 
  9233.     
  9234.     AntiAirborneVehicle    = Yes
  9235.     AntiAirborneMonster    = Yes
  9236.     HitPassengerPercentage    = 20%
  9237.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  9238.     
  9239.     NoVictimNeeded        = Yes
  9240.     BombardType            = Yes
  9241.  
  9242.     ProjectileNugget    ; Default arrow
  9243.         ProjectileTemplateName  = EvilFactionArrowBombard
  9244.         WarheadTemplateName     = MordorArcherBowBombardWarhead
  9245.         ForbiddenUpgradeNames   = Upgrade_MordorFireArrows
  9246.     End
  9247.     ProjectileNugget    ; Fire arrow available through fire upgrade
  9248.         ProjectileTemplateName  = EvilFactionFireArrowBombard
  9249.         WarheadTemplateName     = MordorArcherBowBombardFireWarhead
  9250.         RequiredUpgradeNames    = Upgrade_MordorFireArrows
  9251.     End
  9252. End
  9253.  
  9254. ;------------------------------------------------------------------------------
  9255. Weapon MordorBarricadeArcherBow       ; BALANCE Archer Weapon ;orc archer
  9256.     AttackRange                    = MORDOR_ARCHER_RANGE   ;Horde member so it needs to be bigger than the horde weapon attack range.
  9257.     LeechRangeWeapon            = Yes
  9258.     WeaponSpeed                    = 300         ; dist/sec 
  9259.     MinWeaponSpeed                = 121
  9260.     MaxWeaponSpeed                = 400      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  9261.     FireFX                        = FX_RohanArcherBowWeapon  
  9262.     ScaleWeaponSpeed            = Yes ; Used for lob weapons, scales speed proportional to range
  9263.     HitPercentage                = 100     ;When this weapon is used it will hit exactly 50% of the time.
  9264.     ScatterRadius                = 20.0     ;When this weapon misses it can randomly miss by as much as this distance.
  9265.     
  9266.     AcceptableAimDelta            = 20    ; prevent twitchy reaiming in horde on horde
  9267.     DelayBetweenShots            = 0
  9268.     PreAttackDelay              = MORDOR_ARCHER_PREATTACKDELAY
  9269.     PreAttackType               = PER_POSITION
  9270.     PreAttackRandomAmount        = 200 
  9271.     FiringDuration                = 0
  9272.     
  9273.     ClipSize                    = 1
  9274.     AutoReloadsClip                = Yes
  9275.     AutoReloadWhenIdle            = 1    
  9276.     ClipReloadTime                = Min:MORDOR_ARCHER_BOW_RELOADTIME_MIN Max:MORDOR_ARCHER_BOW_RELOADTIME_MAX
  9277.     ContinuousFireOne            = 0
  9278.     ContinuousFireCoast            = MORDOR_ARCHER_BOW_RELOADTIME_MAX 
  9279.     
  9280.     AntiAirborneVehicle            = Yes
  9281.     AntiAirborneMonster            = Yes
  9282.     HitPassengerPercentage        = 20%
  9283.     CanBeDodged                    = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  9284.  
  9285.     ProjectileNugget    ; Default arrow
  9286.         ProjectileTemplateName  = EvilFactionArrow
  9287.         WarheadTemplateName     = MordorArcherBarricadeBowWarhead
  9288.         ForbiddenUpgradeNames   = Upgrade_EvilFortressFlamingMunitions
  9289.     End
  9290.     ProjectileNugget    ; Fire arrow available through fire upgrade
  9291.         ProjectileTemplateName  = EvilFactionFireArrow
  9292.         WarheadTemplateName     = MordorArcherBarricadeBowFireWarhead
  9293.         RequiredUpgradeNames    = Upgrade_EvilFortressFlamingMunitions
  9294.     End
  9295. End
  9296.  
  9297. ;-----------------------------------
  9298. Weapon MordorArcherBarricadeBowWarhead
  9299.   ProjectileCollidesWith = ENEMIES
  9300.   RadiusDamageAffects = ENEMIES NOT_SIMILAR 
  9301.   HitStoredTarget = Yes    ; Always hits initial target.
  9302.   DamageNugget                        ; A basic Nugget that just does damage
  9303.     Damage        = MORDOR_ARCHER_BARRICADE_DAMAGE
  9304.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9305.     DelayTime     = 0
  9306.     DamageType    = STRUCTURAL
  9307.     DamageFXType  = EVIL_ARROW_PIERCE
  9308.     DeathType     = NORMAL
  9309.   End
  9310. End
  9311.  
  9312. ;------------------------------------------------------------------------------
  9313. Weapon MordorArcherBarricadeBowFireWarhead
  9314.   ProjectileCollidesWith = ENEMIES
  9315.   RadiusDamageAffects = ENEMIES NOT_SIMILAR 
  9316.   HitStoredTarget = Yes    ; Always hits initial target.
  9317.  
  9318.   DamageNugget                       
  9319.     Damage        = MORDOR_ARCHER_BARRICADE_DAMAGE_FIRE_FLAME
  9320.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9321.     DelayTime     = 0
  9322.     DamageType    = FLAME
  9323.     DamageFXType  = EVIL_ARROW_PIERCE
  9324.     DeathType     = BURNED
  9325.     AcceptDamageAdd = No
  9326.     DamageScalar  = 25% ALL -STRUCTURE
  9327.   End
  9328.  
  9329.     DamageNugget                        ; A basic Nugget that just does damage
  9330.         Damage        = 1
  9331.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9332.         DamageType    = FLAME
  9333.         DamageFXType  = FLAME
  9334.         DeathType     = BURNED
  9335.         AcceptDamageAdd = No
  9336.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  9337.     End
  9338.  
  9339.   DamageNugget                       
  9340.     Damage        = MORDOR_ARCHER_BARRICADE_DAMAGE_FIRE_PIERCE        
  9341.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9342.     DelayTime     = 0
  9343.     DamageType    = STRUCTURAL
  9344.     DamageFXType  = EVIL_ARROW_PIERCE
  9345.     DeathType     = NORMAL
  9346.   End
  9347. End
  9348.  
  9349.  
  9350.  
  9351. ;-----------------------------------
  9352. Weapon MordorArcherBowWarhead
  9353.   ProjectileCollidesWith = ENEMIES
  9354.   RadiusDamageAffects = ENEMIES NOT_SIMILAR 
  9355.   HitStoredTarget = Yes    ; Always hits initial target.
  9356.   DamageNugget                        ; A basic Nugget that just does damage
  9357.     Damage        = MORDOR_ARCHER_DAMAGE
  9358.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9359.     DelayTime     = 0
  9360.     DamageType    = PIERCE
  9361.     DamageFXType  = EVIL_ARROW_PIERCE
  9362.     DeathType     = NORMAL
  9363.   End
  9364. End
  9365.  
  9366. Weapon MordorArcherBowBombardWarhead
  9367.   ProjectileCollidesWith = ENEMIES
  9368.   RadiusDamageAffects = ENEMIES NOT_SIMILAR 
  9369.   DamageNugget                        ; A basic Nugget that just does damage
  9370.     Damage        = MORDOR_ARCHER_DAMAGE
  9371.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9372.     DelayTime     = 0
  9373.     DamageType    = PIERCE
  9374.     DamageFXType  = EVIL_ARROW_PIERCE
  9375.     DeathType     = NORMAL
  9376.   End
  9377. End
  9378.  
  9379. ;------------------------------------------------------------------------------
  9380. Weapon MordorArcherBowFireWarhead
  9381.   ProjectileCollidesWith = ENEMIES
  9382.   RadiusDamageAffects = ENEMIES NOT_SIMILAR 
  9383.   HitStoredTarget = Yes    ; Always hits initial target.
  9384.  
  9385.   DamageNugget                       
  9386.     Damage        = MORDOR_ARCHER_DAMAGE_FIRE_FLAME
  9387.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9388.     DelayTime     = 0
  9389.     DamageType    = FLAME
  9390.     DamageFXType  = EVIL_ARROW_PIERCE
  9391.     DeathType     = BURNED
  9392.     AcceptDamageAdd = No
  9393.     DamageScalar  = 25% ALL -STRUCTURE
  9394.   End
  9395.  
  9396.     DamageNugget                        ; A basic Nugget that just does damage
  9397.         Damage        = 1
  9398.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9399.         DamageType    = FLAME
  9400.         DamageFXType  = FLAME
  9401.         DeathType     = BURNED
  9402.         AcceptDamageAdd = No
  9403.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  9404.     End
  9405.  
  9406.   DamageNugget                       
  9407.     Damage        = MORDOR_ARCHER_DAMAGE_FIRE_PIERCE        
  9408.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9409.     DelayTime     = 0
  9410.     DamageType    = PIERCE
  9411.     DamageFXType  = EVIL_ARROW_PIERCE
  9412.     DeathType     = NORMAL
  9413.   End
  9414. End
  9415.  
  9416. Weapon MordorArcherBowBombardFireWarhead
  9417.   ProjectileCollidesWith = ENEMIES
  9418.   RadiusDamageAffects = ENEMIES NOT_SIMILAR 
  9419.  
  9420.   DamageNugget                       
  9421.     Damage        = MORDOR_ARCHER_DAMAGE_FIRE_FLAME
  9422.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9423.     DelayTime     = 0
  9424.     DamageType    = FLAME
  9425.     DamageFXType  = EVIL_ARROW_PIERCE
  9426.     DeathType     = BURNED
  9427.     AcceptDamageAdd = No
  9428.     DamageScalar  = 25% ALL -STRUCTURE
  9429.   End
  9430.  
  9431.     DamageNugget                        ; A basic Nugget that just does damage
  9432.         Damage        = 1
  9433.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9434.         DamageType    = FLAME
  9435.         DamageFXType  = FLAME
  9436.         DeathType     = BURNED
  9437.         AcceptDamageAdd = No
  9438.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  9439.     End
  9440.  
  9441.   DamageNugget                       
  9442.     Damage        = MORDOR_ARCHER_DAMAGE_FIRE_PIERCE        
  9443.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9444.     DelayTime     = 0
  9445.     DamageType    = PIERCE
  9446.     DamageFXType  = EVIL_ARROW_PIERCE
  9447.     DeathType     = NORMAL
  9448.   End
  9449.  
  9450.     FireLogicNugget
  9451.         LogicType    = INCREASE_BURN_RATE
  9452.         Radius        = 1.0
  9453.         Damage        = ARCHER_BOMBARD_FIREARROW_BURNRATEINCREASE
  9454.     End
  9455. End
  9456.  
  9457. ;------------------------------------------------------------------------------
  9458. Weapon MordorArcherBowMelee       ; BALANCE Archer Weapon
  9459.   LeechRangeWeapon      = Yes
  9460.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  9461.   MeleeWeapon           = Yes
  9462.   FireFX                = FX_RohanArcherBowWeaponFlaming;
  9463.   DelayBetweenShots     = 1700            ; time between shots, msec
  9464.   PreAttackDelay        = 666             ; 400 is sword swing delay time before contact with target.
  9465.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  9466.   FiringDuration        = 1000    ; Duration of the sword swing
  9467.  
  9468.   DamageNugget                        ; A basic Nugget that just does damage
  9469.     Damage        = MORDOR_ARCHER_DAMAGE_MELEE
  9470.     Radius        = 0.0
  9471.     DelayTime     = 0
  9472.     DamageType    = SLASH
  9473.     DamageFXType  = SWORD_SLASH
  9474.     DeathType     = NORMAL
  9475.   End
  9476. End
  9477.  
  9478. ;------------------------------------------------------------------------------
  9479. ;Weapon MordorArcherBowForBlackGate       ; BALANCE Archer Weapon ;orc archer
  9480. ;    AttackRange            = 350.0  ; 350 ; Horde member so it needs to be bigger than the horde weapon attack range.
  9481. ;    WeaponSpeed            = 300         ; dist/sec 
  9482. ;    MinWeaponSpeed        = 121
  9483. ;    MaxWeaponSpeed        = 400      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  9484. ;    FireFX                = FX_RohanArcherBowWeapon  
  9485. ;    ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  9486. ;    HitPercentage        = 100     ;When this weapon is used it will hit exactly 100% of the time.
  9487. ;    ScatterRadius        = 0.0     ;When this weapon misses it can randomly miss by as much as this distance.
  9488. ;    DelayBetweenShots    = 1900
  9489. ;    PreAttackDelay      = 1888
  9490. ;    PreAttackType       = PER_SHOT ; Do the delay each time we attack a new target
  9491. ;    FiringDuration      = 466    ; Duration of the archer firing shot is 500ms.
  9492. ;
  9493. ;    ProjectileNugget            ; Fire arrow available through fire upgrade
  9494. ;        ProjectileTemplateName  = EvilFactionArrow
  9495. ;        WarheadTemplateName     = MordorArcherBowWarheadForBlackGate
  9496. ;    End
  9497. ;End
  9498.  
  9499. ;-----------------------------------
  9500. ;Weapon MordorArcherBowWarheadForBlackGate
  9501. ;  ProjectileCollidesWith = ENEMIES
  9502. ;  RadiusDamageAffects = ENEMIES NOT_SIMILAR 
  9503. ;  HitStoredTarget = Yes    ; Always hits initial target.
  9504. ;  DamageNugget                        ; A basic Nugget that just does damage
  9505. ;    Damage        = 500
  9506. ;    Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9507. ;    DelayTime     = 0
  9508. ;    DamageType    = HERO
  9509. ;    DamageFXType  = EVIL_ARROW_PIERCE
  9510. ;    DeathType     = NORMAL
  9511. ;  End
  9512. ;End
  9513.  
  9514. ;------------------------------------------------------------------------------
  9515. Weapon MordorArcherBowNoFire       ; BALANCE Archer Weapon
  9516.   AttackRange = 240.0 ;700
  9517.   WeaponSpeed = 321         ; dist/sec 
  9518.   MinWeaponSpeed = 61
  9519.   MaxWeaponSpeed = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  9520.   FireFX = FX_RohanArcherBowWeapon
  9521.   ScaleWeaponSpeed = Yes ; Used for lob weapons, scales speed proportional to range
  9522.   HitPercentage     = 100     ;When this weapon is used it will hit exactly 50% of the time.
  9523.   ScatterRadius     = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  9524.   DelayBetweenShots = 667               ; time between shots, msec
  9525.   PreAttackDelay        = 2167             ; 1467 is the prep time for archer.
  9526.   PreAttackRandomAmount = 200     ; amount of additional preattack variance for archer type attacks only
  9527.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  9528.   FiringDuration      = 667    ; Duration of the archer firing shot is 500ms.
  9529.   IsAimingWeapon = Yes
  9530.  
  9531.   ProjectileNugget                    ; Default arrow
  9532.     ProjectileTemplateName    = EvilFactionArrow
  9533.     WarheadTemplateName       = MordorArcherBowNoFireWarhead
  9534.     ForbiddenUpgradeNames     = Upgrade_MordorFireArrows
  9535.   End
  9536.  
  9537.   ProjectileNugget                    ; Fire arrow available from fire arrow upgrade
  9538.     ProjectileTemplateName    = EvilFactionFireArrow
  9539.     WarheadTemplateName       = MordorArcherBowNoFireWarhead
  9540.     RequiredUpgradeNames      = Upgrade_MordorFireArrows
  9541.   End
  9542. End
  9543.  
  9544. ;-----------------------------------
  9545. Weapon MordorArcherBowNoFireWarhead
  9546.   ProjectileCollidesWith = ALLIES ENEMIES NEUTRAL STRUCTURES WALLS ; Remember, the projectile is a rock, who has no allies
  9547.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  9548.   HitStoredTarget = Yes    ; Always hits initial target.
  9549.   DamageNugget                        ; A basic Nugget that just does damage
  9550.     Damage        = 20
  9551.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9552.     DelayTime     = 0
  9553.     DamageType    = PIERCE
  9554.     DamageFXType  = EVIL_ARROW_PIERCE
  9555.     DeathType     = NORMAL
  9556.   End
  9557. End
  9558.  
  9559.  
  9560. ;------------------------------------------------------------------------------
  9561. Weapon HaradrimBow ; BALANCE Archer Weapon ;orc archer
  9562.   AttackRange             = MORDOR_HARADRIM_BOW_RANGE
  9563.   
  9564.       RangeBonusMinHeight    = 10
  9565.     RangeBonus        = 1
  9566.     RangeBonusPerFoot    = #MULTIPLY( MORDOR_HARADRIM_BOW_RANGE .01 )   
  9567.   
  9568.   LeechRangeWeapon      = Yes
  9569.   WeaponSpeed             = 401         ; dist/sec 
  9570.   MinWeaponSpeed         = 121
  9571.   MaxWeaponSpeed         = 601      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  9572.   FireFX                 = FX_RohanArcherBowWeapon  
  9573.   ScaleWeaponSpeed         = Yes ; Used for lob weapons, scales speed proportional to range
  9574.   HitPercentage         = 100     ;When this weapon is used it will hit exactly 50% of the time.
  9575.   ScatterRadius         = 40.0     ;When this weapon misses it can randomly miss by as much as this distance.
  9576.   DelayBetweenShots     = MORDOR_HARADRIM_BOW_DELAYBETWEENSHOTS
  9577.   PreAttackDelay        = MORDOR_HARADRIM_BOW_PREATTACKDELAY
  9578.   PreAttackRandomAmount     = 200 
  9579.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  9580.   FiringDuration          = MORDOR_HARADRIM_BOW_FIRINGDURATION    ; Duration of the archer firing shot is 500ms.
  9581.   AntiAirborneVehicle    = Yes
  9582.   AntiAirborneMonster    = Yes
  9583.   CanBeDodged                = Yes
  9584.  
  9585.   ProjectileNugget                    ; Default arrow
  9586.     ProjectileTemplateName    = EvilFactionArrow
  9587.     WarheadTemplateName       = HaradrimBowWarhead
  9588.     ForbiddenUpgradeNames      = Upgrade_MordorFireArrows
  9589.   End
  9590.   ProjectileNugget    ; Fire arrow available through fire upgrade
  9591.     ProjectileTemplateName  = EvilFactionFireArrow
  9592.     WarheadTemplateName     = HaradrimBowFireWarhead
  9593.     RequiredUpgradeNames    = Upgrade_MordorFireArrows
  9594.   End
  9595.  
  9596. End
  9597.  
  9598. Weapon HaradrimBowBombard ; BALANCE Archer Weapon ;orc archer
  9599.     AttackRange             = MORDOR_HARADRIM_BOW_BOMBARD_MAXRANGE
  9600.     MinimumAttackRange    = #SUBTRACT( MORDOR_HARADRIM_BOW_BOMBARD_MINRANGE 75 )
  9601.  
  9602.     RangeBonusMinHeight    = 10
  9603.     RangeBonus        = 1
  9604.     RangeBonusPerFoot    = #MULTIPLY( MORDOR_HARADRIM_BOW_BOMBARD_MAXRANGE .01 )  
  9605.   
  9606.     LeechRangeWeapon      = Yes
  9607.     WeaponSpeed             = 401         ; dist/sec 
  9608.     MinWeaponSpeed         = 121
  9609.     MaxWeaponSpeed         = 601      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  9610.     FireFX                 = FX_RohanArcherBowWeapon  
  9611.     ScaleWeaponSpeed         = Yes ; Used for lob weapons, scales speed proportional to range
  9612.     HitPercentage         = 0     ;Always scatter
  9613.     ScatterRadius         = ARCHER_BOMBARD_SCATTER_RADIUS     ;When this weapon misses it can randomly miss by as much as this distance.
  9614.     DelayBetweenShots     = MORDOR_HARADRIM_BOW_DELAYBETWEENSHOTS
  9615.     PreAttackDelay        = MORDOR_HARADRIM_BOW_PREATTACKDELAY
  9616.     PreAttackRandomAmount     = 200 
  9617.     PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  9618.     FiringDuration          = MORDOR_HARADRIM_BOW_FIRINGDURATION    ; Duration of the archer firing shot is 500ms.
  9619.     AntiAirborneVehicle    = Yes
  9620.     AntiAirborneMonster    = Yes
  9621.     CanBeDodged            = Yes
  9622.     NoVictimNeeded        = Yes
  9623.     BombardType            = Yes
  9624.  
  9625.     ProjectileNugget                    ; Default arrow
  9626.         ProjectileTemplateName    = EvilFactionArrowBombard
  9627.         WarheadTemplateName       = HaradrimBowBombardWarhead
  9628.         ForbiddenUpgradeNames      = Upgrade_MordorFireArrows
  9629.     End
  9630.     ProjectileNugget    ; Fire arrow available through fire upgrade
  9631.         ProjectileTemplateName  = EvilFactionFireArrowBombard
  9632.         WarheadTemplateName     = HaradrimBowBombardFireWarhead
  9633.         RequiredUpgradeNames    = Upgrade_MordorFireArrows
  9634.     End
  9635.  
  9636. End
  9637.  
  9638. ;-----------------------------------
  9639. Weapon HaradrimBowWarhead
  9640.   ProjectileCollidesWith = ENEMIES
  9641.   RadiusDamageAffects = ENEMIES NOT_SIMILAR 
  9642.   HitStoredTarget = Yes    ; Always hits initial target.
  9643.   DamageNugget                        ; A basic Nugget that just does damage
  9644.     Damage        = MORDOR_HARADRIM_BOW_DAMAGE
  9645.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9646.     DelayTime     = 0
  9647.     DamageType    = PIERCE
  9648.     DamageFXType  = EVIL_ARROW_PIERCE
  9649.     DeathType     = NORMAL
  9650.   End
  9651. End
  9652.  
  9653. Weapon HaradrimBowBombardWarhead
  9654.   ProjectileCollidesWith = ENEMIES
  9655.   RadiusDamageAffects = ENEMIES NOT_SIMILAR 
  9656.   HitStoredTarget = No
  9657.   DamageNugget                        ; A basic Nugget that just does damage
  9658.     Damage        = MORDOR_HARADRIM_BOW_DAMAGE
  9659.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9660.     DelayTime     = 0
  9661.     DamageType    = PIERCE
  9662.     DamageFXType  = EVIL_ARROW_PIERCE
  9663.     DeathType     = NORMAL
  9664.   End
  9665. End
  9666.  
  9667. Weapon HaradrimBowFireWarhead
  9668.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  9669.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  9670.     HitStoredTarget = Yes    ; Always hits initial target.
  9671.  
  9672.     DamageNugget                        
  9673.         Damage        = MORDOR_HARADRIM_FIRE_UPGRADE_FLAME
  9674.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9675.         DelayTime     = 0
  9676.         DamageType    = FLAME
  9677.         DamageFXType  = EVIL_ARROW_PIERCE
  9678.         DeathType     = BURNED
  9679.         AcceptDamageAdd = No
  9680.         DamageScalar  = 25% ALL -STRUCTURE
  9681.     End
  9682.  
  9683.     DamageNugget                        ; A basic Nugget that just does damage
  9684.         Damage        = 1
  9685.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9686.         DamageType    = FLAME
  9687.         DamageFXType  = FLAME
  9688.         DeathType     = BURNED
  9689.         AcceptDamageAdd = No
  9690.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  9691.     End
  9692.     
  9693.     DamageNugget                        ; A basic Nugget that just does damage
  9694.         Damage        = MORDOR_HARADRIM_FIRE_UPGRADE_DAMAGE
  9695.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9696.         DelayTime     = 0
  9697.         DamageType    = PIERCE
  9698.         DamageFXType  = EVIL_ARROW_PIERCE
  9699.         DeathType     = NORMAL
  9700.     End
  9701. End
  9702.  
  9703. Weapon HaradrimBowBombardFireWarhead
  9704.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  9705.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  9706.     HitStoredTarget = No
  9707.  
  9708.     DamageNugget                        
  9709.         Damage        = MORDOR_HARADRIM_FIRE_UPGRADE_FLAME
  9710.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9711.         DelayTime     = 0
  9712.         DamageType    = FLAME
  9713.         DamageFXType  = EVIL_ARROW_PIERCE
  9714.         DeathType     = BURNED
  9715.         AcceptDamageAdd = No
  9716.         DamageScalar  = 25% ALL -STRUCTURE
  9717.     End
  9718.  
  9719.     DamageNugget                        ; A basic Nugget that just does damage
  9720.         Damage        = 1
  9721.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9722.         DamageType    = FLAME
  9723.         DamageFXType  = FLAME
  9724.         DeathType     = BURNED
  9725.         AcceptDamageAdd = No
  9726.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  9727.     End
  9728.     
  9729.     DamageNugget                        ; A basic Nugget that just does damage
  9730.         Damage        = MORDOR_HARADRIM_FIRE_UPGRADE_DAMAGE
  9731.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  9732.         DelayTime     = 0
  9733.         DamageType    = PIERCE
  9734.         DamageFXType  = EVIL_ARROW_PIERCE
  9735.         DeathType     = NORMAL
  9736.     End
  9737.  
  9738.     FireLogicNugget
  9739.         LogicType    = INCREASE_BURN_RATE
  9740.         Radius        = 1.0
  9741.         Damage        = ARCHER_BOMBARD_FIREARROW_BURNRATEINCREASE
  9742.     End
  9743. End
  9744.  
  9745.  
  9746. ;------------------------------------------------------------------------------
  9747. Weapon MordorGoblinSword     ; BALANCE Orc Warrior Weapon ;Orc Fighter
  9748.   LeechRangeWeapon      = Yes
  9749.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  9750.   MeleeWeapon           = Yes
  9751.   DelayBetweenShots     = MORDOR_GOBLIN_SWORDSMAN_DELAYBETWEENSHOTS            ; time between shots, msec
  9752.   PreAttackDelay        = MORDOR_GOBLIN_SWORDSMAN_PREATTACKDELAY             ; 300 is mace swing delay time before contact with target.
  9753.   PreAttackType         = PER_SHOT ; Do the delay each time we attack
  9754.   FireFX                = FX_GondorSwordHit
  9755.   FireFlankFX        = FX_Flanking
  9756.   FiringDuration        = MORDOR_GOBLIN_SWORDSMAN_FIRINGDURATION    ; Duration of the mace swing 
  9757.  
  9758.   DamageNugget                        ; A basic Nugget that just does damage
  9759.     Damage        = MORDOR_GOBLIN_SWORDSMAN_DAMAGE
  9760.     Radius        = 0.0
  9761.     DelayTime     = 0
  9762.     DamageType    = SLASH
  9763.     DamageFXType  = SWORD_SLASH
  9764.     DeathType     = NORMAL
  9765.     FlankingBonus = 50%
  9766.   End
  9767. End
  9768.  
  9769. ;------------------------------------------------------------------------------
  9770. Weapon MordorWarriorAxe     ; BALANCE Orc Warrior Weapon ;Orc Fighter
  9771.   LeechRangeWeapon      = Yes
  9772.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  9773.   MeleeWeapon           = Yes
  9774.   DelayBetweenShots     = MORDOR_FIGHTER_DELAYBETWEENSHOTS            ; time between shots, msec
  9775.   PreAttackDelay        = MORDOR_FIGHTER_PREATTACKDELAY             ; 300 is mace swing delay time before contact with target.
  9776.   PreAttackType         = PER_SHOT ; Do the delay each time we attack
  9777.   FireFX                = FX_GondorSwordHit
  9778.   FiringDuration        = MORDOR_FIGHTER_FIRINGDURATION    ; Duration of the mace swing 
  9779.  
  9780.   DamageNugget                        ; A basic Nugget that just does damage
  9781.     Damage        = MORDOR_FIGHTER_DAMAGE
  9782.     Radius        = 0.0
  9783.     DelayTime     = 0
  9784.     DamageType    = SLASH
  9785.     DamageFXType  = SWORD_SLASH
  9786.     DeathType     = NORMAL
  9787.   End
  9788. End
  9789.  
  9790. Weapon MordorWorkerAxe     ; BALANCE Orc Worker Weapon
  9791.     LeechRangeWeapon    = Yes
  9792.     AttackRange            = STANDARD_MELEE_ATTACK_RANGE
  9793.     MeleeWeapon            = Yes
  9794.     DelayBetweenShots    = MORDOR_LABORER_DELAYBETWEENSHOTS            ; time between shots, msec
  9795.     PreAttackDelay        = MORDOR_LABORER_PREATTACKDELAY             ; 300 is mace swing delay time before contact with target.
  9796.     PreAttackType        = PER_SHOT ; Do the delay each time we attack
  9797.     FireFX                = FX_GondorSwordHit
  9798.     FiringDuration        = MORDOR_LABORER_FIRINGDURATION    ; Duration of the mace swing 
  9799.  
  9800.     DamageNugget                        ; A basic Nugget that just does damage
  9801.         Damage            = MORDOR_LABORER_DAMAGE
  9802.         Radius            = 0.0
  9803.         DelayTime        = 0
  9804.         DamageType        = CHOP
  9805.         DamageFXType    = SWORD_SLASH
  9806.         DeathType        = NORMAL
  9807.         DamageScalar    = 300% NONE +RohanEntBirch +RohanGenericEnt +RohanTreeBerd +RohanEntFir +RohanEntAsh 
  9808.     End
  9809. End
  9810.  
  9811. ;------------------------------------------------------------------------------
  9812. Weapon BalrogSummoning    ;used in the OCL that makes a Balrog.
  9813.   ;FireFX                = FX_GondorSwordHit
  9814.   RadiusDamageAffects    = ALLIES ENEMIES NOT_SIMILAR
  9815.   AttackRange           = 4.0
  9816.  
  9817.   DamageNugget                        ; A basic Nugget that just does damage
  9818.     Damage        = BALROG_SUMMONING_DAMAGE
  9819.     Radius        = 200.0
  9820.     DamageType    = MAGIC
  9821.     DamageFXType  = FLAME
  9822.     DeathType     = BURNED
  9823.     DamageScalar  = 0% NONE +MordorBalrog
  9824.   End
  9825.  
  9826.   MetaImpactNugget                    ; A Nugget that throws things back with force
  9827.     KillObjectFilter  = INSTANT_DEATH_ON_METAIMPACT_OBJFILTER
  9828.     ShockWaveAmount   = 100
  9829.     ShockWaveRadius   = 200.0
  9830.     ShockWaveTaperOff = 0.9
  9831.     ShockWaveZMult    = 1.20
  9832.   End
  9833. End
  9834.  
  9835. //------------------------------------------------------------------------------
  9836. Weapon CitadelSummoning    //used in the OCL that makes the Dwarven Summoned Citadel.
  9837.     //FireFX                = FX_GondorSwordHit
  9838.     RadiusDamageAffects        = ALLIES ENEMIES NOT_SIMILAR
  9839.     AttackRange                = 4.0
  9840.  
  9841.     // A basic Nugget that just does damage
  9842.     DamageNugget                        
  9843.         Damage        = DWARVEN_SUMMONED_CITADEL_SUMMONING_DAMAGE
  9844.         Radius        = SPAWN_CITADEL_DECAL_RADIUS
  9845.         DelayTime     = 667
  9846.         DamageType    = MAGIC        
  9847.         DeathType     = NORMAL
  9848.         DamageScalar  = 0% NONE +DwarvenSummonedCitadel +DwarvenSummonedCitadelKeep 
  9849.     End
  9850.   
  9851.     // A Nugget that throws things back with force
  9852.     MetaImpactNugget                    
  9853.         KillObjectFilter            = INSTANT_DEATH_ON_METAIMPACT_OBJFILTER
  9854.         ShockWaveAmount                = 100
  9855.         ShockWaveRadius                = SPAWN_CITADEL_DECAL_RADIUS
  9856.         ShockWaveTaperOff            = 0.9
  9857.         ShockWaveZMult                = 1.20
  9858.         DelayTime                    = 667
  9859.         ShockWaveClearRadius        = Yes
  9860.         ShockWaveClearMult            = 0.75
  9861.         ShockWaveClearFlingHeight    = 75
  9862.     End
  9863. End
  9864.  
  9865. ;------------------------------------------------------------------------------
  9866. Weapon WatcherSummoning                                    ; used in the OCL that makes a watcher.
  9867.     RadiusDamageAffects    = ALLIES ENEMIES NOT_SIMILAR
  9868.     AttackRange           = 4.0
  9869.  
  9870.     DamageNugget                                    ; A basic Nugget that just does damage
  9871.         Damage            = BALROG_SUMMONING_DAMAGE
  9872.         Radius            = 75.0
  9873.         DelayTime        = 667
  9874.         DamageType        = CRUSH
  9875.         DeathType        = CRUSHED
  9876.     End
  9877.  
  9878.     MetaImpactNugget                                ; A Nugget that throws things back with force
  9879.         KillObjectFilter    = INSTANT_DEATH_ON_METAIMPACT_OBJFILTER
  9880.         ShockWaveAmount        = 100
  9881.         ShockWaveRadius        = 85.0
  9882.         DelayTime            = 667
  9883.         ShockWaveClearRadius = Yes
  9884.         ShockWaveClearMult    = 0.75
  9885.         ShockWaveClearFlingHeight = 75
  9886.     End
  9887. End
  9888.  
  9889. ;------------------------------------------------------------------------------
  9890. Weapon ArmyOfTheDeadSummoning    ;used in the OCL that makes a Balrog.
  9891.   RadiusDamageAffects    = ENEMIES NOT_SIMILAR
  9892.   AttackRange           = 4.0
  9893.  
  9894.   DamageNugget                        ; A basic Nugget that just does damage
  9895.     Damage        = 1000 ;300
  9896.     Radius        = 200.0
  9897.     DelayTime     = 667
  9898.     DamageType    = FLAME
  9899.     DamageFXType  = FLAME
  9900.     DeathType     = BURNED
  9901.   End
  9902.   
  9903.   MetaImpactNugget                    ; A Nugget that throws things back with force
  9904. ;    HeroResist            = .75
  9905.     ShockWaveAmount   = 70 ;70.0
  9906.     ShockWaveRadius   = 200.0
  9907.     ShockWaveTaperOff = 0.9
  9908.     ShockWaveZMult    = 1.20
  9909.     DelayTime         = 667
  9910.   End
  9911. End
  9912.  
  9913. ;------------------------------------------------------------------------------
  9914. Weapon MordorBalrogHeroEffect     ; BALANCE Orc Warrior Weapon
  9915.   LeechRangeWeapon      = No
  9916.   AttackRange           = 20.0
  9917.   MeleeWeapon           = No
  9918.   DelayBetweenShots     = 1300            ; time between shots, msec
  9919.   PreAttackDelay        = 533             ; 300 is mace swing delay time before contact with target.
  9920.   PreAttackType         = PER_SHOT ; Do the delay each time we attack
  9921.   FiringDuration        = 733    ; Duration of the mace swing 
  9922.  
  9923.   DamageNugget                        ; A basic Nugget that just does damage
  9924.     Damage        = BALROG_IGNITE_AURA_DAMAGE
  9925.     Radius        = 50.0
  9926.     DamageType    = MAGIC
  9927.     DamageFXType    = FLAME
  9928.     DeathType        = BURNED
  9929.   End
  9930.   MetaImpactNugget                    ; A Nugget that throws things back with force
  9931. ;    HeroResist            = .75
  9932.     ShockWaveAmount   = 50.0
  9933.     ShockWaveRadius   = 50.0
  9934.     ShockWaveTaperOff = 1.0
  9935.   End
  9936. End
  9937.  
  9938. ;------------------------------------------------------------------------------
  9939. Weapon SummonedDragonDeathCrush  ; Used when the SummonedDragon crush enemies when it dies.
  9940.     LeechRangeWeapon      = Yes
  9941.     AttackRange           = 9999.0
  9942.     MeleeWeapon           = No
  9943.     DelayBetweenShots     = 0                            ; time between shots, msec
  9944.     PreAttackDelay        = 0
  9945.     PreAttackType         = PER_SHOT 
  9946.     FiringDuration        = 0
  9947.  
  9948.     DamageNugget                                        ; A basic Nugget that just does damage
  9949.         Damage        = SUMMONED_DRAGON_CRUSH_DAMAGE
  9950.         Radius        = 75.0
  9951.         DamageType    = CRUSH
  9952.         DeathType     = CRUSHED
  9953.     End
  9954.  
  9955.     MetaImpactNugget                    ; A Nugget that throws things back with force
  9956.         ShockWaveAmount        = 70
  9957.         ShockWaveRadius        = 100.0
  9958.         ShockWaveTaperOff    = 0.9
  9959.         ShockWaveZMult        = 1.20
  9960.     End
  9961. End
  9962.  
  9963. ;------------------------------------------------------------------------------
  9964. Weapon SummonedDragonFireBreath
  9965.     IdleAfterFiringDelay        = 0
  9966.     AttackRange                    = #MULTIPLY( SUMMONED_DRAGON_FLAME_RADIUS 0.25 )
  9967.     WeaponSpeed                    = 401                                                ; dist/sec 
  9968.     RadiusDamageAffects            = ALLIES ENEMIES NOT_SIMILAR
  9969.     DelayBetweenShots            = 5000                                                ; time between shots, msec
  9970.     PreAttackDelay                = 2000
  9971.     PreAttackType                = PER_SHOT
  9972.     ;FireFX                        = FX_DragonFireBreath
  9973.     FiringDuration                = 3000
  9974.     ;DamageDealtAtSelfPosition    = Yes 
  9975.     MeleeWeapon                    = Yes
  9976.  
  9977.     DamageNugget                        ; The large 90 degree arc
  9978.         Damage            = #MULTIPLY( SUMMONED_DRAGON_FLAME_DAMAGE 0.5 )
  9979.         Radius            = SUMMONED_DRAGON_FLAME_RADIUS
  9980.         DelayTime        = 1000
  9981.         DamageType        = FLAME
  9982.         DamageFXType    = FLAME
  9983.         DeathType        = BURNED
  9984.         DamageArc        = 90
  9985.         DamageMaxHeight = 50 ;We won't hurt something far above us.  Birds fly at around 100
  9986.         DamageSpeed        = 400
  9987.     End
  9988.     
  9989.     DamageNugget                        ; The small area directly in front.
  9990.         Damage            = #MULTIPLY( SUMMONED_DRAGON_FLAME_DAMAGE 0.5 )
  9991.         Radius            = #MULTIPLY( SUMMONED_DRAGON_FLAME_RADIUS 0.25 )
  9992.         DelayTime        = 1000
  9993.         DamageType        = FLAME
  9994.         DamageFXType    = FLAME
  9995.         DeathType        = BURNED
  9996.         DamageMaxHeight = 50 ;We won't hurt something far above us.  Birds fly at around 100
  9997.         DamageSpeed        = 400
  9998.     End
  9999.  
  10000.     DamageNugget
  10001.         Damage            = SUMMONED_DRAGON_FLAME_DAMAGE
  10002.         Radius            = SUMMONED_DRAGON_FLAME_RADIUS
  10003.         DelayTime        = 1000
  10004.         DamageType        = MAGIC
  10005.         DamageArc        = 90
  10006.         DamageMaxHeight = 50 ;We won't hurt something far above us.  Birds fly at around 100
  10007.         DamageSpeed        = 400
  10008.     End
  10009.  
  10010.     ;FireLogicNugget
  10011.     ;    LogicType        = INCREASE_FUEL
  10012.     ;    Radius            = SUMMONED_DRAGON_FLAME_FUELINCREASE_RADIUS
  10013.     ;    Damage            = SUMMONED_DRAGON_FLAME_FUELINCREASE_AMOUNT
  10014.     ;    MinMaxBurnRate    = SUMMONED_DRAGON_FLAME_FUELINCREASE_MINMAXBURNRATE
  10015.     ;    MaxResistance    = SUMMONED_DRAGON_FLAME_FUELINCREASE_RESISTANCE
  10016.     ;End
  10017.     FireLogicNugget
  10018.         LogicType        = INCREASE_BURN_RATE
  10019.         Radius            = SUMMONED_DRAGON_FLAME_INCREASEBURNRATE_RADIUS
  10020.         Damage            = SUMMONED_DRAGON_FLAME_INCREASEBURNRATE_AMOUNT
  10021.     End
  10022.  
  10023. End
  10024.  
  10025. ;------------------------------------------------------------------------------
  10026. Weapon SummonedDragonTailSwipe
  10027.   LeechRangeWeapon      = Yes
  10028.   RadiusDamageAffects   = ENEMIES  
  10029.   AttackRange           = 100
  10030.   FireFX                = FX_TrollClubHit
  10031.   ClipSize              = INFINITE_CLIP_SIZE               ; how many shots in a Clip (0 == infinite)
  10032.   AutoReloadsClip        = No    ;We need a rock explicitly picked up.
  10033.   DelayBetweenShots     = 5000            ; time between shots, msec
  10034.   FiringDuration        = 3000
  10035.   PreAttackDelay        = 1000
  10036.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  10037.   PreAttackFX           = FX_TrollTreeSwing
  10038.   DamageDealtAtSelfPosition = Yes ; A melee based AoE.  Arc radiates from me, not them
  10039.   AcceptableAimDelta    = 180.0  ; Don't ever turn to use
  10040.  
  10041.   DamageNugget                        ; A basic Nugget that just does damage
  10042.     Damage        = 200
  10043.     DamageScalar    = 200% NONE +HERO
  10044.     Radius        = 110.0  ;matches impact nugget so it throws them back and hurts them
  10045.     DamageArc      = 90
  10046.     DamageArcInverted = Yes    ;Affects behind, not in front
  10047.     DamageType    = SIEGE
  10048.     DamageFXType  = CLUBBING
  10049.     DeathType     = NORMAL
  10050.   End
  10051.   
  10052.   MetaImpactNugget                    ; A Nugget that throws things back with force
  10053.     ShockWaveAmount   = 50.0
  10054.     ShockWaveRadius   = 110.0
  10055.     ShockWaveTaperOff = 0.75
  10056.     ShockWaveArc      = 90
  10057.     ShockWaveArcInverted = Yes    ;Affects behind, not in front
  10058.     ShockWaveZMult    = 1.20
  10059.  ;   HeroResist          = 0.90        ; 90% resistance to heroes
  10060.   End
  10061. End
  10062.  
  10063. ;------------------------------------------------------------------------------
  10064. Weapon SummonDragonAppear
  10065.     RadiusDamageAffects   = ENEMIES ALLIES
  10066.  
  10067.     DamageNugget
  10068.         Damage            = SUMMONED_DRAGON_CRUSH_DAMAGE
  10069.         Radius            = 75.0
  10070.         DamageType        = CRUSH
  10071.         DeathType        = CRUSHED
  10072.     End
  10073.  
  10074.     MetaImpactNugget
  10075.         ShockWaveAmount   = 50.0
  10076.         ShockWaveRadius   = 55.0
  10077.         ShockWaveTaperOff = 0.75
  10078.         ShockWaveZMult    = 1.20
  10079.     End
  10080. End
  10081.  
  10082. ;------------------------------------------------------------------------------
  10083. Weapon SummonDragonBlowBack
  10084.     RadiusDamageAffects   = ENEMIES ALLIES
  10085.  
  10086.     DamageNugget
  10087.         Damage            = SUMMONED_DRAGON_CRUSH_DAMAGE
  10088.         Radius            = 75.0
  10089.         DelayTime        = 1800
  10090.         DamageType        = CRUSH
  10091.         DeathType        = CRUSHED
  10092.     End
  10093.  
  10094.     MetaImpactNugget
  10095.         DelayTime          = 1800
  10096.         ShockWaveAmount   = 50.0
  10097.         ShockWaveRadius   = 55.0
  10098.         ShockWaveTaperOff = 0.75
  10099.         ShockWaveZMult    = 1.20
  10100.     End
  10101. End
  10102.  
  10103. ;------------------------------------------------------------------------------
  10104.  
  10105.  
  10106. Weapon WaveCrushEffect     ; BALANCE Wave Crush Weapon
  10107.   LeechRangeWeapon      = No
  10108.   RadiusDamageAffects   = ENEMIES NEUTRALS
  10109.   AttackRange           = 100.0
  10110.   MeleeWeapon           = No
  10111.   DelayBetweenShots     = 250            ; time between shots, msec
  10112.   PreAttackDelay        = 125             ; 300 is mace swing delay time before contact with target.
  10113.   PreAttackType         = PER_SHOT ; Do the delay each time we attack
  10114.   FiringDuration        = 125    ; Duration of the mace swing 
  10115.  
  10116.   DamageNugget                        ; A basic Nugget that just does damage
  10117.     Damage        = 9999.0
  10118.     Radius        = 100.0
  10119.     DelayTime     = 0
  10120.     DamageType    = CRUSH
  10121.     DeathType        = CRUSHED
  10122.   End
  10123.   
  10124.   MetaImpactNugget                    ; A Nugget that throws things back with force
  10125. ;    HeroResist            = .75
  10126.     ShockWaveAmount   = 50.0
  10127.     ShockWaveRadius   = 100.0
  10128.     ShockWaveTaperOff = 1.0
  10129.   End
  10130. End
  10131.  
  10132. ;------------------------------------------------------------------------------
  10133. Weapon MordorBalrogSwordSwipe     ; BALANCE Balrog Weapon
  10134.   LeechRangeWeapon      = Yes
  10135.   AttackRange           = 40.0
  10136.   MeleeWeapon           = No
  10137.   DelayBetweenShots     = 1500            ; time between shots, msec
  10138.   PreAttackDelay        = 1300             ; 300 is mace swing delay time before contact with target.
  10139.   PreAttackType         = PER_SHOT ; Do the delay each time we attack
  10140.   FireFX                = FX_BalrogSwordHit
  10141.   FiringDuration        = 1500    ; Duration of the mace swing 
  10142.   DamageDealtAtSelfPosition = Yes ; A melee based AoE.  Arc radiates from me, not them
  10143.  
  10144.   DamageNugget                        ; A basic Nugget that just does damage
  10145.     Damage        = BALROG_SWORD_SWIPE_DAMAGE_FLAME
  10146.     DamageScalar  = 25% NONE +COMMANDCENTER            
  10147.     Radius        = 70.0
  10148.     DamageType    = FLAME
  10149.     DamageFXType  = BALROG_SWORD
  10150.     DeathType     = BURNED
  10151.     DamageArc      = 90
  10152.   End
  10153.  
  10154.   DamageNugget                        ; A basic Nugget that just does damage
  10155.     Damage        = BALROG_SWORD_SWIPE_DAMAGE_NORMAL
  10156.     DamageScalar  = 20% NONE +COMMANDCENTER        
  10157.     Radius        = 70.0
  10158.     DamageType    = SIEGE
  10159.     DamageFXType  = BALROG_SWORD
  10160.     DeathType     = NORMAL
  10161.     DamageArc      = 90
  10162.   End
  10163.   
  10164.     FireLogicNugget                        ; Lights flammables on fire
  10165.         LogicType    = INCREASE_BURN_RATE
  10166.         Radius        = 70.0
  10167.         Damage        = BALROG_SWORD_SWIPE_DAMAGE_FLAME
  10168.     End
  10169.  
  10170.   MetaImpactNugget                    ; A Nugget that throws things back with force
  10171.     KillObjectFilter  = INSTANT_DEATH_ON_METAIMPACT_OBJFILTER
  10172.     ShockWaveAmount   = 140.0
  10173.     ShockWaveRadius   = 70.0
  10174.     ShockWaveTaperOff = 0.75
  10175.     ShockWaveArc      = 90
  10176.     ShockWaveZMult    = 0.600
  10177.   End
  10178. End
  10179.  
  10180. ;------------------------------------------------------------------------------
  10181. Weapon MordorBalrogSwordChop     ; BALANCE Balrog Weapon
  10182.   LeechRangeWeapon      = Yes        
  10183.   AttackRange           = 40.0
  10184.   MeleeWeapon           = Yes
  10185.   DelayBetweenShots     = 2000            ; time between shots, msec
  10186.   PreAttackDelay        = 1400
  10187.   PreAttackType         = PER_SHOT ; Do the delay each time we attack
  10188.   FireFX                = FX_BalrogSwordHit
  10189.   FiringDuration        = 1200    ; Duration of the mace swing 
  10190.  
  10191.   DamageNugget                        ; A basic Nugget that just does damage
  10192.     Damage        = BALROG_SWORD_CHOP_DAMAGE_FLAME    
  10193.     DamageScalar  = 25% NONE +COMMANDCENTER        
  10194.     Radius        = 20.0
  10195.     DamageType    = FLAME
  10196.     DamageFXType  = BALROG_SWORD
  10197.     DeathType     = BURNED
  10198.   End
  10199.  
  10200.   DamageNugget                        ; A basic Nugget that just does damage
  10201.     Damage        = BALROG_SWORD_CHOP_DAMAGE_STRUCTURAL    
  10202.     DamageScalar  = 20% NONE +COMMANDCENTER    
  10203.     Radius        = 20.0
  10204.     DamageType    = SIEGE
  10205.     DamageFXType  = BALROG_SWORD
  10206.     DeathType     = NORMAL
  10207.     DamageScalar  = 25000% NONE +MinisGateDoor
  10208.   End
  10209.   
  10210.       FireLogicNugget                        ; Lights flammables on fire
  10211.         LogicType    = INCREASE_BURN_RATE
  10212.         Radius        = 20.0
  10213.         Damage        = BALROG_SWORD_CHOP_DAMAGE_FLAME
  10214.     End
  10215. End
  10216.  
  10217. ;------------------------------------------------------------------------------
  10218. Weapon MordorBalrogWhip     ; BALANCE Orc Warrior Weapon
  10219.     LeechRangeWeapon            = Yes
  10220.     AttackRange                = 240.0
  10221.     MeleeWeapon                = No
  10222.     DelayBetweenShots            = 10000                    ; time between shots, msec
  10223.     PreAttackDelay            = 1400 
  10224.     PreAttackType            = PER_SHOT                ; Do the delay each time we attack
  10225.     ;FireFX                = FX_BalrogSpecialPowerRoar    ; this plays when Balrog starts his whip, not when right click-trageting
  10226.     FiringDuration            = 1600 
  10227.     
  10228.     ForceDisplayPercentReady    = Yes                 ; As opposed to displaying clip reload time
  10229.  
  10230.  
  10231.     DamageNugget                        ; A basic Nugget that just does damage
  10232.         Damage        = BALROG_WHIP_DAMAGE_FLAME
  10233.         DamageScalar  = 25% NONE +COMMANDCENTER
  10234.         Radius        = 25.0
  10235.         DelayTime     = 0
  10236.         DamageType    = FLAME
  10237.         DamageFXType  = BALROG_WHIP
  10238.         DeathType     = NORMAL
  10239.     End
  10240.  
  10241.     DamageNugget                        ; A basic Nugget that just does damage
  10242.         Damage        = BALROG_WHIP_DAMAGE
  10243.         DamageScalar  = 20% NONE +COMMANDCENTER
  10244.         Radius        = 25.0
  10245.         DelayTime     = 0
  10246.         DamageType    = SIEGE 
  10247.         DamageFXType  = BALROG_WHIP
  10248.         DeathType     = NORMAL
  10249.     End
  10250.     MetaImpactNugget                    ; A Nugget that throws things back with force
  10251. ;        HeroResist            = .25
  10252.         ShockWaveAmount        = 50.0
  10253.         ShockWaveRadius        = 25.0
  10254.         ShockWaveTaperOff    = 1.0
  10255.         ShockWaveZMult        = 1.20
  10256.         InvertShockWave        = Yes
  10257.     End
  10258.     
  10259.       FireLogicNugget                        ; Lights flammables on fire
  10260.         LogicType    = INCREASE_BURN_RATE
  10261.         Radius        = 25.0
  10262.         Damage        = BALROG_WHIP_DAMAGE_FLAME
  10263.     End
  10264. End
  10265.  
  10266. ;------------------------------------------------------------------------------
  10267. Weapon MordorBalrogBreath
  10268.   IdleAfterFiringDelay = 0
  10269.   AttackRange = 60.0
  10270.   WeaponSpeed = 401         ; dist/sec 
  10271.   RadiusDamageAffects = ALLIES ENEMIES NOT_SIMILAR
  10272.   DelayBetweenShots = 5000               ; time between shots, msec
  10273.   PreAttackDelay        = 2600
  10274.   PreAttackType         = PER_ATTACK ; Do the delay each time we attack a new target
  10275.   PreAttackFX           = FX_GandalfPreAttackBlast
  10276.   FireFX                = NONE ;FX_BalrogBreath ---- commented out for E3, now controled by particle spawning
  10277.   FiringDuration      = 1400
  10278.  DamageDealtAtSelfPosition = Yes 
  10279.  
  10280.     DamageNugget                        ; A basic Nugget that just does damage
  10281.         Damage            = BALROG_BREATH_DAMAGE
  10282.         Radius            = BALROG_BREATH_RADIUS
  10283.         DamageScalar  = 25% NONE +COMMANDCENTER
  10284.         DelayTime        = 1000
  10285.         DamageType        = FLAME
  10286.         DamageFXType        = FLAME
  10287.         DeathType        = BURNED
  10288.         DamageArc        = 90
  10289.         DamageMaxHeight = 50 ;We won't hurt something far above us.  Birds fly at around 100
  10290.         DamageSpeed        = 400
  10291.     End
  10292.  
  10293.     DamageNugget                        ; A basic Nugget that just does damage
  10294.         Damage            = BALROG_BREATH_DAMAGE
  10295.         Radius            = BALROG_BREATH_RADIUS
  10296.         DamageScalar  = 20% NONE +COMMANDCENTER
  10297.         DelayTime        = 1000
  10298.         DamageType        = MAGIC
  10299.         DamageArc        = 90
  10300.         DamageMaxHeight = 50 ;We won't hurt something far above us.  Birds fly at around 100
  10301.         DamageSpeed        = 400
  10302.             DamageScalar  = 25000% NONE +MinisGateDoor
  10303.     End
  10304.  
  10305.  ;     FireLogicNugget                        ; Increases fuel where it hits
  10306. ;        LogicType    = INCREASE_FUEL
  10307. ;        Radius        = 100.0
  10308. ;        Damage        = BALROG_BREATH_DAMAGE
  10309. ;        MinMaxBurnRate    = 10
  10310. ;        MaxResistance    = 5
  10311. ;    End
  10312.  
  10313.       FireLogicNugget                        ; Lights flammables on fire
  10314.         LogicType    = INCREASE_BURN_RATE
  10315.         Radius        = 50.0
  10316.         Damage        = BALROG_BREATH_DAMAGE
  10317.     End
  10318.  
  10319. End
  10320.  
  10321. ;------------------------------------------------------------------------------
  10322. Weapon DrogothFireball
  10323.     LeechRangeWeapon            = Yes
  10324.     AttackRange               = DROGOTH_FIREBALL_RANGE        ; set this in his special power
  10325.     WeaponSpeed               = 150         ; dist/sec 
  10326.     MinWeaponSpeed            = 100
  10327.     MaxWeaponSpeed            = 200      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  10328.     ScaleWeaponSpeed          = Yes      ; Used for lob weapons, scales speed proportional to range
  10329.     HitPercentage             = 100      ;When this weapon is used it will hit exactly 100% of the time.
  10330.     ScatterRadius             = 0.0     ;When this weapon misses it can randomly miss by as much as this distance.
  10331.     DelayBetweenShots         = 5000     ; time between shots, msec
  10332.     PreAttackDelay            = 1     ; 1467 is the prep time for archer.
  10333.     PreAttackRandomAmount     = 0      ; amount of additional preattack variance for archer type attacks only  
  10334.     PreAttackType             = PER_SHOT ; Do the delay each time we attack a new target
  10335.     FiringDuration            = 1     ; Duration of the archer firing shot is 500ms.
  10336.     IsAimingWeapon            = Yes
  10337.     AcceptableAimDelta        = 15
  10338.     AntiAirborneVehicle       = Yes
  10339.     AntiAirborneMonster        = Yes
  10340.     FireFX                    = FX_DrogothFireball_01
  10341.     DamageType                = FLAME
  10342.  
  10343.     ProjectileNugget          ; Default arrow
  10344.         ProjectileTemplateName  = DrogothFireballProjectile
  10345.         WarheadTemplateName     = DrogothFireballWarhead
  10346.     End
  10347. End
  10348.  
  10349. ;----------------------------
  10350. Weapon DrogothFireballWarhead
  10351.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS
  10352.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR MINES ; ALLIES
  10353.     
  10354.     FireLogicNugget ;@@@ fire logic testing
  10355.         LogicType    =    INCREASE_BURN_RATE
  10356.         Radius        =    40
  10357.         Damage        =    10
  10358.     End    
  10359.  
  10360.     DamageNugget                        ; A basic Nugget that just does damage
  10361.          Damage        = DROGOTH_FIREBALL_DAMAGE
  10362.          Radius        = DROGOTH_FIREBALL_RADIUS
  10363.          DelayTime     = 0
  10364.          DamageType    = FLAME
  10365.          DamageFXType  = BIG_ROCK
  10366.          DeathType     = BURNED
  10367.          DamageScalar  =  150% NONE +MordorFellBeast +MordorWitchKingOnFellBeast +GondorGwaihir
  10368.          DamageScalar  = 5000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  10369.     End
  10370.  
  10371.     DamageNugget                        ; to make the fireball more mighty against enemy heroes
  10372.         Damage        = 50    
  10373.         Radius        = DROGOTH_FIREBALL_RADIUS
  10374.         DelayTime     = 0
  10375.         DamageType    = MAGIC
  10376.         DamageFXType  = BIG_ROCK
  10377.         DeathType     = BURNED
  10378.         DamageScalar  = 500% NONE +HERO -MordorFellBeast -MordorWitchKingOnFellBeast -GondorGwaihir
  10379.     End
  10380.  
  10381.     DamageNugget                        ; A basic Nugget that just does damage
  10382.         Damage        = DROGOTH_FIREBALL_DAMAGE_SIEGE    
  10383.         Radius        = DROGOTH_FIREBALL_RADIUS
  10384.         DelayTime     = 0
  10385.         DamageType    = MAGIC
  10386.         DamageFXType  = BIG_ROCK
  10387.         DeathType     = EXPLODED
  10388.         DamageScalar  = 300% NONE +MordorFellBeast +MordorWitchKingOnFellBeast +GondorGwaihir
  10389.     End
  10390.  
  10391.     MetaImpactNugget                         ; A Nugget that throws things back with force
  10392.         ShockWaveAmount   = 80.00
  10393.         ShockWaveRadius   = DROGOTH_FIREBALL_RADIUS
  10394.         ShockWaveTaperOff =  0.75
  10395.         ShockWaveZMult    =  1.20
  10396.     End
  10397. End
  10398.  
  10399. ;------------------------------------------------------------------------------
  10400. Weapon DrogothIncinerate
  10401.     IdleAfterFiringDelay        = 0
  10402.     AttackRange                    = DROGOTH_INCINERATE_RANGE
  10403.     WeaponSpeed                    = 401                            ; dist/sec 
  10404.     RadiusDamageAffects            = ALLIES ENEMIES NOT_SIMILAR
  10405.     DelayBetweenShots            = 5000                            ; time between shots, msec
  10406.     PreAttackDelay                = 2600
  10407.     PreAttackType                = PER_ATTACK                    ; Do the delay each time we attack a new target
  10408.     PreAttackFX                    = FX_DrogothPreAttackBlast        ;FX_GandalfPreAttackBlast    ;is this even getting triggered?
  10409.     ;FireFX                        = FX_DrogothIncinerate            ;too much delay
  10410.     FiringDuration                = 1400
  10411. ;    DamageDealtAtSelfPosition    = Yes
  10412.  
  10413.     DamageNugget                                                ; A basic Nugget that just does damage
  10414.         Damage            = DROGOTH_INCINERATE_DAMAGE
  10415.         Radius            = DROGOTH_INCINERATE_RADIUS
  10416.         DelayTime        = 500
  10417.         DamageType        = FLAME
  10418.         DamageFXType    = FLAME
  10419.         DeathType        = BURNED
  10420.         DamageArc        = DROGOTH_INCINERATE_ARC
  10421.         DamageMaxHeight = 50                                    ; We won't hurt something far above us.  Birds fly at around 100
  10422.         DamageSpeed        = 400
  10423.     End
  10424.     
  10425.     DamageNugget                                                ; A basic Nugget that just does damage
  10426.         Damage            = DROGOTH_INCINERATE_CENTRE_DAMAGE
  10427.         Radius            = DROGOTH_INCINERATE_CENTRE_RADIUS
  10428.         DelayTime        = 250
  10429.         DamageType        = FLAME
  10430.         DamageFXType    = FLAME
  10431.         DeathType        = BURNED
  10432.         DamageMaxHeight = 50                                    ; We won't hurt something far above us.  Birds fly at around 100
  10433.         DamageSpeed        = 400
  10434.     End
  10435.  
  10436. End
  10437.  
  10438. ;------------------------------------------------------------------------------
  10439. Weapon DrogothWingBlast
  10440.     IdleAfterFiringDelay        = 0
  10441.     AttackRange                    = 60.0
  10442.     WeaponSpeed                    = 100         ; dist/sec 
  10443.     RadiusDamageAffects            = ALLIES ENEMIES NOT_SIMILAR
  10444.     DelayBetweenShots            = 1000               ; time between shots, msec
  10445.     PreAttackDelay                = 0
  10446.     PreAttackType                = PER_ATTACK ; Do the delay each time we attack a new target
  10447.     PreAttackFX                    = FX_GandalfPreAttackBlast
  10448.     ;FireFX                        =
  10449.     FiringDuration                = 500
  10450.     DamageDealtAtSelfPosition    = Yes 
  10451.  
  10452.     DamageNugget                        ; A basic Nugget that just does damage
  10453.         Damage            = DROGOTH_WING_FLAP_DAMAGE_SMALL
  10454.         Radius            = DROGOTH_WING_FLAP_RADIUS_SMALL
  10455.         DelayTime        = 0
  10456.         DamageType        = CRUSH
  10457.         DamageFXType    = FLAME
  10458.         DeathType        = NORMAL
  10459.         AcceptDamageAdd    = No            ; No extra damage when going up levels, otherwise we'll just kill the victims outright.
  10460.         DamageScalar    = 0% ALL ALLIES    ; only meta impact for allied units
  10461.     End
  10462.  
  10463.     DamageNugget                        ; A basic Nugget that just does damage
  10464.         Damage            = DROGOTH_WING_FLAP_DAMAGE_LARGE
  10465.         Radius            = DROGOTH_WING_FLAP_RADIUS_LARGE
  10466.         DelayTime        = 0
  10467.         DamageType        = CRUSH
  10468.         DamageFXType    = FLAME
  10469.         DeathType        = NORMAL
  10470.         AcceptDamageAdd    = No            ; No extra damage when going up levels, otherwise we'll just kill the victims outright.
  10471.         DamageScalar    = 0% ALL ALLIES    ; only meta impact for allied units
  10472.     End
  10473.  
  10474.     ; Fan the flames...
  10475.     FireLogicNugget
  10476.         LogicType        = INCREASE_FUEL_ON_EXISTING_FIRE
  10477.         Radius            = DROGOTH_WING_FLAP_RADIUS_SMALL
  10478.         Damage            = 40
  10479.         MinMaxBurnRate    = 20
  10480.         MaxResistance    = 5
  10481.     End
  10482.     FireLogicNugget
  10483.         LogicType        = INCREASE_BURN_RATE_ON_EXISTING_FIRE
  10484.         Radius            = DROGOTH_WING_FLAP_DAMAGE_LARGE
  10485.         Damage            = 20
  10486.     End
  10487.  
  10488.     MetaImpactNugget                    ; A Nugget that throws things back with force
  10489. ;        HeroResist            = .75
  10490.         ShockWaveAmount        = DROGOTH_WING_FLAP_SHOCK_AMOUNT_SMALL
  10491.         ShockWaveRadius        = DROGOTH_WING_FLAP_SHOCK_RADIUS_SMALL
  10492.         ShockWaveTaperOff    = 0.5
  10493.         ShockWaveZMult        = 1.5
  10494.     End
  10495.  
  10496.     MetaImpactNugget                    ; A Nugget that throws things back with force
  10497. ;        HeroResist            = .75
  10498.         ShockWaveAmount        = DROGOTH_WING_FLAP_SHOCK_AMOUNT_LARGE
  10499.         
  10500.         ShockWaveRadius        = DROGOTH_WING_FLAP_SHOCK_RADIUS_LARGE
  10501.         ShockWaveTaperOff    = 0.5
  10502.         ShockWaveZMult        = 1.2
  10503.     End
  10504.   
  10505. End
  10506.  
  10507. ;------------------------------------------------------------------------------
  10508. Weapon DrogothFireflight
  10509.     LeechRangeWeapon            = Yes
  10510.     AttackRange               = DROGOTH_FIREFLIGHT_RANGE        ; set this in his special power too
  10511.     WeaponSpeed               = 150         ; dist/sec 
  10512.     MinWeaponSpeed            = 100
  10513.     MaxWeaponSpeed            = 200            ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  10514.     ScaleWeaponSpeed          = Yes            ; Used for lob weapons, scales speed proportional to range
  10515.     HitPercentage             = 100            ;When this weapon is used it will hit exactly 100% of the time.
  10516.     ScatterRadius             = 0.0            ;When this weapon misses it can randomly miss by as much as this distance.
  10517.     DelayBetweenShots         = 5000        ; time between shots, msec
  10518.     PreAttackDelay            = 2600            ; 1467 is the prep time for archer.
  10519.     PreAttackRandomAmount     = 0            ; amount of additional preattack variance for archer type attacks only  
  10520.     PreAttackType             = PER_SHOT    ; Do the delay each time we attack a new target
  10521.     FiringDuration            = 1            ; Duration of the archer firing shot is 500ms.
  10522.     IsAimingWeapon            = Yes
  10523.     AcceptableAimDelta        = 15
  10524.     AntiAirborneVehicle       = Yes
  10525.     AntiAirborneMonster        = Yes
  10526.     FireFX                = FX_DrogothFireFlight
  10527.     DamageType                = FLAME
  10528.  
  10529.     ProjectileNugget          ; Default arrow
  10530.         ProjectileTemplateName  = DrogothFireflightProjectile
  10531.         WarheadTemplateName     = DrogothFireflightWarhead
  10532.     End
  10533. End
  10534.  
  10535. ;------------------------------------------------------------------------------
  10536. Weapon DrogothFireflightWarhead
  10537.     ProjectileCollidesWith    = ENEMIES NEUTRAL STRUCTURES WALLS
  10538.     RadiusDamageAffects        = ENEMIES NEUTRALS NOT_SIMILAR MINES
  10539.     
  10540.     DamageNugget                        ; A basic Nugget that just does damage
  10541.          Damage        = DROGOTH_FIREFLIGHT_DAMAGE
  10542.          Radius        = DROGOTH_FIREFLIGHT_RADIUS
  10543.          DelayTime     = 0
  10544.          DamageType    = FLAME
  10545.          DamageFXType  = BIG_ROCK
  10546.          DeathType     = BURNED
  10547.     End
  10548.  
  10549.     DamageNugget                        ; A basic Nugget that just does damage
  10550.          Damage        = DROGOTH_FIREFLIGHT_DAMAGE
  10551.          Radius        = DROGOTH_FIREFLIGHT_RADIUS
  10552.          DelayTime     = 0
  10553.          DamageType    = HERO
  10554.          DamageFXType  = BIG_ROCK
  10555.          DeathType     = BURNED
  10556.     End
  10557.  
  10558.  
  10559.     FireLogicNugget
  10560.         LogicType        = INCREASE_FUEL
  10561.         Radius            = DROGOTH_FIREFLIGHT_RADIUS
  10562.         DelayTime        = 0
  10563.         ;Damage            = 100
  10564.         MinMaxBurnRate    = 10
  10565.         MaxResistance    = 5
  10566.     End
  10567.     FireLogicNugget
  10568.         LogicType        = INCREASE_BURN_RATE
  10569.         Radius            = DROGOTH_FIREFLIGHT_RADIUS
  10570.         DelayTime        = 0
  10571.         Damage            = 10
  10572.     End    
  10573.  
  10574.  
  10575.     MetaImpactNugget                         ; A Nugget that throws things back with force
  10576.         ShockWaveAmount   = 80.00
  10577.         ShockWaveRadius   = DROGOTH_FIREFLIGHT_RADIUS
  10578.         ShockWaveTaperOff =  0.75
  10579.         ShockWaveZMult    =  1.20
  10580.     End
  10581.  
  10582. End
  10583.  
  10584. ;------------------------------------------------------------------------------
  10585. Weapon MordorBalrogLeap 
  10586.   IdleAfterFiringDelay    = 0
  10587.   AttackRange           = 840.0
  10588.   MinimumAttackRange    = 120.0
  10589.   WeaponSpeed           = 160.0        ; dist/sec (huge value == effectively instant)
  10590.   ProjectileSelf        = Yes ; We don't make the projectile throw ourself
  10591.   ClipSize              = 1               ; how many shots in a Clip (0 == infinite)
  10592.   ClipReloadTime        = 2200   ;1467 min for animation           ; how long to reload a Clip, msec
  10593.   AutoReloadsClip        = Yes    
  10594.   PreAttackDelay        = 600
  10595.   FiringDuration        = 1500            
  10596.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  10597.   HitPercentage       = 0 ; Never auto hits, always shoots at a ground position
  10598.   ScatterRadius       = 0.0     ;When this weapon misses it can randomly miss by as much as this distance.
  10599.  
  10600.   ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  10601.     WarheadTemplateName = MordorBalrogLeapWarhead
  10602.   End
  10603. End
  10604.  
  10605. ;-----------------------------------
  10606. Weapon MordorBalrogLeapWarhead
  10607.   ProjectileCollidesWith = ENEMIES
  10608. ;  FireFX = FX_BalrogLand
  10609.   DamageNugget                        ; A basic Nugget that just does damage
  10610.     Damage        = BALROG_JUMP_DAMAGE
  10611.     Radius        = 40.0
  10612.     DelayTime     = 1    ; Moves damage from when tippy toes hit to a visually better spot
  10613.     DamageType            = CRUSH
  10614.     DamageFXType          = SMALL_ROCK
  10615.     DeathType             = NORMAL
  10616.   End
  10617.   MetaImpactNugget                    ; A Nugget that throws things back with force
  10618. ;    HeroResist            = .75
  10619.     ShockWaveAmount   = 50.0
  10620.     ShockWaveRadius   = 40.0
  10621.     ShockWaveTaperOff = 0.5
  10622.     ShockWaveZMult    = 1.20
  10623.     DelayTime     = 1    ; Moves damage from when tippy toes hit to a visually better spot
  10624.   End
  10625.   FireLogicNugget
  10626.     LogicType    = INCREASE_BURN_RATE
  10627.     Radius        = 40.0
  10628.     Damage        = BALROG_JUMP_DAMAGE
  10629.   End
  10630. End
  10631.  
  10632. ;------------------------------------------------------------------------------
  10633. Weapon MordorLance     ; BALANCE Haradrim Lance Weapon
  10634.   ; IdleAfterFiringDelay    = 1110 ; no do not do this.  This means go directly to idle after one attack. like troll rock throw, when he only has 1 rock to throw.
  10635.   LeechRangeWeapon      = Yes
  10636.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  10637.   MeleeWeapon           = Yes
  10638.   DelayBetweenShots     = 2000            ; time between shots, msec
  10639.   PreAttackDelay        = 867             ; 867 is lance pierce delay time before contact with target.
  10640.   PreAttackType         = PER_SHOT ; Do the delay each time we attack
  10641.   FireFX                = FX_GondorSwordHit
  10642.   FireFlankFX        = FX_Flanking
  10643.   FiringDuration        = 1110    ; Duration of the lance pierce attack
  10644.  
  10645.   DamageNugget                        ; A basic Nugget that just does damage
  10646.     Damage        = MORDOR_HARADRIM_LANCER_MELEE_DAMAGE
  10647.     Radius        = 0.0
  10648.     DelayTime     = 0
  10649.     DamageType    = PIERCE
  10650.     DamageFXType  = SWORD_SLASH
  10651.     DeathType     = NORMAL
  10652.     FlankingBonus = 50%
  10653.   End
  10654. End
  10655.  
  10656. ;------------------------------------------------------------------------------
  10657. Weapon MordorLanceThrown       ; BALANCE Haradrim Lance as Thrown Weapon
  10658.   AttackRange             = MORDOR_HARADRIM_LANCER_RANGE
  10659.   LeechRangeWeapon      = Yes
  10660. ;  MinimumAttackRange    = MORDOR_HARADRIM_LANCER_SWITCH_RANGE_HORDE
  10661.   WeaponSpeed             = 261         ; dist/sec 
  10662.   MinWeaponSpeed         = 61
  10663.   MaxWeaponSpeed         = 361      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  10664.   FireFX                 = FX_HaradrimSpearThrow
  10665.   ScaleWeaponSpeed         = Yes ; Used for lob weapons, scales speed proportional to range
  10666.   AcceptableAimDelta    = 15.0 
  10667.   HitPercentage           = 100
  10668.   ScatterRadius         = 20.0         ;When this weapon misses it can randomly miss by as much as this distance.
  10669.  ; DelayBetweenShots     = MORDOR_HARADRIM_LANCER_DELAYBETWEENSHOTS        ; time between shots, msec
  10670.   PreAttackDelay        = MORDOR_HARADRIM_LANCER_PREATTACKDELAY    ; 1500 is the prep time for archer.
  10671.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  10672.   FiringDuration          = MORDOR_HARADRIM_LANCER_FIRINGDURATION    ; Duration of the archer firing shot is 1000ms.
  10673.   CanBeDodged                = Yes
  10674.   
  10675.   RequireFollowThru            = Yes
  10676.   IsAimingWeapon            = Yes
  10677.  
  10678.  
  10679.   ClipSize                     = 1
  10680.   AutoReloadsClip             = Yes
  10681.   ClipReloadTime             = Min:2800 Max:2800
  10682.  
  10683.   ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  10684.     ProjectileTemplateName = MordorLanceProjectile
  10685.     WarheadTemplateName = MordorLanceThrownWarhead
  10686.   End
  10687. End
  10688.  
  10689.  
  10690. ;-----------------------------------
  10691. Weapon WhirlwindWindWeapon
  10692.     RadiusDamageAffects = ENEMIES NEUTRALS 
  10693.   
  10694.       DelayBetweenShots            = 0            ; time between shots, msec
  10695.     ClipSize                       = 0            ;4    ; how many shots in a Clip (0 == infinite)
  10696.   
  10697.     //////////FireFX                = FX_GimliLeap // CHANGE
  10698.     DamageNugget                        ; A basic Nugget that just does damage
  10699.         Damage        = WHIRLWIND_DAMAGE_INNER
  10700.         Radius        = 20.0
  10701.         DelayTime     = 0
  10702.         DamageType            = HERO
  10703.         DamageFXType          = TORNADO    ;GIMLI_LEAP
  10704.         DeathType             = NORMAL
  10705.         DamageScalar  = 35% NONE +STRUCTURE
  10706.         CylinderAOE   = Yes
  10707.     End
  10708.     DamageNugget                        ; A basic Nugget that just does damage
  10709.         Damage        = WHIRLWIND_DAMAGE_OUTER
  10710.         Radius        = 50.0
  10711.         DelayTime     = 0
  10712.         DamageType            = HERO
  10713.         DamageFXType          = TORNADO    ;GIMLI_LEAP
  10714.         DeathType             = NORMAL
  10715.         DamageScalar  = 35% NONE +STRUCTURE
  10716.         CylinderAOE   = Yes
  10717.     End
  10718.  
  10719.     MetaImpactNugget                    ; A Nugget that throws things back with force
  10720.         KillObjectFilter  = INSTANT_DEATH_ON_METAIMPACT_OBJFILTER
  10721.         ShockWaveAmount   = WHIRLWIND_METASHOCKWAVE_AMOUNT
  10722.         ShockWaveRadius   = WHIRLWIND_METASHOCKWAVE_RADIUS
  10723.         ShockWaveTaperOff = 1.0 
  10724.         ShockWaveZMult    = 1.6  
  10725.         InvertShockWave   = Yes        // makes it "suck"
  10726.         
  10727.         CyclonicFactor      = 0.66
  10728.     End
  10729.  
  10730. End
  10731.  
  10732. ;-----------------------------------
  10733. Weapon TornadoWindWeapon
  10734.     RadiusDamageAffects = ENEMIES NEUTRALS 
  10735.   
  10736.       DelayBetweenShots            = 0            ; time between shots, msec
  10737.     ClipSize                       = 0            ;4    ; how many shots in a Clip (0 == infinite)
  10738.   
  10739.     //////////FireFX                = FX_GimliLeap // CHANGE
  10740.     DamageNugget                        ; A basic Nugget that just does damage
  10741.         Damage        = TORNADO_DAMAGE_INNER
  10742.         Radius        = 20.0
  10743.         DelayTime     = 0
  10744.         DamageType            = HERO
  10745.         DamageFXType          = TORNADO    ;GIMLI_LEAP
  10746.         DeathType             = NORMAL
  10747.         DamageScalar  = 35% NONE +STRUCTURE
  10748.         CylinderAOE   = Yes
  10749.     End
  10750.     DamageNugget                        ; A basic Nugget that just does damage
  10751.         Damage        = TORNADO_DAMAGE_OUTER
  10752.         Radius        = 50.0
  10753.         DelayTime     = 0
  10754.         DamageType            = HERO
  10755.         DamageFXType          = TORNADO    ;GIMLI_LEAP
  10756.         DeathType             = NORMAL
  10757.         DamageScalar  = 35% NONE +STRUCTURE
  10758.         CylinderAOE   = Yes
  10759.     End
  10760.  
  10761.     MetaImpactNugget                    ; A Nugget that throws things back with force
  10762.         KillObjectFilter  = INSTANT_DEATH_ON_METAIMPACT_OBJFILTER
  10763.         ShockWaveAmount   = TORNADO_METASHOCKWAVE_AMOUNT
  10764.         ShockWaveRadius   = TORNADO_METASHOCKWAVE_RADIUS
  10765.         ShockWaveTaperOff = 1.0 
  10766.         ShockWaveZMult    = 1.6  
  10767.         InvertShockWave   = Yes        // makes it "suck"
  10768.         
  10769.         CyclonicFactor      = 0.66
  10770.     End
  10771.  
  10772. End
  10773.  
  10774. ;-----------------------------------
  10775. Weapon WhirlpoolWeapon
  10776.     RadiusDamageAffects = ENEMIES NEUTRALS ALLIES
  10777.       DelayBetweenShots    = 0
  10778.     ClipSize            = INFINITE_CLIP_SIZE
  10779.     ;FireFX                = FX_GoodShipWhirlpoolAttack                    ; fires multiple times
  10780.  
  10781.     DamageNugget                                                        ; A basic Nugget that just does damage
  10782.         Damage        = GOOD_FIRE_SHIP_WHIRLPOOL_DAMAGE_AMOUNT_01
  10783.         Radius        = GOOD_FIRE_SHIP_WHIRLPOOL_DAMAGE_RADIUS_01
  10784.         DelayTime    = 300    
  10785.         DamageType    = FORCE
  10786.         DeathType    = NORMAL
  10787.     End
  10788.     DamageNugget
  10789.         Damage        = GOOD_FIRE_SHIP_WHIRLPOOL_DAMAGE_AMOUNT_02
  10790.         Radius        = GOOD_FIRE_SHIP_WHIRLPOOL_DAMAGE_RADIUS_02
  10791.         DelayTime    = 300
  10792.         DamageType    = FORCE
  10793.         DeathType    = NORMAL
  10794.     End
  10795.  
  10796.     MetaImpactNugget                                                    ; A Nugget that sucks things in with force
  10797.         ShockWaveAmount        = 99.0
  10798.         ShockWaveRadius        = GOOD_FIRE_SHIP_WHIRLPOOL_RADIUS
  10799.         ShockWaveTaperOff    = 1.0 
  10800.         ShockWaveZMult        = 0.0
  10801.         InvertShockWave        = Yes                                        // makes it "suck"
  10802.         CyclonicFactor        = .66
  10803.     End
  10804.  
  10805. End
  10806.  
  10807.  
  10808. ;-----------------------------------
  10809. Weapon MordorLanceThrownWarhead
  10810.   HitStoredTarget = Yes    ; Always hits initial target.
  10811.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  10812.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  10813.   DamageNugget                        ; A basic Nugget that just does damage
  10814.     Damage        = MORDOR_HARADRIM_LANCER_DAMAGE
  10815.     Radius        = 0.0
  10816.     DelayTime     = 0
  10817.     DamageType    = PIERCE
  10818.     DamageFXType  = GOOD_ARROW_PIERCE
  10819.     DeathType     = NORMAL
  10820.   End
  10821. End
  10822.  
  10823. ;-----------------------------------
  10824. Weapon MordorEasterlingPike     ; BALANCE Mordor Easterling Pike
  10825.   LeechRangeWeapon      = Yes
  10826.   AttackRange           = 30
  10827.   MeleeWeapon           = Yes ; Melee means to square off next to opponent.  This is more of a ranged weapon with no projectile
  10828.   PreAttackDelay        = MORDOR_SOLDIERRHUN_PREATTACKDELAY             ; 867 is lance pierce delay time before contact with target.
  10829.   FiringDuration        = MORDOR_SOLDIERRHUN_FIRINGDURATION    ; Duration of the lance pierce attack
  10830.   DelayBetweenShots     = MORDOR_SOLDIERRHUN_DELAYBETWEENSHOTS            ; time between shots, msec
  10831.   PreAttackType         = PER_SHOT ; Do the delay each time we attack
  10832.   FireFX                = FX_GondorSwordHit
  10833.   
  10834.   AcceptableAimDelta    = 15.0 
  10835.   RequireFollowThru        = Yes
  10836.  
  10837.   DamageNugget                        ; A basic Nugget that just does damage
  10838.     Damage                    = MORDOR_SOLDIERRHUN_DAMAGE
  10839.     Radius                    = 0.0
  10840.     DelayTime                 = 0
  10841.     DamageType                = SPECIALIST
  10842.     DamageFXType              = SWORD_SLASH
  10843.     DeathType                 = NORMAL
  10844.     ForbiddenUpgradeNames    = Upgrade_MordorForgedBlades
  10845.   End
  10846.  
  10847.   DamageNugget                        ; A basic Nugget that just does damage
  10848.     Damage                    = MORDOR_SOLDIERRHUN_DAMAGE_UPGRADED
  10849.     Radius                    = 0.0
  10850.     DelayTime                 = 0
  10851.     DamageType                = SPECIALIST
  10852.     DamageFXType              = SWORD_SLASH
  10853.     DeathType                 = NORMAL
  10854.     RequiredUpgradeNames    = Upgrade_MordorForgedBlades
  10855.   End
  10856. End
  10857.  
  10858. ;------------------------------------------------------------------------------
  10859. ;Weapon MordorEasterlingButt     ; BALANCE Mordor Easterling Butt
  10860. ;  LeechRangeWeapon      = Yes
  10861. ;  AttackRange           = 10.0
  10862. ;  MeleeWeapon           = Yes
  10863. ;  DelayBetweenShots     = 2000            ; time between shots, msec
  10864. ;  FireFX                = FX_GondorSwordHit
  10865. ;  FiringDuration        = 2000
  10866. ;
  10867. ;  DamageNugget                        ; A basic Nugget that just does damage
  10868. ;    Damage        = 40
  10869. ;    Radius        = 1.0
  10870. ;    DelayTime     = 0
  10871. ;    DamageType    = SPECIALIST
  10872. ;    DeathType     = NORMAL
  10873. ;  End
  10874. ;End
  10875.  
  10876. ;------------------------------------------------------------------------------
  10877. Weapon MenFortressBoilingOilWeapon 
  10878.     IdleAfterFiringDelay = 0
  10879.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  10880.     DelayBetweenShots = 5000               ; time between shots, msec
  10881.     PreAttackDelay        = 2600
  10882.     PreAttackType         = PER_ATTACK ; Do the delay each time we attack a new target
  10883.     ;PreAttackFX           = FX_GandalfPreAttackBlast
  10884.     ;FireFX                = FX_GandalfBlast
  10885.     DamageNugget                        ; A basic Nugget that just does damage
  10886.         Damage            = 200
  10887.         Radius            = 250.0
  10888.         DamageType    = FLAME
  10889.         DamageFXType  = FLAME
  10890.         DeathType     = BURNED
  10891.     End
  10892. End
  10893.  
  10894. ;------------------------------------------------------------------------------
  10895. Weapon MordorFortressMagmaCauldronsWeapon
  10896.     IdleAfterFiringDelay    = 0
  10897.     RadiusDamageAffects        = ENEMIES NOT_SIMILAR
  10898.     DelayBetweenShots        = 5000                    ;// time between shots, msec
  10899.     PreAttackDelay            = 600
  10900.     PreAttackType             = PER_ATTACK            ;// Do the delay each time we attack a new target
  10901.     ;PreAttackFX               = FX_MagmaCauldronAttack    ;FX_GandalfPreAttackBlast    ;this didn't work
  10902.     ;FireFX                    = FX_MagmaCauldronAttack    ;FX_GandalfBlast    ;this triggers too late
  10903.     DamageNugget                                    ;// A basic Nugget that just does damage
  10904.         Damage            = 200
  10905.         Radius            = 250.0
  10906.         DamageType        = FLAME
  10907.         DamageFXType      = FLAME
  10908.         DeathType         = BURNED
  10909.     End
  10910. End
  10911.  
  10912. ;------------------------------------------------------------------------------
  10913. Weapon DwarvenFortressOilCasksWeapon
  10914.     IdleAfterFiringDelay    = 0
  10915.     RadiusDamageAffects        = ENEMIES NOT_SIMILAR
  10916.     WeaponSpeed                = 75         
  10917.     DelayBetweenShots        = 5000                    // time between shots, msec
  10918.     PreAttackDelay            = 700
  10919.     PreAttackType            = PER_ATTACK            // Do the delay each time we attack a new target
  10920.     //PreAttackFX                = FX_GandalfPreAttackBlast
  10921.     //FireFX                    = FX_GandalfBlast
  10922.     
  10923.     // A basic Nugget that just does damage
  10924.     DamageNugget                        
  10925.         Damage            = 200
  10926.         Radius            = 200.0
  10927.         DamageType        = FLAME
  10928.         DamageFXType    = FLAME
  10929.         DeathType        = BURNED
  10930.         DamageScalar    = 0% NONE +DwarvenCatapultFortress
  10931.     End
  10932.  
  10933.     FireLogicNugget
  10934.         LogicType        = INCREASE_BURN_RATE
  10935.         Radius            = 70.0
  10936.         Damage            = 20
  10937.     End    
  10938.  
  10939.     FireLogicNugget
  10940.         LogicType        = INCREASE_FUEL
  10941.         Radius            = 100.0
  10942.         Damage            = 40
  10943.         MinMaxBurnRate    = 20
  10944.         MinDecay        = 1
  10945.         MaxResistance    = 0
  10946.     End    
  10947.     
  10948.     //Oil Cask Projectiles
  10949.     ProjectileNugget                    
  10950.         ProjectileTemplateName            = OilCaskProjectileProjectile 
  10951.         WarheadTemplateName                = OilCaskWarhead
  10952.         WeaponLaunchBoneSlotOverride    = SECONDARY
  10953.         UseAlwaysAttackOffset            = Yes                    //Causes project to always target an offset from the attacker
  10954.         AlwaysAttackHereOffset            = X:40 Y:75 Z:0        //Used with UseAlwaysAttackOffset, this specifies the offset from the attacker to strike
  10955.     End
  10956.     ProjectileNugget                    
  10957.         ProjectileTemplateName            = OilCaskProjectileProjectile 
  10958.         WarheadTemplateName                = OilCaskWarhead
  10959.         WeaponLaunchBoneSlotOverride    = TERTIARY
  10960.         UseAlwaysAttackOffset            = Yes                    //Causes project to always target an offset from the attacker
  10961.         AlwaysAttackHereOffset            = X:40 Y:-75 Z:0        //Used with UseAlwaysAttackOffset, this specifies the offset from the attacker to strike
  10962.     End
  10963.     ProjectileNugget                    
  10964.         ProjectileTemplateName            = OilCaskProjectileProjectile 
  10965.         WarheadTemplateName                = OilCaskWarhead
  10966.         WeaponLaunchBoneSlotOverride    = QUATERNARY
  10967.         UseAlwaysAttackOffset            = Yes                    //Causes project to always target an offset from the attacker
  10968.         AlwaysAttackHereOffset            = X:-40 Y:75 Z:0        //Used with UseAlwaysAttackOffset, this specifies the offset from the attacker to strike
  10969.     End
  10970.     ProjectileNugget                    
  10971.         ProjectileTemplateName            = OilCaskProjectileProjectile 
  10972.         WarheadTemplateName                = OilCaskWarhead
  10973.         WeaponLaunchBoneSlotOverride    = QUINARY
  10974.         UseAlwaysAttackOffset            = Yes                    //Causes project to always target an offset from the attacker
  10975.         AlwaysAttackHereOffset            = X:-40 Y:-75 Z:0        //Used with UseAlwaysAttackOffset, this specifies the offset from the attacker to strike
  10976.     End
  10977. End
  10978.  
  10979. //-----------------------------------
  10980. Weapon OilCaskWarhead
  10981.     ProjectileCollidesWith    = MONSTERS    STRUCTURES            // Structures is the default, btw.
  10982.     RadiusDamageAffects        = ENEMIES ALLIES NOT_SIMILAR
  10983. End
  10984.  
  10985. ;------------------------------------------------------------------------------
  10986. Weapon SauronMace
  10987.     RadiusDamageAffects        = ENEMIES NEUTRALS NOT_SIMILAR
  10988.     LeechRangeWeapon        = Yes
  10989.     CanFireWhileMoving        = No
  10990.     AttackRange            = STANDARD_MELEE_ATTACK_RANGE
  10991.     MeleeWeapon            = Yes
  10992.     AcceptableAimDelta        = 60                ; Just needs to sort of face in the general direction.
  10993.     FireFX                = FX_SauronMaceHit
  10994.     DelayBetweenShots        = 500                ; time between shots, msec
  10995.     PreAttackDelay            = 2000                ; 300 is mace swing delay time before contact with target.
  10996.     PreAttackType            = PER_SHOT            ; Do the delay each time we attack
  10997.     FiringDuration            = 3667                ; Duration of the mace swing
  10998.     DamageDealtAtSelfPosition = Yes                ; A melee based AoE.  Arc radiates from me, not them
  10999.  
  11000.     ; Crush damage.
  11001.     DamageNugget                                ; A basic Nugget that just does damage
  11002.         Damage            = SAURON_DAMAGE
  11003.         Radius            = 80.0
  11004.         DamageArc        = 75
  11005.         DelayTime        = 0
  11006.         DamageType        = SIEGE
  11007.         DamageFXType        = MAGIC
  11008.         DeathType        = NORMAL
  11009.         DamageScalar          = 40% NONE +HERO
  11010.     End
  11011.  
  11012.     ; Magic damage.
  11013.     DamageNugget                                ; A basic Nugget that just does damage
  11014.         Damage            = SAURON_DAMAGE
  11015.         Radius            = 80.0
  11016.         DamageArc        = 75
  11017.         DelayTime        = 0
  11018.         DamageType        = MAGIC
  11019.         DamageFXType        = MAGIC
  11020.         DeathType        = NORMAL
  11021.         DamageScalar          = 40% NONE +HERO
  11022.     End
  11023.  
  11024.     ; Push back
  11025.     MetaImpactNugget                            ; A Nugget that throws things back with force
  11026. ;        HeroResist            = .75
  11027.         ShockWaveAmount        = 70
  11028.         ShockWaveRadius        = 75
  11029.         ShockWaveArc        = 75                ; Should generally be equal to damage arc
  11030.         ShockWaveTaperOff    = 1.0
  11031.         ShockWaveSpeed        = 0.0
  11032.         ShockWaveZMult        = 1.6
  11033.     End
  11034. End
  11035.  
  11036. ;------------------------------------------------------------------------------
  11037. Weapon RingHeroDeathShockwave        ; Big Blue Ring Blast
  11038.     IdleAfterFiringDelay    = 0
  11039.     AttackRange                = 120
  11040.     MinimumAttackRange        = 0.8
  11041.     WeaponSpeed                = 401                            ; dist/sec 
  11042.     MinWeaponSpeed            = 241
  11043.     MaxWeaponSpeed            = 601                            ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  11044.     ScaleWeaponSpeed        = Yes                            ; Used for lob weapons, scales speed proportional to range
  11045.     RadiusDamageAffects        = ALLIES ENEMIES NOT_SIMILAR
  11046.     DelayBetweenShots        = 5000                            ; time between shots, msec
  11047.     PreAttackDelay            = 2600
  11048.     PreAttackType            = PER_ATTACK                    ; Do the delay each time we attack a new target
  11049.     PreAttackFX                = FX_RingHeroPreAttackBlast
  11050.     FireFX                    = FX_RingHeroBlast
  11051.     FiringDuration            = 1400
  11052.     
  11053.     DamageNugget                                            ; A basic Nugget that just does damage
  11054.         Damage            = SAURON_DEATH_EXPLOSION_DAMAGE
  11055.         Radius            = 250.0
  11056.         DamageType        = MAGIC
  11057.         DamageFXType    = MAGIC
  11058.         DeathType        = EXPLODED
  11059.         DamageSpeed        = 700.0                                ; must match the ShockWaveSpeed below
  11060.         DamageScalar    = 0% ALL ALLIES                        ; only meta impact affects allied units.
  11061.     End
  11062.  
  11063.     MetaImpactNugget                                        ; A Nugget that throws things back with force
  11064.         ShockWaveAmount        = 70.0
  11065.         ShockWaveRadius        = 500.0
  11066.         ShockWaveTaperOff    = 1.0
  11067.         ShockWaveZMult        = 1.000
  11068.         ShockWaveSpeed        = 700.0 
  11069.     End
  11070. End
  11071.  
  11072. ;------------------------------------------------------------------------------
  11073. Weapon SauronFiresOfDoomWeapon
  11074.     AttackRange            = 300
  11075.     WeaponSpeed            = 801        ; dist/sec 
  11076.     HitPercentage        = 100        ; When this weapon is used it will hit exactly 100% of the time.
  11077.     DelayBetweenShots    = 2000        ; time between shots, msec
  11078.     PreAttackDelay      = 400
  11079.     PreAttackType       = PER_SHOT    *; Do the delay each time we attack a new target
  11080.     
  11081.     FiringDuration      = 1100
  11082.     AntiAirborneVehicle    = Yes
  11083.     AntiAirborneMonster    = Yes
  11084.  
  11085.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  11086.  
  11087.     WeaponOCLNugget
  11088.         WeaponOCLName = OCL_FiresOfDoom
  11089.     End
  11090. End
  11091.  
  11092. ;------------------------------------------------------------------------------
  11093. Weapon EvilEyeWeapon  ; BALANCE EvilEyeWeapon
  11094.     AttackRange            = GANDALF_PHASER_RANGE                ;600
  11095.     LeechRangeWeapon    = Yes
  11096.     WeaponSpeed            = 801      ; dist/sec 
  11097.     HitPercentage        = 100        ; When this weapon is used it will hit exactly 100% of the time.
  11098.     DelayBetweenShots    = 4500        ; time between shots, msec
  11099.     FireFX              = FX_EvilEyeWeapon
  11100.     FiringDuration      = 1
  11101.     AntiAirborneVehicle    = Yes
  11102.     AntiAirborneMonster    = Yes
  11103.     AcceptableAimDelta    = 15
  11104.  
  11105.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  11106.  
  11107.     DamageNugget                        ; A basic Nugget that just does damage
  11108.         Damage        = GANDALF_PHASER_DAMAGE    
  11109.         DamageScalar  = 200% NONE +MordorWitchKingOnFellBeast +GondorGwaihir +Drogoth    
  11110.         DamageScalar  = 180% NONE +MordorFellBeast
  11111.         Radius        = 17.6
  11112.         DelayTime     = 200           ;The target is dying before the laser appears in the new laser tweak, so try to kill when the laser turns on
  11113.         DamageType    = MAGIC
  11114.         DamageFXType  = FLAME
  11115.         DeathType     = NORMAL
  11116.     End
  11117.     MetaImpactNugget                    ; A Nugget that throws things back with force
  11118. ;        HeroResist          =   0.75
  11119.         ShockWaveAmount        = 50.0
  11120.         ShockWaveRadius        = 17.6
  11121.         ShockWaveTaperOff    = 0.5
  11122.         DelayTime            = 200        ;The target is dying before the laser appears in the new laser tweak, so try to kill when the laser turns on
  11123.     End
  11124. End
  11125.  
  11126. ;------------------------------------------------------------------------------
  11127. Weapon WildFortressBatCloudWeapon
  11128.     AttackRange            = 80
  11129.     WeaponSpeed            = 801        ; dist/sec 
  11130.     HitPercentage        = 100        ; When this weapon is used it will hit exactly 100% of the time.
  11131.     DelayBetweenShots    = 2000        ; time between shots, msec
  11132.     PreAttackDelay      = 400
  11133.     PreAttackType       = PER_SHOT    *; Do the delay each time we attack a new target
  11134.     
  11135.     FiringDuration      = 1100
  11136.     AntiAirborneVehicle    = Yes
  11137.     AntiAirborneMonster    = Yes
  11138.  
  11139.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  11140.  
  11141.     WeaponOCLNugget
  11142.         WeaponOCLName = OCL_WildFortressBatCloud
  11143.     End
  11144. End
  11145.  
  11146. ;------------------------------------------------------------------------------
  11147. Weapon WildFortressBatCloudBasicWeapon
  11148.     AttackRange            = 100
  11149.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  11150.     DelayBetweenShots    = 1000               ; time between shots, msec    
  11151.     FiringDuration      = 1000
  11152.     CanFireWhileMoving    = Yes
  11153.     DamageNugget                        ; A basic Nugget that just does damage
  11154.         Damage            = 10
  11155.         Radius            = 50.0
  11156.         DamageType        = PIERCE
  11157.         ;DamageFXType    = MAGIC
  11158.         DeathType        = NORMAL
  11159.         DamageSpeed        = 1400.0
  11160.     End
  11161. End
  11162.  
  11163. ;------------------------------------------------------------------------------
  11164. Weapon IsengardFortressMurderOfCrowsWeapon
  11165.     AttackRange            = 80
  11166.     WeaponSpeed            = 801        ; dist/sec 
  11167.     HitPercentage        = 100        ; When this weapon is used it will hit exactly 100% of the time.
  11168.     DelayBetweenShots    = 2000        ; time between shots, msec
  11169.     PreAttackDelay      = 400
  11170.     PreAttackType       = PER_SHOT    *; Do the delay each time we attack a new target
  11171.     
  11172.     FiringDuration      = 1100
  11173.     AntiAirborneVehicle    = Yes
  11174.     AntiAirborneMonster    = Yes
  11175.  
  11176.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  11177.  
  11178.     WeaponOCLNugget
  11179.         WeaponOCLName = OCL_IsengardFortressMurderOfCrows
  11180.     End
  11181. End
  11182.  
  11183. ;------------------------------------------------------------------------------
  11184. Weapon IsengardFortressMurderOfCrowsBasicWeapon
  11185.     AttackRange            = 100
  11186.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  11187.     DelayBetweenShots    = 1000               ; time between shots, msec    
  11188.     FiringDuration      = 1000
  11189.     CanFireWhileMoving    = Yes
  11190.     DamageNugget                        ; A basic Nugget that just does damage
  11191.         Damage            = 10
  11192.         Radius            = 50.0
  11193.         DamageType        = PIERCE
  11194.         ;DamageFXType    = MAGIC
  11195.         DeathType        = NORMAL
  11196.         DamageSpeed        = 1400.0
  11197.     End
  11198. End
  11199.  
  11200. ;------------------------------------------------------------------------------
  11201. Weapon IsengardSharkuManEaterGrab
  11202.     AttackRange                = 8.0
  11203.     DelayBetweenShots        = 30            ; time between shots, msec
  11204.     FiringDuration            = 30
  11205.     MeleeWeapon            = Yes
  11206.     ChaseWeapon            = Yes ; Not full melee, but we get to move to attack a passive acquire, even if player owned.
  11207.  
  11208.     GrabNugget                                ; A Nugget that makes me grab you
  11209.         SpecialObjectFilter        = NONE +INFANTRY -HERO
  11210.         ContainTargetOnEffect   = Yes
  11211.         RemoveTargetFromOtherContain = Yes    ; Rip out of any other contain (eg horde)
  11212.         ImpactTargetOnEffect    = Yes ;... if for some reason, I can not contain you, I'll try to give you a shove
  11213.         ShockWaveAmount       = 50.0
  11214.         ShockWaveRadius       = 16.0
  11215.         ShockWaveTaperOff     = 0.75
  11216.         ShockWaveZMult        = 1.1
  11217.     End
  11218.     
  11219.     SpecialModelConditionNugget
  11220.         ModelConditionNames = STUNNED_FLAILING
  11221.         ModelConditionDuration = 1250
  11222.     End
  11223. End
  11224.  
  11225. ;------------------------------------------------------------------------------
  11226. Weapon IsengardSharkuManEaterWarhead
  11227.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS ; Remember, the projectile is a rock, who has no allies
  11228.   RadiusDamageAffects    = ENEMIES NEUTRALS SELF                ; Self for when this warhead is attached to an already grabbed unit being thrown as projectile instead of a rock
  11229.   DamageNugget
  11230.     SpecialObjectFilter        = NONE +INFANTRY -HERO
  11231.     Radius          = 0.0                ; Second damage nugget does instant death for only the direct target (which will be the unit thrown)
  11232.     DamageType    = CRUSH
  11233.     DeathType     = CRUSHED
  11234.     ForceKillObjectFilter    = NONE +INFANTRY -HERO
  11235.   End
  11236. End
  11237.  
  11238. ;------------------------------------------------------------------------------
  11239. ; This is the Nazgul Grab Attack
  11240. Weapon NazgulGrabAttack                  ; BALANCE NazgulGrabAttack
  11241.     AttackRange                = 20.0
  11242.     FireFX                = FX_FellbeastGrab  
  11243.     DelayBetweenShots        = 30            ; time between shots, msec
  11244.     FiringDuration            = 30
  11245.     MeleeWeapon            = Yes
  11246.     CanSwoop            = Yes
  11247.     ChaseWeapon            = Yes ; Not full melee, but we get to move to attack a passive acquire, even if player owned.
  11248.  
  11249.     DamageNugget                               ; A basic Nugget that just does damage
  11250.         Damage                = 240
  11251.         Radius                = 50 ;0.8
  11252.         DamageScalar        = 0.0    ANY +HERO +PORTER
  11253. ;;No grabbing the heroes (Who won't fit in the container anyway.)
  11254. ;;This is a hack because canWeaponAffect doesn't check that the weapon is a grabbing weapon and the unit isn't grabbable.
  11255. ;;-CB (only an intern, I just does what I's told)
  11256.         DelayTime             = 0
  11257.         DamageType            = HERO
  11258.         DamageFXType          = CLUBBING
  11259.         DeathType             = NORMAL
  11260.     End
  11261.     
  11262.     GrabNugget                                ; A Nugget that makes me grab you
  11263.         SpecialObjectFilter        = ANY +GRAB_AND_DROP
  11264.         ContainTargetOnEffect   = Yes
  11265.         ImpactTargetOnEffect    = Yes ;... if for some reason, I can not contain you, I'll try to give you a shove
  11266.         ShockWaveAmount       = 50.0
  11267.         ShockWaveRadius       = 16.0
  11268.         ShockWaveTaperOff     = 0.75
  11269.         ShockWaveZMult        = 1.1
  11270.     End
  11271. End
  11272.  
  11273. ;------------------------------------------------------------------------------
  11274. Weapon EagleGrabAttack 
  11275.     AttackRange                  = 20.0
  11276.     FireFX                    = FX_EagleGrab  
  11277.     DelayBetweenShots             = 30            ; time between shots, msec
  11278.     FiringDuration                = 30
  11279.     MeleeWeapon            = Yes
  11280.     CanSwoop            = Yes
  11281.     ChaseWeapon            = Yes ; Not full melee, but we get to move to attack a passive acquire, even if player owned.
  11282.  
  11283.     DamageNugget                                ; A basic Nugget that just does damage
  11284.         Damage                = 240
  11285.         Radius                = 50 ;0.8
  11286.         DamageScalar        = 0.0    ANY +HERO +PORTER
  11287. ;;No grabbing the heroes (Who won't fit in the container anyway.)
  11288. ;;This is a hack because canWeaponAffect doesn't check that the weapon is a grabbing weapon and the unit isn't grabbable.
  11289. ;;-CB (only an intern, I just does what I's told)
  11290.         DelayTime             = 0
  11291.         DamageType            = HERO
  11292.         DamageFXType          = CLUBBING
  11293.         DeathType             = NORMAL
  11294.     End
  11295.     
  11296.     GrabNugget                                ; A Nugget that makes me grab you
  11297.         SpecialObjectFilter        = ANY +GRAB_AND_DROP
  11298.         ContainTargetOnEffect   = Yes
  11299.         ImpactTargetOnEffect    = Yes ;... if for some reason, I can not contain you, I'll try to give you a shove
  11300.         ShockWaveAmount       = 50.0
  11301.         ShockWaveRadius       = 16.0
  11302.         ShockWaveTaperOff     = 0.75
  11303.         ShockWaveZMult        = 1.1
  11304.     End
  11305. End
  11306.  
  11307. ;------------------------------------------------------------------------------
  11308. Weapon EaglePlowAttack  
  11309.     RadiusDamageAffects = ENEMIES ALLIES NOT_SIMILAR
  11310.     AttackRange                = 24.0
  11311.     AcceptableAimDelta            = 5            ; Just needs to sort of face in the general direction.
  11312.     DelayBetweenShots            = 4000            ; time between shots, msec
  11313.     ;;;FireFX                = FX_TrollTreeHit
  11314.     FireFX                    = FX_BuildingHitByFlyer
  11315.  
  11316.     AntiAirborneVehicle            = Yes            ;allows attack of flying units
  11317.     AntiAirborneMonster            = Yes            ;no... THIS allows attack of flying units because somebody was a funny man.
  11318.     AntiAirborneInfantry            = Yes      
  11319.     MeleeWeapon                = No
  11320.     CanSwoop                = Yes
  11321.     ChaseWeapon            = Yes ; Not full melee, but we get to move to attack a passive acquire, even if player owned.
  11322.  
  11323.     DamageNugget                                        ; A basic Nugget that just does damage
  11324.         Damage                = EAGLE_PLOW_DAMAGE_OUTER
  11325.         Radius                = 30.0
  11326.         DelayTime            = 0
  11327.         DamageType            = HERO
  11328.         DamageFXType            = CLUBBING
  11329.         DeathType            = NORMAL
  11330.     End
  11331.     DamageNugget                                        ; A basic Nugget that just does damage
  11332.         Damage                = EAGLE_FLY_INTO_DAMAGE 
  11333.         Radius                = 30.0
  11334.         DelayTime            = 1
  11335.         DamageType            = FLY_INTO
  11336.         DamageFXType        = CLUBBING
  11337.         DeathType            = NORMAL
  11338.     End
  11339.     DamageNugget                                        ; A basic Nugget that just does damage
  11340.         Damage                = EAGLE_PLOW_DAMAGE_INNER
  11341.         Radius                = 30.0
  11342.         DelayTime            = 0
  11343.         DamageType            = HERO
  11344.         DamageFXType            = CLUBBING
  11345.         DeathType            = NORMAL
  11346.     End
  11347.     MetaImpactNugget                                ; A Nugget that throws things back with force
  11348. ;        HeroResist            = 50.0            
  11349.         ShockWaveAmount           = 60.0
  11350.         ShockWaveRadius           = 48.0
  11351.         ShockWaveTaperOff         = 0.5
  11352.     End
  11353. End
  11354.  
  11355. ;------------------------------------------------------------------------------
  11356. ; This is the normal Nazgul Plow Attack
  11357. Weapon NazgulPlowAttack                          ; BALANCE NazgulPlowAttack
  11358.    RadiusDamageAffects    = ENEMIES ALLIES NOT_SIMILAR
  11359.      AttackRange          = 24.0
  11360.      AcceptableAimDelta   = 5                  ; Just needs to sort of face in the general direction.
  11361.      DelayBetweenShots    = 4000            ; time between shots, msec
  11362.      FiringDuration          = 5000            ; has to be as long as the swoop-follow-through, or you can use an interrupt exploit to re-attack repeatedly
  11363.      FireFX               = FX_BuildingHitByFlyer
  11364.  
  11365.     AntiAirborneVehicle    = Yes            ;allows attack of flying units
  11366.     AntiAirborneMonster    = Yes            ;no... THIS allows attack of flying units because somebody was a funny man.
  11367.     AntiAirborneInfantry   = Yes      
  11368.     MeleeWeapon            = No
  11369.     CanSwoop               = Yes
  11370.     ChaseWeapon            = Yes ; Not full melee, but we get to move to attack a passive acquire, even if player owned.
  11371.  
  11372.     DamageNugget     ; A basic Nugget that just does damage
  11373.         Damage         = NAZGUL_PLOW_DAMAGE_OUTER
  11374.             DamageScalar   = 0% ANY +MordorWitchKingOnFellBeast +MordorFellBeast
  11375.             DamageScalar   = 1000% NONE +MACHINE 
  11376.             DamageScalar   = 30% NONE +HERO
  11377.         Radius         = 40.0
  11378.         DelayTime      = 1
  11379.         DamageType     = SIEGE
  11380.         DamageFXType   = CLUBBING
  11381.         DeathType      = NORMAL
  11382.     End
  11383.     DamageNugget     ; A basic Nugget that just does damage
  11384.         Damage         = NAZGUL_FLY_INTO_DAMAGE 
  11385.             DamageScalar   = 0% ANY +MordorWitchKingOnFellBeast +MordorFellBeast
  11386.         Radius         = 40.0
  11387.         DelayTime      = 1
  11388.         DamageType     = FLY_INTO
  11389.         DamageFXType   = CLUBBING
  11390.         DeathType      = NORMAL
  11391.     End
  11392.     DamageNugget     ; Another one that also does damage
  11393.         Damage        = NAZGUL_PLOW_DAMAGE_INNER
  11394.             DamageScalar   = 0% ANY +MordorWitchKingOnFellBeast +MordorFellBeast
  11395.             DamageScalar  = 1000% NONE +MACHINE 
  11396.             DamageScalar  = 30% NONE +HERO
  11397.         Radius        = 12.0
  11398.         DelayTime     = 0
  11399.         DamageType    = SIEGE
  11400.         DamageFXType  = CLUBBING
  11401.         DeathType     = NORMAL
  11402.     End
  11403.     MetaImpactNugget     ; A Nugget that throws things back with force
  11404. ;        HeroResist         = 50.0     ;always works on heroes
  11405.         ShockWaveAmount    = 60.0
  11406.         ShockWaveRadius    = 48.0
  11407.         ShockWaveTaperOff  =  0.5
  11408.     End
  11409. End
  11410.  
  11411. ;------------------------------------------------------------------------------
  11412. Weapon EagleClawAttack 
  11413.     AttackRange                = 20.0
  11414.     AcceptableAimDelta            = 5            ; Just needs to sort of face in the general direction.
  11415.     DelayBetweenShots            = 250            ; time between shots, msec
  11416.     ClipSize                           = 2            ;4    ; how many shots in a Clip (0 == infinite)
  11417.     ClipReloadTime                     = 2000
  11418.     AutoReloadsClip                    = Yes    
  11419.     FireFX                    = FX_EagleClawAttack
  11420.     AntiAirborneVehicle            = Yes            ;allows attack of flying units
  11421.     AntiAirborneInfantry            = Yes      
  11422.     AntiAirborneMonster            = Yes
  11423.     MeleeWeapon                = Yes
  11424.     CanSwoop                = Yes
  11425.     ChaseWeapon            = Yes ; Not full melee, but we get to move to attack a passive acquire, even if player owned.
  11426.     PreferredTargetBone = B_HEAD
  11427.  
  11428.     DamageNugget                            ; A basic Nugget that just does damage
  11429.         Damage                = EAGLE_CLAW_DAMAGE
  11430.             DamageScalar  = 1000% NONE +MACHINE 
  11431.             DamageScalar   = 250% NONE +MordorMumakil
  11432.         Radius                = 10.0
  11433.         DelayTime                 = 1        
  11434.         DamageType            = SIEGE
  11435.         DamageFXType            = CLUBBING
  11436.         DeathType            = NORMAL
  11437.     End
  11438. End
  11439.  
  11440. ;------------------------------------------------------------------------------
  11441. ; Basically the same as the EagleClawAttack but with a different FX
  11442. Weapon EagleClawWyrmAttack
  11443.     AttackRange                = 20.0
  11444.     AcceptableAimDelta        = 5                            ; Just needs to sort of face in the general direction.
  11445.     DelayBetweenShots        = 250                        ; time between shots, msec
  11446.     ClipSize                   = 2                            ; how many shots in a Clip (0 == infinite)
  11447.     ClipReloadTime             = 2000
  11448.     AutoReloadsClip            = Yes
  11449.     FireFX                    = FX_GwaihirVsWyrm
  11450.     AntiAirborneVehicle        = Yes                        ; allows attack of flying units
  11451.     AntiAirborneInfantry    = Yes
  11452.     AntiAirborneMonster        = Yes
  11453.     MeleeWeapon                = Yes
  11454.     CanSwoop                = Yes
  11455.     ChaseWeapon                = Yes                        ; Not full melee, but we get to move to attack a passive acquire, even if player owned.
  11456.     PreferredTargetBone        = B_HEAD
  11457.  
  11458.     DamageNugget                                        ; A basic Nugget that just does damage
  11459.         Damage                = EAGLE_CLAW_DAMAGE
  11460.         DamageScalar        = 1000% NONE +MACHINE 
  11461.         Radius                = 10.0
  11462.         DelayTime             = 1
  11463.         DamageType            = SIEGE
  11464.         DamageFXType        = CLUBBING
  11465.         DeathType            = NORMAL
  11466.     End
  11467. End
  11468.  
  11469. ;------------------------------------------------------------------------------
  11470. ; This is the normal Nazgul Claw Attack
  11471. Weapon NazgulClawAttack                            ; BALANCE NazgulClawAttack
  11472.     AttackRange                = 20.0
  11473.     AcceptableAimDelta            = 5            ; Just needs to sort of face in the general direction.
  11474.     DelayBetweenShots            = 250            ; time between shots, msec
  11475.     ClipSize                = 2            ;4    ; how many shots in a Clip (0 == infinite)
  11476.     ClipReloadTime                = 2000
  11477.     AutoReloadsClip                = Yes    
  11478.     FireFX                    = FX_FellbeastClawAttack        ;FX_TrollTreeHit
  11479.     AntiAirborneVehicle            = Yes            ;allows attack of flying units
  11480.     AntiAirborneInfantry            = Yes      
  11481.     AntiAirborneMonster            = Yes
  11482.     MeleeWeapon                = Yes
  11483.     CanSwoop                = Yes
  11484.     ChaseWeapon                = Yes ; Not full melee, but we get to move to attack a passive acquire, even if player owned.
  11485.  
  11486.     DamageNugget                                        ; A basic Nugget that just does damage
  11487.         Damage                = NAZGUL_CLAW_DAMAGE
  11488.             DamageScalar              = 1000% NONE +MACHINE 
  11489.             DamageScalar               = 250% NONE +MordorMumakil
  11490.         Radius                = 40 ;24.0
  11491.         DelayTime                 = 1        
  11492.         DamageType            = SIEGE
  11493.         DamageFXType            = CLUBBING
  11494.         DeathType            = NORMAL
  11495.     End
  11496. End
  11497.  
  11498. ;------------------------------------------------------------------------------
  11499. Weapon NormalMeleeHordeRangefinder
  11500.     AttackRange            = 12.0
  11501.     DelayBetweenShots    = 1000 ; one second.
  11502.     AcceptableAimDelta    = 45
  11503.     MeleeWeapon            = Yes
  11504.     FinishAttackOnceStarted = No
  11505.     
  11506.     HordeAttackNugget
  11507.     End
  11508. End
  11509.  
  11510. ;------------------------------------------------------------------------------
  11511. Weapon TowerGuardHordeRangefinder
  11512.     AttackRange            = 25.0
  11513.     DelayBetweenShots    = 1000 ; one second.
  11514.     AcceptableAimDelta    = 45
  11515.     MeleeWeapon            = Yes
  11516.     FinishAttackOnceStarted = No
  11517.     
  11518.     HordeAttackNugget
  11519.     End
  11520. End
  11521.  
  11522. ;------------------------------------------------------------------------------
  11523. Weapon HaradrimCrushedWeapon
  11524.     AttackRange = 20.0
  11525.     WeaponSpeed = 261         ; dist/sec 
  11526.     MinWeaponSpeed = 61
  11527.     MaxWeaponSpeed = 301      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  11528.     FireFX = FX_HaradrimSpearThrow
  11529.     ScaleWeaponSpeed = Yes ; Used for lob weapons, scales speed proportional to range
  11530.     HitPercentage       = 100
  11531.     ScatterRadius     = 20.0         ;When this weapon misses it can randomly miss by as much as this distance.
  11532.     DelayBetweenShots = 3000        ; time between shots, msec
  11533.     PreAttackDelay        = 1500    ; 1500 is the prep time for archer.
  11534.     PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  11535.     FiringDuration      = 1000    ; Duration of the archer firing shot is 1000ms.
  11536.  
  11537.     DamageNugget                        ; A basic Nugget that just does damage
  11538.         Damage        = 100
  11539.         Radius        = 20
  11540.         DelayTime     = 10
  11541.         DamageType    = PIERCE
  11542.         DamageFXType  = GOOD_ARROW_PIERCE
  11543.         DeathType     = NORMAL
  11544.     End
  11545.  
  11546. End
  11547.  
  11548. ;------------------------------------------------------------------------------
  11549. Weapon EasterlingPorcupineDamage
  11550.     AttackRange                = 5.0
  11551.     FireFX                    = FX_HaradrimSpearThrow
  11552.  
  11553.     DamageNugget                        ; A basic Nugget that just does damage
  11554.         Damage                = 0
  11555.         Radius                = 5
  11556.         DelayTime            = 10
  11557.         DamageType            = PIERCE
  11558.         DamageFXType        = SWORD_SLASH
  11559.         DeathType            = NORMAL
  11560.     End
  11561. End
  11562.  
  11563. Weapon EasterlingPorcupineCrushDamage
  11564.     AttackRange                = 100.0
  11565.     
  11566.     DamageNugget                        ; A basic Nugget that just does damage
  11567.         Damage                = 100
  11568.         DelayTime            = 0
  11569.         DamageType            = PIERCE
  11570.         DamageFXType        = SWORD_SLASH
  11571.         DeathType            = NORMAL
  11572.     End
  11573. End
  11574.  
  11575. ;------------------------------------------------------------------------------
  11576. Weapon PikemenPorcupineDamage
  11577.     AttackRange                = 25.0
  11578.  
  11579.     DamageNugget                        ; A basic Nugget that just does damage
  11580.         Damage                = 0
  11581.         Radius                = 5
  11582.         DelayTime            = 10
  11583.         DamageType            = SPECIALIST
  11584.         DamageFXType            = SWORD_SLASH
  11585.         DeathType            = NORMAL
  11586.     End
  11587. End
  11588.  
  11589. Weapon PikemenPorcupineCrushDamage
  11590.      RadiusDamageAffects = ENEMIES 
  11591.     AttackRange                = 10.0
  11592.     DamageNugget                        ; A basic Nugget that just does damage
  11593.         Damage                = URUK_PIKE_PORCUPINE_DAMAGE
  11594.         ;Radius                = 30
  11595.         DelayTime            = 0
  11596.         DamageType            = SPECIALIST
  11597.         DamageFXType            = SWORD_SLASH
  11598.         DeathType            = NORMAL
  11599.     End
  11600. End
  11601.     
  11602.     
  11603. ;------------------------------------------------------------------------------
  11604. ;------------------------------------------------------------------------------
  11605. ;------------------------------------------------------------------------------
  11606. ;------------------------------------------------------------------------------
  11607. ;
  11608. ;  Temp and Testing
  11609. ;
  11610. ;------------------------------------------------------------------------------
  11611. ;------------------------------------------------------------------------------
  11612. ;------------------------------------------------------------------------------
  11613.  
  11614. ;------------------------------------------------------------------------------
  11615. Weapon HobbitMissileHordeRangefinder
  11616.     AttackRange            = #SUBTRACT( HOBBIT_ROCK_RANGE 30 ) 
  11617.     
  11618.     RangeBonusMinHeight    = 10
  11619.     RangeBonus        = 1
  11620.     RangeBonusPerFoot    = #MULTIPLY( HOBBIT_ROCK_RANGE .01 )
  11621.     
  11622.     
  11623.     DelayBetweenShots        = 1000
  11624.     LeechRangeWeapon        = Yes
  11625.     AcceptableAimDelta        = 45
  11626.     AntiAirborneVehicle        = Yes
  11627.     AntiAirborneMonster        = Yes
  11628.     FinishAttackOnceStarted = No
  11629.     HordeAttackNugget
  11630.     End
  11631. End
  11632.  
  11633. ;------------------------------------------------------------------------------
  11634. Weapon NormalMissileHordeRangefinder
  11635.     AttackRange            = #SUBTRACT( DWARVEN_MENOFDALE_RANGE 100 ) 
  11636.     
  11637.     RangeBonusMinHeight    = 10
  11638.     RangeBonus        = 1
  11639.     RangeBonusPerFoot    = #MULTIPLY( DWARVEN_MENOFDALE_RANGE .01 )
  11640.     
  11641.     
  11642.     DelayBetweenShots        = 1000 ;1500
  11643.     LeechRangeWeapon        = Yes
  11644.     AcceptableAimDelta        = 45
  11645.     AntiAirborneVehicle        = Yes
  11646.     AntiAirborneMonster        = Yes
  11647.     FinishAttackOnceStarted = No
  11648.     HordeAttackNugget
  11649.     End
  11650. End
  11651.  
  11652. Weapon NormalMissileHordeRangefinderBombard
  11653.     AttackRange                = #SUBTRACT( DWARVEN_MENOFDALE_BOMBARD_MAXRANGE 100 ) 
  11654.     
  11655.     RangeBonusMinHeight    = 10
  11656.     RangeBonus        = 1
  11657.     RangeBonusPerFoot    = #MULTIPLY( DWARVEN_MENOFDALE_BOMBARD_MAXRANGE .01 )
  11658.     
  11659.     MinimumAttackRange        = DWARVEN_MENOFDALE_BOMBARD_MINRANGE
  11660.     DelayBetweenShots        = 1000 ;1500
  11661.     LeechRangeWeapon        = Yes
  11662.     AcceptableAimDelta        = 45
  11663.     AntiAirborneVehicle        = Yes
  11664.     AntiAirborneMonster        = Yes
  11665.     FinishAttackOnceStarted = No
  11666.     NoVictimNeeded            = Yes
  11667.     BombardType                = Yes
  11668.     ScatterRadius            = ARCHER_BOMBARD_SCATTER_RADIUS        ; Only used for cursor radius
  11669.     HordeAttackNugget
  11670.     End
  11671. End
  11672.  
  11673. Weapon DwarvenMissileHordeRangefinder
  11674.     AttackRange            = #SUBTRACT( DWARVEN_AXETHROWER_RANGE 100 )  ;;;; 300 is too far! 220.0 ; Slightly shorter than the archer's actual weapon
  11675.     
  11676.     RangeBonusMinHeight    = 10
  11677.     RangeBonus        = 1
  11678.     RangeBonusPerFoot    = #MULTIPLY( DWARVEN_AXETHROWER_RANGE .01 )
  11679.     
  11680.     DelayBetweenShots        = 1000 ;1500
  11681.     LeechRangeWeapon        = Yes
  11682.     AcceptableAimDelta        = 45
  11683.     AntiAirborneVehicle        = Yes
  11684.     AntiAirborneMonster        = Yes
  11685.     FinishAttackOnceStarted = No
  11686.     HordeAttackNugget
  11687.     End
  11688. End
  11689.  
  11690. Weapon DwarvenMissileHordeRangefinderBombard
  11691.     AttackRange            = #SUBTRACT( DWARVEN_AXETHROWER_BOMBARD_MAXRANGE 100 ) 
  11692.     MinimumAttackRange        = DWARVEN_AXETHROWER_BOMBARD_MINRANGE
  11693.     
  11694.     RangeBonusMinHeight    = 10
  11695.     RangeBonus        = 1
  11696.     RangeBonusPerFoot    = #MULTIPLY( DWARVEN_AXETHROWER_BOMBARD_MAXRANGE .01 )
  11697.     
  11698.     DelayBetweenShots        = 1000 ;1500
  11699.     LeechRangeWeapon        = Yes
  11700.     AcceptableAimDelta        = 45
  11701.     AntiAirborneVehicle        = Yes
  11702.     AntiAirborneMonster        = Yes
  11703.     FinishAttackOnceStarted = No
  11704.     NoVictimNeeded            = Yes
  11705.     BombardType                = Yes    
  11706.     ScatterRadius            = ARCHER_BOMBARD_SCATTER_RADIUS        ; Only used for cursor radius
  11707.     HordeAttackNugget
  11708.     End
  11709. End
  11710.  
  11711. Weapon HaradrimArcherMissileHordeRangefinder
  11712.     AttackRange            = #SUBTRACT( MORDOR_HARADRIM_BOW_RANGE 100 )  ; Slightly shorter than the archer's actual weapon
  11713.     
  11714.     RangeBonusMinHeight    = 10
  11715.     RangeBonus        = 1
  11716.     RangeBonusPerFoot    = #MULTIPLY( MORDOR_HARADRIM_BOW_RANGE .01 )
  11717.     
  11718.     DelayBetweenShots        = 1000 ;1500
  11719.     LeechRangeWeapon        = Yes
  11720.     AcceptableAimDelta        = 45
  11721.     AntiAirborneVehicle        = Yes
  11722.     AntiAirborneMonster        = Yes
  11723.     CanFireWhileMoving        = Yes        ; When aboard a mumakil.
  11724.     FinishAttackOnceStarted = No
  11725.     HordeAttackNugget
  11726.     End
  11727. End
  11728.  
  11729. Weapon HaradrimArcherMissileHordeRangefinderBombard
  11730.     AttackRange            = #SUBTRACT( MORDOR_HARADRIM_BOW_BOMBARD_MAXRANGE 100 ) 
  11731.     
  11732.     RangeBonusMinHeight    = 10
  11733.     RangeBonus        = 1
  11734.     RangeBonusPerFoot    = #MULTIPLY( MORDOR_HARADRIM_BOW_BOMBARD_MAXRANGE .01 )
  11735.     
  11736.     MinimumAttackRange        = MORDOR_HARADRIM_BOW_BOMBARD_MINRANGE
  11737.     DelayBetweenShots        = 1000 ;1500
  11738.     LeechRangeWeapon        = Yes
  11739.     AcceptableAimDelta        = 45
  11740.     AntiAirborneVehicle        = Yes
  11741.     AntiAirborneMonster        = Yes
  11742.     CanFireWhileMoving        = Yes        ; When aboard a mumakil.
  11743.     FinishAttackOnceStarted = No
  11744.     NoVictimNeeded            = Yes
  11745.     BombardType                = Yes    
  11746.     ScatterRadius            = ARCHER_BOMBARD_SCATTER_RADIUS        ; Only used for cursor radius
  11747.     HordeAttackNugget
  11748.     End
  11749. End
  11750.  
  11751. Weapon MordorArcherMissileHordeRangefinder
  11752.     AttackRange            = #SUBTRACT( MORDOR_ARCHER_RANGE 100 )  ; Slightly shorter than the archer's actual weapon
  11753.     
  11754.     RangeBonusMinHeight    = 10
  11755.     RangeBonus        = 1
  11756.     RangeBonusPerFoot    = #MULTIPLY( MORDOR_ARCHER_RANGE .01 )
  11757.     
  11758.     DelayBetweenShots        = 1000 ;1500
  11759.     LeechRangeWeapon        = Yes
  11760.     AcceptableAimDelta        = 45
  11761.     AntiAirborneVehicle        = Yes
  11762.     AntiAirborneMonster        = Yes
  11763.     CanFireWhileMoving        = Yes        ; When aboard a mumakil.
  11764.     FinishAttackOnceStarted = No
  11765.     HordeAttackNugget
  11766.     End
  11767. End
  11768.  
  11769. Weapon MordorArcherMissileHordeRangefinderBombard
  11770.     AttackRange            = #SUBTRACT( MORDOR_ARCHER_BOMBARD_MAXRANGE 100 ) 
  11771.     
  11772.     RangeBonusMinHeight    = 10
  11773.     RangeBonus        = 1
  11774.     RangeBonusPerFoot    = #MULTIPLY( MORDOR_ARCHER_BOMBARD_MAXRANGE .01 )
  11775.     
  11776.     MinimumAttackRange        = MORDOR_ARCHER_BOMBARD_MINRANGE
  11777.     DelayBetweenShots        = 1000 ;1500
  11778.     LeechRangeWeapon        = Yes
  11779.     AcceptableAimDelta        = 45
  11780.     AntiAirborneVehicle        = Yes
  11781.     AntiAirborneMonster        = Yes
  11782.     CanFireWhileMoving        = Yes        ; When aboard a mumakil.
  11783.     FinishAttackOnceStarted = No
  11784.     NoVictimNeeded            = Yes
  11785.     BombardType                = Yes    
  11786.     ScatterRadius            = ARCHER_BOMBARD_SCATTER_RADIUS        ; Only used for cursor radius
  11787.     HordeAttackNugget
  11788.     End
  11789. End
  11790.  
  11791. Weapon GoblinArcherMissileHordeRangefinder
  11792.     AttackRange            = #SUBTRACT( GOBLIN_ARCHER_RANGE 100 )   ; Slightly shorter than the archer's actual weapon
  11793.     
  11794.     RangeBonusMinHeight    = 10
  11795.     RangeBonus        = 1
  11796.     RangeBonusPerFoot    = #MULTIPLY( GOBLIN_ARCHER_RANGE .01 )
  11797.     
  11798.     DelayBetweenShots        = 1000 ;1500
  11799.     LeechRangeWeapon        = Yes
  11800.     AcceptableAimDelta        = 45
  11801.     AntiAirborneVehicle        = Yes
  11802.     AntiAirborneMonster        = Yes
  11803.     CanFireWhileMoving        = Yes        ; When aboard a mumakil.
  11804.     FinishAttackOnceStarted = No
  11805.     HordeAttackNugget
  11806.     End
  11807. End
  11808.  
  11809. Weapon GoblinArcherMissileHordeRangefinderBombard
  11810.     AttackRange                = #SUBTRACT( GOBLIN_ARCHER_BOMBARD_MAXRANGE 100 ) 
  11811.     
  11812.     RangeBonusMinHeight    = 10
  11813.     RangeBonus        = 1
  11814.     RangeBonusPerFoot    = #MULTIPLY( GOBLIN_ARCHER_BOMBARD_MAXRANGE .01 )
  11815.     
  11816.     MinimumAttackRange        = GOBLIN_ARCHER_BOMBARD_MINRANGE
  11817.     DelayBetweenShots        = 1000 ;1500
  11818.     LeechRangeWeapon        = Yes
  11819.     AcceptableAimDelta        = 45
  11820.     AntiAirborneVehicle        = Yes
  11821.     AntiAirborneMonster        = Yes
  11822.     CanFireWhileMoving        = Yes        ; When aboard a mumakil.
  11823.     FinishAttackOnceStarted = No
  11824.     NoVictimNeeded            = Yes
  11825.     BombardType                = Yes    
  11826.     ScatterRadius            = ARCHER_BOMBARD_SCATTER_RADIUS        ; Only used for cursor radius
  11827.     HordeAttackNugget
  11828.     End
  11829. End
  11830.  
  11831. Weapon HaradrimMountedHordeRangefinder
  11832.     AttackRange            = 380
  11833.     DelayBetweenShots        = 1000 ;1500
  11834.     LeechRangeWeapon        = Yes
  11835.     AcceptableAimDelta        = 45
  11836.     AntiAirborneVehicle        = Yes
  11837.     AntiAirborneMonster        = Yes
  11838.     CanFireWhileMoving        = Yes        ; When aboard a mumakil.
  11839.     FinishAttackOnceStarted = No
  11840.     HordeAttackNugget
  11841.     End
  11842. End
  11843.  
  11844. ;Weapon BadArcherMissileHordeRangefinder
  11845. ;    AttackRange            = 190.0 ; Slightly shorter than the archer's actual weapon
  11846. ;    DelayBetweenShots        = 1000
  11847. ;    LeechRangeWeapon        = Yes
  11848. ;    AcceptableAimDelta        = 45
  11849. ;    AntiAirborneVehicle        = Yes
  11850. ;    AntiAirborneMonster        = Yes
  11851. ;    FinishAttackOnceStarted = No
  11852. ;    HordeAttackNugget
  11853. ;    End
  11854. ;End
  11855.  
  11856. Weapon LorienArcherMissileHordeRangefinder
  11857.     AttackRange            = #SUBTRACT( ELVEN_LORIENARCHER_ARCHER_RANGE 100 )  ; Slightly shorter than the archer's actual weapon
  11858.     
  11859.     RangeBonusMinHeight    = 10
  11860.     RangeBonus        = 1
  11861.     RangeBonusPerFoot    = #MULTIPLY( ELVEN_LORIENARCHER_ARCHER_RANGE .01 )
  11862.     
  11863.     DelayBetweenShots        = 1000
  11864.     LeechRangeWeapon        = Yes
  11865.     AcceptableAimDelta        = 45
  11866.     AntiAirborneVehicle        = Yes
  11867.     AntiAirborneMonster        = Yes
  11868.     CanFireWhileMoving        = Yes        ; When aboard a ship.
  11869.     FinishAttackOnceStarted = No
  11870.     HordeAttackNugget
  11871.     End
  11872. End
  11873.  
  11874. Weapon LorienArcherMissileHordeRangefinderBombard
  11875.     AttackRange                = #SUBTRACT( ELVEN_LORIENARCHER_ARCHER_BOMBARD_MAXRANGE 100 )
  11876.     MinimumAttackRange        = ELVEN_LORIENARCHER_ARCHER_BOMBARD_MINRANGE
  11877.  
  11878.     RangeBonusMinHeight        = 10
  11879.     RangeBonus                = 1
  11880.     RangeBonusPerFoot        = #MULTIPLY( ELVEN_LORIENARCHER_ARCHER_BOMBARD_MAXRANGE .01 )
  11881.     
  11882.     DelayBetweenShots        = 1000
  11883.     LeechRangeWeapon        = Yes
  11884.     AcceptableAimDelta        = 45
  11885.     AntiAirborneVehicle        = Yes
  11886.     AntiAirborneMonster        = Yes
  11887.     CanFireWhileMoving        = Yes        ; When aboard a ship.
  11888.     FinishAttackOnceStarted = No
  11889.     NoVictimNeeded            = Yes
  11890.     BombardType                = Yes
  11891.     ScatterRadius            = ARCHER_BOMBARD_SCATTER_RADIUS        ; Only used for cursor radius
  11892.     HordeAttackNugget
  11893.     End
  11894. End
  11895.  
  11896. Weapon MirkwoodArcherMissileHordeRangefinder
  11897.     AttackRange            = #SUBTRACT( ELVEN_MIRKWOOD_ARCHER_RANGE 100 )  ; Slightly shorter than the archer's actual weapon
  11898.     
  11899.     RangeBonusMinHeight    = 10
  11900.     RangeBonus        = 1
  11901.     RangeBonusPerFoot    = #MULTIPLY( ELVEN_MIRKWOOD_ARCHER_RANGE .01 )
  11902.     
  11903.     DelayBetweenShots        = 1000
  11904.     LeechRangeWeapon        = Yes
  11905.     AcceptableAimDelta        = 45
  11906.     AntiAirborneVehicle        = Yes
  11907.     AntiAirborneMonster        = Yes
  11908.     CanFireWhileMoving        = Yes        ; When aboard a ship.
  11909.     FinishAttackOnceStarted = No
  11910.     HordeAttackNugget
  11911.     End
  11912. End
  11913.  
  11914. Weapon MirkwoodArcherMissileHordeRangefinderBombard
  11915.     AttackRange                = #SUBTRACT( ELVEN_MIRKWOOD_ARCHER_BOMBARD_MAXRANGE 100 ) 
  11916.     MinimumAttackRange        = ELVEN_MIRKWOOD_ARCHER_BOMBARD_MINRANGE
  11917.     
  11918.     RangeBonusMinHeight        = 10
  11919.     RangeBonus                = 1
  11920.     RangeBonusPerFoot        = #MULTIPLY( ELVEN_MIRKWOOD_ARCHER_BOMBARD_MAXRANGE .01 )
  11921.         
  11922.     DelayBetweenShots        = 1000
  11923.     LeechRangeWeapon        = Yes
  11924.     AcceptableAimDelta        = 45
  11925.     AntiAirborneVehicle        = Yes
  11926.     AntiAirborneMonster        = Yes
  11927.     CanFireWhileMoving        = Yes        ; When aboard a ship.
  11928.     FinishAttackOnceStarted = No
  11929.     NoVictimNeeded            = Yes
  11930.     BombardType                = Yes
  11931.     ScatterRadius            = ARCHER_BOMBARD_SCATTER_RADIUS        ; Only used for cursor radius
  11932.     
  11933.     HordeAttackNugget
  11934.     End
  11935. End
  11936.  
  11937. Weapon GoodArcherMissileHordeRangefinder
  11938.     AttackRange            = #SUBTRACT( GONDOR_ARCHER_RANGE 100 )
  11939.     
  11940.     RangeBonusMinHeight        = 10
  11941.     RangeBonus            = 1
  11942.     RangeBonusPerFoot        = #MULTIPLY( GONDOR_ARCHER_RANGE .01 ) ; attempting to match the % vision increase on the units vision range. 
  11943.     
  11944.     DelayBetweenShots        = 1000
  11945.     LeechRangeWeapon        = Yes
  11946.     AcceptableAimDelta        = 45
  11947.     AntiAirborneVehicle        = Yes
  11948.     AntiAirborneMonster        = Yes
  11949.     CanFireWhileMoving        = Yes        ; When aboard a ship.
  11950.     FinishAttackOnceStarted     = No
  11951.     HordeAttackNugget
  11952.     End
  11953. End
  11954.  
  11955. Weapon GoodArcherMissileHordeRangefinderBombard
  11956.     AttackRange                = #SUBTRACT( GONDOR_ARCHER_BOMBARD_MAXRANGE 100 ) 
  11957.     MinimumAttackRange        = GONDOR_ARCHER_BOMBARD_MINRANGE
  11958.     
  11959.     RangeBonusMinHeight        = 10
  11960.     RangeBonus                = 1
  11961.     RangeBonusPerFoot        = #MULTIPLY( GONDOR_ARCHER_BOMBARD_MAXRANGE .01 )
  11962.     
  11963.     DelayBetweenShots        = 1000
  11964.     LeechRangeWeapon        = Yes
  11965.     AcceptableAimDelta        = 45
  11966.     AntiAirborneVehicle        = Yes
  11967.     AntiAirborneMonster        = Yes
  11968.     CanFireWhileMoving        = Yes        ; When aboard a ship.
  11969.     FinishAttackOnceStarted = No
  11970.     NoVictimNeeded            = Yes ; For use with Bombard
  11971.     BombardType                = Yes
  11972.     ScatterRadius            = ARCHER_BOMBARD_SCATTER_RADIUS        ; Only used for cursor radius
  11973.     HordeAttackNugget
  11974.     End
  11975. End
  11976.  
  11977. Weapon GondorRangerMissileHordeRangefinder
  11978.     AttackRange            = #SUBTRACT( GONDOR_RANGER_RANGE 100 )
  11979.     
  11980.     RangeBonusMinHeight        = 10
  11981.     RangeBonus            = 1
  11982.     RangeBonusPerFoot        = #MULTIPLY( GONDOR_RANGER_RANGE .01 ) ; attempting to match the % vision increase on the units vision range. 
  11983.     
  11984.     DelayBetweenShots        = 1000
  11985.     LeechRangeWeapon        = Yes
  11986.     AcceptableAimDelta        = 45
  11987.     AntiAirborneVehicle        = Yes
  11988.     AntiAirborneMonster        = Yes
  11989.     CanFireWhileMoving        = Yes        ; When aboard a ship.
  11990.     FinishAttackOnceStarted     = No
  11991.     HordeAttackNugget
  11992.     End
  11993. End
  11994.  
  11995. Weapon GondorRangerMissileHordeRangefinderBombard
  11996.     AttackRange                = #SUBTRACT( GONDOR_RANGER_BOMBARD_MAXRANGE 100 ) 
  11997.     MinimumAttackRange        = GONDOR_RANGER_BOMBARD_MINRANGE
  11998.     
  11999.     RangeBonusMinHeight        = 10
  12000.     RangeBonus                = 1
  12001.     RangeBonusPerFoot        = #MULTIPLY( GONDOR_RANGER_BOMBARD_MAXRANGE .01 )
  12002.     
  12003.     DelayBetweenShots        = 1000
  12004.     LeechRangeWeapon        = Yes
  12005.     AcceptableAimDelta        = 45
  12006.     AntiAirborneVehicle        = Yes
  12007.     AntiAirborneMonster        = Yes
  12008.     CanFireWhileMoving        = Yes        ; When aboard a ship.
  12009.     FinishAttackOnceStarted = No
  12010.     NoVictimNeeded            = Yes ; For use with Bombard
  12011.     BombardType                = Yes
  12012.     ScatterRadius            = ARCHER_BOMBARD_SCATTER_RADIUS        ; Only used for cursor radius
  12013.     HordeAttackNugget
  12014.     End
  12015. End
  12016.  
  12017. Weapon ElvenArcherMissileHordeRangefinder
  12018.     AttackRange            = 330 ;250.0 ; Slightly shorter than the archer's actual weapon
  12019.     DelayBetweenShots        = 1000
  12020.     LeechRangeWeapon        = Yes
  12021.     AcceptableAimDelta        = 45
  12022.     AntiAirborneVehicle        = Yes
  12023.     AntiAirborneMonster        = Yes
  12024.     FinishAttackOnceStarted = No
  12025.     HordeAttackNugget
  12026.     End
  12027. End
  12028.  
  12029. Weapon MovingArcherMissileHordeRangefinder
  12030.     AttackRange            = 250.0 ; Slightly shorter than the archer's actual weapon
  12031.     DelayBetweenShots        = 1000
  12032.     LeechRangeWeapon        = Yes
  12033.     AcceptableAimDelta        = 45
  12034.     AntiAirborneVehicle        = Yes
  12035.     AntiAirborneMonster        = Yes
  12036.     FinishAttackOnceStarted = No
  12037.     CanFireWhileMoving        = Yes
  12038.     HordeAttackNugget
  12039.     End
  12040. End
  12041.  
  12042. Weapon NormalArtilleryHordeRangefinder
  12043.     AttackRange                = 450.0 ; Slightly shorter than the archer's actual weapon
  12044.     DelayBetweenShots        = 3500
  12045.     LeechRangeWeapon        = Yes
  12046.     AcceptableAimDelta        = 45
  12047.     AntiAirborneVehicle        = Yes
  12048.     AntiAirborneMonster        = Yes
  12049.     FinishAttackOnceStarted = No
  12050.     HordeAttackNugget
  12051.     End
  12052. End
  12053.  
  12054.  
  12055. ;------------------------------------------------------------------------------
  12056. ; The range finder for anti-ship ships
  12057.  
  12058. Weapon ShipMissileRangefinder
  12059.     AttackRange            = #SUBTRACT( EVIL_SHIP_ANTI_SHIP_WEAPON_RANGE 200 ) ; a lot shorter than the archer's actual weapon cause ships are quite long.
  12060.     MinimumAttackRange        = 25
  12061.     DelayBetweenShots        = 1000
  12062.     LeechRangeWeapon        = Yes
  12063.     AcceptableAimDelta        = 180        ; All round so we don't try and rotate towards a victim.
  12064.     AntiAirborneVehicle        = Yes
  12065.     AntiAirborneMonster        = Yes
  12066.     CanFireWhileMoving        = Yes        ; When aboard a ship.
  12067.     FinishAttackOnceStarted = No
  12068.     
  12069.     HordeAttackNugget
  12070.     End
  12071. End
  12072.  
  12073. ;------------------------------------------------------------------------------
  12074. Weapon ShortRangedMissileHordeRangefinder
  12075.     AttackRange            = MORDOR_HARADRIM_LANCER_HORDE_RANGE ; Slightly shorter than the archer's actual weapon
  12076.     DelayBetweenShots        = 50
  12077.     LeechRangeWeapon        = Yes
  12078.     AcceptableAimDelta        = 45
  12079.     AntiAirborneVehicle        = Yes
  12080.     AntiAirborneMonster        = Yes
  12081.     CanFireWhileMoving        = Yes        ; When aboard a mumakil.
  12082.     HitPassengerPercentage    = 10%
  12083.     FinishAttackOnceStarted = No
  12084.     HordeAttackNugget
  12085.     End
  12086. End
  12087. ; // Test weapon for the sea of bobbing heads unit
  12088. ;------------------------------------------------------------------------------
  12089. ;Weapon BobbingHeadsMeleeWeapon
  12090. ;  AttackRange           = 0.0
  12091. ;  MeleeWeapon           = Yes
  12092. ;  DelayBetweenShots     = 900               ; time between shots, msec
  12093. ;  PreAttackDelay        = 900
  12094. ;  PreAttackType         = PER_SHOT ; Do the delay each time we attack
  12095. ;  DamageNugget                        ; A basic Nugget that just does damage
  12096. ;    Damage        = 1
  12097. ;    Radius        = 0.0
  12098. ;    DelayTime     = 0
  12099. ;    DamageType    = FORCE
  12100. ;    DeathType     = NORMAL
  12101. ;  End
  12102. ;End
  12103.  
  12104. ;------------------------------------------------------------------------------
  12105. ; This is the normal punch, not the AOE, rock, siege or tree
  12106. Weapon MordorDrummerTrollPunch; BALANCE DrummerTroll Weapon Normal
  12107.   LeechRangeWeapon = Yes
  12108.   RadiusDamageAffects = ENEMIES 
  12109.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  12110.   MeleeWeapon           = Yes
  12111.   DelayBetweenShots     = MORDOR_DRUMMERTROLL_DELAYBETWEENSHOTS                        ; time between shots, msec
  12112.   FiringDuration        = MORDOR_DRUMMERTROLL_FIRINGDURATION                        ; min 1900 for anim
  12113.   PreAttackDelay        = MORDOR_DRUMMERTROLL_PREATTACKDELAY
  12114.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  12115.   PreAttackFX           = FX_TrollTreeSwing
  12116.   FireFX                = FX_TrollPunchGeneric                                ;FX_TrollTreeHit
  12117.   DamageDealtAtSelfPosition = Yes                                         ; A melee based AoE.  Arc radiates from me, not them
  12118.   AcceptableAimDelta    = 10.0 
  12119.  
  12120.   DamageNugget                        ; A basic Nugget that just does damage
  12121.     Damage        = MORDOR_DRUMMERTROLL_DAMAGE
  12122.     Radius        = 60.0
  12123.     DamageArc      = 50
  12124.     DamageType    = CRUSH
  12125.     DamageFXType  = CLUBBING
  12126.     DeathType     = NORMAL
  12127.   End
  12128.   MetaImpactNugget                    ; A Nugget that throws things back with force
  12129.     ShockWaveAmount   = 50.0
  12130.     ShockWaveRadius   = 60.0
  12131.     ShockWaveArc      = 90
  12132.     ShockWaveTaperOff = .75
  12133.     ShockWaveZMult    = 1.2
  12134. ;    HeroResist          = 0.90        ; 90% resistance to heroes
  12135.   End
  12136. End
  12137.  
  12138.  
  12139. ;------------------------------------------------------------------------------
  12140. ;Weapon RohanElvenWarriorSword
  12141. ;  LeechRangeWeapon      = Yes
  12142. ;  AttackRange           = 10.0
  12143. ;  MeleeWeapon           = Yes
  12144. ;  DelayBetweenShots     = ROHAN_ELVENWARRIOR_SWORD_DELAYBETWEENSHOTS           ; time between shots, msec
  12145. ;  OverrideVoiceAttackSound = ElvenWarriorVoiceAttack
  12146. ;  PreAttackDelay        = ROHAN_ELVENWARRIOR_SWORD_PREATTACKDELAY              ; 567 is sword swing delay time before contact with target.
  12147. ;  PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  12148. ;  FireFX                = FX_GondorSwordHit
  12149. ;  FiringDuration        = ROHAN_ELVENWARRIOR_SWORD_FIRINGDURATION     ; Duration of the sword swing
  12150. ;
  12151. ;  DamageNugget                        ; A basic Nugget that just does damage
  12152. ;    Damage        = ROHAN_ELVEN_MELEE_DAMAGE
  12153. ;    Radius        = 0.0
  12154. ;    DelayTime     = 0
  12155. ;    DamageType    = SPECIALIST
  12156. ;    DamageFXType  = SWORD_SLASH
  12157. ;    DeathType     = NORMAL
  12158. ;  End
  12159. ;End
  12160.  
  12161. ;------------------------------------------------------------------------------
  12162. ;Weapon ElvenArcherBow             ; BALANCE Elven Archer Weapon
  12163. ;  AttackRange               = 320.0
  12164. ;  WeaponSpeed               = 321         ; dist/sec 
  12165. ;  MinWeaponSpeed            = 241
  12166. ;  MaxWeaponSpeed            = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  12167. ;  FireFX                    = FX_RohanArcherBowWeapon
  12168. ;  ScaleWeaponSpeed          = Yes      ; Used for lob weapons, scales speed proportional to range
  12169. ;  HitPercentage             = 100      ;When this weapon is used it will hit exactly 100% of the time.
  12170. ;  ScatterRadius             = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  12171. ;  DelayBetweenShots         = 3000     ; time between shots, msec
  12172. ;  PreAttackDelay            = 1850     ; 1467 is the prep time for archer.
  12173. ;  PreAttackRandomAmount     = 200      ; amount of additional preattack variance for archer type attacks only  
  12174. ;  PreAttackType             = PER_SHOT ; Do the delay each time we attack a new target
  12175. ;  FiringDuration            = 1000     ; Duration of the archer firing shot is 500ms.
  12176. ;  IsAimingWeapon            = Yes
  12177. ;  AntiAirborneVehicle       = Yes
  12178. ;  AntiAirborneMonster        = Yes
  12179. ;  LeechRangeWeapon      = Yes
  12180. ;
  12181. ;  ProjectileNugget          ; Default arrow
  12182. ;    ProjectileTemplateName  = GoodFactionArrow
  12183. ;    WarheadTemplateName     = ElvenArcherBowWarhead
  12184. ;    ForbiddenUpgradeNames   = Upgrade_RohanFireArrows
  12185. ;  End
  12186. ;
  12187. ;  ProjectileNugget          ; Fire arrow available through fire upgrade
  12188. ;    ProjectileTemplateName  = GoodFactionFireArrow
  12189. ;    WarheadTemplateName     = GondorArcherBowWarhead
  12190. ;    RequiredUpgradeNames    = Upgrade_RohanFireArrows
  12191. ;  End
  12192. ;End
  12193.  
  12194. ;----------------------------
  12195. Weapon ElvenArcherBowWarhead
  12196.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  12197.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  12198.   HitStoredTarget = Yes    ; Always hits initial target.
  12199.   DamageNugget                        ; A basic Nugget that just does damage
  12200.     Damage        = ELVEN_MIRKWOOD_ARCHER_DAMAGE
  12201.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  12202.     DelayTime     = 0
  12203.     DamageType    = PIERCE
  12204.     DamageFXType  = GOOD_ARROW_PIERCE
  12205.     DeathType     = NORMAL
  12206.   End
  12207. End
  12208.  
  12209. Weapon ElvenArcherBowBombardWarhead
  12210.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  12211.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  12212.   HitStoredTarget = No
  12213.   DamageNugget                        ; A basic Nugget that just does damage
  12214.     Damage        = ELVEN_MIRKWOOD_ARCHER_DAMAGE
  12215.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  12216.     DelayTime     = 0
  12217.     DamageType    = PIERCE
  12218.     DamageFXType  = GOOD_ARROW_PIERCE
  12219.     DeathType     = NORMAL
  12220.   End
  12221. End
  12222.  
  12223. ;----------------------------
  12224. Weapon ElvenMirkwoodArcherBowWarhead
  12225.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  12226.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  12227.   HitStoredTarget = Yes    ; Always hits initial target.
  12228.   DamageNugget                        ; A basic Nugget that just does damage
  12229.     Damage        = ELVEN_MIRKWOOD_ARCHER_DAMAGE
  12230.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  12231.     DelayTime     = 0
  12232.     DamageType    = PIERCE
  12233.     DamageFXType  = GOOD_ARROW_PIERCE
  12234.     DeathType     = NORMAL
  12235.   End
  12236. End
  12237.  
  12238. Weapon ElvenMirkwoodArcherBowBombardWarhead
  12239.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  12240.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  12241.   HitStoredTarget = No
  12242.   DamageNugget                        ; A basic Nugget that just does damage
  12243.     Damage        = ELVEN_MIRKWOOD_ARCHER_DAMAGE
  12244.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  12245.     DelayTime     = 0
  12246.     DamageType    = PIERCE
  12247.     DamageFXType  = GOOD_ARROW_PIERCE
  12248.     DeathType     = NORMAL
  12249.   End
  12250. End
  12251.  
  12252. ;----------------------------
  12253. Weapon WargRiderWeapon
  12254.   LeechRangeWeapon        = Yes
  12255.   AttackRange           = 25.0
  12256.   MeleeWeapon           = Yes
  12257.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  12258.   PreAttackDelay        = ISENGARD_WARGRIDER_PREATTACKDELAY
  12259.   DelayBetweenShots     = ISENGARD_WARGRIDER_DELAYBETWEENSHOTS            ; time between shots, msec
  12260.   FiringDuration        = ISENGARD_WARGRIDER_FIRINGDURATION
  12261.   
  12262.   FireFX                = FX_GondorSwordHit
  12263.   ;AimDirection            = 270        ; In order to aim at something, we aim this far off (to the right would be aiming at -90 degrees)
  12264.   
  12265.   DamageNugget                        ; A basic Nugget that just does damage
  12266.     Damage        = ISENGARD_WARGRIDER_DAMAGE
  12267.     Radius        = 0.0
  12268.     DelayTime     = 0
  12269.     DamageType    = CAVALRY
  12270.     DamageFXType  = SWORD_SLASH
  12271.     DeathType     = NORMAL
  12272.   End  
  12273. End
  12274.  
  12275. ;----------------------------
  12276. Weapon SharkuWeapon
  12277.   LeechRangeWeapon        = Yes
  12278.   AttackRange           = 25.0
  12279.   MeleeWeapon           = Yes
  12280.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  12281.   PreAttackDelay        = 1250
  12282.   DelayBetweenShots     = ISENGARD_WARGRIDER_DELAYBETWEENSHOTS            ; time between shots, msec
  12283.   FiringDuration        = 750
  12284.   RequireFollowThru        = Yes
  12285.   IsAimingWeapon        = Yes
  12286.   AcceptableAimDelta    = 10 
  12287.   
  12288.   ClipSize                 = 1
  12289.   AutoReloadsClip         = Yes
  12290.   ClipReloadTime         = ISENGARD_WARGRIDER_FIRINGDURATION
  12291.   
  12292.   FireFX                = FX_GondorSwordHit
  12293.   AimDirection            = 270        ; In order to aim at something, we aim this far off (to the right would be aiming at -90 degrees)
  12294.   
  12295.   DamageNugget                        ; A basic Nugget that just does damage
  12296.     Damage        = SHARKU_DAMAGE
  12297.     Radius        = 0.0
  12298.     DelayTime     = 0
  12299.     DamageType    = HERO
  12300.     DamageFXType  = SWORD_SLASH
  12301.     DeathType     = NORMAL
  12302.   End  
  12303. End
  12304.  
  12305. ;----------------------------
  12306. Weapon WargRiderWeaponUpgraded
  12307.   LeechRangeWeapon        = Yes
  12308.   AttackRange           = 25.0
  12309.   MeleeWeapon           = Yes
  12310.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  12311.   PreAttackDelay        = ISENGARD_WARGRIDER_PREATTACKDELAY
  12312.   DelayBetweenShots     = ISENGARD_WARGRIDER_DELAYBETWEENSHOTS            ; time between shots, msec
  12313.   FiringDuration        = ISENGARD_WARGRIDER_FIRINGDURATION
  12314.   RequireFollowThru        = Yes
  12315.   IsAimingWeapon        = Yes
  12316.   AcceptableAimDelta    = 10 
  12317.   
  12318.   ClipSize                 = 1
  12319.   AutoReloadsClip         = Yes
  12320.   ClipReloadTime         = ISENGARD_WARGRIDER_FIRINGDURATION
  12321.   
  12322.   FireFX                = FX_GondorSwordHit
  12323. ;  AimDirection            = 270        ; In order to aim at something, we aim this far off (to the right would be aiming at -90 degrees)
  12324.   
  12325.   DamageNugget                        ; A basic Nugget that just does damage
  12326.     Damage        = ISENGARD_WARGRIDER_DAMAGE_UPGRADE
  12327.     Radius        = 0.0
  12328.     DelayTime     = 0
  12329.     DamageType    = CAVALRY
  12330.     DamageFXType  = SWORD_SLASH
  12331.     DeathType     = NORMAL
  12332.   End
  12333. End
  12334.  
  12335. ;------------------------------------------------------------------------------
  12336. Weapon WargRiderlessWeapon
  12337.   LeechRangeWeapon = Yes
  12338.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  12339.   MeleeWeapon           = Yes
  12340.   PreAttackDelay        = ISENGARD_WARGRIDER_WARG_PREATTACKDELAY
  12341.   DelayBetweenShots     = ISENGARD_WARGRIDER_WARG_DELAYBETWEENSHOTS            ; time between shots, msec
  12342.   FiringDuration        = ISENGARD_WARGRIDER_WARG_FIRINGDURATION
  12343.   FireFX                = FX_WargRiderlessAttack
  12344.  
  12345.   DamageNugget                        ; A basic Nugget that just does damage
  12346.     Damage        = ISENGARD_WARGRIDER_WARG_DAMAGE
  12347.     Radius        = 0.0
  12348.     DelayTime     = 0
  12349.     DamageType    = CAVALRY
  12350.     ;DamageFXType  = SWORD_SLASH
  12351.     DeathType     = NORMAL
  12352.     DamageScalar  = 10% ANY +STRUCTURE
  12353.   End
  12354. End
  12355.  
  12356. //------------------------------------------------------------------------------
  12357. Weapon WargSentryWargWeapon
  12358.     LeechRangeWeapon    = Yes
  12359.     AttackRange         = 30.0
  12360.     MeleeWeapon         = Yes
  12361.     PreAttackDelay        = ISENGARD_WARG_SENTRY_WARG_PREATTACKDELAY
  12362.     DelayBetweenShots   = ISENGARD_WARG_SENTRY_WARG_DELAYBETWEENSHOTS            // time between shots, msec
  12363.     FiringDuration        = ISENGARD_WARG_SENTRY_WARG_FIRINGDURATION
  12364.     FireFX              = FX_WargRiderlessAttack
  12365.  
  12366.     // A basic Nugget that just does damage
  12367.     DamageNugget                        
  12368.         Damage            = ISENGARD_WARG_SENTRY_WARG_DAMAGE
  12369.         Radius            = 0.0
  12370.         DelayTime        = 0
  12371.         DamageType        = CAVALRY
  12372.         ;DamageFXType    = SWORD_SLASH
  12373.         DeathType        = NORMAL
  12374.         DamageScalar    = 10% ANY +STRUCTURE
  12375.     End
  12376. End
  12377.  
  12378. ;------------------------------------------------------------------------------
  12379. Weapon GoodShipRangedAntiShipWeapon
  12380.     AttackRange                = GOOD_SHIP_ANTI_SHIP_WEAPON_RANGE
  12381.     MinimumAttackRange        = 0.0
  12382.     WeaponSpeed                = 401            ; dist/sec 
  12383.     MinWeaponSpeed            = 401
  12384.     PreAttackType            = PER_SHOT
  12385.     AcceptableAimDelta        = 180
  12386.     CanFireWhileMoving        = Yes            ; So we can shoot whilst shipping about
  12387.     FireFX                    = FX_GoodShipBowArrowWeaponFire        ;audio only
  12388.  
  12389.     PreAttackDelay            = 0                ; No time, the weapon is hidden so doesn't matter. We want asap.
  12390.     FiringDuration            = 0
  12391.     DelayBetweenShots        = 10    500        ; randomise
  12392.     LeechRangeWeapon        = Yes
  12393.     HitStoredTarget            = Yes
  12394.     AntiAirborneVehicle     = Yes
  12395.     AntiAirborneMonster        = Yes
  12396.  
  12397.     ClipSize                 = 5
  12398.     AutoReloadsClip         = Yes
  12399.     ClipReloadTime             = 100
  12400.       
  12401.     HitPercentage            = 100            ; Hit percentage must be 100% to allow it to target units on walls.  Otherwise becomes useless. .  
  12402.     ScatterRadius            = 0.0            ; When this weapon misses it can randomly miss by as much as this distance.
  12403.  
  12404.     ProjectileNugget
  12405.         ProjectileTemplateName  = MirkwoodArcherSilverthornProjectile
  12406.         WarheadTemplateName     = GoodShipRangedAntiShipWarhead
  12407.     End
  12408.  
  12409.     ProjectileNugget                                                    ; This nugget is to create a revealing object, so fire
  12410.         AlwaysAttackHereOffset    = X:0 Y:0 Z:0                            ; it directly on top of us, and just use an empty warhead
  12411.         UseAlwaysAttackOffset    = Yes                                    ; so we don't assert.
  12412.         ProjectileTemplateName  = ShroudRevealer_BattleShip
  12413.         WarheadTemplateName     = ShipRevealBombardWarhead_Dummy
  12414.     End
  12415.  
  12416. End
  12417.  
  12418. ;----------------------------
  12419. Weapon GoodShipRangedAntiShipWarhead
  12420.  
  12421.       RadiusDamageAffects = ENEMIES 
  12422.     HitStoredTarget        = Yes                        ; Always hits initial target.
  12423.     
  12424.       DamageNugget
  12425.         Damage        = GOOD_SHIP_ANTI_SHIP_WEAPON_DAMAGE
  12426.         Radius        = 0.0
  12427.         DelayTime     = 0
  12428.         DamageType    = PIERCE
  12429.         DamageFXType  = MAGIC
  12430.         DeathType     = EXPLODED
  12431.         DamageScalar  = 1% NONE +ShipWright
  12432.     End
  12433.  
  12434.     ; infantry meta impact just like a mirkwood arrow.
  12435.     MetaImpactNugget
  12436.         SpecialObjectFilter = NONE +INFANTRY
  12437.         ShockWaveAmount        = 50.0
  12438.         ShockWaveRadius        = 10.0
  12439.         ShockWaveArc        = 90                            ; in degrees to each side 180 is full circle
  12440.         ShockWaveTaperOff    = 1.0
  12441.         ShockWaveSpeed        = 0.0
  12442.         ShockWaveZMult        = 1.0
  12443.         OnlyWhenJustDied    = Yes
  12444.     End        
  12445.     
  12446. End
  12447.  
  12448. ;------------------------------------------------------------------------------
  12449. Weapon GoodShipRangedBombardWeapon
  12450.     AttackRange                = GOOD_SHIP_BOMBARD_WEAPON_RANGE
  12451.     MinimumAttackRange        = GOOD_SHIP_BOMBARD_WEAPON_MIN_RANGE
  12452.  
  12453.     WeaponSpeed                = 401            ; dist/sec 
  12454.     MinWeaponSpeed            = 401
  12455.     PreAttackType            = PER_SHOT
  12456.     AcceptableAimDelta        = 180
  12457.     CanFireWhileMoving        = No
  12458.     FireFX                    = FX_GoodShipRangedBombardWeapon            ;audio only
  12459.  
  12460.     PreAttackDelay            = 0                ; No time, the weapon is hidden so doesn't matter.
  12461.     FiringDuration            = 0
  12462.     DelayBetweenShots        = GOOD_SHIP_BOMBARD_WEAPON_FIRE_RATE
  12463.     LeechRangeWeapon        = Yes
  12464.     NoVictimNeeded            = Yes
  12465.  
  12466.     ClipSize                 = INFINITE_CLIP_SIZE
  12467.     AutoReloadsClip         = Yes
  12468.       
  12469.     HitPercentage            = 100                ; Hit percentage must be 100% to allow it to target units on walls.  Otherwise becomes useless. .  
  12470.     ScatterRadius            = 50.0            ; When this weapon misses it can randomly miss by as much as this distance.
  12471.     ScatterIndependently    = Yes
  12472.  
  12473.     ProjectileNugget
  12474.         ProjectileTemplateName  = GoodShipBombardProjectile
  12475.         WarheadTemplateName     = GoodShipRangedBombardWarhead
  12476.     End
  12477.     
  12478.     ProjectileNugget                                                    ; This nugget is to create a revealing object, so fire
  12479.         AlwaysAttackHereOffset    = X:0 Y:0 Z:0                            ; it directly on top of us, and just use an empty warhead
  12480.         UseAlwaysAttackOffset    = Yes                                    ; so we don't assert.
  12481.         ProjectileTemplateName  = ShroudRevealer_Bombard
  12482.         WarheadTemplateName     = ShipRevealBombardWarhead_Dummy
  12483.     End
  12484.  
  12485. End
  12486.  
  12487. ;----------------------------
  12488. Weapon GoodShipRangedBombardWarhead
  12489.  
  12490.       RadiusDamageAffects        = ENEMIES
  12491.     ProjectileCollidesWith    = ENEMIES
  12492.  
  12493.       DamageNugget
  12494.         Damage        = GOOD_SHIP_BOMBARD_WEAPON_DAMAGE
  12495.         Radius        = 50.0
  12496.         DelayTime     = 0
  12497.         DamageType    = SIEGE
  12498.         DamageFXType  = GOOD_ARROW_PIERCE
  12499.         DeathType     = NORMAL
  12500.         DamageScalar  = 1% NONE +ShipWright
  12501.     End
  12502.  
  12503.     MetaImpactNugget                                ; A Nugget that throws things back with force
  12504. ;        HeroResist            = .75
  12505.         ShockWaveAmount        = 50.0
  12506.         ShockWaveRadius        = 45.0
  12507.         ShockWaveTaperOff    = 0.5
  12508.     End
  12509.     
  12510. End
  12511.  
  12512. ;------------------------------------------------------------------------------
  12513. Weapon GoodShipFireWeapon
  12514.  
  12515.     RadiusDamageAffects            = ENEMIES ALLIES SELF
  12516.     AttackRange                    = 0
  12517.     MinimumAttackRange            = 0
  12518.     LeechRangeWeapon            = Yes
  12519.     AcceptableAimDelta            = 180        ; All round so we don't try and rotate towards a victim.
  12520.     DamageDealtAtSelfPosition    = Yes
  12521.     PreAttackType                = PER_SHOT
  12522.     PreAttackDelay                = 0
  12523.     FiringDuration                = 1
  12524.     AutoReloadsClip             = Yes
  12525.     ClipSize                     = INFINITE_CLIP_SIZE
  12526.     CanFireWhileMoving            = Yes
  12527.  
  12528.     DamageNugget
  12529.         Damage        = 1000000            ; always want to die
  12530.         Radius        = 0.0
  12531.         DelayTime     = 0
  12532.         DamageType    = FORCE
  12533.         DeathType     = EXTRA_2            ; to trigger the fire.
  12534.     End
  12535.  
  12536. End
  12537.  
  12538. ;------------------------------------------------------------------------------
  12539. Weapon EvilShipAntiShipWeapon
  12540.     AttackRange                = EVIL_SHIP_ANTI_SHIP_WEAPON_RANGE
  12541.     MinimumAttackRange        = 0.0
  12542.     WeaponSpeed                = 401            ; dist/sec 
  12543.     MinWeaponSpeed            = 401
  12544.     PreAttackType            = PER_SHOT
  12545.     AcceptableAimDelta        = 180
  12546.     CanFireWhileMoving        = Yes            ; So we can shoot whilst shipping about
  12547.     FireFX                    = FX_EvilShipBowArrowWeaponFire        ;audio only
  12548.  
  12549.     PreAttackDelay            = 0                ; No time, the weapon is hidden so doesn't matter. We want asap.
  12550.     FiringDuration            = 0
  12551.     DelayBetweenShots        = 10    500
  12552.     LeechRangeWeapon        = Yes
  12553.     HitStoredTarget            = Yes
  12554.     AntiAirborneVehicle     = Yes
  12555.     AntiAirborneMonster        = Yes
  12556.  
  12557.     ClipSize                 = 5
  12558.     AutoReloadsClip         = Yes
  12559.     ClipReloadTime             = 100
  12560.  
  12561.     HitPercentage            = 100            ; Hit percentage must be 100% to allow it to target units on walls.  Otherwise becomes useless. .  
  12562.     ScatterRadius            = 0.0            ; When this weapon misses it can randomly miss by as much as this distance.
  12563.  
  12564.     ProjectileNugget
  12565.         ProjectileTemplateName  = EvilFactionNavyFireArrow
  12566.         WarheadTemplateName     = EvilShipRangedAntiShipWarhead
  12567.     End
  12568.  
  12569.     ProjectileNugget                                                    ; This nugget is to create a revealing object, so fire
  12570.         AlwaysAttackHereOffset    = X:0 Y:0 Z:0                            ; it directly on top of us, and just use an empty warhead
  12571.         UseAlwaysAttackOffset    = Yes                                    ; so we don't assert.
  12572.         ProjectileTemplateName  = ShroudRevealer_BattleShip
  12573.         WarheadTemplateName     = ShipRevealBombardWarhead_Dummy
  12574.     End
  12575.  
  12576. End
  12577.  
  12578. ;----------------------------
  12579. Weapon EvilShipRangedAntiShipWarhead
  12580.  
  12581.       RadiusDamageAffects = ENEMIES 
  12582.     HitStoredTarget        = Yes    ; Always hits initial target.
  12583.     
  12584.       DamageNugget
  12585.         Damage        = EVIL_SHIP_ANTI_SHIP_WEAPON_DAMAGE
  12586.         Radius        = 0.0
  12587.         DelayTime     = 0
  12588.         DamageType    = FLAME
  12589.         DeathType     = BURNED
  12590.         DamageScalar  = 1% NONE +ShipWright
  12591.     End
  12592. End
  12593.  
  12594. ;------------------------------------------------------------------------------
  12595. Weapon EvilShipRangedBombardWeapon
  12596.     AttackRange                = EVIL_SHIP_BOMBARD_WEAPON_RANGE
  12597.     MinimumAttackRange        = EVIL_SHIP_BOMBARD_WEAPON_MIN_RANGE
  12598.  
  12599.     WeaponSpeed                = 301                                        ; dist/sec
  12600.     MinWeaponSpeed            = 301
  12601.     PreAttackType            = PER_SHOT
  12602.     AcceptableAimDelta        = 180
  12603.     CanFireWhileMoving        = No
  12604.     FireFX                    = FX_EvilShipRangedBombardWeapon            ;audio only
  12605.  
  12606.     PreAttackDelay            = 333
  12607.     FiringDuration            = 3000                                        ; Should match anim, as we can't use weapon timing in the anim state.
  12608.     DelayBetweenShots        = EVIL_SHIP_BOMBARD_WEAPON_FIRE_RATE
  12609.     LeechRangeWeapon        = Yes
  12610.     NoVictimNeeded            = Yes
  12611.  
  12612.     ClipSize                 = INFINITE_CLIP_SIZE
  12613.     AutoReloadsClip         = Yes
  12614.       
  12615.     HitPercentage            = 100                                        ; Hit percentage must be 100% to allow it to target units on walls.  Otherwise becomes useless. .  
  12616.     ScatterRadius            = 50.0                                        ; When this weapon misses it can randomly miss by as much as this distance.
  12617.     ScatterIndependently    = Yes
  12618.  
  12619.     ProjectileNugget
  12620.         ProjectileTemplateName  = EvilShipBombardProjectile
  12621.         WarheadTemplateName     = EvilShipRangedBombardWarhead
  12622.     End
  12623.     
  12624.     ProjectileNugget                                                    ; This nugget is to create a revealing object, so fire
  12625.         AlwaysAttackHereOffset    = X:0 Y:0 Z:0                            ; it directly on top of us, and just use an empty warhead
  12626.         UseAlwaysAttackOffset    = Yes                                    ; so we don't assert.
  12627.         ProjectileTemplateName  = ShroudRevealer_Bombard
  12628.         WarheadTemplateName     = ShipRevealBombardWarhead_Dummy
  12629.     End
  12630.  
  12631. End
  12632.  
  12633. ;----------------------------
  12634. Weapon ShipRevealBombardWarhead_Dummy
  12635. End
  12636.  
  12637. ;----------------------------
  12638. Weapon EvilShipRangedBombardWarhead
  12639.  
  12640.       RadiusDamageAffects        = ENEMIES
  12641.     ProjectileCollidesWith    = ENEMIES
  12642.  
  12643.       DamageNugget
  12644.         Damage        = EVIL_SHIP_BOMBARD_WEAPON_DAMAGE
  12645.         Radius        = 50.0
  12646.         DelayTime     = 0
  12647.         DamageType    = SIEGE
  12648.         DeathType     = NORMAL
  12649.         DamageScalar  = 1% NONE +ShipWright
  12650.     End
  12651.  
  12652.     MetaImpactNugget                                ; A Nugget that throws things back with force
  12653. ;        HeroResist            = .75
  12654.         ShockWaveAmount        = 50.0
  12655.         ShockWaveRadius        = 45.0
  12656.         ShockWaveTaperOff    = 0.5
  12657.     End
  12658.     
  12659. End
  12660.  
  12661. ;------------------------------------------------------------------------------
  12662. Weapon EvilShipExplodeWeapon
  12663.     
  12664.     RadiusDamageAffects = ENEMIES ALLIES NEUTRALS
  12665.     FireFX = FX_EvilExplode
  12666.     
  12667.     DamageNugget                                                ; A basic Nugget that just does damage
  12668.         Damage            = EVIL_FIRE_SHIP_WEAPON_DAMAGE_01
  12669.         Radius            = EVIL_FIRE_SHIP_WEAPON_RADIUS_01
  12670.         DelayTime        = 0
  12671.         DamageType        = FLAME
  12672.         DeathType        = BURNED
  12673.         DamageScalar  = 1% NONE +ShipWright
  12674.     End
  12675.     
  12676.     DamageNugget
  12677.         Damage            = EVIL_FIRE_SHIP_WEAPON_DAMAGE_02
  12678.         Radius            = EVIL_FIRE_SHIP_WEAPON_RADIUS_02
  12679.         DelayTime        = 250
  12680.         DamageType        = FLAME
  12681.         DeathType        = BURNED
  12682.         DamageScalar  = 1% NONE +ShipWright
  12683.         
  12684.     End
  12685.  
  12686.     DamageNugget
  12687.         Damage            = EVIL_FIRE_SHIP_WEAPON_DAMAGE_03
  12688.         Radius            = EVIL_FIRE_SHIP_WEAPON_RADIUS_03
  12689.         DelayTime        = 500
  12690.         DamageType        = FLAME
  12691.         DeathType        = BURNED
  12692.         DamageScalar  = 1% NONE +ShipWright
  12693.     End
  12694.  
  12695. End
  12696.  
  12697. ;------------------------------------------------------------------------------
  12698. Weapon EvilShipFireWeapon
  12699.  
  12700.     RadiusDamageAffects            = ENEMIES ALLIES SELF
  12701.     AttackRange                    = EVIL_FIRE_SHIP_RANGE
  12702.     MinimumAttackRange            = 0
  12703.     LeechRangeWeapon            = Yes
  12704.     AcceptableAimDelta            = 180        ; All round so we don't try and rotate towards a victim.
  12705.     DamageDealtAtSelfPosition    = Yes
  12706.     PreAttackType                = PER_SHOT
  12707.     PreAttackDelay                = 0
  12708.     FiringDuration                = 1
  12709.     AutoReloadsClip             = Yes
  12710.     ClipSize                     = INFINITE_CLIP_SIZE
  12711.     CanFireWhileMoving            = Yes
  12712.  
  12713.     DamageNugget
  12714.         Damage        = 1000000            ; always want to die
  12715.         Radius        = 0.0
  12716.         DelayTime     = 0
  12717.         DamageType    = FORCE
  12718.         DeathType     = EXTRA_2            ; to trigger the fire.
  12719.     End
  12720.  
  12721. End
  12722.  
  12723. //------------------------------------------------------------------------------
  12724. //Fake weapon so that the expansion will pick targets that the slaved catapult can attack
  12725. Weapon IsengardBallistaExpansionWeapon        
  12726.     AttackRange                    = ISENGARD_BALLISTA_RANGE
  12727.     MinimumAttackRange            = ISENGARD_BALLISTA_MINRANGE
  12728.     LeechRangeWeapon            = Yes
  12729.     DelayBetweenShots            = ISENGARD_BALLISTA_DELAYBETWEENSHOTS  
  12730.     PreAttackDelay                = ISENGARD_BALLISTA_PREATTACKDELAY
  12731.     FiringDuration              = ISENGARD_BALLISTA_FIRINGDURATION
  12732.     AcceptableAimDelta            = ISENGARD_BALLISTA_EXPANSION_AIM_DELTA  
  12733.     FinishAttackOnceStarted        = Yes    
  12734.  
  12735.     //This nugget tells the objects slave to perform the attack
  12736.     SlaveAttackNugget
  12737.     End
  12738. End
  12739.  
  12740. ;------------------------------------------------------------------------------
  12741. Weapon IsengardBallistaWeapon; BALANCE Ballista Weapon
  12742.     AttackRange = ISENGARD_BALLISTA_RANGE
  12743.     
  12744.     RangeBonusMinHeight    = 10
  12745.     RangeBonus        = 1
  12746.     RangeBonusPerFoot    = #MULTIPLY( ISENGARD_BALLISTA_RANGE .01 )
  12747.     
  12748.     MinimumAttackRange = 40.0
  12749.     WeaponSpeed = 401         ; dist/sec 
  12750.     MinWeaponSpeed = 401
  12751.  
  12752.     FXTrigger = CATAPULT_ROCK
  12753.     PreAttackType       = PER_SHOT ; Do the delay each time we attack a new target
  12754.  
  12755.     PreAttackDelay      = ISENGARD_BALLISTA_PREATTACKDELAY
  12756.     FiringDuration      = ISENGARD_BALLISTA_FIRINGDURATION
  12757.     DelayBetweenShots    = ISENGARD_BALLISTA_DELAYBETWEENSHOTS
  12758.     RequireFollowThru    = Yes
  12759.     NoVictimNeeded        = Yes ; Need no target
  12760.     LeechRangeWeapon = Yes
  12761.     
  12762.     ClipSize             = 1
  12763.     AutoReloadsClip     = Yes
  12764.     ClipReloadTime         = ISENGARD_BALLISTA_FIRINGDURATION
  12765.       
  12766.     HitPercentage       = 100 ; Hit percentage must be 100% to allow it to target units on walls.  Otherwise becomes useless. .  
  12767.     ScatterRadius       = 0.0     ;When this weapon misses it can randomly miss by as much as this distance.
  12768.  
  12769.     ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  12770.         ProjectileTemplateName = IsengardSiegeBallistaProjectile
  12771.         WarheadTemplateName = IsengardBallistaWeaponWarhead
  12772.     End
  12773.     
  12774.     ProjectileNugget                                                    ; This nugget is to create a revealing object, so fire
  12775.         AlwaysAttackHereOffset    = X:0 Y:0 Z:0                            ; it directly on top of us, and just use an empty warhead
  12776.         UseAlwaysAttackOffset    = Yes                                    ; so we don't assert.
  12777.         ProjectileTemplateName  = ShroudRevealer_Bombard
  12778.         WarheadTemplateName     = ShipRevealBombardWarhead_Dummy
  12779.     End
  12780. End
  12781.  
  12782. ;-----------------------------------
  12783. Weapon IsengardBallistaWeaponWarhead
  12784.   RadiusDamageAffects = ENEMIES ALLIES; NOT_SIMILAR
  12785.   DamageNugget                        ; A basic Nugget that just does damage
  12786.     Damage        = ISENGARD_BALLISTA_DAMAGE    ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  12787.     Radius         = 20.0
  12788.     DelayTime     = 0
  12789.     DamageType    = SIEGE
  12790.     DamageFXType  = BIG_ROCK
  12791.     DeathType     = EXPLODED
  12792.     DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  12793.   End
  12794.   
  12795.   DamageNugget                        ; A basic Nugget that just does damage
  12796.         Damage        = ISENGARD_BALLISTA_DAMAGE  ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  12797.         DamageTaperOff = 50
  12798.         Radius        = 100.0
  12799.         DelayTime     = 0
  12800.         DamageType    = SIEGE
  12801.         DamageFXType  = BIG_ROCK
  12802.         DeathType     = EXPLODED
  12803.         DamageScalar  = 0% ALL -WALL_UPGRADE -WALL_HUB -WALL_SEGMENT -DEFENSIVE_WALL            ; No damage to allied structures.
  12804.         ;DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  12805.   End
  12806.   
  12807.   
  12808.   
  12809.   MetaImpactNugget                    ; A Nugget that throws things back with force
  12810. ;    HeroResist            = .75
  12811.     ShockWaveAmount   = 10.0
  12812.     ShockWaveRadius   = 10.0
  12813.     ShockWaveTaperOff = 0.5
  12814.   End
  12815. End
  12816.  
  12817. ;-----------------------------------
  12818. Weapon IsengardBallistaWeaponWarhead_Structural
  12819.   RadiusDamageAffects = ENEMIES ALLIES; NOT_SIMILAR
  12820.   DamageNugget                        ; A basic Nugget that just does damage
  12821.     Damage        = ISENGARD_BALLISTA_DAMAGE    ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  12822.     Radius        = 20.0
  12823.     DelayTime     = 0
  12824.     DamageType    = SIEGE
  12825.     DamageFXType  = BIG_ROCK
  12826.     DeathType     = EXPLODED
  12827.     DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  12828.   End
  12829.   MetaImpactNugget                    ; A Nugget that throws things back with force
  12830. ;    HeroResist            = .75
  12831.     ShockWaveAmount   = 10.0
  12832.     ShockWaveRadius   = 10.0
  12833.     ShockWaveTaperOff = 0.5
  12834.   End
  12835. End
  12836.  
  12837. ;------------------------------------------------------------------------------
  12838. Weapon IsengardFortressBallistaWeapon    ;// BALANCE Fortress Ballista Weapon
  12839.     AttackRange            = ISENGARD_BALLISTA_RANGE
  12840.     MinimumAttackRange    = 40.0
  12841.     WeaponSpeed            = 401         ; dist/sec 
  12842.     MinWeaponSpeed        = 401
  12843.     FireFX                = FX_BallistaWeapon
  12844.     FXTrigger            = CATAPULT_ROCK
  12845.     PreAttackType       = PER_SHOT ; Do the delay each time we attack a new target
  12846.  
  12847.     PreAttackDelay      = ISENGARD_BALLISTA_PREATTACKDELAY
  12848.     FiringDuration      = ISENGARD_BALLISTA_FIRINGDURATION
  12849.     DelayBetweenShots    = ISENGARD_BALLISTA_DELAYBETWEENSHOTS
  12850.     RequireFollowThru    = Yes
  12851.     NoVictimNeeded        = Yes ; Need no target
  12852.     LeechRangeWeapon    = Yes
  12853.     
  12854.     ClipSize             = 1
  12855.     AutoReloadsClip     = Yes
  12856.     ClipReloadTime         = ISENGARD_BALLISTA_FIRINGDURATION
  12857.       
  12858.     HitPercentage       = 100 ; Hit percentage must be 100% to allow it to target units on walls.  Otherwise becomes useless. .  
  12859.     ScatterRadius       = 0.0     ;When this weapon misses it can randomly miss by as much as this distance.
  12860.  
  12861.     ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  12862.         ProjectileTemplateName    = IsengardSiegeBallistaProjectile
  12863.         WarheadTemplateName        = IsengardBallistaWeaponWarhead_Structural
  12864.         ForbiddenUpgradeNames    = Upgrade_EvilFortressFlamingMunitions
  12865.     End
  12866.  
  12867.     ProjectileNugget          ;// Upgraded ballista
  12868.         ProjectileTemplateName  = IsengardSiegeBallistaFireProjectile
  12869.         WarheadTemplateName     = IsengardBallistaWeaponUpgradedWarhead_Structural
  12870.         RequiredUpgradeNames    = Upgrade_EvilFortressFlamingMunitions
  12871.     End
  12872. End
  12873.  
  12874. ;-----------------------------------
  12875. Weapon IsengardBallistaWeaponUpgradedWarhead
  12876.     RadiusDamageAffects = ENEMIES ALLIES    ;// NOT_SIMILAR
  12877.     DamageNugget        ;//Adding Fire Damamge Nugget
  12878.         Damage            = 50
  12879.         Radius            = 0.0            ;// HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  12880.         DelayTime         = 0
  12881.         DamageType        = FLAME
  12882.         DamageFXType      = FLAME
  12883.         DeathType         = BURNED
  12884.     End    
  12885.     DamageNugget                        ;// A basic Nugget that just does damage
  12886.         Damage            = ISENGARD_BALLISTA_UPGRADED_DAMAGE    ;// Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  12887.         Radius         = 20.0
  12888.         DelayTime         = 0
  12889.         DamageType        = SIEGE
  12890.         DamageFXType      = BIG_ROCK
  12891.         DeathType         = EXPLODED
  12892.         DamageScalar    = 0% ANY ALLIES +STRUCTURE    ;// No damage to allied structures.
  12893.     End    
  12894.     MetaImpactNugget        ;// A Nugget that throws things back with force
  12895. ;        HeroResist            = .75
  12896.         ShockWaveAmount       = 10.0
  12897.         ShockWaveRadius       = 5.0
  12898.         ShockWaveTaperOff     = 0.5
  12899.     End
  12900.     
  12901.       DamageNugget                        ; A basic Nugget that just does damage
  12902.         Damage        = ISENGARD_BALLISTA_UPGRADED_DAMAGE  ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  12903.         DamageTaperOff = 50
  12904.         Radius        = 100.0
  12905.         DelayTime     = 0
  12906.         DamageType    = SIEGE
  12907.         DamageFXType  = BIG_ROCK
  12908.         DeathType     = EXPLODED
  12909.         DamageScalar  = 0% ALL -WALL_UPGRADE -WALL_HUB -WALL_SEGMENT -DEFENSIVE_WALL            ; No damage to allied structures.
  12910.         ;DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  12911.   End
  12912. End
  12913.  
  12914. ;-----------------------------------
  12915. Weapon IsengardBallistaWeaponUpgradedWarhead_Structural
  12916.     RadiusDamageAffects = ENEMIES ALLIES    ;// NOT_SIMILAR
  12917.     DamageNugget        ;//Adding Fire Damamge Nugget
  12918.         Damage            = 50
  12919.         Radius            = 0.0            ;// HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  12920.         DelayTime         = 0
  12921.         DamageType        = FLAME
  12922.         DamageFXType      = FLAME
  12923.         DeathType         = BURNED
  12924.     End    
  12925.     DamageNugget                        ;// A basic Nugget that just does damage
  12926.         Damage            = ISENGARD_BALLISTA_UPGRADED_DAMAGE    ;// Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  12927.         Radius            = 20.0
  12928.         DelayTime         = 0
  12929.         DamageType        = SIEGE
  12930.         DamageFXType      = BIG_ROCK
  12931.         DeathType         = EXPLODED
  12932.         DamageScalar    = 0% ANY ALLIES +STRUCTURE    ;// No damage to allied structures.
  12933.     End    
  12934.     MetaImpactNugget        ;// A Nugget that throws things back with force
  12935. ;        HeroResist            = .75
  12936.         ShockWaveAmount       = 10.0
  12937.         ShockWaveRadius       = 5.0
  12938.         ShockWaveTaperOff     = 0.5
  12939.     End
  12940. End
  12941.  
  12942. ;------------------------------------------------------------------------------
  12943.  
  12944. Weapon RohanEowynSmiteThrown
  12945.     AttackRange            = 300.0
  12946.     LeechRangeWeapon        = Yes
  12947.     WeaponSpeed            = 161                    ; dist/sec 
  12948.     MinWeaponSpeed            = 201
  12949.     MaxWeaponSpeed            = 241                    ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  12950.     FireFX                = FX_EowynSmiteSpearThrow
  12951.     ScaleWeaponSpeed        = Yes                    ; Used for lob weapons, scales speed proportional to range
  12952.     HitPercentage            = 100
  12953.     ScatterRadius            = 0.0                    ; When this weapon misses it can randomly miss by as much as this distance.
  12954.     DelayBetweenShots        = 1                ; time between shots, msec
  12955.     PreAttackDelay            = 1                    ; 1467 is the prep time for archer.
  12956.     PreAttackType            = PER_SHOT                ; Do the delay each time we attack a new target
  12957.     FiringDuration            = 1                ; Duration of the archer firing shot is 500ms.
  12958.  
  12959.     ProjectileNugget
  12960.         ProjectileTemplateName    = RohanEomerSpearProjectile
  12961.         WarheadTemplateName    = RohanEowynSmiteWarhead
  12962.     End
  12963. End
  12964.  
  12965. ;------------------------------------------------------------------------------
  12966.  
  12967. Weapon RohanEowynSmiteWarhead
  12968.     ProjectileCollidesWith    = ENEMIES NEUTRAL STRUCTURES WALLS 
  12969.     RadiusDamageAffects    = ENEMIES NEUTRALS NOT_SIMILAR
  12970.     FireFX            = FX_GondorSwordHit
  12971.     HitStoredTarget        = Yes                        ;Always hits initial target.
  12972.     DamageNugget
  12973.         Damage        = EOWYN_SMITE_DAMAGE
  12974.         DamageScalar    = 5% NONE +STRUCTURE
  12975.         DamageScalar    = 400% NONE +MordorFellBeast +MordorWitchKingOnFellBeast +GondorGwaihir
  12976.         Radius        = 0.0            ;HitStoredTarget means we hurt the person we launched at.    And nobody else.    So a miss hurts nobody.
  12977.         DelayTime        = 0
  12978.         DamageType        = MAGIC
  12979.         DamageFXType    = SWORD_SLASH
  12980.         DeathType        = NORMAL
  12981.     End
  12982. End
  12983.  
  12984. ;------------------------------------------------------------------------------
  12985.  
  12986. Weapon RohanEomerSpear                        ; BALANCE Rohan Eomer Spear Weapon
  12987.     AttackRange         = 300.0
  12988.     LeechRangeWeapon        = Yes
  12989.     WeaponSpeed            = 261                ; dist/sec 
  12990.     MinWeaponSpeed        = 161
  12991.     MaxWeaponSpeed         = 301                ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  12992.     FireFX             = FX_EomerSpearThrow
  12993.     ScaleWeaponSpeed         = Yes                ; Used for lob weapons, scales speed proportional to range
  12994.     HitPercentage        = 100
  12995.     ScatterRadius         = 0.0                ;When this weapon misses it can randomly miss by as much as this distance.
  12996.     AntiAirborneVehicle     = Yes
  12997.     AntiAirborneMonster    = Yes
  12998.  
  12999.     PreAttackDelay        = 1
  13000.     PreAttackType        = PER_SHOT            ; Do the delay each time we attack a new target
  13001.     FiringDuration        = 2000            ; Duration of the archer firing shot is 500ms.
  13002.     HoldAfterFiringDelay    = 2000
  13003.  
  13004.     ProjectileNugget                        ; A Nugget that creates an Object and sends it to the target with a Warhead
  13005.         ProjectileTemplateName    = RohanEomerSpearProjectile
  13006.         WarheadTemplateName    = RohanEomerSpearWarhead
  13007.     End
  13008. End
  13009.  
  13010. ;-----------------------------------
  13011.  
  13012. Weapon RohanEomerSpearWarhead
  13013.     RadiusDamageAffects    = ENEMIES NEUTRALS NOT_SIMILAR 
  13014.     FireFX            = FX_GondorSwordHit
  13015.     HitStoredTarget        = Yes
  13016.     DamageNugget                                        ; A basic Nugget that just does damage
  13017.         ;Eomer ONLY
  13018.         Damage        = EOMER_SPEAR_DAMAGE    
  13019.         DamageScalar    = 5% NONE +STRUCTURE            
  13020.         Radius        = 10
  13021.         DelayTime        = 0
  13022.         DamageType        = HERO
  13023.         DamageFXType    = SWORD_SLASH
  13024.         DeathType        = NORMAL
  13025.         ForbiddenUpgradeNames    = Upgrade_CreateAHeroThrowSpear_Level1 Upgrade_CreateAHeroThrowSpear_Level2 Upgrade_CreateAHeroThrowSpear_Level3
  13026.     End
  13027.     DamageNugget                                        ; A basic Nugget that just does damage
  13028.         ;Create a hero level 1 power!
  13029.         Damage        = CAH_SPEAR_DAMAGE_LVL1    
  13030.         DamageScalar    = 5% NONE +STRUCTURE            
  13031.         Radius        = 10
  13032.         DelayTime        = 0
  13033.         DamageType        = HERO
  13034.         DamageFXType    = SWORD_SLASH
  13035.         DeathType        = NORMAL
  13036.         RequiredUpgradeNames    = Upgrade_CreateAHeroThrowSpear_Level1
  13037.         ForbiddenUpgradeNames    = Upgrade_CreateAHeroThrowSpear_Level2 Upgrade_CreateAHeroThrowSpear_Level3
  13038.     End
  13039.     DamageNugget                                        ; A basic Nugget that just does damage
  13040.         ;Create a hero level 2 power!
  13041.         Damage        = CAH_SPEAR_DAMAGE_LVL2    
  13042.         DamageScalar    = 5% NONE +STRUCTURE            
  13043.         Radius        = 10
  13044.         DelayTime        = 0
  13045.         DamageType        = HERO
  13046.         DamageFXType    = SWORD_SLASH
  13047.         DeathType        = NORMAL
  13048.         RequiredUpgradeNames    = Upgrade_CreateAHeroThrowSpear_Level2
  13049.         ForbiddenUpgradeNames    = Upgrade_CreateAHeroThrowSpear_Level3
  13050.     End
  13051.     DamageNugget                                        ; A basic Nugget that just does damage
  13052.         ;Create a hero level 3 power!
  13053.         Damage        = CAH_SPEAR_DAMAGE_LVL3    
  13054.         DamageScalar    = 5% NONE +STRUCTURE            
  13055.         Radius        = 10
  13056.         DelayTime        = 0
  13057.         DamageType        = HERO
  13058.         DamageFXType    = SWORD_SLASH
  13059.         DeathType        = NORMAL
  13060.         RequiredUpgradeNames    = Upgrade_CreateAHeroThrowSpear_Level3
  13061.     End
  13062. End
  13063.  
  13064. ;------------------------------------------------------------------------------
  13065. Weapon GamlingSword
  13066.   LeechRangeWeapon      = Yes
  13067.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  13068.   MeleeWeapon           = Yes
  13069.   DelayBetweenShots     = GAMLING_DELAYBETWEENSHOTS             
  13070.              ; time between shots, msec
  13071.   PreAttackDelay        = GAMLING_PREATTACKDELAY                 ; 400 is sword swing delay time before contact with target.
  13072.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  13073.   FireFX                = FX_GondorSwordHit
  13074.   FiringDuration        = GAMLING_FIRINGDURATION                 ; Duration of the sword swing
  13075.  
  13076.   DamageNugget                        ; A basic Nugget that just does damage
  13077.     Damage        = GAMLING_DAMAGE                    
  13078.     Radius        = 0.0
  13079.     DelayTime     = 0
  13080.     DamageType    = HERO
  13081.     DamageFXType  = SWORD_SLASH
  13082.     DeathType     = NORMAL
  13083.   End
  13084. End
  13085.  
  13086. ;-----------------------------------
  13087.  
  13088. Weapon TheodenSword
  13089.   LeechRangeWeapon        = Yes
  13090.   AttackRange           = 25.0
  13091.   MeleeWeapon           = Yes
  13092.   DelayBetweenShots     = THEODEN_DELAYBETWEENSHOTS ; time between shots, msec
  13093.   FireFX                = FX_GondorSwordHit
  13094.   PreAttackDelay        = THEODEN_PREATTACKDELAY ; 400 is sword swing delay time before contact with target.
  13095.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  13096.   FiringDuration        = THEODEN_FIRINGDURATION ; Duration of the sword swing
  13097.   DamageNugget                        ; A basic Nugget that just does damage
  13098.     Damage        = THEODEN_DAMAGE
  13099.     Radius        = 0.0
  13100.     DelayTime     = 0
  13101.     DamageType    = HERO
  13102.     DamageFXType  = SWORD_SLASH
  13103.     DeathType     = NORMAL
  13104.   End
  13105. End
  13106.  
  13107. ;-----------------------------------
  13108. Weapon TheodenSwordMounted
  13109.   LeechRangeWeapon        = Yes
  13110.   AttackRange           = 25.0
  13111.   MeleeWeapon           = Yes
  13112.   DelayBetweenShots     = THEODEN_MOUNTED_DELAYBETWEENSHOTS ; time between shots, msec
  13113.   FireFX                = FX_GondorSwordHit
  13114.   PreAttackDelay        = THEODEN_MOUNTED_PREATTACKDELAY is sword swing delay time before contact with target.
  13115.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  13116.   FiringDuration        = THEODEN_MOUNTED_FIRINGDURATION ; Duration of the sword swing
  13117.   DamageNugget                        ; A basic Nugget that just does damage
  13118.     Damage        = THEODEN_MOUNTED_DAMAGE
  13119.     Radius        = 0.0
  13120.     DelayTime     = 0
  13121.     DamageType    = HERO
  13122.     DamageFXType  = SWORD_SLASH
  13123.     DeathType     = NORMAL
  13124.   End
  13125. End
  13126.  
  13127. ;-----------------------------------
  13128. Weapon EomerSword
  13129.   LeechRangeWeapon        = Yes
  13130.   AttackRange           = 25.0
  13131.   MeleeWeapon           = Yes
  13132.   DelayBetweenShots     = EOMER_DELAYBETWEENSHOTS     ; time between shots, msec
  13133.   FireFX                = FX_GondorSwordHit
  13134.   PreAttackDelay        = EOMER_PREATTACKDELAY                 ; 400 is sword swing delay time before contact with target.
  13135.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  13136.   FiringDuration        = EOMER_FIRINGDURATION         ; Duration of the sword swing
  13137.   DamageNugget                        ; A basic Nugget that just does damage
  13138.     Damage        = EOMER_DAMAGE                    
  13139.     Radius        = 0.0
  13140.     DelayTime     = 0
  13141.     DamageType    = HERO
  13142.     DamageFXType  = SWORD_SLASH
  13143.     DeathType     = NORMAL
  13144.   End
  13145. End
  13146.  
  13147.  
  13148. ;------------------------------------------------------------------------------
  13149. Weapon EowynSword ; BALANCE Eowyn Sword Weapon
  13150.   LeechRangeWeapon      = Yes
  13151.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  13152.   MeleeWeapon           = Yes
  13153.   WeaponSpeed           = 799999.2        ; dist/sec (huge value == effectively instant)
  13154.   DelayBetweenShots     = EOWYN_DELAYBETWEENSHOTS             ; time between shots, msec
  13155.   PreAttackDelay        = EOWYN_PREATTACKDELAY     ; 433 is natural time of the stabbing animation.
  13156.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  13157.   FiringDuration        = EOWYN_FIRINGDURATION             ; min 600 for anim
  13158.   FireFX                = FX_GondorSwordHit
  13159.  
  13160.   DamageNugget
  13161.     Damage        = EOWYN_DAMAGE
  13162.     Radius        = 0.0
  13163.     DelayTime     = 0
  13164.     DamageType    = HERO
  13165.     DamageFXType  = SWORD_SLASH
  13166.     DeathType     = NORMAL
  13167.   End
  13168. End
  13169.  
  13170. ;------------------------------------------------------------------------------
  13171. Weapon ArwenSword ; BALANCE Arwen Sword Weapon
  13172.   LeechRangeWeapon      = Yes
  13173.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  13174.   MeleeWeapon           = Yes
  13175.   WeaponSpeed           = 799999.2        ; dist/sec (huge value == effectively instant)
  13176.   DelayBetweenShots     = ARWEN_DELAYBETWEENSHOTS             ; time between shots, msec
  13177.   PreAttackDelay        = ARWEN_PREATTACKDELAY     ; 433 is natural time of the stabbing animation.
  13178.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  13179.   FiringDuration        = ARWEN_FIRINGDURATION             ; min 600 for anim
  13180.   FireFX                = FX_GondorSwordHit
  13181.  
  13182.   DamageNugget
  13183.     Damage        = ARWEN_DAMAGE
  13184.     Radius        = 0.0
  13185.     DelayTime     = 0
  13186.     DamageType    = HERO
  13187.     DamageFXType  = SWORD_SLASH
  13188.     DeathType     = NORMAL
  13189.   End
  13190. End
  13191.  
  13192. ;------------------------------------------------------------------------------
  13193. Weapon ArwenPersonalFlood
  13194.     FireFX                    = FX_ArwenFlood
  13195.     AttackRange                = 150
  13196.  
  13197.     WeaponOCLNugget
  13198.         WeaponOCLName        = OCL_ArwenPersonalFlood
  13199.     End
  13200.  
  13201.     FireLogicNugget
  13202.         LogicType        = DECREASE_BURN_RATE
  13203.         Radius            = ARWEN_FLOOD_DECREASEBURNRATE_RADIUS
  13204.         Damage            = ARWEN_FLOOD_DECREASEBURNRATE_AMOUNT
  13205.         DelayTime        = 200  
  13206.     End
  13207. End
  13208.  
  13209. ;------------------------------------------------------------------------------
  13210. Weapon ElvenFloodgateWeapon
  13211.   AttackRange               = ELVEN_FLOODGATEEXPANSION_RANGE    
  13212.   HitPercentage             = 100                                        ;//When this weapon is used it will hit exactly 50% of the time.    
  13213.   PreAttackDelay            = ELVEN_FLOODGATEEXPANSION_PREATTACKDELAY   ;//prep time for the unit/structure to fire.
  13214.   PreAttackType             = PER_SHOT                                    ;//Do the delay each time we attack a new target
  13215.   FiringDuration            = ELVEN_FLOODGATEEXPANSION_FIRINGDURATION   ;//Duration of the archer firing shot is 500ms.  
  13216.   AcceptableAimDelta        = 180.0                                        ;//We want to be able to shoot all round, as we cant move.
  13217.   DelayBetweenShots         = ELVEN_FLOODGATEEXPANSION_DELAYBETWEENSHOTS
  13218.  
  13219.     WeaponOCLNugget
  13220.         WeaponOCLName = OCL_ElvenFloodgateFlood
  13221.     End
  13222.  
  13223.     FireLogicNugget
  13224.         LogicType        = DECREASE_BURN_RATE
  13225.         Radius            = ELVEN_FLOODGATEEXPANSION_DECREASEBURNRATE_RADIUS
  13226.         Damage            = ELVEN_FLOODGATEEXPANSION_DECREASEBURNRATE_AMOUNT
  13227.     End
  13228. End
  13229.  
  13230. ;------------------------------------------------------------------------------
  13231. ; This is the weapon used by crushing buildings.  It's supposed to kill everything it hits.
  13232. Weapon ToppledStructureWeapon
  13233.     RadiusDamageAffects = ENEMIES NEUTRALS ALLIES NOT_SIMILAR
  13234.     AttackRange = 80.0
  13235.     WeaponSpeed = 79999.2
  13236.     DelayBetweenShots = 0                   ; time between shots, msec
  13237.     ClipSize = 1                        ; how many shots in a Clip (0 == infinite)
  13238.     ClipReloadTime = 0               ; how long to reload a Clip, msec
  13239.     AutoReloadsClip = No 
  13240.     DamageNugget                        ; A basic Nugget that just does damage
  13241.         Damage        = 9999.0
  13242.         Radius        = 16.0
  13243.         DelayTime     = 0
  13244.         DamageType    = SIEGE
  13245.         DamageFXType  = SMALL_ROCK
  13246.         DeathType     = NORMAL
  13247.     End
  13248. End
  13249. ;------------------------------------------------------------------------------
  13250. Weapon SarumanWeapon ;BALANCE Saruman
  13251.   IdleAfterFiringDelay  = 0
  13252.   LeechRangeWeapon      = Yes
  13253.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  13254.   MeleeWeapon           = Yes
  13255.   DelayBetweenShots     = SARUMAN_DELAYBETWEENSHOTS             ; time between shots, msec
  13256.   PreAttackDelay        = SARUMAN_PREATTACKDELAY                 ; 433 is natural time of the stabbing animation.
  13257.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  13258.   FiringDuration        = SARUMAN_FIRINGDURATION                 ; min 600 for anim
  13259.   FireFX                = FX_GondorSwordHit
  13260.   DamageNugget                        ; A basic Nugget that just does damage
  13261.     Damage        = SARUMAN_DAMAGE                    
  13262.     Radius        = 0.0
  13263.     DelayTime     = 0
  13264.     DamageType    = HERO
  13265.     DamageFXType  = SWORD_SLASH
  13266.     DeathType     = NORMAL
  13267.   End
  13268.     MetaImpactNugget                         ; A Nugget that throws things back with force
  13269. ;        HeroResist        =  0.75
  13270.         ShockWaveAmount   = 40.00
  13271.         ShockWaveRadius   = 10
  13272.         ShockWaveTaperOff =  0.75
  13273.         ShockWaveZMult    =  1.20
  13274.     End
  13275. End
  13276.  
  13277. ;------------------------------------------------------------------------------
  13278. Weapon SarumanLightningBlastWeapon
  13279.     AttackRange                    = SARUMAN_LIGHTNING_RANGE                ;600
  13280.     WeaponSpeed                    = 801      ; dist/sec 
  13281.     HitPercentage                = 100        ; When this weapon is used it will hit exactly 100% of the time.
  13282.     DelayBetweenShots            = 4500        ; time between shots, msec
  13283.     PreAttackDelay            = 200  ; 1467 is the prep time for archer.  
  13284.     PreAttackType             = PER_SHOT ; Do the delay each time we attack a new target
  13285.     FiringDuration            = 1   ; Duration of the archer firing shot is 500ms.
  13286.     FireFX                        = FX_SarumanLightning        ;audio only
  13287.     FiringDuration              = 50
  13288.     AntiAirborneVehicle            = Yes
  13289.     AntiAirborneMonster            = Yes
  13290.  
  13291.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  13292.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS
  13293.  
  13294.     DamageNugget                        ; A basic Nugget that just does damage
  13295.         Damage                = SARUMAN_LIGHTNING_DAMAGE_FLAME            
  13296.         DamageType            = FLAME
  13297.         DamageFXType          = BOLT
  13298.         DeathType             = BURNED
  13299.         Radius                 = SARUMAN_LIGHTNING_RADIUS
  13300.         DelayTime             = 200  
  13301.     End
  13302.  
  13303.     DamageNugget                        ; A basic Nugget that just does damage
  13304.         Damage                = SARUMAN_LIGHTNING_DAMAGE            
  13305.         DamageType            = MAGIC
  13306.         DamageFXType          = ELECTRIC
  13307.         DeathType             = BURNED
  13308.         Radius                 = SARUMAN_LIGHTNING_RADIUS
  13309.     End
  13310.     
  13311.     MetaImpactNugget                    ; A Nugget that throws things back with force
  13312. ;        HeroResist          =   0.75
  13313.         ShockWaveAmount        = 90.0
  13314.         ShockWaveRadius        = 100
  13315.         ShockWaveTaperOff    = 0.2
  13316.         DelayTime            = 200        ;The target is dying before the laser appears in the new laser tweak, so try to kill when the laser turns on
  13317.     End
  13318.  
  13319.     WeaponOCLNugget
  13320.         WeaponOCLName    = OCL_SarumanLightningBlastLighting
  13321.     End
  13322.     
  13323. End
  13324. ;------------------------------------------------------------------------------
  13325. Weapon WormtongueWeapon ;BALANCE Wormtongue
  13326.   IdleAfterFiringDelay  = 0
  13327.   LeechRangeWeapon      = Yes
  13328.   AttackRange           = WORMTONGUE_WEAPON_RANGE
  13329.   MeleeWeapon           = Yes
  13330.   DelayBetweenShots     = WORMTONGUE_DELAYBETWEENSHOTS             ; time between shots, msec
  13331.   PreAttackDelay        = WORMTONGUE_PREATTACKDELAY                 ; 433 is natural time of the stabbing animation.
  13332.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  13333.   FiringDuration        = WORMTONGUE_FIRINGDURATION                 ; min 600 for anim
  13334.   FireFX                = FX_GondorSwordHit
  13335.   DamageNugget                        ; A basic Nugget that just does damage
  13336.     Damage        = WORMTONGUE_DAMAGE                    
  13337.     Radius        = 0.0
  13338.     DelayTime     = 0
  13339.     DamageType    = HERO
  13340.     DamageFXType  = SWORD_SLASH
  13341.     DeathType     = NORMAL
  13342.   End
  13343. End
  13344.  
  13345. Weapon WormtongueBackstab
  13346.     IdleAfterFiringDelay    = 0
  13347.     LeechRangeWeapon        = Yes
  13348.     AttackRange                = WORMTONGUE_WEAPON_RANGE
  13349.     MeleeWeapon                = Yes
  13350.     DelayBetweenShots        = WORMTONGUE_DELAYBETWEENSHOTS
  13351.     PreAttackDelay            = WORMTONGUE_PREATTACKDELAY
  13352.     PreAttackType            = PER_SHOT
  13353.     FiringDuration            = WORMTONGUE_FIRINGDURATION
  13354.     FireFX                    = FX_WormtongueBackstab
  13355.     DamageNugget
  13356.         Damage                = WORMTONGUE_BACKSTAB_DAMAGE
  13357.         Radius                = 0.0
  13358.         DelayTime            = 0
  13359.         DamageType            = HERO
  13360.         DamageFXType        = FIRE3
  13361.         DeathType            = NORMAL
  13362.     End
  13363.     DOTNugget
  13364.         Damage                = DEFAULT_POISON_DAMAGE
  13365.         Radius                = 0.0
  13366.         DelayTime            = 0
  13367.         DamageType            = POISON
  13368.         DamageFXType        = POISON
  13369.         DeathType            = NORMAL
  13370.         DamageInterval        = 1000
  13371.         DamageDuration        = 20000
  13372.         SpecialObjectFilter    = AFFECTED_BY_POISON_OBJECTFILTER
  13373.     End
  13374. End
  13375.  
  13376. ;------------------------------------------------------------------------------
  13377. Weapon BattleWagonOilBarrel
  13378.     LeechRangeWeapon            = Yes
  13379.     AttackRange                    = BATTLEWAGON_OILBARREL_RANGE
  13380.     WeaponSpeed                    = 100
  13381.     MinWeaponSpeed                = 80
  13382.     MaxWeaponSpeed                = 150
  13383.     ScaleWeaponSpeed            = Yes
  13384.     HitPercentage                = 100
  13385.     PreAttackType                = PER_SHOT
  13386.     FiringDuration                = 0
  13387.     FireFX                        = FX_OilBarrelLaunch
  13388.     DamageType                    = FLAME
  13389.     AcceptableAimDelta            = 180
  13390.     
  13391.     ProjectileNugget
  13392.         ProjectileTemplateName    = BattleWagonOilBarrelProjectile
  13393.         WarheadTemplateName        = BattleWagonOilBarrelWarhead
  13394.     End
  13395.     
  13396.  
  13397.     
  13398. End
  13399.  
  13400. ;------------------------------------------------------------------------------
  13401. Weapon BattleWagonOilBarrelWarhead
  13402.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS
  13403.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR MINES ; ALLIES
  13404.  
  13405.     DamageNugget
  13406.         Damage        = BATTLEWAGON_OILBARREL_IMPACT_DAMAGE
  13407.         Radius        = BATTLEWAGON_OILBARREL_IMPACT_DAMAGE_RADIUS
  13408.         DelayTime     = 0
  13409.         DamageType    = CRUSH
  13410.         DamageFXType  = FLAME
  13411.         DeathType     = CRUSHED
  13412.     End
  13413.  
  13414.     FireLogicNugget
  13415.         LogicType        = INCREASE_BURN_RATE
  13416.         Radius            = 1
  13417.         Damage            = 40
  13418.     End    
  13419.  
  13420.     FireLogicNugget
  13421.         LogicType        = INCREASE_FUEL
  13422.         Radius            = 40
  13423.         Damage            = 20
  13424.         MinMaxBurnRate        = 40
  13425.         MinDecay        = 25
  13426.         MaxResistance        = 1
  13427.     End    
  13428.     
  13429.  
  13430.     
  13431. End
  13432.  
  13433. ;------------------------------------------------------------------------------
  13434. Weapon SarumanFireball ;BALANCE Saruman
  13435.   LeechRangeWeapon            = Yes
  13436.   AttackRange               = SARUMAN_FIREBALL_RANGE        ; set this in his special power
  13437.   WeaponSpeed               = 150         ; dist/sec 
  13438.   MinWeaponSpeed            = 100
  13439.   MaxWeaponSpeed            = 200      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  13440.   ScaleWeaponSpeed          = Yes      ; Used for lob weapons, scales speed proportional to range
  13441.   HitPercentage             = 100      ;When this weapon is used it will hit exactly 100% of the time.
  13442.   ScatterRadius             = 0.0     ;When this weapon misses it can randomly miss by as much as this distance.
  13443.   DelayBetweenShots         = 5000     ; time between shots, msec
  13444.   PreAttackDelay            = 1     ; 1467 is the prep time for archer.
  13445.   PreAttackRandomAmount     = 0      ; amount of additional preattack variance for archer type attacks only  
  13446.   PreAttackType             = PER_SHOT ; Do the delay each time we attack a new target
  13447.   FiringDuration            = 1     ; Duration of the archer firing shot is 500ms.
  13448.   IsAimingWeapon            = Yes
  13449.   AcceptableAimDelta        = 15
  13450.   AntiAirborneVehicle       = Yes
  13451.   AntiAirborneMonster        = Yes
  13452.   FireFX                    = FX_SarumanFireball
  13453.   DamageType                = FLAME
  13454.   
  13455.   ProjectileNugget          ; Default arrow
  13456.     ProjectileTemplateName  = SarumanFireballProjectile
  13457.     WarheadTemplateName     = SarumanFireballWarhead
  13458.   End
  13459. End
  13460.  
  13461. ;----------------------------
  13462. Weapon SarumanFireballWarhead
  13463.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS
  13464.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR MINES ; ALLIES
  13465.     
  13466.     FireLogicNugget ;@@@ fire logic testing
  13467.         LogicType    =    INCREASE_BURN_RATE
  13468.         Radius        =    40
  13469.         Damage        =    10
  13470.     End    
  13471.  
  13472.     DamageNugget                        ; A basic Nugget that just does damage
  13473.          Damage        = SARUMAN_FIREBALL_DAMAGE
  13474.          Radius        = SARUMAN_FIREBALL_RADIUS
  13475.          DelayTime     = 0
  13476.          DamageType    = FLAME
  13477.          DamageFXType  = BIG_ROCK
  13478.          DeathType     = BURNED
  13479.          DamageScalar  =  150% NONE +MordorFellBeast +MordorWitchKingOnFellBeast +GondorGwaihir
  13480.          DamageScalar  = 5000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  13481.     End
  13482.  
  13483.     DamageNugget                        ; to make the fireball more mighty against enemy heroes
  13484.         Damage        = 50    
  13485.         Radius        = SARUMAN_FIREBALL_RADIUS
  13486.         DelayTime     = 0
  13487.         DamageType    = MAGIC
  13488.         DamageFXType  = BIG_ROCK
  13489.         DeathType     = BURNED
  13490.             DamageScalar  = 500% NONE +HERO -MordorFellBeast -MordorWitchKingOnFellBeast -GondorGwaihir
  13491.     End
  13492.  
  13493.     DamageNugget                        ; A basic Nugget that just does damage
  13494.         Damage        = SARUMAN_FIREBALL_DAMAGE_SIEGE    
  13495.         Radius        = SARUMAN_FIREBALL_RADIUS
  13496.         DelayTime     = 0
  13497.         DamageType    = MAGIC
  13498.         DamageFXType  = BIG_ROCK
  13499.         DeathType     = EXPLODED
  13500.             DamageScalar  = 300% NONE +MordorFellBeast +MordorWitchKingOnFellBeast +GondorGwaihir
  13501.     End
  13502.     
  13503.     
  13504.  
  13505.     MetaImpactNugget                         ; A Nugget that throws things back with force
  13506. ;        HeroResist        =  0.99
  13507.         ShockWaveAmount   = 80.00
  13508.         ShockWaveRadius   = SARUMAN_FIREBALL_RADIUS
  13509.         ShockWaveTaperOff =  0.75
  13510.         ShockWaveZMult    =  1.20
  13511.     End
  13512. End
  13513.  
  13514. ;------------------------------------------------------------------------------
  13515. Weapon FireBallImpact
  13516.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ALLIES
  13517.     DamageNugget                        ; A basic Nugget that just does damage to trigger deployed mines
  13518.         Damage        = 1
  13519.         Radius        = 20
  13520.         DamageType    = FLAME
  13521.         DamageFXType  = FLAME
  13522.         DeathType     = BURNED
  13523.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  13524.     End
  13525. End
  13526.  
  13527. ;------------------------------------------------------------------------------
  13528. Weapon LurtzWeapon ;BALANCE Lurtz
  13529.   LeechRangeWeapon      = Yes
  13530. ;  AttackRange           = 20.0
  13531.   AttackRange           = 15.0
  13532.   MeleeWeapon           = Yes
  13533.   DelayBetweenShots     = LURTZ_DELAYBETWEENSHOTS             ; time between shots, msec
  13534.   PreAttackDelay        = LURTZ_PREATTACKDELAY                 ; 433 is natural time of the stabbing animation.
  13535.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  13536.   FiringDuration        = LURTZ_FIRINGDURATION                 ; min 600 for anim
  13537.   ; IdleAfterFiringDelay  = LURTZ_FIRINGDURATION ; don't set for any weapon other than rocks.  
  13538.   FireFX                = FX_GondorSwordHit
  13539.   DamageNugget                        ; A basic Nugget that just does damage
  13540.     Damage        = LURTZ_DAMAGE                    
  13541.     Radius        = 0.0
  13542.     DelayTime     = 0
  13543.     DamageType    = HERO
  13544.     DamageFXType  = SWORD_SLASH
  13545.     DeathType     = NORMAL
  13546.   End
  13547. End
  13548.  
  13549. ;------------------------------------------------------------------------------
  13550. Weapon LurtzCarnageWeapon ;BALANCE Lurtz
  13551.   LeechRangeWeapon      = Yes
  13552.   AttackRange           = 20.0
  13553.   MeleeWeapon           = Yes
  13554.   DelayBetweenShots     = LURTZ_CARNAGE_DELAYBETWEENSHOTS         ; time between shots, msec
  13555.   PreAttackDelay        = LURTZ_CARNAGE_PREATTACKDELAY             ; 433 is natural time of the stabbing animation.
  13556.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  13557.   FiringDuration        = LURTZ_CARNAGE_FIRINGDURATION             ; min 600 for anim
  13558.   ; IdleAfterFiringDelay  = LURTZ_CARNAGE_FIRINGDURATION ; don't set for any weapon other than rocks.  
  13559.   FireFX                = FX_GondorSwordHit
  13560.   DamageNugget                        ; A basic Nugget that just does damage
  13561.     Damage        = LURTZ_CARNAGE_DAMAGE                
  13562.     Radius        = ISENGARD_BERSERKER_RADIUS
  13563.     DelayTime     = 0
  13564.     DamageType    = HERO
  13565.     DamageFXType  = SWORD_SLASH
  13566.     DeathType     = NORMAL
  13567.     DamageArc      = ISENGARD_BERSERKER_ARC
  13568.   End
  13569. End
  13570.  
  13571. ;-----------------------------------
  13572. Weapon MordorMtTrollBored
  13573.   AttackRange           = 40.0
  13574.   PreAttackFX           = FX_TrollTreeSwing
  13575.   FireFX                = FX_TrollPunchGeneric        ;FX_TrollTreeHit
  13576.   RadiusDamageAffects = ALLIES
  13577.  
  13578.     SpecialModelConditionNugget
  13579.         ModelConditionNames = USER_2            ; Can be used to set multiple, and it doesn't use the normal hit reaction because this one is special
  13580.         ModelConditionDuration = 2000
  13581.         SpecialObjectFilter = NONE +MordorCaveTroll +MordorMountainTroll +GoblinCaveTroll
  13582.     End
  13583.  
  13584.     SpecialModelConditionNugget
  13585.         ModelConditionNames = USER_3 
  13586.         ModelConditionDuration = 21000
  13587.         SpecialObjectFilter = NONE +MordorMountainTroll    
  13588.     End
  13589. End
  13590.  
  13591. //------------------------------------------------------------------------------
  13592. Weapon MordorGateWatchersFearWeapon
  13593.     AttackRange            = MORDOR_GATEWATCHEREXPANSION_RANGE    
  13594.     HitPercentage       = 100                                            //When this weapon is used it will hit exactly 50% of the time.    
  13595.     PreAttackDelay      = MORDOR_GATEWATCHEREXPANSION_PREATTACKDELAY    //prep time for the unit/structure to fire.
  13596.     PreAttackType       = PER_SHOT                                        //Do the delay each time we attack a new target
  13597.     FiringDuration      = MORDOR_GATEWATCHEREXPANSION_FIRINGDURATION    //Duration of the archer firing shot is 500ms.  
  13598.     AcceptableAimDelta    = 180.0                                            //We want to be able to shoot all round, as we cant move.
  13599.     DelayBetweenShots   = MORDOR_GATEWATCHEREXPANSION_DELAYBETWEENSHOTS
  13600.     FireFX                = FX_FearBlast
  13601.     
  13602.     EmotionWeaponNugget
  13603.         EmotionType            = TERROR
  13604.         Radius                = MORDOR_GATEWATCHEREXPANSION_FEAR_RADIUS
  13605.         Duration            = MORDOR_GATEWATCHEREXPANSION_FEAR_DURATION        
  13606.         SpecialObjectFilter    = ALL ENEMIES
  13607.     End
  13608.  
  13609. End
  13610.  
  13611.  
  13612. ;------------------------------------------------------------------------------
  13613. ;Weapon HobbitJump ; BALANCE HobbitJump
  13614. ;  IdleAfterFiringDelay = 0
  13615. ;  AttackRange           = 0.0
  13616. ;  MinimumAttackRange    = 8.0
  13617. ;  WeaponSpeed           = 100.0        ; dist/sec (huge value == effectively instant)
  13618. ;  ProjectileFilterInContainer = NONE +HOBBIT 
  13619. ;  ClipSize              = 1               ; how many shots in a Clip (0 == infinite)
  13620. ;  ClipReloadTime        = 2200   ;1467 min for animation           ; how long to reload a Clip, msec
  13621. ;  AutoReloadsClip        = No    
  13622. ;  PreAttackDelay        = 600
  13623. ;  FiringDuration        = 1500            
  13624. ;  PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  13625. ;  HitPercentage       = 0 ; Never auto hits, always shoots at a ground position
  13626. ;  ScatterRadius       = 0.0     ;When this weapon misses it can randomly miss by as much as this distance.
  13627. ;
  13628. ;  ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  13629. ;    WarheadTemplateName = HobbitJumpWarhead
  13630. ;  End
  13631. ;End
  13632.  
  13633. ;-----------------------------------
  13634. ;Weapon HobbitJumpWarhead
  13635. ;  ProjectileCollidesWith = ENEMIES
  13636. ; ; FireFX = FX_RockDetonation
  13637. ;  DamageNugget                        ; A basic Nugget that just does damage
  13638. ;    Damage        = 5
  13639. ;    Radius        = 12.0
  13640. ;    DelayTime     = 0
  13641. ;    DamageType            = CRUSH
  13642. ;    DamageFXType          = SMALL_ROCK
  13643. ;    DeathType             = NORMAL
  13644. ;  End
  13645. ;  MetaImpactNugget                    ; A Nugget that throws things back with force
  13646. ;    HeroResist            = .75
  13647. ;    ShockWaveAmount   = 50.0
  13648. ;    ShockWaveRadius   = 12.0
  13649. ;    ShockWaveTaperOff = 0.5
  13650. ;    ShockWaveZMult    = 1.20
  13651. ;  End
  13652. ;End
  13653.  
  13654. ;------------------------------------------------------------------------------
  13655. ; Merry and Pippin use these to throw rocks
  13656. Weapon HobbitRockThrow  ; BALANCE Hobbit Weapon Rock
  13657.     AttackRange           = HOBBIT_ROCK_RANGE
  13658.     WeaponSpeed           = 150.0        ; dist/sec (huge value == effectively instant)
  13659.     AcceptableAimDelta    = 20 
  13660.     PreAttackDelay        = 500
  13661.     PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  13662.     HitPercentage          = 0 ; never auto hits, always hits ground
  13663.     ScatterRadius          = 0.0     ;When this weapon misses it can randomly miss by as much as this distance.
  13664.     FiringDuration            = 1200
  13665.     DelayBetweenShots        = 1700
  13666.     CanFireWhileMoving        = Yes
  13667.  
  13668.     ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  13669.         ProjectileTemplateName = HobbitRockProjectile
  13670.         WarheadTemplateName = HobbitRockThrowWarhead
  13671.     End
  13672. End
  13673.  
  13674. ;------------------------------------------------------------------------------
  13675. ; Frodo uses these to throw rocks
  13676. Weapon FrodoRockThrow  ; BALANCE Hobbit Weapon Rock
  13677.     AttackRange           = HOBBIT_ROCK_RANGE
  13678.     WeaponSpeed           = 150.0        ; dist/sec (huge value == effectively instant)
  13679.     AcceptableAimDelta    = 20 
  13680.     PreAttackDelay        = 833
  13681.     PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  13682.     HitPercentage            = 0 ; never auto hits, always hits ground
  13683.     ScatterRadius            = 0.0     ;When this weapon misses it can randomly miss by as much as this distance.
  13684.     FiringDuration            = 1200
  13685.     DelayBetweenShots        = 2033
  13686.     CanFireWhileMoving        = Yes
  13687.  
  13688.     ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  13689.         ProjectileTemplateName = HobbitRockProjectile
  13690.         WarheadTemplateName = HobbitRockThrowWarhead
  13691.     End
  13692. End
  13693.  
  13694. ;------------------------------------------------------------------------------
  13695. ; Sam uses these to throw rocks
  13696. Weapon SamRockThrow  ; BALANCE Hobbit Weapon Rock
  13697.     AttackRange           = HOBBIT_ROCK_RANGE
  13698.     WeaponSpeed           = 150.0        ; dist/sec (huge value == effectively instant)
  13699.     AcceptableAimDelta    = 20 
  13700.     PreAttackDelay        = 1200
  13701.     PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  13702.     HitPercentage            = 0 ; never auto hits, always hits ground
  13703.     ScatterRadius            = 0.0     ;When this weapon misses it can randomly miss by as much as this distance.
  13704.     FiringDuration            = 1400
  13705.     DelayBetweenShots        = 2600
  13706.     CanFireWhileMoving        = Yes
  13707.  
  13708.     ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  13709.         ProjectileTemplateName = HobbitRockProjectile
  13710.         WarheadTemplateName = HobbitRockThrowWarhead
  13711.     End
  13712. End
  13713.  
  13714. ;------------------------------------------------------------------------------
  13715. ; Merry and Pippin use these to throw rocks
  13716. ;Weapon HobbitRockThrowTreebeard  ; BALANCE Hobbit Weapon Rock
  13717. ;    AttackRange           = HOBBIT_ROCK_RANGE
  13718. ;    MinimumAttackRange = 100.0
  13719. ;    WeaponSpeed           = 150.0        ; dist/sec (huge value == effectively instant)
  13720. ;    AcceptableAimDelta    = 10 
  13721. ;    PreAttackDelay        = 633
  13722. ;    PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  13723. ;    HitPercentage            = 0 ; never auto hits, always hits ground
  13724. ;    ScatterRadius            = 0.0     ;When this weapon misses it can randomly miss by as much as this distance.
  13725. ;    FiringDuration            = 933
  13726. ;    DelayBetweenShots        = 2000
  13727. ;
  13728. ;    ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  13729. ;        ProjectileTemplateName = HobbitRockProjectileTreebeard
  13730. ;        WarheadTemplateName = HobbitRockThrowWarhead
  13731. ;    End
  13732. ;End
  13733.  
  13734. ;----------------------------
  13735. Weapon HobbitRockThrowWarhead
  13736.     FireFX              = FX_ImpactHobbitRock
  13737.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS ; Remember, the projectile is a rock, who has no allies
  13738.     RadiusDamageAffects    = ENEMIES 
  13739.     HitStoredTarget = Yes    ; Always hits initial target.
  13740.     DamageNugget                        ; A basic Nugget that just does damage
  13741.         Damage        = HOBBIT_ROCK_DAMAGE
  13742.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  13743.         DelayTime     = 0
  13744.         DamageType    = HERO_RANGED
  13745.         DamageFXType  = SMALL_ROCK
  13746.         DeathType     = NORMAL
  13747.     End
  13748.     ;MetaImpactNugget                    ; A Nugget that throws things back with force
  13749.     ;    HeroResist            = .75
  13750.     ;    ShockWaveAmount   = 10.0
  13751.     ;    ShockWaveRadius   = 30.0
  13752.     ;    ShockWaveTaperOff = 0.75
  13753.     ;End
  13754. End
  13755.  
  13756. ;------------------------------------------------------------------------------
  13757. ; Sam in Shelob's Lair will use this Rock Throw
  13758. Weapon SLSamRockThrow  ; BALANCE Hobbit Weapon Rock
  13759.     AttackRange           = HOBBIT_ROCK_RANGE
  13760.     WeaponSpeed           = 150.0        ; dist/sec (huge value == effectively instant)
  13761.     AcceptableAimDelta    = 20 
  13762.     PreAttackDelay        = 700
  13763.     PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  13764.     HitPercentage            = 0 ; never auto hits, always hits ground
  13765.     ScatterRadius            = 4.0     ;When this weapon misses it can randomly miss by as much as this distance.
  13766.     FiringDuration            = 1300
  13767.     DelayBetweenShots        = 2000
  13768.  
  13769.     ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  13770.     ProjectileTemplateName = HobbitRockProjectile
  13771.         WarheadTemplateName = SLSamRockThrowWarhead
  13772.     End
  13773. End
  13774.  
  13775. ;----------------------------
  13776. Weapon SLSamRockThrowWarhead
  13777.     FireFX              = FX_ImpactHobbitRock
  13778.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS ; Remember, the projectile is a rock, who has no allies
  13779.     RadiusDamageAffects    = ENEMIES 
  13780.     HitStoredTarget = Yes    ; Always hits initial target.
  13781.     DamageNugget                        ; A basic Nugget that just does damage
  13782.         Damage        = HOBBIT_ROCK_DAMAGE
  13783.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  13784.         DelayTime     = 0
  13785.         DamageType    = CRUSH
  13786.         DamageFXType  = SMALL_ROCK
  13787.         DeathType     = NORMAL
  13788.     End
  13789.     ;MetaImpactNugget                    ; A Nugget that throws things back with force
  13790.     ;    HeroResist            = .75
  13791.     ;    ShockWaveAmount   = 10.0
  13792.     ;    ShockWaveRadius   = 30.0
  13793.     ;    ShockWaveTaperOff = 0.75
  13794.     ;End
  13795. End
  13796.  
  13797. ;------------------------------------------------------------------------------
  13798. ; Garrisoned Wildmen throw these
  13799. Weapon GarrisonedWildmanRockThrow  ; BALANCE Hobbit Weapon Rock
  13800.     AttackRange           = HOBBIT_ROCK_RANGE
  13801.     WeaponSpeed           = 150.0        ; dist/sec (huge value == effectively instant)
  13802.     AcceptableAimDelta    = 20 
  13803.     PreAttackDelay        = 833
  13804.     PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  13805.     HitPercentage            = 0 ; never auto hits, always hits ground
  13806.     ScatterRadius            = 0.0     ;When this weapon misses it can randomly miss by as much as this distance.
  13807.     FiringDuration            = 1200
  13808.     DelayBetweenShots        = 2033
  13809.  
  13810.     ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  13811.         ProjectileTemplateName = HobbitRockProjectile
  13812.         WarheadTemplateName = HobbitRockThrowWarhead
  13813.     End
  13814. End
  13815.  
  13816. ;------------------------------------------------------------------------------
  13817. ; Garrisoned Wildmen with torches throw these
  13818. Weapon GarrisonedWildmanTorchThrow  ; BALANCE Hobbit Weapon Rock
  13819.     AttackRange           = HOBBIT_ROCK_RANGE
  13820.     WeaponSpeed           = 150.0        ; dist/sec (huge value == effectively instant)
  13821.     AcceptableAimDelta    = 20 
  13822.     PreAttackDelay        = 833
  13823.     PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  13824.     HitPercentage            = 0 ; never auto hits, always hits ground
  13825.     ScatterRadius            = 0.0     ;When this weapon misses it can randomly miss by as much as this distance.
  13826.     FiringDuration            = 1200
  13827.     DelayBetweenShots        = 2033
  13828.  
  13829.     ProjectileNugget                    ; A Nugget that creates an Object and sends it to the target with a Warhead
  13830.         ProjectileTemplateName = WildmenTorchProjectile
  13831.         WarheadTemplateName = GarrisonedWildmanTorchThrowWarhead
  13832.     End
  13833. End
  13834.  
  13835. ;----------------------------
  13836. Weapon GarrisonedWildmanRockThrowWarhead
  13837.     FireFX              = FX_ImpactHobbitRock
  13838.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS ; Remember, the projectile is a rock, who has no allies
  13839.     RadiusDamageAffects    = ENEMIES 
  13840.     HitStoredTarget = Yes    ; Always hits initial target.
  13841.  
  13842.     DamageNugget                        ; A basic Nugget that just does damage
  13843.         Damage        = ISENGARD_WILDMAN_ROCK_DAMAGE
  13844.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  13845.         DelayTime     = 0
  13846.         DamageType    = FORCE
  13847.         DamageFXType  = SMALL_ROCK
  13848.         DeathType     = NORMAL
  13849.     End
  13850. End
  13851.  
  13852. ;----------------------------
  13853. Weapon GarrisonedWildmanTorchThrowWarhead
  13854.     FireFX              = FX_ImpactHobbitRock
  13855.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS ; Remember, the projectile is a rock, who has no allies
  13856.     RadiusDamageAffects    = ENEMIES 
  13857.     HitStoredTarget = Yes    ; Always hits initial target.
  13858.  
  13859.     DamageNugget                        ; A basic Nugget that just does damage
  13860.         Damage            = ISENGARD_WILDMAN_THROWN_TORCH_DAMAGE
  13861.         Radius            = ISENGARD_WILDMAN_THROWN_TORCH_RADIUS
  13862.         DelayTime        = 0
  13863.         DamageType        = FLAME
  13864.         DamageFXType    = FLAME
  13865.         DeathType        = BURNED
  13866.         AcceptDamageAdd    = No
  13867.         RequiredUpgradeNames    = Upgrade_IsengardTorches
  13868.     End
  13869.  
  13870.     DamageNugget                        ; A basic Nugget that just does damage
  13871.         Damage        = ISENGARD_WILDMAN_ROCK_DAMAGE
  13872.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  13873.         DelayTime     = 0
  13874.         DamageType    = FORCE
  13875.         DamageFXType  = SMALL_ROCK
  13876.         DeathType     = NORMAL
  13877.     End
  13878. End
  13879.  
  13880. ;------------------------------------------------------------------------------
  13881. Weapon IsengardWildmanCudgel  ; BALANCE
  13882.     LeechRangeWeapon    = Yes
  13883.     AttackRange            = 30.0
  13884.     MeleeWeapon            = Yes
  13885.     DelayBetweenShots    = ISENGARD_WILDMAN_DELAYBETWEENSHOTS            ; time between shots, msec
  13886.     PreAttackDelay        = ISENGARD_WILDMAN_PREATTACKDELAY             ; 433 is natural time of the stabbing animation.
  13887.     PreAttackType        = PER_SHOT ; Do the delay each time we attack a new target
  13888.     FiringDuration        = ISENGARD_WILDMAN_FIRINGDURATION            ; min 600 for anim
  13889.     FireFX                = FX_GondorSwordHit
  13890.     FireFlankFX            = FX_Flanking
  13891.  
  13892.     DamageNugget                        ; A basic Nugget that just does damage
  13893.         Damage            = ISENGARD_WILDMAN_TORCH_DAMAGE
  13894.         Radius            = ISENGARD_WILDMAN_TORCH_RADIUS
  13895.         DelayTime        = 0
  13896.         DamageType        = FLAME
  13897.         DamageFXType    = FLAME
  13898.         DeathType        = BURNED
  13899.         AcceptDamageAdd    = No
  13900.         RequiredUpgradeNames    = Upgrade_IsengardTorches
  13901.     End
  13902.  
  13903.     DamageNugget                        ; A basic Nugget that just does damage
  13904.         Damage            = ISENGARD_WILDMAN_DAMAGE
  13905.         Radius            = ISENGARD_WILDMAN_RADIUS
  13906.         DelayTime        = 0
  13907.         DamageType        = SLASH
  13908.         DamageFXType        = CLUBBING
  13909.         DeathType        = NORMAL
  13910.         FlankingBonus    = 50%
  13911.     End
  13912. End
  13913.  
  13914. ;------------------------------------------------------------------------------
  13915. Weapon IsenguardLurtzBow       ; BALANCE Archer Weapon ;orc archer
  13916.     AttackRange            = LURTZ_BOW_RANGE                    ; 350 ; Horde member so it needs to be bigger than the horde weapon attack range.
  13917.     
  13918.     RangeBonusMinHeight    = 10
  13919.     RangeBonus        = 1
  13920.     RangeBonusPerFoot    = #MULTIPLY( LURTZ_BOW_RANGE .01 )  
  13921.     
  13922.     LeechRangeWeapon    = Yes    
  13923.     WeaponSpeed            = 300         ; dist/sec 
  13924.     MinWeaponSpeed        = 121
  13925.     MaxWeaponSpeed        = 400      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  13926.     FireFX                = FX_RohanArcherBowWeapon  
  13927.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  13928.     HitPercentage        = 100     ;When this weapon is used it will hit exactly 50% of the time.
  13929.     ScatterRadius        = 40.0     ;When this weapon misses it can randomly miss by as much as this distance.
  13930.  
  13931.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  13932.     DelayBetweenShots    = LURTZ_BOW_DELAYBETWEENSHOTS    ; time between shots, msec
  13933.     PreAttackDelay      = LURTZ_BOW_PREATTACKDELAY
  13934.     PreAttackType       = PER_POSITION ; Do the delay each time we attack a new target
  13935.     FiringDuration      = LURTZ_BOW_FIRINGDURATION        ; Duration of the archer firing shot is 500ms.
  13936. ;    RequireFollowThru    = Yes
  13937. ;    IdleAfterFiringDelay = 0 ; don't set for any weapon other than rocks. 
  13938. ;    HoldAfterFiringDelay = 1333 ; don't set for any weapon other than rocks. 
  13939.  
  13940.     ClipSize            = 1
  13941.     AutoReloadsClip        = Yes
  13942.     AutoReloadWhenIdle    = 1    
  13943.     ClipReloadTime        = Min:LURTZ_BOW_RELOADTIME_MIN Max:LURTZ_BOW_RELOADTIME_MAX
  13944.     ContinuousFireOne    = 0
  13945.     ContinuousFireCoast    = LURTZ_BOW_RELOADTIME_MAX
  13946.  
  13947.     AntiAirborneVehicle    = Yes
  13948.     AntiAirborneMonster    = Yes
  13949.  
  13950.     ProjectileNugget            ; Fire arrow available through fire upgrade
  13951.         ProjectileTemplateName  = EvilFactionArrow
  13952.         WarheadTemplateName     = IsengardLurtzBowWarhead
  13953.     End    
  13954. End
  13955.  
  13956. ;------------------------------------------------------------------------------
  13957. Weapon IsenguardLurtzBowMelee       ; BALANCE Lurtz Melee  Weapon
  13958.   LeechRangeWeapon      = Yes
  13959.   AttackRange           = 20.0
  13960.   MeleeWeapon           = Yes
  13961.   FireFX                = FX_RohanArcherBowWeapon;
  13962. ;  DelayBetweenShots     = 1500            ; time between shots, msec
  13963.   PreAttackDelay        = 1500             ; 400 is sword swing delay time before contact with target.
  13964.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  13965.   FiringDuration        = 1500    ; Duration of the sword swing
  13966.   ; IdleAfterFiringDelay     = 0 ; don't set for any weapon other than rocks. 
  13967.   ; HoldAfterFiringDelay     = 1500 ; don't set for any weapon other than rocks.  
  13968.  
  13969.   DamageNugget                        ; A basic Nugget that just does damage
  13970.     Damage        = LURTZ_BOW_DAMAGE
  13971.     Radius        = 0.0
  13972.     DelayTime     = 0
  13973.     DamageType    = CRUSH
  13974.     DamageFXType  = SWORD_SLASH
  13975.     DeathType     = NORMAL
  13976.   End
  13977. End
  13978.  
  13979. ;-----------------------------------
  13980. Weapon IsengardLurtzBowWarhead
  13981.   ProjectileCollidesWith = ENEMIES
  13982.   RadiusDamageAffects = ENEMIES NOT_SIMILAR 
  13983.   HitStoredTarget = Yes    ; Always hits initial target.
  13984.   DamageNugget                        ; A basic Nugget that just does damage
  13985.     Damage        = LURTZ_BOW_DAMAGE
  13986.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  13987.     DelayTime     = 0
  13988.     ;DamageScalar  = 25000% NONE +MordorMumakil
  13989.     DamageType    = HERO_RANGED
  13990.     DamageFXType  = EVIL_ARROW_PIERCE
  13991.     DeathType     = NORMAL
  13992.   End
  13993. End
  13994.  
  13995.  
  13996. //------------------------------------------------------------------------------
  13997. Weapon IsenguardLurtzBowStun       // BALANCE Archer Weapon //orc archer
  13998.     AttackRange            = LURTZ_CRIPPLE_RANGE_WEAPON
  13999.     
  14000.     RangeBonusMinHeight    = 10
  14001.     RangeBonus        = 1
  14002.     RangeBonusPerFoot    = #MULTIPLY( LURTZ_BOW_RANGE .01 ) 
  14003.     
  14004.     WeaponSpeed            = 300                   //dist/sec 
  14005.     MinWeaponSpeed        = 121
  14006.     MaxWeaponSpeed        = 400                   //dist/sec Upper    limit on scaling, when attacking past nominal "max"    range
  14007.     FireFX                = FX_LurtzCripplingStrike 
  14008.     ScaleWeaponSpeed    = Yes                   //Used for lob weapons, scales speed    proportional to    range
  14009.     HitPercentage        = 100                   //When this weapon is used it will hit exactly 50% of the time.
  14010.     ScatterRadius        = 0.0                   //When this weapon misses it    can    randomly miss by as    much as    this distance.
  14011.     DelayBetweenShots    = 1100
  14012.     PreAttackDelay        = 1
  14013.     PreAttackType        = PER_SHOT               //Do    the    delay each time    we attack a    new    target
  14014.     FiringDuration        = 1000                   //Duration of the archer    firing shot    is 500ms.
  14015.     IdleAfterFiringDelay = 1000
  14016.     // HoldAfterFiringDelay = 1000 // 
  14017.  
  14018.     AntiAirborneVehicle    = Yes
  14019.     AntiAirborneMonster    = Yes
  14020.  
  14021.     ProjectileNugget            // Fire arrow available through fire upgrade
  14022.         ProjectileTemplateName  = LurtzArrowProjectile
  14023.         WarheadTemplateName     = LurtzStunBowWarhead
  14024.         SpecialObjectFilter        = ALL -MACHINE
  14025.     End
  14026. End
  14027.  
  14028. ;-----------------------------------
  14029.  
  14030. Weapon LurtzStunBowWarhead
  14031.     ProjectileCollidesWith = ENEMIES NEUTRAL
  14032.     RadiusDamageAffects = ENEMIES NEUTRALS 
  14033.     HitStoredTarget = Yes    ; Always hits initial target.
  14034.     
  14035.     DamageNugget                        ; A basic Nugget that just does damage
  14036.         Damage        = LURTZ_BOW_STUN_DAMAGE 
  14037.             DamageScalar  = 10% NONE +STRUCTURE 
  14038.            DamageScalar  = 400% NONE +MordorFellBeast +MordorWitchKingOnFellBeast +GondorGwaihir                                             
  14039.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  14040.         DelayTime     = 0
  14041.         DamageType    = HERO
  14042.         DamageFXType  = EVIL_ARROW_PIERCE
  14043.         DeathType     = NORMAL
  14044.     End
  14045.  
  14046.     DamageNugget
  14047.         Damage                   = LURTZ_BOW_STUN_DAMAGE                                               
  14048.         Radius                 = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  14049.         DamageType               = HERO_RANGED
  14050.         DamageFXType             = EVIL_ARROW_PIERCE
  14051.         DeathType                = NORMAL
  14052.         SpecialObjectFilter      = ALL -HERO
  14053.     End
  14054.  
  14055.     AttributeModifierNugget
  14056.         AttributeModifier        = LurtzCripplingStrike
  14057.         DamageFXType             = EVIL_ARROW_PIERCE 
  14058.         SpecialObjectFilter      = CRIPPLE_STRIKE_OBJECT_FILTER
  14059.     End            
  14060. End
  14061.  
  14062. //-----------------------------
  14063. Weapon SunflareWeapon    
  14064.     RadiusDamageAffects        = ENEMIES NEUTRALS    
  14065.  
  14066.     //Turn the troll effectively to stone
  14067.     AttributeModifierNugget
  14068.         AttributeModifier        = SunFlareTrollToStone
  14069.         Radius                     = SPELL_SUNFLARE_EFFECT_RADIUS        
  14070.         SpecialObjectFilter      = ANY +MordorAttackTroll +MordorDrummerTroll +MordorMountainTroll +MordorCaveTroll +GoblinCaveTroll +GoblinCaveTroll_FromTrollLair +CaveTroll_Slaved
  14071.     End                
  14072.  
  14073.     // A basic Nugget that just does damage
  14074.     DamageNugget                
  14075.         Damage        = SPELL_SUNFLARE_DAMAGE
  14076.         Radius        = SPELL_SUNFLARE_EFFECT_RADIUS    
  14077.         DelayTime     = 0
  14078.         DamageType    = FLAME
  14079.         DamageFXType  = FLAME
  14080.         DeathType     = BURNED
  14081.     End
  14082.  
  14083.     //Start a fire - Removed at the request of Wes "Ensign Crusher" Eckhart
  14084.     ;FireLogicNugget 
  14085.     ;    LogicType    =    INCREASE_BURN_RATE
  14086.     ;    Radius        =    SPELL_SUNFLARE_EFFECT_RADIUS
  14087.     ;    Damage        =    SPELL_SUNFLARE_FIRE_DAMAGE
  14088.     ;End
  14089.     //Design knob
  14090.     ;FireLogicNugget
  14091.     ;    LogicType        =    INCREASE_FUEL
  14092.     ;    Radius            =    SPELL_SUNFLARE_EFFECT_RADIUS
  14093.     ;    Damage            =    SPELL_SUNFLARE_FIRE_FUEL
  14094.     ;    MinMaxBurnRate    =    SPELL_SUNFLARE_FIRE_MINMAX_BURNRATE
  14095.     ;    MinDecay        =    1
  14096.     ;    MaxResistance    =    0
  14097.     ;End
  14098.  
  14099.     //Paralyze everything that's light sensitive
  14100.     ParalyzeNugget                
  14101.         Radius                    = SPELL_SUNFLARE_EFFECT_RADIUS
  14102.         Duration                = SPELL_SUNFLARE_DURATION
  14103.         SpecialObjectFilter     = ANY +MordorFighter +MordorArcher +MordorBannerOrc +WildBannerGoblin +WildBannerMarauder +WildBannerSpiderling +GoblinFighter +GoblinArcher +WildSpiderling +GoblinSpiderRider +WildShelob +MordorGoblinSwordsman +MordorGoblinArcher +BarrowWight ENEMIES
  14104.     End
  14105.  
  14106. End
  14107.  
  14108. ;-----------------------------
  14109. ;Weapon CloudBreakSunbeamWeapon
  14110. ;    FireFX = FX_CloudBreakRays
  14111. ;    DelayBetweenShots = 10000
  14112. ;End
  14113.  
  14114.  
  14115.  
  14116. ;/// WARNING: These two weapons are hard coded in PhysicsUpdate at line 110. That needs to be fixed before they are removed.
  14117. ;------------------------------------------------------------------------------
  14118. Weapon VehicleCrashesIntoBuildingWeapon
  14119. End
  14120.  
  14121. ;------------------------------------------------------------------------------
  14122. Weapon VehicleCrashesIntoNonBuildingWeapon
  14123. End
  14124. ;/// WARNING: These two weapons are hard coded in PhysicsUpdate at line 110. That needs to be fixed before they are removed.
  14125.  
  14126. ;------------------------------------------------------------------------------
  14127. Weapon ShelobMandibles     ; BALANCE Shelob Weapon 
  14128.   LeechRangeWeapon      = Yes
  14129.   AttackRange           = 25.0
  14130.   MeleeWeapon           = Yes
  14131.   DelayBetweenShots     = 1666           ; time between shots, msec
  14132.   PreAttackDelay        = 900            ; 300 is mace swing delay time before contact with target.
  14133.   PreAttackType         = PER_SHOT ; Do the delay each time we attack
  14134.   FireFX                = FX_GondorSwordHit
  14135.   FiringDuration        = 766    ; Duration of the mace swing 
  14136.   RequireFollowThru        = Yes
  14137.   
  14138.   DamageNugget                        ; A basic Nugget that just does damage
  14139.     Damage        = WILD_SHELOB_STINGER_DAMAGE
  14140.     Radius        = 15
  14141.     DelayTime     = 0
  14142.     DamageType    = HERO
  14143.     DamageFXType  = SWORD_SLASH
  14144.     DeathType     = NORMAL
  14145.     DamageArc      = ISENGARD_BERSERKER_ARC
  14146.   End
  14147. ;    MetaImpactNugget                    ; A Nugget that throws things back with force
  14148. ;        HeroResist            = .75
  14149. ;        ShockWaveAmount   = 30.0
  14150. ;        ShockWaveRadius   = 30.0
  14151. ;        ShockWaveTaperOff = 0.75
  14152. ;    End  
  14153. End
  14154.  
  14155. ;------------------------------------------------------------------------------
  14156. Weapon MinorSpiderMandibles                ; BALANCE Minor Spider Weapon 
  14157.   LeechRangeWeapon      = Yes
  14158.   AttackRange           = 25.0
  14159.   MeleeWeapon           = Yes
  14160.   DelayBetweenShots     = 1666            ; time between shots, msec
  14161.   PreAttackDelay        = 900                ; 300 is mace swing delay time before contact with target.
  14162.   PreAttackType         = PER_SHOT             ; Do the delay each time we attack
  14163.   FireFX                = FX_SpiderStabHit
  14164.   FiringDuration        = 766                ; Duration of the mace swing 
  14165.   RequireFollowThru    = Yes
  14166.   
  14167.   DamageNugget                        ; A basic Nugget that just does damage
  14168.     Damage        = 10
  14169.     Radius        = 0.0
  14170.     DelayTime     = 0
  14171.     DamageType    = HERO
  14172.     DamageFXType  = SWORD_SLASH
  14173.     DeathType     = NORMAL
  14174.     FlankingBonus = 50%
  14175.   End
  14176. ;    MetaImpactNugget                    ; A Nugget that throws things back with force
  14177. ;        HeroResist            = .75
  14178. ;        ShockWaveAmount   = 30.0
  14179. ;        ShockWaveRadius   = 30.0
  14180. ;        ShockWaveTaperOff = 0.75
  14181. ;    End  
  14182. End
  14183.  
  14184. ;------------------------------------------------------------------------------
  14185. Weapon SummonedSpiderlingMandibles                ; BALANCE Wild Spiderling Weapon 
  14186.   LeechRangeWeapon      = Yes
  14187.   AttackRange           = 25.0
  14188.   MeleeWeapon           = Yes
  14189.   DelayBetweenShots     = 1666                ; time between shots, msec
  14190.   PreAttackDelay        = 900                ; 300 is mace swing delay time before contact with target.
  14191.   PreAttackType         = PER_SHOT             ; Do the delay each time we attack
  14192.   FireFX                = FX_SpiderStabHit
  14193.   FiringDuration        = 766                ; Duration of the mace swing 
  14194.   RequireFollowThru        = Yes
  14195.   
  14196.   DamageNugget                        ; A basic Nugget that just does damage
  14197.     Damage        = WILD_SUMMONED_SPIDERLING_DAMAGE
  14198.     Radius        = 0.0
  14199.     DelayTime     = 0
  14200.     DamageType    = CAVALRY
  14201.    ; DamageFXType  = SWORD_SLASH
  14202.     DeathType     = NORMAL
  14203.     FlankingBonus = 50%
  14204.   End
  14205. End
  14206.  
  14207. ;------------------------------------------------------------------------------
  14208. Weapon WildSpiderlingMandibles                ; BALANCE Wild Spiderling Weapon 
  14209.   LeechRangeWeapon      = Yes
  14210.   AttackRange           = 25.0
  14211.   MeleeWeapon           = Yes
  14212.   DelayBetweenShots     = 1666                ; time between shots, msec
  14213.   PreAttackDelay        = 900                ; 300 is mace swing delay time before contact with target.
  14214.   PreAttackType         = PER_SHOT             ; Do the delay each time we attack
  14215.   FireFX                = FX_SpiderStabHit
  14216.   FiringDuration        = 766                ; Duration of the mace swing 
  14217.   RequireFollowThru        = Yes
  14218.   
  14219.   DamageNugget                        ; A basic Nugget that just does damage
  14220.     Damage        = WILD_SPIDERLING_DAMAGE
  14221.     Radius        = 0.0
  14222.     DelayTime     = 0
  14223.     DamageType    = CAVALRY
  14224.    ; DamageFXType  = SWORD_SLASH
  14225.     DeathType     = NORMAL
  14226.     FlankingBonus = 50%
  14227.   End
  14228. End
  14229.  
  14230. ;------------------------------------------------------------------------------
  14231. Weapon WildSpiderlingVenomMandibles                ; BALANCE Wild Spiderling Weapon 
  14232.   LeechRangeWeapon      = Yes
  14233.   AttackRange           = 25.0
  14234.   MeleeWeapon           = Yes
  14235.   DelayBetweenShots     = 1666                ; time between shots, msec
  14236.   PreAttackDelay        = 900                ; 300 is mace swing delay time before contact with target.
  14237.   PreAttackType         = PER_SHOT             ; Do the delay each time we attack
  14238.   FireFX                = FX_SpiderStabHit
  14239.   FiringDuration        = 766                ; Duration of the mace swing 
  14240.   RequireFollowThru        = Yes
  14241.   
  14242. DOTNugget                        ; A basic Nugget that just does damage
  14243.     Damage        = 4
  14244.     AcceptDamageAdd = No
  14245.     Radius        = 0.0
  14246.     DelayTime     = 0
  14247.     DamageType    = POISON
  14248.     DamageFXType  = POISON
  14249.     DeathType     = NORMAL
  14250.     DamageInterval = 1000
  14251.     DamageDuration = 30000
  14252.     SpecialObjectFilter = AFFECTED_BY_POISON_OBJECTFILTER 
  14253. End
  14254.  
  14255.   
  14256.   DamageNugget                        ; A basic Nugget that just does damage
  14257.     Damage        =  WILD_SPIDERLING_DAMAGE
  14258.     Radius        = 0.0
  14259.     DelayTime     = 0
  14260.     DamageType    = CAVALRY
  14261.     DamageFXType  = SWORD_SLASH
  14262.     DeathType     = NORMAL
  14263.   End
  14264. End
  14265.  
  14266. ;------------------------------------------------------------------------------
  14267. Weapon WildSpiderHolesSpiderlingMandibles                ; BALANCE Wild Spiderling Weapon 
  14268.   LeechRangeWeapon      = Yes
  14269.   AttackRange           = 25.0
  14270.   MeleeWeapon           = Yes
  14271.   DelayBetweenShots     = 1666                ; time between shots, msec
  14272.   PreAttackDelay        = 900                ; 300 is mace swing delay time before contact with target.
  14273.   PreAttackType         = PER_SHOT             ; Do the delay each time we attack
  14274.   FireFX                = FX_SpiderStabHit
  14275.   FiringDuration        = 766                ; Duration of the mace swing 
  14276.   RequireFollowThru        = Yes
  14277.   
  14278.   DamageNugget                        ; A basic Nugget that just does damage
  14279.     Damage        = WILD_SPIDERLING_SLAVED_DAMAGE
  14280.     Radius        = 0.0
  14281.     DelayTime     = 0
  14282.     DamageType    = CAVALRY
  14283.    ; DamageFXType  = SWORD_SLASH
  14284.     DeathType     = NORMAL
  14285.     FlankingBonus = 50%
  14286.   End
  14287. End
  14288.  
  14289. ;------------------------------------------------------------------------------
  14290. Weapon WildSpiderRiderBow     ; BALANCE Wild Spider Rider bow Weapon
  14291.     AttackRange             = WILD_SPIDERRIDER_RANGE
  14292.     
  14293.     RangeBonusMinHeight    = 10
  14294.     RangeBonus        = 1
  14295.     RangeBonusPerFoot    = #MULTIPLY( WILD_SPIDERRIDER_RANGE .01 )  
  14296.     
  14297.     WeaponSpeed             = 321         ; dist/sec 
  14298.     MinWeaponSpeed          = 241
  14299.     MaxWeaponSpeed          = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  14300.     FireFX                  = FX_RohanArcherBowWeapon
  14301.     ScaleWeaponSpeed        = Yes        ;Used for lob weapons, scales speed proportional to range
  14302.     HitPercentage           = 100        ;When this weapon is used it will hit exactly 50% of the time.
  14303.     ScatterRadius           = 16.0        ;When this weapon misses it can randomly miss by as much as this distance.
  14304.       
  14305.     AcceptableAimDelta        = 20        ; prevent twitchy reaiming in horde on horde
  14306.     
  14307.     DelayBetweenShots       = 0
  14308.     
  14309.     PreAttackDelay          = WILD_SPIDERRIDER_BOW_PREATTACKDELAY 
  14310.     PreAttackType            = PER_SHOT
  14311.     ;PreAttackRandomAmount    = 200   
  14312.     FiringDuration            = 0
  14313.     RequireFollowThru        = Yes
  14314.  
  14315.     ;OverrideVoiceAttackSound            = ElvenWarriorVoiceAttackBow
  14316.     ;OverrideVoiceAttackAirSound        = ElvenWarriorVoiceAttackBow
  14317.     ;OverrideVoiceAttackStructureSound    = ElvenWarriorVoiceAttackBow
  14318.     ;OverrideVoiceAttackMachineSound    = ElvenWarriorVoiceAttackBow
  14319.       
  14320.     ;AutoReloadWhenIdle        = 1    
  14321.     
  14322.     ClipSize                = 1
  14323.     AutoReloadsClip            = Yes
  14324.     ClipReloadTime            = Min:WILD_SPIDERRIDER_BOW_RELOADTIME_MIN Max:WILD_SPIDERRIDER_BOW_RELOADTIME_MAX
  14325.     
  14326.     ;ContinuousFireOne        = 0
  14327.     ;ContinuousFireCoast        = WILD_SPIDERRIDER_BOW_RELOADTIME_MAX
  14328.       
  14329.     AntiAirborneVehicle        = Yes
  14330.     AntiAirborneMonster        = Yes
  14331.     HitPassengerPercentage    = 20%
  14332.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  14333.  
  14334.     ProjectileNugget                    ; Default arrow
  14335.         ProjectileTemplateName    = EvilFactionArrow
  14336.         WarheadTemplateName       = WildSpiderRiderBowWarhead
  14337.         ForbiddenUpgradeNames     = Upgrade_WildFireArrows
  14338.     End    
  14339.           
  14340.     ProjectileNugget    ; Fire Arrow
  14341.         ProjectileTemplateName  = EvilFactionFireArrow
  14342.         WarheadTemplateName      = WildSpiderRiderBowFireWarhead
  14343.         RequiredUpgradeNames     = Upgrade_WildFireArrows
  14344.     End
  14345. End
  14346.  
  14347. ;----------------------------
  14348. Weapon WildSpiderRiderBowWarhead
  14349.   ProjectileCollidesWith    = ENEMIES NEUTRAL STRUCTURES WALLS ;ALLIES (4/23/04 removed friendly fire)
  14350.   RadiusDamageAffects        = ENEMIES NEUTRALS ALLIES NOT_SIMILAR
  14351.   HitStoredTarget            = Yes    ; Always hits initial target.
  14352.   DamageNugget                        ; A basic Nugget that just does damage
  14353.     Damage        = WILD_SPIDERRIDER_DAMAGE
  14354.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  14355.     DelayTime     = 0
  14356.     DamageType    = PIERCE
  14357.     DamageFXType  = EVIL_ARROW_PIERCE
  14358.     DeathType     = NORMAL
  14359.   End
  14360. End
  14361.  
  14362.  
  14363. ;----------------------------
  14364. Weapon WildSpiderRiderBowFireWarhead
  14365.     ProjectileCollidesWith    = ENEMIES NEUTRAL STRUCTURES WALLS 
  14366.     RadiusDamageAffects        = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  14367.     HitStoredTarget            = Yes    ; Always hits initial target.
  14368.  
  14369.     DamageNugget                        
  14370.         Damage        = WILD_SPIDERRIDER_FIRE_UPGRADE_DAMAGE_FLAME
  14371.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  14372.         DelayTime     = 0
  14373.         DamageType    = FLAME
  14374.         DamageFXType  = EVIL_ARROW_PIERCE
  14375.         DeathType     = BURNED
  14376.         AcceptDamageAdd = No
  14377.         DamageScalar  = 25% ALL -STRUCTURE
  14378.     End
  14379.  
  14380.     DamageNugget        ; A basic Nugget that just does damage
  14381.         Damage            = 1
  14382.         Radius            = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  14383.         DamageType        = FLAME
  14384.         DamageFXType      = FLAME
  14385.         DeathType         = BURNED
  14386.         AcceptDamageAdd = No
  14387.         DamageScalar    = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  14388.     End
  14389.     
  14390.     DamageNugget                        ; A basic Nugget that just does damage
  14391.         Damage        = WILD_SPIDERRIDER_FIRE_UPGRADE_DAMAGE
  14392.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  14393.         DelayTime     = 0
  14394.         DamageType    = PIERCE
  14395.         DamageFXType  = EVIL_ARROW_PIERCE
  14396.         DeathType     = NORMAL
  14397.     End
  14398. End
  14399.  
  14400. ;------------------------------------------------------------------------------
  14401. Weapon WildSpiderRiderSword
  14402.     LeechRangeWeapon        = Yes
  14403.     AttackRange                = 30.0
  14404.     MeleeWeapon                = Yes
  14405.     DelayBetweenShots        = WILD_SPIDERRIDER_SWORD_DELAYBETWEENSHOTS ; time between shots, msec
  14406.     PreAttackDelay            = WILD_SPIDERRIDER_SWORD_PREATTACKDELAY ; 300 is mace swing delay time before contact with target.
  14407.     PreAttackType            = PER_SHOT ; Do the delay each time we attack
  14408.     FireFX                    = FX_GondorSwordHit
  14409.     FireFlankFX                = FX_Flanking
  14410.     FiringDuration            = WILD_SPIDERRIDER_SWORD_FIRINGDURATION ; Duration of the mace swing 
  14411.  
  14412.     DamageNugget
  14413.         Damage                    = WILD_SPIDERRIDER_MELEE_DAMAGE
  14414.         Radius                    = 0.0
  14415.         DelayTime                = 0
  14416.         DamageType                = CAVALRY
  14417.         DeathType                = NORMAL
  14418.         FlankingBonus                = 50%
  14419.         ForbiddenUpgradeNames            = Upgrade_WildForgedBlades
  14420.     End
  14421.  
  14422.     DamageNugget                       
  14423.         Damage                    = WILD_SPIDERRIDER_MELEE_DAMAGE_UPGRADE
  14424.         Radius                    = 0.0
  14425.         DelayTime                = 0
  14426.         DamageType                = CAVALRY
  14427.         DamageFXType                = SWORD_SLASH
  14428.         DeathType                = NORMAL
  14429.         RequiredUpgradeNames            = Upgrade_WildForgedBlades
  14430.         FlankingBonus                 = 50%
  14431.     End
  14432.  
  14433.     DOTNugget
  14434.         Damage                    = 4
  14435.         AcceptDamageAdd            = No
  14436.         Radius                    = 0.0
  14437.         DelayTime                = 0
  14438.         DamageType                = POISON
  14439.         DamageFXType            = POISON
  14440.         DeathType                = NORMAL
  14441.         DamageInterval            = 1000
  14442.         DamageDuration            = 10000
  14443.         SpecialObjectFilter        = AFFECTED_BY_POISON_OBJECTFILTER 
  14444.     End
  14445. End
  14446.  
  14447. //------------------------------------------------------------------------------
  14448. //Fake weapon so that the expansion will pick targets that the slaved giant can attack
  14449. Weapon GiantSentryExpansionWeapon        
  14450.   AttackRange                = WILD_GIANTSENTRYEXPANSION_RANGE
  14451.   LeechRangeWeapon            = Yes
  14452.   DelayBetweenShots            = WILD_GIANTSENTRYEXPANSION_DELAYBETWEENSHOTS  
  14453.   PreAttackDelay            = WILD_GIANTSENTRYEXPANSION_PREATTACKDELAY
  14454.   FiringDuration              = WILD_GIANTSENTRYEXPANSION_FIRINGDURATION
  14455.   AcceptableAimDelta        = 90  
  14456.   FinishAttackOnceStarted    = Yes    
  14457.  
  14458.   //This nugget tells the objects slave to perform the attack
  14459.   SlaveAttackNugget
  14460.   End
  14461. End
  14462.  
  14463. ;------------------------------------------------------------------------------
  14464. ;// This is the attack with rock in hand
  14465. ;// Mountain Giant
  14466. Weapon WildMountainGiantSentryRockThrow  ; BALANCE Mountaint Giant Weapon Rock
  14467.     AttackRange             = WILD_GIANTSENTRYEXPANSION_RANGE
  14468.     LeechRangeWeapon        = Yes
  14469.     WeaponSpeed             = WILD_GIANTSENTRYEXPANSION_WEAPONSPEED                ;// dist/sec     
  14470.     FireFX                  = FX_EntThrowSmallRock    
  14471.     HitPercentage           = 0                        ;//When this weapon is used it will hit exactly 50% of the time.
  14472.     ScatterRadius           = 4.0                    ;//When this weapon misses it can randomly miss by as much as this distance.      
  14473.     
  14474.     DelayBetweenShots       = WILD_GIANTSENTRYEXPANSION_DELAYBETWEENSHOTS
  14475.     PreAttackDelay          = WILD_GIANTSENTRYEXPANSION_PREATTACKDELAY      
  14476.     PreAttackType           = PER_SHOT
  14477.     FiringDuration          = WILD_GIANTSENTRYEXPANSION_FIRINGDURATION
  14478.     NoVictimNeeded            = Yes    ;// Need no target
  14479.     IsAimingWeapon            = Yes    ;// Shooter will use his AimWeaponBehavior to get extra model condition flags    
  14480.       
  14481.     ClipSize                = 0    
  14482.  
  14483.     ProjectileNugget    
  14484.         ProjectileTemplateName  = RockGiantSentry
  14485.         WarheadTemplateName     = WildMountainGiantRockThrowWarhead_Structural        
  14486.     End
  14487.     
  14488.     ProjectileNugget                                                    ; This nugget is to create a revealing object, so fire
  14489.         AlwaysAttackHereOffset    = X:0 Y:0 Z:0                            ; it directly on top of us, and just use an empty warhead
  14490.         UseAlwaysAttackOffset    = Yes                                    ; so we don't assert.
  14491.         ProjectileTemplateName  = ShroudRevealer_Bombard
  14492.         WarheadTemplateName     = ShipRevealBombardWarhead_Dummy
  14493.     End
  14494. End
  14495.  
  14496. ;------------------------------------------------------------------------------
  14497. ; This is the attack with rock in hand
  14498. ; Mountain Giant
  14499. ;Weapon WildMountainGiantRockThrow  ; BALANCE Mountaint Giant Weapon Rock
  14500. ;    IdleAfterFiringDelay        = 2000 ;Yes if I want to throw rock, then wait until the followthrough is complete, then go idle.
  14501. ;    AttackRange                    = WILD_MOUNTAIN_GIANT_ROCK_RANGE
  14502. ;    
  14503. ;        RangeBonusMinHeight    = 10
  14504. ;    RangeBonus        = 1
  14505. ;    RangeBonusPerFoot    = #MULTIPLY( WILD_MOUNTAIN_GIANT_ROCK_RANGE .01 )
  14506. ;    
  14507. ;    WeaponSpeed                    = 200.0        ; dist/sec (huge value == effectively instant)
  14508. ;    ProjectileFilterInContainer    = ANY +ROCK +INFANTRY; We don't make the projectile, it is in our Contain module.
  14509. ;    FireFX                        = FX_EntThrowSmallRock
  14510. ;    PreAttackDelay                = 1400
  14511. ;    PreAttackType                = PER_SHOT ; Do the delay each time we attack a new target
  14512. ;    HitPercentage                = 0 ; never auto hits, always hits ground
  14513. ;    ScatterRadius                = 4.0     ;When this weapon misses it can randomly miss by as much as this distance.
  14514. ;    FiringDuration                = 2000
  14515. ;    DelayBetweenShots            = 1000
  14516. ;    IsAimingWeapon                = Yes    ; Shooter will use his AimWeaponBehavior to get extra model condition flags
  14517. ;    NoVictimNeeded                = Yes ; Need no target
  14518. ;    LeechRangeWeapon            = Yes
  14519. ;
  14520. ;    ProjectileNugget                        ; A Nugget that creates an Object and sends it to the target with a Warhead
  14521. ;        WarheadTemplateName         = WildMountainGiantRockThrowWarhead
  14522. ;    End
  14523. ;End
  14524.  
  14525. ;----------------------------------------------------------------------------------------------------------------
  14526. ;
  14527. ;    This is the toggle weapon for giants. They will reload, throw, reload straight away, and constantly hold a rock.
  14528. ;
  14529. Weapon GiantRockThrow
  14530.     ;IdleAfterFiringDelay        = 2000                            ; Do NOT idle after throwing or Bombard will break
  14531.     HoldDuringReload            = Yes                            
  14532.     AttackRange                    = WILD_MOUNTAIN_GIANT_ROCK_RANGE
  14533.     MinimumAttackRange            = WILD_MOUNTAIN_GIANT_ROCK_MINRANGE
  14534.     
  14535.     RangeBonusMinHeight    = 10
  14536.     RangeBonus        = 1
  14537.     RangeBonusPerFoot    = #MULTIPLY( WILD_MOUNTAIN_GIANT_ROCK_RANGE .01 )
  14538.     
  14539.     WeaponSpeed                    = 200.0                            ; dist/sec (huge value == effectively instant)
  14540.     FireFX                        = FX_EntThrowSmallRock
  14541.     PreAttackDelay                = 1200
  14542.     FiringDuration                = 2000
  14543.     PreAttackType                = PER_SHOT                        ; Do the delay each time we attack a new target
  14544.     DelayBetweenShots            = 6000
  14545.     HitPercentage                = 0                                ; never auto hits, always hits ground
  14546.     ScatterRadius                = 4.0                            ; When this weapon misses it can randomly miss by as much as this distance.
  14547.     IsAimingWeapon                = Yes                            ; Shooter will use his AimWeaponBehavior to get extra model condition flags
  14548.     NoVictimNeeded                = Yes                            ; Need no target
  14549.     LeechRangeWeapon            = Yes
  14550.  
  14551.     HoldAfterFiringDelay        = 4200
  14552.     AutoReloadWhenIdle            = 1800                            ; should be a bit less than IdleAfterFiringDelay or HoldAfterFiringDelay
  14553.     //ClipSize                     = 1
  14554.     AutoReloadsClip             = NO
  14555.     ClipReloadTime                 = 2000
  14556.  
  14557.     ProjectileNugget                                ; A Nugget that creates an Object and sends it to the target with a Warhead
  14558.         ProjectileTemplateName    = RockBigGiant
  14559.         WarheadTemplateName        = WildMountainGiantRockThrowWarhead
  14560.     End
  14561.     
  14562.     ProjectileNugget                                                    ; This nugget is to create a revealing object, so fire
  14563.         AlwaysAttackHereOffset    = X:0 Y:0 Z:0                            ; it directly on top of us, and just use an empty warhead
  14564.         UseAlwaysAttackOffset    = Yes                                    ; so we don't assert.
  14565.         ProjectileTemplateName  = ShroudRevealer_Bombard
  14566.         WarheadTemplateName     = ShipRevealBombardWarhead_Dummy
  14567.     End
  14568. End
  14569.  
  14570. ;----------------------------
  14571. Weapon GiantRockThrowCloseRange
  14572.     ;IdleAfterFiringDelay        = 2000                            ; Do NOT idle after throwing or Bombard will break
  14573.     HoldDuringReload            = Yes                            
  14574.     AttackRange                    = WILD_MOUNTAIN_GIANT_ROCK_MINRANGE
  14575.     
  14576.     RangeBonusMinHeight    = 10
  14577.     RangeBonus        = 1
  14578.     RangeBonusPerFoot    = #MULTIPLY( WILD_MOUNTAIN_GIANT_ROCK_RANGE .01 )
  14579.     
  14580.     WeaponSpeed                    = 200.0                            ; dist/sec (huge value == effectively instant)
  14581.     FireFX                        = FX_EntThrowSmallRock
  14582.     PreAttackDelay                = 1200
  14583.     FiringDuration                = 2000
  14584.     PreAttackType                = PER_SHOT                        ; Do the delay each time we attack a new target
  14585.     DelayBetweenShots            = 6000
  14586.     HitPercentage                = 0                                ; never auto hits, always hits ground
  14587.     ScatterRadius                = 4.0                            ; When this weapon misses it can randomly miss by as much as this distance.
  14588.     IsAimingWeapon                = Yes                            ; Shooter will use his AimWeaponBehavior to get extra model condition flags
  14589.     NoVictimNeeded                = Yes                            ; Need no target
  14590.     LeechRangeWeapon            = Yes
  14591.  
  14592.     HoldAfterFiringDelay        = 4200
  14593.     AutoReloadWhenIdle            = 1800                            ; should be a bit less than IdleAfterFiringDelay or HoldAfterFiringDelay
  14594.     //ClipSize                     = 1
  14595.     AutoReloadsClip             = NO
  14596.     ClipReloadTime                 = 2000
  14597.  
  14598.     ProjectileNugget                                ; A Nugget that creates an Object and sends it to the target with a Warhead
  14599.         ProjectileTemplateName    = RockBigGiant
  14600.         WarheadTemplateName        = WildMountainGiantRockThrowWarhead
  14601.     End
  14602.     
  14603.     ProjectileNugget                                                    ; This nugget is to create a revealing object, so fire
  14604.         AlwaysAttackHereOffset    = X:0 Y:0 Z:0                            ; it directly on top of us, and just use an empty warhead
  14605.         UseAlwaysAttackOffset    = Yes                                    ; so we don't assert.
  14606.         ProjectileTemplateName  = ShroudRevealer_Bombard
  14607.         WarheadTemplateName     = ShipRevealBombardWarhead_Dummy
  14608.     End
  14609. End
  14610.  
  14611. ;----------------------------
  14612. Weapon WildMountainGiantRockMeleeAttack                            // Smash straight down with the rock when too close to throw it
  14613.   LeechRangeWeapon = Yes
  14614.   AttackRange                = 30.0
  14615.   MeleeWeapon                = Yes
  14616.   DelayBetweenShots            = 3600            ; time between shots, msec
  14617.   FiringDuration            = 2000            
  14618.   PreAttackDelay            = 1400              
  14619.   PreAttackType                = PER_SHOT
  14620.   FireFX                    = FX_TreeBeardPunch
  14621.   RadiusDamageAffects        = ENEMIES NEUTRALS
  14622.   ;DamageDealtAtSelfPosition = Yes ; A melee based AoE.  Arc radiates from me, not them
  14623.  
  14624.   DamageNugget                        ; A basic Nugget that just does damage
  14625.     Damage        = WILD_MOUNTAIN_GIANT_ROCK_MELEE_DAMAGE
  14626.     Radius        = WILD_MOUNTAIN_GIANT_ROCK_MELEE_RADIUS
  14627.     DelayTime     = 0
  14628.     DamageType    = SIEGE
  14629.     DamageFXType  = CLUBBING
  14630.     DeathType     = NORMAL
  14631.     DamageArc      = 180
  14632.   End
  14633.   MetaImpactNugget                    ; A Nugget that throws things back with force
  14634.     ShockWaveAmount   = 60.0
  14635.     ShockWaveRadius   = WILD_MOUNTAIN_GIANT_PUNCH_RADIUS
  14636.     ShockWaveTaperOff = 1.0
  14637.     ShockWaveArc      = 40
  14638. ;    ShockWaveZMult   = 0.75
  14639. ;    HeroResist          = 0.90        ; 90% resistance to heroes
  14640.   End
  14641. End
  14642.  
  14643. ;----------------------------------------------------------------------------------------------------------------
  14644. ; This is the building attack and is also used against monsters
  14645. Weapon GiantBuildingTeardown
  14646.     RadiusDamageAffects        = ENEMIES NEUTRALS
  14647.     CanFireWhileMoving        = No
  14648.     LeechRangeWeapon        = Yes                ;Just like the troll, this needs to go with Melee to let me hurt round buildings.
  14649.     AttackRange                = 20.0
  14650.     AntiStructure            = Yes                ; Ram ONLY affects structures -- buildings, walls, gates
  14651.     AntiGround                = Yes                ; Can attack monsters too
  14652.     MeleeWeapon                = Yes
  14653.     AcceptableAimDelta        = 20                ; Can't ram sideways (but give a little slack)
  14654.     FireFX                    = FX_TreeBeardBash
  14655.     DelayBetweenShots        = 3900                ; time between shots, msec
  14656.     FiringDuration            = 1900                ; min 1900 for anim
  14657.     PreAttackDelay            = 1100
  14658.     PreAttackType            = PER_SHOT            ; Do the delay each time we attack a new target
  14659.  
  14660.     DamageNugget                        ; A basic Nugget that just does damage
  14661.         SpecialObjectFilter    = ANY +STRUCTURE +BLOCKING_GATE
  14662.         Damage        = WILD_MOUNTAIN_GIANT_BUILDINGATTACK_DAMAGE
  14663.         Radius        = 0.0
  14664.         DelayTime     = 0
  14665.         DamageType    = SIEGE
  14666.         DamageFXType  = CLUBBING
  14667.         DeathType     = NORMAL
  14668.     End
  14669.  
  14670.     DamageNugget                        ; A basic Nugget that just does damage
  14671.         SpecialObjectFilter = ANY +MONSTER
  14672.         Damage        = WILD_MOUNTAIN_GIANT_ANTIMONSTER_DAMAGE
  14673.         Radius        = 0.0
  14674.         DelayTime     = 0
  14675.         DamageType    = SIEGE
  14676.         DamageFXType  = CLUBBING
  14677.         DeathType     = NORMAL
  14678.     End
  14679. End
  14680.  
  14681. ;----------------------------
  14682. Weapon WildMountainGiantRockThrowWarhead
  14683.   ;FireFX= FX_ImpactEntRock
  14684.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS ALLIES; Remember, the projectile is a rock, who has no allies
  14685.   RadiusDamageAffects    = ENEMIES NEUTRALS ALLIES
  14686.   
  14687.   
  14688.   DamageNugget                        ; A basic Nugget that just does damage
  14689.     Damage        = WILD_MOUNTAIN_GIANT_ROCK_DAMAGE
  14690.     Radius         = 20.0
  14691.     DelayTime     = 0
  14692.     DamageType    = SIEGE
  14693.     DamageFXType  = SMALL_ROCK
  14694.     DeathType     = NORMAL
  14695.   End
  14696.   
  14697.        DamageNugget                        ; A basic Nugget that just does damage
  14698.         Damage        = WILD_MOUNTAIN_GIANT_ROCK_DAMAGE  ; Hella damage.  structures are on a different order of magnitude for hitpoints, and we want to be sure to outscore the fire damage so we can knock bits off.
  14699.         DamageTaperOff = 50
  14700.         Radius        = 100.0
  14701.         DelayTime     = 0
  14702.         DamageType    = SIEGE
  14703.         DamageFXType  = BIG_ROCK
  14704.         DeathType     = EXPLODED
  14705.         DamageScalar  = 0% ALL -WALL_UPGRADE -WALL_HUB -WALL_SEGMENT -DEFENSIVE_WALL            ; No damage to allied structures.
  14706.         ;DamageScalar  = 0% ANY ALLIES +STRUCTURE            ; No damage to allied structures.
  14707.     End
  14708.   
  14709.   
  14710.   MetaImpactNugget                    ; A Nugget that throws things back with force
  14711. ;    HeroResist            = .75
  14712.     ShockWaveAmount        = 25.0
  14713.     ShockWaveRadius        = 20.0
  14714.     ShockWaveTaperOff    = 0.75
  14715. ;   ShockWaveZMult        = 1.20
  14716.   End
  14717. End
  14718.  
  14719. ;----------------------------
  14720. Weapon WildMountainGiantRockThrowWarhead_Structural
  14721.   ;FireFX= FX_ImpactEntRock
  14722.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS ALLIES; Remember, the projectile is a rock, who has no allies
  14723.   RadiusDamageAffects    = ENEMIES NEUTRALS ALLIES
  14724.   DamageNugget                        ; A basic Nugget that just does damage
  14725.     Damage        = WILD_MOUNTAIN_GIANT_ROCK_DAMAGE
  14726.     Radius        = 20.0
  14727.     DelayTime     = 0
  14728.     DamageType    = SIEGE
  14729.     DamageFXType  = SMALL_ROCK
  14730.     DeathType     = NORMAL
  14731.   End
  14732.   MetaImpactNugget                    ; A Nugget that throws things back with force
  14733. ;    HeroResist            = .75
  14734.     ShockWaveAmount        = 25.0
  14735.     ShockWaveRadius        = 20.0
  14736.     ShockWaveTaperOff    = 0.75
  14737. ;   ShockWaveZMult        = 1.20
  14738.   End
  14739. End
  14740.  
  14741. ;------------------------------------------------------------------------------
  14742. ; This is the normal punch, not the AOE, rock, siege or tree
  14743. Weapon WildMountainGiantPunch1                ; ATKA - Left arm swat
  14744.   LeechRangeWeapon = Yes
  14745.   AttackRange                = 30.0
  14746.   MeleeWeapon                = Yes
  14747.   ;HoldAfterFiringDelay        = 1400            ; don't let the unit AI do anything else until animation finishes
  14748.   DelayBetweenShots            = 1400            ; slightly less than FiringDuration
  14749.   FiringDuration            = 1600            ; remaining 48 frames of 90
  14750.   PreAttackDelay            = 1400            ; anim frame 42/90
  14751.   PreAttackType                = PER_SHOT ; Do the delay each time we attack a new target
  14752.   FireFX                    = FX_TreeBeardPunch
  14753.   RadiusDamageAffects        = ENEMIES NEUTRALS
  14754.   DamageDealtAtSelfPosition = Yes ; A melee based AoE.  Arc radiates from me, not them
  14755.   LockWhenUsing                = Yes
  14756.  
  14757.   DamageNugget                        ; A basic Nugget that just does damage
  14758.     Damage        = WILD_MOUNTAIN_GIANT_PUNCH_DAMAGE
  14759.     Radius        = WILD_MOUNTAIN_GIANT_PUNCH_RADIUS
  14760.     DelayTime     = 0
  14761.     DamageType    = SIEGE
  14762.     DamageFXType  = CLUBBING
  14763.     DeathType     = NORMAL
  14764.     DamageArc      = 40
  14765.   End
  14766.   MetaImpactNugget                    ; A Nugget that throws things back with force
  14767.     ShockWaveAmount   = 60.0
  14768.     ShockWaveRadius   = WILD_MOUNTAIN_GIANT_PUNCH_RADIUS
  14769.     ShockWaveTaperOff = 1.0
  14770.     ShockWaveArc      = 40
  14771. ;    ShockWaveZMult   = 0.75
  14772. ;    HeroResist          = 0.90        ; 90% resistance to heroes
  14773.   End
  14774. End
  14775.  
  14776. Weapon WildMountainGiantPunch2                ; ATKB - Right backhand
  14777.   LeechRangeWeapon = Yes
  14778.   AttackRange                = 30.0
  14779.   MeleeWeapon                = Yes
  14780.   ;HoldAfterFiringDelay        = 1400            ; don't let the unit AI do anything else until animation finishes
  14781.   DelayBetweenShots            = 1400            ; slightly less than FiringDuration
  14782.   FiringDuration            = 1600            ; remaining 47 frames of 81 (rounded to nearest logic frame)
  14783.   PreAttackDelay            = 1200            ; anim frame 34/81 (rounded to nearest logic frame)
  14784.   PreAttackType                = PER_SHOT ; Do the delay each time we attack a new target
  14785.   FireFX                    = FX_TreeBeardPunch
  14786.   RadiusDamageAffects        = ENEMIES NEUTRALS
  14787.   DamageDealtAtSelfPosition = Yes ; A melee based AoE.  Arc radiates from me, not them
  14788.   LockWhenUsing                = Yes
  14789.  
  14790.   DamageNugget                        ; A basic Nugget that just does damage
  14791.     Damage        = WILD_MOUNTAIN_GIANT_PUNCH_DAMAGE
  14792.     Radius        = WILD_MOUNTAIN_GIANT_PUNCH_RADIUS
  14793.     DelayTime     = 0
  14794.     DamageType    = SIEGE
  14795.     DamageFXType  = CLUBBING
  14796.     DeathType     = NORMAL
  14797.     DamageArc      = 40
  14798.   End
  14799.   MetaImpactNugget                    ; A Nugget that throws things back with force
  14800.     ShockWaveAmount   = 60.0
  14801.     ShockWaveRadius   = WILD_MOUNTAIN_GIANT_PUNCH_RADIUS
  14802.     ShockWaveTaperOff = 1.0
  14803.     ShockWaveArc      = 40
  14804. ;    ShockWaveZMult   = 0.75
  14805. ;    HeroResist          = 0.90        ; 90% resistance to heroes
  14806.   End
  14807. End
  14808.  
  14809. Weapon WildMountainGiantPunch3                ; ATKD - Right football kick
  14810.   LeechRangeWeapon = Yes
  14811.   AttackRange                = 30.0
  14812.   MeleeWeapon                = Yes
  14813.   ;HoldAfterFiringDelay        = 1200            ; don't let the unit AI do anything else until animation finishes
  14814.   DelayBetweenShots            = 1400
  14815.   FiringDuration            = 1400            ; remaining 43 frames of 71 (rounded to nearest logic frame)
  14816.   PreAttackDelay            = 1000            ; anim frame 28/71 (rounded to nearest logic frame)
  14817.   PreAttackType                = PER_SHOT ; Do the delay each time we attack a new target
  14818.   FireFX                    = FX_TreeBeardPunch
  14819.   RadiusDamageAffects        = ENEMIES NEUTRALS
  14820.   DamageDealtAtSelfPosition = Yes ; A melee based AoE.  Arc radiates from me, not them
  14821.   LockWhenUsing                = Yes
  14822.  
  14823.   DamageNugget                        ; A basic Nugget that just does damage
  14824.     Damage        = WILD_MOUNTAIN_GIANT_PUNCH_DAMAGE
  14825.     Radius        = WILD_MOUNTAIN_GIANT_PUNCH_RADIUS
  14826.     DelayTime     = 0
  14827.     DamageType    = SIEGE
  14828.     DamageFXType  = CLUBBING
  14829.     DeathType     = NORMAL
  14830.     DamageArc      = 40
  14831.   End
  14832.   MetaImpactNugget                    ; A Nugget that throws things back with force
  14833.     ShockWaveAmount   = 60.0
  14834.     ShockWaveRadius   = WILD_MOUNTAIN_GIANT_PUNCH_RADIUS
  14835.     ShockWaveTaperOff = 1.0
  14836.     ShockWaveArc      = 40
  14837. ;    ShockWaveZMult   = 0.75
  14838. ;    HeroResist          = 0.90        ; 90% resistance to heroes
  14839.   End
  14840. End
  14841.  
  14842. Weapon WildMountainGiantMovingPunch                ; ATRA - Right backhand while moving
  14843.   LeechRangeWeapon = Yes
  14844.   AttackRange                = 30.0
  14845.   MeleeWeapon                = Yes
  14846.   ;HoldAfterFiringDelay        = 1200            ; don't let the unit AI do anything else until animation finishes
  14847.   DelayBetweenShots            = 1400
  14848.   FiringDuration            = 600            ; remaining 20 frames of 44 (rounded to nearest logic frame)
  14849.   PreAttackDelay            = 800            ; anim frame 22/44 (rounded to nearest logic frame)
  14850.   PreAttackType                = PER_SHOT ; Do the delay each time we attack a new target
  14851.   FireFX                    = FX_TreeBeardPunch
  14852.   RadiusDamageAffects        = ENEMIES NEUTRALS
  14853.   DamageDealtAtSelfPosition = Yes ; A melee based AoE.  Arc radiates from me, not them
  14854.   LockWhenUsing                = Yes
  14855.  
  14856.   DamageNugget                        ; A basic Nugget that just does damage
  14857.     Damage        = WILD_MOUNTAIN_GIANT_PUNCH_DAMAGE
  14858.     Radius        = WILD_MOUNTAIN_GIANT_PUNCH_RADIUS
  14859.     DelayTime     = 0
  14860.     DamageType    = SIEGE
  14861.     DamageFXType  = CLUBBING
  14862.     DeathType     = NORMAL
  14863.     DamageArc      = 40
  14864.   End
  14865.   MetaImpactNugget                    ; A Nugget that throws things back with force
  14866.     ShockWaveAmount   = 60.0
  14867.     ShockWaveRadius   = WILD_MOUNTAIN_GIANT_PUNCH_RADIUS
  14868.     ShockWaveTaperOff = 1.0
  14869.     ShockWaveArc      = 40
  14870. ;    ShockWaveZMult   = 0.75
  14871. ;    HeroResist          = 0.90        ; 90% resistance to heroes
  14872.   End
  14873. End
  14874.  
  14875. ;----------------------------
  14876. Weapon WildMountainGiantRockFromThinAir  ; BALANCE TreeBeard Weapon Rock
  14877.     AttackRange                    = WILD_MOUNTAIN_GIANT_ROCK_DAMAGE
  14878.     WeaponSpeed                    = 200.0        ; dist/sec (huge value == effectively instant)
  14879.     FireFX                        = FX_TrollTreeSwing
  14880.     PreAttackDelay                = 6200
  14881.     FiringDuration                = 1800
  14882.     DelayBetweenShots            = 4000
  14883.     PreAttackType                = PER_SHOT ; Do the delay each time we attack a new target
  14884.     HitPercentage                = 0 ; never auto hits, always hits ground
  14885.     ScatterRadius                = 4.0     ;When this weapon misses it can randomly miss by as much as this distance.
  14886.     IsAimingWeapon                = Yes    ; Shooter will use his AimWeaponBehavior to get extra model condition flags
  14887.     NoVictimNeeded                = Yes ; Need no target
  14888.     LeechRangeWeapon            = Yes
  14889.  
  14890.     ProjectileNugget                                ; A Nugget that creates an Object and sends it to the target with a Warhead
  14891.         ProjectileTemplateName        = RockBigTreeberd
  14892.         WarheadTemplateName            = WildMountainGiantRockFromThinAirWarhead
  14893.     End
  14894. End
  14895.  
  14896. ;----------------------------
  14897. Weapon WildMountainGiantRockFromThinAirWarhead
  14898.   ;FireFX= FX_ImpactEntRock
  14899.   ProjectileCollidesWith    = ENEMIES NEUTRAL STRUCTURES WALLS 
  14900.   RadiusDamageAffects        = ENEMIES NEUTRALS
  14901.   DamageNugget                        ; A basic Nugget that just does damage
  14902.     Damage        = WILD_MOUNTAIN_GIANT_ROCK_DAMAGE
  14903.     Radius        = 10.0
  14904.     DelayTime     = 0
  14905.     DamageType    = SIEGE
  14906.     DamageFXType  = SMALL_ROCK
  14907.     DeathType     = NORMAL
  14908.   End
  14909.   MetaImpactNugget                    ; A Nugget that throws things back with force
  14910. ;    HeroResist            = .75
  14911.     ShockWaveAmount        = 50.0
  14912.     ShockWaveRadius        = 30.0
  14913.     ShockWaveTaperOff    = 0.75
  14914. ;   ShockWaveZMult        = 1.20
  14915.   End
  14916. End
  14917.  
  14918. ;------------------------------------------------------------------------------
  14919. Weapon WildMountainGiantStomp ; Special ability
  14920.     IdleAfterFiringDelay = 0
  14921.     AttackRange = WILD_MOUNTAIN_GIANT_STOMP_RADIUS
  14922.     MinimumAttackRange = 0.8
  14923.     WeaponSpeed = 401         ; dist/sec 
  14924.     MinWeaponSpeed = 241
  14925.     MaxWeaponSpeed = 601      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  14926.     ScaleWeaponSpeed = Yes ; Used for lob weapons, scales speed proportional to range
  14927.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  14928.     DelayBetweenShots = 5000               ; time between shots, msec
  14929.     PreAttackDelay        = 2600
  14930.     PreAttackType         = PER_ATTACK ; Do the delay each time we attack a new target
  14931.     PreAttackFX           = FX_GandalfPreAttackBlast
  14932.     FireFX                = FX_GiantStomp
  14933.     FiringDuration      = 1400
  14934.     DamageNugget                        ; A basic Nugget that just does damage
  14935.         Damage            = WILD_MOUNTAIN_GIANT_STOMP_DAMAGE
  14936.         Radius            = WILD_MOUNTAIN_GIANT_STOMP_RADIUS
  14937.         DamageType        = FORCE
  14938.         DeathType        = NORMAL
  14939.         DamageSpeed        = 700.0 ; must match the ShockWaveSpeed below
  14940.     End
  14941.     MetaImpactNugget                    ; A Nugget that throws things back with force
  14942. ;        HeroResist            = .75
  14943.         ShockWaveAmount   = 35.0
  14944.         ShockWaveRadius   = WILD_MOUNTAIN_GIANT_STOMP_RADIUS
  14945.         ShockWaveTaperOff = 1.0
  14946.         ShockWaveSpeed      = 700.0 
  14947.     End
  14948. End
  14949.  
  14950. ;------------------------------------------------------------------------------
  14951. Weapon MountainGiantDeath  ; BALANCE Ent Death toppling over units
  14952.   RadiusDamageAffects = ALLIES ENEMIES NEUTRALS
  14953.   DamageNugget                        ; A basic Nugget that just does damage
  14954.     Damage        = WILD_MOUNTAIN_GIANT_DEATH_DAMAGE
  14955.     Radius        = WILD_MOUNTAIN_GIANT_DEATH_RADIUS
  14956.     DelayTime     = 0
  14957.     DamageType    = CRUSH
  14958.     DeathType     = NORMAL
  14959.   End
  14960.   MetaImpactNugget                    ; A Nugget that throws things back with force
  14961. ;    HeroResist            = .75
  14962.     ShockWaveAmount        = 40.0
  14963.     ShockWaveRadius        = 40.0
  14964.     ShockWaveTaperOff    = 1.0
  14965.   End
  14966. End
  14967.  
  14968. ;------------------------------------------------------------------------------
  14969. Weapon WildMarauderPike     ; BALANCE Wild Marauder Weapon
  14970.   LeechRangeWeapon      = Yes
  14971.   AttackRange           = 35
  14972.   MeleeWeapon           = Yes    ; Sorry, stand off doesn't work.  This is just a melee weapon.
  14973.   DelayBetweenShots     = WILD_MARAUDER_STAB_DELAYBETWEENSHOTS                ; time between shots, msec
  14974.   PreAttackDelay        = WILD_MARAUDER_STAB_PREATTACKDELAY                
  14975.   PreAttackType         = PER_SHOT            ; Do the delay each time we attack
  14976.   FireFX                = FX_GondorSwordHit
  14977.   FireFlankFX        = FX_Flanking
  14978.   FiringDuration        = WILD_MARAUDER_STAB_FIRINGDURATION                
  14979.   
  14980.     DamageNugget                                ; A basic Nugget that just does damage
  14981.         Damage                = WILD_MARAUDER_STAB_DAMAGE
  14982.         DamageType            = SPECIALIST
  14983.         DamageFXType            = SWORD_SLASH
  14984.         DeathType            = NORMAL
  14985.         ;LostLeadershipUselessAgainst    = CAVALRY ; Useless when under the CloudBreak spell against Cavalry type units
  14986.         ForbiddenUpgradeNames        = Upgrade_WildForgedBlades
  14987.         FlankingBonus = 50%
  14988.     End
  14989.  
  14990.     DamageNugget                                ; A basic Nugget that just does damage
  14991.         Damage                = WILD_MARAUDER_DAMAGE_UPGRADE
  14992.         DamageType            = SPECIALIST
  14993.         DamageFXType            = SWORD_SLASH
  14994.         DeathType            = NORMAL
  14995.         ;LostLeadershipUselessAgainst    = CAVALRY ; Useless when under the CloudBreak spell against Cavalry type units
  14996.         RequiredUpgradeNames        = Upgrade_WildForgedBlades
  14997.         FlankingBonus = 50%
  14998.     End
  14999. End
  15000.  
  15001.  
  15002. ;------------------------------------------------------------------------------
  15003. ;Weapon IsengardExplosiveMineDroppingWeaponCAMPEA   ; BALANCE Mine Weapon
  15004. ;    AttackRange           = 4.0
  15005. ;    MeleeWeapon           = Yes
  15006. ;    DelayBetweenShots     = 3000            ; time between shots, msec
  15007. ;    PreAttackDelay        = 1466             ; 433 is natural time of the stabbing animation.
  15008. ;    PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  15009. ;    FiringDuration        = 733            ; min 600 for anim
  15010. ;
  15011. ;    SpawnAndFadeNugget    
  15012. ;        SpawnedObjectName = IsengardDeployedExplosiveMineCAMPEA
  15013. ;        SpawnOffset = X:8 Y:1 Z:0
  15014. ;    End
  15015. ;End
  15016.  
  15017. ;------------------------------------------------------------------------------
  15018. ;Weapon IsengardExplosiveMineExplosionWeaponCAMPEA   ; BALANCE Mine Weapon
  15019. ;    AttackRange           = 4.0
  15020. ;    DelayBetweenShots     = 2000            ; time between shots, msec
  15021. ;    FireFX                = FX_ExplosiveMine
  15022. ;
  15023. ;    DamageNugget                        ; A basic Nugget that just does damage
  15024. ;        Damage        = 20
  15025. ;        Radius        = 20.0
  15026. ;        DelayTime     = 0
  15027. ;        DamageType    = SIEGE
  15028. ;        DamageFXType  = FLAME
  15029. ;        DeathType     = BURNED
  15030. ;        DamageScalar  = 500000% NONE +HelmsDeepCulvert +HelmsDeepGate +HelmsDeepSectionAi +HelmsDeepSectionC ;Make sure we one shot kill Culvert but Ballista have to shoot alot
  15031. ;    End
  15032. ;
  15033. ;    DamageNugget                        ; A basic Nugget that just does damage
  15034. ;        Damage        = 1000
  15035. ;        Radius        = 205.0
  15036. ;        DelayTime     = 0
  15037. ;        DamageType    = FORCE
  15038. ;        DeathType     = NORMAL
  15039. ;    End
  15040. ;    
  15041. ;    MetaImpactNugget                    ; A Nugget that throws things back with force 
  15042. ;        HeroResist            = .75
  15043. ;        ShockWaveAmount   = 90.0        
  15044. ;        ShockWaveRadius   = 205.0
  15045. ;        ShockWaveTaperOff = 0.66
  15046. ;    End
  15047. ;End
  15048.  
  15049.  
  15050.  
  15051. ;------------------------------------------------------------------------------
  15052. Weapon IsengardScaffoldLargeCollapseWeapon     
  15053.     AttackRange            = 4.0
  15054.     DelayBetweenShots        = 2000                ; time between shots, msec
  15055.     ;FireFX            = FX_ScaffoldDie            ; currently just used for audio only
  15056.  
  15057.     DamageNugget                        ; A basic Nugget that just does damage
  15058.         Damage        = 800                  ; A whole lot of damage.
  15059.         Radius        = 50.0
  15060.         DelayTime     = 0
  15061.         DamageType    = CRUSH
  15062.         DeathType     = CRUSHED
  15063.     End
  15064.  
  15065.     DamageNugget                        ; A basic Nugget that just does damage
  15066.         Damage        = 1000
  15067.         Radius        = 50.0
  15068.         DelayTime     = 0
  15069.         DamageType    = FORCE
  15070.         DeathType     = NORMAL
  15071.     End
  15072.     
  15073.     MetaImpactNugget                    ; A Nugget that throws things back with force 
  15074. ;        HeroResist            = .75
  15075.         ShockWaveAmount   = 90.0        
  15076.         ShockWaveRadius   = 75.0
  15077.         ShockWaveTaperOff = 0.66
  15078.     End
  15079. End
  15080.  
  15081.  
  15082. ;------------------------------------------------------------------------------
  15083. Weapon IsengardScaffoldSmallCollapseWeapon     
  15084.     AttackRange           = 4.0
  15085.     DelayBetweenShots     = 2000            ; time between shots, msec
  15086.  
  15087.     DamageNugget                        ; A basic Nugget that just does damage
  15088.         Damage        = 400                  ; A whole lot of damage.
  15089.         Radius        = 30.0
  15090.         DelayTime     = 0
  15091.         DamageType    = CRUSH
  15092.         DeathType     = CRUSHED
  15093.     End
  15094.  
  15095.     DamageNugget                        ; A basic Nugget that just does damage
  15096.         Damage        = 500
  15097.         Radius        = 30.0
  15098.         DelayTime     = 0
  15099.         DamageType    = FORCE
  15100.         DeathType     = NORMAL
  15101.     End
  15102.     
  15103.     MetaImpactNugget                    ; A Nugget that throws things back with force 
  15104. ;        HeroResist            = .75
  15105.         ShockWaveAmount   = 90.0        
  15106.         ShockWaveRadius   = 50.0
  15107.         ShockWaveTaperOff = 0.66
  15108.     End
  15109. End
  15110.  
  15111. ;//-------------------------------------------------------------------------------------
  15112. ;//------------    ELVEN ------------------------------------------------------------------
  15113. ;//-------------------------------------------------------------------------------------
  15114.  
  15115. ;------------------------------------------------------------------------------
  15116. Weapon ElvenThranduilBow 
  15117.     AttackRange         = THRANDUIL_BOW_RANGE    
  15118.     
  15119.     RangeBonusMinHeight    = 10
  15120.     RangeBonus        = 1
  15121.     RangeBonusPerFoot    = #MULTIPLY( THRANDUIL_BOW_RANGE .01 )  
  15122.     
  15123.     
  15124.     WeaponSpeed         = 321         ; dist/sec 
  15125.     MinWeaponSpeed      = 241
  15126.     MaxWeaponSpeed      = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  15127.     FireFX              = FX_RohanArcherBowWeapon
  15128.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  15129.     HitPercentage       = 100     ;When this weapon is used it will hit exactly 50% of the time.
  15130.     HitStoredTarget = Yes    ; Always hits initial target.
  15131.     ;ScatterRadius       = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  15132.     
  15133.     DelayBetweenShots   = 0
  15134.     PreAttackDelay      = ROHAN_ELVENWARRIOR_BOW_PREATTACKDELAY 
  15135.     PreAttackType       = PER_POSITION
  15136.     FiringDuration      = 0
  15137.  
  15138.     ;OverrideVoiceAttackSound        = ElvenWarriorVoiceAttackBow
  15139.       
  15140.     ClipSize            = 1
  15141.     AutoReloadsClip        = Yes
  15142.     AutoReloadWhenIdle    = 1    
  15143.     ClipReloadTime        = Min:THRANDUIL_RELOADTIME_MIN Max:THRANDUIL_RELOADTIME_MAX
  15144.     ContinuousFireOne    = 0
  15145.     ContinuousFireCoast    = THRANDUIL_RELOADTIME_MAX
  15146.       
  15147.     AntiAirborneVehicle    = Yes
  15148.     AntiAirborneMonster    = Yes
  15149.     HitPassengerPercentage    = 20%
  15150.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  15151.  
  15152.     ProjectileNugget                    ; Default arrow
  15153.         ProjectileTemplateName    = GoodFactionArrow
  15154.         WarheadTemplateName       = ElvenThranduilBowWarhead
  15155.         ForbiddenUpgradeNames   = Upgrade_RohanFireArrows
  15156.     End
  15157.  
  15158. End
  15159.  
  15160. ;----------------------------
  15161. Weapon ElvenThranduilBowWarhead
  15162.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS ;ALLIES (4/23/04 removed friendly fire)
  15163.   RadiusDamageAffects = ENEMIES NEUTRALS ALLIES NOT_SIMILAR
  15164.   HitStoredTarget = Yes    ; Always hits initial target.
  15165.   DamageNugget                        ; A basic Nugget that just does damage
  15166.     Damage        = THRANDUIL_BOW_DAMAGE
  15167.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  15168.     DelayTime     = 0
  15169.     DamageType    = HERO_RANGED
  15170.     DamageFXType  = GOOD_ARROW_PIERCE
  15171.     DeathType     = NORMAL
  15172.   End
  15173. End
  15174.  
  15175.  
  15176. ;------------------------------------------------------------------------------
  15177. Weapon ElvenThranduilBowDeadeye
  15178.     AttackRange                    = THRANDUIL_BOW_RANGE_DEADEYE
  15179.     WeaponSpeed                    = 321
  15180.     MinWeaponSpeed                = 241
  15181.     MaxWeaponSpeed                = 481
  15182.     FireFX                        = FX_RohanArcherBowWeapon
  15183.     ScaleWeaponSpeed            = Yes
  15184.     HitPercentage                = 100
  15185.     HitStoredTarget                = Yes
  15186.     DelayBetweenShots            = 0
  15187.     PreAttackDelay                = ROHAN_ELVENWARRIOR_BOW_PREATTACKDELAY
  15188.     PreAttackType                = PER_POSITION
  15189.     FiringDuration                = 0
  15190.     ;OverrideVoiceAttackSound    = ElvenWarriorVoiceAttackBow
  15191.     ClipSize                    = 1
  15192.     AutoReloadsClip                = Yes
  15193.     AutoReloadWhenIdle            = 1
  15194.     ClipReloadTime                = Min:THRANDUIL_RELOADTIME_MIN Max:THRANDUIL_RELOADTIME_MAX
  15195.     ContinuousFireOne            = 0
  15196.     ContinuousFireCoast            = THRANDUIL_RELOADTIME_MAX
  15197.     AntiAirborneVehicle            = Yes
  15198.     AntiAirborneMonster            = Yes
  15199.     HitPassengerPercentage        = 20%
  15200.     CanBeDodged                    = Yes
  15201.  
  15202.     ProjectileNugget
  15203.         ProjectileTemplateName    = GoodFactionArrowDeadeye
  15204.         WarheadTemplateName        = ElvenThranduilBowWarheadDeadeye
  15205.         ForbiddenUpgradeNames    = Upgrade_RohanFireArrows
  15206.     End
  15207.  
  15208. End
  15209.  
  15210. ;----------------------------
  15211. Weapon ElvenThranduilBowWarheadDeadeye
  15212.     ProjectileCollidesWith        = ENEMIES NEUTRAL STRUCTURES WALLS
  15213.     RadiusDamageAffects            = ENEMIES NEUTRALS ALLIES NOT_SIMILAR
  15214.     HitStoredTarget                = Yes
  15215.     DamageNugget
  15216.         Damage                    = THRANDUIL_BOW_DAMAGE
  15217.         Radius                    = 0.0
  15218.         DelayTime                = 0
  15219.         DamageType                = HERO_RANGED
  15220.         DamageFXType            = GOOD_ARROW_PIERCE
  15221.         DeathType                = NORMAL
  15222.     End
  15223.     DamageNugget
  15224.         Damage                    = THRANDUIL_BOW_DAMAGE_DEADEYE_MAGICAL
  15225.         Radius                    = 0.0
  15226.         DelayTime                = 0
  15227.         DamageType                = MAGIC
  15228.         DamageFXType            = GOOD_ARROW_PIERCE
  15229.         DeathType                = NORMAL
  15230.     End
  15231.     MetaImpactNugget
  15232.         SpecialObjectFilter        = NONE +INFANTRY
  15233.         ShockWaveAmount            = 50.0
  15234.         ShockWaveRadius            = 5.0
  15235.         ShockWaveArc            = 90
  15236.         ShockWaveTaperOff        = 1.0
  15237.         ShockWaveSpeed            = 0.0
  15238.         ShockWaveZMult            = 1.0
  15239.         OnlyWhenJustDied        = Yes
  15240.     End
  15241. End
  15242.  
  15243. ;------------------------------------------------------------------------------
  15244.  
  15245. Weapon ThranduilThornofVengeance
  15246.     AttackRange                = FARAMIR_WOUNDING_ARROW_RANGE
  15247.     LeechRangeWeapon            = Yes
  15248.     WeaponSpeed                = 321                 ; dist/sec 
  15249.     MinWeaponSpeed            = 241
  15250.     MaxWeaponSpeed            = 481            ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  15251.     FireFX                    = FX_FaramirWoundingArrow
  15252.     ScaleWeaponSpeed        = Yes ; Used for lob weapons, scales speed proportional to range
  15253.     HitStoredTarget            = Yes    ; Always hits initial target.
  15254.     HitPercentage            = 100         
  15255.     ScatterRadius            = 0.0         ;When this weapon misses it can randomly miss by as much as this distance.
  15256.     DelayBetweenShots        = 15000                                    ; time between shots, msec
  15257.     PreAttackDelay            = 1                                        ; we want isntant
  15258.     PreAttackType            = PER_POSITION
  15259.     FiringDuration            = 1                                        ; Duration of the archer firing shot is 500ms.
  15260.     ClipSize                = 1
  15261.     AutoReloadsClip            = Yes
  15262.     AutoReloadWhenIdle        = 1    
  15263.     ClipReloadTime            = Min:THRANDUIL_THORN_RELOADTIME_MIN Max:THRANDUIL_THORN_RELOADTIME_MAX
  15264.     AntiAirborneVehicle        = Yes
  15265.     AntiAirborneMonster        = Yes
  15266.     PreferredTargetBone        = B_LLLID ; Likes to shoot things in their left eye.
  15267.     
  15268.     
  15269.     ProjectileNugget                                        ; A Nugget that creates an Object and sends it to the target with a Warhead
  15270.         ProjectileTemplateName    = ThranSpecialArrow
  15271.         WarheadTemplateName    = ThranduilThornofVengeanceWarhead
  15272.     End
  15273. End
  15274.  
  15275. ;------------------------------
  15276.  
  15277. Weapon ThranduilThornofVengeanceWarhead
  15278.   ProjectileCollidesWith = ALLIES ENEMIES NEUTRAL STRUCTURES WALLS 
  15279.   RadiusDamageAffects     = ENEMIES NEUTRALS ALLIES NOT_SIMILAR
  15280.   HitStoredTarget         = Yes    ; Always hits initial target.
  15281.   HitPercentage             = 100    
  15282.   DamageNugget                        ; A basic Nugget that just does damage
  15283.     Damage        = THRANDUIL_THORN_DAMAGE
  15284.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  15285.     DelayTime     = 0
  15286.     DamageType    = HERO
  15287.     DamageFXType  = GOOD_ARROW_PIERCE
  15288.     DeathType     = NORMAL
  15289.   End
  15290.  
  15291.   DamageNugget                       
  15292.     Damage                = THRANDUIL_THORN_FIRE_DAMAGE                
  15293.     DamageType            = MAGIC
  15294.     DamageFXType          = MAGIC
  15295.     DeathType             = BURNED
  15296.     Radius                = 35
  15297.     DelayTime            = 200  
  15298.   End
  15299.  
  15300.   DamageNugget                      
  15301.     Damage                = THRANDUIL_THORN_MAGIC_DAMAGE        
  15302.     DamageType            = MAGIC
  15303.     DamageFXType          = ELECTRIC
  15304.     DeathType             = BURNED
  15305.     DelayTime            = 200  
  15306.   End
  15307.   
  15308.   MetaImpactNugget                    ; A Nugget that throws things back with force
  15309. ;    HeroResist            = .25
  15310.     ShockWaveAmount   = 70.0
  15311.     ShockWaveRadius   = 15.0
  15312.     ShockWaveTaperOff = 0.5
  15313.     ShockWaveZMult    = 1.20
  15314.   End
  15315.   
  15316. End
  15317.  
  15318. ;------------------------------------------------------------------------------
  15319. Weapon ElvenThranduilSword  ; BALANCE Legolas Sword Weapon
  15320.     ;LeechRangeWeapon     = Yes
  15321.     ;AttackRange           = 400
  15322.     MeleeWeapon           = Yes
  15323.     DelayBetweenShots     = THRANDUIL_KNIFE_DELAYBETWEENSHOTS           ; time between shots, msec
  15324.     PreAttackDelay        = THRANDUIL_KNIFE_PREATTACKDELAY     ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  15325.     PreAttackType         = PER_SHOT 
  15326.     ;FireFX                = FX_GondorSwordHit
  15327.     FiringDuration        = THRANDUIL_KNIFE_FIRINGDURATION     ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  15328.     RadiusDamageAffects      = ENEMIES NEUTRALS NOT_SIMILAR
  15329.     
  15330.     DamageNugget                        ; A basic Nugget that just does damage
  15331.         Damage        = THRANDUIL_KNIFE_DAMAGE    
  15332.         Radius        = 0.0
  15333.         DelayTime     = 0
  15334.         DamageType    = HERO
  15335.         DamageFXType  = SWORD_SLASH
  15336.         DeathType     = NORMAL
  15337.     End
  15338. End
  15339.  
  15340. ;------------------------------------------------------------------------------
  15341. Weapon GaladrielSword
  15342.     RadiusDamageAffects            = ENEMIES NEUTRALS NOT_SIMILAR
  15343.     LeechRangeWeapon            = Yes
  15344.     CanFireWhileMoving            = No
  15345.     AttackRange                    = 30.0
  15346.     MeleeWeapon                    = Yes
  15347.     AcceptableAimDelta            = 60                ; Just needs to sort of face in the general direction
  15348.     FireFX                        = FX_GondorSwordHit    ; steal from gondor
  15349.     DelayBetweenShots            = 500                ; time between shots, msec
  15350.     PreAttackDelay                = 550                ; TEMP 350 is sword swing delay time before contact with target
  15351.     PreAttackType                = PER_SHOT            ; Do the delay each time we attack
  15352.     FiringDuration                = 800                ; TEMP Duration of the sword swing
  15353.     DamageDealtAtSelfPosition    = Yes                ; A melee based AoE.  Arc radiates from me, not them
  15354.  
  15355.     ; Magic damage
  15356.     DamageNugget                                    ; A basic Nugget that just does damage
  15357.         Damage            = GALADRIEL_DAMAGE
  15358.         Radius            = 75.0
  15359.         DamageArc        = 75
  15360.         DelayTime        = 0
  15361.         DamageType        = MAGIC
  15362.         DamageFXType    = MAGIC
  15363.         DeathType        = NORMAL
  15364.         DamageScalar          = 40% NONE +HERO
  15365.     End
  15366.  
  15367.     ; Push back
  15368.     MetaImpactNugget                                ; A Nugget that throws things back with force
  15369. ;        HeroResist            = .75
  15370.         ShockWaveAmount        = 60
  15371.         ShockWaveRadius        = 70
  15372.         ShockWaveArc        = 70                    ; Should generally be equal to damage arc
  15373.         ShockWaveTaperOff    = 1.0
  15374.         ShockWaveSpeed        = 0.0
  15375.         ShockWaveZMult        = 1.6
  15376.     End
  15377. End
  15378.  
  15379. ;------------------------------------------------------------------------------
  15380. Weapon ElrondBow           ; BALANCE Elven Archer Weapon
  15381.   AttackRange               = ELROND_BOW_RANGE
  15382.   
  15383.       RangeBonusMinHeight    = 10
  15384.     RangeBonus        = 1
  15385.     RangeBonusPerFoot    = #MULTIPLY( ELROND_BOW_RANGE .01 )
  15386.     
  15387.     
  15388.   WeaponSpeed               = 321         ; dist/sec 
  15389.   MinWeaponSpeed            = 241
  15390.   MaxWeaponSpeed            = 481      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  15391.   FireFX                    = FX_RohanArcherBowWeapon
  15392.   ScaleWeaponSpeed          = Yes      ; Used for lob weapons, scales speed proportional to range
  15393.   HitPercentage             = 100      ;When this weapon is used it will hit exactly 100% of the time.
  15394.   ScatterRadius             = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  15395.   DelayBetweenShots         = 0     ; time between shots, msec
  15396.   PreAttackDelay            = 833     ; 1467 is the prep time for archer.
  15397.   PreAttackRandomAmount     = 0      ; amount of additional preattack variance for archer type attacks only  
  15398.   PreAttackType             = PER_POSITION ; Do the delay each time we attack a new target
  15399.   FiringDuration            = 0     ; Duration of the archer firing shot is 500ms.
  15400.   
  15401.     ClipSize            = 1
  15402.     AutoReloadsClip        = Yes
  15403.     AutoReloadWhenIdle    = 1    
  15404.     ClipReloadTime        = Min:1800 Max:1800
  15405.     ContinuousFireOne    = 0
  15406.     ContinuousFireCoast    = 1800
  15407.   
  15408.   IsAimingWeapon            = Yes
  15409.   AntiAirborneVehicle       = Yes
  15410.   AntiAirborneMonster        = Yes
  15411.  
  15412.   ProjectileNugget          ; Default arrow
  15413.     ProjectileTemplateName  = GoodFactionArrow
  15414.     WarheadTemplateName     = ElvenArcherBowWarhead
  15415.     ForbiddenUpgradeNames   = Upgrade_RohanFireArrows
  15416.   End
  15417.  
  15418.   ProjectileNugget          ; Fire arrow available through fire upgrade
  15419.     ProjectileTemplateName  = GoodFactionFireArrow
  15420.     WarheadTemplateName     = GondorArcherBowWarhead
  15421.     RequiredUpgradeNames    = Upgrade_RohanFireArrows
  15422.   End
  15423. End
  15424.  
  15425. ;------------------------------------------------------------------------------
  15426. Weapon ElrondSword
  15427.   LeechRangeWeapon      = Yes
  15428.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  15429.   MeleeWeapon           = Yes
  15430.   DelayBetweenShots     = ELROND_DELAYBETWEENSHOTS             
  15431.              ; time between shots, msec
  15432.   PreAttackDelay        = ELROND_PREATTACKDELAY                  ; 400 is sword swing delay time before contact with target.
  15433.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  15434.   FireFX                = FX_GondorSwordHit
  15435.   FiringDuration        = ELROND_FIRINGDURATION                ; Duration of the sword swing
  15436.  
  15437.   DamageNugget                        ; A basic Nugget that just does damage
  15438.     Damage        = ELROND_DAMAGE                        
  15439.     Radius        = 0.0
  15440.     DelayTime     = 0
  15441.     DamageType    = HERO
  15442.     DamageFXType  = SWORD_SLASH
  15443.     DeathType     = NORMAL
  15444.   End
  15445. End
  15446.  
  15447. ;-------------------------------------------------------------------------------
  15448. Weapon GlorfindelSword
  15449.     LeechRangeWeapon            = Yes
  15450.     AttackRange                    = 20.0
  15451.     MeleeWeapon                    = Yes
  15452.     DelayBetweenShots            = GLORFINDEL_SWORD_DELAYBETWEENSHOTS
  15453.     PreAttackDelay                = GLORFINDEL_SWORD_PREATTACKDELAY
  15454.     PreAttackType                = PER_SHOT
  15455.     FireFX                        = FX_GondorSwordHit
  15456.     FiringDuration                = GLORFINDEL_SWORD_FIRINGDURATION
  15457.     RadiusDamageAffects            = ENEMIES NEUTRALS NOT_SIMILAR
  15458.     DamageNugget
  15459.         Damage            = GLORFINDEL_SWORD_DAMAGE
  15460.         Radius            = 10.0
  15461.         DelayTime        = 0
  15462.         DamageType        = HERO
  15463.         DamageFXType        = SWORD_SLASH
  15464.         DeathType        = Normal
  15465.     End
  15466. End
  15467.  
  15468. ;-------------------------------------------------------------------------------
  15469. ;Weapon WaterCharge
  15470. ;    MinimumAttackRange            = 100.0
  15471. ;    AttackRange                    = 240.0
  15472. ;    DelayBetweenShots            = 500            ; time between shots, msec
  15473. ;    FiringDuration                = 0 ;min 933 for anim              ; how long to reload a Clip, msec
  15474. ;    ;PreAttackDelay                = 1400
  15475. ;    PreAttackType                = PER_SHOT ; Do the delay each time we attack a new target
  15476. ;    ;PreAttackFX                = FX_TrollTreeSwing
  15477. ;    CanFireWhileCharging        = yes
  15478. ;    MeleeWeapon                    = Yes
  15479. ;    
  15480. ;    DamageNugget                        ; A basic Nugget that just does damage
  15481. ;        Damage                    = 3000
  15482. ;        Radius                    = 24.0
  15483. ;        DelayTime                = 0
  15484. ;        DamageType                = CRUSH
  15485. ;        DamageFXType            = CLUBBING
  15486. ;        DeathType                = NORMAL
  15487. ;    End
  15488. ;    MetaImpactNugget                    ; A Nugget that throws things back with force
  15489. ;        HeroResist            = .75
  15490. ;        ShockWaveAmount            = 60.0
  15491. ;        ShockWaveRadius            = 24.0
  15492. ;        ShockWaveTaperOff        = 0.7
  15493. ;    End
  15494. ;End
  15495.  
  15496. ;------------------------------------------------------
  15497.  
  15498. Weapon MumakilRampageTemp
  15499.     AttackRange = 160.0
  15500. ;    FireFX           = FX_RampageDust
  15501.     RadiusDamageAffects = ALLIES ENEMIES NEUTRALS NOT_SIMILAR
  15502.     DelayBetweenShots = 0                ; time between shots, msec
  15503.     ClipSize = INFINITE_CLIP_SIZE                            ; how many shots in a Clip (0 == infinite)
  15504.     ClipReloadTime = 0                      ; how long to reload a Clip, msec
  15505.    
  15506.      ; Sequential order of the target positions to follow this list
  15507.     LinearTarget = X: 0            Y: 0        T: 7        ; T: 0        Frame 0
  15508.     LinearTarget = X: -19.816    Y: -68.049    T: 1        ; T: 50        Frame 50
  15509.     LinearTarget = X: 12.397    Y: -58.504    T: 1        ; T: 11.2    Frame 58
  15510.     LinearTarget = X: 55.467    Y: -46.43    T: 0        ; T: 4        Frame 62
  15511.     LinearTarget = X: 72.587    Y: 1.865    T: 10        ; T: 7        Frame 69
  15512.     LinearTarget = X: 12.397    Y: -58.504    T: 1        ; T: 11.2    Frame 125
  15513.     LinearTarget = X: 55.467    Y: -46.43    T: 1        ; T: 7        Frame 132
  15514.     LinearTarget = X: 73.409    Y: -14.204    T: 4        ; T: 5.4    Frame 159
  15515.     LinearTarget = X: 98.414    Y: -10.092    T: 4        ; T: 4        Frame 166
  15516.     LinearTarget = X: 0            Y: 0        T: 7        ; T: 43 -42    +1
  15517.     LinearTarget = X: 72.272    Y: 7.216    T: 6        ; T: 43    -42    +2
  15518.     LinearTarget = X: 84.496    Y: 9.25     T: 1        ; T: 6    -6    +2
  15519.     LinearTarget = X: 80.55         Y: 48.24     T: 0        ; T: 3    -6    -1
  15520.     LinearTarget = X: 60.88        Y: 64.00    T: 1        ; T: 3    -0    +2
  15521.     LinearTarget = X: 29.13       Y: 78.37    T: 0        ; T: 2        +4
  15522.     LinearTarget = X: -2.55     Y: 85.55    T: 1        ; T: 3        +1
  15523.     LinearTarget = X:-34.80      Y: 76.95    T: 0        ; T: 3    
  15524.     LinearTarget = X: -66.8      Y: 62.64    T: 1        ; T: 3        +1
  15525.     LinearTarget = X:-81.65     Y: 30.48    T: 0        ; T: 1        +2
  15526.     LinearTarget = X: -92.18    Y: -2.72    T: 1        ; T: 4        +0
  15527.     LinearTarget = X:-81.2         Y: -31.48    T: 0        ; T: 4        +4
  15528.     LinearTarget = X: -58.93      Y: -63.19    T: 1        ; T: 4        +2
  15529.     LinearTarget = X:-35.4        Y: -82.56    T: 1        ; T: 4        +0
  15530.     LinearTarget = X: -13.91    Y: -80.33    T: 2        ; T: 14        +2
  15531.     LinearTarget = X: -13.91    Y: -80.33    T: 1        ; T: 5        +1
  15532.     LinearTarget = X:-35.404      Y: -82.56    T: 0        ; T: 2        +3
  15533.     LinearTarget = X: -58.93    Y: -63.19    T: 1        ; T: 1        -2
  15534.     LinearTarget = X:-81.17     Y: -31.48    T: 0        ; T: 2        +0
  15535.     LinearTarget = X: -92.18     Y: -2.72    T: 0        ; T: 2        +2
  15536.     LinearTarget = X:-81.65     Y: 30.48    T: 1        ; T: 3        -1
  15537.     LinearTarget = X: -66.80    Y: 62.64    T: 1        ; T: 5        -2
  15538.     LinearTarget = X:-34.80      Y: 76.95    T: 1        ; T: 6        -2
  15539. ;    LinearTarget = X: -2.554      Y: 85.56    T: 1        ; T: 8        +0
  15540.     LinearTarget = X:-34.80      Y: 76.95    T: 1        ; T: 2    
  15541.     LinearTarget = X: -66.80    Y: 62.64    T: 1        ; T: 3        -1
  15542.     LinearTarget = X:-81.65     Y: 30.48    T: 0        ; T: 4        +3
  15543.     LinearTarget = X: -92.18    Y: -2.72    T: 1        ; T: 2        -1
  15544.     LinearTarget = X:-81.18     Y: -31.48    T: 0        ; T: 3        +2
  15545.     LinearTarget = X: -58.94    Y: -63.19    T: 1        ; T: 3        -1
  15546.     LinearTarget = X:-35.40        Y: -82.56    T: 0        ; T: 3        +2
  15547.     LinearTarget = X: -13.9     Y: -80.33    T: 1        ; T: 2        -2
  15548.     LinearTarget = X:20.14        Y: -80.38    T: 0        ; T: 3        +1
  15549.     LinearTarget = X:52.44        Y: -60.40    T: 0        ; T: 2        +3
  15550.     LinearTarget = X:79.11        Y:-46.74    T: 1        ; T: 3        +0
  15551.     LinearTarget = X:92.25         Y: -19.45    T: 0        ; T: 3        +3
  15552.     LinearTarget = X:98.89        Y:9.25        T: 3        ; T: 5        +2
  15553. ;    LinearTarget = X:90.95         Y: 48.24    T: 1        ; T: 7        +3
  15554. ;    LinearTarget = X:60.89        Y:64.01        T: 1        ; T: 9        +0
  15555.     LinearTarget = X:90.95         Y: 48.24    T: 2        ; T: 6        +-
  15556.     LinearTarget = X:98.99        Y:9.25        T: 3.2        ; T: 3        +3
  15557.   
  15558.    
  15559.     DamageNugget                        ; A basic Nugget that just does damage
  15560.         Damage                = 10
  15561.         Radius                = 25.6
  15562.         DelayTime            = 0
  15563.         DamageType            = FORCE
  15564.         DeathType            = NORMAL
  15565.     End
  15566.  
  15567.     MetaImpactNugget                    ; A Nugget that throws things back with force
  15568. ;        HeroResist            = .75
  15569.         ShockWaveAmount        = 50.0
  15570.         ShockWaveRadius        = 25.6
  15571.         ShockWaveTaperOff    = 0.8
  15572.         ;ShockWaveSpeed        = 0.0
  15573.         ShockWaveZMult        = 0.920
  15574.     End
  15575.  
  15576. End
  15577.  
  15578. ;----------------------------------------------------------------------------------
  15579. Weapon GondorIsildurSword
  15580.   LeechRangeWeapon      = Yes
  15581.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  15582.   MeleeWeapon           = Yes
  15583.  
  15584.   DelayBetweenShots     = ARAGORN_DELAYBETWEENSHOTS         ; time between shots, msec
  15585.   PreAttackDelay        = ARAGORN_PREATTACKDELAY             ; 400 is sword swing delay time before contact with target.
  15586.   PreAttackType         = PER_SHOT                        ; Do the delay each time we attack a new target
  15587.   FireFX                = FX_GondorSwordHit
  15588.   ;FireFX                = FX_IsildurSword
  15589.   FiringDuration        = ARAGORN_FIRINGDURATION             ; Duration of the sword swing
  15590.  
  15591.   DamageNugget                                                ; A basic Nugget that just does damage
  15592.     Damage        = ARAGORN_DAMAGE
  15593.     Radius        = 0.0
  15594.     DelayTime     = 0
  15595.     DamageType    = SLASH
  15596.     DamageFXType  = SWORD_SLASH
  15597.     DeathType     = NORMAL
  15598.   End
  15599. End
  15600.  
  15601. ;================================SP MISSION WEAPON DO NOT BALANCE======================
  15602.  
  15603. ;------------------------------------------------------------------------------
  15604. Weapon RohanElvenBow_EvilAmonHen    ; BALANCE Elven warrior bow Weapon
  15605.     AttackRange         = ROHAN_ELVEN_RANGE
  15606.     WeaponSpeed         = 321        ; dist/sec 
  15607.     MinWeaponSpeed      = 241
  15608.     MaxWeaponSpeed      = 481        ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  15609.     FireFX              = FX_RohanArcherBowWeapon
  15610.     ScaleWeaponSpeed    = Yes        ; Used for lob weapons, scales speed proportional to range
  15611.     HitPercentage       = 100        ; When this weapon is used it will hit exactly 50% of the time.
  15612.     ScatterRadius       = 16.0        ; When this weapon misses it can randomly miss by as much as this distance.
  15613.       
  15614.     AcceptableAimDelta    = 20        ; prevent twitchy reaiming in horde on horde
  15615.     DelayBetweenShots   = 0
  15616.     PreAttackDelay      = ROHAN_ELVENWARRIOR_BOW_PREATTACKDELAY   
  15617.     PreAttackType       = PER_POSITION
  15618.     FiringDuration      = 0
  15619.       
  15620.     ClipSize            = 1
  15621.     AutoReloadsClip        = Yes
  15622.     AutoReloadWhenIdle    = 1    
  15623.     ClipReloadTime        = Min:ROHAN_ELVENWARRIOR_BOW_RELOADTIME_MIN Max:ROHAN_ELVENWARRIOR_BOW_RELOADTIME_MAX
  15624.     ContinuousFireOne    = 0
  15625.     ContinuousFireCoast    = ROHAN_ELVENWARRIOR_BOW_RELOADTIME_MAX
  15626.       
  15627.     AntiAirborneVehicle    = Yes
  15628.     AntiAirborneMonster    = Yes
  15629.     HitPassengerPercentage    = 20%
  15630.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  15631.  
  15632.     ProjectileNugget                ; Default arrow
  15633.         ProjectileTemplateName    = GoodFactionArrow
  15634.         WarheadTemplateName       = RohanElvenBowWarhead_EvilAmonHen
  15635.         ForbiddenUpgradeNames     = Upgrade_RohanFireArrows
  15636.     End
  15637.     ProjectileNugget                ; Fire arrow available from fire arrow upgrade
  15638.         ProjectileTemplateName    = GoodFactionFireArrow
  15639.         WarheadTemplateName       = RohanElvenBowFireWarhead
  15640.         RequiredUpgradeNames      = Upgrade_RohanFireArrows
  15641.       End
  15642. End
  15643.  
  15644. ;----------------------------
  15645. Weapon RohanElvenBowWarhead_EvilAmonHen
  15646.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS
  15647.   RadiusDamageAffects = ENEMIES NEUTRALS ALLIES NOT_SIMILAR
  15648.   HitStoredTarget = Yes            ; Always hits initial target.
  15649.   DamageNugget                    ; A basic Nugget that just does damage
  15650.     Damage        = 15
  15651.     Radius        = 0.0            ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  15652.     DelayTime     = 0
  15653.     DamageType    = PIERCE
  15654.     DamageFXType  = GOOD_ARROW_PIERCE
  15655.     DeathType     = NORMAL
  15656.   End
  15657. End
  15658. ;===================-------------------------------=============================-------------------------
  15659. Weapon RohanElvenBow_EvilIsen    ; BALANCE Elven warrior bow Weapon
  15660.     AttackRange         = ROHAN_ELVEN_RANGE
  15661.     WeaponSpeed         = 321        ; dist/sec 
  15662.     MinWeaponSpeed      = 241
  15663.     MaxWeaponSpeed      = 481        ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  15664.     FireFX              = FX_RohanArcherBowWeapon
  15665.     ScaleWeaponSpeed    = Yes        ; Used for lob weapons, scales speed proportional to range
  15666.     HitPercentage       = 100        ; When this weapon is used it will hit exactly 50% of the time.
  15667.     ScatterRadius       = 16.0        ; When this weapon misses it can randomly miss by as much as this distance.
  15668.       
  15669.     AcceptableAimDelta    = 20        ; prevent twitchy reaiming in horde on horde
  15670.     DelayBetweenShots   = 0
  15671.     PreAttackDelay      = ROHAN_ELVENWARRIOR_BOW_PREATTACKDELAY   
  15672.     PreAttackType       = PER_POSITION
  15673.     FiringDuration      = 0
  15674.       
  15675.     ClipSize            = 1
  15676.     AutoReloadsClip        = Yes
  15677.     AutoReloadWhenIdle    = 1    
  15678.     ClipReloadTime        = Min:ROHAN_ELVENWARRIOR_BOW_RELOADTIME_MIN Max:ROHAN_ELVENWARRIOR_BOW_RELOADTIME_MAX
  15679.     ContinuousFireOne    = 0
  15680.     ContinuousFireCoast    = ROHAN_ELVENWARRIOR_BOW_RELOADTIME_MAX
  15681.       
  15682.     AntiAirborneVehicle    = Yes
  15683.     AntiAirborneMonster    = Yes
  15684.     HitPassengerPercentage    = 20%
  15685.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  15686.  
  15687.     ProjectileNugget                ; Default arrow
  15688.         ProjectileTemplateName    = GoodFactionArrow
  15689.         WarheadTemplateName       = EvilIsenRohanElvenBowWarhead
  15690.         ForbiddenUpgradeNames     = Upgrade_RohanFireArrows
  15691.     End
  15692.     ProjectileNugget                ; Fire arrow available from fire arrow upgrade
  15693.         ProjectileTemplateName    = GoodFactionFireArrow
  15694.         WarheadTemplateName       = RohanElvenBowFireWarhead
  15695.         RequiredUpgradeNames      = Upgrade_RohanFireArrows
  15696.       End
  15697. End
  15698.  
  15699. ;------------------------------------------------------------------------------
  15700. Weapon EvilIsenRohanElvenBowWarhead
  15701.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS ;ALLIES ( 4/23/04 removed friendly fire)
  15702.   RadiusDamageAffects = ENEMIES NEUTRALS ALLIES NOT_SIMILAR
  15703.   DamageNugget                        ; A basic Nugget that just does damage
  15704.     Damage        = 10
  15705.     Radius        = 1.6
  15706.     DelayTime     = 0
  15707.     DamageType    = PIERCE
  15708.     DamageFXType  = GOOD_ARROW_PIERCE
  15709.     DeathType     = NORMAL
  15710.   End
  15711. End
  15712.  
  15713.  
  15714. ;------------------------------------------------------------------------------
  15715. Weapon RainOfFirePhaseInitialWeapon
  15716.     RadiusDamageAffects = ENEMIES NEUTRALS ALLIES
  15717.     FireFX = FX_RainOfFirePhaseInitialWeapon
  15718.     LuaEventNugget                        ; Sends a lua script event out
  15719.         LuaEvent        = BeUncontrollablyAfraid
  15720.         Radius            = 200
  15721.         SendToEnemies    = Yes
  15722.         SendToAllies    = No
  15723.         SendToNeutral    = Yes
  15724.     End
  15725. End
  15726.  
  15727. ;------------------------------------------------------------------------------
  15728. Weapon RainOfFirePhaseInitialWeapon02
  15729.     RadiusDamageAffects = ENEMIES NEUTRALS ALLIES
  15730.     FireFX = FX_RainOfFirePhaseInitialWeapon02
  15731.     LuaEventNugget                        ; Sends a lua script event out
  15732.         LuaEvent        = BeUncontrollablyAfraid
  15733.         Radius            = 200
  15734.         SendToEnemies    = Yes
  15735.         SendToAllies    = No
  15736.         SendToNeutral    = Yes
  15737.     End
  15738. End
  15739.  
  15740. ;------------------------------------------------------------------------------
  15741. Weapon RainOfFirePhaseOneWeapon
  15742.     RadiusDamageAffects = ENEMIES NEUTRALS
  15743.     FireFX = FX_RainOfFirePhaseOne
  15744.     DamageNugget                        ; A basic Nugget that just does damage
  15745.         Damage        = 7250
  15746.         DamageScalar  = 50% NONE +COMMANDCENTER
  15747.         DamageTaperOff = 200
  15748.         Radius        = 200
  15749.         DamageMaxHeightAboveTerrain = 1
  15750.         DelayTime     = 0
  15751.         DamageType    = SIEGE
  15752.         DeathType     = NORMAL
  15753.     End
  15754.     MetaImpactNugget                    ; A Nugget that throws things back with force
  15755. ;        HeroResist            = .99
  15756.         ShockWaveAmount        = 50.0
  15757.         ShockWaveTaperOff    = 1.0
  15758.         ShockWaveRadius        = 50
  15759.     End
  15760.     ;FireLogicNugget                        ; Increase the fuel where it hits
  15761.     ;    LogicType        = INCREASE_FUEL
  15762.     ;    Radius            = 150
  15763.     ;    Damage            = 25
  15764.     ;    MinMaxBurnRate    = 10
  15765.     ;    MaxResistance    = 5
  15766.     ;End
  15767.     ;FireLogicNugget                        ; Light everything on fire
  15768.     ;    LogicType        = INCREASE_BURN_RATE
  15769.     ;    Radius            = 150
  15770.     ;    Damage            = 100
  15771.     ;End
  15772. End
  15773.  
  15774. ;------------------------------------------------------------------------------
  15775. Weapon RainOfFirePhaseOneWeapon02
  15776.     RadiusDamageAffects = ENEMIES NEUTRALS
  15777.     FireFX = FX_RainOfFirePhaseOne02
  15778.     DamageNugget                        ; A basic Nugget that just does damage
  15779.         Damage        = 7250
  15780.         DamageScalar  = 50% NONE +COMMANDCENTER
  15781.         DamageTaperOff = 200
  15782.         Radius        = 200
  15783.         DamageMaxHeightAboveTerrain = 1
  15784.         DelayTime     = 0
  15785.         DamageType    = SIEGE
  15786.         DeathType     = NORMAL
  15787.     End
  15788.     MetaImpactNugget                    ; A Nugget that throws things back with force
  15789. ;        HeroResist            = .99
  15790.         ShockWaveAmount        = 50.0
  15791.         ShockWaveTaperOff    = 1.0
  15792.         ShockWaveRadius        = 50
  15793.     End
  15794.     ;FireLogicNugget                        ; Increase the fuel where it hits
  15795.     ;    LogicType        = INCREASE_FUEL
  15796.     ;    Radius            = 150
  15797.     ;    Damage            = 25
  15798.     ;    MinMaxBurnRate    = 10
  15799.     ;    MaxResistance    = 5
  15800.     ;End
  15801.     ;FireLogicNugget                        ; Light everything on fire
  15802.     ;    LogicType        = INCREASE_BURN_RATE
  15803.     ;    Radius            = 150
  15804.     ;    Damage            = 100
  15805.     ;End
  15806. End
  15807.  
  15808. ;------------------------------------------------------------------------------
  15809. Weapon ArrowVolleyPhaseInitialWeapon
  15810.     RadiusDamageAffects = ENEMIES NEUTRALS
  15811.     FireFX = FX_ArrowVolleyPhaseInitialWeapon
  15812. End
  15813.  
  15814. ;------------------------------------------------------------------------------
  15815. Weapon ArrowVolleyOneWeapon
  15816.     RadiusDamageAffects = ENEMIES NEUTRALS
  15817.     FireFX = FX_ArrowVolleyPhaseOne
  15818. ;    LuaEventNugget                        ; Sends a lua script event out
  15819. ;        LuaEvent        = BeUncontrollablyAfraid
  15820. ;        Radius            = 100
  15821. ;        SendToEnemies    = Yes
  15822. ;        SendToAllies    = No
  15823. ;        SendToNeutral    = Yes
  15824. ;    End
  15825.     
  15826.  
  15827.     DamageNugget                        ; A basic Nugget that just does damage
  15828.         Damage        = 800
  15829.         Radius        = 100
  15830.         DamageMaxHeightAboveTerrain = 1
  15831.         DelayTime     = 0
  15832.         DamageType    = PIERCE
  15833.         DeathType     = NORMAL
  15834.     End
  15835. End
  15836.  
  15837. //------------------------------------------------------------------------------
  15838. // This weapon doesn't do any damage, it spawns an object which does delayed damage.
  15839. Weapon MenLongShotWeapon
  15840.     RadiusDamageAffects        = ENEMIES NEUTRALS
  15841.     FireFX                    = FX_ArrowVolleyPhaseOne    
  15842.  
  15843.     // make our members fire a dummy weapon
  15844.     HordeAttackNugget
  15845.         LockWeaponSlot        = QUINARY
  15846.     End
  15847. End
  15848.  
  15849. //------------------------------------------------------------------------------
  15850. Weapon MenLongShotWeaponReal
  15851.     RadiusDamageAffects        = ENEMIES NEUTRALS
  15852.  
  15853.     // A basic Nugget that just does damage
  15854.     DamageNugget                        
  15855.         Damage                        = GONDOR_RANGER_LONGSHOT_DAMAGE
  15856.         Radius                        = GONDOR_RANGER_LONGSHOT_CURSOR_RADIUS
  15857.         DamageMaxHeightAboveTerrain = 1
  15858.         DelayTime                     = 0
  15859.         DamageType                    = PIERCE
  15860.         DeathType                     = NORMAL
  15861.     End
  15862. End
  15863.  
  15864. //------------------------------------------------------------------------------
  15865. Weapon MenLongShotFakeWeapon
  15866.     RadiusDamageAffects        = ENEMIES NEUTRALS
  15867.     ;FireFX                     = FX_IthilienRangerLongShot
  15868.     
  15869.     // don't play an anim during this phase, wait until OCL has 
  15870.     // spawned the tracer arrow before playing the shoot anim
  15871.     PreAttackDelay            = 2000 
  15872.     
  15873.     FiringDuration            = 2000
  15874.     AttackRange                = 99999999
  15875. End
  15876.  
  15877. //------------------------------------------------------------------------------
  15878. Weapon HaradrimBarbedArrowRangeFinder
  15879.     AttackRange                = #SUBTRACT( MORDOR_HARADRIM_BOW_RANGE 100 ) 
  15880.     RangeBonusMinHeight        = 10
  15881.     RangeBonus                = 1
  15882.     RangeBonusPerFoot        = #MULTIPLY( MORDOR_HARADRIM_BOW_RANGE .01 )
  15883.     DelayBetweenShots        = 1000
  15884.     LeechRangeWeapon        = Yes
  15885.     AcceptableAimDelta        = 45
  15886.     AntiAirborneVehicle        = Yes
  15887.     AntiAirborneMonster        = Yes
  15888.     FinishAttackOnceStarted = No
  15889.     HordeAttackNugget
  15890.         LockWeaponSlot        = QUINARY
  15891.     End
  15892. End
  15893.  
  15894.  
  15895. //------------------------------------------------------------------------------
  15896. Weapon HaradrimBarbedArrow // BALANCE Archer Weapon ;orc archer
  15897.   AttackRange             = MORDOR_HARADRIM_BOW_RANGE  // Horde member so it needs to be bigger than the horde weapon attack range.
  15898.   LeechRangeWeapon      = Yes
  15899.   WeaponSpeed             = 401            // dist/sec 
  15900.   MinWeaponSpeed         = 121
  15901.   MaxWeaponSpeed         = 601            // dist/sec Upper limit on scaling, when attacking past nominal "max" range
  15902.   FireFX                 = FX_HaradrimArcherBowBarbedWeapon                ;FX_RohanArcherBowWeapon    ;audio only
  15903.   ScaleWeaponSpeed         = Yes            // Used for lob weapons, scales speed proportional to range
  15904.   HitPercentage         = 100            //When this weapon is used it will hit exactly 50% of the time.
  15905.   ScatterRadius         = 40.0            //When this weapon misses it can randomly miss by as much as this distance.
  15906.   DelayBetweenShots     = MORDOR_HARADRIM_BOW_DELAYBETWEENSHOTS
  15907.   PreAttackDelay        = MORDOR_HARADRIM_BOW_BARBEDARROWS_PREATTACKDELAY
  15908.   PreAttackRandomAmount = 200 
  15909.   PreAttackType         = PER_SHOT        // Do the delay each time we attack a new target
  15910.   FiringDuration          = MORDOR_HARADRIM_BOW_FIRINGDURATION    // Duration of the archer firing shot is 500ms.  
  15911.  
  15912.   ProjectileNugget                    ; Default arrow
  15913.     ProjectileTemplateName    = BarbedArrowProjectile
  15914.     WarheadTemplateName       = HaradrimBarbedArrowWarhead
  15915.   End
  15916. End
  15917.  
  15918. //-----------------------------------
  15919. Weapon HaradrimBarbedArrowWarhead
  15920.     ProjectileCollidesWith    = ENEMIES
  15921.     RadiusDamageAffects        = ENEMIES NOT_SIMILAR 
  15922.     HitStoredTarget            = Yes    // Always hits initial target.
  15923.     
  15924.     // A basic Nugget that just does damage
  15925.     DamageNugget                        
  15926.         Damage        = MORDOR_HARADRIM_BOW_DAMAGE
  15927.         Radius        = 0.0            // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  15928.         DelayTime     = 0
  15929.         DamageType    = PIERCE
  15930.         DamageFXType  = EVIL_ARROW_PIERCE
  15931.         DeathType     = NORMAL
  15932.     End
  15933.  
  15934.     // A basic Nugget that just does damage
  15935.     DamageNugget                        
  15936.         Damage        = MORDOR_HARADRIM_BARBED_ARROW_DAMAGE
  15937.         Radius        = 0.0            // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  15938.         DelayTime     = 0
  15939.         DamageType    = PIERCE
  15940.         DamageFXType  = EVIL_ARROW_PIERCE
  15941.         DeathType     = NORMAL
  15942.     End
  15943.     
  15944.     // A Nugget that throws things back with force
  15945.     MetaImpactNugget                                
  15946. ;        HeroResist            = .75
  15947.         ShockWaveAmount        = 10
  15948.         ShockWaveRadius        = 1.0
  15949.         ShockWaveArc        = 75                // Should generally be equal to damage arc
  15950.         ShockWaveTaperOff    = 1.0
  15951.         ShockWaveSpeed        = 0.0
  15952.         ShockWaveZMult        = 1.6
  15953.     End
  15954.  
  15955. End
  15956.  
  15957. ;------------------------------------------------------------------------------
  15958. Weapon BombardPhaseInitialWeapon
  15959.     RadiusDamageAffects = ENEMIES NEUTRALS
  15960.     FireFX                = FX_BarrageMeteorStart
  15961.     LuaEventNugget                        ; Sends a lua script event out
  15962.         LuaEvent        = BeUncontrollablyAfraid
  15963.         Radius            = 200
  15964.         SendToEnemies    = Yes
  15965.         SendToAllies    = No
  15966.         SendToNeutral    = Yes
  15967.     End
  15968. End
  15969.  
  15970. ;------------------------------------------------------------------------------
  15971. Weapon BombardProjectileWeapon
  15972.     RadiusDamageAffects = ENEMIES NEUTRALS ALLIES
  15973. ;    FireFX = FX_BombardPhaseOne
  15974.     DamageNugget                        ; A basic Nugget that just does damage
  15975.         Damage        = 150
  15976.         DamageScalar  = 50% NONE +COMMANDCENTER
  15977.         Radius        = 100
  15978.         DelayTime     = 0
  15979.         DamageType    = SIEGE
  15980.         DeathType     = NORMAL
  15981.     End
  15982.     MetaImpactNugget                    ; A Nugget that throws things back with force
  15983. ;        HeroResist            = .99
  15984.         ShockWaveAmount        = 50.0
  15985.         ShockWaveTaperOff    = 1.0
  15986.         ShockWaveRadius        = 50
  15987.     End
  15988. End
  15989.  
  15990. ;------------------------------------------------------------------------------
  15991. Weapon EarthquakePhaseInitialWeapon
  15992.     RadiusDamageAffects = ENEMIES NEUTRALS ALLIES
  15993.     FireFX = FX_EarthquakePhaseInitialWeapon
  15994.     LuaEventNugget                        ; Sends a lua script event out
  15995.         LuaEvent        = BeUncontrollablyAfraid
  15996.         Radius            = 200
  15997.         SendToEnemies    = Yes
  15998.         SendToAllies    = No
  15999.         SendToNeutral    = Yes
  16000.     End
  16001. End
  16002.  
  16003. ;------------------------------------------------------------------------------
  16004. Weapon EarthquakePhaseOneWeapon
  16005.     RadiusDamageAffects = ENEMIES NEUTRALS ALLIES
  16006.     FireFX = FX_EarthquakePhaseOneWeapon
  16007.     DamageNugget                        ; A basic Nugget that just does damage
  16008.         Damage        = 2000
  16009.         DamageScalar  = 25% ALL -STRUCTURE; 
  16010.         DamageScalar  = 50% NONE +COMMANDCENTER
  16011.         Radius        = 150
  16012.         DamageMaxHeightAboveTerrain = 1
  16013.         DelayTime     = 0
  16014.         DamageType    = SIEGE
  16015.         DeathType     = NORMAL
  16016.     End
  16017.     MetaImpactNugget                    ; A Nugget that throws things back with force
  16018. ;        HeroResist            = .99
  16019.         ShockWaveAmount        = 50.0
  16020.         ShockWaveTaperOff    = 1.0
  16021.         ShockWaveRadius        = 50
  16022.     End
  16023. End
  16024.  
  16025. ;------------------------------------------------------------------------------
  16026. Weapon EarthquakePhaseTwoWeapon
  16027.     RadiusDamageAffects = ENEMIES NEUTRALS ALLIES
  16028.     FireFX = FX_EarthquakePhaseTwoWeapon
  16029.     DamageNugget                        ; A basic Nugget that just does damage
  16030.         Damage        = 1500
  16031.         DamageScalar  = 25% ALL -STRUCTURE
  16032.         DamageScalar  = 50% NONE +COMMANDCENTER
  16033.         ;MinRadius     = 50
  16034.         Radius        = 200
  16035.         DamageMaxHeightAboveTerrain = 1
  16036.         DelayTime     = 0
  16037.         DamageType    = SIEGE
  16038.         DeathType     = NORMAL
  16039.     End
  16040.     MetaImpactNugget                    ; A Nugget that throws things back with force
  16041. ;        HeroResist            = .99
  16042.         ShockWaveAmount        = 50.0
  16043.         ShockWaveTaperOff    = 1.0
  16044.         ShockWaveRadius        = 100
  16045.     End
  16046. End
  16047.  
  16048. ;------------------------------------------------------------------------------
  16049. Weapon EarthquakePhaseThreeWeapon
  16050.     RadiusDamageAffects = ENEMIES NEUTRALS ALLIES
  16051.     FireFX = FX_EarthquakePhaseThreeWeapon
  16052.     DamageNugget                        ; A basic Nugget that just does damage
  16053.         Damage        = 1000
  16054.         DamageScalar  = 25% ALL -STRUCTURE
  16055.         DamageScalar  = 50% NONE +COMMANDCENTER
  16056.         ;MinRadius     = 100
  16057.         Radius        = 250
  16058.         DamageMaxHeightAboveTerrain = 1
  16059.         DelayTime     = 0
  16060.         DamageType    = SIEGE
  16061.         DeathType     = NORMAL
  16062.     End
  16063.     MetaImpactNugget                    ; A Nugget that throws things back with force
  16064. ;        HeroResist            = .99
  16065.         ShockWaveAmount        = 50.0
  16066.         ShockWaveTaperOff    = 1.0
  16067.         ShockWaveRadius        = 150
  16068.     End
  16069. End
  16070.  
  16071. ;------------------------------------------------------------------------------
  16072. Weapon EarthquakePhaseFinalWeapon
  16073.     RadiusDamageAffects = ENEMIES NEUTRALS ALLIES
  16074.     FireFX = FX_EarthquakePhaseFinalWeapon
  16075.     DamageNugget                        ; A basic Nugget that just does damage
  16076.         Damage        = 500
  16077.         DamageScalar  = 25% ALL -STRUCTURE
  16078.         DamageScalar  = 50% NONE +COMMANDCENTER
  16079.         Radius        = 300
  16080.         DamageMaxHeightAboveTerrain = 1
  16081.         DelayTime     = 0
  16082.         DamageType    = SIEGE
  16083.     DeathType     = NORMAL
  16084.     End
  16085.     MetaImpactNugget                    ; A Nugget that throws things back with force
  16086. ;        HeroResist            = .50
  16087.         ShockWaveAmount        = 40.0
  16088.         ShockWaveTaperOff    = 1.0
  16089.         ShockWaveRadius        = 200
  16090.     End
  16091. End
  16092.  
  16093. ;------------------------------------------------------------------------------
  16094. Weapon KeepBow_Easy       ; For early GOOD SPS missions
  16095.   AttackRange               = KEEP_ARCHER_RANGE
  16096.   WeaponSpeed               = 321       ; dist/sec 
  16097.   MinWeaponSpeed            = 241
  16098.   MaxWeaponSpeed            = 481        ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  16099.   FireFX                    = FX_RohanArcherBowWeapon
  16100.   ScaleWeaponSpeed          = Yes        ; Used for lob weapons, scales speed proportional to range
  16101.   HitPercentage             = 100        ;When this weapon is used it will hit exactly 50% of the time.
  16102.   ScatterRadius             = 16.0        ;When this weapon misses it can randomly miss by as much as this distance.
  16103.   DelayBetweenShots         = Min:KEEP_BOW_DELAYBETWEENSHOTS_MIN Max:KEEP_BOW_DELAYBETWEENSHOTS_MAX
  16104.   PreAttackDelay            = KEEP_BOW_PREATTACKDELAY   ; 1467 is the prep time for archer.
  16105.   PreAttackType             = PER_SHOT    ; Do the delay each time we attack a new target
  16106.   FiringDuration            = KEEP_BOW_DELAYBETWEENSHOTS_MAX    ; Duration of the archer firing shot is 500ms.
  16107.   IsAimingWeapon            = Yes
  16108.   AntiAirborneVehicle        = Yes
  16109.   AntiAirborneMonster        = Yes
  16110.   HitPassengerPercentage    = 20%
  16111.   AcceptableAimDelta        = 180    ; We want to be able to shoot all round, as we canit move.
  16112.  
  16113.   CanBeDodged = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  16114.  
  16115.  
  16116.     ProjectileNugget          ; Default arrow
  16117.         ProjectileTemplateName  = GoodFactionArrow
  16118.         WarheadTemplateName     = KeepBowWarhead_Easy
  16119.         ForbiddenUpgradeNames   = Upgrade_BattleTowersToUseFireArrows
  16120.     End
  16121.  
  16122.   ProjectileNugget          ; Upgraded arrow
  16123.     ProjectileTemplateName  = UpgradedGoodFactionArrow
  16124.     WarheadTemplateName     = KeepBowUpgradedWarhead
  16125.     RequiredUpgradeNames    = Upgrade_BattleTowersToUseFireArrows
  16126.   End
  16127.  
  16128. End
  16129.  
  16130. ;----------------------------
  16131. Weapon KeepBowWarhead_Easy
  16132.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  16133.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR ;ALLIES
  16134.   HitStoredTarget = Yes    ; Always hits initial target.
  16135.   DamageNugget                        ; A basic Nugget that just does damage
  16136.     Damage        = 5
  16137.     DamageScalar  = 0% NONE +EntMoot +ElvenEntMoot
  16138.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  16139.     DelayTime     = 0
  16140.     DamageType    = PIERCE
  16141.     DamageFXType  = GOOD_ARROW_PIERCE
  16142.     DeathType     = NORMAL
  16143.   End
  16144. End
  16145.  
  16146. ;----------------------------
  16147. Weapon WatcherHittingArmWeaponVSMany
  16148.     AttackRange = 150
  16149.     AcceptableAimDelta = 25
  16150.     PreAttackDelay = 1000
  16151.     FiringDuration = 1000
  16152.     DelayBetweenShots = Min:3000 Max:5000
  16153.     DamageDealtAtSelfPosition = Yes
  16154.  
  16155.     DamageNugget                        ; A basic Nugget that just does damage
  16156.         Damage        = 200
  16157.         Radius        = 175
  16158.         DamageArc      = 25
  16159.         DamageType    = SIEGE
  16160.         DamageFXType  = CLUBBING
  16161.         DeathType     = NORMAL
  16162.     End
  16163.  
  16164.     MetaImpactNugget                    ; A Nugget that throws things back with force
  16165.         ShockWaveAmount   = 75.0
  16166.         ShockWaveRadius   = 175
  16167.         ShockWaveTaperOff = 0.75
  16168.         ShockWaveArc      = 25
  16169.         ShockWaveZMult    = 1.20
  16170. ;        HeroResist          = 90
  16171.     End
  16172. End
  16173.  
  16174. ;----------------------------
  16175. Weapon WatcherHittingArmWeaponVSOne
  16176.     AttackRange = 80
  16177.     AcceptableAimDelta = 25
  16178.     PreAttackDelay = 1000
  16179.     FiringDuration = 1000
  16180.     DelayBetweenShots = Min:3000 Max:5000
  16181.  
  16182.     DamageNugget                        ; A basic Nugget that just does damage
  16183.         Damage        = 300
  16184.         Radius        = 25
  16185.         DamageType    = SIEGE
  16186.         DamageFXType  = CLUBBING
  16187.         DeathType     = NORMAL
  16188.     End
  16189.  
  16190.     MetaImpactNugget                    ; A Nugget that throws things back with force
  16191.         ShockWaveAmount   = 75.0
  16192.         ShockWaveRadius   = 25
  16193.         ShockWaveTaperOff = 0.75
  16194.         ShockWaveZMult    = 1.20
  16195. ;        HeroResist          = 50
  16196.     End
  16197. End
  16198.  
  16199. ;------------------------------------------------------------------------------
  16200. Weapon HeroCrush  ; Used when a hero runs someone over.  
  16201.   LeechRangeWeapon      = Yes
  16202.   AttackRange           = 9999999.0
  16203.   MeleeWeapon           = No
  16204.   DelayBetweenShots     = 0            ; time between shots, msec
  16205.   PreAttackDelay        = 0 ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  16206.   PreAttackType         = PER_SHOT 
  16207.   FiringDuration        = 0
  16208.   FireFX                = FX_HeroCrushImpactSound
  16209.   
  16210.   DamageNugget                  ; A basic Nugget that just does damage
  16211.     Damage        = 160        ; A whole lot of damage.
  16212.     Radius        = 0.0
  16213.     DelayTime     = 0
  16214.     DamageType    = HERO
  16215.     DeathType     = CRUSHED
  16216.   End
  16217. End
  16218.  
  16219. ;------------------------------------------------------------------------------
  16220. Weapon FloodHorseRadiusWeapon ; Shot out every DelayBetweenShots
  16221.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  16222.     LeechRangeWeapon      = Yes
  16223.     AttackRange           = 9999999.0
  16224.     MeleeWeapon           = No
  16225.     DelayBetweenShots     = 0            ; time between shots, msec
  16226.     PreAttackDelay        = 0 ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  16227.     PreAttackType         = PER_SHOT 
  16228.     FiringDuration        = 0 
  16229.  
  16230.     DamageNugget                  ; A basic Nugget that just does damage
  16231.         Damage        = 142        ; A whole lot of damage.
  16232.         DamageScalar  = 35% NONE +COMMANDCENTER
  16233.         Radius        = 40.0
  16234.         DelayTime     = 0
  16235.         DamageType    = SIEGE
  16236.         DamageFXType  = FLOOD_HORSE
  16237.         DeathType     = CRUSHED
  16238.     End
  16239.  
  16240.     FireLogicNugget
  16241.         LogicType        = DECREASE_BURN_RATE
  16242.         Radius            = ARWEN_FLOOD_DECREASEBURNRATE_RADIUS
  16243.         Damage            = ARWEN_FLOOD_DECREASEBURNRATE_AMOUNT
  16244.         DelayTime        = 200  
  16245.     End
  16246.     
  16247.     MetaImpactNugget                    ; A Nugget that throws things back with force
  16248. ;        HeroResist            = .75
  16249.         ShockWaveAmount   = 75.0
  16250.         ; ShockWaveArc      = 75
  16251.         ShockWaveRadius   = 40.0
  16252.         ShockWaveTaperOff = 0.75
  16253.         ShockWaveZMult    = 1.000
  16254.         ShockWaveSpeed      = 700.0 
  16255.     End
  16256. End
  16257.  
  16258. //------------------------------------------------------------------------------
  16259. Weapon FloodGateHorseRadiusWeapon            // Shot out every DelayBetweenShots
  16260.     RadiusDamageAffects        = ENEMIES NOT_SIMILAR
  16261.     LeechRangeWeapon        = Yes
  16262.     AttackRange                = 9999999.0
  16263.     MeleeWeapon                = No
  16264.     DelayBetweenShots        = 0                // time between shots, msec
  16265.     PreAttackDelay            = 0                // PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
  16266.     PreAttackType            = PER_SHOT 
  16267.     FiringDuration            = 0 
  16268.  
  16269.     // A basic Nugget that just does damage
  16270.     DamageNugget                            
  16271.         Damage        = ELVEN_FLOODGATE_EXPANSION_FLOOD_HORSE_DAMAGE    // A whole lot of damage.
  16272.         Radius        = ELVEN_FLOODGATE_EXPANSION_FLOOD_HORSE_RADIUS
  16273.         DelayTime     = 0
  16274.         DamageType    = SIEGE
  16275.         DamageFXType  = FLOOD_HORSE
  16276.         DeathType     = CRUSHED
  16277.         DamageScalar  = 0% ANY ALLIES +STRUCTURE                        // No damage to allied structures.
  16278.     End
  16279.  
  16280.     FireLogicNugget
  16281.         LogicType        = DECREASE_BURN_RATE
  16282.         Radius            = ARWEN_FLOOD_DECREASEBURNRATE_RADIUS
  16283.         Damage            = ARWEN_FLOOD_DECREASEBURNRATE_AMOUNT
  16284.         DelayTime        = 200  
  16285.     End
  16286.     
  16287.     // A Nugget that throws things back with force
  16288.     MetaImpactNugget                    
  16289. ;        HeroResist            = .75
  16290.         ShockWaveAmount        = 70.0
  16291.         // ShockWaveArc        = 75
  16292.         ShockWaveRadius        = 40.0
  16293.         ShockWaveTaperOff    = 0.75
  16294.         ShockWaveZMult        = 1.000
  16295.         ShockWaveSpeed        = 700.0 
  16296.     End
  16297. End
  16298.  
  16299. ;------------------------------------------------------------------------------
  16300. ;Weapon TankGun       ; BALANCE Tank Weapon
  16301. ;  AttackRange               = ROHAN_HORSEBOW_RANGE
  16302. ;  WeaponSpeed               = 600         ; dist/sec 
  16303. ;  MinWeaponSpeed            = 600
  16304. ;  MaxWeaponSpeed            = 600      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  16305. ;;  FireFX                    = FX_TankFire
  16306. ;  ScaleWeaponSpeed          = No ; Used for lob weapons, scales speed proportional to range
  16307. ;  HitPercentage             = 100     ;When this weapon is used it will hit exactly 50% of the time.
  16308. ;  ScatterRadius             = 16.0     ;When this weapon misses it can randomly miss by as much as this distance.
  16309. ;  
  16310. ;  PreAttackDelay            = 1
  16311. ;  PreAttackType             = PER_SHOT  ; Do the delay each time we attack a new target
  16312. ;  PreAttackRandomAmount     = 1 
  16313. ;  FiringDuration            = 2000        ; Duration of the archer firing shot is 1000ms.
  16314. ;  RequireFollowThru            = Yes
  16315. ;
  16316. ;  ClipSize                     = 1
  16317. ;  AutoReloadsClip             = Yes
  16318. ;  ClipReloadTime             = 2000
  16319. ;  AcceptableAimDelta        = 10                                       ; Can't ram sideways (but give a little slack)
  16320. ;
  16321. ;  RotatingTurret            = Yes
  16322. ;  IsAimingWeapon            = Yes
  16323. ;  AntiAirborneVehicle        = No
  16324. ;  AntiAirborneMonster        = No
  16325. ;
  16326. ;  CanFireWhileMoving        = Yes
  16327. ;
  16328. ;  ProjectileNugget
  16329. ;    ProjectileTemplateName  = TankShell
  16330. ;    WarheadTemplateName     = RohirrimBowWarhead
  16331. ;  End
  16332. ;End
  16333.  
  16334. ;------------------------------------------------------------------------------
  16335. ;Weapon TankMissile       ; BALANCE Tank Weapon
  16336. ;  AttackRange               = ROHAN_HORSEBOW_RANGE
  16337. ;  WeaponSpeed               = 100         ; dist/sec 
  16338. ;  MinWeaponSpeed            = 100
  16339. ;  MaxWeaponSpeed            = 100      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  16340. ;;  FireFX                    = FX_TankFire
  16341. ;  ScaleWeaponSpeed          = No ; Used for lob weapons, scales speed proportional to range
  16342. ;  HitPercentage             = 100     ;When this weapon is used it will hit exactly 50% of the time.
  16343. ;  
  16344. ;  PreAttackDelay            = 1
  16345. ;  PreAttackType             = PER_SHOT  ; Do the delay each time we attack a new target
  16346. ;  PreAttackRandomAmount     = 1 
  16347. ;  FiringDuration            = 2000        ; Duration of the archer firing shot is 1000ms.
  16348. ;  RequireFollowThru            = Yes
  16349. ;
  16350. ;  ClipSize                     = 1
  16351. ;  AutoReloadsClip             = Yes
  16352. ;  ClipReloadTime             = 2000
  16353. ;  AcceptableAimDelta        = 10                                       ; Can't ram sideways (but give a little slack)
  16354. ;
  16355. ;  IsAimingWeapon            = Yes
  16356. ;  AntiAirborneVehicle        = Yes
  16357. ;  AntiAirborneMonster        = Yes
  16358. ;
  16359. ;  CanFireWhileMoving        = Yes
  16360. ;
  16361. ;  ProjectileNugget
  16362. ;    ProjectileTemplateName  = Missile
  16363. ;    WarheadTemplateName     = RohirrimBowWarhead
  16364. ;  End
  16365. ;End
  16366.  
  16367.  
  16368. Weapon DragonStrikeStrafeWeapon
  16369.     IdleAfterFiringDelay = 0
  16370.     AttackRange            = 60.0
  16371.     WeaponSpeed            = 401         ; dist/sec 
  16372.     RadiusDamageAffects    = ALLIES NEUTRALS ENEMIES NOT_SIMILAR 
  16373.     DelayBetweenShots        = 5000               ; time between shots, msec
  16374.     PreAttackDelay        = 1600
  16375.     PreAttackType         = PER_ATTACK ; Do the delay each time we attack a new target
  16376.     PreAttackFX           = FX_GandalfPreAttackBlast
  16377.     FireFX                = NONE ;FX_BalrogBreath ---- commented out for E3, now controled by particle spawning
  16378.     FiringDuration        = 1400
  16379.     DamageDealtAtSelfPosition = No 
  16380.     
  16381.  
  16382.     DamageNugget                        ; A basic Nugget that just does damage
  16383.         Damage            = 6000 // lots of damage
  16384.         Radius            = 25.0 // Just a spot, the update module will spray it around as it goes
  16385.         DelayTime        = 500
  16386.         DamageType        = FLAME
  16387.         DamageFXType        = FLAME
  16388.         DeathType        = BURNED
  16389.         DamageMaxHeight = 60 ;We won't hurt something far above us.  Birds fly at around 100
  16390.         DamageSpeed        = 400
  16391.     End
  16392.  
  16393.     DamageNugget                        ; A basic Nugget that just does damage
  16394.         Damage            = 3000 // less damage
  16395.         Radius            = 65.0 // big spray, to make sure everyone gets some!
  16396.         DelayTime        = 500
  16397.         DamageType        = FLAME
  16398.         DamageFXType        = FLAME
  16399.         DeathType        = BURNED
  16400.         DamageMaxHeight = 60 ;We won't hurt something far above us.  Birds fly at around 100
  16401.         DamageSpeed        = 400
  16402.     End
  16403.  
  16404.  
  16405.     FireLogicNugget
  16406.         LogicType        = INCREASE_FUEL
  16407.         Radius            = 40
  16408.         Damage            = 40
  16409.         MinMaxBurnRate    = 20
  16410.         MaxResistance    = 5
  16411.     End
  16412.     FireLogicNugget
  16413.         LogicType        = INCREASE_BURN_RATE
  16414.         Radius            = 20
  16415.         Damage            = 20
  16416.     End
  16417.  
  16418.  
  16419. End
  16420.  
  16421.  
  16422. ;------------------------------------------------------------------------------
  16423. Weapon GoblinArcherBow       ; BALANCE Archer Weapon ;orc archer
  16424.     AttackRange            = GOBLIN_ARCHER_RANGE   ;Horde member so it needs to be bigger than the horde weapon attack range.
  16425.    
  16426.        RangeBonusMinHeight    = 10
  16427.     RangeBonus        = 1
  16428.     RangeBonusPerFoot    = #MULTIPLY( GOBLIN_ARCHER_RANGE .01 )
  16429.    
  16430.    
  16431.     LeechRangeWeapon    = Yes
  16432.     WeaponSpeed            = 300         ; dist/sec 
  16433.     MinWeaponSpeed        = 121
  16434.     MaxWeaponSpeed        = 400      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  16435.     FireFX                = FX_RohanArcherBowWeapon  
  16436.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  16437.     HitPercentage        = 100     ;When this weapon is used it will hit exactly 50% of the time.
  16438.     ScatterRadius        = 20.0     ;When this weapon misses it can randomly miss by as much as this distance.
  16439.     
  16440.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  16441.     DelayBetweenShots    = 0
  16442.     PreAttackDelay      = GOBLIN_ARCHER_PREATTACKDELAY
  16443.     PreAttackType       = PER_POSITION
  16444.     PreAttackRandomAmount     = 200 
  16445.     FiringDuration      = 0
  16446.     
  16447.     ClipSize            = 1
  16448.     AutoReloadsClip        = Yes
  16449.     AutoReloadWhenIdle    = 1    
  16450.     ClipReloadTime        = Min:GOBLIN_ARCHER_BOW_RELOADTIME_MIN Max:GOBLIN_ARCHER_BOW_RELOADTIME_MAX
  16451.     ContinuousFireOne    = 0
  16452.     ContinuousFireCoast    = GOBLIN_ARCHER_BOW_RELOADTIME_MAX 
  16453.     
  16454.     AntiAirborneVehicle    = Yes
  16455.     AntiAirborneMonster    = Yes
  16456.     HitPassengerPercentage    = 20%
  16457.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  16458.  
  16459.     ProjectileNugget    ; Default arrow
  16460.         ProjectileTemplateName  = EvilFactionArrow
  16461.         WarheadTemplateName     = GoblinArcherBowWarhead
  16462.         ForbiddenUpgradeNames   = Upgrade_WildFireArrows
  16463.     End
  16464.     
  16465.     ProjectileNugget    ; Fire Arrow
  16466.         ProjectileTemplateName  = EvilFactionFireArrow
  16467.         WarheadTemplateName      = GoblinArcherBowFireWarhead
  16468.         RequiredUpgradeNames     = Upgrade_WildFireArrows
  16469.     End
  16470. End
  16471.  
  16472. Weapon GoblinArcherBowBombard       ; BALANCE Archer Weapon ;orc archer
  16473.     AttackRange            = GOBLIN_ARCHER_BOMBARD_MAXRANGE 
  16474.     MinimumAttackRange    = #SUBTRACT( GOBLIN_ARCHER_BOMBARD_MINRANGE 75 )
  16475.     LeechRangeWeapon    = Yes
  16476.     WeaponSpeed            = 300         ; dist/sec 
  16477.     MinWeaponSpeed        = 121
  16478.     MaxWeaponSpeed        = 400      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  16479.     FireFX                = FX_RohanArcherBowWeapon  
  16480.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  16481.     HitPercentage       = 0     ;Always scatter
  16482.     ScatterRadius       = ARCHER_BOMBARD_SCATTER_RADIUS     ;When this weapon misses it can randomly miss by as much as this distance.
  16483.     
  16484.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  16485.     DelayBetweenShots    = 0
  16486.     PreAttackDelay      = GOBLIN_ARCHER_PREATTACKDELAY
  16487.     PreAttackType       = PER_POSITION
  16488.     PreAttackRandomAmount     = 200 
  16489.     FiringDuration      = 0
  16490.     
  16491.     ClipSize            = 1
  16492.     AutoReloadsClip        = Yes
  16493.     AutoReloadWhenIdle    = 1    
  16494.     ClipReloadTime        = Min:GOBLIN_ARCHER_BOW_RELOADTIME_MIN Max:GOBLIN_ARCHER_BOW_RELOADTIME_MAX
  16495.     ContinuousFireOne    = 0
  16496.     ContinuousFireCoast    = GOBLIN_ARCHER_BOW_RELOADTIME_MAX 
  16497.     
  16498.     AntiAirborneVehicle    = Yes
  16499.     AntiAirborneMonster    = Yes
  16500.     HitPassengerPercentage    = 20%
  16501.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  16502.     NoVictimNeeded            = Yes
  16503.     BombardType                = Yes
  16504.  
  16505.     ProjectileNugget    ; Default arrow
  16506.         ProjectileTemplateName  = EvilFactionArrowBombard
  16507.         WarheadTemplateName     = GoblinArcherBowBombardWarhead
  16508.         ForbiddenUpgradeNames   = Upgrade_WildFireArrows
  16509.     End
  16510.     
  16511.     ProjectileNugget    ; Fire Arrow
  16512.         ProjectileTemplateName  = EvilFactionFireArrowBombard
  16513.         WarheadTemplateName      = GoblinArcherBowBombardFireWarhead
  16514.         RequiredUpgradeNames     = Upgrade_WildFireArrows
  16515.     End
  16516. End
  16517.  
  16518. ;------------------------------------------------------------------------------
  16519. Weapon GoblinArcherPoisonArrowsRangeFinder       ; BALANCE Archer Weapon ;goblin archer
  16520.     AttackRange                = #SUBTRACT( GOBLIN_ARCHER_RANGE 100 ) 
  16521.     RangeBonusMinHeight        = 10
  16522.     RangeBonus                = 1
  16523.     RangeBonusPerFoot        = #MULTIPLY( GOBLIN_ARCHER_RANGE .01 )
  16524.     DelayBetweenShots        = 1000
  16525.     LeechRangeWeapon        = Yes
  16526.     AcceptableAimDelta        = 45
  16527.     AntiAirborneVehicle        = Yes
  16528.     AntiAirborneMonster        = Yes
  16529.     FinishAttackOnceStarted = No
  16530.     HordeAttackNugget
  16531.         LockWeaponSlot        = QUINARY
  16532.     End
  16533. End
  16534.  
  16535. ;------------------------------------------------------------------------------
  16536. Weapon GoblinArcherPoisonArrows       ; BALANCE Archer Weapon ;goblin archer
  16537.     AttackRange                    = GOBLIN_ARCHER_RANGE    ;Horde member so it needs to be bigger than the horde weapon attack range
  16538.     LeechRangeWeapon            = Yes
  16539.     WeaponSpeed                    = 300                    ; dist/sec
  16540.     MinWeaponSpeed                = 121
  16541.     MaxWeaponSpeed                = 400
  16542.     FireFX                        = FX_RohanArcherBowWeapon
  16543.     ScaleWeaponSpeed            = Yes                    ; Used for lob weapons, scales speed proportional to range
  16544.     HitPercentage                = 100                    ;When this weapon is used it will hit exactly 50% of the time
  16545.     ScatterRadius                = 20.0                    ;When this weapon misses it can randomly miss by as much as this distance
  16546.     CanBeDodged                    = Yes                    ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  16547.     
  16548.     DelayBetweenShots            = 0
  16549.     PreAttackDelay                = GOBLIN_ARCHER_PREATTACKDELAY
  16550.     PreAttackType                = PER_POSITION
  16551.     PreAttackRandomAmount        = 200
  16552.     FiringDuration                = 0
  16553.     
  16554.     ClipSize                    = 1
  16555.     AutoReloadsClip                = Yes
  16556.     AutoReloadWhenIdle            = 1
  16557.     ClipReloadTime                = Min:GOBLIN_ARCHER_BOW_RELOADTIME_MIN Max:GOBLIN_ARCHER_BOW_RELOADTIME_MAX
  16558.     
  16559.     AntiAirborneVehicle            = Yes
  16560.     AntiAirborneMonster            = Yes
  16561.     HitPassengerPercentage        = 20%
  16562.  
  16563.     ProjectileNugget
  16564.         ProjectileTemplateName    = PoisonArrowProjectile
  16565.         WarheadTemplateName        = GoblinArcherPoisonArrowsBowWarhead
  16566.     End
  16567. End
  16568.  
  16569.  
  16570.  
  16571. ;-----------------------------------
  16572. Weapon GoblinArcherBowWarhead
  16573.   ProjectileCollidesWith = ENEMIES
  16574.   RadiusDamageAffects = ENEMIES NOT_SIMILAR 
  16575.   HitStoredTarget = Yes    ; Always hits initial target.
  16576.   DamageNugget                        ; A basic Nugget that just does damage
  16577.     Damage        = GOBLIN_ARCHER_DAMAGE
  16578.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  16579.     DelayTime     = 0
  16580.     DamageType    = PIERCE
  16581.     DamageFXType  = EVIL_ARROW_PIERCE
  16582.     DeathType     = NORMAL
  16583.   End
  16584. End
  16585.  
  16586. Weapon GoblinArcherBowBombardWarhead
  16587.   ProjectileCollidesWith = ENEMIES
  16588.   RadiusDamageAffects = ENEMIES NOT_SIMILAR 
  16589.   DamageNugget                        ; A basic Nugget that just does damage
  16590.     Damage        = GOBLIN_ARCHER_DAMAGE
  16591.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  16592.     DelayTime     = 0
  16593.     DamageType    = PIERCE
  16594.     DamageFXType  = EVIL_ARROW_PIERCE
  16595.     DeathType     = NORMAL
  16596.   End
  16597. End
  16598.  
  16599. ;-----------------------------------
  16600. Weapon GoblinArcherPoisonArrowsBowWarhead
  16601.     ProjectileCollidesWith    = ENEMIES
  16602.     RadiusDamageAffects        = ENEMIES NOT_SIMILAR
  16603.     HitStoredTarget            = Yes
  16604.     DamageNugget
  16605.         Damage                = GOBLIN_ARCHER_DAMAGE
  16606.         Radius                = 0.0
  16607.         DelayTime            = 0
  16608.         DamageType            = PIERCE
  16609.         DamageFXType        = EVIL_ARROW_PIERCE
  16610.         DeathType            = NORMAL
  16611.     End
  16612.     
  16613.     DOTNugget
  16614.           SpecialObjectFilter = ALL -STRUCTURE
  16615.         AcceptDamageAdd        = No
  16616.         Damage                = 2
  16617.         Radius                = 0.0
  16618.         DelayTime            = 0
  16619.         DamageType            = POISON
  16620.         DamageFXType        = POISON
  16621.         DeathType            = NORMAL
  16622.         DamageInterval        = 1000    ; every second ...
  16623.         DamageDuration        = 15000    ; ... for 15 seconds
  16624.         SpecialObjectFilter    = AFFECTED_BY_POISON_OBJECTFILTER
  16625.     End
  16626. End
  16627.  
  16628. ;------------------------------------
  16629. Weapon GoblinArcherBowFireWarhead
  16630.     ProjectileCollidesWith        = ENEMIES
  16631.     RadiusDamageAffects            = ENEMIES NOT_SIMILAR 
  16632.     HitStoredTarget                = Yes    ; Always hits initial target.
  16633.  
  16634.   DamageNugget                       
  16635.     Damage        = GOBLIN_ARCHER_DAMAGE_FIRE_FLAME
  16636.     Radius        = 0.0    
  16637.     DelayTime     = 0
  16638.     DamageType    = FLAME
  16639.     DamageFXType  = EVIL_ARROW_PIERCE
  16640.     DeathType     = BURNED
  16641.     AcceptDamageAdd = No
  16642.     DamageScalar  = 25% ALL -STRUCTURE
  16643.   End
  16644.   
  16645.    DamageNugget                        ; A basic Nugget that just does damage
  16646.         Damage        = 1
  16647.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  16648.         DamageType    = FLAME
  16649.         DamageFXType  = FLAME
  16650.         DeathType     = BURNED
  16651.         AcceptDamageAdd = No
  16652.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  16653.     End
  16654.     
  16655.  DamageNugget            ; A basic Nugget that just does damage
  16656.     Damage         = GOBLIN_ARCHER_DAMAGE_FIRE_PIERCE
  16657.     Radius         = 0.0    ; HitStoredTarget means we hurt the person we launched at.
  16658.     DelayTime     = 0
  16659.     DamageType     = PIERCE
  16660.     DamageFXType = EVIL_ARROW_PIERCE
  16661.     DeathType     = NORMAL
  16662.   End
  16663. End
  16664.  
  16665. Weapon GoblinArcherBowBombardFireWarhead
  16666.     ProjectileCollidesWith        = ENEMIES
  16667.     RadiusDamageAffects            = ENEMIES NOT_SIMILAR 
  16668.  
  16669.   DamageNugget                       
  16670.     Damage        = GOBLIN_ARCHER_DAMAGE_FIRE_FLAME
  16671.     Radius        = 0.0    
  16672.     DelayTime     = 0
  16673.     DamageType    = FLAME
  16674.     DamageFXType  = EVIL_ARROW_PIERCE
  16675.     DeathType     = BURNED
  16676.     AcceptDamageAdd = No
  16677.     DamageScalar  = 25% ALL -STRUCTURE
  16678.   End
  16679.   
  16680.    DamageNugget                        ; A basic Nugget that just does damage
  16681.         Damage        = 1
  16682.         Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  16683.         DamageType    = FLAME
  16684.         DamageFXType  = FLAME
  16685.         DeathType     = BURNED
  16686.         AcceptDamageAdd = No
  16687.         DamageScalar  = 50000% NONE +MINE ; Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  16688.     End
  16689.  
  16690.     
  16691.  DamageNugget            ; A basic Nugget that just does damage
  16692.     Damage         = GOBLIN_ARCHER_DAMAGE_FIRE_PIERCE
  16693.     Radius         = 0.0    ; HitStoredTarget means we hurt the person we launched at.
  16694.     DelayTime     = 0
  16695.     DamageType     = PIERCE
  16696.     DamageFXType = EVIL_ARROW_PIERCE
  16697.     DeathType     = NORMAL
  16698.   End
  16699.     FireLogicNugget
  16700.         LogicType    = INCREASE_BURN_RATE
  16701.         Radius        = 1.0
  16702.         Damage        = ARCHER_BOMBARD_FIREARROW_BURNRATEINCREASE
  16703.     End
  16704. End
  16705.  
  16706. ;------------------------------------------------------------------------------
  16707. Weapon GoblinArcherBowMelee
  16708.   LeechRangeWeapon      = Yes
  16709.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  16710.   MeleeWeapon           = Yes
  16711.   FireFX                = FX_RohanArcherBowWeaponFlaming;
  16712.   DelayBetweenShots     = 1700            ; time between shots, msec
  16713.   PreAttackDelay        = 666             ; 400 is sword swing delay time before contact with target.
  16714.   PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  16715.   FiringDuration        = 1000    ; Duration of the sword swing
  16716.  
  16717.   DamageNugget                        ; A basic Nugget that just does damage
  16718.     Damage        = GOBLIN_ARCHER_DAMAGE_MELEE
  16719.     Radius        = 0.0
  16720.     DelayTime     = 0
  16721.     DamageType    = SLASH
  16722.     DamageFXType  = SWORD_SLASH
  16723.     DeathType     = NORMAL
  16724.   End
  16725. End
  16726.  
  16727. ;------------------------------------------------------------------------------
  16728. Weapon GoblinFighterSword
  16729.   LeechRangeWeapon      = Yes
  16730.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  16731.   MeleeWeapon           = Yes
  16732.   DelayBetweenShots     = GOBLIN_FIGHTER_DELAYBETWEENSHOTS            ; time between shots, msec
  16733.   PreAttackDelay        = GOBLIN_FIGHTER_PREATTACKDELAY             ; 300 is mace swing delay time before contact with target.
  16734.   PreAttackType         = PER_SHOT ; Do the delay each time we attack
  16735.   FireFX                = FX_GondorSwordHit
  16736.   FireFlankFX        = FX_Flanking
  16737.   FiringDuration        = GOBLIN_FIGHTER_FIRINGDURATION    ; Duration of the mace swing 
  16738.  
  16739.   DamageNugget                        ; A basic Nugget that just does damage
  16740.     Damage        = GOBLIN_FIGHTER_DAMAGE
  16741.     Radius        = 0.0
  16742.     DelayTime     = 0
  16743.     DamageType    = SLASH
  16744.     DamageFXType  = SWORD_SLASH
  16745.     DeathType     = NORMAL
  16746.     FlankingBonus = 50%
  16747.   End
  16748. End
  16749.  
  16750. ;------------------------------------------------------------------------------
  16751. Weapon GoblinFighterSwordPoisonedUpgraded
  16752.     LeechRangeWeapon            = Yes
  16753.     AttackRange                    = 30.0
  16754.     MeleeWeapon                    = Yes
  16755.     DelayBetweenShots            = GOBLIN_FIGHTER_DELAYBETWEENSHOTS
  16756.     PreAttackDelay                = GOBLIN_FIGHTER_PREATTACKDELAY
  16757.     PreAttackType                = PER_SHOT ; Do the delay each time we attack
  16758.     FireFX                        = FX_GondorSwordHit
  16759.     FireFlankFX                    = FX_Flanking
  16760.     FiringDuration                = GOBLIN_FIGHTER_FIRINGDURATION
  16761.  
  16762.     DamageNugget
  16763.         Damage                    = GOBLIN_FIGHTER_FORGEDBLADES_UPGRADE    
  16764.         Radius                    = 0.0
  16765.         DelayTime                = 0
  16766.         DamageType                = SLASH
  16767.         DamageFXType            = SWORD_SLASH
  16768.         DeathType                = NORMAL
  16769.         FlankingBonus            = 50%
  16770.     End
  16771.  
  16772.     DOTNugget
  16773.         Damage                    = DEFAULT_POISON_DAMAGE
  16774.         AcceptDamageAdd            = No
  16775.         Radius                    = 0.0
  16776.         DelayTime                = 0
  16777.         DamageType                = POISON
  16778.         DamageFXType            = POISON
  16779.         DeathType                = NORMAL
  16780.         DamageInterval            = 500
  16781.         DamageDuration            = 5000
  16782.         SpecialObjectFilter        = AFFECTED_BY_POISON_OBJECTFILTER
  16783.     End
  16784. End
  16785.  
  16786.  
  16787. ;------------------------------------------------------------------------------
  16788. Weapon GoblinFighterSwordPoisoned
  16789.     LeechRangeWeapon            = Yes
  16790.     AttackRange                      = 30.0
  16791.     MeleeWeapon                    = Yes
  16792.     DelayBetweenShots            = GOBLIN_FIGHTER_DELAYBETWEENSHOTS
  16793.     PreAttackDelay                = GOBLIN_FIGHTER_PREATTACKDELAY
  16794.     PreAttackType                = PER_SHOT
  16795.     FireFX                        = FX_GondorSwordHit
  16796.     FireFlankFX                    = FX_Flanking
  16797.     FiringDuration                = GOBLIN_FIGHTER_FIRINGDURATION
  16798.  
  16799.     DamageNugget
  16800.         Damage                    = GOBLIN_FIGHTER_DAMAGE
  16801.         Radius                    = 0.0
  16802.         DelayTime                = 0
  16803.         DamageType                = SLASH
  16804.         DamageFXType            = SWORD_SLASH
  16805.         DeathType                = NORMAL
  16806.         FlankingBonus            = 50%
  16807.     End
  16808.  
  16809.     DOTNugget
  16810.         Damage                    = DEFAULT_POISON_DAMAGE
  16811.         AcceptDamageAdd            = No
  16812.         Radius                    = 0.0
  16813.         DelayTime                = 0
  16814.         DamageType                = POISON
  16815.         DamageFXType            = POISON
  16816.         DeathType                = NORMAL
  16817.         DamageInterval            = 500
  16818.         DamageDuration            = 5000
  16819.         SpecialObjectFilter        = AFFECTED_BY_POISON_OBJECTFILTER
  16820.     End
  16821. End
  16822.  
  16823. ;------------------------------------------------------------------------------
  16824. Weapon GoblinFighterSwordUpgraded
  16825.   LeechRangeWeapon      = Yes
  16826.   AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  16827.   MeleeWeapon           = Yes
  16828.   DelayBetweenShots     = GOBLIN_FIGHTER_DELAYBETWEENSHOTS            ; time between shots, msec
  16829.   PreAttackDelay        = GOBLIN_FIGHTER_PREATTACKDELAY             ; 300 is mace swing delay time before contact with target.
  16830.   PreAttackType         = PER_SHOT ; Do the delay each time we attack
  16831.   FireFX                = FX_GondorSwordHit
  16832.   FireFlankFX        = FX_Flanking
  16833.   FiringDuration        = GOBLIN_FIGHTER_FIRINGDURATION    ; Duration of the mace swing 
  16834.  
  16835.   DamageNugget                        ; A basic Nugget that just does damage
  16836.     Damage        = GOBLIN_FIGHTER_FORGEDBLADES_UPGRADE    
  16837.     Radius        = 0.0
  16838.     DelayTime     = 0
  16839.     DamageType    = SLASH
  16840.     DamageFXType  = SWORD_SLASH
  16841.     DeathType     = NORMAL
  16842.     FlankingBonus = 50%
  16843.   End
  16844. End
  16845.  
  16846. ;------------------------------------------------------------------------------
  16847. Weapon CrebainBasicWeapon
  16848.     AttackRange            = 100
  16849.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  16850.     DelayBetweenShots    = 1000               ; time between shots, msec
  16851.     ;FireFX              = FX_GandalfBlast
  16852.     FiringDuration      = 1000
  16853.     CanFireWhileMoving    = Yes
  16854.     DamageNugget                        ; A basic Nugget that just does damage
  16855.         Damage            = 1
  16856.         Radius            = 10.0
  16857.         DamageType        = SLASH
  16858.         DamageFXType        = MAGIC
  16859.         DeathType        = NORMAL
  16860.         ;DamageSpeed        = 1400.0
  16861.     End
  16862. End
  16863.  
  16864. ;------------------------------------------------------------------------------
  16865. Weapon RazorSpinesBasicWeapon
  16866.     AttackRange            = WILD_FORTRESS_RAZORSPINES_RANGE    
  16867.     DelayBetweenShots    = 0          ; time between shots, msec    
  16868.     FiringDuration      = 0
  16869.     CanFireWhileMoving    = Yes
  16870.     HitPercentage        = 100
  16871.     HitStoredTarget        = Yes            ; Always hits initial target.
  16872.     DamageNugget                        ; A basic Nugget that just does damage
  16873.         Damage            = WILD_FORTRESS_RAZORSPINES_DAMAGE        
  16874.         DamageType        = SPECIALIST
  16875.         DamageFXType    = SWORD_SLASH
  16876.         DeathType        = NORMAL
  16877.         DamageSpeed        = 1400.0
  16878.     End
  16879. End
  16880.  
  16881. ;------------------------------------------------------------------------------
  16882. Weapon FireDrakeFlame
  16883.     AttackRange            = FIREDRAKE_FLAME_RANGE
  16884.     WeaponSpeed            = FIREDRAKE_FLAME_SPEED
  16885.     MinWeaponSpeed        = FIREDRAKE_FLAME_MINSPEED
  16886.     MaxWeaponSpeed        = FIREDRAKE_FLAME_MAXSPEED
  16887.     ;FireFX                = FX_DrakeFireNormalAttack
  16888.     ScaleWeaponSpeed    = No
  16889.     HitPercentage        = 100
  16890.     ScatterRadius        = 0
  16891.  
  16892.     AcceptableAimDelta    = 0    ; prevent twitchy reaiming in horde on horde
  16893.     DelayBetweenShots   = 3000      ;FIREDRAKE_FLAME_DELAYBETWEENSHOTS
  16894.     PreAttackDelay      = FIREDRAKE_FLAME_PREATTACKDELAY
  16895.     PreAttackRandomAmount     = 0
  16896.     PreAttackType       = PER_POSITION
  16897.     FiringDuration      = 1400     ;FIREDRAKE_FLAME_FIRINGDURATION
  16898.  
  16899.     ClipSize            = 1
  16900.     AutoReloadsClip        = Yes
  16901.     AutoReloadWhenIdle    = 1    
  16902.     ClipReloadTime        = 2000
  16903.     ContinuousFireOne    = 0
  16904.     ContinuousFireCoast    = FIREDRAKE_FLAME_RELOADTIME_MAX 
  16905.  
  16906.     AntiAirborneVehicle    = No
  16907.     AntiAirborneMonster    = No
  16908.     HitPassengerPercentage    = 20%
  16909.     CanBeDodged                = No ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  16910.         
  16911.     ProjectileStreamName    = FlamethrowerProjectileStream
  16912.     
  16913.     ProjectileNugget
  16914.         ProjectileTemplateName    = FireDrakeProjectile
  16915.         WarheadTemplateName        = FireDrakeWarhead
  16916.     End
  16917. End
  16918.  
  16919. ;----------------------------
  16920. Weapon FireDrakeWarhead
  16921.       RadiusDamageAffects    = ENEMIES 
  16922.     HitStoredTarget        = Yes    ; Always hits initial target.
  16923.       DamageNugget                        ; A basic Nugget that just does damage
  16924.         Damage            = FIREDRAKE_FLAME_DAMAGE
  16925.         Radius            = FIREDRAKE_FLAME_RADIUS    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  16926.         DelayTime        = FIREDRAKE_FLAME_DELAY
  16927.         DamageType        = FLAME
  16928.         DamageFXType        = FLAME
  16929.         DeathType        = BURNED
  16930.     End
  16931.     ;FireLogicNugget
  16932.     ;    LogicType        = INCREASE_FUEL
  16933.     ;    Radius            = FIREDRAKE_FLAME_FUELINCREASE_RADIUS
  16934.     ;    Damage            = FIREDRAKE_FLAME_FUELINCREASE_AMOUNT
  16935.     ;    MinMaxBurnRate    = FIREDRAKE_FLAME_FUELINCREASE_MINMAXBURNRATE
  16936.     ;    MaxResistance    = FIREDRAKE_FLAME_FUELINCREASE_RESISTANCE
  16937.     ;End
  16938.     FireLogicNugget
  16939.         LogicType        = INCREASE_BURN_RATE
  16940.         Radius            = FIREDRAKE_FLAME_INCREASEBURNRATE_RADIUS
  16941.         Damage            = FIREDRAKE_FLAME_INCREASEBURNRATE_AMOUNT
  16942.     End
  16943.     
  16944.     DamageContainedNugget
  16945.         KillCount = 5
  16946.         KillKindof = INFANTRY
  16947.         KillKindofNot = NONE
  16948.         DeathType = BURNED
  16949.     End
  16950. End
  16951.  
  16952. ;----------------------------
  16953. Weapon FireDrakeInferno        ; BALANCE
  16954.     IdleAfterFiringDelay = 0
  16955.     AttackRange = 60.0
  16956.     WeaponSpeed = 401         ; dist/sec 
  16957.     RadiusDamageAffects = ALLIES ENEMIES NOT_SIMILAR
  16958.     DelayBetweenShots = 5000               ; time between shots, msec
  16959.     PreAttackDelay        = 2600
  16960.     PreAttackType         = PER_ATTACK ; Do the delay each time we attack a new target
  16961.     PreAttackFX           = FX_GandalfPreAttackBlast
  16962.     ;FireFX                = FX_FireDrakeInferno ;FX_BalrogBreath ---- commented out for E3, now controled by particle spawning
  16963.     FiringDuration      = 1400
  16964.     DamageDealtAtSelfPosition = Yes 
  16965.  
  16966.     DamageNugget                        ; A basic Nugget that just does damage
  16967.         Damage            = FIREDRAKE_INFERNO_DAMAGE
  16968.         Radius            = FIREDRAKE_INFERNO_RADIUS
  16969.         DelayTime        = 1000
  16970.         DamageType        = FLAME
  16971.         DamageFXType        = FLAME
  16972.         DeathType        = BURNED
  16973.         DamageArc        = 90
  16974.         DamageMaxHeight = 50 ;We won't hurt something far above us.  Birds fly at around 100
  16975.         DamageSpeed        = 400
  16976.     End
  16977.     ;FireLogicNugget
  16978.     ;    LogicType        = INCREASE_FUEL
  16979.     ;    Radius            = FIREDRAKE_INFERNO_FUELINCREASE_RADIUS
  16980.     ;    Damage            = FIREDRAKE_INFERNO_FUELINCREASE_AMOUNT
  16981.     ;    MinMaxBurnRate    = FIREDRAKE_INFERNO_FUELINCREASE_MINMAXBURNRATE
  16982.     ;    MaxResistance    = FIREDRAKE_INFERNO_FUELINCREASE_RESISTANCE
  16983.     ;End
  16984.     FireLogicNugget
  16985.         LogicType        = INCREASE_BURN_RATE
  16986.         Radius            = FIREDRAKE_INFERNO_INCREASEBURNRATE_RADIUS
  16987.         Damage            = FIREDRAKE_INFERNO_INCREASEBURNRATE_AMOUNT
  16988.         DamageArc        = 90
  16989.     End
  16990. End
  16991.  
  16992. ;----------------------------
  16993. Weapon GoblinKingBlade     ; BALANCE Orc Warrior Weapon ;Orc Fighter
  16994.   LeechRangeWeapon      = Yes
  16995.   AttackRange           = 20.0
  16996.   MeleeWeapon           = Yes
  16997.   DelayBetweenShots     = WILD_GOBLIN_KING_DELAYBETWEENSHOTS            ; time between shots, msec
  16998.   PreAttackDelay        = WILD_GOBLIN_KING_PREATTACKDELAY             ; 300 is mace swing delay time before contact with target.
  16999.   PreAttackType         = PER_SHOT ; Do the delay each time we attack
  17000.   FireFX                = FX_GondorSwordHit
  17001.   FiringDuration        = WILD_GOBLIN_KING_FIRINGDURATION    ; Duration of the mace swing 
  17002.  
  17003.   DamageNugget                        ; A basic Nugget that just does damage
  17004.     Damage        = WILD_GOBLIN_KING_DAMAGE
  17005.     Radius        = 0.0
  17006.     DelayTime     = 0
  17007.     DamageType    = HERO
  17008.     DamageFXType  = SWORD_SLASH
  17009.     DeathType     = NORMAL
  17010.   End
  17011. End
  17012.  
  17013. ;------------------------------------------------------------------------------
  17014. Weapon WyrmAppearWeapon                                    ; used in the OCL that makes a wyrm.
  17015.  
  17016.     RadiusDamageAffects    = ALLIES ENEMIES NOT_SIMILAR
  17017.     AttackRange            = 4.0
  17018.  
  17019.     DamageNugget
  17020.         Damage        = WYRM_APPEAR_DAMAGE
  17021.         Radius        = WYRM_APPEAR_RADIUS
  17022.         DelayTime     = 0
  17023.         DamageType    = CRUSH
  17024.         DamageFXType  = SWORD_SLASH
  17025.         DeathType     = NORMAL
  17026.         DamageScalar  = 0% NONE +Wyrm
  17027.     End
  17028.  
  17029.     MetaImpactNugget
  17030.         ShockWaveAmount            = 75
  17031.         ShockWaveRadius            = WYRM_APPEAR_SH_RADIUS
  17032.         ShockWaveTaperOff        = 0.9
  17033.         ShockWaveZMult            = 1.20
  17034.         DelayTime                = 0
  17035.         ShockWaveClearRadius    = Yes
  17036.         ShockWaveClearMult        = 0.75
  17037.         ShockWaveClearFlingHeight = 25
  17038.     End
  17039.  
  17040. End
  17041.  
  17042. ;------------------------------------------------------------------------------
  17043. Weapon WyrmDisappearWeapon                ;used when a wyrm goes underground.
  17044.  
  17045.     RadiusDamageAffects    = ALLIES ENEMIES NOT_SIMILAR
  17046.     AttackRange           = 4.0
  17047.  
  17048.     MetaImpactNugget                    ; A Nugget that throws things back with force
  17049.         ShockWaveAmount        = 25
  17050.         ShockWaveRadius        = 10.0
  17051.         ShockWaveTaperOff    = 0.9
  17052.         ShockWaveZMult        = 1.20
  17053.         DelayTime            = 333
  17054.     End
  17055.   
  17056. End
  17057.  
  17058. ;------------------------------------------------------------------------------
  17059. Weapon WyrmDeathWeapon                ;used in the OCL that makes a wyrm.
  17060.  
  17061.     RadiusDamageAffects    = ALLIES ENEMIES NOT_SIMILAR
  17062.     AttackRange           = 4.0
  17063.  
  17064.     DamageNugget                        ; A basic Nugget that just does damage
  17065.         Damage        = 10
  17066.         Radius        = 30.0
  17067.         DelayTime     = 0
  17068.         DamageType    = FORCE
  17069.         DamageFXType  = SWORD_SLASH
  17070.         DeathType     = NORMAL
  17071.         DamageScalar  = 0% NONE +Wyrm
  17072.     End
  17073.  
  17074.     MetaImpactNugget                    ; A Nugget that throws things back with force
  17075.         ShockWaveAmount        = 25
  17076.         ShockWaveRadius        = 30.0
  17077.         ShockWaveTaperOff    = 0.9
  17078.         ShockWaveZMult        = 1.20
  17079.         DelayTime            = 0
  17080.     End
  17081.   
  17082. End
  17083.  
  17084. ;------------------------------------------------------------------------------
  17085. Weapon WyrmFireBreath
  17086.     IdleAfterFiringDelay        = 0
  17087.     AttackRange                    = #MULTIPLY( WYRM_FIRE_RADIUS 1.1 )
  17088.     WeaponSpeed                    = 400                                        ; dist/sec
  17089.     RadiusDamageAffects            = ALLIES ENEMIES NOT_SIMILAR
  17090.     DelayBetweenShots            = WYRM_FIRE_DELAYBETWEENSHOTS               ; time between shots, msec
  17091.     PreAttackDelay                = 1800     ;WYRM_FIRE_PREATTACKDELAY   ;commented out because it needs to match the animation
  17092.     PreAttackType                = PER_SHOT
  17093.     FiringDuration                = 3000    ;WYRM_FIRE_FIRINGDURATION  ;commented out because it needs to match the animation
  17094.     AcceptableAimDelta            = 10
  17095.  
  17096.     DamageNugget                                                            ; A basic Nugget that just does damage
  17097.         Damage            = WYRM_FIRE_DAMAGE
  17098.         Radius            = WYRM_FIRE_RADIUS
  17099.         DamageType        = FLAME
  17100.         DamageFXType    = FLAME
  17101.         DeathType        = BURNED
  17102.         DamageArc        = 45
  17103.         DamageMaxHeight = 50                                                ; We won't hurt something far above us.  Birds fly at around 100
  17104.         DamageSpeed        = 400
  17105.     End
  17106.  
  17107.     ; To catch the units standing right on the point of the triangle.
  17108.     DamageNugget                                                            ; A basic Nugget that just does damage
  17109.         Damage            = WYRM_FIRE_DAMAGE
  17110.         Radius            = 20
  17111.         DamageType        = FLAME
  17112.         DamageFXType    = FLAME
  17113.         DeathType        = BURNED
  17114.         DamageMaxHeight = 50                                                ; We won't hurt something far above us.  Birds fly at around 100
  17115.     End
  17116.  
  17117.  
  17118.     FireLogicNugget
  17119.         LogicType        = INCREASE_BURN_RATE
  17120.         Radius            = 50
  17121.         DelayTime        = 1000
  17122.         Damage            = 10
  17123.     End
  17124.  
  17125. End
  17126.  
  17127. ;------------------------------------------------------------------------------
  17128. Weapon PorterFireExtinguisher    
  17129.     AttackRange = 150
  17130.  
  17131.     FireLogicNugget
  17132.         LogicType        = DECREASE_BURN_RATE
  17133.         Radius            = PORTER_FIRE_EXTINGUISHER_DECREASEBURNRATE_RADIUS
  17134.         Damage            = PORTER_FIRE_EXTINGUISHER_DECREASEBURNRATE_AMOUNT
  17135.     End
  17136. End
  17137. ;==========================MAP SPECIFIC WEAPON==================================
  17138.  
  17139. Weapon GoblinArcherBow_GoodRivendell
  17140.   
  17141.     AttackRange            = GOBLIN_ARCHER_RANGE   ;Horde member so it needs to be bigger than the horde weapon attack range.
  17142.    
  17143.        RangeBonusMinHeight    = 10
  17144.     RangeBonus        = 1
  17145.     RangeBonusPerFoot    = #MULTIPLY( GOBLIN_ARCHER_RANGE .01 )
  17146.    
  17147.    
  17148.     LeechRangeWeapon    = Yes
  17149.     WeaponSpeed            = 300         ; dist/sec 
  17150.     MinWeaponSpeed        = 121
  17151.     MaxWeaponSpeed        = 400      ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
  17152.     FireFX                = FX_RohanArcherBowWeapon  
  17153.     ScaleWeaponSpeed    = Yes ; Used for lob weapons, scales speed proportional to range
  17154.     HitPercentage        = 100     ;When this weapon is used it will hit exactly 50% of the time.
  17155.     ScatterRadius        = 20.0     ;When this weapon misses it can randomly miss by as much as this distance.
  17156.     
  17157.     AcceptableAimDelta    = 20    ; prevent twitchy reaiming in horde on horde
  17158.     DelayBetweenShots    = 0
  17159.     PreAttackDelay      = GOBLIN_ARCHER_PREATTACKDELAY
  17160.     PreAttackType       = PER_POSITION
  17161.     PreAttackRandomAmount     = 200 
  17162.     FiringDuration      = 0
  17163.     
  17164.     ClipSize            = 1
  17165.     AutoReloadsClip        = Yes
  17166.     AutoReloadWhenIdle    = 1    
  17167.     ClipReloadTime        = Min:GOBLIN_ARCHER_BOW_RELOADTIME_MIN Max:GOBLIN_ARCHER_BOW_RELOADTIME_MAX
  17168.     ContinuousFireOne    = 0
  17169.     ContinuousFireCoast    = GOBLIN_ARCHER_BOW_RELOADTIME_MAX 
  17170.     
  17171.     AntiAirborneVehicle    = Yes
  17172.     AntiAirborneMonster    = Yes
  17173.     HitPassengerPercentage    = 20%
  17174.     CanBeDodged                = Yes ; Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  17175.  
  17176.     ProjectileNugget    ; Default arrow
  17177.         ProjectileTemplateName  = EvilFactionArrow
  17178.         WarheadTemplateName     = GoblinArcherBowWarhead_GoodRivendell
  17179.         ForbiddenUpgradeNames   = Upgrade_WildFireArrows
  17180.     End
  17181.     
  17182.     ProjectileNugget    ; Fire Arrow
  17183.         ProjectileTemplateName  = EvilFactionFireArrow
  17184.         WarheadTemplateName      = GoblinArcherBowFireWarhead
  17185.         RequiredUpgradeNames     = Upgrade_WildFireArrows
  17186.     End
  17187. End
  17188.  
  17189. Weapon GoblinArcherBowWarhead_GoodRivendell
  17190.   ProjectileCollidesWith = ENEMIES
  17191.   RadiusDamageAffects = ENEMIES NOT_SIMILAR 
  17192.   HitStoredTarget = Yes    ; Always hits initial target.
  17193.   DamageNugget                        ; A basic Nugget that just does damage
  17194.     Damage        = 5
  17195.     Radius        = 0.0    ; HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  17196.     DelayTime     = 0
  17197.     DamageType    = PIERCE
  17198.     DamageFXType  = EVIL_ARROW_PIERCE
  17199.     DeathType     = NORMAL
  17200.   End
  17201. End
  17202. ;==========================That is all for Evil Erebor modifications========================
  17203.  
  17204.  
  17205.  
  17206. // These are weapons used for debug purposes only
  17207. Weapon DebugWeapon1
  17208.     RadiusDamageAffects = SELF ALLIES
  17209.     MetaImpactNugget
  17210. ;        HeroResist            = 0
  17211.         ShockWaveAmount        = 50
  17212.         ShockWaveRadius        = 10
  17213.         ShockWaveArc        = 180
  17214.         ShockWaveTaperOff    = 1
  17215.         ShockWaveSpeed        = 0
  17216.         ShockWaveZMult        = 1
  17217.     End
  17218. End
  17219. Weapon DebugWeapon2
  17220.     RadiusDamageAffects = SELF ALLIES
  17221.     DamageNugget
  17222.         Damage            = 100000
  17223.         Radius            = 2
  17224.         DamageType        = FLAME
  17225.         DamageFXType    = FLAME
  17226.         DeathType        = BURNED
  17227.         AcceptDamageAdd = No
  17228.     End
  17229. End
  17230. Weapon DebugWeapon3
  17231.     RadiusDamageAffects = SELF ALLIES
  17232.     DamageNugget
  17233.         Damage            = 100000
  17234.         Radius            = 2
  17235.         DamageType        = SLASH
  17236.         DamageFXType    = GOOD_ARROW_PIERCE
  17237.         DeathType        = NORMAL
  17238.         AcceptDamageAdd = No
  17239.     End
  17240.     MetaImpactNugget
  17241.         ShockWaveAmount        = 100
  17242.         ShockWaveRadius        = 10
  17243.         ShockWaveArc        = 180 
  17244.         ShockWaveTaperOff    = 1
  17245.         ShockWaveSpeed        = 0
  17246.         ShockWaveZMult        = 1
  17247.     End
  17248. End
  17249.  
  17250.  
  17251.  
  17252. //==========================================================================================
  17253. //////////////////////////// CREATE A HERO SPECIAL WEAPONS //////////////////////////////////
  17254. //==========================================================================================
  17255.  
  17256. Weapon CreateAHeroBasicMeleeWeapon
  17257.     LeechRangeWeapon      = Yes
  17258.     AttackRange           = STANDARD_MELEE_ATTACK_RANGE
  17259.     MeleeWeapon           = Yes
  17260.     FireFX                = FX_GondorSwordHit
  17261.     DelayBetweenShots     = FARAMIR_DELAYBETWEENSHOTS             // time between shots, msec
  17262.     PreAttackDelay        = FARAMIR_PREATTACKDELAY     // 400 is sword swing delay time before contact with target.
  17263.     PreAttackType         = PER_SHOT // Do the delay each time we attack a new target
  17264.     FiringDuration        = FARAMIR_FIRINGDURATION     // Duration of the sword swing
  17265.     UseInnateAttributes      = Yes
  17266.  
  17267.     DamageNugget                        // A basic Nugget that just does damage
  17268.         Damage        = CREATE_A_HERO_DAMAGE
  17269.         Radius        = 0.0
  17270.         DelayTime     = 0
  17271.         DamageType    = HERO
  17272.         DamageFXType  = SWORD_SLASH
  17273.         DeathType     = NORMAL
  17274.     End
  17275.  
  17276.     DOTNugget                        // A basic Nugget that just does damage
  17277.         Damage        = DEFAULT_POISON_DAMAGE
  17278.         AcceptDamageAdd = No
  17279.         Radius        = 0.0
  17280.         DelayTime     = 0
  17281.         DamageType    = POISON
  17282.         DamageFXType  = POISON
  17283.         DeathType     = NORMAL
  17284.         DamageInterval = 500
  17285.         DamageDuration = 10000
  17286.         SpecialObjectFilter = AFFECTED_BY_POISON_OBJECTFILTER
  17287.         RequiredUpgradeNames    = Upgrade_CreateAHeroPoisonAttack_Level1
  17288.         ForbiddenUpgradeNames    = Upgrade_CreateAHeroPoisonAttack_Level2 Upgrade_CreateAHeroPoisonAttack_Level3 Upgrade_CreateAHeroPoisonAttack_Level4
  17289.     End
  17290.  
  17291.     DOTNugget                        // A basic Nugget that just does damage
  17292.         Damage        = DEFAULT_POISON_DAMAGE
  17293.         AcceptDamageAdd = No
  17294.         Radius        = 0.0
  17295.         DelayTime     = 0
  17296.         DamageType    = POISON
  17297.         DamageFXType  = POISON
  17298.         DeathType     = NORMAL
  17299.         DamageInterval = 500
  17300.         DamageDuration = 15000
  17301.         SpecialObjectFilter = AFFECTED_BY_POISON_OBJECTFILTER
  17302.         RequiredUpgradeNames    = Upgrade_CreateAHeroPoisonAttack_Level2
  17303.         ForbiddenUpgradeNames    = Upgrade_CreateAHeroPoisonAttack_Level3 Upgrade_CreateAHeroPoisonAttack_Level4
  17304.     End
  17305.  
  17306.     DOTNugget                        // A basic Nugget that just does damage
  17307.         Damage        = DEFAULT_POISON_DAMAGE
  17308.         AcceptDamageAdd = No
  17309.         Radius        = 0.0
  17310.         DelayTime     = 0
  17311.         DamageType    = POISON
  17312.         DamageFXType  = POISON
  17313.         DeathType     = NORMAL
  17314.         DamageInterval = 500
  17315.         DamageDuration = 20000
  17316.         SpecialObjectFilter = AFFECTED_BY_POISON_OBJECTFILTER
  17317.         RequiredUpgradeNames    = Upgrade_CreateAHeroPoisonAttack_Level3
  17318.         ForbiddenUpgradeNames    = Upgrade_CreateAHeroPoisonAttack_Level4
  17319.     End
  17320.  
  17321.     DOTNugget                        // A basic Nugget that just does damage
  17322.         Damage        = DEFAULT_POISON_DAMAGE
  17323.         AcceptDamageAdd = No
  17324.         Radius        = 0.0
  17325.         DelayTime     = 0
  17326.         DamageType    = POISON
  17327.         DamageFXType  = POISON
  17328.         DeathType     = NORMAL
  17329.         DamageInterval = 500
  17330.         DamageDuration = 30000
  17331.         SpecialObjectFilter = AFFECTED_BY_POISON_OBJECTFILTER
  17332.         RequiredUpgradeNames    = Upgrade_CreateAHeroPoisonAttack_Level4
  17333.     End
  17334. End
  17335.  
  17336. //------------------------------------------------------------------------------
  17337. Weapon CreateAHeroBasicRangedWeapon
  17338.     AttackRange            = 350                
  17339.     LeechRangeWeapon    = Yes
  17340.     WeaponSpeed            = 321         // dist/sec 
  17341.     MinWeaponSpeed        = 241
  17342.     MaxWeaponSpeed        = 481      // dist/sec Upper limit on scaling, when attacking past nominal "max" range
  17343.     FireFX                = FX_RohanArcherBowWeapon
  17344.     ScaleWeaponSpeed    = Yes // Used for lob weapons, scales speed proportional to range
  17345.     HitPercentage        = 100     //When this weapon is used it will hit exactly 75% of the time.
  17346.     ScatterRadius        = 0.0     //When this weapon misses it can randomly miss by as much as this distance.
  17347.     UseInnateAttributes    = Yes
  17348.    
  17349.     DelayBetweenShots    = FARAMIR_BOW_DELAYBETWEENSHOTS        // time between shots, msec
  17350.     PreAttackDelay        = FARAMIR_BOW_PREATTACKDELAY             // 1467 is the prep time for archer.
  17351.     PreAttackType        = PER_POSITION
  17352.     FiringDuration        = FARAMIR_BOW_FIRINGDURATION   // Duration of the archer firing shot is 500ms.
  17353.  
  17354.     ClipSize            = 1
  17355.     AutoReloadsClip        = Yes
  17356.     AutoReloadWhenIdle    = 1    
  17357.     ClipReloadTime        = Min:1000 Max:1500
  17358.     ContinuousFireOne    = 0
  17359.     ContinuousFireCoast    = FARAMIR_BOW_RELOADTIME_MAX
  17360.        
  17361.     AntiAirborneVehicle    = Yes
  17362.     AntiAirborneMonster    = Yes  
  17363.     
  17364.     CanFireWhileMoving        = Yes
  17365.    
  17366.     ProjectileNugget                    // Default arrow
  17367.        ProjectileTemplateName    = GoodFactionArrow
  17368.        WarheadTemplateName        = CreateAHeroBasicRangedWarhead
  17369.        ForbiddenUpgradeNames    = Upgrade_CreateAHeroArrowBonus_Level4
  17370.     End
  17371.    
  17372.     ProjectileNugget                    // Default arrow
  17373.        ProjectileTemplateName    = MirkwoodArcherSilverthornProjectile
  17374.        WarheadTemplateName        = CreateAHeroBasicRangedWarhead
  17375.        RequiredUpgradeNames        = Upgrade_CreateAHeroArrowBonus_Level4
  17376.     End
  17377. End
  17378.  
  17379.  
  17380. //----------------------------
  17381. Weapon CreateAHeroBasicRangedWarhead
  17382.     ProjectileCollidesWith = ALLIES ENEMIES NEUTRAL STRUCTURES WALLS // Remember, the projectile is a rock, who has no allies
  17383.     RadiusDamageAffects = ENEMIES NEUTRALS ALLIES NOT_SIMILAR
  17384.     HitStoredTarget = Yes    // Always hits initial target.
  17385.     UseInnateAttributes    = Yes
  17386.  
  17387.     //    No bonus
  17388.     DamageNugget                        // A basic Nugget that just does damage
  17389.         Damage        = 80
  17390.         Radius        = 0.0    // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  17391.         DelayTime     = 0
  17392.         DamageType    = HERO_RANGED
  17393.         DamageFXType  = GOOD_ARROW_PIERCE
  17394.         DeathType     = NORMAL
  17395.         ForbiddenUpgradeNames    = Upgrade_CreateAHeroToggleWeapon_Level2 Upgrade_CreateAHeroArrowBonus_Level1 Upgrade_CreateAHeroArrowBonus_Level2 Upgrade_CreateAHeroArrowBonus_Level3 Upgrade_CreateAHeroArrowBonus_Level4
  17396.     End
  17397.  
  17398.     //    Corrupted Man Level 2 Toggle Weapon Bonus
  17399.     DamageNugget
  17400.         Damage                    = 120
  17401.         Radius                    = 0.0
  17402.         DelayTime                = 0
  17403.         DamageType                = HERO_RANGED
  17404.         DamageFXType            = GOOD_ARROW_PIERCE
  17405.         DeathType                = NORMAL
  17406.         RequiredUpgradeNames    = Upgrade_CreateAHeroToggleWeapon_Level2
  17407.         ForbiddenUpgradeNames    = Upgrade_CreateAHeroArrowBonus_Level1 Upgrade_CreateAHeroArrowBonus_Level2 Upgrade_CreateAHeroArrowBonus_Level3 Upgrade_CreateAHeroArrowBonus_Level4
  17408.     End
  17409.  
  17410.     //    Level 1 Archer bonus
  17411.     DamageNugget                        // A basic Nugget that just does damage
  17412.         Damage        = 80
  17413.         Radius        = 0.0    // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  17414.         DelayTime     = 0
  17415.         DamageType    = HERO_RANGED
  17416.         DamageFXType  = GOOD_ARROW_PIERCE
  17417.         DeathType     = NORMAL
  17418.         RequiredUpgradeNames    = Upgrade_CreateAHeroArrowBonus_Level1
  17419.         ForbiddenUpgradeNames    = Upgrade_CreateAHeroArrowBonus_Level2 Upgrade_CreateAHeroArrowBonus_Level3 Upgrade_CreateAHeroArrowBonus_Level4
  17420.     End
  17421.     DamageNugget                        // A basic Nugget that just does damage
  17422.         Damage        = CREATE_A_HERO_ARROW_BONUS_DAMAGE_L1
  17423.         Radius        = CREATE_A_HERO_ARROW_BONUS_RADIUS_L1    // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  17424.         DamageScalar  = 10% NONE +STRUCTURE 
  17425.         DelayTime     = 0
  17426.         DamageType    = SLASH
  17427.         DamageFXType  = GOOD_ARROW_PIERCE
  17428.         DeathType     = NORMAL
  17429.         RequiredUpgradeNames    = Upgrade_CreateAHeroArrowBonus_Level1
  17430.         ForbiddenUpgradeNames    = Upgrade_CreateAHeroArrowBonus_Level2 Upgrade_CreateAHeroArrowBonus_Level3 Upgrade_CreateAHeroArrowBonus_Level4
  17431.     End
  17432.  
  17433.     //    Level 2 Archer bonus
  17434.     DamageNugget                        // A basic Nugget that just does damage
  17435.         Damage        = 80
  17436.         Radius        = 0.0    // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  17437.         DelayTime     = 0
  17438.         DamageType    = HERO_RANGED
  17439.         DamageFXType  = FLAME
  17440.         DeathType     = NORMAL
  17441.         RequiredUpgradeNames    = Upgrade_CreateAHeroArrowBonus_Level2
  17442.         ForbiddenUpgradeNames    = Upgrade_CreateAHeroArrowBonus_Level3 Upgrade_CreateAHeroArrowBonus_Level4
  17443.     End
  17444.     DamageNugget                        // A basic Nugget that just does damage
  17445.         Damage        = CREATE_A_HERO_ARROW_BONUS_DAMAGE_L1
  17446.         Radius        = CREATE_A_HERO_ARROW_BONUS_RADIUS_L1    // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  17447.         DamageScalar  = 10% NONE +STRUCTURE 
  17448.         DelayTime     = 0
  17449.         DamageType    = SLASH
  17450.         DamageFXType  = FLAME
  17451.         DeathType     = NORMAL
  17452.         RequiredUpgradeNames    = Upgrade_CreateAHeroArrowBonus_Level2
  17453.         ForbiddenUpgradeNames    = Upgrade_CreateAHeroArrowBonus_Level3 Upgrade_CreateAHeroArrowBonus_Level4
  17454.     End
  17455.     DamageNugget                        // A basic Nugget that just does damage
  17456.         Damage        = CREATE_A_HERO_ARROW_BONUS_DAMAGE_L2
  17457.         Radius        = CREATE_A_HERO_ARROW_BONUS_RADIUS_L2    // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  17458.         DamageScalar  = 10% NONE +STRUCTURE 
  17459.         DelayTime     = 0
  17460.         DamageType    = FLAME
  17461.         DamageFXType  = FLAME
  17462.         DeathType     = NORMAL
  17463.         RequiredUpgradeNames    = Upgrade_CreateAHeroArrowBonus_Level2
  17464.         ForbiddenUpgradeNames    = Upgrade_CreateAHeroArrowBonus_Level3 Upgrade_CreateAHeroArrowBonus_Level4
  17465.     End
  17466.  
  17467.     //    Level 3 Archer bonus
  17468.     DamageNugget                        // A basic Nugget that just does damage
  17469.         Damage        = 80
  17470.         Radius        = 0.0    // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  17471.         DelayTime     = 0
  17472.         DamageType    = HERO_RANGED
  17473.         DamageFXType  = MAGIC
  17474.         DeathType     = NORMAL
  17475.         RequiredUpgradeNames    = Upgrade_CreateAHeroArrowBonus_Level3
  17476.     End
  17477.     DamageNugget                        // A basic Nugget that just does damage
  17478.         Damage        = CREATE_A_HERO_ARROW_BONUS_DAMAGE_L1
  17479.         Radius        = CREATE_A_HERO_ARROW_BONUS_RADIUS_L1    // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  17480.         DamageScalar  = 10% NONE +STRUCTURE 
  17481.         DelayTime     = 0
  17482.         DamageType    = SLASH
  17483.         DamageFXType  = MAGIC
  17484.         DeathType     = NORMAL
  17485.         RequiredUpgradeNames    = Upgrade_CreateAHeroArrowBonus_Level3
  17486.     End
  17487.     DamageNugget                        // A basic Nugget that just does damage
  17488.         Damage        = CREATE_A_HERO_ARROW_BONUS_DAMAGE_L2
  17489.         Radius        = CREATE_A_HERO_ARROW_BONUS_RADIUS_L2    // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  17490.         DamageScalar  = 10% NONE +STRUCTURE 
  17491.         DelayTime     = 0
  17492.         DamageType    = FLAME
  17493.         DamageFXType  = MAGIC
  17494.         DeathType     = NORMAL
  17495.         RequiredUpgradeNames    = Upgrade_CreateAHeroArrowBonus_Level3
  17496.     End
  17497.     DamageNugget                        // A basic Nugget that just does damage
  17498.         Damage        = CREATE_A_HERO_ARROW_BONUS_DAMAGE_L3
  17499.         Radius        = CREATE_A_HERO_ARROW_BONUS_RADIUS_L3    // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  17500.         DamageScalar  = 10% NONE +STRUCTURE 
  17501.         DelayTime     = 0
  17502.         DamageType    = MAGIC
  17503.         DamageFXType  = MAGIC
  17504.         DeathType     = NORMAL
  17505.         RequiredUpgradeNames    = Upgrade_CreateAHeroArrowBonus_Level3
  17506.     End
  17507.  
  17508.     //    Level 4 Archer Bonus
  17509.     DamageNugget                        // A basic Nugget that just does damage
  17510.         Damage        = CREATE_A_HERO_ARROW_BONUS_DAMAGE_L4
  17511.         Radius        = CREATE_A_HERO_ARROW_BONUS_RADIUS_L4    // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  17512.         DamageScalar  = 10% NONE +STRUCTURE 
  17513.         DelayTime     = 0
  17514.         DamageType    = HERO_RANGED
  17515.         DamageFXType  = MAGIC
  17516.         DeathType     = NORMAL
  17517.         RequiredUpgradeNames    = Upgrade_CreateAHeroArrowBonus_Level4
  17518.     End
  17519.  
  17520.     DOTNugget                        // A basic Nugget that just does damage
  17521.         Damage        = DEFAULT_POISON_DAMAGE
  17522.         AcceptDamageAdd = No
  17523.         Radius        = 0.0
  17524.         DelayTime     = 0MirkwoodArcherSilverthornProjectile
  17525.         DamageType    = POISON
  17526.         DamageFXType  = POISON
  17527.         DeathType     = NORMAL
  17528.         DamageInterval = 1000
  17529.         DamageDuration = 10000
  17530.         SpecialObjectFilter = AFFECTED_BY_POISON_OBJECTFILTER
  17531.         RequiredUpgradeNames    = Upgrade_CreateAHeroPoisonAttack_Level1
  17532.         ForbiddenUpgradeNames    = Upgrade_CreateAHeroPoisonAttack_Level2 Upgrade_CreateAHeroPoisonAttack_Level3 Upgrade_CreateAHeroPoisonAttack_Level4
  17533.     End
  17534.  
  17535.     DOTNugget                        // A basic Nugget that just does damage
  17536.         Damage        = DEFAULT_POISON_DAMAGE
  17537.         AcceptDamageAdd = No
  17538.         Radius        = 0.0
  17539.         DelayTime     = 0
  17540.         DamageType    = POISON
  17541.         DamageFXType  = POISON
  17542.         DeathType     = NORMAL
  17543.         DamageInterval = 1000
  17544.         DamageDuration = 20000
  17545.         SpecialObjectFilter = AFFECTED_BY_POISON_OBJECTFILTER
  17546.         RequiredUpgradeNames    = Upgrade_CreateAHeroPoisonAttack_Level2
  17547.         ForbiddenUpgradeNames    = Upgrade_CreateAHeroPoisonAttack_Level3 Upgrade_CreateAHeroPoisonAttack_Level4
  17548.     End
  17549.  
  17550.     DOTNugget                        // A basic Nugget that just does damage
  17551.         Damage        = DEFAULT_POISON_DAMAGE
  17552.         AcceptDamageAdd = No
  17553.         Radius        = 0.0
  17554.         DelayTime     = 0
  17555.         DamageType    = POISON
  17556.         DamageFXType  = POISON
  17557.         DeathType     = NORMAL
  17558.         DamageInterval = 1000
  17559.         DamageDuration = 250000
  17560.         SpecialObjectFilter = AFFECTED_BY_POISON_OBJECTFILTER
  17561.         RequiredUpgradeNames    = Upgrade_CreateAHeroPoisonAttack_Level3
  17562.         ForbiddenUpgradeNames    = Upgrade_CreateAHeroPoisonAttack_Level4
  17563.     End
  17564.  
  17565.     DOTNugget                        // A basic Nugget that just does damage
  17566.         Damage        = DEFAULT_POISON_DAMAGE
  17567.         AcceptDamageAdd = No
  17568.         Radius        = 0.0
  17569.         DelayTime     = 0
  17570.         DamageType    = POISON
  17571.         DamageFXType  = POISON
  17572.         DeathType     = NORMAL
  17573.         DamageInterval = 1000
  17574.         DamageDuration = 30000
  17575.         SpecialObjectFilter = AFFECTED_BY_POISON_OBJECTFILTER
  17576.         RequiredUpgradeNames    = Upgrade_CreateAHeroPoisonAttack_Level4
  17577.     End
  17578. End
  17579.  
  17580.  
  17581. //------------------------------------------------------------------------------
  17582. Weapon CreateAHerBallLightningWeapon_L1
  17583.     AttackRange               = CREATE_A_HERO_BALL_LIGHTNING_RANGE
  17584.     WeaponSpeed               = 801        //    dist/sec 
  17585.     HitPercentage           = 100        // When this weapon is used it will hit exactly 100% of the time.
  17586.     DelayBetweenShots       = 4500        // time between shots, msec
  17587.     PreAttackDelay           = 200        // 1467 is    the    prep time for archer.  
  17588.     PreAttackType           = PER_SHOT    //    Do the delay each time we attack a new target
  17589.     FiringDuration           = 1            // Duration    of the archer firing shot is 500ms.
  17590.     
  17591.     FireFX                   = FX_CAHBallLightningFireFX // CASEY TODO New FX for this power
  17592.     FiringDuration           = 50
  17593.     AntiAirborneVehicle       = Yes
  17594.     AntiAirborneMonster       = Yes
  17595.  
  17596.  
  17597.     RadiusDamageAffects       = ENEMIES NOT_SIMILAR
  17598.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES    WALLS
  17599.  
  17600.     DamageNugget                        // A basic Nugget that just does damage
  17601.         Damage         = CREATE_A_HERO_BALL_LIGHTNING_DAMAGE_L1
  17602.         DamageType     = FLAME
  17603.         DamageFXType = ELECTRIC
  17604.         DeathType     = BURNED
  17605.         Radius         = 15
  17606.         DelayTime     = 200    
  17607.     End
  17608.  
  17609.     DamageNugget                        // A basic Nugget that just does damage
  17610.         Damage         = CREATE_A_HERO_BALL_LIGHTNING_DAMAGE_L1
  17611.         DamageType     = MAGIC
  17612.         DamageFXType = ELECTRIC
  17613.         DeathType     = BURNED
  17614.         Radius         = 15
  17615.         DelayTime     = 200    
  17616.     End
  17617.  
  17618.     MetaImpactNugget                    // A Nugget that throws things back with force
  17619. //        HeroResist          =    0.75
  17620.         ShockWaveAmount      =    90.0
  17621.         ShockWaveRadius      =    17.6
  17622.         ShockWaveTaperOff =    0.2
  17623.         DelayTime          =    200          //The target is dying before the laser    appears    in the new laser tweak,    so try to kill when    the    laser turns    on
  17624.     End
  17625. End
  17626.  
  17627.  
  17628. //------------------------------------------------------------------------------
  17629. Weapon CreateAHerBallLightningWeapon_L2
  17630.     AttackRange               = CREATE_A_HERO_BALL_LIGHTNING_RANGE
  17631.     WeaponSpeed               = 801        //    dist/sec 
  17632.     HitPercentage           = 100        // When this weapon is used it will hit exactly 100% of the time.
  17633.     DelayBetweenShots       = 4500        // time between shots, msec
  17634.     PreAttackDelay           = 200        // 1467 is    the    prep time for archer.  
  17635.     PreAttackType           = PER_SHOT    //    Do the delay each time we attack a new target
  17636.     FiringDuration           = 1            // Duration    of the archer firing shot is 500ms.
  17637.     
  17638.     FireFX                   = FX_CAHBallLightningFireFX // CASEY TODO New FX for this power
  17639.     FiringDuration           = 50
  17640.     AntiAirborneVehicle       = Yes
  17641.     AntiAirborneMonster       = Yes
  17642.  
  17643.     RadiusDamageAffects       = ENEMIES NOT_SIMILAR
  17644.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES    WALLS
  17645.  
  17646.     DamageNugget                        // A basic Nugget that just does damage
  17647.         Damage         = CREATE_A_HERO_BALL_LIGHTNING_DAMAGE_L2
  17648.         DamageType     = FLAME
  17649.         DamageFXType = ELECTRIC
  17650.         DeathType     = BURNED
  17651.         Radius         = 15
  17652.         DelayTime     = 200    
  17653.     End
  17654.     
  17655.     DamageNugget                        // A basic Nugget that just does damage
  17656.         Damage         = CREATE_A_HERO_BALL_LIGHTNING_DAMAGE_L2
  17657.         DamageType     = MAGIC
  17658.         DamageFXType = ELECTRIC
  17659.         DeathType     = BURNED
  17660.         Radius         = 15
  17661.         DelayTime     = 200    
  17662.     End
  17663.  
  17664.     MetaImpactNugget                    // A Nugget that throws things back with force
  17665. //        HeroResist          =    0.75
  17666.         ShockWaveAmount      =    90.0
  17667.         ShockWaveRadius      =    17.6
  17668.         ShockWaveTaperOff =    0.2
  17669.         DelayTime          =    200          //The target is dying before the laser    appears    in the new laser tweak,    so try to kill when    the    laser turns    on
  17670.     End
  17671.     
  17672. End
  17673.  
  17674.  
  17675. //------------------------------------------------------------------------------
  17676. Weapon CreateAHerBallLightningWeapon_L3
  17677.     AttackRange               = CREATE_A_HERO_BALL_LIGHTNING_RANGE
  17678.     WeaponSpeed               = 801        //    dist/sec 
  17679.     HitPercentage           = 100        // When this weapon is used it will hit exactly 100% of the time.
  17680.     DelayBetweenShots       = 4500        // time between shots, msec
  17681.     PreAttackDelay           = 200        // 1467 is    the    prep time for archer.  
  17682.     PreAttackType           = PER_SHOT    //    Do the delay each time we attack a new target
  17683.     FiringDuration           = 1            // Duration    of the archer firing shot is 500ms.
  17684.     
  17685.     FireFX                   = FX_CAHBallLightningFireFX // CASEY TODO New FX for this power
  17686.     FiringDuration           = 50
  17687.     AntiAirborneVehicle       = Yes
  17688.     AntiAirborneMonster       = Yes
  17689.  
  17690.     RadiusDamageAffects       = ENEMIES NOT_SIMILAR
  17691.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES    WALLS
  17692.  
  17693.     DamageNugget                        // A basic Nugget that just does damage
  17694.         Damage         = CREATE_A_HERO_BALL_LIGHTNING_DAMAGE_L3
  17695.         DamageType     = FLAME
  17696.         DamageFXType = ELECTRIC
  17697.         DeathType     = BURNED
  17698.         Radius         = 15
  17699.         DelayTime     = 200    
  17700.     End
  17701.     
  17702.     DamageNugget                        // A basic Nugget that just does damage
  17703.         Damage         = CREATE_A_HERO_BALL_LIGHTNING_DAMAGE_L3
  17704.         DamageType     = MAGIC
  17705.         DamageFXType = ELECTRIC
  17706.         DeathType     = BURNED
  17707.         Radius         = 15
  17708.         DelayTime     = 200    
  17709.     End
  17710.  
  17711.     MetaImpactNugget                    // A Nugget that throws things back with force
  17712. //        HeroResist          =    0.75
  17713.         ShockWaveAmount      =    90.0
  17714.         ShockWaveRadius      =    17.6
  17715.         ShockWaveTaperOff =    0.2
  17716.         DelayTime          =    200          //The target is dying before the laser    appears    in the new laser tweak,    so try to kill when    the    laser turns    on
  17717.     End
  17718.     
  17719. End
  17720.  
  17721. //------------------------------------------------------------------------------
  17722. Weapon CreateAHeroLightBlastWeapon_L1  // 
  17723.     AttackRange            = CREATE_A_HERO_PHASER_RANGE                //600
  17724.     LeechRangeWeapon    = Yes
  17725.     WeaponSpeed            = 801      // dist/sec 
  17726.     HitPercentage        = 100        // When this weapon is used it will hit exactly 100% of the time.
  17727.     DelayBetweenShots    = 4500        // time between shots, msec
  17728.     FireFX              = FX_CaHBeamWeapon // CASEY TODO New FX for this power
  17729.     FiringDuration      = 1
  17730.     AntiAirborneVehicle    = Yes
  17731.     AntiAirborneMonster    = Yes
  17732.     AcceptableAimDelta    = 15
  17733.  
  17734.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  17735.  
  17736.     DamageNugget                        // A basic Nugget that just does damage
  17737.         Damage        = CREATE_A_HERO_LIGHTBLAST_L1_DAMAGE    
  17738.         DamageScalar  = 200% NONE +MordorWitchKingOnFellBeast +GondorGwaihir    
  17739.         DamageScalar  = 180% NONE +MordorFellBeast
  17740.         Radius        = 17.6
  17741.         DelayTime     = 200           //The target is dying before the laser appears in the new laser tweak, so try to kill when the laser turns on
  17742.         DamageType    = MAGIC
  17743.         DamageFXType  = FLAME
  17744.         DeathType     = NORMAL
  17745.     End
  17746.     MetaImpactNugget                    // A Nugget that throws things back with force
  17747. //        HeroResist          =   0.75
  17748.         ShockWaveAmount        = 50.0
  17749.         ShockWaveRadius        = 17.6
  17750.         ShockWaveTaperOff    = 0.5
  17751.         DelayTime            = 200        //The target is dying before the laser appears in the new laser tweak, so try to kill when the laser turns on
  17752.     End
  17753. End
  17754.  
  17755. Weapon CreateAHeroLightBlastWeapon_L2
  17756.     AttackRange            = CREATE_A_HERO_PHASER_RANGE                //600
  17757.     LeechRangeWeapon    = Yes
  17758.     WeaponSpeed            = 801      // dist/sec 
  17759.     HitPercentage        = 100        // When this weapon is used it will hit exactly 100% of the time.
  17760.     DelayBetweenShots    = 4500        // time between shots, msec
  17761.     FireFX              = FX_CaHBeamWeapon // CASEY TODO New FX for this power
  17762.     FiringDuration      = 1
  17763.     AntiAirborneVehicle    = Yes
  17764.     AntiAirborneMonster    = Yes
  17765.     AcceptableAimDelta    = 15
  17766.  
  17767.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  17768.  
  17769.     DamageNugget                        // A basic Nugget that just does damage
  17770.         Damage        = CREATE_A_HERO_LIGHTBLAST_L2_DAMAGE    
  17771.         DamageScalar  = 200% NONE +MordorWitchKingOnFellBeast +GondorGwaihir    
  17772.         DamageScalar  = 180% NONE +MordorFellBeast
  17773.         Radius        = 17.6
  17774.         DelayTime     = 200           //The target is dying before the laser appears in the new laser tweak, so try to kill when the laser turns on
  17775.         DamageType    = MAGIC
  17776.         DamageFXType  = FLAME
  17777.         DeathType     = NORMAL
  17778.     End
  17779.     MetaImpactNugget                    // A Nugget that throws things back with force
  17780. //        HeroResist          =   0.75
  17781.         ShockWaveAmount        = 50.0
  17782.         ShockWaveRadius        = 17.6
  17783.         ShockWaveTaperOff    = 0.5
  17784.         DelayTime            = 200        //The target is dying before the laser appears in the new laser tweak, so try to kill when the laser turns on
  17785.     End
  17786. End
  17787.  
  17788. Weapon CreateAHeroLightBlastWeapon_L3
  17789.     AttackRange            = CREATE_A_HERO_PHASER_RANGE                //600
  17790.     LeechRangeWeapon    = Yes
  17791.     WeaponSpeed            = 801      // dist/sec 
  17792.     HitPercentage        = 100        // When this weapon is used it will hit exactly 100% of the time.
  17793.     DelayBetweenShots    = 4500        // time between shots, msec
  17794.     FireFX              = FX_CaHBeamWeapon // CASEY TODO New FX for this power
  17795.     FiringDuration      = 1
  17796.     AntiAirborneVehicle    = Yes
  17797.     AntiAirborneMonster    = Yes
  17798.     AcceptableAimDelta    = 15
  17799.  
  17800.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  17801.  
  17802.     DamageNugget                        // A basic Nugget that just does damage
  17803.         Damage        = CREATE_A_HERO_LIGHTBLAST_L3_DAMAGE    
  17804.         DamageScalar  = 200% NONE +MordorWitchKingOnFellBeast +GondorGwaihir    
  17805.         DamageScalar  = 180% NONE +MordorFellBeast
  17806.         Radius        = 17.6
  17807.         DelayTime     = 200           //The target is dying before the laser appears in the new laser tweak, so try to kill when the laser turns on
  17808.         DamageType    = MAGIC
  17809.         DamageFXType  = FLAME
  17810.         DeathType     = NORMAL
  17811.     End
  17812.     MetaImpactNugget                    // A Nugget that throws things back with force
  17813. //        HeroResist          =   0.75
  17814.         ShockWaveAmount        = 50.0
  17815.         ShockWaveRadius        = 17.6
  17816.         ShockWaveTaperOff    = 0.5
  17817.         DelayTime            = 200        //The target is dying before the laser appears in the new laser tweak, so try to kill when the laser turns on
  17818.     End
  17819. End
  17820.  
  17821. //------------------------------------------------------------------------------
  17822. Weapon ForcePush_Level1 // small microwave push
  17823.     IdleAfterFiringDelay      =    0
  17824.     LeechRangeWeapon          =    Yes
  17825.     AttackRange                  =    CREATE_A_HERO_FORCE_PUSH_RANGE_L1
  17826.     WeaponSpeed                  =    401            // dist/sec 
  17827.     RadiusDamageAffects          =    ENEMIES    NEUTRALS NOT_SIMILAR
  17828.     DelayBetweenShots          =    5000               // time between shots, msec
  17829.     PreAttackDelay              =    100
  17830.     PreAttackType              =    PER_ATTACK // Do    the    delay each time    we attack a    new    target
  17831.     FireFX                      =    FX_WizardTelekinesis    // CASEY TODO New FX for this power
  17832.     FiringDuration              =    100
  17833.     DamageDealtAtSelfPosition =    Yes    
  17834.     IsAimingWeapon              =    Yes
  17835.     AcceptableAimDelta          =    15
  17836.     AntiAirborneVehicle          =    No
  17837.     AntiAirborneMonster          =    No
  17838.  
  17839.     DamageNugget                        // A basic Nugget that just does damage
  17840.         Damage         = CREATE_A_HERO_FORCE_PUSH_DAMAGE_L1
  17841.         DamageArc     = 75
  17842.         Radius         = 110.0
  17843.         DamageType     = MAGIC
  17844.         DamageFXType = MAGIC
  17845.         DeathType     = EXPLODED
  17846.         DamageSpeed     = 700.0 // must    match the ShockWaveSpeed below
  17847.     End
  17848.     MetaImpactNugget                    // A Nugget that throws things back with force
  17849. //        HeroResist          =    .75
  17850.         ShockWaveAmount      =    75.0
  17851.         ShockWaveArc      =    75
  17852.         ShockWaveRadius      =    110.0
  17853.         ShockWaveTaperOff =    0.75
  17854.         ShockWaveZMult      =    1.000
  17855.         ShockWaveSpeed      =    700.0 
  17856.     End
  17857. End
  17858.  
  17859. //------------------------------------------------------------------------------
  17860. Weapon ForcePush_Level2 // small microwave push
  17861.     IdleAfterFiringDelay      =    0
  17862.     LeechRangeWeapon          =    Yes
  17863.     AttackRange                  =    CREATE_A_HERO_FORCE_PUSH_RANGE_L2
  17864.     WeaponSpeed                  =    401            // dist/sec 
  17865.     RadiusDamageAffects          =    ENEMIES    NEUTRALS NOT_SIMILAR
  17866.     DelayBetweenShots          =    5000               // time between shots, msec
  17867.     PreAttackDelay              =    100
  17868.     PreAttackType              =    PER_ATTACK // Do    the    delay each time    we attack a    new    target
  17869.     FireFX                      =    FX_WizardTelekinesis    // CASEY TODO New FX for this power
  17870.     FiringDuration              =    100
  17871.     DamageDealtAtSelfPosition =    Yes    
  17872.     IsAimingWeapon              =    Yes
  17873.     AcceptableAimDelta          =    15
  17874.     AntiAirborneVehicle          =    No
  17875.     AntiAirborneMonster          =    No
  17876.  
  17877.     DamageNugget                        // A basic Nugget that just does damage
  17878.         Damage         = CREATE_A_HERO_FORCE_PUSH_DAMAGE_L2
  17879.         DamageArc     = 75
  17880.         Radius         = 110.0
  17881.         DamageType     = MAGIC
  17882.         DamageFXType = MAGIC
  17883.         DeathType     = EXPLODED
  17884.         DamageSpeed     = 700.0 // must    match the ShockWaveSpeed below
  17885.     End
  17886.     MetaImpactNugget                    // A Nugget that throws things back with force
  17887. //        HeroResist          =    .75
  17888.         ShockWaveAmount      =    75.0
  17889.         ShockWaveArc      =    75
  17890.         ShockWaveRadius      =    110.0
  17891.         ShockWaveTaperOff =    0.75
  17892.         ShockWaveZMult      =    1.000
  17893.         ShockWaveSpeed      =    700.0 
  17894.     End
  17895. End
  17896.  
  17897. //------------------------------------------------------------------------------
  17898. Weapon ForcePush_Level3 // small microwave push
  17899.     IdleAfterFiringDelay      =    0
  17900.     LeechRangeWeapon          =    Yes
  17901.     AttackRange                  =    CREATE_A_HERO_FORCE_PUSH_RANGE_L3
  17902.     WeaponSpeed                  =    401            // dist/sec 
  17903.     RadiusDamageAffects          =    ENEMIES    NEUTRALS NOT_SIMILAR
  17904.     DelayBetweenShots          =    5000               // time between shots, msec
  17905.     PreAttackDelay              =    100
  17906.     PreAttackType              =    PER_ATTACK // Do    the    delay each time    we attack a    new    target
  17907.     FireFX                      =    FX_WizardTelekinesis    // CASEY TODO New FX for this power
  17908.     FiringDuration              =    100
  17909.     DamageDealtAtSelfPosition =    Yes    
  17910.     IsAimingWeapon              =    Yes
  17911.     AcceptableAimDelta          =    15
  17912.     AntiAirborneVehicle          =    No
  17913.     AntiAirborneMonster          =    No
  17914.  
  17915.     DamageNugget                        // A basic Nugget that just does damage
  17916.         Damage         = CREATE_A_HERO_FORCE_PUSH_DAMAGE_L3
  17917.         DamageArc     = 75
  17918.         Radius         = 110.0
  17919.         DamageType     = MAGIC
  17920.         DamageFXType = MAGIC
  17921.         DeathType     = EXPLODED
  17922.         DamageSpeed     = 700.0 // must    match the ShockWaveSpeed below
  17923.     End
  17924.     MetaImpactNugget                    // A Nugget that throws things back with force
  17925. //        HeroResist          =    .75
  17926.         ShockWaveAmount      =    75.0
  17927.         ShockWaveArc      =    75
  17928.         ShockWaveRadius      =    110.0
  17929.         ShockWaveTaperOff =    0.75
  17930.         ShockWaveZMult      =    1.000
  17931.         ShockWaveSpeed      =    700.0 
  17932.     End
  17933. End
  17934.  
  17935.  
  17936. //------------------------------------------------------------------------------
  17937. Weapon WordOfDoom 
  17938.     LeechRangeWeapon      =    Yes
  17939.     AttackRange              =    SARUMAN_FIREBALL_RANGE        // set this in his special power
  17940.     WeaponSpeed              =    150            // dist/sec 
  17941.     MinWeaponSpeed          =    100
  17942.     MaxWeaponSpeed          =    200            // dist/sec    Upper limit    on scaling,    when attacking past    nominal    "max" range
  17943.     ScaleWeaponSpeed      =    Yes            // Used    for    lob    weapons, scales    speed proportional to range
  17944.     HitPercentage          =    100            //When this    weapon is used it will hit exactly 100%    of the time.
  17945.     ScatterRadius          =    0.0            //When this weapon misses it    can    randomly miss by as    much as    this distance.
  17946.     DelayBetweenShots      =    5000        // time    between    shots, msec
  17947.     PreAttackDelay          =    1            //    1467 is    the    prep time for archer.
  17948.     PreAttackRandomAmount =    0            // amount    of additional preattack    variance for archer    type attacks only  
  17949.     PreAttackType          =    PER_SHOT    // Do the delay    each time we attack    a new target
  17950.     FiringDuration          =    1            //    Duration of    the    archer firing shot is 500ms.
  17951.     IsAimingWeapon          =    Yes
  17952.     AcceptableAimDelta      =    15
  17953.     AntiAirborneVehicle      =    Yes
  17954.     AntiAirborneMonster      =    Yes
  17955.     FireFX                  =    FX_SarumanFireball
  17956.     DamageType              =    HERO_RANGED
  17957.   
  17958.     //ProjectileNugget                    // Default arrow
  17959.     //    ProjectileTemplateName  = SarumanFireballProjectile
  17960.     //    WarheadTemplateName     = SarumanFireballWarhead
  17961.     //End
  17962.     DamageNugget                        // A basic Nugget that just does damage
  17963.         Damage         = CREATE_A_HERO_FORCE_PUSH_DAMAGE_L3
  17964.         DamageArc     = 75
  17965.         Radius         = 110.0
  17966.         DamageType     = MAGIC
  17967.         DamageFXType = UNDEFINED    //    MAGIC
  17968.         DeathType     = NORMAL        //    EXPLODED
  17969.         DamageSpeed     = 700.0 // must match the ShockWaveSpeed below
  17970.     End
  17971.  
  17972. End
  17973.  
  17974. //    TODO: fix this for archer create a heroes to work like lurtz cripple strike
  17975. //------------------------------------------------------------------------------
  17976. Weapon CreateAHeroCrippleStrikeRanged_Level1                     //    BALANCE    Archer Weapon // orc archer
  17977.     AttackRange                = CREATE_A_HERO_CRIPPLE_RANGED_RANGE //    LURTZ_BOW_STUN_RANGE //    350    // Horde member    so it needs    to be bigger than the horde    weapon attack range.
  17978.     WeaponSpeed                = 300                                 //    dist/sec 
  17979.     MinWeaponSpeed            = 121
  17980.     MaxWeaponSpeed            = 400                                 //    dist/sec Upper limit on    scaling, when attacking    past nominal "max" range
  17981.     FireFX                    = FX_LurtzCripplingStrike 
  17982.     ScaleWeaponSpeed        = Yes                                 //    Used for lob weapons, scales speed proportional    to range
  17983.     HitPercentage            = 100                                 //    When this weapon is    used it    will hit exactly 50% of    the    time.
  17984.     ScatterRadius            = 0.0                                 //    When this weapon misses    it can randomly    miss by    as much    as this    distance.
  17985.     DelayBetweenShots        = 1100
  17986.     PreAttackDelay            = 1
  17987.     PreAttackType            = PER_SHOT                             //    Do the delay each time we attack a new target
  17988.     FiringDuration            = 1000                                 //    Duration of    the    archer firing shot is 500ms.
  17989.     IdleAfterFiringDelay    = 1000
  17990.     // HoldAfterFiringDelay    = 1000 // 
  17991.  
  17992.     AntiAirborneVehicle        = Yes
  17993.     AntiAirborneMonster        = Yes
  17994.  
  17995.     ProjectileNugget            // Fire arrow available through fire upgrade
  17996.         ProjectileTemplateName  = LurtzArrowProjectile
  17997.         WarheadTemplateName     = CreateAHeroCrippleStrikeRangedWarhead_Level1
  17998.         SpecialObjectFilter        = ALL -MACHINE
  17999.     End
  18000. End
  18001.  
  18002. //------------------------------------------------------------------------------
  18003. Weapon CreateAHeroCrippleStrikeRangedWarhead_Level1
  18004.     ProjectileCollidesWith = ENEMIES NEUTRAL
  18005.     RadiusDamageAffects       = ENEMIES NEUTRALS 
  18006.     HitStoredTarget           = Yes   // Always    hits initial target.
  18007.     
  18008.     DamageNugget
  18009.         Damage                = CREATE_A_HERO_CRIPPLE_RANGED_DAMAGE_L1                                               
  18010.         Radius                = 0.0  // HitStoredTarget means    we hurt    the    person we launched at.    And    nobody else.  So a miss    hurts nobody.
  18011.         DamageType            = HERO_RANGED
  18012.         DamageFXType        = EVIL_ARROW_PIERCE
  18013.         DeathType            = NORMAL
  18014.            DamageScalar        = 200% NONE +MordorFellBeast +MordorWitchKingOnFellBeast +GondorGwaihir +Drogoth +GondorGwaihir_Summoned +ElvenFortressEagle +SpellBookDragonStrikeDragon
  18015.     End
  18016.  
  18017.     AttributeModifierNugget
  18018.         AttributeModifier    = AttributeModCrippleStrike_Level1
  18019.         DamageFXType        = EVIL_ARROW_PIERCE    
  18020.         SpecialObjectFilter    = CRIPPLE_STRIKE_OBJECT_FILTER
  18021.     End
  18022. End
  18023.  
  18024. //    TODO: fix this for archer create a heroes to work like lurtz cripple strike
  18025. //------------------------------------------------------------------------------
  18026. Weapon CreateAHeroCrippleStrikeRanged_Level2                     //    BALANCE    Archer Weapon // orc archer
  18027.     AttackRange                = CREATE_A_HERO_CRIPPLE_RANGED_RANGE //    LURTZ_BOW_STUN_RANGE //    350    // Horde member    so it needs    to be bigger than the horde    weapon attack range.
  18028.     WeaponSpeed                = 300                                 //    dist/sec 
  18029.     MinWeaponSpeed            = 121
  18030.     MaxWeaponSpeed            = 400                                 //    dist/sec Upper limit on    scaling, when attacking    past nominal "max" range
  18031.     FireFX                    = FX_LurtzCripplingStrike 
  18032.     ScaleWeaponSpeed        = Yes                                 //    Used for lob weapons, scales speed proportional    to range
  18033.     HitPercentage            = 100                                 //    When this weapon is    used it    will hit exactly 50% of    the    time.
  18034.     ScatterRadius            = 0.0                                 //    When this weapon misses    it can randomly    miss by    as much    as this    distance.
  18035.     DelayBetweenShots        = 1100
  18036.     PreAttackDelay            = 1
  18037.     PreAttackType            = PER_SHOT                             //    Do the delay each time we attack a new target
  18038.     FiringDuration            = 1000                                 //    Duration of    the    archer firing shot is 500ms.
  18039.     IdleAfterFiringDelay    = 1000
  18040.     // HoldAfterFiringDelay    = 1000 // 
  18041.  
  18042.     AntiAirborneVehicle        = Yes
  18043.     AntiAirborneMonster        = Yes
  18044.  
  18045.     ProjectileNugget            // Fire arrow available through fire upgrade
  18046.         ProjectileTemplateName  = LurtzArrowProjectile
  18047.         WarheadTemplateName     = CreateAHeroCrippleStrikeRangedWarhead_Level2
  18048.         SpecialObjectFilter        = ALL -MACHINE
  18049.     End
  18050. End
  18051.  
  18052. //------------------------------------------------------------------------------
  18053. Weapon CreateAHeroCrippleStrikeRangedWarhead_Level2
  18054.     ProjectileCollidesWith = ENEMIES NEUTRAL
  18055.     RadiusDamageAffects       = ENEMIES NEUTRALS 
  18056.     HitStoredTarget           = Yes   // Always hits initial target.
  18057.  
  18058.     DamageNugget
  18059.         Damage                = CREATE_A_HERO_CRIPPLE_RANGED_DAMAGE_L2
  18060.         Radius                = 0.0  // HitStoredTarget means    we hurt    the    person we launched at.    And    nobody else.  So a miss    hurts nobody.
  18061.         DamageType            = HERO_RANGED
  18062.         DamageFXType        = EVIL_ARROW_PIERCE
  18063.         DeathType            = NORMAL
  18064.            DamageScalar        = 200% NONE +MordorFellBeast +MordorWitchKingOnFellBeast +GondorGwaihir +Drogoth +GondorGwaihir_Summoned +ElvenFortressEagle +SpellBookDragonStrikeDragon
  18065.     End
  18066.  
  18067.     AttributeModifierNugget
  18068.         AttributeModifier    = AttributeModCrippleStrike_Level2
  18069.         DamageFXType        = EVIL_ARROW_PIERCE    
  18070.         SpecialObjectFilter    = CRIPPLE_STRIKE_OBJECT_FILTER
  18071.     End            
  18072. End
  18073.  
  18074.  
  18075. //    TODO: fix this for archer create a heroes to work like lurtz cripple strike
  18076. //------------------------------------------------------------------------------
  18077. Weapon CreateAHeroCrippleStrikeRanged_Level3       // BALANCE Archer Weapon //orc archer
  18078.     AttackRange            = CREATE_A_HERO_CRIPPLE_RANGED_RANGE //    LURTZ_BOW_STUN_RANGE //    350    // Horde member    so it needs    to be bigger than the horde    weapon attack range.
  18079.     WeaponSpeed            = 300                                 //    dist/sec 
  18080.     MinWeaponSpeed        = 121
  18081.     MaxWeaponSpeed        = 400                                 //    dist/sec Upper limit on    scaling, when attacking    past nominal "max" range
  18082.     FireFX                = FX_LurtzCripplingStrike 
  18083.     ScaleWeaponSpeed    = Yes                                 //    Used for lob weapons, scales speed proportional    to range
  18084.     HitPercentage        = 100                                 //    When this weapon is    used it    will hit exactly 50% of    the    time.
  18085.     ScatterRadius        = 0.0                                 //    When this weapon misses    it can randomly    miss by    as much    as this    distance.
  18086.     DelayBetweenShots    = 1100
  18087.     PreAttackDelay        = 1
  18088.     PreAttackType        = PER_SHOT                             //    Do the delay each time we attack a new target
  18089.     FiringDuration        = 1000                                 //    Duration of    the    archer firing shot is 500ms.
  18090.     IdleAfterFiringDelay = 1000
  18091.                                                              //    HoldAfterFiringDelay = 1000    // 
  18092.  
  18093.     AntiAirborneVehicle    = Yes
  18094.     AntiAirborneMonster    = Yes
  18095.  
  18096.     ProjectileNugget            // Fire arrow available through fire upgrade
  18097.         ProjectileTemplateName  = LurtzArrowProjectile
  18098.         WarheadTemplateName     = CreateAHeroCrippleStrikeRangedWarhead_Level3
  18099.         SpecialObjectFilter        = ALL -MACHINE
  18100.     End
  18101. End
  18102.  
  18103. //------------------------------------------------------------------------------
  18104. Weapon CreateAHeroCrippleStrikeRangedWarhead_Level3
  18105.     ProjectileCollidesWith = ENEMIES NEUTRAL
  18106.     RadiusDamageAffects = ENEMIES NEUTRALS 
  18107.     HitStoredTarget = Yes    // Always hits initial target.
  18108.  
  18109.     DamageNugget
  18110.         Damage                = CREATE_A_HERO_CRIPPLE_RANGED_DAMAGE_L3
  18111.         Radius                = 0.0  // HitStoredTarget means    we hurt    the    person we launched at.    And    nobody else.  So a miss    hurts nobody.
  18112.         DamageType            = HERO_RANGED
  18113.         DamageFXType        = EVIL_ARROW_PIERCE
  18114.         DeathType            = NORMAL
  18115.            DamageScalar        = 200% NONE +MordorFellBeast +MordorWitchKingOnFellBeast +GondorGwaihir +Drogoth +GondorGwaihir_Summoned +ElvenFortressEagle +SpellBookDragonStrikeDragon
  18116.     End
  18117.  
  18118.     AttributeModifierNugget
  18119.         AttributeModifier        = AttributeModCrippleStrike_Level3
  18120.         DamageFXType             = EVIL_ARROW_PIERCE 
  18121.         SpecialObjectFilter      = CRIPPLE_STRIKE_OBJECT_FILTER
  18122.     End
  18123. End
  18124.  
  18125.  
  18126. //    TODO: fix this for archer create a heroes to work like lurtz cripple strike
  18127. //------------------------------------------------------------------------------
  18128. Weapon CreateAHeroCrippleStrikeRanged_Level4       // BALANCE Archer Weapon //orc archer
  18129.     AttackRange            = CREATE_A_HERO_CRIPPLE_RANGED_RANGE //    LURTZ_BOW_STUN_RANGE //    350    // Horde member    so it needs    to be bigger than the horde    weapon attack range.
  18130.     WeaponSpeed            = 300                                 //    dist/sec 
  18131.     MinWeaponSpeed        = 121
  18132.     MaxWeaponSpeed        = 400                                 //    dist/sec Upper limit on    scaling, when attacking    past nominal "max" range
  18133.     FireFX                = FX_LurtzCripplingStrike 
  18134.     ScaleWeaponSpeed    = Yes                                 //    Used for lob weapons, scales speed proportional    to range
  18135.     HitPercentage        = 100                                 //    When this weapon is    used it    will hit exactly 50% of    the    time.
  18136.     ScatterRadius        = 0.0                                 //    When this weapon misses    it can randomly    miss by    as much    as this    distance.
  18137.     DelayBetweenShots    = 1100
  18138.     PreAttackDelay        = 1
  18139.     PreAttackType        = PER_SHOT                             //    Do the delay each time we attack a new target
  18140.     FiringDuration        = 1000                                 //    Duration of    the    archer firing shot is 500ms.
  18141.     IdleAfterFiringDelay = 1000
  18142.                                                              //    HoldAfterFiringDelay = 1000    // 
  18143.  
  18144.     AntiAirborneVehicle    = Yes
  18145.     AntiAirborneMonster    = Yes
  18146.  
  18147.     ProjectileNugget            // Fire arrow available through fire upgrade
  18148.         ProjectileTemplateName  = LurtzArrowProjectile
  18149.         WarheadTemplateName     = CreateAHeroCrippleStrikeRangedWarhead_Level4
  18150.         SpecialObjectFilter        = ALL -MACHINE
  18151.     End
  18152. End
  18153.  
  18154. //------------------------------------------------------------------------------
  18155. Weapon CreateAHeroCrippleStrikeRangedWarhead_Level4
  18156.     ProjectileCollidesWith = ENEMIES NEUTRAL
  18157.     RadiusDamageAffects = ENEMIES NEUTRALS 
  18158.     HitStoredTarget = Yes    // Always hits initial target.
  18159.     
  18160.     DamageNugget
  18161.         Damage                = CREATE_A_HERO_CRIPPLE_RANGED_DAMAGE_L4
  18162.         Radius                = 0.0  // HitStoredTarget means    we hurt    the    person we launched at.    And    nobody else.  So a miss    hurts nobody.
  18163.         DamageType            = HERO_RANGED
  18164.         DamageFXType        = EVIL_ARROW_PIERCE
  18165.         DeathType            = NORMAL
  18166.            DamageScalar        = 200% NONE +MordorFellBeast +MordorWitchKingOnFellBeast +GondorGwaihir +Drogoth +GondorGwaihir_Summoned +ElvenFortressEagle +SpellBookDragonStrikeDragon
  18167.     End
  18168.  
  18169.     AttributeModifierNugget
  18170.         AttributeModifier        = AttributeModCrippleStrike_Level4
  18171.         DamageFXType             = EVIL_ARROW_PIERCE 
  18172.         SpecialObjectFilter      = CRIPPLE_STRIKE_OBJECT_FILTER
  18173.     End
  18174. End
  18175.  
  18176. //------------------------------------------------------------------------------
  18177. Weapon CreateAHeroCrippleStrikeMelee_Level1       // BALANCE Archer Weapon //orc archer
  18178.     LeechRangeWeapon          =    Yes
  18179.     AttackRange                  =    30.0
  18180.     MeleeWeapon                  =    Yes
  18181.     //FireFX                      =    FX_LurtzCripplingStrike    //FX_GondorSwordHit
  18182.     DelayBetweenShots          =    GLOIN_DELAYBETWEENSHOTS    // time between shots, msec
  18183.     PreAttackDelay              =    GLOIN_PREATTACKDELAY    // 433 is natural time of the stabbing animation.
  18184.     PreAttackType              =    PER_SHOT                // Do the delay    each time we attack    a new target
  18185.     FiringDuration              =    GLOIN_FIRINGDURATION    // min 600 for anim
  18186.  
  18187.     // Hero damage.
  18188.     DamageNugget                                        // A basic Nugget that just does damage
  18189.         Damage            = CREATE_A_HERO_CRIPPLE_MELEE_DAMAGE_L1
  18190.         Radius            = 0.0
  18191.         DelayTime        = 0
  18192.         DamageType        = HERO
  18193.         DamageFXType    = MAGIC
  18194.         DeathType        = NORMAL
  18195.     End
  18196.     // Cripple.
  18197.     AttributeModifierNugget
  18198.         AttributeModifier        = AttributeModCrippleStrike_Level1
  18199.         DamageFXType             = SWORD_SLASH 
  18200.         SpecialObjectFilter      = CRIPPLE_STRIKE_OBJECT_FILTER
  18201.     End            
  18202.  
  18203. End
  18204.  
  18205. //------------------------------------------------------------------------------
  18206. Weapon CreateAHeroCrippleStrikeMelee_Level2       // BALANCE Archer Weapon //orc archer
  18207.     LeechRangeWeapon          =    Yes
  18208.     AttackRange                  =    30.0
  18209.     MeleeWeapon                  =    Yes
  18210.     //FireFX                      =    FX_LurtzCripplingStrike    //FX_GondorSwordHit
  18211.     DelayBetweenShots          =    GLOIN_DELAYBETWEENSHOTS    // time between shots, msec
  18212.     PreAttackDelay              =    GLOIN_PREATTACKDELAY    // 433 is natural time of the stabbing animation.
  18213.     PreAttackType              =    PER_SHOT                // Do the delay    each time we attack    a new target
  18214.     FiringDuration              =    GLOIN_FIRINGDURATION    // min 600 for anim
  18215.  
  18216.     // Hero damage.
  18217.     DamageNugget                                        // A basic Nugget that just does damage
  18218.         Damage            = CREATE_A_HERO_CRIPPLE_MELEE_DAMAGE_L2
  18219.         Radius            = 0.0
  18220.         DelayTime        = 0
  18221.         DamageType        = HERO
  18222.         DamageFXType    = MAGIC
  18223.         DeathType        = NORMAL
  18224.     End
  18225.     // Cripple.
  18226.     AttributeModifierNugget
  18227.         AttributeModifier        = AttributeModCrippleStrike_Level2
  18228.         DamageFXType             = SWORD_SLASH 
  18229.         SpecialObjectFilter      = CRIPPLE_STRIKE_OBJECT_FILTER
  18230.     End            
  18231.  
  18232. End
  18233.  
  18234. //------------------------------------------------------------------------------
  18235. Weapon CreateAHeroCrippleStrikeMelee_Level3      // BALANCE Archer Weapon //orc archer
  18236.     LeechRangeWeapon          =    Yes
  18237.     AttackRange                  =    30.0
  18238.     MeleeWeapon                  =    Yes
  18239.     //FireFX                      =    FX_LurtzCripplingStrike    //FX_GondorSwordHit
  18240.     DelayBetweenShots          =    GLOIN_DELAYBETWEENSHOTS    // time between shots, msec
  18241.     PreAttackDelay              =    GLOIN_PREATTACKDELAY    // 433 is natural time of the stabbing animation.
  18242.     PreAttackType              =    PER_SHOT                // Do the delay    each time we attack    a new target
  18243.     FiringDuration              =    GLOIN_FIRINGDURATION    // min 600 for anim
  18244.  
  18245.     // Hero damage.
  18246.     DamageNugget                                        // A basic Nugget that just does damage
  18247.         Damage            = CREATE_A_HERO_CRIPPLE_MELEE_DAMAGE_L3
  18248.         Radius            = 0.0
  18249.         DelayTime        = 0
  18250.         DamageType        = HERO
  18251.         DamageFXType    = MAGIC
  18252.         DeathType        = NORMAL
  18253.     End
  18254.     // Cripple.
  18255.     AttributeModifierNugget
  18256.         AttributeModifier        = AttributeModCrippleStrike_Level3
  18257.         DamageFXType             = SWORD_SLASH 
  18258.         SpecialObjectFilter      = CRIPPLE_STRIKE_OBJECT_FILTER
  18259.     End            
  18260.  
  18261. End
  18262.  
  18263. //------------------------------------------------------------------------------
  18264. Weapon CreateAHeroCrippleStrikeMelee_Level4       // BALANCE Archer Weapon //orc archer
  18265.     LeechRangeWeapon          =    Yes
  18266.     AttackRange                  =    30.0
  18267.     MeleeWeapon                  =    Yes
  18268.     //FireFX                      =    FX_LurtzCripplingStrike    //FX_GondorSwordHit
  18269.     DelayBetweenShots          =    GLOIN_DELAYBETWEENSHOTS    // time between shots, msec
  18270.     PreAttackDelay              =    GLOIN_PREATTACKDELAY    // 433 is natural time of the stabbing animation.
  18271.     PreAttackType              =    PER_SHOT                // Do the delay    each time we attack    a new target
  18272.     FiringDuration              =    GLOIN_FIRINGDURATION    // min 600 for anim
  18273.  
  18274.     // Hero damage.
  18275.     DamageNugget                                        // A basic Nugget that just does damage
  18276.         Damage            = CREATE_A_HERO_CRIPPLE_MELEE_DAMAGE_L4
  18277.         Radius            = 0.0
  18278.         DelayTime        = 0
  18279.         DamageType        = HERO
  18280.         DamageFXType    = MAGIC
  18281.         DeathType        = NORMAL
  18282.     End
  18283.     // Cripple.
  18284.     AttributeModifierNugget
  18285.         AttributeModifier        = AttributeModCrippleStrike_Level4
  18286.         DamageFXType             = SWORD_SLASH 
  18287.         SpecialObjectFilter      = CRIPPLE_STRIKE_OBJECT_FILTER
  18288.     End            
  18289.  
  18290. End
  18291.  
  18292. //------------------------------------------------------------------------------
  18293. Weapon CreateAHero_AttachSpy_Level1
  18294.  
  18295.     LeechRangeWeapon            = Yes
  18296.     AttackRange                    = CREATE_A_HERO_SPY_RANGE_L1        // set this in his special power
  18297.     WeaponSpeed                    = 300       // dist/sec 
  18298.     MinWeaponSpeed                = 300
  18299.     MaxWeaponSpeed                = 300        // dist/sec Upper limit on scaling, when attacking past nominal "max" range
  18300.     ScaleWeaponSpeed            = Yes        // Used for lob weapons, scales speed proportional to range
  18301.     HitPercentage                = 100        // When this weapon is used it will hit exactly 100% of the time.
  18302.     ScatterRadius                = 0.0        // When this weapon misses it can randomly miss by as much as this distance.
  18303.     DelayBetweenShots            = 5000        // time between shots, msec
  18304.     PreAttackDelay                = 1
  18305.     PreAttackRandomAmount        = 0            // amount of additional preattack variance for archer type attacks only  
  18306.     PreAttackType                = PER_SHOT    // Do the delay each time we attack a new target
  18307.     FiringDuration                = 1            // Duration of the archer firing shot is 500ms.
  18308.     AcceptableAimDelta            = 15
  18309.     AntiAirborneVehicle            = Yes
  18310.     AntiAirborneMonster            = Yes
  18311.     DamageType                    = MAGIC        // No damage so doesn't really matter.
  18312.  
  18313.     ProjectileNugget
  18314.         ProjectileTemplateName  = CreateAHero_AttachSpy_Projectile
  18315.         WarheadTemplateName     = CreateAHero_AttachSpyWarhead_Level1
  18316.     End
  18317. End
  18318.  
  18319. //----------------------------
  18320. Weapon CreateAHero_AttachSpyWarhead_Level1
  18321.  
  18322.     ProjectileCollidesWith    = ENEMIES NEUTRAL STRUCTURES WALLS
  18323.     HitStoredTarget            = No                                        // otherwise we cast it on ourselves...
  18324.  
  18325.     WeaponOCLNugget
  18326.         WeaponOCLName = OCL_CreateAHeroSpawnSpy_Level1
  18327.     End
  18328.  
  18329. End
  18330.  
  18331. //------------------------------------------------------------------------------
  18332. Weapon CreateAHero_AttachSpy_Level2
  18333.  
  18334.     LeechRangeWeapon            = Yes
  18335.     AttackRange                    = CREATE_A_HERO_SPY_RANGE_L2        // set this in his special power
  18336.     WeaponSpeed                    = 300       // dist/sec 
  18337.     MinWeaponSpeed                = 300
  18338.     MaxWeaponSpeed                = 300        // dist/sec Upper limit on scaling, when attacking past nominal "max" range
  18339.     ScaleWeaponSpeed            = Yes        // Used for lob weapons, scales speed proportional to range
  18340.     HitPercentage                = 100        // When this weapon is used it will hit exactly 100% of the time.
  18341.     ScatterRadius                = 0.0        // When this weapon misses it can randomly miss by as much as this distance.
  18342.     DelayBetweenShots            = 5000        // time between shots, msec
  18343.     PreAttackDelay                = 1
  18344.     PreAttackRandomAmount        = 0            // amount of additional preattack variance for archer type attacks only  
  18345.     PreAttackType                = PER_SHOT    // Do the delay each time we attack a new target
  18346.     FiringDuration                = 1            // Duration of the archer firing shot is 500ms.
  18347.     AcceptableAimDelta            = 15
  18348.     AntiAirborneVehicle            = Yes
  18349.     AntiAirborneMonster            = Yes
  18350.     DamageType                    = MAGIC        // No damage so doesn't really matter.
  18351.  
  18352.     ProjectileNugget
  18353.         ProjectileTemplateName  = CreateAHero_AttachSpy_Projectile
  18354.         WarheadTemplateName     = CreateAHero_AttachSpyWarhead_Level2
  18355.     End
  18356. End
  18357.  
  18358. //----------------------------
  18359. Weapon CreateAHero_AttachSpyWarhead_Level2
  18360.  
  18361.     ProjectileCollidesWith    = ENEMIES NEUTRAL STRUCTURES WALLS
  18362.     HitStoredTarget            = No                                        // otherwise we cast it on ourselves...
  18363.  
  18364.     WeaponOCLNugget
  18365.         WeaponOCLName = OCL_CreateAHeroSpawnSpy_Level2
  18366.     End
  18367.  
  18368. End
  18369.  
  18370. //------------------------------------------------------------------------------
  18371. Weapon CreateAHeroSpear
  18372.     AttackRange             = 300.0
  18373.     LeechRangeWeapon        = Yes
  18374.     WeaponSpeed                = 261                // dist/sec 
  18375.     MinWeaponSpeed            = 161
  18376.     MaxWeaponSpeed             = 301                // dist/sec Upper limit on scaling, when attacking past nominal "max" range
  18377.     FireFX                     = FX_EomerSpearThrow
  18378.     ScaleWeaponSpeed         = Yes                // Used for lob weapons, scales speed proportional to range
  18379.     HitPercentage            = 100
  18380.     ScatterRadius             = 0.0                //When this weapon misses it can randomly miss by as much as this distance.
  18381.     AntiAirborneVehicle     = Yes
  18382.     AntiAirborneMonster        = Yes
  18383.  
  18384.     PreAttackDelay            = 1
  18385.     PreAttackType            = PER_SHOT            // Do the delay each time we attack a new target
  18386.     FiringDuration            = 2000            // Duration of the archer firing shot is 500ms.
  18387.     HoldAfterFiringDelay    = 2000
  18388.  
  18389.     ProjectileNugget                        // A Nugget that creates an Object and sends it to the target with a Warhead
  18390.         ProjectileTemplateName    = RohanEomerSpearProjectile
  18391.         WarheadTemplateName        = RohanEomerSpearWarhead
  18392.     End
  18393.  
  18394.     ProjectileNugget                        // A Nugget that creates an Object and sends it to the target with a Warhead
  18395.         ProjectileTemplateName    = RohanEomerSpearProjectile
  18396.         WarheadTemplateName        = RohanEomerSpearWarhead
  18397.     End
  18398.  
  18399.     ProjectileNugget                        // A Nugget that creates an Object and sends it to the target with a Warhead
  18400.         ProjectileTemplateName    = RohanEomerSpearProjectile
  18401.         WarheadTemplateName        = RohanEomerSpearWarhead
  18402.     End
  18403. End
  18404.  
  18405. //------------------------------------------------------------------------------
  18406. Weapon CreateAHeroWordOfPower // Big Blue Ring Blast
  18407.     IdleAfterFiringDelay = 0
  18408.     AttackRange = GANDALF_WORD_OF_POWER_RANGE
  18409.     MinimumAttackRange = 0.8
  18410.     WeaponSpeed = 401         // dist/sec 
  18411.     MinWeaponSpeed = 241
  18412.     MaxWeaponSpeed = 601      // dist/sec Upper limit on scaling, when attacking past nominal "max" range
  18413.     ScaleWeaponSpeed = Yes // Used for lob weapons, scales speed proportional to range
  18414.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  18415.     DelayBetweenShots = 5000               // time between shots, msec
  18416.     PreAttackDelay        = 2600
  18417.     PreAttackType         = PER_ATTACK // Do the delay each time we attack a new target
  18418.     PreAttackFX           = FX_CreateAHeroPreAttackBlast
  18419.     FireFX                = FX_GandalfBlast
  18420.     FiringDuration      = 1400
  18421.     DamageNugget                        // A basic Nugget that just does damage
  18422.         Damage            = GANDALF_WORD_OF_POWER_DAMAGE
  18423.         Radius            = 250.0
  18424.         DamageType        = MAGIC
  18425.         DamageFXType    = MAGIC
  18426.         DeathType        = EXPLODED
  18427.         DamageSpeed        = 700.0 // must match the ShockWaveSpeed below
  18428.     End
  18429.     MetaImpactNugget                    // A Nugget that throws things back with force
  18430. //        HeroResist            = .75
  18431.         ShockWaveAmount   = 70.0
  18432.         ShockWaveRadius   = 500.0
  18433.         ShockWaveTaperOff = 1.0
  18434.         ShockWaveZMult    = 1.000
  18435.         ShockWaveSpeed      = 700.0 
  18436.     End
  18437. End
  18438.  
  18439. //------------------------------------------------------------------------------
  18440. Weapon EregionForgeLevel3Weapon
  18441.     AttackRange         = ELVEN_MIRKWOOD_ARCHER_RANGE    // increased range
  18442.     WeaponSpeed            = 321         // dist/sec 
  18443.     MinWeaponSpeed      = 241
  18444.     MaxWeaponSpeed      = 481      // dist/sec Upper limit on scaling, when attacking past nominal "max" range
  18445.     FireFX              = FX_RohanArcherBowWeapon
  18446.     ScaleWeaponSpeed    = Yes // Used for lob weapons, scales speed proportional to range
  18447.     HitPercentage       = 100     //When this weapon is used it will hit exactly 50% of the time.
  18448.     ScatterRadius       = 16.0     //When this weapon misses it can randomly miss by as much as this distance.
  18449.  
  18450.     AcceptableAimDelta    = 360    // prevent twitchy reaiming in horde on horde
  18451.     DelayBetweenShots   = 0
  18452.     PreAttackDelay      = ROHAN_YEOMAN_PREATTACKDELAY  
  18453.     PreAttackRandomAmount     = 200  
  18454.     PreAttackType       = PER_POSITION
  18455.     FiringDuration      = 0   
  18456.  
  18457.     ClipSize            = 1
  18458.     AutoReloadsClip        = Yes
  18459.     AutoReloadWhenIdle    = 1    
  18460.     ClipReloadTime        = Min:ROHAN_YEOMAN_BOW_RELOADTIME_MIN Max:ROHAN_YEOMAN_BOW_RELOADTIME_MAX
  18461.     ContinuousFireOne    = 0
  18462.     ContinuousFireCoast    = ROHAN_YEOMAN_BOW_RELOADTIME_MAX 
  18463.  
  18464.     AntiAirborneVehicle    = Yes
  18465.     AntiAirborneMonster    = Yes
  18466.     HitPassengerPercentage    = 20%
  18467.     CanBeDodged                = Yes // Will check for a DodgePercent on the target to have a second chance at failing HitPercent
  18468.  
  18469.     ProjectileNugget    // Default arrow
  18470.         ProjectileTemplateName  = MirkwoodArcherSilverthornProjectile
  18471.         WarheadTemplateName     = MirkwoodArcherSilverthornBowWarhead
  18472.     End
  18473. End
  18474.  
  18475. //------------------------------------------------------------------------------
  18476. Weapon CreateAHeroSpillOil_Level1
  18477.     FireLogicNugget
  18478.         LogicType        = INCREASE_FUEL
  18479.         Radius            = CREATE_A_HERO_SPILL_OIL_RADIUS_L1
  18480.         Damage            = CREATE_A_HERO_SPILL_OIL_AMOUNT_L1
  18481.         MinMaxBurnRate    = CREATE_A_HERO_SPILL_OIL_MINMAXBURNRATE_L1
  18482.         MaxResistance    = CREATE_A_HERO_SPILL_OIL_MAX_RESISTANCE_L1
  18483.     End
  18484. End
  18485.  
  18486. //------------------------------------------------------------------------------
  18487. Weapon CreateAHeroSpillOil_Level2
  18488.     FireLogicNugget
  18489.         LogicType        = INCREASE_FUEL
  18490.         Radius            = CREATE_A_HERO_SPILL_OIL_RADIUS_L2
  18491.         Damage            = CREATE_A_HERO_SPILL_OIL_AMOUNT_L2
  18492.         MinMaxBurnRate    = CREATE_A_HERO_SPILL_OIL_MINMAXBURNRATE_L2
  18493.         MaxResistance    = CREATE_A_HERO_SPILL_OIL_MAX_RESISTANCE_L2
  18494.     End
  18495. End
  18496.  
  18497. //------------------------------------------------------------------------------
  18498. Weapon CreateAHeroSpillOil_Level3
  18499.     FireLogicNugget
  18500.         LogicType        = INCREASE_FUEL
  18501.         Radius            = CREATE_A_HERO_SPILL_OIL_RADIUS_L3
  18502.         Damage            = CREATE_A_HERO_SPILL_OIL_AMOUNT_L3
  18503.         MinMaxBurnRate    = CREATE_A_HERO_SPILL_OIL_MINMAXBURNRATE_L3
  18504.         MaxResistance    = CREATE_A_HERO_SPILL_OIL_MAX_RESISTANCE_L3
  18505.     End
  18506. End
  18507.  
  18508. //------------------------------------------------------------------------------
  18509. Weapon CreateAHeroIgniteOil_Level1
  18510.     FireLogicNugget
  18511.         LogicType        = INCREASE_BURN_RATE
  18512.         Radius            = CREATE_A_HERO_IGNITE_OIL_RADIUS_L1
  18513.         Damage            = CREATE_A_HERO_IGNITE_OIL_AMOUNT_L1
  18514.     End
  18515. End
  18516.  
  18517. //------------------------------------------------------------------------------
  18518. Weapon CreateAHeroIgniteOil_Level2
  18519.     FireLogicNugget
  18520.         LogicType        = INCREASE_BURN_RATE
  18521.         Radius            = CREATE_A_HERO_IGNITE_OIL_RADIUS_L2
  18522.         Damage            = CREATE_A_HERO_IGNITE_OIL_AMOUNT_L2
  18523.     End
  18524. End
  18525.  
  18526. //------------------------------------------------------------------------------
  18527. Weapon CreateAHeroIgniteOil_Level3
  18528.     FireLogicNugget
  18529.         LogicType        = INCREASE_BURN_RATE
  18530.         Radius            = CREATE_A_HERO_IGNITE_OIL_RADIUS_L3
  18531.         Damage            = CREATE_A_HERO_IGNITE_OIL_AMOUNT_L3
  18532.     End
  18533. End
  18534.  
  18535. //------------------------------------------------------------------------------
  18536. Weapon CreateAHeroTriggerIgniteOil
  18537.       DamageNugget
  18538.           SpecialObjectFilter = NONE +CreateAHeroBreadCrumb_Level1 +CreateAHeroBreadCrumb_Level2 +CreateAHeroBreadCrumb_Level3
  18539.         Damage        = 1000000
  18540.         Radius        = 1000000.0
  18541.         DelayTime     = 0
  18542.         DamageType    = FLAME
  18543.         DamageFXType  = FIRE1
  18544.         DeathType     = BURNED
  18545.     End
  18546. End
  18547.  
  18548. //------------------------------------------------------------------------------
  18549. Weapon CreateAHeroFireBomb_Level1
  18550.     AttackRange            = CREATE_A_HERO_FIRE_BOMB_ATTACK_RANGE_L1
  18551.     WeaponSpeed            = 100                                        // dist/sec 
  18552.     MinWeaponSpeed        = 121
  18553.     MaxWeaponSpeed        = 100                                        // dist/sec Upper limit on scaling, when attacking past nominal "max" range
  18554.     HitPercentage        = CREATE_A_HERO_FIRE_BOMB_HIT_PERCENTAGE    // When this weapon is used it will hit exactly 50% of the time.
  18555.     ScatterRadius        = CREATE_A_HERO_FIRE_BOMB_SCATTER_RADIUS    // When this weapon misses it can randomly miss by as much as this distance.
  18556.     //NoVictimNeeded        = Yes
  18557.  
  18558.     AcceptableAimDelta        = 20                                    // prevent twitchy reaiming in horde on horde
  18559.     DelayBetweenShots        = 0
  18560.     PreAttackDelay            = CREATE_A_HERO_FIRE_BOMB_PREATTACKDELAY
  18561.     PreAttackType            = PER_SHOT
  18562.     PreAttackRandomAmount    = CREATE_A_HERO_FIRE_BOMB_RANDOM_PREATTACK
  18563.     FiringDuration            = 0
  18564.  
  18565.     ClipSize            = INFINITE_CLIP_SIZE
  18566.     AutoReloadsClip        = Yes
  18567.     
  18568.     ProjectileNugget
  18569.         ProjectileTemplateName  = CorsairFireBombProjectile
  18570.         WarheadTemplateName     = CreateAHeroFireBombWarhead_Level1
  18571.     End
  18572. End
  18573.  
  18574. //------------------------------------------------------------------------------
  18575. Weapon CreateAHeroFireBombWarhead_Level1
  18576.     ProjectileCollidesWith    = ENEMIES
  18577.     RadiusDamageAffects        = ENEMIES NOT_SIMILAR 
  18578.  
  18579.     DamageNugget
  18580.         Damage            = CREATE_A_HERO_FIRE_BOMB_DAMAGE_L1
  18581.         Radius            = CREATE_A_HERO_FIRE_BOMB_RADIUS_L1
  18582.         DamageType        = FLAME
  18583.         DamageFXType    = FLAME
  18584.         DeathType        = BURNED
  18585.         AcceptDamageAdd = No
  18586.         DamageScalar    = 200% NONE +STRUCTURE        // more damage to buildings.
  18587.         DamageScalar    = 50000% NONE +MINE // Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  18588.     End
  18589.     
  18590.     FireLogicNugget
  18591.         LogicType        = INCREASE_BURN_RATE
  18592.         Radius            = 5
  18593.         Damage            = 20
  18594.     End    
  18595.  
  18596.     FireLogicNugget
  18597.         LogicType        = INCREASE_FUEL
  18598.         Radius            = 25
  18599.         Damage            = 1200
  18600.         MinMaxBurnRate    = 20
  18601.         MinDecay        = 1
  18602.         MaxResistance    = 0
  18603.     End    
  18604. End
  18605.  
  18606. //------------------------------------------------------------------------------
  18607. Weapon CreateAHeroFireBomb_Level2
  18608.     AttackRange            = CREATE_A_HERO_FIRE_BOMB_ATTACK_RANGE_L2
  18609.     WeaponSpeed            = 100                                        // dist/sec 
  18610.     MinWeaponSpeed        = 121
  18611.     MaxWeaponSpeed        = 100                                        // dist/sec Upper limit on scaling, when attacking past nominal "max" range
  18612.     HitPercentage        = CREATE_A_HERO_FIRE_BOMB_HIT_PERCENTAGE    // When this weapon is used it will hit exactly 50% of the time.
  18613.     ScatterRadius        = CREATE_A_HERO_FIRE_BOMB_SCATTER_RADIUS    // When this weapon misses it can randomly miss by as much as this distance.
  18614.     //NoVictimNeeded        = Yes
  18615.  
  18616.     AcceptableAimDelta        = 20                                    // prevent twitchy reaiming in horde on horde
  18617.     DelayBetweenShots        = 0
  18618.     PreAttackDelay            = CREATE_A_HERO_FIRE_BOMB_PREATTACKDELAY
  18619.     PreAttackType            = PER_SHOT
  18620.     PreAttackRandomAmount    = CREATE_A_HERO_FIRE_BOMB_RANDOM_PREATTACK
  18621.     FiringDuration            = 0
  18622.  
  18623.     ClipSize            = INFINITE_CLIP_SIZE
  18624.     AutoReloadsClip        = Yes
  18625.     
  18626.     ProjectileNugget
  18627.         ProjectileTemplateName  = CorsairFireBombProjectile
  18628.         WarheadTemplateName     = CreateAHeroFireBombWarhead_Level2
  18629.     End
  18630. End
  18631.  
  18632. //------------------------------------------------------------------------------
  18633. Weapon CreateAHeroFireBombWarhead_Level2
  18634.     ProjectileCollidesWith    = ENEMIES
  18635.     RadiusDamageAffects        = ENEMIES NOT_SIMILAR 
  18636.  
  18637.     DamageNugget
  18638.         Damage            = CREATE_A_HERO_FIRE_BOMB_DAMAGE_L2
  18639.         Radius            = CREATE_A_HERO_FIRE_BOMB_RADIUS_L2
  18640.         DamageType        = FLAME
  18641.         DamageFXType    = FLAME
  18642.         DeathType        = BURNED
  18643.         AcceptDamageAdd = No
  18644.         DamageScalar    = 200% NONE +STRUCTURE        // more damage to buildings.
  18645.         DamageScalar    = 50000% NONE +MINE // Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  18646.     End
  18647.     
  18648.     FireLogicNugget
  18649.         LogicType        = INCREASE_BURN_RATE
  18650.         Radius            = 5
  18651.         Damage            = 20
  18652.     End    
  18653.  
  18654.     FireLogicNugget
  18655.         LogicType        = INCREASE_FUEL
  18656.         Radius            = 25
  18657.         Damage            = 1200
  18658.         MinMaxBurnRate    = 20
  18659.         MinDecay        = 1
  18660.         MaxResistance    = 0
  18661.     End    
  18662. End
  18663.  
  18664. //------------------------------------------------------------------------------
  18665. Weapon CreateAHeroFireBomb_Level3
  18666.     AttackRange            = CREATE_A_HERO_FIRE_BOMB_ATTACK_RANGE_L3
  18667.     WeaponSpeed            = 100                                        // dist/sec 
  18668.     MinWeaponSpeed        = 121
  18669.     MaxWeaponSpeed        = 100                                        // dist/sec Upper limit on scaling, when attacking past nominal "max" range
  18670.     HitPercentage        = CREATE_A_HERO_FIRE_BOMB_HIT_PERCENTAGE    // When this weapon is used it will hit exactly 50% of the time.
  18671.     ScatterRadius        = CREATE_A_HERO_FIRE_BOMB_SCATTER_RADIUS    // When this weapon misses it can randomly miss by as much as this distance.
  18672.     //NoVictimNeeded        = Yes
  18673.  
  18674.     AcceptableAimDelta        = 20                                    // prevent twitchy reaiming in horde on horde
  18675.     DelayBetweenShots        = 0
  18676.     PreAttackDelay            = CREATE_A_HERO_FIRE_BOMB_PREATTACKDELAY
  18677.     PreAttackType            = PER_SHOT
  18678.     PreAttackRandomAmount    = CREATE_A_HERO_FIRE_BOMB_RANDOM_PREATTACK
  18679.     FiringDuration            = 0
  18680.  
  18681.     ClipSize            = INFINITE_CLIP_SIZE
  18682.     AutoReloadsClip        = Yes
  18683.     
  18684.     ProjectileNugget
  18685.         ProjectileTemplateName  = CorsairFireBombProjectile
  18686.         WarheadTemplateName     = CreateAHeroFireBombWarhead_Level3
  18687.     End
  18688. End
  18689.  
  18690. //------------------------------------------------------------------------------
  18691. Weapon CreateAHeroFireBombWarhead_Level3
  18692.     ProjectileCollidesWith    = ENEMIES
  18693.     RadiusDamageAffects        = ENEMIES NOT_SIMILAR 
  18694.  
  18695.     DamageNugget
  18696.         Damage            = CREATE_A_HERO_FIRE_BOMB_DAMAGE_L3
  18697.         Radius            = CREATE_A_HERO_FIRE_BOMB_RADIUS_L3
  18698.         DamageType        = FLAME
  18699.         DamageFXType    = FLAME
  18700.         DeathType        = BURNED
  18701.         AcceptDamageAdd = No
  18702.         DamageScalar    = 200% NONE +STRUCTURE        // more damage to buildings.
  18703.         DamageScalar    = 50000% NONE +MINE // Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  18704.     End
  18705.     
  18706.     FireLogicNugget
  18707.         LogicType        = INCREASE_BURN_RATE
  18708.         Radius            = 5
  18709.         Damage            = 20
  18710.     End    
  18711.  
  18712.     FireLogicNugget
  18713.         LogicType        = INCREASE_FUEL
  18714.         Radius            = 25
  18715.         Damage            = 1200
  18716.         MinMaxBurnRate    = 20
  18717.         MinDecay        = 1
  18718.         MaxResistance    = 0
  18719.     End    
  18720. End
  18721.  
  18722. //------------------------------------------------------------------------------
  18723. Weapon CreateAHeroFireBomb_Level4
  18724.     AttackRange            = CREATE_A_HERO_FIRE_BOMB_ATTACK_RANGE_L4
  18725.     WeaponSpeed            = 100                                        // dist/sec 
  18726.     MinWeaponSpeed        = 121
  18727.     MaxWeaponSpeed        = 100                                        // dist/sec Upper limit on scaling, when attacking past nominal "max" range
  18728.     HitPercentage        = CREATE_A_HERO_FIRE_BOMB_HIT_PERCENTAGE    // When this weapon is used it will hit exactly 50% of the time.
  18729.     ScatterRadius        = CREATE_A_HERO_FIRE_BOMB_SCATTER_RADIUS    // When this weapon misses it can randomly miss by as much as this distance.
  18730.     //NoVictimNeeded        = Yes
  18731.  
  18732.     AcceptableAimDelta        = 20                                    // prevent twitchy reaiming in horde on horde
  18733.     DelayBetweenShots        = 0
  18734.     PreAttackDelay            = CREATE_A_HERO_FIRE_BOMB_PREATTACKDELAY
  18735.     PreAttackType            = PER_SHOT
  18736.     PreAttackRandomAmount    = CREATE_A_HERO_FIRE_BOMB_RANDOM_PREATTACK
  18737.     FiringDuration            = 0
  18738.  
  18739.     ClipSize            = INFINITE_CLIP_SIZE
  18740.     AutoReloadsClip        = Yes
  18741.     
  18742.     ProjectileNugget
  18743.         ProjectileTemplateName  = CorsairFireBombProjectile
  18744.         WarheadTemplateName     = CreateAHeroFireBombWarhead_Level4
  18745.     End
  18746. End
  18747.  
  18748. //------------------------------------------------------------------------------
  18749. Weapon CreateAHeroFireBombWarhead_Level4
  18750.     ProjectileCollidesWith    = ENEMIES
  18751.     RadiusDamageAffects        = ENEMIES NOT_SIMILAR 
  18752.  
  18753.     DamageNugget
  18754.         Damage            = CREATE_A_HERO_FIRE_BOMB_DAMAGE_L4
  18755.         Radius            = CREATE_A_HERO_FIRE_BOMB_RADIUS_L4
  18756.         DamageType        = FLAME
  18757.         DamageFXType    = FLAME
  18758.         DeathType        = BURNED
  18759.         AcceptDamageAdd = No
  18760.         DamageScalar    = 200% NONE +STRUCTURE        // more damage to buildings.
  18761.         DamageScalar    = 50000% NONE +MINE // Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  18762.     End
  18763.     
  18764.     FireLogicNugget
  18765.         LogicType        = INCREASE_BURN_RATE
  18766.         Radius            = 5
  18767.         Damage            = 20
  18768.     End    
  18769.  
  18770.     FireLogicNugget
  18771.         LogicType        = INCREASE_FUEL
  18772.         Radius            = 25
  18773.         Damage            = 1200
  18774.         MinMaxBurnRate    = 20
  18775.         MinDecay        = 1
  18776.         MaxResistance    = 0
  18777.     End    
  18778. End
  18779.  
  18780. //------------------------------------------------------------------------------
  18781. Weapon CreateAHeroStealMoney
  18782.     LeechRangeWeapon            = Yes
  18783.     AttackRange                    = CREATE_A_HERO_STEAL_MONEY_RANGE
  18784.     MeleeWeapon                    = Yes
  18785.     FireFX                        = FX_CaHStealMoney        //Per Amir,  we are using the treasure pickup FX
  18786.     DelayBetweenShots            = CREATE_A_HERO_STEAL_MONEY_DELAYBETWEENSHOTS
  18787.     PreAttackDelay                = CREATE_A_HERO_STEAL_MONEY_PREATTACKDELAY   // 1467 is the prep time for archer.
  18788.     PreAttackType                = PER_SHOT // Do the delay each time we attack a new target
  18789.     FiringDuration                = CREATE_A_HERO_STEAL_MONEY_FIRINGDURATION    // Duration of the archer firing shot is 500ms.
  18790.  
  18791.     StealMoneyNugget
  18792.         //Level 1
  18793.         AmountStolenPerAttack    = CREATE_A_HERO_STEAL_MONEY_AMOUNT_L1
  18794.         SpecialObjectFilter        = CREATE_A_HERO_STEAL_MONEY_OBJECT_FILTER
  18795.         RequiredUpgradeNames    = Upgrade_CreateAHeroStealMoney_Level1
  18796.         ForbiddenUpgradeNames    = Upgrade_CreateAHeroStealMoney_Level2 Upgrade_CreateAHeroStealMoney_Level3
  18797.     End
  18798.     StealMoneyNugget
  18799.         //Level 2
  18800.         AmountStolenPerAttack    = CREATE_A_HERO_STEAL_MONEY_AMOUNT_L2
  18801.         SpecialObjectFilter        = CREATE_A_HERO_STEAL_MONEY_OBJECT_FILTER
  18802.         RequiredUpgradeNames    = Upgrade_CreateAHeroStealMoney_Level2
  18803.         ForbiddenUpgradeNames    = Upgrade_CreateAHeroStealMoney_Level3
  18804.     End
  18805.     StealMoneyNugget
  18806.         //Level 3
  18807.         AmountStolenPerAttack    = CREATE_A_HERO_STEAL_MONEY_AMOUNT_L3
  18808.         SpecialObjectFilter        = CREATE_A_HERO_STEAL_MONEY_OBJECT_FILTER
  18809.         RequiredUpgradeNames    = Upgrade_CreateAHeroStealMoney_Level3
  18810.     End
  18811. End
  18812.  
  18813. //------------------------------------------------------------------------------
  18814. Weapon CreateAHeroAssassinWeapon
  18815.     LeechRangeWeapon      = Yes
  18816.     AttackRange           = CREATE_A_HERO_ASSASSIN_RANGE
  18817.     MeleeWeapon           = Yes
  18818.     FireFX                = FX_CAHAssassin
  18819.     DelayBetweenShots     = CREATE_A_HERO_ASSASSIN_DELAYBETWEENSHOTS             // time between shots, msec
  18820.     PreAttackDelay        = CREATE_A_HERO_ASSASSIN_PREATTACKDELAY     // 400 is sword swing delay time before contact with target.
  18821.     PreAttackType         = PER_SHOT // Do the delay each time we attack a new target
  18822.     FiringDuration        = CREATE_A_HERO_ASSASSIN_FIRINGDURATION     // Duration of the sword swing
  18823.  
  18824.     DamageNugget                // A basic Nugget that just does damage
  18825.         Damage                    = CREATE_A_HERO_ASSASSIN_DAMAGE_L1
  18826.         Radius                    = 0.0
  18827.         DelayTime                = 0
  18828.         DamageType                = HERO
  18829.         DamageFXType            = SWORD_SLASH
  18830.         DeathType                = NORMAL
  18831.         RequiredUpgradeNames    = Upgrade_CreateAHeroAssassin_Level1
  18832.         ForbiddenUpgradeNames    = Upgrade_CreateAHeroAssassin_Level2 Upgrade_CreateAHeroAssassin_Level3 Upgrade_CreateAHeroAssassin_Level4
  18833.         SpecialObjectFilter      = CREATE_A_HERO_ASSASSIN_OBJECT_FILTER
  18834.     End
  18835.  
  18836.     DamageNugget                // A basic Nugget that just does damage
  18837.         Damage                    = CREATE_A_HERO_ASSASSIN_DAMAGE_L2
  18838.         Radius                    = 0.0
  18839.         DelayTime                = 0
  18840.         DamageType                = HERO
  18841.         DamageFXType            = SWORD_SLASH
  18842.         DeathType                = NORMAL
  18843.         RequiredUpgradeNames    = Upgrade_CreateAHeroAssassin_Level2
  18844.         ForbiddenUpgradeNames    = Upgrade_CreateAHeroAssassin_Level3 Upgrade_CreateAHeroAssassin_Level4
  18845.         SpecialObjectFilter      = CREATE_A_HERO_ASSASSIN_OBJECT_FILTER
  18846.     End
  18847.  
  18848.     DamageNugget                // A basic Nugget that just does damage
  18849.         Damage                    = CREATE_A_HERO_ASSASSIN_DAMAGE_L3
  18850.         Radius                    = 0.0
  18851.         DelayTime                = 0
  18852.         DamageType                = HERO
  18853.         DamageFXType            = SWORD_SLASH
  18854.         DeathType                = NORMAL
  18855.         RequiredUpgradeNames    = Upgrade_CreateAHeroAssassin_Level3
  18856.         ForbiddenUpgradeNames   = Upgrade_CreateAHeroAssassin_Level4
  18857.         SpecialObjectFilter      = CREATE_A_HERO_ASSASSIN_OBJECT_FILTER
  18858.     End
  18859.  
  18860.     DamageNugget                // A basic Nugget that just does damage
  18861.         Damage                    = CREATE_A_HERO_ASSASSIN_DAMAGE_L4
  18862.         Radius                    = 0.0
  18863.         DelayTime                = 0
  18864.         DamageType                = HERO
  18865.         DamageFXType            = SWORD_SLASH
  18866.         DeathType                = NORMAL
  18867.         RequiredUpgradeNames    = Upgrade_CreateAHeroAssassin_Level4
  18868.         SpecialObjectFilter      = CREATE_A_HERO_ASSASSIN_OBJECT_FILTER
  18869.     End
  18870. End
  18871.  
  18872. //------------------------------------------------------------------------------------------------------------------------------
  18873. Weapon CreateAHeroRainOfArrows_Level1
  18874.     AttackRange = CREATE_A_HERO_RAIN_OF_ARROWS_RANGE    //LEGOLAS_ARROWSTORM_RANGE
  18875.     WeaponSpeed = 561         // dist/sec 
  18876.     MinWeaponSpeed = 481
  18877.     MaxWeaponSpeed = 641      // dist/sec Upper limit on scaling, when attacking past nominal "max" range
  18878.     FireFX = FX_RohanArcherBowWeapon
  18879.     HitPercentage     = 100     //When this weapon is used it will hit exactly all of the time.
  18880.  
  18881.     ProjectileNugget                    // Default arrow
  18882.         ProjectileTemplateName = LegolasBowArrowStormProjectile
  18883.         WarheadTemplateName = CreateAHeroRainOfArrowsWarhead_Level1
  18884.     End
  18885. End
  18886.  
  18887. //------------------------------
  18888. Weapon CreateAHeroRainOfArrowsWarhead_Level1
  18889.     ProjectileCollidesWith =   STRUCTURES WALLS  
  18890.     RadiusDamageAffects =   ENEMIES NEUTRALS NOT_SIMILAR
  18891.     HitStoredTarget = Yes    // Always hits initial target.
  18892.     DamageNugget                        // A basic Nugget that just does damage
  18893.         Damage        = CREATE_A_HERO_RAIN_OF_ARROWS_DAMAGE_L1        //LEGOLAS_ARROWSTORM_DAMAGE
  18894.         Radius        = 0.0    // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  18895.         DelayTime     = 0
  18896.         DamageType    = HERO_RANGED
  18897.         DamageFXType  = GOOD_ARROW_PIERCE
  18898.         DeathType     = NORMAL
  18899.         AcceptDamageAdd = No
  18900.     End
  18901. End
  18902.  
  18903. //------------------------------------------------------------------------------------------------------------------------------
  18904. Weapon CreateAHeroRainOfArrows_Level2
  18905.     AttackRange = CREATE_A_HERO_RAIN_OF_ARROWS_RANGE    //LEGOLAS_ARROWSTORM_RANGE
  18906.     WeaponSpeed = 561         // dist/sec 
  18907.     MinWeaponSpeed = 481
  18908.     MaxWeaponSpeed = 641      // dist/sec Upper limit on scaling, when attacking past nominal "max" range
  18909.     FireFX = FX_RohanArcherBowWeapon
  18910.     HitPercentage     = 100     //When this weapon is used it will hit exactly all of the time.
  18911.  
  18912.     ProjectileNugget                    // Default arrow
  18913.         ProjectileTemplateName = LegolasBowArrowStormProjectile
  18914.         WarheadTemplateName = CreateAHeroRainOfArrowsWarhead_Level2
  18915.     End
  18916. End
  18917.  
  18918. //------------------------------
  18919. Weapon CreateAHeroRainOfArrowsWarhead_Level2
  18920.     ProjectileCollidesWith =   STRUCTURES WALLS  
  18921.     RadiusDamageAffects =   ENEMIES NEUTRALS NOT_SIMILAR
  18922.     HitStoredTarget = Yes    // Always hits initial target.
  18923.     DamageNugget                        // A basic Nugget that just does damage
  18924.         Damage        = CREATE_A_HERO_RAIN_OF_ARROWS_DAMAGE_L2        //LEGOLAS_ARROWSTORM_DAMAGE
  18925.         Radius        = 0.0    // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  18926.         DelayTime     = 0
  18927.         DamageType    = HERO_RANGED
  18928.         DamageFXType  = GOOD_ARROW_PIERCE
  18929.         DeathType     = NORMAL
  18930.         AcceptDamageAdd = No
  18931.     End
  18932. End
  18933.  
  18934. //------------------------------------------------------------------------------------------------------------------------------
  18935. Weapon CreateAHeroRainOfArrows_Level3
  18936.     AttackRange = CREATE_A_HERO_RAIN_OF_ARROWS_RANGE    //LEGOLAS_ARROWSTORM_RANGE
  18937.     WeaponSpeed = 561         // dist/sec 
  18938.     MinWeaponSpeed = 481
  18939.     MaxWeaponSpeed = 641      // dist/sec Upper limit on scaling, when attacking past nominal "max" range
  18940.     FireFX = FX_RohanArcherBowWeapon
  18941.     HitPercentage     = 100     //When this weapon is used it will hit exactly all of the time.
  18942.  
  18943.     ProjectileNugget                    // Default arrow
  18944.         ProjectileTemplateName = LegolasBowArrowStormProjectile
  18945.         WarheadTemplateName = CreateAHeroRainOfArrowsWarhead_Level3
  18946.     End
  18947. End
  18948.  
  18949. //------------------------------
  18950. Weapon CreateAHeroRainOfArrowsWarhead_Level3
  18951.     ProjectileCollidesWith =   STRUCTURES WALLS  
  18952.     RadiusDamageAffects =   ENEMIES NEUTRALS NOT_SIMILAR
  18953.     HitStoredTarget = Yes    // Always hits initial target.
  18954.     DamageNugget                        // A basic Nugget that just does damage
  18955.         Damage        = CREATE_A_HERO_RAIN_OF_ARROWS_DAMAGE_L3        //LEGOLAS_ARROWSTORM_DAMAGE
  18956.         Radius        = 0.0    // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  18957.         DelayTime     = 0
  18958.         DamageType    = HERO_RANGED
  18959.         DamageFXType  = GOOD_ARROW_PIERCE
  18960.         DeathType     = NORMAL
  18961.         AcceptDamageAdd = No
  18962.     End
  18963. End
  18964.  
  18965. //------------------------------------------------------------------------------
  18966. Weapon CreateAHeroAxeThrow
  18967.     AttackRange         = CREATE_A_HERO_AXE_THROW_RANGE
  18968.     WeaponSpeed = 161         // dist/sec 
  18969.     MinWeaponSpeed = 201
  18970.     MaxWeaponSpeed = 241      // dist/sec Upper limit on scaling, when attacking past nominal "max" range
  18971.     FireFX = FX_GimliAxeThrow
  18972.     ScaleWeaponSpeed = Yes // Used for lob weapons, scales speed proportional to range
  18973.     HitPercentage = 100
  18974.     ScatterRadius     = 0.0      //When this weapon misses it can randomly miss by as much as this distance.
  18975.     DelayBetweenShots = 0        // time between shots, msec
  18976.       
  18977.     AntiAirborneVehicle    = Yes // added so he can attack fellbeast and birds
  18978.     AntiAirborneMonster    = Yes // added so he can attack fellbeast and birds
  18979.       
  18980.       ClipSize            = 1            // how many shots in a Clip (0 == infinite)
  18981.     ClipReloadTime        = 10000     // how long to reload a Clip, msec
  18982.     AutoReloadsClip        = Yes
  18983.     //IdleAfterFiringDelay = 2500//
  18984.     //HoldAfterFiringDelay = 2500 // So I don't move while the weapon needs to complete
  18985.     InstantLoadClipOnActivate = Yes
  18986.  
  18987.     PreAttackDelay        = 1500// 1467             // 1467 is the prep time for archer.
  18988.     PreAttackType         = PER_SHOT // Do the delay each time we attack a new target
  18989.     FiringDuration      = 1600// 1567    // Duration of the archer firing shot is 500ms.
  18990.  
  18991.     ProjectileNugget
  18992.         ProjectileTemplateName = GimliAxeProjectile
  18993.         WarheadTemplateName = CreateAHeroAxeThrowWarhead
  18994.     End
  18995. End
  18996.  
  18997. //------------------------------------------------------------------------------
  18998. Weapon CreateAHeroAxeThrowWarhead
  18999.     ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS 
  19000.     RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR
  19001.     FireFX                = FX_GondorSwordHit
  19002.     HitStoredTarget = Yes    // Always hits initial target.
  19003.  
  19004.     DamageNugget
  19005.         Damage        = CREATE_A_HERO_AXE_THROW_DAMAGE_L1
  19006.         DamageScalar  = 10% NONE +STRUCTURE +MordorCatapult +IsengardBallista +GondorTrebuchet +GondorTrebuchetWall 
  19007.         Radius        = 0.0    // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  19008.         DelayTime     = 0
  19009.         DamageType    = HERO
  19010.         DamageFXType  = SWORD_SLASH
  19011.         DeathType     = NORMAL
  19012.         RequiredUpgradeNames = Upgrade_CreateAHeroAxeThrow_Level1
  19013.         ForbiddenUpgradeNames = Upgrade_CreateAHeroAxeThrow_Level2 Upgrade_CreateAHeroAxeThrow_Level3
  19014.     End
  19015.  
  19016.     DamageNugget
  19017.         Damage        = CREATE_A_HERO_AXE_THROW_DAMAGE_L2
  19018.         DamageScalar  = 10% NONE +STRUCTURE +MordorCatapult +IsengardBallista +GondorTrebuchet +GondorTrebuchetWall 
  19019.         Radius        = 0.0    // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  19020.         DelayTime     = 0
  19021.         DamageType    = HERO
  19022.         DamageFXType  = SWORD_SLASH
  19023.         DeathType     = NORMAL
  19024.         RequiredUpgradeNames = Upgrade_CreateAHeroAxeThrow_Level2
  19025.         ForbiddenUpgradeNames = Upgrade_CreateAHeroAxeThrow_Level3
  19026.     End
  19027.  
  19028.     DamageNugget
  19029.         Damage        = CREATE_A_HERO_AXE_THROW_DAMAGE_L3
  19030.         DamageScalar  = 10% NONE +STRUCTURE +MordorCatapult +IsengardBallista +GondorTrebuchet +GondorTrebuchetWall 
  19031.         Radius        = 0.0    // HitStoredTarget means we hurt the person we launched at.  And nobody else.  So a miss hurts nobody.
  19032.         DelayTime     = 0
  19033.         DamageType    = HERO
  19034.         DamageFXType  = SWORD_SLASH
  19035.         DeathType     = NORMAL
  19036.         RequiredUpgradeNames = Upgrade_CreateAHeroAxeThrow_Level3
  19037.     End
  19038. End
  19039.  
  19040. //------------------------------------------------------------------------------
  19041. Weapon CreateAHeroEarthShaker_Level1 // Big Blue Ring Blast
  19042.     IdleAfterFiringDelay = 0
  19043.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  19044.     DelayBetweenShots = 5000               // time between shots, msec
  19045.     PreAttackDelay        = 2600
  19046.     PreAttackType         = PER_ATTACK // Do the delay each time we attack a new target
  19047.     PreAttackFX           = FX_GloinShatterPre
  19048.     FireFX                = FX_GloinShatterhammer
  19049.     FiringDuration      = 1400
  19050.     DamageNugget                        // A basic Nugget that just does damage
  19051.         Damage            = CREATE_A_HERO_EARTH_SHAKER_DAMAGE_L1
  19052.         Radius            = CREATE_A_HERO_EARTH_SHAKER_RADIUS_L1    //250.0
  19053.         DamageType        = MAGIC
  19054.         DamageFXType    = MAGIC
  19055.         DeathType        = EXPLODED
  19056.         DamageSpeed        = 700.0 // must match the ShockWaveSpeed below
  19057.     End
  19058.     MetaImpactNugget                    // A Nugget that throws things back with force
  19059. //        HeroResist            = .75
  19060.         ShockWaveAmount   = CREATE_A_HERO_EARTH_SHAKER_META_AMOUNT_L1    //70.0
  19061.         ShockWaveRadius   = CREATE_A_HERO_EARTH_SHAKER_META_RADIUS_L1    //500.0
  19062.         ShockWaveTaperOff = 1.0
  19063.         ShockWaveZMult    = 1.000
  19064.         ShockWaveSpeed      = 700.0 
  19065.     End
  19066. End
  19067.  
  19068. //------------------------------------------------------------------------------
  19069. Weapon CreateAHeroEarthShaker_Level2 // Big Blue Ring Blast
  19070.     IdleAfterFiringDelay = 0
  19071.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  19072.     DelayBetweenShots = 5000               // time between shots, msec
  19073.     PreAttackDelay        = 2600
  19074.     PreAttackType         = PER_ATTACK // Do the delay each time we attack a new target
  19075.     PreAttackFX           = FX_GloinShatterPre
  19076.     FireFX                = FX_GloinShatterhammer
  19077.     FiringDuration      = 1400
  19078.     DamageNugget                        // A basic Nugget that just does damage
  19079.         Damage            = CREATE_A_HERO_EARTH_SHAKER_DAMAGE_L2
  19080.         Radius            = CREATE_A_HERO_EARTH_SHAKER_RADIUS_L2    //250.0
  19081.         DamageType        = MAGIC
  19082.         DamageFXType    = MAGIC
  19083.         DeathType        = EXPLODED
  19084.         DamageSpeed        = 700.0 // must match the ShockWaveSpeed below
  19085.     End
  19086.     MetaImpactNugget                    // A Nugget that throws things back with force
  19087. //        HeroResist            = .75
  19088.         ShockWaveAmount   = CREATE_A_HERO_EARTH_SHAKER_META_AMOUNT_L2    //70.0
  19089.         ShockWaveRadius   = CREATE_A_HERO_EARTH_SHAKER_META_RADIUS_L2    //500.0
  19090.         ShockWaveTaperOff = 1.0
  19091.         ShockWaveZMult    = 1.000
  19092.         ShockWaveSpeed      = 700.0 
  19093.     End
  19094. End
  19095.  
  19096. //------------------------------------------------------------------------------
  19097. Weapon CreateAHeroEarthShaker_Level3 // Big Blue Ring Blast
  19098.     IdleAfterFiringDelay = 0
  19099.     RadiusDamageAffects = ENEMIES NOT_SIMILAR
  19100.     DelayBetweenShots = 5000               // time between shots, msec
  19101.     PreAttackDelay        = 2600
  19102.     PreAttackType         = PER_ATTACK // Do the delay each time we attack a new target
  19103.     PreAttackFX           = FX_GloinShatterPre
  19104.     FireFX                = FX_GloinShatterhammer
  19105.     FiringDuration      = 1400
  19106.     DamageNugget                        // A basic Nugget that just does damage
  19107.         Damage            = CREATE_A_HERO_EARTH_SHAKER_DAMAGE_L3
  19108.         Radius            = CREATE_A_HERO_EARTH_SHAKER_RADIUS_L3    //250.0
  19109.         DamageType        = MAGIC
  19110.         DamageFXType    = MAGIC
  19111.         DeathType        = EXPLODED
  19112.         DamageSpeed        = 700.0 // must match the ShockWaveSpeed below
  19113.     End
  19114.     MetaImpactNugget                    // A Nugget that throws things back with force
  19115. //        HeroResist            = .75
  19116.         ShockWaveAmount   = CREATE_A_HERO_EARTH_SHAKER_META_AMOUNT_L3    //70.0
  19117.         ShockWaveRadius   = CREATE_A_HERO_EARTH_SHAKER_META_RADIUS_L3    //500.0
  19118.         ShockWaveTaperOff = 1.0
  19119.         ShockWaveZMult    = 1.000
  19120.         ShockWaveSpeed      = 700.0 
  19121.     End
  19122. End
  19123.  
  19124. //------------------------------------------------------------------------------
  19125. Weapon CreateAHeroLeap  // BALANCE RohanGimliLeap
  19126.   IdleAfterFiringDelay = 0
  19127.   AttackRange           = 100.0
  19128.   MinimumAttackRange    = 8.0
  19129.   WeaponSpeed           = 100.0        // dist/sec (huge value == effectively instant)
  19130.   ProjectileSelf        = Yes // We don't make the projectile throw ourself
  19131.   ClipSize              = 1               // how many shots in a Clip (0 == infinite)
  19132.   ClipReloadTime        = 2200   //1467 min for animation           // how long to reload a Clip, msec
  19133.   AutoReloadsClip        = Yes    
  19134.   PreAttackDelay        = 600
  19135.   FiringDuration        = 1500            
  19136.   PreAttackType         = PER_SHOT // Do the delay each time we attack a new target
  19137.   HitPercentage       = 0 // Never auto hits, always shoots at a ground position
  19138.   ScatterRadius       = 0.0     //When this weapon misses it can randomly miss by as much as this distance.
  19139.   FireFX                = FX_GimliLeap
  19140.   ProjectileNugget                    // A Nugget that creates an Object and sends it to the target with a Warhead
  19141.     WarheadTemplateName = CreateAHeroLeapWarhead
  19142.   End
  19143. End
  19144.  
  19145. //-----------------------------------
  19146. Weapon CreateAHeroLeapWarhead
  19147.   ProjectileCollidesWith = ENEMIES
  19148.   RadiusDamageAffects = ENEMIES
  19149.   
  19150.   FireFX                = FX_GimliLeap
  19151.   DamageNugget                        // A basic Nugget that just does damage
  19152.     Damage        = CREATE_A_HERO_LEAP_DAMAGE_L1
  19153.     Radius        = 30.0
  19154.     DelayTime     = 0
  19155.     DamageType            = HERO
  19156.     DamageFXType          = GIMLI_LEAP
  19157.     DeathType             = NORMAL
  19158.     RequiredUpgradeNames    = Upgrade_CreateAHeroLeap_Level1
  19159.     ForbiddenUpgradeNames    = Upgrade_CreateAHeroLeap_Level2
  19160.   End
  19161.   DamageNugget                        // A basic Nugget that just does damage
  19162.     Damage        = CREATE_A_HERO_LEAP_DAMAGE_L2
  19163.     Radius        = 50.0
  19164.     DelayTime     = 0
  19165.     DamageType            = HERO
  19166.     DamageFXType          = GIMLI_LEAP
  19167.     DeathType             = NORMAL
  19168.     RequiredUpgradeNames    = Upgrade_CreateAHeroLeap_Level2
  19169.   End
  19170.   MetaImpactNugget                    // A Nugget that throws things back with force
  19171. //    HeroResist            = .75
  19172.     ShockWaveAmount   = 70.0
  19173.     ShockWaveRadius   = 40.0
  19174.     ShockWaveTaperOff = 0.5
  19175.     ShockWaveZMult    = 1.20
  19176.   End
  19177. End
  19178.  
  19179. //-----------------------------------
  19180. Weapon CreateAHeroSapper_Level1
  19181.     LeechRangeWeapon        = Yes
  19182.     CanFireWhileMoving        = No
  19183.     AttackRange            = CREATE_A_HERO_SAPPER_RANGE    //30.0
  19184.     MeleeWeapon            = Yes
  19185.     WeaponSpeed           = 799999.2        // dist/sec (huge value == effectively instant)
  19186.     FireFX                = FX_DwarvenSapper
  19187.     DelayBetweenShots     = GLOIN_DELAYBETWEENSHOTS     // time between shots, msec
  19188.     PreAttackDelay        = GLOIN_PREATTACKDELAY     // 433 is natural time of the stabbing animation.
  19189.     PreAttackType         = PER_SHOT // Do the delay each time we attack a new target
  19190.     FiringDuration        = GLOIN_FIRINGDURATION         // min 600 for anim
  19191.     DamageDealtAtSelfPosition = Yes                // A melee based AoE.  Arc radiates from me, not them
  19192.  
  19193.     // Crush damage.
  19194.     DamageNugget                                // A basic Nugget that just does damage
  19195.         Damage            = CREATE_A_HERO_SAPPER_DAMAGE_L1
  19196.         Radius            = CREATE_A_HERO_SAPPER_RADIUS_L1
  19197.         DamageArc        = 75
  19198.         DelayTime        = 0
  19199.         DamageType        = CRUSH
  19200.         DamageFXType    = MAGIC
  19201.         DeathType        = NORMAL
  19202.     End
  19203.  
  19204.     // Structural damage.
  19205.     DamageNugget                                // A basic Nugget that just does damage
  19206.         Damage            = CREATE_A_HERO_SAPPER_DAMAGE_STRUCTURAL_L1
  19207.         Radius            = CREATE_A_HERO_SAPPER_RADIUS_L1
  19208.         DamageArc        = 75
  19209.         DelayTime        = 0
  19210.         DamageType        = SIEGE
  19211.         DamageFXType    = MAGIC
  19212.         DeathType        = NORMAL
  19213.     End
  19214.  
  19215.     // Push back
  19216.     MetaImpactNugget                            // A Nugget that throws things back with force
  19217. //        HeroResist            = .75
  19218.         ShockWaveAmount        = 60
  19219.         ShockWaveRadius        = 80
  19220.         ShockWaveArc        = 75                // Should generally be equal to damage arc
  19221.         ShockWaveTaperOff    = 1.0
  19222.         ShockWaveSpeed        = 0.0
  19223.         ShockWaveZMult        = 1.6
  19224.     End
  19225. End
  19226.  
  19227. //-----------------------------------
  19228. Weapon CreateAHeroSapper_Level2
  19229.     LeechRangeWeapon        = Yes
  19230.     CanFireWhileMoving        = No
  19231.     AttackRange            = CREATE_A_HERO_SAPPER_RANGE    //30.0
  19232.     MeleeWeapon            = Yes
  19233.     WeaponSpeed           = 799999.2        // dist/sec (huge value == effectively instant)
  19234.     FireFX                = FX_DwarvenSapper
  19235.     DelayBetweenShots     = GLOIN_DELAYBETWEENSHOTS     // time between shots, msec
  19236.     PreAttackDelay        = GLOIN_PREATTACKDELAY     // 433 is natural time of the stabbing animation.
  19237.     PreAttackType         = PER_SHOT // Do the delay each time we attack a new target
  19238.     FiringDuration        = GLOIN_FIRINGDURATION         // min 600 for anim
  19239.     DamageDealtAtSelfPosition = Yes                // A melee based AoE.  Arc radiates from me, not them
  19240.  
  19241.     // Crush damage.
  19242.     DamageNugget                                // A basic Nugget that just does damage
  19243.         Damage            = CREATE_A_HERO_SAPPER_DAMAGE_L2
  19244.         Radius            = CREATE_A_HERO_SAPPER_RADIUS_L2
  19245.         DamageArc        = 75
  19246.         DelayTime        = 0
  19247.         DamageType        = CRUSH
  19248.         DamageFXType    = MAGIC
  19249.         DeathType        = NORMAL
  19250.     End
  19251.  
  19252.     // Structural damage.
  19253.     DamageNugget                                // A basic Nugget that just does damage
  19254.         Damage            = CREATE_A_HERO_SAPPER_DAMAGE_STRUCTURAL_L2
  19255.         Radius            = CREATE_A_HERO_SAPPER_RADIUS_L2
  19256.         DamageArc        = 75
  19257.         DelayTime        = 0
  19258.         DamageType        = SIEGE
  19259.         DamageFXType    = MAGIC
  19260.         DeathType        = NORMAL
  19261.     End
  19262.  
  19263.     // Push back
  19264.     MetaImpactNugget                            // A Nugget that throws things back with force
  19265. //        HeroResist            = .75
  19266.         ShockWaveAmount        = 60
  19267.         ShockWaveRadius        = 80
  19268.         ShockWaveArc        = 75                // Should generally be equal to damage arc
  19269.         ShockWaveTaperOff    = 1.0
  19270.         ShockWaveSpeed        = 0.0
  19271.         ShockWaveZMult        = 1.6
  19272.     End
  19273. End
  19274.  
  19275. //-----------------------------------
  19276. Weapon CreateAHeroSapper_Level3
  19277.     LeechRangeWeapon        = Yes
  19278.     CanFireWhileMoving        = No
  19279.     AttackRange            = CREATE_A_HERO_SAPPER_RANGE    //30.0
  19280.     MeleeWeapon            = Yes
  19281.     WeaponSpeed           = 799999.2        // dist/sec (huge value == effectively instant)
  19282.     FireFX                = FX_DwarvenSapper
  19283.     DelayBetweenShots     = GLOIN_DELAYBETWEENSHOTS     // time between shots, msec
  19284.     PreAttackDelay        = GLOIN_PREATTACKDELAY     // 433 is natural time of the stabbing animation.
  19285.     PreAttackType         = PER_SHOT // Do the delay each time we attack a new target
  19286.     FiringDuration        = GLOIN_FIRINGDURATION         // min 600 for anim
  19287.     DamageDealtAtSelfPosition = Yes                // A melee based AoE.  Arc radiates from me, not them
  19288.  
  19289.     // Crush damage.
  19290.     DamageNugget                                // A basic Nugget that just does damage
  19291.         Damage            = CREATE_A_HERO_SAPPER_DAMAGE_L3
  19292.         Radius            = CREATE_A_HERO_SAPPER_RADIUS_L3
  19293.         DamageArc        = 75
  19294.         DelayTime        = 0
  19295.         DamageType        = CRUSH
  19296.         DamageFXType    = MAGIC
  19297.         DeathType        = NORMAL
  19298.     End
  19299.  
  19300.     // Structural damage.
  19301.     DamageNugget                                // A basic Nugget that just does damage
  19302.         Damage            = CREATE_A_HERO_SAPPER_DAMAGE_STRUCTURAL_L3
  19303.         Radius            = CREATE_A_HERO_SAPPER_RADIUS_L3
  19304.         DamageArc        = 75
  19305.         DelayTime        = 0
  19306.         DamageType        = SIEGE
  19307.         DamageFXType    = MAGIC
  19308.         DeathType        = NORMAL
  19309.     End
  19310.  
  19311.     // Push back
  19312.     MetaImpactNugget                            // A Nugget that throws things back with force
  19313. //        HeroResist            = .75
  19314.         ShockWaveAmount        = 60
  19315.         ShockWaveRadius        = 80
  19316.         ShockWaveArc        = 75                // Should generally be equal to damage arc
  19317.         ShockWaveTaperOff    = 1.0
  19318.         ShockWaveSpeed        = 0.0
  19319.         ShockWaveZMult        = 1.6
  19320.     End
  19321. End
  19322.  
  19323. //------------------------------------------------------------------------------
  19324. Weapon CreateAHeroClearGarrisonWeapon
  19325.     LeechRangeWeapon        = Yes
  19326.     CanFireWhileMoving        = No
  19327.     AttackRange            = 30.0
  19328.     AntiStructure         = Yes                                      ; ShakeFoundation ONLY affects structures -- buildings, walls, gates
  19329.     AntiGround            = No                                       ; ditto
  19330.     MeleeWeapon            = Yes
  19331.     WeaponSpeed           = 799999.2        ; dist/sec (huge value == effectively instant)
  19332.     FireFX                = FX_GloinShake
  19333.     DelayBetweenShots     = GLOIN_DELAYBETWEENSHOTS     ; time between shots, msec
  19334.     PreAttackDelay        = GLOIN_PREATTACKDELAY     ; 433 is natural time of the stabbing animation.
  19335.     PreAttackType         = PER_SHOT ; Do the delay each time we attack a new target
  19336.     FiringDuration        = GLOIN_FIRINGDURATION         ; min 600 for anim
  19337.  
  19338.     ; Structural damage.
  19339.     DamageNugget                                ; A basic Nugget that just does damage
  19340.         Damage            = CREATE_A_HERO_CLEAR_GARRISON_DAMAGE    //GLOIN_SHAKEFOUNDATION_DAMAGE
  19341.         Radius            = 0.0
  19342.         DelayTime        = 0
  19343.         DamageType        = SIEGE
  19344.         DamageFXType    = MAGIC
  19345.         DeathType        = NORMAL
  19346.     End
  19347.  
  19348.     ; Temporarily disable the target building
  19349.     ParalyzeNugget
  19350.         Radius            = 0.0
  19351.         Duration        = 30000
  19352.         ParalyzeFX            = FX_ParalyzeStructure
  19353.     End
  19354.  
  19355.     ; Force open any gate hit by this (which will also be paralyzed, so it will be stuck open for the duration)
  19356.     OpenGateNugget
  19357.         Radius            = 0.0
  19358.     End
  19359. End
  19360.  
  19361. ;------------------------------------------------------------------------------
  19362. Weapon CreateaHeroBlinkDestination
  19363.   RadiusDamageAffects   = ENEMIES
  19364.   FireFX = FX_Blink 
  19365.   
  19366.   MetaImpactNugget                    // A Nugget that throws things back with force
  19367.     ShockWaveAmount   = 50.0
  19368.     ShockWaveRadius   = 55.0
  19369.     ShockWaveTaperOff = 0.75
  19370.     ShockWaveZMult    = 1.20
  19371. //    HeroResist          = 0
  19372.   End
  19373. End
  19374.  
  19375. //------------------------------------------------------------------------------
  19376.  
  19377. //------------------------------------------------------------------------------
  19378. Weapon WizardFireballL1 //BALANCE Wizard
  19379.   LeechRangeWeapon            = Yes
  19380.   AttackRange               = SARUMAN_FIREBALL_RANGE        // set this in his special power
  19381.   WeaponSpeed               = 150         // dist/sec 
  19382.   MinWeaponSpeed            = 100
  19383.   MaxWeaponSpeed            = 200      // dist/sec Upper limit on scaling, when attacking past nominal "max" range
  19384.   ScaleWeaponSpeed          = Yes      // Used for lob weapons, scales speed proportional to range
  19385.   HitPercentage             = 100      //When this weapon is used it will hit exactly 100% of the time.
  19386.   ScatterRadius             = 0.0     //When this weapon misses it can randomly miss by as much as this distance.
  19387.   DelayBetweenShots         = 5000     // time between shots, msec
  19388.   PreAttackDelay            = 1     // 1467 is the prep time for archer.
  19389.   PreAttackRandomAmount     = 0      // amount of additional preattack variance for archer type attacks only  
  19390.   PreAttackType             = PER_SHOT // Do the delay each time we attack a new target
  19391.   FiringDuration            = 1     // Duration of the archer firing shot is 500ms.
  19392.   IsAimingWeapon            = Yes
  19393.   AcceptableAimDelta        = 15
  19394.   AntiAirborneVehicle       = Yes
  19395.   AntiAirborneMonster        = Yes
  19396.   FireFX                    = FX_SarumanFireball
  19397.   DamageType                = FLAME
  19398.   
  19399.   ProjectileNugget          // Default arrow
  19400.     ProjectileTemplateName  = WizardFireballProjectileL1
  19401.     WarheadTemplateName     = WizardFireballWarheadL1
  19402.   End
  19403. End
  19404.  
  19405. //----------------------------
  19406. Weapon WizardFireballWarheadL1
  19407.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS
  19408.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR MINES // ALLIES
  19409.     
  19410.     FireLogicNugget //@@@ fire logic testing
  19411.         LogicType    =    INCREASE_BURN_RATE
  19412.         Radius        =    40
  19413.         Damage        =    10
  19414.     End    
  19415.  
  19416.     DamageNugget                        // A basic Nugget that just does damage
  19417.          Damage        = CREATE_A_HERO_FIREBALL_DMG_LVL_1
  19418.          Radius        = CREATE_A_HERO_FIREBALL_RADIUS_LVL_1
  19419.          DelayTime     = 0
  19420.          DamageType    = FLAME
  19421.          DamageFXType  = BIG_ROCK
  19422.          DeathType     = BURNED
  19423.          DamageScalar  = 5000% NONE +MINE // Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  19424.     End
  19425.  
  19426.     MetaImpactNugget                         // A Nugget that throws things back with force
  19427. //        HeroResist        =  0.75
  19428.         ShockWaveAmount   = 80.00
  19429.         ShockWaveRadius   = SARUMAN_FIREBALL_RADIUS
  19430.         ShockWaveTaperOff =  0.75
  19431.         ShockWaveZMult    =  1.20
  19432.     End
  19433. End
  19434.  
  19435. //------------------------------------------------------------------------------
  19436. //------------------------------------------------------------------------------
  19437. Weapon WizardFireballL2 //BALANCE Wizard
  19438.   LeechRangeWeapon            = Yes
  19439.   AttackRange               = SARUMAN_FIREBALL_RANGE        // set this in his special power
  19440.   WeaponSpeed               = 150         // dist/sec 
  19441.   MinWeaponSpeed            = 100
  19442.   MaxWeaponSpeed            = 200      // dist/sec Upper limit on scaling, when attacking past nominal "max" range
  19443.   ScaleWeaponSpeed          = Yes      // Used for lob weapons, scales speed proportional to range
  19444.   HitPercentage             = 100      //When this weapon is used it will hit exactly 100% of the time.
  19445.   ScatterRadius             = 0.0     //When this weapon misses it can randomly miss by as much as this distance.
  19446.   DelayBetweenShots         = 5000     // time between shots, msec
  19447.   PreAttackDelay            = 1     // 1467 is the prep time for archer.
  19448.   PreAttackRandomAmount     = 0      // amount of additional preattack variance for archer type attacks only  
  19449.   PreAttackType             = PER_SHOT // Do the delay each time we attack a new target
  19450.   FiringDuration            = 1     // Duration of the archer firing shot is 500ms.
  19451.   IsAimingWeapon            = Yes
  19452.   AcceptableAimDelta        = 15
  19453.   AntiAirborneVehicle       = Yes
  19454.   AntiAirborneMonster        = Yes
  19455.   FireFX                    = FX_SarumanFireball
  19456.   DamageType                = FLAME
  19457.   
  19458.   ProjectileNugget          // Default arrow
  19459.     ProjectileTemplateName  = WizardFireballProjectileL2
  19460.     WarheadTemplateName     = WizardFireballWarheadL2
  19461.   End
  19462. End
  19463.  
  19464. //----------------------------
  19465. Weapon WizardFireballWarheadL2
  19466.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS
  19467.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR MINES // ALLIES
  19468.     
  19469.     FireLogicNugget //@@@ fire logic testing
  19470.         LogicType    =    INCREASE_BURN_RATE
  19471.         Radius        =    40
  19472.         Damage        =    10
  19473.     End    
  19474.  
  19475.     DamageNugget                        // A basic Nugget that just does damage
  19476.          Damage        = CREATE_A_HERO_FIREBALL_DMG_LVL_2
  19477.          Radius        = CREATE_A_HERO_FIREBALL_RADIUS_LVL_2
  19478.          DelayTime     = 0
  19479.          DamageType    = FLAME
  19480.          DamageFXType  = BIG_ROCK
  19481.          DeathType     = BURNED
  19482.          DamageScalar  = 5000% NONE +MINE // Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  19483.     End
  19484.  
  19485.     MetaImpactNugget                         // A Nugget that throws things back with force
  19486. //        HeroResist        =  0.75
  19487.         ShockWaveAmount   = 80.00
  19488.         ShockWaveRadius   = SARUMAN_FIREBALL_RADIUS
  19489.         ShockWaveTaperOff =  0.75
  19490.         ShockWaveZMult    =  1.20
  19491.     End
  19492. End
  19493.  
  19494. //------------------------------------------------------------------------------
  19495. //------------------------------------------------------------------------------
  19496. Weapon WizardFireballL3 //BALANCE Wizard
  19497.   LeechRangeWeapon            = Yes
  19498.   AttackRange               = SARUMAN_FIREBALL_RANGE        // set this in his special power
  19499.   WeaponSpeed               = 150         // dist/sec 
  19500.   MinWeaponSpeed            = 100
  19501.   MaxWeaponSpeed            = 200      // dist/sec Upper limit on scaling, when attacking past nominal "max" range
  19502.   ScaleWeaponSpeed          = Yes      // Used for lob weapons, scales speed proportional to range
  19503.   HitPercentage             = 100      //When this weapon is used it will hit exactly 100% of the time.
  19504.   ScatterRadius             = 0.0     //When this weapon misses it can randomly miss by as much as this distance.
  19505.   DelayBetweenShots         = 5000     // time between shots, msec
  19506.   PreAttackDelay            = 1     // 1467 is the prep time for archer.
  19507.   PreAttackRandomAmount     = 0      // amount of additional preattack variance for archer type attacks only  
  19508.   PreAttackType             = PER_SHOT // Do the delay each time we attack a new target
  19509.   FiringDuration            = 1     // Duration of the archer firing shot is 500ms.
  19510.   IsAimingWeapon            = Yes
  19511.   AcceptableAimDelta        = 15
  19512.   AntiAirborneVehicle       = Yes
  19513.   AntiAirborneMonster        = Yes
  19514.   FireFX                    = FX_SarumanFireball
  19515.   DamageType                = FLAME
  19516.   
  19517.   ProjectileNugget          // Default arrow
  19518.     ProjectileTemplateName  = WizardFireballProjectileL3
  19519.     WarheadTemplateName     = WizardFireballWarheadL3
  19520.   End
  19521. End
  19522.  
  19523. //----------------------------
  19524. Weapon WizardFireballWarheadL3
  19525.   ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS
  19526.   RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR MINES // ALLIES
  19527.     
  19528.     FireLogicNugget //@@@ fire logic testing
  19529.         LogicType    =    INCREASE_BURN_RATE
  19530.         Radius        =    40
  19531.         Damage        =    10
  19532.     End    
  19533.  
  19534.     DamageNugget                        // A basic Nugget that just does damage
  19535.          Damage        = CREATE_A_HERO_FIREBALL_DMG_LVL_3
  19536.          Radius        = CREATE_A_HERO_FIREBALL_RADIUS_LVL_3
  19537.          DelayTime     = 0
  19538.          DamageType    = FLAME
  19539.          DamageFXType  = BIG_ROCK
  19540.          DeathType     = BURNED
  19541.          DamageScalar  = 5000% NONE +MINE // Make sure we one shot kill mines, without risking wasting some poor hero with a torch
  19542.     End
  19543.  
  19544.     MetaImpactNugget                         // A Nugget that throws things back with force
  19545. //        HeroResist        =  0.75
  19546.         ShockWaveAmount   = 80.00
  19547.         ShockWaveRadius   = SARUMAN_FIREBALL_RADIUS
  19548.         ShockWaveTaperOff =  0.75
  19549.         ShockWaveZMult    =  1.20
  19550.     End
  19551. End
  19552.  
  19553. //------------------------------------------------------------------------------
  19554.  
  19555. //===========================================================================================
  19556. //////////////////////////// END OF CREATE A HERO SPECIAL WEAPONS ////////////////////////////
  19557. //==========================================================================================
  19558.  
  19559. Weapon DwarvenUndermineSpawnWeapon    
  19560.     MetaImpactNugget
  19561.         KillObjectFilter            = INSTANT_DEATH_ON_METAIMPACT_OBJFILTER
  19562.         SpecialObjectFilter            = SPELL_UNDERMINE_AFFECTS_OBJECT_FILTER
  19563.         ShockWaveAmount                = 100.0                                                ; balance
  19564.         ShockWaveRadius                = SPELL_UNDERMINE_SPAWN_DAMAGE_RADIUS
  19565.         ShockWaveClearRadius        = Yes
  19566.         ShockWaveClearMult            = 0.75
  19567.         ShockWaveClearFlingHeight    = 75
  19568.     End
  19569. End
  19570.  
  19571. Weapon DevastationEntWeapon
  19572.     DamageNugget
  19573.         SpecialObjectFilter    = NONE +RohanGenericEnt +RohanTreeBerd ENEMIES
  19574.         Damage                = SPECIALPOWER_DEVASTATION_ENT_DAMAGE
  19575.         Radius                = SPECIALPOWER_DEVASTATION_RADIUS    
  19576.         DamageType            = SLASH
  19577.         DamageFXType        = BIG_ROCK
  19578.         DeathType            = NORMAL
  19579.         DamageArc             = 360
  19580.     End
  19581. End
  19582.