Moderator
M
Moderator
16:38, 9th Jun 2010
TriggerHappy:
Coding seemed fine and spell worked.
TriggerHappy:
Coding seemed fine and spell worked.
[Simple] PyroballTransforms the caster into a fireball and rolls forward on the ground, burning nearby units on its way and dealing damage on detonation.
[Detailed] Pyroball (Sample 1)Transforms the caster into a fireball and rolls forward on the ground, burning nearby units on its way and dealing damage on detonation.
Attack Type: Spell
Damage Type: Fire
Friendly Damage: False
Casting Time: 1s
Cooldown Time: 7s
Detonation Time: 2s
Detonation Damage: (180 x Ability Level)
Detonation Damage Range: 320
Burn Damage: (4 x Ability Level)
Burn Damage Range: 190
The fireball will detonate if the timer expires/caster dies/in contact with water or unplayable regions. Burn damage does not affect flying-classified and magic-immune units. Detonation damage does not affect magic-immune units. The caster will become a ground unit until the pyroball form expires.
Spell Sample 1

Events


Unit - A unit Starts the effect of an ability

Conditions


(Ability being cast) Equal to Pyroball 1

Actions


-------- Begin Configuration Settings --------


Set PB_attacktype = Spells


Set PB_damagetype = Fire


Set PB_bdamage = 4.00


Set PB_bdamagerange = 190.00


Set PB_bkilldestructibles = True


Set PB_ddamage = 180.00


Set PB_ddamagerange = 320.00


Set PB_dkilldestructibles = True


Set PB_speed = 18.00


Set PB_detonatetime = 2.00


Set PB_friendlydamage = False


Set PB_losebuffs = False


-------- End Configuration Settings --------


Trigger - Run PB System 1 <gen> (checking conditions)
Spell Sample 2

Events


Unit - A unit Starts the effect of an ability

Conditions


(Ability being cast) Equal to Pyroball 2

Actions


-------- Begin Configuration Settings --------


Set PB_attacktype = Spells


Set PB_damagetype = Fire


Set PB_bdamage = 4.00


Set PB_bdamagerange = 190.00


Set PB_bkilldestructibles = False


Set PB_ddamage = 180.00


Set PB_ddamagerange = 320.00


Set PB_dkilldestructibles = False


Set PB_speed = 18.00


Set PB_detonatetime = 2.00


Set PB_friendlydamage = True


Set PB_losebuffs = True


-------- End Configuration Settings --------


Trigger - Run PB System 1 <gen> (checking conditions)
PB System 1

Events

Conditions

Actions


Set PB_integer[0] = (PB_integer[0] + 1)


Set PB_spell[PB_integer[0]] = (Ability being cast)


Set PB_point[0] = (Position of (Triggering unit))


Set PB_previousturnspeed[PB_integer[0]] = (Current turn speed of (Triggering unit))


Set PB_previousheight[PB_integer[0]] = (Current flying height of (Triggering unit))


-------- Begin Storing Configuration Settings --------


Set PB_attacktype_s[PB_integer[0]] = PB_attacktype


Set PB_bdamage_s[PB_integer[0]] = PB_bdamage


Set PB_bdamagerange_s[PB_integer[0]] = PB_bdamagerange


Set PB_bkilldestructibles_s[PB_integer[0]] = PB_bkilldestructibles


Set PB_damagetype_s[PB_integer[0]] = PB_damagetype


Set PB_ddamage_s[PB_integer[0]] = PB_ddamage


Set PB_ddamagerange_s[PB_integer[0]] = PB_ddamagerange


Set PB_detonatetime_s[PB_integer[0]] = PB_detonatetime


Set PB_dkilldestructibles_s[PB_integer[0]] = PB_dkilldestructibles


Set PB_friendlydamage_s[PB_integer[0]] = PB_friendlydamage


Set PB_losebuffs_s[PB_integer[0]] = PB_losebuffs


Set PB_speed_s[PB_integer[0]] = PB_speed


-------- End Storing Configuration Settings --------


Unit - Set the custom value of (Triggering unit) to PB_integer[0]


Unit - Pause (Triggering unit)


Unit - Make (Triggering unit) Vulnerable


Unit - Turn collision for (Triggering unit) Off


Unit Group - Add (Triggering unit) to PB_group[0]


Special Effect - Create a special effect attached to the chest of (Triggering unit) using Abilities\Weapons\FireBallMissile\FireBallMissile.mdl


Set PB_specialeffect[PB_integer[0]] = (Last created special effect)


Animation - Change (Triggering unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with 100.00% transparency


Animation - Change (Triggering unit) turn speed to 0.00


Animation - Change (Triggering unit) flying height to 0.00 at 0.00


Animation - Change (Triggering unit)'s size to (0.00%, 0.00%, 0.00%) of its original size


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



If - Conditions




PB_losebuffs_s[PB_integer[0]] Equal to True



Then - Actions




Unit - Remove All buffs from (Triggering unit)



Else - Actions


Unit - Create 1 Pyroball (Dummy) for Neutral Passive at PB_point[0] facing (Facing of (Triggering unit)) degrees


Set PB_dummy[PB_integer[0]] = (Last created unit)


Unit - Add a PB_detonatetime_s[PB_integer[0]] second Generic expiration timer to PB_dummy[PB_integer[0]]


Unit - Turn collision for PB_dummy[PB_integer[0]] Off


Set PB_online[PB_integer[0]] = True


Trigger - Turn on PB System 2 <gen>


Custom script: call RemoveLocation (udg_PB_point[0])
PB System 2

Events


Time - Every 0.03 seconds of game time

Conditions

Actions


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



If - Conditions




(PB_group[0] is empty) Equal to True



Then - Actions




Set PB_integer[0] = 0




Set PB_integer[1] = 0




Trigger - Turn off (This trigger)



Else - Actions




Unit Group - Pick every unit in PB_group[0] and do (Actions)





Loop - Actions






Set PB_caster = (Picked unit)






Set PB_integer[1] = (Custom value of PB_caster)






Set PB_point[1] = (Position of PB_caster)






Set PB_point[2] = (PB_point[1] offset by PB_speed_s[PB_integer[1]] towards (Facing of PB_caster) degrees)






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







If - Conditions








PB_online[PB_integer[1]] Equal to True








(PB_caster is alive) Equal to True








(PB_dummy[PB_integer[1]] is alive) Equal to True








(Terrain pathing at PB_point[2] of type Floatability is off) Equal to True








(Terrain pathing at PB_point[2] of type Flyability is off) Equal to False







Then - Actions








Unit - Order PB_dummy[PB_integer[1]] to Orc Raider - Ensnare PB_caster








Unit - Turn collision for PB_caster Off








Unit - Move PB_caster instantly to PB_point[2]








Special Effect - Create a special effect at PB_point[1] using Abilities\Weapons\FireBallMissile\FireBallMissile.mdl








Special Effect - Destroy (Last created special effect)








Set PB_group[1] = (Units within PB_bdamagerange_s[PB_integer[1]] of PB_point[1])








Unit Group - Remove PB_caster from PB_group[1]








Unit Group - Pick every unit in PB_group[1] and do (Actions)









Loop - Actions










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











If - Conditions












((Picked unit) is A flying unit) Equal to False












((Picked unit) is Magic Immune) Equal to False












((Picked unit) is alive) Equal to True











Then - Actions












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













If - Conditions














PB_friendlydamage_s[PB_integer[1]] Equal to True













Then - Actions














Unit - Cause PB_caster to damage (Picked unit), dealing (PB_bdamage_s[PB_integer[1]] x (Real((Level of PB_spell[PB_integer[1]] for PB_caster)))) damage of attack type PB_attacktype_s[PB_integer[1]] and damage type PB_damagetype_s[PB_integer[1]]














Special Effect - Create a special effect attached to the origin of (Picked unit) using Environment\LargeBuildingFire\LargeBuildingFire2.mdl














Special Effect - Destroy (Last created special effect)













Else - 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 PB_caster)) Equal to True















Then - Actions
















Unit - Cause PB_caster to damage (Picked unit), dealing (PB_bdamage_s[PB_integer[1]] x (Real((Level of PB_spell[PB_integer[1]] for PB_caster)))) damage of attack type PB_attacktype_s[PB_integer[1]] and damage type PB_damagetype_s[PB_integer[1]]
















Special Effect - Create a special effect attached to the origin of (Picked unit) using Environment\LargeBuildingFire\LargeBuildingFire2.mdl
















Special Effect - Destroy (Last created special effect)















Else - Actions











Else - Actions








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









If - Conditions










PB_bkilldestructibles_s[PB_integer[1]] Equal to True









Then - Actions










Destructible - Pick every destructible within PB_bdamagerange_s[PB_integer[1]] of PB_point[1] and do (Actions)











Loop - Actions












Destructible - Kill (Picked destructible)









Else - Actions







Else - Actions








Set PB_online[PB_integer[1]] = False








Unit - Remove PB_dummy[PB_integer[1]] from the game








Unit - Unpause PB_caster








Unit Group - Remove PB_caster from PB_group[0]








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








Animation - Change PB_caster turn speed to PB_previousturnspeed[PB_integer[1]]








Animation - Change PB_caster flying height to PB_previousheight[PB_integer[1]] at 0.00








Animation - Change PB_caster's size to (100.00%, 100.00%, 100.00%) of its original size








Unit - Turn collision for PB_caster On








Unit - Remove Pyroball Form (Air) buff from PB_caster








Unit - Remove Pyroball Form (Ground) buff from PB_caster








Special Effect - Create a special effect at PB_point[2] using Objects\Spawnmodels\Other\NeutralBuildingExplosion\NeutralBuildingExplosion.mdl








Special Effect - Destroy (Last created special effect)








Special Effect - Create a special effect at PB_point[2] using Abilities\Spells\Other\Doom\DoomDeath.mdl








Special Effect - Destroy (Last created special effect)








Special Effect - Destroy PB_specialeffect[PB_integer[1]]








Set PB_group[2] = (Units within PB_ddamagerange_s[PB_integer[1]] of PB_point[1])








Unit Group - Remove PB_caster from PB_group[2]








Unit Group - Pick every unit in PB_group[2] and do (Actions)









Loop - Actions










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











If - Conditions












((Picked unit) is Magic Immune) Equal to False












((Picked unit) is alive) Equal to True











Then - Actions












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













If - Conditions














PB_friendlydamage_s[PB_integer[1]] Equal to True













Then - Actions














Unit - Cause PB_caster to damage (Picked unit), dealing (PB_ddamage_s[PB_integer[1]] x (Real((Level of PB_spell[PB_integer[1]] for PB_caster)))) damage of attack type PB_attacktype_s[PB_integer[1]] and damage type PB_damagetype_s[PB_integer[1]]














Special Effect - Create a special effect attached to the origin of (Picked unit) using Environment\LargeBuildingFire\LargeBuildingFire2.mdl














Special Effect - Destroy (Last created special effect)













Else - 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 PB_caster)) Equal to True















Then - Actions
















Unit - Cause PB_caster to damage (Picked unit), dealing (PB_ddamage_s[PB_integer[1]] x (Real((Level of PB_spell[PB_integer[1]] for PB_caster)))) damage of attack type PB_attacktype_s[PB_integer[1]] and damage type PB_damagetype_s[PB_integer[1]]
















Special Effect - Create a special effect attached to the origin of (Picked unit) using Environment\LargeBuildingFire\LargeBuildingFire2.mdl
















Special Effect - Destroy (Last created special effect)















Else - Actions











Else - Actions








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









If - Conditions










PB_dkilldestructibles_s[PB_integer[1]] Equal to True









Then - Actions










Destructible - Pick every destructible within PB_ddamagerange_s[PB_integer[1]] of PB_point[1] and do (Actions)











Loop - Actions












Destructible - Kill (Picked destructible)









Else - Actions


Custom script: call RemoveLocation (udg_PB_point[1])


Custom script: call RemoveLocation (udg_PB_point[2])


Custom script: call DestroyGroup (udg_PB_group[1])


Custom script: call DestroyGroup (udg_PB_group[2])

