diff --git a/desktop/src-common/advent/screens/items.clj b/desktop/src-common/advent/screens/items.clj index 97740826..bb71e5ad 100644 --- a/desktop/src-common/advent/screens/items.clj +++ b/desktop/src-common/advent/screens/items.clj @@ -23,16 +23,12 @@ (def flask-1-with-mushrooms {:name "Flask with mushrooms" :value :flask-1-with-mushrooms :cursor :flask-with-contents}) -(defn make-cream-of-mushroom [] - (actions/get-script entities - (actions/remove-item entities :flask-1-with-mushrooms) - (actions/remove-item entities :flask-1-with-milk) - (actions/remove-item entities :mushrooms) - (actions/give entities :flask-1-with-cream-of-mushroom) - (actions/talk entities :ego "It's just like cream of mushroom soup."))) - -(def flask-1-with-milk {:name "Flask with milk" :value :flask-1-with-milk :cursor :flask-with-contents - :scripts {:mushrooms (make-cream-of-mushroom)}}) +(defn make-cream-of-mushroom [entities] + (actions/remove-item entities :flask-1-with-mushrooms) + (actions/remove-item entities :flask-1-with-milk) + (actions/remove-item entities :mushrooms) + (actions/give entities :flask-1-with-cream-of-mushroom) + (actions/talk entities :ego "It's just like cream of mushroom soup.")) (def flask-1-strength {:name "Strength potion" :value :flask-1-strength :cursor :flask-with-strength}) (def flask-1 {:name "Flask" :value :flask-1 :cursor :flask @@ -66,12 +62,6 @@ (actions/give entities :flask-1-strength) (actions/talk entities :ego "It's the completed potion of strength!"))) -(def slobber {:name "Bull slobber" :value :slobber :cursor :slobber :scripts {:flask-1-with-cream-of-mushroom (make-strength-potion)}}) -(def flask-1-with-cream-of-mushroom {:name "Flask with cream of mushrooms soup" :value :flask-1-with-cream-of-mushroom :cursor :flask-with-contents - :scripts {:slobber (make-strength-potion)}}) - - -(def medal {:name "Medal of strength" :value :medal :cursor :medal}) (def items @@ -80,7 +70,7 @@ :carrot {:name "Carrot" :value :carrot :cursor :carrot} :flask-1-with-mushrooms {:name "Flask with mushrooms" :value :flask-1-with-mushrooms :cursor :flask-with-contents} :flask-1-with-milk {:name "Flask with milk" :value :flask-1-with-milk :cursor :flask-with-contents - :scripts {:mushrooms (make-cream-of-mushroom)}} + :scripts {:mushrooms (actions/get-script entities (make-cream-of-mushroom entities))}} :flask-1-strength {:name "Strength potion" :value :flask-1-strength :cursor :flask-with-strength} :flask-1 {:name "Flask" :value :flask-1 :cursor :flask diff --git a/desktop/src-common/advent/screens/rooms/cat_tree.clj b/desktop/src-common/advent/screens/rooms/cat_tree.clj index b5a386e7..4bc4d9ce 100644 --- a/desktop/src-common/advent/screens/rooms/cat_tree.clj +++ b/desktop/src-common/advent/screens/rooms/cat_tree.clj @@ -16,7 +16,17 @@ (actions/remove-entity entities :ladder) (actions/give entities :ladder)) -(defn do-grandma-dialogue [entities] +(defn do-saved-grandma-dialogue [entities] + (actions/walk-straight-to entities :ego [165 45] :face :left) + (actions/do-dialogue entities + :grandma "Oh it's my handsome hero again!" + :grandma "Back for another kiss?" + :ego "Umm, erm...") + (actions/play-animation entities :ego :get-sick :stop? false) + (actions/walk-straight-to entities :ego [205 10]) + (actions/talk entities :ego "No way.")) + +(defn do-grandma-dialogue-with-cat [entities] (actions/walk-straight-to entities :ego [165 45] :face :left) (actions/do-dialogue entities :grandma "Oh, good, a strapping young lad!" @@ -77,6 +87,11 @@ {:run #(actions/respond entities % :grandma "Please come back soon and help me rescue Smuffle Wuffles!")}]})) +(defn do-grandma-dialogue [entities] + (if (actions/has-obtained? entities :kiss) + (do-saved-grandma-dialogue entities) + (do-grandma-dialogue-with-cat entities))) + (defn make [screen] (let [cat-stand-sheet (texture! (texture "cat-tree/cat-stand.png") :split 22 10) cat-stand (animation 0.15 (for [i (flatten [(repeat 10 0) 1 1 (repeat 10 0) 2 3 4 3 0 0 2 3 4 3 (repeat 10 0) 1 1 (repeat 10 0) 5 5 6 6 7 (repeat 10 [7 8]) 6 5 0])] diff --git a/desktop/src-common/advent/screens/rooms/inside_house.clj b/desktop/src-common/advent/screens/rooms/inside_house.clj index b39b0f9a..665a6ba8 100644 --- a/desktop/src-common/advent/screens/rooms/inside_house.clj +++ b/desktop/src-common/advent/screens/rooms/inside_house.clj @@ -125,8 +125,9 @@ :script (actions/get-script entities (actions/remove-entity entities :flask) (actions/give entities :flask-1) - (actions/do-dialogue entities :ego "Hey you think I could have this flask?" - :wizard "Sure.")))} + (when (get-in @entities [:room :entities :wizard]) + (actions/do-dialogue entities :ego "Hey you think I could have this flask?" + :wizard "Sure."))))} :collision "inside-house/collision.png" :scale-fn (utils/scaler-fn-with-baseline 110 0.10 1.75) :apply-state (fn [entities] diff --git a/desktop/src-common/advent/screens/rooms/outside_house.clj b/desktop/src-common/advent/screens/rooms/outside_house.clj index 64670421..0faeed97 100644 --- a/desktop/src-common/advent/screens/rooms/outside_house.clj +++ b/desktop/src-common/advent/screens/rooms/outside_house.clj @@ -191,7 +191,13 @@ (actions/give entities :flask-1-with-milk) (actions/talk entities :ego "Sheeps milk.")) (actions/talk entities :ego "She's too far away."))) - :flask-1-with-mushrooms (items/make-cream-of-mushroom)} + :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)) + (actions/talk entities :ego "She's too far away.")))} :left {:walk (utils/flip sheep-walk) :stand (utils/flip sheep-stand)} :right {:walk sheep-walk