• 🏆 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!

Greater Heal v1.4 (GUI)

  • Like
Reactions: tjordell
Greater Heal v1.4

Heals the targeted friendly or enemy unit for an amount modified by 'talents' (The ability 'Focus' in the test map), spell rank, and hero intelligence. (Easily customizable)
If the casting unit has the passive ability 'Holy Excess', then the units surrounding the target unit will take damage or healing, depending on if its a friendly or an enemy unit. The AoE effect is allso modified by spell rank and 'talents' (The ability 'Focus' in the test map).

The ability also has a critical effect, which is also modified by stats.

To increase the maximum ability level, all that has to be done, has to be done in the object editor. Simply by increasing maximum rank. All the variables are already included in the triggers (although the main spell is capped at level 1 in the included file).

The spell requires 3 Abilities, 1 (Hero) Unit, and 1 trigger (2 including DummyAbility, as of version 1.4)
For the 'Holy Excess' Ability, the target unit has to be surrounded by allied or enemy Undead units (Non-Ancient).

The amount of healing done, and the mana regained by the 'Focus- Talent' is displayed above the affected units in green (beneficial), red (harmful) or blue (beneficial, mana) color. (Floating Text)

Greater Heal v1.4
*Reduced range of 'Holy Excess' from 800 to 300
*Reduced range of 'Greater Heal' from 800 to 600
*Increased Intelligence modifier to a third of the caster's intelligence, up from a fifth of the caster's intelligence.
*Fixed tooltips of Greater Heal, Holy Excess, and Focus. These tooltips should now represent the abilities accordingly.
*Added a Dummy Ability to show the Focus tooltip when learned.
*All abilities now have and show their keybinds.
*Fixed the amount of mana regained when Focus procs.

Greater Heal v1.3c
*Fixed the increments at which Focus improves Greater Heal to 1.03, 1.06, 1.09, 1.12, 1.15 down from 1.03, 2.06, 3.09, 4.12, 5.15.

Greater Heal v1.3b
*Fixed the bug where ur hero would kill herself when casting Greater Heal offensively with critical strike. Replaced 'Picked Unit' with 'Triggering Unit' -.-
*Removed a Set Variable action

Greater Heal v1.3
*Fixed another leak in the AoE group loop. Added 'Loc[3]' and 'call RemoveLocation (udg_Loc[3])'. Replaced Special Effect - Create a special effect at (Position of (Picked Unit)) using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl with Special Effect - Create a special effect at Loc[3] using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl.

Greater Heal v1.2
*Removed decimals (Floating Text, Harmful- and Helpful)
*Increased font size of AoE damage (Floating Text, Harmful)
*Increased AoE damage dealt (Harmful)
*Normalized damage dealt to main target (Harmful)
*Normalized all damage- and healing done to applicable Warcraft III numbers (Harmful- and Helpful)
*Increased maximum rank of 'Holy Excess' to 3
*Reduced effect of 'Holy Excess' to 10% aoe damage/healing per rank, in addition to 15% per rank to the healer.
*Reduced effect of 'Focus' to 3%/6%/9%/12%/15% bonus healing per rank, from 5%/10%/15%/20%/25% per rank
*New Test Map (Increased file size)

Greater Heal v1.1: Should have fixed leaks and bugs, made the spell more flexible.
*Changed 'Casting Unit' to 'Triggering Unit'
*Added Unitgroup, 'Group', and Custom Trigger 'call DestroyGroup (udg_Group)'
*Added Point Variable Array, 'Loc(1)' and 'Loc(2)', and Custom Triggers 'call RemoveLocation (udg_Loc[1])' and 'call RemoveLocation (udg_Loc[2])'.
*Added 'Special Effect - Destroy (Last created special effect)' after each SFX
*Removed 'Do Nothing' Actions at the end of an If > Then, Else condition.

Greater Heal v1.0: Uploaded.



  • Greater Heal
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Greater Heal
      • ((Target unit of ability being cast) is alive) Equal to True
    • Actions
      • Set Loc[1] = (Position of (Triggering unit))
      • Set Loc[2] = (Position of (Target unit of ability being cast))
      • Set Group = (Units within 300.00 of Loc[2] matching (((Matching unit) Not equal to (Target unit of ability being cast)) and ((((Matching unit) is alive) Equal to True) and (((Owner of (Matching unit)) is an ally of (Owner of (Target unit of ability being cast))) Equal to
      • Set GreaterHeal = ((75.00 + ((Real((Random integer number between 1 and 25))) + (3.00 x ((Real((Level of Greater Heal for (Triggering unit)))) + (Real((Intelligence of (Triggering unit) (Include bonuses)))))))) / 3.00)
      • Set CriticalStrikeCalculator = (Random integer number between 1 and 100)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Focus for (Triggering unit)) Greater than 0
        • Then - Actions
          • Set GreaterHeal = (GreaterHeal + (GreaterHeal x ((Real((Level of Focus for (Triggering unit)))) x 0.03)))
          • 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 (5 + (5 x (Level of Focus for (Triggering unit))))
            • Then - Actions
              • Unit - Set mana of (Triggering unit) to ((Mana of (Triggering unit)) + ((Max mana of (Triggering unit)) x (0.01 x (Real((Level of Focus for (Triggering unit)))))))
              • Special Effect - Create a special effect at Loc[1] using Abilities\Spells\Items\AIma\AImaTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • Floating Text - Create floating text that reads (String((Integer((((Max mana of (Triggering unit)) x 0.01) x (Real((Level of Focus for (Triggering unit))))))))) above (Triggering unit) with Z offset 70.00, using font size 10.00, color (0.00%, 0.00%, 100.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
            • Else - Actions
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Owner of (Target unit of ability being cast)) is an ally of (Owner of (Triggering unit))) Equal to True
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CriticalStrikeCalculator Less than or equal to (15 + (1 x ((Intelligence of (Casting unit) (Include bonuses)) / 5)))
            • Then - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) + (GreaterHeal x 2.00))
              • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x 2.00))))) above (Target unit of ability being cast) with Z offset 0.00, using font size 15.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Picked unit) Equal to (Triggering unit)
                        • Then - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x ((0.15 x (Real((Level of Holy Excess for (Triggering unit))))) x 2.00)))
                          • Special Effect - Create a special effect at Loc[1] using Abilities\Spells\Human\Heal\HealTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.15 x ((Real((Level of Holy Excess for (Triggering unit)))) x 2.00))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                        • Else - Actions
                          • Set Loc[3] = (Position of (Picked unit))
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x ((0.10 x (Real((Level of Holy Excess for (Triggering unit))))) x 2.00)))
                          • Special Effect - Create a special effect at Loc[3] using Abilities\Spells\Human\Heal\HealTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.10 x ((Real((Level of Holy Excess for (Triggering unit)))) x 2.00))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                          • Custom script: call RemoveLocation (udg_Loc[3])
                • Else - Actions
            • Else - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) + GreaterHeal)
              • Floating Text - Create floating text that reads (String((Integer(GreaterHeal)))) above (Target unit of ability being cast) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Picked unit) Equal to (Triggering unit)
                        • Then - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x (0.15 x (Real((Level of Holy Excess for (Triggering unit)))))))
                          • Special Effect - Create a special effect at Loc[1] using Abilities\Spells\Human\Heal\HealTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.15 x (Real((Level of Holy Excess for (Triggering unit)))))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                        • Else - Actions
                          • Set Loc[3] = (Position of (Picked unit))
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))
                          • Special Effect - Create a special effect at Loc[3] using Abilities\Spells\Human\Heal\HealTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                          • Custom script: call RemoveLocation (udg_Loc[3])
                • Else - Actions
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CriticalStrikeCalculator Less than or equal to (15 + (1 x ((Intelligence of (Casting unit) (Include bonuses)) / 5)))
            • Then - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) - GreaterHeal)
              • Floating Text - Create floating text that reads (String((Integer(GreaterHeal)))) above (Target unit of ability being cast) with Z offset 0.00, using font size 15.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - (GreaterHeal x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))
                      • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
                      • Floating Text - Change (Last created floating text): Disable permanence
                      • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                • Else - Actions
            • Else - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) - (GreaterHeal / 2.00))
              • Floating Text - Create floating text that reads (String((Integer((GreaterHeal / 2.00))))) above (Target unit of ability being cast) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - ((GreaterHeal / 2.00) x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))
                      • Floating Text - Create floating text that reads (String((Integer(((GreaterHeal / 2.00) x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
                      • Floating Text - Change (Last created floating text): Disable permanence
                      • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                • Else - Actions
      • Custom script: call RemoveLocation (udg_Loc[1])
      • Custom script: call RemoveLocation (udg_Loc[2])
      • Custom script: call DestroyGroup (udg_Group)
  • DummyAbility
    • Events
      • Unit - A unit Learns a skill
    • Conditions
      • (Learned Hero Skill) Equal to Focus
    • Actions
      • Unit - Add DummyAbility to (Triggering unit)
      • Unit - Set level of DummyAbility for (Triggering unit) to (Level of Focus for (Triggering unit))
  • Greater Heal
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Greater Heal
      • ((Target unit of ability being cast) is alive) Equal to True
    • Actions
      • Set Loc[1] = (Position of (Triggering unit))
      • Set Loc[2] = (Position of (Target unit of ability being cast))
      • Set Group = (Units within 800.00 of Loc[2] matching (((Matching unit) Not equal to (Target unit of ability being cast)) and ((((Matching unit) is alive) Equal to True) and (((Owner of (Matching unit)) is an ally of (Owner of (Target unit of ability being cast))) Equal to
      • Set GreaterHeal = ((75.00 + ((Real((Random integer number between 1 and 25))) + (3.00 x ((Real((Level of Greater Heal for (Triggering unit)))) + (Real((Intelligence of (Triggering unit) (Include bonuses)))))))) / 5.00)
      • Set CriticalStrikeCalculator = (Random integer number between 1 and 100)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Focus for (Triggering unit)) Greater than 0
        • Then - Actions
          • Set GreaterHeal = (GreaterHeal + (GreaterHeal x ((Real((Level of Focus for (Triggering unit)))) x 0.03)))
          • 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 (5 + (5 x (Level of Focus for (Triggering unit))))
            • Then - Actions
              • Unit - Set mana of (Triggering unit) to ((Mana of (Triggering unit)) + ((Max mana of (Triggering unit)) x (0.05 x (Real((Level of Focus for (Triggering unit)))))))
              • Special Effect - Create a special effect at Loc[1] using Abilities\Spells\Items\AIma\AImaTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • Floating Text - Create floating text that reads (String((Integer((((Mana of (Triggering unit)) x 0.05) x (Real((Level of Focus for (Triggering unit))))))))) above (Triggering unit) with Z offset 70.00, using font size 10.00, color (0.00%, 0.00%, 100.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
            • Else - Actions
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Owner of (Target unit of ability being cast)) is an ally of (Owner of (Triggering unit))) Equal to True
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CriticalStrikeCalculator Less than or equal to (15 + (1 x ((Intelligence of (Casting unit) (Include bonuses)) / 5)))
            • Then - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) + (GreaterHeal x 2.00))
              • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x 2.00))))) above (Target unit of ability being cast) with Z offset 0.00, using font size 15.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Picked unit) Equal to (Triggering unit)
                        • Then - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x ((0.15 x (Real((Level of Holy Excess for (Triggering unit))))) x 2.00)))
                          • Special Effect - Create a special effect at Loc[1] using Abilities\Spells\Human\Heal\HealTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.15 x ((Real((Level of Holy Excess for (Triggering unit)))) x 2.00))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                        • Else - Actions
                          • Set Loc[3] = (Position of (Picked unit))
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x ((0.10 x (Real((Level of Holy Excess for (Triggering unit))))) x 2.00)))
                          • Special Effect - Create a special effect at Loc[3] using Abilities\Spells\Human\Heal\HealTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.10 x ((Real((Level of Holy Excess for (Triggering unit)))) x 2.00))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                          • Custom script: call RemoveLocation (udg_Loc[3])
                • Else - Actions
            • Else - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) + GreaterHeal)
              • Floating Text - Create floating text that reads (String((Integer(GreaterHeal)))) above (Target unit of ability being cast) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Picked unit) Equal to (Triggering unit)
                        • Then - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x (0.15 x (Real((Level of Holy Excess for (Triggering unit)))))))
                          • Special Effect - Create a special effect at Loc[1] using Abilities\Spells\Human\Heal\HealTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.15 x (Real((Level of Holy Excess for (Triggering unit)))))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                        • Else - Actions
                          • Set Loc[3] = (Position of (Picked unit))
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))
                          • Special Effect - Create a special effect at Loc[3] using Abilities\Spells\Human\Heal\HealTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                          • Custom script: call RemoveLocation (udg_Loc[3])
                • Else - Actions
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CriticalStrikeCalculator Less than or equal to (15 + (1 x ((Intelligence of (Casting unit) (Include bonuses)) / 5)))
            • Then - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) - GreaterHeal)
              • Floating Text - Create floating text that reads (String((Integer(GreaterHeal)))) above (Target unit of ability being cast) with Z offset 0.00, using font size 15.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - (GreaterHeal x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))
                      • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
                      • Floating Text - Change (Last created floating text): Disable permanence
                      • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                • Else - Actions
            • Else - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) - (GreaterHeal / 2.00))
              • Floating Text - Create floating text that reads (String((Integer((GreaterHeal / 2.00))))) above (Target unit of ability being cast) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - ((GreaterHeal / 2.00) x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))
                      • Floating Text - Create floating text that reads (String((Integer(((GreaterHeal / 2.00) x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
                      • Floating Text - Change (Last created floating text): Disable permanence
                      • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                • Else - Actions
      • Custom script: call RemoveLocation (udg_Loc[1])
      • Custom script: call RemoveLocation (udg_Loc[2])
      • Custom script: call DestroyGroup (udg_Group)

  • Greater Heal
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Greater Heal
      • ((Target unit of ability being cast) is alive) Equal to True
    • Actions
      • Set Loc[1] = (Position of (Triggering unit))
      • Set Loc[2] = (Position of (Target unit of ability being cast))
      • Set Group = (Units within 800.00 of Loc[2] matching (((Matching unit) Not equal to (Target unit of ability being cast)) and ((((Matching unit) is alive) Equal to True) and (((Owner of (Matching unit)) is an ally of (Owner of (Target unit of ability being cast))) Equal to
      • Set GreaterHeal = ((75.00 + ((Real((Random integer number between 1 and 25))) + (3.00 x ((Real((Level of Greater Heal for (Triggering unit)))) + (Real((Intelligence of (Triggering unit) (Include bonuses)))))))) / 5.00)
      • Set CriticalStrikeCalculator = (Random integer number between 1 and 100)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Focus for (Triggering unit)) Greater than 0
        • Then - Actions
          • Set GreaterHeal = (GreaterHeal x ((Real((Level of Focus for (Triggering unit)))) x 1.03))
          • 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 (5 + (5 x (Level of Focus for (Triggering unit))))
            • Then - Actions
              • Unit - Set mana of (Triggering unit) to ((Mana of (Triggering unit)) + ((Max mana of (Triggering unit)) x (0.05 x (Real((Level of Focus for (Triggering unit)))))))
              • Special Effect - Create a special effect at Loc[1] using Abilities\Spells\Items\AIma\AImaTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • Floating Text - Create floating text that reads (String((Integer((((Mana of (Triggering unit)) x 0.05) x (Real((Level of Focus for (Triggering unit))))))))) above (Triggering unit) with Z offset 70.00, using font size 10.00, color (0.00%, 0.00%, 100.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
            • Else - Actions
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Owner of (Target unit of ability being cast)) is an ally of (Owner of (Triggering unit))) Equal to True
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CriticalStrikeCalculator Less than or equal to (15 + (1 x ((Intelligence of (Casting unit) (Include bonuses)) / 5)))
            • Then - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) + (GreaterHeal x 2.00))
              • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x 2.00))))) above (Target unit of ability being cast) with Z offset 0.00, using font size 15.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Picked unit) Equal to (Triggering unit)
                        • Then - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x ((0.15 x (Real((Level of Holy Excess for (Triggering unit))))) x 2.00)))
                          • Special Effect - Create a special effect at Loc[1] using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.15 x ((Real((Level of Holy Excess for (Triggering unit)))) x 2.00))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                        • Else - Actions
                          • Set Loc[3] = (Position of (Picked unit))
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x ((0.10 x (Real((Level of Holy Excess for (Triggering unit))))) x 2.00)))
                          • Special Effect - Create a special effect at Loc[3] using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.10 x ((Real((Level of Holy Excess for (Triggering unit)))) x 2.00))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                          • Custom script: call RemoveLocation (udg_Loc[3])
                • Else - Actions
            • Else - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) + GreaterHeal)
              • Floating Text - Create floating text that reads (String((Integer(GreaterHeal)))) above (Target unit of ability being cast) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Picked unit) Equal to (Triggering unit)
                        • Then - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x (0.15 x (Real((Level of Holy Excess for (Triggering unit)))))))
                          • Special Effect - Create a special effect at Loc[1] using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.15 x (Real((Level of Holy Excess for (Triggering unit)))))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                        • Else - Actions
                          • Set Loc[3] = (Position of (Picked unit))
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))
                          • Special Effect - Create a special effect at Loc[3] using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                          • Custom script: call RemoveLocation (udg_Loc[3])
                • Else - Actions
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CriticalStrikeCalculator Less than or equal to (15 + (1 x ((Intelligence of (Casting unit) (Include bonuses)) / 5)))
            • Then - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) - GreaterHeal)
              • Floating Text - Create floating text that reads (String((Integer(GreaterHeal)))) above (Target unit of ability being cast) with Z offset 0.00, using font size 15.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - (GreaterHeal x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))
                      • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
                      • Floating Text - Change (Last created floating text): Disable permanence
                      • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                • Else - Actions
            • Else - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) - (GreaterHeal / 2.00))
              • Floating Text - Create floating text that reads (String((Integer((GreaterHeal / 2.00))))) above (Target unit of ability being cast) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - ((GreaterHeal / 2.00) x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))
                      • Floating Text - Create floating text that reads (String((Integer(((GreaterHeal / 2.00) x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
                      • Floating Text - Change (Last created floating text): Disable permanence
                      • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                • Else - Actions
      • Custom script: call RemoveLocation (udg_Loc[1])
      • Custom script: call RemoveLocation (udg_Loc[2])
      • Custom script: call DestroyGroup (udg_Group)
  • Greater Heal
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Greater Heal
      • ((Target unit of ability being cast) is alive) Equal to True
    • Actions
      • Set Loc[1] = (Position of (Triggering unit))
      • Set Loc[2] = (Position of (Target unit of ability being cast))
      • Set Group = (Units within 800.00 of Loc[2] matching (((Matching unit) Not equal to (Target unit of ability being cast)) and ((((Matching unit) is alive) Equal to True) and ((Owner of (Matching unit)) Equal to (Owner of (Target unit of ability being cast))))))
      • Set GreaterHeal = ((75.00 + (Real((Random integer number between 1 and 25)))) + (3.00 x ((Real((Level of Greater Heal for (Triggering unit)))) + (Real((Intelligence of (Triggering unit) (Include bonuses)))))))
      • Set GreaterHeal = (GreaterHeal / 5.00)
      • Set CriticalStrikeCalculator = (Random integer number between 1 and 100)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Focus for (Triggering unit)) Greater than 0
        • Then - Actions
          • Set GreaterHeal = (GreaterHeal x ((Real((Level of Focus for (Triggering unit)))) x 1.03))
          • 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 (5 + (5 x (Level of Focus for (Triggering unit))))
            • Then - Actions
              • Unit - Set mana of (Triggering unit) to ((Mana of (Triggering unit)) + ((Max mana of (Triggering unit)) x (0.05 x (Real((Level of Focus for (Triggering unit)))))))
              • Special Effect - Create a special effect at Loc[1] using Abilities\Spells\Items\AIma\AImaTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • Floating Text - Create floating text that reads (String((Integer((((Mana of (Triggering unit)) x 0.05) x (Real((Level of Focus for (Triggering unit))))))))) above (Triggering unit) with Z offset 70.00, using font size 10.00, color (0.00%, 0.00%, 100.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
            • Else - Actions
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Target unit of ability being cast) is in (Units in (Playable map area) matching (((Matching unit) belongs to an ally of (Owner of (Triggering unit))) Equal to True))) Equal to True
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CriticalStrikeCalculator Less than or equal to (15 + (1 x ((Intelligence of (Casting unit) (Include bonuses)) / 5)))
            • Then - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) + (GreaterHeal x 2.00))
              • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x 2.00))))) above (Target unit of ability being cast) with Z offset 0.00, using font size 15.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Picked unit) Equal to (Triggering unit)
                        • Then - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x ((0.15 x (Real((Level of Holy Excess for (Triggering unit))))) x 2.00)))
                          • Special Effect - Create a special effect at Loc[1] using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.15 x ((Real((Level of Holy Excess for (Triggering unit)))) x 2.00))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                        • Else - Actions
                          • Set Loc[3] = (Position of (Picked unit))
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x ((0.10 x (Real((Level of Holy Excess for (Triggering unit))))) x 2.00)))
                          • Special Effect - Create a special effect at Loc[3] using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.10 x ((Real((Level of Holy Excess for (Triggering unit)))) x 2.00))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                          • Custom script: call RemoveLocation (udg_Loc[3])
                  • Custom script: call DestroyGroup (udg_Group)
                • Else - Actions
            • Else - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) + GreaterHeal)
              • Floating Text - Create floating text that reads (String((Integer(GreaterHeal)))) above (Target unit of ability being cast) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Picked unit) Equal to (Triggering unit)
                        • Then - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x (0.15 x (Real((Level of Holy Excess for (Triggering unit)))))))
                          • Special Effect - Create a special effect at Loc[1] using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.15 x (Real((Level of Holy Excess for (Triggering unit)))))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                        • Else - Actions
                          • Set Loc[3] = (Position of (Picked unit))
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))
                          • Special Effect - Create a special effect at Loc[3] using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                          • Custom script: call RemoveLocation (udg_Loc[3])
                  • Custom script: call DestroyGroup (udg_Group)
                • Else - Actions
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CriticalStrikeCalculator Less than or equal to (15 + (1 x ((Intelligence of (Casting unit) (Include bonuses)) / 5)))
            • Then - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) - GreaterHeal)
              • Floating Text - Create floating text that reads (String((Integer(GreaterHeal)))) above (Target unit of ability being cast) with Z offset 0.00, using font size 15.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • Unit - Set life of (Triggering unit) to ((Life of (Picked unit)) - (GreaterHeal x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))
                      • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
                      • Floating Text - Change (Last created floating text): Disable permanence
                      • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                  • Custom script: call DestroyGroup (udg_Group)
                • Else - Actions
            • Else - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) - (GreaterHeal / 2.00))
              • Floating Text - Create floating text that reads (String((Integer((GreaterHeal / 2.00))))) above (Target unit of ability being cast) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - ((GreaterHeal / 2.00) x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))
                      • Floating Text - Create floating text that reads (String((Integer(((GreaterHeal / 2.00) x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
                      • Floating Text - Change (Last created floating text): Disable permanence
                      • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                  • Custom script: call DestroyGroup (udg_Group)
                • Else - Actions
      • Custom script: call RemoveLocation (udg_Loc[1])
      • Custom script: call RemoveLocation (udg_Loc[2])
  • Greater Heal
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Greater Heal
      • ((Target unit of ability being cast) is alive) Equal to True
    • Actions
      • Set Loc[1] = (Position of (Triggering unit))
      • Set Loc[2] = (Position of (Target unit of ability being cast))
      • Set Group = (Units within 800.00 of Loc[2] matching (((Matching unit) Not equal to (Target unit of ability being cast)) and ((((Matching unit) is alive) Equal to True) and ((Owner of (Matching unit)) Equal to (Owner of (Target unit of ability being cast))))))
      • Set GreaterHeal = ((75.00 + (Real((Random integer number between 1 and 25)))) + (3.00 x ((Real((Level of Greater Heal for (Triggering unit)))) + (Real((Intelligence of (Triggering unit) (Include bonuses)))))))
      • Set GreaterHeal = (GreaterHeal / 5.00)
      • Set CriticalStrikeCalculator = (Random integer number between 1 and 100)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Focus for (Triggering unit)) Greater than 0
        • Then - Actions
          • Set GreaterHeal = (GreaterHeal x ((Real((Level of Focus for (Triggering unit)))) x 1.03))
          • 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 (5 + (5 x (Level of Focus for (Triggering unit))))
            • Then - Actions
              • Unit - Set mana of (Triggering unit) to ((Mana of (Triggering unit)) + ((Max mana of (Triggering unit)) x (0.05 x (Real((Level of Focus for (Triggering unit)))))))
              • Special Effect - Create a special effect at Loc[1] using Abilities\Spells\Items\AIma\AImaTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • Floating Text - Create floating text that reads (String((Integer((((Mana of (Triggering unit)) x 0.05) x (Real((Level of Focus for (Triggering unit))))))))) above (Triggering unit) with Z offset 70.00, using font size 10.00, color (0.00%, 0.00%, 100.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
            • Else - Actions
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Target unit of ability being cast) is in (Units in (Playable map area) matching (((Matching unit) belongs to an ally of (Owner of (Triggering unit))) Equal to True))) Equal to True
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CriticalStrikeCalculator Less than or equal to (15 + (1 x ((Intelligence of (Casting unit) (Include bonuses)) / 5)))
            • Then - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) + (GreaterHeal x 2.00))
              • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x 2.00))))) above (Target unit of ability being cast) with Z offset 0.00, using font size 15.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Picked unit) Equal to (Triggering unit)
                        • Then - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x ((0.15 x (Real((Level of Holy Excess for (Triggering unit))))) x 2.00)))
                          • Special Effect - Create a special effect at Loc[1] using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.15 x ((Real((Level of Holy Excess for (Triggering unit)))) x 2.00))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                        • Else - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x ((0.10 x (Real((Level of Holy Excess for (Triggering unit))))) x 2.00)))
                          • Special Effect - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.10 x ((Real((Level of Holy Excess for (Triggering unit)))) x 2.00))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                  • Custom script: call DestroyGroup (udg_Group)
                • Else - Actions
            • Else - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) + GreaterHeal)
              • Floating Text - Create floating text that reads (String((Integer(GreaterHeal)))) above (Target unit of ability being cast) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Picked unit) Equal to (Triggering unit)
                        • Then - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x (0.15 x (Real((Level of Holy Excess for (Triggering unit)))))))
                          • Special Effect - Create a special effect at Loc[1] using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.15 x (Real((Level of Holy Excess for (Triggering unit)))))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                        • Else - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))
                          • Special Effect - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                  • Custom script: call DestroyGroup (udg_Group)
                • Else - Actions
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CriticalStrikeCalculator Less than or equal to (15 + (1 x ((Intelligence of (Casting unit) (Include bonuses)) / 5)))
            • Then - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) - GreaterHeal)
              • Floating Text - Create floating text that reads (String((Integer(GreaterHeal)))) above (Target unit of ability being cast) with Z offset 0.00, using font size 15.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • Unit - Set life of (Triggering unit) to ((Life of (Picked unit)) - (GreaterHeal x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))
                      • Floating Text - Create floating text that reads (String((Integer((GreaterHeal x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
                      • Floating Text - Change (Last created floating text): Disable permanence
                      • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                  • Custom script: call DestroyGroup (udg_Group)
                • Else - Actions
            • Else - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) - (GreaterHeal / 2.00))
              • Floating Text - Create floating text that reads (String((Integer((GreaterHeal / 2.00))))) above (Target unit of ability being cast) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - ((GreaterHeal / 2.00) x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))
                      • Floating Text - Create floating text that reads (String((Integer(((GreaterHeal / 2.00) x (0.10 x (Real((Level of Holy Excess for (Triggering unit)))))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
                      • Floating Text - Change (Last created floating text): Disable permanence
                      • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                  • Custom script: call DestroyGroup (udg_Group)
                • Else - Actions
      • Custom script: call RemoveLocation (udg_Loc[1])
      • Custom script: call RemoveLocation (udg_Loc[2])
  • Greater Heal
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Greater Heal
      • ((Target unit of ability being cast) is alive) Equal to True
    • Actions
      • Set Loc[1] = (Position of (Triggering unit))
      • Set Loc[2] = (Position of (Target unit of ability being cast))
      • Set Group = (Units within 800.00 of Loc[2] matching (((Matching unit) Not equal to (Target unit of ability being cast)) and ((((Matching unit) is alive) Equal to True) and ((Owner of (Matching unit)) Equal to (Owner of (Target unit of ability being cast))))))
      • Set GreaterHeal = ((300.00 + (Real((Random integer number between 1 and 50)))) + (15.00 x ((Real((Level of Greater Heal for (Triggering unit)))) + (Real((Intelligence of (Triggering unit) (Include bonuses)))))))
      • Set CriticalStrikeCalculator = (Random integer number between 1 and 100)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Focus for (Triggering unit)) Greater than 0
        • Then - Actions
          • Set GreaterHeal = (GreaterHeal x ((Real((Level of Focus for (Triggering unit)))) x 1.05))
          • 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 (5 + (5 x (Level of Focus for (Triggering unit))))
            • Then - Actions
              • Unit - Set mana of (Triggering unit) to ((Mana of (Triggering unit)) + ((Max mana of (Triggering unit)) x (0.05 x (Real((Level of Focus for (Triggering unit)))))))
              • Special Effect - Create a special effect at Loc[1] using Abilities\Spells\Items\AIma\AImaTarget.mdl
              • Special Effect - Destroy (Last created special effect)
              • Floating Text - Create floating text that reads (String(((Max mana of (Triggering unit)) x (0.05 x (Real((Level of Focus for (Triggering unit)))))))) above (Triggering unit) with Z offset 70.00, using font size 10.00, color (0.00%, 0.00%, 100.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
            • Else - Actions
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Target unit of ability being cast) is in (Units in (Playable map area) matching (((Matching unit) belongs to an ally of (Owner of (Triggering unit))) Equal to True))) Equal to True
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CriticalStrikeCalculator Less than or equal to (15 + (1 x ((Intelligence of (Casting unit) (Include bonuses)) / 5)))
            • Then - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) + (GreaterHeal x 2.00))
              • Floating Text - Create floating text that reads (String((GreaterHeal x 2.00))) above (Target unit of ability being cast) with Z offset 0.00, using font size 15.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Picked unit) Equal to (Triggering unit)
                        • Then - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x ((0.40 x (Real((Level of Holy Excess for (Triggering unit))))) x 2.00)))
                          • Special Effect - Create a special effect at Loc[1] using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String(((GreaterHeal x (0.40 x (Real((Level of Holy Excess for (Triggering unit)))))) x 2.00))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                        • Else - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x ((0.20 x (Real((Level of Holy Excess for (Triggering unit))))) x 2.00)))
                          • Special Effect - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String(((GreaterHeal x (0.20 x (Real((Level of Holy Excess for (Triggering unit)))))) x 2.00))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                  • Custom script: call DestroyGroup (udg_Group)
                • Else - Actions
            • Else - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) + GreaterHeal)
              • Floating Text - Create floating text that reads (String(GreaterHeal)) above (Target unit of ability being cast) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Picked unit) Equal to (Triggering unit)
                        • Then - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x (0.40 x (Real((Level of Holy Excess for (Triggering unit)))))))
                          • Special Effect - Create a special effect at Loc[1] using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((GreaterHeal x (0.40 x (Real((Level of Holy Excess for (Triggering unit)))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                        • Else - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x (0.20 x (Real((Level of Holy Excess for (Triggering unit)))))))
                          • Special Effect - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Floating Text - Create floating text that reads (String((GreaterHeal x (0.20 x (Real((Level of Holy Excess for (Triggering unit)))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                  • Custom script: call DestroyGroup (udg_Group)
                • Else - Actions
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CriticalStrikeCalculator Less than or equal to (15 + (1 x ((Intelligence of (Casting unit) (Include bonuses)) / 5)))
            • Then - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) - (GreaterHeal / 3.00))
              • Floating Text - Create floating text that reads (String((GreaterHeal / 3.00))) above (Target unit of ability being cast) with Z offset 0.00, using font size 15.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • Unit - Set life of (Triggering unit) to ((Life of (Picked unit)) - ((GreaterHeal / 3.00) x (0.20 x (Real((Level of Holy Excess for (Triggering unit)))))))
                      • Floating Text - Create floating text that reads (String(((GreaterHeal / 3.00) x (0.20 x (Real((Level of Holy Excess for (Triggering unit)))))))) above (Picked unit) with Z offset 0.00, using font size 7.50, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
                      • Floating Text - Change (Last created floating text): Disable permanence
                      • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                  • Custom script: call DestroyGroup (udg_Group)
                • Else - Actions
            • Else - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) - (GreaterHeal / 6.00))
              • Floating Text - Create floating text that reads (String((GreaterHeal / 6.00))) above (Target unit of ability being cast) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Triggering unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in Group and do (Actions)
                    • Loop - Actions
                      • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - ((GreaterHeal / 6.00) x (0.20 x (Real((Level of Holy Excess for (Triggering unit)))))))
                      • Floating Text - Create floating text that reads (String(((GreaterHeal / 6.00) x (0.20 x (Real((Level of Holy Excess for (Triggering unit)))))))) above (Picked unit) with Z offset 0.00, using font size 5.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
                      • Floating Text - Change (Last created floating text): Disable permanence
                      • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                  • Custom script: call DestroyGroup (udg_Group)
                • Else - Actions
      • Custom script: call RemoveLocation (udg_Loc[1])
      • Custom script: call RemoveLocation (udg_Loc[2])
  • Greater Heal
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Greater Heal
    • Actions
      • Set GreaterHeal = ((300.00 + (Real((Random integer number between 1 and 50)))) + (15.00 x ((Real((Level of Greater Heal for (Casting unit)))) + (Real((Intelligence of (Casting unit) (Include bonuses)))))))
      • Set CriticalStrikeCalculator = (Random integer number between 1 and 100)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Focus for (Casting unit)) Greater than 0
        • Then - Actions
          • Set GreaterHeal = (GreaterHeal x ((Real((Level of Focus for (Triggering unit)))) x 1.05))
          • 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 (5 + (5 x (Level of Focus for (Casting unit))))
            • Then - Actions
              • Unit - Set mana of (Casting unit) to ((Mana of (Casting unit)) + ((Max mana of (Casting unit)) x (0.05 x (Real((Level of Focus for (Casting unit)))))))
              • Special Effect - Create a special effect at (Position of (Casting unit)) using Abilities\Spells\Items\AIma\AImaTarget.mdl
              • Floating Text - Create floating text that reads (String(((Max mana of (Casting unit)) x (0.05 x (Real((Level of Focus for (Casting unit)))))))) above (Casting unit) with Z offset 70.00, using font size 10.00, color (0.00%, 0.00%, 100.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
            • Else - Actions
              • Do nothing
        • Else - Actions
          • Do nothing
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Target unit of ability being cast) is in (Units in (Playable map area) matching (((Target unit of ability being cast) belongs to an ally of (Owner of (Casting unit))) Equal to True))) Equal to True
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CriticalStrikeCalculator Less than or equal to (15 + (1 x ((Intelligence of (Casting unit) (Include bonuses)) / 5)))
            • Then - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) + (GreaterHeal x 2.00))
              • Floating Text - Create floating text that reads (String((GreaterHeal x 2.00))) above (Target unit of ability being cast) with Z offset 0.00, using font size 15.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Casting unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in (Units within 800.00 of (Position of (Target unit of ability being cast)) matching (((Matching unit) Not equal to (Target unit of ability being cast)) and (((Owner of (Matching unit)) is an ally of (Owner of (Casting unit))) Equal to True))) and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Picked unit) Equal to (Casting unit)
                        • Then - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x ((0.40 x (Real((Level of Holy Excess for (Casting unit))))) x 2.00)))
                          • Special Effect - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl
                          • Floating Text - Create floating text that reads (String(((GreaterHeal x (0.40 x (Real((Level of Holy Excess for (Casting unit)))))) x 2.00))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                        • Else - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x ((0.20 x (Real((Level of Holy Excess for (Casting unit))))) x 2.00)))
                          • Special Effect - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl
                          • Floating Text - Create floating text that reads (String(((GreaterHeal x (0.20 x (Real((Level of Holy Excess for (Casting unit)))))) x 2.00))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                • Else - Actions
                  • Do nothing
            • Else - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) + GreaterHeal)
              • Floating Text - Create floating text that reads (String(GreaterHeal)) above (Target unit of ability being cast) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Casting unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in (Units within 800.00 of (Position of (Target unit of ability being cast)) matching (((Matching unit) Not equal to (Target unit of ability being cast)) and (((Owner of (Matching unit)) is an ally of (Owner of (Casting unit))) Equal to True))) and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Picked unit) Equal to (Casting unit)
                        • Then - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x (0.40 x (Real((Level of Holy Excess for (Casting unit)))))))
                          • Special Effect - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl
                          • Floating Text - Create floating text that reads (String((GreaterHeal x (0.40 x (Real((Level of Holy Excess for (Casting unit)))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                        • Else - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (GreaterHeal x (0.20 x (Real((Level of Holy Excess for (Casting unit)))))))
                          • Special Effect - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\Orc\HealingWave\HealingWaveTarget.mdl
                          • Floating Text - Create floating text that reads (String((GreaterHeal x (0.20 x (Real((Level of Holy Excess for (Casting unit)))))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (0.00%, 100.00%, 0.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                • Else - Actions
                  • Do nothing
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CriticalStrikeCalculator Less than or equal to (15 + (1 x ((Intelligence of (Casting unit) (Include bonuses)) / 5)))
            • Then - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) - (GreaterHeal / 3.00))
              • Floating Text - Create floating text that reads (String((GreaterHeal / 3.00))) above (Target unit of ability being cast) with Z offset 0.00, using font size 15.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Casting unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in (Units within 300.00 of (Position of (Target unit of ability being cast)) matching (((Owner of (Matching unit)) is an ally of (Owner of (Target unit of ability being cast))) Equal to True)) and do (Actions)
                    • Loop - Actions
                      • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - ((GreaterHeal / 3.00) x (0.20 x (Real((Level of Holy Excess for (Casting unit)))))))
                      • Floating Text - Create floating text that reads (String(((GreaterHeal / 3.00) x (0.20 x (Real((Level of Holy Excess for (Casting unit)))))))) above (Picked unit) with Z offset 0.00, using font size 7.50, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
                      • Floating Text - Change (Last created floating text): Disable permanence
                      • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                • Else - Actions
                  • Do nothing
            • Else - Actions
              • Unit - Set life of (Target unit of ability being cast) to ((Life of (Target unit of ability being cast)) - (GreaterHeal / 6.00))
              • Floating Text - Create floating text that reads (String((GreaterHeal / 6.00))) above (Target unit of ability being cast) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of Holy Excess for (Casting unit)) Greater than or equal to 1
                • Then - Actions
                  • Unit Group - Pick every unit in (Units within 300.00 of (Position of (Target unit of ability being cast)) matching (((Owner of (Matching unit)) is an ally of (Owner of (Target unit of ability being cast))) Equal to True)) and do (Actions)
                    • Loop - Actions
                      • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - ((GreaterHeal / 6.00) x (0.20 x (Real((Level of Holy Excess for (Casting unit)))))))
                      • Floating Text - Create floating text that reads (String(((GreaterHeal / 6.00) x (0.20 x (Real((Level of Holy Excess for (Casting unit)))))))) above (Picked unit) with Z offset 0.00, using font size 5.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
                      • Floating Text - Change (Last created floating text): Disable permanence
                      • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                • Else - Actions
                  • Do nothing
*In the future I am planning on turning Holy Excess into an activated ability, draining mana per second or increasing the mana cost of Greater Heal.


And please, I know this spell is far from perfect and its my first uploaded spell, so please don't hesitate to comment.

Keywords:
Heal, Holy, AoE, Area, Effect, Light, Healing, Omglolwutwtfpewpew, Blight, Scourge, Lethien
Contents

Just another Warcraft III map (Map)

Reviews
16:35, 24th Jul 2010 TriggerHappy: You cleaned the leaks and it works fine.

Moderator

M

Moderator

16:35, 24th Jul 2010
TriggerHappy:

You cleaned the leaks and it works fine.
 
Level 11
Joined
Jan 25, 2009
Messages
572
The spell will be more flexible if you use
  • (Triggering unit)
Instead of
  • (Casting unit)
Because the triggering unit is the same as the casting unit. (The triggering unit is the one that triggers off the whole trigger (casting unit)).

So for mor flexibility of you'r spell, change all casting unit to triggering unit because then the World Editor picks the triggering unit right away instead of "searching" for the casting unit and if there's no triggering unit the function will return NULL.

You leak this one below because you dont destroy the Special effect.
  • Special Effect - Create a special effect at (Position of (Casting unit)) using Abilities\Spells\Items\AIma\AImaTarget.mdl
The most special effects should be destroyed right after it has been created (the effect will still occur). Put this following right after the action above
  • Special Effect - Destroy (Last created special effect)

Also in the
  • Special Effect - Create a special effect at (Position of (Casting unit)) using Abilities\Spells\Items\AIma\AImaTarget.mdl
you leak a location.
Create a Variable called like "Loc" with array 1 and have it as a point variable and do this below
  • Set Loc[1] = (Position of (Triggering unit))
  • Special Effect - Create a special effect at Loc[1] using Abilities\Spells\Items\AIma\AImaTarget.mdl
  • Custom script: call RemoveLocation (udg_Loc[1])
Also you should remove all the actions
  • Do nothing
because if you remove it, the trigger will not do anything in all cases. The action Do nothing just makes the trigger bigger and that makes the spell a little slower.

Here in the condition below
  • ((Target unit of ability being cast) is in (Units in (Playable map area) matching (((Target unit of ability being cast) belongs to an ally of (Owner of (Casting unit))) Equal to True))) Equal to True
You must change Target unit of ability being cast to Matching Unit and also the Casting unit to Triggering unit as i said. Makes also the spell more flexible.

You leak a unit group and a location here below
  • Unit Group - Pick every unit in (Units within 800.00 of (Position of (Target unit of ability being cast)) matching (((Matching unit) Not equal to (Target unit of ability being cast)) and (((Owner of (Matching unit)) is an ally of (Owner of (Casting unit))) Equal to True))) and do (Actions)
You should do this below (Create a variable called like "Group" and set it to Unit Group)
  • Set Loc[2] = (Position of (Target unit of ability being cast))
  • Set Group = (Units within 800.00 of Loc[2] matching ((Matching unit) Not equal to (Target unit of ability being cast))) /// and load in with more of the conditions you want
  • Unit Group - Pick every unit in Group and do (Actions)
    • Loop - Actions
      • Load in with Actions here
  • Custom script: call DestroyGroup (udg_Group) /// Do this after the Unit group action.
  • Custom script: call RemoveLocation (udg_Loc[2]) /// Destroys the leak.
Also you do the same misstake TWICE a bit below that Unit Group Leak

Well that was all. This spell is not going to be approven because of all the leaks and stuffs. Well good calculating. You must learn some more about how to avoid leaks. Well here is the best place. Go to Tutorials and search there for a way to learn how to avoid this.
 
Level 3
Joined
Mar 18, 2010
Messages
24
The spell will be more flexible if you use
  • (Triggering unit)
Instead of
  • (Casting unit)
Because the triggering unit is the same as the casting unit. (The triggering unit is the one that triggers off the whole trigger (casting unit)).

So for mor flexibility of you'r spell, change all casting unit to triggering unit because then the World Editor picks the triggering unit right away instead of "searching" for the casting unit and if there's no triggering unit the function will return NULL.

You leak this one below because you dont destroy the Special effect.
  • Special Effect - Create a special effect at (Position of (Casting unit)) using Abilities\Spells\Items\AIma\AImaTarget.mdl
The most special effects should be destroyed right after it has been created (the effect will still occur). Put this following right after the action above
  • Special Effect - Destroy (Last created special effect)

Also in the
  • Special Effect - Create a special effect at (Position of (Casting unit)) using Abilities\Spells\Items\AIma\AImaTarget.mdl
you leak a location.
Create a Variable called like "Loc" with array 1 and have it as a point variable and do this below
  • Set Loc[1] = (Position of (Triggering unit))
  • Special Effect - Create a special effect at Loc[1] using Abilities\Spells\Items\AIma\AImaTarget.mdl
  • Custom script: call RemoveLocation (udg_Loc[1])
Also you should remove all the actions
  • Do nothing
because if you remove it, the trigger will not do anything in all cases. The action Do nothing just makes the trigger bigger and that makes the spell a little slower.

Here in the condition below
  • ((Target unit of ability being cast) is in (Units in (Playable map area) matching (((Target unit of ability being cast) belongs to an ally of (Owner of (Casting unit))) Equal to True))) Equal to True
You must change Target unit of ability being cast to Matching Unit and also the Casting unit to Triggering unit as i said. Makes also the spell more flexible.

You leak a unit group and a location here below
  • Unit Group - Pick every unit in (Units within 800.00 of (Position of (Target unit of ability being cast)) matching (((Matching unit) Not equal to (Target unit of ability being cast)) and (((Owner of (Matching unit)) is an ally of (Owner of (Casting unit))) Equal to True))) and do (Actions)
You should do this below (Create a variable called like "Group" and set it to Unit Group)
  • Set Loc[2] = (Position of (Target unit of ability being cast))
  • Set Group = (Units within 800.00 of Loc[2] matching ((Matching unit) Not equal to (Target unit of ability being cast))) /// and load in with more of the conditions you want
  • Unit Group - Pick every unit in Group and do (Actions)
    • Loop - Actions
      • Load in with Actions here
  • Custom script: call DestroyGroup (udg_Group) /// Do this after the Unit group action.
  • Custom script: call RemoveLocation (udg_Loc[2]) /// Destroys the leak.
Also you do the same misstake TWICE a bit below that Unit Group Leak

Well that was all. This spell is not going to be approven because of all the leaks and stuffs. Well good calculating. You must learn some more about how to avoid leaks. Well here is the best place. Go to Tutorials and search there for a way to learn how to avoid this.

thx was kinda hoping for suggestions
 
Level 11
Joined
Jan 25, 2009
Messages
572
Hehe guys! I've told him everything now xD Watch the first post xD

EDIT: Change the things i told you and then you give me a PM and i'll make a new review. Dont forget to set the spell name to "Greater Heal 1.1 (GUI)" after that so ppls can see that you've changed the spell =)
 
Last edited:
Level 3
Joined
Mar 18, 2010
Messages
24
Have been on holiday, will upload v1.1 within a week.

If - Conditions
(Level of Focus for (Casting unit)) Greater than 0

Focus is not the spell that's being cast, its a modifier for the spell that's beeing cast.

Edit:... Kk, all was fixed, until my world editor crashed when using Edit>Find.

-.-

Edit 2: Update. v1.1 is now uploaded, thanks for your help so far.

Edit 3: Update. v1.2 is uploaded, the spell will now fit in a 'normal' warcraft 3 (melee) map. Don't hesitate to comment. Allso, .2 was a crapload of work because I kept doing everything wrong:).

Edit 4: Update. v1.3 is uploaded, it was not a major update but I fixed a leak of which I knew it was there but I was unable to fix it before. Thanks Tjordell, anyway, hope its leak free now.
_______________________________________
wait for 1.3b before downloading, found a bug where u nearly die when using the spell on the abomination. can't find the problem :/
_______________________________________
Edit 5: Opdate. v1.3b is now uploaded. Removed a set variable action.
Replaced a really stupid bug where ur hero would lose a huge amount of health when having an offensive critical strike.

Edit 6: Update. v1.3c is uploaded. There was a bug in the Focus ability, which increased the amount healed by an additional 100% per level, but this has been changed and now works properly.

Edit 7: (Final?) Update. v1.4 is now uploaded. I fixed the tooltips of all abilities, decreased the range of Greater Heal and Holy Excess and added a dummy ability to show the tooltip of Focus. Also fixed the percentage of mana regained if Focus procs. All abilities are now also keybinded accordingly. Also fixed my horrible spelling from 2 years ago.
 
Last edited:
Top