/// <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; } }
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; } }