Der Weg über die effects selber halte ich für ziemlich aufwändig. Meiner Meinung nach müsste man jeden Effekt doppeln und in den original-Effekt ein script setzen, was den type abfragt und dann nur bei den gültigen types einen zweiten Effekt auslöst, der dann das bewirkt, was der Effekt bewirken soll.
type abfragen könnte/müsste über getCharAttribute("type") gehen. vielleicht
Ich setze das mal bei Chris auf die todo-Liste das direkt im code zu machen, bzw. analog zu immunetomagic ein zweites flag zu ermöglichen "immunetopoison".