added better teddy bear dialogue.

This commit is contained in:
2014-12-14 10:37:45 -08:00
parent 5995a7815b
commit 19394e78a7

View File

@@ -10,6 +10,105 @@
[play-clj.math :refer :all]
[play-clj.g2d :refer :all]))
(defn do-initial-peddler-conversation [entities]
(actions/do-dialogue entities
:ego "Hello there, peddler."
:peddler "Good day sir! Care to see any of my wares?"
:peddler "I have only the choicest of wares."
:ego "What 'wares' are you selling?"
:peddler "I have the choicest of all types of wares..."
:peddler "...I'm well stocked on used earplugs..."
:peddler "...glass eyes..."
:peddler "... and motivational tapes."
:peddler "And today, I have a one day special!"
:peddler "Every purchase comes with a free balloon!")
(actions/present-choices entities {:choices ["I'm interested in your earplugs."
{:run #(do (actions/update-state entities (fn [state] (assoc state :wants-toy true)))
(actions/respond entities %
:peddler "A choice choice sir!"
:peddler "These earplugs have been used by the the choicest of wearers."
:peddler "I can see a young man like yourself enjoying these choice earplugs for ages to come!"
:peddler "And remember, every purchase comes with the choicest of balloons!"
:peddler "That'll just be 10 sheckels."
:ego "But I haven't got any money!"
:peddler "Well I'm afraid you won't have the choicest of earplugs."
:ego "Can't I give you something else for them?"
:peddler "Well, I am low on choice children's toys."
:peddler "If you can bring me one, and I mean the choicest of toys, I will give you the earplugs."))}
"I'm interested in a glass eye."
{:run #(do (actions/update-state entities (fn [state] (assoc state :wants-toy true)))
(actions/respond entities %
:peddler "The choicest choice, young man!"
:peddler "This glass eye is made out of the choicest glass, from across the sea."
:peddler "And remember, every purchase comes with the choicest of balloons!"
:peddler "That'll just be 95 sheckels."
:ego "But I haven't got any money!"
:peddler "Well I'm afraid you won't have the choicest of glass eyes."
:ego "Can't I give you something else for them?"
:peddler "I'll tell you what, I don't have any thing for the kids that come to my stand."
:peddler "If you can bring me the choicest of toys, I will give you the glass eye."))}
"I'm interested in the motivational tapes."
{:run #(do (actions/update-state entities (fn [state] (assoc state :wants-toy true)))
(actions/respond entities %
:peddler "Sure thing!"
:peddler "Has your luck got you down? Feeling pathetic?"
:peddler "These choicest of motivation tapes will convince you that life isn't so bad."
:peddler "For only 3 easy payments of 29.99 scheckles, they're yours!"
:ego "But I'm broke!"
:peddler "Well I'm afraid you won't have the choicest of motivational tapes."
:ego "Is there anything else you'd take instead?"
:peddler "If you can bring me a nice kid's toy, I will give you the tapes."))}
"Nevermind." {:run #(actions/respond entities % :peddler "Goodbye, sir.")}]}))
(defn give-teddy [entities]
(actions/remove-item entities :teddy)
(actions/do-dialogue entities
:peddler "That is the choicest of teddy bears!"
:peddler "True to my word, I will give you one of my wares."
:peddler "What would you like?")
(actions/present-choices entities
{:choices ["The glass eye."
{:run #(do (actions/respond entities % :peddler "Of course sir. Here you go.")
(actions/give entities :glass-eye))}
"The motivational tapes."
{:run #(do (actions/respond entities % :peddler "Of course sir. Here you go.")
(actions/give entities :motivational-tapes))}
"The used earplugs."
{:run #(do (actions/respond entities % :peddler "Of course sir. Here you go.")
(actions/give entities :used-earplugs))}]})
(actions/talk entities :peddler "And, of course, here is your balloon.")
(actions/give entities :balloon)
(actions/talk entities :peddler "Thank you for your business!"))
(defn do-completed-peddler-conversation [entities]
(actions/do-dialogue entities
:ego "Hello there, peddler."
:peddler "Hello again, sir! I trust you are enjoying your goods!"
:ego "I sure am."
:peddler "I thought so!"))
(defn do-wants-toy-conversation [entities]
(actions/do-dialogue entities
:ego "Hello there, peddler."
:peddler "Hello again, sir! Have you found me the choicest jack-in-the box yet?"
:ego "... erm, no."
:peddler "Oh, well how about the choicest bouncy ball?"
:ego "... not quite yet."
:peddler "Marionette? Teddy bear? Building blocks?")
(if (actions/has-item? entities :teddy)
(do
(actions/do-dialogue entities :ego "Well, I have this teddy bear.")
(give-teddy entities))
(actions/do-dialogue entities :ego "No, no, and no."
:peddler "Well come back when you have something I'm interested in."
:peddler "Remember - I have a one-day special going."
:peddler "Every purchase comes with a free balloon!")))
(defn do-peddler-dialogue [entities]
(cond (actions/has-obtained? entities :balloon) (do-completed-peddler-conversation entities)
(get-in @entities [:state :wants-toy]) (do-wants-toy-conversation entities)
:else (do-initial-peddler-conversation entities)))
(defn make [screen]
(let [peddler-sheet (texture! (texture "outside-castle/peddler-talk.png" ) :split 18 36)
peddler-talk (animation 0.18 (for [i (flatten [2 3 2 3 2 3 6 1 0 1 0 1 0 1 0 1 2 3 2 3 2 3 6 4 5 4 5 4 5 4 5])]
@@ -62,82 +161,10 @@
:script (actions/get-script
entities
(actions/walk-to entities :ego [191 90] :face :left)
(if (actions/has-obtained? entities :balloon)
(do (actions/do-dialogue entities
:ego "Hello there, peddler."
:peddler "Hello again, sir! I trust you are enjoying your goods!"
:ego "I sure am."
:peddler "I thought so!"))
(do (actions/do-dialogue entities
:ego "Hello there, peddler."
:peddler "Good day sir! Care to see any of my wares?"
:peddler "I have only the choicest of wares."
:ego "What 'wares' are you selling?"
:peddler "I have the choicest of all types of wares..."
:peddler "...I'm well stocked on used earplugs..."
:peddler "...glass eyes..."
:peddler "... and motivational tapes."
:peddler "And today, I have a one day special!"
:peddler "Every purchase comes with a free balloon!")
(actions/present-choices entities {:choices ["I'm interested in your earplugs."
{:run #(do (actions/update-state entities (fn [state] (assoc state :wants-toy true)))
(actions/respond entities %
:peddler "A choice choice sir!"
:peddler "These earplugs have been used by the the choicest of wearers."
:peddler "I can see a young man like yourself enjoying these choice earplugs for ages to come!"
:peddler "And remember, every purchase comes with the choicest of balloons!"
:peddler "That'll just be 10 sheckels."
:ego "But I haven't got any money!"
:peddler "Well I'm afraid you won't have the choicest of earplugs."
:ego "Can't I give you something else for them?"
:peddler "Well, I am low on choice children's toys."
:peddler "If you can bring me one, and I mean the choicest of toys, I will give you the earplugs."))}
"I'm interested in a glass eye."
{:run #(do (actions/update-state entities (fn [state] (assoc state :wants-toy true)))
(actions/respond entities %
:peddler "The choicest choice, young man!"
:peddler "This glass eye is made out of the choicest glass, from across the sea."
:peddler "And remember, every purchase comes with the choicest of balloons!"
:peddler "That'll just be 95 sheckels."
:ego "But I haven't got any money!"
:peddler "Well I'm afraid you won't have the choicest of glass eyes."
:ego "Can't I give you something else for them?"
:peddler "I'll tell you what, I don't have any thing for the kids that come to my stand."
:peddler "If you can bring me the choicest of toys, I will give you the glass eye."))}
"I'm interested in the motivational tapes."
{:run #(do (actions/update-state entities (fn [state] (assoc state :wants-toy true)))
(actions/respond entities %
:peddler "Sure thing!"
:peddler "Has your luck got you down? Feeling pathetic?"
:peddler "These choicest of motivation tapes will convince you that life isn't so bad."
:peddler "For only 3 easy payments of 29.99 scheckles, they're yours!"
:ego "But I'm broke!"
:peddler "Well I'm afraid you won't have the choicest of motivational tapes."
:ego "Is there anything else you'd take instead?"
:peddler "If you can bring me a nice kid's toy, I will give you the tapes."))}
"Nevermind." {:run #(actions/respond entities % :peddler "Goodbye, sir.")}]})))
)
(do-peddler-dialogue entities))
:scripts {:teddy (actions/get-script entities
(actions/walk-to entities :ego [191 90] :face :left)
(actions/remove-item entities :teddy)
(actions/do-dialogue entities
:peddler "That is the choicest of teddy bears!"
:peddler "True to my word, I will give you one of my wares."
:peddler "What would you like?")
(actions/present-choices entities
{:choices ["The glass eye."
{:run #(do (actions/respond entities % :peddler "Of course sir. Here you go.")
(actions/give entities :glass-eye))}
"The motivational tapes."
{:run #(do (actions/respond entities % :peddler "Of course sir. Here you go.")
(actions/give entities :motivational-tapes))}
"The used earplugs."
{:run #(do (actions/respond entities % :peddler "Of course sir. Here you go.")
(actions/give entities :used-earplugs))}]})
(actions/talk entities :peddler "And, of course, here is your balloon.")
(actions/give entities :balloon)
(actions/talk entities :peddler "Thank you for your business!"))}}}
(give-teddy entities))}}}
:layers [(assoc (texture "outside-castle/background.png") :x 0 :y 0 :baseline 0)]
:entities {:peddler (actions/start-animation screen
(assoc (texture "outside-castle/peddler.png") :x 110 :y 90 :baseline 150 :anim nil