Constant Story "Deep Breathing"; Constant Headline "^An Interactive Porkchop^Speed-IF Gruff entry by Admiral Jota. Freely copy.^^"; Constant MAX_SCORE = 5; Replace BlowSub; Include "Parser"; Include "VerbLib"; Object outside "West of House" with name 'quarry' 'clearing', description [; if (house in self) "You've tracked your quarry to this small clearing in the woods. Before you to the east is the hastily-constructed shack where you suspect they've hidden themselves. There is also, as always, a mailbox."; "You've tracked your quarry to this small clearing in the woods. Before you to the east is the plot of land where a hastily-constructed shack once stood. There is also, as always, a mailbox."; ], e_to [; if (house in self) return thedoor; "Why? The pigs are right here."; ], ne_to [; if (house in self) "You walk around the shack, but find no other entrances. Eventually you end up where you started.",; "Why? The pigs are right here."; ], se_to [; if (house in self) "You walk around the shack, but find no other entrances. Eventually you end up where you started.",; "Why? The pigs are right here."; ], cant_go "You didn't come all this way just to turn around without dinner!", has light; Object -> house "straw house" with name 'straw' 'house' 'shack' 'small' 'hastily-constructed' 'roof', description "It's a small house, apparently built entirely from straw. There are no windows, and the front door is closed.", number 0, before [; Open: << Open thedoor >>; Attack: << Attack thedoor >>; Take: "You pull out a few strands of straw, then let them blow away on the breeze."; HuffOn: if (self.number > 0) "You've already done that part."; self.number = 1; score = 1; "You fill your lungs with air, then expel it with significant force. The house trembles slightly.^^ You hear a high-pitched voice from inside the house saying, ~Maybe we should have split up.~^^ A slightly lower voice answers, ~Maybe you should shut up.~"; PuffOn: if (self.number < 1) "Please, there is a proper order to all things."; if (self.number > 1) "You've done that. You're ready to make your coup de grace -- your ~finishing blow~, so to speak."; self.number = 2; score = 2; "You inhale as deeply as you can, then let it all out. The walls of the house shake, and pieces of the roof break off and fly away. There, you should be all warmed up now.^^ A deep voice inside the house says, ~I should have never trusted you to build this thing.~^^ The higher voice says, ~No one stopped you from making your own!~"; Blow: if (self.number < 2) "You need to warm up a bit first."; if (self.number > 2) "Dude, you're done. Chow down."; move pigs to outside; remove self; score = 4; "You've huffed, and you've puffed. Your lungs are now ready for your most powerful attack. The very atmosphere grows thin as you suck nearly every molecule of air within several hundred yards within yourself. After a moment's contemplation to focus your chi, you release everything in one dire blast.^^ The trees themselves shake with the force of your attack. The house of straw had no chance: where it once stood, there is now nothing but a free-standing door and three frightened little pigs.^^ The middle pig says, ~Well, crap.~"; ], react_before [; Huff: << HuffOn self >>; Puff: << PuffOn self >>; ], has scenery; Object -> thedoor "door" with name 'door', description "It's woven from straw, and looks to be slightly stronger than the rest of the house.", before [; Attack, Take: "It may only be made of straw, but it's still strong enough to withstand your blows. And really, your hands have never exactly been your strongest weapon."; HuffOn: << HuffOn house >>; PuffOn: << PuffOn house >>; Blow: << Blow house >>; ], has locked scenery concealed openable door; Object -> mailbox "mailbox" with name 'mailbox', description "A cheap model. It doesn't even have a little flap to open or close. On the side of the box is printed the text ~PIG, L. x 3~.", before [; Search: if (~~child(self)) "There's no mail. They did just move in, after all."; Attack: "Violence against mailboxes isn't the answer to this one."; ], has open scenery container; Object -> forest "forest" with name 'forest' 'woods' 'trees' 'tree', description "Yeah, trees and stuff. Y'know, woodsy things.", before [; Enter: << Go w_obj >>; ], has scenery concealed; Object -> organs "your internal organs" with name 'organ' 'organs' 'lungs' 'lung' 'stomach', before [; default: "If you're ever in a situation where you can actually see your internal organs, you're in more trouble than I can help you with."; ], has scenery concealed; Object -> wolf "Big Bad Wolf" with name 'big' 'bad' 'wolf', description "Tall and furry, with immense lungs and an empty stomach." has animate proper; Object pigs "three little pigs" with name 'three' 'little' 'pigs' 'piggies' 'middle' 'pig' 'oldest' 'youngest', description "Three little pigs, too terrified to run. They look absolutely scrumptious.", before [; Eat, Take, Attack: score = 5; deadflag = 3; print "You grab them all at once in your arms, then toss them one by one into your gaping maw. "; style bold; print "Gulp. Gulp. Guuuulp."; style roman; " Delicious. Especially the big one."; ], life [; Ask, Tell, Answer, Order: "You're a bit out of breath at this point. And anyway, you didn't come all this way just as a social call."; ], has pluralname animate; [ Initialise; ChangePlayer(wolf); location = outside; "^^^You are hungry. Long have you hunted, but fortunately, you finally smell food nearby.^^^"; ]; [ DeathMessage; if (deadflag == 3) print "You have eaten."; ]; [ XyzzySub; "Entry for Speed-IF Gruff: ^ ~Premise is fractured fairy tale: the whole story or a single scene, redone in whatever funny/creepy/weird/etc. variation you would like. No hard deadline, but don't spend more than 2 hours. Sign here when done.~"; ]; [ HuffSub; "Be more specific about what you want to huff at."; ]; [ PuffSub; "Be more specific about what you want to puff at."; ]; [ HuffOnSub; "Don't waste your breath on that."; ]; [ PuffOnSub; "Don't waste your breath on that."; ]; [ BlowSub; "Don't waste your breath on that."; ]; Include "Grammar"; Verb 'xyzzy' * -> Xyzzy; Verb 'huff' * -> Huff * 'at' noun -> HuffOn * 'on' noun -> HuffOn; Verb 'puff' * -> Puff * 'at' noun -> PuffOn * 'on' noun -> PuffOn; Extend 'blow' first * noun -> Blow * noun 'down' -> Blow * 'down' noun -> Blow * 'on' noun -> Blow; Verb 'breathe' * 'on' noun -> Blow;