diff --git a/ATL/Pooh/characters.atl b/ATL/Pooh/characters.atl index f5d5d0e..1d60329 100644 --- a/ATL/Pooh/characters.atl +++ b/ATL/Pooh/characters.atl @@ -54,13 +54,12 @@ quest "Uncle's picture" interaction-hook "read-letter" -;TODO Christopher Robin needs to say something else -; (he's on Galleon's Lap now, not in his home) define-npc "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?" + description "Christopher Robin is your oldest friend. You've known him for + as long as you can remember, and you've really missed + him these past few days!" + says "Pooh, you found me!" + interaction-hook "game-finale" define-npc "Eeyore" description "Eeyore the Donkey is always feeling blue. Somehow he got the diff --git a/ATL/Pooh/characters.atl b/ATL/Pooh/characters.atl index f5d5d0e..1d60329 100644 --- a/ATL/Pooh/characters.atl +++ b/ATL/Pooh/characters.atl @@ -54,13 +54,12 @@ quest "Uncle's picture" interaction-hook "read-letter" -;TODO Christopher Robin needs to say something else -; (he's on Galleon's Lap now, not in his home) define-npc "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?" + description "Christopher Robin is your oldest friend. You've known him for + as long as you can remember, and you've really missed + him these past few days!" + says "Pooh, you found me!" + interaction-hook "game-finale" define-npc "Eeyore" description "Eeyore the Donkey is always feeling blue. Somehow he got the diff --git a/ATL/Pooh/dialogue/finale.txt b/ATL/Pooh/dialogue/finale.txt new file mode 100644 index 0000000..53c6993 --- /dev/null +++ b/ATL/Pooh/dialogue/finale.txt @@ -0,0 +1,26 @@ + +Christopher Robin runs towards you and hugs you. + +CHRISTOPHER ROBIN: +I missed you, Pooh! +Come, I need to show you something. + +He takes your hand and leads you to the highest point of Galleon's Lap. +You sit down in the grass and look around. + +CHRISTOPHER ROBIN: +Look, Pooh, that is the world. +Isn't it huge? I want to see it all some day, you know. +We've been playing around the forest all our lives, but I want to see more. +But I'm scared, Pooh - scared of leaving you and Piglet and all the others. +I don't want to go, but I think it's time. +Just promise you won't forget about me, ever! +Not even when I'm a hundred. + +He looks at you, and you nod solemnly. +Suddenly he laughs, and jumps up. + +CHRISTOPHER ROBIN: +Come, let's go and play, Pooh! +This may be the end of one game, but another one is just starting! + diff --git a/ATL/Pooh/characters.atl b/ATL/Pooh/characters.atl index f5d5d0e..1d60329 100644 --- a/ATL/Pooh/characters.atl +++ b/ATL/Pooh/characters.atl @@ -54,13 +54,12 @@ quest "Uncle's picture" interaction-hook "read-letter" -;TODO Christopher Robin needs to say something else -; (he's on Galleon's Lap now, not in his home) define-npc "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?" + description "Christopher Robin is your oldest friend. You've known him for + as long as you can remember, and you've really missed + him these past few days!" + says "Pooh, you found me!" + interaction-hook "game-finale" define-npc "Eeyore" description "Eeyore the Donkey is always feeling blue. Somehow he got the diff --git a/ATL/Pooh/dialogue/finale.txt b/ATL/Pooh/dialogue/finale.txt new file mode 100644 index 0000000..53c6993 --- /dev/null +++ b/ATL/Pooh/dialogue/finale.txt @@ -0,0 +1,26 @@ + +Christopher Robin runs towards you and hugs you. + +CHRISTOPHER ROBIN: +I missed you, Pooh! +Come, I need to show you something. + +He takes your hand and leads you to the highest point of Galleon's Lap. +You sit down in the grass and look around. + +CHRISTOPHER ROBIN: +Look, Pooh, that is the world. +Isn't it huge? I want to see it all some day, you know. +We've been playing around the forest all our lives, but I want to see more. +But I'm scared, Pooh - scared of leaving you and Piglet and all the others. +I don't want to go, but I think it's time. +Just promise you won't forget about me, ever! +Not even when I'm a hundred. + +He looks at you, and you nod solemnly. +Suddenly he laughs, and jumps up. + +CHRISTOPHER ROBIN: +Come, let's go and play, Pooh! +This may be the end of one game, but another one is just starting! + diff --git a/ATL/Pooh/dialogue/poem.txt b/ATL/Pooh/dialogue/poem.txt new file mode 100644 index 0000000..e22cde5 --- /dev/null +++ b/ATL/Pooh/dialogue/poem.txt @@ -0,0 +1,15 @@ + We shall not cease from exploration + And the end of our exploring + Will be to arrive where we started + And know the place for the first time. + Through the unknown, unremembered gate + When the last of earth left to discover + Is that which was the beginning; + At the source of the longest river + The voice of the hidden waterfall + And the children in the apple-tree + Not known, because not looked for + But heard, half-heard, in the stillness + Between two waves of the sea. + + - T.S. Eliot, Little Gidding diff --git a/ATL/Pooh/characters.atl b/ATL/Pooh/characters.atl index f5d5d0e..1d60329 100644 --- a/ATL/Pooh/characters.atl +++ b/ATL/Pooh/characters.atl @@ -54,13 +54,12 @@ quest "Uncle's picture" interaction-hook "read-letter" -;TODO Christopher Robin needs to say something else -; (he's on Galleon's Lap now, not in his home) define-npc "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?" + description "Christopher Robin is your oldest friend. You've known him for + as long as you can remember, and you've really missed + him these past few days!" + says "Pooh, you found me!" + interaction-hook "game-finale" define-npc "Eeyore" description "Eeyore the Donkey is always feeling blue. Somehow he got the diff --git a/ATL/Pooh/dialogue/finale.txt b/ATL/Pooh/dialogue/finale.txt new file mode 100644 index 0000000..53c6993 --- /dev/null +++ b/ATL/Pooh/dialogue/finale.txt @@ -0,0 +1,26 @@ + +Christopher Robin runs towards you and hugs you. + +CHRISTOPHER ROBIN: +I missed you, Pooh! +Come, I need to show you something. + +He takes your hand and leads you to the highest point of Galleon's Lap. +You sit down in the grass and look around. + +CHRISTOPHER ROBIN: +Look, Pooh, that is the world. +Isn't it huge? I want to see it all some day, you know. +We've been playing around the forest all our lives, but I want to see more. +But I'm scared, Pooh - scared of leaving you and Piglet and all the others. +I don't want to go, but I think it's time. +Just promise you won't forget about me, ever! +Not even when I'm a hundred. + +He looks at you, and you nod solemnly. +Suddenly he laughs, and jumps up. + +CHRISTOPHER ROBIN: +Come, let's go and play, Pooh! +This may be the end of one game, but another one is just starting! + diff --git a/ATL/Pooh/dialogue/poem.txt b/ATL/Pooh/dialogue/poem.txt new file mode 100644 index 0000000..e22cde5 --- /dev/null +++ b/ATL/Pooh/dialogue/poem.txt @@ -0,0 +1,15 @@ + We shall not cease from exploration + And the end of our exploring + Will be to arrive where we started + And know the place for the first time. + Through the unknown, unremembered gate + When the last of earth left to discover + Is that which was the beginning; + At the source of the longest river + The voice of the hidden waterfall + And the children in the apple-tree + Not known, because not looked for + But heard, half-heard, in the stillness + Between two waves of the sea. + + - T.S. Eliot, Little Gidding diff --git a/ATL/Pooh/items.atl b/ATL/Pooh/items.atl index 840d128..456f1ae 100644 --- a/ATL/Pooh/items.atl +++ b/ATL/Pooh/items.atl @@ -177,7 +177,7 @@ description "This is a map of the 100 Acre Wood. The woods may not be that large, but it's still easy to get lost in them. So it may be a good idea to carry this around with you..." - command "study" + command "read" define-item "Card" description " @@ -189,6 +189,7 @@ ................................... ................................... " + command "read" define-item "Golden ring" description "A beautiful golden ring that lies heavily in your hand. diff --git a/ATL/Pooh/characters.atl b/ATL/Pooh/characters.atl index f5d5d0e..1d60329 100644 --- a/ATL/Pooh/characters.atl +++ b/ATL/Pooh/characters.atl @@ -54,13 +54,12 @@ quest "Uncle's picture" interaction-hook "read-letter" -;TODO Christopher Robin needs to say something else -; (he's on Galleon's Lap now, not in his home) define-npc "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?" + description "Christopher Robin is your oldest friend. You've known him for + as long as you can remember, and you've really missed + him these past few days!" + says "Pooh, you found me!" + interaction-hook "game-finale" define-npc "Eeyore" description "Eeyore the Donkey is always feeling blue. Somehow he got the diff --git a/ATL/Pooh/dialogue/finale.txt b/ATL/Pooh/dialogue/finale.txt new file mode 100644 index 0000000..53c6993 --- /dev/null +++ b/ATL/Pooh/dialogue/finale.txt @@ -0,0 +1,26 @@ + +Christopher Robin runs towards you and hugs you. + +CHRISTOPHER ROBIN: +I missed you, Pooh! +Come, I need to show you something. + +He takes your hand and leads you to the highest point of Galleon's Lap. +You sit down in the grass and look around. + +CHRISTOPHER ROBIN: +Look, Pooh, that is the world. +Isn't it huge? I want to see it all some day, you know. +We've been playing around the forest all our lives, but I want to see more. +But I'm scared, Pooh - scared of leaving you and Piglet and all the others. +I don't want to go, but I think it's time. +Just promise you won't forget about me, ever! +Not even when I'm a hundred. + +He looks at you, and you nod solemnly. +Suddenly he laughs, and jumps up. + +CHRISTOPHER ROBIN: +Come, let's go and play, Pooh! +This may be the end of one game, but another one is just starting! + diff --git a/ATL/Pooh/dialogue/poem.txt b/ATL/Pooh/dialogue/poem.txt new file mode 100644 index 0000000..e22cde5 --- /dev/null +++ b/ATL/Pooh/dialogue/poem.txt @@ -0,0 +1,15 @@ + We shall not cease from exploration + And the end of our exploring + Will be to arrive where we started + And know the place for the first time. + Through the unknown, unremembered gate + When the last of earth left to discover + Is that which was the beginning; + At the source of the longest river + The voice of the hidden waterfall + And the children in the apple-tree + Not known, because not looked for + But heard, half-heard, in the stillness + Between two waves of the sea. + + - T.S. Eliot, Little Gidding diff --git a/ATL/Pooh/items.atl b/ATL/Pooh/items.atl index 840d128..456f1ae 100644 --- a/ATL/Pooh/items.atl +++ b/ATL/Pooh/items.atl @@ -177,7 +177,7 @@ description "This is a map of the 100 Acre Wood. The woods may not be that large, but it's still easy to get lost in them. So it may be a good idea to carry this around with you..." - command "study" + command "read" define-item "Card" description " @@ -189,6 +189,7 @@ ................................... ................................... " + command "read" define-item "Golden ring" description "A beautiful golden ring that lies heavily in your hand. diff --git a/ATL/Pooh/pooh-extensions.lisp b/ATL/Pooh/pooh-extensions.lisp index ac451d1..7423238 100644 --- a/ATL/Pooh/pooh-extensions.lisp +++ b/ATL/Pooh/pooh-extensions.lisp @@ -43,12 +43,16 @@ (change-player-health player 1)) (format t "~&You don't have any Extract of Malt!"))) -(defun study (player &optional arg) - "Print out the map" - (unless (member 'map (extract-elements arg)) - (format t "~&What do you want to study?") - (return-from study)) - (print-text-file "../ATL/Pooh/dialogue/woodland-map.txt")) +(add-alias 'read 'read-item) + +(defun read-item (player &optional arg) + "Print out what the player wants to read" + (let ((text-item (fuzzy-match arg '("map" "card")))) + (cond ((equalp text-item "map") + (print-text-file "../ATL/Pooh/dialogue/woodland-map.txt")) + ((equalp text-item "card") + (print-text-file "../ATL/Pooh/dialogue/poem.txt")) + (T (format t "~&What do you want to read?"))))) (defun think (player &optional arg) "Play the intro text." @@ -406,6 +410,17 @@ (format t "~&I'll get even by giving you a little clue for the game.") (sleep 3) (format t "~&How about that?")))) +(defun game-finale (player) + "When the player finds Christopher Robin at Galleon's Lap, the game ends." + (narrate "../ATL/Pooh/dialogue/finale.txt" + '(3 1 1 0 3 2 2 4 3 2 0 3 3 5 3 5 3 3 2 3 2 1 0 2 4 0)) + (let ((npc (get-game-object 'npc "Christopher Robin"))) + (remove-object-attribute npc 'interaction-hook) + (remove-object-attribute npc 'says "Pooh, you found me!") + (set-object-attribute npc 'says + "There's a whole world waiting out there, Pooh. +Shall we go and explore it?"))) + ;; The golden ring is an easter egg referencing, of course, ;; The Lord of the Rings. diff --git a/ATL/Pooh/characters.atl b/ATL/Pooh/characters.atl index f5d5d0e..1d60329 100644 --- a/ATL/Pooh/characters.atl +++ b/ATL/Pooh/characters.atl @@ -54,13 +54,12 @@ quest "Uncle's picture" interaction-hook "read-letter" -;TODO Christopher Robin needs to say something else -; (he's on Galleon's Lap now, not in his home) define-npc "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?" + description "Christopher Robin is your oldest friend. You've known him for + as long as you can remember, and you've really missed + him these past few days!" + says "Pooh, you found me!" + interaction-hook "game-finale" define-npc "Eeyore" description "Eeyore the Donkey is always feeling blue. Somehow he got the diff --git a/ATL/Pooh/dialogue/finale.txt b/ATL/Pooh/dialogue/finale.txt new file mode 100644 index 0000000..53c6993 --- /dev/null +++ b/ATL/Pooh/dialogue/finale.txt @@ -0,0 +1,26 @@ + +Christopher Robin runs towards you and hugs you. + +CHRISTOPHER ROBIN: +I missed you, Pooh! +Come, I need to show you something. + +He takes your hand and leads you to the highest point of Galleon's Lap. +You sit down in the grass and look around. + +CHRISTOPHER ROBIN: +Look, Pooh, that is the world. +Isn't it huge? I want to see it all some day, you know. +We've been playing around the forest all our lives, but I want to see more. +But I'm scared, Pooh - scared of leaving you and Piglet and all the others. +I don't want to go, but I think it's time. +Just promise you won't forget about me, ever! +Not even when I'm a hundred. + +He looks at you, and you nod solemnly. +Suddenly he laughs, and jumps up. + +CHRISTOPHER ROBIN: +Come, let's go and play, Pooh! +This may be the end of one game, but another one is just starting! + diff --git a/ATL/Pooh/dialogue/poem.txt b/ATL/Pooh/dialogue/poem.txt new file mode 100644 index 0000000..e22cde5 --- /dev/null +++ b/ATL/Pooh/dialogue/poem.txt @@ -0,0 +1,15 @@ + We shall not cease from exploration + And the end of our exploring + Will be to arrive where we started + And know the place for the first time. + Through the unknown, unremembered gate + When the last of earth left to discover + Is that which was the beginning; + At the source of the longest river + The voice of the hidden waterfall + And the children in the apple-tree + Not known, because not looked for + But heard, half-heard, in the stillness + Between two waves of the sea. + + - T.S. Eliot, Little Gidding diff --git a/ATL/Pooh/items.atl b/ATL/Pooh/items.atl index 840d128..456f1ae 100644 --- a/ATL/Pooh/items.atl +++ b/ATL/Pooh/items.atl @@ -177,7 +177,7 @@ description "This is a map of the 100 Acre Wood. The woods may not be that large, but it's still easy to get lost in them. So it may be a good idea to carry this around with you..." - command "study" + command "read" define-item "Card" description " @@ -189,6 +189,7 @@ ................................... ................................... " + command "read" define-item "Golden ring" description "A beautiful golden ring that lies heavily in your hand. diff --git a/ATL/Pooh/pooh-extensions.lisp b/ATL/Pooh/pooh-extensions.lisp index ac451d1..7423238 100644 --- a/ATL/Pooh/pooh-extensions.lisp +++ b/ATL/Pooh/pooh-extensions.lisp @@ -43,12 +43,16 @@ (change-player-health player 1)) (format t "~&You don't have any Extract of Malt!"))) -(defun study (player &optional arg) - "Print out the map" - (unless (member 'map (extract-elements arg)) - (format t "~&What do you want to study?") - (return-from study)) - (print-text-file "../ATL/Pooh/dialogue/woodland-map.txt")) +(add-alias 'read 'read-item) + +(defun read-item (player &optional arg) + "Print out what the player wants to read" + (let ((text-item (fuzzy-match arg '("map" "card")))) + (cond ((equalp text-item "map") + (print-text-file "../ATL/Pooh/dialogue/woodland-map.txt")) + ((equalp text-item "card") + (print-text-file "../ATL/Pooh/dialogue/poem.txt")) + (T (format t "~&What do you want to read?"))))) (defun think (player &optional arg) "Play the intro text." @@ -406,6 +410,17 @@ (format t "~&I'll get even by giving you a little clue for the game.") (sleep 3) (format t "~&How about that?")))) +(defun game-finale (player) + "When the player finds Christopher Robin at Galleon's Lap, the game ends." + (narrate "../ATL/Pooh/dialogue/finale.txt" + '(3 1 1 0 3 2 2 4 3 2 0 3 3 5 3 5 3 3 2 3 2 1 0 2 4 0)) + (let ((npc (get-game-object 'npc "Christopher Robin"))) + (remove-object-attribute npc 'interaction-hook) + (remove-object-attribute npc 'says "Pooh, you found me!") + (set-object-attribute npc 'says + "There's a whole world waiting out there, Pooh. +Shall we go and explore it?"))) + ;; The golden ring is an easter egg referencing, of course, ;; The Lord of the Rings. diff --git a/ATL/Pooh/pooh.atl b/ATL/Pooh/pooh.atl index f8af0b3..0f4832f 100644 --- a/ATL/Pooh/pooh.atl +++ b/ATL/Pooh/pooh.atl @@ -23,4 +23,6 @@ ;TODO development - remove before release define-player "Christopher Robin" description "Christopher Robin is my game dev character." - place "Northern woods" \ No newline at end of file + place "Hill" + item "Key" + item "Map" \ No newline at end of file diff --git a/ATL/Pooh/characters.atl b/ATL/Pooh/characters.atl index f5d5d0e..1d60329 100644 --- a/ATL/Pooh/characters.atl +++ b/ATL/Pooh/characters.atl @@ -54,13 +54,12 @@ quest "Uncle's picture" interaction-hook "read-letter" -;TODO Christopher Robin needs to say something else -; (he's on Galleon's Lap now, not in his home) define-npc "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?" + description "Christopher Robin is your oldest friend. You've known him for + as long as you can remember, and you've really missed + him these past few days!" + says "Pooh, you found me!" + interaction-hook "game-finale" define-npc "Eeyore" description "Eeyore the Donkey is always feeling blue. Somehow he got the diff --git a/ATL/Pooh/dialogue/finale.txt b/ATL/Pooh/dialogue/finale.txt new file mode 100644 index 0000000..53c6993 --- /dev/null +++ b/ATL/Pooh/dialogue/finale.txt @@ -0,0 +1,26 @@ + +Christopher Robin runs towards you and hugs you. + +CHRISTOPHER ROBIN: +I missed you, Pooh! +Come, I need to show you something. + +He takes your hand and leads you to the highest point of Galleon's Lap. +You sit down in the grass and look around. + +CHRISTOPHER ROBIN: +Look, Pooh, that is the world. +Isn't it huge? I want to see it all some day, you know. +We've been playing around the forest all our lives, but I want to see more. +But I'm scared, Pooh - scared of leaving you and Piglet and all the others. +I don't want to go, but I think it's time. +Just promise you won't forget about me, ever! +Not even when I'm a hundred. + +He looks at you, and you nod solemnly. +Suddenly he laughs, and jumps up. + +CHRISTOPHER ROBIN: +Come, let's go and play, Pooh! +This may be the end of one game, but another one is just starting! + diff --git a/ATL/Pooh/dialogue/poem.txt b/ATL/Pooh/dialogue/poem.txt new file mode 100644 index 0000000..e22cde5 --- /dev/null +++ b/ATL/Pooh/dialogue/poem.txt @@ -0,0 +1,15 @@ + We shall not cease from exploration + And the end of our exploring + Will be to arrive where we started + And know the place for the first time. + Through the unknown, unremembered gate + When the last of earth left to discover + Is that which was the beginning; + At the source of the longest river + The voice of the hidden waterfall + And the children in the apple-tree + Not known, because not looked for + But heard, half-heard, in the stillness + Between two waves of the sea. + + - T.S. Eliot, Little Gidding diff --git a/ATL/Pooh/items.atl b/ATL/Pooh/items.atl index 840d128..456f1ae 100644 --- a/ATL/Pooh/items.atl +++ b/ATL/Pooh/items.atl @@ -177,7 +177,7 @@ description "This is a map of the 100 Acre Wood. The woods may not be that large, but it's still easy to get lost in them. So it may be a good idea to carry this around with you..." - command "study" + command "read" define-item "Card" description " @@ -189,6 +189,7 @@ ................................... ................................... " + command "read" define-item "Golden ring" description "A beautiful golden ring that lies heavily in your hand. diff --git a/ATL/Pooh/pooh-extensions.lisp b/ATL/Pooh/pooh-extensions.lisp index ac451d1..7423238 100644 --- a/ATL/Pooh/pooh-extensions.lisp +++ b/ATL/Pooh/pooh-extensions.lisp @@ -43,12 +43,16 @@ (change-player-health player 1)) (format t "~&You don't have any Extract of Malt!"))) -(defun study (player &optional arg) - "Print out the map" - (unless (member 'map (extract-elements arg)) - (format t "~&What do you want to study?") - (return-from study)) - (print-text-file "../ATL/Pooh/dialogue/woodland-map.txt")) +(add-alias 'read 'read-item) + +(defun read-item (player &optional arg) + "Print out what the player wants to read" + (let ((text-item (fuzzy-match arg '("map" "card")))) + (cond ((equalp text-item "map") + (print-text-file "../ATL/Pooh/dialogue/woodland-map.txt")) + ((equalp text-item "card") + (print-text-file "../ATL/Pooh/dialogue/poem.txt")) + (T (format t "~&What do you want to read?"))))) (defun think (player &optional arg) "Play the intro text." @@ -406,6 +410,17 @@ (format t "~&I'll get even by giving you a little clue for the game.") (sleep 3) (format t "~&How about that?")))) +(defun game-finale (player) + "When the player finds Christopher Robin at Galleon's Lap, the game ends." + (narrate "../ATL/Pooh/dialogue/finale.txt" + '(3 1 1 0 3 2 2 4 3 2 0 3 3 5 3 5 3 3 2 3 2 1 0 2 4 0)) + (let ((npc (get-game-object 'npc "Christopher Robin"))) + (remove-object-attribute npc 'interaction-hook) + (remove-object-attribute npc 'says "Pooh, you found me!") + (set-object-attribute npc 'says + "There's a whole world waiting out there, Pooh. +Shall we go and explore it?"))) + ;; The golden ring is an easter egg referencing, of course, ;; The Lord of the Rings. diff --git a/ATL/Pooh/pooh.atl b/ATL/Pooh/pooh.atl index f8af0b3..0f4832f 100644 --- a/ATL/Pooh/pooh.atl +++ b/ATL/Pooh/pooh.atl @@ -23,4 +23,6 @@ ;TODO development - remove before release define-player "Christopher Robin" description "Christopher Robin is my game dev character." - place "Northern woods" \ No newline at end of file + place "Hill" + item "Key" + item "Map" \ No newline at end of file diff --git a/doc/TODO b/doc/TODO index 0c9390d..f02f30c 100644 --- a/doc/TODO +++ b/doc/TODO @@ -4,4 +4,4 @@ * fix (string-from-list) bug ATL -* add game end sequence +* fix bugs diff --git a/ATL/Pooh/characters.atl b/ATL/Pooh/characters.atl index f5d5d0e..1d60329 100644 --- a/ATL/Pooh/characters.atl +++ b/ATL/Pooh/characters.atl @@ -54,13 +54,12 @@ quest "Uncle's picture" interaction-hook "read-letter" -;TODO Christopher Robin needs to say something else -; (he's on Galleon's Lap now, not in his home) define-npc "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?" + description "Christopher Robin is your oldest friend. You've known him for + as long as you can remember, and you've really missed + him these past few days!" + says "Pooh, you found me!" + interaction-hook "game-finale" define-npc "Eeyore" description "Eeyore the Donkey is always feeling blue. Somehow he got the diff --git a/ATL/Pooh/dialogue/finale.txt b/ATL/Pooh/dialogue/finale.txt new file mode 100644 index 0000000..53c6993 --- /dev/null +++ b/ATL/Pooh/dialogue/finale.txt @@ -0,0 +1,26 @@ + +Christopher Robin runs towards you and hugs you. + +CHRISTOPHER ROBIN: +I missed you, Pooh! +Come, I need to show you something. + +He takes your hand and leads you to the highest point of Galleon's Lap. +You sit down in the grass and look around. + +CHRISTOPHER ROBIN: +Look, Pooh, that is the world. +Isn't it huge? I want to see it all some day, you know. +We've been playing around the forest all our lives, but I want to see more. +But I'm scared, Pooh - scared of leaving you and Piglet and all the others. +I don't want to go, but I think it's time. +Just promise you won't forget about me, ever! +Not even when I'm a hundred. + +He looks at you, and you nod solemnly. +Suddenly he laughs, and jumps up. + +CHRISTOPHER ROBIN: +Come, let's go and play, Pooh! +This may be the end of one game, but another one is just starting! + diff --git a/ATL/Pooh/dialogue/poem.txt b/ATL/Pooh/dialogue/poem.txt new file mode 100644 index 0000000..e22cde5 --- /dev/null +++ b/ATL/Pooh/dialogue/poem.txt @@ -0,0 +1,15 @@ + We shall not cease from exploration + And the end of our exploring + Will be to arrive where we started + And know the place for the first time. + Through the unknown, unremembered gate + When the last of earth left to discover + Is that which was the beginning; + At the source of the longest river + The voice of the hidden waterfall + And the children in the apple-tree + Not known, because not looked for + But heard, half-heard, in the stillness + Between two waves of the sea. + + - T.S. Eliot, Little Gidding diff --git a/ATL/Pooh/items.atl b/ATL/Pooh/items.atl index 840d128..456f1ae 100644 --- a/ATL/Pooh/items.atl +++ b/ATL/Pooh/items.atl @@ -177,7 +177,7 @@ description "This is a map of the 100 Acre Wood. The woods may not be that large, but it's still easy to get lost in them. So it may be a good idea to carry this around with you..." - command "study" + command "read" define-item "Card" description " @@ -189,6 +189,7 @@ ................................... ................................... " + command "read" define-item "Golden ring" description "A beautiful golden ring that lies heavily in your hand. diff --git a/ATL/Pooh/pooh-extensions.lisp b/ATL/Pooh/pooh-extensions.lisp index ac451d1..7423238 100644 --- a/ATL/Pooh/pooh-extensions.lisp +++ b/ATL/Pooh/pooh-extensions.lisp @@ -43,12 +43,16 @@ (change-player-health player 1)) (format t "~&You don't have any Extract of Malt!"))) -(defun study (player &optional arg) - "Print out the map" - (unless (member 'map (extract-elements arg)) - (format t "~&What do you want to study?") - (return-from study)) - (print-text-file "../ATL/Pooh/dialogue/woodland-map.txt")) +(add-alias 'read 'read-item) + +(defun read-item (player &optional arg) + "Print out what the player wants to read" + (let ((text-item (fuzzy-match arg '("map" "card")))) + (cond ((equalp text-item "map") + (print-text-file "../ATL/Pooh/dialogue/woodland-map.txt")) + ((equalp text-item "card") + (print-text-file "../ATL/Pooh/dialogue/poem.txt")) + (T (format t "~&What do you want to read?"))))) (defun think (player &optional arg) "Play the intro text." @@ -406,6 +410,17 @@ (format t "~&I'll get even by giving you a little clue for the game.") (sleep 3) (format t "~&How about that?")))) +(defun game-finale (player) + "When the player finds Christopher Robin at Galleon's Lap, the game ends." + (narrate "../ATL/Pooh/dialogue/finale.txt" + '(3 1 1 0 3 2 2 4 3 2 0 3 3 5 3 5 3 3 2 3 2 1 0 2 4 0)) + (let ((npc (get-game-object 'npc "Christopher Robin"))) + (remove-object-attribute npc 'interaction-hook) + (remove-object-attribute npc 'says "Pooh, you found me!") + (set-object-attribute npc 'says + "There's a whole world waiting out there, Pooh. +Shall we go and explore it?"))) + ;; The golden ring is an easter egg referencing, of course, ;; The Lord of the Rings. diff --git a/ATL/Pooh/pooh.atl b/ATL/Pooh/pooh.atl index f8af0b3..0f4832f 100644 --- a/ATL/Pooh/pooh.atl +++ b/ATL/Pooh/pooh.atl @@ -23,4 +23,6 @@ ;TODO development - remove before release define-player "Christopher Robin" description "Christopher Robin is my game dev character." - place "Northern woods" \ No newline at end of file + place "Hill" + item "Key" + item "Map" \ No newline at end of file diff --git a/doc/TODO b/doc/TODO index 0c9390d..f02f30c 100644 --- a/doc/TODO +++ b/doc/TODO @@ -4,4 +4,4 @@ * fix (string-from-list) bug ATL -* add game end sequence +* fix bugs diff --git a/lisp/game-objects.lisp b/lisp/game-objects.lisp index 4f35069..397df07 100644 --- a/lisp/game-objects.lisp +++ b/lisp/game-objects.lisp @@ -85,7 +85,7 @@ (append (,command ,game-object) '(,value))) (setf (,command ,game-object) ,value))))) -(defun remove-object-attribute (game-object property value) +(defun remove-object-attribute (game-object property &optional value) "Remove 'value' from the attribute 'property' in 'game-object'" ;; Same comment applies as above (let ((command (build-symbol (type-of game-object) "-" property)))