               (int \D) {:rotation turn-speed}
               (int \W) {:acceleration 1}
               (int \K) {:shoot true}
+              (int \R) {:reset true}
               })
 
 ; END: constants

; Actions
; ----------------------------------------------------------------------

(defn shoot [{:keys [shooting? shots millis-since-last-shot] :as ship}]
  #_(prn "shoot" position size direction speed)
  (let [millis-since-last-shot (+ turn-millis millis-since-last-shot)

      (ref-set asteroids asteroids*))))

(defn do-action!
  ([ship {:keys [rotation acceleration shoot reset] :as action} modifier]
   (when rotation (dosync (alter ship turn (* modifier rotation))))
   (when acceleration (dosync (alter ship accelerate (* modifier acceleration))))
   (when shoot (dosync (alter ship toggle-shooting (> modifier 0))))
   (when reset (dosync (alter ship reset-ship)))
    #_(prn "update" dir modifier "speed:" (:rotation-speed @ship) "acceleration:" (:acceleration @ship)))
  ([ship action]
   (do-action! ship action 1))
