some ending goodness

This commit is contained in:
Bryce Covert
2015-09-02 23:27:53 -07:00
parent 5990959900
commit 3dfbd9b408
10 changed files with 350 additions and 30 deletions

View File

@@ -16,6 +16,42 @@
[play-clj.utils :refer :all]
[play-clj.g2d :refer :all]))
(defn disappear [entities]
(actions/run-action entities
(begin [this screen entities]
(-> entities
(assoc-in [:tweens :disappear-ego]
(tween/tween :disappear-ego screen [:room :entities :ego :opacity] 1.0 0.0 0.5 :ease tween/ease-in-out-quintic))))
(continue [this screen entities]
entities)
(done? [this screen entities]
(= 0.0 (get-in entities [:room :entities :ego :opacity])))
(terminate [this screen entities]
entities)
(skip-type [this screen entities]
:none)))
(defn fade-out [entities]
(actions/run-action entities
(begin [this screen entities]
(-> entities
(assoc-in [:tweens :fade-out]
(tween/tween :fade-out screen [:fade :opacity] 0.0 1.0 3.5 :ease tween/ease-in-out-quintic))))
(continue [this screen entities]
entities)
(done? [this screen entities]
(= 1.0 (get-in entities [:fade :opacity])))
(terminate [this screen entities]
entities)
(skip-type [this screen entities]
:none)))
(defn make [screen]
(let [
@@ -44,8 +80,7 @@
:x 245 :y 46 :baseline 200
:anim peddler-stand
:anim-start 0
:scaled true
)
:scaled true)
:warden (assoc (animation->texture screen warden-stand)
:x 40 :y 50 :baseline (- 240 50)
:anim warden-stand
@@ -53,15 +88,18 @@
:scale-x 1.1
:scale-y 1.1
)
:gandarf (common/make-wizard screen {:x 205 :y 130 :baseline 199})
:gandarf-cloud (doto (assoc (particle-effect "wizard/gandarf-cloud") :x 215 :y 130
:gandarf (assoc (common/make-wizard screen {:x 205 :y 400 :baseline 199})
:update-fn (fn [screen entities gandarf]
(assoc gandarf :y (or (get-in entities [:gandarf-cloud :y])
(:y gandarf)))))
:gandarf-cloud (doto (assoc (particle-effect "wizard/gandarf-cloud") :x 215 :y 400
:baseline 200)
(particle-effect! :set-position 215 130))
:duke (assoc (animation->texture screen duke-stand)
:x 117 :y 50 :baseline (- 240 50)
:anim duke-stand
:anim-start 0
:talk-color (color 0.3 0.4 0.9 1.0)
:talk-color (color 0.4 0.5 0.94 1.0)
:talk duke-talk
:stand duke-stand
:reach duke-reach
@@ -84,15 +122,63 @@
(actions/play-animation entities :ego :reach-stop :stop? false)
(actions/talk entities :duke "Kneel." :anim :reach-talk :stop? false)
(actions/play-animation entities :ego :start-squat-2 :stop? false)
(Thread/sleep 1000)
(actions/play-animation entities :duke :knight :stop? false)
(actions/update-entity entities :duke (fn [d] (assoc d :baseline (- 240 48))))
(actions/play-animation entities :duke :knight :stop? false)
(actions/talk entities :duke "In honor of your bravery..." :anim :reach-talk :stop? false)
(actions/talk entities :duke "I declare you Sir Tick of Remington." :anim :reach-talk)
(actions/play-animation entities :ego :end-squat :stop? true)
(actions/do-dialogue entities
:ego "That's great and everything..."
:ego "But where's Georgia McGorgeous?")))
(Thread/sleep 500)
(actions/glad entities)
(Thread/sleep 200)
(actions/do-dialogue entities :ego "Wait...")
(Thread/sleep 400)
(actions/do-stop entities :ego :face :right)
(Thread/sleep 400)
(actions/do-stop entities :ego :face :left)
(Thread/sleep 400)
(actions/do-stop entities :ego :face :right)
(Thread/sleep 400)
(actions/do-stop entities :ego :face :left)
(Thread/sleep 400)
(actions/do-stop entities :ego :face :right)
(Thread/sleep 400)
(actions/do-stop entities :ego :face :left)
(Thread/sleep 400)
(actions/do-dialogue entities :ego "Where's 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)
(particle-effect! (get-in @entities [:room :entities :magic-frog-particle]) :reset)
(particle-effect! (get-in @entities [:room :entities :magic-frog-particle]) :start)
(disappear entities)
(fade-out entities)
(on-gl (set-screen! @(resolve 'advent.core/advent) @(resolve 'advent.screens.credits/credits)))))
:magic-frog-particle (doto (assoc (particle-effect "inside-house/magic-frog") :x 140 :y 49
:baseline 241)
(particle-effect! :set-position 150 49))
:ladder-guard-1 (assoc (animation->texture screen ladder-guard-stand-1)
:x 75 :y 69 :baseline (- 240 69)
:anim ladder-guard-stand-1