#define REMEMBER_EFFECT "magic.mentalism.remembered.locations"
inherit COMMAND_BASE;
int cmd( string words ) {
mapping spells;
int position;
int enum;
if ( !words || ( words == "" ) )
return notify_fail( "Forget what?\n" );
spells = (mapping)this_player()->query_spells();
if(sscanf(words, "%d", position) == 1 ||
sscanf(words, "location %d", position) == 1) {
if(sizeof(TP->effects_matching(REMEMBER_EFFECT)) > 0) {
enum = TP->effects_matching(REMEMBER_EFFECT)[0];
if(position > sizeof(TP->arg_of(enum))|| position < 1) {
return notify_fail("You do not know a location by that number!\n");
}
TP->set_arg_of(enum,
delete(TP->arg_of(enum), ((position*2)-2), 2));
if(sizeof(TP->arg_of(enum)) > 0) {
tell_object(TP, "You forget that location!\n");
}
else {
TP->delete_effect(enum);
}
return 1;
}
}
if ( !spells[ words ] )
return notify_fail( "You do not know \""+ words +"\".\n" );
if ( !catch( spells[ words ][ 0 ]->force_load() ) )
if ( !spells[ words ][ 0 ]->query_magic_spell() )
return notify_fail( "You can only forget magic spells.\n" );
this_player()->remove_spell( words );
write( "You forget "+ words +".\n" );
say( (string)this_player()->one_short() +
" concentrates for a moment.\n" );
return 1;
} /* cmd() */
int teach( object thing ) {
thing->add_known_command( "forget" );
return 1;
} /* teach() */
string help() {
return "Syntax: forget <spell>\nforget [location] <number>\n"
"This command allows you to forget magic spells that you no "
"longer wish to know.\nIt also allows you to forget locations "
"that you are remembering.\n\n"
"Example:\n\n"
"> forget Ethereal Light\n"
"You forget Ethereal Light.\n"
"> forget location 1\n"
"You forget the location you were remembering!\n\n"
"See also:\n"
" remember\n";
} /* help() */