Moderator
M
Moderator
17:09, 10th Feb 2011
Bribe:
Bribe:
Draw Soul

Events


Unit - A unit Starts the effect of an ability

Conditions


(Ability being cast) Equal to AAA Draw Soul

Actions


Set DSTotalDmg = 0.00


Set DSDmg = (75.00 x (Real((Level of AAA Draw Soul for (Triggering unit)))))


Set Real = (0.10 x (Real((Level of AAA Draw Soul for (Triggering unit)))))


Set DSConversion = (0.60 - Real)


Set Point_Copy = (Target point of ability being cast)


Set DSAngle = (Angle from (Position of (Triggering unit)) to Point_Copy)


Set Point = (Point_Copy offset by 70.00 towards DSAngle degrees)


Custom script: call RemoveLocation(udg_Point_Copy)


Unit - Create 1 DrainSoulEffect for (Owner of (Triggering unit)) at Point facing DSAngle degrees


Unit - Kill (Last created unit)


Set DSGroup = (Units within 140.00 of Point matching (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True))


Set Point_Copy = (Point offset by 150.00 towards DSAngle degrees)


Custom script: call RemoveLocation(udg_Point)


Unit - Create 1 DrainSoulEffect for (Owner of (Triggering unit)) at Point_Copy facing DSAngle degrees


Unit - Kill (Last created unit)


Set Group = (Units within 140.00 of Point_Copy matching (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True))


Unit Group - Add all units of Group to DSGroup


Custom script: call DestroyGroup(udg_Group)


Set Point = (Point_Copy offset by 150.00 towards DSAngle degrees)


Custom script: call RemoveLocation(udg_Point_Copy)


Unit - Create 1 DrainSoulEffect for (Owner of (Triggering unit)) at Point facing DSAngle degrees


Unit - Kill (Last created unit)


Set Group = (Units within 140.00 of Point matching (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True))


Unit Group - Add all units of Group to DSGroup


Custom script: call DestroyGroup(udg_Group)


-------- Removing Flying etc Units --------


Set Group = (Units within 700.00 of Point matching (((Matching unit) is A flying unit) Equal to True))


Unit Group - Remove all units of Group from DSGroup


Custom script: call DestroyGroup(udg_Group)


Set Group = (Units within 700.00 of Point matching (((Matching unit) is A structure) Equal to True))


Unit Group - Remove all units of Group from DSGroup


Custom script: call DestroyGroup(udg_Group)


Set Group = (Units within 700.00 of Point matching (((Matching unit) is Magic Immune) Equal to True))


Unit Group - Remove all units of Group from DSGroup


Custom script: call DestroyGroup(udg_Group)


Custom script: call RemoveLocation(udg_Point)


Unit Group - Pick every unit in DSGroup and do (Actions)



Loop - Actions




Set Real = (Life of (Picked unit))




Unit - Cause (Triggering unit) to damage (Picked unit), dealing DSDmg damage of attack type Spells and damage type Normal




Set Real2 = (Life of (Picked unit))




Set DSTotalDmg = ((Real - Real2) + DSTotalDmg)


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



If - Conditions




DSTotalDmg Greater than 0.00



Then - Actions




Special Effect - Create a special effect attached to the chest of (Triggering unit) using Abilities\Spells\Undead\DeathCoil\DeathCoilSpecialArt.mdl




Special Effect - Destroy (Last created special effect)




Unit - Set life of (Triggering unit) to ((DSConversion x DSTotalDmg) + (Life of (Triggering unit)))



Else - Actions


Custom script: call DestroyGroup(udg_DSGroup)
Flame Crash

Events


Unit - A unit Starts the effect of an ability

Conditions


(Ability being cast) Equal to AAA Flame Crash

Actions


Set FCInstancesRunning = (FCInstancesRunning + 1)


Set FCIndex = (FCIndex + 1)


Set FCUnit[FCIndex] = (Triggering unit)


Set FCUnitStartingHeight[FCIndex] = (Default flying height of (Triggering unit))


Set FCHeight[FCIndex] = (Current flying height of (Triggering unit))


Set FCCharges[FCIndex] = 40


Set FCHeightPlus[FCIndex] = 60.00


Set FCDamage[FCIndex] = ((Real((Level of AAA Flame Crash for (Triggering unit)))) x 110.00)


Set FCNumberofShadowflames[FCIndex] = ((Level of AAA Flame Crash for (Triggering unit)) + 1)


Set FCBacktrack[FCIndex] = 0.00


Unit - Turn collision for (Triggering unit) Off


Animation - Change (Triggering unit)'s animation speed to 70.00% of its original speed


Trigger - Turn on FC Loop 0i03 sec <gen>


-------- Here is the trick --------


Unit - Add Storm Crow Form to (Triggering unit)


Unit - Remove Storm Crow Form from (Triggering unit)
FC Loop 0i03 sec

Events


Time - Every 0.03 seconds of game time

Conditions

Actions


For each (Integer Integr) from 1 to FCIndex, do (Actions)



Loop - Actions




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





If - Conditions






FCCharges[Integr] Greater than 0





Then - Actions






Set FCCharges[Integr] = (FCCharges[Integr] - 1)






Set FCHeight[Integr] = (FCHeight[Integr] + FCHeightPlus[Integr])






Animation - Change FCUnit[Integr] flying height to FCHeight[Integr] at 1000000000.00






Set FCHeightPlus[Integr] = (FCHeightPlus[Integr] - 3.00)






Set Point = (Position of FCUnit[Integr])






Set Point_Copy = (Point offset by FCBacktrack[Integr] towards (Facing of FCUnit[Integr]) degrees)






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







If - Conditions








FCHeightPlus[Integr] Greater than or equal to 0.00







Then - Actions








Set FCBacktrack[Integr] = (FCBacktrack[Integr] - 1.00)







Else - Actions








Set FCBacktrack[Integr] = 10.50






Unit - Move FCUnit[Integr] instantly to Point_Copy






Custom script: call RemoveLocation(udg_Point)






Custom script: call RemoveLocation(udg_Point_Copy)






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







If - Conditions








FCCharges[Integr] Equal to 0







Then - Actions








Set FCInstancesRunning = (FCInstancesRunning - 1)








Unit - Turn collision for FCUnit[Integr] On








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









If - Conditions










(FCUnit[Integr] is alive) Equal to True









Then - Actions










Animation - Change FCUnit[Integr] flying height to FCUnitStartingHeight[Integr] at 1000000000.00










Set Point = (Position of FCUnit[Integr])










Set Region = (Region centered at Point with size (175.00, 175.00))










For each (Integer A) from 1 to FCNumberofShadowflames[Integr], do (Actions)











Loop - Actions












Set Point_Copy = (Random point in Region)












Unit - Create 1 Shadowflame (Level 1) for (Owner of FCUnit[Integr]) at Point_Copy facing (Random angle) degrees












Unit - Add a 30.00 second Generic expiration timer to (Last created unit)












Custom script: call RemoveLocation(udg_Point_Copy)










Environment - Create a 0.20 second Temporary crater deformation at Point with radius 225.00 and depth 64.00










Animation - Change FCUnit[Integr]'s animation speed to 100.00% of its original speed










Set Group = (Units within 225.00 of Point matching (((Matching unit) belongs to an enemy of (Owner of FCUnit[Integr])) Equal to True))










Set Group2 = (Units within 225.00 of Point matching (((Matching unit) is A flying unit) Equal to True))










Unit Group - Remove all units of Group2 from Group










Unit Group - Pick every unit in Group and do (Actions)











Loop - Actions












Unit - Cause FCUnit[Integr] to damage (Picked unit), dealing FCDamage[Integr] damage of attack type Spells and damage type Normal










Custom script: call RemoveLocation(udg_Point)










Custom script: call RemoveRect(udg_Region)










Custom script: call DestroyGroup(udg_Group)










Custom script: call DestroyGroup(udg_Group2)









Else - Actions







Else - Actions





Else - Actions


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



If - Conditions




FCInstancesRunning Less than or equal to 0



Then - Actions




Trigger - Turn off (This trigger)




Set FCIndex = 0



Else - Actions
PSF Cast

Events


Unit - A unit Starts the effect of an ability

Conditions


(Ability being cast) Equal to AAA Parasitic Shadowfiend

Actions


Set PSFInstancesRunning = (PSFInstancesRunning + 1)


Set PSFIndex = (PSFIndex + 1)


Set PSFOwner[PSFIndex] = (Triggering unit)


Set PSFTarget[PSFIndex] = (Target unit of ability being cast)


Set PSFDmg[PSFIndex] = ((Real((Level of AAA Parasitic Shadowfiend for (Triggering unit)))) x 5.00)


Set Integer = ((Level of AAA Parasitic Shadowfiend for (Triggering unit)) x 3)


Set PSFCharges[PSFIndex] = (18 - Integer)


Set PSFNumberofSpawns[PSFIndex] = (Level of AAA Parasitic Shadowfiend for (Triggering unit))


Trigger - Turn on PSF Loop 1 sec <gen>
PSF Loop 1 sec

Events


Time - Every 1.00 seconds of game time

Conditions

Actions


For each (Integer Integer) from 0 to PSFIndex, do (Actions)



Loop - Actions




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





If - Conditions






PSFCharges[Integer] Greater than 0





Then - Actions






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







If - Conditions








(PSFTarget[Integer] is alive) Equal to True







Then - Actions








Set PSFCharges[Integer] = (PSFCharges[Integer] - 1)








Unit - Cause PSFOwner[Integer] to damage PSFTarget[Integer], dealing PSFDmg[Integer] damage of attack type Spells and damage type Normal








Special Effect - Create a special effect attached to the chest of PSFTarget[Integer] using Abilities\Spells\Undead\DeathandDecay\DeathandDecayDamage.mdl








Special Effect - Destroy (Last created special effect)








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









If - Conditions










PSFCharges[Integer] Equal to 0









Then - Actions










Set PSFInstancesRunning = (PSFInstancesRunning - 1)










Set Point = (Position of PSFTarget[Integer])










Unit - Create PSFNumberofSpawns[Integer] Parasitic Shadowfiend for (Owner of PSFOwner[Integer]) at Point facing Point










Custom script: call RemoveLocation(udg_Point)









Else - Actions







Else - Actions








Set PSFCharges[Integer] = 0








Set PSFInstancesRunning = (PSFInstancesRunning - 1)





Else - Actions


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



If - Conditions




PSFInstancesRunning Less than or equal to 0



Then - Actions




Trigger - Turn off (This trigger)




Set PSFIndex = 0



Else - Actions
PSF 2 Attack Event

Events


Unit - A unit Is attacked

Conditions


(Unit-type of (Attacking unit)) Equal to Parasitic Shadowfiend

Actions


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



If - Conditions




((Attacked unit) is in PSF2Group) Equal to False



Then - Actions




Set PSFIndex_Copy = (PSFIndex_Copy + 1)




Unit Group - Add (Attacked unit) to PSF2Group




Set PSF2Target[PSFIndex_Copy] = (Attacked unit)




Set PSF2Charges[PSFIndex_Copy] = 10




Set PSF2OwnerPlayer[PSFIndex_Copy] = (Owner of (Attacking unit))




Trigger - Turn on PSF2 Loop 1 sec <gen>



Else - Actions
PSF2 Loop 1 sec

Events


Time - Every 1.00 seconds of game time

Conditions

Actions


For each (Integer Integer_Copy) from 0 to PSFIndex_Copy, do (Actions)



Loop - Actions




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





If - Conditions






PSF2Charges[Integer_Copy] Greater than 0





Then - Actions






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







If - Conditions








(PSF2Target[Integer_Copy] is alive) Equal to True







Then - Actions








Set PSF2Charges[Integer_Copy] = (PSF2Charges[Integer_Copy] - 1)








Special Effect - Create a special effect attached to the chest of PSF2Target[Integer_Copy] using Abilities\Spells\Undead\DeathandDecay\DeathandDecayDamage.mdl








Special Effect - Destroy (Last created special effect)








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









If - Conditions










PSF2Charges[Integer_Copy] Equal to 0









Then - Actions










Unit Group - Remove PSF2Target[Integer_Copy] from PSF2Group










Set Point = (Position of PSF2Target[Integer_Copy])










Unit - Create 2 Parasitic Shadowfiend for PSF2OwnerPlayer[Integer_Copy] at Point facing Point










Custom script: call RemoveLocation(udg_Point)









Else - Actions







Else - Actions








Set PSF2Charges[Integer_Copy] = 0








Unit Group - Remove PSF2Target[Integer_Copy] from PSF2Group





Else - Actions


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



If - Conditions




(Number of units in PSF2Group) Equal to 0



Then - Actions




Trigger - Turn off (This trigger)




Set PSFIndex_Copy = 0



Else - Actions