import Foundation import WatchConnectivity class PadelScoreManager: NSObject, ObservableObject, WCSessionDelegate { @Published var player1Score = 0 @Published var player2Score = 0 @Published var player1Games = 0 @Published var player2Games = 0 @Published var player1Sets = 0 @Published var player2Sets = 0 @Published var isPlayer1Serving = true override init() { super.init() if WCSession.isSupported() { let session = WCSession.default session.delegate = self session.activate() } } func addPoint(to playerScore: inout Int, opponentScore: inout Int, playerGames: inout Int, opponentGames: inout Int) { if playerScore < 40 { playerScore += 15 } else if playerScore == 40 { playerGames += 1 resetGameScores() } sendScoreUpdate() } func resetGameScores() { player1Score = 0 player2Score = 0 } func resetScores() { resetGameScores() player1Games = 0 player2Games = 0 player1Sets = 0 player2Sets = 0 sendScoreUpdate() } private func sendScoreUpdate() { let message: [String: Any] = [ "player1Score": player1Score, "player2Score": player2Score, "player1Games": player1Games, "player2Games": player2Games, "player1Sets": player1Sets, "player2Sets": player2Sets, "isPlayer1Serving": isPlayer1Serving ] WCSession.default.sendMessage(message, replyHandler: nil, errorHandler: nil) } // WCSessionDelegate methods func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {} #if os(iOS) func sessionDidBecomeInactive(_ session: WCSession) {} func sessionDidDeactivate(_ session: WCSession) { session.activate() } #endif func session(_ session: WCSession, didReceiveMessage message: [String : Any]) { if let player1Score = message["player1Score"] as? Int, let player2Score = message["player2Score"] as? Int, let player1Games = message["player1Games"] as? Int, let player2Games = message["player2Games"] as? Int, let player1Sets = message["player1Sets"] as? Int, let player2Sets = message["player2Sets"] as? Int, let isPlayer1Serving = message["isPlayer1Serving"] as? Bool { DispatchQueue.main.async { self.player1Score = player1Score self.player2Score = player2Score self.player1Games = player1Games self.player2Games = player2Games self.player1Sets = player1Sets self.player2Sets = player2Sets self.isPlayer1Serving = isPlayer1Serving } } } }