anchor.diff:  (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 
  +    (let ((increment (if (< (* (floor firepower 2) 0.1495d0) 1) 0.1495d0
  +		           (/ pi (/ firepower 2)))))
  +      (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))
  +                                            (* i increment))
                                          (+ (x size) (y size))
                                          0.25d0))
                            :depth -1
  -                         :veloc (+ veloc (rot bullet-veloc (* i 0.1495d0 pi)))
  +                         :veloc (+ veloc (rot bullet-veloc (* i increment)))
                            :image bullet-image
  -                         :timer bullet-timer))))
  +                         :timer bullet-timer)))))
   
   (defmethod missile ((thopter thopter) event)
     (with-slots (parent offset size veloc missiles) thopter
  
positive.code:   (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))
        (explosion     (decf health)))
      (when (and parent (<= health 0))
        (let ((explosion (make-instance 'anim :name :explosion)))
  
negative.code:   (with-slots (parent offset size depth veloc health) missile
      (typecase (event-hit event)
        (bullet    (decf health))
        (missile   (setf health 0))
        (thopter   (setf health 0))
        (explosion (decf health)))
      (when (and parent (<= health 0))
        (let ((explosion (make-instance 'anim :name :explosion)))
  