#define COST 50
#define SKILL "general.perception"
inherit COMMAND_BASE;
int cmd() {
if( TP->query_blinded() ) {
add_failed_mess("How can you watch anything? You're blind.\n");
return 0;
}
if( sizeof( (int *)TP->effects_matching( "mind.alertness" ) ) ) {
add_failed_mess("You are already alert and watching your "
"surroundings.\n");
return 0;
}
if( !TASKMASTER_H->point_tasker( TP, "general", COST ) ) {
add_failed_mess("You can't concentrate enough to watch "
"your surroundings.\n");
return 0;
}
XP_H->handle_xp( TP, COST, 1 );
TP->add_effect( EFFECTS_DIR "/other/alertness", 60 +
(int)TP->query_skill_bonus(SKILL) / 3 );
add_succeeded_mess("");
return 1;
} /* cmd() */
int stop_watching() {
int *enums, id;
if( sizeof( enums = TP->effects_matching("mind.alertness") ) )
foreach( id in enums )
TP->delete_effect( id );
else
add_succeeded_mess( ({ "You are not currently watching!\n", "" }) );
return 1;
} /* stop_watching() */
mixed *query_patterns() {
return ({ "stop", (: stop_watching() :),
"", (: cmd() :) });
} /* query_patterns() */