Frostbitten Shot 1
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Frostbitten Shot
Actions
Set Temp_Point = (Position of (Triggering unit))
Set FS_Caster[(Player number of (Owner of (Triggering unit)))] = (Triggering unit)
Set FS_TargetPos[(Player number of (Owner of (Triggering unit)))] = (Target point of ability being cast)
Unit - Create 1 Frostbitten Shot Dummy for (Owner of (Triggering unit)) at Temp_Point facing FS_TargetPos[(Player number of (Owner of (Triggering unit)))]
Set FS_Bullet[(Player number of (Owner of (Triggering unit)))] = (Last created unit)
Set FS_BulletPos[(Player number of (Owner of (Triggering unit)))] = (Position of (Last created unit))
Set FS_Angle[(Player number of (Owner of (Triggering unit)))] = (Angle from FS_BulletPos[(Player number of (Owner of (Triggering unit)))] to FS_TargetPos[(Player number of (Owner of (Triggering unit)))])
Custom script: call RemoveLocation (udg_Temp_Point)
Unit - Pause FS_Bullet[(Player number of (Owner of (Triggering unit)))]
Unit - Turn collision for FS_Bullet[(Player number of (Owner of (Triggering unit)))] Off
Frostbitten Shot 2 Copy
Events
Time - Every 0.03 seconds of game time
Conditions
Actions
For each (Integer A) from 1 to 12, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
FS_Bullet[(Integer A)] Not equal to No unit
Then - Actions
Set FS_BulletPos[(Integer A)] = (Position of FS_Bullet[(Integer A)])
Set FS_Angle[(Integer A)] = (Angle from FS_BulletPos[(Integer A)] to FS_TargetPos[(Integer A)])
Set FS_MovePoint[(Integer A)] = (FS_BulletPos[(Integer A)] offset by 14.00 towards FS_Angle[(Integer A)] degrees)
Unit - Move FS_Bullet[(Integer A)] instantly to FS_MovePoint[(Integer A)]
Set Temp_Unit_Group = (Units within 96.00 of FS_BulletPos[(Integer A)] matching (((Matching unit) Not equal to FS_Caster[(Integer A)]) and ((((Matching unit) belongs to an enemy of (Owner of FS_Caster[(Integer A)])) Equal to True) and (((Matching unit) is alive) Equal to True))))
Unit Group - Pick every unit in Temp_Unit_Group and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Number of units in Temp_Unit_Group) Greater than 0
Then - Actions
Special Effect - Create a special effect at FS_MovePoint[(Integer A)] using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
Special Effect - Destroy (Last created special effect)
[B]CREATE DUMMY UNITS AND DO STUN HERE[/B]
Unit - Remove FS_Bullet[(Integer A)] from the game
Set FS_Bullet[(Integer A)] = No unit
Set FS_Caster[(Integer A)] = No unit
Custom script: call DestroyGroup (udg_Temp_Unit_Group_2)
Custom script: call RemoveLocation (udg_FS_TargetPos[GetForLoopIndexA()])
Special Effect - Destroy (Last created special effect)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Distance between FS_BulletPos[(Integer A)] and FS_TargetPos[(Integer A)]) Less than 150.00
Then - Actions
Unit - Remove FS_Bullet[(Integer A)] from the game
Set FS_Bullet[(Integer A)] = No unit
Set FS_Caster[(Integer A)] = No unit
Custom script: call DestroyGroup (udg_Temp_Unit_Group_2)
Custom script: call RemoveLocation (udg_FS_TargetPos[GetForLoopIndexA()])
Special Effect - Destroy (Last created special effect)
Else - Actions
Custom script: call DestroyGroup (udg_Temp_Unit_Group)
Custom script: call RemoveLocation (udg_FS_MovePoint[GetForLoopIndexA()])
Custom script: call RemoveLocation (udg_FS_BulletPos[GetForLoopIndexA()])
Else - Actions