/* -*- LPC -*- */ /* * $Locker: $ * $Id: basic_healing.c,v 1.1.1.1 2000/04/05 11:03:48 gruper Exp $ * $Log: basic_healing.c,v $ * Revision 1.1.1.1 2000/04/05 11:03:48 gruper * The changes to tea buggered up the oak wand, so I * had to revert stuff an' such... This should now * be back to the version where tea heals over time. * * Revision 1.2 2000/04/04 11:38:44 gruper * Complete recode... With PT checks. * * Revision 1.1 1998/01/06 04:14:00 ceres * Initial revision * */ /** * This is the effect skelton docs. This effect * has a classification of "healing.basic". * <p> * The only effect argument is "amount", an integer. * @classification healing.basic * @see help::effects */ #include <effect.h> #define TICK 5 #define MSG_TICK 30 /** @ignore yes */ void amount_description( object player, int amount, int id ) { string msg; switch( amount ) { case 0..9: msg = "You feel a very slight tingling sensation in your stomach."; break; case 10..13: msg = "You feel a slight tingling sensation in your stomach."; break; case 14..16: msg = "You feel a tingling sensation in your stomach."; break; case 17..19: msg = "You feel a very slight warming sensation in your stomach."; break; case 20..21: msg = "You feel a slight warming sensation in your stomach."; break; case 22..25: msg = "You feel a warming sensation in your stomach."; break; case 26..29: msg = "A feeling of fuzziness radiates from your stomach."; break; case 30..34: msg = "A feeling of fuzziness radiates from your stomach and makes " "you curl your toes."; break; case 35..39: msg = "A feeling of fuzziness radiates from your stomach and makes " "your nipples tingle."; break; case 40..49: msg = "A feeling of fuzziness radiates from your stomach and makes " "your nipples tingle pleasantly."; break; case 50..59: msg = "A feeling of fuzziness radiates from your stomach and makes your " "nipples tingle as if someone had stroked them with an ice cube."; break; case 60..69: msg = "The strong feeling of fuzziness which radiates from your " "stomach makes your head spin."; break; case 70..79: msg = "A pleasant feeling of numbness radiates from your stomach."; break; case 80..99: msg = "A feeling of numbness radiates from your stomach."; break; case 100..119: msg = "A feeling of numbness radiates from your stomach and makes you " "feel flaccid in body and soul."; break; case 120..149: msg = "A feeling of flaccidity radiates from your stomach and makes you " "feel deficient in turgor, lacking in vigor and force."; break; case 150..200: msg = "There's a wooly sensation that starts in your stomach and then " "radiates inwards in a backwards manner, but inside out, making " "your whole body feel numb and overly sensitive at the same time."; break; default: msg = "It feels as if someone stabbed you in the abdomen, using a " "large ice berg."; } // switch( amount ) tell_object( player, msg +"\n" ); player->submit_ee( "amount_description", MSG_TICK, EE_ONCE ); } // amount_description() /** @ignore yes */ int beginning( object player, int amount, int id ) { player->submit_ee( "heal", TICK, EE_CONTINUOUS ); player->submit_ee( "amount_description", 2, EE_ONCE ); amount = sqrt( amount ); return amount + random( amount / 2 ); } /* beginning() */ /** @ignore yes */ int merge_effect( object player, int old_amount, int new_amount, int id ) { new_amount = sqrt( new_amount ); return old_amount + new_amount + random( new_amount / 2 ); } /* merge_effect() */ /** @ignore */ void heal( object player, int amount, int id ) { int old_hp, heal; if( amount < 1 ) { player->submit_ee( 0, 0, EE_REMOVE ); } else { heal = amount + random( amount ); old_hp = player->query_hp(); heal = player->adjust_hp( heal ) - old_hp; if( player->query_hp() == player->query_max_hp() ) player->submit_ee( 0, 0, EE_REMOVE ); player->set_arg_of( player->sid_to_enum( id ), amount - 1 ); } } // heal() /** @ignore yes */ void end( object player, int amount, int id ) { tell_object( player, "You feel the effects of the healing tea wear off.\n" ); } /* end() */ /** @ignore yes */ string query_classification() { return "healing.basic"; } /** @ignore yes */ string query_apothecarial_effect() { return "will aid the healing of general injuries"; } /* query_apothecarial_effect() */