 
    "Switchblade"
    (auto-icebreaker ["Sentry"]
-                    {:abilities [{:cost [:credit 1] :msg "break any number of sentry subroutines"}
+                    {:abilities [(break-sub 1 0 "sentry")
                                  (strength-pump 1 7)]})
 
    "Torch"

                                 (strength-pump 2 3)]})

   "GS Sherman M3"
   (cloud-icebreaker
     (auto-icebreaker ["Barrier"]
                      {:abilities [{:cost [:credit 2]
                                    :msg "break any number of barrier subroutines"}
                                   (strength-pump 2 3)]}))

   "GS Shrike M2"
   (cloud-icebreaker
     (auto-icebreaker ["Sentry"]
                      {:abilities [{:cost [:credit 2]
                                    :msg "break any number of sentry subroutines"}
                                   (strength-pump 2 3)]}))

   "GS Striker M1"
   (cloud-icebreaker
     (auto-icebreaker ["Code Gate"]
                      {:abilities [{:cost [:credit 2]
                                    :msg "break any number of code gate subroutines"}
                                   (strength-pump 2 3)]}))

   "Inti"
   (auto-icebreaker ["Barrier"]

    :pump strength}))

(defn- break-sub
  "Creates a break subroutine ability.
  If num = 0 then any number of subs are broken."
  ([cost num] (break-sub cost num nil))
  ([cost num subtype]
   {:msg (str "break " (when (> num 1) "up to ")
              (if (pos? num) num "any number of")
              (when subtype (str " " subtype))
              " subroutine" (when-not (= num 1) "s"))
    :cost [:credit cost]}))

;;; Breaker sets
