За такой вот if из "over 9000" элементов я сотрудникам своим руки бы оторвал напрочь
В spell_proc_event можно на самом деле задавать маску на базе флагов нужных спеллов. Почитайте wiki на эту тему.
Для поиска флагов кто чем пользуется. Кому-то SpellWork нравится, я в mysql перегнал Spell.dbc и с ним работаю, ибо возможности формирования условий фильтрации шире намного.