Great Tornado
Very well put together spell. I really don't care about what units are allowed to be affected since that is so easy to change it's not even worth mentioning. From what I can see you've cleaned up all of your handles to an extent that is perfectly acceptable. I'm not sure whether or not you experienced bugs before uploading the spell, but I thought
for sure I would catch you in a few places that I did not. Good job.
- I don't know what the standard on using groups in GUI is, but they always leak. Since you are constantly creating/destroying groups (for each spell cast) it may cause a lot of memory to be unnecessarily allocated. Again, I don't know the GUI standard for this.
- Since you are using custom script for creating/destroying your tornado/damage groups, you could easily import the "GroupUtils" library by
Rising_Dusk and use "NewGroup()" and "ReleaseGroup()", respectively.
- You clean your unit groups very well, and transfer the units from each group appropriately. I thought I would catch you on this one, so good job
-
Set GT_CastCount = (GT_CastCount + 1)
- The above trigger can be moved down to the bottom of the trigger so that the arrays start at index 0 rather than 1. There is no reason you need the 0 index so you might as well. Remember that you can also start your loop in the "GT Loop" trigger at 0 instead of 1 (as well as your "GT End" trigger).
- Don't use unit classification to determine whether or not you need to increase/decrease the tornado height. You already have your parallel array setup so just use a boolean array. It would probably be more efficient since a boolean is evaluated faster than a function is, or two for that matter ("Picked unit" is also a function-call).
- You could add configuration values for the maximum/minimum height values.