53 lines
1.4 KiB
C
53 lines
1.4 KiB
C
#include <lib.h>
|
|
#include <vendor_types.h>
|
|
inherit LIB_ITEM;
|
|
|
|
void init() {
|
|
::init();
|
|
add_action("scry", "scry");
|
|
}
|
|
|
|
void create() {
|
|
::create();
|
|
SetKeyName("ball");
|
|
SetId( ({ "ball", "base", "crystal ball", "honor_quest_ob" }) );
|
|
SetShort( "%^CYAN%^a crystal ball%^RESET%^");
|
|
SetLong("It has some writing on its base.");
|
|
SetRead("From your grandfather with love.");
|
|
|
|
SetMass(190);
|
|
SetValue(50);
|
|
SetVendorType(VT_MAGIC);
|
|
SetProperty("magic item", ({"scry"}) );
|
|
true();
|
|
}
|
|
|
|
int scry(string str) {
|
|
object ob, env;
|
|
|
|
if(!str) return notify_fail("Scry what?\n");
|
|
write("You gaze into the crystal ball.");
|
|
if(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)->GetProperty("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->GetShort()+"\n");
|
|
return 1;
|
|
}
|