###################################### # Adventuron # ###################################### start_theme = my_theme ###################################### # Game Information # ###################################### game_information { game_name = Homophones Adventure game_shortname = Deer Creek written_by = Gareth Pitchford copyright_message = (c)2019 Primary Resources year = 2019 short_synopsis = Use your knowledge of homophones to solve the adventure and return home. game_version = 1.1.0 } ###################################### # Themes # ###################################### themes { my_theme : theme { settings { } font = monospace screen { width = 512 num_columns = 48 paragraph_spacing_multiplier = .5 experimental_spacer_pre_text = 5 } lister_objects { item_capitalization = original } lister_inventory { item_capitalization = original } ################################################## # System Messages # ################################################## system_messages { ask_new_game = Would you like to start a new game? ask_quit = Do you wish to quit the game? be_more_specific = Be more specific ...\s cannot_carry_any_more = You cannot carry any more items. cant_take = You can't carry that. exit_list_header_concise = Exits :\s inventory_list_empty = Nothing i_cant_do_that = You can't seem to do that. inventory_list_header = You are carrying: inventory_list_header_verbose = You are carrying: it_is_dark = It is dark. You can't see a thing. object_list_end_text = . object_list_final_separator = \sand\s object_list_separator = ,\s must_remove_first = You should try taking it off first. not_carried = You can't ${verb} something you are not carrying. not_present = Not at the moment. object_list_header = You can also see: object_list_header_verbose = You can also see ok = Okay on_drop = Okay, you've dropped that. on_get = Okay, you pick that up. on_remove = Okay, you've taken that off. on_wear = Okay, you've put that on. post_quit = You have quit the game prior_prompt = What Now? exit_list_there_are_no_obvious_exits = There are no obvious exits. unknown_noun = The game doesn't understand the noun "${noun}". unknown_verb = The game doesn't understand the verb "${verb}". exit_list_additional_exits_are_located_verbose = Additional exits are located exit_list_from_here_you_can_go_verbose = From here you can go exit_list_last_sep_verbose = and\s exit_list_sep_verbose = ,\s exit_list_you_can_also_go_verbose = You can also go exit_list_to_the_verbose = to the worn_suffix = \s(worn) you_already_wear = You are already wearing that. you_are_already_carrying = You are already carrying it. you_cant_go_that_direction = You cannot go in that direction. you_cant_wear = You can't wear that. you_dont_wear = You are not wearing that. you_see_nothing_special = You see nothing special. cant_see_one_of_those = You either can't see that or you can't pick it up. nothing_to_get = You don't need to pick up absolutely everything! } colors { story_pen = #fff paper = #000 inventory_header_pen = #0ff inventory_item_pen = #fff yousee_header_pen = #0ff yousee_item_pen = #fff textbox_pen = #ff0 exit_list_header_pen = #ff0 header_pen = #ff0 } } } ###################################### # Locations # ###################################### start_at = intro locations { intro : location "" header="In the classroom"; incar : location "You are sitting in the > of your car. The car seems to be parked in a country lane. The door leads outside.\n(You could > the >, or just > or > the car)" header="In Your Car"; layby : location "You're standing in a > in a country lane. Your > is parked here. \n(You can leave this area by going to the >)" header="A lay-by"; tree : location "You are standing underneath a >. To the WEST is the lay-by. The country lane leads off EAST towards a small town." header="Under a tree"; outside: location "You find yourself on the outskirts of the town, beside a small >. A > runs alongside the country lane that sweeps to the NORTH and to the WEST." header="Outside Town"; town: location "> lies before you to the NORTH, a small area of > is to the EAST, while to the road leads back SOUTH, past another >, to your car." header="The town"; copse: location "This collection of trees and bushes is known locally as >, or >. The town lies off to the WEST." header="Police Wood"; church: location "It's quiet in the >. At this end there is a small, ornate >. An open door leads out to the NORTH." header="Church"; lazyw: location "Continuing along > to the WEST will take you onto a >. To the SOUTH stands a small >. Other options for exploration lie to the NORTH and EAST." header="Lazy Lane West"; lazy: location "You are walking along >, which runs EAST to WEST. The > is visible to the NORTH. The > lies back to the SOUTH. There is a small wooden > here." header="Lazy Lane"; lazye: location "At the eastern end of > there is the >. Another road heads off to the NORTH." header="Lazy Lane East"; friarss: location "This small cobbled street, >, meanders NORTH and SOUTH. The town square is to the EAST. To your west stands >, the local corner-shop. (Which isn't actually on the corner of anything!)" header="Friar's Way South"; friarsn: location "The smell of freshly baked bread wafts from within the > which is to the WEST. > continues to the NORTH and SOUTH." header="Friar's Way North"; bicyclew: location "Here at the western end of > there is a > to the WEST and a > to the NORTH. Other parts of the town are to the SOUTH and EAST." header="Bicycle Road West"; bicycle: location "A large > stands proudly to the NORTH at this point on >. The street itself stretches out to the EAST and the WEST." header="Bicycle Road"; bicyclee: location "You stand at the eastern end of >. The building to the NORTH houses the > and there is a > to the EAST. You can also go WEST and SOUTH." header="Bicycle Road East"; prettys: location "This is the southern end of >. To the EAST is a >, the > is to the WEST, and the road continues to the NORTH and SOUTH." header="Pretty Close South"; prettyn: location "The building to the EAST is the home of the local >. The rather ramshackle road > continues NORTH and SOUTH, living up to no aspect of its name." header="Pretty Close North"; site: location "In this location you're greeted by the sight of a > being built. There's a large mound of > over in the corner." header="Building Site"; shop: location "You are inside the >, the local convenience store. The > of the shop are packed full of goods. Garish > advertise the week's special offers." header="Bizarre Bazaar"; bakers: location "A whole variety of > and > are on sale in this > shop." header="We Knead Dough"; gardenc: location "This is the local garden centre, >. Various > and > are dotted around on the ground." header="Roots, berries and Leaves"; chippy: location "You are standing inside >, a gourmet fish restaurant. Yeah, it's really just a posh chippy. There is a small > here for preparing food. The > and > for diners are currently empty." header="The Plaice Place"; pub: location "> is the local public house. There is a > here, a small > area and a >." header="The Pauper's Alms"; library: location "You've found >. This place doubles up as both the town library and a second-hand book shop. There's a > on a table nearby." header="Novel Ideas"; barbers: location "This is >, the local barber's. A reclining > is positioned in front of the >. Various potions and lotions are stacked on the > here." header="Shear Delight"; gym: location "You find yourself in >. It's very quiet here today. Most of the > is empty." header="The Good Fit Gym"; polices: location "This is the town >. A > divides the room into half. > adorn the walls. There is a large wicker > nearby." header="Police Station"; post: location "You are standing at the > of the town's >." header="Post Office"; square: location "You're in the >. Insects sleepily buzz around the well-tended > here. Roads lead off in all directions, with the > being to the NORTH." header="Town Square"; hall: location "You're inside the rather impressively decorated >." header="Town Hall"; } ###################################### # Connections # ###################################### connections { from, direction, to = [ layby, east, tree tree, east, outside outside, north, town town, north, lazy lazy, west, lazyw lazy, east, lazye lazy, north, square square, north, hall lazyw, north, friarss lazye, north, prettys friarss, north, friarsn prettys, north, prettyn prettys, west, square friarss, east, square friarsn, north, bicyclew prettyn, north, bicyclee bicycle, east, bicyclee bicycle, west, bicyclew site, east, lazyw shop, east, friarss bakers, east, friarsn gardenc, east, bicyclew chippy, south, bicyclew pub, south, bicycle library, south, bicyclee barbers, west, bicyclee gym, west, prettyn polices, west, prettys post, west, lazye copse, west, town church, north, lazyw ] } ###################################### # Vocabulary # ###################################### vocabulary { : noun {aliases = [ mayor, horse ]} : noun {aliases = [get, steal]} } ###################################### # Objects # ###################################### objects { boot : object wearable="true" "A boot"; bonnet : object wearable="true" "A bonnet"; loot: object "Some stolen loot"; lute : object "A steel lute"; crier : scenery "The town crier" start_at = "square"; musician : scenery "The banned musician" start_at = "bicycle"; musicianp : scenery "The happy musician" noun="musician"; police : scenery "A police officer" start_at = "polices"; mans : scenery "An shady-looking man" start_at = "copse" noun = "man"; mana : scenery "A sad man" start_at = "barbers" noun="man"; gardener : scenery "A gardener" start_at = "gardenc"; baker : scenery "A baker" start_at = "bakers"; builder : scenery "A builder" start_at = "site"; postman : scenery "A postman" start_at = "post"; weightlifter : scenery "A weightlifter" start_at = "gym"; chef : scenery "A chef" start_at = "chippy"; mayor : scenery "The horse mayor" start_at = "hall"; assistant : scenery "The mayor's assistant" start_at = "hall"; assistanth : scenery "The mayor's assistant" noun="assistant"; barman : scenery "The barman" start_at = "pub"; librarian : scenery "A librarian" start_at = "library"; witch : scenery "A witch"; shopkeeper : scenery "The shopkeeper" start_at = "shop"; shopkeeper2 : scenery "The shopkeeper" noun = "shopkeeper"; vicar : scenery "The vicar" start_at = "church"; thief : scenery "The thief"; bees : object "Some bees"; tea : object "Some tea"; rabbitn : object "A nervous-looking rabbit" noun="rabbit"; rabbit : object "A rabbit"; hare : object "A hare"; battery : object "A battery"; parcel : object "A parcel"; coppers : object "Some coppers"; pastels : object "Some pastels"; pastilles : object "Some pastilles"; cake : object "A birthday cake"; present : object "An unwrapped present"; presentw : object "A wrapped present" noun="present"; tyre : object "A tyre"; crook : object "A shepherd's crook"; clock : object "A clock"; conditioner : object "Some conditioner"; aconditioner : object "An air conditioner" noun="conditioner"; muscles : object "Some muscles"; peas : object "Some peas"; book : object "A book"; rose : object "A rose"; leaks : object "Some leaks?"; leeks : object "Some leeks"; ring : object "A gold ring" wearable = "true"; } ###################################### # Booleans # ###################################### booleans { rabbit_caught : boolean "false"; poster_x: boolean "false"; peas_given: boolean "false"; tea_given: boolean "false"; bees_given: boolean "false"; clock_given : boolean "false"; battery_given : boolean "false"; rose_given : boolean "false"; witchmet : boolean "false"; witchtalk : boolean "false"; examinedcar: boolean "false"; gotitem: boolean "false"; inventyped: boolean "false"; tryeast: boolean "false"; wornitem: boolean "false"; searchedcar: boolean "false"; tutorialdone: boolean "false"; endgame : boolean "false"; vlayby : boolean "false"; vtree : boolean "false"; vtown : boolean "false"; vcopse : boolean "false"; vchurch : boolean "false"; vsite : boolean "false"; vshop : boolean "false"; vbaker : boolean "false"; vgardenc : boolean "false"; vchippy : boolean "false"; vpub : boolean "false"; vlibrary : boolean "false"; vbarbers : boolean "false"; vgym : boolean "false"; vpolices : boolean "false"; vpost : boolean "false"; vsquare : boolean "false"; vhall : boolean "false"; } ###################################### # Integers # ###################################### integers { } ###################################### # On Startup # ###################################### on_startup { : print_graphic "title"; : print "^c^The Homophones Adventure\nWritten by >\nUsing > from > \nType > in game for full credits."; : press_any_key; : done; } ###################################### # On Describe # ###################################### on_describe { : if (is_at "intro") { : print "\nYou are so >. Bored of sitting in this classroom. > of staring at the >."; : press_any_key; : print "You were nodding off even before your teacher handed out the worksheets and now, presented with a seemingly endless barrage of questions, you can feel your eyes getting heavier and heavier."; : press_any_key; : print "The teacher had been going on about >. Or was it homonyms? Or homographs? Maybe, it was all three."; : press_any_key; : print "You give your head a shake and try and focus on the words in front of you."; : press_any_key; : print ">"; : press_any_key; : print "It's >, isn't it? Or is that what Americans write?"; : press_any_key; : print "You can feel your head nodding forward. Maybe if you just close your eyes for a few seconds, you'll be able to think more clearly…"; : press_any_key; : print "<...<14>>"; : press_any_key; : print "<...<14>>"; : press_any_key; : print "You wake up with a start… You try to style it out and pretend to your friends that you weren't asleep… but, wait… >..."; : press_any_key; : goto "incar"; : redescribe;} ## FAST TRAVEL FLAGS : if (is_at "layby") { : set_true "vlayby";} : if (is_at "tree") { : set_true "vtree";} : if (is_at "town") { : set_true "vtown";} : if (is_at "copse") { : set_true "vcopse";} : if (is_at "church") { : set_true "vchurch";} : if (is_at "site") { : set_true "vsite";} : if (is_at "shop") { : set_true "vshop";} : if (is_at "bakers") { : set_true "vbaker";} : if (is_at "gardenc") { : set_true "vgardenc";} : if (is_at "chippy") { : set_true "vchippy";} : if (is_at "pub") { : set_true "vpub";} : if (is_at "library") { : set_true "vlibrary";} : if (is_at "barbers") { : set_true "vbarbers";} : if (is_at "gym") { : set_true "vgym";} : if (is_at "polices") { : set_true "vpolices";} : if (is_at "post") { : set_true "vpost";} : if (is_at "square") { : set_true "vsquare";} : if (is_at "hall") { : set_true "vhall";} : if (is_at "square" && is_present "cake" && is_present "presentw") { : print "You enter the town square, armed with a cake and the present just in time for the town crier's surprise birthday party."; : press_any_key; : print "All the townsfolk have gathered to celebrate the occasion. Everyone from the mayor to the weightlifter. Even the thief and the witch have made an appearance."; : press_any_key; : print "<\"Oyez, Oyez, Oh yay!\"<13>> shouts the town crier as he is >ed with his >, <\"Just what I always wanted!\"<13>>"; : press_any_key; : print "The birthday song is sung. Cake is cut. Speeches are made. Best wishes are expressed. The crowd eventually departs."; : press_any_key; : print "<\"Thank you,\"<13>> says the town crier, now much happier. Now the town smiler, perhaps?"; : press_any_key; : print "As he leaves, you notice what he was sitting on earlier..."; : press_any_key; : destroy "cake"; : destroy "crier"; : destroy "presentw"; : create "tyre"; : redescribe;} : if (is_at "layby" && witchmet == false) { : print "<\"Oi!\"<13>> says a voice from the EAST, <\"Come here!\"<13>>"; : done;} : if (is_at "tree" && witchmet == false) { : print "<\"Hey, up here,\"<13>> says a voice. You look up. The voice is coming from a little person sitting on a branch in the tree."; : press_any_key; : print "You don't like to be rude but… black clothes, pointy hat, stripy tights, broomstick… Yeah, she's a >"; : press_any_key; : create "witch"; : set_true "witchmet"; : redescribe;} : if (is_at "tree" && witchtalk == false) { : print "Perhaps you should > to the >?"; : done;} : if (is_at "tree" && witchtalk && examinedcar == false) { : print "<\"Start by going back to the WEST. Then EXAMINE the CAR,\"<13>> says the witch. <\"EXAMINE is a posh word for looking at something closely.\"<13>>"; : done;} : if (is_at "tree" && witchtalk && inventyped && tutorialdone == false) { : print "(Perhaps it's time you explored further east?)"; : done;} } ###################################### # On Command # ###################################### on_command { : match "skip _" { : if (tutorialdone == false) { : print "Skipping the tutorial... I hope you know what you're doing..."; : press_any_key; : set_true "tutorialdone"; : set_true "witchmet"; : set_true "witchtalk"; : set_true "examinedcar"; : set_true "searchedcar"; : set_true "gotitem"; : set_true "inventyped"; : set_true "tryeast"; : set_true "wornitem"; : destroy "boot"; : destroy "bonnet"; : destroy "witch"; : redescribe;}} : match "skip _" { : if (tutorialdone) { : clear_screen; : print "> You have finished the game!"; : press_any_key; : print "Only kidding..."; : press_any_key; : print "Seriously... did you think that would work?!"; : press_any_key; : redescribe;}} : match "go _" { : gosub "fasttravel"; : print {("Where do you want to go?\n" + (vlayby ? "LAYBY? " : "") + (vtree ? "TREE? " : "") + (vtown ? "TOWN? " : "") + (vcopse ? "COPSE? " : "") + (vchurch ? "CHURCH? " : "") + (vsite ? "SITE? " : "") + (vshop ? "SHOP? " : "") + (vbaker ? "BAKERS? " : "") + (vgardenc ? "GARDEN? " : "") + (vchippy ? "CHIPPY? " : "") + (vpub ? "PUB? " : "") + (vlibrary ? "LIBRARY? " : "") + (vbarbers ? "BARBERS? " : "") + (vgym ? "GYM? " : "") + (vpolices ? "POLICE? " : "") + (vpost ? "POST? " : "") + (vsquare ? "SQUARE? " : "") + (vhall ? "HALL? " : ""))} :done;} : match "open door;leave _" { : if (is_at "incar") { : print "Still dazed and confused, you open the door and get out of the car..."; : goto "layby"; : redescribe;}} : match "get car" { : if (is_at "layby") { : print "This may be a fantasy world... but you can't go strolling around with a car under your arm!"; : done;}} : match "e _;go east" { : if (is_at "tree" && gotitem && ((is_worn "boot" == false) || (is_worn "bonnet" == false)) && (tutorialdone == false)) { : print "<\"We only let well-dressed people into our town,\"<13>> laughs the witch, <\"Why don't you try to WEAR everything that you've found?\"<13>>"; : done;}} : match "e _;go east" { : if (is_at "tree" && tutorialdone == false && is_worn "bonnet" && is_worn "boot") { : print "<\"My my, don't you look pretty?\"<13>> cackles the witch."; : press_any_key; : print "<\"Oh well, I've had my fun,\"<13>> she laughs, <\"You don't really have to go around dressed like that.\"<13>>"; : press_any_key; : print "With a snap of her fingers the boot and bonnet disappear."; : press_any_key; : destroy "boot"; : destroy "bonnet"; : print "<\"Right. I think we've covered all the basics now. You're on your own.\"<13>>"; : press_any_key; : print "<\"If you want to get back to class, you'll need to TALK to people in town to find out what they want. If you help other people, then they may well help you.\"<13>>"; : press_any_key; : print "<\"Oh,\"<13>> she whispers, <\"If you end up starting this game again, just type SKIP to jump past all this tutorial nonsense. But keep that to yourself, eh?\"<13>>"; : press_any_key; : print "And with that... she vanishes..."; : destroy "witch"; : press_any_key; : set_true "tutorialdone"; : redescribe;}} : match "e _;go east" { : if (is_at "tree" && tutorialdone == false) { : print "You feel a magic force stopping you."; : done;}} : match "talk witch" { : if (is_at "tree" && witchtalk == false) { : print "<\"Hello, dearie,\"<13>> she cackles, <\"I'm the Whirred Witch, a word witch.\"<13>>"; : press_any_key; : print "<\"This is my land,\"<13>> she continues, <\"It's not that different to your own but you'll need to be a fan of words to escape.\"<13>>"; : press_any_key; : print "<\"Pay attention if you want to know how the game works,\"<13>> explains the witch. <\"Let me tell you a few things to get you started.\"<13>>"; : press_any_key; : set_true "witchtalk"; : redescribe;}} : match "talk witch" { : if (is_present "witch") { : print "<\"Please try and pay attention,\"<13>> says the witch. <\"Remember, you can always type LOOK to see where you are in the game world.\"<13>>"; : done;}} : match "x lay-by;x layby" { : if (is_at "layby") { : print "You can't imagine anyone wanting to lie here!"; : done;}} : match "x tree" { : if (is_at "tree" && is_present "witch") { : print "It's a > tree. She must be a > witch."; : done;}} : match "x tree" { : if (is_at "tree" && is_present "witch" == false) { : print "The witch is nowhere to be found. Did you imagine her?"; : done;}} : match "x car" { : if (is_at "layby" && examinedcar) { : print "It's just a normal car. You can see why it's parked here, though. One of the tyres is missing!"; : done;}} : match "x car" { : if (is_at "layby" && witchmet == false) { : print "It's just a normal car. You can see why it's parked here, though. One of the tyres is missing!"; : done;}} : match "x car" { : if (is_at "layby" && tutorialdone == false && examinedcar == false && witchtalk) { : print "You EXAMINE the CAR... it seems quite normal, but it is missing a tyre!"; : press_any_key; : print "<\"Excellent!\"<13>> shouts the witch, <\"It's always a good idea to EXAMINE everything you come across. You never know what you'll learn by looking at things more carefully.\"<13>>"; : press_any_key; : print "<\"Right, now onto step two. Don't worry this will all be over soon,\"<13>> she continues, <\"Sometimes it's also a good idea to have a bit of a SEARCH around in things too.\"<13>>"; : press_any_key; : set_true "examinedcar"; : redescribe;}} : match "search car" { : if (is_at "layby" && tutorialdone == false && examinedcar && searchedcar == false) { : print "You SEARCH the CAR and find some interesting items..."; : press_any_key; : set_true "searchedcar"; : create "bonnet"; : create "boot"; : redescribe;}} : match "get boot" { : if (is_present "boot") { : get "boot"; : set_true "gotitem"; : done;}} : match "get bonnet" { : if (is_present "bonnet") { : get "bonnet"; : set_true "gotitem"; : done;}} : match "x witch" { : if (is_present "witch") { : print "<\"Oi!\"<13>> shouts the witch, <\"Concentrate on the task at hand!\"<13>>"; : done;}} : match "x boot;x bonnet" { : if (is_present "boot" || is_present "bonnet") { : print "Not the type you'd usually find on a car! It's the type you can WEAR!"; : done;}} : match "inventory _" { : if (tutorialdone == false && inventyped == false) { : inventory; : set_true "inventyped"; : done;}} : match "x sign" { : if (is_at "outside") { : print "The sign says:\nWELCOME TO >\n(Twinned with >)"; : done;}} : match "x sign" { : if (is_at "town") { : print "The sign says:\nTHANKS FOR VISITING >\n(Twinned with >)"; : done;}} : match "x hedge" { : if (is_at "outside" && (has_not_created "rabbitn")) { : print "You spot an animal scurrying underneath the hedge..."; : press_any_key; : create "rabbitn"; : redescribe;}} : match "x bench" { : if (is_at "lazy") { : if (has_not_created "ring") { : print "You find something underneath the bench..."; : create "ring"; : press_any_key; : redescribe;} : else { : print "Just a normal wooden bench."; : done;}}} : match "sit bench" { : if (is_at "lazy") { : print "You spend a few minutes sitting on the bench."; : done;}} : match "x font" { : if (is_at "church" && (has_not_created "leaks")) { : print "A font is a very > object..."; : press_any_key; : print "...but this one seems to be a very > object!"; : press_any_key; : create "leaks"; : redescribe;}} : match "x font" { : if (is_at "church") { : print "Looks like Times New Roman"; : done;}} : match "x leaks;x leeks" { : if (is_present "leaks") { : print "Wait a minute... They're not >... They are >!"; : swap o1="leaks" o2="leeks"; : done;}} : match "x leeks;x leaks" { : if (is_present "leeks") { : print "They are vegetables."; : done;}} : match "x chef" { : if (is_present "chef") { : print "The chef is busy experimenting with new recipes."; : done;}} : match "x man" { : if (is_present "mans") { : print "He looks very > and not just because he's standing under a tree!"; : done;}} : match "x man;x thief" { : if (is_present "thief") { : print "It's the man from the wanted poster in the police station!"; : done;}} : match "x man" { : if (is_present "mana") { : print "He's wearing a red dragon rugby shirt.\nHe's got no hair. Maybe that's why he's been crying. He > because he is >! "; : done;}} : match "x vicar" { : if (is_present "vicar") { : print "He's busy >ing the >!"; : done;}} : match "talk vicar" { : if (is_present "vicar") { : print "<\"We're all about the<13>> > > says the vicar, <\"Not the<13>> ><.\"<13>>"; : done;}} : match "x counter" { : if (is_at "polices") { : print "On the counter is a pen."; : done;}} : match "x seat;x car" { : if (is_at "incar") { : print "Ah! You seem to have played one of these types of games before.\nMany apologies for the tutorial you're about to sit through.\n(If you're feeling really confident then you could SKIP it)."; : done;}} : match "x pen" { : if (is_at "polices") { : print "It's one of those pens held in place by a little chain. It keeps the station>ry station>ry."; : done;}} : match "get pen" { : if (is_at "polices") { : print "You can't pick it up. Examine it to see why!"; : done;}} : match "x posters;x poster" { : if (is_at "polices") { : if (poster_x) { : print "You wonder if that thief is still lurking around town?"; : done;} : else { : print "They are mostly posters of criminals. You spot one of a very shady-looking character who is wanted for theft."; : set_true "poster_x"; : swap o1="mans" o2="thief"; : done;}}} : match "x ring" { : if (is_present "ring") { : print "It's a ring made from 24 > gold."; : done;}} : match "x rabbit" { : if (is_present "rabbitn") { : print "It looks very hungry!"; : done;}} : match "x rabbit" { : if (is_present "rabbit") { : print "Wait a minute... It's not a >. It's a >!"; : swap o1="rabbit" o2="hare"; : done;}} : match "get rabbit" { : if (is_at "outside" && is_worn "ring" == false && is_present "rabbitn" && is_present "ring" == false) { : print "The rabbit is scared of you and scampers out of reach."; : done;}} : match "get rabbit" { : if (is_at "outside" && is_worn "ring" == false && is_present "rabbitn" && is_present "ring") { : print "The rabbit seems interested in the smell of the ring. Perhaps you could try wearing it? (The ring!)"; : done;}} : match "wear rabbit" { : if (is_at "outside" && is_present "rabbitn") { : print "No."; : done;}} : match "get rabbit" { : if (is_at "outside" && is_worn "ring" && is_present "rabbitn") { : print "You bend down to pick up the rabbit. It comes close to investigate your hand, sniffing at the gold ring you are wearing."; : press_any_key; : print "It must like the smell of the >!"; : press_any_key; : print "Oops... I think the rabbit has eaten the ring!"; : press_any_key; : print "You quickly grab hold of the animal."; : press_any_key; : destroy "ring"; : destroy "rabbitn"; : create "rabbit" target="inventory"; : redescribe;}} : match "give ring;feed rabbit" { : if (is_present "ring" && is_present "rabbitn") { : print "The rabbit does seem interested in the ring. It hops close to you to sniff it."; : done;}} : match "feed rabbit" { : if (is_present "ring" == false && is_present "rabbitn") { : print "Do you have something a rabbit likes to eat?"; : done;}} : match "talk rabbit" { : if (is_present "rabbitn" || is_present "rabbit") { : print "I know you've just met an actual witch, but a talking rabbit would be a little far-fetched!"; : done;}} : match "chase rabbit;tame rabbit" { : if (is_present "rabbitn") { : print "It didn't work, but it was a good idea."; : done;}} : match "talk man" { : if (is_present "mana") { : print "<\"The barber's shaved my head!\"<13>> > the man from >."; : done;}} : match "give hare;give hair" { : if (is_present "mana" && is_present "hare") { : print "You give the man the >..."; : press_any_key; : print "<\"Some<13>> >> he says excitedly. <\"That's just what I need!\"<13>>"; : press_any_key; : print "He balances the hare on his head and runs out of the barber's."; : press_any_key; : print "Oh well. I guess that allows you to investigate the barber's more closely."; : press_any_key; : destroy "hare"; : destroy "mana"; : redescribe;}} : match "sleep _" { : if (is_at "square") { : print "What? In the > of flowers?"; : done;}} : match "sleep _" { : print "Strangely, you don't seem tired anymore."; : done;} : match "get rubble;get rubbish;get pile" { : if (is_at "site") { : print "You don't want all of it!"; : done;}} : match "get lost;get property" { : if (is_at "polices") { : print "You don't need all of it."; : done;}} : match "sit chair" { : if (is_at "barbers") { : print "And run the risk of having all your hair shaved off?"; : done;}} : match "get novel" { : if (is_at "library") { : print "> is just the name of the shop!"; : done;}} : match "get poster;get posters" { : if (is_at "polices") { : print "They are best left where they are!"; : done;}} : match "give rabbit" { : if (is_present "mana" && is_present "rabbit") { : print "What would he want with that?"; : done;}} : match "give hare; give hair" { : if (is_present "mana" && is_present "hare" == false) { : print "Where are you going to get hair from?"; : done;}} : match "x shelves;x potions;x lotions" { : if (is_at "barbers") { : if (is_present "mana") { : print "<\"Oh woe is me!\"<13>> cries the man, getting in your way."; : done;}}} : match "x shelves;x potions;x lotions" { : if (is_at "barbers") { : if (has_not_created "conditioner") { : print "On one of the shelves you find some hair conditioner..."; : press_any_key; : create "conditioner"; : redescribe;} : else { : print "You can't see anything else that would be of use."; : done;}}} : match "x conditioner" { : if (is_present "conditioner") { : print "Wait a minute... It's not > conditioner... It's an > conditioner!"; : swap o1="conditioner" o2="aconditioner"; : done;}} : match "x conditioner" { : if (is_present "aconditioner") { : print "It's an air conditioning unit. For keeping places cool."; : done;}} : match "x pile;x books;x table" { : if (is_at "library") { : print "A sign reads: 'Free to a good home'. Probably worth a search."; : done;}} : match "get pile;get book;get books" { : if (is_at "library" && has_not_created "book") { : print "Worth having a search through them, perhaps?"; : done;}} : match "use equipment" { : if (is_at "gym") { : print "You don't have a gym membership!"; : done;}} : match "search pile;search books;search table" { : if (is_at "library") { : if (has_not_created "book") { : print "You rummage through the pile of books and find one that you like the look of..."; : press_any_key; : create "book"; : redescribe;} : else { : print "You've already taken one book."; : done;}}} : match "x book" { : if (is_present "book") { : print "It's a > book."; : done;}} : match "talk librarian" { : if (is_present "librarian") { : print "<\"Feel free to have a good search through the books,\"<13>> she says."; : done;}} : match "x builder" { : if (is_present "builder") { : print "The builder is busy > the > and fixing the > in the >."; : done;}} : match "talk builder" { : if (is_present "builder") { : print "<\"I just need to add one more story to the house,\"<13>> the builder says, <\"and then I'm done!\"<13>>"; : done;}} : match "give book;give story" { : if (is_present "builder" && is_present "book") { : print "You hand the book to the builder..."; : press_any_key; : print "<\"Great,\"<13>> she says, <\"I was looking for an idea for the last<13>> > >"; : press_any_key; : destroy "builder"; : destroy "book"; : redescribe;}} : match "x rubble;x rubbish" { : if (is_at "site") { : print "It's a pile of rubble and rubbish."; : done;}} : match "search rubble;search rubbish" { : if (is_at "site" && is_present "builder") { : print "It would be much too dangerous to investigate the rubble while the builder is working."; : done;}} : match "search rubble;search rubbish" { : if (is_at "site") { : if (has_not_created "battery") { : print "You find something useful in the pile of rubbish..."; : press_any_key; : create "battery"; : redescribe;} : else { : print "There's nothing else of any use in the pile of rubbish."; : done;}}} : match "x battery" { : if (is_present "battery") { : print "It provides an electrical >."; : done;}} : match "talk police;talk officer" { : if (is_present "police") { : print "<\"This heat is making me feel hot under the collar,\"<13>> she says."; : done;}} : match "x police;x officer" { : if (is_present "police") { : print "It's so hot in the police station, she's finding it hard to concentrate on her work."; : done;}} : match "x equipment" { : if (is_at "gym") { : print "They look more like torture devices!"; : done;}} : match "x pool;x table" { : if (is_at "pub") { : print "You've not brought your swimming trunks."; : done;}} : match "x stage" { : if (is_at "pub" && is_present "musicianp" == false) { : print "The stage is empty at the moment. I wonder where the band is?"; : done;}} : match "x stage" { : if (is_at "pub" && is_present "musicianp") { : print "There's plenty of room for the band to > and >. Although they might get dusty if they do."; : done;}} : match "give conditioner" { : if (is_present "police" && is_present "conditioner") { : print "You don't think she'd be interested in washing her hair."; : done;}} : match "give conditioner" { : if (is_present "police" && is_present "aconditioner") { : print "You offer the air conditioner to the police officer."; : press_any_key; : print "<\"Oh wow! Thanks!\"<13>> she says, <\"I can take that into the back office and get all my paperwork done.\"<13>>"; : press_any_key; : print "The much happier copper disappears into the back room of the police station, leaving behind..."; : press_any_key; : destroy "police"; : destroy "aconditioner"; : create "coppers"; : redescribe;}} : match "x librarian" { : if (is_present "librarian") { : print "She looks very helpful."; : done;}} : match "x coppers" { : if (is_present "coppers") { : print "Some coppers. Loose change. A little bit of cash."; : done;}} : match "x basket" { : if (is_at "polices") { : print "It's marked 'lost property'."; : done;}} : match "search basket;search lost" { : if (is_at "polices") { : if (has_not_created "crook") { : print "You root through the lost property and find something interesting..."; : press_any_key; : create "crook"; : redescribe;} : else { : print "There's nothing else of interest to you in the lost property basket."; : done;}}} : match "talk thief" { : if (is_present "thief") { : print "<\"I do feel bad about being a thief,\"<13>> he says, <\"If only there was another job a crook like me could do.\"<13>>"; : done;}} : match "give crook" { : if (is_present "thief" && is_present "crook") { : print "You give the shepherd's > to the thief..."; : press_any_key; : print "<\"A shepherd!\"<13>> he exclaims, <\"That sounds a great job for a crook like me.\"<13>>"; : press_any_key; : print "He shows you something before leaving."; : press_any_key; : print "<\"I don't suppose you could give back some of the loot I've stolen?\"<13>>"; : press_any_key; : destroy "thief"; : destroy "crook"; : create "loot"; : redescribe;}} : match "give crook" { : if (is_present "mans" && is_present "crook") { : print "The man looks confused."; : done;}} : match "x crook" { : if (is_present "crook") { : print "A curved stick that a shepherd uses."; : done;}} : match "x loot" { : if (is_present "loot") { : print "The stolen > is a steel >."; : swap o1="loot" o2="lute"; : done;}} : match "x lute" { : if (is_present "lute") { : print "A lute is a stringed instrument like a guitar."; : done;}} : match "talk chef" { : if (is_present "chef") { : print "<\"I need some vegetables to put in my fish cakes,\"<13>> explains the chef."; : done;}} : match "x cakes;x pastries" { : if (is_at "bakers" && has_not_created "cake") { : print "It looks like they make birthday cakes here, too!"; : done;}} : match "buy cake;buy cakes;buy pastry;buy pastries" { : if (is_at "bakers") { : print "You don't have enough money for that."; : done;}} : match "get cake;get pastries" { : if (is_at "bakers" && has_not_created "cake") { : print "You can't just go around stealing cakes! People will notice if the cakes are scone... sorry, gone."; : done;}} : match "x cake" { : if (is_present "cake") { : print "On the top is iced the message <'Happy Birthday Town Crier'<12>>."; : done;}} : match "x house" { : if (is_at "site") { : print "The house is currently two > high!"; : done; }} : match "x hare" { : if (is_present "hare") { : print "The hare looks quite happy, but perhaps you could find someone to look after it?"; : done;}} : match "x counter" { : if (is_present "chef") { : print "The chef is using the counter at the moment."; : done;}} : match "x counter" { : if (is_at "chippy") { : if (has_not_created "muscles") { : print "You find something on the counter..."; : press_any_key; : create "muscles"; : redescribe;} : else { : print "You can't see anything else useful."; : done;}}} : match "give leeks;give leaks" { : if (is_present "chef" && is_present "leeks") { : print "You hand the leeks over to the chef."; : press_any_key; : print "<\"These will be perfect for my fishcakes,\"<13>> he says."; : press_any_key; : print "After thanking you, he disappears into the kitchen of the restaurant."; : press_any_key; : destroy "chef"; : destroy "leeks"; : redescribe;}} : match "give peas" { : if (is_present "chef" && is_present "peas") { : print "The chef is not impressed by your offering. <\"I'm all for giving peas a chance but I need some fresh ingredients!\"<13>>, he says."; : done;}} : match "give leeks;give leaks" { : if (is_present "chef" && is_present "leaks") { : print "You want to give the chef the leaks?"; : done;}} : match "x muscles" { : if (is_present "muscles") { : print "Muscles from the gourmet fish restaurant."; : done;}} : match "x tables;x chairs;x table;x chair" { : if (is_at "chippy" && has_not_created "peas") { : print "On one of the tables you find some >..."; : press_any_key; : create "peas"; : redescribe;}} : match "talk man" { : if (is_present "mans") { : print "He doesn't seem to want to talk to you. Very suspicious."; : done;}} : match "read book" { : if (is_present "book") { : print "There will be time for reading later. Get on with your quest!"; : done;}} : match "x peas;eat peas" { : if (is_present "peas") { : print "They're probably a little too cold to eat!"; : done;}} : match "eat leeks" { : if (is_present "leeks") { : print "Look for someone else who wants them."; : done;}} : match "eat muscles" { : if (is_present "muscles") { : print "Look for someone else who wants them."; : done;}} : match "talk weightlifter" { : if (is_present "weightlifter") { : print "<\"I wish I were a little stronger!\"<13>> the weightlifter says sadly."; : done;}} : match "x counter" { : if (is_at "post") { : print "Where the postman sorts his letters."; : done;}} : match "x weightlifter" { : if (is_present "weightlifter") { : print "She looks a little unhappy about something."; : done;}} : match "give muscles" { : if (is_present "weightlifter" && is_present "muscles") { : print "You give the muscles to the weightlifter..."; : press_any_key; : print "<\"More muscles,\"<13>> says the weightlifter, <\"They'll make me stronger!\"<13>>"; : press_any_key; : print "She goes to leave the gym and then stops, <\"I've been using this to time my<13>> > >"; : press_any_key; : print "She's left something behind..."; : press_any_key; : create "clock"; : destroy "weightlifter"; : destroy "muscles"; : redescribe;}} : match "x clock" { : if (is_present "clock") { : print "A device for telling the >."; : done;}} : match "talk barman" { : if (is_present "barman") { : print "<\"I'm only selling non-alcoholic drinks these days,\"<13>> he says."; : done;}} : match "x barman" { : if (is_present "barman") { : print "He's standing at the bar."; : done;}} : match "x bar" { : if (is_at "pub") { : if (has_not_created "tea") { : print "On the bar you find a cup of >..."; : create "tea"; : press_any_key; : redescribe;} : else { : print "There's nothing else of interest on the bar."; : done;}}} : match "buy drink" { : if (is_at "pub") { : print "You're not thirsty at the moment."; : done;}} : match "give tea" { : if (is_present "tea" && is_present "mayor") { : print "That's a good idea but I don't think it will solve his problem."; : done;}} : match "drink tea" { : if (is_present "tea") { : print "I wonder if anyone else wants it?"; : done;}} : match "x pastels;x crayons" { : if (is_at "shop" && has_not_created "pastels") { : print "They seem quite reasonably priced, should you manage to be able to scrape together a few coppers."; : done;}} : match "get flowers" { : if (is_present "rose" == false && is_at "square") { : print "You shouldn't steal flowers."; : done;}} : match "x flowers;x bed;x insects" { : if (is_at "square" && has_not_created "bees") { : print "You spot some > buzzing around the flowers..."; : press_any_key; : create "bees"; : redescribe;}} : match "x bees" { : if (is_present "bees") { : print "Be careful! Or should that be... Bee careful?"; : done;}} : match "x postman" { : if (is_present "postman") { : print "He's the >->!"; : done;}} : match "talk postman" { : if (is_present "postman") { : print "<\"Some of my<13>> > > he exclaims, <\"If you see any, can you please bring them to me?\"<13>>"; : done;}} : match "give tea" { : if (is_present "postman" && is_present "tea") { : print "<\"Ah, yes!\"<13>> says the postman, <\"<13>>> >"; : destroy "tea"; : set_true "tea_given"; : gosub "lettercheck"; : done;}} : match "give bees" { : if (is_present "postman" && is_present "bees") { : print "<\"Ah, yes!\"<13>> says the postman, <\"<13>>> >"; : destroy "bees"; : set_true "bees_given"; : gosub "lettercheck"; : done;}} : match "give peas" { : if (is_present "postman" && is_present "peas") { : print "<\"Ah, yes!\"<13>> says the postman, <\"<13>>> >"; : destroy "peas"; : set_true "peas_given"; : gosub "lettercheck"; : done;}} : match "x tree;x trees" { : if (is_at "gardenc") { : print "One of the trees is very >... it must be a > tree!"; : done;}} : match "get tree;get trees;get plant;get plants" { : if (is_at "gardenc") { : print "You can't just go around taking things that don't belong to you. (Unless they're underneath the > message!)"; : done;}} : match "x plants" { : if (is_at "gardenc") { : print "Blooming lovely!"; : done;}} : match "talk gardener" { : if (is_present "gardener") { : print "<\"I'm waiting for a parcel from the post office,\"<13>> says the gardener."; : done;}} : match "x gardener" { : if (is_present "gardener") { : print "He's currently trying to thread a needle. He must be getting ready to > some seeds."; : done;}} : match "x parcel" { : if (is_present "parcel") { : print "It's addressed to the garden centre."; : done;}} : match "open parcel" { : if (is_present "parcel") { : print "No! You can't open somebody else's post!"; : done;}} : match "give parcel" { : if (is_present "gardener" && is_present "parcel") { : print "<\"Thanks,\"<13>> says the gardener, <\"Finally, I've been<13>> > > > >"; : press_any_key; : print "He takes some flowers out of the package."; : press_any_key; : print "<\"I'm going to go and plant these plants in rows,\"<13>> says the gardener."; : press_any_key; : destroy "gardener"; : destroy "parcel"; : create "rose"; : redescribe;}} : match "x rose" { : if (is_present "rose") { : print "A type of > that looks great planted in >!"; : done;}} : match "x baker" { : if (is_present "baker") { : print "He's busy searching the cupboards in his kitchen for ingredients."; : done;}} : match "talk baker" { : if (is_present "baker") { : print "<\"I can't talk right now\"<13>> says the baker, <\"I need to find some<13>> ><, some<13>> > > > >"; : done;}} : match "give clock;give time;give thyme" { : if (is_present "baker" && is_present "clock") { : print "<\"Thanks!\"<13>> says the baker, <\"I needed some<13>> > > > >"; : destroy "clock"; : set_true "clock_given"; : gosub "breadcheck"; : done;}} : match "give rose;give flower;give flour" { : if (is_present "baker" && is_present "rose") { : print "<\"Thanks!\"<13>> says the baker, <\"I needed some<13>> > > > >"; : destroy "rose"; : set_true "rose_given"; : gosub "breadcheck"; : done;}} : match "give battery;give currents;give currants" { : if (is_present "baker" && is_present "battery") { : print "<\"Thanks!\"<13>> says the baker, <\"I needed some<13>> > >"; : destroy "battery"; : set_true "battery_given"; : gosub "breadcheck"; : done;}} : match "x musician;x instrument" { : if (is_present "musician") { : print "The musician is plucking a tune on pieces of string attached to a cardboard box! He's playing some > on the >."; : done;}} : match "listen _" { : if (is_present "musician") { : print "A jaunty tune!"; : done;}} : match "talk musician" { : if (is_present "musician") { : print "<\"Me and me<13>> > > > > complains the musician, <\"Someone nicked me guitar and the gaffer in there doesn't like me homemade instrument.\"<13>>";}} : match "give lute" { : if (is_present "musician" && is_present "lute") { : print "You give the stolen lute to the musician..."; : press_any_key; : print "<\"Yeah, this is me guitar that got nicked,\"<13>> he says, <\"Thanks for finding it, mate. We'll be able to play our gig now!\"<13>>"; : press_any_key; : destroy "lute"; : destroy "musician"; : create "musicianp" target="pub"; : redescribe;}} : match "x musician" { : if (is_present "musicianp") { : print "The musician and his band are tuning up their instruments and getting ready to play."; : done;}} : match "talk musician" { : if (is_present "musicianp") { : print "The musician says, <\"I'm not just into rock music, you know. I'm also a really great<13>> >>"; : done;}} : match "give present" { : if (is_present "musicianp" && is_present "present") { : print "<\"Yeah, I can<13>> > > says the musician, <\"I mean,<13>> > >"; : press_any_key; : destroy "present"; : create "presentw"; : redescribe;}} : match "x present" { : if (is_present "present") { : print "It's the birthday present for the town crier, but it still needs > up!"; : done;}} : match "x present" { : if (is_present "presentw") { : print "A very neatly wrapped birthday present."; : done;}} : match "x mayor;x mare" { : if (is_present "mayor") { : print "The > is a >! She's an actual horse!"; : done;}} : match "x assistant" { : if (is_present "assistant") { : print "The mayor's assistant smiles at you. You get the feeling she probably does most of the decision making around here."; : done;}} : match "talk mayor;talk mare" { : if (is_present "mayor") { : print "<\"The people of the town got fed up with silly politicians who said<13>> > > says the assistant. <\"So they voted for someone who could only say<13>> ><.\"<13>>";}} : match "talk assistant" { : if (is_present "assistant") { : print "<\"I'm sorry but we've got no time to chat at the moment,\"<13>> says the assistant, <\"The mayor has a bad throat.\"<13>>"; : print "She's a >!";}} : match "give pastilles;give medicine;give pastels" { : if (is_present "pastilles" && is_present "assistant") { : print "You had the pastilles over to the mayor's assistant..."; : press_any_key; : print "<\"Oh wow,\"<13>> she says, <\"These will be great for her throat. She'll be able to make a speech at the party later now!\"<13>>"; : press_any_key; : destroy "pastilles"; : print "<\"Thank you for your help,\"<13>> says the assistant. <\"We can now get ourselves ready for the town crier's birthday party.\"<13>>"; : press_any_key; : print "<\"Neigh!\"<13>> says the horse mayor."; : press_any_key; : print "<\"Oh no, you're right!\"<13>> says the assistant, <\"We've completely forgotten the present and the cake for the party!\"<13>>"; : press_any_key; : print "They both look pleadingly at you. <\"I don't suppose you could help us out with those while we go and get ready? Here's the present.\"<13>>"; : press_any_key; : destroy "mayor"; : destroy "assistant"; : create "present"; : redescribe;}} : match "give cake" { : if (is_at "hall" && is_present "cake") { : print "<\"Great,\"<13>> says the mayor's assistant, <\"Keep hold of that until the party later.\"<13>>"; : done;}} : match "talk shopkeeper" { : if (is_present "shopkeeper") { : print "<\"Welcome to the<13>> ><,\"<13>> he says, <\"Strangeness is our speciality. You look like an arty kind of person. I strongly recommend that you buy some of these<13>> ><.\"<13>>"; : print "He points to a box of coloured crayons on the counter."; : done;}} : match "talk shopkeeper" { : if (is_present "shopkeeper2") { : print "<\"I think you've done everything you need to do here,\"<13>> whispers the shopkeeper.\""; : done;}} : match "buy crayons;buy box;buy pastels;buy pastilles;buy medicine;get crayons;get pastels;give coppers" { : if (is_present "shopkeeper" && is_present "coppers") { : print "You had over your coppers and buy a box of the >, as the shopkeeper recommended."; : press_any_key; : print "<\"Using those pastels will make anyone feel much better,\"<13>> says the shopkeeper."; : press_any_key; : destroy "coppers"; : create "pastels"; : swap o1="shopkeeper" o2="shopkeeper2"; : redescribe;}} : match "buy crayons;buy box;buy pastels;buy pastilles;buy medicine;get crayons;get pastels" { : if (is_present "shopkeeper" && is_present "coppers" == false) { : print "You don't have any money."; : done;}} : match "x shopkeeper" { : if (is_present "shopkeeper" || is_present "shopkeeper2") { : print "The shopkeeper grins, <\"Say goodbye to high prices and say “Hel-low” to good buys!\"<13>>"; : done;}} : match "x tea" { : if (is_present "tea") { : print "Just some tea!"; : done;}} : match "x mirror" { : if (is_at "barbers") { : print "You smile at your reflection."; : done;}} : match "x chair" { : if (is_at "barbers") { : print "It looks more like something you'd see at the dentist! Perhaps today isn't the best day for a haircut."; : done;}} : match "x letters" { : if (is_present "postman") { : print "He has almost the whole >!"; : done;}} : match "get letters; search letters" { : if (is_present "postman") { : print "The postman won't let you mess about with his letters!"; : done;}} : match "x posters" { : if (is_at "shop") { : print "One poster reads: 'If you've got a boat then don't miss our half-price > on >!'"; : done;}} : match "x aisles;x aisle" { : if (is_at "shop") { : print "They're the only shop that has a > and also everything you need for a visit to a >!"; : done;}} : match "x pastels;x pastilles" { : if (is_present "pastels") { : print "Wait a minute... This isn't a box of >... It's a box of >!"; : swap o1="pastels" o2="pastilles"; : done;}} : match "wear hare;wear hair" { : if (is_present "hare") { : print "Somebody else needs it more than you do."; : done;}} : match "x pastilles" { : if (is_present "pastilles") { : print "Good for a sore throat!"; : done;}} : match "eat pastilles;suck pastilles" { : if (is_present "pastilles") { : print "Perhaps somebody else will appreciate them more?"; : done;}} : match "x crier" { : if (is_present "crier") { : print "The town crier is sitting down with his head in his hands. He looks very upset!"; : done;}} : match "talk crier" { : if (is_present "crier") { : print "<\"I spend all year announcing the town's news,\"<13>> sobs the crier, <\"But every year they all forget my birthday!\"<13>>"; : done;}} : match "give cake" { : if (is_present "cake" && is_present "crier") { : print "You should wait until you've sorted out his birthday present too."; : done;}} : match "give present" { : if (is_present "present" && is_present "crier") { : print "You'll need to get his present wrapped first!"; : done;}} : match "give present" { : if (is_present "presentw" && is_present "crier") { : print "You need a cake for the party too!"; : done;}} : match "eat cake" { : if (is_present "cake") { : print "Don't be mean! That's not for you!"; : done;}} : match "open present;unwrap present" { : if (is_present "presentw") { : print "Don't be mean! That's not for you!"; : done;}} : match "wrap present" { : if (is_present "present") { : print "You have nothing suitable to wrap it with. Maybe you need to find an expert >."; : done;}} : match "x tyre" { : if (is_present "tyre") { : print "There was a tyre missing from your car! Maybe this object will end the game! (Finally!)"; : done;}} : match "attach tyre;fix car;use tyre;mend car;mend tyre;change tyre;give tyre" { : if (is_at "layby" && is_present "tyre") { : print "This is it... the end of your adventure... surely?"; : press_any_key; : print "You carefully attach the tyre to the car and lower the vehicle to the ground."; : press_any_key; : print "And then... nothing happens."; : press_any_key; : print "Oh."; : press_any_key; : print "Not knowing quite what else to do, you climb into the back seat of the car."; : press_any_key; : print "Your adventure has made you quite tyred... sorry, tired..."; : press_any_key; : print "It wouldn't do you any harm if you just closed your eyes for a bit..."; : press_any_key; : print "<...<14>>"; : press_any_key; : print "<...<14>>"; : press_any_key; : clear_screen; : print "<\"So, what is the answer to question 1?\"<13>> the sound of your teacher's voice jolts you awake. Everyone in the class is staring at you.\""; : press_any_key; : print "<\"Erm... erm... it's TYRE... T Y R E...\"<13>> you gasp."; : press_any_key; : print "<\"Yes, that's right,\"<13>> says your teacher, looking a little confused, <\"Let's go through the rest of the answers.\"<13>>"; : press_any_key; : print "You look down at your worksheet and see that all the other answers are already filled in."; : press_any_key; : print "I wonder how that happened?"; : press_any_key; : clear_screen; : print "\n> - You've completed > the >"; : press_any_key; : print "If you enjoyed playing this game then why not make your own using >? See: >"; : press_any_key; : print "And... if you > enjoy the game then why not make a > adventure!"; : press_any_key; : end_game; : done;}} : match "credits _;about _" { : clear_screen; : print "\n> <(The Homophones Adventure)<13>>"; : print "(Version 1.1.0 ADVENTURON)"; : print "> Gareth Pitchford"; : print "Using > by Chris Ainsley\nVisit > to make your own text adventure games!"; : print "© 2019 PrimaryResources.co.uk / Gareth Pitchford"; : print "Thanks to > for his help and support."; : print "Playtested by > and >."; : press_any_key; : redescribe;} ## Catch alls... : match "give _" { : print "Nobody here seems to want that."; : done;} : match "search _" { : print "You uncover nothing more."; : done;} } ###################################### # On Tick # ###################################### on_tick { : if (is_at "incar") { : print "(If you want to read the location description again then type LOOK or R)"; : done;} : if (is_at "layby" && witchtalk && examinedcar == false) { : print "<\"Come on! Remember what I said. EXAMINE the CAR! You can just type X CAR if you want to save time.\"<13>>"; : done;} : if (is_at "layby" && witchtalk && examinedcar && searchedcar == false) { : print "<\"Right,\"<13>> shouts the witch, <\"Now you need to SEARCH the CAR\"<13>>"; : done;} : if (is_at "layby" && witchtalk && examinedcar && searchedcar && gotitem == false) { : print "<\"Okay,\"<13>> explains the witch, <\"Now pick up one of those items by typing GET BOOT or GET BONNET.\"<13>>"; : done;} : if (witchtalk && examinedcar && searchedcar && gotitem && inventyped == false) { : print "<\"You can see what you're carrying at any time by typing INVENTORY,\"<13>> says the witch. <\"Yes, I know that's a long word. You can be lazy and just type the first letter (I) if you like.\"<13>>"; : done;} : if (is_at "layby" && witchtalk && examinedcar && searchedcar && gotitem && inventyped && tryeast == false && tutorialdone == false) { : print "<\"You'll probably want to come back EAST once you've got everything. Feel free to EXAMINE the things that you've found.\"<13>>"; : set_true "tryeast"; : done;} : if (is_present "cake" && is_present "presentw" && endgame == false) { : print "Now you've got the birthday cake and have wrapped the present, you should probably take both back to the town square for the party."; : set_true "endgame"; : done;} } ###################################### # Subroutines # ###################################### subroutines { lettercheck : subroutine { : if (bees_given && peas_given && tea_given) { : print "<\"Great,\"<13>> says the postman. <\"That's all my letters sorted. I can finally get around to delivering them.\"<13>>"; : press_any_key; : print "<\"I know it's a bit cheeky,\"<13>> he continues, <\"But could you run this parcel over to the garden centre for me?\"<13>>"; : press_any_key; : destroy "postman"; : create "parcel"; : redescribe;}} breadcheck : subroutine { : if (clock_given && battery_given && rose_given) { : print "<\"Excellent,\"<13>> says the baker. <\"That's all the ingredients I was missing.\"<13>>"; : press_any_key; : print "<\"I can start work on my soda bread now,\"<13>> he explains, <\"That reminds me. We've just finished work on this birthday cake that the mayor ordered.\"<13>>"; : press_any_key; : destroy "baker"; : create "cake"; : redescribe;}} fasttravel : subroutine { : match "go layby" { : if (vlayby) { : print "You make your way to the lay-by..."; : press_any_key; : goto "layby"; : redescribe;}} : match "go tree" { : if (vtree) { : print "You make your way to the witch's tree..."; : press_any_key; : goto "tree"; : redescribe;}} : match "go town" { : if (vtown) { : print "You make your way to outskirts of town..."; : press_any_key; : goto "town"; : redescribe;}} : match "go copse" { : if (vcopse) { : print "You make your way to the copse..."; : press_any_key; : goto "copse"; : redescribe;}} : match "go church" { : if (vchurch) { : print "You make your way to the church..."; : press_any_key; : goto "church"; : redescribe;}} : match "go site" { : if (vsite) { : print "You make your way to the building site..."; : press_any_key; : goto "site"; : redescribe;}} : match "go shop" { : if (vshop) { : print "You make your way to the town shop..."; : press_any_key; : goto "shop"; : redescribe;}} : match "go bakers" { : if (vbaker) { : print "You make your way to the baker's..."; : press_any_key; : goto "bakers"; : redescribe;}} : match "go garden" { : if (vgardenc) { : print "You make your way to the garden centre..."; : press_any_key; : goto "gardenc"; : redescribe;}} : match "go chippy" { : if (vchippy) { : print "You make your way to the chippy..."; : press_any_key; : goto "chippy"; : redescribe;}} : match "go pub" { : if (vpub) { : print "You make your way to the pub..."; : press_any_key; : goto "pub"; : redescribe;}} : match "go library" { : if (vlibrary) { : print "You make your way to the library..."; : press_any_key; : goto "library"; : redescribe;}} : match "go barbers" { : if (vbarbers) { : print "You make your way to the barber's..."; : press_any_key; : goto "barbers"; : redescribe;}} : match "go gym" { : if (vgym) { : print "You make your way to the gym..."; : press_any_key; : goto "gym"; : redescribe;}} : match "go police" { : if (vpolices) { : print "You make your way to the police station..."; : press_any_key; : goto "polices"; : redescribe;}} : match "go post" { : if (vpost) { : print "You make your way to the post office..."; : press_any_key; : goto "post"; : redescribe;}} : match "go square" { : if (vsquare) { : print "You make your way to the town square..."; : press_any_key; : goto "square"; : redescribe;}} : match "go hall" { : if (vhall) { : print "You make your way to the town hall..."; : press_any_key; : goto "hall"; : redescribe;}} } } ###################################### # Assets # ###################################### assets { graphics { title : base64_png "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8MQTK3DzzTfjxRfrcM+vf42rrr4aWVlZzIQxzEUXXYTm5mZs3LjR90lOB5qPrEfe+AuRPmI8jUYi6gGQXXLN4RYAubQFkUJH2zf43PyTgBv73HPPPXj00UeHr53a2+EEMHLkSADAJ598goo77sDnmzYhJycHu77+GuPGD6747XY7Fi48Hxs3fo4xY8bgn/98HV9//TXuuututLe3Iy8vD3v37kV2djYzYozT39+PpUuX4uWXX/Z73sicWThL9U+kpY+h0UikaOUQAJFMX187vvi8MmDjv3Tp0mHd+APAgw/WYP78+bjrrrvw0ksvYvz48djw0Uf429+excmTJ3H99TegsbFx0DXbtm2D0+FEVlYWal94AW+88SZuu+3naG9vBwAsXLgQo0aNYkaMA5KTk/G3v/0t4BTB9hM7sWPzfQCcNBqJGPQAEMl8uenugDudLV68GKtXr07IqX5SWGWsh7rsykENwjXXXI3f/va3+PTTT3HLLbdi1KhRuPzyJSgsVOKrHTvw97//Hf0OByZNmoRZs2Zh3bp1g+754ot1uPHGm5gR44hDhw7hhz/8Ib788ku/582Yey9O+14VDUYi4gGgACCSOND4Cr74vNLvOaeffjref/995OfnD3t79fb2YtGiRV4R4ampqViw4GxskLhxUIlKhdVvveUeUiDxw5YtW3DxxRejubnZd49MloIzL3wZeeOLaTASdgHAIQAimva2Xdi17UG/52RlZeGFF15g4/8daWlpqK19wWsfebvdLqnxHz9+PB599FEYV61i4x+nfP/738fTTz/t9xynsw9fbfkNenuO02Ak7HAWABGF09mH7Z/djvYT/lexe/LJJ3HllVfSYAPIy8vDhRdcgM8+/RTHj0uv2M8++2ysXr0apaWlXkKCxBdz5syB3W7Hhx9+6PMce28r7L2tGDf5RzQYCSecBUDEYd31DL62aP2es2zZMjz//PM0lg86OjrwxRfbcfDgIbz88st4443AKycmJydjx44vMXPmGTRggmC323H55Zfjvff8z/9Xnvccxk+5nAYj4YJDACQw7W27sHeHzu858+bNw5/+9Ccayw9ZWVlYsOAcZGdnY+fOnaKukclkSElJpfESiNTUVDz55JOYMGGC3/N2bXsYvT3NNBgJGxQAJCC7tz8Ce+8JvxXaihUruDStGFvu3o2rr746YDS4i76+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" ; } }