示例#1
0
 // Token: 0x060046BD RID: 18109 RVA: 0x0017FCC4 File Offset: 0x0017E0C4
 private void CreateButtons(DialogActions buttons, string focusButton)
 {
     this.defaultButton.gameObject.SetActive(false);
     if (buttons == null)
     {
         return;
     }
     buttons.ForEach(delegate(KeyValuePair <string, Func <bool> > x)
     {
         Button button     = this.GetButton();
         UnityAction value = delegate
         {
             if (x.Value())
             {
                 this.Hide();
             }
         };
         this.buttonsInUse.Add(x.Key, button);
         this.buttonsActions.Add(x.Key, value);
         button.gameObject.SetActive(true);
         button.transform.SetAsLastSibling();
         Text componentInChildren = button.GetComponentInChildren <Text>();
         if (componentInChildren)
         {
             componentInChildren.text = x.Key;
         }
         button.onClick.AddListener(this.buttonsActions[x.Key]);
         if (x.Key == focusButton)
         {
             button.Select();
         }
     });
 }
示例#2
0
        // Token: 0x060046BB RID: 18107 RVA: 0x0017FB44 File Offset: 0x0017DF44
        public void Show(string title = null, string message = null, DialogActions buttons = null, string focusButton = null, Vector3?position = null, Sprite icon = null, bool modal = false, Sprite modalSprite = null, Color?modalColor = null, Canvas canvas = null)
        {
            if (position == null)
            {
                position = new Vector3?(new Vector3(0f, 0f, 0f));
            }
            if (title != null && this.TitleText != null)
            {
                this.TitleText.text = title;
            }
            if (message != null && this.ContentText != null)
            {
                this.contentText.text = message;
            }
            if (icon != null && this.Icon != null)
            {
                this.Icon.sprite = icon;
            }
            Transform parent = (!(canvas != null)) ? Utilites.FindCanvas(base.gameObject.transform) : canvas.transform;

            base.transform.SetParent(parent, false);
            if (modal)
            {
                this.modalKey = new int?(ModalHelper.Open(this, modalSprite, modalColor));
            }
            else
            {
                this.modalKey = null;
            }
            base.transform.SetAsLastSibling();
            base.transform.localPosition = position.Value;
            base.gameObject.SetActive(true);
            this.CreateButtons(buttons, focusButton);
        }
示例#3
0
        /// <summary>
        /// Show dialog.
        /// </summary>
        /// <param name="title">Title.</param>
        /// <param name="message">Message.</param>
        /// <param name="buttons">Buttons.</param>
        /// <param name="focusButton">Set focus on button with specified name.</param>
        /// <param name="position">Position.</param>
        /// <param name="icon">Icon.</param>
        /// <param name="modal">If set to <c>true</c> modal.</param>
        /// <param name="modalSprite">Modal sprite.</param>
        /// <param name="modalColor">Modal color.</param>
        /// <param name="canvas">Canvas.</param>
        public void Show(string title          = null,
                         string message        = null,
                         DialogActions buttons = null,
                         string focusButton    = null,
                         Vector3?position      = null,
                         Sprite icon           = null,

                         bool modal         = false,
                         Sprite modalSprite = null,
                         Color?modalColor   = null,

                         Canvas canvas = null)
        {
            if (position == null)
            {
                position = new Vector3(0, 0, 0);
            }

            if ((title != null) && (TitleText != null))
            {
                TitleText.text = title;
            }
            if ((message != null) && (ContentText != null))
            {
                contentText.text = message;
            }
            if ((icon != null) && (Icon != null))
            {
                Icon.sprite = icon;
            }

            var parent = (canvas != null) ? canvas.transform : Utilites.FindCanvas(gameObject.transform);

            if (parent != null)
            {
                transform.SetParent(parent, false);
            }

            if (modal)
            {
                modalKey = ModalHelper.Open(this, modalSprite, modalColor);
            }
            else
            {
                modalKey = null;
            }

            transform.SetAsLastSibling();

            transform.localPosition = (Vector3)position;
            gameObject.SetActive(true);

            CreateButtons(buttons, focusButton);
        }
示例#4
0
        /// <summary>
        /// Creates the buttons.
        /// </summary>
        /// <param name="buttons">Buttons.</param>
        /// <param name="focusButton">Focus button.</param>
        protected virtual void CreateButtons(DialogActions buttons, string focusButton)
        {
            defaultButton.gameObject.SetActive(false);

            if (buttons == null)
            {
                return;
            }

            buttons.ForEach(x =>
            {
                var button = GetButton();

                UnityAction callback = () =>
                {
                    if (x.Value())
                    {
                        Hide();
                    }
                };

                buttonsInUse.Add(button);
                buttonsActions.Add(callback);

                button.gameObject.SetActive(true);
                button.transform.SetAsLastSibling();

                var dialog_button = button.GetComponentInChildren <DialogButtonComponentBase>();
                if (dialog_button != null)
                {
                    dialog_button.SetButtonName(x.Key);
                }
                else
                {
                    var text = button.GetComponentInChildren <Text>();
                    if (text != null)
                    {
                        text.text = x.Key;
                    }
                }

                button.onClick.AddListener(callback);

                if (x.Key == focusButton)
                {
                    button.Select();
                }
            });
        }
示例#5
0
        /// <summary>
        /// Show dialog.
        /// </summary>
        /// <param name="title">Title.</param>
        /// <param name="message">Message.</param>
        /// <param name="buttons">Buttons.</param>
        /// <param name="focusButton">Set focus on button with specified name.</param>
        /// <param name="position">Position.</param>
        /// <param name="icon">Icon.</param>
        /// <param name="modal">If set to <c>true</c> modal.</param>
        /// <param name="modalSprite">Modal sprite.</param>
        /// <param name="modalColor">Modal color.</param>
        /// <param name="canvas">Canvas.</param>
        public virtual void Show(string title          = null,
                                 string message        = null,
                                 DialogActions buttons = null,
                                 string focusButton    = null,
                                 Vector3?position      = null,
                                 Sprite icon           = null,

                                 bool modal         = false,
                                 Sprite modalSprite = null,
                                 Color?modalColor   = null,

                                 Canvas canvas = null)
        {
            if (IsTemplate)
            {
                Debug.LogWarning("Use the template clone, not the template itself: DialogTemplate.Clone().Show(...), not DialogTemplate.Show(...)");
            }

            if (position == null)
            {
                position = new Vector3(0, 0, 0);
            }

            SetInfo(title, message, icon);

            var parent = (canvas != null) ? canvas.transform : Utilites.FindTopmostCanvas(gameObject.transform);

            if (parent != null)
            {
                transform.SetParent(parent, false);
            }

            if (modal)
            {
                ModalKey = ModalHelper.Open(this, modalSprite, modalColor);
            }
            else
            {
                ModalKey = null;
            }

            transform.SetAsLastSibling();

            transform.localPosition = (Vector3)position;
            gameObject.SetActive(true);

            CreateButtons(buttons, focusButton);
        }
示例#6
0
        /* 在刚进入主城时判断是否需要本命弹窗
         * 本命弹窗逻辑:
         * 1、从战场结算界面返回主城
         * 2、还没有收集完本命英雄
         * 3、本命记录里没有该英雄
         * 4、比赛必须满员
         * 5、比赛类型必须满足配置要求的比赛类型(lifehero.csv)
         */
        private void OpenLifeHeroDialog()
        {
            if (!LogicDataCenter.lifeHeroDataManager.IsFromWarExit)
            {
                return;
            }

            LogicDataCenter.lifeHeroDataManager.IsFromWarExit = false;
            if (StageManager.Instance.getCurrentState() != EStage_State.ESS_GAME && StageManager.Instance.getCurrentState() != EStage_State.ESS_LOADSCENE)
            {
                Debug.Log("recv all lifehero at gamestate=" + StageManager.Instance.getCurrentState() + ", so dont show dialog.");
                return;
            }

            if (!LogicDataCenter.lifeHeroDataManager.HasCollectedAllLifeHero() &&
                (GuideManager.Instance.IsCurrentGuideGreaterEqual(ENNOVICEGUIDE_TYPE.ENNOVICEGUIDE_TYPE_GUIDE_LIFEHEROCULTURE) ||
                 (LogicDataCenter.playerSystemDataManager.GetActorPlayerInfo().playerInfo.nLv > 3)))
            {
                List <cmd_warstatistic_history_record> recordList = LogicDataCenter.lifeHeroDataManager.HistoryRecord;
                if (recordList == null || recordList.Count < 1)
                {
                    Debug.LogWarning("lifehero entance: history record is empty.");
                    return;
                }

                cmd_warstatistic_history_record record = recordList[0];
                if (!record.bIsFull)
                {
                    return;
                }

                Dictionary <int, cmd_entity_lifehero_info> ownedLifeHero = LogicDataCenter.lifeHeroDataManager.AllLifeHero;
                if (ownedLifeHero.ContainsKey(record.nHeroID))
                {
                    return;
                }

                if (!LifeHeroConfig.Instance.IsMeetWarType(ownedLifeHero.Count, record.wWarType))
                {
                    return;
                }

                string        content;
                DialogActions buttons;
                if (LifeHeroRules.IsMeetRule(LogicDataCenter.lifeHeroDataManager.AllLifeHero.Count, record))
                {
                    content = ULocalizationService.Instance.Get("UIView", "LifeHeroSelect", "TravelContent_Good");
                    buttons = new UIWidgets.DialogActions()
                    {
                        { ULocalizationService.Instance.Get("UIView", "LifeHeroSelect", "Confirm"), () => { UISystem.Instance.ShowWnd(WndID.WND_ID_LIFE_HERO_CULTURE, true); return(true); } }, { ULocalizationService.Instance.Get("UIView", "LifeHeroSelect", "Cancel"), null }
                    };
                }
                else
                {
                    SSchemeLifeHero config;
                    int             key = LogicDataCenter.lifeHeroDataManager.AllLifeHero.Count;
                    if (LifeHeroConfig.Instance.LifeHeroConfigDic.TryGetValue(key, out config))
                    {
                        content = string.Format(ULocalizationService.Instance.Get("UIView", "LifeHeroSelect", "TravelContent_NontDiscourage"), config.rule);
                        buttons = new UIWidgets.DialogActions()
                        {
                            { ULocalizationService.Instance.Get("UIView", "LifeHeroSelect", "Confirm"), () => { UISystem.Instance.ShowWnd(WndID.WND_ID_WAR_MAIN_FRAME, true);; return(true); } }, { ULocalizationService.Instance.Get("UIView", "LifeHeroSelect", "Cancel"), null }
                        };
                    }
                    else
                    {
                        Debug.LogError("获取本命配置失败.key = " + key);
                        return;
                    }
                }

                UBB.toHtml(ref content);
                TooltipAndDialog.UIDialogData data = new TooltipAndDialog.UIDialogData(
                    title: ULocalizationService.Instance.Get("UIView", "LifeHeroSelect", "TravelTitle"),
                    message: content,
                    buttons: buttons,
                    modal: false,
                    hideByModalClick: false,
                    modalColor: Color.clear,
                    mutex: true,
                    eDialogType: EDialogType.LifeHeroEntrance
                    );
                UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_COMMON_DIALOG, data);
            }
        }
示例#7
0
        /// <summary>
        /// Show dialog.
        /// </summary>
        /// <param name="title">Title.</param>
        /// <param name="message">Message.</param>
        /// <param name="buttons">Buttons.</param>
        /// <param name="focusButton">Set focus on button with specified name.</param>
        /// <param name="position">Position.</param>
        /// <param name="icon">Icon.</param>
        /// <param name="modal">If set to <c>true</c> modal.</param>
        /// <param name="modalSprite">Modal sprite.</param>
        /// <param name="modalColor">Modal color.</param>
        /// <param name="canvas">Canvas.</param>
        public virtual void Show(string title          = null,
                                 string message        = null,
                                 DialogActions buttons = null,
                                 string focusButton    = null,
                                 Vector3?position      = null,
                                 Sprite icon           = null,

                                 bool modal            = false,
                                 bool hideByModalClick = true,
                                 Sprite modalSprite    = null,
                                 Color?modalColor      = null,

                                 Transform canvas = null,

                                 UnityAction closeBtnAction   = null,
                                 UnityAction modalclickAction = null)
        {
            if (position == null)
            {
                position = new Vector3(0, 0, 0);
            }

            SetInfo(title, message, icon);

            ParentTrans = canvas;

            var topCanvas = Utilites.FindTopmostCanvas(ParentTrans);

            if (topCanvas != null)
            {
                transform.SetParent(topCanvas, false);
            }

            if (modal)
            {
                if (hideByModalClick)
                {
                    ModalKey = ModalHelper.Open(this, modalSprite, modalColor, Hide, transform as RectTransform);
                }
                else
                {
                    ModalKey = ModalHelper.Open(this, modalSprite, modalColor, null, transform as RectTransform);
                }
                m_actionModalClick = modalclickAction;
            }
            else
            {
                ModalKey = null;
            }

            transform.SetAsLastSibling();

            transform.localPosition = (Vector3)position;
            gameObject.SetActive(true);

            CreateButtons(buttons, focusButton);

            if (CloseButton != null)
            {
                CloseButton.onClick.AddListener(Hide);
                if (closeBtnAction != null)
                {
                    CloseButton.onClick.AddListener(closeBtnAction);
                }
            }
        }