#Ifdef notdef; Object x "x"; #Endif; CvsId "$Id: PaloAlto.inf,v 1.14 2005/02/15 19:35:41 joelh Exp $"; ! The cafe here is Benny's, which was originally seen in the Inform ! Beginner's Guide in the sample game Captain FATE. The code has been ! changed substantially, and the descriptions have been toned down a ! bit (Captain FATE had very DYNAMIC descriptions!) but it's still ! clearly recognizable. Captain FATE himself makes a brief cameo as ! the guy in pajamas, and is mentioned again in the hints for ! Oakland. ! ! Captain FATE is used with permission: ! ! From: sk@moth.jazztel.es ! Subject: RE: Use of Captain FATE in a game I'm writing ! Date: February 4, 2005 3:46:30 AM PST ! To: joelh@piquan.org ! Greetings Joel, ! > I have been writing a new Interactive Fiction game, and would like to ! > reuse Benny's Cafe from the Inform Beginner's Guide's sample game, ! > Captain FATE. It happens that I need a cafe in my game and I thought ! > that it might be neat to IBG readers to see Benny make a cameo. ! No problem. Go right ahead. It is in fact quite flattering to have ! other people making a reference to your work. Good luck with the ! game. ! Cheers, ! Sonja (& Roger). Street palo_alto "Palo Alto" with name 'paloalto' 'palo' 'alto', description "Palo Alto provides a nice break from the constant shopping strips that you usually see as you drive along El Camino Real. Grass and even trees line the sides of the road along this stretch. Stanford students occasionally run by, from coffee shop to coffee shop during the day, and bar to bar at night. Since it's daytime, Benny's Cafe to the west seems to be the local hotbed of activity. The students' lives are a mild median between the mellow peninsula to the north, and the industrial bedlam to the south.", ! This used to say "You can't...", implying that Ralph assumes ! that Jacques pays the rent for both of them. But it seemed ! like a general "you" rather than particular, and the ! dialogue structure didn't quite feel right there. I'd like ! to resurrect the gag if I can find wording for it. ralph_thinks "~A great place to visit, but I'd hate to live there.~^ ~Why's that?~^ ~We can't afford the rent.~", cant_go "You can go only north, south or west.", in_to cafe, w_to cafe, n_to peninsula, s_to sunnyvale; Object booth "phone booth" palo_alto with name 'old' 'red' 'picturesque' 'phone' 'booth' 'cabin' 'telephone' 'box', ralph_thinks "~Ooh, let's paint it blue and play Dr. Who!~", description "It's one of the old picturesque models, a red cabin with room for one caller.", before [; Open: "The booth is already open."; Close: "There's no way to close this booth."; ], after [; Enter: print_ret "With implausible celerity, you dive inside the phone booth."; ], has enterable container open scenery; Object sidewalk "sidewalk" palo_alto with name 'sidewalk' 'pavement' 'street', description "It looks just like any other sidewalk in the city.", ralph_thinks "~Just where does it end?~", has scenery; Object outside_of_cafe "Benny's cafe" palo_alto with name 'benny^s' 'cafe' 'entrance' 'diner' 'coffee' 'shop', description "Palo Alto's favorite for a quick snack, Benny's cafe has a 50's rocketship look.", ralph_thinks "~Looks just like the kind of place you'd find a superhero.~", curator_thinks "~I figured it would be a good place for me to drop off the note for you without anybody noticing. There's a lot of people going in and out during school hours.~", before [; Enter: print "With an impressive mixture of hurry and nonchalance you step into the open face.^"; PlayerTo(cafe); return true; ], has enterable proper scenery; Room cafe "Inside Benny's cafe" ! Don't add a name without reading the comment below. with description "Benny's offers the finest selection of pastries and sandwiches. Customers clog the counter, where Benny himself manages to serve, cook and charge without missing a step. At the north side of the cafe you can see a red door connecting with the restroom.", ! This room can only be referred to as 'here' (other words are ! attached to the facade), so it's okay that this is only ! sensible with him present. ralph_thinks "Ralph's too busy hitting on local coeds to answer you.", e_to palo_alto, out_to palo_alto, n_to restroom_door; Object benny "Benny" cafe with name 'benny' 'owner' 'bartender' 'waiter' 'innkeeper', description "A deceptively fat man of uncanny agility, Benny entertains his customers by crushing coconuts against his forehead when the mood strikes him.", ralph_thinks "~Y'know, he reminds me of somebody.~^~Who?~^~I was hoping you knew.~", curator_thinks "~We can trust him not to tell.~", before [; Search: if (case_note in benny) "A small note is sticking out of Benny's back pocket."; rfalse; ], life [; Attack: "The counter shields Benny far too well for you to make an effective attack."; Kiss: "This is no time for mindless infatuation."; Ask: if (second ~= case_note && second ~= 'stranger' && second ~= 'case' && second ~= 'call' && second ~= 'caller' && second ~= curator && ! Could be late in the game! second ~= 'client' && second ~= 'customer') ! Use a default response. << tell benny second >>; if (~~ (case_note in benny)) "~I don't know anything else. Now beat it before somebody catches wise.~^ ~Gee, Jacques,~ says Ralph, ~I didn't think anybody talked like that anymore.~"; move case_note to counter; "As you open your mouth to speak, a man in a brightly colored set of pajamas springs out from the restroom, tosses a key on the counter, and dashes out the front door. In the distraction, Benny figures he can pass you the note unseen. Looking away, prison-style, he picks up the key as he nonchalantly slides a small slip of paper onto the counter."; Tell,Answer: "Benny is too busy for idle chit-chat."; ], orders [; ! handles ASK BENNY FOR X and BENNY, GIVE ME X Give: if (noun == case_note) ! Regardless of second (which may be Ralph), since he ! doesn't actually hand it to anybody. << ask benny case_note >>; if (second ~= player or nothing or ralph) "Benny looks at you strangely."; if (noun == restroom_key) "~The bathroom is for paying customers only.~"; "You don't have any money to pay for anything."; ], has scenery animate male proper transparent; Object counter "counter" cafe with name 'counter' 'bar', description "The astonishingly long counter is made of an alloy of metals, stain-proof, spill-resistant and very easy to clean. Customers enjoy their snacks with utter tranquility, safe in the notion that the counter can take it all.", ralph_thinks "~Why do they call it a counter when it doesn't count?~", has supporter scenery; Object customers "customers" cafe with name 'customers' 'people' 'customer' 'men' 'women', description "A group of helpless and unsuspecting college students, the kind who rarely can afford to hire you, even at your dirt-cheap prices.", ralph_thinks "~I think the one on the left digs you.~^~Our left or their left?~^~There's a difference?~^~You crack me up, little buddy.~", life [; Ask,Tell,Answer: "You attract less interest than Benny's food."; Kiss: "There's no telling what sorts of bacteria these strangers may be carrying around."; Attack: "Mindless massacre of civilians, while fun, would draw attention to you. You probably should concentrate on finishing the case, without getting arrested (for once)."; ], orders [; "These people don't appear to be of the cooperative sort."; ], has scenery animate pluralname; Object restroom_door "door to the restroom" cafe, with pname '.x' 'red' '.x' 'restroom' 'door' '.or' 'bathroom' '.or' 'bath' 'room', description "A red door with the unequivocal black man-woman silhouettes marking the entrance to hygienic facilities. A sign on it says, ~CUSTOMER USE ONLY~.", ralph_thinks "~I don't have to go right now.~", with_key restroom_key, before [; Enter: "Your superb deductive mind detects that the door is closed."; Take,Push,Pull: "That would be part of the building."; ], has scenery door openable lockable locked; Object restroom_key "restroom key" benny with pname '.x' 'restroom' 'key', description "Your keen PI senses detect nothing of consequence about the restroom key.", ralph_thinks "~We'll have a hard time getting it, I'm sure.~", before [; if (self in benny) "You look around with your keen Private Eye, but fail to find any key."; ]; Object food_and_drink "food and drink" benny with name 'food' 'drink' 'drinks' 'coffee' 'sandwich' 'sandwiches' 'pastry' 'pastries', description "Not good, but better than what you can afford right now.", ralph_thinks "~I'm okay for now.~", before [; Buy: "You can't afford it."; Examine,Search: rfalse; default: if (self in benny) "That belongs to the customers."; ], has scenery; Object case_note "case note" benny with pname 'crime' 'case' 'note' 'mystery' 'call' 'slip' '.x' 'of' 'paper' 'thefts' 'theft', have_read false, description [; Achieved(2); print "The note reads:^^ Dear Jacques and Ralph:^ I'm sorry I couldn't be here to give you this note in person, but I can't risk being seen in public with you.^ I'll get to the point. Art and artifacts have started to disappear all over San Francisco. Historical sites, such as Alcatraz, the Golden Gate Natural History Museum, and the Musee Mecanique have all had artifacts go missing. I believe that this is only the start of a greater and more sinister crime wave.^ You must put a stop to this rash of thefts and find whoever is responsible, before more artifacts go missing and San Francisco loses all sense of history.^ Help me, Jacques and Ralph, you're my only hope.^"; if (self.have_read) rtrue; self.have_read = true; "^~A rash, huh?~ says Ralph. ~Sounds painful.~^ ~We'd better put a stop to it before it spreads!~"; ], curator_thinks [; "~I'm sorry about all the cloak-and-dagger stuff, but I can't afford to be seen with you.~^ ~Why, are you afraid you'll be attacked?~^ ~No, it would just wreck my social standing.~"; ], ralph_thinks [; ! Note that this handles "ASK RALPH ABOUT CASE" if (~~tire.balanced) "~Boy, Ralph,~ you say, ~I sure wish we had a case.~^ ~Hey, we could play tiddlywinks until the phone rings!~^ ~We don't have any tiddlywinks.~^ ~Since when did that stop us?~^ ~You crack me up, little buddy!~"; if (self in benny) { print "~The call said that the owner "; if (location == palo_alto) print "of that diner "; else if (~~(location == cafe)) print "of the diner in Palo Alto "; print "would have a note for us."; if (location == cafe) print " I guess we should ask him for it."; "~"; } if (curator in conference_room && calling_card hasnt moved) { print "~Well, that old geezer said he'd meet us in the conference room at the top of the pyramid. Maybe we should talk to him.~"; if (curator.talked_to) { print "^~But we already did!~^ ~Yeah, but I feel strangely unfulfilled... let's try it again!~"; } ""; } if (photograph hasnt moved || map_scrap hasnt moved || calling_card hasnt moved) { "~I guess we should look for clues at the scene of the crime. Ooh, I've always wanted to say that!~^ ~Me too.~^ ~Be my guest!~^ ~Scene of the crime!~^ ~Was it everything you thought it'd be?~^ ~And then some!~"; } if (sausalito hasnt visited) { "~Ooh, now comes my favorite part! Time to bust the rat what done the job!~"; } if (location == sausalito) { "~Didn't we have the name of that shop written down somewhere?~"; } if (location == helicopter) { "~We've solved the case, now help me out with her!~"; } ! In a shop or on the roof "~Get the thinking part done with, Ralph, so I can clobber this schmuck!~"; ], ask_in_scope 1; ! Local variables: ! inform-project-file:"Flibnaub.inf" ! End: