diff --git a/desktop/gametodos.txt b/desktop/gametodos.txt index d5177a5a..58e03943 100644 --- a/desktop/gametodos.txt +++ b/desktop/gametodos.txt @@ -4,9 +4,9 @@ + shitty plates + more visible crowbar + sack lunch should spoil -+ swinging axe at second doesn't seem right + fight with blergh at end isn't great + ending + secret lever + shopkeep sigh + proper save/settings file location ++ closing should stop all scripts diff --git a/desktop/resources/inside-antique/antique-sigh.png b/desktop/resources/inside-antique/antique-sigh.png new file mode 100644 index 00000000..5eef87a9 Binary files /dev/null and b/desktop/resources/inside-antique/antique-sigh.png differ diff --git a/desktop/resources/inside-antique/antique-sigh.pxa/0.pxi b/desktop/resources/inside-antique/antique-sigh.pxa/0.pxi new file mode 100644 index 00000000..13418e55 Binary files /dev/null and b/desktop/resources/inside-antique/antique-sigh.pxa/0.pxi differ diff --git a/desktop/resources/inside-antique/antique-sigh.pxa/1.pxi b/desktop/resources/inside-antique/antique-sigh.pxa/1.pxi new file mode 100644 index 00000000..b42000b7 Binary files /dev/null and b/desktop/resources/inside-antique/antique-sigh.pxa/1.pxi differ diff --git a/desktop/resources/inside-antique/antique-sigh.pxa/2.pxi b/desktop/resources/inside-antique/antique-sigh.pxa/2.pxi new file mode 100644 index 00000000..b05f7847 Binary files /dev/null and b/desktop/resources/inside-antique/antique-sigh.pxa/2.pxi differ diff --git a/desktop/resources/inside-antique/antique-sigh.pxa/3.pxi b/desktop/resources/inside-antique/antique-sigh.pxa/3.pxi new file mode 100644 index 00000000..345fcd3c Binary files /dev/null and b/desktop/resources/inside-antique/antique-sigh.pxa/3.pxi differ diff --git a/desktop/resources/inside-antique/antique-sigh.pxa/4.pxi b/desktop/resources/inside-antique/antique-sigh.pxa/4.pxi new file mode 100644 index 00000000..fc45792e Binary files /dev/null and b/desktop/resources/inside-antique/antique-sigh.pxa/4.pxi differ diff --git a/desktop/resources/inside-antique/antique-sigh.pxa/5.pxi b/desktop/resources/inside-antique/antique-sigh.pxa/5.pxi new file mode 100644 index 00000000..808f1d90 Binary files /dev/null and b/desktop/resources/inside-antique/antique-sigh.pxa/5.pxi differ diff --git a/desktop/resources/inside-antique/antique-sigh.pxa/6.pxi b/desktop/resources/inside-antique/antique-sigh.pxa/6.pxi new file mode 100644 index 00000000..7f1dd1fb Binary files /dev/null and b/desktop/resources/inside-antique/antique-sigh.pxa/6.pxi differ diff --git a/desktop/resources/inside-antique/antique-sigh.pxa/7.pxi b/desktop/resources/inside-antique/antique-sigh.pxa/7.pxi new file mode 100644 index 00000000..645f58cf Binary files /dev/null and b/desktop/resources/inside-antique/antique-sigh.pxa/7.pxi differ diff --git a/desktop/resources/inside-antique/antique-sigh.pxa/8.pxi b/desktop/resources/inside-antique/antique-sigh.pxa/8.pxi new file mode 100644 index 00000000..cd2beda3 Binary files /dev/null and b/desktop/resources/inside-antique/antique-sigh.pxa/8.pxi differ diff --git a/desktop/resources/inside-antique/antique-sigh.pxa/CelData.plist b/desktop/resources/inside-antique/antique-sigh.pxa/CelData.plist new file mode 100644 index 00000000..9088485c --- /dev/null +++ b/desktop/resources/inside-antique/antique-sigh.pxa/CelData.plist @@ -0,0 +1,42 @@ + + + + + + duration + 1 + + + duration + 1 + + + duration + 1 + + + duration + 1 + + + duration + 1 + + + duration + 1 + + + duration + 1 + + + duration + 1 + + + duration + 1 + + + diff --git a/desktop/src-common/advent/screens/rooms/dream.clj b/desktop/src-common/advent/screens/rooms/dream.clj index 90641f74..584ddb1e 100644 --- a/desktop/src-common/advent/screens/rooms/dream.clj +++ b/desktop/src-common/advent/screens/rooms/dream.clj @@ -420,6 +420,7 @@ :plaque-1 (assoc (texture "dream/plaque1.png") :x 39 :y 99 :baseline 139 :script (actions/get-script entities (read-shovel-plaque entities))) :plaque-2 (assoc (texture "dream/plaque2.png") :x 147 :y 104 :baseline 139 :script (actions/get-script entities (read-sword-plaque entities))) :plaque-3 (assoc (texture "dream/plaque3.png") :x 283 :y 98 :baseline 139 :script (actions/get-script entities (read-broom-plaque entities))) + :outside-particles (common/make-outside-particles) :fairy-godfather (assoc (animation->texture screen fairy-godfather-anim) :x 200 :y 130 :baseline 240 @@ -452,6 +453,7 @@ :collision "dream/collision.png" :scale-fn (utils/scaler-fn-from-image "dream/scale.png" 0.1 1.3) :apply-state (fn [_ entities] + (utils/fast-forward-particle (get-in entities [:room :entities :outside-particles])) (as-> entities entities (if (get-in entities [:state :seen-intro?]) (set-opacity entities 1.0 1.0) diff --git a/desktop/src-common/advent/screens/rooms/inside_antique.clj b/desktop/src-common/advent/screens/rooms/inside_antique.clj index 071baefd..0b3da725 100644 --- a/desktop/src-common/advent/screens/rooms/inside_antique.clj +++ b/desktop/src-common/advent/screens/rooms/inside_antique.clj @@ -57,11 +57,17 @@ :shopkeep "If you really met him, you'll have to prove it." :shopkeep "What is my son's name?")) :choices ["... Bud?" - {:run #(actions/respond entities % :shopkeep "No. *sigh* That's not it.")} + {:run #(do (actions/respond entities % :shopkeep "No. That's not it.") + (actions/play-animation entities :shopkeep :sigh) + (actions/do-dialogue entities :ego "Oh. I must be thinking of another long lost son."))} "... Steve?" - {:run #(actions/respond entities % :shopkeep "No. *sigh* That's not it.")} + {:run #(do (actions/respond entities % :shopkeep "No. That's not it.") + (actions/play-animation entities :shopkeep :sigh) + (actions/do-dialogue entities :ego "Oh. I must be thinking of another long lost son."))} "... Bob?" - {:run #(actions/respond entities % :shopkeep "No. *sigh* That's not it.")} + {:run #(do (actions/respond entities % :shopkeep "No. That's not it.") + (actions/play-animation entities :shopkeep :sigh) + (actions/do-dialogue entities :ego "Oh. I must be thinking of another long lost son."))} (when ((get-in @entities [:state :clues]) :name) "Herb.") {:run #(do (actions/respond entities % @@ -71,11 +77,12 @@ (actions/update-state entities (fn [s] (assoc s :allowed-to-keep-teddy? true))))}]}]} "How's life in the antique shop biz?" - {:run #(actions/respond entities % - :shopkeep "Pretty lonely." - :shopkeep "My long lost son used to help me run this shop, but he's been gone for five years now." - :shopkeep "I've been couped up in here by myself ever since." - :shopkeep "Now all I have is this grandfather clock to keep me company.") + {:run #(do (actions/respond entities % + :shopkeep "Pretty lonely." + :shopkeep "My long lost son used to help me run this shop, but he's been gone for five years now." + :shopkeep "I've been couped up in here by myself ever since.") + (actions/play-animation entities :shopkeep :sigh) + (actions/do-dialogue entities :shopkeep "Now all I have is this grandfather clock to keep me company.")) :choices actions/previous-choices} "Nevermind." {:run #(actions/respond entities % :shopkeep "Feel free to look around.")}]})) @@ -90,6 +97,7 @@ (aget shopkeep-sheet 0 i))) shopkeep-talk (animation 0.15 (for [i [0 2 0 2 0 3 1 0]] (aget shopkeep-sheet 0 i))) + shopkeep-sigh (utils/make-anim "inside-antique/antique-sigh.png" [22 21] 0.2 (flatten [ (range 9) 0 0 0 0 0 0 ])) portrait (rooms/make-entity :portrait (assoc (texture "inside-antique/portrait.png") :x 112 :y 114 @@ -176,18 +184,21 @@ :scale-y 1.6 :talk-color (color 0.2 1.0 0.2 1.0) :talk shopkeep-talk + :sigh shopkeep-sigh + :anim-merges {shopkeep-sigh {:origin-x 9} + :default {:origin-x 9}} :script (actions/get-script entities (do-antique-dialogue entities)) :scripts #(condp = % :teddy (actions/get-script entities (if (get-in @entities [:state :allowed-to-keep-teddy?]) (actions/talk entities :shopkeep "Please give the teddy bear to Herb when you see him.") (actions/talk entities :shopkeep "That belonged to my long lost son."))) - :portrait (actions/get-script entities - (if (get-in @entities [:state :allowed-to-keep-teddy?]) - (actions/talk entities :shopkeep "That's a portrait of my little Herb. " - :shopkeep "Please put it back before you leave." ) - (actions/talk entities :shopkeep "That's a portrait of my long lost son. " - :shopkeep "Please put it back before you leave."))) + :portrait (actions/get-script entities + (if (get-in @entities [:state :allowed-to-keep-teddy?]) + (actions/talk entities :shopkeep "That's a portrait of my little Herb. " + :shopkeep "Please put it back before you leave." ) + (actions/talk entities :shopkeep "That's a portrait of my long lost son. " + :shopkeep "Please put it back before you leave."))) (actions/get-script entities (actions/talk entities :shopkeep "No thanks, sonny."))) )