From 9a8078c18388a147201851f6b7ec6232830267db Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Wed, 5 Aug 2015 18:17:24 -0700 Subject: [PATCH] give hints. --- .../advent/screens/rooms/common.clj | 6 ++- .../advent/screens/rooms/inside_jail.clj | 46 +++++++++++++------ 2 files changed, 37 insertions(+), 15 deletions(-) diff --git a/desktop/src-common/advent/screens/rooms/common.clj b/desktop/src-common/advent/screens/rooms/common.clj index 71f7839d..59144ef2 100644 --- a/desktop/src-common/advent/screens/rooms/common.clj +++ b/desktop/src-common/advent/screens/rooms/common.clj @@ -18,7 +18,11 @@ (actions/update-state entities #(assoc % :chest-contents (concat (remove #{:key :ladder} (:inventory %)) (:chest-contents %)))) (actions/update-state entities #(assoc % :inventory [])) (actions/update-state entities #(assoc % :opened-bars? false)) - (actions/transition-background entities :inside-jail [130 85] :between #(assoc-in %2 [:state :time] :night))) + (actions/transition-background entities :inside-jail [130 85] :between (fn [s e] + (-> e + (assoc-in [:state :time] :night) + (update-in [:room :entities :ego] #(actions/start-animation s % :crawl-stand))))) + (actions/play-animation entities :ego :standup)) (defn make-wizard [screen wizard-spec] (let [wizard-sheet (texture! (texture "wizard/talk.png") :split 20 46) diff --git a/desktop/src-common/advent/screens/rooms/inside_jail.clj b/desktop/src-common/advent/screens/rooms/inside_jail.clj index 3a68d112..29390141 100644 --- a/desktop/src-common/advent/screens/rooms/inside_jail.clj +++ b/desktop/src-common/advent/screens/rooms/inside_jail.clj @@ -136,11 +136,11 @@ :ego "I get to just take the key and leave?" :ego "Seems like a pretty sorry excuse for a puzzle.")))) -(defn tie-up-warden [entities] +(defn tie-up-warden [entities message] (actions/play-animation entities :ego :idea) (actions/do-dialogue entities :ego "I know!" - :ego "I'll tie him up.") + :ego message) (actions/walk-to entities :ego [91 61] :face :left) (actions/play-animation entities :ego :reach) (actions/do-dialogue entities @@ -182,15 +182,20 @@ (if (chest-full? entities) (actions/talk entities :ego "I probably shouldn't leave without my belongings.") (do (actions/transition-background entities :outside-jail [50 46] :face :right) - (when (not (get-in @entities [:state :dropped-ball?])) + (if (get-in @entities [:state :dropped-ball?]) (actions/do-dialogue entities :ego "Yes I made it!" - :guard "Hmm?" - :guard "Halt! Thou art under arrest!" - :guard "Thou wilst be putteth back into thy cell.") - (actions/play-animation entities :ego :sigh) - - (common/go-to-jail entities) - (actions/do-dialogue entities :ego "Dang! I was so close to freedom, I could taste it!"))))) + :ego "But what now?" + :ego "I have till sunrise before Bloodclot comes and destroys the town." + :ego "Maybe Gandarf can help me!") + (do + (actions/do-dialogue entities :ego "Yes I made it!" + :guard "Hmm?" + :guard "Halt! Thou art under arrest!" + :guard "Thou wilst be putteth back into thy cell.") + (actions/play-animation entities :ego :sigh) + + (common/go-to-jail entities) + (actions/do-dialogue entities :ego "Dang! I was so close to freedom, I could taste it!")))))) (actions/talk entities :ego "Do you really think I can walk down those steps while I'm locked up?"))) @@ -247,7 +252,8 @@ (Thread/sleep 300) (actions/play-animation entities :warden :fall-asleep :stop? false) (actions/begin-animation entities :warden :sleep) - (actions/remove-item entities :ball-n-chain)) + (actions/remove-item entities :ball-n-chain) + (actions/talk entities :ego "Phew! That was close!")) (actions/do-dialogue entities :ego "I don't know what to do with that."))) :sword (actions/get-script entities (actions/talk entities :ego "I wouldn't want to accidentally break the Sword of Blergh.")) :rope (actions/get-script entities (if (get-in @entities [:state :bent-bars?]) @@ -259,10 +265,21 @@ :ego "I had better not, or else I'd get caught.")) (actions/do-dialogue entities :ego "Good thinking." :ego "But I can't fit out that window." - :ego "And the bars are made of steel!")))}} + :ego "And the bars are made of steel!"))) + :key (actions/get-script entities (actions/walk-to entities :ego [102 88] :face :right) + (actions/do-dialogue entities :ego "Here goes." + :ego "Wait..." + :ego "The door locks without a key." + :ego "If I get caught, I won't be able to get out."))}} :hay {:box [130 86 177 102] :script (actions/get-script entities - (search-hay entities))} + (search-hay entities)) + :scripts {:default (actions/get-script entities + (actions/talk entities :ego "Finding it again will be like finding a needle in a haystack!")) + + :key (actions/get-script entities + (actions/do-dialogue entities :ego "I'm trying to escape." + :ego "Not help the next bloke who gets trapped here."))}} :chest {:box [194 62 228 99] :script (actions/get-script entities (touch-chest entities))} :door {:box [257 62 301 152] @@ -328,7 +345,8 @@ :scripts {:sword (actions/get-script entities (actions/do-dialogue entities :ego "That's pretty gruesome." :ego "I can't kill him just for doing his job.")) - :rope (actions/get-script entities (tie-up-warden entities))}) + :rope (actions/get-script entities (tie-up-warden entities "I'll tie him up.")) + :ball-n-chain (actions/get-script entities (tie-up-warden entities "I'll lock him up."))}) :chest-top (assoc (texture "inside-jail/chest-top.png") :x 193 :y (- 240 165) :baseline 166 :origin-x 0 :origin-y 0