                     :cx x
                     :cy y
                     :r (/ TILE-SIZE 2)}]])))))
+
+(defmulti action-view :type)
+(defmethod action-view "laser"
+  [{:keys [start stop]}]
+  (laser-shot start stop))
+(defmethod action-view "droid"
+  [action]
+  (html [:g]))
+(defmethod action-view "mortar"
+  [action]
+  (html [:g]))
+(defmethod action-view :default [_]
+  (html [:g]))
 
 (defn world-view [state owner]
   (reify

                    :position [12 0]}]
         :message "gamestate"}))


(defmulti handle-action :type)

(defmethod handle-action :direction ;; laser
  [action]
  )

(defmethod handle-action :sequence    ;; droid
  [action])

(defmethod handle-action :coordinates ;; mortar
  [action])

(defmethod handle-action :default [_]
  ;; Do nothing.

        (hexagon {:x x :y y :size size :class (tile-type label)})
        [:text {:x x :y y}
         label]]))))

(defn damage-view [{:keys [x y text]} owner]
  (reify
