From e1aaa579b4493c6d8d9bab9102a3442eedcce4ce Mon Sep 17 00:00:00 2001 From: e8051 Date: Fri, 7 Jan 2022 15:59:28 -0500 Subject: [PATCH] Update 'XenoPoliticsSim002.lisp' --- XenoPoliticsSim002.lisp | 164 +++++++++++++++++++++++------------------------- 1 file changed, 79 insertions(+), 85 deletions(-) diff --git a/XenoPoliticsSim002.lisp b/XenoPoliticsSim002.lisp index e404c5b..0483cda 100644 --- a/XenoPoliticsSim002.lisp +++ b/XenoPoliticsSim002.lisp @@ -1,85 +1,79 @@ -;; Xeno Report Chances and Roll Variables -;; Grey Variables -(defparameter *xeno-grey-rand* 35) -(defparameter *xeno-grey-roll* 1) -(defparameter *xeno-grey-height-min* 5.0) -(defparameter *xeno-grey-height-max* 7.5) -(defparameter *xeno-grey-height-result* 0.0) -(defparameter *xeno-grey-stance-straight* 90) -(defparameter *xeno-grey-stance-hunched* 100) -(defparameter *xeno-grey-stance-list* (list *xeno-grey-stance-straight* *xeno-grey-stance-hunched*)) -(defparameter *xeno-grey-walk-normal* 10) -(defparameter *xeno-grey-walk-slow* 50) -(defparameter *xeno-grey-walk-fluid* 70) -(defparameter *xeno-grey-walk-floating* 100) -(defparameter *xeno-grey-walk-list* (list *xeno-grey-walk-normal* *xeno-grey-walk-slow* *xeno-grey-walk-fluid* *xeno-grey-walk-floating*)) -(defparameter *xeno-grey-skin-lightgrey* 40) -(defparameter *xeno-grey-skin-darkgrey* 90) -(defparameter *xeno-grey-skin-fleshtone* 100) -(defparameter *xeno-grey-skin-list (list *xeno-grey-skin-lightgrey* *xeno-grey-skin-darkgrey* *xeno-grey-skin-fleshtone*)) -(defparameter *xeno-grey-skintype-sharkskin* 40) -(defparameter *xeno-grey-skintype-smooth* 90) -(defparameter *xeno-grey-skintype-humanlike* 100) -(defparameter *xeno-grey-skintype-list* (list *xeno-grey-skintype-sharkskin* *xeno-grey-skintype-smooth* *xeno-grey-skintype-humanlike*)) -(defparameter *xeno-grey-eyes-ellipticallarge* 90) -(defparameter *xeno-grey-eyes-ellipticalsmall* 95) -(defparameter *xeno-grey-eyes-humanlike* 100) -(defparameter *xeno-grey-eyes-list (list *xeno-grey-eyes-ellipticallarge* *xeno-grey-eyes-ellipticalsmall* *xeno-grey-eyes-ellpitcalhumanlike*)) -;; Reptoid Variables -(defparameter *xeno-reptoid-rand* 80) -(defparameter *xeno-reptoid-roll* 2) -(defparameter *xeno-reptoid-height-min* 6.5) -(defparameter *xeno-reptoid-height-max* 8.5) -(defparameter *xeno-reptoid-height-result* 0.0) -(defparameter *xeno-reptoid-stances* (list :a straight :b slightly-hunched :c hunched :d hands-and-feet)) -(defparameter *xeno-reptoid-walkingpattern* (list :a normal :b rapid)) -;; Nordic Variables -(defparameter *xeno-nordic-rand* 90) -(defparameter *xeno-nordic-roll* 3) -(defparameter *xeno-nordic-height-min* 5.0) -(defparameter *xeno-nordic-height-max* 7.0) -(defparameter *xeno-nordic-height-result* 0.0) -(defparameter *xeno-nordic-stances* (list :a straight)) -(defparameter *xeno-nordic-walkingpattern* (list :a normal :b fluid :c floating)) -(defparameter *xeno-liquidmetal-rand* 93) -(defparameter *xeno-liquidmetal-roll* 4) -(defparameter *xeno-liquidmetal-size-min* 1.0) -(defparameter *xeno-liquidmetal-size-max* 5.0) -(defparameter *xeno-liquidmetal-size-result* 0.0) -(defparameter *xeno-artificalint-rand* 96) -(defparameter *xeno-artificalint-roll* 5) -(defparameter *xeno-artificalint-size-min* 1.0) -(defparameter *xeno-artificalint-size-max* 10.0) -(defparameter *xeno-artificalint-size-result* 0.0) -(defparameter *xeno-monsterous-rand* 100) -(defparameter *xeno-monsterous-roll* 6) -(defparameter *xeno-monsterous-size-min* 6.0) -(defparameter *xeno-monsterous-size-max* 15.0) -(defparameter *xeno-monsterous-size-result* 0.0) -(defparameter *xeno-report-roll* 0) -(defparameter *xeno-report-roll-number* 0) -(defparameter *xeno-report-result* nil) -(defparameter *xeno-report-types* (list *xeno-grey-rand* *xeno-reptoid-rand* *xeno-nordic-rand* *xeno-liquidmetal-rand* *xeno-artificalint-rand* *xeno-monsterous-rand*)) - -(defun xeno-random-type () - (setf *xeno-report-roll* (random 100)) - (dolist (x *xeno-report-types*) (incf *xeno-report-roll-number*) (when (>= x *xeno-report-roll*) (return x)))) -(defun xeno-random-type-var () - (cond ((= *xeno-report-roll-number* 1) (setq *xeno-report-result* 'Grey)) - ((= *xeno-report-roll-number* 2) (setq *xeno-report-result* 'Reptoid)) - ((= *xeno-report-roll-number* 3) (setq *xeno-report-result* 'Nordic)) - ((= *xeno-report-roll-number* 4) (setq *xeno-report-result* 'Liquidmetal)) - ((= *xeno-report-roll-number* 5) (setq *xeno-report-result* 'Artificalint)) - ((= *xeno-report-roll-number* 6) (setq *xeno-report-result* 'Monsterous)))) -(defun xeno-biology-rand-grey () - (setq *xeno-grey-height-result* (+ *xeno-grey-height-min* (random (- *xeno-grey-height-max* *xeno-grey-height-min*))))) -(defun xeno-biology-rand-reptoid () - (setq *xeno-reptoid-height-result* (+ *xeno-reptoid-height-min* (random (- *xeno-grey-height-max* *xeno-grey-height-min*))))) -(defun xeno-biology-rand-nordic () - (setq *xeno-nordic-height-result* (+ *xeno-nordic-height-min* (random (- *xeno-nordic-height-max* *xeno-grey-height-min*))))) -(defun xeno-biology-rand-liquidmetal () - (setq *xeno-liquidmetal-size-result* (+ *xeno-liquidmetal-size-min* (random (- *xeno-liquidmetal-size-max* *xeno-liquidmetal-size-min*))))) -(defun xeno-biology-rand-artificalint () - (setq *xeno-artificalint-size-result* (+ *xeno-artificalint-size-min* (random (- *xeno-artificalint-size-max* *xeno-grey-height-min*))))) -(defun xeno-biology-rand-monsterous () - (setq *xeno-monsterous-size-result* (+ *xeno-monsterous-size-min* (random (- *xeno-monsterous-size-max* *xeno-monsterous-size-min*))))) +(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*)) \ No newline at end of file