diff options
Diffstat (limited to 'src/skills.c')
-rw-r--r-- | src/skills.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/skills.c b/src/skills.c index fd6c37a2..1dc65fea 100644 --- a/src/skills.c +++ b/src/skills.c @@ -1074,6 +1074,34 @@ void do_cmd_activate_skill() } break; } + case MKEY_GEOMANCY: + { + s32b s = -1; + object_type *o_ptr = NULL; + + /* No magic */ + if (p_ptr->antimagic > 0) + { + msg_print("Your anti-magic field disrupts any magic attempts."); + break; + } + + o_ptr = get_object(INVEN_WIELD); + if ((o_ptr->k_idx <= 0) || + (o_ptr->tval != TV_MSTAFF)) + { + msg_print("You must wield a magestaff to use Geomancy."); + break; + } + + s = get_school_spell("cast", BOOK_GEOMANCY); + if (s >= 0) + { + lua_cast_school_spell(s, FALSE); + } + + break; + } default: process_hooks(HOOK_MKEY, "(d)", x_idx); break; |