public void SetFocus(bool focus) { if (focus) { MsgInteractiveInfo msg = MessageSingleton.Get <MsgInteractiveInfo>(); msg.Describe = null; MissionProxy missionProxy = GameFacade.Instance.RetrieveProxy(ProxyName.MissionProxy) as MissionProxy; if (missionProxy.GetCanSubmitMissionBy(GetTemplateID()) == null) { string fKeyText = missionProxy.GetTalkMissionFKeyText(GetTemplateID()); if (!string.IsNullOrEmpty(fKeyText)) { msg.Describe = fKeyText; } } msg.Tid = GetTemplateID(); msg.MustUseHumanFBox = false; GameFacade.Instance.SendNotification(NotificationName.MSG_INTERACTIVE_SHOWFLAG, msg); } else { GameFacade.Instance.SendNotification(NotificationName.MSG_INTERACTIVE_HIDEFLAG); if (m_NpcTmpVO.DialogueTurn == 1) { GetSkinTransform().DORotateQuaternion(m_BornServerRotation, 0.5f); } } }
public override void OnShow(object msg) { base.OnShow(msg); m_CfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy; m_CfgStarmapProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgStarmapProxy) as CfgStarmapProxy; m_TaskTrackingProxy = GameFacade.Instance.RetrieveProxy(ProxyName.TaskTrackingProxy) as TaskTrackingProxy; m_TeamProxy = GameFacade.Instance.RetrieveProxy(ProxyName.TeamProxy) as TeamProxy; m_MissionProxy = GameFacade.Instance.RetrieveProxy(ProxyName.MissionProxy) as MissionProxy; if (msg is MsgStarmapPanelState) { m_Data = (msg as MsgStarmapPanelState).Data as EditorPlanet; } else { Eternity.FlatBuffer.Map mapData = m_CfgEternityProxy.GetCurrentMapData(); m_Data = m_CfgStarmapProxy.GetPlanet(mapData.BelongFixedStar, mapData.GamingmapId); } m_PointDic = new Dictionary <ulong, StarAreaElement>(); m_Lines = new List <GameObject>(); LoadViewPart(ASSET_ADDRESS, OwnerView.OtherBox); }
/// <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(); }
public void OnInteracted() { MissionProxy missionProxy = GameFacade.Instance.RetrieveProxy(ProxyName.MissionProxy) as MissionProxy; LookAtMainPlayerOnInteraction(); if (m_TeleportId > 0) { //手表升级传送等级限制 if (m_NpcTmpVO.Function.HasValue && m_NpcTmpVO.Function.Value.Type == 5) { //可升级进行传送 PlayerInfoVo player = NetworkManager.Instance.GetPlayerController().GetPlayerInfo(); double exp = m_CfgEternityProxy.GetPlayerUpa(player.WatchLv).Exp; if (player.WatchExp >= exp && exp > 0) { NetworkManager.Instance.GetSceneController().SwitchMap((uint)m_TeleportId); } else { //经验值不足提示 DialogueInfo info = new DialogueInfo(); info.DialogueTid = (uint)(exp > 0 ? 510000 : 510001); info.SoundParent = transform; info.NpcTid = m_NpcTmpVO.Id; info.NeedSendToServer = false; GameFacade.Instance.SendNotification(NotificationName.MSG_DIALOGUE_SHOW, info); SetFocus(true); } } else { //切地图 NetworkManager.Instance.GetSceneController().SwitchMap((uint)m_TeleportId); } } else if (missionProxy.OpenMissionPanel(GetUId(), m_NpcTmpVO, transform)) { SetFocus(true); return; } else if (m_NpcTmpVO.Function.HasValue && !string.IsNullOrEmpty(m_NpcTmpVO.Function.Value.Arg1)) { if (Enum.TryParse(m_NpcTmpVO.Function.Value.Arg1, out UIPanel panelName)) { if (m_NpcTmpVO.Function.Value.Arg3 > 0) { UIManager.Instance.OpenPanel(panelName, m_NpcTmpVO.Function.Value.Arg3); } else { UIManager.Instance.OpenPanel(panelName); } } SetFocus(true); } else if (m_NpcTmpVO.Function.HasValue && m_NpcTmpVO.Function.Value.Type == 4) { NetworkManager.Instance.GetPlayerController().RequestLevelUpWatch(); SetFocus(true); } else if (m_NpcTmpVO.Function.HasValue && m_NpcTmpVO.Function.Value.Arg2Length > 0) { missionProxy.OpenNpcChat(m_NpcTmpVO, transform, 0, m_NpcTmpVO.Id); SetFocus(true); } }
/// <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(); }