anchor.diff:     (ammo
       :accessor ammo
       :initarg :ammo
  -    :initform 1)))
  +    :initform 1)
  +   (ammo-refill-rate
  +    :accessor ammo-refill-rate
  +    :initarg :ammo-refill-rate
  +    :initform 200)
  +   (ammo-deplete-rate
  +    :accessor ammo-deplete-rate
  +    :initarg :ammo-deplete-rate
  +    :initform 200)))
   
   (defclass thopter (sprite mobile collidable shooter alarm direction-mixin)
     ((speed :initform 4)
  
positive.code:         (shoot enemy event)))))
  
  (defmethod collide ((enemy enemy) event)
    (with-slots (parent offset size depth veloc health ammo missiles) enemy
      (typecase (event-hit event)
        (bullet      (decf health))
        (missile     (decf health))
        (thopter     (decf health 8))
        (explosion   (decf health))
        (health-pack (incf health 2))
        (upgrade-bullet (incf ammo 100))
        (upgrade-missile (incf missiles))
        (upgrade-speed (setf (speed-boost enemy) 240)))
      (when (and parent (<= health 0))
  
negative.code:           (setf accel 0)))))
  
  (defmethod collide ((thopter thopter) event)
    (with-slots (parent offset depth veloc health ammo ammo-refill-rate 
                        missiles) thopter
      (typecase (event-hit event)
        (enemy-bullet  (decf health))
        (enemy-missile (decf health))
        (enemy         (decf health 8))
        (explosion     (decf health))
        (health-pack   (incf health 2))
        (upgrade-bullet (incf ammo ammo-refill-rate))
        (upgrade-missile (incf missiles))
        (upgrade-speed (progn
                        (when (<= (speed-boost thopter) 0)
  