/* -*- LPC -*- */ /* * $Locker: $ * $Id: insect_repellent.c,v 1.1 2001/11/16 09:09:10 siel Exp $ * * */ #include "effect.h" string query_classification() { return "herb.insect.repellent"; } int beginning(object them, int power, int id) { if (power <= 0) { them->submit_ee(0, 1, EE_REMOVE); return 0; } them->add_property("insect", power); them->submit_ee("start_mess", 2, EE_ONCE); them->submit_ee("smell", ({30, 60}), EE_CONTINUOUS); return power; } int merge_effect(object them, int power, int adjust) { power += adjust; if (power <= 0) { them->submit_ee(0, 1, EE_REMOVE); return 0; } them->submit_ee(0, -1, EE_REMOVE); return power; } void start_mess(object them, int power, int id) { string start_mess; switch (power) { case 1: start_mess = "You smell rather pleasant, much as you might wish to for a " "date."; break; case 2..3: start_mess = "A pungent smell envelops you."; break; default: start_mess = "A horribly pungent smell envelops you, sufficient to make " "anyone with a sense of smell keep their distance."; } tell_object(them, start_mess+"\n"); } void smell(object them, int power, int id) { string self_mess, other_mess; object env; if (--power <= 0) { tell_object(them, "The herbal odour around you fades away.\n"); them->remove_property("insect"); them->submit_ee(0, 1, EE_REMOVE); return 0; } switch (power) { case 1: self_mess = "A pleasant smell emanates from your body."; other_mess = "A pleasant smell emanates from "+them->one_short()+"."; break; case 2..3: self_mess = "A pungent herbal smell emanates from your body."; other_mess = "A pungent herbal smell emanates from "+them->one_short()+"."; break; default: self_mess = "You reek of pungent herbs."; other_mess = "$C$"+them->one_short()+" $V$0=reeks,reek$V$ of pungent " "herbs."; } tell_object(them, self_mess+"\n"); if ((env = environment(them)) && env->query_property("location")) { tell_room(env, other_mess+"\n", them); } }