| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 | ;; This gets created when travelling to a;; new sector(defclass sector ()  ((market    :initarg :market    :accessor market)   (hazards    :initarg :hazards    :accessor hazards    :initform NIL)   (boons    :initarg :boons    :accessor boons    :initform NIL)   (player-ship-obj    :initarg :player-ship-obj    :accessor player-ship-obj    :initform NIL)   (enemy-ships    :initarg :enemy-ships    :accessor enemy-ships    :initform NIL)))(defclass ship ()  ((armor-val    :initarg :armor-val    :accessor armor-val    :initform 10)   (rep-shield-val    :initarg :rep-shield-val    :accessor rep-shield-val    :initform 10)   (warp-drive-power ; 0 off, 1 on    :initarg :warp-drive-power    :accessor warp-drive-power    :initform 1)   (reactor-str ; 0 - low power, 1 - full power, 2 - overdrive    :initarg :reactor-str    :accessor reactor-str    :initform 1)   (warp-field ; 0 - low power, 1 - full power    :initarg :warp-field    :accessor warp-field    :initform 1)   (weapons    :initarg :weapons    :accessor weapons)   (credits    :initarg :credits    :accessor credits    :initform 1000)   (crew    :initarg :crew    :accessor crew    :initform NIL)   (inventory    :initarg :inventory    :accessor inventory    :initform (make-instance 'player-inventory))))(defclass ai-ship (ship)  ((name    :initarg :name    :accessor name    :initform NIL)   (ai-type   :initarg :ai-type   :accessor ai-type   :initform NIL)))(defclass player-inventory ()    ((petrofuel      :initarg :petrofuel      :accessor petrofuel      :initform 20)     (gruel      :initarg :gruel      :accessor gruel      :initform 20)     (spice      :initarg :spice      :accessor spice      :initform 0)     (ammo      :initarg :ammo      :accessor ammo      :initform 20)     (archeotech      :initarg :archeotech      :accessor archeotech      :initform 0)))(defclass crew ()  ((sanity-val ; Max 100   :initarg :sanity-val   :accessor sanity-val   :initform 100)   (moral-val    :initarg :moral-val    :accessor moral-val    :initform 100)   (crew-members    :initarg :crew-members  ; List of *uniq-crew-mem*    :accessor crew-members)));;; Unique crew member that can provide an abstract buff;;; or nerf to some internal game system(defclass uniq-crew-mem ()  ((name    :initarg :name    :accessor name)   (buff    :initarg :buff    :accessor buff    :initform NIL)))(defclass crew-buff ()  ((name    :initarg :name    :accessor name)   (buff-type    :initarg :buff-type    :accessor buff-type    :initform NIL)   (buff-value    :initarg :buff-value    :accessor buff-value    :initform NIL)))(defclass weapon ()  ((name    :initarg :name    :accessor name)   (shield-dmg    :initarg :shield-dmg    :accessor shield-dmg)   (hull-dmg    :initarg :hull-dmg    :accessor hull-dmg)   (ammo-cost    :initarg :ammo-cost    :accessor ammo-cost)))(defclass market ()    ((price-of-petrofuel      :initarg :petrofuel      :accessor price-of-petrofuel      :initform 10)     (price-of-gruel      :initarg :gruel      :accessor price-of-gruel      :initform 5)     (price-of-spice      :initarg :spice      :accessor price-of-spice      :initform 100)     (price-of-ammo      :initarg :ammo      :accessor price-of-ammo      :initform 20)     (price-of-archeotech      :initarg :archeotech      :accessor price-of-archeotech      :initform 2000)))
 |