My first spellpack-
3rd and 4th spells submitted
includes Ice Nova and Frost Diver
Ice Nova - The Frost Sage sends a huge amount of frost energy into the ground, sending shockwaves through the ground. As these shockwaves travel, they cause explosions of frost novas on the surface. Deals 100/140/180 damage and slows for 1/2/3 seconds.
Frost Diver - The Frost Sage shoots out a wave of energy that cause ice novas to explode while traveling to the target. Anyone in it's path will be slowed. Once it reaches it's target it explodes, dealing damage. Deals 80/160/240 damage and slows for 2/4/6 seconds.
Codes:
Frost Diver -
Feedback please.
3rd and 4th spells submitted
includes Ice Nova and Frost Diver
Ice Nova - The Frost Sage sends a huge amount of frost energy into the ground, sending shockwaves through the ground. As these shockwaves travel, they cause explosions of frost novas on the surface. Deals 100/140/180 damage and slows for 1/2/3 seconds.
Frost Diver - The Frost Sage shoots out a wave of energy that cause ice novas to explode while traveling to the target. Anyone in it's path will be slowed. Once it reaches it's target it explodes, dealing damage. Deals 80/160/240 damage and slows for 2/4/6 seconds.
Codes:
Code:
Ice Nova
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Ice Nova
Actions
Set IN_Caster = (Triggering unit)
Set IN_CasterLoc = (Position of IN_Caster)
Set IN_NovaCount = 0
For each (Integer A) from 1 to 36, do (Actions)
Loop - Actions
Special Effect - Create a special effect at (IN_CasterLoc offset by 100.00 towards ((Real((Integer A))) x 10.00) degrees) using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
Special Effect - Destroy (Last created special effect)
Trigger - Turn on Ice Nova Effect <gen>
Code:
Ice Nova Effect
Events
Time - Every 0.50 seconds of game time
Conditions
Actions
Set IN_NovaCount = (IN_NovaCount + 1)
For each (Integer A) from 1 to 36, do (Actions)
Loop - Actions
Set IN_NovaEffectPoint = (IN_CasterLoc offset by ((100.00 x (Real(IN_NovaCount))) + (100.00 x (Real(IN_NovaCount)))) towards ((Real((Integer A))) x 10.00) degrees)
Special Effect - Create a special effect at IN_NovaEffectPoint using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
Special Effect - Destroy (Last created special effect)
Unit Group - Pick every unit in (Units within 150.00 of IN_NovaEffectPoint matching ((((Matching unit) is A structure) Not equal to True) and (((Matching unit) belongs to an ally of (Owner of IN_Caster)) Not equal to True))) and do (Actions)
Loop - Actions
Unit - Create 1 Dummy for (Owner of IN_Caster) at IN_NovaEffectPoint facing Default building facing degrees
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Add Ice Nova dummy to (Last created unit)
Unit - Set level of Ice Nova dummy for (Last created unit) to (Level of Ice Nova for IN_Caster)
Unit - Order (Last created unit) to Undead Lich - Frost Nova (Picked unit)
Custom script: call RemoveLocation(udg_IN_NovaEffectPoint)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
IN_NovaCount Equal to 3
Then - Actions
Custom script: set udg_IN_Caster=null
Custom script: call RemoveLocation(udg_IN_CasterLoc)
Trigger - Turn off (This trigger)
Else - Actions
Do nothing
Frost Diver -
Code:
Frost Diver
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Frost Diver
Actions
Set FD_Caster = (Triggering unit)
Set FD_CasterLoc = (Position of FD_Caster)
Set FD_Target = (Target unit of ability being cast)
Set FD_Angle = (Angle from FD_CasterLoc to FD_TargetLoc)
Set FD_Distance = (Distance between FD_CasterLoc and FD_TargetLoc)
Set FD_N = 0.00
Set FD_Count = 1
Trigger - Turn on Frost Diver Effect <gen>
Code:
Frost Diver Effect
Events
Time - Every 0.20 seconds of game time
Conditions
Actions
Set FD_Count = (FD_Count + 1)
Set FD_TargetLoc = (Position of FD_Target)
Set FD_EffectLoc = (FD_CasterLoc offset by (80.00 x (Real(FD_Count))) towards FD_Angle degrees)
Set FD_Angle = (Angle from FD_CasterLoc to FD_TargetLoc)
Set FD_Distance = (Distance between FD_CasterLoc and FD_TargetLoc)
Special Effect - Create a special effect at (FD_CasterLoc offset by (80.00 x (Real(FD_Count))) towards FD_Angle degrees) using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
Special Effect - Destroy (Last created special effect)
Unit Group - Pick every unit in (Units within 150.00 of FD_EffectLoc matching ((((Matching unit) is A structure) Not equal to True) and (((Matching unit) belongs to an ally of (Owner of FD_Caster)) Not equal to True))) and do (Actions)
Loop - Actions
Unit - Create 1 Dummy for (Owner of FD_Caster) at FD_TargetLoc facing Default building facing degrees
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Add Frost Diver dummy 1 to (Last created unit)
Unit - Set level of Frost Diver dummy 1 for (Last created unit) to (Level of Frost Diver for FD_Caster)
Unit - Order (Last created unit) to Undead Lich - Frost Nova (Picked unit)
Set FD_N = (FD_N + 80.00)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
FD_N Greater than or equal to FD_Distance
Then - Actions
Unit - Create 1 Dummy for (Owner of FD_Caster) at FD_TargetLoc facing Default building facing degrees
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Add Frost Diver dummy 1 to (Last created unit)
Unit - Set level of Frost Diver dummy 1 for (Last created unit) to (Level of Frost Diver for FD_Caster)
Unit - Order (Last created unit) to Undead Lich - Frost Nova FD_Target
Unit - Cause FD_Caster to damage FD_Target, dealing (80.00 x (Real((Level of Frost Diver for FD_Caster)))) damage of attack type Spells and damage type Cold
Custom script: set udg_FD_Caster=null
Custom script: set udg_FD_Target=null
Custom script: call RemoveLocation(udg_FD_CasterLoc)
Custom script: call RemoveLocation(udg_FD_TargetLoc)
Custom script: call RemoveLocation(udg_FD_EffectLoc)
Trigger - Turn off (This trigger)
Else - Actions
Do nothing
Feedback please.