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!
Another one for you guys, pretty simple this time, looks aren't amazing - but much better than the screenshot would lead you to believe (really hard to get a decent one for this spell)
This one is stronger the bigger the group of enemies you use it on - so its primary purpose is to tip battles in your favour when the enemy have more units
Arcane energies smite nearby enemies
Level 1 - 50 Damage 15 Bonus per charge
Level 2 - 75 Damage, 20 Bonus per charge
Level 3 - 100 Damage 25 Bonus per charge
- Heavily configurable
- No target spell
- Effects (who doesn't like flashy effects?)
- Useful
Arcane Judgement Configuration
Events
Map initialization
Conditions
Actions
-------- -------- --------
-------- Condition Configuration --------
-------- Unit is a ground unit --------
Set AJ_ConditionConfig[0] = True
-------- Unit is a structure --------
Set AJ_ConditionConfig[1] = False
-------- Unit is magic immune --------
Set AJ_ConditionConfig[2] = False
-------- Unit belongs to an enemy player --------
Set AJ_ConditionConfig[3] = True
-------- Unit is alive --------
Set AJ_ConditionConfig[4] = True
-------- Determines the area that will be effected by the spell --------
Set AJ_DetonationAOE = 90.00
Set AJ_AOEAccount = 50.00
Set AJ_AoeBase = 350.00
Set AJ_AoePerLevel = 100.00
-------- Determines the number of charges based on number of targets --------
Set AJ_ChargesPerTargetBase = 5
Set AJ_ChargesPerTargetPerLevel = 1
-------- Determines the target controls --------
Set AJ_TargetMaxBase = 6
Set AJ_TargetMaxPerLevel = 2
-------- Determines the damage done by the blast --------
Set AJ_DetonationDamageBase = 25.00
Set AJ_DetonationDamagePerLevel = 25.00
Set AJ_ChargeDamageBase = 10.00
Set AJ_ChargeDamagePerLevel = 5.00
-------- Determines the movement speed of the sphere --------
Set AJ_SphereSpeed = 6.00
-------- Determines how fast the Charges Spin around --------
Set AJ_ChargeSpinSpeed = 5.00
-------- Determines how far the Charges are from the Sphere --------
Set AJ_ChargeDistance = 50.00
-------- Determines how long the Sphere will last chasing its target --------
Set AJ_SphereDurationBase = 5.00
Set AJ_SphereDurationBasePerLevel = 1.00
-------- Determines how long the dummies will remain after their usefulness has ended --------
Set AJ_EffectDeathDuration = 1.20
-------- Determines the scaling of the Sphere and its SFX --------
Set AJ_EffectScalingSpheres = 100.00
Set AJ_EffectScalingSpawn = 100.00
Set AJ_EffectScalingDetonation = 125.00
Set AJ_EffectScalingCharges = 30.00
-------- Determines the Height given to the effects --------
Set AJ_EffectZSpheres = 100.00
Set AJ_EffectZCharges = 150.00
Set AJ_EffectZSpawn = 0.00
Set AJ_EffectZDetonation = 0.00
-------- Determines the unit model used as the Sphere --------
Set AJ_SphereSFX = units\nightelf\Wisp\Wisp.mdl
-------- Determines the model used for the revolving charges --------
Set AJ_ChargeSFX = units\nightelf\Wisp\Wisp.mdl
-------- Determines the unit model used as the casting effect --------
Set AJ_SpawnSFX = Abilities\Spells\NightElf\Taunt\TauntCaster.mdl
-------- Determines the SFX used upon detonation --------
Set AJ_DetonationSFX = Objects\Spawnmodels\NightElf\NEDeathSmall\NEDeathSmall.mdl
-------- Determines the spell used to act as the activation spell --------
Set AJ_Spell = Arcane Judgement
-------- Determines the Dummy used to attach all the effects to --------
Set AJ_DummyType = Arcane Judgement Dummy
Arcane Judgement Activation
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to AJ_Spell
Actions
Set AJ_Caster = (Triggering unit)
Set AJ_TempPoint = (Position of AJ_Caster)
Set AJ_TempInteger2 = (Level of AJ_Spell for AJ_Caster)
Set AJ_TempReal = (Real(AJ_TempInteger2))
Set AJ_TempPlayer = (Owner of AJ_Caster)
Unit - Create 1 AJ_DummyType for Neutral Passive at AJ_TempPoint facing Default building facing degrees
Set AJ_TempUnit = (Last created unit)
Special Effect - Create a special effect attached to the origin of AJ_TempUnit using AJ_SpawnSFX
Animation - Change AJ_TempUnit's size to (AJ_EffectScalingSpawn%, 0.00%, 0.00%) of its original size
Animation - Change AJ_TempUnit flying height to AJ_EffectZSpawn at 0.00
Special Effect - Destroy (Last created special effect)
Unit - Add a AJ_EffectDeathDuration second Generic expiration timer to AJ_TempUnit
Set AJ_TempGroup = (Units within (AJ_AoeBase + (AJ_AoePerLevel x AJ_TempReal)) of AJ_TempPoint)
Unit Group - Pick every unit in AJ_TempGroup and do (Actions)
Loop - Actions
Set AJ_TempUnit = (Picked unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(AJ_TempUnit is A ground unit) Equal to AJ_ConditionConfig[0]
(AJ_TempUnit is A structure) Equal to AJ_ConditionConfig[1]
(AJ_TempUnit is Magic Immune) Equal to AJ_ConditionConfig[2]
(AJ_TempUnit belongs to an enemy of AJ_TempPlayer) Equal to AJ_ConditionConfig[3]
(AJ_TempUnit is alive) Equal to AJ_ConditionConfig[4]
Then - Actions
Unit Group - Add AJ_TempUnit to AJ_Targets
Else - Actions
Set AJ_TempInteger = (Number of units in AJ_Targets)
Set AJ_ChargesCount = (AJ_TempInteger / (AJ_ChargesPerTargetBase - (AJ_ChargesPerTargetPerLevel x AJ_TempInteger2)))
Set AJ_TempInteger3 = (AJ_TargetMaxBase + (AJ_TargetMaxPerLevel x AJ_TempInteger))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
For each (Integer AJ_Index) from 1 to AJ_TempInteger, do (Actions)
Loop - Actions
Unit - Create 1 AJ_DummyType for Neutral Passive at AJ_TempPoint facing Default building facing degrees
Set AJ_TempUnit = (Last created unit)
Set AJ_MaxIndex = (AJ_MaxIndex + 1)
Special Effect - Create a special effect attached to the origin of AJ_TempUnit using AJ_SphereSFX
Set AJ_SpecialEffect[AJ_MaxIndex] = (Last created special effect)
Animation - Change AJ_TempUnit's size to (AJ_EffectScalingSpheres%, 0.00%, 0.00%) of its original size
Animation - Change AJ_TempUnit flying height to AJ_EffectZSpheres at 0.00
Unit - Add a (AJ_SphereDurationBase + (AJ_SphereDurationBasePerLevel x AJ_TempReal)) second Generic expiration timer to AJ_TempUnit
Set AJ_TempUnit2 = (Random unit from AJ_Targets)
Set AJ_Target[AJ_MaxIndex] = AJ_TempUnit2
Set AJ_OriginalCaster[AJ_MaxIndex] = AJ_Caster
Set AJ_OwningPlayer[AJ_MaxIndex] = AJ_TempPlayer
Set AJ_Core[AJ_MaxIndex] = AJ_TempUnit
Set AJ_DetonationDamage[AJ_MaxIndex] = ((AJ_DetonationDamageBase + (AJ_DetonationDamagePerLevel x AJ_TempReal)) + ((Real(AJ_ChargesCount)) x (AJ_ChargeDamageBase + (AJ_ChargeDamagePerLevel x AJ_TempReal))))
Set AJ_CurrentAngle[AJ_MaxIndex] = AJ_Angle
Set AJ_UnitIndex[AJ_MaxIndex] = AJ_TempUnit
Set AJ_StageID[AJ_MaxIndex] = 1
Set AJ_Angle = 0.00
Unit Group - Remove AJ_TempUnit2 from AJ_Targets
-------- --------
-------- --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
AJ_MaxIndex Equal to 1
Then - Actions
Trigger - Turn on Arcane Judgement Loop <gen>
Else - Actions
For each (Integer AJ_SecondaryIndex) from 1 to AJ_ChargesCount, do (Actions)
Loop - Actions
Set AJ_Angle = (AJ_Angle + (360.00 / (Real(AJ_ChargesCount))))
Set AJ_TempPoint2 = (AJ_TempPoint offset by AJ_ChargeDistance towards AJ_Angle degrees)
Set AJ_MaxIndex = (AJ_MaxIndex + 1)
Unit - Create 1 AJ_DummyType for Neutral Passive at AJ_TempPoint facing Default building facing degrees
Set AJ_TempUnit2 = (Last created unit)
Special Effect - Create a special effect attached to the origin of AJ_TempUnit2 using AJ_ChargeSFX
Set AJ_SpecialEffect[AJ_MaxIndex] = (Last created special effect)
Animation - Change AJ_TempUnit2's size to (AJ_EffectScalingCharges%, 0.00%, 0.00%) of its original size
Animation - Change AJ_TempUnit2 flying height to AJ_EffectZCharges at 0.00
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(AJ_TempUnit is dead) Equal to True
Then - Actions
Set AJ_TempGroup = (Units within AJ_DetonationAOE of AJ_TempPoint)
Unit Group - Pick every unit in AJ_TempGroup and do (Actions)
Loop - Actions
Set AJ_TempUnit2 = (Picked unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(AJ_TempUnit2 is A ground unit) Equal to AJ_ConditionConfig[0]
(AJ_TempUnit2 is A structure) Equal to AJ_ConditionConfig[1]
(AJ_TempUnit2 is Magic Immune) Equal to AJ_ConditionConfig[2]
(AJ_TempUnit2 belongs to an enemy of AJ_TempPlayer) Equal to AJ_ConditionConfig[3]
(AJ_TempUnit2 is alive) Equal to AJ_ConditionConfig[4]
Then - Actions
Unit - Cause AJ_OriginalCaster[AJ_Index] to damage AJ_TempUnit2, dealing AJ_DetonationDamage[AJ_Index] damage of attack type Spells and damage type Normal
mhmm I notice, though the efficiency of such I shall have to quickly work out before I make a change
Edit: Yeah doing it, was wondering why I had it seperate in the first place - which was something I have long deleted from when I was just starting on it, One moment
Well you were right, -kind of- I still need the event to remove my effect dummies (otherwise some effects simply would not appear if they were removed in the loop without causing much more processing) in eihercase I've moved it -almost- entirely into the loop
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.