anchor.diff:    (with-slots (parent offset size depth veloc health) missile
       (typecase (event-hit event)
         (enemy-bullet  (decf health))
  -      (enemy-missile (decf health))
  -      (enemy         (decf health 8))
  +      (enemy-missile (setf health 0))
  +      (enemy         (setf health 0))
         (explosion     (decf health)))
       (when (and parent (<= health 0))
         (let ((explosion (make-instance 'anim :name :explosion)))
  
positive.code: (defmethod shoot ((shooter shooter) event)
    (with-slots (parent offset size veloc firepower
                 bullet-class bullet-image bullet-veloc bullet-timer) shooter
      (loop for i from (+ (ceiling firepower -2) (if (evenp firepower) 1/2 0))
         to (floor firepower 2)
         do (make-instance bullet-class :parent parent 
                           :offset (+ offset (/ size 2)
                                      (* (rot (unit bullet-veloc)
                                              (* i 0.1495d0 pi))
                                         (+ (x size) (y size))
                                         0.25d0))
                           :depth -1
                           :veloc (+ veloc (rot bullet-veloc (* i 0.1495d0 pi)))
                           :image bullet-image
                           :timer bullet-timer))))
  
  (defmethod missile ((thopter thopter) event)
    (with-slots (parent offset size veloc missiles) thopter
  
negative.code:   ((health
      :accessor health
      :initarg :health
      :initform 8)
     (timer :initform 120)))
  (defclass explosion (sprite mobile collidable alarm)
    ((drop-class
  