Skip to content

Commit f3c437e

Browse files
authored
Merge pull request #7970 from NBKelly/counters-are-async
2 parents 138103e + d1ab33a commit f3c437e

35 files changed

+1319
-1046
lines changed

src/clj/game/cards/agendas.clj

Lines changed: 136 additions & 85 deletions
Large diffs are not rendered by default.

src/clj/game/cards/assets.clj

Lines changed: 159 additions & 133 deletions
Large diffs are not rendered by default.

src/clj/game/cards/basic.clj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,8 @@
9393
:async true
9494
:msg (msg "advance " (card-str state (:card context)))
9595
:effect (effect (update-advancement-requirement (:card context))
96-
(add-prop (get-card state (:card context)) :advance-counter 1)
9796
(play-sfx "click-advance")
98-
(effect-completed eid))}
97+
(add-prop eid (get-card state (:card context)) :advance-counter 1))}
9998
{:action true
10099
:label "Trash 1 resource if the Runner is tagged"
101100
:cost [(->c :click 1) (->c :credit 2)]

src/clj/game/cards/events.clj

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,7 @@
235235
{:msg "remove 1 tag"
236236
:async true
237237
:effect (effect (lose-tags eid 1))}
238-
{:effect (effect (add-counter (get-card state card) :credit 4)
239-
(effect-completed eid))
238+
{:effect (effect (add-counter eid (get-card state card) :credit 4 nil))
240239
:async true
241240
:msg "place 4 [Credits] for paying trash costs"}]
242241
choice (fn choice [abis rem]
@@ -740,10 +739,12 @@
740739
{:async true
741740
:msg (msg "reveal " (get-title topcard) " from the top of the stack, "
742741
"move it to the grip and place " (:cost topcard) " [Credits] on itself")
743-
:effect (req (wait-for (reveal state side topcard)
744-
(add-counter state side card :credit (:cost topcard) {:placed true})
745-
(move state :runner topcard :hand)
746-
(effect-completed state side eid)))}))]
742+
:effect (req (wait-for
743+
(reveal state side topcard)
744+
(wait-for
745+
(add-counter state side card :credit (:cost topcard) {:placed true})
746+
(move state :runner topcard :hand)
747+
(effect-completed state side eid))))}))]
747748
{:makes-run true
748749
:interactions {:pay-credits {:req (req run)
749750
:type :credit}}
@@ -1443,8 +1444,9 @@
14431444
(= (first (:server run)) (second (get-zone %))))}
14441445
:msg (msg "remove " (quantify c "advancement token")
14451446
" from " (card-str state target))
1447+
:async true
14461448
:effect (req (let [to-remove (min c (get-counters target :advancement))]
1447-
(add-prop state :corp target :advance-counter (- to-remove))))}
1449+
(add-prop state :corp eid target :advance-counter (- to-remove))))}
14481450
card nil)))}})]})
14491451

14501452
(defcard "Express Delivery"
@@ -3071,14 +3073,16 @@
30713073
(not (:rezzed %)))}
30723074
:msg (msg "place " (quantify c "advancement token") " on " (card-str state target) " and gain " (* 2 c) " [Credits]")
30733075
:async true
3074-
:effect (req (wait-for (gain-credits state side (* 2 c))
3075-
(add-prop state :corp target :advance-counter c {:placed true})
3076-
(register-turn-flag!
3077-
state side
3078-
card :can-access
3079-
;; prevent access of advanced card
3080-
(fn [_ _ card] (not (same-card? target card))))
3081-
(effect-completed state side eid)))})
3076+
:effect (req (wait-for
3077+
(gain-credits state side (* 2 c))
3078+
(wait-for
3079+
(add-prop state :corp target :advance-counter c {:placed true})
3080+
(register-turn-flag!
3081+
state side
3082+
card :can-access
3083+
;; prevent access of advanced card
3084+
(fn [_ _ card] (not (same-card? target card))))
3085+
(effect-completed state side eid))))})
30823086
card nil))}})
30833087

30843088
(defcard "Quest Completed"
@@ -3101,7 +3105,8 @@
31013105
:effect (effect (make-run eid target card))}
31023106
:events [{:event :subroutine-fired
31033107
:req (req (some #(= % :play-area) (:zone card)))
3104-
:effect (effect (add-counter (get-card state card) :power 1))}
3108+
:async true
3109+
:effect (effect (add-counter eid (get-card state card) :power 1 nil))}
31053110
{:event :run-ends
31063111
:async true
31073112
:req (req this-card-run)
@@ -3799,15 +3804,16 @@
37993804
(defcard "Surge"
38003805
(letfn [(placed-virus-cards [state]
38013806
(->> (turn-events state :runner :counter-added)
3802-
(filter #(= :virus (:counter-type (second %))))
3807+
(filter #(= :virus (:counter-type (first %))))
38033808
(map first)
3804-
(keep #(get-card state %))
3809+
(keep #(get-card state (:card %)))
38053810
(seq)))]
38063811
{:on-play
38073812
{:req (req (placed-virus-cards state))
38083813
:choices {:req (req (some #(same-card? % target) (placed-virus-cards state)))}
38093814
:msg (msg "place 2 virus tokens on " (:title target))
3810-
:effect (effect (add-counter :runner target :virus 2))}}))
3815+
:async true
3816+
:effect (effect (add-counter :runner eid target :virus 2 nil))}}))
38113817

38123818
(defcard "SYN Attack"
38133819
{:on-play
@@ -4061,10 +4067,11 @@
40614067
this-card-run
40624068
(= (get-in card [:special :run-eid :eid]) (get-in @state [:run :eid :eid]))))
40634069
:msg "place 2 [Credits] on itself and access 1 additional card from R&D"
4070+
:async true
40644071
:effect (effect
4065-
(add-counter card :credit 2 {:placed true})
40664072
(register-events
4067-
card [(breach-access-bonus :rd 1 {:duration :end-of-run})]))}
4073+
card [(breach-access-bonus :rd 1 {:duration :end-of-run})])
4074+
(add-counter eid card :credit 2 {:placed true}))}
40684075
{:event :run-ends
40694076
:unregister-once-resolved true
40704077
:req (req this-card-run)

0 commit comments

Comments
 (0)