diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index 38b5d9cf..266930a0 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -15,6 +15,7 @@ [advent.screens.rooms :as rooms] [advent.screens.rooms.common :as common] [advent.screens.items :as items] + [advent.screens.rooms.dream :as rooms.dream] [advent.screens.rooms.castle-gate :as rooms.castle-gate] [advent.screens.rooms.outside-house :as rooms.outside-house] [advent.screens.rooms.inside-house :as rooms.inside-house] @@ -91,7 +92,7 @@ ((:get-script default-interaction) (get-in entities [:cursor :current]) [x y])) entities)) entities)))) -#_(defn drink-blergh [entities] +(defn drink-blergh [entities] (actions/walk-straight-to entities :ego [205 45]) (sound! (sound "ego/potion.ogg") :play) (actions/play-animation entities :ego :grow :stop? false) @@ -247,9 +248,18 @@ (condp = (:value cursor) :flask-1-with-cream-of-mushroom (actions/get-script entities (actions/talk entities :ego "Blegh! Gross!")) :flask-1-strength (actions/get-script entities - (actions/talk entities :ego "I'll just take a sip!") - (sound! (sound "ego/potion.ogg") :play) - (actions/play-animation entities :ego :grow :stop? false)) + (cond (and (actions/has-item? entities :magic-slingshot) + (get-in @entities [:room :blergh])) + (drink-blergh entities) + + (get-in @entities [:room :blergh]) + (actions/talk entities :ego "There's no time!") + + :else + (do + (actions/talk entities :ego "I'll just take a sip!") + (sound! (sound "ego/potion.ogg") :play) + (actions/play-animation entities :ego :grow :stop? false)))) :recipe (actions/get-script entities (actions/do-dialogue entities :ego "The recipe says:" :ego "'For strength beyond measure,\nyou must mix, at your leisure:'" @@ -331,7 +341,7 @@ (utils/load) {:object nil :active? true - :last-room :outside-house + :last-room :dream :time :day :obtained-items #{} :inventory [] @@ -357,6 +367,7 @@ :inside-cafeteria (rooms.inside-cafeteria/make screen) :inside-antique (rooms.inside-antique/make screen) :inside-jail (rooms.inside-jail/make screen) + :dream (rooms.dream/make screen) :castle-gate (rooms.castle-gate/make screen) :outside-jail (rooms.outside-jail/make screen) :outside-castle (rooms.outside-castle/make screen)}