Spell Darkness Bolt

NapaHero

Back from the dead...
Reaction score
43
Here's a cool spell that I made.

GUI/JASS: GUI.
MUI: No.
Leakless: What's a leak? :p

Darkness Bolt

Kali'naj turns himself into a bolt of dark energy, that travels for a limited time. When it stops, Kali'naj morphs back to his normal self. Due that, the energy that was contained in the bolt turns into multiple dark waves that are launched around, each dealing damage to enemy units.

Level 1 - 2 waves, 125 damage.
Level 2 - 4 waves, 150 damage.
Level 3 - 6 waves, 175 damage.
Level 4 - 8 waves, 200 damage.

Code:
DarknessBolt
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Darkness Bolt 
    Actions
        Set DB_Count_Distance = 0.00
        Set DB_Point = (Target point of ability being cast)
        Set DB_Caster = (Triggering unit)
        Set DB_Caster_Pos = (Position of DB_Caster)
        Set DB_Real_Distance = (Distance between DB_Caster_Pos and DB_Point)
        Set DB_Angle = (Angle from DB_Caster_Pos to DB_Point)
        Set DB_LvL = (Level of Darkness Bolt  for DB_Caster)
        Countdown Timer - Start DB_Timer as a Repeating timer that will expire in 0.02 seconds
        Unit - Hide DB_Caster
        Unit - Create 1 Dark Dummy for (Owner of DB_Caster) at DB_Caster_Pos facing DB_Point
        Set DB_Dummy = (Last created unit)
        Custom script:   call RemoveLocation (udg_DB_Point)
        Custom script:   call RemoveLocation (udg_DB_Caster_Pos)
        Trigger - Turn on DarknessBolt2 <gen>

Code:
DarknessBolt2
    Events
        Time - DB_Timer expires
    Conditions
    Actions
        Set DB_Count_Distance = (DB_Count_Distance + 15.00)
        Set DB_Dummy_Pos = (Position of DB_Dummy)
        Set DB_Dummy_Pos_Distance = (DB_Dummy_Pos offset by 15.00 towards DB_Angle degrees)
        Unit - Move DB_Dummy instantly to DB_Dummy_Pos_Distance
        Special Effect - Create a special effect at DB_Dummy_Pos_Distance using Abilities\Weapons\IllidanMissile\IllidanMissile.mdl
        Special Effect - Destroy (Last created special effect)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                DB_Count_Distance Greater than or equal to DB_Real_Distance
            Then - Actions
                Trigger - Turn off (This trigger)
                Countdown Timer - Pause DB_Timer
                Custom script:   call RemoveLocation (udg_DB_Dummy_Pos_Distance)
                Unit - Remove DB_Dummy from the game
                Unit - Move DB_Caster instantly to DB_Dummy_Pos
                Set DB_Dummy_Angle = (Facing of DB_Dummy)
                Special Effect - Create a special effect at DB_Dummy_Pos using Abilities\Spells\Undead\AnimateDead\AnimateDeadTarget.mdl
                Special Effect - Destroy (Last created special effect)
                Unit - Unhide DB_Caster
                For each (Integer A) from 1 to (2 x DB_LvL), do (Actions)
                    Loop - Actions
                        Set DB_Dummy_Angle = (DB_Dummy_Angle + (180.00 / (Real(DB_LvL))))
                        Set DB_Dummy_Pos_Offset = (DB_Dummy_Pos offset by 256.00 towards DB_Dummy_Angle degrees)
                        Unit - Create 1 Dummy for (Owner of DB_Caster) at DB_Dummy_Pos facing DB_Dummy_Angle degrees
                        Set Dummy_Integer[(Integer A)] = (Last created unit)
                        Unit - Add Dummy Dark Wave  to (Last created unit)
                        Unit - Set level of Dummy Dark Wave  for (Last created unit) to DB_LvL
                        Unit - Order (Last created unit) to Undead Dreadlord - Carrion Swarm DB_Dummy_Pos_Offset
                        Custom script:   call RemoveLocation (udg_DB_Dummy_Pos_Offset)
                Custom script:   call RemoveLocation (udg_DB_Dummy_Pos)
                Animation - Play DB_Caster's spell animation
                Selection - Select DB_Caster for (Owner of DB_Caster)
                Wait 1.50 seconds
                Animation - Reset DB_Caster's animation
                For each (Integer A) from 1 to (2 x DB_LvL), do (Actions)
                    Loop - Actions
                        Unit - Remove Dummy_Integer[(Integer A)] from the game
            Else - Actions
                Custom script:   call RemoveLocation (udg_DB_Dummy_Pos)
                Custom script:   call RemoveLocation (udg_DB_Dummy_Pos_Distance)

darknessboltpw2.jpg


Edit 1: Sorry, I nearly forgot the screenies.
Edit 2: Fixed a bug where the skulls didn't disappeared.
Edit 3: Updated the map. Now, Dark Dummy faces the target point.
Edit 4 (I hope this is the last edit.): Remade the spell to fit the suggestions.

Feedback is welcome.
 

Attachments

  • Chaos Lich - Spell 1.2.w3x
    26.6 KB · Views: 547

Trollvottel

never aging title
Reaction score
262
err why dont you remove the skulls after the spell? the spellmap is full of skulls after some times casting the spell

but it is well done
 

NapaHero

Back from the dead...
Reaction score
43
Do I need to take it away for the spell get approved? That skin really makes the spell look cool.

Also, I don't see nothing in the rules that tells that I should not put a custom skin in a spell map.

Edit: Updated. No more imported skin and icons.
 

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
Post this type of image instead of yours:
darknessboltpw2.jpg
 

dragonhord

Knowledge is true opinion. - Plato
Reaction score
82
Nice spell, except one thing... When I use it, I kinda want to go where I click, but the spell makes me overshoot where I click by a LOT, so I advise making it check where I am clicking so I dont overshoot it... AoE spells you usually want them to go off where you click :D.
 

NapaHero

Back from the dead...
Reaction score
43
Well, that's supposed to happen :p

This spell can be used to either skip damage, escape from multiple enemies or cause mass AOE damage. 3 in 1.
 

Chjoodge

New Member
Reaction score
14
Kali'naj turns himself into a bolt of dark energy, that [Strike]travels a certain amount of range[/Strike] shoots toward the target point. When it stops, Kali'naj morphs back to his normal self. [Strike]Due that[/Strike] Along the way, the energy [Strike]that was[/Strike] contained in the bolt turns into [Strike]multiple[/Strike] dark waves [Strike]that are launched[/Strike] launching around, each dealing damage to nearby enemy units.

I didn't test the spell, but I like the idea :) This is my try to improve the description of the spell.
 

Chjoodge

New Member
Reaction score
14
Ah, I see :) Another try:

Kali'naj turns himself into a bolt of dark energy that shoots toward the target point. Upon arrival, Kali'naj morphs back to his normal form. At that moment, the energy contained in the bolt explodes into waves, each dealing damage to nearby enemy units.

But anyway, it's no big deal, basically it's just your original description reworded.

The spell itself is neat, but as someone already said, you should make the bolt shoot only to the destination point and not any further. When travelling always the full range, I don't know much about where the hero is going to stop, even more because the bolt shoots quite far, and that's not cool.

Also, there's a bug, maybe? It can easily happen that the hero turns out to be somewhere he usually isn't allowed to be - like in your test map, I can end up hovering above the river, unable to move, because the hero cannot move over water.
 

NapaHero

Back from the dead...
Reaction score
43
>>Also, there's a bug, maybe? It can easily happen that the hero turns out to be somewhere he usually isn't allowed to be - like in your test map, I can end up hovering above the river, unable to move, because the hero cannot move over water.

That can easily be fixed: Make Dark Dummy has Foot movement type. It's not a bug, it's supposed to happen.

Problem of the target point is that I cannot, somehow, get the Dummy to stop exactly at there. Sometimes, if I try this, the Dummy Unit flies forever through the map.
 

Chjoodge

New Member
Reaction score
14
Problem of the target point is that I cannot, somehow, get the Dummy to stop exactly at there. Sometimes, if I try this, the Dummy Unit flies forever through the map.
That should be easily fixed. What did you try?

The easiest way I can think of is calculating distance between the caster and the target point at the time of casting, then in each step, comparing this distance with the distance of the current position of the dummy from the original casting point.
 

NapaHero

Back from the dead...
Reaction score
43
That should be easily fixed. What did you try?

The easiest way I can think of is calculating distance between the caster and the target point at the time of casting, then in each step, comparing this distance with the distance of the current position of the dummy from the original casting point.

I tried to check the distance between the dummy position and target point at the Periodic Event. But, for some weird reason, the dummy is never removed, flying forever :(

That spell is amazing. Thnx NapaHero :) i liked. +Rep

Thanks :shades:
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top