         DispatchQueue.main.async {
             Round.instance.setWinningTeam(.blue)
 
-            self.dismissPresentedViewIfNeeded(completion: {
-                self.didEndGame(
-                    SCStrings.header.gameOver.rawValue,
-                    reason: SCStrings.message.defaultLoseString.rawValue,
-                    onDismissal: self.onGameOverDismissal
-                )
-            })
+            self.didEndGame(
+                SCStrings.header.gameOver.rawValue,
+                reason: SCStrings.message.defaultLoseString.rawValue,
+                onDismissal: self.onGameOverDismissal
+            )
         }
     }
 
     fileprivate func didEndGame(_ title: String, reason: String, onDismissal: @escaping ((Void) -> Void)) {
         DispatchQueue.main.async {
-            Round.instance.endGame()
-            Timer.instance.invalidate()
-
-            if Player.instance.isHost() {
-                self.broadcastTimer?.invalidate()
-            }
-
-            if self.clueTextField.isFirstResponder {
-                self.clueTextField.resignFirstResponder()
-            } else if self.numberOfWordsTextField.isFirstResponder {
-                self.numberOfWordsTextField.resignFirstResponder()
-            }
-
-            self.displayAlert(title: title, reason: reason, onDismissal: onDismissal)
+            self.dismissPresentedViewIfNeeded(completion: {
+                Round.instance.endGame()
+                Timer.instance.invalidate()
+
+                if Player.instance.isHost() {
+                    self.broadcastTimer?.invalidate()
+                }
+
+                if self.clueTextField.isFirstResponder {
+                    self.clueTextField.resignFirstResponder()
+                } else if self.numberOfWordsTextField.isFirstResponder {
+                    self.numberOfWordsTextField.resignFirstResponder()
+                }
+
+                self.displayAlert(title: title, reason: reason, onDismissal: onDismissal)
+            })
         }
     }
 


            Statistics.instance.recordWinForTeam(opponentTeam!)

            self.dismissPresentedViewIfNeeded(completion: {
                self.didEndGame(
                    SCStrings.header.gameOver.rawValue,
                    reason: SCStrings.message.defaultLoseString.rawValue,
                    onDismissal: self.onGameOverDismissal
                )
            })
        } else if CardCollection.instance.getCardsRemainingForTeam(playerTeam) == 0 {
            Round.instance.setWinningTeam(playerTeam)


        if let _ = self.presentedViewController {
            self.presentedViewController?.dismiss(animated: true, completion: {
                if let completion = completion {
                    super.hideDimView()
                    completion()
                }
            })
