Skip to content

Commit 5e9fe5d

Browse files
authored
Merge pull request #6422 from NoahTheDuke/nb/midnight-sun-spoilers
Week 1 Midnight Sun spoilers
2 parents 6080005 + 65493c9 commit 5e9fe5d

33 files changed

+1814
-24
lines changed

src/clj/game/cards/agendas.clj

+17
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,12 @@
196196
:duration :end-of-run
197197
:value [:trash-from-hand 1]}))}]})
198198

199+
(defcard "Artificial Cryptocrash"
200+
{:on-score
201+
{:async true
202+
:msg "make the Runner lose 7 [Credits]"
203+
:effect (effect (lose-credits :runner eid 7))}})
204+
199205
(defcard "AstroScript Pilot Program"
200206
{:on-score {:effect (effect (add-counter card :agenda 1))
201207
:silent (req true)}
@@ -1057,6 +1063,17 @@
10571063
(do (system-msg state side "does not use Meteor Mining")
10581064
(effect-completed state side eid))))}})
10591065

1066+
(defcard "Midnight-3 Arcology"
1067+
{:on-score {:async true
1068+
:msg "Draw 3 cards and skip their discard step this turn"
1069+
:effect (effect
1070+
(register-floating-effect
1071+
card
1072+
{:type :skip-discard
1073+
:duration :end-of-turn
1074+
:value true})
1075+
(draw :corp eid 3))}})
1076+
10601077
(defcard "NAPD Contract"
10611078
{:steal-cost-bonus (req [:credit 4])
10621079
:advancement-requirement (req (count-bad-pub state))})

src/clj/game/cards/assets.clj

+61
Original file line numberDiff line numberDiff line change
@@ -1794,6 +1794,16 @@
17941794
(effect-completed eid))})
17951795
card nil))}]})
17961796

1797+
(defcard "Refuge Campaign"
1798+
(let [ability {:msg "gain 2 [Credits]"
1799+
:label "Gain 2 [Credits] (start of turn)"
1800+
:once :per-turn
1801+
:async true
1802+
:effect (effect (gain-credits eid 2))}]
1803+
{:derezzed-events [corp-rez-toast]
1804+
:events [(assoc ability :event :corp-turn-begins)]
1805+
:abilities [ability]}))
1806+
17971807
(defcard "Regolith Mining License"
17981808
{:data {:counter {:credit 15}}
17991809
:events [(trash-on-empty :credit)]
@@ -2115,6 +2125,23 @@
21152125
(gain-credits state :corp eid 2)
21162126
(effect-completed state side eid)))}]})
21172127

2128+
(defcard "Svyatogor Excavator"
2129+
(let [ability {:async true
2130+
:label "trash a card to gain 3 [Credits]"
2131+
:once :per-turn
2132+
:req (req (>= (count (all-installed state :corp)) 2))
2133+
:choices {:req (req (and (corp? target)
2134+
(installed? target)
2135+
(not (same-card? target card))))}
2136+
:msg (msg "trash " (:title target) " and gain 3 [Credits]")
2137+
:effect (req (wait-for (trash state side target {:unpreventable true :cause-card card})
2138+
(gain-credits state side eid 3)))}]
2139+
{:flags {:corp-phase-12 (req (>= (count (all-installed state :corp)) 2))}
2140+
:events [(assoc ability
2141+
:event :corp-turn-begins
2142+
:interactive (req true))]
2143+
:abilities [ability]}))
2144+
21182145
(defcard "Synth DNA Modification"
21192146
{:implementation "Manual fire once subroutine is broken"
21202147
:abilities [{:msg "do 1 net damage"
@@ -2260,12 +2287,46 @@
22602287
moved-card nil)))}
22612288
"Swap Toshiyuki Sakai with an agenda or asset from HQ?"))
22622289

2290+
(defcard "Trieste Model Bioroids"
2291+
{:on-rez {:msg (msg "prevent " (card-str state target)
2292+
" from being broken by runner card abilities")
2293+
:choices {:card #(and (ice? %)
2294+
(rezzed? %)
2295+
(has-subtype? % "Bioroid"))}
2296+
:effect (effect (add-icon card target "T" "red")
2297+
(update! (assoc-in (get-card state card) [:special :trieste-target] target)))}
2298+
:leave-play (effect (remove-icon card))
2299+
:constant-effects [{:type :prevent-paid-ability
2300+
:req (req
2301+
(let [[break-card break-ability] targets]
2302+
(and
2303+
(same-card? current-ice (get-in card [:special :trieste-target]))
2304+
(runner? break-card)
2305+
(or (not (identity? break-card))
2306+
(fake-identity? break-card))
2307+
(or (contains? break-ability :break)
2308+
(contains? break-ability :breaks)
2309+
(contains? break-ability :heap-breaker-break)
2310+
(contains? break-ability :break-cost)))))
2311+
:value true}]})
2312+
22632313
(defcard "Turtlebacks"
22642314
{:events [{:event :server-created
22652315
:msg "gain 1 [Credits]"
22662316
:async true
22672317
:effect (effect (gain-credits eid 1))}]})
22682318

2319+
(defcard "Ubiquitous Vig"
2320+
(let [ability {:msg (msg "gain " (get-counters card :advancement) " [Credits]")
2321+
:label "Gain 1 [Credits] for each advancement counter (start of turn)"
2322+
:once :per-turn
2323+
:async true
2324+
:effect (effect (gain-credits eid (get-counters card :advancement)))}]
2325+
{:derezzed-events [corp-rez-toast]
2326+
:advanceable :always
2327+
:events [(assoc ability :event :corp-turn-begins)]
2328+
:abilities [ability]}))
2329+
22692330
(defcard "Urban Renewal"
22702331
{:on-rez {:effect (effect (add-counter card :power 3))}
22712332
:derezzed-events [corp-rez-toast]

src/clj/game/cards/events.clj

+53
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,17 @@
394394
(cbi-choice from '() (count from) from)))
395395
card nil))}})]}))
396396

397+
(defcard "Chastushka"
398+
{:makes-run true
399+
:on-play {:req (req hq-runnable)
400+
:async true
401+
:effect (effect (make-run eid :hq card))}
402+
:events [(successful-run-replace-breach
403+
{:target-server :hq
404+
:this-card-run true
405+
:mandatory true
406+
:ability (sabotage-ability 4)})]})
407+
397408
(defcard "Code Siphon"
398409
(letfn [(rd-ice [state]
399410
(* -3 (count (get-in @state [:corp :servers :rd :ices]))))]
@@ -2659,6 +2670,28 @@
26592670
choices (map str valid-amounts)]
26602671
(continue-ability state side (runner-choice choices) card nil)))}}))
26612672

2673+
(defcard "Rigging Up"
2674+
{:on-play
2675+
{:prompt "Choose a program or piece of hardware to install from your Grip"
2676+
:choices {:req (req (and (or (hardware? target)
2677+
(program? target))
2678+
(in-hand? target)
2679+
(can-pay? state side (assoc eid :source card :source-type :runner-install) target nil
2680+
[:credit (install-cost state side target {:cost-bonus -3})])))}
2681+
:async true
2682+
:effect (req (wait-for (runner-install state side (make-eid state {:source card :source-type :runner-install}) target {:cost-bonus -3})
2683+
(let [rig-target async-result]
2684+
(continue-ability
2685+
state side
2686+
{:optional
2687+
{:prompt (str "Charge " (:title rig-target) "?")
2688+
:req (req (can-charge state side rig-target))
2689+
:yes-ability
2690+
{:async true
2691+
:effect (effect (charge-card eid rig-target))
2692+
:msg (msg "charge " (:title rig-target))}}}
2693+
card nil))))}})
2694+
26622695
(defcard "Rip Deal"
26632696
(let [add-cards-from-heap
26642697
{:optional
@@ -2752,6 +2785,14 @@
27522785
:effect (effect (trash eid target {:cause-card card}))})
27532786
card nil)))}]}))
27542787

2788+
(defcard "Running Hot"
2789+
{:on-play
2790+
{:msg "gain [Click][Click][Click]"
2791+
:additional-cost [:brain 1]
2792+
:async true
2793+
:effect (effect (gain-clicks 3)
2794+
(effect-completed eid))}})
2795+
27552796
(defcard "Running Interference"
27562797
{:makes-run true
27572798
:on-play {:prompt "Choose a server"
@@ -2925,6 +2966,18 @@
29252966
:effect (effect (make-run eid target))}
29262967
card nil)))}})
29272968

2969+
(defcard "Steelskin Scarring"
2970+
{:on-play {:async true
2971+
:effect (effect (draw eid 3))}
2972+
:on-trash {:when-inactive true
2973+
:interactive (req true)
2974+
:async true
2975+
:req (req (let [zone (first (:zone (:card context)))]
2976+
(or (= :hand zone)
2977+
(= :deck zone))))
2978+
:msg "draw 2 cards"
2979+
:effect (effect (draw :runner eid 2))}})
2980+
29282981
(defcard "Stimhack"
29292982
{:makes-run true
29302983
:on-play {:prompt "Choose a server"

src/clj/game/cards/hardware.clj

+47
Original file line numberDiff line numberDiff line change
@@ -605,6 +605,17 @@
605605
(toast state :corp "Cannot rez ice the rest of this run due to EMP Device"))
606606
true))))}]))}]})
607607

608+
(defcard "Endurance"
609+
{:data {:counter {:power 3}}
610+
:constant-effects [(mu+ 2)]
611+
:events [{:event :successful-run
612+
:req (req (first-event? state :runner :successful-run))
613+
:silent (req true)
614+
:msg "place 1 power counter on itself"
615+
:async true
616+
:effect (effect (add-counter eid card :power 1 nil))}]
617+
:abilities [(break-sub [:power 2] 2 "All")]})
618+
608619
(defcard "Feedback Filter"
609620
{:interactions {:prevent [{:type #{:net :brain}
610621
:req (req true)}]}
@@ -1056,6 +1067,16 @@
10561067
" power counters on Mâché"))
10571068
(add-counter state side card :power cost))))}]}))
10581069

1070+
(defcard "Marrow"
1071+
{:constant-effects [(mu+ 1)
1072+
(runner-hand-size+ 3)]
1073+
:on-install {:async true
1074+
:effect (effect (damage eid :brain 1 {:card card}))}
1075+
:events [{:event :agenda-scored
1076+
:async true
1077+
:interactive (req true)
1078+
:effect (effect (continue-ability (sabotage-ability 1) card nil))}]})
1079+
10591080
(defcard "Masterwork (v37)"
10601081
{:constant-effects [(mu+ 1)]
10611082
:events [{:event :run
@@ -2048,6 +2069,32 @@
20482069
:events [(assoc ability :event :runner-turn-begins)]
20492070
:abilities [ability]}))
20502071

2072+
(defcard "Virtuoso"
2073+
{:constant-effects [(mu+ 1)]
2074+
:events [(assoc identify-mark-ability :event :runner-turn-begins)
2075+
{:event :successful-run
2076+
:req (req (and (:marked-server target)
2077+
(first-event? state side :successful-run #(:marked-server (first %)))))
2078+
:async true
2079+
:effect (req (if (= :hq (first (:server target)))
2080+
(do
2081+
(system-msg state side (str "uses " (:title card) " to access 1 additional card from HQ this run"))
2082+
(register-events
2083+
state side
2084+
card [(breach-access-bonus :hq 1 {:duration :end-of-run})])
2085+
(effect-completed state side eid))
2086+
(do (system-msg state side (str "will use " (:title card) " to breach HQ when this run ends"))
2087+
(register-events
2088+
state side
2089+
card
2090+
[{:event :run-ends
2091+
:duration :end-of-run
2092+
:async true
2093+
:interactive (req true)
2094+
:msg (msg "breach HQ")
2095+
:effect (req (breach-server state :runner eid [:hq] {:no-root true}))}])
2096+
(effect-completed state side eid))))}]})
2097+
20512098
(defcard "Window"
20522099
{:abilities [{:cost [:click 1]
20532100
:keep-menu-open :while-clicks-left

0 commit comments

Comments
 (0)