handle spellcasting through monster.castSpell