• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Hive's Spellpack v2.2

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
Credits goes to every single requester that requested these spells. And from the v2.0 thanks to Pharaoh_ for his awesome function SetUnitX,Y. Thanks to Maker for the condition If somewhat unit group[something] has 0 units, then set that group=CreateGroup(). These functions helped me develop this map and learn making MUI spells. Credits also goes to Weep for his awesome DDS (damage detection system). Thank you hive :)

This spellpack contains lots of spells, which people in the hive requested and needed for their map, so that's why it is Hive's Spellpack!

This spellpack has 38 spells and few stuff that someone needed help with.

So moving on with the spells, oh by the way, 34/38 spells are MUI.



Fang bites the targeted unit and cripples it dealing damage and if the unit moves, it only gets worse for the unit. Deals 15% of moved distance as damage.

Level 1 - 100 bite damage, lasts 2 seconds.
Level 2 - 120 bite damage, lasts 3 seconds.
Level 3 - 140 bite damage, lasts 4 seconds.
Level 4 - 160 bite damage, lasts 5 seconds.


Swifty releases a wave of pure energy, which absorbs enemy heroes souls, damages them and gives them to Swifty. The wave travels 800 range. Also increases Swifty's Soul Mastery soul captivity.

Level 1 - 3 bonus souls. Deals 0.5 x Intelligence as damage.
Level 2 - 6 bonus souls. Deals 1 x Intelligence plus 0.5 x Strength as damage.
Level 3 - 9 bonus souls. Deals 1.5 x Intelligence plus 1 x Strength as damage.
Level 4 - 12 bonus souls. Deals 2 x Intelligence plus 1.5 x Strength as damage.


Swifty catches the souls of the units she kills. Every soul gives Swifty 2 bonus damage.

Level 1 - Soul limit is 10.
Level 2 - Soul limit is 20.
Level 3 - Soul limit is 30.
Level 4 - Soul limit is 40.


Swifty mysteriously warps in the direction she is facing, knocking the units back in the place she was and she warped and dealing damage. Consumes 2 souls.

Level 1 - 550 warping range, deals 25 + 2 x Amount of Souls.
Level 2 - 700 warping range, deals 25 + 3 x Amount of Souls.
Level 3 - 850 warping range, deals 25 + 4 x Amount of Souls.
Level 4 - 1000 warping range, deals 25 + 5 x Amount of Souls.

If Swifty doesn't have enough souls, the distance is reduced by 1/3.


Swifty forms a vortex out of souls which slows the units by 50% inside 400 AoE and reduces their magic defence. Upon leaving the vortex, enemy units take 100 pure damage.

Level 1 - 20% magic reduction, lasts 6 seconds.
Level 2 - 30% magic reduction, lasts 8 seconds.
Level 3 - 40% magic reduction, lasts 10 seconds.


Switfty lets loose of the soul vortex, dealing 150 + 10 x Souls damage to the enemy units inside the vortex. Consumes all souls.


aPcIIIk moves swiftly around the battlefield, dealing damage and having a chance to deal additional damage to creeps. Jumps up to 4 units.

Level 1 - 100 damage, 15% chance to deal additional 400 damage to creeps.
Level 2 - 175 damage, 30% chance to deal additional 400 damage to creeps.
Level 3 - 250 damage, 45% chance to deal additional 400 damage to creeps.
Level 4 - 325 damage, 60% chance to deal additional 400 damage to creeps.


aPcIIIk meditates for 5 seconds, healing himself. aPcIIIk also has increased defences during meditation.

Level 1 - 175 hit points over 5 seconds, 10 armor and 10% magic resistance..
Level 2 - 350 hit points over 5 seconds, 20 armor and 20% magic resistance.
Level 3 - 525 hit points over 5 seconds, 30 armor and 30% magic resistance.
Level 4 - 700 hit points over 5 seconds, 40 armor and 40% magic resistance.


aPcIIIk is experienced at Wuju fighting style and has improved damage. He can also substitute the passive bonus to double the bonus for 10 seconds. While on cooldown, aPcIIIk gains no bonuses.

Level 1 - 10 bonus damage.
Level 2 - 20 bonus damage.
Level 3 - 30 bonus damage.
Level 4 - 40 bonus damage.


aPcIIIk goes into rage, increasing his attack speed and making impenetrable movement speed for a period of time. During that time, if aPcIIIk kills an enemy hero, all of his abilities will refresh cooldowns.

Level 1 - 40% attack speed, bonuses last for 6 seconds.
Level 2 - 60% attack speed, bonuses last for 9 seconds.
Level 3 - 80% attack speed, bonuses last for 12 seconds.


Starts blowing a gush of very heavy spinning wind, which travels and makes affected units spins few times and gets dizzy, having a chance to miss and has it's movement speed slowed by 12%. Spell is channeling. Channeling increases travelled range.


Dissapears and after 1.3 seconds appears in the targeted spot, throwing all units in 300 range in the air.


Summons 6 tornados around typhoon (650 range away from it) spinning around Typhoon and getting closer to it while pulling enemies into them and causing damage. Each tornado AoE of 300. Max channeling time - 2.5sec. Damage per second - 45/65/85


Hero shoots a pack of arrows in the direction it is facing. Each arrow deals damage equal to the amount of hero's agility. Arrows 3/4/5/6. Casting time of 0.9 seconds.


Takes aim for critical range assasination shot with superior grade arrow. 1.2 sec casting time. Casting range: 1000/1200/1400/1600. Damage: 125/150/175/200. If the target gets hit from behind deals aditional 2.75/3/3.25/3.5 x AGI damage.


Gives a percent chance to avoid attacks. While standing slowly blends away (becomes invisible). Each time this hero kills another hero it gains agility.

Level 1 - 5% chance that an opponent misses, 4.5 seconds fading time, 1.25 bonus agility from hero kill.
Level 2 - 10% chance that an opponent misses, 3.75 seconds fading time 1.5 bonus agility from hero kill.
Level 3 - 15% chance that an opponent misses, 3 seconds fading time, 1.75 bonus agility from hero kill.
Level 4 - 20% chance that an opponent misses, 2.25 seconds fading time, 2 bonus agility from hero kill.

Hero becomes invisible after fading for 1.25 seconds. During that time, it can do anything without being noticed by the enemy. Lasts 4.5/5.5/6.5 seconds.



When used, the hero gains life instead of getting damaged. If not on cooldown, it will automaticaly activate when your hero life drops below 400 hp. Dispells all negative buffs on cast.
Level 1 - Lasts 3 seconds.
Level 2 - Lasts 4 seconds.
Level 3 - Lasts 5 seconds.


Chains you and your enemy with a link, that when broken will stun the enemy for 3 seconds and deal damage.

Level 1 - Lasts 3 seconds, 75 damage, 650 range.
Level 2 - Lasts 4 seconds, 150 damage, 600 range.
Level 3 - Lasts 4 seconds, 225 damage, 550 range.


Sets a link between you and your target. The link transfers the damage your target takes. Link transfers 20%/30%/40%/50% of the damage to you. Lasts 20 seconds, or when the link reaches 1200 range.


Whenever a unit casts a spell while under this aura, it will restore percentage of it's mana.

Level 1 - 10% mana.
Level 2 - 15% mana.
Level 3 - 20% mana.


The hero uses magic, that swaps his targets mana with health. Health can't go below 500, also stuns the opponent.

Level 1 - 70% swap, 1 second stun.
Level 2 - 80% swap, 1 second stun.
Level 3 - 90% swap, 1 second stun.


Nearby units get their movement speed slowed stackably and when they are slowed almost to halt, the aura freezes them.

Level 1 - 500 AoE
Level 2 - 600 AoE
Level 3 - 700 AoE


The mage focuses his mind power on an area. Enemy UNIT cought in the area will get damaged by 25%(+25) of its max hp. If it dies by the damage, it explodes. Dealing damage delt on it to 300 aoe. If target is hero, burn up (mage's int x 2(+2)) mana but delt no damage.


The Hero kicks the target, after that jumps to him and slashes him, dealing 5/10/15 damage per slash, the target gets maimed, slowing his movement speed by 40% for 5 seconds. The Hero kick the target again.


The caster channels a powerful spell, which damages the enemy or heals the ally. The damage/heal is 75/150/225


Moves nearby units into one spot stunning them and dealing damage.

Level 1 - 100 damage, 2.5 second stun.
Level 2 - 175 damage, 3 second stun.
Level 3 - 250 damage, 3.5 second stun.


The Caster casts a spell, which damages the targeted unit by a random amount of damage and slows the target for 5 seconds. Also, in a random area around the target, random units are randomly damaged and also slowed.


Splits the mana of friendly units in 500 AoE.


Heals the allies in 600 area and sends unholy bolts to enemies that deal damage.

Level 1 - 100 damage.
Level 2 - 200 damage.
Level 3 - 300 damage.


Increases hit points regeneration by 85% (+30%xlevel) and when it mana drops to 100 (-5xlevel) low amount, it will begin to use it's health instead of mana for the next 10 spells. When it uses 10 spells, it will heal it's mana by 25%(+5%xlevel).



Gives Akacia a chance to increase hers attack speed for 2 seconds. Also gives an ability to focus sonic charges, which is involved in her other abilities.

Level 1 - 20% chance to get 50% increased attack speed.
Level 2 - 20% chance to get 100% increased attack speed.
Level 3 - 20% chance to get 150% increased attack speed.
Level 4 - 20% chance to get 200% increased attack speed.



Discharges a solid beam of sonic force toward a distant target. Uses 1 Sonic Charge.

Level 1 - Deals 50 + 20 x Sonic Charges damage.
Level 2 - Deals 50 + 30 x Sonic Charges damage.
Level 3 - Deals 50 + 40 x Sonic Charges damage.
Level 4 - Deals 50 + 50 x Sonic Charges damage.



Akacia focuses hers energy on the blades to increase power to her special attacks. Costs 20 hp. Maximum of 2/4/6/8 Charges.



You channel a sonic force which causes your weapon to strike three times the norm. Uses 2 Sonic Charges.

Level 1 - Deals 100 + 20 x Sonic Charges damage.
Level 2 - Deals 100 + 30 x Sonic Charges damage.
Level 3 - Deals 100 + 40 x Sonic Charges damage.
Level 4 - Deals 100 + 50 x Sonic Charges damage.



Akacia releases a charge to rush forward for 600 range, dealing damage depending on remaining charges and stuning the units she touches for 2 seconds. Upon reaching the final destination she gains 200% attack speed for 5 seconds. Uses 1 Sonic Charge.

Level 1 - Deals 100 + 20 x Sonic Charges damage.
Level 2 - Deals 200 + 20 x Sonic Charges damage.
Level 3 - Deals 300 + 20 x Sonic Charges damage.


Drags your units near the caster and shoots them as a projectile, unloading them at the targeted spot.

Level 1 - 300 AoE.
Level 2 - 400 AoE.
Level 3 - 500 AoE.
Level 4 - 600 AoE.



The triggers to the spells (it's much, believe me)



  • Chain Link
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Chain Link
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Chain_Link_Mui_Turnoff Equal to 0
        • Then - Actions
          • Trigger - Turn on Chain Link Loop <gen>
        • Else - Actions
      • Set Chain_Link_Mui_Integer = (Chain_Link_Mui_Integer + 1)
      • Set Chain_Link_Mui_Turnoff = (Chain_Link_Mui_Turnoff + 1)
      • Set Chain_Link_Off[Chain_Link_Mui_Integer] = True
      • -------- Setting the units for further use --------
      • Set Chain_Link_Unit[Chain_Link_Mui_Integer] = (Triggering unit)
      • Set Chain_Linked_Unit[Chain_Link_Mui_Integer] = (Target unit of ability being cast)
      • -------- Setting the locations for the lightning (the chain --------
      • Set Chain_Pos = (Position of Chain_Link_Unit[Chain_Link_Mui_Integer])
      • Set Chained_Pos = (Position of Chain_Linked_Unit[Chain_Link_Mui_Integer])
      • -------- Creating the lightning --------
      • Lightning - Create a lightning effect Magic Leash Chain_Pos Chained_Pos
      • -------- Setting the lightning for further use --------
      • Set Chained_Chain[Chain_Link_Mui_Integer] = (Last created lightning effect)
      • -------- Removing Leaks --------
      • Custom script: call RemoveLocation(udg_Chained_Pos)
      • Custom script: call RemoveLocation(udg_Chain_Pos)
  • Chain Link Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Chain_Link_Mui_Loop) from 1 to Chain_Link_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Chain_Link_Off[Chain_Link_Mui_Loop] Equal to True
            • Then - Actions
              • -------- Using the units, for positions, to avoid leaks and stuff :D --------
              • Set Chain_Pos = (Position of Chain_Link_Unit[Chain_Link_Mui_Loop])
              • Set Chained_Pos = (Position of Chain_Linked_Unit[Chain_Link_Mui_Loop])
              • -------- The distance between your hero and the target --------
              • Set Chain_Distance[Chain_Link_Mui_Loop] = (Distance between Chain_Pos and Chained_Pos)
              • -------- This is for checking the time (seconds of the link) --------
              • Set Chain_Time[Chain_Link_Mui_Loop] = (Chain_Time[Chain_Link_Mui_Loop] + 1)
              • -------- Time is , 25 times=1second, 50=2seconds + 1second per level --------
              • -------- And checking the distance, 700-50xlevel is 700-50, 700-100,700-150,700-200 --------
              • -------- If any of these apply, then we do the effects, Else we move the lightning for the lightning NOT TO STAY IN ONE PLACE --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • (Chain_Link_Unit[Chain_Link_Mui_Loop] is dead) Equal to True
                      • (Chain_Linked_Unit[Chain_Link_Mui_Loop] is dead) Equal to True
                      • Chain_Time[Chain_Link_Mui_Loop] Greater than or equal to (50 + (25 x (Level of Chain Link for Chain_Link_Unit[Chain_Link_Mui_Loop])))
                      • Chain_Distance[Chain_Link_Mui_Loop] Greater than or equal to (900.00 - (50.00 x (Real((Level of Chain Link for Chain_Link_Unit[Chain_Link_Mui_Loop])))))
                • Then - Actions
                  • Set Chain_Link_Mui_Turnoff = (Chain_Link_Mui_Turnoff - 1)
                  • Set Chain_Time[Chain_Link_Mui_Loop] = 0
                  • Set Chain_Link_Off[Chain_Link_Mui_Loop] = False
                  • -------- Creating a Dummy unit for the stun effect --------
                  • Unit - Create 1 Dummy :) for (Owner of Chain_Link_Unit[Chain_Link_Mui_Loop]) at Chain_Pos facing Default building facing degrees
                  • -------- Giving him the ability (stun) --------
                  • Unit - Add Storm Bolt [Hex] to (Last created unit)
                  • -------- Ordering to stun the target --------
                  • Unit - Order (Last created unit) to Human Mountain King - Storm Bolt Chain_Linked_Unit[Chain_Link_Mui_Loop]
                  • -------- Adding 1 second duration, so after 1 sec of creation the dummy dies, making you go 1 unit more, after 1 sec, same amount of units --------
                  • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                  • -------- You deal damage 75x level, level 1 75x1, level 2 75x2=150 and etc. --------
                  • Unit - Cause (Last created unit) to damage Chain_Linked_Unit[Chain_Link_Mui_Loop], dealing (75.00 x (Real((Level of Chain Link for Chain_Link_Unit[Chain_Link_Mui_Loop])))) damage of attack type Spells and damage type Magic
                  • -------- Destroy lightning, to remove leaks --------
                  • Lightning - Destroy Chained_Chain[Chain_Link_Mui_Loop]
                  • -------- Setting the timer to 0 for further spell use --------
                  • -------- Removing the leaks and turning off the trigger as it should be :) --------
                  • Custom script: call RemoveLocation(udg_Chain_Pos)
                  • Custom script: call RemoveLocation(udg_Chained_Pos)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Chain_Link_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Chain_Link_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • -------- If the time is <3/4/5/6 and the distance is <650/600/550/500 you move the lightning to the current places of units, so it doesn't stay in one plaace. --------
                  • Lightning - Move Chained_Chain[Chain_Link_Mui_Loop] Chain_Pos Chained_Pos
                  • Custom script: call RemoveLocation(udg_Chain_Pos)
                  • Custom script: call RemoveLocation(udg_Chained_Pos)
            • Else - Actions


  • Essence Shift
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • ((Triggering unit) has buff Essence Shift [Level 1]) Equal to True
          • ((Triggering unit) has buff Essence Shift [Level 2]) Equal to True
          • ((Triggering unit) has buff Essence Shift [Level 3]) Equal to True
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Triggering unit) has buff Essence Shift [Level 1]) Equal to True
        • Then - Actions
          • Set Essence_Shift_Percentage = 0.10
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Triggering unit) has buff Essence Shift [Level 2]) Equal to True
            • Then - Actions
              • Set Essence_Shift_Percentage = 0.15
            • Else - Actions
              • Set Essence_Shift_Percentage = 0.20
      • Unit - Set mana of (Triggering unit) to ((Mana of (Triggering unit)) + ((Max mana of (Triggering unit)) x Essence_Shift_Percentage))
      • Special Effect - Create a special effect attached to the overhead of (Triggering unit) using Abilities\Spells\Undead\ReplenishHealth\ReplenishHealthCasterOverhead.mdl
      • Special Effect - Destroy (Last created special effect)


  • Reverse Polarity aka Impact
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Reverse Polarity
    • Actions
      • Set Reverse_Polarity_Position = (Position of (Triggering unit))
      • Set Reverse_Polarity_Pos_Off = (Reverse_Polarity_Position offset by 250.00 towards (Facing of (Triggering unit)) degrees)
      • Set Reverse_Polarity_Group = (Units within 400.00 of Reverse_Polarity_Position matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) Not equal to (Triggering unit)) and ((((Matching unit) belongs to an enemy of (
      • Unit Group - Pick every unit in Reverse_Polarity_Group and do (Actions)
        • Loop - Actions
          • Unit - Move (Picked unit) instantly to Reverse_Polarity_Pos_Off
      • Custom script: call DestroyGroup(udg_Reverse_Polarity_Group)
      • Custom script: call RemoveLocation(udg_Reverse_Polarity_Position)
      • Custom script: call RemoveLocation(udg_Reverse_Polarity_Pos_Off)


  • Unholy Plats
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Unholy Plats
    • Actions
      • Set Unholy_Plats_Pos = (Position of (Triggering unit))
      • Set Unholy_Plats_Group = (Units within 612.00 of Unholy_Plats_Pos matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and (((Matching unit) is alive) Equal to True))))
      • Unit Group - Pick every unit in Unholy_Plats_Group and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) belongs to an enemy of (Triggering player)) Equal to True
            • Then - Actions
              • Unit - Create 1 Dummy :) for (Triggering player) at Unholy_Plats_Pos facing Default building facing degrees
              • Unit - Add Death Coil to (Last created unit)
              • Unit - Set level of Death Coil for (Last created unit) to (Level of Unholy Plats for (Triggering unit))
              • Unit - Order (Last created unit) to Undead Death Knight - Death Coil (Picked unit)
              • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
            • Else - Actions
              • Set Unholy_Plats_Allie_Pos = (Position of (Picked unit))
              • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (100.00 x (Real((Level of Unholy Plats for (Triggering unit))))))
              • Special Effect - Create a special effect at Unholy_Plats_Allie_Pos using Abilities\Spells\Items\ResourceItems\ResourceEffectTarget.mdl
              • Special Effect - Destroy (Last created special effect)
      • Custom script: call DestroyGroup(udg_Unholy_Plats_Group)
      • Custom script: call RemoveLocation(udg_Unholy_Plats_Pos)
      • Custom script: call RemoveLocation(udg_Unholy_Plats_Allie_Pos)


  • Force Staff
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Force
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Force_Staff_Mui_Turnoff Equal to 0
        • Then - Actions
          • Trigger - Turn on Force Staff Loop <gen>
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Target unit of ability being cast) Equal to No unit
        • Then - Actions
          • Set Force_Staff_Mui_Integer = (Force_Staff_Mui_Integer + 1)
          • Set Force_Staff_Mui_Turnoff = (Force_Staff_Mui_Turnoff + 1)
          • Set Force_Staff_Off[Force_Staff_Mui_Integer] = True
          • Set Force_Staff_Unit[Force_Staff_Mui_Integer] = (Triggering unit)
          • Unit - Turn collision for Force_Staff_Unit[Force_Staff_Mui_Integer] Off
          • Set Force_Staff_Distance[Force_Staff_Mui_Integer] = 600.00
          • Set Force_Staff_Facing[Force_Staff_Mui_Integer] = (Facing of Force_Staff_Unit[Force_Staff_Mui_Integer])
        • Else - Actions
          • Set Force_Staff_Mui_Integer = (Force_Staff_Mui_Integer + 1)
          • Set Force_Staff_Mui_Turnoff = (Force_Staff_Mui_Turnoff + 1)
          • Set Force_Staff_Off[Force_Staff_Mui_Integer] = True
          • Set Force_Staff_Unit[Force_Staff_Mui_Integer] = (Target unit of ability being cast)
          • Unit - Turn collision for Force_Staff_Unit[Force_Staff_Mui_Integer] Off
          • Set Force_Staff_Distance[Force_Staff_Mui_Integer] = 600.00
          • Set Force_Staff_Facing[Force_Staff_Mui_Integer] = (Facing of Force_Staff_Unit[Force_Staff_Mui_Integer])
  • Force Staff Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Force_Staff_Mui_Loop) from 1 to Force_Staff_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Force_Staff_Off[Force_Staff_Mui_Loop] Equal to True
            • Then - Actions
              • Set Force_Pos = (Position of Force_Staff_Unit[Force_Staff_Mui_Loop])
              • Set Force_Pos_Off = (Force_Pos offset by 50.00 towards Force_Staff_Facing[Force_Staff_Mui_Loop] degrees)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • Force_Staff_Distance[Force_Staff_Mui_Loop] Less than or equal to 0.00
                      • (Terrain pathing at Force_Pos_Off of type Flyability is off) Equal to True
                • Then - Actions
                  • Unit - Turn collision for Force_Staff_Unit[Force_Staff_Mui_Loop] On
                  • Set Force_Staff_Off[Force_Staff_Mui_Loop] = False
                  • Set Force_Staff_Mui_Turnoff = (Force_Staff_Mui_Turnoff - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Force_Staff_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Force_Staff_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • Destructible - Pick every destructible within 150.00 of Force_Pos and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Destructible-type of (Picked destructible)) Equal to Summer Tree Wall
                        • Then - Actions
                          • Destructible - Kill (Picked destructible)
                        • Else - Actions
                  • Custom script: call SetUnitX(udg_Force_Staff_Unit[udg_Force_Staff_Mui_Loop],GetLocationX(udg_Force_Pos_Off))
                  • Custom script: call SetUnitY(udg_Force_Staff_Unit[udg_Force_Staff_Mui_Loop],GetLocationY(udg_Force_Pos_Off))
                  • Special Effect - Create a special effect attached to the origin of Force_Staff_Unit[Force_Staff_Mui_Loop] using Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Set Force_Staff_Distance[Force_Staff_Mui_Loop] = (Force_Staff_Distance[Force_Staff_Mui_Loop] - 50.00)
              • Custom script: call RemoveLocation(udg_Force_Pos)
              • Custom script: call RemoveLocation(udg_Force_Pos_Off)
            • Else - Actions


  • Borrowed Time Initialization
    • Events
      • Unit - A unit Learns a skill
    • Conditions
      • (Learned Hero Skill) Equal to Borrowed Time
    • Actions
      • Set Borrower = (Triggering unit)
      • Trigger - Add to Borrowed Time Checking <gen> the event (Unit - Borrower Takes damage)
      • Trigger - Add to Borrowed Time Damage <gen> the event (Unit - Borrower Takes damage)
      • Trigger - Turn off (This trigger)
  • Borrowed Time Checking
    • Events
    • Conditions
      • (Life of Borrower) Less than or equal to 400.00
      • Borrowed_Cooldown Equal to False
    • Actions
      • Unit - Remove Negative buffs from Borrower
      • Unit - Order Borrower to Special - Channel
  • Borrowed Time Activation
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • Borrowed_Cooldown Equal to False
      • (Ability being cast) Equal to Borrowed Time
    • Actions
      • Special Effect - Create a special effect attached to the origin of Borrower using Abilities\Spells\Undead\Unsummon\UnsummonTarget.mdl
      • Set Borrowed_Effect = (Last created special effect)
      • Trigger - Turn on Borrowed Time Damage <gen>
      • Set Borrowed_Cooldown = True
      • Unit - Remove Negative buffs from Borrower
      • Trigger - Run Borrowed Time Timer <gen> (ignoring conditions)
      • Trigger - Turn on Borrowed Time Seconds <gen>
  • Borrowed Time Timer
    • Events
    • Conditions
    • Actions
      • Wait 10.00 seconds
      • Set Borrowed_Cooldown = False
      • Trigger - Turn off (This trigger)
  • Borrowed Time Damage
    • Events
    • Conditions
      • (Damage source) Not equal to Borrower
    • Actions
      • Unit - Set life of Borrower to ((Life of Borrower) + ((Damage taken) x 2.00))
  • Borrowed Time Seconds
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • Set Borrowed_Time = (Borrowed_Time + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Borrowed_Time Greater than or equal to (50 + (25 x (Level of Borrowed Time for Borrower)))
        • Then - Actions
          • Set Borrowed_Time = 0
          • Special Effect - Destroy Borrowed_Effect
          • Trigger - Turn off Borrowed Time Damage <gen>
          • Trigger - Turn off (This trigger)
        • Else - Actions


  • Empathic Warp Cancel
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Break Empathic Warp
    • Actions
      • Set Empathic_Warp_Time = 0
      • Trigger - Turn off Empathic Warp Damage <gen>
      • Trigger - Turn off Empathic Warp Loop <gen>
      • Custom script: call RemoveLocation(udg_Empathic_Warper_Pos)
      • Custom script: call RemoveLocation(udg_Empathic_Warpee_Pos)
      • Lightning - Destroy Empathic_Warp
      • Player - Disable Break Empathic Warp for (Owner of (Triggering unit))
      • Player - Enable Empathic Warp for (Owner of (Triggering unit))
  • Empathic Warp Learn
    • Events
      • Unit - A unit Learns a skill
    • Conditions
      • (Learned Hero Skill) Equal to Empathic Warp
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Empathic Warp for (Triggering unit)) Equal to 1
        • Then - Actions
          • Unit - Add Break Empathic Warp to (Triggering unit)
          • Player - Disable Break Empathic Warp for (Owner of (Triggering unit))
        • Else - Actions
          • Unit - Increase level of Break Empathic Warp for (Triggering unit)
  • Empathic Warp
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Empathic Warp
    • Actions
      • Player - Enable Break Empathic Warp for (Owner of (Triggering unit))
      • Set Empathic_Warper = (Triggering unit)
      • Set Empathic_Warpee = (Target unit of ability being cast)
      • Set Empathic_Warpee_Pos = (Position of Empathic_Warpee)
      • Set Empathic_Warper_Pos = (Position of Empathic_Warper)
      • Lightning - Create a lightning effect Mana Burn Empathic_Warper_Pos Empathic_Warpee_Pos
      • Set Empathic_Warp = (Last created lightning effect)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Target unit of ability being cast) is in Empathic_Warp_Group) Equal to True
        • Then - Actions
        • Else - Actions
          • Trigger - Add to Empathic Warp Damage <gen> the event (Unit - Empathic_Warpee Takes damage)
          • Unit Group - Add (Target unit of ability being cast) to Empathic_Warp_Group
      • Custom script: call RemoveLocation(udg_Empathic_Warpee_Pos)
      • Custom script: call RemoveLocation(udg_Empathic_Warper_Pos)
      • Player - Disable Empathic Warp for (Owner of (Triggering unit))
      • Trigger - Turn on Empathic Warp Damage <gen>
      • Trigger - Turn on Empathic Warp Loop <gen>
  • Empathic Warp Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • Set Empathic_Warpee_Pos = (Position of Empathic_Warpee)
      • Set Empathic_Warper_Pos = (Position of Empathic_Warper)
      • Set Empathic_Warp_Time = (Empathic_Warp_Time + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Or - Any (Conditions) are true
            • Conditions
              • (Empathic_Warpee is dead) Equal to True
              • (Empathic_Warper is dead) Equal to True
              • (Distance between Empathic_Warpee_Pos and Empathic_Warper_Pos) Greater than or equal to 1200.00
              • Empathic_Warp_Time Equal to 500
        • Then - Actions
          • Set Empathic_Warp_Time = 0
          • Player - Disable Break Empathic Warp for (Owner of Empathic_Warper)
          • Player - Enable Empathic Warp for (Owner of Empathic_Warper)
          • Trigger - Turn off Empathic Warp Damage <gen>
          • Trigger - Turn off (This trigger)
          • Custom script: call RemoveLocation(udg_Empathic_Warper_Pos)
          • Custom script: call RemoveLocation(udg_Empathic_Warpee_Pos)
          • Lightning - Destroy Empathic_Warp
        • Else - Actions
          • Lightning - Move Empathic_Warp Empathic_Warpee_Pos Empathic_Warper_Pos
          • Custom script: call RemoveLocation(udg_Empathic_Warper_Pos)
          • Custom script: call RemoveLocation(udg_Empathic_Warpee_Pos)
  • Empathic Warp Damage
    • Events
    • Conditions
      • (Damage source) Not equal to Empathic_Warpee
      • (Damage source) Not equal to Empathic_Warper
    • Actions
      • Set Empathic_Warper_Life = (Life of Empathic_Warper)
      • Set Empathic_Warp_Dmg_Amount = ((Damage taken) x (0.10 + (0.10 x (Real((Level of Empathic Warp for Empathic_Warper))))))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Empathic_Warp_Dmg_Amount Greater than or equal to Empathic_Warper_Life
        • Then - Actions
          • Unit - Set life of Empathic_Warper to 1.00
          • Unit - Set life of Empathic_Warpee to ((Life of Empathic_Warpee) + Empathic_Warp_Dmg_Amount)
          • Special Effect - Create a special effect attached to the chest of Empathic_Warper using Abilities\Weapons\SpiritOfVengeanceMissile\SpiritOfVengeanceMissile.mdl
          • Special Effect - Destroy (Last created special effect)
        • Else - Actions
          • Unit - Set life of Empathic_Warpee to ((Life of Empathic_Warpee) + Empathic_Warp_Dmg_Amount)
          • Trigger - Turn off Detecting a Melee attack <gen>
          • Unit - Cause (Damage source) to damage Empathic_Warper, dealing Empathic_Warp_Dmg_Amount damage of attack type Hero and damage type Normal
          • Trigger - Turn on Detecting a Melee attack <gen>
          • Special Effect - Create a special effect attached to the chest of Empathic_Warper using Abilities\Weapons\SpiritOfVengeanceMissile\SpiritOfVengeanceMissile.mdl
          • Special Effect - Destroy (Last created special effect)


  • Fortune Reversal
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Fortune Reversal
    • Actions
      • Set Fortune_Reversed = (Target unit of ability being cast)
      • Set Fortune_Reversal_Health = ((Life of Fortune_Reversed) x (0.60 + (0.10 x (Real((Level of Fortune Reversal for (Triggering unit)))))))
      • Set Fortune_Reversal_Mana = ((Mana of Fortune_Reversed) x (0.60 + (0.10 x (Real((Level of Fortune Reversal for (Triggering unit)))))))
      • Unit - Set mana of Fortune_Reversed to ((Mana of Fortune_Reversed) - Fortune_Reversal_Mana)
      • Unit - Set life of Fortune_Reversed to ((Life of Fortune_Reversed) - Fortune_Reversal_Health)
      • Unit - Set mana of Fortune_Reversed to ((Mana of Fortune_Reversed) + Fortune_Reversal_Health)
      • Unit - Set life of Fortune_Reversed to ((Life of Fortune_Reversed) + Fortune_Reversal_Mana)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Life of Fortune_Reversed) Less than 500.00
        • Then - Actions
          • Unit - Set life of Fortune_Reversed to 500.00
        • Else - Actions


  • Penitence
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Penitence
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Penitence_Mui_Turnoff Equal to 0
        • Then - Actions
          • Trigger - Turn on Penitence Loop <gen>
          • Trigger - Turn on Penitence Cancel <gen>
        • Else - Actions
      • Set Penitence_Mui_Integer = (Penitence_Mui_Integer + 1)
      • Set Penitence_Mui_Turnoff = (Penitence_Mui_Turnoff + 1)
      • Set Penitence_Off[Penitence_Mui_Integer] = True
      • Set Penitencer[Penitence_Mui_Integer] = (Triggering unit)
      • Set Penitencer_Target[Penitence_Mui_Integer] = (Target unit of ability being cast)
      • Set Penitence_Time[Penitence_Mui_Integer] = 0
  • Penitence Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Penitence_Mui_Loop) from 1 to Penitence_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Penitence_Off[Penitence_Mui_Loop] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Penitence_Time[Penitence_Mui_Loop] Equal to 75
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Penitencer_Target[Penitence_Mui_Loop] belongs to an enemy of (Owner of Penitencer[Penitence_Mui_Loop])) Equal to True
                    • Then - Actions
                      • Trigger - Turn off Detecting a Melee attack <gen>
                      • Unit - Cause Penitencer[Penitence_Mui_Loop] to damage Penitencer_Target[Penitence_Mui_Loop], dealing (75.00 x (Real((Level of Penitence for Penitencer[Penitence_Mui_Loop])))) damage of attack type Spells and damage type Magic
                      • Trigger - Turn on Detecting a Melee attack <gen>
                      • Special Effect - Create a special effect attached to the chest of Penitencer_Target[Penitence_Mui_Loop] using Abilities\Weapons\FireBallMissile\FireBallMissile.mdl
                      • Special Effect - Destroy (Last created special effect)
                    • Else - Actions
                      • Unit - Set life of Penitencer_Target[Penitence_Mui_Loop] to ((Life of Penitencer_Target[Penitence_Mui_Loop]) + (75.00 x (Real((Level of Penitence for Penitencer[Penitence_Mui_Loop])))))
                      • Special Effect - Create a special effect attached to the chest of Penitencer_Target[Penitence_Mui_Loop] using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
                      • Special Effect - Destroy (Last created special effect)
                  • Set Penitence_Mui_Turnoff = (Penitence_Mui_Turnoff - 1)
                  • Set Penitence_Off[Penitence_Mui_Loop] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Penitence_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Penitence_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                      • Trigger - Turn off Penitence Cancel <gen>
                    • Else - Actions
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Or - Any (Conditions) are true
                        • Conditions
                          • Penitence_Time[Penitence_Mui_Loop] Equal to 20
                          • Penitence_Time[Penitence_Mui_Loop] Equal to 50
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Penitencer_Target[Penitence_Mui_Loop] belongs to an enemy of (Owner of Penitencer[Penitence_Mui_Loop])) Equal to True
                        • Then - Actions
                          • Trigger - Turn off Detecting a Melee attack <gen>
                          • Unit - Cause Penitencer[Penitence_Mui_Loop] to damage Penitencer_Target[Penitence_Mui_Loop], dealing (75.00 x (Real((Level of Penitence for Penitencer[Penitence_Mui_Loop])))) damage of attack type Spells and damage type Magic
                          • Trigger - Turn on Detecting a Melee attack <gen>
                          • Special Effect - Create a special effect attached to the chest of Penitencer_Target[Penitence_Mui_Loop] using Abilities\Weapons\FireBallMissile\FireBallMissile.mdl
                          • Special Effect - Destroy (Last created special effect)
                        • Else - Actions
                          • Unit - Set life of Penitencer_Target[Penitence_Mui_Loop] to ((Life of Penitencer_Target[Penitence_Mui_Loop]) + (75.00 x (Real((Level of Penitence for Penitencer[Penitence_Mui_Loop])))))
                          • Special Effect - Create a special effect attached to the chest of Penitencer_Target[Penitence_Mui_Loop] using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
                          • Special Effect - Destroy (Last created special effect)
                    • Else - Actions
                  • Set Penitence_Time[Penitence_Mui_Loop] = (Penitence_Time[Penitence_Mui_Loop] + 1)
            • Else - Actions
  • Penitence Cancel
    • Events
      • Unit - A unit Stops casting an ability
    • Conditions
      • (Ability being cast) Equal to Penitence
    • Actions
      • For each (Integer Penitence_Stop_Loop) from 1 to Penitence_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Triggering unit) Equal to Penitencer[Penitence_Stop_Loop]
            • Then - Actions
              • Set Penitence_Off[Penitence_Stop_Loop] = False
              • Set Penitence_Mui_Turnoff = (Penitence_Mui_Turnoff - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Penitence_Mui_Turnoff Equal to 0
                • Then - Actions
                  • Set Penitence_Mui_Integer = 0
                  • Trigger - Turn off (This trigger)
                  • Trigger - Turn off Penitence Loop <gen>
                • Else - Actions
              • Skip remaining actions
            • Else - Actions


  • Devastating Strike
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Devastating Strike
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Devastating_Mui_Turnoff Equal to 0
        • Then - Actions
          • Trigger - Turn on Devastating Strike Loop <gen>
          • Trigger - Turn on Devastating Check <gen>
        • Else - Actions
      • Set Devastating_Check_Mui_Integer = (Devastating_Check_Mui_Integer + 1)
      • Set Devastating_Check_Mui_Turnoff = (Devastating_Check_Mui_Turnoff + 1)
      • Set Devastating_Check_Off[Devastating_Check_Mui_Integer] = True
      • Set Devastating_Mui_Integer = (Devastating_Mui_Integer + 1)
      • Set Devastating_Mui_Turnoff = (Devastating_Mui_Turnoff + 1)
      • Set Devastating_Off[Devastating_Mui_Integer] = True
      • Set Devastator[Devastating_Mui_Integer] = (Triggering unit)
      • Set Devastator_Target[Devastating_Mui_Integer] = (Target unit of ability being cast)
      • Set Devastator_Height[Devastating_Mui_Integer] = 0.00
      • Set Devastator_Pos = (Position of (Triggering unit))
      • Special Effect - Create a special effect attached to the chest of (Target unit of ability being cast) using Abilities\Weapons\CannonTowerMissile\CannonTowerMissile.mdl
      • Set Devastation_Sfx = (Last created special effect)
      • Special Effect - Destroy Devastation_Sfx
      • Unit - Add Crow Form to (Triggering unit)
      • Unit - Remove Crow Form from (Triggering unit)
      • Unit - Create 1 Dummy :) for (Owner of (Triggering unit)) at Devastator_Pos facing Default building facing degrees
      • Unit - Add Storm Bolt [Devastator] to (Last created unit)
      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
      • Unit - Order (Last created unit) to Human Mountain King - Storm Bolt (Triggering unit)
      • Unit - Create 1 Dummy :) for (Owner of (Triggering unit)) at Devastator_Pos facing Default building facing degrees
      • Unit - Add Storm Bolt [Devastator] to (Last created unit)
      • Unit - Set level of Storm Bolt [Devastator] for (Last created unit) to (Level of Devastating Strike for (Triggering unit))
      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
      • Unit - Order (Last created unit) to Human Mountain King - Storm Bolt (Target unit of ability being cast)
      • Unit - Turn collision for (Target unit of ability being cast) Off
      • Custom script: call RemoveLocation(udg_Devastator_Pos)
  • Devastating Strike Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Devastating_Mui_Loop) from 1 to Devastating_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Devastating_Off[Devastating_Mui_Loop] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • (Devastator[Devastating_Mui_Loop] is dead) Equal to True
                      • (Devastator_Target[Devastating_Mui_Loop] is dead) Equal to True
                      • Devastation_Time[Devastating_Mui_Loop] Equal to 175
                • Then - Actions
                  • Unit - Remove Devastating Strike buff from Devastator[Devastating_Mui_Loop]
                  • Unit - Remove Devastating Strike buff from Devastator_Target[Devastating_Mui_Loop]
                  • Set Devastator_Height[Devastating_Mui_Loop] = 0.00
                  • Set Devastation_Time[Devastating_Mui_Loop] = 0
                  • Unit - Turn collision for Devastator[Devastating_Mui_Loop] On
                  • Unit - Turn collision for Devastator_Target[Devastating_Mui_Loop] On
                  • Animation - Change Devastator[Devastating_Mui_Loop] flying height to 0.00 at 9999.00
                  • Animation - Change Devastator[Devastating_Mui_Loop]'s animation speed to 100.00% of its original speed
                  • Set Devastating_Mui_Turnoff = (Devastating_Mui_Turnoff - 1)
                  • Set Devastating_Off[Devastating_Mui_Loop] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Devastating_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Devastating_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                  • Trigger - Turn off Devastating Check <gen>
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Devastation_Time[Devastating_Mui_Loop] Less than 25
                    • Then - Actions
                      • Set Devastator_Target_Pos = (Position of Devastator_Target[Devastating_Mui_Loop])
                      • Unit - Make Devastator[Devastating_Mui_Loop] face Devastator_Target[Devastating_Mui_Loop] over 0.00 seconds
                      • Unit - Make Devastator_Target[Devastating_Mui_Loop] face Devastator[Devastating_Mui_Loop] over 0.00 seconds
                      • Set Devastator_Target_Pos_Off = (Devastator_Target_Pos offset by 24.00 towards (Facing of Devastator[Devastating_Mui_Loop]) degrees)
                      • Set Devastation_Group[Devastating_Mui_Loop] = (Units within 100.00 of Devastator_Target_Pos matching ((((Matching unit) is alive) Equal to True) and ((Matching unit) Not equal to Devastator_Target[Devastating_Mui_Loop])))
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Number of units in Devastation_Group[Devastating_Mui_Loop]) Equal to 0
                        • Then - Actions
                        • Else - Actions
                          • Unit - Cause Devastator[Devastating_Mui_Loop] to damage Devastator_Target[Devastating_Mui_Loop], dealing 5.00 damage of attack type Hero and damage type Normal
                          • Special Effect - Create a special effect attached to the chest of Devastator_Target[Devastating_Mui_Loop] using Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
                          • Special Effect - Destroy (Last created special effect)
                      • Destructible - Pick every destructible within 125.00 of Devastator_Target_Pos and do (Actions)
                        • Loop - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Destructible-type of (Picked destructible)) Equal to Summer Tree Wall
                            • Then - Actions
                              • Destructible - Kill (Picked destructible)
                            • Else - Actions
                      • Unit - Move Devastator_Target[Devastating_Mui_Loop] instantly to Devastator_Target_Pos_Off
                      • Set Devastation_Time[Devastating_Mui_Loop] = (Devastation_Time[Devastating_Mui_Loop] + 1)
                      • Custom script: call RemoveLocation(udg_Devastator_Target_Pos)
                      • Custom script: call RemoveLocation(udg_Devastator_Target_Pos_Off)
                      • Custom script: call DestroyGroup(udg_Devastation_Group[udg_Devastating_Mui_Loop])
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • Devastation_Time[Devastating_Mui_Loop] Greater than or equal to 25
                          • Devastation_Time[Devastating_Mui_Loop] Less than 50
                        • Then - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • Devastation_Time[Devastating_Mui_Loop] Equal to 25
                            • Then - Actions
                              • Unit - Turn collision for Devastator[Devastating_Mui_Loop] Off
                            • Else - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • Devastation_Time[Devastating_Mui_Loop] Greater than or equal to 37
                              • Devastation_Time[Devastating_Mui_Loop] Less than 50
                            • Then - Actions
                              • Set Devastator_Height[Devastating_Mui_Loop] = (Devastator_Height[Devastating_Mui_Loop] - 20.00)
                              • Set Devastator_Target_Pos = (Position of Devastator_Target[Devastating_Mui_Loop])
                              • Set Devastator_Pos = (Position of Devastator[Devastating_Mui_Loop])
                              • Set Devastator_Pos_Off = (Devastator_Pos offset by 23.00 towards (Facing of Devastator[Devastating_Mui_Loop]) degrees)
                              • Set Devastation_Time[Devastating_Mui_Loop] = (Devastation_Time[Devastating_Mui_Loop] + 1)
                              • Animation - Change Devastator[Devastating_Mui_Loop] flying height to Devastator_Height[Devastating_Mui_Loop] at 9999.00
                              • Unit - Move Devastator[Devastating_Mui_Loop] instantly to Devastator_Pos_Off
                            • Else - Actions
                              • Set Devastator_Height[Devastating_Mui_Loop] = (Devastator_Height[Devastating_Mui_Loop] + 20.00)
                              • Set Devastator_Target_Pos = (Position of Devastator_Target[Devastating_Mui_Loop])
                              • Set Devastator_Pos = (Position of Devastator[Devastating_Mui_Loop])
                              • Set Devastator_Pos_Off = (Devastator_Pos offset by 23.00 towards (Facing of Devastator[Devastating_Mui_Loop]) degrees)
                              • Set Devastation_Time[Devastating_Mui_Loop] = (Devastation_Time[Devastating_Mui_Loop] + 1)
                              • Animation - Change Devastator[Devastating_Mui_Loop] flying height to Devastator_Height[Devastating_Mui_Loop] at 9999.00
                              • Unit - Move Devastator[Devastating_Mui_Loop] instantly to Devastator_Pos_Off
                          • Custom script: call RemoveLocation(udg_Devastator_Target_Pos)
                          • Custom script: call RemoveLocation(udg_Devastator_Pos)
                          • Custom script: call RemoveLocation(udg_Devastator_Pos_Off)
                        • Else - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • Devastation_Time[Devastating_Mui_Loop] Equal to 50
                            • Then - Actions
                              • Set Devastation_Time[Devastating_Mui_Loop] = (Devastation_Time[Devastating_Mui_Loop] + 1)
                              • Animation - Change Devastator[Devastating_Mui_Loop]'s animation speed to 300.00% of its original speed
                              • Animation - Play Devastator[Devastating_Mui_Loop]'s attack animation
                              • Unit - Turn collision for Devastator[Devastating_Mui_Loop] On
                            • Else - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • Devastation_Time[Devastating_Mui_Loop] Greater than or equal to 50
                                  • Devastation_Time[Devastating_Mui_Loop] Less than 65
                                • Then - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • Devastation_Time[Devastating_Mui_Loop] Equal to 60
                                    • Then - Actions
                                      • Unit - Cause Devastator[Devastating_Mui_Loop] to damage Devastator_Target[Devastating_Mui_Loop], dealing (5.00 x (Real((Level of Devastating Strike for Devastator[Devastating_Mui_Loop])))) damage of attack type Hero and damage type Normal
                                      • Special Effect - Create a special effect attached to the chest of Devastator_Target[Devastating_Mui_Loop] using Objects\Spawnmodels\Critters\Albatross\CritterBloodAlbatross.mdl
                                      • Special Effect - Destroy (Last created special effect)
                                    • Else - Actions
                                  • Set Devastation_Time[Devastating_Mui_Loop] = (Devastation_Time[Devastating_Mui_Loop] + 1)
                                • Else - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • Devastation_Time[Devastating_Mui_Loop] Greater than or equal to 65
                                      • Devastation_Time[Devastating_Mui_Loop] Less than 80
                                    • Then - Actions
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • Devastation_Time[Devastating_Mui_Loop] Equal to 65
                                        • Then - Actions
                                          • Animation - Play Devastator[Devastating_Mui_Loop]'s attack animation
                                          • Set Devastation_Time[Devastating_Mui_Loop] = (Devastation_Time[Devastating_Mui_Loop] + 1)
                                        • Else - Actions
                                          • Set Devastation_Time[Devastating_Mui_Loop] = (Devastation_Time[Devastating_Mui_Loop] + 1)
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • Devastation_Time[Devastating_Mui_Loop] Equal to 75
                                        • Then - Actions
                                          • Unit - Cause Devastator[Devastating_Mui_Loop] to damage Devastator_Target[Devastating_Mui_Loop], dealing (5.00 x (Real((Level of Devastating Strike for Devastator[Devastating_Mui_Loop])))) damage of attack type Hero and damage type Normal
                                          • Special Effect - Create a special effect attached to the chest of Devastator_Target[Devastating_Mui_Loop] using Objects\Spawnmodels\Critters\Albatross\CritterBloodAlbatross.mdl
                                          • Special Effect - Destroy (Last created special effect)
                                        • Else - Actions
                                    • Else - Actions
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • Devastation_Time[Devastating_Mui_Loop] Greater than or equal to 80
                                          • Devastation_Time[Devastating_Mui_Loop] Less than 95
                                        • Then - Actions
                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            • If - Conditions
                                              • Devastation_Time[Devastating_Mui_Loop] Equal to 80
                                            • Then - Actions
                                              • Animation - Play Devastator[Devastating_Mui_Loop]'s attack animation
                                              • Set Devastation_Time[Devastating_Mui_Loop] = (Devastation_Time[Devastating_Mui_Loop] + 1)
                                            • Else - Actions
                                              • Set Devastation_Time[Devastating_Mui_Loop] = (Devastation_Time[Devastating_Mui_Loop] + 1)
                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            • If - Conditions
                                              • Devastation_Time[Devastating_Mui_Loop] Equal to 90
                                            • Then - Actions
                                              • Unit - Cause Devastator[Devastating_Mui_Loop] to damage Devastator_Target[Devastating_Mui_Loop], dealing (5.00 x (Real((Level of Devastating Strike for Devastator[Devastating_Mui_Loop])))) damage of attack type Hero and damage type Normal
                                              • Special Effect - Create a special effect attached to the chest of Devastator_Target[Devastating_Mui_Loop] using Objects\Spawnmodels\Critters\Albatross\CritterBloodAlbatross.mdl
                                              • Special Effect - Destroy (Last created special effect)
                                            • Else - Actions
                                        • Else - Actions
                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            • If - Conditions
                                              • Devastation_Time[Devastating_Mui_Loop] Greater than or equal to 95
                                              • Devastation_Time[Devastating_Mui_Loop] Less than 110
                                            • Then - Actions
                                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                • If - Conditions
                                                  • Devastation_Time[Devastating_Mui_Loop] Equal to 105
                                                • Then - Actions
                                                  • Unit - Cause Devastator[Devastating_Mui_Loop] to damage Devastator_Target[Devastating_Mui_Loop], dealing (5.00 x (Real((Level of Devastating Strike for Devastator[Devastating_Mui_Loop])))) damage of attack type Hero and damage type Normal
                                                  • Special Effect - Create a special effect attached to the chest of Devastator_Target[Devastating_Mui_Loop] using Objects\Spawnmodels\Critters\Albatross\CritterBloodAlbatross.mdl
                                                  • Special Effect - Destroy (Last created special effect)
                                                • Else - Actions
                                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                • If - Conditions
                                                  • Devastation_Time[Devastating_Mui_Loop] Equal to 95
                                                • Then - Actions
                                                  • Animation - Play Devastator[Devastating_Mui_Loop]'s attack animation
                                                  • Set Devastation_Time[Devastating_Mui_Loop] = (Devastation_Time[Devastating_Mui_Loop] + 1)
                                                • Else - Actions
                                                  • Set Devastation_Time[Devastating_Mui_Loop] = (Devastation_Time[Devastating_Mui_Loop] + 1)
                                            • Else - Actions
                                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                • If - Conditions
                                                  • Devastation_Time[Devastating_Mui_Loop] Greater than or equal to 110
                                                  • Devastation_Time[Devastating_Mui_Loop] Less than 125
                                                • Then - Actions
                                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                    • If - Conditions
                                                      • Devastation_Time[Devastating_Mui_Loop] Equal to 120
                                                    • Then - Actions
                                                      • Unit - Cause Devastator[Devastating_Mui_Loop] to damage Devastator_Target[Devastating_Mui_Loop], dealing (5.00 x (Real((Level of Devastating Strike for Devastator[Devastating_Mui_Loop])))) damage of attack type Hero and damage type Normal
                                                      • Special Effect - Create a special effect attached to the chest of Devastator_Target[Devastating_Mui_Loop] using Objects\Spawnmodels\Critters\Albatross\CritterBloodAlbatross.mdl
                                                      • Special Effect - Destroy (Last created special effect)
                                                    • Else - Actions
                                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                    • If - Conditions
                                                      • Devastation_Time[Devastating_Mui_Loop] Equal to 110
                                                    • Then - Actions
                                                      • Animation - Play Devastator[Devastating_Mui_Loop]'s attack animation
                                                      • Set Devastation_Time[Devastating_Mui_Loop] = (Devastation_Time[Devastating_Mui_Loop] + 1)
                                                    • Else - Actions
                                                      • Set Devastation_Time[Devastating_Mui_Loop] = (Devastation_Time[Devastating_Mui_Loop] + 1)
                                                • Else - Actions
                                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                    • If - Conditions
                                                      • Devastation_Time[Devastating_Mui_Loop] Greater than or equal to 125
                                                      • Devastation_Time[Devastating_Mui_Loop] Less than 150
                                                    • Then - Actions
                                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                        • If - Conditions
                                                          • Devastation_Time[Devastating_Mui_Loop] Equal to 125
                                                        • Then - Actions
                                                          • Animation - Change Devastator[Devastating_Mui_Loop]'s animation speed to 50.00% of its original speed
                                                          • Animation - Play Devastator[Devastating_Mui_Loop]'s attack animation
                                                          • Set Devastation_Time[Devastating_Mui_Loop] = (Devastation_Time[Devastating_Mui_Loop] + 1)
                                                        • Else - Actions
                                                          • Set Devastation_Time[Devastating_Mui_Loop] = (Devastation_Time[Devastating_Mui_Loop] + 1)
                                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                        • If - Conditions
                                                          • Devastation_Time[Devastating_Mui_Loop] Equal to 145
                                                        • Then - Actions
                                                          • Unit - Cause Devastator[Devastating_Mui_Loop] to damage Devastator_Target[Devastating_Mui_Loop], dealing (30.00 x (Real((Level of Devastating Strike for Devastator[Devastating_Mui_Loop])))) damage of attack type Hero and damage type Normal
                                                          • Special Effect - Create a special effect attached to the chest of Devastator_Target[Devastating_Mui_Loop] using Objects\Spawnmodels\Critters\Albatross\CritterBloodAlbatross.mdl
                                                          • Special Effect - Destroy (Last created special effect)
                                                          • Special Effect - Create a special effect attached to the chest of Devastator_Target[Devastating_Mui_Loop] using Abilities\Weapons\CannonTowerMissile\CannonTowerMissile.mdl
                                                          • Special Effect - Destroy (Last created special effect)
                                                          • Set Devastator_Target_Pos = (Position of Devastator_Target[Devastating_Mui_Loop])
                                                          • Unit - Create 1 Dummy :) for (Owner of Devastator[Devastating_Mui_Loop]) at Devastator_Target_Pos facing Default building facing degrees
                                                          • Unit - Add Slow to (Last created unit)
                                                          • Unit - Order (Last created unit) to Human Sorceress - Slow Devastator_Target[Devastating_Mui_Loop]
                                                          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                                                          • Unit - Create 1 Dummy :) for (Owner of Devastator[Devastating_Mui_Loop]) at Devastator_Target_Pos facing Default building facing degrees
                                                          • Unit - Add Storm Bolt [Hex] to (Last created unit)
                                                          • Unit - Set level of Storm Bolt [Hex] for (Last created unit) to (Level of Devastating Strike for Devastator[Devastating_Mui_Loop])
                                                          • Unit - Remove Devastating Strike buff from Devastator_Target[Devastating_Mui_Loop]
                                                          • Unit - Order (Last created unit) to Human Mountain King - Storm Bolt Devastator_Target[Devastating_Mui_Loop]
                                                          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                                                          • Custom script: call RemoveLocation(udg_Devastator_Target_Pos)
                                                        • Else - Actions
                                                    • Else - Actions
                                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                        • If - Conditions
                                                          • Devastation_Time[Devastating_Mui_Loop] Greater than or equal to 150
                                                          • Devastation_Time[Devastating_Mui_Loop] Less than 175
                                                        • Then - Actions
                                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                            • If - Conditions
                                                              • Devastation_Time[Devastating_Mui_Loop] Equal to 150
                                                            • Then - Actions
                                                              • Unit - Make Devastator[Devastating_Mui_Loop] face Devastator_Target[Devastating_Mui_Loop] over 0.00 seconds
                                                              • Unit - Make Devastator_Target[Devastating_Mui_Loop] face Devastator[Devastating_Mui_Loop] over 0.00 seconds
                                                              • Animation - Change Devastator[Devastating_Mui_Loop]'s animation speed to 100.00% of its original speed
                                                              • Set Devastation_Time[Devastating_Mui_Loop] = (Devastation_Time[Devastating_Mui_Loop] + 1)
                                                              • Set Devastator_Facing[Devastating_Mui_Loop] = (Facing of Devastator[Devastating_Mui_Loop])
                                                            • Else - Actions
                                                          • Set Devastator_Target_Pos = (Position of Devastator_Target[Devastating_Mui_Loop])
                                                          • Unit - Make Devastator[Devastating_Mui_Loop] face Devastator_Target[Devastating_Mui_Loop] over 0.00 seconds
                                                          • Unit - Make Devastator_Target[Devastating_Mui_Loop] face Devastator[Devastating_Mui_Loop] over 0.00 seconds
                                                          • Set Devastator_Target_Pos_Off = (Devastator_Target_Pos offset by 24.00 towards Devastator_Facing[Devastating_Mui_Loop] degrees)
                                                          • Set Devastation_Time[Devastating_Mui_Loop] = (Devastation_Time[Devastating_Mui_Loop] + 1)
                                                          • Set Devastation_Group[Devastating_Mui_Loop] = (Units within 100.00 of Devastator_Target_Pos matching ((((Matching unit) is alive) Equal to True) and ((Matching unit) Not equal to Devastator_Target[Devastating_Mui_Loop])))
                                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                            • If - Conditions
                                                              • (Number of units in Devastation_Group[Devastating_Mui_Loop]) Equal to 0
                                                            • Then - Actions
                                                            • Else - Actions
                                                              • Unit - Cause Devastator[Devastating_Mui_Loop] to damage Devastator_Target[Devastating_Mui_Loop], dealing 5.00 damage of attack type Hero and damage type Normal
                                                              • Special Effect - Create a special effect attached to the chest of Devastator_Target[Devastating_Mui_Loop] using Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
                                                              • Special Effect - Destroy (Last created special effect)
                                                          • Destructible - Pick every destructible within 125.00 of Devastator_Target_Pos and do (Actions)
                                                            • Loop - Actions
                                                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                                • If - Conditions
                                                                  • (Destructible-type of (Picked destructible)) Equal to Summer Tree Wall
                                                                • Then - Actions
                                                                  • Destructible - Kill (Picked destructible)
                                                                • Else - Actions
                                                          • Unit - Move Devastator_Target[Devastating_Mui_Loop] instantly to Devastator_Target_Pos_Off
                                                          • Set Devastation_Time[Devastating_Mui_Loop] = (Devastation_Time[Devastating_Mui_Loop] + 1)
                                                          • Custom script: call RemoveLocation(udg_Devastator_Target_Pos)
                                                          • Custom script: call RemoveLocation(udg_Devastator_Target_Pos_Off)
                                                          • Custom script: call DestroyGroup(udg_Devastation_Group[udg_Devastating_Mui_Loop])
                                                        • Else - Actions
            • Else - Actions
  • Devastating Check
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Devastating_Check_Mui_Loop) from 1 to Devastating_Check_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Devastating_Check_Off[Devastating_Check_Mui_Loop] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Devastating_Check[Devastating_Check_Mui_Loop] Equal to 145
                • Then - Actions
                  • Set Devastating_Check[Devastating_Check_Mui_Loop] = 0
                  • Set Devastating_Check_Mui_Turnoff = (Devastating_Check_Mui_Turnoff - 1)
                  • Set Devastating_Check_Off[Devastating_Check_Mui_Loop] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Devastating_Check_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Devastating_Check_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Devastating_Check[Devastating_Check_Mui_Loop] Greater than 25
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • Or - Any (Conditions) are true
                            • Conditions
                              • (Devastator[Devastating_Check_Mui_Loop] has buff Devastating Strike ) Equal to True
                              • (Devastator_Target[Devastating_Check_Mui_Loop] has buff Devastating Strike ) Equal to True
                              • (Devastator[Devastating_Check_Mui_Loop] has buff Stunned) Equal to True
                              • (Devastator_Target[Devastating_Check_Mui_Loop] has buff Stunned) Equal to True
                        • Then - Actions
                        • Else - Actions
                          • Set Devastating_Check[Devastating_Check_Mui_Loop] = 0
                          • Set Devastating_Check_Mui_Turnoff = (Devastating_Check_Mui_Turnoff - 1)
                          • Set Devastating_Check_Off[Devastating_Check_Mui_Loop] = False
                          • Set Devastation_Time[Devastating_Check_Mui_Loop] = 0
                          • Set Devastating_Mui_Turnoff = (Devastating_Health_Mui_Turnoff - 1)
                          • Set Devastating_Off[Devastating_Check_Mui_Loop] = False
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • Or - Any (Conditions) are true
                                • Conditions
                                  • Devastating_Check_Mui_Turnoff Equal to 0
                            • Then - Actions
                              • Set Devastating_Check_Mui_Integer = 0
                              • Trigger - Turn off (This trigger)
                            • Else - Actions
                          • Set Devastating_Check[Devastating_Check_Mui_Loop] = 0
                          • Unit - Turn collision for Devastator[Devastating_Check_Mui_Loop] On
                          • Unit - Turn collision for Devastator_Target[Devastating_Check_Mui_Loop] On
                          • Unit - Remove Devastating Strike buff from Devastator[Devastating_Check_Mui_Loop]
                          • Unit - Remove Devastating Strike buff from Devastator_Target[Devastating_Check_Mui_Loop]
                          • Animation - Change Devastator[Devastating_Check_Mui_Loop] flying height to 0.00 at 9999.00
                          • Animation - Change Devastator[Devastating_Check_Mui_Loop]'s animation speed to 100.00% of its original speed
                    • Else - Actions
              • Set Devastating_Check[Devastating_Check_Mui_Loop] = (Devastating_Check[Devastating_Check_Mui_Loop] + 1)
            • Else - Actions


  • Spell of Randomness
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Spell of Randomness
    • Actions
      • Set Random_Position = (Position of (Target unit of ability being cast))
      • Special Effect - Create a special effect attached to the chest of (Target unit of ability being cast) using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
      • Special Effect - Destroy (Last created special effect)
      • Unit - Create 1 Dummy :) for (Triggering player) at Random_Position facing Default building facing degrees
      • Unit - Add Slow to (Last created unit)
      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
      • Unit - Order (Last created unit) to Human Sorceress - Slow (Target unit of ability being cast)
      • Trigger - Turn off Detecting a Melee attack <gen>
      • Unit - Cause (Triggering unit) to damage (Target unit of ability being cast), dealing (Random real number between 50.00 and 350.00) damage of attack type Spells and damage type Magic
      • Trigger - Turn on Detecting a Melee attack <gen>
      • Set Random_Area = (Random real number between 200.00 and 600.00)
      • Set Random_Group = (Units within (Random real number between 200.00 and 600.00) of Random_Position matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and (((Matching unit) belongs to an enemy of (Triggering player
      • Set Random_Group_Random_People = (Random (Random integer number between 1 and (Number of units in Random_Group)) units from Random_Group)
      • Custom script: call RemoveLocation(udg_Random_Position)
      • Unit Group - Pick every unit in Random_Group_Random_People and do (Actions)
        • Loop - Actions
          • Set Random_Position = (Position of (Picked unit))
          • Unit - Create 1 Dummy :) for (Triggering player) at Random_Position facing Default building facing degrees
          • Unit - Add Slow to (Last created unit)
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Unit - Order (Last created unit) to Human Sorceress - Slow (Picked unit)
          • Trigger - Turn off Detecting a Melee attack <gen>
          • Unit - Cause (Triggering unit) to damage (Picked unit), dealing (Random real number between 50.00 and 350.00) damage of attack type Spells and damage type Magic
          • Trigger - Turn on Detecting a Melee attack <gen>
          • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation(udg_Random_Position)
      • Custom script: call DestroyGroup(udg_Random_Group)
      • Custom script: call DestroyGroup(udg_Random_Group_Random_People)


  • Burnout Real Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • Burnout_Burning Equal to True
      • (Triggering unit) Equal to Burnouter
      • Or - Any (Conditions) are true
        • Conditions
          • (Ability being cast) Equal to Devastating Strike
          • (Ability being cast) Equal to Mind Explosion
          • (Ability being cast) Equal to Penitence
          • (Ability being cast) Equal to Chain Link
    • Actions
      • -------- ^^ Above put the abilities the unit will use --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Ability being cast) Equal to Devastating Strike
        • Then - Actions
          • Set Burnout_Mana = 50.00
          • Unit - Set mana of (Triggering unit) to ((Mana of (Triggering unit)) + 50.00)
          • -------- This if - then - else is only nescesary if you don't want to make the unit suicide (: --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Life of (Triggering unit)) Less than or equal to Burnout_Mana
            • Then - Actions
              • Unit - Set life of (Triggering unit) to 1.00
              • Special Effect - Create a special effect attached to the chest of (Triggering unit) using Abilities\Weapons\CannonTowerMissile\CannonTowerMissile.mdl
              • Special Effect - Destroy (Last created special effect)
            • Else - Actions
              • Unit - Set life of (Triggering unit) to ((Life of (Triggering unit)) - Burnout_Mana)
              • Special Effect - Create a special effect attached to the chest of (Triggering unit) using Abilities\Weapons\CannonTowerMissile\CannonTowerMissile.mdl
              • Special Effect - Destroy (Last created special effect)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Ability being cast) Equal to Penitence
            • Then - Actions
              • Set Burnout_Mana = 50.00
              • Unit - Set mana of (Triggering unit) to ((Mana of (Triggering unit)) + 50.00)
              • -------- This if - then - else is only nescesary if you don't want to make the unit suicide (: --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Life of (Triggering unit)) Less than or equal to Burnout_Mana
                • Then - Actions
                  • Unit - Set life of (Triggering unit) to 1.00
                  • Special Effect - Create a special effect attached to the chest of (Triggering unit) using Abilities\Weapons\CannonTowerMissile\CannonTowerMissile.mdl
                  • Special Effect - Destroy (Last created special effect)
                • Else - Actions
                  • Unit - Set life of (Triggering unit) to ((Life of (Triggering unit)) - Burnout_Mana)
                  • Special Effect - Create a special effect attached to the chest of (Triggering unit) using Abilities\Weapons\CannonTowerMissile\CannonTowerMissile.mdl
                  • Special Effect - Destroy (Last created special effect)
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Ability being cast) Equal to Mind Explosion
                • Then - Actions
                  • Set Burnout_Mana = 25.00
                  • Unit - Set mana of (Triggering unit) to ((Mana of (Triggering unit)) + 25.00)
                  • -------- This if - then - else is only nescesary if you don't want to make the unit suicide (: --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Life of (Triggering unit)) Less than or equal to Burnout_Mana
                    • Then - Actions
                      • Unit - Set life of (Triggering unit) to 1.00
                      • Special Effect - Create a special effect attached to the chest of (Triggering unit) using Abilities\Weapons\CannonTowerMissile\CannonTowerMissile.mdl
                      • Special Effect - Destroy (Last created special effect)
                    • Else - Actions
                      • Unit - Set life of (Triggering unit) to ((Life of (Triggering unit)) - Burnout_Mana)
                      • Special Effect - Create a special effect attached to the chest of (Triggering unit) using Abilities\Weapons\CannonTowerMissile\CannonTowerMissile.mdl
                      • Special Effect - Destroy (Last created special effect)
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Ability being cast) Equal to Chain Link
                    • Then - Actions
                      • Set Burnout_Mana = 70.00
                      • Unit - Set mana of (Triggering unit) to ((Mana of (Triggering unit)) + 70.00)
                      • -------- This if - then - else is only nescesary if you don't want to make the unit suicide (: --------
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Life of (Triggering unit)) Less than or equal to Burnout_Mana
                        • Then - Actions
                          • Unit - Set life of (Triggering unit) to 1.00
                          • Special Effect - Create a special effect attached to the chest of (Triggering unit) using Abilities\Weapons\CannonTowerMissile\CannonTowerMissile.mdl
                          • Special Effect - Destroy (Last created special effect)
                        • Else - Actions
                          • Unit - Set life of (Triggering unit) to ((Life of (Triggering unit)) - Burnout_Mana)
                          • Special Effect - Create a special effect attached to the chest of (Triggering unit) using Abilities\Weapons\CannonTowerMissile\CannonTowerMissile.mdl
                          • Special Effect - Destroy (Last created special effect)
                    • Else - Actions
      • Set Burnout_Casts = (Burnout_Casts + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Burnout_Casts Equal to 10
        • Then - Actions
          • Unit - Set mana of (Triggering unit) to ((Mana of (Triggering unit)) + ((Max mana of (Triggering unit)) x (0.25 + (0.05 x (Real((Level of Burnout for (Triggering unit))))))))
          • Set Burnout_Casts = 0
          • Set Burnout_Burning = False
          • Trigger - Turn on Burnout Begin Burning <gen>
        • Else - Actions
  • Burnout Learn
    • Events
      • Unit - A unit Learns a skill
    • Conditions
      • (Learned Hero Skill) Equal to Burnout
    • Actions
      • Set Burnouter = (Triggering unit)
      • Trigger - Turn on Burnout Begin Burning <gen>
      • Trigger - Turn off (This trigger)
  • Burnout Begin Burning
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
      • (Mana of Burnouter) Less than or equal to (100.00 - (5.00 x (Real((Level of Burnout for Burnouter)))))
      • Burnout_Burning Equal to False
    • Actions
      • Set Burnout_Burning = True
      • Trigger - Turn off (This trigger)


  • Mind Explosion
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Mind Explosion
    • Actions
      • Set Mind_Explosion_Pos = (Target point of ability being cast)
      • Set Mind_Explosion_Group = (Units within 412.00 of Mind_Explosion_Pos matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) belongs to an enemy of (Triggering player)) Equal to True) and (((Matching un
      • Unit Group - Pick every unit in Mind_Explosion_Group and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) is A Hero) Equal to True
            • Then - Actions
              • Unit - Set mana of (Picked unit) to ((Mana of (Picked unit)) - ((Real((Intelligence of (Triggering unit) (Include bonuses)))) x (2.00 x (Real((Level of Mind Explosion for (Triggering unit)))))))
              • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Other\Monsoon\MonsoonBoltTarget.mdl
              • Special Effect - Destroy (Last created special effect)
            • Else - Actions
              • Trigger - Turn off Detecting a Melee attack <gen>
              • Unit - Cause (Triggering unit) to damage (Picked unit), dealing ((Max life of (Triggering unit)) x (0.25 + (0.25 x (Real((Level of Mind Explosion for (Triggering unit))))))) damage of attack type Spells and damage type Magic
              • Trigger - Turn on Detecting a Melee attack <gen>
              • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Human\ManaFlare\ManaFlareBoltImpact.mdl
              • Special Effect - Destroy (Last created special effect)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ((Picked unit) is dead) Equal to True
                • Then - Actions
                  • Set Mind_Explosion_Death_Pos = (Position of (Picked unit))
                  • Set Mind_Explosion_Death = (Units within 300.00 of Mind_Explosion_Death_Pos matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) belongs to an enemy of (Triggering player)) Equal to True) and (((Match
                  • Unit Group - Pick every unit in Mind_Explosion_Death and do (Actions)
                    • Loop - Actions
                      • Trigger - Turn off Detecting a Melee attack <gen>
                      • Unit - Cause (Triggering unit) to damage (Picked unit), dealing 300.00 damage of attack type Spells and damage type Magic
                      • Trigger - Turn on Detecting a Melee attack <gen>
                      • Special Effect - Create a special effect attached to the chest of (Picked unit) using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
                      • Special Effect - Destroy (Last created special effect)
                  • Custom script: call RemoveLocation(udg_Mind_Explosion_Death_Pos)
                  • Custom script: call DestroyGroup(udg_Mind_Explosion_Death)
                • Else - Actions
      • Custom script: call DestroyGroup(udg_Mind_Explosion_Group)
      • Custom script: call RemoveLocation(udg_Mind_Explosion_Pos)


  • Frost Aura Learn
    • Events
      • Unit - A unit Learns a skill
    • Conditions
      • (Learned Hero Skill) Equal to Frost Aura
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Frost Aura for (Triggering unit)) Equal to 1
        • Then - Actions
          • Set Frost_Aura_Mui_Integer = (Frost_Aura_Mui_Integer + 1)
          • Set Frosty[Frost_Aura_Mui_Integer] = (Triggering unit)
          • Trigger - Turn on Frost Aura Loop <gen>
        • Else - Actions
  • Frost Aura Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Frost_Aura_Loop) from 1 to Frost_Aura_Mui_Integer, do (Actions)
        • Loop - Actions
          • Set Frosty_Pos = (Position of Frosty[Frost_Aura_Loop])
          • Set Frosty_Group = (Units within (400.00 + (100.00 x (Real((Level of Frost Aura for Frosty[Frost_Aura_Loop]))))) of Frosty_Pos matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an enemy
          • Unit Group - Add all units of Frosty_Group to Frosty_Groupie_Two
          • Custom script: call RemoveLocation(udg_Frosty_Pos)
          • Unit Group - Pick every unit in Frosty_Groupie_Two and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Current movement speed of (Picked unit)) Less than or equal to 20.00
                • Then - Actions
                  • Set Frosty_Pos = (Position of (Picked unit))
                  • Unit - Create 1 Dummy :) for (Owner of Frosty[Frost_Aura_Loop]) at Frosty_Pos facing Default building facing degrees
                  • Unit - Add Frost Aura [Dummy] to (Last created unit)
                  • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                  • Unit - Order (Last created unit) to Night Elf Keeper Of The Grove - Entangling Roots (Picked unit)
                  • Custom script: call RemoveLocation(udg_Frosty_Pos)
                  • Unit Group - Remove (Picked unit) from Frosty_Groupie_Two
                  • Unit - Set (Picked unit) movement speed to (Default movement speed of (Picked unit))
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ((Picked unit) has buff Frost Aura ) Equal to False
                    • Then - Actions
                      • Unit - Set (Picked unit) movement speed to (Default movement speed of (Picked unit))
                      • Unit Group - Remove (Picked unit) from Frosty_Groupie_Two
                    • Else - Actions
                      • Unit - Set (Picked unit) movement speed to ((Current movement speed of (Picked unit)) - (1.00 x (Real((Level of Frost Aura for Frosty[Frost_Aura_Loop])))))
          • Custom script: call DestroyGroup(udg_Frosty_Group)


  • Split Mana
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Split Mana
    • Actions
      • Set Split_Mana_Amount = 0.00
      • Set Split_Mana_Caster = (Triggering unit)
      • Set Split_Mana_Pos = (Position of Split_Mana_Caster)
      • Set Split_Mana_Group = (Units within 512.00 of Split_Mana_Pos matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an ally of (Owner of Split_Mana_Caster)) Equal to True) and (((Matching unit) is alive) Equal to True))))
      • Unit Group - Pick every unit in Split_Mana_Group and do (Actions)
        • Loop - Actions
          • Set Split_Mana_Amount = (Split_Mana_Amount + (Mana of (Picked unit)))
      • Set Split_Mana_Divided = (Split_Mana_Amount / (Real((Number of units in Split_Mana_Group))))
      • Unit Group - Pick every unit in Split_Mana_Group and do (Actions)
        • Loop - Actions
          • Unit - Set mana of (Picked unit) to Split_Mana_Divided
          • Set Split_Mana_Group_Pos = (Position of (Picked unit))
          • Special Effect - Create a special effect at Split_Mana_Group_Pos using Abilities\Spells\Items\AIma\AImaTarget.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation(udg_Split_Mana_Group_Pos)
      • Custom script: call RemoveLocation(udg_Split_Mana_Pos)
      • Custom script: call DestroyGroup(udg_Split_Mana_Group)


  • Dual Weapon Mastery
    • Events
      • Unit - A unit Learns a skill
    • Conditions
      • (Learned Hero Skill) Equal to Dual Weapon Mastery
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Dual Weapon Mastery for (Triggering unit)) Equal to 1
        • Then - Actions
          • Unit - Add Sonic Focus to (Triggering unit)
          • Unit - Add Dual Weapon Mastery [Dummy] to (Triggering unit)
        • Else - Actions
          • Unit - Increase level of Sonic Focus for (Triggering unit)
  • Dual Weapon Mastery Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Dual_Weapon_Mui_Loop) from 1 to Dual_Weapon_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Dual_Weapon_Off[Dual_Weapon_Mui_Loop] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Dual_Weapon_Time[Dual_Weapon_Mui_Loop] Equal to 50
                • Then - Actions
                  • Set Dual_Weapon_Time[Dual_Weapon_Mui_Loop] = 0
                  • Unit - Set level of Dual Weapon Mastery [Dummy] for Duelist[Dual_Weapon_Mui_Loop] to 1
                  • Special Effect - Destroy Dual_Weapon_Sfx[Dual_Weapon_Mui_Loop]
                  • Set Dual_Weapon_Mui_Turnoff = (Dual_Weapon_Mui_Turnoff - 1)
                  • Set Dual_Weapon_Off[Dual_Weapon_Mui_Loop] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Dual_Weapon_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Dual_Weapon_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • Set Dual_Weapon_Time[Dual_Weapon_Mui_Loop] = (Dual_Weapon_Time[Dual_Weapon_Mui_Loop] + 1)
            • Else - Actions


  • Sonic Focus
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Sonic Focus
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Focused Force for (Triggering unit)) Greater than 0
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Level of Sonic Focus for (Triggering unit)) Equal to 1
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Focused Force for (Triggering unit)) Equal to 2
                • Then - Actions
                • Else - Actions
                  • Unit - Increase level of Focused Force for (Triggering unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Life of (Triggering unit)) Less than or equal to 20.00
                    • Then - Actions
                      • Unit - Set life of (Triggering unit) to 1.00
                    • Else - Actions
                      • Unit - Set life of (Triggering unit) to ((Life of (Triggering unit)) - 20.00)
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Sonic Focus for (Triggering unit)) Equal to 2
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Level of Focused Force for (Triggering unit)) Equal to 4
                    • Then - Actions
                    • Else - Actions
                      • Unit - Increase level of Focused Force for (Triggering unit)
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Life of (Triggering unit)) Less than or equal to 20.00
                        • Then - Actions
                          • Unit - Set life of (Triggering unit) to 1.00
                        • Else - Actions
                          • Unit - Set life of (Triggering unit) to ((Life of (Triggering unit)) - 20.00)
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Level of Sonic Focus for (Triggering unit)) Equal to 3
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Level of Focused Force for (Triggering unit)) Equal to 6
                        • Then - Actions
                        • Else - Actions
                          • Unit - Increase level of Focused Force for (Triggering unit)
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Life of (Triggering unit)) Less than or equal to 20.00
                            • Then - Actions
                              • Unit - Set life of (Triggering unit) to 1.00
                            • Else - Actions
                              • Unit - Set life of (Triggering unit) to ((Life of (Triggering unit)) - 20.00)
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Level of Sonic Focus for (Triggering unit)) Equal to 4
                        • Then - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Level of Focused Force for (Triggering unit)) Equal to 8
                            • Then - Actions
                            • Else - Actions
                              • Unit - Increase level of Focused Force for (Triggering unit)
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Life of (Triggering unit)) Less than or equal to 20.00
                                • Then - Actions
                                  • Unit - Set life of (Triggering unit) to 1.00
                                • Else - Actions
                                  • Unit - Set life of (Triggering unit) to ((Life of (Triggering unit)) - 20.00)
                        • Else - Actions
        • Else - Actions
          • Unit - Add Focused Force to (Triggering unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Life of (Triggering unit)) Less than or equal to 20.00
            • Then - Actions
              • Unit - Set life of (Triggering unit) to 1.00
            • Else - Actions
              • Unit - Set life of (Triggering unit) to ((Life of (Triggering unit)) - 20.00)


  • Triple Sonic Slash
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Triple Sonic Slash
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Focused Force for (Triggering unit)) Less than or equal to 1
        • Then - Actions
          • Set ErrorPlayer = (Owner of (Triggering unit))
          • Set ErrorMessage = Need to charge up Force.
          • Unit - Order (Triggering unit) to Stop
          • Custom script: call ErrorMessage(udg_ErrorMessage,udg_ErrorPlayer)
        • Else - Actions
          • Set Triple_Sonic_Damage = (100.00 + ((10.00 + (10.00 x (Real((Level of Sonic Focus for (Triggering unit)))))) x (Real((Level of Focused Force for (Triggering unit))))))
          • Trigger - Turn off Detecting a Melee attack <gen>
          • Unit - Cause (Triggering unit) to damage (Target unit of ability being cast), dealing Triple_Sonic_Damage damage of attack type Chaos and damage type Unknown
          • Trigger - Turn on Detecting a Melee attack <gen>
          • Special Effect - Create a special effect attached to the chest of (Target unit of ability being cast) using Abilities\Spells\Items\WandOfNeutralization\NeutralizationMissile.mdl
          • Special Effect - Destroy (Last created special effect)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Level of Focused Force for (Triggering unit)) Equal to 2
            • Then - Actions
              • Unit - Remove Focused Force from (Triggering unit)
            • Else - Actions
              • Unit - Decrease level of Focused Force for (Triggering unit)
              • Unit - Decrease level of Focused Force for (Triggering unit)


  • Sonic Blaster
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Sonic Blaster
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Focused Force for (Triggering unit)) Equal to 0
        • Then - Actions
          • Set ErrorPlayer = (Owner of (Triggering unit))
          • Set ErrorMessage = Need to charge up Force.
          • Unit - Order (Triggering unit) to Stop
          • Custom script: call ErrorMessage(udg_ErrorMessage,udg_ErrorPlayer)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Sonic_Blaster_Mui_Turnoff Equal to 0
            • Then - Actions
              • Trigger - Turn on Sonic Blaster Loop <gen>
            • Else - Actions
          • Set Sonic_Blaster_Mui_Integer = (Sonic_Blaster_Mui_Integer + 1)
          • Set Sonic_Blaster_Mui_Turnoff = (Sonic_Blaster_Mui_Turnoff + 1)
          • Set Sonic_Blaster_Off[Sonic_Blaster_Mui_Integer] = True
          • Set Sonic_Blaster_Damage[Sonic_Blaster_Mui_Integer] = (50.00 + ((10.00 + (10.00 x (Real((Level of Sonic Focus for (Triggering unit)))))) x (Real((Level of Focused Force for (Triggering unit))))))
          • Set Sonic_Blaster_Pos = (Position of (Triggering unit))
          • Set Sonic_Blaster_Blaster[Sonic_Blaster_Mui_Integer] = (Triggering unit)
          • Set Sonic_Blaster_Target[Sonic_Blaster_Mui_Integer] = (Target unit of ability being cast)
          • Unit - Create 1 Sonic Blaster Dummy for (Triggering player) at Sonic_Blaster_Pos facing (Facing of (Triggering unit)) degrees
          • Set Sonic_Blaster_Dummy[Sonic_Blaster_Mui_Integer] = (Last created unit)
          • Custom script: call RemoveLocation(udg_Sonic_Blaster_Pos)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Level of Focused Force for (Triggering unit)) Equal to 1
            • Then - Actions
              • Unit - Remove Focused Force from (Triggering unit)
            • Else - Actions
              • Unit - Decrease level of Focused Force for (Triggering unit)
  • Sonic Blaster Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Sonic_Blaster_Mui_Loop) from 1 to Sonic_Blaster_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Sonic_Blaster_Off[Sonic_Blaster_Mui_Loop] Equal to True
            • Then - Actions
              • Set Sonic_Blaster_Pos = (Position of Sonic_Blaster_Dummy[Sonic_Blaster_Mui_Loop])
              • Set Sonic_Blaster_Group = (Units within 25.00 of Sonic_Blaster_Pos matching ((Matching unit) Equal to Sonic_Blaster_Target[Sonic_Blaster_Mui_Loop]))
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in Sonic_Blaster_Group) Equal to 1
                • Then - Actions
                  • Trigger - Turn off Detecting a Melee attack <gen>
                  • Unit - Cause Sonic_Blaster_Blaster[Sonic_Blaster_Mui_Loop] to damage Sonic_Blaster_Target[Sonic_Blaster_Mui_Loop], dealing Sonic_Blaster_Damage[Sonic_Blaster_Mui_Loop] damage of attack type Chaos and damage type Universal
                  • Trigger - Turn on Detecting a Melee attack <gen>
                  • Special Effect - Create a special effect attached to the chest of Sonic_Blaster_Target[Sonic_Blaster_Mui_Loop] using Abilities\Spells\Items\WandOfNeutralization\NeutralizationMissile.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Remove Sonic_Blaster_Dummy[Sonic_Blaster_Mui_Loop] from the game
                  • Set Sonic_Blaster_Mui_Turnoff = (Sonic_Blaster_Mui_Turnoff - 1)
                  • Set Sonic_Blaster_Off[Sonic_Blaster_Mui_Loop] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Sonic_Blaster_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Sonic_Blaster_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • Set Sonic_Blaster_Target_Pos = (Position of Sonic_Blaster_Target[Sonic_Blaster_Mui_Loop])
                  • Set Sonic_Blaster_Pos_Off = (Sonic_Blaster_Pos offset by 50.00 towards (Angle from Sonic_Blaster_Pos to Sonic_Blaster_Target_Pos) degrees)
                  • Unit - Move Sonic_Blaster_Dummy[Sonic_Blaster_Mui_Loop] instantly to Sonic_Blaster_Pos_Off, facing (Facing of Sonic_Blaster_Dummy[Sonic_Blaster_Mui_Loop]) degrees
                  • Unit - Make Sonic_Blaster_Dummy[Sonic_Blaster_Mui_Loop] face Sonic_Blaster_Target_Pos over 0.00 seconds
                  • Custom script: call RemoveLocation(udg_Sonic_Blaster_Target_Pos)
                  • Custom script: call RemoveLocation(udg_Sonic_Blaster_Pos_Off)
              • Custom script: call RemoveLocation(udg_Sonic_Blaster_Pos)
              • Custom script: call DestroyGroup(udg_Sonic_Blaster_Group)
            • Else - Actions


  • Sonic Rush
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Sonic Rush
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Focused Force for (Triggering unit)) Equal to 0
        • Then - Actions
          • Set ErrorPlayer = (Owner of (Triggering unit))
          • Unit - Order (Triggering unit) to Stop
          • Set ErrorMessage = Need to charge up Force.
          • Custom script: call ErrorMessage(udg_ErrorMessage,udg_ErrorPlayer)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Sonic_Rush_Mui_Turnoff Equal to 0
            • Then - Actions
              • Trigger - Turn on Sonic Rush Loop <gen>
            • Else - Actions
          • Set Sonic_Rush_Mui_Integer = (Sonic_Rush_Mui_Integer + 1)
          • Set Sonic_Rush_Mui_Turnoff = (Sonic_Rush_Mui_Turnoff + 1)
          • Set Sonic_Rush_Distance[Sonic_Rush_Mui_Integer] = 600
          • Set Sonic_Rush_Facing[Sonic_Rush_Mui_Integer] = (Facing of (Triggering unit))
          • Set Sonic_Rush_Off[Sonic_Rush_Mui_Integer] = True
          • Set Sonic_Rush_Rusher[Sonic_Rush_Mui_Integer] = (Triggering unit)
          • Unit - Turn collision for (Triggering unit) Off
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in Sonic_Rush_Group_2[Sonic_Rush_Mui_Loop]) Equal to 0
            • Then - Actions
              • Custom script: set udg_Sonic_Rush_Group_2[udg_Sonic_Rush_Mui_Integer]=CreateGroup()
            • Else - Actions
          • Set Sonic_Rush_Damage[Sonic_Rush_Mui_Integer] = ((100.00 x (Real((Level of Sonic Rush for (Triggering unit))))) + (20.00 x (Real((Level of Focused Force for (Triggering unit))))))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Level of Focused Force for (Triggering unit)) Less than or equal to 1
            • Then - Actions
              • Unit - Remove Focused Force from (Triggering unit)
            • Else - Actions
              • Unit - Decrease level of Focused Force for (Triggering unit)
  • Sonic Rush Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Sonic_Rush_Mui_Loop) from 1 to Sonic_Rush_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Sonic_Rush_Off[Sonic_Rush_Mui_Loop] Equal to True
            • Then - Actions
              • Set Sonic_Rush_Pos = (Position of Sonic_Rush_Rusher[Sonic_Rush_Mui_Loop])
              • Set Sonic_Rush_Pos_Off = (Sonic_Rush_Pos offset by 48.00 towards Sonic_Rush_Facing[Sonic_Rush_Mui_Loop] degrees)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • Sonic_Rush_Distance[Sonic_Rush_Mui_Loop] Less than or equal to 0
                      • (Terrain pathing at Sonic_Rush_Pos_Off of type Flyability is off) Equal to True
                • Then - Actions
                  • Unit - Create 1 Dummy :) for (Owner of Sonic_Rush_Rusher[Sonic_Rush_Mui_Loop]) at Sonic_Rush_Pos facing Default building facing degrees
                  • Unit - Add Sonic Rush [Attack Speed] to (Last created unit)
                  • Unit - Order (Last created unit) to Undead Necromancer - Unholy Frenzy Sonic_Rush_Rusher[Sonic_Rush_Mui_Loop]
                  • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                  • Unit - Turn collision for Sonic_Rush_Rusher[Sonic_Rush_Mui_Loop] On
                  • Unit Group - Remove all units from Sonic_Rush_Group_2[Sonic_Rush_Mui_Loop]
                  • Set Sonic_Rush_Mui_Turnoff = (Sonic_Rush_Mui_Turnoff - 1)
                  • Set Sonic_Rush_Off[Sonic_Rush_Mui_Loop] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Sonic_Rush_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Sonic_Rush_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                  • Custom script: call RemoveLocation(udg_Sonic_Rush_Pos)
                  • Custom script: call DestroyGroup(udg_Sonic_Rush_Group_2[udg_Sonic_Rush_Mui_Loop])
                • Else - Actions
                  • Set Sonic_Rush_Distance[Sonic_Rush_Mui_Loop] = (Sonic_Rush_Distance[Sonic_Rush_Mui_Loop] - 48)
                  • Set Sonic_Rush_Group = (Units within 150.00 of Sonic_Rush_Pos matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of Sonic_Rush_Rusher[Sonic_Rush_Mui_Loop])) Equal to True) and ((((Matching unit) is alive) Equal to True)
                  • Special Effect - Create a special effect attached to the chest of Sonic_Rush_Rusher[Sonic_Rush_Mui_Loop] using Abilities\Spells\Human\Defend\DefendCaster.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Special Effect - Create a special effect attached to the chest of Sonic_Rush_Rusher[Sonic_Rush_Mui_Loop] using Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Special Effect - Create a special effect attached to the chest of Sonic_Rush_Rusher[Sonic_Rush_Mui_Loop] using Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Move Sonic_Rush_Rusher[Sonic_Rush_Mui_Loop] instantly to Sonic_Rush_Pos_Off, facing Sonic_Rush_Facing[Sonic_Rush_Mui_Loop] degrees
                  • Special Effect - Create a special effect attached to the chest of Sonic_Rush_Rusher[Sonic_Rush_Mui_Loop] using Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Unit Group - Add all units of Sonic_Rush_Group to Sonic_Rush_Group_2[Sonic_Rush_Mui_Loop]
                  • Custom script: call RemoveLocation(udg_Sonic_Rush_Pos)
                  • Unit Group - Pick every unit in Sonic_Rush_Group and do (Actions)
                    • Loop - Actions
                      • Set Sonic_Rush_Pos = (Position of (Picked unit))
                      • Unit - Create 1 Dummy :) for (Owner of Sonic_Rush_Rusher[Sonic_Rush_Mui_Loop]) at Sonic_Rush_Pos facing Default building facing degrees
                      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                      • Unit - Add Storm Bolt [Hex] to (Last created unit)
                      • Unit - Increase level of Storm Bolt [Hex] for (Last created unit)
                      • Unit - Order (Last created unit) to Human Mountain King - Storm Bolt (Picked unit)
                      • Trigger - Turn off Detecting a Melee attack <gen>
                      • Unit - Cause Sonic_Rush_Rusher[Sonic_Rush_Mui_Loop] to damage (Picked unit), dealing Sonic_Rush_Damage[Sonic_Rush_Mui_Loop] damage of attack type Spells and damage type Magic
                      • Trigger - Turn on Detecting a Melee attack <gen>
                      • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
                      • Special Effect - Destroy (Last created special effect)
                      • Custom script: call RemoveLocation(udg_Sonic_Rush_Pos)
                  • Custom script: call DestroyGroup(udg_Sonic_Rush_Group)
              • Custom script: call RemoveLocation(udg_Sonic_Rush_Pos_Off)
            • Else - Actions


  • Multi Shot Setup
    • Events
      • Time - Elapsed game time is 0.00 seconds
    • Conditions
    • Actions
      • Set Multi_Shot_Angles[1] = 0
      • Set Multi_Shot_Angles[2] = 5
      • Set Multi_Shot_Angles[3] = -5
      • Set Multi_Shot_Angles[4] = 10
      • Set Multi_Shot_Angles[5] = -10
      • Set Multi_Shot_Angles[6] = 15
      • Set Multi_Shot_Angles[7] = -15
      • Set Multi_Shot_Angles[8] = 20
      • Set Multi_Shot_Angles[9] = -20
      • Set Multi_Shot_Angles[10] = 25
      • Set Multi_Shot_Angles[11] = -25
  • Multi Shot
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Multi Shot
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Multi_Shot_Mui_Turnoff Equal to 0
        • Then - Actions
          • Trigger - Turn on Multi Shot Loop <gen>
        • Else - Actions
      • For each (Integer Multi_Shot_Inside_Loop) from 1 to ((Level of Multi Shot for (Triggering unit)) + 2), do (Actions)
        • Loop - Actions
          • Set Multi_Shot_Mui_Integer = (Multi_Shot_Mui_Integer + 1)
          • Set Multi_Shot_Mui_Turnoff = (Multi_Shot_Mui_Turnoff + 1)
          • Set Multi_Shot_Off[Multi_Shot_Mui_Integer] = True
          • Set Multi_Shot_Unit[Multi_Shot_Mui_Integer] = (Triggering unit)
          • Set Multi_Shot_Pos = (Position of (Triggering unit))
          • Set Multi_Shot_Pos_Off = (Target point of ability being cast)
          • Unit - Create 1 Multi Shot Dummy for (Triggering player) at Multi_Shot_Pos facing ((Angle from Multi_Shot_Pos to Multi_Shot_Pos_Off) + (Real(Multi_Shot_Angles[Multi_Shot_Inside_Loop]))) degrees
          • Set Multi_Shot_Dummies[Multi_Shot_Mui_Integer] = (Last created unit)
          • Set Multi_Shot_Facing[Multi_Shot_Mui_Integer] = (Facing of (Last created unit))
          • Set Multi_Shot_Distance[Multi_Shot_Mui_Integer] = 625.00
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in Multi_Shot_Group_2[Multi_Shot_Mui_Integer]) Equal to 0
            • Then - Actions
              • Custom script: set udg_Multi_Shot_Group_2[udg_Multi_Shot_Mui_Integer]=CreateGroup()
            • Else - Actions
          • Custom script: call RemoveLocation(udg_Multi_Shot_Pos)
          • Custom script: call RemoveLocation(udg_Multi_Shot_Pos_Off)
  • Multi Shot Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Multi_Shot_Mui_Loop) from 1 to Multi_Shot_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Multi_Shot_Off[Multi_Shot_Mui_Loop] Equal to True
            • Then - Actions
              • Set Multi_Shot_Pos = (Position of Multi_Shot_Dummies[Multi_Shot_Mui_Loop])
              • Set Multi_Shot_Pos_Off = (Multi_Shot_Pos offset by 48.00 towards Multi_Shot_Facing[Multi_Shot_Mui_Loop] degrees)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • Multi_Shot_Distance[Multi_Shot_Mui_Loop] Less than or equal to 0.00
                      • (Terrain pathing at Multi_Shot_Pos_Off of type Flyability is off) Equal to True
                • Then - Actions
                  • Unit - Remove Multi_Shot_Dummies[Multi_Shot_Mui_Loop] from the game
                  • Unit Group - Remove all units from Multi_Shot_Group_2[Multi_Shot_Mui_Loop]
                  • Set Multi_Shot_Mui_Turnoff = (Multi_Shot_Mui_Turnoff - 1)
                  • Set Multi_Shot_Off[Multi_Shot_Mui_Loop] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Multi_Shot_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Multi_Shot_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                  • Custom script: call DestroyGroup(udg_Multi_Shot_Group_2[udg_Multi_Shot_Mui_Loop])
                • Else - Actions
                  • Set Multi_Shot_Group = (Units within 120.00 of Multi_Shot_Pos matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is in Multi_Shot_Group_2[Multi_Shot_Mui_Loop]) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belo
                  • Unit Group - Pick every unit in Multi_Shot_Group and do (Actions)
                    • Loop - Actions
                      • Trigger - Turn off Detecting a Melee attack <gen>
                      • Unit - Cause Multi_Shot_Unit[Multi_Shot_Mui_Loop] to damage (Picked unit), dealing (Real((Agility of Multi_Shot_Unit[Multi_Shot_Mui_Loop] (Include bonuses)))) damage of attack type Hero and damage type Normal
                      • Trigger - Turn on Detecting a Melee attack <gen>
                      • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
                      • Special Effect - Destroy (Last created special effect)
                  • Unit Group - Add all units of Multi_Shot_Group to Multi_Shot_Group_2[Multi_Shot_Mui_Loop]
                  • Unit - Move Multi_Shot_Dummies[Multi_Shot_Mui_Loop] instantly to Multi_Shot_Pos_Off, facing Multi_Shot_Facing[Multi_Shot_Mui_Loop] degrees
                  • Set Multi_Shot_Distance[Multi_Shot_Mui_Loop] = (Multi_Shot_Distance[Multi_Shot_Mui_Loop] - 48.00)
                  • Custom script: call DestroyGroup(udg_Multi_Shot_Group)
              • Custom script: call RemoveLocation(udg_Multi_Shot_Pos)
              • Custom script: call RemoveLocation(udg_Multi_Shot_Pos_Off)
            • Else - Actions


  • Snipe Assasination Shot
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Snipe Assasination Shot
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Snipe_Shot_Mui_Turnoff Equal to 0
        • Then - Actions
          • Trigger - Turn on Snipe Assasination Shot Loop <gen>
        • Else - Actions
      • Set Snipe_Shot_Mui_Integer = (Snipe_Shot_Mui_Integer + 1)
      • Set Snipe_Shot_Mui_Turnoff = (Snipe_Shot_Mui_Turnoff + 1)
      • Set Snipe_Shot_Off[Snipe_Shot_Mui_Integer] = True
      • Set Snipe_Shot_Sniper[Snipe_Shot_Mui_Integer] = (Triggering unit)
      • Set Snipe_Shot_Target[Snipe_Shot_Mui_Integer] = (Target unit of ability being cast)
      • Set Snipe_Shot_Pos = (Position of (Triggering unit))
      • Unit - Create 1 Snipe Assasination Shot Dummy for (Triggering player) at Snipe_Shot_Pos facing (Facing of (Triggering unit)) degrees
      • Set Snipe_Shot_Dummies[Snipe_Shot_Mui_Integer] = (Last created unit)
      • Custom script: call RemoveLocation(udg_Snipe_Shot_Pos)
  • Snipe Assasination Shot Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Snipe_Shot_Mui_Loop) from 1 to Snipe_Shot_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Snipe_Shot_Off[Snipe_Shot_Mui_Loop] Equal to True
            • Then - Actions
              • Set Snipe_Shot_Pos = (Position of Snipe_Shot_Dummies[Snipe_Shot_Mui_Loop])
              • Set Snipe_Shot_Target_Pos = (Position of Snipe_Shot_Target[Snipe_Shot_Mui_Loop])
              • Set Snipe_Shot_Group = (Units within 40.00 of Snipe_Shot_Pos matching ((Matching unit) Equal to Snipe_Shot_Target[Snipe_Shot_Mui_Loop]))
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in Snipe_Shot_Group) Equal to 1
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Cos(((Facing of Snipe_Shot_Target[Snipe_Shot_Mui_Loop]) - (Angle from Snipe_Shot_Target_Pos to Snipe_Shot_Pos)))) Greater than (Cos(90.00))
                    • Then - Actions
                    • Else - Actions
                      • Trigger - Turn off Detecting a Melee attack <gen>
                      • Unit - Cause Snipe_Shot_Sniper[Snipe_Shot_Mui_Loop] to damage Snipe_Shot_Target[Snipe_Shot_Mui_Loop], dealing ((2.50 + (0.25 x (Real((Level of Snipe Assasination Shot for Snipe_Shot_Sniper[Snipe_Shot_Mui_Loop]))))) x (Real((Agility of Snipe_Shot_Sniper[Snipe_Shot_Mui_Loop] (Include bonuses))))) damage of attack type Normal and damage type Normal
                      • Trigger - Turn on Detecting a Melee attack <gen>
                      • Special Effect - Create a special effect attached to the chest of Snipe_Shot_Target[Snipe_Shot_Mui_Loop] using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
                      • Special Effect - Destroy (Last created special effect)
                  • Trigger - Turn off Detecting a Melee attack <gen>
                  • Unit - Cause Snipe_Shot_Sniper[Snipe_Shot_Mui_Loop] to damage Snipe_Shot_Target[Snipe_Shot_Mui_Loop], dealing (100.00 + (25.00 x (Real((Level of Snipe Assasination Shot for Snipe_Shot_Sniper[Snipe_Shot_Mui_Loop]))))) damage of attack type Normal and damage type Normal
                  • Trigger - Turn on Detecting a Melee attack <gen>
                  • Unit - Remove Snipe_Shot_Dummies[Snipe_Shot_Mui_Loop] from the game
                  • Set Snipe_Shot_Mui_Turnoff = (Snipe_Shot_Mui_Turnoff - 1)
                  • Set Snipe_Shot_Off[Snipe_Shot_Mui_Loop] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Snipe_Shot_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Snipe_Shot_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • Set Snipe_Shot_Pos_Off = (Snipe_Shot_Pos offset by 60.00 towards (Angle from Snipe_Shot_Pos to Snipe_Shot_Target_Pos) degrees)
                  • Unit - Move Snipe_Shot_Dummies[Snipe_Shot_Mui_Loop] instantly to Snipe_Shot_Pos_Off, facing (Angle from Snipe_Shot_Pos to Snipe_Shot_Target_Pos) degrees
                  • Custom script: call RemoveLocation(udg_Snipe_Shot_Pos_Off)
              • Custom script: call RemoveLocation(udg_Snipe_Shot_Pos)
              • Custom script: call RemoveLocation(udg_Snipe_Shot_Target_Pos)
              • Custom script: call DestroyGroup(udg_Snipe_Shot_Group)
            • Else - Actions


  • Sneaky Kills
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Triggering unit) is A Hero) Equal to True
      • (Level of Sneaky for (Killing unit)) Greater than 0
    • Actions
      • For each (Integer Sneaky_Kill_Loop) from 1 to Sneaky_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Killing unit) Equal to Sneaky_Ranger[Sneaky_Kill_Loop]
            • Then - Actions
              • Hero - Modify Agility of Sneaky_Ranger[Sneaky_Kill_Loop]: Subtract (Integer(Sneaky_Kill_Count[Sneaky_Kill_Loop]))
              • Set Sneaky_Kill_Count[Sneaky_Kill_Loop] = (Sneaky_Kill_Count[Sneaky_Kill_Loop] + (1.00 + (0.25 x (Real((Level of Sneaky for Sneaky_Ranger[Sneaky_Kill_Loop]))))))
              • Hero - Modify Agility of Sneaky_Ranger[Sneaky_Kill_Loop]: Add (Integer(Sneaky_Kill_Count[Sneaky_Kill_Loop]))
              • Set Sneaky_Pos = (Position of (Killing unit))
              • Floating Text - Create floating text that reads (+ + ((String((Integer((1.00 + (0.25 x (Real((Level of Sneaky for (Killing unit)))))))))) + Agility)) at Sneaky_Pos with Z offset 0.00, using font size 10.00, color (50.00%, 50.00%, 100.00%), and 0.00% transparency
              • Set Sneaky_Floatin = (Last created floating text)
              • Floating Text - Change Sneaky_Floatin: Disable permanence
              • Floating Text - Change the lifespan of Sneaky_Floatin to 4.00 seconds
              • Floating Text - Change the fading age of Sneaky_Floatin to 2.50 seconds
              • Floating Text - Set the velocity of Sneaky_Floatin to 64.00 towards 90.00 degrees
              • Custom script: call RemoveLocation(udg_Sneaky_Pos)
            • Else - Actions
  • Sneaky Learn
    • Events
      • Unit - A unit Learns a skill
    • Conditions
      • (Learned Hero Skill) Equal to Sneaky
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Sneaky for (Triggering unit)) Equal to 1
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Sneaky_Mui_Integer Equal to 0
            • Then - Actions
              • Trigger - Turn on Sneaky Attacks <gen>
              • Trigger - Turn on Sneaky Loop <gen>
            • Else - Actions
          • Set Sneaky_Mui_Integer = (Sneaky_Mui_Integer + 1)
          • Set Sneaky_Ranger[Sneaky_Mui_Integer] = (Triggering unit)
          • Set Sneaky_Previous_Pos[Sneaky_Mui_Integer] = (Position of (Triggering unit))
        • Else - Actions
  • Sneaky Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Sneaky_Mui_Loop) from 1 to Sneaky_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Traceless_Stop_Sneaky[Sneaky_Mui_Loop] Equal to False
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Sneaky_Ranger[Sneaky_Mui_Loop] is alive) Equal to True
                • Then - Actions
                  • Set Sneaky_Pos = (Position of Sneaky_Ranger[Sneaky_Mui_Loop])
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Distance between Sneaky_Pos and Sneaky_Previous_Pos[Sneaky_Mui_Loop]) Equal to 0.00
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Sneaky_Ranger[Sneaky_Mui_Loop] has buff Sneaky ) Equal to False
                        • Then - Actions
                          • Unit - Create 1 Dummy :) for (Owner of Sneaky_Ranger[Sneaky_Mui_Loop]) at Sneaky_Pos facing Default building facing degrees
                          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                          • Unit - Add Sneaky [Dummy] to (Last created unit)
                          • Unit - Set level of Sneaky [Dummy] for (Last created unit) to (Level of Sneaky for Sneaky_Ranger[Sneaky_Mui_Loop])
                          • Unit - Order (Last created unit) to Human Sorceress - Invisibility Sneaky_Ranger[Sneaky_Mui_Loop]
                        • Else - Actions
                    • Else - Actions
                      • Unit - Remove Sneaky buff from Sneaky_Ranger[Sneaky_Mui_Loop]
                  • Custom script: call RemoveLocation(udg_Sneaky_Pos)
                  • Custom script: call RemoveLocation(udg_Sneaky_Previous_Pos[udg_Sneaky_Mui_Loop])
                  • Set Sneaky_Previous_Pos[Sneaky_Mui_Loop] = (Position of Sneaky_Ranger[Sneaky_Mui_Loop])
                • Else - Actions
            • Else - Actions
  • Sneaky Attacks
    • Events
      • Unit - A unit Is attacked
    • Conditions
      • ((Attacking unit) has buff Sneaky ) Equal to True
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Current order of (Attacking unit)) Not equal to (Order(hold position))
        • Then - Actions
          • Unit - Remove Sneaky buff from (Attacking unit)
        • Else - Actions


  • Traceless Assasination
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Traceless Assasination
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Traceless_Mui_Turnoff Equal to 0
        • Then - Actions
          • Trigger - Turn on Traceless Assasination Loop <gen>
        • Else - Actions
      • For each (Integer Traceless_New_Check) from 0 to Traceless_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Triggering unit) Equal to Traceless_Tracer[Traceless_New_Check]
              • Or - Any (Conditions) are true
                • Conditions
                  • (Level of Traceless Assasination [Dummy] for (Triggering unit)) Greater than 0
                  • (Level of Traceless Assasination [Fading] for (Triggering unit)) Greater than 0
            • Then - Actions
              • Unit - Remove Sneaky buff from (Triggering unit)
              • Unit - Remove Traceless Assasination [Dummy] from (Triggering unit)
              • Unit - Remove Traceless Assasination [Fading] from (Triggering unit)
              • Set Traceless_Time[Traceless_New_Check] = 0
              • Set Traceless_Off[Traceless_New_Check] = True
              • Set Traceless_Tracer[Traceless_New_Check] = (Triggering unit)
              • Set Traceless_Stop_Sneaky[Traceless_New_Check] = True
              • Unit - Add Traceless Assasination [Fading] to (Triggering unit)
            • Else - Actions
              • Unit - Remove Sneaky buff from (Triggering unit)
              • Unit - Add Traceless Assasination [Fading] to (Triggering unit)
              • Set Traceless_Mui_Integer = (Traceless_Mui_Integer + 1)
              • Set Traceless_Mui_Turnoff = (Traceless_Mui_Turnoff + 1)
              • Set Traceless_Off[Traceless_Mui_Integer] = True
              • Set Traceless_Tracer[Traceless_Mui_Integer] = (Triggering unit)
              • Set Traceless_Stop_Sneaky[Traceless_Mui_Integer] = True
  • Traceless Assasination Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Traceless_Mui_Loop) from 1 to Traceless_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Traceless_Off[Traceless_Mui_Loop] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Traceless_Time[Traceless_Mui_Loop] Equal to (129 + (15 x (Level of Traceless Assasination for Traceless_Tracer[Traceless_Mui_Loop])))
                • Then - Actions
                  • Unit - Remove Traceless Assasination [Dummy] from Traceless_Tracer[Traceless_Mui_Loop]
                  • Set Traceless_Time[Traceless_Mui_Loop] = 0
                  • Set Traceless_Mui_Turnoff = (Traceless_Mui_Turnoff - 1)
                  • Set Traceless_Off[Traceless_Mui_Loop] = False
                  • Set Traceless_Stop_Sneaky[Traceless_Mui_Loop] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Traceless_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Traceless_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Traceless_Time[Traceless_Mui_Loop] Equal to 32
                    • Then - Actions
                      • Unit - Remove Traceless Assasination [Fading] from Traceless_Tracer[Traceless_Mui_Loop]
                      • Unit - Add Traceless Assasination [Dummy] to Traceless_Tracer[Traceless_Mui_Loop]
                      • Set Traceless_Time[Traceless_Mui_Loop] = (Traceless_Time[Traceless_Mui_Loop] + 1)
                    • Else - Actions
                      • Set Traceless_Time[Traceless_Mui_Loop] = (Traceless_Time[Traceless_Mui_Loop] + 1)
            • Else - Actions


  • Spinning Blow Begin
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Spinning Blow
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Spinning_Distance_Turnoff Equal to 0
        • Then - Actions
          • Trigger - Turn on Spinning Blow Distance <gen>
        • Else - Actions
      • Set Spinning_Distance_Integer = (Spinning_Distance_Integer + 1)
      • Set Spinning_Distance_Turnoff = (Spinning_Distance_Turnoff + 1)
      • Set Spinning_Caster[Spinning_Distance_Integer] = (Triggering unit)
      • Set Spinning_Pos = (Position of (Triggering unit))
      • Set Spinning_Pos_Off = (Target point of ability being cast)
      • Unit - Create 1 Spinning Blow Dummy for (Triggering player) at Spinning_Pos facing Spinning_Pos_Off
      • Set Spinning_Dummy[Spinning_Distance_Integer] = (Last created unit)
      • Set Spinning_Facing[Spinning_Distance_Integer] = (Facing of (Last created unit))
      • Set Spinning_Distance[Spinning_Distance_Integer] = 300.00
      • Set Spinning_Dist_Off[Spinning_Distance_Integer] = True
      • Custom script: call RemoveLocation(udg_Spinning_Pos)
      • Custom script: call RemoveLocation(udg_Spinning_Pos_Off)
  • Spinning Blow Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Spinning_Mui_Loop) from 1 to Spinning_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Spinning_Off[Spinning_Mui_Loop] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Spinning_Distance[Spinning_Mui_Loop] Less than or equal to 0.00
                • Then - Actions
                  • Unit - Remove Spinning_Dummy[Spinning_Mui_Loop] from the game
                  • Set Spinning_Mui_Turnoff = (Spinning_Mui_Turnoff - 1)
                  • Set Spinning_Off[Spinning_Mui_Loop] = False
                  • Unit Group - Remove all units from Spinning_Group_Pick[Spinning_Mui_Loop]
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Spinning_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Spinning_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                  • Custom script: call DestroyGroup(udg_Spinning_Group_Pick[udg_Spinning_Mui_Loop])
                • Else - Actions
                  • Set Spinning_Pos = (Position of Spinning_Dummy[Spinning_Mui_Loop])
                  • Set Spinning_Pos_Off = (Spinning_Pos offset by 20.00 towards Spinning_Facing[Spinning_Mui_Loop] degrees)
                  • Set Spinning_Group = (Units within 390.00 of Spinning_Pos matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of Spinning_Dummy[Spinning_Mui_Loop])) Equal to True)
                  • Unit Group - Add all units of Spinning_Group to Spinning_Group_Pick[Spinning_Mui_Loop]
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Number of units in Spinning_Group) Greater than 0
                    • Then - Actions
                      • Unit Group - Pick every unit in Spinning_Group and do (Actions)
                        • Loop - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • Spinning_Spinning_Mui_Turnoff Equal to 0
                            • Then - Actions
                              • Trigger - Turn on Spinning Blow Spinning <gen>
                            • Else - Actions
                          • Set Spinning_Spinning_Mui_Integer = (Spinning_Spinning_Mui_Integer + 1)
                          • Set Spinning_Spinning_Mui_Turnoff = (Spinning_Spinning_Mui_Turnoff + 1)
                          • Set Spinning_Spinning_Off[Spinning_Spinning_Mui_Integer] = True
                          • Set Spinning_Spinning_Unit[Spinning_Spinning_Mui_Integer] = (Picked unit)
                          • Set Spinning_Spinning_Caster[Spinning_Spinning_Mui_Integer] = Spinning_Caster[Spinning_Mui_Loop]
                          • Set Spinning_Degrees_Two[Spinning_Spinning_Mui_Integer] = 0.00
                    • Else - Actions
                  • Unit - Move Spinning_Dummy[Spinning_Mui_Loop] instantly to Spinning_Pos_Off, facing Spinning_Facing[Spinning_Mui_Loop] degrees
                  • Set Spinning_Distance[Spinning_Mui_Loop] = (Spinning_Distance[Spinning_Mui_Loop] - 22.00)
                  • Custom script: call RemoveLocation(udg_Spinning_Pos)
                  • Custom script: call RemoveLocation(udg_Spinning_Pos_Off)
                  • Custom script: call DestroyGroup(udg_Spinning_Group)
            • Else - Actions
  • Spinning Blow Spinning
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Spinning_Spinning_Mui_Loop) from 1 to Spinning_Spinning_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Spinning_Spinning_Off[Spinning_Spinning_Mui_Loop] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Spinning_Degrees_Two[Spinning_Spinning_Mui_Loop] Equal to 360.00
                • Then - Actions
                  • Set Spinning_Degrees_Two[Spinning_Spinning_Mui_Loop] = 0.00
                  • Set Spinning_Spinning_Mui_Turnoff = (Spinning_Spinning_Mui_Turnoff - 1)
                  • Set Spinning_Spinning_Off[Spinning_Spinning_Mui_Loop] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Spinning_Spinning_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Spinning_Spinning_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Spinning_Degrees_Two[Spinning_Spinning_Mui_Loop] Equal to 0.00
                    • Then - Actions
                      • Set Spinning_Pos = (Position of Spinning_Spinning_Unit[Spinning_Spinning_Mui_Loop])
                      • Unit - Create 1 Dummy :) for (Owner of Spinning_Spinning_Caster[Spinning_Spinning_Mui_Loop]) at Spinning_Pos facing Default building facing degrees
                      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                      • Unit - Add Spinning Blow [Stun Dummy] to (Last created unit)
                      • Unit - Set level of Spinning Blow [Stun Dummy] for (Last created unit) to (Level of Spinning Blow for Spinning_Spinning_Caster[Spinning_Spinning_Mui_Loop])
                      • Unit - Order (Last created unit) to Human Mountain King - Storm Bolt Spinning_Spinning_Unit[Spinning_Spinning_Mui_Loop]
                      • Custom script: call RemoveLocation(udg_Spinning_Pos)
                    • Else - Actions
                  • Set Spinning_Degrees_Two[Spinning_Spinning_Mui_Loop] = (Spinning_Degrees_Two[Spinning_Spinning_Mui_Loop] + 8.00)
                  • Unit - Make Spinning_Spinning_Unit[Spinning_Spinning_Mui_Loop] face ((Facing of Spinning_Spinning_Unit[Spinning_Spinning_Mui_Loop]) - 45.00) over 0.00 seconds
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Spinning_Degrees_Two[Spinning_Spinning_Mui_Loop] Equal to 360.00
                    • Then - Actions
                      • Set Spinning_Pos = (Position of Spinning_Spinning_Unit[Spinning_Spinning_Mui_Loop])
                      • Unit - Create 1 Dummy :) for (Owner of Spinning_Spinning_Caster[Spinning_Spinning_Mui_Loop]) at Spinning_Pos facing Default building facing degrees
                      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                      • Unit - Add Spinning Blow [Dummy] to (Last created unit)
                      • Unit - Set level of Spinning Blow [Dummy] for (Last created unit) to (Level of Spinning Blow for Spinning_Spinning_Caster[Spinning_Spinning_Mui_Loop])
                      • Unit - Order (Last created unit) to Neutral Pandaren Brewmaster - Drunken Haze Spinning_Spinning_Unit[Spinning_Spinning_Mui_Loop]
                      • Custom script: call RemoveLocation(udg_Spinning_Pos)
                    • Else - Actions
            • Else - Actions
  • Spinning Blow Distance
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Spinning_Dist_Loop) from 1 to Spinning_Distance_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Spinning_Dist_Off[Spinning_Dist_Loop] Equal to True
            • Then - Actions
              • Set Spinning_Distance[Spinning_Dist_Loop] = (Spinning_Distance[Spinning_Dist_Loop] + 10.00)
            • Else - Actions
  • Spinning Blow Stop
    • Events
      • Unit - A unit Stops casting an ability
    • Conditions
      • (Ability being cast) Equal to Spinning Blow
    • Actions
      • For each (Integer Spinning_Dist_Check_Loop) from 1 to Spinning_Distance_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Triggering unit) Equal to Spinning_Caster[Spinning_Dist_Check_Loop]
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Spinning_Mui_Turnoff Equal to 0
                • Then - Actions
                  • Trigger - Turn on Spinning Blow Loop <gen>
                • Else - Actions
              • Set Spinning_Mui_Integer = (Spinning_Mui_Integer + 1)
              • Set Spinning_Mui_Turnoff = (Spinning_Mui_Turnoff + 1)
              • Set Spinning_Off[Spinning_Mui_Integer] = True
              • Set Spinning_Caster[Spinning_Mui_Integer] = (Triggering unit)
              • Set Spinning_Dummy[Spinning_Mui_Integer] = Spinning_Dummy[Spinning_Dist_Check_Loop]
              • Set Spinning_Facing[Spinning_Mui_Integer] = (Facing of Spinning_Dummy[Spinning_Mui_Integer])
              • Set Spinning_Distance[Spinning_Mui_Integer] = Spinning_Distance[Spinning_Dist_Check_Loop]
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in Spinning_Group_Pick[Spinning_Mui_Integer]) Equal to 0
                • Then - Actions
                  • Custom script: set udg_Spinning_Group_Pick[udg_Spinning_Mui_Integer]=CreateGroup()
                • Else - Actions
              • -------- ---------------------------------------------------------------------------- --------
              • Set Spinning_Distance_Turnoff = (Spinning_Distance_Turnoff - 1)
              • Set Spinning_Dist_Off[Spinning_Dist_Check_Loop] = False
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Spinning_Distance_Turnoff Equal to 0
                • Then - Actions
                  • Set Spinning_Distance_Integer = 0
                  • Trigger - Turn off Spinning Blow Distance <gen>
                • Else - Actions
              • Skip remaining actions
            • Else - Actions


  • Tornado Jump
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Tornado Jump
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Tornado_Jump_Mui_Turnoff Equal to 0
        • Then - Actions
          • Trigger - Turn on Tornado Jump Loop <gen>
        • Else - Actions
      • Set Tornado_Jump_Mui_Integer = (Tornado_Jump_Mui_Integer + 1)
      • Set Tornado_Jump_Mui_Turnoff = (Tornado_Jump_Mui_Turnoff + 1)
      • Set Tornado_Jump_Off[Tornado_Jump_Mui_Integer] = True
      • Set Tornado_Jump_Unit[Tornado_Jump_Mui_Integer] = (Triggering unit)
      • Set Tornado_Jump_Target_Point[Tornado_Jump_Mui_Integer] = (Target point of ability being cast)
      • Set Tornado_Jump_Pos = (Position of (Triggering unit))
      • Unit - Create 1 Tornado Jump Dummy for (Triggering player) at Tornado_Jump_Pos facing Default building facing degrees
      • Unit - Kill (Last created unit)
      • Unit - Hide (Triggering unit)
      • Custom script: call RemoveLocation(udg_Tornado_Jump_Pos)
  • Tornado Jump Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Tornado_Jump_Mui_Loop) from 1 to Tornado_Jump_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Tornado_Jump_Off[Tornado_Jump_Mui_Loop] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Tornado_Jump_Time[Tornado_Jump_Mui_Loop] Equal to 33
                • Then - Actions
                  • Unit - Move Tornado_Jump_Unit[Tornado_Jump_Mui_Loop] instantly to Tornado_Jump_Target_Point[Tornado_Jump_Mui_Loop]
                  • Custom script: call RemoveLocation(udg_Tornado_Jump_Target_Point[udg_Tornado_Jump_Mui_Loop])
                  • Set Tornado_Jump_Pos = (Position of Tornado_Jump_Unit[Tornado_Jump_Mui_Loop])
                  • Unit - Unhide Tornado_Jump_Unit[Tornado_Jump_Mui_Loop]
                  • Set Tornado_Jump_Group = (Units within 300.00 of Tornado_Jump_Pos matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of
                  • Custom script: call RemoveLocation(udg_Tornado_Jump_Pos)
                  • Unit Group - Pick every unit in Tornado_Jump_Group and do (Actions)
                    • Loop - Actions
                      • Set Tornado_Jump_Pos = (Position of (Picked unit))
                      • Trigger - Turn off Detecting a Melee attack <gen>
                      • Unit - Cause Tornado_Jump_Unit[Tornado_Jump_Mui_Loop] to damage (Picked unit), dealing (25.00 + (75.00 x (Real((Level of Tornado Jump for Tornado_Jump_Unit[Tornado_Jump_Mui_Loop]))))) damage of attack type Spells and damage type Magic
                      • Trigger - Turn on Detecting a Melee attack <gen>
                      • Unit - Create 1 Dummy :) for (Owner of Tornado_Jump_Unit[Tornado_Jump_Mui_Loop]) at Tornado_Jump_Pos facing Default building facing degrees
                      • Unit - Add Tornado Jump [Dummy] to (Last created unit)
                      • Unit - Set level of Tornado Jump [Dummy] for (Last created unit) to (Level of Tornado Jump for Tornado_Jump_Unit[Tornado_Jump_Mui_Loop])
                      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                      • Unit - Order (Last created unit) to Night Elf Druid Of The Talon - Cyclone (Picked unit)
                      • Custom script: call RemoveLocation(udg_Tornado_Jump_Pos)
                  • Selection - Clear selection for (Owner of Tornado_Jump_Unit[Tornado_Jump_Mui_Loop])
                  • Selection - Select Tornado_Jump_Unit[Tornado_Jump_Mui_Loop] for (Owner of Tornado_Jump_Unit[Tornado_Jump_Mui_Loop])
                  • Custom script: call DestroyGroup(udg_Tornado_Jump_Group)
                  • Set Tornado_Jump_Time[Tornado_Jump_Mui_Loop] = 0
                  • Set Tornado_Jump_Mui_Turnoff = (Tornado_Jump_Mui_Turnoff - 1)
                  • Set Tornado_Jump_Off[Tornado_Jump_Mui_Loop] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Tornado_Jump_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Tornado_Jump_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • Set Tornado_Jump_Time[Tornado_Jump_Mui_Loop] = (Tornado_Jump_Time[Tornado_Jump_Mui_Loop] + 1)
            • Else - Actions


  • Eye of the Tornado Begin
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Eye of the Tornado
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Eye_Tornado_Mui_Turnoff Equal to 0
        • Then - Actions
          • Trigger - Turn on Eye of the Tornado Loop <gen>
          • Trigger - Turn on Eye of the Tornado Stop <gen>
        • Else - Actions
      • For each (Integer Eye_Tornado_Inside_Loop) from 1 to 6, do (Actions)
        • Loop - Actions
          • Set Eye_Tornado_Mui_Integer = (Eye_Tornado_Mui_Integer + 1)
          • Set Eye_Tornado_Mui_Turnoff = (Eye_Tornado_Mui_Turnoff + 1)
          • Set Eye_Tornado_Off[Eye_Tornado_Mui_Integer] = True
          • Set Eye_Tornado_Caster[Eye_Tornado_Mui_Integer] = (Triggering unit)
          • Set Eye_Tornado_Pos = (Position of (Triggering unit))
          • Set Eye_Tornado_Pos_Tornados = (Eye_Tornado_Pos offset by 675.00 towards (60.00 x (Real(Eye_Tornado_Inside_Loop))) degrees)
          • Unit - Create 1 Eye of the Tornado Dummy for (Triggering player) at Eye_Tornado_Pos_Tornados facing Default building facing degrees
          • Set Eye_Tornado_Dummies[Eye_Tornado_Mui_Integer] = (Last created unit)
          • Custom script: call RemoveLocation(udg_Eye_Tornado_Pos)
          • Custom script: call RemoveLocation(udg_Eye_Tornado_Pos_Tornados)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of units in Eye_Tornado_Group_2[Eye_Tornado_Mui_Integer]) Equal to 0
            • Then - Actions
              • Custom script: set udg_Eye_Tornado_Group_2[udg_Eye_Tornado_Mui_Integer]=CreateGroup()
            • Else - Actions
  • Eye of the Tornado Stop
    • Events
      • Unit - A unit Stops casting an ability
    • Conditions
      • (Ability being cast) Equal to Eye of the Tornado
    • Actions
      • For each (Integer Eye_Tornado_Checking) from 1 to Eye_Tornado_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Triggering unit) Equal to Eye_Tornado_Caster[Eye_Tornado_Checking]
            • Then - Actions
              • Unit - Remove Eye_Tornado_Dummies[Eye_Tornado_Checking] from the game
              • Set Eye_Tornado_Caster[Eye_Tornado_Checking] = No unit
              • Unit Group - Pick every unit in Eye_Tornado_Group_2[Eye_Tornado_Mui_Loop] and do (Actions)
                • Loop - Actions
                  • Unit - Turn collision for (Picked unit) On
              • Unit Group - Remove all units from Eye_Tornado_Group_2[Eye_Tornado_Checking]
              • Set Eye_Tornado_Mui_Turnoff = (Eye_Tornado_Mui_Turnoff - 1)
              • Set Eye_Tornado_Off[Eye_Tornado_Checking] = False
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Eye_Tornado_Mui_Turnoff Equal to 0
                • Then - Actions
                  • Trigger - Turn off Eye of the Tornado Loop <gen>
                  • Trigger - Turn off (This trigger)
                • Else - Actions
              • Custom script: call DestroyGroup(udg_Eye_Tornado_Group_2[udg_Eye_Tornado_Checking])
              • Skip remaining actions
            • Else - Actions
  • Eye of the Tornado Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Eye_Tornado_Mui_Loop) from 1 to Eye_Tornado_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Eye_Tornado_Off[Eye_Tornado_Mui_Loop] Equal to True
            • Then - Actions
              • Set Eye_Tornado_Pos = (Position of Eye_Tornado_Caster[Eye_Tornado_Mui_Loop])
              • Set Eye_Tornado_Pos_Tornados = (Position of Eye_Tornado_Dummies[Eye_Tornado_Mui_Loop])
              • Set Eye_Tornado_Group = (Units within 300.00 of Eye_Tornado_Pos_Tornados matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an enemy of (Owner of Eye_Tornado_Dummies[Eye_Tornado_Mui_Loop])) Eq
              • Unit Group - Add all units of Eye_Tornado_Group to Eye_Tornado_Group_2[Eye_Tornado_Mui_Loop]
              • Set Eye_Tornado_Pos_Off = (Eye_Tornado_Pos_Tornados offset by 26.00 towards ((Angle from Eye_Tornado_Pos to Eye_Tornado_Pos_Tornados) - 110.00) degrees)
              • Custom script: call RemoveLocation(udg_Eye_Tornado_Pos)
              • Unit Group - Pick every unit in Eye_Tornado_Group_2[Eye_Tornado_Mui_Loop] and do (Actions)
                • Loop - Actions
                  • Unit - Turn collision for (Picked unit) Off
                  • Set Eye_Tornado_Group_Pos = (Position of (Picked unit))
                  • Set Eye_Tornado_Pos = (Eye_Tornado_Group_Pos offset by 28.00 towards (Angle from Eye_Tornado_Group_Pos to Eye_Tornado_Pos_Tornados) degrees)
                  • Unit - Move (Picked unit) instantly to Eye_Tornado_Pos
                  • Trigger - Turn off Detecting a Melee attack <gen>
                  • Unit - Cause Eye_Tornado_Caster[Eye_Tornado_Mui_Loop] to damage (Picked unit), dealing (0.40 + (0.60 x (Real((Level of Eye of the Tornado for Eye_Tornado_Caster[Eye_Tornado_Mui_Loop]))))) damage of attack type Spells and damage type Magic
                  • Trigger - Turn on Detecting a Melee attack <gen>
                  • Custom script: call RemoveLocation(udg_Eye_Tornado_Pos)
                  • Custom script: call RemoveLocation(udg_Eye_Tornado_Group_Pos)
              • Unit - Move Eye_Tornado_Dummies[Eye_Tornado_Mui_Loop] instantly to Eye_Tornado_Pos_Off
              • Custom script: call RemoveLocation(udg_Eye_Tornado_Pos_Tornados)
              • Custom script: call RemoveLocation(udg_Eye_Tornado_Pos_Off)
              • Custom script: call DestroyGroup(udg_Eye_Tornado_Group)
            • Else - Actions


  • Alpha Strike
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Alpha Strike
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Alpha_Strike_Mui_Turnoff Equal to 0
        • Then - Actions
          • Trigger - Turn on Alpha Strike Loop <gen>
        • Else - Actions
      • Set Alpha_Strike_Mui_Integer = (Alpha_Strike_Mui_Integer + 1)
      • Set Alpha_Strike_Mui_Turnoff = (Alpha_Strike_Mui_Turnoff + 1)
      • Set Alpha_Strike_Off[Alpha_Strike_Mui_Integer] = True
      • Set Alpha_Strike_Striker[Alpha_Strike_Mui_Integer] = (Triggering unit)
      • Set Alpha_Strike_Target[Alpha_Strike_Mui_Integer] = (Target unit of ability being cast)
      • Set Alpha_Strike_Base_Target[Alpha_Strike_Mui_Integer] = (Target unit of ability being cast)
      • Set Alpha_Strike_Base_Pos[Alpha_Strike_Mui_Integer] = (Position of Alpha_Strike_Striker[Alpha_Strike_Mui_Integer])
      • Animation - Change Alpha_Strike_Striker[Alpha_Strike_Mui_Integer]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 80.00% transparency
      • Animation - Change Alpha_Strike_Striker[Alpha_Strike_Mui_Integer]'s animation speed to 300.00% of its original speed
      • Unit - Turn collision for Alpha_Strike_Striker[Alpha_Strike_Mui_Integer] Off
      • Special Effect - Create a special effect attached to the weapon of Alpha_Strike_Striker[Alpha_Strike_Mui_Integer] using Abilities\Weapons\PhoenixMissile\Phoenix_Missile.mdl
      • Set Alpha_Strike_Blade[Alpha_Strike_Mui_Integer] = (Last created special effect)
      • Unit - Make Alpha_Strike_Striker[Alpha_Strike_Mui_Integer] Invulnerable
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in Alpha_Strike_Targeted_Group[Alpha_Strike_Mui_Integer]) Equal to 0
        • Then - Actions
          • Custom script: set udg_Alpha_Strike_Targeted_Group[udg_Alpha_Strike_Mui_Integer]=CreateGroup()
        • Else - Actions
      • Unit Group - Add Alpha_Strike_Target[Alpha_Strike_Mui_Integer] to Alpha_Strike_Targeted_Group[Alpha_Strike_Mui_Integer]
  • Alpha Strike Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Alpha_Strike_Mui_Loop) from 1 to Alpha_Strike_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Alpha_Strike_Off[Alpha_Strike_Mui_Loop] Equal to True
            • Then - Actions
              • Set Alpha_Strike_Pos = (Position of Alpha_Strike_Striker[Alpha_Strike_Mui_Loop])
              • Set Alpha_Strike_Target_Pos = (Position of Alpha_Strike_Target[Alpha_Strike_Mui_Loop])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Distance between Alpha_Strike_Pos and Alpha_Strike_Target_Pos) Less than or equal to 40.00
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Number of units in Alpha_Strike_Targeted_Group[Alpha_Strike_Mui_Loop]) Equal to 4
                    • Then - Actions
                      • Unit Group - Pick every unit in Alpha_Strike_Targeted_Group[Alpha_Strike_Mui_Loop] and do (Actions)
                        • Loop - Actions
                          • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Items\WandOfNeutralization\NeutralizationMissile.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Trigger - Turn off Detecting a Melee attack <gen>
                          • Unit - Cause Alpha_Strike_Striker[Alpha_Strike_Mui_Loop] to damage (Picked unit), dealing (25.00 + (75.00 x (Real((Level of Alpha Strike for Alpha_Strike_Striker[Alpha_Strike_Mui_Loop]))))) damage of attack type Spells and damage type Magic
                          • Trigger - Turn on Detecting a Melee attack <gen>
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • ((Picked unit) is A Hero) Equal to False
                            • Then - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Random integer number between 1 and 100) Less than or equal to (15 x (Level of Alpha Strike for Alpha_Strike_Striker[Alpha_Strike_Mui_Loop]))
                                • Then - Actions
                                  • Trigger - Turn off Detecting a Melee attack <gen>
                                  • Unit - Cause Alpha_Strike_Striker[Alpha_Strike_Mui_Loop] to damage (Picked unit), dealing 400.00 damage of attack type Spells and damage type Magic
                                  • Trigger - Turn on Detecting a Melee attack <gen>
                                • Else - Actions
                            • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Alpha_Strike_Base_Target[Alpha_Strike_Mui_Loop] is alive) Equal to True
                        • Then - Actions
                          • Set Alpha_Strike_Base_Target_Pos = (Position of Alpha_Strike_Base_Target[Alpha_Strike_Mui_Loop])
                          • Custom script: call SetUnitX(udg_Alpha_Strike_Striker[udg_Alpha_Strike_Mui_Loop],GetLocationX(udg_Alpha_Strike_Base_Target_Pos))
                          • Custom script: call SetUnitY(udg_Alpha_Strike_Striker[udg_Alpha_Strike_Mui_Loop],GetLocationY(udg_Alpha_Strike_Base_Target_Pos))
                          • Unit - Order Alpha_Strike_Striker[Alpha_Strike_Mui_Loop] to Attack Alpha_Strike_Base_Target[Alpha_Strike_Mui_Loop]
                          • Custom script: call RemoveLocation(udg_Alpha_Strike_Base_Target_Pos)
                        • Else - Actions
                          • Custom script: call SetUnitX(udg_Alpha_Strike_Striker[udg_Alpha_Strike_Mui_Loop],GetLocationX(udg_Alpha_Strike_Base_Pos[udg_Alpha_Strike_Mui_Loop]))
                          • Custom script: call SetUnitY(udg_Alpha_Strike_Striker[udg_Alpha_Strike_Mui_Loop],GetLocationY(udg_Alpha_Strike_Base_Pos[udg_Alpha_Strike_Mui_Loop]))
                      • Custom script: call RemoveLocation(udg_Alpha_Strike_Base_Pos[udg_Alpha_Strike_Mui_Loop])
                      • Set Alpha_Strike_Mui_Turnoff = (Alpha_Strike_Mui_Turnoff - 1)
                      • Set Alpha_Strike_Off[Alpha_Strike_Mui_Loop] = False
                      • Animation - Change Alpha_Strike_Striker[Alpha_Strike_Mui_Loop]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
                      • Animation - Change Alpha_Strike_Striker[Alpha_Strike_Mui_Integer]'s animation speed to 100.00% of its original speed
                      • Unit Group - Remove all units from Alpha_Strike_Targeted_Group[Alpha_Strike_Mui_Loop]
                      • Unit - Turn collision for Alpha_Strike_Striker[Alpha_Strike_Mui_Loop] On
                      • Special Effect - Destroy Alpha_Strike_Blade[Alpha_Strike_Mui_Loop]
                      • Unit - Make Alpha_Strike_Striker[Alpha_Strike_Mui_Loop] Vulnerable
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • Alpha_Strike_Mui_Turnoff Equal to 0
                        • Then - Actions
                          • Set Alpha_Strike_Mui_Integer = 0
                          • Trigger - Turn off (This trigger)
                        • Else - Actions
                      • Custom script: call DestroyGroup(udg_Alpha_Strike_Targeted_Group[udg_Alpha_Strike_Mui_Loop])
                    • Else - Actions
                      • Set Alpha_Strike_Group = (Units within 550.00 of Alpha_Strike_Pos matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of Alpha_Strike_Striker[Alpha_Strike_Mui_Loop]))
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Number of units in Alpha_Strike_Group) Greater than 0
                        • Then - Actions
                          • Special Effect - Create a special effect attached to the chest of Alpha_Strike_Target[Alpha_Strike_Mui_Loop] using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Set Alpha_Strike_Target[Alpha_Strike_Mui_Loop] = (Random unit from Alpha_Strike_Group)
                          • Unit Group - Add Alpha_Strike_Target[Alpha_Strike_Mui_Loop] to Alpha_Strike_Targeted_Group[Alpha_Strike_Mui_Loop]
                          • Unit - Make Alpha_Strike_Striker[Alpha_Strike_Mui_Loop] face Alpha_Strike_Target[Alpha_Strike_Mui_Loop] over 0.00 seconds
                          • Custom script: call RemoveLocation(udg_Alpha_Strike_Target_Pos)
                          • Set Alpha_Strike_Target_Pos = (Position of Alpha_Strike_Target[Alpha_Strike_Mui_Loop])
                        • Else - Actions
                          • Unit Group - Pick every unit in Alpha_Strike_Targeted_Group[Alpha_Strike_Mui_Loop] and do (Actions)
                            • Loop - Actions
                              • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Items\WandOfNeutralization\NeutralizationMissile.mdl
                              • Special Effect - Destroy (Last created special effect)
                              • Trigger - Turn off Detecting a Melee attack <gen>
                              • Unit - Cause Alpha_Strike_Striker[Alpha_Strike_Mui_Loop] to damage (Picked unit), dealing (25.00 + (75.00 x (Real((Level of Alpha Strike for Alpha_Strike_Striker[Alpha_Strike_Mui_Loop]))))) damage of attack type Spells and damage type Magic
                              • Trigger - Turn on Detecting a Melee attack <gen>
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • ((Picked unit) is A Hero) Equal to False
                                • Then - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • (Random integer number between 1 and 100) Less than or equal to (15 x (Level of Alpha Strike for Alpha_Strike_Striker[Alpha_Strike_Mui_Loop]))
                                    • Then - Actions
                                      • Trigger - Turn off Detecting a Melee attack <gen>
                                      • Unit - Cause Alpha_Strike_Striker[Alpha_Strike_Mui_Loop] to damage (Picked unit), dealing 400.00 damage of attack type Spells and damage type Magic
                                      • Trigger - Turn on Detecting a Melee attack <gen>
                                    • Else - Actions
                                • Else - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Alpha_Strike_Base_Target[Alpha_Strike_Mui_Loop] is alive) Equal to True
                            • Then - Actions
                              • Set Alpha_Strike_Base_Target_Pos = (Position of Alpha_Strike_Base_Target[Alpha_Strike_Mui_Loop])
                              • Custom script: call SetUnitX(udg_Alpha_Strike_Striker[udg_Alpha_Strike_Mui_Loop],GetLocationX(udg_Alpha_Strike_Base_Target_Pos))
                              • Custom script: call SetUnitY(udg_Alpha_Strike_Striker[udg_Alpha_Strike_Mui_Loop],GetLocationY(udg_Alpha_Strike_Base_Target_Pos))
                              • Unit - Order Alpha_Strike_Striker[Alpha_Strike_Mui_Loop] to Attack Alpha_Strike_Base_Target[Alpha_Strike_Mui_Loop]
                              • Custom script: call RemoveLocation(udg_Alpha_Strike_Base_Target_Pos)
                            • Else - Actions
                              • Unit - Move Alpha_Strike_Striker[Alpha_Strike_Mui_Loop] instantly to Alpha_Strike_Base_Pos[Alpha_Strike_Mui_Loop]
                          • Custom script: call RemoveLocation(udg_Alpha_Strike_Base_Pos[udg_Alpha_Strike_Mui_Loop])
                          • Set Alpha_Strike_Mui_Turnoff = (Alpha_Strike_Mui_Turnoff - 1)
                          • Set Alpha_Strike_Off[Alpha_Strike_Mui_Loop] = False
                          • Animation - Change Alpha_Strike_Striker[Alpha_Strike_Mui_Loop]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
                          • Animation - Change Alpha_Strike_Striker[Alpha_Strike_Mui_Integer]'s animation speed to 100.00% of its original speed
                          • Unit Group - Remove all units from Alpha_Strike_Targeted_Group[Alpha_Strike_Mui_Loop]
                          • Unit - Turn collision for Alpha_Strike_Striker[Alpha_Strike_Mui_Loop] On
                          • Special Effect - Destroy Alpha_Strike_Blade[Alpha_Strike_Mui_Loop]
                          • Unit - Make Alpha_Strike_Striker[Alpha_Strike_Mui_Loop] Vulnerable
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • Alpha_Strike_Mui_Turnoff Equal to 0
                            • Then - Actions
                              • Set Alpha_Strike_Mui_Integer = 0
                              • Trigger - Turn off (This trigger)
                            • Else - Actions
                          • Custom script: call DestroyGroup(udg_Alpha_Strike_Targeted_Group[udg_Alpha_Strike_Mui_Loop])
                      • Custom script: call DestroyGroup (udg_Alpha_Strike_Group)
                • Else - Actions
                  • Set Alpha_Strike_Pos_Off = (Alpha_Strike_Pos offset by 50.00 towards (Angle from Alpha_Strike_Pos to Alpha_Strike_Target_Pos) degrees)
                  • Unit - Order Alpha_Strike_Striker[Alpha_Strike_Mui_Loop] to Attack Once Alpha_Strike_Target[Alpha_Strike_Mui_Loop]
                  • Animation - Play Alpha_Strike_Striker[Alpha_Strike_Mui_Loop]'s walk animation
                  • Custom script: call SetUnitX(udg_Alpha_Strike_Striker[udg_Alpha_Strike_Mui_Loop],GetLocationX(udg_Alpha_Strike_Pos_Off))
                  • Custom script: call SetUnitY(udg_Alpha_Strike_Striker[udg_Alpha_Strike_Mui_Loop],GetLocationY(udg_Alpha_Strike_Pos_Off))
                  • Custom script: call RemoveLocation(udg_Alpha_Strike_Pos_Off)
              • Custom script: call RemoveLocation(udg_Alpha_Strike_Pos)
              • Custom script: call RemoveLocation(udg_Alpha_Strike_Target_Pos)
            • Else - Actions


  • Meditate
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Meditate
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Meditate_Mui_Turnoff Equal to 0
        • Then - Actions
          • Trigger - Turn on Meditate Loop <gen>
          • Trigger - Turn on Meditate Stop <gen>
        • Else - Actions
      • Set Meditate_Mui_Integer = (Meditate_Mui_Integer + 1)
      • Set Meditate_Mui_Turnoff = (Meditate_Mui_Turnoff + 1)
      • Set Meditate_Off[Meditate_Mui_Integer] = True
      • Set Meditator[Meditate_Mui_Integer] = (Triggering unit)
      • Set Meditate_Time[Meditate_Mui_Integer] = 0
      • Unit - Add Meditate [Armor Increase] to (Triggering unit)
      • Unit - Add Meditate [Spell Reduction] to (Triggering unit)
      • Unit - Set level of Meditate [Armor Increase] for (Triggering unit) to (Level of Meditate for (Triggering unit))
      • Unit - Set level of Meditate [Spell Reduction] for (Triggering unit) to (Level of Meditate for (Triggering unit))
  • Meditate Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Meditate_Mui_Loop) from 1 to Meditate_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Meditate_Off[Meditate_Mui_Loop] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • (Meditate_Time[Meditate_Mui_Loop] mod 25) Equal to 0
                • Then - Actions
                  • Special Effect - Create a special effect attached to the origin of Meditator[Meditate_Mui_Loop] using Abilities\Spells\Items\ResourceItems\ResourceEffectTarget.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Set Meditate_Time[Meditate_Mui_Loop] = (Meditate_Time[Meditate_Mui_Loop] + 1)
                • Else - Actions
                  • Set Meditate_Time[Meditate_Mui_Loop] = (Meditate_Time[Meditate_Mui_Loop] + 1)
              • Unit - Set life of Meditator[Meditate_Mui_Loop] to ((Life of Meditator[Meditate_Mui_Loop]) + (1.40 x (Real((Level of Meditate for Meditator[Meditate_Mui_Loop])))))
            • Else - Actions
  • Meditate Stop
    • Events
      • Unit - A unit Stops casting an ability
    • Conditions
      • (Ability being cast) Equal to Meditate
    • Actions
      • For each (Integer Meditate_Stop_Loop) from 1 to Meditate_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Triggering unit) Equal to Meditator[Meditate_Stop_Loop]
            • Then - Actions
              • Set Meditate_Mui_Turnoff = (Meditate_Mui_Turnoff - 1)
              • Set Meditate_Off[Meditate_Stop_Loop] = False
              • Set Meditate_Time[Meditate_Stop_Loop] = 0
              • Unit - Remove Meditate [Armor Increase] from (Triggering unit)
              • Unit - Remove Meditate [Spell Reduction] from (Triggering unit)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Meditate_Mui_Turnoff Equal to 0
                • Then - Actions
                  • Set Meditate_Mui_Integer = 0
                  • Trigger - Turn off Meditate Loop <gen>
                  • Trigger - Turn off (This trigger)
                • Else - Actions
              • Skip remaining actions
            • Else - Actions


  • Wuju Style Learn
    • Events
      • Unit - A unit Learns a skill
    • Conditions
      • (Learned Hero Skill) Equal to Wuju Style
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Wuju Style for (Triggering unit)) Equal to 1
        • Then - Actions
          • Unit - Add Wuju Style [Dummy] to (Triggering unit)
          • Unit - Set level of Wuju Style [Dummy] for (Triggering unit) to ((Level of Wuju Style for (Triggering unit)) + 1)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • (Level of Wuju Style for (Triggering unit)) Equal to 2
                  • (Level of Wuju Style for (Triggering unit)) Equal to 3
                  • (Level of Wuju Style for (Triggering unit)) Equal to 4
            • Then - Actions
              • Unit - Set level of Wuju Style [Dummy] for (Triggering unit) to ((Level of Wuju Style for (Triggering unit)) + 1)
              • For each (Integer Wuju_Style_Inside_Loop) from 1 to Wuju_Style_Mui_Integer, do (Actions)
                • Loop - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Triggering unit) Equal to Wuju_Style_Unit[Wuju_Style_Inside_Loop]
                      • Wuju_Style_Off[Wuju_Style_Inside_Loop] Equal to True
                      • Wuju_Style_Time[Wuju_Style_Inside_Loop] Less than 375
                      • Wuju_Style_Time[Wuju_Style_Inside_Loop] Greater than 250
                    • Then - Actions
                      • Unit - Set level of Wuju Style [Dummy] for (Triggering unit) to 1
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Triggering unit) Equal to Wuju_Style_Unit[Wuju_Style_Inside_Loop]
                          • Wuju_Style_Off[Wuju_Style_Inside_Loop] Equal to True
                          • Wuju_Style_Time[Wuju_Style_Inside_Loop] Less than 250
                        • Then - Actions
                          • Unit - Set level of Wuju Style [Dummy] for Wuju_Style_Unit[Wuju_Style_Inside_Loop] to ((2 x (Level of Wuju Style for (Triggering unit))) + 1)
                        • Else - Actions
            • Else - Actions
  • Wuju Style Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Wuju Style
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Wuju_Style_Mui_Turnoff Equal to 0
        • Then - Actions
          • Trigger - Turn on Wuju Style Cooldown <gen>
        • Else - Actions
      • For each (Integer Wuju_Style_Inside_Check) from 0 to Wuju_Style_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Triggering unit) Equal to Wuju_Style_Unit[Wuju_Style_Inside_Check]
            • Then - Actions
              • Set Wuju_Style_Off[Wuju_Style_Inside_Check] = True
              • Set Wuju_Style_Unit[Wuju_Style_Inside_Check] = (Triggering unit)
              • Set Wuju_Style_Time[Wuju_Style_Inside_Check] = 0
              • Unit - Set level of Wuju Style [Dummy] for Wuju_Style_Unit[Wuju_Style_Inside_Check] to ((2 x (Level of Wuju Style for (Triggering unit))) + 1)
              • Skip remaining actions
            • Else - Actions
              • Set Wuju_Style_Mui_Integer = (Wuju_Style_Mui_Integer + 1)
              • Set Wuju_Style_Mui_Turnoff = (Wuju_Style_Mui_Turnoff + 1)
              • Set Wuju_Style_Off[Wuju_Style_Mui_Integer] = True
              • Set Wuju_Style_Unit[Wuju_Style_Mui_Integer] = (Triggering unit)
              • Special Effect - Destroy Wuju_Style_Sfx_2[Wuju_Style_Mui_Integer]
              • Special Effect - Destroy Wuju_Style_Sfx_1[Wuju_Style_Mui_Integer]
              • Unit - Set level of Wuju Style [Dummy] for Wuju_Style_Unit[Wuju_Style_Mui_Integer] to ((2 x (Level of Wuju Style for (Triggering unit))) + 1)
              • Special Effect - Create a special effect attached to the weapon of (Triggering unit) using war3mapImported\Stars_Lightning.MDX
              • Set Wuju_Style_Sfx_2[Wuju_Style_Mui_Integer] = (Last created special effect)
              • Special Effect - Create a special effect attached to the hand, right of (Triggering unit) using war3mapImported\Stars_Lightning.MDX
              • Set Wuju_Style_Sfx_1[Wuju_Style_Mui_Integer] = (Last created special effect)
  • Wuju Style Cooldown
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Wuju_Style_Mui_Loop) from 1 to Wuju_Style_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Wuju_Style_Off[Wuju_Style_Mui_Loop] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • Wuju_Style_Time[Wuju_Style_Mui_Loop] Equal to 375
                      • (Wuju_Style_Unit[Wuju_Style_Mui_Loop] is dead) Equal to True
                • Then - Actions
                  • Special Effect - Destroy Wuju_Style_Sfx_2[Wuju_Style_Mui_Loop]
                  • Special Effect - Destroy Wuju_Style_Sfx_1[Wuju_Style_Mui_Loop]
                  • Unit - Set level of Wuju Style [Dummy] for Wuju_Style_Unit[Wuju_Style_Mui_Loop] to ((Level of Wuju Style for Wuju_Style_Unit[Wuju_Style_Mui_Loop]) + 1)
                  • Set Wuju_Style_Mui_Turnoff = (Wuju_Style_Mui_Turnoff - 1)
                  • Set Wuju_Style_Off[Wuju_Style_Mui_Loop] = False
                  • Set Wuju_Style_Time[Wuju_Style_Mui_Loop] = 0
                  • Set Wuju_Style_Unit[Wuju_Style_Mui_Loop] = (Last created unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Wuju_Style_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Wuju_Style_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Wuju_Style_Time[Wuju_Style_Mui_Loop] Equal to 250
                    • Then - Actions
                      • Special Effect - Destroy Wuju_Style_Sfx_2[Wuju_Style_Mui_Loop]
                      • Special Effect - Destroy Wuju_Style_Sfx_1[Wuju_Style_Mui_Loop]
                      • Unit - Set level of Wuju Style [Dummy] for Wuju_Style_Unit[Wuju_Style_Mui_Loop] to 1
                      • Set Wuju_Style_Time[Wuju_Style_Mui_Loop] = (Wuju_Style_Time[Wuju_Style_Mui_Loop] + 1)
                    • Else - Actions
                      • Set Wuju_Style_Time[Wuju_Style_Mui_Loop] = (Wuju_Style_Time[Wuju_Style_Mui_Loop] + 1)
            • Else - Actions


  • Highlander
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Highlander
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Triggering unit) has buff Highlander ) Equal to True
        • Then - Actions
          • Unit - Remove Highlander buff from (Triggering unit)
          • Unit Group - Add (Triggering unit) to Highlander_Group
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Highlander_Mui_Turnoff Equal to 0
            • Then - Actions
              • Trigger - Turn on Highlander Loop <gen>
              • Trigger - Turn on Highlander Kills <gen>
            • Else - Actions
          • Set Highlander_Mui_Integer = (Highlander_Mui_Integer + 1)
          • Set Highlander_Mui_Turnoff = (Highlander_Mui_Turnoff + 1)
          • Set Highlander_Off[Highlander_Mui_Integer] = True
          • Set Highlander_Unit[Highlander_Mui_Integer] = (Triggering unit)
          • Set Highlander_Time[Highlander_Mui_Integer] = 0
          • Unit - Set (Triggering unit) movement speed to 90000.00
          • Set Highlander_Pos = (Position of (Triggering unit))
          • Unit - Create 1 Dummy :) for (Triggering player) at Highlander_Pos facing Default building facing degrees
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Unit - Add Highlander [Dummy] to (Last created unit)
          • Unit - Set level of Highlander [Dummy] for (Last created unit) to (Level of Highlander for (Triggering unit))
          • Unit - Order (Last created unit) to Orc Shaman - Bloodlust (Triggering unit)
          • Custom script: call RemoveLocation(udg_Highlander_Pos)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Highlander_Mui_Turnoff Equal to 0
            • Then - Actions
              • Trigger - Turn on Highlander Loop <gen>
            • Else - Actions
          • Set Highlander_Pos = (Position of (Triggering unit))
          • Unit - Create 1 Dummy :) for (Triggering player) at Highlander_Pos facing Default building facing degrees
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Unit - Add Highlander [Dummy] to (Last created unit)
          • Unit - Set level of Highlander [Dummy] for (Last created unit) to (Level of Highlander for (Triggering unit))
          • Unit - Order (Last created unit) to Orc Shaman - Bloodlust (Triggering unit)
          • Custom script: call RemoveLocation(udg_Highlander_Pos)
          • Set Highlander_Mui_Integer = (Highlander_Mui_Integer + 1)
          • Set Highlander_Mui_Turnoff = (Highlander_Mui_Turnoff + 1)
          • Set Highlander_Off[Highlander_Mui_Integer] = True
          • Set Highlander_Unit[Highlander_Mui_Integer] = (Triggering unit)
          • Set Highlander_Time[Highlander_Mui_Integer] = 0
          • Unit - Set (Triggering unit) movement speed to 90000.00
  • Highlander Kills
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Killing unit) has buff Highlander ) Equal to True
      • ((Triggering unit) is A Hero) Equal to True
    • Actions
      • Unit - Reset ability cooldowns for (Killing unit)
  • Highlander Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Highlander_Mui_Loop) from 1 to Highlander_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Highlander_Off[Highlander_Mui_Loop] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Highlander_Unit[Highlander_Mui_Loop] is in Highlander_Group) Equal to False
                  • (Highlander_Unit[Highlander_Mui_Loop] has buff Highlander ) Equal to False
                  • Highlander_Time[Highlander_Mui_Loop] Greater than 10
                • Then - Actions
                  • Unit - Set Highlander_Unit[Highlander_Mui_Loop] movement speed to 295.00
                  • Set Highlander_Mui_Turnoff = (Highlander_Mui_Turnoff - 1)
                  • Set Highlander_Off[Highlander_Mui_Loop] = False
                  • Set Highlander_Time[Highlander_Mui_Loop] = 0
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Highlander_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Highlander_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                      • Trigger - Turn off Highlander Kills <gen>
                    • Else - Actions
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Highlander_Time[Highlander_Mui_Loop] Equal to (75 + (75 x (Level of Highlander for Highlander_Unit[Highlander_Mui_Loop])))
                    • Then - Actions
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Highlander_Unit[Highlander_Mui_Loop] has buff Highlander ) Equal to False
                        • Then - Actions
                          • Set Highlander_Time[Highlander_Mui_Loop] = (Highlander_Time[Highlander_Mui_Loop] + 1)
                        • Else - Actions
                          • Unit Group - Remove Highlander_Unit[Highlander_Mui_Loop] from Highlander_Group
                          • Set Highlander_Time[Highlander_Mui_Loop] = (Highlander_Time[Highlander_Mui_Loop] + 1)
            • Else - Actions


  • Soul Mastery
    • Events
      • Unit - A unit Learns a skill
    • Conditions
      • (Learned Hero Skill) Equal to Soul Mastery [Dummy]
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Soul Mastery [Dummy] for (Triggering unit)) Equal to 1
        • Then - Actions
          • Set Soul_Mastery_Integer = (Soul_Mastery_Integer + 1)
          • Set Soul_Mastery_Hero[Soul_Mastery_Integer] = (Triggering unit)
          • Unit - Add Soul Mastery [Level 1] to (Triggering unit)
          • Unit - Add Soul Mastery [Damage] to (Triggering unit)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Level of Soul Mastery [Dummy] for (Triggering unit)) Equal to 2
            • Then - Actions
              • Unit - Remove Soul Mastery [Level 1] from (Triggering unit)
              • Unit - Add Soul Mastery [Level 2] to (Triggering unit)
              • Unit - Set level of Soul Mastery [Level 2] for (Triggering unit) to (Level of Soul Mastery [Damage] for (Triggering unit))
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Soul Mastery [Dummy] for (Triggering unit)) Equal to 3
                • Then - Actions
                  • Unit - Remove Soul Mastery [Level 2] from (Triggering unit)
                  • Unit - Add Soul Mastery [Level 3] to (Triggering unit)
                  • Unit - Set level of Soul Mastery [Level 3] for (Triggering unit) to (Level of Soul Mastery [Damage] for (Triggering unit))
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Level of Soul Mastery [Dummy] for (Triggering unit)) Equal to 4
                    • Then - Actions
                      • Unit - Remove Soul Mastery [Level 3] from (Triggering unit)
                      • Unit - Add Soul Mastery [Level 4] to (Triggering unit)
                      • Unit - Set level of Soul Mastery [Level 4] for (Triggering unit) to (Level of Soul Mastery [Damage] for (Triggering unit))
                    • Else - Actions
  • Soul Mastery
    • Events
      • Unit - A unit Learns a skill
    • Conditions
      • (Learned Hero Skill) Equal to Soul Mastery [Dummy]
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Soul Mastery [Dummy] for (Triggering unit)) Equal to 1
        • Then - Actions
          • Set Soul_Mastery_Integer = (Soul_Mastery_Integer + 1)
          • Set Soul_Mastery_Hero[Soul_Mastery_Integer] = (Triggering unit)
          • Unit - Add Soul Mastery [Level 1] to (Triggering unit)
          • Unit - Add Soul Mastery [Damage] to (Triggering unit)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Level of Soul Mastery [Dummy] for (Triggering unit)) Equal to 2
            • Then - Actions
              • Unit - Remove Soul Mastery [Level 1] from (Triggering unit)
              • Unit - Add Soul Mastery [Level 2] to (Triggering unit)
              • Unit - Set level of Soul Mastery [Level 2] for (Triggering unit) to (Level of Soul Mastery [Damage] for (Triggering unit))
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Soul Mastery [Dummy] for (Triggering unit)) Equal to 3
                • Then - Actions
                  • Unit - Remove Soul Mastery [Level 2] from (Triggering unit)
                  • Unit - Add Soul Mastery [Level 3] to (Triggering unit)
                  • Unit - Set level of Soul Mastery [Level 3] for (Triggering unit) to (Level of Soul Mastery [Damage] for (Triggering unit))
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Level of Soul Mastery [Dummy] for (Triggering unit)) Equal to 4
                    • Then - Actions
                      • Unit - Remove Soul Mastery [Level 3] from (Triggering unit)
                      • Unit - Add Soul Mastery [Level 4] to (Triggering unit)
                      • Unit - Set level of Soul Mastery [Level 4] for (Triggering unit) to (Level of Soul Mastery [Damage] for (Triggering unit))
                    • Else - Actions
  • Soul Catch
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Soul Catch
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Soul_Catch_Mui_Turnoff Equal to 0
        • Then - Actions
          • Trigger - Turn on Soul Catch Movement <gen>
        • Else - Actions
      • Set Soul_Catch_Mui_Integer = (Soul_Catch_Mui_Integer + 1)
      • Set Soul_Catch_Mui_Turnoff = (Soul_Catch_Mui_Turnoff + 1)
      • Set Soul_Catch_Off[Soul_Catch_Mui_Integer] = True
      • Set Soul_Catch_Hero[Soul_Catch_Mui_Integer] = (Triggering unit)
      • Set Soul_Catch_Pos = (Position of (Triggering unit))
      • Unit - Create 1 Soul Catch [Dummy] for (Triggering player) at Soul_Catch_Pos facing (Facing of (Triggering unit)) degrees
      • Set Soul_Catch_Dummy[Soul_Catch_Mui_Integer] = (Last created unit)
      • Set Soul_Catch_Facing[Soul_Catch_Mui_Integer] = (Facing of (Last created unit))
      • Set Soul_Catch_Distance[Soul_Catch_Mui_Integer] = 800.00
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in Soul_Catch_Group_2[Soul_Catch_Mui_Integer]) Equal to 0
        • Then - Actions
          • Custom script: set udg_Soul_Catch_Group_2[udg_Soul_Catch_Mui_Integer]=CreateGroup ()
        • Else - Actions
      • Custom script: call RemoveLocation(udg_Soul_Catch_Pos)
  • Soul Catch Movement
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Soul_Catch_Mui_Loop) from 1 to Soul_Catch_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Soul_Catch_Off[Soul_Catch_Mui_Loop] Equal to True
            • Then - Actions
              • Set Soul_Catch_Pos = (Position of Soul_Catch_Dummy[Soul_Catch_Mui_Loop])
              • Set Soul_Catch_Pos_Off = (Soul_Catch_Pos offset by 48.00 towards Soul_Catch_Facing[Soul_Catch_Mui_Loop] degrees)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • (Terrain pathing at Soul_Catch_Pos_Off of type Flyability is off) Equal to True
                      • Soul_Catch_Distance[Soul_Catch_Mui_Loop] Less than or equal to 0.00
                • Then - Actions
                  • Unit - Remove Soul_Catch_Dummy[Soul_Catch_Mui_Loop] from the game
                  • Unit Group - Remove all units from Soul_Catch_Group_2[Soul_Catch_Mui_Loop]
                  • Set Soul_Catch_Off[Soul_Catch_Mui_Loop] = False
                  • Set Soul_Catch_Mui_Turnoff = (Soul_Catch_Mui_Turnoff - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Soul_Catch_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Soul_Catch_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                  • Custom script: call DestroyGroup(udg_Soul_Catch_Group_2[udg_Soul_Catch_Mui_Loop])
                • Else - Actions
                  • Unit - Move Soul_Catch_Dummy[Soul_Catch_Mui_Loop] instantly to Soul_Catch_Pos_Off, facing Soul_Catch_Facing[Soul_Catch_Mui_Loop] degrees
                  • Set Soul_Catch_Distance[Soul_Catch_Mui_Loop] = (Soul_Catch_Distance[Soul_Catch_Mui_Loop] - 48.00)
                  • Set Soul_Catch_Group = (Units within 140.00 of Soul_Catch_Pos matching ((((Matching unit) is A Hero) Equal to True) and ((((Matching unit) belongs to an enemy of (Owner of Soul_Catch_Hero[Soul_Catch_Mui_Loop])) Equal to True) and (((Matching unit) is in Soul_Catch_Group_2[Soul_Catc
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Number of units in Soul_Catch_Group) Greater than 0
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Level of Soul Mastery [Dummy] for Soul_Catch_Hero[Soul_Catch_Mui_Loop]) Greater than 0
                        • Then - Actions
                          • Unit Group - Pick every unit in Soul_Catch_Group and do (Actions)
                            • Loop - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • Soul_Movement_Turnoff Equal to 0
                                • Then - Actions
                                  • Trigger - Turn on Soul Movement <gen>
                                • Else - Actions
                              • Set Soul_Movement_Pos = (Position of Soul_Catch_Dummy[Soul_Catch_Mui_Loop])
                              • Set Soul_Movement_Integer = (Soul_Movement_Integer + 1)
                              • Set Soul_Movement_Turnoff = (Soul_Movement_Turnoff + 1)
                              • Set Soul_Movement_Off[Soul_Movement_Integer] = True
                              • Set Soul_Movement_Pos_Off = (Position of Soul_Catch_Hero[Soul_Catch_Mui_Loop])
                              • Set Soul_Movement_Hero[Soul_Movement_Integer] = Soul_Catch_Hero[Soul_Catch_Mui_Loop]
                              • Unit - Create 1 Soul [Dummy] for (Owner of Soul_Catch_Hero[Soul_Catch_Mui_Loop]) at Soul_Movement_Pos facing Soul_Movement_Pos_Off
                              • Set Soul_Movement_Unit[Soul_Movement_Integer] = (Last created unit)
                              • Custom script: call RemoveLocation(udg_Soul_Movement_Pos)
                              • Custom script: call RemoveLocation(udg_Soul_Movement_Pos_Off)
                              • Unit Group - Add all units of Soul_Catch_Group to Soul_Catch_Group_2[Soul_Catch_Mui_Loop]
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Level of Soul Catch for Soul_Catch_Hero[Soul_Catch_Mui_Loop]) Equal to 1
                                • Then - Actions
                                  • Trigger - Turn off Detecting a Melee attack <gen>
                                  • Unit - Cause Soul_Catch_Hero[Soul_Catch_Mui_Loop] to damage (Picked unit), dealing ((Real((Intelligence of Soul_Catch_Hero[Soul_Catch_Mui_Loop] (Include bonuses)))) x 0.50) damage of attack type Spells and damage type Magic
                                  • Trigger - Turn on Detecting a Melee attack <gen>
                                • Else - Actions
                                  • Trigger - Turn off Detecting a Melee attack <gen>
                                  • Unit - Cause Soul_Catch_Hero[Soul_Catch_Mui_Loop] to damage (Picked unit), dealing (((Real((Intelligence of Soul_Catch_Hero[Soul_Catch_Mui_Loop] (Include bonuses)))) x 0.50) + (((0.50 x (Real((Strength of Soul_Catch_Hero[Soul_Catch_Mui_Loop] (Include bonuses))))) x (Real((Level of Soul Catch for Soul_Catch_Hero[Soul_Catch_Mui_Loop])))) - ( damage of attack type Spells and damage type Magic
                                  • Trigger - Turn on Detecting a Melee attack <gen>
                        • Else - Actions
                          • Unit Group - Add all units of Soul_Catch_Group to Soul_Catch_Group_2[Soul_Catch_Mui_Loop]
                          • Unit Group - Pick every unit in Soul_Catch_Group and do (Actions)
                            • Loop - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Level of Soul Catch for Soul_Catch_Hero[Soul_Catch_Mui_Loop]) Equal to 1
                                • Then - Actions
                                  • Trigger - Turn off Detecting a Melee attack <gen>
                                  • Unit - Cause Soul_Catch_Hero[Soul_Catch_Mui_Loop] to damage (Picked unit), dealing ((Real((Intelligence of Soul_Catch_Hero[Soul_Catch_Mui_Loop] (Include bonuses)))) x 0.50) damage of attack type Spells and damage type Magic
                                  • Trigger - Turn on Detecting a Melee attack <gen>
                                • Else - Actions
                                  • Trigger - Turn off Detecting a Melee attack <gen>
                                  • Unit - Cause Soul_Catch_Hero[Soul_Catch_Mui_Loop] to damage (Picked unit), dealing (((Real((Intelligence of Soul_Catch_Hero[Soul_Catch_Mui_Loop] (Include bonuses)))) x 0.50) + (((0.50 x (Real((Strength of Soul_Catch_Hero[Soul_Catch_Mui_Loop] (Include bonuses))))) x (Real((Level of Soul Catch for Soul_Catch_Hero[Soul_Catch_Mui_Loop])))) - ( damage of attack type Spells and damage type Magic
                                  • Trigger - Turn on Detecting a Melee attack <gen>
                    • Else - Actions
                  • Custom script: call DestroyGroup(udg_Soul_Catch_Group)
              • Custom script: call RemoveLocation(udg_Soul_Catch_Pos)
              • Custom script: call RemoveLocation(udg_Soul_Catch_Pos_Off)
            • Else - Actions
  • Soul Movement
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Soul_Movement_Loop) from 1 to Soul_Movement_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Soul_Movement_Off[Soul_Movement_Loop] Equal to True
            • Then - Actions
              • Set Soul_Movement_Pos = (Position of Soul_Movement_Unit[Soul_Movement_Loop])
              • Set Soul_Movement_Group = (Units within 25.00 of Soul_Movement_Pos matching ((Matching unit) Equal to Soul_Movement_Hero[Soul_Movement_Loop]))
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • (Soul_Movement_Hero[Soul_Movement_Loop] is dead) Equal to True
                      • (Number of units in Soul_Movement_Group) Equal to 1
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Number of units in Soul_Movement_Group) Equal to 1
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Level of Soul Catch for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 1
                        • Then - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Level of Soul Mastery [Dummy] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 1
                            • Then - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 14
                                • Then - Actions
                                • Else - Actions
                                  • Unit - Increase level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]
                                  • Unit - Increase level of Soul Mastery [Level 1] for Soul_Movement_Hero[Soul_Movement_Loop]
                            • Else - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Level of Soul Mastery [Dummy] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 2
                                • Then - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • (Level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 24
                                    • Then - Actions
                                    • Else - Actions
                                      • Unit - Increase level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]
                                      • Unit - Increase level of Soul Mastery [Level 2] for Soul_Movement_Hero[Soul_Movement_Loop]
                                • Else - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • (Level of Soul Mastery [Dummy] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 3
                                    • Then - Actions
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • (Level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 34
                                        • Then - Actions
                                        • Else - Actions
                                          • Unit - Increase level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]
                                          • Unit - Increase level of Soul Mastery [Level 3] for Soul_Movement_Hero[Soul_Movement_Loop]
                                    • Else - Actions
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • (Level of Soul Mastery [Dummy] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 4
                                        • Then - Actions
                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            • If - Conditions
                                              • (Level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 44
                                            • Then - Actions
                                            • Else - Actions
                                              • Unit - Increase level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]
                                              • Unit - Increase level of Soul Mastery [Level 4] for Soul_Movement_Hero[Soul_Movement_Loop]
                                        • Else - Actions
                        • Else - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Level of Soul Catch for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 2
                            • Then - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Level of Soul Mastery [Dummy] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 1
                                • Then - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • (Level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 17
                                    • Then - Actions
                                    • Else - Actions
                                      • Unit - Increase level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]
                                      • Unit - Increase level of Soul Mastery [Level 1] for Soul_Movement_Hero[Soul_Movement_Loop]
                                • Else - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • (Level of Soul Mastery [Dummy] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 2
                                    • Then - Actions
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • (Level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 27
                                        • Then - Actions
                                        • Else - Actions
                                          • Unit - Increase level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]
                                          • Unit - Increase level of Soul Mastery [Level 2] for Soul_Movement_Hero[Soul_Movement_Loop]
                                    • Else - Actions
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • (Level of Soul Mastery [Dummy] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 3
                                        • Then - Actions
                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            • If - Conditions
                                              • (Level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 37
                                            • Then - Actions
                                            • Else - Actions
                                              • Unit - Increase level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]
                                              • Unit - Increase level of Soul Mastery [Level 3] for Soul_Movement_Hero[Soul_Movement_Loop]
                                        • Else - Actions
                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            • If - Conditions
                                              • (Level of Soul Mastery [Dummy] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 4
                                            • Then - Actions
                                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                • If - Conditions
                                                  • (Level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 47
                                                • Then - Actions
                                                • Else - Actions
                                                  • Unit - Increase level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]
                                                  • Unit - Increase level of Soul Mastery [Level 4] for Soul_Movement_Hero[Soul_Movement_Loop]
                                            • Else - Actions
                            • Else - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Level of Soul Catch for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 3
                                • Then - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • (Level of Soul Mastery [Dummy] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 1
                                    • Then - Actions
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • (Level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 20
                                        • Then - Actions
                                        • Else - Actions
                                          • Unit - Increase level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]
                                          • Unit - Increase level of Soul Mastery [Level 1] for Soul_Movement_Hero[Soul_Movement_Loop]
                                    • Else - Actions
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • (Level of Soul Mastery [Dummy] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 2
                                        • Then - Actions
                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            • If - Conditions
                                              • (Level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 30
                                            • Then - Actions
                                            • Else - Actions
                                              • Unit - Increase level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]
                                              • Unit - Increase level of Soul Mastery [Level 2] for Soul_Movement_Hero[Soul_Movement_Loop]
                                        • Else - Actions
                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            • If - Conditions
                                              • (Level of Soul Mastery [Dummy] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 3
                                            • Then - Actions
                                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                • If - Conditions
                                                  • (Level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 40
                                                • Then - Actions
                                                • Else - Actions
                                                  • Unit - Increase level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]
                                                  • Unit - Increase level of Soul Mastery [Level 3] for Soul_Movement_Hero[Soul_Movement_Loop]
                                            • Else - Actions
                                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                • If - Conditions
                                                  • (Level of Soul Mastery [Dummy] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 4
                                                • Then - Actions
                                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                    • If - Conditions
                                                      • (Level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 50
                                                    • Then - Actions
                                                    • Else - Actions
                                                      • Unit - Increase level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]
                                                      • Unit - Increase level of Soul Mastery [Level 4] for Soul_Movement_Hero[Soul_Movement_Loop]
                                                • Else - Actions
                                • Else - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • (Level of Soul Catch for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 4
                                    • Then - Actions
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • (Level of Soul Mastery [Dummy] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 1
                                        • Then - Actions
                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            • If - Conditions
                                              • (Level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 23
                                            • Then - Actions
                                            • Else - Actions
                                              • Unit - Increase level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]
                                              • Unit - Increase level of Soul Mastery [Level 1] for Soul_Movement_Hero[Soul_Movement_Loop]
                                        • Else - Actions
                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            • If - Conditions
                                              • (Level of Soul Mastery [Dummy] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 2
                                            • Then - Actions
                                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                • If - Conditions
                                                  • (Level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 33
                                                • Then - Actions
                                                • Else - Actions
                                                  • Unit - Increase level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]
                                                  • Unit - Increase level of Soul Mastery [Level 2] for Soul_Movement_Hero[Soul_Movement_Loop]
                                            • Else - Actions
                                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                • If - Conditions
                                                  • (Level of Soul Mastery [Dummy] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 3
                                                • Then - Actions
                                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                    • If - Conditions
                                                      • (Level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 43
                                                    • Then - Actions
                                                    • Else - Actions
                                                      • Unit - Increase level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]
                                                      • Unit - Increase level of Soul Mastery [Level 3] for Soul_Movement_Hero[Soul_Movement_Loop]
                                                • Else - Actions
                                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                    • If - Conditions
                                                      • (Level of Soul Mastery [Dummy] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 4
                                                    • Then - Actions
                                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                        • If - Conditions
                                                          • (Level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 53
                                                        • Then - Actions
                                                        • Else - Actions
                                                          • Unit - Increase level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]
                                                          • Unit - Increase level of Soul Mastery [Level 4] for Soul_Movement_Hero[Soul_Movement_Loop]
                                                    • Else - Actions
                                    • Else - Actions
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • (Level of Soul Catch for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 0
                                        • Then - Actions
                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            • If - Conditions
                                              • (Level of Soul Mastery [Dummy] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 1
                                            • Then - Actions
                                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                • If - Conditions
                                                  • (Level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 11
                                                • Then - Actions
                                                • Else - Actions
                                                  • Unit - Increase level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]
                                                  • Unit - Increase level of Soul Mastery [Level 1] for Soul_Movement_Hero[Soul_Movement_Loop]
                                            • Else - Actions
                                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                • If - Conditions
                                                  • (Level of Soul Mastery [Dummy] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 2
                                                • Then - Actions
                                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                    • If - Conditions
                                                      • (Level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 21
                                                    • Then - Actions
                                                    • Else - Actions
                                                      • Unit - Increase level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]
                                                      • Unit - Increase level of Soul Mastery [Level 2] for Soul_Movement_Hero[Soul_Movement_Loop]
                                                • Else - Actions
                                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                    • If - Conditions
                                                      • (Level of Soul Mastery [Dummy] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 3
                                                    • Then - Actions
                                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                        • If - Conditions
                                                          • (Level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 31
                                                        • Then - Actions
                                                        • Else - Actions
                                                          • Unit - Increase level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]
                                                          • Unit - Increase level of Soul Mastery [Level 3] for Soul_Movement_Hero[Soul_Movement_Loop]
                                                    • Else - Actions
                                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                        • If - Conditions
                                                          • (Level of Soul Mastery [Dummy] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 4
                                                        • Then - Actions
                                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                            • If - Conditions
                                                              • (Level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]) Equal to 41
                                                            • Then - Actions
                                                            • Else - Actions
                                                              • Unit - Increase level of Soul Mastery [Damage] for Soul_Movement_Hero[Soul_Movement_Loop]
                                                              • Unit - Increase level of Soul Mastery [Level 4] for Soul_Movement_Hero[Soul_Movement_Loop]
                                                        • Else - Actions
                                        • Else - Actions
                      • Special Effect - Create a special effect attached to the chest of Soul_Movement_Hero[Soul_Movement_Loop] using Abilities\Weapons\AvengerMissile\AvengerMissile.mdl
                      • Special Effect - Destroy (Last created special effect)
                    • Else - Actions
                  • Unit - Remove Soul_Movement_Unit[Soul_Movement_Loop] from the game
                  • Set Soul_Movement_Off[Soul_Movement_Loop] = False
                  • Set Soul_Movement_Turnoff = (Soul_Movement_Turnoff - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Soul_Movement_Turnoff Equal to 0
                    • Then - Actions
                      • Set Soul_Movement_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • Set Soul_Movement_Hero_Face = (Position of Soul_Movement_Hero[Soul_Movement_Loop])
                  • Set Soul_Movement_Pos_Off = (Soul_Movement_Pos offset by 20.00 towards (Angle from Soul_Movement_Pos to Soul_Movement_Hero_Face) degrees)
                  • Unit - Move Soul_Movement_Unit[Soul_Movement_Loop] instantly to Soul_Movement_Pos_Off, facing Soul_Movement_Hero_Face
                  • Custom script: call RemoveLocation(udg_Soul_Movement_Hero_Face)
                  • Custom script: call RemoveLocation(udg_Soul_Movement_Pos_Off)
              • Custom script: call RemoveLocation(udg_Soul_Movement_Pos)
              • Custom script: call DestroyGroup(udg_Soul_Movement_Group)
            • Else - Actions


  • Warp Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Warp
    • Actions
      • Set Warp_Pos = (Position of (Triggering unit))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Soul Mastery [Damage] for (Triggering unit)) Less than 3
        • Then - Actions
          • Set Warp_Pos_Off = (Warp_Pos offset by ((400.00 + (150.00 x (Real((Level of Warp for (Triggering unit)))))) x 0.66) towards (Facing of (Triggering unit)) degrees)
          • Special Effect - Create a special effect at Warp_Pos using Units\NightElf\Wisp\WispExplode.mdl
          • Special Effect - Destroy (Last created special effect)
          • Special Effect - Create a special effect at Warp_Pos_Off using Units\NightElf\Wisp\WispExplode.mdl
          • Special Effect - Destroy (Last created special effect)
          • Set Warp_Group_1 = (Units within 300.00 of Warp_Pos matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Triggering player)) Equal to True) and (((Matching unit) is alive) Equal to True))))
          • Unit Group - Pick every unit in Warp_Group_1 and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in Warp_Group_1) Greater than 0
                • Then - Actions
                  • Unit - Turn collision for (Picked unit) Off
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Warp_Turnoff Equal to 0
                    • Then - Actions
                      • Trigger - Turn on Warp Loop <gen>
                    • Else - Actions
                  • Set Warp_Integer = (Warp_Integer + 1)
                  • Set Warp_Turnoff = (Warp_Turnoff + 1)
                  • Set Warp_Off[Warp_Integer] = True
                  • Set Warped_Unit[Warp_Integer] = (Picked unit)
                  • Set Warp_Group_Pos = (Position of (Picked unit))
                  • Set Warp_Knock_Point = (Warp_Pos offset by 50.00 towards ((Angle from Warp_Group_Pos to Warp_Pos) - 180.00) degrees)
                  • Set Warp_Distance[Warp_Integer] = (Distance between Warp_Group_Pos and Warp_Knock_Point)
                  • Set Warp_Facing[Warp_Integer] = (Angle from Warp_Group_Pos to Warp_Pos)
                  • Trigger - Turn off Detecting a Melee attack <gen>
                  • Unit - Cause (Triggering unit) to damage (Picked unit), dealing (25.00 + ((1.00 + (1.00 x (Real((Level of Warp for (Triggering unit)))))) x (Real((Level of Soul Mastery [Damage] for (Triggering unit)))))) damage of attack type Spells and damage type Magic
                  • Trigger - Turn on Detecting a Melee attack <gen>
                  • Custom script: call RemoveLocation(udg_Warp_Group_Pos)
                  • Custom script: call RemoveLocation(udg_Warp_Knock_Point)
                • Else - Actions
          • Unit - Move (Triggering unit) instantly to Warp_Pos_Off
          • Set Warp_Group_2 = (Units within 300.00 of Warp_Pos_Off matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Triggering player)) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) is in Warp
          • Unit Group - Pick every unit in Warp_Group_2 and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in Warp_Group_2) Greater than 0
                • Then - Actions
                  • Unit - Turn collision for (Picked unit) Off
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Warp_Turnoff Equal to 0
                    • Then - Actions
                      • Trigger - Turn on Warp Loop <gen>
                    • Else - Actions
                  • Set Warp_Integer = (Warp_Integer + 1)
                  • Set Warp_Turnoff = (Warp_Turnoff + 1)
                  • Set Warp_Off[Warp_Integer] = True
                  • Set Warped_Unit[Warp_Integer] = (Picked unit)
                  • Set Warp_Group_Pos = (Position of (Picked unit))
                  • Set Warp_Knock_Point = (Warp_Pos_Off offset by 50.00 towards (Angle from Warp_Group_Pos to Warp_Pos_Off) degrees)
                  • Set Warp_Distance[Warp_Integer] = (Distance between Warp_Group_Pos and Warp_Knock_Point)
                  • Set Warp_Facing[Warp_Integer] = (Angle from Warp_Group_Pos to Warp_Pos_Off)
                  • Trigger - Turn off Detecting a Melee attack <gen>
                  • Unit - Cause (Triggering unit) to damage (Picked unit), dealing (25.00 + ((1.00 + (1.00 x (Real((Level of Warp for (Triggering unit)))))) x (Real((Level of Soul Mastery [Damage] for (Triggering unit)))))) damage of attack type Spells and damage type Magic
                  • Trigger - Turn on Detecting a Melee attack <gen>
                  • Custom script: call RemoveLocation(udg_Warp_Group_Pos)
                  • Custom script: call RemoveLocation(udg_Warp_Knock_Point)
                • Else - Actions
          • Unit - Set level of Soul Mastery [Level 1] for (Triggering unit) to ((Level of Soul Mastery [Damage] for (Triggering unit)) - 2)
          • Unit - Set level of Soul Mastery [Level 2] for (Triggering unit) to ((Level of Soul Mastery [Damage] for (Triggering unit)) - 2)
          • Unit - Set level of Soul Mastery [Level 3] for (Triggering unit) to ((Level of Soul Mastery [Damage] for (Triggering unit)) - 2)
          • Unit - Set level of Soul Mastery [Level 4] for (Triggering unit) to ((Level of Soul Mastery [Damage] for (Triggering unit)) - 2)
          • Unit - Set level of Soul Mastery [Damage] for (Triggering unit) to ((Level of Soul Mastery [Damage] for (Triggering unit)) - 2)
        • Else - Actions
          • Set Warp_Pos = (Position of (Triggering unit))
          • Set Warp_Pos_Off = (Warp_Pos offset by (400.00 + (150.00 x (Real((Level of Warp for (Triggering unit)))))) towards (Facing of (Triggering unit)) degrees)
          • Special Effect - Create a special effect at Warp_Pos using Units\NightElf\Wisp\WispExplode.mdl
          • Special Effect - Destroy (Last created special effect)
          • Special Effect - Create a special effect at Warp_Pos_Off using Units\NightElf\Wisp\WispExplode.mdl
          • Special Effect - Destroy (Last created special effect)
          • Set Warp_Group_1 = (Units within 300.00 of Warp_Pos matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Triggering player)) Equal to True) and (((Matching unit) is alive) Equal to True))))
          • Unit Group - Pick every unit in Warp_Group_1 and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in Warp_Group_1) Greater than 0
                • Then - Actions
                  • Unit - Turn collision for (Picked unit) Off
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Warp_Turnoff Equal to 0
                    • Then - Actions
                      • Trigger - Turn on Warp Loop <gen>
                    • Else - Actions
                  • Set Warp_Integer = (Warp_Integer + 1)
                  • Set Warp_Turnoff = (Warp_Turnoff + 1)
                  • Set Warp_Off[Warp_Integer] = True
                  • Set Warped_Unit[Warp_Integer] = (Picked unit)
                  • Set Warp_Group_Pos = (Position of (Picked unit))
                  • Set Warp_Knock_Point = (Warp_Pos offset by 50.00 towards ((Angle from Warp_Group_Pos to Warp_Pos) - 180.00) degrees)
                  • Set Warp_Distance[Warp_Integer] = (Distance between Warp_Group_Pos and Warp_Knock_Point)
                  • Set Warp_Facing[Warp_Integer] = (Angle from Warp_Group_Pos to Warp_Pos)
                  • Trigger - Turn off Detecting a Melee attack <gen>
                  • Unit - Cause (Triggering unit) to damage (Picked unit), dealing (25.00 + ((1.00 + (1.00 x (Real((Level of Warp for (Triggering unit)))))) x (Real((Level of Soul Mastery [Damage] for (Triggering unit)))))) damage of attack type Spells and damage type Magic
                  • Trigger - Turn on Detecting a Melee attack <gen>
                  • Custom script: call RemoveLocation(udg_Warp_Group_Pos)
                  • Custom script: call RemoveLocation(udg_Warp_Knock_Point)
                • Else - Actions
          • Unit - Move (Triggering unit) instantly to Warp_Pos_Off
          • Set Warp_Group_2 = (Units within 300.00 of Warp_Pos_Off matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Triggering player)) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) is in Warp
          • Unit Group - Pick every unit in Warp_Group_2 and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in Warp_Group_2) Greater than 0
                • Then - Actions
                  • Unit - Turn collision for (Picked unit) Off
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Warp_Turnoff Equal to 0
                    • Then - Actions
                      • Trigger - Turn on Warp Loop <gen>
                    • Else - Actions
                  • Set Warp_Integer = (Warp_Integer + 1)
                  • Set Warp_Turnoff = (Warp_Turnoff + 1)
                  • Set Warp_Off[Warp_Integer] = True
                  • Set Warped_Unit[Warp_Integer] = (Picked unit)
                  • Set Warp_Group_Pos = (Position of (Picked unit))
                  • Set Warp_Knock_Point = (Warp_Pos_Off offset by 50.00 towards (Angle from Warp_Group_Pos to Warp_Pos_Off) degrees)
                  • Set Warp_Distance[Warp_Integer] = (Distance between Warp_Group_Pos and Warp_Knock_Point)
                  • Set Warp_Facing[Warp_Integer] = (Angle from Warp_Group_Pos to Warp_Pos_Off)
                  • Trigger - Turn off Detecting a Melee attack <gen>
                  • Unit - Cause (Triggering unit) to damage (Picked unit), dealing (25.00 + ((1.00 + (1.00 x (Real((Level of Warp for (Triggering unit)))))) x (Real((Level of Soul Mastery [Damage] for (Triggering unit)))))) damage of attack type Spells and damage type Magic
                  • Trigger - Turn on Detecting a Melee attack <gen>
                  • Custom script: call RemoveLocation(udg_Warp_Group_Pos)
                  • Custom script: call RemoveLocation(udg_Warp_Knock_Point)
                • Else - Actions
          • Unit - Set level of Soul Mastery [Level 1] for (Triggering unit) to ((Level of Soul Mastery [Damage] for (Triggering unit)) - 2)
          • Unit - Set level of Soul Mastery [Level 2] for (Triggering unit) to ((Level of Soul Mastery [Damage] for (Triggering unit)) - 2)
          • Unit - Set level of Soul Mastery [Level 3] for (Triggering unit) to ((Level of Soul Mastery [Damage] for (Triggering unit)) - 2)
          • Unit - Set level of Soul Mastery [Level 4] for (Triggering unit) to ((Level of Soul Mastery [Damage] for (Triggering unit)) - 2)
          • Unit - Set level of Soul Mastery [Damage] for (Triggering unit) to ((Level of Soul Mastery [Damage] for (Triggering unit)) - 2)
      • Custom script: call RemoveLocation(udg_Warp_Pos)
      • Custom script: call RemoveLocation(udg_Warp_Pos_Off)
      • Custom script: call DestroyGroup(udg_Warp_Group_1)
      • Custom script: call DestroyGroup(udg_Warp_Group_2)
  • Warp Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Warp_Loop) from 1 to Warp_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Warp_Off[Warp_Loop] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Warp_Distance[Warp_Loop] Less than or equal to 0.00
                • Then - Actions
                  • Unit - Turn collision for Warped_Unit[Warp_Loop] On
                  • Set Warp_Turnoff = (Warp_Turnoff - 1)
                  • Set Warp_Off[Warp_Loop] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Warp_Turnoff Equal to 0
                    • Then - Actions
                      • Set Warp_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • Set Warp_Pos = (Position of Warped_Unit[Warp_Loop])
                  • Set Warp_Pos_Off = (Warp_Pos offset by 10.00 towards (Warp_Facing[Warp_Loop] - 180.00) degrees)
                  • Destructible - Pick every destructible within 120.00 of Warp_Pos and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Destructible-type of (Picked destructible)) Equal to Summer Tree Wall
                        • Then - Actions
                          • Destructible - Kill (Picked destructible)
                        • Else - Actions
                  • Unit - Move Warped_Unit[Warp_Loop] instantly to Warp_Pos_Off
                  • Special Effect - Create a special effect attached to the origin of Warped_Unit[Warp_Loop] using Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
                  • Set Warp_Sfx = (Last created special effect)
                  • Special Effect - Destroy Warp_Sfx
                  • Custom script: call RemoveLocation(udg_Warp_Pos)
                  • Custom script: call RemoveLocation(udg_Warp_Pos_Off)
                  • Set Warp_Distance[Warp_Loop] = (Warp_Distance[Warp_Loop] - 10.00)
            • Else - Actions


  • Soul Vortex Extinction
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Soul Vortex Extinction
    • Actions
      • Set Soul_Vortex_Extinction_Sfx = 0
      • For each (Integer Soul_Vortex_Extinction_Loop) from 1 to Soul_Vortex_Moving_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Triggering unit) Equal to Soul_Vortex_Moving_Caster[Soul_Vortex_Extinction_Loop]
            • Then - Actions
              • Unit - Remove Soul_Vortex_Moving_Dummies[Soul_Vortex_Extinction_Loop] from the game
              • Special Effect - Destroy Soul_Vortex_Moving_Sfx[Soul_Vortex_Extinction_Loop]
              • Set Soul_Vortex_Moving_Pos = Soul_Vortex_Moving_Point[Soul_Vortex_Extinction_Loop]
              • Set Soul_Vortex_Extinction_Group = (Units within 400.00 of Soul_Vortex_Moving_Pos matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is Magic Immune) Equal to False) and (((Matching unit) belongs to an enemy of (Tr
              • Set Soul_Vortex_Moving_Pos_Off = (Soul_Vortex_Moving_Pos offset by (Random real number between 1.00 and 300.00) towards (Random angle) degrees)
              • Set Soul_Vortex_Extinction_Sfx = (Soul_Vortex_Extinction_Sfx + 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Soul_Vortex_Extinction_Sfx Equal to 3
                • Then - Actions
                  • Special Effect - Create a special effect at Soul_Vortex_Moving_Pos_Off using Objects\Spawnmodels\Undead\UndeadDissipate\UndeadDissipate.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Set Soul_Vortex_Extinction_Sfx = 0
                • Else - Actions
              • Unit Group - Pick every unit in Soul_Vortex_Extinction_Group and do (Actions)
                • Loop - Actions
                  • Trigger - Turn off Detecting a Melee attack <gen>
                  • Unit - Cause (Triggering unit) to damage (Picked unit), dealing ((150.00 + (10.00 x (Real((Level of Soul Mastery [Damage] for (Triggering unit)))))) / 33.00) damage of attack type Spells and damage type Magic
                  • Trigger - Turn on Detecting a Melee attack <gen>
              • Custom script: call DestroyGroup(udg_Soul_Vortex_Extinction_Group)
              • Custom script: call RemoveLocation(udg_Soul_Vortex_Moving_Pos)
              • Custom script: call RemoveLocation(udg_Soul_Vortex_Moving_Pos_Off)
              • Unit - Set level of Soul Mastery [Damage] for (Triggering unit) to 1
              • Unit - Set level of Soul Mastery [Level 1] for (Triggering unit) to 1
              • Unit - Set level of Soul Mastery [Level 2] for (Triggering unit) to 1
              • Unit - Set level of Soul Mastery [Level 3] for (Triggering unit) to 1
              • Unit - Set level of Soul Mastery [Level 4] for (Triggering unit) to 1
            • Else - Actions
      • For each (Integer Soul_Vortex_Extinction_Loop) from 1 to Soul_Vortex_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Triggering unit) Equal to Soul_Vortex_Caster[Soul_Vortex_Extinction_Loop]
            • Then - Actions
              • Unit - Remove Soul_Vortex_Dummy[Soul_Vortex_Extinction_Loop] from the game
            • Else - Actions
  • Soul Vortex Learn
    • Events
      • Unit - A unit Learns a skill
    • Conditions
      • (Learned Hero Skill) Equal to Soul Vortex
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Soul Vortex for (Triggering unit)) Equal to 1
        • Then - Actions
          • Unit - Add Soul Vortex Extinction to (Triggering unit)
          • Trigger - Turn on Soul Vortex Try <gen>
        • Else - Actions
  • Soul Vortex Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Soul Vortex
    • Actions
      • Unit - Set level of Soul Mastery [Damage] for (Triggering unit) to ((Level of Soul Mastery [Damage] for (Triggering unit)) - 10)
      • Unit - Set level of Soul Mastery [Level 1] for (Triggering unit) to (Level of Soul Mastery [Damage] for (Triggering unit))
      • Unit - Set level of Soul Mastery [Level 2] for (Triggering unit) to (Level of Soul Mastery [Damage] for (Triggering unit))
      • Unit - Set level of Soul Mastery [Level 3] for (Triggering unit) to (Level of Soul Mastery [Damage] for (Triggering unit))
      • Unit - Set level of Soul Mastery [Level 4] for (Triggering unit) to (Level of Soul Mastery [Damage] for (Triggering unit))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Soul_Vortex_Mui_Turnoff Equal to 0
        • Then - Actions
          • Trigger - Turn on Soul Vortex Loop <gen>
        • Else - Actions
      • Set Soul_Vortex_Mui_Integer = (Soul_Vortex_Mui_Integer + 1)
      • Set Soul_Vortex_Mui_Turnoff = (Soul_Vortex_Mui_Turnoff + 1)
      • Set Soul_Vortex_Off[Soul_Vortex_Mui_Integer] = True
      • Set Soul_Vortex_Caster[Soul_Vortex_Mui_Integer] = (Triggering unit)
      • Set Soul_Vortex_Point = (Target point of ability being cast)
      • Unit - Create 1 Dummy :) for (Triggering player) at Soul_Vortex_Point facing Default building facing degrees
      • Unit - Add a (4.00 + (2.00 x (Real((Level of Soul Vortex for (Triggering unit)))))) second Generic expiration timer to (Last created unit)
      • Set Soul_Vortex_Dummy[Soul_Vortex_Mui_Integer] = (Last created unit)
      • Unit - Create 1 Dummy :) for (Triggering player) at Soul_Vortex_Point facing Default building facing degrees
      • Unit - Add a (4.00 + (2.00 x (Real((Level of Soul Vortex for (Triggering unit)))))) second Generic expiration timer to (Last created unit)
      • Set Soul_Vortex_Centre_Unit[Soul_Vortex_Mui_Integer] = (Last created unit)
      • Set Soul_Vortex_Time[Soul_Vortex_Mui_Integer] = 0
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in Soul_Vortex_Group_2[Soul_Vortex_Mui_Integer]) Equal to 0
        • Then - Actions
          • Custom script: set udg_Soul_Vortex_Group_2[udg_Soul_Vortex_Mui_Integer]=CreateGroup()
        • Else - Actions
      • Set Soul_Vortex_Creation = 0.00
      • For each (Integer Soul_Vortex_Inside_Loop) from 1 to 33, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Soul_Vortex_Moving_Mui_Turnoff Equal to 0
            • Then - Actions
              • Trigger - Turn on Soul Vortex Moving <gen>
            • Else - Actions
          • Set Soul_Vortex_Moving_Mui_Integer = (Soul_Vortex_Moving_Mui_Integer + 1)
          • Set Soul_Vortex_Moving_Mui_Turnoff = (Soul_Vortex_Moving_Mui_Turnoff + 1)
          • Set Soul_Vortex_Moving_Off[Soul_Vortex_Moving_Mui_Integer] = True
          • Set Soul_Vortex_Point_Off = (Soul_Vortex_Point offset by 400.00 towards Soul_Vortex_Creation degrees)
          • Unit - Create 1 Soul Vortex [Dummy] for (Triggering player) at Soul_Vortex_Point_Off facing (Soul_Vortex_Creation - 90.00) degrees
          • Set Soul_Vortex_Moving_Dummies[Soul_Vortex_Moving_Mui_Integer] = (Last created unit)
          • Set Soul_Vortex_Moving_Caster[Soul_Vortex_Moving_Mui_Integer] = (Triggering unit)
          • Set Soul_Vortex_Moving_Facing[Soul_Vortex_Moving_Mui_Integer] = (Facing of (Last created unit))
          • Set Soul_Vortex_Moving_Point[Soul_Vortex_Moving_Mui_Integer] = (Target point of ability being cast)
          • Unit - Add a (4.00 + (2.00 x (Real((Level of Soul Vortex for (Triggering unit)))))) second Generic expiration timer to (Last created unit)
          • Set Soul_Vortex_Creation = (Soul_Vortex_Creation + 15.00)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Soul_Vortex_Inside_Loop Equal to 1
            • Then - Actions
              • Special Effect - Create a special effect at Soul_Vortex_Moving_Point[Soul_Vortex_Moving_Mui_Integer] using Abilities\Spells\Undead\Unsummon\UnsummonTarget.mdl
              • Set Soul_Vortex_Moving_Sfx[Soul_Vortex_Moving_Mui_Integer] = (Last created special effect)
            • Else - Actions
          • Custom script: call RemoveLocation(udg_Soul_Vortex_Point_Off)
      • Set Soul_Vortex_Creation = 0.00
      • Custom script: call RemoveLocation(udg_Soul_Vortex_Point)
  • Soul Vortex Moving
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Soul_Vortex_Moving_Mui_Loop) from 1 to Soul_Vortex_Moving_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Soul_Vortex_Moving_Off[Soul_Vortex_Moving_Mui_Loop] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Soul_Vortex_Moving_Dummies[Soul_Vortex_Moving_Mui_Loop] is dead) Equal to True
                • Then - Actions
                  • Special Effect - Destroy Soul_Vortex_Moving_Sfx[Soul_Vortex_Moving_Mui_Loop]
                  • Set Soul_Vortex_Moving_Mui_Turnoff = (Soul_Vortex_Moving_Mui_Turnoff - 1)
                  • Set Soul_Vortex_Moving_Off[Soul_Vortex_Moving_Mui_Loop] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Soul_Vortex_Moving_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Soul_Vortex_Moving_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • Set Soul_Vortex_Moving_Pos = (Position of Soul_Vortex_Moving_Dummies[Soul_Vortex_Moving_Mui_Loop])
                  • Set Soul_Vortex_Moving_Pos_Off = (Soul_Vortex_Moving_Pos offset by 7.50 towards (Soul_Vortex_Moving_Facing[Soul_Vortex_Moving_Mui_Loop] - 30.00) degrees)
                  • Unit - Move Soul_Vortex_Moving_Dummies[Soul_Vortex_Moving_Mui_Loop] instantly to Soul_Vortex_Moving_Pos_Off, facing ((Facing of Soul_Vortex_Moving_Dummies[Soul_Vortex_Moving_Mui_Loop]) - 45.00) degrees
                  • Set Soul_Vortex_Moving_Facing[Soul_Vortex_Moving_Mui_Loop] = (Soul_Vortex_Moving_Facing[Soul_Vortex_Moving_Mui_Loop] - 30.00)
                  • Custom script: call RemoveLocation(udg_Soul_Vortex_Moving_Pos)
                  • Custom script: call RemoveLocation(udg_Soul_Vortex_Moving_Pos_Off)
            • Else - Actions
  • Soul Vortex Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Soul_Vortex_Mui_Loop) from 1 to Soul_Vortex_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Soul_Vortex_Off[Soul_Vortex_Mui_Loop] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Soul_Vortex_Dummy[Soul_Vortex_Mui_Loop] is dead) Equal to True
                • Then - Actions
                  • Unit Group - Pick every unit in Soul_Vortex_Group_2[Soul_Vortex_Mui_Loop] and do (Actions)
                    • Loop - Actions
                      • Unit - Remove Soul Vortex [Magic Reduction] from (Picked unit)
                      • Unit - Remove Soul Vortex buff from (Picked unit)
                      • Unit Group - Remove all units from Soul_Vortex_Group_2[Soul_Vortex_Mui_Loop]
                  • Set Soul_Vortex_Mui_Turnoff = (Soul_Vortex_Mui_Turnoff - 1)
                  • Set Soul_Vortex_Off[Soul_Vortex_Mui_Loop] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Soul_Vortex_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Soul_Vortex_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • Set Soul_Vortex_Time[Soul_Vortex_Mui_Loop] = (Soul_Vortex_Time[Soul_Vortex_Mui_Loop] + 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Soul_Vortex_Time[Soul_Vortex_Mui_Loop] Equal to 8
                    • Then - Actions
                      • Set Soul_Vortex_Time[Soul_Vortex_Mui_Loop] = 0
                      • Set Soul_Vortex_Point = (Position of Soul_Vortex_Centre_Unit[Soul_Vortex_Mui_Loop])
                      • Set Soul_Vortex_Point_Off = (Soul_Vortex_Point offset by (Random real number between 20.00 and 350.00) towards (Random angle) degrees)
                      • Special Effect - Create a special effect at Soul_Vortex_Point_Off using Objects\Spawnmodels\Undead\UndeadDissipate\UndeadDissipate.mdl
                      • Special Effect - Destroy (Last created special effect)
                      • Custom script: call RemoveLocation(udg_Soul_Vortex_Point)
                      • Custom script: call RemoveLocation(udg_Soul_Vortex_Point_Off)
                    • Else - Actions
                  • Set Soul_Vortex_Point = (Position of Soul_Vortex_Dummy[Soul_Vortex_Mui_Loop])
                  • Set Soul_Vortex_Group = (Units within 400.00 of Soul_Vortex_Point matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner
                  • Unit Group - Pick every unit in Soul_Vortex_Group and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Number of units in Soul_Vortex_Group) Greater than 0
                        • Then - Actions
                          • Unit - Create 1 Dummy :) for (Owner of Soul_Vortex_Caster[Soul_Vortex_Mui_Loop]) at Soul_Vortex_Point facing Default building facing degrees
                          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                          • Unit - Add Soul Vortex [Slow] to (Last created unit)
                          • Unit - Order (Last created unit) to Human Sorceress - Slow (Picked unit)
                          • Unit - Add Soul Vortex [Magic Reduction] to (Picked unit)
                          • Unit - Set level of Soul Vortex [Magic Reduction] for (Picked unit) to (Level of Soul Vortex for Soul_Vortex_Caster[Soul_Vortex_Mui_Loop])
                        • Else - Actions
                  • Unit Group - Add all units of Soul_Vortex_Group to Soul_Vortex_Group_2[Soul_Vortex_Mui_Loop]
                  • Unit Group - Pick every unit in Soul_Vortex_Group_2[Soul_Vortex_Mui_Loop] and do (Actions)
                    • Loop - Actions
                      • Set Soul_Vortex_Point_Off = (Position of (Picked unit))
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • Or - Any (Conditions) are true
                            • Conditions
                              • (Distance between Soul_Vortex_Point and Soul_Vortex_Point_Off) Greater than or equal to 401.00
                              • ((Picked unit) is dead) Equal to True
                        • Then - Actions
                          • Unit - Remove Soul Vortex [Magic Reduction] from (Picked unit)
                          • Unit - Remove Soul Vortex buff from (Picked unit)
                          • Trigger - Turn off Detecting a Melee attack <gen>
                          • Unit - Cause Soul_Vortex_Caster[Soul_Vortex_Mui_Loop] to damage (Picked unit), dealing 100.00 damage of attack type Chaos and damage type Unknown
                          • Trigger - Turn on Detecting a Melee attack <gen>
                          • Unit Group - Remove (Picked unit) from Soul_Vortex_Group_2[Soul_Vortex_Mui_Loop]
                        • Else - Actions
                      • Custom script: call RemoveLocation(udg_Soul_Vortex_Point_Off)
                  • Custom script: call RemoveLocation(udg_Soul_Vortex_Point)
                  • Custom script: call DestroyGroup(udg_Soul_Vortex_Group)
            • Else - Actions
  • Soul Vortex Try
    • Events
      • Unit - A unit Begins channeling an ability
    • Conditions
      • (Ability being cast) Equal to Soul Vortex
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Soul Mastery [Damage] for (Triggering unit)) Less than 11
        • Then - Actions
          • Set ErrorPlayer = (Owner of (Triggering unit))
          • Set ErrorMessage = You don't have enough souls.
          • Custom script: call ErrorMessage(udg_ErrorMessage,udg_ErrorPlayer)
          • Unit - Order (Triggering unit) to Stop
        • Else - Actions


  • Bleed
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Bleed
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Bleed_Mui_Turnoff Equal to 0
        • Then - Actions
          • Trigger - Turn on Bleed Loop <gen>
        • Else - Actions
      • Set Bleed_Mui_Integer = (Bleed_Mui_Integer + 1)
      • Set Bleed_Mui_Turnoff = (Bleed_Mui_Turnoff + 1)
      • Set Bleed_Off[Bleed_Mui_Integer] = True
      • Set Bleed_Bleeder[Bleed_Mui_Integer] = (Triggering unit)
      • Set Bleed_Bleeded[Bleed_Mui_Integer] = (Target unit of ability being cast)
      • Set Bleed_Previous_Pos[Bleed_Mui_Integer] = (Position of (Target unit of ability being cast))
      • Trigger - Turn off Detecting a Melee attack <gen>
      • Unit - Cause (Triggering unit) to damage (Target unit of ability being cast), dealing (80.00 + (20.00 x (Real((Level of Bleed for (Triggering unit)))))) damage of attack type Chaos and damage type Unknown
      • Trigger - Turn on Detecting a Melee attack <gen>
      • Special Effect - Create a special effect attached to the chest of Bleed_Bleeded[Bleed_Mui_Integer] using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
      • Special Effect - Destroy (Last created special effect)
  • Bleed Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Bleed_Mui_Loop) from 1 to Bleed_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Bleed_Off[Bleed_Mui_Loop] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Bleed_Bleeded[Bleed_Mui_Loop] has buff Bleed ) Equal to True
                • Then - Actions
                  • Set Bleed_Pos = (Position of Bleed_Bleeded[Bleed_Mui_Loop])
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Distance between Bleed_Pos and Bleed_Previous_Pos[Bleed_Mui_Loop]) Greater than 0.00
                      • (Distance between Bleed_Pos and Bleed_Previous_Pos[Bleed_Mui_Loop]) Less than 400.00
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • Bleed_Time[Bleed_Mui_Loop] Equal to 8
                        • Then - Actions
                          • Trigger - Turn off Detecting a Melee attack <gen>
                          • Unit - Cause Bleed_Bleeder[Bleed_Mui_Loop] to damage Bleed_Bleeded[Bleed_Mui_Loop], dealing ((Distance between Bleed_Pos and Bleed_Previous_Pos[Bleed_Mui_Loop]) x 0.15) damage of attack type Chaos and damage type Unknown
                          • Trigger - Turn on Detecting a Melee attack <gen>
                          • Special Effect - Create a special effect attached to the chest of Bleed_Bleeded[Bleed_Mui_Loop] using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Set Bleed_Time[Bleed_Mui_Loop] = 0
                        • Else - Actions
                          • Trigger - Turn off Detecting a Melee attack <gen>
                          • Unit - Cause Bleed_Bleeder[Bleed_Mui_Loop] to damage Bleed_Bleeded[Bleed_Mui_Loop], dealing ((Distance between Bleed_Pos and Bleed_Previous_Pos[Bleed_Mui_Loop]) x 0.15) damage of attack type Chaos and damage type Unknown
                          • Trigger - Turn on Detecting a Melee attack <gen>
                          • Set Bleed_Time[Bleed_Mui_Loop] = (Bleed_Time[Bleed_Mui_Loop] + 1)
                      • Custom script: call RemoveLocation(udg_Bleed_Previous_Pos[udg_Bleed_Mui_Loop])
                      • Set Bleed_Previous_Pos[Bleed_Mui_Loop] = (Position of Bleed_Bleeded[Bleed_Mui_Loop])
                    • Else - Actions
                  • Custom script: call RemoveLocation(udg_Bleed_Pos)
                • Else - Actions
                  • Set Bleed_Time[Bleed_Mui_Loop] = 8
                  • Set Bleed_Off[Bleed_Mui_Loop] = False
                  • Set Bleed_Mui_Turnoff = (Bleed_Mui_Turnoff - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Bleed_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Bleed_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                  • Custom script: call RemoveLocation(udg_Bleed_Previous_Pos[udg_Bleed_Mui_Loop])
            • Else - Actions


  • Unit Cannon Try
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Unit Cannon
    • Actions
      • Set Unit_Cannon_Pos = (Target point of ability being cast)
      • Set ErrorPlayer = (Owner of (Triggering unit))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Terrain cliff level at Unit_Cannon_Pos) Less than or equal to 0
        • Then - Actions
          • Unit - Order (Triggering unit) to Stop
          • Set ErrorMessage = Cannot cast this spell on deep water!
          • Custom script: call ErrorMessage(udg_ErrorMessage,udg_ErrorPlayer)
        • Else - Actions
      • Destructible - Pick every destructible within 170.00 of Unit_Cannon_Pos and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Destructible-type of (Picked destructible)) Equal to Summer Tree Wall
            • Then - Actions
              • Unit - Order (Triggering unit) to Stop
              • Set ErrorMessage = Cannot cast this spell directly on trees!
              • Custom script: call ErrorMessage(udg_ErrorMessage,udg_ErrorPlayer)
            • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit_Cannon_Pos is masked for (Owner of (Triggering unit))) Equal to True
        • Then - Actions
          • Unit - Order (Triggering unit) to Stop
          • Set ErrorMessage = Cannot cast this spell on a masked area!
          • Custom script: call ErrorMessage(udg_ErrorMessage,udg_ErrorPlayer)
        • Else - Actions
  • Unit Cannon
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Unit Cannon
    • Actions
      • -------- Configurable below --------
      • Set Unit_Cannon_AoE = (200.00 + (100.00 x (Real((Level of Unit Cannon for (Triggering unit))))))
      • -------- Configurable above --------
      • Set Unit_Cannon_Pos = (Position of (Triggering unit))
      • Set Unit_Cannon_Group = (Units within Unit_Cannon_AoE of Unit_Cannon_Pos matching ((((Matching unit) is A structure) Equal to False) and (((Owner of (Matching unit)) Equal to (Owner of (Triggering unit))) and ((Level of Unit Cannon for (Matching unit)) Equal to 0))))
      • Unit Group - Pick every unit in Unit_Cannon_Group and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Unit_Cannon_Mui_Turnoff Equal to 0
            • Then - Actions
              • Trigger - Turn on Unit Cannon Loop <gen>
            • Else - Actions
          • Set Unit_Cannon_Mui_Integer = (Unit_Cannon_Mui_Integer + 1)
          • Set Unit_Cannon_Mui_Turnoff = (Unit_Cannon_Mui_Turnoff + 1)
          • Set Unit_Cannon_Off[Unit_Cannon_Mui_Integer] = True
          • Set Unit_Cannon_Towards[Unit_Cannon_Mui_Integer] = True
          • Set Unit_Cannon_Caster[Unit_Cannon_Mui_Integer] = (Triggering unit)
          • Set Unit_Cannon_Target[Unit_Cannon_Mui_Integer] = (Target point of ability being cast)
          • Set Unit_Cannon_Starting_Point[Unit_Cannon_Mui_Integer] = (Position of (Triggering unit))
          • Set Unit_Cannon_Units[Unit_Cannon_Mui_Integer] = (Picked unit)
          • Set Unit_Cannon_Group_Pos = (Position of (Picked unit))
          • Unit Group - Add all units of Unit_Cannon_Group to Unit_Cannon_Group_2[Unit_Cannon_Mui_Integer]
          • -------- Configurable below -- The distance divided into 25 pieces means that the units will reach caster in ONE second. --------
          • Set Unit_Cannon_Dummy_D_Time[Unit_Cannon_Mui_Integer] = ((Distance between Unit_Cannon_Pos and Unit_Cannon_Target[Unit_Cannon_Mui_Integer]) / 50.00)
          • Set Unit_Cannon_Max_Distance[Unit_Cannon_Mui_Integer] = (Distance between Unit_Cannon_Pos and Unit_Cannon_Target[Unit_Cannon_Mui_Integer])
          • Set Unit_Cannon_Max_Height[Unit_Cannon_Mui_Integer] = 400.00
          • -------- Configurable above other settings are for parabola flying --------
          • Unit - Hide Unit_Cannon_Units[Unit_Cannon_Mui_Integer]
          • Unit - Create 1 Cannon [Dummy] for (Owner of (Triggering unit)) at Unit_Cannon_Group_Pos facing Default building facing degrees
          • Set Unit_Cannon_Dummy[Unit_Cannon_Mui_Integer] = (Last created unit)
      • Custom script: call RemoveLocation(udg_Unit_Cannon_Pos)
      • Custom script: call RemoveLocation(udg_Unit_Cannon_Group_Pos)
      • Custom script: call DestroyGroup(udg_Unit_Cannon_Group)
  • Unit Cannon Loop
    • Events
      • Time - Every 0.04 seconds of game time
    • Conditions
    • Actions
      • For each (Integer Unit_Cannon_Mui_Loop) from 1 to Unit_Cannon_Mui_Integer, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Unit_Cannon_Off[Unit_Cannon_Mui_Loop] Equal to True
            • Then - Actions
              • Set Unit_Cannon_Pos = (Position of Unit_Cannon_Dummy[Unit_Cannon_Mui_Loop])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Unit_Cannon_Towards[Unit_Cannon_Mui_Loop] Equal to False
                  • (Distance between Unit_Cannon_Pos and Unit_Cannon_Target[Unit_Cannon_Mui_Loop]) Less than or equal to 30.00
                • Then - Actions
                  • Unit - Unhide Unit_Cannon_Units[Unit_Cannon_Mui_Loop]
                  • -------- THE EFFECT (CLOUD) --------
                  • Special Effect - Create a special effect at Unit_Cannon_Target[Unit_Cannon_Mui_Loop] using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Create 1 Cannon [Cloud] for (Owner of Unit_Cannon_Dummy[Unit_Cannon_Mui_Loop]) at Unit_Cannon_Target[Unit_Cannon_Mui_Loop] facing Default building facing degrees
                  • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
                  • -------- THE EFFECT (CLOUD) Above --------
                  • Unit Group - Remove all units from Unit_Cannon_Group_2[Unit_Cannon_Mui_Loop]
                  • Unit - Remove Unit_Cannon_Dummy[Unit_Cannon_Mui_Loop] from the game
                  • Set Unit_Cannon_Mui_Turnoff = (Unit_Cannon_Mui_Turnoff - 1)
                  • Set Unit_Cannon_Off[Unit_Cannon_Mui_Loop] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Unit_Cannon_Mui_Turnoff Equal to 0
                    • Then - Actions
                      • Set Unit_Cannon_Mui_Integer = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                  • Custom script: call DestroyGroup(udg_Unit_Cannon_Group_2[udg_Unit_Cannon_Mui_Loop])
                  • Custom script: call RemoveLocation(udg_Unit_Cannon_Target[udg_Unit_Cannon_Mui_Loop])
                  • Custom script: call RemoveLocation(udg_Unit_Cannon_Starting_Point[udg_Unit_Cannon_Mui_Loop])
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Unit_Cannon_Towards[Unit_Cannon_Mui_Loop] Equal to True
                    • Then - Actions
                      • Set Unit_Cannon_Group_Pos = (Position of Unit_Cannon_Caster[Unit_Cannon_Mui_Loop])
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Distance between Unit_Cannon_Group_Pos and Unit_Cannon_Pos) Less than or equal to 25.00
                        • Then - Actions
                          • Set Unit_Cannon_Towards[Unit_Cannon_Mui_Loop] = False
                        • Else - Actions
                          • Set Unit_Cannon_Pos_Off = (Unit_Cannon_Pos offset by (((Distance between Unit_Cannon_Pos and Unit_Cannon_Group_Pos) / 25.00) + 20.00) towards (Angle from Unit_Cannon_Pos to Unit_Cannon_Group_Pos) degrees)
                          • Unit - Move Unit_Cannon_Dummy[Unit_Cannon_Mui_Loop] instantly to Unit_Cannon_Pos_Off
                          • Unit - Move Unit_Cannon_Units[Unit_Cannon_Mui_Loop] instantly to Unit_Cannon_Pos_Off
                          • Custom script: call RemoveLocation(udg_Unit_Cannon_Group_Pos)
                    • Else - Actions
                      • -------- Using a parabola --------
                      • Set Unit_Cannon_Distance[Unit_Cannon_Mui_Loop] = (Distance between Unit_Cannon_Pos and Unit_Cannon_Starting_Point[Unit_Cannon_Mui_Loop])
                      • Animation - Change Unit_Cannon_Dummy[Unit_Cannon_Mui_Loop] flying height to ((4.00 x Unit_Cannon_Max_Height[Unit_Cannon_Mui_Loop]) x ((Unit_Cannon_Distance[Unit_Cannon_Mui_Loop] x (Unit_Cannon_Max_Distance[Unit_Cannon_Mui_Loop] - Unit_Cannon_Distance[Unit_Cannon_Mui_Loop])) / (Unit_Cannon_Max_Distance[Unit_Cannon_Mui_Loop] x Unit_Can at 0.00
                      • -------- Using a parabola --------
                      • Destructible - Pick every destructible within 150.00 of Unit_Cannon_Pos and do (Actions)
                        • Loop - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Destructible-type of (Picked destructible)) Equal to Summer Tree Wall
                            • Then - Actions
                              • Destructible - Kill (Picked destructible)
                            • Else - Actions
                      • Set Unit_Cannon_Pos_Off = (Unit_Cannon_Pos offset by Unit_Cannon_Dummy_D_Time[Unit_Cannon_Mui_Loop] towards (Angle from Unit_Cannon_Pos to Unit_Cannon_Target[Unit_Cannon_Mui_Loop]) degrees)
                      • Unit - Move Unit_Cannon_Dummy[Unit_Cannon_Mui_Loop] instantly to Unit_Cannon_Pos_Off
                      • Unit - Move Unit_Cannon_Units[Unit_Cannon_Mui_Loop] instantly to Unit_Cannon_Pos_Off
                  • Custom script: call RemoveLocation(udg_Unit_Cannon_Pos_Off)
              • Custom script: call RemoveLocation(udg_Unit_Cannon_Pos)
            • Else - Actions



Also one trigger from the whole DDS in which [Dual Weapon Mastery] trigger lies. Please read changelog for more information about this.


  • Detecting a Melee attack
    • Events
      • Game - GDD_Event becomes Equal to 0.00
    • Conditions
      • GDD_Damage Greater than or equal to 1.00
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Dual Weapon Mastery for GDD_DamageSource) Greater than 0
          • (Random integer number between 1 and 100) Less than or equal to 20
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Dual_Weapon_Mui_Turnoff Equal to 0
            • Then - Actions
              • Trigger - Turn on Dual Weapon Mastery Loop <gen>
            • Else - Actions
          • Set Dual_Weapon_Mui_Integer = (Dual_Weapon_Mui_Integer + 1)
          • Set Dual_Weapon_Mui_Turnoff = (Dual_Weapon_Mui_Turnoff + 1)
          • Set Dual_Weapon_Off[Dual_Weapon_Mui_Integer] = True
          • Set Duelist[Dual_Weapon_Mui_Integer] = GDD_DamageSource
          • Special Effect - Create a special effect attached to the chest of GDD_DamageSource using Abilities\Spells\Orc\Bloodlust\BloodlustTarget.mdl
          • Set Dual_Weapon_Sfx[Dual_Weapon_Mui_Integer] = (Last created special effect)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Duelist[Dual_Weapon_Mui_Integer] Equal to Duelist[(Dual_Weapon_Mui_Integer - 1)]
            • Then - Actions
              • Set Dual_Weapon_Off[Dual_Weapon_Mui_Integer] = False
              • Special Effect - Destroy Dual_Weapon_Sfx[Dual_Weapon_Mui_Integer]
              • Set Dual_Weapon_Mui_Integer = (Dual_Weapon_Mui_Integer - 1)
              • Set Dual_Weapon_Mui_Turnoff = (Dual_Weapon_Mui_Turnoff - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Dual_Weapon_Mui_Turnoff Equal to 0
                • Then - Actions
                  • Trigger - Turn off Dual Weapon Mastery Loop <gen>
                • Else - Actions
            • Else - Actions
              • Unit - Set level of Dual Weapon Mastery [Dummy] for GDD_DamageSource to ((Level of Dual Weapon Mastery for GDD_DamageSource) + 1)
        • Else - Actions
      • Game - Display to (All players) the text: Melee Attack ;)


The changelog

Version 1.0 - First Release

Version 1.1 - Made Chain Link fully MUI

Version 1.2 - Made Essence Shift fully MUI

Version 1.3 - Made Force Staff (item) fully MUI, write -no to disable enemies from using on you non-stop.

Version 1.4 - Made Penintence fully MUI

Version 1.4b - Changed a bit of coding, removed the unnecessary parts of the map ('the health problem' and the tavern)

Version 1.5 - Made Devastating strike fully MUI. Sorry for this inactiveness, i am trying to get into real life :)

Version 1.6 - Made Frost Aura fully MUI. Added a new hero: Akacia the Duelist with five new MUI skills. Still sorry for inactiveness :)

Version 1.7 - Added a new spell - Multi Shot, which is MUI :p Also new spells are coming soon.

Version 1.8 - Added 3 new MUI spells: Snipe Assasination Shot, Sneaky, Traceless Assasination.

Version 1.9 - Added 3 new MUI spells: Spinning Blow, Tornado Jump, Eye of the Tornado. Fixed a bug with Split Mana and polished coding on other spells, added some Unit is not magic immune conditions to avoid unnecessary waste of information and units. Changed testmap terrain, to look a little more comfortable for the eye :p

Version 2.0 - Added 4 new MUI spells: Alpha Strike, Meditate, Wuju Style, Highlander. They are also known as Master Yi's spells from LoL (League of Legends). Sorry for that unoriginality :( Also made the test map more suitable and user friendly: Press the "Esc" key and it will heal you, write "-lvl" and it will increase your levels by 1. Added an in-game screenshot. Improved coding a bit. Created a Hero (Spiritwolf) that has the non-MUI spells.

Version 2.1 - Added 4 new MUI spells: Soul Catch, Soul Mastery, Warp and Soul Vortex (plus Extinction). These spells are from my long lost project (this map, about 8 months ago). Sorry for Magtheridon96 for not updating his suggestions as promised. Yet.

Version 2.1b - Created a tavern for the heroes to avoid messiness. Revealing a spell: Bleed (MUI) which has been uploaded in like 1.5-2.0 version but has never been written here. Changed the map name to be more suitable and easier to find/replace when an update is made.

Version 2.2 - Updated the code and made it use as less unnecessary information as possible. Also added a new MUI spell - Unit Cannon. Added a Damage Detection system made by Weep. Changed the code to fit and make it detect physical attacks from spells. By doing this, I placed Dual Weapon Mastery conditions into the DDS. Did almost everything that Maker said to change while rejecting this pack. ;)


All the things that are somewhat imported are NOT NECESSARY for you to import.
Not MUI spells: Empathic Warp, Borrowed Time, Burnout.

Any help to improve the spells will be appreciated and the suggester will be given a +rep

Keywords:
Hive spellpack request tiche3
Contents

Hive's Spellpack v2.2 (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. Reasons for rejection: You have same actions in THEN and ELSE branches. Usually leak removals. Take them out of I/T/E. You are using poor tree detection. ->...

Moderator

M

Moderator

12th Dec 2015
IcemanBo: Too long as NeedsFix. Rejected.

Maker, Hive's Spellpack v2.1b, 15.11.2011

Reasons for rejection:
You have same actions in THEN and ELSE branches. Usually leak removals. Take them out of I/T/E.
You are using poor tree detection. -> http://www.hiveworkshop.com/forums/world-editor-help-zone-98/destroy-only-trees-194925/
Casting Force ability causes weird effect on units, seems non-reversable.
Penitence cancel shouldn't be on all the time.
Use skip remaining actions in the looping trigger hen correct unit is found.
Penitence doesn't turn off.
When you create special effects, you don't need to set them into a variable if you destroy them immediately. Use Destroy last created effect. You have this flaw in many triggers.
Frost Aura group 2 is not needed, use group 1.
Dual Weapon Mastery Attack shouldn't be on all the time.
Sonic Rush causes unit group leak when cast.
Multi shot causes unit group leak when cast.
Alpha Strike causes unit group leak when cast.
Multi shot causes unit group leak when stopping casting.
Eye of the Tornado Begin causes unit group leak when cast.
Tornado Jump screws up selection.
Eye of the Tornado Stop shouldn't be on all the time.
Meditate Loop, use x mod 25 = 0 in loop instead of multiple or values.
Meditate Stop not on all the time.
Wuju Style Learn shouldn't be limited to 4 levels.
Highlander Kills not on all the time.
Highlander Loop has Display text to all players.
Soul Vortex Try has display text to all players.
Soul catch causes unit group leak when cast.
Soul catch, effect on hands can't nbe referenced afterwards. Store them.
Remove invul abil from dummy.
Dummy uses upgrades.
Dummy gives lots of vision.

General comments:
You could have used better indexing. Removing non active instances, like in dynamic indexing.
You should share "temporary" global variables. You have way too many variables in the map.

Bribe

Further reviewed:

The test-map is really not good for showing off every skill. The "Esc" key should heal my heroes and restore their mana. Also, the blademaster enemy keeps respawning forever, there was no way I could really shake him and it made it disruptive for the testing environment.

This needs an update with a more suitable test-map.

Also needs an in-game screenshot.


Essence Shift- I recommend change the actions to this:

  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • ((Triggering unit) has buff B000) Equal to true
    • Then - Actions
      • Set Percent = 0.10
    • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Triggering unit) has buff B007) Equal to true
        • Then - Actions
          • Set Percent = 0.15
        • Else - Actions
          • Set Percent = 0.20
  • Unit - Set mana of (Triggering unit) to ((Mana of (Triggering unit)) + ((Max mana of (Triggering unit)) x Percent))%
  • Special Effect - Create a special effect attached to the overhead of (Triggering unit) using Abilities\Spells\Undead\ReplenishHealth\ReplenishHealthCasterOverhead.mdl
  • Special Effect - Destroy (Last created special effect)
Use "set bj_wantDestroyGroup = true" instead of group set/pick/destroy.

Fortune Reversal - (Target unit of ability being cast) should be stored into a variable because you reference it a lot.

(Owner of (Triggering unit)) -> (Triggering player)

Framerate intervals should be 0.03 seconds, no more no less, and more it's overkill any less people can spot the fakeness.

Devestating Strike Loop... wow, I don't know where to start. Less arrays would be a start (store Devastation_Time[Devastating_Mui_Loop] into a normal variable, for example, because it's more efficient)

"Unit is attacked" is abusable, can cause some of these things to be overpowered.

These things are basic patterns I've seen in many of your triggers. TONS of triggers. Just tons. One of the best things of all is that I couldn't find any leaks despite the amount of triggers! Great achievement! I want to see this in the "Approved" section, but please do some quality improvements from time to time on this, as I can still see room for improvement, just let me know when you do so I can re-review/approve it.


edit
17th of July
Magtheridon96:

Marked as "Needs Fix"

I would recommend caching the the triggering unit and the triggering player instead of repeating the calls multiple times.
Also, you need to address all the problems noted by Bribe and Maker (especially the leaks).

This will be approved after that.
 
Level 37
Joined
Mar 6, 2006
Messages
9,240
Essense Shift:
Not MUI and extremely simple.

Split mana
This should be inside the group loop:
  • Custom script: call RemoveLocation(udg_Split_Mana_Group_Pos)
Calculate this outside the loop:
  • Set Split_Mana_Divided = (Split_Mana_Amount / (Real((Number of units in Split_Mana_Group))))
Again a simple spell.

Reverse Polarity:
I think the concept isn't that great.

Chain Link, Borrowed Time, Force Staff, Empathic Warp, Penitence, Devastating Check, Burnout, Frost Aura:
Not MUI.

The problem with this spell pack is that the spells are either too simple or not MUI.

You just need more practise in spellmaking. You know how to clear leaks, that's good. Take a look at some MUI tutorial.
 
Level 9
Joined
Jun 25, 2009
Messages
427
Essense Shift:
Not MUI and extremely simple.

Split mana
This should be inside the group loop:
  • Custom script: call RemoveLocation(udg_Split_Mana_Group_Pos)
Calculate this outside the loop:
  • Set Split_Mana_Divided = (Split_Mana_Amount / (Real((Number of units in Split_Mana_Group))))
Again a simple spell.

Reverse Polarity:
I think the concept isn't that great.

Chain Link, Borrowed Time, Force Staff, Empathic Warp, Penitence, Devastating Check, Burnout, Frost Aura:
Not MUI.

The problem with this spell pack is that the spells are either too simple or not MUI.

You just need more practise in spellmaking. You know how to clear leaks, that's good. Take a look at some MUI tutorial.

Fixed the inside/outside group.
The spells are as simple as the requesters wanted :(
Mui tutorial - the only one i have found is hashtables, sorry, not gonna happen. Altough i've tried to make a spell MPI, but it didn't work...
I would be glad if you helped me make the spells MUI :)

Why are these not MUI?

As i mentioned above :)

Tiche3
 
Level 9
Joined
Jun 25, 2009
Messages
427
This and this. Use them.

Thanks baassee, but when i wrote the previous message i went on my own and guess what? :D Chain Link is fully working MUI Spell, updating.

Essense Shift - Make it MUI ! :D Spell is very useful for RPG's! :) Thank you :p*

Oke, it will be like that, but first i will upload and then check :D

EDIT: Made it MUI, good luck :p

EDIT2: Wow, i think i'm getting the hang of this: Made Force Staff (item) fully MUI, write -no to disable enemies from using it on you non stop :D

EDIT3: Updated to version 1.4 - made Penintence fully MUI

Rate guys and comment.

Tiche3
 
Last edited:
Level 16
Joined
May 1, 2008
Messages
1,605
Moin moin =)

=== My personal vote: REJECTION [1/5] ===
( Before shouting around read the review to understand this vote )

After downloading and testing the map, this is my review:

== Essence Shift ==
You can do this simple spell with a loop from 1 to 3 (max ability level), so you don't need this amount of triggers there.

== Split Mana ==
You don't need to set Split_Mana_Amount to 0.00, because as far as I know, real don't need to be nulled.

== The Health Problem ==
What the hell is this? - Looks no needed.

== Chain Link ==
What you did there. For MUI just use 1 one variable with 3 arrays not 3 different variables. This just use more memory
Also the "If - Then - Else", where you check if "Chain_Link_Mui_Turnoff Equal to 0" should be outside of the loop. As far as I know this is better.

== Unholy Plats ==
In this trigger, I think it would be enough, if you just use 1 location and one group variable only. First you set the location to the pos of triggering unit when one group for the allies. Use the same location for the pos of Picked unit. After this group actions,put the location to the pos of triggering unit again destroy group and re-set it for the enemy group.

== Spell of Randomness ==
As far as I can see, you don't need to store the effect into a variable. You directly remove it anway, and therefor no variable need.

== Mind Explosion ==
Same with the groups here, you just need one and also you don't need to store the effect, when the destroy trigger comes immediately.

== Force Staff ==
Again the MUI variables, one variable with 3 arrays ( actually you need only two ) but not three different variables.

== Every spell above then ==
I miss the MUI from now on. Also a lot of triggers for just one spell. I say ways, to reduce the amount of triggers, but would be senseless if I write everything down.

== The test map ==

Pure fail? No but somehow yes. 1) The staff in the inventory ( anyway when you create it you create a trigger with leaks ), but the tooltip is wrong also it's annoying when you just get pushed around. Also what is the camp for, I train units but nothing happen?

Whatever, why this map is called "Hives Spellback" and/or "Map to help Hivers"? Ok this can be helpful, I don't want say something different here, but for helping the map is to complex I think.

== So what we got now [End Rating]==
Yes it's hard to rate. We don't have any high GUI here, but this is no low GUI too ( in a low amount of cases ). But still this pack needs many improvements. Also the MUI fail at the last spells as far as I can see. SO this is against the rules, but you have many working stuff there ... BUT I say rejection UNTIL! you improve this pack a lot!

NOTE: My review is NOTHING! against the creator of the pack and NOTHING against the pack itself. But in this complex pack you can improve a lot of things!
When I see you work on it and improve it, I come back and review + rerate it.

Greetings and Peace
Dr. Boom
 
Level 9
Joined
Jun 25, 2009
Messages
427
Moin moin =)

=== My personal vote: REJECTION [1/5] ===

First of all, thanks for reviewing my spells. The spell pack looks like... because this is the map i upload when i do a request for you guys, that's why there are stuff like 'the health problem' and that tavern :D

== Essence Shift ==
You can do this simple spell with a loop from 1 to 3 (max ability level), so you don't need this amount of triggers there.

Actually, if you could help me fix this, since i can't figure it out. (<.<)

== Split Mana ==
You don't need to set Split_Mana_Amount to 0.00, because as far as I know, real don't need to be nulled.

Done

== The Health Problem ==
What the hell is this? - Looks no needed.

Removed, look three quotes above

== Chain Link ==
What you did there. For MUI just use 1 one variable with 3 arrays not 3 different variables. This just use more memory
Also the "If - Then - Else", where you check if "Chain_Link_Mui_Turnoff Equal to 0" should be outside of the loop. As far as I know this is better.

Thanks, but i will stay with my own, since this is the first MUI spell in my life and this way I understand it better, sorry.

== Unholy Plats ==
In this trigger, I think it would be enough, if you just use 1 location and one group variable only. First you set the location to the pos of triggering unit when one group for the allies. Use the same location for the pos of Picked unit. After this group actions,put the location to the pos of triggering unit again destroy group and re-set it for the enemy group.

Done

== Spell of Randomness ==
As far as I can see, you don't need to store the effect into a variable. You directly remove it anway, and therefor no variable need.

Done

== Mind Explosion ==
Same with the groups here, you just need one and also you don't need to store the effect, when the destroy trigger comes immediately.

Done

== Force Staff ==
Again the MUI variables, one variable with 3 arrays ( actually you need only two ) but not three different variables.

As mentioned above this was the second MUI spell in my life, so i am sorry.

== Every spell above then ==
I miss the MUI from now on. Also a lot of triggers for just one spell. I say ways, to reduce the amount of triggers, but would be senseless if I write everything down.


Yeah, okay, thanks for reviewing :)

== The test map ==
Pure fail? No but somehow yes. 1) The staff in the inventory ( anyway when you create it you create a trigger with leaks ), but the tooltip is wrong also it's annoying when you just get pushed around. Also what is the camp for, I train units but nothing happen?

Done, removed the camp, since it was a request for one guy and it is not necessary here, about the Force Staff pushing non stop - just write -no and they will stop, this is just for testing purposes. Since i couldn't test it without num pads (i am using a laptop)

Whatever, why this map is called "Hives Spellback" and/or "Map to help Hivers"? Ok this can be helpful, I don't want say something different here, but for helping the map is to complex I think.

As mentioned above, this is the map in which i create and upload spells to help the people who asked for them.

== So what we got now [End Rating]==
Yes it's hard to rate. We don't have any high GUI here, but this is no low GUI too ( in a low amount of cases ). But still this pack needs many improvements. Also the MUI fail at the last spells as far as I can see. SO this is against the rules, but you have many working stuff there ... BUT I say rejection UNTIL! you improve this pack a lot!

Good criticism is always welcomed, thanks for your review.

NOTE: My review is NOTHING! against the creator of the pack and NOTHING against the pack itself. But in this complex pack you can improve a lot of things!
When I see you work on it and improve it, I come back and review + rerate it.

Meh, it's nothing personal, don't worry, i like that you reviewed it and of course i will improve and update my map :)

Tiche3
 
== Essence Shift ==
You can do this simple spell with a loop from 1 to 3 (max ability level), so you don't need this amount of triggers there.

Actually, if you could help me fix this, since i can't figure it out. (<.<)

Would you like my help with this? It is easily done, I can set it up, but you will need to remove the leaks.

The easiest way to do so though, is in an if function check the level of the ability, like, "Level of [ABILITY] equal to 1" then you do your actions, and it will only do those actions when the level is one. Try it first, then if you can't get it, let me know.
 
Level 9
Joined
Jun 25, 2009
Messages
427
Long time no see guys :) updated the version.

Version 1.6 - Added 5 new MUI spells, made some spells MUI currently in the pack.

EDIT: Updated again, added Multi Shot (MUI). Will be updating some new spells.

EDIT 2: Updated again, added Snipe Assasination Shot, Sneaky, Traceless Assasination (All spells are MUI).

Tiche3
 
Last edited:
Level 16
Joined
May 1, 2008
Messages
1,605
Moin moin =)

Ok I'm back with a new computer and as I promised, I review your spell pack, so lets go.

=== General ===
1) Maybe you add in your conditions, when you pick units for example, if the picked unit/s is/are magic immune.
2) You don't need to store attached effects into a variable, as far as I know. You can destroy them the normal way.
3) Improve the test map. Just 2 Heroes of the same type with level 10 or so, place some enemy units (not just heroes, for the mind explosion spell for example)
4) You should think about, to make those spells in Jass/vJass, because I! think that this helps more then GUI, but ofc it's your choice.

=== Essence Shift ===
1) As far es I can see you can delete the full "or - any" condition, because you don't need to double check it.

=== Split Mana ===
1) I think you can use directly "Set Split_Mana_Amount = Mana of (Packed Unit), because the variable starts by 0 anyway.
2) Also I think you just need to pick all units in the group for one time not twice.

=== Impact ===
1) No hero on the map has this spell for testing.

=== Unholy Plats ===
1)No hero on the map has this spell for testing.
2) Also it's enough, if you just create the unit group once. Use the variable Unholy_Plats_Group for picking every unit without checking if ally or enemy. Then pick every unit in this group and then make the condition if ally or enemy inside the pick.
3) Also I think of a better effect of the healing, not just this poor yellow one ^^

=== Fortune Reversal ===
1)With this ability you can even heal the target enemy unit, don't know if that is a cool idea.
2) Also an effect at the target would be nice.

=== Spell of Randomness ===
1) No hero on the map has this spell for testing.
2) Also the spell could be a one level spell. Maybe you should increase the random stuff a little with each ability level.

=== Mind Explosion ===
1) Same, you just need to pick the unit group one time and check inside the Pick every units in ... if there is any hero or not.
2) If my calculation skill isn't failing here, the spell is a little to over powered I think. If the unit has 1000 mana then: [(1000) * (0.25 + (0.25 * level))] = 500. So if the level ability is 3, the picked units are instant dead. Also if the unit dies, again 300 damage ... which is a lot of damage at all.

=== Frost Aura (Loop) ===
1) As I see you pick every unit in Frost_Groupie_Two and in the first conditions you check, if the picked units aren't in this group, but where you pick every units into the Frost_Groupie_Two?

=== Sonic Focus ===
1) I don't understand the struct of this. First you check if "Focused Force is over 0", then you check if "Sonic Focus is level 1" then you check if "Focused Force is level 2" and then you don't have a then action, you use an else action. Explain this please, because I don't get the way.

Ok this all for now, don't have time to continue, but you got a small list now and lets see whats coming next.

Greetings and Peace
Dr. Boom.
 
Level 9
Joined
Jun 25, 2009
Messages
427
Moin moin =)

Ok I'm back with a new computer and as I promised, I review your spell pack, so lets go.

Thanks for reviewing :p now i'm going to check all the things you pointed out for me :)

1) Maybe you add in your conditions, when you pick units for example, if the picked unit/s is/are magic immune.
2) You don't need to store attached effects into a variable, as far as I know. You can destroy them the normal way.
3) Improve the test map. Just 2 Heroes of the same type with level 10 or so, place some enemy units (not just heroes, for the mind explosion spell for example)
4) You should think about, to make those spells in Jass/vJass, because I! think that this helps more then GUI, but ofc it's your choice.

1) Done! :)
2) Yeah, might be so, but i've experienced things when they last longer than expected or just destroy at instant, only showing for like 0.1 second :p maybe i'll leave it this way :)
3) Improved! (changed the terrain to look better for the eye), grouped Heroes in a pair of two (except for the guy with non-Mui spells (3 of 'em)), placed some normal units for mind explosion spell :p
4) Meh, all i know about Jass is few custom scripts to destroy leaks. I will stay with GUI for now :) this spellpack needs to be simple for almost any hiver (since this spellpack is the spells requested in GUI :p)

=== Essence Shift ===
1) As far es I can see you can delete the full "or - any" condition, because you don't need to double check it.

It's there for the event checking, since if the event wouldn't be without any conditions as such (since the "Conditions" part are And all conditions are true always (but it doesn't show so)) and the part in the If-Then-Else is because it's different buffs for different skill levels, to reach multiinstansability :p

=== Split Mana ===
1) I think you can use directly "Set Split_Mana_Amount = Mana of (Packed Unit), because the variable starts by 0 anyway.
2) Also I think you just need to pick all units in the group for one time not twice.

Actually it must be set to that, because in the first pick, the units' mana is added to the "amount" and in the later pick the mana is split, because if it would be in one unit group pick, it would be splitted like this: Mana of first unit - 20, then it would be divided let's say by 5 and everyone would get 4 mana, then the other unit and blah blah :p

You know why is it like that? cause unit groups are like loops, but for each unit do actions :p Meh, hard to explain, try texting Game:text all (split_mana_amount) and you'll see what i mean :)

=== Impact ===
1) No hero on the map has this spell for testing.

Done! :)

1)No hero on the map has this spell for testing.
2) Also it's enough, if you just create the unit group once. Use the variable Unholy_Plats_Group for picking every unit without checking if ally or enemy. Then pick every unit in this group and then make the condition if ally or enemy inside the pick.
3) Also I think of a better effect of the healing, not just this poor yellow one ^^

1) Done! :)
2) Done! :p
3) Meh, haven't thought of that yet :( hard to find one :D

=== Fortune Reversal ===
1)With this ability you can even heal the target enemy unit, don't know if that is a cool idea.
2) Also an effect at the target would be nice.

1) One requester (Aspherant-Lucaz if i'm correct) asked for it to be like that and since it's a hive's spellpack and the spells are the ones people asked to be created, it's his idea :p
2) I might add it in the version 2 :D

=== Spell of Randomness ===
1) No hero on the map has this spell for testing.
2) Also the spell could be a one level spell. Maybe you should increase the random stuff a little with each ability level.

1) Fixed! (;
2) I could do it like this, but the requester asked it to be like this, although i think i might change it in version 2 :)

=== Mind Explosion ===
1) Same, you just need to pick the unit group one time and check inside the Pick every units in ... if there is any hero or not.
2) If my calculation skill isn't failing here, the spell is a little to over powered I think. If the unit has 1000 mana then: [(1000) * (0.25 + (0.25 * level))] = 500. So if the level ability is 3, the picked units are instant dead. Also if the unit dies, again 300 damage ... which is a lot of damage at all.

1) Done! :)
2) Actually numbers are still as requested, but i might change them if it's that overpowered :p (but you are the ones (hivers) who can change them for themselves depending on how and what they want of it :p

=== Frost Aura (Loop) ===
1) As I see you pick every unit in Frost_Groupie_Two and in the first conditions you check, if the picked units aren't in this group, but where you pick every units into the Frost_Groupie_Two?

It's like this because the frost_groupie picks the units that GET in the range :p and puts them in the group, which is the units that ARE inside and slows the units inside and if the unit reaches very slow movement speed or gets outside the are they are automatically (of course through triggers) removed from the group :p

=== Sonic Focus ===
1) I don't understand the struct of this. First you check if "Focused Force is over 0", then you check if "Sonic Focus is level 1" then you check if "Focused Force is level 2" and then you don't have a then action, you use an else action. Explain this please, because I don't get the way.

Meh, hard to explain, if the unit has the ability and it has reached it's max level (the dummy one) then it does nothin, else it increases :)

Ok this all for now, don't have time to continue, but you got a small list now and lets see whats coming next.

Greetings and Peace
Dr. Boom.

Thanks, but the TIME HAS COME TO IMPROVEEEE :D

Updated the spellpack: fixed some issues you told me to (thanks), polished some triggers (double thanks) and yeah.
Changed the terrain, made it a little bit more attractive to the eye and added 3 new MUI spells :) - Spinning Blow, Tornado Jump and Eye of the Tornado (also a new hero - Typhoon (tripely awesome :D))

Tiche3
 
As you requested:

FULL REVIEW:

-Essence Shift:

*It may be simple, but it's pretty useful
*It is infact MUI, since it is instant and has no leaks

-Split Mana:

*I think this spell in the eyes of a player, would be extremely useful! I like it.
*It doesn't leak, it is MUI, and it's easy to implement.

-Impact:

*Good job on this spell.
*My only suggestion is that you would move the units to the position of the caster. This way, they will appear around him in a circle, and if they were originally next to him (closer than 250 range), it would look wierd how they would suddenly appear further away then they already were.

-Chain Link:

*Good Job!
*I think it would be better if the spell was channeling and if the targetted unit is incapable of movement.
*I also think it needs some DPS (damage per second) (20 would be suitable)

-Unholy Plats:

*I have no suggestions for this spell
*It's good, it's MUI, it's leakless; what more could anyone want?

-Fortune Reversal:

*Good job on this spell (coding-wise), but i honestly think it needs some reworking. It can heal enemy units. I suggest you make the spell set someone's mana to half his health and his health to double his mana. This way, the spell would be effective against strength heroes with low mana, but it would be horrible against intelligence mage heroes.
*It doesn't leak and it's MUI
*Also i think you should add some sort of special effect

-Spell of Randomness:

*Good job.
*I only suggest that you add more randomness in the spell:
-Random Special Effect
-Random Spell Buff for each individual unit (Slow, Stun, burn with DPS...)
*You could make the damage random this way:
-25% chance to deal 0 damage
-50% chance to deal 50-300 damage
-25% chance to deal 400 damage

-Spell Shield:

*It's aight. :p

-Mind Explosion:

*Good job on this spell
*I don't think it needs any modifications.

-Force Staff

*I think something's missing in this spell.
*This spell can make units move above terrain elevations. To get rid of that, you have to detect the z (as in the height) of the unit. If the difference of z of the unit is greater by a value of 64 or greater in one instant, then change the offset to a negative one for the next instant. (he'll go back and forth when he hits an elevation). This edit might make the spell non-MUI again, but it will be worth it, because i think you work something out with indexes or hashtables. If you want this to work, you have to make the spell loop every 0.02 seconds and you have to set the moving location's offset to 10.

-Penitence:

*I'm not exactly sure why, but the spell doesn't heal my allies when i cast it on them.

-Frost Aura:

*The special effect should be more.... frosty-like (lol)
*The icon could be changed
*It is MUI
*The buff needs to be changed. It says: This unit is under the effects of Brilliance aura; it is slowed constantly. The buff effect should be changed for the caster.

-Devastating Strike:

*The damage per slash needs to be increased slightly.
*The spell effect is great.
*The jump effect needs to be reworked using trigonometry (i dont know how since im taking trigonometry at the end of next trimester :p). If you don't want to use trigonometry, you can use a height changing variable that decreases and half way throught the jump begins to increase.
****Sorry to complicate things :(****

-Dual Weapon Mastery:

*This spell is creative, it's original (i think), and it's MUI

-Sonic Focus:

*Why didn't I think of that?!?
*This spell can really be useful.
*I found no problems with it. People might think it's inefficient, but it's ok since it's functional :)

-Triple Sonic Slash:

*I found no problems, just one question: Did you mean to repeat the following line of code twice:

  • Unit - Decrease level of Focused Force for (Triggering unit)


-Sonic Blaster:

*Good Job on this spell
*I also find no problems.
*I tested the MUI part, and yes it is 100% MUI (Oh yeah.. I'm very skeptical -.-)

-Sonic Rush:

*Excellent!
*Leakless, Mui, Good effects, ....

-Multi-Shot:

*No problems with this spell.
*Good job
*Maybe you can add a knockback of some sort when each arrow hits an enemy unit.

-Snipe Assassination Shot:

*Okay lol

-Sneaky:

*Can you slightly increase the font of the floating text and make the color red or green (whichever seems more related to agility to you; i'd say red).

-Traceless Assassination:

*Excellent Spell idea.
*It might be imbalanced, but that should fixed by the user.
*Just one thing: If an enemy unit has magic sentry or truesight, the ability wouldn't work.
*To fix this, just detect if any units in range have magic sentry or truesight and disable it temporarily.

-Bleed:

*It was an awesome idea to make the spell an auto-casting one ( u probably had no idea xD ).
*It doesn't bug.
*I only suggest that you let the effect last longer.

-Spinning Blow:

*My only comment involves the sound of the spell. It's okay, but it needs to be changed.

-Tornado jump:

*You shouldn't hide the caster because it would ruin the effect, so i suggest you constantly shrink him, then move him to the targeted point and he grows back to normal size. (Pretty good effect huh?)

-Eye of the Tornado:

*An excellent spell. It is MUI.
*I found that if a unit is affected by this spell by 2 casters he would move in an 8 loop (by "8" i mean like the shape of the loop). That's awesome.
*And instead of removing the dummies, you can add expiration timers.

-Empathetic Warp:

*I can only comment in-depth on this spell after it has been made MUI.
*The idea is good though.
*I found no leaks, so, good.

-Borrowed Time:

*It doesn't work completely. If you killed the caster in a One-hit KO, he would die in an instant. I tried. (Again... i'm very skeptical -.-)
*I like the idea of this spell though :)

-Burnout:

*Very creative idea for a spell.
*It isn't MUI, so you can fix that using hashtables. ( i think )


------------------------------------------------------------------------
There you have it. A review that took me 2 hours to make since i tested each spell many times and reviewed the code twice.
------------------------------------------------------------------------

I hope you'll listen to some of my suggestions. :)
That would be highly appreciated.

PS. This review PWNS!!
 
Last edited:
Level 16
Joined
May 1, 2008
Messages
1,605
Moin moin =)

Well, after a friend use something of this pack which didn't work how he wanted, I looked again to this pack and got the following:

=== Multishot ===
1) When she fires up her arrows, a arrow sound should be played, can be optional.
2) Also wondering, when I cast the spell, then she stands for 1 or 2 seconds and then she fire her arrows. This waittime should be removed or putted into a variable.
3) I see that a target can be hit by all arrows if the target is to close. Maybe you should add a boolean variable, if the target only should get damaged by one arrow or by all.

=== Traceless Asasination ===
1) You can add an effect when she cast it.

=== Split Mana ===
1) Somehow I try to understand the sense of this spell? Mean drain mana from his allies is somehow useless with no other effect^^
2) Also you just need one location variable for this spell. When you set up the first group you can remove it and then use this location again for the (Position of (Picked Unit)) in the second group action

=== Penitence ===
1) When the caster cast it, I think an immediately damage/heal should come up, not first after some duration.

=== Bleed ===
1) Wondering why you can target allies with it?
2) You should set this "15% of damage by distance" into a variable, so everyone can modify this by his own.
3) Same thing about the bleed time. (I think this is the duration of the spell right?)

=== Chain Link ===
1) I saw the the lightning is attached to the feet of the target. Here you should use the custom script "AddLightningEx()", to make this chain at the body of the target.
JASS:
call AddLightningEx(String name of the lightning,true,x of caster,y of caster,z of caster(height),x of target, y of target,z of target(height))

=== Devastating Strike ===
1) When someone wants, that the first strike before flying, deals damage and the target get killed by this damage, then the caster is still unable to walk or do something else, until the full duration is gone.
2) Also I'm sure that you don't need two loops for it.

=== Reverse Polarity ===
1) This spell is too simple isn't it. Try to code it like this, that all the target are fast dragged to him instead of being ported instant in front of the caster.

=== Unholy Plats ===
1) Well, why not using an attached effect here too? Then you can delete the use of a second point variable.

=== Frost Aura ===
1) Why this aura only works for enemy heroes? (Because the Grunts on the testmap didn't get slowed nor the effect comes up)
2) Also for not being a overpower spell, you shouldn't make it as a condition if the current MS of the picked unit is under 20. Make instead something like this: Current MS of the picked unit is under (Default MS of picked unit) / 3.

=== Snipe Assasination Shot ===
1) Don't ask me HOW! this happen (someone with better GUI knowledge should think of this) but I detected a bug. When I cast this spell and she fire the arrow up, then under some conditions when the target unit is moving, the arrow is flying around the target through the air, even when the target is dead =O


btd38do099vd39lrd.jpg


btd39gk2t37sp8z8p.jpg


Again I don't know how this happen, but Maker has very high GUI skills, you should ask him for example if you don't know the error

=== Tornado Jump ===
1) Well it isn't a jump, it's more a port, so you should make something here

=== General ===
1) Well you don't need store attached effects into variables. The thing is, if you immediately destroy the effect, these effects are shown up to 5 seconds anyway.
2) In each trigger, you have to null unit variables. (Well it's in Jass, so I think it's in GUI too!)
3) In spells where you use more then 3 times (TriggeringUnit) or (Target unit of ability being cast), you should store them into a variable and refer to the variable. This (TriggeringUnit) and (Target unit of ability being cast) and so on, always call another function themself.
4) For example "Penitence" is a channel spell, but you don't need to check in 2 other triggers, if the unit is still casting the ability or used something else. You can do the following main condition in the loop trigger:
  • (Current order of Penitencer[Penitence_Mui_Loop]) Equal to (Order(channel))
If this is true then all actions happen, else (so if not true) then resett everything or what ever. ( In this caste channel is the order of the spell!! )

Well now I need to go to the city, but I think you have some stuff now to fix and to change here, I will review the pack after some changes when I have time =)

Greetings and Peace
Dr. Boom
 
Last edited:
Level 9
Joined
Jun 25, 2009
Messages
427
It got 5 starts but it rejected? Hmmmm...

Ummm... I didn't upload the newest and improved, fixed version here. Didn't finish ALL the things the moderators wanted me to. So it's like that :) but i hope i will make it soon ;)

EDIT, MEGA EDIT: Uploaded a new version!!! :) changes are in the changelog. Uploaded a screenshot, uploaded few times but the screenie doesn't change.

The test-map is really not good for showing off every skill. The "Esc" key should heal my heroes and restore their mana. Also, the blademaster enemy keeps respawning forever, there was no way I could really shake him and it made it disruptive for the testing environment.

I think this is fixed :p

This needs an update with a more suitable test-map.

Also needs an in-game screenshot.

Tried to do it, but the screenie doesn't update :( will try few times a bit later :)

  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • ((Triggering unit) has buff B000) Equal to true
    • Then - Actions
      • Set Percent = 0.10
    • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Triggering unit) has buff B007) Equal to true
        • Then - Actions
          • Set Percent = 0.15
        • Else - Actions
          • Set Percent = 0.20
  • Unit - Set mana of (Triggering unit) to ((Mana of (Triggering unit)) + ((Max mana of (Triggering unit)) x Percent))%
  • Special Effect - Create a special effect attached to the overhead of (Triggering unit) using Abilities\Spells\Undead\ReplenishHealth\ReplenishHealthCasterOverhead.mdl
  • Special Effect - Destroy (Last created special effect)

Done! :)

Use "set bj_wantDestroyGroup = true" instead of group set/pick/destroy.

A question: may i still use the set/pick/destroy? I'm very used to doing this since i began triggering. It would just kill me to do this :( (can't fix my brain).

Fortune Reversal - (Target unit of ability being cast) should be stored into a variable because you reference it a lot.

Done! :)

(Owner of (Triggering unit)) -> (Triggering player)

If my eyes didn't fail me it's done in all the triggers it could be done (;

Framerate intervals should be 0.03 seconds, no more no less, and more it's overkill any less people can spot the fakeness

This is another thing :( may i still use the 0.04 seconds, not only because i'm used to it but for me it's better to calculate the ticks (25=1 second and etc.) since 0.03 is kind of a periodic number, so it would be hard for me to change all the triggers ;( (because of the reasons i explained above)

Devestating Strike Loop... wow, I don't know where to start. Less arrays would be a start (store Devastation_Time[Devastating_Mui_Loop] into a normal variable, for example, because it's more efficient)

Question: since it is a MUI spell, wouldn't changing an array into a normal variable ruin all the spell?

"Unit is attacked" is abusable, can cause some of these things to be overpowered.

I'm sorry but i will leave it as it is. FOR NOW :) until i get the hang of the damage detection system.

These things are basic patterns I've seen in many of your triggers. TONS of triggers. Just tons. One of the best things of all is that I couldn't find any leaks despite the amount of triggers! Great achievement! I want to see this in the "Approved" section, but please do some quality improvements from time to time on this, as I can still see room for improvement, just let me know when you do so I can re-review/approve it.

Thank you for reviewing this spellpack. I hope i didn't fail your expectations. ):

Tiche3
 
Last edited:
Level 9
Joined
Jun 25, 2009
Messages
427
Another Update (2 of them, to be exact) added a lot of things. And in the second update, created a tavern for heroes. All of the changes are in the change-log.

Sorry Dr.Boom and Magtheridon96 for not uploading your suggested things :) but i hope in the future i will do them and this pack will be more awesome :)

EDIT: Currently implemented a Damage Detection system made by Weep. Made it to detect differently spell and melee damage. But the problem with this is that you need to custom damage every normal, usual Warcraft3 spell you have if you want this to work properly, else basic Warcraft 3 spells will cause their damage to be treated as Melee Damage. This is the current stage. I've fixed some issues such as Reverse Polarity. (Made it to damage through triggers=spell damage, not melee damage) I hope i will get to work on Unholy Plats and make it fully custom thus meaning a whole new spell which would use only dummy units and move them. That is for now.

Tiche3
 
Last edited:
Level 3
Joined
Apr 3, 2014
Messages
53
This map corrupted mine, all of sudden all of the triggers on my map disabled and give me error when i try to turn them back on!
 
Top