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); } } }
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; } }
public void SetData(ULifeHeroCandidateData msgData) { SwitchState(msgData.state); m_heroID = msgData.heroID; m_cultureID = msgData.cultureID; ShowHeadPortrait(msgData.candidates); SetInjectRequirementDesc(); }