src/entities/food.lisp @ fa45164eab85

Add random food
author Steve Losh <steve@stevelosh.com>
date Sat, 07 Jan 2017 17:48:08 +0000
parents (none)
children 9dbe31fef037
(in-package :ap.entities)

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


(define-entity food (visible coords holdable)
  (energy :accessor food/energy :initarg :food/energy))

(defun random-food-energy ()
  (random-range 30.0 80.0))

(defun random-food-description ()
  (format nil "a ~A of ~A"
          (random-elt #("can" "tin" "package"))
          (random-elt *vegetables*)))

(defun make-food (x y)
  (create-entity 'food
    :coords/x x
    :coords/y y
    :visible/glyph "%"
    :visible/color ap::+yellow-black+
    :holdable/description (random-food-description)
    :food/energy (random-food-energy)))