src/entities/jewelery.lisp @ 7498a056c40c

Add points
author Steve Losh <steve@stevelosh.com>
date Sun, 08 Jan 2017 13:29:01 +0000
parents f377744f622c
children (none)
(in-package :ap.entities)

(defparameter *gemstones*
  (read-file-into-form "data/gemstones.lisp"))

(defparameter *jewelery*
  #("earring"
    "ring"
    "bracelet"
    "necklace"
    "ankle bracelet"
    "barette"
    "pin"
    "brooch"
    "hat pin"
    "cuff link"
    "locket"
    "medallion"))

(define-entity jewelery (visible coords holdable worth))

(defun random-jewelery-description ()
  (destructuring-bind (article gem)
      (random-elt *gemstones*)
    (format nil "~A ~A ~A" article gem (random-elt *jewelery*))))

(defun make-jewelery (x y)
  (create-entity 'jewelery
    :coords/x x
    :coords/y y
    :visible/glyph "*"
    :visible/color ap::+black-pink+
    :worth/points (random-range 100 1000)
    :holdable/description (random-jewelery-description)))