Beispiel #1
0
    // Update is called once per frame
    void Update()
    {
        if (!winner)
        {
            if (myTurn)
            {
                if (gameMaster.currentMover != this)
                {
                    gameMaster.currentMover = this;
                }

                if (turnOver)
                {
                    gameMaster.SwitchTurns();
                }
                else
                {
                    if (gameMaster.gameStart)
                    {
                        if (!diceRolled)
                        {
                            if (playerRolledDice)
                            {
                                StartCoroutine(RollDieCR());
                            }
                            else
                            {
                                player.RollDiceInquiry();
                            }
                        }
                        else if (diceViewed)
                        {
                            StopAllCoroutines();
                            if (isBlack)
                            {
                                turnOver = true;
                            }
                            else
                            {
                                int largerFirstRoll = gameMaster.GetLargerFirstRoll();
                                if (largerFirstRoll == 0)
                                {
                                    turnOver = true;
                                    gameMaster.BlankDiceRollDisplays();
                                }
                                else
                                {
                                    if (largerFirstRoll == roll2)
                                    {
                                        diceRolled = diceViewed = playerRolledDice = false;
                                    }
                                    else
                                    {
                                        turnOver = true;
                                    }
                                    gameMaster.gameStart = false;
                                }
                            }
                        }
                    }
                    //Dice have not been rolled for this turn yet
                    else if (!diceRolled)
                    {
                        if (playerRolledDice)
                        {
                            //Player rolled dice
                            StartCoroutine(RollDiceCR());
                        }
                        else
                        {
                            //Waiting for player to roll dice
                            player.RollDiceInquiry();
                        }
                    }
                    else if (diceViewed && !listsSet)
                    {
                        //Set list of available spots and pieces
                        SetAvailableLists();
                    }
                    else if (listsSet & !initialSet)
                    {
                        //Set Location after lists have been set
                        SetInitialLocation();
                    }
                    else if (listsSet & initialSet)
                    {
                        //Enough time has passed for player to see result of dice
                        player.PickPieceOrSpot(false);
                    }

                    player.CancelInquiry();

                    transform.position = new Vector3(locationX, locationY, locationZ);
                }
            }
            else
            {
                if (gameMaster.currentMover != this && !gameMaster.currentMover.myTurn && !gameMaster.cam.flipping)
                {
                    myTurn = true;
                }
                player.ResetVariables();
                diceRolled       = diceViewed = playerRolledDice = listsSet = initialSet = false;
                meshRend.enabled = false;
            }
        }
    }