From 15fdefe984f256b5a21d8897dc6adf0d4dff270f Mon Sep 17 00:00:00 2001 From: Remington Covert Date: Tue, 11 Nov 2014 17:44:45 -0800 Subject: [PATCH] adding simple warrior dialogue. --- .../inside-cafeteria/warriors-stand.png | Bin 0 -> 6873 bytes .../advent/screens/rooms/inside_cafeteria.clj | 74 ++++++++++++++---- 2 files changed, 60 insertions(+), 14 deletions(-) create mode 100644 desktop/resources/inside-cafeteria/warriors-stand.png diff --git a/desktop/resources/inside-cafeteria/warriors-stand.png b/desktop/resources/inside-cafeteria/warriors-stand.png new file mode 100644 index 0000000000000000000000000000000000000000..ac54ac4d3c8ded73b896935176e6b1a5da9f9aa6 GIT binary patch literal 6873 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 literal 0 HcmV?d00001 diff --git a/desktop/src-common/advent/screens/rooms/inside_cafeteria.clj b/desktop/src-common/advent/screens/rooms/inside_cafeteria.clj index 35c28193..37eb05af 100644 --- a/desktop/src-common/advent/screens/rooms/inside_cafeteria.clj +++ b/desktop/src-common/advent/screens/rooms/inside_cafeteria.clj @@ -9,18 +9,64 @@ [play-clj.utils :refer :all] [play-clj.g2d :refer :all])) +(defn do-warrior-dialogue [entities] + (actions/talk entities :ego "Hey guys!") + (actions/talk entities :warriors "Hark! Good day, young esquire.") + (actions/present-choices entities + {:choices ["Why dost thou speaketh in this manner?" + {:run #(actions/respond entities % + :warriors "`Tis but a tradition!" + :warriors "All knights speaketh in such a manner." + :warriors "As my father instructedeth unto me as a mere lad: " + :warriors "'Son, thou must speaketh in this manner.'" + :warriors "And I asketh unto him:" + :warriors "'But father, why musteth I speaketh in this manner?'" + :warriors "'Yea, my son, for thou art a knight. And thou musteth speaketh in this manner.'" + :warriors "And I toldeth unto him:" + :warriors "'Thou art my father, and I am thy son. Therefore I will speaketh in this manner.'" + :ego "... I think I've got the idea.") + :choices actions/previous-choices} + "Can I be a knight like you guys?" + {:run #(actions/respond entities % + :warriors "We thinketh not, young esquire." + :warriors "You lacketh the strength and vigor required for such a task.") + :choices ["But I'm on a quest to become a knight!" + {:run #(actions/respond entities % + :warriors "Young esquire, thou art valiant in heart. " + :warriors "Departeth henceforth and go hitherto, unto the gym.")} + "I challenge you to a arm wrestling match to prove my strength." + {:run #(actions/respond entities % :warriors "[TODO] You lose.")} + "Something else." + {:choices actions/something-else}] + } + "Goodbye." + {:run #(actions/respond entities % :warriors "Fare thee well, and godspeed.")}]})) + (defn make [screen] - (rooms/make :music :town-1 - :interactions - {:right-dir {:box [300 0 320 120] - :script (actions/get-script - entities - (actions/walk-to entities :ego [319 50]) - (actions/transition-background entities :inside-castle [65 150]) - (actions/walk-to entities :ego [126 80])) - :cursor :right} - } - :layers [(assoc (texture "inside-cafeteria/background.png") :x 0 :y 0 :baseline 0)] - :entities {} - :collision "inside-cafeteria/collision.png" - :scale-fn (utils/scaler-fn-with-baseline 110 0.10 1.50))) + (let [warriors-stand-sheet (texture! (texture "inside-cafeteria/warriors-stand.png") :split 66 126) + warriors-stand (animation 0.2 (for [i [0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 2 2 2 2 3 3 3 0 0 0 2 2 2 ]] + (aget warriors-stand-sheet 0 i)))] + (rooms/make :music :town-1 + :interactions + {:right-dir {:box [300 0 320 120] + :script (actions/get-script + entities + (actions/walk-to entities :ego [319 50]) + (actions/transition-background entities :inside-castle [65 150]) + (actions/walk-to entities :ego [126 80])) + :cursor :right} + } + :layers [(assoc (texture "inside-cafeteria/background.png") :x 0 :y 0 :baseline 0)] + :entities {:warriors (actions/start-animation screen (assoc (animation->texture screen warriors-stand) :x 5 :y 9 :baseline 180 + + :left {:stand (utils/flip warriors-stand) + :talk (utils/flip warriors-stand)} + :right {:stand warriors-stand + :talk warriors-stand} + :facing :right + :script (actions/get-script entities + (do-warrior-dialogue entities) + )) + :stand) } + :collision "inside-cafeteria/collision.png" + :scale-fn (utils/scaler-fn-with-baseline 110 0.10 1.50))))