private IEnumerator Game() { //todo отправка в тюрьму после больше 3 раз дублей // yield return StartCoroutine(current_player.MoveTo(Board[1])); // yield return new WaitForSeconds(2); // yield return StartCoroutine(current_player.MoveTo(Board[3])); // yield return new WaitForSeconds(2); //yield return StartCoroutine(BankruptByGame(Players[0])); // GivePropertyToPlayer(CurrentPlayer,Board[12] as Ownable); // GivePropertyToPlayer(CurrentPlayer,Board[13] as Ownable); // GivePropertyToPlayer(CurrentPlayer,Board[14] as Ownable); // GivePropertyToPlayer(CurrentPlayer,Board[15] as Ownable); // GivePropertyToPlayer(CurrentPlayer,Board[16] as Ownable); // GivePropertyToPlayer(CurrentPlayer,Board[18] as Ownable); // GivePropertyToPlayer(CurrentPlayer,Board[19] as Ownable); //CurrentPlayer.BalanceManager.GetMoneyFromPlayer(1500); // ActivePlayers[1].BalanceManager.GetMoneyFromPlayer(1500); // ActivePlayers[2].BalanceManager.GetMoneyFromPlayer(1500); // GivePropertyToPlayer(CurrentPlayer, Board[1] as Ownable); // GivePropertyToPlayer(CurrentPlayer, Board[3] as Ownable); // GivePropertyToPlayer(CurrentPlayer, Board[6] as Ownable); // GivePropertyToPlayer(CurrentPlayer, Board[5] as Ownable); // GivePropertyToPlayer(CurrentPlayer, Board[8] as Ownable); // GivePropertyToPlayer(CurrentPlayer, Board[9] as Ownable); // GivePropertyToPlayer(CurrentPlayer, Board[11] as Ownable); // GivePropertyToPlayer(CurrentPlayer, Board[12] as Ownable); yield return(StartCoroutine(_uIManager.PlayerInfoManager.SetPlayerInfo())); yield return(StartCoroutine(_uIManager.StartTurn())); while (GameInProgress) { switch (State) { case States.Default: switch (CurrentPlayer.CurrentState) { // case Player.State.Moving: // yield return new WaitUntil(() => CurrentPlayer.CurrentState!=Player.State.Moving); // break; // case Player.State.OfferToBuyProperty: // yield return new WaitUntil(() => CurrentPlayer.CurrentState!=Player.State.OfferToBuyProperty); // Debug.Log("САНЯ ХУЙ СОСИ"); // break; // case Player.State.OfferToBuyHouse: // yield return new WaitUntil(() => CurrentPlayer.CurrentState!=Player.State.OfferToBuyHouse); // break; // case Player.State.OfferToMortgageProperty: // yield return new WaitUntil(() => CurrentPlayer.CurrentState!=Player.State.OfferToMortgageProperty); // break; // case Player.State.OfferToRedeemProperty: // yield return new WaitUntil(() => CurrentPlayer.CurrentState!=Player.State.OfferToRedeemProperty); // break; // case Player.State.OfferToSellHouse: // yield return new WaitUntil(() => CurrentPlayer.CurrentState!=Player.State.OfferToSellHouse); // break; case Player.State.EndTurn: yield return(StartCoroutine(_uIManager.PlayerInfoManager.EndTurn())); _players.Enqueue(CurrentPlayer); CurrentPlayer = _players.Dequeue(); CurrentPlayer.CurrentState = Player.State.StartTurn; yield return(StartCoroutine(_uIManager.StartTurn())); break; case Player.State.Idle: if (DiceRoller.IsDouble()) { if (DiceRoller.DoublesInARow == 3) { JailManager.PutPLayerInJail(); DiceRoller.DoublesInARow = 0; } else { CurrentPlayer.CurrentState = Player.State.StartTurn; } } break; case Player.State.Bankrupt: yield return(StartCoroutine(_uIManager.PlayerInfoManager.EndTurn())); CurrentPlayer = _players.Dequeue(); CurrentPlayer.CurrentState = Player.State.StartTurn; if (_players.Count == 0) { GameInProgress = false; _uIManager.EndGame(); } else { yield return(StartCoroutine(_uIManager.StartTurn())); } break; } if (CurrentPlayer.InJail && CurrentPlayer.CurrentState == Player.State.StartTurn) { yield return(StartCoroutine(JailManager.TurnInJail())); } break; case States.Auction: yield return(new WaitWhile(() => State == States.Auction)); break; case States.Trade: yield return(new WaitWhile(() => State == States.Trade)); break; } yield return(null); } }