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_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; }
void scry_show_where(int who, int target) { if (crosses_ocean(who, target)) { out(who, "%s is in %s.", just_name(region(target))); return; } out(who, "%s is in %s.", box_name(province(target))); }
int cast_check_char_here(int who, int target) { int where; int basic; int pl; basic = char_proj_cast(who); if (is_loc_or_ship(basic)) where = basic; else where = subloc(who); #if 1 p_magic(who)->project_cast = 0; #endif if (crosses_ocean(where, who)) { wout(who, "Something seems to block your magic."); return FALSE; }; if (kind(target) != T_char || where != subloc(target)) { wout(who, "%s is not a character in range of this cast.", box_code(target)); return FALSE; } if (char_really_hidden(target)) { pl = player(who); if (pl == player(target)) return TRUE; if (contacted(target, who)) return TRUE; return FALSE; } #if 0 if (basic == where) p_magic(who)->project_cast = 0; #endif return TRUE; }