//等级提升时
    private void OnLevelUpEvent(IEvent ievent)
    {
        var e       = ievent as Event_LevelUp;
        var MyLevel = PlayerDataManager.Instance.GetLevel();

        List <AchievementRecord> list = null;

        if (!mLevelDic.TryGetValue(MyLevel, out list))
        {
            return;
        }
        {
            var __list6      = list;
            var __listCount6 = __list6.Count;
            for (var __i6 = 0; __i6 < __listCount6; ++__i6)
            {
                var table = __list6[__i6];
                {
                    if (table.Type != mCurrentPage)
                    {
                        continue;
                    }

                    var achievement = new AchievementItemDataModel();
                    DataModel.CurrentAchievementItemList.Add(achievement);
                    AssignAchievement(table, achievement);
                }
            }
        }
    }
Beispiel #2
0
        //等级提升时
        private void OnUpLVEvent(IEvent ievent)
        {
            var _e       = ievent as Event_LevelUp;
            var _MyLevel = PlayerDataManager.Instance.GetLevel();

            List <AchievementRecord> _list = null;

            if (!m_dicLevelDic.TryGetValue(_MyLevel, out _list))
            {
                return;
            }
            {
                var _list6      = _list;
                var _listCount6 = _list6.Count;
                for (var _i6 = 0; _i6 < _listCount6; ++_i6)
                {
                    var _table = _list6[_i6];
                    {
                        if (_table.Type != mCurrentPage)
                        {
                            continue;
                        }

                        var _achievement = new AchievementItemDataModel();
                        m_DataModel.CurrentAchievementItemList.Add(_achievement);
                        FillAccomplishment(_table, _achievement);
                    }
                }
            }
        }
Beispiel #3
0
        //刷新当前页
        private void RefreshAccomplishment()
        {
            var _MyLevel = PlayerDataManager.Instance.GetLevel();

            m_DataModel.CurrentAchievementItemList.Clear();

            var _tempList = new List <AchievementItemDataModel>();

            List <AchievementRecord> _list = null;

            if (!m_dicAnalyzeTable.TryGetValue(mCurrentPage, out _list))
            {
                return;
            }
            {
                var _list8      = _list;
                var _listCount8 = _list8.Count;
                for (var _i8 = 0; _i8 < _listCount8; ++_i8)
                {
                    var _table = _list8[_i8];
                    {
                        //并且也没完成
                        if (!IsAchieveAccomplishment(_table.Id))
                        {
                            //没达到可视等级隐藏
                            if (_table.ViewLevel > 0 && _MyLevel < _table.ViewLevel || _table.Type == 9)
                            {
                                continue;
                            }

                            //扩展数据可见性判断
                            if (-1 != _table.ClientDisplay)
                            {
                                if (0 == FlagData.GetFlag(_table.ClientDisplay))
                                {
                                    continue;
                                }
                            }
                        }

                        var _achievement = new AchievementItemDataModel();
                        FillAccomplishment(_table, _achievement);
                        var _state = (eRewardState)_achievement.State;
                        if (eRewardState.CanGet == _state)
                        {
                            _tempList.Insert(0, _achievement);
                        }
                        else
                        {
                            _tempList.Add(_achievement);
                        }
                    }
                }
                SortByState(_tempList);
            }

            m_DataModel.CurrentAchievementItemList = new ObservableCollection <AchievementItemDataModel>(allLst);
        }
    //刷新当前页
    private void UpdateAchievement()
    {
        var MyLevel = PlayerDataManager.Instance.GetLevel();

        DataModel.CurrentAchievementItemList.Clear();

        var tempList = new List <AchievementItemDataModel>();

        List <AchievementRecord> list = null;

        if (!mAnalyzeTable.TryGetValue(mCurrentPage, out list))
        {
            return;
        }
        {
            var __list8      = list;
            var __listCount8 = __list8.Count;
            for (var __i8 = 0; __i8 < __listCount8; ++__i8)
            {
                var table = __list8[__i8];
                {
                    //并且也没完成
                    if (!IsAchievementAccomplished(table.Id))
                    {
                        //没达到可视等级隐藏
                        if (table.ViewLevel > 0 && MyLevel < table.ViewLevel)
                        {
                            continue;
                        }

                        //扩展数据可见性判断
                        if (-1 != table.ClientDisplay)
                        {
                            if (0 == FlagData.GetFlag(table.ClientDisplay))
                            {
                                continue;
                            }
                        }
                    }

                    var achievement = new AchievementItemDataModel();
                    AssignAchievement(table, achievement);
                    var state = (eRewardState)achievement.State;
                    if (eRewardState.CanGet == state)
                    {
                        tempList.Insert(0, achievement);
                    }
                    else
                    {
                        tempList.Add(achievement);
                    }
                }
            }
        }

        DataModel.CurrentAchievementItemList = new ObservableCollection <AchievementItemDataModel>(tempList);
    }
Beispiel #5
0
        //填充一个成就数据到数据源
        private void FillAccomplishment(AchievementRecord table, AchievementItemDataModel achievement)
        {
            achievement.Id    = table.Id;
            achievement.Title = table.Name;
            if (-1 != table.Exdata)
            {
                var _progress = Mathf.Min(PlayerDataManager.Instance.GetAccomplishmentProgress(achievement.Id), table.ExdataCount);
                achievement.Progress      = _progress * 1.0f / table.ExdataCount;
                achievement.ProgressLabel = string.Format("{0}/{1}", GameUtils.GetBigValueStr(_progress),
                                                          GameUtils.GetBigValueStr(table.ExdataCount));

                if (GameUtils.GetBigValueStr(table.ExdataCount) == "1")
                {
                    achievement.ShowPorgress = false;
                }
                else
                {
                    achievement.ShowPorgress = true;
                }
            }
            else
            {
                achievement.ShowPorgress = false;
            }

            var _state = PlayerDataManager.Instance.GetAccomplishmentStatus(achievement.Id);

            achievement.State = (int)_state;

            /*
             *  if (eRewardState.HasGot == state)
             *  {
             *          achievement.State = GameUtils.GetDictionaryText(1035);
             *          achievement.CanGetReward = false;
             *  }
             *  else if (eRewardState.CanGet == state)
             *  {
             *          achievement.State = GameUtils.GetDictionaryText(1036);
             *          achievement.CanGetReward = true;
             *  }
             *  else if (eRewardState.CannotGet == state)
             *  {
             *          achievement.State = GameUtils.GetDictionaryText(1037);
             *          achievement.CanGetReward = false;
             *  }
             */
            var _tableItemIdLength0 = table.ItemId.Length;

            for (var i = 0; i < _tableItemIdLength0; i++)
            {
                var _itemId = table.ItemId[i];
                achievement.Rewards[i].ItemId = _itemId;
                achievement.Rewards[i].Count  = table.ItemCount[i];
            }
        }
    //填充一个成就数据到数据源
    public void AssignAchievement(AchievementRecord table, AchievementItemDataModel achievement)
    {
        achievement.Id    = table.Id;
        achievement.Title = table.Name;
        if (-1 != table.Exdata)
        {
            var progress = Mathf.Min(GetAchievementProgress(achievement.Id), table.ExdataCount);
            achievement.Progress      = progress * 1.0f / table.ExdataCount;
            achievement.ProgressLabel = string.Format("{0}/{1}", GameUtils.GetBigValueStr(progress),
                                                      GameUtils.GetBigValueStr(table.ExdataCount));
            achievement.ShowPorgress = true;
        }
        else
        {
            achievement.ShowPorgress = false;
        }

        var state = GetAchievementState(achievement.Id);

        achievement.State = (int)state;

        /*
         *      if (eRewardState.HasGot == state)
         *      {
         *              achievement.State = GameUtils.GetDictionaryText(1035);
         *              achievement.CanGetReward = false;
         *      }
         *      else if (eRewardState.CanGet == state)
         *      {
         *              achievement.State = GameUtils.GetDictionaryText(1036);
         *              achievement.CanGetReward = true;
         *      }
         *      else if (eRewardState.CannotGet == state)
         *      {
         *              achievement.State = GameUtils.GetDictionaryText(1037);
         *              achievement.CanGetReward = false;
         *      }
         */
        var tableItemIdLength0 = table.ItemId.Length;

        for (var i = 0; i < tableItemIdLength0; i++)
        {
            var itemId = table.ItemId[i];
            achievement.Rewards[i].ItemId = itemId;
            achievement.Rewards[i].Count  = table.ItemCount[i];
        }
    }
    //当标记位改变时
    public void OnFlagUpdate(int idx)
    {
        List <AchievementRecord> list = null;

        if (!mFlagDataDic.TryGetValue(idx, out list))
        {
            return;
        }

        //我的等级
        var MyLevel = PlayerDataManager.Instance.GetLevel();

        var updateTypeList = new List <int>();

        {
            var __list3      = list;
            var __listCount3 = __list3.Count;
            for (var __i3 = 0; __i3 < __listCount3; ++__i3)
            {
                var table = __list3[__i3];
                {
                    if (table.Type < 0 || table.Type >= DataModel.Summary.Count)
                    {
                        continue;
                    }

                    var state = GetAchievementState(table.Id);

                    //这个成就的可见标记位改变了,并且当前显示的就这个成就列表
                    if (-1 != table.ClientDisplay && table.ClientDisplay == idx && mCurrentPage == table.Type)
                    {
                        var needAdd = false;
                        if (eRewardState.CannotGet != state)
                        {
//完成就直接显示
                            needAdd = true;
                        }
                        else if (0 != FlagData.GetFlag(table.ClientDisplay))
                        {
                            if (MyLevel >= table.ViewLevel)
                            {
//达到了显示条件才显示
                                needAdd = true;
                            }
                        }

                        //这个成就变可见了
                        if (needAdd)
                        {
                            var find = false;
                            {
                                // foreach(var data in DataModel.CurrentAchievementItemList)
                                var __enumerator12 = (DataModel.CurrentAchievementItemList).GetEnumerator();
                                while (__enumerator12.MoveNext())
                                {
                                    var data = __enumerator12.Current;
                                    {
                                        if (data.Id == table.Id)
                                        {
                                            find = true;
                                            break;
                                        }
                                    }
                                }
                            }

                            if (!find)
                            {
//没找到就要加入到当前列表
                                var achievement = new AchievementItemDataModel();
                                DataModel.CurrentAchievementItemList.Add(achievement);
                                AssignAchievement(table, achievement);
                            }
                        }
                    }

                    if (state == eRewardState.CannotGet)
                    {
                        continue;
                    }

                    //这个类型需要重新计算
                    if (!updateTypeList.Contains(table.Type))
                    {
                        updateTypeList.Add(table.Type);
                    }
                    {
                        // foreach(var achievement in DataModel.CurrentAchievementItemList)
                        var __enumerator13 = (DataModel.CurrentAchievementItemList).GetEnumerator();
                        while (__enumerator13.MoveNext())
                        {
                            var achievement = __enumerator13.Current;
                            {
                                if (achievement.Id == table.Id)
                                {
                                    achievement.State = (int)state;
                                    break;
                                }
                            }
                        }
                    }
                }
            }
        }
        //刷新改变的类型
        if (updateTypeList.Count > 0)
        {
            var tempList = DataModel.CurrentAchievementItemList;
            var changed  = false;
            for (var i = 1; i < tempList.Count; i++)
            {
                var temp = tempList[i];
                if (eRewardState.CanGet == (eRewardState)temp.State)
                {
                    tempList.RemoveAt(i);
                    tempList.Insert(0, temp);
                    changed = true;
                }
            }
            if (changed)
            {
                DataModel.CurrentAchievementItemList = tempList;
            }

            {
                var __list4      = updateTypeList;
                var __listCount4 = __list4.Count;
                for (var __i4 = 0; __i4 < __listCount4; ++__i4)
                {
                    var type = __list4[__i4];
                    {
                        RefreshByType(type);
                    }
                }
            }
            RefreshNotice();
        }


        RefeshTotal();
    }
Beispiel #8
0
        //当标记位改变时
        private void OnFlagChange(int idx)
        {
            List <AchievementRecord> _list = null;

            if (!m_dicFlagDataDic.TryGetValue(idx, out _list))
            {
                return;
            }

            //我的等级
            var _MyLevel = PlayerDataManager.Instance.GetLevel();

            var _updateTypeList = new List <int>();

            {
                var _list3      = _list;
                var _listCount3 = _list3.Count;
                for (var _i3 = 0; _i3 < _listCount3; ++_i3)
                {
                    var _table = _list3[_i3];
                    {
                        if (_table.Type < 0 || _table.Type >= m_DataModel.Summary.Count)
                        {
                            continue;
                        }

                        var _state = PlayerDataManager.Instance.GetAccomplishmentStatus(_table.Id);

                        //这个成就的可见标记位改变了,并且当前显示的就这个成就列表
                        if (-1 != _table.ClientDisplay && _table.ClientDisplay == idx && mCurrentPage == _table.Type)
                        {
                            var _needAdd = false;
                            if (eRewardState.CannotGet != _state)
                            {
                                //完成就直接显示
                                _needAdd = true;
                            }
                            else if (0 != FlagData.GetFlag(_table.ClientDisplay))
                            {
                                if (_MyLevel >= _table.ViewLevel)
                                {
                                    //达到了显示条件才显示
                                    _needAdd = true;
                                }
                            }

                            //这个成就变可见了
                            if (_needAdd)
                            {
                                var _find = false;
                                {
                                    // foreach(var data in DataModel.CurrentAchievementItemList)
                                    var _enumerator12 = (m_DataModel.CurrentAchievementItemList).GetEnumerator();
                                    while (_enumerator12.MoveNext())
                                    {
                                        var _data = _enumerator12.Current;
                                        {
                                            if (_data.Id == _table.Id)
                                            {
                                                _find = true;
                                                break;
                                            }
                                        }
                                    }
                                }

                                if (!_find)
                                {
                                    //没找到就要加入到当前列表
                                    var _achievement = new AchievementItemDataModel();
                                    m_DataModel.CurrentAchievementItemList.Add(_achievement);
                                    FillAccomplishment(_table, _achievement);
                                }
                            }
                        }

                        if (_state == eRewardState.CannotGet)
                        {
                            continue;
                        }

                        //这个类型需要重新计算
                        if (!_updateTypeList.Contains(_table.Type))
                        {
                            _updateTypeList.Add(_table.Type);
                        }
                        {
                            // foreach(var achievement in DataModel.CurrentAchievementItemList)
                            var _enumerator13 = (m_DataModel.CurrentAchievementItemList).GetEnumerator();
                            while (_enumerator13.MoveNext())
                            {
                                var _achievement = _enumerator13.Current;
                                {
                                    if (_achievement.Id == _table.Id)
                                    {
                                        _achievement.State = (int)_state;
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            //刷新改变的类型
            if (_updateTypeList.Count > 0)
            {
                var _tempList = m_DataModel.CurrentAchievementItemList;
                var _changed  = false;
                for (var i = 1; i < _tempList.Count; i++)
                {
                    var _temp = _tempList[i];
                    if (eRewardState.CanGet == (eRewardState)_temp.State)
                    {
                        _tempList.RemoveAt(i);
                        _tempList.Insert(0, _temp);
                        _changed = true;
                    }
                }
                if (_changed)
                {
                    SortByState(_tempList.ToList());
                    m_DataModel.CurrentAchievementItemList = new ObservableCollection <AchievementItemDataModel>(allLst);
                }

                {
                    var _list4      = _updateTypeList;
                    var _listCount4 = _list4.Count;
                    for (var _i4 = 0; _i4 < _listCount4; ++_i4)
                    {
                        var _type = _list4[_i4];
                        {
                            RenewalType(_type);
                        }
                    }
                }
                RenewalNotice();
            }


            RefeshIntergral();
        }