public void StartTurn() { if (_gameplayManager.IsGameEnded) { return; } CurrentTurn++; _gameplayManager.CurrentTurnPlayer.Turn++; if (_dataManager.CachedUserLocalData.Tutorial && !_tutorialManager.IsTutorial) { Debug.Log("_dataManager.CachedUserLocalData.Tutorial = " + _dataManager.CachedUserLocalData.Tutorial); Debug.Log("_tutorialManager.IsTutorial = " + _tutorialManager.IsTutorial); _tutorialManager.StartTutorial(); } _uiManager.GetPage <GameplayPage>().SetEndTurnButtonStatus(_gameplayManager.IsLocalPlayerTurn()); UpdatePositionOfCardsInOpponentHand(); _playerController.IsActive = _gameplayManager.IsLocalPlayerTurn(); if (_gameplayManager.IsLocalPlayerTurn()) { List <BoardUnit> creatures = new List <BoardUnit>(); foreach (BoardUnit card in PlayerBoardCards) { if (_playerController == null || !card.GameObject) { creatures.Add(card); continue; } card.OnStartTurn(); } foreach (BoardUnit item in creatures) { PlayerBoardCards.Remove(item); } creatures.Clear(); foreach (BoardUnit card in PlayerBoardCards) { card.SetHighlightingEnabled(true); } } else { foreach (BoardUnit card in OpponentBoardCards) { card.OnStartTurn(); } foreach (BoardCard card in PlayerHandCards) { card.SetHighlightingEnabled(false); } foreach (BoardUnit card in PlayerBoardCards) { card.SetHighlightingEnabled(false); } } _gameplayManager.CurrentPlayer.InvokeTurnStarted(); _gameplayManager.OpponentPlayer.InvokeTurnStarted(); _playerController.UpdateHandCardsHighlight(); _tutorialManager.ReportAction(Enumerators.TutorialReportAction.START_TURN); TurnStarted?.Invoke(); }