more dialogue tree improvement.

This commit is contained in:
2014-09-24 23:11:20 -07:00
parent 240af5dcf0
commit a5cd9fcea9
3 changed files with 17 additions and 7 deletions

View File

@@ -152,7 +152,7 @@
(run-action entities
(begin [this screen entities]
(run! dialogue/choice-screen :on-present-choices :pairs pairs)
(run! @(resolve 'advent.screens.scene/scene) :on-pause)
(run! @(resolve 'advent.screens.scene/scene) :on-deactivate)
entities)
(continue [this screen entities] entities)

View File

@@ -81,9 +81,18 @@
(let [{:keys [x y]} (input->screen screen {:x (:input-x screen) :y (:input-y screen)})]
(when (seq entities)
(when (< y (* 30 (count entities)))
(run! @(resolve 'advent.screens.scene/scene) :on-resume)
(run! @(resolve 'advent.screens.scene/scene) :on-reactivate)
(run! @(resolve 'advent.screens.scene/scene) :on-start-script :script (:result-script (entities (int (/ y 30)))))
{}))))
:on-mouse-moved (fn [screen [entities]]
(let [{:keys [x y]} (input->screen screen {:x (:input-x screen) :y (:input-y screen)})
font (bitmap-font "ego/font.fnt" )]
(when (seq entities)
(doseq [index (range (count entities))]
(if (< (* index 30) y (* (inc index) 30))
(label! (entities index) :set-style (style :label font (color :yellow)))
(label! (entities index) :set-style (style :label font (color :white))))))))
:on-resize (fn [screen entities]
(size! screen 1280 960)))

View File

@@ -154,7 +154,8 @@
(if (string? t-line)
(actions/talk entities target-id t-line)
(t-line))
(apply actions/present-choices entities option-scripts)))
(when options
(apply actions/present-choices entities option-scripts))))
(defn backgrounds [screen]
(let [sheep-sheet (texture! (texture "outsidehouse/sheep-anim.png") :split 33 21)
@@ -401,11 +402,11 @@
(assoc-in entities [:cursor :current] :main)
(left-click screen entities))))
:on-pause (fn [screen [entities]]
(assoc-in entities [:state :active?] false))
:on-deactivate (fn [screen [entities]]
(assoc-in entities [:state :active?] false))
:on-resume (fn [screen [entities]]
(assoc-in entities [:state :active?] true))
:on-reactivate (fn [screen [entities]]
(assoc-in entities [:state :active?] true))
:on-start-script (fn [{:keys [script]} [entities]]
(script entities)