(auto-icebreaker["All"]{:abilities[{:cost[:credit1]:req(req(=(:positionrun)(countrun-ices))):msg"break 1 subroutine on the outermost ICE protecting this server"}(strength-pump11)]})
(auto-icebreaker["Barrier"]{:abilities[(break-sub21"barrier")(strength-pump11){:label"Add barrier to HQ":req(req(and(has-subtype?current-ice"Barrier")(rezzed?current-ice))):msg(msg"add "(:titlecurrent-ice)" to HQ after breaking all its subroutines"):effect(req(let[ccurrent-ice](movestate:corpc:handnil)(continuestatesidenil)))}]})
{:prompt"How many power counters?":choices:credit:msg(msg"add "target" power counters"):effect(effect(add-countercard:powertarget)):abilities[(break-sub11)]:strength-bonus(req(get-incard[:counter:power]0)):events{:counter-added{:req(req(=:cidtarget)(:cidcard)):effect(effect(update-breaker-strengthcard))}}}
(let[host-click{:cost[:click1]:label"Install a non-AI icebreaker on Baba Yaga":prompt"Choose a non-AI icebreaker in your Grip to install on Baba Yaga":choices{:req#(and(has-subtype?%"Icebreaker")(not(has-subtype?%"AI"))(in-hand?%))}:effect(effect(runner-installtarget{:host-cardcard}))}host-free{:label"Host an installed non-AI icebreaker on Baba Yaga":prompt"Choose an installed non-AI icebreaker to host on Baba Yaga":choices{:req#(and(has-subtype?%"Icebreaker")(not(has-subtype?%"AI"))(installed?%))}:effect(req(when(hoststatesidecardtarget)(gain:memory(:memoryunitstarget))))}gain-abis(req(let[new-abis(mapcat(fn[c](map-indexed#(assoc%2:dynamic:copy,:source(:titlec):index%1,:label(make-label%2))(filter#(not=:manual-state(:ability-type%))(:abilities(card-defc)))))(:hostedcard))](update!state:runner(assoccard:abilities(concatnew-abis[host-clickhost-free])))))]{:abilities[host-clickhost-free]:hosted-gainedgain-abis:hosted-lostgain-abis})
{:implementation"Stealth credit restriction not enforced":abilities[(break-sub11"barrier"){:cost[:credit1]:msg"break up to 3 barrier subroutines (using a stealth [Credits])"}(strength-pump21){:cost[:credit2]:msg"add 2 strength (using at least 1 stealth [Credits])":effect(effect(pumpcard2)):pump2}]}
(auto-icebreaker["Code Gate"]{:prompt"Choose a server where this copy of Cyber-Cypher can be used:":msg(msg"target "target):choices(reqservers):effect(effect(update!(assoccard:server-targettarget))):leave-play(effect(update!(dissoccard:server-target))):abilities[(break-sub11"code gate")(strength-pump11)]})
{:prevent{:damage[:net]}:abilities[{:msg"break any number of AP subroutines":effect(effect(trashcard{:cause:ability-cost}))}{:msg"prevent any amount of net damage":effect(effect(trashcard{:cause:ability-cost})(damage-prevent:netInteger/MAX_VALUE))}]}
(auto-icebreaker["All"]{:abilities[{:cost[:credit1]:msg"break ICE subroutine and access 0 cards this run":effect(effect(max-access0))}(strength-pump11)]})
{:abilities[{:label"Trash 1 installed card to break 1 \"End the run.\" subroutine":prompt"Choose a card to trash for Endless Hunger":choices{:req#(and(=(:side%)"Runner")(:installed%))}:msg(msg"trash "(:titletarget)" and break 1 \"[Subroutine] End the run.\" subroutine"):effect(effect(trashtarget{:unpreventabletrue}))}]}
{:abilities[{:label"Trash 1 card from Grip to break 1 subroutine":prompt"Choose a card from your grip to trash for Faust":choices{:reqin-hand?}:msg(msg"trash "(:titletarget)" and break 1 subroutine"):effect(effect(trashtarget{:unpreventabletrue}))}{:label"Trash 1 card from Grip to add 2 strength":prompt"Choose a card from your grip to trash for Faust":choices{:reqin-hand?}:msg(msg"trash "(:titletarget)" and add 2 strength"):effect(effect(trashtarget{:unpreventabletrue})(pumpcard2))}]}
{:implementation"Stealth credit restriction not enforced":abilities[(break-sub11"sentry"){:label(str"X [Credits]: +X strength for the remainder of the run (using at least 1 stealth [Credits])"):choices:credit:prompt"How many credits?":effect(effect(pumpcardtarget:all-run)):msg(msg"increase strength by "target" for the remainder of the run")}]}
(auto-icebreaker["Sentry"]{:prompt"Choose a piece of ICE to target for bypassing":choices{:reqice?}:leave-play(req(remove-iconstatesidecard)):effect(req(let[icetargetserv(zone->name(second(:zoneice)))](add-iconstatesidecardice"F""blue")(system-msgstateside(str"chooses "(card-strstateice)" for Femme Fatale's bypass ability")))):abilities[(break-sub11"sentry")(strength-pump21)]})
(auto-icebreaker["Sentry"]{:abilities[(break-sub22"sentry")(strength-pump24){:label"Derez a sentry and return Golden to your Grip":cost[:credit2]:req(req(and(rezzed?current-ice)(has-subtype?current-ice"Sentry"))):msg(msg"derez "(:titlecurrent-ice)" and return Golden to their Grip"):effect(effect(derezcurrent-ice)(movecard:hand))}]})
{:abilities[(break-sub11"code gate"){:cost[:credit2]:msg"add 4 strength (using at least 1 stealth [Credits])":effect(effect(pumpcard4:all-run)):pump4}]}
{:abilities[{:cost[:click1]:label"Host Knight on a piece of ICE":effect(req(let[k(get-cardstatecard)hosted(ice?(:hostk))icepos(ice-indexstate(get-cardstate(:hostk)))](resolve-abilitystateside{:prompt(msg"Host Knight on a piece of ICE"(whenhosted" not before or after the current host ICE")):choices{:req#(ifhosted(and(or(when(=(:zone%)(:zone(:hostk)))(not=1(abs(-(ice-indexstate%)icepos))))(not=(:zone%)(:zone(:hostk))))(ice?%)(installed?%)(not(some(fn[c](has?c:subtype"Caïssa"))(:hosted%))))(and(ice?%)(installed?%)(not(some(fn[c](has?c:subtype"Caïssa"))(:hosted%)))))}:msg(msg"host it on "(card-strstatetarget)):effect(effect(hosttargetcard))}cardnil)))}{:cost[:credit2]:msg"break 1 subroutine on the host ICE"}]}
{:implementation"Adding power counter is manual":abilities[{:label"Place 1 power counter on Nfr":msg"place 1 power counter on it":ability-type:manual-state:effect(effect(add-countercard:power1)(update-breaker-strengthcard))}(break-sub11"barrier")]:strength-bonus(req(get-incard[:counter:power]0))}
(auto-icebreaker["All"]{:abilities[{:cost[:credit1]:req(req(=1(:positionrun))):msg"break 1 subroutine on the innermost ICE protecting this server"}(strength-pump11)]})
(conspiracy"Paperclip""Barrier"[{:label(str"X [Credits]: +X strength, break X subroutines"):choices:credit:prompt"How many credits?":effect(effect(pumpcardtarget)):msg(msg"increase strength by "target" and break "target" barrier subroutine"(when(not=target1)"s"))}])
(auto-icebreaker["Code Gate"]{:abilities[(break-sub11"code gate")(strength-pump33){:label"Derez a code gate and return Peregrine to your Grip":cost[:credit2]:req(req(and(rezzed?current-ice)(has-subtype?current-ice"Code Gate"))):msg(msg"derez "(:titlecurrent-ice)" and return Peregrine to their Grip"):effect(effect(derezcurrent-ice)(movecard:hand))}]})
(auto-icebreaker["Barrier"]{:abilities[(break-sub11"barrier")(strength-pump22){:label"Derez a barrier and return Saker to your Grip":cost[:credit2]:req(req(and(rezzed?current-ice)(has-subtype?current-ice"Barrier"))):msg(msg"derez "(:titlecurrent-ice)" and return Saker to their Grip"):effect(effect(derezcurrent-ice)(movecard:hand))}]})
(auto-icebreaker["Destroyer"]{:abilities[{:label"[Trash]: Break any number of destroyer subroutines":msg"break any number of destroyer subroutines":effect(effect(trashcard{:cause:ability-cost}))}(strength-pump12)]})
{:abilities[(break-sub11"code gate"){:cost[:credit2]:msg"place 1 power counter":effect(effect(add-countercard:power1)(update-breaker-strengthcard))}]:strength-bonus(req(get-incard[:counter:power]0))}
{:implementation"Adding power counter is manual":abilities[{:label"Place 1 power counter on Sūnya":ability-type:manual-state:effect(effect(add-countercard:power1)(system-msg(str"places 1 power counter on Sūnya"))(update-breaker-strengthcard))}(break-sub21"sentry")]:strength-bonus(req(get-incard[:counter:power]0))}
(auto-icebreaker["All"]{:abilities[{:cost[:credit3]:msg"break 1 subroutine on ICE with 0 or less strength"}{:cost[:credit1]:label"Give -1 strength to current ice":req(reqcurrent-ice):msg(msg"give -1 strength to "(:titlecurrent-ice)):effect(effect(update!(update-incard[:wyrm-count](fnilinc0)))(update-ice-strengthcurrent-ice))}(strength-pump11)]:events(let[auto-pump(fn[statesideeidcardtargets]((:effectbreaker-auto-pump)statesideeidcardtargets))wy{:effect(effect(update!(dissoccard:wyrm-count))(auto-pumpeidcardtargets))}]{:pre-ice-strength{:req(req(and(=(:cidtarget)(:cidcurrent-ice))(:wyrm-countcard))):effect(effect(ice-strength-bonus(-(:wyrm-count(get-cardstatecard)))target)(auto-pumpeidcardtargets))}:pass-icewy:run-endswy})})