diff --git a/ATL/Pooh/characters.atl b/ATL/Pooh/characters.atl index 0defab1..b875a61 100644 --- a/ATL/Pooh/characters.atl +++ b/ATL/Pooh/characters.atl @@ -47,8 +47,11 @@ precipitation tonight, don't you agree?" says "Christopher Robin appears to be Absent Without Leave. You would not, perchance, happen to be aware of his current location?" + says "I do love to get letters! If I get one some time soon, I shall read + it to you. Improve your education." says "TODO - something about his grandfather" - quest "Reading material" + quest "Grandfather'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) @@ -108,17 +111,14 @@ says "Hello Pooh, how very good to see you! I heard you are looking for my son, Christopher Robin? You are a brave bear to be looking all the way down here! Perhaps we can help you." - quest "Bring honey" + interaction-hook "cheating" define-npc "Mr Shepard" description "Ernest H. Shepard looks like a man with plenty of humour. Right now he is holding a pencil and scribbling around on what would appear to be a map of some sort. Every now and again he laughs quietly to himself, as if enjoying a good joke." - says "Well well well, Pooh the Bear! Hello there, my young friend! - Welcome to our little club! You look rather lost. I think I - know just what you need..." - sells "Magic map" + says "TODO" define-npc "Daniel" description "You really can't tell how old this boy is. Sometimes he looks @@ -145,18 +145,6 @@ reward-item "Hunny" experience 10 -define-quest "Bring honey" - say-before "The three of us are really hungry. Perhaps you could bring us - some of that delicious honey of yours? We'll reward you well. - And if you bring us enough, perhaps you can even persuade Mr - Shepard to give you his map." - say-after "Wow, thank you very much, Pooh! That honey was very good! I - appreciate your sacrifice. Here, take this." - proof-item "Hunny" - experience 5 - money 5 - infinite - define-quest "Bring jacket" say-before "Roo forgot to take his jacket with him, but I'm afraid it's going to start raining soon. Could you take it to him? And while you're @@ -180,22 +168,14 @@ proof-item "Jacket" reward-item "Mushrooms" experience 5 - -define-quest "Reading material" - say-before "I feel in dire need of intellectual stimulation, yet I fear that - my library has few novelties left. If you bring me something - new to read, I shall thank you by reading it to you - after - all, you do not always wish to remain a Bear of Very Little - Brain, do you?" - say-after "Well, you actually found something for me to read! Let's see, - what have we here? A letter? Let's see what it says: - Hmm, harrumph. 'Dear Pooh', hm, this is bad handwriting, - 'Dear Pooh, I have something Very Important to tell you. Come - and meet me quickly at the Galleon's Lap. Your's sinsirly, - Christopher Robin.'" - proof-item "Letter" - experience 5 +define-quest "Grandfather's picture" + say-before "TODO" + say-after "TODO" + proof-item "Picture frame" + reward-item "Hunny" + experience 5 + define-quest "Find Woozle" say-before "Oh Pooh, I found woozle tracks again! I'm pretty sure they weren't mine this time... And now I'm scared to go anywhere diff --git a/ATL/Pooh/characters.atl b/ATL/Pooh/characters.atl index 0defab1..b875a61 100644 --- a/ATL/Pooh/characters.atl +++ b/ATL/Pooh/characters.atl @@ -47,8 +47,11 @@ precipitation tonight, don't you agree?" says "Christopher Robin appears to be Absent Without Leave. You would not, perchance, happen to be aware of his current location?" + says "I do love to get letters! If I get one some time soon, I shall read + it to you. Improve your education." says "TODO - something about his grandfather" - quest "Reading material" + quest "Grandfather'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) @@ -108,17 +111,14 @@ says "Hello Pooh, how very good to see you! I heard you are looking for my son, Christopher Robin? You are a brave bear to be looking all the way down here! Perhaps we can help you." - quest "Bring honey" + interaction-hook "cheating" define-npc "Mr Shepard" description "Ernest H. Shepard looks like a man with plenty of humour. Right now he is holding a pencil and scribbling around on what would appear to be a map of some sort. Every now and again he laughs quietly to himself, as if enjoying a good joke." - says "Well well well, Pooh the Bear! Hello there, my young friend! - Welcome to our little club! You look rather lost. I think I - know just what you need..." - sells "Magic map" + says "TODO" define-npc "Daniel" description "You really can't tell how old this boy is. Sometimes he looks @@ -145,18 +145,6 @@ reward-item "Hunny" experience 10 -define-quest "Bring honey" - say-before "The three of us are really hungry. Perhaps you could bring us - some of that delicious honey of yours? We'll reward you well. - And if you bring us enough, perhaps you can even persuade Mr - Shepard to give you his map." - say-after "Wow, thank you very much, Pooh! That honey was very good! I - appreciate your sacrifice. Here, take this." - proof-item "Hunny" - experience 5 - money 5 - infinite - define-quest "Bring jacket" say-before "Roo forgot to take his jacket with him, but I'm afraid it's going to start raining soon. Could you take it to him? And while you're @@ -180,22 +168,14 @@ proof-item "Jacket" reward-item "Mushrooms" experience 5 - -define-quest "Reading material" - say-before "I feel in dire need of intellectual stimulation, yet I fear that - my library has few novelties left. If you bring me something - new to read, I shall thank you by reading it to you - after - all, you do not always wish to remain a Bear of Very Little - Brain, do you?" - say-after "Well, you actually found something for me to read! Let's see, - what have we here? A letter? Let's see what it says: - Hmm, harrumph. 'Dear Pooh', hm, this is bad handwriting, - 'Dear Pooh, I have something Very Important to tell you. Come - and meet me quickly at the Galleon's Lap. Your's sinsirly, - Christopher Robin.'" - proof-item "Letter" - experience 5 +define-quest "Grandfather's picture" + say-before "TODO" + say-after "TODO" + proof-item "Picture frame" + reward-item "Hunny" + experience 5 + define-quest "Find Woozle" say-before "Oh Pooh, I found woozle tracks again! I'm pretty sure they weren't mine this time... And now I'm scared to go anywhere diff --git a/ATL/Pooh/intro.txt b/ATL/Pooh/intro.txt new file mode 100644 index 0000000..1c15ab6 --- /dev/null +++ b/ATL/Pooh/intro.txt @@ -0,0 +1,13 @@ +You have the feeling that you ought to be doing something. +You tap your paw against your head: Think Think Think! +You realize you haven't seen Christopher Robin in a long time. +How about visiting him again? +That sounds like a good idea. +You suddenly realize you are hungry. +Perhaps it would be better to have a little something before you go. +You go over to your shelf to take out a jar of honey. +You open the shelf door. +It's empty! +You pick yourself back up off the floor and tell your legs to behave. +You postpone your plans to visit Christopher Robin. +You first need to refill your honey stocks! diff --git a/ATL/Pooh/characters.atl b/ATL/Pooh/characters.atl index 0defab1..b875a61 100644 --- a/ATL/Pooh/characters.atl +++ b/ATL/Pooh/characters.atl @@ -47,8 +47,11 @@ precipitation tonight, don't you agree?" says "Christopher Robin appears to be Absent Without Leave. You would not, perchance, happen to be aware of his current location?" + says "I do love to get letters! If I get one some time soon, I shall read + it to you. Improve your education." says "TODO - something about his grandfather" - quest "Reading material" + quest "Grandfather'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) @@ -108,17 +111,14 @@ says "Hello Pooh, how very good to see you! I heard you are looking for my son, Christopher Robin? You are a brave bear to be looking all the way down here! Perhaps we can help you." - quest "Bring honey" + interaction-hook "cheating" define-npc "Mr Shepard" description "Ernest H. Shepard looks like a man with plenty of humour. Right now he is holding a pencil and scribbling around on what would appear to be a map of some sort. Every now and again he laughs quietly to himself, as if enjoying a good joke." - says "Well well well, Pooh the Bear! Hello there, my young friend! - Welcome to our little club! You look rather lost. I think I - know just what you need..." - sells "Magic map" + says "TODO" define-npc "Daniel" description "You really can't tell how old this boy is. Sometimes he looks @@ -145,18 +145,6 @@ reward-item "Hunny" experience 10 -define-quest "Bring honey" - say-before "The three of us are really hungry. Perhaps you could bring us - some of that delicious honey of yours? We'll reward you well. - And if you bring us enough, perhaps you can even persuade Mr - Shepard to give you his map." - say-after "Wow, thank you very much, Pooh! That honey was very good! I - appreciate your sacrifice. Here, take this." - proof-item "Hunny" - experience 5 - money 5 - infinite - define-quest "Bring jacket" say-before "Roo forgot to take his jacket with him, but I'm afraid it's going to start raining soon. Could you take it to him? And while you're @@ -180,22 +168,14 @@ proof-item "Jacket" reward-item "Mushrooms" experience 5 - -define-quest "Reading material" - say-before "I feel in dire need of intellectual stimulation, yet I fear that - my library has few novelties left. If you bring me something - new to read, I shall thank you by reading it to you - after - all, you do not always wish to remain a Bear of Very Little - Brain, do you?" - say-after "Well, you actually found something for me to read! Let's see, - what have we here? A letter? Let's see what it says: - Hmm, harrumph. 'Dear Pooh', hm, this is bad handwriting, - 'Dear Pooh, I have something Very Important to tell you. Come - and meet me quickly at the Galleon's Lap. Your's sinsirly, - Christopher Robin.'" - proof-item "Letter" - experience 5 +define-quest "Grandfather's picture" + say-before "TODO" + say-after "TODO" + proof-item "Picture frame" + reward-item "Hunny" + experience 5 + define-quest "Find Woozle" say-before "Oh Pooh, I found woozle tracks again! I'm pretty sure they weren't mine this time... And now I'm scared to go anywhere diff --git a/ATL/Pooh/intro.txt b/ATL/Pooh/intro.txt new file mode 100644 index 0000000..1c15ab6 --- /dev/null +++ b/ATL/Pooh/intro.txt @@ -0,0 +1,13 @@ +You have the feeling that you ought to be doing something. +You tap your paw against your head: Think Think Think! +You realize you haven't seen Christopher Robin in a long time. +How about visiting him again? +That sounds like a good idea. +You suddenly realize you are hungry. +Perhaps it would be better to have a little something before you go. +You go over to your shelf to take out a jar of honey. +You open the shelf door. +It's empty! +You pick yourself back up off the floor and tell your legs to behave. +You postpone your plans to visit Christopher Robin. +You first need to refill your honey stocks! diff --git a/ATL/Pooh/items.atl b/ATL/Pooh/items.atl index f112b09..74a82fe 100644 --- a/ATL/Pooh/items.atl +++ b/ATL/Pooh/items.atl @@ -15,10 +15,30 @@ might, you can't get any more out of it now. What a shame. Perhaps you should refill it." +define-item "Shelf" + description "This is your larder, a wooden shelf with 12 compartments for your honey jars. + All the slots are empty!" + fixed + +define-item "Storage object" + ; This is a special item that I need to store state about the player's progress. + ; It never appears in the game. + description "0" + +define-item "Key" + description "This is the key to your larder. You smile. Life is good when you + have plenty of honey!" + define-item "Letter" description "A closed letter, addressed to Somebody in Christopher Robin's handwriting. You think it's a letter to you, but as you are just a Bear of Very Little Brain, you have no way of reading it..." + +define-item "Clock" + description "This is a wall clock Christopher Robin once gave you. It's very + useful, especially as it's stuck to five-to-eleven. So surely it's + time for a little something now, isn't it?" + fixed define-item "Pooh's sign" description " @@ -70,6 +90,11 @@ play around with." infinite +define-item "String" + description "A roll of string, neatly wrapped up. This is the kind of string + you can fix almost anything with." + infinite + define-item "Pine cone" description "Pine cones are great fun for playing with. There's nothing quite like a good pine cone battle in the woods with your friends!" @@ -113,6 +138,12 @@ even tried to give it a natural flair by shaping it like a tail. Hm, that does look very much like a tail!" +define-item "Letterbox" + description "Nobody in the Forest can read as well as Owl. He loves it, and + he loves getting letters. Unfortunately, he has to write most + of them himself." + fixed + define-item "Lamp" description "This lamp has a bowl at the bottom for the oil, a glass casing to protect the wick and a metal grip by which to carry it. It's @@ -140,13 +171,6 @@ ................................... ................................... " - -define-item "Magic map" - description "This is a strange map. It always seems to be changing. One - moment it will show you one thing, the next something completely - different. Yet, looking at it, you have the very distinct - impression that it wants you to walk up a hill." - cost 50 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 0defab1..b875a61 100644 --- a/ATL/Pooh/characters.atl +++ b/ATL/Pooh/characters.atl @@ -47,8 +47,11 @@ precipitation tonight, don't you agree?" says "Christopher Robin appears to be Absent Without Leave. You would not, perchance, happen to be aware of his current location?" + says "I do love to get letters! If I get one some time soon, I shall read + it to you. Improve your education." says "TODO - something about his grandfather" - quest "Reading material" + quest "Grandfather'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) @@ -108,17 +111,14 @@ says "Hello Pooh, how very good to see you! I heard you are looking for my son, Christopher Robin? You are a brave bear to be looking all the way down here! Perhaps we can help you." - quest "Bring honey" + interaction-hook "cheating" define-npc "Mr Shepard" description "Ernest H. Shepard looks like a man with plenty of humour. Right now he is holding a pencil and scribbling around on what would appear to be a map of some sort. Every now and again he laughs quietly to himself, as if enjoying a good joke." - says "Well well well, Pooh the Bear! Hello there, my young friend! - Welcome to our little club! You look rather lost. I think I - know just what you need..." - sells "Magic map" + says "TODO" define-npc "Daniel" description "You really can't tell how old this boy is. Sometimes he looks @@ -145,18 +145,6 @@ reward-item "Hunny" experience 10 -define-quest "Bring honey" - say-before "The three of us are really hungry. Perhaps you could bring us - some of that delicious honey of yours? We'll reward you well. - And if you bring us enough, perhaps you can even persuade Mr - Shepard to give you his map." - say-after "Wow, thank you very much, Pooh! That honey was very good! I - appreciate your sacrifice. Here, take this." - proof-item "Hunny" - experience 5 - money 5 - infinite - define-quest "Bring jacket" say-before "Roo forgot to take his jacket with him, but I'm afraid it's going to start raining soon. Could you take it to him? And while you're @@ -180,22 +168,14 @@ proof-item "Jacket" reward-item "Mushrooms" experience 5 - -define-quest "Reading material" - say-before "I feel in dire need of intellectual stimulation, yet I fear that - my library has few novelties left. If you bring me something - new to read, I shall thank you by reading it to you - after - all, you do not always wish to remain a Bear of Very Little - Brain, do you?" - say-after "Well, you actually found something for me to read! Let's see, - what have we here? A letter? Let's see what it says: - Hmm, harrumph. 'Dear Pooh', hm, this is bad handwriting, - 'Dear Pooh, I have something Very Important to tell you. Come - and meet me quickly at the Galleon's Lap. Your's sinsirly, - Christopher Robin.'" - proof-item "Letter" - experience 5 +define-quest "Grandfather's picture" + say-before "TODO" + say-after "TODO" + proof-item "Picture frame" + reward-item "Hunny" + experience 5 + define-quest "Find Woozle" say-before "Oh Pooh, I found woozle tracks again! I'm pretty sure they weren't mine this time... And now I'm scared to go anywhere diff --git a/ATL/Pooh/intro.txt b/ATL/Pooh/intro.txt new file mode 100644 index 0000000..1c15ab6 --- /dev/null +++ b/ATL/Pooh/intro.txt @@ -0,0 +1,13 @@ +You have the feeling that you ought to be doing something. +You tap your paw against your head: Think Think Think! +You realize you haven't seen Christopher Robin in a long time. +How about visiting him again? +That sounds like a good idea. +You suddenly realize you are hungry. +Perhaps it would be better to have a little something before you go. +You go over to your shelf to take out a jar of honey. +You open the shelf door. +It's empty! +You pick yourself back up off the floor and tell your legs to behave. +You postpone your plans to visit Christopher Robin. +You first need to refill your honey stocks! diff --git a/ATL/Pooh/items.atl b/ATL/Pooh/items.atl index f112b09..74a82fe 100644 --- a/ATL/Pooh/items.atl +++ b/ATL/Pooh/items.atl @@ -15,10 +15,30 @@ might, you can't get any more out of it now. What a shame. Perhaps you should refill it." +define-item "Shelf" + description "This is your larder, a wooden shelf with 12 compartments for your honey jars. + All the slots are empty!" + fixed + +define-item "Storage object" + ; This is a special item that I need to store state about the player's progress. + ; It never appears in the game. + description "0" + +define-item "Key" + description "This is the key to your larder. You smile. Life is good when you + have plenty of honey!" + define-item "Letter" description "A closed letter, addressed to Somebody in Christopher Robin's handwriting. You think it's a letter to you, but as you are just a Bear of Very Little Brain, you have no way of reading it..." + +define-item "Clock" + description "This is a wall clock Christopher Robin once gave you. It's very + useful, especially as it's stuck to five-to-eleven. So surely it's + time for a little something now, isn't it?" + fixed define-item "Pooh's sign" description " @@ -70,6 +90,11 @@ play around with." infinite +define-item "String" + description "A roll of string, neatly wrapped up. This is the kind of string + you can fix almost anything with." + infinite + define-item "Pine cone" description "Pine cones are great fun for playing with. There's nothing quite like a good pine cone battle in the woods with your friends!" @@ -113,6 +138,12 @@ even tried to give it a natural flair by shaping it like a tail. Hm, that does look very much like a tail!" +define-item "Letterbox" + description "Nobody in the Forest can read as well as Owl. He loves it, and + he loves getting letters. Unfortunately, he has to write most + of them himself." + fixed + define-item "Lamp" description "This lamp has a bowl at the bottom for the oil, a glass casing to protect the wick and a metal grip by which to carry it. It's @@ -140,13 +171,6 @@ ................................... ................................... " - -define-item "Magic map" - description "This is a strange map. It always seems to be changing. One - moment it will show you one thing, the next something completely - different. Yet, looking at it, you have the very distinct - impression that it wants you to walk up a hill." - cost 50 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 82d5681..d9a8630 100644 --- a/ATL/Pooh/pooh-extensions.lisp +++ b/ATL/Pooh/pooh-extensions.lisp @@ -56,6 +56,37 @@ (return-from study)) (print-text-file "../ATL/Pooh/woodland-map.txt")) +(defun think (player &optional arg) + "Play the intro text." + (let ((intro (load-text-file "../ATL/Pooh/intro.txt"))) + (dolist (line intro) + (when line (format t "~&~A" line)) + (sleep 3)))) + +(defun store (player &optional arg) + "Store a jar of honey in the larder." + (let ((base-descr "This is your larder, a wooden shelf with 12 compartments for your honey jars.") + (num-list '("one jar" "two jars" "three jars" "four jars" "five jars" + "six jars" "seven jars" "eight jars" "nine jars" + "ten jars" "eleven jars" "twelve jars")) + (current-jars (read-from-string (item-description (get-game-object 'item "Storage object"))))) + (if (member "Hunny" (player-item player) :test #'equalp) + (unless (= current-jars 12) + (format t "~&You deposit one jar of honey in your larder.") + (remove-object-attribute player 'item "Hunny") + (incf current-jars) + (setf (item-description (get-game-object 'item "Storage object")) + (to-string current-jars)) + (setf (item-description (get-game-object 'item "Shelf")) + (concatenate 'string base-descr (string #\Newline) "It contains " + (nth (1- current-jars) num-list) " of honey.")) + (when (= current-jars 12) (sleep 2) + (format t "~&Your larder is now full!") (sleep 2) + (format t "~&You lock it and put the key in your pocket.") (sleep 2) + (format t "~&Now, how about visiting Christopher Robin?") (sleep 1) + (set-object-attribute player 'item "Key"))) + (format t "~&You don't have any honey to store in your larder!")))) + (defun jump (player &optional arg) "Jump off Pooh's branch onto his porch." (format t "~&You look down nervously, then jump off the branch.") @@ -305,6 +336,28 @@ "Nothing happens." "Nobody answers." "No reply."))) (format t "~&~A" (random-elt consequences)))) +(defun deposit (player &optional arg) + "Deposit a letter for Owl" + (if (member "Letter" (player-item player) :test #'equalp) + (when (y-or-n-p "Deposit the letter for Owl?") + (remove-object-attribute player 'item "Letter") + (set-object-attribute (get-game-object 'place "Owl's home") + 'hidden "Letter") + (format t "~&You throw the letter into the letter box.")) + (format t "~&You don't have a letter to deposit here!"))) + +(defun read-letter (player &optional arg) + (let ((place (get-game-object 'place "Owl's home"))) + (when (or (member "Letter" (place-item place) :test #'equalp) + (member "Letter" (place-hidden place) :test #'equalp)) + (sleep 2) + (format t "~&~%OWL:~%I have received a letter! Let me read it to you:") (sleep 3) + (format t "~&Hrrmpf, 'Dear Pooh,'") (sleep 2) + (format t "~&Wait, this letter isn't to me at all? Oh well, no matter.") (sleep 3) + (format t "~&Ahem. 'I need to meet you urgently.") (sleep 2) + (format t "~&Come to see me at Galleon's Lap.") (sleep 2) + (format t "~&Sincerely, Christopher Robin'")))) + (defun smell-honey (player &optional arg) "The player smells honey when leaving the tunnel" (let ((place (get-game-object 'place (player-place player)))) @@ -328,6 +381,11 @@ (remove-object-attribute place 'item "Woozle") (format t "~&The Woozle runs away!"))) +(defun craft (player &optional arg) + "The player can craft various items in Christopher Robin's workshop." + ;TODO + ) + ;; 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 0defab1..b875a61 100644 --- a/ATL/Pooh/characters.atl +++ b/ATL/Pooh/characters.atl @@ -47,8 +47,11 @@ precipitation tonight, don't you agree?" says "Christopher Robin appears to be Absent Without Leave. You would not, perchance, happen to be aware of his current location?" + says "I do love to get letters! If I get one some time soon, I shall read + it to you. Improve your education." says "TODO - something about his grandfather" - quest "Reading material" + quest "Grandfather'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) @@ -108,17 +111,14 @@ says "Hello Pooh, how very good to see you! I heard you are looking for my son, Christopher Robin? You are a brave bear to be looking all the way down here! Perhaps we can help you." - quest "Bring honey" + interaction-hook "cheating" define-npc "Mr Shepard" description "Ernest H. Shepard looks like a man with plenty of humour. Right now he is holding a pencil and scribbling around on what would appear to be a map of some sort. Every now and again he laughs quietly to himself, as if enjoying a good joke." - says "Well well well, Pooh the Bear! Hello there, my young friend! - Welcome to our little club! You look rather lost. I think I - know just what you need..." - sells "Magic map" + says "TODO" define-npc "Daniel" description "You really can't tell how old this boy is. Sometimes he looks @@ -145,18 +145,6 @@ reward-item "Hunny" experience 10 -define-quest "Bring honey" - say-before "The three of us are really hungry. Perhaps you could bring us - some of that delicious honey of yours? We'll reward you well. - And if you bring us enough, perhaps you can even persuade Mr - Shepard to give you his map." - say-after "Wow, thank you very much, Pooh! That honey was very good! I - appreciate your sacrifice. Here, take this." - proof-item "Hunny" - experience 5 - money 5 - infinite - define-quest "Bring jacket" say-before "Roo forgot to take his jacket with him, but I'm afraid it's going to start raining soon. Could you take it to him? And while you're @@ -180,22 +168,14 @@ proof-item "Jacket" reward-item "Mushrooms" experience 5 - -define-quest "Reading material" - say-before "I feel in dire need of intellectual stimulation, yet I fear that - my library has few novelties left. If you bring me something - new to read, I shall thank you by reading it to you - after - all, you do not always wish to remain a Bear of Very Little - Brain, do you?" - say-after "Well, you actually found something for me to read! Let's see, - what have we here? A letter? Let's see what it says: - Hmm, harrumph. 'Dear Pooh', hm, this is bad handwriting, - 'Dear Pooh, I have something Very Important to tell you. Come - and meet me quickly at the Galleon's Lap. Your's sinsirly, - Christopher Robin.'" - proof-item "Letter" - experience 5 +define-quest "Grandfather's picture" + say-before "TODO" + say-after "TODO" + proof-item "Picture frame" + reward-item "Hunny" + experience 5 + define-quest "Find Woozle" say-before "Oh Pooh, I found woozle tracks again! I'm pretty sure they weren't mine this time... And now I'm scared to go anywhere diff --git a/ATL/Pooh/intro.txt b/ATL/Pooh/intro.txt new file mode 100644 index 0000000..1c15ab6 --- /dev/null +++ b/ATL/Pooh/intro.txt @@ -0,0 +1,13 @@ +You have the feeling that you ought to be doing something. +You tap your paw against your head: Think Think Think! +You realize you haven't seen Christopher Robin in a long time. +How about visiting him again? +That sounds like a good idea. +You suddenly realize you are hungry. +Perhaps it would be better to have a little something before you go. +You go over to your shelf to take out a jar of honey. +You open the shelf door. +It's empty! +You pick yourself back up off the floor and tell your legs to behave. +You postpone your plans to visit Christopher Robin. +You first need to refill your honey stocks! diff --git a/ATL/Pooh/items.atl b/ATL/Pooh/items.atl index f112b09..74a82fe 100644 --- a/ATL/Pooh/items.atl +++ b/ATL/Pooh/items.atl @@ -15,10 +15,30 @@ might, you can't get any more out of it now. What a shame. Perhaps you should refill it." +define-item "Shelf" + description "This is your larder, a wooden shelf with 12 compartments for your honey jars. + All the slots are empty!" + fixed + +define-item "Storage object" + ; This is a special item that I need to store state about the player's progress. + ; It never appears in the game. + description "0" + +define-item "Key" + description "This is the key to your larder. You smile. Life is good when you + have plenty of honey!" + define-item "Letter" description "A closed letter, addressed to Somebody in Christopher Robin's handwriting. You think it's a letter to you, but as you are just a Bear of Very Little Brain, you have no way of reading it..." + +define-item "Clock" + description "This is a wall clock Christopher Robin once gave you. It's very + useful, especially as it's stuck to five-to-eleven. So surely it's + time for a little something now, isn't it?" + fixed define-item "Pooh's sign" description " @@ -70,6 +90,11 @@ play around with." infinite +define-item "String" + description "A roll of string, neatly wrapped up. This is the kind of string + you can fix almost anything with." + infinite + define-item "Pine cone" description "Pine cones are great fun for playing with. There's nothing quite like a good pine cone battle in the woods with your friends!" @@ -113,6 +138,12 @@ even tried to give it a natural flair by shaping it like a tail. Hm, that does look very much like a tail!" +define-item "Letterbox" + description "Nobody in the Forest can read as well as Owl. He loves it, and + he loves getting letters. Unfortunately, he has to write most + of them himself." + fixed + define-item "Lamp" description "This lamp has a bowl at the bottom for the oil, a glass casing to protect the wick and a metal grip by which to carry it. It's @@ -140,13 +171,6 @@ ................................... ................................... " - -define-item "Magic map" - description "This is a strange map. It always seems to be changing. One - moment it will show you one thing, the next something completely - different. Yet, looking at it, you have the very distinct - impression that it wants you to walk up a hill." - cost 50 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 82d5681..d9a8630 100644 --- a/ATL/Pooh/pooh-extensions.lisp +++ b/ATL/Pooh/pooh-extensions.lisp @@ -56,6 +56,37 @@ (return-from study)) (print-text-file "../ATL/Pooh/woodland-map.txt")) +(defun think (player &optional arg) + "Play the intro text." + (let ((intro (load-text-file "../ATL/Pooh/intro.txt"))) + (dolist (line intro) + (when line (format t "~&~A" line)) + (sleep 3)))) + +(defun store (player &optional arg) + "Store a jar of honey in the larder." + (let ((base-descr "This is your larder, a wooden shelf with 12 compartments for your honey jars.") + (num-list '("one jar" "two jars" "three jars" "four jars" "five jars" + "six jars" "seven jars" "eight jars" "nine jars" + "ten jars" "eleven jars" "twelve jars")) + (current-jars (read-from-string (item-description (get-game-object 'item "Storage object"))))) + (if (member "Hunny" (player-item player) :test #'equalp) + (unless (= current-jars 12) + (format t "~&You deposit one jar of honey in your larder.") + (remove-object-attribute player 'item "Hunny") + (incf current-jars) + (setf (item-description (get-game-object 'item "Storage object")) + (to-string current-jars)) + (setf (item-description (get-game-object 'item "Shelf")) + (concatenate 'string base-descr (string #\Newline) "It contains " + (nth (1- current-jars) num-list) " of honey.")) + (when (= current-jars 12) (sleep 2) + (format t "~&Your larder is now full!") (sleep 2) + (format t "~&You lock it and put the key in your pocket.") (sleep 2) + (format t "~&Now, how about visiting Christopher Robin?") (sleep 1) + (set-object-attribute player 'item "Key"))) + (format t "~&You don't have any honey to store in your larder!")))) + (defun jump (player &optional arg) "Jump off Pooh's branch onto his porch." (format t "~&You look down nervously, then jump off the branch.") @@ -305,6 +336,28 @@ "Nothing happens." "Nobody answers." "No reply."))) (format t "~&~A" (random-elt consequences)))) +(defun deposit (player &optional arg) + "Deposit a letter for Owl" + (if (member "Letter" (player-item player) :test #'equalp) + (when (y-or-n-p "Deposit the letter for Owl?") + (remove-object-attribute player 'item "Letter") + (set-object-attribute (get-game-object 'place "Owl's home") + 'hidden "Letter") + (format t "~&You throw the letter into the letter box.")) + (format t "~&You don't have a letter to deposit here!"))) + +(defun read-letter (player &optional arg) + (let ((place (get-game-object 'place "Owl's home"))) + (when (or (member "Letter" (place-item place) :test #'equalp) + (member "Letter" (place-hidden place) :test #'equalp)) + (sleep 2) + (format t "~&~%OWL:~%I have received a letter! Let me read it to you:") (sleep 3) + (format t "~&Hrrmpf, 'Dear Pooh,'") (sleep 2) + (format t "~&Wait, this letter isn't to me at all? Oh well, no matter.") (sleep 3) + (format t "~&Ahem. 'I need to meet you urgently.") (sleep 2) + (format t "~&Come to see me at Galleon's Lap.") (sleep 2) + (format t "~&Sincerely, Christopher Robin'")))) + (defun smell-honey (player &optional arg) "The player smells honey when leaving the tunnel" (let ((place (get-game-object 'place (player-place player)))) @@ -328,6 +381,11 @@ (remove-object-attribute place 'item "Woozle") (format t "~&The Woozle runs away!"))) +(defun craft (player &optional arg) + "The player can craft various items in Christopher Robin's workshop." + ;TODO + ) + ;; 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 e886759..05a355a 100644 --- a/ATL/Pooh/pooh.atl +++ b/ATL/Pooh/pooh.atl @@ -23,4 +23,5 @@ ;TODO development - remove before release define-player "Christopher Robin" description "Christopher Robin is my game dev character." - place "Piglet's home" \ No newline at end of file + place "Owl's porch" + item "Letter" ;FIXME gives problems \ No newline at end of file diff --git a/ATL/Pooh/characters.atl b/ATL/Pooh/characters.atl index 0defab1..b875a61 100644 --- a/ATL/Pooh/characters.atl +++ b/ATL/Pooh/characters.atl @@ -47,8 +47,11 @@ precipitation tonight, don't you agree?" says "Christopher Robin appears to be Absent Without Leave. You would not, perchance, happen to be aware of his current location?" + says "I do love to get letters! If I get one some time soon, I shall read + it to you. Improve your education." says "TODO - something about his grandfather" - quest "Reading material" + quest "Grandfather'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) @@ -108,17 +111,14 @@ says "Hello Pooh, how very good to see you! I heard you are looking for my son, Christopher Robin? You are a brave bear to be looking all the way down here! Perhaps we can help you." - quest "Bring honey" + interaction-hook "cheating" define-npc "Mr Shepard" description "Ernest H. Shepard looks like a man with plenty of humour. Right now he is holding a pencil and scribbling around on what would appear to be a map of some sort. Every now and again he laughs quietly to himself, as if enjoying a good joke." - says "Well well well, Pooh the Bear! Hello there, my young friend! - Welcome to our little club! You look rather lost. I think I - know just what you need..." - sells "Magic map" + says "TODO" define-npc "Daniel" description "You really can't tell how old this boy is. Sometimes he looks @@ -145,18 +145,6 @@ reward-item "Hunny" experience 10 -define-quest "Bring honey" - say-before "The three of us are really hungry. Perhaps you could bring us - some of that delicious honey of yours? We'll reward you well. - And if you bring us enough, perhaps you can even persuade Mr - Shepard to give you his map." - say-after "Wow, thank you very much, Pooh! That honey was very good! I - appreciate your sacrifice. Here, take this." - proof-item "Hunny" - experience 5 - money 5 - infinite - define-quest "Bring jacket" say-before "Roo forgot to take his jacket with him, but I'm afraid it's going to start raining soon. Could you take it to him? And while you're @@ -180,22 +168,14 @@ proof-item "Jacket" reward-item "Mushrooms" experience 5 - -define-quest "Reading material" - say-before "I feel in dire need of intellectual stimulation, yet I fear that - my library has few novelties left. If you bring me something - new to read, I shall thank you by reading it to you - after - all, you do not always wish to remain a Bear of Very Little - Brain, do you?" - say-after "Well, you actually found something for me to read! Let's see, - what have we here? A letter? Let's see what it says: - Hmm, harrumph. 'Dear Pooh', hm, this is bad handwriting, - 'Dear Pooh, I have something Very Important to tell you. Come - and meet me quickly at the Galleon's Lap. Your's sinsirly, - Christopher Robin.'" - proof-item "Letter" - experience 5 +define-quest "Grandfather's picture" + say-before "TODO" + say-after "TODO" + proof-item "Picture frame" + reward-item "Hunny" + experience 5 + define-quest "Find Woozle" say-before "Oh Pooh, I found woozle tracks again! I'm pretty sure they weren't mine this time... And now I'm scared to go anywhere diff --git a/ATL/Pooh/intro.txt b/ATL/Pooh/intro.txt new file mode 100644 index 0000000..1c15ab6 --- /dev/null +++ b/ATL/Pooh/intro.txt @@ -0,0 +1,13 @@ +You have the feeling that you ought to be doing something. +You tap your paw against your head: Think Think Think! +You realize you haven't seen Christopher Robin in a long time. +How about visiting him again? +That sounds like a good idea. +You suddenly realize you are hungry. +Perhaps it would be better to have a little something before you go. +You go over to your shelf to take out a jar of honey. +You open the shelf door. +It's empty! +You pick yourself back up off the floor and tell your legs to behave. +You postpone your plans to visit Christopher Robin. +You first need to refill your honey stocks! diff --git a/ATL/Pooh/items.atl b/ATL/Pooh/items.atl index f112b09..74a82fe 100644 --- a/ATL/Pooh/items.atl +++ b/ATL/Pooh/items.atl @@ -15,10 +15,30 @@ might, you can't get any more out of it now. What a shame. Perhaps you should refill it." +define-item "Shelf" + description "This is your larder, a wooden shelf with 12 compartments for your honey jars. + All the slots are empty!" + fixed + +define-item "Storage object" + ; This is a special item that I need to store state about the player's progress. + ; It never appears in the game. + description "0" + +define-item "Key" + description "This is the key to your larder. You smile. Life is good when you + have plenty of honey!" + define-item "Letter" description "A closed letter, addressed to Somebody in Christopher Robin's handwriting. You think it's a letter to you, but as you are just a Bear of Very Little Brain, you have no way of reading it..." + +define-item "Clock" + description "This is a wall clock Christopher Robin once gave you. It's very + useful, especially as it's stuck to five-to-eleven. So surely it's + time for a little something now, isn't it?" + fixed define-item "Pooh's sign" description " @@ -70,6 +90,11 @@ play around with." infinite +define-item "String" + description "A roll of string, neatly wrapped up. This is the kind of string + you can fix almost anything with." + infinite + define-item "Pine cone" description "Pine cones are great fun for playing with. There's nothing quite like a good pine cone battle in the woods with your friends!" @@ -113,6 +138,12 @@ even tried to give it a natural flair by shaping it like a tail. Hm, that does look very much like a tail!" +define-item "Letterbox" + description "Nobody in the Forest can read as well as Owl. He loves it, and + he loves getting letters. Unfortunately, he has to write most + of them himself." + fixed + define-item "Lamp" description "This lamp has a bowl at the bottom for the oil, a glass casing to protect the wick and a metal grip by which to carry it. It's @@ -140,13 +171,6 @@ ................................... ................................... " - -define-item "Magic map" - description "This is a strange map. It always seems to be changing. One - moment it will show you one thing, the next something completely - different. Yet, looking at it, you have the very distinct - impression that it wants you to walk up a hill." - cost 50 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 82d5681..d9a8630 100644 --- a/ATL/Pooh/pooh-extensions.lisp +++ b/ATL/Pooh/pooh-extensions.lisp @@ -56,6 +56,37 @@ (return-from study)) (print-text-file "../ATL/Pooh/woodland-map.txt")) +(defun think (player &optional arg) + "Play the intro text." + (let ((intro (load-text-file "../ATL/Pooh/intro.txt"))) + (dolist (line intro) + (when line (format t "~&~A" line)) + (sleep 3)))) + +(defun store (player &optional arg) + "Store a jar of honey in the larder." + (let ((base-descr "This is your larder, a wooden shelf with 12 compartments for your honey jars.") + (num-list '("one jar" "two jars" "three jars" "four jars" "five jars" + "six jars" "seven jars" "eight jars" "nine jars" + "ten jars" "eleven jars" "twelve jars")) + (current-jars (read-from-string (item-description (get-game-object 'item "Storage object"))))) + (if (member "Hunny" (player-item player) :test #'equalp) + (unless (= current-jars 12) + (format t "~&You deposit one jar of honey in your larder.") + (remove-object-attribute player 'item "Hunny") + (incf current-jars) + (setf (item-description (get-game-object 'item "Storage object")) + (to-string current-jars)) + (setf (item-description (get-game-object 'item "Shelf")) + (concatenate 'string base-descr (string #\Newline) "It contains " + (nth (1- current-jars) num-list) " of honey.")) + (when (= current-jars 12) (sleep 2) + (format t "~&Your larder is now full!") (sleep 2) + (format t "~&You lock it and put the key in your pocket.") (sleep 2) + (format t "~&Now, how about visiting Christopher Robin?") (sleep 1) + (set-object-attribute player 'item "Key"))) + (format t "~&You don't have any honey to store in your larder!")))) + (defun jump (player &optional arg) "Jump off Pooh's branch onto his porch." (format t "~&You look down nervously, then jump off the branch.") @@ -305,6 +336,28 @@ "Nothing happens." "Nobody answers." "No reply."))) (format t "~&~A" (random-elt consequences)))) +(defun deposit (player &optional arg) + "Deposit a letter for Owl" + (if (member "Letter" (player-item player) :test #'equalp) + (when (y-or-n-p "Deposit the letter for Owl?") + (remove-object-attribute player 'item "Letter") + (set-object-attribute (get-game-object 'place "Owl's home") + 'hidden "Letter") + (format t "~&You throw the letter into the letter box.")) + (format t "~&You don't have a letter to deposit here!"))) + +(defun read-letter (player &optional arg) + (let ((place (get-game-object 'place "Owl's home"))) + (when (or (member "Letter" (place-item place) :test #'equalp) + (member "Letter" (place-hidden place) :test #'equalp)) + (sleep 2) + (format t "~&~%OWL:~%I have received a letter! Let me read it to you:") (sleep 3) + (format t "~&Hrrmpf, 'Dear Pooh,'") (sleep 2) + (format t "~&Wait, this letter isn't to me at all? Oh well, no matter.") (sleep 3) + (format t "~&Ahem. 'I need to meet you urgently.") (sleep 2) + (format t "~&Come to see me at Galleon's Lap.") (sleep 2) + (format t "~&Sincerely, Christopher Robin'")))) + (defun smell-honey (player &optional arg) "The player smells honey when leaving the tunnel" (let ((place (get-game-object 'place (player-place player)))) @@ -328,6 +381,11 @@ (remove-object-attribute place 'item "Woozle") (format t "~&The Woozle runs away!"))) +(defun craft (player &optional arg) + "The player can craft various items in Christopher Robin's workshop." + ;TODO + ) + ;; 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 e886759..05a355a 100644 --- a/ATL/Pooh/pooh.atl +++ b/ATL/Pooh/pooh.atl @@ -23,4 +23,5 @@ ;TODO development - remove before release define-player "Christopher Robin" description "Christopher Robin is my game dev character." - place "Piglet's home" \ No newline at end of file + place "Owl's porch" + item "Letter" ;FIXME gives problems \ No newline at end of file diff --git a/ATL/Pooh/woods.atl b/ATL/Pooh/woods.atl index 9e50fac..e941c33 100644 --- a/ATL/Pooh/woods.atl +++ b/ATL/Pooh/woods.atl @@ -12,9 +12,12 @@ delicious honey..." neighbour "Pooh's porch" neighbour "Pooh's branch" + item "Shelf" item "Hunny" item "Jar" - item "Map" + item "Clock" + command "think" + command "store" define-place "Pooh's porch" description "You are standing in front of your very own home - Pooh's home. @@ -33,9 +36,9 @@ blustery day, you had to escape to up here - since then, you always keep an emergency ration of honey handy." neighbour "Pooh's home" - neighbour "Pooh's porch" - command "jump" + item "Map" item "Hunny" + command "jump" define-place "Western woods" description "The western forest is dominated by tall coniferous trees, @@ -157,7 +160,7 @@ neighbour "Hill" npc "Christopher Robin" item "Card" - requires "Magic map" + requires "Key" define-place "Bridge" description "A simple wooden bridge spans the stream that marks the edge of @@ -285,16 +288,29 @@ chestnut tree. It has a lovely green door, which unfortunately appears to be shut just now. You wonder where he is?" neighbour "Eastern woods" + neighbour "Workshop" item "Balloon" item "Balloon" +define-place "Workshop" + description "This is Christopher Robin's little workshop. It's a rickety + wooden shack, but contains everything a real boy needs: hammer + and nails, a saw, a chisel and so forth. He has taught you to + use some of the tools yourself, but you are not yet very good + at it." + neighbour "Christopher Robin's house" + item "String" + command "craft" + define-place "Owl's porch" description "TODO" item "Bellrope" + item "Letter box" neighbour "Owl's home" neighbour "Eastern woods" neighbour "Central woods" command "ring" + command "deposit" define-place "Owl's home" description "TODO" diff --git a/ATL/Pooh/characters.atl b/ATL/Pooh/characters.atl index 0defab1..b875a61 100644 --- a/ATL/Pooh/characters.atl +++ b/ATL/Pooh/characters.atl @@ -47,8 +47,11 @@ precipitation tonight, don't you agree?" says "Christopher Robin appears to be Absent Without Leave. You would not, perchance, happen to be aware of his current location?" + says "I do love to get letters! If I get one some time soon, I shall read + it to you. Improve your education." says "TODO - something about his grandfather" - quest "Reading material" + quest "Grandfather'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) @@ -108,17 +111,14 @@ says "Hello Pooh, how very good to see you! I heard you are looking for my son, Christopher Robin? You are a brave bear to be looking all the way down here! Perhaps we can help you." - quest "Bring honey" + interaction-hook "cheating" define-npc "Mr Shepard" description "Ernest H. Shepard looks like a man with plenty of humour. Right now he is holding a pencil and scribbling around on what would appear to be a map of some sort. Every now and again he laughs quietly to himself, as if enjoying a good joke." - says "Well well well, Pooh the Bear! Hello there, my young friend! - Welcome to our little club! You look rather lost. I think I - know just what you need..." - sells "Magic map" + says "TODO" define-npc "Daniel" description "You really can't tell how old this boy is. Sometimes he looks @@ -145,18 +145,6 @@ reward-item "Hunny" experience 10 -define-quest "Bring honey" - say-before "The three of us are really hungry. Perhaps you could bring us - some of that delicious honey of yours? We'll reward you well. - And if you bring us enough, perhaps you can even persuade Mr - Shepard to give you his map." - say-after "Wow, thank you very much, Pooh! That honey was very good! I - appreciate your sacrifice. Here, take this." - proof-item "Hunny" - experience 5 - money 5 - infinite - define-quest "Bring jacket" say-before "Roo forgot to take his jacket with him, but I'm afraid it's going to start raining soon. Could you take it to him? And while you're @@ -180,22 +168,14 @@ proof-item "Jacket" reward-item "Mushrooms" experience 5 - -define-quest "Reading material" - say-before "I feel in dire need of intellectual stimulation, yet I fear that - my library has few novelties left. If you bring me something - new to read, I shall thank you by reading it to you - after - all, you do not always wish to remain a Bear of Very Little - Brain, do you?" - say-after "Well, you actually found something for me to read! Let's see, - what have we here? A letter? Let's see what it says: - Hmm, harrumph. 'Dear Pooh', hm, this is bad handwriting, - 'Dear Pooh, I have something Very Important to tell you. Come - and meet me quickly at the Galleon's Lap. Your's sinsirly, - Christopher Robin.'" - proof-item "Letter" - experience 5 +define-quest "Grandfather's picture" + say-before "TODO" + say-after "TODO" + proof-item "Picture frame" + reward-item "Hunny" + experience 5 + define-quest "Find Woozle" say-before "Oh Pooh, I found woozle tracks again! I'm pretty sure they weren't mine this time... And now I'm scared to go anywhere diff --git a/ATL/Pooh/intro.txt b/ATL/Pooh/intro.txt new file mode 100644 index 0000000..1c15ab6 --- /dev/null +++ b/ATL/Pooh/intro.txt @@ -0,0 +1,13 @@ +You have the feeling that you ought to be doing something. +You tap your paw against your head: Think Think Think! +You realize you haven't seen Christopher Robin in a long time. +How about visiting him again? +That sounds like a good idea. +You suddenly realize you are hungry. +Perhaps it would be better to have a little something before you go. +You go over to your shelf to take out a jar of honey. +You open the shelf door. +It's empty! +You pick yourself back up off the floor and tell your legs to behave. +You postpone your plans to visit Christopher Robin. +You first need to refill your honey stocks! diff --git a/ATL/Pooh/items.atl b/ATL/Pooh/items.atl index f112b09..74a82fe 100644 --- a/ATL/Pooh/items.atl +++ b/ATL/Pooh/items.atl @@ -15,10 +15,30 @@ might, you can't get any more out of it now. What a shame. Perhaps you should refill it." +define-item "Shelf" + description "This is your larder, a wooden shelf with 12 compartments for your honey jars. + All the slots are empty!" + fixed + +define-item "Storage object" + ; This is a special item that I need to store state about the player's progress. + ; It never appears in the game. + description "0" + +define-item "Key" + description "This is the key to your larder. You smile. Life is good when you + have plenty of honey!" + define-item "Letter" description "A closed letter, addressed to Somebody in Christopher Robin's handwriting. You think it's a letter to you, but as you are just a Bear of Very Little Brain, you have no way of reading it..." + +define-item "Clock" + description "This is a wall clock Christopher Robin once gave you. It's very + useful, especially as it's stuck to five-to-eleven. So surely it's + time for a little something now, isn't it?" + fixed define-item "Pooh's sign" description " @@ -70,6 +90,11 @@ play around with." infinite +define-item "String" + description "A roll of string, neatly wrapped up. This is the kind of string + you can fix almost anything with." + infinite + define-item "Pine cone" description "Pine cones are great fun for playing with. There's nothing quite like a good pine cone battle in the woods with your friends!" @@ -113,6 +138,12 @@ even tried to give it a natural flair by shaping it like a tail. Hm, that does look very much like a tail!" +define-item "Letterbox" + description "Nobody in the Forest can read as well as Owl. He loves it, and + he loves getting letters. Unfortunately, he has to write most + of them himself." + fixed + define-item "Lamp" description "This lamp has a bowl at the bottom for the oil, a glass casing to protect the wick and a metal grip by which to carry it. It's @@ -140,13 +171,6 @@ ................................... ................................... " - -define-item "Magic map" - description "This is a strange map. It always seems to be changing. One - moment it will show you one thing, the next something completely - different. Yet, looking at it, you have the very distinct - impression that it wants you to walk up a hill." - cost 50 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 82d5681..d9a8630 100644 --- a/ATL/Pooh/pooh-extensions.lisp +++ b/ATL/Pooh/pooh-extensions.lisp @@ -56,6 +56,37 @@ (return-from study)) (print-text-file "../ATL/Pooh/woodland-map.txt")) +(defun think (player &optional arg) + "Play the intro text." + (let ((intro (load-text-file "../ATL/Pooh/intro.txt"))) + (dolist (line intro) + (when line (format t "~&~A" line)) + (sleep 3)))) + +(defun store (player &optional arg) + "Store a jar of honey in the larder." + (let ((base-descr "This is your larder, a wooden shelf with 12 compartments for your honey jars.") + (num-list '("one jar" "two jars" "three jars" "four jars" "five jars" + "six jars" "seven jars" "eight jars" "nine jars" + "ten jars" "eleven jars" "twelve jars")) + (current-jars (read-from-string (item-description (get-game-object 'item "Storage object"))))) + (if (member "Hunny" (player-item player) :test #'equalp) + (unless (= current-jars 12) + (format t "~&You deposit one jar of honey in your larder.") + (remove-object-attribute player 'item "Hunny") + (incf current-jars) + (setf (item-description (get-game-object 'item "Storage object")) + (to-string current-jars)) + (setf (item-description (get-game-object 'item "Shelf")) + (concatenate 'string base-descr (string #\Newline) "It contains " + (nth (1- current-jars) num-list) " of honey.")) + (when (= current-jars 12) (sleep 2) + (format t "~&Your larder is now full!") (sleep 2) + (format t "~&You lock it and put the key in your pocket.") (sleep 2) + (format t "~&Now, how about visiting Christopher Robin?") (sleep 1) + (set-object-attribute player 'item "Key"))) + (format t "~&You don't have any honey to store in your larder!")))) + (defun jump (player &optional arg) "Jump off Pooh's branch onto his porch." (format t "~&You look down nervously, then jump off the branch.") @@ -305,6 +336,28 @@ "Nothing happens." "Nobody answers." "No reply."))) (format t "~&~A" (random-elt consequences)))) +(defun deposit (player &optional arg) + "Deposit a letter for Owl" + (if (member "Letter" (player-item player) :test #'equalp) + (when (y-or-n-p "Deposit the letter for Owl?") + (remove-object-attribute player 'item "Letter") + (set-object-attribute (get-game-object 'place "Owl's home") + 'hidden "Letter") + (format t "~&You throw the letter into the letter box.")) + (format t "~&You don't have a letter to deposit here!"))) + +(defun read-letter (player &optional arg) + (let ((place (get-game-object 'place "Owl's home"))) + (when (or (member "Letter" (place-item place) :test #'equalp) + (member "Letter" (place-hidden place) :test #'equalp)) + (sleep 2) + (format t "~&~%OWL:~%I have received a letter! Let me read it to you:") (sleep 3) + (format t "~&Hrrmpf, 'Dear Pooh,'") (sleep 2) + (format t "~&Wait, this letter isn't to me at all? Oh well, no matter.") (sleep 3) + (format t "~&Ahem. 'I need to meet you urgently.") (sleep 2) + (format t "~&Come to see me at Galleon's Lap.") (sleep 2) + (format t "~&Sincerely, Christopher Robin'")))) + (defun smell-honey (player &optional arg) "The player smells honey when leaving the tunnel" (let ((place (get-game-object 'place (player-place player)))) @@ -328,6 +381,11 @@ (remove-object-attribute place 'item "Woozle") (format t "~&The Woozle runs away!"))) +(defun craft (player &optional arg) + "The player can craft various items in Christopher Robin's workshop." + ;TODO + ) + ;; 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 e886759..05a355a 100644 --- a/ATL/Pooh/pooh.atl +++ b/ATL/Pooh/pooh.atl @@ -23,4 +23,5 @@ ;TODO development - remove before release define-player "Christopher Robin" description "Christopher Robin is my game dev character." - place "Piglet's home" \ No newline at end of file + place "Owl's porch" + item "Letter" ;FIXME gives problems \ No newline at end of file diff --git a/ATL/Pooh/woods.atl b/ATL/Pooh/woods.atl index 9e50fac..e941c33 100644 --- a/ATL/Pooh/woods.atl +++ b/ATL/Pooh/woods.atl @@ -12,9 +12,12 @@ delicious honey..." neighbour "Pooh's porch" neighbour "Pooh's branch" + item "Shelf" item "Hunny" item "Jar" - item "Map" + item "Clock" + command "think" + command "store" define-place "Pooh's porch" description "You are standing in front of your very own home - Pooh's home. @@ -33,9 +36,9 @@ blustery day, you had to escape to up here - since then, you always keep an emergency ration of honey handy." neighbour "Pooh's home" - neighbour "Pooh's porch" - command "jump" + item "Map" item "Hunny" + command "jump" define-place "Western woods" description "The western forest is dominated by tall coniferous trees, @@ -157,7 +160,7 @@ neighbour "Hill" npc "Christopher Robin" item "Card" - requires "Magic map" + requires "Key" define-place "Bridge" description "A simple wooden bridge spans the stream that marks the edge of @@ -285,16 +288,29 @@ chestnut tree. It has a lovely green door, which unfortunately appears to be shut just now. You wonder where he is?" neighbour "Eastern woods" + neighbour "Workshop" item "Balloon" item "Balloon" +define-place "Workshop" + description "This is Christopher Robin's little workshop. It's a rickety + wooden shack, but contains everything a real boy needs: hammer + and nails, a saw, a chisel and so forth. He has taught you to + use some of the tools yourself, but you are not yet very good + at it." + neighbour "Christopher Robin's house" + item "String" + command "craft" + define-place "Owl's porch" description "TODO" item "Bellrope" + item "Letter box" neighbour "Owl's home" neighbour "Eastern woods" neighbour "Central woods" command "ring" + command "deposit" define-place "Owl's home" description "TODO" diff --git a/doc/TODO b/doc/TODO index ffe9145..ec2d54f 100644 --- a/doc/TODO +++ b/doc/TODO @@ -5,6 +5,10 @@ * fix (string-from-list) bug ATL +* hide 2 more pots of honey +* write the 'craft' command +* delete cave quests +* add Owl's quest * fill in missing place descriptions @@ -19,13 +23,15 @@ 6. Kanga's quest 7. Eeyore's quest 8. Piglet's quest - 9. Bee tree - 10. Cave + 9. Owl's quest (?) + 10. Mr. Shepard (?) + 11. Bee tree + 12. Cave Quests: 1. Find the tail 2. Bring jacket 3. Bring mushrooms - 4. Reading material + 4. Reading material -> replace with "Grandfather's picture" 5. Find Woozle 6. Bring honey