(defstruct player-ship
  armor-val
  rep-shield-val
  warp-drive ; tuple, first ele is power state (0,1), second is fuel cost 
  reactor-str ; 0 - low power, 1 - full power, 2 - overdrive
  warp-field ; 0 - low power, 1 - full power
  weapons
  credits
  crew
  inventory)

(defstruct player-inventory
  petrofuel
  gruel
  spice
  ammo
  archeotech)

(defstruct crew
  sanity-val ; Max 100
  crew-members) ; List of *uniq-crew-mem*

;;; Unique crew member that can provide an abstract buff
;;; or nerf to some internal game system
(defstruct uniq-crew-mem
  name
  armor-buff
  rep-shield-buff
  sanity-buff
  warp-drive-buff
  reactor-str-buff
  warp-field-buff
  plasma-buff
  expl-buff
  beam-buff
  credit-buff)

;; Crew name generators
(defvar *name-prefixes*
  (list "Precepitor"
	"Auriga"
	"Basileus"
	"Pontiff"
	"Palatine"
	"Centurion"
	"Conjugator"
	"Principus"
	"Executor"
	"Commonus"
	"Gothicus"
	"Augusta"
	"Calligraphus"
	"Imperator"
	"Consul"
	"Signifier"
	"Tribune"
	"Praetorian"
	"Prefect"))

(defvar *name-values*
  (list "Atticus"
	"Aurelia"
	"Cassius"
	"Maximus"
	"Aurelius"
	"Magnus"
	"Lucius"
	"Augustus"
	"Caeser"
	"Remus"
	"Julius"
	"Octavius"
	"Cato"
	"Tiberius"
	"Nero"
	"Romulus"
	"Septimus"
	"Cicero"
	"Cyprian"
	"Justus"
	"Quintus"
	"Decimus"))
  
(defun make-crew-mem-name ()
  (let ((name (nth (random (length *name-values*)) *name-values*))
	(prefix (nth (random (length *name-prefixes*)) *name-prefixes*)))
    (concatenate 'string prefix " " name)))

(defstruct weapon
  name
  shield-dmg
  hull-dmg
  ammo-cost)

(defstruct market
  price-of-petrofuel
  price-of-ammo
  price-of-archeotech
  price-of-spice
  price-of-gruel)

;; This gets created when travelling to a
;; new sector
(defstruct sector
  market ; contains market struct
  hazards ; Contains hazard for sector
  boons) ; Contains boon for sector