(define-module (bonnie-bee game) #:use-module (bonnie-bee actor) #:use-module (bonnie-bee assets) #:use-module (bonnie-bee background) #:use-module (bonnie-bee boss) #:use-module (bonnie-bee bullet) #:use-module (bonnie-bee common) #:use-module (bonnie-bee flower) #:use-module (bonnie-bee player) #:use-module (bonnie-bee turret) #:use-module (bonnie-bee popcorn) #:use-module (chickadee) #:use-module (chickadee audio) #:use-module (chickadee data quadtree) #:use-module (chickadee graphics color) #:use-module (chickadee graphics particles) #:use-module (chickadee math rect) #:use-module (chickadee math vector) #:use-module (chickadee scripting) #:use-module (oop goops) #:use-module (starling asset) #:use-module (starling kernel) #:use-module (starling node) #:use-module (starling node-2d) #:use-module (starling scene) #:export ()) (define %game-bounds (make-rect 0.0 0.0 %game-width %game-height)) (define-class () (state #:accessor state #:init-value 'play) (quadtree #:getter quadtree #:init-form (make-quadtree %game-bounds)) (scroll-speed #:getter scroll-speed #:init-value 0.0) (last-lives #:accessor last-lives #:init-value 0) (last-pollen #:accessor last-pollen #:init-value 0) (last-score #:accessor last-score #:init-value 0) (music-source #:getter music-source #:init-form (make-source #:loop? #t))) (define-method (change-scroll-speed (game ) speed) (slot-set! game 'scroll-speed speed)) (define-method (spawn (game ) (actor )) (set! (quadtree actor) (quadtree game)) (quadtree-insert! (quadtree game) (world-hitbox actor) actor) (attach-to game actor)) (define-method (player (game )) (& game player)) (define-method (bullets (game )) (& game bullets)) (define-method (particles (game )) (& game particles)) (define-method (on-boot (game )) (set! *random-state* (random-state-from-platform)) (set-cameras! game) (attach-to game (make #:name 'background #:texture background-image) (make #:name 'particles #:particles (make-particles 2048 #:texture (asset-ref particle-image))) (make #:name 'bullets #:rank 3 #:quadtree (quadtree game)) (make