Changed implementation of SpellCastControl to implementation that is more readable and might have better performance.

Meteor and Leap now respect spell's range