Generalized spellcasting code in order to start work on other kinds of
spells