hourglass when script cannot be ended.
This commit is contained in:
@@ -54,12 +54,17 @@
|
||||
(reify IAction
|
||||
(get-channel [_] c#)
|
||||
~@forms))
|
||||
(reset! ~entities (<!! c#)))))
|
||||
(let [result# (<!! c#)]
|
||||
(if (= :end result#)
|
||||
(do
|
||||
(println "ending script")
|
||||
(throw (ex-info "User quit script" {:type :end-script})))
|
||||
(reset! ~entities result#))))))
|
||||
|
||||
(defn change-script-state [entities state]
|
||||
(run-action entities
|
||||
(begin [this screen entities]
|
||||
(assoc-in entities [:actions :script-running?] state))
|
||||
(update-in entities [:actions] assoc :script-running? state :last-skip-type (if state :end nil)))
|
||||
|
||||
(continue [this screen entities] entities)
|
||||
|
||||
@@ -69,7 +74,7 @@
|
||||
(terminate [this screen entities]
|
||||
entities)
|
||||
(skip-type [this screen entities]
|
||||
:none)))
|
||||
:skip)))
|
||||
|
||||
(defmacro get-script [entities & forms]
|
||||
`(fn [starting-entities#]
|
||||
@@ -172,7 +177,7 @@
|
||||
(terminate [this screen entities]
|
||||
entities)
|
||||
(skip-type [this screen entities]
|
||||
:none)))
|
||||
:skip)))
|
||||
|
||||
|
||||
|
||||
@@ -271,7 +276,7 @@
|
||||
(terminate [this screen entities] entities)
|
||||
(skip-type [this screen entities] :none)))
|
||||
|
||||
(defn walk-to [entities target-id [final-x final-y] & {:keys [skip-type face force-dir]}]
|
||||
(defn walk-to [entities target-id [final-x final-y] & {:keys [skip-type face force-dir stop?] :or {stop? true}}]
|
||||
(let [{start-x :x start-y :y} (get-in @entities [:room :entities target-id])
|
||||
final-x (int final-x)
|
||||
final-y (int final-y)
|
||||
@@ -330,7 +335,9 @@
|
||||
(< (utils/dist final-x final-y from-x from-y) 1)))
|
||||
|
||||
(terminate [this screen entities]
|
||||
(stop screen entities target-id :face face))
|
||||
(if stop?
|
||||
(stop screen entities target-id :face face)
|
||||
entities))
|
||||
(skip-type [this screen entities]
|
||||
(or skip-type :none)))
|
||||
(do-stop entities :ego :face face))))
|
||||
@@ -425,7 +432,7 @@
|
||||
(screen! @(resolve 'advent.screens.scene/scene) :on-reactivate)
|
||||
entities)
|
||||
(skip-type [this screen entities]
|
||||
:none))
|
||||
:skip))
|
||||
|
||||
(let [zipper (nth-child zipper @selected-index)
|
||||
node (zip/node zipper)]
|
||||
|
||||
Reference in New Issue
Block a user