diff --git a/desktop/asset-work/inside-house/safe-screen.png b/desktop/asset-work/inside-house/safe-screen.png index f7a43f0c..99877c81 100644 Binary files a/desktop/asset-work/inside-house/safe-screen.png and b/desktop/asset-work/inside-house/safe-screen.png differ diff --git a/desktop/resources/packed/pack.atlas b/desktop/resources/packed/pack.atlas index 48009a18..70ce9836 100644 --- a/desktop/resources/packed/pack.atlas +++ b/desktop/resources/packed/pack.atlas @@ -144,7 +144,21 @@ cat-tree/dot orig: 1, 1 offset: 0, 0 index: -1 -wizard/dot +inside-jail/dot + rotate: false + xy: 704, 916 + size: 1, 1 + orig: 1, 1 + offset: 0, 0 + index: -1 +inside-antique/dot + rotate: false + xy: 704, 916 + size: 1, 1 + orig: 1, 1 + offset: 0, 0 + index: -1 +ego/dot rotate: false xy: 704, 916 size: 1, 1 @@ -165,13 +179,6 @@ outsidehouse/dot orig: 1, 1 offset: 0, 0 index: -1 -ego/dot - rotate: false - xy: 704, 916 - size: 1, 1 - orig: 1, 1 - offset: 0, 0 - index: -1 dream/dot rotate: false xy: 704, 916 @@ -186,14 +193,7 @@ title/dot orig: 1, 1 offset: 0, 0 index: -1 -inside-antique/dot - rotate: false - xy: 704, 916 - size: 1, 1 - orig: 1, 1 - offset: 0, 0 - index: -1 -inside-jail/dot +wizard/dot rotate: false xy: 704, 916 size: 1, 1 @@ -265,7 +265,7 @@ cat-tree/tree-r index: -1 close rotate: false - xy: 444, 4 + xy: 463, 4 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -284,13 +284,6 @@ space/cloud orig: 15, 15 offset: 0, 0 index: -1 -cursorr - rotate: false - xy: 462, 4 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 dbh rotate: false xy: 2, 1086 @@ -410,6 +403,13 @@ ego/base orig: 16, 36 offset: 0, 0 index: -1 +ego/whistle-1 + rotate: false + xy: 2021, 96 + size: 16, 36 + orig: 16, 36 + offset: 0, 0 + index: -1 ego/burnt rotate: false xy: 852, 916 @@ -515,6 +515,13 @@ ego/swing-shovel orig: 630, 70 offset: 0, 0 index: -1 +ego/whistle-2 + rotate: false + xy: 1491, 404 + size: 16, 36 + orig: 16, 36 + offset: 0, 0 + index: -1 ending-castle/Untitled rotate: false xy: 1767, 109 @@ -613,14 +620,14 @@ held/dot orig: 1, 1 offset: 0, 0 index: -1 -outside-jail/dot +space/dot rotate: false xy: 2007, 468 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 -space/dot +outside-jail/dot rotate: false xy: 2007, 468 size: 1, 1 @@ -650,28 +657,28 @@ inside-antique/beard index: -1 inside-antique/bowl rotate: false - xy: 2031, 1955 + xy: 481, 7 size: 14, 13 orig: 14, 13 offset: 0, 0 index: -1 inside-antique/bowl-0 rotate: false - xy: 2031, 1955 + xy: 481, 7 size: 14, 13 orig: 14, 13 offset: 0, 0 index: -1 inside-antique/bowl-1 rotate: false - xy: 1696, 4 + xy: 2031, 1955 size: 14, 13 orig: 14, 13 offset: 0, 0 index: -1 inside-antique/bowl-2 rotate: false - xy: 480, 7 + xy: 1696, 4 size: 14, 13 orig: 14, 13 offset: 0, 0 @@ -886,16 +893,9 @@ inside-house/candle-aura orig: 108, 27 offset: 0, 0 index: -1 -inside-house/flask - rotate: false - xy: 1491, 401 - size: 16, 21 - orig: 16, 21 - offset: 0, 0 - index: -1 inside-house/frog-legs rotate: false - xy: 1491, 424 + xy: 444, 4 size: 17, 16 orig: 17, 16 offset: 0, 0 @@ -1431,6 +1431,13 @@ cloudy orig: 20, 20 offset: 0, 0 index: -1 +cursorr + rotate: false + xy: 2030, 661 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 dawn rotate: false xy: 968, 1806 @@ -1571,6 +1578,20 @@ ego/swing orig: 288, 75 offset: 0, 0 index: -1 +ego/whistle-3 + rotate: false + xy: 2030, 740 + size: 16, 36 + orig: 16, 36 + offset: 0, 0 + index: -1 +ego/whistle-4 + rotate: false + xy: 2030, 702 + size: 16, 36 + orig: 16, 36 + offset: 0, 0 + index: -1 ending-castle/ending-castle2-assets/collision rotate: false xy: 324, 1322 @@ -1643,7 +1664,7 @@ inside-antique/open-blinds index: -1 inside-antique/portrait rotate: false - xy: 2030, 706 + xy: 2030, 589 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -1657,7 +1678,7 @@ inside-antique/shopkeep index: -1 inside-antique/teddy rotate: false - xy: 2030, 670 + xy: 2030, 553 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -1795,6 +1816,13 @@ inside-house/desk orig: 320, 240 offset: 0, 0 index: -1 +inside-house/flask + rotate: false + xy: 2030, 679 + size: 16, 21 + orig: 16, 21 + offset: 0, 0 + index: -1 inside-house/glow rotate: false xy: 968, 1080 @@ -1881,7 +1909,7 @@ outside-castle/brush-bl index: -1 outside-castle/note rotate: false - xy: 2030, 760 + xy: 2030, 643 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -1965,7 +1993,7 @@ outsidehouse/lamb index: -1 outsidehouse/note rotate: false - xy: 2030, 742 + xy: 2030, 625 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -1979,14 +2007,14 @@ outsidehouse/sheep-walk index: -1 pathfind-test rotate: false - xy: 2030, 724 + xy: 2030, 607 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 save rotate: false - xy: 2030, 688 + xy: 2030, 571 size: 16, 16 orig: 16, 16 offset: 0, 0 diff --git a/desktop/resources/packed/pack.png b/desktop/resources/packed/pack.png index 93e9f604..054c26e0 100644 Binary files a/desktop/resources/packed/pack.png and b/desktop/resources/packed/pack.png differ diff --git a/desktop/resources/packed/pack2.png b/desktop/resources/packed/pack2.png index 2a9ed3a9..e8b1c9bf 100644 Binary files a/desktop/resources/packed/pack2.png and b/desktop/resources/packed/pack2.png differ diff --git a/desktop/src-common/advent/actions.clj b/desktop/src-common/advent/actions.clj index 7302927d..a4441357 100644 --- a/desktop/src-common/advent/actions.clj +++ b/desktop/src-common/advent/actions.clj @@ -998,16 +998,19 @@ (map (partial + 16) [5 6 7 8 8 7 6 6 6 6 6]) (repeat 45 22)]) - [22 22 22 22 22 22 22 22 26 27 28] + [22 22 22 22 22 22 22 22 26 27 28 28 28 28 28 28 28 28 28 28 28 28 28 28] ]))] - (Thread/sleep 200) + (wait entities 200) + (begin-animation entities :ego :whistle) + (wait entities 400) (add-entity entities :safe-song (rooms/make-entity :safe-song (assoc (utils/get-texture "safe-song/safe-song-1") :x 130 :y 120 :baseline 241 + :night-profile :none :anim nil :anim-start 0 :play safe-song-anim))) @@ -1015,5 +1018,6 @@ (begin-animation entities :safe-song :play) (wait entities 100) (play-sound entities "safe-sound.ogg" 0.1 false) - (wait entities 10000) - (remove-entity entities :safe-song))) + (wait entities 10800) + (remove-entity entities :safe-song) + (do-stop entities :ego))) diff --git a/desktop/src-common/advent/screens/rooms/inside_house.clj b/desktop/src-common/advent/screens/rooms/inside_house.clj index 230db8cb..d30b7159 100644 --- a/desktop/src-common/advent/screens/rooms/inside_house.clj +++ b/desktop/src-common/advent/screens/rooms/inside_house.clj @@ -193,6 +193,8 @@ :flask-1 (actions/get-script entities (actions/do-dialogue entities :wizard "You can keep the flask.")) + :tune (actions/get-script entities + (actions/talk entities :ego "I think he already has it memorized.")) (actions/get-script entities (actions/do-dialogue entities :wizard "No thank you.")))}) diff --git a/desktop/src-common/advent/screens/safe.clj b/desktop/src-common/advent/screens/safe.clj index 71966333..5d369be3 100644 --- a/desktop/src-common/advent/screens/safe.clj +++ b/desktop/src-common/advent/screens/safe.clj @@ -27,17 +27,17 @@ (assoc :start-showing? false))) (defn button-box [x y] - (zone/box (+ start-x x) (+ start-y y) (+ start-x x 16) (+ start-y y 16))) + (zone/box (+ start-x x) (+ start-y y) (+ start-x x 16) (+ start-y y 20))) (defn get-button [[x y]] (first (filter (fn [{:keys [in?] :as button}] (when (in? x y) button)) - [{:in? (button-box 9 17) :sound (utils/load-sound "inside-house/safe-1.ogg") :id 1 } - {:in? (button-box 29 17) :sound (utils/load-sound "inside-house/safe-2.ogg") :id 2} - {:in? (button-box 49 17) :sound (utils/load-sound "inside-house/safe-3.ogg") :id 3} - {:in? (button-box 70 17) :sound (utils/load-sound "inside-house/safe-4.ogg") :id 4} - {:in? (button-box 91 17) :sound (utils/load-sound "inside-house/safe-5.ogg") :id 5}]))) + [{:in? (button-box 9 13) :sound (utils/load-sound "inside-house/safe-1.ogg") :id 1 } + {:in? (button-box 29 13) :sound (utils/load-sound "inside-house/safe-2.ogg") :id 2} + {:in? (button-box 49 13) :sound (utils/load-sound "inside-house/safe-3.ogg") :id 3} + {:in? (button-box 70 13) :sound (utils/load-sound "inside-house/safe-4.ogg") :id 4} + {:in? (button-box 91 13) :sound (utils/load-sound "inside-house/safe-5.ogg") :id 5}]))) (defscreen safe-screen :on-show diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index 77de25d2..6e0c5954 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -317,11 +317,24 @@ void main () :tune (actions/get-script entities - (if (get-in @entities [:room :entities :wizard]) + (cond + (get-in @entities [:room :entities :wizard]) (do (actions/talk entities :ego "Better not hum it with Gandarf around!") (actions/talk entities :wizard "What's that, boy?") (actions/talk entities :ego "Oh... Erm... Nothing.")) + (get-in @entities [:room :entities :warden]) + (do + (actions/talk entities :ego "I'll whistle it really quietly.") + (actions/play-safe entities) + (actions/do-dialogue entities :warden "Huh? What was that?" + :warden "Get back in yer cell!") + (common/go-to-jail entities) + (Thread/sleep 500) + (actions/play-animation entities :ego :sigh) + (actions/talk entities :ego "You really are a sucker for punishment, aren't you?") + (steam/set-achievement "FOOLISH_LULLABY")) + :else (do (actions/talk entities :ego "Ugh! I have Gandarf's MagicSafe 2000 tune stuck in my head.") (actions/play-safe entities)))) @@ -498,13 +511,15 @@ void main () (texture (aget squat-sheet 0 i)))) start-squat-2 (animation 0.05 (for [i [0 1 2 3]] (texture (aget squat-sheet 0 i)))) + + end-squat (animation 0.05 (for [i [3 2 1 0]] (texture (aget squat-sheet 0 i)))) - squat-anim (animation 0.05 (for [i [0 1 2 3 3 3 3 3 3 3 3 3 3 3 3 2 1] ] + squat-anim (animation 0.05 (for [i [0 1 2 3 3 3 3 3 3 3 3 3 3 3 3 2 1]] (texture (aget squat-sheet 0 i)))) reach-anim (animation 0.1 (for [i [0 1 2 3 3 3 3 3 3 2 1 0]] (texture (aget reach-sheet 0 i)))) - reach-start (animation 0.1 (for [i [0 1 2 3 ]] + reach-start (animation 0.1 (for [i [0 1 2 3]] (texture (aget reach-sheet 0 i)))) reach-stop (animation 0.1 (for [i [3 2 1 0]] (texture (aget reach-sheet 0 i)))) @@ -514,10 +529,11 @@ void main () (texture (aget cat-toy-sheet 0 i)))) cat-toy-last-half (animation 0.1 (for [i [3 3 3 2 1 1 0 0]] (texture (aget cat-toy-sheet 0 i)))) - shy (animation 0.2 (for [i [0 1 2 2 2 2 2 2 2 2 1 0 0 0 0 0 0 0 ]] - (texture (aget fire-sheet 0 i)))) + shy (animation 0.2 (for [i [0 1 2 2 2 2 2 2 2 2 1 0 0 0 0 0 0 0]] + (texture (aget fire-sheet 0 i)))) fire-1-anim (animation 0.1 (for [i [0 1 2 2 2 3 2 3 2 2 2 2 2 2 2 2 2 2 1 0]] (texture (aget fire-sheet 0 i)))) + fire-2-anim (animation 0.1 (for [i [0 1 2 2 2 3 2 3 2 2 2 2 2 2 2 4 4 4 5 6 7 4 4 4 2 2 2 2 2 2 2 2 1 0]] (texture (aget fire-sheet 0 i)))) fire-3-anim (animation 0.1 (for [i [0 1 2 2 2 3 2 3 2 2 2 2 2 2 4 4 4 4 4 4 5 6 7 4 4 4 4 4 8 9 10 11 4 4 4 2 2 2 2 2 2 2 2 0]] @@ -554,6 +570,7 @@ void main () frustrated-talk (utils/make-anim "ego/frustrated-talk.png" [16 36] 0.2 (flatten (range 6))) swing-shovel (utils/make-anim "ego/swing-shovel.png" [70 70] 0.1 (range 9)) love (utils/make-anim-seq "ego/love" [50 70] 0.1 (flatten [0 0 1 1 2 2 3 3 4 4 5 5 6 6 (repeat 10 7) (repeat 5 8) (repeat 5 7) (repeat 5 8) (repeat 5 7) (repeat 10 [23 24 25 24]) (repeat 30 9) 10 11 12 13 14 15 16 17 18 19 20 21 21 21 22 22 22 21 21 21 21 21 21 21 21 22 22 22 22 22 21 21 21 21 22 22 22 22 22 22 21 21 21 21 21 6 6 5 5 4 4 3 3 2 2 1 1 0])) + whistle (utils/make-anim-seq "ego/whistle" [18 36] 0.2 (flatten [0 1 1 (repeat 200 [2 3])])) axe (utils/make-anim "ego/axe.png" [60 70] 0.10 (flatten [1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 (range 7)])) axe-wood (utils/make-anim "ego/axe-wood.png" [60 70] 0.10 (flatten [1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 (range 11)])) suspended (utils/make-anim "ego/suspended.png" [20 36] 0.10 [0]) @@ -630,6 +647,7 @@ void main () :shy shy :climb climb :poke poke + :whistle whistle } :left {:walk (utils/flip walk-right) :stand (utils/flip stand-anim) @@ -681,6 +699,7 @@ void main () :shy (utils/flip shy) :climb (utils/flip climb) :poke (utils/flip poke) + :whistle (utils/flip whistle) } :baseline (- 240 (last start-pos)) :facing :right @@ -786,6 +805,7 @@ void main () (get-in ego [:right :glad]) {:origin-x 11} (get-in ego [:left :climb]) {:origin-x 11} (get-in ego [:right :climb]) {:origin-x 11} + (get-in ego [:left :whistle]) {:origin-x 7} (get-in ego [:right :standup]) {:origin-x 32} (get-in ego [:right :crawl]) {:origin-x 32} (get-in ego [:right :crawl-hide]) {:origin-x 32}