private void SelectedMission(MissionVO mission) { m_MissionUID = mission?.Uid ?? 0; if (mission != null && mission.MissionType != MissionType.Main) { m_MissionTID = mission.Tid; } else { m_MissionTID = 0; } State.GetAction(UIAction.StarArea_TrackMission).Enabled = m_MissionTID > 0; State.GetAction(UIAction.StarArea_DropMission).Enabled = m_MissionTID > 0; State.GetAction(UIAction.StarArea_TrackMission).State = m_MissionProxy.GetMissionTrack().IndexOf(m_MissionTID) < 0 ? 0 : 1; }
/// <summary> /// 布局Tip /// </summary> /// <param name="view"></param> /// <param name="data"></param> private void LayoutTip(GameObject view, MissionVO mission) { m_TimeTextDic.Clear(); CfgEternityProxy configs = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy; Transform root = FindComponent <Transform>(view.transform, "TipsScrollView/Viewport/Content/Content"); Image martkImage = FindComponent <Image>(root, "NameType/Image_Mark"); TMP_Text nameField = FindComponent <TMP_Text>(root, "NameType/Label_Name"); Image typeImage = FindComponent <Image>(root, "NameType/Image_IconType"); TMP_Text typeField = FindComponent <TMP_Text>(root, "NameType/Label_Type"); TMP_Text limitField = FindComponent <TMP_Text>(root, "Limit/Label"); TMP_Text descField = FindComponent <TMP_Text>(root, "Describe/Label_Describe"); MissionProxy missionProxy = GameFacade.Instance.RetrieveProxy(ProxyName.MissionProxy) as MissionProxy; martkImage.gameObject.SetActive(missionProxy.GetMissionTrack().IndexOf(mission.Tid) != -1); nameField.text = TableUtil.GetLanguageString("mission_name_" + mission.Tid); typeField.text = TableUtil.GetLanguageString("tips_text_id_" + (1084 + (int)mission.MissionType)); UIUtil.SetIconImageSquare(typeImage, (uint)configs.GetMissionIconIdBy(mission.MissionType)); limitField.text = string.Format(TableUtil.GetLanguageString("mission_title_1011"), mission.MissionConfig.LvLimit); descField.text = TableUtil.GetLanguageString("mission_main_detailedDesc_" + mission.Tid); //目标列表 UpdateMissionList(mission, FindComponent <Transform>(root, "TargetList/Targets")); //奖励列表 UpdateRewardList(mission, FindComponent <Transform>(root, "Materials/Resources")); //检查时间 CheckTime(); }
/// <summary> /// 打开任务列表 /// </summary> private void UpdateMissionList() { OnStateChanged(); m_TimeTextDic.Clear(); MissionProxy missionProxy = Facade.RetrieveProxy(ProxyName.MissionProxy) as MissionProxy; Dictionary <ulong, MissionVO> mainMissionDic = missionProxy.AllMissionDic[MissionType.Main]; MissionVO mainMission = null; //显示主线 或者 待接主线(可不可接无所谓) if (mainMissionDic.Count > 0) { foreach (var item in mainMissionDic) { mainMission = item.Value; break; } } else { Dictionary <uint, MissionVO> canAcceptList = missionProxy.GetCanAcceptMissions(); if (canAcceptList != null && canAcceptList.Count > 0) { foreach (var item in canAcceptList) { if (item.Value.MissionType == MissionType.Main) { mainMission = item.Value; break; } } } } List <uint> trackMissionTids = missionProxy.GetMissionTrack(); List <MissionVO> trackBranchMissions = new List <MissionVO>(); List <MissionVO> trackDailyMissions = new List <MissionVO>(); //TODO gaoyu /* 这里要在下面的临时代码 去掉后 打开它 * for (int i = 0; i < trackMissionTids?.Count; i++) * { * MissionVO mission = missionProxy.GetMissionBy(trackMissionTids[i]); * switch (mission.MissionType) * { * case MissionType.Branch: * trackBranchMissions.Add(mission); * break; * case MissionType.Daily: * trackDailyMissions.Add(mission); * break; * } * } */ //HACK gaoyu //这是一个临时需求 by 张子华 #region 任务 临时支线任务 Dictionary <ulong, MissionVO> branchMission = missionProxy.AllMissionDic[MissionType.Branch]; if (branchMission?.Count > 0) { trackBranchMissions.Add(branchMission.Values.ToList()[0]); } #endregion m_MainMissionAnimator.gameObject.SetActive(mainMission != null); m_BranchMissionAnimator.gameObject.SetActive(trackBranchMissions.Count > 0); m_DailyMissionAnimator.gameObject.SetActive(trackDailyMissions.Count > 0); if (mainMission != null) { UpdateMissionList(mainMission, FindComponent <RectTransform>("Content/LeftMission/MainMission")); } for (int i = 0; i < trackBranchMissions.Count; i++) { UpdateMissionList(trackBranchMissions[i], FindComponent <RectTransform>("Content/LeftMission/SideMission")); } for (int i = 0; i < trackDailyMissions.Count; i++) { UpdateMissionList(trackDailyMissions[i], FindComponent <RectTransform>("Content/LeftMission/DailyMission")); } CheckTime(); }