Hello! this is a spell that contain 2 spells made by me. This is my first spell pack ever.
I want to know what I did wrong , what I did good , what should I change , I tried to make them MUI but i think they aren't ^^ if they aren't, why? Im kinda noob , I wanted to put my code , but I don't know how ^^ and i don't even know if i can modify this description after.
Fire Cube:
level 1: Create a fire cube , after 5 seconds , it create a big explosion in the middle of the cube to do 10 x strengh
level 2: Create a fire cube , after 4 seconds , it create a big explosion in the middle of the cube to do 15 x strengh
level 3: Create a fire cube , after 3 seconds , it create a big explosion in the middle of the cube to do 20 x strengh
Trigger:
-
FC init
-

Events
-


Unit - A unit Starts the effect of an ability
-

Conditions
-


(Ability being cast) Equal to Fire Cube
-

Actions
-


Set FCNumberOfRadius = 12
-


Set FCRadiusLength = 400
-


Set FCPolygonSides = 4
-


Set FCTargetPoint = (Target point of ability being cast)
-


Set FCTempPoint[1] = (Target point of ability being cast)
-


Set FCTempPoint[2] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 225.00 degrees)
-


Set FCTempPoint[3] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 315.00 degrees)
-


Set FCTempPoint[5] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 225.00 degrees)
-


Set FCTempPoint[6] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 315.00 degrees)
-


Set FCTempPoint[7] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 45.00 degrees)
-


Set FCTempPoint[8] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 135.00 degrees)
-


Set FCNumberOfPoint = (Integer(((Distance between FCTempPoint[2] and FCTempPoint[3]) / 40.00)))
-


Set FCCaster = (Triggering unit)
-


If ((Level of Fire Cube for FCCaster) Equal to 1) then do (Set FCDamage = (10.00 x (Real((Strength of FCCaster (Include bonuses)))))) else do (Set FCExpTime = 5.00)
-


If ((Level of Fire Cube for FCCaster) Equal to 2) then do (Set FCDamage = (15.00 x (Real((Strength of FCCaster (Include bonuses)))))) else do (Set FCExpTime = 4.00)
-


If ((Level of Fire Cube for FCCaster) Equal to 3) then do (Set FCDamage = (20.00 x (Real((Strength of FCCaster (Include bonuses)))))) else do (Set FCExpTime = 3.00)
-


For each (Integer B) from 1 to 10, do (Actions)
-



Loop - Actions
-




Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[5] facing FCTargetPoint
-




Set FCDummy[9] = (Last created unit)
-




Unit - Add a FCExpTime second Generic expiration timer to FCDummy[9]
-




Animation - Change FCDummy[9] flying height to (Real((60 x (Integer B)))) at 0.00
-




Custom script: call RemoveLocation(udg_FCTempPoint[9])
-


For each (Integer B) from 1 to 10, do (Actions)
-



Loop - Actions
-




Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[6] facing FCTargetPoint
-




Set FCDummy[10] = (Last created unit)
-




Unit - Add a FCExpTime second Generic expiration timer to FCDummy[10]
-




Animation - Change FCDummy[10] flying height to (Real((60 x (Integer B)))) at 0.00
-




Custom script: call RemoveLocation(udg_FCTempPoint[10])
-


For each (Integer B) from 1 to 10, do (Actions)
-



Loop - Actions
-




Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[7] facing FCTargetPoint
-




Set FCDummy[11] = (Last created unit)
-




Unit - Add a FCExpTime second Generic expiration timer to FCDummy[11]
-




Animation - Change FCDummy[11] flying height to (Real((60 x (Integer B)))) at 0.00
-




Custom script: call RemoveLocation(udg_FCTempPoint[11])
-


For each (Integer B) from 1 to 10, do (Actions)
-



Loop - Actions
-




Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[8] facing FCTargetPoint
-




Set FCDummy[12] = (Last created unit)
-




Unit - Add a FCExpTime second Generic expiration timer to FCDummy[12]
-




Animation - Change FCDummy[12] flying height to (Real((60 x (Integer B)))) at 0.00
-




Custom script: call RemoveLocation(udg_FCTempPoint[12])
-


For each (Integer A) from 1 to FCNumberOfPoint, do (Actions)
-



Loop - Actions
-




Set FCTempPoint[4] = (FCTempPoint[2] offset by ((Real((Integer A))) x ((Distance between FCTempPoint[2] and FCTempPoint[3]) / (Real(FCNumberOfPoint)))) towards (Angle from FCTempPoint[2] to FCTempPoint[3]) degrees)
-




Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[4] facing FCTargetPoint
-




Set FCDummy[1] = (Last created unit)
-




Unit - Add a FCExpTime second Generic expiration timer to FCDummy[1]
-




Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[4] facing FCTargetPoint
-




Set FCDummy[5] = (Last created unit)
-




Unit - Add a FCExpTime second Generic expiration timer to FCDummy[5]
-




Animation - Change FCDummy[5] flying height to 600.00 at 0.00
-




Custom script: call RemoveLocation(udg_FCTempPoint[4])
-


Custom script: call RemoveLocation(udg_FCTempPoint[2])
-


Custom script: call RemoveLocation(udg_FCTempPoint[3])
-


Set FCTempPoint[2] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 315.00 degrees)
-


Set FCTempPoint[3] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 45.00 degrees)
-


For each (Integer A) from 1 to FCNumberOfPoint, do (Actions)
-



Loop - Actions
-




Set FCTempPoint[4] = (FCTempPoint[2] offset by ((Real((Integer A))) x ((Distance between FCTempPoint[2] and FCTempPoint[3]) / (Real(FCNumberOfPoint)))) towards (Angle from FCTempPoint[2] to FCTempPoint[3]) degrees)
-




Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[4] facing FCTargetPoint
-




Set FCDummy[2] = (Last created unit)
-




Unit - Add a FCExpTime second Generic expiration timer to FCDummy[2]
-




Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[4] facing FCTargetPoint
-




Set FCDummy[6] = (Last created unit)
-




Unit - Add a FCExpTime second Generic expiration timer to FCDummy[6]
-




Animation - Change FCDummy[6] flying height to 600.00 at 0.00
-




Custom script: call RemoveLocation(udg_FCTempPoint[4])
-


Custom script: call RemoveLocation(udg_FCTempPoint[2])
-


Custom script: call RemoveLocation(udg_FCTempPoint[3])
-


Set FCTempPoint[2] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 45.00 degrees)
-


Set FCTempPoint[3] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 135.00 degrees)
-


For each (Integer A) from 1 to FCNumberOfPoint, do (Actions)
-



Loop - Actions
-




Set FCTempPoint[4] = (FCTempPoint[2] offset by ((Real((Integer A))) x ((Distance between FCTempPoint[2] and FCTempPoint[3]) / (Real(FCNumberOfPoint)))) towards (Angle from FCTempPoint[2] to FCTempPoint[3]) degrees)
-




Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[4] facing FCTargetPoint
-




Set FCDummy[3] = (Last created unit)
-




Unit - Add a FCExpTime second Generic expiration timer to FCDummy[3]
-




Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[4] facing FCTargetPoint
-




Set FCDummy[7] = (Last created unit)
-




Unit - Add a FCExpTime second Generic expiration timer to FCDummy[7]
-




Animation - Change FCDummy[7] flying height to 600.00 at 0.00
-




Custom script: call RemoveLocation(udg_FCTempPoint[4])
-


Custom script: call RemoveLocation(udg_FCTempPoint[2])
-


Custom script: call RemoveLocation(udg_FCTempPoint[3])
-


Set FCTempPoint[2] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 135.00 degrees)
-


Set FCTempPoint[3] = (FCTargetPoint offset by (Real(FCRadiusLength)) towards 225.00 degrees)
-


For each (Integer A) from 1 to FCNumberOfPoint, do (Actions)
-



Loop - Actions
-




Set FCTempPoint[4] = (FCTempPoint[2] offset by ((Real((Integer A))) x ((Distance between FCTempPoint[2] and FCTempPoint[3]) / (Real(FCNumberOfPoint)))) towards (Angle from FCTempPoint[2] to FCTempPoint[3]) degrees)
-




Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[4] facing FCTargetPoint
-




Set FCDummy[4] = (Last created unit)
-




Unit - Add a FCExpTime second Generic expiration timer to FCDummy[4]
-




Unit - Create 1 Fire Cube Dummy [Cube] for (Owner of FCCaster) at FCTempPoint[4] facing FCTargetPoint
-




Set FCDummy[8] = (Last created unit)
-




Unit - Add a FCExpTime second Generic expiration timer to FCDummy[8]
-




Animation - Change FCDummy[8] flying height to 600.00 at 0.00
-




Custom script: call RemoveLocation(udg_FCTempPoint[4])
-


Unit - Create 1 Fire Cube Dummy [DamageLoc] for (Owner of FCCaster) at FCTargetPoint facing FCTargetPoint
-


Set FCDummy[14] = (Last created unit)
-


Trigger - Add to FC death <gen> the event (Unit - FCDummy[14] Dies)
-


Unit - Add a FCExpTime second Generic expiration timer to FCDummy[14]
-


Custom script: call RemoveLocation(udg_FCTempPoint[2])
-


Custom script: call RemoveLocation(udg_FCTempPoint[3])
-


Custom script: call RemoveLocation(udg_FCTargetPoint)
-
FC death
-

Events
-

Conditions
-

Actions
-


Set FCDummy[15] = (Dying unit)
-


Set FCTempPoint[1] = (Position of FCDummy[15])
-


For each (Integer A) from 1 to 10, do (Actions)
-



Loop - Actions
-




Unit - Create 1 Fire Cube Dummy [Damage] for (Owner of FCCaster) at FCTempPoint[1] facing FCTempPoint[1]
-




Unit - Add a 1.00 second Generic expiration timer to FCDummy[13]
-




Set FCDummy[13] = (Last created unit)
-




Animation - Change FCDummy[13] flying height to (Real((120 x (Integer A)))) at 0.00
-


Set FCGroup = (Units within 300.00 of FCTempPoint[1] matching ((((Picked unit) is A structure) Not equal to True) and ((((Picked unit) is Magic Immune) Not equal to True) and (((Picked unit) belongs to an enemy of (Owner of FCCaster)) Equal to True))))
-


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



Loop - Actions
-




Set FCTarget = (Picked unit)
-




Unit - Cause FCCaster to damage FCTarget, dealing FCDamage damage of attack type Spells and damage type Normal
-


Custom script: call DestroyGroup(udg_FCGroup)
-


Custom script: call RemoveLocation(udg_FCTempPoint[1])
Ifrit's Power:
Level 1: Call Ifrit's power to create an explosion at the target point that do 150 damage
Level 2: Call Ifrit's power to create an explosion at the target point that do 300 damage
Level 3: Call Ifrit's power to create an explosion at the target point that do 450 damage
Trigger:
-
IP Init
-

Events
-


Unit - A unit Starts the effect of an ability
-

Conditions
-


(Ability being cast) Equal to Ifrit's Power
-

Actions
-


Set IPCaster = (Triggering unit)
-


Set IPCasterPoint = (Position of IPCaster)
-


If ((Level of Ifrit's Power for IPCaster) Equal to 1) then do (Set IPDamage = 150.00) else do (Do nothing)
-


If ((Level of Ifrit's Power for IPCaster) Equal to 2) then do (Set IPDamage = 300.00) else do (Do nothing)
-


If ((Level of Ifrit's Power for IPCaster) Equal to 3) then do (Set IPDamage = 450.00) else do (Do nothing)
-


Set IPTargetPoint = (Target point of ability being cast)
-


Unit - Create 1 Ifrit's Power Dummy [Spiral] for (Owner of IPCaster) at (IPCasterPoint offset by 200.00 towards 0.00 degrees) facing IPCasterPoint
-


Set IPDummy[1] = (Last created unit)
-


Unit - Add a 3.00 second Generic expiration timer to IPDummy[1]
-


Set IPSpiral = 0.00
-


Set IPFlyingHeight = 0.00
-


Custom script: call RemoveLocation(udg_IPCasterPoint)
-
IP Spiral Flying
-

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
-




(Unit-type of IPDummy[1]) Equal to Ifrit's Power Dummy [Spiral]
-



Then - Actions
-




Set IPCasterPoint = (Position of IPCaster)
-




Unit - Move IPDummy[1] instantly to (IPCasterPoint offset by 200.00 towards IPSpiral degrees)
-




Animation - Change IPDummy[1] flying height to IPFlyingHeight at 0.00
-




Set IPSpiral = (IPSpiral + 9.00)
-




Set IPFlyingHeight = ((Current flying height of IPDummy[1]) + 9.00)
-




Custom script: call RemoveLocation(udg_IPCasterPoint)
-



Else - Actions
-
IP Damage
-

Events
-

Conditions
-


(Unit-type of (Triggering unit)) Equal to Ifrit's Power Dummy [Spiral]
-

Actions
-


Unit - Create 1 Ifrit's Power Dummy [Damage] for (Owner of IPCaster) at IPTargetPoint facing IPTargetPoint
-


Set IPDummy[2] = (Last created unit)
-


Unit - Add a 0.40 second Generic expiration timer to IPDummy[2]
-


Custom script: call RemoveLocation(udg_IPCasterPoint)
-


Custom script: call DestroyGroup(udg_IPGroup)
-
IP Damage Timing
-

Events
-

Conditions
-


(Unit-type of (Triggering unit)) Equal to Ifrit's Power Dummy [Damage]
-

Actions
-


Set IPGroup = (Units within 300.00 of IPTargetPoint matching ((((Picked unit) is A structure) Not equal to True) and ((((Picked unit) is Magic Immune) Not equal to True) and (((Picked unit) belongs to an enemy of (Owner of IPCaster)) Equal to True))))
-


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



Loop - Actions
-




Unit - Cause IPCaster to damage IPTarget, dealing IPDamage damage of attack type Spells and damage type Normal
-




Set IPTarget = (Picked unit)
-


Custom script: call RemoveLocation(udg_IPTargetPoint)
Changelog:
-1.00v: upload the spells
-1.01v: Add Codes, modified Ifrit's power to timing damage
-1.02v: Fire cube is now MUI , bah I think.
Keywords:
Fire, Ifrit, Cube, Fire cube, Power, Santa.