chapter loading.

This commit is contained in:
Bryce Covert
2015-11-04 21:27:11 -08:00
parent 6586faf583
commit 4c1e91a6fb
5 changed files with 83 additions and 52 deletions

View File

@@ -161,7 +161,8 @@
(actions/play-sound entities "outsidehouse/drop.ogg" 0.2)
(actions/camera-shake entities 2)
(Thread/sleep 500)
(actions/talk entities :ego "I poured it in. Now what?"))
(actions/talk entities :ego "I poured it in. Now what?")
(utils/save-chapter @entities :chapter-5))
(actions/get-script entities
(actions/talk entities :ego "I don't want to put something in there unless I'm sure I need to."))))

View File

@@ -1321,7 +1321,7 @@ void main ()
:baseline 9000
:opacity 0.8)
:save (assoc (utils/get-texture "save.png")
:x 286 :y 224
:x 280 :y 224
:width 16 :height 16
:baseline 9000
:opacity 0.8)

View File

@@ -181,9 +181,9 @@
is-starting? (= "Begin quest" start-playing-label)]
(make-table [[ (make-button start-playing-label :key :continue-or-start) :height 32]
:row
[ (make-button "Load" :key :chapters) :height 32]
[ (make-button "Load" :key :load) :height 32]
:row
[ (make-button "Chapters") :height 32]
[ (make-button "Chapters" :key :chapters) :height 32]
:row
[(make-label "Music" (color :white)) :height 32]
:row
@@ -198,6 +198,25 @@
[(make-button "End quest" :key :end-quest) :height 32]
])))
(defn chapters-menu []
(let [chapters (utils/get-chapters)]
(make-table
(concat (mapcat identity
(for [chapter [:chapter-1 :chapter-2 :chapter-3 :chapter-4 :chapter-5]]
[[(doto (make-button (if (chapter chapters)
(saves/chapter-name chapter)
"---")
:chapter (chapter chapters))
(text-button! :set-disabled (nil? (chapter chapters)))) :height 32]
:row]))
[[(ActorEntity. (Widget.)) :height 32]
:row
[(ActorEntity. (Widget.)) :height 32]
:row
[(ActorEntity. (Widget.)) :height 32]
:row
(make-button "Back" :key :back)]))))
(defn get-selected-save [entities [x y]]
(first (filter
(every-pred :save #(utils/intersects? % [x y]))
@@ -347,54 +366,62 @@
:on-ui-changed
(fn [{:keys [actor] :as screen} [entities]]
(when-not (get-in entities [:tweens :fade-out])
(let [e (-> actor .getUserObject)
actor-key (:key e)]
(cond
(cond (= :music-volume-slider actor-key)
(do (swap! utils/settings assoc :music-volume (slider! e :get-value))
(utils/save-settings!)
entities)
(= :music-volume-slider actor-key)
(do (swap! utils/settings assoc :music-volume (slider! e :get-value))
(utils/save-settings!)
entities)
(= :sound-volume-slider actor-key)
(do (swap! utils/settings assoc :sound-volume (slider! e :get-value))
(utils/save-settings!)
entities)
(= :sound-volume-slider actor-key)
(do (swap! utils/settings assoc :sound-volume (slider! e :get-value))
(utils/save-settings!)
entities)
(#{:back } actor-key)
(-> entities
(dissoc :save-menu)
(dissoc :chapters-menu)
(assoc :main-menu (main-menu)))
(#{:back } actor-key)
(-> entities
(dissoc :save-menu)
(assoc :main-menu (main-menu)))
(= :load actor-key)
(-> entities
(dissoc :main-menu)
(assoc :save-menu (saves-menu entities)))
(= :chapters actor-key)
(-> entities
(dissoc :main-menu)
(assoc :save-menu (saves-menu entities)))
(= :chapters actor-key)
(-> entities
(dissoc :main-menu)
(assoc :chapters-menu (chapters-menu )))
(= :toggle-fullscreen actor-key)
(utils/toggle-fullscreen!)
(= :toggle-fullscreen actor-key)
(utils/toggle-fullscreen!)
(= :end-quest actor-key)
(quit screen entities)
(= :end-quest actor-key)
(quit screen entities)
(= :continue-or-start actor-key)
(start-playing screen entities (if (= "Begin quest" (quest-label))
nil
(first (utils/snapshot-list))))
(= :continue-or-start actor-key)
(start-playing screen entities (if (= "Begin quest" (quest-label))
nil
(first (utils/snapshot-list))))
(= :continue actor-key)
(start-playing screen entities (:selected-save entities))
(= :continue actor-key)
(start-playing screen entities (:selected-save entities))
(= :continue actor-key)
(start-playing screen entities (:selected-save entities))
(:save e)
(do
(label! (-> entities :save-menu :save-label) :set-text (:name (:save e)))
(text-button! (-> entities :save-menu :continue-button) :set-disabled false)
(assoc entities :selected-save (:save e)))
(:save e)
(do
(label! (-> entities :save-menu :save-label) :set-text (:name (:save e)))
(text-button! (-> entities :save-menu :continue-button) :set-disabled false)
(assoc entities :selected-save (:save e)))
:else
entities))))
(:chapter e)
(start-playing screen entities (:chapter e))
:else
entities))))
:on-resize (fn [{:keys [viewport width height]} [entities]]
(.update viewport width height false)