A Backpack (Wearable Container)

// Petrarch #include <std.h> inherit ARMOUR; inherit STORAGE; void create() { storage::create(); armour::create(); set_name("backpack"); set_id( ({ "pack", "backpack" }) ); set_adjectives( ({ "large", "canvas", "a" }) ); set_short("a large canvas backpack"); set_long("This is a crudely made canvas pack. It has thick straps, and is quite spacious."); set_mass(3); set_value(50); set_type("backpack"); set_max_encumbrance(150); set_prevent_put("You cannot put this in there!"); set_limbs(({"torso"})); set_ac(1); add_property("no steal", 1); set_material(({"cloth","leather"})); } void init() { armour::init(); storage::init(); } string query_short() { if(query_worn()) return storage::query_short()+" (worn)"; else return storage::query_short(); } // A bug reported by Hannibal, // A worn bag could be transfered to another player and casue // problems in the wearing code for both players. // So I edited the _give.c command to check, if any item is marked // as 'wierd' it will require that the player remove the item if // it is worn before it will allow them to give it away. // So this function is needed int wierd_move() { if(!query_worn()) return 0; message("info", "You must remove the pack before handing it over.", environment()); return 1; }