               (and (sequential? obj1) (sequential? obj2)) :seq-seq)))
 
 (defmethod check-collision :map-map [obj1 obj2]
-  (if (and (:collidable+? obj1)
+  (if (and (:collidable? obj1)
            (:collidable? obj2)
            (collide? obj1 obj2))
-    [(assoc obj1 :hit? true) (assoc obj2 :crit-hit? true)]
-    (if (and (:collidable? obj1)
-             (:collidable? obj2)
-             (collide? obj1 obj2))
-      [(assoc obj1 :hit? true) (assoc obj2 :hit? true)]
-      [obj1 obj2])))
+    [(damage obj1 (:collidable? obj2)) (damage obj2 (:collidable? obj1))]
+    [obj1 obj2]))
 
 (defmethod check-collision :map-seq [obj1 coll]
   (loop [obj1 obj1, coll coll, coll-result []]

    :direction      0
    :rotation-speed 0

    :collidable?    true
    }))

(defn create-shot

    :direction      dir
    :rotation-speed 0

    :collidable?   missile-damage
    })
  ([{:keys [position size direction speed] :as ship}]
   (let [dir-vec (m/rotate-vec direction [0 1])
