The hero calls down the devil to aid him, who transforms him into an unstoppable death machine that kills anything standing its way.
This is my first spell, hope you like it
.
Special thanks to
_Guhun_
for explaining the issue to me
Chronosphere model by: PGRU-Unexpected
Triggers:
-
Demonic Rage Config
-
Events
-
Conditions
-
Actions
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- Caster Unit-Type --------
-
-------- ----------------------------- --------
-
Set Demonic_CasterType = Tester
-
-------- In case of more than 1 unit-type with this ability --------
-
Set Demonic_CasterType2 = No unit-type
-
Set Demonic_CasterType3 = No unit-type
-
Set Demonic_CasterType4 = No unit-type
-
Set Demonic_CasterType5 = No unit-type
-
-------- you can easily add more types, by just editing the main trigger's conditions --------
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- Damage dealt to enemies.__________________________ --------
-
-------- ----------------------------- --------
-
Set Demonic_Damage = 200.00
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- Duration of the ability --------
-
-------- ----------------------------- --------
-
Set Demonic_AbilityDuration = 60.00
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- Area of Effect(AOE).______________________ --------
-
-------- ----------------------------- --------
-
Set Demonic_Radius = 850.00
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- Damage over time Radius(1/don't change it) and the real Damage (2)_________ --------
-
-------- ----------------------------- --------
-
Set DemonicTimeRadius = 530.00
-
-------- ----------------------------- --------
-
Set Demonic_DamageOverTime = 50.00
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- Ending damage____________________ --------
-
-------- ----------------------------- --------
-
Set Demonic_Ending_Damage = 300.00
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- Strength, Agility and Intelligence gained and the rate of increase per level___________ --------
-
-------- ----------------------------- --------
-
Set Demonic_Strength_Gained = 10
-
-------- ----------------------------- --------
-
Set Demonic_Agility_Gained = 10
-
-------- ----------------------------- --------
-
Set Demonic_Intelligence_Gained = 10
-
-------- ----------------------------- --------
-
Set Demonic_Agility_Rule = 10
-
-------- ----------------------------- --------
-
Set Demonic_Strength_Rule = 10
-
-------- ----------------------------- --------
-
Set Demonic_Intelligence_Rule = 10
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- Speed gained______________________ --------
-
-------- ----------------------------- --------
-
Set Demonic_Speed_bonus = 300.00
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- Main dummies timer___________________ --------
-
-------- ----------------------------- --------
-
Set Demonic_Effectdummies_timer = 63.00
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- Lesser wind duration (damage per second)__________ --------
-
-------- ----------------------------- --------
-
Set Demonic_LesserWind_duration = 0.40
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- Initial Damage levels______________________ --------
-
-------- ----------------------------- --------
-
Set Demonic_LVL_Main = 100.00
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- Repeated damage levels (loop)______________ --------
-
-------- ----------------------------- --------
-
Set Demonic_LVL_Loop = 34.00
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- Special effects' frequency part 1 --------
-
Set Demonic_SpecialEffects = 0.12
-
-------- ----------------------------- --------
-
-------- Special effects' frequency part 2 (includes the lesser periodic damage) --------
-
Set Demonic_SpecialEffects2 = 0.33
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
Set Demonic_Damage_Type = Universal
-
Set Demonic_Attack_Type = Chaos
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- To change the time of the spell go to Demonic Rage trigger, last "Set" action. --------
-
-------- The main skill's timer (time taken for the ability to end.)Default: 63____________ --------
-
-------- You have to decrease the time in Object Editor --> Spell --------
-
-------- Rule: write the time --> Desired Time + 3 --------
-
-------- Example: If you want 20 secs, write 20 in Object Editor and 23 here. --------
-
-------- Note: Don't forget to change the duration of the Main Effects (same rule). --------
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
-------- ----------------------------- --------
-
Demonic Rage
-
Events
-
Unit - A unit Starts the effect of an ability
-
Conditions
-
(Ability being cast) Equal to DEMONIC RAGE
-
Or - Any (Conditions) are true
-
Conditions
-
(Unit-type of (Triggering unit)) Equal to Demonic_CasterType
-
(Unit-type of (Triggering unit)) Equal to Demonic_CasterType2
-
(Unit-type of (Triggering unit)) Equal to Demonic_CasterType3
-
(Unit-type of (Triggering unit)) Equal to Demonic_CasterType4
-
(Unit-type of (Triggering unit)) Equal to Demonic_CasterType5
-
Actions
-
-------- IMPORTANT SYSTEM PART START --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Then - Actions
-
Trigger - Turn on Demonic Rage Loop <gen>
-
Else - Actions
-
-------- Increase the index size --------
-
Set Demonic_timer = (Demonic_timer + 1)
-
-------- Dynamic Index --------
-
-------- Dynamic Index End --------
-
-------- Setup those arrays --------
-
Set Demonic_TempPoint[Demonic_timer] = (Position of (Triggering unit))
-
Set Demonic_Caster[Demonic_timer] = (Triggering unit)
-
Set Demonic_Total_Strength[Demonic_timer] = 0
-
Set Demonic_Total_Agility[Demonic_timer] = 0
-
Set Demonic_Total_Intelligence[Demonic_timer] = 0
-
Set LVL_Demonic[Demonic_timer] = (Level of DEMONIC RAGE for Demonic_Caster[Demonic_timer])
-
Set Demonic_SpellTime[Demonic_timer] = 60.00
-
Unit - Create 1 Dummy (big) for Neutral Passive at Demonic_TempPoint[Demonic_timer] facing Default building facing degrees
-
Unit - Add a Demonic_Effectdummies_timer second Generic expiration timer to (Last created unit)
-
Unit - Create 1 Dummy (crono) for Neutral Passive at Demonic_TempPoint[Demonic_timer] facing Default building facing degrees
-
Unit - Add a Demonic_Effectdummies_timer second Generic expiration timer to (Last created unit)
-
Unit - Create 1 Dummy (small) for Neutral Passive at Demonic_TempPoint[Demonic_timer] facing Default building facing degrees
-
Unit - Add a Demonic_Effectdummies_timer second Generic expiration timer to (Last created unit)
-
Unit - Create 1 Dummy2 (raising skull/howl) for Neutral Passive at Demonic_TempPoint[Demonic_timer] facing Default building facing degrees
-
Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
-
Unit - Set Demonic_Caster[Demonic_timer] movement speed to ((Current movement speed of Demonic_Caster[Demonic_timer]) + Demonic_Speed_bonus)
-
Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units within Demonic_Radius of Demonic_TempPoint[Demonic_timer]) and do (Actions)
-
Loop - Actions
-
Set Demonic_pickedunits = (Picked unit)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Demonic_pickedunits is Magic Immune) Equal to False
-
(Demonic_pickedunits belongs to an enemy of (Owner of Demonic_Caster[Demonic_timer])) Equal to True
-
Then - Actions
-
Unit - Cause Demonic_Caster[Demonic_timer] to damage Demonic_pickedunits, dealing (Demonic_Damage + (Demonic_LVL_Main x (Real(LVL_Demonic[Demonic_timer])))) damage of attack type Demonic_Attack_Type and damage type Demonic_Damage_Type
-
Else - Actions
-
Demonic Rage Loop
-
Events
-
Time - Every 0.03 seconds of game time
-
Conditions
-
Actions
-
For each (Integer Demonic_LoopIndex) from 1 to Demonic_timer, do (Actions)
-
Loop - Actions
-
Set TempInt = Demonic_LoopIndex
-
Set DemonicPoint = (Position of Demonic_Caster[Demonic_LoopIndex])
-
Set Dem_Rage_Timer3[TempInt] = (Dem_Rage_Timer3[TempInt] + 0.03)
-
Set Dem_Rage_Timer2[TempInt] = (Dem_Rage_Timer2[TempInt] + 0.03)
-
Set Dem_Rage_Timer[TempInt] = (Dem_Rage_Timer[TempInt] + 0.03)
-
-------- Condition... --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Dem_Rage_Timer3[TempInt] Equal to Demonic_SpecialEffects
-
Then - Actions
-
Set Dem_Rage_Timer3[TempInt] = 0.00
-
Set Demonic_Temp_Point = (DemonicPoint offset by (180.00, 0.00))
-
Unit - Create 1 Dummy3 for Neutral Passive at Demonic_Temp_Point facing Default building facing degrees
-
Unit - Add a 0.01 second Generic expiration timer to (Last created unit)
-
Custom script: call RemoveLocation(udg_Demonic_Temp_Point)
-
Set Demonic_Temp_Point = (DemonicPoint offset by (0.00, 180.00))
-
Unit - Create 1 Dummy3 for Neutral Passive at Demonic_Temp_Point facing Default building facing degrees
-
Unit - Add a 0.01 second Generic expiration timer to (Last created unit)
-
Custom script: call RemoveLocation(udg_Demonic_Temp_Point)
-
Set Demonic_Temp_Point = (DemonicPoint offset by (-180.00, 0.00))
-
Unit - Create 1 Dummy3 for Neutral Passive at Demonic_Temp_Point facing Default building facing degrees
-
Unit - Add a 0.01 second Generic expiration timer to (Last created unit)
-
Custom script: call RemoveLocation(udg_Demonic_Temp_Point)
-
Set Demonic_Temp_Point = (DemonicPoint offset by (0.00, -180.00))
-
Unit - Create 1 Dummy3 for Neutral Passive at Demonic_Temp_Point facing Default building facing degrees
-
Unit - Add a 0.01 second Generic expiration timer to (Last created unit)
-
Custom script: call RemoveLocation(udg_Demonic_Temp_Point)
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Dem_Rage_Timer2[TempInt] Equal to Demonic_SpecialEffects2
-
Then - Actions
-
Set Dem_Rage_Timer2[TempInt] = 0.00
-
Unit - Create 1 Dummy (small) for Neutral Passive at DemonicPoint facing Default building facing degrees
-
Unit - Add a Demonic_LesserWind_duration second Generic expiration timer to (Last created unit)
-
Unit - Create 1 Dummy2 (lightning) for Neutral Passive at DemonicPoint facing Default building facing degrees
-
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
-
Unit Group - Pick every unit in (Units within DemonicTimeRadius of DemonicPoint) and do (Actions)
-
Loop - Actions
-
Set Demonic_pickedunits = (Picked unit)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Demonic_pickedunits is Magic Immune) Equal to False
-
(Demonic_pickedunits is dead) Equal to False
-
(Demonic_pickedunits belongs to an enemy of (Owner of Demonic_Caster[TempInt])) Equal to True
-
Then - Actions
-
Unit - Cause Demonic_Caster[TempInt] to damage Demonic_pickedunits, dealing (Demonic_DamageOverTime + (Demonic_LVL_Loop x (Real(LVL_Demonic[Demonic_LoopIndex])))) damage of attack type Demonic_Attack_Type and damage type Demonic_Damage_Type
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Demonic_pickedunits is dead) Equal to True
-
Then - Actions
-
Set Demonic_Temp_Point = (Position of Demonic_pickedunits)
-
Unit - Create 1 Dummy4 for Neutral Passive at Demonic_Temp_Point facing Default building facing degrees
-
Custom script: call RemoveLocation(udg_Demonic_Temp_Point)
-
Unit - Add a 0.01 second Generic expiration timer to (Last created unit)
-
Else - Actions
-
Else - Actions
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Dem_Rage_Timer[TempInt] Greater than or equal to 0.99
-
Then - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Demonic_SpellTime[TempInt] Greater than 0.00
-
Then - Actions
-
-------- Actions --------
-
Unit - Create 1 Dummy (small) for Neutral Passive at DemonicPoint facing Default building facing degrees
-
Unit - Add a Demonic_LesserWind_duration second Generic expiration timer to (Last created unit)
-
Unit - Create 1 Dummy2 (lightning) for Neutral Passive at DemonicPoint facing Default building facing degrees
-
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
-
Unit Group - Pick every unit in (Units within DemonicTimeRadius of DemonicPoint) and do (Actions)
-
Loop - Actions
-
Set Demonic_pickedunits = (Picked unit)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Demonic_pickedunits is Magic Immune) Equal to False
-
(Demonic_pickedunits is dead) Equal to False
-
(Demonic_pickedunits belongs to an enemy of (Owner of Demonic_Caster[TempInt])) Equal to True
-
Then - Actions
-
Unit - Cause Demonic_Caster[TempInt] to damage Demonic_pickedunits, dealing (Demonic_DamageOverTime + (Demonic_LVL_Loop x (Real(LVL_Demonic[Demonic_LoopIndex])))) damage of attack type Demonic_Attack_Type and damage type Demonic_Damage_Type
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Demonic_pickedunits is dead) Equal to True
-
Then - Actions
-
Set Demonic_Temp_Point = (Position of Demonic_pickedunits)
-
Unit - Create 1 Dummy4 for Neutral Passive at Demonic_Temp_Point facing Default building facing degrees
-
Custom script: call RemoveLocation(udg_Demonic_Temp_Point)
-
Unit - Add a 0.01 second Generic expiration timer to (Last created unit)
-
Else - Actions
-
Else - Actions
-
Hero - Modify Agility of Demonic_Caster[TempInt]: Add (Demonic_Agility_Gained + (Demonic_Agility_Rule x LVL_Demonic[TempInt]))
-
Set Demonic_Total_Agility[TempInt] = (Demonic_Total_Agility[TempInt] + (Demonic_Agility_Gained + (LVL_Demonic[TempInt] x Demonic_Agility_Rule)))
-
Hero - Modify Strength of Demonic_Caster[TempInt]: Add (Demonic_Strength_Gained + (Demonic_Strength_Rule x LVL_Demonic[TempInt]))
-
Set Demonic_Total_Strength[TempInt] = (Demonic_Total_Strength[TempInt] + (Demonic_Strength_Gained + (LVL_Demonic[TempInt] x Demonic_Strength_Rule)))
-
Hero - Modify Intelligence of Demonic_Caster[TempInt]: Add (Demonic_Intelligence_Gained + (Demonic_Intelligence_Rule x LVL_Demonic[TempInt]))
-
Set Demonic_Total_Intelligence[TempInt] = (Demonic_Total_Intelligence[TempInt] + (Demonic_Intelligence_Gained + (LVL_Demonic[TempInt] x Demonic_Intelligence_Rule)))
-
Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units within Demonic_Radius of Demonic_TempPoint[TempInt]) and do (Actions)
-
Loop - Actions
-
Set Demonic_pickedunits = (Picked unit)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Demonic_pickedunits is Magic Immune) Equal to False
-
(Demonic_pickedunits belongs to an enemy of (Owner of Demonic_Caster[TempInt])) Equal to True
-
Then - Actions
-
Unit - Cause Demonic_Caster[TempInt] to damage Demonic_pickedunits, dealing (Demonic_Damage + (Demonic_LVL_Main x (Real(LVL_Demonic[TempInt])))) damage of attack type Demonic_Attack_Type and damage type Demonic_Damage_Type
-
Else - Actions
-
Set Demonic_SpellTime[TempInt] = (Demonic_SpellTime[TempInt] - 0.99)
-
Set Dem_Rage_Timer[TempInt] = 0.00
-
Else - Actions
-
Set DemonicPoint = (Position of Demonic_Caster[TempInt])
-
Hero - Modify Agility of Demonic_Caster[TempInt]: Subtract Demonic_Total_Agility[TempInt]
-
Set Demonic_Total_Agility[TempInt] = 0
-
Hero - Modify Strength of Demonic_Caster[TempInt]: Subtract Demonic_Total_Strength[TempInt]
-
Set Demonic_Total_Strength[TempInt] = 0
-
Hero - Modify Intelligence of Demonic_Caster[TempInt]: Subtract Demonic_Total_Intelligence[TempInt]
-
Set Demonic_Total_Intelligence[TempInt] = 0
-
Unit - Set Demonic_Caster[TempInt] movement speed to (Default movement speed of Demonic_Caster[TempInt])
-
Unit - Create 1 Dummy (big) for Neutral Passive at DemonicPoint facing Default building facing degrees
-
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
-
Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units within Demonic_Radius of DemonicPoint) and do (Actions)
-
Loop - Actions
-
Set Demonic_pickedunits = (Picked unit)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Demonic_pickedunits is Magic Immune) Equal to False
-
(Demonic_pickedunits belongs to an enemy of (Owner of Demonic_Caster[Demonic_LoopIndex])) Equal to True
-
Then - Actions
-
Unit - Cause Demonic_Caster[Demonic_LoopIndex] to damage Demonic_pickedunits, dealing Demonic_Ending_Damage damage of attack type Demonic_Attack_Type and damage type Demonic_Damage_Type
-
Else - Actions
-
Custom script: call RemoveLocation(udg_Demonic_TempPoint[udg_TempInt])
-
-------- IMPORTANT SYSTEM PART START --------
-
Set Demonic_TempPoint[Demonic_LoopIndex] = Demonic_TempPoint[Demonic_timer]
-
Set Demonic_Caster[Demonic_LoopIndex] = Demonic_Caster[Demonic_timer]
-
Set Demonic_Total_Strength[Demonic_LoopIndex] = Demonic_Total_Strength[Demonic_timer]
-
Set Demonic_Total_Agility[Demonic_LoopIndex] = Demonic_Total_Agility[Demonic_timer]
-
Set Demonic_Total_Intelligence[Demonic_LoopIndex] = Demonic_Total_Intelligence[Demonic_timer]
-
Set Demonic_SpellTime[Demonic_LoopIndex] = Demonic_SpellTime[Demonic_timer]
-
Set LVL_Demonic[Demonic_LoopIndex] = LVL_Demonic[Demonic_timer]
-
Set Dem_Rage_Timer3[Demonic_LoopIndex] = (Dem_Rage_Timer3[Demonic_timer] + 0.00)
-
Set Dem_Rage_Timer2[Demonic_LoopIndex] = (Dem_Rage_Timer2[Demonic_timer] + 0.00)
-
Set Dem_Rage_Timer[Demonic_LoopIndex] = (Dem_Rage_Timer[Demonic_timer] + 0.00)
-
-------- RecycleIndex --------
-
Set Demonic_timer = (Demonic_timer - 1)
-
Set Demonic_LoopIndex = (Demonic_LoopIndex - 1)
-
-------- Turn the trigger again off if the index_size is below 0... --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Then - Actions
-
Trigger - Turn off (This trigger)
-
Else - Actions
-
Else - Actions
-
Custom script: call RemoveLocation(udg_DemonicPoint)
How to import: Copy dummies, triggers, spell and files in import section.
Hope you like it.
Update 1.1:fixed some leaks.Special Thanks to EdgeOfChaos for helping me fixing them.
Update 1.2:Fixed all leaks.Special Thanks to EdgeOfChaos for helping me fixing them.Also deleted the strength bonus.
Update 2.0:Many things changed.3 more triggers,new effect and dummy and Damage Over Time(Every 2 seconds Damage occurs) appearing in the hero location(not where the spell is casted,it is where the hero is).
2016:
Update 3.0: Well I'm back after 2 years with bigger imagination. I cant describe everything so you should try it better than reading. Added 2 effects, made everything (or most things) customizable (for people who want the effect permanent or short), the STR bonus is back and added AGI bonus (and finally without wait action), added a speed bonus (I'm not sure if it really increases the speed, tell me in comments). Changed the wind rate to 1 from half per second (but at the cost of half the damage), added an ending damage and an effect to express it (damage at the end of the ability + wind), and added a damage at the position of the main area of the ability (so it can go with the long period of the main effects.) And that's it. I hope it get approved because I've put much effort on it and I'll be sad to see all that effort goes for nothing.
Update 3.1
Update 3.2
Update 3.3 (Modifiers are bugged)
Update 3.4
Update 4.0 MUI: All the excess triggers and folders will be removed on approval. Any thing which can be noticed easily is
made on purpose. This is finally
MUI. There is a small problem with decreasing the number of indexes but
it doesn't affect gameplay.
Update 4.1 MUI
Update 5
: Supports 3 levels, fixed speed bonus, Loop turns off successfully. I believe it can be approved now.
Update 5.1: I made an alternative for the "Demonic_index = ___ -1" and similar triggers. Not because it isn't what it should be means it's wrong. (But it could be wrong, test it.)
Update 5.2: "Unit begins casting" and "Unit starts the effect" are now optional (with different functions). Attributes gained now supports multiple levels. Some fixes.
Update 5.3: Intelligence, variable for the duration of the spell, more fixes.
Update 6: Complete MUI. I used:
[GUI] Dynamic Indexing Template
Credits to: Hanky
This is all what I can do for recycling and MUI.
Update 6.1: Fixes and cleans. 2 more effects WITHOUT lag.
Update 7: Updated the recycling triggers, changed the colors of the models and decreased the lag. Special thanks to _Guhun_
Update 7.1: The effects frequency can now be changed. Fixed location leaks. Removed Or conditions. Attack and Damage type are now configurable. Better tooltip.
Update 8.0: Fixed an issue in recycling. Event made to "starts effect". Added unit-type conditions to solve some bugs. The second part of the special effects and periodic damage timer made configurable. Fixed some leaks. Ability's duration is now configurable. Special thanks to Dr Super Good.
Keywords:
Demon, Rage, Evil, Rampage, Chaos, Death, Demonic, Deadly, Illidan.
Use this however you like, just give credits.