! _Shade_ ! Special source-code edition ! Copyright 2000-2002 Andrew Plotkin ! http://www.eblong.com/zarf/if.html ! This source code is provided for personal, educational use only. ! See README file for details. Global fake_counter = 0; Class Fake with self_obj 0, short_name [; print (name) self.self_obj; rtrue; ], parse_name [ obj wd num; if (self provides name) { wd = NextWord(); while (WordInProperty(wd, self, name)) { num++; wd = NextWord(); } return num; } obj = self.self_obj; if (obj provides parse_name) return obj.parse_name(); wd = NextWord(); while (WordInProperty(wd, obj, name)) { num++; wd = NextWord(); } return num; ], before [; Examine, Search: "You can't quite make out anything unusual."; Find: "It's here."; default: ! print_ret "[DEBUG] ", (the) self, "."; fake_counter++; if (action == ##Enter && (noun == fakefuton or fakedesk) && fake_counter == 3) { fake_counter = 4; } switch (fake_counter) { 1: "You take a step across the room, but a quick movement distracts you. Something scurried along the wall? You can't see it any more."; 2: "You move towards ", (the) self, " but feel suddenly dizzy. Dehydration, probably."; 3: "You need to sit down."; 4: print "You reach out and touch your hand to ", (the) self, ". "; if (self.self_obj has pluralname) print "They"; else print "It"; print " feels like glass.^^"; print "The reflection shimmers like water, but the mirror is only heat -- pooling among the dunes, rising from the sands.^^"; KeyPause(); print "^^^"; move book to Desert; Desert.startup(); PlayerTo(Desert); rtrue; } ], has scenery; Object FakeApartment "apartment" with articles "Your" "your" "your", seenonce false, description [; if (~~self.seenonce) { self.seenonce = true; print "Odd, how the sunlight just makes your apartment more prosaic.^^"; print "Not much of an apartment, no."; } else { print "You survey your one small room."; } print " One desk, paper-piled, with a dusty computer shoved to the side. Your futon. Second-hand stereo sitting on a cardboard crate. A kitchen nook one way and a bathroom nook the other, with a closet to the side. A broad mirror tries to make the place seem twice its size; it halfway works. One window, whose shade is up, and the front door wide open.^"; print "^Your luggage is piled untidily by the door. A potted hyacinth sits beneath the window.^"; rtrue; ], before [; Vacuum: <>; Go: "You paced enough last night."; Exit: "The taxi hasn't arrived, although it's about to."; ]; Fake -> fakelivingroom with self_obj apartmentproxy, before [; Examine, Search: <>; default: "What?"; ]; Fake -> fakefrontdoor with self_obj frontdoor, before [; Enter: <>; ]; Fake -> fakewindow with self_obj window; Fake -> fakewindowshade with self_obj windowshade; Fake -> fakedesk "desk" with self_obj desk, has supporter; Fake -> -> faketodo with self_obj todo, articles "Your" "your" "your", has ~scenery; Fake -> -> fakebook with self_obj book, has ~scenery; Fake -> fakeplant with name 'pot' 'potted' 'plant' 'soil' 'hyacinth', short_name "hyacinth", self_obj plant; Fake -> fakeluggage with self_obj luggage; Fake -> fakekitchen with self_obj kitchen; Fake -> fakecounter with self_obj counter; Fake -> fakecupboard with self_obj cupboard; Fake -> fakestove with self_obj stove; Fake -> fakekitchensink with self_obj kitchensink; Fake -> fakefridge with self_obj fridge; Fake -> fakeglass with self_obj glass; Fake -> fakebathroom with self_obj bathroom; Fake -> faketoilet with self_obj toilet; Fake -> fakebathsink with self_obj bathsink; Fake -> fakeshower with self_obj shower; Fake -> fakeshowerhead with self_obj showerhead; Fake -> fakefuton with self_obj futon; Fake -> fakecloset with self_obj closet; Fake -> fakevacuum with self_obj vacuum; Fake -> fakejacket with self_obj jacket; Fake -> fakepapers with self_obj papers; Fake -> fakelamp with self_obj lamp; Fake -> fakecomputer with self_obj computer; Fake -> faketickets with self_obj tickets; Fake -> fakestereo with self_obj stereo; Fake -> fakecrate with self_obj crate; Fake -> fakemirror with self_obj mirror;