コード例 #1
0
ファイル: HumanEntity.cs プロジェクト: mengtest/RewriteFrame
    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);
            }
        }
    }
コード例 #2
0
    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);
    }
コード例 #3
0
    /// <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();
    }
コード例 #4
0
ファイル: HumanEntity.cs プロジェクト: mengtest/RewriteFrame
    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);
        }
    }
コード例 #5
0
    /// <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();
    }