 
 (def checkpoint-core-size 100)
 (def delay-between-shield-use 10)
+(def min-distance-to-activate-shield 950)
 
 (defn inc-atom [curr-val] (inc curr-val))
 (defn dec-atom [curr-val] (dec curr-val))

  (cond
    ;(>= (Math/abs next-checkpoint-angle) 90) "0"
    (<= next-checkpoint-distance 1000) "40"
    (<= (Math/abs next-checkpoint-angle) 18) "100"
    true (compute-boost-from-angle (Math/abs next-checkpoint-angle))))


    (and (not (= @last-boost-value "SHIELD")) (not (= @last-boost-value "BOOST")) (= @last-shield-usage 0))))

(defn use-shield? [x y opponent-x opponent-y boost-used? game-loop-counter max-shield-usage last-shield-usage last-boost-value]
  (and (= @last-shield-usage 0) (> @game-loop-counter 10) (> @max-shield-usage 0) (< (distance opponent-x opponent-y x y) min-distance-to-activate-shield)))

;;Compute BOOST, SHIELD or boost value between 0 and 100
(defn compute-action [next-checkpoint-x next-checkpoint-y next-checkpoint-distance next-checkpoint-angle x y opponent-x opponent-y boost-used? game-loop-counter max-shield-usage last-shield-usage last-boost-value]
