Hi,
This spell is meant to cause the user to bounce around un-controllably for a while, dealing damage when it reaches each location.
Anyway the issue lies where sometimes the user flies to the center of the map (or near it) rather than moving to a nearby location. The main issue with this is that I have been put on the side of a cliff because of this. Any ideas?
This spell is meant to cause the user to bounce around un-controllably for a while, dealing damage when it reaches each location.
Anyway the issue lies where sometimes the user flies to the center of the map (or near it) rather than moving to a nearby location. The main issue with this is that I have been put on the side of a cliff because of this. Any ideas?
-
BoH Cast
-

Events
-


Unit - A unit Starts the effect of an ability
-
-

Conditions
-


(Ability being cast) Equal to Ball of Happiness
-
-

Actions
-


Trigger - Run Challenges The D <gen> (checking conditions)
-


Set BoH_MaxIndex = (BoH_MaxIndex + 1)
-


Set BoH_CasterUnit[BoH_MaxIndex] = (Triggering unit)
-


Set BoH_Bounces[BoH_MaxIndex] = (4 + (((Level of Ball of Happiness for (Triggering unit)) - 1) / 2))
-


Set BoH_Dmg[BoH_MaxIndex] = ((750.00 + (750.00 x (Real((Level of Ball of Happiness for (Triggering unit)))))) + ((Real((Agility of (Triggering unit) (Include bonuses)))) x 5.00))
-


Set BoH_TargetPoint[BoH_MaxIndex] = (Target point of ability being cast)
-


Set TempPoint = (Position of (Triggering unit))
-


Unit - Create 1 Dummy (Ball of Happiness) for (Owner of (Triggering unit)) at TempPoint facing Default building facing degrees
-


Set BoH_DummyUnit[BoH_MaxIndex] = (Last created unit)
-


Custom script: call RemoveLocation(udg_TempPoint)
-


If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



If - Conditions
-




BoH_MaxIndex Greater than or equal to 1
-
-



Then - Actions
-




Trigger - Turn on BoH Loop <gen>
-
-



Else - Actions
-
-
-
-
BoH Loop
-

Events
-


Time - Every 0.03 seconds of game time
-
-

Conditions
-

Actions
-


For each (Integer BoH_LoopInt) from 1 to BoH_MaxIndex, do (Actions)
-



Loop - Actions
-




Set TempPoint = (Position of BoH_CasterUnit[BoH_LoopInt])
-




-------- Move --------
-




Unit - Turn collision for BoH_CasterUnit[BoH_LoopInt] Off
-




Set TempPoint2 = (TempPoint offset by 20.00 towards (Angle from TempPoint to BoH_TargetPoint[BoH_LoopInt]) degrees)
-




Unit - Move BoH_CasterUnit[BoH_LoopInt] instantly to TempPoint2, facing BoH_TargetPoint[BoH_LoopInt]
-




Unit - Move BoH_DummyUnit[BoH_LoopInt] instantly to TempPoint2, facing BoH_TargetPoint[BoH_LoopInt]
-




Custom script: call RemoveLocation(udg_TempPoint2)
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






Or - Any (Conditions) are true
-







Conditions
-








(Distance between TempPoint and BoH_TargetPoint[BoH_LoopInt]) Less than or equal to 20.00
-








(Terrain pathing at TempPoint of type Walkability is off) Equal to True
-








(BoH_CasterUnit[BoH_LoopInt] is dead) Equal to True
-
-
-
-





Then - Actions
-






-------- Explode --------
-






Special Effect - Create a special effect at TempPoint using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
-






Special Effect - Destroy (Last created special effect)
-






Set TempUnitGroup = (Units within 350.00 of TempPoint matching ((((Matching unit) is alive) Equal to True) and (((Owner of (Matching unit)) is an enemy of (Owner of BoH_CasterUnit[BoH_LoopInt])) Equal to True)))
-






Unit Group - Pick every unit in TempUnitGroup and do (Actions)
-







Loop - Actions
-








Unit - Cause BoH_DummyUnit[BoH_LoopInt] to damage (Picked unit), dealing BoH_Dmg[BoH_LoopInt] damage of attack type Spells and damage type Universal
-
-
-






Custom script: call DestroyGroup(udg_TempUnitGroup)
-






If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-







If - Conditions
-








And - All (Conditions) are true
-









Conditions
-










(BoH_CasterUnit[BoH_LoopInt] is alive) Equal to True
-










BoH_Bounces[BoH_LoopInt] Greater than or equal to 1
-
-
-
-







Then - Actions
-








-------- Bounce --------
-








Custom script: call RemoveLocation(udg_BoH_TargetPoint[udg_BoH_LoopInt])
-








Set BoH_TargetPoint[BoH_LoopInt] = (TempPoint offset by (Random real number between 250.00 and 400.00) towards (Random angle) degrees)
-








Set BoH_Bounces[BoH_LoopInt] = (BoH_Bounces[BoH_LoopInt] - 1)
-
-







Else - Actions
-








-------- Overwrite Index --------
-








Unit - Turn collision for BoH_CasterUnit[BoH_LoopInt] On
-








Unit - Kill BoH_DummyUnit[BoH_LoopInt]
-








Set BoH_Bounces[BoH_LoopInt] = BoH_Bounces[BoH_MaxIndex]
-








Set BoH_CasterUnit[BoH_LoopInt] = BoH_CasterUnit[BoH_MaxIndex]
-








Set BoH_Dmg[BoH_LoopInt] = BoH_Dmg[BoH_MaxIndex]
-








Set BoH_DummyUnit[BoH_LoopInt] = BoH_DummyUnit[BoH_MaxIndex]
-








Custom script: call RemoveLocation(udg_BoH_TargetPoint[udg_BoH_LoopInt])
-








Set BoH_TargetPoint[BoH_LoopInt] = BoH_TargetPoint[BoH_MaxIndex]
-








Set BoH_LoopInt = (BoH_LoopInt - 1)
-








Set BoH_MaxIndex = (BoH_MaxIndex - 1)
-








If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-









If - Conditions
-










BoH_MaxIndex Equal to 0
-
-









Then - Actions
-










Trigger - Turn off (This trigger)
-
-









Else - Actions
-
-
-
-






Floating Text - Create floating text that reads FUNZ at TempPoint with Z offset 0.00, using font size (Random real number between 15.00 and 25.00), color ((Random real number between 0.00 and 100.00)%, (Random real number between 0.00 and 100.00)%, (Random real number between 0.00 and 100.00)%), and 0.00% transparency
-






Floating Text - Change (Last created floating text): Disable permanence
-






Floating Text - Change the lifespan of (Last created floating text) to 4.00 seconds
-






Floating Text - Change the fading age of (Last created floating text) to 3.00 seconds
-






Floating Text - Set the velocity of (Last created floating text) to (Random real number between 50.00 and 100.00) towards (Random angle) degrees
-
-





Else - Actions
-
-




Custom script: call RemoveLocation(udg_TempPoint)
-
-
-
-



