Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
So I was playing League of Legends earlier and had this idea. I decided to make a spell pack based on Brand, the Burning Vengeance, because he's one of my favorite champions in League of Legends. I was supposed to make a Katarina spell pack but her skills are too complicated (Like Voracity).
Anyway, I used the Firelord model to represent Brand because I couldn't find any Brand models in any websites.
1st skill-Sear
SEARSTART
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to B_SEAR_ABILITY
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
B_SEAR_INDEX_LISTENER Equal to 0
Then - Actions
Trigger - Turn on SEARLOOP <gen>
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
B_SEAR_RECYCLE_SIZE Greater than 0
Then - Actions
Set B_SEAR_RECYCLE_SIZE = (B_SEAR_RECYCLE_SIZE - 1)
Set B_SEAR_CURRENT_INDEX = B_SEAR_RECYCLE_CONTAINER[B_SEAR_RECYCLE_SIZE]
Else - Actions
Set B_SEAR_CURRENT_INDEX = B_SEAR_INDEX_SIZE
Set B_SEAR_INDEX_SIZE = (B_SEAR_INDEX_SIZE + 1)
-------- IMPORTANT VARIABLES --------
Set B_SEAR_TRIGGER_UNIT[B_SEAR_CURRENT_INDEX] = (Triggering unit)
Set B_SEAR_TEMPLOC1 = (Position of B_SEAR_TRIGGER_UNIT[B_SEAR_CURRENT_INDEX])
Set B_SEAR_TEMPLOC2 = (Target point of ability being cast)
Set B_SEAR_ANGLE[B_SEAR_CURRENT_INDEX] = (Angle from B_SEAR_TEMPLOC1 to B_SEAR_TEMPLOC2)
Unit - Create 1 B_SEAR_MISSILE_TYPE for (Owner of B_SEAR_TRIGGER_UNIT[B_SEAR_CURRENT_INDEX]) at B_SEAR_TEMPLOC1 facing B_SEAR_ANGLE[B_SEAR_CURRENT_INDEX] degrees
Set B_SEAR_PROJECTILE[B_SEAR_CURRENT_INDEX] = (Last created unit)
Set B_SEAR_HIT_A_UNIT[B_SEAR_CURRENT_INDEX] = False
Set B_SEAR_LEVEL_OF_ABILITY[B_SEAR_CURRENT_INDEX] = (Level of B_SEAR_ABILITY for B_SEAR_TRIGGER_UNIT[B_SEAR_CURRENT_INDEX])
Set B_SEAR_AOE[B_SEAR_CURRENT_INDEX] = B_SEAR_CONFIG_BASE_AOE[B_SEAR_LEVEL_OF_ABILITY[B_SEAR_CURRENT_INDEX]]
Set B_SEAR_RANGE[B_SEAR_CURRENT_INDEX] = 0.00
Set B_SEAR_SPEED[B_SEAR_CURRENT_INDEX] = B_SEAR_CONFIG_BASE_SPEED[B_SEAR_LEVEL_OF_ABILITY[B_SEAR_CURRENT_INDEX]]
Set B_SEAR_DAMAGE[B_SEAR_CURRENT_INDEX] = B_SEAR_CONFIG_BASE_DAMAGE[B_SEAR_LEVEL_OF_ABILITY[B_SEAR_CURRENT_INDEX]]
Set B_SEAR_DAMAGE[B_SEAR_CURRENT_INDEX] = (B_SEAR_DAMAGE[B_SEAR_CURRENT_INDEX] + ((Real((Intelligence of B_SEAR_TRIGGER_UNIT[B_SEAR_CURRENT_INDEX] (Include bonuses)))) x 0.65))
Set B_SEAR_INDEX_CONTAINER[B_SEAR_INDEX_LISTENER] = B_SEAR_CURRENT_INDEX
Set B_SEAR_INDEX_LISTENER = (B_SEAR_INDEX_LISTENER + 1)
SEARLOOP
Events
Time - Every 0.03 seconds of game time
Conditions
Actions
-------- Dynamic Loop --------
For each (Integer B_SEAR_EXAMPLE_LOOP) from 0 to (B_SEAR_INDEX_LISTENER - 1), do (Actions)
Loop - Actions
-------- Set the current index --------
Set B_SEAR_CURRENT_INDEX = B_SEAR_INDEX_CONTAINER[B_SEAR_EXAMPLE_LOOP]
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
B_SEAR_HIT_A_UNIT[B_SEAR_CURRENT_INDEX] Equal to False
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
B_SEAR_RANGE[B_SEAR_CURRENT_INDEX] Less than B_SEAR_CONFIG_BASE_RANGE[B_SEAR_LEVEL_OF_ABILITY[B_SEAR_CURRENT_INDEX]]
Then - Actions
Set B_SEAR_RANGE[B_SEAR_CURRENT_INDEX] = (B_SEAR_RANGE[B_SEAR_CURRENT_INDEX] + (0.03 x B_SEAR_SPEED[B_SEAR_CURRENT_INDEX]))
Set B_SEAR_TEMPLOC1 = (Position of B_SEAR_PROJECTILE[B_SEAR_CURRENT_INDEX])
Set B_SEAR_TEMPLOC2 = (B_SEAR_TEMPLOC1 offset by (0.03 x B_SEAR_SPEED[B_SEAR_CURRENT_INDEX]) towards B_SEAR_ANGLE[B_SEAR_CURRENT_INDEX] degrees)
Unit - Move B_SEAR_PROJECTILE[B_SEAR_CURRENT_INDEX] instantly to B_SEAR_TEMPLOC2
Set B_SEAR_PICKED_UNITS = (Units within B_SEAR_AOE[B_SEAR_CURRENT_INDEX] of B_SEAR_TEMPLOC1 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is A flying unit) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is Ma
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(B_SEAR_PICKED_UNITS is empty) Equal to False
Then - Actions
Unit - Kill B_SEAR_PROJECTILE[B_SEAR_CURRENT_INDEX]
Set B_SEAR_PICKED_UNIT = (Random unit from B_SEAR_PICKED_UNITS)
Special Effect - Create a special effect attached to the chest of B_SEAR_PICKED_UNIT using B_SEAR_SPFX
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect attached to the chest of B_SEAR_PICKED_UNIT using B_SEAR_SPFX
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect attached to the chest of B_SEAR_PICKED_UNIT using B_SEAR_SPFX
Special Effect - Destroy (Last created special effect)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(B_SEAR_PICKED_UNIT has buff B_BLAZE_CONFIG_BUFF) Equal to True
Then - Actions
Unit - Create 1 DUMMY CASTER for (Owner of B_SEAR_TRIGGER_UNIT[B_SEAR_CURRENT_INDEX]) at (Position of B_SEAR_PICKED_UNIT) facing Default building facing degrees
Unit - Add Sear Stun to (Last created unit)
Unit - Order (Last created unit) to Human Mountain King - Storm Bolt B_SEAR_PICKED_UNIT
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Else - Actions
Unit - Create 1 DUMMY CASTER for (Owner of B_SEAR_TRIGGER_UNIT[B_SEAR_CURRENT_INDEX]) at (Position of B_SEAR_PICKED_UNIT) facing Default building facing degrees
Unit - Add Blaze (Dummy) to (Last created unit)
Unit - Order (Last created unit) to Undead Banshee - Curse B_SEAR_PICKED_UNIT
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Cause B_SEAR_TRIGGER_UNIT[B_SEAR_CURRENT_INDEX] to damage B_SEAR_PICKED_UNIT, dealing B_SEAR_DAMAGE[B_SEAR_CURRENT_INDEX] damage of attack type Hero and damage type Magic
Set B_SEAR_PICKED_UNIT = No unit
Set B_SEAR_HIT_A_UNIT[B_SEAR_CURRENT_INDEX] = True
Set B_SEAR_HIT_A_UNIT[B_SEAR_CURRENT_INDEX] = True
Else - Actions
Unit - Kill B_SEAR_PROJECTILE[B_SEAR_CURRENT_INDEX]
Set B_SEAR_TRIGGER_UNIT[B_SEAR_CURRENT_INDEX] = No unit
Set B_SEAR_PROJECTILE[B_SEAR_CURRENT_INDEX] = No unit
-------- IMPORTANT SYSTEM PART START --------
-------- Decrease the normal index container size --------
Set B_SEAR_INDEX_LISTENER = (B_SEAR_INDEX_LISTENER - 1)
-------- Exchange the data from the last index to the current index --------
Set B_SEAR_INDEX_CONTAINER[B_SEAR_EXAMPLE_LOOP] = B_SEAR_INDEX_CONTAINER[B_SEAR_INDEX_LISTENER]
-------- Add an index to the Recycle Container --------
Set B_SEAR_RECYCLE_CONTAINER[B_SEAR_RECYCLE_SIZE] = B_SEAR_CURRENT_INDEX
-------- Recycle Container Index Size gets increased --------
Set B_SEAR_RECYCLE_SIZE = (B_SEAR_RECYCLE_SIZE + 1)
-------- Reset Loop --------
Set B_SEAR_EXAMPLE_LOOP = (B_SEAR_EXAMPLE_LOOP - 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
B_SEAR_INDEX_LISTENER Equal to 0
Then - Actions
Trigger - Turn off SEARLOOP <gen>
Skip remaining actions
Else - Actions
-------- IMPORTANT SYSTEM PART END --------
2nd skill-Pillar of Flame
POFSTART
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to B_POF_ABILITY
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
B_POF_INDEX_LISTENER Equal to 0
Then - Actions
Trigger - Turn on POFLOOP <gen>
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
B_POF_RECYCLE_SIZE Greater than 0
Then - Actions
Set B_POF_RECYCLE_SIZE = (B_POF_RECYCLE_SIZE - 1)
Set B_POF_CURRENT_INDEX = B_POF_RECYCLE_CONTAINER[B_POF_RECYCLE_SIZE]
Else - Actions
Set B_POF_CURRENT_INDEX = B_POF_INDEX_SIZE
Set B_POF_INDEX_SIZE = (B_POF_INDEX_SIZE + 1)
-------- IMPORTANT VARIABLES --------
Set B_POF_TRIGGER_UNIT[B_POF_CURRENT_INDEX] = (Triggering unit)
Set B_POF_TARGET_POINT[B_POF_CURRENT_INDEX] = (Target point of ability being cast)
Unit - Create 1 POF DUMMY for (Owner of B_POF_TRIGGER_UNIT[B_POF_CURRENT_INDEX]) at B_POF_TARGET_POINT[B_POF_CURRENT_INDEX] facing Default building facing degrees
Set B_POF_DUMMY_UNIT[B_POF_CURRENT_INDEX] = (Last created unit)
Set B_POF_LVL_OFABILITY = (Level of B_POF_ABILITY for B_POF_TRIGGER_UNIT[B_POF_CURRENT_INDEX])
Set B_POF_DAMAGE[B_POF_CURRENT_INDEX] = B_POF_CONFIG_DAMAGE[B_POF_LVL_OFABILITY]
Set B_POF_DAMAGE[B_POF_CURRENT_INDEX] = (B_POF_DAMAGE[B_POF_CURRENT_INDEX] + (0.60 x (Real((Intelligence of B_POF_TRIGGER_UNIT[B_POF_CURRENT_INDEX] (Include bonuses))))))
Set B_POF_DAMAGE_FACTOR[B_POF_CURRENT_INDEX] = B_POF_CONFIG_DAMAGE_FACTOR[B_POF_LVL_OFABILITY]
Set B_POF_BONUS_DAMAGE[B_POF_CURRENT_INDEX] = (B_POF_DAMAGE[B_POF_CURRENT_INDEX] + (B_POF_CONFIG_DAMAGE_FACTOR[B_POF_LVL_OFABILITY] x B_POF_DAMAGE[B_POF_CURRENT_INDEX]))
Set B_POF_DELAY[B_POF_CURRENT_INDEX] = B_POF_CONFIG_DELAY[B_POF_LVL_OFABILITY]
Set B_POF_AOE[B_POF_CURRENT_INDEX] = B_POF_CONFIG_AOE[B_POF_LVL_OFABILITY]
-------- IMPORTANT SYSTEM PART START --------
Set B_POF_INDEX_CONTAINER[B_POF_INDEX_LISTENER] = B_POF_CURRENT_INDEX
Set B_POF_INDEX_LISTENER = (B_POF_INDEX_LISTENER + 1)
POFLOOP
Events
Time - Every 0.03 seconds of game time
Conditions
Actions
-------- Dynamic Loop --------
For each (Integer B_POF_EXAMPLE_LOOP) from 0 to (B_POF_INDEX_LISTENER - 1), do (Actions)
Loop - Actions
-------- Set the current index --------
Set B_POF_CURRENT_INDEX = B_POF_INDEX_CONTAINER[B_POF_EXAMPLE_LOOP]
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
B_POF_DELAY[B_POF_CURRENT_INDEX] Greater than 0.00
Then - Actions
Set B_POF_DELAY[B_POF_CURRENT_INDEX] = (B_POF_DELAY[B_POF_CURRENT_INDEX] - 0.03)
Else - Actions
Unit - Create 1 CONFLAGRATION DUMMY for (Owner of B_POF_TRIGGER_UNIT[B_POF_CURRENT_INDEX]) at B_POF_TARGET_POINT[B_POF_CURRENT_INDEX] facing Default building facing degrees
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Special Effect - Create a special effect at B_POF_TARGET_POINT[B_POF_CURRENT_INDEX] using B_POF_SPFX
Special Effect - Destroy (Last created special effect)
Set B_POF_PICKED_UNITS = (Units within B_POF_AOE[B_POF_CURRENT_INDEX] of B_POF_TARGET_POINT[B_POF_CURRENT_INDEX] 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 (((
Unit Group - Pick every unit in B_POF_PICKED_UNITS and do (Actions)
Loop - Actions
Set B_POF_PICKED_UNIT = (Picked unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(B_POF_PICKED_UNIT has buff B_BLAZE_CONFIG_BUFF) Equal to True
Then - Actions
Unit - Cause B_POF_TRIGGER_UNIT[B_POF_CURRENT_INDEX] to damage B_POF_PICKED_UNIT, dealing B_POF_BONUS_DAMAGE[B_POF_CURRENT_INDEX] damage of attack type Hero and damage type Magic
Else - Actions
Unit - Cause B_POF_TRIGGER_UNIT[B_POF_CURRENT_INDEX] to damage B_POF_PICKED_UNIT, dealing B_POF_DAMAGE[B_POF_CURRENT_INDEX] damage of attack type Hero and damage type Magic
Unit - Create 1 DUMMY CASTER for (Owner of B_POF_TRIGGER_UNIT[B_POF_CURRENT_INDEX]) at (Position of B_POF_PICKED_UNIT) facing Default building facing degrees
Unit - Add Blaze (Dummy) to (Last created unit)
Unit - Order (Last created unit) to Undead Banshee - Curse B_POF_PICKED_UNIT
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Set B_POF_PICKED_UNIT = No unit
Unit - Kill B_POF_DUMMY_UNIT[B_POF_CURRENT_INDEX]
Set B_POF_TRIGGER_UNIT[B_POF_CURRENT_INDEX] = No unit
Set B_POF_DUMMY_UNIT[B_POF_CURRENT_INDEX] = No unit
-------- Decrease the normal index container size --------
Set B_POF_INDEX_LISTENER = (B_POF_INDEX_LISTENER - 1)
-------- Exchange the data from the last index to the current index --------
Set B_POF_INDEX_CONTAINER[B_POF_EXAMPLE_LOOP] = B_POF_INDEX_CONTAINER[B_POF_INDEX_LISTENER]
-------- Add an index to the Recycle Container --------
Set B_POF_RECYCLE_CONTAINER[B_POF_RECYCLE_SIZE] = B_POF_CURRENT_INDEX
-------- Recycle Container Index Size gets increased --------
Set B_POF_RECYCLE_SIZE = (B_POF_RECYCLE_SIZE + 1)
-------- Reset Loop --------
Set B_POF_EXAMPLE_LOOP = (B_POF_EXAMPLE_LOOP - 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
B_POF_INDEX_LISTENER Equal to 0
Then - Actions
Trigger - Turn off POFLOOP <gen>
Skip remaining actions
Else - Actions
-------- IMPORTANT SYSTEM PART END --------
3rd skill-Conflagration
CONFLAGRATIONSTART
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to B_CON_ABILITY
Actions
Set B_CON_TRIGGER_UNIT = (Triggering unit)
Set B_CON_TARGET_UNIT = (Target unit of ability being cast)
Set B_CON_LVL_OF_ABILITY = (Level of B_CON_ABILITY for B_CON_TRIGGER_UNIT)
Set B_CON_DAMAGE = B_CON_CONFIG_DAMAGE[B_CON_LVL_OF_ABILITY]
Set B_CON_DAMAGE = (B_CON_DAMAGE + (0.55 x (Real((Intelligence of B_CON_TRIGGER_UNIT (Include bonuses))))))
Special Effect - Create a special effect attached to the origin of B_CON_TARGET_UNIT using B_CON_SPFX1
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect attached to the origin of B_CON_TARGET_UNIT using B_CON_SPFX2
Special Effect - Destroy (Last created special effect)
Set B_CON_TARGET_LOC = (Position of B_CON_TARGET_UNIT)
Unit - Create 1 CONFLAGRATION DUMMY for (Owner of B_CON_TRIGGER_UNIT) at B_CON_TARGET_LOC facing Default building facing degrees
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(B_CON_TARGET_UNIT has buff B_BLAZE_CONFIG_BUFF) Equal to True
Then - Actions
Set B_CON_PICKED_UNITS = (Units within B_CON_CONFIG_AOE[B_CON_LVL_OF_ABILITY] of B_CON_TARGET_LOC 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)
Unit Group - Pick every unit in B_CON_PICKED_UNITS and do (Actions)
Loop - Actions
Set B_CON_PICKED_UNIT = (Picked unit)
Unit - Cause B_CON_TRIGGER_UNIT to damage B_CON_PICKED_UNIT, dealing B_CON_DAMAGE damage of attack type Hero and damage type Magic
Special Effect - Create a special effect attached to the chest of B_CON_PICKED_UNIT using Abilities\Weapons\FireBallMissile\FireBallMissile.mdl
Special Effect - Destroy (Last created special effect)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
B_PYR_INDEX_LISTENER Equal to 0
Then - Actions
Trigger - Turn on PYROCLASMLOOP <gen>
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
B_PYR_RECYCLE_SIZE Greater than 0
Then - Actions
Set B_PYR_RECYCLE_SIZE = (B_PYR_RECYCLE_SIZE - 1)
Set B_PYR_CURRENT_INDEX = B_PYR_RECYCLE_CONTAINER[B_PYR_RECYCLE_SIZE]
Else - Actions
Set B_PYR_CURRENT_INDEX = B_PYR_INDEX_SIZE
Set B_PYR_INDEX_SIZE = (B_PYR_INDEX_SIZE + 1)
-------- IMPORTANT VARIABLES --------
Set B_PYR_G_TRIGGER_UNIT[B_PYR_CURRENT_INDEX] = (Triggering unit)
Set B_PYR_G_TARGET_UNIT[B_PYR_CURRENT_INDEX] = (Target unit of ability being cast)
Set B_PYR_LVLOFABILITY = (Level of B_PYR_ABILITY for B_PYR_G_TRIGGER_UNIT[B_PYR_CURRENT_INDEX])
Set B_PYR_G_AOE[B_PYR_CURRENT_INDEX] = B_PYR_CONFIG_AOE[B_PYR_LVLOFABILITY]
Set B_PYR_G_BOUNCES[B_PYR_CURRENT_INDEX] = B_PYR_CONFIG_BOUNCES[B_PYR_LVLOFABILITY]
Set B_PYR_G_DAMAGE[B_PYR_CURRENT_INDEX] = B_PYR_CONFIG_DAMAGE[B_PYR_LVLOFABILITY]
Set B_PYR_G_DAMAGE[B_PYR_CURRENT_INDEX] = (B_PYR_G_DAMAGE[B_PYR_CURRENT_INDEX] + (0.55 x (Real((Intelligence of B_PYR_G_TRIGGER_UNIT[B_PYR_CURRENT_INDEX] (Include bonuses))))))
Set B_PYR_G_SPEED[B_PYR_CURRENT_INDEX] = B_PYR_CONFIG_SPEED[B_PYR_LVLOFABILITY]
Set B_PYR_G_TEMPLOC1 = (Position of B_PYR_G_TRIGGER_UNIT[B_PYR_CURRENT_INDEX])
Set B_PYR_G_TEMPLOC2 = (Position of B_PYR_G_TARGET_UNIT[B_PYR_CURRENT_INDEX])
Set B_PYR_G_TEMP_ANGLE = (Angle from B_PYR_G_TEMPLOC1 to B_PYR_G_TEMPLOC2)
Unit - Create 1 B_PYR_CONFIG_UNIT_TYPE for (Owner of B_PYR_G_TRIGGER_UNIT[B_PYR_CURRENT_INDEX]) at B_PYR_G_TEMPLOC1 facing B_PYR_G_TEMP_ANGLE degrees
Set B_PYR_G_PROJECTILE[B_PYR_CURRENT_INDEX] = (Last created unit)
Unit - Cause B_PYR_G_TRIGGER_UNIT[B_PYR_CURRENT_INDEX] to damage B_PYR_G_TARGET_UNIT[B_PYR_CURRENT_INDEX], dealing B_PYR_G_DAMAGE[B_PYR_CURRENT_INDEX] damage of attack type Hero and damage type Magic
Special Effect - Create a special effect attached to the origin of B_PYR_G_TARGET_UNIT[B_PYR_CURRENT_INDEX] using B_PYR_SPFX
Special Effect - Destroy (Last created special effect)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(B_PYR_G_TARGET_UNIT[B_PYR_CURRENT_INDEX] has buff B_BLAZE_CONFIG_BUFF) Equal to True
Then - Actions
Set B_PYR_G_TEMPLOC1 = (Position of B_PYR_G_PROJECTILE[B_PYR_CURRENT_INDEX])
Unit - Create 1 DUMMY CASTER for (Owner of B_PYR_G_TRIGGER_UNIT[B_PYR_CURRENT_INDEX]) at B_PYR_G_TEMPLOC1 facing Default building facing degrees
Unit - Add Blaze (Dummy) to (Last created unit)
Unit - Order (Last created unit) to Undead Banshee - Curse B_PYR_G_TARGET_UNIT[B_PYR_CURRENT_INDEX]
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Set B_PYR_G_PICKED_UNITS = (Units within B_PYR_G_AOE[B_PYR_CURRENT_INDEX] of B_PYR_G_TEMPLOC1 matching ((((Matching unit) is A Hero) Equal to True) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(B_PYR_G_PICKED_UNITS is empty) Equal to False
Then - Actions
Set B_PYR_G_TARGET_UNIT[B_PYR_CURRENT_INDEX] = (Random unit from B_PYR_G_PICKED_UNITS)
Set B_PYR_G_TEMPLOC2 = (Position of B_PYR_G_TARGET_UNIT[B_PYR_CURRENT_INDEX])
Set B_PYR_G_TEMP_ANGLE = (Angle from B_PYR_G_TEMPLOC1 to B_PYR_G_TEMPLOC2)
Unit - Kill B_PYR_G_PROJECTILE[B_PYR_CURRENT_INDEX]
Unit - Create 1 B_PYR_CONFIG_UNIT_TYPE for (Owner of B_PYR_G_TRIGGER_UNIT[B_PYR_CURRENT_INDEX]) at B_PYR_G_TEMPLOC1 facing B_PYR_G_TEMP_ANGLE degrees
Set B_PYR_G_PROJECTILE[B_PYR_CURRENT_INDEX] = (Last created unit)
Set B_PYR_G_BOUNCES[B_PYR_CURRENT_INDEX] = (B_PYR_G_BOUNCES[B_PYR_CURRENT_INDEX] - 1)
Else - Actions
Set B_PYR_G_TEMPLOC1 = (Position of B_PYR_G_PROJECTILE[B_PYR_CURRENT_INDEX])
Unit - Create 1 DUMMY CASTER for (Owner of B_PYR_G_TRIGGER_UNIT[B_PYR_CURRENT_INDEX]) at B_PYR_G_TEMPLOC1 facing Default building facing degrees
Unit - Add Blaze (Dummy) to (Last created unit)
Unit - Order (Last created unit) to Undead Banshee - Curse B_PYR_G_TARGET_UNIT[B_PYR_CURRENT_INDEX]
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Set B_PYR_G_PICKED_UNITS = (Units within B_PYR_G_AOE[B_PYR_CURRENT_INDEX] of B_PYR_G_TEMPLOC1 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) belon
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(B_PYR_G_PICKED_UNITS is empty) Equal to False
Then - Actions
Set B_PYR_G_TARGET_UNIT[B_PYR_CURRENT_INDEX] = (Random unit from B_PYR_G_PICKED_UNITS)
Set B_PYR_G_TEMPLOC2 = (Position of B_PYR_G_TARGET_UNIT[B_PYR_CURRENT_INDEX])
Set B_PYR_G_TEMP_ANGLE = (Angle from B_PYR_G_TEMPLOC1 to B_PYR_G_TEMPLOC2)
Unit - Kill B_PYR_G_PROJECTILE[B_PYR_CURRENT_INDEX]
Unit - Create 1 B_PYR_CONFIG_UNIT_TYPE for (Owner of B_PYR_G_TRIGGER_UNIT[B_PYR_CURRENT_INDEX]) at B_PYR_G_TEMPLOC1 facing B_PYR_G_TEMP_ANGLE degrees
Set B_PYR_G_PROJECTILE[B_PYR_CURRENT_INDEX] = (Last created unit)
Set B_PYR_G_BOUNCES[B_PYR_CURRENT_INDEX] = (B_PYR_G_BOUNCES[B_PYR_CURRENT_INDEX] - 1)
Else - Actions
Set B_PYR_G_BOUNCES[B_PYR_CURRENT_INDEX] = 0
Else - Actions
Set B_PYR_G_TEMPLOC1 = (Position of B_PYR_G_PROJECTILE[B_PYR_CURRENT_INDEX])
Unit - Create 1 DUMMY CASTER for (Owner of B_PYR_G_TRIGGER_UNIT[B_PYR_CURRENT_INDEX]) at B_PYR_G_TEMPLOC1 facing Default building facing degrees
Unit - Add Blaze (Dummy) to (Last created unit)
Unit - Order (Last created unit) to Undead Banshee - Curse B_PYR_G_TARGET_UNIT[B_PYR_CURRENT_INDEX]
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Set B_PYR_G_PICKED_UNITS = (Units within B_PYR_G_AOE[B_PYR_CURRENT_INDEX] of B_PYR_G_TEMPLOC1 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) belon
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(B_PYR_G_PICKED_UNITS is empty) Equal to False
Then - Actions
Set B_PYR_G_TARGET_UNIT[B_PYR_CURRENT_INDEX] = (Random unit from B_PYR_G_PICKED_UNITS)
Set B_PYR_G_TEMPLOC2 = (Position of B_PYR_G_TARGET_UNIT[B_PYR_CURRENT_INDEX])
Set B_PYR_G_TEMP_ANGLE = (Angle from B_PYR_G_TEMPLOC1 to B_PYR_G_TEMPLOC2)
Unit - Kill B_PYR_G_PROJECTILE[B_PYR_CURRENT_INDEX]
Unit - Create 1 B_PYR_CONFIG_UNIT_TYPE for (Owner of B_PYR_G_TRIGGER_UNIT[B_PYR_CURRENT_INDEX]) at B_PYR_G_TEMPLOC1 facing B_PYR_G_TEMP_ANGLE degrees
Set B_PYR_G_PROJECTILE[B_PYR_CURRENT_INDEX] = (Last created unit)
GUI Brand [LOL] Spell Pack 1.2 | Reviewed by Maker | 17.01.14
Concept[/COLOR]]
The spells work well as a pack and they have nice synergy
Copying spells from other games leaves little room for imagination an creativity
Triggers[/COLOR]]...
you should make the config triggers, so a user with low understanding with triggers can customize it
use in-game screenshot instead of brand's wallpaper, it's the rule
the rest of trigger, i haven't check it..
This is in your for each loop.
This should be avoided.
0 to (B_SEAR_INDEX_LISTENER - 1)
Change it to
1 to B_SEAR_INDEX_LISTENER
And increase the above before you add everything to the array.
Alternatively set the B_SEAR_INDEX_LISTENER - 1 to a variable before the for loop and use that.
Also you shouldn't capitalize all variables. Only constants should be capitalized. It makes it very hard to read.
Use one permanent Dummy caster for each spell. Currently you create a huge amount of units while CreateUnit is a rather heavy operation.
Change the loop to --> 1 to B_SEAR_INDEX_LISTENER like deathismyfriend already mentioned.
Edit:
Set B_CON_LVL_OF_ABILITY = 0
Set B_CON_DAMAGE = 0.00
Set B_CON_DAMAGE = 0.00
You don't have to set these to 0. They will be reset on the next spellcast
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.