/* /lib/events/give.c * From the Dead Souls Object Library * Give event handler * Created by Descartes of Borg 970101 * Version: @(#) give.c 1.1@(#) * Last modified: 97/01/01 */ // abstract methods mixed CanDrop(object who); string GetDefiniteShort(); int GetMass(); // end abstract methods mixed indirect_give_liv_obj(object target) { mixed tmp; if( environment() != this_player() ) { return "#You cannot give what is not yours."; } tmp = CanDrop(this_player()); if( tmp != 1 ) { return (tmp || "You can't drop " + GetDefiniteShort() + "."); } tmp = target->CanCarry(GetMass()); if( tmp != 1 ) { return (tmp || capitalize(GetDefiniteShort()) + " is too heavy."); } return 1; } mixed direct_give_obj_to_liv() { mixed tmp; if(environment() == this_player() && CanDrop(this_player())) return 1; if( environment() != this_player() ) { return "#You cannot give what is not yours."; } tmp = CanDrop(this_player()); if( tmp != 1 ) { return (tmp || "#You can't drop " + GetDefiniteShort() + "."); } else return 1; } mixed direct_give_obj_liv(){ return direct_give_obj_to_liv(); }