/* /verbs/rooms/cast.c
* from the Dead Souls Object Library
* cast OBJ in STR
* cast OBJ
* created by Descartes of Borg 951016
*/
#include <lib.h>
#include "include/cast.h"
inherit LIB_VERB;
static void create() {
verb::create();
SetVerb("cast");
SetRules("OBJ");
}
mixed can_cast_obj(object ob) {
object env;
mixed err;
if( !ob ) return 0;
if( (err = (int)ob->CanCast(this_player())) != 1 )
return (err || "You can't cast " + (string)ob->GetShort() + ".");
if( !(env = environment(this_player())) ) return 0;
err = (mixed)env->CanCast(this_player(), ob);
if( err == 1 ) return this_player()->CanManipulate();
else if( !err ) return "It doesn't look like there is much fishing here.";
else return err;
}
mixed do_cast_obj(object ob) {
object env;
mixed err;
if( !ob || !(env = environment(this_player())) ) return 0;
if( err = (mixed)env->eventCast(this_player(), ob) ) return err;
}
string GetHelp(string str) {
return "Syntax: <cast OBJ>\n\n"
"Starts you fishing so long as OBJ is something you can fish with "
"and you are in a place that allows fishing.\n\n"
"See also: fish, stop";
}