예제 #1
0
    /// <summary>
    /// 设置限时活动列表
    /// </summary>
    private void SetAllActivity()
    {
        TimeLimitActivityUIViewManager.Instance.ResetActivityGridList();

        foreach (var activityIDMessage in sortResult)
        {
            if (activityIDMessage.Value.is_doing) // 活动已开启
            {
                int id = activityIDMessage.Key;
                if (EventData.dataMap.ContainsKey(id))
                {
                    LimitActivityGridData ad = new LimitActivityGridData();

                    ad.TitleText = LanguageData.dataMap.ContainsKey(EventData.dataMap[id].name) ? LanguageData.dataMap[EventData.dataMap[id].name].content : "";
                    ad.FGImgName = IconData.dataMap[EventData.dataMap[id].icon].path;

                    if (activityIDMessage.Value != null)
                    {
                        if (activityIDMessage.Value.is_reward > 0) // 已领取
                        {
                            ad.CDText = LanguageData.GetContent(7134);
                            ad.Status = ActivityStatus.HasReward;

                            TimeLimitActivityUIViewManager.Instance.SetGridCountDownStop(activityIDMessage.Key);
                        }
                        else if (activityIDMessage.Value.is_finish > 0) // 已完成
                        {
                            ad.CDText = LanguageData.GetContent(7133);
                            ad.Status = ActivityStatus.HasFinished;

                            TimeLimitActivityUIViewManager.Instance.SetGridCountDownStop(activityIDMessage.Key);
                        }
                        else if (EventData.dataMap[id].limit_time == 0) // 活动中-不限时间
                        {
                            ad.CDText = LanguageData.GetContent(7137);
                            ad.Status = ActivityStatus.OtherStatus;

                            TimeLimitActivityUIViewManager.Instance.SetGridCountDownStop(activityIDMessage.Key);
                        }
                        else
                        {
                            TimeSpan theInterval = MogoTime.Instance.CalculateTimeSpanDateTime(MogoTime.Instance.GetSecond() + EventData.dataMap[id].limit_time * 60);
                            theInterval = MogoTime.Instance.CalculateTimeSpanDateTime(activityIDMessage.Value.accept_time + EventData.dataMap[id].limit_time * 60);

                            ad.CDText = (int)theInterval.TotalDays + ":" + (int)theInterval.Hours + ":" + theInterval.Minutes + ":" + theInterval.Seconds;
                            ad.Status = ActivityStatus.OtherStatus;
                        }
                    }
                    else
                    {
                        TimeSpan theInterval = MogoTime.Instance.CalculateTimeSpanDateTime(activityIDMessage.Value.accept_time + EventData.dataMap[id].limit_time * 60);

                        ad.CDText = (int)theInterval.TotalDays + ":" + (int)theInterval.Hours + ":" + theInterval.Minutes + ":" + theInterval.Seconds;
                        ad.Status = ActivityStatus.OtherStatus;
                    }

                    TimeLimitActivityUIViewManager.Instance.AddActivityGrid(ad, id);
                }
            }
            else // 活动未开启
            {
                int idToDo = activityIDMessage.Key;
                if (EventData.dataMap.ContainsKey(idToDo))
                {
                    LimitActivityGridData ad = new LimitActivityGridData();
                    ad.TitleText = LanguageData.dataMap.ContainsKey(EventData.dataMap[idToDo].name) ? LanguageData.dataMap[EventData.dataMap[idToDo].name].content : "";
                    ad.CDText    = LanguageData.GetContent(7132);
                    ad.Status    = ActivityStatus.OtherStatus;
                    ad.FGImgName = IconData.dataMap[EventData.dataMap[idToDo].icon].path;
                    TimeLimitActivityUIViewManager.Instance.AddActivityGrid(ad, idToDo);
                }
            }
        }
    }
    /// <summary>
    /// 创建Grid
    /// </summary>
    /// <param name="gridData"></param>
    /// <param name="theID"></param>
    public void AddActivityGrid(LimitActivityGridData gridData, int theID)
    {
        INSTANCE_COUNT++;
        MogoGlobleUIManager.Instance.ShowWaitingTip(true);

        AssetCacheMgr.GetUIInstance("TimeLimitActivityGrid.prefab", (prefab, id, go) =>
        {
            for (int i = 0; i < m_listActivityGird.Count; ++i)
            {
                if (m_listActivityGird[i].Id == theID)
                {
                    AssetCacheMgr.ReleaseInstance((GameObject)go);
                    return;
                }
            }
            GameObject obj = (GameObject)go;
            TimeLimitActivityGrid gridUI = obj.AddComponent<TimeLimitActivityGrid>();

            obj.name = "TimeLimitActivityGrid" + m_listActivityGird.Count;

            gridUI.LoadResourceInsteadOfAwake();
            gridUI.Id = theID;
            gridUI.Index = m_listActivityGird.Count;
            gridUI.CDText = gridData.CDText;
            gridUI.TitleText = gridData.TitleText;
            gridUI.GridFGName = gridData.FGImgName;
            gridUI.SetActivityStatus(gridData.Status);               

            obj.transform.parent = m_goActivityGridList.transform;
            obj.transform.localPosition = new Vector3(m_listActivityGirdObject.Count * ACTIVITYGRIDWIDTH, 0, -1);
            obj.transform.localScale = new Vector3(1, 1, 1);

            m_listActivityGirdObject.Add(obj);  
            m_listActivityGird.Add(gridUI);

            obj.GetComponentsInChildren<MyDragCamera>(true)[0].RelatedCamera = m_camActivityGridList.transform.GetComponentsInChildren<Camera>(true)[0];

            INSTANCE_COUNT--;
            if (INSTANCE_COUNT <= 0)
                MogoGlobleUIManager.Instance.ShowWaitingTip(false);

            if (m_listActivityGirdObject.Count - ActivityGridCountOnePage >= 0)
                m_dragableCameraActivityGridList.MAXX = 380 + ACTIVITYGRIDWIDTH * (m_listActivityGirdObject.Count - 3);
            else
                m_dragableCameraActivityGridList.MAXX = 380;

            EventDispatcher.TriggerEvent<int>("LoadTimeLimitActivityGridDone", gridUI.Id);

            if (obj.name == MogoUIManager.Instance.WaitingWidgetName)
            {
                EventDispatcher.TriggerEvent("WaitingWidgetFinished");
            }

            // 创建翻页位置
            int index = m_listActivityGirdObject.Count - 1;
            if (index % ActivityGridCountOnePage == 0)
            {
                GameObject trans = new GameObject();
                trans.transform.parent = m_camActivityGridList.transform;
                trans.transform.localPosition = new Vector3(index / ActivityGridCountOnePage * 1140 + 380, 0, 0);
                trans.transform.localEulerAngles = Vector3.zero;
                trans.transform.localScale = new Vector3(1, 1, 1);
                trans.name = "ActivityGridPagePosHorizon" + index / ActivityGridCountOnePage;
                m_dragableCameraActivityGridList.transformList.Add(trans.transform);
                m_dragableCameraActivityGridList.SetCurrentPage(0);

                // 创建页数点
                ++m_iActivityGridPageNum;
                int num = m_iActivityGridPageNum;
                AssetCacheMgr.GetUIInstance("ChooseServerPage.prefab", (prefabPage, idPage, goPage) =>
                {
                    GameObject objPage = (GameObject)goPage;

                    objPage.transform.parent = m_goGOTimeLimitActivityUIActivityListPage.transform;
                    objPage.transform.localPosition = new Vector3((num - 1) * 40, 0, 0);
                    objPage.transform.localScale = Vector3.one;
                    objPage.name = "ActivityGridPage" + num;
                    m_camActivityGridList.GetComponentsInChildren<MyDragableCamera>(true)[0].ListPageDown.Add(objPage.GetComponentsInChildren<UISprite>(true)[1].gameObject);
                    m_goGOTimeLimitActivityUIActivityListPage.transform.localPosition = new Vector3(-20 * (num - 1), m_goGOTimeLimitActivityUIActivityListPage.transform.localPosition.y, 0);

                    // 选择当前页
                    if (num - 1 == m_dragableCameraActivityGridList.GetCurrentPage())
                        objPage.GetComponentsInChildren<UISprite>(true)[1].gameObject.SetActive(true);
                    else
                        objPage.GetComponentsInChildren<UISprite>(true)[1].gameObject.SetActive(false);
                    m_dragableCameraActivityGridList.GODOTPageList = m_goGOTimeLimitActivityUIActivityListPage;
                    m_dragableCameraActivityGridList.SetCurrentPage(m_dragableCameraActivityGridList.GetCurrentPage());
                });
            }         
        });
    }   
    /// <summary>
    /// 创建Grid
    /// </summary>
    /// <param name="gridData"></param>
    /// <param name="theID"></param>
    public void AddActivityGrid(LimitActivityGridData gridData, int theID)
    {
        INSTANCE_COUNT++;
        MogoGlobleUIManager.Instance.ShowWaitingTip(true);

        AssetCacheMgr.GetUIInstance("TimeLimitActivityGrid.prefab", (prefab, id, go) =>
        {
            for (int i = 0; i < m_listActivityGird.Count; ++i)
            {
                if (m_listActivityGird[i].Id == theID)
                {
                    AssetCacheMgr.ReleaseInstance((GameObject)go);
                    return;
                }
            }
            GameObject obj = (GameObject)go;
            TimeLimitActivityGrid gridUI = obj.AddComponent <TimeLimitActivityGrid>();

            obj.name = "TimeLimitActivityGrid" + m_listActivityGird.Count;

            gridUI.LoadResourceInsteadOfAwake();
            gridUI.Id         = theID;
            gridUI.Index      = m_listActivityGird.Count;
            gridUI.CDText     = gridData.CDText;
            gridUI.TitleText  = gridData.TitleText;
            gridUI.GridFGName = gridData.FGImgName;
            gridUI.SetActivityStatus(gridData.Status);

            obj.transform.parent        = m_goActivityGridList.transform;
            obj.transform.localPosition = new Vector3(m_listActivityGirdObject.Count * ACTIVITYGRIDWIDTH, 0, -1);
            obj.transform.localScale    = new Vector3(1, 1, 1);

            m_listActivityGirdObject.Add(obj);
            m_listActivityGird.Add(gridUI);

            obj.GetComponentsInChildren <MyDragCamera>(true)[0].RelatedCamera = m_camActivityGridList.transform.GetComponentsInChildren <Camera>(true)[0];

            INSTANCE_COUNT--;
            if (INSTANCE_COUNT <= 0)
            {
                MogoGlobleUIManager.Instance.ShowWaitingTip(false);
            }

            if (m_listActivityGirdObject.Count - ActivityGridCountOnePage >= 0)
            {
                m_dragableCameraActivityGridList.MAXX = 380 + ACTIVITYGRIDWIDTH * (m_listActivityGirdObject.Count - 3);
            }
            else
            {
                m_dragableCameraActivityGridList.MAXX = 380;
            }

            EventDispatcher.TriggerEvent <int>("LoadTimeLimitActivityGridDone", gridUI.Id);

            if (obj.name == MogoUIManager.Instance.WaitingWidgetName)
            {
                EventDispatcher.TriggerEvent("WaitingWidgetFinished");
            }

            // 创建翻页位置
            int index = m_listActivityGirdObject.Count - 1;
            if (index % ActivityGridCountOnePage == 0)
            {
                GameObject trans                 = new GameObject();
                trans.transform.parent           = m_camActivityGridList.transform;
                trans.transform.localPosition    = new Vector3(index / ActivityGridCountOnePage * 1140 + 380, 0, 0);
                trans.transform.localEulerAngles = Vector3.zero;
                trans.transform.localScale       = new Vector3(1, 1, 1);
                trans.name = "ActivityGridPagePosHorizon" + index / ActivityGridCountOnePage;
                m_dragableCameraActivityGridList.transformList.Add(trans.transform);
                m_dragableCameraActivityGridList.SetCurrentPage(0);

                // 创建页数点
                ++m_iActivityGridPageNum;
                int num = m_iActivityGridPageNum;
                AssetCacheMgr.GetUIInstance("ChooseServerPage.prefab", (prefabPage, idPage, goPage) =>
                {
                    GameObject objPage = (GameObject)goPage;

                    objPage.transform.parent        = m_goGOTimeLimitActivityUIActivityListPage.transform;
                    objPage.transform.localPosition = new Vector3((num - 1) * 40, 0, 0);
                    objPage.transform.localScale    = Vector3.one;
                    objPage.name = "ActivityGridPage" + num;
                    m_camActivityGridList.GetComponentsInChildren <MyDragableCamera>(true)[0].ListPageDown.Add(objPage.GetComponentsInChildren <UISprite>(true)[1].gameObject);
                    m_goGOTimeLimitActivityUIActivityListPage.transform.localPosition = new Vector3(-20 * (num - 1), m_goGOTimeLimitActivityUIActivityListPage.transform.localPosition.y, 0);

                    // 选择当前页
                    if (num - 1 == m_dragableCameraActivityGridList.GetCurrentPage())
                    {
                        objPage.GetComponentsInChildren <UISprite>(true)[1].gameObject.SetActive(true);
                    }
                    else
                    {
                        objPage.GetComponentsInChildren <UISprite>(true)[1].gameObject.SetActive(false);
                    }
                    m_dragableCameraActivityGridList.GODOTPageList = m_goGOTimeLimitActivityUIActivityListPage;
                    m_dragableCameraActivityGridList.SetCurrentPage(m_dragableCameraActivityGridList.GetCurrentPage());
                });
            }
        });
    }
    /// <summary>
    /// 设置限时活动列表
    /// </summary>
    private void SetAllActivity()
    {
        TimeLimitActivityUIViewManager.Instance.ResetActivityGridList();    

        foreach (var activityIDMessage in sortResult)
        {
            if (activityIDMessage.Value.is_doing) // 活动已开启
            {
                int id = activityIDMessage.Key;
                if (EventData.dataMap.ContainsKey(id))
                {
                    LimitActivityGridData ad = new LimitActivityGridData();

                    ad.TitleText = LanguageData.dataMap.ContainsKey(EventData.dataMap[id].name) ? LanguageData.dataMap[EventData.dataMap[id].name].content : "";
                    ad.FGImgName = IconData.dataMap[EventData.dataMap[id].icon].path;

                    if (activityIDMessage.Value != null)
                    {
                        if (activityIDMessage.Value.is_reward > 0) // 已领取
                        {
                            ad.CDText = LanguageData.GetContent(7134);                            
                            ad.Status = ActivityStatus.HasReward;

                            TimeLimitActivityUIViewManager.Instance.SetGridCountDownStop(activityIDMessage.Key);
                        }
                        else if (activityIDMessage.Value.is_finish > 0) // 已完成
                        {
                            ad.CDText = LanguageData.GetContent(7133);
                            ad.Status = ActivityStatus.HasFinished;

                            TimeLimitActivityUIViewManager.Instance.SetGridCountDownStop(activityIDMessage.Key);                            
                        }
                        else if (EventData.dataMap[id].limit_time == 0) // 活动中-不限时间
                        {
                            ad.CDText = LanguageData.GetContent(7137);
                            ad.Status = ActivityStatus.OtherStatus;

                            TimeLimitActivityUIViewManager.Instance.SetGridCountDownStop(activityIDMessage.Key);
                        }
                        else
                        {
                            TimeSpan theInterval = MogoTime.Instance.CalculateTimeSpanDateTime(MogoTime.Instance.GetSecond() + EventData.dataMap[id].limit_time * 60);
                            theInterval = MogoTime.Instance.CalculateTimeSpanDateTime(activityIDMessage.Value.accept_time + EventData.dataMap[id].limit_time * 60);

                            ad.CDText = (int)theInterval.TotalDays + ":" + (int)theInterval.Hours + ":" + theInterval.Minutes + ":" + theInterval.Seconds;
                            ad.Status = ActivityStatus.OtherStatus;
                        }
                    }
                    else
                    {
                        TimeSpan theInterval = MogoTime.Instance.CalculateTimeSpanDateTime(activityIDMessage.Value.accept_time + EventData.dataMap[id].limit_time * 60);

                        ad.CDText = (int)theInterval.TotalDays + ":" + (int)theInterval.Hours + ":" + theInterval.Minutes + ":" + theInterval.Seconds;
                        ad.Status = ActivityStatus.OtherStatus;
                    }                    

                    TimeLimitActivityUIViewManager.Instance.AddActivityGrid(ad, id);
                }
            }
            else // 活动未开启
            {
                int idToDo = activityIDMessage.Key;
                if (EventData.dataMap.ContainsKey(idToDo))
                {
                    LimitActivityGridData ad = new LimitActivityGridData();
                    ad.TitleText = LanguageData.dataMap.ContainsKey(EventData.dataMap[idToDo].name) ? LanguageData.dataMap[EventData.dataMap[idToDo].name].content : "";
                    ad.CDText = LanguageData.GetContent(7132);
                    ad.Status = ActivityStatus.OtherStatus;
                    ad.FGImgName = IconData.dataMap[EventData.dataMap[idToDo].icon].path;
                    TimeLimitActivityUIViewManager.Instance.AddActivityGrid(ad, idToDo);
                }
            }
        }
    }