Angel_Island
Much long, many time, wow
- Reaction score
- 56
TORRENT
Made by Angel_Island
Made by Angel_Island
GUI/JASS: GUI
MUI/MPI: MUI
Leakless + Lagless
Import Difficulty: Low
Spell Info:
Using his unparalleled knowledge of the sea, Daelin is able to summon a blast of water at a targeted area. After 2 seconds a fierce torrent of water erupts from the ground, the stream blasting enemies caught in the AoE into the sky, dealing damage and slowing movement speed by 30%.
Level 1 - 120 damage, lasts 1 second.
Level 2 - 180 damage, lasts 2 second.
Level 3 - 240 damage, lasts 3 second.
Level 4 - 300 damage, lasts 4 second.
Trigger:
- Torrent Casting
- Events
- Unit - A unit Starts the effect of an ability
- Conditions
- (Ability being cast) Equal to Torrent
- Actions
- Set TorrentTargetPoint[TorrentInstances] = (Target point of ability being cast)
- Custom script: if IsUnitAlly (udg_TorrentCaster, GetLocalPlayer ()) then
- Special Effect - Create a special effect at TorrentTargetPoint[TorrentInstances] using Objects\Spawnmodels\Other\IllidanFootprint\IllidanWaterSpawnFootPrint.mdl
- Special Effect - Destroy (Last created special effect)
- Custom script: endif
- Set TorrentInstances = (TorrentInstances + 1)
- Set TorrentInstances2 = (TorrentInstances2 + 1)
- Wait 2.00 seconds
- Special Effect - Create a special effect at TorrentTargetPoint[(TorrentInstances - TorrentInstances2)] using TidalErruption.mdx
- Special Effect - Destroy (Last created special effect)
- Set TorrentCaster = (Triggering unit)
- Set TorrentGroup = (Units within 225.00 of TorrentTargetPoint[(TorrentInstances - TorrentInstances2)] matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) Not equal to (Triggering unit)) and (((Matching unit) is in TorrentUnits) Equal to False) and (((Matching unit) belongs to an enemy of (Owner of TorrentCaster)) Equal to True)
- Unit Group - Add all units of TorrentGroup to TorrentUnits
- Unit Group - Pick every unit in TorrentUnits and do (Actions)
- Loop - Actions
- Unit - Add Storm Crow Form to (Picked unit)
- Unit - Remove Storm Crow Form from (Picked unit)
- Unit - Turn collision for (Picked unit) Off
- Unit - Pause (Picked unit)
- Loop - Actions
- Custom script: call RemoveLocation(udg_TorrentTargetPoint[udg_TorrentInstances])
- Set TorrentInstances2 = (TorrentInstances2 - 1)
- Custom script: call DestroyGroup(udg_TorrentGroup)
- Events
Trigger:
- Torrent Flying
- Events
- Time - Every 0.04 seconds of game time
- Conditions
- Actions
- Unit Group - Pick every unit in TorrentUnits and do (Actions)
- Loop - Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Custom value of (Picked unit)) Less than 50
- Then - Actions
- Unit - Set the custom value of (Picked unit) to ((Custom value of (Picked unit)) + 1)
- Animation - Change (Picked unit) flying height to ((Power(25.00, 2.00)) - ((25.00 - (Real((Custom value of (Picked unit))))) x (25.00 - (Real((Custom value of (Picked unit))))))) at 0.00
- Unit - Cause TorrentCaster to damage (Picked unit), dealing (1.20 + (1.20 x (Real((Level of Torrent for TorrentCaster))))) damage of attack type Hero and damage type Universal
- Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Other\CrushingWave\CrushingWaveDamage.mdl
- Special Effect - Destroy (Last created special effect)
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Custom value of (Picked unit)) Equal to 50
- Then - Actions
- Set TorrentPickingUnits = (Units in (Playable map area) matching ((((Matching unit) is in TorrentUnits) Equal to True) and ((Custom value of (Matching unit)) Greater than or equal to 50)))
- Unit Group - Pick every unit in TorrentPickingUnits and do (Actions)
- Loop - Actions
- Unit Group - Remove (Picked unit) from TorrentUnits
- Animation - Change (Picked unit) flying height to 0.00 at 0.00
- Unit - Turn collision for (Picked unit) On
- Set TorrentPickedUnitPosition = (Position of (Picked unit))
- Unit - Create 1 Dummy for (Owner of TorrentCaster) at TorrentPickedUnitPosition facing Default building facing degrees
- Custom script: call RemoveLocation(udg_TorrentPickedUnitPosition)
- Unit - Add Torrent Slow to (Last created unit)
- Unit - Set level of Torrent Slow for (Last created unit) to (Level of Torrent for TorrentCaster)
- Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
- Unit - Order (Last created unit) to Human Sorceress - Slow (Picked unit)
- Unit - Unpause (Picked unit)
- Unit - Set the custom value of (Picked unit) to 0
- Custom script: call DestroyGroup(udg_TorrentPickingUnits)
- Loop - Actions
- Else - Actions
- If - Conditions
- Else - Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Number of units in TorrentUnits) Equal to 0
- Then - Actions
- Custom script: call DestroyGroup(udg_TorrentUnits)
- Set TorrentInstances = 0
- Set TorrentInstances2 = 0
- Else - Actions
- If - Conditions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Loop - Actions
- Events
Update: Fixed MUI and some leaks.