                                                 (filter #(not (has? % :subtype "Virtual"))
                                                         (get-in runner [:rig :resource]))
                                                 (:hand runner))]
-                                (trash state side c))
+                                (trash state side c {:cause :ability-cost}))
                               (lose state side :credit :all :tag :all)
                               (damage-prevent state side :net Integer/MAX_VALUE)
                               (damage-prevent state side :meat Integer/MAX_VALUE)


   "Deus X"
   {:prevent {:damage [:net]}
    :abilities [{:msg "break any number of AP subroutines" :effect (effect (trash card))}
                {:msg "prevent any amount of net damage"
                 :effect (effect (trash card) (damage-prevent :net Integer/MAX_VALUE))}]}

   "Eater"
   {:abilities [{:cost [:credit 1] :msg "break ICE subroutine and access 0 cards this run"

                 :prompt "Choose an event to play" :msg (msg "play " (:title target))
                 :choices (req (filter #(and (has? % :type "Event")
                                             (<= (:cost %) (:credit runner))) (:discard runner)))
                 :effect (effect (trash card {:cause :ability-cost}) (play-instant target))}]}

   "SanSan City Grid"
   {:effect (req (when-let [agenda (some #(when (= (:type %) "Agenda") %) (:content (card->server state card)))]
