src/entities/clothing.lisp @ b1532457fd8f
default tip
Update to build
author |
Steve Losh <steve@stevelosh.com> |
date |
Sun, 28 Aug 2022 12:12:14 -0400 |
parents |
1a47adb89b93 |
children |
(none) |
(in-package :ap.entities)
(defparameter *fabrics*
(read-file-into-form "data/fabrics.lisp"))
(defparameter *singular-clothes*
#("coat"
"shirt"
"skirt"
"dress"
"belt"
"tie"
"bow tie"
"sock"
"bra"
"scarf"
"hat"
"sweatshirt"
"jacket"
"vest"
"blouse"
"sweater"
"dress shirt"))
(defparameter *plural-clothes*
#("pants"
"slacks"
"socks"
"briefs"
"pajamas"
"gloves"
"long johns"
"tights"
"shorts"
"boxers"
"panties"))
(define-entity clothing (visible coords holdable worth))
(defun random-clothing-description ()
(destructuring-bind (article fabric)
(random-elt *fabrics*)
(if (randomp 0.7)
(format nil "~A ~A ~A"
article
fabric
(random-elt *singular-clothes*))
(format nil "a pair of ~A ~A"
fabric
(random-elt *plural-clothes*)))))
(defun make-clothing (x y)
(create-entity 'clothing
:coords/x x
:coords/y y
:visible/glyph "&"
:visible/color ap::+black-white+
:worth/points (random-range 100 200)
:holdable/description (random-clothing-description)))