diff --git a/ATL/Pooh/dialogue/woodland-map.txt b/ATL/Pooh/dialogue/woodland-map.txt index 111727c..638c894 100644 --- a/ATL/Pooh/dialogue/woodland-map.txt +++ b/ATL/Pooh/dialogue/woodland-map.txt @@ -1,8 +1,8 @@ ..............................[ 100 ACRE WOODS ].............................. : : -: Misty forest Rapids : -: : -: Bee tree : +: Misty forest : +: Bee tree : +: Rapids : : Sandy pit : : : : Rabbit : diff --git a/ATL/Pooh/dialogue/woodland-map.txt b/ATL/Pooh/dialogue/woodland-map.txt index 111727c..638c894 100644 --- a/ATL/Pooh/dialogue/woodland-map.txt +++ b/ATL/Pooh/dialogue/woodland-map.txt @@ -1,8 +1,8 @@ ..............................[ 100 ACRE WOODS ].............................. : : -: Misty forest Rapids : -: : -: Bee tree : +: Misty forest : +: Bee tree : +: Rapids : : Sandy pit : : : : Rabbit : diff --git a/ATL/Pooh/pooh-extensions.lisp b/ATL/Pooh/pooh-extensions.lisp index 61cd8da..5618a2c 100644 --- a/ATL/Pooh/pooh-extensions.lisp +++ b/ATL/Pooh/pooh-extensions.lisp @@ -215,7 +215,7 @@ (defun leave-bee-tree (player) "Make sure you've climbed down before leaving the bee tree." - (when climbed (climb-down player) (pause 4)))) + (when climbed (climb-down player) (sleep 4)))) (defun climb-rock (player &optional arg) @@ -413,6 +413,7 @@ "A.A. Milne gives clues to the player in exchange for berries." (if (member "berries" (player-item player) :test #'equalp) (when (y-or-n-p "~%Give Mr Milne some berries?") + (remove-object-attribute player 'item "berries") (format t "~&~%MR MILNE:~%Thank you very much, Pooh!") (format t "~&Here's a clue for you in return:") (format t "~&~A" (random-elt (load-text-file "../ATL/Pooh/dialogue/clues.txt")))) diff --git a/ATL/Pooh/dialogue/woodland-map.txt b/ATL/Pooh/dialogue/woodland-map.txt index 111727c..638c894 100644 --- a/ATL/Pooh/dialogue/woodland-map.txt +++ b/ATL/Pooh/dialogue/woodland-map.txt @@ -1,8 +1,8 @@ ..............................[ 100 ACRE WOODS ].............................. : : -: Misty forest Rapids : -: : -: Bee tree : +: Misty forest : +: Bee tree : +: Rapids : : Sandy pit : : : : Rabbit : diff --git a/ATL/Pooh/pooh-extensions.lisp b/ATL/Pooh/pooh-extensions.lisp index 61cd8da..5618a2c 100644 --- a/ATL/Pooh/pooh-extensions.lisp +++ b/ATL/Pooh/pooh-extensions.lisp @@ -215,7 +215,7 @@ (defun leave-bee-tree (player) "Make sure you've climbed down before leaving the bee tree." - (when climbed (climb-down player) (pause 4)))) + (when climbed (climb-down player) (sleep 4)))) (defun climb-rock (player &optional arg) @@ -413,6 +413,7 @@ "A.A. Milne gives clues to the player in exchange for berries." (if (member "berries" (player-item player) :test #'equalp) (when (y-or-n-p "~%Give Mr Milne some berries?") + (remove-object-attribute player 'item "berries") (format t "~&~%MR MILNE:~%Thank you very much, Pooh!") (format t "~&Here's a clue for you in return:") (format t "~&~A" (random-elt (load-text-file "../ATL/Pooh/dialogue/clues.txt")))) diff --git a/ATL/Pooh/woods.atl b/ATL/Pooh/woods.atl index 838ce76..f070db6 100644 --- a/ATL/Pooh/woods.atl +++ b/ATL/Pooh/woods.atl @@ -83,7 +83,6 @@ neighbour "Sandy pit" neighbour "Bee tree" neighbour "Rabbit's house" - neighbour "Rabbit's friends and relations" neighbour "Rapids" neighbour "Stream" npc "Tigger" @@ -112,6 +111,7 @@ neighbour "Central woods" neighbour "Northern woods" neighbour "Southern woods" + neighbour "Rabbit's friends and relations" neighbour "Christopher Robin's house" neighbour "Owl's porch" neighbour "Bridge" @@ -276,7 +276,7 @@ friends-and-relations live. Basically, Rabbit knows very hedgehog, beetle and jackdaw here. Unfortunately, most of them are so unimportant that nobody else does." - neighbour "Northern woods" + neighbour "Eastern woods" neighbour "Rabbit's house" npc "Small" npc "Henry Rush" diff --git a/ATL/Pooh/dialogue/woodland-map.txt b/ATL/Pooh/dialogue/woodland-map.txt index 111727c..638c894 100644 --- a/ATL/Pooh/dialogue/woodland-map.txt +++ b/ATL/Pooh/dialogue/woodland-map.txt @@ -1,8 +1,8 @@ ..............................[ 100 ACRE WOODS ].............................. : : -: Misty forest Rapids : -: : -: Bee tree : +: Misty forest : +: Bee tree : +: Rapids : : Sandy pit : : : : Rabbit : diff --git a/ATL/Pooh/pooh-extensions.lisp b/ATL/Pooh/pooh-extensions.lisp index 61cd8da..5618a2c 100644 --- a/ATL/Pooh/pooh-extensions.lisp +++ b/ATL/Pooh/pooh-extensions.lisp @@ -215,7 +215,7 @@ (defun leave-bee-tree (player) "Make sure you've climbed down before leaving the bee tree." - (when climbed (climb-down player) (pause 4)))) + (when climbed (climb-down player) (sleep 4)))) (defun climb-rock (player &optional arg) @@ -413,6 +413,7 @@ "A.A. Milne gives clues to the player in exchange for berries." (if (member "berries" (player-item player) :test #'equalp) (when (y-or-n-p "~%Give Mr Milne some berries?") + (remove-object-attribute player 'item "berries") (format t "~&~%MR MILNE:~%Thank you very much, Pooh!") (format t "~&Here's a clue for you in return:") (format t "~&~A" (random-elt (load-text-file "../ATL/Pooh/dialogue/clues.txt")))) diff --git a/ATL/Pooh/woods.atl b/ATL/Pooh/woods.atl index 838ce76..f070db6 100644 --- a/ATL/Pooh/woods.atl +++ b/ATL/Pooh/woods.atl @@ -83,7 +83,6 @@ neighbour "Sandy pit" neighbour "Bee tree" neighbour "Rabbit's house" - neighbour "Rabbit's friends and relations" neighbour "Rapids" neighbour "Stream" npc "Tigger" @@ -112,6 +111,7 @@ neighbour "Central woods" neighbour "Northern woods" neighbour "Southern woods" + neighbour "Rabbit's friends and relations" neighbour "Christopher Robin's house" neighbour "Owl's porch" neighbour "Bridge" @@ -276,7 +276,7 @@ friends-and-relations live. Basically, Rabbit knows very hedgehog, beetle and jackdaw here. Unfortunately, most of them are so unimportant that nobody else does." - neighbour "Northern woods" + neighbour "Eastern woods" neighbour "Rabbit's house" npc "Small" npc "Henry Rush" diff --git a/doc/PLAYING b/doc/PLAYING index a8ead8a..b62e857 100644 --- a/doc/PLAYING +++ b/doc/PLAYING @@ -23,15 +23,17 @@ and pressing ENTER. (Commands to the computer must always be terminated by pressing ENTER.) -The first option, "Start a new game", will first ask you for your name. (This is -needed to save the game.) It then drops you into a submenu in which you can -choose which game world you want to play. As of Atlantis 0.3, only the "Winnie -the Pooh" world is fully functional. (You can try the others, but they are far -from complete.) +The first option, "Start playing", will first ask you for your name. (This is +needed to save the game.) If you've played before, you will then have the choice +of whether you want to continue where you left off, or if you want to start a +new game. If this is your first time, you'll be taken straight to the setup +for new games. Here, you can choose which game world you want to play. (At the +moment, only the "Winnie the Pooh" world is fully functional. You may peruse +the other one, but it's far from complete.) -The second option, "Load a saved game", is for players who have already started -a game in one of the worlds. (Your game progress is saved automatically.) Again, -you will be presented with a submenu that lists all currently saved games. +Going back to the main menu, the second option prints out a list of players on +this computer. (Apart from being interesting, this can be useful if you've +forgotten your player name...) The third option displays this help text; the fourth option shows a copyright notice and the Atlantis software license. The fifth option quits the game. @@ -92,15 +94,15 @@ look - This is the most versatile command in the game. With it, you can inspect any item, NPC or monster (e.g. look cook). You can also bring up information about yourself with "look me" or about your current location - with "look here". Finally, "look around" is an alias for "seek". + with "look here". Finally, "look around" is an alias for "search". goto - The second most important command in Atlantis. With "goto" you can change your location to a neighbouring place. Enter the name of the place you - wish to go to after the actual command (e.g. goto Kitchen). + wish to go to after the actual command (e.g. goto Kitchen). Note that + there is no space in the word: it's "goto", not "go to". search - Some rooms contain hidden items. To find them, you first need to search - the room. When you do so, you have an 80% chance of finding a hidden - object. Don't forget to do this once in a while! + the room. Don't forget to do this regularly! take - This command is used to pick up an item. Most items in the game can be picked up, many are useful. @@ -125,8 +127,8 @@ attack - Some places contain monsters. (In Atlantis, a "monster" is any hostile non-playing character.) While some monsters attack you first, you also have the choice of attacking them. After all, there may be rich - treasure in store for the brave adventurer... (Make sure you have a - weapon equipped, though!) When you attack a monster, or vice versa, + treasure in store for the brave adventurer... (Make sure you are + holding a weapon, though!) When you attack a monster, or vice versa, the computer calculates the amount of damage you both take based on your various strengths and weapons. Make sure that your health doesn't drop too low! If it ever reaches 0, you're dead... (You can check up @@ -149,4 +151,4 @@ Daniel Vedder -Last modified 20/12/2017 +Last modified 07/01/2018 diff --git a/ATL/Pooh/dialogue/woodland-map.txt b/ATL/Pooh/dialogue/woodland-map.txt index 111727c..638c894 100644 --- a/ATL/Pooh/dialogue/woodland-map.txt +++ b/ATL/Pooh/dialogue/woodland-map.txt @@ -1,8 +1,8 @@ ..............................[ 100 ACRE WOODS ].............................. : : -: Misty forest Rapids : -: : -: Bee tree : +: Misty forest : +: Bee tree : +: Rapids : : Sandy pit : : : : Rabbit : diff --git a/ATL/Pooh/pooh-extensions.lisp b/ATL/Pooh/pooh-extensions.lisp index 61cd8da..5618a2c 100644 --- a/ATL/Pooh/pooh-extensions.lisp +++ b/ATL/Pooh/pooh-extensions.lisp @@ -215,7 +215,7 @@ (defun leave-bee-tree (player) "Make sure you've climbed down before leaving the bee tree." - (when climbed (climb-down player) (pause 4)))) + (when climbed (climb-down player) (sleep 4)))) (defun climb-rock (player &optional arg) @@ -413,6 +413,7 @@ "A.A. Milne gives clues to the player in exchange for berries." (if (member "berries" (player-item player) :test #'equalp) (when (y-or-n-p "~%Give Mr Milne some berries?") + (remove-object-attribute player 'item "berries") (format t "~&~%MR MILNE:~%Thank you very much, Pooh!") (format t "~&Here's a clue for you in return:") (format t "~&~A" (random-elt (load-text-file "../ATL/Pooh/dialogue/clues.txt")))) diff --git a/ATL/Pooh/woods.atl b/ATL/Pooh/woods.atl index 838ce76..f070db6 100644 --- a/ATL/Pooh/woods.atl +++ b/ATL/Pooh/woods.atl @@ -83,7 +83,6 @@ neighbour "Sandy pit" neighbour "Bee tree" neighbour "Rabbit's house" - neighbour "Rabbit's friends and relations" neighbour "Rapids" neighbour "Stream" npc "Tigger" @@ -112,6 +111,7 @@ neighbour "Central woods" neighbour "Northern woods" neighbour "Southern woods" + neighbour "Rabbit's friends and relations" neighbour "Christopher Robin's house" neighbour "Owl's porch" neighbour "Bridge" @@ -276,7 +276,7 @@ friends-and-relations live. Basically, Rabbit knows very hedgehog, beetle and jackdaw here. Unfortunately, most of them are so unimportant that nobody else does." - neighbour "Northern woods" + neighbour "Eastern woods" neighbour "Rabbit's house" npc "Small" npc "Henry Rush" diff --git a/doc/PLAYING b/doc/PLAYING index a8ead8a..b62e857 100644 --- a/doc/PLAYING +++ b/doc/PLAYING @@ -23,15 +23,17 @@ and pressing ENTER. (Commands to the computer must always be terminated by pressing ENTER.) -The first option, "Start a new game", will first ask you for your name. (This is -needed to save the game.) It then drops you into a submenu in which you can -choose which game world you want to play. As of Atlantis 0.3, only the "Winnie -the Pooh" world is fully functional. (You can try the others, but they are far -from complete.) +The first option, "Start playing", will first ask you for your name. (This is +needed to save the game.) If you've played before, you will then have the choice +of whether you want to continue where you left off, or if you want to start a +new game. If this is your first time, you'll be taken straight to the setup +for new games. Here, you can choose which game world you want to play. (At the +moment, only the "Winnie the Pooh" world is fully functional. You may peruse +the other one, but it's far from complete.) -The second option, "Load a saved game", is for players who have already started -a game in one of the worlds. (Your game progress is saved automatically.) Again, -you will be presented with a submenu that lists all currently saved games. +Going back to the main menu, the second option prints out a list of players on +this computer. (Apart from being interesting, this can be useful if you've +forgotten your player name...) The third option displays this help text; the fourth option shows a copyright notice and the Atlantis software license. The fifth option quits the game. @@ -92,15 +94,15 @@ look - This is the most versatile command in the game. With it, you can inspect any item, NPC or monster (e.g. look cook). You can also bring up information about yourself with "look me" or about your current location - with "look here". Finally, "look around" is an alias for "seek". + with "look here". Finally, "look around" is an alias for "search". goto - The second most important command in Atlantis. With "goto" you can change your location to a neighbouring place. Enter the name of the place you - wish to go to after the actual command (e.g. goto Kitchen). + wish to go to after the actual command (e.g. goto Kitchen). Note that + there is no space in the word: it's "goto", not "go to". search - Some rooms contain hidden items. To find them, you first need to search - the room. When you do so, you have an 80% chance of finding a hidden - object. Don't forget to do this once in a while! + the room. Don't forget to do this regularly! take - This command is used to pick up an item. Most items in the game can be picked up, many are useful. @@ -125,8 +127,8 @@ attack - Some places contain monsters. (In Atlantis, a "monster" is any hostile non-playing character.) While some monsters attack you first, you also have the choice of attacking them. After all, there may be rich - treasure in store for the brave adventurer... (Make sure you have a - weapon equipped, though!) When you attack a monster, or vice versa, + treasure in store for the brave adventurer... (Make sure you are + holding a weapon, though!) When you attack a monster, or vice versa, the computer calculates the amount of damage you both take based on your various strengths and weapons. Make sure that your health doesn't drop too low! If it ever reaches 0, you're dead... (You can check up @@ -149,4 +151,4 @@ Daniel Vedder -Last modified 20/12/2017 +Last modified 07/01/2018 diff --git a/doc/TODO b/doc/TODO index 0193428..7a30a5b 100644 --- a/doc/TODO +++ b/doc/TODO @@ -1,12 +1,8 @@ ATLANTIS TODO - -* complete walk-through LISP * fix (string-from-list) bug -* update manual to reflect new main menu -* remove find probability? +* skip "bad command" after denying "quit" ATL -* make instructions more explicit -* do something with the Six Pine Trees? +* diff --git a/ATL/Pooh/dialogue/woodland-map.txt b/ATL/Pooh/dialogue/woodland-map.txt index 111727c..638c894 100644 --- a/ATL/Pooh/dialogue/woodland-map.txt +++ b/ATL/Pooh/dialogue/woodland-map.txt @@ -1,8 +1,8 @@ ..............................[ 100 ACRE WOODS ].............................. : : -: Misty forest Rapids : -: : -: Bee tree : +: Misty forest : +: Bee tree : +: Rapids : : Sandy pit : : : : Rabbit : diff --git a/ATL/Pooh/pooh-extensions.lisp b/ATL/Pooh/pooh-extensions.lisp index 61cd8da..5618a2c 100644 --- a/ATL/Pooh/pooh-extensions.lisp +++ b/ATL/Pooh/pooh-extensions.lisp @@ -215,7 +215,7 @@ (defun leave-bee-tree (player) "Make sure you've climbed down before leaving the bee tree." - (when climbed (climb-down player) (pause 4)))) + (when climbed (climb-down player) (sleep 4)))) (defun climb-rock (player &optional arg) @@ -413,6 +413,7 @@ "A.A. Milne gives clues to the player in exchange for berries." (if (member "berries" (player-item player) :test #'equalp) (when (y-or-n-p "~%Give Mr Milne some berries?") + (remove-object-attribute player 'item "berries") (format t "~&~%MR MILNE:~%Thank you very much, Pooh!") (format t "~&Here's a clue for you in return:") (format t "~&~A" (random-elt (load-text-file "../ATL/Pooh/dialogue/clues.txt")))) diff --git a/ATL/Pooh/woods.atl b/ATL/Pooh/woods.atl index 838ce76..f070db6 100644 --- a/ATL/Pooh/woods.atl +++ b/ATL/Pooh/woods.atl @@ -83,7 +83,6 @@ neighbour "Sandy pit" neighbour "Bee tree" neighbour "Rabbit's house" - neighbour "Rabbit's friends and relations" neighbour "Rapids" neighbour "Stream" npc "Tigger" @@ -112,6 +111,7 @@ neighbour "Central woods" neighbour "Northern woods" neighbour "Southern woods" + neighbour "Rabbit's friends and relations" neighbour "Christopher Robin's house" neighbour "Owl's porch" neighbour "Bridge" @@ -276,7 +276,7 @@ friends-and-relations live. Basically, Rabbit knows very hedgehog, beetle and jackdaw here. Unfortunately, most of them are so unimportant that nobody else does." - neighbour "Northern woods" + neighbour "Eastern woods" neighbour "Rabbit's house" npc "Small" npc "Henry Rush" diff --git a/doc/PLAYING b/doc/PLAYING index a8ead8a..b62e857 100644 --- a/doc/PLAYING +++ b/doc/PLAYING @@ -23,15 +23,17 @@ and pressing ENTER. (Commands to the computer must always be terminated by pressing ENTER.) -The first option, "Start a new game", will first ask you for your name. (This is -needed to save the game.) It then drops you into a submenu in which you can -choose which game world you want to play. As of Atlantis 0.3, only the "Winnie -the Pooh" world is fully functional. (You can try the others, but they are far -from complete.) +The first option, "Start playing", will first ask you for your name. (This is +needed to save the game.) If you've played before, you will then have the choice +of whether you want to continue where you left off, or if you want to start a +new game. If this is your first time, you'll be taken straight to the setup +for new games. Here, you can choose which game world you want to play. (At the +moment, only the "Winnie the Pooh" world is fully functional. You may peruse +the other one, but it's far from complete.) -The second option, "Load a saved game", is for players who have already started -a game in one of the worlds. (Your game progress is saved automatically.) Again, -you will be presented with a submenu that lists all currently saved games. +Going back to the main menu, the second option prints out a list of players on +this computer. (Apart from being interesting, this can be useful if you've +forgotten your player name...) The third option displays this help text; the fourth option shows a copyright notice and the Atlantis software license. The fifth option quits the game. @@ -92,15 +94,15 @@ look - This is the most versatile command in the game. With it, you can inspect any item, NPC or monster (e.g. look cook). You can also bring up information about yourself with "look me" or about your current location - with "look here". Finally, "look around" is an alias for "seek". + with "look here". Finally, "look around" is an alias for "search". goto - The second most important command in Atlantis. With "goto" you can change your location to a neighbouring place. Enter the name of the place you - wish to go to after the actual command (e.g. goto Kitchen). + wish to go to after the actual command (e.g. goto Kitchen). Note that + there is no space in the word: it's "goto", not "go to". search - Some rooms contain hidden items. To find them, you first need to search - the room. When you do so, you have an 80% chance of finding a hidden - object. Don't forget to do this once in a while! + the room. Don't forget to do this regularly! take - This command is used to pick up an item. Most items in the game can be picked up, many are useful. @@ -125,8 +127,8 @@ attack - Some places contain monsters. (In Atlantis, a "monster" is any hostile non-playing character.) While some monsters attack you first, you also have the choice of attacking them. After all, there may be rich - treasure in store for the brave adventurer... (Make sure you have a - weapon equipped, though!) When you attack a monster, or vice versa, + treasure in store for the brave adventurer... (Make sure you are + holding a weapon, though!) When you attack a monster, or vice versa, the computer calculates the amount of damage you both take based on your various strengths and weapons. Make sure that your health doesn't drop too low! If it ever reaches 0, you're dead... (You can check up @@ -149,4 +151,4 @@ Daniel Vedder -Last modified 20/12/2017 +Last modified 07/01/2018 diff --git a/doc/TODO b/doc/TODO index 0193428..7a30a5b 100644 --- a/doc/TODO +++ b/doc/TODO @@ -1,12 +1,8 @@ ATLANTIS TODO - -* complete walk-through LISP * fix (string-from-list) bug -* update manual to reflect new main menu -* remove find probability? +* skip "bad command" after denying "quit" ATL -* make instructions more explicit -* do something with the Six Pine Trees? +* diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index 8a303a0..d945428 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -7,7 +7,7 @@ ;;; date: 09/05/2015 ;;; -(defconstant ATLANTIS-VERSION '(0 2 6)) +(defconstant ATLANTIS-VERSION '(0 3 0)) (load "util.lisp") (load "game-objects.lisp") diff --git a/ATL/Pooh/dialogue/woodland-map.txt b/ATL/Pooh/dialogue/woodland-map.txt index 111727c..638c894 100644 --- a/ATL/Pooh/dialogue/woodland-map.txt +++ b/ATL/Pooh/dialogue/woodland-map.txt @@ -1,8 +1,8 @@ ..............................[ 100 ACRE WOODS ].............................. : : -: Misty forest Rapids : -: : -: Bee tree : +: Misty forest : +: Bee tree : +: Rapids : : Sandy pit : : : : Rabbit : diff --git a/ATL/Pooh/pooh-extensions.lisp b/ATL/Pooh/pooh-extensions.lisp index 61cd8da..5618a2c 100644 --- a/ATL/Pooh/pooh-extensions.lisp +++ b/ATL/Pooh/pooh-extensions.lisp @@ -215,7 +215,7 @@ (defun leave-bee-tree (player) "Make sure you've climbed down before leaving the bee tree." - (when climbed (climb-down player) (pause 4)))) + (when climbed (climb-down player) (sleep 4)))) (defun climb-rock (player &optional arg) @@ -413,6 +413,7 @@ "A.A. Milne gives clues to the player in exchange for berries." (if (member "berries" (player-item player) :test #'equalp) (when (y-or-n-p "~%Give Mr Milne some berries?") + (remove-object-attribute player 'item "berries") (format t "~&~%MR MILNE:~%Thank you very much, Pooh!") (format t "~&Here's a clue for you in return:") (format t "~&~A" (random-elt (load-text-file "../ATL/Pooh/dialogue/clues.txt")))) diff --git a/ATL/Pooh/woods.atl b/ATL/Pooh/woods.atl index 838ce76..f070db6 100644 --- a/ATL/Pooh/woods.atl +++ b/ATL/Pooh/woods.atl @@ -83,7 +83,6 @@ neighbour "Sandy pit" neighbour "Bee tree" neighbour "Rabbit's house" - neighbour "Rabbit's friends and relations" neighbour "Rapids" neighbour "Stream" npc "Tigger" @@ -112,6 +111,7 @@ neighbour "Central woods" neighbour "Northern woods" neighbour "Southern woods" + neighbour "Rabbit's friends and relations" neighbour "Christopher Robin's house" neighbour "Owl's porch" neighbour "Bridge" @@ -276,7 +276,7 @@ friends-and-relations live. Basically, Rabbit knows very hedgehog, beetle and jackdaw here. Unfortunately, most of them are so unimportant that nobody else does." - neighbour "Northern woods" + neighbour "Eastern woods" neighbour "Rabbit's house" npc "Small" npc "Henry Rush" diff --git a/doc/PLAYING b/doc/PLAYING index a8ead8a..b62e857 100644 --- a/doc/PLAYING +++ b/doc/PLAYING @@ -23,15 +23,17 @@ and pressing ENTER. (Commands to the computer must always be terminated by pressing ENTER.) -The first option, "Start a new game", will first ask you for your name. (This is -needed to save the game.) It then drops you into a submenu in which you can -choose which game world you want to play. As of Atlantis 0.3, only the "Winnie -the Pooh" world is fully functional. (You can try the others, but they are far -from complete.) +The first option, "Start playing", will first ask you for your name. (This is +needed to save the game.) If you've played before, you will then have the choice +of whether you want to continue where you left off, or if you want to start a +new game. If this is your first time, you'll be taken straight to the setup +for new games. Here, you can choose which game world you want to play. (At the +moment, only the "Winnie the Pooh" world is fully functional. You may peruse +the other one, but it's far from complete.) -The second option, "Load a saved game", is for players who have already started -a game in one of the worlds. (Your game progress is saved automatically.) Again, -you will be presented with a submenu that lists all currently saved games. +Going back to the main menu, the second option prints out a list of players on +this computer. (Apart from being interesting, this can be useful if you've +forgotten your player name...) The third option displays this help text; the fourth option shows a copyright notice and the Atlantis software license. The fifth option quits the game. @@ -92,15 +94,15 @@ look - This is the most versatile command in the game. With it, you can inspect any item, NPC or monster (e.g. look cook). You can also bring up information about yourself with "look me" or about your current location - with "look here". Finally, "look around" is an alias for "seek". + with "look here". Finally, "look around" is an alias for "search". goto - The second most important command in Atlantis. With "goto" you can change your location to a neighbouring place. Enter the name of the place you - wish to go to after the actual command (e.g. goto Kitchen). + wish to go to after the actual command (e.g. goto Kitchen). Note that + there is no space in the word: it's "goto", not "go to". search - Some rooms contain hidden items. To find them, you first need to search - the room. When you do so, you have an 80% chance of finding a hidden - object. Don't forget to do this once in a while! + the room. Don't forget to do this regularly! take - This command is used to pick up an item. Most items in the game can be picked up, many are useful. @@ -125,8 +127,8 @@ attack - Some places contain monsters. (In Atlantis, a "monster" is any hostile non-playing character.) While some monsters attack you first, you also have the choice of attacking them. After all, there may be rich - treasure in store for the brave adventurer... (Make sure you have a - weapon equipped, though!) When you attack a monster, or vice versa, + treasure in store for the brave adventurer... (Make sure you are + holding a weapon, though!) When you attack a monster, or vice versa, the computer calculates the amount of damage you both take based on your various strengths and weapons. Make sure that your health doesn't drop too low! If it ever reaches 0, you're dead... (You can check up @@ -149,4 +151,4 @@ Daniel Vedder -Last modified 20/12/2017 +Last modified 07/01/2018 diff --git a/doc/TODO b/doc/TODO index 0193428..7a30a5b 100644 --- a/doc/TODO +++ b/doc/TODO @@ -1,12 +1,8 @@ ATLANTIS TODO - -* complete walk-through LISP * fix (string-from-list) bug -* update manual to reflect new main menu -* remove find probability? +* skip "bad command" after denying "quit" ATL -* make instructions more explicit -* do something with the Six Pine Trees? +* diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index 8a303a0..d945428 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -7,7 +7,7 @@ ;;; date: 09/05/2015 ;;; -(defconstant ATLANTIS-VERSION '(0 2 6)) +(defconstant ATLANTIS-VERSION '(0 3 0)) (load "util.lisp") (load "game-objects.lisp") diff --git a/lisp/player.lisp b/lisp/player.lisp index 59796d1..35ff640 100644 --- a/lisp/player.lisp +++ b/lisp/player.lisp @@ -68,7 +68,8 @@ (when (> (player-health player) (player-max-health player)) (setf (player-health player) (player-max-health player))) (when (> 1 (player-health player)) - (error "You died!"))) ;; TODO adjust this + (save-world) + (error "You died!"))) ;; XXX adjust this? (defun add-player-experience (player amount) "The player gains experience points" diff --git a/ATL/Pooh/dialogue/woodland-map.txt b/ATL/Pooh/dialogue/woodland-map.txt index 111727c..638c894 100644 --- a/ATL/Pooh/dialogue/woodland-map.txt +++ b/ATL/Pooh/dialogue/woodland-map.txt @@ -1,8 +1,8 @@ ..............................[ 100 ACRE WOODS ].............................. : : -: Misty forest Rapids : -: : -: Bee tree : +: Misty forest : +: Bee tree : +: Rapids : : Sandy pit : : : : Rabbit : diff --git a/ATL/Pooh/pooh-extensions.lisp b/ATL/Pooh/pooh-extensions.lisp index 61cd8da..5618a2c 100644 --- a/ATL/Pooh/pooh-extensions.lisp +++ b/ATL/Pooh/pooh-extensions.lisp @@ -215,7 +215,7 @@ (defun leave-bee-tree (player) "Make sure you've climbed down before leaving the bee tree." - (when climbed (climb-down player) (pause 4)))) + (when climbed (climb-down player) (sleep 4)))) (defun climb-rock (player &optional arg) @@ -413,6 +413,7 @@ "A.A. Milne gives clues to the player in exchange for berries." (if (member "berries" (player-item player) :test #'equalp) (when (y-or-n-p "~%Give Mr Milne some berries?") + (remove-object-attribute player 'item "berries") (format t "~&~%MR MILNE:~%Thank you very much, Pooh!") (format t "~&Here's a clue for you in return:") (format t "~&~A" (random-elt (load-text-file "../ATL/Pooh/dialogue/clues.txt")))) diff --git a/ATL/Pooh/woods.atl b/ATL/Pooh/woods.atl index 838ce76..f070db6 100644 --- a/ATL/Pooh/woods.atl +++ b/ATL/Pooh/woods.atl @@ -83,7 +83,6 @@ neighbour "Sandy pit" neighbour "Bee tree" neighbour "Rabbit's house" - neighbour "Rabbit's friends and relations" neighbour "Rapids" neighbour "Stream" npc "Tigger" @@ -112,6 +111,7 @@ neighbour "Central woods" neighbour "Northern woods" neighbour "Southern woods" + neighbour "Rabbit's friends and relations" neighbour "Christopher Robin's house" neighbour "Owl's porch" neighbour "Bridge" @@ -276,7 +276,7 @@ friends-and-relations live. Basically, Rabbit knows very hedgehog, beetle and jackdaw here. Unfortunately, most of them are so unimportant that nobody else does." - neighbour "Northern woods" + neighbour "Eastern woods" neighbour "Rabbit's house" npc "Small" npc "Henry Rush" diff --git a/doc/PLAYING b/doc/PLAYING index a8ead8a..b62e857 100644 --- a/doc/PLAYING +++ b/doc/PLAYING @@ -23,15 +23,17 @@ and pressing ENTER. (Commands to the computer must always be terminated by pressing ENTER.) -The first option, "Start a new game", will first ask you for your name. (This is -needed to save the game.) It then drops you into a submenu in which you can -choose which game world you want to play. As of Atlantis 0.3, only the "Winnie -the Pooh" world is fully functional. (You can try the others, but they are far -from complete.) +The first option, "Start playing", will first ask you for your name. (This is +needed to save the game.) If you've played before, you will then have the choice +of whether you want to continue where you left off, or if you want to start a +new game. If this is your first time, you'll be taken straight to the setup +for new games. Here, you can choose which game world you want to play. (At the +moment, only the "Winnie the Pooh" world is fully functional. You may peruse +the other one, but it's far from complete.) -The second option, "Load a saved game", is for players who have already started -a game in one of the worlds. (Your game progress is saved automatically.) Again, -you will be presented with a submenu that lists all currently saved games. +Going back to the main menu, the second option prints out a list of players on +this computer. (Apart from being interesting, this can be useful if you've +forgotten your player name...) The third option displays this help text; the fourth option shows a copyright notice and the Atlantis software license. The fifth option quits the game. @@ -92,15 +94,15 @@ look - This is the most versatile command in the game. With it, you can inspect any item, NPC or monster (e.g. look cook). You can also bring up information about yourself with "look me" or about your current location - with "look here". Finally, "look around" is an alias for "seek". + with "look here". Finally, "look around" is an alias for "search". goto - The second most important command in Atlantis. With "goto" you can change your location to a neighbouring place. Enter the name of the place you - wish to go to after the actual command (e.g. goto Kitchen). + wish to go to after the actual command (e.g. goto Kitchen). Note that + there is no space in the word: it's "goto", not "go to". search - Some rooms contain hidden items. To find them, you first need to search - the room. When you do so, you have an 80% chance of finding a hidden - object. Don't forget to do this once in a while! + the room. Don't forget to do this regularly! take - This command is used to pick up an item. Most items in the game can be picked up, many are useful. @@ -125,8 +127,8 @@ attack - Some places contain monsters. (In Atlantis, a "monster" is any hostile non-playing character.) While some monsters attack you first, you also have the choice of attacking them. After all, there may be rich - treasure in store for the brave adventurer... (Make sure you have a - weapon equipped, though!) When you attack a monster, or vice versa, + treasure in store for the brave adventurer... (Make sure you are + holding a weapon, though!) When you attack a monster, or vice versa, the computer calculates the amount of damage you both take based on your various strengths and weapons. Make sure that your health doesn't drop too low! If it ever reaches 0, you're dead... (You can check up @@ -149,4 +151,4 @@ Daniel Vedder -Last modified 20/12/2017 +Last modified 07/01/2018 diff --git a/doc/TODO b/doc/TODO index 0193428..7a30a5b 100644 --- a/doc/TODO +++ b/doc/TODO @@ -1,12 +1,8 @@ ATLANTIS TODO - -* complete walk-through LISP * fix (string-from-list) bug -* update manual to reflect new main menu -* remove find probability? +* skip "bad command" after denying "quit" ATL -* make instructions more explicit -* do something with the Six Pine Trees? +* diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index 8a303a0..d945428 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -7,7 +7,7 @@ ;;; date: 09/05/2015 ;;; -(defconstant ATLANTIS-VERSION '(0 2 6)) +(defconstant ATLANTIS-VERSION '(0 3 0)) (load "util.lisp") (load "game-objects.lisp") diff --git a/lisp/player.lisp b/lisp/player.lisp index 59796d1..35ff640 100644 --- a/lisp/player.lisp +++ b/lisp/player.lisp @@ -68,7 +68,8 @@ (when (> (player-health player) (player-max-health player)) (setf (player-health player) (player-max-health player))) (when (> 1 (player-health player)) - (error "You died!"))) ;; TODO adjust this + (save-world) + (error "You died!"))) ;; XXX adjust this? (defun add-player-experience (player amount) "The player gains experience points" diff --git a/lisp/ui.lisp b/lisp/ui.lisp index 5988431..064102c 100644 --- a/lisp/ui.lisp +++ b/lisp/ui.lisp @@ -14,12 +14,21 @@ ;; (This module should be purely UI) ;; Yeah, probably not going to happen ;-) +;; The number of items/places/characters/etc. to display per line ;; TODO Change to 5 once the (string-from-list) bug is fixed (setf *max-line-items* 10) +;; The probability of finding a hidden item +;; XXX 100% is cheating somehow, but I fear anything might prove a +;; stumbling block for new players who only search once (if at all)... +(setf *find-probability* 100) + (defun play-game () "The main game loop" (let ((player (get-game-object 'player (world-main-character *world*)))) + ;; Don't let dead characters resurrect + (unless (plusp (player-health player)) + (error "You are dead! You cannot continue this game.")) ;; If the player's starting position is not specified, choose at random (when (zerop (length (player-place player))) (format t "~&Choosing a random starting location.") @@ -236,7 +245,7 @@ (let* ((place (get-game-object 'place (player-place player))) (hidden (place-hidden place))) (dolist (h hidden) - (when (> 80 (random 100)) + (when (> *find-probability* (random 100)) (format t "~&You find: ~A" h) (set-object-attribute place 'item h) (remove-object-attribute place 'hidden h))))