/* 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; void init() { add_action("eat", "eat"); } void reset(int arg) { if (arg) return; weight = 1; eater_mess = "Yum yum yum.\n"; } int prevent_insert() { write("You don't want to ruin " + short + ".\n"); return 1; } int id(string str) { return str == name || str == alt_name || str == alias; } string short() { if(!short) return name; return short; } void long() { if(!long) write(short() + ".\n"); else write(long); } int get() { return 1; } int eat(string 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; } int min_cost() { return 4 * strength + (strength * strength) / 10; } void set_name(string n) { name = n; } void set_short(string s) { short = s; } void set_long(string l) { long = l; } void set_value(int v) { value = v; } void set_weight(int w) { weight = w; } void set_strength(int s) { strength = s; } void set_alias(string a) { alias = a; } void set_alt_name(string an) { alt_name = an; } void set_eating_mess(string em) { eating_mess = em; } void set_eater_mess(string em) { eater_mess = em; } /* * Things that other objects might want to know. */ int query_value() { if (value) return value; else return min_cost(); } int query_weight() { return weight; }