diff --git a/desktop/src-common/advent/actions.clj b/desktop/src-common/advent/actions.clj index ba21fb87..1e829182 100644 --- a/desktop/src-common/advent/actions.clj +++ b/desktop/src-common/advent/actions.clj @@ -23,7 +23,7 @@ (done? [this screen entities]) (continue [this screen entities]) (terminate [this screen entities]) - (can-skip? [this screen entities]) + (skip-type [this screen entities]) (get-channel [this])) (defn has-item? [entities item] @@ -68,8 +68,8 @@ (terminate [this screen entities] entities) - (can-skip? [this screen entities] - false))) + (skip-type [this screen entities] + :none))) (defmacro get-script [entities & forms] `(fn [starting-entities#] @@ -171,8 +171,8 @@ (done? [this screen entities] true) (terminate [this screen entities] entities) - (can-skip? [this screen entities] - false))) + (skip-type [this screen entities] + :none))) @@ -223,8 +223,8 @@ (if (or (nil? stop?) stop?) (stop screen entities target-id :face face) entities)) - (can-skip? [this screen entities] - false)))) + (skip-type [this screen entities] + :none)))) (defn play-animation [entities target-id anim & {:keys [stop? continue?]}] (run-action entities @@ -244,8 +244,8 @@ (if (or (nil? stop?) stop?) (stop screen entities target-id) (assoc-in entities [:room :entities target-id :anim] nil)))) - (can-skip? [this screen entities] - false))) + (skip-type [this screen entities] + :none))) (defn update-entity [entities target-id f] (run-action entities @@ -257,7 +257,7 @@ (done? [this screen entities] true) (terminate [this screen entities] entities) - (can-skip? [this screen entities] false))) + (skip-type [this screen entities] :none))) (defn stop-walking [entities target-id & {:keys [face]}] (run-action entities @@ -269,9 +269,9 @@ (done? [this screen entities] true) (terminate [this screen entities] entities) - (can-skip? [this screen entities] false))) + (skip-type [this screen entities] :none))) -(defn walk-to [entities target-id [final-x final-y] & {:keys [can-skip? face force-dir]}] +(defn walk-to [entities target-id [final-x final-y] & {:keys [skip-type face force-dir]}] (let [{start-x :x start-y :y} (get-in @entities [:room :entities target-id]) final-x (int final-x) final-y (int final-y) @@ -331,8 +331,8 @@ (terminate [this screen entities] (stop screen entities target-id :face face)) - (can-skip? [this screen entities] - (or can-skip? false))) + (skip-type [this screen entities] + (or skip-type :none))) (do-stop entities :ego :face face)))) (defn get-text-duration [text] @@ -385,8 +385,8 @@ (stop screen entities target-id) entities)) entities)) - (can-skip? [this screen entities] - true)))) + (skip-type [this screen entities] + :skip)))) (defn something-else [zipper] (-> zipper zip/up zip/up)) @@ -424,8 +424,8 @@ (terminate [this screen entities] (screen! @(resolve 'advent.screens.scene/scene) :on-reactivate) entities) - (can-skip? [this screen entities] - false)) + (skip-type [this screen entities] + :none)) (let [zipper (nth-child zipper @selected-index) node (zip/node zipper)] @@ -448,8 +448,8 @@ (done? [this screen entities] true) (terminate [this screen entities] entities) - (can-skip? [this screen entities] - false))) + (skip-type [this screen entities] + :none))) (defn pause-camera [entities] (update-entities entities #(-> % @@ -468,8 +468,8 @@ (done? [this screen entities] true) (terminate [this screen entities] entities) - (can-skip? [this screen entities] - false))) + (skip-type [this screen entities] + :none))) @@ -489,8 +489,8 @@ (terminate [this screen entities] entities) - (can-skip? [this screen entities] - false))) + (skip-type [this screen entities] + :none))) (defn play-sound [entities sound-file] (let [m (music sound-file)] @@ -506,8 +506,8 @@ (terminate [this screen entities] entities) - (can-skip? [this screen entities] - false)))) + (skip-type [this screen entities] + :none)))) (defn give [entities item] (run-action entities @@ -525,8 +525,8 @@ (terminate [this screen entities] entities) - (can-skip? [this screen entities] - false))) + (skip-type [this screen entities] + :none))) (defn remove-entity [entities entity] (run-action entities @@ -539,8 +539,8 @@ (terminate [this screen entities] entities) - (can-skip? [this screen entities] - false))) + (skip-type [this screen entities] + :none ))) (defn add-entity [entities id entity] (run-action entities @@ -553,8 +553,8 @@ (terminate [this screen entities] entities) - (can-skip? [this screen entities] - false))) + (skip-type [this screen entities] + :none))) (defn get-music [music time] (if (keyword? music) @@ -586,8 +586,8 @@ (music! (utils/get-current-music entities) :play) entities)) - (can-skip? [this screen entities] - false)))) + (skip-type [this screen entities] + :none)))) (defn transition-background [entities new-background [x y] & {:keys [transition-music? between time face]}] @@ -624,8 +624,8 @@ (if-let [stop-fn (get-in entities [:room :stop-fn])] (stop-fn screen entities) entities))) - (can-skip? [this screen entities] - false)) + (skip-type [this screen entities] + :none)) (run-action entities (begin [this screen entities] (let [ego (get-in entities [:room :entities :ego]) @@ -674,8 +674,8 @@ (add-timer! screen k start time)) entities) - (can-skip? [this screen entities] - false)))) + (skip-type [this screen entities] + :none)))) (defn do-dialogue [entities & pairs] (loop [pairs (partition 2 pairs)] @@ -739,8 +739,8 @@ (terminate [this screen entities] entities) - (can-skip? [this screen entities] - false)) + (skip-type [this screen entities] + :none)) (Thread/sleep 800) (actions/run-action entities (begin [this screen entities] @@ -759,8 +759,8 @@ (terminate [this screen entities] entities) - (can-skip? [this screen entities] - false))) + (skip-type [this screen entities] + :none))) (defn in-love [entities] diff --git a/desktop/src-common/advent/screens/rooms/common.clj b/desktop/src-common/advent/screens/rooms/common.clj index 59144ef2..241eebcc 100644 --- a/desktop/src-common/advent/screens/rooms/common.clj +++ b/desktop/src-common/advent/screens/rooms/common.clj @@ -140,8 +140,8 @@ (-> entities (update-in [:room :entities] dissoc :bloodclot) (assoc-in [:tweens :flash] (tween/tween :flash screen [:white-fade :opacity] 0.0 1.0 0.2 :ease tween/ease-in-cubic)))) - (can-skip? [this screen entities] - false)) + (skip-type [this screen entities] + :none)) (actions/run-action entities (begin [this screen entities] entities) @@ -154,8 +154,8 @@ (terminate [this screen entities] entities) - (can-skip? [this screen entities] - false)) + (skip-type [this screen entities] + :none)) (actions/run-action entities (begin [this screen entities] @@ -169,8 +169,8 @@ (terminate [this screen entities] (update-in entities [:room :entities :ego] dissoc :stand-override)) - (can-skip? [this screen entities] - false))) + (skip-type [this screen entities] + :none))) (defn win [] (actions/get-script entities diff --git a/desktop/src-common/advent/screens/rooms/dream.clj b/desktop/src-common/advent/screens/rooms/dream.clj index 03bf194c..e334b7d9 100644 --- a/desktop/src-common/advent/screens/rooms/dream.clj +++ b/desktop/src-common/advent/screens/rooms/dream.clj @@ -52,8 +52,8 @@ (terminate [this screen entities] entities) - (can-skip? [this screen entities] - false))) + (skip-type [this screen entities] + :none))) (defn fade-in-tools [entities] (actions/run-action entities (begin [this screen entities] @@ -69,8 +69,8 @@ (terminate [this screen entities] entities) - (can-skip? [this screen entities] - false))) + (skip-type [this screen entities] + :none))) (defn face-fairy [entities] @@ -255,8 +255,8 @@ (terminate [this screen entities] (actions/stop screen entities :ego)) - (can-skip? [this screen entities] - false))) + (skip-type [this screen entities] + :none))) (defn return-from-island [screen entities] (when (and (not (get-in entities [:actions :script-running?])) diff --git a/desktop/src-common/advent/screens/rooms/inside_castle.clj b/desktop/src-common/advent/screens/rooms/inside_castle.clj index 71fb2b85..7b85ddbe 100644 --- a/desktop/src-common/advent/screens/rooms/inside_castle.clj +++ b/desktop/src-common/advent/screens/rooms/inside_castle.clj @@ -69,8 +69,8 @@ (terminate [this screen entities] entities) - (can-skip? [this screen entities] - false))) + (skip-type [this screen entities] + :none))) (defn nice-trophy-dialogue [entities] diff --git a/desktop/src-common/advent/screens/rooms/space.clj b/desktop/src-common/advent/screens/rooms/space.clj index e5f75851..175a5890 100644 --- a/desktop/src-common/advent/screens/rooms/space.clj +++ b/desktop/src-common/advent/screens/rooms/space.clj @@ -72,8 +72,8 @@ (terminate [this screen entities] entities) - (can-skip? [this screen entities] - false))) + (skip-type [this screen entities] + :none))) (defn swing-at-blergh [entities] (let [jump-path (bezier (map #(apply vector-2* %) [[35 45] [110 145] [195 180]])) @@ -127,8 +127,8 @@ (terminate [this screen entities] (assoc-in entities [:room :entities :ego :move-pct] 0.0)) - (can-skip? [this screen entities] - false)) + (skip-type [this screen entities] + :none)) (actions/run-action entities (begin [this screen entities] @@ -153,9 +153,9 @@ (-> entities (assoc-in [:room :entities :ego :move-pct] 0.0) (update-in [:room :entities :ego] #(actions/start-animation screen % :pant)))) - (can-skip? [this screen entities] + (skip-type [this screen entities] - false)) + :none)) (actions/run-action entities (begin [this screen entities] (assoc-in entities [:tweens :flash] (tween/tween :flash screen [:white-fade :opacity] 1.0 0.0 3.0 :ease tween/ease-in-quadratic))) @@ -168,8 +168,8 @@ (terminate [this screen entities] entities) - (can-skip? [this screen entities] - false)))) + (skip-type [this screen entities] + :none)))) diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index 72f4496a..f1b4508b 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -204,7 +204,7 @@ void main() (def default-interaction {:get-script (fn [cursor [x y]] (if (= :main cursor) (actions/get-script entities - (actions/walk-to entities :ego [x y] :can-skip? true)) + (actions/walk-to entities :ego [x y] :skip-type :skip)) (actions/get-script entities (actions/talk entities :ego "I don't know what to do with that."))))}) @@ -238,7 +238,7 @@ void main() current-action (get-in entities [:actions :current]) ;; TODO - hacky way of resetting queue - entities (if (and current-action (actions/can-skip? current-action screen entities)) + entities (if (and current-action (= :skip (actions/skip-type current-action screen entities))) (let [terminated-entities (actions/terminate current-action screen entities)] (do (put! (actions/get-channel current-action) terminated-entities) (-> terminated-entities