started multiple saves.
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
[play-clj.utils :refer :all]
|
||||
[play-clj.g2d :refer :all]
|
||||
[advent.utils :as utils]
|
||||
[advent.saves :as saves]
|
||||
[advent.tween :as tween]
|
||||
[advent.screens.scene :as scene]
|
||||
[advent.screens.dialogue :as dialogue]
|
||||
@@ -89,7 +90,7 @@
|
||||
flipped))
|
||||
|
||||
(defn quest-label []
|
||||
(if (:seen-intro? (scene/get-state))
|
||||
(if (:seen-intro? (utils/load-snapshot :autosave))
|
||||
"Continue quest"
|
||||
"Begin quest"))
|
||||
|
||||
@@ -100,6 +101,7 @@
|
||||
(tween/tween :fade-out screen [:fade :opacity] 0.0 1.0 1.0
|
||||
:finish (fn [entities]
|
||||
(utils/stop-sound (:music entities))
|
||||
(reset! utils/selected-save save)
|
||||
(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)
|
||||
@@ -160,17 +162,24 @@
|
||||
(stack-y 280 6)
|
||||
(assoc :z 8 :interactable true))})
|
||||
|
||||
(defn get-selected-save [entities [x y]]
|
||||
(first (filter
|
||||
(every-pred :save #(utils/intersects? % [x y]))
|
||||
(vals entities))))
|
||||
|
||||
(defn saves-menu []
|
||||
{"Where we left off" (-> (make-label "Where we left off")
|
||||
(stack-y 280 0)
|
||||
(assoc :z 8
|
||||
:interactable true
|
||||
:save "Where we left off"))
|
||||
"Our tale's beginning" (-> (make-label "Our tale's beginning")
|
||||
(stack-y 280 1)
|
||||
(assoc :z 8
|
||||
:interactable true
|
||||
:save "Our tale's beginning"))})
|
||||
(doto
|
||||
(into {}
|
||||
(for [[save index] (map #(vector %1 %2)
|
||||
(filter utils/has-save? (keys saves/saves))
|
||||
(range))
|
||||
:let [name (saves/saves save)]]
|
||||
[name (-> (make-label name)
|
||||
(stack-y 280 index)
|
||||
(assoc :z 8
|
||||
:interactable true
|
||||
:save save))]))
|
||||
println))
|
||||
|
||||
(defscreen title-screen
|
||||
:on-show
|
||||
@@ -281,9 +290,9 @@
|
||||
entities)
|
||||
|
||||
:on-touch-up (fn [screen [entities]]
|
||||
(println "HERE")
|
||||
(when-not (get-in entities [:tweens :fade-out])
|
||||
(let [[x y] (utils/unproject screen)]
|
||||
(let [[x y] (utils/unproject screen)
|
||||
selected-save (get-selected-save entities [x y])]
|
||||
(cond
|
||||
(utils/intersects? (:start-playing entities) [x y])
|
||||
(-> (apply dissoc entities (keys (:main-menu entities)))
|
||||
@@ -295,12 +304,9 @@
|
||||
(utils/intersects? (:fullscreen entities) [x y])
|
||||
(utils/toggle-fullscreen!)
|
||||
|
||||
(utils/intersects? (entities "Where we left off") [x y])
|
||||
(start-playing screen entities "Where we left off")
|
||||
selected-save
|
||||
(start-playing screen entities (:save selected-save))
|
||||
|
||||
(utils/intersects? (entities "Our tale's beginning") [x y])
|
||||
(start-playing screen entities "Our tale's beginning")
|
||||
|
||||
:else
|
||||
nil))))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user