Skip to content

Commit f3220a0

Browse files
committed
Make init level pureish, push swap! up
1 parent 38f821e commit f3220a0

1 file changed

Lines changed: 21 additions & 22 deletions

File tree

src/scittle/games/asteroids.cljs

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -240,27 +240,26 @@
240240

241241
(defn init-level!
242242
"Initializes a new level"
243-
[& {:keys [level]}]
243+
[{:keys [level ship] :as game-state}]
244244
(let [num-asteroids (+ 3 level)]
245-
(swap! game-state assoc
246-
:asteroids (vec (for [_ (range num-asteroids)]
247-
(let [edge (rand-int 4)
248-
x (case edge
249-
0 (rand-int canvas-width)
250-
1 canvas-width
251-
2 (rand-int canvas-width)
252-
(rand-int canvas-height))
253-
y (case edge
254-
0 0
255-
1 (rand-int canvas-height)
256-
2 canvas-height
257-
0)]
258-
(create-asteroid :x x :y y :size-type :large))))
259-
:bullets []
260-
:particles []
261-
:ufo-timer (+ 600 (rand-int 600))
262-
:ship (assoc (:ship @game-state)
263-
:invulnerable 120))))
245+
(merge game-state
246+
{:asteroids (vec (for [_ (range num-asteroids)]
247+
(let [edge (rand-int 4)
248+
x (case edge
249+
0 (rand-int canvas-width)
250+
1 canvas-width
251+
2 (rand-int canvas-width)
252+
(rand-int canvas-height))
253+
y (case edge
254+
0 0
255+
1 (rand-int canvas-height)
256+
2 canvas-height
257+
0)]
258+
(create-asteroid :x x :y y :size-type :large))))
259+
:bullets []
260+
:particles []
261+
:ufo-timer (+ 600 (rand-int 600))
262+
:ship (assoc ship :invulnerable 120)})))
264263

265264
(defn reset-ship!
266265
"Resets ship to center"
@@ -559,7 +558,7 @@
559558
(when (empty? asteroids)
560559
(play-level-complete-sound) ; Play victory sound
561560
(swap! game-state update :level inc)
562-
(init-level! :level (:level @game-state))))))
561+
(swap! game-state init-level!)))))
563562

564563
;; ============================================================================
565564
;; Drawing Functions
@@ -765,7 +764,7 @@
765764
:distance 0}
766765
:fire-button false
767766
:hyperspace-button false})
768-
(init-level! :level 1))
767+
(init-level! {:level 1 :ship {}}))
769768

770769
;; ============================================================================
771770
;; Canvas Component

0 commit comments

Comments
 (0)