diff --git a/desktop/src-common/advent/screens/rooms/inside_cafeteria.clj b/desktop/src-common/advent/screens/rooms/inside_cafeteria.clj index da4515eb..708f57e4 100644 --- a/desktop/src-common/advent/screens/rooms/inside_cafeteria.clj +++ b/desktop/src-common/advent/screens/rooms/inside_cafeteria.clj @@ -56,6 +56,52 @@ "Goodbye." {:run #(actions/respond entities % :warriors "Fare thee well, and godspeed.")}]})) +(defn do-ladder-guard-dialogue [entities] + (actions/walk-to entities :ego [170 45] :face :right) + (actions/do-dialogue entities + :ego "Hello." + :ladder-guard "'Ello, young sire.") + (actions/present-choices entities {:choices ["Nice ladder." + {:run #(actions/respond entities % + :ladder-guard "Tis nice, indeed!" + :ladder-guard "Belongeth to the Duke of Remington, it doth.") + :choices ["Can I have it?" + {:run #(actions/respond entities % :ladder-guard "No.") + :choices ["Please?" + {:run #(actions/respond entities % + :ladder-guard "No.") + :choices ["Pretty please?" + {:run #(actions/respond entities % + :ladder-guard "No.") + :choices ["Pretty pretty please?" + {:run #(do (actions/respond entities % + :ladder-guard "Well, okay." + :ladder-guard "Do not darest telleth a soul, or the Duke will haveth my head!") + (actions/walk-to entities :ego [245 75] :face :right) + (actions/play-animation entities :ego :reach) + (actions/remove-entity entities :ladder))} + "Nevermind." + {:run #(actions/respond entities %)}]} + "Nevermind." + {:run #(actions/respond entities %)}]} + "Nevermind." + {:run #(actions/respond entities %)}]} + "Something else." + {:choices actions/something-else}]} + "Why aren't you sitting and eating?" + {:run #(actions/respond entities % + :ladder-guard "I'm oneth duty, young sire." + :ladder-guard "Dost thou seeth this ladder?" + :ladder-guard "Tis my duty to guardeth it." + :ladder-guard "Why, if I didst sit and dineth with my friends, a hoodlum wouldst steal it.") + :choices actions/previous-choices} + "What's your name?" + {:run #(actions/respond entities % :ladder-guard "Tim.") + :choices actions/previous-choices} + "Goodbye." + {:run #(actions/respond entities % "Goodbye.")}]}) + ) + (defn make [screen] (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 ]] @@ -89,8 +135,7 @@ :ladder-guard (actions/start-animation screen (assoc (animation->texture screen ladder-guard-stand) :x 202 :y 85 :baseline 155 :stand ladder-guard-stand :talk ladder-guard-talk - :script (actions/get-script entities - (actions/talk entities :ladder-guard "Moveth along, young sire."))) + :script (actions/get-script entities (do-ladder-guard-dialogue entities))) :stand) :ladder (assoc (texture "inside-cafeteria/ladder.png") :x 250 :y 85 :baseline 155 :script (actions/get-script entities