ordered dialogue trees

This commit is contained in:
2014-09-27 10:19:20 -07:00
parent 9da703004a
commit fd3b07bf12
3 changed files with 17 additions and 14 deletions

View File

@@ -75,7 +75,7 @@
tx (.getTexture tr)
_ (texture! tx :set-filter Texture$TextureFilter/Linear Texture$TextureFilter/Linear)]
(-> entities
(into (for [[text i] (map vector (keys choices) (range))]
(into (for [[[text] i] (map vector choices (range))]
[i (assoc (label text (style :label font (color :white))) :x 30 :y (* 30 i))]))
(assoc :state {:object nil :callback callback :choices choices}))))
@@ -83,7 +83,7 @@
(let [{:keys [x y]} (input->screen screen {:x (:input-x screen) :y (:input-y screen)})]
(when (seq entities)
(when (< y (* 30 (count entities)))
((get-in entities [:state :callback]) (nth (keys (get-in entities [:state :choices])) (int (/ y 30))))
((get-in entities [:state :callback]) (int (/ y 30)))
{}))))
:on-mouse-moved (fn [screen [entities]]

View File

@@ -160,9 +160,9 @@
(defn wizard-dialogue [entities]
{
:choices {"What do you mean, \"Not you again?\""
:choices ["What do you mean, \"Not you again?\""
{:run #(respond entities % :wizard "I mean, you've wrecked my life and I never want to see you again.")
:choices {"You mean the time I set your house on fire with a fire mint?"
:choices ["You mean the time I set your house on fire with a fire mint?"
{:run #(do
(respond entities %
:wizard "That was you!?"
@@ -185,16 +185,16 @@
(actions/transition-background entities :outside-house [262 88]))}
"Even an old hoot like you needs a kick in the pants every now and again."
{:run #(respond entities % :wizard "What gives you the right to try to teach me a lesson?")
:choices {"My good looks?" {:choices actions/previous-choices}
:choices ["My good looks?" {:choices actions/previous-choices}
"My good standing within the community?" {:choices actions/previous-choices}
"My respectful attitude?" {:choices actions/previous-choices}}}}}
"My respectful attitude?" {:choices actions/previous-choices}]}]}
"You're not happy to see me, Mr. Fangald?"
{:run #(respond entities % :wizard "Of course not, you little brat. You've made my life a living hell!")
:choices #(-> % zip/left)}
"Good bye, Mr. Fangald!"
{:run #(do
(respond entities % :wizard "Now scram!")
(actions/transition-background entities :outside-house [262 88]))}}})
(actions/transition-background entities :outside-house [262 88]))}]})
(defn backgrounds [screen]
(let [sheep-sheet (texture! (texture "outsidehouse/sheep-anim.png") :split 33 21)