Just a few minor issues remaining:
- There already is a max collision size constant in xebasic, no need to have another one in your spell.
- You should use a local trigger variable instead of the GUI global, so users don't have to get the trigger name exactly right.
- tx and ty could have been local variables instead of struct members, which are a bit less efficient.
- The same is true for the .a member, like tx and ty you calculate it in loopfunc every time so there's no need to store it.
- With that in mind, the EventTargetLib is kind of unneeded since the only thing it shortened in the spell code was the angle calculation.
- You forgot to include a IsUnitInRangeXY check in the enum function.
- You never use temploc. I assume you meant to use it for the IsUnitInRange check but you could just reuse the GG_Distance's members for that instead.