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

Magnetised Energy Bombs V1.10

  • Like
Reactions: Matt
Final "Energy" spell I'm making for a while

Magnetised Energy Bombs:

Learn: Creates Magnetised Energy Bombs which orbit the caster, which leave a trail of fire and pull nearby units into them damaging them until they explode, knocking back all enemies caught within them. Dealing an additional 75 damage if the units collide into a rock. Also deals further mana damage with a feedback effect.

Level 1: Creates 2 Magnetised Energy Bombs which orbit the caster, which leave a trail of fire and pull nearby units into them damaging them dealing 12 damage per second until they explode dealing 150 damage and knocking back all enemies caught within them. Dealing an additional 75 damage if the units collide into a rock. Also deals a further 75 mana damage, which has a feedback effect dealing an additional 75 damage.

Level 2: Creates 3 Magnetised Energy Bombs which orbit the caster, which leave a trail of fire and pull nearby units into them damaging them dealing 24 damage per second until they explode dealing 200 damage and knocking back all enemies caught within them. Dealing an additional 75 damage if the units collide into a rock. Also deals a further 100 mana damage, which has a feedback effect dealing an additional 125 damage.

Level 3: Creates 4 Magnetised Energy Bombs which orbit the caster, which leave a trail of fire and pull nearby units into them damaging them dealing 36 damage per second until they explode dealing 250 damage and knocking back all enemies caught within them. Dealing an additional 75 damage if the units collide into a rock. Also deals a further 150 mana damage, which has a feedback effect dealing an additional 225 damage.



- Heavily Configurable
- 5 effects to enemy units
| - Explosion Damage
| - Fire Damage
| - Mana Damage
| - Feedback Damage
| - Extra damage for smashing units INTO ROCKS (face first)
- 3 Visible effects
| - Spinning "Bombs"
| - Magnetism on enemy units
| - Knockback on enemy units
- EYE CANDY 83



  • MEB Configuration
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- Do not touch --------
      • Hashtable - Create a hashtable
      • Set MEB_Hash = (Last created hashtable)
      • -------- ------- --------
      • -------- Determines the damage the explosion when the Bombs explode --------
      • Set MEB_DamageBase = 100.00
      • Set MEB_DamagePerLevel = 50.00
      • -------- Determines the area of where the damage will be dealt --------
      • Set MEB_ExplosionAOEBase = 150.00
      • Set MEB_ExplosionAOPerLevel = 50.00
      • -------- Determines how fast the Orbs will leave the centre --------
      • Set MEB_DistanceIncrease = 4.00
      • -------- Determines how long each Bomb will last for before exploding --------
      • Set MEB_DurationBase = 2.00
      • Set MEB_DurationPerLevel = 0.50
      • -------- Determines the height of the lightning effects --------
      • Set MEB_LightningHeight = 75.00
      • -------- Determines the rate of the Knockback decreasing to 0 --------
      • Set MEB_KnockbackDetriment = 1.00
      • -------- Determines the strength behind the knockback/how far it will push --------
      • Set MEB_KnockbackStrengthBase = 25.00
      • Set MEB_KnockbackStrengthPerLevel = 10.00
      • -------- Determines the area effected by the magnetism of each Bomb --------
      • Set MEB_MagneticAOEBase = 100.00
      • Set MEB_MagneticAOEPerLevel = 25.00
      • -------- Determines the strength of the Magnetism --------
      • Set MEB_MagneticStrengthBase = 25.00
      • Set MEB_MagneticStrengthPerLevel = 5.00
      • -------- Determines the damage done to the mana of units --------
      • Set MEB_ManaDamageBase = 50.00
      • Set MEB_ManaDamagePerLevel = 25.00
      • -------- Determines the feedback ratio from mana to health damage --------
      • Set MEB_ManaToHealthDamageBase = 0.75
      • Set MEB_ManaToHealthDamagePerLevel = 0.25
      • -------- Determines the speed of revolution --------
      • Set MEB_Speed = 4.00
      • -------- Determines how far out the Bombs start from the caster --------
      • Set MEB_StartDistance = 150.00
      • -------- Determines how many Bombs are made --------
      • Set MEB_SidesBase = 1
      • Set MEB_SidesPerLevel = 1
      • -------- Determines the bonus damage for hitting against rocks --------
      • Set MEB_RockSmash = 75.00
      • -------- Determines how much damage the burning fire does --------
      • Set MEB_BurnDamageBase = 0.25
      • Set MEB_BurnDamagePerLevel = 0.10
      • -------- Determines the AOE of the burning fire --------
      • Set MEB_BurnAoe = 50.00
      • -------- Determines how far back the burning tail goes --------
      • Set MEB_TailDurationBase = 0.05
      • Set MEB_TailDurationPerLevel = 0.00
      • -------- Determines what unit will be used as the bomb --------
      • Set MEB_Bomb = Energy Magnet
      • -------- Determines what unit will be used as the tail --------
      • Set MEB_Tail = Energy Tail
      • -------- Determines what unit will be used as the spell --------
      • Set MEB_Spell = Magnetised Energy Bombs
      • -------- Determines what Lightning effect will be used for the magnetism --------
      • Set MEB_Lightning = CLPB
      • -------- Determines what Special effects will be used at different points of the spell --------
      • -------- Creation of the Bombs --------
      • Set MEB_SFXSpawn = Abilities\Spells\Items\AIre\AIreTarget.mdl
      • -------- Explosion --------
      • Set MEB_SFXDeath = Objects\Spawnmodels\NightElf\NEDeathSmall\NEDeathSmall.mdl
      • -------- Effect created on knockback --------
      • Set MEB_SFXKnockback = Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
      • -------- Destroy Trees when knockbacked/dragged through them? --------
      • Set MEB_TreeKill = True
      • -------- Area of trees destroyed --------
      • Set MEB_TreeDestroyArea = 100.00
      • -------- ------- --------
      • -------- Do not touch --------
      • -------- Tree Checking Set up --------
      • Set MEB_TempPoint = (Center of (Playable map area))
      • Unit - Create 1 Peasant for Neutral Passive at MEB_TempPoint facing Default building facing degrees
      • Set MEB_TreeChecker = (Last created unit)
      • Unit - Hide MEB_TreeChecker
      • Unit - Make MEB_TreeChecker Invulnerable
      • Custom script: call RemoveLocation (udg_MEB_TempPoint)
      • -------- ------ --------
  • MEB Activation
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to MEB_Spell
    • Actions
      • -------- Cricle Set up --------
      • Set MEB_U = (Triggering unit)
      • Set MEB_TempI = (Level of MEB_Spell for MEB_U)
      • Set MEB_TempReal = (Real(MEB_TempI))
      • Set MEB_TempPoint = (Position of MEB_U)
      • Set MEB_Angle = 0.00
      • -------- ------ --------
      • -------- Spell Start --------
      • For each (Integer MEB_I) from 1 to (MEB_SidesBase + (MEB_SidesPerLevel x MEB_TempI)), do (Actions)
        • Loop - Actions
          • -------- Creation --------
          • Set MEB_Angle = (MEB_Angle + (360.00 / ((Real(MEB_SidesBase)) + ((Real(MEB_SidesPerLevel)) x MEB_TempReal))))
          • Set MEB_TempPoint2 = (MEB_TempPoint offset by MEB_StartDistance towards MEB_Angle degrees)
          • Unit - Create 1 MEB_Bomb for Neutral Passive at MEB_TempPoint2 facing Default building facing degrees
          • Special Effect - Create a special effect at MEB_TempPoint2 using MEB_SFXSpawn
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation (udg_MEB_TempPoint2)
          • -------- ------ --------
          • -------- Set up --------
          • Set MEB_TempU = (Last created unit)
          • Unit - Add a (MEB_DurationBase + (MEB_DurationPerLevel x MEB_TempReal)) second Generic expiration timer to MEB_TempU
          • Unit Group - Add MEB_TempU to MEB_Bombs
          • Custom script: set udg_MEB_UHandle = GetHandleId(udg_MEB_TempU)
          • -------- ------ --------
          • -------- Passing Information --------
          • Hashtable - Save Handle OfMEB_U as 1 of MEB_UHandle in MEB_Hash
          • Hashtable - Save (MEB_BurnDamageBase + (MEB_BurnDamagePerLevel x MEB_TempReal)) as 2 of MEB_UHandle in MEB_Hash
          • Hashtable - Save (MEB_DamageBase + (MEB_DamagePerLevel x MEB_TempReal)) as 3 of MEB_UHandle in MEB_Hash
          • Hashtable - Save (MEB_KnockbackStrengthBase + (MEB_KnockbackStrengthPerLevel x MEB_TempReal)) as 4 of MEB_UHandle in MEB_Hash
          • Hashtable - Save (MEB_MagneticStrengthBase + (MEB_MagneticStrengthPerLevel x MEB_TempReal)) as 5 of MEB_UHandle in MEB_Hash
          • Hashtable - Save (MEB_ManaDamageBase + (MEB_ManaDamagePerLevel x MEB_TempReal)) as 6 of MEB_UHandle in MEB_Hash
          • Hashtable - Save (MEB_ManaToHealthDamageBase + (MEB_ManaToHealthDamagePerLevel x MEB_TempReal)) as 7 of MEB_UHandle in MEB_Hash
          • Hashtable - Save (MEB_TailDurationBase + (MEB_TailDurationPerLevel x MEB_TempReal)) as 8 of MEB_UHandle in MEB_Hash
          • Hashtable - Save (MEB_MagneticAOEBase + (MEB_MagneticAOEPerLevel x MEB_TempReal)) as 9 of MEB_UHandle in MEB_Hash
          • Hashtable - Save (MEB_ExplosionAOEBase + (MEB_MagneticAOEPerLevel x MEB_TempReal)) as 15 of MEB_UHandle in MEB_Hash
          • Hashtable - Save MEB_Angle as 10 of MEB_UHandle in MEB_Hash
          • Hashtable - Save MEB_StartDistance as 11 of MEB_UHandle in MEB_Hash
          • Hashtable - Save 1 as 12 of MEB_UHandle in MEB_Hash
          • -------- ------ --------
      • Trigger - Turn on MEB Death <gen>
      • Trigger - Turn on MEB Loop <gen>
      • -------- ------ --------
  • MEB Death
    • Events
      • Unit - A unit owned by Neutral Passive Dies
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to MEB_Bomb
    • Actions
      • -------- Death Setup --------
      • Set MEB_U = (Triggering unit)
      • Custom script: set udg_MEB_UHandle = GetHandleId(udg_MEB_U)
      • Set MEB_TempPoint = (Position of MEB_U)
      • Special Effect - Create a special effect at MEB_TempPoint using MEB_SFXDeath
      • Special Effect - Destroy (Last created special effect)
      • -------- ------ --------
      • -------- Explosion --------
      • Set MEB_TempGroup = (Units in (Playable map area) matching ((Load 14 of (Key (Matching unit)) in MEB_Hash) Equal to MEB_U))
      • Unit Group - Pick every unit in MEB_TempGroup and do (Actions)
        • Loop - Actions
          • -------- Check Set up --------
          • Set MEB_TempU = (Picked unit)
          • Custom script: set udg_MEB_UHandleC = GetHandleId(udg_MEB_TempU)
          • Set MEB_TempPoint2 = (Position of MEB_TempU)
          • Lightning - Destroy (Load 13 of MEB_UHandleC in MEB_Hash)
          • -------- ------ --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Distance between MEB_TempPoint and MEB_TempPoint2) Greater than (Load 15 of MEB_UHandle from MEB_Hash)
            • Then - Actions
              • -------- Unit outside of range cleanup --------
              • Hashtable - Save 0 as 12 of MEB_UHandleC in MEB_Hash
              • Unit Group - Remove MEB_TempU from MEB_Bombs
              • Hashtable - Clear all child hashtables of child MEB_UHandleC in MEB_Hash
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Number of units in MEB_Bombs) Equal to 0
                • Then - Actions
                  • Trigger - Turn off MEB Loop <gen>
                • Else - Actions
              • -------- ------ --------
            • Else - Actions
              • -------- Explosion Damage effect --------
              • Unit - Cause (Load 1 of MEB_UHandle in MEB_Hash) to damage MEB_TempU, dealing (Load 3 of MEB_UHandle from MEB_Hash) damage of attack type Spells and damage type Normal
              • Set MEB_TempReal = (Mana of MEB_TempU)
              • Unit - Set mana of MEB_TempU to ((Mana of MEB_TempU) - (Load 6 of MEB_UHandle from MEB_Hash))
              • Unit - Cause (Load 1 of MEB_UHandle in MEB_Hash) to damage MEB_TempU, dealing ((MEB_TempReal - (Mana of MEB_TempU)) x (Load 7 of MEB_UHandle from MEB_Hash)) damage of attack type Spells and damage type Normal
              • -------- ------ --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (MEB_TempU is alive) Equal to True
                • Then - Actions
                  • -------- Knockback Setup --------
                  • Hashtable - Save Handle OfMEB_TempPoint as 15 of MEB_UHandleC in MEB_Hash
                  • Hashtable - Save 3 as 12 of MEB_UHandleC in MEB_Hash
                  • Hashtable - Save (Load 4 of MEB_UHandle from MEB_Hash) as 16 of MEB_UHandleC in MEB_Hash
                  • -------- ------ --------
                • Else - Actions
                  • -------- Dead unit clean up --------
                  • Hashtable - Clear all child hashtables of child MEB_UHandleC in MEB_Hash
                  • -------- ------ --------
          • Custom script: call RemoveSavedHandle(udg_MEB_Hash, udg_MEB_UHandleC, 14)
          • Custom script: call RemoveLocation(udg_MEB_TempPoint2)
      • -------- ------ --------
      • Custom script: call DestroyGroup(udg_MEB_TempGroup)
      • Custom script: call RemoveLocation(udg_MEB_TempPoint)
      • -------- Clean Up --------
      • Custom script: set bj_wantDestroyGroup = true
      • If ((Number of units in (Units in (Playable map area) matching ((Unit-type of (Matching unit)) Equal to MEB_Bomb))) Equal to 0) then do (Trigger - Turn off (This trigger)) else do (Do nothing)
      • Hashtable - Clear all child hashtables of child MEB_UHandle in MEB_Hash
      • Unit Group - Remove MEB_U from MEB_Bombs
      • -------- ------ --------
  • MEB Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in MEB_Bombs and do (Actions)
        • Loop - Actions
          • Set MEB_U = (Picked unit)
          • Custom script: set udg_MEB_UHandle = GetHandleId(udg_MEB_U)
          • -------- Bomb Spinning --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Load 12 of MEB_UHandle from MEB_Hash) Equal to 1
            • Then - Actions
              • -------- Movement --------
              • Set MEB_Angle = ((Load 10 of MEB_UHandle from MEB_Hash) + MEB_Speed)
              • Hashtable - Save MEB_Angle as 10 of MEB_UHandle in MEB_Hash
              • Set MEB_TempReal = ((Load 11 of MEB_UHandle from MEB_Hash) + MEB_DistanceIncrease)
              • Hashtable - Save MEB_TempReal as 11 of MEB_UHandle in MEB_Hash
              • Set MEB_TempPoint = (Position of (Load 1 of MEB_UHandle in MEB_Hash))
              • Set MEB_TempPoint2 = (MEB_TempPoint offset by MEB_TempReal towards MEB_Angle degrees)
              • -------- For Flame Trail --------
              • Set MEB_TempReal2 = (Load 8 of MEB_UHandle from MEB_Hash)
              • -------- ------ --------
              • -------- Spinning Movement --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ((Playable map area) contains MEB_TempPoint2) Equal to True
                  • (Terrain pathing at MEB_TempPoint2 of type Walkability is off) Equal to False
                • Then - Actions
                  • Custom script: set udg_MEB_TempX = GetLocationX(udg_MEB_TempPoint)
                  • Custom script: set udg_MEB_TempY = GetLocationY(udg_MEB_TempPoint)
                  • Custom script: call SetUnitX(udg_MEB_U, udg_MEB_TempX + udg_MEB_TempReal * Cos(udg_MEB_Angle * bj_DEGTORAD))
                  • Custom script: call SetUnitY(udg_MEB_U, udg_MEB_TempY + udg_MEB_TempReal * Sin(udg_MEB_Angle * bj_DEGTORAD))
                • Else - Actions
                  • -------- Rock Smash --------
                  • Unit - Kill MEB_U
                  • Set MEB_TempGroup = (Units in (Playable map area) matching ((Load 14 of (Key (Matching unit)) in MEB_Hash) Equal to MEB_U))
                  • Unit Group - Pick every unit in MEB_TempGroup and do (Actions)
                    • Loop - Actions
                      • Set MEB_TempU = (Picked unit)
                      • Set MEB_TempPoint3 = (Position of MEB_TempU)
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Distance between MEB_TempPoint and MEB_TempPoint2) Less than or equal to (Load 15 of MEB_UHandle from MEB_Hash)
                        • Then - Actions
                          • Unit - Cause (Load 1 of MEB_UHandle in MEB_Hash) to damage MEB_TempU, dealing MEB_RockSmash damage of attack type Spells and damage type Normal
                        • Else - Actions
                      • Custom script: call RemoveLocation(udg_MEB_TempPoint3)
                  • Custom script: call DestroyGroup(udg_MEB_TempGroup)
                  • -------- ------ --------
              • -------- ------ --------
              • Custom script: call RemoveLocation(udg_MEB_TempPoint2)
              • Custom script: call RemoveLocation(udg_MEB_TempPoint)
              • -------- Flame Trail --------
              • Set MEB_TempPoint = (Position of MEB_U)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Load 20 of MEB_UHandle from MEB_Hash) Equal to 1
                • Then - Actions
                  • Unit - Create 1 Energy Tail for (Owner of MEB_U) at MEB_TempPoint facing Default building facing degrees
                  • Set MEB_TempU = (Last created unit)
                  • Custom script: set udg_MEB_UHandleC = GetHandleId(udg_MEB_TempU)
                  • Unit - Add a MEB_TempReal2 second Generic expiration timer to MEB_TempU
                  • Hashtable - Save Handle Of(Load 1 of MEB_UHandle in MEB_Hash) as 1 of MEB_UHandleC in MEB_Hash
                  • Hashtable - Save 4 as 12 of MEB_UHandleC in MEB_Hash
                  • Hashtable - Save (Load 2 of MEB_UHandle from MEB_Hash) as 17 of MEB_UHandleC in MEB_Hash
                  • Hashtable - Save Handle Of(Load 1 of MEB_UHandle in MEB_Hash) as 1 of MEB_UHandleC in MEB_Hash
                  • Unit Group - Add MEB_TempU to MEB_Bombs
                  • Hashtable - Save 0 as 20 of MEB_UHandle in MEB_Hash
                • Else - Actions
                  • Hashtable - Save ((Load 20 of MEB_UHandle from MEB_Hash) + 1) as 20 of MEB_UHandle in MEB_Hash
              • -------- ------ --------
              • -------- Magnetising units --------
              • Set MEB_TempGroup = (Units within (Load 9 of MEB_UHandle from MEB_Hash) of MEB_TempPoint)
              • Unit Group - Pick every unit in MEB_TempGroup and do (Actions)
                • Loop - Actions
                  • Set MEB_TempU = (Picked unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (MEB_TempU is Magic Immune) Equal to False
                      • (MEB_TempU is A structure) Equal to False
                      • (MEB_TempU is alive) Equal to True
                      • (MEB_TempU belongs to an enemy of (Owner of (Load 1 of MEB_UHandle in MEB_Hash))) Equal to True
                      • (MEB_TempU is A ground unit) Equal to True
                      • (MEB_TempU is in MEB_Bombs) Equal to False
                    • Then - Actions
                      • Custom script: set udg_MEB_UHandleC = GetHandleId(udg_MEB_TempU)
                      • Unit Group - Add MEB_TempU to MEB_Bombs
                      • Hashtable - Save 2 as 12 of MEB_UHandleC in MEB_Hash
                      • Hashtable - Save Handle OfMEB_U as 14 of MEB_UHandleC in MEB_Hash
                      • Hashtable - Save Handle Of(Load 1 of MEB_UHandle in MEB_Hash) as 1 of MEB_UHandleC in MEB_Hash
                    • Else - Actions
              • -------- ------ --------
              • Custom script: call DestroyGroup(udg_MEB_TempGroup)
              • Custom script: call RemoveLocation(udg_MEB_TempPoint)
            • Else - Actions
          • -------- Magnetised Units --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Load 12 of MEB_UHandle from MEB_Hash) Equal to 2
            • Then - Actions
              • -------- Lightning effects --------
              • Lightning - Destroy (Load 13 of MEB_UHandle in MEB_Hash)
              • Set MEB_TempPoint = (Position of MEB_U)
              • Set MEB_TempPoint2 = (Position of (Load 14 of MEB_UHandle in MEB_Hash))
              • Set MEB_TempU = (Load 14 of MEB_UHandle in MEB_Hash)
              • Custom script: set udg_MEB_UHandleC = GetHandleId(udg_MEB_TempU)
              • Set MEB_TempReal = (Load 5 of MEB_UHandleC from MEB_Hash)
              • Custom script: set udg_MEB_TempZ = GetLocationZ(udg_MEB_TempPoint) + udg_MEB_LightningHeight
              • Custom script: set udg_MEB_TempZ2 = GetLocationZ(udg_MEB_TempPoint2) + udg_MEB_LightningHeight
              • Custom script: set udg_MEB_TempLightning = AddLightningEx(udg_MEB_Lightning, true, GetLocationX(udg_MEB_TempPoint), GetLocationY(udg_MEB_TempPoint), udg_MEB_TempZ, GetLocationX(udg_MEB_TempPoint2), GetLocationY(udg_MEB_TempPoint2), udg_MEB_TempZ2)
              • Hashtable - Save Handle OfMEB_TempLightning as 13 of MEB_UHandle in MEB_Hash
              • -------- ------ --------
              • -------- Magnetised movement --------
              • Set MEB_Angle = (Angle from MEB_TempPoint to MEB_TempPoint2)
              • Custom script: call RemoveLocation(udg_MEB_TempPoint2)
              • Set MEB_TempPoint2 = (MEB_TempPoint offset by MEB_TempReal towards MEB_Angle degrees)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ((Playable map area) contains MEB_TempPoint2) Equal to True
                  • (Terrain pathing at MEB_TempPoint2 of type Walkability is off) Equal to False
                • Then - Actions
                  • Custom script: set udg_MEB_TempX = GetUnitX(udg_MEB_U)
                  • Custom script: set udg_MEB_TempY = GetUnitY(udg_MEB_U)
                  • Custom script: call SetUnitX(udg_MEB_U, udg_MEB_TempX + udg_MEB_TempReal * Cos(udg_MEB_Angle * bj_DEGTORAD))
                  • Custom script: call SetUnitY(udg_MEB_U, udg_MEB_TempY + udg_MEB_TempReal * Sin(udg_MEB_Angle * bj_DEGTORAD))
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • MEB_TreeKill Equal to True
                    • Then - Actions
                      • -------- Tree Destruction --------
                      • Destructible - Pick every destructible within MEB_TreeDestroyArea of MEB_TempPoint2 and do (Actions)
                        • Loop - Actions
                          • Unit - Order MEB_TreeChecker to Harvest (Picked destructible)
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Current order of MEB_TreeChecker) Equal to (Order(harvest))
                            • Then - Actions
                              • Destructible - Kill (Picked destructible)
                            • Else - Actions
                          • Unit - Order MEB_TreeChecker to Stop
                      • -------- ------ --------
                    • Else - Actions
                • Else - Actions
              • -------- ------ --------
              • Custom script: call RemoveLocation(udg_MEB_TempPoint2)
              • Custom script: call RemoveLocation(udg_MEB_TempPoint)
            • Else - Actions
          • -------- Knocked Back Units --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Load 12 of MEB_UHandle from MEB_Hash) Equal to 3
            • Then - Actions
              • -------- Movement --------
              • Set MEB_TempPoint = (Load 15 of MEB_UHandle in MEB_Hash)
              • Set MEB_TempPoint2 = (Position of MEB_U)
              • -------- ------ --------
              • -------- Knockback effects --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Load 20 of MEB_UHandle from MEB_Hash) Equal to 3
                • Then - Actions
                  • Special Effect - Create a special effect at MEB_TempPoint2 using MEB_SFXKnockback
                  • Special Effect - Destroy (Last created special effect)
                  • Hashtable - Save 0 as 20 of MEB_UHandle in MEB_Hash
                • Else - Actions
                  • Hashtable - Save ((Load 20 of MEB_UHandle from MEB_Hash) + 1) as 20 of MEB_UHandle in MEB_Hash
              • -------- ------ --------
              • -------- Movement --------
              • Set MEB_TempReal = ((Load 16 of MEB_UHandle from MEB_Hash) - MEB_KnockbackDetriment)
              • Hashtable - Save MEB_TempReal as 16 of MEB_UHandle in MEB_Hash
              • Set MEB_Angle = (Angle from MEB_TempPoint to MEB_TempPoint2)
              • Custom script: call RemoveLocation(udg_MEB_TempPoint)
              • Set MEB_TempPoint = (MEB_TempPoint2 offset by MEB_TempReal towards MEB_Angle degrees)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ((Playable map area) contains MEB_TempPoint) Equal to True
                  • (Terrain pathing at MEB_TempPoint of type Walkability is off) Equal to False
                  • (Terrain pathing at MEB_TempPoint of type Walkability is off) Equal to False
                • Then - Actions
                  • Custom script: set udg_MEB_TempX = GetUnitX(udg_MEB_U)
                  • Custom script: set udg_MEB_TempY = GetUnitY(udg_MEB_U)
                  • Custom script: call SetUnitX(udg_MEB_U, udg_MEB_TempX + udg_MEB_TempReal * Cos(udg_MEB_Angle * bj_DEGTORAD))
                  • Custom script: call SetUnitY(udg_MEB_U, udg_MEB_TempY + udg_MEB_TempReal * Sin(udg_MEB_Angle * bj_DEGTORAD))
                  • -------- Tree Destruction --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • MEB_TreeKill Equal to True
                    • Then - Actions
                      • Destructible - Pick every destructible within MEB_TreeDestroyArea of MEB_TempPoint and do (Actions)
                        • Loop - Actions
                          • Unit - Order MEB_TreeChecker to Harvest (Picked destructible)
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Current order of MEB_TreeChecker) Equal to (Order(harvest))
                            • Then - Actions
                              • Destructible - Kill (Picked destructible)
                            • Else - Actions
                          • Unit - Order MEB_TreeChecker to Stop
                    • Else - Actions
                  • -------- ------ --------
                • Else - Actions
                  • -------- Rock Smash --------
                  • Unit - Cause (Load 1 of MEB_UHandle in MEB_Hash) to damage MEB_U, dealing MEB_RockSmash damage of attack type Spells and damage type Normal
                  • Hashtable - Save 0.00 as 16 of MEB_UHandle in MEB_Hash
                  • -------- ------ --------
              • -------- ------ --------
              • Custom script: call RemoveLocation(udg_MEB_TempPoint2)
              • Custom script: call RemoveLocation(udg_MEB_TempPoint)
              • -------- End of Knockback --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Load 16 of MEB_UHandle from MEB_Hash) Less than or equal to 0.00
                • Then - Actions
                  • Unit Group - Remove MEB_U from MEB_Bombs
                  • Hashtable - Save 0 as 12 of MEB_UHandle in MEB_Hash
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (MEB_Bombs is empty) Equal to True
                    • Then - Actions
                      • Trigger - Turn off (This trigger)
                      • Trigger - Turn off MEB Death <gen>
                    • Else - Actions
                • Else - Actions
              • -------- ------ --------
            • Else - Actions
          • -------- Fire Trail damage --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Load 12 of MEB_UHandle from MEB_Hash) Equal to 4
            • Then - Actions
              • -------- Burn Damage --------
              • Set MEB_TempPoint = (Position of MEB_U)
              • Set MEB_TempGroup = (Units within MEB_BurnAoe of MEB_TempPoint)
              • Unit Group - Pick every unit in MEB_TempGroup and do (Actions)
                • Loop - Actions
                  • Set MEB_TempU = (Picked unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (MEB_TempU is Magic Immune) Equal to False
                      • (MEB_TempU is A structure) Equal to False
                      • (MEB_TempU is alive) Equal to True
                      • (MEB_TempU belongs to an enemy of (Owner of (Load 1 of MEB_UHandle in MEB_Hash))) Equal to True
                      • (MEB_TempU is A ground unit) Equal to True
                    • Then - Actions
                      • Unit - Cause (Load 1 of MEB_UHandle in MEB_Hash) to damage MEB_TempU, dealing (Load 17 of MEB_UHandle from MEB_Hash) damage of attack type Spells and damage type Normal
                    • Else - Actions
              • -------- ------ --------
              • Custom script: call DestroyGroup(udg_MEB_TempGroup)
              • Custom script: call RemoveLocation(udg_MEB_TempPoint)
            • Else - Actions



-=V1.00=-
- Initial Upload
- Expect errors (Large spell what can I say XD)
-=V1.05=-
- Corrected Point leak in Activation Trigger
- Corrected Unit Group Leak in Death Trigger
-=V1.10=-
- Corrected Point Leak in Loop Trigger
- Changed checking for an empty Bomb group
- Create Dummies for Neutral Passive now/Modified death trigger event


This is a continuation of my Self-Set-Challenge of one spell every day for a week (day 5)

Give credits if you use this spell.

Enjoy


Keywords:
Nove, Gravity, Magnetism, Knockback, Rock, Energy, Magic, Spell, Fire, Spinning, Revolving, Bomb, Explosives, Eye candy, effects.
Contents

Magnetic Energy Bombs (Map)

Reviews
21st Dec 2011 Bribe: Approved and Recommended (4/5).

Moderator

M

Moderator

21st Dec 2011
Bribe: Approved and Recommended (4/5).
 
Level 7
Joined
Sep 2, 2011
Messages
350
Wow. Thumbs up for this spell. Great idea. However, on my pc, it lags. I like how this spell act. It is kinda overpowered tho but that doesn't matter.

Rating: 4.5/5
Could be better
It lags!
Nice use of effect
Great idea for the spell
It is MUI
 
Level 4
Joined
Oct 9, 2009
Messages
50
Wow, this spell is a lot of fun. At one point, the enemy archmage and I swung each other from one end of the map to the other.

Unfortunately for me, hashtables are still gibberish, so as far as learning from this spell, I'm still trying to figure it out.

Regardless, it works, and is amazing. I haven't tried importing it into a bigger map yet to see how it would deal with multiple units fighting all over the map, but if two archmages can orbit each other, it should be fine in low doses.
 
Top