/* -*- LPC -*- */
/*
* $Locker: $
* $Id: hemp.c,v 1.1 1998/01/06 04:14:00 ceres Exp $
* $Log: hemp.c,v $
* Revision 1.1 1998/01/06 04:14:00 ceres
* Initial revision
*
*/
/**
* This is the effect skelton docs. This effect
* has a classification of "player.is.stoned".
* <p>
* Describe the arguments in here.
* @classification player.is.stoned
* @see help::effects
*/
#include <effect.h>
#define CURE 200
/** @ignore yes */
string query_classification() { return "player.is.stoned"; }
/** @ignore yes */
int beginning( object player, int arg, int sid ) {
tell_object( player, "You begin to feel quite pleasantly stoned.\n" );
tell_room( environment( player ), (string)player->the_short() + " peers at you through half-"
"closed eyes.\n", player);
player->submit_ee( "soul_reactions", ({ 10, 10 }), EE_CONTINUOUS );
player->submit_ee( "sap_brains", ({ 100, 100 }), EE_CONTINUOUS );
player->submit_ee( 0, arg, EE_REMOVE );
return 0;
} /* beginning() */
/** @ignore yes */
void merge_effect() { return; }
/** @ignore yes */
void end( object player, int arg, int sid ) {
if ( !player->query_property( "dead" ) )
tell_object( player, "You get a sudden craving for jelly donuts.\n" );
} /* end() */
void soul_reactions( object player, int arg, int sid ) {
switch ( random( 10 ) ) {
case 0 :
player->new_parser( "cough" );
break;
case 1 :
tell_object( player, "You drone: Wow, man... Cool!.\n" );
tell_room( environment( player ), (string)player->the_short() + " drones: "
"Wow, man... Cool!\n", player);
break;
case 2 :
tell_object( player, "Your eyes dilate and get redder.\n" );
tell_room( environment( player ), (string)player->the_short() + " squints "
"and seems uncomfortable in the light.\n", player);
break;
case 3 :
tell_object( player, "You giggle mindlessly.\n" );
tell_room( environment( player ), (string)player->the_short() + " giggles "
"mindlessly.\n", player);
break;
case 4 :
tell_object( player, "You become fascinated by your hands.\n" );
tell_room( environment( player ), (string)player->the_short() + " seems "
"to have forgotten what fingers are.\n", player);
break;
case 5 :
player->new_parser( "wibble" );
break;
case 6 :
tell_object( player, "You fall over backwards, giggling.\n" );
tell_room( environment( player ), (string)player->the_short() + " falls "
"over backwards, giggling.\n", player);
break;
case 7 :
tell_object( player, "You feel very relaxed.\n" );
tell_room( environment( player ), (string)player->the_short() + " smiles "
"pleasantly at you.\n", player);
break;
case 8 :
tell_object( player, "You start to say something, but forget what it was.\n" );
tell_room( environment( player ), (string)player->the_short() + " starts to "
"say something to you... forgets what it was and smiles goofily.\n", player);
break;
default :
tell_object( player, "You blow the smoke out slowly, savouring the mellow flavour.\n" );
tell_room( environment( player ), (string)player->the_short() + " blows a cloud of "
"sweet-smelling smoke in your face.\n", player);
}
arg -= CURE / 10;
if ( arg < 0 )
arg = 0;
player->set_arg_of( (int)player->sid_to_enum( sid ), arg );
} /* soul_reactions() */
void sap_brains( object player ) {
tell_object( player, "You close your eyes... The room seems to spin.\n" );
tell_room(environment(player),(string)player->the_short()
+ " seems a little dizzy.\n",player);
player->adjust_tmp_int( -1 );
} /* sap_brains() */
int test_remove( object player, int arg, int enum, int bonus ) {
arg += bonus;
if ( arg > CURE )
return 1;
player->set_arg_of( enum, arg );
return 0;
} /* test_remove() */