Exemple #1
0
    void SecondTypeClick(uint childID)
    {
        AchievementDataBase typeData = achievementManager.GetParentAchievementData((int)m_uint_activeFType);

        if (typeData == null)
        {
            return;
        }
        List <AchievementDataBase> list = achievementManager.GetSubAchievementDataList(typeData.type);

        dailyAchieveDataList.Clear();
        for (int i = 0; i < list.Count; i++)
        {
            if (list[i].childType == childID)
            {
                uint        id          = list[i].id;
                AchieveData achieveData = achievementManager.GetAchieveData(id);
                if (achieveData != null)
                {
                    if (m_toggle_HideAchievement.value && achieveData.status == (uint)AchieveStatus.AchieveStatus_HaveReceive)
                    {
                        continue;
                    }
                }
                else
                {
                    achieveData    = new AchieveData();
                    achieveData.id = list[i].id;
                }
                dailyAchieveDataList.Add(achieveData);
            }
        }
        dailyAchieveDataList.Sort(SortAchieveData);
        m_ctor_AchievementScrollView.CreateGrids(dailyAchieveDataList.Count);
    }
Exemple #2
0
    public bool HaveCanRecieveByChildType(int tabId, uint childType)
    {
        bool        value = false;
        List <uint> list  = new List <uint>();

        Dictionary <uint, AchieveData> .Enumerator iter = achievementServerData.GetEnumerator();
        while (iter.MoveNext())
        {
            AchievementDataBase achievementData = GetAchievementTableData(iter.Current.Key);
            if (achievementData != null && achievementData.type == tabId && achievementData.childType == childType)
            {
                if (iter.Current.Value.status == (uint)AchieveStatus.AchieveStatus_CanReceive)
                {
                    list.Add(iter.Current.Key);
                }
            }
        }
        if (list.Count == 0)
        {
            return(false);
        }
        else
        {
            return(true);
        }
    }
Exemple #3
0
    void ExecuteGoto()
    {
        if (null == achieveData)
        {
            return;
        }
        AchievementDataBase achieveDataBase = DataManager.Manager <AchievementManager>().GetAchievementTableData(achieveData.id);

        if (null == achieveDataBase)
        {
            return;
        }
        if (achieveDataBase.jumpID > 0)
        {
            ItemManager.DoJump(achieveDataBase.jumpID);
        }
        else if (achieveDataBase.taskID > 0)
        {
            Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.TASK_DONING,
                                                                new Client.stDoingTask()
            {
                taskid = achieveDataBase.taskID
            });
        }
    }
Exemple #4
0
    public PushItem GetAchieveStatus()
    {
        uint     achieve_id = 0;
        PushItem pushItem   = null;
        string   strName    = "";

        Dictionary <uint, AchieveData> .Enumerator iter = achievementServerData.GetEnumerator();
        while (iter.MoveNext())
        {
            AchievementDataBase achievementData = GetAchievementTableData(iter.Current.Key);
            if (achievementData != null && iter.Current.Value.status == (uint)AchieveStatus.AchieveStatus_CanReceive)
            {
                achieve_id = iter.Current.Key;
                strName    = achievementData.name;
            }
        }
        if (achieve_id != 0)
        {
            pushItem = new PushItem()
            {
                pushType = PushType.Achievement,
                strName  = strName,
                thisID   = achieve_id,
            };
        }
        return(pushItem);
    }
Exemple #5
0
 private void OnUpdateGridData(UIGridBase grid, int index)
 {
     if (grid is UICtrTypeGrid)
     {
         UICtrTypeGrid tabGrid = grid as UICtrTypeGrid;
         if (tabGrid != null)
         {
             if (index == 0)
             {
                 int haveNum  = 0;
                 int totalNum = 0;
                 achievementManager.GetGainAchieveNum(out haveNum, out totalNum);
                 string titleTips = "综合";
                 tabGrid.SetRedPointStatus(achievementManager.HaveCanReceiveAchieveByType((uint)index));
                 if (index < mlstFirstTabIds.Count)
                 {
                     tabGrid.SetData(mlstFirstTabIds[index], titleTips, 0);
                 }
             }
             else
             {
                 AchievementDataBase achievementData = achievementManager.GetParentAchievementData(index);
                 if (achievementData != null)
                 {
                     int haveNum  = 0;
                     int totalNum = 0;
                     int count    = 0;
                     if (achieveDic.ContainsKey((uint)index))
                     {
                         count = achieveDic[(uint)(index)].Count;
                     }
                     achievementManager.GetGainAchieveByType(achievementData.type, out haveNum, out totalNum);
                     string titleTips = string.Format("{0}({1}/{2})", achievementData.typeName, haveNum, totalNum);
                     tabGrid.SetRedPointStatus(achievementManager.HaveCanReceiveAchieveByType((uint)index));
                     if (index < mlstFirstTabIds.Count)
                     {
                         tabGrid.SetData(mlstFirstTabIds[index], titleTips, count);
                     }
                 }
             }
         }
     }
     else if (grid is UIAchievemenGrid)
     {
         UIAchievemenGrid achieveGrid = grid as UIAchievemenGrid;
         if (null != achieveGrid)
         {
             AchieveData achieveData = dailyAchieveDataList.Count > index ? dailyAchieveDataList[index] : null;
             achieveGrid.UpdateItemInfo(achieveData);
             achieveGrid.SetGridData(index);
             achieveGrid.SetSelect(false);
         }
     }
 }
Exemple #6
0
        /// <summary>
        /// 通过[ID]二分快速查表
        /// </summary>
        /// <param name="id">ID</param>
        /// <returns></returns>
        public static AchievementDataBase Query(this List <AchievementDataBase> sorted, uint id)
        {
            var key = new AchievementDataBase()
            {
                id = id
            };
            var comparer = new Comparer1();
            var index    = sorted.BinarySearch(key, comparer);

            return(index >= 0 ? sorted[index] : default(AchievementDataBase));
        }
Exemple #7
0
 public bool HaveCanReceiveAchieveByType(uint type)
 {
     Dictionary <uint, AchieveData> .Enumerator iter = achievementServerData.GetEnumerator();
     while (iter.MoveNext())
     {
         AchievementDataBase achievementData = GetAchievementTableData(iter.Current.Key);
         if (achievementData != null && achievementData.type == type)
         {
             if (iter.Current.Value.status == (uint)AchieveStatus.AchieveStatus_CanReceive)
             {
                 return(true);
             }
         }
     }
     return(false);
 }
Exemple #8
0
    void FocusAchievementData(uint id)
    {
        AchievementDataBase tab = GameTableManager.Instance.GetTableItem <AchievementDataBase>(id);

        if (tab != null)
        {
            SetSelectFirstType(tab.type, true);
            SetSelectSecondType(tab.childType, true);
            int index = 0;
            for (int i = 0; i < dailyAchieveDataList.Count; i++)
            {
                if (dailyAchieveDataList[i].id == id)
                {
                    index = i;
                }
            }
            SetSelectAchievementGrid(index, true);
        }
    }
Exemple #9
0
    public void InitTableData()
    {
        List <AchievementDataBase> dataList = GameTableManager.Instance.GetTableList <AchievementDataBase>();

        if (null == dataList)
        {
            Engine.Utility.Log.Error("AchievementDataBase is null");
            return;
        }
        for (int i = 0; i < dataList.Count; i++)
        {
            AchievementDataBase item = dataList[i];
            if (item != null)
            {
                uint type = item.type;
                if (!subAchievementData.ContainsKey(type))
                {
                    if (item.whetherShow == 1)
                    {
                        parAchievementData.Add(item);
                    }
                }
                List <AchievementDataBase> list = null;
                if (subAchievementData.TryGetValue(type, out list))
                {
                    if (list != null)
                    {
                        list.Add(item);
                    }
                }
                else
                {
                    list = new List <AchievementDataBase> {
                        item
                    };
                    subAchievementData.Add(type, list);
                }
            }
        }
        parAchievementData.Sort(CompareAchievementData);
    }
Exemple #10
0
    public void UpdateItemInfo(AchieveData achieveData)
    {
        this.achieveData = achieveData;
        if (achieveData == null)
        {
            return;
        }
        AchievementDataBase achieveDataBase = DataManager.Manager <AchievementManager>().GetAchievementTableData(achieveData.id);

        if (achieveDataBase != null)
        {
            name.text        = achieveDataBase.name;
            description.text = achieveDataBase.condition;
            process.value    = 0;
            processNum.text  = string.Format("{0}/{1}", achieveData.progress, achieveDataBase.aggregate);
            process.value    = (achieveDataBase.aggregate <= 0) ? 0 : (achieveData.progress * 1.0f / achieveDataBase.aggregate);
            point.text       = achieveDataBase.get_point.ToString();
            switch (achieveData.status)
            {
            case (uint)AchieveStatus.AchieveStatus_CanReceive:
                ControlStatus(false, true, false);
                break;

            case (uint)AchieveStatus.AchieveStatus_HaveReceive:
                ControlStatus(false, false, true);
                break;

            default:
                ControlStatus(true, false, false);
                break;
            }


            if (rewardRoot != null)
            {
                ParseReward(achieveDataBase.items);
            }
        }
    }
Exemple #11
0
    /// <summary>
    /// 收到服务器下发的成就数据
    /// </summary>
    /// <param name="cmd"></param>
    public void OnResponAchieveData(stAchieveDataDataUserCmd_S cmd)
    {
        achievementServerData.Clear();
        if (cmd != null)
        {
            for (int i = 0; i < cmd.data.Count; i++)
            {
                achievementServerData.Add(cmd.data[i].id, cmd.data[i]);
                if (cmd.data[i].status == (uint)AchieveStatus.AchieveStatus_HaveReceive)
                {
                    AchievementDataBase table = GameTableManager.Instance.GetTableItem <AchievementDataBase>(cmd.data[i].id);
                    if (table != null)
                    {
                        haveAchievePoint += table.get_point;
                    }
                }
            }
        }
//         if (HaveCanReceiveAchieve())
//         {
//             Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.REFRESHACHIEVEMENTPUSH, null);
//         }
        DispatchValueUpdateEvent(new ValueUpdateEventArgs(AchieveDispatchEvents.RefreshAchieveInfo.ToString(), null, null));
    }
Exemple #12
0
 private void OnEnable()
 {
     database = target as AchievementDataBase;
 }
Exemple #13
0
 /// <summary>
 /// 更新成就内容
 /// </summary>
 private void UpdateAchieveContent()
 {
     if (null != m_ctor_AchievementScrollView)
     {
         if (m_uint_activeFType == 0)
         {
             List <AchievementDataBase> list = GameTableManager.Instance.GetTableList <AchievementDataBase>();
             dailyAchieveDataList.Clear();
             for (int i = 1; i < list.Count; i++)
             {
                 uint        id          = list[i].id;
                 AchieveData achieveData = achievementManager.GetAchieveData(id);
                 if (achieveData != null)
                 {
                     if (m_toggle_HideAchievement.value && achieveData.status == (uint)AchieveStatus.AchieveStatus_HaveReceive)
                     {
                         continue;
                     }
                 }
                 else
                 {
                     achieveData    = new AchieveData();
                     achieveData.id = list[i].id;
                 }
                 dailyAchieveDataList.Add(achieveData);
             }
         }
         else
         {
             AchievementDataBase typeData = achievementManager.GetParentAchievementData((int)m_uint_activeFType);
             if (typeData == null)
             {
                 return;
             }
             List <AchievementDataBase> list = achievementManager.GetSubAchievementDataList(typeData.type);
             dailyAchieveDataList.Clear();
             for (int i = 0; i < list.Count; i++)
             {
                 if (list[i].type == m_uint_activeFType && list[i].childType == m_uint_activeStype)
                 {
                     uint        id          = list[i].id;
                     AchieveData achieveData = achievementManager.GetAchieveData(id);
                     if (achieveData != null)
                     {
                         if (m_toggle_HideAchievement.value && achieveData.status == (uint)AchieveStatus.AchieveStatus_HaveReceive)
                         {
                             continue;
                         }
                     }
                     else
                     {
                         achieveData    = new AchieveData();
                         achieveData.id = list[i].id;
                     }
                     dailyAchieveDataList.Add(achieveData);
                 }
             }
         }
         dailyAchieveDataList.Sort(SortAchieveData);
         m_ctor_AchievementScrollView.CreateGrids(dailyAchieveDataList.Count);
     }
 }
Exemple #14
0
 int CompareAchievementData(AchievementDataBase a, AchievementDataBase b)
 {
     return((int)a.type - (int)b.type);
 }