static void _illusion_light_spell(int cmd, variant *res) { int mult = _on_mirror ? 4 : 3; int power = spell_power(p_ptr->lev * mult); switch (cmd) { case SPELL_NAME: var_set_string(res, "Illusion Light"); break; case SPELL_DESC: var_set_string(res, "Attempts to slow, stun, confuse, scare, freeze all monsters in sight. This is more powerful if you are standing on a mirror."); break; case SPELL_INFO: var_set_string(res, info_power(power)); break; case SPELL_CAST: slow_monsters(power); stun_monsters(power); confuse_monsters(power); turn_monsters(power); stun_monsters(power); stasis_monsters(power); var_set_bool(res, TRUE); break; default: default_spell(cmd, res); break; } }
static void _pharaohs_curse_spell(int cmd, variant *res) { switch (cmd) { case SPELL_NAME: var_set_string(res, "Pharaoh's Curse"); break; case SPELL_DESC: var_set_string(res, "Curses all nearby monsters, doing great damage and various effects."); break; case SPELL_CAST: { int power = spell_power(p_ptr->lev * 4); project_hack(GF_PHARAOHS_CURSE, p_ptr->lev + randint1(p_ptr->lev)); if (p_ptr->lev >= 46) confuse_monsters(power); if (p_ptr->lev >= 47) slow_monsters(power); if (p_ptr->lev >= 48) turn_monsters(power); if (p_ptr->lev >= 49) stun_monsters(power); if (one_in_(5)) { int mode = 0; if (one_in_(2)) mode = PM_FORCE_PET; if (summon_named_creature(0, py, px, MON_GREATER_MUMMY, mode)) { msg_print("You have disturbed the rest of an ancient pharaoh!"); } } take_hit(DAMAGE_USELIFE, p_ptr->lev + randint1(p_ptr->lev), "the Pharaoh's Curse", -1); var_set_bool(res, TRUE); } break; default: default_spell(cmd, res); break; } }