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!
A magical dagger is thrown at the target area to attract crows slowing nearby enemy units. After a short delay, damage is dealt either inside or outside the area. Affected units are held in place and unable to attack but able to cast spells.
The spell
Tips and Tricks
If its your first time casting the spell its best to start toggled outward. The normal response if something is thrown at you is to run away from it. The enemy will most likely fall for it.
If the enemy figures out that there will be no damage staying at the center then its ok. It will allow you to aim hard to hit abilities (if you have any) at your enemy. Also it gives a window to escape (if needed)
Toggle the ability [Inward]. Normally if you figure out how the ability works you will stay on the center. But when the ability is toggled inward, the mechanics changes and the damage is applied inside the area.
Keep pressing the toggle button to confuse enemies on whats the effect is going to be like.
Play mind games on your enemies by changing the mechanics of the spell.
Force your enemies into moving towards unwanted positions.
Manipulate your enemies.
About the spell
The main ability is based on silence (I know channel is better, but i just like silence as personal preference. It can be configured anyway so i think its ok)
The spell is consists of 5 abilities (1 for the main ability, 2 for the debuffs, and 2 for the toggle. I want the icon to change when toggled thats why 2 abilities are used for the toggle).
It uses only one dummy unit thanks to Vexorian's dummy.mdx
It supports damage based from hero stat and most aspects of the spell can be modified to your liking.
Other notes
The spell (for me) is eye-candy and very flashy.
The spell requires some skill to master (so you might wanna practice).
There is one drawback however, the spell uses 2 icon slots.
Special Thanks
Bannar, Ardenian - for defining "Deception". (lol! i re-read the thread, all my response are balls)
Bribe, defskull, Chaosy - for the critism. (without critism my spell will not transform into this)
KILLCIDE, Tank-Commander, DEE-BOO - for encouragement (without them i would give up right from the start)
Credits
- Vexorian for his dummy.mdx
Some Notes
This is my entry from the recent contest Zephyr contest#13 Deception. This has not been modified since its release. Bannar's suggestion will be implemented on future updates for now enjoy
Shadow of Dread Init
Events
Map initialization
Conditions
Actions
-------- - --------
-------- determines the Shadow of Dread ability --------
Set SD_CasterAbility = Shadow of Dread (Hero)
-------- - --------
-------- determines the slow ability --------
Set SD_SlowAbility = Shadow of Dread (Slow)
-------- - --------
-------- Note: you can adjust the attack speed, movement speed reduction and reduction using object editor --------
-------- find the Shadow of Dread (Slow) and modify the fields to your liking --------
-------- - --------
-------- determines the hold ability --------
Set SD_HoldAbility = Shadow of Dread (Hold)
-------- - --------
-------- Note: you can adjust the hold duration using object editor --------
-------- find the Shadow of Dread (Hold) and modify the fields to your liking --------
-------- - --------
-------- determines the slow buff given by the slow ability --------
Set SD_SlowBuff = Shadow of Dread (Slow)
-------- - --------
-------- determines the ability for toggling inward and outward --------
Set SD_OutwardAbility = Shadow of Dread (Outward)
Set SD_InwardAbility = Shadow of Dread (Inward)
-------- - --------
-------- set true if the ability will be set to outward by default --------
Set SD_DefaultOutward = True
-------- - --------
-------- determines the absolute damage dealt by the ability --------
Set SD_AbsoluteDamage[1] = 100.00
Set SD_AbsoluteDamage[2] = 150.00
Set SD_AbsoluteDamage[3] = 200.00
-------- - --------
-------- determines the damage dealt based on agility --------
-------- Note: to deal 30% damage from strength use 30 not 0.3 --------
Set SD_StrengthDamage[1] = 0.00
Set SD_StrengthDamage[2] = 0.00
Set SD_StrengthDamage[3] = 0.00
-------- - --------
-------- determines the damage dealt based on agility --------
-------- Note: to deal 30% damage from agility use 30 not 0.3 --------
Set SD_AgilityDamage[1] = 20.00
Set SD_AgilityDamage[2] = 20.00
Set SD_AgilityDamage[3] = 20.00
-------- - --------
-------- determines the damage dealt based on agility --------
-------- Note: to deal 30% damage from intelligence use 30 not 0.3 --------
Set SD_IntelligenceDamage[1] = 0.00
Set SD_IntelligenceDamage[2] = 0.00
Set SD_IntelligenceDamage[3] = 0.00
-------- - --------
-------- determines the attack type of the damage --------
Set SD_AttackType = Spells
-------- - --------
-------- determines the damage type of the damage dealt --------
Set SD_DamageType = Normal
-------- - --------
-------- determines the speed of the dagger --------
Set SD_DaggerSpeed[1] = 30.00
Set SD_DaggerSpeed[2] = 30.00
Set SD_DaggerSpeed[3] = 30.00
-------- - --------
-------- determines the starting height of the dagger --------
Set SD_MaxHeight[1] = 150.00
Set SD_MaxHeight[2] = 150.00
Set SD_MaxHeight[3] = 150.00
-------- - --------
-------- determines the AoE of the safe area --------
Set SD_SafeAoE[1] = 150.00
Set SD_SafeAoE[2] = 150.00
Set SD_SafeAoE[3] = 150.00
-------- - --------
-------- determines the AoE outside the safe area where units be gets slowed and damage --------
Set SD_CrowAoE[1] = 150.00
Set SD_CrowAoE[2] = 150.00
Set SD_CrowAoE[3] = 150.00
-------- - --------
-------- determines the delay before the damage is dealt on enemies --------
Set SD_DamageDelay[1] = 2.50
Set SD_DamageDelay[2] = 2.00
Set SD_DamageDelay[3] = 1.50
-------- - --------
-------- determines the model size of the crows --------
Set SD_CrowModelSize[1] = 100.00
Set SD_CrowModelSize[2] = 100.00
Set SD_CrowModelSize[3] = 100.00
-------- - --------
-------- determines the size of the model used in the safe area --------
Set SD_TargetModelSize[1] = 150.00
Set SD_TargetModelSize[2] = 150.00
Set SD_TargetModelSize[3] = 150.00
-------- - --------
-------- determines the number of crows --------
Set SD_CrowCount[1] = 4
Set SD_CrowCount[2] = 5
Set SD_CrowCount[3] = 6
-------- - --------
-------- determines the crow's angle in which they are rotated --------
Set SD_TurnRate[1] = 5.00
Set SD_TurnRate[2] = 5.00
Set SD_TurnRate[3] = 5.00
-------- - --------
-------- determines the color of the crow --------
Set SD_Red = 0.00
Set SD_Blue = 0.00
Set SD_Green = 0.00
-------- - --------
-------- determines the maximum and minimum flying height of the crow --------
Set SD_CrowMaximum = 500.00
Set SD_CrowMinimum = 200.00
-------- - --------
-------- determines the model used by the projectile --------
Set SD_DaggerModel = Abilities\Weapons\IllidanMissile\IllidanMissile.mdl
-------- - --------
-------- determines the model used by the crow --------
Set SD_CrowModel = units\creeps\WarEagle\WarEagle.mdl
-------- - --------
-------- determines the model used as trails of the crow --------
Set SD_ShadowModel = Abilities\Weapons\AvengerMissile\AvengerMissile.mdl
-------- - --------
-------- determines the model used to mark unit hit by the ability --------
Set SD_ExplosionModel = Abilities\Spells\Undead\DeathCoil\DeathCoilSpecialArt.mdl
Set SD_UnitAttach = origin
-------- - --------
-------- determines the model used to mark the safe area --------
Set SD_SafeAreaModel1 = Abilities\Spells\Other\Drain\DrainCaster.mdl
Set SD_SafeAreaModel2 = Abilities\Spells\NightElf\TargetArtLumber\TargetArtLumber.mdl
-------- - --------
-------- determines the dummy unit type --------
Set SD_DummyType = Crow's Deathfall (dummy)
-------- - --------
-------- add all abilities in your map that unlearns hero ability --------
-------- Note: It is important to add you abilities as the ability is adding a new ability to the unit when learning --------
-------- keep using the SD_UnLearnList and increase the index then add abilities that unlearns hero ability --------
Set SD_UnlearnList[1] = Tome of Retraining
-------- - --------
-------- set SD_UnlearnTotal to the number of abilities that unlearns hero abilities --------
Set SD_UnlearnTotal = 1
-------- - --------
-------- one dummy caster setup --------
Set SD_Point1 = (Random point in (Playable map area))
Unit - Create 1 SD_DummyType for Neutral Passive at SD_Point1 facing Default building facing degrees
Set SD_Dummy = (Last created unit)
Custom script: call RemoveLocation(udg_SD_Point1)
Unit - Add SD_CasterAbility to SD_Dummy
Unit - Remove SD_CasterAbility from SD_Dummy
Unit - Add SD_InwardAbility to SD_Dummy
Unit - Remove SD_InwardAbility from SD_Dummy
Unit - Add SD_OutwardAbility to SD_Dummy
Unit - Remove SD_OutwardAbility from SD_Dummy
Unit - Add SD_HoldAbility to SD_Dummy
Unit - Add SD_SlowAbility to SD_Dummy
Visibility - Create an initially Enabled visibility modifier for Neutral Passive emitting Visibility across (Playable map area)
Custom script: set bj_wantDestroyGroup=true
Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
Loop - Actions
Set SD_PickedUnit = (Picked unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Level of SD_CasterAbility for SD_PickedUnit) Greater than 0
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
SD_DefaultOutward Equal to True
Then - Actions
Unit - Add SD_OutwardAbility to SD_PickedUnit
Else - Actions
Unit - Add SD_InwardAbility to SD_PickedUnit
Else - Actions
Shadow of Dread Cast
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to SD_CasterAbility
Actions
-------- - --------
-------- temporary values --------
Set SD_TempCaster = (Triggering unit)
Set SD_TempPlayer = (Triggering player)
Set SD_TempLevel = (Level of SD_CasterAbility for SD_TempCaster)
-------- - --------
-------- indexing --------
Set SD_Index = (SD_Index + 1)
Set SD_Caster[SD_Index] = SD_TempCaster
Set SD_Player[SD_Index] = SD_TempPlayer
Set SD_Level[SD_Index] = SD_TempLevel
-------- - --------
-------- angles and distance --------
Set SD_Point1 = (Position of SD_TempCaster)
Set SD_Point2 = (Target point of ability being cast)
Set SD_TempDistance = (Distance between SD_Point1 and SD_Point2)
Set SD_Angle[SD_Index] = (Angle from SD_Point1 to SD_Point2)
Custom script: call RemoveLocation(udg_SD_Point2)
Set SD_MaxDistance[SD_Index] = SD_TempDistance
-------- - --------
-------- initialize values --------
Set SD_TimeLeft[SD_Index] = SD_DamageDelay[SD_Level[SD_Index]]
Set SD_ActionId[SD_Index] = 0
Set SD_CurrentHeight[SD_Index] = 0.00
Set SD_CurrentDistance[SD_Index] = 0.00
Set SD_Flag[SD_Index] = True
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Level of SD_OutwardAbility for SD_Caster[SD_Index]) Equal to 1
Then - Actions
Set SD_IsOutward[SD_Index] = True
Else - Actions
Set SD_IsOutward[SD_Index] = False
-------- - --------
-------- calculate damage --------
Set SD_TempStrDamage = ((Real((Strength of SD_Caster[SD_Index] (Include bonuses)))) x (SD_StrengthDamage[SD_Level[SD_Index]] x 0.01))
Set SD_TempAgiDamage = ((Real((Agility of SD_Caster[SD_Index] (Include bonuses)))) x (SD_AgilityDamage[SD_Level[SD_Index]] x 0.01))
Set SD_TempIntDamage = ((Real((Intelligence of SD_Caster[SD_Index] (Include bonuses)))) x (SD_IntelligenceDamage[SD_Level[SD_Index]] x 0.01))
Set SD_Damage[SD_Index] = ((SD_TempStrDamage + SD_TempAgiDamage) + (SD_TempIntDamage + SD_AbsoluteDamage[SD_Level[SD_Index]]))
-------- - --------
-------- create projectile --------
Unit - Create 1 SD_DummyType for Neutral Passive at SD_Point1 facing SD_Angle[SD_Index] degrees
Set SD_DaggerUnit[SD_Index] = (Last created unit)
Custom script: call RemoveLocation(udg_SD_Point1)
Unit - Add Storm Crow Form to SD_DaggerUnit[SD_Index]
Unit - Remove Storm Crow Form from SD_DaggerUnit[SD_Index]
Set SD_PlaceHolder = SD_DaggerUnit[SD_Index]
Special Effect - Create a special effect attached to the origin of SD_DaggerUnit[SD_Index] using SD_DaggerModel
Set SD_DaggerEffect[SD_Index] = (Last created special effect)
-------- - --------
-------- run effect --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
SD_Index Equal to 1
Then - Actions
Trigger - Turn on Shadow of Dread Effect <gen>
Else - Actions
-------- - --------
-------- pre calculate angle --------
Set SD_CrowCounter = SD_CrowCount[SD_Level[SD_Index]]
Set SD_AngleAdjustment = (360.00 / (Real(SD_CrowCounter)))
Set SD_TempAngle = SD_Angle[SD_Index]
For each (Integer SD_Looper) from 1 to SD_CrowCounter, do (Actions)
Loop - Actions
-------- - --------
-------- indexing --------
Set SD_Index = (SD_Index + 1)
Set SD_Caster[SD_Index] = SD_TempCaster
Set SD_Player[SD_Index] = SD_TempPlayer
Set SD_Level[SD_Index] = SD_TempLevel
-------- - --------
-------- angle and distance --------
Set SD_Angle[SD_Index] = SD_TempAngle
Set SD_TempAngle = (SD_TempAngle - SD_AngleAdjustment)
Set SD_MaxDistance[SD_Index] = SD_TempDistance
Set SD_CrowDistance[SD_Index] = (SD_SafeAoE[SD_Level[SD_Index]] + (SD_CrowAoE[SD_Level[SD_Index]] / 2.00))
-------- - --------
-------- initialize values --------
Set SD_TimeLeft[SD_Index] = SD_DamageDelay[SD_Level[SD_Index]]
Set SD_ActionId[SD_Index] = 1
Set SD_CurrentHeight[SD_Index] = 0.00
Set SD_CurrentDistance[SD_Index] = 0.00
Set SD_Flag[SD_Index] = True
Set SD_DaggerUnit[SD_Index] = SD_PlaceHolder
Shadow of Dread Effect
Events
Time - Every 0.03 seconds of game time
Conditions
Actions
For each (Integer SD_Looper) from 1 to SD_Index, do (Actions)
Loop - Actions
-------- - --------
-------- stage 1: dagger is flying --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
SD_CurrentDistance[SD_Looper] Less than SD_MaxDistance[SD_Looper]
Then - Actions
-------- - --------
-------- moves the dagger --------
Set SD_CurrentDistance[SD_Looper] = (SD_CurrentDistance[SD_Looper] + SD_DaggerSpeed[SD_Level[SD_Looper]])
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
SD_ActionId[SD_Looper] Equal to 0
Then - Actions
Set SD_CurrentHeight[SD_Looper] = (SD_MaxHeight[SD_Level[SD_Looper]] - ((SD_CurrentDistance[SD_Looper] / SD_MaxDistance[SD_Looper]) x SD_MaxHeight[SD_Level[SD_Looper]]))
Animation - Change SD_DaggerUnit[SD_Looper] flying height to SD_CurrentHeight[SD_Looper] at 0.00
Set SD_Point1 = (Position of SD_DaggerUnit[SD_Looper])
Set SD_Point2 = (SD_Point1 offset by SD_DaggerSpeed[SD_Level[SD_Looper]] towards SD_Angle[SD_Looper] degrees)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
SD_Flag[SD_Looper] Equal to True
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
SD_ActionId[SD_Looper] Equal to 0
Then - Actions
-------- - --------
-------- change special effect --------
Special Effect - Destroy SD_DaggerEffect[SD_Looper]
Special Effect - Create a special effect attached to the origin of SD_DaggerUnit[SD_Looper] using SD_SafeAreaModel2
Set SD_DaggerEffect[SD_Looper] = (Last created special effect)
Special Effect - Create a special effect attached to the origin of SD_DaggerUnit[SD_Looper] using SD_SafeAreaModel1
Set SD_AreaEffect[SD_Looper] = (Last created special effect)
Animation - Change SD_DaggerUnit[SD_Looper]'s size to (SD_TargetModelSize[SD_Level[SD_Looper]]%, SD_TargetModelSize[SD_Level[SD_Looper]]%, SD_TargetModelSize[SD_Level[SD_Looper]]%) of its original size
Else - Actions
-------- - --------
-------- create crows --------
Set SD_Point1 = (Position of SD_DaggerUnit[SD_Looper])
Set SD_Point2 = (SD_Point1 offset by SD_CrowDistance[SD_Looper] towards SD_Angle[SD_Looper] degrees)
Unit - Create 1 SD_DummyType for Neutral Passive at SD_Point2 facing SD_Angle[SD_Looper] degrees
Set SD_CrowUnit[SD_Looper] = (Last created unit)
Custom script: call RemoveLocation(udg_SD_Point1)
Custom script: call RemoveLocation(udg_SD_Point2)
Set SD_TempAngle = (SD_Angle[SD_Looper] + 90.00)
Unit - Make SD_CrowUnit[SD_Looper] face SD_TempAngle over 0.00 seconds
Special Effect - Create a special effect attached to the origin of SD_CrowUnit[SD_Looper] using SD_ShadowModel
Set SD_DaggerEffect[SD_Looper] = (Last created special effect)
Special Effect - Create a special effect attached to the origin of SD_CrowUnit[SD_Looper] using SD_CrowModel
Set SD_AreaEffect[SD_Looper] = (Last created special effect)
Unit - Add Storm Crow Form to SD_CrowUnit[SD_Looper]
Unit - Remove Storm Crow Form from SD_CrowUnit[SD_Looper]
Animation - Change SD_CrowUnit[SD_Looper] flying height to (Random real number between SD_CrowMinimum and SD_CrowMaximum) at 0.00
Animation - Change SD_CrowUnit[SD_Looper]'s vertex coloring to (SD_Red%, SD_Green%, SD_Blue%) with 0.00% transparency
Animation - Change SD_CrowUnit[SD_Looper]'s size to (SD_CrowModelSize[SD_Level[SD_Looper]]%, SD_CrowModelSize[SD_Level[SD_Looper]]%, SD_CrowModelSize[SD_Level[SD_Looper]]%) of its original size
Else - Actions
-------- - --------
-------- notify --------
Set SD_Flag[SD_Looper] = False
-------- - --------
-------- stage 2: dagger has landed --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
SD_Flag[SD_Looper] Equal to False
Then - Actions
-------- - --------
-------- checks the delay --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
SD_TimeLeft[SD_Looper] Greater than 0.00
Then - Actions
-------- - --------
Set SD_TimeLeft[SD_Looper] = (SD_TimeLeft[SD_Looper] - 0.03)
-------- - --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
SD_ActionId[SD_Looper] Equal to 0
Then - Actions
Set SD_Point1 = (Position of SD_DaggerUnit[SD_Looper])
Set SD_DamageGroup = (Units within (SD_SafeAoE[SD_Level[SD_Looper]] + SD_CrowAoE[SD_Level[SD_Looper]]) of SD_Point1)
Set SD_SafeGroup = (Units within SD_SafeAoE[SD_Level[SD_Looper]] of SD_Point1)
Unit Group - Remove all units of SD_SafeGroup from SD_DamageGroup
Custom script: call RemoveLocation(udg_SD_Point1)
Unit - Set level of SD_SlowAbility for SD_Dummy to SD_Level[SD_Looper]
-------- - --------
-------- slow units near the area --------
Unit Group - Pick every unit in SD_DamageGroup and do (Actions)
Loop - Actions
Set SD_PickedUnit = (Picked unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(SD_PickedUnit is A structure) Equal to False
(SD_PickedUnit is Magic Immune) Equal to False
(SD_PickedUnit is Mechanical) Equal to False
(SD_PickedUnit is alive) Equal to True
(SD_PickedUnit belongs to an enemy of SD_Player[SD_Looper]) Equal to True
(SD_PickedUnit has buff SD_SlowBuff) Equal to False
Set SD_DamageGroup = (Units within SD_SafeAoE[SD_Level[SD_Looper]] of SD_Point1)
Custom script: call RemoveLocation(udg_SD_Point1)
Unit Group - Pick every unit in SD_DamageGroup and do (Actions)
Loop - Actions
Set SD_PickedUnit = (Picked unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(SD_PickedUnit is A structure) Equal to False
(SD_PickedUnit is Magic Immune) Equal to False
(SD_PickedUnit is Mechanical) Equal to False
(SD_PickedUnit is alive) Equal to True
(SD_PickedUnit belongs to an enemy of SD_Player[SD_Looper]) Equal to True
Then - Actions
Unit - Cause SD_Caster[SD_Looper] to damage SD_PickedUnit, dealing SD_Damage[SD_Looper] damage of attack type SD_AttackType and damage type SD_DamageType
Special Effect - Create a special effect attached to the SD_UnitAttach of SD_PickedUnit using SD_ExplosionModel
Special Effect - Destroy (Last created special effect)
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.