|
6 | 6 | [game.core.engine :refer [trigger-event]] |
7 | 7 | [game.core.flags :refer [zone-locked?]] |
8 | 8 | [game.core.moving :refer [move move-zone]] |
9 | | - [game.core.say :refer [system-msg]] |
| 9 | + [game.core.say :refer [system-msg play-sfx]] |
10 | 10 | [game.core.servers :refer [name-zone]] |
11 | 11 | [game.macros :refer [continue-ability msg req]] |
12 | 12 | [game.utils :refer [enumerate-str enumerate-cards quantify]]) |
|
36 | 36 |
|
37 | 37 | (defn shuffle! |
38 | 38 | "Shuffles the vector in @state [side kw]." |
39 | | - [state side kw] |
40 | | - (when (contains? #{:deck :hand :discard} kw) |
41 | | - (trigger-event state side (when (= :deck kw) (if (= :corp side) :corp-shuffle-deck :runner-shuffle-deck))) |
42 | | - (when (and (:breach @state) |
43 | | - (= :corp side) |
44 | | - (= :deck kw)) |
45 | | - ;; we no longer know the cards in R&D, even if they were candidates before |
46 | | - (swap! state assoc-in [:breach :known-cids :deck] [])) |
47 | | - (when (and (:access @state) |
48 | | - (:run @state) |
49 | | - (= :corp side) |
50 | | - (= :deck kw)) |
51 | | - (swap! state assoc-in [:run :shuffled-during-access :rd] true)) |
52 | | - (swap! state update-in [:stats side :shuffle-count] (fnil + 0) 1) |
53 | | - (swap! state update-in [side kw] shuffle-coll))) |
| 39 | + ([state side kw] (shuffle! state side kw nil)) |
| 40 | + ([state side kw {:keys [no-sfx] :as args}] |
| 41 | + (when (contains? #{:deck :hand :discard} kw) |
| 42 | + (trigger-event state side (when (= :deck kw) (if (= :corp side) :corp-shuffle-deck :runner-shuffle-deck))) |
| 43 | + (when (and (:breach @state) |
| 44 | + (= :corp side) |
| 45 | + (= :deck kw)) |
| 46 | + ;; we no longer know the cards in R&D, even if they were candidates before |
| 47 | + (swap! state assoc-in [:breach :known-cids :deck] [])) |
| 48 | + (when (and (:access @state) |
| 49 | + (:run @state) |
| 50 | + (= :corp side) |
| 51 | + (= :deck kw)) |
| 52 | + (swap! state assoc-in [:run :shuffled-during-access :rd] true)) |
| 53 | + (when-not no-sfx |
| 54 | + (play-sfx state side "shuffle")) |
| 55 | + (swap! state update-in [:stats side :shuffle-count] (fnil + 0) 1) |
| 56 | + (swap! state update-in [side kw] shuffle-coll)))) |
54 | 57 |
|
55 | 58 | (defn shuffle-cards-into-deck! |
56 | 59 | "Shuffles a given set of cards into the deck. Will print out what's happened. Will always shuffle." |
|
115 | 118 | "Shuffle R&D/Stack." |
116 | 119 | [state side {:keys [close]}] |
117 | 120 | (swap! state update-in [side :deck] shuffle) |
| 121 | + (play-sfx state side "shuffle") |
118 | 122 | (if close |
119 | 123 | (do |
120 | 124 | (swap! state update-in [side] dissoc :view-deck) |
|
0 commit comments