Exemple #1
0
        private void UpdateServerStartButton()
        {
            int[] teams = TeamTracker.GetInstance().GetTeams();
            if (teams[0] == 0 || teams[1] == 0)
            {
                startGameButtonText.text = "Waiting for teams";
                allowServerStart         = false;
                return;
            }

            bool allReady = true;

            foreach (GameObject player in PlayerTracker.GetInstance().GetPlayers())
            {
                if (!player)
                {
                    continue;
                }
                PlayerDataForClients settings = player.GetComponent <PlayerDataForClients>();
                if (!settings.GetIsReadyFlag() && !settings.GetIsServerFlag())
                {
                    allReady = false;
                }
            }

            startGameButtonText.text = allReady ? "Start game" : "Waiting on ready";
            allowServerStart         = allReady;
        }
Exemple #2
0
 public void Start()
 {
     foreach (GameObject player in PlayerTracker.GetInstance().GetPlayers())
     {
         AddColourChangeEvent(player);
     }
     PlayerTracker.GetInstance().OnPlayerAdded += AddColourChangeEvent;
 }
Exemple #3
0
        private void UpdateScoreboard()
        {
            SortedDictionary <int, List <GameObject> > scores = new SortedDictionary <int, List <GameObject> >(new DescendingComparer <int>());

            if (scoreboardEntryPrefab == null)
            {
                return;
            }

            foreach (GameObject player in PlayerTracker.GetInstance().GetPlayers())
            {
                if (player == null || player.GetComponent <PlayerDataForClients>() == null)
                {
                    continue;
                }

                int team = player.GetComponent <PlayerDataForClients>().GetTeam();
                if (team == PlayerDataForClients.TEAM_SPECTATOR)
                {
                    continue;
                }

                GameObject        entry = Instantiate(scoreboardEntryPrefab);
                ScoreboardEntryUI ui    = entry.GetComponent <ScoreboardEntryUI>();
                ui.SetName(player.GetComponent <PlayerDataForClients>().GetName());

                int score = player.GetComponent <PlayerDataForClients>().GetScore();
                ui.SetScore(score);
                if (player == PlayerTracker.GetInstance().GetLocalPlayer())
                {
                    ui.FlagCurrentPlayer();
                }

                entry.transform.SetParent(scoreboardViewport.transform, false);

                if (!scores.ContainsKey(score))
                {
                    scores.Add(score, new List <GameObject>());
                }
                scores[score].Add(entry);
            }

            int counter = 0;

            foreach (KeyValuePair <int, List <GameObject> > values in scores)
            {
                foreach (GameObject player in values.Value)
                {
                    Vector3 localPos = player.GetComponent <RectTransform>().localPosition;
                    player.GetComponent <RectTransform>().localPosition = new Vector3(localPos.x, -(entryPrefabHeight / 2) + (-(entryPrefabHeight + 2) * counter), localPos.z);
                    counter++;
                }
            }

            RectTransform transform = scoreboardViewport.GetComponent <RectTransform>();

            transform.sizeDelta = new Vector2(transform.sizeDelta.x, counter * (entryPrefabHeight + 2));
        }
Exemple #4
0
        public void SetReadyState(bool isReady)
        {
            PlayerTracker.GetInstance().GetLocalPlayer().GetComponent <PlayerDataForClients>().SetIsReadyFlag(isReady);
            if (readyWaitingButton == null || readyNowButton == null)
            {
                return;
            }

            readyWaitingButton.SetActive(!isReady);
            readyNowButton.SetActive(isReady);
        }
Exemple #5
0
        // on start instead of awake to make sure it happens afterwards (check if better way)
        public void Start()
        {
            foreach (GameObject player in PlayerTracker.GetInstance().GetPlayers())
            {
                NewLobbyPlayerAdded(player);
            }
            PlayerTracker.GetInstance().OnPlayerAdded   += NewLobbyPlayerAdded;
            PlayerTracker.GetInstance().OnPlayerRemoved += OldLobbyPlayerRemoved;

            TeamTracker.GetInstance().OnTeamChanged += UpdateVersusText;
            TeamTracker.GetInstance().ForceRecount();
        }
Exemple #6
0
        public void Awake()
        {
            if (State.GetInstance().Network() == State.NETWORK_SERVER)
            {
                SubscribeToServerPlaying();

                foreach (GameObject player in PlayerTracker.GetInstance().GetPlayers())
                {
                    ResetPlayerScore(player);
                }
                PlayerTracker.GetInstance().OnPlayerAdded += ResetPlayerScore;
            }
        }
Exemple #7
0
        private void NewLobbyPlayerAdded(GameObject player)
        {
            if (viewportContent == null)
            {
                return;
            }

            bool isLocalPlayer = player == PlayerTracker.GetInstance().GetLocalPlayer();

            GameObject lobbyEntry = Instantiate(isLocalPlayer ? localPlayerEntryPrefab : otherPlayerEntryPrefab);

            lobbyEntry.transform.SetParent(viewportContent.transform, false);
            lobbyEntry.GetComponent <EntryInterface>().SetPlayerObject(player);

            lobbyEntries.Add(player.GetInstanceID(), lobbyEntry);

            AlignLobbyEntriesInViewport();
        }
Exemple #8
0
        private IEnumerator CalculateScore()
        {
            while (keepScoring)
            {
                GameObject highestXPlayer = null;
                float      highestX       = float.MinValue;
                foreach (GameObject player in PlayerTracker.GetInstance().GetPlayers())
                {
                    if (player.transform.position.x > highestX)
                    {
                        highestXPlayer = player;
                        highestX       = player.transform.position.x;
                    }
                }

                highestXPlayer.GetComponent <PlayerDataForClients>().ServerIncrementScore();

                yield return(new WaitForSeconds(0.25f));
            }
        }