src/entities/food.lisp @ 86c388644ac5

Collapse files
author Steve Losh <steve@stevelosh.com>
date Sat, 07 Jan 2017 19:14:51 +0000
parents 9dbe31fef037
children f377744f622c
(in-package :ap.entities)

(defparameter *foods*
  (concatenate 'vector
               (read-file-into-form "data/vegetables.lisp")
               (read-file-into-form "data/meat.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 *foods*)))

(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)))