Time Guardian
It is..
GUI
MUI
Lagless
Leakless
Import Difficulty: Easy
Abilities:
Changelog
Inform me if there are any leaks. Thanks in advance!
If you like it, I'll hope to get +rep from you.
It is..
GUI
MUI
Lagless
Leakless
Import Difficulty: Easy
Abilities:
Time Walk
Walk into the future with his shadow. After his shadow finishes walking through the path of time, he moves himself into the future that his shadow has created for him.
Level 1 - Maximum range of 700.
Level 2 - Maximum range of 900.
Level 3 - Maximum range of 1100.
Level 4 - Maximum range of 1300.
Time Whirl
There was actually an explosion effect, you'll have to test the map to see it for yourself.
Creates a concentration of energy at a point, causing nearby enemy to be sucked in. After 3.5 seconds, the huge concentration of energy will detonate, pushing all nearby enemy away from it and deals damage. Enemy that is near to the area of explosion will takes halved of the damage. Damage is pure.
Level 1 - 200 AoE, deals 80 damage.
Level 2 - 250 AoE, deals 160 damage.
Level 3 - 300 AoE, deals 240 damage.
Level 4 - 350 AoE, deals 320 damage.
Reverse
Gives a chance that the damage taken will be reflected to its' source. Whenever an amount of damage is reflected, an energy burst will occur around this unit, thus nearby enemy will be knocked back and takes pure damage.
Level 1 - 5% chance to reflect damage, every 150 damage reflected will cause a energy burst dealing 25 damage.
Level 2 - 10% chance to reflect damage, every 135 damage reflected will cause a energy burst dealing 50 damage.
Level 3 - 15% chance to reflect damage, every 120 damage reflected will cause a energy burst dealing 75 damage.
Level 4 - 20% chance to reflect damage, every 100 damage reflected will cause a energy burst dealing 100 damage.
Path of Time
Open up the path of time for a short period of time, when the path of time is opened, the time will be stopped for a short period of time. Once the path of time vanishes, it will moves the time guardian back to its' original location.
Level 1 - Open path for 4 seconds.
Level 2 - Open path for 5 seconds.
Level 3 - Open path for 6 seconds.
Walk into the future with his shadow. After his shadow finishes walking through the path of time, he moves himself into the future that his shadow has created for him.
Level 1 - Maximum range of 700.
Level 2 - Maximum range of 900.
Level 3 - Maximum range of 1100.
Level 4 - Maximum range of 1300.
Trigger:
- Time Walk
- Events
- Unit - A unit Starts the effect of an ability
- Conditions
- (Ability being cast) Equal to Time Walk
- Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- TimeWalk_Counts Greater than 500
- Then - Actions
- Set TimeWalk_Counts = 0
- Else - Actions
- If - Conditions
- Set TimeWalk_Counts = (TimeWalk_Counts + 1)
- Set TimeWalk_Caster[TimeWalk_Counts] = (Casting unit)
- Set TimeWalk_CasterLoc = (Position of TimeWalk_Caster[TimeWalk_Counts])
- Set TimeWalk_TargetPoint = (Target point of ability being cast)
- Set TimeWalk_Angle[TimeWalk_Counts] = (Angle from TimeWalk_CasterLoc to TimeWalk_TargetPoint)
- Set TimeWalk_Distance[TimeWalk_Counts] = (Distance between TimeWalk_CasterLoc and TimeWalk_TargetPoint)
- Set TimeWalk_DistanceMoved[TimeWalk_Counts] = 0.00
- Set TimeWalk_DistanceCounts[TimeWalk_Counts] = 0.00
- Set TimeWalk_Colour[TimeWalk_Counts] = 25.00
- Unit - Create 1 Dummy Time Walk for (Owner of TimeWalk_Caster[TimeWalk_Counts]) at TimeWalk_CasterLoc facing TimeWalk_Angle[TimeWalk_Counts] degrees
- Animation - Change (Last created unit)'s vertex coloring to (25.00%, 25.00%, 25.00%) with 0.00% transparency
- Unit - Set the custom value of (Last created unit) to TimeWalk_Counts
- Unit Group - Add (Last created unit) to TimeWalk_DummyGroup
- Custom script: call RemoveLocation(udg_TimeWalk_CasterLoc)
- Custom script: call RemoveLocation(udg_TimeWalk_TargetPoint)
- Trigger - Turn on Time Walk Effects <gen>
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Events
Trigger:
- Time Walk Effects
- Events
- Time - Every 0.02 seconds of game time
- Conditions
- Actions
- Unit Group - Pick every unit in TimeWalk_DummyGroup and do (Actions)
- Loop - Actions
- Set TimeWalk_Dummy = (Picked unit)
- Set TimeWalk_CustomValue = (Custom value of TimeWalk_Dummy)
- Set TimeWalk_Point[1] = (Position of TimeWalk_Dummy)
- Set TimeWalk_Point[2] = (TimeWalk_Point[1] offset by 20.00 towards TimeWalk_Angle[TimeWalk_CustomValue] degrees)
- Destructible - Pick every destructible within 80.00 of TimeWalk_Point[2] and do (Actions)
- Loop - Actions
- Destructible - Kill (Picked destructible)
- Loop - Actions
- Unit - Move TimeWalk_Dummy instantly to TimeWalk_Point[2]
- Animation - Play TimeWalk_Dummy's walk animation
- Set TimeWalk_DistanceMoved[TimeWalk_CustomValue] = (TimeWalk_DistanceMoved[TimeWalk_CustomValue] + 20.00)
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- TimeWalk_DistanceMoved[TimeWalk_CustomValue] Greater than or equal to TimeWalk_Distance[TimeWalk_CustomValue]
- Then - Actions
- Special Effect - Create a special effect attached to the chest of TimeWalk_Caster[TimeWalk_CustomValue] using Abilities\Spells\Items\SpellShieldAmulet\SpellShieldCaster.mdl
- Special Effect - Destroy (Last created special effect)
- Custom script: call SetUnitX( udg_TimeWalk_Caster[udg_TimeWalk_CustomValue], GetLocationX( udg_TimeWalk_Point[2] ) )
- Custom script: call SetUnitY( udg_TimeWalk_Caster[udg_TimeWalk_CustomValue], GetLocationY( udg_TimeWalk_Point[2] ) )
- Unit - Remove TimeWalk_Dummy from the game
- Unit Group - Remove TimeWalk_Dummy from TimeWalk_DummyGroup
- Set TimeWalk_Caster[TimeWalk_CustomValue] = No unit
- Else - Actions
- Set TimeWalk_DistanceCounts[TimeWalk_CustomValue] = (TimeWalk_DistanceCounts[TimeWalk_CustomValue] + 20.00)
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- TimeWalk_DistanceCounts[TimeWalk_CustomValue] Greater than or equal to 40.00
- Then - Actions
- Set TimeWalk_Colour[TimeWalk_CustomValue] = (TimeWalk_Colour[TimeWalk_CustomValue] + 2.50)
- Set TimeWalk_DistanceCounts[TimeWalk_CustomValue] = 0.00
- Set TimeWalk_FadeCounts = (TimeWalk_FadeCounts + 1)
- Set TimeWalk_Fade[TimeWalk_FadeCounts] = 0.00
- Set TimeWalk_FadeColour[TimeWalk_FadeCounts] = TimeWalk_Colour[TimeWalk_CustomValue]
- Unit - Create 1 Dummy Time Walk for (Owner of TimeWalk_Caster[TimeWalk_CustomValue]) at TimeWalk_Point[2] facing TimeWalk_Angle[TimeWalk_CustomValue] degrees
- Animation - Change (Last created unit)'s vertex coloring to (TimeWalk_Colour[TimeWalk_CustomValue]%, TimeWalk_Colour[TimeWalk_CustomValue]%, TimeWalk_Colour[TimeWalk_CustomValue]%) with 0.00% transparency
- Unit - Set the custom value of (Last created unit) to TimeWalk_FadeCounts
- Unit Group - Add (Last created unit) to TimeWalk_FadeGroup
- Else - Actions
- If - Conditions
- If - Conditions
- Animation - Change TimeWalk_Dummy's vertex coloring to (TimeWalk_Colour[TimeWalk_CustomValue]%, TimeWalk_Colour[TimeWalk_CustomValue]%, TimeWalk_Colour[TimeWalk_CustomValue]%) with 0.00% transparency
- Custom script: call RemoveLocation(udg_TimeWalk_Point[1])
- Custom script: call RemoveLocation(udg_TimeWalk_Point[2])
- Loop - Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Number of units in TimeWalk_FadeGroup) Greater than 0
- Then - Actions
- Unit Group - Pick every unit in TimeWalk_FadeGroup and do (Actions)
- Loop - Actions
- Set TimeWalk_FadeCustomValue = (Custom value of (Picked unit))
- Animation - Play (Picked unit)'s walk animation
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- TimeWalk_Fade[TimeWalk_FadeCustomValue] Greater than or equal to 100.00
- Then - Actions
- Unit - Remove (Picked unit) from the game
- Unit Group - Remove (Picked unit) from TimeWalk_FadeGroup
- Else - Actions
- Set TimeWalk_Fade[TimeWalk_FadeCustomValue] = (TimeWalk_Fade[TimeWalk_FadeCustomValue] + 2.50)
- Animation - Change (Picked unit)'s vertex coloring to (TimeWalk_FadeColour[TimeWalk_FadeCustomValue]%, TimeWalk_FadeColour[TimeWalk_FadeCustomValue]%, TimeWalk_FadeColour[TimeWalk_FadeCustomValue]%) with TimeWalk_Fade[TimeWalk_FadeCustomValue]% transparency
- If - Conditions
- Loop - Actions
- Unit Group - Pick every unit in TimeWalk_FadeGroup and do (Actions)
- Else - Actions
- If - Conditions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- And - All (Conditions) are true
- Conditions
- (Number of units in TimeWalk_DummyGroup) Equal to 0
- (Number of units in TimeWalk_FadeGroup) Equal to 0
- Conditions
- And - All (Conditions) are true
- Then - Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- TimeWalk_FadeCounts Greater than 500
- Then - Actions
- Set TimeWalk_FadeCounts = 0
- Else - Actions
- If - Conditions
- Trigger - Turn off (This trigger)
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Else - Actions
- If - Conditions
- Unit Group - Pick every unit in TimeWalk_DummyGroup and do (Actions)
- Events
Time Whirl
There was actually an explosion effect, you'll have to test the map to see it for yourself.
Creates a concentration of energy at a point, causing nearby enemy to be sucked in. After 3.5 seconds, the huge concentration of energy will detonate, pushing all nearby enemy away from it and deals damage. Enemy that is near to the area of explosion will takes halved of the damage. Damage is pure.
Level 1 - 200 AoE, deals 80 damage.
Level 2 - 250 AoE, deals 160 damage.
Level 3 - 300 AoE, deals 240 damage.
Level 4 - 350 AoE, deals 320 damage.
Trigger:
- Time Whirl
- Events
- Unit - A unit Starts the effect of an ability
- Conditions
- (Ability being cast) Equal to Time Whirl
- Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- TimeWhirl_Counts Greater than 500
- Then - Actions
- Set TimeWhirl_Counts = 0
- Else - Actions
- If - Conditions
- Set TimeWhirl_Counts = (TimeWhirl_Counts + 1)
- Set TimeWhirl_Caster[TimeWhirl_Counts] = (Casting unit)
- Set TimeWhirl_CasterLoc = (Position of TimeWhirl_Caster[TimeWhirl_Counts])
- Set TimeWhirl_TargetPoint[TimeWhirl_Counts] = (Target point of ability being cast)
- Set TimeWhirl_Level = (Level of Time Whirl for TimeWhirl_Caster[TimeWhirl_Counts])
- Set TimeWhirl_Area[1] = 200.00
- Set TimeWhirl_Area[2] = 250.00
- Set TimeWhirl_Area[3] = 300.00
- Set TimeWhirl_Area[4] = 350.00
- Destructible - Pick every destructible within TimeWhirl_Area[TimeWhirl_Level] of TimeWhirl_TargetPoint[TimeWhirl_Counts] and do (Actions)
- Loop - Actions
- Destructible - Kill (Picked destructible)
- Loop - Actions
- Set TimeWhirl_Timer[TimeWhirl_Counts] = 0.00
- Set TimeWhirl_DummySize[TimeWhirl_Counts] = 260.00
- Unit - Create 1 Dummy Time Whirl for (Owner of TimeWhirl_Caster[TimeWhirl_Counts]) at TimeWhirl_TargetPoint[TimeWhirl_Counts] facing Default building facing degrees
- Animation - Change (Last created unit)'s size to ((160.00 + (25.00 x (Real(TimeWhirl_Level))))%, (160.00 + (25.00 x (Real(TimeWhirl_Level))))%, (160.00 + (25.00 x (Real(TimeWhirl_Level))))%) of its original size
- Unit - Set the custom value of (Last created unit) to TimeWhirl_Counts
- Unit Group - Add (Last created unit) to TimeWhirl_DummyGroup
- Custom script: call RemoveLocation (udg_TimeWhirl_CasterLoc)
- Trigger - Turn on Time Whirl Effects <gen>
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Events
Trigger:
- Time Whirl Effects
- Events
- Time - Every 0.02 seconds of game time
- Conditions
- Actions
- Unit Group - Pick every unit in TimeWhirl_DummyGroup and do (Actions)
- Loop - Actions
- Set TimeWhirl_CustomValue = (Custom value of (Picked unit))
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- TimeWhirl_Timer[TimeWhirl_CustomValue] Greater than or equal to 3.50
- Then - Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- TimeWhirl_DummySize[TimeWhirl_CustomValue] Greater than or equal to 600.00
- Then - Actions
- Unit Group - Pick every unit in TimeWhirl_CollisionGroup and do (Actions)
- Loop - Actions
- Unit - Turn collision for (Picked unit) On
- Unit Group - Remove (Picked unit) from TimeWhirl_CollisionGroup
- Loop - Actions
- Unit - Kill (Picked unit)
- Unit Group - Remove (Picked unit) from TimeWhirl_DummyGroup
- Unit Group - Pick every unit in TimeWhirl_CollisionGroup and do (Actions)
- Else - Actions
- Set TimeWhirl_DummySize[TimeWhirl_CustomValue] = (TimeWhirl_DummySize[TimeWhirl_CustomValue] + 40.00)
- Animation - Change (Picked unit)'s size to (TimeWhirl_DummySize[TimeWhirl_CustomValue]%, TimeWhirl_DummySize[TimeWhirl_CustomValue]%, TimeWhirl_DummySize[TimeWhirl_CustomValue]%) of its original size
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- TimeWhirl_DummySize[TimeWhirl_CustomValue] Equal to 300.00
- Then - Actions
- Special Effect - Create a special effect at TimeWhirl_TargetPoint[TimeWhirl_CustomValue] using Abilities\Spells\Orc\LightningBolt\LightningBoltMissile.mdl
- Special Effect - Destroy (Last created special effect)
- Set TimeWhirl_UnitGroup[2] = (Units within TimeWhirl_Area[(Level of Time Whirl for TimeWhirl_Caster[TimeWhirl_CustomValue])] of TimeWhirl_TargetPoint[TimeWhirl_CustomValue] matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is alive) Equal to True) and
- Unit Group - Pick every unit in TimeWhirl_UnitGroup[2] and do (Actions)
- Loop - Actions
- Unit - Cause TimeWhirl_Caster[TimeWhirl_CustomValue] to damage (Picked unit), dealing (37.50 x (Real((Level of Time Whirl for TimeWhirl_Caster[TimeWhirl_CustomValue])))) damage of attack type Chaos and damage type Universal
- Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
- Special Effect - Destroy (Last created special effect)
- Loop - Actions
- Set TimeWhirl_UnitGroup[3] = (Units within (TimeWhirl_Area[(Level of Time Whirl for TimeWhirl_Caster[TimeWhirl_CustomValue])] + 100.00) of TimeWhirl_TargetPoint[TimeWhirl_CustomValue] matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is alive) Equal t
- Unit Group - Pick every unit in TimeWhirl_UnitGroup[3] and do (Actions)
- Loop - Actions
- Unit - Cause TimeWhirl_Caster[TimeWhirl_CustomValue] to damage (Picked unit), dealing (37.50 x (Real((Level of Time Whirl for TimeWhirl_Caster[TimeWhirl_CustomValue])))) damage of attack type Chaos and damage type Universal
- Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
- Special Effect - Destroy (Last created special effect)
- Loop - Actions
- Custom script: call DestroyGroup (udg_TimeWhirl_UnitGroup[2])
- Custom script: call DestroyGroup (udg_TimeWhirl_UnitGroup[3])
- Unit - Create 1 Dummy for (Owner of TimeWhirl_Caster[TimeWhirl_CustomValue]) at TimeWhirl_TargetPoint[TimeWhirl_CustomValue] facing Default building facing degrees
- Unit - Set the custom value of (Last created unit) to TimeWhirl_CustomValue
- Unit Group - Add (Last created unit) to TimeWhirl_KnockGroup
- Else - Actions
- If - Conditions
- If - Conditions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Else - Actions
- Set TimeWhirl_Timer[TimeWhirl_CustomValue] = (TimeWhirl_Timer[TimeWhirl_CustomValue] + 0.02)
- Set TimeWhirl_UnitGroup[1] = (Units within TimeWhirl_Area[(Level of Time Whirl for TimeWhirl_Caster[TimeWhirl_CustomValue])] of TimeWhirl_TargetPoint[TimeWhirl_CustomValue] matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is alive) Equal to True) and
- Unit Group - Pick every unit in TimeWhirl_UnitGroup[1] and do (Actions)
- Loop - Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- ((Picked unit) is in TimeWhirl_CollisionGroup) Not equal to True
- Then - Actions
- Unit Group - Add (Picked unit) to TimeWhirl_CollisionGroup
- Unit - Turn collision for (Picked unit) Off
- Else - Actions
- If - Conditions
- Set TimeWhirl_Target = (Picked unit)
- Set TimeWhirl_TargetLoc = (Position of TimeWhirl_Target)
- Unit - Wake up TimeWhirl_Target
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Distance between TimeWhirl_TargetLoc and TimeWhirl_TargetPoint[TimeWhirl_CustomValue]) Greater than or equal to 10.00
- Then - Actions
- Set TimeWhirl_Angle = (Angle from TimeWhirl_TargetLoc to TimeWhirl_TargetPoint[TimeWhirl_CustomValue])
- Set TimeWhirl_Point[1] = (TimeWhirl_TargetLoc offset by 5.50 towards (TimeWhirl_Angle + 75.00) degrees)
- Custom script: call SetUnitX( udg_TimeWhirl_Target, GetLocationX( udg_TimeWhirl_Point[1] ) )
- Custom script: call SetUnitY( udg_TimeWhirl_Target, GetLocationY( udg_TimeWhirl_Point[1] ) )
- Custom script: call RemoveLocation (udg_TimeWhirl_Point[1])
- Else - Actions
- If - Conditions
- Custom script: call RemoveLocation (udg_TimeWhirl_TargetLoc)
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Loop - Actions
- Custom script: call DestroyGroup (udg_TimeWhirl_UnitGroup[1])
- If - Conditions
- Loop - Actions
- Unit Group - Pick every unit in TimeWhirl_KnockGroup and do (Actions)
- Loop - Actions
- Set TimeWhirl_KnockCustomValue = (Custom value of (Picked unit))
- Set TimeWhirl_UnitGroup[4] = (Units within (TimeWhirl_Area[(Level of Time Whirl for TimeWhirl_Caster[TimeWhirl_KnockCustomValue])] + 100.00) of TimeWhirl_TargetPoint[TimeWhirl_KnockCustomValue] matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is aliv
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Number of units in TimeWhirl_UnitGroup[4]) Greater than 0
- Then - Actions
- Unit Group - Pick every unit in TimeWhirl_UnitGroup[4] and do (Actions)
- Loop - Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- ((Picked unit) is in TimeWhirl_CollisionGroup) Not equal to True
- Then - Actions
- Unit Group - Add (Picked unit) to TimeWhirl_CollisionGroup
- Unit - Turn collision for (Picked unit) Off
- Else - Actions
- If - Conditions
- Set TimeWhirl_KnockUnit = (Picked unit)
- Set TimeWhirl_KnockUnitLoc = (Position of TimeWhirl_KnockUnit)
- Set TimeWhirl_KnockAngle = (Angle from TimeWhirl_TargetPoint[TimeWhirl_KnockCustomValue] to TimeWhirl_KnockUnitLoc)
- Set TimeWhirl_Distance = (Distance between TimeWhirl_TargetPoint[TimeWhirl_KnockCustomValue] and TimeWhirl_KnockUnitLoc)
- Set TimeWhirl_Point[2] = (TimeWhirl_KnockUnitLoc offset by (4.00 + (1000.00 / TimeWhirl_Distance)) towards TimeWhirl_KnockAngle degrees)
- Destructible - Pick every destructible within 90.00 of TimeWhirl_Point[2] and do (Actions)
- Loop - Actions
- Destructible - Kill (Picked destructible)
- Loop - Actions
- Custom script: call SetUnitX( udg_TimeWhirl_KnockUnit, GetLocationX( udg_TimeWhirl_Point[2] ) )
- Custom script: call SetUnitY( udg_TimeWhirl_KnockUnit, GetLocationY( udg_TimeWhirl_Point[2] ) )
- Special Effect - Create a special effect at TimeWhirl_Point[2] using Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
- Special Effect - Destroy (Last created special effect)
- Custom script: call RemoveLocation (udg_TimeWhirl_KnockUnitLoc)
- Custom script: call RemoveLocation (udg_TimeWhirl_Point[2])
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Loop - Actions
- Unit Group - Pick every unit in TimeWhirl_UnitGroup[4] and do (Actions)
- Else - Actions
- Unit Group - Pick every unit in TimeWhirl_CollisionGroup and do (Actions)
- Loop - Actions
- Unit - Turn collision for (Picked unit) On
- Unit Group - Remove (Picked unit) from TimeWhirl_CollisionGroup
- Loop - Actions
- Unit Group - Remove (Picked unit) from TimeWhirl_KnockGroup
- Unit - Remove (Picked unit) from the game
- Custom script: call RemoveLocation (udg_TimeWhirl_TargetPoint[udg_TimeWhirl_KnockCustomValue])
- Set TimeWhirl_Caster[TimeWhirl_KnockCustomValue] = No unit
- Unit Group - Pick every unit in TimeWhirl_CollisionGroup and do (Actions)
- If - Conditions
- Custom script: call DestroyGroup (udg_TimeWhirl_UnitGroup[4])
- Loop - Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- And - All (Conditions) are true
- Conditions
- (Number of units in TimeWhirl_DummyGroup) Equal to 0
- (Number of units in TimeWhirl_KnockGroup) Equal to 0
- Conditions
- And - All (Conditions) are true
- Then - Actions
- Trigger - Turn off (This trigger)
- Else - Actions
- If - Conditions
- Unit Group - Pick every unit in TimeWhirl_DummyGroup and do (Actions)
- Events
Reverse
Gives a chance that the damage taken will be reflected to its' source. Whenever an amount of damage is reflected, an energy burst will occur around this unit, thus nearby enemy will be knocked back and takes pure damage.
Level 1 - 5% chance to reflect damage, every 150 damage reflected will cause a energy burst dealing 25 damage.
Level 2 - 10% chance to reflect damage, every 135 damage reflected will cause a energy burst dealing 50 damage.
Level 3 - 15% chance to reflect damage, every 120 damage reflected will cause a energy burst dealing 75 damage.
Level 4 - 20% chance to reflect damage, every 100 damage reflected will cause a energy burst dealing 100 damage.
Trigger:
- Reverse
- Events
- Unit - A unit Learns a skill
- Conditions
- (Learned Hero Skill) Equal to Reverse
- Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- ((Learning Hero) is in Reverse_StartGroup) Not equal to True
- Then - Actions
- Unit Group - Add (Learning Hero) to Reverse_StartGroup
- Trigger - Add to Reverse Damage <gen> the event (Unit - (Learning Hero) Takes damage)
- Set Reverse_Counts = (Reverse_Counts + 1)
- Set Reverse_Caster[Reverse_Counts] = (Learning Hero)
- Set Reverse_DamageTaken[Reverse_Counts] = 0.00
- Set Reverse_DamageBurst[1] = 150.00
- Set Reverse_DamageBurst[2] = 135.00
- Set Reverse_DamageBurst[3] = 120.00
- Set Reverse_DamageBurst[4] = 100.00
- Set Reverse_Point[1] = (Position of Reverse_Caster[Reverse_Counts])
- Unit - Create 1 Dummy for (Owner of Reverse_Caster[Reverse_Counts]) at Reverse_Point[1] facing Default building facing degrees
- Unit - Set the custom value of (Last created unit) to Reverse_Counts
- Unit Group - Add (Last created unit) to Reverse_DummyGroup
- Custom script: call RemoveLocation (udg_Reverse_Point[1])
- Else - Actions
- If - Conditions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Events
Trigger:
- Reverse Damage
- Events
- Conditions
- ((Attacked unit) is in Reverse_StartGroup) Equal to True
- ((Attacked unit) has buff Reverse ) Equal to True
- Actions
- Unit Group - Pick every unit in Reverse_DummyGroup and do (Actions)
- Loop - Actions
- Set Reverse_CustomValue = (Custom value of (Picked unit))
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Attacked unit) Equal to Reverse_Caster[Reverse_CustomValue]
- Then - Actions
- Set Reverse_RandomNumber = (Random percentage)
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- Reverse_RandomNumber Less than or equal to (5.00 x (Real((Level of Reverse for Reverse_Caster[Reverse_CustomValue]))))
- Then - Actions
- Set Reverse_DamageTaken[Reverse_CustomValue] = (Reverse_DamageTaken[Reverse_CustomValue] + (Damage taken))
- Unit - Set life of Reverse_Caster[Reverse_CustomValue] to ((Life of Reverse_Caster[Reverse_CustomValue]) + (Damage taken))
- Unit - Cause (Picked unit) to damage (Damage source), dealing (Damage taken) damage of attack type Chaos and damage type Universal
- Special Effect - Create a special effect attached to the origin of Reverse_Caster[Reverse_CustomValue] using Abilities\Spells\Items\SpellShieldAmulet\SpellShieldCaster.mdl
- Special Effect - Destroy (Last created special effect)
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- Reverse_DamageTaken[Reverse_CustomValue] Greater than or equal to Reverse_DamageBurst[(Level of Reverse for Reverse_Caster[Reverse_CustomValue])]
- Then - Actions
- Set Reverse_DamageTaken[Reverse_CustomValue] = 0.00
- Set Reverse_Point[2] = (Position of Reverse_Caster[Reverse_CustomValue])
- Special Effect - Create a special effect at Reverse_Point[2] using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
- Special Effect - Destroy (Last created special effect)
- Special Effect - Create a special effect attached to the origin of Reverse_Caster[Reverse_CustomValue] using Abilities\Spells\NightElf\Taunt\TauntCaster.mdl
- Special Effect - Destroy (Last created special effect)
- Special Effect - Create a special effect attached to the origin of Reverse_Caster[Reverse_CustomValue] using Abilities\Spells\Items\TomeOfRetraining\TomeOfRetrainingCaster.mdl
- Special Effect - Destroy (Last created special effect)
- Set Reverse_UnitGroup[1] = (Units within 250.00 of Reverse_Point[2] matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of Reverse_Caster[Reverse_CustomValue])) Equal to True)
- Unit Group - Pick every unit in Reverse_UnitGroup[1] and do (Actions)
- Loop - Actions
- Unit - Cause Reverse_Caster[Reverse_CustomValue] to damage (Picked unit), dealing (25.00 x (Real((Level of Reverse for Reverse_Caster[Reverse_CustomValue])))) damage of attack type Chaos and damage type Universal
- Loop - Actions
- Set Reverse_NumberofUnits = (Number of units in Reverse_UnitGroup[1])
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- Reverse_Loop Greater than 500
- Then - Actions
- Set Reverse_Loop = 0
- Else - Actions
- If - Conditions
- Set Reverse_Loop = (Reverse_Loop + 1)
- For each (Integer Reverse_Loop) from 1 to Reverse_NumberofUnits, do (Actions)
- Loop - Actions
- Set Reverse_UnitGroup[2] = (Random 1 units from Reverse_UnitGroup[1])
- Unit Group - Pick every unit in Reverse_UnitGroup[2] and do (Actions)
- Loop - Actions
- Set Reverse_Affected[Reverse_Loop] = (Picked unit)
- Set Reverse_AffectedLoc[Reverse_Loop] = (Position of Reverse_Affected[Reverse_Loop])
- Set Reverse_Angle[Reverse_Loop] = (Angle from Reverse_Point[2] to Reverse_AffectedLoc[Reverse_Loop])
- Set Reverse_Speed[Reverse_Loop] = 15.00
- Set Reverse_Distance[Reverse_Loop] = 0.00
- Unit Group - Remove (Picked unit) from Reverse_UnitGroup[1]
- Custom script: call RemoveLocation(udg_Reverse_AffectedLoc[udg_Reverse_Loop])
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Reverse Burst <gen> is on) Not equal to True
- Then - Actions
- Trigger - Turn on Reverse Burst <gen>
- Else - Actions
- If - Conditions
- Loop - Actions
- Custom script: call DestroyGroup (udg_Reverse_UnitGroup[2])
- Loop - Actions
- Custom script: call DestroyGroup (udg_Reverse_UnitGroup[1])
- Custom script: call RemoveLocation (udg_Reverse_Point[2])
- Else - Actions
- If - Conditions
- Else - Actions
- If - Conditions
- Else - Actions
- If - Conditions
- Loop - Actions
- Unit Group - Pick every unit in Reverse_DummyGroup and do (Actions)
Trigger:
- Reverse Burst
- Events
- Time - Every 0.02 seconds of game time
- Conditions
- Actions
- For each (Integer Reverse_Loop) from 1 to Reverse_NumberofUnits, do (Actions)
- Loop - Actions
- Set Reverse_AffectedLoc[Reverse_Loop] = (Position of Reverse_Affected[Reverse_Loop])
- Set Reverse_Movement[Reverse_Loop] = (Reverse_AffectedLoc[Reverse_Loop] offset by Reverse_Speed[Reverse_Loop] towards Reverse_Angle[Reverse_Loop] degrees)
- Destructible - Pick every destructible within 90.00 of Reverse_Movement[Reverse_Loop] and do (Actions)
- Loop - Actions
- Destructible - Kill (Picked destructible)
- Loop - Actions
- Custom script: call SetUnitX( udg_Reverse_Affected[udg_Reverse_Loop], GetLocationX( udg_Reverse_Movement[udg_Reverse_Loop] ) )
- Custom script: call SetUnitY( udg_Reverse_Affected[udg_Reverse_Loop], GetLocationY( udg_Reverse_Movement[udg_Reverse_Loop] ) )
- Set Reverse_Distance[Reverse_Loop] = (Reverse_Distance[Reverse_Loop] + Reverse_Speed[Reverse_Loop])
- Set Reverse_Speed[Reverse_Loop] = (Reverse_Speed[Reverse_Loop] - 0.30)
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- Reverse_Distance[Reverse_Loop] Greater than or equal to 15.00
- Then - Actions
- Set Reverse_Distance[Reverse_Loop] = 0.00
- Special Effect - Create a special effect at Reverse_Movement[Reverse_Loop] using Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
- Special Effect - Destroy (Last created special effect)
- Else - Actions
- If - Conditions
- Custom script: call RemoveLocation(udg_Reverse_AffectedLoc[udg_Reverse_Loop])
- Custom script: call RemoveLocation(udg_Reverse_Movement[udg_Reverse_Loop])
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- Reverse_Speed[Reverse_Loop] Less than or equal to 0.00
- Then - Actions
- Set Reverse_Done = (Reverse_Done + 1)
- Set Reverse_Affected[Reverse_Loop] = No unit
- Else - Actions
- If - Conditions
- Loop - Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- Reverse_Done Greater than or equal to Reverse_NumberofUnits
- Then - Actions
- Set Reverse_Done = 0
- Trigger - Turn off (This trigger)
- Else - Actions
- If - Conditions
- For each (Integer Reverse_Loop) from 1 to Reverse_NumberofUnits, do (Actions)
- Events
Path of Time
Open up the path of time for a short period of time, when the path of time is opened, the time will be stopped for a short period of time. Once the path of time vanishes, it will moves the time guardian back to its' original location.
Level 1 - Open path for 4 seconds.
Level 2 - Open path for 5 seconds.
Level 3 - Open path for 6 seconds.
Trigger:
- Path of Time
- Events
- Unit - A unit Starts the effect of an ability
- Conditions
- (Ability being cast) Equal to Path of Time
- Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- PathofTime_Counts Greater than 500
- Then - Actions
- Set PathofTime_Counts = 0
- Else - Actions
- If - Conditions
- Set PathofTime_Counts = (PathofTime_Counts + 1)
- Set PathofTime_Caster[PathofTime_Counts] = (Casting unit)
- Set PathofTime_CasterLoc[PathofTime_Counts] = (Position of PathofTime_Caster[PathofTime_Counts])
- Set PathofTime_FaceAngle[PathofTime_Counts] = (Facing of PathofTime_Caster[PathofTime_Counts])
- Set PathofTime_Level = (Level of Path of Time for PathofTime_Caster[PathofTime_Counts])
- Set PathofTime_Duration[1] = 4.00
- Set PathofTime_Duration[2] = 5.00
- Set PathofTime_Duration[3] = 6.00
- Unit - Create 1 Dummy for (Owner of PathofTime_Caster[PathofTime_Counts]) at PathofTime_CasterLoc[PathofTime_Counts] facing Default building facing degrees
- Unit - Set the custom value of (Last created unit) to PathofTime_Counts
- Unit - Add a PathofTime_Duration[PathofTime_Level] second Generic expiration timer to (Last created unit)
- Unit Group - Add (Last created unit) to PathofTime_DummyGroup
- Set PathofTime_StopGroup = (Units in (Playable map area) matching (((Unit-type of (Matching unit)) Not equal to Dummy Time Walk) and ((Matching unit) Not equal to PathofTime_Caster[PathofTime_Counts])))
- Unit Group - Pick every unit in PathofTime_StopGroup and do (Actions)
- Loop - Actions
- Unit - Pause (Picked unit)
- Animation - Change (Picked unit)'s animation speed to 0.00% of its original speed
- Loop - Actions
- Unit - Turn collision for PathofTime_Caster[PathofTime_Counts] Off
- Custom script: call DestroyGroup (udg_PathofTime_StopGroup)
- Trigger - Turn on Path of Time Effects <gen>
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Events
Trigger:
- Path of Time Effects
- Events
- Time - Every 0.10 seconds of game time
- Conditions
- Actions
- Unit Group - Pick every unit in PathofTime_DummyGroup and do (Actions)
- Loop - Actions
- Set PathofTime_CustomValue = (Custom value of (Picked unit))
- Set PathofTime_Point = (Position of PathofTime_Caster[PathofTime_CustomValue])
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- ((Picked unit) is alive) Equal to True
- Then - Actions
- Game - Set time of day speed to 0.00% of the default speed
- Set PathofTime_RandomHeight = (Random real number between 75.00 and 300.00)
- Set PathofTime_RandomSize = (Random real number between 110.00 and 220.00)
- Set PathofTime_Region = (Region centered at PathofTime_Point with size (1200.00, 1200.00))
- Set PathofTime_RandomPoint = (Random point in PathofTime_Region)
- Unit - Create 1 Dummy Path of Time for (Owner of PathofTime_Caster[PathofTime_CustomValue]) at PathofTime_RandomPoint facing Default building facing degrees
- Unit - Set the custom value of (Last created unit) to PathofTime_CustomValue
- Unit - Add Storm Crow Form to (Last created unit)
- Unit - Remove Storm Crow Form from (Last created unit)
- Animation - Change (Last created unit) flying height to PathofTime_RandomHeight at (PathofTime_RandomHeight / 3.00)
- Animation - Change (Last created unit)'s size to (PathofTime_RandomSize%, PathofTime_RandomSize%, PathofTime_RandomSize%) of its original size
- Unit Group - Add (Last created unit) to PathofTime_DestroyGroup
- Set PathofTime_StopGroup = (Units in (Playable map area) matching (((Unit-type of (Matching unit)) Not equal to Dummy Time Walk) and ((Matching unit) Not equal to PathofTime_Caster[PathofTime_CustomValue])))
- Unit Group - Pick every unit in PathofTime_StopGroup and do (Actions)
- Loop - Actions
- Unit - Pause (Picked unit)
- Animation - Change (Picked unit)'s animation speed to 0.00% of its original speed
- Loop - Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- PathofTime_FadeCounts Greater than 500
- Then - Actions
- Set PathofTime_FadeCounts = 0
- Else - Actions
- If - Conditions
- Set PathofTime_FadeCounts = (PathofTime_FadeCounts + 1)
- Set PathofTime_Fade[PathofTime_FadeCounts] = 0.00
- Unit - Create 1 Dummy Time Walk for (Owner of PathofTime_Caster[PathofTime_CustomValue]) at PathofTime_Point facing (Facing of PathofTime_Caster[PathofTime_CustomValue]) degrees
- Unit - Set the custom value of (Last created unit) to PathofTime_FadeCounts
- Unit Group - Add (Last created unit) to PathofTime_FadeGroup
- Custom script: call DestroyGroup (udg_PathofTime_StopGroup)
- Custom script: call RemoveRect(udg_PathofTime_Region)
- Custom script: call RemoveLocation (udg_PathofTime_RandomPoint)
- Else - Actions
- Unit - Turn collision for PathofTime_Caster[PathofTime_CustomValue] On
- Special Effect - Create a special effect at PathofTime_Point using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
- Special Effect - Destroy (Last created special effect)
- Custom script: call SetUnitX( udg_PathofTime_Caster[udg_PathofTime_CustomValue], GetLocationX( udg_PathofTime_CasterLoc[udg_PathofTime_CustomValue] ) )
- Custom script: call SetUnitY( udg_PathofTime_Caster[udg_PathofTime_CustomValue], GetLocationY( udg_PathofTime_CasterLoc[udg_PathofTime_CustomValue] ) )
- Special Effect - Create a special effect at PathofTime_CasterLoc[PathofTime_CustomValue] using Abilities\Spells\NightElf\Blink\BlinkTarget.mdl
- Special Effect - Destroy (Last created special effect)
- Unit - Make PathofTime_Caster[PathofTime_CustomValue] face PathofTime_FaceAngle[PathofTime_CustomValue] over 0.00 seconds
- Game - Set time of day speed to 100.00% of the default speed
- Unit Group - Pick every unit in PathofTime_DestroyGroup 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)) Equal to PathofTime_CustomValue
- Then - Actions
- Unit - Kill (Picked unit)
- Unit Group - Remove (Picked unit) from PathofTime_DummyGroup
- Else - Actions
- If - Conditions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Loop - Actions
- Unit - Remove (Picked unit) from the game
- Unit Group - Remove (Picked unit) from PathofTime_DummyGroup
- Set PathofTime_Caster[PathofTime_CustomValue] = No unit
- Set PathofTime_StopGroup = (Units in (Playable map area) matching (((Unit-type of (Matching unit)) Not equal to Dummy Time Walk) and ((Matching unit) Not equal to PathofTime_Caster[PathofTime_CustomValue])))
- Unit Group - Pick every unit in PathofTime_StopGroup and do (Actions)
- Loop - Actions
- Unit - Unpause (Picked unit)
- Animation - Change (Picked unit)'s animation speed to 100.00% of its original speed
- Loop - Actions
- Custom script: call DestroyGroup (udg_PathofTime_StopGroup)
- Custom script: call RemoveLocation (udg_PathofTime_CasterLoc[udg_PathofTime_CustomValue])
- If - Conditions
- Custom script: call RemoveLocation (udg_PathofTime_Point)
- Loop - Actions
- Unit Group - Pick every unit in PathofTime_FadeGroup and do (Actions)
- Loop - Actions
- Set PathofTime_FadeCustomValue = (Custom value of (Picked unit))
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- PathofTime_Fade[PathofTime_FadeCustomValue] Greater than or equal to 100.00
- Then - Actions
- Unit - Remove (Picked unit) from the game
- Unit Group - Remove (Picked unit) from PathofTime_FadeGroup
- Else - Actions
- Animation - Play (Picked unit)'s stand animation
- Set PathofTime_Fade[PathofTime_FadeCustomValue] = (PathofTime_Fade[PathofTime_FadeCustomValue] + 8.00)
- Animation - Change (Picked unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with PathofTime_Fade[PathofTime_FadeCustomValue]% transparency
- If - Conditions
- Loop - Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- And - All (Conditions) are true
- Conditions
- (Number of units in PathofTime_DestroyGroup) Equal to 0
- (Number of units in PathofTime_DummyGroup) Equal to 0
- (Number of units in PathofTime_FadeGroup) Equal to 0
- Conditions
- And - All (Conditions) are true
- Then - Actions
- Trigger - Turn off (This trigger)
- Else - Actions
- If - Conditions
- Unit Group - Pick every unit in PathofTime_DummyGroup and do (Actions)
- Events
- A leak was removed. [Komaqtion]
- Loop Integer A has been replaced by Reverse_Loop. [Weep]
- Reverse_Affected[Integer A] was changed to Reverse_Affected[Reverse_Loop]. [Weep]
- Slight changes has been made to Reverse_Loop. [Weep]
- Trigger - Reverse Burst has been proven not a MUI. [Weep]
- Loop Integer A has been replaced by Reverse_Loop. [Weep]
- Reverse_Affected[Integer A] was changed to Reverse_Affected[Reverse_Loop]. [Weep]
- Slight changes has been made to Reverse_Loop. [Weep]
- Trigger - Reverse Burst has been proven not a MUI. [Weep]
If you like it, I'll hope to get +rep from you.