defs.h: add the OT_xxx enum (optional) add a scroll to do the same effect - not for boosts though (optional) add a potion to do the same effect - not for boosts though objects.c: define the spell remember to have spelllevel (optional) add a scroll to do the same effect, use F_LINKSPELL (optional) add a potion to do the same effect assign AI hint flags so it knows how to cast it spell.c: implement the effects remember to fill in *seenbyplayer if there is a scroll version cope with: blessed/cursed target having antimagic - use hasmr(victim) blindness if the effect is vision-based ai.c update aigetspelltarget(); (if we have target ST_SPECIAL) update aispellok();