anchor.diff:  
   (defclass tile (sprite mobile transient)
     ())
  -
  -(defclass shooter (mobile) ())
   
   (defclass weapon (alarm)
     ((timer :initform nil)
  
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:                                   :projectile-class 'enemy-bullet
                                    :projectile-image :enemy-bullet
                                    :projectile-veloc #c(0 +12)
                                    :ammo ammo
                                    :fire-sound nil))
                   (secondary-weapon (make-instance
                                      'missile-weapon
                                      :projectile-class 'enemy-missile
                                      :projectile-image :enemy-missile
                                      :projectile-veloc #c(0 +4)
                                      :ammo missiles))
                   (enemy (make-instance enemy-type
                                         :parent root
                                         :depth 1
  