inherit "std/Object";
void init() {
::init();
add_action("scry", "scry");
}
void create() {
::create();
set_name("ball");
set_id( ({ "ball", "base", "crystal ball", "honor_quest_ob" }) );
set_short( "%^CYAN%^a crystal ball%^RESET%^");
set_long("It has some writing on its base.");
set_read("From your grandfather with love.");
set_mass(190);
set_value(50);
set_vendor_type("magic");
set_property("magic item", ({"scry"}) );
set_destroy();
}
int scry(string str) {
object ob, env;
if(!str) return notify_fail("Scry what?\n");
write("You gaze into the crystal ball.");
if((int)this_player()->query_mp() < 5) {
write("Your magic powers are just too weak to help you.");
return 1;
}
if(!(ob = find_living(str)) || creatorp(ob)) {
write("No such person in our reality.");
return 1;
}
if(!environment(ob)) return notify_fail("Gurble gurble gurble.\n");
if(environment(ob)->query_property("no scry"))
{
write("Something is blocking your concentration.");
return 1;
}
this_player()->add_mp(-5);
if(!(env = environment(ob))) {
write(ob->query_cap_name()+" is lost.");
return 1;
}
write("You find "+ob->query_cap_name()+" in the crystal ball at:\n");
write(env->query_short()+"\n");
return 1;
}