diff --git a/desktop/resources/outside-jail/background-dark.png b/desktop/resources/outside-jail/background-dark.png new file mode 100644 index 00000000..a17982e4 Binary files /dev/null and b/desktop/resources/outside-jail/background-dark.png differ diff --git a/desktop/src-common/advent/screens/rooms/outside_jail.clj b/desktop/src-common/advent/screens/rooms/outside_jail.clj index b17d3d41..fa19aa7e 100644 --- a/desktop/src-common/advent/screens/rooms/outside_jail.clj +++ b/desktop/src-common/advent/screens/rooms/outside_jail.clj @@ -53,7 +53,8 @@ :ego "He's the mightiest knight in all of Remington." :ego "If only I could be as strong as him one day." ))}} - :layers [(assoc (texture "outside-jail/background.png") :x 0 :y 0 :baseline 0)] + :layers {:day [(assoc (texture "outside-jail/background.png") :x 0 :y 0 :baseline 0)] + :night [(assoc (texture "outside-jail/background-dark.png") :x 0 :y 0 :baseline 0)]} :entities {:fountain (assoc (animation->texture screen fountain) :x 150 :y 126 :baseline 114 :anim fountain diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index ee832cea..b31d4eaa 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -283,6 +283,12 @@ (defn stop-sound [snd] (music! snd :stop)) +(defn get-layers [entities] + (let [layers (get-in entities [:room :layers])] + (if (map? layers) + ((get-in entities [:state :time]) layers) + layers))) + (defn make-music [r] (doto (music r) (music! :set-looping true))) @@ -371,8 +377,9 @@ [id ((:update-fn entity) screen entities entity)] [id entity]))))) current-frame (get-in entities [:room :entities :ego :object]) + layers (get-layers entities) - all-entities (concat (vals entities) (get-in entities [:room :layers]) (vals (get-in entities [:room :entities])))] + all-entities (concat (vals entities) layers (vals (get-in entities [:room :entities])))] (when (and (not= current-frame (get-in entities [:room :entities :ego :last-frame])) (or (= (get-in entities [:room :entities :ego :anim]) (get-in entities [:room :entities :ego :left :walk])) (= (get-in entities [:room :entities :ego :anim]) (get-in entities [:room :entities :ego :right :walk])))