; SPDX-FileCopyrightText: Copyright (c) 2023-2024 Chris Pressey, Cat's Eye Technologies.
; This work is distributed under a 2-clause BSD license. For more information, see:
; SPDX-License-Identifier: LicenseRef-BSD-2-Clause-X-Decoy
;
; Code that demonstrates importing symbols from a module.
;
(import-from "map" (new-map set get update))
;----------------------------------
(let* ((a (new-map))
(b (set (quote key) (quote value) a))
(c (update (quote key) (lambda (x) (cons (quote f) (cons x (quote ())))) b))
(v (get (quote key) c)))
(list a b c v))
;----------------------------------
(define reset-player (lambda (player)
(set "x" 200 (set "y" 200 (set "vx" 0 (set "vy" 0 (set "ax" 0 (set "ay" 0
(set "h" 270 (set "dh" 0 (set "f" 0 (set "mode" "GET_READY" (set "timer" 200 player)))))))))))
))
(define make-player (lambda ()
(reset-player (set "score" 0 (set "lives" 2 (set "mass" 1 (new-map)))))
))
(make-player)
;----------------------------------
(define make-missile (lambda (x y vx vy)
(set "x" x (set "y" y (set "vx" vx (set "vy" vy (set "mode" "MOVING" (set "timer" 50 (new-map)))))))
))
(make-missile 100 200 5 0)