diff --git a/desktop/gametodos.txt b/desktop/gametodos.txt index 4f06d1db..f9c4d366 100644 --- a/desktop/gametodos.txt +++ b/desktop/gametodos.txt @@ -11,7 +11,6 @@ + owl barf effect + sack lunch should spoil + swinging axe at second doesn't seem right -+ bloodclot isn't hidden at start + fight with blergh at end isn't great + ending + secret lever diff --git a/desktop/resources/cat-tree/dot.png b/desktop/resources/cat-tree/dot.png new file mode 100644 index 00000000..8802f8e0 Binary files /dev/null and b/desktop/resources/cat-tree/dot.png differ diff --git a/desktop/resources/cat-tree/puke b/desktop/resources/cat-tree/puke new file mode 100644 index 00000000..7481bc95 --- /dev/null +++ b/desktop/resources/cat-tree/puke @@ -0,0 +1,449 @@ +Untitled +- Delay - +active: true +lowMin: 1800.0 +lowMax: 1800.0 +- Duration - +lowMin: 150.0 +lowMax: 150.0 +- Count - +min: 0 +max: 100 +- Emission - +lowMin: 0.0 +lowMax: 0.0 +highMin: 10.0 +highMax: 10.0 +relative: false +scalingCount: 5 +scaling0: 1.0 +scaling1: 0.0 +scaling2: 1.0 +scaling3: 0.0 +scaling4: 0.0 +timelineCount: 5 +timeline0: 0.0 +timeline1: 0.1369863 +timeline2: 0.19863014 +timeline3: 0.44520548 +timeline4: 1.0 +- Life - +lowMin: 0.0 +lowMax: 0.0 +highMin: 1000.0 +highMax: 1000.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Life Offset - +active: false +- X Offset - +active: false +- Y Offset - +active: false +- Spawn Shape - +shape: point +- Spawn Width - +lowMin: 0.0 +lowMax: 0.0 +highMin: 0.0 +highMax: 0.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Spawn Height - +lowMin: 0.0 +lowMax: 0.0 +highMin: 0.0 +highMax: 0.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Scale - +lowMin: 0.0 +lowMax: 0.0 +highMin: 1.0 +highMax: 1.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Velocity - +active: true +lowMin: 0.0 +lowMax: 0.0 +highMin: 200.0 +highMax: 100.0 +relative: false +scalingCount: 3 +scaling0: 1.0 +scaling1: 0.40816328 +scaling2: 0.0 +timelineCount: 3 +timeline0: 0.0 +timeline1: 0.0890411 +timeline2: 0.41095892 +- Angle - +active: true +lowMin: 200.0 +lowMax: 280.0 +highMin: 70.0 +highMax: 20.0 +relative: true +scalingCount: 3 +scaling0: 0.0 +scaling1: 0.79591835 +scaling2: 1.0 +timelineCount: 3 +timeline0: 0.0 +timeline1: 0.30136988 +timeline2: 1.0 +- Rotation - +active: false +- Wind - +active: false +- Gravity - +active: false +- Tint - +colorsCount: 3 +colors0: 0.36862746 +colors1: 1.0 +colors2: 0.047058824 +timelineCount: 1 +timeline0: 0.0 +- Transparency - +lowMin: 0.0 +lowMax: 0.0 +highMin: 1.0 +highMax: 1.0 +relative: false +scalingCount: 3 +scaling0: 1.0 +scaling1: 1.0 +scaling2: 0.0 +timelineCount: 3 +timeline0: 0.0 +timeline1: 0.21232876 +timeline2: 0.42465752 +- Options - +attached: false +continuous: false +aligned: false +additive: false +behind: false +premultipliedAlpha: false +- Image Path - +/Users/bryce/dev/playground/advent/desktop/resources/inside-jail/dot.png + + +Untitled +- Delay - +active: true +lowMin: 1500.0 +lowMax: 1500.0 +- Duration - +lowMin: 200.0 +lowMax: 200.0 +- Count - +min: 0 +max: 100 +- Emission - +lowMin: 0.0 +lowMax: 0.0 +highMin: 10.0 +highMax: 10.0 +relative: false +scalingCount: 5 +scaling0: 1.0 +scaling1: 0.0 +scaling2: 1.0 +scaling3: 0.0 +scaling4: 0.0 +timelineCount: 5 +timeline0: 0.0 +timeline1: 0.1369863 +timeline2: 0.19863014 +timeline3: 0.44520548 +timeline4: 1.0 +- Life - +lowMin: 0.0 +lowMax: 0.0 +highMin: 1000.0 +highMax: 1000.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Life Offset - +active: false +- X Offset - +active: false +- Y Offset - +active: false +- Spawn Shape - +shape: point +- Spawn Width - +lowMin: 0.0 +lowMax: 0.0 +highMin: 0.0 +highMax: 0.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Spawn Height - +lowMin: 0.0 +lowMax: 0.0 +highMin: 0.0 +highMax: 0.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Scale - +lowMin: 0.0 +lowMax: 0.0 +highMin: 1.0 +highMax: 1.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Velocity - +active: true +lowMin: 0.0 +lowMax: 0.0 +highMin: 200.0 +highMax: 300.0 +relative: false +scalingCount: 3 +scaling0: 1.0 +scaling1: 0.18367347 +scaling2: 0.0 +timelineCount: 3 +timeline0: 0.0 +timeline1: 0.15068494 +timeline2: 0.49315068 +- Angle - +active: true +lowMin: 200.0 +lowMax: 280.0 +highMin: 50.0 +highMax: 70.0 +relative: true +scalingCount: 2 +scaling0: 0.0 +scaling1: 1.0 +timelineCount: 2 +timeline0: 0.0 +timeline1: 0.5068493 +- Rotation - +active: false +- Wind - +active: false +- Gravity - +active: true +lowMin: 0.0 +lowMax: 0.0 +highMin: -10.0 +highMax: -10.0 +relative: false +scalingCount: 2 +scaling0: 0.0 +scaling1: 1.0 +timelineCount: 2 +timeline0: 0.0 +timeline1: 0.26712328 +- Tint - +colorsCount: 3 +colors0: 1.0 +colors1: 0.39607844 +colors2: 0.047058824 +timelineCount: 1 +timeline0: 0.0 +- Transparency - +lowMin: 0.0 +lowMax: 0.0 +highMin: 1.0 +highMax: 1.0 +relative: false +scalingCount: 3 +scaling0: 1.0 +scaling1: 1.0 +scaling2: 0.0 +timelineCount: 3 +timeline0: 0.0 +timeline1: 0.15068494 +timeline2: 0.36301368 +- Options - +attached: false +continuous: false +aligned: false +additive: false +behind: false +premultipliedAlpha: false +- Image Path - +/Users/bryce/dev/playground/advent/desktop/resources/inside-jail/dot.png + + +Untitled +- Delay - +active: true +lowMin: 1300.0 +lowMax: 1300.0 +- Duration - +lowMin: 100.0 +lowMax: 100.0 +- Count - +min: 0 +max: 100 +- Emission - +lowMin: 0.0 +lowMax: 0.0 +highMin: 10.0 +highMax: 10.0 +relative: false +scalingCount: 5 +scaling0: 1.0 +scaling1: 0.0 +scaling2: 1.0 +scaling3: 0.0 +scaling4: 0.0 +timelineCount: 5 +timeline0: 0.0 +timeline1: 0.1369863 +timeline2: 0.19863014 +timeline3: 0.44520548 +timeline4: 1.0 +- Life - +lowMin: 0.0 +lowMax: 0.0 +highMin: 1000.0 +highMax: 1000.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Life Offset - +active: false +- X Offset - +active: false +- Y Offset - +active: false +- Spawn Shape - +shape: point +- Spawn Width - +lowMin: 0.0 +lowMax: 0.0 +highMin: 0.0 +highMax: 0.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Spawn Height - +lowMin: 0.0 +lowMax: 0.0 +highMin: 0.0 +highMax: 0.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Scale - +lowMin: 0.0 +lowMax: 0.0 +highMin: 1.0 +highMax: 1.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Velocity - +active: true +lowMin: 5.0 +lowMax: 5.0 +highMin: 200.0 +highMax: 400.0 +relative: false +scalingCount: 3 +scaling0: 1.0 +scaling1: 0.2857143 +scaling2: 0.0 +timelineCount: 3 +timeline0: 0.0 +timeline1: 0.15753424 +timeline2: 0.49315068 +- Angle - +active: true +lowMin: 200.0 +lowMax: 280.0 +highMin: 30.0 +highMax: 50.0 +relative: true +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Rotation - +active: false +- Wind - +active: false +- Gravity - +active: true +lowMin: 0.0 +lowMax: 0.0 +highMin: -10.0 +highMax: -10.0 +relative: false +scalingCount: 2 +scaling0: 0.0 +scaling1: 0.42857143 +timelineCount: 2 +timeline0: 0.0 +timeline1: 0.7328767 +- Tint - +colorsCount: 3 +colors0: 1.0 +colors1: 0.91764706 +colors2: 0.047058824 +timelineCount: 1 +timeline0: 0.0 +- Transparency - +lowMin: 0.0 +lowMax: 0.0 +highMin: 1.0 +highMax: 1.0 +relative: false +scalingCount: 3 +scaling0: 1.0 +scaling1: 1.0 +scaling2: 0.0 +timelineCount: 3 +timeline0: 0.0 +timeline1: 0.39041096 +timeline2: 0.56164384 +- Options - +attached: false +continuous: false +aligned: false +additive: false +behind: false +premultipliedAlpha: false +- Image Path - +/Users/bryce/dev/playground/advent/desktop/resources/inside-jail/dot.png diff --git a/desktop/src-common/advent/screens/rooms/cat_tree.clj b/desktop/src-common/advent/screens/rooms/cat_tree.clj index c844b618..3596ad3f 100644 --- a/desktop/src-common/advent/screens/rooms/cat_tree.clj +++ b/desktop/src-common/advent/screens/rooms/cat_tree.clj @@ -26,6 +26,11 @@ (actions/walk-straight-to entities :ego [205 10]) (actions/talk entities :ego "No way.")) +(defn do-puke [entities] + (particle-effect! (get-in @entities [:room :entities :puke]) :reset) + (particle-effect! (get-in @entities [:room :entities :puke]) :start) + (actions/play-animation entities :owl :puke)) + (defn do-grandma-dialogue-with-cat [entities] (actions/walk-to entities :ego [165 45] :face :left) (actions/do-dialogue entities @@ -100,18 +105,19 @@ (update-in [:room :entities] #(assoc % :owl (doto (get-in entities [:room :owl]) println))))) (defn talk-to-owl [entities] + (actions/walk-to entities :ego [141 54] :face :right) (cond (actions/has-obtained? entities :feather) (do (actions/do-dialogue entities :ego "Hello again." :owl "Oh! Hello again! Thanks you again for all your help." :owl "My nausea has nearly worn off.") - (actions/play-animation entities :owl :puke)) + (do-puke entities)) (get-in @entities [:state :talked-to-owl?]) (do (actions/do-dialogue entities :ego "Hello again." :owl "Have you found my glass monocle!?" :owl "I'll have no relief of this nausea until you do.") - (actions/play-animation entities :owl :puke)) + (do-puke entities)) :else (do (actions/do-dialogue entities :ego "Hello there little owl." @@ -134,7 +140,7 @@ :owl "I was born with a birth defect, and only one of my eyes is good." :owl "I dropped my monocle somewhere around here!" :owl "Without it, I have severe nausea.") - (actions/play-animation entities :owl :puke) + (do-puke entities) (actions/do-dialogue entities :owl "Excuse me." :owl "I don't suppose you could help me find it?" @@ -146,7 +152,7 @@ :owl "Nothing at all." :owl "I'm missing my eyepiece, and without it, I get too much motion sickness." :owl "I've been sitting here sick ever since I dropped it.") - (actions/play-animation entities :owl :puke) + (do-puke entities) (actions/do-dialogue entities :owl "Excuse me." :owl "Could you help me find it?" @@ -162,13 +168,13 @@ :owl "Oh, do tell me if you see a glass monocle around." :owl "I can't see at all without it. On top of that, I have severe nausea!" :owl "I'll be stranded here for who knows how long without it.") - (actions/play-animation entities :owl :puke))}]}))) + (do-puke entities))}]}))) (actions/update-state entities #(assoc % :talked-to-owl? true))) (defn give-monocle [entities] (actions/walk-to entities :ego [141 54] :face :right) (actions/talk entities :ego "Is this your monocle?") - (actions/play-animation entities :owl :puke) + (do-puke entities) (actions/remove-item entities :monocle) (actions/do-dialogue entities :owl "It is!" @@ -190,7 +196,8 @@ grandma-kiss (utils/make-anim "cat-tree/grandma.png" [25 36] 0.2 [0 8 9 10 9 10 9 10 9 8 0]) owl-stand (utils/make-anim "cat-tree/owl.png" [19 28] 0.2 [0 0 0 0 0 0 0 2]) owl-talk (utils/make-anim "cat-tree/owl.png" [19 28] 0.2 [1 0 1 0 1 0 0 0 2 0]) - owl-puke (utils/make-anim "cat-tree/owl.png" [19 28] 0.10 [0 0 2 2 3 2 2 3 3 2 3 3 3 4 5 6 7 4 4 3 3 2 2 2 2 2])] + owl-puke (utils/make-anim "cat-tree/owl.png" [19 28] 0.10 [0 0 2 2 3 2 2 3 3 2 3 3 3 4 5 6 7 4 4 3 3 2 2 2 2 2]) + puke (particle-effect "cat-tree/puke")] (rooms/make :music {:day :town-2 :night :night} :interactions {:down-dir {:box [150 0 270 20] @@ -315,7 +322,9 @@ :origin-x 12 :origin-y 0 :scale-x 1.45 - :scale-y 1.45)} + :scale-y 1.45) + :puke (assoc puke + :x 194 :y 188 :baseline 241)} :owl (rooms/make-entity :owl (assoc (animation->texture screen owl-stand) :x 187 :y 172 :baseline 241 :stand owl-stand