/** * This is the effect skelton docs. This effect * has a classification of "body.meditation". * <p> * There is only one argument, this is how long to meditate * for. * <p> * This effect has a shadow associated with it. * @classification body.meditation * @see help::effects */ #include <effect.h> #include "path.h" /** @ignore yes */ void beginning(object player, mixed args, int id) { tell_object(player, "You start to meditate, and enter a deep trance.\n"); player->submit_ee("meditate", ({ 15, 30 }), EE_CONTINUOUS); player->add_extra_look(this_object()); } /* beginning() */ /** @ignore yes */ void merge_effect(object player, mixed args, int id) { tell_object(player, "You are already meditating.\n"); } /* merge_effect() */ /** @ignore yes */ void restart(object player, mixed args, int id) { player->add_extra_look(this_object()); } /* restart() */ /** @ignore yes */ void end(object player, mixed args, int id) { tell_object(player, "You come out of the trance feeling a lot " "healthier, although extremely weak.\n"); player->set_gp(0); player->set_sp(0); player->set_hp(player->query_max_hp()); player->remove_extra_look(this_object()); } /* end() */ /** @ignore yes */ string query_classification() { return "body.meditation"; } /* query_classification() */ /** @ignore yes */ string query_shadow_ob() { return SHADOWS + "meditate_shadow"; } /* query_shadow_ob() */ /** @ignore yes */ string extra_look(object who) { return capitalize(who->query_pronoun()) + " is in a deep trance.\n"; } /* extra_look() */ /** @ignore yes */ void meditate(object player, mixed args, int id) { tell_object(player, "Ommmmm....\n"); args -= (2 + random(8)); if (args <= 0) { player->submit_ee(0, 0, EE_REMOVE); return; } player->set_arg_of(player->sid_to_enum(id), args); } /* meditate() */