Moderator
M
Moderator
16:01, 7th Nov 2012
Magtheridon96: Approved.
Well done.
edit
Re-evaluated to 5/5!
Magtheridon96: Approved.
Well done.
edit
Re-evaluated to 5/5!
Helios Collision Configuration

Events


Map initialization

Conditions

Actions


-------- -------- --------


-------- Condition Configuration --------


-------- Unit is a ground unit --------


Set HC_ConditionConfig[0] = True


-------- Unit is a structure --------


Set HC_ConditionConfig[1] = False


-------- Unit is magic immune --------


Set HC_ConditionConfig[2] = False


-------- Unit belongs to an enemy player --------


Set HC_ConditionConfig[3] = True


-------- Unit is alive --------


Set HC_ConditionConfig[4] = True


-------- Determines the area that will be effected by Magnetism --------


Set HC_ExplosionAOE = 200.00


Set HC_AoeBase = 250.00


Set HC_AoePerLevel = 100.00


-------- Determines the strength of the magnetism --------


Set HC_MagnetismStrengthBase = 300.00


Set HC_MagnetismStrengthPerLevel = 200.00


Set HC_MagnetismDistanceMultiplyer = 0.80


Set HC_MagnetismCap = 20.00


-------- Determines the damage done by the blast --------


Set HC_ExplosionDamageBase = 200.00


Set HC_ExplosionDamagePerLevel = 25.00


-------- Determines the strength of the blast --------


Set HC_BlastDistanceBase = 900.00


Set HC_BlastDistanceMultiplyer = 0.05


Set HC_HeightMultiplyer = 0.80


Set HC_BlastSpeed = 12.00


Set HC_BlastCap = 550.00


-------- Determines the speed of the Sun travelling --------


Set HC_SunSpeed = 3.00


-------- Determines the amount of Orbs surround the Sun --------


Set HC_OrbCountBase = 3


Set HC_OrbCountPerLevel = 0


-------- Determines the amount of Wind that surrounds the Sun --------


Set HC_WindCountBase = 5


Set HC_WindCountPerLevel = 2


-------- Determines how fast the Orbs Spin around --------


Set HC_FireOrbSpinSpeed = 3.00


-------- Determines how fast the Wind Spins around --------


Set HC_WindSpinSpeed = 6.00


-------- Determines how far the orbs are from the sun --------


Set HC_OrbDistance = 150.00


-------- Determines how far the wind is from the sun --------


Set HC_WindDistance = 200.00


-------- Determines how long the dummies will remain after their usefulness has ended --------


Set HC_DummyExpirationTimers = 0.20


-------- Determines the scaling of the Sun and its SFX --------


Set HC_EffectScalingOrbs = 100.00


Set HC_EffectScalingWind = 100.00


Set HC_EffectScalingSun = 100.00


-------- Determines the Height given to the sun and its effects --------


Set HC_EffectZOrbs = 100.00


Set HC_EffectZSun = 0.00


Set HC_EffectZWind = 0.00


-------- Determines the unit model used as the Sun --------


Set HC_SunSFX = war3mapImported\Sun.mdx


-------- Determines the model used for the revolving fire orbs --------


Set HC_FireOrbSFX = Abilities\Weapons\PhoenixMissile\Phoenix_Missile.mdl


-------- Determines the unit model used for the burning of the targets --------


Set HC_BurnSFX = Abilities\Weapons\PhoenixMissile\Phoenix_Missile.mdl


-------- Determines the unit model used as the rotatingwind --------


Set HC_WindSFX = Abilities\Spells\Other\Tornado\Tornado_Target.mdl


-------- Determines the SFX used upon explosion --------


Set HC_ExplosionSFX = Objects\Spawnmodels\Other\NeutralBuildingExplosion\NeutralBuildingExplosion.mdl


-------- Determines the spell used to act as the activation spell --------


Set HC_Spell = Helios Collision


-------- Determines the Dummy used to attach all the effects to --------


Set HC_DummyType = Helios Collision Dummy
Helios Collision Activation

Events


Unit - A unit Starts the effect of an ability

Conditions


(Ability being cast) Equal to HC_Spell

Actions


Set HC_Caster = (Triggering unit)


Set HC_TempPoint = (Position of HC_Caster)


Set HC_TempPoint2 = (Target point of ability being cast)


Set HC_Angle = (Angle from HC_TempPoint to HC_TempPoint2)


Unit - Create 1 HC_DummyType for Neutral Passive at HC_TempPoint facing Default building facing degrees


Set HC_TempUnit = (Last created unit)


Special Effect - Create a special effect attached to the origin of HC_TempUnit using HC_SunSFX


Animation - Change HC_TempUnit's size to (HC_EffectScalingSun%, 0.00%, 0.00%) of its original size


Animation - Change HC_TempUnit flying height to HC_EffectZSun at 0.00


Set HC_MaxIndex = (HC_MaxIndex + 1)


Set HC_OriginalCaster[HC_MaxIndex] = HC_Caster


Set HC_OwningPlayer[HC_MaxIndex] = (Owner of HC_Caster)


Set HC_TempInteger = (Level of HC_Spell for HC_Caster)


Set HC_TempReal = (Real(HC_TempInteger))


Set HC_SpecialEffect[HC_MaxIndex] = (Last created special effect)


Set HC_Core[HC_MaxIndex] = HC_TempUnit


Set HC_Aoe[HC_MaxIndex] = (HC_AoeBase + (HC_AoePerLevel x HC_TempReal))


Set HC_ExplosionDamage[HC_MaxIndex] = (HC_ExplosionDamageBase + (HC_ExplosionDamagePerLevel x HC_TempReal))


Set HC_MagnetismStrength[HC_MaxIndex] = (HC_MagnetismStrengthBase + (HC_MagnetismStrengthPerLevel x HC_TempReal))


Set HC_Distance[HC_MaxIndex] = (Distance between HC_TempPoint and HC_TempPoint2)


Set HC_Core[HC_MaxIndex] = HC_TempUnit


Set HC_CurrentAngle[HC_MaxIndex] = HC_Angle


Set HC_CurrentSunDistance[HC_MaxIndex] = 0.00


Set HC_UnitIndex[HC_MaxIndex] = HC_TempUnit


Set HC_StageID[HC_MaxIndex] = 1


Set HC_Angle = 0.00


-------- --------


Set HC_BlastDistance[HC_MaxIndex] = 0.00


Set HC_CurrentBlastDistance[HC_MaxIndex] = 0.00


Set HC_MaxHeight[HC_MaxIndex] = 0.00


Set HC_CurrentHeight[HC_MaxIndex] = 0.00


-------- --------


Custom script: call RemoveLocation (udg_HC_TempPoint2)


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



If - Conditions




HC_MaxIndex Equal to 1



Then - Actions




Trigger - Turn on Helios Collision Loop <gen>



Else - Actions


Set HC_TempInteger2 = (HC_OrbCountBase + (HC_OrbCountPerLevel x HC_TempInteger))


For each (Integer HC_Index) from 1 to HC_TempInteger2, do (Actions)



Loop - Actions




Set HC_Angle = (HC_Angle + (360.00 / (Real(HC_TempInteger2))))




Set HC_TempPoint2 = (HC_TempPoint offset by HC_OrbDistance towards HC_Angle degrees)




Unit - Create 1 HC_DummyType for Neutral Passive at HC_TempPoint2 facing Default building facing degrees




Set HC_TempUnit2 = (Last created unit)




Special Effect - Create a special effect attached to the origin of HC_TempUnit2 using HC_FireOrbSFX




Animation - Change HC_TempUnit2's size to (HC_EffectScalingOrbs%, 0.00%, 0.00%) of its original size




Animation - Change HC_TempUnit2 flying height to HC_EffectScalingOrbs at 0.00




Custom script: call RemoveLocation (udg_HC_TempPoint2)




Set HC_MaxIndex = (HC_MaxIndex + 1)




Set HC_SpecialEffect[HC_MaxIndex] = (Last created special effect)




Set HC_CurrentAngle[HC_MaxIndex] = HC_Angle




Set HC_StageID[HC_MaxIndex] = 2




Set HC_Core[HC_MaxIndex] = HC_TempUnit




Set HC_UnitIndex[HC_MaxIndex] = HC_TempUnit2




-------- --------




Set HC_Aoe[HC_MaxIndex] = 0.00




Set HC_OriginalCaster[HC_MaxIndex] = HC_Caster




Set HC_OwningPlayer[HC_MaxIndex] = (Owner of HC_Caster)




Set HC_MaxHeight[HC_MaxIndex] = 0.00




Set HC_BlastDistance[HC_MaxIndex] = 0.00




Set HC_CurrentBlastDistance[HC_MaxIndex] = 0.00




Set HC_CurrentHeight[HC_MaxIndex] = 0.00




Set HC_CurrentSunDistance[HC_MaxIndex] = 0.00




Set HC_ExplosionDamage[HC_MaxIndex] = 0.00




Set HC_MagnetismStrength[HC_MaxIndex] = 0.00


Set HC_TempInteger2 = (HC_WindCountBase + (HC_WindCountPerLevel x HC_TempInteger))


For each (Integer HC_Index) from 1 to HC_TempInteger2, do (Actions)



Loop - Actions




Set HC_Angle = (HC_Angle + (360.00 / (Real(HC_TempInteger2))))




Set HC_TempPoint2 = (HC_TempPoint offset by HC_OrbDistance towards HC_Angle degrees)




Unit - Create 1 HC_DummyType for Neutral Passive at HC_TempPoint2 facing Default building facing degrees




Set HC_TempUnit2 = (Last created unit)




Special Effect - Create a special effect attached to the origin of HC_TempUnit2 using HC_WindSFX




Animation - Change HC_TempUnit2's size to (HC_EffectScalingOrbs%, 0.00%, 0.00%) of its original size




Animation - Change HC_TempUnit2 flying height to HC_EffectZWind at 0.00




Custom script: call RemoveLocation (udg_HC_TempPoint2)




Set HC_MaxIndex = (HC_MaxIndex + 1)




Set HC_SpecialEffect[HC_MaxIndex] = (Last created special effect)




Set HC_CurrentAngle[HC_MaxIndex] = HC_Angle




Set HC_StageID[HC_MaxIndex] = 3




Set HC_Core[HC_MaxIndex] = HC_TempUnit




Set HC_UnitIndex[HC_MaxIndex] = HC_TempUnit2




-------- --------




Set HC_Aoe[HC_MaxIndex] = 0.00




Set HC_OriginalCaster[HC_MaxIndex] = HC_Caster




Set HC_OwningPlayer[HC_MaxIndex] = (Owner of HC_Caster)




Set HC_BlastDistance[HC_MaxIndex] = 0.00




Set HC_CurrentBlastDistance[HC_MaxIndex] = 0.00




Set HC_CurrentHeight[HC_MaxIndex] = 0.00




Set HC_CurrentSunDistance[HC_MaxIndex] = 0.00




Set HC_ExplosionDamage[HC_MaxIndex] = 0.00




Set HC_MagnetismStrength[HC_MaxIndex] = 0.00


Custom script: call RemoveLocation (udg_HC_TempPoint)
Helios Collision Loop

Events


Time - Every 0.03 seconds of game time

Conditions

Actions


For each (Integer HC_Index) from 1 to HC_MaxIndex, do (Actions)



Loop - Actions




Set HC_Angle = 0.00




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





If - Conditions






(Unit-type of HC_UnitIndex[HC_Index]) Equal to HC_DummyType





Then - Actions






-------- Control over Sun --------






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







If - Conditions








HC_StageID[HC_Index] Equal to 1







Then - Actions








Custom script: set udg_HC_TempX = GetUnitX(udg_HC_UnitIndex[udg_HC_Index])








Custom script: set udg_HC_TempY = GetUnitY(udg_HC_UnitIndex[udg_HC_Index])








Custom script: set udg_HC_Angle = udg_HC_CurrentAngle[udg_HC_Index] * bj_DEGTORAD








Custom script: call SetUnitX(udg_HC_UnitIndex[udg_HC_Index], udg_HC_TempX + udg_HC_SunSpeed * Cos(udg_HC_Angle))








Custom script: call SetUnitY(udg_HC_UnitIndex[udg_HC_Index], udg_HC_TempY + udg_HC_SunSpeed* Sin(udg_HC_Angle))








-------- Magnetism Control --------








Set HC_TempPoint = (Position of HC_UnitIndex[HC_Index])








Set HC_TempGroup = (Units within HC_Aoe[HC_Index] of HC_TempPoint)








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









Loop - Actions










Set HC_TempUnit = (Picked unit)










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











If - Conditions












(HC_TempUnit is A ground unit) Equal to HC_ConditionConfig[0]












(HC_TempUnit is A structure) Equal to HC_ConditionConfig[1]












(HC_TempUnit is Magic Immune) Equal to HC_ConditionConfig[2]












(HC_TempUnit belongs to an enemy of HC_OwningPlayer[HC_Index]) Equal to HC_ConditionConfig[3]












(HC_TempUnit is alive) Equal to HC_ConditionConfig[4]












(HC_TempUnit is paused) Equal to False











Then - Actions












Set HC_TempPoint2 = (Position of HC_TempUnit)












Custom script: set udg_HC_TempX = GetUnitX(udg_HC_TempUnit)












Custom script: set udg_HC_TempY = GetUnitY(udg_HC_TempUnit)












Custom script: set udg_HC_Angle = Atan2(GetUnitY(udg_HC_UnitIndex[udg_HC_Index]) - GetUnitY(udg_HC_TempUnit), GetUnitX(udg_HC_UnitIndex[udg_HC_Index]) - GetUnitX(udg_HC_TempUnit))












Set HC_CurrentMagnetism = (HC_MagnetismStrength[HC_Index] / ((Distance between HC_TempPoint and HC_TempPoint2) x HC_MagnetismDistanceMultiplyer))












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













If - Conditions














HC_CurrentMagnetism Greater than HC_MagnetismCap













Then - Actions














Set HC_CurrentMagnetism = HC_MagnetismCap













Else - Actions












Custom script: call SetUnitX(udg_HC_TempUnit, udg_HC_TempX + udg_HC_CurrentMagnetism * Cos(udg_HC_Angle))












Custom script: call SetUnitY(udg_HC_TempUnit, udg_HC_TempY + udg_HC_CurrentMagnetism * Sin(udg_HC_Angle))












Custom script: call RemoveLocation (udg_HC_TempPoint2)











Else - Actions








Custom script: call DestroyGroup(udg_HC_TempGroup)








Set HC_CurrentSunDistance[HC_Index] = (HC_CurrentSunDistance[HC_Index] + HC_SunSpeed)








-------- Explosion Control --------








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









If - Conditions










HC_CurrentSunDistance[HC_Index] Greater than or equal to HC_Distance[HC_Index]









Then - Actions










Set HC_TempGroup = (Units within HC_ExplosionAOE of HC_TempPoint)










-------- Effected Units --------










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











Loop - Actions












Set HC_TempUnit = (Picked unit)












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













If - Conditions














(HC_TempUnit is A ground unit) Equal to HC_ConditionConfig[0]














(HC_TempUnit is A structure) Equal to HC_ConditionConfig[1]














(HC_TempUnit is Magic Immune) Equal to HC_ConditionConfig[2]














(HC_TempUnit belongs to an enemy of HC_OwningPlayer[HC_Index]) Equal to HC_ConditionConfig[3]














(HC_TempUnit is alive) Equal to HC_ConditionConfig[4]














(HC_TempUnit is paused) Equal to False













Then - Actions














Set HC_TempPoint2 = (Position of HC_TempUnit)














Unit - Cause HC_OriginalCaster[HC_Index] to damage HC_TempUnit, dealing HC_ExplosionDamage[HC_Index] damage of attack type Spells and damage type Normal














Set HC_MaxIndex = (HC_MaxIndex + 1)














Special Effect - Create a special effect attached to the origin of HC_TempUnit using HC_BurnSFX














Set HC_SpecialEffect[HC_MaxIndex] = (Last created special effect)














Set HC_CurrentAngle[HC_MaxIndex] = (Angle from HC_TempPoint to HC_TempPoint2)














Set HC_CurrentBlastDistance[HC_MaxIndex] = 0.00














Set HC_BlastDistance[HC_MaxIndex] = (HC_BlastDistanceBase / ((Distance between HC_TempPoint and HC_TempPoint2) x HC_BlastDistanceMultiplyer))














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















If - Conditions
















HC_BlastDistance[HC_MaxIndex] Greater than HC_BlastCap















Then - Actions
















Set HC_BlastDistance[HC_MaxIndex] = HC_BlastCap















Else - Actions














Set HC_MaxHeight[HC_MaxIndex] = (HC_BlastDistance[HC_MaxIndex] x HC_HeightMultiplyer)














Set HC_CurrentHeight[HC_MaxIndex] = (Current flying height of HC_TempUnit)














Set HC_StageID[HC_MaxIndex] = 4














Set HC_UnitIndex[HC_MaxIndex] = HC_TempUnit














-------- --------














Set HC_Aoe[HC_MaxIndex] = 0.00














Set HC_OriginalCaster[HC_MaxIndex] = HC_TempUnit














Set HC_OwningPlayer[HC_MaxIndex] = (Owner of HC_TempUnit)














Set HC_CurrentSunDistance[HC_MaxIndex] = 0.00














Set HC_Core[HC_MaxIndex] = HC_TempUnit














Set HC_ExplosionDamage[HC_MaxIndex] = 0.00














Set HC_MagnetismStrength[HC_MaxIndex] = 0.00














Unit - Add Storm Crow Form to HC_TempUnit














Unit - Remove Storm Crow Form from HC_TempUnit














Unit - Pause HC_TempUnit














Custom script: call RemoveLocation (udg_HC_TempPoint2)













Else - Actions










Custom script: call DestroyGroup(udg_HC_TempGroup)










-------- Cleanup --------










For each (Integer HC_SecondaryIndex) from 1 to HC_MaxIndex, do (Actions)











Loop - Actions












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













If - Conditions














HC_Core[HC_SecondaryIndex] Equal to HC_UnitIndex[HC_Index]














HC_UnitIndex[HC_SecondaryIndex] Not equal to HC_UnitIndex[HC_Index]













Then - Actions














Set HC_TempUnit = HC_UnitIndex[HC_SecondaryIndex]














Set HC_TempPoint2 = (Position of HC_TempUnit)














Special Effect - Destroy HC_SpecialEffect[HC_SecondaryIndex]














Unit - Create 1 HC_DummyType for Neutral Passive at HC_TempPoint2 facing Default building facing degrees














Set HC_TempUnit2 = (Last created unit)














Special Effect - Create a special effect attached to the origin of HC_TempUnit2 using HC_ExplosionSFX














Animation - Change HC_TempUnit2's size to (HC_EffectScalingBlast%, 0.00%, 0.00%) of its original size














Animation - Change HC_TempUnit2 flying height to HC_EffectZBlast at 0.00














Special Effect - Destroy (Last created special effect)














Unit - Add a HC_DummyExpirationTimers second Generic expiration timer to HC_TempUnit2














Set HC_StageID[HC_SecondaryIndex] = HC_StageID[HC_MaxIndex]














Set HC_Aoe[HC_SecondaryIndex] = HC_Aoe[HC_MaxIndex]














Set HC_OriginalCaster[HC_SecondaryIndex] = HC_OriginalCaster[HC_MaxIndex]














Set HC_BlastDistance[HC_SecondaryIndex] = HC_BlastDistance[HC_MaxIndex]














Set HC_CurrentAngle[HC_SecondaryIndex] = HC_CurrentAngle[HC_MaxIndex]














Set HC_CurrentBlastDistance[HC_SecondaryIndex] = HC_CurrentBlastDistance[HC_MaxIndex]














Set HC_OwningPlayer[HC_SecondaryIndex] = HC_OwningPlayer[HC_MaxIndex]














Set HC_MaxHeight[HC_SecondaryIndex] = HC_MaxHeight[HC_MaxIndex]














Set HC_SpecialEffect[HC_SecondaryIndex] = HC_SpecialEffect[HC_MaxIndex]














Set HC_CurrentHeight[HC_SecondaryIndex] = HC_CurrentHeight[HC_MaxIndex]














Set HC_CurrentSunDistance[HC_SecondaryIndex] = HC_CurrentSunDistance[HC_MaxIndex]














Set HC_ExplosionDamage[HC_SecondaryIndex] = HC_ExplosionDamage[HC_MaxIndex]














Set HC_Core[HC_SecondaryIndex] = HC_Core[HC_MaxIndex]














Set HC_UnitIndex[HC_SecondaryIndex] = HC_UnitIndex[HC_MaxIndex]














Set HC_MagnetismStrength[HC_SecondaryIndex] = HC_MagnetismStrength[HC_MaxIndex]














Set HC_MaxIndex = (HC_MaxIndex - 1)














Set HC_SecondaryIndex = (HC_SecondaryIndex - 1)














Unit - Remove HC_TempUnit from the game














Custom script: call RemoveLocation(udg_HC_TempPoint2)













Else - Actions










Unit - Create 1 HC_DummyType for Neutral Passive at HC_TempPoint facing Default building facing degrees










Set HC_TempUnit = (Last created unit)










Special Effect - Destroy HC_SpecialEffect[HC_Index]










Special Effect - Create a special effect attached to the origin of HC_TempUnit using HC_ExplosionSFX










Animation - Change HC_TempUnit's size to (HC_EffectScalingBlast%, 0.00%, 0.00%) of its original size










Animation - Change HC_TempUnit flying height to HC_EffectZBlast at 0.00










Special Effect - Destroy (Last created special effect)










Unit - Add a HC_DummyExpirationTimers second Generic expiration timer to HC_TempUnit










Set HC_TempUnit = HC_UnitIndex[HC_Index]










Set HC_StageID[HC_Index] = HC_StageID[HC_MaxIndex]










Set HC_Aoe[HC_Index] = HC_Aoe[HC_MaxIndex]










Set HC_OriginalCaster[HC_Index] = HC_OriginalCaster[HC_MaxIndex]










Set HC_BlastDistance[HC_Index] = HC_BlastDistance[HC_MaxIndex]










Set HC_CurrentAngle[HC_Index] = HC_CurrentAngle[HC_MaxIndex]










Set HC_OwningPlayer[HC_Index] = HC_OwningPlayer[HC_MaxIndex]










Set HC_MaxHeight[HC_Index] = HC_MaxHeight[HC_MaxIndex]










Set HC_CurrentBlastDistance[HC_Index] = HC_CurrentBlastDistance[HC_MaxIndex]










Set HC_CurrentHeight[HC_Index] = HC_CurrentHeight[HC_MaxIndex]










Set HC_SpecialEffect[HC_Index] = HC_SpecialEffect[HC_MaxIndex]










Set HC_CurrentSunDistance[HC_Index] = HC_CurrentSunDistance[HC_MaxIndex]










Set HC_Core[HC_Index] = HC_Core[HC_MaxIndex]










Set HC_UnitIndex[HC_Index] = HC_UnitIndex[HC_MaxIndex]










Set HC_ExplosionDamage[HC_Index] = HC_ExplosionDamage[HC_MaxIndex]










Set HC_MagnetismStrength[HC_Index] = HC_MagnetismStrength[HC_MaxIndex]










Set HC_MaxIndex = (HC_MaxIndex - 1)










Set HC_Index = (HC_Index - 1)










Unit - Remove HC_TempUnit from the game










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











If - Conditions












HC_MaxIndex Equal to 0











Then - Actions












Trigger - Turn off (This trigger)











Else - Actions









Else - Actions








Custom script: call RemoveLocation (udg_HC_TempPoint)







Else - Actions






-------- Fire balls Spin Control --------






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







If - Conditions








HC_StageID[HC_Index] Equal to 2







Then - Actions








Custom script: set udg_HC_TempX = GetUnitX(udg_HC_Core[udg_HC_Index])








Custom script: set udg_HC_TempY = GetUnitY(udg_HC_Core[udg_HC_Index])








Set HC_CurrentAngle[HC_Index] = (HC_CurrentAngle[HC_Index] + HC_FireOrbSpinSpeed)








Custom script: set udg_HC_Angle = udg_HC_CurrentAngle[udg_HC_Index] * bj_DEGTORAD








Custom script: call SetUnitX(udg_HC_UnitIndex[udg_HC_Index], udg_HC_TempX + udg_HC_OrbDistance * Cos(udg_HC_Angle))








Custom script: call SetUnitY(udg_HC_UnitIndex[udg_HC_Index], udg_HC_TempY + udg_HC_OrbDistance * Sin(udg_HC_Angle))








Set HC_TempPoint = (Position of HC_Core[HC_Index])








Unit - Make HC_UnitIndex[HC_Index] face HC_TempPoint over 0.00 seconds








Custom script: call RemoveLocation(udg_HC_TempPoint)







Else - Actions






-------- Wind Spin Control --------






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







If - Conditions








HC_StageID[HC_Index] Equal to 3







Then - Actions








Custom script: set udg_HC_TempX = GetUnitX(udg_HC_Core[udg_HC_Index])








Custom script: set udg_HC_TempY = GetUnitY(udg_HC_Core[udg_HC_Index])








Set HC_CurrentAngle[HC_Index] = (HC_CurrentAngle[HC_Index] + HC_WindSpinSpeed)








Custom script: set udg_HC_Angle = udg_HC_CurrentAngle[udg_HC_Index] * bj_DEGTORAD








Custom script: call SetUnitX(udg_HC_UnitIndex[udg_HC_Index], udg_HC_TempX + udg_HC_WindDistance * Cos(udg_HC_Angle))








Custom script: call SetUnitY(udg_HC_UnitIndex[udg_HC_Index], udg_HC_TempY + udg_HC_WindDistance * Sin(udg_HC_Angle))







Else - Actions





Else - Actions






-------- Control of Knockbacked units --------






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







If - Conditions








HC_StageID[HC_Index] Equal to 4







Then - Actions








Custom script: set udg_HC_TempX = GetUnitX(udg_HC_UnitIndex[udg_HC_Index])








Custom script: set udg_HC_TempY = GetUnitY(udg_HC_UnitIndex[udg_HC_Index])








Custom script: set udg_HC_Angle = udg_HC_CurrentAngle[udg_HC_Index] * bj_DEGTORAD








Custom script: call SetUnitX(udg_HC_UnitIndex[udg_HC_Index], udg_HC_TempX + udg_HC_BlastSpeed * Cos(udg_HC_Angle))








Custom script: call SetUnitY(udg_HC_UnitIndex[udg_HC_Index], udg_HC_TempY + udg_HC_BlastSpeed* Sin(udg_HC_Angle))








Set HC_CurrentBlastDistance[HC_Index] = (HC_CurrentBlastDistance[HC_Index] + HC_BlastSpeed)








Set HC_CurrentHeight[HC_Index] = (((4.00 x HC_MaxHeight[HC_Index]) / HC_BlastDistance[HC_Index]) x ((HC_CurrentBlastDistance[HC_Index] / HC_BlastDistance[HC_Index]) x (HC_BlastDistance[HC_Index] - HC_CurrentBlastDistance[HC_Index])))








Animation - Change HC_UnitIndex[HC_Index] flying height to HC_CurrentHeight[HC_Index] at 0.00








-------- Unit Release --------








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









If - Conditions










HC_CurrentHeight[HC_Index] Less than 0.00









Then - Actions










Special Effect - Destroy HC_SpecialEffect[HC_Index]










Unit - Unpause HC_UnitIndex[HC_Index]










Set HC_StageID[HC_Index] = HC_StageID[HC_MaxIndex]










Set HC_Aoe[HC_Index] = HC_Aoe[HC_MaxIndex]










Set HC_OriginalCaster[HC_Index] = HC_OriginalCaster[HC_MaxIndex]










Set HC_OwningPlayer[HC_Index] = HC_OwningPlayer[HC_MaxIndex]










Set HC_BlastDistance[HC_Index] = HC_BlastDistance[HC_MaxIndex]










Set HC_CurrentAngle[HC_Index] = HC_CurrentAngle[HC_MaxIndex]










Set HC_CurrentBlastDistance[HC_Index] = HC_CurrentBlastDistance[HC_MaxIndex]










Set HC_SpecialEffect[HC_Index] = HC_SpecialEffect[HC_MaxIndex]










Set HC_CurrentHeight[HC_Index] = HC_CurrentHeight[HC_MaxIndex]










Set HC_MaxHeight[HC_Index] = HC_MaxHeight[HC_MaxIndex]










Set HC_CurrentSunDistance[HC_Index] = HC_CurrentSunDistance[HC_MaxIndex]










Set HC_Core[HC_Index] = HC_Core[HC_MaxIndex]










Set HC_UnitIndex[HC_Index] = HC_UnitIndex[HC_MaxIndex]










Set HC_ExplosionDamage[HC_Index] = HC_ExplosionDamage[HC_MaxIndex]










Set HC_MagnetismStrength[HC_Index] = HC_MagnetismStrength[HC_MaxIndex]










Set HC_MaxIndex = (HC_MaxIndex - 1)










Set HC_Index = (HC_Index - 1)










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











If - Conditions












HC_MaxIndex Equal to 0











Then - Actions












Trigger - Turn off (This trigger)











Else - Actions









Else - Actions







Else - Actions
Helios Collision Dummy Removal

Events


Unit - A unit Dies

Conditions

Actions


Set HC_TempUnit = (Triggering unit)


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



If - Conditions




(Unit-type of HC_TempUnit) Equal to HC_DummyType



Then - Actions




Unit - Remove HC_TempUnit from the game



Else - Actions