// _equip.c // Command to equip armor // Mobydick@TMI-2, 9/17/92 #include <mudlib.h> inherit DAEMON ; int cmd_equip(string str, int silent) { mapping armor ; object obj, fwep, swep ; string type ; int Class ; notify_fail("Equip what?\n"); if(!str || str == "") return 0; obj = present (str,this_player()) ; if (!obj) { notify_fail ("You don't possess a "+str+".\n") ; return 0 ; } if (undefinedp(obj->query("armor"))) { notify_fail ("That isn't armor.\n") ; return 0 ; } Class = obj->query("armor") ; if (obj->query("equipped")) { // He's already equipping it. Tell him so. notify_fail ("You are already equipping it!\n") ; return 0 ; } // If this is a shield, check his weapons and make sure he has a free arm. type = obj->query("type") ; if (type=="shield") { fwep = this_player()->query("weapon1") ; swep = this_player()->query("weapon2") ; if (swep) { notify_fail ("You can't use the shield and two weapons at the same time.\n") ; return 0 ; } if (fwep && (int)fwep->query("nosecond")==1) { notify_fail ("You must have a free arm to use the shield.\n") ; return 0 ; } } armor = this_player()->query("armor") ; if (armor && member_array(type, keys(armor))!=-1) { notify_fail ("You are already wearing armor of type "+type+".\n"); return 0 ; } this_player()->block_attack(6) ; if(!silent) { write ("You equip "+obj->query("short")+".\n") ; say (this_player()->query("cap_name")+" equips "+obj->query("short")+".\n") ; } this_player()->set("armor/"+type,obj->query("armor")) ; obj->set("equipped",1) ; str = obj->query("equip_func"); if(str) call_other(obj, str); this_player()->calc_armor_class() ; return 1 ; } string help() { return("Syntax: equip <armor>\n\n"+ "The equip command lets you wear armor. There are several types of armor\n"+ "(suit, shield, helmet, etc) and you may equip one of each type. Equipping\n"+ "a shield will prevent you from using two weapons, or a two-handed weapon.\n"+ "\nSee also: wield\n") ; }