refactor: extract switch in make_attack_spell