I went over the code a couple times and I found quite a lot of problems and I figured this would be enough to list to get started, if you have any questions feel free to PM me and I'll see if I can help
Major:
- Lacks a configuration
- You have two triggers with the same event and the same stop conditions, they could be merged
- We tend to advise against using custom values of units except in the case of standardised systems like unit indexers
- You can add dummies to the Nova_Group when they're created instead of having to re select the units every iteration, if you remove them when they die then it won't cause a leak
- Variable use to store temporary values that are used more than once should be done
- (Level of Nova for (Triggering unit)) is referenced in your periodic trigger - this will return 0 if another event is fired during the course of the ability since triggering unit will change
- Spells should avoid messing up the endgame scorescreen, to that effect we try to make dummy units owned by a neutral player
- Spell damage should mimic game mechanics: The origin of damage dealt by the spell should be the caster of the spell
Minor:
- You don't need to use an array of locations, at most at any given time you need two which could easily be separate location variables (at the least the indexes 0 and 1 could be reused, the location array assigns a lot of extra memory
- When setting model scales you can set the last two values to be 0., it does the same thing and saves a few mathematical operations
- You turn the periodic trigger on every time you cast the ability, even if it's already turned on which is pretty inefficient
- Utilising Dummy.mdl would enable you to use one dummy unit instead of many for the spell and simply attach the required model and apply the abilities to them
- Dying unit can be replaced with triggering unit