| 
														
															@@ -13,7 +13,6 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					:rep-shield-val 10 
														 | 
														
														 | 
														
															 					:rep-shield-val 10 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					:warp-drive (list 1 5) 
														 | 
														
														 | 
														
															 					:warp-drive (list 1 5) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					:reactor-str 1 
														 | 
														
														 | 
														
															 					:reactor-str 1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-					:ammo 20 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					:warp-field 1 
														 | 
														
														 | 
														
															 					:warp-field 1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					:weapons (list (make-weapon :name "Plamsa" 
														 | 
														
														 | 
														
															 					:weapons (list (make-weapon :name "Plamsa" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 								    :shield-dmg 3 
														 | 
														
														 | 
														
															 								    :shield-dmg 3 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -72,28 +71,132 @@ Actions: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	 (crew-names  
														 | 
														
														 | 
														
															 	 (crew-names  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	   (loop for member in crew-struct 
														 | 
														
														 | 
														
															 	   (loop for member in crew-struct 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		 collect (list (uniq-crew-mem-name member) NIL NIL)))) 
														 | 
														
														 | 
														
															 		 collect (list (uniq-crew-mem-name member) NIL NIL)))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    (format T "CREW DETAILS~%~%") 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (format T "~%CREW DETAILS~%~%") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (format-table T (list (list (crew-sanity-val (player-ship-crew *player-ship*)))) :column-label '("Sanity")) 
														 | 
														
														 | 
														
															     (format-table T (list (list (crew-sanity-val (player-ship-crew *player-ship*)))) :column-label '("Sanity")) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (format T "~%") 
														 | 
														
														 | 
														
															     (format T "~%") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (format-table T crew-names :column-label '("Name" "Buff" "Buff Amount")))) 
														 | 
														
														 | 
														
															     (format-table T crew-names :column-label '("Name" "Buff" "Buff Amount")))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (defun display-inventory () 
														 | 
														
														 | 
														
															 (defun display-inventory () 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  (let ((inventory-list (list  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (let ((inventory-list (list 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			 (list "Credits" (player-ship-credits *player-ship*)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			 (list "Petrofuel" (player-inventory-petrofuel (player-ship-inventory *player-ship*))) 
														 | 
														
														 | 
														
															 			 (list "Petrofuel" (player-inventory-petrofuel (player-ship-inventory *player-ship*))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			 (list "Gruel" (player-inventory-gruel (player-ship-inventory *player-ship*))) 
														 | 
														
														 | 
														
															 			 (list "Gruel" (player-inventory-gruel (player-ship-inventory *player-ship*))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			 (list "Spice" (player-inventory-spice (player-ship-inventory *player-ship*))) 
														 | 
														
														 | 
														
															 			 (list "Spice" (player-inventory-spice (player-ship-inventory *player-ship*))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			 (list "Ammo" (player-inventory-ammo (player-ship-inventory *player-ship*))) 
														 | 
														
														 | 
														
															 			 (list "Ammo" (player-inventory-ammo (player-ship-inventory *player-ship*))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			 (list "Archeotech" (player-inventory-archeotech (player-ship-inventory *player-ship*)))))) 
														 | 
														
														 | 
														
															 			 (list "Archeotech" (player-inventory-archeotech (player-ship-inventory *player-ship*)))))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    (format T "INVENTORY~%") 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (format T "~%INVENTORY~%") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (format-table T inventory-list :column-label '("Resource" "Amount")))) 
														 | 
														
														 | 
														
															     (format-table T inventory-list :column-label '("Resource" "Amount")))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (defun ship-info () 
														 | 
														
														 | 
														
															 (defun ship-info () 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  (format t "Called ship-info")) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (display-crew) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (display-inventory)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 ;;; SHIP INFO END ;;; 
														 | 
														
														 | 
														
															 ;;; SHIP INFO END ;;; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-(defun trade () 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  (format t "Called trade")) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+;;; TRADING ;;; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defparameter *trade-opt-lookup* (list (cons '1 'buy-menu) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				       (cons 'b 'buy-menu) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				       (cons '2 'sell-menu) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				       (cons 's 'sell-menu) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				       (cons '3 'display-prices) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				       (cons 'd 'display-prices) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				       (cons '4 'top-level-game-menu) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				       (cons 'r 'top-level-game-menu))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defvar *trade-menu-options-display* " 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+Actions: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+1 | Buy | b 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+2 | Sell | s 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+3 | Display Prices | d 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+4 | Return to top level | r 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defparameter *resource-opt-lookup* (list (cons 'pf "petrofuel") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					  (cons 'petrofuel "petrofuel") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					  (cons 'gr "gruel") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					  (cons 'gruel "gruel") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					  (cons 'sp "spice") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					  (cons 'spice "spice") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					  (cons 'am "ammo") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					  (cons 'ammo "ammo") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					  (cons 'ar "archeotech") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					  (cons 'archeotech "archeotech"))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defun handle-str-lookup (input-str lookup-table) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (let ((handler (cdr (assoc input-str lookup-table)))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (if handler (return-from handle-str-lookup handler) (format t "Invalid resource~%~%")))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defun buy-transaction (resource quantity) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  "Do they actual purchase transaction, not intended to be called interactively" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (let* ((available-player-funds (player-ship-credits *player-ship*)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	 (inventory (player-ship-inventory *player-ship*)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	 (price (funcall (symbol-function (find-symbol (string-upcase 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+							(concatenate 'string "market-price-of-" resource)))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			 (sector-market *sector*))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	 (total-cost (* quantity price))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (if (> total-cost available-player-funds) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	(progn 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	  (format T "Not enough credits to buy ~A ~A at ~A credits~%" quantity resource price) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	  (format T "~%PLAYER CREDITS: ~A~%" (player-ship-credits *player-ship*)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	  (return-from buy-transaction NIL)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	(progn 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	  (let ((resource-sym (read-from-string resource)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		(minus-funds (lambda (amount) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			       (let ((remainder (- available-player-funds amount))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				 (setf (player-ship-credits *player-ship*) remainder))))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	    (case resource-sym 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	      ;;; This is insanely annoying, and will need to be duplicated 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	      ;;; for the sell logic, but don't know how else to handle this here 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	      ('gruel (progn 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			(funcall minus-funds total-cost) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			(setf (player-inventory-gruel inventory) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			      (+ (player-inventory-gruel inventory) quantity)))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	      ('archeotech (progn 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			(funcall minus-funds total-cost) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			(setf (player-inventory-archeotech inventory) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			      (+ (player-inventory-archeotech inventory) quantity)))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	      ('petrofuel (progn 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			(funcall minus-funds total-cost) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			(setf (player-inventory-petrofuel inventory) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			      (+ (player-inventory-petrofuel inventory) quantity)))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	      ('spice (progn 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			(funcall minus-funds total-cost) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			(setf (player-inventory-spice inventory) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			      (+ (player-inventory-spice inventory) quantity)))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	      ('ammo (progn 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			(funcall minus-funds total-cost) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			(setf (player-inventory-ammo inventory) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			      (+ (player-inventory-ammo inventory) quantity)))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	      (otherwise (format T "Invalid")))))))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defun buy-menu () 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (let ((item-to-buy (prompt-read "Enter a resource to buy: ")) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	(quantity (prompt-read "Enter a quantity to buy: "))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (handle-str-lookup (read-from-string item-to-buy) *resource-opt-lookup*))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defun sell-menu () 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (format T "Called sell menu~%")) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defun display-prices () 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+;;; (funcall (symbol-function (find-symbol (string-upcase (concatenate 'string "market-price-of-" item)))) (sector-market *sector*)) ;;; A call by string reference method for function calls 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (let ((market-list (list 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		      (list "Petrofuel" (market-price-of-petrofuel (sector-market *sector*))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		      (list "Gruel" (market-price-of-gruel (sector-market *sector*))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		      (list "Spice" (market-price-of-spice (sector-market *sector*))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		      (list "Ammo" (market-price-of-ammo (sector-market *sector*))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		      (list "Archeotech" (market-price-of-archeotech (sector-market *sector*)))))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (format T "~%PLAYER CREDITS: ~A~%" (player-ship-credits *player-ship*)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (format T "~%MARKET PRICES~%") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (format-table T market-list :column-label '("Resource" "Cost")))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defun trade-menu () 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (format t *trade-menu-options-display*) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (let ((option (prompt-read "Enter an option: "))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (format t "~%") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (handle-opt (read-from-string option) *trade-opt-lookup*)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (trade-menu)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+;;; END TRADING ;;; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (defun scout () 
														 | 
														
														 | 
														
															 (defun scout () 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   (format t "Called scout")) 
														 | 
														
														 | 
														
															   (format t "Called scout")) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (defun leave () 
														 | 
														
														 | 
														
															 (defun leave () 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -107,9 +210,9 @@ Actions: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				 (cons 'ship-info 'ship-info) 
														 | 
														
														 | 
														
															 				 (cons 'ship-info 'ship-info) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				 (cons 'si 'ship-info) 
														 | 
														
														 | 
														
															 				 (cons 'si 'ship-info) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				 (cons '2 'ship-info) 
														 | 
														
														 | 
														
															 				 (cons '2 'ship-info) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-				 (cons 'trade 'trade) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-				 (cons 't 'trade) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-				 (cons '3 'trade) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				 (cons 'trade 'trade-menu) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				 (cons 't 'trade-menu) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				 (cons '3 'trade-menu) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				 (cons 'scout 'scout) 
														 | 
														
														 | 
														
															 				 (cons 'scout 'scout) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				 (cons 's 'scout) 
														 | 
														
														 | 
														
															 				 (cons 's 'scout) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				 (cons '4 'scout) 
														 | 
														
														 | 
														
															 				 (cons '4 'scout) 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -117,14 +220,14 @@ Actions: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				 (cons 'l 'leave) 
														 | 
														
														 | 
														
															 				 (cons 'l 'leave) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				 (cons '5 'leave))) 
														 | 
														
														 | 
														
															 				 (cons '5 'leave))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-(defun handle-opt (opt) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  (let ((handler (cdr (assoc opt *opt-lookup*)))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defun handle-opt (opt lookup-table) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (let ((handler (cdr (assoc opt lookup-table)))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (if handler (funcall handler) (format t "Invalid opt~%~%")))) 
														 | 
														
														 | 
														
															     (if handler (funcall handler) (format t "Invalid opt~%~%")))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (defun top-level-game-menu () 
														 | 
														
														 | 
														
															 (defun top-level-game-menu () 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   (format t *top-level-options-display*) 
														 | 
														
														 | 
														
															   (format t *top-level-options-display*) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   (let ((option (prompt-read "Enter an option: "))) 
														 | 
														
														 | 
														
															   (let ((option (prompt-read "Enter an option: "))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (format t "~%") 
														 | 
														
														 | 
														
															     (format t "~%") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    (handle-opt (read-from-string option))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (handle-opt (read-from-string option) *opt-lookup*)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   (top-level-game-menu)) 
														 | 
														
														 | 
														
															   (top-level-game-menu)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	   
														 | 
														
														 | 
														
															 	   
														 |