more dialogue tree improvement.
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user