###################################### # Adventuron Game File # ###################################### start_at = outside_newsagent protagonist = mustard loading_screen = dynamic_loading_screen game_information { game_name = Custard & Mustard's Big Adventure game_shortname = CAMBA short_synopsis = Solve the adventure uuid = 7d5dafbe-89bb-49f1-8d88-43cbcd9f2d59 copyright_message = © 2022 Christopher Merriner } game_settings { rewind_enabled = true default_location_graphic = default_location_graphic } // on_debug { // : goto "old_gaol_room"; // : create "professor_ambleside"; // : create "ancient_collar"target = "inventory_worn" ; // // : goto "in_restaurant"; // // : create "guests"; // // : goto "market_square"; // // : create "monocle"target = "inventory_worn" ; // // : create "bow_tie"target = "inventory_worn" ; // // : create "cauliflower" target = "inventory" ; // // : set_false "custard_tied" ; // // : create "mustard"target = "riverside" ; // // : create "custard"target = "middle_river" ; // } on_startup { : if (survivor) { : set_false "survivor" ; : print "^c^(Press Enter To Restart)"; : win_game ; } : print "^c^<^b^Custard & Mustard's Big Adventure>\nby Christopher Merriner\n(© 2022 Christopher Merriner)"; : print_graphic "mustard_black_on_yellow" ; : ask_bool { var = titles question = Do you want to see the title sequence and hear the theme tune (45 seconds)? } : if (titles) { : clear_screen; : print " \n\n"; : print_graphic "my_video" ; : pause "5500" ; : pause "5500" ; : pause "5500" ; : pause "5500" ; : pause "5500" ; : pause "5500" ; : pause "5500" ; : pause "5500" ; : pause "3500" ; : clear_screen; } : ask_bool { var = intro question = Do you want to read the introduction? } : if (intro) { : clear_screen; : print "Hey! Over here!"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "No, not her up there, with the funny-looking clothes and the fancy hair. The handsome, furry one down here."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "That's it. Now, since I've got your attention, let me introduce myself. I'm Mustard. Colonel Mustard actually, if we're being formal, but nobody ever calls me that except the vet and since we're going to be spending some time together I don't think we should stand on ceremony - just Mustard is fine."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "And her up there, nattering away on her phone? Well, that's Pru. Short for Prunella. Short for Prunella Arabella Kinsella (Interior Design Consultant) to give her her full title. Six names seems a bit unnecessary, but they do like to complicate things don't they? But she won't be that for long because that's her fiancé, Gerry, she's talking to. Gerry Rockerfella. They're getting married next month and then she'll be double-barrelled: Prunella Arabella Kinsella-Rockerfella. Trips off the tongue, doesn't it? She was all apologetic when she told me about the wedding and how he'll be moving in afterwards, but I really don't mind. I like Gerry and besides, we both know who her favourite is."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Now, I can tell what you're thinking. 'How does he know who she's talking to and what she's saying? He's just a dog?' Well, I'll let you in on a little secret. You know when you talk to us and we stare back at you with our big, big eyes, and cock our heads to one side and we look just like we understand every word you're saying?\nThat's because we do. People aren't half as clever as they think they are, chattering away about nothing in particular for their whole lives. You natter, we listen and mostly don't talk back, and so the world goes round."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "Anyway, here we are on Little Pottlington high street, Pru doing her usual walk and me keeping her company. I fasten myself to her with this bit of rope so I can show her which way to go, because she wouldn't have a clue otherwise."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "You might be forgiven for thinking Little Pottlington is the sort of place where not much ever happens. Sleepy, some might say. And they'd be right - most of the time. But not today, because today is the day of the Little Pottlington Fête - the one day of the year when the town wakes up and has a party. There's fancy dress and a parade, and music and stalls and a beer tent in the park. Lots of fun. Since you're here, we should go down and have a look. Trouble is, Pru's too busy with 'client consultations' today. 'Just a quick walk and then back home', she said. Which is all very well for her but not much fun for me, watching her talk to a screen all day. I reckon I'm best off getting away and leaving her to it. She'll be furious, but she'll manage to find her own way back eventually and she'll forgive me in the end - she always does. Sometimes, you know, a dog has got to do what a dog has got to do - and I feel adventure calling! So all I need to do is figure out a way of giving her the slip..."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } locations { outside_newsagent : location "{outside_newsagent_d}" header = "Outside Ogodu News" ;//nighttime outside_butcher : location "{outside_butcher_d}" header = "Outside Halfbacon's" ; market_passage : location "{market_passage_d}" header = "Market Passage" ; market_square: location "{market_square_d}" header = "The Market Square" ; crupgirdle_street : location "{crupgirdle_street_d}" header = "Crupgirdle Street" ; east_of_lamp_post: location "{east_of_lamp_post_d}" header = "East of the Lamp Post" ; west_of_lamp_post: location "{west_of_lamp_post_d}" header = "West of the Lamp Post" ; north_of_lamp_post: location "{north_of_lamp_post_d}" header = "North of the Lamp Post" ; south_of_lamp_post: location "{south_of_lamp_post_d}" header = "South of the Lamp Post" ; outside_pub: location "{outside_pub_d}" header = "{pub_description}" ; flayman_hill : location "{flayman_hill_d}"header = "Flayman Hill"; gardens_entrance : location "{gardens_entrance_d}"header = "{ge_description}"; by_the_bandstand : location "{by_the_bandstand_d}"header = "By the Bandstand"; big_white_tent : location "{big_white_tent_d}"header = "In the Big White Tent"; changing_room : location "{changing_room_d}"header = "The Changing Room"; store_room : location "{store_room_d}"header = "The Tent Store Room"; out_back : location "{out_back_d}"header = "Rear of the Tent"; ambleside_room : location "{ambleside_room_d}"header = "The VIP Dressing Room"; south_gardens : location "{south_gardens_d}"header = "South Gardens"; magic_show : location "{magic_show_d}"header = "By the Roses"; backstage : location "{backstage_d}"header = "Behind the Magic Show"; east_gardens : location "{east_gardens_d}"header = "By the Stalls"; beer_tent : location "{beer_tent_d}"header = "In the Beer Tent"; cripplepepper_lane : location "{cripplepepper_lane_d}"header = "Cripplepepper Lane"; elbow_way : location "{elbow_way_d}"header = "Elbow Way"; hoddle_street : location "{hoddle_street_d}"header = "Hoddle Street"; museum_yard : location "{museum_yard_d}"header = "The Museum Yard"; riverside : location "{riverside_d}"header = "Riverside, by the Slipway"; by_the_river : location "{by_the_river_d}"header = "Riverside Path"; busy_road : location "{busy_road_d}"header = "By the Busy Road"; east_street : location "{east_street_d}"header = "East Street"; pinchmaid_hill : location "{pinchmaid_hill_d}"header = "Pinchmaid Hill"; knockbarrel_corner : location "{knockbarrel_corner_d}"header = "Knockbarrel Corner"; inside_bus : location "{inside_bus_d}"header = "Inside the Bus"; restaurant_entrance : location "{restaurant_entrance_d}"header = "{peg_desc}"; slipway_north : location "{slipway_north_d}"header = "Northern Slipway"; north_river : location "{north_river_d}"header = "North River" ; middle_river : location "{middle_river_d}"header = "Middle of the River"; south_river : location "{south_river_d}"header = "South River"; slipway_south : location "{slipway_south_d}"header = "Slipway South"; carpark : location "{carpark_d}"header = "In the Carpark"; in_restaurant : location "{in_restaurant_d}"header = "The Pegasus Dining Room"; under_table : location "{under_table_d}"header = "Under the Table"; village_hall : location "{village_hall_d}"header = "Outside the Town Hall"; skating_area : location "{skating_area_d}"header = "The Unofficial Skate Park"; gander_alley : location "{gander_alley_d}"header = "Gander Alley"; museum_reception : location "{museum_reception_d}"header = "The Museum Reception"; museum_vestibule : location "{museum_vestibule_d}"header = "In the Vestibule"; museum_garden : location "{museum_garden_d}"header = "The Museum Garden"; outside_chipshop : location "{outside_chipshop_d}"header = "Outside Spratt's"; inside_chipshop : location "{inside_chipshop_d}"header = "Inside Spratt's"; side_of_chipshop : location "{side_of_chipshop_d}"header = "{chippy_desc}"; back_of_chipshop : location "{back_of_chipshop_d}"header = "The Back of Spratt's"; in_back_of_chipshop : location "{in_back_of_chipshop_d}"header = "In the Back of Spratt's"; inside_van : location "{inside_van_d}"header = "In the Back of the Van"; inside_sack : location "{inside_sack_d}"header = "Inside a Sack"; museum_storeroom : location "{museum_storeroom_d}" header = "The Museum Store Room"; custards_dream : location "{custards_dream_d}"header = "Custard's Dream"; mustards_dream : location "{mustards_dream_d}"header = "Mustard's Dream"; corridor : location "{corridor_d}"header = "The Upper Corridor"; exhibition_room : location "{exhibition_room_d}"header = "The Exhibition Room"; old_gaol_room : location "{old_gaol_room_d}"header = "The Old Gaol Room"; top_staircase : location "{top_staircase_d}"header = "Top of the Staircase"; bottom_staircase : location "{bottom_staircase_d}"header = "Bottom Of the Staircase"; maze : location "{maze_d}"header = "A Corridor"; outside_storeroom : location "{outside_storeroom_d}" header = "By a Door"; finds_room : location "{finds_room_d}"header = "Tea Room"; corridor_1 : location "{corridor_1_d}"header = "A Corridor"; corridor_2 : location "{corridor_2_d}"header = "A Corridor"; corridor_3 : location "{corridor_3_d}"header = "A Corridor"; broom_cupboard : location "{broom_cupboard_d}"header = "The Broom Cupboard"; duct_1 : location "{duct_1_d}"header = "In the Ceiling Duct"; duct_2 : location "{duct_2_d}"header = "In the Ceiling Duct"; on_shelf : location "{on_shelf_d}"header = "On the Top Shelf"; railings : location "{railings_d}"header = "Riverside by the Weir"; east_river : location "{east_river_d}"header = "East River"; next_to_weir : location "{next_to_weir_d}"header = "River by the Weir"; // inside_ogudu : location "You are in a room."; // inside_halfbacon : location "You are in a room."; } zones { zone_whole_river : zone { locations = [next_to_weir, east_river, middle_river, north_river,south_river ] } zone_gardens : zone { locations = [ by_the_bandstand, gardens_entrance,east_gardens, south_gardens, magic_show, beer_tent, store_room, ambleside_room, changing_room, backstage, big_white_tent] } zone_in_museum : zone { locations = [museum_reception,corridor, corridor_1, corridor_2, corridor_3, broom_cupboard, museum_vestibule,old_gaol_room, exhibition_room] } zone_lamppost : zone { locations = [ east_of_lamp_post, west_of_lamp_post, north_of_lamp_post,south_of_lamp_post ] } } connections { from, direction, to = [ outside_newsagent, west, outside_butcher, // outside_newsagent, north, inside_ogudu, outside_newsagent, south, market_passage, market_passage, south, market_square, outside_butcher, north, crupgirdle_street, east_of_lamp_post, east, crupgirdle_street, east_of_lamp_post, northwest, north_of_lamp_post, south_of_lamp_post, northeast, east_of_lamp_post, west_of_lamp_post, southeast, south_of_lamp_post, west_of_lamp_post, northeast, north_of_lamp_post west_of_lamp_post, west, outside_pub, market_square, east, cripplepepper_lane, cripplepepper_lane, east, east_street, east_street, south, gander_alley, east_street, east, elbow_way, elbow_way, south, pinchmaid_hill, knockbarrel_corner, west, gardens_entrance, knockbarrel_corner, north, pinchmaid_hill, cripplepepper_lane, south, museum_yard, museum_yard, south, museum_vestibule, museum_vestibule, south, museum_reception, museum_yard, west, museum_garden, market_square, south, flayman_hill, market_square, west, outside_chipshop, outside_chipshop, west, inside_chipshop, outside_chipshop, north, side_of_chipshop, side_of_chipshop, west, back_of_chipshop, back_of_chipshop, south, in_back_of_chipshop, flayman_hill, south, hoddle_street, gardens_entrance, south, by_the_bandstand, by_the_bandstand, south, south_gardens, south_gardens, east, beer_tent, magic_show, north, backstage, south_gardens, west, magic_show, hoddle_street, east, gardens_entrance, by_the_bandstand, west, big_white_tent, store_room, west, out_back, big_white_tent, south, changing_room, big_white_tent, north, ambleside_room, big_white_tent, west, store_room, by_the_bandstand, east, east_gardens, south_gardens, south, by_the_river, by_the_river, west, busy_road, by_the_river, east, riverside, riverside, south, slipway_north, slipway_north, south, north_river, north_river, south, middle_river, north_river, east_oneway,east_river, south_river, east_oneway,east_river, middle_river, south, south_river, south_river, south, slipway_south, slipway_south, south, carpark, carpark, east, restaurant_entrance, restaurant_entrance, north, in_restaurant pinchmaid_hill, east, village_hall, village_hall, south, skating_area, museum_reception, west, corridor corridor, north, top_staircase, corridor, west, exhibition_room, top_staircase, down, bottom_staircase, outside_storeroom, south, corridor_3, corridor_3, east, corridor_2, corridor_2, south, corridor_1, corridor_1, west, bottom_staircase, outside_storeroom, west, museum_storeroom, exhibition_room, south, old_gaol_room, old_gaol_room, west, finds_room, corridor, south, broom_cupboard, on_shelf, up, duct_1, duct_1, north, duct_2 duct_2, down_oneway, old_gaol_room knockbarrel_corner, south, railings, east_river, east, next_to_weir, middle_river, east, east_river, ] } barriers { // inside_newsagent : block { // location = inside_ogudu // message = The path is blocked by rubble // } chippy_door : block_path { from = outside_chipshop to = inside_chipshop block_when_not = chippy_open message = I jump up at the door but it's closed. Looks like Spratt's Chiperama isn't open at the moment. } back_chippy_door : block_path { from = back_of_chipshop to = in_back_of_chipshop block_when_not = back_chippy_open message = I jump up at the door but it's firmly closed. I suppose they don't want just anybody walking in the back of the chip shop. } storeroom_door : block_path { from = outside_storeroom to = museum_storeroom message = That's silly - I can't walk through a locked door! block_when_not = storeroom_door_open } exhibition_door : block_path { from = corridor to = exhibition_room message = I try to, but the door is locked. block_when_not = exhibition_door_open } exhibition_door_1 : block_path { from = exhibition_room to = corridor message = I try to, but the door is locked. block_when_not = exhibition_door_open } museum_door : block_path { from = museum_yard to = museum_vestibule message = But the door to the museum is locked! block_when_not = museum_door_open } museum_door_1 : block_path { from = museum_vestibule to = museum_yard message = But the door to the museum is locked! block_when_not = museum_door_open } restaurant_door : block_path { from = carpark to = restaurant_entrance message = There's a big, shiny, expensive-looking and very locked door in the way. The restaurant is shut at this time of night! block_when = nighttime } beer_tent : block { location = beer_tent message = The tent is all empty and closed up now. block_when = nighttime } grille : block_path { from = on_shelf to = duct_1 message = There's a closed grille in the way! block_when_not = grille_open } grille_2 : block_path { from = duct_2 to = old_gaol_room message = There's a closed grille in the way! block_when_not = grille2_open } magic_show : block { location = backstage message = Try another direction. block_when = nighttime show_blocked_exit = false } } booleans { first_hint : boolean; titles : boolean; i_am_mustard: boolean default = "true" ; a : boolean; on_lead : boolean default = "true" ; chased_tail : boolean; untangle : boolean; prus_gone : boolean; follow : boolean; custard_tied : boolean default = "true" ; clockwise_tightening: boolean default="true"; folk_here : boolean; intro : boolean; initial_tadcaster_sniff : boolean; initial_tadcaster_talk : boolean; bus_arrived : boolean; flap_open : boolean; mustard_button_pushed : boolean; custard_button_pushed: boolean; mustard_smell_electrician : boolean; custard_smell_electrician : boolean; pa_fixed : boolean; is_001 : boolean; lid_in_river : boolean; mustard_sitting_on_lid: boolean; custard_sitting_on_lid: boolean; pe : boolean; guests_seated : boolean; pleased_to_see_me : boolean; hat_open : boolean; found_tag : boolean; found_lid : boolean; rabbit_in_hat : boolean default = "true" ; magic_show_begins : boolean; mustard_on_skateboard : boolean; custard_on_skateboard : boolean; mustard_got_lid : boolean; custard_got_lid : boolean; custard_in_river : boolean; ollie : boolean; shuvit : boolean; kickflip : boolean; hippie_jump : boolean; 50_50 : boolean; boardslide : boolean; parade_announcement : boolean; crate_open : boolean; fishing_creel_open : boolean; report_collar : boolean; crate_gone : boolean; custard_on_sofa : boolean; mustard_on_sofa : boolean; report_becoming : boolean; mustard_free : boolean; report_barking : boolean; storeroom_door_open : boolean; grille_open : boolean; grille2_open : boolean; lock_picked : boolean; fake_collar_in_case : boolean; standing_on_custard : boolean; pressed_1 : boolean; pressed_7 : boolean; pressed_2 : boolean; pressed_6 : boolean; examined_case : boolean; case_open : boolean; real_collar_in_case: boolean default = "true" ; report_lock_pick : boolean; nighttime : boolean; harry_in_river : boolean; policemen_follow : boolean; mustard_collar_speech : boolean; legs_conversation : boolean; arrest_dogs : boolean; chasing_harry : boolean; shaker : boolean; sn : boolean; my : boolean; er : boolean; dr : boolean; bs : boolean; op : boolean; bc: boolean; br : boolean; museum_door_open : boolean ; exhibition_door_open : boolean; skate_speech : boolean; trigger_tp : boolean; rabbit_again : boolean; all_over : boolean; costumes : boolean default = "true" ; ambleside_finish_speech : boolean; makepeace_chat : boolean; kaur_chat : boolean; harry_arrested : boolean; mustard_climbed_shelf : boolean; custard_been_on_top_shelf : boolean; JM_chatter: boolean; poshest_speech : boolean; mustard_trapped:boolean; chippy_open: boolean; back_chippy_open : boolean; parade_done : boolean; milesandpenelope : boolean; alarmed: boolean; areyousure : boolean; rejected : boolean; been_south : boolean; done_raft: boolean; tried_skating : boolean; seen_dog : boolean; got_into_old_gaol_room : boolean; stood_on_custard_in_exhibition_room : boolean; done_combination : boolean; market_remark : boolean; cauli_on_stall : boolean default = "true" ; got_cauli : boolean; seen_top_hat : boolean; done_exhibition_bit : boolean; tutu_tightrope: boolean; licked_jimmy : boolean ; crawfield_done : boolean; pants_gone: boolean; survivor : boolean scope="survivor"; } integers { froot : integer "0" ; peering : integer "0" ; tightness : integer "6" ; stagger_counter : integer "3" ; ambleside_counter : integer "0" ; gap : integer "0" ; restaurant_guests_arrive : integer "0" ; skating_counter : integer "0" ; trick_chances : integer "3" ; crate_item_limit : integer "10" ; fishing_creel_item_limit : integer "3" ; harry_counter : integer "-1" ; custard_sleep_counter : integer "0" ; mustard_sleep_counter : integer "0" ; bark_counter : integer "0" ; maze_counter : integer "0" ; introd : integer "0" ; angie_counter : integer "-1" ; walkthrough : integer "0" ; } strings { statue_description : string "a statue (on the roof of the museum)" ; crate_description : string "Any string value" ; fishing_creel_description: string "Any string value" ; replica_collar_description: dynamic_string (fake_collar_in_case ? "a replica Romano-British golden dog collar (in the display case)": "a replica Romano-British golden dog collar"); ancient_collar_description : dynamic_string (real_collar_in_case ? "a real Romano-British golden dog collar (in the display case)": "a real Romano-British golden dog collar") ; flap_description : dynamic_string (flap_open ? "a hinged flap (open)" : "a hinged flap (closed)"); posh_name : string "Any string value" ; rabbit_description : dynamic_string (rabbit_in_hat ? "a fluffy white rabbit (curled up in the hat, asleep)" : "a fluffy white rabbit (on the stage)"); lid_description : dynamic_string {("a large wooden lid"+(mustard_sitting_on_lid ? (i_am_mustard ? " (which I'm sitting on top of)":" (which Mustard is sitting on top of)") : (custard_sitting_on_lid ? (!i_am_mustard ? " (which I'm sitting on top of)":" (which Custard is sitting on top of)") : ""))+ (lid_in_river ? " floating in the river" : "") )} skateboard_description : dynamic_string {("a skateboard"+(mustard_on_skateboard||custard_on_skateboard ? " (being ridden)" : ""))}; sofa_description : dynamic_string {("a sofa"+(i_am_mustard ? mustard_on_sofa ? " (that I'm sitting on)":"" : custard_on_sofa ? " (that I'm sitting on)":""))}; mustard_description : dynamic_string (mustard_on_skateboard ? "Mustard (riding the skateboard)": mustard_got_lid ? "Mustard (with his teeth clamped to the edge of a large wooden lid)": mustard_on_sofa ? "Mustard (on the sofa)" : standing_on_custard? "Mustard (well, I can't really see him, but I can feel he's up on my back)" : "Mustard"); custard_description : dynamic_string (custard_tied ? "Custard (tied to the lamp post)": custard_on_skateboard ? "Custard (riding the skateboard)": custard_got_lid ? "Custard (with his teeth clamped to the edge of a large wooden lid)":custard_in_river ? "Custard (swimming in the river)" : custard_on_sofa ? "Custard (on the sofa)" : standing_on_custard? "Custard (below me)" : "Custard"); trick : string "Any string value" ; case_description: dynamic_string (!examined_case? "a display case" : real_collar_in_case? case_open? "an open display case (containing a real Romano-British golden dog collar)":"a closed display case (containing a real Romano-British golden dog collar)":fake_collar_in_case ? case_open? "an open display case (containing a replica Romano-British golden dog collar)":"a closed display case (containing a replica Romano-British golden dog collar)":case_open? "an open display case":"a closed display case"); handclap_harry_description : dynamic_string (is_carried "handclap_harry" ? "Handclap Harry (by his collar)": harry_in_river ? "Handclap Harry (in the river)": harry_arrested? "Handclap Harry (dripping wet and handcuffed)":"Handclap Harry"); //location descriptions outside_newsagent_d : dynamic_string ("I'm outside Ogodu's Newsagent. It's a battered old shop front with peeling blue paint and a big plastic sign that has seen better days. There are big, grimy windows with a few adverts and the latest local newspaper headlines displayed. "+(nighttime? "It's all dark and locked up now.": i_am_mustard? "Mr Ogodu doesn't mind dogs in the shop, but his wife is fierce! I sometimes sneak in when she's not there and get a belly rub and a treat from him.":"I've been tied up outside here a couple of times.")); outside_butcher_d : dynamic_string ("I'm outside Halfbacon's Butchers. It's a lovely looking shop all covered in green glazed tiles, one of the oldest in the street. There are big bay windows "+(nighttime? "but they're empty now and the shop is dark and locked up.": "with trays of sausages and chops on display and other tasty looking things hanging up."+(i_am_mustard? " Pru's a vegetarian so she doesn't spend much time in there, but she still goes in around Christmas and my birthday to get me one of their special sausages, bless her.":" Rita used to pop in there for the Sunday joint when her and Kenny were still together."))); crupgirdle_street_d: dynamic_string ("It's a funny mixture of buildings here - short and tall, fat and thin, young and old, all squished together and divided up into flats with a few people and a dog in each one. I can hear them calling to me as I walk past, and I call back, like dogs do. You may wonder what they're saying, but it's nothing much usually - just 'who's that?', 'have you seen Fred out and about?' and 'what does the weather smell like today?' Not a lot different from people really. "+(nighttime? "The jumble of buildings make a jagged silhouette agains the moonlit sky.":(i_am_mustard? "\nThis isn't one of my regular routes - Pru only walks me around the 'nice' parts of town.":"\nOur flat is somewhere in that jumble, up on the top floor of an old house that must have grand in its day. The furthest Kenny walks me these days is from there to the lamp post and back."))); market_passage_d : dynamic_string ("This is just a narrow alley with the high walls of buildings on either side giving way to a little ribbon of sky, high up above. "+(nighttime? "Stars glimmer faintly amongst the blackness.":"")); market_square_d : dynamic_string ("This was a cattle-market a long time ago and you can still smell it in the gutters and the cracks between paving stones, if you know where to sniff. Nowadays it's mainly fruit and veg sellers except for the general market on Thursdays when the people of Little Pottlington come out to buy their batteries, underpants and yard brushes. "+(nighttime? "The square is dark and deserted now.": (i_am_mustard ? "Not really Pru's kind of scene to be honest.":"Rita used to bring me along when she went shopping here in the old days."))); east_of_lamp_post_d : dynamic_string ("I'm at the east side of a grotty little park - not much more than a patch of scruffy grass with a lamp post in the middle of it, a couple of metal benches and a litter bin. A lot of dogs come through here but nobody really stays for much longer than it takes to cock their leg. "+(nighttime? "The lamp post lights the little park with a horrible yellow glow that makes it look even worse than it does in the daytime.":(i_am_mustard? "Pru doesn't normally bring me round this way. ":"I've spend a lot of time tied up here - that lamp post is an old friend!"))); west_of_lamp_post_d : dynamic_string ("I'm at the west side of a grotty little park - not much more than a patch of scruffy grass with a lamp post in the middle of it, a couple of metal benches and a litter bin. A lot of dogs come through here but nobody really stays for much longer than it takes to cock their leg. "+(nighttime? "The lamp post lights the little park with a horrible yellow glow that makes it look even worse than it does in the daytime.":(i_am_mustard? "Pru doesn't normally bring me round this way. ":"I've spend a lot of time tied up here - that lamp post is an old friend!"))); north_of_lamp_post_d : dynamic_string ("I'm at the north side of a grotty little park - not much more than a patch of scruffy grass with a lamp post in the middle of it, a couple of metal benches and a litter bin. A lot of dogs come through here but nobody really stays for much longer than it takes to cock their leg. "+(nighttime? "The lamp post lights the little park with a horrible yellow glow that makes it look even worse than it does in the daytime.":(i_am_mustard? "Pru doesn't normally bring me round this way. ":"I've spend a lot of time tied up here - that lamp post is an old friend!"))); south_of_lamp_post_d : dynamic_string ("I'm at the south side of a grotty little park - not much more than a patch of scruffy grass with a lamp post in the middle of it, a couple of metal benches and a litter bin. A lot of dogs come through here but nobody really stays for much longer than it takes to cock their leg. "+(nighttime? "The lamp post lights the little park with a horrible yellow glow that makes it look even worse than it does in the daytime.":(i_am_mustard? "Pru doesn't normally bring me round this way. ":"I've spend a lot of time tied up here - that lamp post is an old friend!"))); outside_pub_d : dynamic_string ("This bit of road leads from the park to the entrance of The Marrowbone and Cleaver. The pub has seen better days but they've done their best to hide the peeling paintwork and cracked windows behind the great big posters for sports TV that are plastered all over the front. "+(nighttime? "The pub is all locked up and dark." : (i_am_mustard? "The pub is very lively for this time of day - they must have started happy hour early because of the fête.\n I'm sure Pru has never been through that door! The fancy wine bar at the other end of town is more her style.":"I know I'm in for a long wait whenever Kenny ties me up at the lamp post and disappears through that door."))); flayman_hill_d : dynamic_string ("There's only one hill in Little Pottlington and this road runs up it. It's quite short and not that much of a gradient but most of the people round here think it's the Matterhorn and have to stop, huffing and puffing, at the cafe half way up before carrying on to the top. It was a smart move opening a cafe just there. "+(nighttime? "Everything is dark and silent now.":(i_am_mustard? "Pru usually takes me along here to the park when we're doing one of our 'big walks', a couple of times a week.":"Rita used to take me in on market days - they never minded dogs in there. The last time was just before she left, after my last haircut - must have been about three years ago."))); gardens_entrance_d : dynamic_string ("Here's the entrance to Hockbarrow Gardens, marked by a big lump of slate engraved with some writing. It's a lovely public park with neat gravel paths and nice grass for picnics. A 'friends of' society comes down with wellies and wheelbarrows to look after the plants and keep it all nice and tidy. "+(nighttime? "The park is dark and deserted now.":(i_am_mustard? "":""))); by_the_bandstand_d : dynamic_string ("This is the very middle of the gardens, where the path makes its way around the edge of the bandstand. Further on is a swathe of well-tended grass peppered with shady blossom trees. It's a popular spot for brass band concerts in the summer; you can hear them oompah oompahing all over town. "+(nighttime? "There's nothing much to hear at this time of night, except the occasional hooting of an owl and the splashing of the river off to the south.":(i_am_mustard? " This is one of Pru's favourite picnic spots. She can spend hours down here in the summer with a bottle of white wine and a couple of friends, while I snooze under a tree. ":""))); big_white_tent_d : dynamic_string ("It's lovely and cool under the stretched white fabric of the big tent, and everything is bathed in the soothing yellowish glow of sunlight through canvas."); changing_room_d : dynamic_string ("This is a big space with benches and clothing rails arranged around the canvas walls. "+(costumes? "On the rails are costumes on hangers.":"The rails are empty.")+(nighttime? "":(i_am_mustard? "":""))); store_room_d : dynamic_string ("This is a small room filled with all sorts of junk. "+(nighttime? "":(i_am_mustard? "":""))); out_back_d : dynamic_string ("I'm outside the back of the tent. They've pitched it right up against the tall privet hedge that separates one side of the park from the posh housing estate next door, and I'm in the little gap between the two."+ (nighttime? "":(i_am_mustard? "":""))); ambleside_room_d : dynamic_string ("This is a smallish compartment that looks like someone's dressing room. There's not much in here except a big dressing table with a chair in front of it."); south_gardens_d : dynamic_string ("This is the south part of the gardens, as pretty and well kept as the rest of it. There is springy grass to either side of the path and carefully placed trees make nice shady spots to shelter from the summer sun and watch the world go by. "+(nighttime? "":(i_am_mustard? "":" I wouldn't mind being tied up to one of those. Beats that smelly lamp post in the park any day!"))); magic_show_d : dynamic_string (""+(nighttime? " This corner of the gardens, between the rose bushes that border the riverside path and the brick wall that separates the park from the posh housing estate behind, was where The Miraculous TP performed his magic show. Now there's nothing here but a flattened patch of grass.":"This corner of the gardens, between the rose bushes that border the riverside path and the brick wall that separates the park from the posh housing estate behind, has been set up for a show. There's a trailer here set on chocks with a front that opens out into a little stage, framed with colourful pictures of top hats, magic wands, decks of cards, rabbits and stars, all painted on plywood. At the top, it says \'The Miraculous TP\' in silvery glittery writing.")); backstage_d : dynamic_string ("I'm at the back of the magic show, on a flat bit of the trailer that's folded down to make a little ramp behind the stage. There are all sorts of magical props scattered about, ready for use in the performance."+(nighttime? "":(i_am_mustard? "":""))); east_gardens_d : dynamic_string (""+(nighttime? "Everything on the stalls have been packed up and taken away and all that is left are the battered wooden counters and the spindly metal frames, standing like skeletons in the moonlight. ":(i_am_mustard? "There are all sort of stalls here, selling knick-knacks and home-made chutney and soap and tea towels and jewellery. All sorts of things that people don't need but seem desperate to buy on a sunny summer fête day like this. There are food vans as well, selling pizzas and sausages and burgers, with queues of people at each one. Plenty of scraps to scavenge around here!":"There are all sort of stalls here, selling knick-knacks and home-made chutney and soap and tea towels and jewellery. All sorts of things that people don't need but seem desperate to buy on a sunny summer festival day like this. There are food vans as well, selling pizzas and sausages and burgers, with queues of people at each one and food scraps scattered everywhere. It's a long time since I've been in such a busy place."))); beer_tent_d : dynamic_string ((nighttime? "":(i_am_mustard? "A powerful yeasty stench hits me full in the nostrils as I enter the beer tent, and I'm not sure if it's the real ale or the real ale drinkers that smell worse. There are so many people crammed in here that the canvas is practically bursting at the seams, and everyone is shouting and laughing loudly. With all those pint-carrying punters jostling elbows with each other, there's a constant rain of beer that's almost refreshing.":"A powerful yeasty stench hits me full in the nostrils as I enter the beer tent, and I'm not sure if it's the real ale or the real ale drinkers that smell worse. There are so many people crammed in here that the canvas is practically bursting at the seams, and everyone is shouting and laughing loudly. With all those pint-carrying fête-goers jostling elbows with each other, there's a constant rain of beer that's almost refreshing. The smell reminds me a bit of The Marrowbone and Cleaver."))); cripplepepper_lane_d : dynamic_string ("This narrow little lane feels more ancient that anything else in the town - like it's been here for ever and ever and the rest of Little Pottlington was built around it."+(nighttime? " The lane is dark and deserted now.":(i_am_mustard? "":""))); elbow_way_d : dynamic_string ("The road turns here and heads down the hill in one direction and back towards town in the other. A row of old houses follows the street around the corner so that those on either side look like they're glancing sideways at one another across the bend. "+(nighttime? "All the houses are dark now and the road is eerily quiet.":(i_am_mustard? "":""))); hoddle_street_d : dynamic_string ("This is the main road that runs along the bottom of the hill. It's mostly old houses with a few that have been turned into shops. " +(nighttime? "":(i_am_mustard? "There's a salon where Pru goes to have her hair done (always costs a fortune and never looks any different as far as I can tell - but what do dogs know?) and a fish and chip shop that everyone knows is no way as good as the one off the market square but does a roaring trade anyway because it's so close to the park.":"Rita used to have her hair done at the salon down here. Sometimes she'd bring me with her and afterwards we'd got to the chip shop next door and have our lunch in the gardens."))); museum_yard_d : dynamic_string ("The yard in front of the museum is paved with ancient cobblestones and still smells of horses even though this place can't have seen a horse and carriage for a good century or so. Old, crumbling red brick walls surround the place, with an archway marking the entrance back to the road. The museum itself is the old gaol, a horrible looking building that looms over the yard like it's scowling at everything in its shadow."+(i_am_mustard? "":"")); riverside_d : dynamic_string ("The railings disappear as the path gives onto a concrete slipway leading down into the river. It's a favourite perching place for ducks and swans and is heavily spattered with slippery bird poo. Probably helps the boats slide down the ramp into the water!"+(nighttime? "":(i_am_mustard? "":""))); by_the_river_d : dynamic_string ("This is the riverside path. The river itself is beyond an iron railing to the south. It's a calm stretch of water with a lot of different sorts of boats on it at this time of year, "+(nighttime? "though there is nothing moving at this time of night and the moored boats are dark and quiet.\nOne path leads north back to Hockbarrow Gardens while another runs east and west parallel with the river.":("out for a cruise or just moored up at one of the big iron rings set into the path. A lot of the owners are having lunch and getting a bit tipsy in the sunshine, while passers-by watch them nosily and the occasional swan honks and flaps its wings to remind everyone who's really boss around here."))); busy_road_d : dynamic_string ("Here the path ends at a road that runs across a bridge over the river. It's super busy with traffic day and night and is always on the cover of the local newspaper, along with a headline about the bypass that everyone always seems to be talking about but never gets built. All the cars and lorries for miles around roll down this road and across the little old bridge. "+(nighttime? "Even at this time of night, the road is alive with the roar of engines and the glow of lights.":(i_am_mustard? "I've been stuck on that road quite a few times when me and Pru have gone for a drive to the seaside.":"I haven't been in a car for years and looking at that lot, I'm not sorry at all - although it would sometimes be nice to go a bit further than the local lamp post!"))); east_street_d : dynamic_string ("This is East Street - as unexciting as its name. There's nothing much down here except the backs of a few shops, all locked up."+(nighttime? "":(i_am_mustard? "":""))); pinchmaid_hill_d : dynamic_string ("This is one of the two main roads down the hill, a bit less steep than Flayman Hill at the other side of town. There's not much to see except a lot of tall, thin expensive-looking old houses with wedge-shaped bottoms so they can stand upright on the slope. If one toppled over, they'd all fall down like a lot of dominoes."+(nighttime? "They loom over me in the moonlight.":(i_am_mustard? "":""))); knockbarrel_corner_d : dynamic_string ("The road turns a corner here and heads up the hill."+(nighttime? "":(i_am_mustard? "":""))); inside_bus_d : dynamic_string ("The number 52b has seen some service and the decor hasn't been updated for a decade or four, but it's none too shabby for that. The brown and orange swirly fabric on the seats is still bright and not too full of holes, the ridged rubber floor is nice and clean and the chromework gleams in the sunlight. Millicent keeps a tidy bus! "+(nighttime? "":(i_am_mustard? "Pru's taken me on the bus once or twice when the car has been out of order, but it's not her favourite way of getting around.":"Me and Rita used to ride this bus all the time. I smell the familiar scent of the seats and recognise every spot of chewing gum stuck to the floor."))); restaurant_entrance_d : dynamic_string ("The reception of the Pegasus Restaurant is all gleaming marble and recessed lighting, and smells of expensive perfume and tweed. I can see through an archway into the dining room, but in front of that there's a stiff-looking waiter standing behind a lectern with a big book on it and looking generally haughty and disapproving. Behind him on the wall is a large sign mounted in an elaborate golden frame."+(nighttime? "":(i_am_mustard? "":""))); slipway_north_d : dynamic_string ("I'm standing on a concrete ramp that leads down and eventually disappears into the water. The river flows past sluggishly in front of me. "+(nighttime? "":(i_am_mustard? " It doesn't look at all appealing!":"I imagine myself paddling through the cool water and remember when, a long time ago, I used to swim in the river quite often. Some dogs hate the water, but not me."))); north_river_d : dynamic_string ("I'm {i_am_mustard? `on`:`in`} the river nearest to the northern bank. "+(nighttime? "It's scary at night! I splash about in the cold, dark water and imagine all sort of horrible things below me.":(i_am_mustard? "The little wooden lid I'm sitting on revolves slowly on the sluggish current, making me feel queasy. I'm not cut out to be a sea dog!":custard_sitting_on_lid? "The wooden lid I'm sitting on revolves slowly on the sluggish current. It's so relaxing - I could stay here all day, but I suppose I shouldn't!":"I splash about happily in the smelly river water. Even Rita never let me do this!"))); middle_river_d : dynamic_string ("I'm {i_am_mustard? `on`:`in`} the middle of the river. "+(nighttime? "It's scary at night! I splash about in the cold, dark water and imagine all sort of horrible things below me.":(i_am_mustard? "The little wooden lid I'm sitting on revolves slowly on the sluggish current, making me feel queasy. I'm not cut out to be a sea dog!":custard_sitting_on_lid? "The wooden lid I'm sitting on revolves slowly on the sluggish current. It's so relaxing - I could stay here all day, but I suppose I shouldn't!":"I splash about happily in the smelly river water. Even Rita never let me do this!"))); south_river_d : dynamic_string ("I'm {i_am_mustard? `on`:`in`} the river nearest to the southern bank. "+(nighttime? "It's scary at night! I splash about in the cold, dark water and imagine all sort of horrible things below me.":(i_am_mustard? "The little wooden lid I'm sitting on revolves slowly on the sluggish current, making me feel queasy. I'm not cut out to be a sea dog!":custard_sitting_on_lid? "The wooden lid I'm sitting on revolves slowly on the sluggish current. It's so relaxing - I could stay here all day, but I suppose I shouldn't!":"I splash about happily in the smelly river water. Even Rita never let me do this!"))); slipway_south_d : dynamic_string ("I'm standing on a concrete ramp that leads down and eventually disappears into the water. The river flows past sluggishly in front of me."+(nighttime? "":(i_am_mustard? "":""))); carpark_d : dynamic_string ("This is the carpark of the extremely posh Pegasus Restaurant, where the diners compete to arrive in the most expensive vehicles. "+(nighttime? "There are no cars here now though - the luxury tarmac shines emptily in the moonlight.":(i_am_mustard? "There are luxury cars as far as the eye can see, all neatly parked up next to one other by the uniformed carpark attendants, like a shoal of super-rich fish. The restaurant itself is just across the carpark.\nHarry's brought Pru here a few times, when he's really wanted to impress her. It seems to work - last time they went out to the Pegasus, she came back engaged!":"There are luxury cars as far as the eye can see, all neatly parked up next to one other by the uniformed carpark attendants, like a shoal of super-rich fish.\nI've never been to this side of the river before, let alone to The Pegasus Restaurant!"))); in_restaurant_d : dynamic_string ("This is the dining room of The Pegasus, where everything is expensive, shiny and gold-plated - including the patrons. There are lots of round tables, mostly occupied by couples, and stealthy waiters flitting between, serving tiny portions of elaborately arranged food on enormous plates and keeping everyone's glasses topped up - I suppose to keep them drunk enough to not notice how small their dinners are."+(nighttime? "":(i_am_mustard? "":""))); under_table_d : dynamic_string ("I'm under one of the tables, with the tablecloth hanging like a curtain all around me. Now and then I see the shiny shoes of a waiter scuttling past my hiding place."+(nighttime? "":(i_am_mustard? "":""))); village_hall_d : dynamic_string ("I'm outside the town hall - a little red-brick bungalow with big windows and a battered double door with flaking blue paint. It's used a lot, for parish council meetings, aerobics, amateur dramatics, jumble-sales...all sorts. It's got that funny sort of stink that those places have - a mixture of floor polish, old fabric, home baking and sweat. I can smell it from out here. \nThere's a gate leading off to a carpark to the south. "+(nighttime? "The lights are off and the place is dark.":(i_am_mustard? "":""))); skating_area_d : dynamic_string ("This is a bit of the town hall carpark that's designed for accessibility, but the ramps, rails and obstacles make it so perfect for skateboarding that I wonder if that's what the architect really had in mind. "+(nighttime? "There no skaters around at this time of night. The carpark is empty.":(i_am_mustard? "I can just see myself zipping around town on one of those. Beats walking any day!":"I don't fancy hurtling around on one of those things - I prefer to keep my four feet firmly on the ground."))); gander_alley_d : dynamic_string ("This little alleyway leads around the side of the museum. There's a side door here."+(nighttime? "":(i_am_mustard? "":""))); museum_reception_d : dynamic_string ("The museum was recently refurbished with the help of some sort of lottery grant (it was the talk of the town for a while) and most of the money seems to have gone on smartening up the reception area. There are tall, narrow windows frosted with illustrations of local traditions and activities (mostly to do with fishing and basket-weaving), lots of polished wood and, right in the middle, a huge round reception desk. High up on the wall is a plaque. "+(nighttime? "The lights are off and everything is in shadow. ":(i_am_mustard? "I came in here once with Pru and watched her have a flaming row with Janet about not allowing dogs in. 'No dogs, no exceptions' she said, and that was that. I had to wait in the yard outside while she had a look around.": "Rita was friendly with Janet and used to bring me in here sometimes. I was never allowed past the reception though."))); museum_vestibule_d : dynamic_string ("This is the museum porch, just a tiny little room with big windows looking out onto the museum yard. There's a little wooden ledge that runs all the way around the base of the wall."); museum_garden_d : dynamic_string ("This is a walled garden, full of flowers and herbs planted in neat rows. "+(nighttime? "The plants look ghostly and weird in the silvery moonlight.": " The air is full of bees and butterflies. Mrs Kaur looks after all the plants in here and keeps everything blooming and lovely. She's got a special way with green things.")); outside_chipshop_d : dynamic_string ("I'm outside Spratt's Chiperama - the world's best fish and chip shop, as everyone in Little Pottlington knows. It's a detached building that must have once been an ordinary house but has been a chip shop for as long as anyone can remember. There's a big, grease-stained window at the bottom with a notice stuck to the inside, and smaller windows at the top, with yellowing net curtains. That's where the Spratts live, above the shop in a permanent cloud of chip fumes. "+(nighttime? "Frying is over until tomorrow - it's all dark and empty in there now.":(i_am_mustard? "I haven't been here in a while as Pru's on a boring pre-wedding diet, which is a shame for her 'cos I know she loves chips. After the wedding I expect it'll be chips all the way.":"Spratt's is just about the only other place that Kenny ever takes me - fish and chip Fridays is one of the routines he's kept going from the Rita days. I wait outside for him and then we trot back home with a soggy, delicious-smelling paper parcel. I usually get a chip or three."))); inside_chipshop_d : dynamic_string ("It's hot and steamy in here, and stinks deliciously of fried batter and chips. The walls are covered in blue tiles an there's a big Formica counter that runs the whole length of the shop. Above that I can see the greasy glass of the frying range, with battered fish, sausages and pies on display inside. There's a menu board behind the counter, with those push-in plastic letters that keep falling off and never seem to be put back so the menu makes less and less sense - but it doesn't really matter as everyone always knows exactly what they want and it always seems to cost the same."+(nighttime? "":(i_am_mustard? "":""))); side_of_chipshop_d : dynamic_string ("This is just a little path that leads around the side of the chip shop."+(nighttime? "It's very dark down here at this time of night.":(i_am_mustard? "":""))); back_of_chipshop_d : dynamic_string ("I'm at the back of the chip shop, in a scruffy and overgrown yard with cracked flagstones and a washing line strung from end to end."+(pants_gone? "":" A pair of moth-eaten underpants flap forlornly"+(nighttime? " in the moonlight.":(i_am_mustard? " in the breeze.":" in the breeze.")))); in_back_of_chipshop_d : dynamic_string ("This is somewhere you don't normally get to see - the back of the chip ship. Here is where the fish is battered, the peas mushed and the eggs pickled. There's a row of fryers taking up most of one wall and a stainless steel counter running along the rest. There are couple of fridges and all sorts of tubs, jars, containers and utensils scattered about."+(nighttime? "":(i_am_mustard? "":""))); inside_van_d : dynamic_string ("The back of the van is full of furniture, the larger bits tied down with thick nylon straps and the smaller, more delicate items just stacked higgledy-piggledy on top of each other and left to take their chances."+(nighttime? "":(i_am_mustard? "":""))); inside_sack_d : dynamic_string ("It's dark and smelly in here!"+(nighttime? "":(i_am_mustard? "":""))); museum_storeroom_d : dynamic_string ("I'm in a draughty room with a corrugated metal roof and walls. There are metal shelves with plant pots, wellington boots, gloves and gardening tools on them, and bags of bulbs and sacks of compost like the one I hitched a lift in. In front of me is the stone wall of the museum, against the side of which this shed must have been built. There's a door in the wall."+(nighttime? "":(i_am_mustard? "":""))); custards_dream_d : dynamic_string ("I'm not sure where I am actually...sort of floating...warm...everything jumbled up and not making sense around me....I feel like I've been here before but I can't quite...can't quite..."+(nighttime? "":(i_am_mustard? "":""))); mustards_dream_d : dynamic_string ("Hello? Where am I? Oh, is it...here again...everything light and dark and topsy-turvy...the last time I was here was...I can't remember...but..."+(nighttime? "":(i_am_mustard? "":""))); corridor_d : dynamic_string ("I'm in a fusty old corridor. The floor has been polished to a high sheen. There's a big sign on the wall here."+(nighttime? "":(i_am_mustard? "":""))); exhibition_room_d : dynamic_string ("This looks like the main exhibition space. It's a big room with a lovely old parquet floor and wood panelled walls with some old pictures in heavy wooden frames on them, and it has a stuffy, dusty smell of furniture polish and old books.\n It looks like things have been moved around in here recently as you can see the ghostly marks of vanished displays on the wooden floor - and the fancy glass cases that now take up most of the room look a bit out of place in the library-like surroundings. "+(nighttime? "":(i_am_mustard? "":""))); old_gaol_room_d : dynamic_string ("This room looks like it hasn't changed much since the place was a gaol - except it's now full of museum exhibits. The walls are bare stone with graffiti carved in them and there's a blocked-up window with old iron bars across the front. There are a lot of exhibits in here, all crammed in and jumbled up together."+(nighttime? "":(i_am_mustard? "":""))); top_staircase_d : dynamic_string ("I'm at the top of a staircase leading down."+(nighttime? "":(i_am_mustard? "":""))); bottom_staircase_d : dynamic_string ("I'm at the bottom of a staircase leading up."+(nighttime? "":(i_am_mustard? "":""))); maze_d : dynamic_string ("This corridor isn't really a very exciting place to be, but then they never are, are they? There's a worn and scuffed linoleum floor, white walls and a strip light on the ceiling - and that's about it."+(nighttime? "":(i_am_mustard? "":""))); outside_storeroom_d : dynamic_string ("This bit of the corridor is as uninteresting as the rest of it - except there's a door here."+(nighttime? "":(i_am_mustard? "":""))); corridor_1_d : dynamic_string ("Once you've seen one basement corridor in this place, you've seen them all. There's the same linoleum floor, white walls and strip light as in all the other ones."+(nighttime? "":(i_am_mustard? "":""))); corridor_2_d : dynamic_string ("Once you've seen one basement corridor in this place, you've seen them all. There's the same linoleum floor, white walls and strip light as in all the other ones."+(nighttime? "":(i_am_mustard? "":""))); corridor_3_d : dynamic_string ("Once you've seen one basement corridor in this place, you've seen them all. There's the same linoleum floor, white walls and strip light as in all the other ones."+(nighttime? "":(i_am_mustard? "":""))); broom_cupboard_d : dynamic_string ("This must be the cleaner's cupboard. It's a tiny, dark little room that smells like dust and chemicals. There is a grimy old mop in a metal bucket, a couple of well-used brooms and a huge floor-polishing machine that takes up most of the space. A rack of metal shelving stretches up to the ceiling."+(nighttime? "":(i_am_mustard? "":""))); duct_1_d : dynamic_string ("It's hard to keep my footing inside this polished metal tube - I slip and slide and have to scamper about just to keep upright! I suppose it wasn't made with canine comfort in mind."+(nighttime? "":(i_am_mustard? "":"I don't like to think how far off the ground we are..."))); duct_2_d : dynamic_string ("If anything, this bit of tube is more smooth and slippery than the other bit! My claws clack against the smooth metal and I keep falling sideways and having to scrabble myself upright again. Great for hamsters but not for dogs. "+(nighttime? "":(i_am_mustard? "":"I don't like to think how far off the ground we are..."))); on_shelf_d : dynamic_string ("I'm on the top shelf, close to the ceiling. I look down and see the scuffed linoleum floor quite a long way below me."+(nighttime? "":(i_am_mustard? "":"I feel my head swimming as I peer over the edge. I'm not very good with heights!"))); railings_d : dynamic_string ("This is a little bit of the riverside with buildings on either side. There are some railings blocking the way south, put there to stop people falling over the wall and into the river. The current is quicker here as the river approaches the weir further to the east. I can see the water tumbling over the slope and smashing into foam at the bottom. "+(nighttime? "":(i_am_mustard? "Looks like a dangerous place for a swim! Even the swans spin around and turn back before they get too close.":"I watch the tumbling rapids beyond the weir and imagine myself swimming up them like a hairy salmon!"))); east_river_d : dynamic_string ("I'm in the east part of the river, with high walls on either side - no chance of getting back onto the bank from here. "+(nighttime? "The nighttime river is dark and frightening.":(i_am_mustard? "":""))); next_to_weir_d : dynamic_string ("I'm in the part of the river closest to the weir. There's a barrier made of a steel cable with big plastic floats threaded on it like beads on a string, stretching the whole width of the river. "+(nighttime? "The river is scary and cold now and the rush of water over the slope seems to fill the darkness with its roar. ": "That's to stop any of those little white cruising boats that are all over the river in the summer from sailing over the edge; could easily happen after a few too many margaritas on a sunny day.")); finds_room_d : dynamic_string ("This place seems to be part office and part tea room. There's a sink with a kettle and some cups next to it, and a few very low chairs with wooden arms and spongy, dusty upholstery, arranged around a little ring-marked table with a tin of biscuits on it. There's a desk in one corner."); pub_description : string "Outside The Marrowbone and Cleaver" ; ge_description: string "Hockbarrow Gardens Entrance"; peg_desc: string "Pegasus Restaurant Reception"; chippy_desc: string "Round the Side of Spratt's"; dog : dynamic_string (("I am ")+(i_am_mustard? "Mustard":"Custard")); cauli : dynamic_string (cauli_on_stall? "a fluffy white cauliflower (on the stall)":"a fluffy white cauliflower"); mustard_inventory_list : string ; custard_inventory_list : string ; mustard_wearing_string: string; custard_wearing_string: string; } collections { mustard_inventory: list; custard_inventory : list; crate_objects: list; fishing_creel_objects: list; mustard_wearing: list; custard_wearing: list; } traits { too_big_for_crate_t : trait; too_big_for_fishing_creel_t : trait; character_t : trait; male_t : trait; female_t : trait; } objects { mustard: character "{mustard_description}"at = "outside_newsagent" msg = "Mustard's a handsome dog. He's short haired (I wonder what that's like?) with a curly tail and a stubby snout and big brown eyes, and he's a lovely honey colour all over. The sort of dog that even the most hard-hearted non-dog lover melts over when they meet him. He's smaller than me, but bigger than your average terrier and you can tell by the twinkle in his eye he's got a bit of pug in him." listed = "true" traits = [male_t] ; tadcaster : character "Tadcaster"at = "outside_butcher" msg = "Tadcaster's just Tadcaster: a big, droopy, slobbery black and brown spaniel with a growl like a grizzly bear, but so soft he could pick up a butterfly without hurting it. He's a little bit slow at times, but he usually gets there in the end. We've know each other since we were pups. {mustard_free? `He's got my lead clipped on to his collar, with Pru holding the other end!`:` `}" traits = [male_t] ; pru: character "Pru" at = "outside_newsagent"traits = [female_t] msg= "That's Prunella Arabella Kinsella, or just Pru to her friends. She's a tall lady with short dark hair. Very pretty, as far as I can tell. She's wearing a summer dress that I was asleep on this morning (should have know better than to put it on the bed really), a wide straw sun hat, and dark glasses. She's nattering away on the phone to her fiancé, Gerry Rockerfella."; tommy_spratt : scenery"Tommy Spratt"traits = [male_t] msg = "Tommy Spratt is a skinny bloke with hunched shoulders and thinning red hair that he manages to comb into a sort of disc sticking out over his face, like he's wearing a gigantic ginger biscuit. He's got one of those permanent scowls that some people have, as though being born was a massive inconvenience and things have only got worse since then."; linda_spratt: scenery "Linda Spratt"traits = [female_t] ; crawfield_cat : scenery "Crawfield the cat"traits = [male_t]msg = "Crawfield is long, sleek, black, snooty and incredibly vain. Whenever he talks, in his slow, measured upper-class drawl, he directs his eyes a couple of inches over your head as though he's actually addressing someone floating in the air above you, and when he's not talking he's either preening his whiskers or cleaning himself with that air of total superiority cats have."; thing: scenery "a white fluffy thing (bobbing around behind me)" at = "outside_newsagent" cant_get_message = "I try to get it, but it seems to be always just that little bit out of reach. Looks like it would be fun to chase it though!" msg = "It's my tail, of course!" ; adjective_noun : object "d" ; tail: scenery "my tail" msg = "It's a lovely one - everyone says so!" ; custard: character "{custard_description}" traits = [male_t] msg= "Custard's just a huge, woolly mass, with a dog buried somewhere inside. Other than the hair, his only visible feature is his long, thin snout that sticks out in front of him, with a shiny black nose on the end. He must have a good sense of smell, which is just as well really since his eyes, assuming he has any, must be so far buried in his hairy head that he probably can't see anything. He's like one of those rogue sheep that runs up the mountain to escape the shearer and then comes down five years later with a fifty kilo fleece. Poor Custard!"; woolly_lump: character "a great big woolly lump (tied to the lamp post)" at = "east_of_lamp_post" msg = "It's a great big woolly lump, like a shaggy sheep in need of a shearing. It's tied to the lamp post with a bit of string."traits = [male_t]; string : scenery "string" listed = "false" cant_get_message = "I can't really get it while it's tied to something." ; lamp_post : scenery "a lamp post" msg = "It's been there a long time and it's seen a lot of action: every dog in the district, and their grandfather, and their grandfather's grandfather must have cocked their leg against it. {i_am_mustard? ` `:`I've dreamed away a lot of hours here waiting for Kenny to come out of The Marrowbone and Cleaver, since Rita left.`}"listed = "false" at = "east_of_lamp_post" ; mr_czerwinski : scenery "Mr Czerwinski" at = "by_the_bandstand" msg = "Mr Czerwinski is a short, stocky bloke with a completely bald, sun-tanned head and a completely hairy, bearded chin, making him look a bit like he's got his face on upside down. He's got a kind smile and quick hands, and looks like he knows exactly what he's doing with electrical things." traits = [male_t]; professor_ambleside : scenery "Professor Ambleside" at = "ambleside_room" msg = "{nighttime? `He's wearing blue-and-white striped pyjamas and slippers, and his hair is even wispier than usual.`:`The Professor is one of those men that looks as though he was born in a tweed suit. He's got a kindly, crinkled face and eyes that are always wandering about as though looking for something that's just slipped out of sight. His hair is white and wispy and aside from the suit, he's wearing a trilby, a bow tie, and an amiable expression.`}" traits = [male_t]; pa_system: scenery "a huge PA system" at = "by_the_bandstand" msg = "It's a lot of old speakers in battered black chipboard casings, lined up around the bandstand like tombstones and connected by a tangle of wires to some sort of ancient-looking control desk with big knobs and dials." ; speakers : scenery "speakers" msg = "They're huge, black speakers in battered chipboard boxes - obviously second-hand, with who knows how many previous not-so-careful owners." listed = "false" at = "by_the_bandstand" ; control_desk : scenery "control_desk" msg = "{i_am_mustard? `It looks like something out of that old episode of Dr Who that Gerry made Pru sit through once. I thought that was the end, I really did - but their relationship recovered and now look at them!`:`It looks like something out of one of those old science fiction films that Kenny's always watching.`}" listed = "false" at = "by_the_bandstand" ; bus : scenery "a bus" msg = "It's the number 52b from Much Dumply to Little Pottlington, and every village along the way. A lovely, old-fashioned thing with a rattling, rumbling engine that always sounds like it's just delighted to be doing what it's doing, and big black wheels." ; flap:scenery "{flap_description}"msg = "It's a flap in the side of the bus - pretty well hidden." ; button : scenery "a button" msg = "It's a red button with 'PUSH HERE' written in a circle around it." ; seats: scenery "bus seats" at = "inside_bus"msg = "The seats are upholstered in plush fabric with an orange and yellow swirly pattern, and bordered with brown leather. They're springy but hard and have stood the test of time - they must be pretty old but they're still in good condition. " listed = "false" ; czerwinski_seat: scenery "Mr Czerwinski's seat"msg = "This one is definitely Mr Czerwinski's seat - the scent is unmistakable. He must always sit in exactly the same seat each time he takes the bus." ; bag: object "Mr Czerwinski's bag of tricks"msg = "It's a big, tough canvas bag with a zip fastening and leather handles." ; top_hat:object "a top hat" wearable = "true" msg = "It's a lovely, shiny old top hat, a proper antique that might have been worn by some posh gentleman a hundred years ago. Too good for a magic show really." traits = [too_big_for_fishing_creel_t] ; monocle: object "a monocle" wearable = "true" msg = "It's a tiny little lens inside a metal hoop, attached to a bit of string." ; dressing_table: scenery "Professor Ambleside's dressing table"at = "ambleside_room" msg = "It's a long wooden table covered in wood-effect plastic veneer. There are some drawers with big gold handles (very classy) and a big mirror attached to the back. Around the outside is a sort of wooden frame with lightbulbs set into it, none of which are on, of course, as it's sitting in a tent in the middle of the park. It probably came out of the back of the theatre next door. \nOn it are some sandwiches, a thermos flask, a hairbrush, and a few books." ; chair: scenery "Professor Ambleside's chair"at = "ambleside_room" msg = "It's a folding canvas chair with the letters V.I.P. stencilled on the back." ; bow_tie: object "a bow tie" wearable = "true" msg = "It's a big, floppy bow tie with a dark blue tartan pattern." ; lid: object "{lid_description}" msg = "It's a sturdy wooden lid made to fit the top of a crate." ; mustard_lid: object "a large wooden lid" traits = [too_big_for_fishing_creel_t] msg = "It's a sturdy wooden lid made to fit the top of a crate. {i_am_mustard? `It's awkward, but I'm carrying it as best I can.`:`It's awkward, but Mustard is carrying it as best he can.`}"; custard_lid: object "a large wooden lid" traits = [too_big_for_fishing_creel_t]msg = "It's a sturdy wooden lid made to fit the top of a crate. {!i_am_mustard? `It's awkward, but I'm carrying it as best I can.`:`It's awkward, but Custard is carrying it as best he can.`}"; sign: scenery "a sign" msg = "It's a large sign on the wall behind the lectern. Beneath a drawing of a very well-to-do dog dressed up to the nines, it says:\n^c^^i^Dogs must be appropriately dressed!\n^c^DOGGY DRESS CODE:\n- Top Hat (✔)\n- Bow Tie (✔)\n- Monocle (✔)\n- Trainers (✘)\n- Baseball Cap (✘)\n- Tracksuit (✘)\n" at = "restaurant_entrance" ; guests: scenery "the newly arrived guests" msg = "they're the rich-looking couple who just arrived." traits = [character_t]; diners : scenery "diners (at their tables)"at = "in_restaurant" msg = "It's a mix of rich couples and business people, all enjoying an incredibly expensive lunch. Everyone is very smartly dressed and the place is a glittering constellation of diamond earrings and cufflinks." traits = [character_t]; tables: scenery "tables" at = "in_restaurant" msg = "They are a sea of identical white tables, each laid with a crisp white tablecloth, silver cutlery and a little candle in the middle." ; legs: scenery "three pairs of legs" at = "under_table" msg = "There's a pair of skinny legs wearing slightly too-short dark blue trousers, dirty white socks and well-worn brown shoes that look like they're been specially polished for the occasion; another pair of short, stocky legs dressed in flared brown nylon trousers with cream-and-brown diamond-patterned socks and smart winklepicker shoes; and a third pair of very muscular legs, bulging inside drainpipe trousers, with red and white 'Happy Christmas!' socks and shiny black boots on." traits = [character_t]; legs_1: scenery "two pairs of legs"traits = [character_t] msg = "It's a slender lady's legs and a man's legs that jitter and twitch nervously. Perhaps it's a first date?"; bar : scenery "the bar" at = "beer_tent" msg = "The bar is made of rough, splintery wood with 'FRAGILE' and 'THIS WAY UP' stencilled on it. Must have been made out of old packing crates or something." ; bar_staff: scenery "the bar staff" at = "beer_tent"traits = [character_t] msg="There's a big bloke with a huge beard, wearing a CAMRA T-shirt, who seems to be spending most of his time leaning on the bar and talking loudly, while a youngish girl with blue hair and piercings is doing her best to cope with all the customers waving money and shouting at her."; punters: scenery "punters" at = "beer_tent" traits = [character_t] msg="It looks like just about everyone in Little Pottlington is crammed together in this sweaty tent, all drinking beer and shouting at each other. "; mayor: scenery "the Mayor"traits = [male_t]msg = "The Mayor is a jolly, red-faced old bloke with a bristly white beard and a knobbly nose. He's wearing his mayoral robes (very nice they are too - red velvet with black stripes and gold along the edges), a fancy hat with a feather in it, and a huge, heavy gold chain. He must be baking in that lot! He's holding a pint of beer and squinting through a monocle screwed into his eye and he's talking to the Mayoress - or rather, yelling at her at the top of his voice to be heard over the row that everyone else is making."; mayoress: scenery "the Mayoress"traits = [female_t] msg="She's an elegant lady with curly white hair done up a bit like the Queen's. She's wearing a summer dress, a fancy hat and some sparkly earrings. She's sipping a glass of something sparkly and smiling and looking around as she happily ignores her husband bellowing next to her. It's lucky she doesn't feel the need to reply really, as she'd probably deafen everyone else in the tent - she's the Town Crier, as well as the Mayoress, and when she wants to be heard she can rattle window panes in the next county."; glass_1: scenery "an empty pint glass (on the bar)"msg = "It's one of those rigid plastic ones. There's a bit of beer scum clinging to the inside but it looks empty otherwise. It's on the bar, on top of the beer towel." cant_get_message = "I can't reach it from down here." ; beer_towel: scenery "a beer towel (on the bar)" msg = "It's just an ordinary beer towel, hanging over the edge of the bar and stiff with dried beer. The background is red and there's a yellow horseshoe design on it and on the half I can see are the letters 'MAG BRE'."at = "beer_tent" ; glass_2: scenery "an empty pint glass"msg = "It's one of those rigid plastic ones. There's a bit of beer scum clinging to the sides and the bottom." cant_get_message = "It's just a dirty old beer glass - I don't think I should bother with it." ; stage : scenery "the stage" at = "magic_show" msg = "It's on the back of a trailer - the sides and floor have been folded back to make a small stage. If I look underneath I can see the trailer wheels. Very clever! When the show is done they must just fold it up and drive it away." ; props: scenery "magical props" at = "backstage"msg = "It's all sorts of magical bits and bobs, scattered haphazardly across the back of the stage where they're out of sight of any audience but still within easy reach of whoever is on stage. There are balls and metal rings, a stick with a fluffy ball on the end of it, a giant Rubik's cube, a mannequin's arm, a feathered headdress, a crystal ball, a unicycle and all sorts of other things." cant_get_message = "I can't think what I'd do with any of that really, so I leave it alone." ; rabbit: scenery "{rabbit_description}"cant_get_message = "Well, that doesn't seem very polite!"msg = "It's a fluffy white rabbit." ; cauliflower : object "{cauli}" msg = "It's the fluffiest white cauliflower that I've ever seen! It's look like it belongs in a hutch with some straw rather than on a vegetable stall in the market." ; tag : scenery "a tag" ; base : scenery "base"msg= "It's the base inside the top hat. {hat_open? `It's open.`:`It's closed.`}"listed = "false" ; ribbon: scenery "ribbon"msg = "It's a blue satin ribbon with each end tied to a pillar of the bandstand so that it hangs loosely in front of the enormous speakers." at = "by_the_bandstand" listed = "false" cant_get_message = "I can't think what I'd need that for, so I decide to leave it alone." ; ribbon_1: scenery "ribbon"msg = "It's two lengths of blue ribbon, each tied to a pillar of the bandstand."cant_get_message = "I can't think what I'd need that for, so I decide to leave it alone." listed = "false" ; tp: scenery "The Miraculous TP" msg = "'The Miraculous TP' is actually Tony Parkin, a pudgy, fair-haired little man who runs 'Maggots-R-Us', the local angling supplies shop. When he's behind the counter in his shop he's usually dressed from head to foot in camouflage fatigues as though prepared to fight for his life against those fish, but now he's wearing a red sparkly waistcoat stretched tight over his belly, a blue sequined jacket and a pair of bright yellow trousers with pink stars stitched all over them. You'd never know it was the same man if not for the smell of fish bait." traits = [male_t]; skateboard: object "{skateboard_description}" traits = [too_big_for_fishing_creel_t] msg="It's a pretty ordinary-looking skateboard with a few scuffs and scratches here and there and slightly wobbly wheels. There's a picture of a grinning skull on it that's been almost worn away by feet."; skaters: scenery "some skaters" traits = [character_t] msg="It's a group of baggily-dressed local teenagers that like to hang about here and try to impress each other with their skateboarding skills. I suppose there are worse things they could be doing!" ; railing : scenery "a railing" msg = "It's just a metal railing, a bit rusty at the joints. It might have been painted once but now it's just a dull bare-metal grey." ; kerb : scenery "a kerb" msg = "It's a tiny little wall along the side of the path to the town hall. Doesn't seem to serve much purpose other than for kids to skateboard along in front of the <^i^NO SKATEBOARDING> signs." ; bench: scenery "It's a bench made out of some weird material that looks like wood but isn't really wood. It's bolted to a concrete slab. "; stuffed_dog : scenery "a stuffed dog on rollers" at = "store_room"cant_get_message = "But it's the same size as me! I'd have trouble picking that up." msg = "It's a stuffed dog - I mean, not actually a dog that's been stuffed, thank goodness, but more like a toy one - standing on a board with wheel on the bottom, a bit like a skateboard. The dog itself is a big hairy lump with masses and masses of curls and a tail buried somewhere at the back and a long, thin snout poking out the front." ; maya: scenery "Maya" traits = [female_t] msg="She's a little girl with long, dark hair and freckles. She's smiling and laughing, excited to be in the parade."; paraders: scenery "the paraders"traits = [character_t] ; replica_collar: object "{replica_collar_description}" wearable = "true"msg = "It's a replica of the ancient Romano-British golden dog collar from the Pottlington hoard, gold plated with fake jewels. It's look very real!" ; ancient_collar: object "{ancient_collar_description}" wearable = "true" msg = "It's the ancient Romano-British dog collar from the Pottlington hoard. It's a beautiful thing, made from narrow bands of solid gold, twisted into spirals and looped around one another so the whole looks a delicate tangle of vines. It's studded with precious stones of all different colours that glimmer and sparkle as they catch the light. Whatever dog wore this must have been a very proud pooch indeed!" ; crate: scenery "{crate_description}" at = "gander_alley" container_type="bag" msg = "It's just an ordinary looking wooden crate."cant_get_message = "It's far too big and heavy to pick up and carry around." ; fishing_creel: scenery "{fishing_creel_description}" msg = "It's a narrow, deep wicker basket with a canvas lid and a leather shoulder strap, sort of like a big, stiff handbag really. Antique by the look of it, so the museum is the right place for it." container_type="bag" cant_get_message = "I have a go, but it's really firmly attached. The waxwork fisherman seems to glare at me with his glassy eyes as I try to pull it off his shoulder, so I give up pretty quickly." ; shredded_paper: scenery "lots of shredded paper"msg = "It's a lot of shredded paper, for packing. Nothing special about it as far as I can see." cant_get_message = "I think about taking it, but decide not to. What would I do with a load of shredded paper?" at = "crate" ; artefacts : scenery "some artefacts" msg = "There are pieces of old bone, broken pottery, and metalwork - each bit labelled with tiny, spidery writing." cant_get_message = "None of it looks very useful, so I decide to leave it where it is." at = "crate" ; back_door: scenery "back door"at = "gander_alley" msg = "It's a door without a handle, in the back wall of the museum." listed = "false" ; fryers: scenery "fryers" at = "in_back_of_chipshop" listed = "false" msg = "They're a row of big stainless steel boxes, with blue Formica bases and glass screens attached to the front, like little lorries full of boiling chip fat. They must be really ancient but they're sparkling clean. The Spratt's must spend hours scrubbing all the chip fat off and polishing them up every day, in between yelling at each other."cant_get_message = "Even if I wanted them, they're massive and fixed to the floor." ; fish_crate: scenery "a crate of fish" at = "in_back_of_chipshop" msg = "It's a white plastic crate full of smelly fish fillets!"cant_get_message = "Yuk, no thanks!" ; fish: object "a haddock fillet" msg = "It's a slimy, horrible fish fillet that would look much better covered in batter." ; counter: scenery "the counter"at = "inside_chipshop" msg = "It's a blue Formica counter, separating the cooking area of the chip shop from the bit out the front by the window, where the customers wait for their fried delights." listed = "false" ; bell : scenery "a bell" at = "inside_chipshop" msg = "It's a brass bell - one of those ones that you hit the top of to make it ring. Useful if everyone's in the back and can't hear a customer come in over the sizzle of the fryers." ; menu: scenery "the menu"at = "inside_chipshop" listed = "false" msg = "It's a list of what's on offer in Spratt's Chiperama, laid out in black plastic letters stuck to a white plastic board. The letters are different shapes and sizes, as if they're from a few different sets, and it looks like someone's run off with all the vowels. It says:<^i^\nHdck sml £1.20 lg £2.10\nCd sml £1.90 lg £2.90\nChps sml 90p lg £1.50\nBttrd Sge 80p\nMyt Py £2\nVgy Py £1.80\nPinppl Frttr £2.40\nMshy Ps 75p\nPckld Ygg 40P\nCrry Src 20p \nTm Ktchp 20p>"; sign_1: scenery "a sign" msg = "I jump up to catch a glimpse of it. It's a little cardboard rectangle, fixed to the counter next to the bell with sticky tape. It says <^i^Ring for Atenttion>." at = "inside_chipshop" ; notice: scenery "a notice, in the window"msg = "It says \"NO DOGS\" above a silhouette of a dog's head inside a crossed-through red circle, and at the bottom someone has scrawled in smudgy blue biro: <^i^Sory, no exepsions!>" at = "outside_chipshop" listed = "false" ; janet_makepeace: scenery "Janet Makepeace" at = "museum_reception" traits = [female_t] msg = "Janet's worked in the museum for so long she's practically one of the exhibits. She's a stern looking lady with wavy grey hair and glasses, wearing a crocheted cardigan and a necklace of colourful plastic beads."; van : scenery "a van" ; sofa : scenery "{sofa_description}" at = "inside_van"msg = "It's a lovely new sofa, very sleek and modern, finished in dark green velvet. The perfect kind of place for a dog to curl up and have a snooze." cant_get_message = "It's far too big to pick up and carry around!" ; cushion: scenery "a cushion"at = "inside_van" cant_get_message = "I can't think what I'd do with that, so I leave it alone." ; ian_smashet: scenery "Ian Smashet" msg = "He's a twitchy little bloke with one of those strange smiles that makes you think he knows something about you that you don't know yourself, and he's sorry for you."traits = [male_t] ; ernie_droppsit: scenery "Ernie Droppsit" msg = "He's almost as wide as he is tall, with a toothless grin and a nobbly nose. He's wearing a shirt that's fighting a losing battle to cover a great big beer belly, with skinny little leg sticking out below." traits = [male_t]; billy_nickit: scenery "Billy Nickit (sitting in the van)" msg = "He's a big bloke with short white hair and a moustache, smoking a cigar behind the wheel in the front of the van."traits = [male_t] ; mrs_kaur : scenery "Mrs Kaur"traits = [female_t]msg="She's a little lady but much stronger than she looks - she carries sacks of compost and bags of bulbs around as if there was nothing in them, and she's always digging, and forking, and pushing a wheelbarrow. She's got twinkling eyes and long, greying hair tied back, and she wears blue dungarees. She smiles when she sees me."; sack : scenery "a sack" msg = "It's just a scratchy old sack." cant_get_message = "I have a go, but it's really heavy - hardly seems worth the effort of dragging it around really." ; flower_bed: scenery "flowerbed"at = "museum_garden"listed = "false" msg = "It's just the sort of thing that dogs like to dig holes in, but I won't because it's full of lovely flowers that Mrs Kaur has planted." ; vegetable_bed: scenery "vegetable bed" at= "museum_garden" listed = "false" msg = "It's full of green shoots poking up through the crusty soil. It's tempting to have a proper dig around in there and see if I can find anything tasty - I'm sure I can smell carrots and, if you didn't know, dogs like carrots almost as much as rabbits do - but I don't because it would be mean to spoil Mrs Kaur's carefully tended display." ; newsagent: scenery "the newsagent"at = "outside_newsagent" msg = "It's the outside of Ogodu News." listed = "false" ; butchers: scenery "the butchers" at = "outside_butcher" msg = "It's the outside of Halfbacon's Butchers."listed = "false" ; door: scenery "a door" at = "museum_storeroom" msg = "It's a completely plain door without even a doorhandle, set into the outer wall of the museum." ; bar_1: scenery "a bar" listed = "false" at = "outside_storeroom" msg = "It's a metal bar running across the width of the door and hinged at either end. I think you're supposed to push it to open the door." ; exhibits: scenery "exhibits" at = "old_gaol_room" msg = "It's a bit of a jumble of different things to do with Little Pottlington and the local area. There's a display case with old photographs in it alongside a pocket watch and policeman's whistle. Next to that there's a big box with poles attached to it, very old and tatty - I think it must have been for people to sit in and get carried around, before the days of cars. Then there's a whole wall full of big metal tools with long wooden handles, all dulled with age, and below them a lot of antique padlocks and keys, some of them absolutely huge! There's an old bicycle on a stand, next to a toy pram with a scary-looking china doll in it with one eye missing, and a little model of what the town would have looked like hundreds and hundred of years ago - just a few little huts next to the river, in the middle of nowhere. Right in the middle of the room is a sort of diorama of a wetland scene, with a waxwork sitting in a funny little wooden boat perched on a wobbly blue patch painted on the floor, next to a quite flat and dented papier-mâché island covered with stuffed birds." ; diorama: scenery "diorama" at = "old_gaol_room" msg = "I think it's supposed to show what it would have been like around here hundreds of years ago, when everything was flooded and Little Pottlington was an island in the marshes, the only dry spot for miles around (dogs have long, long memories... I can almost remember those days, if I think hard enough). " listed = "false"; waxwork: scenery "a waxwork" msg = "He's some sort of fisherman, dressed in rags and crouched awkwardly in a little wooden boat, with a paddle in his hand. I'm not sure what he's made of - wax, or plaster, or maybe a bit of both. His face is all white and lumpy, with painted on stubble, and there's a dusty old wig perched on top of his head. He looks sadly across the room with his painted-on eyes, as if he knows he'll be stuck on his little blue circle forever.\n There's a wicker creel on his shoulder." cant_get_message = "I think he'd having a bad enough time already without me dragging him all over the place." ; shelves: scenery "shelves" at= "broom_cupboard" msg = "They're grey metal shelves in a sort of rack, bolted to the wall. They're stacked with all sorts of cleaning products." ; grille: scenery "a ceiling grille {grille_open? `(open)`:`(closed)`}" msg = "It's a metal grille, set into the ceiling. {grille_open? `It's open`:`It's closed`}." at = "broom_cupboard" ; grille_1: scenery "a ceiling grille {grille_open? `(open)`:`(closed)`}" msg = "It's a metal grille, set into the ceiling. {grille_open? `It's open`:`It's closed`}." at = "on_shelf" ; grille_2: scenery "a ceiling grille {grille_open? `(open)`:`(closed)`}" msg = "It's a metal grille, set into the ceiling. {grille_open? `It's open`:`It's closed`}." at = "duct_1" ; grille_3: scenery "a ceiling grille {grille2_open? `(open)`:`(closed)`}" msg = "It's a metal grille, set into the ceiling. {grille2_open? `It's open`:`It's closed`}." at = "duct_2" ; grille_4: scenery "a ceiling grille {grille2_open? `(open)`:`(closed)`}" msg = "It's a metal grille, set into the ceiling. {grille2_open? `It's open`:`It's closed`}." at = "old_gaol_room" ; cleaning_products: scenery "cleaning products" msg = "It's just a lot of polish, detergent, cloths, rubber gloves, bin bags and other things - everything that's needed to keep this dusty old museum spick and span." cant_get_message = "I don't see any of that lot being of much use." at = "broom_cupboard"listed = "false" ; cleaning_products_1: scenery "cleaning products, scattered all over the floor" msg = "It's a mess of spray bottles, toilet rolls, sponges, cloths, aerosol canisters, rubber gloves, bin bags and all the other things that were on the shelves before {i_am_mustard? `Custard`:`I`} knocked them off!" cant_get_message = "I don't see any of that lot being of much use." ; display_case: scenery "{case_description}" ; sensors : scenery "sensors" msg = "They're something to do with the alarm system, I think - they look like they've been positioned around the main display case to protect what's inside. But they're not switched on - it looks like their power has been cut!" cant_get_message = "Whatever they are and whatever they do, I'm pretty sure that I don't need them." listed = "false" ; cases: scenery "cases" at = "exhibition_room" listed="false" msg = "They're very shiny, very modern-looking glass and chrome display cases. I think they must have been brought in from the British Museum because they're not at all like the rickety old wooden cases that you'd expect to find in here. They're filled with gleaming treasures from the Pottlington Hoard: mostly coins and brooches and that sort of thing, alongside a lot of broken pottery and some pots and jugs and things that someone with a lot of time on their hands has stuck back together from all the little bits. On each of the cases there is a little sticker that says: <^i^Warning! Infrared Protection System! Unauthorised Opening Will Trigger Alarm!>" cant_get_message = "Definitely best left alone, I think." ; smashed_cases: scenery "smashed cases"msg = "They're the British Museum's special high-security display cases that had the Pottlington Treasure in them - now all smashed up and empty!" cant_get_message = "This is a crime scene now - I'd better leave them be." ; broken_glass: scenery "broken glass, all over the floor" msg = "It's the glass from the display cases, all smashed into fragments and scattered across the floor. It'll take someone a long time to stick all of that lot together again!"cant_get_message = "What, and cut my poor paws to ribbons? I don't think so!" ; combination_lock : scenery "a push-button combination lock" msg = "It's a big brass lock, very old fashioned looking. There are chunky metal buttons set into a metal disc, and next to each is a number from 0 to 9." ; door_4: scenery "the display case door" msg = "It's a close-fitting door in the back of the display case. It's {case_open? `open`:`closed`}." listed = "false" ; handle: scenery "a handle"msg = "It's just a boring old handle, designed for hands rather than paws - but I could probably pull it if I tried." ; note: object "a note" msg = "It's a note scribbled on a bit of paper. It says <^i^Replica for display? Are we insured for real thing?? Check with BM.>" ; plaque: scenery "a plaque" msg = "It's a piece of engraved and polished wood, fixed high up on the wall behind the reception desk, where visitors can't miss it.\nIt says:\n ^c^<^i^Little Pottlington Museum, opened by H.R.H. The Princess Mavis, Countess of Spelnose.\nThis plaque is of original timber from the old gaol house, built in 1726, on which site the present museum stands.>" cant_get_message = "Even if I needed to, it's far too high up to reach." at = "museum_reception" ; information_boards: scenery "information boards"msg = "They're big boards fixed to the wall, crammed with information about the building and the exhibits on display. I read <^i^...timbers from the original building were uncovered during renovation work in the 1980s and subsequent dendrochronology work proved that the current annexe is the oldest part, dating with certainty from 1726...> before I lose interest." at = "old_gaol_room" ; ledge: scenery "a wooden ledge, low, below glazed walls."listed = "false" at= "museum_vestibule" msg = "It's just a little wooden ledge, beneath the windows." ; wire: scenery "a wire" msg = "It's a thick white wire, fixed to the little wooden ledge. It emerges from the wall by the front door, runs along the ledge, and then disappears into the opposite wall. There's a little sticker attached to it." cant_get_message = "It's pinned firmly to the ledge under the window - I can't see any way of getting it off." ; sticker: scenery "sticker" msg = "It says 'IMPREGNABLE ALWAY ON® <^i^ Alarm Systems That Never Sleep>'" cant_get_message = "It's sticky and wrapped around the wire - a bit difficult for a dog to deal with really!" listed = "false" ; cut_wires: scenery "cut wires" msg = "It's two halves of the wire that runs along the ledge beneath the window - it's looks like it's been cut! The two halves curl up a little at either side of the gap where they've been severed. There's a little sticker attached to it."cant_get_message = "It's pinned firmly to the ledge under the window - I can't see any way of getting it off." ; getaway_car: scenery "the getaway car"msg = "It's a big grey saloon car with a few scratches and dents in it. There's something funny about the number plates, like they don't quite fit properly. I reckon they've come off a different car." ; merve_swerve: scenery "Merve the Swerve (inside the getaway car)"traits = [male_t] msg="He's a heavy looking bloke with a craggy face and a broken nose and he's wearing a shirt that bulges over his muscles. I wouldn't like to get on the wrong side of him!"; skeleton_keith : scenery "Skeleton Keith (in the getaway car)"traits = [male_t] msg = "He's small and thin, with sandy hair and a worried expression. He's got very long fingers that always seem to be wrapping themselves around each other as he wrings his hands together."; handclap_harry: scenery "{handclap_harry_description}"traits = [male_t] msg = "He's quite short and stocky, with a big face and a permanent, smug grin beneath a thin moustache."; paper_bin: object "a waste paper bin" msg = "It's a bin full of tissues and bits of screwed up paper. It's made of completely bare metal so I wouldn't put it too near any exposed wires or anything like that! What were they thinking of?" ; desk: scenery "the reception desk"at = "museum_reception" msg = "It's the museum's reception desk (so basically, Janet Makepeace's desk). It's made of honey-coloured wood and is very curvy and shiny and modern-looking, like everything else in the reception and nothing else in the rest of the building. There's some stationery and office bits on it alongside a big box of tissues and some hay fever tablets, all arranged very neatly and precisely around a computer."; // computer: scenery "computer" msg = "It's just an ordinary, boring computer - the sort of thing that dogs don't have any use for at all."; ; tissues: scenery "tissues"msg = "They're scrumpled up tissues, left behind by Janet Makepeace after sneezing her way through another hay-feverish shift behind the reception desk."listed = "false" cant_get_message = "A load of snotty old tissues? No thanks!"; paper: scenery "a waste paper bin" msg = "It's mostly torn-up tickets. There's a confusing variety of tickets on offer, what with all the concessions, special discounts, family, annual and lifetime memberships available - not to mention the exhibition tickets - so it's not surprising they're always getting muddled up and printing the wrong thing." cant_get_message = "I don't think I need to bother with that!" listed = "false" ; sergeant_wise: scenery "Sergeant Wise" msg = "She's got fair hair and a kind, reassuring sort of face." traits = [male_t] ; constable_oddcrisp: scenery "Constable Oddcrisp"traits = [male_t] msg="He looks very young and a bit unsure of himself, like he's just woken up and found himself unexpectedly wearing a police uniform and has decided to make the best of it. "; chief_broom: scenery "Chief Inspector Broom"traits = [female_t] msg= "She's very tall and very serious-looking, with a habit of nodding her head slowly at absolutely everything that anyone says, as though it were all extremely important."; //obj-here statue : scenery "{statue_description}"; museum: scenery "the museum" at= "museum_yard" msg = "It's a crumbling old building with thick stone walls and a flat roof, and a fancy new porch stuck on to the outside. It used to be the town gaol but hasn't been that for hundreds of years. These days they must send all the bad people somewhere different, or else nobody in Little Pottlington every does anything illegal." listed = "false"; broken_car: scenery "a broken car" msg = "It's the crook's getaway car, the windscreen smashed and the front all crumpled in where the statue of Ambrose Hockbarrow landed on it. Steam rises from the bonnet and a puddle of oil leaks from below and creeps slowly along the gaps between the cobble stones." ; newsagent_sign: scenery "newsagent sign" at = "outside_newsagent" msg = "It says 'Ogodu News' in big, cracked plastic letters against a yellowish background." listed = "false" ; headlines: scenery "headline" at = "outside_newsagent" msg = "One of them reads <^i^Local Museum Displays Famous Treasure> and the other <^i^Dishwasher Fire in Lower Cumley - Kitten Escapes Injury.> A typical sort of news day in Little Pottlington." listed = "false" ; adverts: scenery "adverts" at = "outside_newsagent" msg = "There are a few handwritten postcards offering cleaning services and rooms to rent, along with a poster for the local amateur dramatic society's production of Ben-Hur, to be performed next Wednesday and Thursday in the town hall. Given that there are never more than four people involved and their average age is in the 80s, you can't accuse them of lacking ambition!" listed = "false" ; windows : scenery "windows" at = "outside_newsagent" msg = "They're just ordinary old windows, speckled with grime. There are some adverts and the latest newspaper headlines on display." listed = "false" ; tiles: scenery "tiles" at = "outside_butcher" msg = "They're dark green glazed tiles, very old but shining like new. Old Halfbacon is very shop-proud and polishes them early each morning before opening time." listed = "false" ; sausages: scenery "sausages" at = "outside_butcher" msg = "They look tasty." listed = "false" cant_get_message = "But they're the other side of the glass!" ; chops: scenery "chops" at = "outside_butcher" msg = "Looks like a dog's dinner to me!" listed = "false" cant_get_message = "But they're the other side of the glass!" ; meat: scenery "meat" at = "outside_butcher" msg= "It all looks good enough to eat." listed = "false" cant_get_message = "But they're the other side of the glass!" ; windows_1 : scenery "windows" at = "outside_butcher" msg = "They're big old bay windows, full of tasty meat products." listed = "false" ; walls : scenery "walls" at = "market_passage" msg = "They're just boring brick walls."listed = "false" ; gutters: scenery "gutters" at = "market_square" msg = "They've been here a long, long time."listed = "false" ; paving_stones : scenery "paving stones" at = "market_square" msg = "They're smart new ones, put down when the square was smartened up a few years ago."listed = "false" ; buildings : scenery "buildings" at = "crupgirdle_street" msg = "This must once have been the poshest road in town. Now the grand old houses have seen better days and have been divided up into lots of little apartments, and some have been demolished altogether to make way for new flats." listed = "false" ; bench_1 : scenery "bench" at = "east_of_lamp_post" msg = "They're black metal benches with curved seats that are always too wet or cold to use. But seeing how people's bottoms aren't designed for sitting on, I suppose they're better than nothing. Dogs don't have these kinds of problems."listed = "false" ; bin_1 : scenery "walls" at = "east_of_lamp_post" msg = "It's just an ordinary litter bin, overflowing with chip cartons and dog poo bags as usual."listed = "false" ; slate: scenery "a lump of slate" at = "gardens_entrance"msg = "It's a jagged lump of slate with a wide, smooth surface, set upright in the ground. Chiselled into it are the words:\n^c^<^i^Hockbarrow Gardens\nOpened by H.R.H. The Princess Mavis, Countess of Spelnose\n19th July 1962>"; paint: scenery "paint" msg = "Just ordinary, boring paint of the sort you might watch dry if you really had nothing else to do. It's all old and flaky." at = "outside_newsagent" listed = "false" ; // adjective_noun : scenery "" at = "" listed = "false" ; phone : scenery "phone"msg = "It's one of those strange, flat things that people have glued to their ears or their fingertips ninety-nine percent of the time. People use them to talk to each other and to store the most important bits of their brains. At least, that's what I reckon, as your average person seems completely clueless if they ever lose theirs. " at = "outside_newsagent" listed = "false"cant_get_message = "I'd better not - she'd be lost without it." ; lead : scenery "the lead (to which I'm attached, with Pru holding onto the other end)"msg = "It's one of those retractable ones that gives you just enough lead to get tangled around your legs, but not quite enough to get over to that dog at the other side of the park and give it a good sniff.\nAt the moment, I'm attached to one end of it while Pru has hold of the other." cant_get_message = "I can't really get the end that's attached to me - and Pru would never let go of the other." at = "outside_newsagent" ; carton: scenery "chip carton" msg = "It's just a load of smelly old rubbish."cant_get_message = "When I was younger I'd have loved to - really I would. I'd have been in there straight away, chewing everything into little bits and making a mess everywhere. But I've learned not to do that now I'm not a puppy any more."listed = "false" ; button_1: scenery "button"msg ="It's a chunky metal button. I reckon I could push it if I tried." listed="false"; screen: scenery "screen"; window: scenery "a window" msg = "It's a little square window, set into the wall just above the pitched roof of the museum porch." cant_get_message = "It's far too high up for me to do anything with it!" at = "museum_yard" listed = "false" ; sign_2 : scenery "a sign" at = "corridor" listed = "false" ; crowd: scenery "a crowd of spectators"msg = "It's a mix of people. There are happy and excited children chattering away while their parents fuss over them and slather them with sun cream and put their sun hats back on their heads every time they fly off (which seems to be every second) while also trying to persuade them to drink and eat. Then there are others who have just wandered into the vicinity with pints in their hands and become intrigued enough to stick around to see what's going to happen, elderly people dozing in garden chairs with parasols to shade them (and block the view of everyone behind them), and teenagers who are still young enough to be excited at the prospect of a magic show.\nAll their eyes are glued to the stage, waiting to see what will happen next." ; pub : scenery "the pub" at = "outside_pub" listed = "false" msg = "It's certainly seen better days." ; window_1: scenery "window" at = "outside_chipshop" msg = "They're clean and decent, but no amount of window-washing could get rid of the years and years' worth of chip grease." listed = "false" ; curtains: scenery "curtains" at = "outside_chipshop" msg = "They're net curtains that remind me a bit of {i_am_mustard? `Pru's Mum's`:`Kenny's sister's`} house." listed = "false" ; chiperama: scenery "chip shop"msg = "It's Spratt's Chiperama, in all its glory."listed = "false"at = "outside_chipshop" ; underpants: scenery "Pants" msg = "They're Tommy Spratt's Y-fronts, flapping in the breeze like a flag of surrender." listed = "false" at = "back_of_chipshop" cant_get_message = "I think they're better left alone, don't you?" ; washing_line: scenery "washing line"listed = "false" msg = "It's a bit of plastic-coated wire, strung between the back of the chip shop and the fence." cant_get_message = "I can't think what I'd need that for - best leave it alone I think." at= "back_of_chipshop"; flagstones: scenery "flagstones"listed = "false" msg = "They're just old flagstones."cant_get_message = "Even if I could manage to life one of them up, I really don't see the point in doing it." at= "back_of_chipshop"; cobblestones : scenery "cobblestones" listed = "false" msg = "They're rounded stones, set into the ground and worn smooth by wheels and hooves over centuries. More comfortable for horses to walk on than dogs - my paws keep getting stuck in the gaps between them."cant_get_message = "They're stuck in the ground; I think I'd better leave them be." at = "museum_yard"; archway: scenery "archway" listed="false" msg = "It's an archway in the brick wall that surrounds the museum yard." cant_get_message = "don't be silly" ; flowers : scenery "flowers"at = "museum_garden" msg = "They're lovely, I'm sure - but not really what dogs are interested in." listed = "false" cant_get_message = "I don't think Mrs Kaur's flowers are meant for picking."; herbs : scenery "herbs"at = "museum_garden" msg = "They're the sort of smelly things that people like to plant in their gardens." listed = "false" cant_get_message = "I can't think what I'd do with them, so I'd better leave them where they are."; bees : scenery "bees"at = "museum_garden" msg = "They're little flying things that come out in the summer to sniff the flowers, then disappear again when the winter arrives." listed = "false" cant_get_message = "I think I'll leave them be."; shops : scenery "shops"at = "east_street" msg = "They're just the backs of some shops, quite grotty and grimy like they always are, even with the poshest shop. I suppose as long as they look clean and decent at the front, they're not bothered what the back looks like." listed = "false"; houses : scenery "houses"at = "elbow_way" msg = "They're just old houses, where more Little Pottlington-ers live. There's the occasional dog behind those doors, but they're mostly cat people around here." listed = "false" cant_get_message = "Don't be silly."; houses_1 : scenery "houses"at = "pinchmaid_hill" msg = "They're just more houses - posher than those a bit further up the hill." listed = "false" cant_get_message = "That's daft."; railings_1 : scenery "railings"at = "railings" msg = "They're strong iron railings, painted black. They're firmly fixed to the ground and set into the wall at either side, blocking the way south." listed = "false" cant_get_message = "No chance - they're very firmly fixed!"; railings_2 : scenery "railings"at = "by_the_river" msg = "They're strong iron railings, painted black. They're firmly fixed to the ground and set into a wall at either side, blocking the way south." listed = "false" cant_get_message = "No chance - they're very firmly fixed!"; weir : scenery "weir"at = "railings" msg = "It's a sudden slope where the calm waters of the upper river tumble over the edge to become foaming rapids below." listed = "false"; weir_1 : scenery "weir"at = "next_to_weir" msg = "It's a sudden slope where the calm waters of the upper river tumble over the edge to become foaming rapids below." listed = "false" ; cafe : scenery "cafe"at = "flayman_hill" msg = "It's called 'The Cosy Crumpet' and {nighttime? `it's very closed at this time of night.`:`is busy as always. An elderly couple sit in the window and drink tea slowly while watching the people struggle up the hill outside.`}" listed = "false"; chip_shop : scenery "chip shop"at = "hoddle_street" msg = "It's called 'The Jolly Haddock'. Their sign has a fish on it, wearing a bib and holding a knife and fork as though it's looking forward to eating its relatives, with chips. People are strange, aren't they?" listed = "false"; salon : scenery "salon"at = "hoddle_street" msg = "It's called 'Short Cuts' and does hair and nails." listed = "false"; bandstand : scenery "the bandstand"at = "by_the_bandstand" msg = "It's a concrete platform with a dome-shaped metal roof on it, supported on narrow pillars. {i_am_mustard? `Bands play here every weekend in the summer - me and Pru come down quite often when the sun is shining, to have a picnic and listen to them oompah-oompahing away.`:`I remember coming down here in the summer with Rita, to sit in the sunshine and listen to a brass band oompah-oompahing away. A lovely way to spend an afternoon really. I don't think Kenny ever comes down this way and if he does, he never takes me with him.`}" listed = "true" ; soap : scenery "soap"at = "east_gardens" msg = "There are all sorts of smelly and tasty and crafty home-made things on offer. The stall keepers sit around in garden chairs enjoying the sunshine and nattering away to each other while people drift by and browse their wares and, very occasionally, buy something." listed = "false" cant_get_message = "I don't need any of that stuff. Neither do the people, really, but I'm more sensible than they are so I won't bother with it." ; stalls : scenery "stalls"at = "east_gardens" msg = "They're just temporary stalls: a metal frame with a wooden counter and a bit of stripy tarpaulin over the top. They'll be taken down and packed away tomorrow." listed = "false" ; scraps : scenery "scraps"at = "east_gardens" msg = "Half-eaten sausages, ketchupy chips, pizza crusts, bread rolls...all sorts of lovely things!" listed = "false" ; vans : scenery "vans"at = "east_gardens" msg = "They're little kitchens on wheels. There's a stone-baked pizza van, a hog-roast, a few sausage and burgers vans and a place doing vegetarian wraps and smoothies. You can see the people inside each one, rushing around and sweating as they to keep up with all the orders from the masses of people queueing up on this hot sunny day." listed = "false" ; junk : scenery "junk"at = "store_room" msg = "It's all sorts of bits and bobs that look like they've chucked in here just because there is nowhere else to put them. " listed = "false" cant_get_message = "I don't think I need any of that lot." ; hedge : scenery "hedge"at = "out_back" msg = "It's just a plain and ordinary privet hedge, put there especially to separate the public park from the private gardens of the lovely houses next door." listed = "false"cant_get_message = "I can't just pull it out of the ground and walk off with it! What would the neighbours say?" ; bench_2 : scenery "benches"at = "changing_room" msg = "They're just plain wooden benches, very unremarkable." listed = "false" ; rail : scenery "rail"at = "changing_room" msg = "They're metail rails on wooden supports, for hanging clothes on." listed = "false" ; hangers : scenery "clothes hangers"at = "changing_room" msg = "They're just ordinary clothes hangers." listed = "false" cant_get_message = "They'd be difficult to get off the rail and I just don't think I need them really."; costumes: scenery "costumes"at = "changing_room" msg = "There are long, white flowing things with belts around them, some shorter tunics, leather skirts, breastplates and bits of armour amongst other things." listed = "false" cant_get_message = "I think I'd better leave them alone - they look important and like they've been left here for a reason." ; bloke : scenery "bloke"at = "beer_tent" msg = "He's a big hairy bloke in a CAMRA T-shirt. He seems to be in the charge of the bar." listed = "false" ; girl : scenery "girl"at = "beer_tent" msg = "She's got blue hair and piercings and she's behind the bar, doing her best to cope with all the customers shouting and waving money at her, and looking like she's thinking this isn't what she signed up for at all." listed = "false" ; balls: scenery "balls"at = "backstage" msg = "They're soft balls made out of leather. I reckon they must be for juggling." listed = "false" cant_get_message = "I don't think I need them really." ; rings : scenery "rings"at = "backstage" msg = "They're big metal rings, shiny and silver." listed = "false" cant_get_message = "I don't think I need them really." ;; unicycle : scenery "unicycle" at = "backstage" msg = "It's a sort of half-bicycle, for people who can't afford a whole one. There's a single wheel on the bottom and a seat at the top." listed = "false" cant_get_message = "Even if I could manage to ride it, I can't think what I'd need it for. Best to leave it alone I think."; stick : scenery "stick"at = "backstage" msg = "It's a black stick with a fluffy ball at either end. No idea what that's for." listed = "false" cant_get_message = "Even if I knew what it was for, I can't think why I'd need it"; cube : scenery "cube"at = "backstage" msg = "It's a cube with each face divided into little squares each of a different colour." listed = "false" cant_get_message = "I can't think why I'd need that, to be honest." ; arm : scenery "arm"at = "backstage" msg = "It's a plastic arm with a bit at the top for fitting it onto a mannequin's body. Who knows what happened to the rest of it?" listed = "false" cant_get_message = "I really don't think I need to carry that around, do you?" ; headdress : scenery "headdress"at = "backstage" msg = "It's a strip of fabric with big purple feathers attached to it. Very stylish!" listed = "false"cant_get_message = "I'd make a proper spectacle of myself wearing that, wouldn't I? Maybe not the best idea since I'm trying to be inconspicuous." ; crystal_ball : scenery "crystal ball"at = "backstage" msg = "It's a ball of clear glass that people look into and pretend they can see the future. I look into it but don't find out very much. Maybe it doesn't work for dogs?" listed = "false" cant_get_message = "Even if I believed in it, I don't think I want to know what happens before it happens - so I leave it where it is." ; boats : scenery "boats"at = "by_the_river" msg = "There are big metal narrowboats and little plastic cruisers with names like 'Wandering Nancy' and 'No Place Like Home' painted on their sides, moored up all along the riverside." listed = "false" ; swan : scenery "swans"at = "by_the_river" msg = "They're big white birds like feathered battleships, cruising up and down the river with their wings arched upwards and their heads held high, staring down all comers. I really wouldn't want to get on the wrong side of one of them!" listed = "false"; ring : scenery "ring"at = "by_the_river" msg = "They're heavy iron rings that people attach their boats to, to stop them floating away." listed = "false" cant_get_message = "The rings are pretty firmly fixed to the floor."; cars : scenery "cars"at = "carpark" msg = "They're gleaming machines, all lined up next to one another and so spotless it seems hard to believe they've ever been out in the open air, never mind on the road. They must get polished at the start and end of each journey." listed = "false" cant_get_message = "I don't think I'd get very far in one of those! My paws would never reach the pedals."; attendant : scenery "attendant"at = "carpark" msg = "There are a few of them, all neatly dressed in smart uniforms with gold epaulettes and shiny caps. They all look quite miserable - maybe it's not much fun parking other people's expensive cars?" listed = "false" traits = [character_t] ; restaurant : scenery "restaurant"at = "carpark" msg = "It's a single-story building, painted bright pink and with gleaming gold handles on the doors and windows. There is a set of double doors at the front and a sign above which says:\n^c^<^i^Pegasus Restaurant>\n<^i^Fine Dining>\n<^i^Reservations Only>" listed = "false" ; barrier : scenery "barrier"at = "next_to_weir" msg = "It's a thick steel cable stretched across the river before the weir. There are big white plastic floats strung on it, like beads on a string. It's to stop any unwary boats getting to close and falling over the edge." listed = "false"; floats : scenery "floats"at = "next_to_weir" msg = "They're big hollow plastic things, strung on the steel cable across the river. I think the idea is that any boats that get too close bash into those rather than falling over the edge." listed = "false"; wheels : scenery "wheels" msg = "They're big black wheels that go round and round as the bus rolls along. " listed = "false" cant_get_message = "They're definitely fixed to the bus."; doors : scenery "flowers" msg = "They're bus doors - the sort that fold aside to open." listed = "false" ; floor : scenery "floor"at = "inside_bus" msg = "It's the ridged rubber floor of the bus, pretty spotless apart from the odd ground-in bit of chewing gum." listed = "false"; microphone : scenery "microphone"at = "by_the_bandstand" msg = "It's a microphone on a stand, connected to the PA system." listed = "false" cant_get_message = "I think I'd better leave it where it is - the whole set-up looks a bit dangerous to me!"; drawers : scenery "drawers"at = "ambleside_room" msg = "They're the dressing table drawers, finished in pinkish marble-effect plastic veneer like the rest of it and with big golden handles." listed = "false"; handles : scenery "handles"at = "ambleside_room" msg = "They're big gold handles, attached to the dressing table drawers." listed = "false" cant_get_message = "They're attached to the drawers and I'd struggle to unscrew them with these paws."; mirror : scenery "mirror"at = "ambleside_room" msg = "It's a big rectangular mirror attached to the dressing table. If I go back far enough I can see my reflection in it." listed = "false" cant_get_message = "It's very firmly attached to the dressing table."; flask : scenery "flowers"at = "ambleside_room" msg = "It's an enamelled metal flask, cream coloured with a red band. It's a bit dented and the bottom is starting to rust." listed = "false" cant_get_message = "It seems a bit mean to pinch Professor Ambleside's supply of tea!"; hairbrush : scenery "hairbrush"at = "ambleside_room" msg = "It's a blue plastic hairbrush, a bit chewed where a puppy has been at it. I know from experience that hair brushes are irresistible to young dogs." listed = "false" cant_get_message = "I don't really think I need that and besides, it doesn't seem fair to steal someone's hairbrush."; sandwiches : scenery "sandwiches"at = "ambleside_room" msg = "It's a neat stack of sandwiches with the crusts cut off. They're sliced into very precise quarters." listed = "false" cant_get_message = "I don't think I need to steal poor old Professor Ambleside's lunch!"; stallholders : scenery "stallholders"at = "east_gardens" msg = "They're jolly-looking people, lounging around in garden chairs and chatting to each other. Just happy to be outside on a sunny day I think, and not too bothered if they actually sell anything or not." listed = "true" traits = [character_t] ; gate : scenery "gate" at = "village_hall" msg = "It's a gate at the top of the path leading around the side of the hall to the carpark." listed = "false"; waiter : scenery "the reception waiter"at = "restaurant_entrance" traits = [male_t] msg = "He's a tall, narrow person with high cheekbones and a face frozen into a permanently haughty expression. He's wearing a spotless black waistcoat and trousers, a crisp white shirt, a black bow tie and gleaming white gloves." ; lectern : scenery "lectern" at = "restaurant_entrance" msg = "It's a sort of wooden pillar with a tilted flat bit on top, for resting a book on. In fact, there's a big book on it right now." listed = "false" cant_get_message = "I reckon nicking the reception waiter's lectern is against house rules - I'd be thrown out for sure."; book : scenery "book" at = "restaurant_entrance" msg = "It's a huge book with thick, white, expensive-looking pages and bound in red leather. It must be the reservations book." listed = "false" cant_get_message = "I'd definitely get thrown out for pinching that!"; cutlery : scenery "cutlery"at = "in_restaurant" msg = "It's the expensive silverware that the posh Pegasus patrons use to eat their extravangant and expensive dinners." listed = "false" cant_get_message = "I'm not sure stealing the silver is a good idea - especially not when I'm trying to be inconscpicous!"; tablecloth : scenery "tablecloth"at = "in_restaurant" msg = "They're spotless white tablecloths, draped over each of the tables." listed = "false" cant_get_message = "I think about doing that trick where you whisk the tablecloth away and leave everything else in place on the table, but I reckon if I really did that everything would just end up smashed on the floor."; candle : scenery "candle"at = "in_restaurant" msg = "It's a dainty little candle, in the middle of each table." listed = "false" cant_get_message = "No thanks - I don't want a singed nose!"; patrons : scenery "patrons"at = "in_restaurant" msg = "They're the posh patrons of the Pegasus restaurant - and a very finely-dressed bunch they are too. They're mostly couples with the occasional group of business people." listed = "false" traits = [character_t]; waiters : scenery "waiters"at = "in_restaurant" msg = "They're all quite young, and very smartly dressed, and seem terrified of the Maître d'! They rush around the place, topping up glasses, delivering huge plates of tiny food and clearing away used cutlery and crockery with their miraculously clean white gloves." traits = [character_t]; maitre: scenery "the Maître d'" at = "in_restaurant"msg = "The Maître d' is a tall, thin man with grey hair combed greasily over a bald patch, a thin moustache and a horrible smile that he uses on all his guests. He's dressed just a bit more expensively than all the other waiters." traits = [male_t] ; plates : scenery "plates"at = "in_restaurant" msg = "They're huge, white plates. In the middle of each is a tiny weeny bit of food, like a little island stranded in the middle of a porcelain lake." listed = "false" cant_get_message = "I don't think I'd get away with nicking the plates!"; food : scenery "food"at = "in_restaurant" msg = "It's so small I can barely see it!" listed = "false" cant_get_message = "Hardly seems worth the bother seeing as how tiny each portion is - and besides, these posh patrons have paid a lot of money for each tiny mouthful."; tablecloth_1 : scenery "tablecloth"at = "under_table" msg = "It's the tablecloth, hanging over the edge of the table like a curtain. It's hiding me quite nicely." listed = "false" cant_get_message = "I think I'd better leave that where it is if I want to stay hidden!"; range : scenery "range"at = "inside_chipshop" msg = "It's a long, glass-fronted unit with shelves above and fryers below." listed = "false"; fish_1 : scenery "fish"at = "inside_chipshop" msg = "Delicious golden fried fish. Tantalisingly inaccessible behind a glass screen." listed = "false" ; pies : scenery "pies"at = "inside_chipshop" msg = "Mouthwatering golden-brown pies, in coloured foil cases. Tantalisingly inaccessible behind a glass screen. " listed = "false" ; sausages_1 : scenery "pies"at = "inside_chipshop" msg = "Tasty crispy battered sausages. Tantalisingly inaccessible behind a glass screen. " listed = "false" ; tiles_1 : scenery "tiles"at = "inside_chipshop" msg = "They're the chip shop tiles - scrubbed clean but the grease still lingers here and there." listed = "false" ; furniture : scenery "furniture"at = "inside_van" msg = "There are some office desks, chairs, a few smaller tables and other things. None of it very interesting for a dog, to be honest." listed = "false"; straps : scenery "straps"at = "inside_van" msg = "They're just straps holding some of the furniture down. Not worth bothering with really." listed = "false" cant_get_message = "I think I'll leave them where they are."; custard_1 : scenery "Custard (on the sofa)"; shelves_1 : scenery "shelves"at = "museum_storeroom" msg = "They're just boring metal shelves with gardening things on them." listed = "false" ; gloves : scenery "gloves"at = "museum_storeroom" msg = "It's just a lot of gardening equipment - not very interesting for a dog." listed = "false" cant_get_message = "I can't really think why I'd need any of that."; windows_2 : scenery "windows"at = "museum_reception" msg = "They're tall glass windows, showing scenes of local life." listed = "false"; stationery : scenery "stationery"at = "museum_reception" msg = "Sticky notes, a stapler, pens and pencils - all that sort of stuff. It's hard for a dog to be very interested in that sort of thing really." listed = "false" cant_get_message = "I don't think I need any of that and besides, only an idiot would mess with Janet Makepeace's stationery."; computer : scenery "computer"at = "museum_reception" msg = "It's one of those boxes with a screen on top of it, that most people spend their whole lives in front of." listed = "false" cant_get_message = "I really can't think what I'd do with that!"; tablets : scenery "tablets"at = "museum_reception" msg = "They're tablets for hay fever, called 'SnozPoll' according to the packet." listed = "false" cant_get_message = "I really don't think I need those! Pollen doesn't really bother dogs that much."; light : scenery "light"at = "maze" msg = "It's just a very boring strip light." listed = "false" ; floor_1 : scenery "floor"at = "maze" msg = "It's just a very boring old linoleum floor." listed = "false" ; photographs : scenery "photographs"at = "old_gaol_room" msg = "They're faded and yellowed photographs of old fashioned people in old fashioned streets. All the men have huge moustaches, the women enormous skirts and bonnets, and the children caps and knickerbockers. Mostly they don't seem to have noticed the camera, but those that have are glancing warily at it." listed = "false" cant_get_message = "Even if I really wanted them, they're inside the case."; whistle : scenery "whistle"at = "old_gaol_room" msg = "It's a whistle made of dull, grey metal." listed = "false" cant_get_message = "Even if I really wanted that, it's inside the case."; watch : scenery "watch"at = "old_gaol_room" msg = "It's an old pocket watch, in a shiny brass case." listed = "false" cant_get_message = " Even if I really wanted that, it's inside the case."; poles : scenery "poles"at = "old_gaol_room" msg = "It's a sort of large box with some poles attached to it. I think it's probably meant for someone to sit in and get carried around." listed = "false" ; tools : scenery "tools"at = "old_gaol_room" msg = "It's lots of hinged and bladed iron. I've got no idea what most of it would have been used for." listed = "false" cant_get_message = "I think they're best left alone, to be honest."; bicycle : scenery "flowers"at = "old_gaol_room" msg = "It's a battered old bicycle with a very worn leather seat, made by 'Fury - Northants' according to the little badge on the frame." listed = "false" cant_get_message = "I don't think I need that!"; doll : scenery "doll"at = "old_gaol_room" msg = "It's enough to give anyone nightmares!" listed = "false" cant_get_message = "No, definitely not."; pram : scenery "pram"at = "old_gaol_room" msg = "It's a horrible, dusty little pram where that horrible one-eyed doll lives." listed = "false" ; model : scenery "model"at = "museum_garden" msg = "It's a lovely model of what Little Pottlington might have looked like, hundreds of years ago. There's a little plaque on it that says 'N. Aspergill, 1978'." listed = "false" cant_get_message = "I think that's definitely best left where it is."; island : scenery "island"at = "old_gaol_room" msg = "It's a lovely little island that someone must have spent a long time making carefully out of mushed-up paper - before we flattened it." listed = "false"; birds : scenery "birds"at = "old_gaol_room" msg = "They're the stuffed birds that live on the papier-mâché island. Or did live on it before we knocked most of them off into the painted-on marsh on the floor." listed = "false" cant_get_message = "I think they've probably had enough of us for one day."; pictures : scenery "pictures"at = "exhibition_room" msg = "There are a couple of gloomy old oil paintings and a faded colour photo of a woman in a very fancy hat shaking hands with the Mayor of Little Pottlington." listed = "false" cant_get_message = "I think I'd better leave them where they are."; treasure : scenery "treasure"at = "exhibition_room" msg = "They're the treasures of the Pottlington Hoard - lovely gold and silver things, resting on velvet inside the glass cases." listed = "false" cant_get_message = "It's all locked away behind glass - safe and sound!"; plates_1 : scenery "plates" msg = "They look dodgy to me!" listed = "false" cant_get_message = "They're fixed to the car and even if they weren't, I'm not sure Merve would be very pleased if I ran off with his number plates!"; grass : scenery "grass"at = "east_of_lamp_post" msg = "It's that scruffy, patchy sort of grass that you often get in these sorts of place." listed = "false" cant_get_message = "I don't think it would do any good ripping that up and taking it with me!"; windows_3 : scenery "windows"at = "outside_pub" msg = "They're frosted windows, all cracked and grimy." listed = "false"; posters : scenery "posters"at = "outside_pub" msg = "They're advertising some sort of football tournament. {!i_am_mustard? `Kenny sometimes takes an interest but I've never understood it myself - `:`Pru's not really into that sort of thing, and Gerry's into golf, so I don't know a lot about footy - `}but as far as I can tell, it's some sort of lager-drinking event where people compete to get as drunk as possible without taking their eyes off a huge TV screen." listed = "false" cant_get_message = "I think I'd better leave them where they are really."; paintwork : scenery "paintwork"at = "outside_pub" msg = "Crispy, is how I'd describe it." listed = "false"; lane : scenery "lane"at = "cripplepepper_lane" listed="false" ; pillars : scenery "pillars"at = "by_the_bandstand" msg = "They're the pillars supporting the bandstand." listed = "false" cant_get_message = "I think if I tried that, the bandstand would fall down!"; knobs : scenery "knobs"at = "by_the_bandstand" msg = "They're the controls on the control desk - who knows what they're all for?" listed = "false"; books : scenery "books"at = "ambleside_room" msg = "There's a little book in a faded cloth cover with <^i^Slices of the Past - K.G. Ambleside> written on the spine; a creased paperback emblazoned with a photograph of a grinning man in a flat-cap standing next to a huge vegetable, called <^i^Fatten Thy Marrow: The Stevenson Technique>; and a new-looking book called <^i^Grime in our Time - a guide to the latest dirty urban beats> that's got one of the page corners turned over like it's being read at the moment." listed = "false" cant_get_message = "I don't think I need to mess about with those really."; couple : scenery "couple"at = "flayman_hill" msg = "They're sitting at opposite sides of a little table and managing to raise their tea cups to their lips, drink, and lower them at exactly the same time while not looking at each other but out of the window. If there was a synchronised tea-drinking contest then they'd be winning it. " listed = "false" ; grass_1 : scenery "grass"at = "south_gardens" msg = "It's lovely soft springy grass - perfect for picnics." listed = "false"; trees : scenery "trees"at = "south_gardens" msg = "They're pretty blossom trees, carefully places to provide little pools of shade in the summer." listed = "false"; roses : scenery "roses"at = "magic_show" msg = "They're rose bushes, kept neat and tidy and greenfly-free by the 'Friends Of' society" listed = "false" cant_get_message = "Even if I wanted them, they're far too prickly to pick up."; wall : scenery "wall" at = "old_gaol_room" msg = "It's just an ordinary, boring brick wall, separating the gardens from the houses behind" listed = "false" ; cable : scenery "cable" at = "next_to_weir" msg = "It's a thick steel cable strung across the river, with big white plastic floats along its length." listed = "false" cant_get_message = "I couldn't get that if I tried."; counter_1 : scenery "counter"at = "east_gardens" msg = "It's just a wooden counter." listed = "false" ; frame : scenery "frame"at = "east_gardens" msg = "It's a frame of metal poles with a tarpaulin stretched over it." listed = "false" ; tarpaulin : scenery "tarpaulin"at = "east_gardens" msg = "It's a bit of red and white stripy fabric, stretched over the frame to make a little cloth cubicle." listed = "false" ; czerwinski_1 : scenery "Mr Czerwinski (at the control desk)" msg = "It's Mr Czerwinski, standing at the control desk and occasionally twiddling one of the knobs - which seems to make absolutely no difference whatsoever!" cant_get_message = "I don't think this is a good time to try and drag Mr Czerwinski away!"; hall : scenery "hall"at = "village_hall" msg = "It's Little Pottlington's premier venue for...well, for just about everything really!" listed = "false" ; door_1 : scenery "a door"at = "outside_storeroom" msg = "It's an emergency exit - one of those ones that has a push bar to open it. " listed = "false" ; walls_1 : scenery "walls "at = "maze" msg = "I've seen more interesting walls, to be honest." listed = "false" ; hillock : scenery "hillock"at = "old_gaol_room" msg = "It's a big lump of papier-mâché, roughly sculpted into a little hill and then painted green and grey. The top of it has been all bashed in as though something heavy and hairy has been dropped on it from a great height - but I wouldn't know anything about that." listed = "false" ; padlocks : scenery "padlocks"at = "old_gaol_room" msg = "They're all shapes and sizes, from manageably small to ridicuously huge." listed = "false" cant_get_message = "They're all fixed to the display."; keys : scenery "keys"at = "old_gaol_room" msg = "They're of all different shapes and sizes. It would pass a rainy day to try and find which ones fitted each of the padlocks." listed = "false" cant_get_message = "They're just part of the display."; sink : scenery "sink"at = "finds_room" msg = "It's just an ordinary sink, empty and scrubbed clean." listed = "false"; kettle : scenery "kettle"at = "finds_room" msg = "It's one of those hissing steaming things that people like to have in their kitchens." listed = "false" cant_get_message = "Probably best left where it is, I think."; cups : scenery "cups"at = "finds_room" msg = "They're just empty cups." listed = "false" cant_get_message = "I can't think why I'd need them really."; chairs : scenery "chairs"at = "finds_room" msg = "They're those really low, really spongy ones that are made specially for dogs to circle on and scratch holes in before settling down to sleep." listed = "false" ; table : scenery "table"at = "finds_room" msg = "It's a little round coffee table." listed = "false" ; tin : scenery "tin"at = "finds_room" msg = "It's a tartan-patterned tin with a picture on it of a great big hairy bloke in a kilt, holding a huge log upright on the palms of his hands as if about to throw it and the words 'McCollogh's Authentic Scottish Highland Shortbread' written on it. Below, in tiny blue letters, it says '(made in Croydon)'. "listed = "false" cant_get_message = "I'd like to get at what's inside it, but since I can't I think I'll leave it."; desk_1 : scenery "desk"at = "finds_room" msg = "It's an old office desk - metal legs and a wooden top, nothing fancy." listed = "false"; window_2 : scenery "window"at = "old_gaol_room" msg = "It's a blocked-up window in the wall." listed = "false" ; graffiti: scenery "graffiti"at = "old_gaol_room" msg = "There are a lot of different initials and dates carved all over the walls, and a picture of a stick figure hanging on the gallows with a few lines beneath that read <^i^Hear these last words of Victor Splane, innocent man that lost his gayme, wronged by man but God will know, whose soul shall suffer down below.>" listed = "false" ; road : scenery "road"at = "busy_road" msg = "It's the busy, busy road - thick with traffic, day and night." listed = "false"; door_2 : scenery "door "at = "outside_chipshop" msg = "It's just the door to the chip shop." listed = "false" ; beer : scenery "beer"at = "beer_tent" msg = "Everyone in here is drinking the stuff!" listed = "false" cant_get_message = "Dogs know better than that."; porch : scenery "porch"at = "museum_yard" msg = "It's a little porch, grafted on to the front of the old building as a place for people to take off their muddy wellies and leave their wet umbrellas before going inside on rainy days. Back when it was proper gaol, hundreds of years ago, conditions must have been so awful that prisoners had to go right inside with their wet umbrellas and with their muddy wellies still on." listed = "false" ; poo : scenery "poo"at = "slipway_north" msg = "It's horrible, slimy greeny-yellow poo!" listed = "false" cant_get_message = "No thank you very much."; poo_1 : scenery "poo"at = "riverside" msg = "It's horrible, slimy greeny-yellow poo!" listed = "false" cant_get_message = "No thank you very much."; fruit_stall : scenery "a fruit and veg stall"at = "market_square" msg = "It's a lone fruit and veg stall standing defiantly in the more or less empty market square. Thursday's the main market day and most of the stallholders find better thing to do with themselves on the weekend - but old Angie Slipsocket's always here, selling onions and apples to the passing trade." ; angie_slipsocket : character "Angie Slipsocket"at = "market_square" traits = [female_t] msg = "That's Angie Slipsocket - a big, grey-haired lady in an old-fashioned dress with lacy bits around the collar and cuffs, and a huge yellow sombrero on her head. She stands behind the counter and grins indiscriminately at anyone in range." ; fancy_displays : scenery "fancy fruit and veg displays" msg = "They're elaborate constructions of fruit and vegetables that Angie must have built specially for fête day. There's an amazingly accurate scale model of the Taj Mahal, built from carrots, a bust of Nelson Mandela made out of radishes (it looks just like him!) and a scene from <^i^Watership Down> with rabbits made out of fluffy little cauliflowers, positioned carefully on a fake turf down. Heaven knows how long it took her to make that lot!" cant_get_message = "I don't think Angie would like that!"; day_tripper : scenery "a day tripper" traits = [female_t] msg = "It's just a day tripper - the sort that turn up on the bus on a sunny day like this. There are more around than usual today because of the fête." ; fruit : scenery "fruit"at = "market_square" msg = "There are all sort of fruits and vegetables for sale." listed = "false" cant_get_message = "I don't really fancy any of that lot to be honest."; traffic : scenery "traffic"at = "busy_road" msg = "It's just traffic. Endless traffic!" listed = "false" cant_get_message = "I'm pretty sure that would be the end of me!"; bars : scenery "bars"at = "old_gaol_room" msg = "They're ancient iron bars set into the stone surround of the blocked-up window. I can imagine some poor old prisoner pressing his face against them and looking out longingly at freedom, in days gone by. Then again, if what Professor Ambleside said about the old gaol is true, he could probably have stopped looking through the bars and just walked out of the door." listed = "false" cant_get_message = "They're old but still sturdy - there's nothing I can do with them!"; boat : scenery "boat"at = "old_gaol_room" msg = "It's a little wooden boat in which the sad-eyed waxwork fisherman is crouching awkwardly. It's far too small for him really - maybe that's why he looks so glum?" listed = "false" cant_get_message = "It looks as through the fisherman is having a bad enough time already without me nicking his boat."; paddle : scenery "paddle"at = "old_gaol_room" msg = "It's a wooden paddle that the waxwork fisherman is holding, pointlessly, above the blue slodge painted on the floor that is supposed to look like water." listed = "false" cant_get_message = "I try to get it, but the sad-eyed waxwork fisherman is clinging onto it really tightly."; paperboy : scenery "the paperboy" traits = [male_t]; tubs : scenery "tubs"at = "in_back_of_chipshop" msg = "They're a lot of scratched and battered plastic food containers." listed = "false" cant_get_message = "I really don't think I need any of that lot."; utensils : scenery "utensils"at = "in_back_of_chipshop" msg = "They're those fussy metal and plastic things that people use to mess about with food, instead of just gobbling it down like dogs do." listed = "false" cant_get_message = "I've got no use for them really, so I decide to leave them where they are."; counter_2 : scenery "counter"at = "in_back_of_chipshop" msg = "It's a stainless steel counter." listed = "false" ; fridges : scenery "counter"at = "in_back_of_chipshop" msg = "They're just plain white fridges, humming smugly to themselves in the way that fridges do." listed = "false" ; mop : scenery "mop"at = "broom_cupboard" msg = "It's a manky old mop - all stiff and smelly from use." listed = "false" cant_get_message = "I don't think I need to mess around with that smelly old thing."; bucket : scenery "bucket"at = "broom_cupboard" msg = "It's an battered old tin bucket." listed = "false" cant_get_message = "I think I'll just leave it where it is actually."; broom : scenery "broom"at = "broom_cupboard" msg = "It's bristly, like you'd expect it be." listed = "false" cant_get_message = "I don't think I need it, to be honest."; machine : scenery "machine"at = "broom_cupboard" msg = "It's great big bulky metal thing, like a cross between a vacuum cleaner and a tank." listed = "false" cant_get_message = "I think that's best left alone!"; window_3 : scenery "window"at = "museum_vestibule" msg = "They're just windows that run all the way from the ceiling down to the little wooden ledge near the floor." listed = "false" ; key : scenery "key" msg = "It's a big key that Ambrose Hockbarrow is holding on one hand." listed = "false" cant_get_message = "But it's just part of the statue."; chain : scenery "chain" msg = "It's a thick chain that Ambrose Hockbarrow is holding proudly." listed = "false" cant_get_message = "But it's just part of the statue."; fedora : scenery "fedora"msg = "It's Harry's hat, all soaked through with river water" listed = "false" cant_get_message = "I think poor Harry's got enough problems without me pinching his hat as well!"; fountain_pen : scenery "pen"at = "restaurant_entrance" msg = "It's a gleaming golden fountain pen with a shiny silver tip." listed = "false" cant_get_message = "I really don't think the haughty reception waiter would like me stealing his posh fountain pen!"; frame_1 : scenery "frame"at = "restaurant_entrance" msg = "It's very big, very golden, and all carved into elaborate crinkles and swirls. A bit over the top if you ask me..." listed = "false" cant_get_message = "I think I'd have a hard time getting that off the wall, even if the waiter didn't try to stop me!"; compost : scenery "compost" at = "inside_sack" msg = "It's smelly muck that makes the plants grow." listed = "false" cant_get_message = "I really don't think I need any of that. I'm not a daffodil, you know!"; splodge : scenery "splodge"at = "old_gaol_room" msg = "It's a splodge of blue, painted on the floor, that the waxwork fisherman's boat is stranded right in the middle of. No wonder he looks so sad. " listed = "false" cant_get_message = "I can't get that - it's just painted on the floor!"; // birds : scenery "birds"at = "old_gaol_room" msg = "" listed = "false" cant_get_message = ""; // birds : scenery "birds"at = "old_gaol_room" msg = "" listed = "false" cant_get_message = ""; // birds : scenery "birds"at = "old_gaol_room" msg = "" listed = "false" cant_get_message = ""; // birds : scenery "birds"at = "old_gaol_room" msg = "" listed = "false" cant_get_message = ""; // birds : scenery "birds"at = "old_gaol_room" msg = "" listed = "false" cant_get_message = ""; // birds : scenery "birds"at = "old_gaol_room" msg = "" listed = "false" cant_get_message = ""; // birds : scenery "birds"at = "old_gaol_room" msg = "" listed = "false" cant_get_message = ""; // birds : scenery "birds"at = "old_gaol_room" msg = "" listed = "false" cant_get_message = ""; // birds : scenery "birds"at = "old_gaol_room" msg = "" listed = "false" cant_get_message = ""; // birds : scenery "birds"at = "old_gaol_room" msg = "" listed = "false" cant_get_message = ""; // birds : scenery "birds"at = "old_gaol_room" msg = "" listed = "false" cant_get_message = ""; // birds : scenery "birds"at = "old_gaol_room" msg = "" listed = "false" cant_get_message = ""; } ###################################### # On Tick # ###################################### on_tick { : if (introd<2) { : print "(Type HELP for a list of useful commands and to get started if you haven't played a game like this before.)"; : increment "introd" ; } : if (harry_counter>0) { : decrement "harry_counter" ; } : if (angie_counter>0) { : decrement "angie_counter" ; } : if (harry_counter==0) { : if (is_at "inside_chipshop") { : print "Muttering under his breath, Harry leaves the counter and returns to the back of the shop."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; } : else_if (is_at "in_back_of_chipshop") { : print "Tommy reappears from the front of the shop and stops short as he sees me.\n\"Hey!\" he yells, waving a clenched fist, \"What are you doing in here! Get out of it, you filthy mutt!\" He grabs the nearest thing to hand, which happens to be a pickled egg, and hurls it in my direction. I don't need telling twice - I run out of the back of the shop, hearing the egg explode wetly against the door frame behind me. "; : create "mustard" target = "outside_chipshop" ; : goto "back_of_chipshop"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; } : create "tommy_spratt" target = "in_back_of_chipshop" ; : set_integer var = "harry_counter" value = "-1" ; : redescribe; } : if (is_at "inside_chipshop") { : if (is_present "linda_spratt") { : print "As I walk in, Linds spots me straight away. She's definitely not the sort to let dogs just wander in to her Dad's chip shop. \"Out!\" she yells at me. \"Out right now!\" and points at the door. She's fierce! I whine and slink back out of the door with my ears flat and my tail between my legs."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : goto "outside_chipshop"; : if (!crawfield_done) { : set_true "follow" ; } : redescribe; } } : if (is_present "angie_slipsocket") { : if (chance (50)) { : execute_one_at_random { : print "\"Appils a pahnd a pahnd!\" hollers Angie, at nobody in particular."; : print "\"Orangis four for one tweny!\" yells Angie, apparently at some pigeons who look blankly at her and then carry on picking cigarette ends out of the gutter."; : print "\"Radishis frish todays!\" shouts Angie at unsuspecting passers-by."; : print "\"We've gots yor ava cados ind yor melins. All tropical froots todays!\" bellow Angie at an elderly gentleman who almost wobbles off his walking frame in surprise."; : print "\"Nanis! Nanis! Not three, not two, not wun pahnd a pahnd,\" says Angie, triumphantly, \"seveny pince a pahnd!\" A couple of teenagers snigger and whisper to each other as they pass by."; : print "\"All ripes froots and vegis - get em 'fore they're gone lovelies!\" shouts Angie, startling a small boy into dropping his ice cream."; : print "\"Fête specil carrits and caulis!\" hollers Angie across the square, \"Git em frish todays!\""; } } : if (angie_counter==-1) { : if (chance(30)) { : append "Drawn in by Angie's magnetic grin, a day-tripper is drawn over to the stall and starts idly looking over the produce while Angie turns up the sales pitch. You can see the sweat breaking out on their forehead as they try to work out how they're going to get away with anything less than a "; : execute_one_at_random { : append "tonne"; : append "bucketful"; : append "handbagful"; : append "bathtubful"; : append "basketful"; } : append " of "; : execute_one_at_random { : append "potatoes"; : append "carrots"; : append "onions"; : append "swedes"; : append "turnips"; : append "Brussels Sprouts"; : append "marrows"; : append "cabbages"; : append "bananas"; : append "oranges"; : append "apples"; : append "melons"; : append "plums"; : append "grapes"; : append "pears"; } : append " and a "; : while (froot<10) { : store_random "froot" ; } : append (froot+" kilo "); : execute_one_at_random { : append "bagful"; : append "wheelbarrowful"; : append "shopping trolley"; : append "lorryload"; : append "suitcaseful"; } : append " of "; : execute_one_at_random { : append "avocados."; : append "squashes."; : append "celementines."; : append "radishes."; : append "artichokes."; : append "kumquats."; : append "aubergines."; : append "courgettes."; : append "leeks."; } : set_integer var = "froot" value = "0" ; : set_integer var = "angie_counter" value = "3" ; : create "day_tripper"; } } : else_if (angie_counter==0) { : print "The day tripper leaves, carrying a huge and heavy bag of fruit and vegetables that they'll have to lug around town all day in the blazing sunshine."; : destroy "day_tripper"; : set_integer var = "angie_counter" value = "-1" ; } } : if (pleased_to_see_me) { : if (i_am_mustard) { : if (is_present "custard") { : print "As soon he sees me, Custard yelps excitedly and leaps up and down, barking and wagging his tail."; : set_false "pleased_to_see_me" ; : set_true "follow" ; } } : else { : if (is_present "mustard") { : if (is_at "north_river"||is_at "middle_river"||is_at "south_river"||is_at "east_river"||is_at "next_to_weir") { : print "Mustard yelps and barks, but he's stuck on the lid!"; : set_false "pleased_to_see_me" ; } : else { : print "As soon as he sees me, Mustard yelps excitedly and leaps up and down, barking and wagging his tail."; : set_false "pleased_to_see_me" ; : set_true "follow" ; } } } } : if (restaurant_guests_arrive>0) { : decrement "restaurant_guests_arrive" ; } // : else_if (gap>0) { // : decrement "gap" ; // } // : if (linger>0) { // : decrement "linger" ; // } : if (ambleside_counter>0&&ambleside_counter<14) { : increment "ambleside_counter" ; } : if (is_present "pru") { : cycle predictable_order = "false" key = "pru_chat" max_loops = "1" { : print "Pru says into her phone, \"Wednesday is too late - the invitations will have gone out by then!\""; : print "Pru says into her phone, \"I'm not sure that's what we agreed darling...\""; : print "Pru says into her phone, \"You're surely not suggesting we make my mother wait outside? With her knees?\""; : print "Pru says into her phone, \"I'm sorry, darling, but you know I'm just not interested in golf.\""; : print "Pru says into her phone, \"An enormous sack of it! Heaven knows what I'm supposed to do with the rest.\""; : print "Pru says into her phone, \"Mustard won't like it if you move those around... Of course it matters!\""; : print "Pru says into her phone, \"Oh yes, but no aubergine. She's allergic. She accidentally dipped a bread stick in the baba ganoush at Alfie's wake and had to go to A&E to have her lips deflated.\""; : print "Pru says into her phone, \"Pyjamas? Well...if you insist.\""; : print "Pru says into her phone, \"Brown, pink and yellow! I know. Completely off the colour wheel. Like living in a migraine. But, you know - they're the client!\""; : print "Pru says into her phone, \"I love you too darling.\""; : print "Pru says into her phone, \"Incredibly elastic! I couldn't believe my eyes.\""; : print "Pru says into her phone, \"With the amount of houmous he eats, it's no wonder they've always got the windows open. Poor Angie.\""; : print "Pru says into her phone, \"Eggs, mostly. No - definitely. Eggs.\""; : print "Pru says into her phone, \"My dress, of course! Just three or four hours to check measurements and everything. You can have a look at the golf clubs in that shop next door if you like.\""; : print "Pru says into her phone, \"Breaded mushrooms.\""; : print "Pru says into her phone, \"Oh my goodness, no! We can't put Harriet on a table with your Uncle Foster. She'd drown herself in her soup after half an hour.\""; on_exhausted { : print "Pru natters away into her phone."; } } } : if (is_at "busy_road") { : cycle predictable_order = "false" key = "traffic" { : print "Cars rush by at frightening speed."; : print "A lorry whizzes past so fast it almost takes my nose off! "; : print "Traffic zooms past."; : print "Cars race along in either direction."; : print "A blur of cars and lorries passes by without a break."; : print "A van chases a mini along the road at ridiculous speed."; : print "Buses zoom past more quickly that you'd ever expect buses to move."; : print "The road is thick with rushing traffic."; } } : if (is_at "outside_pub") { : if (!nighttime) { : if (is_just_entered ()) { : set_integer var = "stagger_counter" value = "3" ; } : if (stagger_counter>0) { : decrement "stagger_counter" ; } : else_if (chance (60)) { : set_true "folk_here" ; : cycle predictable_order = "false" key = "revellers" { : print "Drunken revellers stagger out of the pub and along the road."; : print "A gaggle of tipsy ladies stumble out of the pub, all laughing and nattering to each other. They're all dressed up - looks like a hen party has started early today."; : print "An old man with grey stubble and a flat cap runs out of the pub muttering something about having left the gas on."; : print "A bunch of lads stumble out of the pub doorway, shouting and punching each other in a friendly sort of way."; : print "A load of people dressed up as ancient Romans stagger out of the pub."; : print "A girl comes out of the pub looking at her phone and wanders down the street, without taking her eyes off her phone for the whole time."; : print "The door of the pub opens and a couple of drunk blokes fly out, to the accompaniment of a lot of shouting."; : print "An elderly couple emerge from the pub and make their way down the road."; : print "A man with a walking stick and a grimy bandage around his head lurches through the door of the pub and weaves an unsteady course along the road."; : print "A man in a smart suit wanders out of the pub, laughing and laughing at nobody and nothing in particular."; } } } : if (is_present "custard"&&custard_tied&&folk_here) { : print "I see Custard's taut lead stretching right across their path! I bark to warn them, but it's too late - they stagger right into it."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "The threadbare bit of string stretches and then snaps with a little 'ping' as they stumble through it. I hear them swear under their breath as they gather themselves and then disappear off down the road. "; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Custard barks happily and begins to jump up and down like a big hairy grasshopper. He's free!"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "[[You can now become Custard by typing BECOME CUSTARD. To switch back to being Mustard, type BECOME MUSTARD.]]"; : set_false "custard_tied" ; : destroy "tadcaster"; : destroy "pru"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : set_false "folk_here" ; } : if (is_at "by_the_bandstand") { : if (is_present "mr_czerwinski") { : if (chance (80)) { : cycle predictable_order = "false" key = "electrician" skip_interval = "1" { : print "Mr Czerwinski scratches his head and mutters something about capacitors."; : print "Mr Czerwinski sighs. \n\"If only I had my bag of tricks!\" he says."; : print "Mr Czerwinski pokes his fingers at a mass of wires in the back of one of the speaker boxes and curses."; : print "Mr Czerwinski looks at the dead PA system helplessly. \"Without my tools,\" he says, \"what can I do?\""; : print "Mr Czerwinski shakes his head at the PA system and looks glum."; : print "\"I can't believe it!\" says Mr Czerwinski quietly to himself, \"To lose my bag of tricks! It is like losing one of my children!\""; : print "Mr Czerwinski sighs to himself, \"Without my tools, I am useless!\""; : print "Mr Czerwinski looks unhappily at the silent speakers. \"I will never get this working,\" he says, \"without my bag of tricks!\""; } } } } : if (pa_fixed) { : if (ambleside_counter==0) { : print "Alerted by the sound, Professor Ambleside emerges from the big white tent, blinking in the sunlight and smiling amiably at nobody in particular. He makes his way over to the bandstand, approaches the microphone, and taps it with a finger. A sound like gunfire echoes around the park; heads whip round, pints of beer jolt out of people's hands, ducks and geese take flight in a big squabbling mass from the distant river, and a baby starts to cry."; : create "professor_ambleside"; : swap o1 = "mr_czerwinski" o2 = "czerwinski_1" ; : increment "ambleside_counter" ; } : if (ambleside_counter==2) { : print "\"Ahem\" says Ambleside, tentatively into the microphone, his voice booming from the speakers. \"Um...\" he continues, as a pane of glass shatters in a nearby house and car alarms begin to blare noisily, \"welcome to...welcome...I say, do you think we might turn the volume down just a little?\" Mr Czerwinski, at the control desk, shouts something inaudible and twiddles a few knobs, but not much seems to happen."; } : if (ambleside_counter==3) { : print "\"Welcome,\" Ambleside booms on, \"to Little Pottlington fête! How marvellous it is to see so many of you enjoying yourselves on this lovely sunny day, here in Hockbarrow Gardens, this quiet and peaceful corner...\" (a pigeon falls out of the sky and cracks appear in the concrete base of the bandstand), \"...in this little oasis of tranquility amidst the hustle and bustle of our busy little town. As many of you will know, but for good fortune this park would not be here at all - if the Pottlington Hoard had not been discovered here, on this very spot, then the housing development that was planned to be built here would indeed have been built, and I would now be standing in the middle of a roundabout addressing the motorists racing past in their cars! Which would be quite an extraordinary thing to do. Erm, yes. So...where was I?\" \nI think he's lost his thread a bit." ; } : if (ambleside_counter==4) { : print "\"Ah yes - well, the fact is that the treasure was discovered here, during excavations which I had the honour to direct, fifty years ago this year. I could scarcely have imagined, as a young archaeologist, that I would have the tremendous good fortune to uncover such a remarkably rich hoard of Romano-British gold and silverwork - prince amongst which is, unquestionably, the famous jewelled dog collar. A remarkable piece, forged from solid gold and studded with precious jewels, quite unique in Europe and proof that even then, nearly two thousand years ago, the domestic dog was held in such affection by the people of these isles and, no doubt, had already claimed its place in front of the British hearth.\" The Professor pauses and coughs into the microphone, causing slates to come loose from a nearby roof and crash to the ground."; } : if (ambleside_counter==5) { : if (is_at "by_the_bandstand") { : print "Most of the people in the park have retreated a safe distance from the speakers and small children in fluffy ear defenders watch in bemusement as the Professor drones on. \n\"It was only through the sale of those remarkable items to the British Museum that the land on which we now stand was bought from the developers and turned into this delightful green space, for the enjoyment of all,\" (there is a bit of uncoordinated cheering from around the park), \"and also the old town gaol turned into our wonderful local museum...\" "; } : else { : print "The Professor drones on. \n\"It was only through the sale of those remarkable items to the British Museum that the land on which we now stand was bought from the developers and turned into this delightful green space, for the enjoyment of all,\" (there is a bit of uncoordinated cheering), \"and also the old town gaol turned into our wonderful local museum...\" "; } } : if (ambleside_counter==6) { : print "\"...it having lain empty for many years, the town authorities having realised long ago that it was quite inadequate for its purpose, with its low, easily-openable and inadequately barred windows, it's flimsy doors and primitive locks - really almost laughably insecure. It was said that prisoners used to wait until after dinner time, so as to have a good square meal, and then let themselves out (it could hardly be called breaking out) and go home for the evening, to return the next day for breakfast! And it is with the greatest pleasure and gratitude to the British Museum that we - that is to say, myself and the other trustees - are able to present, here on display in that very building, for the first time since their discovery, many of the original Pottlington artefacts. Those exquisite...\" "; } : if (ambleside_counter==7) { : print "\"...extraordinary...\""; } : if (ambleside_counter==8) { : print "\"...unique...\""; } : if (ambleside_counter==9) { : print "\"...hugely valuable...\""; } : if (ambleside_counter==10) { : print "\"...one might even say, priceless...\""; } : if (ambleside_counter==11) { : if (is_at "by_the_bandstand") { : print "\"...objects that have meant so much to our little town. I do hope that many of you will take the opportunity to visit and view them while they are on display in the museum, under the watchful eye of our dedicated army of volunteers, including...\" the Professor fumbles in his pocket and produces a crumpled piece of paper, unfolding it near the microphone with a noise like an earthquake, \"...erm, consisting of...Mrs Janet Makepeace.\" He crumples the paper up again and shoves it back into his pocket."; } : else { : print "\"...objects that have meant so much to out little town. I do hope that many of you will take the opportunity to visit and view while they are on display in the museum, under the watchful eye of our dedicated army of volunteer museum stewards, including...\" There is a noise like an earthquake that might be someone unfolding a bit of paper near the microphone\"...erm, consisting of...Mrs Janet Makepeace.\" There's another earthquake sound - he must have crumpled the paper up again."; } } : if (ambleside_counter==12) { : print "\"As for today, there will be the usual music, entertainment and beer,\" (another ragged cheer), \"the eel wrestling, best-baked cake contest, chutney demonstrations, ferret racing, heaviest marrow weigh-off, cheese-rolling, match stick fiddling, onion bobbing, and tomtit tournament. And, of course, the parade! Which, this special year, will have a Romano-British theme. I'm sure you will all follow us and cheer to support the paraders as they process about the town in their costumes.\""; } : if (ambleside_counter==13) { : if (is_at "by_the_bandstand") { : print "\"And now, all that remains is for me to cut the, um...\" the Professor pats his pockets for a few moments before someone bravely approaches the bandstand to hand him a pair of scissors, \"to cut the ribbon, and to declare this fête, open!\" He slices through the ribbon and a noise like sheet metal being ripped in two ricochets around the park. There's another cheer from the crowd, and a surge of people towards a tent at the bottom of the gardens.\n There's an awful sound of screeching feedback, a small explosion, and then the speakers abruptly cut out. Deaflening silence rings across the gardens. I wonder how long it will take for my ears to stop buzzing!"; : print "Mr Czerwinski wipes his brow, shakes his head, and then wanders off in the direction of the beer tent."; } : else { : print "\"And now, all that remains is for me to cut the, um...to cut the ribbon, and to declare this fête, open!\" There's a noise like sheet metal being ripped in two and a big cheer, followed by an awful screeching - and then the speakers abruptly cut out. Deadening silence rings out. I wonder how long it will take my ears to stop buzzing!"; } : destroy "professor_ambleside"; : destroy "czerwinski_1"; : swap o1 = "ribbon" o2 = "ribbon_1" ; : set_true "ambleside_finish_speech" ; : create "crowd"target = "magic_show" ; : create "lid"target = "east_gardens" ; : if (is_at "east_gardens") { : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "One of the stallholders opens a crate of smelly soaps and bath bombs, and leaves the wooden lid on the ground."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : if (is_at "south_gardens") { : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "The flap of the beer tent to the east is flung open by a hairy arm, and a voice from inside booms \"Bar's open!\"\nThere's a loud cheer and a rush of people towards the tent; pretty soon it's full to bursting."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } } : if (is_at "in_restaurant") { : if (restaurant_guests_arrive==4) { : print "\"Welcome, dear patrons, \" says the Maître d', in a thick French accent, \"Welcome to the Pegasus restaurant. Allow me to take your coats.\""; } : if (restaurant_guests_arrive==3) { : print "The Maître d' takes their coats and gives them to another waiter to take away. He continues to chatter to the new arrivals, who ignore him politely."; } } : if (restaurant_guests_arrive==2) { : if (is_at "in_restaurant") { : append {("The Maître d' ushers the "+posh_name+"s over to their table.")}; } : else_if (is_at "under_table") { : append {("I hear the "+posh_name+"s go over to their table.")}; } } : if (restaurant_guests_arrive==1) { : destroy "guests"; } : if (is_at "carpark") { : if (i_am_mustard&&is_present "custard"||!i_am_mustard&&is_present "mustard") { : if (!poshest_speech) { : if (i_am_mustard) { : print "\"Hey, Custard!\" I say, \"Take a look at this place! The poshest, most expensive, most exclusive restaurant in...well, in Little Pottlington! Even Gerry can only afford to bring Pru here twice a year and it costs him his whole bonus each time.\""; : print "\"It's definitely not Kenny's sort of place,\" says Custard, \"Spratt's Fish and Chips is more his idea of fine dining.\""; : print "\"Don't knock it - I'd rather have that than a couple of lettuce leaves and a grain of rice. That's why it costs so much: they give you a normal-sized dinner, only in tiny bits on separate plates and charge you £30 a pop! Hey - what do you say we sneak inside and help ourselves to some posh nosh?\""; : print "\"Mustard!\" Custard is shocked. \"We'd never get away with it! There's no chance of me getting in there.\"" ; : print "I look at my friend with his huge shaggy fleece and think maybe he's right..."; } : else { : print "\"Look at this place!,\" I say to Mustard, \"It look like the poshest...\""; : print "\"... most expensive, most exclusive restaurant in...well, in Little Pottlington!\" finishes Mustard. \"Even Gerry Rockerfella can only afford to bring Pru here twice a year and it costs him his whole bonus each time."; : print "\"It's definitely not Kenny's sort of place,\" says Custard, \"Spratt's Fish and Chips is more his idea of fine dining.\""; : print "\"Don't knock it - I'd rather have that than a couple of lettuce leaves and a grain of rice. That's why it costs so much: they give you a normal-sized dinner, only in tiny bits on separate plates, and charge you £30 a pop! Hey - what do you say we sneak inside and help ourselves to some fine dining?\""; : print "\"Mustard!\" I say, shocked. \"We'd never get away with that! There's no chance of me getting in there.\"" ; : print "Mustard looks at me with my with my huge shaggy fleece and I can tell he's thinking I'm right."; } : set_true "poshest_speech" ; } } : if (!nighttime) { : if (chance (50)) { : execute_one_at_random { : print "An enormous limousine arrives, and two expensive-looking people get out and go into the restarant."; : print "A shiny black Rolls-Royce pulls up and a wealthy-looking couple emerge and go into the restaurant while their chauffeur talks to an attendant."; : print "An orange Lamborghini roars into the carpark and a laughing couple emerge."; : print "A black Ferrari pulls in and a rich-looking couple step out."; : print "A Range Rover arrives and a wealthy-looking couple and their smartly dressed children step out and go in to the restaurant."; : print "A couple come out of the restaurant and are ushered to their car by an attendant."; : print "An elderly couple leave the restaurant and are shown to their car by one of the attendants."; : print "A group of smartly dressed men emerge from the restaurant, arguing loudly, and eventually split up and are shown to their separate cars by attendants."; : print "Two laughing women leave the restaurant and are shown to their car by an attendant."; : print "A wealthy family leave the restaurant and are show to their car, where their chauffeur greets them."; } } } } : if (is_at "restaurant_entrance") { : if (restaurant_guests_arrive==0) { : set_integer var = "restaurant_guests_arrive" value = "6" ; : cycle predictable_order = "false" key = "poshname" { : set_string var ="posh_name" value ="Adkins-John"; : set_string var ="posh_name" value ="Allday-Marlow"; : set_string var ="posh_name" value ="Allen-Dunn"; : set_string var ="posh_name" value ="Armitage-Grey"; : set_string var ="posh_name" value ="Athwal-Pearce"; : set_string var ="posh_name" value ="Atkins-Levett"; : set_string var ="posh_name" value ="Atkinson-Lemmon"; : set_string var ="posh_name" value ="Bennett-Bell"; : set_string var ="posh_name" value ="Biggs-Orford"; : set_string var ="posh_name" value ="Bird-Haltenwhistle"; : set_string var ="posh_name" value ="Boyle-Ackroyd"; : set_string var ="posh_name" value ="Twanning-Hagley"; : set_string var ="posh_name" value ="Burdett-Sellar"; : set_string var ="posh_name" value ="Burn-Stockfellow"; : set_string var ="posh_name" value ="Capper-Primheffer"; : set_string var ="posh_name" value ="Carey-Snell"; : set_string var ="posh_name" value ="Cheeseman-Wood"; : set_string var ="posh_name" value ="Clarke-Crook"; : set_string var ="posh_name" value ="Clutflapper-Hayward"; : set_string var ="posh_name" value ="Cole-Burley"; : set_string var ="posh_name" value ="Coleman-Beeson"; : set_string var ="posh_name" value ="Colleran-Forrest"; : set_string var ="posh_name" value ="Collins-Facey"; : set_string var ="posh_name" value ="Cox-Fry"; : set_string var ="posh_name" value ="Crampton-Heywood"; : set_string var ="posh_name" value ="Muchmundi-Haddockfield"; : set_string var ="posh_name" value ="Crocker-Donovan"; : set_string var ="posh_name" value ="Dowdy-Brook"; : set_string var ="posh_name" value ="Eccles-West"; : set_string var ="posh_name" value ="Fenwick-Pushmeashore"; : set_string var ="posh_name" value ="Ford-Kenyon"; : set_string var ="posh_name" value ="Francis-Whitham"; : set_string var ="posh_name" value ="Ginn-Fearn"; : set_string var ="posh_name" value ="Goodwin-Board"; : set_string var ="posh_name" value ="Gross-Game"; : set_string var ="posh_name" value ="Guilfoyle-Holdmystone"; : set_string var ="posh_name" value ="Hall-Stone"; : set_string var ="posh_name" value ="Harding-Davy"; : set_string var ="posh_name" value ="Hedges-Butler"; : set_string var ="posh_name" value ="Hibbert-Chadwick"; : set_string var ="posh_name" value ="Lustingborn-Benobton"; : set_string var ="posh_name" value ="Hogg-Nicholl"; : set_string var ="posh_name" value ="Huse-Durrant"; : set_string var ="posh_name" value ="Jackson-Roastingbird"; : set_string var ="posh_name" value ="Jones-Whitehead"; : set_string var ="posh_name" value ="Kilkenny-Friend"; : set_string var ="posh_name" value ="Lawton-Pippersnake"; : set_string var ="posh_name" value ="Leadbetter-Wheeler"; : set_string var ="posh_name" value ="Lim-Cunningham"; : set_string var ="posh_name" value ="Lorimer-Creelman"; : set_string var ="posh_name" value ="Pratfellow-Whymaster"; : set_string var ="posh_name" value ="Luk-Tucker"; : set_string var ="posh_name" value ="Mack-Eccleston"; : set_string var ="posh_name" value ="Maddocks-Clerk"; : set_string var ="posh_name" value ="Maguire-Monk"; : set_string var ="posh_name" value ="Maidens-Talbot"; : set_string var ="posh_name" value ="Malcolm-Hevytoe"; : set_string var ="posh_name" value ="Fruitworthy-Lanigan"; : set_string var ="posh_name" value ="McCullough-Hutton"; : set_string var ="posh_name" value ="McNulty-Naylor"; : set_string var ="posh_name" value ="Millar-Johnson"; : set_string var ="posh_name" value ="Oddcock-Coate"; : set_string var ="posh_name" value ="Moreno-Windle"; : set_string var ="posh_name" value ="Morgan-Sandercock"; : set_string var ="posh_name" value ="Morrison-Snailfodder"; : set_string var ="posh_name" value ="Putteridge-Cohen"; : set_string var ="posh_name" value ="Neale-Whittaker"; : set_string var ="posh_name" value ="Norwood-Hopmaddly"; : set_string var ="posh_name" value ="Orpington-Penwarden"; : set_string var ="posh_name" value ="Porter-Boughton"; : set_string var ="posh_name" value ="Reid-Gaskell"; : set_string var ="posh_name" value ="Rowe-Clapflatter"; : set_string var ="posh_name" value ="Hawkman-Shantendwell"; : set_string var ="posh_name" value ="Schneider-Boyd"; : set_string var ="posh_name" value ="Seaforth-Mooney"; : set_string var ="posh_name" value ="Seifert-Whelk"; : set_string var ="posh_name" value ="Shah-Harrig"; : set_string var ="posh_name" value ="Simpson-Wilder"; : set_string var ="posh_name" value ="Smith-Wotton"; : set_string var ="posh_name" value ="Stewart-Frenchingstork"; : set_string var ="posh_name" value ="Taylor-MacKenzie"; : set_string var ="posh_name" value ="Earwending-Kingharpen"; : set_string var ="posh_name" value ="Thompson-Makin"; : set_string var ="posh_name" value ="Thornton-Whitfield"; : set_string var ="posh_name" value ="Tipping-Ashbash"; : set_string var ="posh_name" value ="Ward-Hodsonwell"; : set_string var ="posh_name" value ="Wareing-Lennon"; : set_string var ="posh_name" value ="Wedgely-Prickhofstaffer"; : set_string var ="posh_name" value ="Welsh-Steele"; : set_string var ="posh_name" value ="Broadley-Westingpitt"; } : append "The doors swing open and in comes "; : gosub "guests_description" ; : append " "; : gosub "more_guest_description" ; : append " "; : append " and "; : gosub "guests_description" ; : append " "; : gosub "more_guest_description" ; : append". They speak to the reception waiter, who slowly turns the thick, white pages of the reservations book with his white-gloved hands."; : create "guests"; } : if (restaurant_guests_arrive==5) { : append "The reception waiter \"a-ha\"s softly, takes a gleaming golden fountain pen out of his pocket, unscrews the cap and pushes it slowly onto the other end of the pen, and then makes a small and precise mark in the reservations book.\nTurning to the archway that leads to the dining room, he announces loudly, \""; : execute_one_at_random { : append "Mrs "; : append "Miss "; : append "Dr "; : append "Admiral "; : append "Ambassador "; : append "Baron "; : append "Baroness "; : append "Brigadier "; : append "Brother "; : append "Canon "; : append "Captain "; : append "Counsellor "; : append "Colonel "; : append "Commander "; : append "Count "; : append "Countess "; : append "Countess "; : append "Dame "; : append "Duchess "; : append "Duke "; : append "Earl "; : append "Father "; : append "General "; : append "Lady "; : append "Lord "; : append "Lieutenant "; : append "Lieutenant Colonel "; : append "Field Marshall "; : append "Madam "; : append "Madame "; : append "Major "; : append "Major General "; : append "Prince "; : append "Princess "; : append "Professor "; : append "Rear Admiral "; : append "Reverend "; : append "Bishop "; : append "Frau "; : append "Mademoiselle "; : append "Herr "; : append "Monsieur "; : append "The Ancient and Venerable Lord "; : append "The Ancient and Venerable Lady "; : append "Sir "; : append "Sister "; : append "The Honourable Dr "; : append "The Honourable Lady "; : append "The Honourable Lord "; : append "The Honourable Mrs "; : append "The Honourable Sir "; : append "The Honourable Mr "; : append "The Right Honourable Sir "; : append "The Right Honourable Madame "; : append "Viscount "; } : append {(posh_name+", and ")}; : execute_one_at_random { : append "his "; : append "her "; : append "their "; } : execute_one_at_random { : append "husband"; : append "wife"; : append "daughter"; : append "son"; : append "partner"; : append "father"; : append "mother"; : append "grandmother"; : append "grandfather"; : append "uncle"; : append "aunt"; : append "nephew"; : append "niece"; : append "cousin"; } : print "\". The newly arrived guests go through into the dining room."; : create "guests"target = "in_restaurant" ; } } : else_if (is_at "beer_tent") { : if (chance (50)) { : cycle predictable_order = "false" key = "ambient_beer_tent" max_loops = "1" { : print "Some more people cram in to the tent and try to fight their way to the bar."; : print "\"I was here first!\" says a tall, thin man with spectacles, waving a ten pound note aggressively in the direction of the barman, who makes an extra effort to ignore him and serve someone else instead. "; : print "\"Do you have a menu?\" asks a nicely-dressed lady hopefully. \"My Husband and I would like to order some lunch.\"\n\"Sorry Lady, this isn't The Pegasus,\" says the barman, filling up yet another plastic pint glass with cloudy orange liquid. \"We've got peanuts and pork scratchings and that's all.\""; : print "\"Scrumpy!\" hollers a woman, three rows back from the front of the bar, over the heads of everyone in front of her."; : print "\"A pint of Archdeacons's Ankle and half a Nobby Fiddler!\" I hear someone shout at the bar staff."; : print "\"Archangel's Rebuff is off!\" says the barman. \"I knew I we should have brought another keg of that.\""; : print "\"Crikey, it is hot in here!\" says a red-faced man, wafting himself with a huge straw hat."; : print "\"Shall we go and watch the magic show?\" one punter asks another. \n\"Another pint first?\" he replies."; : print "\"What would you like?\" says the barman to the next customer at the bar.\n\"What would you recommend?\" asks the customer.\n\"Two pints of Scuttle's Pigtrough, a packet of peanuts and a lie down for the rest of the afternoon?\" suggests the barman."; : print "There's a lot of shoving and pushing as some people try to get in and others get out of the beer tent at the same time."; on_exhausted { : print "The bustle and shouting of the beer tent carries on all around me."; } } } : else_if (chance (50)) { : if (is_present "mayor") { : cycle predictable_order = "false" key = "M&M chat" max_loops = "1" { : print "\"Made a complete fool of himself in front of Old Dokey.\" says the Mayor to the Mayoress. \"From the way he spoke, you'd think they'd stolen his trousers!\""; : print "\"I mean, that's almost a gallon of gravy a minute!\" says the Mayoress to the Mayor.\n\"By jove, is it really?\" says the Mayor.\"We shall have to be very careful with our overheads then.\""; : print "\"Sack the whole lot of them and get them replaced by robot pigeons, if you ask me,\" guffaws the Mayor to the Mayoress."; : print "\"Had to bypass the bypass with another bypass, that was the problem,\" says the Mayor to the Mayoress. \"Planning Committee was furious, or course, but what else could we do? Road would have been full of beetroot otherwise.\""; : print "\"That horrible little man with the small head and the big feet - what's he called?\" says the Mayoress to the Mayor."; : print "\"Yes, I understand that dear,\" says the Mayoress to the Mayor, \"but you know, Mrs Sidcup isn't exactly Gandhi, is she?\""; on_exhausted { : print "The Mayor and Mayoress chat away to one another."; } } } } } : else_if (is_at "magic_show") { : if (!has_not_created "lid"&&has_not_created "tp") { : if (!magic_show_begins) { : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "I'm minding my own business trotting along the grass in front of the stage when suddenly there is a loud bang and a puff of smoke, and the air is filled with glitter! \n The crowd gasps in amazement - that is, the ones that aren't choking on the smoke or picking glitter out of their drinks. A recorded voice booms out, \"Ladies and gentlemen, boys and girls...prepare to be AMAZED...BEDAZZLED...MYSTIFIED and ENTHRALLED by...\" there's a drum roll, and then, \"The Amazing...TP!\" followed by a crash of cymbals. A few seconds later, the Miraculous TP himself staggers into view, coughing and wafting smoke out of his eyes. He approaches the front of the stage."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Well, hello everyone!\" he says, in a funny, raspy voice that immediately makes all the children giggle but I don't think is part of the show - poor bloke. \"Nice to see you all! Well, the ones I can see through the smoke! Bit dodgy that glitter cannon - you never know with Ebay. Anyway...\"\nThe parents look unimpressed and the beer-drinkers bemused, but at least the children seem to be enjoying themselves." ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"No time to stand around chatting, eh?\" continues The Miraculous TP. \"You don't want to sit there getting sunburn while I natter on all day, do you? You want a magic show! So come on then, let's get on with it. Now, hang on a moment...\""; : print "He wanders towards the back of the stage, as the smoke begins to clear."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : set_true "magic_show_begins" ; : create "tp"; : create "top_hat" target = "backstage" ; : redescribe; } } } : if (is_exists "crowd") { : if (is_at "magic_show"||is_at "backstage") { : execute_one_at_random { : print "\"Here's one that you might not have seen before!\" says TP."; : print "\"Prepare to be amazed!\" says TP."; : print "\"Now, parents - don't try this at home without your kids' supervision!\" says TP. There are a few titters from the assembled grown-ups."; : print "\"Who want to see something incredible?\" says TP. There's a muted murmur from the crowd and a drunk bloke at the black yells, \"Me!\""; : print "\"Behold the incredible!\" says TP."; : print "\"This next trick is so amazing even I don't know how it's done!\" says TP."; : print "\"This trick was taught to me by an old gypsy,\" says TP. \"He said if I ever told anyone else about it they'd be cursed forever. Whoops! Too late now!\" The parents smile faintly and a little girl begins to cry."; : print "\"Very quiet now everyone,\" says TP, dramatically, \"This next trick requires utmost concentration...\""; : print "\"Look away now if you're of a nervous disposition,\" says TP."; : print "\"You'll never guess how this one is done!\" says TP."; : print "\"Paul Daniels could never manage this one,\" says TP, to a mystified crowd."; } : if (chance (30)) { : cycle predictable_order = "false" key = "magic_show" { max_loops = 1 : print "He rummages around and produces a giant Rubik's Cube, all jumbled up.\n\"Now, just watch this!\" He puts one hand behind his back, holds the cube in the other hand, and starts to fiddle with it. \"Now,\" he says, \"just a few more turns...just another minute or two...\"\n He keeps on fiddling with the cube but it stubbornly stays just as jumbled up as before and the crowd are getting restless. \"Here it comes...Damn! Mustn't have been set right.\" He chucks the jumbled-up cube to the back of the stage and snatches up something else."; : print "He grabs a set of metal rings. \n\"Now,\" he says to the enraptured audience, \"see these solid rings?\" He runs his hands all around them, to show there are no gaps. \"Just watch this!\" and he holds one of the rings in front of him and brings the other one down on top of it, hard. There is a clang of metal, and one of the rings bounces off the other and into the audience. The children laugh and the parents scowl.\n\"Oops, sorry,\" says TP, \"that wasn't supposed to happen.\" He retrieves the bent ring then chucks them both to one side, pausing to wipe the sweat off his brow. \"Just a little warm-up there,\" he says, unconvincingly, \"but don't worry, I'll start doing it properly now!\""; : print "He produces a unicycle and hops up onto it - only to immediately fall off. \"Oops - bit of a false start there!\" says TP nervously, \"Let's try again.\" He has another couple of goes and eventually manages to get up on it and balance for a few seconds, pedalling towards the audience - but quickly loses control and, with a yell, pitches forwards into the crowd, landing face-first in someone's picnic! He hurriedly gets to his feet, peeling a sandwich off his face and picking raisins out of his hair, then leaps back onto the stage and carries on as though nothing has happened."; : print "He picks up a short, square tube and shows it to the audience. \"A completely hollow tube! Now, watch closely.\"\nHe thrusts his hand through until it pokes out of the other side and then produces a hacksaw. \"Now, Mums and Dads - definitely don't try this at home...\" and he starts to saw the tube in half! He's only just started when the hand poking out of the end falls off and bounces across the stage and into the audience! A woman screams and a man drops his beer in surprise.\n \"Sorry!\" says TP, running into the audience to retrieve the rubber hand, \"It's not supposed to do that. Never mind, just forget about that one eh?\""; : print "\"How about a bit of juggling? \" he says, and magically produces three balls from nowhere, which he throws into the air and starts to juggle. \"Now watch closely...\" and amazingly, a fourth ball is suddenly in the air along with the other three! The audience gasp and everything seems to be going quite well - until someone opens a can of fizzy drink and breaks his concentration. He drops one of the balls, and then another , and then all the balls that are up his sleeves fall out at once and bounce into the audience. Children scream in delight and snatch them up as TP moves on to his next trick." ; : print "\"How about something really dangerous?\" he says. The grown-ups look nervous and the children excited as he grabs some sticks from the back of the stage and, with a magical wave of his hand, sets them on fire! Everyone 'oohs' and 'aahs' in amazement.\n \"And now,\" says TP, \" never, ever try this at home!\" He holds one of the flaming sticks above his head, tilts his face upwards, opens his mouth and tries to swallow it.\n \"Ouch!\" he yelps, as it approaches his lips. \"Aargh! Too hot!\" and he starts to jump around and waft a hand in front of his mouth as the audience laugh. \"That's not funny, you know,\" he snaps, holding the flaming stick a little too close to his bow tie which suddenly catches on fire! \n\"Help!\" cries TP, \"Fire!!\" and he rushes over to the side of the stage, grabs a jug of water, and throws it all over himself. After a moment he regains his composure and, with his damp and singed bow-tie drooping limply around his neck, carries on with the show."; : print "\"This a good one!\" he says, fetching a table, a chair and a plank from the back of the stage. He sets up the table in the middle of the stage and puts the chair on top of it. Then he gets on the table and balances the plank on top of the chair. And then he stands on the chair and, after quite a lot of false starts, manages to get up and balance on the plank! The audience cheer. \n\"And now,\" says TP, wobbling alarmingly but somehow still managing to keep his balance, \"for the pièce de résistance!\" He puts his hand in his pocket and pulls out a glass of water, which he starts to drink. It's all going so well, but then someone noisily unwraps a boiled sweet and that does it. He starts to wobble and then...\n There's a huge crash and TP's picking himself up from between broken furniture and smashed glass. He quickly pushes all the debris to the back of the stage, smiles sheepishly at the audience, and carries on."; : print "\"A volunteer if you please!\" A sea of hands shoots up. \"You - no, not you. You! Please come up on stage.\" A little boy in a sunhat is led up onto the stage by his Mum, who waits in the wings.\n\"That's a lovely hat you have on,\" he tells the boy, \"may I borrow it please?\" The kid looks scared and glances at his Mum, but she smiles and nods so he hands it over.\n\"And now...\" says TP, \"prepare to witness the incredible!\"\nHe produces a cigarette lighter from his waistcoat, sets fire to the hat and drops in onto the stage where it burns to ashes! The audience gasps and the Mum looks worried.\n\"Do not worry,\" says TP confidently, \"for now I shall magically restore it!\" and he reaches behind the boy's ear, and pulls his hand out - empty. He curses under his breath. \"Hang on a minute...\" He struggles with his sleeves and eventually pulls out a woolly bobble hat.\n\"Now, young man - is this your hat?\" \nThe kid shakes his head slowly, but TP is already shooing him off the stage along with his furious Mum. \n\"And now for my next trick!\""; ; on_exhausted { : print "TP tries to impress the audience with some magical stuff, but it goes wrong again. The crowd shuffle about and mutter impatiently."; } } } : else { : execute_one_at_random { : print "The Miraculous TP grabs something out of the pile of magical clutter and tries to impress the audience with it, but fails spectacularly."; : print "Fête-goers drift buy, glancing curiously at the antics on stage."; : print "A baby starts to wail hysterically."; : print "A couple of kids start to fight over an ice-lolly."; : print "Someone at the back of the audience starts to snore loudly."; : print "Someone comes back from the beer tent with two very full plastic pint glasses of beer and tries to pick their way through the crowd to someone sitting right in the middle, slopping beer all over everyone as they do so."; : print "A gull swoops down from nowhere, snatches a little girl's sausage sandwich and then disappears off into the blue. She begins to wail and cry."; : print "The audience fidget and look bored."; : print "One of the grown-ups whispers to another and they both laugh hysterically."; } } } } : if (is_at "village_hall") { : set_integer var = "skating_counter" value = "0" ; } : if (is_at "skating_area") { : if (is_exists "skaters") { : print "Kids in baggy jeans and t-shirts are scooting around, practicing tricks and falling off their skateboards."; } : if (i_am_mustard&&!mustard_on_skateboard||!i_am_mustard&&!custard_on_skateboard) { : print "I stand in the carpark with skateboarders whizzing past. \"Hey, watch out doggy!\" yells a kid as he almost crashes into me on his board. He manages to swerve around me just in time. I decide this is no place for a dog on foot and retreat back to the front of the town hall."; : goto "village_hall"; : set_true "follow" ; : set_true "pleased_to_see_me" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : if (is_just_entered () ) { : print "I find myself at the top of a slope and whizz down it on the skateboard, my ears flapping in the breeze. This is fun!"; : set_true "tried_skating" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : if (skating_counter==0||skating_counter==2||skating_counter==4) { : if (trick_chances==3) { : print "I'm skating along the flat and picking up speed. I just need to remember what I'm supposed to do here..."; } : else_if (trick_chances==2||trick_chances==1) { : print "I'm still skating along the flat. I think I'd better to a trick!"; } } : else_if (skating_counter==1||skating_counter==3||skating_counter==5) { : if (trick_chances==3) { : cycle predictable_order = "false" key = "skateboard_tricks" { : if (true) { : print "There's a railing coming up fast! I think I remember a trick for that."; : set_true "boardslide" ; : create "railing"; } : if (true) { : print "I'm headed straight for a low bench. I'm sure there was a trick for this."; : set_true "hippie_jump" ; : create "bench"; } : if (true) { : print "There's a kerb alongside this bit. Perfect place for another trick I reckon."; : set_true "50_50" ; : create "kerb"; } } } : if (trick_chances==2||trick_chances==1) { : if (is_present "bench") { : print "I'm coming up to a bench. Time for another trick, I think."; } : else_if (is_present "railing") { : print "Here's a railing. Now, what was I supposed to do here..."; } : else_if (is_present "kerb") { : print "There's a kerb here. I'm sure there was a trick to do with kerbs..."; } } } : else_if (skating_counter==6) { : if (trick_chances==3) { : print "Looks like I'm coming to the end of the carpark. I'd better do a really fancy trick here to finish off!"; } : else { : print "I'd better do something really special to finish off!"; } } : if (trick_chances==0) { : print "\"Nice try,\" says the paperboy, \"but not good enough to beat the Slayers. Off you go little doggy.\" He pats me on the head as I skate past and points the way out of the carpark. With my tail between my legs, I scoot back to the town hall."; : goto "village_hall"; : set_true "follow" ; : set_true "pleased_to_see_me" ; : set_false "ollie" ; : set_false "shuvit" ; : set_false "kickflip" ; : set_integer var = "trick_chances" value = "3" ; : set_integer var = "skating_counter" value = "0" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : ask_string question = "What trick should I do? [[Just type the name of the trick on its own.]]" var = "trick" ; : if (skating_counter==0||skating_counter==2||skating_counter==4) { : if (trick=="hotfinger"||trick=="buffle"||trick=="flippant"||trick=="tony"||trick=="flippant tony"||trick=="hotfinger buffle"||trick=="driffield"||trick=="tuesday"||trick=="driffield tuesday"||trick=="boardslide"||trick=="50-50"||trick=="50 50"||trick=="5050"||trick=="hippie"||trick=="jump"||trick=="hippie jump") { : print "That's not the right trick to do here!"; : decrement "trick_chances" ; } : else_if (trick=="ollie") { : if (!i_am_mustard) { : print "I skate along for a bit, wobbling from side to side and trying to balance but pretty quickly I fall off and the skateboard carries on until it arrives at the feet of the paperboy. \n\"Giving me my board back, eh? I guess that skating's just not for you. Daft of me to expect a dog to be able to do tricks really...\" I suppose he's right - maybe I'm just not cut out for this sort of thing. I wonder if Mustard would be any better? I slink off back to the town hall with my tail between my legs."; : goto "village_hall"; : set_true "follow" ; : set_true "pleased_to_see_me" ; : set_true "pleased_to_see_me" ; } : else_if (!ollie) { : print "I jump up high and the skateboard comes with me, so I'm standing on it in mid-air! For a second, I feel like I'm flying...and then I'm back on the ground, landing neatly and still skating along.\n\"Woah!\" says one of the kids, \"did that dog just do an Ollie?!\"\n\"Yeah,\" says the paperboy, \"he did - and better than I've ever seen any of you lot do one!"; : set_true "ollie" ; : set_integer var = "trick_chances" value = "3" ; : increment "skating_counter" ; } : else { : print "\"Yeah, that's good,\" says the leader of the gang, \"but I've seen it before and you know the rules: no repeats. Rules are rules, even for a dog. Sorry pooch.\" Why didn't I remember that? I curse myself and slink off back to the town hall with my tail between my legs."; : set_false "ollie" ; : goto "village_hall"; : set_true "follow" ; : set_true "pleased_to_see_me" ; } } : else_if (trick=="shuvit") { : if (!i_am_mustard) { : print "I skate along for a bit, wobbling from side to side and trying to balance but pretty quickly I fall off and the skateboard carries on until it arrives at the feet of the paperboy. \n\"Giving me my board back, eh? I guess that skating's just not for you. Daft of me to expect a dog to be able to do tricks really...\" I suppose he's right - maybe I'm just not cut out for this sort of thing. I wonder if Mustard would be any better? I slink off back to the town hall with my tail between my legs."; : goto "village_hall"; : set_true "follow" ; : set_true "pleased_to_see_me" ;; } : else_if (!shuvit) { : print "I scoot along and then somehow manage to jump and push off the board at the same time. The board turns 180 degrees in the air and then I'm back on it and a second later I hit the ground and keep on skating.\n\"Wow!\" gasps one of the kids, \"it looked like that little dog just did a shuvit!\"\n\"He did!\", says the paperboy, \"a perfect one! If any of you lot could it half as well as that then The Slayers wouldn't stand a chance!\""; : set_integer var = "trick_chances" value = "3" ; : set_true "shuvit" ; : increment "skating_counter" ; } : else { : print "\"Yeah, that's good,\" says the leader of the gang, \"but I've seen it before and you know the rules: no repeats. Rules are rules, even for a dog. Sorry pooch.\" Why didn't I remember that? I curse myself and slink off back to the town hall with my tail between my legs."; : set_false "shuvit" ; : goto "village_hall"; : set_true "follow" ; : set_true "pleased_to_see_me" ; } } : else_if (trick=="kickflip"||trick=="kick-flip"||trick=="kick flip") { : if (!i_am_mustard) { : print "I skate along for a bit, wobbling from side to side and trying to balance but pretty quickly I fall off and the skateboard carries on until it arrives at the feet of the paperboy. \n\"Giving me my board back, eh? I guess that skating's just not for you. Daft of me to expect a dog to be able to do tricks really...\" I suppose he's right - maybe I'm just not cut out for this sort of thing. I wonder if Mustard would be any better? I slink off back to the town hall with my tail between my legs."; : goto "village_hall"; : set_true "follow" ; : set_true "pleased_to_see_me" ; } : else_if (!kickflip) { : print "I wait until I'm going really fast and then jump high in the air, kicking down on the back of the board as I do. The board turns upside down and then the right way up again, doing a complete spin - and then I manage to land back on it and carry on skating!\n\"Did that dog just do a kick flip?\" says one of the other skaters in amazement. \"Man, that is sick!\"\n\"Yeah, looks like it,\" says the paperboy. \"Watch and learn! Show us what else you've got, doggy.\""; : set_integer var = "trick_chances" value = "3" ; : set_true "kickflip" ; : increment "skating_counter" ; } : else { : print "\"Yeah, that's good,\" says the leader of the gang, \"but I've seen it before and you know the rules: no repeats. Rules are rules, even for a dog. Sorry pooch.\" Why didn't I remember that? I curse myself and slink off back to the town hall with my tail between my legs."; : set_false "kickflip" ; : set_true "follow" ; : set_true "pleased_to_see_me" ; } } : else { : if (trick=="hint") { : print "^b^I just need to do the right trick at the right time. Type TRICKS if you want me to remember what they are."; } : else_if (trick=="tricks") { : if (i_am_mustard) { : print "What, those skating tricks that paperboy was showing off? I can remember all of those. Dogs have got a good memory for that sort of thing, you know."; } : else { : print "The skating tricks? I think I can remember them. Dogs have a good memory for that sort of thing. Now, let's see..."; } : print "Tricks for the <^b^flat>: <^b^ollie>, <^b^shuvit>, <^b^kickflip>. "; : print "Trick for the <^b^railing>: <^b^boardslide>"; : print "Trick for the <^b^bench>: <^b^hippie jump>"; : print "Trick for the <^b^kerb>: <^b^50-50>"; : print "Extra <^b^special tricks>: <^b^Driffield Tuesday>, <^b^Hotfinger Buffle>, <^b^Flippant Tony>."; } : else { : print "I don't know that trick!"; : decrement "trick_chances" ; } } } : else_if (skating_counter==1||skating_counter==3||skating_counter==5) { : if (trick=="ollie"||trick=="shuvit"||trick==""||trick=="kickflip"||trick=="kick-flip"||trick=="kick flip"||trick=="tony"||trick=="flippant tony"||trick=="hotfinger buffle"||trick=="hotfinger"||trick=="buffle"||trick=="driffield"||trick=="tuesday"||trick=="driffield tuesday") { : print "I don't think that's the right trick to do here!"; : decrement "trick_chances" ; } : else_if (trick=="boardslide") { : if (is_present "railing") { : print "As I approach the railing I spring up like a flea and my board comes with me, rotating until it's crosswise to the railing - and then we're right on it and sliding along! The wind whistles through my fur as I slide along the smooth metal and then I'm dropping off the end and I'm back on the ground and still skating along.\n\"Awesome boardslide!\" says the paperboy to the rest of the kids, \"why can't any of you do it as well as that?\""; : destroy "railing"; : increment "skating_counter" ; : set_integer var = "trick_chances" value = "3" ; } : else { : print "I think I need a railing to do that trick!"; : decrement "trick_chances" ; } } : else_if (trick=="50-50"||trick=="50 50"||trick=="5050") { : if (is_present "kerb") { : print "I remember what the paperboy showed us earlier and jump up onto the kerb on my board, managing to get two of the wheels running along it while the other half of the board just hangs in the air. It's tricky to balance and I feel as though I might fall off - but then thankfully the kerb ends and we're back on the ground and skating along smoothly again, to cheers and applause from the rest of the skaters."; : destroy "kerb"; : set_integer var = "trick_chances" value = "3" ; : increment "skating_counter" ; } : else { : print "I think I need a kerb to do that trick!"; : decrement "trick_chances" ; } } : else_if (trick=="hippie jump") { : if (is_present "bench") { : print "I'm coming up on the bench fast. Now, if I can just time this right...\nI jump high just before I get to it and leave the skateboard to slide under as I sail right over the top. A moment later, the board reappears at the other side and I land on it and carry on skating along.\nOne of the kids whistles in amazement.\"Awesome hippie jump!\" he says, \"where did a dog learn to do that sort of thing?\" And the truth is, I really don't know. "; : destroy "bench"; : increment "skating_counter" ; : set_integer var = "trick_chances" value = "3" ; } : else { : print "I think I need a bench to do that trick!"; : decrement "trick_chances" ; } } : else { : if (trick=="hint") { : print "I just need to do the right trick at the right time. Type TRICKS if you want me to remember what they are."; } : else_if (trick=="tricks") { : if (i_am_mustard) { : print "What, those skating tricks that paperboy was showing off? I can remember all of those. Dogs have got a good memory for that sort of thing, you know."; } : else { : print "The skating tricks? I think I can remember them. Dogs have a good memory for that sort of thing. Now, let's see..."; } : print "Tricks for the <^b^flat>: <^b^ollie>, <^b^shuvit>, <^b^kickflip>. "; : print "Trick for the <^b^railing>: <^b^boardslide>"; : print "Trick for the <^b^bench>: <^b^hippie jump>"; : print "Trick for the <^b^kerb>: <^b^50-50>"; : print "Extra <^b^special tricks>: <^b^Driffield Tuesday>, <^b^Hotfinger Buffle>, <^b^Flippant Tony>."; } : else { : print "I don't know that trick!"; : decrement "trick_chances" ; } } } : else_if (skating_counter==6) { : if (trick=="ollie"||trick=="shuvit"||trick==""||trick=="kickflip"||trick=="kick-flip"||trick=="kick flip"||trick=="boardslide"||trick=="50-50"||trick=="5050"||trick=="50 50"||trick=="hippie"||trick=="jump"||trick=="hippie jump") { : print "I don't think that's the right trick to do here!"; : decrement "trick_chances" ; } : else_if (trick=="flippant"||trick=="tony"||trick=="flippant tony") { : print "OK - here goes... I race along, picking up speed until I reckon I'm going just as fast as it's possible to go. And then I jump in the air and turn a somersault and manage to land with my front feet on the board and my legs up in the air! I didn't even know a dog could do that, and neither did the other skaters from the look of it, as they're all gaping at me open-mouthed." ; : increment "skating_counter" ; } : else_if (trick=="hotfinger"||trick=="buffle"||trick=="hotfinger buffle") { : print "I wait until I'm going really fast and then I leap up in the air as high as I can. The board comes up with me and I manage to change my position so I'm actually sitting on it, in mid-air! Then I stick my front paws out and waggle them like I'm playing the piano before landing with a jolt (oof!) a second later. I scoot along in front of the other skaters and enjoy their thunderous applause."; : increment "skating_counter" ; } : else_if (trick=="driffield"||trick=="tuesday"||trick=="driffield tuesday") { : print "I try to remember what the paperboy showed us... I pick up speed and then leap into the air, spinning myself one way while the skateboard flips the other - and then me and the skateboard meet again in mid-air and I lie down on it, barking wildly just to make it extra-impressive. And then a few moments later, we're back on the ground and I'm standing on the board and skating along just as before. The rest of the skaters just stare at me in awe-struck silence."; : increment "skating_counter" ; } } : if (skating_counter==7) { : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "The kids are all cheering and throwing their caps in the air as I scoot to a halt in front of them and step off the skateboard.."; : print "\"Man,\" say the paperboy, picking up the board, \"that was incredible! Where did you learn to skate like that? You are one sick dog!\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "I bark to let him know that I'm actually quite healthy and I've been recently wormed, deflead and vaccinated (Pru's very particular about that sort of thing) but he's too busy telling the other kids that they need to get as good as me to notice. I turn to leave."; : print "\"Hey, doggy!\" he calls after me. \"Where are you going? Don't you want to be in our gang? We need you with us to beat the Slayers. They don't stand a chance if you're on our team!\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Thanks for the offer,\" I bark, \"but, you know - I'm kind of busy on another adventure right now. And come to think of it, I'd better just check how Custard is getting on...\" "; : print "\"I think he wants to go and play with his friend,\" says one of the littlest kids, obviously still young enough to understand dog language (they start to forget it when they get a bit older)."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Oh, okay then,\" says the paperboy, disappointed. \"Hey, but wait - at least take this with you. You deserve it.\" And he puts the skateboard down on the ground in front of me. I get on it and bark happily as he ruffles my ears."; : print "Just then, a voices bellows \"Oi! You kids! Get out of here right now or I'll have an antisocial behaviour order on the lot of you!\" A huge, red-faced man begins to stomp towards them across the carpark."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Braithwaite!\" says the paperboy, \"We're for it now - quick, get out of here!\" and all the kids grab their gear and vanish as quick as lightening. Mr Braithwaite looks around him and curses, and then sees me."; : print "\"What are you doing here, hey? You can get out of it and all, unless you want me to turn you in as a stray.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "I don't need to be told twice. I turn and scamper out of the gate. Mr Braithwaite produces a set of keys and locks it behind me, and then disappears into the town hall."; : destroy "skaters"; : destroy "paperboy"; : goto "village_hall"; : set_true "follow" ; : set_true "pleased_to_see_me" ; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_at "big_white_tent") { : if (is_present "stuffed_dog") { : print "A lady wearing a yellow reflective vest with 'Steward' written on it and carrying a walkie-talkie comes into the tent.\n\"What on earth are you doing out here?\" she says to the stuffed dog. \"Trying to escape with your friends, eh?\" She chuckles to herself and pushes it back into the storeroom, then smiles at us both before leaving the tent. "; : create "stuffed_dog" target = "store_room" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (is_at "store_room") { : if (!seen_dog) { : set_true "seen_dog" ; } : if (custard_on_skateboard&&parent_of "stuffed_dog"=="out_back"&&parent_of "paraders"=="changing_room") { : print "I hear a noise just outside the storeroom... "; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : if (!i_am_mustard) { : print "I freeze on the skateboard, as someone comes into the room. It's a lady with pink reflective vest that says STEWARD on it, and a walkie-talkie clipped on to the waistband of her jeans. "; } : else { : print "I duck out of sight behind some junk and peep at Custard, who stands frozen on the skateboard. A lady comes in, wearing a pink reflective vest that says STEWARD on it, and a walkie-talkie clipped on to the waistband of her jeans. "; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "She's holding something shiny and golden in her hands."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : if (!i_am_mustard) { : print "\"Right my lovely\" she says to me, \"time to dress you up like a proper Roman prince!\"\n I wonder for a moment if she's guessed that I'm a real dog, but then I realise she hasn't. I stare glassy-eyed ahead of me and stay absolutely still as she chats away, obviously not expecting any reply. This must be the way she always talks to stuffed dogs!"; } : else { : print "\"Right my lovely,\" she says to Custard, \"time to dress you up like a proper Roman prince!\" I wonder for a moment if she's guessed that Custard isn't a real dog, but then I realise she hasn't. Custard stares glassy-eyed ahead of him and stay absolutely still as she chats away, obviously not expecting any reply. This must just be the way she always talks to stuffed dogs!"; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "She holds up the shiny thing and I see a beautiful golden dog-collar! It's made from narrow bands of gold, twisted around one another like vines and with glittering jewels all over it. I think for a second that it's the real thing and she must be in with those crooks - but that can't be right. She'd be on a bus out of Little Pottlington by now with her swag over her shoulder, not standing in a tent talking to a stuffed dog. So this must be a replica collar, made to look just like the real thing!"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : if (!i_am_mustard) { : print "The steward unclips the collar and it falls open in two halves along a hinge. She leans over and puts it around my neck and then fastens it again. Now I really do look like a prince!"; } : else { : print "The steward lady unclips the collar and it falls open in two halves along a hinge. She leans over and puts it around Custard's neck and then fastens it again. Now he really does look like a prince!"; } : if (!i_am_mustard) { : print "She clips a lead onto the collar and then turns and calls through the doorway, \"Maya! Time to walk the royal dog!\" "; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "A little girl with dark hair and freckles appears in the doorway. She's wearing a long white dress and a crown on her head, made of gold-painted cardboard - nothing like the magnificent collar I'm wearing! She gasps in awe as she sees it around my neck. \"It's so pretty!\" she says. \"It must be worth a million pounds!\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "The steward laughs. \"Not quite that much, Maya,\" she says, \"it's not the real one! But it is a very nice replica, so you'll need to make sure doggy takes good care of it.\" She smiles and disappears through the doorway."; } : else { : print "She clips a lead on to the collar and then turns and calls through the doorway, \"Maya! Time to walk the royal dog!\" "; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "A little girl with dark hair and freckles appears in in the doorway. She's wearing a long white dress and a crown on head, made of gold-painted cardboard - nothing like the magnificent collar Custard is wearing! She gasps in awe as she sees it around his neck. \"It's so pretty!\" she says. \"It must be worth a million pounds!\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "The steward laughs. \"Not quite that much, Maya,\" she says, \"it's not the real one! But it is a very nice replica, so you'll need to make sure doggy takes good care of it.\" She smiles and disappears through the doorway."; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : if (!i_am_mustard) { : print "Maya comes over to me and touches the collar lightly with her fingertips, like she's scared of breaking it, and then pats the top of my head. And then she pauses as if she's not sure of something. She kneels down close to me, puts her face right next to mine, and looks me straight in the eye. I desperately want to blink! But somehow, I manage not to, and keep on staring straight ahead."; } : else { : print "Maya goes over to Custard and touches the collar lightly with her fingertips, like she's scared of breaking it, and then pats the top of his head. And then she pauses as if she's not sure of something. She kneels down close to Custard, puts her face right next to his, and looks him straight in the eye. I imagine how desperately he must want to blink! But somehow, he manages not to, and keeps on staring straight ahead."; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : if (!i_am_mustard) { : print "Maya suddenly laughs, ruffles my hair and then gives me a big cuddle! I try not to move, but I'm not sure if I manage it. I wonder if she realises I'm a real dog and not stuffed after all?"; } : else { : print "Maya suddenly laughs, ruffles Custard's hair and then gives him a big cuddle! I can see him trying not to move, but I'm not sure if he quite manages it. I wonder if she realises he's a real dog and not stuffed after all?"; } : print "Someone calls from outside the store room, \"Come on Maya! The Professor is outside. We need to start the parade!\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : if (!i_am_mustard) { : print "\"Coming!\" calls Maya. She takes hold of the lead and gives it a tug - and I trundle after her out of the tent!"; } : else { : print "\"Coming!\" calls Maya. She takes hold of the lead and gives it a tug - and Custard trundles after her out of the tent!"; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : if (i_am_mustard) { :become "custard"; : set_false "i_am_mustard" ; : print "[[I'm now Custard.]]"; } : goto "by_the_bandstand"; : create "replica_collar"target = "inventory_worn" ; : create "maya"; : create "professor_ambleside"; : create "mustard"; : create "professor_ambleside"; : create "paraders"; : redescribe; } } : else_if (is_at "in_back_of_chipshop") { : if (is_present "tommy_spratt") { : if (chance (50)) { : print "Tommy batters a piece of fish and throws it in the fryer."; : cycle predictable_order = "false" max_loops = "1" key = "battered_and_fried" { : print "\"Ballcocks!\" mutters Tommy to himself. \"She should have stayed at Prattford and Co. She'd have been happier there.\""; : print "\"Too good to pickle eggs, that's her problem,\" I hear Harry grumble to himself."; : print "\"Supposed to run this place on my own am I?\" mutters Tommy to himself, darkly. \"Well, I bloody well will!\""; : print "\"'Batter your own haddock' indeed!\" grumbles Tommy to a bit of fish."; : print "\"Has she any idea what a well-run chip shop is worth these days?\" Tommy asks the fryer. \"Millions. Those Russian oligarchs are desperate for a slice of the British fish and chip trade. I should sell up and move to the Algarve, and not tell her anything about it. That's show her.\""; : print "\"She can sneer as much she likes,\" mutters Tommy to a bit of battered fish, \"but it's fish, chips and battered sausages that have paid for all those fancy shoes and handbags!\""; : print "\"Old Prattford always looked down on me,\" says Harry bitterly, to the fryer. \"Fish and chips were never good enough for his daughter.\""; on_exhausted { : print "Tommy throws another piece of fish in the fryer, grumbling to himself as it splashes and sizzles in the hot fat."; } } } } } : if (is_at "inside_van") { : if (!i_am_mustard) { : if (custard_on_sofa) { : print "There's a sound of footsteps approaching and then a mumble of voices. It's Ian and Ernie, talking to Billy! A moment later, they appear at the back of the van."; : if (mustard_on_sofa) { : print "Mustard is quick enough to hop off the sofa and out of the van, surprising Ernie and Ian as he scurries past them, but I'm too slow and freeze right where I am."; } : else { : print "Mustard is quick enough to hop out of the van, surprising Ernie and Ian as he scurries past them, but I'm too slow and freeze right where I am."; } : set_false "mustard_on_sofa" ; : create "mustard" target = "east_street" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "Ian and Ernie clamber inside and each take hold of an end of the sofa."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Hey\", says Ernie to Ian, \"I don't remember there being two cushions on here...\""; : print "\"Yeah, but you don't remember a lot of things, do you Ernie?\" says Ian. \"Anyway, what does it matter how many cushions are on there? Let's get it inside and then get out of here. We've got six more stops after this and there's women's indoor bowls on the telly at 7 o'clock. I want to get finished and get home.\""; : print "\"Uh, okay then Ian,\" says Ernie with a shrug."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Together they pick up the sofa and then we're on the move! With a lot of swearing and cursing and bashing of the sofa against the van, they somehow manage to get it out of the back without tipping me off. Then, after a little pause for Ernie to wipe his profusely sweating forehead, we're off again through the archway and into the yard."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print " Janet comes out of the museum to greet them. \"Where do you want it, love?\" Ian asks her, nodding at the sofa."; : print "\"In there please,\" she says pointing the way into the museum. They carry the sofa through into reception and put it down just where Janet Makepeace wants."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Nice sofa this, love,\" says Ernie. \"Very stylish.\""; : print "\"Heritage Lottery,\" says Janet proudly. \"We got a grant. Look, they got me a new desk too.\""; : print "\"Very smart,\" says Ian."; : print "\"We're a proper heritage centre now,\" says Janet. \"Would you like to have a look around? Half-price for you, of course.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Well,\" says Ernie, \"I reckon I wouldn't mind...\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "\"What about my bowls!\" hisses Ian."; : print "\"Oh, poor love,\" says Janet, overhearing, \"I didn't realise you had those sorts of problems.\" Ian scowls at her."; : print "\"Huh, well...thanks for the offer, but we'd better get on our way\" says Ernie, disappointed."; : print "They say their goodbyes and depart - leaving me on the sofa."; : set_false "follow" ; : goto "museum_reception"; : destroy "ernie_droppsit"; : destroy "ian_smashet"; : create "janet_makepeace"; : create "sofa"target = "museum_reception" ; : create "cushion"target = "museum_reception" ; : create "mrs_kaur"target = "museum_garden" ; : create "sack"target = "museum_garden" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } } : if (is_at "museum_reception") { : if (!i_am_mustard) { : if (is_present "janet_makepeace") { : if (custard_sleep_counter>1) { : decrement "custard_sleep_counter" ; } : if (custard_sleep_counter==1) { : print "It looks like I'm stuck here! Janet is settled behind the reception desk and with her eagle eyes, there's no way I can go anywhere without her seeing me. But you know, there are worse places to be stranded than on a comfy sofa in a warm room. And it has been a long day. A very, very long day. So I reckon I should do one of those things that dogs do best and just shut down for a while...drift off...forget about everything...and...sleep. "; : create "custard_1"; : set_false "follow" ; : set_integer var = "custard_sleep_counter" value = "-1" ; : goto "custards_dream"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : if (custard_sleep_counter==0) { : set_integer var = "custard_sleep_counter" value = "6" ; } } } } : if (is_at "museum_storeroom") { : if (is_exists "janet_makepeace") { : if (mustard_sleep_counter>1) { : decrement "mustard_sleep_counter" ; } : if (mustard_sleep_counter==1) { : print "I can't really see any way out of here at the moment, and I'm beginning to feel tired. It's been a long day. A very long day. I mean, I'd normally have had a kip by now. Several kips in fact. I like to get a good 6 hours shut-eye before bedtime. So it's not surprising that I'm feeling quite sleepy. If you'll excuse me for a bit, I think I'll just curl up here in this corner and have a bit of a snooze while things are a bit quiet. Wake me up when something exciting happens, will you? But until then...until...then...I'll just..."; : set_false "follow" ; : set_integer var = "mustard_sleep_counter" value = "-1" ; : goto "mustards_dream"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : if (mustard_sleep_counter==0) { : set_integer var = "mustard_sleep_counter" value = "6" ; } } } : if (is_at "custards_dream") { : gosub "dreams" ; } : if (is_at "mustards_dream") { : gosub "dreams" ; } : if (parent_of "replica_collar"=="crate"){ : if (!report_collar) { : print "The collar should be nice and safe in there for the moment - better close the crate just to be sure!"; : set_true "report_collar" ; } } : if (report_becoming) { : print "[[You are now Custard]]"; : become "custard"; : set_false "i_am_mustard" ; : set_false "report_becoming" ; } : if (report_barking) { : print "I hear a bark echoing around the corridors. I'm sure it's Mustard! I'd better follow it."; : set_false "report_barking" ; } : if (is_at "old_gaol_room"||is_at "exhibition_room") { : if (!has_not_created "combination_lock"&&is_exists "merve_swerve") { //LP chattter : if (!report_lock_pick) { : print "We both prick up our ears at the sound of voices in the corridor and rush over to sniff at the gap below the door. I get a distinct whiff of mothballs and yoghurt."; : if (i_am_mustard) { : print "\"Custard!\" I whisper, \"It's the crooks! Handclap Harry and Skeleton Keith! I'd know their smells anywhere.\""; } : else { : print "\"Custard!\" Mustard whispers, \"It's the crooks! Handclap Harry and Skeleton Keith! I'd know their smells anywhere.\""; } : print "Now, the natural thing to do in this sort of situation is to bark very loudly and throw yourself against the door, like when the postman comes - we just can't help it! But somehow, we manage to control ourselves and keep quiet. We really don't want them to know we're in here."; : set_true "report_lock_pick" ; } : else { : if (chance (50)) { : cycle predictable_order = "true" key = "LP"max_loops = "1" { : print "\"What are you waiting for?\" I hear Handclap Harry say, \"Get it open!\"\n\"Well...,\" says Keith nervously, \"you see, the thing is, with an old lock like this...\"\n\"What about it?\" Harry snaps back, \"Any lock, you said Keith - any lock!\"\n"; : print "There's a lot of clattering and scraping from behind the door, and then I hear Keith swear.\n\"Don't let me down now, sunshine,\" I hear Keith say, \"not now!\""; : print "\"Flipping antiques!\" I hear Keith say, \"Give me an electronic lock, a keypad, an iris-scanner any day. But this old thing...Dammit!\""; : print "There's more banging and clattering from behind the door, and a sound of things being pushed into the keyhole.\n\"Hurry up Keith, hurry up!\" says Harry.\n\"I'm going as fast as I can!\" says Keith, sounding a bit hysterical now. \"This is delicate work. You can't fix a watch with a hammer and chisel!\"\n\"Yeah, but we ain't fixing a watch, are we Keith? I'll get the sledge hammer.\""; : print "\"Nearly there!\" says Keith. \"If I can just - aha! There we go.\" There's a frantic rattling of the lock and then a kick at the door. \"Ah, no - sorry. Just a couple more tumblers to go...\""; on_exhausted { : print "I hear voices behind the door as the crooks try to pick the lock."; } } } : if (parent_of "ancient_collar"=="fishing_creel"&&fake_collar_in_case&&!case_open) { : if (!lock_picked) { : if (is_at "exhibition_room") { : print "There's a lot of cursing from the corridor and the sound of the door being rattled in it's frame followed by several loud thuds - and then suddenly the door flies open!"; : if (i_am_mustard) { : print "Me and Custard dash into the other room."; } : else { : print "Me and Mustard dash into the other room."; } } : else { : print "I hear a lot of cursing from the corridor and the sound of the door being rattled in its frame, followed by several loud bangs. And then suddenly, I hear the door fly open!"; } : if (i_am_mustard) { : print "\"Quick!\" I whisper, \"Hide!\"\n\"But where?\" says Custard frantically.\n\"Anywhere!\" I reply. \"Just don't let them see us!\""; : print "Custard dashes across to the ancient, dilapidated sedan chair and jumps inside. With barely a second to spare, I scamper past the sad-eyed waxwork fisherman and up the crumpled paper mâché mound and settle myself amongst a flock of disgruntled-looking stuffed puffins."; } : else { : print "\"Quick!\" I whisper, \"Hide!\"\n\"But where?\" says Mustard frantically.\n\"Anywhere!\" I reply. \"Just don't let them see us!\""; : print "I dash across to the ancient, dilapidated sedan chair and jump inside. With barely a second to spare, Mustard scampers past the sad-eyed waxwork fisherman and up the crumpled paper mâché mound and settles himself amongs a flock of disgruntled-looking stuffed puffins."; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "\"Cor, look at all this lot!\" I hear Skeleton Keith say in awe. \"It's got to be worth more than the crown jewels!\""; : print "\"Priceless, my boy - priceless!\" says Handclap Harry, noisily slapping his hands together like a hyperactive seal. \"We're rich, Keith - richer than we've ever dreamed of! We'll take it all. But first things first...there it is.\""; : print "\"The dog collar!\" Keith whistles. \"Just look at that beauty. Almost seems a shame to melt it down.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"No time to be sentimental, Keith my boy,\" says Harry. \"Smash and grab and then lets get out of here. I know you fixed the alarms and the cameras, but jobs like this...well, you never know.\""; : print "\"What do you mean?\" says Keith, the panic rising in his voice."; : print "\"Nothing, Keith, nothing at all,\" says Harry quickly, \"It's just that the job's not over until it's over, see? Now, let's not linger - we get what we came for and then get out.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Right,\" says Keith, nervously. \"Let's have a look. Oh yes. An old-fashioned combination lock. Not really my forte, but now I've had a bit of practice with that door, it shouldn't take me more than fifteen minutes or so to pick...\""; : print "\"Allow me,\"says Harry. There's a crash of breaking glass. \"Now - we've got the collar, let's get the other stuff. I'll start in here. You go and check what's in that other room.\"\n\"Right, Harry.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "The air is filled with the sound of shattering glass, shouts of glee and frantic hand-clapping.\n Meanwhile, Skeleton Keith shuffles cautiously into the room. He tiptoes around the displays and peeps nervously at each one, keeping his distance as though he's afraid that something might leap out and bite him."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : if (i_am_mustard) { : print "I see him approach the sedan chair. Custard is sitting bolt upright on the seat inside, wearing an old fashioned bonnet that he must have found in there and staring straight ahead, unblinkingly, as though he's been stuffed. Keith pauses in front of him and stares for a long while. \"What the...\" I hear him say, and I'm so nervous that Custard is going to blink and give himself away that I can't help shuffling around a bit on top of my paper mâché perch...and I accidentally bump into one of the stuffed puffins! It topples forwards and clatters loudly down the hillock."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Keith spins around and finds himself looking the sad-eyed waxwork fisherman full in the face. He screams. A second later, there's a loud clap from the doorway and poor old Keith, his nerves already in shreds, almost jumps out of his skin."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"What the hell's the matter with you?\" says Harry in the entrance to the exhibition room, a sack full of loot over his shoulder."; : print "\"Harry!\" shrieks Keith, running up to him and trying to hide behind him, \"We've got to get out of here! This place...it's haunted!\""; : print "\"Haunted? Have you lost your mind!\" says Harry, grabbing hold of him by the collar and shaking him. \"Don't go to pieces on me now, sunshine. Not now! Come on - help me get the rest of the stuff in the bag and then we're out of here.\"" ; : print "He drags poor Keith, white-faced and shaking like a jelly, into the other room and a moment later the sounds of looting resume."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "\"Custard,\" I whisper once I'm sure they're busy again, \"come on! We've got to get out of here!\""; : print "\"Hang on!\" he replies, and a moment later, he leaps from the sedan chair, minus the historical headgear."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Where's your bonnet?\" I ask.\n\"Too tight!\" he says, \"it felt like my brain was being squeezed out of my ears.\""; : print "\"That's a pity,\" I say, \"it suited you.\""; } : else { : print "I see him approach the paper mâché hillock, where I can see Mustard sitting motionless amongst the puffins, staring straight ahead, unblinkingly, as though he's been stuffed. Keith pauses in front of him and stares for a long while. \"What the...\" I hear him say, and I'm so nervous that Mustard is going to blink and give himself away that I can't help shuffling around a bit on flaking leather seat of the ancient sedan chair. There's a horribly loud creaking sound as one of the ancient rusty springs gives way beneath me!"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Keith spins around, finds himself looking straight into the sad, painted eyes of the waxwork fisherman, and screams shrilly. A second later, there's a loud clap from the doorway and poor old Keith, his nerves already in shreds, almost jumps out of his skin."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"What the hell's the matter with you?\" says Keith, in the entrance to the exhibition room, a sack full of loot over his shoulder."; : print "\"Harry!\" shrieks Keith, running up to him and trying to hide behind him, \"We've got to get out of here! This place...it's haunted!\""; : print "\"Haunted? Have you lost your mind!\" says Harry, grabbing hold of him by the collar and shaking him. \"Don't go to pieces on me now sunshine. Not now! Come on - help me get the rest of the stuff in the bag and then we're out of here.\"" ; : print "He drags poor Keith, white-faced and shaking like a jelly, into the other room and a moment later the sounds of looting resume."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "\"Mustard,\" I whisper, shaking off the bonnet and leaping down from the sedan chair, \"come on! We've got to get out of here!\""; : print "\"As quickly as possible!\" he replies, scampering down from the little hillock.\"Where's your bonnet?\" \n\"Too tight!\" I say, \"it felt like my brain was being squeezed out of my ears.\""; : print "\"That's a pity. It suited you!\""; } : print "Together, we peep through the door into the Exhibition Room and see the crooks still hard at work, stuffing gold and silver into the swag bag. We grab our chance and scamper past them and into the corridor while their backs are turned."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : swap o1 = "cases" o2 = "smashed_cases"; : create "broken_glass"target = "exhibition_room" ; : set_false "fake_collar_in_case" ; : destroy "replica_collar"; : create "handclap_harry"target = "exhibition_room" ; : set_true "done_exhibition_bit" ; : goto "corridor"; : set_false "standing_on_custard" ; : create "custard"; : create "mustard"; : set_true "lock_picked" ; : set_true "museum_door_open" ; : redescribe; } } } } } : if (is_at "museum_yard") { : if (parent_of "handclap_harry"=="cripplepepper_lane") { : cycle predictable_order = "false" key = "policechatter" max_loops = "1" { : print "\"What's the situation inside, Oddcrisp?\" asks Chief Broom.\"Messy, Ma'am. A lot of broken glass,\" he replies."; : print "\"I say,\" remarks Ambleside vaguely, \"shouldn't we, you know - go after them or something?\"\n\"Thanks you sir,\" answers Broom, stiffly, \"but there is a procedure to follow. This is a police matter now.\"" ; : print "\"This must be the biggest job done in Little Pottlington since the great marzipan heist of '85,\" remarks Sergeant Wise."; : print "\"Is anything the matter, Jimmy?\" asks Chief Broom, noticing her junior colleague hopping from foot to foot.\n\"No Ma'am,\" he says, in a strained voice, \"I mean...it's just that...\"\n\"I think he needs the loo,\" chips in Sergeant Wise, kindly. \n\"You silly boy!\" tuts Chief Broom, \"didn't you go before you left?\"\nHe shakes his head sheepishly. Broom sighs. \"Alright Jimmy,\" she points at the museum door, \"in there and be quick about it. And try not to contaminate any evidence!\" He nips inside and comes back a moment later, looking relieved."; : print "\"Perhaps we should call the dog unit in Ma'am?\" suggests Sergeant Wise. \"They might be able to sniff out some clues.\"\n\"Thank you Wise, but I hardly think we need dogs to help us solve this case,\" says Broom, dismissively."; : print "\"I do wish I'd worn thicker pyjamas!\" says Ambleside, shivering in his flimsy nightwear. \"But at least I have my cosiest slippers on!\""; : print "\"We have to get the treasure back!\" cries Ambleside, \"You don't understand - those things are priceless!\""; : print "\"To think,\" says Ambleside, mournfully, \"that those things had been quite safe, buried in the earth for all those centuries before I unearthed them. And now this! Why, I almost feel responsible!\"\n\"You really mustn't blame yourself, Sir,\" says Wise, giving him a consoling pat on the arm."; on_exhausted { : print "The police officers chat to one another in police-speak while Professor Ambleside looks on impatiently."; } } } } : if (parent_of "handclap_harry"=="next_to_weir"||parent_of "handclap_harry"=="east_river"||parent_of "handclap_harry"=="middle_river"||parent_of "handclap_harry"=="north_river"||parent_of "handclap_harry"=="south_river") { : set_true "harry_in_river" ; : if (!is_present "handclap_harry") { : if (is_at "slipway_north"||is_at "slipway_south"||is_at "north_river"||is_at "south_river"||is_at "middle_river"||is_at "riverside"||is_at "by_the_river"||is_at "railings"||is_at "east_river"||is_at "next_to_weir") { : append "I can see Handclap Harry splashing about "; : if (parent_of "handclap_harry"=="next_to_weir") { : append "close to the weir, struggling to avoid going over!"; } : else_if (parent_of "handclap_harry"=="east_river") { : append "in the east river."; } : else_if (parent_of "handclap_harry"=="middle_river") { : append "in the middle of the river."; } : else_if (parent_of "handclap_harry"=="north_river") { : append "in the north river."; } : else_if (parent_of "handclap_harry"=="south_river") { : append "in the south river."; } : print " He's calling out for help!"; } } : else { : print "Handclap Harry is here shouting and splashing around. Don't think he can swim!"; } : if (is_at "railings") { : if (is_present "chief_broom") { : if (custard_in_river||peering>0) { : print "All the people are pressed up against the railings, peering anxiously down into the shadows to try and see what's happening in the black river below."; } : else { : print "Chief Broom, Sergeant wise, Constable Oddcrisp and Professor Ambleside are standing by the railings, all arguing with one another about who should jump into the river, while poor Handclap Harry thrashes about and tries to keep afloat in the black water below."; : cycle predictable_order = "true" key = "crook_in_river" max_loops = "1" { : print "\"Shouldn't we call for backup Chief?\" say Sergeant Wise. \"You know - from someone who can actually swim?\""; : print "\"Oh no, my Mum's going to kill me if I end up in there!\" says Constable Oddcrisp, tentatively removing one shoe and then putting it back on again."; : print "\"Have you known Harry long, Ma'am?\" asks Sergeant Wise, curiously.\n\"Too long,\" replies Chief Broom shortly, and starts writing something in her notebook."; : print "The Professor makes tentative moves to remove his pyjama bottoms before jumping in the river.\n\"Stop that at once Sir!\" says Chief Broom. \"This is no time for a VIP to remove their trousers.\""; : print "\"Can't you nitwits make up your mind to save that drowning man?\" shouts Ambleside.\n\"I don't think there's any need for that sort of language,\" reproves Chief Broom, looking extra-serious."; : print "\"We must save that man!\" cries Professor Ambleside."; : print "\"Well, we certainly can't let the Professor jump in there,\" says Sergeant Wise. \"He's a national treasure! Well...\" she considers for a second, \"a local treasure at least.\""; : print "Constable Oddcrisp undoes one button of his shirt and then does it up again."; : print "Chief Broom nods seriously and writes things in her notebook."; } } } } } : if (is_at "old_gaol_room") { : if (is_present "professor_ambleside") { : if (is_carried "ancient_collar") { : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "As I pull the ancient Romano-British dog collar out of the fishing creel, there are gasps of amazement from everyone."; : print "\"Cor!\" says Constable Oddcrisp."; : print "\"Blimey!\" says Handclap Harry."; : print "\"Crikey!\" says Sergeant Wise"; : print "\"Great heavens!\" says Professor Ambleside."; : print "\"What is happening, Sue?\" says Chief Broom, with a stern and serious nod."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Professor Ambleside steps towards me, reaches out his hand, and then hesitates. \"May I?\" he asks, politely."; : print "\"Of course!\" I bark, dropping the collar in front of him."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "The Professor picks it up and turns in over in his hands, peering at it very closely. \"I can scarcely believe it,\" he says quietly, the gleaming jewels casting little splotches of coloured light across his face, \"surely it must be the replica?\""; : print "He takes one more close look at it and then, to further gasps from everyone, puts it in his mouth and bites down hard. \"Yes!\" he says, as best he can with the collar between his teeth, \"yes it is real gold!\" He takes it out of his mouth and grins in delight, \"It's the genuine article! The original Romano-British dog collar!\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"But that must mean...\" says Chief Broom, slowly."; : print "\"That it was the replica that was stolen by this scoundrel!\" Ambleside waves a finger at Handclap Harry, who looks a bit offended."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "\"Flipping waste of time that was then, weren't it?\" says Harry, looking more forlorn and wet than ever. \"None of it was worth anything anyway! I should have stayed at home and watched Coronation Street like my wife said.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"There'll be plenty of time for that where you're going,\" says Chief Broom, looking very serious and nodding, but unable to disguise her air of smug satisfaction, \"back to The Scrubs. They'll have been missing you, Harry. I expect they've kept your cell warm.\""; : print "\"It wasn't just me you know! Merve and Keith was in on it too!\""; : print "\"We'll soon pick them up Harry, don't worry about that. There aren't that many places to hide in Little Pottlington and it's Sunday today so there'll be no bus until 10am - and we'll have the bus stop covered. There's no escaping the long arm of the law.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Constable Oddcrisp looks at his arm curiously. \"Is that what I've got?\" he whispers to Sergeant Wise."; : print "\"No Jimmy,\" she whispers back, \"it's just the way your jacket is cut.\" And she gives him a reassuring smile."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"But what I don't understand,\" Professor Ambleside interrupts, \"is how the collars became switched in the first place? The real collar was certainly in the display cabinet this morning - I made quite sure of that myself. So how on earth did the replica end up in there? And who on earth hid the real one in that fishing creel?\" He stares at the sad-eyed waxwork fisherman as though he had something to do with it, but the sad-eyed waxwork fisherman just stares back at him blankly."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "\"Perhaps it was the dog, sir?\" says Constable Oddcrisp. \"He knew where it was. Perhaps he put it in there in the first place?\""; : print "\"What, and unlocked the combination lock on the display cabinet and switched the collars as well?\" Ambleside begins to chuckle. \"I hardly think that's likely, young man. Do you?\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Well...,\" says begins Constable Oddcrisp, as Sergeant Wise fails to suppress a snigger. \"I suppose, when you put it that way...\" and he start to laugh too, which sets off Wise even more. Ambleside joins in and even Handclap Harry can't help but see the funny side and starts to titter too. In a short while, all the people are laughing hysterically, tears rolling down their cheeks, and slapping each other on the back with mirth. All except for Chief Broom, who looks confused and says, \"Sue, what is going on?\""; : print "\"Oh, nothing to worry about Ma'am,\" gasps Sergeant Wise, \"just...so funny...that's all.\" And she carries on laughing."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : if (i_am_mustard) { : print "\"What's the matter with them all?\" asks Custard."; } : else { : print "\"What's the matter with them all?\" asks Mustard."; } : print "\"Who knows?\" I say, \"Probably just nerves. You know people - always find it hard to express themselves.\""; : print "\"But, they really don't believe it was us? That saved the day by switching the collars?\""; : print "\"They do, but they won't let themselves believe it because they can't imagine anyone doing anything so sensible and clever. Not very bright really, are they? We're best off being dogs, if you ask me.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "\"You must all come...\" wheezes Professor Ambleside, heaving with mirth, \"you must all come to see me at the British Museum, as my VIP guests. Tour the Fellows' lounge. Visit the tea room. Tea and scones are on me! Even - even you Harry!\" and he slaps Harry on the back so hard that he almost falls over. \"That is...\" He pauses for a moment, barely able to suppress the giggles. \"That is, if they'll let you out for the day!\" And he erupts into bellowing laughter once more."; : print "\"Oh yes,\" chuckles Harry, \"let me out for the day. Very good Professor, very good.\"" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : if (i_am_mustard) { : print "\"You know, Mustard,\" says Custard, wagging his tail and barking, just to join in with the others, \"that really was a big adventure!\""; : print "\"It really was!\" I say. \"The biggest, I reckon, I've ever had.\""; : print "Custard glances at the people, still preoccupied with laughing hysterically at one another.\n \"But is it time to go?\""; : print "\"I think so. Come on - let's leave them to it.\""; : print "And together we slip away without any of them even noticing."; } : else { : print "\"You see, Custard,\" says Mustard, wagging his tail and barking, just to join in with the others, \"that really was a big adventure, wasn't it?\""; : print "\"It really was!\" I say. \"Definitely the biggest I've ever had.\""; : print "Mustard glances at the people, still preoccupied with laughing hysterically at one another.\n\"But is it time to go?\""; : print "\"I think so. Come on - let's leave them to it.\""; : print "And together we slip away without any of them even noticing."; } :press_any_key; : if (pe) { : print "[[Press enter]]"; } : clear_screen; : pause "1000" ; : print "\n\n\n\n\n\n\n\n\n\n\n\n\n^c^A few weeks later..."; : pause "2000" ; : clear_screen; : print "Here I am, dozing on the sofa. I'm having a lovely dream about burying a bone in the garden and then digging it up again, only to find it's now two bones and then I bury them both and dig them up again, and there are four bones - and pretty soon, the whole garden is full of bones! And then Pru's there, nattering away on her phone to Gerry, telling her about this bone-problem we've got in the back garden... and then I roll over and wake up, and Pru is there next to me, her laptop on the coffee table, really talking to someone on the phone."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Yes - number 24,\" she's saying, \"green front door. You can't miss it. Okay, see you then!\" and she hangs up and carries on typing away.\nThings have settled down a bit after all that business with the Pottlington Hoard. \'CLEVER DOGS FOIL MUSEUM HEIST\' said the headline in the local paper, and they even sent a reporter round to talk to Pru about it. <^i^He's just an ordinary dog - I would never have imagined he'd be clever enough to stop a robbery. I'm so proud of my little Mustard!> it said, although I'm not sure that's really what she told them."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Anyway, things are back to normal now and it's nice. But I can't help missing the excitement of it all just a little bit - and I can't help missing Custard, a lot."; : if (pe) { : print "[[Press enter]]"; } : print "Poor Custard. I brought him back with me and Pru was nice to him - after she'd finished being furious with me. But she insisted on trying to find his owner - said they'd be worried about him and it wasn't fair to keep him. Kenny never made any effort to claim him, of course - he was glad to be rid of him, I think - and so eventually Custard was sent off to an animal shelter to be rehomed. I understood, really - the house is too small and poor old Pru has a hard enough time coping with just me, never mind a great big lump like Custard as well. So we said goodbye and promised to try and see each other soon, somehow or another...but I can't help pining for him and, I reckon he's pining for me too."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "The doorbell rings. \"Aha, she found us,\" says Pru, \"my new client. I'm doing her living room. You will be a good boy, won't you Mustard,\" and she fondles my ears. As if I'm never not! \"I think you'll like her, and she's bringing her daughter and their dog along too, so you'll have plenty to keep you occupied while we're having our consultation.\"" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "My ears prick up at that. I miss my old friend but I'm always happy to make a new one. Pru goes to open the door. I hear a murmur of voice in the doorway, and then a scrabble of claws on the hallway floor - and I've barely caught a whiff of something that seems a bit familiar when a big dog bursts through the door, leaps on the sofa, and starts jumping on me and barking and licking me all over."; :press_any_key; : if (pe) { : print "[[Press enter]]"; } : print "\"Mustard!\" he says, \"It's me! Custard! I thought I'd never see you again!\"\nI manage to fight him off long enough to say, \"Custard! Custard? But...but what's happened to you?\" Because he smells and sounds just the same, but he doesn't look a lot like the Custard I used to know. The huge, shaggy fleece has been shaved off, except just above the feet and at the end of the tail, where there are little islands of frizzy hair, and there's a fluffy mass of curls that sits like a little cloud on top of his head."; :press_any_key; : if (pe) { : print "[[Press enter]]"; } : print "\"Oh, this?\" says Custard, proudly. \"This is my new haircut. It turns out I'm a poodle! Well, half poodle anyway.\"\n\"And the other half?\"\n\"We haven't quite worked that out yet. But listen, my new owners think...\""; :press_any_key; : if (pe) { : print "[[Press enter]]"; } : print "But just at that moment, Pru comes in, accompanied by a little girl and her Mum. I bark in surprise. \"It's...\" I start to say. \n \"Maya!\" finishes Custard. She laughs and starts to pet us both, while her Mum says \"Oh, get him off the furniture Maya. I am sorry Pru.\""; :press_any_key; : if (pe) { : print "[[Press enter]]"; } : clear_screen; :print "\n\"Oh don't worry,\" says Pru, although really, she's always fussing about me scrabbling around on there and spoiling the fabric, \"it looks like those two are going to be friends. How old is he?\"\n\"We're not quite sure,\" says Maya's Mum. \"He's a rescue, you see. From the animal shelter. Maya has always so wanted a dog but we've never quite found the right one before. And then we saw Trifle, and just fell in love with him...\"" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Trifle?!\" I say to Custard, and he looks embarrassed.\n\"Maya,\" says her Mum, \"Why don't you take Mrs Rockerfella's dog out for a little walk with Trifle, while we have our talk.\"\n\"Oh, really,\" begins Pru, \"You don't have to...\" but both Custard and I interrupt her with a bark and a wag of our tails and she can't help but laugh."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"I don't think we have much choice!\" says Maya's Mum, \"and besides, Maya loves dog walking. In fact, since we're not very far away from you, in Endlemen Street, I'm sure Maya would be very happy to come over and walk Mustard with Trifle any time you'd like.\"\n\"Oh yes please!\" says Maya, bursting with excitement, and we follow her out to the hallway. Mustard and Trifle! I can hardly believe it."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Mustard,\" says Custard to me, as Maya clips on our leads and opens the front door, \"is this a happy ending?\"\n\"I think it is,\" I say, \"or maybe a happy beginning.\"\n\"More adventures?\"\n\"There are bound to be!\" And the three of us step through the door and out onto the sunny streets of Little Pottlington."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "^c^THE END"; : set_true "survivor" ; // : clear_screen; // : print_graphic "loading_screen" width = "100" has_bottom_margin = "false" ; : win_game ; } } } : if (is_at "carpark") { : if (!has_not_created "legs_1") { : if (!mustard_collar_speech) { : if (pe) { : print "[[Press enter]]"; } : press_any_key ; : clear_screen; : print "\"Custard!\" I say, frantically, \"Custard, listen! It's...they've...they're going to...we've got to...stop them!\""; : print "\"What's the matter?\" says Custard, \"What happened in there? Calm down and try to tell me slowly.\"" ; : print "I catch my breath and then carry on, \"Crooks! In the restaurant. A gang of them. They're going to rob the museum! Steal all the stuff in the exhibition. Tonight!\""; : if (pe) { : print "[[Press enter]]"; } : press_any_key ; : print "Custard is shocked. \"The exhibition!\" he yelps, \"but not the collar - the ancient Romano-British bejewelled golden dog collar!\""; : print "\"<^i^Especially> the ancient Romano-British bejewelled golden dog collar! They say they're going to sell it - or melt it down!\""; : if (pe) { : print "[[Press enter]]"; } : press_any_key ; : print "Custard is more excited than I've ever seen him, chasing his tail and jumping up and down, his hair wobbling like a jelly. Wealthy restaurant-goers look sideways at the deranged sheep and the curly-tailed little sheep dog yapping at each other in the carpark.\n\"They can't do that!\" says Custard. \"That collar would have been worn by our ancestors, Custardius and Mustardius! It's the heritage of all dog-kind. We have to stop them, Mustard, we have to!\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "I should explain that the most important thing to dogs, after their owners and after their dinners, is their ancestry. A dog doesn't always remember a lot about where he came from - who his mum and his dad were, or where his litter mates ended up - but one thing he knows for sure is that he has relatives all over the world and stretching back in time for hundreds...thousands...tens of thousands...well, for as long as there have been people I reckon there have been dogs and if you go back far enough, we're all brothers and sisters in dogkind. So stealing that golden dog collar - that would be an outrage against all of us and no self-respecting pooch could stand by and let it happen. "; : if (pe) { : print "[[Press enter]]"; } : press_any_key ; : print "\"What can we do?\" yelps Custard, hopping around like a hairy flea. \"Against a gang of crooks! We're just a couple of ordinary dogs.\""; : print "\"Ordinary dogs? We're not ordinary dogs! We're Custard and Mustard - and we're looking for adventure!\""; : print "\"Um, aren't we having one of those already?\" says Custard."; : if (pe) { : print "[[Press enter]]"; } : press_any_key ; : print "\"Nah,\" I say, \"That was just the warm up! <^i^This> is the real adventure - to stop those thieves from robbing the museum. We've got to try. So...are you with me?\""; : print "\"Ummm...\" Custard goes very quiet for a long time. So long, in fact, that I'm beginning to think he might really have fallen asleep. I'm just about to give him a nudge when he comes back to life and says slowly, \"for dog-kind?\""; : if (pe) { : print "[[Press enter]]"; } : press_any_key ; : print "\"For dog-kind,\" I say, solemnly."; : print "\"Ok,\" he replies, \"I'm with you.\""; : print "I bark happily and scamper about like I do when I'm really excited about something. \n\"Great! This is going to be a big adventure! The biggest adventure of all!\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : set_true "mustard_collar_speech" ; : redescribe; } } } } on_post_tick { } on_pre_describe { : if (!mustard_free) { : if (!is_present "lead") { : create "lead"; } } : if (is_present "paper_bin") { : if (!is_present "paper") { : create "paper"; : create "tissues"; } } : if (is_present "crate") { : gosub "update_crate_description" ; } : if (is_present "fishing_creel") { : gosub "update_fishing_creel_description" ; } : if (is_exists "thing") { : create "thing"; } : else_if (is_exists "tail") { : create "tail"; } : if (is_at "north_of_lamp_post"||is_at "south_of_lamp_post"||is_at "west_of_lamp_post"||is_at "east_of_lamp_post") { : if (custard_tied) { : if (!is_exists "custard") { : create "woolly_lump"; } : else { : create "custard"; } } : create "bench_1"; : create "bin_1"; : create "lamp_post"; : create "carton"; : create "grass"; } : if (!is_present "base"&&is_present "top_hat"&&found_tag) { : create "base"; } } on_describe { : if (!nighttime) { : if (ambleside_counter>0&&ambleside_counter<13) { : if (is_at "by_the_bandstand") { : print "There are a few brave souls cowering in the vicinity, and an old lady with an enormous ear-trumpet who keeps leaning forward and yelling 'speak up!', but most of the crowd has retreated to a safe distance from the bandstand."; } : else_if (is_at "south_gardens"||is_at "east_gardens"||is_at "magic_show") { : print "There are crowds of people with their hands clapped over their ears, or with earplugs in, or both, cowering from the noise of Professor Ambleside's speech."; } } : else_if (is_at "by_the_bandstand"||is_at "south_gardens"||is_at "magic_show"&&!is_present "crowd") { : if (has_not_created "lid") { : print "There are crowds of people here, milling around, chatting and generally enjoying themselves in the sunshine."; } : else { : print "There are crowds of people here, milling around, chatting and generally enjoying themselves in the sunshine - many of the grown ups with pints of beer or scrumpy in their hands."; } } : else_if (is_at "east_gardens") { : print "There are crowds of people, browsing the stalls or queuing for food."; } } : if (!done_raft) { : if (parent_of "mustard"=="slipway_south") { : set_true "done_raft" ; } } : if (!seen_top_hat) { : if (is_present "top_hat") { : set_true "seen_top_hat" ; } } : print_graphic "lower_divider_graphic" ; : if (is_at "slipway_south"&&!been_south) { : set_true "been_south" ; } : if (is_present "handclap_harry") { : create "fedora"; } : if (is_just_entered () ) { : if (follow) { : if (parent_of "custard"==previous_location()) { : if (custard_on_skateboard) { : print "Custard skates along behind me."; } : else_if (is_at "on_shelf"&&previous_location ()=="broom_cupboard") { : if (i_am_mustard) { : if (!mustard_climbed_shelf) { : print "I look down and see poor old Custard whining and pacing below me.\n\"Come on Custard,\" I bark down to him, \"you can do it! It's not that high really. Just don't look down...\""; : set_true "mustard_climbed_shelf" ; } : if (parent_of "paper_bin"=="custard") { : print {("Custard watches me doubtfully. He paces around hesitantly and then drops the waste paper bin that he's carrying - it's far too cumbersome to carry while climbing. Then he pauses for a moment before throwing himself at the bottom shelf. After a lot of scrabbing about, he manages to get a paw-hold and in a few moments he's climbed up to join me on the top shelf.")}; : create "paper_bin" target = "broom_cupboard" ; } : else { : print {("Custard watches me doubtfully. He paces around, hesitates for a moment, and then throws himself at the bottom shelf. After a lot of scrabbing about, he manages to get a paw-hold and in a few moments he's climbed up to join me on the top shelf.")}; } : set_true "pleased_to_see_me" ; } } : else_if (is_at "broom_cupboard"&&previous_location()=="on_shelf") { : print "After a few moments, Custard scrambles down to join me."; } : else_if (is_at "old_gaol_room"&&previous_location ()=="duct_2") { : set_true "got_into_old_gaol_room" ; : if (i_am_mustard) { : print "I roll out of the way just in time as a great hairy lump lands with a thud next to me, scattering a colony of stuffed lapwings like skittles. We both get up and shake ourselves.\n\"That was a long way down!\" says Custard. \"Are you all right Mustard?\"\nI have a quick check to make sure I'm still in one piece. \"I'm fine. No harm done! Except...\" We both look at the papier-mâché hillock that's now a lot flatter than it was before!"; } : else { : print "I roll out of the way just in time as a Mustard lands with a thud next to me, scattering a colony of stuffed lapwings like skittles. We both get up and shake ourselves.\n\"That was a long way down!\" he says. \"Are you all right Custard?\"\nI have a quick check to make sure I'm still in one piece. \"I'm fine. No harm done! Except...\" We both look at the papier-mâché hillock that's now a lot flatter than it was before!"; } } : else { : print "Custard follows me."; } : create "custard"; } : else_if (parent_of "mustard"==previous_location()) { : if (mustard_on_skateboard) { : print "Mustard skates along behind me."; } : else_if (is_at "on_shelf"&&previous_location ()=="broom_cupboard") { : if (parent_of "paper_bin"=="mustard") { : print "Mustard drops the bin that he's carrying - it's far too cubersome to carry when climbing. Then he scrambles up after me."; : create "paper_bin" target = "broom_cupboard" ; } : else { : print {("Mustard scrambles up after me.")}; } : set_true "pleased_to_see_me" ; } : else_if (is_at "broom_cupboard"&&previous_location()=="on_shelf") { : print "After a few moments, Mustard scrambles down to join me."; } : else_if (is_at "old_gaol_room"&&previous_location ()=="duct_2") { : if (!i_am_mustard) { : print "After a moment, Mustard comes down after me, picks himself up, shakes, and turns round to look at the papier-mâché hillock. It's now a lot flatter than it was before!"; } : else { : print "After a moment, Custard comes down after me, picks himself up, shakes, and turns round to look at the papier-mâché hillock. It's now a lot flatter than it was before!"; } } : else { : print "Mustard follows me."; } : create "mustard"; } } } : if (policemen_follow) { : if (linger()==0) { : print "The police officers and Professor Ambleside follow me, dragging Handclap Harry along with them."; : create "sergeant_wise"; : create "constable_oddcrisp"; : create "chief_broom"; : create "professor_ambleside"; : create "handclap_harry"; : if (is_at "slipway_north"&&previous_location ()=="riverside") { : if (!sn) { : print "\"Back here again?\" says Professor Ambleside, sounding puzzled, \"Are you sure about that, little doggy?\""; : print "\"I suppose this animal really is trying to lead us somewhere sensible?\" asks Chief Broom, seriously."; : print "\"Probably just sniffing around to find where other dogs have peed,\" sniggers Constable Oddcrisp."; : print "\"Well...\" says the Professor, \"It really did seem as though he was trying to tell us something, but, now you put it that way...\""; : print "Sergeant Wise pats Professor Ambleside's arm sympathetically."; : set_true "sn" ; } } : if (is_at "museum_yard"){ : if (!my) { : print "\"Good gracious - the museum again!\" says the Professor. \"I almost hate to be reminded of it. I'm not sure what is to be achieved by coming back here now that the treasure has gone\"."; : set_true "my" ; } } : else_if (is_at "museum_reception"||is_at "museum_vestibule"||is_at "corridor") { : print "\"Heaven knows why they're leading us in here!\" says the Professor."; } : else_if (is_at "exhibition_room") { : if (!er) { : print "The Professor gasps in dismay. \"Just look at the state of the place! Goodness knows what Janet Makepeace will say when she sees this.\""; : print "\"I'm so sorry for the inconvenience,\" says Harry, sarcastically. \"If only you'd left it all unlocked I wouldn't have had to make such a mess, would I?\""; : set_true "er" ; } } : else_if (is_at "old_gaol_room") { : if (!dr) { : print "\"Well, at least nothing in here has been touched,\" says Professor Ambleside."; : print "Harry looks nervous and shivers suddenly."; : print "\"What's the matter with you Harry?\" says Chief Broom. \"Guilty conscience got the better of you?\""; : print "\"Nah,\" says Harry, looking at the sad-eyed fisherman and trying to clap his hand, but failing because of the handcuffs, \"I just I don't like the way that waxwork's staring at me.\""; : set_true "dr" ; } } : else_if (is_at "bottom_staircase") { : if (!bs) { : print "\"Down here?\" says Sergeant Wise, giving me an affectionate pat on the head, \"are you sure? What do you expect us to find in the basement?"; : print "\"Perhaps he smelt a rat?\" says Jimmy."; : print "\"A rat!\" cries Ambleside. \"There are no rats in my museum, young man!\""; : print "\"Except the one standing next to me.\" Says Chief Broom, nodding at Handclap Harry who glowers back at her."; : set_true "bs" ; } } : else_if (is_at "outside_pub") { : if (!op) { : print "\"Goodness me!\" says Ambleside, \"The Marrowbone and Cleaver! I hadn't realised the place still existed. I remember having a half of mild in there, back in 1958. It was a little rough around the edges, I recall. But I expect things have improved since then.\""; : print "\"If anything,\" nods Chief Broom, seriously, \"the edges have got rougher.\""; : set_true "op" ; } } : else_if (is_at "back_of_chipshop") { : if (!bc) { : print "\"What, here?\" says Professor Ambleside, uncertainly, \"Round the back of the chip shop? I'm not sure...\"\nHe's interrupted by a shrill scream from Constable Oddcrisp, who seems to have walked straight into the washing line and become entangled in Harry Spratt's underpants. \"A bat! A bat!!\" he yells, fighting against the flapping fabric, \"Get it off me! They get tangled in your hair and bite your ears off! My Uncle Derek says so!\""; : print "\"Calm down, Jimmy,\" says Sergeant wise, reassuringly, \"There's nothing to worry about. Just a pair of old Y-fronts, you silly boy!\" She untangles Constable Oddcrisp from Harry Spratt's underpants, and is just about to peg them back on the line when Chief Broom interrupts her."; : print "\"Just one moment, Sue. I think we'd better hang on to those. They might be valuable evidence.\" And she takes them off Sergeant Wise and puts them in her pocket."; : set_true "pants_gone" ; : destroy "underpants"; : set_true "bc" ; } } : else_if (is_at "broom_cupboard") { : if (!br) { : print "We all squeeze into the little cupboard, picking our way over the scattered toilet rolls and scrubbing brushes. There's a long pause."; : print "\"Sue...\" I hear Jimmy whisper, \"What are we doing in here exactly?\""; : print "\"Flippin' lunatics!\" yells Handclap Harry."; : set_true "br" ; } } : else_if (is_at "zone_gardens") { : print "\"Hockbarrow Gardens?\" says Chief Broom, \"What has that dog brought us here for?\""; } : else { : if (chance (75)) { : cycle predictable_order = "false" key = "dogfollow" max_loops = "1" { : print "\"I wonder if these dogs really do know where they're going?\" mutters the Professor, as he puffs along after us."; : if (true) { : print "\"Oooh, my Mum's going to kill me!\" wails Constable Oddcrisp pitifully, \"I'm not allowed to stay out this late!\""; : print "\"Don't worry,\" says Sergeant Wise kindly, \"I'll phone her as soon as we get back to the station and tell her you're safe and sound.\""; : print "Chief Broom nods and writes 'Wise Phone Jimmy Mum' in her notebook."; } : print "\"Dragging me around after these flipping dogs in the middle of the night, you must be out of your minds!\" snarls Harry."; : print "\"I suppose we're not wasting our time following these dogs around?\" asks Sergeant Wise, with a kindly smile.\n\"They're our only lead, Sue,\" says Chief Broom."; : if (true) { : print "\"I'm dripping wet here!\" moans Harry, leaving a trail of river water behind as he squelches along in his sodden shoes. \"I'll probably catch a cold and drop dead, and then I'll sue you all for extreme cruelty.\""; : print "\"Come off it,\" pipes up Constable Oddcrisp. \"How will you manage to do that if you're dead?\""; : append "\"I'll haunt you all then,\" Harry says nastily to everyone, and then turns to Constable Oddcrisp, \"especially "; : append "<^i^you>, sunshine.\"\n"; : print "Poor Constable Oddcrisp turns white as a sheet."; } : if (true) { : print "\"Lead on, lead on, you clever creatures!\" says Ambleside."; : print "\"He's not right in the head,\" says Harry, \"and neither are you lot for following him.\""; } : if (true) { : print "\"Will there be much more walking?\" says Constable Oddcrisp, \"I've got a bad big toe and my Mum says I need to rest it.\""; : print "\"Not too much longer, Jimmy,\" says Wise, reassuringly."; } : if (true) { : print "A cat appears and crosses our path."; : print "\"Bad luck!\" wails Constable Oddcrisp."; : print "\"Good luck!\" says Chief Broom."; : print "\"Should we start following that instead?\" asks Sergeant Wise."; } : print "\"Just around this corner is it, little doggies?\" Professor Ambleside says hopefully."; } } } } : else { : print "Professor Ambleside and the police officers look at us expectantly, while poor Harry drips gloomily."; } } : if (is_at "outside_chipshop") { : if (chippy_open) { : print "Spratt's Chiperama is open! I can hear sounds of sizzling batter, and delicious smells waft from within."; } } : if (is_at "carpark") { : if (parent_of "mustard"=="restaurant_entrance"||parent_of "mustard"=="in_restaurant") { : print "I whimper and whine, and wonder when Mustard is coming back."; } } : if (is_at "south_gardens") { : if (!has_not_created "lid") { : if (!milesandpenelope) { : if (pe) { : print "[[Press any key]]"; } :press_any_key; : clear_screen; : print "A lady in high-heeled shoes and a very expensive-looking dress totters past on the arm of a man with slicked-back hair and a thin moustache, wearing an immaculate dinner suit."; : print "\"Miles, darling,\" says the lady, her diamond-earrings glittering in the sunshine, \"are you sure this is the right place? It looks perfectly horrid!\" "; : print "\"I'm sorry Penelope,\" he replies, looking around with obvious distaste, \"Phillips must have taken a wrong turn. The restaurant must be on the other side of the river. This looks like some sort of yokel's jamboree! I shall fire the man as soon as we get back to the car.\""; : print "\"But not before he's driven us to the restaurant, darling.\""; : print "\"As soon as he has driven us to the restaurant, Penelope.\""; : print "\"But then,\" says Penelope, \"who will drive us back home again after we've finished?\""; : print "\"As soon as he has driven us to the restaurant, waited outside for us, and then driven us back home again - then, Penelope, I shall fire him.\""; : print "\"Very good darling,\" says Penelope, and they hurry away."; : print "Restaurant? I like the sound of that!"; : set_true "milesandpenelope" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } } : if (is_at "changing_room") { : if (is_present "paraders") { : print "This place is now crowded with people getting ready for the parade."; } } : if (is_at "backstage"&&is_exists "crowd") { : print "I watch the magic show from the back of the stage."; } : if (is_at "magic_show"&&is_exists "crowd") { : if (!is_exists "tp") { :print "There's quite a crowd here, waiting for the next performance."; } : else { :print "There's quite a crowd here, watching the show avidly."; } } : if (is_at "village_hall") { : if (!has_not_created "skaters") { : if (!skate_speech) { : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "There's a gang of skate kids here, standing around with their boards and listening to their leader talking. He's the spotty teenager that puts the Pottlington Herald through our letterbox once a week while I bark and jump at the door and make a right old racket. I just can't help myself!"; : print "\"Listen you lot,\" he's saying, \"this is important! It's the skate-off next week and they'll wipe the floor with us if we don't get it together by then.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"What do you mean?\" says a smaller kid, clutching his board to his chest like a shield. \"We're all right, aren't we?\""; : print "\"All right?\" says the paperboy, \"All right! We're rubbish! Well, you lot are, anyway.\""; : print "\"Let's see you do better then!\" shouts a kid with frizzy ginger hair bursting out from under a beanie cap."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"I'll show you,\" says the paperboy, \"that's exactly why we're here. Now listen - the Pottlington Slashers have got to win this one. Got to. We can't let the Much Micklington Slayers beat us. Not after last time. I'd never be able to show my face in Micklington ever again, and I have to go there with my mum to do the shopping every Saturday, so that'd be, you know, <^i^really> inconvenient.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Gnarly\" agrees another kid, with his hat pulled down so far over his face that only his mouth and chin are visible." ; : print "\"But how are we going to beat them?\" says the smaller kid, \"They're really good!\""; : print "\"Yeah, but we've got the advantage. We've got what they haven't.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "\"What's that then?\" asks the fizzy ginger-haired kid."; : print "\"Well, the best skater this side of Thorpe Monkton for one.\""; : print "\"Who's that then?\""; : print "\"Me, you idiot!\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"But,\" pipes up the small kid, \"what about that kid from the Slayers that beat you last time?\""; : print "\"Micklington's the other side of Thorpe Monkton, you muppet. Anyway,\" he continues quickly, gesturing at the ramps and railings of the town hall carpark, \"we've also got this state-of-the-art skate park, generously provided by the parish council.\""; : print "Just at that moment a window in the town hall opens and an old bloke pokes his head out and shouts. \"Get out of it, the lot of you! No ball games, no skating. Can't you read?\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Push off grandad!\" shouts the kid with his hat over his face."; : print "\"Bobby Garland?\" says the old bloke, \"I'll tell your Nan what you've been up to next time I see her!\" And he slams the window. The kid groans and pulls his hat even further over his eyes."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"You lot call yourself skaters but you don't don't know your boardslide from your backside,\" carries on the paperboy, \"so I'm going to show you, <^i^again>. And pay attention this time.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "\"First,\" he says, \"the <^b^flat>\". He gets on his board and kicks off. \"Sounds boring, but a great place to do tricks like the <^b^ollie>,\" and he jumps up in the air while his skateboard seems to stick to the bottom of his feet, then lands neatly and carries on, \"the <^b^shuvit>\", and he jumps and spins the board around while keeping one foot on it, \"and the <^b^kickflip>,\" and he jumps again, making the board do a complete flip in the air, and then landing neatly on it. There's a smattering of applause from the rest of the gang."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Next,\" he says, \"the <^b^50-50> - just right for this bit of <^b^kerb> here.\" And he jumps up and slides along the kerb on two wheels, the other half of the board hanging over the edge. \"That's amazing, man!\" says one of the gang."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Then,\" he continues, \"we've got this <^b^railing>. And the perfect trick for that is the <^b^boardslide>,\" and he jumps and flips his board sideways, landing on the railing and sliding smoothly along it, before dropping off the end and carrying on."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"And finally,\" he says, still skating along, \"we come to the <^b^bench>. And the best thing for that is a <^b^hippie jump>,\" and just as he approaches the bench he jumps up and over it as his board slides under, landing neatly on top of it as it comes out of the other side.\n\"Awesome\" shouts one of the gang."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"And now to finish off,\" says the paperboy, looking very pleased with himself, \"something really special to blow them away. How about a <^b^Driffield Tuesday>,\" and he does an amazing flipping, spinning trick to gasps of wonder from the gang, \"a <^b^Flippant Tony>,\" and he turns a somersault, and does a handstand on the board as he lands. The gang can't believe their eyes! \"Or a <^b^Hotfinger Buffle>.\" And he jumps, sits on the board in mid air and pretends to play the piano. The gang goes crazy as he lands and skids to a halt in front of them."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "\"Now,\" he says, \"your turn. I hope you can remember all of that. Just make sure you do the right trick at the right time and <^b^do it only once - no repeats>. Those are the rules. If we get this right they won't know what's hit them. Now - get practising!\""; : print "The crowd of skate kids, all fired-up and excited, get on their boards and start scooting around the carpark and practising their tricks."; : set_true "skate_speech" ; : print "[[Type TRICKS if you need a reminder of all those skate tricks!]]"; : create "mustard"; : create "custard"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } } : if (is_at "slipway_north") { : if (is_present "professor_ambleside") { : if (!policemen_follow) { : print "Professor Ambleside wrings his hands and moans in despair while the police offices try to comfort him."; } } } : if (!i_am_mustard) { : if (is_at "slipway_north"&&previous_location () =="north_river"||is_at "slipway_south"&&previous_location () =="south_river") { : print "I let fly a cascade of droplets as I shake the river water out of my shaggy fleece."; : set_false "shaker" ; } } : if (i_am_mustard) { : if (mustard_on_skateboard) { : print "I'm on the skateboard."; } } : else_if (custard_on_skateboard) { : print "I'm on the skateboard."; } : if (is_carried "handclap_harry") { : print "I've got Handclap Harry by the collar!"; : execute_one_at_random { : print "\"Get off me, you horrible mutt!\" he snarls at me."; : print "\"Help! I'm being eaten alive by a mad dog!\" he yells to nobody in particular."; : print "\"Oh god, a mad dog trying to bite me head off,\" he wails, \"That's all I need!"; : print "\"Let me go you stinking animal!\" he shouts at me."; : print "\"Ow! Be careful!\" he yells at me, \"This shirt is Saville Row!\""; : print "\"Help! Help!\" he shouts, \"There's a dog attacking me!\""; } : print "Now there's gratitude for you!"; } : if (custard_tied&&is_at "outside_pub"&&is_present "custard") { : print "Custard is straining on the end of his bit of string, pulling it as taut as a piano wire!"; } : if (is_at "outside_newsagent"&&!is_present "pru") { : if (i_am_mustard&&!prus_gone) { : print "There's no sign of Pru, Tadcaster or Dave. They must have finished arguing with each other and gone home. Poor Pru - she'll be worried about me. I feel a bit guilty, but a dog's got to do what a dog's got to do. I'll make it up to her."; : set_true "prus_gone" ; } } : if (is_exists "custard"&&custard_tied) { : if (is_just_entered ()) { : if (is_at "north_of_lamp_post") { : if (previous_location()=="west_of_lamp_post") { : if (tightness==6) { : print "Custard tries to follow me but he can't - his lead is all wrapped up around the lamp post and he can't go any further."; : done ; } : print "As I move around the lamp post, Custard runs after me."; : if (tightness==0) { : set_true "clockwise_tightening" ; } : if (clockwise_tightening) { : increment "tightness" ; : print "The string tightens as it winds around the lamp post."; : done ; } : else { : decrement "tightness" ; : print "The string loosens as it unwinds from around the lamp post."; } } : else_if (previous_location()=="east_of_lamp_post") { : if (clockwise_tightening) { : print "As I move around the lamp post, Custard runs after me."; : decrement "tightness" ; : print "The string grows longer as it unwinds from around the lamp post."; } : else { : if (tightness==6) { : if (previous_location ()!="crupgirdle_street") { : print "Custard tries to follow me but he can't - his lead is all wrapped up around the lamp post and he can't go any further."; } } : else { : print "As I move around the lamp post, Custard runs after me."; : increment "tightness" ; : print "The string becomes shorter as it winds around the lamp post."; } } } } : if (is_at "east_of_lamp_post") { : if (tightness==6) { : if (previous_location()!="crupgirdle_street") { : print "Custard tries to follow me but he can't - his lead is all wrapped up around the lamp post and he can't go any further."; } : done ; } : print "As I move around the lamp post, Custard runs after me."; : if (previous_location()=="north_of_lamp_post") { : if (clockwise_tightening) { : increment "tightness" ; : print "The string becomes shorter as it winds around the lamp post."; } : else { : decrement "tightness" ; : print "The string grows longer as it unwinds from around the lamp post."; } } : else_if (previous_location()=="south_of_lamp_post") { : if (clockwise_tightening) { : decrement "tightness" ; : print "The string grows longer as it unwinds from around the lamp post."; } : else { : increment "tightness" ; : print "The string becomes shorter as it winds around the lamp post."; } } } : if (is_at "south_of_lamp_post") { : if (previous_location()=="west_of_lamp_post") { : if (tightness==6) { : print "Custard tries to follow me but he can't - his lead is all wrapped up around the lamp post and he can't go any further."; : done ; } : print "As I move around the lamp post, Custard runs after me."; : if (tightness==0) { : set_false "clockwise_tightening" ; } : if (clockwise_tightening) { : decrement "tightness" ; : print "The string grows longer as it unwinds from around the lamp post."; } : else { : increment "tightness" ; : print "The string becomes shorter as it winds around the lamp post."; } } : else_if (previous_location()=="east_of_lamp_post") { : if (clockwise_tightening) { : if (tightness==6) { : print "Custard tries to follow me but he can't - his lead is all wrapped up around the lamp post and he can't go any further."; : done ; } : print "As I move around the lamp post, Custard runs after me."; : increment "tightness" ; : print "The string becomes shorter as it winds around the lamp post."; } : else { : print "As I move around the lamp post, Custard runs after me."; : decrement "tightness" ; : print "The string grows longer as it unwinds from around the lamp post."; } } } : if (is_at "west_of_lamp_post") { : if (tightness==6) { : if (previous_location()!="outside_pub") { : print "Custard tries to follow me but he can't - his lead is all wrapped up around the lamp post and he can't go any further."; } : done ; } : print "As I move around the lamp post, Custard runs after me."; : if (previous_location()=="north_of_lamp_post") { : if (clockwise_tightening) { : decrement "tightness" ; : print "The string grows longer as it unwinds from around the lamp post."; } : else { : increment "tightness" ; : print "The string becomes shorter as it winds around the lamp post."; } } : else_if (previous_location()=="south_of_lamp_post") { : if (clockwise_tightening) { : if (tightness==6) { : print "Custard tries to follow me but he can't - his lead is all wrapped up around the lamp post and he can't go any further."; : done ; } : increment "tightness" ; : print "The string becomes shorter as it winds around the lamp post."; } : else { : decrement "tightness" ; : print "The string grows longer as it unwinds from around the lamp post."; } } } } } : else_if (is_at "slipway_north") { : if (!has_not_created "legs_1") { : if (is_present "lid"&&is_present "mustard") { : print "A sudden swell catches the wooden lid and carries it off and away down the river."; : destroy "lid"; } } } : if (is_at "by_the_bandstand") { : if (!nighttime) { : if (has_not_created "bus") { : print "Mr Czerwinski has his sleeves rolled up and is fiddling around at the back of some gigantic speakers. He stands up, takes his cap off and mops his brow.\n\"Useless!\" he says. \"I never get it working. If only I had my tools I could fix it, no problem - but where are they? I thought I brought them with me, but then I get off bus and pfft - they vanish! What am I without my bag of tricks?\" And he shakes his head and looks again into the back of the speaker."; : create "bus" target = "gardens_entrance" ; } : else_if (is_present "professor_ambleside") { : if (!ambleside_finish_speech) { : print "Professor Ambleside is here, speaking into a microphone."; } : else { : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "Professor Ambleside is here, wearing a toga and a laurel wreath, and speaking through a megaphone, \"...Mrs Tillsdale's special meringues. Oh, but now it's time for the big event - the Little Pottlington parade! This year, we have a Romano-British theme - inspired, of course, by the unique and wonderful Roman artefacts found right here in Little Pottlington and now on display for the first time in our humble local museum. I do hope some of you will go along after the parade to enjoy the exhibition. But now, as you can see,\" he indicates the crowd of costumed people milling around beneath the bandstand, \"our ready and eager paraders are all here, dressed up as Roman servants, senators, merchants, princes, princesses, emperors, empresses, soldiers, centurions and, erm...\" he notices one small child dressed as Spider-Man, \"...other things, all ready to march about this fine Roman town beneath the banner of Queen Maya.\" One of the paraders waves a painted cardboard standard stuck on the end of a broom handle."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"And here is our parade-queen now,\" says Ambleside as we emerge from the big white tent, \"along with her noble hound Scylax. A big cheer from everyone, please, to see them on their way!\""; : print "The crowd claps and the paraders part as Maya walks proudly between them, pulling me along behind her. I stay still as a statue while a few of the children ruffle my hair as I go by."; : print "\"And now,\" says Ambleside, \"without further ado, let us cheer our paraders on their way! And everyone is of course, welcome to follow in our wake.\" He puts the megaphone down, takes his place at the front of the parade, and heads off towards the entrance to the gardens. Maya follows, pulling me along behind her and the rest of the paraders traipse after us, followed by a crowd of happy fête-goers. Out of the corner of my eye, I see Mustard following us."; : goto "gardens_entrance"; : create "paraders"; : create "maya"; : create "professor_ambleside"; : create "mustard"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } } } : else_if (is_at "gardens_entrance") { : if (is_present "bus") { : print "I see the number 52b bus just pulling away from the entrance to the gardens. It disappears east down Hoddle Street."; : create "bus"target = "knockbarrel_corner" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (!has_not_created "legs_1") { : if (has_not_created "skaters") { : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "A little purple car pulls up outside the gardens. The door opens and a tall, lanky youth clutching a skateboard struggles out and unfolds himsef onto the pavement like a stick insect emerging from its cocoon."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"...at 4 o'clock,\" says a voice from inside the car, \"and remember my athlete's foot powder, and the macaroons. And, oh - you're not taking that flipping skateboard with you? If I find out you've been messing around with that lot outside the town hall again, I'll...\""; : print "\"Mum!\" says the lanky youth, \"stop going on at me!\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Don't you back chat me Donovan!\" the voice continues, \"or it'll be an early bedtime for you.\""; : print "The youth mutters something under his breath and starts to walk away, before his mother shrills, \"Donovan!\" and that stops him in his tracks. She gets out of the car, leaving the engine running, and rushes over to him."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"There,\" she says, licking a handkerchief and dabbing her son's face with it, \"that's better. I can't let you walk around town with toothpaste on your face, can I? What will people think? Now, a kiss for mummy please.\""; : print "\"God, you are <^i^sooo> embarrassing!\" says the youth. He gives her a peck on the cheek, gets on his skateboard and scoots away eastwards. His mother gets back in the car and drives off, yelling \"athlete's foot powder!\" through the window as she zooms by."; : create "skaters" target = "village_hall"; : create "paperboy" target = "village_hall" ; : create "skateboard"target = "village_hall" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : if (is_present "paraders") { : print "\"This way, my loyal Romans!\" cries Ambleside, heading off east towards Knockbarrel corner. Maya follows, pulling me along by the lead, and the rest of the paraders come after, laughing and waving at the people lining the road to watch the parade pass by. "; : goto "knockbarrel_corner"; : create "paraders"; : create "maya"; : create "professor_ambleside"; : create "mustard"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (is_at "knockbarrel_corner") { : if (is_present "bus") { : print "The bus carries on and disappears up the hill."; : create "bus"target = "pinchmaid_hill" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_present "paraders") { : print "The parade reaches the corner and then heads up the hill. Out of the corner of my eye I catch a glimpse of Mustard following along behind us."; : goto "pinchmaid_hill"; : create "paraders"; : create "maya"; : create "professor_ambleside"; : create "mustard"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_present "handclap_harry"&&!is_present "sergeant_wise") { : print "\"Where on earth are those dogs going?\" puffs Ambleside from behind us, as we race along Knockbarrel Corner.\n\"It's almost as though they're chasing after something,\" says Sergeant Wise as she runs to catch up."; : print "Just before the people arrive, we see Handclap Harry running away to the south."; : create "handclap_harry" target = "railings"; : create "sergeant_wise"; : create "constable_oddcrisp"; : create "chief_broom"; : create "professor_ambleside"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (is_at "railings") { : if (is_present "handclap_harry"&&!harry_arrested) { : print "We dash southwards and find ourselves by the river, just behind Harry, who runs up to the railings and, finding himself trapped, spins around, snarls at us both and claps his hands together noisily. A moment later, the police officers and Professor Ambleside arrive on the scene."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "\"Handclap Harry!\" exclaims Chief Broom, \"I should have know you'd be behind this!"; : print "\"Clarissa!\" says Harry. \"Trust your ugly mug to turn up.\"" ; : print "\"Charming as ever, Harry. Wormwood Scrubs hasn't taught you better manners, I see.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "There's an awkward pause as the two glare at each other in silence and we all shuffle uncomfortably and look at our feet, like we've walked in on a married couple having an argument. Eventually, Constable Oddcrisp blurts out."; : print "\"You're under arrest! Hand over the loot. Sir, please.\""; : print "\"Never!\" cries Harry, clutching the bulging swag sack more tightly than ever."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Now, be sensible Harry,\" says Sergeant Wise, \"and come quietly. There's no way out for you now.\""; : print "\"Ain't there?\" he yells, wildly, \"ain't there? Well, just watch this!\" And he jumps up on top of the railings, claps his hands together quickly, twice, and leaps over the edge."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "There's a very loud splash, and we all rush up to the railings and peer down to see Harry thrashing about in the icy, dark river below."; : print "\"You'll never take me...\" he yells up at us, spluttering and coughing as his head keeps disappearing under the water, \"..take me, al...ali...alive...hel...help! HELP! I can't swim! I CAN'T SWIM!\"" ; : print "Poor Harry is splashing and thrashing for all he's worth but it's only making things worse. The big, bulging sack of loot is dragging him down and he can barely keep afloat. And, as if that wasn't bad enough, he's been carried with the current towards the edge of the weir!"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : if (true) { : print "\"Harry, you idiot!\" shouts Chief Broom, \"get out of that river at once and give yourself up!\""; : print "\"I don't think he can swim, Ma'am,\" says Sergeant Wise, helpfully."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Oddcrisp!\" says Broom, \"Jump into that river at once and save Handclap Harry!\""; : print "\"Me?\" cries Jimmy. \"But I can't! I mean, I'm not allowed to go in the water, because of my glue ear. My mum says so!\""; : print "\"Wise!\" says Broom, \"Jump into that river at once and save Handclap Harry!\""; : print "\"I don't think that would be very wise, Ma'am,\" says Wise, \"because, you see - I can't swim either! I'm so sorry.\" And she smiles apologetically at Chief Broom. \"I think you may have to jump in yourself, Chief.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Chief Broom nods slowly and seriously. \"Perhaps, Sue. But I think I'll need to check the regulations first. I'll just walk back to the station and have a look at them.\""; : print "\"Do you think there's time for that?\" asks Sergeant Wise, helpfully."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Oh, for goodness sake!\" interrupts Professor Ambleside, kicking off his slippers and unbuttoning his pyjamas, \"A man is drowning down there! If you won't save him, then I'll have to do it myself!\""; : print "\"Certainly not,\" says Chief Broom, \"I can't allow a member of the public to risk themselves. This is a police matter. Now, kindly button up your pyjamas before I arrest you for making a nuisance of yourself.\""; } : set_false "chasing_harry" ; : create "handclap_harry" target = "next_to_weir"; : create "sergeant_wise"; : create "constable_oddcrisp"; : create "chief_broom"; : create "professor_ambleside"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (is_at "pinchmaid_hill") { : if (is_present "bus") { : print "The bus carries on up the hill."; : create "bus"target = "elbow_way" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_present "paraders") { : print "We process up the hill, past the crowds lining the sides of the road and people leaning out of the windows along the way, cheering and taking photos of us as we pass by. It's all I can do to stop myself from barking and wagging my tail with all the excitement - but somehow I manage to stay still, just like a stuffed dog. Maya looks at me in a funny sort of way and fondles my ears. "; : goto "elbow_way"; : create "paraders"; : create "maya"; : create "professor_ambleside"; : create "mustard"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_present "handclap_harry"&&!is_present "sergeant_wise") { : print "Everyone runs after us as we head on down the hill.\n\"I think those dogs know something we don't!\" I hear Constable Oddcrisp say, wheezing heavily as he runs to catch up with us." ; : print "I see Handclap Harry again, running off southwards."; : create "handclap_harry" target = "knockbarrel_corner" ; : create "sergeant_wise"; : create "constable_oddcrisp"; : create "chief_broom"; : create "professor_ambleside"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (is_at "elbow_way") { : if (is_present "bus") { : print "The bus pulls away and heads west towards East Street."; : create "bus"target = "east_street" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_present "paraders") { : print "The parade follows Professor Ambleside onto Elbow way, waving to more spectators as we march along towards East Street. A little boy holding onto his Mum's hand points at the fabulous golden dog collar I'm wearing and a toddler up on someone's shoulders laughs and excitedly pats the top of his Dad's head with sticky hands. I catch sight of Mustard weaving in and out of the crowd lining the road. "; : goto "east_street"; : create "paraders"; : create "maya"; : create "professor_ambleside"; : create "mustard"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_present "handclap_harry"&&!is_present "sergeant_wise") { : print "The police and Professor Ambleside follow us both as we rush off eastwards.\n\"Oh my goodness,\" I hear Ambleside puffing behind me, \"I really am getting too old for this sort of excitement!\""; : print "We catch sight of Handclap Harry again, running off southwards."; : create "handclap_harry" target = "pinchmaid_hill" ; : create "sergeant_wise"; : create "constable_oddcrisp"; : create "chief_broom"; : create "professor_ambleside"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (is_at "east_street") { : if (parent_of "replica_collar"=="crate"&&is_exists "crate") { : destroy "crate"; : set_true "crate_gone" ; } : if (is_present "bus") { : print "The bus drives off westwards."; : create "bus"target = "cripplepepper_lane" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_present "paraders") { : print "We turn onto East Street to the sounds of cheers from more crowds who have been waiting for us. They part as we walk through them, all shouting us on and taking pictures and videos of us on their phones. It feels like the most exciting day that Little Pottlington has ever seen! But still I manage to keep frozen and staring straight ahead, even though I'm desperate to..."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Suddenly I hear a familiar bark and I just can't help turning my head to see where it's coming from. I spot Mustard at the top of the alleyway that runs along the side of the Museum."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "\"Come on Custard!\" he calls to me. \"Quick - down here!\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "I hesitate and glance back at Maya - and realise that she's looking straight at me! There's no pretending now - she definitely knows that I'm a real dog. I look at the rest of the paraders; they're all too busy waving and talking to each other and the spectators to have noticed me."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Maya leans down quickly and gives me a kiss on the top of my hairy head, whispering in my ear, \"Go on doggy - better go and find your friend.\""; : print "I give her a little lick goodbye, have a final glance around just to make sure that nobody is looking and then jump off the skateboard and nip off through the crowds. One or two children look at me in surprise as I brush by them with my shaggy hair and golden dog-collar, but most of the grown ups seem too busy taking pictures on their phones to notice."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "As I run down the alley, I take a final peek back at the parade and feel a little lump in my throat as I watch Maya disappear out of sight. I'll miss her!"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : destroy "skateboard"; : set_true "parade_done" ; : set_false "custard_on_skateboard" ; : goto "gander_alley"; : create "mustard"; : destroy "paraders"; : destroy "maya"; : destroy "professor_ambleside"; : redescribe; } : else_if (is_present "handclap_harry"&&!is_present "sergeant_wise") { : print "All the people follow us as we scamper off eastwards.\"Keep up with those dogs!\" I hear Chief Broom say, \"You know, I actually think they're onto something!\""; : print "As we race along the street we catch sight of Handclap Harry running off eastwards."; : create "handclap_harry" target = "elbow_way"; : create "sergeant_wise"; : create "constable_oddcrisp"; : create "chief_broom"; : create "professor_ambleside"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (is_at "cripplepepper_lane") { : if (is_present "bus") { : print "The bus pulls away and drives off west."; : destroy "bus"; : destroy "wheels"; : destroy "doors"; : destroy "wheels"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_present "handclap_harry"&&!is_present "sergeant_wise") { : if (museum_door_open) { : print "\"Quick!\" I hear Chief Broom shout from behind me, \"Follow those dogs! They may be vital witnesses - we can't let them get away! Lock the door Jimmy - we don't want anyone contaminating the crime scene.\""; : set_false "museum_door_open" ; } : else { : print "\"Quick!\" I hear Chief Broom shout from behind me, \"Follow those dogs! They may be vital witnesses - we can't let them get away!\""; } : print "We run through the archway and into Cripplepepper lane, only to catch sight of a familiar figure with a bag over his shoulder, running away to the east."; : if (i_am_mustard) { : print "\"It's Handclap Harry!\" I bark wildly at everyone, although of course only Custard really understands me. \"Quick - we've got to get after him!\""; } : else { : print "\"It's Handclap Harry!\" I bark wildly at everyone, although of course only Mustard really understands me. \"Quick - we've got to get after him!\""; } : print "All the people mill around busily in the way that people do when they're trying to hide that they don't really know what to do next."; : set_true "chasing_harry" ; : create "handclap_harry" target = "east_street" ; : create "sergeant_wise"; : create "constable_oddcrisp"; : create "chief_broom"; : create "professor_ambleside"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (is_at "market_square") { :if (!market_remark){ : if (!is_exists "fruit_stall") { : print "Looks like Angie Slipsocket has packed up her stall and gone off for the day. She's probably having a scrumpy down at the fête right now."; : set_true "market_remark" ; } } : if (is_present "bus") { : if (is_carried "bag") { : if (i_am_mustard) { : print "As I step off the bus, Custard barks and wags his tail, and jumps all over me like dogs do when they're pleased to see each other - and the doors hiss shut as he stops pressing the button."; } : press_any_key ; : clear_screen; : print "Just at that moment, Millicent Sharpe emerges from the cafe and walks towards us across the market square. She sees us two lurking near the bus and stops to look at us.\n\"No need to look so suspicious,\" she says, \"dogs ride free, you know. But, I'm sorry - only if accompanied by their owners.\" \nShe has a quick look around to see if we're with anyone and seeing that we're not, shrugs, opens the doors and gets into the bus. The doors hiss shut behind her."; : if (parent_of "cauliflower"=="inside_bus") { : print "A moment later the doors open again and Millicent reappears, clutching a cauliflower. \"Here, Angie,\" she says, approaching the fruit and veg stall, \"I think this belongs to you. Heaven knows what it was doing inside my bus!\"\n\"Blimey, you're right!\" says Angie. \"Blooming kids, thinking they can help themselves! If they was mine, I'd...\" and she cracks her knuckles horribly before putting the cauliflower back on the display.\n\"Ta ta Angie,\" says Millicent.\n\"Ta ta Millie,\" says Angie."; : print "Millicent gets back on board the bus and the doors hiss shut behind her."; : set_true "cauli_on_stall" ; : set_false "got_cauli" ; : create "cauliflower"; } : print "A moment later, the sign at the front of the bus changes to 'Much Dumply' and then the engine purrs into life like a lazy tiger, the indicator light winks at us, and the bus drives away."; : destroy "bus"; : destroy "wheels"; : destroy "flap"; : destroy "door"; : destroy "button"; : set_false "custard_button_pushed" ; : set_false "mustard_button_pushed"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (!has_not_created "bus"&&!is_present "bus"&&has_not_created "bag") { : press_any_key ; : clear_screen; : print "The bus arrives and comes to a stop at the edge of the market square. The doors hiss open and the passengers all flood out - the usual Saturday crowd of teenagers and shoppers clutching their bags and baskets, as well as a crowd that have come into Pottlington specially for the fête. The driver turns a handle inside and the sign at the front of the bus changes from 'Ltl Pottlington' to 'OUT OF SERVICE'. A moment later, Millicent Sharpe steps off the bus, smart as ever in her driver's uniform with wisps of grey hair poking from beneath her cap. She lifts a flap by the open doors and pushes a button that makes them close again, then heads off across the square to the cafe for her usual bacon sandwich and pot of tea. She's being doing the same thing for as long as anyone can remember. Everyone in Little Pottlington knows Millicent Sharpe. "; : create "bus"; : create "wheels"; : create "doors"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (is_at "ambleside_room") { : if (is_present "professor_ambleside") { : if (is_first_entered()) { : print "There's a white-haired old man with a crinkly face sitting in a canvas chair, and talking to himself in the dressing table mirror. He breaks off when he sees us coming in."; : print "\"Oh, hello little fellows!,\" he says, \"how nice of you to come and see me. I'm afraid if it's my autograph that you want then I'm a little busy at the moment.\" He chuckles at his own joke. I wag my tail and give him a friendly lick and he pats me on the head."; : print "\"Now, now, you two shouldn't really be in here, should you? You'd better go off and find your owners - they'll be worried about you - and I need to practice my speech. Off you go now...\" And he shoos both of us gently out of the tent."; } : else { : print "Professor Ambleside, still practicing his speech, breaks off as he sees us come in again."; : print "\"You two again?\" he says, \"I thought I'd told you go to back to your owners? If they come looking for you and find you in here they may accuse me of dog-napping!\" And he shoos us gently out of the door once more."; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : goto "big_white_tent"; : create "mustard"; : create "custard"; : redescribe; } } : if (parent_of "mustard"=="slipway_south") { : if (is_at "south_river"||is_at "north_river"||is_at "slipway_north"||is_at "by_the_river"||is_at "riverside") { : print "I can see Mustard pacing up and down the southern slipway and whining pathetically."; } } : else_if (parent_of "mustard"=="slipway_north") { : if (is_at "zone_whole_river"||is_at "slipway_south"||is_at "carpark") { : print "I can see Mustard pacing up and down the northern slipway and whining pathetically."; } } : if (is_at "zone_whole_river"||is_at "slipway_south"||is_at "slipway_north"||is_at "riverside"||is_at "by_the_river"||is_at "carpark"||is_at "railings") { : if (is_within { outer = "zone_whole_river" inner = "custard" }) { : set_true "custard_in_river" ; : set_true "shaker" ; } : else { : set_false "custard_in_river" ; } : if (lid_in_river&&!is_present "lid") { : append "I spot a big wooden lid, floating in the river"; : if (custard_sitting_on_lid) { : append ", with Custard sitting on top of it! He looks quite happy..."; } : else_if (mustard_sitting_on_lid) { : append ", with Mustard sitting on top of it! I can hear him whimpering. Sounds like he really doesn't like the water..."; } : else { : append "."; } } } : if (is_at "restaurant_entrance") { : if (is_exists "legs_1") { : if (i_am_mustard) { : print "As soon as I step through the door, the reception waiter spots me.\n\"You again!\"he says from his lectern. \"You're barred - out with you!\" And he waves a white-gloved finger at me menacingly. I don't need telling twice - I turn tail and run away."; } : set_true "pleased_to_see_me" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : goto "carpark"; : redescribe; } } : if (is_at "in_restaurant") { : if (!is_exists "guests" ) { : print "As I hover in the entrance to the restaurant, the Maître d' spots me and comes over, smiling reassuringly at the guests as he does so - but I can tell he's really in a hurry. \n\"And what can I do for you, little doggy?\" he says, looking uncertainly at my fancy get-up like he's not really sure if I should be in here or not. \"You have lost your owner, no?\" I wag my tail and try my best to look like I belong in here, but he's not fooled. Glancing around at the tables and seeing the diners all getting on with their lunches and nobody looking like they've lost their dog, he gently shoos me out of the restaurant. "; : set_true "pleased_to_see_me" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : goto "carpark"; : redescribe; } } : if (is_at "under_table") { : if (restaurant_guests_arrive<3) { : print "I can hear a murmur of conversation above me..."; } } : if (!is_exists "skaters"&&!has_not_created "legs_1") { : if (is_at "pinchmaid_hill") { : if (!parade_announcement) { : print "From off in the distance I hear the voice of Ambleside - either he's learned how to shout really loudly, or they've fixed that PA system. \n\"Ladies and gentlemen...and of course, children. And dogs. And... I say is that your pet bird pecking at your sandwich madam? Oh no, just a naughty pigeon, I see. Now - where was I?\" There's quite a long pause and then I hear him again: \"The Little Pottlington parade will start shortly... All paraders to the big white tent please! I repeat - all paraders to the big white tent!\""; : set_true "parade_announcement" ; : set_false "costumes" ; : create "paraders"target = "changing_room" ; } } } : if (is_at "gander_alley") { : if (crate_gone) { : print "I notice that the crate has gone! Someone must have opened the back door and taken it inside."; : set_false "crate_gone" ; } } : if (is_at "outside_chipshop") { : if (chippy_open) { : if (has_not_created "tommy_spratt") { : press_any_key ; : clear_screen; : print "As I approach the entrance to the chip shop, the door flies open and out storms Tina Spratt! She's a lady in her 60s, with copper-tinted curly grey hair and pink lipstick. She's wearing a blue apron which she quickly unties and throws back through the door, shouting as she does, \"That's it Tommy! I've had it with you and your stinking chip shop. You can batter your own haddock from now on!\""; : print "I hear Tommy Spratt yelling something from inside. Tina shouts back, \"I should have listened to my father! He always said I was too good for you - and he was right!\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Tommy appears in the door of the shop, red-faced, with his hair all over the place. \"What the hell would he know? He made ballcocks for a living!\""; : print "That seems to enrage Tina even more. \"Get stuffed Tommy! You and your fish and chips! I'm going to Nora's - and don't ever expect me back!\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Bloody Nora!\" yells Tommy. \"Go to your sister's then. You deserve each other. See if I care. Good riddance!\" And he slams the door. \nTina mutters something horrible under her breath and marches away - but I know she'll be back in the shop by tomorrow. You see, Tommy and Tina Spratt have been having this very same argument every Saturday for the past 40 years. But somehow, they're still together."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : create "tommy_spratt" target = "in_back_of_chipshop" ; : redescribe; } : else_if (!has_not_created "fish") { : if (has_not_created "linda_spratt") { : clear_screen; : if (i_am_mustard) { : append "Custard appears from around the other side of the chip shop. "; : if (is_carried "fish") { : append "\"Nice fish!\" he says."; } : else_if (parent_of "fish"=="Custard") { : append "\"Nice fish!\" I say."; } } : else { : append "Mustard appears from around the other side of the chip shop. "; : if (is_carried "fish") { : append "\"Nice fish!\" he says."; } : else_if (parent_of "fish"=="Mustard") { : append "\"Nice fish!\" I say."; } } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "As we're standing there outside the chip shop, reinforcements arrive - it's Linda Spratt, come to help her Dad in the Chiperama now her Mum has taken herself off to Aunt Nora's, same as most Saturdays. She opens the door and shouts \"Dad! Aunt Nora says you two've been arguing again - do you need a hand?\" There's a muffled reply and she disappears inside."; : create "linda_spratt"target = "inside_chipshop" ; : create "mustard"; : create "custard"; : set_true "follow" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } } } : if (is_at "museum_reception") { : if (i_am_mustard||!i_am_mustard&&!custard_on_sofa) { : if (is_present "janet_makepeace") { : print "Janet Makepeace spots me as soon as I walk through the door. \"No unaccompanied animals in the Heritage Centre!\" she shouts and gets up from her desk. I don't need telling twice - I run out of the door with my tail between my legs."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : goto "museum_yard"; : if (follow) { : create "custard"; : create "mustard"; } : redescribe; } } } : if (is_at "museum_yard") { : if (is_present "janet_makepeace") { : if (is_present "janet_makepeace") { : print "Ernie Droppsit and Ian Smashet are here, chatting to Janet Makepeace."; : if (!JM_chatter) { : print "\"...Custard Creams,\" Janet is saying to Ernie, \"best thing for it. Takes the sting right off. Sounds crazy, I know.\""; : print "\"I could murder a flan right now,\" says Ernie."; : print "\"What's that got to do with it?\" says Ian."; : print "\"Oh, nothing. I was just...um - what about that statue up there?\" Ernie points to the roof."; : print "\"Oh, that,\" says Janet. \"That's Ambrose Hockbarrow. He built the original gaol. And then ran it. He lived in it as well - had a special cell made for himself that he used to lock himself up in at nights. Strange man.\""; : if (has_not_created "statue") { : set_string var = "statue_description" value = "a statue of Ambrose Hockbarrow (on the roof of the museum)" ; : if (has_not_created "statue") { : create "statue"; : create "key"; : create "chain"; } } : set_true "JM_chatter" ; } } } } : if (is_at "cripplepepper_lane") { : if (crawfield_done) { : if (has_not_created "van") { : print "Just as we step into the lane, a battered old van pulls up outside the archway."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "The doors open and a twitchy little man and a great big fat bloke step out."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Is this it, Ian?\" says the big bloke.\n\"Satnav says it is,\" says the twitchy little one, opening up the back of the van.\n\"Must be through there then,\" \nThey both disappear through the archway into the museum yard."; : create "van"; : create "billy_nickit"; : create "ian_smashet"target = "museum_yard" ; : create "ernie_droppsit"target = "museum_yard" ; : create "janet_makepeace"target = "museum_yard" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (parent_of "custard"=="museum_reception"||parent_of "custard"=="custards_dream") { : if (is_present "van") { : print "Ernie and Ian come out of the museum yard, close the back of the van and get into the cab. The engine starts with a rumble and the clattering sound of a loose exhaust pipe, there is horrible crunch of gears and then the van lurches away down the lane, leaving behind a cloud of oily black smoke."; : destroy "van"; : destroy "ian_smashet"; : destroy "ernie_droppsit"; : destroy "billy_nickit"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } } } : else_if (is_at "old_gaol_room") { : if (previous_location()=="duct_2") { : if (has_not_created "grille_2"){ : create "grille_2"; } } } : else_if (i_am_mustard&&is_at "next_to_weir") { : print "I watch the water rush over the edge of the weir and hear it roaring below. It scares me silly. I don't know what Custard thinks he's doing, pushing me out here."; } : if (is_present "woolly_lump"||is_present "custard"&&custard_tied) { : create "string"; } } on_pre_command { : mask { : set_string var = "crate_description" value = "a crate" ; } : match "get collar" { :disambiguate_s1 "beside"; : if (standing_on_custard) { : if (subject1_is "replica_collar"&&!fake_collar_in_case) { : print "I scramble down off Custard's back."; : set_false "standing_on_custard" ; } : else_if (subject1_is "ancient_collar"&&!real_collar_in_case) { : print "I scramble down off Custard's back."; : set_false "standing_on_custard" ; } } } } on_command { : match "version-" { : print "POST COMP 1.0.0"; } : if (is_present "crate"||is_present "fishing_creel") { : gosub "container_management" ; } #HELP start :match "help me;help_" { : if (noun1_is "harry") { :set_sentence "get harry"; } : else_if (!noun1_is "") { : print "I don't know how to help with that."; } : else { : clear_screen; : print "• Type THEME to change the colours of the text and background;"; : print "• Type PE to enable written 'Press Enter' prompts when the game pauses (for screen reader users);"; :print "• Type HINT for a clue;"; : print "• Type STUCK for explicit help (a walkthrough) - but beware spoilers!;" ; : print "• Type UNDO to undo the last command;"; : print "• Type CREDITS for acknowledgments and information about the game. "; : print "-------------------------------------"; : print "<^b^The game is played by entering simple text commands. There are lots of commands you can use to navigate your way through the game. Listed below are some of the most important (but there are many more - experiment to see what works):>"; : print "- MOVEMENT: Use compass directions (N, E, S, W, NE, SE, SW, NW) UP, DOWN, ENTER, EXIT;" ; : print "- LOOK to view, or review, the current location;" ; : print "- EXAMINE or X [[object]] to look at things closely;" ; : print "- GET [[object]] to pick something up and DROP [[object]] to discard it;" ; : print "- INVENTORY or I to see what you are carrying;" ; :print "- BARK to interact with other characters;"; :print "- SNIFF to find out things about your surroundings;"; : print "- SAVE to save game position;" ; : print "- LOAD to load game position." ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } #HELP end #INVENTORY start : match "inventory-" { : if (i_am_mustard) { : if (count "mustard" == 0) { : print "I'm not carrying anything."; } : else { : append "I am carrying \s" ; : look_inside of = "mustard" extract_the = "description" store_results_in = "mustard_inventory" make_known = "true" ; : print_list_verbose "mustard_inventory" lead_in="" final_part = "." when_empty = "nothing." ; } : if (is_present "custard") { : if (count "custard" == 0) { : print "Custard isn't carrying anything."; } : else { : append "Custard is carrying \s" ; : look_inside of = "custard" extract_the = "description" store_results_in = "custard_inventory" make_known = "true" ; : print_list_verbose "custard_inventory" lead_in="" final_part = "." when_empty = "nothing." ; } } } : else { : if (count "custard" == 0) { : print "I'm not carrying anything."; } : else { : append "I'm carrying \s" ; : look_inside of = "custard" extract_the = "description" store_results_in = "custard_inventory" make_known = "true" ; : print_list_verbose "custard_inventory" lead_in="" final_part = "." when_empty = "nothing." ; } : if (is_present "mustard") { : if (count "mustard" == 0) { : print "Mustard isn't carrying anything."; } : else { : append "Mustard is carrying \s" ; : look_inside of = "mustard" extract_the = "description" store_results_in = "mustard_inventory" make_known = "true" ; : print_list_verbose "mustard_inventory" lead_in="" final_part = "." when_empty = "nothing." ; } } } } #INVENTORY end #pe start : match "pe-" { : if (!pe) { : print "Printed PRESS ENTER prompts on."; : set_true "pe" ; } : else { : print "Printed PRESS ENTER prompts off."; : set_false "pe" ; } } #pe end #THEME start : match "theme _" { : add_choice "black ink, white paper" { : set_theme "blackonwhite" ; } : add_choice "black ink, pale yellow paper" { : set_theme "blackonyellow" ; } : add_choice "black ink, light blue paper" { : set_theme "blackonblue" ; } : add_choice "white ink, black paper" { : set_theme "whiteonblack" ; } : add_choice "yellow ink, black paper" { : set_theme "yellowonblack" ; } : add_choice "green ink, black paper" { : set_theme "greenonblack" ; } : choose "Choose from the following ink and paper colour combinations:" ; : redescribe; } #THEME end #HINT start : match "hint-" { : if (!mustard_free) { : if (parent_of "tadcaster"=="outside_butcher") { : print "^b^Well, Pru's ignoring me - I wonder if there's anyone else around here I could talk to?"; : done ; } : else { : print "^b^I notice my tail bobbing around behind me, and wonder if I should do that thing that dogs like to do with theirs. Running around in circles is fun!"; : done ; } } : else_if (custard_tied) { : if (is_exists "woolly_lump") { : if (has_visited "east_of_lamp_post") { : print "^b^I can't help wondering what that woolly lump smells like."; : done ; } } : else { : if (!has_visited "north_of_lamp_post"&&!has_visited "south_of_lamp_post") { : print "^b^I reckon I should try walking round that lamp post."; : done ; } : else { : if (is_at "zone_lamppost") { : print "^b^I notice what happens with the string when Custard follows me around the lamp post. If only it was long enough for him to follow me out of this grotty little park!"; : done ; } : else_if (is_at "outside_pub") { : if (is_present "custard") { : print "^b^I reckon I should just hang about here for a while and see what happens!"; : done ; } } } } } : else_if (has_not_created "bus") { : print "^b^Time to explore Little Pottlington I think!"; : done ; } : else_if (has_not_created "bag") { : if (parent_of "bus"=="gardens_entrance") { : print "^b^I think I need to get Mr Czerwinski his bag back before anything else."; : done ; } : else_if (is_at "market_square") { : if (is_present "bus") { : if (has_not_created "flap") { : print "^b^If I have a really careful look at the bus, I might be able to find a way inside!"; : done ; } : else_if (!flap_open) { : if (i_am_mustard) { : print "^b^My nose is too short and stubby to open that flap. I look at Custard's pointy nose sticking out from amongst all his shaggy hair and wonder if he might have better luck."; : done ; } } : else_if (i_am_mustard&&mustard_button_pushed||!i_am_mustard&&custard_button_pushed) { : print "^b^If I stop pushing the button then I'm sure the doors will close, but I'll need to stop pushing it to go through them! Seems impossible - unless someone else can get inside while I'm out here keeping the doors open... "; : done ; } } } : else_if (is_at "inside_bus") { : if (has_not_created "czerwinski_seat") { : print "^b^I reckon I should have a good sniff around in here."; : done ; } : else { : print "^b^I wonder if there's anything under these seats?"; : done ; } } : else_if (parent_of "bus" != "market_square") { : print "^b^I think I should follow that bus!"; : done ; } } : else_if (is_exists "bag") { : print "^b^I think I should get that bag of tricks back to Mr Czerwinski."; : done ; } : else_if (!been_south) { : if (milesandpenelope) { : if (!has_visited "slipway_north") { : print "^b^A restaurant across the river? That sounds interesting!"; : done ; } } } : else { : if (!done_raft) { : if (is_present "lid"&&!is_at "zone_whole_river") { : if (is_at "slipway_north") { : print "^b^I've got a funny feeling this lid might float, if I pushed it into the river."; } : else { : print "^b^I've got a funny feeling this lid might float."; } : done ; } : else_if (is_carried "custard_lid"&&!is_exists "mustard_lid"||is_carried "mustard_lid"&&!is_exists "custard_lid") { : print {("^b^This lid is too big and heavy to move it on my own! I'll need"+(i_am_mustard?" Custard ":" Mustard ")+"to help me with it.")}; : done ; } : if (is_within { outer = "zone_whole_river" inner = "lid" }) { : if (mustard_sitting_on_lid) { : if (i_am_mustard) { : print "^b^I'm just stuck here unless someone gives me a push across the river!"; } : else { : print "^b^I should probably give Mustard a push across the river, or else he might be stuck on that lid all day!"; } : done ; } } : if (i_am_mustard) { : print "^b^Custard can swim but I don't like the water! I'll need to find a way to float across the river."; } : else { : print "^b^I love swimming but Mustard doesn't like the water! I'll need to find a way to float him across the river."; } : done ; } } : if (rejected) { : if (has_not_created "legs_1") { : if (!is_exists "top_hat"&&!is_exists "monocle"&&!is_exists "bow_tie") { : if (!is_at "zone_gardens") { : if (is_present "angie_slipsocket") { : if (!got_cauli) { : print "I reckon I'll need to wait until Angie is distracted before I can get anything off her stall."; : done ; } } : if (i_am_mustard) { : print "^b^It'll be fun to sneak into the restaurant - but I'll need to be properly dressed! I reckon I should have a good look around the gardens for some proper posh dressing-up gear."; : done ; } : else { : print "^b^Mustard seems determined to sneak into that restaurant - but I reckon he'll never manage it unless he's properly dressed! Maybe we should have a good look around the gardens for some proper posh dressing-up gear."; : done ; } } } : if (is_at "beer_tent") { : if (has_not_created "mayor") { : print "^b^I reckon I should have a good luck at the punters in here."; : done ; } : else_if (is_present "mayor") { : print "^b^If in doubt - bark!"; : done ; } : else_if (is_present "glass_1") { : print "^b^I wonder how I could get that pint glass off the bar..."; : done ; } : else_if (is_present "glass_2") { : if (has_not_created "monocle") { : print "^b^I wonder if there's anything in that pint glass."; : done ; } } } : if (is_at "ambleside_room") { : if (has_not_created "bow_tie") { : print "^b^A good luck at the dressing table might help!"; : done ; } } : if (is_at "backstage") { : if (is_exists "tp") { : if (!found_tag) { : print "^b^I reckon a look inside the top hat might help."; : done ; } : else { : if (has_not_created "rabbit") { : print "^b^I wonder what would happen if I pulled that tag?"; : done ; } : else_if (is_present "rabbit") { : if (rabbit_in_hat) { : print "^b^If in doubt - bark!"; : done ; } : else { : print "^b^I wonder what would happen if I put something in the hat? I look at the rabbit snoozing quietly and think how much it looks like...no, that's silly!"; : done ; } } } } } : if (is_exists "bow_tie"&&is_exists "top_hat"&&is_exists "monocle") { : if (parent_of "bow_tie"=="mustard"||parent_of "bow_tie"=="custard"||is_carried "bow_tie") { : if (parent_of "top_hat"=="mustard"||parent_of "top_hat"=="custard"||is_carried "top_hat") { : if (parent_of "monocle"=="mustard"||parent_of "monocle"=="custard"||is_carried "monocle") { : print "^b^I think we've got everything a toff dog would need to dress up smart enough to get inside the Pegasus Restaurant!"; : done ; } : else { : print "^b^I think between us we've found everything we'd need to dress up posh and get into the restaurant...but I'm not sure we've got all of it at the moment!"; : done ; } } : else { : print "^b^I think between us we've found everything we'd need to dress up posh and get into the restaurant...but I'm not sure we've got all of it at the moment!"; : done ; } } : else { : print "^b^I think between us we've found everything we'd need to dress up posh and get into the restaurant...but I'm not sure we've got all of it at the moment!"; : done ; } } : else_if (is_exists "bow_tie"||seen_top_hat||is_exists "monocle") { : print "^b^I think we've found some of the things that we need to dress up and get into the restaurant - but not all of them!"; : done ; } } } : else_if (is_at "in_restaurant") { : print "^b^I think I'd better get out of sight under one of these tables!"; : done ; } : else_if (is_at "under_table") { : if (has_not_created "legs_1") { : print "^b^I reckon this conversation might be worth listening to."; : done ; } : else { : print "^b^Time to tell Custard what I overheard!"; : done ; } } : if (!has_not_created "skaters") { : if (is_exists "skaters") { : if (!is_at "village_hall"&&!is_at "skating_area") { : if (!skate_speech) { : print "^b^I remember that boy talking to his Mum and think I should go and have a look at what's happening at the town hall."; : done ; } : else { : print "^b^I think we've got unfinished business at the town hall!"; : done ; } } : else_if (is_at "village_hall") { : if (tried_skating) { : if (!i_am_mustard) { : print "^b^I don't think I'm any good at skateboarding! I wonder if Mustard would be any better?"; : done ; } } : if(i_am_mustard&&mustard_on_skateboard||!i_am_mustard&&custard_on_skateboard) { : print "^b^I think I need to show these kids what I've got!"; : done ; } : else { : print "^b^I think I need to get on that skateboard and show these kids what I've got."; : done ; } } : else_if (is_at "skating_area") { : if (!tried_skating) { : print "^b^I think about those tricks that the paperboy told the rest of the gang. Type TRICKS if you want me to remember what they were. "; : done ; } : else { : print "^b^I think about what the paperboy told the rest of the gang. There are different tricks for each part of the course and I need to do the right trick at the right time - and no repeats!"; : done ; } } } : if (!parade_done) { : if (!is_at "store_room") { : if (seen_dog) { : if (i_am_mustard) { : print "^b^I remember that stuffed dog on wheels in the store room of the tent, and remember how similar it looked to Custard."; : done ; } : else { : print "^b^I remember that stuffed dog on wheels in the store room of the tent and remember how similar it looked to me."; : done ; } } } : else_if (is_present "stuffed_dog") { : if (i_am_mustard) { : if (custard_on_skateboard) { : print "^b^I look at the stuffed dog on wheels and think how similar it looks to Custard standing on the skateboard."; : done ; } : else { : print "^b^I look at the stuffed dog on wheels and think how similar it looks to Custard. If he was on the skateboard then you really wouldn't be able to tell the difference!"; : done ; } } : else_if (custard_on_skateboard) { : print "^b^I look at the stuffed dog on wheels and think how similar it looks to me standing on this skateboard."; : done ; } : else { : print "^b^I look at the stuffed dog on wheels and think how similar it looks to me. If I was on the skateboard then you really wouldn't be able to tell the difference!"; : done ; } } } : else_if (has_not_created "crawfield_cat") { : print "^b^I wonder if the museum is open now?"; : done ; } : else_if (!has_not_created "crawfield_cat"&&!crawfield_done) { : if (has_not_created "fish") { : if (!is_at "outside_chipshop"&&!is_at "back_of_chipshop"&&!is_at "inside_chipshop"&&!is_at "in_back_of_chipshop") { : print "^b^I think about the fish and chip shop off the market square."; : done ; } : else_if (is_at "inside_chipshop") { : if (!is_present "tommy_spratt") { : print "^b^I wonder how I can get Tommy Spratt to come to the counter."; : done ; } } : else_if (is_present "tommy_spratt") { : print "^b^If Tommy wasn't here I could probaby nab some of that fish! But he's only likely to leave if he thinks he's got a customer waiting."; : done ; } } : else_if (is_carried "fish") { : print "^b^I reckon Crawfield wouldn't say no to a bit of what I'm carrying!"; : done ; } } : else_if (is_exists "van") { : if (!is_at "museum_reception"&&!is_at "custards_dream"&&parent_of "custard"!="museum_reception"&&parent_of "custard"!="custards_dream"&&!is_at "inside_sack"&&!is_at "museum_storeroom") { : if (!is_at "inside_van") { : print "^b^I wonder what's inside that van."; : done ; } : else { : if (i_am_mustard) { : print "^b^I see that cushion on the sofa and think how much it looks like Custard."; : done ; } : else { : print "^b^I see that cushion on the sofa and think how much it looks like me."; : done ; } } } } //pica : else_if (parent_of "sack"=="museum_garden") { : if (!is_at "museum_garden") { : if (i_am_mustard) { : print "^b^I wonder if I should have a look around the museum garden."; : done ; } } : else { : print "^b^That sack looks dog-sized."; : done ; } } : else_if (mustard_trapped) { : if (is_at "museum_storeroom") { : if (parent_of "custard"=="maze") { : print "^b^I think I smell Custard somewhere nearby - I'd better let him know I'm here!"; : done ; } : else { : print "^b^I don't see any way out of here - I can only hope Custard comes along to rescue me!"; : done ; } } : else_if (is_at "maze") { : if (bark_counter>0) { : print "^b^If Mustard keeps barking and I keep following, I reckon I'll find him sooner or later!"; : done ; } : else { : print "^b^I'm sure Mustard is down here somewhere. Maybe I should let him know I'm here?"; : done ; } } : else_if (is_at "outside_storeroom") { : print "^b^I'm sure Mustard is just behind that door!"; : done ; } : else { : print "^b^Time to try and find Mustard I think!"; : done ; } : print "^b^I can't think of anything that might help right here and now."; : done ; } : else_if (!done_exhibition_bit) { : if (!got_into_old_gaol_room) { : if (is_at "corridor"||is_at "museum_reception") { : print "^b^I think we need to get into the exhibition room - but the door is locked! I wonder if there is another way..."; : done ; } : else_if (is_at "broom_cupboard") { : print "^b^Those shelves look like they could be climbed."; : done ; } } : else_if (is_present "combination_lock") { : if (!stood_on_custard_in_exhibition_room) { : if (i_am_mustard) { : print "^b^I think I need to get a bit higher up! But what - or who - could I stand on?"; : done ; } : else { : print "^b^I think one of us needs to get a bit higher up. But what - or who - is there to stand on?"; : done ; } } : else_if (!done_combination) { : if (!has_not_created "combination_lock") { : if (pressed_1&&pressed_7&&pressed_2&&pressed_6) { } : else { : print "^b^I think we need to enter the combination to open the display case - I should have a good look around in case there is a clue somewhere."; : done ; } } } } : if (done_combination&&stood_on_custard_in_exhibition_room) { : if (!is_exists "handclap_harry") { : if (real_collar_in_case) { : print "^b^I think we need to get that precious Romano-British golden dog collar out of the case before the crooks break in to steal it!"; : done ; } : else_if (parent_of "ancient_collar"!="fishing_creel") { : print "^b^I think we need to hide that ancient dog collar somewhere before the crooks get in!"; : done ; } : else_if (!fake_collar_in_case) { : print "^b^If the crooks break in and see that the collar isn't in the case they may turn everything upside down looking for it!"; : done ; } } } } : else_if (is_exists "merve_swerve") { : if (has_not_created "cut_wires") { : print "^b^I wonder if I've missed anything in the vestibule."; : done ; } : else { : if (is_at "museum_vestibule") { : print "^b^I think about that cut wire. There's no way I could repair it - but if I could find something to bridge the gap between both halves..."; : done ; } : else { : print "^b^I think about that cut wire in the vestibule. There's no way I could repair it - but if I could find something to bridge the gap between both halves..."; : done ; } } } : else_if (harry_in_river) { : if (!custard_in_river) { : if (is_present "professor_ambleside") { : if (i_am_mustard) { : print "^b^If these people are just going to stand around all night arguing about who's going to jump in the river and save Harry then there's only one thing for it - Custard will have to jump in and save him himself!"; : done ; } : else { : print "^b^If these people are just going to stand around all night arguing about who is going to jump in the river and save Harry then there's only one thing for it - I'll have to jump in and save him myself!"; : done ; } } : else { : if (i_am_mustard) { : print "^b^If those people are just going to stand around all night arguing about who's going to go in the river and save Harry, while he drowns, there's only one thing for it - Custard will have to jump in and save him himself!"; : done ; } : else { : print "^b^If those people are just going to stand around all night arguing about who is going to gi in the river and save Harry, while he drowns, there's only one thing for it - I'll have to jump in myself and save him!"; : done ; } } } : else { : if (!i_am_mustard) { : if (!is_carried "handclap_harry") { : print "^b^I'd better grab hold of Harry and get him out of the water!"; : done ; } } } } : else_if (harry_arrested) { : if (!policemen_follow) { : print "^b^I think I'd better persuade those policemen to follow me!"; : done ; } : else_if (!is_at "zone_in_museum") { : print "^b^There's only one place I need to lead them - back to the scene of the crime!"; : done ; } : else { : print "^b^I reckon I could show them something that'll surprise them!"; : done ; } } } : print "^b^I can't think of anything that might help right here and now."; : done ; } #HINT end #STUCK start : match "stuck-" { : clear_screen; : if (walkthrough==0) { : print "WARNING: This section contains a full, detailed walkthrough of the game and necessarily contains many <^b^spoilers>. If you want more subtle help then please quit this section, return to the game and type <^b^HINT.>" ; : ask_bool { var = areyousure question = Are you really stuck? yes_answer = yes - reveal walkthrough; no_answer = no - return to game. } : if (areyousure) { : clear_screen; : print "<^b^1. Escaping from the lead> (from <^i^Outside Ogodu News>):"; : print "W, BARK (Tadcaster goes East), E, CHASE TAIL (Pru clips the lead on to Tadcaster’s collar), W."; : print "-------------------------------------"; : ask_bool { var = areyousure question = Reveal more walkthrough? yes_answer = yes, reveal more; no_answer = no, I've seen enough - return to game. } : if (areyousure) { : increment "walkthrough" ; } : else { : redescribe; } } : else { : redescribe; } } : if (walkthrough==1) { : clear_screen; : print "<^b^1. Escaping from the lead> (from <^i^Outside Ogodu News>):"; : print "W, BARK (Tadcaster goes East), E, CHASE TAIL (Pru clips the lead on to Tadcaster’s collar), W."; : print "-------------------------------------"; : print "<^b^2. Finding Custard> (from <^i^Outside Halfbacon’s>):"; : print "N, W, SNIFF LUMP (the woolly lump is Custard!). "; : print "-------------------------------------"; : ask_bool { var = areyousure question = Reveal more walkthrough? yes_answer = yes, reveal more; no_answer = no, I've seen enough - return to game. } : if (areyousure) { : increment "walkthrough" ; } : else { : redescribe; } } : if (walkthrough==2) { : clear_screen; : print "<^b^1. Escaping from the lead> (from <^i^Outside Ogodu News>):"; : print "W, BARK (Tadcaster goes East), E, CHASE TAIL (Pru clips the lead on to Tadcaster’s collar), W."; : print "-------------------------------------"; : print "<^b^2. Finding Custard> (from <^i^Outside Halfbacon’s>):"; : print "N, W, SNIFF LUMP (the woolly lump is Custard!). "; : print "-------------------------------------"; : print "<^b^3. Releasing Custard> (from <^i^East of the Lamp Post>):"; : print "NW, SW, SE, NE, NW, SW (Custard’s string will lengthen as Mustard goes anticlockwise around the lamp post), W (to <^i^Outside The Marrowbone and Cleaver>), WAIT (until someone comes out of the pub and breaks Custard’s string – Custard is then free)."; : print "-------------------------------------"; : ask_bool { var = areyousure question = Reveal more walkthrough? yes_answer = yes, reveal more; no_answer = no, I've seen enough - return to game. } : if (areyousure) { : increment "walkthrough" ; } : else { : redescribe; } } : if (walkthrough==3) { : clear_screen; : print "<^b^1. Escaping from the lead> (from <^i^Outside Ogodu News>):"; : print "W, BARK (Tadcaster goes East), E, CHASE TAIL (Pru clips the lead on to Tadcaster’s collar), W."; : print "-------------------------------------"; : print "<^b^2. Finding Custard> (from <^i^Outside Halfbacon’s>):"; : print "N, W, SNIFF LUMP (the woolly lump is Custard!). "; : print "-------------------------------------"; : print "<^b^3. Releasing Custard> (from <^i^East of the Lamp Post>):"; : print "NW, SW, SE, NE, NW, SW (Custard’s string will lengthen as Mustard goes anticlockwise around the lamp post), W (to <^i^Outside The Marrowbone and Cleaver>), WAIT (until someone comes out of the pub and breaks Custard’s string – Custard is then free)."; : print "-------------------------------------"; : print "<^b^4. Finding Mr Czerwinski’s bag> (from <^i^Outside the Marrowbone and Cleaver>):"; : print "E, NE, SE, E, S, E, S, S, S, S, E, S (to <^i^By the Bandstand> – Mr Czerwinski has lost his bag of tricks), N (the bus is here and leaves to the east – follow it back to <^i^The Market Square>. It stops and Millicent Sharpe get out), X WHEEL, BECOME CUSTARD (if you’re not already Custard), OPEN FLAP, PRESS BUTTON, BECOME CUSTARD/MUSTARD (depending on which dog you are currently), IN, SNIFF SEATS, LOOK UNDER SEAT, GET BAG, OUT (Millicent Sharpe gets back on board and the bus drives away), S, S, E, S, GIVE BAG (Mr Czerwinski takes the bag and fixes the PA, Professor Ambleside appears and makes a speech, and then the fête is open!). "; : print "-------------------------------------"; : ask_bool { var = areyousure question = Reveal more walkthrough? yes_answer = yes, reveal more; no_answer = no, I've seen enough - return to game. } : if (areyousure) { : increment "walkthrough" ; } : else { : redescribe; } } : if (walkthrough==4) { : clear_screen; : print "<^b^5. Getting across the river> (from <^i^By the Bandstand>):"; : print "E, GET LID, BECOME CUSTARD/MUSTARD (depending on which dog you are), GET LID (it takes two of you to move it), W, S, S, E, S (to <^i^Northern Slipway>), DROP LID, BECOME CUSTARD/MUSTARD, DROP LID, BECOME MUSTARD (if you are not Mustard already), GET ON LID, BECOME CUSTARD, PUSH LID (the lid slides into the river, with Mustard aboard), S (into the river), PUSH LID SOUTH, S, PUSH LID SOUTH, S, PUSH LID SOUTH (the lid slides up onto the southern slipway), S."; : print "-------------------------------------"; : ask_bool { var = areyousure question = Reveal more walkthrough? yes_answer = yes, reveal more; no_answer = no, I've seen enough - return to game. } : if (areyousure) { : increment "walkthrough" ; } : else { : redescribe; } }: if (walkthrough==5) { : clear_screen; : print "<^b^5. Getting across the river> (from <^i^By the Bandstand>):"; : print "E, GET LID, BECOME CUSTARD/MUSTARD (depending on which dog you are), GET LID (it takes two of you to move it), W, S, S, E, S (to <^i^Northern Slipway>), DROP LID, BECOME CUSTARD/MUSTARD, DROP LID, BECOME MUSTARD (if you are not Mustard already), GET ON LID, BECOME CUSTARD, PUSH LID (the lid slides into the river, with Mustard aboard), S (into the river), PUSH LID SOUTH, S, PUSH LID SOUTH, S, PUSH LID SOUTH (the lid slides up onto the southern slipway), S."; : print "-------------------------------------"; : print "<^b^6. Getting into the restaurant> (from <^i^Slipway South>):"; : print "S, BECOME MUSTARD, E, N (Mustard is denied entry to the restaurant), X SIGN (reveals what Mustard needs to get be allowed inside), [[now go out of the restaurant and back across the river the same way. Then go back to <^i^The Market Square>]], X STALL, X DISPLAY (a cauliflower is revealed), WAIT (until a day tripper is talking to Angie), GET CAULIFLOWER, [[now go back to <^i^By the Bandstand>]], S, W (to <^i^By the Roses> - TP appears), N, LOOK INSIDE HAT, PULL TAG, BARK (the rabbit leaps out of the hat), PUT CAULIFLOWER IN HAT (TP grabs the hat, pulls out the cauliflower and throws it away, then leaves the hat and storms off), BECOME MUSTARD (if you are not already), WEAR HAT, S, E, E(to <^i^In the Beer Tent>), X PUNTERS (the Mayor and Mayoress are revealed), BARK, GET TOWEL (the beer glass falls off the bar), X GLASS, WEAR MONOCLE, W, N, W (to <^i^In the Big White Tent>), N (to <^i^The VIP Dressing Room>), X DRESSING TABLE, WEAR BOW TIE (now Mustard should be wearing the top hat, monocle and bow tie), [[now go back across the river and, as Mustard, into the restaurant entrance]], N (when the guests have gone through, Mustard can follow), HIDE, WAIT (a murmur of conversation is heard), LISTEN (the crooks’ plan is revealed), OUT, [[now go back across the river to <^i^By the Bandstand>]]. "; : print "-------------------------------------"; : ask_bool { var = areyousure question = Reveal more walkthrough? yes_answer = yes, reveal more; no_answer = no, I've seen enough - return to game. } : if (areyousure) { : increment "walkthrough" ; } : else { : redescribe; } }: if (walkthrough==6) { : clear_screen; : print "<^b^7. Skateboarding> (from <^i^By the Bandstand>):"; : print "N (a conversation between Donovan and his mum is overheard), E, N, E (to <^i^Outside the Town Hall> – the skate gang is here and their leader gives them a pep talk), BECOME MUSTARD (if you’re not already MUSTARD), GET ON SKATEBOARD, S, TRICKS (to be reminded of what tricks you can do), [[now enter the name of the trick appropriate to the situation, i.e. for the flat enter OLLIE or SHUVIT or KICKFLIP; if the kerb is present then enter 5050, if the rail is present then enter BOARDSLIDE; if the bench is present then enter HIPPIE JUMP; if it’s the end of the course and a special trick is required then enter DRIFFIELD TUESDAY or FLIPPANT TONY or HOTFINGER BUFFLE. Remember not repeat one of the tricks for the flat more than once]]."; : print "-------------------------------------"; : ask_bool { var = areyousure question = Reveal more walkthrough? yes_answer = yes, reveal more; no_answer = no, I've seen enough - return to game. } : if (areyousure) { : increment "walkthrough" ; } : else { : redescribe; } }: if (walkthrough==7) { : clear_screen; : print "<^b^7. Skateboarding> (from <^i^By the Bandstand>):"; : print "N (a conversation between Donovan and his mum is overheard), E, N, E (to <^i^Outside the Town Hall> – the skate gang is here and their leader gives them a pep talk), BECOME MUSTARD (if you’re not already MUSTARD), GET ON SKATEBOARD, S, TRICKS (to be reminded of what tricks you can do), [[now enter the name of the trick appropriate to the situation, i.e. for the flat enter OLLIE or SHUVIT or KICKFLIP; if the kerb is present then enter 5050, if the rail is present then enter BOARDSLIDE; if the bench is present then enter HIPPIE JUMP; if it’s the end of the course and a special trick is required then enter DRIFFIELD TUESDAY or FLIPPANT TONY or HOTFINGER BUFFLE. Remember not repeat one of the tricks for the flat more than once]]."; : print "-------------------------------------"; : print "<^b^8. The parade> (from <^i^Outside the Town Hall>)"; : print "W, S, W, S, W, W, BECOME CUSTARD (if you are not already Custard, and make sure that Custard is on the skateboard – if not then BECOME MUSTARD, GET OFF SKATEBOARD, BECOME CUSTARD), PUSH DOG WEST (the steward and Maya come in, then the parade starts and works it way around the town. Custard and Mustard end up in <^i^Gander Alley>), REMOVE COLLAR, OPEN CRATE, PUT COLLAR IN CRATE, CLOSE CRATE,N."; : print "-------------------------------------"; : ask_bool { var = areyousure question = Reveal more walkthrough? yes_answer = yes, reveal more; no_answer = no, I've seen enough - return to game. } : if (areyousure) { : increment "walkthrough" ; } : else { : redescribe; } }: if (walkthrough==8) { : clear_screen; : print "<^b^7. Skateboarding> (from <^i^By the Bandstand>):"; : print "N (a conversation between Donovan and his mum is overheard), E, N, E (to <^i^Outside the Town Hall> – the skate gang is here and their leader gives them a pep talk), BECOME MUSTARD (if you’re not already MUSTARD), GET ON SKATEBOARD, S, TRICKS (to be reminded of what tricks you can do), [[now enter the name of the trick appropriate to the situation, i.e. for the flat enter OLLIE or SHUVIT or KICKFLIP; if the kerb is present then enter 5050, if the rail is present then enter BOARDSLIDE; if the bench is present then enter HIPPIE JUMP; if it’s the end of the course and a special trick is required then enter DRIFFIELD TUESDAY or FLIPPANT TONY or HOTFINGER BUFFLE. Remember not repeat one of the tricks for the flat more than once]]."; : print "-------------------------------------"; : print "<^b^8. The parade> (from <^i^Outside the Town Hall>)"; : print "W, S, W, S, W, W, BECOME CUSTARD (if you are not already Custard, and make sure that Custard is on the skateboard – if not then BECOME MUSTARD, GET OFF SKATEBOARD, BECOME CUSTARD), PUSH DOG WEST (the steward and Maya come in, then the parade starts and works it way around the town. Custard and Mustard end up in <^i^Gander Alley>), REMOVE COLLAR, OPEN CRATE, PUT COLLAR IN CRATE, CLOSE CRATE,N."; : print "-------------------------------------"; : print "<^b^9. Crawfield The Cat> (from <^i^East Street>):"; : print "W, S (into The <^i^Museum Yard>), S (Crawfield appears and demands a payment), N, W, W (to <^i^Outside Spratt’s>), W (only one dog is allowed inside), BECOME MUSTARD/CUSTARD, N,W,S (the other dog is now <^i^In the Back of Spratt’s>), BECOME MUSTARD/CUSTARD, RING BELL, BECOME MUSTARD/CUSTARD, GET FISH (Tommy reappears and chases you out of the back of the chipshop), E, S (Custard and Mustard are reunited), E, E, S (back to <^i^The Museum Yard>), GIVE FISH (Crawfield takes it and disappears). "; : print "-------------------------------------"; : ask_bool { var = areyousure question = Reveal more walkthrough? yes_answer = yes, reveal more; no_answer = no, I've seen enough - return to game. } : if (areyousure) { : increment "walkthrough" ; } : else { : redescribe; } }: if (walkthrough==9) { : clear_screen; : print "<^b^10. Getting into the museum> (from <^i^The Museum Yard>):"; : print "S, S (you are thrown out of the museum), N (the van appears), IN, BECOME CUSTARD (if you are not already), GET ON SOFA (Ian and Ernie appear and carry the sofa into the museum), SLEEP (or wait, and you will fall asleep), BECOME MUSTARD, S, W (to <^i^The Museum Garden>), ENTER SACK (Mustard feels himself being carried away), OUT, SLEEP (or wait, and you will fall asleep)."; : print "-------------------------------------"; : ask_bool { var = areyousure question = Reveal more walkthrough? yes_answer = yes, reveal more; no_answer = no, I've seen enough - return to game. } : if (areyousure) { : increment "walkthrough" ; } : else { : redescribe; } }: if (walkthrough==10) { : clear_screen; : print "<^b^10. Getting into the museum> (from <^i^The Museum Yard>):"; : print "S, S (you are thrown out of the museum), N (the van appears), IN, BECOME CUSTARD (if you are not already), GET ON SOFA (Ian and Ernie appear and carry the sofa into the museum), SLEEP (or wait, and you will fall asleep), BECOME MUSTARD, S, W (to <^i^The Museum Garden>), ENTER SACK (Mustard feels himself being carried away), OUT, SLEEP (or wait, and you will fall asleep)."; : print "-------------------------------------"; : print "<^b^11. Finding Mustard> (from <^i^Custard’s Dream or Mustard’s Dream>):"; : print "BECOME CUSTARD (if you are not already), WAKE UP, W, N ,D ,E (into one of the identical corridors called <^i^A Corridor>), BECOME MUSTARD, BARK (you then automatically become Custard), FOLLOW, BECOME MUSTARD, BARK, FOLLOW, BECOME MUSTARD, BARK, FOLLOW (you find yourself outside a door), PUSH BAR (Custard and Mustard are reunited!) "; : print "-------------------------------------"; : ask_bool { var = areyousure question = Reveal more walkthrough? yes_answer = yes, reveal more; no_answer = no, I've seen enough - return to game. } : if (areyousure) { : increment "walkthrough" ; } : else { : redescribe; } }: if (walkthrough==11) { : clear_screen; : print "<^b^10. Getting into the museum> (from <^i^The Museum Yard>):"; : print "S, S (you are thrown out of the museum), N (the van appears), IN, BECOME CUSTARD (if you are not already), GET ON SOFA (Ian and Ernie appear and carry the sofa into the museum), SLEEP (or wait, and you will fall asleep), BECOME MUSTARD, S, W (to <^i^The Museum Garden>), ENTER SACK (Mustard feels himself being carried away), OUT, SLEEP (or wait, and you will fall asleep)."; : print "-------------------------------------"; : print "<^b^11. Finding Mustard> (from <^i^Custard’s Dream or Mustard’s Dream>):"; : print "BECOME CUSTARD (if you are not already), WAKE UP, W, N, D, E (into one of the identical corridors called <^i^A Corridor>), BECOME MUSTARD, BARK (you then automatically become Custard), FOLLOW, BECOME MUSTARD, BARK, FOLLOW, BECOME MUSTARD, BARK, FOLLOW (you find yourself outside a door), PUSH BAR (Custard and Mustard are reunited!) "; : print "-------------------------------------"; : print "<^b^12. Getting into the exhibition room> (from <^i^By a Door>):"; : print " S, E, S, W, U, S, S (to <^i^The Broom Cupboard>), BECOME MUSTARD (if you are not already), U (to <^i^On the Top Shelf>), OPEN GRILLE, U , N, OPEN GRILLE, D (you plunge into the room from high above)."; : ask_bool { var = areyousure question = Reveal more walkthrough? yes_answer = yes, reveal more; no_answer = no, I've seen enough - return to game. } : if (areyousure) { : increment "walkthrough" ; } : else { : redescribe; } }: if (walkthrough==12) { : clear_screen; : print "<^b^13. The display case and the collar> (from <^i^The Old Gaol Room>):"; : print "N, X CASES, X CASE (a combination lock is revealed), S, READ BOARDS (a date is revealed), N, BECOME MUSTARD (if you are not already), STAND ON CUSTARD (you are now high enough to operate the lock), PRESS 1, PRESS 7, PRESS 2, PRESS 6, PULL HANDLE (the case opens and you fall off Mustard’s back), STAND ON CUSTARD, GET COLLAR, D, S, X EXHIBITS, X WAXWORK (a fishing creel is revealed), OPEN CREEL, PUT COLLAR IN CREEL, W (to <^i^Tea Room>), X DESK (the fake collar is revealed), GET COLLAR, E, N, STAND ON CUSTARD, PUT COLLAR IN CASE, CLOSE CASE (the crooks burst in and start ransacking the place; Custard and Mustard end up on the corridor)."; : print "-------------------------------------"; : ask_bool { var = areyousure question = Reveal more walkthrough? yes_answer = yes, reveal more; no_answer = no, I've seen enough - return to game. } : if (areyousure) { : increment "walkthrough" ; } : else { : redescribe; } }: if (walkthrough==13) { : clear_screen; : print "<^b^13. The display case and the collar> (from <^i^The Old Gaol Room>):"; : print "N, X CASES, X CASE (a combination lock is revealed), S, READ BOARDS (a date is revealed), N, BECOME MUSTARD (if you are not already), STAND ON CUSTARD (you are now high enough to operate the lock), PRESS 1, PRESS 7, PRESS 2, PRESS 6, PULL HANDLE (the case opens and you fall off Mustard’s back), STAND ON CUSTARD, GET COLLAR, D, S, X EXHIBITS, X WAXWORK (a fishing creel is revealed), OPEN CREEL, PUT COLLAR IN CREEL, W (to <^i^Tea Room>), X DESK (the fake collar is revealed), GET COLLAR, E, N, STAND ON CUSTARD, PUT COLLAR IN CASE, CLOSE CASE (the crooks burst in and start ransacking the place; Custard and Mustard end up on the corridor)."; : print "-------------------------------------"; : print "<^b^14. The burglar alarm> (from <^i^The Upper Corridor>):"; : print "E, X DESK (a paper bin is revealed), GET BIN, N (to <^i^In the Vestibule>), X LEDGE (cut wires are revealed), PUT BIN ON WIRES (the burglar alarm sounds. Custard and Mustard end up in <^i^The Museum Yard>). "; : print "-------------------------------------"; : ask_bool { var = areyousure question = Reveal more walkthrough? yes_answer = yes, reveal more; no_answer = no, I've seen enough - return to game. } : if (areyousure) { : increment "walkthrough" ; } : else { : redescribe; } }: if (walkthrough==14) { : clear_screen; : print "<^b^13. The display case and the collar> (from <^i^The Old Gaol Room>):"; : print "N, X CASES, X CASE (a combination lock is revealed), S, READ BOARDS (a date is revealed), N, BECOME MUSTARD (if you are not already), STAND ON CUSTARD (you are now high enough to operate the lock), PRESS 1, PRESS 7, PRESS 2, PRESS 6, PULL HANDLE (the case opens and you fall off Mustard’s back), STAND ON CUSTARD, GET COLLAR, D, S, X EXHIBITS, X WAXWORK (a fishing creel is revealed), OPEN CREEL, PUT COLLAR IN CREEL, W (to <^i^Tea Room>), X DESK (the fake collar is revealed), GET COLLAR, E, N, STAND ON CUSTARD, PUT COLLAR IN CASE, CLOSE CASE (the crooks burst in and start ransacking the place; Custard and Mustard end up on the corridor)."; : print "-------------------------------------"; : print "<^b^14. The burglar alarm> (from <^i^The Upper Corridor>):"; : print "E, X DESK (a paper bin is revealed), GET BIN, N (to <^i^In the Vestibule>), X LEDGE (cut wires are revealed), PUT BIN ON WIRES (the burglar alarm sounds. Custard and Mustard end up in <^i^The Museum Yard>). "; : print "-------------------------------------"; : print "<^b^15. Handclap Harry> (from <^i^The Museum Yard>):"; : print "N, E, E, S, S, S (ending up at Riverside by the Weir; Harry jump into the river), BECOME CUSTARD (if you are not already), S (into <^i^East River>), E, GET HARRY, W (dragging Harry with you), W, N, N (onto the slipway; the police and Professor Ambleside appear and Harry is arrested). "; : print "-------------------------------------"; : ask_bool { var = areyousure question = Reveal more walkthrough? yes_answer = yes, reveal more; no_answer = no, I've seen enough - return to game. } : if (areyousure) { : increment "walkthrough" ; } : else { : redescribe; } }: if (walkthrough==15) { : clear_screen; : print "<^b^16. The End> (from <^i^Northern Slipway>):"; : print " BARK (the police and Professor Ambleside will now follow you), N, W, N, N, N, W, N, N, E, S, S (Sergeant Wise opens the museum), S, W, W, S (to <^i^The Old Gaol Room>), GET COLLAR. "; : print "-------------------------------------"; : print "END OF WALKTHROUGH"; : ask_bool { var = areyousure question = Reset to start of walkthrough? yes_answer = yes, reset; no_answer = no, return to game without resetting. } : if (areyousure) { : set_integer var = "walkthrough" value = "0" ; } : redescribe; } #STUCK end } #CREDITS start : match "about-; credits-; acknowledgements" { : clear_screen; : print "^c^^b^Custard & Mustard's Big Adventure"; : print "^c^© 2022 Christopher Merriner"; : print "^c^^b^ACKNOWLEDGEMENTS"; : print "^u^Technical"; : print "The game was written with Adventuron 1.0.0 Beta 75f. Adventuron © 2017 Chris Ainsley / © 2020 Adventuron Software Limited, UK: https://adventuron.io/;"; : print "The theme tune was created with BeepBox: https://www.beepbox.co/;"; : print "Animation and video processing was done in Photoscape and Shotcut;"; : print "The fancy fonts used are 'Saveloy' (Chequered Ink - Non-Commercial License) and Hantu Kom Kom (Haslinda Adnan - Free for personal and non-profit use);"; : print "Illustrations were created by the author, incorporating some elements of freely-available clip art and antique photography, on a Fair Use basis."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "^c^^b^Custard & Mustard's Big Adventure"; : print "^c^© 2022 Christopher Merriner"; : print "^c^^b^ACKNOWLEDGEMENTS"; : print "^u^Personal"; : print "<^b^Chris Ainsley>: is to be thanked, not only for creating Adventuron in the first place but also for continuing to develop it into the fantastic tool it is today, and for remaining ever responsive to bug-reports and feature requests from authors."; : print "<^b^Beta Testers>: When it came to beta testing, I really did have the The A-Team on this one. If you have a problem, if no one else can help, and if you can find them, then I highly recommend you enlist the help of the following excellent people (as long as your problem is text-game related; I can't really vouch for their competence in other areas): <^b^Jim MacBrayne>, <^b^Rovarsson>, <^b^Mike Russo>, <^b^Heiko Spies>, and <^b^Amanda Walker>. I'm hugely indebted to all of them for giving up many hours of their time to plough through the original wonky, buggy adn [[sic]] typo-filled original version of the game, and for making many good and insightful suggestions which were incorporated into the final release. It is an immeasurably better game because of their efforts and I am very grateful to them all. An extra thank you is owed to Rovarsson for going beyond the call of duty with last minute checking and playing-through. Anything that is still wrong with the game is, of course, entirely my own fault. The author can be reached at christopher.merriner@gmail.com"; : print "<^b^Authoring help>: The game originally started out as an idea bounced around between myself and my son, <^b^Flint>, who showed boundless enthusiasm for the project until he turned 9 and we tragically lost him, to Minecraft. However, before he disappeared into a world of cubic abstraction, Flint did gift me with some clever puzzle ideas and some excellent names (you have him to thank for 'Ernel Custard', amongst others). Perhaps one day, son, long after I'm gone, you'll look back at this game and decide that, after all, defecting to Minecraft was entirely the right decision. "; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "<^u^Dedication>"; : print "The game is dedicated to <^b^Colonel Mustard>, our beloved real-life dog, without whom our lives would be hugely less smelly and complicated yet, somehow, poorer for it. Thanks Mustard!"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print_graphic "colonel_mustard" width = "35"align = "center" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } #CREDITS end #SAVE start : match "save-" { : print "(Choose save slot below or, to save to file, quit this menu with option 4 and type SAVEF.)" ; :save; } #SAVE end #LOAD start : match "load-" { : print "(Choose load slot below or, to load from file, quit this menu with option 4 and type LOADF.)" ; :load; } #LOAD end : if (is_at "museum_reception"&&is_present "janet_makepeace"&&custard_on_sofa) { : if (!verb_is"examine"&&!verb_is "inventory"&&!verb_is "load"&&!verb_is "save"&&!verb_is "wait"&&!verb_is "sleep" &&!verb_is "become"&&!verb_is "undo") { : print "I'd better not try that while Janet Makepeace is here!"; : done ; } } : if (chasing_harry) { : if (is_movement_command () ) { : if (is_at "cripplepepper_lane"&&!verb_is "east"||is_at "east_street"&&!verb_is "east"||is_at "elbow_way"&&!verb_is "south"||is_at "pinchmaid_hill"&&!verb_is "south"||is_at "knockbarrel_corner"&&!verb_is "south") { : if (i_am_mustard) { : print "\"Not now!\" says Custard. \"We've got to get after Handclap Harry!\""; : done ; } : else { : print "\"Not now!\" says Mustard. \"We've got to get after Handclap Harry!\""; : done ; } } } } : if (nighttime&&handclap_harry_description!="Handclap Harry (dripping wet and handcuffed)"&&parent_of "merve_swerve"!="museum_yard") { : if (is_movement_command()) { : if (is_at "knockbarrel_corner"&&verb_is "north"||is_at "hoddle_street"&&verb_is "north") { : print "This really doesn't feel like the right time to be gallivanting around town - a person's life is in danger!"; } } } : if (is_at "custards_dream") { : if (!verb_is "become"&&!verb_is "look"&&!verb_is "load"&&!verb_is "loadf"&&!verb_is "save"&&!verb_is "savef"&&!verb_is "wake"&&!verb_is "sleep"&&!verb_is "undo") { : print "Not right now thanks...I'm having such a lovely sleep...maybe come back a bit later..."; : if (parent_of "mustard"=="mustards_dream") { : print "[[You can WAKE UP if you want to, or BECOME MUSTARD if you want to leave Custard to snooze for a while.]]"; } : else { : print "[[You can BECOME MUSTARD if you want to leave Custard to snooze for a while.]]"; } : done ; } } : if (is_at "mustards_dream") { : if (!verb_is "become"&&!verb_is "look"&&!verb_is "load"&&!verb_is "save"&&!verb_is "wake"&&!verb_is "sleep"&&!verb_is "undo") { : print "Nah - I'm far too sleepy for that...been such a long day...maybe come back later and I'll be in the mood for a natter..."; : if (parent_of "custard"=="custards_dream") { : print "[[You can WAKE UP if you want to, or BECOME CUSTARD if you want to leave Mustard to snooze for a while.]]"; } : else { : print "[[You can BECOME CUSTARD if you want to leave Mustard to snooze for a while.]]"; } : done ; } } :mask{ : if (parent_of "mustard"==try_move()||parent_of "custard"==try_move()) { : set_true "pleased_to_see_me" ; } } #TRY MOVE start : match "jump river" { : if (preposition_is "in") { : if (is_at "by_the_river"||is_at "riverside"||is_at "railings"||is_at "slipway_north") { :set_sentence "south" ; } : else_if (is_at "slipway_south") { :set_sentence "north"; } } } : if (is_movement_command () ) { : if (try_move() != ""){ : if (is_at "carpark") { : if (try_move()=="restaurant_entrance") { : if (nighttime) { : print "The Pegasus is shut up and dark at this time of night."; : done ; } : if (i_am_mustard) { : if (is_present "custard") { : if (has_visited "restaurant_entrance") { : print "\"I'm going back in Custard,\" I say."; : print "\"Haven't you had enough of the place?\" he sighs."; : print "\"I won't be long, honest!\" I say."; : if (mustard_got_lid) { : print "I drop the cumbersome wooden lid, bark reassuringly and, leaving Custard behind once more, I slip back through the restaurant doors."; : destroy "mustard_lid"; : set_false "mustard_got_lid" ; } : else { : print "I bark reassuringly and, leaving Custard behind once more, I slip back through the restaurant doors."; } } : else { : print "\"Custard,\" I say, \"I'm going in! I'll try and bring back some caviar for us both.\"\n\"Little fish eggs?\" says Custard, \"no thanks! That's a cat's dinner. I'd rather have a steak. Rare please!\""; : print "\"Coming right up!\" I say, happily - this is going to be an adventure! \"Wish me luck.\""; : print "\"Good luck in there Mustard. Don't be too long.\""; : if (mustard_got_lid) { : print "I drop the cumbersome wooden lid, bark reassuringly and, leaving Custard behind, slip through the doors of the restaurant."; : destroy "mustard_lid"; : set_false "mustard_got_lid" ; } : else { : print "I bark reassuringly and, leaving Custard behind, slip through the doors of the restaurant."; } } : set_false "follow" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; : done ; } } : else { : print "What, me - in there? With this hair? I really don't think I'd fit in with their dress code."; : done ; } } } : if (i_am_mustard&&try_move ()=="north_river"||i_am_mustard&&try_move ()=="south_river") { : print "Do I look like I've got webbed feet and a bill? There's no way I'm going in there!"; : done ; } : if (standing_on_custard) { : if (i_am_mustard) { : print "I jump down off Custard's back."; } : else { : print "I feel Mustard jump down off my back as I start to move. That's a relief - I wasn't really enjoying being a pony!"; } : set_false "standing_on_custard" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; : redescribe; } } : if (is_at "maze") { : decrement "maze_counter" ; :print "I wander along corridors that all look alike..."; : if (maze_counter==0) { : print "Eventually I find my way back to the bottom of the stairs."; : goto "bottom_staircase"; : set_integer var = "bark_counter" value = "0" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : if (is_at "zone_whole_river") { : if (i_am_mustard) { : print "No way! Not until I'm back on dry land."; : done ; } : else_if (try_move()=="") { : if (verb_is "north"||verb_is "south") { : if (is_at "east_river") { : print "I paddle in that direction but soon come up against the high river wall. There's no way out of the river that way! I turn and paddle back to where I started."; : done ; } : else_if (is_at "next_to_weir") { : if (verb_is "north") { : print "I doggy paddle northwards and soon reach the riverside wall with the railings high above me. There's no way out of the river that way! I turn and paddle back to where I started."; : done ; } : if (verb_is "south") { : print "I paddle south but soon come up against the high river wall. There's no way out of the river that way! I turn and paddle back to where I started."; : done ; } } } : else_if (is_at "next_to_weir") { : if (verb_is "east") { : print "I look over towards the weir and see the water slipping smoothly over the edge, and hear the roar of the rapids below. I imagine what it would be like to tumble with it, and splash about in the foam downstream...it's tempting, but my innate doggy sense of danger tells me that would be a bad idea and warns me to keep my distance."; : if (is_carried "handclap_harry") { : print "\"What are you doing?\" screams Harry. \"Trying to throw me over the weir? As if this evening couldn't get any worse! Help! Help!!\" And he starts thrashing around even more than before."; } :done; } } : if (custard_sitting_on_lid) { : print "Doesn't seem much point in jumping off in that direction - there's nothing that way except more river. "; : done ; } : print "I splash around for a while in that direction but give up after a while. There's nothing that way except more river."; : done ; } } : else_if (is_at "museum_reception") { : if (is_present "janet_makepeace") { : print "Better not move anywhere while Janet Makepeace is here or I'll give the game away!"; : done ; } } :mask { : if (try_move() != "") { : if (mustard_sitting_on_lid) { : if (i_am_mustard) { : print "I get off the wooden lid."; : set_false "mustard_sitting_on_lid" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; } : else_if (follow) { : print "Mustard gets off the wooden lid."; : set_false "mustard_sitting_on_lid" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; } } : else_if (custard_sitting_on_lid) { : if (!i_am_mustard) { : print "I get off the wooden lid."; : if (is_at "zone_whole_river") { : print "I splash back into the river like a great big hairy fish!"; } : set_false "custard_sitting_on_lid" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; } : else_if (follow) { : print "Custard gets off the wooden lid."; : set_false "custard_sitting_on_lid" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; } } //SOFA ISSUES!! when in museum reception. : if (is_present "sofa") { : if (i_am_mustard) { : if (mustard_on_sofa) { : print "I get off the sofa."; : set_false "mustard_on_sofa" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; } : if (custard_on_sofa) { : print "Custard gets off the sofa."; : set_false "custard_on_sofa" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; } } : if (!i_am_mustard) { : if (custard_on_sofa) { : print "I get off the sofa."; : set_false "custard_on_sofa" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; } : if (mustard_on_sofa) { : print "Mustard gets off the sofa."; : set_false "mustard_on_sofa" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; } } } } : if (is_exists "mustard_lid"||is_exists "custard_lid") { : if (try_move()!="") { //I've got lid but he hasn't: : if (is_carried "mustard_lid"&&!is_exists "custard_lid"||is_carried "custard_lid"&&!is_exists "mustard_lid") { : print "I try to drag the wooden lid on my own, but it's just too heavy so I have to drop it."; : destroy "mustard_lid"; : set_false "mustard_got_lid"; : destroy "custard_lid"; : set_false "custard_got_lid" ; : create "lid"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } //I haven't got the lid, but he has: : else_if (i_am_mustard) { : if (!is_carried "mustard_lid"&&is_exists "custard_lid"&&follow) { : print "Custard tries to follow me while dragging the wooden lid, but it's just too heavy for him, so he drops it."; : destroy "custard_lid"; : set_false "custard_got_lid" ; : create "lid"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } } : else_if (!is_carried "custard_lid"&&is_exists "mustard_lid") { : print "Mustard tries to follow me while dragging the wooden lid, but it's just too heavy for him, so he drops it."; : destroy "mustard_lid"; : set_false "mustard_got_lid"; : create "lid"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } //we've both got the lid : if (custard_got_lid&&mustard_got_lid) { : if (is_at "slipway_north"||is_at "slipway_south") { : if (try_move()=="north_river"||try_move()=="south_river") { : print "Mustard drops the lid and starts whining. I don't think he likes the water! I can't manage it on my own, so I drop it too."; : set_false "follow" ; : destroy "mustard_lid"; : set_false "mustard_got_lid"; : destroy "custard_lid"; : set_false "custard_got_lid" ; : create "lid"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; : done ; } } //treezle : print "Together, we drag the heavy wooden lid along with us."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } } } } : if (is_at "outside_newsagent") { : if (is_present "pru") { : if (!on_lead) { : clear_screen; : print "I'm just about to scamper off when I hear a grunt from Tadcaster and see his collar being tugged. The great, droopy dog gets to his feet and begins to amble off in the direction of the butcher's shop."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Pru, still engrossed in her phone call, feels a tugging on the lead and tugs back, hard.\n\"Mustard!\" she says, without looking, \"for heaven's sake just sit and be a good boy for a few minutes while I'm on the phone, can't you?\" A few minutes? She's been chewing Gerry's ear off for half an hour now!"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Tadcaster, looking even more confused that usual, obediently turns around and walks back to Pru...until his lead is pulled again, harder, in the opposite direction. I get a sudden whiff of wet towels and a few moments later, a tall, wispy haired bloke appears, wearing thick, square glasses that he squints through as though they make it harder for him to see, not easier. It's Dave 'Terry' Turpin.\n\"Come on then, you stupid hound!\" he says, sounding exasperated, as always."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Dave tries to pull poor Tadcaster away. Pru pulls in the other direction. \n\"Can't you just...\" she begins, before turning and seeing Dave 'Terry' Turpin there right in front of her. \"Oh,\" she says."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "Dave's got a bit of a thing for Pru, but she hasn't got one back. He's got a funny way of showing it too, sort of covering it up with rudeness. He looks down at his dog and sees the two leads clipped to the collar. \"May I ask,\" he begins, pompously, \"why you have attached your lead to my dog's collar?\n\"Your dog's collar?\" says Pru, confused. She looks down and sees Tadcaster's soft, floppy face looking up at her mildly. \"What on earth...\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "They're both too distracted trying to work out what's going on to notice me nip off out of the way to the west."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : goto "outside_butcher"; : redescribe; } } } : if (is_at "market_square") { : if (is_present "bus") { : if (!verb_is "enter") { : if (mustard_button_pushed) { : if (i_am_mustard) { : print "As soon as I stop pressing the button, the doors hiss shut."; } : else { : print "As soon as Mustard stops pushing the button, the doors hiss shut."; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; : set_false "mustard_button_pushed" ; } : else_if (custard_button_pushed) { : if (!i_am_mustard) { : print "As soon as I stop pressing the button, the doors hiss shut."; } : else { : print "As soon as Custard stops pushing the button, the doors hiss shut."; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; : set_false "custard_button_pushed" ; } } } } } #TRY MOVE end #WIRE start : match "pull wire; scratch wire; bite wire; push wire" { : if (is_present "wire"||is_present "cut_wires") { : print "I've learned the hard way never to mess with electrical wires!"; : done ; } } #WIRE end #NORTH start : match "north_;_north" { : if (is_at "slipway_south"&&i_am_mustard) { : print "Do I look like I've got webbed feet and a bill? There's no way I'm going in there!"; : done ; } : if (is_at "outside_butcher") { : if (on_lead) { : print "I make a break for freedom...but I don't get very far before I reach the end of the lead. A moment later, there's a sharp tug on my collar and I find myself being pulled back the way I came as Pru reels me in."; : goto "outside_newsagent"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (is_at "slipway_south") { : print "I jump right in and start to doggy paddle!"; : set_false "follow" ; : if (is_present "mustard") { : print "Mustard whines and paces around on the slipway as I paddle into the river."; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } : else_if (is_at "south_river"||is_at "middle_river") { : print {("I doggy paddle northwards"+(is_carried "handclap_harry" ? ", dragging Handclap Harry through the water with me.":"."))}; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } : else_if (is_at "north_river") { : print {("I doggy paddle into the shallows of the northern bank and then out onto the slipway"+(is_carried "handclap_harry" ? ", dragging Handclap Harry coughing and spluttering out of the water with me.":"."))}; : set_false "harry_in_river" ; : if (nighttime) { : if (is_carried "handclap_harry") { : if (parent_of "sergeant_wise"!="slipway_north") { : if (parent_of "mustard"!="slipway_north") { : print "I hear a clatter of shoes and a flap of slippers and a moment later, Chief Broom, Sergeant Wise and Constable Oddcrisp appear, followed by a heavily-wheezing Professor Ambleside, with Mustard close on their heels."; } : else { : print "I hear a clatter of shoes and a flap of slippers and a moment later, Chief Broom, Sergeant Wise and Constable Oddcrisp appear, followed by a heavily-wheezing Professor Ambleside."; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "\"Well, well, well, Harry,\" says Chief Broom, looking the dripping crook up and down seriously, \"I hope you enjoyed your bath. You certainly needed it. I can still smell your stinking aftershave though.\"" ; : print "\"Well it would stink, wouldn't it Clarissa? You bought it for me!\""; : print "\"Don't be ridiculous Harry,\" she replies, nodding her head a bit more quickly than usual, \"it's been 25 years since I bought you aftershave.\""; : print "\"Yeah, well - a little goes a long way.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"I hate to interrupt,\" says Professor Ambleside, \"but oughtn't we to...\""; : print "\"Sue,\" says Chief Broom, \"arrest that man!\""; : print "Sergeant Wise is just about to steps forward with a pair of handcuffs when Constable Oddcrisp whispers something in her ear. \"Um, excuse me Ma'am,\" she says to Chief Broom, \"but I think perhaps Constable Oddcrisp would like to do that.\""; : print "\"Oh, very well,\" sighs Broom, \"Jimmy - arrest that man!\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Yes Ma'am!\" says Constable Oddcrisp. \"Right,\" he squeaks, turning to Handclap Harry, \"you're under arrest!\""; : print "There's then a bit of a struggle as Oddcrisp tries to get the handcuffs open, but can't so Wise has to help him - and then there's another struggle as he tries to put them on Harry who isn't making things easy by clapping his hands together noisily the whole time. Eventually, Oddcrisp manages to get them over Harry's wrists and the chief crook stands there, cuffed and dripping forlornly."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Okay Harry,\" nods Chief Broom, seriously, \"time to come along with us to the station.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "They're turning to go when Professor Ambleside suddenly cries out, \"Wait! What about the treasure? What about the dog collar?\""; : print "\"The treasure!\" says Oddcrisp."; : print "\"The treasure?\" says Wise."; : print "\"Treasure,\" nods Broom, writing it down in her notebook."; : print "\"Yes!\" says Ambleside, \"where is the sack with all the loot?\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Oh that,\" says Harry casually, \"I had to chuck it. It was weighing me down. Shame that...\" he says wistfully, \"That was going to make me rich that was.\""; : print "\"Chucked it?\" says Ambleside, \"Where?\""; : print "\"Over the weir,\" says Harry."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Ambleside is aghast. \"Over the weir!\" he cries, \"Oh no, no, no - that is terrible! We shall never see it again. The most unique example of Romano-British decorative metalwork ever discovered, lost forever!\""; : print "\"Please calm down Professor,\" says Sergeant Wise kindly, laying a reassuring hand on his arm, \"I'm sure we can recover it. We can dredge the river if it's that important.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Important?\" shouts Ambleside. \"Important! It's priceless! But no, no. There are strange currents and deep channels at the other side of the weir. Abyssal depths. I'm afraid if it has has gone over the weir then it is lost forever.\""; : print "Sergeant Wise smiles sympathetically."; : print "\"All gone!\" he moans, \"What will we tell the insurers? I'll never dare to show myself at a trustee's meeting ever again. Only full price tea and scones for me in the British Museum tea room now. Oh heavens, oh crumbs!\""; : set_true "harry_arrested" ; : create "professor_ambleside"target = "slipway_north"; : create "sergeant_wise"target = "slipway_north"; : create "constable_oddcrisp"target = "slipway_north"; : create "chief_broom"target = "slipway_north"; : create "handclap_harry"target = "slipway_north" ; : create "mustard" target = "slipway_north" ; } } } : if (parent_of "mustard"=="slipway_north") { : set_true "follow" ; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } : else_if (is_at "restaurant_entrance") { : if (is_worn "monocle"&&is_worn "top_hat"&&is_worn"bow_tie") { : if (parent_of "guests"=="in_restaurant") { : print "Holding my head up high while trying to balance the top hat as best I can, I trot proudly into the dining room. The reception waiter glances at me as I pass by and, after a short pause, I hear him announce behind me, \"and their dog.\""; : set_false "rejected" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; : done ; } : else { : print "As I make to walk into the dining room, the reception waiter raises an eyebrow and glares at me with an expression that could curdle milk. I whine and back away with my tail between my legs. "; : done ; } } : else { : print "As I make to go past the reception waiter and into the dining room, he stops me with a sharp cough and points sternly at the sign behind him, shaking his head."; : set_true "rejected" ; : done ; } } : if (is_at "gander_alley") { : if (is_worn "replica_collar") { : print "I'd better not walk around town with the collar on! It's a bit too glitzy to ignore and I don't want to draw attention to myself."; } : else_if (is_carried "replica_collar") { : print "I'd better not carry the dog collar around town. People might think I've stolen it!"; } : else_if (parent_of "replica_collar"=="mustard"||parent_of "replica_collar"=="custard") { : print "We'd better not leave here while one of us is carrying that collar! Someone is bound to notice."; } : else_if (is_beside "replica_collar") { : print "I'd better not leave that dog collar just lying around where anyone might find it." ; } : else_if (parent_of "replica_collar"=="crate") { : if (crate_open) { : print "I'd better close the crate, just to be on the safe side."; } } } : if (is_at "museum_reception"&&!lock_picked) { : print "I try to go that way, but the door is locked!"; } : if (is_at "east_river"||is_at "next_to_weir") { : print "The riverside wall to the north is too steep to climb!"; } : if (is_at "museum_yard") { : if (is_present "crawfield_cat") { : print "Crawfield hisses faintly as I turn my back on him, and I hear him pitter-patter his way back through the little square window."; : destroy "crawfield_cat"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } : if (is_present "merve_swerve") { : if (!alarmed) { : print {(("\"But ")+(i_am_mustard? "Mustard,\" says Custard, \"what about the crooks! We've switched the collar, but shouldn't we, I don't know, raise the alarm or something?\"\nI look back at the dark museum and hear the sounds of breaking glass coming from inside. \"That's just it!\" I say. \"There should be a proper racket right now, but the alarm isn't working! Skeleton Keith must have fixed it.\"\n\"But the police?\"\n\"Oh, they won't turn up unless there are bells ringing. There's never any crime in Little Pottlington after 6.30 on a Saturday so they shut the police station early. They'll all have been in bed for hours now!\"":"Mustard,\" I say, \"what about the crooks! We've switched the collar, but shouldn't we, I don't know, raise the alarm or something?\" I look back at the dark museum and hear the horrible sounds of breaking glass coming faintly from inside.\n \"That's just it!\" says Mustard. \"There should be a proper racket right now, but the alarm isn't working! Skeleton Keith must have fixed it.\"\n\"But the police?\"\n\"Oh, they won't turn up unless there are bells ringing. There's never any crime in Little Pottlington after 6.30 on a Saturday so they shut the police station early. They'll all have been in bed for hours now!\"") )}; : set_true "alarmed" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } } } : if (try_move()!="") { : if (is_carried "skateboard") { : print "I push off with my paws and ride the skateboard northwards."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } } } #NORTH end #SOUTH start : match "south_;_south" { : if (is_at "slipway_north") { : if (i_am_mustard) { : print "Do I look like I've got webbed feet and a bill? There's no way I'm going in there!"; : done ; } : if (policemen_follow) { : print " I jump in the river and Ambleside looks at me quizzically. \"In there?\" he says. \"Are you sure? Well, I'm not certain that these pyjamas are quite waterproof, you know...\"\n\"Not on your life!\" says Handclap Harry, firmly.\n\"Professor,\" says Chief Broom, in a most serious voice, \"kindly tell your furry friends that if they want us to follow them then they should lead us somewhere sensible - otherwise I'll arrest them for wasting police time.\""; : print "After I've had a little play I step out of the water and start shaking myself.\n\"Oh, I say!\" says Professor Ambleside, attempting to shield himself as everyone receives a cold shower."; : done ; } } : if (is_at "market_passage") { : if (on_lead) { : print "I make a break for freedom...but I don't get very far before I reach the end of the lead. A moment later, there's a sharp tug on my collar and I find myself being pulled back the way I came as Pru reels me in."; : goto "outside_newsagent"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (is_at "slipway_north") { : if (!i_am_mustard&&!has_not_created "lid"&&!is_exists "lid") { : if (parent_of "handclap_harry"=="next_to_weir") { : print "There's no point in jumping in the river here! I need to be up by the weir!"; : done ; } : else_if (harry_arrested) { : print "I've had enough swimming for one day!"; : done ; } } : if (custard_on_skateboard) { : drop "skateboard"quiet = "true" ; : print "I get off the skateboard"; : set_false "custard_on_skateboard" ; } : print "I jump right in and start to doggy paddle!"; : set_false "follow" ; : if (is_present "mustard") { : print "Mustard whines and paces around on the slipway as I paddle into the river."; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } : else_if (is_at "north_river"||is_at "middle_river") { : print {("I doggy paddle southwards"+(is_carried "handclap_harry" ? ", dragging Handclap Harry through the water with me.":"."))}; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } : else_if (is_at "south_river") { : if (is_carried "handclap_harry") { : print "There doesn't seem much point in dragging him up the southern bank. I should take him to the police on the other side of the river!"; : done ; } : else { : print {("I doggy paddle into the shallows of the southern bank and then out onto the slipway.")}; : if (parent_of "mustard"=="slipway_south") { : set_true "follow" ; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } } : if (is_at "village_hall") { : if (!is_exists "skaters") { : print "I try to, but there's a locked gate in the way!"; : done ; } : else { : set_false "follow" ; : move ; } } : if (is_at "museum_yard") { : if (parade_done&&has_not_created "crawfield_cat") { : print "I'm heading for the entrance when I spot something dropping from a little square window in the wall just above the pitched roof of the porch and, a moment later, a big black cat appears in front of us, barring the way.\n\"Going somewhere, gentlemen?\" He purrs smoothy. It's Crawfield!"; : create "crawfield_cat"; : set_true "chippy_open" ; : set_true "back_chippy_open" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : append "\"Hello Crawfield,\" I say. We've met before, "; : if (i_am_mustard) { : append "when me and Pru have been past here on our walks. He lives in the museum and likes to think he's on sentry duty at all times, guarding the place against any unwanted comers."; } : else { : append "when Rita used to visit Janet at the museum. He lives in the museum and likes to think he's on sentry duty at all times, guarding the place against any unwanted comers."; } : print " \"Hello?\" replies Crawfield, preening his whiskers as his tail flicks back and forth. \"Are we on such familiar terms already?\" He peers down his nose at both of us for a moment.\n\"Ah yes, it's scruffy little Mustard isn't it? I should recognise your smell anywhere.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : if (i_am_mustard) { : print "Like most sensible dogs, I decides to take that as a compliment. \"Thanks Crawfield!\" I say, \"you don't smell too bad yourself. Only, a bit, you know - fishy.\""; : print "Crawfield hrumphs and begins to lick his paws. \"I <^i^may> have had mackerel for lunch,\" he replies haughtily, before turning to Custard. \"And what, pray, have we here? Some sort of woolly mammoth is it? How extraordinary, I thought you were all extinct.\"\n\"Crawfield, it's me, Custard!\" says Custard's voice, emerging from somewhere deep within his hairy fleece, \"you remember? Rita's dog.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Crawfield is obviously puzzled for a moment but then the light dawns. \"Ah yes, of course, Rita and Custard but,\" he looks at Custard with disdain, \"how on earth did you come by such a ridiculous hair style? Perhaps it is the fashion these days. I admit I am a little out of touch.\" And with that he flicks one of his legs up behind his ear and begins to wash his nether regions."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; } : else { : print "Like most sensible dogs, Mustard decides to take that as a compliment. \"Thanks Crawfield!\" he says, \"you don't smell too bad yourself. Only, a bit, you know - fishy.\""; : print "Crawfield hrumphs and begins to lick his paws. \"I <^i^may> have had mackerel for lunch,\" he replies haughtily, before turning to me. \"And what, pray, have we here? Some sort of woolly mammoth is it? How extraordinary, I thought you were all extinct.\"\n\"Crawfield, it's me, Custard!\" I say, \"you remember? Rita's dog.\""; : print "Crawfield is obviously puzzled for a moment but then the light dawns. \"Ah yes, of course, Rita and Custard but,\" he looks at me with disdain, \"how on earth did you come by such a ridiculous hair style? Perhaps it is the fashion these days. I admit I am a little out of touch.\" And with that he flicks one of his legs up behind his ear and begins to wash his nether regions."; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Never mind that!\" interrupts Mustard, \"Crawfield, we've got to get into the museum!\""; : print "\"But why?\" says Crawfield, not even bothering to look up. \"What business can you pair possibly have in there? You know very well there are no dogs allowed inside. Except, of course, for <^i^assistance> dogs...\" he breaks off from washing himself and stares at both of us narrowly, \"you are neither of you claiming to be that, are you? It hardly seems likely.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"No,\" I say, \"not that, but, you see...\""; : print "\"Ah well then,\" says Crawfield, putting his leg down, \"I'm afraid that I simply can't help you, dear boys.\" "; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "\"But,\" I say desperately, \"you don't understand! The ancient Romano-British dog collar! It's going to be stolen!\" "; : print "\"What on earth are you blathering about?\" says Crawfield, with a flick of his tail."; : print "Hurriedly, I tell him everything."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"I see,\" purrs Crawfield, licking a slender black paw thoughtfully, \"and you require my assistance to prevent this calamity from occurring?\"\n\"Yes! At least, to get us past Janet Makepeace and into the museum.\""; : print {("\"And then?\" Crawfield asks, preening his whiskers.\n\"Well, then, you see..we'll...I mean...\" I turn to "+(i_am_mustard? "Custard": "Mustard")+" and whisper, \"what's supposed to happen after that?\"")} ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Erm, well...I thought you'd worked that bit out?\" he whispers back."; : print "\"I see...\" interrupts Crawfield, smoothly, \"so you have no plan?\"\n\"Well, not as such...I mean, not quite. Not yet.\""; : print "\"Never mind, dear boy, never mind.\" Crawfield sighs and gets to his feet, pacing around in front of us both like a sleek, black ribbon.\"On balance, I believe that I would be prepared to help you.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "\"Crawfield!\" I yelp ecstatically, \"You wonderful cat! I could kiss you!\""; : print "\"That won't be necessary,\" he replies with disdain, \"and really, I have little choice, whatever my natural inclinations may be. Us dogs and cats may never quite see eye to eye, but we are bound together by our mutual relations with people. Such a delicate symbiosis can only be maintained so long as the balance of reciprocity remains....\""; : print {("\"What he's on about?\" whispers "+(i_am_mustard ? "Custard.":"Mustard."))}; : print "\"No idea,\" I whisper back. \"He's gets like this sometimes. Just let him carry on for bit. He'll be finished soon.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"...fragile interdependency, so to speak. So, in short, and not to put too fine a point upon it - we can't let them get the upper hand.\" He falls silent and sits statuesque with his nose in the air, like a conductor at the end of a symphony waiting for the applause."; : print "\"So...\" I say, after an awkward silence, \"you will definitely help us then?\""; : print "\"Why yes? Didn't I just say?\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print {("I'm just leaping up at "+(i_am_mustard? "Custard":"Mustard")+" in celebration when Crawfield holds up a paw. \"I would, however, expect a little something in return. Not that I am expecting remuneration as such - I should never be so vulgar as to ask for that - but, well, a little down payment, as it were, against my goodwill?\"")}; : print {("I look at "+(i_am_mustard? "Custard":"Mustard")+" in confusion. \n\"What sort of, um, down payment?\"")}; : print "\"Oh dear boy,\" he purrs, \"that's not for me to say. Use your intelligence, inferior though it may be. Or, failing that - your instinct. Some dainty dish, perhaps? A tasty morsel fit for the refined palate of one such as I? I'll leave it up to you. And now, I believe our interview is at an end. Good day to the pair of you.\" And so saying, he leaps nimbly up the side of the porch, skips gracefully across the roof and settles himself serenely just beneath the little square window."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_present "crawfield_cat") { : print "As I approach the door to the museum, I see Crawfield's sleek, black coat bristle and he suddenly looks twice the size. He holds up one dainty paw, fixes me with an icy stare, and makes a faint \"tut-tutting\"noise at the very back of his throat. I back off hastily, my tail between my legs." ; : done ; } : else_if (!has_not_created "crawfield_cat"&&!crawfield_done) { //pica : if (i_am_mustard&&is_present "custard"||!i_am_mustard&&is_present "mustard") { : print {("As I approach the door to the museum, Crawfield's slender form jumps from the window and flows like ink across my path, stopping me in my tracks. \n\"Well?\" he asks, \"Do you have anything for me?\"\nI look at "+(i_am_mustard? "Custard":"Mustard")+" nervously. \"Well, um...\"")}; } : else { : print {("As I approach the door to the museum, Crawfield's slender form jumps from the window and flows like ink across my path, stopping me in my tracks. \n\"Well?\" he asks, \"Do you have anything for me?\"\nI fidget nervously. \"Well, um...\"")}; } : print "\"Try again, dear boy - try again,\" he replies, icily, and his golden eyes glint menacingly at me before he turns swiftly and pitter-patters his way gracefully back up the side of the porch and across the roof, settling himself just beneath the little square window."; : create "crawfield_cat"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_present "janet_makepeace") { : print "Janet pierces me with her steely glaze as I'm about to walk past her. One look is enough for me. I slink back with my tail between my legs."; : done ; } : else_if (is_present "chief_broom") { : if (museum_door_open&&!is_present "handclap_harry") { : print "\"Where is that dog going, Sue?\" says Chief Broom to Sergeant Wise."; : print "\"It looks like he's heading for the museum, Ma'am,\" says Wise."; : print "\"Well, stop him,\" says the Chief, \"we don't want him contaminating the crime scene.\""; : print "\"Yes Ma'am,\" says Wise. She steps forward and locks the door to the museum."; : set_false "museum_door_open" ; : done ; } : if (policemen_follow) { : if (!museum_door_open) { : print "\"I think he wants to get back inside the museum Ma'am,\" says Wise, perceptively."; : print "\"Into the crime scene?\" says Chief Broom, nodding seriously. \"I'm not sure the regulations allow that.\""; : print "\"They are our only lead, Chief,\" says Wise, with a kindly smile."; : print "\"Well, I suppose so,\" says Chief Broom, \"but perhaps I'd better walk back to the station and check, just in case.\""; : print "\"Ooh,\" says Jimmy, \"I really can't stay out much longer! My Mum says I'm terrible the next day if I haven't had my eight and a half hours sleep.\""; : print "\"I just don't think there's time for that, Ma'am,\" whispers Wise to Broom."; : print "Chief Broom nods slowly. \"Very well Sue. Open up then.\""; : print "Sergeant Wise steps forward and unlocks the door for me."; : set_true "museum_door_open" ; : set_true "exhibition_door_open" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } } } : else_if (!museum_door_open&&!policemen_follow) { : print "I jump up against the door of the museum, but it's closed."; : done ; } } : if (is_at "railings"||is_at "by_the_river" ) { : if (i_am_mustard) { : print "There's no way am I jumping into the river!"; : done ; } : else { : if (is_at "railings") { : if (parent_of "handclap_harry"=="next_to_weir"||parent_of "handclap_harry"=="east_river"||parent_of "handclap_harry"=="middle_river"||parent_of "handclap_harry"=="north_river"||parent_of "handclap_harry"=="south_river") { : gosub "dropper" ; : if (peering==0) { : print "While the people are all standing around arguing with one another, I whisper something to Mustard, leap up onto the railings and then dive into the river."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "\"What on earth?\" I hear Constable Oddcrisp say."; : print "\"Great heavens above!\" cries Ambleside."; : print "\"What's happening Sue?\" says Chief Broom."; : print "\"A dog has jumped into the river as well, Ma'am.\""; : print "\"Jimmy!\" says Chief Broom, \"Jump into the river at once and save that dog!\""; : print "\"Ooh, but what about my glue ear?!\" wails Jimmy pitifully."; : print "\"I think the dog can swim Ma'am,\" interjects Sergeant Wise, helpfully."; : print "Chief Broom nods slowly and seriously. \"Swimming dog,\" she says, and writes something down in her notebook."; : increment "peering" ; } : else { : if (peering==1) { : print "\"Oh good lord - another one!\" cries Professor Ambleside, as he sees me jump into the river again."; : print "\"Where are all these dogs coming from?\" says Chief Broom."; : print "\"I think it's the same one Ma'am,\" says Sergeant Wise, \"it was already dripping wet when it jumped in. It must have got out and gone back in again.\""; : increment "peering" ; } : else_if (peering>1) { : print "\"What, again?!\" cries Constable Oddcrisp as he sees me leap into the river once more."; : print "\"What on earth is going on?\" cries Chief Broom."; } } : set_false "follow" ; : goto "east_river"; : create "mustard" target = "slipway_north" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : if (harry_arrested) { : print "No thanks - I've had enough of that for one night!"; } : else { : print "Doesn't seem a very sensible place to jump in and have a swim, right next to the weir!"; } } } : else { : print "It doesn't seem very sensible to jump in from here."; } } } : if (is_at "east_river"||is_at "next_to_weir") { : print "The riverside wall to the south is too steep to climb!"; } : if (is_at "back_of_chipshop") { : if (parent_of "custard"=="in_back_of_chipshop"||parent_of "mustard"=="in_back_of_chipshop") { : print {("I'd better not while "+(i_am_mustard ? "Custard":"Mustard")+" is in there.")}; : done ; } : if (back_chippy_open) { : if (follow) { : if (i_am_mustard) { : print "\"They don't like dogs in the chip shop, Custard,\" I say. \"And especially not in the back. I think I'd better sneak in there alone."; : print "\"Ok,\" says Custard,\"I'll wait out here for you.\""; } : else { : print "\"They don't like dogs in there, Mustard,\" I say. \"And especially not in the back. I think I'd better sneak in there alone."; : print "\"Ok,\" says Mustard,\"I'll wait out here for you.\""; } : set_false "follow" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; } : move; } } : if (try_move()!="") { : if (is_carried "skateboard") { : print "I push off with my paws and ride the skateboard southwards."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } } } #SOUTH end #EAST start : match "east_;_east" { : if (is_at "east_of_lamp_post") { : if (is_present "custard"&&custard_tied) { : print "Custard looks at me sadly - the bit of string isn't long enough for him to follow me."; : set_false "follow" ; : move; : if (pe) { : print "[[Press enter]]"; } :press_any_key; } } : else_if (is_at "outside_butcher"){ :if (is_present "tadcaster") { : if (initial_tadcaster_talk) { : print "tadcaster follows you..."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } } : else_if (parent_of "tadcaster"=="outside_newsagent"&&!on_lead) { : print "I can see Pru and Dave 'Terry' Turpin still talking outside Ogodu's - except, seeing as how he always manages to rub her up the wrong way, they're more or less arguing now. I'd better leave them to it for the moment and enjoy being free for a while."; : done ; } } : if (is_at "inside_chipshop") { : if (is_present "tommy_spratt") { : clear_screen; : print { text = \ Tommy spots me as I emerge from under the lip of the counter. "Hey!" he yells. "Who do you belong to? Flipping scavengers..." He picks up the nearest thing to hand, which happens to be a pickled onion, and lobs it right at me. "Get out of it!" I hear him shout, and I don't need to be told twice. I run out of the shop as the pickled onion ricochets off the door frame behind me. \ } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : create "tommy_spratt"target = "in_back_of_chipshop" ; : move; } } : if (is_at "south_gardens") { : if (!has_not_created "lid") { : if (!nighttime) { } : else { : print "The beer tent is closed now the fête is over."; } } : else { : print "I try to, but there's a big tent in the way and it's closed. I can hear people inside - they're probably getting ready for the rush once the fête is officially open and the beer drinking begins."; : done ; } } : if (is_at "bottom_staircase") { : if (!has_visited "outside_storeroom") { : print "I wander into the identical corridors..."; : goto "maze"; : set_integer var = "maze_counter" value = "3" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : if (is_at "museum_storeroom"&&!storeroom_door_open) { : print "I try to, but there is a closed door in the way!"; } : if (is_at "exhibition_room") { : if (!museum_door_open) { : print "But the door to the exhibition room is locked!"; } } : if (is_at "middle_river"||is_at "east_river") { : print {("I doggy paddle eastwards"+(is_carried "handclap_harry" ? ", dragging Handclap Harry through the water with me.":"."))}; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } : else_if (is_at "next_to_weir") { : print "Over the weir? No way!"; : done ; } : if (try_move()!="") { : if (is_carried "skateboard") { : print "I push off with my paws and ride the skateboard eastwards."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } } } #EAST end #WEST start : match "west_;_wesr" { : if (is_at "west_of_lamp_post"&&is_exists "custard"&&custard_tied) { : if (tightness==0) { : print "Custard's string is just about long enough for him to follow, so he trots after me!"; : set_true "follow" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } : else { : print "Custard looks at me sadly - the bit of string isn't long enough for him to follow me."; : set_false "follow" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } } : else_if (is_at "busy_road") { : print "You must be joking! It's far too busy to go anywhere near - I'd be flat as a pancake in a split second."; : if (!has_visited "slipway_south") { : print "I watch all the cars zooming over the bridge and wonder what can be so interesting on the other side of the river!"; } : done ; } : else_if (is_at "village_hall") { : if (custard_on_skateboard||mustard_on_skateboard) { : if (is_exists "skaters") { : print "I'm about to skate off when the leader of the gang stops me. \"Hey doggy,\" he says, ruffling my ears, \"that's my spare board! I can't let you scoot off on that. Not unless...\" he looks at me thoughtfully, obviously a bit impressed that I've managed to get on it in the first place, \"you can show me how to use it.\""; : done ; } } } : else_if (is_at "outside_chipshop") { : if (parent_of "custard"=="inside_chipshop"||parent_of "mustard"=="inside_chipshop") { : print {("I'd better not while "+(i_am_mustard ? "Custard":"Mustard")+" is in there.")}; : done ; } : else { : if (chippy_open) { : if (follow) { : if (i_am_mustard) { : print "\"They don't like dogs in there, Custard,\" I say. \"I think I'd better sneak in alone."; : print "\"Ok,\" says Custard,\"I'll wait out here for you.\""; } : else { : print "\"They don't like dogs in there, Mustard,\" I say. \"I think I'd better sneak in alone."; : print "\"Ok,\" says Mustard,\"I'll wait out here for you.\""; } : print ""; : set_false "follow" ; : set_false "follow" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; } : move; } } } : if (is_at "corridor") { : if (!lock_picked) { : print "I try to, but there's a locked door in the way!"; } : else { : if (parent_of "handclap_harry"=="exhibition_room") { : print "I don't want to go back in there while those two crooks are still ransacking the place!"; } } } : if (is_at "next_to_weir"||is_at "east_river") { : print {("I doggy paddle westwards"+(is_carried "handclap_harry" ? ", dragging Handclap Harry through the water with me.":"."))}; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } : else_if (is_at "by_the_bandstand") { : if (nighttime) { : print "The big white tent is all shut up now."; } } : if (try_move()!="") { : if (is_carried "skateboard") { : print "I push off with my paws and ride the skateboard westwards."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : move; } } } #WEST end #EXAMINE start : match "examine _" { : if (original "verb" =="read") { : if (is_present "books") { : print "Ordinarily, I'd be up for a little light reading - but I feel in a bit of a rush today!"; : done ; } } : if (noun1_is "lump") { : if (is_present "slate") { : examine "slate"; : done ; } } : if (noun1_is "police") { : if (is_present "constable_oddcrisp") { : print "They're Pottlington's finest. Very official-looking!"; : done ; } } : if (noun1_is "mr") { : if (is_present "mr_czerwinski") { : examine "mr_czerwinski"; } : else_if (is_present "czerwinski_1") { : examine "czerwinski_1" ; } } : if (noun1_is "reflection") { :set_sentence "look in mirror"; } : if (noun1_is "mirror"&&preposition1_is "in") { : if (is_at "ambleside_room") { : print "I look in the mirror and see a strangely familiar-looking dog staring back at me."; : if (i_am_mustard) { : clear "mustard_wearing" ; : set_string var = "mustard_wearing_string" value = "" ; : if (is_worn "bow_tie") { : collection_push { collection = "mustard_wearing" item = "fancy bow tie" } } : if (is_worn "top_hat") { : collection_push { collection = "mustard_wearing" item = "shiny top hat" } } : if (is_worn "monocle") { : collection_push { collection = "mustard_wearing" item = "expensive-looking monocle" } } : print_list_verbose "mustard_wearing" lead_in = "I think how smart I look wearing that " final_part = "." final_sep = " and " append_to_var = "mustard_wearing_string" omit_when_empty = "true" ; : print {(mustard_wearing_string)} : if (is_worn "top_hat"&&is_worn "monocle"&&is_worn "bow_tie") { : print "Posh enough to get into the swankiest place in town, I'd say!"; } } : if (!i_am_mustard) { : clear "custard_wearing" ; : set_string var = "custard_wearing_string" value = "" ; : if (is_worn "bow_tie") { : print "ghgh"; : collection_push { collection = "custard_wearing" item = "fancy bow tie" } } : if (is_worn "top_hat") { : collection_push { collection = "custard_wearing" item = "shiny top hat" } } : if (is_worn "monocle") { : collection_push { collection = "custard_wearing" item = "expensive-looking monocle" } } : print_list_verbose "custard_wearing" lead_in = "I think I look a bit silly wearing that " final_part = "." final_sep = " and " append_to_var = "custard_wearing_string" omit_when_empty = "true" ; : print {(custard_wearing_string)} } } : else { : print "But there's no mirror here!"; } } : if (noun1_is "custard"&&i_am_mustard&&is_present "custard") { : examine "custard"; : clear "custard_wearing" ; //pica : set_string var = "custard_wearing_string" value = "" ; : if (parent_of "bow_tie"=="custard") { : collection_push { collection = "custard_wearing" item = "fancy bow tie" } } : if (parent_of "top_hat"=="custard") { : collection_push { collection = "custard_wearing" item = "shiny top hat" } } : if (parent_of "monocle"=="custard") { : collection_push { collection = "custard_wearing" item = "expensive-looking monocle" } } : print_list_verbose "custard_wearing" lead_in = "He looks a bit silly wearing that " final_part = "." final_sep = " and " append_to_var = "custard_wearing_string" omit_when_empty = "true" ; : print {(custard_wearing_string)} : done ; } : if (noun1_is "mustard"&&!i_am_mustard&&is_present "mustard") { : examine "mustard"; : clear "mustard_wearing" ; //pica : set_string var = "mustard_wearing_string" value = "" ; : if (parent_of "bow_tie"=="mustard") { : collection_push { collection = "mustard_wearing" item = "fancy bow tie" } } : if (parent_of "top_hat"=="mustard") { : collection_push { collection = "mustard_wearing" item = "shiny top hat" } } : if (parent_of "monocle"=="mustard") { : collection_push { collection = "mustard_wearing" item = "expensive-looking monocle" } } : print_list_verbose "mustard_wearing" lead_in = "He looks very smart wearing that " final_part = "." final_sep = " and " append_to_var = "mustard_wearing_string" omit_when_empty = "true" ; : print {(mustard_wearing_string)} : if (parent_of "top_hat"=="mustard"&&parent_of "monocle"=="mustard"&&parent_of "bow_tie"=="mustard") { : print "Posh enough to get into the swankiest place in town, I'd say!"; } : done ; } : if (noun1_is "fish") { : if (is_at "in_back_of_chipshop"&&!is_present "fish") { : print "Horrible smelly fish fillets, all silver and white and glistening. That crate is full of them."; : done ; } } : if (noun1_is "string") { : if (!custard_tied) { :print "It's a little bit of the nylon string that was tethering Custard to the lamp post, still attached to him."; : done ; } : else_if (is_present "custard"||is_present "woolly_lump") { :append "It's nylon cord, quite frayed and old but still tough and horrible to try and chew through. One end is tied to the lamppost and the other is tied to "; : if (is_present "woolly_lump") { : append "the woolly lump."; } : else { : append "Custard."; } } : else { } } : else_if (is_present "fancy_displays") { : if (noun1_is "taj") { : print "It's a perfect scale model of India's most famous monument, crafted entirely from carrots! Definitely one of the seven wonders of Little Pottlington. Angie must have been up all night sticking that together with special carrot glue."; : done ; } : if (noun1_is "nelson") { : print "It's a bust of the 1st President of South Africa that manages to look both noble and inspiring despite being made entirely from radishes! Who knows what Angie was thinking when she put that together? "; : done ; } : if (noun1_is "watership") { : if (i_am_mustard) { : print "It's a scene from <^i^Watership Down>, with fluffy white cauliflowers standing in for rabbits. I'd know it anywhere: it's the bit right at the end, just before Hazel goes off with the black rabbit. It's one of Pru's favourite films and she always cries buckets at that bit. In fact, I feel a lump forming in my throat as I think about it...excuse me for a moment... Sorry - I just had something in my eye. It's gone now. Where were we?"; : done ; } : else { : print "It's a scene from <^i^Watership Down>, with fluffy white cauliflowers standing in for rabbits. I'd know it anywhere: it's the bit right at the end, just before Hazel goes off with the black rabbit. It was one of Rita's favourite films and she would always cry buckets at that bit. In fact, I feel a lump forming in my throat as I think about it...excuse me a moment. Sorry - I just had something in my eye. It's gone now. Where were we?"; : done ; } } } #non-obects start : if (noun1_is "mustard") { : if (i_am_mustard) { :set_sentence "examine me"; } : else_if (is_at "north_river"||is_at "south_river"||is_at "middle_river"||is_at "riverside"||is_at "by_the_river"||is_at "slipway_north"||is_at "slipway_south") { : if (!is_present "mustard"&&parent_of "mustard"=="slipway_north") { :examine "mustard"; : print "I can see him pacing up and down the northern slipway and looking anxiously out across the river."; : done ; } : else_if (!is_present "mustard"&&parent_of "mustard"=="slipway_south") { :examine "mustard"; : print "I can see him pacing up and down the southern slipway and looking anxiously out across the river."; : done ; } //here //here : else_if (parent_of "mustard"=="north_river"||parent_of "mustard"=="middle_river"||parent_of "mustard"=="south_river"||parent_of "mustard"=="east_river"||parent_of "mustard"=="next_to_weir") { : print "He really doesn't look happy! I can see him fidgeting and turning in nervous little circles on top of the wooden lid."; : done ; } } : else_if (is_at "riverside"||is_at "by_the_river"||is_at "railings") { : if (parent_of "mustard"=="north_river"||parent_of "mustard"=="middle_river"||parent_of "mustard"=="south_river"||parent_of "mustard"=="east_river"||parent_of "mustard"=="next_to_weir") { : examine "mustard" ; : print "I can see him figeting and turning in nervous little circles on top of the wooden lid."; : done ; } : else_if (parent_of "mustard"=="slipway_sorth") { :print "It's just Mustard, looking the same as ever."; : print "I can see him pacing up and down the southern slipway and looking anxiously out across the river."; : done ; } } : else_if (is_at "slipway_south") { : if (parent_of "mustard"=="slipway_north") { :examine "mustard"; : print "I can see him pacing up and down the northern slipway and looking anxiously out across the river."; : done ; } : if (parent_of "mustard"=="north_river"||parent_of "mustard"=="middle_river"||parent_of "mustard"=="south_river"||parent_of "mustard"=="east_river"||parent_of "mustard"=="next_to_weir") { : examine "mustard" ; : print "I can see him figeting and turning in nervous little circles on top of the wooden lid."; : done ; } } : else_if (is_at "slipway_north") { : if (parent_of "mustard"=="slipway_south") { :examine "mustard"; : print "I can see him pacing up and down the northern slipway and looking anxiously out across the river."; : done ; } : if (parent_of "mustard"=="north_river"||parent_of "mustard"=="middle_river"||parent_of "mustard"=="south_river"||parent_of "mustard"=="east_river"||parent_of "mustard"=="next_to_weir") { : examine "mustard" ; : print "I can see him figeting and turning in nervous little circles on top of the wooden lid."; : done ; } } } : else_if (noun1_is "custard") { : if (!i_am_mustard) { :set_sentence "examine me"; } : else_if (is_at "north_river"||is_at "south_river"||is_at "middle_river"||is_at "riverside"||is_at "by_the_river"||is_at "slipway_north"||is_at "slipway_south") { : if(!is_present "custard"&&parent_of "custard"=="slipway_north") { :examine "custard"; : print "I can see him waiting patiently on the northern slipway."; : done ; } : else_if (!is_present "custard"&&parent_of "custard"=="slipway_south") { :examine "custard"; : print "I can see him waiting patiently on the southern slipway."; : done ; } : else_if (parent_of "custard"=="north_river"||parent_of "custard"=="middle_river"||parent_of "custard"=="south_river"||parent_of "custard"=="east_river"||parent_of "custard"=="next_to_weir") { : examine "custard" ; : append "I can see him splashing about in the river. "; : if (!nighttime) { : append "He looks like he's enjoying being in the water - I can't imagine why!"; } : done ; } } : else_if (is_at "riverside"||is_at "by_the_river"||is_at "railings") { : if (parent_of "custard"=="north_river"||parent_of "custard"=="middle_river"||parent_of "custard"=="south_river"||parent_of "custard"=="east_river"||parent_of "custard"=="next_to_weir") { : examine "custard" ; : append "I can see him splashing about in the river. "; : if (!nighttime) { : append "He looks like he's enjoying being in the water - I can't imagine why!"; } : done ; } : else_if (parent_of "custard"=="slipway_sorth") { :examine "custard"; : print "I can see him waiting patiently on the southern slipway."; : done ; } } : else_if (is_at "slipway_south") { : if (parent_of "custard"=="slipway_north") { :examine "custard"; : print "I can see him waiting patiently on the northern slipway."; : done ; } : if (parent_of "custard"=="north_river"||parent_of "custard"=="middle_river"||parent_of "custard"=="south_river"||parent_of "custard"=="east_river"||parent_of "custard"=="next_to_weir") { : examine "custard" ; : append "I can see him splashing about in the river. "; : if (!nighttime) { : append "He looks like he's enjoying being in the water - I can't imagine why!"; } : done ; } } : else_if (is_at "slipway_north") { : if (parent_of "custard"=="slipway_south") { :examine "custard"; : print "I can see him waiting patiently on the northern slipway."; : done ; } : if (parent_of "custard"=="north_river"||parent_of "custard"=="middle_river"||parent_of "custard"=="south_river"||parent_of "custard"=="east_river"||parent_of "custard"=="next_to_weir") { : examine "custard" ; : append "I can see him splashing about in the river."; : if (!nighttime) { : append " He looks like he's enjoying being in the water - I can't imagine why!"; } : done ; } } } : if (noun1_is "me") { : if (!i_am_mustard) { : print "As far as I can see through all this curly hair in front of my eyes (which isn't very far) I'm Custard, same as always. "; : if (custard_tied) { : print "I'm tied up to this lamp post in the middle of this dingy little park, same as always."; } } : else { : print "I look down at myself, just to check I'm still there, and find I'm all present and correct as I should be. I'm Mustard, same as always - your furry, friendly little doggy companion. I love everyone and everyone loves me. And that's that."; : if (!mustard_free) { : print "I'm on my lead, which I normally don't mind so much, but today... well, it feels like a special day. The sort of day to be roaming free. I feel like there's excitement just around the corner and I'm not likely to get it if I'm stuck here on the end of this bit of rope."; } } : done ; } : else_if (is_at "outside_butcher"&&parent_of "tadcaster"=="outside_newsagent"&&mustard_free) { : if (noun1_is "pru"||noun1_is "dave") { : print "Dave and Pru are standing outside the newsagents, arguing over poor old Tadcaster."; : done ; } : else { : if (noun1_is "tadcaster") { : print "I can see Tadcaster outside the newsagent, looking even more bemused than usual, with Pru and Dave arguing over the top of his head."; : done ; } } } : else_if (noun1_is "wheels") { : examine; : print "I notice a little flap in the side of the bus, above one of the wheels."; : create "flap"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (noun1_is "writing") {} : else_if (noun1_is "building") { : if (is_at "by_the_river") { : print "It's the Pegasus Restaurant!"; } } : else_if (noun1_is "tag") { : if (is_present "top_hat"&&!is_worn "top_hat") { : if (found_tag) { : print "It's a little strip of black fabric, attached to the black base inside the blackness of the black top hat."; : done ; } } } : else_if (noun1_is "water") { : if (is_at "middle_river"||is_at "east_river"||is_at "north_river"||is_at "south_river"||is_at "next_to_weir") { : print {("It's cold and wet "+(i_am_mustard? "and horrible.":"- just how I like it!"))}; } : else_if (is_at "slipway_north"||is_at "slipway_south"||is_at "railings"||is_at "by_the_river"||is_at "riverside") { : print {("It looks cold and wet "+(i_am_mustard? "and horrible.":"- just how I like it!"))}; } } : else_if (noun1_is "swans") { : if (is_at "slipway_north"||is_at "slipway_south"||is_at "railings"||is_at "by_the_river"||is_at "riverside"||is_at "middle_river"||is_at "east_river"||is_at "north_river"||is_at "south_river"||is_at "next_to_weir") { : if (nighttime) { : print "There aren't any around at this time of night."; } : else { :examine "swan"; } } } : else_if (noun1_is "lid") { : if (is_exists "mustard_lid"&&is_exists "custard_lid") { : print "It's a sturdy wooden lid made to fit the top of a crate. We've both got hold of it."; : done ; } : else_if (is_carried "mustard_lid") { : examine; : done ; } : else_if (is_carried "custard_lid") { : examine; : done ; } : else_if (is_present "lid") { : examine ; : done ; } } #non-objects end #prepositions start : else_if (preposition1_is "under") { : if (noun1_is "seat"||noun1_is "seats") { : if (is_present "seats") { : if (is_present "czerwinski_seat") { : if (has_not_created "bag") { : print "I look under Mr Czerwinski's seat and find a bag!"; : create "bag"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : print "I have another look under the seats but don't find anything else."; : done ; } } : else { : print "I have a look under a few seats at random but don't find very much."; : done ; } } : print "I don't see any seats here."; } : else { :disambiguate_s1 "present"; : if (is_present (s1())) { : print {("I look under the "+original "noun1"+ " but don't find very much.")}; } : else { : if (!noun1_is "case") { : print {("I don't see any "+s1()+" here.")}; } } } } : else_if (preposition_is "in") { : if (noun1_is "hat") { : if (is_worn "top_hat") { : print "I can't look inside it while I'm wearing it!"; : done ; } : print "I look inside the hat."; : if (!found_tag) { : print "Not much to see in there really, except in the bottom I notice a little tag sticking out."; : set_true "found_tag" ; } : else_if (!found_lid) { : print "There's not much to see inside, except that little tag I saw before."; } : else_if (!hat_open) { : print "The false base is closed."; } : else { : print "The false base is open."; : if (rabbit_in_hat) { : print "There is a rabbit asleep inside."; } : else { : print "The base is empty."; } } : done ; } } : else_if (preposition_is "through") { : if (noun1_is "monocle") { : if (is_carried "monocle") { : print "I screw up one eye and squint through it, just like the Mayor did, but everything looks fuzzy. Must be the wrong prescription for me."; } } } #prespositions end : else { :disambiguate_s1 "present"; : if (!noun1_is "case"&&!noun1_is "harry") { : if (!is_present (s1())) { : print {("I look about but don't notice anything very interesting.")}; : done ; } } } : if (noun1_is "mustard") { : if (protagonist () == "mustard") { :set_sentence "examine me"; } : else { : examine; } } : else_if (noun1_is "custard") { : if (protagonist () == "custard") { :set_sentence "examine me"; } : else { : examine; } : if (custard_tied&&!is_present "woolly_lump") { : print "He's attached to the lamp post by a length of string!"; } } : else_if (noun1_is "thing") { : if (has_not_created "tail") { : print "I catch sight of the white fluffy thing out of the corner of my eye and whip my head around to get a closer look at it - but the funny thing is, as soon as I turn around, it scampers off in the opposite direction! Of course, I know it's my tail really - dog's aren't half as dim as people think they are."; : swap o1 = "thing" o2 = "tail" ; } : else { : print "It's my tail, bobbing around behind me as always."; } } : else_if (noun1_is "ambleside") { : if (ambleside_counter>0&&ambleside_counter<7) { : examine; : print "He is currently making a speech."; } } : else_if (s1()== "dressing_table") { : if (is_present "dressing_table") { : examine; : if (has_not_created "bow_tie") { : print "I also spot a bow tie."; : create "bow_tie"; } } } : else_if (noun1_is "desk") { : if (is_at "finds_room") { : examine; : if (!is_exists "replica_collar") { : print "On the desk I spot a gleaming golden dog collar, and a note."; : create "replica_collar"; : create "note"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } } : else_if (noun1_is "guests") { : print {("It's the "+posh_name+"s, waiting to be seated.")}; } : else_if (noun1_is "punters") { : examine; : if (has_not_created "mayor") { : print "Amongst them I spot a couple in very fancy outfits that I recognise from the local paper - it's the Mayor and Mayoress of Little Pottlington!"; : create "mayor"; : create "mayoress"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (noun1_is "glass") { : if (is_present "glass_2") { : examine; : if (has_not_created "monocle") { : print "I spot something in the scum at the bottom of the glass and, sticking my snout inside, I manage to reach it with my tongue, getting a mouthful of beer suds in the process. Yuk!"; : create "monocle"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } } : else_if (noun1_is "harry") { : if (is_at "railings"||is_at "slipway_south"||is_at "slipway_north"||is_at "middle_river"||is_at "north_river"||is_at "south_river"||is_at "east_river"||is_at "by_the_river"||is_at "next_to_weir"||is_at"riverside") { : if (!is_present "handclap_harry"&&harry_in_river) { : print "He's in the river!"; : done ; } } : examine; : if (harry_in_river) { : print "Beads of river water run off his slicked-back hair like water off a duck's back, but his three-decades-out-of-date brown suit is completely soaked through. He's wearing a black fedora that, miraculously, is staying on his head. He's currently thrashing about in the river, calling for help."; } : else_if (harry_arrested) { : print "He's dripping wet and handcuffed. His hair is plastered to his forehead beneath his limp and soggy fedora, and the river water oozes out of his clothes and pools around his feet."; } : else { } } : else_if (noun1_is "hat") { : examine ; : print "It looks very ordinary - on the outside."; } : else_if (noun1_is "rabbit") { : examine; : if (rabbit_in_hat) { : print "It's sound asleep, curled up snuggly in the base of the hat."; } : else { : print "It's sound asleep, curled up amongst all the magical clutter."; } } : else_if (noun1_is "paraders") { : if (parent_of "paraders"=="changing_room") { : print "It's all the people who are set to take part in the Little Pottlington parade! Lots of kids and their grown-up minders helping each other slip on their costumes over their ordinary clothes. They're all excited and chattering away to one another!"; } : else_if (is_at "by_the_bandstand") { : print "It's all the excited paraders, dressed up in their Roman British-style costumes and ready to march around Little Pottlington! "; } } : else_if (noun1_is "cushion") { : append "It's a big fluffy cushion, covered in long tufts of curly brown faux fur. "; : if (i_am_mustard) { : append "It looks like one of Custard's long lost relatives!"; } : else { : append "It reminds me of something, or someone. Oh, I've just realised - it reminds me of me!"; } } : else_if (noun1_is "van") { : print "It's a battered and dented metal box on wheels. It looks like it might have been white once but the flaking paintwork, where it's visible under all the dirt and grime, has turned a nasty yellow. Written in peeling stick-on letters on the side of the van are the words:\n^c^I. SMASHET, E. DROPPSIT & W.E. NICKIT\nTrustworthy and Reliable\nMovers and General Couriers\n^i^Your valuables safe in our hands!^i^"; : print "The back of the van is open."; } : if (noun1_is "taj"||noun1_is "nelson"||noun1_is "mandela"||noun1_is "watership"||noun1_is "down"||noun1_is "mahal"||noun1_is "displays") { : if (is_present "fancy_displays") { : examine "fancy_displays" ; : if (has_not_created "cauliflower") { : print "One of the cauliflower rabbits has rolled away from the rest and looks temptingly within reach."; : create "cauliflower"; } : done ; } } : else_if (noun1_is "exhibits") { : examine ; : if (has_not_created "waxwork") { : create "waxwork"; } } : else_if (noun1_is "waxwork") { : examine; : if (has_not_created "fishing_creel") { : create "fishing_creel"; } } : else_if (noun1_is "case") { : if (is_present "display_case") { : if (harry_arrested) { : print "It's a tall case made out of dark, polished wood. The bottom half of it is a solid plinth with a brass plaque fixed to it that says:\n^c^ <^i^Purchased by public subscription of the generous people of Little Pottlington and presented by H.R.H. The Princess Mavis, 19th July 1962>"; : print "and the actual glass case is about half way up. The glass is smashed and the case is empty."; : done ; } : print "It's a tall case made out of dark, polished wood. The bottom half of it is a solid plinth with a brass plaque fixed to it that says:\n^c^ <^i^Purchased by public subscription of the generous people of Little Pottlington and presented by H.R.H. The Princess Mavis, 19th July 1962>"; : print "and the actual glass case is about half way up. It's more or less in the middle of the room, so visitors can get all the way round it and have a look at what's inside from all angles. I notice the same warning sticker as on the other display cases, and there are some sort of sensors fixed to the floor all around the case with little dots on them that look like they're supposed to light up - but they're all dark, as though their power has been cut."; : if (has_not_created "combination_lock") { : create "combination_lock"; : create "handle"; : create "ancient_collar"; : create "sensors"; : create "door_4"; : create "button_1"; : print "As I trot around it I notice a door at the back of the case, with a combination lock and handle."; } : if (case_open) { : print "The door is open."; } : else { : print "The door is closed."; } : if (real_collar_in_case) { : print "I look through the glass and there, on a little stand, is the ancient Romano-British dog collar, in all its bejewelled golden splendour, as shiny and new looking as if it had just been made! I gaze at it in wonder and imagine my doggy ancestor who would have worn it with pride around his Roman master's villa, nearly two thousand years ago."; : if (!examined_case) { : press_any_key ; : clear_screen; : print {(i_am_mustard? "\"Custard!\" I say, \"There it is. Isn't it beautiful? We've got to stop those crooks getting their hands on it!\n\"But how?\" says Custard, anxiously.\n\"Well I haven't worked that bit out yet. But we'll think of something. The first thing to do is to get it out of that case before the crooks break in and grab it!\"":"\"Mustard, look! There is is. Isn't it beautiful?\"\nI look around and see Mustard gazing at it in awe.\n\"We've got to do something Mustard!\" I say, feeling all giddy and excited as well as quite scared, \"We've got to stop those crooks getting their hands on it!\"\n\"Yes,\" says Mustard, \"we must!\"\n\"But...how?\"\n\"Well I haven't worked that bit out yet,\" he says,\"but we'll think of something. The first thing to do is to get it out of that case before the crooks break in and grab it!\"")}; : set_true "examined_case" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (fake_collar_in_case) { : print "I look through the case and see the replica golden dog collar gleaming convincingly on its stand. Nobody would ever suspect it wasn't the real thing!"; } : else { : print "The case is empty."; } } : else { :set_sentence "examine cases"; } } : if (noun1_is "cases") { : examine; : if (has_not_created "display_case"){ : print "There's only one case that doesn't look out of place in here and that's the tall wooden one in the middle of the room."; : create "display_case"; } } : if (noun1_is "ledge") { : if (lock_picked) { : if (has_not_created "cut_wires") { : print "I notice a wire, running discreetly along the wooden ledge beneath the window, before disappearing into the wall. It seems to have been cut part way along it's length and the severed ends curl up slightly at either side of the gap."; : create "sticker"; : create "cut_wires"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : if (has_not_created "wire") { : print "I notice a wire, pinned discreetly to the wooden ledge where it runs beneath the window before disappearing into the wall."; : create "wire"; : create "sticker"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : if (noun1_is "screen") { : if (is_present "janet_makepeace") { : print "I'm not quite close enough to the desk to see it properly, and I daren't get off the sofa because then Janet will notice me and throw me out!"; } : else { : if (harry_arrested) { : print "It's still showing the same pictures of the empty reception, and the serene and tidy exhibition room. Nothing like the state it's in now, I'm sure!"; } : else { : append"It's divided up into little squares and in each is a picture from a CCTV camera. I can see the corridor, the exhibition room, the reception where I am right now... Hold on - that's not right! "; : if (lock_picked) { : append "The exhibition room looks deserted, but I know that the crooks are in there stealing everything they get their hands on! And it looks as though there's nobody in the reception either, but I'm standing right here next to the desk that I can see on the screen! Those dastardly crooks must have somehow fixed it so the camera isn't recording what's happening right now."; } : else { : append "It looks as though reception is empty but I'm standing right here next to the desk that I can see on the screen! Those dastardly crooks must have somehow fixed it so the camera isn't recording what's happening right now."; } } } } : if (noun1_is "desk") { : if (is_at "museum_reception") { :examine; : if (has_not_created "paper_bin") { : print "I spot a screen at the side of the desk and a waste paper bin tucked beneath."; : create "paper_bin"; : create "screen"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } } : if (noun1_is "pa") { : examine; : if (!is_exists "professor_ambleside") { : print "I'm no expert, but I'd say it was out of action for good!"; } } : if (noun1_is "museum") { : examine; : if (has_not_created "statue") { : create "statue"; : create "key"; : create "chain"; : print "I notice a statue on the roof."; } } : if (noun1_is "sign") { : if (is_at "corridor") { : print "It's a big, printed sign taking up most of the wall. It's covered with blown-up photos of the gold and silver treasures from the Pottlington Hoard, with the golden dog collar largest of all, and in the middle it says:"; : print "^i^^c^"; } } : if (noun1_is "statue") { : if (is_present "statue") { : if (statue_description=="a statue (on the roof of the museum)"||statue_description=="a statue of Ambrose Hockbarrow (on the roof of the museum)") { : print "It's a life-sized statue of a man holding up a thick chain in one hand and a key in the other. He's got strange hair that falls in neat little rows on either side of his head - I'm pretty sure it's a wig - and a handsome face with something a bit cruel about it that makes me glad he's not real but only made out of stone.\nHe's stuck up on the roof of the museum, looking out across Little Pottlington. It must have changed a bit since his day."; } : else_if (statue_description=="a statue of Ambrose Hockbarrow (broken in two)") { : print "It's the statue of Ambrose Hockbarrow, broken in two where it crashed into the bonnet of the getaway car. His bottom half is at one side of the wreckage and his top half, face upwards, at the other. He gazes up at the stars with his strange, cruel expression, still clutching his chain and keys. "; } } } : else_if (noun1_is "bus") { : examine; : if (custard_button_pushed||mustard_button_pushed) { : print "The bus doors are open."; } : else { : print "The bus doors are closed."; } } : else_if (noun1_is "doors") { : examine; : if (is_present "bus") { : if (custard_button_pushed||mustard_button_pushed) { : print "They're open."; } : else { : print "They're closed."; } } } : else_if (noun1_is "gate") { : examine ; : if (!is_exists "skaters") { : print "It's shut."; } : else { : print "It's open."; } } : else_if (noun1_is "dog") { : examine; : print {(("In fact, it looks an awful lot like ")+(i_am_mustard? "Custard!":"me!")+(custard_on_skateboard?" Right down to the wheels.":" Except for the wheels, of course."))}; } : else_if (noun1_is "lid") { : examine; : if (mustard_sitting_on_lid) { : if (i_am_mustard) { : print "I'm sitting on top of it."; } : else { : print "Mustard is sitting on top of it."; } } : else_if (custard_sitting_on_lid) { : if (!i_am_mustard) { : print "I'm sitting on top of it."; } : else { : print "Custard is sitting on top of it."; } } } : else_if (noun1_is "stall") { : examine; : if (has_not_created "fancy_displays") { : print "I notice some fancy fruit and veg displays on Angie's stall."; : create "fancy_displays"; } } : if (noun1_is "paperboy") { : if (i_am_mustard) { : print "He's the spotty youth who shoves the <^i^Little Pottlington Herald> through our letterbox twice a week. I didn't know his other job was leader of the Pottlington Slashers skate gang!"; } : else { : print "I though he was just a paperboy, but it looks like his real job is leader of the Pottlington Slashers skate gang!"; } } : if (noun1_is "writing"&&is_at "gander_alley"&&crate_open) { : print "It's just a jumble of letter and numbers - who knows what it means?"; } } #EXAMINE end #CHASE start : match "chase _" { : if (noun1_is "tail"||noun1_is "thing") { : if (on_lead) { : clear_screen; : print "Watch this - this is a good laugh! I start to chase my tail around and around in a circle, stopping sometimes to have a little bark and a jump around before carrying on.\nIn a few moments, my lead is all tangled up around me."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : if (!is_at "outside_newsagent") { : print "Pru must have seen me messing about as there is a sharp tug on my lead and a moment later she starts to reels me in like a fish, until I'm back outside Ogodu's."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : set_true "untangle" ; : goto "outside_newsagent"; } : print "Pru tuts in that special way she does when something annoying that's happened a thousand times before happens again.\n \"Sorry Darling,\" she says into the phone, \"I just need to sort Mustard out. He's managed to get himself all tangled in his lead again. Honestly, you'd have thought he'd have learned by now...\" Little does she know, bless her.\nShe leans down, still talking into the phone, and untangles me with one hand - unclipping the lead in the process."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : if (is_present "tadcaster"&&is_at "outside_newsagent") { : print "\"Really darling, how wonderful for you,\" Pru says into the phone, too distracted to look what she's doing with the lead. I see my opportunity and scamper behind Tadcaster, giving him a firm nudge so he shuffles forward a bit, right into the range of Pru's flailing arm as she tries to clip the lead back on. Not paying attention at all, she clips it onto Tadcaster's collar, who looks at it slowly, and then at Pru who hasn't even noticed, and then at me, and then back at the lead."; : set_false "on_lead" ; : destroy "lead"; : set_true "mustard_free" ; : remove_trait { subject = "tail" trait = "_listed" } : remove_trait { subject = "thing" trait = "_listed" } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : print "Successfully untangled, she clips the lead back on to my collar and carries on nattering away to Gerry."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else { : print "I chase my tail for a while."; : if (is_present "pru") { : if (is_at "outside_newsagent") { : print "Luckily, pru hasn't realised that I'm free!"; } } } } } #CHASE end #SNIFF start : match "sniff _" { #non-objects start #non-objects end : if (noun1_is "") { : print "What do you want me to sniff?"; : done ; } : if (noun1_is "river") { : if (is_at "zone_whole_river"||is_at "slipway_north"||is_at "slipway_south"||is_at "riverside"||is_at "railings"||is_at "by_the_river") { : print "It smells like fish and silt, with just a hint of diesel."; } } : if (noun1_is "fish"&&is_at "in_back_of_chipshop"&&!is_present "fish") { : print "It smells horribly fishy."; : done ; } : if (noun1_is "duct") { : if (is_at "duct_1"||is_at "duct_2") { : print "It smells like zinc and old socks."; : done ; } } : if (noun1_is "floor") { : if (mustard_trapped) { : if (is_at "bottom_staircase"||is_at "maze") { : print "I sniff the floor and get a nostril full of polish fumes - but there is definitely a faint trace of Mustard in the air. I'm sure he must be down here somewhere!"; : done ; } : else_if (is_at "outside_storeroom") { : print "I sniff and smell Mustard somewhere close by!"; : done ; } } } : if (noun1_is "swan") { : if (is_at "slipway_north"||is_at "slipway_south"||is_at "railings"||is_at "by_the_river"||is_at "riverside"||is_at "middle_river"||is_at "east_river"||is_at "north_river"||is_at "south_river"||is_at "next_to_weir") { : print "Nobody knows what they smell like - because nobody who has ever got close enough has survived to tell the tale!"; } } : if (noun1_is "sack"&&is_at "inside_sack") { : print "It smells very composty!"; : done ; } :disambiguate_s1 "present"; : if (!is_present (s1())) { : if (!noun1_is "me"&&!noun1_is "seats"&&!noun1_is "maitre"&&!noun1_is "door") { : print {("I sniff but don't smell anything very interesting.")}; : done ; } } : if (noun1_is "mustard") { : if (i_am_mustard) { :set_sentence "sniff me"; } : else_if (is_present "mustard") { : print "I smell Mustard, just to check he really is a dog and not a fox, or a big cat, or worst of all a boy in a dog suit (dogs worry about that sort of thing). But no, he smells reassuringly and unmistakably doggy."; : done ; } } : if (noun1_is "custard") { : if (!i_am_mustard) { :set_sentence "sniff me"; } : else_if (is_present "custard") { : print "I smell Custard, just to make sure he's not really a bear in a big curly wig, or a sort of pantomime horse with two boys inside. Dogs worry about that sort of thing. But no - he's definitely a dog. No mistaking that. He's the doggiest dog I've sniffed for while. Definitely hasn't had a bath for a couple of years or so. He smells lovely!"; } } : if (noun1_is "me") { : append "I sniff myself and get a nostril full of my own, comforting doggy smell - reassuringly the same as yesterday. The only time it's any different is after I've been forced to have a bath" ; : if (i_am_mustard) { : print ", like Pru makes me once a month. Always gives me a shock when I sniff myself and find I smell like rose petals rather than the usual. First chance I get I roll around in the muck to get back to normal."; } : else { : print ", but that hasn't happened since my last haircut. And that was a long, long time ago. These days I smell better than ever!"; } : done ; } : if (noun1_is "tadcaster") { : if (is_present "tadcaster") { : print "I sniff Tadcaster's rear end, just to be polite. Definitely Tadcaster, no doubt about it!"; : if (!initial_tadcaster_sniff) { : print "\"Huh?\" says Tadcaster eventually, in his usual delayed way, and turns his head slowly. \"Oh, hello Mustard. Nice of you to smell me.\""; : set_true "initial_tadcaster_sniff" ; } } : else { : print "But Tadcaster isn't here!"; } } : else_if (noun1_is "pru") { : if (is_present "pru") { : print "I sniff Pru, just to check she hasn't been swapped with a Pru-alike that looks just the same but smells all wrong (dogs worry about that sort of thing), but I'm relieved to find it's the familiar Pru smell, same as always. I'd know that smell anywhere."; } : else { : print "But Pru isn't here!"; } } : else_if (noun1_is "lump") { : if (is_present "woolly_lump") { : print "I give the big woolly lump a good sniff, just to check if it really is a long lost sheep in desperate need of a shearing, or a big furry sofa cushion that someone has dumped in the park. But I'm surprised to find it's neither of those. I sniff again. Definitely Dogus doggus! Who'd have thought it?"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "The great big woolly lump moves and shakes itself, and then I see that it's got a head and a tail - so it is a dog after all!"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Oh, um...hello,\" a surprisingly normal sounding voice says from the depths of the lump. Not sure what I was expecting really. Something a bit more rumbly and bear-like I suppose. \"You sniffed?\" it enquires politely.\n\"Hello,\" I say, addressing myself to the nose, which is the only bit of it I can see that isn't just hair, \"hope you don't mind. I thought you might be a lost sheep, you see.\"\n\"Sheep? Oh, yes. Um. The hair. I have to admit,\" it says, shaking itself so that its whole shaggy fleece wobbles like a hairy blancmange,\"that I am a bit overdue a haircut.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"A bit!\" I say. \"Well, anyway - I'm Mustard. Colonel Mustard. Nice to meet you.\"\n\"And I'm, um...\" there's quite a long pause, so long in fact that I think for a moment he might have gone to sleep, but then he says, \"Custard. Ernel Custard.\"\n\"Ernel?\" I say.\n\"Custard,\" he says, \"but just Custard is fine.\"\n\"And just Mustard for me,\" I say.\nAnd that's the introductions over and done with."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "\"I hope you don't mind me asking,\" I say to my new woolly friend, \"why you're tied to this lamp post?\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Oh, this is usually where Kenny leaves me,\" says Custard, \"every time we go for a walk. He always pops in for a few at the Marrowbone.\" He must mean The Marrowbone and Cleaver, a dingy little pub near here. \"He'd take me in with him, but Hyacinth lives there and, well, you know... \" \nI do know - Hyacinth is a mangy old Jack Russell with one eye and a dodgy hip who snarls and strains at the lead like she wants to bite a chunk out of me every time I see her. Pru usually crosses the road when she sees her coming. \n\"He'll be back to get me,\" says Custard, \"in a few hours.\"\n\"A few hours? Every walk? You must be sat out here every day!\"\n\"No,\" he replies, sadly. \"Not every day. I usually only get out once a week. Occasionally twice.\"\n\"But then what about...\"\n\"Out in the yard. There's a tiny little one at the back of the house, where the dustbins live. I sit out there on my own most of the time.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"But that's awful! Even being tied up out here would be better than that! What a terrible owner.\" And I suddenly feel very grateful for Pru, and my comfy sofa, and her always giving me treats even though she knows she shouldn't, and her telling me all her troubles because she knows I'll always listen and I'll always be on her side."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; :clear_screen; : print "\"Kenny doesn't mean to be unkind,\" says Custard. \"It's just that since Rita left, he doesn't like having me around. She was the love of his life, you see. They got me when they first got together and I loved her just as much as he did. She used to walk me all the time, throw the ball for me, brush me...\" and he shakes his matted locks like he's remembering some long ago time when they weren't such a tangled mess, \"but then something went wrong between them. I'm not sure what. He says she ran off with the radiator repair man, but I don't know if that's true. One day I woke up and she wasn't there and now Kenny can't stand seeing me 'cos I remind him too much of her.\" I imagine a human version of Custard, wearing earrings and makeup and standing on his back legs with his shaggy hair billowing all around him."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Well look,\" I say to my new friend, \"you don't have to sit around here all day, waiting for him to come back. Why don't you come with me? I'm looking for an adventure!\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Well, okay...\" he replies slowly. \"I don't suppose it will matter much to Kenny. And I could do with stretching my legs. I'd love to come with you. But, I'm all tied up here at the moment.\"\n I can't argue with that. He really is all tied up! If I can just find a way to get him free..."; : swap o1 = "woolly_lump" o2 = "custard" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } // : else_if (noun1_is "czerwinski") { // : if (is_present "mr_czerwinski") { // : print "I smell Mr Czerwinski."; // : if (protagonist ()=="mustard") { // : set_true "mustard_smell_electrician" ; // } // : else { // : set_true "custard_smell_electrician" ; // } // } // } : else_if (noun1_is "seat"||noun2_is "seat") { : if (is_present "seats") { : if (adjective1_is "czerwinski's"||adjective1_is "mr"||adjective1_is "czerwinski"||noun1_is "czerwinski"||noun1_is "czerwinski's") { : if (is_present "czerwinski_seat") { : print "I have another sniff, just to be sure. It's definitely the seat where Mr Czerwinki has been sitting!"; } } : else { : print "I have a good sniff of the seats and enjoy their delicious and complex smells like I'm savouring a vintage wine."; : if (has_not_created "czerwinski_seat") { : print "One seat in particular catches my attention. I sniff more closely to get a good nostril-full of the smell and get an odour of wires and burning plastic that I recognise immediately. This must be Mr Czerwinski's seat! "; : create "czerwinski_seat"; : done ; } } } } : else_if (noun1_is "hat") { : if (rabbit_in_hat) { : print "Definitely smells alive."; } } : else_if (noun1_is "paving") { : print "The paving smells quite sandy and new, with recent odours of chewing gum and cigarettes, but you can smell the age beneath."; } : else_if (noun1_is "gutters") { : print "The gutters smell deliciously like rubbish and food, with pervasive base-notes of old cattle. Gutters never forget."; } : else_if (noun1_is "newsagent") { : print "It's smells like newsprint, cigarettes and the calling cards of lots of other dogs that have made their mark just here."; } : else_if (noun1_is "butchers") { : print "It smells tasty!"; } : else_if (noun1_is "bin") { : if (is_present "bin_1") { : print "Smells lovely!"; } : else_if (is_present "paper_bin") { : print "It smells more like aloe vera than anything else."; } } : else_if (noun1_is "bench") { : if (is_present "bench_2") { : print "I sniff the nearest one, and get a whiff of of ancient varnish and sweaty shorts."; } : else_if (is_present "bench_1") { : print "It's a funny sort of smell: metallic, with a faint odour of human bottoms on top and dogs' greetings below."; } : else_if (is_present "bench") { : print "It smells like tar and bin bags."; } } : else_if (noun1_is "lamp") { : print "It smells like all the dogs that ever were - a proper doggy time capsule."; } : else_if (noun1_is "pub") { : print "It's got a deep, dark smell of sweat, beer, tobacco and other things, built up over years and years."; } : else_if (noun1_is "cauliflower") { : print "It smells boring. Dogs aren't very interested in vegetables, if I'm honest."; } : else_if (noun1_is "chiperama") { : if (!chippy_open) { : print "It smells of salt, vinegar and old grease."; } : else { : print "It smells of salt, vinegar, fresh fish and frying batter."; } } : else_if (noun1_is "underpants") { : print "I'd really rather not, thanks!"; } : else_if (noun1_is "flagstones") { : print "They smell deliciously grimy and earthy."; } : else_if (noun1_is "cobblestones") { : print "There is a pungent smell of long-ago horses. As I take a sniff I can almost feel them pawing and snorting around me."; } : else_if (noun1_is "flowers") { : print "I sniff them. They smell nice, I suppose, if you like that sort of thing - but it's not the sort of smell I'd spend any time rolling around in, if you know what I mean."; } : else_if (noun1_is "herbs") { : print "They're powerfully stinky!"; } : else_if (noun1_is "beer") { : if (is_at "beer_tent") { : print "Everything in here stinks of it!"; } } : else_if (noun1_is "bees") { : print "I can't really get close enough to sniff them and they don't want to sniff me either - they're more interested in sniffing the flowers."; } : else_if (noun1_is "cafe") { : print "It smells like tea, butter and shopping-bags."; } : else_if (noun1_is "salon") { : print "I sniff it and get a strong whiff of shampoo and nail-varnish."; } : else_if (noun1_is "chip shop") { : print "I sniff and get a weird mixture of grease, newspaper and fish along with whatever detergent they use to swab the tiles down."; }: else_if (noun1_is "slate") { : print "I smell a lot of other dogs - it's just the right size and shape for us to leave our calling cards and so, after I've had a good sniff of the others’, I leave my own."; }: else_if (noun1_is "hedge") { : print "The smell of a privet hedge has got to be the most boring smell in the world."; }: else_if (noun1_is "dog") { : print "It smells like old fabric and sawdust."; }: else_if (noun1_is "punters") { : print "They smell like pork scratchings, sweat, sun cream and beer. Nothing unexpected there."; } : else_if (noun1_is "bloke") { : print "I can't really get close enough to get a good sniff of him."; } : else_if (noun1_is "girl") { : print "I can't really get close enough to get a good sniff of her."; }: else_if (noun1_is "towel") { : print "It smells like concentrated beer."; }: else_if (noun1_is "czerwinski") { : print "I sniff Mr Czerwinski. He smells like wires, burning plastic, and soap."; } : else_if (noun1_is "bandstand") { : print "It smells like cigarettes and brass polish, with plenty of doggy smells around each of the pillars."; } : else_if (noun1_is "sandwiches") { : print "I give them a good sniff. Crab paste by the smell of them."; } : else_if (noun1_is "waiters") { : if (is_at "restaurant_entrance") { : print "He smells like starch and expensive cologne."; } : else_if (is_at "in_restaurant") { : print "They smell worried."; } } : else_if (noun1_is "food") { : print "It's so microscopic that I can hardly smell it at all!"; }: else_if (noun1_is "maitre") { : print "He smells weird - like cheese on toast and hairspray."; } : else_if (noun1_is "legs") { : if (is_present "legs") { : print "I have a sniff of each, carefully, so as not to attract attention. The skinny pair smells faintly of yoghurt, the stocky pair smells like mothballs and tomato ketchup, and the muscly pair smells like leather and earwax."; } : else_if (is_present "legs_1") { : print "The twitchy man's legs smell like bubble bath, leather and bicycle wheels, and the lady's legs smell like wax and paper. "; } } : else_if (noun1_is "skaters") { : print "It's the unmistakable smell of teenagers."; } : else_if (noun1_is "paraders") { : print "I sniff and smell the usual people smells. There's a definite whiff of excitement at being part of the parade!"; }: else_if (noun1_is "tommy") { : print "He smells sort of frazzled - like singed newspaper."; }: else_if (noun1_is "fish") { : if (is_present "fish") { : print "It smells very fishy! Not my cup of tea really, but a cat's dream I'm sure."; } : else { : print "It's shut away behind glass so I can't smell much really."; } } : else_if (noun1_is "crate") { : if (is_present "crate") { : print "It smells like wood, ink and dried frogs."; } : else { : print "It smells like fish."; } } : else_if (noun1_is "sofa") { : print "It's smells new - fresh foam and fabric, with a whiff of chemicals and that weird empty smell that furniture that has never been sat on always has."; } : else_if (noun1_is "cushion") { : print "It's got a weird, brand-new smell, just like the sofa."; } : else_if (noun1_is "van") { : print "It smells like a proper old banger - rusty, musty and oily."; }: else_if (noun1_is "janet") { : print "She smells like paperclips, talcum powder and cream crackers."; }: else_if (noun1_is "billy") { : print "I sniff and get a powerful whiff of tobacco and Worcestershire sauce, even from out here."; } : else_if (noun1_is "ian") { : print "He smells like a lot of things, but the most noticeable is cheese and onion crisps."; } : else_if (noun1_is "ernie") { : print "I sniff his trousers and find that, oddly, he smells just like a baby. Maybe he's got a nappy on under there?"; } : else_if (noun1_is "crawfield") { : print "He's smells like cats. Indescribable but unmistakable."; } : else_if (noun1_is "sack") { : print "It's got that dusty smell that sack material has, mingled with a strong, musty, earthy stench."; }: else_if (noun1_is "tissues") { : print "They smell like aloe vera. I'd recognise it anywhere."; }: else_if (noun1_is "stationery") { : print "The smell of stationery is indescribably boring."; } : else_if (noun1_is "desk") { : print "It smells like new wood and polish."; } : else_if (noun1_is "door") { : if (is_at "outside_storeroom"&&!storeroom_door_open&&parent_of "mustard"=="museum_storeroom") { : print "I'm sure I smell Mustard behind that door! ";} : else_if (is_at "museum_storeroom") { : if (parent_of "custard"=="outside_storeroom") { : print "I'm sure I smell Custard at the other side of that door!"; } : else { : print "It smells boringly door-like."; } } : else { : print "I sniff but don't smell anything very interesting."; } } : else_if (noun1_is "grass") { : print "It's got a lovely bouquet of mud, dog wee and cigarettes."; } : else_if (noun1_is "lane") { : print "It smells like all the yesterdays that ever were."; } : else_if (noun1_is "pillars") { : print "I have a good sniff and it's like there are a thousand other dogs all saying hello to me."; } : else_if (noun1_is "wall") { : print "It's got an ordinary brick smell, with traces of the occasional dog having been here. "; } : else_if (noun1_is "poo") { : print "I've smelt better poo in my time."; } : else_if (noun1_is "rabbit") { : print "It smells, you know - rabbity."; } : else_if (noun1_is "hat") { : print "It smells like old carboard, mince pies and really ancient Eau de Toilette."; } : else_if (noun1_is "skateboard") { : if (is_present "skateboard") { : print "It smells like a teenager's trainers."; : done ; } : else_if (is_at "old_gaol_room") { : print "They smell like dusty old glue."; } } : else_if (noun1_is "crate") { : print "It smells like splinters."; } : else_if (noun1_is "furniture") { : print "Most of it smells like MDF and cheap varnish, but there are a couple of older bits that smell like very strong, very old tea."; } : else_if (noun1_is "computer") { : print "It smells like coffee and fingertips."; } : else_if (noun1_is "birds"||noun1_is "bird") { : print "They smell like dust and formaldehyde."; } : else_if (noun1_is "tools") { : print "They smell like rust and old sweat."; } : else_if (noun1_is "bicycle") { : print "It smells like leather, oil and trousers."; } : else_if (noun1_is "pram") { : print "It smells creepily of old, dried flowers."; } : else_if (noun1_is "doll") { : print "It smells like chalk and stale tears."; } : else_if (noun1_is "village") { : print "It smells like thatch, cattle and bonfires. I wonder how they did that?"; } : else_if (noun1_is "diorama") { : print "It smells of foam rubber, paint and glue."; } : else_if (noun1_is "waxwork") { : print "It smells like eggshells, newspaper and old blankets."; } : else_if (noun1_is "It smells like the river - it must have been a real boat out on the water once, before it ended up beached on its blue splodge.") { } : else_if (noun1_is "box") { : print "It smells like corroding brass, dry rot and spiders."; } : else_if (noun1_is "collar") { : if (subject1_is "replica_collar") { : print "It smells metallic and new."; } : else_if (subject1_is "ancient_collar") { : print "It smells like hammers and fire and old dogs - very, very old dogs."; } } : else_if (noun1_is "padlocks") { : print "They smell weirdly of hopelessness."; } : else_if (noun1_is "keys") { : print "They've got a strange, self-satisfied sort of smell."; } : else_if (noun1_is "creel") { : print "Well, it smells mainly of wicker. Very distinctive smell that."; } : else_if (noun1_is "merve") { : print "I sniff the air and even from out here get a whiff of leather and earwax."; } : else_if (noun1_is "harry") { : print "He smells like watch straps, ancient aftershave, and Bovril."; } : else_if (noun1_is "wise") { : print "She smells like Earl Grey tea, glossy magazines and knitting."; } : else_if (noun1_is "oddcrisp") { : print "He smells like laundry detergent, carrier bags and lego."; } : else_if (noun1_is "broom") { : if (is_present "chief_broom") { : print "She smells like rubber gloves and tiramisu."; } : else { : print "It smells like shoelaces, creosote, and potato peel."; } } : else_if (noun1_is "road") { : print "It smells horrible!"; } : else_if (noun1_is "sausages") { : print "They're shut away behind glass so I can't smell much really."; } : else_if (noun1_is "pies") { : print "They're shut away behind glass so I can't smell much really."; } : else_if (noun1_is "fish") { : print "They're shut away behind glass so I can't smell much really."; } : else_if (noun1_is "window") { : print "Windows never smell like anything really."; } : else_if (noun1_is "bag") { : print "It smells like grease, wires and lightening."; } : else_if (noun1_is "gaol") { : print "It smells like rust, despair, and old tea bags."; } : else_if (noun1_is "porch") { : print "It smells like creosote and cats."; } : else_if (noun1_is "tables") { : if (is_at "in_restaurant") { : print "I sniff one nearby and find it smells like starch, laundry powder, tomato soup and burnt matches."; } : else_if (is_at "ambleside_room") { : print "It smells like rich tea biscuits, bus tickets and liquorice."; } } : else_if (noun1_is "guests") { : if (is_at "restaurant_entrance") { : append {("I smell the guests and catch a whiff of " )}; } : else { : append {("I smell the "+posh_name+"s and catch a whiff of " )}; } : execute_one_at_random { : append "leather"; : append"leather"; : append "perfume"; : append "rusty nails"; : append"hamsters"; :append "spiders"; : append "toe fluff"; : append "spanners"; : append "coffee"; : append "axle grease"; : append "ketchup"; : append "gravy"; : append "marmalade"; : append "fondant"; : append "asparagus"; : append"bin bags"; } : append " and "; : execute_one_at_random { : append "nail varnish remover"; : append "deer hooves"; : append "fox dung"; : append "feathers"; : append "pepper"; : append "pebbles"; : append "sea salt"; : append "baby wipes"; : append "moisturiser"; : append "greasy hair"; : append "elastic"; : append "rubber"; : append "washing up liquid"; : append "tea bags"; : append "spoons"; : append "cheese"; : append "fish fingers"; } : append "."; } : else_if (noun1_is "stall"||noun1_is "stalls") { : if (is_present "stalls") { : print "I have a sniff and get a mixture of curry, washing-up, beeswax and soap."; } : else_if (is_present "fruit_stall") { : print "It smells like garden sheds, old tea-towels and beetroot."; } } : else_if (noun1_is "angie") { : print "She smells like lavender and engine oil."; } : else_if (noun1_is "day") { : append "They smell like "; : execute_one_at_random { : append "vinegar"; : append "brown paper"; : append "sugar"; : append "the sea"; : append "marmalade"; : append "soil"; : append "candle wax"; : append "pins"; : append "sausages"; } :append " and "; : execute_one_at_random { : append "fried eggs"; : append "beer"; : append "fresh air"; : append "washing powder"; : append "broccoli"; : append "mice"; : append "weak tea"; : append "roses"; : append "biscuits"; } : append "."; } : else_if (noun1_is "fruit") { : print "I have a sniff. Not quite meaty enough for me to be honest."; } : else_if (noun1_is "roses") { : print "I sniff their delicate fragrance and think how much better they'd smell if they were in meaty jelly."; } : else_if (noun1_is "lid") { : print "It smells like vaseline and Brussels sprouts."; } : else_if (noun1_is "car") { : print "They smelly smugly of leather, polish and new rubber."; } : else_if (noun1_is "bars") { : print "They smell like rust and old paint."; } : else_if (noun1_is "boat") { : print "It smells like turpentine and whelks."; } : else_if (noun1_is "paddle") { : print "It smells like varnish and, strangely, marshmallows."; } : else_if (noun1_is "fisherman") { : print "I sniff him and smell a strange mixture of plaster, human hair, camembert cheese and rusty nails. No wonder he's depressed!"; } : else_if (noun1_is "stallholders") { : print "They smell like well-worn upholstery, lilies and gin."; } : else_if (noun1_is "scraps") { : print "They smell like all sorts of deliciousness."; } : else_if (noun1_is "paperboy") { : print "He smells like newsprint and sweaty socks."; } : else_if (noun1_is "fryers") { : print "They smell deliciously greasy."; } : else_if (noun1_is "fridges") { : print "They smell like mould, old food and detergent."; } : else_if (noun1_is "tubs") { : print "They've got that smell of plastic and old sandwiches that all food containers have."; } : else_if (noun1_is "utensils") { : print "They've got that distinctive dishwasher smell of old vests. "; } : else_if (noun1_is "counter") { : print "It smells like food and Brillo pads."; } : else_if (noun1_is "mop") { : print "It smells horrible, even to a dog!"; } : else_if (noun1_is "bucket") { : print "It smells like burnt-out lightbulbs and church bells."; } : else_if (noun1_is "machine") { : print "It smells dangerous."; } : else_if (noun1_is "hall") { : print "Floor polish, old fabric, home baking and sweat - I bet that even on other planets, town halls have that same smell. "; } : else_if (noun1_is "bus") { : print "It smells of miles and miles."; } : else_if (noun1_is "wheels") { : print "They smell of rubber and tar."; } : else_if (noun1_is "compost") { : print "It smells like toadstools and moth's wings."; } : else_if (noun1_is "statue") { : print "It smells like granite and gunpowder."; } : else_if (noun1_is "") { } : else_if (noun1_is "") { } : else_if (noun1_is "") { } : else_if (noun1_is "") { } : else_if (noun1_is "") { } : else_if (noun1_is "") { } : else_if (noun1_is "") { } : else { : print {("I sniff and don't smell anything much out of the ordinary.")}; } } #SNIFF end #BARK start : match "bark_" { : if (!preposition_is ""||!noun1_is "") { : print "Just tell me to BARK (not BARK AT or TALK TO) and I'll do the rest."; : done ; } // : if (count "_inventory_notworn">0) { // : print "Difficult to bark when I'm carrying something in my mouth!"; // } : if (is_at "inside_van") { : print "I'd better make too much noise now or Billy Nickit is bound to hear and I'll be chucked out for sure!"; : done ; } : else_if (nighttime&&mustard_trapped) { : if (is_at "museum_reception"||is_at "exhibition_room"||is_at "corridor"||is_at "top_staircase") { : print "I bark and, quite faintly and from somewhere underneath me, I think I hear someone bark back."; : done ; } : else_if (is_at "bottom_staircase") { : print "I bark and I hear, quite faintly someone bark back! I'm sure it's Mustard's voice - he must be down here somewhere! If only I could get a bit closer I might be able to work out where the bark came from."; : done ; } : else_if (is_at "maze") { : print "I bark and I hear someone bark back! I'm sure it's Mustard's voice - he must be down here somewhere! If only he'd do that again, I might be able to follow his barks along the corridor and find him."; : done ; } : else_if (is_at "outside_storeroom") { : print "I bark and Mustard barks back. He must be right behind the door!"; : done ; } : else_if (is_at "museum_storeroom") { : print "I bark loudly and it echoes around the empty storeroom."; : if (parent_of "custard"=="maze") { : if (protagonist()=="mustard") { : become "custard"; : set_false "i_am_mustard" ; } : increment "bark_counter" ; : set_true "report_becoming" ; : set_true "report_barking" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; ; : redescribe; } : else_if (parent_of "custard"=="outside_storeroom") { : print "I hear Custard bark in reply. There's a scrabbling at the door - he must be right outside!"; } : done ; } } : else_if (is_at "museum_reception") { : if (is_present "janet_makepeace") { : print "I'd better not make a noise while Janet is here - she scares me!"; : done ; } } : else_if (is_at "in_restaurant") { : print "I bark and several of the diners look up from their expensive dinners and glance at me curiously. The Maître d' hurries over.\n\"And what can I do for you, little doggy?\" he says, looking uncertainly at my fancy get-up like he's not really sure if I should be in here or not. \"You have lost your owner, no?\" I wag my tail and try my best to look like I belong in here, but he's not fooled. Glancing around at the tables and seeing the diners all getting on with their lunches and nobody looking like they've lost their dog, he gently shoos me out of the restaurant."; : set_true "pleased_to_see_me" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : goto "carpark"; : redescribe; } : else_if (is_present "mr_czerwinski") { : cycle predictable_order = "false" key = "czerwinski" max_loops = "1" { : print "I bark at Mr Czerwinski, so absorbed in his work that he replies without looking up. \n\"Ah, doggy - at least you are having a good time. But if I don't get this PA working then the everyone might have to go home!"; : print "\"Bark if you like, doggy,\" says Mr Czerwinski, without looking up. \"Only bring me my bag of tricks and I will listen to you. Otherwise I am too busy! Now shoo.\" And he waves his hands vaguely in my direction as he carries on fiddling around with the speaker."; : print "I bark at Mr Czerwinski, who is so busy with what he is doing that he doesn't even look up. \"Ah yes, doggy - it is a beautiful day for barking. Now run off and find a bone - you see that I am busy here\""; : print "\"Yes, it is nice to hear you bark doggy,\" says Mr Czerwinski, without looking up. \"Now go off and find something else to bark at while I try to make this thing work. If only I had my bag of tricks!\""; on_exhausted { : print "I bark at Mr Czerwinski but he ignores me and carries on trying to fix the PA system."; } } : done ; } : else_if (is_present "pru") { : execute_one_at_random { : print "I say hello to Pru and she completely ignores me. Charming."; : print "I yelp and bark but Pru just ignores me and continues nattering away on the phone. Can Gerry Rockerfella's conversation really be more interesting than mine? I doubt it. "; : print "I start making a horrible, pitiful whining sound like the one I make when Pru's left an open tin of tuna out on the kitchen worktop just out of reach even when I stand up on two legs. She's always doing that. Usually she gives in after a while and gives me some, but now, there being no tuna in the vicinity, she just ignores me and carries on talking."; : print "I howl like there's a thorn in my paw. Pru pauses for a second, bends down and looks me over quickly before muttering something under her breath and carrying on nattering down the phone."; : print "I bark frantically. Pru stops nattering for a moment and looks at me.\n \"Mustard,\" she says sharply, \"be quiet!\"\n She goes back to her phone conversation.\n\"Sorry about that darling. I think this heat has made Mustard go strange.\""; } : done ; } : else_if (is_present "tadcaster") { : if (!initial_tadcaster_talk) { : clear_screen; : print "\"Hello Tadcaster!\" I say cheerfully, because us dogs are always happy to see each other, \"How are you?\"\n\"Uhh, Urm...\" says Tadcaster, turning his big, droopy head in my direction. \"Who's what?\"\nI wag my tail and sigh. It's often like this with Tad.\n\"No, not <^i^who>, Tad - <^i^how>. How are you?\"\n"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Tadcaster pauses for a long moment, his big fluffy tail thumping on the ground behind him. At last, he replies, \"How am I what?\"\nThis is getting us nowhere - I decide on a direct approach. \"Hey Tadcaster,\" I say, \"How would you like to come and see Pru? She's just along the street there, outside Ogodu's.\"\nTadcaster's big, soft eyes look at me from under his saggy brows. \"Pru who?\" he says, maddeningly."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "It's lucky dogs have got a lot of patience. I persevere. \"Pru! You know Pru. My person. She always loves to see you.\"\nAnd that's right - Pru's got a soft spot for Tadcaster. Something about those big, sad eyes. All the ladies love him.\n\"Oh yeah, Pru! Smells like strawberries. I'll come and say hello...\" He stands up and almost shows signs of moving but then stops and sits down again. \"But...there's Dave in the Butcher's\"."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "I look through the window and see him: Tadcaster's person, Dave 'Terry' Turpin. Smells like wet towels. I've often wondered why.\n\"Don't worry about Dave,\" I say, breezily, \"he's busy in the sausage queue. He won't mind if you nip along the street for five minutes.\"\n\"Huh, well. Hmmn. Okay...\" Tadcaster seems convinced. He stands up again and plods his way down the street in the direction of the newsagent."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : set_true "initial_tadcaster_talk" ; : create "tadcaster" target = "outside_newsagent" ; : redescribe; } : else { : execute_one_at_random { : print "tadcaster talk 1"; : print "tadcaster talk 2"; : print "tadcaster talk 3"; : print "tadcaster talk 4"; : print "tadcaster talk 5"; } } } : else_if (is_present "woolly_lump") { : print "I try barking at the lump, a bit - not my usual, full volume 'where's my dinner?' bark or my 'it's really great to see you again - but how could you have left me here to go shopping all afternoon?' bark or even my 'who's that at the door?' bark, but a slightly quieter bark like the sort you might use on a lost sheep, or an abandoned sofa cushion.\n In any case, not much seems to happen - although I could have sworn it moved a bit... "; : done ; } : else_if (is_present "mayor") { : print "I bark at the Mayor and Mayoress, startling them both." ; : print "\"Good gracious!\" exclaims the Mayoress, spilling her prosecco."; : print "\"Jehosaphat, what was that?\" says the Mayor, opening his eyes wide and looking around in surprise. I see something fall into his beer with a little splash. \"Drat!\" he says, and looks down in dismay."; : print "\"Heavens, I have prosecco all down my dress,\" says the Mayoress, dabbing at herself with a tissue. \"Oh well - never mind. Plenty more where that came from, eh Reginald?\""; : print "\"If I have too many more of these,\" says the Mayor, swaying visibly, \"then I shan't be fit to do the honours later on. I do have to award the sash at the most gigantic marrow competition, you know!\""; : print "\"Well, perhaps we'd better make a move then. Come along, I'll dry off more quickly in the sunshine anyway.\""; : print "\"But...\" says the Mayor, fumbling around like he's lost something."; : print "\"Oh, never mind about that Reggie,\" says the Mayoress, \"come along.\" She turns towards the bar and hollers a deafening \"Goodbye!\" before disappearing out of the tent, dragging the Mayor along with her."; : create "glass_1"; : destroy "mayor"; : destroy "mayoress"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_present "punters") { : print "I bark at the punters, and one or two look around in surprise, but most of them take no notice.\n\"Whose dog is that?\" asks the girl at the bar."; : done ; } : if (is_present "crowd") { : print "I bark and a few of the crowd look at me disinterestedly, assuming that I'm with someone in the audience."; } : else_if (is_present "merve_swerve") { : print "I bark and Merve leans out of the window and tells me to beat it. Doesn't look like he's going to bother getting out of the car though, so I'm brave and stay just where I am."; : done ; } : if (is_present "rabbit") { : if (rabbit_in_hat) { : if (!rabbit_again) { : print "I bark politely and the rabbit shoots out of the hat like a rocket, eyes wide and ears pricked.\n \"What?!\" it says, \"Who? Where? When?... I surrender!\"\nIt hops around in circles for a few moment, calms down when it sees that there's not too much to be worried about, and then settles down to sleep again on the floor. A moment later, it's snoring softly."; : set_true "rabbit_again" ; } : else { : print "I bark politely and the rabbit shoots out of the hat again.\n \"Who?!\" it says, \"Where? When? I give in, just make it quick!\"\nIt hops around in circles for a few moment, then calms down when it recognises me. \"Oh, you again...\" it says, yawns and then settled down to sleep. A moment later, it's snoring softly once more."; } : set_false "rabbit_in_hat" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : print "I bark at the rabbit. It opens one eye, looks at me sleepily, and then starts snoring again."; } } : else_if (is_present "skaters") { : print "\"Hey, what are you barking at doggy?\" says the spotty paperboy."; : print "\"Maybe he wants to join the gang?\" says the little kid, and they all laugh. "; : if (i_am_mustard&&mustard_on_skateboard||!i_am_mustard&&custard_on_skateboard) { : print "\"Hey, is that your spare board?\" says another kid, pointing at the skateboard that I'm standing on."; : print "\"Yeah, it is!\" says the paperboy. \"Maybe he's been taught some tricks. Go on then doggy - show us what you've got.\""; } } : else_if (is_at "changing_room"&&is_present "paraders") { : print "I bark in the crowded changing room. The grown-ups mostly ignore me and the kids laugh and pet me. I wag my tail and distribute licks as evenly as I can, to the delight of the children and the disapproval of the grown-ups."; } : else_if (is_at "inside_chipshop") { : if (is_present "tommy_spratt") { : print "Are you joking? If Tommy sees me, he'll throw me out for sure!"; } : else { : print "I'd better not - dog's aren't allowed in here, you know!"; } } : else_if (is_at "in_back_of_chipshop") { : print "I'd better not - dogs aren't allowed in Spratts, especially not in the back, and Tommy is in a foul mood already!"; } : else_if (is_present "janet_makepeace") { : if (!makepeace_chat) { : print "Ian looks at us nervously. \"They your dogs then?\" he asks Janet.\nJanet look at us in surprise. \"Dogs? Certainly not! No dogs allowed in the Heritage Centre. Or in the yard, really, though I suppose I can't stop them if their owners insist on bringing them in here.\" She looks around the yard. \"Where are their owners?\"\n\"Perhaps they're strays?\" suggests Ernie.\n\"Hmmm,\" says Janet thoughtfully, \"the big hairy one perhaps - but the other one looks a bit too well groomed. Oh well - I expect their owners will find them eventually.\""; : if (i_am_mustard) { : print "Well groomed! I decide I like Janet Makepeace a little bit more after that."; } : else { : if (is_present "mustard") { : print "Well groomed! I can tell Mustard is pretty pleased with that."; } } : set_true "makepeace_chat" ; } : else { : print "I bark and Janet looks at me testily while the others just ignore me."; } } : else_if (is_present "billy_nickit") { : print "Billy glances at me curiously for a second and then carries on smoking his cigar."; } : else_if (is_present "handclap_harry"&&harry_in_river) { : if (is_carried "handclap_harry") { : print "I bark and Harry looks at me in terror. \"Don't eat me!\" he shrieks, \"Please don't eat me!\""; } : else { : print "I bark and Harry looks panickily at me. \"Keep away from me, you horrible mutt!\" he shouts and splutters, as he struggles to keep above water."; } } : else_if (is_present"mrs_kaur") { : if (kaur_chat) { : print "I bark and Mrs Kaur scolds me gently without looking up from her work. \"Now Mustard, you mustn't disturb me,\" she says."; : done ; } : else { : print "I bark at Mrs Kaur and she leaves off her trowelling, pushes a stray wisp of hair out of her eyes and looks at me."; : print "\"Mustard!\" she says in surprise. \"How are you, you good boy?\" and she strokes me and fondles my ears as I wag my tail and give her a little lick. We're old friends, Mrs Kaur and me."; : print "\"But...\" she says, looking around uncertainly, \"where is Pru? Has she left you to look after yourself while she has a look at the exhibition? We have had such a lot of people here today. Such a lot. Poor old Mustard all on his own!\"\nI bark again and wag my tail a bit faster, just to let her know that there's nothing to worry about. I don't want her getting suspicious and calling Pru!"; : print "\"Now Mustard,\" says Mrs Kaur, \"You can stay here and keep me company until Pru comes back, but you must be a good boy and not disturb me too much. No barking, and no digging!\" (As if I would!) \"There is ever such a lot to be getting on with...\" and she picks up her trowel and gets back to work."; : set_true "kaur_chat" ; } } : else_if (is_present "day_tripper") { : print "The day tripper looks at me in suprise and then with a glimmer of hope in their eyes, as if they're wondering what the chances are of pretending I belong to them and using that as an excuse to get away from Angie. No such luck, I'm afraid!"; } : else_if (is_present "angie_slipsocket") { : print "\"Oo are you barking at?\" says Angie, flapping one of her big hands at me, \"Gerrof with yer!\""; } : else_if (is_present "crawfield_cat") { : print "I bark and Crawfield holds his head high in the air and, other than the faintest twitch of one of his glossy black whiskers, ignores me utterly."; } : else_if (is_present "waiter") { : print "The reception waiter stiffens even more and his left eyebrow ascends so far that it disappears under his hairline - but he doesn't say anything."; } : else_if (is_at "under_table") { : print "What, while I'm hiding under here? I don't think so!"; } : else_if (is_present "sergeant_wise") { : if (is_present "handclap_harry") { : if (!policemen_follow) { : print "I bark frantically at the police officers and Professor Ambleside."; : print "\"Why is that dog making such a racket?\" asks Chief Broom. \"Sue, make it stop at once.\""; : if (i_am_mustard) { : print "\"Damned thing's rabid,\" says Handclap Harry, \"and that other one. It almost bit my head off when I was in the water.\""; } : else { : print "\"Damned thing's rabid,\" says Handclap Harry, \"It almost bit my head off when I was in the water.\""; } : print "\"No,\" says Professor Ambleside, \"I think it's trying to tell us something. I think it wants us to follow it!\""; : print "Trust good old Ambleside to work it out. I knew he wasn't a professor for nothing. "; : set_true "policemen_follow" ; } : else { : print "I bark and bark again."; : print "\"Yes, yes,\" says Professor Ambleside, \"I know you want us to follow you. So lead the way my fine, furry fellow. Lead the way!\""; } } : else_if (is_at "museum_yard"&&!arrest_dogs) { : if (i_am_mustard) { : print "I bark at the police officers, who look at me and Custard in surprise."; } : else { : print "I bark at the police officers, who look at me and Mustard in surprise."; } : print "\"Well I never!\" says Chief Broom, in her serious, head-nodding way, \"A couple of dogs. Whatever are they doing here?\""; : print "\"Perhaps, um, perhaps they're the robbers' dogs, Ma'am?\" says Constable Oddcrisp."; : print "\"Could be, Jimmy, could be,\" nods Chief Broom."; : print "\"Should we arrest them Ma'am?\" says Sergeant Wise."; : print "Chief Broom considers this. \"I think, perhaps, that would be for the best, Sue.\""; : print "\"Trouble is Ma'am,\" pipes up Constable Oddcrisp, playing with his handcuffs, \"I don't think these will go small enough. To fit over their paws, I mean.\" And he holds them up to demonstrate: small as they can be, but definitely not small enough for a dog's legs." ; : print "\"Never mind Jimmy,\" says Chief Broom, \"Just, well - keep an eye on them. And if they move, run after them with a sausage or something. You know - to entice them back.\""; : print "\"I don't think I have a sausage on me, Ma'am,\" says Oddcrisp, worriedly."; : print "\"No sausage,\" mutters Chief Broom, nodding seriously and writing something in her notebook"; : set_true "arrest_dogs" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : print "I bark, but the police officers ignore me and Professor Ambleside just looks at me sympathetically."; } } : else_if (!has_not_created "combination_lock") { : if (!harry_arrested) { : if (is_at "zone_in_museum") { : print "I'd better not, otherwise the crooks will know we're in here!"; : done ; } : else { : if (i_am_mustard&&!is_present "custard"||!i_am_mustard&&!is_present "mustard") { : print "I bark at nothing in particular and enjoy myself doing it. Everyone loves a good bark!"; : if (is_at "by_the_bandstand") { : print "My bark echoes around the metal roof of the bandstand."; : done ; } } : else { : print "I bark at Custard and Custard barks at me, both of us happy as can be."; : if (is_at "by_the_bandstand") { : print "My bark echoes around the metal roof of the bandstand."; } } } } : else { : print "I bark at nothing in particular and enjoy myself doing it. Everyone loves a good bark!"; : if (is_at "by_the_bandstand") { : print "My bark echoes around the metal roof of the bandstand."; } } } : else_if (i_am_mustard) { : if (!is_present "custard") { : print "I bark and bark and bark. Barking is fun!"; : if (is_at "by_the_bandstand") { : print "My bark echoes around the metal roof of the bandstand."; } } : else { #CUSTARD CONVERSATIONS START : if (mustard_sitting_on_lid) { : print "I bark at Custard, telling him that I really don't like being on the water!"; } : else { : print "I bark at Custard and Custard barks at me, both of us happy as can be."; : if (is_at "by_the_bandstand") { : print "My bark echoes around the metal roof of the bandstand."; } } } } #CUSTARD CONVERSATIONS end #MUSTARD CONVERSATIONS START : else_if (!i_am_mustard) { : if (!is_present "mustard") { : print "I bark at nothing in particular and enjoy myself doing it. Everyone loves a good bark!"; : if (is_at "by_the_bandstand") { : print "My bark echoes around the metal roof of the bandstand."; } } : else_if (mustard_sitting_on_lid) { : print "I bark reassuringly at Mustard - but he's not happy on the water, even if he's keeping dry!"; } : else { : print "I bark at Mustard and Mustard barks at me, both of us as happy as can be."; : if (is_at "by_the_bandstand") { : print "My bark echoes around the metal roof of the bandstand."; } #MUSTARD CONVERSATIONS end } } } #BARK end #BECOME start : match "become _" { : if (noun1_is "custard") { : if (!is_exists "custard"||custard_tied) { : print "But I don't know how to do that at the moment!"; : done ; } : if (protagonist() == "mustard") { : become "custard"; : set_false "i_am_mustard" ; : print "I'm now Custard." ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : if (is_at "custards_dream") { : print "Eh? I am Custard, aren't I? I mean, anything's possible in a dream..."; } : else { : print "Eh? I am Custard, aren't I? I give myself a shake, just to check, and feel my big fluffy fleece wobbling all around me. That's a relief!"; } : done ; } } : else_if (noun1_is "mustard") { : if (protagonist() == "custard") { : become "mustard"; : print "I'm now Mustard." ; : set_true "i_am_mustard" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : if (is_at "mustards_dream") { : print "What? Become myself? I'm already Mustard, aren't I? Or did I just dream I was..."; } : else { : print "What? Become myself? Let me just check who I am...yes, I'm Mustard, same as always! "; : done ; } } } : else { : print "Don't be daft!"; } } #BECOME end #OPEN start : match "open drawer" { : set_sentence "pull handle"; } : match "open van" { :set_sentence "open shutter"; } : match "open _" { : if (noun1_is "flap") { : if (is_present "flap") { : if (flap_open) { : print "But the flap is already open!"; } : else { : if (protagonist () == "mustard") { : print "There's a sort of raised ridge at the bottom of the flap that's designed for fingers, not noses. My snout isn't long and pointy enough to get under there!"; } : else { : print "I manage to get my snout under the flap and with a bit of a shove, it pops open, revealing a button beneath."; : create "button"; : set_true "flap_open" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } } } : else_if (noun1_is "bag") { : if (is_present "bag") { : print "I don't know if you've noticed, but I'm a dog! I can't quite manage zips."; : done ; } } : if (noun1_is "base") { : if (found_tag) { : if (is_present "top_hat") { : if (!is_worn "top_hat") { : if (hat_open) { : print "But the base of the hat is already open!"; : done ; } : else { : print "I grip the tag with my teeth and pull. A hidden compartment in the base of the hat springs open."; : set_true "hat_open" ; : set_true "found_lid" ; } : if (!is_exists "rabbit") { : print " There's something white and fluffy inside...it's a rabbit!"; : create "rabbit"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } } } } : if (noun1_is "door") { : if (is_at "gander_alley") { : print "I don't think I can - there's no handle or anything."; } : if (is_at "outside_storeroom") { : if (storeroom_door_open) { : print "It's already open!"; } : else { : print "It's one of those that has a push bar to open it."; } } : else_if (is_at "museum_storeroom") { : if (!storeroom_door_open) { : print "There's no handle or anything on this side, so I can't see any way of opening it from here. Looks like one of those fire doors - very sensible place to put it, since it leads into a locked shed!"; } : else { : print "It's already open!"; } } : else_if (is_at "corridor") { : if (lock_picked) { : print "The door is already open!"; } : else { : print "I try to, but it's locked."; } } : else_if (is_at "exhibition_room") { : if (is_present "display_case") { : if (case_open) { : print "But the back of the display case is already open."; } : else { : print "I try to open the door in the back of the case, but it's firmly shut."; } } } : else_if (is_present "bus") { : if (!mustard_button_pushed&&!custard_button_pushed) { : print "How? There's no handle or anything."; } } } : else_if (noun1_is "grille") { : if (is_present "grille"||is_present "grille_4") { : print "It's far too high up for me to reach from here!"; }//froos : else_if (is_present "grille_1"||is_present "grille_2") { : if (grille_open) { : print "But it's already open!"; } : else { : print "I jump up and manage to knock the grille open. It swings down on a hinge revealing a square of darkness above." ; : set_true "grille_open" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (is_present "grille_3") { : if (grille2_open) { : print "But the grille is aleady open!"; } : else { : print "I push the grille and it falls open and swings from the ceiling on its hinges."; : set_true "grille2_open" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (is_present "grille_4") { : print "But the grille is aleady open!"; } } : else_if (noun1_is "case") { : if (is_present "display_case") { : if (case_open) { : print "But it's already open!"; } : else { : if (has_not_created "handle") { : print "I'm not sure how."; } : else { : print "Not as easy as it looks - but I'd say that handle has got something to do with it."; } } } } : else_if (noun1_is "gate") { : if (is_at "village_hall") { : if (!is_exists "skaters") { : print "I try to, but it's locked."; } : else { : print "But it's already open!"; } } } : else_if (noun1_is "tin") { : if (is_at "finds_room") { : print "I'd never get that open with my paws - it's specially designed to be dog-proof!"; } } : else_if (noun1_is "fridge") { : if (is_at "in_back_of_chipshop") { : print "I think I've got better things to do than poke around in Spratt's fridges."; } } : else_if (noun1_is "tubs") { : if (is_at "in_back_of_chipshop") { : print "Even if I could manage it with these paws, I just don't think it would be worth it really."; } } : else_if (noun1_is "window") { : if (is_at "museum_yard") { : print "It's far too far away for that."; } : else_if (is_at "museum_vestibule"||is_at "museum_reception") { : print "There doesn't seem to be any way to open them."; } } } #OPEN end #CLOSE start : match "close _" { : if (noun1_is "flap") { : if (is_present "flap") { : if (flap_open) { : print "I jump at the open flap and manage to knock it shut again."; : set_false "flap_open" ; : destroy "button"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : print "It's already closed!"; } } } : else_if (noun1_is "base") { : if (is_present "top_hat") { : if (!is_worn "top_hat") { : if (hat_open) { : print "I close the base of the hat."; : if (rabbit_in_hat) { : destroy "rabbit"; } : set_false "hat_open" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : print "But the base of the top hat is already closed!"; : done ; } } : else { : print "I can't do that while I'm wearing the hat!"; } } } : else_if (noun1_is "door") { : if (is_at "outside_storeroom") { : if (!storeroom_door_open) { : print "It's already closed."; } : else { : print "I jump at the door and it swings shut, the bar locking back into place as it closes."; : set_false "storeroom_door_open" ; } } : else_if (is_at "museum_storeroom") { // :disambiguate_s1 "beside"; // : if (subject1_is "door_2") { // : print "But it's already closed!"; // } : if (storeroom_door_open) { : print {("I can't close it from this side - it opens outwards and there isn't a handle or anything on this side. Not sure why I'd want to lock us both in here anyway - "+(i_am_mustard ? "I've had enough of this place for one day!":"I think Mustard has had enough of this place for one day!"))} ; } : else { : print "It's already closed."; } } : else_if (is_at "corridor"||is_at "exhibition_room") { : if (lock_picked) { : print "There doesn't seem much point in doing that now."; } : else { : print "But the door is already closed!"; } } } //froos : else_if (noun1_is "grille") { : if (is_present "grille"||is_present "grille_4") { : print "It's far too high up for me to reach from here!"; } : if (is_present "grille_1") { : if (grille_open) { : print "I push the grille closed."; : set_false "grille_open" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : print "But the grille is already closed!"; } } : else_if (is_present "grille_2") { : if (grille_open) { : print "It opens downwards - I can't really get it shut from this side."; : done ; } } : else_if (is_present "grille_3") { : if (grille2_open) { : print "It opens downwards - I can't really get it shut from this side."; : done ; } : else { : print "But the grille is already closed!"; } } : else_if (noun1_is "gate") { : if (is_at "village_hall") { : if (is_exists "skaters") { : print "I don't see the point in that really."; } : else { : print "But it's already closed!"; } } } } : else_if (noun1_is "case") { : if (is_present "display_case") { : if (case_open) { : if (is_at "exhibition_room") { : if (standing_on_custard) { : print "I scramble down off Custard's back."; } : print "I push the door in the back of the case and it clicks shut."; : set_false "case_open" ; } } : else { : print "But the display case is already closed."; } } } : else_if (noun1_is "gate") { : if (is_at "village_hall") { : if (!is_exists "skaters") { : print "But it's already closed!"; } : else { : print "Seems a bit pointless - I think I'll leave it open!"; } } } : else_if (noun1_is "window") { : if (is_at "museum_yard") { : print "It's far too far away for that."; } : else_if (is_at "museum_vestibule"||is_at "museum_reception") { : print "There doesn't seem to be any way to close them."; } } } #CLOSE end #LIFT start : match "lift _" { : if (noun1_is "flap") { } } #LIFT end #PUSH start : match "push_" { : if (noun1_is "one") { :set_sentence "push button one"; } : if (noun1_is "two") { :set_sentence "push button two"; } : if (noun1_is "three") { :set_sentence "push button three"; } : if (noun1_is "four") { :set_sentence "push button four"; } : if (noun1_is "five") { :set_sentence "push button five"; } : if (noun1_is "six") { :set_sentence "push button six"; } : if (noun1_is "seven") { :set_sentence "push button seven"; } : if (noun1_is "eight") { :set_sentence "push button eight"; } : if (noun1_is "nine") { :set_sentence "push button nine"; } : if (noun1_is "zero") { :set_sentence "push button zero"; } : if (noun1_is "reset") { :set_sentence "push button reset"; } : if (noun1_is "reset"&&noun2_is "button") { :set_sentence "push button reset"; } : if (noun1_is "button") { : if (is_present "button") { : if (mustard_button_pushed) { : if (i_am_mustard) { : print "But I'm already pressing the button!"; } : else { : print "But Mustard is already pushing the button!"; } } : else_if (custard_button_pushed) { : if (!i_am_mustard) { : print "But I'm already pressing the button!"; } : else { : print "But Custard is already pressing the button."; } } : else { : print "I press the button and the doors hiss open."; : if (i_am_mustard) { : set_true "mustard_button_pushed" ; } : else { : set_true "custard_button_pushed" ; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (is_present "combination_lock") { : if (!standing_on_custard) { : print "Even standing on my back legs, I'm not quite tall enough to reach the buttons."; } : else_if (noun2_is "") { : print "Which button should I push?"; } : else { : if (noun2_is "one") { : if (!pressed_7&&!pressed_2&&!pressed_6) { : set_true "pressed_1" ; : print "I scrabble at the lock and manage to push in button one. There is a happy-sounding click and the button springs out again as I release it."; } : else { : print "I scrabble at the lock and manage to push in button one. There is a disappointed-sounding clunk and the button springs out again as I release it."; : set_false "pressed_1" ; : set_false "pressed_2" ; : set_false "pressed_6" ; : set_false "pressed_7" ; } } : else_if (noun2_is "seven") { : if (pressed_1&&!pressed_2&&!pressed_6) { : set_true "pressed_7" ; : print "I scrabble at the lock and manage to push in button seven. There is a happy-sounding click and the button springs out again as I release it."; } : else { : print "I scrabble at the lock and manage to push in button seven. There is a disappointed-sounding clunk and the button springs out again as I release it."; : set_false "pressed_1" ; : set_false "pressed_2" ; : set_false "pressed_6" ; : set_false "pressed_7" ; } } : else_if (noun2_is "two") { : if (pressed_1&&pressed_7&&!pressed_6) { : set_true "pressed_2" ; : print "I scrabble at the lock and manage to push in button two. There is a happy-sounding click and the button springs out again as I release it."; } : else { : print "I scrabble at the lock and manage to push in button two. There is a disappointed-sounding clunk and the button springs out again as I release it."; : set_false "pressed_1" ; : set_false "pressed_2" ; : set_false "pressed_6" ; : set_false "pressed_7" ; } } : else_if (noun2_is "six") { : if (pressed_1&&pressed_7&&pressed_2) { : set_true "pressed_6" ; : print "I scrabble at the lock and manage to push in button six. There is a happy-sounding click and the button springs out again as I release it."; } : else { : print "I scrabble at the lock and manage to push in button six. There is a disappointed-sounding clunk and the button springs out again as I release it."; : set_false "pressed_1" ; : set_false "pressed_2" ; : set_false "pressed_6" ; : set_false "pressed_7" ; } } : else_if (noun2_is "three"||noun2_is "four"||noun2_is "five"||noun2_is "eight"||noun2_is "nine"||noun2_is "zero") { : print {("I scrabble at the lock and manage to push in button "+original "noun2"+". There is a disappointed-sounding clunk and the button springs out again as I release it.")}; : set_false "pressed_1" ; : set_false "pressed_2" ; : set_false "pressed_6" ; : set_false "pressed_7" ; } : else_if (noun2_is "reset") { : print "I scrabble at the lock and manage to push the reset button. There is a clunk and the button springs out again as I release it."; : set_false "pressed_1" ; : set_false "pressed_2" ; : set_false "pressed_6" ; : set_false "pressed_7" ; } : if (pressed_1&&pressed_2&&pressed_6&&pressed_7) { : print "There is a satisfied 'ping' of metal from somewhere inside the lock."; } } } } : else_if (noun1_is "lid") { : if (is_beside "lid") { : if (mustard_sitting_on_lid&&i_am_mustard) { : print "I can't push it while I'm sitting on it!"; : done ; } : if (custard_sitting_on_lid&&!i_am_mustard) { : print "I can't push it while I'm sitting on it!"; :done; } : if (is_at "slipway_north"||is_at "slipway_south") { : append "I push the lid and it slides into the river"; : set_true "lid_in_river" ; : if (is_at "slipway_north") { : create "lid"target = "north_river" ; } : else_if (is_at "slipway_south") { : create "lid" target = "south_river" ; } : if (mustard_sitting_on_lid) { : append " - with Mustard aboard!"; : set_false "follow" ; : if (is_at "slipway_north") { : create "mustard" target = "north_river" ; } : else_if (is_at "slipway_south") { : create "mustard" target = "south_river" ; } } : else_if (custard_sitting_on_lid) { : append " - with Custard aboard!"; : set_false "follow" ; : if (is_at "slipway_north") { : create "custard" target = "north_river" ; : create "lid"target = "north_river" ; } : else_if (is_at "slipway_south") { : create "custard" target = "south_river" ; } } : else { : append "."; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_at "zone_whole_river") { : if (adjective1_is ""&&noun2_is "") { : print "Which direction should I try and push it?"; } : else_if (adjective1_is "north"||noun2_is "north"||adjective1_is "n"||noun2_is "n") { : if (is_at "north_river") { : print "I push the lid north and it slides up onto the slipway."; : create "lid" target = "slipway_north" ; : set_false "lid_in_river" ; : if (mustard_sitting_on_lid) { : create "mustard" target = "slipway_north" ; : set_false "mustard_sitting_on_lid" ; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_at "middle_river") { : print "I push the lid and it glides across the water towards the northern bank of the river."; : create "lid" target = "north_river" ; : if (mustard_sitting_on_lid) { : create "mustard" target = "north_river" ; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_at "south_river") { : print "I push the lid and it glides across the water towards the northern bank of the river."; : create "lid" target = "middle_river" ; : if (mustard_sitting_on_lid) { : create "mustard" target = "middle_river" ; } } : else_if (is_at "east_river"||is_at "next_to_weir") { : print "There's nothing in that direction but the riverside wall! I decide not to bother pushing it over there."; } } : else_if (adjective1_is "south"||noun2_is "south"||adjective1_is "s"||noun2_is "south") { : if (is_at "north_river") { : print "I push the lid and it glides across the water towards the southern bank of the river."; : create "lid" target = "middle_river" ; : if (mustard_sitting_on_lid) { : create "mustard" target = "middle_river" ; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_at "middle_river") { : print "I push the lid and it glides across the water towards the southern bank of the river."; : create "lid" target = "south_river" ; : if (mustard_sitting_on_lid) { : create "mustard" target = "south_river" ; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_at "south_river") { : print "I push the lid south and it slides up onto the slipway."; : create "lid" target = "slipway_south" ; : set_false "lid_in_river" ; : if (mustard_sitting_on_lid) { : create "mustard" target = "slipway_south" ; : set_false "mustard_sitting_on_lid" ; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_at "east_river"||is_at "next_to_weir") { : print "There's nothing in that direction but the riverside wall! I decide not to bother pushing it over there."; } } : else_if (adjective1_is "east"||noun2_is "east"||adjective1_is "e"||noun2_is "e") { : if (is_at "middle_river"||is_at "north_river"||is_at "south_river"||is_at "east_river") { : print "I push the lid and it glides eastwards across the water."; : if (is_at "east_river") { : create "lid" target = "next_to_weir" ; : if (mustard_sitting_on_lid) { : create "mustard" target = "next_to_weir" ; } } : else { : create "lid" target = "east_river" ; : if (mustard_sitting_on_lid) { : create "mustard" target = "east_river" ; } } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_at "next_to_weir") { : if (mustard_sitting_on_lid) { : print "Push it over the weir, while Mustard is sitting on it? He's my best friend. I'd never, ever do that!"; } : else { : print "What, over the weir? I've got no reason to do that. I'm not a vandal!"; } } } : else_if (adjective1_is "west"||noun2_is "west"||adjective1_is "w"||noun2_is "w") { : if (is_at "north_river"||is_at "south_river"||is_at "middle_river") { : print "There doesn't seem much point in pushing it that way - there's nothing up there but lots of empty river."; } : else_if (is_at "east_river"||is_at "next_to_weir") { : print "I push the lid and it glides westwards across the water."; : if (is_at "east_river") { : create "lid" target = "middle_river" ; : if (mustard_sitting_on_lid) { : create "mustard" target = "middle_river" ; } } : else { : create "lid" target = "east_river" ; : if (mustard_sitting_on_lid) { : create "mustard" target = "east_river" ; } } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } } : else { : print "I try to push it but it's much too big and heavy to push across the ground. I'd be better off trying to pick it up and carry it."; } } : else_if (i_am_mustard&&is_carried "mustard_lid"||!i_am_mustard&&is_carried "custard_lid") { : print "I'd need to drop it before I could do that."; : done ; } : else { : print "I don't see any lid here."; } } : else { : if (noun1_is "dog") { : if (is_present "stuffed_dog") { : if (adjective1_is ""&&noun2_is "") { : print "Which direction should I push it in?"; } : else_if (!adjective1_is "east"&&!adjective1_is "west"&&!adjective1_is "e"&&!adjective1_is "w"&&!noun2_is "east"&&!noun2_is "west"&&!noun2_is "e"&&!noun2_is "w") { : print "There's nowhere to push it in that direction!"; : done ; } : else_if (is_at "out_back") { : if (adjective1_is "west"||noun2_is "west"||adjective1_is "w"||noun2_is "w") { : print "There's not really anywhere to push it to, except back east into the tent."; : done ; } } : if (adjective1_is "east"||noun2_is "east"||adjective1_is "e"||noun2_is "e") { : print "I push the stuffed dog and it glides eastwards on its rollers."; : if (is_at "store_room") { : create "stuffed_dog"target = "big_white_tent" ; } : else_if (is_at "out_back") { : create "stuffed_dog" target = "store_room" ; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (adjective1_is "west"||noun2_is "west"||adjective1_is "w"||noun2_is "w") { : print "I push the stuffed dog and it glides westwards on its rollers."; : if (is_at "store_room") { : create "stuffed_dog" target = "out_back" ; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else { : print "But there isn't one of those here!"; } } : if (noun1_is "skateboard") { : if (is_present "skateboard") { : if (i_am_mustard&&mustard_on_skateboard) { : print "Difficult to push it when I'm standing on it!"; } : else_if (!i_am_mustard&&custard_on_skateboard) { : print "Difficult to push it when I'm standing on it!"; } : else { : print "I'd be better off riding it, I think!"; } } } : if (noun1_is "door") { : if (is_at "outside_storeroom") { : print "I push the door but nothing happens."; } } : if (noun1_is "bar") { : if (is_at "outside_storeroom") { : print "I jump up and push the door release bar with both of my paws."; : if (storeroom_door_open) { : print "Nothing happens, since the door is already open."; } : else { : print "The door flies open and Mustard leaps through and starts jumping all over me and nibbling me and barking like he hasn't seen me for years! It's nice to be so popular."; : set_true "storeroom_door_open" ; : set_false "mustard_trapped" ; : create "mustard"; : set_true "follow"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } } : else_if (noun1_is "harry") { : if (is_present "handclap_harry") { : if (is_at "zone_whole_river") { : print "He's thrashing and splashing around too much for that. I think the only way is to grab hold of him."; } : else { : print "I don't think that would be a good idea!"; } } } : else_if (noun1_is "bin") { : if (is_present "paper_bin") { : print "I nudge it around a bit, but I might as well pick it up and carry it really."; : done ; } } : else_if (s1_has_trait "character_t") { : print "I don't think they'd like that very much!"; } : else_if (s1_has_trait "male_t") { : print "I don't think he'd like that very much!"; } : else_if (s1_has_trait "female_t") { : print "I don't think she'd like that very much!"; } } } #PUSH end : match "in _" { : if (is_present "van") { : set_sentence "enter van"; } : else_if (is_present "bus") { :set_sentence "enter bus"; } : else_if (is_present "sack") { :set_sentence "enter sack"; } } : match "out _" { : if (is_present "van") { : set_sentence "exit van"; } : else_if (is_present "bus") { :set_sentence "exit bus"; } : else_if (is_present "bus") { :set_sentence "exit sack"; } } : match "get _" { : if (preposition_is "in") { : if (noun1_is "bus") { : set_sentence "enter bus"; } : else_if (noun1_is "van") { : set_sentence "enter van"; } : else_if (noun1_is "sack") { :set_sentence "enter sack"; } : else_if (noun1_is "car") { :set_sentence "enter car"; } : else_if (noun1_is "boat") { :set_sentence "enter boat"; } } : else_if (preposition_is "out") { : if (noun1_is "bus") { : set_sentence "exit bus"; } : else_if (noun1_is "van") { : set_sentence "exit van"; } : else_if (noun1_is "sack") { :set_sentence "exit sack"; } : else_if (noun1_is "crate") { :set_sentence "enter crate"; } } } #ENTER start : match "enter grille; enter duct" { : if (is_at "on_shelf"||is_at "old_gaol_room") { :set_sentence "up"; } } : match "input code" { :set_sentence "enter code"; } : match "enter_" { : if (noun1_is "") { : print "What do you want me to enter? Tell me with ENTER [[place]]."; : done ; } // : if (is_at "outside_chipshop") { // :set_sentence "west"; // } : if (noun1_is "bus") { : if (is_present "bus") { : if (!mustard_button_pushed&&!custard_button_pushed) { : print "But the doors are closed!"; : done ; } : if (is_present "button") { : if (mustard_button_pushed) { : if (protagonist ()=="mustard") { : print "As soon as I stop pressing the button, the doors hiss shut in my face.."; : set_false "mustard_button_pushed" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : print "I hop on board the bus..."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : set_false "follow" ; : goto "inside_bus"; : redescribe; } } : else_if (custard_button_pushed) { : if (protagonist ()=="custard") { : print "As soon as I stop pressing the button, the doors hiss shut in my face."; : set_false "custard_button_pushed" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : print "I hop on board the bus..."; : set_false "follow" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : goto "inside_bus"; : redescribe; } } } } : else { : print "But there isn't a bus here!"; } } : else_if (noun1_is "van") { : if (is_present "van") { : print "I hop inside the van."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : goto "inside_van"; : redescribe; } : else { : print "But there isn't a van here!"; } } : else_if (noun1_is "sack") { : if (is_present "sack") { : if (i_am_mustard) { : if (!has_visited "inside_sack") { : print "I wait until Mrs Kaur isn't looking and then I creep inside the sack. It's full of compost..."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "It's a funny sort of smell in here - fusty and musty. And it's warm as well. Not unpleasant at all really."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Suddenly the lights go out! I feel myself being lifted up and carried before being put down again."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "And then the next thing I know, I'm being trundled along - I must be on some sort of trolley! I bump over cobbles and then a smoother surface, and then the feeling of movement stops. I hear the sound of a key turning and a padlock springing open. And then there's a bit more movement before the sack is lifted off the trolley and put down on a hard floor. Then I hear the door closing and the padlock locking again - and then all is quiet."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : set_false "follow" ; : goto "inside_sack"; : create "sack"target = "museum_storeroom" ; : destroy "mrs_kaur"; : redescribe; } : else { : print "I don't see much point in getting back in there."; } } : else { : print "I've got a funny thing about confined spaces!"; } } } : else_if (noun1_is "car") { : if (is_at "carpark") { : print "I don't think the owners would like that!"; } : else_if (is_present "getaway_car") { : print "With Merve the Swerve in there? He'd turn me into dog food!"; : done ; } : else_if (is_present "broken_car") { : print "What, now it's all crumpled and blowing off steam? I don't think that would be a good idea!"; : done ; } } : else_if (noun1_is "boat") { : if (is_at "old_gaol_room") { : print "There's barely enough room in there for the fisherman, let along me as well!"; } } : else_if (noun1_is "code") { : if (is_present "combination_lock") { : print "I'd need to push the right buttons in the right order to do that!"; } : else { : print "I can't see any way of doing that here!"; } } : else_if (is_at "outside_newsagent") { : if (nighttime) { : print "It's shut at this time of night."; : done ; } : if (i_am_mustard) { : print "I'd better not - I think I hear Mrs Ogodu behind the counter and she really doesn't like dogs in the shop!"; } : else { : print "I'd better not - I'm not sure if dogs are welcome in there, especially ones without owners!"; } } : else_if (is_at "outside_butcher") { : if (nighttime) { : print "It's shut at this time of night."; : done ; } : print "Definitely not - I wouldn't want to find myself at the wrong end of old Halfbacon's cleaver!"; } : else_if (is_at "outside_pub") { : if (nighttime) { : print "It's shut at this time of night."; : done ; } : if (i_am_mustard) { : print "I don't think Pru would like me hanging around in there!"; } : else { : print "I don't know what Kenny would say if he saw me in there!"; } } : else_if (is_at "east_street") { : print "I don't think I need to wander about in there."; } : else_if (is_present "crate") { : print "What would I want to do that for? I'm not old enough to be a museum artefact!"; } : else_if (is_present "houses"||is_present "houses_1") { : print "I can't just walk into strange houses without being invited!"; } : else_if (noun1_is "cafe") { : if (nighttime) { : print "It's shut at this time of night."; : done ; } : print "I don't think I'd get away with sneaking in there on my own."; } : else_if (noun1_is "salon") { : if (is_present "salon") { : if (nighttime) { : print "It's shut at this time of night."; : done ; } : if (i_am_mustard) { : print "I'd better not - Pru's quite friendly with Sharon who runs the place and if I walk in there on my own she'll probably phone her and tell her what I'm up to!"; } : else { : print "I'd better not - if they started on my hair, I might never get out of there!"; } } } : else_if (noun1_is "chip"||noun1_is "shop"||noun1_is "chipshop") { : if (is_present "chip_shop") { : print "I don't think they'd like me wandering in unaccompanied."; } } : else_if (noun1_is "hall") { : if (is_present "hall") { : print "I don't think they like dogs in there."; } } } #ENTER end #EXIT start : match "exit _" { : if (is_at "inside_bus") { : print "I leave the bus..."; : set_true "follow" ; : goto "market_square"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_at "inside_van") { : if (is_present "sofa") { : if (i_am_mustard) { : if (mustard_on_sofa) { : print "I get off the sofa."; : set_false "mustard_on_sofa" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; } : if (custard_on_sofa) { : print "Custard gets off the sofa."; : set_false "custard_on_sofa" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; } } : if (!i_am_mustard) { : if (custard_on_sofa) { : print "I get off the sofa."; : set_false "custard_on_sofa" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; } : if (mustard_on_sofa) { : print "Mustard gets off the sofa."; : set_false "mustard_on_sofa" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; } } } : print "I hop out of the van."; : goto "cripplepepper_lane"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_at "under_table") { : print "I sneak out from under the table..."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : if (is_exists "legs_1") { : print "The lady at the table glances down just as I emerge. She lets out a piercing scream and jumps out of her chair, knocking over her wine glass as she does so. People's heads whip round and waiters rush over as a red bloom spread over the lovely white tablecloth. Some of those stuck-up dogs look mildly interested, but most just carry on nibbling their caviar."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Darling, what on earth...\" says Mr Fussy, pretty rattled.\n\"A rat!\" says the lady, pointing hysterically, \"a rat! Under the table!\"\n\"A rat!\" cries the Maître d' in a thick French accent, although he's actually from Nuneaton (or so Pru says), \"No! It is not possible!\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Good lord!\" shouts a portly, red-faced man with a big moustache, pointing at me from a different table, \"Look there! A dog, without a tie! Disgraceful. What is this place coming to?\""; : print "\"Perhaps it's chasing the rat?\" says Mr fussy, helpfully.\n\"There is no damned rat!\" retorts the Maître d', dropping the French accent and almost shouting now.\"\n\"Are you calling my fiancée a liar?\" the fiancé yells back."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Never mind about that,\" barks red-face, \"who does that bloody scruffy dog belong to?\"\n\"Calm down dear,\" I hear his elegant lady companion reply \"perhaps you've had a little too much champagne?\"\n\"Too much champagne Marjorie?\" he splutters, \"What rot. I haven't had nearly enough. Waiter!\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "I race past a grey-muzzled, baggy old bloodhound in a bowler hat and pince-nez who looks at me sniffily, through the archway, and into the reception. The reception waiter looks at me in surprise, but before he has time to know what's going on, I'm through the front door and out of the restaurant. "; : goto "carpark"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : if (!is_present "guests") { : print "I emerge from under the tablecloth nice and discreetly - or so I think, until the Maître d' spots me. Guessing I'm not with anyone, he shoos me out of the restaurant before any of the guests realise what's happening."; : set_true "pleased_to_see_me" ; : goto "carpark"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (is_at "inside_sack") { : print "I hop out of the sack."; : goto "museum_storeroom"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } #EXIT end #STAND ON/GET ON/SIT ON start : match "get _;sit _;stand _" { : if (preposition_is "on") { // : if (!is_present (s1())&&!noun1_is "seats"&&!noun1_is "custard"&&!noun1_is "mustard") { // : print "I think about it, but don't see the point really."; // : done ; // } : if (noun1_is "lid") { : if (is_beside "lid"||is_exists "mustard_lid"||is_exists "custard_lid") { : if (mustard_sitting_on_lid) { : if (i_am_mustard) { : print "But I'm already sitting on it!"; : done ; } : else { : print "The lid is a bit too small or Mustard is a bit too big - either way, there isn't room for me as well!"; : done ; } } : else_if (custard_sitting_on_lid) { : if (!i_am_mustard) { : print "But I'm already sitting on it!"; : done ; } : else { : print "There's no way I'll fit on there as well as that big hairy thing!"; : done ; } } : if (is_at "zone_whole_river") { : print "I scrabble and scramble, but the lid just slides away from me across the water."; : done ; } : if (is_exists "mustard_lid") { : if (i_am_mustard) { : destroy "mustard_lid"; : set_false "mustard_got_lid"; : create "lid"; : print "I drop the lid."; } : else { : print "I can't sit on the lid while Mustard is carrying it!"; : done ; } } : if (is_exists "custard_lid") { : if (!i_am_mustard) { : destroy "custard_lid"; : set_false "custard_got_lid" ; : create "lid"; : print "I drop the lid."; } : else { : print "I can't sit on the lid while Custard is carrying it!"; : done ; } } : if (is_carried "skateboard") { : drop "skateboard" quiet = "true" ; : print "I get off the skateboard."; : set_false "custard_on_skateboard" ; : set_false "mustard_on_skateboard" ; } : if (i_am_mustard&&mustard_on_sofa) { : print "I get off the sofa."; : set_false "mustard_on_sofa" ; } : else_if (!i_am_mustard&&custard_on_sofa) { : print "I get off the sofa"; : set_false "custard_on_sofa" ; } : print "I get onto the wooden lid."; : if (i_am_mustard) { : set_true "mustard_sitting_on_lid" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : set_true "custard_sitting_on_lid" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } } : else_if (noun1_is "skateboard") { : if (i_am_mustard) { : if (!mustard_on_skateboard) { : if (custard_on_skateboard) { : print "But Custard is already on there! There isn't room for the both of us."; : done ; } : if (is_present "skateboard") { : if (mustard_on_sofa) { : print "I get off the sofa."; : set_false "mustard_on_sofa" ; } : print "I get on the skateboard."; : create "skateboard"target = "inventory" ; : set_true "mustard_on_skateboard" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else { : print "But I'm already on the skateboard!"; : done ; } } : else { : if (!custard_on_skateboard) { : if (mustard_on_skateboard) { : print "But Mustard is already on there! There isn't room for the both of us."; : done ; } : else_if (is_present "skateboard") { : if (custard_sitting_on_lid) { : print "I get off the wooden lid."; : set_false "custard_sitting_on_lid" ; } : print "I get on the skateboard."; : create "skateboard"target = "inventory" ; : set_true "custard_on_skateboard" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else { : print "But I'm already on the skateboard!"; } } } : else_if (noun1_is "sofa") { : if (is_present "sofa") { : if (i_am_mustard) { : if (mustard_on_sofa) { : print "But I'm already on the sofa!"; : done ; } : else_if (mustard_on_skateboard) { : print "I get off the skateboard."; : create "skateboard"; : set_false "mustard_on_skateboard" ; } : print "I jump up onto the sofa."; : set_true "mustard_on_sofa" ; } : else { : if (custard_on_sofa) { : print "But I'm already on the sofa!"; : done ; } : else_if (custard_on_skateboard) { : print "I get off the skateboard."; : create "skateboard"; : set_false "custard_on_skateboard" ; } : print "I jump up onto the sofa."; : set_true "custard_on_sofa" ; } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (noun1_is "dog"||noun1_is "stuffed") { : if (is_present "stuffed_dog") { : print "I have a go, but it's really difficult as it keeps rolling around when I try to get on it - so eventually, I give up."; : done ; } } : else_if (noun1_is "mustard") { : if (i_am_mustard) { : print "Stand on myself? You must be having a laugh."; : done ; } : else { : print "I'd better not try that - he's smaller than me!"; : done ; } } : else_if (noun1_is "custard") { : if (standing_on_custard) { : print "But I'm already standing on him!"; : done ; } : if (i_am_mustard) { : if (mustard_sitting_on_lid) { : print "I get off the wooden lid."; : set_false "mustard_sitting_on_lid" ; } : else_if (mustard_on_skateboard) { : print "I get off the skateboard."; : create "skateboard"; : set_false "mustard_on_skateboard" ; } : if (is_present "constable_oddcrisp") { : if (!tutu_tightrope) { : print "I clamber up on Custard's back while the policemen and Professor Ambleside watch me in amazement.\n\"What on earth are those dogs doing, Sue?\" asks Chief Broom.\n\"I believe it's acrobatics of some sort, Ma'am,\" says Sergeant Wise, helpfully. \"Perhaps they've escaped from a circus?\"\n\"Ooh, I've seen this on telly!\" chips in Constable Oddcrisp. \"The little one wears a tutu and walks around on his back legs while the big one balances on a tightrope!\"\nI hastily get down off Custard's back before they get any more funny ideas. "; : set_true "tutu_tightrope" ; : done ; } : else { : print "I don't think so, in case they try and pack us both off to the circus."; : done ; } } : if (is_at "exhibition_room") { : if (!stood_on_custard_in_exhibition_room) { : set_true "stood_on_custard_in_exhibition_room" ; } :print "\"Hey, Custard - do you mind if I get up for a better view?\" I ask politely. \n\"Um, okay - I suppose so..\" Custard sounds a little dubious. \"If you think it'll help..\"\nApologetically, I clamber up Custard's shaggy mane and onto his back. It's like standing on a big hairy cloud!\"\n\"Just try not to tickle me while you're up there Mustard - ok?\""; : set_true "standing_on_custard" ; } : else { : print { text = \ "Hey, Custard - do you mind if I get up for a better view?" I ask politely. "Um, okay - I suppose so..." Custard sounds a little dubious. "If you think it'll help.." Apologetically, I clamber up Custard's shaggy mane and onto his back. It's like standing on a big hairy cloud! "Anything good up there?" Custard asks, from down below. "Well, there's..." I begin, but just at that moment I feel a little shiver beneath me and I recognise what's coming. I leap off Custard's back just as he begins to shake himself violently. "Sorry Mustard," says Custard. "I couldn't help myself. Your claws were tickling me!" "Don't worry Custard," I say. "I know that when a dog's got to shake, a dog's got to shake." \ } : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : set_true "standing_on_custard" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : print "What? I can't get onto myself!"; : done ; } } : else_if (noun1_is "tadcaster") { : if (is_present "tadcaster") { : print "Tadcaster just sits there patiently while I scramble up onto his back. I bark and prance about for a while before leaping down again.\n\"Oh, hello Mustard,\" he says as he notices me, \"I haven't seen you about for a while.\" Half dog, half goldfish - that's Tadcaster!"; } } : else_if (noun1_is "stage") { : if (is_at "magic_show") { : if (!nighttime) { : if (is_present "tp") { : print "I'd better not, otherwise people might think I'm part of the show! I don't fancy being sawn in half."; } : else { : print "I'd better not, otherwise people might think I'm putting on a show and expect me to start tap dancing or something!"; } } } : else_if (is_at "backstage") { : print "I'm already on the back of the stage."; } } : else_if (noun1_is "seat") { : if (is_at "inside_bus") { : print "Everyone know that dogs aren't allowed on the seats!"; } } : else_if (noun1_is "chair") { : if (is_at "ambleside_room") { : print "I hop up onto the Professor's chair and enjoy feeling like a VIP for a while. Then I hop off again."; } : else_if (is_at "finds_room") { : print "I'd love to - it looks so comfy! But I don't think now's the time for a snooze."; } } : else { : print "I don't think I'll bother trying to get on that."; : done ; } } : if (preposition_is "off") { : if (noun1_is "lid") { : if (i_am_mustard) { : if (!mustard_sitting_on_lid) { : print "But I'm not on it!"; : done ; } : else { : if (is_at "zone_whole_river") { : print "I'm not going in that water, no matter how many times you ask me!"; : done ; } : print "I get off the wooden lid."; : set_false "mustard_sitting_on_lid" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (!custard_sitting_on_lid) { : print "But I'm not on it!"; : done ; } : else { : print "I get off the wooden lid."; : set_false "custard_sitting_on_lid" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else { : if (noun1_is "skateboard") { : if (i_am_mustard) { : if (mustard_on_skateboard) { : print "I get off the skateboard."; : create "skateboard"; : set_false "mustard_button_pushed" ; : set_false "mustard_on_skateboard" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : print "But I'm not on the skateboard!"; : done ; } } : else { : if (custard_on_skateboard) { : print "I get off the skateboard."; : create "skateboard"; : set_false "custard_on_skateboard" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : print "But I'm not on the skateboard!"; : done ; } } } : else_if (noun1_is "sofa") { : if (i_am_mustard) { : if (mustard_on_sofa) { : print "I get off the sofa."; : set_false "mustard_on_sofa" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : print "But I'm not on a sofa!"; } } : else_if (custard_on_sofa) { : print "I get off the sofa."; : set_false "custard_on_sofa" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : print "But I'm not on a sofa!"; } } } } // : else_if (lid_in_river) { // : if (is_at "zone_whole_river"||is_at "slipway_north"||is_at "slipway_south"||is_at "riverside"||is_at "by_the_river"||is_at "carpark"){ // : print "It's too far away for me to reach!"; // } // : else { // : print "I don't see any lid here!"; // } // } // : else { // : print "I don't see any lid here!"; // } } // : else { // : if (!custard_on_skateboard) { // : if (mustard_on_skateboard) { // : print "But Mustard is already on there! There isn't room for the both of us."; // : done ; // } // : else_if (is_present "skateboard") { // : print "I get on the skateboard."; // : destroy "skateboard"; // : set_true "custard_on_skateboard" ; // // : if (pe) { : print "[[Press enter]]"; } :press_any_key; // : redescribe; // } // } // : else { // : print "But I'm already on the skateboard!"; // } // } // } #STAND ON/GET ON/SIT ON end #GET start : match "move towel;pull towel" { :set_sentence "get towel"; } : match "get poo" { :set_sentence "get bags";} : match "get scraps" { :set_sentence "eat scraps"; } : match "go table" { :set_sentence "get under table"; } : match "get _" { : if (noun1_is "swan") { : if (is_at "slipway_north"||is_at "slipway_south"||is_at "railings"||is_at "by_the_river"||is_at "riverside"||is_at "middle_river"||is_at "east_river"||is_at "north_river"||is_at "south_river"||is_at "next_to_weir") { : if (nighttime) { : print "There aren't any about at this time of night."; } : else { : if (i_am_mustard) { : print "Are you crazy? They'd eat me for breakfast and that would be the end of the adventure for good and all! It would make a good story in the Pottlington Herald though."; } : else { : print "No way! They'd swallow me down fleece and all, and that would be the end of the adventure!"; } } } } : if (standing_on_custard) { : if (subject1_is "ancient_collar"&&is_beside "ancient_collar"&&!real_collar_in_case||subject1_is "replica_collar"&&is_beside "replica_collar"&&!real_collar_in_case) { : print "I get down off Custard's back"; : set_false "standing_on_custard" ; } } : if (!subject1_is "handclap_harry"&&!harry_in_river) { :if (s1_has_trait "character_t") { : print "I don't think they'd like that very much!"; : done ; } : else_if (s1_has_trait "male_t") { : print "I don't think he'd like that very much!"; : done ; } : else_if (s1_has_trait "female_t") { : print "I don't think she'd like that very much!"; : done ; } } #prepositions start : if (preposition_is "under") { : if (noun1_is "tables"||noun1_is "table") { : if (is_at "in_restaurant") { : print "There's a table quite close to me, so I wait until no one is looking and then slip under it where nobody can see me behind the tablecloth."; : goto "under_table"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else { : print "Doesn't seem much point in getting under there."; } } : if (preposition_is "in") { : if (noun1_is "crate") { : if (is_present "crate") { :set_sentence "enter crate"; } } : if (noun1_is "sedan") { :set_sentence "enter sedan"; } : if (noun1_is "box") { : if (is_at "old_gaol_room") { : print "But it's a flaky old antique that can't have been sat in for 100 years! I'm not sure it wouldn't crumble to dust if I tried."; } } } #prepositions end : if (is_beside (s1())&&standing_on_custard) { : if (!subject1_is "ancient_collar"&&!subject1_is "replica_collar") { : print "I get down off Custard's back"; : set_false "standing_on_custard" ; } } : if (!has_not_created "legs_1") { : if (is_present (s1())) { : if (subject1_is "top_hat"||subject1_is "monocle"||subject1_is "bow_tie") { : print "Nah - I think I'm done with all that posh gear for today. It's really not my style!"; : done ; } } } : if (noun1_is "lid") { : if (is_beside "lid") { : if (mustard_sitting_on_lid) { : if (i_am_mustard) { : print "I can't get it while I'm sitting on it!"; : done ; } : else { : print "I can't pick it up while Mustard is sitting on it!"; } : done ; } : if (custard_sitting_on_lid) { : if (!i_am_mustard) { : print "I can't get it while I'm sitting on it!"; } : else { : print "I can't pick it up while Custard is sitting on it!"; } : done ; } :else_if (lid_in_river) { : print "I try to get hold of the lid, but it just slides away from me across the water. I'd probably have better luck pushing it."; : done ; } : destroy "lid"; : iterate "_inventory_notworn" { : if (item()!="skateboard") { : drop (item()); } } : if (i_am_mustard) { : create "mustard_lid"target = "inventory" ; : set_true "mustard_got_lid" ; : print "I pick up the lid with my teeth."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : create "custard_lid" target = "inventory" ; : set_true "custard_got_lid" ; : print "I pick up the lid with my teeth."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } // : else_if (lid_description=="a large wooden lid (floating in the river)") { // : print "It's too far away for me to reach!"; // : done ; // } : else_if (i_am_mustard) { : if (is_exists "custard_lid") { : if (!is_carried "mustard_lid") { : create "mustard_lid"target = "inventory" ; : set_true "mustard_got_lid" ; : print "I clamp on to the edge of the lid with my teeth."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } } : else_if (!i_am_mustard) { : if (is_exists "mustard_lid") { : if (!is_carried "custard_lid") { : create "custard_lid"target = "inventory" ; : set_true "custard_got_lid" ; : print "I clamp on to the edge of the lid with my teeth."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } } } : else_if (noun1_is "towel") { : if (is_beside "beer_towel") { : if (is_exists "glass_1") { : print "I jump up and catch the beer towel in my teeth, pulling it off the bar - along with the pint glass that lands harmlessly on the grass. The tipsy crowd cheers."; : destroy "glass_1"; : create "glass_2"; } : else { : print "I jump up and catch the beer towel in my teeth, pulling it off the bar. The tipsy crowd cheers."; } : print "The barman mutters and comes around the other side of the bar, scowling at me. \"Does this dog belong to anyone?\" he says."; : print "\"Yeah, he's mine!\" someone shouts.\n\"Nah, he's mine!\" yells someone else."; : print "The barman looks round but doesn't spot me where I'm hiding behind some customers. Scowling, he puts the towel back where it was and goes behind the bar."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (noun1_is "rabbit"&&is_present "top_hat"&&!has_not_created "rabbit"&&rabbit_in_hat&&!hat_open) { : print "But the rabbit is inside the hat and the base is closed!"; } : else_if (noun1_is "hat") { : if (is_beside "top_hat") { : if (rabbit_in_hat) { : if (has_not_created "rabbit") { : print "I attempt to, but it feels heavy with some sort of weight that I could swear shifted a bit when I tried to pick it up. I don't like that at all, so I leave it where it is!"; : done ; } : else { : print "I don't think I should while that rabbit is asleep in there! How would you feel if someone picked up your bed and carried it around while you were asleep in it?"; : done ; } } : else_if (is_exists "cauliflower") { : print "I'm just about to get the hat when I hear TP say, \"and now, for my next trick...\" and then he's there at the back of the stage and reaching for it! He picks up the hat, frowns at how light it is and then peers into the base. He curses when he realises it's empty and is just about to toss it aside when he notices the rabbit sleeping soundly amongst the clutter. \"How did you get out?\" he says to himself. He scoops up the rabbit, pops it back into the hat and shuts the base. He turns and looks anxiously at the crowd, hearing them getting restless.\n\"Better let you settle down a bit,\" he mutters before putting the hat down and going back in front of the crowd."; : set_true "rabbit_again" ; : destroy "rabbit"; : set_true "rabbit_in_hat" ; : set_false "hat_open" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : gosub "dropper" ; :get; } } } : else_if (noun1_is "tag") { : if (found_tag) { : if (is_present "top_hat") { : if (is_worn "top_hat") { : print "I can't do that while I'm wearing the top hat!"; : done ; } : else { : print "I can't really get it because it's attached to the base of the top hat."; : done ; } } } } : else_if (noun1_is "skateboard") { : if (is_beside "skateboard") { : print "It's an awkward thing to pick up, but I could try to get on it!"; : done ; } : else_if (is_carried "skateboard") { : print "I'm already riding that!"; } : else_if (mustard_on_skateboard) { : if (!i_am_mustard) { : print "I can't really get it while Mustard is on it!"; } } : else_if (custard_on_skateboard) { : if (i_am_mustard) { : print "I can't really get it while Custard is on it!"; } } } : else_if (noun1_is "harry") { : if (harry_in_river) { : if (is_beside "handclap_harry") { : print "I swim up to Harry and manage to grab him by the collar as he struggles and splutters and thrashes about."; : create "handclap_harry" target = "inventory" ; } : else { : print "I'm not near enough to him to do that!"; } } } : else_if (noun1_is "haddock") { : if (is_at "in_back_of_chipshop") { : if (is_beside "fish") { : gosub "dropper" ; : get; } : else_if (!has_not_created "fish") { : print "I've already got one of those - I don't need another one!"; : done ; } : else_if (is_present "tommy_spratt") { : print "The crate is right next to Tommy - there's no way I can get any while he's standing there, especially not when he's in this mood. I don't want to end up battered and fried!"; : done ; } : else { : iterate "_inventory_notworn" { : if (item()!="skateboard") { : drop (item()); } } : print "I grab a piece of stinky horrible fish from the top of the crate. It plops onto the floor like a slimy slipper. I pick it up in my teeth. Yuk!"; : create "fish"target = "inventory" ; : set_integer var = "harry_counter" value = "0" ; } } } : else_if (is_at "inside_chipshop") { : if (noun1_is "fish"||noun1_is "sausages"||noun1_is "sausages"||noun1_is "pie"||noun1_is "pies"||noun1_is "chips") { : print "If only! All the food is safely shut away behind the glass of the frying range. There's no way I'm getting my paws on any of that lot."; } } : else_if (noun1_is "collar") { : if (subject1_is "replica_collar") { : if (is_at "exhibition_room") { : if (fake_collar_in_case) { : if (!case_open) { : print "But the display case is closed!"; : done ; } : if (!standing_on_custard) { : print "I can't reach the top of the case from here!"; : done ; } : set_false "fake_collar_in_case" ; : add_trait subject="replica_collar" trait="_listed"; } } : gosub "dropper" ; : get; : done ; } : else_if (subject1_is "ancient_collar") { : if (is_at "exhibition_room") { : if (real_collar_in_case) { : if (!case_open) { : print "But the display case is closed!"; : done ; } : if (!standing_on_custard) { : print "I can't reach the top of the case from here!"; : done ; } : set_false "real_collar_in_case" ; : add_trait subject="ancient_collar" trait="_listed"; } } : gosub "dropper" ; : if (parent_of "ancient_collar"=="fishing_creel") { : if (fishing_creel_open) { : if (is_present "professor_ambleside") { : print "I rootle around inside the fishing creel and pull out the ancient dog collar!"; : get "ancient_collar" quiet = "true" ; : done ; } } : else { : print "But the fishing creel is closed!"; : done ; } } : get; } } : else_if (noun1_is "statue") { : if (is_present "statue") { : if (statue_description!="a statue of Ambrose Hockbarrow (broken in two)") { : print "How am I supposed to do that? It's all the way up on the roof!"; } : else { : print "Even if I needed to, it's just too big and heavy to move."; } : done ; } } : else_if (noun1_is "taj"||noun1_is "nelson"||noun1_is "mandela"||noun1_is "watership"||noun1_is "down"||noun1_is "mahal") { : if (is_present "fancy_displays") { : print "The displays are all just a bit too far out of reach, which is probably for the best - Angie's got a bit of a temper on her!"; } } : else_if (noun1_is "cauliflower") { : if (is_present "angie_slipsocket") { : if (got_cauli) { : if (is_carried "cauliflower") { : print "I've already got that!"; } : if (is_beside "cauliflower") { : gosub "dropper" ; : get; : done ; } :else { : print "I don't think I'd get away with pinching another one. Angie's bound to notice if her rabbits keep disappearing!"; : done ; } } } : if (is_present "cauliflower") { : if (is_present "day_tripper") { : print "Angie is too busy trying to sell bags of onions and sacks of beetroot to the poor day tripper to pay any attention to me. I manage to sneak up and pinch the cauliflower off the stall without her even noticing!"; : set_false "cauli_on_stall" ; : gosub "dropper" ; : get "cauliflower" ; : set_true "got_cauli" ; : done ; } : else_if (is_present "angie_slipsocket") { : print "Angie spots me as I sneak towards the displays. \"Oi!\" she yells, picking up a knobbly squash and waving it at me threateningly, \"git yer paws off my vegitibles! I was up all night doing those!\" I whine and slink away with my ears flattened against my head and my tail between my legs. "; : done ; } : gosub "dropper" ; :get "cauliflower"; } } : else_if (is_beside (s1())&&!s1_has_trait "_immovable") { : gosub "dropper" ; : get; } } #GET end #DROP start : match "drop bin" { : if (noun2_is "wire"&&preposition_is "on") { :set_sentence "put bin on wire"; } } : match "drop _" { :disambiguate_s1 "carried"; : if (is_worn (s1())) { : gosub "remover" ; } : if (standing_on_custard) { : print "I'd better not drop anything while I'm up here on Custard's back!"; : done ; } : else_if (is_at "south_river"||is_at "middle_river"||is_at "north_river"||is_at "east_river"||is_at "next_to_weir") { : if (i_am_mustard) { : print "I'd better not drop anything here - it might fall off this little wooden lid and be lost forever in the river!"; : done ; } : else_if (custard_sitting_on_lid) { : print "I'd better not drop anything here - it might fall off this little wooden lid and be lost forever in the river!"; : done ; } : else { : if (!is_carried "handclap_harry") { : print "I'd better not drop anything here - if it goes on the river it'll be lost forever!!"; : done ; } } } : if (noun1_is "bag"&&is_carried "bag") { : if (is_at "by_the_bandstand") { : if (is_present "mr_czerwinski") { : print "I drop the bag of tricks. Mr Czerwinski seems too absorbed in trying to fix the PA to even notice..."; : drop quiet = "true" ; : done ; } } } : else_if (noun1_is "lid") { : if (is_carried "mustard_lid") { : destroy "mustard_lid"; : set_false "mustard_got_lid"; : print "I let go of the lid."; : if (!is_exists "custard_lid") { : create "lid"; : if (is_at "slipway_south"||is_at "slipway_north") { : print "It clatters onto the concrete slipway, it's front edge dipping into the water."; } } : done ; } : else_if (is_carried "custard_lid") { : destroy "custard_lid"; : set_false "custard_got_lid" ; : print "I let go of the lid."; : if (!is_exists "mustard_lid") { : create "lid"; : if (is_at "slipway_south"||is_at "slipway_north") { : print "It clatters onto the concrete slipway, it's front edge dipping into the water."; } } : done ; } } : if (noun1_is "harry") { : if (is_carried "handclap_harry") { : print "I let go of Harry's collar and he starts to splash around and shout again!"; : drop quiet = "true" ; : done ; } } : if (noun1_is "skateboard") { : if (is_carried "skateboard") { : print "But I'm on it, carrying it!"; : done ; } ; } : drop; } #DROP end #WEAR start : match "wear _" { :disambiguate_s1 "present"; : if (subject1_is "headdress") { : print "I'm tempted, but I'm not sure it's really my style."; : done ; } : if (!s1_has_trait "_wearable") { : print "But I can't wear that!"; } : else_if (is_beside (s1())) { : gosub "dropper" ; : get; } : if (is_carried (s1())) { : wear; } } #WEAR end #MOVE start : match "move _" { : if (noun1_is "dog"&&is_present "stuffed_dog") { : print "It looks like I could push it or pull it."; : done ; } : else_if (noun1_is "lid") { : if (is_at "zone_whole_river") { : print "I reckon pushing it is the best idea."; } : else_if (is_at "slipway_north"||is_at "slipway_south") { : print "I reckon picking it up and carrying it is the best idea. Or, I suppose I could push it into the water."; } : else { : print "I don't reckon I'll have much luck with that - it hasn't got wheels, you know! Best think to do would be pick it up and carry it."; } } } #MOVE end #REMOVE start : match "remove _" { : gosub "remover" ; } #REMOVE end #HIDE start : match "hide _" { : if (is_at "in_restaurant") { : print "There's a table quite close to me, so I wait until no one is looking and then slip under it where nobody can see me behind the tablecloth."; : goto "under_table"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } #HIDE end #PULL start : match "pull _" { : if (noun1_is "tag") { : if (found_tag) { : if (is_present "top_hat") { : if (!is_worn "top_hat") { : if (is_carried "top_hat") { : drop "top_hat"; } : if (hat_open) { : print "I grip the tag with my teeth and pull, but seeing as the base is already open, nothing happens!"; : done ; } : else { : print "I grip the tag with my teeth and pull. A hidden compartment in the base of the hat springs open."; : set_true "hat_open" ; : set_true "found_lid" ; } : if (!is_exists "rabbit") { : if (has_not_created "rabbit") { : print " There's something white and fluffy inside...it's a rabbit!"; } : else { : print "The rabbit's in there, of course - still sound asleep."; } : create "rabbit"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } } } } : else_if (noun1_is "lid") { : if (is_at "zone_whole_river") { : print "I reckon pushing it is the best idea."; } : else_if (is_at "slipway_north"||is_at "slipway_south") { : print "I reckon picking it up and carrying it is the best idea. Or, I suppose I could push it into the water."; } : else { : print "I don't reckon I'll have much luck with that - it hasn't got wheels, you know! Best think to do would be pick it up and carry it."; } } : if (noun1_is "handle") { : if (is_at "ambleside_room") { : if (is_at "ambleside_room") { : print "I tug on the handles and open all the drawers - but there's nothing in there except dust, pencil-shavings, the occasional dead spider and a programme for <^i^Puss In Boots> at the Old Corn Exchange theatre in 1967 \"starring Crossroad's Meg Mortimer\". I shut them again."; } } : else_if (is_present "handle") { : if (!standing_on_custard) { : print "Even standing on my back legs, I'm not quite tall enough to reach the handle."; } : else_if (case_open) { : print "I pull the handle and nothing much happens."; } : else_if (pressed_1&&pressed_7&&pressed_2&&pressed_6) { : print "I hook my paws around the handle and pull...and topple off Custard's back as the whole back of the display case swings open!"; : set_false "standing_on_custard" ; : if (!done_combination) { : set_true "done_combination" ; } : set_true "case_open" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } :else { : print "I hook my paws around the handle and pull, but nothing happens!"; } } } : if (noun1_is "dog") { : if (is_present "stuffed_dog") { : print "I try to, but it's quite an awkward thing to try and get hold of and pull. I might have more luck pushing it."; } : if (noun1_is "lid") { : if (is_present "lid") { : print "It's an awkward thing to pull, but I might be able to push it."; } } } } #PULL end #LISTEN start : match "listen _" { : if (ambleside_counter>0&&ambleside_counter<14) { : print "I haven't got much choice really - he's so loud, they'll be able to hear him in Thorpe Monkton!"; : done ; } : else_if (is_at "under_table") { : if (!is_exists "guests") { : if (is_present "legs") { : print "People think that dogs are listening to every word they're saying, but usually we don't bother because apart from 'walkies' and 'dinner time' they hardly ever say anything interesting. This time, though, I've got a feeling it might be worth my while. So I shake off the top hat, monocle and bow tie - a dog can't really get comfortable with all that clobber on - and settle down to have a good old eavesdrop..."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "\"...easy peasy,\" says a gruff voice, \"stuff's just sitting there waiting for us to walk in and take it\".\n\"So you say,\" answers another voice, squeaky and nervous-sounding, \"but if it's that easy why do you need us along? Things ain't ever that simple Harry.\"\n\"Well,\" replies the one called Harry, \"when I say it's just sitting there I mean, there might be one or two little things that we'd need to sort out first...\"\n\"Ah, here it comes!\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Harry carries on, reassuringly, \"...but nothing that a gentleman of your talents can't deal with, Keith. A bit of extra security, brought in for the exhibition. Cameras. Infrared beams around the display cases. That sort of thing. Not much for you to worry about.\"\n\"Well, okay,\" Keith replies, sounding a bit calmer now, \"doesn't sound too difficult when you put it like that.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"It ain't, not for us. That's why I chose you two, see? Needed people I could trust. Experienced. Reliable. Who better than old Skeleton Keith, the man who can pick any lock and turn off any alarm, and Merve the Swerve, the best getaway driver in the business? Oh, and of course yours truly, Handclap Harry, in charge of the whole operation. We're a dream team.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Urm, I been wondering...why do they call you Handclap Harry?\" drawls a third, slow, voice which I guess belongs to Merve."; : print "\"Dunno,\" replies Harry, \"just a school nickname that stuck. No idea why. Anyhow, listen - this is going to be the biggest...\" \nThere's a very sudden, very loud double clap that stops the conversation and, after a pause, I hear a waiter say, \"Can I fetch anything for you, sir?\"\n\"Nah,\" Harry replies, \"sorry about that. Just a nervous tick. Don't mind me.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; :print "\"Alright then,\" Merve drones, \"but what I want to know is - what is this Romeo whatsit stuff anyway?\""; : print "\"Romano-British,\" says Harry, \"ancient Roman. Didn't you never get no classical education?\""; : print "\"Oh yeah, Romans. I get it. Hundreds of years ago. Queen Victoria and all that. But why...\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; :print "\"Unique artefacts, Merve. Priceless. Nothing else like them in the whole world. Especially that golden dog collar. Collectors would pay good money for that.\""; : print "\"How good?\" pipes up Keith."; : print "\"Millions,\" says Harry, in a dramatic whisper. \"Millions.\""; :print "\"You sure you can find a buyer?\" Keith asks."; :print "\"I know a few who are already interested,\" says Harry."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "That nearly sends Keith over the edge. \"You mean, you've told...\" he begins to squeal, hysterically."; : print "\"Discreetly Keith,\" Harry says soothingly, \"always discreetly. Besides, if nobody wants the hot goods then we melt it all down and sell the gold. Either way we're laughing. So...are you in?\""; : print "There's a longish pause and then Keith and Merve both mumble, \"I'm in.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Good boys,\" says Harry, \"I knew I could count on you. Tonight then. At the museum.\""; : print "There's a murmur of agreement, a bit more talking and then shortly afterwards they get the bill and leave. The waiter fusses around for a while and soon some different legs appear as new diners take their place at the table. "; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : destroy "legs"; : create "legs_1"; : create "top_hat"; : create "monocle"; : create "bow_tie"; : redescribe; } : else_if (is_present "legs_1") { : if (!legs_conversation) { : print "I listen and hear a man's voice ordering lunch.\n\"And the steak, please, \" he says, \"but without the peppercorn sauce. Or the tomatoes. Or the dauphinoise potatoes. Oh, and leave the green beans off as well if you wouldn't mind. And the roasted onions. And the parsley. And no gravy please.\"\n\"Very well sir,\" I hear the waiter reply in a dry voice, \"and how would Sir like his steak? Presuming that Sir would indeed like to keep his steak, to save Sir from being served with an empty plate.\"\n\"Oh, well done please,\" replies Mr fussy. \"Very well done. I mean, I prefer it cooked all the way through. Cook it for a long time. As dry as possible please.\"\n\"Very well Sir,\" the waiter replies, wearily. \"And how would Madame like her steak?\"\n\"Rare,\" an exasperated-sounding woman replies, \"with ALL the trimmings. And extra gravy.\""; : set_true "legs_conversation" ; : done ; } : else { : append "I have another listen but it's a pretty boring conversation. Sounds like they're talking about "; : cycle predictable_order = "false" key = "random_convo" { : append "tennis balls"; : append "origami"; : append "donkeys"; : append "crochet"; : append "liquorice"; : append "needlework"; : append "The Maastricht Treaty"; : append "Grange Hill"; :append "Chinese cricket"; : append "gardening"; :append "knee pads"; : append "hat stands"; : append "ice cream"; : append "flans"; } : print " or something."; : done ; } } } } : print "I listen but don't hear anything very interesting."; } #LISTEN end #PUT start : match "put _" { :disambiguate_s1 "carried"; : if (!is_carried (s1())) { : print "But I'm not holding that!"; : done ; } : if (is_worn (s1())) { : unwear; } :disambiguate_s2 "present"; : if (!is_present (s2())) { : if (!noun2_is "water"&&!noun2_is "river") { : print {("But the "+original "noun2"+" isn't here!")}; : done ; } } : if (noun2_is "river"||noun2_is "water") { : if (is_at "slipway_north"||is_at "slipway_south") { : print "It's difficult to get it in the water while I'm holding the big, heavy thing. I might have better luck dropping it and pushing it in."; : done ; } : else_if (is_at "by_the_river"||is_at "railings") { : print "I don't think I'd have much luck getting this big heavy lid up and over those railings!"; : done ; } : else_if (is_at "riverside") { : print "I'm too far away from the water here!"; } } : if (preposition_is "in") { : if (noun2_is "hat") { : if (is_present "top_hat") { : if (is_worn "top_hat") { : print "I can't put anything in it while I'm wearing it!"; : done ; } : else_if (!is_exists "cauliflower") { : print "I don't see much point in doing that, to be honest."; : done ; } : else_if (is_present "rabbit"&&rabbit_in_hat) { : print "What, on top of the rabbit? That seems a bit mean!"; } : else_if (noun1_is "cauliflower") { : if (!rabbit_in_hat) { : print "I put the cauliflower in the base of the hat."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "Things aren't going very well for TP. The crowd are getting restless, small children are crying and the waifs and strays from the beer tent are beginning to heckle. He's putting a brave face on it but I can smell the agitation oozing out of him.\n\"Right then!\" he says to the audience, a little snappily, \"if this doesn't impress you lot then nothing will!\" and he turns his back on them and stomps off towards the back of the stage, muttering, \"Bloody ungrateful sods, what do they expect from a free show? David Copperfield?\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "He grabs the top hat and a wand and strides to the front of the stage."; : print "\"And now,\" announces TP, in his best, most dramatic stage magician's voice, \"prepare to be amazed! A perfectly ordinary top hat...\" He turns the inside to the audience to show that it is empty and then starts to tap the wand slowly on the rim, counting as he does so, \"one...two...\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "He gets to three and then throws the wand away, puts his hand inside and produces... a cauliflower!"; : print "TP looks very pleased with himself as he brandishes it at the audience - until they collapse into hysterical laughter. He looks down and sees that he's holding a cauliflower and not a rabbit at all. Something snaps in him at that point - he goes red in the face and, yelling, throws the cauliflower as hard as he can, over the heads of the audience and into the middle of the gardens where it lands right in the middle of someone's champagne and strawberry picnic."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Show's over!\" he shouts, ignoring the picnickers who are now on their feet and waving their fists at him. He flings the top hat to the back of the stage where it lands just by me, jumps off the stage and storms off across the grass towards the beer tent. The audience, still chuckling and realising the show is now over, drift away to find other things to do. "; : destroy "cauliflower"; : destroy "tp"; : destroy "angie_slipsocket"; : destroy "fruit_stall"; : destroy "fruit"; : destroy "fancy_displays"; : destroy "day_tripper"; : destroy "crowd"; : set_true "all_over" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : if (!hat_open) { : if (has_not_created "rabbit") { : print "I drop the cauliflower into the hat with a thud."; : print "The hat jolts and there is a scuffling sound that I could swear came from inside. I whine and flatten my ears - Dog's really don't like unexplained noises like that! I grab the cauliflower and pull it out of the hat, just in case it was making that noise because it didn't like it in there. "; : done ; } : else { : if (rabbit_in_hat) { : print "I decide not to - it seems a bit mean to drop a big, heavy cauliflower into the hat when that rabbit is asleep in the base."; : done ; } } } } : else { : print {("I put the "+original "noun1"+ " in the hat. Just at that moment, I hear TP say, \"and now for my next trick...\" and then he appears at the back of the stage. He grabs the hat and glances inside and, seeing the "+original "noun1"+", he hesitates, curses under his breath and tips the hat up so that it falls out. ")}; : if (!rabbit_in_hat) { : print "He sees the rabbit curled up on the stage fast asleep. \"What the...how did you?\" he mutters, then picks it up and pops it back inside the hat.\""; : destroy "rabbit"; : set_true "rabbit_in_hat" ; } : print "The crowd is getting restless. TP hesitates and then puts the hat down and grabs another bit of magical junk that he hopes will impress them."; } : drop quiet = "true" ; : set_false "hat_open" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : print {("I put the "+original "noun1"+ " in the hat. Just at that moment, I hear TP say, \"and now for my next trick...\" and then he appears at the back of the stage. He grabs the hat and glances inside and, seeing the "+original "noun1"+", he hesitates, curses under his breath and tips the hat up so that it falls out. ")}; : if (!rabbit_in_hat) { : print "He sees the rabbit curled up on the stage fast asleep. \"What the...how did you?\" he mutters, then picks it up and pops it back inside the hat.\""; : destroy "rabbit"; : set_true "rabbit_in_hat" ; } : print "TP hears the crowd getting restless. He puts the hat down and grabs something else to impress them with."; : drop quiet = "true" ; : set_false "hat_open" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (noun2_is "case") { : if (!case_open) { : print "But the display case isn't open!"; : done ; } : else_if (noun1_is "collar") { : if (!standing_on_custard) { : print "I'm not tall enough to reach the top of the case from here!"; : done ; } : else_if (real_collar_in_case||fake_collar_in_case) { : print "But there's already a golden dog collar in the case! More that one in there and people will think something funny is going on."; } : else_if (subject1_is "replica_collar") { : print "I drop the replica golden dog collar delicately onto the purple velvet cushion, where is sparkles lustrously. You really couldn't tell it from the real thing!"; : set_true "fake_collar_in_case" ; : remove_trait subject="replica_collar" trait="_listed"; : drop "replica_collar" quiet = "true" ; } : else { : print "I drop the golden dog collar delicately onto the purple velvet cushion, where is glitters gloriously, as dazzling and shiny as the day it was made - nearly two thousand years ago!"; : set_true "real_collar_in_case" ; : remove_trait subject="ancient_collar" trait="_listed"; : drop "ancient_collar" quiet = "true" ; } } : else { : print "It doesn't seem right to put anything else on that plush purple velvet cushion. It feels as though it was made for one thing and one thing only!"; } } } : else_if (preposition_is "on") { : if (noun1_is "bin") { : if (noun2_is "ledge"||noun2_is "wires") { : print "I put the bin on top of the two halves of the cut wire and a deafening clangour starts up. It must be the burglar alarm!"; : drop "paper_bin" quiet = "true" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : if (!follow) { : if (i_am_mustard) { : print "There's a familiar scamper of paws and Custard appears, panting.\n\"I heard the alarm go off,\" he says breathlessly. \"What's going on?\""; } : else { : print "There's a familiar scamper of paws and Mustard appears, panting.\n\"I heard the alarm go off,\" he says breathlessly. \"What's going on?\""; } : set_true "follow" ; } : print "I hear yelling from inside the museum, and a moment later Skeleton Keith and Handclap Harry come racing out of the corridor and across the reception. We only just manage to get through the door and out of their way before they burst out of the entrance and into the yard."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Merve!\" gasps Harry, struggling under the weight of the bulging swag bag on his shoulder and barely able to catch his breath, \"Start the car! Get us out of here!\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Merve doesn't need telling twice. He starts the engine as the other two wrench the doors open and leap inside. There's a crunch of gears and a noise of screeching wheels, along with another sound - a sound of stone grating on stone, coming from somewhere up above. I look up just in time to see the statue of Ambrose Hockbarrow swaying drunkenly on his ledge up on the roof, before he lurches forwards and topples off altogether, hurtling towards the ground. "; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "The getaway car barely has time to move an inch before the huge statue smashes into the bonnet with a horrible sound of crumpling metal."; : print "Instantly, the airbags inflate and the alarm goes off, adding to the racket that must already have woken up most of the town by now. Merve, Harry and Keith fight their way out of the car, shaken but unscathed - and no sooner have they emerged than a clowder of cats appears from nowhere and engulfs them in a hissing, spitting cloud of sharp claws and teeth."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Keith shrieks and runs straight out of the museum yard. Merve, thrashing blindly at all the cats clinging to him, staggers after. "; : print "Harry, clapping his hands together madly while trying to shake off his own furry passengers, yells after them, \"Come back! Where are you going! Are you scared of a load of cats? Ouch! Dammit!\" And he says something unrepeatable as he manages to fling a couple of cats off him, only for them to be replaced instantly by two more."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "\"Go on then - run! You cowards. Just remember, I'm the one with the loot!\" he yells. He holds up the bulging sack of treasure triumphantly, curses again as yet more cats leap up and latch on to his outstretched arm, and then turns and runs out of the museum yard. "; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "I'm just about to follow him when I hear a familiar voice behind me. \"Bravo, bravo. A most impressive demonstration of feline superiority, I'm sure you will agree, gentlemen.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "We both turn to find Crawfield sitting serenely by the museum door, a silver-edged silhouette in the moonlight."; : if (i_am_mustard) { : print "\"But...\" I say."; : print "\"But...\" says Custard."; : print "\"You said...\""; : print "\"But then you didn't...\""; : print "\"So we thought you'd...\""; : print "\"Gone back on my word?\" finishes Crawfield, managing to sound indignant and self-satisfied at the same time. \"No doubt you dogs would think nothing of doing such a thing, but we abide by a feline code of honour. A cat's word is their bond, you know.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"But, when we said we needed you to...\" begins Custard."; } : else { : print "\"But...\" I say."; : print "\"But...\" says Mustard."; : print "\"You said...\""; : print "\"But then you didn't...\""; : print "\"So we thought you'd...\""; : print "\"Gone back on my word?\" finishes Crawfield, managing to sound indignant and self-satisfied at the same time. \"No doubt you dogs would think nothing of doing such a thing, but we felines abide by a code of honour. A cat's word is their bond, you know."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"But, when we said we needed you to...\" begins Mustard."; } : print "Crawfield holds up a slender black paw to interrupt him. \"I said I would help, dear boy - but I never said <^i^when>. And now, ragamuffins, I believe that my obligations to you are discharged. I wish you a good morning.\" He turns and slips up the side of the porch and onto the roof once more, like a streak of tar, and pauses beneath the window."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Oh, and one more thing - don't ever let me see you inside that museum again, or you'll have far more than just Janet Makepeace to contend with.\" And with that, he hops gracefully onto the ledge and then through the window, his twitching tail disappearing behind him."; :press_any_key; : if (pe) { : print "[[Press enter]]"; } : clear_screen; : print "The next moment, a sound of approaching sirens joins the clanging of the burglar alarm and the wail of the car alarm. A police car appears and screeches to a halt in front of the wreck of the crooks' getaway vehicle. Three policemen get out and begin to pace around the museum yard, looking about with solemn expressions and scribbling things in little notebooks. Two of them disappear inside the museum while the third waits outside."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "There is a sound of running footsteps and then Professor Ambleside himself appears in the archway, tousle-haired, sleepy-faced and wearing striped pyjamas and carpet slippers."; : print "\"I heard the alarm,\" he says, \"and thought I'd better come. What's happ...oh my goodness!\" He looks aghast at the wreckage of the getaway car and the broken statue.\n\"I hope nobody has been... But wait - the treasure?\" "; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "One of the policemen emerges from the museum and says something quietly to his superior."; : print "\"Stolen, I'm afraid Professor,\" says Chief Broom, nodding her head slowly and seriously at him. \"All gone. It seems they took everything.\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "The Professor yelps, runs inside the museum and emerges a few moments later looking aghast.\n\"The collar,\" he says, \"the collar!\"\n\"And everything else,\" adds Sergeant Wise, helpfully.\n\"Oh, who cares about that!\" he cries,\"I mean - the rest were just replicas.\"" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "\"Replicas?\" says Chief Broom,\"but didn't the museum say it was displaying the real artefacts?\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Oh yes, but the British Museum would never have let us do that. We could never have covered the insurance. So they provided replicas of the treasure to put on show. But, well, that didn't seem quite right to me so...\" he pauses before carrying on sheepishly, \"I secretly arranged with their head conservator Professor Peddlebridge, an old friend of mine, to, erm, borrow the real collar. For my own research purposes. And then, well - I put it on display. It was the one genuine item amongst all the fakes. My little joke, if you like. But now it has been stolen! Peddlebridge will be in hot water. What on earth will we tell the trustees? What will happen to my Honorary Fellowship? And my VIP discount in the British Museum tearoom? Oh dear, oh dear...\""; : set_string var = "statue_description" value = "a statue of Ambrose Hockbarrow (broken in two)" ; : goto "museum_yard"; : create "custard"; : set_false "custard_in_river" ; : create "mustard"; : destroy "paper_bin"; : create "sergeant_wise"; : create "constable_oddcrisp"; : create "chief_broom"; : create "professor_ambleside"; : destroy "skeleton_keith"; : destroy "merve_swerve"; : create "statue"; : create "key"; : create "chain"; : create "handclap_harry"target = "cripplepepper_lane" ; : swap o1 = "getaway_car" o2 = "broken_car" ; :press_any_key; : if (pe) { : print "[[Press enter]]"; } : redescribe; } } : else_if (noun2_is "table") { : print "I put it on the table, look at it for a moment, decide it's a bit pointless, and then take it off again."; } : else_if (noun2_is "stall") { : if (noun1_is "cauliflower"&&is_carried "cauliflower") { : print "What, after managing to sneak it away without Angie even noticing? I don't think I'd be that lucky a second time!"; } : else { : print "I don't think I'll bother with that actually."; } } : else { : print "I don't think I'll bother with that actually."; } } } #PUT end #RIDE start : match "ride _" { : if (noun1_is "skateboard") { : if (mustard_on_skateboard&&i_am_mustard||custard_on_skateboard&&!i_am_mustard) { : print "Which way should I go?"; } : else { : print "But I'm not on one of those!"; } } : if (noun1_is "unicycle") { : if (is_at "backstage") { : print "Don't be daft! Only dogs in cartoons can do that."; } } } #RIDE end #SKATING VOCAB start : if (noun1_is "hotfinger"||noun1_is"buffle"||noun1_is"flippant"||noun1_is"tony"||noun1_is"flippant tony"||noun1_is"hotfinger buffle"||noun1_is"driffield"||noun1_is"tuesday"||noun1_is"driffield tuesday"||noun1_is"boardslide"||noun1_is"50-50"||noun1_is "5050"||verb_is "50 50"||noun1_is"hippie"||noun1_is"hippie jump"||noun1_is "ollie"||noun1_is "shuvit"||noun1_is "kickflip"||noun1_is "kick-flip"||noun1_is "kick flip"||verb_is "hotfinger"||verb_is"buffle"||verb_is"flippant"||verb_is"tony"||verb_is"flippant tony"||verb_is"hotfinger buffle"||verb_is"driffield"||verb_is"tuesday"||verb_is"driffield tuesday"||verb_is"boardslide"||verb_is"50-50"||verb_is "5050"||verb_is "50 50"||verb_is"hippie"||verb_is"hippie jump"||verb_is "ollie"||verb_is "shuvit"||verb_is "kickflip"||verb_is "kick flip"||verb_is "kick-flip") { :if (skate_speech){ : print "I've got better things to do than skateboarding tricks right now!"; } : else { : print "I don't know how!"; } } #SKATING VOCAB end : match "survivor123" { : goto "old_gaol_room"; : create "ancient_collar"target = "inventory_worn" ; : create "professor_ambleside"; } #RING start : match "ring _" { : if (noun1_is "bell") { : if (is_present "bell") { : if (is_present "tommy_spratt") { : print "I'd better not risk ringing it again while Tommy is right there behind the counter. He looks annoyed enough already!"; } : else { : print "I jump up and manage to hit the top of the bell with my paw. A resounding 'DING!' echoes off the greasy tiles of the chip shop."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print { text = \ There's a sound of splashing cooking oil and a muffled curse from somewhere at the back of the chip shop, and then Tommy Spratt grumbles into view. I duck under the lip of the counter as he leans over to peer around the empty shop. "Flippin' kids!" I hear him mutter darkly. \ } : create "tommy_spratt" target = "inside_chipshop" ; : set_integer var = "harry_counter" value = "4" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else { : print "But I can't see any bell here!"; } } } #RING end #GIVE start : match "give _" { : if (noun1_is "fish") { : if (is_carried "fish") { : if (is_present "crawfield_cat") { : print "\"Here Crawfield,\" I say, dropping the smelly haddock fillet on the cobblestones with a splat.\n\"Will that do for your, erm - down payment?\""; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : clear_screen; : print "Crawfield, still holding his head high, swivels his eyes towards the slimy fish glistening on the cobbles. He licks lips his quickly, hesitates for a moment and then, overcome by curiosity, comes down from the roof for a closer look.\n\"Well...,\" he says slowly, as he begins to sniff the haddock, \"I was hoping for sashimi or prawn nori-maki, but I suppose that was a little optimistic and so, under the circumstances...\" "; : print "He leans a little closer and give it a quick lick with a delicate pink tongue."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"I suppose that what it lacks in sophistication it makes up for in substance...yes, yes, I think this will do very nicely. Well done, featherbrains.\""; : print "Crawfield picks the fish up in his teeth, scampers back up the side of the porch and across the roof, the leaps elegantly up on to the sill of the little window. He drops the fillet through then turns back to us and says, \"You know, dear boys - I really am most terribly grateful.\" And a moment later, he disappears." ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "We wait below for something to happen. We keep waiting. And waiting. After fifteen minutes or so, we begin to call up to him, but there's no sign of him at the window, or anywhere near the entrance to the museum. After about half an hour, we realise he's not coming back."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "\"Hey!\" I bark up at the empty window. \"Crawfield! Where did you go? How do we get in?\""; : print {("I turn to "+(i_am_mustard? "Custard.":"Mustard.")+(" \"Unbelievable! He promised he'd help us!\""))}; : print {((i_am_mustard? "Mustard":"Custard")+(" shakes his head sadly. \"Never trust a cat.\""))}; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : destroy "crawfield_cat"; : destroy "fish"; : set_true "museum_door_open" ; : set_true "crawfield_done" ; : redescribe; } } } : else_if (noun1_is "bag") { : if (is_carried "bag") { : if (is_present "mr_czerwinski") { : clear_screen; : print {("I bark at Mr Czerwinski, who has his back to me as he fiddles with the wires behind the speakers. There's a nasty buzzing sound and a sharp smell of burning plastic and he leaps up, shaking his fingers and muttering something dangerous-sounding in Polish. I bark again, and he turns towards me, looking annoyed.")}; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print {("\"What...\" he begins, and then sees his bag of tricks right in front of him, with me standing behind, wagging my tail excitedly.\n\"My bag of tricks?\" he says, like he can't believe it. He rushes over and snatches it up, opening it to have a quick look inside. Then he look at me and grins. \"It is! But how did you...good dog. Good dog!\" He pats me, and ruffles my fur and strokes my ears and does all those sorts of things that people do to dogs they want to be friends with. And, I have to admit, it does feel pretty good. \"Oh, my little friend,\" says Czerwinski, still grinning, \"if only I had...ah - wait.\"")}; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print {("He rummages in one of his jacket pockets, and then another, and eventually produces a slightly crumbly, slightly soft digestive biscuit. \n\"I knew I had, somewhere,\" he says, \"I am sorry, it is not very much, but...you will enjoy, I think.\"")}; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print {("He offers it, and I gobble it straight down. Not bad at all! If I'd thought about it, I could have saved a bit for "+(i_am_mustard?"Custard":"Mustard")+", but dogs don't really think like that when there's food in front of their noses.")}; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Reunited with his tools, Mr Czerwinski sets to work on the speakers again and in a few moments, with a sound like a thunderclap, the whole PA system crackles deafeningly into life."; : destroy "mr_czerwinski"; : destroy "bag"; : set_true "pa_fixed" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } } : else { : print "I can't see anybody who wants it!"; } } #GIVE end #UNTIE start : match "untie _" { : if (is_present "string") { : print "I try to get at it with my teeth, but the knots are too tight and small."; } : else_if (noun1_is "straps") { : if (is_at "inside_van") { : print "They're look like they're fastened very tightly. I don't think it's worth bothering with them to be honest."; } } : else_if (noun1_is "ribbon") { : if (is_present "ribbon"||is_present "ribbon_1") { : print "I don't think I'd get very far with that and besides, it hardly seems worth the effort."; } } } #UNTIE end #FOLLOW start : match "follow _" { : if (is_at "in_restaurant") { : print {("What, follow the "+posh_name+"s? I don't think so. They're bound to turn round and see me, and then they'll be wondering what's going on and telling the Maître d' I'm not with them, and before you know it, I'll be getting chucked out of here!")}; : done ; } : if (mustard_trapped) { : if (is_at "maze") { : if (bark_counter==1||bark_counter==3) { : print "I follow the bark along the corridor."; : increment "bark_counter" ; : set_integer var = "maze_counter" value = "3" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (bark_counter==5) { : print "I follow the bark and find myself outside a door!"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : goto "outside_storeroom"; : redescribe; } : else { : print "I'm sure Mustard is somewhere close by, but I'm not quite sure which direction to go in."; : done ; } } } : print "There's nothing I'm interested in following at the moment."; } #FOLLOW end #UNLOCK start : match "unlock _" { : if (noun1_is "door") { : if (is_at "corridor"||is_at "exhibition_room") { : if (lock_picked) { : print "But the door has already been unlocked"; } : else { : print "But I don't have the key and even if I did, I'm not sure how I'd get it into the keyhole and then turn it. Be sensible - I'm a dog, remember?"; } } } : else_if (noun1_is "gate") { : if (is_at "village_hall") { : print "I can't open a lock without a key - I'm not Houdoggy, you know!"; } } } #UNLOCK end #UP start : match "up_;climb up" { : if (is_at "broom_cupboard" ) { :set_sentence "climb shelves"; } : else_if (is_at "old_gaol_room") { : print "That ceiling grille is far too high up for me to reach!"; } } #UP end #DOWN start : match "down_" { : if (is_at "on_shelf" ) { :set_sentence "climb down"; } : else_if (is_at "duct_2") { : if (grille2_open) { : if (has_visited "old_gaol_room") { : print "I look down and see the papier-mâché hillock all crumpled and flattened below me. I'm not sure I'd be so lucky to get the same soft landing a second time! I whimper around the edge for a while before finally deciding against it."; : done ; } : print "I look down - it's a long way to the floor! I can see the polished parquet below me, and in the middle of it, right below me, a big squishy-looking painted thing. I hesitate, but there really does seem to be only one way down. I close my eyes, hope that the thing below me is as soft as it looks, and leap through the open grille..."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : print "Only to land with a bump on a green-and-grey painted papier-mâché hillock dotted with stuffed birds, in the middle of a fake fenland made of foam rubber. I pause to catch my breath and notice a glassy-eyed heron looking at me disapprovingly. I can't say I blame him really - I've made a proper dent in his little island!"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : goto "old_gaol_room"; : redescribe; } : else { : print "But there's a closed grille in the way!"; } } : else_if (standing_on_custard) { : print "I scramble down off Custard's back."; : set_false "standing_on_custard" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } #DOWN end #CLIMB start : match "climb _" { : if (noun1_is "shelves") { : if (is_at "broom_cupboard") { : if (policemen_follow) { : print "There's not really room to get up there, with us lot squeezed in here like sardines!"; : done ; } : if (protagonist()=="custard") { : if (!mustard_climbed_shelf) { : print "What, up there? It looks quite high...and I'm really not very good with heights! I bet Mustard could do it though."; : done ; } } : if (is_carried "paper_bin") { : print "The waste paper bin is just too cumbersome and awkward to hold while trying to climb, so I drop it."; : drop "paper_bin" quiet = "true" ; } : if (custard_been_on_top_shelf) { : print "I take a deep breath and scrabble up the shelves to the top again. I think I'm getting a bit better at it, now I've done it before."; } : else { : if (!has_not_created "cleaning_products_1") { : print "I scrabble up onto the lowest shelf and then look up at the rest, jutting above me like a jagged metal cliff-face. I take a deep breath and leap out and up, scrabbling in thin air until I manage to get a paw-hold on the next shelf and pull myself onto it. I pause for breath before leaping up to the next and, before very long, I've made it all the way to the top."; } : else { : print "I scrabble up onto the lowest shelf and then look up at the rest of them jutting above me like a jagged metal cliff-face. I take a deep breath and leap out and up, scrabbling in thin air until I manage to get a paw-hold on the next shelf and pull myself onto it, knocking aside cleaning products which clatter to the floor. I pause for breath before leaping up to the next and, before very long, I've made it all the way to the top, leaving a carnage of rubber gloves, cleaning sprays, sponges and toilet rolls scattered across the floor below. Dog's aren't really designed for this sort of thing - a cat could have done that without knocking a single feather out of a duster. "; : create "cleaning_products_1" target = "broom_cupboard" ; : destroy "cleaning_products"; } : set_true "custard_been_on_top_shelf" ; } : goto "on_shelf"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else_if (is_at "museum_storeroom") { : print "I don't see anything up there that would make it worthwhile."; : done ; } } : else_if (noun1_is "down") { : if (is_at "on_shelf") { : print "I gingerly make my way down the shelves, half falling and half climbing, until I'm back down on the floor."; : set_true "pleased_to_see_me" ; : goto "broom_cupboard"; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } } : else_if (noun1_is "gate") { : if (is_at "village_hall") { : print "I try to, but it's covered in nasty anti-climb paint that my paws just scrabble on without being able to get a grip - so I give up."; } } : else { : print "I'm just not sure climbing on that would help much."; } } #CLIMB end #RECONNECT start : match "join wires; twist wires; connect wires; fix wires; mend wires; reconnect wires; repair wire" { :set_sentence "reconnect wires"; : if (is_present "cut_wires") { : print "With these paws? How?"; } : else_if (is_present "wire") { : print "But the wire isn't broken!"; } } #RECONNECT end #BITE start : match "bite _" { : if (s1_has_trait "character_t"||s1_has_trait "male_t"||s1_has_trait "female_t") { : print "Well, that wouldn't be very friendly!"; : done ; } : else_if (noun1_is "string") { : if (is_present "string") { : print "I have a little gnaw at it but it just slithers and slides between my teeth. It's horrible!"; : done ; } : else { : print "But I can't see any string here!"; } } : else_if (noun1_is "tail") { : print "What would I want to go and do that for? It would hurt!"; : done ; } } #BITE end #SCRATCH start : match "scratch _" { : if (i_am_mustard&&noun1_is "mustard"||!i_am_mustard&&noun1_is "custard"||noun1_is "") { : print "I give myself a good old scratch on the chin and behind the ear with my back leg, and feel a lot better for it."; } : else_if (s1_has_trait "character_t") { : print "I reckon they could do that themselves!"; } : else_if (s1_has_trait "male_t") { : print "I reckon he could do that himself!"; } : else_if (s1_has_trait "female_t") { : print "I reckon she could do that herself!"; } : else_if (noun1_is "me"||noun1_is "") { : print "I give myself a good old scratch on the chin and behind the ear with my back leg, and feel a lot better for it."; } : else { : print "Seems a bit pointless really."; } } #SCRATCH end #TRICKS startskate_speech : match "tricks-" { : if (is_at "village_hall"||is_at "skating_area") { : if (!skate_speech) { : print "Well, I don't know any skateboard tricks - yet!"; : done ; } : if (i_am_mustard) { : print "What, those skating tricks that paperboy was showing off? I can remember all of those. Dogs have got a good memory for that sort of thing, you know."; } : else { : print "The skating tricks? I think I can remember them. Dogs have a good memory for that sort of thing. Now, let's see..."; } : print "Tricks for the <^b^flat>: <^b^ollie>, <^b^shuvit>, <^b^kickflip>; "; : print "Trick for the <^b^railing>: <^b^boardslide>;"; : print "Trick for the <^b^bench>: <^b^hippie jump>;"; : print "Trick for the <^b^kerb>: <^b^50-50>"; : print "Extra <^b^special tricks>: <^b^Driffield Tuesday>, <^b^Hotfinger Buffle>, <^b^Flippant Tony>."; } } #TRICKS end #WAG start : match "wag _" { : if (noun1_is "tail") { : print "I wag my tail. I don't know why but it makes me feel happy"; } : else { : print "I only really know how to wag my tail."; } } #WAG end #EAT start : match "eat _" { : if (noun1_is "scraps") { : if (is_at "east_gardens") { : print "I gobble up a few of the tasty titbits that people have thrown away - just doing my bit to keep the place tidy!"; } } : else_if (noun1_is "sandwich") { : print "When I was a puppy I'd have done that in a heartbeat and not worried about the consequences. But these days I'm a bit more thoughtful and it seems a bit mean to eat someone else's lunch - especially a VIP's!"; } : else_if (noun1_is "food") { : if (is_at "in_restaurant") { : print "I was hoping to snaffle some tasty morsels under the table rather than straight from the plate! Besides, the portions look so stingy it hardly seems worth the bother."; } } : else_if (noun1_is "tablets") { : if (is_at "museum_reception") { : print "No way! Never eat anything like that unless you've been told to by your vet."; } } : else_if (noun1_is "fruit") { : print "No thanks - unless I really have to! I'd take a pig's ear or a rawhide bone over a potato any day."; } : else_if (noun1_is "nelson"||noun1_is "taj"||noun1_is "watership") { : if (is_present "fancy_displays") { : print "Well, that wouldn't be very respectful!"; } } : else { : print "No thanks."; } } #EAT end #DIG start : match "dig _" { : if (is_at "museum_garden") { : print "I'm tempted, because there are probably loads of tasty bones in there, but to dig up Mrs Kaur's beautiful flower bed? She'd never forgive me."; } : else_if (is_at "zone_gardens") { : print "It seems a shame to start digging here since they've made the place so lovely. It's that sort of thing that gives dogs a bad name."; } : else { : print "I don't think so - not here."; } } #DIG end #DRINK start : match "drink _" { : if (is_at "zone_whole_river"||is_at "slipway_south"||is_at "slipway_south") { : if (i_am_mustard) { : print "I lap up a few tonguefuls of river water. Apart from the taste of diesel and duck poo, it's not too bad at all!"; : done ; } : else { : print "I lap up some of the river water and feel it churn around inside me, secure in the knowledge that, like pretty much everything a dog gulps down in the course of the average day, it'll probably do more good than harm."; : done ; } } : print "No thanks!"; } #DRINK end #WAKE start : match "wake _" { : if (is_at "custards_dream"&&parent_of "mustard"!="mustards_dream"||is_at "mustards_dream"&&parent_of "custard"!="custards_dream") { : print "Nah, not yet! I just need a few more minutes..."; } : else_if (is_at "custards_dream"&&parent_of "mustard"=="mustards_dream"||is_at "mustards_dream"&&parent_of "custard"=="custards_dream") { : print "I really don't want to, but I know it's time. I imagine my ear itching and me scratching it, and then I start to feel it, really itching away. And then I feel myself really scratching it...and then, before I know it..."; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : set_true "nighttime" ; : set_false "chippy_open" ; : set_false "back_chippy_open" ; : clear_screen; : pause "1000" ; : print "\n\n\n\n\n\n\n\n\n\n\n\n^c^Several hours later..."; : pause "1500" ; : print "^c^In the dead of night..."; : pause "2000" ; : clear_screen; : create "custard"target = "museum_reception" ; : create "mustard"target = "museum_storeroom" ; : destroy "janet_makepeace"; : destroy "custard_1"; : destroy "pa_system"; : destroy "mrs_kaur"; : destroy "cars"; : destroy "stallholders"; : destroy "stage"; : create "getaway_car"target = "museum_yard" ; : create "plates_1" target = "museum_yard" ; : set_true "mustard_trapped" ; : create "merve_swerve" target = "museum_yard" ; : set_true "museum_door_open" ; : swap o1 = "wire" o2 = "cut_wires" ; : redescribe; } : else_if (noun1_is "rabbit"&&is_present "rabbit") { : print "I give it a nudge with my nose and a little lick, but it keeps snoring soundly. I think I'll need to find another way to wake it up! "; } : else { : print "But I'm not asleep!"; } } #WAKE end #SLEEP start : match "sleep-" { : if (is_at "museum_reception"&&!i_am_mustard&&is_present "janet_makepeace") { : set_integer var = "custard_sleep_counter" value = "1" ; } : else_if (is_at "museum_storeroom"&&!nighttime) { : set_integer var = "mustard_sleep_counter" value = "1" ; } : else_if (is_at "custards_dream"||is_at "mustards_dream") { : print "But I'm already asleep!"; } : else { : print "What, right now? Things are far too exciting for that!"; } } #SLEEP end #TURN start : match "turn computer; use computer" { : print "I'd rather not. Some things just aren't meant for dogs."; } : match "turn knob" { : if (is_present "pa_system") { : print "I don't think I should interfere with those!"; : done ; } } : match "turn machine; use machine" { : print "You probably need a licence to use it and I reckon Janet Makepeace is the only person who's got one!"; } #TURN end #PEE / POO start : match "pee_" { : print "I don't do that on request, you know!"; } #PEE / POO start #LICK start : match "lick _" { : if (noun1_is "me") { : print "I give myself a reassuring little lick."; : done ; } : if (is_at "under_table") { : if (noun1_is "harry"||noun1_is "merve"||noun1_is "skeleton") { : if (is_present "legs") { : print "I'd love to, but I'd better not while I'm trying to stay hidden under here."; : done ; } : else { : print "But they've gone!"; : done ; } } : else_if (noun1_is "legs") { : print "I'd love to, but I'd better not while I'm trying to stay hidden under here."; : done ; } } :disambiguate_s1 "present"; : if (is_present (s1())) { : if (noun1_is "pru") { : print "I steadily lick Pru's ankles while she keeps nattering away on the phone. She's used to me doing that, but she still makes a token effort to get her legs out of range. It doesn't make any difference - I follow them, and keep on licking away."; : done ; } : if (noun1_is "tadcaster") { : print "I give Tadcaster a friendly lick."; : done ; } : if (noun1_is "custard") { : if (i_am_mustard) { : if (is_at "zone_whole_river") { : print "I'd better not - I might fall of this little lid and into the water! I shudder at the thought of plunging into its horrible splashy wetness."; : done ; } : else_if (is_present "woolly_lump") { : print "I give it a little lick, but nothing much seems to happen."; : done ; } : else { : print "I lick Custard and Custard licks me back. That's what best friends do."; : done ; } } : else { : print "I give myself a reassuring little lick."; : done ; } } : if (noun1_is "mustard") { : if (!i_am_mustard) { : if (is_at "zone_whole_river") { : print "I'd better not - I might tip poor old Mustard off the lid and into the water. I don't think he'd ever forgive me if I did that!"; : done ; } : else { : print "I lick Mustard and Mustard licks me back. That's what best friends do."; : done ; } } : else { : print "I give myself a reassuring little lick."; : done ; } }: if (noun1_is "mr") { : print "I lick Mr Czerwinski affectionately.\n\"Yes, yes, that is very nice, little doggy,\" he says, a little impatiently, \"but you see I am busy, no?\""; : done ; }: if (noun1_is "ambleside") { : print "I lick Professor Ambleside. \"Why thank you, my furry friend,\" he says, and gives me a pat on the head."; : done ; }: if (noun1_is "tp") { : print "I really don't think he's in the mood for that."; : done ; }: if (noun1_is "maitre") { : print "I'm pretty sure that 'No licking the staff' is one of the house rules."; : done ; }: if (noun1_is "reception") { : print "Even if I wanted to, I'm pretty sure he wouldn't taste very nice."; : done ; }: if (noun1_is "crawfield") { : print "I move towards Crawfield but he reads my mind instantly and, before I even have time to stick out my tongue, holds up a single, sleek black paw and extends his claws just a fraction so they glitter needle-like in the sunshine. Hastily, I back away."; : done ; }: if (noun1_is "skater") { : print "I lick one of the skaters. They pretend to be all cool and try to ignore me, but they can't help smiling and giving me a little pat on the head."; : done ; }: if (noun1_is "paperboy") { : if (i_am_mustard) { : print "I give the paperboy an especially big and especially wet lick, as if to make up for all those times that I barked at him and threw myself agains the door when he was only trying to do his job and put the newspaper through our letter box."; : done ; } : else { : print "I give the paperboy a lick. He pretends to ignore me, but I can tell he liked it really."; : done ; } }: if (noun1_is "tommy") { : print "I don't think Tommy Spratt would like that at all!"; : done ; }: if (noun1_is "harry") { : if (harry_in_river) { : print "Harry screams in terror as I stick out my tongue.\n\"No!\" he cries, \"Not like this! Anything but this! Eaten alive by a mutant sheep - it's what I've always dreaded!\""; : done ; } : else_if (harry_arrested) { : print "Harry yells and steps back. \"Get it off me!\" he shouts. \"Keep it away! It's that what needs to be handcuffed, not me!\" "; : done ; } }: if (noun1_is "merve") { : print "I think about leaning into the car and giving him a friendly lick, but decide it wouldn't be a very good idea."; : done ; } : if (noun1_is "wise") { : print "I give Sergeant Wise a friendly little lick and she pats me kindly."; : done ; }: if (noun1_is "oddcrisp") { : if (!licked_jimmy) { : print "I jump up and give Constable Oddcrisp a little lick on the hand before he realises what's happening.\n\"Oh no!\" he cries, wiping his hand frantically on his trousers, \"My Mum says you can get all sorts of things from dog lick. I'll have got germs!\"\n\"Never mind, Jimmy, \" says Sergeant Wise, reassuringly, \"we'll put some TCP on it as soon as we get back to the station.\""; : set_true "licked_jimmy" ; : done ; } : else { : print "Jimmy back away: once licked, twice shy."; : done ; } }: if (noun1_is "broom") { : print "\"What is this dog doing, Wise?\" asks Chief Broom, as I give her a lick.\n\"I believe he's licking you, Ma'am,\" explains Sergeant Wise, calmly." ; : done ; }: if (noun1_is "janet") { : print "I try and lick Janet, but she back away from me and gives me a hard stare."; : done ; }: if (noun1_is "billy") { : print "I'd like to, but he's inside the cab and a bit too awkward to reach."; : done ; }: if (noun1_is "ian") { : print "I give Ian a little lick. \"Oh yeah,\" he says nervously, twitching away from me, \"licking is it? Nice doggy...\" and he tentatively reaches out a hand that doesn't quite reach me and pats the air in front of me like he's patting me on the head."; : done ; } : if (noun1_is "ernie") { : print "\"Gerrof!\" says Ernie, as I give him a lick - but he's smiling and patting me on the head at the same time, so I know he likes it really."; : done ; } : if (noun1_is "angie") { : print "I jump up and give Angie a little lick, and she carries on calling out her wares as if I wasn't even there."; : done ; } : print "I give it a bit of a lick, just for the sake of it."; : done ; } : print "I give it a bit of a lick, just for the sake of it."; : done ; } #LICK end #BREAK start : match "break _" { : if (noun1_is "string") { : if (is_present "string") { : print "I try to, but it's stronger than it looks!"; } } : else { : print "That's the sort of thing that gives dogs a bad reputation!"; } } #BREAK end #FEED start : match "feed_" { : if (noun1_is "swans") { : if (is_at "slipway_north"||is_at "slipway_south"||is_at "railings"||is_at "by_the_river"||is_at "riverside"||is_at "middle_river"||is_at "east_river"||is_at "north_river"||is_at "south_river"||is_at "next_to_weir") { : if (nighttime) { : print "There aren't any about at this time of night."; } : else { : print "I think I've got better things to do than feed those monsters!"; } } } } #FEED end #JUMP start : match "jump _" { : if (is_at "railings"||is_at "by_the_river") { : if (noun1_is "railings") { :set_sentence "south"; } } : if (is_at "village_hall") { : print "This isn't the Grand National, you know!"; } : else { : print "I enjoy myself jumping around for a bit."; } } #JUMP end #WAIT start : match "wait-;z-" { : print "I wait around for a while."; } #WAIT end #SCORE start : match "score-" { : print "I think I've got enough to worry about without keeping track of points!"; } #SCORE end #XZYYZ start : match "xyzzy-" { : print "What are you on about?"; } #XYZZY end #PLAY start : match "play_" { : if (i_am_mustard) { : if (is_present "custard") { : if (custard_in_river) { : print "I'm not really in the mood for playing right now!"; } : else { : if (standing_on_custard) { : print "I think I'll fall off if I start playing around now!"; } : else { : print "I play around with Custard for a bit, scampering around him and giving him a little nip now and then, while he chases me."; } } } : else { : if (is_present "tadcaster") { : print "I try and play with Tadcaster, but he just sits there and looks at me blankly as I scamper around and bark at him. By the time he realises what I'm trying to do, I'll have worn myself out!"; } : else { : print "There isn't really anyone around who'd want to play with me."; } } } : else { : if (is_present "mustard") { : if (is_at "zone_whole_river") { : print "I'd better not try to while Mustard is on that lid - I might tip him off into the water!"; } : else { : print "I play with Mustard for a while, jumping around and trying to bowl him over with my big fluffy fleece while he scampers around and gives me a friendly nip whenever he can get close enough."; } } : else { : print "There isn't really anyone around who'd want to play with me."; } } } #PLAY end } subroutines { //CONTAINER CODE #CONTAINER MANAGEMENT start container_management : subroutine { : gosub "object_accessibility" ; : match "examine _" { : if (noun1_is "crate") { : if (is_present "crate") { : examine "crate" ; : if (crate_open) { : print "The crate is open." ; : gosub "print_crate_contents"; } : else { : print "It's closed." ; } : done ; } } : if (noun1_is "creel") { : if (is_present "fishing_creel") { : examine "fishing_creel" ; : if (fishing_creel_open) { : print "It's open." ; : gosub "print_fishing_creel_contents"; } : else { : print "It's closed." ; } : done ; } } } : match "open _" { : if (noun1_is "crate") { : if (is_present "crate") { : if (!crate_open) { : print "I push the lid of the crate and manange to flip it open." ; : set_true "crate_open" ; : gosub "update_crate_description" ; : gosub "print_crate_contents" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : print "But the crate is already open." ; } } } : if (noun1_is "creel") { : if (is_present "fishing_creel") { : if (!fishing_creel_open) { : print "I jump up and open the fishing creel." ; : set_true "fishing_creel_open" ; : gosub "update_fishing_creel_description" ; : gosub "print_fishing_creel_contents" ; } : else { : print "But it's already open." ; } } } } : match "close _" { : if (noun1_is "crate") { : if (is_present "crate") { : if (crate_open){ : print "I jump up at the lid of the crate and knock it shut." ; : set_false "crate_open" ; : if (pe) { : print "[[Press enter]]"; } :press_any_key; : redescribe; } : else { : print "But the crate is already closed." ; } } } : if (noun1_is "creel") { : if (is_present "fishing_creel") { : if (fishing_creel_open){ : print "I jump up and close the fishing creel." ; : set_false "fishing_creel_open" ; } : else { : print "But it's already closed." ; } } } } : match "inventory -" { : gosub "update_crate_description"; : gosub "update_fishing_creel_description" ; } :match "get _" { : if (noun2_is "") { :disambiguate_s1 "present"; : if (parent_of(s1()) == "crate") { : if (is_present "crate") { : if (crate_open) { : remove_from_container "crate"; :done; } } } : if (parent_of(s1()) == "fishing_creel") { : if (is_present "fishing_creel") { : if (fishing_creel_open) { : remove_from_container "fishing_creel"; :done; } } } } } : match "get all" { : if (noun2_is "crate") { : if (is_present "crate") { : if (crate_open) { : do_all "crate"; : done ; } } } : if (noun2_is "creel") { : if (is_present "fishing_creel") { : if (fishing_creel_open) { : do_all "fishing_creel"; : done ; } } } } : match "put all" { : if (noun2_is "crate") { : if (is_present "crate") { : if (preposition_is "on") { : if (noun1_is "lid") { : print "No chance - it just doesn't fit."; : done ; } : else { : print "That seems a bit pointless."; : done ; } } : if (crate_open) { : if (is_worn "replica_collar") { : print "I take off the dog collar."; : unwear "replica_collar"quiet = "true" ; } : if (is_worn "ancient_collar") { : print "I take off the dog collar."; : unwear "ancient_collar"quiet = "true" ; } : if (is_worn "top_hat") { : print "I take off the top hat."; : unwear "top_hat" ; } : if (is_worn "monocle") { : print "I take off the monocle."; : unwear "monocle" ; } : if (is_worn "bow_tie") { : print "I take off the bow tie."; : unwear "bow_tie" ; } : do_all "inventory"; } : else { : print "But the crate isn't open." ; : done ; } } } : if (noun2_is "creel") { : if (is_present "fishing_creel") { : if (fishing_creel_open) { : if (is_worn "replica_collar") { : print "I take off the dog collar."; : unwear "replica_collar"quiet = "true" ; } : if (is_worn "ancient_collar") { : print "I take off the dog collar."; : unwear "ancient_collar"quiet = "true" ; } : if (is_worn "top_hat") { : print "I take off the top hat."; : unwear "top_hat" ; } : if (is_worn "monocle") { : print "I take off the monocle."; : unwear "monocle" ; } : if (is_worn "bow_tie") { : print "I take off the bow tie."; : unwear "bow_tie" ; } : do_all "inventory_notworn"; : done ; } : else { : print "But the fishing creel isn't open." ; : done ; } } } } : match "put _" { //check if target container is present and not inside a closed container : disambiguate_s1 "carried"; : if (is_carried (s1())) { : if (is_present (s2())) { : if (is_worn (s1())) { : unwear; } // : if (parent_of (s2())=="crate"&&!crate_open) { // : print "I can't see that anywhere." ; // : done ; // } // : if (parent_of (s2())=="fishing_creel"&&!fishing_creel_open) { // : print "I can't see that anywhere." ; // : done ; // } } : else { : print "I can't see that anywhere." ; :done; } //dealing with individual containers below: : if (noun2_is "crate") { : if (parent_of(s1()) == "inventory") { : if (is_present "crate") { : if (preposition_is "on") { : if (noun1_is "lid") { : print "No chance - it just doesn't fit."; : done ; } : else { : print "That seems a bit pointless."; : done ; } } : if (crate_open) { : if (s1_has_trait "too_big_for_crate_t"==true) { : print {("That won't fit in the crate.")} ; : done ; } : else { : if (count "crate"==crate_item_limit) { : print "The crate's too full to put anything else in it." ; : done ; } : else { : if (is_worn (s1())) { : unwear quiet = "true" ; } : insert_in_container "crate"; : done ; } } } : else { : print "But the crate isn't open." ; : done ; } } } : else { : print "But I'm not carrying that." ; } } : if (noun2_is "creel") { : if (parent_of(s1()) == "inventory") { : if (is_present "fishing_creel") { : if (fishing_creel_open) { : if (s1_has_trait "too_big_for_fishing_creel_t"==true) { : print {("It won't fit in there.")} ; : done ; } : else { : if (count "fishing_creel"==fishing_creel_item_limit) { : print "It's too full to put anything else in it." ; : done ; } : else { : insert_in_container "fishing_creel"; : done ; } } } : else { : print "But the fishing creel isn't open." ; } } } : else { : print "But I'm not carrying that." ; } } } : else { : print "But I'm not carrying that." ; : done ; } } } #CONTAINER MANAGEMENT end #UPDATE CONTAINER DESCRIPTION START update_crate_description : subroutine { : set_string var = "crate_description" {((crate_open ? "an open crate" : "a closed crate"))} : if (crate_open) { : if (count "crate" > 0) { : look_inside of = "crate" extract_the = "description" store_results_in = "crate_objects" make_known = "true" ; : print_list_verbose "crate_objects" lead_in = " (which contains " final_part = ")" append_to_var = "crate_description" ; } : else { : set_string var="crate_description" value = "an empty crate" ; } } } update_fishing_creel_description : subroutine { : set_string var = "fishing_creel_description" {((fishing_creel_open ? "an open fishing creel" : "a closed fishing creel"))} : if (fishing_creel_open) { : if (count "fishing_creel" > 0) { : look_inside of = "fishing_creel" extract_the = "description" store_results_in = "fishing_creel_objects" make_known = "true" ; : print_list_verbose "fishing_creel_objects" lead_in = " (which contains " final_part = ")" append_to_var = "fishing_creel_description" ; } : else { : set_string var="fishing_creel_description" value = "an empty fishing creel" ; } } } #UPDATE CONTAINER DESCRIPTION END #PRINT CONTAINER CONTENTS START print_crate_contents : subroutine { : if (count "crate" > 0) { : append "It contains \s" ; : look_inside of = "crate" extract_the = "description" store_results_in = "crate_objects" make_known = "true" ; : print_list_verbose "crate_objects" lead_in="" final_part = "." when_empty = "nothing." ; : return ; } : else { : print "It's empty." ; } } print_fishing_creel_contents : subroutine { : if (count "fishing_creel" > 0) { : append "It contains \s" ; : look_inside of = "fishing_creel" extract_the = "description" store_results_in = "fishing_creel_objects" make_known = "true" ; : print_list_verbose "fishing_creel_objects" lead_in="" final_part = "." when_empty = "nothing." ; : return ; } : else { : print "It's empty." ; } } #PRINT CONTAINER CONTENTS END object_accessibility : subroutine { // checking if subject is a. in a closed container and b. contains in something already in another closed container eg bottle in cupboard // : if (!is_present (s1())) { // : nope; // } : if (parent_of (s1())=="crate") { : if (!crate_open) { : nope ; } } } dropper : subroutine { : iterate "_inventory_notworn" { : if (item()=="custard_lid") { : destroy "custard_lid"; : set_false "custard_got_lid" ; : create "lid"; : print "I let go of the wooden lid."; } : else_if (item()=="mustard_lid") { : destroy "mustard_lid"; : set_false "mustard_got_lid"; : create "lid"; : print "I let go of the wooden lid."; } : else { : if (item()!="skateboard") { : drop (item()); } } } } dreams : subroutine { : append "I'm "; : execute_one_at_random { : append "in a windmill"; : append "in a bus"; : append "in our house"; : append "down Cripplepepper Lane"; : append "in a big white tent"; : append "in a cave"; : append "in the market square"; : append "at Knockbarrel Corner"; : append "up Pinchmaid Hill"; : append "in a ditch"; : append "in a racing car"; : append "in a rocket"; : append "under a bed"; : append "in Buckingham Palace"; : append "in the White House"; : append "onboard a ship at sea"; : append "in the ocean"; : append "in a bungalow"; } : append", and there's this "; : gosub "adjectives" ; : gosub "animate_stuff" ; : append " "; : execute_one_at_random { : append "abandoning"; : append "absorbing"; : append "admiring"; : append "advising"; : append "angering"; : append "appreciating"; : append "attacking"; : append "attending"; : append "attracting"; : append "avoiding"; : append "awarding"; : append "beating"; : append "becoming"; : append "biting"; : append "blessing"; : append "bouncing on"; : append "building"; : append "buying"; : append "calling"; : append "calming"; : append "capturing"; : append "chasing"; : append "cleaning"; : append "climbing"; : append "complementing"; : append "confusing"; : append "congratulating"; : append "consulting"; : append "dancing with"; : append "destroying"; : append "discouraging"; : append "disguising"; : append "disliking"; : append "disturbing"; : append "divorcing"; : append "doubting"; : append "drawing"; : append "dressing"; : append "drinking"; : append "driving"; : append "drowning"; : append "eating"; : append "educating"; : append "encouraging"; : append "enjoying"; : append "examining"; : append "fighting"; : append "following"; : append "frightening"; : append "generating"; : append "getting"; : append "giving"; : append "grasping"; : append "greeting"; : append "growing"; : append "hating"; : append "hearing"; : append "helping"; : append "hitting"; : append "holding"; : append "ignoring"; : append "imagining"; : append "impressing"; : append "inspiring"; : append "instructing"; : append "interviewing"; : append "investigating"; : append "kicking"; : append "kissing"; : append "leading"; : append "lifting"; : append "loving"; : append "making"; : append "measuring"; : append "meeting"; : append "moving"; : append "needing"; : append "opening"; : append "operating"; : append "paying"; : append "praising"; : append "producing"; : append "promising"; : append "protecting"; : append "punishing"; : append "pushing"; : append "questioning"; : append "reading"; : append "remembering"; : append "removing"; : append "rescuing"; : append "riding"; : append "ringing"; : append "rubing"; : append "saving"; : append "scratching"; : append "selling"; : append "sharing"; : append "smelling"; : append "spinning"; : append "squeezing"; : append "standing on"; : append "stealing"; : append "suing"; : append "summoning"; : append "supporting"; : append "surprising"; : append "swallowing"; : append "taking"; : append "tasting"; : append "teaching"; : append "telephoning"; : append "telling"; : append "thanking"; : append "throwing"; : append "touching"; : append "using"; : append "wanting"; : append "washing"; : append "watching"; : append "wearing"; : append "worrying"; : append "writing to"; } : append " this "; : gosub "adjectives" ; : gosub "animate_stuff" ; : append ", then suddenly I'm "; : execute_one_at_random { : append "hopping about "; : append "leaping about "; : append "shuffling around "; : append "running "; : append "sitting "; : append "skipping "; : append "slithering "; : append "stumbling "; : append "walking "; } : execute_one_at_random { : append "in front of"; : append "near"; : append "above"; : append "across"; : append "through"; : append "below"; : append "behind"; : append "around with"; : append "under"; } : append " this "; : gosub "adjectives" ; : gosub "animate_stuff" ; : append"... and then... and then..."; : return ; } animate_stuff : subroutine { : execute_one_at_random { : append " alligator"; : append " basilisk"; : append " bat"; : append " beaver"; : append " bull"; : append " bumble bee"; : append " bunny"; : append " camel"; : append " chameleon"; : append " cow"; : append " coyote"; : append " crocodile"; : append " deer"; : append " donkey"; : append " ermine"; : append " ferret"; : append " finch"; : append " gazelle"; : append " giraffe"; : append " kitten"; : append " lion"; : append " llama"; : append " mare"; : append " monkey"; : append " mouse"; : append " mule"; : append " musk-ox"; : append " mynah bird"; : append " ocelot"; : append " opossum"; : append " orangutan"; : append " otter"; : append " ox"; : append " panther"; : append " parakeet"; : append " pony"; : append " pronghorn"; : append " puppy"; : append " rat"; : append " seal"; : append " skunk"; : append " starfish"; : append " tapir"; : append " wildcat"; : append " wombat"; : append " artichoke"; : append " asparagus"; : append " aubergine"; : append " basil"; : append " bean sprout"; : append " black bean"; : append " black-eyed pea"; : append " borlotti bean"; : append " broad bean"; : append " boccoli"; : append " brussels sprout"; : append " cabbage"; : append " cauliflower"; : append " celery"; : append " chickpea"; : append " fennel"; : append " kidney bean"; : append " legume"; : append " lentil"; : append " mangetout"; : append " pea"; : append " quinoa"; : append " spinach"; : append " sprout"; : append " witch"; : append " wizard"; : append " postman"; : append " policewoman"; : append " traffic warden"; : append " pop star"; : append " prince"; : append " princess"; : append " king"; : append " queen"; : append " archbishop"; : append " chess player"; : append " doctor"; : append " dog walker"; : append " programmer"; : append " ironing board"; } } adjectives : subroutine { : execute_one_at_random { : append "beige"; : append " black"; : append " blue"; : append " brown"; : append " gold"; : append " green"; : append " grey"; : append " indigo"; : append " orange"; : append " pink"; : append " purple"; : append " silver"; : append " violet"; : append " white"; : append " antiseptic"; : append " aromatic"; : append " citrusy"; : append " coppery"; : append " crumbly"; : append " damp"; : append " delicate"; : append " delicious"; : append " earthy"; : append " fetid"; : append " fishy"; : append " floral"; : append " flowery"; : append " fragrant"; : append " fruity"; : append " funky"; : append " fusty"; : append " garlicky"; : append " gingery"; : append " heavy"; : append " leathery"; : append " lemony"; : append " minty"; : append " musty"; : append " nasty"; : append " peachy"; : append " perfumed"; : append " putrid"; : append " rancid"; : append " rank"; : append " rich"; : append " ripe"; : append " scented"; : append " smelly"; : append " smoky"; : append " sour"; : append " spicy"; : append " stale"; : append " stinking"; : append " succulent"; : append " sweet"; : append " tangy"; : append " woody"; } } guests_description : subroutine { : cycle predictable_order = "false" key = "guests" { : append "an old"; : append "an ancient"; : append "a young"; : append "a babyish"; : append "a huge"; : append "a tiny little"; : append "a gigantic"; : append "a spectacle-wearing"; : append "an ear-trumpet brandishing"; : append "a wrinkled"; : append "a surprised-looking"; : append "a worried-seeming"; : append "a fidgeting"; : append "a yawning"; : append "a bored-seeming"; : append "a nervous"; : append "a furious-looking"; : append "a melancholy"; : append "a grinning"; : append "a laughing"; : append "a whispering"; : append "an absent-seeming"; } } more_guest_description : subroutine { : cycle predictable_order = "false" key = "more_guests" { : append "man"; : append "woman"; : append "girl"; : append "boy"; : append "youth"; : append "pensioner"; } } // seance_check : subroutine { // : clear "seance_check" ; // : set_string var = "seance_check_string" text = "" ; // : print_list_verbose "seance_check" // lead_in = "\"Everything must be prepared,\" said Ottoline. \"We must make sure " // final_part = ".\"" // final_sep = " and " // append_to_var = "seance_check_string" // ; // : print {(seance_check_string)} // } wearer : subroutine { } remover : subroutine { : if (is_worn (s1())) { : if (subject1_is "monocle"||subject1_is "top_hat"||subject1_is "bow_tie") { : if (is_at "in_restaurant") { : print "What, and blow my cover? No way! They'd see I'm no posh pooch but just a mongrel if I did that, and then I'd be thrown out for sure."; : done ; } : else_if (is_at "under_table") { : print "I'd better not, while I'm in here. If anyone spots me without my fancy outfit they'll know I'm no toff-dog but just a common mongrel, and they'll throw me out for sure!"; : done ; } } : iterate "_inventory_notworn" { : if (item()=="custard_lid") { : destroy "custard_lid"; : set_false "custard_got_lid" ; : create "lid"; : print "I let go of the wooden lid."; } : else_if (item()=="mustard_lid") { : destroy "mustard_lid"; : set_false "mustard_got_lid"; : create "lid"; : print "I let go of the wooden lid."; } : else { : if (item()!="skateboard") { : drop (item()); } } } : unwear; : return ; } } } vocabulary { : noun { aliases = [cobblestones, cobbles] } : noun { aliases = [boat, boats] } : noun { aliases = [costumes, costume, breastplate, breastplates, armour, belt, belts, tunic, tunics,skirt, skirts] } : verb { aliases = [load, restore] } : noun { aliases = [table, tables] } : verb { aliases = [pee, poo, piss, wee, shit, poop, urinate, cock] } : noun { aliases = [lead, leash] } : noun { aliases = [sandwich, sandwiches] } : noun { aliases = [soap, chutney, tea, towels, jewellery, knick, knacks] } : noun { aliases = [bees, butterflies] } : noun { aliases = [cauliflower, cauli] } : noun { aliases = [50-50, 5050, 50] } : noun { aliases = [board, skateboard] } : noun { aliases = [flats, buildings] } : noun { aliases = [bow, tie] } : noun { aliases = [bite,chew] } : noun { aliases = [carton, chip, bags, poo] } : noun { aliases = [tadcaster, tad] } : noun { aliases = [pa, system] } : noun { aliases = [trousers, shoes, winklepickers, socks] } : noun { aliases = [meat, products,trays] } : noun { aliases = [window, windows] } : noun { aliases = [thing, tail] } : noun { aliases = [lamp, post] } : noun { aliases = [newsagent, ogodus] } : noun { aliases = [butchers, halfbacons] } : noun { aliases = [paving,stones] } : noun { aliases = [one, 1] } : noun { aliases = [two, 2] } : noun { aliases = [three, 3] } : noun { aliases = [four, 4] } : noun { aliases = [five, 5] } : noun { aliases = [six, 6] } : noun { aliases = [seven, 7] } : noun { aliases = [eight, 8] } : noun { aliases = [nine, 9] } : noun { aliases = [zero, 0] } : noun { aliases = [shelf, shelves] } : noun { aliases = [fisherman, mannequin] } : noun { aliases = [display, displays] } : preposition { aliases = [in, inside] } : adjective { aliases = [north] } : adjective { aliases = [south] } : adjective { aliases = [east] } : adjective { aliases = [west] } : adjective { aliases = [czerwinski, mr] } : noun { aliases = [czerwinski, mr] } : noun { aliases = [look] } : noun { aliases = [prunella, pru] } : verb { aliases = [smell, sniff] } : verb { aliases = [close, shut] } : verb { aliases = [push, press] } : preposition { aliases = [under] } : preposition { aliases = [in] } : preposition { aliases = [out] } : noun { aliases = [fish, haddock] } : noun { aliases = [billy, nickit] } : noun { aliases = [ernie, droppsit] } : noun { aliases = [ian, smashet] } : noun { aliases = [janet, makepeace] } : noun { aliases = [one] } : noun { aliases = [seven] } : noun { aliases = [two] } : noun { aliases = [six] } : noun { aliases = [information, board] } : noun { aliases = [wire, wires] } : noun { aliases = [skeleton, keith] } : noun{ aliases = [merve, swerve] } : noun{ aliases = [handclap, harry] } : verb { aliases = [bite, chew, gnaw, nibble, eat] } : noun { aliases = [tail, thing] } : noun { aliases = [lump, custard] } : noun { aliases = [houses, house] } : noun { aliases = [bloke, barman] } : noun { aliases = [Rubik's, cube] } : noun { aliases = [swan, swans] } : noun { aliases = [door, doors] } : noun { aliases = [seat, seats] } : noun { aliases = [professor, ambleside] } : adjective { aliases = [czerwinski] } : verb { aliases = [read, examine] } : noun { aliases = [patrons, couple, business] } : noun { aliases = [paraders, people] } : noun { aliases = [tommy, spratt] } : noun { aliases = [bulbs, sacks, boots, wellingtons, wellington, gloves, pots, plant, tools] } : noun { aliases = [stationery, bits] } : noun { aliases = [box, poles, sedan] } : noun { aliases = [board, boards] } : noun { aliases = [museum, gaol] } : noun { aliases = [knobs, dials, controls] } : noun { aliases = [ring, rings] } : noun { aliases = [poo, poop] } : noun { aliases = [punters, drinkers] } : noun { aliases = [listen, eavesdrop] } : noun { aliases = [skateboard, board] } : noun { aliases = [underpants, pants] } : noun { aliases = [display, displays] } : noun { aliases = [exhibits, exhibit] } : noun { aliases = [tin, biscuits] } : verb { aliases = [bark, talk] } : noun { aliases = [lamppost, lamp] } : verb { aliases = [chase, catch] } : noun { aliases = [water, river] } : noun { aliases = [mr, czerwinski] } : noun { aliases = [brush, hairbrush] } : noun { aliases = [maitre] } : noun { aliases = [waiter, waiters] } : noun { aliases = [crawfield, cat] } : noun { aliases = [spratts, chiperama, chip, shop] } : noun { aliases = [photo, photographs] } : noun { aliases = [angie, slipsocket] } : noun { aliases = [day, tripper] } : noun { aliases = [fruit, vegetables] } : noun { aliases = [artefacts, bone, pottery, metalwork] } : noun { aliases = [traffic, cars, car,lorry, buses, mini] } : noun { aliases = [waxwork, fisherman] } : noun { aliases = [creel, basket] } : adjective { aliases = [replica, fake] } : adjective { aliases = [real, ancient] } : noun { aliases = [nelson, mandela, president, africa] } : noun { aliases = [watership, down, rabbit] } : noun { aliases = [taj, mahal, monument] } : verb { aliases = [hint, hints] } : noun { aliases = [bar, bars] } : noun { aliases = [drawer, drawers] } : noun { aliases = [prunella, pru] } : noun { aliases = [jimmy, constable, oddcrisp] } : noun { aliases = [tubs, jars, containers, tub, jar, container] } : noun { aliases = [fridge, fridges] } : noun { aliases = [products,bottles, sponges, sponge, bottle, spray, roll, cloth, cloths, canister, canisters, gloves, bags] } : verb { aliases = [sleep, nap, snooze] } : noun { aliases = [statue, ambrose, hockbarrow] } : noun { aliases = [fedora, hat] } : noun { aliases = [bicycle, bike] } : noun { aliases = [splodge, patch, circle] } } themes { blackonyellow : theme { lister_inventory { list_type = list } lister_objects { experimental_auto_group_singular_objects = true include_characters = true } lister_exits { exit_list_style = verbose is_show_blocked_exits = true } theme_settings { layout = SB G LOCK D O X font =serif header_capitalization = original theme_tags = [ blackonyellow ] } screen { status_bar_padding_horz = 0 } status_bar { : header_text; : dynamic_text "dog" ; } colors { status_bar_pen = 0 status_bar_paper = #FF9 pen = #000 paper = #FF9 } system_messages { all_treasures_found_win_game = Congratulations, you found all the treasures. You have won! already_in_container = ${entity} is already inside the ${entity2}. ask_new_game = Would you like to start a new game? ask_quit = Do you wish to quit the game? be_more_specific = You're going to have to tell me which one!\s cannot_carry_any_more = I'm a dog! One thing at the time is as much as I can manage really. cannot_carry_any_more_weight = It's too heavy for you to carry. cant_get_scenery = Doesn't seem like the sort of thing a dog needs to pick up and carry around! // cant_get_character = That doesn't sound like a good idea! cant_see_one_of_those = You can't see one of those. dont_have_one_of_those = I haven't got one of those! exit_list_additional_exits_are_located_verbose = Additional exits are located\s exit_list_end_text = . exit_list_end_text_verbose = . exit_list_from_here_you_can_go_verbose = I can go\s exit_list_header_concise = Exits :\s exit_list_last_sep_verbose = \sand\s exit_list_sep_verbose = ,\s exit_list_there_are_no_obvious_exits = There are no obvious exits. exit_list_to_the_verbose = exit_list_you_can_also_go_verbose = You can also go\s gamebook_question = Select An Option ... i_cant_do_that = I try and fail to do that. invalid_choice = Invalid choice. inventory_list_empty = Nothing inventory_list_end_text = . inventory_list_final_separator = \sand\s inventory_list_header = I'm carrying:\s inventory_list_header_verbose = You are carrying\s inventory_list_separator = ,\s it_is_dark = It is dark. You can't see a thing. must_remove_first = I'll need to take it off first! not_carried = You can't ${verb} something you are not carrying. not_present = But it's not here. nothing_here = There is nothing here. nothing_to_get = I'm not sure where that is! object_list_empty = Nothing object_list_end_text = . object_list_final_separator = \sand\s object_list_header = I can see :\s object_list_header_after_initial = I can also see :\s object_list_header_verbose = I see\s object_list_header_verbose_after_initial = I also see\s object_list_separator = ,\s ok = OK on_drop = I drop ${entity}. on_get = I pick up ${entity} with my teeth. on_put = I put ${entity} inside ${entity2}. on_put_non_container = ${entity} is not a container. on_put_non_surface = ${entity} is not a surface. on_remove = I take off the ${entity} and hold it in my mouth. on_wear = I use my paws and my ingenuity, and manage to put on the ${entity}. post_quit = You have quit the game. prompt = >> prompt_prefix = What Now? question_prompt_char = ? there_is_nothing_you_can = There is nothing I can ${verb} at the moment. treasure_message = treasure_suffix = tutorial_message_prefix = Tutorial:\s unknown_noun = I don't think I'll bother with that actually. unknown_verb = I don't think I'll bother with that actually. verb_noun_only = This game requires only two word inputs. worn_suffix = \s(worn) you_already_wear = I'm already wearing that! you_are_already_carrying = I've already got that! you_are_not_holding = You are not holding ${entity}. you_cant_go_that_direction = Try another direction. you_cant_wear = Don't be daft - I can't wear that! you_cant_wear_anything_else = You can't wear anything else without removing something first. you_dont_wear = But I'm not wearing that! you_see_nothing_special = There's not much to say about that really. you_see_nothing_special_2 = There's not much to say about that really. } } blackonwhite : theme { extends = blackonyellow theme_settings { theme_tags = [ blackonwhite ] } colors { // 15 == white (#fff) status_bar_pen = 000 // 9 = Blue (#00f) status_bar_paper = 15 //#efe pen = 000 paper = 15 } } whiteonblack : theme { extends = blackonyellow theme_settings { theme_tags = [whiteonblack] } colors { // 15 == white (#fff) status_bar_pen = 15 // 9 = Blue (#00f) status_bar_paper = 0 //#efe pen = 15 paper = 0 } } blackonblue : theme { extends = blackonyellow theme_settings { theme_tags = [ blackonblue ] } colors { status_bar_pen = 000 status_bar_paper = 5 pen = 000 paper = 5 } } yellowonblack : theme { extends = blackonyellow theme_settings { theme_tags = [ yellowonblack ] } colors { // 15 == white (#fff) status_bar_pen = 6 // 9 = Blue (#00f) status_bar_paper = 0 //#efe pen = 6 paper = 0 } } greenonblack : theme { extends = blackonyellow theme_settings { theme_tags = [greenonblack] } colors { // 15 == white (#fff) status_bar_pen = 12 // 9 = Blue (#00f) status_bar_paper = 0 //#efe pen = 12 paper = 0 } } } assets { graphics { default_location_graphic : dynamic_graphic {( has_theme_tag "blackonyellow" ? "mustard_black_on_yellow" : has_theme_tag "blackonwhite" ? "mustard_black_on_white" : has_theme_tag "blackonblue" ? "mustard_black_on_blue" : has_theme_tag "yellowonblack" ? "mustard_yellow_on_black" : has_theme_tag "whiteonblack" ? "mustard_white_on_black" : "mustard_green_on_black" )} lower_divider_graphic: dynamic_graphic {( has_theme_tag "blackonyellow" ? "custard_black_on_yellow" : has_theme_tag "blackonwhite" ? "custard_black_on_white" : has_theme_tag "blackonblue" ? "custard_black_on_blue" : has_theme_tag "yellowonblack" ? "custard_yellow_on_black" : has_theme_tag "whiteonblack" ? "custard_white_on_black" : "custard_green_on_black" )} dynamic_loading_screen: dynamic_graphic {(survivor? "end_screen":"loading_screen")} loading_screen : png filepath = "loading_screen.png" ; end_screen : png filepath = "End Screen.png" ; still: png filepath = "blank_mirror.png"; colonel_mustard : png filepath = "Colonel Mustard.png" ; mustard_black_on_yellow : base64_png "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"; custard_black_on_yellow : base64_png "iVBORw0KGgoAAAANSUhEUgAAA7MAAAA+CAYAAAD52Ez0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAzxSURBVHhe7d0JbNVVFsfx05W2FCht2VqQArastTCObFqBMCCbAuJITAdlURJHIyjLmHEICDqJCwIZFEGURUFFA8gABlEBASsqDo0jgwpCFZGWltKF7sv0XG6hllIxVHnv//9+kua9e96DNpq0/HrOvdenomJphQAAAAAA4EV87SMAAAAAAF6DziwAAF6goqJC0tNzJSMjT1JTT0vLlo2lY8cWEhISKD4+PvZdAAC4B2EWAAAPl5qaKUuW7JJt2w5KUVGp5OYWSlBQgISHh0ivXu1k2rRB0rZthH03AADuQJgFAMBDlZSUycaNB2TevC1y9GiGlJWVm1pF5U9u7dSWl5/7Ed6+faTMmHGL3HXXDdKkSbCpAQDgdIRZAACuEg2mBQUlUlxcKr6+PuLn5ysffnhItm//n+nA/vDDadm794jk5xfbP1G3fv3iZO3aSRIVFWYrAAA4F2EWAIArpGFUu6TaMa2i21gDAvxMQK1Ou6u7dx+WLVu+lB07vpa0tBxT032vGmhPnz572eG1Nn36tJennrpdEhNjbQUAAGcizAIA8Cvk5BSakV89iCk5+TsTSLOyzp4f+a1Ow6we0BQdHSaxsS2kR4828tlnx+S5596XwsIS+67617hxkLz66kS57bYEWwEAwHkIswAA1KFqb6p2WL/66oRMmfKm6axqN9aTxcREyKZND0h8fLStAADgLIRZAACq0X2s69f/R06cOGP2rX77bbpkZeVLaWmZeX7o0En7Ts83ffpgeeaZMXYFAICzEGYBALB07+rcuVvkySe3mufern//OHnnnQfM2DEAAE7z81MpAABwsXff/a88++x7jgiySsehk5OPmHtp9dTk0tJyMzYNAIAT0JkFALhednaBzJ27WV54YddvejDT1RAe3tDcPauHUEVGhpoubUREqEybNsjUAADwVoRZAICrabdy8uRXZcWKj23F+YKDA2TnzunSs2eMrQAA4H0YMwYAuJKOEn/yyXcyevQSWbduv606X1BQgIwZ8wfp0qWVrQAA4J3ozAIAHK1qj6iPj495/PTTY7JqVbK5KzYl5bg5tdjJ9J5bvaanZcsm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"; mustard_yellow_on_black : base64_png "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"; custard_yellow_on_black : base64_png "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"; mustard_white_on_black : base64_png "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"; custard_white_on_black : base64_png "iVBORw0KGgoAAAANSUhEUgAAA1AAAAA5CAYAAAA4CMo+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAA5mSURBVHhe7d17TNX1H8fxt8pFMKBEzUBK8VaCbCVOrbRm62LZzTW7YLU1y7XKzcXW5tYkbWmXtVXTWn9US7aWhhq1ct4mbSpERYo3UrxUIkSWAoqKen68Pp3DT+Vw8Xi4HZ6P7TM4Xw+HRDrf7/v7fn/e7x5m5qlfAAAAAIAW9PR+BAAAAAC0gAwUACDkXHHFFXbttddadHS0hYWF2YkTJ+zw4cNWWVnpfQYAAIEhgAIAhIzw8HAbMWKE3XnnnXbbbbdZfHy89e7d2wVORUVFlpeXZ4WFhXb06FHvVwAAcGkIoAAAXUqPHj3c8ng81rNnT5dlUuDUq1cvmzhxoj377LMueFLgpOf5nDlzxkpLS23p0qWWk5NjJSUl7jUAALgUBFAAgC6hT58+NmjQIBs4cKBFRETY6dOnLS4uziZNmmRJSUnWt29fGzZsmPtcwVRTqqqqrKCgwLKysmzLli0EUQCAS0IABQBod9qflJycbLGxsS6L5KNgpq6uzqqrq13Z3aFDh1wW6b777rOpU6fa9ddf7zJO+ppz5865zFP//v0b9jq1lr7PTz/9ZIsXL7bly5e7PVIAALQGARQAoF1MnjzZbr75ZpchSkxMtAEDBjQqs5OzZ8/aqVOnrKamxo4cOeIyTWPGjHHBU7Dt3bvX5s6da7m5ue57AgDQEgIoAEBQpaSkWL9+/VxWSCV2vizRtGnT7MYbb3THO5N169bZyy+/bNu2bfMeAQCgaQRQAICgUfe7mTNnugyTWolrX1JkZKTbv6TVGdXW1tpzzz1n2dnZ3iMAADRNu2yz/vsUAIDAaP+RyvMWLFhgU6ZMcXuc1OxBGSgFTmr60FkpQ6YZUfv27XPBXlRUlPuofVYqJ6TJBADgfGSgAACXRcGRgqYXX3zR7rjjjkZ7mrqCP/74w4qLi62srMyOHTvmmkqUl5fbihUr3EcAAHwIoAAAAVPmafr06TZ//nwbPHhws+3DOztlmtTZT1knzYxSB8AnnnjCdesDAMCHAAoAcMni4+NdwHT//fdbRkaGm78USnbv3m3Lli2zJUuWWEVFhfcoAAAEUACAFqgkz7cPSIGTsjJqFqFOeyNHjnSNIro6ZZzy8/Nt/fr1bj/Ujh07bNeuXa6NOgAA5yOAAgC0mhpDfPfdd64deShRALVw4UJbtGgRQ3UBAM36//h3AACaEBsba8OHD7dbb73VZaFCzcGDB90cKIInAEBLyEABAJqkYCk9Pd3Gjh1rqamprmRv6NChFhMT431GaFi5cqXNmzfPdeIDAKA5ZKAAAH5pltPs2bPtk08+cfOdHnzwQZeF0oDczkT7s1SCp+55gaqpqbHq6mrvIwAAmkYABQBoRNmmN9980zIzMy0hIcHNScrNzbXNmzdbXV2d91kdT8HT6dOn7dSpU64FeSCOHz9u27dvZ94TAKBVCKAAABdQiZ4yTtOmTbPo6GjbunWrG5L74YcfWlxcnJv91FmoQ6BmT/Xu3Tvg/y61K1+1apWdPHnSewQAgKYRQAEAGlx55ZU2Y8YMu/feey0iIsJKS0vtgw8+sG+++caqqqosMTHRevYM/qnD1yY9EAqcFEQpmArE1VdfbZGRkd5HAAA0jwAKAOAoABk3bpw9/fTTLnjSnqLs7GzLyclxAY7mPXWm7FOwaAiwhgIDANAaBFAAAEdNIzQkd8iQIe7xli1bbPny5Xb06FH3WC2+Q3GwrFq0P/744/boo4+6OVcAADSnV/3K+u/TC0VFRbk6eN2V07R50UZbAEBoUrMIDchVOdyePXvs/ffft4KCAtfhTq666iqbPHmyC7SCLdDyu2BQV8HRo0fbgAEDrLCw0A4dOuT9EwBAd6Dzm+Iend/0uRoTaTXF7xwo1YM/9NBDNnXqVPdCx44dc52XVMZRVFTUcDIFAIQO7W3SDTNlYbTf6c8//7zg/V4nlzfeeMMefvhhCw8P9x4NDbpB+PHHH9u7777r/t4AgNCn894NN9zg4h7dINQ5sKKiwtasWePinv3793uf2ZgCqIYVHR3t+eijjzz1QZPn7NmzHjl37pyntrbWU1xc7Kl/8Quez2KxWKzusXr16uXJyMjwlJWVuXNDKCkvL/c8//zznrCwML9/dxaLxWKF3kpLS/Pk5eV5jh8/7uIdUfxTU1PjqQ+gPAkJCX6/rlEJ38yZM90GYmWhfCUV+qiNwypvUAtbtbT9+++/3Z8BALoHlTWkpKTY+PHjXUOJtlB/7uqQcj514VPpou48anWmWVcAgOBTtcWsWbPssccec42Tzo979FjZKI3yUDbqYo1K+DZs2GBjx45tctK8JrV//fXXtnfv3pDsxtQZKJ1YW1trZWVlrnyyoy4ouhv9jNV17J9//rHDhw+72lddUKF9aBgqpVOd14QJE2zOnDkugFJpd1PniK5MQZP2fC1cuNBWr14d8GBeBJ9u4Ibi71xnpd99len279/f/ex1vadrEbQt3/We+hAkJSVZTEyMuy5B8Onnqn2/d911l1133XXeoxfSdYluqPnb99sogNK0ef3PosgLHUdvXpWVla4unwCqffgCKO39UIZVez/aYt4N/NMblQJXhpm2v5UrV1peXp73kX9PPvmkff75595HoUk3BtV18Msvv7Rt27Y1umBMTU21p556ivNjO1N2UNcluqjkXNg+dA2ioElz4ZR5JoBqH77rPf3OqxKMREXn4O99p1EAVVxc7DYK643KH92h04lF2RFOIm1Db1z6+euEoen6+ofjjavt6WfsO2GoVBXoLubPn2/z5s3zPvIvLS3NXnjhBbv99tvd3KRQvLmwadMmy8zMtPz8fO+RC6nM44svvvA+AkJfTU2Nq8rQtR/Ba9vz/Yz18y4vL3c30bmR2zZ0k1yl6KNGjWrymk/X47q56y8mahRAvfrqqzZ79uyG1uUX27hxoytvUKClukAEn/5RlbZV+rZPnz4EUO3k/JIFLX2uY2hbvjtuKs/R77xuGqB9qfucSrNbovPCI4884oKM5OTkkLug2r17t2VlZbkMlD/p6enu7673Z7QfXcDopq3mkek9mQv5tqeLdkraO4Z+v/XzPnDggNvGQRaqbehnrNI87YFSZYE/mn24atUqy8jI8B65kK7MG9bAgQM9y5Ytc134Llb/j+mZPn2668R08dexWCwWK/RX3759XafWuro675khNJSUlHjee+89z4QJE/z+vVksFosVemvSpEmenTt3NnTg8zl58qRn7dq1nptuusnv1zXqwqd07S+//NKwuar+NVxDg+3bt9uCBQssNzfX3Q0CAHQ/vj1qairRVp34OoKGBmvG1cGDB8k8A0A3oez2vn373J4zbeFQzKNst+Kdt99+2w1X96dRCZ+PNg2qjMmXOtQLajo7wRMAdG8qLX7mmWfspZdesuHDh3uPdm06Uap8TyUbAIDuQ7GOkka+Tp+6ifbvv//aX3/91eQWmkYZKB/dZTxy5IjrBKelaIxWigAAbXD+7bff3DlhxIgR7oZbV6aTpO42/vzzz5znAKCbUcCk/Wa+mEedmNXAozm09gAAXDLdVNOJpqm7c12FZny89dZbromGNhUDANASAigAQEA0fLCr74P6/vvv7dNPP2WIMwCg1QigAAAB0ZwSZaKao5I4jWbobJkqlWcoePrss89c6QYAAK1FAAUACIjmJmn/UHO0X0p7ajvT3iI1Q/r222/ttddesx9++IF9TwCAS0IABQAIiLoUqQVsc3uHNBRSQzk7yxBOZcJ+/fVXW7x4sRUUFHT5PVwAgPbXZBc+AACao9I3zc9QhkljLzRDQwHT+RQ4hYeHNzre3hQoVVVV2Y8//mjZ2dm2Zs0axnIAAALS5BwoAABa45prrrH09HSbNWuW3XPPPR2ebVJJnv4btD9r9erVtnXrVjeWQ3u29u/f7xpGtLR3CwCAphBAAQAuW3x8vL3++us2Y8YMl23SXA199GWefB995XyauaRSOs2QGjlypOvoF4x5Uhr6rgYRGvar4e+vvPKKrV271mpqaijXAwAEBQEUAOCyjRo1yhYtWmQTJ050e6JU1hcREeEmuytwUQCjIComJsb9mRo45OTkWFxcnA0dOtSSkpJcGaDaouuYAqCoqCiLjIx0QZfo63VMr6HnKmhTeaAyTlpqWKHg6cSJE66cUMMQMzMz3YwnAACChQAKAHDZUlNT7Z133rFbbrnFBTEKmsLCwtw+Ke01UiClx7GxsbZ+/XqbO3eu7dixw/vV/6fnREdHuyBJQZQ+1zFRAKVjCpwGDRpkU6ZMsbvvvtt9Py0FUMp86XvrOSrbmzNnjuu4x34nAECw0EQCAHDZlCVKTEy00aNHu4BHmaHff//dli5daqWlpTZ+/Hj3PHW+Uwe8wsJCF+xcTMeUwaqurm7Yt6ROf7514MAB27Vrl3sdZZhSUlJccHZ+q3RlrRREqWGEvn9lZaU7DgBAMNDGHABw2SoqKmzFihWuK59K90pKSmzJkiUuK6WMk6/M7quvvrK8vDyXLbpcGzdudK+vduoq2VN5nwI3ZakUeKl0TwEXAADBRAAFALhsyvhoqK662ymQKS4utnXr1tmZM2dccLVz507r16+fPfDAAy5TFQzKOm3YsMFlo9SYQvunfCV/+piQkOBKBgEACCZK+AAAQaHMU1pamo0bN841gti0aZNrG64GEtoLpS57yjxt3rzZZYiCQXuffK+lAE6d95SFSk5OtiFDhrgyQGXDgpHxAgBAaCIBAAgKBS4KoNTYQWV0KtcrKipyf6aslNqV6zl79uwJ6hwmNZcYPHiwazyh7NOwYcNszJgxbj9Vfn6+a2OuznwAAAQDARQAIKjUxEGBkppBdFTmR40lRKWFmg3lr2EFAACBIIACAAAAgFaiiQQAAAAAtBIBFAAAAAC0EgEUAAAAALQSARQAAAAAtIrZ/wAu/NA20EZq4QAAAABJRU5ErkJggg=="; custard_green_on_black : base64_png "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"; mustard_green_on_black : base64_png "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"; mustard_black_on_blue : base64_png "iVBORw0KGgoAAAANSUhEUgAABD8AAAA7CAYAAAB8FyFLAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAsiSURBVHhe7d1ZbJRVGMbxp2wFUUHKIlQQUYsKGJUtJEjA9cKoQYgmKDFqBI0LBoUYl1hueuFuKxhBNCgiJNULaWKiIqSaaKTUBJFUaQQb1lK6KWDLZl/PmXQ6dtoBnM7M9/1/SdM5p1+n7QXMl2fe875ZKis7JQAAAAAAgIDq5j8DAICwamqSjh2Tamul5ma/CQAAEBxUfgAAEDaNjdKuXS7s2LFD2rdPys6WKiulkSOliROlMWOk3Fz/DQAAAJmN8AMAgLAoL3ehR2mp9NtvUk2NdPKk/2KMK6+UbrhBmjPHBSMAAAAZjPADAICgswqPkhJp7Vqpvj7xoy1ZWdLkyVJ+vjRwoN8EAADIPPT8AAAgqE6dkn78UXr8camoSKquPr2eHvb9P/wgffCB3wAAAMhMhB8AAASVhRdlZe6Iiz0+U/b9NEIFAAAZjPADAICg6tbyMj97tpSX5zfOkIUf333nFwAAAJmH8AMAgCCzpqYNDX5xhg4flj791PUOAQAAyECEHwAABNXPP0svvCAdOOA3zsLmzdKaNWd3fAYAACBFCD8AAAiagwelzz6TFiyQqqr85lmykbjr17seIgAAABmGUbcAAASJhRPLl0vl5X7jf5abKy1aJE2d6jcAAADSH5UfAAAEhVVnbNiQvODD7NkjLVkirVrlGqHazwQAAEhzhB8AAARFVpZ07bV+kUR1ddLSpdIjj0grVhCAAACAtEf4AQBAUFj4cdFFUt++fiOJLPBobJRWrpQKC6WdO6W///ZfBAAASC/dNW9evn8MAAAyXa9e0rZt0u7dfiPJbPrL1q1SaakLQI4dk4YPb7nD6O4vAAAASD0angIAEDQWfhQUuJ4cXc3Cl/HjpYkTXVPUpiZpyBBpwAB/AQAAQNcj/AAAIIiKi6WXX05dP45u3VzgYT//ggukQYNcIHL11a5apEcPqblZ6tnTfba1sevtsYUmvXu7ShJ7LnP8uNS/v3uu886jugQAACSM8AMAgCA6fFh67TXpq6+ko0f9ZpQRI1yAUF/vJrh0lUiQcTYsFJk8WZo1Sxo3rmt6nAAAgIxG+AEAQJCVlLh+HMYqMaqqXPDx4IPS4MHS3r3S6tVSba3rE1JR4a7NBBakTJ8u3XSTNHasNGyY/wIAAEBbhB8AAASdHSWxoyZ2TOTPP91RE6ueiGU9Qp54Qjp0yG9kCOszctll0uWXu2arl1wiXXWVOx4DAADQgvADAAC0KiqSVq3yiwxlx3msz8ill0pTprjGqxaE2ChgAAAQSoQfAACgVXm5tHix6wWS7uzYS3a2a5h64oTfjGHXWJXLFVe4IGTMGCknx4Uj9kEgAgBAKBB+AACAttatk155xS/SmAUft9wi5eVJO3e6xq2Nje7YTkODmxgTjx2LeestF4AAAIDAaz/8sPPAdu7311+l0aPdvH4AABAO27dLTz3lmqCmOxud++qrrpmrVYBY8LF/v1RXJx044AIRa+r6++9u6o31PrFrp02T7r+fSTEAAGQqyy327XOv8/bYsgt7QySOtuGHfcOKFdL69e5xtDlzpIUL/QIAAATW8eOu78c77/iNNGfHdO6+2y9iWNhh9zQWhtjfZetzzmEyDAAAmWzLFjfS34o2oln4kZ/fbgjSGn7YjcGSJdKmTf8u22VPsGaNXwAAgMCy6g8LFayKIt1ZL4+CAtfoFAAABJsVa7z++n8LNqJZVaiNw4/SzX+WPvmk4+DDWKpiAQkAAAg2axRqo3Ezgb37U1npFwAAILDsiEtnwYex3MKujeLCD/tGCz8SYSlLzJMAAICA6ddPOvdcv0hz1uvj66/dkRYAABBcJSWdBx/GrrGWHlHcsRd7x2T+fL+VIEpLAYQZ/wcilR5+WLr9dr9IEgsS7A0PKxs9csRvprFJk6SiouRXq9jx37Vr/QJIgURu+gEgyBL9f9Du1zdu9ItI+GEv5FY6AgAA0p81ILdG5Ml28qR7c+Snn/xGGhs1Svr4Y6lnT7+RJMuXuw8AAJD+ysr8g8ixFzqeAwCAWNb3I94UlXRjI25tmgsAAICJmfjiKj+sbGTGDL+VgM8/p+QbQLhRdoxUstfgrnodtj5f990nNTb6jTRlQc3KldK4cX4jSezfPv/+kUrcgwMIMzuxYsdyE2FHhF96yS+iR93akyQyxtbKbK3cFgAABJ8dfXnjjcQbo8djVabTpknZ2VJFhTtKY41K22ONVg8fPv0GpnPnSgsW+AUAAAicRAs3LCh+99021R+t4Yc9iZ3rtXG28diNi52nJXEGACA8bBT+okXxwwirurBQI8Kajw4Z4oITu3eYOtUFGgMGuGst2LBKEjum0tDgQpCsLKlPH3ddjx7SF1+4Lu2nc5Rl9Gjpo4/czwAAAMFk9yXPPOMXccyb5z6itIYfEfEqQKxkxCo+CD4AAAiXqirp6aelnTv9RoyLL3aVITZpxQIPCy8szDhbH34oFRb6RQIsXLH7mLFj/QYAAAgkK9qwAMSO50azvMKOukyf7jda/Tf8MFYFYuNv7QnHj3dPENMsBAAAhMSBA9LixdIvv/iNGCNGSMXF/3/FRXW1m6zy5ZeJj9udOVN6/nm/AAAAgWZVIJEAZMIEaejQuAUb7YcfAAAAEfX10osvSt9/7zdi2DGXpUv/n2qPWCdOuHd2vv3Wb3Ti+uulggJ3hAYAAMDjUCwAAOiY9eGwd1LimTIlOcGHsaM0zz0n3XOP3+iEVa5u3uwXAAAADuEHAADomPXwGDzYL9qR7CqLQYOkJ5+U7rxTOv98vxmHHY+x3mW1tX4DAACA8AMAACSio34e1uQ02WyajB29eeABv9GBsjJp9Wq/AAAAIPwAAACJsOMn6cC6tz/6qNS/v9+Iw0bzL1sm7d/vNwAAQJgRfgAAgM717u0fpNjw4dJDD0nz53d8BMYapb7/vvT221JDg98EAABhRfgBAAA6N3Cg1KuXX8Q4lYLBcbNmSffe6/qRdGTDhvhTagAAQGgQfgAAgM5Z09EBA/wiik156awJaTJYD5K5c10FSJx5/v86dkyqq/MLAAAQVoQfAACgc9Zjw0bexrLgYdIkv+hiVoliE2BGjvQbcdTUuGMwAAAgtAg/AABA5yorpT17/CKKTWHpqPIi2eznDxvmF3Hs2CH99ZdfAACAMCL8AAAAnauqko4e9YsodvwkFT0/Ivr2lSZPdiFIxDXXSDk5ftHiyBGpqckvAABAGBF+AACAjh08KG3f7hcxZsyQevb0ixRpbHS9PSLuuEO68UbXj8Ts3euuAQAAoUX4AQAA4mtuloqKpG++8RvtiIQMXc0qTqyqY9cu6eRJv9nCfp9bb20NZaqrpUOH3GMAABBKhB8AAKB91idj3Tpp40a/0Q6bAJOq8KO+XioslEpL/UaLPn2kfv2kESPajsHdurVtQAIAAEKF8AMAALRv+XJp2bL2e32Y666TbrvNL7qY9SB57DGpuFiqrfWbLXJzpVGjpH372k54sSAkVSENAABIOcIPAADQPmscevPNbSsoIqy6YvZsacgQv9HFbPTu1KmuwuPCC6Xhw13z06FDpYoK6dlnW5uc2u9vfwvhBwAAoZWlsrIUtmgHAABpLz9fKinxixY2WWXhQmnWLL+RQrt3u8oUG7e7bZuUlydt2uSOw0RYQPLmm+4zAAAIJcIPAADQsZoaacsWV0lhVRRW9TFhQtvxsumkvFx67z3pjz9cNcjMmdJdd6Xv7wsAAJKO8AMAAASLNTa10bY2CcbCmpwcqXt3/0UAABBGhB8AAAAAACDQaHgKAAAAAAACjfADAAAAAAAEmPQPSq8VWZ79adMAAAAASUVORK5CYII="; custard_black_on_blue : base64_png "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"; mustard_black_on_white : base64_png "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"; custard_black_on_white : base64_png "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"; } videos { my_video : mp4 { filepath = titles.mp4 still = still } } }