                                              (swap! ref assoc-in [:runner :memory] hand-size))))))
     :leave-play #(remove-watch % :ekomind)}
 
+   "Encrypted Portals"
+   {:effect (effect (gain :credit
+                          (reduce (fn [c server]
+                                    (+ c (count (filter (fn [ice] (and (has? ice :subtype "Code Gate")
+                                                                      (:rezzed ice))) (:ices server)))))
+                                  0 (flatten (seq (:servers corp))))))}
+
    "Eve Campaign"
    {:data {:counter 16}
     :events {:corp-turn-begins {:msg "gain 2 [Credits]" :counter-cost 2

   "Box-E"
   {:effect (effect (gain :memory 2 :max-hand-size 2))
    :leave-play (effect (lose :memory 2 :max-hand-size 2))}

   "Breaking News"
   {:effect (effect (gain :runner :tag 2)) :msg "give the Runner 2 tags"

   {:data [:counter 3]
    :abilities [{:counter-cost 1
                 :msg "place 1 advancement token on a piece of ICE that can be advanced"}]}

   "Forked"
   {:prompt "Choose a server" :choices (req servers) :effect (effect (run target))}

   "Frame Job"
   {:additional-cost [:forfeit] :effect (effect (gain :corp :bad-publicity 1))}
