src/caves/entities/bunny.clj @ f57db9d7ccff
Entity names.
author |
Steve Losh <steve@stevelosh.com> |
date |
Wed, 18 Jul 2012 17:42:43 -0400 |
parents |
811f328099c6 |
children |
1a3a4f8d5d85 |
(ns caves.entities.bunny
(:use [caves.entities.core :only [Entity get-id add-aspect]]
[caves.entities.aspects.destructible :only [Destructible]]
[caves.entities.aspects.mobile :only [Mobile move]]
[caves.world :only [find-empty-neighbor]]))
(defrecord Bunny [id glyph color location hp max-hp name])
(defn make-bunny [location]
(map->Bunny {:id (get-id)
:name "bunny"
:glyph "v"
:color :yellow
:location location
:hp 4
:max-hp 4}))
(extend-type Bunny Entity
(tick [this world]
(if-let [target (find-empty-neighbor world (:location this))]
(move this target world)
world)))
(add-aspect Bunny Mobile)
(add-aspect Bunny Destructible)