/* -*- LPC -*- */
/*
* $Locker: $
* $Id: see_invisible.c,v 1.1 1998/01/06 04:06:32 ceres Exp $
* $Log: see_invisible.c,v $
* Revision 1.1 1998/01/06 04:06:32 ceres
* Initial revision
*
*/
/**
* This is the effect skelton docs. This effect
* has a classification of "magic.sight.invisible".
* <p>
* Describe the arguments in here.
* <p>
* This effect has a shadow associated with it.
* @classification magic.sight.invisible
* @see help::effects
*/
#include "path.h"
#include <effect.h>
#define COST_PER_ROUND 30
/** @ignore yes */
string query_classification() { return "magic.sight.invisible"; }
/** @ignore yes */
string query_shadow_ob() { return SHADOWS +"see_invisible"; }
/** @ignore yes */
void beginning( object player ) {
tell_object( player, "Your eyes tingle momentarily.\n" );
player->submit_ee( "decrease_points", 1, EE_ONCE );
player->submit_ee( "decrease_points", ({ 30, 60 }), EE_CONTINUOUS );
} /* beginning() */
/** @ignore yes */
void merge_effect( object player ) { return; }
/** @ignore yes */
void end( object player ) {
tell_object( player, "Everything goes dark, as if you'd blinked, but "+
"then returns to normal.\n" );
} /* end() */
int test_for_effect( object thing ) {
if ( !thing )
return 0;
return member_array( file_name( this_object() ),
(string *)thing->query_wear_effects() ) != -1;
} /* test_for_effect() */
void decrease_points( object player ) {
if ( player->query_auto_loading() )
return;
if ( !sizeof( filter_array( (object *)player->query_armours(),
"test_for_effect", this_object() ) ) ) {
player->submit_ee( 0, 0, EE_REMOVE );
return;
}
if ( (int)player->query_gp() <= COST_PER_ROUND ) {
player->submit_ee( 0, 0, EE_REMOVE );
return;
}
player->clear_gp_info();
player->adjust_gp( -COST_PER_ROUND );
} /* decrease_points() */