diff --git a/ATL/Pooh/place_list.txt b/ATL/Pooh/place_list.txt new file mode 100644 index 0000000..7002f3a --- /dev/null +++ b/ATL/Pooh/place_list.txt @@ -0,0 +1,30 @@ +IMPLEMENTED + +Pooh's home +Pooh's porch +Pooh's branch +Western woods +Central woods +Northern woods +Southern woods +Eastern woods +Deep forest +Hill +Bridge +Piglet's porch +Piglet's home +Kanga's house +Sandy pit +Six pine trees +Heffalump trap +Bee tree +Rabbit's house +Rabbit's friends and relations +Rapids +Christopher Robin's house +Owl's porch +Owl's home +Eeyore's gloomy place +Floody place +Woozle hideout +Misty forest diff --git a/ATL/Pooh/place_list.txt b/ATL/Pooh/place_list.txt new file mode 100644 index 0000000..7002f3a --- /dev/null +++ b/ATL/Pooh/place_list.txt @@ -0,0 +1,30 @@ +IMPLEMENTED + +Pooh's home +Pooh's porch +Pooh's branch +Western woods +Central woods +Northern woods +Southern woods +Eastern woods +Deep forest +Hill +Bridge +Piglet's porch +Piglet's home +Kanga's house +Sandy pit +Six pine trees +Heffalump trap +Bee tree +Rabbit's house +Rabbit's friends and relations +Rapids +Christopher Robin's house +Owl's porch +Owl's home +Eeyore's gloomy place +Floody place +Woozle hideout +Misty forest diff --git a/ATL/Pooh/woods.atl b/ATL/Pooh/woods.atl index 66913a9..324b01a 100644 --- a/ATL/Pooh/woods.atl +++ b/ATL/Pooh/woods.atl @@ -74,7 +74,7 @@ neighbour "Western woods" neighbour "Piglet's porch" neighbour "Woozle hideout" - neighbour "Eeeyore's gloomy place" + neighbour "Eeyore's gloomy place" neighbour "Floody place" neighbour "Bridge" diff --git a/ATL/Pooh/place_list.txt b/ATL/Pooh/place_list.txt new file mode 100644 index 0000000..7002f3a --- /dev/null +++ b/ATL/Pooh/place_list.txt @@ -0,0 +1,30 @@ +IMPLEMENTED + +Pooh's home +Pooh's porch +Pooh's branch +Western woods +Central woods +Northern woods +Southern woods +Eastern woods +Deep forest +Hill +Bridge +Piglet's porch +Piglet's home +Kanga's house +Sandy pit +Six pine trees +Heffalump trap +Bee tree +Rabbit's house +Rabbit's friends and relations +Rapids +Christopher Robin's house +Owl's porch +Owl's home +Eeyore's gloomy place +Floody place +Woozle hideout +Misty forest diff --git a/ATL/Pooh/woods.atl b/ATL/Pooh/woods.atl index 66913a9..324b01a 100644 --- a/ATL/Pooh/woods.atl +++ b/ATL/Pooh/woods.atl @@ -74,7 +74,7 @@ neighbour "Western woods" neighbour "Piglet's porch" neighbour "Woozle hideout" - neighbour "Eeeyore's gloomy place" + neighbour "Eeyore's gloomy place" neighbour "Floody place" neighbour "Bridge" diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index afa9bf2..d78e670 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -73,13 +73,12 @@ (char-name (nth char-nr (list-world-objects 'player)))) (set-main-player char-name) (play-game)))) - ;;FIXME Present the player with a choice of saved games - (1 ;(choose-number-option *games*) ;;XXXXXX - (format t "~&What game file do you want to load?") - (input-string game) - (setf game (concatenate 'string "../saves/" game)) - (load-game game) - (play-game)) + (1 (format t "~&What game file do you want to load?") + (let ((game (choose-option (mapcar #'pathname-name + (directory "../saves/*"))))) + (setf game (concatenate 'string "../saves/" game)) + (load-game game) + (play-game))) (2 (world-creator)) (3 (development)) ;; XXX Remove this (4 (print-version) diff --git a/ATL/Pooh/place_list.txt b/ATL/Pooh/place_list.txt new file mode 100644 index 0000000..7002f3a --- /dev/null +++ b/ATL/Pooh/place_list.txt @@ -0,0 +1,30 @@ +IMPLEMENTED + +Pooh's home +Pooh's porch +Pooh's branch +Western woods +Central woods +Northern woods +Southern woods +Eastern woods +Deep forest +Hill +Bridge +Piglet's porch +Piglet's home +Kanga's house +Sandy pit +Six pine trees +Heffalump trap +Bee tree +Rabbit's house +Rabbit's friends and relations +Rapids +Christopher Robin's house +Owl's porch +Owl's home +Eeyore's gloomy place +Floody place +Woozle hideout +Misty forest diff --git a/ATL/Pooh/woods.atl b/ATL/Pooh/woods.atl index 66913a9..324b01a 100644 --- a/ATL/Pooh/woods.atl +++ b/ATL/Pooh/woods.atl @@ -74,7 +74,7 @@ neighbour "Western woods" neighbour "Piglet's porch" neighbour "Woozle hideout" - neighbour "Eeeyore's gloomy place" + neighbour "Eeyore's gloomy place" neighbour "Floody place" neighbour "Bridge" diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index afa9bf2..d78e670 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -73,13 +73,12 @@ (char-name (nth char-nr (list-world-objects 'player)))) (set-main-player char-name) (play-game)))) - ;;FIXME Present the player with a choice of saved games - (1 ;(choose-number-option *games*) ;;XXXXXX - (format t "~&What game file do you want to load?") - (input-string game) - (setf game (concatenate 'string "../saves/" game)) - (load-game game) - (play-game)) + (1 (format t "~&What game file do you want to load?") + (let ((game (choose-option (mapcar #'pathname-name + (directory "../saves/*"))))) + (setf game (concatenate 'string "../saves/" game)) + (load-game game) + (play-game))) (2 (world-creator)) (3 (development)) ;; XXX Remove this (4 (print-version) diff --git a/lisp/ui.lisp b/lisp/ui.lisp index 3c8b8ba..2c3e562 100644 --- a/lisp/ui.lisp +++ b/lisp/ui.lisp @@ -59,7 +59,7 @@ ;; A list of all in-game commands. Each new command must be registered here. (defvar *commands* - '(help player goto pickup + '(help player goto take drop talk trade equip attack spell look save clear)) @@ -78,7 +78,7 @@ goto - Go to a neighbouring location look - Show a description of this entity talk [to] - Talk to an NPC -pickup - Pick up an item lying around +take - Pick up an item lying around drop - Drop the item equip - Equip this item as your weapon attack - Fight a monster @@ -132,7 +132,7 @@ (cond (game-file (setf last-save game-file)) ((and last-save (not game-file)) (setf game-file last-save)) ((not (or last-save game-file)) - (format t "~&Where do you want to save the game?") + (format t "~&What do you want to call the save file?") (input-string game-file) (setf game-file (concatenate 'string "../saves/" game-file)) (setf last-save game-file))) @@ -263,11 +263,11 @@ (if (y-or-n-p "Buy something else?") (trade player npc) (clear player))) -(defun pickup (player &optional item-name) +(defun take (player &optional item-name) "The player picks up an item" (unless item-name (format t "~&Please specify an item to pick up!") - (return-from pickup)) + (return-from take)) (let ((place (get-game-object 'place (player-place player))) (item (get-game-object 'item item-name))) (if (member item-name (place-item place) :test #'equalp) diff --git a/ATL/Pooh/place_list.txt b/ATL/Pooh/place_list.txt new file mode 100644 index 0000000..7002f3a --- /dev/null +++ b/ATL/Pooh/place_list.txt @@ -0,0 +1,30 @@ +IMPLEMENTED + +Pooh's home +Pooh's porch +Pooh's branch +Western woods +Central woods +Northern woods +Southern woods +Eastern woods +Deep forest +Hill +Bridge +Piglet's porch +Piglet's home +Kanga's house +Sandy pit +Six pine trees +Heffalump trap +Bee tree +Rabbit's house +Rabbit's friends and relations +Rapids +Christopher Robin's house +Owl's porch +Owl's home +Eeyore's gloomy place +Floody place +Woozle hideout +Misty forest diff --git a/ATL/Pooh/woods.atl b/ATL/Pooh/woods.atl index 66913a9..324b01a 100644 --- a/ATL/Pooh/woods.atl +++ b/ATL/Pooh/woods.atl @@ -74,7 +74,7 @@ neighbour "Western woods" neighbour "Piglet's porch" neighbour "Woozle hideout" - neighbour "Eeeyore's gloomy place" + neighbour "Eeyore's gloomy place" neighbour "Floody place" neighbour "Bridge" diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index afa9bf2..d78e670 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -73,13 +73,12 @@ (char-name (nth char-nr (list-world-objects 'player)))) (set-main-player char-name) (play-game)))) - ;;FIXME Present the player with a choice of saved games - (1 ;(choose-number-option *games*) ;;XXXXXX - (format t "~&What game file do you want to load?") - (input-string game) - (setf game (concatenate 'string "../saves/" game)) - (load-game game) - (play-game)) + (1 (format t "~&What game file do you want to load?") + (let ((game (choose-option (mapcar #'pathname-name + (directory "../saves/*"))))) + (setf game (concatenate 'string "../saves/" game)) + (load-game game) + (play-game))) (2 (world-creator)) (3 (development)) ;; XXX Remove this (4 (print-version) diff --git a/lisp/ui.lisp b/lisp/ui.lisp index 3c8b8ba..2c3e562 100644 --- a/lisp/ui.lisp +++ b/lisp/ui.lisp @@ -59,7 +59,7 @@ ;; A list of all in-game commands. Each new command must be registered here. (defvar *commands* - '(help player goto pickup + '(help player goto take drop talk trade equip attack spell look save clear)) @@ -78,7 +78,7 @@ goto - Go to a neighbouring location look - Show a description of this entity talk [to] - Talk to an NPC -pickup - Pick up an item lying around +take - Pick up an item lying around drop - Drop the item equip - Equip this item as your weapon attack - Fight a monster @@ -132,7 +132,7 @@ (cond (game-file (setf last-save game-file)) ((and last-save (not game-file)) (setf game-file last-save)) ((not (or last-save game-file)) - (format t "~&Where do you want to save the game?") + (format t "~&What do you want to call the save file?") (input-string game-file) (setf game-file (concatenate 'string "../saves/" game-file)) (setf last-save game-file))) @@ -263,11 +263,11 @@ (if (y-or-n-p "Buy something else?") (trade player npc) (clear player))) -(defun pickup (player &optional item-name) +(defun take (player &optional item-name) "The player picks up an item" (unless item-name (format t "~&Please specify an item to pick up!") - (return-from pickup)) + (return-from take)) (let ((place (get-game-object 'place (player-place player))) (item (get-game-object 'item item-name))) (if (member item-name (place-item place) :test #'equalp) diff --git a/saves/pooh1 b/saves/pooh1 index 49e38ee..c1a6ef3 100644 --- a/saves/pooh1 +++ b/saves/pooh1 @@ -1,15 +1,17 @@ (0 2 1) -#S(WORLD :NAME "100 Acre Wood" +#S(WORLD :NAME "100 Acre Wood" :MAIN-PLAYER "Winnie the Pooh" :PLAYERS (#S(PLAYER :NAME "Winnie the Pooh" :DESCRIPTION "A small but very lovable bear of very little brain." :STRENGTH 0 :DEXTERITY 0 :CONSTITUTION 0 :INTELLIGENCE 0 - :MONEY 0 :ABILITY NIL :ITEM NIL :WEAPON "" :ARMOUR-CLASS 0 :PLACE "Western woods" :EXPERIENCE 2 :LEVEL 0 :MAX-HEALTH 50 :HEALTH 50)) + :MONEY 0 :ABILITY NIL :ITEM ("Hunny" "Hunny") :WEAPON "" :ARMOUR-CLASS 0 :PLACE "Bridge" :EXPERIENCE 7 :LEVEL 0 :MAX-HEALTH 50 :HEALTH 50) + #S(PLAYER :NAME "Christopher Robin" :DESCRIPTION "Pooh's best friend." :STRENGTH 0 :DEXTERITY 0 :CONSTITUTION 0 :INTELLIGENCE 0 :MONEY 0 :ABILITY NIL :ITEM NIL + :WEAPON "" :ARMOUR-CLASS 0 :PLACE "Western woods" :EXPERIENCE 0 :LEVEL 0 :MAX-HEALTH 50 :HEALTH 50)) :PLACES (#S(PLACE :NAME "Pooh's home" :DESCRIPTION "Welcome home! This is what you call comfort: your bed, your chair, your table. Not to forget your larder, filled with delicious honey..." - :NEIGHBOUR ("Pooh's porch" "Pooh's branch") :ITEM ("Hunny") :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + :NEIGHBOUR ("Pooh's porch" "Pooh's branch") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") #S(PLACE :NAME "Pooh's porch" :DESCRIPTION "You are standing in front of Pooh's home. Here he lives under @@ -22,30 +24,183 @@ "This is a thick branch above Pooh's home. Once, on a very blustery day, Pooh had to escape to up here. Since then, he keeps an emergency ration of honey handy." - :NEIGHBOUR ("Pooh's home" "Pooh's porch") :ITEM ("Hunny") :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + :NEIGHBOUR ("Pooh's home" "Pooh's porch") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") #S(PLACE :NAME "Western woods" :DESCRIPTION "This is the western part of the 100 Acre Wood. As you would expect in a wood, it is full of trees. Here, however, there are not quite that many - mainly young birches." - :NEIGHBOUR ("Pooh's porch" "Central woods" "Northern woods" "Southern woods" "Piglet's porch") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" - :FUNCTION "")) - :MONSTERS NIL :NPCS NIL + :NEIGHBOUR ("Pooh's porch" "Central woods" "Northern woods" "Southern woods" "Piglet's porch" "Six pine trees" "Kanga's house") :ITEM NIL :MONSTER NIL :NPC NIL + :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Central woods" + :DESCRIPTION + "This is the oldest part of the 100 Acre Wood. The oaks you see +around you are truly ancient, hundreds of years old. Even Owl +can't remember when they were planted. It's very peaceful here." + :NEIGHBOUR ("Northern woods" "Eastern woods" "Southern woods" "Western woods" "Owl's porch" "Deep forest" "Hill") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL + :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Northern woods" :DESCRIPTION "TODO" + :NEIGHBOUR ("Central woods" "Eastern woods" "Western woods" "Kanga's house" "Sandy pit" "Bee tree" "Rabbit's house" "Rabbit's friends and relations" "Rapids") + :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Southern woods" :DESCRIPTION "TODO" + :NEIGHBOUR ("Central woods" "Eastern woods" "Western woods" "Piglet's porch" "Woozle hideout" "Eeyore's gloomy place" "Floody place" "Bridge") :ITEM NIL + :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Eastern woods" :DESCRIPTION "TODO" :NEIGHBOUR ("Central woods" "Northern woods" "Southern woods" "Christopher Robin's porch" "Owl's porch" "Bridge") + :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Deep forest" + :DESCRIPTION + "Thick firs and spruces grow here, shutting out the light with +their branches. Broken branches lie about on the ground and +cob webs span the spaces between the trees. Watch your steps, +you never know what you may meet in here. And don't get lost!" + :NEIGHBOUR ("Deep forest" "Central woods") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Hill" + :DESCRIPTION + "From this hill you can see the entire 100 Acre Wood and +beyond. You can see Christopher Robin's house, Pooh's house, +the tree with the bees' nest, Owl's home, Kanga's and Roo's +home and the stream that marks the edge of the woods." + :NEIGHBOUR ("Central woods") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Bridge" + :DESCRIPTION + "A simple wooden bridge spans the stream that marks the edge of +the 100 Acre Wood. For all practical purposes, the world ends here." + :NEIGHBOUR ("Southern woods" "Eastern woods" "Floody place") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Piglet's porch" :DESCRIPTION "TODO" :NEIGHBOUR ("Western woods" "Southern woods" "Piglet's home") :ITEM ("Piglet's sign") :MONSTER NIL :NPC NIL + :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Piglet's home" :DESCRIPTION "TODO" :NEIGHBOUR ("Piglet's porch") :ITEM NIL :MONSTER NIL :NPC ("Piglet") :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Kanga's house" :DESCRIPTION "TODO" :NEIGHBOUR ("Northern woods" "Western woods" "Sandy pit") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" + :FUNCTION "") + #S(PLACE :NAME "Sandy pit" :DESCRIPTION "TODO" :NEIGHBOUR ("Northern woods" "Kanga's house" "Misty forest") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" + :FUNCTION "") + #S(PLACE :NAME "Six pine trees" :DESCRIPTION "TODO" :NEIGHBOUR ("Western woods" "Heffalump trap") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" + :FUNCTION "") + #S(PLACE :NAME "Heffalump trap" :DESCRIPTION "TODO" :NEIGHBOUR ("Six pine trees") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Bee tree" :DESCRIPTION "TODO" :NEIGHBOUR ("Northern woods") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Rabbit's house" :DESCRIPTION "TODO" :NEIGHBOUR ("Northern woods" "Rabbit's friends and relations") :ITEM NIL :MONSTER NIL :NPC ("Rabbit") :SPAWNS NIL + :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Rabbit's friends and relations" :DESCRIPTION "TODO" :NEIGHBOUR ("Northern woods" "Rabbit's house") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL + :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Rapids" :DESCRIPTION "TODO" :NEIGHBOUR ("Northern woods") :ITEM ("North Pole") :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Christopher Robin's house" :DESCRIPTION "TODO" :NEIGHBOUR ("Eastern woods") :ITEM NIL :MONSTER NIL :NPC ("Christopher Robin") :SPAWNS NIL + :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Owl's porch" :DESCRIPTION "TODO" :NEIGHBOUR ("Owl's home" "Eastern woods" "Central woods") :ITEM ("Bellrope") :MONSTER NIL :NPC NIL :SPAWNS NIL + :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Owl's home" :DESCRIPTION "TODO" :NEIGHBOUR ("Owl's porch") :ITEM NIL :MONSTER NIL :NPC ("Owl") :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Floody place" :DESCRIPTION "TODO" :NEIGHBOUR ("Southern woods" "Eeyore's gloomy place" "Bridge") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL + :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Eeyore's gloomy place" :DESCRIPTION "TODO" :NEIGHBOUR ("Southern woods" "Floody place") :ITEM NIL :MONSTER NIL :NPC ("Eeyore") :SPAWNS NIL + :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Woozle hideout" :DESCRIPTION "TODO" :NEIGHBOUR ("Southern woods") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Misty forest" :DESCRIPTION "TODO" :NEIGHBOUR ("Sandy pit") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "")) + :MONSTERS NIL + :NPCS + (#S(NPC :NAME "Piglet" + :DESCRIPTION + "Piglet is Pooh's best friend. He is always cheerful (except +when he's scared) and always ready for a bit of fun." + :SAYS "Oh hello Pooh, good to see you!" :SELLS NIL :QUEST "") + #S(NPC :NAME "Kanga" + :DESCRIPTION + "Kanga is Roo's mother. She is very responsible, but also +very loving and affectionate. Don't disobey her, though!" + :SAYS "Hello Pooh, have you come to play with Roo?" :SELLS NIL :QUEST "") + #S(NPC :NAME "Roo" + :DESCRIPTION + "Roo is Pooh's youngest friend. He loves a good romp, especially +with his friend Tigger." + :SAYS "Hey Pooh, Tigger and I want to play catch. Do you want to join?" :SELLS NIL :QUEST "") + #S(NPC :NAME "Tigger" + :DESCRIPTION + "Tigger is the most hyperactive animal you could imagine. His +constant bouncing can be incredibly irritating, but he +is very loyal and too friendly to really dislike." + :SAYS "Watch out, HERE I COME!!!" :SELLS NIL :QUEST "") + #S(NPC :NAME "Owl" + :DESCRIPTION + "Owl is a wise, old bird. He is ever so clever and uses many +big words - if you can understand him, it's usually worth listening." + :SAYS + "The climatic conditions appear to foreshadow a certain amount of +precipitation tonight, don't you agree?" + :SELLS NIL :QUEST "") + #S(NPC :NAME "Christopher Robin" + :DESCRIPTION + "Christopher Robin is Pooh's oldest friend. He's known him for +as long as he can remember. If you need advice or help, +Christopher Robin is sure to be of service." + :SAYS "Hey Pooh, remember that time we went on an expedition together?" :SELLS NIL :QUEST "") + #S(NPC :NAME "Eeyore" + :DESCRIPTION + "Eeyore the Donkey is always feeling blue. Somehow he got the +idea that nobody likes him. It isn't true, but hearing him +complaining all day isn't particularly cheering." + :SAYS + "I'm sure it's going to rain today. Just when I needed to go and search +for my tail. It always rains when it's most inconvenient. +Oh, hello Pooh. You haven't come to see me for a while! +Well, I suppose you had better things to do." + :SELLS NIL :QUEST "Find the tail") + #S(NPC :NAME "Rabbit" + :DESCRIPTION + "Rabbit is a Very Important Person, because he has ever so +many friends-and-relations. So many in fact, that he never +seems to have time for any of them. He is always on the move, +always busy, and not particularly fond of bears who happen +to stop by his home for teatime." + :SAYS + "Hello Pooh, how are you? Oh, would you look at the time, I really +must be getting a move on. Catch you later!" + :SELLS NIL :QUEST "")) :ITEMS (#S(ITEM :NAME "Hunny" :DESCRIPTION "A jar full to the brim of delicious, golden honey. Hmmmm..." :COST 0 :WEAPON NIL :FUNCTION NIL :ABILITY NIL) #S(ITEM :NAME "Pooh's sign" :DESCRIPTION " -SANDERS ++--------------+ +| Mr SANDERS | ++--------------+ " :COST 0 :WEAPON NIL :FUNCTION NIL :ABILITY NIL) #S(ITEM :NAME "Piglet's sign" :DESCRIPTION " -____________________ -| _ -| TRESPASSERS WILL > -|____________________< +_________________ +| \\_ +| TRESPASSERS W > +|_________________< " + :COST 0 :WEAPON NIL :FUNCTION NIL :ABILITY NIL) + #S(ITEM :NAME "North Pole" + :DESCRIPTION + " +============================= +|| || +|| NORTH POLE || +|| DISCOVERED BY POOH || +|| POOH FOUND IT || +|| || +============================= +" + :COST 0 :WEAPON NIL :FUNCTION NIL :ABILITY NIL) + #S(ITEM :NAME "Bellrope" + :DESCRIPTION + "This rope looks perfectly designed to be pulled. The designer +even tried to give it a natural flair by shaping it like a +tail. Hm, that does look very much like a tail!" :COST 0 :WEAPON NIL :FUNCTION NIL :ABILITY NIL)) - :WEAPONS NIL :QUESTS NIL :GAME-FUNCTIONS NIL) + :WEAPONS NIL + :QUESTS + (#S(QUEST :NAME "Find the tail" + :SAY-BEFORE + "If you're here already, perhaps you could help me find my tail? +I really only feel like half a donkey without it. I really don't +know where to look. Perhaps one of Rabbit's friends-and-relations +has nicked it, or the Heffalump stole it. That would be just like +them, don't you think?" + :SAY-AFTER + "Well, would you have a look, you actually found it. I suppose I +ought to give you something for your troubles, though I really +don't have much to give. But here, take this pot of honey." + :PROOF-ITEM ("Bellrope") :REWARD-ITEM ("Hunny") :MONEY 0 :EXPERIENCE 10)) + :GAME-FUNCTIONS NIL) diff --git a/ATL/Pooh/place_list.txt b/ATL/Pooh/place_list.txt new file mode 100644 index 0000000..7002f3a --- /dev/null +++ b/ATL/Pooh/place_list.txt @@ -0,0 +1,30 @@ +IMPLEMENTED + +Pooh's home +Pooh's porch +Pooh's branch +Western woods +Central woods +Northern woods +Southern woods +Eastern woods +Deep forest +Hill +Bridge +Piglet's porch +Piglet's home +Kanga's house +Sandy pit +Six pine trees +Heffalump trap +Bee tree +Rabbit's house +Rabbit's friends and relations +Rapids +Christopher Robin's house +Owl's porch +Owl's home +Eeyore's gloomy place +Floody place +Woozle hideout +Misty forest diff --git a/ATL/Pooh/woods.atl b/ATL/Pooh/woods.atl index 66913a9..324b01a 100644 --- a/ATL/Pooh/woods.atl +++ b/ATL/Pooh/woods.atl @@ -74,7 +74,7 @@ neighbour "Western woods" neighbour "Piglet's porch" neighbour "Woozle hideout" - neighbour "Eeeyore's gloomy place" + neighbour "Eeyore's gloomy place" neighbour "Floody place" neighbour "Bridge" diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index afa9bf2..d78e670 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -73,13 +73,12 @@ (char-name (nth char-nr (list-world-objects 'player)))) (set-main-player char-name) (play-game)))) - ;;FIXME Present the player with a choice of saved games - (1 ;(choose-number-option *games*) ;;XXXXXX - (format t "~&What game file do you want to load?") - (input-string game) - (setf game (concatenate 'string "../saves/" game)) - (load-game game) - (play-game)) + (1 (format t "~&What game file do you want to load?") + (let ((game (choose-option (mapcar #'pathname-name + (directory "../saves/*"))))) + (setf game (concatenate 'string "../saves/" game)) + (load-game game) + (play-game))) (2 (world-creator)) (3 (development)) ;; XXX Remove this (4 (print-version) diff --git a/lisp/ui.lisp b/lisp/ui.lisp index 3c8b8ba..2c3e562 100644 --- a/lisp/ui.lisp +++ b/lisp/ui.lisp @@ -59,7 +59,7 @@ ;; A list of all in-game commands. Each new command must be registered here. (defvar *commands* - '(help player goto pickup + '(help player goto take drop talk trade equip attack spell look save clear)) @@ -78,7 +78,7 @@ goto - Go to a neighbouring location look - Show a description of this entity talk [to] - Talk to an NPC -pickup - Pick up an item lying around +take - Pick up an item lying around drop - Drop the item equip - Equip this item as your weapon attack - Fight a monster @@ -132,7 +132,7 @@ (cond (game-file (setf last-save game-file)) ((and last-save (not game-file)) (setf game-file last-save)) ((not (or last-save game-file)) - (format t "~&Where do you want to save the game?") + (format t "~&What do you want to call the save file?") (input-string game-file) (setf game-file (concatenate 'string "../saves/" game-file)) (setf last-save game-file))) @@ -263,11 +263,11 @@ (if (y-or-n-p "Buy something else?") (trade player npc) (clear player))) -(defun pickup (player &optional item-name) +(defun take (player &optional item-name) "The player picks up an item" (unless item-name (format t "~&Please specify an item to pick up!") - (return-from pickup)) + (return-from take)) (let ((place (get-game-object 'place (player-place player))) (item (get-game-object 'item item-name))) (if (member item-name (place-item place) :test #'equalp) diff --git a/saves/pooh1 b/saves/pooh1 index 49e38ee..c1a6ef3 100644 --- a/saves/pooh1 +++ b/saves/pooh1 @@ -1,15 +1,17 @@ (0 2 1) -#S(WORLD :NAME "100 Acre Wood" +#S(WORLD :NAME "100 Acre Wood" :MAIN-PLAYER "Winnie the Pooh" :PLAYERS (#S(PLAYER :NAME "Winnie the Pooh" :DESCRIPTION "A small but very lovable bear of very little brain." :STRENGTH 0 :DEXTERITY 0 :CONSTITUTION 0 :INTELLIGENCE 0 - :MONEY 0 :ABILITY NIL :ITEM NIL :WEAPON "" :ARMOUR-CLASS 0 :PLACE "Western woods" :EXPERIENCE 2 :LEVEL 0 :MAX-HEALTH 50 :HEALTH 50)) + :MONEY 0 :ABILITY NIL :ITEM ("Hunny" "Hunny") :WEAPON "" :ARMOUR-CLASS 0 :PLACE "Bridge" :EXPERIENCE 7 :LEVEL 0 :MAX-HEALTH 50 :HEALTH 50) + #S(PLAYER :NAME "Christopher Robin" :DESCRIPTION "Pooh's best friend." :STRENGTH 0 :DEXTERITY 0 :CONSTITUTION 0 :INTELLIGENCE 0 :MONEY 0 :ABILITY NIL :ITEM NIL + :WEAPON "" :ARMOUR-CLASS 0 :PLACE "Western woods" :EXPERIENCE 0 :LEVEL 0 :MAX-HEALTH 50 :HEALTH 50)) :PLACES (#S(PLACE :NAME "Pooh's home" :DESCRIPTION "Welcome home! This is what you call comfort: your bed, your chair, your table. Not to forget your larder, filled with delicious honey..." - :NEIGHBOUR ("Pooh's porch" "Pooh's branch") :ITEM ("Hunny") :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + :NEIGHBOUR ("Pooh's porch" "Pooh's branch") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") #S(PLACE :NAME "Pooh's porch" :DESCRIPTION "You are standing in front of Pooh's home. Here he lives under @@ -22,30 +24,183 @@ "This is a thick branch above Pooh's home. Once, on a very blustery day, Pooh had to escape to up here. Since then, he keeps an emergency ration of honey handy." - :NEIGHBOUR ("Pooh's home" "Pooh's porch") :ITEM ("Hunny") :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + :NEIGHBOUR ("Pooh's home" "Pooh's porch") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") #S(PLACE :NAME "Western woods" :DESCRIPTION "This is the western part of the 100 Acre Wood. As you would expect in a wood, it is full of trees. Here, however, there are not quite that many - mainly young birches." - :NEIGHBOUR ("Pooh's porch" "Central woods" "Northern woods" "Southern woods" "Piglet's porch") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" - :FUNCTION "")) - :MONSTERS NIL :NPCS NIL + :NEIGHBOUR ("Pooh's porch" "Central woods" "Northern woods" "Southern woods" "Piglet's porch" "Six pine trees" "Kanga's house") :ITEM NIL :MONSTER NIL :NPC NIL + :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Central woods" + :DESCRIPTION + "This is the oldest part of the 100 Acre Wood. The oaks you see +around you are truly ancient, hundreds of years old. Even Owl +can't remember when they were planted. It's very peaceful here." + :NEIGHBOUR ("Northern woods" "Eastern woods" "Southern woods" "Western woods" "Owl's porch" "Deep forest" "Hill") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL + :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Northern woods" :DESCRIPTION "TODO" + :NEIGHBOUR ("Central woods" "Eastern woods" "Western woods" "Kanga's house" "Sandy pit" "Bee tree" "Rabbit's house" "Rabbit's friends and relations" "Rapids") + :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Southern woods" :DESCRIPTION "TODO" + :NEIGHBOUR ("Central woods" "Eastern woods" "Western woods" "Piglet's porch" "Woozle hideout" "Eeyore's gloomy place" "Floody place" "Bridge") :ITEM NIL + :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Eastern woods" :DESCRIPTION "TODO" :NEIGHBOUR ("Central woods" "Northern woods" "Southern woods" "Christopher Robin's porch" "Owl's porch" "Bridge") + :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Deep forest" + :DESCRIPTION + "Thick firs and spruces grow here, shutting out the light with +their branches. Broken branches lie about on the ground and +cob webs span the spaces between the trees. Watch your steps, +you never know what you may meet in here. And don't get lost!" + :NEIGHBOUR ("Deep forest" "Central woods") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Hill" + :DESCRIPTION + "From this hill you can see the entire 100 Acre Wood and +beyond. You can see Christopher Robin's house, Pooh's house, +the tree with the bees' nest, Owl's home, Kanga's and Roo's +home and the stream that marks the edge of the woods." + :NEIGHBOUR ("Central woods") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Bridge" + :DESCRIPTION + "A simple wooden bridge spans the stream that marks the edge of +the 100 Acre Wood. For all practical purposes, the world ends here." + :NEIGHBOUR ("Southern woods" "Eastern woods" "Floody place") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Piglet's porch" :DESCRIPTION "TODO" :NEIGHBOUR ("Western woods" "Southern woods" "Piglet's home") :ITEM ("Piglet's sign") :MONSTER NIL :NPC NIL + :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Piglet's home" :DESCRIPTION "TODO" :NEIGHBOUR ("Piglet's porch") :ITEM NIL :MONSTER NIL :NPC ("Piglet") :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Kanga's house" :DESCRIPTION "TODO" :NEIGHBOUR ("Northern woods" "Western woods" "Sandy pit") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" + :FUNCTION "") + #S(PLACE :NAME "Sandy pit" :DESCRIPTION "TODO" :NEIGHBOUR ("Northern woods" "Kanga's house" "Misty forest") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" + :FUNCTION "") + #S(PLACE :NAME "Six pine trees" :DESCRIPTION "TODO" :NEIGHBOUR ("Western woods" "Heffalump trap") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" + :FUNCTION "") + #S(PLACE :NAME "Heffalump trap" :DESCRIPTION "TODO" :NEIGHBOUR ("Six pine trees") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Bee tree" :DESCRIPTION "TODO" :NEIGHBOUR ("Northern woods") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Rabbit's house" :DESCRIPTION "TODO" :NEIGHBOUR ("Northern woods" "Rabbit's friends and relations") :ITEM NIL :MONSTER NIL :NPC ("Rabbit") :SPAWNS NIL + :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Rabbit's friends and relations" :DESCRIPTION "TODO" :NEIGHBOUR ("Northern woods" "Rabbit's house") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL + :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Rapids" :DESCRIPTION "TODO" :NEIGHBOUR ("Northern woods") :ITEM ("North Pole") :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Christopher Robin's house" :DESCRIPTION "TODO" :NEIGHBOUR ("Eastern woods") :ITEM NIL :MONSTER NIL :NPC ("Christopher Robin") :SPAWNS NIL + :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Owl's porch" :DESCRIPTION "TODO" :NEIGHBOUR ("Owl's home" "Eastern woods" "Central woods") :ITEM ("Bellrope") :MONSTER NIL :NPC NIL :SPAWNS NIL + :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Owl's home" :DESCRIPTION "TODO" :NEIGHBOUR ("Owl's porch") :ITEM NIL :MONSTER NIL :NPC ("Owl") :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Floody place" :DESCRIPTION "TODO" :NEIGHBOUR ("Southern woods" "Eeyore's gloomy place" "Bridge") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL + :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Eeyore's gloomy place" :DESCRIPTION "TODO" :NEIGHBOUR ("Southern woods" "Floody place") :ITEM NIL :MONSTER NIL :NPC ("Eeyore") :SPAWNS NIL + :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Woozle hideout" :DESCRIPTION "TODO" :NEIGHBOUR ("Southern woods") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") + #S(PLACE :NAME "Misty forest" :DESCRIPTION "TODO" :NEIGHBOUR ("Sandy pit") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "")) + :MONSTERS NIL + :NPCS + (#S(NPC :NAME "Piglet" + :DESCRIPTION + "Piglet is Pooh's best friend. He is always cheerful (except +when he's scared) and always ready for a bit of fun." + :SAYS "Oh hello Pooh, good to see you!" :SELLS NIL :QUEST "") + #S(NPC :NAME "Kanga" + :DESCRIPTION + "Kanga is Roo's mother. She is very responsible, but also +very loving and affectionate. Don't disobey her, though!" + :SAYS "Hello Pooh, have you come to play with Roo?" :SELLS NIL :QUEST "") + #S(NPC :NAME "Roo" + :DESCRIPTION + "Roo is Pooh's youngest friend. He loves a good romp, especially +with his friend Tigger." + :SAYS "Hey Pooh, Tigger and I want to play catch. Do you want to join?" :SELLS NIL :QUEST "") + #S(NPC :NAME "Tigger" + :DESCRIPTION + "Tigger is the most hyperactive animal you could imagine. His +constant bouncing can be incredibly irritating, but he +is very loyal and too friendly to really dislike." + :SAYS "Watch out, HERE I COME!!!" :SELLS NIL :QUEST "") + #S(NPC :NAME "Owl" + :DESCRIPTION + "Owl is a wise, old bird. He is ever so clever and uses many +big words - if you can understand him, it's usually worth listening." + :SAYS + "The climatic conditions appear to foreshadow a certain amount of +precipitation tonight, don't you agree?" + :SELLS NIL :QUEST "") + #S(NPC :NAME "Christopher Robin" + :DESCRIPTION + "Christopher Robin is Pooh's oldest friend. He's known him for +as long as he can remember. If you need advice or help, +Christopher Robin is sure to be of service." + :SAYS "Hey Pooh, remember that time we went on an expedition together?" :SELLS NIL :QUEST "") + #S(NPC :NAME "Eeyore" + :DESCRIPTION + "Eeyore the Donkey is always feeling blue. Somehow he got the +idea that nobody likes him. It isn't true, but hearing him +complaining all day isn't particularly cheering." + :SAYS + "I'm sure it's going to rain today. Just when I needed to go and search +for my tail. It always rains when it's most inconvenient. +Oh, hello Pooh. You haven't come to see me for a while! +Well, I suppose you had better things to do." + :SELLS NIL :QUEST "Find the tail") + #S(NPC :NAME "Rabbit" + :DESCRIPTION + "Rabbit is a Very Important Person, because he has ever so +many friends-and-relations. So many in fact, that he never +seems to have time for any of them. He is always on the move, +always busy, and not particularly fond of bears who happen +to stop by his home for teatime." + :SAYS + "Hello Pooh, how are you? Oh, would you look at the time, I really +must be getting a move on. Catch you later!" + :SELLS NIL :QUEST "")) :ITEMS (#S(ITEM :NAME "Hunny" :DESCRIPTION "A jar full to the brim of delicious, golden honey. Hmmmm..." :COST 0 :WEAPON NIL :FUNCTION NIL :ABILITY NIL) #S(ITEM :NAME "Pooh's sign" :DESCRIPTION " -SANDERS ++--------------+ +| Mr SANDERS | ++--------------+ " :COST 0 :WEAPON NIL :FUNCTION NIL :ABILITY NIL) #S(ITEM :NAME "Piglet's sign" :DESCRIPTION " -____________________ -| _ -| TRESPASSERS WILL > -|____________________< +_________________ +| \\_ +| TRESPASSERS W > +|_________________< " + :COST 0 :WEAPON NIL :FUNCTION NIL :ABILITY NIL) + #S(ITEM :NAME "North Pole" + :DESCRIPTION + " +============================= +|| || +|| NORTH POLE || +|| DISCOVERED BY POOH || +|| POOH FOUND IT || +|| || +============================= +" + :COST 0 :WEAPON NIL :FUNCTION NIL :ABILITY NIL) + #S(ITEM :NAME "Bellrope" + :DESCRIPTION + "This rope looks perfectly designed to be pulled. The designer +even tried to give it a natural flair by shaping it like a +tail. Hm, that does look very much like a tail!" :COST 0 :WEAPON NIL :FUNCTION NIL :ABILITY NIL)) - :WEAPONS NIL :QUESTS NIL :GAME-FUNCTIONS NIL) + :WEAPONS NIL + :QUESTS + (#S(QUEST :NAME "Find the tail" + :SAY-BEFORE + "If you're here already, perhaps you could help me find my tail? +I really only feel like half a donkey without it. I really don't +know where to look. Perhaps one of Rabbit's friends-and-relations +has nicked it, or the Heffalump stole it. That would be just like +them, don't you think?" + :SAY-AFTER + "Well, would you have a look, you actually found it. I suppose I +ought to give you something for your troubles, though I really +don't have much to give. But here, take this pot of honey." + :PROOF-ITEM ("Bellrope") :REWARD-ITEM ("Hunny") :MONEY 0 :EXPERIENCE 10)) + :GAME-FUNCTIONS NIL) diff --git a/saves/pooh2 b/saves/pooh2 deleted file mode 100644 index 168c39f..0000000 --- a/saves/pooh2 +++ /dev/null @@ -1,53 +0,0 @@ -(0 2 1) -#S(WORLD :NAME "100 Acre Wood" :MAIN-PLAYER "Christopher Robin" - :PLAYERS - (#S(PLAYER :NAME "Winnie the Pooh" :DESCRIPTION "A small but very lovable bear of very little brain." :STRENGTH 0 :DEXTERITY 0 :CONSTITUTION 0 :INTELLIGENCE 0 - :MONEY 0 :ABILITY NIL :ITEM NIL :WEAPON "" :ARMOUR-CLASS 0 :PLACE "Pooh's home" :EXPERIENCE 0 :LEVEL 0 :MAX-HEALTH 50 :HEALTH 50) - #S(PLAYER :NAME "Christopher Robin" :DESCRIPTION "Pooh's best friend." :STRENGTH 0 :DEXTERITY 0 :CONSTITUTION 0 :INTELLIGENCE 0 :MONEY 0 :ABILITY NIL :ITEM NIL - :WEAPON "" :ARMOUR-CLASS 0 :PLACE "Pooh's porch" :EXPERIENCE 1 :LEVEL 0 :MAX-HEALTH 50 :HEALTH 50)) - :PLACES - (#S(PLACE :NAME "Pooh's home" - :DESCRIPTION - "Welcome home! This is what you call comfort: your bed, your -chair, your table. Not to forget your larder, filled with -delicious honey..." - :NEIGHBOUR ("Pooh's porch" "Pooh's branch") :ITEM ("Hunny") :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") - #S(PLACE :NAME "Pooh's porch" - :DESCRIPTION - "You are standing in front of Pooh's home. Here he lives under -the name 'Sanders', as anyone can see by the old sign planted -beside the door. A comfy-looking bench stands in the sun, inviting -you to a well-earned rest." - :NEIGHBOUR ("Pooh's home" "Western woods") :ITEM ("Pooh's sign") :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") - #S(PLACE :NAME "Pooh's branch" - :DESCRIPTION - "This is a thick branch above Pooh's home. Once, on a very -blustery day, Pooh had to escape to up here. Since then, he -keeps an emergency ration of honey handy." - :NEIGHBOUR ("Pooh's home" "Pooh's porch") :ITEM ("Hunny") :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" :FUNCTION "") - #S(PLACE :NAME "Western woods" - :DESCRIPTION - "This is the western part of the 100 Acre Wood. As you would -expect in a wood, it is full of trees. Here, however, there are -not quite that many - mainly young birches." - :NEIGHBOUR ("Pooh's porch" "Central woods" "Northern woods" "Southern woods" "Piglet's porch") :ITEM NIL :MONSTER NIL :NPC NIL :SPAWNS NIL :REQUIRES "" - :FUNCTION "")) - :MONSTERS NIL :NPCS NIL - :ITEMS - (#S(ITEM :NAME "Hunny" :DESCRIPTION "A jar full to the brim of delicious, golden honey. Hmmmm..." :COST 0 :WEAPON NIL :FUNCTION NIL :ABILITY NIL) - #S(ITEM :NAME "Pooh's sign" - :DESCRIPTION - " -SANDERS -" - :COST 0 :WEAPON NIL :FUNCTION NIL :ABILITY NIL) - #S(ITEM :NAME "Piglet's sign" - :DESCRIPTION - " -____________________ -| \\_ -| TRESPASSERS WILL > -|____________________< -" - :COST 0 :WEAPON NIL :FUNCTION NIL :ABILITY NIL)) - :WEAPONS NIL :QUESTS NIL :GAME-FUNCTIONS NIL)