diff --git a/ATL/Pooh/objects.atl b/ATL/Pooh/objects.atl index 3513caa..1fe87c8 100644 --- a/ATL/Pooh/objects.atl +++ b/ATL/Pooh/objects.atl @@ -20,7 +20,7 @@ define-item "Piglet's sign" description " - _________________ + ________________ | \\_ | TRESPASSERS W > |_________________< diff --git a/ATL/Pooh/objects.atl b/ATL/Pooh/objects.atl index 3513caa..1fe87c8 100644 --- a/ATL/Pooh/objects.atl +++ b/ATL/Pooh/objects.atl @@ -20,7 +20,7 @@ define-item "Piglet's sign" description " - _________________ + ________________ | \\_ | TRESPASSERS W > |_________________< diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index d78e670..658f312 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -44,8 +44,8 @@ (first ATLANTIS-VERSION) (second ATLANTIS-VERSION) (third ATLANTIS-VERSION)) - (format t "~&Copyright (c) 2015 Daniel Vedder") - (format t "~&Licensed under the terms of the MIT license.~%")) + (format t "~&Copyright (c) 2015-2017 Daniel Vedder") + (format t "~&Licensed under the terms of the GNU GPLv3.~%")) (defun start-menu () "Show the start menu and take a choice from the user" @@ -76,14 +76,13 @@ (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)) + (setf game (concatenate 'string "../saves/" game ".world")) (load-game game) (play-game))) (2 (world-creator)) (3 (development)) ;; XXX Remove this (4 (print-version) - (when (y-or-n-p "Show the license text?") - (print-text-file "../LICENSE")) + (read-line) (start-menu)) (5 (format t "~&Goodbye!") (quit)))) @@ -111,7 +110,7 @@ ((or (cmd-parameter "--help" T) (cmd-parameter "-h" T)) (print-help) (quit)) ((cmd-parameter "--license" T) - (dolist (line (load-text-file "../LICENSE")) + (dolist (line (load-text-file "../COPYING")) (unless (null line) (format t "~%~A" line))) (quit)) ((cmd-parameter "--debugging") diff --git a/ATL/Pooh/objects.atl b/ATL/Pooh/objects.atl index 3513caa..1fe87c8 100644 --- a/ATL/Pooh/objects.atl +++ b/ATL/Pooh/objects.atl @@ -20,7 +20,7 @@ define-item "Piglet's sign" description " - _________________ + ________________ | \\_ | TRESPASSERS W > |_________________< diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index d78e670..658f312 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -44,8 +44,8 @@ (first ATLANTIS-VERSION) (second ATLANTIS-VERSION) (third ATLANTIS-VERSION)) - (format t "~&Copyright (c) 2015 Daniel Vedder") - (format t "~&Licensed under the terms of the MIT license.~%")) + (format t "~&Copyright (c) 2015-2017 Daniel Vedder") + (format t "~&Licensed under the terms of the GNU GPLv3.~%")) (defun start-menu () "Show the start menu and take a choice from the user" @@ -76,14 +76,13 @@ (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)) + (setf game (concatenate 'string "../saves/" game ".world")) (load-game game) (play-game))) (2 (world-creator)) (3 (development)) ;; XXX Remove this (4 (print-version) - (when (y-or-n-p "Show the license text?") - (print-text-file "../LICENSE")) + (read-line) (start-menu)) (5 (format t "~&Goodbye!") (quit)))) @@ -111,7 +110,7 @@ ((or (cmd-parameter "--help" T) (cmd-parameter "-h" T)) (print-help) (quit)) ((cmd-parameter "--license" T) - (dolist (line (load-text-file "../LICENSE")) + (dolist (line (load-text-file "../COPYING")) (unless (null line) (format t "~%~A" line))) (quit)) ((cmd-parameter "--debugging") diff --git a/lisp/game-objects.lisp b/lisp/game-objects.lisp index ccd02b9..c5272e7 100644 --- a/lisp/game-objects.lisp +++ b/lisp/game-objects.lisp @@ -19,8 +19,11 @@ (monster NIL) (npc NIL) (spawns NIL) - (requires "") ;Can be an ability or an item - (function "")) ;XXX Get rid of functions? + ;(entry-hook NIL) + ;(exit-hook NIL) + ;; XXX Get rid of the following? (If hooks are available) + (requires "")) ;Can be an ability or an item + ;;; WORK IN PROGRESS >>> @@ -30,6 +33,7 @@ (says "") (sells NIL) (quest "")) + ;(interaction-hook NIL)) (defstruct monster (name "") @@ -42,14 +46,17 @@ (item NIL) (weapon "") (armour-class 0)) + ;(attack-hook NIL) + ;(meet-hook NIL)) (defstruct item (name "") (description "") (cost 0) (weapon) - (function NIL) ;XXX Dike out the function? - (ability NIL)) + ;(pickup-hook NIL) + ;(drop-hook NIL) + (ability NIL)) ;XXX Remove abilities again? (defstruct weapon (name "") diff --git a/ATL/Pooh/objects.atl b/ATL/Pooh/objects.atl index 3513caa..1fe87c8 100644 --- a/ATL/Pooh/objects.atl +++ b/ATL/Pooh/objects.atl @@ -20,7 +20,7 @@ define-item "Piglet's sign" description " - _________________ + ________________ | \\_ | TRESPASSERS W > |_________________< diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index d78e670..658f312 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -44,8 +44,8 @@ (first ATLANTIS-VERSION) (second ATLANTIS-VERSION) (third ATLANTIS-VERSION)) - (format t "~&Copyright (c) 2015 Daniel Vedder") - (format t "~&Licensed under the terms of the MIT license.~%")) + (format t "~&Copyright (c) 2015-2017 Daniel Vedder") + (format t "~&Licensed under the terms of the GNU GPLv3.~%")) (defun start-menu () "Show the start menu and take a choice from the user" @@ -76,14 +76,13 @@ (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)) + (setf game (concatenate 'string "../saves/" game ".world")) (load-game game) (play-game))) (2 (world-creator)) (3 (development)) ;; XXX Remove this (4 (print-version) - (when (y-or-n-p "Show the license text?") - (print-text-file "../LICENSE")) + (read-line) (start-menu)) (5 (format t "~&Goodbye!") (quit)))) @@ -111,7 +110,7 @@ ((or (cmd-parameter "--help" T) (cmd-parameter "-h" T)) (print-help) (quit)) ((cmd-parameter "--license" T) - (dolist (line (load-text-file "../LICENSE")) + (dolist (line (load-text-file "../COPYING")) (unless (null line) (format t "~%~A" line))) (quit)) ((cmd-parameter "--debugging") diff --git a/lisp/game-objects.lisp b/lisp/game-objects.lisp index ccd02b9..c5272e7 100644 --- a/lisp/game-objects.lisp +++ b/lisp/game-objects.lisp @@ -19,8 +19,11 @@ (monster NIL) (npc NIL) (spawns NIL) - (requires "") ;Can be an ability or an item - (function "")) ;XXX Get rid of functions? + ;(entry-hook NIL) + ;(exit-hook NIL) + ;; XXX Get rid of the following? (If hooks are available) + (requires "")) ;Can be an ability or an item + ;;; WORK IN PROGRESS >>> @@ -30,6 +33,7 @@ (says "") (sells NIL) (quest "")) + ;(interaction-hook NIL)) (defstruct monster (name "") @@ -42,14 +46,17 @@ (item NIL) (weapon "") (armour-class 0)) + ;(attack-hook NIL) + ;(meet-hook NIL)) (defstruct item (name "") (description "") (cost 0) (weapon) - (function NIL) ;XXX Dike out the function? - (ability NIL)) + ;(pickup-hook NIL) + ;(drop-hook NIL) + (ability NIL)) ;XXX Remove abilities again? (defstruct weapon (name "") diff --git a/lisp/ui.lisp b/lisp/ui.lisp index 2c3e562..36cd234 100644 --- a/lisp/ui.lisp +++ b/lisp/ui.lisp @@ -134,7 +134,8 @@ ((not (or last-save game-file)) (format t "~&What do you want to call the save file?") (input-string game-file) - (setf game-file (concatenate 'string "../saves/" game-file)) + (setf game-file (concatenate 'string + "../saves/" game-file ".world")) (setf last-save game-file))) (when (y-or-n-p "Save game to ~A?" game-file) (save-world game-file) diff --git a/ATL/Pooh/objects.atl b/ATL/Pooh/objects.atl index 3513caa..1fe87c8 100644 --- a/ATL/Pooh/objects.atl +++ b/ATL/Pooh/objects.atl @@ -20,7 +20,7 @@ define-item "Piglet's sign" description " - _________________ + ________________ | \\_ | TRESPASSERS W > |_________________< diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index d78e670..658f312 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -44,8 +44,8 @@ (first ATLANTIS-VERSION) (second ATLANTIS-VERSION) (third ATLANTIS-VERSION)) - (format t "~&Copyright (c) 2015 Daniel Vedder") - (format t "~&Licensed under the terms of the MIT license.~%")) + (format t "~&Copyright (c) 2015-2017 Daniel Vedder") + (format t "~&Licensed under the terms of the GNU GPLv3.~%")) (defun start-menu () "Show the start menu and take a choice from the user" @@ -76,14 +76,13 @@ (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)) + (setf game (concatenate 'string "../saves/" game ".world")) (load-game game) (play-game))) (2 (world-creator)) (3 (development)) ;; XXX Remove this (4 (print-version) - (when (y-or-n-p "Show the license text?") - (print-text-file "../LICENSE")) + (read-line) (start-menu)) (5 (format t "~&Goodbye!") (quit)))) @@ -111,7 +110,7 @@ ((or (cmd-parameter "--help" T) (cmd-parameter "-h" T)) (print-help) (quit)) ((cmd-parameter "--license" T) - (dolist (line (load-text-file "../LICENSE")) + (dolist (line (load-text-file "../COPYING")) (unless (null line) (format t "~%~A" line))) (quit)) ((cmd-parameter "--debugging") diff --git a/lisp/game-objects.lisp b/lisp/game-objects.lisp index ccd02b9..c5272e7 100644 --- a/lisp/game-objects.lisp +++ b/lisp/game-objects.lisp @@ -19,8 +19,11 @@ (monster NIL) (npc NIL) (spawns NIL) - (requires "") ;Can be an ability or an item - (function "")) ;XXX Get rid of functions? + ;(entry-hook NIL) + ;(exit-hook NIL) + ;; XXX Get rid of the following? (If hooks are available) + (requires "")) ;Can be an ability or an item + ;;; WORK IN PROGRESS >>> @@ -30,6 +33,7 @@ (says "") (sells NIL) (quest "")) + ;(interaction-hook NIL)) (defstruct monster (name "") @@ -42,14 +46,17 @@ (item NIL) (weapon "") (armour-class 0)) + ;(attack-hook NIL) + ;(meet-hook NIL)) (defstruct item (name "") (description "") (cost 0) (weapon) - (function NIL) ;XXX Dike out the function? - (ability NIL)) + ;(pickup-hook NIL) + ;(drop-hook NIL) + (ability NIL)) ;XXX Remove abilities again? (defstruct weapon (name "") diff --git a/lisp/ui.lisp b/lisp/ui.lisp index 2c3e562..36cd234 100644 --- a/lisp/ui.lisp +++ b/lisp/ui.lisp @@ -134,7 +134,8 @@ ((not (or last-save game-file)) (format t "~&What do you want to call the save file?") (input-string game-file) - (setf game-file (concatenate 'string "../saves/" game-file)) + (setf game-file (concatenate 'string + "../saves/" game-file ".world")) (setf last-save game-file))) (when (y-or-n-p "Save game to ~A?" game-file) (save-world game-file) diff --git a/lisp/world.lisp b/lisp/world.lisp index 7176cd7..3aefaf6 100644 --- a/lisp/world.lisp +++ b/lisp/world.lisp @@ -25,8 +25,7 @@ (npcs NIL) (items NIL) (weapons NIL) - (quests NIL) - (game-functions NIL)) + (quests NIL)) (setf *world* (make-world)) ;XXX Move this to another module? diff --git a/ATL/Pooh/objects.atl b/ATL/Pooh/objects.atl index 3513caa..1fe87c8 100644 --- a/ATL/Pooh/objects.atl +++ b/ATL/Pooh/objects.atl @@ -20,7 +20,7 @@ define-item "Piglet's sign" description " - _________________ + ________________ | \\_ | TRESPASSERS W > |_________________< diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index d78e670..658f312 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -44,8 +44,8 @@ (first ATLANTIS-VERSION) (second ATLANTIS-VERSION) (third ATLANTIS-VERSION)) - (format t "~&Copyright (c) 2015 Daniel Vedder") - (format t "~&Licensed under the terms of the MIT license.~%")) + (format t "~&Copyright (c) 2015-2017 Daniel Vedder") + (format t "~&Licensed under the terms of the GNU GPLv3.~%")) (defun start-menu () "Show the start menu and take a choice from the user" @@ -76,14 +76,13 @@ (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)) + (setf game (concatenate 'string "../saves/" game ".world")) (load-game game) (play-game))) (2 (world-creator)) (3 (development)) ;; XXX Remove this (4 (print-version) - (when (y-or-n-p "Show the license text?") - (print-text-file "../LICENSE")) + (read-line) (start-menu)) (5 (format t "~&Goodbye!") (quit)))) @@ -111,7 +110,7 @@ ((or (cmd-parameter "--help" T) (cmd-parameter "-h" T)) (print-help) (quit)) ((cmd-parameter "--license" T) - (dolist (line (load-text-file "../LICENSE")) + (dolist (line (load-text-file "../COPYING")) (unless (null line) (format t "~%~A" line))) (quit)) ((cmd-parameter "--debugging") diff --git a/lisp/game-objects.lisp b/lisp/game-objects.lisp index ccd02b9..c5272e7 100644 --- a/lisp/game-objects.lisp +++ b/lisp/game-objects.lisp @@ -19,8 +19,11 @@ (monster NIL) (npc NIL) (spawns NIL) - (requires "") ;Can be an ability or an item - (function "")) ;XXX Get rid of functions? + ;(entry-hook NIL) + ;(exit-hook NIL) + ;; XXX Get rid of the following? (If hooks are available) + (requires "")) ;Can be an ability or an item + ;;; WORK IN PROGRESS >>> @@ -30,6 +33,7 @@ (says "") (sells NIL) (quest "")) + ;(interaction-hook NIL)) (defstruct monster (name "") @@ -42,14 +46,17 @@ (item NIL) (weapon "") (armour-class 0)) + ;(attack-hook NIL) + ;(meet-hook NIL)) (defstruct item (name "") (description "") (cost 0) (weapon) - (function NIL) ;XXX Dike out the function? - (ability NIL)) + ;(pickup-hook NIL) + ;(drop-hook NIL) + (ability NIL)) ;XXX Remove abilities again? (defstruct weapon (name "") diff --git a/lisp/ui.lisp b/lisp/ui.lisp index 2c3e562..36cd234 100644 --- a/lisp/ui.lisp +++ b/lisp/ui.lisp @@ -134,7 +134,8 @@ ((not (or last-save game-file)) (format t "~&What do you want to call the save file?") (input-string game-file) - (setf game-file (concatenate 'string "../saves/" game-file)) + (setf game-file (concatenate 'string + "../saves/" game-file ".world")) (setf last-save game-file))) (when (y-or-n-p "Save game to ~A?" game-file) (save-world game-file) diff --git a/lisp/world.lisp b/lisp/world.lisp index 7176cd7..3aefaf6 100644 --- a/lisp/world.lisp +++ b/lisp/world.lisp @@ -25,8 +25,7 @@ (npcs NIL) (items NIL) (weapons NIL) - (quests NIL) - (game-functions NIL)) + (quests NIL)) (setf *world* (make-world)) ;XXX Move this to another module? diff --git a/saves/pooh1 b/saves/pooh1 deleted file mode 100644 index c1a6ef3..0000000 --- a/saves/pooh1 +++ /dev/null @@ -1,206 +0,0 @@ -(0 2 1) -#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 ("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 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 -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 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" "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 - " -+--------------+ -| Mr SANDERS | -+--------------+ -" - :COST 0 :WEAPON NIL :FUNCTION NIL :ABILITY NIL) - #S(ITEM :NAME "Piglet's sign" - :DESCRIPTION - " -_________________ -| \\_ -| 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 - (#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/objects.atl b/ATL/Pooh/objects.atl index 3513caa..1fe87c8 100644 --- a/ATL/Pooh/objects.atl +++ b/ATL/Pooh/objects.atl @@ -20,7 +20,7 @@ define-item "Piglet's sign" description " - _________________ + ________________ | \\_ | TRESPASSERS W > |_________________< diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index d78e670..658f312 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -44,8 +44,8 @@ (first ATLANTIS-VERSION) (second ATLANTIS-VERSION) (third ATLANTIS-VERSION)) - (format t "~&Copyright (c) 2015 Daniel Vedder") - (format t "~&Licensed under the terms of the MIT license.~%")) + (format t "~&Copyright (c) 2015-2017 Daniel Vedder") + (format t "~&Licensed under the terms of the GNU GPLv3.~%")) (defun start-menu () "Show the start menu and take a choice from the user" @@ -76,14 +76,13 @@ (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)) + (setf game (concatenate 'string "../saves/" game ".world")) (load-game game) (play-game))) (2 (world-creator)) (3 (development)) ;; XXX Remove this (4 (print-version) - (when (y-or-n-p "Show the license text?") - (print-text-file "../LICENSE")) + (read-line) (start-menu)) (5 (format t "~&Goodbye!") (quit)))) @@ -111,7 +110,7 @@ ((or (cmd-parameter "--help" T) (cmd-parameter "-h" T)) (print-help) (quit)) ((cmd-parameter "--license" T) - (dolist (line (load-text-file "../LICENSE")) + (dolist (line (load-text-file "../COPYING")) (unless (null line) (format t "~%~A" line))) (quit)) ((cmd-parameter "--debugging") diff --git a/lisp/game-objects.lisp b/lisp/game-objects.lisp index ccd02b9..c5272e7 100644 --- a/lisp/game-objects.lisp +++ b/lisp/game-objects.lisp @@ -19,8 +19,11 @@ (monster NIL) (npc NIL) (spawns NIL) - (requires "") ;Can be an ability or an item - (function "")) ;XXX Get rid of functions? + ;(entry-hook NIL) + ;(exit-hook NIL) + ;; XXX Get rid of the following? (If hooks are available) + (requires "")) ;Can be an ability or an item + ;;; WORK IN PROGRESS >>> @@ -30,6 +33,7 @@ (says "") (sells NIL) (quest "")) + ;(interaction-hook NIL)) (defstruct monster (name "") @@ -42,14 +46,17 @@ (item NIL) (weapon "") (armour-class 0)) + ;(attack-hook NIL) + ;(meet-hook NIL)) (defstruct item (name "") (description "") (cost 0) (weapon) - (function NIL) ;XXX Dike out the function? - (ability NIL)) + ;(pickup-hook NIL) + ;(drop-hook NIL) + (ability NIL)) ;XXX Remove abilities again? (defstruct weapon (name "") diff --git a/lisp/ui.lisp b/lisp/ui.lisp index 2c3e562..36cd234 100644 --- a/lisp/ui.lisp +++ b/lisp/ui.lisp @@ -134,7 +134,8 @@ ((not (or last-save game-file)) (format t "~&What do you want to call the save file?") (input-string game-file) - (setf game-file (concatenate 'string "../saves/" game-file)) + (setf game-file (concatenate 'string + "../saves/" game-file ".world")) (setf last-save game-file))) (when (y-or-n-p "Save game to ~A?" game-file) (save-world game-file) diff --git a/lisp/world.lisp b/lisp/world.lisp index 7176cd7..3aefaf6 100644 --- a/lisp/world.lisp +++ b/lisp/world.lisp @@ -25,8 +25,7 @@ (npcs NIL) (items NIL) (weapons NIL) - (quests NIL) - (game-functions NIL)) + (quests NIL)) (setf *world* (make-world)) ;XXX Move this to another module? diff --git a/saves/pooh1 b/saves/pooh1 deleted file mode 100644 index c1a6ef3..0000000 --- a/saves/pooh1 +++ /dev/null @@ -1,206 +0,0 @@ -(0 2 1) -#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 ("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 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 -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 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" "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 - " -+--------------+ -| Mr SANDERS | -+--------------+ -" - :COST 0 :WEAPON NIL :FUNCTION NIL :ABILITY NIL) - #S(ITEM :NAME "Piglet's sign" - :DESCRIPTION - " -_________________ -| \\_ -| 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 - (#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/pooh1.world b/saves/pooh1.world new file mode 100644 index 0000000..c1a6ef3 --- /dev/null +++ b/saves/pooh1.world @@ -0,0 +1,206 @@ +(0 2 1) +#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 ("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 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 +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 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" "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 + " ++--------------+ +| Mr SANDERS | ++--------------+ +" + :COST 0 :WEAPON NIL :FUNCTION NIL :ABILITY NIL) + #S(ITEM :NAME "Piglet's sign" + :DESCRIPTION + " +_________________ +| \\_ +| 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 + (#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)