Beispiel #1
0
 private void SendPlayerUpdate(ITAlertPlayer player)
 {
     _photonClient.CurrentRoom.Messenger.SendMessage(new UpdatePlayerMessage <ITAlertPlayer>
     {
         Player = player
     });
 }
Beispiel #2
0
        private void ShowEndGameScore(TeamScoringSystem teamScoringSystem, List <ITAlertPlayer> players)
        {
            var parent = _teamScoresParent.transform;

            foreach (Transform t in parent)
            {
                Destroy(t.gameObject);
            }

            var playerScores = teamScoringSystem.GetPlayerScores();
            var multiplier   = teamScoringSystem.GetAverageHealth();
            var finalScore   = teamScoringSystem.GetTeamScore();

            foreach (var scores in playerScores)
            {
                var playerbehaviours = GameObjectUtilities.FindGameObject("Game").GetComponentsInChildren <PlayerBehaviour>().ToDictionary(p => p.Id, p => p.PhotonId);
                playerbehaviours.TryGetValue(scores.PlayerEntityId, out var playerPhotonId);

                var player = players.FirstOrDefault(p => p.PhotonId == playerPhotonId);

                if (player == null)
                {
                    player = new ITAlertPlayer()
                    {
                        Colour = "#FFFFFF", Name = "Temp Player"
                    };
                }
                CreateScoreObject(parent, player.Name, scores.PublicScore.ToString(), player.Colour);
            }

            // now create the multiplier object
            var multiplierObj = parent.transform.parent.Find("Multiplier").gameObject;

            SetupScoreObject(multiplierObj, Localization.Get("GAME_OVER_MULTIPLIER"), multiplier.ToString(Localization.SpecificSelectedLanguage));
            // Finally create the final score object

            var finalScoreObj = parent.transform.parent.Find("FinalScore").gameObject;

            SetupScoreObject(finalScoreObj, Localization.Get("GAME_OVER_FINAL_SCORE"), finalScore.ToString(Localization.SpecificSelectedLanguage));

            parent.gameObject.BestFit();
            multiplierObj.BestFit();
            finalScoreObj.BestFit();
        }
Beispiel #3
0
        private void UpdatePlayerVoiceItem(ITAlertPlayer player, PlayerVoiceItem playerVoiceItem)
        {
            if (ColorUtility.TryParseHtmlString(player.Colour, out var colour))
            {
                playerVoiceItem.NameText.color           = colour;
                playerVoiceItem.ScoreText.color          = colour;
                playerVoiceItem.VoiceIcon.color          = colour;
                playerVoiceItem.ScoreIncrementText.color = colour;

                if (PhotonNetwork.player.ID == player.PhotonId && PlatformUtils.IsMobile)
                {
                    UpdatePressToTalkButton(colour);
                }
            }
            if (playerVoiceItem.NameText.text != player.Name)
            {
                playerVoiceItem.NameText.GetComponent <TextCutoff>().text = player.Name;
            }
        }
Beispiel #4
0
        //public void ShowErrorPopup(string msg)
        //{
        //	// Show error on popup
        //	var errorPanel = UnityEngine.Object.Instantiate(Resources.Load("ErrorContentPanel")) as GameObject;
        //	var errorMsg = errorPanel.transform.GetChild(1).GetComponent<UnityEngine.UI.Text>();
        //	errorMsg.text = msg;

        //	_popupBehaviour.ClearContent();
        //	_popupBehaviour.SetPopup(Localization.Get("ERROR_LABEL_TITLE"), new[] {new PopupBehaviour.Output(Localization.Get("ERROR_BUTTON_CLOSE"), null)}, PopupClosed);
        //	_popupBehaviour.SetContent(errorPanel.GetComponent<RectTransform>());

        //	_popupPanel.gameObject.SetActive(true);
        //}

        //public void ShowLoadingPopup( /*UnityAction cancelAction = null*/)
        //{
        //	// Show the loading popup along with a button to cancel
        //	var loadingPanel = UnityEngine.Object.Instantiate(Resources.Load("LoadingContentPanel")) as GameObject;

        //	_popupBehaviour.ClearContent();
        //	_popupBehaviour.SetPopup("", null, PopupClosed);
        //	_popupBehaviour.SetContent(loadingPanel.GetComponent<RectTransform>());

        //	_popupPanel.gameObject.SetActive(true);
        //}

        //public void HideLoadingPopup()
        //{
        //	PopupClosed();
        //}

        public void ShowColorPickerPopup(Action <PlayerColour> callback, IEnumerable <ITAlertPlayer> players, ITAlertPlayer currentPlayer)
        {
            var colorPanel = UnityEngine.Object.Instantiate(Resources.Load("ColorPickerContentPanel")) as GameObject;

            if (colorPanel != null)
            {
                colorPanel.name = "ColorPickerContentPanel";
                _popupBehaviour.ClearContent();

                _colourPickerBehaviour = colorPanel.GetComponent <ColourPickerBehaviour>();
                _colourPickerBehaviour.GenerateColorPicker(players.ToList(), currentPlayer);

                _photonClient.CurrentRoom.PlayerListUpdatedEvent += _colourPickerBehaviour.UpdateSelectedGlyphs;
                _popupBehaviour.SetPopup(Localization.Get("ICON_PICKER_LABEL_TITLE"),
                                         new[]
                {
                    new PopupBehaviour.Output(Localization.Get("ICON_PICKER_BUTTON_CANCEL"), null),
                    new PopupBehaviour.Output(Localization.Get("ICON_PICKER_BUTTON_SELECT"), () => ColorCallback(callback))
                },
                                         PopupClosed
                                         );
                _popupBehaviour.SetContent(colorPanel.RectTransform());
            }

            _popupPanel.gameObject.SetActive(true);
        }
Beispiel #5
0
        public void GenerateColorPicker(List <ITAlertPlayer> players, ITAlertPlayer currentPlayer)
        {
            _currentPlayer = currentPlayer;

            _playerColour = new PlayerColour
            {
                Colour = currentPlayer.Colour ?? "#ffffff",
                Glyph  = currentPlayer.Glyph
            };
            _playerGlyphs = new Dictionary <string, PlayerGlyph>();

            if (_colourPickerRow != null && _colourPickerObject != null)
            {
                return;
            }

            _colourPickerObject = Resources.Load <GameObject>("ColorPickerObject");
            _colourPickerRow    = Resources.Load <GameObject>("ColorPickerRow");

            const int cols = 3;
            var       rows = Mathf.CeilToInt((float)PlayerColour.Glyphs.Length / cols);

            var index = 0;

            for (var i = 0; i < rows; i++)
            {
                if (index >= PlayerColour.Glyphs.Length)
                {
                    continue;
                }

                var row = Instantiate(_colourPickerRow);
                row.transform.SetParent(_colourPickerPanel.transform, false);

                for (var j = 0; j < cols; j++)
                {
                    if (index >= PlayerColour.Glyphs.Length)
                    {
                        continue;
                    }

                    var glyphName = PlayerColour.Glyphs[index];

                    var colourPickerEntry = Instantiate(_colourPickerObject);
                    colourPickerEntry.transform.SetParent(row.transform, false);

                    var image     = colourPickerEntry.GetComponent <Image>();
                    var sprite    = Resources.Load <Sprite>($"playerglyph_{glyphName}");
                    var iconImage = colourPickerEntry.transform.FindImage("Icon");
                    iconImage.sprite = sprite;

                    var button = colourPickerEntry.GetComponent <Button>();
                    button.onClick.AddListener(delegate { SetGlyph(glyphName); });
                    index++;

                    _playerGlyphs.Add(glyphName, new PlayerGlyph
                    {
                        Button = button,
                        Image  = image
                    });
                }

                UpdateSelectedGlyphs(players);
            }
        }