diff --git a/desktop/gametodos.txt b/desktop/gametodos.txt index 61dbeaea..a25b89ff 100644 --- a/desktop/gametodos.txt +++ b/desktop/gametodos.txt @@ -39,3 +39,4 @@ AUDIO + EDGES + Gandarf magic handskkk + + head scratch diff --git a/desktop/src-common/advent/screens/rooms/dream.clj b/desktop/src-common/advent/screens/rooms/dream.clj index 2b6823f1..9a244abb 100644 --- a/desktop/src-common/advent/screens/rooms/dream.clj +++ b/desktop/src-common/advent/screens/rooms/dream.clj @@ -300,7 +300,8 @@ (actions/do-dialogue entities :ego "On that island over there!" :ego (str "Yes, that's it! There's a " subject " on that island!") - :fairy-godfather "Let me go check it out.") + :fairy-godfather "I've got to see it to believe it." + :fairy-godfather "You better not be messing with me, Tick.") (actions/update-entities entities (fn [e] (update-in e [:room :entities :fairy-godfather] dissoc :path))) (actions/update-entities entities (fn [e] (update-in e [:room :entities :fairy-godfather] assoc :distracted? true :distracted-time 0))) (actions/walk-straight-to entities :fairy-godfather [211 210] :face :left)) diff --git a/desktop/src-common/advent/screens/rooms/outside_castle.clj b/desktop/src-common/advent/screens/rooms/outside_castle.clj index 59baa6c0..3f3059a3 100644 --- a/desktop/src-common/advent/screens/rooms/outside_castle.clj +++ b/desktop/src-common/advent/screens/rooms/outside_castle.clj @@ -331,7 +331,12 @@ (assoc (utils/get-texture "outside-castle/brush-bl.png") :origin-x 25 :origin-y 20 :scale-x 1.0 :scale-y 1.0 :x 25 :y 0 :baseline 240 :parallax 1.2) (assoc (utils/get-texture "outside-castle/brush-br.png") :origin-x 88 :origin-y 20 :scale-x 1.0 :scale-y 1.0 :x 315 :y 0 :baseline 240 :parallax 1.2) - (assoc (utils/get-texture "outside-castle/walk-behind.png") :x 0 :y 0 :baseline 69)]} + (assoc (utils/get-texture "outside-castle/walk-behind.png") :x 0 :y 0 :baseline 69)] + :sunrise [(assoc (utils/get-texture "outside-castle/background.png") :x 0 :y 0 :baseline 0) + + (assoc (utils/get-texture "outside-castle/brush-bl.png") :origin-x 25 :origin-y 20 :scale-x 1.0 :scale-y 1.0 :x 25 :y 0 :baseline 240 :parallax 1.2) + (assoc (utils/get-texture "outside-castle/brush-br.png") :origin-x 88 :origin-y 20 :scale-x 1.0 :scale-y 1.0 :x 315 :y 0 :baseline 240 :parallax 1.2) + (assoc (utils/get-texture "outside-castle/walk-behind.png") :x 0 :y 0 :baseline 69)]} :entities {:peddler (actions/start-animation screen (assoc (utils/get-texture "outside-castle/peddler.png") :x 110 :y 90 :baseline 150 :anim nil :anim-sound-frames {peddler-stand {8 [:blink 0.3 0.8] diff --git a/desktop/src-common/advent/screens/rooms/outside_house.clj b/desktop/src-common/advent/screens/rooms/outside_house.clj index 944ac59f..168809e3 100644 --- a/desktop/src-common/advent/screens/rooms/outside_house.clj +++ b/desktop/src-common/advent/screens/rooms/outside_house.clj @@ -21,17 +21,17 @@ (actions/run-action entities (begin [this screen entities] (-> entities - (assoc-in [:tweens :dawn-r] (tween/tween :dawn-r screen [:time-profiles :default :r] :current 0.63 50.0 :entities entities)) - (assoc-in [:tweens :dawn-g] (tween/tween :dawn-g screen [:time-profiles :default :g] :current 0.36 50.0 :entities entities)) - (assoc-in [:tweens :dawn-b] (tween/tween :dawn-b screen [:time-profiles :default :b] :current 0.23 50.0 :entities entities)) - (assoc-in [:tweens :hue-amount-v] (tween/tween :hue-amount-v screen [:time-profiles :default :hue-amount] :current 0.0 50.0 :entities entities)) - (assoc-in [:tweens :multiply-amount-v] (tween/tween :multiply-amount-v screen [:time-profiles :default :multiply-amount] :current 0.0 50.0 :entities entities)) + (assoc-in [:tweens :dawn-r] (tween/tween :dawn-r screen [:time-profiles :default :r] :current 0.63 60.0 :entities entities)) + (assoc-in [:tweens :dawn-g] (tween/tween :dawn-g screen [:time-profiles :default :g] :current 0.36 60.0 :entities entities)) + (assoc-in [:tweens :dawn-b] (tween/tween :dawn-b screen [:time-profiles :default :b] :current 0.23 60.0 :entities entities)) + (assoc-in [:tweens :hue-amount-v] (tween/tween :hue-amount-v screen [:time-profiles :default :hue-amount] :current 0.0 60.0 :entities entities)) + (assoc-in [:tweens :multiply-amount-v] (tween/tween :multiply-amount-v screen [:time-profiles :default :multiply-amount] :current 0.0 60.0 :entities entities)) - (assoc-in [:tweens :dawn-r-s] (tween/tween :dawn-r-s screen [:time-profiles :sprite :r] :current 0.63 50.0 :entities entities)) - (assoc-in [:tweens :dawn-g-s] (tween/tween :dawn-g-s screen [:time-profiles :sprite :g] :current 0.36 50.0 :entities entities)) - (assoc-in [:tweens :dawn-b-s] (tween/tween :dawn-b-s screen [:time-profiles :sprite :b] :current 0.23 50.0 :entities entities)) - (assoc-in [:tweens :hue-amount-v-s] (tween/tween :hue-amount-v-s screen [:time-profiles :sprite :hue-amount] :current 0.0 50.0 :entities entities)) - (assoc-in [:tweens :multiply-amount-v-s] (tween/tween :multiply-amount-v-s screen [:time-profiles :sprite :multiply-amount] :current 0.0 50.0 :entities entities)))) + (assoc-in [:tweens :dawn-r-s] (tween/tween :dawn-r-s screen [:time-profiles :sprite :r] :current 0.63 60.0 :entities entities)) + (assoc-in [:tweens :dawn-g-s] (tween/tween :dawn-g-s screen [:time-profiles :sprite :g] :current 0.36 60.0 :entities entities)) + (assoc-in [:tweens :dawn-b-s] (tween/tween :dawn-b-s screen [:time-profiles :sprite :b] :current 0.23 60.0 :entities entities)) + (assoc-in [:tweens :hue-amount-v-s] (tween/tween :hue-amount-v-s screen [:time-profiles :sprite :hue-amount] :current 0.0 60.0 :entities entities)) + (assoc-in [:tweens :multiply-amount-v-s] (tween/tween :multiply-amount-v-s screen [:time-profiles :sprite :multiply-amount] :current 0.0 60.0 :entities entities)))) (continue [this screen entities] entities) (done? [this screen entities] diff --git a/desktop/src-common/advent/screens/rooms/space.clj b/desktop/src-common/advent/screens/rooms/space.clj index 3e717dbc..8d818357 100644 --- a/desktop/src-common/advent/screens/rooms/space.clj +++ b/desktop/src-common/advent/screens/rooms/space.clj @@ -250,6 +250,7 @@ (actions/walk-straight-to entities :ego [35 45] :override-dir :right :speed 3.0)) (actions/do-dialogue entities :ego "I don't want to get too close while he still has his lightning gem!")) (do + (actions/update-entity entities :ego #(assoc % :get-script (:original-get-script %))) (swing-at-blergh entities) (actions/do-dialogue entities :bloodclot-head "Ha ha ha! Is that the best you can do?" :bloodclot-head "Take this!") @@ -261,6 +262,7 @@ (actions/play-animation entities :ego :shock :stop? false) (actions/begin-animation entities :bloodclot-head :stand) (actions/update-entity entities :lightning #(assoc % :opacity 0.0)) + (actions/play-animation entities :ego :burnt :stop? false) (actions/play-animation entities :ego :passed-out :continue? true) (actions/do-dialogue entities :bloodclot-head "Oh shucks. I overcooked him." @@ -304,7 +306,7 @@ :collision "space/collision.png" :scale-fn (constantly 1.5) :start-pos [35 45] - :apply-state (fn [_ e] + :apply-state (fn [screen e] (as-> e e (if (get-in e [:state :broke-jewel?]) (assoc-in e [:room :entities :broken-jewel] (get-in e [:room :broken-jewel])) @@ -315,4 +317,19 @@ (if (get-in e [:state :seen-bloodclot?]) (assoc-in e [:room :entities :bloodclot-head :opacity ] 1.0) e) - (assoc-in e [:state :seen-bloodclot?] true)))))) + (if (and (not (actions/has-obtained? e :slingshot)) + (get-in e [:state :seen-bloodclot?])) + (update-in e [:room :entities :ego] #(actions/start-animation screen % :scared)) + e) + (assoc-in e [:state :seen-bloodclot?] true) + (assoc-in e [:room :entities :ego :original-get-script] + (get-in e [:room :entities :ego :get-script])) + (assoc-in e [:room :entities :ego :get-script] + (fn [cursor [x y]] + (actions/get-script entities + (if (actions/has-obtained? entities :slingshot) + (actions/talk entities :ego "No time for that!") + (do + (actions/talk entities :ego "No time for that!" :anim :scared-talk :stop? false) + (actions/begin-animation entities :ego :scared))))))))))) + diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index 23e52069..eecbcf3b 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -273,9 +273,6 @@ void main () (Thread/sleep 1000) (actions/talk entities :warden "Hey, get back in jail!") (common/go-to-jail entities)) - - (get-in @entities [:room :blergh]) - (actions/talk entities :ego "There's no time!") :else (do