From 378d1ba9ce4915a9da7bfb2bb6e37bffd5018777 Mon Sep 17 00:00:00 2001 From: Filip Gokstorp Date: Wed, 23 Dec 2015 15:59:49 +0100 Subject: [PATCH 1/3] Fixes cards being draggable for spectators. --- src/cljs/netrunner/gameboard.cljs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/cljs/netrunner/gameboard.cljs b/src/cljs/netrunner/gameboard.cljs index 2f252a97a1..1d4a0dccef 100644 --- a/src/cljs/netrunner/gameboard.cljs +++ b/src/cljs/netrunner/gameboard.cljs @@ -276,7 +276,8 @@ (when code (sab/html [:div.card-frame - [:div.blue-shade.card {:class (when selected "selected") :draggable true + [:div.blue-shade.card {:class (when selected "selected") + :draggable (when (#{(get-in @game-state [:corp :user]) (get-in @game-state [:runner :user])} (:user @app-state)) true) :on-drag-start #(handle-dragstart % cursor) :on-drag-end #(-> % .-target js/$ (.removeClass "dragged")) :on-mouse-enter #(when (or (not (or flipped facedown)) From 535a1336e822fe3190c1c827d977c3ffc0654425 Mon Sep 17 00:00:00 2001 From: Filip Gokstorp Date: Wed, 23 Dec 2015 16:40:31 +0100 Subject: [PATCH 2/3] Also fixes rendering play-area for spectators. --- src/cljs/netrunner/gameboard.cljs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/cljs/netrunner/gameboard.cljs b/src/cljs/netrunner/gameboard.cljs index 1d4a0dccef..fb5a3607af 100644 --- a/src/cljs/netrunner/gameboard.cljs +++ b/src/cljs/netrunner/gameboard.cljs @@ -654,7 +654,8 @@ [:div (om/build rfg-view {:cards (:rfg opponent) :name "Removed from the game"}) (om/build rfg-view {:cards (:rfg me) :name "Removed from the game"}) - (om/build rfg-view {:cards (:play-area me)}) + (when (#{(get-in @game-state [:corp :user]) (get-in @game-state [:runner :user])} (:user @app-state)) + (om/build rfg-view {:cards (:play-area me)})) (om/build rfg-view {:cards (:current opponent) :name "Current"}) (om/build rfg-view {:cards (:current me) :name "Current"})] (when-not (= side :spectator) From 0663d62ac53e627141ed23417b35a2de5a130fc3 Mon Sep 17 00:00:00 2001 From: Filip Gokstorp Date: Wed, 23 Dec 2015 17:13:41 +0100 Subject: [PATCH 3/3] Extracts spectating check function. --- src/cljs/netrunner/gameboard.cljs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/cljs/netrunner/gameboard.cljs b/src/cljs/netrunner/gameboard.cljs index fb5a3607af..e956d0202f 100644 --- a/src/cljs/netrunner/gameboard.cljs +++ b/src/cljs/netrunner/gameboard.cljs @@ -64,6 +64,9 @@ (defn send [msg] (.emit socket "netrunner" (clj->js msg))) +(defn not-spectator? [game-state app-state] + (#{(get-in @game-state [:corp :user]) (get-in @game-state [:runner :user])} (:user @app-state))) + (defn send-command ([command] (send-command command nil)) ([command args] @@ -109,7 +112,7 @@ (defn handle-card-click [{:keys [type zone counter advance-counter advancementcost advanceable root] :as card} owner] (let [side (:side @game-state)] - (when (#{(get-in @game-state [:corp :user]) (get-in @game-state [:runner :user])} (:user @app-state)) + (when (not-spectator? game-state app-state) (if (= (get-in @game-state [side :prompt 0 :prompt-type]) "select") (send-command "select" {:card card}) (if (and (= (:type card) "Identity") (= side (keyword (.toLowerCase (:side card))))) @@ -277,7 +280,7 @@ (sab/html [:div.card-frame [:div.blue-shade.card {:class (when selected "selected") - :draggable (when (#{(get-in @game-state [:corp :user]) (get-in @game-state [:runner :user])} (:user @app-state)) true) + :draggable (when (not-spectator? game-state app-state) true) :on-drag-start #(handle-dragstart % cursor) :on-drag-end #(-> % .-target js/$ (.removeClass "dragged")) :on-mouse-enter #(when (or (not (or flipped facedown)) @@ -654,8 +657,7 @@ [:div (om/build rfg-view {:cards (:rfg opponent) :name "Removed from the game"}) (om/build rfg-view {:cards (:rfg me) :name "Removed from the game"}) - (when (#{(get-in @game-state [:corp :user]) (get-in @game-state [:runner :user])} (:user @app-state)) - (om/build rfg-view {:cards (:play-area me)})) + (when (not-spectator? game-state app-state) (om/build rfg-view {:cards (:play-area me)})) (om/build rfg-view {:cards (:current opponent) :name "Current"}) (om/build rfg-view {:cards (:current me) :name "Current"})] (when-not (= side :spectator)