src/entities/food.lisp @ 7498a056c40c
Add points
author |
Steve Losh <steve@stevelosh.com> |
date |
Sun, 08 Jan 2017 13:29:01 +0000 |
parents |
0124edbf5a6f |
children |
903ab2ce309c |
(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 random-food-taste ()
(format nil "It tastes ~A."
(random-elt #("delicious"
"okay"
"wonderful"
"decent"
"musty"
"salty"
"awful"
"depressing"
"like something else"
"faintly of mice"
"better than nothing"
"questionable"
"pretty nice"
"expensive"
"horrifying"
"like an old sock"))))
(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)))