1.) The name (Depending on your imagination) may or may not be related to what the spell does
2.) This is a slightly altered version of the spell I submitted for the Zephyr Contest #10: What Lies on the Other Side
3.)I have no intention of changing the spell I submitted on the contest with this one
Now, what this spell does is:
At cast, the caster stomps the ground creating a circle of war-stomps around him. Then he prepares himself for battle by spinning really, really fast. Then if there are any enemy units in range from his position, he will charge towards that point, then strike the units with such force that they are lifted off the ground.
Time - Elapsed game time is 0.00 seconds
-------- CONFIGURE --------
-------- The ability: --------
Set ZS_Abil = Zephyr Strike
-------- Circle Start to Final Configurables --------
For each (Integer ZS_LoopInt) from 1 to ZS_OmniLoop[ZS_Level], do (Actions)
Loop - Actions
Set ZS_TempGroup1 = (Units within ZS_OmniRange[ZS_Level] of ZS_CasterLoc[ZS_CurrentIndex] 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 ZS_TempPlayer[ZS_CurrentIndex]) Equ
Set ZS_TempUnit = (Random unit from ZS_TempGroup1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
ZS_TempUnit Equal to No unit
Then - Actions
Else - Actions
Animation - Change ZS_Caster[ZS_CurrentIndex]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 50.00% transparency
Animation - Change ZS_Caster[ZS_CurrentIndex]'s animation speed to 300.00% of its original speed
Unit Group - Pick every unit in ZS_TempGroup1 and do (Actions)
Loop - Actions
Set ZS_PickedUnit[ZS_LoopInt] = (Picked unit)
Set ZS_PickedUnitLoc[ZS_LoopInt] = (Position of ZS_PickedUnit[ZS_LoopInt])
-------- Start of Omnislashing --------
Set ZS_TempPoint2 = (ZS_PickedUnitLoc[ZS_LoopInt] offset by ((Real(ZS_LoopInt)) + ZS_JumpIncrement[ZS_Level]) towards (Angle from ZS_CasterLoc[ZS_CurrentIndex] to ZS_PickedUnitLoc[ZS_CurrentIndex]) degrees)
Custom script: if IsPointJumpable(GetLocationX(udg_ZS_TempPoint2), GetLocationY(udg_ZS_TempPoint2)) then
12th Dec 2015
IcemanBo: Too long as NeedsFix. Rejected.
Zephyr Strike v1.2b | Reviewed by Maker | 6th Jun 2013
You leak ZS_CasterLoc because you set it in ZS Cast trigger
and overwrite it in the looping trigger...
1/ If an action is repeated in the Then and Else, takes it outside of the If.
2/ On a side note, a dummy isn't needed. You can go with special effects instead. Elaborate if the dummy serves another purpose.
3/ Stomp Circle part of the code lacks some configurability.
This is my first review so feel free to object if needed.
Tip of the day: Do you know that you only need 1 dummy with 0 cast point, animation/cast backswing and movement speed to cast a 0s cd, non-channeling spell continuously as if there are multiple dummies? Furthermore, you can use only 1 dummy for all spell instances (I am yet to test this but it should be possible in theory).
Thanks deathismyfriend, but I'll just stick to 3 levels for now.
UPDATE: I have updated the spell with Maker's Jump System, though there is still a problem with the code because the units that are lifted off the ground arrive at one single point in the map.
I also removed the dummies' 600/800 vision, though pretty soon I will remove the dummies themselves, but I just need to fix the jump. Also a new problem has arisen, now since the jump was imported the special effect dummies are no longer shown, so I'm fixing that too.
UPDATE 2: I have fixed all known bugs (i.e. bugs posted above) and I am now working on making the spell's configurables. Also, I am now making the spell switch from effect dummies to plain sfx. Also I have successfuly imported Maker's Jump System, thanks to him because he helped me also on that particular problem.
UPDATE 3: Version 1.1a is up and running, included therein are Maker's jump system, a multi-level spell, and most corrections after Maker's review.