|
77 | 77 | (let [num-counters (fn [card] (min per-turn (get-counters card counter-type))) |
78 | 78 | ability {:msg (msg "gain " (num-counters card) " [Credits]") |
79 | 79 | :once :per-turn |
| 80 | + :automatic :gain-credits |
80 | 81 | :req (req (:corp-phase-12 @state)) |
81 | 82 | :label (str "Gain " per-turn " [Credits] (start of turn)") |
82 | 83 | :async true |
|
381 | 382 |
|
382 | 383 | (defcard "Bio-Ethics Association" |
383 | 384 | (let [ability {:req (req unprotected) |
| 385 | + :automatic :corp-damage |
384 | 386 | :async true |
385 | 387 | :label "Do 1 net damage (start of turn)" |
386 | 388 | :once :per-turn |
|
411 | 413 | (let [ability {:msg "gain 1 [Credits]" |
412 | 414 | :label "Gain 1 [Credits] (start of turn)" |
413 | 415 | :once :per-turn |
| 416 | + :automatic :pre-gain-credits |
414 | 417 | :interactive (req true) |
415 | 418 | :async true |
416 | 419 | :effect (req (wait-for (gain-credits state side 1) |
|
530 | 533 | (gain-credits state side 4) |
531 | 534 | (draw state side eid 1))))}}} |
532 | 535 | queue-ability {:interactive (req true) |
| 536 | + :skippable true |
533 | 537 | :event :corp-turn-begins |
534 | 538 | :req (req (and (not-used-once? state {:once :per-turn} card) |
535 | 539 | (:corp-phase-12 @state))) |
|
649 | 653 | {:flags {:corp-phase-12 (req true)} |
650 | 654 | :derezzed-events [corp-rez-toast] |
651 | 655 | :events [{:event :corp-turn-begins |
| 656 | + :skippable true |
652 | 657 | :prompt "Choose one" |
653 | 658 | :interactive (req true) |
654 | 659 | :choices (req [(when (seq (:hand corp)) "Trash 1 card from HQ to gain 2 [Credits] and draw 1 card") |
|
696 | 701 |
|
697 | 702 | (defcard "Commercial Bankers Group" |
698 | 703 | (let [ability {:req (req unprotected) |
| 704 | + :automatic :gain-credits |
699 | 705 | :label "Gain 3 [Credits] (start of turn)" |
700 | 706 | :once :per-turn |
701 | 707 | :msg "gain 3 [Credits]" |
|
796 | 802 | (let [ability {:once :per-turn |
797 | 803 | :async true |
798 | 804 | :label "Draw 1 card (start of turn)" |
| 805 | + :automatic :draw-cards |
799 | 806 | :interactive (req true) |
800 | 807 | :effect (effect (continue-ability |
801 | 808 | {:optional |
|
872 | 879 | (second (get-zone (:host card)))]) |
873 | 880 | (:successful-run runner-reg-last)))) |
874 | 881 | :label "gain 3 [Credits] (start of turn)" |
| 882 | + :automatic :gain-credits |
875 | 883 | :msg "gain 3 [Credits]" |
876 | 884 | :async true |
877 | 885 | :effect (effect (gain-credits :corp eid 3))}] |
|
1054 | 1062 | :suppress [{:event :corp-turn-begins |
1055 | 1063 | :req (req (= (:cid target) (:ebc-rezzed (get-card state card))))}] |
1056 | 1064 | :events [{:event :corp-turn-ends |
| 1065 | + :silent (req true) |
1057 | 1066 | :req (req (:ebc-rezzed card)) |
1058 | 1067 | :effect (effect (update! (dissoc card :ebc-rezzed)))}] |
1059 | 1068 | :abilities [{:async true |
|
1127 | 1136 | {:once :per-turn |
1128 | 1137 | :req (req (and (:corp-phase-12 @state) |
1129 | 1138 | (not-empty (:deck corp)))) |
| 1139 | + :skippable true |
1130 | 1140 | :interactive (req true) |
1131 | 1141 | :label "Look at the top 3 cards of R&D (start of turn)" |
1132 | 1142 | :async true |
|
1225 | 1235 | (move state :corp target :hand) |
1226 | 1236 | (effect-completed state side eid))))} |
1227 | 1237 | ability {:once :per-turn |
| 1238 | + :skippable true |
1228 | 1239 | :async true |
1229 | 1240 | :label "Search R&D for an operation (start of turn)" |
1230 | 1241 | :interactive (req true) |
|
1263 | 1274 | (when (zero? (remaining-draws state :runner)) |
1264 | 1275 | (prevent-draw state :runner)))} |
1265 | 1276 | :events [{:event :runner-turn-begins |
| 1277 | + :silent (req true) |
1266 | 1278 | :effect (effect (max-draw :runner 2))}] |
1267 | 1279 | :leave-play (req (swap! state update-in [:runner :register] dissoc :max-draw :cannot-draw))}) |
1268 | 1280 |
|
|
1301 | 1313 | :effect (effect (add-prop eid target :advance-counter 1 {:placed true}))} |
1302 | 1314 | ability {:req (req (:corp-phase-12 @state)) |
1303 | 1315 | :label "Move 1 hosted advancement counter to another card you can advance (start of turn)" |
| 1316 | + :skippable true |
1304 | 1317 | :once :per-turn |
1305 | 1318 | :waiting-prompt true |
1306 | 1319 | :prompt "Choose an installed card to move 1 hosted advancement counter from" |
|
1395 | 1408 | (let [ability {:msg "gain 1 [Credits] and draw 1 card" |
1396 | 1409 | :label "Gain 1 [Credits] and draw 1 card (start of turn)" |
1397 | 1410 | :once :per-turn |
| 1411 | + :automatic :draw-cards |
1398 | 1412 | :async true |
1399 | 1413 | :req (req (:corp-phase-12 @state)) |
1400 | 1414 | :effect (req (wait-for (gain-credits state side 1) |
|
1515 | 1529 | (resolve-ability state side eid ability card nil) |
1516 | 1530 | (effect-completed state side eid))))} |
1517 | 1531 | {:event :corp-turn-ends |
| 1532 | + :silent (req true) |
1518 | 1533 | :effect cleanup}]})) |
1519 | 1534 |
|
1520 | 1535 | (defcard "Kala Ghoda Real TV" |
|
1571 | 1586 | (update-all-agenda-points state) |
1572 | 1587 | (check-win-by-agenda state side))}] |
1573 | 1588 | :events [{:event :corp-turn-begins |
| 1589 | + :automatic :last ;;so it goes after warm reception |
1574 | 1590 | :async true |
1575 | 1591 | :effect (effect (add-counter eid card :power 1 nil))}]}) |
1576 | 1592 |
|
|
1702 | 1718 | :label (str "Gain 2 [Credits] (start of turn)") |
1703 | 1719 | :msg (msg "gain " (min 2 (get-counters card :credit)) " [Credits]") |
1704 | 1720 | :async true |
| 1721 | + :automatic :gain-credits |
1705 | 1722 | :effect (req (wait-for |
1706 | 1723 | (take-credits state side card :credit 2) |
1707 | 1724 | (if (not (pos? (get-counters (get-card state card) :credit))) |
|
1737 | 1754 | (defcard "Marked Accounts" |
1738 | 1755 | (let [ability {:msg "gain 1 [Credits]" |
1739 | 1756 | :label "Take 1 [Credits] (start of turn)" |
| 1757 | + :automatic :gain-credits |
1740 | 1758 | :once :per-turn |
1741 | 1759 | :req (req (pos? (get-counters card :credit))) |
1742 | 1760 | :async true |
|
1777 | 1795 | (defcard "Mental Health Clinic" |
1778 | 1796 | (let [ability {:msg "gain 1 [Credits]" |
1779 | 1797 | :label "Gain 1 [Credits] (start of turn)" |
| 1798 | + :automatic :gain-credits |
1780 | 1799 | :once :per-turn |
1781 | 1800 | :async true |
1782 | 1801 | :effect (effect (gain-credits eid 1))}] |
|
1883 | 1902 | (defcard "Mumbad Construction Co." |
1884 | 1903 | {:derezzed-events [corp-rez-toast] |
1885 | 1904 | :events [{:event :corp-turn-begins |
| 1905 | + :silent (req true) |
1886 | 1906 | :async true |
1887 | 1907 | :effect (effect (add-prop eid card :advance-counter 1 {:placed true}))}] |
1888 | 1908 | :abilities [{:cost [(->c :credit 2)] |
|
1945 | 1965 |
|
1946 | 1966 | (defcard "NASX" |
1947 | 1967 | (let [ability {:msg "gain 1 [Credits]" |
| 1968 | + :automatic :gain-credits |
1948 | 1969 | :label "Gain 1 [Credits] (start of turn)" |
1949 | 1970 | :once :per-turn |
1950 | 1971 | :async true |
|
2040 | 2061 | {:async true |
2041 | 2062 | :interactive (req true) |
2042 | 2063 | :once :per-turn |
| 2064 | + :automatic :draw-cards |
2043 | 2065 | :label "Take 3 [Credits] (start of turn)" |
2044 | 2066 | :msg (msg "gain " (min 3 (get-counters card :credit)) " [Credits]") |
2045 | 2067 | :req (req (:corp-phase-12 @state)) |
|
2102 | 2124 | :label "Gain 1 [Credits] (start of turn)" |
2103 | 2125 | :once :per-turn |
2104 | 2126 | :async true |
| 2127 | + :automatic :gain-credits |
2105 | 2128 | :effect (effect (gain-credits eid 1))}] |
2106 | 2129 | {:derezzed-events [corp-rez-toast] |
2107 | 2130 | :events [(assoc ability :event :corp-turn-begins)] |
|
2135 | 2158 | (let [ability {:msg "make each player draw 1 card" |
2136 | 2159 | :label "Make each player draw 1 card (start of turn)" |
2137 | 2160 | :once :per-turn |
| 2161 | + :automatic :draw-cards |
2138 | 2162 | :async true |
2139 | 2163 | :effect (req (wait-for (draw state :corp 1) |
2140 | 2164 | (draw state :runner eid 1)))}] |
|
2269 | 2293 | (let [ability {:once :per-turn |
2270 | 2294 | :label "Reveal the top card of R&D and gain 2 [Credits] (start of turn)" |
2271 | 2295 | :interactive (req true) |
| 2296 | + :automatic :gain-credits |
2272 | 2297 | :msg (msg "reveal " (:title (first (:deck corp))) |
2273 | 2298 | " from the top of R&D" |
2274 | 2299 | " and gain 2 [Credits]") |
|
2362 | 2387 |
|
2363 | 2388 | (defcard "Rashida Jaheem" |
2364 | 2389 | (let [ability {:once :per-turn |
| 2390 | + :skippable true |
2365 | 2391 | :async true |
2366 | 2392 | :label "Gain 3 [Credits] and draw 3 cards (start of turn)" |
2367 | 2393 | :req (req (:corp-phase-12 @state)) |
|
2389 | 2415 | (let [ability {:effect (effect (gain-credits eid (if tagged 2 1))) |
2390 | 2416 | :async true |
2391 | 2417 | :label "Gain credits (start of turn)" |
| 2418 | + :automatic :gain-credits |
2392 | 2419 | :once :per-turn |
2393 | 2420 | :msg (msg (if tagged "gain 2 [Credits]" "gain 1 [Credits]"))}] |
2394 | 2421 | {:on-rez {:msg "take 1 bad publicity" |
|
2401 | 2428 | (let [ability {:async true |
2402 | 2429 | :once :per-turn |
2403 | 2430 | :label "Trash this asset to do 2 net damage (start of turn)" |
| 2431 | + :automatic :corp-damage |
2404 | 2432 | :interactive (req true) |
2405 | 2433 | :req (req (:corp-phase-12 @state)) |
2406 | 2434 | :effect |
|
2447 | 2475 | (let [ability {:msg "gain 2 [Credits]" |
2448 | 2476 | :label "Gain 2 [Credits] (start of turn)" |
2449 | 2477 | :once :per-turn |
| 2478 | + :automatic :gain-credits |
2450 | 2479 | :async true |
2451 | 2480 | :effect (effect (gain-credits eid 2))}] |
2452 | 2481 | {:derezzed-events [corp-rez-toast] |
|
2603 | 2632 | (let [ability {:effect (effect (gain-credits eid 2)) |
2604 | 2633 | :async true |
2605 | 2634 | :once :per-turn |
| 2635 | + :automatic :gain-credits |
2606 | 2636 | :label "Gain 2 [Credits] (start of turn)" |
2607 | 2637 | :msg "gain 2 [Credits]"}] |
2608 | 2638 | {:derezzed-events [corp-rez-toast] |
|
2919 | 2949 |
|
2920 | 2950 | (defcard "The News Now Hour" |
2921 | 2951 | {:events [{:event :runner-turn-begins |
| 2952 | + :silent (req true) |
2922 | 2953 | :effect (req (prevent-current state side))}] |
2923 | 2954 | :on-rez {:effect (req (prevent-current state side))} |
2924 | 2955 | :leave-play (req (swap! state assoc-in [:runner :register :cannot-play-current] false))}) |
|
3010 | 3041 | (defcard "Ubiquitous Vig" |
3011 | 3042 | (let [ability {:msg (msg "gain " (get-counters card :advancement) " [Credits]") |
3012 | 3043 | :label "Gain 1 [Credits] for each advancement counter (start of turn)" |
| 3044 | + :automatic :corp-gain-credits |
3013 | 3045 | :once :per-turn |
3014 | 3046 | :async true |
3015 | 3047 | :effect (effect (gain-credits eid (get-counters card :advancement)))}] |
|
3022 | 3054 | {:data {:counter {:power 3}} |
3023 | 3055 | :derezzed-events [corp-rez-toast] |
3024 | 3056 | :events [{:event :corp-turn-begins |
| 3057 | + :automatic :corp-damage |
3025 | 3058 | :async true |
3026 | 3059 | :interactive (req true) |
3027 | 3060 | :effect (req (wait-for |
|
3139 | 3172 | (continue-ability state side (choice (remove-once #(= % chosen-ability) abis) (dec n)) card nil) |
3140 | 3173 | (effect-completed state side eid)))))})) |
3141 | 3174 | ability {:async true |
| 3175 | + :automatic :last ;; so it can go after rashida |
3142 | 3176 | :label "resolve an ability (start of turn)" |
3143 | 3177 | :once :per-turn |
3144 | 3178 | :effect (effect (continue-ability (choice all (if (< 1 (count (filter asset? (all-active-installed state :corp)))) |
|
0 commit comments