mud/
mud/2.4.5/dgd/include/
mud/2.4.5/dgd/std/
mud/2.4.5/dgd/sys/
mud/2.4.5/doc/
mud/2.4.5/doc/examples/
mud/2.4.5/log/
mud/2.4.5/obj/Go/
mud/2.4.5/players/
mud/2.4.5/players/lars/
mud/2.4.5/room/death/
mud/2.4.5/room/maze1/
mud/2.4.5/room/post_dir/
mud/2.4.5/room/sub/
/*
  
   This object is a standard food object and works
   like /obj/alco_drink.c or /obj/armour.c
  
   To use this you can do:
     inherit "obj/food";
   ......
   or,
   object ob;
   ob = clone_object("obj/food");
   ob->set_name("apple pie");
  
*  For more documentation look at /doc/build/food


   These functions are defined:

	   set_name(string)	To set the name of the item. For use in id().

   Two alternative names can be set with the calls:

	   set_alias(string) and set_alt_name(string)

	   set_short(string)	To set the short description.

	   set_long(string)	To set the long description.

	   set_value(int)	To set the value of the item.

	   set_weight(int)	To set the weight of the item.

	   set_strength(int)	To set the healing power of the item. If you
				don't wish the item to have healing powers
				just set this value to 0.

	   set_eater_mess(string)
				To set the message that is written to the 
				player when he eats the item.

	   set_eating_mess(string)
				To set the message given to the surrounding
				players when this object is eaten.


	For an example of the use of this object, please read:
*	/doc/examples/apple_pie.c

*/

string name, short, long, eating_mess, eater_mess, alias, alt_name;
int value, strength, weight;

init()
{
	add_action("eat", "eat");
}

reset(arg)
{
	if (arg)
		return;

	weight = 1; 
	eater_mess = "Yum yum yum.\n"; 
}

prevent_insert()
{
  write("You don't want to ruin " + short + ".\n");
  return 1;
}

id(str)
{
	return  str == name || str == alt_name || str == alias;
}

short()
{ 
	if(!short)
	    return name;

	return short;
}

long() 
{
	if(!long)
		write(short() + ".\n");
	else
		write(long);
}

get()
{
	return 1;
}

eat(str)
{
	object tp;

	tp = this_player();

	if (!str || !id(str))
		return 0;

	if(tp->query_level() * 8 < strength)
	{
		write("You realize even before trying that you'll never be able to eat all this.\n");
		return 1;
	}

	if (!tp->eat_food(strength))
		return 1;

	tp->heal_self(strength);
	write(eater_mess);
	if (eating_mess)
		say(capitalize(this_player()->query_name()) + eating_mess);
	else
		say(capitalize(this_player()->query_name()) + " eats " + short + ".\n");
	destruct(this_object());
	return 1;
}

min_cost()
{
	return 4 * strength + (strength * strength) / 10;
}

set_name(n) 
{ 
	name = n; 
}

set_short(s) 
{ 
	short = s; 
}

set_long(l) 
{ 
	long = l; 
}

set_value(v) 
{ 
	value = v; 
}

set_weight(w) 
{ 
	weight = w; 
}

set_strength(s) 
{
	strength = s; 
}

set_alias(a) 
{ 
	alias = a; 
}

set_alt_name(an) 
{ 
	alt_name = an; 
}

set_eating_mess(em) 
{ 
	eating_mess = em; 
}

set_eater_mess(em) 
{ 
	eater_mess = em; 
}

/*
 * Things that other objects might want to know.
 */

query_value() 
{ 
	if (value)
		return value; 
	else
		return min_cost();
}

query_weight() 
{ 
	return weight; 
}