anchor.diff:      :initarg :firepower
       :initform 1)))
   
  -(defclass thopter (sprite mobile collidable shooter)
  +(defclass thopter (sprite mobile collidable shooter alarm)
     ((bullet-class :initform 'bullet)
      (bullet-image :initform (make-instance 'image :name :bullet))
      (bullet-veloc :initform #c(0 -8))
      (bullet-timer :initform 60)
  +   (timer :initform nil)
      (health
       :accessor health
       :initarg :health
  
positive.code:   (bind-key-up   thopter :sdl-key-left  #'stop-west)
    (bind-key-down thopter :sdl-key-right #'move-east)
    (bind-key-up   thopter :sdl-key-right #'stop-east)
    (bind-key-down thopter :sdl-key-space #'shoot)
    (bind-key-down thopter :sdl-key-lctrl #'missile)
    (bind-key-down thopter :sdl-key-lalt  #'missile)
    ;; TODO: add reset function
  
negative.code: 
  (defun nearest-object (component type radius)
    (find-nearest-object component radius :test #'(lambda (x) (typep x type))))
  
  (defmethod start-shoot ((thopter thopter) event)
    (shoot thopter event)
    (setf (timer thopter) 4))
  
  (defmethod stop-shoot ((thopter thopter) event)
    (setf (timer thopter) nil))
  
  (defmethod alarm ((thopter thopter) event)
    (shoot thopter event)
    (setf (timer thopter) 4))
  
  (defmethod shoot ((shooter shooter) event)
    (with-slots (parent offset size veloc firepower
  