(define-module (game) #:use-module (chickadee graphics color) #:use-module (chickadee graphics font) #:use-module (chickadee graphics texture) #:use-module (chickadee graphics viewport) #:use-module (chickadee math vector) #:use-module (chickadee scripting) #:use-module (ice-9 match) #:use-module (oop goops) #:use-module (starling asset) #:use-module (starling gui) #:use-module (starling kernel) #:use-module (starling node) #:use-module (starling node-2d) #:use-module (starling scene) #:duplicates (merge-generics) #:export (launch-game)) ;;; ;;; Constants ;;; (define window-width 1280) (define window-height 720) (define game-width 640) (define game-height 360) (define player-display-name "") ;;; ;;; Assets ;;; (define-asset dialog-box-texture (load-image "assets/images/dialog-box.png")) (define-asset darkness (load-image "assets/images/darkness.png")) (define-asset room-background (load-image "assets/images/room.png")) (define-asset scanner-texture (load-image "assets/images/scanner.png")) (define-asset monogram-font (load-font "assets/fonts/monogram_extended.ttf" 12)) (define-asset monogram-font-big (load-font "assets/fonts/monogram_extended.ttf" 24)) ;;; ;;; Text Box ;;; (define-class () (text #:accessor text #:init-keyword #:text #:init-value "" #:watch? #t)) (define-method (on-change (text-box ) slot-name old new) (case slot-name ((text) (let ((l (& text-box text))) (when l (set! (text l) new)))) (else (next-method)))) (define-method (apply-theme (text-box )) (next-method) (replace text-box (make