   (:require-macros [cljs.core.async.macros :refer (go go-loop)])
   (:require [cljs.core.async :refer (<! chan close! map<)]
             [clojure.string :as str]
+            [clojure.set :as set]
             [clojure.walk :refer [keywordize-keys]]
             [chord.client :as socket :refer (ws-ch)]
             [om.core :as om :include-macros true]

                  (js/Math.sqrt 3)
                  (+ k (- j 2))))])

(defn laser-shot [{:keys [start stop]} owner]
  (html
   (let [[x_1 y_1] (coords-to-pixel start)
         [x_2 y_2] (coords-to-pixel stop)

(defmethod handle-message! "gamestate"
  [gamestate]
  (let [new-state (update-in gamestate [:players]
                             (comp (partial sort-by :name)
                                   (partial map parse-position)))]
    (reset! state new-state)
    (timeout 0)))

