#include <position.h> #include <medium.h> #include <message_class.h> mixed eventFall() { object env = environment(); mixed rumbo = 0; string name = this_object()->GetName(); if(!living(this_object())) name = this_object()->GetShort(); if(!env || !(rumbo = env->GetExit("down"))) return 0; if(env == rumbo) return 0; if(env->GetMedium() != MEDIUM_AIR){ send_messages("fall", "$agent_name $agent_verb to the ground.", this_object(), 0, env); if(living(this_object())) this_object()->SetPosition(POSITION_LYING); return 1; } else { //tc("rumbo: "+identify(rumbo)); if(!rumbo) return 0; if(stringp(rumbo)) rumbo = load_object(rumbo); if(!rumbo){ //tc("Couldn't load rumbo!","red"); return 0; } tell_object(this_object(),"You plummet downward!"); //tc("I am "+identify(this_object())+" and my location is :"+identify(environment()),"red"); if(this_object()->eventMove(rumbo)){ //tc("I am "+identify(this_object())+" and my location is :"+identify(environment()),"green"); //tc("env is: "+identify(env)); //tc("rumbo is: "+identify(rumbo)); //flush_messages(); //rumbo->eventPrint(this_object()->GetName()+" plummets in from above.",MSG_ENV); //tell_room(rumbo,this_object()->GetName()+" plummets in from above.", //({ this_object() })); //flush_messages(); tell_room(env,capitalize(name)+" continues "+ possessive(this_object())+" fall downward.", ({ this_object() })); tell_room(rumbo,capitalize(name)+" plummets in from above.", ({ this_object() })); if(rumbo->GetMedium() == MEDIUM_AIR && !(this_object()->CanFly())){ call_out( "eventFall", 1); } //flush_messages(); } return 1; } return 0; }