                 :gt [(.max js/Math (+ rhs time-unit) min-t) Infinity])))))
 
 (defn guard-interval [has ha g]
-  (case (first g)
-    :and (let [intervals (map #(guard-interval has ha %) (rest g))
-               interval (intersect-all intervals)]
-           #_(println "AND" g intervals "->" interval)
-           interval)
-    :or (let [intervals (map #(guard-interval has ha %) (rest g))
-              interval (union-all intervals)]
-          #_(println "OR" g intervals "->" interval)
-          interval)
-    (simple-interval has ha g)))
+  (if (not g)
+    [(:entry-time ha) Infinity]
+    (case (first g)
+      :and (let [intervals (map #(guard-interval has ha %) (rest g))
+                 interval (intersect-all intervals)]
+             #_(println "AND" g intervals "->" interval)
+             interval)
+      :or (let [intervals (map #(guard-interval has ha %) (rest g))
+                interval (union-all intervals)]
+            #_(println "OR" g intervals "->" interval)
+            interval)
+      (simple-interval has ha g))))
 
 (defn transition-interval [has ha transition]
   #_(println "Transition" (:id ha) "et" (:entry-time ha) (:target transition) (:guard transition))

                       [:gt :y (+ oy oh)]])))
                (concat walls others)))))

(defn goomba [id x y speed state others walls]
  (let [others (disj others id)
        fall-speed 16]

                                      :borderRadius    (str (* scale w) "px")
                                      :backgroundColor "brown"
                                      :position        "absolute"
                                      :color           "lightgray"
                                      :left            (str (* scale x) "px")
                                      :bottom          (str (* scale y) "px")}}
                        (str (:id ha) " " (:state ha))]])
