/* -*- LPC -*- */ /* * $Locker: $ * $Id: broken_leg.c,v 1.1 1998/01/06 04:20:30 ceres Exp $ * $Log: broken_leg.c,v $ * Revision 1.1 1998/01/06 04:20:30 ceres * Initial revision * */ /** * This is the effect skelton docs. This effect * has a classification of "body.damage.leg.broken". * <p> * Describe the arguments in here. * <p> * This effect has a shadow associated with it. * @classification body.damage.leg.broken * @see help::effects */ #include "path.h" #include <effect.h> /** @ignore yes */ string query_classification() { return "body.damage.leg.broken"; } /** @ignore yes */ void beginning( object player, string *which ) { int handicap; player->add_extra_look( this_object() ); handicap = (int)player->query_real_dex(); handicap = ( sizeof( which ) * handicap ) / ( 1 + sizeof( which ) ); player->adjust_bonus_dex( -handicap ); } /* beginning() */ void restart( object player, string *which ) { int handicap; player->add_extra_look( this_object() ); handicap = (int)player->query_real_dex(); handicap = ( sizeof( which ) * handicap ) / ( 1 + sizeof( which ) ); player->adjust_bonus_dex( -handicap ); } /* restart() */ /** @ignore yes */ string *merge_effect( object player, string *which1, string *which2 ) { int i, handicap; string *which; handicap = (int)player->query_real_dex(); handicap = ( sizeof( which1 ) * handicap ) / ( 1 + sizeof( which1 ) ); player->adjust_bonus_dex( handicap ); which = which1; for ( i = 0; i < sizeof( which2 ); i++ ) if ( member_array( which2[ i ], which ) == -1 ) which += ({ which2[ i ] }); handicap = (int)player->query_real_dex(); handicap = ( sizeof( which ) * handicap ) / ( 1 + sizeof( which ) ); player->adjust_bonus_dex( -handicap ); return which; } /* merge_effect() */ /** @ignore yes */ void end( object player, string *which ) { int handicap; player->remove_extra_look( this_object() ); handicap = (int)player->query_real_dex(); handicap = ( sizeof( which ) * handicap ) / ( 1 + sizeof( which ) ); player->adjust_bonus_dex( handicap ); } /* end() */ string extra_look( object player ) { int *enums; string *which; enums = (int *)player->effects_matching( "body.damage.leg.broken" ); if ( !sizeof( enums ) ) return ""; which = (string *)player->arg_of( enums[ 0 ] ); return capitalize( (string)player->query_pronoun() ) +" has broken "+ (string)player->query_possessive() +" "+ query_multiple_short( which ) +" leg"+ ( sizeof( which ) == 1 ? "" : "s" ) +".\n"; } /* extra_look() */ int query_indefinite() { return 1; } /** @ignore yes */ string query_shadow_ob() { return SHADOWS +"broken_leg"; }