#import "lib.ih"

! Not really a MSTing, but a sort of 5 minute distraction.
! The original game was actually Ok (in an incredibly
! brief sort of way).

LibraryMessage 1 "<br><br><b>PICK UP THE PHONE BOOTH AND DIE</b>
                 <br><i>A NyQuil nightmare by R. Noyes</i>
                 <br>Release 619 / Serial number 960409 / Inform v1502 Library 5/12
                 <br>Standard interpreter 1.0
                 <br>
                 <br><b>CROW:</b>  What the hell is NyQuil?
                 <br><b>MIKE:</b>  I guess the guy lived in New York and wrote it with that old Gilsoft tool
                 ~The Quill~ first, just to get it right before he did it in Inform.
                 <br><b>TOM:</b>   Wow! You think?
                 <br><b>MIKE:</b>  Not really. I'm talking out of my ass, now be quiet."

LibraryMessage 201 "You grunt with all your might and heave the phone booth onto your
                   shoulders.  For a moment or two it looks as if you're not going to be
                   able to lift it, but heroically you finally lift it high in the air!
                   Seconds later, however, you topple underneath the weight, and the booth crushes you
                   fatally.  Geez!  Didn't I tell you not to pick up the phone booth?!
                   Isn't the name of this very game ~Pick Up The Phone Booth and Die~?!
                   Man, you're dense.  No big loss to humanity, I tell ya."

LibraryMessage 202 "A familiar sound now comes out of the phone's receiver, lying pathetically on
                   the ground.  You glare in satisfaction as you to the repetitive BEEPBEEPBEEPBEEP sound
                   and then as the recorded voice of the Operator, the person you're going to marry someday,
                   comes on and says...
                   <br>
                   <br>
                   <br><b>CROW:</b> [Glaring] I'm, like SO satisfied d00dz.
                   <br><b>TOM:</b>  I too glare in satisfaction.
                   <br><b>MIKE:</b> As I me to the repetitive BEEP?
                   <br><b>TOM:</b>  As I you to the repetitive what?
                   <br><b>CROW:</b> Eh?
                   <br>
                   <br>~... if you would like to make a call, please hang up and try again.  If you
                   would like to make a call, please hang up and try again ...~
                   <br>
                   <br><b>MIKE:</b>  I guess that's it.
                       <br><b>CROW:</b>  Is that it?
                       <br><b>TOM:</b>   [Yogi] Well, that was quicker-than-the-average gnat ejaculation.
                       <br>
                       <br><i>[SOL]</i>
                       <br>
                       <br><b>MIKE:</b>  So that was ~Pick Up The Phone Booth And Die~ - A stark, traumatising look into the imagination of a lazy,
                              ham-fisted bar-steward who could only be arsed to implement one location and one object.
                       <br><b>TOM:</b>   And neither of those particularly well.
                       <br><b>CROW:</b>  But he did it with style.
                       <br><b>TOM:</b>   Eh? It was dross! Complete abysmal toss! You were there!
                       <br><b>CROW:</b>  Yeah, but the guy could SPELL!
                       <br><b>TOM:</b>   That's a point, why the hell were we MiSTing a game without any bad spelling errors?
                       <br><b>MIKE:</b>  I think the lesson is that spelling does not make a quality game, moreover I think that
                              this ~game~ was Mr Noyes attempting to be witty and ironic - Sort of the IF equivalent of
                              those artists that nail their soiled underwear to a piece of wood, while art critics stand
                              around verbally masturbating.
                       <br><b>CROW:</b>  That sham was supposed to be *funny*? Talk about underwear some more!
                       <br><b>MIKE:</b>  No, no! The whole thing was intended to be a joke in the first place!
                       <br><b>CROW:</b>  I don't get it.
                       <br><b>TOM:</b>   But it's not funny!
                       <br><b>MIKE:</b>  Well, I didn't enjoy it either, but if you look on the web, everyone raved about it..
                       <br><b>CROW:</b>  It must be good if it's on the web. They can't let people say stuff like that on the web
                              unless it's true.
                       <br>
                       <br><i>[Deep 13]</i>
                       <br>
                       <br><b>Dr.F:</b>  So how did you enjoy that little piece of work? Have you achieved inner peace and enlightenment?
                       <br>
                       <br><i>[SOL]</i>
                       <br>
                       <br><b>MIKE:</b>  [Pale and ill looking] Strangely enough, I feel like there's a huge vacuum where my mind should be and I've lost all will to live...
                       <br><b>TOM:</b>   Screw this for a game of soldiers, let's go back to IF art.
                       <br><b>CROW:</b>  I'm with you buddy - I want to see an exclamation mark stuck in the middle of a stark, empty
                              screen, illustrating the inherent loneliness of existence...
                       <br><b>TOM:</b>   Funny you should say that...
                       <br>
                       <br><i>[Tom and Crow return to the computer.]</i>
                       <br>
                       <br><i>[Deep 13]</i>
                       <br>
                       <br><i>[Dr.F takes a step sideways to reveal Frank. Various wires and electrodes are sellotaped all over his head.
                       He is hovering some two feet in the air, having adopted the Lotus position with a peaceful smile on his face and his eyes closed.]</i>
                       <br>
                       <br><i>[Suddenly, Frank's eyes open wide.]</i>
                       <br>
                       <br><b>FRANK:</b> The truth is in here!
                       <br>
                       <br><i>[Momentarily, the URL www.ifarchive.org flashes onto the screen.] </i>
                       <br>
                       <br><i>[Frank lightly touches the index fingers of each hand to his temples and the button presses itself.
                       Everything goes black.]</i>"


LibraryMessage 203 "You give the damn phone booth a mighty push and watch as, in a brilliant
                   slow-motion display, it topples over, glass sides shattering onto the lawn,
                   welded door crumpling under the impact, the phone itself flying off the hook
                   and landing pathetically in a mass of metal and plastic. You have the distinct
                   feeling that the booth will bother you no more."

LibraryMessage 204 "<br><b>LEGAL:</b>
                       <br>
                       <br><b>Mystery Science Theatre 3000 and all its characters are Copyright 199x Best Brains.</b>
                       <br>
                       <br>1...2...3...4...5...6...G...
                       <br>
                       <br><i>[SOL]</i>
                       <br>
                       <br><i>[Tom and Crow sit at a computer, apparently pushing buttons at random.]</i>
                       <br>
                       <br><b>BOTS:</b>  [Gesticulating wildly] Woooooaaah!
                       <br>
                       <br><i>[Mike wanders over to see what the bots are looking at.]</i>
                       <br>
                       <br><b>MIKE:</b>  But it's just the word ~move~ with a letter ~o~ bouncing around in it!
                       <br><b>CROW:</b>  I'd like to see *you* make it do that Mr. Smarty-pants.
                       <br><b>TOM:</b>   Yeah! That standard of coding expertise takes at least a million man years of development and
                       demonstrates the hundreds of authors' symbiotic relationship with their computers.
                       <br><b>CROW:</b>  And it looks cool too!
                       <br><b>MIKE:</b>  You guys are wierd.
                       <br><b>TOM:</b>   Go on Mike, press a key and try it out! Any key will do!
                       <br>
                       <br><i>[Mike leans over and presses a key at random - it is the number 7.]</i>
                       <br>
                       <br><b>TOM:</b>   [Excited] Wow! Strange word patterns containing highly topical weather nomenclature!
                       <br><b>CROW:</b>  Eh?
                       <br>
                       <br><i>[Mike shrugs and rolls his eyes.]</i>
                       <br>
                       <br><i>[Deep 13]</i>
                       <br>
                       <br><b>Dr.F:</b> Ahh! Greetings! I see you are looking into some of the zen
                       areas of interactive fiction. I currently have Frank locked away trying to achieve Nirvana..
                       <br>
                       <br><i>[SOL]</i>
                       <br>
                       <br><b>CROW:</b> Bring it on! [Strumming air guitar] ~Load up on drugs and kill your friends...~
                       <br>
                       <br><i>[Deep 13]</i>
                       <br>
                       <br><b>Dr.F:</b> [Flashes Crow a disdainful look and continues] ..by plugging him directly into some highly surreal
                             nonsense, authored by a gaggle of retarded bonobo chimpazees with this ~Inform~ thing.
                             Anyway, it is rather fortuitous that you happen to be looking at this very area, as we have a
                             real ~treat~ of an experiment for you this week. It's R. Noyes' post-modern, neo-nihilistic,
                             crack-smoking, astonishing-in-its-minimalistic-brevity [pauses to take a breath] classic
                             ~Pick Up The Phone Booth And Die~.
                       <br>The tension is set to pant-wetting levels from the moment you awake in the smoking aftermath
                             of a holocaust to find that civilisation has been reduced entirely to your uncharacterised PC and a telephone booth.
                       <br>
                       <br><i>[SOL]</i>
                       <br>
                       <br><b>TOM:</b>  Sounds like a fascinating dichotomy in a seminal medium to me.
                       <br><b>CROW:</b> We did Stiffy Makane the other week Servo.
                       <br>
                       <br><i>[Deep 13]</i>
                       <br>
                       <br><b>Dr.F:</b> Anyway, without further ado...
                       <br>
                       <br><i>[Dr.F reaches over and pushes the button]</i>
                       <br>
                       <br><b>ALL:</b>  WE'VE GOT MOVIE SIGN!!!
                       <br>
                       <br>
                       <br><i>[G...6...5...4...3...2...1...]
                       <br>
                       <br>[Mike and the bots enter the theater.]</i>
                       <br>
                       <br>And so you were taken from this place to another place, where you had absolutely
                       no damn idea what it is you're supposed to be doing.
                       <br>
                       <br><b>CROW:</b>  Welcome to my world.
                       <br><b>MIKE:</b>  So what else is new?
                       <br><b>TOM:</b>   Stop stating the obvious and get on with it.
                       <br>
                       <br>It's OK, you'll be all right.  Just don't pick up the phone booth, or else you'll die.
                       <br>
                       <br><b>TOM:</b>     Pretty easy for me I guess - you try picking up a phone booth with Slinkies(tm) for arms.
                       <br><b>CROW:</b>    [British] What's a phone booth, guv'nor?
                       <br><b>MIKE:</b>    [puts finger to lips] Ssshh!"

GameCode {
       Name "Pick Up The Phone Booth And Die"
       MaxItemsCanCarry 10
       MaxWeightCanCarry 10
       MaxSizeCanCarry 10
       StartingLocation townsquare
       Verbose yes
       ShowAvailableExits no
       AllowPersist yes
       SinglePlayerGame yes
       MaxUsers 1
       OverrideSecondaryNouns "66 68 69"
       UsingIAGECombat no
       UsingIAGEMoney no
       WideInventoryDisplay yes
       RealTimeNPCs no
       PlayersStayDead yes
       NPCsStayDead yes

       Start: Override [

               ' Opening message
               message(204).show

               ' Show the game version, the library version
               ' and output the start location to the player

               game.displayversion
               game.displaycurrentlocation

               ' default male/female pronouns
               call NPCPronouns.init
       ]

       Score: Override [

               var outs
               outs = |"In that game you scored " & currentplayer.score & " out of a possible 100, in " & currentplayer.turns & " turns, "|
               outs = |outs & "giving you the rank of "|

               if ( currentplayer.score = 100 ) then
                       outs = |outs & "phone booth pusher-over extraordinaire!"|
               else
                       outs = |outs & "total and utter loser, squished to death by a damn phone booth."|
               end if

               currentplayer.print outs
       ]

       AfterInput: Override [

               ;help,about,info
                       currentplayer.print "That's not a verb I recognise.<br>"
                       call QuipLib.Quip 90 "CROW" "Man, this sucks! How are we supposed to figure out such a fiendish puzzle?"
                       call QuipLib.Quip 91 "MIKE" "Maybe there's something under the phone booth?"
                       call QuipLib.Quip 92 "TOM" "Like the Godhead?"
                       call QuipLib.Quip 93 "MIKE" "No."
               endif

               ;examine
                       if ( input.noun = 4 ) then
                               currentplayer.print "As good-looking as ever.<br>"
                               call QuipLib.Quip 80 "CROW" "What the hell is that supposed to mean?"
                               call QuipLib.Quip 81 "MIKE" "Good-looking in a nondescript kind of way, you robotic nincompoop."
                               call QuipLib.Quip 82 "TOM" "Looks more like an ~I couldn't be bothered to change the library~ kind of way to me."
                               end
                       endif
               endif


               ' This line calls the standard AfterInput library, which generates
               ' stock responses. You can edit these responses by changing the
               ' messages 1 - 200
               call StandardLib.AfterInput

               if ( currentplayer.getvalue(haswon) = 1 ) then
                       message(202).show
                       call StandardLib.Won
                       end
               endif
       ]
}

Location townsquare "The Town Square" {
       Description "You are standing in the middle of a pretty town square
                    in the center of a nondescript New England town.  Like
                    most any other nondescript New England towns, there's
                    not much to see or do here, but maybe you'll find something
                    amusing and enjoyable to do."

       OnDisplay: [

               if ( currentplayer.getvalue(haswon) <> 1 ) then
                       currentplayer.print "<br><br>A shiny metal phone booth sits in the center of the square."
               else
                       currentplayer.print "<br><br>A metal phone booth has been pushed onto its side."
               endif

               call QuipLib.Quip 02 "<br><br>CROW" "What do you think we're supposed to do?"
               call QuipLib.Quip 03 "TOM" "Perhaps we could call some of our nondescript friends and find out?"
               call QuipLib.Quip 04 "CROW" "Do you think that phone booth looks amusing and enjoyable? There seems to be an absence of anything else."
               call QuipLib.Quip 05 "MIKE" "Leave off guys, I think he's captured New England perfectly, and this is supposed to be a ~minimalistic masterpiece~."

               if ( currentplayer.getvalue(firstloc) = 1 ) then
                       call QuipLib.Quip 06 "<br><br>TOM" "I can feel its eyes, boring into my naked soul."
                       call QuipLib.Quip 07 "CROW" "Your soul isn't the only thing that's naked Tom -- or boring come to that."
                       call QuipLib.Quip 08 "TOM" "Bitch."
               endif

               currentplayer.setvalue(firstloc) = 1
       ]

       OnInput: [

               ;get
                       if ( input.noun = 2 ) then
                               currentplayer.print "(the phone booth)"
                               ' Kill player for picking up the booth
                               call QuipLib.Quip 32 "<br>ALL" "NOOOOOOOO!!!!!!!!!"
                               message(201).show
                               call QuipLib.Quip 33 "<br>TOM" "Hey Mike!? Don't you human things have to be very strong to pick up one of these phone booths enough to drop it on yourself?"
                               currentplayer.print "<br>"
                               call StandardLib.Dead
                       endif
               endif

       ]

}

Item booth "a phone booth" {
       Nouns "phone" "booth" "box" "telephone"
       StartsIn townsquare
       Initial "A shiny metal phone booth sits in the center of the square."
       Description "It looks like any other normal phone booth you might see in any
                       other normal city, but this one has the words ~PHONE BOOTH~ scratched
                       out and ~P#0N3 B00TH~ instead.<br>
                       Someone has also added a smiley face under the two 00s in ~B00TH~."
       has scenery

       OnAction: [

               ;push
                       ' Player wins!
                       message(203).show

                       call QuipLib.Quip 26 "<br>CROW" "Is that it?"
                       call QuipLib.Quip 27 "MIKE" "On the upside, this experiment won't bother us any more."
                       call QuipLib.Quip 28 "CROW" "Is that it?"
                       call QuipLib.Quip 29 "TOM" "It would appear so."
                       call QuipLib.Quip 30 "MIKE" "Why hasn't this farce ended?"
                       call QuipLib.Quip 31 "CROW" "Arrgh! It won't let us out! Somebody help us, pleeeeease!<br>"

                       call StandardLib.AddScore 100

                       call QuipLib.Quip 32 "<br>ALL" "Now that's what <b>*WE*</b> call a scoring system!"

                       currentplayer.setvalue(haswon) = 1

                       end
               endif

               var showshutmess = 0

               ;get
                       #in
                               showshutmess = 1
                       endif
               endif

               ;get
                       ' Kill player for picking up the booth
                       call QuipLib.Quip 32 "<br>ALL" "NOOOOOOOO!!!!!!!!!"
                       message(201).show
                       call QuipLib.Quip 33 "<br>TOM" "Hey Mike!? Don't you human things have to be very strong to pick up one of these phone booths enough to drop it on yourself?"
                       currentplayer.print "<br>"
                       call StandardLib.Dead
               endif

               #in
                       showshutmess = 1
               endif

               ;open
                       showshutmess = 1
               endif

               if ( showshutmess = 1 ) then

                       currentplayer.print "The booth is welded shut.  Sucks to be you.<br>"

                       call QuipLib.Quip 17 "TOM" "I resent that implication."
                       call QuipLib.Quip 18 "CROW" "I resemble that remark."
                       call QuipLib.Quip 19 "MIKE" "We're not thinking right - what kind of a psycho welds a phone booth shut? Someone may need to make a 911 call or something."
                       end

               endif

               ;attack,hit,kick
                       currentplayer.print "Sure, that looks non suspicious, a psychopath attacking a phone booth!<br>"
                       call QuipLib.Quip 100 "MIKE" "To whom? There's nobody here!"
                       end
               endif

               ;eat
                       currentplayer.print "(first taking the phone booth)<br>"

                       call QuipLib.Quip 20 "ALL" "NOOOOOOOO!!!!!!!!!"

                       message(201).show

                       call QuipLib.Quip 21 "<br>TOM" "Well, fair enough but we only wanted to eat the damn phone box, not pick it up!"
                       call QuipLib.Quip 22 "CROW" "I feel violated, dirty, make it go away."
                       call QuipLib.Quip 23 "MIKE" "I swear it deliberately misunderstood and cheated us! [Slamming noise of flesh on metal]"
                       call QuipLib.Quip 24 "TOM" "Ow!"
                       call QuipLib.Quip 25 "MIKE" "Ah well, back to the drawing board..."

                       call StandardLib.Dead

                       end

               endif

               ;examine

                       currentplayer.print this.defaultexamine
                       currentplayer.print "<br>"

                       call QuipLib.Quip 09 "MIKE" "Those little hackers get everywhere - next thing you know they'll be sending badly written email viri in VBScript and dealing hardcore porn and warez."
                       call QuipLib.Quip 10 "TOM" "Yeah, persuading you to expand your penis at home for only $49.95!"
                       call QuipLib.Quip 11 "CROW" "What's a penis?"
                       call QuipLib.Quip 12 "TOM" "What's a viri?"
                       call QuipLib.Quip 13 "MIKE" "Um..."

                       if ( currentplayer.getvalue(exambooth) = 1 ) then
                               call QuipLib.Quip 14 "CROW" "It's an acid booth! We just need to hunt around for some bad tunes and hard drugs then get out of our little robotic minds to win the game!"
                               call QuipLib.Quip 15 "MIKE" "Do you see any narcotics around here?"
                               call QuipLib.Quip 16 "CROW" "[Sulking] They might have some class A nondescript stuff."
                       endif

                       currentplayer.setvalue(exambooth) = 1
               endif


               end
               proc before_get

                       ' Kill player for picking up the booth
                       cancelevent
                       call QuipLib.Quip 32 "<br>ALL" "NOOOOOOOO!!!!!!!!!"
                       message(201).show
                       call QuipLib.Quip 33 "<br>TOM" "Hey Mike!? Don't you human things have to be very strong to pick up one of these phone booths enough to drop it on yourself?"
                       currentplayer.print "<br>"
                       call StandardLib.Dead
               end
       ]
}

Module QuipLib {

       proc Quip qid bot thetext
               var qs = currentplayer.getvalue(quipsseen)
               if ( instr(qs>>qid) = 0 ) then
                       currentplayer.print |"<b>" & bot & "</b>: ~" & thetext & "~"|
                       qs = |qs & qid & " "|
                       currentplayer.setvalue(quipsseen) = qs
               endif
       end
}