protected override void OnGamepadUnplugged(SocketGamepad gamepad) { if (ActiveGamepads.ContainsKey(gamepad)) { //Remove from players TicTacToePlayer player = (TicTacToePlayer)ActiveGamepads[gamepad]; player.PlayerIcon.SetActive(false); ActiveGamepads.Remove(gamepad); LocalPlayers.Remove(player); player.Gamepad = null; if (XPlayer.Gamepad == null && OPlayer.Gamepad == null) { CurrentMode = CurrentModeType.WaitForPlayers; } } }
protected void TriggerEndgame() { XPlayer.Ready = false; OPlayer.Ready = false; switch (Winner) { case 1: //TODO: Display Text Debug.Log("[Tic Tac Toe] X Won"); XPlayer.Wins++; if (XWinsPlaque != null) { XWinsPlaque.SetActive(true); } break; case 2: //TODO: Display Text Debug.Log("[Tic Tac Toe] O Won"); OPlayer.Wins++; if (OWinsPlaque != null) { OWinsPlaque.SetActive(true); } break; case 3: //TODO: Display Text Debug.Log("[Tic Tac Toe] Draw"); XPlayer.Draws++; OPlayer.Draws++; if (DrawPlaque != null) { DrawPlaque.SetActive(true); } break; } CurrentMode = CurrentModeType.WaitForReady; Debug.Log("Waiting for Players to Ready"); SendGameEnd(); }
protected void StartGame() { Debug.Log("[Tic Tac Toe] Starting Game"); Reset(); if (UnityEngine.Random.Range(0, 2) > 0) { XPlayer.isMyTurn = true; OPlayer.isMyTurn = false; PlayerTurn = 1; } else { OPlayer.isMyTurn = true; XPlayer.isMyTurn = false; PlayerTurn = 2; } CurrentMode = CurrentModeType.Playing; SendGameStart(); SendMyTurn(); }
protected override void OnGamepadPluggedIn(SocketGamepad gamepad) { if (XPlayer.Gamepad == null) { XPlayer.Xs = true; XPlayer.FyoApp = this; XPlayer.Gamepad = gamepad; XPlayer.PlayerIcon.SetActive(true); ActiveGamepads.Add(gamepad, XPlayer); XPlayer.InputWait = DateTime.Now.Ticks + (InputWaitMs * TimeSpan.TicksPerMillisecond); Debug.Log("X Connected"); } else if (OPlayer.Gamepad == null) { OPlayer.Xs = false; OPlayer.FyoApp = this; OPlayer.Gamepad = gamepad; OPlayer.PlayerIcon.SetActive(true); Debug.Log("O Connected"); ActiveGamepads.Add(gamepad, OPlayer); OPlayer.InputWait = DateTime.Now.Ticks + (InputWaitMs * TimeSpan.TicksPerMillisecond); } else { //Reconnected? if (CurrentMode == CurrentModeType.Playing && (XPlayer.Gamepad == gamepad || OPlayer.Gamepad == gamepad)) { SendGameState(gamepad); } } if (XPlayer.Gamepad != null && OPlayer.Gamepad != null && CurrentMode == CurrentModeType.WaitForPlayers) { CurrentMode = CurrentModeType.WaitForReady; Debug.Log("Waiting for Players to Ready"); } }