src/entities/food.lisp @ bf74ba7cd2b7

Add menu, dropping
author Steve Losh <steve@stevelosh.com>
date Sun, 08 Jan 2017 11:31:17 +0000
parents f377744f622c
children 8fc9b2aad98b
(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::+black-yellow+
    :holdable/description (random-food-description)
    :food/energy (random-food-energy)))