-
Frost Tomb
-
Events
-
Unit - A unit Starts the effect of an ability
-
-
Conditions
-
(Ability being cast) Equal to Frost Tomb (text not done)
-
-
Actions
-
-------- Start of Index --------
-
Set VariableSet FrostTomb_Index = (FrostTomb_Index + 1)
-
Set VariableSet FrostTomb_Loop = (FrostTomb_Loop + 1)
-
-------- ------ --------
-
Set VariableSet FrostTomb_Caster[FrostTomb_Index] = (Triggering unit)
-
Set VariableSet FrostTomb_Loc[FrostTomb_Index] = (Target point of ability being cast)
-
-------- ----- --------
-
Set VariableSet FrostTomb_Level[FrostTomb_Index] = (Level of Frost Tomb (text not done) for FrostTomb_Caster[FrostTomb_Index])
-
Set VariableSet FrostTomb_Time[FrostTomb_Index] = (75.00 + (25.00 x (Real(FrostTomb_Level[FrostTomb_Index]))))
-
-------- ----- --------
-
Set VariableSet FrostTomb_Damage[FrostTomb_Index] = ((Real(FrostTomb_Level[FrostTomb_Index])) x (60.00 + ((Real((Intelligence of FrostTomb_Caster[FrostTomb_Index] (Include bonuses)))) x 0.25)))
-
Game - Display to (All players) the text: (String(FrostTomb_Damage[FrostTomb_Index]))
-
Set VariableSet FrostTomb_Group[FrostTomb_Index] = (Units within 725.00 of FrostTomb_Loc[FrostTomb_Index].)
-
Unit Group - Pick every unit in FrostTomb_Group[FrostTomb_Index] and do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
((Picked unit) is alive) Equal to True
-
((Picked unit) belongs to an enemy of (Owner of FrostTomb_Caster[FrostTomb_Index]).) Equal to True
-
((Picked unit) is A structure) Equal to False
-
((Picked unit) is Mechanical) Equal to False
-
((Picked unit) is Magic Immune) Equal to False
-
-
Then - Actions
-
Else - Actions
-
Unit Group - Remove (Picked unit) from FrostTomb_Group[FrostTomb_Index].
-
-
-
-
-
Unit Group - Pick every unit in FrostTomb_Group[FrostTomb_Index] and do (Actions)
-
Loop - Actions
-
Set VariableSet FrostTomb_Target[FrostTomb_Index] = (Picked unit)
-
Unit - Cause FrostTomb_Caster[FrostTomb_Index] to damage FrostTomb_Target[FrostTomb_Index], dealing FrostTomb_Damage[FrostTomb_Index] damage of attack type Spells and damage type Magic
-
Animation - Change FrostTomb_Target[FrostTomb_Index]'s animation speed to 0.00% of its original speed
-
Unit - Pause FrostTomb_Target[FrostTomb_Index]
-
Special Effect - Create a special effect attached to the chest of FrostTomb_Target[FrostTomb_Index] using Abilities\Spells\Undead\FreezingBreath\FreezingBreathTargetArt.mdl
-
Set VariableSet FrostTomb_SFX[FrostTomb_Index] = (Last created special effect)
-
-
-
Custom script: call RemoveLocation (udg_FrostTomb_Loc[udg_FrostTomb_Index])
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
FrostTomb_Index Equal to 1
-
-
Then - Actions
-
Trigger - Turn on Frost Tomb Loop <gen>
-
-
Else - Actions
-
-
-
-
Frost Tomb Loop
-
Events
-
Time - Every 0.03 seconds of game time
-
-
Conditions
-
Actions
-
For each (Integer FrostTomb_Loop) from 1 to FrostTomb_Index, do (Actions)
-
Loop - Actions
-
Set VariableSet FrostTomb_Time[FrostTomb_Loop] = (FrostTomb_Time[FrostTomb_Loop] - 1.00)
-
Set VariableSet FrostTomb_SFX[FrostTomb_Loop] = FrostTomb_SFX[FrostTomb_Index]
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
FrostTomb_Time[FrostTomb_Loop] Greater than 0.00
-
-
Then - Actions
-
Unit Group - Pick every unit in FrostTomb_Group[FrostTomb_Loop] and do (Actions)
-
Loop - Actions
-
Set VariableSet FrostTomb_Target[FrostTomb_Loop] = (Picked unit)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(FrostTomb_Target[FrostTomb_Loop] is dead) Equal to True
-
-
Then - Actions
-
Unit Group - Remove FrostTomb_Target[FrostTomb_Loop] from FrostTomb_Group[FrostTomb_Loop].
-
Unit - Unpause FrostTomb_Target[FrostTomb_Loop]
-
Animation - Change FrostTomb_Target[FrostTomb_Loop]'s animation speed to 100.00% of its original speed
-
Special Effect - Destroy FrostTomb_SFX[FrostTomb_Loop]
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Number of units in FrostTomb_Group[FrostTomb_Loop]) Equal to 0
-
-
Then - Actions
-
Set VariableSet FrostTomb_Caster[FrostTomb_Loop] = FrostTomb_Caster[FrostTomb_Index]
-
Set VariableSet FrostTomb_Time[FrostTomb_Loop] = FrostTomb_Time[FrostTomb_Index]
-
Unit Group - Remove all units from FrostTomb_Group[FrostTomb_Loop].
-
Custom script: call DestroyGroup (udg_FrostTomb_Group[udg_FrostTomb_Loop])
-
Set VariableSet FrostTomb_Group[FrostTomb_Loop] = FrostTomb_Group[FrostTomb_Index]
-
-------- - --------
-
Set VariableSet FrostTomb_Index = (FrostTomb_Index - 1)
-
Set VariableSet FrostTomb_Loop = (FrostTomb_Loop - 1)
-
-
Else - Actions
-
-
-
Else - Actions
-
-
-
-
-
Else - Actions
-
Unit Group - Pick every unit in FrostTomb_Group[FrostTomb_Loop] and do (Actions)
-
Loop - Actions
-
Set VariableSet FrostTomb_Target[FrostTomb_Loop] = (Picked unit)
-
Unit Group - Remove FrostTomb_Target[FrostTomb_Loop] from FrostTomb_Group[FrostTomb_Loop].
-
Unit - Unpause FrostTomb_Target[FrostTomb_Loop]
-
Animation - Change FrostTomb_Target[FrostTomb_Loop]'s animation speed to 100.00% of its original speed
-
Special Effect - Destroy FrostTomb_SFX[FrostTomb_Loop]
-
Set VariableSet FrostTomb_Caster[FrostTomb_Loop] = FrostTomb_Caster[FrostTomb_Index]
-
Set VariableSet FrostTomb_Time[FrostTomb_Loop] = FrostTomb_Time[FrostTomb_Index]
-
Unit Group - Remove all units from FrostTomb_Group[FrostTomb_Loop].
-
Custom script: call DestroyGroup (udg_FrostTomb_Group[udg_FrostTomb_Loop])
-
Set VariableSet FrostTomb_Group[FrostTomb_Loop] = FrostTomb_Group[FrostTomb_Index]
-
-------- - --------
-
Set VariableSet FrostTomb_Index = (FrostTomb_Index - 1)
-
Set VariableSet FrostTomb_Loop = (FrostTomb_Loop - 1)
-
-
-
-
-
-
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
FrostTomb_Index Equal to 0
-
-
Then - Actions
-
Game - Display to (All players) the text: Loop turned off
-
Trigger - Turn off (This trigger)
-
-
Else - Actions
-
-
-
List of issues:
1) Special effects are not destroyed.
2) There is something wrong with loop, returning the initial trigger to set the damage of FrostTomb_Damage to 0.00, as long as the loop is running.
3) Units don't unpause.
The idea of this spell was a point target AoE spell, dealing initial damage and then freezing units for a period of time. I know using pause is bad, but forgot how to get the defaultpropwindow of a unit.