From 77e7d7f59cdfd90e2e5ee855c42a3d975e7e1601 Mon Sep 17 00:00:00 2001 From: Remington Covert Date: Sun, 14 Dec 2014 12:04:51 -0800 Subject: [PATCH] more bug fixes. --- desktop/src-common/advent/actions.clj | 5 ++++- .../advent/screens/rooms/inside_antique.clj | 2 +- .../advent/screens/rooms/inside_cafeteria.clj | 2 +- .../advent/screens/rooms/inside_castle.clj | 3 ++- .../advent/screens/rooms/inside_house.clj | 18 +++++++++++++----- .../advent/screens/rooms/outside_house.clj | 15 +++++++++------ 6 files changed, 30 insertions(+), 15 deletions(-) diff --git a/desktop/src-common/advent/actions.clj b/desktop/src-common/advent/actions.clj index 93511532..cf2c6f26 100644 --- a/desktop/src-common/advent/actions.clj +++ b/desktop/src-common/advent/actions.clj @@ -35,7 +35,10 @@ ((get-in @entities [:state :obtained-items]) item))) (defn has-obtained-one-of? [entities items] - (seq (set/intersection (get-in entities [:state :obtained-items]) (set items)))) + (some (partial has-obtained? entities) items)) + +(defn has-obtained-all-of? [entities items] + (every? (partial has-obtained? entities) items)) (defn has-one-of? [entities items] (seq (set/intersection (set (get-in entities [:state :inventory])) (set items)))) diff --git a/desktop/src-common/advent/screens/rooms/inside_antique.clj b/desktop/src-common/advent/screens/rooms/inside_antique.clj index b0a7da7f..19ada04a 100644 --- a/desktop/src-common/advent/screens/rooms/inside_antique.clj +++ b/desktop/src-common/advent/screens/rooms/inside_antique.clj @@ -37,7 +37,7 @@ {:run #(actions/respond entities % :shopkeep "I have no idea what you're talking about, sonny.") :choices actions/previous-choices} - "Something else" + "Something else." {:choices actions/something-else}]} (when (and (get-in @entities [:state :wants-toy]) (not (get-in @entities [:state :allowed-to-keep-teddy?]))) diff --git a/desktop/src-common/advent/screens/rooms/inside_cafeteria.clj b/desktop/src-common/advent/screens/rooms/inside_cafeteria.clj index 213309ac..52462d35 100644 --- a/desktop/src-common/advent/screens/rooms/inside_cafeteria.clj +++ b/desktop/src-common/advent/screens/rooms/inside_cafeteria.clj @@ -53,7 +53,7 @@ :warriors "Departeth henceforth and go hitherto, unto the gym.")} "I challenge you to a arm wrestling match to prove my strength." {:run (fn [msg] - (actions/respond entities msg :warriors "Prepare thyself, thy task is not for the feint of heart") + (actions/respond entities msg :warriors "Prepare thyself, thy task is not for the faint of heart.") (if (actions/has-item? @entities :flask-1-strength) (do (actions/do-dialogue entities :ego "One sec.") diff --git a/desktop/src-common/advent/screens/rooms/inside_castle.clj b/desktop/src-common/advent/screens/rooms/inside_castle.clj index 762d21fa..9f85884b 100644 --- a/desktop/src-common/advent/screens/rooms/inside_castle.clj +++ b/desktop/src-common/advent/screens/rooms/inside_castle.clj @@ -16,7 +16,8 @@ {:run #(actions/respond entities % :game-player "Thanks. I'm the reigning champ in the annual Town of Remington Junior Smarty Pants Derby." :game-player "I earned it with my wisdom and sharp intellect." - :game-player "Oh, I'm guessing you want it? Perhaps to prove your wisdom and pull the Sword of Blergh?") + :game-player "Oh, I'm guessing you want it? Perhaps to prove your wisdom and pull the Sword of Blergh?" + :game-player "Perhaps to become a knight and impress a young lady?") :choices ["Yes." {:run #(actions/respond entities % :game-player "My trophy is hard-won. You want pry it from my fingers easily." diff --git a/desktop/src-common/advent/screens/rooms/inside_house.clj b/desktop/src-common/advent/screens/rooms/inside_house.clj index 665a6ba8..c662e0ac 100644 --- a/desktop/src-common/advent/screens/rooms/inside_house.clj +++ b/desktop/src-common/advent/screens/rooms/inside_house.clj @@ -36,18 +36,21 @@ :ego "What's the password?" :wizard "That's for me to know.") :choices actions/previous-choices} - "Will you help me become a knight?" + (when (not (actions/has-obtained-all-of? entities [:trophy :medal :kiss])) + "Will you help me become a knight?") {:run #(actions/respond entities % :wizard "To become a knight you will need to be worthy in courage, wisdom, and might." :wizard "Only then can you become worthy to pull the Sword of Blergh, and become a knight.") - :choices ["How can I prove that I'm worthy in wisdom?" + :choices [(when (not (actions/has-obtained? entities :trophy)) + "How can I prove that I'm worthy in wisdom?") {:run #(actions/respond entities % :wizard "Every year we have the annual Town of Remington Junior Smarty Pants Derby." :wizard "The whole town gets together to vote on who is the wisest in town, by a game of riddles." - :wizard "Last year's winner was a young man named Stan, in town." + :wizard "Last year's winner was a young man named Brian O'Brainy, in town." :wizard "Maybe you can ask him.") :choices actions/previous-choices} - "Can you make some kind of potion to make me strong?" + (when (not (actions/has-obtained? entities :medal)) + "Can you make some kind of potion to make me strong?") {:run #(actions/respond entities % :wizard "Of course I could." :wizard "I keep all sorts of potion recipes in my MagiSafe 5000." @@ -55,7 +58,8 @@ :wizard "But that would be cheating wouldn't it?" :wizard "Unfortunately, you're on your own.") :choices actions/previous-choices} - "Aren't I already courageous enough?" + (when (not (actions/has-obtained? entities :kiss)) + "Aren't I already courageous enough?") {:run #(actions/respond entities % :wizard "When was the last time you rescued a damsel in distress?" :ego "Erm..." @@ -69,6 +73,10 @@ :choices actions/previous-choices} "Something else." {:choices actions/something-else}]} + (when (actions/has-obtained-all-of? entities [:trophy :medal :kiss]) + "Will you help me become a knight?") + {:run #(actions/respond entities % :wizard "It looks to me as if you are ready to pull the sword, boy!") + :choices actions/previous-choices} (when (= 3 (get-in @entities [:state :mints-eaten])) "The antique shopkeeper needs more fire mints.") {:run #(do (actions/respond entities % diff --git a/desktop/src-common/advent/screens/rooms/outside_house.clj b/desktop/src-common/advent/screens/rooms/outside_house.clj index 045a84df..f192172b 100644 --- a/desktop/src-common/advent/screens/rooms/outside_house.clj +++ b/desktop/src-common/advent/screens/rooms/outside_house.clj @@ -36,16 +36,19 @@ :wizard "... a frog!" :ego "Okay, okay! I'm leaving.") (actions/transition-background entities :outside-house [262 88]) - (actions/talk entities :ego "I guess he's really upset with me."))} + (actions/do-dialogue entities :ego "I guess he's really upset with me." + :ego "I wonder if I can convince him to like me..."))} "You're still cross about my stealing your magic cowboy hat?" {:run #(do (actions/respond entities % :wizard "Of course I'm cross! It's irreplaceable!" :wizard "That cowboy hat accented my facial physique." :wizard "And complemented my skin color." - :wizard "And you little cheat stole it from me!" - :wizard "That's why I bought my MagiSafe 5000, to keep out intruders like you." - :wizard "Now leave.") - (actions/transition-background entities :outside-house [262 88]))} + :wizard "And you little pipsqueak stole it from me!" + :wizard "That's why I bought my Magi-Safe 5000, to keep out intruders like you." + :wizard "Now leave, before I get really angry!.") + (actions/transition-background entities :outside-house [262 88]) + (actions/do-dialogue entities :ego "I guess he's really upset with me." + :ego "I wonder if I can convince him to like me..."))} "Even an old hoot like you needs a kick in the pants every now and again." {:run #(actions/respond entities % :wizard "What gives you the right to try to teach me a lesson?") :choices ["My good looks?" @@ -65,7 +68,7 @@ "I'm going to be a knight! That counts for something doesn't it?" {:run #(do (actions/respond entities % :wizard "You are, are you?" - :wizard "Pray tell, how do you, a mere wreckless youth, plan on becoming a knight?")) + :wizard "Pray tell, how do you, a mere reckless youth, plan on becoming a knight?")) :choices ["By pulling the Sword of Blergh from its stone!" {:run #(actions/respond entities % :wizard "Well, well. It sounds like you've turned over a new leaf."