79 lines
3.4 KiB
Common Lisp
79 lines
3.4 KiB
Common Lisp
(defparameter *xeno-greys* nil)
|
|
(defparameter *xeno-reptoids* nil)
|
|
(defparameter *xeno-nordics* nil)
|
|
(defparameter *xeno-artificalint* nil)
|
|
(defparameter *xeno-liquidmetal* nil)
|
|
(defparameter *xeno-monsterous* nil)
|
|
(defparameter *xeno-types* nil)
|
|
(defparameter *humanoid-stances* nil)
|
|
(defparameter *trashbin* nil)
|
|
(defparameter *xeno-count* 0)
|
|
(defstruct xeno-humanoid
|
|
xeno-type random height-min height-max)
|
|
(defstruct xeno-nonhumanoid
|
|
xeno-type random size)
|
|
(defstruct humanoid-stance
|
|
name description stance gait)
|
|
(defstruct humanoid-skin
|
|
name description tone type)
|
|
(defstruct humanoid-eyes
|
|
name description number color type)
|
|
(defstruct communication-type
|
|
name description)
|
|
;; creating base structures for the three main xenotypes
|
|
(defun create-greys-base ()
|
|
(setq *xeno-types* (make-xeno-humanoid))
|
|
(setf (xeno-humanoid-xeno-type *xeno-types*) "Greys")
|
|
(setf (xeno-humanoid-random *xeno-types*) (+ 25 (random 10)))
|
|
(setf (xeno-humanoid-height-min *xeno-types*) (+ 55 (random 20)))
|
|
(setf (xeno-humanoid-height-max *xeno-types*) (+ 75 (random 20))))
|
|
(defun create-reptoids-base ()
|
|
(setq *xeno-types* (make-xeno-humanoid))
|
|
(setf (xeno-humanoid-xeno-type *xeno-types*) "Reptoids")
|
|
(setf (xeno-humanoid-random *xeno-types*) (+ 30 (random 15)))
|
|
(setf (xeno-humanoid-height-min *xeno-types*) (+ 50 (random 20)))
|
|
(setf (xeno-humanoid-height-max *xeno-types*) (+ 80 (random 20))))
|
|
(defun create-nordics-base ()
|
|
(setq *xeno-types* (make-xeno-humanoid))
|
|
(setf (xeno-humanoid-xeno-type *xeno-types*) "Nordics")
|
|
(setf (xeno-humanoid-random *xeno-types*) (+ 10 (random 10)))
|
|
(setf (xeno-humanoid-height-min *xeno-types*) (+ 60 (random 10)))
|
|
(setf (xeno-humanoid-height-max *xeno-types*) (+ 70 (random 15))))
|
|
;; create stance/skin/eyes/communication for humanoid xenos
|
|
(defun create-stance-walking ()
|
|
(setq *trashbin* (make-humanoid-stance))
|
|
(setf (humanoid-stance-name *trashbin*) "Walking")
|
|
(setf (humanoid-stance-description *trashbin*) "Walks in a normal human-like fashion")
|
|
(setf (humanoid-stance-stance *trashbin*) "Stands straight")
|
|
(setf (humanoid-stance-gait *trashbin*) "Normal"))
|
|
(defun create-stance-hunched ()
|
|
(setq *trashbin* (make-humanoid-stance))
|
|
(setf (humanoid-stance-name *trashbin*) "Hunched")
|
|
(setf (humanoid-stance-description *trashbin*) "Moves hunched over")
|
|
(setf (humanoid-stance-stance *trashbin*) "Stands hunched")
|
|
(setf (humanoid-stance-gait *trashbin*) "Slow"))
|
|
(defun create-skin-human ()
|
|
(setq *trashbin* (make-humanoid-skin))
|
|
(setf (humanoid-skin-name *trashbin*) "Human")
|
|
(setf (humanoid-skin-description *trashbin*) "Human-like skin, Pinkish in color and smooth to the touch")
|
|
(setf (humanoid-skin-tone *trashbin*) "White")
|
|
(setf (humanoid-skin-type *trashbin*) "Smooth"))
|
|
(defun create-eyes-humanpair ()
|
|
(setq *trashbin* (make-humanoid-eyes))
|
|
(setf (humanoid-eyes-name *trashbin*) "Human")
|
|
(setf (humanoid-eyes-description *trashbin*) "Human-like eyes with Blue Iris")
|
|
(setf (humanoid-eyes-type *trashbin*) "Human")
|
|
(setf (humanoid-eyes-color *trashbin*) "Blue")
|
|
(setf (humanoid-eyes-number *trashbin*) 2))
|
|
(defun create-greys-xeno ()
|
|
(setq *xeno-count* (random 100))
|
|
(create-greys-base)
|
|
(push *xeno-types* *xeno-greys*)
|
|
(cond
|
|
((>= *xeno-count* 50) (create-stance-walking))
|
|
((< *xeno-count* 50) (create-stance-hunched)))
|
|
(push *trashbin* *xeno-greys*)
|
|
(create-skin-human)
|
|
(push *trashbin* *xeno-greys*)
|
|
(create-eyes-humanpair)
|
|
(push *trashbin* *xeno-greys*)) |