Well you can create a set for your attack's effect, And create a persistent to start the effect. 1 for each range... then tie validators to the effects to make them only fire if they are at a certain range... You can set an initial delay to the persistent so that the effect will not start until x ammount of time.
So it would look like: Ability; Effect - Target > Set Artillery Attack > Persistent01;Persistent02;Persistent03;Persistent04; Persistent01: Initial delay - 1.000; Validators; LocRange - LessThan9; LocRange - GreaterThan5 Persistent02: Initial delay - 3.000; Validators; LocRange - LessThan15; LocRange - GreaterThan9 Persistent03: Initial delay - 5.000; Validators; LocRange - LessThan20; LocRange - GreaterThan15 Persistent04: Initial delay - 7.000; Validators; LocRange - LessThan30; LocRange - GreaterThan20
The set would call each effect, and would want to create the attack 4 times, but each persistent would only be allowed to fire if their validator is correct, otherwise the persistent would die... leaving only 1 to fire should it meet the requirements. Each periodic would do the same thing, except have a different intial delay.
Now that part is easy... I can't seem to get a Siege Tank in Siege mode to cast spells for me at all; except they will in some random spot within their range and nowhere else.