// _sense.c
// Monk/Kataan ability
// created by Descartes 21 October 1992
// slightly modified by Bohemund 14 January 1994
#include <std.h>
inherit DAEMON;
int cmd_sense(string str) {
object ob;
object *inv;
int i, skip, which, faith;
string what, Class;
mixed *arr;
if(!str) {
notify_fail("Sense what?\n");
return 0;
}
Class = (string)this_player()->query_class();
if(Class != "monk" && Class != "kataan") {
notify_fail("Your mind swirls in chaos.\n");
return 0;
}
if(Class == "monk") {
if((int)this_player()->query_alignment() < 200) {
notify_fail("You fail to sense anything special about it.\n");
return 0;
}
}
if(Class == "kataan") {
if((int)this_player()->query_alignment() > -200) {
notify_fail("You fail to sense anything special about it.\n");
return 0;
}
}
ob = present(str, this_player());
if(!ob) {
inv = all_inventory(this_player());
if(sscanf(str, "%s %d", what, which) != 2) {
notify_fail("You don't have that!\n");
return 0;
}
for(i=0, skip = 0; i<sizeof(inv) && !ob; i++) {
if(inv[i]->id(what)) {
skip ++;
if(skip == which) ob = inv[i];
}
}
if(!ob) {
notify_fail("You don't have that!\n");
return 0;
}
}
faith = (int)this_player()->query_skill("faith");
if((int)this_player()->query_mp() < 13) {
notify_fail("Too low on magic power.\n");
return 0;
}
say(this_player()->query_cap_name()+" mutters a prayer as "+this_player()->query_subjective()+" concentrates on the "+(string)ob->query_name()+".", this_player());
this_player()->set_magic_round();
if(faith < random(101)) {
this_player()->add_mp(-13);
this_player()->add_skill_points("faith", random(13));
write("You fail to sense anything special about it.");
return 1;
}
else {
this_player()->add_mp(-13);
this_player()->add_skill_points("faith", 13);
arr = (string *)ob->query_property("magic item");
if(!arr) write("You fail to sense anything special about it.");
else if(arr == ({})) write("You fail to sense anything special about it.");
else write("You sense magic about it...\nYou sense the "
"word \"%^BOLD%^"+arr[random(sizeof(arr))]+"%^RESET%^\".");
return 1;
}
}
void help() {
write("Syntax: <sense [item]>\n\n"
"Allows a monk or a kataan to sense any magic powers "
"inherent in an object. "
"There is no way to tell the difference between a failure to sense "
"magic in the object and the lack of magic in an object.\n");
}