Moderator
M
Moderator
Sol Rider Spellpack v1.04 | Reviewed by Maker | 18th Jun 2013 | ||
| APPROVED | ||
|
|
Heat Wave

Events


Unit - A unit Starts the effect of an ability

Conditions


(Ability being cast) Equal to Heat Wave


(In-game time of day) Greater than 5.59


(In-game time of day) Less than 18.00

Actions


-------- This trigger is only for the % spell boost during daytime. --------


-------- Variables --------


Custom script: set udg_TempCaster = GetTriggerUnit()


Set TempPoint = (Position of TempCaster)


Set TempPlayer = (Owner of TempCaster)


Set TempInteger = (Level of (Ability being cast) for TempCaster)


Set OffsetLoc = (Target point of ability being cast)


-------- Dummy Caster --------


Unit - Create 1 Dummy for TempPlayer at TempPoint facing Default building facing degrees


Custom script: set udg_TempUnit = bj_lastCreatedUnit


Custom script: call RemoveLocation(udg_TempPoint)


Unit - Add a 0.01 second Generic expiration timer to TempUnit


Unit - Order TempUnit to Undead Dreadlord - Carrion Swarm OffsetLoc


Set TempLevel = (Level of Sunlight Efficiency for TempCaster)


If (All Conditions are True) then do (Then Actions) else do (Else Actions)



If - Conditions




TempLevel Equal to 1



Then - Actions




Unit - Add Heat Wave (Dummy 1) to TempUnit




Unit - Set level of Heat Wave (Dummy 1) for TempUnit to TempInteger



Else - Actions




If (All Conditions are True) then do (Then Actions) else do (Else Actions)





If - Conditions






TempLevel Equal to 2





Then - Actions






Unit - Add Heat Wave (Dummy 2) to TempUnit






Unit - Set level of Heat Wave (Dummy 2) for TempUnit to TempInteger





Else - Actions






If (All Conditions are True) then do (Then Actions) else do (Else Actions)







If - Conditions








TempLevel Equal to 3







Then - Actions








Unit - Add Heat Wave (Dummy 3) to TempUnit








Unit - Set level of Heat Wave (Dummy 3) for TempUnit to TempInteger







Else - Actions








If (All Conditions are True) then do (Then Actions) else do (Else Actions)









If - Conditions










TempLevel Equal to 4









Then - Actions










Unit - Add Heat Wave (Dummy 4) to TempUnit










Unit - Set level of Heat Wave (Dummy 4) for TempUnit to TempInteger









Else - Actions


-------- Leak Removal --------


Custom script: call RemoveLocation(udg_OffsetLoc)


Custom script: set udg_TempUnit = null


Custom script: set udg_TempCaster = null
Starblight

Events


Unit - A unit Starts the effect of an ability

Conditions


(Ability being cast) Equal to Starblight

Actions


-------- Variables --------


Custom script: set udg_TempCaster = GetTriggerUnit()


Set TempPoint = (Position of TempCaster)


Set TempPlayer = (Owner of TempCaster)


Set TempInteger = (Level of (Ability being cast) for TempCaster)


Set OffsetLoc = (Target point of ability being cast)


-------- To every unit in the target area --------


Custom script: set bj_wantDestroyGroup = true


Unit Group - Pick every unit in (Units within 350.00 of OffsetLoc matching ((((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True) and (((Matching unit) is alive) Equal to True))) and do (Actions)



Loop - Actions




-------- Dummy Caster --------




Unit - Create 1 Dummy for TempPlayer at TempPoint facing Default building facing degrees




Custom script: set udg_TempUnit = bj_lastCreatedUnit




Unit - Add Starblight (Normal) to TempUnit




Unit - Add a 0.01 second Generic expiration timer to TempUnit




Unit - Set level of Starblight (Normal) for TempUnit to TempInteger




Unit - Order TempUnit to Neutral Alchemist - Acid Bomb (Picked unit)




-------- Daytime bonus --------




If (All Conditions are True) then do (Then Actions) else do (Else Actions)





If - Conditions






(In-game time of day) Greater than 5.59






(In-game time of day) Less than 18.00





Then - Actions






-------- Dummy Caster --------






Set TempLevel = (Level of Sunlight Efficiency for TempCaster)






If (All Conditions are True) then do (Then Actions) else do (Else Actions)







If - Conditions








TempLevel Equal to 1







Then - Actions








Unit - Add Starblight (Dummy 1) to TempUnit








Unit - Set level of Starblight (Dummy 1) for TempUnit to TempInteger







Else - Actions








If (All Conditions are True) then do (Then Actions) else do (Else Actions)









If - Conditions










TempLevel Equal to 2









Then - Actions










Unit - Add Starblight (Dummy 2) to TempUnit










Unit - Set level of Starblight (Dummy 2) for TempUnit to TempInteger









Else - Actions










If (All Conditions are True) then do (Then Actions) else do (Else Actions)











If - Conditions












TempLevel Equal to 3











Then - Actions












Unit - Add Starblight (Dummy 3) to TempUnit












Unit - Set level of Starblight (Dummy 3) for TempUnit to TempInteger











Else - Actions












If (All Conditions are True) then do (Then Actions) else do (Else Actions)













If - Conditions














TempLevel Equal to 4













Then - Actions














Unit - Add Starblight (Dummy 4) to TempUnit














Unit - Set level of Starblight (Dummy 4) for TempUnit to TempInteger













Else - Actions






Unit - Order TempUnit to Neutral Alchemist - Acid Bomb (Picked unit)






Custom script: set udg_TempUnit = null





Else - Actions


-------- Leak Removal --------


Custom script: call RemoveLocation(udg_TempPoint)


Custom script: call RemoveLocation(udg_OffsetLoc)


Custom script: set udg_TempCaster = null
Solar Flare Config

Events


Map initialization

Conditions

Actions


-------- ----------- ---------- ----------- ----------


-------- Configurations for the Solar Flare spell --------


-------- ----------- ---------- ----------- ----------


-------- The area in which units are picked to get damaged. This is advised to be more than twice the SF_WhirlDistance. --------


Set SF_AOE = 450.00


-------- Sets the distance between each whirling flame. --------


-------- The direction depends on this, with clockwise being a negative integer and counter/anti-clockwise being a positive. --------


Set SF_DegreesPerWhirl = 72


-------- The distance between the target point and the whirl flames. --------


Set SF_WhirlDistance = 120.00


-------- The number of flames that will appear. --------


Set SF_WhirlFlames = 5
Solar Flare

Events


Unit - A unit Starts the effect of an ability

Conditions

Actions


If (All Conditions are True) then do (Then Actions) else do (Else Actions)



If - Conditions




(Ability being cast) Equal to Solar Flare



Then - Actions




If (All Conditions are True) then do (Then Actions) else do (Else Actions)





If - Conditions






DoT_Index[2] Equal to 0





Then - Actions






Set DoT_Index[1] = 0






Trigger - Turn on Solar Flare Loop <gen>





Else - Actions




-------- Variables --------




Set DoT_Index[1] = (DoT_Index[1] + 1)




Set DoT_Index[2] = (DoT_Index[2] + 1)




Set TempPoint = (Target point of ability being cast)




-------- Duration --------




Set DoT_Duration[DoT_Index[1]] = 2.00




-------- Caster --------




Set DoT_Caster[DoT_Index[1]] = (Triggering unit)




-------- Boolean required to run the loop trigger --------




Set DoT_Condition[DoT_Index[1]] = True




-------- String required to filter the ability --------




Set DoT_Name[DoT_Index[1]] = (Name of (Ability being cast))




-------- Attack and Damage Types --------




Set DoT_AttackType[DoT_Index[1]] = Spells




Set DoT_DamageType[DoT_Index[1]] = Fire




-------- Damage Amount --------




Set DoT_Damage[DoT_Index[1]] = (0.00 + (25.00 + (75.00 x (Real((Level of (Ability being cast) for (Triggering unit)))))))




If (All Conditions are True) then do (Then Actions) else do (Else Actions)





If - Conditions






(In-game time of day) Greater than 5.59






(In-game time of day) Less than 18.00





Then - Actions






Set DoT_Damage[DoT_Index[1]] = ((10.00 + (5.00 x (Real((Level of Sunlight Efficiency for (Triggering unit)))))) + DoT_Damage[DoT_Index[1]])





Else - Actions




-------- Unit Group to be damaged --------




Set DoT_Group[DoT_Index[1]] = (Units within SF_AOE of TempPoint matching ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True) or ((Owner of (Matching unit)) Equal to Neutral Passive))))




Custom script: set udg_TempPlayer = GetOwningPlayer(udg_DoT_Caster[udg_DoT_Index[1]])




Set SF_TargetPoint[DoT_Index[1]] = (Target point of ability being cast)




-------- Dummy Effect --------




Unit - Create 1 Dummy for TempPlayer at TempPoint facing TempReal degrees




Custom script: set udg_TempUnit = bj_lastCreatedUnit




Unit - Add a 2.00 second Generic expiration timer to TempUnit




Special Effect - Create a special effect attached to the chest of TempUnit using Sun.mdx




Animation - Change TempUnit's vertex coloring to (100.00%, 65.00%, 0.00%) with 0.00% transparency




Animation - Change TempUnit's size to (120.00%, 120.00%, 120.00%) of its original size




Custom script: set udg_TempUnit = null




Custom script: set udg_TempCaster = null




For each (Integer TempInteger) from 0 to SF_WhirlFlames, do (Actions)





Loop - Actions






-------- Variables --------






Set OffsetLoc = (Target point of ability being cast)






Set TempReal = ((Real(TempInteger)) x (Real(SF_DegreesPerWhirl)))






Set TempPoint = (OffsetLoc offset by SF_WhirlDistance towards TempReal degrees)






Custom script: call RemoveLocation(udg_OffsetLoc)






-------- Dummy Effect --------






Unit - Create 1 Dummy for TempPlayer at TempPoint facing TempReal degrees






Custom script: set udg_TempUnit = bj_lastCreatedUnit






Unit - Add a 2.00 second Generic expiration timer to TempUnit






Special Effect - Create a special effect attached to the chest of TempUnit using Abilities\Spells\Orc\SpiritLink\SpiritLinkTarget.mdl






Animation - Change TempUnit's vertex coloring to (100.00%, 65.00%, 0.00%) with 5.00% transparency






Animation - Change TempUnit's size to (250.00%, 250.00%, 250.00%) of its original size






Custom script: call RemoveLocation(udg_TempPoint)






Custom script: set udg_TempUnit = null



Else - Actions
Solar Flare Loop

Events


Time - Every 0.10 seconds of game time

Conditions

Actions


For each (Integer DoT_Index[3]) from 1 to DoT_Index[1], do (Actions)



Loop - Actions




If (All Conditions are True) then do (Then Actions) else do (Else Actions)





If - Conditions






DoT_Condition[DoT_Index[3]] Equal to True





Then - Actions






-------- Countdown --------






Set DoT_Duration[DoT_Index[3]] = (DoT_Duration[DoT_Index[3]] - 0.10)






-------- Check every interval that the DoT should damage. --------






If (All Conditions are True) then do (Then Actions) else do (Else Actions)







If - Conditions








DoT_Name[DoT_Index[3]] Equal to Solar Flare








Or - Any (Conditions) are true









Conditions










DoT_Duration[DoT_Index[3]] Equal to 0.00










DoT_Duration[DoT_Index[3]] Equal to 1.00










DoT_Duration[DoT_Index[3]] Equal to 1.90







Then - Actions








Custom script: set bj_wantDestroyGroup = true








Unit Group - Pick every unit in (Units within SF_AOE of SF_TargetPoint[DoT_Index[3]]) and do (Actions)









Loop - Actions










If (All Conditions are True) then do (Then Actions) else do (Else Actions)











If - Conditions












((Picked unit) belongs to an enemy of (Owner of DoT_Caster[DoT_Index[3]])) Equal to True












((Picked unit) is alive) Equal to True











Then - Actions












Unit Group - Add (Picked unit) to DoT_Group[DoT_Index[3]]











Else - Actions








Unit Group - Pick every unit in DoT_Group[DoT_Index[3]] and do (Actions)









Loop - Actions










-------- Damage --------










Unit - Cause DoT_Caster[DoT_Index[3]] to damage (Picked unit), dealing DoT_Damage[DoT_Index[3]] damage of attack type Hero and damage type Universal










Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Items\AIfb\AIfbSpecialArt.mdl










Special Effect - Destroy (Last created special effect)










Special Effect - Create a special effect attached to the overhead of (Picked unit) using Abilities\Spells\Orc\SpiritLink\SpiritLinkTarget.mdl










Special Effect - Destroy (Last created special effect)








If (All Conditions are True) then do (Then Actions) else do (Else Actions)









If - Conditions










DoT_Duration[DoT_Index[3]] Less than or equal to 0.00









Then - Actions










Set DoT_Condition[DoT_Index[3]] = False










Custom script: call DestroyGroup(udg_DoT_Group[udg_DoT_Index[3]])










Set DoT_Index[2] = (DoT_Index[2] - 1)










If (All Conditions are True) then do (Then Actions) else do (Else Actions)











If - Conditions












DoT_Index[2] Equal to 0











Then - Actions












Set DoT_Index[1] = 0












Trigger - Turn off (This trigger)











Else - Actions









Else - Actions







Else - Actions





Else - Actions