credits screen and stuff.

This commit is contained in:
Bryce Covert
2015-09-09 18:36:29 -07:00
parent e6de6660e5
commit 4d04431044
18 changed files with 126 additions and 32 deletions

View File

@@ -3,15 +3,11 @@ ART
PROGRAMMING PROGRAMMING
+ fight with blergh at end isn't great + fight with blergh at end isn't great
+ blergh taunts for first fight
+ proper save/settings file location + proper save/settings file location
+ Save slots? + Save slots?
+ try to have dialogue for every wrong interaction + try to have dialogue for every wrong interaction
+ Dialogue frozen + Dialogue frozen
+ ending credits + ending credits
+ no self-use when held by bloodclot.
+ no premptive potion making
AUDIO AUDIO
+ Walking + Walking

View File

@@ -15,29 +15,105 @@
[com.badlogic.gdx Application Audio Files Game Gdx Graphics Input [com.badlogic.gdx Application Audio Files Game Gdx Graphics Input
InputMultiplexer InputProcessor Net Preferences Screen])) InputMultiplexer InputProcessor Net Preferences Screen]))
(defn center [e]
(assoc e :x (- (/ 1280 2) (/ (or (:width e) (.getWidth (:object e))) 2))))
(def credit-messages
[["\"Tick's Tales\" Created By"
"Bryce Covert"]
["Artwork"
"Bryce Covert"]
["Programming"
"Bryce Covert"]
["Music"
"Bryce Covert"]
["Sound Effects"
"Bryce Covert"]
["Frog Legs"
"Marya Yama"]
["Perspective Tutorials"
"Jana Covert"]
["Motivational Tapes"
"Eriq Chang"]
["In Loving Memory Of"
"Took, son of Luke, son of Puke"]])
(defn get-role-style [entities opacity]
(style :label (:font entities) (color 1.0 1.0 1.0 opacity)))
(defn style-role [entities]
(when-let [opacity (:opacity (:role entities))]
(label! (:role entities) :set-style (get-role-style entities opacity))))
(defn get-person-style [entities opacity]
(style :label (:font entities) (color 0.6 1.0 1.0 opacity)))
(defn style-person [entities]
(when-let [opacity (:opacity (:person entities))]
(label! (:person entities) :set-style (get-person-style entities opacity))))
(defn chain-tweens [screen entities id]
(let [fade-out (tween/tween [:fade id :out]
(assoc screen :total-time (+ 4.0 (:total-time screen)))
[id :opacity]
1.0 0.0
2.0
:finish #(dissoc % id))
pause (tween/tween [:fade id :pause]
(assoc screen :total-time (+ 2.0 (:total-time screen)))
[id :opacity]
1.0 1.0
2.0
:finish (fn [e] (assoc-in e [:tweens [:fade id :out]] fade-out)))
fade-in (tween/tween [:fade id :in] screen
[id :opacity]
0.0 1.0
2.0
:finish (fn [e] (assoc-in e [:tweens [:fade id :pause]] pause)))]
fade-in))
(defn start-message-if-necessary [screen entities]
(if (and (not (get-in entities [:role]))
(= 0.0 (get-in entities [:fade :opacity])))
(let [[[next-role next-person] & remaining-messages] (:remaining-messages entities)]
(if next-role
(-> entities
(assoc :role (center (assoc (label next-role (get-role-style entities 0.0) :set-alignment Align/center) :x 640 :y 480 )))
(assoc :person (center (assoc (label next-person (get-person-style entities 0.0) :set-alignment Align/center) :x 640 :y 440 )))
(assoc-in [:tweens [:fade :role :in]] (chain-tweens screen entities :role))
(assoc-in [:tweens [:fade :person :in]] (chain-tweens screen entities :person))
(assoc :remaining-messages remaining-messages))
entities))
entities))
(defscreen credits (defscreen credits
:on-show :on-show
(fn [screen entities] (fn [screen entities]
(utils/setup-viewport screen 320 240) (utils/setup-viewport screen 1280 960)
(input! :set-cursor-image (utils/cursor "cursor.png" :main) 0 0) (input! :set-cursor-image (utils/cursor "cursor.png" :main) 0 0)
{:fade (assoc (texture "black.png") (let [font (bitmap-font "ego/font.fnt" )]
:scale-x 80 {:font font
:scale-y 80 :fade (assoc (texture "black.png")
:opacity 0.0 :scale-x 80
:origin-x 0 :scale-y 80
:origin-y 0) :opacity 0.0
:the-end (assoc (texture "the-end.png") :x 0 :y 0) :origin-x 0
:tweens {:fade-in :origin-y 0)
(tween/tween :fade-in screen [:fade :opacity] 1.0 0.0 5.0 :ease tween/ease-out-cubic)}} :remaining-messages credit-messages
) :the-end (assoc (texture "the-end.png") :x 0 :y 0 :scale-x 4 :scale-y 4 :origin-x 0 :origin-y 0)
:tweens {:fade-in
(tween/tween :fade-in screen [:fade :opacity] 1.0 0.0 5.0 :ease tween/ease-out-cubic)}}))
:on-render :on-render
(fn [{:keys [^FitViewport viewport] :as screen} [entities]] (fn [{:keys [^FitViewport viewport] :as screen} [entities]]
(.apply viewport) (.apply viewport)
(let [entities (utils/apply-tweens screen entities (:tweens entities))] (let [entities (utils/apply-tweens screen entities (:tweens entities))
entities (start-message-if-necessary screen entities)]
(style-role entities)
(style-person entities)
(render! screen [(:the-end entities) (:fade entities)]) (render! screen [(:the-end entities) (:role entities) (:person entities) (:fade entities)])
entities)) entities))

View File

@@ -0,0 +1 @@
brycecovert@brometheus.local.31618

View File

@@ -85,7 +85,17 @@
(actions/talk entities :ego "It looks like the wall is crumbling here.") (actions/talk entities :ego "It looks like the wall is crumbling here.")
(actions/play-animation entities :ego :reach) (actions/play-animation entities :ego :reach)
(actions/update-entity entities :peeling #(assoc % :opacity 0)) (actions/update-entity entities :peeling #(assoc % :opacity 0))
(actions/update-state entities (fn [state] (assoc state :opened-crack? true))))))) (actions/update-state entities (fn [state] (assoc state :opened-crack? true))))))
:scripts {:stick (actions/get-script entities
(if (get-in @entities [:state :opened-crack?])
(actions/talk entities :ego "I could shove the stick in that, hole, but why?")
(actions/do-dialogue entities
:ego "It looks like that wall is crumbling."
:ego "I can probably scratch it off with my hand.")))
:sword (actions/get-script entities
(actions/do-dialogue entities
:ego "I should be careful with this sword."
:ego "It's sharp!"))})
:bird (utils/make-bird screen [[50 235] [80 220] [100 239] [180 235] [85 225]]) :bird (utils/make-bird screen [[50 235] [80 220] [100 239] [180 235] [85 225]])
:outside-particles (common/make-outside-particles)} :outside-particles (common/make-outside-particles)}
:collision "behindhouse/collision.png" :collision "behindhouse/collision.png"

View File

@@ -96,4 +96,9 @@
(update-in [:tweens] dissoc :cam-x :cam-y) (update-in [:tweens] dissoc :cam-x :cam-y)
(update-in [:room :entities :ego] #(actions/start-animation screen % :suspended)) (update-in [:room :entities :ego] #(actions/start-animation screen % :suspended))
(assoc-in [:room :entities :ego :stand-override] :suspended) (assoc-in [:room :entities :ego :stand-override] :suspended)
(assoc-in [:room :entities :ego :talk-override] :suspended-talk)))))) (assoc-in [:room :entities :ego :talk-override] :suspended-talk)
(assoc-in [:room :entities :ego :get-script] (fn [cursor [x y]]
(actions/get-script entities
(if (= :flask-1-strength (:value cursor))
(common/do-win entities)
(actions/talk entities :ego "I can't reach it!"))))))))))

View File

@@ -275,7 +275,7 @@
(actions/talk entities :ego "Who are you?!" :anim :scared-talk) (actions/talk entities :ego "Who are you?!" :anim :scared-talk)
(actions/begin-animation entities :ego :scared) (actions/begin-animation entities :ego :scared)
(actions/do-dialogue entities (actions/do-dialogue entities
:bloodclot-head "I am Bloodclot, the Scottish goblin!" :bloodclot-head "I am Bloodclot, the goblin!"
:bloodclot-head "I've spent last 100 years training for this day." :bloodclot-head "I've spent last 100 years training for this day."
:bloodclot-head "The day when I must best the worthiest of knights in battle." :bloodclot-head "The day when I must best the worthiest of knights in battle."
:bloodclot-head "But I had never expected my foe to be so..." :bloodclot-head "But I had never expected my foe to be so..."

View File

@@ -31,8 +31,7 @@
(assoc-in [:tweens :dawn-g-s] (tween/tween :dawn-g-s screen [:time-profiles :sprite :g] :current 0.36 50.0 :entities entities)) (assoc-in [:tweens :dawn-g-s] (tween/tween :dawn-g-s screen [:time-profiles :sprite :g] :current 0.36 50.0 :entities entities))
(assoc-in [:tweens :dawn-b-s] (tween/tween :dawn-b-s screen [:time-profiles :sprite :b] :current 0.23 50.0 :entities entities)) (assoc-in [:tweens :dawn-b-s] (tween/tween :dawn-b-s screen [:time-profiles :sprite :b] :current 0.23 50.0 :entities entities))
(assoc-in [:tweens :hue-amount-v-s] (tween/tween :hue-amount-v-s screen [:time-profiles :sprite :hue-amount] :current 0.0 50.0 :entities entities)) (assoc-in [:tweens :hue-amount-v-s] (tween/tween :hue-amount-v-s screen [:time-profiles :sprite :hue-amount] :current 0.0 50.0 :entities entities))
(assoc-in [:tweens :multiply-amount-v-s] (tween/tween :multiply-amount-v-s screen [:time-profiles :sprite :multiply-amount] :current 0.0 50.0 :entities entities))) (assoc-in [:tweens :multiply-amount-v-s] (tween/tween :multiply-amount-v-s screen [:time-profiles :sprite :multiply-amount] :current 0.0 50.0 :entities entities))))
)
(continue [this screen entities] (continue [this screen entities]
entities) entities)
(done? [this screen entities] (done? [this screen entities]
@@ -43,8 +42,6 @@
:none))) :none)))
(defn walk-to-castle [entities & {:keys [skip-type stop?] :or {skip-type :end stop? true}}] (defn walk-to-castle [entities & {:keys [skip-type stop?] :or {skip-type :end stop? true}}]
(actions/walk-to entities :ego [0 80] :skip-type skip-type) (actions/walk-to entities :ego [0 80] :skip-type skip-type)
(actions/walk-straight-to entities :ego [-20 80]) (actions/walk-straight-to entities :ego [-20 80])
@@ -699,6 +696,10 @@
(items/make-cream-of-mushroom entities) (items/make-cream-of-mushroom entities)
(leave-sheep entities)) (leave-sheep entities))
(actions/talk entities :ego "She's too far away."))) (actions/talk entities :ego "She's too far away.")))
:sword
(actions/get-script entities
(actions/talk entities :ego "That's just cruel."))
nil) nil)
:left {:walk (utils/flip sheep-walk) :left {:walk (utils/flip sheep-walk)
:stand (utils/flip sheep-stand)} :stand (utils/flip sheep-stand)}
@@ -731,8 +732,8 @@
(actions/talk entities :ego "Aww, it's a newborn lamb!") (actions/talk entities :ego "Aww, it's a newborn lamb!")
) )
:scripts {:carrot (actions/get-script entities (actions/talk entities :ego "I think it's still nursing.")) :scripts {:carrot (actions/get-script entities (actions/talk entities :ego "I think it's still nursing."))
:grass (actions/get-script entities (actions/talk entities :ego "I think it's still nursing."))} :grass (actions/get-script entities (actions/talk entities :ego "I think it's still nursing."))
) :sword (actions/get-script entities (actions/talk entities :ego "I prefer to let the butcher make lamb chops."))})
:butterfly (assoc (animation->texture screen butterfly-stand) :butterfly (assoc (animation->texture screen butterfly-stand)
:x 161 :x 161
:y 218 :y 218
@@ -756,7 +757,10 @@
:scripts put-something-in-cauldron)) :scripts put-something-in-cauldron))
:wizard (rooms/make-entity :wizard (common/make-wizard screen {:x 190 :y 78 :baseline 162 :scale-x 1.2 :scale-y 1.2 :wizard (rooms/make-entity :wizard (common/make-wizard screen {:x 190 :y 78 :baseline 162 :scale-x 1.2 :scale-y 1.2
:script (actions/get-script entities (talk-to-gandarf-outside entities)) :script (actions/get-script entities (talk-to-gandarf-outside entities))
:scripts {:default (actions/get-script entities (actions/talk entities :wizard "No time for that!"))}})) :scripts {:default (actions/get-script entities (actions/talk entities :wizard "No time for that!"))
:sword (actions/get-script entities (actions/do-dialogue entities
:wizard "The Sword of Blergh!"
:wizard "Good job, Tick."))}}))
:note (rooms/make-entity :note (assoc (texture "outsidehouse/note.png") :note (rooms/make-entity :note (assoc (texture "outsidehouse/note.png")
:x 277 :y 74 :baseline 160 :x 277 :y 74 :baseline 160
:night-profile :none :night-profile :none

View File

@@ -20,11 +20,12 @@
(get-in entities [:state :active?]) (get-in entities [:state :active?])
(not (get-in entities [:state :blergh-dead?])) (not (get-in entities [:state :blergh-dead?]))
(not (actions/has-item? entities :magic-slingshot))) (not (actions/has-item? entities :magic-slingshot)))
((actions/get-script entities (actions/do-dialogue entities :bloodclot-head (rand-nth ["Come on, little man! Try and hit me!" ((actions/get-script entities (actions/do-dialogue entities :bloodclot-head (rand-nth ["Come over here, so I can eat you!"
"What's the matter? Cold feet?" "The taste of children makes my tummy rumble!"
"Come here and fight me like man!" "Come here and fight me like man!"
"Your precious Georgia McGorgeous would be laughing if she saw you now." "Georgia McGorgeous will be so impressed with how quickly I eat you!"
"Pick up your weapon and fight!"]))) entities)) "Come on, I'm hungry!"
"First I'll eat you, then I'll eat Georgia McGorgeous!"]))) entities))
nil) nil)
(defn shock [screen entities] (defn shock [screen entities]

View File

@@ -210,7 +210,8 @@
(tween/tween :fade-out screen [:fade :opacity] 0.0 1.0 1.0 (tween/tween :fade-out screen [:fade :opacity] 0.0 1.0 1.0
:finish (fn [entities] :finish (fn [entities]
(utils/stop-sound (:music entities)) (utils/stop-sound (:music entities))
(set-screen! @(resolve 'advent.core/advent) scene/scene scene/demo scene/hud dialogue/talking-screen dialogue/choice-screen inventory/inventory-screen safe/safe-screen fade/fade-screen) (set-screen! @(resolve 'advent.core/advent) scene/scene scene/demo scene/hud dialogue/talking-screen dialogue/choice-screen inventory/inventory-screen safe/safe-screen fade/fade-screen
)
entities) entities)
:ease tween/ease-in-cubic)) :ease tween/ease-in-cubic))
(assoc-in [:tweens :fade-out-music] (assoc-in [:tweens :fade-out-music]