anchor.diff:      (detach (parent bullet) bullet)))
   
   (defmethod update ((enemy enemy) event)
  -  (with-slots (parent (xy offset) (v veloc) (s size) accel health) enemy
  +  (with-slots (parent (xy offset) (v veloc) (s size) accel health difficulty)
  +      enemy
       (labels
           ((circular (r)
              (+ ;; circular motion
  
positive.code:                  (typep (event-hit event) 'thopter)))
      (detach (parent upgrade) upgrade)))
  
  (defun spawn-wave (n)
    (let* ((root (game-root *game*)) (size (size root)) (center (/ size 2)))
      (loop for i from (* (1+ (floor n -2)) 64) to (* (floor n 2) 64) by 64
         do (let* ((xy (complex (+ (/ (x size) 2) i) (* (y size) -0.05d0)))
                   (v (* 2 (rot (unit (- center xy)) (/ pi 2)))))
              (make-instance 'enemy :parent root :offset xy :veloc v :depth 1
                             :image (make-instance 'image :name :enemy)
                             :health 4 :firepower (ceiling n 5) :timer 20)))))
  
  (defmethod game-init ((game thopter-game))
    (let* ((size #c(800 600))
  
negative.code: (defmethod alarm ((wave wave-controller) event)
    (with-slots (level) wave
      (incf level)
      (spawn-wave level (+ 2 level))))
  
  ;; For interactive use:
  (defun thopter ()
  