public void moveGoti(int current, int next)
 {
     if (next >= 0)
     {
         try
         {
             if (!this.isMoving)
             {
                 StartCoroutine(moveGotiSteps(next));
             }
         }
         catch (System.Exception ex)
         {
             Debug.Log("moveGoti Exception " + ex.Message);
         }
     }
     if (next == -1)
     {
         transform.position   = InitialPositionVector;
         transform.localScale = new Vector3(1f, 1f, 1f);
         currentPosition      = -1;
         isLock = true;
         LudoDelegate.closeGoti();
         this.CellNumber = -1;
     }
     LudoDelegate.refreshCell();
 }
Beispiel #2
0
 void winner(BasePlayer player)
 {
     winnerPanel.SetActive(true);
     winnerPanel.GetComponent <WinnerClass>().showWinner(player.getName(), true);
     winAnimation.SetActive(true);
     LudoDelegate.playClapSound();
 }
        void onReceivedServerMessage(string sender, string message)
        {
            try{
                JSONNode s = JSON.Parse(message);
                switch (s[ServerTags.TAG])
                {
                case ServerTags.ROOM_INFO:
                {
                    JSONNode pl     = s[ServerTags.ROOM_DATA];
                    string   player = PlayerPrefs.GetString(GetPlayerDetailsTags.PLAYER_ID);
                    for (int i = 0; i < pl.Count; i++)
                    {
                        JSONNode data = pl[i];
                        Debug.Log(data[ServerTags.DISPLAY_NAME] + "Color " + data[ServerTags.COLOR]);
                        if (int.Parse(data[ServerTags.COLOR]) > -1)
                        {
                            LudoDelegate.usedColor(data[ServerTags.DISPLAY_NAME], int.Parse(data[ServerTags.COLOR]));
                            if (player.Equals(data[ServerTags.PLAYER_ID]))
                            {
                                colorAssign(int.Parse(data[ServerTags.COLOR]));
                            }
                        }
                    }
                }

                break;
                }
            }
            catch (System.Exception ex)
            {
                Debug.Log(ex.Message);
            }
        }
        public void StartGame()
        {
            if (PlayerPrefs.GetInt(LudoTags.GAME_TYPE) != LudoTags.OFFLINE)
            {
                if (this.myColor > 0)
                {
                    appwarp.joinGame(this.myColor);

                    LoadingText.SetActive(true);

                    if (PlayerPrefs.GetInt(LudoTags.ROOM_TYPE) == LudoTags.PUBLIC)
                    {
                        //appwarp.ServerMessage = "Waiting for Opponent";
                        //loading.GetComponent<LoadingPanel>().startTimer(10, "No Opponent found. Try after some time.");
                    }
                    else
                    {
                        colorSelectionPanel.SetActive(false);
                        //loading.SetActive(true);
                        // appwarp.ServerMessage = "Creating Table";
                        //loading.GetComponent<LoadingPanel>().startTimer(15, "Unable to create private table. Please try again later.");
                    }
                }
            }
            else
            {
                if (this.myColor == 0)
                {
                    colorSelectionPanel.transform.Find("Box").GetComponent <ColorSelection>().defaultColor();
                }
                LudoDelegate.startGame();
                colorSelectionPanel.SetActive(false);
            }
        }
 public void defaultColor()
 {
     LudoDelegate.selectColor(this.Red, "Player1", 1);
     LudoDelegate.selectColor(this.Yellow, "Player2", 3);
     LudoDelegate.selectColor(this.Green, "Player3", 2);
     LudoDelegate.selectColor(this.Blue, "Player4", 4);
 }
Beispiel #6
0
        /* void sendDiceNumber(BasePlayer player, int number)
         * {
         *   LudoDelegate.showDice(player.getUser(), number);
         *
         * }
         */

        void onNumberSelection(int number, string player, int goti1)
        {
            try
            {
                if (PlayerPrefs.GetInt(LudoTags.GAME_TYPE) == LudoTags.OFFLINE)
                {
                    if (player.Equals(playerList[currentPlayer].getUser()))
                    {
                        playerList[currentPlayer].moveGotibySelection(number, goti1);
                        responded = true;
                    }
                }
                else
                {
                    if (player.Equals(playerList[currentPlayer].getUser()))
                    {
                        appwarp.userSelectGoti(goti1, number);
                    }
                }
            }
            catch (System.Exception ex)
            {
                Debug.Log(ex.Message);
            }
            LudoDelegate.stopAnimation();
        }
Beispiel #7
0
 public void onChatReceived(ChatEvent eventObj)
 {
     Debug.Log(eventObj.getSender() + "  :  " + eventObj.getMessage());
     if (WarpClient.GetInstance() != null)
     {
         LudoDelegate.sendMessage(eventObj.getSender(), eventObj.getMessage());
     }
 }
 void playerWithDic()
 {
     LudoDelegate.diceClick(this.currentPlayer);
     LudoDelegate.playDiceSound();
     enable     = false;
     isRotation = true;
     StartCoroutine(stopRotation());
 }
 public void onDiceRollStart(string player, int num)
 {
     this.currentPlayer = player;
     this.number        = num;
     isRotation         = true;
     LudoDelegate.playDiceSound();
     StartCoroutine(stopRotationByOpponent());
 }
 void checkSafePlace()
 {
     foreach (int j in LudoManager.safePlace)
     {
         if (j == this.CellNumber)
         {
             LudoDelegate.safePlace();
         }
     }
 }
Beispiel #11
0
        public void MoveGoti(int gotiNumber, int from, int to)
        {
            GotiScript obj = this.getGotiByNumber(gotiNumber);

            if (obj != null)
            {
                obj.moveGoti(from, to);
            }
            LudoDelegate.stopAnimation();
        }
        IEnumerator stopRotation()
        {
            yield return(new WaitForSeconds(0.5f));

            isRotation = false;
            enable     = false;
            transform.GetComponent <Image>().sprite = Resources.Load <Sprite>("Dices/dice_" + this.number);
            LudoDelegate.diceRollDone(this.currentPlayer, this.number);
            //transform.gameObject.SetActive(false);
        }
 public void gotiWin()
 {
     Debug.Log("Goti Win " + this.index);
     if (PlayerPrefs.GetInt(LudoTags.GAME_TYPE) == LudoTags.OFFLINE)
     {
         LudoDelegate.gotiWin(this.index, this.playerID);
     }
     isWin = true;
     transform.gameObject.SetActive(true);
 }
Beispiel #14
0
        void onGotiWin(int index, string playerID)
        {
            BasePlayer player = this.getPlayerByID(playerID);

            if (player != null)
            {
                Debug.Log("Working");
                winAnimation.SetActive(true);
                LudoDelegate.playClapSound();
                StartCoroutine(stopAnimation());
            }
            if (PlayerPrefs.GetInt(LudoTags.GAME_TYPE) == LudoTags.OFFLINE)
            {
                this.reChance = true;
            }
        }
 public void MusicAction()
 {
     Debug.Log("MUSIC " + musicOn);
     if (musicOn == 1)
     {
         LudoDelegate.changeSoundSetting(false);
         musicBtn.GetComponent <Image>().sprite = Resources.Load <Sprite>("images/new/unselected_box");
         PlayerPrefs.SetInt(GameTags.MUSIC_ON, 0);
         musicOn = 0;
     }
     else
     {
         LudoDelegate.changeSoundSetting(true);
         musicBtn.GetComponent <Image>().sprite = Resources.Load <Sprite>("images/new/selected_box");
         PlayerPrefs.SetInt(GameTags.MUSIC_ON, 1);
         musicOn = 1;
     }
 }
        public void gotiAction()
        {
            if (TurnValue.Count > 1)
            {
                if (currentPosition == -1)
                {
                    if (userHasOne() && userHasSix())
                    {
                        LudoDelegate.showPanel(playerID, TurnValue, this.myColor, transform.position, this.index);
                    }
                    else
                    {
                        if (userHasSix())
                        {
                            LudoDelegate.selectNumber(6, this.playerID, this.index);
                        }
                        else if (userHasOne())
                        {
                            LudoDelegate.selectNumber(1, this.playerID, this.index);
                        }
                    }
                }
                else
                {
                    LudoDelegate.showPanel(playerID, TurnValue, this.myColor, transform.position, this.index);
                }
            }
            else if (TurnValue.Count == 1)
            {
                int number = int.Parse(TurnValue[0]);

                if (currentPosition == -1)
                {
                    if (number == 6 || number == 1)
                    {
                        LudoDelegate.selectNumber(number, this.playerID, this.index);
                    }
                }
                if (currentPosition != -1)
                {
                    LudoDelegate.selectNumber(number, this.playerID, this.index);
                }
            }
        }
        IEnumerator moveGotiSteps(int next)
        {
            this.isMoving = true;
            int i = currentPosition + 1;

            while (i <= next)
            {
                int nextPos = 0;
                int Object  = 0;
                if (i >= 51)
                {
                    nextPos = homeEntryPoint + i - 51;
                    Object  = nextPos;
                }
                else
                {
                    nextPos = initialPosition + i;
                    Object  = nextPos > 52 ? nextPos - 52 : nextPos;
                }


                GameObject pos = GameObject.Find("" + Object);
                transform.position = pos.transform.position;
                currentPosition    = i;
                this.CellNumber    = Object;
                LudoDelegate.refreshCell();
                LudoDelegate.playGotiSound();
                i++;
                yield return(new WaitForSeconds(0.2f));
            }
            if (next == GotiScript.LIMIT)
            {
                gotiWin();
            }
            Debug.Log(this.playerID + " ----" + this.index + " : " + next);
            checkSafePlace();
            if (PlayerPrefs.GetInt(LudoTags.GAME_TYPE) == LudoTags.OFFLINE)
            {
                LudoDelegate.movementComplete();
            }
            this.isMoving = false;
        }
 public void YesAction()
 {
     if (PlayerPrefs.GetInt(LudoTags.GAME_TYPE) != LudoTags.OFFLINE)
     {
         if (appwarp.socketConnected)
         {
             appwarp.leaveGame();
         }
         else
         {
             SceneManager.LoadSceneAsync("MainLobby");
         }
     }
     else
     {
         LudoDelegate.leaveGame();
         // SceneManager.LoadSceneAsync("LobiScene");
     }
     transform.gameObject.SetActive(false);
 }
Beispiel #19
0
 bool checkForGotiCut()
 {
     foreach (GameObject myGoti in playerList[currentPlayer].getPlayeGoti())
     {
         int myPosition = myGoti.GetComponent <GotiScript>().CellNumber;
         if (!checkSafePlace(myPosition))
         {
             if (myPosition >= 0)
             {
                 for (int i = 0; i < playerList.Length; i++)
                 {
                     if (i != this.currentPlayer)
                     {
                         int numberoOfGoti = 0;
                         int gotiIndex     = 0;
                         foreach (GameObject opponent in playerList[i].getPlayeGoti())
                         {
                             int opponentPosition = opponent.GetComponent <GotiScript>().CellNumber;
                             if (myPosition == opponentPosition)
                             {
                                 numberoOfGoti++;
                                 gotiIndex = opponent.GetComponent <GotiScript>().index;
                             }
                         }
                         if (numberoOfGoti == 1)
                         {
                             LudoDelegate.closeGoti();
                             Debug.Log(playerList[currentPlayer].getName() + " find Goti of " + playerList[i].getName() + " at " + myPosition);
                             playerList[i].MoveGoti(gotiIndex, myPosition, -1);
                             return(true);
                         }
                     }
                 }
             }
         }
     }
     return(false);
 }
        public void TapGotiAction()
        {
            if (this.Enable)
            {
                if (PlayerPrefs.GetInt(LudoTags.GAME_TYPE) != LudoTags.OFFLINE)
                {
                    if (this.playerID.Equals(PlayerPrefs.GetString(GetPlayerDetailsTags.PLAYER_ID)))
                    {
                        gotiAction();
                    }
                }
                else
                {
                    gotiAction();
                }
            }
            else
            {
                Debug.Log("is not enable");
            }

            LudoDelegate.refreshCell();
        }
        void colorAssign(int index)
        {
            switch (index)
            {
            case 1:
                LudoDelegate.selectColor(this.Red, "Player1", 1);
                LudoDelegate.selectColor(this.Yellow, "Player2", 3);
                LudoDelegate.selectColor(this.Green, "Player3", 2);
                LudoDelegate.selectColor(this.Blue, "Player4", 4);

                break;

            case 2:
                LudoDelegate.selectColor(this.Green, "Player1", 2);
                LudoDelegate.selectColor(this.Blue, "Player2", 4);
                LudoDelegate.selectColor(this.Yellow, "Player3", 3);
                LudoDelegate.selectColor(this.Red, "Player4", 1);

                break;

            case 4:
                LudoDelegate.selectColor(this.Blue, "Player1", 4);
                LudoDelegate.selectColor(this.Green, "Player2", 2);
                LudoDelegate.selectColor(this.Red, "Player3", 1);
                LudoDelegate.selectColor(this.Yellow, "Player4", 3);

                break;

            case 3:
                LudoDelegate.selectColor(this.Yellow, "Player1", 3);
                LudoDelegate.selectColor(this.Red, "Player2", 1);
                LudoDelegate.selectColor(this.Blue, "Player3", 4);
                LudoDelegate.selectColor(this.Green, "Player4", 2);

                break;
            }
        }
        void Start()
        {
            Screen.sleepTimeout = SleepTimeout.NeverSleep;
            try
            {
                // loading = transform.Find("LoadingGamePanel").gameObject;
                LoadingText.SetActive(false);
                //chatButton = GameObject.FindGameObjectWithTag("ChatButton");
                // smileyButton = GameObject.FindGameObjectWithTag("SmileyButton");
            } catch (System.Exception ex)
            {
                Debug.Log(ex.Message);
            }
            try
            {
                // quitGamePanel = transform.Find("QuitGamePanel").gameObject;
                //  privateInfo = transform.Find("PrivateTablePage").gameObject;
                quitGamePanel.SetActive(false);
            }
            catch (System.Exception ex)
            {
                Debug.Log(ex.Message);
            }

            try
            {
                // messagePanel = transform.Find("MessagePanel").gameObject;
                // smileyPanel = transform.Find("SmileyPanel").gameObject;
                messagePanel.SetActive(false);
                smileyPanel.SetActive(false);
            }
            catch (System.Exception ex)
            {
                Debug.Log(ex.Message);
            }

            try
            {
                // winnerPanel = transform.Find("WinnerPanel").gameObject;
                // lossPanel = transform.Find("LossPanel").gameObject;
                // colorSelectionPanel = transform.Find("SelectColorPanel").gameObject;
            }
            catch (System.Exception ex)
            {
                Debug.Log(ex.Message);
            }

            if (PlayerPrefs.GetInt(LudoTags.GAME_TYPE) != LudoTags.OFFLINE)
            {
                LudoDelegate.startGame();
            }

            if (PlayerPrefs.GetInt(LudoTags.GAME_TYPE) != LudoTags.OFFLINE)
            {
                chatButton.SetActive(true);
                smileyButton.SetActive(true);
            }
            else
            {
                chatButton.SetActive(false);
                smileyButton.SetActive(false);
            }
        }
Beispiel #23
0
 public void numberSelection(GameObject btn)
 {
     LudoDelegate.selectNumber(int.Parse(btn.transform.GetChild(0).GetComponent <Text>().text), this.playerID, this.goti);
     transform.SetSiblingIndex(0);
     hideButton();
 }
Beispiel #24
0
        void onReceivedServerMessage(string sender, string message)
        {
            try{
                JSONNode s = JSON.Parse(message);
                switch (s[ServerTags.TAG])
                {
                case ServerTags.ROOM_INFO:
                {
                    JSONNode pl     = s[ServerTags.ROOM_DATA];
                    string   player = PlayerPrefs.GetString(GetPlayerDetailsTags.PLAYER_ID);
                    for (int i = 0; i < pl.Count; i++)
                    {
                        JSONNode   data         = pl[i];
                        BasePlayer playerObject = this.getPlayerByColor(int.Parse(data[ServerTags.COLOR]));
                        if (playerObject != null)
                        {
                            Debug.Log(data[ServerTags.DISPLAY_NAME] + "assign " + data[ServerTags.PIC]);

                            string imageName  = "1";
                            string playerName = "";
                            string color      = "1";
                            try{
                                imageName = data[ServerTags.PIC];
                                if (imageName.Equals(""))
                                {
                                    imageName = "1";
                                }
                            }catch (System.Exception ex) {
                                imageName = "1";
                            }
                            try
                            {
                                color = data[ServerTags.COLOR];
                            }
                            catch (System.Exception ex)
                            {
                                color = "1";
                            }
                            try
                            {
                                playerName = UppercaseFirst(data[ServerTags.DISPLAY_NAME]);
                            }
                            catch (System.Exception ex)
                            {
                                playerName = "";
                            }
                            LudoDelegate.usedColor(UppercaseFirst(playerName), int.Parse(color));
                            try
                            {
                                playerObject.setPlayer(UppercaseFirst(playerName), data[ServerTags.PLAYER_ID], false, imageName);
                            }catch (System.Exception ex) {
                                Debug.Log(ex.Message + " " + UppercaseFirst(playerName) + "  " + data[ServerTags.PLAYER_ID] + "  " + imageName);
                            }
                        }
                        else
                        {
                            Debug.Log("No player Found");
                        }
                    }
                }

                break;

                case ServerTags.START_DEAL:
                {
                    LudoDelegate.gamePlay();
                    LudoController.isGameStart = true;
                }
                break;


                case ServerTags.TURN:
                {
                    for (int i = 0; i < 4; i++)
                    {
                        playerList[i].stopTurnAnimation();
                    }
                    BasePlayer player = this.getPlayerByID(s[Tags.PLAYER]);
                    if (player != null)
                    {
                        player.TurnAnimation();
                    }

                    LudoDelegate.changeTurn(s[Tags.PLAYER]);
                }
                break;

                case ServerTags.TIMER:
                {
                    timerPanel.SetActive(true);
                    timerPanel.GetComponent <TimerScript>().startTimer(int.Parse(s[Tags.VALUES]));
                }
                break;

                case ServerTags.STOP_TIMER:
                {
                    timerPanel.SetActive(false);
                }
                break;

                case ServerTags.SMILEY:
                {
                    BasePlayer player = this.getPlayerByID(s[Tags.PLAYER]);
                    if (player != null)
                    {
                        player.showSmiley(s[Tags.VALUES]);
                    }
                }

                break;



                case ServerTags.MESSAGE:
                {
                    BasePlayer player = this.getPlayerByID(s[Tags.PLAYER]);
                    if (player != null)
                    {
                        player.showMessage(s[Tags.VALUES]);
                    }
                }

                break;


                case ServerTags.DICE_ROLL:
                {
                    BasePlayer player = this.getPlayerByID(s[Tags.PLAYER]);
                    if (player != null)
                    {
                        Debug.Log("DICE_ROLL " + player.getUser());
                        if (player.getUser().Equals(PlayerPrefs.GetString(GetPlayerDetailsTags.PLAYER_ID)))
                        {
                            player.playerTurn(int.Parse(s[Tags.VALUES]), true);
                        }
                        else
                        {
                            player.playerTurn(int.Parse(s[Tags.VALUES]), false);
                        }
                    }
                }
                break;


                case ServerTags.TOTAL_DICE:
                {
                    BasePlayer player = this.getPlayerByID(s[Tags.PLAYER]);
                    if (player != null)
                    {
                        JSONArray sd = new JSONArray();
                        JSONNode  pl = s[Tags.VALUES];
                        for (int i = 0; i < pl.Count; i++)
                        {
                            sd.Add("" + pl[i]);
                        }
                        player.setNewTurnValue(sd);
                    }
                }
                break;

                case ServerTags.MOVE_GOTI:
                {
                    BasePlayer player = this.getPlayerByID(s[Tags.PLAYER]);
                    if (player != null)
                    {
                        player.MoveGoti(int.Parse(s[Tags.INDEX]), int.Parse(s[Tags.LAST_POSITION]), int.Parse(s[Tags.TO_POSITION]));
                    }
                }
                break;

                case ServerTags.GOTI_WIN:
                {
                    BasePlayer player = this.getPlayerByID(s[Tags.PLAYER]);
                    if (player != null)
                    {
                        Debug.Log("Working");
                        winAnimation.SetActive(true);
                        StartCoroutine(stopAnimation());
                        player.WinGoti(int.Parse(s[Tags.INDEX]));
                        LudoDelegate.playClapSound();
                    }
                }
                break;


                case ServerTags.READY_GOTI:
                {
                    BasePlayer player = this.getPlayerByID(s[Tags.PLAYER]);
                    if (player != null)
                    {
                        player.readyGoti(int.Parse(s[Tags.INDEX]), s["STEPS"]);
                    }
                }
                break;

                case ServerTags.REMOVE_PLAYER:
                {
                    BasePlayer player = this.getPlayerByID(s[Tags.PLAYER]);
                    if (player != null && player.getUser().Equals(PlayerPrefs.GetString(GetPlayerDetailsTags.PLAYER_ID)))
                    {
                        if (!LudoController.isGameStart)
                        {
                            SceneManager.LoadSceneAsync("LobiScene");
                        }
                    }
                }
                break;

                case ServerTags.LEAVE_TABLE:
                {
                    BasePlayer player = this.getPlayerByID(s[Tags.PLAYER]);
                    if (player != null && player.getUser().Equals(PlayerPrefs.GetString(GetPlayerDetailsTags.PLAYER_ID)))
                    {
                        SceneManager.LoadSceneAsync("LobiScene");
                    }
                }
                break;



                case Tags.DICE_ROLL_DONE:
                {
                    BasePlayer player = this.getPlayerByID(s[Tags.PLAYER]);
                    if (player != null && !player.getUser().Equals(PlayerPrefs.GetString(GetPlayerDetailsTags.PLAYER_ID)))
                    {
                        Debug.Log("startDiceAnimation " + player.getUser());
                        player.startDiceAnimation(int.Parse(s[Tags.VALUES]));
                    }
                    if (player != null)
                    {
                        player.addNumberInTurn(int.Parse(s[Tags.VALUES]));
                    }
                }
                break;

                case Tags.WINNER_PLAYER:
                {
                    string player_name = PlayerPrefs.GetString(GetPlayerDetailsTags.PLAYER_ID);
                    string node        = s["PLAYER"];
                    string player_id   = s["PLAYER_ID"];
                    string Wincoin     = s["VALUE"];
                    if (player_id.Equals(player_name))
                    {
                        winnerPanel.SetActive(true);
                        winnerPanel.GetComponent <WinnerClass>().showWinner(node, true);
                        winAnimation.SetActive(true);
                        LudoDelegate.playClapSound();
                    }
                    else
                    {
                        lossPanel.SetActive(true);
                    }
                }

                break;

                case Tags.LOSS_GAME:
                {
                    string player_name = PlayerPrefs.GetString(GetPlayerDetailsTags.PLAYER_ID);
                    string displayName = s["PLAYER"];
                    string player      = s["VALUE"];
                    if (player_name.Equals(player))
                    {
                        lossPanel.SetActive(true);
                    }
                }
                break;

                case ServerTags.ROOM_PRICE:
                {
                    try
                    {
                        string player = PlayerPrefs.GetString(GetPlayerDetailsTags.PLAYER_ID);
                        if (player.Equals(s[ServerTags.PLAYER_ID]))
                        {
                            int fee = int.Parse(s[ServerTags.VALUES]);
                            if (fee > int.Parse(PlayerPrefs.GetString(GetPlayerDetailsTags.PLAYER_COIN)))
                            {
                                CoinValidationPanel.SetActive(true);
                            }
                        }
                    }
                    catch (System.Exception ex)
                    {
                        Debug.Log(ex.Message);
                    }
                }


                break;

                default:
                    break;
                }
            }
            catch (System.Exception ex)
            {
                Debug.Log(ex.Message);
            }
        }
Beispiel #25
0
        IEnumerator startOffline()
        {
            yield return(new WaitForSeconds(1));

            playerList[0].setPlayer(PlayerPrefs.GetString(GetPlayerDetailsTags.PLAYER_NAME), "1", false, PlayerPrefs.GetString(GetPlayerDetailsTags.PLAYER_IMAGE));
            playerList[1].setPlayer("Computer", "2", true, "2");

            for (; currentPlayer < playerList.Length; currentPlayer++)
            {
                if (playerList[currentPlayer].isActive)
                {
                    playerList[currentPlayer].resetTurnNumber();
                    sendTurn(playerList[currentPlayer]);
throwDice:
                    responded     = false;
                    this.reChance = false;
                    int number = Random.Range(1, 8);
                    number = number > 6 ? 6 : number;

                    if (playerList[currentPlayer].isComputer)
                    {
                        playerList[currentPlayer].playerTurn(number, false);
                        yield return(new WaitForSeconds(0.2f));

                        playerList[currentPlayer].startDiceAnimation(number);
                        yield return(new WaitForSeconds(1));

                        playerList[currentPlayer].TurnValue.Add("" + number);
                        playerList[currentPlayer].addNumberInTurn(number);
                        if (number == 6)
                        {
                            if (playerList[currentPlayer].totalTurnNumber() < 18)
                            {
                                goto throwDice;
                            }
                        }
                        if (playerList[currentPlayer].totalTurnNumber() < 18)
                        {
                            if (playerList[currentPlayer].isGotiReadyForMove())
                            {
                                Debug.Log("Computer is thinking " + playerList[currentPlayer].TurnValue.ToString());
                                while (playerList[currentPlayer].TurnValue.Count > 0)
                                {
                                    yield return(new WaitForSeconds(0.5f));

                                    int num = int.Parse(playerList[currentPlayer].TurnValue[0]);
                                    gotiAnimationComplete = false;

                                    Debug.Log(playerList[currentPlayer].getName() + " move Goti for " + num);
                                    if (playerList[currentPlayer].MoveGotiByAI(num))
                                    {
                                        yield return(new WaitUntil(() => gotiAnimationComplete));

                                        if (gotiAnimationComplete)
                                        {
                                            Debug.Log("Goti Animation is done");
                                        }
                                    }
                                    if (playerList[currentPlayer].removeNumber(num))
                                    {
                                        Debug.Log("number is remove " + playerList[currentPlayer].TurnValue.ToString());
                                    }
                                    if (checkForGotiCut())
                                    {
                                        this.reChance = true;
                                    }
                                    LudoDelegate.stopAnimation();
                                }
                            }
                        }
                    }
                    else
                    {
                        playerList[currentPlayer].playerTurn(number, true);
                        yield return(new WaitUntil(() => responded));

                        if (responded)
                        {
                            Debug.Log("Responded For Dice " + playerList[currentPlayer].getName());

                            if (number == 6)
                            {
                                if (playerList[currentPlayer].totalTurnNumber() < 18)
                                {
                                    goto throwDice;
                                }
                                else
                                {
                                    if (currentPlayer == playerList.Length - 1)
                                    {
                                        currentPlayer = -1;
                                    }
                                    continue;
                                }
                            }
askForGoti:
                            if (playerList[currentPlayer].isGotiReadyForMove())
                            {
                                responded = false;


                                yield return(new WaitUntil(() => responded));

                                if (responded)
                                {
                                    responded = false;
                                    Debug.Log("Responded For Goti " + playerList[currentPlayer].getName());
                                    gotiAnimationComplete = false;
                                    yield return(new WaitUntil(() => gotiAnimationComplete));

                                    if (gotiAnimationComplete)
                                    {
                                        Debug.Log("Goti Animation is done");
                                    }

                                    if (checkForGotiCut())
                                    {
                                        this.reChance = true;
                                    }
                                    if (playerList[currentPlayer].TurnValue.Count > 0)
                                    {
                                        goto askForGoti;
                                    }
                                }
                            }
                            else
                            {
                                Debug.Log("Goti is not ready");
                            }
                        }
                    }
                    if (this.reChance)
                    {
                        Debug.Log("Get Rechance " + playerList[currentPlayer].getName());
                        goto throwDice;
                    }
                }

                if (playerList[currentPlayer].checkWinner())
                {
                    this.winner(playerList[currentPlayer]);
                    break;
                }

                if (!checkGameValidation())
                {
                    winnerLastPlayer();
                    break;
                }


                if (currentPlayer == playerList.Length - 1)
                {
                    currentPlayer = -1;
                }
                yield return(new WaitForSeconds(1));
            }
        }