int v_reveal_mage(struct command *c) { int target = c->a; int category = c->b; int aura; if (c->c < 1) c->c = 1; aura = c->c; if (!cast_check_char_here(c->who, target)) return FALSE; if (!check_aura(c->who, aura)) return FALSE; if (!category || !magic_skill(category) || skill_school(category) != category) { wout(c->who, "%s is not a magical skill category.", box_code(category)); wout(c->who , "Assuming %s.", box_name(sk_basic)); c->b = sk_basic; category = sk_basic; } wout(c->who, "Attempt to scry the magical abilities of %s within %s.", box_name(target), box_name(category)); return TRUE; }
int v_view_aura(struct command *c) { int aura; int where; if (c->a < 1) c->a = 1; aura = c->a; if (!check_aura(c->who, aura)) return FALSE; if (crosses_ocean(cast_where(c->who),c->who)) { wout(c->who,"Something seems to block your magic."); return FALSE; }; where = reset_cast_where(c->who); c->d = where; wout(c->who, "Will scry the current aura ratings of other " "mages in %s.", box_name(where)); return TRUE; }
int v_heal(struct command *c) { int target = c->a; int aura; if (c->b < 1) c->b = 1; if (c->b > 3) c->b = 3; aura = c->b; if (!cast_check_char_here(c->who, target)) return FALSE; if (!char_sick(target)) { wout(c->who, "%s is not sick.", box_name(target)); return FALSE; } if (!check_aura(c->who, aura)) return FALSE; return TRUE; }
int v_scry_region(struct command *c) { int targ_loc = c->a; int aura = c->b; if (!is_loc_or_ship(targ_loc)) { wout(c->who, "%s is not a location.", box_code(targ_loc)); return FALSE; } if (crosses_ocean(targ_loc, c->who)) { wout(c->who, "Something seems to block your magic."); return FALSE; }; if (c->b < 1) c->b = 1; aura = c->b; if (!check_aura(c->who, aura)) return FALSE; return TRUE; }
int v_detect_abil(struct command *c) { if (!check_aura(c->who, 1)) return FALSE; wout(c->who, "Will practice ability scry detection."); return TRUE; }
int v_keep_undead(struct command *c) { int target = c->a; if (!keep_undead_check(c, TRUE)) return FALSE; if (!check_aura(c->who, 3)) return FALSE; return TRUE; }
int v_banish_undead(struct command *c) { if (!keep_undead_check(c, FALSE)) return FALSE; if (!check_aura(c->who, 6)) return FALSE; if (!cast_check_char_here(c->who, c->a)) return FALSE; return TRUE; }
int v_save_quick(struct command *c) { if (char_quick_cast(c->who) < 1) { wout(c->who, "No stored spell cast speedup."); return FALSE; } if (!check_aura(c->who, 3)) return FALSE; wout(c->who, "Attempt to save speeded cast state."); return TRUE; }
int v_dispel_abil(struct command *c) { int target = c->a; if (!cast_check_char_here(c->who, target)) return FALSE; if (!check_aura(c->who, 3)) return FALSE; wout(c->who, "Attempt to dispel any ability shroud from %s.", box_name(target)); return TRUE; }
int v_quick_cast(struct command *c) { int aura; if (c->a < 1) c->a = 1; aura = c->a; if (!check_aura(c->who, aura)) return FALSE; wout(c->who, "Attempt to speed next spell cast."); return TRUE; }
int v_undead_lord(struct command *c) { int where = subloc(c->who); int aura = c->a; if (aura < 3) c->a = aura = 3; if (aura > 8) c->a = aura = 8; if (!may_cookie_npc(c->who, where, item_undead_cookie)) return FALSE; if (!check_aura(c->who, aura)) return FALSE; return TRUE; }
int v_quick_cast(struct command *c) { int aura; if (c->a < 1) c->a = 1; aura = c->a; if (aura > 3) { wout(c->who, "You may only speed casting by 3 days."); aura = 3; }; if (!check_aura(c->who, aura)) return FALSE; wout(c->who, "Attempt to speed next spell cast."); return TRUE; }
int v_view_aura(struct command *c) { int aura; int where; if (c->a < 1) c->a = 1; aura = c->a; if (!check_aura(c->who, aura)) return FALSE; where = reset_cast_where(c->who); c->d = where; wout(c->who, "Will scry the current aura ratings of other " "mages in %s.", box_name(where)); return TRUE; }
int v_hinder_med(struct command *c) { int target = c->a; int aura; if (c->b < 1) c->b = 1; if (c->b > 3) c->b = 3; aura = c->b; if (!cast_check_char_here(c->who, target)) return FALSE; if (!check_aura(c->who, aura)) return FALSE; wout(c->who, "Attempt to hinder attempts at meditation by %s.", box_code(target)); return TRUE; }