Well i can code this in JASS, you wouldn't have to understand what the code means, just have to follow import instructions i put in, could add various configurables which are easy to edit too...
Edit: Would you want the caster to be invulnerable till the finish?