6e92c8d8ddac entry-06
Add death messages.
author | Steve Losh <steve@stevelosh.com> |
---|---|
date | Wed, 18 Jul 2012 23:15:50 -0400 |
parents | f57db9d7ccff |
children | 67ba4c7c0a90 |
branches/tags | entry-06 |
files | src/caves/entities/aspects/destructible.clj |
Changes
--- a/src/caves/entities/aspects/destructible.clj Wed Jul 18 17:42:43 2012 -0400 +++ b/src/caves/entities/aspects/destructible.clj Wed Jul 18 23:15:50 2012 -0400 @@ -1,12 +1,17 @@ (ns caves.entities.aspects.destructible - (:use [caves.entities.core :only [defaspect]])) + (:use [caves.entities.core :only [defaspect]] + [caves.entities.aspects.receiver :only [send-message-nearby]])) (defaspect Destructible (take-damage [{:keys [id] :as this} damage world] (let [damaged-this (update-in this [:hp] - damage)] (if-not (pos? (:hp damaged-this)) - (update-in world [:entities] dissoc id) + (let [world (update-in world [:entities] dissoc id) + world (send-message-nearby (:location this) + (format "The %s dies." (:name this)) + world)] + world) (assoc-in world [:entities id] damaged-this)))) (defense-value [this world] (get this :defense 0)))