-- -- PART 1: ATTRIBUTES -- ****************** -- Some locations can have a locked door leading somewhere. This flag -- should take care of that (the verbs that use Locked_Door have not been -- coded, as I probably plan to override the unlock function in the -- appropiate locations). LOCATION ATTRIBUTES NOT Locked_Door. on. notseen. -- An object can be takeable, openable (not by default), closable (not by -- default), and is usually closed. It can also be lockable, edible, -- drinkable, or switchable (turned on or off). OBJECT ATTRIBUTES not tied. takeable. NOT openable. NOT closable. closed. NOT lockable. locked. NOT edible. NOT drinkable. NOT switchable. on. not readable. examinable. not moving. notseen. not rideable. -- All Actors are assumed to be human (or at least intelligent). Actors are -- initially defined as male. In case you plan to use pronouns 'he', -- 'she' or 'it', this flag would be useful for printing the appropiate -- pronoun. -- The ProperName flag should be set if the actor has a proper name (i.e. -- Bill). This would keep the program from printing "The Bill hears you", -- instead of "Bill hears you", for example. Again, this has not been coded. ACTOR ATTRIBUTES Male. ProperName. examinable. not haspermit. notseen. on. person. new. --The following is to set the actor as not examined yet. not xed. not tied. -- I have modified the standard inventory header. modify it to suit your taste. CONTAINER inventory HEADER "$p$tYou are carrying" ELSE "$p$tYou are empty handed." END CONTAINER. ----------------------------------- -- PART 2: SYNONYMS -- **************** SYNONYMS -- Synonyms for commands: ----------------------------- north = n. south = s. east = e. west = w. up = u. down = d. northeast = ne. southeast = se. northwest = nw. southwest = sw. leave = 'exit'. q = 'quit'. i = 'inventory'. shout, yell = scream. l = 'look'. h = help. get, grab = take. shut = close. 'check', inspect, x = examine. dump, cast = throw. kill, fight, hit = attack. place = put. touch = push. fire = shoot. z = 'wait'. walk = 'exit'. -- Synonyms for objects go here: ------------------------------------ ------------------------------------ -- PART 3: SYNTAX. -- *************** SYNTAX --Simple syntax. brief = brief. credits = credits. help = help. 'in' = 'in'. info = info. listen = listen. 'look' = 'look'. 'quit' = 'quit'. 'restart' = 'restart'. 'restore' = 'restore'. 'save' = 'save'. scream = scream. take_inventory = 'inventory'. verbose = verbose. 'wait' = 'wait'. walkthrough = walkthrough. xyzzy = xyzzy. -- More complex syntax. ask_about = ask (act)! about (obj)! WHERE obj ISA OBJECT OR ACTOR ELSE "$p$tYou can't ask about that." AND act ISA ACTOR ELSE "$p$tYou can't talk to that." attack = attack (act)! WHERE act ISA ACTOR ELSE "$p$tThe attack fails." attack_with = attack (act) 'with' (obj) WHERE act ISA ACTOR ELSE "$p$tAttacking is not possible here." AND obj ISA OBJECT ELSE "$p$tBetter think of another idea." catch = catch (obj) where obj isa object else "$p$tYou can't catch that." close = close (obj) WHERE obj ISA OBJECT ELSE "$p$tYou can't close that." close_with = close (obj1) 'with' (obj2) WHERE obj1 ISA OBJECT ELSE "$p$tYou can't close that." AND obj2 ISA OBJECT ELSE "$p$tYou can't close anything with that." drink = drink (obj) WHERE obj ISA OBJECT ELSE "$p$tYou can't drink that." drop = drop (obj) *. eat = eat (obj) WHERE obj ISA OBJECT ELSE "$p$tYou can't eat that." enter = enter (loc). examine = examine (obj) WHERE obj ISA OBJECT OR ACTOR ELSE "$p$tYou can't examine that." extinguish = extinguish (obj) WHERE obj ISA OBJECT ELSE "$p$tYou can't extinguish that." extinguish2 = put out (obj) WHERE obj ISA OBJECT ELSE "$p$tYou can't put that out." give_to = give (obj1) 'to' (act)! where obj1 ISA object else "$p$tNot a good idea to try that." And act isa container actor else "$p$tYou can't give anything to that." hello = hello (act) where act isa actor else "$p$tIt has no ears to hear you." light = light (obj) WHERE obj ISA OBJECT ELSE "$p$tYou can't light that." listen_to = listen 'to' (obj) WHERE obj ISA object or actor else "$p$tYou can't listen to that." lock = lock (obj) WHERE obj ISA OBJECT ELSE "$p$tYou can't lock that." look_at = 'look' 'at' (obj) WHERE obj ISA OBJECT OR ACTOR ELSE "$p$tYou can't examine that." open = open (obj) WHERE obj ISA OBJECT ELSE "$p$tThat's not possible." open_with = open (obj1) 'with' (obj2) WHERE obj1 ISA OBJECT ELSE "$p$tYou can't open that." AND obj2 ISA OBJECT ELSE "$p$tYou can't close anything with that." play = play (obj) WHERE obj ISA OBJECT ELSE "$p$tYou can't play that." play2 = play 'with' (obj) WHERE obj ISA OBJECT ELSE "$p$tYou can't play with that." pull = pull (obj) WHERE obj ISA OBJECT ELSE "$p$tYou can't pull that." push = push (obj) WHERE obj ISA OBJECT ELSE "$p$tYou can't push that." push_with = push (obj1) 'with' (obj2) WHERE obj1 ISA OBJECT ELSE "$p$tYou can't push that." AND obj2 ISA OBJECT ELSE "$p$tYou cant use a $2 to push anything." put = put (obj) * WHERE obj ISA OBJECT ELSE "$p$tYou can't put that anywhere." put_behind = put (obj1) behind (obj2) WHERE obj1 ISA OBJECT ELSE "$p$tThat's impossible." AND obj2 ISA OBJECT ELSE "$p$tYou can't put anything behind the $2." put_in = put (obj1) 'in' (obj2) WHERE obj1 ISA OBJECT ELSE "$p$tThat's impossible." AND obj2 ISA CONTAINER ELSE "$p$tYou can't put anything in the $2." put_near = put (obj1) near (obj2) WHERE obj1 ISA OBJECT ELSE "$p$tThat's impossible." AND obj2 ISA OBJECT ELSE "$p$tYou can't put anything near the $2." put_on = put (obj1) 'on' (obj2) WHERE obj1 ISA OBJECT ELSE "$p$tThat's impossible." AND obj2 ISA OBJECT ELSE "$p$tYou can't put anything on the $2." put_with = put (obj1) 'with' (obj2) WHERE obj1 ISA OBJECT ELSE "$p$tThat's impossible." AND obj2 ISA OBJECT ELSE "$p$tYou can't put anything with the $2." put_on2 = 'put' 'on' (obj) WHERE obj ISA OBJECT ELSE "$p$tYou can't put that on." put_under = put (obj1) under (obj2) WHERE obj1 ISA OBJECT ELSE "$p$tThat's impossible." AND obj2 ISA OBJECT ELSE "$p$tYou can't put anything under the $2." read = read (obj) WHERE obj ISA OBJECT ELSE "$p$tOnly mindreaders read people." 'remove' = 'remove' (obj) WHERE obj ISA OBJECT ELSE "$p$tYou can't remove that." ride = ride (obj) where obj isa object else "$p$tYou can't ride that." shoot = shoot (obj) WHERE obj ISA OBJECT OR ACTOR ELSE "$p$tYou can't turn that off." shoot_at = shoot (obj) 'at' (act) WHERE obj ISA OBJECT ELSE "$p$tYou can't turn that off." AND act ISA OBJECT OR ACTOR ELSE "$p$tYou can't shoot that." shoot_with = shoot (act) 'with' (obj) WHERE obj ISA OBJECT ELSE "$p$tYou can't turn that off." AND act ISA OBJECT OR ACTOR ELSE "$p$tYou can't shoot that." show_to = show (obj1) 'to' (act)! where obj1 ISA object else "$p$tYou can't show that." And act isa actor else "$p$tYou can't show anything to that." take = take (obj) * WHERE obj ISA OBJECT ELSE "$p$tNot likely!" take_off = 'take' 'off' (obj) WHERE obj ISA OBJECT ELSE "$p$tYou can't take that off." talk = 'talk' 'to' (act) WHERE act ISA ACTOR ELSE "$p$tIt can't hear you!" talk_about = 'talk to' (act) about (obj) WHERE act ISA ACTOR ELSE "$p$tIt can't hear you!" tell = tell (act) WHERE act ISA ACTOR ELSE "$p$tIt's an object, not a person." tell_about = tell (act) about (obj)! WHERE act ISA ACTOR ELSE "$p$tIt is impervious to your attempts." throw = throw (obj) * WHERE obj ISA OBJECT ELSE "$p$tYou can't do that." throw_at = throw (obj1) 'at' (obj2) WHERE obj1 ISA OBJECT ELSE "$p$tYou can't do that." AND obj2 ISA OBJECT OR ACTOR ELSE "$p$tYou can't throw anything at that." throw_to = throw (obj1) 'to' (obj2) WHERE obj1 ISA OBJECT ELSE "$p$tNot a good idea to try that." AND obj2 ISA OBJECT OR ACTOR ELSE "$p$tYou can't throw anything at that." throw_in = throw (obj1) 'in' (obj2) WHERE obj1 ISA OBJECT ELSE "$p$tYou can't." AND obj2 ISA CONTAINER ELSE "$p$tYou can't throw anything in the $2." turn_on = 'turn' 'on' (obj) WHERE obj ISA OBJECT ELSE "$p$tYou can't turn that on." turn_off = 'turn' 'off' (obj) WHERE obj ISA OBJECT ELSE "$p$tYou can't turn that off." unlock = unlock (obj) WHERE obj ISA OBJECT ELSE "$p$tYou can't lock that." untie = untie (obj) Where obj isa object or actor else "$p$tYou can't untie that." watch = watch (obj) where obj isa object or actor else "$p$tThere's nothing to watch." wear = wear (obj) WHERE obj ISA OBJECT ELSE "$p$tYou can't wear that." ------------------------------------------------ -- PART 4: VERBS. -- ************** -- One word verbs. -- VERB 'brief' DOES VISITS 255. "$p$tNow using 'brief' mode - full descriptions will only be displayed the first time you visit a location$p" END VERB. -- verb credits does "$p$tI owe tremendous thanks to Stephen Griffiths, who has given me ALAN help above and beyond the call of duty. He also was the beta tester (and general encourager) for this mini-game when it was written for the Wacky Comp in early 1999." end verb. -- verb drop check obj not = map1 else "$p$tBody Adventura feebly scoops up the map again with his dextrous toes." locate map1 in bodya. and obj not = compass1 else "$p$tThe compass rolls right back into the weakened grasp of the Body Adventura." locate compass1 in bodya. does "$p$tYou drop the $o." end verb. VERB help DOES "$p$tYou and everybody else around here. Take a number!" END VERB. -- VERB info does "$p$tJess Kiddon was the pen name used by Lelah Conrad to enter the WackyComp, sponsored by David Glasser, in 1999." END VERB. -- verb listen does "$p$tYou listen carefully, but hear nothing out of the ordinary." end verb. -- VERB 'look' DOES LOOK. END VERB. -- VERB 'quit' DOES QUIT. END VERB. -- VERB 'restart' DOES RESTART. END VERB. -- VERB 'restore' DOES "$p$tRestoring..." RESTORE. "$p$tDone.$n" LOOK. END VERB. -- VERB 'save' DOES "$p$tSaving..." SAVE. "$p$tDone." END VERB. -- VERB 'score' DOES SCORE. END VERB. -- VERB scream DOES "$p$tAaaaaagghhh!!!" END VERB. -- VERB take_inventory DOES LIST inventory. END VERB. -- VERB 'verbose' DOES VISITS 0. "$p$tNow using 'verbose' mode - full descriptions will be displayed each time you visit a location$p" END VERB. -- VERB 'wait' DOES "$p$tTime passes..." END VERB. -- VERB walkthrough does "$p$tRan out of time, sorry. The potion might help." end verb. VERB xyzzy does "$p$tGesundheit." end verb. -- -- TWO OR MORE WORD VERBS. -- VERB ask_about does if act here and act is not propername then "$p$tThe $o replies, ""I don't know any more than you do.""" elsif act here and act is propername then "$p$t" SAY act. "replies, ""I don't know any more than you do.""" elsif act not here and act is not propername then "$p$tThe $o is not here." elsif act not here and act is propername then "$p$t" SAY Act. "$$ is not here." end if. END VERB. -- VERB attack CHECK act HERE ELSE "$p$tI don't see that person here." DOES "$p$tYou attack wildly, with little to show for your exertions." END VERB. -- VERB attack_with CHECK act HERE ELSE "$p$tI don't see that person here." AND obj IN inventory ELSE "$p$tYou don't have that object to attack with." DOES "$p$tYou attack wildly, with little to show for your exertions.." END VERB. -- VERB close CHECK object IS closable ELSE "$p$tYou can't close that." AND object IS NOT closed ELSE "$p$tIt is not open." DOES MAKE object closed. "$p$tThe $o is now closed." END VERB. -- VERB close_with CHECK obj1 HERE ELSE "$p$tI don't see any $1 to close." AND obj2 IN inventory ELSE "$p$tYou don't have the $2." DOES "$p$tYou can't close the $1 with the $2." END VERB. -- -- Right now the player can eat or drink objects defined with the edible -- and drinkable flags; however, there is still not much point in that, as -- eating or drinking an object just makes it disappear from the inventory. -- More code is required to make these actions meaningful. VERB drink CHECK obj IS drinkable ELSE "$p$tThat is not drinkable." AND obj HERE ELSE "$p$tI don't see what you want me to drink." DOES LOCATE obj IN Limbo. "$p$tYou drink the $o. Yum, you needed that!" END VERB. -- -- Right now the player can eat or drink objects defined with the edible -- and drinkable flags; however, there is still not much point in that, as -- eating or drinking an object just makes it disappear from the inventory. -- More code is required to make these actions meaningful. VERB eat CHECK obj IS edible ELSE "$p$tThat is not edible." AND obj HERE ELSE "$p$tI don't see what you want me to eat." DOES LOCATE obj IN Limbo. "$p$tYou eat the $o. Yum, you needed that!" END VERB. -- -- 'throw' and 'put' equal 'drop' as a default. VERB drop, throw, put CHECK obj IN inventory ELSE "$p$tYou haven't got that." DOES LOCATE obj HERE. "$p$tDropped." END VERB. -- VERB enter CHECK loc=loc ELSE "$p$tYou can't enter that." DOES locate hero at loc. END VERB. -- VERB examine, look_at DOES "$p$tThere's nothing special about the $o." END VERB. -- VERB extinguish, extinguish2 CHECK obj HERE ELSE "$p$tI don't see the object you want me to extinguish." DOES "$p$tYou can't extinguish that object." END VERB. -- verb give_to check obj1 in inventory else "$p$tYou haven't got that!" and act = bodya else "$p$tYou've already got it!" and act here else if act is propername then "$p$t" Say act. "isn't here." else "$p$tThe $2 isn't here." end if. does if act is propername then locate obj1 in act. "$p$t" Say act. "takes the $1." elsif act is not propername then locate obj1 in act. "$p$tThe $2 takes the $1." end if. end verb. -- verb hello check act here else "$p$tI don't see that person here." does IF act IS NOT ProperName THEN "$p$tThe $o nods politely." ELSE "$p$t$o nods politely." END IF. end verb. -- VERB light CHECK obj HERE ELSE "$p$tI don't see the object you want me to light." DOES "$p$tYou can't light that object." END VERB. -- VERB listen_to Check obj here else "$p$tIt's not here." does "$p$tYou listen carefully to the $o." end verb. VERB lock CHECK obj IS lockable ELSE "$p$tYou can't lock that!" AND obj HERE ELSE "$p$tI don't see what you want me to lock." AND obj IS NOT locked ELSE "$p$tIt's already locked." DOES MAKE obj locked. "$p$tThe $o is now locked." END VERB. -- VERB open CHECK obj IS openable ELSE "$p$tYou can't open that!" AND obj IS closed ELSE "$p$tIt's already open." DOES MAKE obj NOT closed. "$p$tThe $o is now open." END VERB. -- VERB open_with CHECK obj1 HERE ELSE "$p$tI don't see any $1 to open." AND obj2 IN inventory ELSE "$p$tYou don't have the $2." DOES "$p$tYou can't open the $1 with the $2." END VERB. -- VERB play, play2 CHECK obj HERE ELSE "$p$tI don't see what you want me to play here." DOES "$p$tYou can't play that." END VERB. -- VERB pull CHECK obj HERE ELSE "$p$tI don't see what you want me to pull here." DOES "$p$tYou can't pull that." END VERB. -- VERB push CHECK obj HERE ELSE "$p$tI don't see what you want me to push." DOES "$p$tYou can't push it." END VERB. -- VERB push_with CHECK obj1 HERE ELSE "$p$tI don't see what you want me to push." AND obj2 HERE ELSE "$p$tYou don't have any $2." DOES "$p$tYour action has no noticeable effect." END VERB. -- VERB put_with, put_near, put_behind, put_on, put_under CHECK obj1 IN inventory ELSE "$p$tYou haven't got that!" AND obj2 HERE AND obj2 NOT IN inventory ELSE "$p$tI don't see any $2 here." DOES LOCATE obj1 HERE. "$p$tDropped." END VERB. -- VERB read DOES "$p$tYou can't read that." END VERB. -- VERB remove, take_off CHECK obj IN inventory ELSE "$p$tYou don't have that object." DOES "$p$tYou can't remove that." END VERB. -- VERB shoot CHECK obj HERE ELSE "$p$tI don't see what you want me to shoot." DOES "$p$tBang bang!" END VERB. -- VERB shoot_at CHECK obj IN inventory ELSE "$p$tYou don't have that object." AND act HERE ELSE "$p$tI don't see what you want me to shoot." DOES "$p$tBang!" END VERB. -- VERB shoot_with CHECK obj IN inventory ELSE "$p$tYou don't have that object." AND act HERE ELSE "$p$tI don't see what you want me to shoot." DOES "$p$tBang!" END VERB. -- verb show_to check obj1 in inventory else "$p$tYou haven't got that!" and act here else if act is propername then "$p$t" Say act. "isn't here." else "VThe $2 isn't here." end if. does if act is propername then "$p$t" Say act. "is not impressed." elsif act is not propername then "$p$tThe $2 is not impressed." end if. end verb. -- VERB take CHECK obj IS takeable ELSE "$p$tYou can't take that." AND obj NOT IN inventory ELSE "$p$tYou've already got that." DOES LOCATE obj IN inventory. "$p$tTaken." END VERB. -- VERB talk DOES IF act IS NOT ProperName THEN "$p$tThe $o does not seem to want to talk." ELSE "$p$t$o does not seem to want to talk." END IF. END VERB. -- VERB talk_about DOES IF act IS NOT ProperName THEN "$p$tThe $1 does not seem to want to talk." ELSE "$p$t$1 does not seem to want to talk." END IF. END VERB. -- VERB tell DOES IF act IS NOT ProperName THEN "$p$tThe $o is not impressed." ELSE "$p$t$o is not impressed." END IF. END VERB. -- VERB tell_about DOES IF act IS NOT ProperName THEN "$p$tThe $1 is not impressed." ELSE "$p$t$1 is not impressed." END IF. END VERB. -- VERB throw_at, throw_to CHECK obj1 IN inventory ELSE "$p$tYou haven't got that!" AND obj2 HERE AND obj2 NOT IN inventory ELSE "$p$tI don't see any $2 here." DOES "$p$tThe $1 bounces harmlessly off the $2.$n" LOCATE obj1 HERE. "$p$tDropped." END VERB. -- VERB throw_in, put_in CHECK obj1 IN inventory ELSE "$p$tYou haven't got that!" --From line follwing removed "and obj2 not in inventory" - don't know why that was there AND obj2 HERE ELSE "$p$tI don't see any $2 here." AND obj1 <> obj2 ELSE "$p$tNow, that would be a good trick!" DOES LOCATE obj1 IN obj2. "$p$tDone." END VERB. -- VERB turn_on CHECK obj IS switchable ELSE "$p$tYou can't turn that on." AND obj HERE ELSE "$p$tI don't see what you want me to turn on." AND obj IS NOT on ELSE "$p$tIt's already on." DOES MAKE obj on. "$p$tOk, the $o is now on." END VERB. -- VERB turn_off CHECK obj IS switchable ELSE "$p$tYou can't turn that off." AND obj IS on ELSE "$p$tIt's already off." AND obj HERE ELSE "$p$tI don't see what you want me to turn off." DOES MAKE obj NOT on. "$p$tOk, the $o is now off." END VERB. -- VERB unlock CHECK obj IS lockable ELSE "$p$tYou can't unlock that!" AND obj HERE ELSE "$p$tI don't see what you want me to unlock." AND obj IS locked ELSE "$p$tIt's already unlocked." DOES MAKE obj NOT locked. "$p$tThe $o is now unlocked." END VERB. -- VERB untie check obj here else "$p$tI don't see what you want me to untie." does "$p$tYou can't untie that." end verb. VERB watch check obj here else "$p$tYou can't see that here." does "$p$tYou spend a few moments watching and waiting." END VERB. -- VERB wear, put_on2 CHECK obj IN inventory ELSE "$p$tYou don't have that object." DOES "$p$tYou can't put that on." END VERB. -- -- PART 5 Limbo. -- ************** -- location to which destroyed objects are exiled LOCATION Limbo END LOCATION. ----------------------------------------------- -- End of File. ---------------