/* /verbs/rooms/fly.c * from the Dead Souls V Object Library * Like go, except for flying around * created by Descartes of Borg 961013 * Version: @(#) fly.c 1.2@(#) * Last modified: 96/10/13 */ #include <lib.h> #include <medium.h> #include "include/fly.h" inherit LIB_VERB; static void create() { verb::create(); SetVerb("fly"); SetRules("", "STR", "into STR"); SetErrorMessage("Fly in which direction?"); SetHelp("Syntax: <fly DIRECTION>\n" " <fly into PLACE>\n\n" "Moves you towards the direction you specify, or into the place " "you specify. The command \"fly into\" is synonymous with the " "\"enter\" command.\n\n" "See also: climb, enter, go, jump"); } mixed can_fly() { object env = environment(this_player()); if( !env ) { return "You are nowhere tobegin with!"; } switch( env->GetMedium() ) { case MEDIUM_LAND: return env->CanFly(this_player()); case MEDIUM_AIR: return "Fly where?"; default: return "You can't fly here."; } } mixed can_fly_str(string str) { if( !environment(this_player()) ) { return "You are nowhere."; } if( !creatorp(this_player()) && (int)this_player()->GetStaminaPoints() < 15 ) return "You are too tired to fly anywhere right now."; return (mixed)environment(this_player())->CanFly(this_player(), str); } mixed can_fly_into_str(string str) { if( !environment(this_player()) ) { return "You are nowhere."; } if( !creatorp(this_player()) && (int)this_player()->GetStaminaPoints() < 3 ) return "You are too tired right now."; return (mixed)environment(this_player())->CanEnter(this_player(), str); } mixed do_fly() { return environment(this_player())->eventFly(this_player()); } mixed do_fly_str(string str) { return (mixed)environment(this_player())->eventFly(this_player(), str); } mixed do_fly_into_str(string str) { return (mixed)environment(this_player())->eventEnter(this_player(), str); }