• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Zephyr Contest #13 - Deception

Status
Not open for further replies.
Level 22
Joined
Feb 6, 2014
Messages
2,466
Yes, because your entry will only be judged when contest time/poll is over.
It does not matter if you post your entry after 10 days, or at the very end.

I personaly would not post it too early, because you mostly will anyway
still work on it and change some minor things before contest ends.

Btw, you guys put really much effort into the presentation! It looks good.
Isn't it better to update before the poll starts not before the judging?

Make sense.

I just copied Tank-Commander's template ;)
And I have no GIFs
 
Level 9
Joined
Oct 14, 2013
Messages
238
Ok Here is my first WIP:
Finished the description and icon.
Finished the Hero and the spawned units.
Finished the first part of the spell which your hero casts two spheres around his target and the spheres start to rotate around it.
Debugged some conflicts between multiple targets.
So far so good :) I think one third of the work is done!
here's some pics of casting and spell descriptions and codes!
 

Attachments

  • Casting and the Effects.png
    Casting and the Effects.png
    758.8 KB · Views: 76
  • Codes.png
    Codes.png
    66.5 KB · Views: 96
  • Description.png
    Description.png
    146.8 KB · Views: 85
Level 13
Joined
Jun 20, 2014
Messages
479
WIP Post: Empirean Shadow of Dread

Description

Throws a magical dagger to attract crows causing them to fly in circles slowing nearby enemies. After a short delay enemies outside the area are damaged and are held in place.
Tips and Tricks

- Place it exactly on your enemy's position. If he doesn't know how it works he will run away and get caught by the damage holding him in place.
- Place it exactly on your enemy's position. If he does know how it works he will stay in the center allowing you to escape or cast your other more damaging abilities.
- Place it near your enemy's position to implicitly force him to move inward or outward the area. Use it in a way to place him on a bad position.
- You can also cast it just like a normal AoE damage spell if the damage delay becomes very low.
- This is a flashy spell. You might wanna cast it alot.
- This requires some skill to master. You might need some practice.
Triggers

  • Shadow of Dread Init
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- - --------
      • -------- determines the Crow's Deathfall 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 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)
      • -------- - --------
      • -------- 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_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)



  • 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
      • -------- - --------
      • -------- 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_TempLooper) 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)
                  • Custom script: call SetUnitX(udg_SD_DaggerUnit[udg_SD_Looper], GetLocationX(udg_SD_Point2))
                  • Custom script: call SetUnitY(udg_SD_DaggerUnit[udg_SD_Looper], GetLocationY(udg_SD_Point2))
                  • Custom script: call RemoveLocation(udg_SD_Point1)
                  • Custom script: call RemoveLocation(udg_SD_Point2)
                • Else - Actions
            • Else - Actions
              • -------- - --------
              • -------- dagger has landed --------
              • 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
                            • Then - Actions
                              • Set SD_Point1 = (Position of SD_PickedUnit)
                              • Custom script: call SetUnitX(udg_SD_Dummy, GetLocationX(udg_SD_Point1))
                              • Custom script: call SetUnitY(udg_SD_Dummy, GetLocationY(udg_SD_Point1))
                              • Custom script: call RemoveLocation(udg_SD_Point1)
                              • Unit - Order SD_Dummy to Undead Necromancer - Cripple SD_PickedUnit
                            • Else - Actions
                              • Set SD_PickedUnit = No unit
                      • Custom script: call DestroyGroup(udg_SD_DamageGroup)
                      • Custom script: call DestroyGroup(udg_SD_SafeGroup)
                    • Else - Actions
                      • -------- - --------
                      • -------- rotate crows --------
                      • Set SD_Angle[SD_Looper] = (SD_Angle[SD_Looper] + SD_TurnRate[SD_Level[SD_Looper]])
                      • Set SD_TempAngle = (SD_Angle[SD_Looper] + 90.00)
                      • Unit - Make SD_CrowUnit[SD_Looper] face SD_TempAngle over 0.00 seconds
                      • 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)
                      • Custom script: call SetUnitX(udg_SD_CrowUnit[udg_SD_Looper], GetLocationX(udg_SD_Point2))
                      • Custom script: call SetUnitY(udg_SD_CrowUnit[udg_SD_Looper], GetLocationY(udg_SD_Point2))
                      • Custom script: call RemoveLocation(udg_SD_Point1)
                      • Custom script: call RemoveLocation(udg_SD_Point2)
                • Else - 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
                      • -------- - --------
                      • -------- deal damage and hold enemies --------
                      • 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_HoldAbility for SD_Dummy to SD_Level[SD_Looper]
                      • 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)
                              • Set SD_Point1 = (Position of SD_PickedUnit)
                              • Custom script: call SetUnitX(udg_SD_Dummy, GetLocationX(udg_SD_Point1))
                              • Custom script: call SetUnitY(udg_SD_Dummy, GetLocationY(udg_SD_Point1))
                              • Custom script: call RemoveLocation(udg_SD_Point1)
                              • Unit - Order SD_Dummy to Night Elf Keeper Of The Grove - Entangling Roots SD_PickedUnit
                            • Else - Actions
                              • Set SD_PickedUnit = No unit
                      • -------- - --------
                      • -------- clean up --------
                      • Custom script: call DestroyGroup(udg_SD_DamageGroup)
                      • Custom script: call DestroyGroup(udg_SD_SafeGroup)
                      • Special Effect - Destroy SD_AreaEffect[SD_Looper]
                      • Special Effect - Destroy SD_DaggerEffect[SD_Looper]
                      • Unit - Add a 0.01 second Generic expiration timer to SD_DaggerUnit[SD_Looper]
                    • Else - Actions
                      • -------- - --------
                      • -------- clean up --------
                      • Special Effect - Destroy SD_AreaEffect[SD_Looper]
                      • Special Effect - Destroy SD_DaggerEffect[SD_Looper]
                      • Unit - Add a 0.01 second Generic expiration timer to SD_CrowUnit[SD_Looper]
                      • Unit - Add a 0.01 second Generic expiration timer to SD_DaggerUnit[SD_Looper]
                  • Set SD_ActionId[SD_Looper] = 3
            • Else - Actions
          • -------- - --------
          • -------- stage 3: deindex --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • SD_ActionId[SD_Looper] Equal to 3
            • Then - Actions
              • Set SD_ActionId[SD_Looper] = SD_ActionId[SD_Index]
              • Set SD_Angle[SD_Looper] = SD_Angle[SD_Index]
              • Set SD_Caster[SD_Looper] = SD_Caster[SD_Index]
              • Set SD_CurrentDistance[SD_Looper] = SD_CurrentDistance[SD_Index]
              • Set SD_CurrentHeight[SD_Looper] = SD_CurrentHeight[SD_Index]
              • Set SD_DaggerEffect[SD_Looper] = SD_DaggerEffect[SD_Index]
              • Set SD_DaggerUnit[SD_Looper] = SD_DaggerUnit[SD_Index]
              • Set SD_Damage[SD_Looper] = SD_Damage[SD_Index]
              • Set SD_Flag[SD_Looper] = SD_Flag[SD_Index]
              • Set SD_Level[SD_Looper] = SD_Level[SD_Index]
              • Set SD_CrowDistance[SD_Looper] = SD_CrowDistance[SD_Index]
              • Set SD_MaxDistance[SD_Looper] = SD_MaxDistance[SD_Index]
              • Set SD_Player[SD_Looper] = SD_Player[SD_Index]
              • Set SD_AreaEffect[SD_Looper] = SD_AreaEffect[SD_Index]
              • Set SD_CrowUnit[SD_Looper] = SD_CrowUnit[SD_Index]
              • Set SD_TimeLeft[SD_Looper] = SD_TimeLeft[SD_Index]
              • Set SD_Looper = (SD_Looper - 1)
              • Set SD_Index = (SD_Index - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SD_Index Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
            • Else - Actions

Screenshots


Shadow of Dread Learn Tooltip.png



Shadow of Dread Level 1.png



Shadow of Dread Damage Dealt.png
Shadow of Dread Dagger Throw.png

Wip Links
Important

Note: To moderators, please link this one as my Entry Post
On Other News: I've posted earlier with similar contents but i cancelled it cause i forgot something. Turns out it was still posted so i end up with a double post. Ive deleted the other post. Now as i edit this one all the attachments are gone. I hope the attachments are in a safe place now.
 

Attachments

  • Empirean Shadow of Dread.w3x
    50.4 KB · Views: 55
Last edited:
Level 13
Joined
Jun 20, 2014
Messages
479
The ability implies that you should stay on the center to avoid debuff and damage. Its a deception because most spells damages enemies inside the target area so the normal reaction is to move away from the center thus getting caught by the damage and hold. This is also a deception in a way that it implies that the enemy must move inward or outward throwing him on a bad position. Im having a second thought about a high damage and long debuff as a penalty for being caught. Maybe ill post one more update if i have the time. But for now thats all i can say about the deception spell.
 
Level 37
Joined
Jul 22, 2015
Messages
3,485
Yup thats the problem. The damage delay time lowers with each level to compensate. Thats all for now.

I love the idea empirean, but it doesn't really fit the theme. Maybe making it so that you can select random dagger locations all with the same effect, but only one of them will actually punish the enemy if they walk outside of it?
 
Level 13
Joined
Jun 20, 2014
Messages
479
The best combo for this one is a spell that teleports the caster to the center of the target area. Upon teleporting the crows are cancelled and the damage is dealt immediately but the damage dealt is lower compared to the actual damage and armor reduction is applied. But the problem is the tooltip is very long. Users wont like it.
 
We've got a lot of entries this time around, makes a nice change from the previous with potentially a few more in these last 3-4 days

The best one (and should score the highest points for concept) is the Permanent Deception.
Fixed - Coding is still more important, it should also be noted that making an actually useful ability is better than an outright deceptive one which isn't - nobody would use an ability that is generally just not very useful and Empirean's is pretty useful (not that usefulness is better than no deception of course, rather that a useful non-permanent deception is better than a permanent deception which is not useful in my opinion)
 
Level 22
Joined
Feb 6, 2014
Messages
2,466
Fixed - Coding is still more important, it should also be noted that making an actually useful ability is better than an outright deceptive one which isn't - nobody would use an ability that is generally just not very useful and Empirean's is pretty useful (not that usefulness is better than no deception of course, rather that a useful non-permanent deception is better than a permanent deception which is not useful in my opinion)

I agree, coding is more important but a spell's usefulness depends on the concept more than the coding. But a Permanent Deception have a large advantage than Temporary Deception in the terms of Concept that it a slightly bad coded Permanent Spell can win against an average coded Temporary Spell in my opinion..
 
Level 13
Joined
Jun 20, 2014
Messages
479
Hello, i thought of something to make my entry permanent. Turns out teleporting the caster is a very bad idea. Ill just give the caster another ability when the ability is cast. The new ability allows the caster to change the effect of the spell to damage the center instead of the outer layer. Also i dont want to ruin the concept... so, the damage delay still applies the only thing that will change is that the damage will be dealt inside the area instead of the outer layer. The spell now becomes a mental game between the caster and the enemy. Man the spell theme is very challenging. I will be posting my updates shortly.

Edit: Turns out adding ability with the same skill slot is hard.
 
Last edited:

Ardenian

A

Ardenian

I managed to add all deception effects to my spell idea, but the invisibility refuses to work appropriate. If the invisibility works correctly, the special effects refuse to work and the other way around. Ah, I will see....
 
Level 13
Joined
Jun 20, 2014
Messages
479
Final Entry Post: Empirean's Shadow of Dread

Description

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
Triggers


  • 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)
                  • Custom script: call SetUnitX(udg_SD_DaggerUnit[udg_SD_Looper], GetLocationX(udg_SD_Point2))
                  • Custom script: call SetUnitY(udg_SD_DaggerUnit[udg_SD_Looper], GetLocationY(udg_SD_Point2))
                  • Custom script: call RemoveLocation(udg_SD_Point1)
                  • Custom script: call RemoveLocation(udg_SD_Point2)
                • Else - Actions
            • Else - Actions
              • -------- - --------
              • -------- dagger has landed --------
              • 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
                            • Then - Actions
                              • Set SD_Point1 = (Position of SD_PickedUnit)
                              • Custom script: call SetUnitX(udg_SD_Dummy, GetLocationX(udg_SD_Point1))
                              • Custom script: call SetUnitY(udg_SD_Dummy, GetLocationY(udg_SD_Point1))
                              • Custom script: call RemoveLocation(udg_SD_Point1)
                              • Unit - Order SD_Dummy to Undead Necromancer - Cripple SD_PickedUnit
                            • Else - Actions
                              • Set SD_PickedUnit = No unit
                      • Custom script: call DestroyGroup(udg_SD_DamageGroup)
                      • Custom script: call DestroyGroup(udg_SD_SafeGroup)
                    • Else - Actions
                      • -------- - --------
                      • -------- rotate crows --------
                      • Set SD_Angle[SD_Looper] = (SD_Angle[SD_Looper] + SD_TurnRate[SD_Level[SD_Looper]])
                      • Set SD_TempAngle = (SD_Angle[SD_Looper] + 90.00)
                      • Unit - Make SD_CrowUnit[SD_Looper] face SD_TempAngle over 0.00 seconds
                      • 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)
                      • Custom script: call SetUnitX(udg_SD_CrowUnit[udg_SD_Looper], GetLocationX(udg_SD_Point2))
                      • Custom script: call SetUnitY(udg_SD_CrowUnit[udg_SD_Looper], GetLocationY(udg_SD_Point2))
                      • Custom script: call RemoveLocation(udg_SD_Point1)
                      • Custom script: call RemoveLocation(udg_SD_Point2)
                • Else - 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
                      • -------- - --------
                      • -------- deal damage and hold enemies --------
                      • Unit - Set level of SD_HoldAbility for SD_Dummy to SD_Level[SD_Looper]
                      • Set SD_Point1 = (Position of SD_DaggerUnit[SD_Looper])
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • SD_IsOutward[SD_Looper] Equal to True
                        • Then - Actions
                          • 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 DestroyGroup(udg_SD_SafeGroup)
                        • Else - Actions
                          • 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)
                              • Set SD_Point1 = (Position of SD_PickedUnit)
                              • Custom script: call SetUnitX(udg_SD_Dummy, GetLocationX(udg_SD_Point1))
                              • Custom script: call SetUnitY(udg_SD_Dummy, GetLocationY(udg_SD_Point1))
                              • Custom script: call RemoveLocation(udg_SD_Point1)
                              • Unit - Order SD_Dummy to Night Elf Keeper Of The Grove - Entangling Roots SD_PickedUnit
                            • Else - Actions
                              • Set SD_PickedUnit = No unit
                      • Custom script: call DestroyGroup(udg_SD_DamageGroup)
                      • Special Effect - Destroy SD_AreaEffect[SD_Looper]
                      • Special Effect - Destroy SD_DaggerEffect[SD_Looper]
                      • Unit - Add a 0.01 second Generic expiration timer to SD_DaggerUnit[SD_Looper]
                    • Else - Actions
                      • -------- - --------
                      • -------- clean up --------
                      • Special Effect - Destroy SD_AreaEffect[SD_Looper]
                      • Special Effect - Destroy SD_DaggerEffect[SD_Looper]
                      • Unit - Add a 0.01 second Generic expiration timer to SD_CrowUnit[SD_Looper]
                      • Unit - Add a 0.01 second Generic expiration timer to SD_DaggerUnit[SD_Looper]
                  • Set SD_ActionId[SD_Looper] = 3
            • Else - Actions
          • -------- - --------
          • -------- stage 3: deindex --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • SD_ActionId[SD_Looper] Equal to 3
            • Then - Actions
              • Set SD_ActionId[SD_Looper] = SD_ActionId[SD_Index]
              • Set SD_Angle[SD_Looper] = SD_Angle[SD_Index]
              • Set SD_Caster[SD_Looper] = SD_Caster[SD_Index]
              • Set SD_CurrentDistance[SD_Looper] = SD_CurrentDistance[SD_Index]
              • Set SD_CurrentHeight[SD_Looper] = SD_CurrentHeight[SD_Index]
              • Set SD_DaggerEffect[SD_Looper] = SD_DaggerEffect[SD_Index]
              • Set SD_DaggerUnit[SD_Looper] = SD_DaggerUnit[SD_Index]
              • Set SD_Damage[SD_Looper] = SD_Damage[SD_Index]
              • Set SD_Flag[SD_Looper] = SD_Flag[SD_Index]
              • Set SD_Level[SD_Looper] = SD_Level[SD_Index]
              • Set SD_CrowDistance[SD_Looper] = SD_CrowDistance[SD_Index]
              • Set SD_MaxDistance[SD_Looper] = SD_MaxDistance[SD_Index]
              • Set SD_Player[SD_Looper] = SD_Player[SD_Index]
              • Set SD_AreaEffect[SD_Looper] = SD_AreaEffect[SD_Index]
              • Set SD_CrowUnit[SD_Looper] = SD_CrowUnit[SD_Index]
              • Set SD_TimeLeft[SD_Looper] = SD_TimeLeft[SD_Index]
              • Set SD_IsOutward[SD_Looper] = SD_IsOutward[SD_Index]
              • Set SD_Looper = (SD_Looper - 1)
              • Set SD_Index = (SD_Index - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • SD_Index Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
            • Else - Actions



  • Shadow of Dread Learn
    • Events
      • Unit - A unit Learns a skill
    • Conditions
      • (Level of SD_CasterAbility for (Triggering unit)) Equal to 1
    • Actions
      • Set SD_TempCaster = (Triggering unit)
      • 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_TempCaster
        • Else - Actions
          • Unit - Add SD_InwardAbility to SD_TempCaster



  • Shadow of Dread Unlearn
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • (Level of SD_InwardAbility for (Triggering unit)) Equal to 1
          • (Level of SD_OutwardAbility for (Triggering unit)) Equal to 1
    • Actions
      • -------- - --------
      • -------- conditions are placed on the trigger to avoid firing inappropriately --------
      • Set SD_TempCaster = (Triggering unit)
      • For each (Integer SD_Looper) from 1 to SD_UnlearnTotal, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Ability being cast) Equal to SD_UnlearnList[SD_Looper]
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Level of SD_OutwardAbility for SD_TempCaster) Equal to 1
                • Then - Actions
                  • Unit - Remove SD_OutwardAbility from SD_TempCaster
                • Else - Actions
                  • Unit - Remove SD_InwardAbility from SD_TempCaster
            • Else - Actions



  • Shadow of Dread Switcher
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • (Ability being cast) Equal to SD_OutwardAbility
          • (Ability being cast) Equal to SD_InwardAbility
    • Actions
      • Set SD_TempCaster = (Triggering unit)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Ability being cast) Equal to SD_OutwardAbility
        • Then - Actions
          • Unit - Remove SD_OutwardAbility from SD_TempCaster
          • Unit - Add SD_InwardAbility to SD_TempCaster
        • Else - Actions
          • Unit - Remove SD_InwardAbility from SD_TempCaster
          • Unit - Add SD_OutwardAbility to SD_TempCaster

Screenshots


Learn Tooltip.png
Level1.png
Outward.png
Inward.png



Throw.png
Effect.png
Outward Blast.png
Inner Blast.png


Important

Note: To moderators, please link this one as my Final Entry Post
Question

Where do attachments go if the connection is lost? I have a very bad connection so it happens alot to me.
 

Attachments

  • Empirean Shadow of Dread.w3x
    61.9 KB · Views: 50
Last edited:

Ardenian

A

Ardenian

Yee-.. I mean What ? Why ?

Isn't deception as important as the SFX ?
 
So making a good spell that has nothing to do with the contest theme is better than a spell that has something to do with the theme, but is crap?

Wut

I don't even

Clearly didn't read the part immediately after that
Tank-Commander said:
(not that usefulness is better than no deception of course, rather that a useful non-permanent deception is better than a permanent deception which is not useful in my opinion)
 

Ardenian

A

Ardenian

Just to ensure myself, what is 'focus on coding' supposed to mean ?

Using the most efficient options, make sure everything runs smooth, taking care of little issues, (...) ?
 
Level 37
Joined
Jul 22, 2015
Messages
3,485
Just to ensure myself, what is 'focus on coding' supposed to mean ?

Using the most efficient options, make sure everything runs smooth, taking care of little issues, (...) ?

CodingIs the skill bug- and leak-free? Does it support multiple instances? Is there a good documentation and are there enough configurable variables to fit the needs of different user? Does it cause performance issues upon effect? Is the code fitting for a decent spell submission, or is it too simple?/25
 
Level 22
Joined
Feb 6, 2014
Messages
2,466
Just to ensure myself, what is 'focus on coding' supposed to mean ?

Using the most efficient options, make sure everything runs smooth, taking care of little issues, (...) ?

This .
Is the skill bug- and leak-free? Does it support multiple instances? Is there a good documentation and are there enough configurable variables to fit the needs of different user? Does it cause performance issues upon effect? Is the code fitting for a decent spell submission, or is it too simple?

EDIT: lol Killcide is seconds (or a second??) faster
 

Ardenian

A

Ardenian

Oh... I wouldn't have thought you refer to the judging category. Thanks!
 

Ardenian

A

Ardenian

Yo guys, think of the deadline.
Oh no, I forgot about it. I should manage it though.

Does 'conclude on the 6th of October' means 5th of October 24.00 pm is the final second ?
Or do we have time the whole 6th, too ?
 

Ardenian

A

Ardenian

Final WIP Trance by Ardenian

Alright, here is my final WIP. I only have to fix leaks, do some testing, design tooltips and write the final entry BB code and create the presentation.
 

Attachments

  • ZephyContest13_Trance_byArdenian.w3x
    19.1 KB · Views: 51
Level 23
Joined
Apr 16, 2012
Messages
4,041
something a bit more showy, like a code, or a map :D it never hurts to post it, at the end it is a competition, you dont have to worry about theft(because you have clear proof of your post date) and it is literally 26 hours till the end of the competition, so people arent very likely to join in :D
 
Status
Not open for further replies.
Top