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

Simple Yet Awesome Spellpack v1.1 by BetaGod

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
  • Like
Reactions: Ender
THE SIMPLEYETAWESOME SPELLPACK

By BetaGod

Yup! I was VERY bored this weekend and i am also learning to do some spells in GUI. PLEASE keep in mind that i am a complete n00b and i alredy know my coding sucks. I will really appreciate if you could help me out by pointing leak spots, concepts reinforcements and other kinds of helps that could come handly. Cheers and enjoy!


THE SPELLS

421141_10150631461804143_629724142_9293324_1081752883_n.jpg

Summons a fiery orb above the hero, wich remains in that spot throwing up fire bolts at neabry ranges. When the orb finally ends it's effects, it consumes itself creating powerfull ignitions all over the area of effect.

Level 1 - 50 Fire bolt damage and 75 Ignition Damage in a 225 AoE.
Level 2 - 100 Fire bolt damage and 150 Ignition Damage in a 450 AoE.
Level 3 - 150 Fire bolt damage and 225 Ignition Damage in a 675 AoE.
  • Vulcanization Start
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Vulcanization
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • V_Skip Equal to 0
        • Then - Actions
          • Trigger - Turn on Vulcanization Loop <gen>
        • Else - Actions
      • Set V_Skip = (V_Skip + 1)
      • Set V_Times = (V_Times + 1)
      • Set V_Off[V_Times] = True
      • Set V_Caster[V_Times] = (Triggering unit)
      • Set V_Location[V_Times] = (Position of V_Caster[V_Times])
      • Set V_AbilityLevel[V_Times] = (Level of Vulcanization for V_Caster[V_Times])
      • Set V_DummyAbility[V_Times] = Fire Missile Dummy
      • Set V_IntervalTimer[V_Times] = 0.00
      • Set V_Player[V_Times] = (Owner of V_Caster[V_Times])
      • -------- ---------------------------------------------------------------- --------
      • -------- Set the blast count --------
      • -------- ---------------------------------------------------------------- --------
      • Set V_EruptionCount[V_Times] = 5
      • -------- ---------------------------------------------------------------- --------
      • -------- Configurate spell AoE --------
      • -------- ---------------------------------------------------------------- --------
      • Set V_Aoe[V_Times] = ((Real(V_AbilityLevel[V_Times])) x 225.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- Configurate spell's Ignition damage --------
      • -------- ---------------------------------------------------------------- --------
      • Set V_IgnitionDamage[V_Times] = ((Real(V_AbilityLevel[V_Times])) x 75.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- Configurate the speciall effect that appears on the cast location --------
      • -------- ---------------------------------------------------------------- --------
      • Set V_OrbSFX = Abilities\Spells\Other\ImmolationRed\ImmolationRedTarget.mdl
      • -------- ---------------------------------------------------------------- --------
      • -------- Configurate the special effect that appears when ignition is triggered --------
      • -------- ---------------------------------------------------------------- --------
      • Set V_IgnitionSFX = Abilities\Spells\Other\Incinerate\FireLordDeathExplode.mdl
      • -------- ---------------------------------------------------------------- --------
      • -------- Almost done --------
      • -------- ---------------------------------------------------------------- --------
      • Special Effect - Create a special effect at V_Location[V_Times] using V_OrbSFX
      • Set V_Orb[V_Times] = (Last created special effect)
  • Vulcanization Loop
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • For each (Integer V) from 1 to V_Times, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • V_Off[V] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • V_EruptionCount[V] Less than or equal to 0
                • Then - Actions
                  • Custom script: call RemoveLocation(udg_V_TargetLocation[udg_V])
                  • Special Effect - Destroy V_Orb[V]
                  • Set V_Skip = (V_Skip - 1)
                  • Set V_Off[V] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • V_Skip Equal to 0
                    • Then - Actions
                      • Set V_Times = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • V_EruptionCount[V] Greater than 0
                  • V_IntervalTimer[V] Greater than or equal to 0.60
                • Then - Actions
                  • Set V_IntervalTimer[V] = 0.00
                  • Set V_EruptionCount[V] = (V_EruptionCount[V] - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • V_EruptionCount[V] Equal to 5
                    • Then - Actions
                      • For each (Integer A) from 1 to 4, do (Actions)
                        • Loop - Actions
                          • Set V_TargetLocation[V] = (V_Location[V] offset by (V_Aoe[V] / 4.00) towards ((Real((Integer A))) x 90.00) degrees)
                          • Unit - Create 1 Dummy for V_Player[V] at V_Location[V] facing Default building facing degrees
                          • Set V_Dummy[V] = (Last created unit)
                          • Unit - Add a 1.50 second Generic expiration timer to V_Dummy[V]
                          • Unit - Add V_DummyAbility[V] to V_Dummy[V]
                          • Unit - Set level of V_DummyAbility[V] for V_Dummy[V] to V_AbilityLevel[V]
                          • Unit - Order V_Dummy[V] to Neutral Tinker - Cluster Rockets V_TargetLocation[V]
                          • Custom script: call RemoveLocation(udg_V_TargetLocation[udg_V])
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • V_EruptionCount[V] Equal to 4
                        • Then - Actions
                          • For each (Integer A) from 1 to 6, do (Actions)
                            • Loop - Actions
                              • Set V_TargetLocation[V] = (V_Location[V] offset by (V_Aoe[V] / 3.00) towards ((Real((Integer A))) x 60.00) degrees)
                              • Unit - Create 1 Dummy for V_Player[V] at V_Location[V] facing Default building facing degrees
                              • Set V_Dummy[V] = (Last created unit)
                              • Unit - Add a 1.50 second Generic expiration timer to V_Dummy[V]
                              • Unit - Add V_DummyAbility[V] to V_Dummy[V]
                              • Unit - Set level of V_DummyAbility[V] for V_Dummy[V] to V_AbilityLevel[V]
                              • Unit - Order V_Dummy[V] to Neutral Tinker - Cluster Rockets V_TargetLocation[V]
                              • Custom script: call RemoveLocation(udg_V_TargetLocation[udg_V])
                        • Else - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • V_EruptionCount[V] Equal to 3
                            • Then - Actions
                              • For each (Integer A) from 1 to 8, do (Actions)
                                • Loop - Actions
                                  • Set V_TargetLocation[V] = (V_Location[V] offset by (V_Aoe[V] / 2.00) towards ((Real((Integer A))) x 45.00) degrees)
                                  • Unit - Create 1 Dummy for V_Player[V] at V_Location[V] facing Default building facing degrees
                                  • Set V_Dummy[V] = (Last created unit)
                                  • Unit - Add a 1.50 second Generic expiration timer to V_Dummy[V]
                                  • Unit - Add V_DummyAbility[V] to V_Dummy[V]
                                  • Unit - Set level of V_DummyAbility[V] for V_Dummy[V] to V_AbilityLevel[V]
                                  • Unit - Order V_Dummy[V] to Neutral Tinker - Cluster Rockets V_TargetLocation[V]
                                  • Custom script: call RemoveLocation(udg_V_TargetLocation[udg_V])
                            • Else - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • V_EruptionCount[V] Equal to 2
                                • Then - Actions
                                  • For each (Integer A) from 1 to 10, do (Actions)
                                    • Loop - Actions
                                      • Set V_TargetLocation[V] = (V_Location[V] offset by (V_Aoe[V] / 1.00) towards ((Real((Integer A))) x 36.00) degrees)
                                      • Unit - Create 1 Dummy for V_Player[V] at V_Location[V] facing Default building facing degrees
                                      • Set V_Dummy[V] = (Last created unit)
                                      • Unit - Add a 1.50 second Generic expiration timer to V_Dummy[V]
                                      • Unit - Add V_DummyAbility[V] to V_Dummy[V]
                                      • Unit - Set level of V_DummyAbility[V] for V_Dummy[V] to V_AbilityLevel[V]
                                      • Unit - Order V_Dummy[V] to Neutral Tinker - Cluster Rockets V_TargetLocation[V]
                                      • Custom script: call RemoveLocation(udg_V_TargetLocation[udg_V])
                                • Else - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • V_EruptionCount[V] Equal to 1
                                    • Then - Actions
                                      • For each (Integer A) from 1 to 12, do (Actions)
                                        • Loop - Actions
                                          • Set V_TargetLocation[V] = (V_Location[V] offset by (V_Aoe[V] / 4.00) towards ((Real((Integer A))) x 30.00) degrees)
                                          • Special Effect - Create a special effect at V_TargetLocation[V] using V_IgnitionSFX
                                          • Set V_Ignition[V] = (Last created special effect)
                                          • Custom script: set bj_wantDestroyGroup = true
                                          • Unit Group - Pick every unit in (Units within 100.00 of V_TargetLocation[V] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is dead) Equal to False)) and (((Matching unit) belongs to an enemy of V_Player[V]) Equal to True))) and do (Actions)
                                            • Loop - Actions
                                              • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Weapons\FireBallMissile\FireBallMissile.mdl
                                              • Special Effect - Destroy (Last created special effect)
                                              • Unit - Cause V_Caster[V] to damage (Picked unit), dealing V_IgnitionDamage[V] damage of attack type Spells and damage type Normal
                                          • Special Effect - Destroy V_Ignition[V]
                                          • Custom script: call RemoveLocation(udg_V_TargetLocation[udg_V])
                                      • For each (Integer A) from 1 to 12, do (Actions)
                                        • Loop - Actions
                                          • Set V_TargetLocation[V] = (V_Location[V] offset by (V_Aoe[V] / 3.00) towards ((Real((Integer A))) x 30.00) degrees)
                                          • Special Effect - Create a special effect at V_TargetLocation[V] using V_IgnitionSFX
                                          • Set V_Ignition[V] = (Last created special effect)
                                          • Custom script: set bj_wantDestroyGroup = true
                                          • Unit Group - Pick every unit in (Units within 100.00 of V_TargetLocation[V] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is dead) Equal to False)) and (((Matching unit) belongs to an enemy of V_Player[V]) Equal to True))) and do (Actions)
                                            • Loop - Actions
                                              • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Weapons\FireBallMissile\FireBallMissile.mdl
                                              • Special Effect - Destroy (Last created special effect)
                                              • Unit - Cause V_Caster[V] to damage (Picked unit), dealing V_IgnitionDamage[V] damage of attack type Spells and damage type Normal
                                          • Special Effect - Destroy V_Ignition[V]
                                          • Custom script: call RemoveLocation(udg_V_TargetLocation[udg_V])
                                      • For each (Integer A) from 1 to 12, do (Actions)
                                        • Loop - Actions
                                          • Set V_TargetLocation[V] = (V_Location[V] offset by (V_Aoe[V] / 2.00) towards ((Real((Integer A))) x 30.00) degrees)
                                          • Special Effect - Create a special effect at V_TargetLocation[V] using V_IgnitionSFX
                                          • Set V_Ignition[V] = (Last created special effect)
                                          • Custom script: set bj_wantDestroyGroup = true
                                          • Unit Group - Pick every unit in (Units within 100.00 of V_TargetLocation[V] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is dead) Equal to False)) and (((Matching unit) belongs to an enemy of V_Player[V]) Equal to True))) and do (Actions)
                                            • Loop - Actions
                                              • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Weapons\FireBallMissile\FireBallMissile.mdl
                                              • Special Effect - Destroy (Last created special effect)
                                              • Unit - Cause V_Caster[V] to damage (Picked unit), dealing V_IgnitionDamage[V] damage of attack type Spells and damage type Normal
                                          • Special Effect - Destroy V_Ignition[V]
                                          • Custom script: call RemoveLocation(udg_V_TargetLocation[udg_V])
                                      • For each (Integer A) from 1 to 12, do (Actions)
                                        • Loop - Actions
                                          • Set V_TargetLocation[V] = (V_Location[V] offset by (V_Aoe[V] / 1.00) towards ((Real((Integer A))) x 30.00) degrees)
                                          • Special Effect - Create a special effect at V_TargetLocation[V] using V_IgnitionSFX
                                          • Set V_Ignition[V] = (Last created special effect)
                                          • Custom script: set bj_wantDestroyGroup = true
                                          • Unit Group - Pick every unit in (Units within 100.00 of V_TargetLocation[V] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is dead) Equal to False)) and (((Matching unit) belongs to an enemy of V_Player[V]) Equal to True))) and do (Actions)
                                            • Loop - Actions
                                              • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Weapons\FireBallMissile\FireBallMissile.mdl
                                              • Special Effect - Destroy (Last created special effect)
                                              • Unit - Cause V_Caster[V] to damage (Picked unit), dealing V_IgnitionDamage[V] damage of attack type Spells and damage type Normal
                                          • Special Effect - Destroy V_Ignition[V]
                                          • Custom script: call RemoveLocation(udg_V_TargetLocation[udg_V])
                                      • Custom script: call RemoveLocation(udg_V_Location[udg_V])
                                    • Else - Actions
                • Else - Actions
                  • Set V_IntervalTimer[V] = (V_IntervalTimer[V] + 0.02)
            • Else - Actions

421141_10150631461844143_629724142_9293325_1171394115_n.jpg

Creates a frozen blast impact on the target area. Every unit in the area of effect will recieve some damage, when the blast consumes, some icy fragments will fly off the place, dealing minor damage and stunning enemies they collide with.

Level 1 - 125 Nova damage in a 100 AoE. Releases up to 5 icy bolts that deal 25 damage each one.
Level 2 - 250 Nova damage in a 200 AoE. Releases up to 10 icy bolts that deal 50 damage each one.
Level 3 - 375 Nova damage in a 300 AoE. Releases up to 15 icy bolts that deal 75 damage each one.
  • Frozen Blast Start
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Frozen Blast
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • Set FB_Caster = (Triggering unit)
      • Set FB_StartPoint = (Target point of ability being cast)
      • Set FB_AbilityLevel = (Level of Frozen Blast for FB_Caster)
      • Set FB_DummyAbility = Ice Missile Dummy
      • Set FB_Player = (Owner of FB_Caster)
      • -------- ---------------------------------------------------------------- --------
      • -------- Configure the nova special effect here --------
      • -------- ---------------------------------------------------------------- --------
      • Set FB_NovaSFX = Abilities\Weapons\FrostWyrmMissile\FrostWyrmMissile.mdl
      • -------- ---------------------------------------------------------------- --------
      • -------- Configure the nova spell damage down here --------
      • -------- ---------------------------------------------------------------- --------
      • Set FB_NovaDamage = ((Real(FB_AbilityLevel)) x 125.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- Configure the nova area of effect (should match the one in the object editor) --------
      • -------- ---------------------------------------------------------------- --------
      • Set FB_Aoe = ((Real(FB_AbilityLevel)) x 100.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- Configure the number of icy fragments that can spawn upon nova blast --------
      • -------- ---------------------------------------------------------------- --------
      • Set FB_Fragments = (((Random integer number between 1 and 4) x FB_AbilityLevel) + FB_AbilityLevel)
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within FB_Aoe of FB_StartPoint matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of FB_Player) Equal to True))) and do (Actions)
        • Loop - Actions
          • Special Effect - Create a special effect attached to the chest of (Picked unit) using FB_NovaSFX
          • Set FB_Nova = (Last created special effect)
          • Unit - Cause FB_Caster to damage (Picked unit), dealing FB_NovaDamage damage of attack type Spells and damage type Cold
          • Special Effect - Destroy FB_Nova
      • For each (Integer A) from 1 to FB_Fragments, do (Actions)
        • Loop - Actions
          • Set FB_TargetPoint = (FB_StartPoint offset by (Random real number between 75.00 and (FB_Aoe x 2.00)) towards (Random real number between 0.00 and 360.00) degrees)
          • Unit - Create 1 Dummy for FB_Player at FB_StartPoint facing Default building facing degrees
          • Set FB_Dummy = (Last created unit)
          • Unit - Add FB_DummyAbility to FB_Dummy
          • Unit - Set level of FB_DummyAbility for FB_Dummy to FB_AbilityLevel
          • Unit - Add a 2.00 second Generic expiration timer to FB_Dummy
          • Unit - Order FB_Dummy to Neutral Tinker - Cluster Rockets FB_TargetPoint
          • Custom script: call RemoveLocation(udg_FB_TargetPoint)
      • Custom script: call RemoveLocation(udg_FB_StartPoint)

421141_10150631461864143_629724142_9293326_65179749_n.jpg

Impacts an enemy unit with a powerfull lightning, creating chaos in it's being. Deals an inital ammount of damage and releases a set of charges that keeps inflicting damage to the target and knocking it back around the battlefield.

Level 1 - 100 Initial damage. Releases 3 charges of 30 damage each one.
Level 2 - 150 Initial damage. Releases 6 charges of 60 damage each one.
Level 3 - 200 Initial damage. Releases 9 charges of 90 damage each one.
  • Focused Lightning Start
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Focused Ligthning
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • FL_Skip Equal to 0
        • Then - Actions
          • Trigger - Turn on Focused Lightning Loop <gen>
        • Else - Actions
      • Set FL_Skip = (FL_Skip + 1)
      • Set FL_Times = (FL_Times + 1)
      • Set FL_Off[FL_Times] = True
      • Set FL_Caster[FL_Times] = (Triggering unit)
      • Set FL_Target[FL_Times] = (Target unit of ability being cast)
      • Set FL_AbilityLevel[FL_Times] = (Level of Focused Ligthning for FL_Caster[FL_Times])
      • Set FL_StartPoint[FL_Times] = (Position of FL_Target[FL_Times])
      • Set FL_TargetPoint[FL_Times] = FL_StartPoint[FL_Times]
      • Set FL_IntervalTimer[FL_Times] = 0.00
      • Set FL_Player[FL_Times] = (Owner of FL_Caster[FL_Times])
      • -------- ---------------------------------------------------------------- --------
      • -------- Configure damage --------
      • -------- ---------------------------------------------------------------- --------
      • Set FL_Damage[FL_Times] = (FL_AbilityLevel[FL_Times] x 30)
      • -------- ---------------------------------------------------------------- --------
      • -------- Configure charge's bounce distance --------
      • -------- ---------------------------------------------------------------- --------
      • Set FL_Distance[FL_Times] = 100.00
      • -------- ---------------------------------------------------------------- --------
      • -------- Configure charge's bounce angle --------
      • -------- ---------------------------------------------------------------- --------
      • Set FL_Angle[FL_Times] = (Facing of FL_Caster[FL_Times])
      • -------- ---------------------------------------------------------------- --------
      • -------- Configure charge's bounce times --------
      • -------- ---------------------------------------------------------------- --------
      • Set FL_BounceTimes[FL_Times] = (FL_AbilityLevel[FL_Times] x 3)
      • -------- ---------------------------------------------------------------- --------
      • -------- Configure charge's bounce SFX on target unit --------
      • -------- ---------------------------------------------------------------- --------
      • Set FL_SFX = Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
  • Focused Lightning Loop
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • For each (Integer FL) from 1 to FL_Times, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • FL_Off[FL] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • FL_BounceTimes[FL] Less than or equal to 0
                • Then - Actions
                  • Custom script: call RemoveLocation(udg_FL_StartPoint[udg_FL])
                  • Set FL_Skip = (FL_Skip - 1)
                  • Set FL_Off[FL] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • FL_Skip Equal to 0
                    • Then - Actions
                      • Set FL_Times = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • FL_BounceTimes[FL] Greater than 0
                  • FL_IntervalTimer[FL] Greater than or equal to 0.40
                • Then - Actions
                  • Set FL_IntervalTimer[FL] = 0.00
                  • Set FL_BounceTimes[FL] = (FL_BounceTimes[FL] - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (FL_Target[FL] is dead) Equal to False
                    • Then - Actions
                      • Set FL_StartPoint[FL_Times] = (Position of FL_Target[FL_Times])
                      • For each (Integer A) from 1 to FL_Times, do (Actions)
                        • Loop - Actions
                          • Set FL_TargetPoint[FL] = (FL_StartPoint[FL] offset by FL_Distance[FL] towards FL_Angle[FL] degrees)
                          • Special Effect - Create a special effect attached to the chest of FL_Target[FL] using FL_SFX
                          • Set FL_SpecialEffect[FL] = (Last created special effect)
                          • Unit - Move FL_Target[FL] instantly to FL_TargetPoint[FL]
                          • Unit - Cause FL_Caster[FL] to damage FL_Target[FL], dealing (Real(FL_Damage[FL])) damage of attack type Spells and damage type Normal
                          • Special Effect - Destroy FL_SpecialEffect[FL]
                          • Custom script: call RemoveLocation(udg_FL_TargetPoint[udg_FL])
                    • Else - Actions
                • Else - Actions
                  • Set FL_IntervalTimer[FL] = (FL_IntervalTimer[FL] + 0.02)
            • Else - Actions

417277_10150631470634143_629724142_9293333_191529227_n.jpg

Slams the ground, dealing damage to every enemy unit in a 300 AoE around the Crypt Lord, slowing down their attack and movement speed rate for a few seconds, and displacing the targets right in ront of the mighty hero, and lifting the targets into the air, dealing impale damage and stunning them for a few seconds.

Level 1 - 100 base damage in 300 AoE, 50% attack and movement speed rate decreased for 5 seconds. 75 impale damage with 2 seconds of stun in a 750 AoE in front of the caster.
Level 2 - 200 base damage in 300 AoE, 60% attack and movement speed rate decreased for 6 seconds. 150 impale damage with 3 seconds of stun in a 750 AoE in front of the caster.
Level 3 - 300 base damage in 300 AoE, 90% attack and movement speed rate decreased for 7 seconds. 225 impale damage with 4 seconds of stun in a 750 AoE in front of the caster.
  • Wrath Start
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Wrath
    • Actions
      • -------- --------------------------------------------------------------------- --------
      • -------- Basic variables, do not touch --------
      • -------- --------------------------------------------------------------------- --------
      • Set W_Caster = (Triggering unit)
      • Set W_AbilityLevel = (Level of Wrath for W_Caster)
      • Set W_DummyAbility = Impale Dummy
      • Set W_Player = (Owner of W_Caster)
      • -------- --------------------------------------------------------------------- --------
      • -------- Setting location, angles of impale and offset point for displacing enemy units --------
      • -------- --------------------------------------------------------------------- --------
      • Set W_Location = (Position of W_Caster)
      • Set W_Offset = (W_Location offset by 250.00 towards (Facing of W_Caster) degrees)
      • Set W_Angle[1] = 340.00
      • Set W_Angle[2] = 360.00
      • Set W_Angle[3] = 380.00
      • -------- --------------------------------------------------------------------- --------
      • -------- AoE specific of targets (change if needed) --------
      • -------- --------------------------------------------------------------------- --------
      • Set W_Group = (Units within 300.00 of W_Location matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) Not equal to W_Caster) and ((((Matching unit) belongs to an enemy of W_Player) Equal to True)
      • -------- --------------------------------------------------------------------- --------
      • -------- Creating a special effect on target point --------
      • -------- --------------------------------------------------------------------- --------
      • Special Effect - Create a special effect at W_Offset using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
      • Special Effect - Destroy (Last created special effect)
      • -------- --------------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- --------------------------------------------------------------------- --------
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in W_Group and do (Actions)
        • Loop - Actions
          • Special Effect - Create a special effect attached to the origin of (Picked unit) using Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
          • Special Effect - Destroy (Last created special effect)
          • Unit - Move (Picked unit) instantly to W_Offset
      • For each (Integer A) from 1 to 3, do (Actions)
        • Loop - Actions
          • Set W_TargetPoint = (W_Location offset by 100.00 towards (W_Angle[(Integer A)] + (Facing of W_Caster)) degrees)
          • Unit - Create 1 Dummy for W_Player at W_Location facing Default building facing degrees
          • Set W_Dummy = (Last created unit)
          • Unit - Add a 3.00 second Generic expiration timer to W_Dummy
          • Unit - Add W_DummyAbility to W_Dummy
          • Unit - Set level of W_DummyAbility for W_Dummy to W_AbilityLevel
          • Unit - Order W_Dummy to Undead Crypt Lord - Impale W_TargetPoint
          • Custom script: call RemoveLocation(udg_W_TargetPoint)
      • Custom script: call RemoveLocation(udg_W_Location)
      • Custom script: call RemoveLocation(udg_W_Offset)
      • Custom script: call DestroyGroup(udg_W_Group)
417277_10150631470649143_629724142_9293334_327790619_n.jpg

The hero start summoning a great number of locust creatures, that fly off his core to impact nearby enemies. Every unit that collides with one of theese will recieve a ministun and a minor damage.

Level 1 - 10 Collision damage in a MAX AoE of 75. Lasts 6 seconds.
Level 2 - 15 Collision damage in a MAX AoE of 150. Lasts 12 seconds.
Level 3 - 20 Collision damage in a MAX AoE of 225. Lasts 18 seconds.
  • Sharp Swarm Start
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Sharp Swarm
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • SS_Skip Equal to 0
        • Then - Actions
          • Trigger - Turn on Sharp Swarm Loop <gen>
        • Else - Actions
      • Set SS_Skip = (SS_Skip + 1)
      • Set SS_Times = (SS_Times + 1)
      • Set SS_Off[SS_Times] = True
      • Set SS_Caster[SS_Times] = (Triggering unit)
      • Set SS_AbilityLevel[SS_Times] = (Level of Sharp Swarm for SS_Caster[SS_Times])
      • Set SS_DummyAbility = Sharp Swarm Missile Dummy
      • Set SS_Player[SS_Times] = (Owner of SS_Caster[SS_Times])
      • Set SS_IntervalTimer[SS_Times] = 0.00
      • -------- ---------------------------------------------------------------- --------
      • -------- Set the max AoE that locust can fly to --------
      • -------- ---------------------------------------------------------------- --------
      • Set SS_MaxAoe[SS_Times] = ((Real(SS_AbilityLevel[SS_Times])) x 90.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- Set the duration of the spell --------
      • -------- ---------------------------------------------------------------- --------
      • Set SS_Duration[SS_Times] = ((Real(SS_AbilityLevel[SS_Times])) x 6.00)
  • Sharp Swarm Loop
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • For each (Integer SS) from 1 to SS_Times, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • SS_Off[SS] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SS_Duration[SS] Less than or equal to 0.00
                • Then - Actions
                  • Set SS_Skip = (SS_Skip - 1)
                  • Set SS_Off[SS] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • SS_Skip Equal to 0
                    • Then - Actions
                      • Set SS_Times = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SS_IntervalTimer[SS] Equal to 0.20
                • Then - Actions
                  • Set SS_Duration[SS] = (SS_Duration[SS] - 0.02)
                  • Set SS_IntervalTimer[SS] = 0.00
                  • Set SS_Location[SS] = (Position of SS_Caster[SS])
                  • For each (Integer A) from 1 to (Random integer number between 3 and 6), do (Actions)
                    • Loop - Actions
                      • Set SS_TargetPoint[SS] = (SS_Location[SS] offset by (Random real number between 75.00 and SS_MaxAoe[SS]) towards (Random real number between 0.00 and 360.00) degrees)
                      • Unit - Create 1 Dummy for SS_Player[SS] at SS_Location[SS] facing Default building facing degrees
                      • Set SS_Dummy[SS] = (Last created unit)
                      • Unit - Add a 1.50 second Generic expiration timer to SS_Dummy[SS]
                      • Unit - Add SS_DummyAbility to SS_Dummy[SS]
                      • Unit - Set level of SS_DummyAbility for SS_Dummy[SS] to SS_AbilityLevel[SS]
                      • Unit - Order SS_Dummy[SS] to Neutral Tinker - Cluster Rockets SS_TargetPoint[SS]
                      • Custom script: call RemoveLocation(udg_SS_TargetPoint[udg_SS])
                  • Custom script: call RemoveLocation(udg_SS_Location[udg_SS])
                • Else - Actions
                  • Set SS_Duration[SS] = (SS_Duration[SS] - 0.02)
                  • Set SS_IntervalTimer[SS] = (SS_IntervalTimer[SS] + 0.02)
            • Else - Actions

430658_10150631499489143_629724142_9293379_1120291259_n.jpg

The hero summons an orbitating circle of holy lights that keep spinning around himself for a certain ammount of time. Every second, he releases a pulse of pure sacred energy that purifies allies and enemies, healing or damaging them if they stay inside the circle.

Level 1 - 25 heal/damage per pulse in a 140 AoE. Lasts for 7 seconds.
Level 2 - 50 heal/damage per pulse in a 280 AoE. Lasts for 14 seconds.
Level 3 - 75 heal/damage per pulse in a 420 AoE. Lasts for 21 seconds.
  • Redemption Orbit Start
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Redemption Orbit
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • RO_Skip Equal to 0
        • Then - Actions
          • Trigger - Turn on Redemption Orbit Loop <gen>
        • Else - Actions
      • Set RO_Skip = (RO_Skip + 1)
      • Set RO_Times = (RO_Times + 1)
      • Set RO_Off[RO_Times] = True
      • Set RO_Caster[RO_Times] = (Triggering unit)
      • Set RO_AbilityLevel[RO_Times] = (Level of Redemption Orbit for RO_Caster[RO_Times])
      • Set RO_IntervalTimer[RO_Times] = 0.00
      • Set RO_Player[RO_Times] = (Owner of RO_Caster[RO_Times])
      • Set RO_Location[RO_Times] = (Position of RO_Caster[RO_Times])
      • Set RO_Radius[RO_Times] = 0.00
      • -------- ---------------------------------------------------------------- --------
      • -------- Set number of missiles that orbitate around the caster --------
      • -------- ---------------------------------------------------------------- --------
      • Set RO_MissileCount = 10
      • -------- ---------------------------------------------------------------- --------
      • -------- Set the missile's speed --------
      • -------- ---------------------------------------------------------------- --------
      • Set RO_Speed[RO_Times] = 8.00
      • -------- ---------------------------------------------------------------- --------
      • -------- Set the spell's AoE --------
      • -------- ---------------------------------------------------------------- --------
      • Set RO_Aoe[RO_Times] = ((Real(RO_AbilityLevel[RO_Times])) x 140.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- Set the spell's duration --------
      • -------- ---------------------------------------------------------------- --------
      • Set RO_Duration[RO_Times] = ((Real(RO_AbilityLevel[RO_Times])) x 7.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- Set the ammount of heal/damage that is made every second --------
      • -------- ---------------------------------------------------------------- --------
      • Set RO_Power[RO_Times] = ((Real(RO_AbilityLevel[RO_Times])) x 25.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- Set the special effect shown per missile --------
      • -------- ---------------------------------------------------------------- --------
      • Set RO_SFX1 = Abilities\Weapons\FaerieDragonMissile\FaerieDragonMissile.mdl
      • -------- ---------------------------------------------------------------- --------
      • -------- Set the special effect shown per pulse --------
      • -------- ---------------------------------------------------------------- --------
      • Set RO_SFX2 = war3mapImported\TheHolyBomb.mdx
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this one --------
      • -------- ---------------------------------------------------------------- --------
      • Set RO_Angle[RO_Times] = (360.00 / (Real(RO_MissileCount)))
  • Redemption Orbit Loop
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • For each (Integer RO) from 1 to RO_Times, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • RO_Off[RO] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • RO_Duration[RO] Less than or equal to 0.00
                • Then - Actions
                  • Set RO_Location[RO] = (Position of RO_Caster[RO_Times])
                  • Set RO_Radius[RO] = (RO_Radius[RO] + RO_Speed[RO])
                  • For each (Integer A) from 1 to RO_MissileCount, do (Actions)
                    • Loop - Actions
                      • Set RO_Location2[RO] = (RO_Location[RO] offset by RO_Aoe[RO] towards (RO_Radius[RO] + (RO_Angle[RO] x (Real((Integer A))))) degrees)
                      • Special Effect - Create a special effect at RO_Location2[RO] using RO_SFX2
                      • Special Effect - Destroy (Last created special effect)
                      • Custom script: call RemoveLocation(udg_RO_Location2[udg_RO])
                  • Set RO_Skip = (RO_Skip - 1)
                  • Set RO_Off[RO] = False
                  • Custom script: call RemoveLocation(udg_RO_Location[udg_RO])
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • RO_Skip Equal to 0
                    • Then - Actions
                      • Set RO_Times = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
                  • Set RO_IntervalTimer[RO] = (RO_IntervalTimer[RO] + 0.10)
                  • Set RO_Duration[RO] = (RO_Duration[RO] - 0.10)
                  • Set RO_Location[RO] = (Position of RO_Caster[RO_Times])
                  • Set RO_Radius[RO] = (RO_Radius[RO] + RO_Speed[RO])
                  • For each (Integer A) from 1 to RO_MissileCount, do (Actions)
                    • Loop - Actions
                      • Set RO_Location2[RO] = (RO_Location[RO] offset by RO_Aoe[RO] towards (RO_Radius[RO] + (RO_Angle[RO] x (Real((Integer A))))) degrees)
                      • Special Effect - Create a special effect at RO_Location2[RO] using RO_SFX1
                      • Special Effect - Destroy (Last created special effect)
                      • Custom script: call RemoveLocation(udg_RO_Location2[udg_RO])
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • RO_IntervalTimer[RO] Greater than or equal to 1.00
                    • Then - Actions
                      • Set RO_IntervalTimer[RO] = 0.00
                      • Set RO_Group[RO] = (Units within RO_Aoe[RO] of RO_Location[RO] matching ((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)))
                      • Special Effect - Create a special effect at RO_Location[RO] using RO_SFX2
                      • Special Effect - Destroy (Last created special effect)
                      • Unit Group - Pick every unit in RO_Group[RO] and do (Actions)
                        • Loop - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • ((Picked unit) belongs to an enemy of RO_Player[RO]) Equal to True
                            • Then - Actions
                              • Special Effect - Create a special effect attached to the chest of (Picked unit) using RO_SFX1
                              • Special Effect - Destroy (Last created special effect)
                              • Unit - Cause RO_Caster[RO] to damage (Picked unit), dealing RO_Power[RO] damage of attack type Spells and damage type Normal
                            • Else - Actions
                              • Special Effect - Create a special effect attached to the chest of (Picked unit) using RO_SFX1
                              • Special Effect - Destroy (Last created special effect)
                              • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + RO_Power[RO])
                    • Else - Actions
                  • Custom script: call RemoveLocation(udg_RO_Location[udg_RO])
                  • Custom script: call DestroyGroup(udg_RO_Group[udg_RO])
            • Else - Actions

430658_10150631499544143_629724142_9293380_619251580_n.jpg

Releases a holy nova that moves around the battlefield following a random pattern. When units get in a 300 AoE close of the nova, they recieve damage if they're enemies or they get healed if allies.

Level 1 - 80 heal/damage per nova. Lasts for 5 seconds.
Level 2 - 160 heal/damage per nova. Lasts for 10 seconds.
Level 3 - 240 heal/damage per nova. Lasts for 15 seconds.
  • Rendezvous Start
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Rendezvous
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • E_Skip Equal to 0
        • Then - Actions
          • Trigger - Turn on Rendezvous Loop <gen>
        • Else - Actions
      • Set E_Skip = (E_Skip + 1)
      • Set E_Times = (E_Times + 1)
      • Set E_Off[E_Times] = True
      • Set E_Caster[E_Times] = (Triggering unit)
      • Set E_AbilityLevel[E_Times] = (Level of Rendezvous for E_Caster[E_Times])
      • Set E_Player[E_Times] = (Owner of E_Caster[E_Times])
      • Set E_StartPoint[E_Times] = (Target point of ability being cast)
      • Set E_TargetPoint[E_Times] = E_StartPoint[E_Times]
      • -------- ---------------------------------------------------------------- --------
      • -------- Configure instance heal/damage --------
      • -------- ---------------------------------------------------------------- --------
      • Set E_Power[E_Times] = ((Real(E_AbilityLevel[E_Times])) x 80.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- Configure the effect's AoE --------
      • -------- ---------------------------------------------------------------- --------
      • Set E_Aoe[E_Times] = 300.00
      • -------- ---------------------------------------------------------------- --------
      • -------- Configure spell's duration --------
      • -------- ---------------------------------------------------------------- --------
      • Set E_Duration[E_Times] = ((Real(E_AbilityLevel[E_Times])) x 5.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- Set the spell's SFXs --------
      • -------- ---------------------------------------------------------------- --------
      • Set E_ImpactSFX = Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
      • Set E_ImpactSFX2 = war3mapImported\TheHolyBomb.mdx
      • Set E_ImpactSFX3 = Abilities\Spells\Human\Resurrect\ResurrectTarget.mdl
  • Rendezvous Loop
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • For each (Integer E) from 1 to E_Times, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • E_Off[E] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • E_Duration[E] Less than or equal to 0.00
                • Then - Actions
                  • Set E_Skip = (E_Skip - 1)
                  • Set E_Off[E] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • E_Skip Equal to 0
                    • Then - Actions
                      • Set E_Times = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                  • Custom script: call RemoveLocation(udg_E_StartPoint[udg_E])
                  • Custom script: call RemoveLocation(udg_E_TargetPoint[udg_E])
                • Else - Actions
                  • Set E_Duration[E] = (E_Duration[E] - 0.10)
                  • Set E_IntervalTimer[E] = (E_IntervalTimer[E] + 0.10)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • E_IntervalTimer[E] Greater than or equal to 0.40
                    • Then - Actions
                      • Set E_IntervalTimer[E] = 0.00
                      • Set E_TargetPoint[E] = (E_TargetPoint[E] offset by 100.00 towards (Random real number between 0.00 and 360.00) degrees)
                      • Set E_Group[E] = (Units within E_Aoe[E] of E_TargetPoint[E] matching ((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)))
                      • Special Effect - Create a special effect at E_TargetPoint[E] using E_ImpactSFX
                      • Special Effect - Destroy (Last created special effect)
                      • Special Effect - Create a special effect at E_TargetPoint[E] using E_ImpactSFX2
                      • Special Effect - Destroy (Last created special effect)
                      • Special Effect - Create a special effect at E_TargetPoint[E] using E_ImpactSFX3
                      • Special Effect - Destroy (Last created special effect)
                      • Unit Group - Pick every unit in E_Group[E] and do (Actions)
                        • Loop - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • ((Picked unit) belongs to an enemy of E_Player[E]) Equal to True
                            • Then - Actions
                              • Unit - Cause E_Caster[E] to damage (Picked unit), dealing E_Power[E] damage of attack type Spells and damage type Normal
                            • Else - Actions
                              • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + E_Power[E])
                      • Custom script: call DestroyGroup(udg_E_Group[udg_E])
                    • Else - Actions
            • Else - Actions

430658_10150631499579143_629724142_9293381_1061312010_n.jpg

Purges an enemy unit from it's inner demons, dealing damage and stunning it due to the complex task. Also deals the hero's strengh in bonus damage to the target.

Level 1 - Deals 100 base damage and stuns for 5 seconds.
Level 2 - Deals 200 base damage and stuns for 7 seconds.
Level 3 - Deals 300 base damage and stuns for 9 seconds.
  • Exorcism Start
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Exorcism
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • Set R_Caster = (Triggering unit)
      • Set R_Target = (Target unit of ability being cast)
      • Set R_Player = (Owner of R_Caster)
      • Set R_Location = (Position of R_Target)
      • -------- ---------------------------------------------------------------- --------
      • -------- Set the number of ghost coming out of the target here --------
      • -------- ---------------------------------------------------------------- --------
      • Set R_Count = 6
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • Set R_Angle = (360.00 / (Real(R_Count)))
      • Set R_BonusDamage = (Real((Strength of R_Caster (Include bonuses))))
      • For each (Integer A) from 1 to R_Count, do (Actions)
        • Loop - Actions
          • Unit - Create 1 Dummy for R_Player at R_Location facing Default building facing degrees
          • Special Effect - Create a special effect attached to the chest of R_Dummy using Abilities\Spells\Undead\Possession\PossessionMissile.mdl
          • Unit - Add Storm Crow Form to R_Dummy
          • Unit - Turn collision for R_Dummy Off
          • Animation - Change R_Dummy's vertex coloring to (40.00%, 40.00%, 40.00%) with 75.00% transparency
          • Animation - Change R_Dummy flying height to (Random real number between 60.00 and 300.00) at 0.01
          • Set R_Dummy = (Last created unit)
          • Unit - Add a 1.25 second Generic expiration timer to R_Dummy
          • Unit - Order R_Dummy to Move To (R_Location offset by 300.00 towards ((Real((Integer A))) x R_Angle) degrees)
      • Custom script: call RemoveLocation(udg_R_Location)
      • Unit - Cause R_Caster to damage R_Target, dealing R_BonusDamage damage of attack type Spells and damage type Normal
      • Floating Text - Create floating text that reads ((String((Integer(R_BonusDamage)))) + !) above R_Target with Z offset 0.00, using font size 10.00, color (80.00%, 80.00%, 15.00%), and 0.00% transparency
      • Set R_TempText = (Last created floating text)
      • Floating Text - Set the velocity of R_TempText to 100.00 towards 90.00 degrees
      • Floating Text - Change R_TempText: Disable permanence
      • Floating Text - Change the lifespan of R_TempText to 5.00 seconds
      • Floating Text - Change the fading age of R_TempText to 0.65 seconds

430658_10150631499614143_629724142_9293382_709333412_n.jpg

Launches an unstable sacred granade that will detonate after 2 seconds, dealing damage to units in the area of effect and releasing 3 bolts of holy energy that will move forward up to 5 times to keep damaging enemies in their path.

Level 1 - Main explosion deals 125 damage on a 90 AoE. Holy bolts deal 125 damage on a 100 AoE.
Level 2 - Main explosion deals 250 damage on a 180 AoE. Holy bolts deal 250 damage on a 100 AoE.
Level 3 - Main explosion deals 375 damage on a 270 AoE. Holy bolts deal 375 damage on a 100 AoE.
  • Holy Granade Start
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Holy Granade
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • HG_Skip Equal to 0
        • Then - Actions
          • Trigger - Turn on Holy Granade Loop <gen>
        • Else - Actions
      • Set HG_Skip = (HG_Skip + 1)
      • Set HG_Times = (HG_Times + 1)
      • Set HG_Off[HG_Times] = True
      • Set HG_Caster[HG_Times] = (Triggering unit)
      • Set HG_Player[HG_Times] = (Owner of HG_Caster[HG_Times])
      • Set HG_Angle[1] = 340.00
      • Set HG_Angle[2] = 360.00
      • Set HG_Angle[3] = 380.00
      • Set HG_IntervalTimer[HG_Times] = 0.00
      • Set HG_IntervalTimer2[HG_Times] = 0.00
      • Set HG_Facing[HG_Times] = (Facing of HG_Caster[HG_Times])
      • Set HG_Location[HG_Times] = (Position of HG_Caster[HG_Times])
      • Set HG_Location2[HG_Times] = (Target point of ability being cast)
      • -------- ---------------------------------------------------------------- --------
      • -------- Set spell's damage --------
      • -------- ---------------------------------------------------------------- --------
      • Set HG_Power[HG_Times] = ((Real(HG_AbilityLevel[HG_Times])) + 125.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- Configure spell's main explosion AoE (should match the one in the object editor) --------
      • -------- ---------------------------------------------------------------- --------
      • Set HG_Aoe[HG_Times] = ((Real(HG_AbilityLevel[HG_Times])) x 90.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- Special effects configuration --------
      • -------- ---------------------------------------------------------------- --------
      • Set HG_SFX = war3mapImported\TheHolyBomb.mdx
      • Set HG_SFX2 = Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
  • Holy Granade Loop
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • For each (Integer HG) from 1 to HG_Times, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • HG_Off[HG] Equal to True
            • Then - Actions
              • Set HG_IntervalTimer2[HG] = (HG_IntervalTimer2[HG] + 0.10)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • HG_IntervalTimer2[HG] Greater than or equal to 2.00
                • Then - Actions
                  • Set HG_IntervalTimer[HG] = (HG_IntervalTimer[HG] + 0.10)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • HG_IntervalTimer[HG] Equal to 0.10
                    • Then - Actions
                      • Special Effect - Create a special effect at HG_Location2[HG] using HG_SFX
                      • Special Effect - Destroy (Last created special effect)
                      • Set HG_Group[HG] = (Units within HG_Aoe[HG] of HG_Location2[HG] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of HG_Player[HG]) Equal to True)))
                      • Unit Group - Pick every unit in HG_Group[HG] and do (Actions)
                        • Loop - Actions
                          • Unit - Cause HG_Caster[HG] to damage (Picked unit), dealing HG_Power[HG] damage of attack type Spells and damage type Normal
                      • Custom script: call DestroyGroup(udg_HG_Group[udg_HG])
                    • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • HG_IntervalTimer[HG] Equal to 0.40
                    • Then - Actions
                      • For each (Integer A) from 1 to 3, do (Actions)
                        • Loop - Actions
                          • Set HG_Location[HG] = (HG_Location2[HG] offset by 100.00 towards (HG_Angle[(Integer A)] + HG_Facing[HG]) degrees)
                          • Set HG_Group[HG] = (Units within 100.00 of HG_Location[HG] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of HG_Player[HG]) Equal to True)))
                          • Special Effect - Create a special effect at HG_Location[HG] using HG_SFX2
                          • Special Effect - Destroy (Last created special effect)
                          • Unit Group - Pick every unit in HG_Group[HG] and do (Actions)
                            • Loop - Actions
                              • Unit - Cause HG_Caster[HG] to damage (Picked unit), dealing HG_Power[HG] damage of attack type Spells and damage type Normal
                          • Custom script: call DestroyGroup(udg_HG_Group[udg_HG])
                          • Custom script: call RemoveLocation(udg_HG_Location[udg_HG])
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • HG_IntervalTimer[HG] Equal to 0.80
                        • Then - Actions
                          • For each (Integer A) from 1 to 3, do (Actions)
                            • Loop - Actions
                              • Set HG_Location[HG] = (HG_Location2[HG] offset by 200.00 towards (HG_Angle[(Integer A)] + HG_Facing[HG]) degrees)
                              • Set HG_Group[HG] = (Units within 100.00 of HG_Location[HG] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of HG_Player[HG]) Equal to True)))
                              • Special Effect - Create a special effect at HG_Location[HG] using HG_SFX2
                              • Special Effect - Destroy (Last created special effect)
                              • Special Effect - Create a special effect at HG_Location[HG] using HG_SFX
                              • Special Effect - Destroy (Last created special effect)
                              • Unit Group - Pick every unit in HG_Group[HG] and do (Actions)
                                • Loop - Actions
                                  • Unit - Cause HG_Caster[HG] to damage (Picked unit), dealing HG_Power[HG] damage of attack type Spells and damage type Normal
                              • Custom script: call DestroyGroup(udg_HG_Group[udg_HG])
                              • Custom script: call RemoveLocation(udg_HG_Location[udg_HG])
                        • Else - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • HG_IntervalTimer[HG] Equal to 1.20
                            • Then - Actions
                              • For each (Integer A) from 1 to 3, do (Actions)
                                • Loop - Actions
                                  • Set HG_Location[HG] = (HG_Location2[HG] offset by 300.00 towards (HG_Angle[(Integer A)] + HG_Facing[HG]) degrees)
                                  • Set HG_Group[HG] = (Units within 100.00 of HG_Location[HG] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of HG_Player[HG]) Equal to True)))
                                  • Special Effect - Create a special effect at HG_Location[HG] using HG_SFX2
                                  • Special Effect - Destroy (Last created special effect)
                                  • Special Effect - Create a special effect at HG_Location[HG] using HG_SFX
                                  • Special Effect - Destroy (Last created special effect)
                                  • Unit Group - Pick every unit in HG_Group[HG] and do (Actions)
                                    • Loop - Actions
                                      • Unit - Cause HG_Caster[HG] to damage (Picked unit), dealing HG_Power[HG] damage of attack type Spells and damage type Normal
                                  • Custom script: call DestroyGroup(udg_HG_Group[udg_HG])
                                  • Custom script: call RemoveLocation(udg_HG_Location[udg_HG])
                            • Else - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • HG_IntervalTimer[HG] Equal to 1.40
                                • Then - Actions
                                  • For each (Integer A) from 1 to 3, do (Actions)
                                    • Loop - Actions
                                      • Set HG_Location[HG] = (HG_Location2[HG] offset by 400.00 towards (HG_Angle[(Integer A)] + HG_Facing[HG]) degrees)
                                      • Set HG_Group[HG] = (Units within 100.00 of HG_Location[HG] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of HG_Player[HG]) Equal to True)))
                                      • Special Effect - Create a special effect at HG_Location[HG] using HG_SFX2
                                      • Special Effect - Destroy (Last created special effect)
                                      • Special Effect - Create a special effect at HG_Location[HG] using HG_SFX
                                      • Special Effect - Destroy (Last created special effect)
                                      • Unit Group - Pick every unit in HG_Group[HG] and do (Actions)
                                        • Loop - Actions
                                          • Unit - Cause HG_Caster[HG] to damage (Picked unit), dealing HG_Power[HG] damage of attack type Spells and damage type Normal
                                      • Custom script: call DestroyGroup(udg_HG_Group[udg_HG])
                                      • Custom script: call RemoveLocation(udg_HG_Location[udg_HG])
                                • Else - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • HG_IntervalTimer[HG] Equal to 1.80
                                    • Then - Actions
                                      • For each (Integer A) from 1 to 3, do (Actions)
                                        • Loop - Actions
                                          • Set HG_Location[HG] = (HG_Location2[HG] offset by 500.00 towards (HG_Angle[(Integer A)] + HG_Facing[HG]) degrees)
                                          • Set HG_Group[HG] = (Units within 100.00 of HG_Location[HG] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of HG_Player[HG]) Equal to True)))
                                          • Special Effect - Create a special effect at HG_Location[HG] using HG_SFX2
                                          • Special Effect - Destroy (Last created special effect)
                                          • Special Effect - Create a special effect at HG_Location[HG] using HG_SFX
                                          • Special Effect - Destroy (Last created special effect)
                                          • Unit Group - Pick every unit in HG_Group[HG] and do (Actions)
                                            • Loop - Actions
                                              • Unit - Cause HG_Caster[HG] to damage (Picked unit), dealing HG_Power[HG] damage of attack type Spells and damage type Normal
                                          • Custom script: call DestroyGroup(udg_HG_Group[udg_HG])
                                          • Custom script: call RemoveLocation(udg_HG_Location[udg_HG])
                                    • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • HG_IntervalTimer[HG] Greater than 1.80
                    • Then - Actions
                      • Set HG_Skip = (HG_Skip - 1)
                      • Set HG_Off[HG] = False
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • HG_Skip Equal to 0
                        • Then - Actions
                          • Set HG_Times = 0
                          • Trigger - Turn off (This trigger)
                        • Else - Actions
                      • Custom script: call DestroyGroup(udg_HG_Group[udg_HG])
                      • Custom script: call RemoveLocation(udg_HG_Location2[udg_HG])
                    • Else - Actions
                • Else - Actions
            • Else - Actions

428295_10150631531034143_629724142_9293458_651406800_n.jpg

The Blademaster jumps to the targeted location, dealing damage to nearby enemies and dragging enemy units with him. Once he reaches his location, strikes again twice dealing same damage and once again dragging enemies units with him.

Level 1 - 60 Damage per instance.
Level 2 - 120 Damage per instance.
Level 3 - 180 Damage per instance.
  • Quick Slash Start
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Quick Slash
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • QS_Skip Equal to 0
        • Then - Actions
          • Trigger - Turn on Quick Slash Loop <gen>
        • Else - Actions
      • Set QS_Skip = (QS_Skip + 1)
      • Set QS_Times = (QS_Times + 1)
      • Set QS_Off[QS_Times] = True
      • Set QS_Caster[QS_Times] = (Triggering unit)
      • Set QS_AbilityLevel[QS_Times] = (Level of Quick Slash for QS_Caster[QS_Times])
      • Set QS_Location[QS_Times] = (Target point of ability being cast)
      • Set QS_IntervalTimer[QS_Times] = 0.00
      • Set QS_Facing[QS_Times] = (Facing of QS_Caster[QS_Times])
      • Set QS_Player[QS_Times] = (Owner of QS_Caster[QS_Times])
      • -------- ---------------------------------------------------------------- --------
      • -------- Set area of effect --------
      • -------- ---------------------------------------------------------------- --------
      • Set QS_Aoe[QS_Times] = 150.00
      • -------- ---------------------------------------------------------------- --------
      • -------- Set the base travelled distance by slash --------
      • -------- ---------------------------------------------------------------- --------
      • Set QS_Distance[QS_Times] = 80.00
      • -------- ---------------------------------------------------------------- --------
      • -------- Configure the spell damage on instance --------
      • -------- ---------------------------------------------------------------- --------
      • Set QS_Damage[QS_Times] = ((Real(QS_AbilityLevel[QS_Times])) x 60.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- This special effects is displayed on the target point of instance per slash --------
      • -------- ---------------------------------------------------------------- --------
      • Set QS_SFX = Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
      • -------- ---------------------------------------------------------------- --------
      • -------- This one on the affected enemy unit --------
      • -------- ---------------------------------------------------------------- --------
      • Set QS_SFX2 = Abilities\Weapons\PhoenixMissile\Phoenix_Missile.mdl
      • -------- ---------------------------------------------------------------- --------
      • -------- And finally this one on the caster hero --------
      • -------- ---------------------------------------------------------------- --------
      • Set QS_SFX3 = Abilities\Spells\Orc\MirrorImage\MirrorImageCaster.mdl
      • -------- ---------------------------------------------------------------- --------
      • -------- We pause the caster and turn his/her collision off to avoid troubles and smooth the spell --------
      • -------- ---------------------------------------------------------------- --------
      • Unit - Turn collision for QS_Caster[QS_Times] Off
      • Unit - Pause QS_Caster[QS_Times]
  • Quick Slash Loop
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • For each (Integer QS) from 1 to QS_Times, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • QS_Off[QS] Equal to True
            • Then - Actions
              • Set QS_IntervalTimer[QS] = (QS_IntervalTimer[QS] + 0.10)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • QS_IntervalTimer[QS] Equal to 0.20
                • Then - Actions
                  • Set QS_Location[QS] = (Position of QS_Caster[QS])
                  • Set QS_Location2[QS] = (QS_Location[QS] offset by QS_Distance[QS] towards QS_Facing[QS] degrees)
                  • Set QS_Group[QS] = (Units within QS_Aoe[QS] of QS_Location[QS] matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of QS_Player[QS]) Equal to True))))
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ((Playable map area) contains QS_Location2[QS]) Equal to True
                    • Then - Actions
                      • Special Effect - Create a special effect attached to the chest of QS_Caster[QS] using QS_SFX3
                      • Special Effect - Destroy (Last created special effect)
                      • Unit - Move QS_Caster[QS] instantly to QS_Location2[QS]
                      • Animation - Play QS_Caster[QS]'s slam animation
                      • Special Effect - Create a special effect at QS_Location2[QS] using QS_SFX
                      • Special Effect - Destroy (Last created special effect)
                      • Unit Group - Pick every unit in QS_Group[QS] and do (Actions)
                        • Loop - Actions
                          • Special Effect - Create a special effect attached to the chest of (Picked unit) using QS_SFX2
                          • Special Effect - Destroy (Last created special effect)
                          • Unit - Move (Picked unit) instantly to QS_Location2[QS]
                          • Unit - Cause QS_Caster[QS] to damage (Picked unit), dealing QS_Damage[QS] damage of attack type Spells and damage type Normal
                      • Custom script: call DestroyGroup(udg_QS_Group[udg_QS])
                    • Else - Actions
                  • Custom script: call RemoveLocation(udg_QS_Location[udg_QS])
                  • Custom script: call RemoveLocation(udg_QS_Location2[udg_QS])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • QS_IntervalTimer[QS] Equal to 0.60
                • Then - Actions
                  • Set QS_Location[QS] = (Position of QS_Caster[QS])
                  • Set QS_Location2[QS] = (QS_Location[QS] offset by (QS_Distance[QS] x 2.00) towards QS_Facing[QS] degrees)
                  • Set QS_Group[QS] = (Units within QS_Aoe[QS] of QS_Location[QS] matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of QS_Player[QS]) Equal to True))))
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ((Playable map area) contains QS_Location2[QS]) Equal to True
                    • Then - Actions
                      • Special Effect - Create a special effect attached to the chest of QS_Caster[QS] using QS_SFX3
                      • Special Effect - Destroy (Last created special effect)
                      • Unit - Move QS_Caster[QS] instantly to QS_Location2[QS]
                      • Animation - Play QS_Caster[QS]'s slam animation
                      • Special Effect - Create a special effect at QS_Location2[QS] using QS_SFX
                      • Special Effect - Destroy (Last created special effect)
                      • Unit Group - Pick every unit in QS_Group[QS] and do (Actions)
                        • Loop - Actions
                          • Special Effect - Create a special effect attached to the chest of (Picked unit) using QS_SFX2
                          • Special Effect - Destroy (Last created special effect)
                          • Unit - Move (Picked unit) instantly to QS_Location2[QS]
                          • Unit - Cause QS_Caster[QS] to damage (Picked unit), dealing QS_Damage[QS] damage of attack type Spells and damage type Normal
                      • Custom script: call DestroyGroup(udg_QS_Group[udg_QS])
                    • Else - Actions
                  • Custom script: call RemoveLocation(udg_QS_Location[udg_QS])
                  • Custom script: call RemoveLocation(udg_QS_Location2[udg_QS])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • QS_IntervalTimer[QS] Equal to 0.80
                • Then - Actions
                  • Set QS_Location[QS] = (Position of QS_Caster[QS])
                  • Set QS_Location2[QS] = (QS_Location[QS] offset by (QS_Distance[QS] x 3.00) towards QS_Facing[QS] degrees)
                  • Set QS_Group[QS] = (Units within QS_Aoe[QS] of QS_Location[QS] matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of QS_Player[QS]) Equal to True))))
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ((Playable map area) contains QS_Location2[QS]) Equal to True
                    • Then - Actions
                      • Special Effect - Create a special effect attached to the chest of QS_Caster[QS] using QS_SFX3
                      • Special Effect - Destroy (Last created special effect)
                      • Unit - Move QS_Caster[QS] instantly to QS_Location2[QS]
                      • Animation - Play QS_Caster[QS]'s slam animation
                      • Special Effect - Create a special effect at QS_Location2[QS] using QS_SFX
                      • Special Effect - Destroy (Last created special effect)
                      • Unit Group - Pick every unit in QS_Group[QS] and do (Actions)
                        • Loop - Actions
                          • Special Effect - Create a special effect attached to the chest of (Picked unit) using QS_SFX2
                          • Special Effect - Destroy (Last created special effect)
                          • Unit - Move (Picked unit) instantly to QS_Location2[QS]
                          • Unit - Cause QS_Caster[QS] to damage (Picked unit), dealing QS_Damage[QS] damage of attack type Spells and damage type Normal
                      • Custom script: call DestroyGroup(udg_QS_Group[udg_QS])
                    • Else - Actions
                  • Custom script: call RemoveLocation(udg_QS_Location[udg_QS])
                  • Custom script: call RemoveLocation(udg_QS_Location2[udg_QS])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • QS_IntervalTimer[QS] Greater than 0.80
                • Then - Actions
                  • Set QS_Skip = (QS_Skip - 1)
                  • Set QS_Off[QS] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • QS_Skip Equal to 0
                    • Then - Actions
                      • Set QS_Times = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                  • Unit - Turn collision for QS_Caster[QS] On
                  • Unit - Unpause QS_Caster[QS]
                • Else - Actions
            • Else - Actions

428295_10150631531064143_629724142_9293459_570145405_n.jpg

Gives a chance on each attack to slash the target at a very high speed rate, moving the hero to it's position and dealing agility based damage to every enemy unit close enough to the unlucky unit, and pushing it back randomly around the battlefield.

Level 1 - 15% Chance to proc. Deals the hero's agility as bonus damage in a 90 AoE. There is a 30% chance to damage the main target twice.
Level 2 - 30% Chance to proc. Deals two times the hero's agility as bonus damage in a 180 AoE. There is a 60% chance to damage the main target twice.
Level 3 - 45% Chance to proc. Deals three times the hero's agility as bonus damage in a 270 AoE. There is a 90% chance to damage the main target twice.
  • Fiery Edge Start
    • Events
      • Unit - A unit Is attacked
    • Conditions
      • (Level of Fiery Edge for (Attacking unit)) Greater than 0
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • Set FE_Caster = (Attacking unit)
      • Set FE_Target = (Triggering unit)
      • Set FE_Location = (Position of FE_Target)
      • Set FE_Player = (Owner of FE_Caster)
      • Set FE_AbilityLevel = (Level of Fiery Edge for FE_Caster)
      • -------- ---------------------------------------------------------------- --------
      • -------- Set the spell's area of effect here --------
      • -------- ---------------------------------------------------------------- --------
      • Set FE_Aoe = ((Real(FE_AbilityLevel)) x 90.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- This is the distance that target unit will travel upon proc --------
      • -------- ---------------------------------------------------------------- --------
      • Set FE_Distance = ((Real(FE_AbilityLevel)) x 30.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- Spell's damage (target unit gets damaged twice) --------
      • -------- ---------------------------------------------------------------- --------
      • Set FE_Damage = ((Real(FE_AbilityLevel)) x (Real((Agility of FE_Caster (Include bonuses)))))
      • -------- ---------------------------------------------------------------- --------
      • -------- Spell proc chance --------
      • -------- ---------------------------------------------------------------- --------
      • Set FE_Chance = ((Real(FE_AbilityLevel)) x 15.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- This is the special effect shown on the target unit --------
      • -------- ---------------------------------------------------------------- --------
      • Set FE_SFX = Abilities\Weapons\PhoenixMissile\Phoenix_Missile.mdl
      • -------- ---------------------------------------------------------------- --------
      • -------- This one right here is the one shown on the area of effect --------
      • -------- ---------------------------------------------------------------- --------
      • Set FE_SFX2 = Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
      • -------- ---------------------------------------------------------------- --------
      • -------- This is the special effect shown on caster --------
      • -------- ---------------------------------------------------------------- --------
      • Set FE_SFX3 = Abilities\Spells\Orc\MirrorImage\MirrorImageCaster.mdl
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • Set FE_Group = (Units within FE_Aoe of FE_Location matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of FE_Player) Equal to True)))
      • Set FE_Location2 = (FE_Location offset by FE_Distance towards (Random real number between 0.00 and 360.00) degrees)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Random percentage) Less than or equal to FE_Chance
        • Then - Actions
          • Special Effect - Create a special effect attached to the weapon of FE_Caster using FE_SFX3
          • Special Effect - Destroy (Last created special effect)
          • Special Effect - Create a special effect attached to the chest of FE_Target using FE_SFX
          • Special Effect - Destroy (Last created special effect)
          • Special Effect - Create a special effect at FE_Location using FE_SFX2
          • Special Effect - Destroy (Last created special effect)
          • Unit - Move FE_Caster instantly to FE_Location
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Random percentage) Less than or equal to (FE_Chance x 2.00)
            • Then - Actions
              • Unit - Cause FE_Caster to damage FE_Target, dealing FE_Damage damage of attack type Spells and damage type Normal
            • Else - Actions
          • Unit Group - Pick every unit in FE_Group and do (Actions)
            • Loop - Actions
              • Unit - Cause FE_Caster to damage (Picked unit), dealing FE_Damage damage of attack type Spells and damage type Normal
          • Unit - Move FE_Target instantly to FE_Location2
        • Else - Actions
      • Custom script: call RemoveLocation(udg_FE_Location)
      • Custom script: call RemoveLocation(udg_FE_Location2)
      • Custom script: call DestroyGroup(udg_FE_Group)

428295_10150631531084143_629724142_9293461_386465743_n.jpg

The hero summons a dark energy pulse around himself until a complete circle is reached. Every unit in contact with a dark energy pulse will get it's soul rotten; recieving damage, and a movement speed and damage output penalty. Additionaly, they won't be able to cast spells.

Level 1 - 100 Damage per pulse, 30% attack damage output penalty and 40% movement speed penalty. Lasts 5 seconds.
Level 2 - 200 Damage per pulse, 50% attack damage output penalty and 60% movement speed penalty. Lasts 7 seconds.
Level 3 - 300 Damage per pulse, 70% attack damage output penalty and 80% movement speed penalty. Lasts 9 seconds.
  • Dark Blast Start
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Dark Blast
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • DB_Skip Equal to 0
        • Then - Actions
          • Trigger - Turn on Dark Blast Loop <gen>
        • Else - Actions
      • Set DB_Skip = (DB_Skip + 1)
      • Set DB_Times = (DB_Times + 1)
      • Set DB_Off[DB_Times] = True
      • Set DB_Caster[DB_Times] = (Triggering unit)
      • Set DB_AbilityLevel[DB_Times] = (Level of Dark Blast for DB_Caster[DB_Times])
      • Set DB_DummyAbility = Rotten Soul Dummy
      • Set DB_IntervalTimer[DB_Times] = 0.00
      • Set DB_Player[DB_Times] = (Owner of DB_Caster[DB_Times])
      • -------- ---------------------------------------------------------------- --------
      • -------- Configurate spell's pulse distance to caster --------
      • -------- ---------------------------------------------------------------- --------
      • Set DB_Distance[DB_Times] = 130.00
      • -------- ---------------------------------------------------------------- --------
      • -------- Configurate spell's pulse damage --------
      • -------- ---------------------------------------------------------------- --------
      • Set DB_Damage[DB_Times] = ((Real(DB_AbilityLevel[DB_Times])) x 100.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- Configure spell's pulse SFX --------
      • -------- ---------------------------------------------------------------- --------
      • Set DB_SFX = Abilities\Spells\Undead\DeathCoil\DeathCoilSpecialArt.mdl
  • Dark Blast Loop
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • For each (Integer DB) from 1 to DB_Times, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • DB_Off[DB] Equal to True
            • Then - Actions
              • Set DB_IntervalTimer[DB] = (DB_IntervalTimer[DB] + 0.10)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DB_IntervalTimer[DB] Greater than 3.80
                • Then - Actions
                  • Set DB_Skip = (DB_Skip - 1)
                  • Set DB_Off[DB] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • DB_Skip Equal to 0
                    • Then - Actions
                      • Set DB_Times = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DB_IntervalTimer[DB] Equal to 0.20
                • Then - Actions
                  • Set DB_Location[DB] = (Position of DB_Caster[DB])
                  • Set DB_Location2[DB] = (DB_Location[DB] offset by DB_Distance[DB] towards 0.00 degrees)
                  • Set DB_Group[DB] = (Units within 100.00 of DB_Location2[DB] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of DB_Player[DB]) Equal to True)))
                  • Special Effect - Create a special effect at DB_Location2[DB] using DB_SFX
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Create 1 Dummy for DB_Player[DB] at DB_Location2[DB] facing Default building facing degrees
                  • Set DB_Dummy[DB] = (Last created unit)
                  • Unit - Add a 1.50 second Generic expiration timer to DB_Dummy[DB]
                  • Unit - Add DB_DummyAbility to DB_Dummy[DB]
                  • Unit Group - Pick every unit in DB_Group[DB] and do (Actions)
                    • Loop - Actions
                      • Unit - Cause DB_Caster[DB] to damage (Picked unit), dealing DB_Damage[DB] damage of attack type Spells and damage type Normal
                      • Unit - Order DB_Dummy[DB] to Neutral Fire Lord - Soul Burn (Picked unit)
                  • Custom script: call DestroyGroup(udg_DB_Group[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location2[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location[udg_DB])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DB_IntervalTimer[DB] Equal to 0.40
                • Then - Actions
                  • Set DB_Location[DB] = (Position of DB_Caster[DB])
                  • Set DB_Location2[DB] = (DB_Location[DB] offset by DB_Distance[DB] towards 30.00 degrees)
                  • Set DB_Group[DB] = (Units within 100.00 of DB_Location2[DB] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of DB_Player[DB]) Equal to True)))
                  • Special Effect - Create a special effect at DB_Location2[DB] using DB_SFX
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Create 1 Dummy for DB_Player[DB] at DB_Location2[DB] facing Default building facing degrees
                  • Set DB_Dummy[DB] = (Last created unit)
                  • Unit - Add a 1.50 second Generic expiration timer to DB_Dummy[DB]
                  • Unit - Add DB_DummyAbility to DB_Dummy[DB]
                  • Unit Group - Pick every unit in DB_Group[DB] and do (Actions)
                    • Loop - Actions
                      • Unit - Cause DB_Caster[DB] to damage (Picked unit), dealing DB_Damage[DB] damage of attack type Spells and damage type Normal
                      • Unit - Order DB_Dummy[DB] to Neutral Fire Lord - Soul Burn (Picked unit)
                  • Custom script: call DestroyGroup(udg_DB_Group[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location2[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location[udg_DB])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DB_IntervalTimer[DB] Equal to 0.60
                • Then - Actions
                  • Set DB_Location[DB] = (Position of DB_Caster[DB])
                  • Set DB_Location2[DB] = (DB_Location[DB] offset by DB_Distance[DB] towards 60.00 degrees)
                  • Set DB_Group[DB] = (Units within 100.00 of DB_Location2[DB] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of DB_Player[DB]) Equal to True)))
                  • Special Effect - Create a special effect at DB_Location2[DB] using DB_SFX
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Create 1 Dummy for DB_Player[DB] at DB_Location2[DB] facing Default building facing degrees
                  • Set DB_Dummy[DB] = (Last created unit)
                  • Unit - Add a 1.50 second Generic expiration timer to DB_Dummy[DB]
                  • Unit - Add DB_DummyAbility to DB_Dummy[DB]
                  • Unit Group - Pick every unit in DB_Group[DB] and do (Actions)
                    • Loop - Actions
                      • Unit - Cause DB_Caster[DB] to damage (Picked unit), dealing DB_Damage[DB] damage of attack type Spells and damage type Normal
                      • Unit - Order DB_Dummy[DB] to Neutral Fire Lord - Soul Burn (Picked unit)
                  • Custom script: call DestroyGroup(udg_DB_Group[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location2[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location[udg_DB])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DB_IntervalTimer[DB] Equal to 0.80
                • Then - Actions
                  • Set DB_Location[DB] = (Position of DB_Caster[DB])
                  • Set DB_Location2[DB] = (DB_Location[DB] offset by DB_Distance[DB] towards 90.00 degrees)
                  • Set DB_Group[DB] = (Units within 100.00 of DB_Location2[DB] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of DB_Player[DB]) Equal to True)))
                  • Special Effect - Create a special effect at DB_Location2[DB] using DB_SFX
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Create 1 Dummy for DB_Player[DB] at DB_Location2[DB] facing Default building facing degrees
                  • Set DB_Dummy[DB] = (Last created unit)
                  • Unit - Add a 1.50 second Generic expiration timer to DB_Dummy[DB]
                  • Unit - Add DB_DummyAbility to DB_Dummy[DB]
                  • Unit Group - Pick every unit in DB_Group[DB] and do (Actions)
                    • Loop - Actions
                      • Unit - Cause DB_Caster[DB] to damage (Picked unit), dealing DB_Damage[DB] damage of attack type Spells and damage type Normal
                      • Unit - Order DB_Dummy[DB] to Neutral Fire Lord - Soul Burn (Picked unit)
                  • Custom script: call DestroyGroup(udg_DB_Group[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location2[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location[udg_DB])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DB_IntervalTimer[DB] Equal to 1.00
                • Then - Actions
                  • Set DB_Location[DB] = (Position of DB_Caster[DB])
                  • Set DB_Location2[DB] = (DB_Location[DB] offset by DB_Distance[DB] towards 120.00 degrees)
                  • Set DB_Group[DB] = (Units within 100.00 of DB_Location2[DB] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of DB_Player[DB]) Equal to True)))
                  • Special Effect - Create a special effect at DB_Location2[DB] using DB_SFX
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Create 1 Dummy for DB_Player[DB] at DB_Location2[DB] facing Default building facing degrees
                  • Set DB_Dummy[DB] = (Last created unit)
                  • Unit - Add a 1.50 second Generic expiration timer to DB_Dummy[DB]
                  • Unit - Add DB_DummyAbility to DB_Dummy[DB]
                  • Unit Group - Pick every unit in DB_Group[DB] and do (Actions)
                    • Loop - Actions
                      • Unit - Cause DB_Caster[DB] to damage (Picked unit), dealing DB_Damage[DB] damage of attack type Spells and damage type Normal
                      • Unit - Order DB_Dummy[DB] to Neutral Fire Lord - Soul Burn (Picked unit)
                  • Custom script: call DestroyGroup(udg_DB_Group[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location2[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location[udg_DB])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DB_IntervalTimer[DB] Equal to 1.20
                • Then - Actions
                  • Set DB_Location[DB] = (Position of DB_Caster[DB])
                  • Set DB_Location2[DB] = (DB_Location[DB] offset by DB_Distance[DB] towards 150.00 degrees)
                  • Set DB_Group[DB] = (Units within 100.00 of DB_Location2[DB] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of DB_Player[DB]) Equal to True)))
                  • Special Effect - Create a special effect at DB_Location2[DB] using DB_SFX
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Create 1 Dummy for DB_Player[DB] at DB_Location2[DB] facing Default building facing degrees
                  • Set DB_Dummy[DB] = (Last created unit)
                  • Unit - Add a 1.50 second Generic expiration timer to DB_Dummy[DB]
                  • Unit - Add DB_DummyAbility to DB_Dummy[DB]
                  • Unit Group - Pick every unit in DB_Group[DB] and do (Actions)
                    • Loop - Actions
                      • Unit - Cause DB_Caster[DB] to damage (Picked unit), dealing DB_Damage[DB] damage of attack type Spells and damage type Normal
                      • Unit - Order DB_Dummy[DB] to Neutral Fire Lord - Soul Burn (Picked unit)
                  • Custom script: call DestroyGroup(udg_DB_Group[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location2[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location[udg_DB])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DB_IntervalTimer[DB] Equal to 1.40
                • Then - Actions
                  • Set DB_Location[DB] = (Position of DB_Caster[DB])
                  • Set DB_Location2[DB] = (DB_Location[DB] offset by DB_Distance[DB] towards 180.00 degrees)
                  • Set DB_Group[DB] = (Units within 100.00 of DB_Location2[DB] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of DB_Player[DB]) Equal to True)))
                  • Special Effect - Create a special effect at DB_Location2[DB] using DB_SFX
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Create 1 Dummy for DB_Player[DB] at DB_Location2[DB] facing Default building facing degrees
                  • Set DB_Dummy[DB] = (Last created unit)
                  • Unit - Add a 1.50 second Generic expiration timer to DB_Dummy[DB]
                  • Unit - Add DB_DummyAbility to DB_Dummy[DB]
                  • Unit Group - Pick every unit in DB_Group[DB] and do (Actions)
                    • Loop - Actions
                      • Unit - Cause DB_Caster[DB] to damage (Picked unit), dealing DB_Damage[DB] damage of attack type Spells and damage type Normal
                      • Unit - Order DB_Dummy[DB] to Neutral Fire Lord - Soul Burn (Picked unit)
                  • Custom script: call DestroyGroup(udg_DB_Group[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location2[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location[udg_DB])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DB_IntervalTimer[DB] Equal to 1.60
                • Then - Actions
                  • Set DB_Location[DB] = (Position of DB_Caster[DB])
                  • Set DB_Location2[DB] = (DB_Location[DB] offset by DB_Distance[DB] towards 210.00 degrees)
                  • Set DB_Group[DB] = (Units within 100.00 of DB_Location2[DB] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of DB_Player[DB]) Equal to True)))
                  • Special Effect - Create a special effect at DB_Location2[DB] using DB_SFX
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Create 1 Dummy for DB_Player[DB] at DB_Location2[DB] facing Default building facing degrees
                  • Set DB_Dummy[DB] = (Last created unit)
                  • Unit - Add a 1.50 second Generic expiration timer to DB_Dummy[DB]
                  • Unit - Add DB_DummyAbility to DB_Dummy[DB]
                  • Unit Group - Pick every unit in DB_Group[DB] and do (Actions)
                    • Loop - Actions
                      • Unit - Cause DB_Caster[DB] to damage (Picked unit), dealing DB_Damage[DB] damage of attack type Spells and damage type Normal
                      • Unit - Order DB_Dummy[DB] to Neutral Fire Lord - Soul Burn (Picked unit)
                  • Custom script: call DestroyGroup(udg_DB_Group[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location2[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location[udg_DB])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DB_IntervalTimer[DB] Equal to 1.80
                • Then - Actions
                  • Set DB_Location[DB] = (Position of DB_Caster[DB])
                  • Set DB_Location2[DB] = (DB_Location[DB] offset by DB_Distance[DB] towards 240.00 degrees)
                  • Set DB_Group[DB] = (Units within 100.00 of DB_Location2[DB] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of DB_Player[DB]) Equal to True)))
                  • Special Effect - Create a special effect at DB_Location2[DB] using DB_SFX
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Create 1 Dummy for DB_Player[DB] at DB_Location2[DB] facing Default building facing degrees
                  • Set DB_Dummy[DB] = (Last created unit)
                  • Unit - Add a 1.50 second Generic expiration timer to DB_Dummy[DB]
                  • Unit - Add DB_DummyAbility to DB_Dummy[DB]
                  • Unit Group - Pick every unit in DB_Group[DB] and do (Actions)
                    • Loop - Actions
                      • Unit - Cause DB_Caster[DB] to damage (Picked unit), dealing DB_Damage[DB] damage of attack type Spells and damage type Normal
                      • Unit - Order DB_Dummy[DB] to Neutral Fire Lord - Soul Burn (Picked unit)
                  • Custom script: call DestroyGroup(udg_DB_Group[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location2[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location[udg_DB])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DB_IntervalTimer[DB] Equal to 2.00
                • Then - Actions
                  • Set DB_Location[DB] = (Position of DB_Caster[DB])
                  • Set DB_Location2[DB] = (DB_Location[DB] offset by DB_Distance[DB] towards 270.00 degrees)
                  • Set DB_Group[DB] = (Units within 100.00 of DB_Location2[DB] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of DB_Player[DB]) Equal to True)))
                  • Special Effect - Create a special effect at DB_Location2[DB] using DB_SFX
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Create 1 Dummy for DB_Player[DB] at DB_Location2[DB] facing Default building facing degrees
                  • Set DB_Dummy[DB] = (Last created unit)
                  • Unit - Add a 1.50 second Generic expiration timer to DB_Dummy[DB]
                  • Unit - Add DB_DummyAbility to DB_Dummy[DB]
                  • Unit Group - Pick every unit in DB_Group[DB] and do (Actions)
                    • Loop - Actions
                      • Unit - Cause DB_Caster[DB] to damage (Picked unit), dealing DB_Damage[DB] damage of attack type Spells and damage type Normal
                      • Unit - Order DB_Dummy[DB] to Neutral Fire Lord - Soul Burn (Picked unit)
                  • Custom script: call DestroyGroup(udg_DB_Group[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location2[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location[udg_DB])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DB_IntervalTimer[DB] Equal to 2.20
                • Then - Actions
                  • Set DB_Location[DB] = (Position of DB_Caster[DB])
                  • Set DB_Location2[DB] = (DB_Location[DB] offset by DB_Distance[DB] towards 300.00 degrees)
                  • Set DB_Group[DB] = (Units within 100.00 of DB_Location2[DB] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of DB_Player[DB]) Equal to True)))
                  • Special Effect - Create a special effect at DB_Location2[DB] using DB_SFX
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Create 1 Dummy for DB_Player[DB] at DB_Location2[DB] facing Default building facing degrees
                  • Set DB_Dummy[DB] = (Last created unit)
                  • Unit - Add a 1.50 second Generic expiration timer to DB_Dummy[DB]
                  • Unit - Add DB_DummyAbility to DB_Dummy[DB]
                  • Unit Group - Pick every unit in DB_Group[DB] and do (Actions)
                    • Loop - Actions
                      • Unit - Cause DB_Caster[DB] to damage (Picked unit), dealing DB_Damage[DB] damage of attack type Spells and damage type Normal
                      • Unit - Order DB_Dummy[DB] to Neutral Fire Lord - Soul Burn (Picked unit)
                  • Custom script: call DestroyGroup(udg_DB_Group[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location2[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location[udg_DB])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DB_IntervalTimer[DB] Equal to 2.40
                • Then - Actions
                  • Set DB_Location[DB] = (Position of DB_Caster[DB])
                  • Set DB_Location2[DB] = (DB_Location[DB] offset by DB_Distance[DB] towards 330.00 degrees)
                  • Set DB_Group[DB] = (Units within 100.00 of DB_Location2[DB] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of DB_Player[DB]) Equal to True)))
                  • Special Effect - Create a special effect at DB_Location2[DB] using DB_SFX
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Create 1 Dummy for DB_Player[DB] at DB_Location2[DB] facing Default building facing degrees
                  • Set DB_Dummy[DB] = (Last created unit)
                  • Unit - Add a 1.50 second Generic expiration timer to DB_Dummy[DB]
                  • Unit - Add DB_DummyAbility to DB_Dummy[DB]
                  • Unit Group - Pick every unit in DB_Group[DB] and do (Actions)
                    • Loop - Actions
                      • Unit - Cause DB_Caster[DB] to damage (Picked unit), dealing DB_Damage[DB] damage of attack type Spells and damage type Normal
                      • Unit - Order DB_Dummy[DB] to Neutral Fire Lord - Soul Burn (Picked unit)
                  • Custom script: call DestroyGroup(udg_DB_Group[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location2[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location[udg_DB])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DB_IntervalTimer[DB] Equal to 2.60
                • Then - Actions
                  • Set DB_Location[DB] = (Position of DB_Caster[DB])
                  • Set DB_Location2[DB] = (DB_Location[DB] offset by DB_Distance[DB] towards 360.00 degrees)
                  • Set DB_Group[DB] = (Units within 100.00 of DB_Location2[DB] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of DB_Player[DB]) Equal to True)))
                  • Special Effect - Create a special effect at DB_Location2[DB] using DB_SFX
                  • Special Effect - Destroy (Last created special effect)
                  • Unit - Create 1 Dummy for DB_Player[DB] at DB_Location2[DB] facing Default building facing degrees
                  • Set DB_Dummy[DB] = (Last created unit)
                  • Unit - Add a 1.50 second Generic expiration timer to DB_Dummy[DB]
                  • Unit - Add DB_DummyAbility to DB_Dummy[DB]
                  • Unit Group - Pick every unit in DB_Group[DB] and do (Actions)
                    • Loop - Actions
                      • Unit - Cause DB_Caster[DB] to damage (Picked unit), dealing DB_Damage[DB] damage of attack type Spells and damage type Normal
                      • Unit - Order DB_Dummy[DB] to Neutral Fire Lord - Soul Burn (Picked unit)
                  • Custom script: call DestroyGroup(udg_DB_Group[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location2[udg_DB])
                  • Custom script: call RemoveLocation(udg_DB_Location[udg_DB])
                • Else - Actions
            • Else - Actions

428295_10150631531104143_629724142_9293462_227439633_n.jpg

Slim Shady cast a powerfull nova on the target unit's core, creating several shade bolts that will fly away from it, dealing damage to enemies. Right after this, the target unit is cursed by the Shade Curse, wich reduces it's movement speed, deals an initial ammount of damage and a sightly reduced damage per second.

Level 1 - Spawns 8 shadow bolts dealing 75 damage each one on a 250 distance from target. Shade Curse deals 100 inital damage followed by 15 damage per second and a 40% movement speed penalty. Lasts 12 seconds.
Level 2 - Spawns 8 shadow bolts dealing 150 damage each one on a 350 distance from target. Shade Curse deals 200 inital damage followed by 30 damage per second and a 80% movement speed penalty. Lasts 12 seconds.
Level 3 - Spawns 8 shadow bolts dealing 225 damage each one on a 450 distance from target. Shade Curse deals 300 inital damage followed by 45 damage per second and a 120% movement speed penalty. Lasts 12 seconds.
  • Shade Curse Start
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Shade Curse
    • Actions
      • Set SC_Caster = (Triggering unit)
      • Set SC_Target = (Target unit of ability being cast)
      • Set SC_Location = (Position of SC_Target)
      • Set SC_AbilityLevel = (Level of Shade Curse for SC_Caster)
      • Set SC_DummyAbility = Shadow Missile Dummy
      • Set SC_Player = (Owner of SC_Caster)
      • For each (Integer A) from 1 to 8, do (Actions)
        • Loop - Actions
          • Set SC_Location2 = (SC_Location offset by 50.00 towards (45.00 x (Real((Integer A)))) degrees)
          • Unit - Create 1 Dummy for SC_Player at SC_Location facing Default building facing degrees
          • Set SC_Dummy = (Last created unit)
          • Unit - Add SC_DummyAbility to SC_Dummy
          • Unit - Set level of SC_DummyAbility for SC_Dummy to SC_AbilityLevel
          • Unit - Order SC_Dummy to Orc Tauren Chieftain - Shockwave SC_Location2
          • Unit - Add a 1.50 second Generic expiration timer to SC_Dummy
          • Custom script: call RemoveLocation(udg_SC_Location2)
      • Custom script: call RemoveLocation(udg_SC_Location)

430508_10150631551794143_629724142_9293506_1969378844_n.jpg

The Arcane Mage summons an unstable static shock orb at the target point, wich floats off the ground until it reaches the sky. When that happens, every unit in the seeking area of effect will be damaged due to combustion of its energy beign. If in the seeking area there are units with mana at the moment of the damage, some lightning of pure energy will be summon at ALL enemies at range, burning their mana away and dealing bonus damage based on that. The orb has a few seconds of activation time once it reaches the sky.

Level 1 - Deals 90 base damage on a seeking area of effect of 375. Mana flare burns up to 100 mana points if triggered.
Level 2 - Deals 180 base damage on a seeking area of effect of 475. Mana flare burns up to 200 mana points if triggered.
Level 3 - Deals 270 base damage on a seeking area of effect of 575. Mana flare burns up to 300 mana points if triggered.
  • Cluster Shock Start
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Cluster Shock
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • CS_Skip Equal to 0
        • Then - Actions
          • Trigger - Turn on Cluster Shock Loop <gen>
        • Else - Actions
      • Set CS_Skip = (CS_Skip + 1)
      • Set CS_Times = (CS_Times + 1)
      • Set CS_Off[CS_Times] = True
      • Set CS_Caster[CS_Times] = (Triggering unit)
      • Set CS_AbilityLevel[CS_Times] = (Level of Cluster Shock for CS_Caster[CS_Times])
      • Set CS_IntervalTimer[CS_Times] = 0.00
      • Set CS_Heght[CS_Times] = 0.00
      • Set CS_DummyAbility = Mana Burn Dummy
      • Set CS_Location1[CS_Times] = (Target point of ability being cast)
      • Set CS_Player[CS_Times] = (Owner of CS_Caster[CS_Times])
      • -------- ---------------------------------------------------------------- --------
      • -------- Set the spell mana burn aoe seek --------
      • -------- ---------------------------------------------------------------- --------
      • Set CS_Aoe[CS_Times] = (((Real(CS_AbilityLevel[CS_Times])) x 100.00) + 275.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- Set the detonation damage --------
      • -------- ---------------------------------------------------------------- --------
      • Set CS_Damage[CS_Times] = ((Real(CS_AbilityLevel[CS_Times])) x 90.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- Special effects shown on levitating orb --------
      • -------- ---------------------------------------------------------------- --------
      • Set CS_SFX[1] = Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
      • Set CS_SFX[2] = Abilities\Weapons\DragonHawkMissile\DragonHawkMissile.mdl
      • -------- ---------------------------------------------------------------- --------
      • -------- Detonation SFX --------
      • -------- ---------------------------------------------------------------- --------
      • Set CS_SFX[3] = Objects\Spawnmodels\NightElf\NEDeathSmall\NEDeathSmall.mdl
  • Cluster Shock Loop
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • For each (Integer CS) from 1 to CS_Times, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • CS_Off[CS] Equal to True
            • Then - Actions
              • Set CS_IntervalTimer[CS] = (CS_IntervalTimer[CS] + 0.10)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • CS_IntervalTimer[CS] Greater than 3.80
                • Then - Actions
                  • Set CS_Skip = (CS_Skip - 1)
                  • Set CS_Off[CS] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • CS_Skip Equal to 0
                    • Then - Actions
                      • Set CS_Times = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • CS_IntervalTimer[CS] Equal to 0.10
                • Then - Actions
                  • Unit - Create 1 Dummy for CS_Player[CS] at CS_Location1[CS] facing Default building facing degrees
                  • Set CS_Dummy[CS] = (Last created unit)
                  • Animation - Change CS_Dummy[CS]'s vertex coloring to (25.00%, 60.00%, 55.00%) with 35.00% transparency
                  • Animation - Change CS_Dummy[CS] flying height to -100.00 at 0.00
                  • Special Effect - Create a special effect attached to the chest of CS_Dummy[CS] using CS_SFX[1]
                  • Set CS_SFXDummy[CS] = (Last created special effect)
                  • Special Effect - Create a special effect attached to the chest of CS_Dummy[CS] using CS_SFX[2]
                  • Set CS_SFXDummy2[CS] = (Last created special effect)
                  • Special Effect - Create a special effect at CS_Location1[CS] using CS_SFX[3]
                  • Special Effect - Destroy (Last created special effect)
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • CS_IntervalTimer[CS] Less than 3.00
                • Then - Actions
                  • Animation - Change CS_Dummy[CS] flying height to ((Current flying height of CS_Dummy[CS]) + 50.00) at 100.00
                  • Animation - Change CS_Dummy[CS]'s size to (((Current flying height of CS_Dummy[CS]) + 2.00)%, ((Current flying height of CS_Dummy[CS]) + 2.00)%, (Current flying height of CS_Dummy[CS])%) of its original size
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • CS_IntervalTimer[CS] Equal to 3.80
                • Then - Actions
                  • Set CS_Heght[CS] = (Current flying height of CS_Dummy[CS])
                  • Special Effect - Destroy CS_SFXDummy[CS]
                  • Special Effect - Destroy CS_SFXDummy2[CS]
                  • Unit - Remove CS_Dummy[CS] from the game
                  • Set CS_Group[CS] = (Units within CS_Aoe[CS] of CS_Location1[CS] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of CS_Player[CS]) Equal to True)))
                  • Unit Group - Pick every unit in CS_Group[CS] and do (Actions)
                    • Loop - Actions
                      • For each (Integer A) from 1 to (Number of units in CS_Group[CS]), do (Actions)
                        • Loop - Actions
                          • Set CS_Location1[CS] = (Position of (Picked unit))
                          • Unit - Create 1 Dummy for CS_Player[CS] at CS_Location1[CS] facing Default building facing degrees
                          • Set CS_Dummy[CS] = (Last created unit)
                          • Animation - Change CS_Dummy[CS] flying height to CS_Heght[CS] at 0.00
                          • Unit - Add a 2.00 second Generic expiration timer to CS_Dummy[CS]
                          • Unit - Add CS_DummyAbility to CS_Dummy[CS]
                          • Unit - Set level of CS_DummyAbility for CS_Dummy[CS] to CS_AbilityLevel[CS]
                          • Unit - Order CS_Dummy[CS] to Night Elf Demon Hunter - Mana Burn (Picked unit)
                          • Special Effect - Create a special effect at CS_Location1[CS] using CS_SFX[3]
                          • Special Effect - Destroy (Last created special effect)
                          • Unit - Cause CS_Caster[CS] to damage (Picked unit), dealing CS_Damage[CS] damage of attack type Spells and damage type Normal
                          • Custom script: call RemoveLocation(udg_CS_Location1[udg_CS])
                  • Custom script: call RemoveLocation(udg_CS_Location1[udg_CS])
                  • Custom script: call DestroyGroup(udg_CS_Group[udg_CS])
                • Else - Actions
            • Else - Actions

430508_10150631551809143_629724142_9293508_627318046_n.jpg

Impacts a enemy unit with a surge of arcane energy, dealing damage to it's very core and caging the target into a box of unstable static walls. if the target (or any other unit) comes close enough of theese walls while the are active, it will be pulled inside of the cage, recieving huge damage and having 25% reduced mana points. Enemy units that come closer to the cage from outside will also be trapped, but keep in mind that all targets can get out with a perfect timing, though.

Level 1 - Deals 75 surge damage. Traps the target for 8 seconds and deals 225 damage to enemies that come closer to the walls.
Level 2 - Deals 150 surge damage. Traps the target for 16 seconds and deals 450 damage to enemies that come closer to the walls.
Level 3 - Deals 225 surge damage. Traps the target for 24 seconds and deals 700 damage to enemies that come closer to the walls.
  • The Killing Box Start
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to The Killing Box
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • TKB_Skip Equal to 0
        • Then - Actions
          • Trigger - Turn on The Killing Box Loop <gen>
        • Else - Actions
      • Set TKB_Skip = (TKB_Skip + 1)
      • Set TKB_Times = (TKB_Times + 1)
      • Set TKB_Off[TKB_Times] = True
      • Set TKB_Caster[TKB_Times] = (Triggering unit)
      • Set TKB_AbilityLevel[TKB_Times] = (Level of The Killing Box for TKB_Caster[TKB_Times])
      • Set TKB_Target[TKB_Times] = (Target unit of ability being cast)
      • Set TKB_Location[TKB_Times] = (Position of TKB_Target[TKB_Times])
      • Set TKB_Player[TKB_Times] = (Owner of TKB_Caster[TKB_Times])
      • Set TKB_IntervalTimer[TKB_Times] = 0.00
      • Set TKB_Counter[TKB_Times] = 0.00
      • -------- ---------------------------------------------------------------- --------
      • -------- The distance within the unit is caged in the flares --------
      • -------- ---------------------------------------------------------------- --------
      • Set TKB_Distance[TKB_Times] = 290.00
      • -------- ---------------------------------------------------------------- --------
      • -------- The duration of the spell --------
      • -------- ---------------------------------------------------------------- --------
      • Set TKB_Duration[TKB_Times] = ((Real(TKB_AbilityLevel[TKB_Times])) x 8.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- Damage that a unit recieves if gets too close to the walls --------
      • -------- ---------------------------------------------------------------- --------
      • Set TKB_Damage[TKB_Times] = ((Real(TKB_AbilityLevel[TKB_Times])) x 225.00)
      • -------- ---------------------------------------------------------------- --------
      • -------- Flare's walls special effects --------
      • -------- ---------------------------------------------------------------- --------
      • Set TKB_SFX[1] = Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
      • Set TKB_SFX[2] = Abilities\Weapons\DragonHawkMissile\DragonHawkMissile.mdl
      • -------- ---------------------------------------------------------------- --------
      • -------- Special effect shown on contact with the walls --------
      • -------- ---------------------------------------------------------------- --------
      • Set TKB_SFX[3] = Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
  • The Killing Box Loop
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • -------- ---------------------------------------------------------------- --------
      • -------- Don't touch this settings --------
      • -------- ---------------------------------------------------------------- --------
      • For each (Integer TKB) from 1 to TKB_Times, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • TKB_Off[TKB] Equal to True
            • Then - Actions
              • Set TKB_Duration[TKB] = (TKB_Duration[TKB] - 0.10)
              • Set TKB_IntervalTimer[TKB] = (TKB_IntervalTimer[TKB] + 0.10)
              • Set TKB_Counter[TKB] = (TKB_Counter[TKB] + 15.00)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • TKB_Duration[TKB] Less than or equal to 0.00
                • Then - Actions
                  • Set TKB_Skip = (TKB_Skip - 1)
                  • Set TKB_Off[TKB] = False
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • TKB_Skip Equal to 0
                    • Then - Actions
                      • Set TKB_Times = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
                  • Custom script: call RemoveLocation(udg_TKB_Location[udg_TKB])
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • TKB_Duration[TKB] Greater than 0.00
                  • TKB_IntervalTimer[TKB] Equal to 0.50
                • Then - Actions
                  • Set TKB_IntervalTimer[TKB] = 0.00
                  • For each (Integer A) from 1 to 8, do (Actions)
                    • Loop - Actions
                      • Set TKB_Location2[TKB] = (TKB_Location[TKB] offset by TKB_Distance[TKB] towards ((45.00 x (Real((Integer A)))) + TKB_Counter[TKB]) degrees)
                      • Set TKB_Group[TKB] = (Units within 125.00 of TKB_Location2[TKB] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) belongs to an enemy of TKB_Player[TKB]) Equal to True)))
                      • Special Effect - Create a special effect at TKB_Location2[TKB] using TKB_SFX[1]
                      • Special Effect - Destroy (Last created special effect)
                      • Special Effect - Create a special effect at TKB_Location2[TKB] using TKB_SFX[2]
                      • Special Effect - Destroy (Last created special effect)
                      • Unit Group - Pick every unit in TKB_Group[TKB] and do (Actions)
                        • Loop - Actions
                          • Special Effect - Create a special effect attached to the chest of (Picked unit) using TKB_SFX[3]
                          • Special Effect - Destroy (Last created special effect)
                          • Unit - Cause TKB_Caster[TKB] to damage (Picked unit), dealing TKB_Damage[TKB] damage of attack type Spells and damage type Normal
                          • Unit - Set mana of (Picked unit) to ((Mana of (Picked unit)) / 25.00)
                          • Unit - Move (Picked unit) instantly to TKB_Location[TKB]
                      • Custom script: call RemoveLocation(udg_TKB_Location2[udg_TKB])
                      • Custom script: call DestroyGroup(udg_TKB_Group[udg_TKB])
                • Else - Actions
            • Else - Actions


Keywords:
spell, aoe, pack, spellpack, single-target, arcane, blademaster, crypt lord, pyro, fire, ice, cold, thunder, shock, static, electric, shadow, shade, d
Contents

SimpleYetAwesome Spellpack v1.1 (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. Required changes Set the dummy's deat type to Can't raise, does not decay Focused Lightning Loop causes leaksSet FL_StartPoint[FL_Times] = (Position of FL_Target[FL_Times])...

Moderator

M

Moderator

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

Reviewed by Maker, Simple Yet Awesome Spellpack v1.0, 6th Apr 2012

Required changes
  • Set the dummy's deat type to Can't raise, does not decay
  • Focused Lightning Loop causes leaks
    • Set FL_StartPoint[FL_Times] = (Position of FL_Target[FL_Times])
  • Rendezvous Loop has a location leak
  • Quick Slash seems to be leaking Target point of ability being cast
    Quick Slash could be instant cast since it uses unit facing, and not angle or distance between points
Suggested changes
  • Vulcanization could spam less special effects
  • V_Targer location doesn't need to ne an array
  • The caster does not get the credit from all kills done by Vulcanization since
    the dummies deal damage also
    The same applie for other spells
  • Remove invul ability from the dummy, it has Locust
  • The dummy unit gives lots of vision
  • You could share "temp" variables between abilities
  • Use dynamic indexing by Hanky
  • Exorcism could display the floating text only for players that have vision over the location/unit
  • Dark Blast Loop could be shortened by a lot if you used modulo operation when you check the interval time
  • [Cluster Shock Loop]: Flying heights can't be negative and unit scales for x,y and z must be the same
 
Level 11
Joined
May 13, 2010
Messages
167
v1.1 Changelog:

-Invulnerable ability removed from Dummy unit
-Reduced Dummy unit sight radius to 10 (for both day and night)
-Dummy unit death type changed to Can't raise, does not decay
-Reduced Dummy unit regenration rate to 0
-Fixed a leak in Focused Lightning Loop trigger
-Fixed a leak in Quick Slash Start trigger
-Reworked Rezdenvous triggers to include a Dummy unit in order to avoid possible location leaks
-Fixed Quick Slash ability to be instant
-Fixed Quick Slash tooltip to fit previous change
-V_TargetLocation Variable no longer content arrays (Caster should get the credit from all kills done by Vulcanization now)
-Fixed a typo error on Holy Grenade spell (For both tooltips AND triggers)

v1.0 Changelog:

-Public release


CREDITS:
-HolyNova.mdx by Champara Bros
-ShadeMissile.mdx by judash137
-TheHolyBomb.mdx by JetFangInferno

Also, seems like the format got kinda ugly :( if someone wants to re-organizate the hidden tags (assuming it is possible for one of you guys to do it) please feel free too! i am WAY TOO TIRED! haha hope you liked it.
 
Last edited:

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,468
settings for constant things like the frozen blast's special effect model should be done in a general init trigger rather than every time the spell is run...

In real life it's not going to make one bit of difference where efficiency is concerned. Now doing something like creating handles each time, is a wasteful thing if it's not necessary, but setting simple variables (string, real, integer, boolean) a half dozen redundant times per cast is not going to make anyone lose sleep (as those operations would be performed within 1/2^31 seconds by your average processor).

Especially since when you have those things in your basic-cast trigger, you don't have to have a third trigger per spell that needs to be carried over.
 
Level 11
Joined
May 13, 2010
Messages
167
PLEASE give me some spell related comments people. I alredy know my coding sucks, so if you point that out (in any way), at least give me some advice on how to improve it.

I would suggest using co-ordinates rather than moving units using the GUI function - it has a tendency to cause heavy lag when it's being used a lot.

Also, why exactly are the loops every 0.1 seconds as opposed to 0.03? (Just curious)

Dunno about the 0.1 and 0.03 loops. I didn't made them all in the very same day so i created the in very different ways, i think. BTW, most of your resources help me a LOT to improve, so thanks!
 
Level 12
Joined
Aug 12, 2008
Messages
349
You shouldn't use the "Unit - A Unit Begins casting an ability". Maker told me that one can get away without costing any mana by using the spell then hit stop.
Maker said:
It does use cooldown and mana with "Starts the effect". It doesn't use them with "Begins casting..." and ordering stop.

Besides, it isn't necessary to create a point variable for each spell. You can use a un-arrayed point variable over and over again for the other spells, a temp variable.
 
Level 7
Joined
Jan 28, 2012
Messages
266
you could convert this
  • For each (Integer A) from 1 to 12, do (Actions)
    • Loop - Actions
      • Set V_TargetLocation[V] = (V_Location[V] offset by (V_Aoe[V] / Count) towards ((Real((Integer A))) x 30.00) degrees)
      • Special Effect - Create a special effect at V_TargetLocation[V] using V_IgnitionSFX
      • Set V_Ignition[V] = (Last created special effect)
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within 100.00 of V_TargetLocation[V] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is dead) Equal to False)) and (((Matching unit) belongs to an enemy of V_Player[V]) Equal to True))) and do (Actions)
        • Loop - Actions
          • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Weapons\FireBallMissile\FireBallMissile.mdl
          • Special Effect - Destroy (Last created special effect)
          • Unit - Cause V_Caster[V] to damage (Picked unit), dealing V_IgnitionDamage[V] damage of attack type Spells and damage type Normal
        • Special Effect - Destroy V_Ignition[V]
        • Custom script: call RemoveLocation(udg_V_TargetLocation[udg_V])
        • .....
        • .....
        • ....
        • ....
        • ..
into this
  • For each (Integer Count from 1 to 4, do (Actions)
    • Loop - Actions
      • For each (Integer A) from 1 to 12, do (Actions)
        • Loop - Actions
          • Set udg_TempLoc = (V_Location[V] offset by (V_Aoe[V] / 4.00) towards ((Real((Integer A))) x 30.00) degrees)
          • Special Effect - Create a special effect at udg_TempLoc using V_IgnitionSFX
          • Special Effect - Destroy (Last created special effect)
          • Custom script: set bj_wantDestroyGroup = true
          • Unit Group - Pick every unit in (Units within 100.00 of udg_TempLoc matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is dead) Equal to False)) and (((Matching unit) belongs to an enemy of V_Player[V]) Equal to True))) and do (Actions)
            • Loop - Actions
              • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Weapons\FireBallMissile\FireBallMissile.mdl
              • Special Effect - Destroy (Last created special effect)
              • Unit - Cause V_Caster[V] to damage (Picked unit), dealing V_IgnitionDamage[V] damage of attack type Spells and damage type Normal
        • Custom script: call RemoveLocation(udg_TempLoc)
to make the code shorter and easier to read, doesn't improve effiecency or any thing, but it makes changing things a lot easier, you only have to change it in one place rather then 4.

I advise you follow Tank Commanders advice on co-ordinates, it would improve all of your spells, while it will take a while to implement do to the shear number of spell it would make some of them lagg less on my very ancient and decrepit comp.

also, congrats on the shear number of spells.

p.s.
Holy Granade

.......

Holy Granade Loop
should be spelled Grenade:grin:
 
Level 11
Joined
May 13, 2010
Messages
167
You shouldn't use the "Unit - A Unit Begins casting an ability". Maker told me that one can get away without costing any mana by using the spell then hit stop.


Besides, it isn't necessary to create a point variable for each spell. You can use a un-arrayed point variable over and over again for the other spells, a temp variable.

You are right, i will get this done next week, maybe :) Thanks for your help!

Oh and about the variables, i was going to do that, but then i though that if someone exports just one spell of the pack, MAYBE he/she will rather have the spell's own variables for organization issues. Dunno about that, i may keep it as it is for now.

you could convert this
  • For each (Integer A) from 1 to 12, do (Actions)
    • Loop - Actions
      • Set V_TargetLocation[V] = (V_Location[V] offset by (V_Aoe[V] / Count) towards ((Real((Integer A))) x 30.00) degrees)
      • Special Effect - Create a special effect at V_TargetLocation[V] using V_IgnitionSFX
      • Set V_Ignition[V] = (Last created special effect)
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within 100.00 of V_TargetLocation[V] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is dead) Equal to False)) and (((Matching unit) belongs to an enemy of V_Player[V]) Equal to True))) and do (Actions)
        • Loop - Actions
          • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Weapons\FireBallMissile\FireBallMissile.mdl
          • Special Effect - Destroy (Last created special effect)
          • Unit - Cause V_Caster[V] to damage (Picked unit), dealing V_IgnitionDamage[V] damage of attack type Spells and damage type Normal
        • Special Effect - Destroy V_Ignition[V]
        • Custom script: call RemoveLocation(udg_V_TargetLocation[udg_V])
        • .....
        • .....
        • ....
        • ....
        • ..
into this
  • For each (Integer Count from 1 to 4, do (Actions)
    • Loop - Actions
      • For each (Integer A) from 1 to 12, do (Actions)
        • Loop - Actions
          • Set udg_TempLoc = (V_Location[V] offset by (V_Aoe[V] / 4.00) towards ((Real((Integer A))) x 30.00) degrees)
          • Special Effect - Create a special effect at udg_TempLoc using V_IgnitionSFX
          • Special Effect - Destroy (Last created special effect)
          • Custom script: set bj_wantDestroyGroup = true
          • Unit Group - Pick every unit in (Units within 100.00 of udg_TempLoc matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is dead) Equal to False)) and (((Matching unit) belongs to an enemy of V_Player[V]) Equal to True))) and do (Actions)
            • Loop - Actions
              • Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Weapons\FireBallMissile\FireBallMissile.mdl
              • Special Effect - Destroy (Last created special effect)
              • Unit - Cause V_Caster[V] to damage (Picked unit), dealing V_IgnitionDamage[V] damage of attack type Spells and damage type Normal
        • Custom script: call RemoveLocation(udg_TempLoc)
to make the code shorter and easier to read, doesn't improve effiecency or any thing, but it makes changing things a lot easier, you only have to change it in one place rather then 4.

I advise you follow Tank Commanders advice on co-ordinates, it would improve all of your spells, while it will take a while to implement do to the shear number of spell it would make some of them lagg less on my very ancient and decrepit comp.

also, congrats on the shear number of spells.

p.s. should be spelled Grenade:grin:

Yup! I will apply that in next week's patch :grin: Thanks for the Grenade (am i doing it right?) correction!

Oh about the co-ordinates, i really on't know how the fuck does that work :eekani: Still a newbie! But well, i will definetly try to learn about that soon.
 
Level 11
Joined
May 13, 2010
Messages
167
adding an init trigger for all your spells would be nice to make everything more configurable.

also for a bunch of Gui spells that use coordinates look at TankCommander's resources.

p.s yes you spelled grenade right :wink: ; )

Awesome! Thanks again!

EDIT: BTW, i wonder if this is going to be reviewed anytime soon..
 
Last edited:
Top