progress on ending.
This commit is contained in:
@@ -105,6 +105,7 @@
|
||||
:ego "Don't forget about my secret stash of helpful stuff.\""))
|
||||
(def frankie-color (Color/valueOf "9907CFFF"))
|
||||
|
||||
|
||||
(defn listen-to-frankie [entities]
|
||||
(let [respond (fn [msg]
|
||||
(actions/talk entities :ego msg :animate? false :stop? false :color frankie-color)
|
||||
@@ -234,6 +235,90 @@
|
||||
(respond "Leave us alone!"))}]}))
|
||||
)
|
||||
|
||||
(defn walk-to-frankie [entities]
|
||||
(actions/walk-to entities :ego [268 61] :face :left))
|
||||
|
||||
(defn present-frankie-choices [entities]
|
||||
(actions/present-choices entities {:choices ["Please, Frankie. Give me my stuff back!"
|
||||
{:run #(do (actions/respond entities %
|
||||
:frankie "Not a chance, Dipstick."
|
||||
:frankie "Burglers like us gotta eat too, you know."
|
||||
:ego "But it's a matter of life and death!"
|
||||
:ego "Plus, Georgia's counting on me!")
|
||||
(actions/georgia-say entities "I'm counting on you, Tick!")
|
||||
(actions/do-dialogue entities
|
||||
:frankie "Georgia's going steady with me now, Dipstick."
|
||||
:frankie "No day-dreaming about my girlfriend!")
|
||||
(actions/play-animation entities :frankie :laugh)
|
||||
(actions/do-dialogue entities :frankie "You'd be better off if you just packed your bags and left town."
|
||||
:frankie "Ain't that right, boys?")
|
||||
(actions/play-animation entities :frankie :glance))
|
||||
:choices actions/previous-choices}
|
||||
|
||||
"You guys are nothing but a bunch of crooks!"
|
||||
{:run #(do (actions/respond entities %
|
||||
:frankie "Oh please."
|
||||
:frankie "Like you're so different."
|
||||
:frankie "Am I right, boys?")
|
||||
(actions/play-animation entities :frankie :glance)
|
||||
(actions/do-dialogue entities
|
||||
:frankie "We steal gold, diamonds, and relic slingshots."
|
||||
:frankie "And you steal teddy bears.")
|
||||
(actions/play-animation entities :frankie :laugh))
|
||||
:choices actions/previous-choices}
|
||||
|
||||
"Where is your secret stash?"
|
||||
{:run #(do (actions/respond entities % :frankie "Like I'd ever tell you, Dipstick.")
|
||||
(actions/play-animation entities :frankie :laugh)
|
||||
(actions/do-dialogue entities :frankie "That's only for people in the 'Super secret cool club'!"))
|
||||
:choices actions/previous-choices}
|
||||
|
||||
(when-not (get-in @entities [:state :bubba-gone?])
|
||||
"I found your secret stash!")
|
||||
{:run #(do (actions/respond entities %
|
||||
:frankie "What?!"
|
||||
:frankie "Impossible!")
|
||||
(actions/play-animation entities :frankie :laugh)
|
||||
(actions/update-state entities (fn [s] (assoc s :bubba-gone? true)))
|
||||
(actions/do-dialogue entities :frankie "Bubba, go check to make sure our stuff is safe."
|
||||
:goon-2 "You got it, boss.")
|
||||
(actions/walk-straight-to entities :goon-2 [0 100]))}
|
||||
|
||||
"Nevermind."
|
||||
{:run #(actions/respond entities % :frankie "Come back when you've got some good valuables.")}]}))
|
||||
|
||||
(defn make-frankie [screen]
|
||||
(let [stand (utils/make-anim "castle-gate/frankie.png" [24 35] 0.19 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1])
|
||||
talk (utils/make-anim "castle-gate/frankie.png" [24 35] 0.2 [2 0 2 0 2 0 2 0 0 1 0])
|
||||
laugh (utils/make-anim "castle-gate/frankie.png" [24 35] 0.1 [1 3 4 3 4 3 4 3 4 3 4 3 4 1 0])
|
||||
glance (utils/make-anim "castle-gate/frankie.png" [24 35] 0.25 [0 6 0 6 5 5 5 6 7 7 7 6 ])
|
||||
reach (utils/make-anim "castle-gate/frankie.png" [24 35] 0.2 [0 8 9 9 9 9 8])
|
||||
flex (utils/make-anim "castle-gate/frankie.png" [24 35] 0.2 [0 10 11 12 12 12 12 11 10])]
|
||||
(assoc (animation->texture screen stand)
|
||||
:x 235 :y 90 :baseline 150
|
||||
:origin-x 12
|
||||
:origin-y 0
|
||||
:anim stand
|
||||
:anim-start 0
|
||||
:night-profile :sprite
|
||||
:scale-x 1.4
|
||||
:scale-y 1.4
|
||||
:talk-color frankie-color
|
||||
:talk talk
|
||||
:flex flex
|
||||
:stand stand
|
||||
:laugh laugh
|
||||
:glance glance
|
||||
:reach reach
|
||||
:script (actions/get-script entities
|
||||
(walk-to-frankie entities)
|
||||
(actions/talk entities :ego "Listen, Frankie...")
|
||||
(present-frankie-choices entities))
|
||||
|
||||
:scripts {:walkie-talkies (actions/get-script entities
|
||||
(actions/do-dialogue entities :frankie "Tin cans? What do I need walkie talkies for?"))
|
||||
:default (actions/get-script entities
|
||||
(actions/do-dialogue entities :frankie "What? Wanting to give up more of your goodies?"))})))
|
||||
|
||||
(defn explode [entities]
|
||||
|
||||
@@ -317,7 +402,24 @@
|
||||
entities)
|
||||
(skip-type [this screen entities]
|
||||
:none)))
|
||||
(defn georgia-appear [entities]
|
||||
(actions/run-action entities
|
||||
(begin [this screen entities]
|
||||
(-> entities
|
||||
(assoc-in [:room :entities :georgia] (get-in entities [:room :georgia]))
|
||||
(assoc-in [:tweens :appear-georgia]
|
||||
(tween/tween :appear-georgia screen [:room :entities :georgia :opacity] 0.0 1.0 0.5 :ease tween/ease-in-out-quintic))))
|
||||
|
||||
(continue [this screen entities]
|
||||
entities)
|
||||
|
||||
(done? [this screen entities]
|
||||
(= 1.0 (get-in entities [:room :entities :georgia :opacity])))
|
||||
|
||||
(terminate [this screen entities]
|
||||
entities)
|
||||
(skip-type [this screen entities]
|
||||
:none)))
|
||||
(defn fade-out [entities]
|
||||
(actions/run-action entities
|
||||
(begin [this screen entities]
|
||||
@@ -414,35 +516,37 @@
|
||||
(Thread/sleep 400)
|
||||
(actions/do-stop entities :ego :face :left)
|
||||
(Thread/sleep 400)
|
||||
(actions/do-dialogue entities :ego "Where's Georgia McGorgeous?")
|
||||
(actions/do-dialogue entities :ego "Where's Gandarf?")
|
||||
(actions/do-dialogue entities :ego "And Georgia McGorgeous?")
|
||||
(actions/walk-straight-to entities :gandarf-cloud [215 100] :update-baseline? false)
|
||||
(actions/do-dialogue entities :gandarf "Quickly, boy!")
|
||||
(actions/do-stop entities :ego :face :right)
|
||||
(actions/do-dialogue entities :ego "Gandarf?"
|
||||
:gandarf "Yes, it is I!"
|
||||
:ego "How did you escape?"
|
||||
:gandarf "No time for that!"
|
||||
:gandarf "Georgia McGorgeous has been captured!"
|
||||
:ego "Captured?! By who?"
|
||||
:gandarf "Bloodclot's second-in-command, Swinebreath."
|
||||
:gandarf "I'm afraid that I can't save her."
|
||||
:gandarf "This is a job for a knight."
|
||||
:gandarf "If you are willing, Tick..."
|
||||
:duke "That's 'Sir Tick'..."
|
||||
:gandarf "Quite right, quite right."
|
||||
:gandarf "If you are willing, Sir Tick..."
|
||||
:gandarf "I can transport you to the land where her prision lies."
|
||||
:gandarf "But it is far out of my sight, and I know not what you'll find."
|
||||
:gandarf "Well? What say you?"
|
||||
:ego "I'll do it! "
|
||||
:gandarf "Very good."
|
||||
:gandarf "Prepare yourself.")
|
||||
(Thread/sleep 300)
|
||||
(actions/talk entities :gandarf "Beamium Up!!!" :anim :talk-angry)
|
||||
:gandarf "I have escaped!"
|
||||
:gandarf "And I brought someone with me!")
|
||||
(Thread/sleep 600)
|
||||
(actions/talk entities :gandarf "Beautius appearium!!" :anim :talk-angry)
|
||||
(particle-effect! (get-in @entities [:room :entities :magic-frog-particle]) :reset)
|
||||
(particle-effect! (get-in @entities [:room :entities :magic-frog-particle]) :start)
|
||||
(disappear entities)
|
||||
(Thread/sleep 2000)
|
||||
(georgia-appear entities)
|
||||
(actions/do-stop entities :ego :face :left)
|
||||
(Thread/sleep 3000)
|
||||
(actions/do-dialogue entities
|
||||
:georgia "Hey, I'm home!"
|
||||
:georgia "Tick, was it really you that saved me?"
|
||||
:ego "Aww, it was nothing."
|
||||
:georgia "My hero!"
|
||||
:frankie "Wait a hot second!")
|
||||
(Thread/sleep 500)
|
||||
(actions/walk-straight-to entities :frankie [85 24] :anim :stand)
|
||||
(actions/do-dialogue entities
|
||||
:frankie "Come along, Georgia."
|
||||
:frankie "No sense in thanking Dipstick.")
|
||||
(actions/play-animation entities :frankie :laugh)
|
||||
(actions/play-animation entities :georgia :kick)
|
||||
(actions/walk-straight-to entities :frankie [-41 24] :anim :stand :speed 5.0)
|
||||
(actions/do-dialogue entities
|
||||
:georgia "Let's go, Sir Hunk.")
|
||||
(fade-out entities)
|
||||
(on-gl (set-screen! @(resolve 'advent.core/advent) @(resolve 'advent.screens.credits/credits)))
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user