(defvar *player-ship*) (defvar *market*) (defun random-uniq-crew () (let ((num-attr (random 10)) (crew-mem (make-uniq-crew-mem))))) (defun init-game-state () (progn (setq *market* (make-market :price-of-petrofuel 20 :price-of-ammo 10 :price-of-archeotech 1000 :price-of-spice 50 :price-of-gruel 5)) (setq *player-ship* (make-player-ship :armor-val 10 :rep-shield-val 10 :warp-drive (list 1 5) :reactor-str 1 :ammo 20 :warp-field 1 :weapons (list (make-weapon :name "Plamsa" :shield-dmg 3 :hull-dmg 3 :ammo-cost 5) (make-weapon :name "Mega Bolter" :shield-dmg 1 :hull-dmg 2 :ammo-cost 1) (make-weapon :name "Beam" :shield-dmg 1 :hull-dmg 3 :ammo-cost 3)) :credits 1000 :crew (make-crew :sanity-val 100 :moral-val 100 :crew-members (list (make-uniq-crew-mem))) :inventory (make-player-inventory :petrofuel 20 :gruel 20 :spice 0 :ammo 20 :archeotech 0))))) (defun new-game () (progn (init-game-state))) (defun game-intro () (cls) (format t "In the grim darkness of the far future, there is only COMMERCE...~C" #\linefeed) (sleep 2) (format t "You embark across a bleak galaxy to ply your wares and discover untold riches!~C" #\linefeed) (sleep 2) (format t *intro-ship*) (prompt-read "")) ;; Options for top level menu (defvar *top-level-options* " Actions: 1. Sector info 2. Ship info 3. Trade 4. Scout 5. Leave ") (defun top-level-game-menu () (format t *top-level-options*) (let ((option (prompt-read "Enter an option: ")) (cond ((eql option '"1") (print "1"))))))