Exemplo n.º 1
0
        /// <summary>
        /// again, descriptive name
        /// Ensures that AllPlayers variable contains the same number of players as parser.Players does
        /// </summary>
        private void ensureParserState()
        {
            //Add missing players to AllPlayers
            foreach (var curItem in parser.Players)
            {
                if (!AllPlayers.Select(p => p.AssociatedPlayer).Contains(curItem))
                {
                    if (DamageParser.IsBlacklistedUsername(curItem.Name))
                    {
                        continue;
                    }
                    AllPlayers.Add(new AllPlayersTabPlayerVM(parent, curItem));
                }
            }

            if (parent.IsZanverseSplit)
            {
                if (zanversePlayerVM == null && parser.ZanversePlayer != null) //can be null if zanverse is hidden
                {
                    zanversePlayerVM = new AllPlayersTabPlayerVM(parent, parser.ZanversePlayer);
                    AllPlayers.Add(zanversePlayerVM);
                }
            }
            else if (zanversePlayerVM != null)
            {
                if (AllPlayers.Contains(zanversePlayerVM))
                {
                    AllPlayers.Remove(zanversePlayerVM);
                }
                zanversePlayerVM = null;
            }
        }
Exemplo n.º 2
0
    private void Update()
    {
        if (Current_Player_ID == My_Profile.UserName)
        {
        }
        else
        {
        }
        if (paintingslider)
        {
            paintingslider.value -= Time.deltaTime;
        }
        if (My_Profile.IsMasterClient)
        {
            if (PhotonNetwork.CurrentRoom.PlayerCount == 1 || PhotonNetwork.CurrentRoom.PlayerCount == 0)
            {
                //Just One Player Stay Here Please Win
            }
            if (state == CurrentState.None)
            {
                photonView.RPC("SetCurrentPlayer", RpcTarget.AllBuffered, "0");
                state = CurrentState.WaitingforChoose;
                Debug.Log(state);
            }
            else if (state == CurrentState.WaitingforChoose)
            {
                photonView.RPC("ResetButtons", RpcTarget.AllBuffered);
                answerindex = 0;
                photonView.RPC("DeletePainting", RpcTarget.AllBufferedViaServer);
                photonView.RPC("roundplus", RpcTarget.AllBuffered);
                istimetoPaint  = false;
                istimetoChoose = false;
                photonView.RPC("ActiveSelectionPanel", RpcTarget.AllBuffered, Current_Player_ID, "0");
                photonView.RPC("Active_WaitingforChoose_Panel", RpcTarget.AllBuffered, true);
                state = CurrentState.Empty;
                StartCoroutine(SetRPCCall("SetCurrentPlayer", 2, ""));
                Debug.Log(state);
                waitingtimeforpaint = waitingtimeforpaintindex;
            }
            else if (state == CurrentState.WaitingForSelect)
            {
                Saved_Time     = (int)PhotonNetwork.Time;
                istimetoChoose = true;
                photonView.RPC("ActiveSelectionPanel", RpcTarget.AllBuffered, Current_Player_ID, "1");
                photonView.RPC("Active_WaitingforChoose_Panel", RpcTarget.AllBuffered, false);
                state = CurrentState.Empty;
                CalculatingChoosingTime(Current_Player_ID);
                Debug.Log(state);
            }
            else if (state == CurrentState.inGame)
            {
                photonView.RPC("InitTheBoxes", RpcTarget.AllBuffered);
                photonView.RPC("ResetTimeSlider", RpcTarget.AllBuffered);
                Saved_Time = (int)PhotonNetwork.Time;



                istimetoPaint  = true;
                istimetoChoose = false;
                state          = CurrentState.Empty;
                Debug.Log(state);
                //Game is On the Road
                photonView.RPC("InGamePublic", RpcTarget.AllBuffered);
            }
            else if (state == CurrentState.TimeHasFinish)
            {
                istimetoPaint  = false;
                istimetoChoose = false;
                photonView.RPC("ScoreBoardInit", RpcTarget.AllBuffered);
                //state = CurrentState.WaitingforChoose;
                Debug.Log(state);
                //Players Time Has Finished
                //Current Word is ...
                state = CurrentState.Empty;
            }
            else if (state == CurrentState.NextRound)
            {
                if (GameMode_String == "Round")
                {
                    if (CurrentRound <= MaxRound)
                    {
                        state = CurrentState.WaitingforChoose;
                    }
                    else
                    {
                        state = CurrentState.EndGame;
                    }
                }
                else if (GameMode_String == "Score")
                {
                    foreach (var player in PlayersScore)
                    {
                        if (player.score < 20)
                        {
                            state = CurrentState.WaitingforChoose;
                        }
                        else
                        {
                            state = CurrentState.EndGame;
                            return;
                        }
                    }
                }
                else if (GameMode_String == "Time")
                {
                    if ((int)PhotonNetwork.Time <= Played_Time + 30)
                    {
                        state = CurrentState.WaitingforChoose;
                    }
                    else
                    {
                        state = CurrentState.EndGame;
                    }
                }
                else if (GameMode_String == "Hads")
                {
                    if (CurrentRound <= MaxRound)
                    {
                        state = CurrentState.WaitingforChoose;
                    }
                    else
                    {
                        state = CurrentState.EndGame;
                    }
                }
                Debug.Log(state);

                //Next Round is started
                //Lets Go to  state = CurrentState.WaitingforChoose;
            }
            else if (state == CurrentState.EndGame)
            {
                Debug.Log(state);
                photonView.RPC("Final_Win", RpcTarget.All);
                state = CurrentState.Empty;
            }
            if (istimetoChoose && state == CurrentState.Empty)
            {
                if ((int)PhotonNetwork.Time == Saved_Time + waitingtimeforchoose)
                {
                    state = CurrentState.WaitingforChoose;
                }
            }
            if (istimetoPaint && state == CurrentState.Empty)
            {
                if (((int)PhotonNetwork.Time == Saved_Time + waitingtimeforpaint) || answerindex == PlayersList.Count)
                {
                    state = CurrentState.TimeHasFinish;
                }
                //state = CurrentState.TimeHasFinish;
            }
        }
        if (Current_Player_ID == "0")
        {
            //Waiting For Server to Choosing a Player
        }
        else if (Current_Player_ID == "1")
        {
            //Next Round is Starting
        }
        time_TXT.text = (PhotonNetwork.Time).ToString();

        if (My_Profile == null)
        {
            Debug.LogError("ERROR IN PLAYERID");
            return;
        }


        if (!DoListsMatch(PlayersList, AllPlayers))
        {
            //SomePlayers Are Left The Game
            // Debug.LogWarning("SomePlayers Are Left The Game");
            foreach (var online in PhotonNetwork.CurrentRoom.Players)
            {
                if (!AllPlayers.Contains(online.Value.NickName))
                {
                    Debug.Log(AllPlayers + "Left the Room");
                }
            }
        }

        #region Sliders
        if (WaitingForSelect_SelectionPanel.active == true)
        {
            choosingslider.value -= Time.deltaTime;
        }
        else
        {
            choosingslider.value = 10;
        }

        if (WaitingForSelect_Panel.active == true)
        {
            waitingslider.value  -= Time.deltaTime;
            Waiting_Text_TXT.text = "Waiting For " + Current_Player_ID + " To Choose a Word";
        }
        else
        {
            waitingslider.value = 10;
        }

        #endregion
        if (NumberofPlayers != PhotonNetwork.CurrentRoom.PlayerCount)
        {
            PlayersList.Clear();
            foreach (var player in PhotonNetwork.CurrentRoom.Players)
            {
                PlayersList.Add(player.Value.NickName);
            }
            NumberofPlayers = PhotonNetwork.CurrentRoom.PlayerCount;
        }
    }