anchor.diff:     (ammo-refill-rate :initform 1)
      (ammo-deplete-rate :initform 1)))
   
  -(defclass thopter (sprite collidable shooter direction-mixin)
  +(defclass thopter (mobile sprite collidable direction-mixin)
     ((speed :initform 8)
      (timer :initform nil)
      (primary-weapon
  
positive.code:     (let* ((shoot-decision (mt19937:random 1d0)))
        (if (and (> (ammo secondary-weapon) 0) (< shoot-decision missile-chance))
          (missile enemy event)
          (shoot enemy (primary-weapon enemy) event)))))
  
  (defmethod collide ((enemy enemy) event)
    (with-slots (parent offset size depth veloc health primary-weapon 
  
negative.code:   (when (not (firepower weapon))
      (setf (ammo weapon) (* (ammo weapon) (ammo-deplete-rate weapon)))))
  
  (defmethod shoot ((weapon weapon) event)
    (with-slots ((shooter parent) projectile-class projectile-image 
                 projectile-n-directions projectile-veloc projectile-timer 
                 fire-sound ammo ammo-deplete-rate) weapon
      (with-slots (parent offset size veloc) shooter
        (when (> ammo 0)
          (let* ((firepower (if (firepower weapon)
                                (firepower weapon)
  