               blue-trampete (get-in @app [:settings :blue-trampete])
               settings (get-in @app [:settings])
               new-hero (-> original-hero
-                           grav
-                           ((partial vertical-block original-hero))
+                           ;;((partial vertical-block original-hero))
                            move-left
                            move-right
                            ;;((partial bouncing bounce))
                            ((partial on-blue-trampete? blue-trampete))
                            ((partial on-red-trampete? red-trampete))
-                           spike-damage
-                           ((partial time-up? original-hero app))
-                           ((partial home? original-hero))
-                           ((partial game-over? original-hero))
+                           on-ground?
+                           grav
+                           ;;spike-damage
+                           ;;((partial time-up? original-hero app))
+                           ;;((partial home? original-hero))
+                           ((partial blocked? original-hero))
+                           ;;((partial game-over? original-hero))
                            )]
-
           (om/transact! app [:hero] (fn [hero] (merge hero new-hero)))
           )
         (recur)

    ))

(defn logger [key hero]
  ;;(console-log {key (get-in hero [:position :left])})
  hero
  )


     ]
    ))

(defn on-block? [position block-no]
  (let [[left right] (hero-feet-coords position)
        app @app-state
        below-left (update-in left [0] + 1)
        below-right (update-in right [0] + 1)]
    (some #{[block-no]} [(get-in app (into [:grid] below-left)) (get-in app (into [:grid] below-right))]
          )))

(defn in-block? [position block-no]
  (let [[left right] (hero-feet-coords position)
        app @app-state]
    (some #{[block-no]} [(get-in app (into [:grid] left)) (get-in app (into [:grid] right))]
          )))

(defn on-supporting-block? [position]
  (on-block? position 1))

(defn moving? [hero]
  (not= 0 (hero :dx))
