#include <effect.h>
#define PLAYER capitalize( (string)player->the_short() )
#define CLASS "box.misery"
string query_classification() { return CLASS; }
string random_misery() {
return ({ "You feel weak and miserable.",
"You feel absolutely miserable as all the problems on the disc "
"pokes you in the back, saying: 'You shouldn't have opened "
"the box, silly!'",
"Why ever did you open that cursed box?",
"The world seems a gloomy and distressing place.",
"Who would've known the Disc is such a troubled place?" })
[ random( 5 ) ];
} /* random_misery() */
string random_misery_two() {
return ({ "You still feel bothered by the troubles of the disc, but it "
"seems to affect you less now than before.",
"Why ever did you open that cursed box?",
"The world seems a gloomy and distressing place.",
"Who would've known the Disc is such a troubled place?" })
[ random( 4 ) ];
} /* random_misery() */
string random_misery_three() {
return ({ "The troubles of the disc are still looming over you, but you "
"seem fully capable of dealing with it now.",
"You feel better, but the troubles of the Disc are still "
"after you, criticizing everything you do.",
"Why ever did you open that cursed box?",
"The world seems a gloomy and distressing place, but not as "
"gloomy as before.",
"Who would've known the Disc is such a troubled place?" })
[ random( 5 ) ];
} /* random_misery() */
void beginning( object player, int time ) {
tell_object( player, "You suddenly feel weak and old.\n" );
tell_room( environment( player ), PLAYER +" looks weak and old.\n",
player );
player->submit_ee( "misery", ({ 120, 120 }), EE_CONTINUOUS );
player->submit_ee( 0, time, EE_REMOVE );
player->adjust_tmp_str( -2 );
player->adjust_tmp_con( -2 );
player->adjust_tmp_wis( 2 );
} /* beginning() */
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() */
void end( object player, int time ) {
tell_object( player, "You suddenly feel a lot better, and you make a "
"mental note: Never again open something that specifically "
"tells you not to.\n" );
tell_room( environment( player ), PLAYER +" suddenly looks a lot happier, "
"and quite a bit stronger.\n", player );
if ( player->query_tmp_con() < -1 ) {
player->adjust_tmp_str( 2 );
player->adjust_tmp_con( 2 );
player->adjust_tmp_wis( -2 );
}
else {
if ( player->query_tmp_con() < 0 ) {
player->adjust_tmp_str( 1 );
player->adjust_tmp_con( 1 );
player->adjust_tmp_wis( -1 );
}
}
} /* end() */
void misery( object player ) {
int bing;
bing = player->query_tmp_con();
if (bing < -1) {
tell_object( player, random_misery() + "\n" );
tell_room( environment( player ), PLAYER + " looks tired and worn "
"out.\n", player );
}
else {
if (bing < 0) {
tell_object( player, random_misery_two() + "\n" );
tell_room( environment( player ), PLAYER + " looks a bit frustrated "
"and irritated.\n", player );
}
else {
tell_object( player, random_misery_three() + "\n" );
tell_room( environment( player ), PLAYER + " looks a bit troubled.\n",
player );
}
}
} /* misery() */