Raveness' Picnic Basket

A picnic basket of foods items, with various commands to eat, drink, make a sandwich and use utensils.

Category: Other
Compatibility: CobraMUSH, PennMUSH.

Instructions

Copy and paste the below code into a compatible MUSH or MUX.

MUSHCode for Raveness' Picnic Basket

@create Basket
@lock Basket==me
@set Basket = TRUST
@set Basket = ENTER_OK
@set Basket = MONITOR
@set Basket = !NO_COMMAND
&BCLOSE Basket=$.bclose:@set me=opaque;@pemit %#=You close the [name(me)].;@oemit %#=%n closes the [name(me)].
&BHELP Basket=$.bhelp*:@pemit %#=[ansi(y,[repeat(-~,39)])%r[space(3)]Type:[space(11)]Result:%r[space(2)].bclose[space(10)]Shuts the [name(me)], contents unviewable.%r[space(2).bopen[space(11)]Opens the [name(me)], contents viewable by: look [name(me)].%r[space(25)]**viewable to others, if dropped or not%r[space(27)with typing: look china's [name(me)]%r[space(2).bput <item>[space(5)]You put an item into the [name(me)].%r[space(25)]**YOU have to pick <item> up first%r[space(2)].btake <item>[space(4)]You take an item out of the [name(me)].%r[space(25)]**Item is placed in YOUR inventory%r[space(2)].block[space(11)]Locks the [name(me)], disallowing others from taking items.%r[space(2)].bulock[space(10)]Unlocks the [name(me)], allowing others to take items out.%r[ansi(y,[repeat(-~,39)])]
&BLOCK Basket=$.block:@ulock me=China;@pemit %#=You lock the [name(me)].;@oemit %#=%n locks the [name(me)]
&BOPEN Basket=$.bopen:@set me=!opaque;@pemit %#=You open the [name(me)].;@oemit %#=%n opens the [name(me)].
&BPUT Basket=$.bput *:@tel %0=%!;@pemit %#=You put %0 into the [name(me)].;@oemit %#=%n puts %0 into the [name(me)].
&BTAKE Basket=$.btake *:@tel %0=num(*%#);@pemit %#=You take %0 out of the [name(me)].;@oemit %#=%n takes %0 out of the [name(me)].
&BULOCK Basket=$.bulock:@ulock me=;@pemit %#=You unlock the [name(me)].;@oemit %#=%n unlocks the [name(me)]
&DESC.BACKPACK Basket=[ansi(y,[repeat(-~,39)])]%rThis is a medium size backpack, 2 feet x 1 foot x 5 inches, khaki colored with a brown leather bottom section and black straps. It's limited by its size to the quantity of items it can contain. Two small tags are attached to the top loop. One identifies it as belonging to [name(owner(%!))], the other says: .bhelp%r[ansi(y,[repeat(-~,39)])]
&DESC.BASKET Basket=[ansi(y,[repeat(-~,39)])]%rThis is a medium size, wicker basket, about 18 inches X 10 inches X 12 inches high. It has two flaps on the top that lift open at either end, which also can be locked. The basket is limited by its size to the quantity of items it can contain. Two small tags are attached to the handle. One identifies it as belonging to [name(owner(%!))], the other says: .bmenu%r[ansi(y,[repeat(-~,39)])]
&DESCRIBE Basket=[ansi(y,[repeat(-~,39)])]%rThis is a large wicker basket, about 18 inches X 14 inches X 12 inches high. It has two flaps on the top that lift, allowing access at either end. It can also be locked. The basket is limited by its size to the quantity of items it can contain. Two small tags are attached to the handle. One identifies it as belonging to [name(owner(%!))], the other says: .bmenu%r[ansi(y,[repeat(-~,39)])]
@set Basket/DESCRIBE=no_command visual public nearby
&EAT.A Basket=$.eata:@emit %n uses %p fork and takes a bite of the apple pie.
&EAT.C Basket=$.eatc:@emit %n opens a ziplock bag, cuts off a small hunk of Colby cheese and begins eating it as %s closes the bag.
&EAT.F Basket=$.eatf:@emit %n cuts off a piece of french bread and eats it.
&EAT.G Basket=$.eatg:@emit %n reaches into the plastic wrap, gets a grape and pops it into %p mouth.
&EAT.M Basket=$.eatm:@emit %n sticks a spoon in the mustard jar, and gets some to taste.
&EAT.P Basket=$.eatp:@emit %n gets a jumbo dill pickle out of its jar and begins munching on it.
&EAT.R Basket=$.eatr:@emit %n cuts off a slice of roast beef. Then after re-sealing the container, proceeds to eating it.
&EAT.S Basket=$.eats:@emit %n takes a strawberry from their container, and nibbles it.
&EFAIL Basket=You try, but you are 'obviously' too big to fit in the [name(me)].
@set Basket/EFAIL=no_command
&E_DRINK.L Basket=$.drinkl:@emit %n takes a sip of %p lemonade.
&E_EAT.SAND Basket=$.eatsand:@emit %n takes a bite of %p sandwich.
&E_FORK Basket=$.fork:@emit %n gets a fork from the basket.
&E_GET.PIE Basket=$.getpie:@emit %n uses a fork and carefully takes a piece of the apple pie from the basket and places it on %p plate.
&E_GLASS Basket=$.glass:@emit %n gets a glass from the basket.
&E_KNIFE Basket=$.knife:@emit %n gets a knife from the basket.
&E_MAKE.SAND Basket=$.makesand:@emit %n slices off two pieces of bread and spreads some mustard on them. Then %s proceeds to put on some slices of roast beef, a couple slices of cheese, and slices a pickle to put on top, completing the sandwich.
&E_MENU Basket=$.bmenu:@pemit %#=[repeat(-=,39)]%rFOOD/ITEMS IN THE BASKET:%r%rFrench Bread, Roast Beef, Cheese, Pickles, Mustard%rStrawberries, Grapes%rApple Pie%rLemonade%rKnives, Forks, Spoons, Plates, Glasses, Napkins%r[repeat(.,80)]%RDIRECTIONS:%R%RTo eat any of the food, type: [ansi(h,.eat<first letter of the food>)]%RTo drink the lemonade, type: [ansi(h,.drinkl)]%r%rTo pour a glass of lemonade type: [ansi(h,.pourl)]%r%rTo make a sandwich, type: [ansi(h,.makesand)]%RTo eat the sandwich, type: [ansi(h,.eatsand)]%rTo get a complete piece of the pie, type: [ansi(h,.getpie)]%R%RTo get a utensil or napkin, type: [ansi(h, .knife%b%b.fork%b%b.spoon%b%b.plate%b%b.glass%b%b.napkin)]%r%rTo clean up, type: [ansi(h,.trash)]%r[repeat(-=,39)]
&E_NAPKIN Basket=$.napkin:@emit %n gets a napkin from the basket to use.
&E_PLATE Basket=$.plate:@emit %n gets a plate from the basket.
&E_POUR.L Basket=$.pourl:@emit %n pours some lemonade from its container, into %p glass.
&E_SPOON Basket=$.spoon:@emit %n gets a spoon from the basket.
&E_TRASH Basket=$.trash:@emit %n places all %p trash in a plastic garbage bag.
&FN_ENTER Basket=[and(switch(%c,en*,1,0),hastype(%#,Player))]
&ISPLAYER Basket=[hastype(%0,Player)]
&OEFAIL Basket=tries to enter the [name(me)] but is 'obviously' too big.
@set Basket/OEFAIL=no_command

look Basket