• 🏆 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!

Soul Shock

This bundle is marked as awaiting update. A staff member has requested changes to it before it can be approved.
My very first spell, Soul Shock (MUI)

Your hero deals damage to enemy units nearby every x seconds. This spell effect lasts a few seconds.Level 1 - Deals 20 damage every second to enemies within 500 range, and spell lasts 4 seconds.Level 2 - Deals 30 damage every 0.80 second to enemies within 575 range, and spell lasts 5 seconds.Level 3 - Deals 40 damage every 0.60 second to enemies within 650 range, and spell lasts 6 seconds.

Credits for BloodSoul for making this spell MUI
Credits for Dr Super Good for some help on the triggers.
Contents

Soul Shock (Map)

Level 37
Joined
Jul 22, 2015
Messages
3,485

Needs Fixed

  • Your description is lacking. Please include the triggers & "how to install" instructions. You will need to include both credits and "how to install" instructions in the map as well
  • Some of your variable names are way too generic (ex: tmp_int, tpoint, int). Please change them to something more descriptive so users know what variables belong to what spell / system
  • As mentioned by LordDz, stunning the caster doesn't interrupt the spell instance. It doesn't fit the normal WC3 mechanics, so unless this is intentional, this should be a required fix

Suggestions

  • The Variable creator trigger is not necessary. The only time you have to make one of these is if the global variable is used ONLY in JASS (a custom script OR if entire code is in JASS)
  • I see no purpose of temporarily storing SS__index_size into tmp_int
  • When calculating damage, duration, radius, and interval_max, you constantly convert int[0] into a real. You can just store int[0] into a real, meaning you only convert it once, and then reference that variable instead
  • Given that the angles at which the lightnings are created are constant, but relevant to the level of the ability, you can calculate these angles on map init instead of everytime on cast
  • The alpha value of the lightning can be added as a configurable because why not
  • All thought it makes sense to start the loop at 0, you never store anything into index 0, so it's kind of useless
  • Since the caster doesn't move during the channel period, you can store the location of the caster on cast rather than everytime you need to deal damage in an area
  • Unit Group - Units In Range has a reference leak
  • You can store the (Owner of SS_caster[]) before the unit group loop so you don't have to repeat the function call per unit group loop iteration
  • Turn off (This trigger) > Turn off Soul Shock Loop <gen> because why not
  • SS is a bit generic for a variable prefix. This can cause issues if the user happens to have the same prefix in their map

Status

Awaiting Update
 
Top