Moderator
M
Moderator
|
Moderator: Pharaoh_ Date: 02:00, 8th Jun 2012
|
EB Setup

Events


Map initialization

Conditions

Actions


Set WaveAnimationEB = 200.00


Set aoeEB = 200.00


Set DummyDistanceEB = 1200.00


Set DummySpeedEB = 500.00


Set DummyDistanceEB = 1200.00


Set Interval = 0.03


Set BlastAoeEB = 400.00


Set AbilityEB = Energy Ball


Set DummyTypeEB = Shockwave


Set DummyTimelifeEB = (DummyDistanceEB / DummySpeedEB)


Set DummySpeedIntervalEB = (DummySpeedEB x Interval)


Set SupportMultiLevelEB = True


Set MultiplierPerLevelINT = 2


Set MultiplierAoePerLevelINT = 3


Set ShowDamageEB = True


Set DummySFX_EB[1] = Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl


Set DummySFX_EB[2] = Abilities\Weapons\Bolt\BoltImpact.mdl


Set DummySFX_EB[3] = Abilities\Spells\Other\Monsoon\MonsoonBoltTarget.mdl
EB Cast

Events


Unit - A unit Starts the effect of an ability

Conditions


(Ability being cast) Equal to AbilityEB

Actions


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



If - Conditions




Key2EB Equal to 0



Then - Actions




Trigger - Turn on EB Loop <gen>



Else - Actions


Set Key2EB = (Key2EB + 1)


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



If - Conditions




Key2EB Greater than KeyMaxEB



Then - Actions




Set KeyEB[Key2EB] = Key2EB




Set KeyMaxEB = Key2EB



Else - Actions


Set ArrayEB = KeyEB[Key2EB]


Set CasterEB[ArrayEB] = (Triggering unit)


Set CasterLocEB = (Position of CasterEB[ArrayEB])


Set TargetLocEB = (Target point of ability being cast)


Set DummyAngleEB = (Angle from CasterLocEB to TargetLocEB)


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



If - Conditions




SupportMultiLevelEB Equal to True



Then - Actions




Set AbilityLevelEB = (Level of AbilityEB for CasterEB[ArrayEB])




Set CasterINT_EB = (Intelligence of CasterEB[ArrayEB] (Include bonuses))




Set DamageEB[ArrayEB] = (((Real(AbilityLevelEB)) x (Real(MultiplierPerLevelINT))) x (Real(CasterINT_EB)))




Set DamageAoeEB[ArrayEB] = (((Real(AbilityLevelEB)) x (Real(MultiplierAoePerLevelINT))) x (Real(CasterINT_EB)))



Else - Actions




Set DamageEB[ArrayEB] = ((Real(CasterINT_EB)) x (Real(MultiplierPerLevelINT)))




Set DamageAoeEB[ArrayEB] = ((Real(CasterINT_EB)) x (Real(MultiplierAoePerLevelINT)))


Unit - Create 1 DummyTypeEB for (Triggering player) at CasterLocEB facing DummyAngleEB degrees


Set DummyEB[ArrayEB] = (Last created unit)


Unit - Add a DummyTimelifeEB second Generic expiration timer to DummyEB[ArrayEB]


Animation - Change DummyEB[ArrayEB]'s animation speed to WaveAnimationEB% of its original speed


Custom script: set udg_UnitGroupDamagedEB[udg_ArrayEB] = CreateGroup()


Custom script: call RemoveLocation(udg_CasterLocEB)


Custom script: call RemoveLocation(udg_TargetLocEB)
EB Loop

Events


Time - Every 0.03 seconds of game time

Conditions

Actions


For each (Integer LoopingIntegerEB) from 1 to Key2EB, do (Actions)



Loop - Actions




Set ArrayEB = KeyEB[LoopingIntegerEB]




Set DummyAngleEB = (Facing of DummyEB[ArrayEB])




Set DummyLocEB = (Position of DummyEB[ArrayEB])




Set DummyMoveEB = (DummyLocEB offset by DummySpeedIntervalEB towards DummyAngleEB degrees)




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





If - Conditions






((Playable map area) contains DummyMoveEB) Equal to True





Then - Actions






Custom script: call SetUnitX(udg_DummyEB[udg_ArrayEB], GetLocationX(udg_DummyMoveEB))






Custom script: call SetUnitY(udg_DummyEB[udg_ArrayEB], GetLocationY(udg_DummyMoveEB))






Custom script: set bj_wantDestroyGroup = true






Unit Group - Pick every unit in (Units within aoeEB of DummyLocEB) 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) is in UnitGroupDamagedEB[ArrayEB]) Equal to False










((Picked unit) belongs to an enemy of (Owner of DummyEB[ArrayEB])) Equal to True









Then - Actions










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











If - Conditions












ShowDamageEB Equal to True











Then - Actions












Floating Text - Create floating text that reads (String((Integer(DamageEB[ArrayEB])))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency












Floating Text - Set the velocity of (Last created floating text) to 150.00 towards 90.00 degrees












Floating Text - Change (Last created floating text): Disable permanence












Floating Text - Change the lifespan of (Last created floating text) to 1.50 seconds












Floating Text - Change the fading age of (Last created floating text) to 0.75 seconds











Else - Actions










Special Effect - Create a special effect attached to the origin of (Picked unit) using DummySFX_EB[2]










Special Effect - Destroy (Last created special effect)










Unit - Cause CasterEB[ArrayEB] to damage (Picked unit), dealing DamageEB[ArrayEB] damage of attack type Spells and damage type Normal










Unit Group - Add (Picked unit) to UnitGroupDamagedEB[ArrayEB]









Else - Actions





Else - Actions






Unit - Kill DummyEB[ArrayEB]




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





If - Conditions






(DummyEB[ArrayEB] is dead) Equal to True





Then - Actions






Special Effect - Create a special effect at DummyLocEB using DummySFX_EB[1]






Special Effect - Destroy (Last created special effect)






Custom script: set bj_wantDestroyGroup = true






Unit Group - Pick every unit in (Units within BlastAoeEB of DummyLocEB matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of C and do (Actions)







Loop - Actions








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









If - Conditions










ShowDamageEB Equal to True









Then - Actions










Floating Text - Create floating text that reads (String((Integer(DamageAoeEB[ArrayEB])))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency










Floating Text - Set the velocity of (Last created floating text) to 150.00 towards 90.00 degrees










Floating Text - Change (Last created floating text): Disable permanence










Floating Text - Change the lifespan of (Last created floating text) to 1.50 seconds










Floating Text - Change the fading age of (Last created floating text) to 0.75 seconds









Else - Actions








Special Effect - Create a special effect attached to the origin of (Picked unit) using DummySFX_EB[3]








Special Effect - Destroy (Last created special effect)








Unit - Cause CasterEB[ArrayEB] to damage (Picked unit), dealing DamageAoeEB[ArrayEB] damage of attack type Spells and damage type Normal






Custom script: call DestroyGroup(udg_UnitGroupDamagedEB[udg_ArrayEB])






Set KeyEB[LoopingIntegerEB] = KeyEB[Key2EB]






Set KeyEB[Key2EB] = ArrayEB






Set Key2EB = (Key2EB - 1)






Set LoopingIntegerEB = (LoopingIntegerEB - 1)





Else - Actions




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





If - Conditions






Key2EB Equal to 0





Then - Actions






Trigger - Turn off (This trigger)





Else - Actions




Custom script: call RemoveLocation(udg_DummyLocEB)




Custom script: call RemoveLocation(udg_DummyMoveEB)