                p (assoc p :current-strength nil))))
     (system-msg state side "continues the run")))
 
+
 (defn play-ability [state side {:keys [card ability targets] :as args}]
+      (system-msg state side (str "play ability"))
   (let [cdef (card-def card)
         abilities (:abilities cdef)
         ab (if (= ability (count abilities))

    (when (or (has? card :subtype "Virus") (= (:counter-type card) "Virus"))
      (set-prop state :runner card :counter 0)))
  (trigger-event state side :purge))

(defn play-instant
  ([state side card] (play-instant state side card nil))

               (or (not req) (req state side card targets)))
      (if choices
        (if (map? choices)
          (show-select state (or player side) card ability priority)
          (let [cs (if-not (fn? choices)
                     choices
                     (let [cards (choices state side card targets)]
                             (if not-distinct
                               cards (distinct-by :title cards))))]
            (prompt! state (or player side) card prompt cs (dissoc ability :choices) priority)))
        (when (and (or (not counter-cost) (<= counter-cost counter))
                   (or (not advance-counter-cost) (<= advance-counter-cost advance-counter))
                   (apply pay (concat [state side card] cost)))
