diff --git a/desktop/resources/ego/squat.png b/desktop/resources/ego/squat.png index e6934087..0d48f62e 100644 Binary files a/desktop/resources/ego/squat.png and b/desktop/resources/ego/squat.png differ diff --git a/desktop/resources/ego/squat.pxa/3.pxi b/desktop/resources/ego/squat.pxa/3.pxi index 6c6c8de1..763e89b2 100644 Binary files a/desktop/resources/ego/squat.pxa/3.pxi and b/desktop/resources/ego/squat.pxa/3.pxi differ diff --git a/desktop/resources/ego/squat.pxa/CelData.plist b/desktop/resources/ego/squat.pxa/CelData.plist index 1ff35422..8f638e26 100644 --- a/desktop/resources/ego/squat.pxa/CelData.plist +++ b/desktop/resources/ego/squat.pxa/CelData.plist @@ -22,5 +22,13 @@ duration 1 + + duration + 1 + + + duration + 1 + diff --git a/desktop/settings.edn b/desktop/settings.edn index 61ad08f4..3922b2b0 100644 --- a/desktop/settings.edn +++ b/desktop/settings.edn @@ -1 +1 @@ -{:sound-volume 0.0, :music-volume 0.0} \ No newline at end of file +{:sound-volume 56.0, :music-volume 30.0} \ No newline at end of file diff --git a/desktop/src-common/advent/screens/rooms/outside_house.clj b/desktop/src-common/advent/screens/rooms/outside_house.clj index 41be2501..1e3a9c14 100644 --- a/desktop/src-common/advent/screens/rooms/outside_house.clj +++ b/desktop/src-common/advent/screens/rooms/outside_house.clj @@ -36,6 +36,13 @@ (actions/has-obtained? entities :money) (not (actions/has-item? entities :money)))) +(defn walk-to-sheep [entities] + (actions/walk-to entities :ego [154 133]) + (actions/walk-straight-to entities :ego [119 134] :update-baseline? false)) + +(defn leave-sheep [entities] + (actions/walk-straight-to entities :ego [154 133] :update-baseline? false)) + (defn put-something-in-cauldron [item] (condp = item :money (actions/get-script entities @@ -337,13 +344,13 @@ (if (actions/has-item? entities :wool) (actions/talk entities :ego "The sheep has given me enough wool.") (if (is-sheep-close? @entities) - (do (actions/walk-to entities :ego ego-sheep-loc :face :left) + (do (walk-to-sheep entities) (actions/play-animation entities :ego :reach) (actions/give entities :wool) - (actions/talk entities :ego "I guess her wool is shedding.")) + (actions/talk entities :ego "I guess her wool is shedding.") + (leave-sheep entities)) (do (actions/talk entities :ego "Come here mama sheep!") - (actions/glad entities) (actions/play-animation entities :ego :sigh) (actions/talk entities :ego "She's too far away for me to pet her."))))) @@ -351,31 +358,34 @@ :wool (actions/get-script entities (actions/talk entities :ego "She doesn't need it back.")) :grass (actions/get-script entities - (actions/walk-to entities :ego ego-sheep-loc :face :left) + (walk-to-sheep entities) (actions/talk entities :ego "Come on girl, get the grass!") (actions/play-animation entities :ego :reach) (actions/talk entities :ego "I think she's not interested.")) :carrot (actions/get-script entities - (actions/walk-to entities :ego ego-sheep-loc :face :left) + (walk-to-sheep entities) (actions/talk entities :ego "Come on girl, get the carrot!") (actions/walk-straight-to entities :sheep [90 138] :update-baseline? false) (actions/play-animation entities :ego :reach) (actions/remove-item entities :carrot) - (actions/update-state entities (fn [s] (assoc s :coaxed-sheep? true)))) + (actions/update-state entities (fn [s] (assoc s :coaxed-sheep? true))) + (leave-sheep entities)) :flask-1 (actions/get-script entities (if (is-sheep-close? @entities) - (do (actions/walk-to entities :ego ego-sheep-loc :face :left) - (actions/play-animation entities :ego :reach) + (do (walk-to-sheep entities) + (actions/play-animation entities :ego :milk) (actions/remove-item entities :flask-1) (actions/give entities :flask-1-with-milk) - (actions/talk entities :ego "Sheeps milk.")) + (actions/talk entities :ego "Sheeps milk.") + (leave-sheep entities)) (actions/talk entities :ego "She's too far away."))) :flask-1-with-mushrooms (actions/get-script entities (if (is-sheep-close? @entities) - (do (actions/walk-to entities :ego ego-sheep-loc :face :left) - (actions/play-animation entities :ego :reach) - (items/make-cream-of-mushroom entities)) + (do (walk-to-sheep entities) + (actions/play-animation entities :ego :milk) + (items/make-cream-of-mushroom entities) + (leave-sheep entities)) (actions/talk entities :ego "She's too far away."))) nil) :left {:walk (utils/flip sheep-walk) diff --git a/desktop/src-common/advent/screens/safe.clj b/desktop/src-common/advent/screens/safe.clj index bd064115..104e3fd9 100644 --- a/desktop/src-common/advent/screens/safe.clj +++ b/desktop/src-common/advent/screens/safe.clj @@ -18,6 +18,7 @@ (def start-y 83) (defn close [entities] + (screen! @(resolve 'advent.screens.scene/scene) :on-reactivate) (-> entities (assoc :shown? false) @@ -69,6 +70,7 @@ entities)) :show-screen (fn [{:keys [success failure]} [entities]] + (sound! (sound "inside-house/open-safe.ogg") :play (utils/current-sound-volume)) (assoc entities :start-showing? true :button-choices [] @@ -103,7 +105,9 @@ (> x (+ start-x 200)) (< y start-y) (> y (+ start-y 75))) - (close entities)))))) + (do + (sound! (sound "inside-house/close-safe.ogg") :play (utils/current-sound-volume)) + (close entities))))))) :on-resize (fn [{:keys [width height viewport]} entities] (.update viewport width height))) diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index 16c03a91..9bbbc506 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -198,6 +198,7 @@ scared-walk (utils/make-anim "ego/scared-walk.png" [16 36] 0.05 (range 6)) sigh (utils/make-anim "ego/sigh.png" [18 36] 0.08 [0 0 0 0 1 1 1 2 3 4 5 6 7 8 8 8 8 8 8 8 8 8 0 0 0 0 ]) glad (utils/make-anim "ego/glad.png" [20 46] 0.04 (flatten [0 1 2 3 4 (repeat 8 [5 5 5]) (repeat 20 0)])) + milk (utils/make-anim "ego/squat.png" [18 36] 0.05 [0 1 2 2 3 3 3 3 3 3 6 5 6 5 6 5 6 5 6 5 6 5 6 5 6 5 6 5 6 5 3 3 3 3 3 3 3 3 3 3 3 2 1 0]) ego {:right {:walk walk-right :stand stand-anim @@ -233,7 +234,8 @@ :scared-talk scared-talk :scared-walk scared-walk :sigh sigh - :glad glad} + :glad glad + :milk milk} :left {:walk (utils/flip walk-right) :stand (utils/flip stand-anim) :talk (utils/flip talk-anim) @@ -259,12 +261,14 @@ :spear (utils/flip spear) :pant (utils/flip pant) :sigh (utils/flip sigh) - :glad (utils/flip glad)} + :glad (utils/flip glad) + :milk (utils/flip milk)} :baseline (- 240 (last start-pos)) :facing :right :origin-x 9 :origin-y 0 :scaled true + :milk-sound (sound "outsidehouse/milk.ogg") :step-sound-1 (sound "ego/step-1.ogg") :step-sound-2 (sound "ego/step-2.ogg") :sigh-sound (sound "ego/sigh.ogg") @@ -338,7 +342,10 @@ 143 [:blink 0.15] 176 [:blink 0.15]} (get-in ego [:left :sigh]) {1 [:sigh-sound 0.4]} - (get-in ego [:right :sigh]) {1 [:sigh-sound 0.4]}} + (get-in ego [:right :sigh]) {1 [:sigh-sound 0.4]} + (get-in ego [:left :milk]) {8 [:milk-sound 1.0]} + (get-in ego [:right :milk]) {8 [:milk-sound 1.0]} + } :anim-merges {(get-in ego [:right :shock]) {:origin-x 15} :default {:origin-x 9}})] (actions/start-animation screen