Constant Story "Opening a closed can"; Constant Headline "^An exercise in coding futility^^"; CONSTANT DEATH_MENTION_UNDO; CONSTANT DEBUG; Replace ScoreSub; Include "Parser"; Include "Verblib"; Include "Grammar"; [Initialise ; Banner(); lookmode=2; location=Kitchen; print "^You are in the kitchen of your house. Your cat, a can of catfood and a can opener are here.^";return 2;]; Class GameRm has light ; Class NPC has animate ; GameRm Kitchen "Kitchen" with description "This is the kitchen of your house.", ; NPC -> Cat "Wolfgang" with name 'cat' 'kitty' 'pussy' 'feline' 'wolfie' 'wolfy' 'Wolfgang', description [; "This is Wolfgang, your cat. (aka Wolfie or Wolfy).He is a pretty good companion, but he has this habit of shredding everything in sight if he is not fed on time. As a result, you usually keep a good supply of cat food on hand.";], describe [;"Wolfgang is here.";], before [; talk: "Here kitty kitty kitty kitty kitty!^ Wolfie just stares at you like you're some kinda nut!"; feed: if (CatCan hasnt open && Catfood has concealed) "You've fed Wolfie all the catfood there is."; if (noun==Cat && CatCan hasnt open) "Wolfie can NOT bite thru a closed can."; if (CatCan has open && CatFood has concealed) "You've fed Wolfie all the catfood there is."; if (noun==Cat && CatCan has open) {give CatFood concealed; "You dump the food in Wolfies dish. He moves in like a shark in a feeding frenzy.";};], has animate male proper ; Object -> CatCan "Catfood" with name 'can' 'of' 'sheena' 'label', article "a can of", wasopened false, description [; if (self hasnt open ) "The can is unopened. You can barely make out the label.^"; "The can is opened. You can barely make out the label.^";], before [; read: "SHEENA CATFOOD - For a real jungle flavor."; eat: if (self hasnt open) "The can ain't open!"; if (self has open && catfood has concealed) "There's no food left. Wolfie at it all."; if (self has open && catfood hasnt concealed) { deadflag=1; "You taste the cat food. It's a little gamey, but not too bad! Wolfie gets pissed since you've eaten all his remaining food and takes his wrath out upon you.";}; feed: if (second == Cat && self hasnt open) "Don't be silly! Wolfie only eats food not cans!"; if (second == Cat && self has open) <>; open: if (self has open) "You've already opened the can."; if (self hasnt open && self.wasopened) {give self open; "You reopen the can this time you don't need the opener.";}; if (self hasnt open && second ==0) "You need something to open the can with."; if (self hasnt open && second == CanOpener) {give self open; self.wasopened=true; "You open the can. Wolfie starts climbing your leg to get to the catfood inside.";};], has container openable ; Object -> -> Catfood "Cat Food" with name 'food' 'catfood', article "a bunch of", description "A bunch of dark brown stinky gooey catfood.", before [; examine: if (CatCan hasnt open) "You need to open the can before you can examine the mess inside it."; feed: if (self has concealed) "You've fed all the food there is to Wolfie. You need to go to the store and buy some more."; if (second ==Cat && self hasnt concealed) {give self concealed; "You dump the food in Wolfie's dish. He moves in like a shark in a feeding frenzy. and it is history in a matter of seconds.";}; if (second ==0) "Who do you want to feed the food to?"; if (second == Cat && CatCan hasnt open) "Wolfie can NOT bite thru a closed can."; smell: if (self has concealed) "There is no Cat Food here to smell."; "You smell the cat food. The odor cuts right through your sinuses. Wolfie ought to really like this !";]; Object -> CanOpener "Can Opener" with name 'opener', description "This is an all purpose electric can opener with knife-sharpening attachment.", initial "There is an electric can opener here. (mounted on the wall)", before [; take: "Since you ain't Superman you are unable to rip the opener from the wall.";], has static lockable ; [FeedSub; "You can't feed that!";]; [ReadSub; "You can't read that!";]; [ScoreSub; "There is no score in this game.";]; [TalkSub; if (noun==player) "Talking to yourself again are ya?"; if (noun hasnt animate) "Talking to inanimate objects again are we?";]; verb 'talk' * -> Talk * 'to' noun -> Talk;