/* /lib/events/wield.c * From the Dead Souls V Object Library * Handles the wielding of things * Created by Descartes of Borg 970101 * Version: @(#) wield.c 1.1@(#) * Last modified: 97/01/01 */ // abstract methods int GetHands(); mixed CanEquip(object who, string array limbs); mixed CanUnequip(object who); // end abstract methods mixed direct_unwield_obj() { if( environment() != this_player() ) { return "#You don't have that!"; } return CanUnequip(this_player()); } mixed direct_wield_obj() { int hands = GetHands(); string array limbs; if( environment() != this_player() ) { return "#You don't have that!"; } limbs = (this_player()->GetWieldingLimbs() || ({})); limbs = filter(limbs, (: !this_player()->GetWielded($1) :)); if( !sizeof(limbs) ) { return "You have nowhere to wield it!"; } if( sizeof(limbs) > hands ) { limbs = limbs[0..(hands-1)]; } return CanEquip(this_player(), limbs); } mixed direct_wield_obj_word_str(object target, string wrd, string limb) { if( environment() != this_player() ) { return "#You don't have that!"; } return CanEquip(this_player(), explode_list(limb)); }