From b1b4335ee39b07c775d8bad6e4f59dba7eebeca7 Mon Sep 17 00:00:00 2001 From: Remington Covert Date: Wed, 17 Dec 2014 16:59:30 -0800 Subject: [PATCH] expanded so you can't make strength potion without mandrake. --- desktop/resources/cursor.png | Bin 5907 -> 6107 bytes desktop/src-common/advent/screens/items.clj | 24 ++++++--- .../advent/screens/rooms/cat_tree.clj | 7 +++ .../advent/screens/rooms/inside_antique.clj | 17 ++++-- .../advent/screens/rooms/inside_cafeteria.clj | 17 ++++-- .../advent/screens/rooms/inside_castle.clj | 10 +++- .../advent/screens/rooms/inside_house.clj | 51 +++++++++++++++--- desktop/src-common/advent/utils.clj | 2 +- 8 files changed, 105 insertions(+), 23 deletions(-) diff --git a/desktop/resources/cursor.png b/desktop/resources/cursor.png index 53e3b020c2d8b02de80acc0360220e2b6a19c7e2..36366e9020bb4cfc6db969ae2beb56180e816f7a 100644 GIT binary patch delta 5047 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 N002ovPDHLkV1nyu(O&=n delta 4845 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 TPtexture screen ladder-guard-stand) :x 202 :y 85 :baseline 155 :stand ladder-guard-stand :talk ladder-guard-talk :talk-color (color 0.2 0.6 1.0 1.0) - :script (actions/get-script entities (do-ladder-guard-dialogue entities))) + :script (actions/get-script entities (do-ladder-guard-dialogue entities)) + :scripts #(actions/get-script entities + (actions/walk-to entities :ego [170 45] :face :right) + (actions/do-dialogue entities :ladder-guard + (if (= :ladder %) + "Do not durst telleth a soul about that ladder!" + "No thank you, young sire.")))) :stand) :ladder (assoc (texture "inside-cafeteria/ladder.png") :x 250 :y 85 :baseline 155 :script (actions/get-script entities diff --git a/desktop/src-common/advent/screens/rooms/inside_castle.clj b/desktop/src-common/advent/screens/rooms/inside_castle.clj index 3fd49ca8..3aabf4ee 100644 --- a/desktop/src-common/advent/screens/rooms/inside_castle.clj +++ b/desktop/src-common/advent/screens/rooms/inside_castle.clj @@ -128,7 +128,7 @@ game-player-stand (animation 0.15 (for [i [0 0 0 0 0 0 0 0 0 0 0 1]] (aget game-player-talk-sheet 0 i))) - game-player-flex (animation 0.075 (for [i [0 0 4 4 5 5 5 5 5 5 5 6 7 8 7 9 7 8 7 9 7 8 7 9 7 8 7 9 7 8 7 9 7 8 7 9 6 5 5 4 4 0 0 0 0]] + game-player-flex (animation 0.075 (for [i [0 0 4 4 5 5 5 5 5 5 5 6 7 8 7 9 7 8 7 9 7 8 7 9 7 8 7 9 7 8 7 9 7 8 7 9 7 8 7 9 7 8 7 6 5 5 5 5 5 5 5 5 5 5 4 4 0 0 0 0]] (aget game-player-talk-sheet 0 i))) trophy (utils/make-anim "inside-castle/trophy.png" [16 16] 0.1 (flatten [(repeat 50 0) 1 2 3 3 3 3 2 1]))] (rooms/make :music :town-1 @@ -152,7 +152,13 @@ (sound! (sound "door.ogg") :play) (actions/play-animation entities :ego :reach) (actions/transition-background entities :inside-antique [228 -30]) - (actions/walk-straight-to entities :ego [222 15] :face :left))} + (actions/walk-straight-to entities :ego [222 15] :face :left) + (if (get-in @entities [:state :allowed-to-keep-teddy?]) + (actions/do-dialogue entities :shopkeep "Hello there, sonny." + :shopkeep "Have you seen Herb lately?" + :ego "Erm... No, not recently." + :shopkeep "Oh. Send him my love if you do see him.") + (actions/talk entities :shopkeep "Hello there, sonny.")))} :sword {:box [0 130 39 165] :script (actions/get-script entities (if (actions/has-item? entities :sword) diff --git a/desktop/src-common/advent/screens/rooms/inside_house.clj b/desktop/src-common/advent/screens/rooms/inside_house.clj index ef2f0917..bc82818b 100644 --- a/desktop/src-common/advent/screens/rooms/inside_house.clj +++ b/desktop/src-common/advent/screens/rooms/inside_house.clj @@ -16,7 +16,7 @@ (if (actions/has-item? entities :recipe) (do (actions/play-animation entities :ego :squat) - (actions/talk entities :ego "It's empty now.")) + (actions/talk entities :ego "I already took everything interesting from there.")) (do (actions/talk entities :ego "Yes! That worked.") (actions/talk entities :ego "Let's see here...") @@ -29,8 +29,8 @@ (actions/talk entities :ego "Aha! Here it is! I found a recipe for a strength potion!") (actions/talk entities :ego "Looks like there's something else in here too...") (actions/play-animation entities :ego :squat) - (actions/give entities :frog-legs) - (actions/talk entities :ego "Eww. Frog legs.")))) + (actions/give entities :mandrake) + (actions/talk entities :ego "Weird. It's some kind of root.")))) :failure (actions/get-script entities (actions/talk entities :ego "I don't think that worked..."))) (actions/update-state entities #(assoc % :active? false))) @@ -137,7 +137,35 @@ :disappear wizard-disappear} :talk-color (color 0.95 0.3 1.0 1.0) :facing :left - :script (actions/get-script entities (do-wizard-dialogue entities))) + :script (actions/get-script entities (do-wizard-dialogue entities)) + :scripts #(condp = % + :kiss (actions/get-script entities + (actions/do-dialogue entities + :wizard "Good job boy! You saved a damsel in distress." + :wizard "You have proven yourself worthy in courage.")) + :medal (actions/get-script entities + (actions/do-dialogue entities + :wizard "So you beat Captain McHulk at arm wrestling? " + :wizard "You must have been working out!")) + :trophy (actions/get-script entities + (actions/do-dialogue entities + :wizard "My, my, you have proven your worth in wisdom!" + :wizard "One day you'll be as wise as me!")) + :recipe (actions/get-script entities + (actions/do-dialogue entities + :ego "I probably shouldn't show him that I have his stolen posessions.")) + :frog-legs (actions/get-script entities + (actions/do-dialogue entities + :ego "I probably shouldn't show him that I have his stolen posessions.")) + :mandrake (actions/get-script entities + (actions/do-dialogue entities + :ego "I probably shouldn't show him that I have his stolen posessions.")) + :flask-1 (actions/get-script entities + (actions/do-dialogue entities + :wizard "You can keep the flask.")) + (actions/get-script entities + (actions/do-dialogue entities + :wizard "No thank you.")))) :stand) :safe-lock (actions/start-animation screen (assoc (animation->texture screen safe-lock) :x 51 :y 95 :baseline 145 :stand safe-lock) @@ -156,14 +184,25 @@ (actions/give entities :flask-1) (when (get-in @entities [:room :entities :wizard]) (actions/do-dialogue entities :ego "Hey you think I could have this flask?" - :wizard "Sure."))))} + :wizard "Sure.")))) + :frog-legs (assoc (texture "inside-house/frog-legs.png") + :x 180 :y 77 :baseline 240 + :script (actions/get-script entities + (if (get-in @entities [:room :entities :wizard]) + (actions/do-dialogue entities :wizard "Hey, I need those frog legs for one of my spells!") + (do (actions/give entities :frog-legs) + (actions/remove-entity entities :frog-legs) + (actions/do-dialogue entities :ego "Eww. Frog legs.")))))} :collision "inside-house/collision.png" :scale-fn (utils/scaler-fn-with-baseline 110 0.10 1.75) :apply-state (fn [entities] (as-> entities entities - (if (actions/has-one-of? entities [:flask-1 :flask-1-with-cream-of-mushroom :flask-1-strength :flask-1-with-mushrooms :flask-1-with-milk]) + (if (actions/has-obtained? entities :flask-1) (update-in entities [:room :entities] #(dissoc % :flask)) entities) + (if (actions/has-obtained? entities :frog-legs) + (update-in entities [:room :entities] #(dissoc % :frog-legs)) + entities) (if (get-in entities [:state :wizard-left?]) (update-in entities [:room :entities] #(dissoc % :wizard)) entities))) diff --git a/desktop/src-common/advent/utils.clj b/desktop/src-common/advent/utils.clj index b38c6ff4..057abaef 100644 --- a/desktop/src-common/advent/utils.clj +++ b/desktop/src-common/advent/utils.clj @@ -14,7 +14,7 @@ (let [{:keys [x y]} (input->screen screen {:x (:input-x screen) :y (:input-y screen)})] (println (:input-x screen) (:input-y screen) "->" x y))) -(def +all-cursors+ [:main :wool :mushrooms :carrot :right :down :left :up :flask :flask-with-contents :trophy :ladder :stick :cat-toy :balloon :frog-legs :teddy :portrait :recipe :glass-eye :motivational-tapes :used-earplugs :grass :slobber :flask-with-strength :medal :kiss :sword :hourglass]) +(def +all-cursors+ [:main :wool :mushrooms :carrot :right :down :left :up :flask :flask-with-contents :trophy :ladder :stick :cat-toy :balloon :frog-legs :teddy :portrait :recipe :glass-eye :motivational-tapes :used-earplugs :grass :slobber :flask-with-strength :medal :kiss :sword :hourglass :mandrake]) (defn cursor [filename which] (let [scale 2