    {collision-type :type}
    {self-type :type
     self-uuid :uuid}]
-
-  (if (= self-type :wombat)
-    (update-in game-state [:game/players self-uuid :player-stats]
-               (fn [stats]
-                 (case collision-type
-                   :wombat (update :stats/wombat-collisions inc)
-                   :zakano (update :stats/zakano-collisions inc)
-                   :steel-barrier (update :stats/steel-barrier-collisions inc)
-                   :wood-barrier (update :stats/wood-barrier-collisions inc)
-                   stats)))
-    game-state))
+  (update-in game-state [:game/players self-uuid :player/stats]
+             (fn [stats]
+               (case collision-type
+                 :wombat (update stats :stats/wombat-collisions inc)
+                 :zakano (update stats :stats/zakano-collisions inc)
+                 :steel-barrier (update stats :stats/steel-barrier-collisions inc)
+                 :wood-barrier (update stats :stats/wood-barrier-collisions inc)
+                 stats))))
+
+(defn- update-collision-death-stats
+  [game-state
+   {victim-type :type
+    victim-uuid :uuid}
+   {collision-type :type}]
+  (update-in game-state [:game/players victim-uuid :player/stats]
+             (fn [stats]
+               (-> stats
+                   (update :stats/deaths inc)
+                   (update (case collision-type
+                             :wombat :stats/deaths-by-wombat-collision
+                             :zakano :stats/deaths-by-zakano-collision
+                             :steel-barrier :stats/deaths-by-steel-barrier-collision
+                             :wood-barrier :stats/deaths-by-wood-barrier-collision)
+                           inc)))))
+
+(defn- update-move-stats
+  [game-state
+   desired-space-contents
+   updated-desired-space
+   decision-maker-contents
+   updated-decision-maker]
+
+  (let [decision-maker-type (:type decision-maker-contents)
+        updated-decision-maker-type (:type updated-decision-maker)
+        desired-space-type (:type desired-space-contents)
+        updated-desired-space-type (:type updated-desired-space)
+        decision-maker-is-wombat (= :wombat decision-maker-type)
+        desired-space-is-wombat (= :wombat desired-space-type)
+        decision-maker-wombat-died (and decision-maker-is-wombat
+                                        (not= updated-decision-maker-type :wombat))
+        victim-wombat-died (and desired-space-is-wombat
+                                (not= updated-desired-space-type :wombat))]
+    (cond-> game-state
+      ;; Update the decision makers collision stats
+      decision-maker-is-wombat
+      (update-collision-stats desired-space-contents
+                              decision-maker-contents)
+
+      ;; Update the reverse if wombat
+      desired-space-is-wombat
+      (update-collision-stats decision-maker-contents
+                              desired-space-contents)
+
+      ;; Update the decision makers death stats
+      decision-maker-wombat-died
+      (update-collision-death-stats decision-maker-contents
+                                    desired-space-contents)
+
+      ;; Update the victims death stats
+      victim-wombat-died
+      (update-collision-death-stats desired-space-contents
+                                    decision-maker-contents))))
 
 (defn- resolve-collision
   [game-state

                                             decision-maker-coords
                                             (au/create-new-contents :open)))
        (cond->
            is-player? (update-player-stats decision-maker-contents
                                            desired-space-contents)))))

(defn- apply-collision-damage
  [contents]

  (let [updated-decision-maker-contents (update-decision-maker-with decision-maker-contents
                                                                    desired-space-contents
                                                                    desired-space-metadata)
        is-player (gu/is-player? decision-maker-contents)
        wombat-died (and is-player
                         (not (gu/is-player? updated-decision-maker-contents)))]
    (-> game-state
        (update-in [:game/frame :frame/arena]
                   #(au/update-cell-contents %
