Esempio n. 1
0
        private void OpenSelectView(ESelectViewState state)
        {
            // 培养仓为空。先判断是否有满足当前条件的本命英雄。若有,则跳转本命英雄选择界面,否则弹窗提示
            ActorHeroInfo info = LogicDataCenter.playerSystemDataManager.GetActorAllHero();

            if (info == null || info.dicEntityHeroInfo == null)
            {
                return;
            }

            List <int> heroIDList = LogicDataCenter.lifeHeroDataManager.FindCandidatesFromHistoryRecord();

            if (heroIDList != null && heroIDList.Count > 0)
            {
                List <cmd_entity_hero_info> candidates = new List <cmd_entity_hero_info>();
                foreach (int heroID in heroIDList)
                {
                    cmd_entity_hero_info hero;
                    if (info.dicEntityHeroInfo.TryGetValue(heroID, out hero))
                    {
                        candidates.Add(hero);
                    }
                    else
                    {
                        Debug.LogWarning("在玩家拥有的英雄中未找到该英雄ID=" + heroID);
                    }
                }
                ULifeHeroCandidateData msgData = new ULifeHeroCandidateData();
                msgData.msgID      = (int)WndID.WND_ID_LIFE_HERO_SELECT;
                msgData.candidates = candidates;
                msgData.cultureID  = mCurrentSelectCultureID;
                msgData.state      = state;
                if (state == ESelectViewState.REPLACE)
                {
                    msgData.heroID = m_hasHeroCulture[mCurrentSelectCultureID];
                }
                UISystem.Instance.SendTargetWndMessage(WndID.WND_ID_LIFE_HERO_SELECT, WndMsgID.WND_MSG_OPEN_LIFEHERO_SELECT, msgData);
            }
            else
            {
                SSchemeLifeHero config;
                int             heroCount = LogicDataCenter.lifeHeroDataManager.AllLifeHero.Count;
                int             key       = state == ESelectViewState.INJECT ? heroCount : heroCount - 1;
                key = key < 0 ? 0 : key;
                if (LifeHeroConfig.Instance.LifeHeroConfigDic.TryGetValue(key, out config))
                {
                    string content = ULocalizationService.Instance.Get("UIView", "LifeHeroSelect", "TravelContent_NoLifeHero");
                    ShowDialog(ULocalizationService.Instance.Get("UIView", "LifeHeroSelect", "TravelTitle"),
                               String.Format(content, config.rule),
                               new UIWidgets.DialogActions()
                    {
                        { ULocalizationService.Instance.Get("UIView", "LifeHeroSelect", "Confirm"), GoToBattle }, { ULocalizationService.Instance.Get("UIView", "LifeHeroSelect", "Cancel"), null }
                    });
                }
                else
                {
                    Debug.LogError("获取本命配置失败.key = " + key);
                }
            }
        }
Esempio n. 2
0
        public override void OnMessage(WndMsgID msgID, UIMsgData data)
        {
            switch (msgID)
            {
            case WndMsgID.WND_MSG_COMMOM_STATICGAMESTATE_LEAVE:
            {
                UnloadView();
            }
            break;

            case WndMsgID.WND_MSG_OPEN_LIFEHERO_SELECT:
            {
                if (data == null)
                {
                    return;
                }

                ULifeHeroCandidateData msgData = data as ULifeHeroCandidateData;
                if (msgData.candidates == null || msgData.candidates.Count == 0)
                {
                    return;
                }

                SetVisible(true);
                if (m_wndView != null)
                {
                    m_wndView.SetData(msgData);
                }
            }
            break;

                #region 新手引导相关
            case WndMsgID.WND_MSG_LIFEHERO_SELECT_GUIDE_ACTIONBEGIN:
            {
                UGuideWidgetMsgData _widgetMsgData = data as UGuideWidgetMsgData;

                if (m_wndView != null && _widgetMsgData != null)
                {
                    m_wndView.GuideActionBegin(_widgetMsgData);
                }
            }
            break;

            case WndMsgID.WND_MSG_LIFEHERO_SELECT_GUIDE_ACTIONEND:
            {
                UGuideWidgetMsgData _widgetMsgData = data as UGuideWidgetMsgData;

                if (m_wndView != null && _widgetMsgData != null)
                {
                    m_wndView.GuideActionEnd(_widgetMsgData);
                }
            }
            break;
                #endregion

            default:
                break;
            }
        }
Esempio n. 3
0
 public void SetData(ULifeHeroCandidateData msgData)
 {
     SwitchState(msgData.state);
     m_heroID    = msgData.heroID;
     m_cultureID = msgData.cultureID;
     ShowHeadPortrait(msgData.candidates);
     SetInjectRequirementDesc();
 }