/* -*- LPC -*- */
/*
* $Locker: $
* $Id: deaf_effect.c,v 1.1 1998/01/06 04:07:14 ceres Exp $
* $Log: deaf_effect.c,v $
* Revision 1.1 1998/01/06 04:07:14 ceres
* Initial revision
*
*/
/**
* Makes the player deaf. The classification of the effect
* is "misc.curse.deafness".
* <p>
* This effect has a shadow associated with it.
* @classification misc.curse.deafness
*/
#include "effect.h"
/** @ignore yes */
string query_classification() { return "misc.curse.deafness"; }
/** @ignore yes */
int query_indefinite() { return 1; }
/** @ignore yes */
string query_shadow_ob() { return "/std/shadows/curses/deaf_shadow"; }
/** @ignore yes */
mixed beginning( object player, mixed arg ) {
tell_object( player, "Sounds seem dim and muffled.\n" );
if ( pointerp( arg ) ) {
player->submit_ee( "hear_better", arg[ 1 ], EE_CONTINUOUS );
return arg[ 0 ];
} else {
return arg;
}
}
/** @ignore yes */
void end( object player ) {
tell_object( player, "Your hearing has returned to normal.\n" );
}
/** @ignore yes */
void hear_better( object player, mixed arg, int id ) {
player->add_message(this_object(), "Your hearing improves somewhat.\n", 0);
arg = 100 - ((100 - arg) * 2/3);
if (arg == 100) player->delete_effect( player->sid_to_enum( id ) );
else
player->set_arg_of( player->sid_to_enum( id ), arg );
}
/** @ignore yes */
mixed merge_effect( object player, mixed old_arg, mixed new_arg, int id ) {
player->add_message( this_object(), "Your hearing gets worse.\n", 0 );
player->set_arg_of( player->sid_to_enum( id ), new_arg );
}