/* Do not remove the headers from this file! see /USAGE for more info. */ void dispatch_opponent(); void do_game_command(string str); void do_move_away(); //:FUNCTION flee // Try to run away. Does nothing by default. Overload this function to // modify the behavior of your monster when it panics. void flee() { // do_move_away(); } //:FUNCTION surrender // Try to surrender. Does nothing by default. Overload this function to // modify the behavior of your monster when it panicss. void surrender() { } //:FUNCTION panic // Do something intelligent when we are about to die. Overload this // to have your monster do something else when it's hp's get low. // The default behavior is to randomly flee or surrender. void panic() { if(random(10) < 3) flee(); else surrender(); } //:FUNCTION target_is_asleep // Called with the person we are attacking is asleep or unconscious. // Default behavior is to finish them off. Overload this function if you // want your monster to do something other than killing its victims. // Rob them, etc.. void target_is_asleep() { dispatch_opponent(); } //:FUNCTION do_move_away //Moves through a random exit. Probable implementation of "flee" void do_move_away() { string array directions; string chosen_dir; string file; object dest; if(environment(this_object())) directions=environment(this_object())->query_exit_directions(); /* Stop if there are no directions (this takes care of blue prints*/ if(!sizeof(directions)) return; chosen_dir=choice(directions); file=environment(this_object())->query_exit_destination(chosen_dir); /* If the file is null or a null string then give up */ if(!file||file=="") return; /* If the destination is not loaded, do so */ dest=load_object(file); /* If still no destination it won't load, try again next time */ if(!dest) return; do_game_command(sprintf("go %s",chosen_dir)); }