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!
Description
Summons a frost orb that will move towards the targeted point. Once the orb reach the distance or hit ground units or hit tree, the orb will explode and spread several small frost orbs while also dealing big damage to nearby enemy ground units. Each small orbs will land to a specific location and cause small damage to nearby enemy ground units.
Levels Level 1 - 100 main orb damage, 20 small orbs, 50 small orbs damage. Level 2 - 150 main orb damage, 25 small orbs, 60 small orbs damage. Level 3 - 200 main orb damage, 30 small orbs, 70 small orbs damage.
Code
Frost Orb Init
Events
Map initialization
Conditions
Actions
-------- --------------------------- --------
-------- Configuration --------
-------- --------------------------- --------
-------- Determines the ability --------
Set FO_Ability = Frost Orb
-------- Determines the dummy unit-type --------
Set FO_DummyType = Frost Orb Dummy
-------- Determines the main orb model --------
Set FO_MainOrbModel = Abilities\Spells\Undead\FreezingBreath\FreezingBreathMissile.mdl
-------- Determines the main orb scale --------
Set FO_MainOrbScale = 1.00
-------- Determines the main orb height --------
Set FO_MainOrbHeight = 30.00
-------- Determines the main orb spawn offset from the caster position --------
Set FO_MainOrbSpawnOffset = 50.00
-------- Determines the main orb move speed --------
Set FO_MainOrbSpeed[1] = 20.00
Set FO_MainOrbSpeed[2] = 20.00
Set FO_MainOrbSpeed[3] = 20.00
-------- Determines the main orb collision --------
Set FO_MainOrbCollision[1] = 75.00
Set FO_MainOrbCollision[2] = 75.00
Set FO_MainOrbCollision[3] = 75.00
-------- Determines the small orbs model --------
Set FO_OrbModel = Abilities\Weapons\ZigguratFrostMissile\ZigguratFrostMissile.mdl
-------- Determines the small orbs scale --------
Set FO_OrbScale = 1.00
-------- Determines the small orbs start height --------
Set FO_OrbHeight = 30.00
-------- Determines the number of small orbs spawned --------
Set FO_OrbNumber[1] = 20
Set FO_OrbNumber[2] = 25
Set FO_OrbNumber[3] = 30
-------- Determines the small orbs move speed --------
Set FO_OrbSpeed[1] = 30.00
Set FO_OrbSpeed[2] = 30.00
Set FO_OrbSpeed[3] = 30.00
-------- Determines the small orbs spread range --------
Set FO_OrbAoE[1] = 800.00
Set FO_OrbAoE[2] = 900.00
Set FO_OrbAoE[3] = 1000.00
-------- Determines the small orbs arc height --------
Set FO_OrbArc[1] = 0.50
Set FO_OrbArc[2] = 0.50
Set FO_OrbArc[3] = 0.50
-------- Determines the main orb explosion model --------
Set FO_MainEXModel[1] = Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
Set FO_MainEXModel[2] = Abilities\Spells\Undead\FreezingBreath\FreezingBreathMissile.mdl
Set FO_MainEXModel[3] = Units\NightElf\Wisp\WispExplode.mdl
-------- Determines the number of main orb explosion will be created --------
Set FO_MainEXNumber = 3
-------- Determines the main orb explosion range --------
Set FO_MainEXRange[1] = 200.00
Set FO_MainEXRange[2] = 200.00
Set FO_MainEXRange[3] = 200.00
-------- Determines the main orb explosion damage --------
Set FO_MainEXDamage[1] = 100.00
Set FO_MainEXDamage[2] = 150.00
Set FO_MainEXDamage[3] = 200.00
-------- Determines the small orbs explosion model --------
Set FO_EXModel[1] = Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
Set FO_EXModel[2] = Abilities\Spells\Undead\FrostArmor\FrostArmorTarget.mdl
-------- Determines the number of small orbs explosion will be created --------
Set FO_EXNumber = 2
-------- Determines the small orbs explosion range --------
Set FO_EXRange[1] = 100.00
Set FO_EXRange[2] = 100.00
Set FO_EXRange[3] = 100.00
-------- Determines the small orbs explosion damage --------
Set FO_EXDamage[1] = 50.00
Set FO_EXDamage[2] = 60.00
Set FO_EXDamage[3] = 70.00
-------- Determines the effect attached on frozen units --------
Set FO_FreezeSFX = Abilities\Spells\Undead\FreezingBreath\FreezingBreathTargetArt.mdl
-------- Determines the attachment point --------
Set FO_FreezeSFXAttachment = origin
-------- Determines the effect spawn every second that indicate a unit is taking damage because of freezing --------
Set FO_FreezeDPSSFX = Abilities\Spells\Undead\FrostArmor\FrostArmorDamage.mdl
-------- Determines the attachment point --------
Set FO_FreezeDPSSFXAttachment = origin
-------- Determines the freezing duration --------
Set FO_FreezeDuration[1] = 4.00
Set FO_FreezeDuration[2] = 4.00
Set FO_FreezeDuration[3] = 4.00
-------- Determines the freezing damage per second --------
Set FO_FreezeDPS[1] = 20.00
Set FO_FreezeDPS[2] = 20.00
Set FO_FreezeDPS[3] = 20.00
-------- Determines the attack-type --------
Set FO_AttackType = Spells
-------- Determines the damage-type --------
Set FO_DamageType = Cold
-------- If "True", will enable destroying trees --------
Unit Group - Pick every unit in (Units within FO_EXRange[FO_Level[FO_Index]] of FO_TempLoc) and do (Actions)
Loop - Actions
Set FO_TempUnit = (Picked unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(FO_TempUnit is A flying unit) Equal to False
(FO_TempUnit is dead) Equal to False
(FO_TempUnit belongs to an ally of FO_Owner[FO_Index]) Equal to False
Then - Actions
Unit - Cause FO_Caster[FO_Index] to damage FO_TempUnit, dealing FO_EXDamage[FO_Level[FO_Index]] damage of attack type FO_AttackType and damage type FO_DamageType
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(FO_TempUnit is dead) Equal to False
Then - Actions
Set FO_Stage[0] = 0
For each (Integer FO_Level[0]) from 1 to FO_MaxIndex, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
FO_TempUnit Equal to FO_Target[FO_Level[0]]
Then - Actions
Set FO_Duration[FO_Level[0]] = FO_FreezeDuration[FO_Level[FO_Index]]
Unit - Cause FO_Caster[FO_Index] to damage FO_Target[FO_Index], dealing FO_FreezeDPS[FO_Level[FO_Index]] damage of attack type FO_AttackType and damage type FO_DamageType
Set FO_Duration[FO_Index] = (FO_Duration[FO_Index] - FO_Interval)
Else - Actions
Special Effect - Destroy FO_Model[FO_Index]
Animation - Change FO_Target[FO_Index]'s animation speed to 100.00% of its original speed
Set FO_Stage[FO_Index] = 4
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
FO_Stage[FO_Index] Equal to 3
Then - Actions
Custom script: set udg_FO_X[1] = GetUnitX(udg_FO_Dummy[udg_FO_Index])
Custom script: set udg_FO_Y[1] = GetUnitY(udg_FO_Dummy[udg_FO_Index])
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
FO_Distance[FO_Index] Greater than 0.00
Then - Actions
Custom script: set udg_FO_X[1] = udg_FO_X[1] + udg_FO_MainOrbSpeed[udg_FO_Level[udg_FO_Index]] * Cos(udg_FO_Angle[udg_FO_Index])
Custom script: set udg_FO_Y[1] = udg_FO_Y[1] + udg_FO_MainOrbSpeed[udg_FO_Level[udg_FO_Index]] * Sin(udg_FO_Angle[udg_FO_Index])
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Unit Group - Pick every unit in (Units within FO_MainEXRange[FO_Level[FO_Index]] of FO_TempLoc) and do (Actions)
Loop - Actions
Set FO_TempUnit = (Picked unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(FO_TempUnit is A flying unit) Equal to False
(FO_TempUnit is dead) Equal to False
(FO_TempUnit belongs to an ally of FO_Owner[FO_Index]) Equal to False
Then - Actions
Unit - Cause FO_Caster[FO_Index] to damage FO_TempUnit, dealing FO_MainEXDamage[FO_Level[FO_Index]] damage of attack type FO_AttackType and damage type FO_DamageType
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(FO_TempUnit is dead) Equal to False
Then - Actions
Set FO_Stage[0] = 0
For each (Integer FO_Level[0]) from 1 to FO_MaxIndex, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
FO_TempUnit Equal to FO_Target[FO_Level[0]]
Then - Actions
Set FO_Duration[FO_Level[0]] = FO_FreezeDuration[FO_Level[FO_Index]]
Set FO_Stage[0] = 1
Custom script: exitwhen udg_FO_Stage[0] == 1
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
FO_Stage[0] Equal to 0
Then - Actions
Set FO_MaxIndex = (FO_MaxIndex + 1)
Set FO_Caster[FO_MaxIndex] = FO_Caster[FO_Index]
Set FO_Target[FO_MaxIndex] = FO_TempUnit
Set FO_Level[FO_MaxIndex] = FO_Level[FO_Index]
Set FO_Duration[FO_MaxIndex] = FO_FreezeDuration[FO_Level[FO_MaxIndex]]
Set FO_FXTimer[FO_MaxIndex] = 1.00
Special Effect - Create a special effect attached to the FO_FreezeSFXAttachment of FO_Target[FO_MaxIndex] using FO_FreezeSFX
Set FO_Model[FO_MaxIndex] = (Last created special effect)
Animation - Change FO_Target[FO_MaxIndex]'s animation speed to 0.00% of its original speed
Set FO_Stage[FO_MaxIndex] = 2
Else - Actions
Else - Actions
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
FO_DestroyTree Equal to True
Then - Actions
Destructible - Pick every destructible within FO_MainEXRange[FO_Level[FO_Index]] of FO_TempLoc and do (Actions)
Frost Orb v1.1 | Reviewed by Maker | 29th Sep 2013
APPROVED
Leakless and MUI, good tooltip
[tr]
The spell damages neutral units
The main projectile could fly a bit higher
The frost effects disappear abruptly
The...
Your making/uploading a spell too fast than me ( anyway that's why I'm not uploading spells now because I'm trying mastering the system Bribe's Unit Indexer ^^.
Anyway Nice eye candy spell you got there ) 4.5/5.
5/5 for a nice spell, great effect and good Configuration and KUTE GHOST , anyway don't use bj_DEGTORAD and bj_RADTODEG many times, you must use 57.29582 instead bj_RADTODEG and 0.01747 instead bj_DEGTORAD
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.