public void SetButtonActions(MageAssignableBuilding.Action action)
 {
     foreach (var actionWithEvent in action.actions)
     {
         UIManager.SetButtonEvent(_thisButton, actionWithEvent);
     }
 }
        public void AddPlayerButton()
        {
            var mageButton = Instantiate(PlayerButtonPrefab);

            MageButtonsList.Add(mageButton);
            mageButton.transform.SetParent(transform, false);
            mageButton.GetComponent <UIAccordionElement>().SetAccordion();
            mageButton.GetComponentInChildren <Text>().text = Player.Data.GetPlayerName();
            SetButtonElement(mageButton, Player.Data.GetElement());
            var profilePage = mageButton.gameObject.transform.GetChild(1);
            var buttons     = profilePage.GetComponentsInChildren <Button>();

            //buttons[0].onClick.AddListener(delegate
            //{
            //    Player.Data.UpgradePlayer();
            //});
            Player.AssignActions();
            foreach (var t in Player.upgrade1Actions)
            {
                UIManager.SetButtonEvent(buttons[0], t);
            }
            //buttons[1].onClick.AddListener(delegate
            //{
            //    Player.Data.UpgradeIdleGenerated();
            //});
            foreach (var t in Player.upgrade2Actions)
            {
                UIManager.SetButtonEvent(buttons[1], t);
            }


            mageButton.GetComponent <UIAccordionElement>().onValueChanged.AddListener(delegate
            {
                Player._audioManager.PlayButtonClickSound();
                SetPerson(profilePage.gameObject, null);
                SetScroll(1);
            });
        }
        public void OnMagePrefabUpdated(Mage mage)
        {
            var mageButton = MageButtonsList[mage.Data.ProfileButtonIndex - 1];

            mageButton.GetComponentInChildren <Text>().text = mage.Data.GetName();
            SetButtonElement(mageButton, mage.Data.GetElement());
            var profilePage = mageButton.gameObject.transform.GetChild(1);
            var buttons     = profilePage.GetComponentsInChildren <Button>();

            mage.AssignActions();

            foreach (var t in mage.upgradeActions)
            {
                UIManager.SetButtonEvent(buttons[0], t);
            }

            var uiAccordionElement = mageButton.GetComponent <UIAccordionElement>();

            if (uiAccordionElement.isOn)
            {
                Player.TelevoleManager.SetMage(mage.Data);
            }

            uiAccordionElement.onValueChanged.AddListener(delegate
            {
                Player._audioManager.PlayButtonClickSound();
                SetPerson(profilePage.gameObject, mage.Data);
                if (mage.GetBuilding())
                {
                    if (uiAccordionElement.isOn)
                    {
                        // mage.GetBuilding().StartHighlighting(ElementController.Instance.GetColor(mage.Data.GetElement()));
                        mage.GetBuilding().StartHighlighting();
                        mage.GetBuilding().DisplayRangeObject();
                    }
                    else
                    {
                        mage.GetBuilding().StopHighlighting();
                        mage.GetBuilding().HideRangeObject();
                    }

                    if (mage.GetBuilding().MenuOpen)
                    {
                        mage.GetBuilding().MenuOpen = uiAccordionElement.isOn;
                        if (MageMenuOpen)
                        {
                            Player.UIManager.DestroyTowerMenuCloser();
                        }
                    }
                    else if (uiAccordionElement.isOn)
                    {
                        Player.BuildingMenuSpawner.SpawnMenu(mage.GetBuilding());
                    }
                }
                else
                {
                    mage.SetHightlighActive(uiAccordionElement.isOn);
                }
                SetScroll(mage.Data.ProfileButtonIndex);
            });
        }