                                         [chr fg :brown]
                                         ["\u2225" :black :brown]))
                                   :else
-                                    out-char)]
+                                    out-char)
+                shaded-out-char (if (= (get cell :discovered) current-time)
+                                  (update-in shaded-out-char [1] (fn [c] (darken-rgb c (min 1 (/ 2 (max 1 (distance-from-player state (xy->pos x y))))))))
+                                  shaded-out-char)]
               (apply put-string screen x y shaded-out-char)))))
     ;; draw character
     ;(debug (-> state :world :player))

  (let [screen         (state :screen)
        [columns rows] (get-size screen)
        place          (current-place state)
        current-time   (get-in state [:world :time])]
    ;(debug "begin-render")
    ;(clear (state :screen))
    (trace "rendering place" (current-place state))

  ([rgb]
  (vec (map #(/ % 3) rgb)))
  ([rgb d]
  (vec (map #(limit-color (* % d)) rgb))))

(defn color->rgb
  [color]
