   [state x y cell]
   ;; determine trap advancement mechanics
   (log/info "x" x "y" y "cell" cell)
+  ;; TODO: only trigger once
   (let [{{min-x :min-x
           min-y :min-y
           max-x :max-x


(defn update-traps
  [state]
  (reduce update-trap state (current-place-traps state))) 


      state)))

(defn update-crushing-wall-trap
  [state idx]
  (let [place-id (rw/current-place-id state)]
    (update-in state
               [:world :places place-id :traps idx :locations]
               (comp rest vec))))

(defn update-trap
  [state [idx trap]]
  (log/info "updating trap" [idx trap])
  (case (get trap :type)
    :crushing-wall
      (update-crushing-wall-trap state idx)
    state))

(defn current-place-traps
