progress on multiple scripts.

This commit is contained in:
Bryce Covert
2015-11-19 18:29:54 -08:00
parent 624688524b
commit 5b12127ae3
3 changed files with 31 additions and 8 deletions

View File

@@ -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)