/**
* This is an inheritable for a plate, including cutlery. You can put things
* on it. You can also eat food directly from the plate. It was designed
* for the pub_shop.c inheritable, for use with the meals that can be sold
* there.
* @author Lemming
* @started 26/12/1999
*/
inherit "/std/surface";
/** @ignore */
void init() {
this_player()->add_command( "eat", this_object(),
"<indirect:object:direct-obs> {from|on} <direct:object:me>" );
this_player()->add_command( "eat", this_object(),
"from <direct:object:me>" );
} /* init() */
/** @ignore yes */
void create() {
do_setup++;
::create();
do_setup--;
/* I'm commenting these two out, because for reasons beyond me
** they mess up the main plurals of the objects inheriting
** this file. And I can't imagine this file being cloned directly
** anywhere, so they shouldn't be needed. -- Tilly
** set_name( "plate" );
** set_short( "plate" );
*/
set_long( "This is a nice plate for keeping food on.\n" );
if ( ! do_setup ) {
this_object()->setup();
this_object()->reset();
}
} /* create */
/** @ignore */
int do_eat( object *obs, string dir, string indir, mixed *args ) {
object ob;
object *food;
if( sizeof( obs ) )
food = copy( obs );
else
food = all_inventory();
if( sizeof( food ) ) {
food = filter( food, (: $1->query_edible() :) );
} else {
this_player()->add_failed_mess( this_object(),
"There's nothing on $D\n", ({ }) );
return 0;
}
if( !sizeof( food ) ) {
if( sizeof( obs ) )
this_player()->add_failed_mess( this_object(),
"You can't eat $I on $D!\n", obs );
else
this_player()->add_failed_mess( this_object(),
"There's nothing edible on $D\n", ({ }) );
return 0;
}
foreach( ob in food ) {
ob->do_eat();
}
return 1;
} /* do_eat() */
/** @ignore yes */
mapping query_static_auto_load() {
return int_query_static_auto_load();
}