progress on multiple scripts.
This commit is contained in:
@@ -100,6 +100,13 @@
|
||||
(change-script-state ~entities false)
|
||||
(utils/save @~entities :autosave "Autosave"))))))))
|
||||
|
||||
(defn force-end [entities current-action key]
|
||||
(do (put! (get-channel current-action) :end)
|
||||
(-> entities
|
||||
(assoc-in [key :script-running?] false)
|
||||
(assoc-in [key :current] nil)
|
||||
(assoc-in [key :started?] false))))
|
||||
|
||||
(defmacro get-unsaved-script [entities & forms]
|
||||
`(fn [starting-entities#]
|
||||
(put! (get-in starting-entities# [:fg-actions :script-chan])
|
||||
@@ -197,6 +204,19 @@
|
||||
(skip-type [this screen entities]
|
||||
:skip)))
|
||||
|
||||
(defn do-force-end [entities key]
|
||||
(run-action entities
|
||||
(begin [this screen entities]
|
||||
(if (get-in entities [key :script-running?])
|
||||
(force-end entities (get-in entities [key :current]) key)
|
||||
entities))
|
||||
(continue [this screen entities] entities)
|
||||
(done? [this screen entities] true)
|
||||
(terminate [this screen entities]
|
||||
entities)
|
||||
(skip-type [this screen entities]
|
||||
:none)))
|
||||
|
||||
|
||||
|
||||
(defn walk-straight-to [entities target-id [final-x final-y] & {:keys [update-baseline? face speed anim override-dir stop?]}]
|
||||
@@ -662,12 +682,16 @@
|
||||
(assoc-in [:state :next-time] nil))
|
||||
entities)
|
||||
:ego
|
||||
:face face)]
|
||||
:face face)
|
||||
entities (if (get-in entities [:bg-actions :script-running?])
|
||||
(force-end entities (get-in entities [:bg-actions :current]) :bg-actions)
|
||||
entities)]
|
||||
(if-let [stop-fn (get-in entities [:room :stop-fn])]
|
||||
(stop-fn screen entities)
|
||||
entities)))
|
||||
(skip-type [this screen entities]
|
||||
:none))
|
||||
(screen! dialogue/talking-screen :stop-talk)
|
||||
(run-action entities
|
||||
(begin [this screen entities]
|
||||
(utils/stop-all-sounds! entities)
|
||||
|
||||
Reference in New Issue
Block a user