anchor.diff:    (let* ((root (game-root *game*))
            (root-size (size root)))
       (loop for i from (1+ (floor count -2)) to (floor count 2)
  -       do (with-slots (offset size veloc)
  +       do (let ((primary-weapon (make-instance 
  +                          'weapon :projectile-class 'enemy-bullet
  +                          :projectile-image :enemy-bullet
  +                          :projectile-n-directions 16
  +                          :projectile-veloc #c (0 +12)
  +                          :projectile-timer 60
  +                          :ammo ammo))
  +                 (secondary-weapon (make-instance 
  +                          'weapon :projectile-class 'enemy-missile
  +                          :projectile-image :enemy-missile
  +                          :projectile-n-directions 16
  +                          :projectile-veloc #c (0 +4)
  +                          :projectile-timer 120
  +                          :firepower 1
  +                          :ammo missiles)))
  +            (with-slots (offset size veloc)
                 (make-instance enemy-type :parent root :depth 1
  -                             :health health
  -                             :ammo ammo
  -                             :missiles missiles
  -                             :missile-chance missile-chance
  -                             :difficulty (floor wave 5))
  +                :health health
  +                :missile-chance missile-chance
  +                :difficulty (floor wave 5)
  +                :primary-weapon primary-weapon
  +                :secondary-weapon secondary-weapon)
               (setf offset
  -                  (complex (+ (/ (x root-size) 2) (* i (x size) 2))
  -                           (* (y size) -2)))))))
  +              (complex (+ (/ (x root-size) 2) (* i (x size) 2))
  +                (* (y size) -2))))))))
   
   (defmethod alarm ((wave wave-controller) event)
     (with-slots (level) wave
  
positive.code:           (setf accel 0)))))
  
  (defmethod collide ((thopter thopter) event)
    (with-slots (parent offset depth veloc health ammo ammo-refill-rate 
                        missiles speed-boost) 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
                         (setf speed-boost
                              (min (+ speed-boost 240) (max-speed-timer thopter)))
                         (change-veloc thopter event))))
      (when (and parent (<= health 0))
        (make-instance 'explosion :parent parent
                       :offset offset :depth depth :veloc (/ veloc 2)
                       :image (make-anim :explosion)
                       :timer 28)
        (detach parent thopter)
        (decf (players-left (players-left (game-screen *game*)))))))
  
  (defmethod update :after ((thopter thopter) event)
    (with-slots (parent offset size veloc) thopter
  
negative.code:   (mod (floor (+ (/ (* (theta x) n) (* 2 pi)) 0.5d0)) n))
  
  (defmethod start-shoot ((thopter thopter) event)
    (shoot thopter (primary-weapon thopter) event)
    (setf (timer thopter) 4))
  
  (defmethod stop-shoot ((thopter thopter) event)
    (setf (timer thopter) nil))
  
  (defmethod alarm ((thopter thopter) event)
    (shoot thopter (primary-weapon thopter) event)
    (setf (timer thopter) 4))
  
  (defmethod toggle-boost ((thopter thopter) event)
  