/**
* This is the effect skelton docs. This effect
* has a classification of "body.poison".
* <p>
* Describe the arguments in here.
* <p>
* This effect has a shadow associated with it.
* @classification body.poison
* @see help::effects
*/
#include "path.h"
#include <effect.h>
string *wretch_msg = ({
"Your stomach turns inside out, and you lose your lunch.\n",
"You double over in pain.\n"
});
string *room_msg = ({
" convulses violently, and you're presented with a grand view " +
"of a recent meal.\n",
" groans and doubles over.\n",
" seethes in agony.\n"
});
/** @ignore yes */
string query_classification() { return "body.poison"; }
/** @ignore yes */
/* No need for a shadow
* string query_shadow_ob() { return SHADOWS + "poison"; }
*/
/** @ignore yes */
int beginning( object player, int time, int id ) {
player->submit_ee("wretch", ({ 30, 60 }), EE_CONTINUOUS);
player->submit_ee( 0, time, EE_REMOVE );
player->adjust_bonus_con( -5 );
player->adjust_bonus_dex( -2 );
tell_object(player, "Seething pains radiate from the wounds "
"inflicted upon you by "+previous_object(1)->one_short()+".\n");
return time;
} /* beginning() */
/** @ignore yes */
int merge_effect( object player, int time1, int time2 ) {
player->submit_ee( 0, time1 + time2 - (int)player->expected_tt(),
EE_REMOVE );
return time1 + time2;
} /* merge_effect() */
int restart( object player, int time, int id ) {
player->adjust_bonus_con( -5 );
player->adjust_bonus_dex( -2 );
return time;
} /* restart() */
/** @ignore yes */
void end( object player, int time, int id ) {
player->adjust_bonus_con( 5 );
player->adjust_bonus_dex( 2 );
tell_object( player, "You feel better now.\n" );
} /* end() */
void wretch(object player, int time, int id) {
int msg_no;
msg_no = random( sizeof( wretch_msg ) );
tell_object( player, wretch_msg[ msg_no ] );
tell_room( environment( player ), (string)player->the_short() +
room_msg[ msg_no ], player);
player->adjust_hp( -(int)player->query_hp() / 10 );
HEALTH_H->monitor_points(player, 1);
} /* wretch() */