Esempio n. 1
0
    private void ServerState_GameRound()
    {
        isPlaying = true;

        if (currentTurnPlayer != null)
        {
            if (currentTurnPlayer is HumanPlayer)
            {
                var msg = new ServerAssignTurnMsg();
                msg.isTurn    = true;
                msg.firstTurn = false;
                NetworkServer.SendToClientOfPlayer(currentTurnPlayer.gameObject, ServerAssignTurnMsg.msgID, msg);
            }
            else if (currentTurnPlayer is BotPlayer)
            {
                currentTurnPlayer.AssignTurn(true, false);
            }
        }

        ServerEnterGameState(GameState.GameRound, "<color=magenta>" + currentTurnPlayer.playerName + "</color>'s turn");
    }
Esempio n. 2
0
    private void ServerState_FirstRound()
    {
        isPlaying = true;

        int min = 0;
        int max = Enum.GetValues(typeof(Card.Suit)).Length *Enum.GetValues(typeof(Card.Rank)).Length;  //impossibru tho

        currentTurnPlayer = null;

        while (currentTurnPlayer == null)
        {
            min++;
            for (int i = 0; i < gamePlayersList.Count; i++)
            {
                List <CardData> lcd = gamePlayersList[i].GetComponent <Hand>().cardDatas.ToList();
                if (lcd.Exists(c => c.value == min))
                {
                    CardData cd = lcd.Find(c => c.value == min);
                    currentPlayerIndex = i;
                    currentTurnPlayer  = gamePlayersList[i];
                    break;
                }
            }
        }

        CmdUpdateLowestCard(min);

        ServerEnterGameState(GameState.FirstRound, "<color=magenta>" + currentTurnPlayer.playerName + "</color>'s turn");

        if (currentTurnPlayer is HumanPlayer)
        {
            var msg = new ServerAssignTurnMsg();
            msg.isTurn = msg.firstTurn = true;
            NetworkServer.SendToClientOfPlayer(currentTurnPlayer.gameObject, ServerAssignTurnMsg.msgID, msg);
        }
        else if (currentTurnPlayer is BotPlayer)
        {
            currentTurnPlayer.AssignTurn(true, true);
        }
    }
Esempio n. 3
0
    private void ServerState_NewRound()
    {
        isPlaying = true;

        passTurnAmount = 0;

        currentPlayedHand.Clear();
        currentTurnPlayer  = currentWinningPlayer;
        currentPlayerIndex = gamePlayersList.IndexOf(currentTurnPlayer);

        ServerEnterGameState(GameState.NewRound, "<color=magenta>" + currentTurnPlayer.playerName + "</color>'s turn");

        if (currentTurnPlayer is HumanPlayer)
        {
            var msg = new ServerAssignTurnMsg();
            msg.isTurn = msg.firstTurn = true;
            NetworkServer.SendToClientOfPlayer(currentTurnPlayer.gameObject, ServerAssignTurnMsg.msgID, msg);
        }
        else if (currentTurnPlayer is BotPlayer)
        {
            currentTurnPlayer.AssignTurn(true, true);
        }
    }
Esempio n. 4
0
    private void ServerNextPlayer()
    {
        Debug.Log("ServerNextPlayer");

        if (currentTurnPlayer != null)
        {
            if (currentTurnPlayer is HumanPlayer)
            {
                var msg = new ServerAssignTurnMsg();
                msg.isTurn = msg.firstTurn = false;
                NetworkServer.SendToClientOfPlayer(currentTurnPlayer.gameObject, ServerAssignTurnMsg.msgID, msg);
            }
            else if (currentTurnPlayer is BotPlayer)
            {
                currentTurnPlayer.AssignTurn(false, false);
            }
        }

        /*else
         * {
         *  currentPlayerIndex--;
         * }*/

        currentTurnPlayer = null;

        while (currentTurnPlayer == null)
        {
            /*if(gamePlayersList.Count < 2)
             * {
             *  break;
             * }*/

            currentPlayerIndex++;

            if (currentPlayerIndex >= gamePlayersList.Count)
            {
                currentPlayerIndex = 0;
            }

            currentTurnPlayer = gamePlayersList[currentPlayerIndex];
            Debug.Log("current turn player name: " + currentTurnPlayer.playerName);
        }

        if (currentTurnPlayer == currentWinningPlayer)
        {
            passTurnAmount = 0;
            ServerNextState(StringEnum.GetStringValue(GameState.NewRound));
        }
        else
        {
            if (gameState == GameState.FirstRound && currentPlayedHand.Count < 1)
            {
                currentWinningPlayer = currentTurnPlayer;
                ServerNextState(StringEnum.GetStringValue(GameState.NewRound));
            }
            else
            {
                ServerNextState(StringEnum.GetStringValue(GameState.GameRound));
            }
        }
    }