                                 [:span.influence
                                  {:class (faction-label card)
                                   :dangerouslySetInnerHTML
-                                  #js {:__html (str (if-not infaction (apply str (for [_ (range influence)] "&#9679;")))
-                                                    (if wanted (apply str (for [_ (range (:qty line))] "&#9675;"))))}}]))])
+                                  #js {:__html (str (if-not infaction (influence-dots influence))
+                                                    (if wanted (restricted-dots (:qty line))))}}]))])
                          (:card line))])])]]))]
 
           [:div.deckedit

    (some #(when (and (not= (:setname %) "Alternates") (= (:title %) (:title card))) %)
          (:cards @app-state))
    card))

(defn octgn-link [owner]
  (let [deck (om/get-state owner :deck)

                    (when (< count min-count)
                      [:span.invalid (str "(minimum " min-count ")")])])
                 (let [inf (influence-count deck)
                       limit (deck-inf-limit deck)
                       mwl (mostwanted-count deck)]
                   [:div "Influence: "
                    [:span {:class (when (> inf limit) "invalid")} inf]
                    "/" (if (= INFINITY limit) "∞" limit)
                    (if (< 0 (+ inf mwl))
                      (list " " [:span.influence
                       {:class (name :neutral)
                        :dangerouslySetInnerHTML
                        #js {:__html (str (influence-dots inf) (restricted-dots mwl))}}]))])
                 (when (= (:side identity) "Corp")
                   (let [min-point (min-agenda-points deck)
                         points (agenda-points deck)]
